From 130391f7dfad6800e7a2eb628b5c4ee63967d8c2 Mon Sep 17 00:00:00 2001 From: Tommy Mikkelsen Date: Sat, 13 Feb 2016 21:30:34 +0100 Subject: [PATCH] Added debug mode for easy authentication See doc --- Contents/Code/Docs/webtools-README_DEVS.odt | Bin 95594 -> 95717 bytes Contents/Code/__init__.py | 10 +++++++- Contents/Code/webSrv.py | 25 +++++++++++++------- 3 files changed, 26 insertions(+), 9 deletions(-) diff --git a/Contents/Code/Docs/webtools-README_DEVS.odt b/Contents/Code/Docs/webtools-README_DEVS.odt index 82186fb28796b112d029dc4514c2e32c328a0d1f..b3d29b84bc04b7eaf3a51382ac01166cb31e9a0a 100644 GIT binary patch delta 39925 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 PZy?XrUU!@dE#UtERP+bv delta 39865 zcmXt9Wl$Sk7slP)wRmxNin~)N?pCxA92SZ@FAl|uyR;N{clT1fxV!Uhe|(wAgkdI| zmZde90w=WuV=4>` z9##W$9+LXIt{T0!ygr$;^?prcbs5R946l9)-!}F{D}_|cPnS-km#G=l0i9|$ zjcZjN&S&ibFKbBy{;yv1HBTP7zx_M?C-CmFI!1Aq9To}`6~A0c|6)lPc~VINpx-6= zKr?|)V!#Sbg8AFHHCIMBCgl%Kr&WR5+VL|)v2$qfRTagy6q9uQ<<#>;BRitjjJ=<_ z^+dPt?CoX!P4uD8z=ct=+!=+j~F&# zMr&bqjsjWWbI2gtf;tvVJB@0U&jmp&VygMZW(R4+42mOTQykVO6gy@0xss% z&w_{BsmUN`Oy|uyN&`@ZbMlKdCY_L@k5W>wz+|qtc);`h!_{8r)r7Fa;^N{J;cU-$ zhFrhPasKr}WY6QJ?&*>opTphpZ=#~2xb(_UD0gS;Hd2I~s#4`;mR?Ix%8kzJuPci{ z$L-4J8kKK+C+&A@+^Q@nWDadlr>(X-BUxPDmpgPysV>W-Y3wHLJ~|xvB+-QIIf8Dx z?Y?(~X`RUjXJ;j2g$hYc7~#8P89!Y%C4D^&lN=QUIu#fcBKMC+HNa(3E*TL~x`1oG;^h+| za6wqlk}z{1?0Nd!Z}KdozqRt~Gmn~u#dc%I4eJr(U)QF91?&cPqn2x2@e5po1_x-( zo~$Z_-#oWb_$-Hqhf_oF;CJr;-d-pDPu+mGJ7AK}C+JoDWmcS3zkdI3nhCJ`Be|@s zOb~K7xBfi7{(Q3j%9_5bX?hV3+=sv2$G@dt2BvE*)R@HIPE4qBz_qDEZv<|Kq7sTd zEl<7<=RPYK82mnadp&zQo_wv$k>y?au1-9kk~G9LHL#J_-cBw*jb<9%NSwvX&p(US zdFR^+-kUmIWADG*xesV+&%o)QR^Vk3h;7cV6F(SA>$onO1YWQF{rwFOk4)Z#JR*+N zy{>l0)5%aeZx#%|zn;La=;$rVcDd0VEdJapUYL>Vf4iLf_K@2c5NndBT!D#+IhiB+ zM7n;D;0rbN@8Zzd*-uj9*HToM_ZQoG3+pd`)=v%(AAvZ(XJDJMqzic61N5H;&pO|p zItwyS{{8IxgWOlUcB1v?U4Gqa!w2!VD{;!#^KjrGEdbdI`K7=F+>+9tIG*Zhh+xd> zDFZC;PXEZokv;S=h+R~4K2|uGA~ZPtiSq7Ze!c_Oo$|Sxl1$VmxqydZpHnaxF1;43 zo@W1fDjX2w;o*^1@R-R;hpv83sqqUnZ%Q|LyD`}lGI_mB>;Bu|_{ADNs%kGuKvm`PS=qIo92gg-Ok5(%BMQY zUbr97h4r|M7Gt-^%dk8p${92@`q>DKn&3}}0fG?{>iwTQ^yB2-4%7gjv$giO=gGI2 z(QWkCs`W=!V{;Om{o~(_m;^8l9OCtG9SD-abU!Z$$8SZ~uSDA(y#~Y|3&ddzHV`J| zE8NJjTyBp)q2W^;&g+`IGy+eJCa-@@UcucFFm+7N8F(}GU8>dNWa}CpmB2L0{`2Q% z;Jt@ZH~CZ_jd^V8`Qdy;-GBG*leoXENHnF9@;kXORZm7bKqA z;4^mrUH95X=X1%XGF|>*rEX{1N3qQP3d}5R;Lt+9hOox0V?K9brjyaXUb4U8?AF`O z(jNv>7q+`<>d`VoDMAg#KM%!^rE|i5l&flbFF{zi`cd%=86$4?yW#PsyB9@mF_eT{ zXpiVNDze_~FIx_Ma*sB%UIcyevta+n?DdE2N#U<7&li+$t|;*_F&kC227vgT zn|MjYa4}B6Hh%!@3LJ*5j3GV+I)!ZScKLZu0z)N6GSY@QMN^NQ*yVq};+l?V>970Q z1F*HtD)MHQsNcu#3x=K81nk;C(eTBX6OH~m#n-FOia*2Ro&VcQ%LBTXx(SI( zXokd;PBUBxR95Q_D`6jX+kzoLkmCmSQt<^+#6-66T?z15vh?F%oK!Z*>oRX49JZkq|ysJvmSUj+rQhqs~Zew%W@wHz`O@_4OY%S0lb zlE4Ui8q9(o)haGscY+E{*K%EGEsq~t)A#aP#%v4}2)kkt31Zq3_Xk8kC<5~@`^Tga zB1C0oSwn@CF}=V=qQGQ>`7|Fz8|Ae|vkZq+ngLZ<}QNuDyFr3) z7gv7!NbcxPK1UsKZ|>V(bdAPpDywoQkmqZ`1a)6A0&n}zY8SewUBFgpN*#2W_CP|C z0W=eUhtBk5WL|k)twtBNG;o84&md%^%|i0-lB!awa~J zAX{{PA86XszKo(c2Je>b_zwdnXtP*MHN@bxGNcpqn_RwU7Bfa7Gm!+?+U~QMJdBix-IReH7VP1Tjg7g0sBfxu zz}+8D&yyAS2?@+D7|vwiYMei42z>nO4(!0g=-hp@$+NkN$~b@L!??-QFO%QxzWi1n ztMnl|L)a3q6R%(ed;XdGa(wc;kuzYnSmo&8z`N%^;2{lo2sOD6Jv}`Ip~L5dB!wz% z;zGPDN?c7w--~|2b)O@E)#ZG?Cg29_J&*Y^(Yq7bzULd=U@3ws5P$k9-un?94bAV= zE%&Ll^Qm=h%@|EbS9dX!_cI7I1|!q+!J~j``uAV!>38`GBB~DGJ14MRgJ;WTGRGh6 ze2XRk`F<%sExil)=>7`7{(9TU^l(^F15@UeqE=K1;D|>`TwN*kS}1i*{rbGflRD$U z^V!j{Xr5EQfs!m87qPsmDl`_F*EF2=XA%-r-d-;7dVMgvWWX`_-6q$cfT~)r4ra`Z zu=%oB#>v;-M1aJ*LU=ezi6G?E)Zf~Q*@1?%?xjS!9EVXI+nqGQF6TA z;V)eB^X;kQ>?x3)k60U8jAJk7f+ht{CXRiLrk|4<-re@BxR`zgvON%sGCs$IZ5jln zH?dG6MNc4vx|Pzl-IB?GVu z+k^3)eh*w`Bq1b?g#UMW|K*^|mEU(kBmMobd2_UA zrhB|ME{{HMingY{%svbd`D`eILvv@a1Nq4E zC(kt4C0>Pd#@P*5$gPq;5 z{Oi}RK>wZ)^qw4vFJ4Jrbp z-dsC4@m~bQ|K1IvOzUoM_6FLe4Gav76bW(4fY@FU!Yq`~j9^BE{27k_tH0FDy5H6K z=H{jv06fn2dFEl|nfeA!Oid*eH}R<^%Wj98TpEGoQ1AP=pS(e>+n6VdRGm|!<5QY z5BvB$l)Qg}W$6@J9BJL00VA#{p5!N@0Xz^Wp=V>W2i8uGFJvG94SKVQ*TkGuOe|7oR)utn&cIr;pSklhfQm;F2nNM1RHD(tanW&|>H?%tw9`23|#q|AHNYNa3|-irU@feN`K5?S{hPi1`<_ z*=(vQ$m$a;d0RMfQ==#*T`dsvCWIX+-O1*e!BP4U?^C@|!WD!ct*&pH(vyskL+V22=cXiBJ1ZzIY^F^yMY>Db z#TDYt@^K5(biKjxn@}kcL#T$iE;$*R=Zj3hHP1fvkyOkQjcE>;_Ti$kW6N`&A{H06Qk ze9D8zHM9wD0ZDjne!j>IDLsGrrwy*RbymRsVMQ66I?6{akyz?(xVeRe9C08AVV;aZ zM&VhT;ll?hDFD{=Yor#ep0wpcEl7eD@)IPb~2NFi-&7>7q{{sOMIxnI_ zQZ*;ADdJ-I(^^HQ8E?M-)-*^WF_!7a1YFcDD&KE?On|#~&71E1XU(n1A~JvFWEduq zc>3BHjf(Vyp7-P;URdcBz2pQ${NW!o`@%a5^tDPIly3Jbr}Y8SFGsQI`#hHxgys z#%9t|#M!+3JDMlA%wZoGIb+x}CB)qBb7L>UnWI4~{}Mt)^V^!{r(f}o^!n1gal|3c zFP6x_*bS6Sn_piH6)7XRCo;E77w0UG&(6*U0c3EgdA=DKE$yTiKT)8#qR{t=+4P9Z z5iQapxkX#(`qm#x*DFEIf(4HGahb^Pc;#1gAO_3);-apWR`AaPgmgypu2@q3o-+;$ zx81RzFT6ZF8)Wku0uH z1)C*3+oXtzYb$HGUG+NH-hU!Y1t{vHo}0TJEX_G&nYmnzQrehY%f5f7K89!gj1qw$ zg44n#VV@!?Tqeyi3shP|B$oH(XyoKKj zqPAY`mz)78)6L!H_&S=pbk2%1Gc#Xh(uE-9WkjNT6cRXhg21capTjDHMgVH6Clu9Y zB5T+;7}1iUTAiAD0ksm!@A#9yfBSLLQ|eMzgV`p}6OZmUG5?k(K##m<-zG#l3+HUg zc1j0B=As2jX$#oas=*J0;gaYAX$GefT&{q?tK`6@raFWQM&NY46LV$F=ZF=lb(|@X z1O2a-{%25_VNlK5Fg*7G4(FJT$y^Hk^qjZ%EsgXZ_NgkCv_u$uw%)%{ce1I$?Rgp( z2Oc|Jr@VL)lFyI~wwmNBYM?{SW+fAb(r2nmrODwMP=>;XRui5A!!KZsCB-=|R9Q2+#M*_p+m(N5kcBi3 zW1L(VNblSo_^_wIX0Ptex4?Kds2(Z`FOU7RB0RB-DD8``s%I;xis%ffZo&HGsqm4b zaPc{>Ib_8P-cAEcccxj~GJ{u>;%CEUjC>b+`pVt6BDgse*IrqJhM@-7j@Lb??2Nv~ zmG6Ew)FtjZ1UgN@PJ@ij$<~(Yo!=z3eWc2W&>th70ECMMTV~!)HeJA(Q3bH z^+tb~Tt;xzjz%BZ*uAz&=mY@_7CoKz5;q426dbj|eMf|tL|L-Ik7jKKRvg+1-pH}9 zh>3YiF7zri1x~E`SFmpI>OAf#*_p$*=Aba_MD`AB9Ly9uhNnR%U4$%J4X?4qA}`FS z8suuuz(FI~pCWF9D(w=3ChsgZXoe_G@#F4wY<6|KB_aH;f~V=B5HXxv|CzCCE z_1Qo^A6{Ahpzp-b$<{ceOl3BfJk>efr(#Wz&#w=0Xb&xo`%|Q)8LC}^|3?H(VQH~Y z9VGZ>@x{D^2D*o4;pAObL zF!<$Yv1SoPE^E{zVbI{q$qKLGPLWdD`8V*)cC~F9a0WcH>D6}ainF4|MK~!>A$kL9 zbKAu&r!c44uUZr>)?&A|p1SWj2%_UQER|qb9NrKPQ@ogW|7+`rStye%pJjEz?B`2H zQpD))p~OXoVK;@V&CJZ~8n3e$3{+K7iCtLUt%OCyP}f}dXd<XuoT&zdO3E((6xL2{Xv zljxD?!jP_~plpy6bQKhaQ!0)hPu{`GGP=^=emdV@rKai?{DNH_hz=XQR6b&Z(OVB! z9#K`a^lVw5YF=_QH}7TVJr^{_Tk{T?X*1Y&sn#qQDQ|$dBDI{@H^=u>@CX~AX!%$> zuMrTWL7(R0hFMz&{2|WfShu9>9y3c%tsOHHVU_tKACgMMZ$5g(g)7*9?nCd&k^&Ke z>v*~St&P{3&vaWSTK_Vf#1M(-YW$7Qv8QH!VPPVZcQmm!CufpC_m)utqVfZ5Kx zYbz+&-k&ajQW~wzWy-b*%iBh?GFk)+!HG+BIFbx-hurUV&~dR zWdZVnLzhasDS)Z?Ecv)wzz$u0Rq%=FZ8|<6*#v!#kb7G*kX<%cHgeTHgDZA=g;tv( zU-ULs=^DASs7S`mK|3kuHws9df`!T&vximEE7dqp#gGmg?F@IvA0e@Ri|tIq2h=Ff zhes+)w!gHu6!`dwvCjNNWdGwRwEW^?kZD}k+Db|p4m|ZH90p_aApni${V4J&MqlJ5 zTy6GtMy1zIu)Hv9=BDw~hNJY=6QVprEvc+}y;`Afu=^JzPiSPDBn6U${C=ElN@NT* zw^4>E?~q#$(5}i^;l)n>=A2+i0CgS;F+U=E0}~Sycs9C}g#;)(qyz-h?%1UTn*4jN zCcN`O;HB(N>2}(g$*ht)^UFv7Jk7lP5nHBknr-zuL`;eL z>_-eD8@q&m$`g@>Mr=i0h=K{wKdw|G%d8OT#T?|(cV393kk^@PZMDC@Pu0;Yppwo3 z&1OZ0!Q*>-3>sI-;yd3k|KQHfeEeR1BczI1)*b++qYAX=y& z7;5J}PLTVrRZse~6^qrZ`3#AbLThK2G$`%z*b~Hjiah&WT~O$X@=j4{mJ56fEjD`D zplRjLVGPOu94jplmOiq5+dxJNEOAzL@2x&$t8|ak)rY!x|FLWZ{ts${PQD%h0-sHu zr;D?m+KKMwF3YFIw#{2xWBk(|GyUU(Ww{di_$eHOQ;v6`WiFIA>qEV(T)U6Yf4%QR z<;}AVpnh4i&cgLdAQDA#*wyBgM+o*yAN*#ZcLY5PY2fho!24m1(n2-=m-fcCd(7m3 zv})}av=1^RGmSJf@LZtNWBmdULf{R+BD(vLLBKpK4zd#Oijy{1>Y;*DcyJ|xa}fYX z@x>ql22)2uCL}fD#q1YrBg!x+)#Py=zW)U8Q{5P%h@^ZNK|_LJNTo)SS8@$4d~-s# z{r=}GM`NZ15xMJUPO&fB-|2I3X)%^RBjEh74cHc3eB*yq&x`6>@u2{|Y`nIGNBNjJ z{Hb-UO#`>gKsqWr@nG6Gt9{XXq-!#ierGi`%(@)e5N6V9J3g>+SN^BB5Y}3zxxszu z#>9W(LU@aJ&YcqR`4Kae{HB28?7Jj0?$TJ$JE1db+~z3@xH%Vc2DO~FfES+_=K=a| z(VybpyqTRr{uF5NoJmM zYuu-=Q}~C{aTn+3H?e*ZrIEvw=VZJ(Wh^(9H7j5IdqcX=wk1Hosvk1C{rAp9u;$&W z$%sJX2P{OVCgK|cn@$9(K>u;hO33f%s?W?R*w~4nt2qD&x4&-}0=?q5INI^?as3O8 z=NC{Llu*QW{_3Nppg#9CI5-&8a;x;qXQL`HWFcTh1FgSabqE9k?(86a^IXtyjd9(= z`W>`htL(LE>|khZxVu8GfS=E)Y*at6bU5N3%sIDQpa@y%ke%PrY>4s%ui<@V&BsrP ziU(ktqNAgOCWc}2mwq^ZO{CGbj3y>Ag%~T0-Z}6R%SB{L&D}(Y$C2koO?V$nK$`6| zywf7e%g4tIDJ%L3?}uKYxwA#FWH(5kJ~YI4Yk2zooU2B0YD>1QJqUd1)k`fK5Z)s?)cXwc%;; z{=FYPqrv|Anb_#h*#buJhMw|1|GKfg^UCjPJtsqNy^A2d&c*+@2IS*cLcK5Q?93&o z-1qSdN`ySZZQVoRK4U0ixX-;gd3ov46W)1(jKTYASHo`U@nE(Dqy>9pK*n|)G4ig2!x^PSUHUrZ_t6ZcFG0AD4C>T|7NK2anv7 z{np)*3cNB2T%YeR&PzZ#M=tCU6BA?Wf)5W0@Q8?g>1MfsRPM&vc*ina4?-*mU$VR0 zmFSz}()!CI7Bsb)f50#U?~eN{ni!;+6h{&d`*2NKJsfWi=byKZ508#O!S)%HqGwcN zd5pa}}Q?g}Ixp?2{k4+2pby9fSvN38FH2$tY^VR=rmt z3O6k=>e$6aFwF1l>8t8(qtbS$`$bFn@^^el12MvRws|f=69?GDn(tTqq~5N)5H@N= zve)dQ4I5n~={57S_Cu`nZy!C9^ptUbKeDuMTyu{wY_=sQYFCy{!veH>UPJa}=4xt0 znmi0SPN0o@-()qK`r#WMtQu$mxxrSPJ-n0S`7>E<)OtwXEzW%X*Kp;xN4xpNg>c^7hGzi$6exUz7G;gg@!BOk_mo+6PMza3C{{p5R2?W5c2|YLpTOGjO;P=r5ArDrSec} zSHA6^>S{LhzXfXv?k-Zq^7!Fhbam9VP2e{8T+=>a0-(TRnvK45)@yN2N5aKyyvJBaI78=RklLOkkaO9N_r_4Zs z$@VpC!++TXB3#W`G7AU7#c46w$Iy(2pE6yGvw1Nz9aqD>w{4}Qf?W}$ibvHHuc7Le zd1x@@swA1@e_kd^OSp4oG#E@)vrnBemI z0&RYJTSLC`x4HP%m&j)z1&jZK@ zRudaO(HFI$pjFAZJ2?0uWOo-Bs%+H?<j1EF3V=VPM?iduZU?vv{x=Dw&cQZ%qGC%+TIzclhK?yks|?OSDJN5oq+8=l1T- zBK*Gp*N3C7S@70zXoG_OaktpXpH{+xe(JB4p!styckWE_qVLorj4Cpw@?cM4g-mg4 z@l`;Y#}!$m{}e4IUW9N=97}H$NBbpX8j}z};5#(a8_&zo!#x$H~>k#y8^>gA|%qt{F8Rw$v&C<|C@W`RS zjo`&L9ZthWB&FLo?bUL*(7A-lEL)8I%SCp{NLt=pNd(7j>kqw3CQ#^H_l#2%%qR0b zucV?v302fQ_dfatM(4IQNA5X8$T7LV+48HX_|;*Qy6&)XF?RfaqC8WeynMskqb;^I zx+8{B`RV7tApvxV#`0#~Dyi#1)9Rt*p+wgBcx?3nPJOm3>rtuq*VXl2i;%&fwQhgj z?JErL`TnUCT_ceia^P%%hN58jzl?td?QW1c-SG5)hXGaBm#xe5K(D`$qXl$KOmX+( z<)$xxN2aE*`u{cf?=v*q_k$qu1A&wI9_U(K+vf;DqPW^P54o@g2u_l2JO_rFc8~9J zx7N;0#_vDwx#s>AxBNsKPRh~$M>C^ETt3UW}M7nLY!ZYEA1GNTj^AcHDfhwfTwa3s}T>IB3W z=LSD)46)Nc_7j@;oo{?_H_TQ%$Y&?0HKr;O6Hh7LbHXm?@eUKaJ|v|SAs;Qg3F9Fb zlh9Z*1BMgn$TZ(@Ck{_fchitAzW=-x5(vJBWuoa*N@IKQJ*A(gp6ENNy?xb6hR{3z zIQo;ZMfZ?{^!(5EC55E~9{#3v6BrYF7CXPr;W(GFfBs|xBVLt?;D)HzMoi|vn_(l} z$%q!s5I28k3ZxZR()N4&j^)&O+%AwOEFAU%t}51>`?(NU=YkllG1I%cZ2yBF51A;a z%SM`0f#Wp5)Nv&8`lTwVbIB>q7GXeLo!$k1G*LlZ1|ywaEG zb!4BomI^!%c-&XXCvx+ka@1+?GR7xG>rKSyWvXh9fp6cX!tuBQ8IBnMv`9yR+35ng zU+!aItF{IMM-v%+NZbqS>*8Eo|8z^oUefYCn;-bT;tKTd%8qOxr&6abgFvc57cMq_ zTj)@`eVJ+`U17p0XdZZYcx)ZJct3}p+66&g%~h8%dxV69@R04}L|hPRIhvEb|EB0h z{c0?GM{^l@FQyL905puo;0J{Mh)I}EXNXA%6V;G8#**(b-2C&g#@PRCO*CJ!ykgB; zj~+(CD`mhGS^)j=%HW=}zH3x(j;5fih=(WZZWWJxIG(TJfUX}k-wUjS1I?loh}H^5 z8g-UnE=1Vl7|O*<0v%}qi|}RxwbV(HxJOy$GQmP4+Er*DnDGO1Y|1wbu!;K<&;m}X zp5MmNnRWkmk;#E}4MMd34@=}Q#X#=nr!ghfq;i|3qVnpZC6sqXGLDGLMUXto`8O&H zGBQ(ZDg_X}W6`P<3vh5ut*k^@`J@|2YfDjF^AQdDz#ET~fAhkL43ZPAi`h#Uy!YKw zyo-Frv)TZ7Vb$0A^|tMKobN1BsH)h4ZiRI`QPYfZfs3DD5d?XJsNnSfo(tVKy!VOE-7CWV`3PN5dtK3GCL zAL-9yricoX?5Rn%tv*3MWg(L_e*Yds^iMf1KFp21q2hB`3S9IZ!M0+r(_0NYAsAD& znp|G6=O$3z{*rX>LcWIo=Uw73tF^1MSIrSokYAdakxVE}ll>4y)+X~kmlb}-&wwj4`~IY8F9G?n=}2sPGUP{f z%}~xDzQ+&+?+1}#ty~F6fJpP1=rQ9s;CX+(`S|FQ8MAwyHq0_C=O<7Geu715>1+@z zVkwO_`RWGT!|(O=c*H_9MvWMs%^vt=GnA}<5!r_;(+e;Z3Tj?ksbKVPXnR4jfa52q zxPo1y%D8=Hy?6Epn;N&5&}nlc?7H1uB>jHqE#nV!#Qxvrw+Y9MCTTi^z;~7&qVNM0 z?Hw@^>!Rf3uS#}PR#eBAikAsJQCNS$KoRB?6owxqFD(BOg%vMn$>GAx@^U0`(q^~1 z8K~zu*dj1F;1JCSXsVitBRE`a^?T%d#;+|MGnY}b{H4;tZ)NiRG_HbK2--Y_5TV{v zI^_|rx-Bq;1;%wH5G(={MJ$<#+T{vr z6BAv1K1jN7tClo^uF^o0{3rS{1hwc_IYZ{nR*(qMiPmdHcPA`B)+wpAT!Pkz}R1Ha+T^+B8x8I z;BX)^#-Uny?W2%6+ny(2sZ>qViAzY!=$xNa`qVuL%Fy)<4fa$-3o=Qx8#hp~``FZ^ zT{G;~$ZMh;9C?+ypgVOPWCyw@`6ftnVjKb9lt4{`o*9Im(Cc#SrYAni+0O?>+6LrD zM0;a*rTRVjIquRgncf6HlyAMu-oAG5eCBc&K4nfKJ`G@eL;DXs#CSlE?Ck4dvXE3*4YC2uy4j#kTqUuUB6YoN3(Ugzl1Cl_>&R2;4^ z;(=A|m!GZ+pDJA+F8{jiP0XL$B(>rOYMPkT>@av1X*Y#Ul`=4V9NAfWcOf?lG{VgP z%+FA&g_o{SqH3+XyE`+JMF0F@FE_qaHa(ecE11Zr`3pQ|go8n@e5QKhS!3c^j|I1(rf#0HWv$1HmF)c&6b1#}=^xVl3*ry&dXm({ zkj*hD#bQQ#Yp}1eKa7EO>7~g=4^J4B{bHYb>qiV))i7HDpq2YPgCutpQ%QGV7N?XZ zEEUH2-FZPydz>)Yh2hk_PeR;P)fh!_|IQ=E2VJlg!`jR-Nhf;xVN!^wk9-R}1(lvD z`dg_&37lJnY`%Hu59{{IPODkNbdNm$MZZ1D+-Q%zTcPAyHcpGYK8f+9#n%7l+hJ2` z2v(Wm3h4j^dpQ0?d2kSaRzO$VhC z*!aG$gkMp#L>ei8N6Sg@UFPY+CmohVgT+WEDaSww!)Auaqn+k3!yC*agPC{rKt0T( zB16WSuOEBqPqp~r0&buguX zk?LiKfugwTePGogm=kz`czD=eV`$0y z@2&K9f0oAB*8PeVz|#;rmNmCsjQs~S_N{oElfT%OGjims>M@;nI4pAwCAktzg#o6n z`(UJzNT>Wan4_Bu#4ai2{(52)?%f->yvFXtRQ}UkdV)j9jHr}O9aNx+m=oLo^Lmm0 zZZfs1Q}GcL+>XHze|jLZ3sc!#D~(eK=77Mz)>|x8Mwif|-hMr!WMpKdR|dj`T12hB zNW6|Oe^Fks4T{Y4j;CR`a`J$(rR7ANtN^k1YT!rYL=`%{3qy%))n!<1v?mYco-qAn z+jQRD;IpK`?SyPx)Pdl_bdSrwJ~NYV@MA)Q-(v9{S9Q3a&y6ONqSvcFAhhP*LtjQm zK`jdoXF!YI*Qog)Y9V5fP4x^oIyyexo_w~q&(A+E1P6eif6SJsZ3AZ@km^D>3nHla zh5G5~PdKE^2>~nH_y_1QG=}!F{T0)WKzVC0kuil~I!|y7wZJ}H4UL|sD3;7O&gS{M z)gO&XE>sV4)59^}97qd{y%<^-bk5QMqErkN3I+yHGS~6g5`mi~;*H}hACxWZ8E|Yt z*?ZJ%65VCZ5$|CLyyuAA3yW?&7g+D|z~u)Qfd=hAZ04AXZ7cVNS%L`!bc^_so}J7@ z*+N02$%<6zApxmMs6kMo=6w^=(QqckW*T3nae~7gl#V1Q1yGGOZ5~dN#<#sObg1?| zwM6Y7g_o5|G;lkYYxyVCV?j2o3h099D0tt6)#f@HlIj56cy`z{`*;!4TgM}O|CDtS z{y?dE1=ZM%pGRUOx?Pu3yi5h{4_&$pQxMtX_zrCvW|}rx@Enw<8iWoP32{$siPPK% z_0zl~9<*6B&?TUR(!lp8TEJuZms8?*rkHR7p@)N3I)~2DSd3e00)yq>>%XIE7LDgy zA*9j(0E+8H?*feKEDv;84WEq%{D-8>pP&9{4~VSP=WtE0GA8VJ+Y@Odbr~R8YT&d# zfbsJ_SzAczp>pMZ^_G-PP#5Sb*$Xg+WD5nQgOduj_FUU=jTR?`wt~k2TOb~n&8X;Q74;_eIE zy#aju{1&-T=qbS|pf-OQ(?n@5K_vs>#Yg4u_)e&1;^5hy>pDV?>^_F; zKew;n&h5JCzBI+h8*kr>`N0Ih*5GiSX@YaMH*<+|LO2P#YV?;JBslw ztzf01l1+$|U_0*cs{4>6ig!V_6)O=_S{_dIs8;9OlWtWEhyKk z?BML4`f=l$Pc({I)-}4`EbK)zc2Ag@uM0ppFIo>A+Z85IWz*FLXxexsHnhbe@S`8tjof%9vJhK>Gi=v88Q@iuYyS&hQv=d zJDKbPQ}lg4h$L+hSS#D86b3T4G`}02OR#yXnFidmhcVIT4T`?&K1&wz=$yAej(CE_ z1`fdf)CSkk^4#wxh2Sl2J&_g3*?YT1FxZ!+X%@mi2BiGf>cI%@r!iwsCpB2{+Sga; zw59nhrgHfQ|C+bWn{wWU{ zorJ>cN03%5O=`56nV3*Au7Y6$`Y6_g|4KCTZGY_j8);xtG1s&5VY_j0u@C+mQW#7D zNd;yYEx(HOh$0aLQNUkso`Kl0ONq9)nNk_=>HA5LtZyaSTUFZtPRgOZ3zMR7qltLs+Ij(BEQi zi)q0ZN=B}uITG8~F&@MH2Ic-Sm(AR;I~i89>lv)PnOotcy};&N2t|^?AF#In1}Ek4 zwkdcP#rnIlc6~#=G$fX9&3kFo4reIYmJ42a^4>~)ZSp+ctYAOmj~DlT<$W^(nrg_r z2ouArQ@WmU#$&x2K^TiJdbYp6)aLC5@qx6^9bG$v-3!eVK9Q%++|iLW=5XjgT5#TG z3w?^wvPZ%gsZ;X^)KPJ|W@K+11=i(U#Y8{eeFE({zs>n%D}|L*L~%eTkE3=3RCZ)*ndD>PB@J z9oQ>beLcF+-t6cB*QJ{*mdIj-KnsIK#<7-j9RkMzPPH)3H+!7u18Zni@a4(HYpirK zH;4Nu7BsyF{~^g9n^~W}IN@%2d#^(K?M@#T{c#pAeX79zn5(QFHXEe^k+gYwdID!n zjbCz*KG|^PfkP9ex+TK%-r(p%CHp*6O(U528vmwV8LL9)I*mdy6%S@bVxqK5T-SoZ zTmf9MP@OX0d}J^15mPPTm!(Cz>qyAni*mk7H#TuNcG`y@7IZj#N@FzG{)l~AA zGSzJ_p4jkDb>{F-L4+PUy)Rsq2)1byh*#^$7(DVEBXK8-i;iRiXyiV7aSS16(lk6NE`aXiLa(cNNQ{50~ z4BB0&1q7isO+)!g&=WAN6ejv4gX&ft8o;x1la94+iJ5Xr2s7!g%$!%&d41qeKjy1C zKIf}SEAo%VKu<&EcHWD{FsBr^%o#)m$6P_Lima4O`~UWlxV%1f$mx_ASd5=GD(-@L z4L_|8MD}rY4C*R)J(43t64922e)BNR;9v=bE`Wfr6;BY1#e)O8t&fIL_U*vM0I4bb zZER%b4pP<9pFjTKJSjvF(Wa>rpXFm$DU5H%GV*7Ua6Fmt_L@^7;o1xLIb)GZN1A%M zZzy+dB0*D;RV(&)YA@RzzmVqXb5pof>s4FxB#$0U@p!O}H8fK{=<2Va(1f1B9{(Ev zp9&ZIH&7aL<*26xUzfYy1$fgd+2C7k@f6`^ewi)9X~wJ5?xbx>26H6nEzBQBdWz0J zlXQtqe8P4IA$_0&m>Wu`<11~{}|S{7;w3Ot(3>1IL++`f-2&N_b0b zRcY-qfN6AP0M7MCdz&U0A^-zX2%>G2KZ=^{^R>Rt6LVXecA4%2BpSG>Y*EEY)2sQ) zvAU;W>~vaK20v6`B9O?1LVdp%^$2{bf7iKznDCX`%opTffg-%5VAwhYXWyvFC8!`% zKe-bRO8L0Y*3L?9GHGVLcF-nL1I{^OqX(VqWjwU-=z)0Ac& z$`4fT$ZFa2cb!5&aPcG}8#wNXa0U{y`C7FlA$NPw$L;e030Ar|Ahwnn`~CZOknpM^ z^Jr)MsPeR>5wA!o{eRT3M3-ygQ%_vM6#nXH>Agdxy%`@eF(}40fiuSH{aWc_{z4OR z{1U;0=d;J%I@_KnC50oHC(>gY*HU6#4|qEHm#Lqh|Bw?0MqxR(6T~RCp*b7CC^#KOy<1)@(7&tw ztjJxxW8==nw03a2AOinvSKbB>a})LgA-pwQrA%u=4Uu8RZe-dVp7p>=1Vyw=XHY>3 z>d!BFUp4`*+}0x02&n4t(x8=x_}kmrK`T2*l~Wx|Nen%KIt^GRzh!1_1cM0D4;0@; z-13yT9&r4pRVrdNxnj40uk^&8CJY>t2kZ&S9+NVc)}K^%V)k(KqY$<>)m$vKrTre~ zXE@FOK8Hqvv4_cY&fu55$=pWNQT3aZ75xS?ZE#!fepnKm8vW0jXa3bi_)(m6n+B;1 zbcY)pmU|Fl?6>+Nu@7PBHY3=#$AEa=ndjY=NF@Xvk_y%TvGtWfadb`FxVyW%yF-FI z1b6q~?kw)UxVyUrg1fsD9D=)rpx@@X-=E)Bb#0%X>8oXGcV>?C!K)|)oNsm%m~~*) zhe4}pe^WD^Dcj5(Ie}PSHXM6IufgiaZ1~k^CLNm@sF1mGaDH|+P;BC|d-QC1vIM#T zn`o(Hg+TcP5~C2N!zO9bA~0u+bYLA#_xzzzvHcMFWln5?B z#vC@H!-YG*S9uH%hf!d0CIzITgIkSYk9kpDr);7_V{t*1F(|OK;-uLzskpa1bya}| zr`o;)V^(YkSOx&U;^7M#72LlN%JX7F;CCVL7#jbgVH+MI4+Qn*W(_I4@=rQgxyqwU zo-@q9rkq+wK~MM?c_Y&4rjw5ehB7LciXkvUP$Sfsj5AHwrA4-1Ve435p=@i6s+N#;P>N5$4vzr(|GjGEgwc{`M!k8mXlbR;I=V ziZP@P0Y$+@C_ldFDCL-?=gFmlfj+X5N)mNq#=-y9LV<&W`&SDE7$(W8*kuwcgIA0& zk^yEOdc(oyL!lStAhweMW|hQ?WsT6Uhbk zO&%7`jOVd69psceI2fq?uQ<#9In=Bv)eQ~MZC2mG9;LOL-3HN!w{?E}{aju*h~n<&M2L?Ig?*0;xd|251c(*avU+KRvd!Gi-QwqK z*GY?Qn{PR6$`33SEUzt^EI~L*Ae`xK+M3xBhh@-A!euMRA7>!5FCeo3|EErO9?SDn z?b>EuT`RNZy!dee-xzlunDf)M>SkUoE3?|X_(lO=J&pXh+N%8c+N#-YO$|%4CAxAD zHS>N?S(hMWD95y~m=f9emaixg8X$m<{&GP{5xY*OFmh_GFmjUe zoV#T-a05UI3gN$ZLphpSC!MNnb|$GRKM+#4x&{bwSsk45DvvHZ&TKE&&xF^UohEAJ z3hPXRRPRBm{2*1r{046U5fj%Z5fgVFa}DK)nzOfY0Ya@_AA!06_ouo5R~~b2ko4$c zylUnsFWg4}mwRb_XXzUVS_=eS4}x}_vHX!$-mEvheywTGgG<)B*a2QS{Q*EI;Q;}8 zfPn0u>OR)_GL=S0xd6C}`qn-Id6Daa6fNs~e_I!w?`)erLA2Mqamr?F|3u^^@^j%7 z&Haii7a3B7_(Rb5sd{QeQ$uMKba5Q3XGS^!0yFRHuTQn>b{gkyZB^W#wE~11;{wD6 z<5}HJ=F?K38@IGU6Tq^bb-kItsZsfOY$WeJDNZ;WQuEafMf;MUv>`w!Ykehdt8;B@ z+luuD5~~dNa1=TO(O=e4GRfJF%>L>;i&7qsENCUCgOvd8yeD! z{Q~4KVA5yX#$d)&^^|XWA%w3E89f4s#a;(6P_HHS1f3>LBLLJrjmR;?E@KLX)L69j z%>q(^2VX#xDeq(Px1Umty&{vNvTwZyf1-aXjyHpq(nqr<*LG4YvBoN8i_g~2ykR+( zEPvcm-d$fI0)=Tp+Bnh}t22>wvIibad~h9tRgx5&o|DPayQj<4y_Bs|xyOz?)?OJl z>>wXX+dkj?-vMymm^?6_VgjmcMmVaIVi;?)y`^DpB?})TI176R$9ppVxN_GPPHv|6 zO-LJQL6;SID@{mUskZgX*7!ukO}$JZZ5DkpZ`Ham(sf7a7ISS#`dS7*oFP|^%+val zj1DdETbLlF4b}<18^Y*h19f1e15!YzH6ghTujHgz01{hI&280df`jbiUeJHCQvIew zo`L(w2JhmUzzQfk@Mf5hb0>3f}(!dD7iHgh4tW9rM;I9!O?Gsg;mH$0~gR7}UXOb2mx@)PUN^B0r+M;DSpi?$(VE3F&7Oo}y;Pwsv8E*~v*ADc_Bv@Q zF=2!MX}59Xo3%qjY)I|8%!ADEuvI%YqG}U@!93?;28d&nKpa9<_%5s{|m^_ zr)p)t+3a6FRB3*V>9-Ou{<{dE=!kUy^S}JC|1Y2*G~)k3#h=z*@W5IBhdZMyWxwtD zf9b2v__^hR019mLAxD*_lVPEz&53g3ztmRa-&Or4ifcvx7uUtv7`S8&I>^=krTd(r zZ9xk1{~D%i@#_@xq5d8#pcnw|xvd-fotFPO*V$H8$;@T^Ujq@!5#e6~J(7Yq(-yV= zbKy>P*`igF26U-cugX)#gBhpdIs)yshpXpTOqJ=uhNU1etlW5Zqi-%t6?hcFm zQYuI#^YqgaFkXwtfQYUvd=kaVSl%u+GuY#Y6Bv6$Wc6YUAfWCEdO0l9P+0bCa&guL|e|>jqcq4G_Dj*Gx}ZZK)ACh z@%Xg9eTA7aDta>+0)6cN4ikJk%^+_=C3@?ak=)JD&r86-uW+0Cxds`pvJaUW{}=tW zk6kLIV1XTILdrK1iLEYhMD))ldWhWUMPN5TX$<;4n~vD^;jzE9L%(*zN%2=C2)TxY zS_Fjrrw*0KY-o+1m~-hd2y(q@)zr6{hr&sLrFyH?w$eVc#hNgQ0tz^Jrm_!{8V`T? z($}9)p#~K{ZqfRcLmr)vCVjbB!j*v-So;_>*yi3koIbPh4<6(=kH%?+S1sTlz9$1@ znb9xhaw5SWu}QCgO`}#+Vhdgc2fkJJe_$WJXu*uZj%Gmzs5(3tqIc{URoZrhp*QkS z%snPtl0pd>+!J+6UVz%%fS1vC&%in@WS+RU^2Q9^)P;h&S{@VmUy;W3pSdBGjpdVR z-4jttS+D_-EDNuE8(Uj|MSk<0Wp26rHduQEeA`~>en`3ZRL1u}59Yi^Z zbkg@j50?P)KVdz^3xC$n7Z@N*&T9-Pt0J2OkhPe=x5y*iu4>(S|U%l7Zpr7Q^Qa9cOQ$93wSq*2WNW^_ht}2oB6E8Q zkjoaj)0Qnl_ z%AeB`OHoV`@3-qT7vS*)tJ!f9GhDC-8VkfoJC0uZ{ zre-#(^rpvYT7T=gA)e%ghy30IbZ}ruCMg#=sSAMC`Nvy>c=4#1<}c#on(3jF)9P-d zAd(=)zW}x3^7=GRC?89`Nd40^o*$I2M6`RNKe{@IMe%5*zy28NFbG?t8x`H+IQD=t zNqKOR`?1tvAc{xHowLB~=>Q)Jp2Jam7^C*nV);^zWN&cDf!=I z$8U_{&EAtV_%=qkV*T!uG-wZN*)K}baSoLxo!=jd%_q;&a6re*QYO@XmWEy;4AAih z{wxjo$D9IwmIhzK4e(`h{VWZ-tojj`EK#h7uvSMFoBX9%?`8EL<5Hw|whBru0HeOr zWAa58et<8cu6XV0`wyx{%wXYYieisRdcD{gdl9p1j9lBwHlEiL{Z>7kUld1KX1{(K z&!`|jLb37wHTY!b`#p_580hUpI?PmDa7tEpww2bwCItB8SLBw4g*d(nJ0pe2at~LMZ;s_*ecQtpRzL+V4cj^6 z5%1`FApmlza!Z<4f|ot4RE%B4PO$`Hd)j&X`#gGOGJ`R9wCu-*-Y^7ZwCu62o|3Ty zJG`#%Z)xM99#ti-r^_Qg%%-ta(6FJ7K$wtSwKL|-$5B10kjp}5U$)E&fAG~=N zQ6j*&Y!X?yVG=o4R@lmi0!fcyF-e?DtHiWH&}p{fE1^;swa0MbRrLqOTcR^(Z=0kV z&LYpm_Kja~%z;ySBoKBkzzaQfC>jN|bfAPjGr*}Odz$+dY}V!nJmyhPAHY=49~K4m zcg@Yk%y7l1HOtJCb&2>_<6)d&Ir+XsiLO@|aG$T>dRCJLXa(v;tb6>Kh<|nTBaM*7@e<__|kAHU&d2n~G(D4(oP&M4%8UryqJSGN#G~cbV-oAY9z%LGAP)BpqYqZR$|Ly(!1eQiqNMKmV z`JD7h&XiuT&&p!F_;FO>^-6A+!cAaW=mNY=KWO;VD}+>N(r8y4lK_=sR4U~q5$}43 z`c)t)Z5r*2W0GfO@SQ}iX5Lr6WyeJKCK59Kc zUqyFoOKq!tK$?n_CthN>B}tq=Kz!%XPvk%uuWshrE}Sw;Ea<)b7U_IZsFA2HTq5ip z(1g5M9%G#j1G+b_4UDZo8=zkY8>g3W5mOo$YFSa)2Yedd>-M*zoNEJ>jHsb4*w12&fL=z#5bLSHbfZ8B2Pz=GF%blQH;~tu z6+*WNXl-l((D}MBQm6_In4>j2zvIh36_oHM#d%`?xHo8z&x00{OqWg?6-3g{cwuyb zTEgb2VR{HsAck!EGe3b$<%x20YS#CM{i~5fKppH{2GZAQ4o7aaHe^i4ZgP092<(J9 zw8ss*s=CeZX;n5q_tZ0gZjsBCpeFr5jJDg!iTzep2Z)16%P;W?w1ODN13gc?p4?{c zHjV@yGxI10k1;cRTM1?3HyfY=e~n4PlJHDE7PpV33rOCSa4GG5{dF9ut%h`A1^fY)t97!$vBFVNlKx`R+s$RsaUa`OP6dy zD(rIOQ_zQH?IOvs0=_mvjiIVIv6TLCVAztDjm|FX zb^W1oH!2YfwkX{Kg&`J0dp0p{% z!aW`EK2ZiVxq^C((R-iSd z|8e=wbs9$5E->^F{fpN=(W61n;rq7%dE7Md$i|0yz{jkVIlwsWhF-zrmpvBb*0$Xb zG)tY}S0hl3T%Oo{4MbZD#3?FW%%wUC)TG~?a-Mh_v%XQ#aA{MEl)S0jGR?=q4@f+#rCcy(JvH9PEvHL))a>*j|D_G{|t^ft4ve zbwlL1J)5GkX#p?*3&30>KkwUdXfF5C@go%d2suChlhN~x+49mA+mi$Q!9Qz&L0bKA za`0P@rDFGYjO3=(2mzH-o>`A9TZ~O^d&cyhMTF4dt(_N`fR@TQnKq_$-}0@8ESuI{ zds-kzN({yAx!GhNB=G9V}&;1u{9j*v7*BX3Di%q~tjHX~R63i#E-zFr~SC%xY zS0G%MAg;DDb=V%Gwh{#g1L?B(IKxwVWc2tlOZ?uc4=zT6H4RB1wxzz)Ux}=J4TURW zXJ#C{CtB0uq;-dblm0&^J|o6vOZkw`UO`gl+(}RwNsb=c?SsK#q#43ABAb||E;gri zbSfB4-Y9@$wkO@ii3b*g>RnK`Q8_md{gdO@b|5`&^LZ?jN*N_ON^>+%w!ulcvUc*| zWz*pqm|Eh9^h*AK#c&aZ)Mor%SeXjylLyHR1v5{$aQ~bihS+@eO18UHcoMMxK;P ztlnPwXhXQ*k!(2mRAtAy&prz;`d4VpjIob?iC-ghtbZ4liMQ>|+{{}?{V-jLCL+=H zctzB*M8k!H>|v3wOnITOVcT#zmSo$pjzZRy#zk~ZEfVdxu zfBdG*g;&MRW(nW(#Mx;C1*am3&iccn$Z1h^mtf zy67IC{eVD$aa_ajAo&0+w~`Xnwoqy2sfDI-_2%yrB8X)USCViSv|{aJxWwxZ6xN<0 z(tl*_8u0AdJo;JUyVLNcz{tEWVZ^Nd zHk}puO{QSxM)=b!> z8q1N@K6D4erIrzu5ak6OSu*e|u;LmTmE;spKZT9{x@t?OL^P1A9X20FdIt8*+|x6t z+!wSsE#`;A8B2qbYsawS)+Nqo=ir8wOD1#NupZJx@5kT#0TI&f_~&UuXID1r2jkb2 z`rEtjh10$b-hWpCPMFU1>3#)>q?_CJhA1fd(Av_u{v;70_eAhxQ_A6wTs7K`Jdb`6 z=)Z~d2U3=CfAno6U>3Cu@bnAYXAUCwIfN5rJ7y|}JlAA^_q`bo9T+;b0^XbqiqDn? zGyb~!Rb5M(+)&jT=SfN>#P!@UnA_4Pv0IS1*j>R@1H754;?uJC1#@_@PTDz#8=3%8SEl ze+PB^qB=B)<6c~_#mVAi!YG)KH1-Lx1i|$NGdQt5^iy(l?*lD$nRI0yEu%U*9`G(9 zSb^EK0pV1D4Kg$u&m~TM{YYxi)Csl9@^T6(`Ai&XIDyCJ7ShYgIks5>^LWVNzk3^eiu5*6R2jU3D$F4@;MQV?5(U7; zfCq<&M4ohKiw^SnF(N>!_M1ed?hITeeE}JASh=!(j2d=1=CarmPNUV*9JN#_1?a%U z&};#48bur{x`lvQLa+L)IX>P{{q_$TdTp$_>Z&*pxQmwL$Scv?b z%d8R=PgpQ6{vWjBUV{b2TuKZ+Rapi0B__k;axk&6t@@H&14=bnl_SOF+O?de)j*`FQ0LgI zx6r$ePs&05LIsf)7H5YaxNXaTe0%(9g-Yjzm%i9BylC{)`*vn+2p-uvWc{m;&&3Q$4X#fggHV3@ z_+w!!dx*|+Co7Lwiv+XT#*?+A0b>XbWS=OtoRu6_6JB24J%1BgIlFM>oPCql=x<` zDMHlr8?mk1Pu&U46A16kt;6f@Mx#ke;p=p{NFH#+_M#b`;KG14;{a?1FHYLI3B^7g zG_j6z*rV~ARdrAeRw+w=ycl|%5z{ARGj`w5M!Ihhkm^^}!~2efof`EG`wWv^3~DOP zI`7XWRQq~DL#X$H+hMKb-Q) zr+!YHQI!FyW)YL1u*bKhY1LcyLS&1P;;Mj9ly?C5gYd#vt(uzMQLb@Ncs?Lpi*e7G z?z($akVXd^CayLmdT)mXG3!{MJPL<-Vmmo$bn>7{gJ;r~d*!3+r&NG@V-26=-LJpSt50ZN8Q!mX>~UW4 zN#L`c7yhz9(xx{w^DT)!!om(`_=VHY_p}``uU*TBtZP6{CVE#pEah%m3;}HGH5IUS z6#nrnd!ft7FUP`SkKV0Ni)&w%VXgKW&C{B0FkKmh{xeZ}ZoJx8C?5_nbQ<%6G>gWL zYFOSr#q{~{oYagQrgVjqP9s*d(jPx%BSh4_l*k>3{vw-Ao3?*B=gC739R&GRhGAZG zEKdQ&lu!0~CM!&V8`k-hONQ>4avks&v>k)DwSB-Mi<+~fcrcP~{-m^QkVfOl0h4)p zxZon2<;Sp&<5i{UQC`)PL5}c+Kog&a4m%6hqgWEPM)yK0E{EGv@-E!OcP zhfaA-jGn~h(j9j9qh9x$om`ztYMw1wMzt(9Z*>{_}5b;Oayr zh4R`NP!4-fi{-ql$5inZisgV%V{7u#yhD+7!_qq)$UKZ<{bVt@hptk zH|?Q|go#JYXWGs9-sp;nA~vYLU9(stp1c4%aAPp`+^K_Ma&V<~7XBB&r6aLHQ0n!Q zijkcEDDZU-qnt}M_62c1d@ann_!>kBT)}hnu~);&bWt9+2-Jvt4bOYi5soFKy{Qg8 zpAUQ0xABbXrRyRpWY=)L&P7YGsPv}&;&MB?_9Q=N;U8<5YR$So~@P4IBm= za~?0bI-;Tp^X*=`ivfFrqUq_XfUgyi#ApousBozyu%Ri|(m20!^V5(gAT8hZsr;ll zz9#EMfb(2;F$rf$H&r%G=1oOX=~S*dBpYy8?RAC`DLJ)8Ax{gKm6G-R zA+Z=<^piB#N*w^#_o(GXUS!TxW78{F6Zdn@Z601T-CYn}!QlsZXS1&=Vfr!3V@2d^ zgZ$gFHXSD*w-bjEs`ye@@pO>dyYBbbHmm@=wRBb(_H| z^Qa+~iiS{=?ekCbSKQtmE3ofx1f@HTC?3u?2wghk%cens-8;;zTJx5TuNS4yq>(}z zTI1sKVjqA#kGd5#6=XQt!_06B zMe=Dj>3wAb_yY~ypH4~4)nt6gISnei=8;sDLtlXKUc@NW?44p=d^wh_ZZ-7GYd|h9 zTAI5QCXzr4#PAnhee_baW+ytnFo?o)DB!V*F-W!-`4JQOga7I8 zeC4rR7Ov^1hxKJ8Or!Oc16X)Q>;9g)=IrQ230hs=Gn`C6cL9Fd4jxZTwflD8(NkHhi4k~rxOLxc7 zcpk!EO2G5&QFgVZ;_w(IH9)Gw!Au*gJ1$?09vIEQ_Xt^vCKR-+5AczXvj`5edbRfq zth`6kctwaQv8zs)1}6X}D2518kctUZ#EUkDUq&$f5sg%d{NfKG;E!S>imNriG5g0@ zstCQLV8;N{LTK_1YW0_B>C^*OvJ#k7P)n(f^H|QDw}umj0)i_u*JMHGp*nr!mulT1 zy|P3(lT2X^gp*y#Qh=8Vy`g$EZtDJ$M)ZuUozi6MllZk-yYu2Z11S(ZZrqwIVPyD+ zuUFH3agz4Tt&-qa<+~hD9a2!N8>CBdajF29I6(yR)JoPjy#;f$JUZ{?+YwzXF@mH@R^0vS)a7RNhcA>9dE z%nN%lsA@WrHWsH-ERq3Ip#iC2f>ff)lYLoGswB1SA;!vP)x8_0tipjpzFdGiKK)vW zJLfhrS2+xAm>P3ufRYAaas{o^!uFvXL>(50+o~djKiIup!^|Ad9k$3`ItisahyOU% ztJ&F!+B_(s^h7uEUz{8D2|*-$A>m(tb?*f*{%#IRj*QAj$gGS5Rkf9%x1!I!NgZchdf^P(!Via3a*rPqC%zzZ{(-OpmOyhwHwqC@zufm2 z*Hk!w6Vds|Do@kTBlkUhoC2tecr%cd^);^Q=(IyNc;V2aL3YH6>Gr$LuJfV)2oISY!349(U>1oi%bLW;+l?F< zSDCk*Cwul1iT*rT!4bF@zQEVc;{@?ImZ`IF0xx1{(T7OU{WNO}D5g7<@LY85j&93P z!RJwm0ZnGZ(Pw|>tO>_17wV=Dn@ z#K!I8muVeVt(^OExk%j2bUm)(pVtocnR`kw*=Y0KKb1oLgq9TMAdil6%f)&>MokG{ zQLoNy8cMN>vF}K4#IAX}Lma}h4CcG#Ki^XxG%68(jVaI9p4&g2L8*BASc8T^xu?$- zc%&4DNwfi|W*Wi{TP?9F1gexq6(ez`M)VV@-`|YHPl3O-IQo2?Un|a13z2!g&+i@x z;y7guHk^eYxZMB9LX+pU{-!<@YqYYJ7{0#qewoN=4obI)Ue4cu{mC(3hS_JmPsE}} zhkd^2!tX{{wN#KguI^{SOD-68OCKDNSv@?Tp=+BEI@pV35Q=W% zOH^l~@2J)y<-|Gs6ZBgV$KPd~P|7}dt`lDs;Jyj0+$wjjzC=V)VU}B15)x0LL1CNR z6T|~TWAc7a75k%DF=!LW{u@j#>6rw)-+yVIX!$llu`c!-U)SCmK7uBUuv%zU&gAEH zK^h+#CTcRj+%1IzK7C39hK!>zj^j89imtcB5t4?nu7={HCcEO`3h{8z*6rkUIdj{) zP+{Wpfdik?D3**_Dymi$S(1^-<02IFxhnuZspf#{y9ndo+{BaPyVkjpLK&CLHxUMU znlREth8rC`5uuRIsEkDB2*;K6^Cny33IqM1jKTi8Um+M~cnvj{T3!aHpoL^Xh^Oi| z5a7OfxEZ86>%J9^jiP%>!8tr=1y_>K@Zlz@sa*X`Flj_2S?b0(L>2Rt^@|U`8+rj` z;>sRZk&S-J{O-|7viE{F^+u9|R}~#sJ5TM|dAqkj>>sDa>Ms1rQ>EwMmP8|y zl1go7gmATYeY6S$R8%24WELP_R(QCgU)O0pb|0^B7FFbXt=i6v3^dJa{w3j(2&k#mh)i@$gnE#1eUarPPRwLWR7T0n`JAk zreO|*b$?ET^({_>q-)TW>nGbY6onfB-;v?_cu9}@NH*V!g^@K)Hb>?yXLSP)GSOk! zEY`0w0mM)Jy?%r<^eM63wc9#1xc zw4nM-^(nC@fJ53FYA@^Aw-8#4;H( z@AwaT-jsl8_*$XDMx&K4^ae(ehY&U-B@7E4SqS1tJQ6joh?(cExNFH5`Zhyk)O=H4lo);WXw%t+-N2NYut-5 ze9A-=i=g_v#isiBE2-ZVCWv0CJu)*yNmi7zNR>lqVXNKn07pFW#3sD7%~SW1JTF0o z3XiR%b!gn7oRC?9UrE%SxgUdrAOndIBcWF116}u3WUh;$&|hiRx3+?I;z(rMF@{L@ zrRMJR?My{DvrUkSYC^sQQQg?V?bpvl6d=2ojy8hcBAPTb(oOoA`Vf`xJ>bd}znn!6 zo)#})mG8by0Va!Mj9MDcfrh_KW$Q0{KqMkt&wV8b2aOTel!@3;!eI5YcTcl3JwUW$ zJ@wb&+b_wW3rdc8MJN%@0wD!{?h(q{l=OCZ^C*i_JDKfRF@lQyD#6XTIK~DM9FYo)VMOj0>t)k^<<%ORBV@{Ynw>o#M=9zV0~W?1+k# zjo)yTcG3#nM$?oIKWhzPZV=*PFk}d5#=kfJPGw_NbvI z&H=y_HmC8p`|Nz`mPg>2*`96oN&hIol>KY+(-#Qg@kR+M^e%%k)K3eAG~YoOlk)Nq z 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 ZUhcZVIjPnQ$W5T(isgg_{0A<#!$<%C diff --git a/Contents/Code/__init__.py b/Contents/Code/__init__.py index 9e4ab19..a26f917 100644 --- a/Contents/Code/__init__.py +++ b/Contents/Code/__init__.py @@ -18,6 +18,7 @@ VERSION = '2.2' AUTHTOKEN = '' SECRETKEY = '' +DEBUGMODE = False #********** Imports needed ********* @@ -33,6 +34,13 @@ #********** Initialize ********* def Start(): global SECRETKEY + global VERSION + global DEBUGMODE + # Switch to debug mode if needed + debugFile = Core.storage.join_path(Core.app_support_path, Core.config.bundles_dir_name, NAME + '.bundle', 'debug') + DEBUGMODE = os.path.isfile(debugFile) + if DEBUGMODE: + VERSION = VERSION + ' ****** WARNING Debug mode on *********' PLUGIN_VERSION = VERSION print("******** Started %s on %s **********" %(NAME + ' V' + PLUGIN_VERSION, Platform.OS)) Log.Debug("******* Started %s on %s ***********" %(NAME + ' V' + PLUGIN_VERSION, Platform.OS)) @@ -45,7 +53,7 @@ def Start(): # Get the secret key used to access the PMS framework ********** FUTURE USE *************** SECRETKEY = genSecretKeyAsStr() - startWeb(SECRETKEY) + startWeb(SECRETKEY, VERSION, DEBUGMODE) #################################################################################################### # Generate secret key diff --git a/Contents/Code/webSrv.py b/Contents/Code/webSrv.py index d3853a5..05d41cc 100644 --- a/Contents/Code/webSrv.py +++ b/Contents/Code/webSrv.py @@ -109,6 +109,12 @@ def get(self): def post(self): global AUTHTOKEN + # Allow no password when in debug mode + if DEBUGMODE: + self.allow() + Log.Info('All is good, we are authenticated') + self.redirect('/') + # Let's start by checking if the server is online if plexTV().auth2myPlex(): token = '' @@ -166,10 +172,13 @@ def get(self, **params): self.write(webTools().getVersion()) class webTools2Handler(BaseHandler): + # Disable auth when debug + def prepare(self): + if DEBUGMODE: + self.set_secure_cookie(NAME, Hash.MD5(Dict['SharedSecret']+Dict['password']), expires_days = None) + #******* GET REQUEST ********* @authenticated -# print '********** AUTH DISABLED WebSRV WebTools2 GET' - # Get Request def get(self, **params): module = self.get_argument('module', 'missing') @@ -212,7 +221,6 @@ def get(self, **params): #******* POST REQUEST ********* @authenticated -# print '********** AUTH DISABLED WebSRV WebTools2 POST' def post(self, **params): module = self.get_argument('module', 'missing') if module == 'missing': @@ -238,7 +246,6 @@ def post(self, **params): #******* DELETE REQUEST ********* @authenticated -# print '********** AUTH DISABLED WebSRV WebTools2 DELETE' def delete(self, **params): module = self.get_argument('module', 'missing') if module == 'missing': @@ -258,8 +265,6 @@ def delete(self, **params): #******* PUT REQUEST ********* @authenticated -# print '********** AUTH DISABLED WebSRV WebTools2 PUT' - def put(self, **params): module = self.get_argument('module', 'missing') if module == 'missing': @@ -337,10 +342,14 @@ def stopWeb(): Log.Debug('Asked Tornado to exit') ''' Main call ''' -def startWeb(secretKey): - global SECRETKEY +def startWeb(secretKey, version, debugmode): + global SECRETKEY # Set the secret key for use by other calls in the future maybe? SECRETKEY = secretKey + global VERSION + VERSION = version + global DEBUGMODE + DEBUGMODE = debugmode stopWeb() Log.Debug('tornado is handling the following URI: %s' %(handlers)) t = threading.Thread(target=start_tornado)