From 98a776f2dc6760dfcc2356805147cfc4e68d9faf Mon Sep 17 00:00:00 2001 From: Joe Nelson Date: Sat, 15 Oct 2016 16:54:36 -0700 Subject: [PATCH] Overview of role system --- _static/security-anon-choice.png | Bin 0 -> 31513 bytes _static/security-roles.png | Bin 0 -> 46364 bytes auth.rst | 61 +++++++++++++++++++++++++++++++ index.rst | 5 +++ 4 files changed, 66 insertions(+) create mode 100644 _static/security-anon-choice.png create mode 100644 _static/security-roles.png create mode 100644 auth.rst diff --git a/_static/security-anon-choice.png b/_static/security-anon-choice.png new file mode 100644 index 0000000000000000000000000000000000000000..ea02a237e6f61dc9430e96e2dff6567322059266 GIT binary patch literal 31513 zcmeAS@N?(olHy`uVBq!ia0y~yV0_5Hz{tnJ#=yX^FJgTp1A~N4rn7T^r?ay{Kv8~L zW=<*tLqzM;N=}Q=``7>5eZO<^>8$6GX-4N&KHHpk*1B$U+0=F71fHoW9*V6lU2efn zZBtTC1$2oxtqf`NspMbv{{7#5|DXT2dtW!N_T2Mzd%xY9zxDgA>iebo3^Hq$OqjqR zqRY_en3$5yoEzt^o*s9{!hu=u0K*GL)04I)E~hVD5>a@1{`darOBES%_r`nV-265F z?f?5u&mT&@;$ukZOfc^c`0l`RpPAw8J2@vlW`@h%Cw?j)cG~uVsY&uAha8dmQEYNBBxPF1g7+c_`hoLQSb+{ciq~ z%naYmT++)E5P+4ybTao5dFR2oFS*3aqtzn6ur z<-cUIc+kq46K&U`?UX-j zo!>upuPon&_VfvN^YaXZVsBmB|68qK-n|K zy7%rz+wMH%*Kci!y!EcYd2yrW1;$+s;w{Qod0Ck4AKbPLH*T-Fm3fg}#ewbK0b!3n z)Be1CxZ$o)i%qVB$&Vfde}P}y=YK0(t={4AM7n;dwLj;Bt#_q1-aRZ|<4~Y5OLnjL z+BP%Sd9ysGx@s>D{rBbZ(x1j!Vf?GRO^>`vcK!dUz&(OpVJc6}e|aO}CvQ6|wjWh} z(a-9`s(LxH|G3Z+$`o4 zp}k=1#aA5lE!MLn&+@5U_|%~umBD+&oYm#me4fMqi+-o;{kOd*_WJ*q=iBE*^+Y{1 z=ia_wd-3P+*Z0Fp{w4R>OxS*Mzv;u2A9{Bf?VIKw;w|8P&^r4;)DG^t9j*V}4m~MT z`6GF@YW8gVq~qWF`$}5Btoicmzr@@xvl%O^_d3pa{&2%u-i5+4LayJwe&c+6)yXf# zKW?!?`N_L`HeE96V#t~M-un1){?~7drIX(Mba!()m!BHRz;WyUiKdCg3yh>WUvvLI z(K2E0$z@CjWV62)6dmc~+57bX1JeS>GB)W4Y=0bBK6;92Fqtmk{L)~!fnnPLP8o-^ zyX-7VYm^TL7RabHniPnoGAY!z(H8Mb%|43RCpe2*_bgP^+-V^~ZuBAPfoMtY_3H%*+Z-w)Uj1Z+)JX+$RExQ_5 zx!F3|I`b|%7C1kk+n_-+F>MC_w1%mPvNxE@+V&!+Bjf`!ADR`|}5) zCSqqBp1FD}e9Y|F=Dd3`|H9;p%P)vuOns46BK?c?mu!{XUvB3k1xZH?S4k-MC?As+ z?({tLB*Dw@yW!gt_huf_N!%Ebw#Fcg^X6>72>UmJZ!~ilw{hL>d3)F|LA=mHM%qti zdEe#(6AKb|sN7+_!y6;KPTsurcjxjWpC6=t{8f=&BVZ>tzj=RO{*mvGmw(I_*&@;; zvPwiuL{217i77XPc{E0tHSUio_^K0_meC38y#-vyV;PcGb9`f}mS#Y-26F1or<_2RKh z&n{lO$ah)qlHrAu7a}jPUYfgTx8L_Ed2Mp;`Y!9;-#gCti1)egWq**t_=E8agB`{y z22%{S82cC|Nw!M%O8k|$ERkG~*F?yr> zrud}%^!bkyo&-EDc<%9Z$6>=mosUEwZ+T{ODDuqBqdQL=J)3$!^iXNz>Z#d%vu8$6 zzTI!#y?bKywD!hy{eFFaF@NFn?r~~yy7w6F#oRNyS83;G=e)0ApLWgNn(W;zfM67uDjb+SEy`JQBu)Tx#wx*JKrk$GbYQitowFHNS(a_SI zB&sc%K9yxk%+ya)+onoR)t&0EX&-oSMaF8G;LL!?z|auh;Ju4~h59<3jeooA))~2n zw)3jJzWJD|{$-#^{^SgJ-!rB|u<`>a2+N+Zrk3y-L*Ua zZfah4*s{IQUGuoa@pQj8e*65kp0h}=ejfDvXl>Q+P2YWYYV1(i$@5nHUVX*?%gk@s znfPpMJc=ijd|0P_?CQafoabAn z@49ZeUNXP*z0dnddEWUl^DX0L?|1LJ|A*%<*WYP>b^omYna^gy62kh3IhOf#(~IUm z&9|C%HuJN8Z|!JTY3-2@vYk?!F)znSkGIw7d;7IEL#6oAU58u``M2!vz9BtP{G;(D zyHD>DcO7{!itel0Q3tw6e6f{Bl`$WXF+CVK#NGNh>Cw@I0)3)lW=q@#NacyMvzu z=`H!=_0{98&t$*Tp3(MC>sEcoGV$by)53U+g7@yOv71u@f(@DJ6{wF z&rF+nHF8hn%1G{;?3?F5JMmm(p86bqd;59Wv!bgV9~`>L{aUiO3%Tp_L%N8j*Hm)>h$ntv_KDsqe$?3GbO+KmTD}mT8D=sBQe?VB@&gA-BWRW3C6S53B#*_@p_Tw}!Wpf2Q0r zb0H~VY4h2OW{b^sp7mU=(tcKk<&96fu5K({aCX(&-FKJ#J(>LX_*&U0SzrGv^G$3* zYoo5Oyc7A^=VN5)bf@copL3mmU#?vi{$1nim2a!QT>Jj^W%irvFY3QIeLwn`adBgM z^Rwn!=Q3yg_Sm-L@l|`~REmChb=%{}iCeFCn9nd@xp>QB%j7x9uKBL_!+N#*>}!_) zUiW(M+27ZN-wDrGb5_5;T*zL){)x|LpXujMoHIG|>ioC5JKqam1)o^Hb?1`vCG$V; z@2J`NJ@j+-^*xXOTrvN&{p|bYbsPTf*ru@m!lsO!7TZL2Y}q#F*W|b9H@iN09ba|$ z)t9IzR(ZDN&LxZgO+UHbe0JmP*@`MgnZH*v^n^^AF3xa&J)=VjQv>74#~fFze_nsj z~v+SIxkdshX*1LeQi$X&sVx%TxZ3Yeekl=d6$M2b7oBc@$>Fnq0>Q1m%@w+H;EQCb7{Cr zF8zCIrPkF|@4pFLo%(%O){=~S*QypbUk|-feBC}fAlo91XC}uCsTn_KE|0#mxhC`L z<+ht)=gu9nyYO&J^3u!3&&z*5i=Fm;y)4T*7NOa*TXs)t-}>B9-#>p+fA4!a`?&fO z^)?GMKNJNxZSe1Ss+ek&uVMEk`$j-TvP)#jvxhfUG-NDSc5}a)JS9oAf8~)(S@X_v zj}JaP)`d!%uTwlf-JSC6%DOEJgY*6U=l`7Z@9&$WW0!UwJ#%!;Rhci9%kJD2=h55s zT=w*N-4%PTg#38(>A=*9i#|TOIjJ@1hg9&)h@Ia`r+1x@jx>KC@-4J>w{N-oyLD&x zUih89`gHcIZ27BOubJCdTqyXT7@AxeTv&W?@tbK^t}V{3du!G&Y8_!6Hm}G2?aP`! zYqq|=__^)fs(E+rU9g*5m-N3|yplPtnag>`!iNtxO&45m;=Vyy)}uyq&rG?q62a25 zE2^tva{pZ3edzl&;SVlXm)w1FD&$)GUHMtd)-G31_dDZt)~`Uv>Wu z-?jexbKU3mHP*l8KK=bz{w23#_Yzfol|Hrb+vY0f=G(8&m*3U;sX6tb%BR+ zs`$;+iw2i@E_hwvxAgMr-;wh92U0b%m!#*UKgyFzDZ62FP3hpLme5J1n|xQj)!ZHO z+ofH@U0yvp{cf$4-ml+t`Ca7Blx}eot(#);sOWqOBXZJd8@e`TTW_=i$Q_RjP* z-&UMl{dWCvn+f?AKR&o5X9hbLKVJM=H$6J}meTFVa?8s_Y&7etR(?LS`Gel<=R$X1 zyqh@BdT(ZJ-QO_%FKl1f*0$YgI~=dJ&&pEh^R3st=QMu5xD#>r_T$ZPVP@LTcm8|l zpAVZ8Znys1y5QWNob~%HGMarBOxN(2;9kD?=tbKZ8EZt!#L7kAJ1e?wbb7HwXGxbz zRPgCb0he_y?pu_-Oh5fZN>Adav~6jD>7uF0Nzv)^AHH~=^JLW%y=NyMpM7}x*3@(J zRRk10gf0m`6aA-oNi|ACOe=54Y=0(ILv2f)uP(ddp6$w67c*zi>ZUHGu#N7T(KiEI zeV1%;K4g-TOjhd^-wzL_1@xu1QU=yki|_?x-{ID@&@7 zN0f!-#6LDmwZ4W(y`1tV^UlkO#@jCipZ}FEF=w&;cZ=fqXE9+V+rs+3{d~gxqkCoL zWY(PNDcqrYt78H+CTWRjKHPmO%&WXNz%9_P*=5o%-s`i~we!RF?$}!A{$$u zXGvtwef8;eyR-qnt2FPdJG1(2cU`%3^>biRE*ZV(w+e0^al+EgVGV|N= ziB{YWZoHGy?HC$b85&dt8KOlStRguB*rqakvj6z~U&DkW!u?O?oM~Y1V5(HPY{GiZ z<5`Ww5(UYpycalr9c16YchPy#1hq->ZBEN4)@+cS<>07cH^uA}bE(kDPrm|J8`$Tt zxgSpbU?9~W=E}aP`{H_oFA~Bk%GpPqB7AdXwz0M!lze>dQQV`S9~ggFamlnYyGkC_ zI@nXty1^&YFVd}bS<&JwRW706j`$V1E2Ss+s5gsUkXtl&N%5lB3$HJ)Ke6CUz}Xe2 zZk$RvYjRNLTvO`FMA4+RsmAHE6aAk}csS#M&Xc0YV$c7b{5->a_W9)LHuls0Z#@uu zuw)@aqOf3L;G!3MZY=oGe0RD^l4|UdkR_5!pQp|{9XH*3;`cy>eU3>RPQa5 zx0e@n6z+L*<(bV}r=9V?8vY(!yiRpV-uC%&O!Lg*)b~i&g#9h~qtCL2WheW0`Ah2N zEhpQ*8OZNdHUn6_IJK30oOv!-sB7AKg_&dA9Tg_s`91nCKC*GKCOCx zcIo!#_rKQ{%#Ho&^Z)Cy@(l`mmu%XzbJDJ;-DVs9B`p3Ceq!0BZ$BAx|37o!w`dTU zz$$fsXGepB0Jo6?=L%-q1g;#1GZREocq$z^0|dWtRP{S8ZV6nbVf0FAmFQQ|XDz-D z78i)xbf&pSFTQ-?tpvy7KFg-chREYt3Bnuv3%6LP-wC}_zDLYX_m&?b7T;*B8D|*^nsVYIHetSxK7V zvvi&Ih?$YAZ?3svx52$oz|zaY)KYz?(T?8A6_sw4??27G`SkR9-2+-5JU=YF5Sgei zm>cM5SXKBZuZJaWQdC#mEI&5=%}UnF<~sLRe(?A>F=+Xx?5Xdwu2e6%y7t?ztd`74 zTWhw+mhzN@etGhBDlZQYztmBwc*Bcz-^pb|x{@2; zWw)8G%jGL2l|`hBa~|y|XUa`V4~j4{dzvEkE98@8-A4te&y2@t`IKQ z^$WV?rn^ijim8rx7k02DdCR81Vdv)_{cU9G{(7G21(R21lcT+Er&({AfA8g_m*?Kg zzKxgoVP^8TC@JOH*+bDUWD}bTy%KH}n5Fx@%zo8>>1o5%cUzBqz1G_ruYLP;pET1pN(6aSCit8lo3)*R*IT6rSKwa^4wW{6+9+&n4H^gW9vLV2k3F z?Oo@-K6#75${C4kG`?AsiEI}SZ#n+B`6IK4mIy10$iaRCkCom(8@yUy30|D^qtR+! zTmQ0|*ILUu-|6gS`CHtk;HH!;Ioa&8^fL{yylHvYjC1nd+>%L}(=#VKX7Qb^HqR@V zfBKYre%{QLz#7J~pR-o+Q>(#IHM!{I zLQUq(vgK*#Rpw7UQ!#bsoVC+F>u&$^sIkWB;8v%lr}?{0x@NC`HLYw~1HttnLt+4u54o-HyvJ^Isa9l6EUayGoRYWGZU)~>w1asEfw z{|Ub~d^~-2qIABFTl&4W{`@`t^IMibS{`W3DSvT(-`U!qi~gHt?R#+h<@<;BCG|S` zG4UqxHG7|I-m*nzqs{NjPt(tLo%1@XRcM;Bwca;TxBTtxT^Fk^{<_un_So6@5BkUB z&CM42?mqiE`nCKkRrTGqwGJV-7!r<|nb&hLHdwPCa69(wS=7a6&)f_r!?MoMZ6r{{M}C#94lvZT1Ai&D~Tl`=|73as??%gf94%8m8%i_-NCEiEne4UF`S zjC6}q(sYX}^GXscbn}XpA%?)raY-#sF3Kz@$;{7F0GXSZlwVq6tE2?7NC5^Q?o6%7 zMA(#94E0uWey%=9M&D4+Kp$>4$as*bRX}D%YEFbpW^QU;ab|v=or#5^4Ol&f48lem zgw9BWP9t*zWSvMdP@OjVAP*pU2ohRg(I6K$J1!f2aJYiP*pBP?$Mj|f1_uUD7srqa z#<#WHHK9kh{+s^%B=aHTJt}(~JzW^HO{ay`H05$em?mky+PWwxXX(@X(Wi2kZu#&1 zF+OmO>#q&pw3cdJd#zfrdWA-W$ye4N92zVvO`kZ}IGz-K`m;X&+srw0C#!q<`AypV zZ2H{2=kIM!KVM^9y>IWeHIc#}|NVX+etw1_vy=#&XYGBiEdvmb~Pw1;3zR*x#cJ{uh&$6f9u@c-;>TdYj0?}E&O_8 z`E$QLThb&iSxG2t-8{MR>+SDJ@9({hFg#nIdhe5I#8!jD^-3x3XYTu*ydSqFepcg` z*81aqmiKno+P-?CS1Ne#mge;(a%KDWEz^5v96rP9*6#1hd;YFlva?#f%uCjE+s)@@ z5jCF0yI0@4ZXfNxPioK3r{ZEZ8*e6TDu3^{X2#7=C0Xx$=C+%jU-v25Ds!f0_+E?a zcSO!Km#m4{%+{@TGyTeazqePn-MXIl{q5&7+fMCXwwR+Ngr&**(51?~TZ%a^xvL!( ze%id?()RBa23oel_4RKz?rOQvcwthGm%)FZbz-)=Wx3b+x@Q%|w4Ydd{G@`-JPVOq zbJThdJvEixGWqNm=}QyOBzf3Yuq{_K-dgr8J>KfzO6B*OA*x%y{H|y;;*-H}kG>(Da1gpSdU0-Shb2E%iL% z>EV5){1%sYU;g<0ZT5tTc7lJae!l0;S^iHuw>TtzH~%-|+iK5ebtzrgD9EwO%Ifp) znG&f#PIu4Y&HlK&U0m7w%EZje&k`^4KjW}eKWJQHG)>p%_?Fb0vH~k@Z~QtJRw2y2 zvATcqUKOD!Ec#w^g%$t3FSWIIH#oCDdC`hLwi1=CCk{pbnPP5RJ4HK9NbR1&_31y> z#~1k77vHV^pj%UZa`p@xJ;~OiHdFhjcz!PUE$WnW&t^^BHldxIO^q?$ULH>W+OuO{ z?&6<3@rgt09^UT4mv^qd>vpvEi_W+`=QGFo9Vcg~w`)iLI&#l;j{gR(E76bZlJZ_M zpZj9BGFE<_Mc(_hxBcEu-FEAG?)QWBY0*z(F9)(%88JDkKJ<3`Y4y!k+93DcBPp4p zYwM4!`C3_#`JJmr$W!y_q0>*I%FdQ9NlQ3czTUCx(8o0p60uJ_dZJgw5hPeAHtf$Fuq!n-XcXZ}4@J+RPx<1bD1yJvQOe(*n^yWs@WI?^W02o{fDL!u~%qQ^kKC|DE{l z&dn3CTW`gi+s8DW4hrTuDEjQV*IwPVJJTlloITRyZCg=z)icG;gjtib^~B8|CezFt zAJ5S|$IxEx&)3&=Wd0-1gI}J`jM%y0+i|DOw~if5IkVg8fXTsT?!1}3a`$4^*uAh0 zed#)H%TiVTyE;EVABe6IS#P`9V8L3;LgQz82Tg@*pXyHeq{pGLK2!VTiRuE?P0Mr- ztm^4(@?E&axpViC`^zq;#Wkqhe>{2pjP{$#pEpLmI&#;qcKX>q`8}K0+lc?o`S(xZ z=j3f~_%bi2DHnfY{j|^XlxUoc?H|Ewx{;B=@?W?8J|1rV=giE{2G4^|rf=C|aqx-n z!IZ75Z5Pf=Eqxx?FWR`S%i+lH_xs~*laKW*n38|&t-JGDR$8sJHj{eNO$z?ZTUnpA`OdB!@klCViat-cw)66zpOYi{_inu|u&DfcRL|U98?M#nes(_gv}~Qj zEE~J;J6m@|b)?;!Z2hOP*%`tm*ZocR3?zR2@S*~BtkTlx(tWFvL5)z6Zj zFrRbZ@_**bPiI2E+7~}wyrb$|(B#)W&!(6z;GHG?b-vOCRzZ$eGd}Fn-N~1t)O)5b z!?tYScFFqsB++Sq3bskI$L&oJTQ}cybz6gBIq$Scrf<)ZUmx?mvCG}XoYOOT*@KPG z-~Nb`y7uR&|AC*oH*NG>v$i+OOp7zPZo?UgixsY|ClbD&)0Y(f`nBL&O%a1)#a^G2 z-MQ=koG#a|f1Y@Io6M7LscS4hH=MY+QS`NWercV0&!Mw<$_j?}W@fZ#=x>_O!^Zgg zli-HvovHoJ%{|=l(_Y2QsdZiT^2*-!@`RV0au!B$2B}Z~`Dyk{yGt*>bQf=2r)#x; zarK1F+Tw9SQ(FGm?mTgGTC4cA)9#0FRhqKQ*`K|7<#s1wea@HVcb*$B`LucyFJt$S z%&e6Ae9spj^xSst|IPdJ-*|LRt&I4dU?%o|{rbE~mkgdyyLB=5?(MyMU*$>v+GU0!!{w6rJ=gd*1plhk9+gg>dQ|VOJ{uFxrnQL z!)N>Alb^TFpZT`#ndtV%OWTc9Z8^_st`-jdugw%I*SKI(!M9DB5j!v5&#bIkn(%0e z=8V68RU`DLt-c)}-S27|cHC*r_GQus_Wry%!|a<+_O_pJtVuU&B{?UH{mPjmd^@pWUtzYTauu z{dxWDHu3M4wjS?-xeedWzMlN^(ejDOR_6Sd@&yD>il?3TD(7(Qcv~;GJ^gm#{~y^F zuavi%%+D%&RjK*xV5R&X&Fa9&*&AK>gIwpHEa+U(D#>MkGs=6Cxq9>m{pzbVKC^#0 zKbh69pdYvUd6v)aJiAZg=NzM&CO^1#Jl%6|Z2qg-6t_nLVdOdf)zcqSGF~IvrPRad>v~ zd*8iM*U!hsX)E16{bT*fpD#DrzVX=lq34jQ)4H7HGExbdo8;#`n^J!6tAu^o!u4lW z5?}HE%{}IMqkD~Oa^Xw!<%zdaAAfvd*4|;;96WJnvSpg@-#FfNuiq6Fe6_tgbv^5e zIZyT|v|77x7hk-(Blnz6Ox3%jCo{Jl+-4Q*}^$25J>q~zyQ zGF3wQl7plqRilMGbmV!z8E#n7FkSD|C-H|X?Lhu-IUu3VoxNE+p>svU$daEO3CFdweHZ2DO`Yg-GXIoI zANO;`tIM^{-rRI9CVzIla`vRo#}D})7-etOk&nEtUpT$cGA!@ZflZo5X<=Sm5+uOo(MqJE8<)?z@q{8fH zSJ>YF<6XqGZGXdcyOW3C3eS;P`m7{2=I_Q@_sdIkXB~Fhv*XO#*2vzc{U_M7iWKkt zdCm1??pSMMalOav3+vT9pU-qUQF^P^SEP8tyoq6pTYp?G zt^3WdRCZf=_MC?T7x%>|$sgZVHd`23Gr(mOv^o;b!PfmP9xiA?K5ZC zrD|O|zG1S^%jf4@J$@UU&;O#*7Wp~o_4!K=5-%x=T3+81vhZrxwC1PXYqo?;cgS|l zebD~4L~2LO`c(Q)hMyHJ;VpG4~J(IuwV1&WvBKdcV{?!{S z4-32X%iY)goyL)D)%oe6>x-_%vftzSzCLREm0ufumL*s^F4-f0+UAS=^<6slE`NXj zy%}-qSlF$t#p#^4E5E7Q@v_XHTX=lW0Upc!)#}nh>pYKV@c#*9c5DADE@izb>~fr8 z*R3Gyq-)LGf8|@PKNUXST%LUDyx0NZQ0se=|2I|DcphKw@?HJo!NA474~~1Ty&#sl zcItwE0W4PXOb3JAyNf%{mhdTNJ)c#m-|WwK&2C4;m8_(Uq|mE!%ax0!gelE_JL#iA zU+2zkYj1Bmwc~bJ&TotJ{Y4>f{m#b~c#D0D3HTl@rgVFG(QJ!SPO&==jCF)N^)H+_ zIiG*xtQvXYf5n#?Mdy|L|03T#_4O*#dhvF3-jZkkW<>lx#drCoVx`J6AKBD(BJXa# zdSBz3`gTSA@5E2MM)ordpENJqw&?2A1Zmk@mS^uJMPFXm5^G!XHfrtP)1~dN3*;`< zt_mogq!s@CS@+COSI<|C-ENbYoJa(6`?E*SqdTKbw8sYN5Rd zqw4`B0UM!d>K3cQCiR z-{#usx|s2}(L38Z7Pp=idwb`<3w!!A|KtoC+2A9N&cBvUzY-MxD|tuXwf(Oqtnqj@ z`M71*$(X?I--ol_7|8R=1={|)^2~DmPkr{68t+%+*96<~U1FYBcv50DlkI2886!@CIAos|k(%T#VReqfH?NPUp|9wYA{pzg=W@3-^ zcW{LJ&u_hdvcUE5!m{1lKYn}i)Ve+J?~!+h=Y4&fDskvhY}V2*4I00K1v$c5n%oar zU;D|^kaF&oDEEfSvs{K^iR>pPwB77J`t>ny-xM|Bnp7E6?rJ`39h+CTLhZC8)xS+j zf2rtk?3`N1bOp)eQ&q>)8Ff^Q^Ly`aP)+{GG$T`2iTzzgdZ2HWX84^5=a`w^M@tvY zG=9D0?xp|po?P6TcQ)?RqU0}+JdKJcD~j#X-*tR-_R+k9{J-~3G7;o{W+h_we&O!3 zUsR<2y{SxJt9?-?=Wc%fgv&-pRioD|y8AFRF!FcvgRPZY|EEvr3;Sgk;?Z_`-iPba zx9%J-*nR%eIqhlhBGbRrC|=XtS2kt8>46#NJT~s zi6&F-uJQl#w&beS^u!xWR4d*bH)5MTtL;m1)fKt)JdKT2=hXX)ZaL2NetrM5^sc`Z zz5kojrFxgo>EE=cDJgx1Q=ZmN}vMzf^vy_{6`eN?YaQ zx%=>R|BVkbgkM+x4!En$6wA=~VB&@n-OY6qLqAWQKS{66+;0BG>hJ50Pl`TLWzoga z_2pBCaecu%X6Yy5%{>csr>_6nFLVFs=A#?h4r=?^KeJP1_dk1dm#p8JDPL~)%4hwu zh$}qpBFz7$NA;e2W!NXL=|8t5_3FOVot1S{OeCk zx908l^NNpsw{1RJyW%V3zX>+ix5Upp^!4q1h3z*g!*1zjrz|_4Ur`H^(qceDN4A78ZDd_HUwT+^Rl7h7}8UO)I!O;W+P`Qq$13T{-tewQ2hI_{!z zm&0`@g$@-Rhqd$jKYq9An$uiYv})!O?df}u9~G*&_;tqr9p@E19`(m=5!;!jw6uhg zv+sS9)4cu3%ymUm_aBbZxZHd#uQ;x1S>|zR?(Zio-neeA;10WIBR~7i9{0}4Dlab< zdTh)8SM)IO{$I6ie?E(uS=xPH{{P&!$`F}R= zIho+{LqYSl{;%75zUfB2Vs*0LS@wW?*Q!F!Iz?FS%li24{;d~(ZqEvt-RSRohmG%9 zT$$~rny=3Uw@=r!n_RK2)&2cWj?>I*rgML0ex;#sx98+JnGCPr(oB1jb}rVdJ9e#i z$D2K7i+|=O|Gj*vO@`_Dmyb&lmG=Dq*>pm^`2 zwb@@6c|T=zIOV#!h;oe%jYoaDO7f!V*Uo_F^_L6%+ zms2}bqm3q|@kmIYo493q^pd?QC!()ARG$36dZ4fp1j$wIN$CQ zcghj}W83!_$(y|XU$@?ucas$_&#XYOLXk#eHwV>+#%($u+H%h9%E)=(`FAa3`d|Tv zNoRxCAz!B@g0MM;#s>-uRAgjgOhX}>8C@56vP@~2-QuCF0h)0DO*|ZQbnvvW*pamg zJoc=?)a5XlLxaSe2tyfmp`vOp#a%mWG*92%VL?BTwlFmp467*!vtDPH0LI|Sr`0)YS_KE8Fc zR>91@pu$8>z$jQ*oP>vqEN3IfNuQQK-BaoV0|h<0x}Dx1$tdaXb;{WivtpfFWvHmv zsZ{|1F`bW(ihc+SS-fhO^3+AIpSpVPczt!{G!L+An;AOA?H={^^*H=rBC&+e%jMPs zIf*N~rG*|R^J-2H4>=Sa*LYbqPDE_#qa``*{!<=2R$h9-IDxPb~Q{Y zn0;tvrzR+rFBl3aFuHeKkro&3H2nM6@aG&mi+mTOD)mxlpPrJxQ)*gky1n*lXsr_x zS~saUw8KR-Non;(ZN42J)@0OJ9&P@6T>HbthejgPCiR4xhRrmL%x7Xf25j>l0d^vouvhOi52~ny*Tt-1HM| ztGK?rm1}SOTlH}DbM?gU&(%Mqd~=ks3tg!7%4|)t>O(V@;K@Ot$XB?+QE(sD`ZArgp-8MPS-B$M1rn1)O+MMOBQCEz>$y|YB zLWAwaiEdy2%w4UfPfyy1xtiaQdyr=MBV&Q|%!&P0T#iDjK?|EIO&3Bl8&vwEcbGeHXKPo+$ws?=v zm5ZuJHEe5TmUDacmX^eXhzKpxo;X9GU$Obu!u(GRM~)v`@S;SqZ@xw6pQgtas*^T_ ztGwU}3{~&kwR?xsp$Kp74{MzrJa?4-czG9`$4WR@G76^N(UmH^di2KLTJE4AwxpV0 z(=X;6CE)WcSa7Pa+y8Y&bG?WAYKzMNV&)3olx&YP)R3!mS({oZH15_r`H732SVK?8#j|ju zz!o28EuDiao0^kOTxD1H6MgtXT*>fqhWDI`BOR}1U7nq^xMhOr7EUIwL%B?g)fRzD z9)}l#0`3tVT`Sx+dF=mtL_=H4EUv@ct7olBzLBn{&ZYp_$h32=A*X(JdAO8yH@F{b zukKp4YttT{z1@Dw`So^u@+XgWK8`;j^GIk)Xh^5jE~$y4qDEgez2*u2+Eg}GMuW3_ z>Z~h8pt9Dq-aZlVPuGzrMTj?3s)ze zvkQ7Ac$`b|`@6{<&hzDkr+)S9R2ACd^3;j>s?oJGnSQG}@^&vXT`;_^2(b-4=CpX_4N7h+Qk3 z85Gw3Sm`afjmc(jC^(AyS{P0i-aZ&KM?-X8ugE7+B{QLo9!HZhRh8Ddn<>UlEbDF2 zIik(pHm7%mcVYN8j+x#vy2<+|I-QuZVW(k1ylT*vjHRYq1VJ&$vP5k$hX&JJ_Qoxq zS5M4fTT(ht$6R}POmt(|nV;%@oQYfuyQ*$_98%)7UUFLRzQ**__X6we6SwawwtL)wV@#TdN1e+%>-)r&1b!A~_ z<}}+i1@AT$mfkO7+2waS+mfwnIcT<+i6t-kiuCRI79E=1k0<;LF<&#)CSAu~m!*cQ z^`{pHQH{CP8gDdRBvxD-SjN)p^U-N}06wB;*(iVKe&EN$XO1s?#8I(VRAW)8>CR~9)u4ugY0E6oy!IAurs$*%CAIN7 zv#0f|zJ9c^tje^mGI!sGy!tb9RkOl3HGRo&x9>Q5DfR0UjjddNRiYm5v(Slq+H+)W z?JD+3aeWR&N|H;nCm8Uq|0ZwQy6Mp2q=!0>4_&o8F6Cx4?Xj1n!MY{$UsRolSf+e2 zYnPWtWLv9iVXR_c_d`K-dD}>$bPIwI{T^JMpWMX;W^V%MS0EHB#BfTsoP#v{$)4*gF4s^3y(zl=uDz zrf^o?*uC5O)3+nZ$FEuF?APM7{Ps_8lYP-98TZfM6auFitXa2A%%LfN-iAPbX(h3h zHzsYg_*kH`thGhka;oPwo@r}?<`jp7b_nx-G_PH?g=^{3sTvx+0{5@PK5jnBsJ7+* zRRirUKVDxJWpsVOBe>)3I>r<3hLa|pny`Bx|FiYq)el_sKYyWS$#VH)M>ySUq6OXh zOCFusyT(2&|4n;MzG~1hnWIx?vTvw+U$|z+(fMxa_KytmGk5Ad*pO_#>a;)Ool`sP zb)zR*ywaHFJ1tyEQ2OhZ#fz4C%@W$+ysz*38n4Jl8=TDgIOVM(6}2@(AA4-Px!#VcDx7+n>9aCEr*zNI(wf7HyL`*(w*l|Fam>A&BZC}EhiBm4Dhfzm8fG2L}X zx{HMhFYf$n_-OXwjh}Y@`|yaxDDSP;z6q;&XYTu3r?;x5X7x@^!EkQQ@Nf>naFLT? zIzLYCI%IOoC@XVfoomptE77Xi?2~J>Pw#O$uyj-9M)mzN>fWmh1D+{NFZ#OV!S$jW zHjbVaIjf?$S8^l6l<%@Jz!Easmg6}c+kIEkS#L5}5-TlnU$)_jAowuF) zQA9QIR^;BVCk-q7WsFqbcpU6giHVjf^Vs2ath@JCWQ}|HiCqUp;}q`)Mc#4Tc1Y=> z#gp)dn}a7>Xa#LBT=A~wK*-2&+|tXe-Kmndz|&hZ%faLw~sk`=7se1Og#Fb?#6NZb$6PMmu-oD5%73L5BK{! zGrK#5&l~!g^YCqHSQffvV~?KsrS-~;-MhV4&1-Eqox1Yyr=Xi&U1xS3-rYat@d3|- z_=OdZ7BQB(Yv-t+@1InlzTV;NJ|%%^90grH1)d2D1m;ZnWoZ=5ysl#M$5)f`W_+E! z`HaoO&dYvDi!5Fze0V3{FyH5WRjguX#bfK87W$R8A;l?h;-=8Wr^{4X51re1 z`>^_+AJ4DZ`0Td{47sGlecCh1u~=%7;UOWWWe-KKo)=X;x~Oj2-WPL}ld2AAU!K;r zcgu`*xqrld$o#!)#WJNOx_$mVaNo(H-K8NYf1}UQTRYww>@!*?UsX1pRp!Z@x$H5X z+8Of|#f~>-c7%q?>b@3GU+A&qf$;H9trJ!YW{VX~aFtC-WS_L7ZJVou=Z@TuSFVUO z>h&MEveI?O2dA0IS_>nd_iWp>Z@Rwt-U!1x5 zj|7;?mMK=c-kLgfO42TGy`+L)Pdr6rZuMW96cl7u_2pIXy?YW<#OJupl*rc<+@71N z$+=y3-mF7P1R2X@+WF=AjxSC`*K6P>Ns|72jwWhSXtUluC?&7l5$6HH? z>70AuL(Rg_ldiHdTZ;pI>_aMkomv(A@xu}IuIZapWNfRh7iacGn@8S>ab7L(cqa;tWsJn4c&gzPHZ}Sv7ovxmo3s-Cm`9`ohJ#lwcHgjT;0UYe@m_o{Ip^P|Af zTX%PC)X~=xIn?LUBav{l({1C2ADmO%RTiu|Uhy$UGs;c!U;o#or?ZYHTdGIG#P(!cZ%{O2&LwQCZpcAC8MJB>&No z`Kb2b$L?rB^~VQP!m>M#J}y!$7BcIcQJq&d*<=KTv z1%um#e4Pxc4>l$rmtvAL&6;v@@l>y!>Wan_WKJ)tT4O%|p?OYa0WSWXtuy|%D7t`TJuVlaKRcnwPAfx4ySwQbDfG zm+9aDoy*ra&$jx}rqgc=P$q>XLYS zCa*(ZA1_J=kD$B|;g}#}$yf93X1esrDM9*6S5i{soS3AU+teT5 z-Q9iQrrPqO$zj2bFC&%IBrgYaf9_`Il~VDGNm1kojMf%3Z(SrY-(1!;8Pu1kRye@d zEi1lPs8Hs7*{nA{EAy88>JMV?zZ>LP{ls_vMMJ>^>jzU5y%xwUUTSixEZKaU=I)PD z&HH(O9&33j^LWGAi?@DmK5v&j$wqR1<9CDDWtqp@GB>z#XRTUlY61$Y%MzJ9t_mwS zHYjUrX&GH&?$2HRvTlWHte54R4;rNfHhnE?6l(+%b}RhklQ1~2g>{?!JY~+wGP;_Z zeOV`MkT#9e*U@1)ULsxOo7s7N@AHkd%l>*inJ0Fcm6g@>e2Kkxf41@hl^ALMze_o` zNHe`TV6lJh?A@DlbeMaN`}Jqp_x&x@=}XD++_ka#Yt(h;1CtDnx8zDEY2MtXBN)B% z#w3H=y{1<-6;|e6Ul-eE@!GlbW#Q(JcME6O-B!7*!dQI1-^J_2*}&}Gm${B7t3E7P zQ>t5hLNH;ud%p7)qg3`XwZ^%M?-Ql&OzwEe>C^ecC*X}#p=X84gO(N+<0*-^8&ng$ z59BRcqIUGyW{sMEKcC;&o?g>Avvo^3aF29|o5Dm4ogdI!9@^SwZ3ntb9EhfMzm zY8Kmcw+Ys*`8cCG?zydsr`%_&-W7I#J{-2n%J80dXSez6b-!gUZ+mH!%l2&bzJ$xA z@x{+?*V@VSO>H^6aN5=$SvJP9gb@4f(;9LcZ!FySdFc^H&K9AGZ66#Po}9K)?+lbG zojg<3``ylo8lDqWyuAOuFiRUySVIp`lJ^-(;xgWzP-%)Mt0t% zQu*DF+YWEsxAtMc>8N9TjSSZELa7PqH^pWq-+J@LB0o61D~sF3+Fk0;10})9B9b~Y zH`+#QDi&5*nsD!MMNYeX?U#v}<~@fW?CU@N?cRaCz3Jcglzn5W&aW~dDg6`%O5u~ZZf{Jr*gC8|6=oZ)9hW}zd6IP zfj2^3=Aah){DbFa%#LQ_y!P4T?gixo{koH+IVXJ0?>zU-^3HB^E^d{iI-VfjvvsG0 zmRZa7SKiC>xi5Ep`}5M>AFY@#KiK>x|5>O#-|KCXst4u7Hw8mxv9;`&V09T zy4vg6Wo&mQe_`^RVY%(esbsHZf6l)2*m7a}_nnUo67V($H@<-+~2PC{3Wln*_o1>8qOa< zAGjyTD%RgVW-ikCV4L{zLW!js&6f(5SCp^x&SB0GKgjpy#}C03iZ%iZme$6_$^H8N zK0aAB*E{dG?7N$K5*ZqYuW?VfTBMbvsWfCLfzoZT;c(@5VjnvyPYl-NbSx_-@MF9v+@! zyb?|S1PdiPD&{n++zFrCe7#Uay|pXU@h#JOZn;guMIg5=di$ek>b_;SHwq-owyOG~ zaj))o?&W=MJraq_bPT7zY1a8UQAg6_R!rIiXEC04-wtiL({lUDMr*r%=GzwMZ+_l$ zjGrOz-M)({N@xCSa++Ub_@!#i^5^VIhxPLWWH$@{{xUi$M zyViL}d6LO5w~7Z7?{DJcJLjyg)8XM-St=TLNHNssdiSDvAuJ+|#{?911|~f{<-Wyo zK~>e88yk<6Z=U@|=jJD?$G7kM+?JbMvi3{%_pgG53O{e%uaSFPeBLCt%I29R-^G^| z1$S?i{OP`GyFR_cVWy9f_-jY!eV0124jo`T(0iTn@uda}|Ghyvp%*@#ZQtj#dwT+l zn%ft#pV$ANbyi->Az0sk>c)n)4-N|nV zUgEH}*Y3tk8s`o5Iwv0Vowg-X;U`;O&-;57cZJs5p1(hB$6Mpd-fP!Y;%*(E&|-Q8 z)VkMG`)BN)YI}ygj(yMeSdN>4_h)pgJehd7QT4y#t5*ll?b!HVFMbNg5jU44wYHhP zm)0*WG;BSv@RiV-LwYq0!dk5C3D-sICrR9P=E_+AyyU3Wt23#aQoKCBPxiMv$gRJp zp;y}c(T9hJk11T3q{lhw;IZv3(jEs?0=!q5_5Gfs8vp&?vE>KF@2&{?n!9($R`=WQ z*L;00e%30RvuS3&*^Q>h2M+HqU$a=_ivw`TZFNz z;$2;*nytUqeg3^!B=m>=n}cdHjWxk+cW(Zg|Lyc-&5x>?C$y%=FS~ZKqn1;;YFF>; zy2{tx*`5caI#}%PKYQ!5#Ps)>wo`%ec2DL{91GmR-5HsLF8Cht02LR+{hZcRu2@X;Xrl!B?#*VXlpn{j+4Y zgoY@+O3~aGJ5MQil2?q;hBG;nX5@#;AHM%V^HZ;u71Kq*M=iFiX0KSUT(~Rf+O)NL z;*mR_E{lrUoAT?+%QR8pI!^oVcZ%I=pXh1zTdqyKwI#EyV|)JnKHcbTSGo>OZ~x52 z&MUc|ih}Y&O}@SRco+M3Es1<9&;D@D1OI@Iql;SXgcM)rcP$KaN|E_>bWSUG zbq(*{N?^M6vD`AwAaO;QR?pJSg}XWX|n7uWJJo*{{h5Az z+Kt<*d*=SN^g8rT>dkznn7_G!`ut4G?()f4GVJ;9ukbwnz{0%;g#DSH&wssQp(g9^ zL;LU5^7Gek;r{;bg?q>MBM+4WnQeDHQvCDli@+CyEpJ@@@Eom>`lQ4WI9K+&>XNeA z9qYgBk$SE&r@dlgi+@N><9YAz$<7Dw2gbZCXG@xY`C9ewrfbvJsh*jt9scN1x4xOa zR=f$D*RA-!ufh$hzGU2~d_K40>(%hrsy}~Sddhu9Q?zEIE@$z1lbs(J&fnJ0thPVC z^F_jfjelFKe;K z|5$r!+=t`KRpxoD6iiwns{P?)ZL5>e>rK}lpH2=o^f?wUSNr9>MTLU@J_+`d9r-;u z6IXO}9X;6c&qDiUl8%Q&*TTZZ7xlmCsJNB8$E57(k#z4$k!jBUmG)@9dYpr2YT)XS zOWPuR-%3|yK6I;61u8iOVuyOYMM^h&>{N;C|$ShtB)=!R6%UET64^L}lftDqQ-=`a<}!{BiBRPA{vHC5H`_ zS54jdJWE^USn2DOn3zM+`FmUU)&71Yeg6mBv3_}esXCMPmY<)3xB8s+mG(HKQnSo? z(z6I5&i_xR$8QVVb!Og^6PwspU)~(#JDt&odl5$qBa_#mH7QF!B(?2kl`{I!h?u`nJ-@Dz{#0nn$pwe^ne9$`Q zMd=+A%cQfyr?lA`x!LH{@!09!6)h41b*Cpb?YzasyU}A3Pl$T{-Cd&L@wHneA3y!E zu5Fp%26>r30+}An7fZBwk1KFqHs1hR`tZVr!{mU)+~o|plYK4bs8~HnXnbqPHlaJ<~wsqR$s@~d>nzYA1HcBt(ot;Rh{F)%1Uit2N=|A-o zWUM1t-s~#q=2g}@!m)b8B8K_Z{0Y$yrEdi9*&Nyy*?2SeWWErab?H0LebX9digC6) zcE0m@SKBj1hc$0*L`Qoc4!e5R>N035bS^t%ZE|F|lUkd{b`H+^4XhGspX-nNOxfEb z$SdB|OKzc8Ra`3iR#&yU8d1){7nMo>ayQ+>U$9J4?8?O=Za<_mcdX zRV6_wk5!CiJC8)`B=0jhV)f?i;pM9G$>|r%-e}xX+t1ITINu?ZBlMyU8|Pu)4ULnc zALK`u-8JuHFkITTf34??Cw|)Dyr2QgodN+u+rGL6+3E`EZa;ri=-1on0v9*SFFGgH zyrNj&@ypN2g4PzIS5s9rem~I-*|VQ>>h61vQw274*XL%X`A6NWvXXXf_cmDgeCduI z*F#^(Pj8z1H2%Tf;MpI}eGK3D`^xVhYf|)2t$K0D`T5nWOdERZW6EP$ zX3}D}`u}w&BrJ|_ygl$e`*=hDO-!`TjmvzTNt^BCG3RTf?LR zW>Y!EC36Zsnf#h6dw522<&R75?FIi1e6)xyV#=4dYxv$Te`vYW4c639rLSf(pOU)^ z_gqihV_e1muj-z`7pY6k>fC$_e%zhA;zp@}=sl*8X$7LH`&I51WK}KQtgNst(qmew zW7=7!u(esUFP$jKuX&rj=|s4-kU?==h)U~4P$aH(a`3#tK3^mLsD_r@-9?iOE=+FP z*eRSM-T&}odU8WLN7b=;nv{oHIr61pU zYV{Guj)?H-Wv_c5Uo>1HXCfAQn2qW9a?9ZP-?}GWKUdyxzNm3>yv4m;tDMp$@2(QN z+L&MW?PiALA#vtCd;%|?C@4KD&h%gV|HrRCpIvm~?nv+d75aP6Ic_nT<9jL}9dT<0 zjrdD7eyhxmo_qFzngf$x&#S)AyJLG!SEWDL^G=*gkYCX0UFMpp*|xE7CL}FR4vc$x zG=1rOC9h+7$wyc1yrVI>R(92d^)p1Bb!N+`%gYtMxmeAxs^?Rfgs9tsU!&2PMPf*uv+Z7Sq3 zidnNxU)X%+CBywc_doi-DfN=U$;)>&%~f(g+N_urM>;HfK@J^}X!q;CbUgK(BHt`^NPt=6df6 zm!5gLR({&6S6UMryaVEXD4w(0B3Qrrmr$F_k;nC`?GMZOYqIsp_1&xeov_-%M_*+A zr5*35C;95~-_V}7O^NU1#tFGg^VbzR>uy*Sv*dX#!*^W{700OiMGIN{q8G-efB&LX zK538J_0keaPy5S<+xd^*+gp9MR)xdrp@Lv>oc3L}TMqnTtgNhRvBwra*Rh+fuQT7b z{&J1k+~c>WhP>Ik>$~!WsLUDiQPKpbSez%Kz4kz=jbze}oEwgslTrE~9SJCjf$KE~a@7aBVrBL;xXs?Cu3ZEtSf{jvN zWZZmi5w(f^q^f&i;6b^bFI~yJU&NMA5qu#l+y3w5-;_Bya&BE;c0cN`KhS;r=;P4; zbt~Q}>KU~23$F}QxVbI5Ch)y*ZJB=LAr03(xhG?uSj_C!d3;2z;ML_u|Au5GTkePR zJs)sia@Hx{k#h6QOyjd!t|cqZx$;XXCF(KltNfg{dDE%s`@X0?X8$Gs|3`b^KPamK7-Bz`1WIdVTe@L&YVqF%{fAUbv%FU3~#)CpOvkj?c8sz2~`t&c;~CWGi>ef z@7#D=I&x8;*!CHpgywoaI6Y<7tgfZr)1|~G)MOSF6`eVBk9Xvuo0a z*z&unF@cjLb_fZ_8whE}dQ7^I`{4AB;^%%jx3+KwFY_^crz>Cc!BN@pvvb4uNeet* z#5nmnALiJgoRhg>ZkqS|>%VugF-dEX{rQnc4YFwAC*@)iF)2 z317*YT(eDe-}`q5>{{O2{^tBub6>ys^$q!&FBjd@B!jaK?~q{mEw}CQuS*5XmmmMC zyg=p6p{End?c@GEii`|0kd&WSCm!v;x6%2L&Eh?~c>bL{=e=HSSS#hP( z>BQuehaK|vo(jJsWBgj&8=vu$i-$0e`Gx`n%9T5f2>v^nlDP1<3(ZL{)A$=4iS0hI>> zczh-n1}Y|)9eDS#@W-(mCN|%W2F`hNRru<>i07J@JPhMFzN>$3to|Q7&CBLhgk!$= zs(V|{evGaSTC?P(#Sd#vTXl38+Uv5^#zYu(|`|vOIlSO;qzh1Zd+?uLm{e|8wW#{kQ zO5UBH$0;#idcM1o`prH`<6}ChRe!%;f4ud2oU!~}nOjNw9Uj?TPB$^vk2Rb(X~XKU zy-6jdD|F76x>W?0T+ZC2^yLWpl#_rS;^E1-lapLA23Ef}*n{Mx|-Y&WNsbS|9 z%SL@(&)Grxp5~5A$|otszdLs60k`MYFU#lGW$o*VuY4-{xoDC^h5Y5zInP+^`oHi0 z`D}LEmT2qT<(B7pN@bFqnetv%7<~4>Q(=F#;nv62U2eDk|ExKFgDr2@OEsN{4Gb|J zN4<7`eY$Mxkr(^!%LOm>^_9pC4D0+pbN|1u>)nE$No?*7j*t5?N1jnN(O#^y&t;u! zx#8YlcIS?@3f5+E%n*Dj{wsLSvG*T1(@xk;$Wv-rFyU*{hOH72cR%JQHK^7tf0})1 zLSYk+!2Msc3g3etY(0Bv_O=|YN!EwoT#;7xEx+@t@269+R$2ewYvTGJ=BOqM6?rq; zOX((XdJKxp6M`rEVZgOKwM&r4D^*k-n?ILH-mCN7eKVJ3x%*^C4%w&yulD`Q4er|2R74F8f z#+2{Ov$^W4RsOnvEqmjnsO74(&fLSj`>H>qez)PYnvK_3ypAfjGnaE&^2+S`vnhYFM92G-J#)#N0X{# zQJ?AYW1bVHM6AqOeypkRmez*FsxLoPsw7XcnScDOUH|pltDW;!7iC)UDj)c@WXa5l z6BFB%rTT8#g?k(dX}#R=`dW0pseD`R&11Khi!7|{dc`eu@Gp18NB1X-%D1wMyMCD} zn8?1aK2-j2)|;jMYuw&_i(O>0=P&bvlj%pYuf;m;vz1*rHYi$rE%1H#a}22~vIB7Z9C3jeXlzPGPkfzcw$)etl!^ zq}d&n_x|3l&3RuqKl{~=eXn!8=d7!^=qf%lQn;*Yif{b)Qqbsix93^OzQ09@ZO%r# zF9i(`RLz}sVbPp_0crocYJ!E=pJZMo=Nj7K{!gXP>Yl**$VaYP?-wkdm*>1SW%ADp z9JyT#S5L{@R^<$S^!7#L++|ZQ%`DGT$?(fmw9I}X!?8gwGJlIl+6I*z&xzG+s~aDd zeoxaoWnVr2@7cY-V``6^odUac5)l@hr7f!9tHL64v(3)OULqm(ZV+sx|Q$73$VDOjBGe z?w#88eob<`4)bk|rQ+Z3T;k)en~^@@ZSU7(J9p*jvUN_BUcdRjWx<1nje-et4mPu2 z|Iwr#cx$bphVI2%B{$b!Jk}^bZ%V<-BhA%p-HK0sg&g&{ zzU<`h8^>M>zTS9T?(pmN`{R^zCPY-)+rBBB_rZMsPhVrVvkUp|op+7BF>eOj`OFLn zM%U$uIkRe8yHzeYPqp4)80_^Z&iT62fwHVS<*g1^)vPm1EpJ$6O@7-a|A(24$KWq_ z{bldF@9Y0pKmO3Rdj8oNhKB`omxg++|NrN?{l|B^-#^;E|L@vBVg1NWM}G7ypI_m< zOUJhVW_sabZLeiJi=KKpf0B8<_sb>kUKT&5WfL6FSD75Dde|y{#wM|kb#l$mK=(`O zyDwd^VDdWD`}p#j)j1irZp>m0o!;THa`9?`4QmCq#asQ}a7(5-?z=2Mqt_u7|2!4% zs(`k$xMZb{ESUUsN3{#XC=DLdAz(Q&?J zGk@N^ye08<3^GWu_$wKYt`HTv)7dV4HiB^23ey zJepLZCe8mkV_U{WC1uh4J3B7!m~=-)dtTwI3+L;;8Lx@mea++Wl!Bcvn8TemUo!BV zyN!?E<^#jL>UWks(&pz@%+kF3@2P&h;gbJT*Vi0fVp{mf<+Gy0Rpa9gE18xbsXfRl zKBF*U-J>N7GeH|Uj(H?&Fl`mskX*FYuk4e2>_(rht5if!NN74cA6K5Rb?LRKe&3s2 zJm;TP@tdS49`|s^>e~!mr$vkAl)bvLGVSHT=kx33w8PdIaNE@UeI0L}yfcPXGax8+ zR)}*k=cW9b$I@=8e~(G$&nP{c2SUt0S5DirbNN=Y;~hUIp33eyyeBI| zhEet5v5yy5cR9$i+}K#M_1x0Wp5LxU>@SwTwCAs3b`8^;rnxV>{gcn?9zC&Zx%{*B z=~qLOuYOiHPz?>!`rImd@7{@Dx%_9QvtG7JPPo0;)VkSp0+$ZE=fvw8y1_-K)TB_)5g@%smJ zbFVXJG70Cwf*d%w!Q+y3FvB z1ZYTzQP7}9o9)%f$$g1O&+L-)iH~Uc68C7qyN~~7n3+fIIpUV^bdyAkZJoxal(ipD zZl8W-?@Hl0iVr7+NP1Mfvkg7CrEL4Th&2~A&KnoJ`O#`u&#g{~iC5 z`L^cEi@-mBp4%S}4UbJ-ru@<7`LyC|?8g^omY#iXko(=e!T0pDv;VHu{^eLv!v-|zS5bIf{t zVX=F^+2bQ7mo|Ow(^b5^_w3?#uiYIycfefxrbeSP;^m@)9dlnW9p|%F7OdWLamSbK z%p1NRZ{PUH-?{L%oc#;A{)n3DwzUkhtSvo3ugZC6ztjZe>@zUc3FwoTPJ>+vKP3Q8zXguKo4J zaFQPHjva0vw&mXD`B_wF&^ha4WpB#9f`?AYCtQSi14@NTiOzZRWR_2R9Ah~#)&JMG!egOjrdE%o z?5Ew)xf%G^CqGQ(kZtw18JXVOcBpv!SuQ$i%sjX1!l$3dr1MRJ^zXhcT5LE?_V817 z$?%Ltw`OJ*trB`1AhqrMwwIG9Y|p=+CsX=CX1QbJV;yPt@8Cv-gmY`LejzDGv>;1~5t8@{AnXA+%!$}n|_&WcU@!pWaIEk3DO0*~H?*AF;`!Rwb z)ApA)Z6B+ut2g)Azf#VO+unHmoB8q8maV6J@0iVd_gZOzN{qO$EokMrtXv~UjBQoL z+?Yuv+3g&6%tD`OF8%h(NN%&ovMCjwJyXJV-gHP>8geUQ1BzeZGXc)cybezR&h8 zlli}Nx2K-viJwPRJiTA#HtJq}er4I4H#w8dKCfI@$g+!t(>%@v?7G~}1I+wiCVfql zHvgA-`gvy5R>1`=p0CrS5(+1>>goQty1s7fv72shZ)~kEl$j}H@_z9Zug5x3{@bUT z_`H4t>KTHj>wM*IYu&xI^hMPEDJ{FhYO^v$8W$)B#N09EnbX7)PSPMe4M zb)TglpMABcThA!_$ERJY_Pf)=R;ca!|L^z5CzJhWiB75LJzNoU&cL8x&yTm;?;lg0 z9&>4hi?`BqH_>uON5&mr9)i01)!x6>Ub|qzxv|YJ>XIKJ#oOZL7bTuy}h;fA!jTwwdIn zrPZENX}Xb{j#xZe;h&URqxZ>yJ7~a6Qnt3vv_`=W}JS`qKRDhfs^<-WPw(YFWFm6116?U%huJcwbq&Q^S+fN2OK>EqgU%lBR0VuN+Wg zFY}uCvPRLX*Hn^LEw`N8+2ZqQtI($10W#m0GKzoaQHeA6{A}YnjV+@7|L^-}BaFq{ z9?Uvq|LbD^hyMCMhXppQT6A}XS)Gh&`MW#u1qahW^G=|-l)3DTla!aUOf<3NJ7YUt zR>rn!i{X?-Q;j?)r+6P)CUW||ipRfaUS1~ilsYG^@Vqg3Q{}!)Ox$|$vYhm!h z)(m47jh}vVEG~K+G}-a!l)K5Xs`q=pe|XfbFLhi}Mtxb=j6Rb-IoqyYY4b<>Q}!8f zPC0V6SSDVrGe|>Oa(?~4pT`uspZJs-FW0#!^!wv+dGjMaU(G@Lj|6|TYHg~{1U4n0W1$Gs}@M z>ohf4E^)DGR*_pvGL^y=k?Ls`EGB|H^21e;o#L6h%O<4zTuaRHXmnY^U48!D}T{Dvp`Mhr8)-w>&J>DQJB-A7N^~6NwvwI$c#vFbgjafE9>{5v1 zWu@P(;&BGuo)pgLi#ETii-2 zSTvRfMJ;6%>zwgUQ*-5|PIlEqy$24=TC3J(+MYeI(nTf7`%#E`@t^6F^q1ap2vX&| z{A=d(movMQk5AcRS+^$npl-gB*CE~Ge(xchYMd1ul2ke;3CyqmSGjqTVCSUZo)wFh z8D2A(xy?n?WND(+^97H2tM(~ney$U;Jo#na?stdQL~eeyV*1Vy#pjB}cV>Ldko9es zSE>Ix;p(Tf1$o-heRJ=vgcL@O2dWM&lJ=JJo@kQkbF?sFb(vaXkf^VIRPyn@qpjj` z8Da5{UU^i1dt*55+?09D%cUl6@%->*k*m;hL5bxC6R)i7x^|%mw2=m3q|*VfrC+L2 zub#92agd+q;H{pZS5MtOsVw~V{{DTRNTrLH7}>)k9+j4FcxPxC+L?Ulyv^sH!gmX^ zGR(bnt;2-!B=f2utMO&|7$>P8FV2KA#?BxHqHlVEf>gjwT1PWsZ`>{3Ei(U zyl$I3xpbk5MdawUi1+1BKkfg2w(oVRa>xll~8O<)XHf~&c5{g`|GQ5^4^}~u9BdUNt=&Hgx!|9taaLw_;a$`io14h`{2xP zo6@se!|}C6LBXm}q~jtkBnl`97Hc}6la1Sy(m65bCHt&Z>AQBQLBQH6Q+{Ih&4H>~VV;!D+GM>hehi1s|_o0oQXc3^*nPcy3b(pQI~W@IfX# z;W<1KcXnU|Q(z;At_cU^E;?)5B=K eAg+A)XJ5dgv#oTW&ld&;1_n=8KbLh*2~7YFW7e$z literal 0 HcmV?d00001 diff --git a/_static/security-roles.png b/_static/security-roles.png new file mode 100644 index 0000000000000000000000000000000000000000..f45ba8e9e11d0c19889513b0afc9f52bbed967ec GIT binary patch literal 46364 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 -o&rpS(20AHt)}Ie(jfb?ctN9 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 C6r%qC literal 0 HcmV?d00001 diff --git a/auth.rst b/auth.rst new file mode 100644 index 000000000..9ddbc23a6 --- /dev/null +++ b/auth.rst @@ -0,0 +1,61 @@ +Overview of Role System +======================= + +PostgREST is designed to keep the database at the center of API security. All authorization happens through database roles and permissions. It is PostgREST's job to authenticate requests -- i.e. verify that a client is who they say they are -- and then let the database authorize client actions. + +There are three *types* of roles used by PostgREST, the **authenticator**, **anonymous** and **user** roles. The database administrator creates these roles and configures PostgREST to use them. + +.. image:: _static/security-roles.png + +The authenticator should be configured in the db to have very limited access. It is a chameleon whose job is to "become" other users to service authenticated HTTP requests. The picture below shows how the server handles authentication. If auth succeeds, it switches into the user role specified by the request, otherwise it switches into the anonymous role. + +.. image:: _static/security-anon-choice.png + +Here are the technical details. We use `JSON Web Tokens `_ to authenticate API requests. As you'll recall a JWT contains a list of cryptographically signed claims. All claims are allowed but PostgREST cares specifically about a claim called role. + +.. code:: json + + { + "role": "user123" + } + +When a request contains a valid JWT with a role claim PostgREST will switch to the database role with that name for the duration of the HTTP request. + +.. code:: sql + + SET LOCAL ROLE user123; + +Note that the database administrator must allow the authenticator role to switch into this user by previously executing + +.. code:: sql + + GRANT user123 TO authenticator; + +If the client included no JWT (or one without a role claim) then PostgREST switches into the anonymous role whos actual database-specific name, like that of with the authenticator role, is specified in the PostgREST server configuration file. + +JSON Web Tokens +=============== + +Internal Generation +------------------- + +External Generation +------------------- + +SSL +=== + +Custom Validation +================= + +Schema Isolation +================ + +User Management +=============== + +Logins +------ + +Password Reset +-------------- diff --git a/index.rst b/index.rst index 4e6582abf..39bf27b4c 100644 --- a/index.rst +++ b/index.rst @@ -18,6 +18,11 @@ api.rst +.. toctree:: + :caption: Authentication + + auth.rst + .. Authentication .. Overview of Role System .. JSON Web Tokens