From 09362f42c7d9be8f03c5b1e0e2ef7f4f92bc6a1d Mon Sep 17 00:00:00 2001 From: MachinePainting Date: Sat, 9 May 2026 01:03:40 -0700 Subject: [PATCH] v1.1.0: refactor Setup Node, security hardening, auto-curl auth flow MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Setup Node refactor (the secret-bearing fields no longer exist on the node at all): • Removed app_key / app_secret / auth_code from INPUT_TYPES. The Setup Node now exposes only storage_method, encryption_key_method, and reconnect — none of which are credentials. • Added a "Set credentials..." button on the node (LiteGraph button widget installed via beforeRegisterNodeDef + onNodeCreated prototype hook so it survives reload, drag-and-drop workflow JSON, and PNG metadata restore). • Click opens a browser-only modal with three fields. Browser-native dot masking the whole time the user types or pastes — no canvas-rendered plaintext, no shoulder-surf. • Modal Save POSTs values to a new same-origin route /dropsend/setup/stash and closes. setup() consumes the stash entry on the next Queue (one-shot, keyed by client_id, 60-second TTL, 32-entry cap with oldest-eviction). • Architectural consequence: secrets never become widget values, so they cannot enter saved workflow JSON, ComfyUI's localStorage auto-save, PNG metadata, copy-pasted nodes, or PromptServer.history (and therefore the unauthenticated /history HTTP endpoint). Auto-curl auth flow (one-click second paste): • After Run 1 prints the OAuth URL banner, setup() sends a sid-targeted dropsend_credentials_needed WebSocket event. • JS handler auto-opens the entry modal in the originating browser so the user can paste auth_code as soon as Dropbox shows it, without clicking the button between runs. • Defense in depth: client_id is echoed in the WS payload and the JS handler verifies it matches api.clientId before opening. Security hardening on /dropsend/setup/stash: • Same-origin enforcement: Origin header must match request.host. Closes cross-origin CSRF from another browser tab even when an attacker has sniffed a victim's client_id. • Content-Type lockdown: rejects anything other than application/json with HTTP 415. Closes the confused-deputy class where form-encoded bodies could be parsed as JSON. • Live-session check: client_id must correspond to an active PromptServer.instance.sockets entry. Returns 403 otherwise. Closes the stash-poisoning vector where an attacker who guesses a victim's client_id could pre-populate credentials. • Per-IP rate limit: 30 POSTs / 10-second sliding window, returns 429 over budget. Defense against stash-spam DoS attempting to evict a legitimate user's entry. • Body cap (32 KB), client_id regex validation, JSON parse errors return 400, empty payloads dropped. • Both rate-limit and live-session checks empirically verified via curl smoke tests. Reconnect now revokes the Dropbox refresh token at the source: • reconnect=True populates DropboxAuthManager from os.environ and calls reset(revoke_token=True). • POST /2/auth/token/revoke with an 8-second timeout so a Dropbox outage cannot hang the operator mid-reconnect. Local cleanup proceeds regardless of revocation outcome. • Revocation outcome is now logged at logger.error level (not just print) and the failure message tells the operator to manually disconnect at https://www.dropbox.com/account/connected_apps so a silent revocation failure cannot leave a still-valid token at Dropbox. Logging: • Single FileHandler attached to the root logger from __init__.py, pointed at a plugin-relative dropsend.log. Replaces the four duplicated logging.basicConfig() blocks in monitor_output.py / encrypt_file.py / dropbox_upload.py / dropsend_uploader_node.py that were dead code (basicConfig is a no-op once ComfyUI has already configured root). Log records from every DropSend module now actually persist to disk. • Race-free creation: pre-create with os.open(O_CREAT | O_WRONLY | O_APPEND, 0o600) before FileHandler attaches, follow-up chmod as belt-and-suspenders. Closes the brief default-umask window between FileHandler creating the file and post-hoc chmod. • Rotation via RotatingFileHandler (5 MB per file, 3 backups, ~20 MB max). Bounds disk use on long-lived hosts. • dropbox_auth_manager.py now has its own logger so revocation successes/failures land in dropsend.log alongside stdout. Tests (tests/ directory, unittest, no extra deps): • test_safe_paths.py — 23 tests covering symlink rejection, path- traversal rejection, allowlist behaviour, dropbox_dest validation (NUL bytes, missing leading slash, parent-traversal segments), and resolve_safe_watch_folder edge cases. safe_paths is the only barrier between remote workflow inputs and arbitrary-file-read on the host; this is regression coverage for that barrier. • test_setup_node_security.py — static AST analysis of dropsend_setup_node.py asserting that every send_sync call for a credential event passes a non-None sid AND sits inside an "if sid:" guard. Catches future regressions of the original WebSocket-broadcast vulnerability deterministically. Also asserts INPUT_TYPES never re-introduces app_key/app_secret/auth_code. WebSocket-broadcast guard maintained on all three event sites (dropsend_credentials_ready, dropbox_reconnect_complete, dropsend_credentials_needed) — refuse to send when client_id is None to prevent send_sync(..., None) from broadcasting credentials to every connected browser tab. README: • New Changelog section documenting the v1.1.0 security advisory (workflow-persistence + WS-broadcast leaks in earlier versions) and the fixes shipped in this release. • New "Bind ComfyUI to localhost or front it with auth" Best Practice item (item 4) explicitly calling out that ComfyUI's /prompt endpoint is unauthenticated. • New "Encryption key rotation" subsection covering symmetric-key implications, leaked-key recovery, and how to generate a new key. • New "Uninstalling / disconnecting" subsection with step-by-step instructions for revoking Dropbox app, resetting app secret, removing platform secrets, and handling existing .enc files. • Threat model reflects same-origin/Content-Type checks, log rotation, plugin-directory metadata-leak note for multi-tenant hosts, reconnect-revocation silent-failure note, and Dropbox SDK error-message log review. .gitignore: • Expanded to cover *.bak, *.enc, *.key/.pem/.p12/.pfx, .idea/, .pytest_cache/, build artifacts, Thumbs.db/Desktop.ini. Bundled in this minor release: • Single-Observer fix for the macOS _fsevents conflict that previously prevented .enc files from being picked up by the upload watcher. • folder_format dropdown for AutoUploader (project_name default plus five worldwide date formats), with two-base persistence so switching between project-name and dated modes preserves both patterns. • RUNNING banner with per-setting plain-English explanations. • Branded watching/encrypted/sent log emojis. • Per-shell copy-paste commands and echo verification for the COMFYUI_DROPSEND_ALLOW_SETUP gate. --- .gitignore | 39 ++ Images/DropSend_Node_Display.jpg | Bin 457039 -> 0 bytes Images/DropSend_Node_Display.png | Bin 0 -> 416928 bytes README.md | 510 +++++++++++++------- __init__.py | 84 +++- dropbox_auth_manager.py | 179 +++---- dropbox_upload.py | 11 +- dropsend_setup_node.py | 766 +++++++++++++++++++++++++----- dropsend_uploader_node.py | 232 +++++++-- encrypt_file.py | 28 +- monitor_output.py | 34 +- oauth_handler.py | 766 ------------------------------ pyproject.toml | 2 +- safe_paths.py | 144 ++++++ tests/__init__.py | 0 tests/test_safe_paths.py | 230 +++++++++ tests/test_setup_node_security.py | 221 +++++++++ web/dropbox_oauth.js | 720 +++++++++++++++++++++------- 18 files changed, 2557 insertions(+), 1409 deletions(-) delete mode 100644 Images/DropSend_Node_Display.jpg create mode 100644 Images/DropSend_Node_Display.png delete mode 100644 oauth_handler.py create mode 100644 safe_paths.py create mode 100644 tests/__init__.py create mode 100644 tests/test_safe_paths.py create mode 100644 tests/test_setup_node_security.py diff --git a/.gitignore b/.gitignore index 9110d1f..ed05801 100644 --- a/.gitignore +++ b/.gitignore @@ -17,6 +17,9 @@ env/ .env .env.* +# Dropbox auth manager credential cache (refresh token + app secret) +.dropbox_credentials.json + # MacOS system files .DS_Store @@ -36,3 +39,39 @@ logs/ # old backed up project archived files to ignore _old/ + +# Editor/IDE backups (may capture secrets from edited files like .env) +*.bak +*.backup +*~ +*.swp +*.swo +.idea/ + +# Encrypted artifacts from local test runs +*.enc + +# Stray credential material +*.key +*.pem +*.p12 +*.pfx + +# Claude Code session data +.claude/ + +# Python test artifacts +.pytest_cache/ +.coverage +htmlcov/ + +# Python build artifacts +*.egg-info/ +build/ +dist/ +pip-log.txt +pip-wheel-metadata/ + +# Windows OS files +Thumbs.db +Desktop.ini diff --git a/Images/DropSend_Node_Display.jpg b/Images/DropSend_Node_Display.jpg deleted file mode 100644 index e49e6254a096752e57dd0ca63a464d08831c2382..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 457039 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 A_GnPm)afR(mHntT^~#g>sB}T{ zyM3kQj}!+!sNM$znh9TaZ@C}{oEx-#v!xP~N>M*?v)rrvQstW4xQA0kCkJcG%P|pl z$+{h`KpE}I1o0-mx_oD)FWCxFQ1=LS^V~Ul4G4%MRKTJldRO>&`@>KS{4isQM|Y_d z&7-eUUlsPqAKF+xAqIC}V82@pb0F!gKe1KQ)X`KO@biYT-?|a3%}KhPJ90b-up3Zz z&_B2`K8KkP(-__)D~lxiz$qljU(tk2!+P zH1TP6Smb(oZji{Z%zZGWL+;Rm5l5|oF+arZo_gT+_pdnPUC_)TilliSEb|F(1eZp& z7um}AHp1^l{=|T7o|lJdj!#Ie5dhk~ra*ShQZqB=OTxqacPdbvg~e#>Lwo~HS<_it%AY$tS{tJEIQ zTKa!;gMFXU)O)(vtrYm-p^lnf>dfI{UgV=FCa5DP`OuhGv8y^m7u5=^f897SIWlzD za6KFafSu?hbp)mR_%b4^(~P!?O;{0T$2vm;jSEVN;!M=E_^G$_5MmxPM067djK8?g z1b{P}+ec51e{c5;#?+G*N-~+B2sxCVkWYo!CG;M#_vQ?&wNG2qK3S+ zkQo$TdQ?>1Q>!4BPC(Nj~ zr;Go=216`EZ+-3IDZ1ty%U=sY$QgbKzNs^*8`iwJKQ56}DYWdWs_U;E=O5>vAC)NV z8MqjiZk^61!%ynE6G!iW{UqexGO*a@os6+MSS(rx%hR=wn~!fZi%KAkKcFQ(7*-zG zCQjE|Njy*V41y|faHM4i85pr0RO(%wkWpAjdAAx2?A{5E;-1`Z*V7_yZqazJyHXG6 z7b!xKlMKFK#Ti{^$Cmq{Cr;Uz$P>9(?BIG#>+_45G0U+&JIPHY%9GA$YojOwu>nDs zyIV*S-fIYBPgh|1|JZx)s3^0nZxkCvMNmv=hs} z^B$h>MkKd~G)l(9MBD3ZW;K zMgLR|n+o3c=yZoeTSc8*ndFh$i%a>*555@APSWA**auLG>>qe);wLe5zjwL+$N$ec z&5O-RaQ>2^naHzrcbHtWqNjPy0;lcxX8!aUe{-cK=wB%kpfEOTB_L0eX6K~aWUr7c ze%IDA2iNmZb9X2F^dNq{{pha6O)zMDTQqsVfL@J*V5+rua%zo^M*;%N^IUOyP}@P* zF4U~e?krnCJ)CBH_FF)KdKiFMuEdsN#`{{2GYr|7Urv_ilH7U!34LO(#75&Cuo~mU zXbY22oz&GHsY)5A|ChA=(&N06?RgxXim*NVjCm_ za7ya?a71x^dPN_h6>;&VO|bdZPehPwal3Lo5ET$c?b{naM7@H?5Wjr^>4ICWJssWA zrLrB@R9Bdj$NRqe&|Ks`jS(=spup7rr#&sxc_8}NzU}ienhj5cwLE=Z>qgaiZECBQ`*WcWECC; zY{}EN*|2C{vbBDHGg|`}*I9A(L}f(lGRT;@y0I>=x|Wt!-3t789=!319}d{z5Za$# zkNW`xAX4K!k=7PTN!b_4by#mj&!tkTuFBtu=cd%TDM7FRuF-I=dE4fmKlXL2hP~J2 zPKK7bEwYr%?hX4J8`g>G7Y7u$io-_3V_acjK#8xMCxSBFoW*+t5A&B@acu-fmI9O1rn7z(f27DQl8 z90wlMJ1VHV%5*N{6Hhsw7>Hib=r22P4GD6bPORQvE^*1BkxF1c8087DheJ(}pcLJ1oM z3w1G-+8gkM3V-9hdoJgxGQUsqR6W-c-hnWPYslob57lXv%ek78Zj zwVob%hH0Gr>J;F$Vi|;tx3)%FXGM5>zhUsS4Dfs+Px`r=lBh5rpN-`#$upeni`CEb zaTMLvzpUuvfbOq%=G|FSREa|Ao)pd%1jLC;^YZC>Swx%Cz0|^ks(=SGi2_^mv`Rqh z+r$Jz51O_;b#mg(f>lPheNUUzc~}JVt$J&NFc^y@?946Ea9rDj42$iF-tHJguY*XR zzLN!;zJZ0lKy-fB;_B>5VRmD~V!RZV9p^<=HUt}^BRlScr7gSH73#Zjq0(-;w>)Ed zB6EuSr~->QXGvPnFVeb;yI8%p&dr#g)52|Lf4WYc_^^uK{b*7+&&kdv|9Q)hqX^SX z|IpG_oq7hV^(uB!B;2`^IkbhxLA6$ zKv#S}nb@PHZZC;)Zkm$#WBjz`y@Pu0;5EI<8;p6Beg@W%Ul;1?U_T4<9Ys&;q6QMWLyR>sEN+$v0rb~z>m)~8HOwIOBPW?XIW6`BGz&Z7$s%T=3T*Ei7D7^s2b5E zo0|2+6fEc~Q-&m!xjE2O&LMMx1A-z5!|I2GSP0*}y5%H}o0Bo9|2q{%@_i4mmg>HJ z%l#mShjuSgAvJi7F8s!W;vLTi$1HW%I415b{Uf5<4ZBAAkPNZ5NL>TJuXG227vUknP~L zsxE@{ee<0V3l9P#mXz+%YFHT?yeO~B47rFe2Se6Y%;*w7r*LNmmnx?MR&dSjvp{YR zCwk|%sppV9L^EDy&A6@2FBBrvn3MTFx<@U>#W_SQ=jY}Yft%EGZSzXvVh@Sz&9%fD zBOs};+MskBg)ZICD5f05^Sq3}9rLF+)lnpjy}mu}NnCf*vV<~7XmmQb>nzGLp;_jj zyj_!960L3a4cV$l%nJ`YS!PUG2%b>wc!K2mt;->*(e+$7}3lx6dEGZt!mQGka!9 zzr|c*L{aB{^BW?a?*Mtart9&p-+pDRTZLQitDwRIYzA1{BZu1BDrQ}cs7@`28QU6@ zcSzUjYA|w*b(PUxT}4Af&@y^_3&=2W9Hz;|9R%0TZ#=pg3NC_S**XIc%gbe%qwa9>Hrw#)at`=>!}1H5;# zg9mo1=Mo@qev+yJwd4`6?Zps1u^2sGS64HP!A!$c7}AOWWvanJ`J317r9;sgZTsX@ zc8opxK-ZLmX2Q3urC<7G+u?7$Mp_QI8F=SugkAF8ZHx9* zj0ZkG(qoptli#JGahg=7@K)ioY_7-&MZ9ij6OrFo?HM3U|DweH*Y~_r;6PM5>ojg~5WcYi+EyZh{*Q=kA7r9{q z!?0IwS8fZkUsmS}X`;~PV3d4s5uU`eoJ8)Fl@Tom<7d5>Nqq^YOmJuVFJSUNl9oO4 zA2Hx?Tc==8gPM#+l-d>!iVBXFqi97NO2m50iEQZGqx z^ynQjK+h|_M|DQ+fSxe^UqlRsyYjBdZd) z>~4klo=7ul;kD~|tJP$!^ty6Zxj=}J94e{zWAV`@&~q8LOT`%XF5By~G%}{I*_SCr z_v=RY_bP$1K!@eh>*S*5kT=giJ{jr09McMaVFWmX81A=HcJ$3geiX$=%|WYVA=+EN zBumM@q$qhC0ZaAzt>hlx?bti%EO+1#Ib4wE;a`&T{~$+tD=>OCPeCHh_v!Q>c&MK< zmZL!tDTR>u(QC(jTqMaAw@O@Jua#{((6_4j73hi<$9(E=6R30^9IE-_VSnrWb-%$< zLr)*v)<|uyqM@R~u4;}XxfP^pRu?tGr)kwy3wdtN7z~D7xjh+D=6f_a ztf|Pb-A~^uvMsF0JEYLM7_UncZ(+eucHP-a47{iP_jUYj|6XG9Rw9Nl>&Nz~NZ>YG zO9(cFm2kOkW)a+@thm6+ql+932?=5$H~{DMg?1SF2qrYV+GNV%DQi+h5Z#OhmAAS_$pUfS605osm-u@!|CHjbmJ~)(F5OL zzp^W{-AO>dIe)(@ny0SJ(@x6L*;Pug^81}+(u!!)UNz+ONUUnphVnJfh3K^8mBAYz zBjVLe{Q>n>Q+ctJi~Z%y4wVPIa%K)5cW9=?=WkTY6DH?6M1 z;5`zfm4!14F8_g-E~JIFpGVVXu3HtASo$t5L1M-T0z_* z>ZD7`w)$LmhhTIy2OOI#4Iss_8y#51=3)3{r9OG?S*%49^S$#<>!%|IQjdeSJMYoi zEwZlBnix&T&Ak}7hUp>G0pA&%19%|9p$lt7$GN|U%0fN3ncOAurYQTk{@Jt_I;*^t zZ-Dwn68pVxMVa~1(Q=-dNoT`HdkQ7af^9Jr7SFBY%-Uy2RxEe7u(hy^zb&F!V|5+9 zwjw{UUmcdhCNHl~ke8DR^P(T6D*xiqHwGn>cJ+|9v-GN`-XPZ^t=B;>7c6sZ0*&uU4^@XVe zO^;gZ>6`nBA}P`k%`ic^+^c zq`Sts=Fz7C6B{Ge@3JcN5V_(Sgy$#^l>Y8nK$CDS&O;yHrY_8McF*gayf59xEYEh~ z-pGQ^GSd%gQn6BuG^Wnk(z(pJcljC^IUZGzyw`>?YODK!E+};gh+}-4JwwHuwY?>K z50m-r412{&_oMJuBS^AIx)70xas9082Ez3M-*qUi17gObrf$=(G4tB@giM}Mx0HpD z&!l+59r2~UUgPK5`UG)YPo#YGv6>6l?@Kz=erMkT)7YJ{GA+~B&1|V{X7lXo`t;|V zDN3tS%~)qMR;#t3B^XS|QqIKd%5>+A;xE&o0EmNb9w&|4hbnLUD648S(%pxRZgW9= zZXZi#(84Bk!WN6AO1ADhl)$DBsSfV0o#|?zbPFgnP|jK);KRl2)x?&kbQ|C`9_0Pg z<+9Y(d)Xcwm1PGDYKmIV4(rK$6YC2|kng>oCbWvE%Pt0K%Tx@&<(P5Vvp_!oTS4Ie z7r?pToC_s!LqeP7Gd^O)nC7v;#avd3HDUvrZjsBfi#BR*A|y_pIEi1}w+;(*|Kk0v zV$*fACAr`6Lya1K`G7=pP?BIg%$m&g(3nG%2evOpeP$VFWJ}|mF8_Og*wOzOi2dXH zU0J>e=ajmyKhqd=&`YY7Qa5&OY(Qit6;XO=uumDU3z1U4Rsvi#ZgLHF|~D|;STpKa)=6V6y{n#f$g zayYcUakBpvG&7&WDQRe#{5aiq&cy8D1~5i53-*&B5_bRlGP z9^>EaIeHnJnByVcaAL#uHN_Pxs-SX!L)sEI=Vm|^P%Zy_zgcNFHT-q}GOL&2+Wo;n zjRD5@;cvdgK9s|uEBT`T4&nYA`Z`@|c-t$r$>wkYzDODI@sjGDOLt$GB;4t$IQ!i6 z?BM&ePhee~7RA8UeudNiGdQe(Ll(dL3RZiuH&0Ry@k@^qJa^LCuz{hjj!znF&3@nw z`cE`}<)QQ?bAN11>SaGCt4(Vtq;ZbjQ89G8Q(o~pYkkyk&07^k5`A#)h$4 z`s03^Id{u#+tx38r=&O5jW-%Ad$VY{FCgafQ9A2}D_u8C3`z8mrIr`ovCeei;X1-C z_d$7$68zFejyKK>qU5XB_-~}yt2rv8Yxz+MpD`j??plR*7R-e33s+U-Vuy!WL}1PL zVaB{_u##qL(Xm?9A9$P*`+dHRYyJxdvs>g9Ro`=_ocg8Tc2jxrz-jZ6OhXEC@^j@z zQu8QuSZs1j+4bJZbHnD|1vdaFc=iY0-5y%4@k5RoYKQ7PEj0Q?;>S^Lf(s)$DW?(= zs+t0~D8j~X;!xv-lY+yQ*&4Bf8J)h$b@q)X>tZ!1UHgo(J#2rW0+E{m(@2LH^+DSc zjkZwz{h~9udNy&e8>VhANMBmwrV!>#`Gll>&DrWtt`;y9zKO~ixz=r<7MB%rH%u2* z6ck$Ts8-1?R4j$9sLpYd&lp%xIHDS(3a{|va;ojEC3^sQk0Tj6p@YFi#b~^kZR`6Pp-k2R+QkNu90SAytf!=*Q>DO!uQd-XdD=KC3R-OB$US z#Bv+#6dTrPO3Lvh=CA@jtDj?QzpllDuUK1$sC1`-6}ac?2OgZ#UcM6&5npMIx}9Cv znJsxkPdy3o>FibPIJkY@_dTdg;5Gb&Mt_8iP5CrXPoha2T?AxYhW7jnV}uaH;3a3c?|VwHElnS0P}?G;UnGw>VSoY-j0d>`W? zZAA8%piq7mKPDoQBT;+mdcX2D3n#2hUV4P|8wjhy?MESJRlsOKXmG{2V=!HJp7%*+ ztFe{yX=r0k5iCMshYNH>M%4~k&RYl&C{QUxi&=P@-rZ(^F_l%HAg-}xv#nNU+~q8iHlm$+WVzvF)#dMT2mK#U1WX_1*sN2*Br0-qsj?bRvZ zP&1z)o0HJP;{n>N3h%X3>h=W8rRMAS!6Co$<@IT=X=Og<{XiB2c-QE{%4YGR z&7f9xPEJrbqjuJ2*9O~p=iCf%ziLxl+h{i?%(8(HZ0s;gfc(g zCelH+#-+Uc@JT2KI~k=rvQ4!>^M&t)h^$dcGf+7^sGwxD{W_*h)*KY9OKPNrM_$LPHL`>klzfVNx6u8(c~={67LDS)wqTdJ1N6NOis>r zx6h9~MK`w2+@RgAWvfl+XszQCoIE1JI*24_S~%;T>s(w(F;DJSBhu(Ch^QekDEx#4 z1P4V%TnSwcM3ow%Z#zcKx4r7a9gMi*JBAgtqdJ$kAs}_3V+_)#yOd;|vKTMR2v3B` z<7{vToRJ5l!e3&Wzkc|WtLLe{yJgpj^dwf>>oUH#)~6s1lQ$EDsEZf%;|bZ=@lVfv zn9~NV_YfDB{zE_gO<@Id$etK_$etGPh#$u=gDX57*Uz?6N5II>)dS5dKjH!dMnA@e zY+K`h;Kk*NFUI}AEAj^${>m_}n=lEU0TaJpC9l1!Comj`qQ;b05cjswK0|;A7%8jXLvQz28YD z@<8Bc=X!xZzjHs7;|Cs_DzuaB2cF?6j@kb4RjXvI+Potslo|5mijRBFTs}&U+o1!l z1$-Q3eE;FK8R8{p^UA+}ve1r|600;kBksjm@ZkiCb2r5O86EtM`Z=a0aGD0Q2PY6> zLz!BaY$^p-FB=;M@f5B{7mJT#Y|nIp@B6$Eet@n^N?i1i(QsU!wzDntDxJ8nlzO*C z+-ZwjBki}Bs*@*icV%Gq#!#>)&JHZ;9sLC7-_`G4*C!YjZC6;8z zws79_F{9-&MAHU+EhtSB<_Bl=zrKD)cX)O`8s!1}Aj!7B@5}xX`>Nw{2d3@^USDqo z@Rl^;HvW{{P2hCV!vJ)cw3q~Lm028fVMB$Iv0K80pv7dFJ#=>iPzm^7q*IiC;Ca!G zK@TS?n|^K)=waChN~7u{)|yV%r;Pq<7n=qwHJ~%HZnIc-`=bBa=-FS3{6)!MJo)S3 z{1QRG)=o`YMOf)}EY3%0A{uwJU?mWf-&Tnq0ZrfaP7cQbQV@kh8$zAP5eOrpKt%Z`c9NA5H75{uHgOMu5h}%t&5QGKb z?C*UWe?u=gFqvL5-KjaXO}4j{eg!jfbr;XisFlrYNd>@xXdyO#Op2aWuf&_gMLa9b zvhOl!MXOjGq#1hsKLD>4&`-QIhC1P_dG4zWN(E6HlTocsV0M7*n~j%I`wbBLtm-`8bA)g>i?EH^2hfT zgdN?>DXA3SYMx3CoOigE%rohh!5Pz|7~Z_#To=6+*?`R5e=M1Nk=L0?kx^QnNV6PF zxnir}Rb7ryFOk8np>By0+efDQfQEp@r_r;?p|$r#9m`hAM&Rt{jUgD0tT2?|lS;y( ziy`f%dt`E1LFNH^(R!9PBt#}x$yy?Bh^?XUQUKI)3}^xU-c48NPUnknf(@XCCMC4= z4a^>I+wEIwq1pRRvJ&i6?RrsFmGO6q1ZucyXtX5L%P8Jr$-=J<4}a89(JIG0eSRQ@ z(vwP81v9&|1hy8Jd-hu+>M?XMgVS*2TCGh=Y3$Ao`&M}-@n;L}sprzT5<1LE+{jZe zI+IBzC4~g&3}!99KAG5-0!;Nz@lf`gjfZS!#MbmkZpo+v$18Z>NP3Bz!rR6lc<(wM zhoDU!T3>+R*75U@l++PC`KD(w8KHx4(n;BkO(vs( z4ywAYeD*1Wb5HcUN95qtxou6IKj{?OuC9vH*2ffLW>Tzcs>oGDOTVspa!&=Moe%ES z?$%eX$a6Z7%SnwcdEYodCD)=tC9{l82MzuQ&o|UgeeLT$$Woi6UD`4g49S^Blb;tJ z^vPh+neYuKcP}3_{f;n*@P5N;Yr~?YxBAwH!Jp79ruP<1&;+<=g1{ik#JA9H$EAvT ze?Ihj1@RTrb;8#fE*er z@2^e48=}eZ%(xgf%4up7j`#6B#$$sb2VMxS5eeTHQ(crYiKqm?^a9UJ#gp&N%sShV z#BEHYZOvwBC8{fTb`NPIqa!gyq!W*3EO^@o2fKK?=x&P&%jAo!TqjTi^jG}0VdVR2 z)mK&@?Z19_&nH5(yU2NHy>r!hzRb~r%azVpKY5hlGyEUcp(|GJ03@M zliuxPM`w480=5m}x#3$l)4g<`a@x&-Uf^ZN=seGjx8Wk?a3VtuYV~0+B0o2VFCrRJ ztRl{BU$~2JJ(mU2I{6Pn{|}q~m-FRc_?|$gl~;SO+x#=8$Rsj4E%TUB>KU)JZ4~-z zx>-fM)8rp@sI!!4tn9Lun1h3i_fOR)J)gXu%W-1(iBY5r>{`AzetC7UaUjL`owx#zo~UBh%+3cuUs zl0^zjuauPrI_aYDa`A5OB;O=~Qk(#tx$5{oXxu-0Rfd@r<_rkS2a;kaxjOJZBP^@w zWlyM&#lZ5C|MXIy|H-Z58kBX70!n@E2Oe`C6Y%NK)v# zebp%0p8aHHrY9t%11sW)i5I-d%F4stnteaLUnD{7M(Di)c88w{d};ed9ld!YuCL8^ zly7pfXhxmw**IEOeu^llOyFhxcutXp>SdTRcTDz!6fXdA2AHOWi(DMKI=QKn#S{9q z_A9hYvPWAjvKvI>Tel75iKY++zkjbwf{u*Wb2PFFM zCs5G6stv=oHL6L=Pv6#T@0WC{>?d2Y2#*;fSDs#?%n6`Mv4{(^$z{s={Dn0@mqH#O z)i0mb?V!;QE_&Si6iQoOcb-C#cPhs0$~9TT&Q-El+uz!A71qgYM%j3Zuadg1nGd*2K@;XTmHttO3|n`P?8%aPwt7)Xapma}t$ zgr$F*eVkoKZVHb0%whjlUW3>J-)7X>2=$~dKO0xMJF$hS{o-A&2~-UX@%owxnYzi= zfI{)(4lv=4H;6KYj3o0eG6R&`Z)|WTLT_Ooef}77P46wrIbJAeU;S#gb zH;=;h$&?pl?jx-Z4HHrUtqyO=>7LP?d(f{k|C%hi@Xbg**WHWf*ekA_mHVyzT5c84 z{2^oJ`w382gT?lJKD>Zjuzy#0bU4}MG|TD=#I^6SQeS| zcHGcHUnti`!qoOfNL5~)>;XCF?S}^^Ff>O^6+cF@l0^n?M%l$`)Rf~+p~dTVKlB<0 zZdh14pNpTiP?4XuK*I*G$Be+SxfvdQ(&2BoE8b3S9)4DT5!R~o95mHf zV<@L&Wqk!pErd^yq$VLL?^rU*jFF|sPukj6hkPRQ5OvlKESCtRdqRK!V7Ng4aY`cqLg>lBb_7> z8ZYrL2ShjDLe35jtE-1_R4K};EPE~4ThLl+Bi{Tr14`%lzb;NwiwlQNA8Yf)Ox1;6 z(ux~@J402OK^xN!X}h4i!p5R&Kpd=L+6Bx0f~#c67&^Z#aR?{4Ve;B+-VE_bZb($D zc|yYiqN?+x;bNAH!=+Az9{RT(xmeT4M0)vWhx< zlINt`G{o!!W>pY7^9%(gTHY6{x3>}J%#pV=B(m3OcUL|~fa*3G?OK62F*ItcHSBvK zzN6&*YMqq@xs?{uZ%Tt70&c+75_L`OB_zX{<#D>>!k-l&P9wU?+lbF^*NUU9;hU&p~R+Q2){747e}l_pMvWDcg4Wc$m?c3JBNhXh=+U>vhNBIEVT5-uCuqOJ%W?SN4t=Taag`UL9&c^AM=sx zT;t9jipOEs^ZyK9{G_haQO+D@0qq#xfY=hJt#?Yy7uV7TE;n?UzJw9KBD;IvWIM*D zhQ;=&*xi$8Gx7(`h~3*Yc(|^u>0bZsk$GT5Ek@@c4%4Tv5~!r`oZ}x6S6_Hnl>e^F zbS;mm=Wvtk(3qHa_$9lR-nFDefqTT&-@r3{{@Z8%J-S%gw|!~}N~;~vA-eNf2#~QM zLy(&7ggz&7==;+1AO~)GE`(l=G9YyPXH$zX*>3Srcz^KmK7R4`R32F!(q&3A!9yyl zMRnBlOHM!zkA4uTvy@IxYqJ{9DnZMA@}KLe_xt>J@AHNap2|&1={hnFPdVJqkHe4MwN)*1JY!;os9Y4c8&blA7`}QxZ{5~ zbG$|!ux6i@HnXdbt#TN%bV~l_GCXE3{(>RdmM;9oQ|yIth4E1Z7sgec1Xfi}AR{Qg z%x>KUJ+s*?=7cSIqNWx49wQXY;((vM^mXg`+k5&zc8P`z@>dCo$n zHkkFcS#IWWBJC3(5uW+H#$G4cI&X`%3v$f#f8;ji{O#FJj3#KJF04X7!gmNqEU+Kc z-!xQ8b$&h~*W7+(lQ2Z?5*;d)tnLb!GSRT^P%|qk-B_iq>uxySZP$BT>cZy(bw!7v z#HSWZDD{|!*smeuWo6Ep1$Y|FCo#zzdjtx1$@Sb z48B(nA_si>8Mm%{%dhT_))C7_(FRxUG4i`0DqS3vQm>!a(2e}KK2wB>=}he|u=nFJ zwOV{le@RpEgHD<{Gw4EH`v(V5c;h43>bC2Td@?rSNy>FmXiV<}t*vxgVOCOQ%*}~SfzImOjR)wW_EiG-8_tiJSxKjmBz3g;Cx7&K@R`0cJ zSG3|j{Wf}XX&ZcHo&?r{t{WeuCvf;iKK_hJ9h>sYO!+9)$hyq*!M-OIWyiK|y{S6d ztb17|JyU_1(n{%Z1jqa4yE`!;jim1ctK~EF-v8`QQQvf$9onz?IYwiQQ+_O#+Jj9t z;lt3L*i^xE;&Bvenc2?v{dO{yRFM}0I5`#kqvHX4KGL$!&=h8Yjll|gTj5dGZ znRix~#(w^2P*ZhN#-i1(ApCWzOfZjrx3iFlYgCE+*{kXD8mb+gif6Z2aC*d!;uVyq#33)pg4YzA!V3q?e zoOrA|l-(%SsC$DgB&NFfLCVLme?7q4Hkp>_Ql6pW~4yzVyz5p)%Ip2+Sp*_*bl)Av|G3gjIGsFXz_ZdAVcN zw{c`eY%aE91&UT#?` zwgOcAdY-c==o+tqePNG=9(Nal(=lLFBYuP{1bn9ff*Q;!Wn#jv%#I!v&`$J=nq}{p zrw$-ZMZXHMcNuzJBPnz0!MD!g1#4~|GiJH$IC`^}^-5V?flqOrv)PR<{J@Ki7x;Sq zlRx&*7P2Mo=$7T7I=pv|Nx*W^eOi$HPL;vBjq)zUXk55ZDTQs`+BO4mpFR3>@7@6C z42imUC%`%q6d#(FUe)`1?8#FsN$<1-%uw{x)&dOm-}-A^vnQsS1WN>%*xc;9ipsl9SRZ}oA+TZ& z3#64MGgHv4=aJD9)KF!VFCl0Fwy^K9LL_x#W$Fk9U8G2(sUIJ5L%@LjEJ;LP%dAa5 z>#3Vpyn?RbhwC&dCWG-}p!N2~KU)C#Jy0kWxk2#*FKCGZi)O=NurSAi8j#UEEDUXs z2YZkc`TLD3$(C3#8qU*vg!me+u4~}!zl0vfD{Gb7-s>mYM(z&E-+eOh=J?~c#hBxb zxH-fpN0e20%j6K(RA^wF)1=`i0p{m{?e=KD%v-A18(Elf{P7hc?Q8`H8Ts>wMUa@7dFoXzQ4E0OYlI6VI^3G{hl#%@ zqCDqE5Q*S$8u|UJY}jjhkq7md$YVVV=spup$q1Q3zmSUWY-1~{0QctnA@gmz!EkL* zgAl*=15a-XoR6PfCUFdogCyAq=sX&@mDs7VuW(tK|M16mqpx>6!Kgcs0C*gT%M)$- zG58;`d58>%Uq%W{RFm8vAz;S1IMkADFo|(!T8`#ZC`(CBzNxOt3>pODRhqM^iVcJ9 zpVfbrk{QzEYz7NX32pk`McF5OEnf*1TEKoEabf9Pe!TK6KwDhbgnz)f@2?|j>pVPE zOzaJd$A_P3IoMCZp7>pvu8;aWAVs6B9o=pAEttV`#cCxZ9+@>LU`%8Gp0*qT1oNzi zET|)WA$l!QIb-X}Vm9X8y6?zY9=Sy1IzLnV6_Kplo$XbK?-RkxECzuLE=z1g&Q|W~ zyv0U9ACC$z^fI??JO`WL9#7$Ay1&9q*GpKMg z;%NnGDKAg!Laqc|Y%?85YN+}C`pZn`p}`1kT@80#g4@%owy~mwb0tHxMsKnwixQAi z_C_ITZW<6%Th^r-Cz-;-^4LU3fR?E1 zfZpp5KV2!Vy1aUzJ2SyCSL2S#%$uBQY@&uJLwEj(kE@$^)VC30_e`T-LUejb*J?-h{nhYNzTx-|FV zc(JT+ma^FK%y+8j0kAwX-PFB3w=cO^3K3_-N?=3_BvPi~Zfo{Mp&ce^&lJm6Yze|4i_}TUY zX@B=fN8?;&sl<0=aOIM>>Dk+I_+-iswTUdnHMsGUgYIc_%v&epHMKW$&;X3oEMa67 z6hzh^D1Dv%fUbY+pwIL9wAG*DwzA~d(^U3sIR)v&O!MbAfv>PBN&M2jcuUGiFh2Wn zU7?3pzObS@6=!K)Na0I{xH^w#>W}(q_@eSdHsvB0kRe-bxt+ZC!QQa=iXEJz@LJDL zaNobV=U=cwB;Q%?r87$>72iK-%qRP{`(t8Xp6bHpFpMEu)OAw@sgoVq^8TlPgsYnK zMH<2JUW|BEBlk(nbOkChu)RUkl{%t`GVXnDNL&l|nC4US=DEC_Y-_{2*+uQW4EHHX z!W?u-0Bwp=t5%4^D;t%oBu@(RQ2N&b*n6g==-*DlpUChW@Xr@;$yf5YL5>4y4TutL zhCMrS?>{=rM*=AiCURy2n^Sri{=M7j#2FJt&^+<^+rIzcdcyliWZr5p(NhE)_NR#U5k~9$z}Z?#{qBU_OJ%bnJBw zft*#)>gw|BXl9hIb~}{tc<+6n_V-CjI(q8iVY+I_X0ymefVj>7kiI3euV#NsUev-D zoT5#svs`nCnNnZ8o!cvEWwkZ2-#iqOzobl{$X_5W75OeK1`?YaV$~9|$!=!~p99Q2 zWLFeKcgcs^!{i6vgw7##{IqDo*m0nvgI8tcdWWjk!ajk3gN1Q^SD3Yu7^~MMB=o~1 zGa@HEMl#Y0Zb^g}wU@_9EDYQs zR{_TSBkK8YZK$!Wgz^>dDceOWC#NAW+VbYNX|EeI>1k&wt!!DAZEZn)SoA8AsN%kq zvO*~{OqOaf_=l}TpiXm+u8-Yfdv~seyz8+Y)gS@IzkHNmhJXrSYhqL zH!9zz9!z+)$LmO@0cLw<*hgN+pwY708j8K*v!4e#L$l#;)HF1Hn=Zri8>>Z)5pVaO zt7}S5u!VB2S3DLgE0S${a+xXZQjCsede^?pJ)zVVRJD?UXqbz%e(82s#b(J)(<~Nc5eD%F&;8_e3gP+_B&P{z($(ax7WUmSwcCn z*sh%f6Rkl9CAY^yv_oTlfgzbmfh0|PqJEmgv6Q)+L-j>cx}=|#_6~2BbrzHBVB176F}w=LzSf&rmzOfs0iy&eG099 z;NQ>@M!+9h{OFl#H5_XbY<&wu{!g`jCYmEN%Q}z|p5sb}g?9YT}D-FHkv-XqQsaFo0;w)65}E ztP!J5s^Yc#`h**^OA;q zh(7c>TInKF!SZUUj$NV94RxJ&hzJGGm-qX1L3{={%P)RfZk`Yq zS@SVz49ZrbYfsHb=_8ZxWcjxduQjIAx>RkBAXS*`%>DffF9qNa+Ekn4f_CRb&4Z`F zJhAJC(>=$9*`lqZqKGYOZ%k6S)8leDHfE)s&%xHlzIFpYKe|0;D%pcBDBjG?oM%n4 zz!pe>j>hRg!P{3NNGf*_HPT=uapc4&~LmBC2 zeKnEcy+&As2-nc#U8oC(l1pN4BXHdzg$@F@>FWJS_b}6F2lxyaJOA0@S)6{e8IxWq zF?=G~A10%K&TA;P(n~75xU!TRa&hTZc1Cn7guYpWR2_(5+1bPXlg|g?+ePKxp*4*U zz6f7B-*|V=-PUq%eQE&|>vmb(<${z~pgbUFnip+b4a_b<60?xG@x5OnA{gBx7&O6I zL7kXjhVTmlBIAtNnsTtjj0M{Y?RSZ~E-Ryl$eYiw8Iy!=N|$+Eo~kTLxq zc;Zz&q?9%pmo(MZ_i}SuzHlEKHWuE^@wJ;+Rd{2Q2??J`!e=xSTSIB=Z*?6wmST-h zMnNeMrEqCkait7l9m)7MMtYLRq!M%3^3`2tIgIZ;8d7IKc%z@!*ki#3B=0rrvh7C#@d<3ffbs)PNA7~L}#loqg z+iyGV)}dA-mICL@WhnVI>ypyrigSyV%E?rh5(s+@Z4sbJ?q2TJa4SercHhA&q@DFw zKXINpZ8#~!$~nw*&(;xyUBLvQrxU~aD4vbY-_1lIr*!Q!4`}#Z@ZsIE)ZJl-0;AF- zX-%EmIdMoFup?@Urh5$KRBAHWVYYU>5(Nl*eLL;?xX+O&e4u=5@MDP!DQ}%gZ5pkp zrW>`EM|5Uur>?f=KD%~2pX&P;!Qc^Gpz^9YyD6T35zQH6kN`aVY{#}F+m4RAsps6& z9u1C4XcVvP6YvyT*?4c*4GqvHXtQg=<+8FnAV|z3HNGcXaO-An;N6AnZnYok`}$1G zc3%PYSBcuK1#45u6&^GO&!W+9DV{onho*f%i#VVol+$WioHi=<_HIJ!n;m7cJ}Ski za7PW6lu5e-6Q>HA@U4{vYwKIHG8=gfvb3r1=wZp~EDYM=1j+@eoExjtr{-UnAuA_~ zbKTV(9&u6E5WOsvUYM$*Rq1WapdPf@1kwkj8^t(Jybl~t*0HyJJq|W%kJ&s;_&L2! z^kRygMbqM@1j8!mOfX{2>C+WA-YUBfH_uroh0t&qlD)C@mrlXOxws^DoMBwhd$jGV2EFUJXjEL6TxjJ~;u~_P zpD%MW5Dhp4ThQlU!?+kVkyCDatz9ucQJZiV`G zb5++I8cN3N94(+kg-Fzcun`{hH(R?wI)ia$+?mqm5N&Pnkb117+a4XlXS-eq_;Ahg zifJvUP7}t)h1Pq@%f7PRKj!foMfcciY1!Pcp7Vy^&X!GiAHaK0C)27DaLxyc|ov`CVia|4oNH#syk%~!qO-DjM$&%XD2_m4N;xa0Xx52)3> zR;{X8bN*&d$6P~Gpjgp^42|^r@y@QxnB%ON2@n25s&a=33Rw827P^-xziqWk@v$^t zg@w8Iv!zijL%A8E56(>SXA9s}0_Oq0caO?zYxuBw{NqB$MkYtG!Kv zn~l6q{}`7LVa!Zn$P^DRJofe5c1{ypZo=@dnQjs~(?#;YOksoygwXi}4bDKW)Scf4Gqe=&+TB~@9}S+R7l>Ka7q)ieVc9ml15%yKiI)9 zsenRK9ls{EIbHYpPov@F*y={v%oE?`rs#AQ-J~S z$tBL}maM!qv|sWl0wa%yssIv`6X?q$fZfsIoqAHWz|g#I?U)mtCh)51P8b3_kZU1` zWJR;{x}D?rq;dmbt5OKA<#!)5psPI17UOqEP{q4bo_0kG-?xwfnMe=Uwy}xi2+IZD zBl{{<=di1mh}M||@1py)m4(_gDm%RlyBt8%B6w{Ww+l$MfDD5V+MyZ;qC12T(jU)p zW{qkZ0DCDu`abJFowIiYdoDmXTEU@lL&E$qeA*wjM=&%p$9s-r)UPTk9o45Ypj;-Y zsY+YkEFIP^PHPH!Lys(H=V%4zf=!1NZ0+V^#2buYtBu^QIel_nUr`rm_lXOB@%)`>10E_?@ zW7qEO*76yz$8K42SBRzGM}7Q7J>|kiVMVDUF)#U<*c6=F9>~i1p#O&-0U_XLP%yy*B75}sg1yXV`Vz&&%&~O@8S7g+?#I9r4I7%L? zYxB(guxr#B&c!9rP*r~H-SR1ScV5410ZR0+?M0kKw0w;o@Xtp6oy~h-`52} zX)Az~HKOM@by9sm&d`uyo;pJg?#yl}0abqus~TZ{IJ67|bwuFJa~vy1`4hMRFrk=% zkAK|j-)=5KIf_KgzRj=}Q{OxazY?WhhDFv0=eV(7#P-cIy+4j1lxmdLeQJ?Cm<>jXvmP?xBIQJE*|oNxnaEhngPd5c2^OfF4-Huzi*ldT04$b!j@}5KT1%6IH&m;F*!N0CKT1A( z1I$S(kbOI_uA!KgApJ>q^T<+_0Q;L7saCZ7e?$VS|8=c1$adZ>=r;dkD$0(rG>)dp zk_*C>3w|{wB>$=m?$p!x{uHRd)%i3@q_w$F+TA`vnVr6;*$~a+0fOKw3KKMor%Fd z4BX=5R%Zdm%@G~D^*MVnFF&{Q949LU73NZy>zS8pUg8y;n zf;Ro_kGW78x$W;;-dt;0L1_r6gZo*AcFhxGXs9Q|vN1R^BUPAA_#n~;q|FL=1-9zL zK4D(<&b34+tozNb#D^9>Sb*Q!%j zVG>VOb)<7uX2_Q3dA9|F(_Q(I1MP-2rnT0PLQ^@qj%vFj=L^YcV3w-%Ez_WN-|XXB zGKR`^=$fPBA+Ugy4an%n!N{sXc<5F3K(`b3d<#ai%ukdzB(Pb=;W>N$ZAQ7i3W(s^ z7X|_OoI`wi)N$q+H|bQZ`O5i%0*bQQ*CCZzes|@mA1Urvfu9sQ{c@hlsS)IGo)EYlTYK?rb2 zl3x!Xkv~d}W4Wuh&Wg4U(2PDoWabam$rFWEaxmv7D#P_8yaLH|fMQ zX>wBR%y!EvMm`E|OsnLy!ajEsZmiYLi)O7N4mM6B=TfujOpF5nc#fPe||y0=;;5c+Tk)g=Ap2vP!O}XQ-}xEgOgC zHF}W)@t|o9Ut#Pfa=`dKx8{Wmw|Wv~ccmBa>}>E?;+xl>nwc9i<$h`I2=6qtq$z+0 zT`|R{!ze4WJj+TPb*WYQapR_?9cb7D37ObhI@l57t7X@L?ACE72D%wqJogBFyjh@C zz#MI~A-F{mD`m}fF{p7JXRnzcg60DGZWy;dh_q3i+UZ*2YB}!NBdVxcVxbW8%5jVP zwJBRnKIM5+WzdE^?g+zOQAJ5bp`pKfEjsQqsRs!eVk!E2XD%=kWu&AXXKb@B^=@<{ zd&5wqTxR-P1&ty+XTz4A*B4@VB2#uXr9Qj8LAJCmpE+^F@T-h8UTeRb>2L)k{z02i zZae2VRf2+t{`z%R_9}Lk1!vd0Z4hUVMHpfuoadF&^AZ=K-R#4ns&WgWIK$e`2*WqMBf^YDd9QtK#_*`|MZeI3M`X#u)qtUaF;K-1mjJ z+ik=95QE_#p9Yj4FHWr~*Lkkj+TciYs`~QmsSHZAd zrnU3+1;uU;30GiVD-Ed6TRmmey+mB+SFN%$ zv-@mFi@tT4TCK4^Yk4(1q&TcFX!_u~uwM07KL!4%48VuN>G$Zig7rR7^(9p;7LB$j z+e#kV=qVzn=PEKB#72gb{j;VtFDOglWbJijden{l9cn2qV_sita|A+@i`izI zA9wd#CmvFoQOD%84h;_~jdVqLt6G;xFl67)V!EcJ2Mn9aD1F>x3v`^XD|#T8P#fam zx&!AEFWTF0@8O7=dm^sjqN^5n@fvQtCz5|Geo*YA%k#m;G~iM;LS5Y=_Z`HTO%uvS zb3_T(m-ytDr{@>AXK2ZMu+v;(8*jQC9c2Nve3Fs=ku@*L-v0mqn>AMSPVJF{3ouV{ zp~z8_jN?zLMr?aFS@I*H;&+!1k#pn6$D~yhG*fRlP&X{m1~eby;#7#PI|1{rOgnju zB)Ov4ZWmL5gD7cv2W|MI(u)CG>H9BnZpHxAosUO_wnYV7>Xb$m#HCoQIT3WRjWEleR%*xEH*QS7iAOWi``QH} zV4)Om5Yd?%{19!V4@#K8#Zml2_f}}pvQJ%%WvI6?ZS0GBA3|b3O@f4s;#fn*#|hlP z5g>%Y4}-b2O<@e~ZT2)gma|D8pO%E>)?K2wVx0FeAi{c3yoPIe{^vr+PKN;3t0%b( zri{ixR?8~-F;ZlJkCyJlTOklYA-G|H{46#WPFxyGGP419q7y78?%jHtfjPDFpTK1$}T3vmq;V2|vw*605pu;VHs-dHyA(8t#kKDn&we*4A>D@a0X=qLQ+= zUY<#4r}_Y~x)56Ktsu|g~89w-h&(3)mv1#*)ctNMC8q>^85U7qaRpAW4T6jU?@=vRD z3(OHZ;yrmF69n(}j@(U48cD1>g(>_^y5zwl(xoDbanGx*uUfF^4oD>&jdIyF? zSzhL3g(%)@$@S~Z08&GZ0_>A^D^|eB0q6KU|;EU>2nvL0OOfYBqFm=2$h(E&RFY_gg@RRQ32mx31gF!w{6@vAiVPXfRPTyqe6hL#}C7WtrN|U zVNT#!wWH!Xxb#P9fvU7UwjZOeN4r;!Z;xx=ZA$s>!bLTYFh%9Hc9AK}Sv(hD*BeY6 zi+j;Py;>!p`t-3z`}3d3>`84fYpnoqU^lFVj-`8By9SU{@hJn*k~_&XgcY^tIEF>0 zE6Jidv)!(F^V!f7ETFj#jO=`;*=YdLawOpp+adatgLKD zGYXLMvc5H6|G5@|A`K6{QC8MEmLB_Q_Zt5_?0XCKsAJ$1=yH%iyCVe+ zm47TmQcFgE5<;v(?t|8SYqM0RYi?Ho(Nrp63}^c;5pAa}$?Y8Q~El z1HBjPEO(p9XJg|gw8IC)-$Gww^r?DbgnRJ|+3H`` zd>WLLkRZjfH#0FcZsM)4fy zaDHn!3{;H+(d`iQwQ8*L=>XWz7KoOl2FoIUsx&WjG>)_b?Xa+fvyYa4lOgMHJ<5UZ*vu^jrsy53Z)9E29PXUIH^ror&O0$V2`a zd77ji2)pfa*D~9|h=)w2Hp93!5p_(b@h;(Qb-k#cVBEVyceS_puDq@DX3`Vwc_L4cD#0cSRtlPAJu#Kc&^R5Cnjdxrmn_NxPnOn>YVxgc;>vOrR(E_qu0a_c*5ie9rB8mblu`Q{q8zGt$n zaXp`R%4*m;ECyCtrLUyC_}@^E@P*Hv$)}5 z)owp3>(kcLVmPsd<=(Vv__RAbmfOmx(%Z$U=VRvVnW9F5KvPtSYYWTQieuCqm1I+pzOK!Q_{v~=k!|Xr|zyDFxgfM(LGd#oBFr+-<2%$)ynY(bDWp{A(kH*XRhtCRi1fE%NNZ)g%Eh@2I z@wb8)`(g#f++Peo4S)GR?Xc)+DodANl&)dNrwo0P=rMe}!cTx#{e4Zre@O|*%4RQe zTQ+>M(r!b3_WJ%*yU_OJ$1nDV_)N@0AC$5r7{^MhOR5oHj==yS@T?P-K9746G)+_1A$LjeevWpv>PZnRnM5Gd1$;Hs76L zAvgD5eP~|)zXPv4uc_6N>JPdvhSuFz*LcYDYZBDYiU2U_zvX9>u+$h8_ljnbSDPO_ zX_we#9Yc#_@yYq{|CP+m>(kt+I&~9#x|N!*RYo}5@zr{p9&Imuwf6khYke^@n)ZE+ zLH5d9u(-~8UZ8C!MaYzPJ01nQ(gL*1aphUZoP<7xDA_17fKfEGWas4;9UCyc)_#0= z7YoeE{?uBx{sT;kxy@hwDe24ZmOZ{%lV`b0=G3ZL#a;CDZTnHhsWfN0Bb8}68%>`y zv-83B>)l5k%-6|ynTYg&zd^6QkrB;@QmtbIvna->xvXd^Al>J>wrUxYZBzzFj1$$7 z?1V46d$n&Xzc0*vsawOOZ$t}FaeUP2!W`A@S>i8`Jo+emcpc zr$Tc_-M7o@ysjDpQ$vkCStlrYcJyGq$-pVuPphaH+CJFo-?Eq!>{%7C#J}1yy$NZO`qeGEQsdxndP+f ze?tXig!|LQeQ&h1)bftwdsZr{s2LnwMw*ZlWb19;%8%KYesRFnf9#L0eqL8s?snDP z27^EZqgAR?YC@(U-xqqCg&7F168cXO*9R!(&QywqS+R{A7;*+(c5pwCilqea1bYis zlxGsw%^O(8%_QcOJZU=u_qdjBkrWp#lR8?Q8$ls@bPLI_mcbw|7ur%F5#of^*C^6r z&T*&&S-k6!x4Tq@XT7{K`HD?U=qGf7KEOF%Xa$E2*Lhxez{)BAp~HBGO{Gl9-RMmi zi^|W35_!wvJder%MNzpyoIsGd!;UiFj{m~)eygjHf!(IB8A+`h7ZG(tR~9?c(;;L! zIoZMFneA}NNX4}mXkEeUNm?!%#>wg*>%r?&Lt@Qb44$;i0U-gOr9Y?gB{jKjqYw8f^lE4=t=|Bfc}{JbKkSBAh^s7|41dXY zV3I=ib76>sDet0W#q%1Q8cN~G%DSs}lsRLvVsPI^f7`D()}&0qjapR5^eT2H09};& zVtou?T$mrnQ~i$pYA%7ADheZG%l0$!zX)B%nfVZiinmjoS74pMGMJsar;_5(NAr4s z@0xcs`27>KA?m`;>7riSwMHs*Dtwrap0zS>u6i|Nv%G;{RV@v}tb3X7$V%}@$XLELbu zH|b&$P6S?7_;EdIOB)8b`-0a79>yPa#!D=QfUG&gsVWon7Ai}-q0Y(6#y5AZ_MZH+ z2p=T+@zCdk!_ioV9WoIz^=N1?drX%slZqOPfQSz)wa7fN<#|5XKL&I^YC(;!uMmW) zQaBOU>Q*1m#%DmMD#(0=&xWT@qod!>}_Os%ELj*l23JK+7i4EVw9#HMls+ zd;l|rE_z>3`cpqA2ZSOI5P~pXk)U|X-lQHmJJl^g>6PcF>XfA>46e4TJ;o1PjG)gw zZYA52d$v~ZnylrPjfaNR@84F%78%DPo7a?-DR!1Ytquvj5qSg2|_{sf#?w`=P<5+ zdiD`-pX-6TKEh`*8B$>Xilw=fTae0O$k6E+v6Ij-)Z(bYlM~LEE7J5L>@#nGSVbbX zj_CxFVqk|46?>4{nGA7N!_TNYGFSA86`(_UDYw%&uw9%9l379%2 zMW={SS|$?QC_tE4z7HdOxKm!QDhNsfZTV}1xLe&xB>A*Z2g`@@T{3#Ng_(G}C8y)y zv-bDn9 z6fF4KCla0A+FHv+!1F=NvbZ*@b>L7{(1u!41q$s=DCf=@ycD?s_S_C*0$l2q^godu z6UX5d(K1B?>u6U9WinLCEHlty`RIxX-;zm7D`%GHHJbEn3HsQ(9n^`j{JK1}z-t8K z;=BXzw6jSIo#A09nG&a|bv?VY)~)=3ecp9RSBunpSqi7=ojZe;rrNsbu)S|85YHg= zo36HQK71HuG@48UJ<7V=K=GNvmXC#sEy;JMk~TPYWNGCZxe5V{2lrgwz!J@UBni824rp*nFI{yVK-u@MNOZs0>5w1fht+tnSoP`6jH(?O*2@UIhk zvn}1F&L(v^(}1tVR3el=Cqr%p4#pCoJ|l%_u5$}57QFlw3&^Yx!Wj;1ho<N7m$RRASp*llSX!k4r(gVT#-{J5^|VFrQ`n*p zzA-O#mADz=&PW!9NIf~nCUJtItidTho+h{*5-TfCYEoa3CswR@xIvv0uKC`f3aqJK zj!?|XZvBSuNEEopY+a@N^iSHX{ogBSG{GN6talcT}G*I`Em5@IAc^n0Zom z(3q&}Q}QbW75WADuPDFq-W*$Ab=s4E+V@@S#?t3@AM%qmBJ^r;UF8?9Fr z&A|_b56EV{mHXA0orV-tLw(s|sN|JNyA88WgVgBrIJUw1RN(a$*!@VIJZ|5aoiFb0 zZTq^Gq`NhtavG7t2VqwYYSynLGIkLgXpuj1(azxSiujV09muIDlNW8C2VF}lid0n| zl@%=p65-ws_dH0fz{shRWh~j*p@%n$BX#0&hdP8u*4}1KeAArd=duJltXsVC<|)K} zk&WbYfiY~OS}_*f*n24Nf-Lf{hke@Gtw&ij zvcVoTazUPjhpx(%z@N__$?a`?re5Dn9h&G@S@;qSC4WqrVUMUyNqQ`58MNaO%pgnm zy6nQOdyfV|4$aH&snUpvLH>_}cJLW;SU$sLg-kT=TrD8tsK z;P%s_R;Z#0JE5tk6tpvx%_o-Gq2W=in+|PT+#C}=0n9x$WAggW_qX^OY zu#_BGYj3;Gv(xv-`MWU&Mq$LA#z(F6v1vG{`+jd8;pvyyULtzFdNf)jaF5@xDbJ~ z5CMa4US0LBkk;9RY2A;Hir|ENUiSn9S38UzrB6rO+!EU?N)L3f30?fOJ@#4kfg0lp zkHs%d(=a1ekiI;O@taKR@<-uY>kc6bRyum}cGDJ@*S~X3e*bl7J*5=mrZR`wIL^A$ zJC#gtx41W?Z(c^Is4Sb@YwE~)Gg!j=M%lwGY!>-o+wo(VtPtLuENb7o2b5Ko%274?nc3lzS;4d(SqeHM!gbi<2kIa> zrLlROA|Ku9`)aGPc$QD7j7!WiK4@c<^x(0~ z%NS>Y*mWd@$$Xx;QP8;|Me|+?+vI5%0hbqi7mx>2Mwx$?0*T$9E?u5dqg6ldJAF+{dflH5GWPCU{Dc z>x__Z9&AreB)Nn^pOZycFFoopV6$g#ifj;&xhIwWDI~X=2D_8C9w}RROFrlwPb&R+ zUtw3*nd6>aH{*d!dyt1cO=f3g+fY-@w5EQ1$ZlfFUHSqsP?^6@efs{3rdB1bsGAna zL<-miS#JnN2iED2va(CUi%xs!YiUh6JMH7XYpdJPWXnI(p3^?J$8n#|l-2pyNt*e{ zvXcjTMj%q~+4sTrTP-T>;zx=~eV}9YXk%KB(aPp*H~r$0yovsfra;vQ8P$b5-`8d9 z;-e?*kkgOFyt91Q;T-nTEF3)i6*?k4{LYIX^A<9*Ea)xm_)`IGvi8YGHe9I}iV|o}u}plyd{YKOQp%~_(# za~qC&Zp<#u_as>!ywVEzB)};SHv$h}LqQf{=ybO@+w!tX);+TCh~6a64mKX<+eB{r zPhH8c(7lG)AA3XeP3ay7KOuboEVP0`M@IjGBJCiqDNwbj_xeyV-aN<2J9w;U&<93U zms{x0V)N2rn$h9tM9S`|7s*Gs#bNSpQJS|}o4ON{rCAyp?cH!mfP#WK-5d%+8Iw{Y zfL}EhBM0Gdm2WCedO_KZz^l$$M;w$@5h=Pp@C^?rXVCmsqMb|^4ksYXW>yo>^-RcP zs}6N23ct3Ppu{QCL@-of4+7;z7SKtUH+r3T4RtU#@47;aVS`ox!@eH&ff$hs;2F|Bv1;3Tk!@5sbEa&mjW z@f7~-@Nq}(cL7FY#|DS!oGt{2va&T{f7U-bI6U<89LM~i?@4xCs`{l)R-h$pqRzG> ze&Ovgpy=x@?IBNH^;%(Z0@_K*1$AlGwxMF<#T|AhI$2?1+k9bMwpKh&i14D*K(gfyfPuTVoq3_e^`L0j3@RJK z7!e_Kw~l>D?C0^+)Y+9gKhg=vs`x6Odq7$GM#z-uN}iK+3Y6Dv?A)w&00+;yf}PyP z{?sE&B~D}MT?Rl{xkDZh`o5%?ErI2ROCu!3k<+ZA^=@i3g?v?pCY7SP!<#)>@8N{R z-n#3p(z5Y!oTu;okLJTI9x%L*VlKOUXJ%uXUT7{wC^7A9p2`@qVhbwwZ=}IokRQ^P z4n|L#f355(AGe01d?LOcZ#=$OZg1;7?Ph6vyRKqeBc&m2L$)cn*_4ehx~#xxE+-F4 zWkVjVieqvH8(aHBwC=TSHr60u%dC^9v(T!;uFal!y>BPkasF-xn6;)YmSR2S@Qr#O z%2zj7nySq5G82C#>XO9q1W6J`6?6iV=z0d$3|QW`+qi}N2(mdBhtTbwb-r%uN}H+O zvjjr)_$DqhNFeMhk4CqBns%HBt4f$ED&tJcNYU>Ki^HWzg(c@{LQ^$fe%Ltvc5@!g|4t&V*xRvt0HT z^S2;sJX&+H90fp*w6h)RsBjy|+mwUao$1Qh{QicGknc8_rtXC&mTZZ)qf(~`UD!6K z_Z?J1Xb(Pd@8cEK%SGhAXBCQ(r9bvN*19t~y+R@MbnN_xz9V!Nu?&m$K{@4blQ%tpT zwE-4q%5-l?kFxQ~<{enCtuHkA#?wv|Ug@Z?Y;|e1%-yE>%KE8f0)uwj6ZHF{3G2~? zQxCtc+x*V4(H}_CWY2GGJLQ67{|AerGO+~qbQ-vLv=}dVqIeXv0ycW1UGx81c z45ZF?$sKG4!wF-|8&cEPYLa8&p{9-lAzjdAedC>3i$Zj0Fre2BF`@FaSvQA zE2C`{IWpGNJTU@i2bNR~10$1YpQ}pkxj4+do!OYPv09%Vw;cI>baB{vVGZROe1B0~ zaKA_9&SMgmjTdVfl#+#=&$7Z(*{&IIR6Ybu_R0!I^~l%LHHzEtS6=7W!aJ8pBEI^u z)w=Kw%aT{TE>)0&`d#^{K!6Pt%v3*dM6#k#UVWe@&d52=J_I{q%;&lgjIZwAIZodJ z?=-4Iu53@rL!6JdPJGw*JvM4wTBl*Rs;&gT zAlf$J=*o*BXrTSVlYIRcnIA^b>_mMi5ozRFE@j+&t3q+@k;w8i!Z#i{8SE{0{6l<< zY_e8kEw}vG?Ve#7VN4%m(`}j7Taa{%fz*np-K{in&#nTg9hH1k#LcR^=sUzIT@>tQ z5Zjky^%yCvn?@}H%+WRiI!Q6 z-j(`N|I}7gs`lCI-1`9Ht=DA-SbAXl7fR6kiG%iqV!`I7LBWy)rPa3z3a*(v`n3(> zJ6s~bo&T-=&EF0Tj9~P1qRM#FmMA-C8iK0L4=YF7=ebijZ7mxZGqZBiXeumMb2B0p z+nF$nMY)-DMWP6>WM77sDz~P*P8ZW0?O4*{{P`-~?(7%;G$`B8<99~gpbzGd`lyse z<3pQQnMrhljni?~!A@-JKil>{D*7PD;57~LHI>MnDb9A1>cdpGdo`{Y3FX0&&%Sn7 zA|n`riwG(Px-K^|%!kX95AbpptanNXZcLM(;~YDl<0M1&PC>|u=$P_3&Osnp0*z&i zi5}-lum&Bn3Yg$qA5wUYJdu*fBEKqgSKr$Ai=WU{EX85d4F7g<{t+zwx0I@OVOty( z;Re~=gCeXWBy0q;dY4X}@T#6AhW44*Ob?{|M63%`(0T6%T1rOi{Gpd@Xm&Y~M{%Jk%7v}}iv9$2Y=WXEEc%^ETad)mk~ z51A8c$lGzFoAR=ZSj1K5i}kis>rND|VakAR!R6Ndv`h$=uZp#|)2WqmMdp5w>{J0B zoFeS$#3})WAge7E6eSLW(bcN|O1<>8&d$bF&a7x#dxE=>?_#28-V~d0W$Mt^^bp3x z8}9sewBKA5p>HbYz24b@Nm%{SQ}$0?Lva()@wj(-O53e9=*P;^WL?D7nnz8xQkol; zNJ|+?Ip!oor+tpHp)O8B$&Vtc1Ws*z_-q9qB@BR_p%yi{Xs_c=Po>E2G#SB%IqjomPNvLggH^qlaE`*vJ zo%$_~ZyvQCUpgcu%DV0*G5uHrO9`FC7WaCw?hElQf=~Aehj;4NZru)Ob2(B(zy}rE z6I-pxFYk>uD}Rol-2K5+#&e?+o$}g(`72(vmTHo5jwHw`gYNuQWyBKVNG;w<9eVWT zrL&~CU)rfr$BXh*!zt<5W_m>+Yv%}-)OWT7^t%D-9gsdziU&4EHT!gCDx>VEad*>a z>y!2J{^sqGYPZU*9!|O|mrS|EHoAIJ`j$uoi3kWvNP}yZJ~hi;c6eO){OiLTK%tew zYEpkP)_>6zEBY2oXDH-%7FLe5UEN&lyv22`$xR0~H(f=XS47RWJ9*)4?FH#=!V3F} zGV7*^akO+cx$nHNdfgW$RQ#c73sNYRik^?Vpo;F!_PBO)={lRXnUm3jtmmlDo`x1r zdQ6B5!WnLvN~EX;<9xT&&bthFg&5Yf@^8Gtc=|bd29gli-dHjzz&T7soowOK*pi;t zhLElH%*k}S-l{ONXxb%@(`}nlp`-VLlMw#}C#MqO?JNmVRmzQN;5Oero$WEh>}CQ7 zdgL+a0XmM=kUt7_P<;~E*xe{qt`rp6%H9+>$Dy2Uv(eb=sp1MBz5cejM?j8`G9e{K zI4u1lcV0@pU$Qn4??eF$u(@3UZ~9-yME=Wq{uwoyu9w4`!8uje7GbwAYH2NVD^@#( ztMq~Y?U2iHhKq#keVMJ&_s-;OZAc~7z-h@xAcp+Yj*0ZFmxjJ^U3p}%nuVLHv9ZDM zh#*EyoL7uulOSKVprBhzK|mPfD}7P_yOZ&MqPm)M{sfs^otLe*F8m8GWv!tl<2AY` ztNJ3GCd!d4YhiM4ZSp#^kj-E^N*GDk20`Y&K?=vU&`C1)B#Hq=v0lb&f>=%dpJe*q6Dal@b*iTN(3|Xcq0sB5hSoTj*5$!qYI(Am zqfPKf3%94UJ&1MaN8kC>WS-#SmSK7Mg7%dF(&GhF*_TCGm*3p;iU21FTlD2Wf5g9R zqW2FQpRO9MJlEyvUL+2PvPvMMzQX1ybNo#Hy;=FHRec*9Cv|SZ8`(L;TgQyj50_|NWZul`mA;Ekm3G z3#!1~Kv8Y)GG)d6>HA`gs4ZieB~QUMO@5nGr&eDni6mnYlp0px%ls{;qphIY@tCGM z{MHT3nKG$>_?+87JC`SrwUsj)J3t_E|G}!AN8&-h%MOqrHioIdn*CD#8QI7J)Y&>2 zkI~>hyGj4oi^7F?8!?!4D^M>NS03CFay~i~cpOWF2Ijp2fM5n1!DH<@RELIN1`#BU zOBIL(>Pd)Qo_>qLrmD(OwdBGUs?Ln!|D$?OkRqhr?xdadj10?!AostX~vb*NJ8dP{uJBgUTeV?%OnNg{MaJDAdEq5txSx)?f;=1BqDAcy@?+$VW;eQiFq zVlhUl>uGLpAaA^O^7tLW3~Z~f9K3lIy`3pcY1cW97?2^WJ=PZYb@BqE+4D$AI+O1~ zb~~>2V>`=bnStm2%NfF++cd7_g)W3l!(*qbYWp5HxQD~*+nLSK2u>M2@u2oQfqp{i zI1w($0E)h<6aPhW!y?Vq6Il6@sYQNfDC8R41vl*#-J6#7oAL24)g3E@CN3Ia_vt~( z^iE*Sp?~zLREERg$^IzfK59Qk^re3=sWV|nzS7UyHT8bG1IdeC#m@NBWmU2KVFahr zP9lujDoVc`OMljWVp|vgc+Xy#hzh$$MwnIGKGf0?5ypc}?_dMVSbvZFUX9ru({WyZjaVI+m4*?inZMB~L zsGTZ7+k04PL^bAR8+qN*$g}fSfT{c2v21pEn!%<5`>aKeOAf#2BY>d1;T2KNwLCVJ zQ&bDO^T?KzxHDB<4R?3qNu*`A%)*z?wwuQ7@?W8&97Lg> ztjwXIdu zx{qAZJ>$lV#$?gg*i3B;y9-w$nLq-J%Nu1`&ewy(D$=xjeKbA%dwkLyLsG4aahl|D zrlz#z_>LY}eWo1?)c*N_?~(ay;X}yHQ=3%iIBI$$KFBD#^ttm+7VcA$iffGQn$XeU z-~fgjZ0#&2uO+%U@>sA4E|hBvqf7PdQ0`)m<1()mooZNmwk33bDml>Hwmys8!s+1) z*{VorL9)b^gdt(Z+(oQD{xz+I|*83c|AGQGk4p9DP_ zKKRb&S68V?q$$qL{?Vi=pu_YjLar8S9(1u&f*QH!OZ$R@^DdI-@_iGh#KgQ@3-2uQSLMUhpYpFY6Fvk#R`qG#ZePq1 z`E_S=v#6}N6`_)P!!xWkxJ#c~kkL;oUPGV6qHtmZ zpdV}S8I>?d$~Mnin~(DhS_&tA7{C>0ksa$NN}%|Vxx4$N>cz!vU=eY4tpp`E7f^{c z&mzroYjqpLXv za2Yx=9rbO`i`#MFOOlMPZP=P|Qf!v{qv9`V3D7)a_eBk8US>22M`fTD6*$g92lQgD zvtFj_Tt~{*Z$|e!6x+#baKC72$>=ijG@q3(vrlL;teUqp@>~{jQKpK_zdS5V2}qpG z>*g=kF5S|p*t&9O7hKsx3|lgCH+IU2yW+^XdeS&32bx>hW)nPF`z_$InrCoY)w8xQ zG6LDvM#fod>x!HHdYt&k@=W@0+Oyeyg99^!UVTX{okPf}T0Pn7xegHjb? zT$`i-g)y(c*x=x>1ay6%^iDwru#0;C^0Q1#&(03e3Jwl30*QTLOGzGC4&(~W1p4Ld z&u>7#M9T&O`V4QoiE{MrfxmdcKCHtMnVAL63C@lS;j85mgZFfh2gasdO6^b{8Is6| z3oav0J7K^ch}As1M%c`>K~4Uln?Az3w;w*b!J@Kh%}^jqn+J zE8|Iqs}de~QWOTP=Kr1noMXSM`P)KxIKk}Pj{KZJ{S6#mWEfs>{gN*V({wPQM zkby#RaoEPwa)cbeYoPYY!buEP!-kxX4P_uKU`x7qC$Us$WpHR^YcvePQ%GNAyfRgg zdXz^aLZV3p;o}dT(&B*LG@X8p>-9=4pzPP`pbRFny+;XwLJn}CFmVW))=hzC^CGY?_Ju6vYuHS|XgIdY+so0}2IRxpfr#fI1I?e%W)NuH1cDMNI z8K`Z{0Hj^^B(Z^K@PT`VevIa&M zCLBwvu-~`(y;i@8;rGG$%^7}k(f{#cLiPYc&8L+6EJ8r`b#W6xg1733vpHk2@~r~a zlcL*ACwE@}nb)rz+q=A1p7eQCk1p=>)R80S2xoY@g?26WH=ZOAt+o(1G3~%_p{Is%!W^XaNN?o_%whkCc3he z9}isMJuBo!=YukpN}y^@Fu?g6vwsCCK2rqy8`UMDC9ewDoZqvxy!Bru_qz(_5k~ZP zllg!gbWJ~wsZdKG!8I!3Fuvj0IBl5B@QB0?I>u3Q!GR-&@4lbbhVc(^wtLfH1u9Mq`c5=2vy*rey2=?4c-YK|t5fLmDqmr?lMdPI zkd($}tdAV7`3zFb20$c@YB?kkcLquNrWm5Wvd$aBDx6@`Ck^9n8;6fLj0ir}eCCL- z)@7_L%MNxf(sGGoxhwq3qJklku3@Z}=Clv=SvA|UYW;P1MnJr2u+>=ElSRRHEpM)1 zT4Pgpt&`YL_nsEC%Em9t#m2U(kjv* z5|a+;20^-}f^>HYD9xn1L8QC8yE`XLCTGldueGo5eb?IGKG!*We`}v}`489S<9wd+ zJY$Tze&fD>cYZM#TF(r6Il_gS9ju1n3%k*7@^jCfq|5yy0pO2)LduYa)|cZ!i^@2i z9W0o7dMDIq(Jr*imx>}GF|Kukh6XB7kN$UE5%V4e+7Hq8t$u>25c0bE!oSp6($%~} zvvrGqwsyS?d0;tba}m!U(%Im9G1bHZa?Y{53deO0m{=H%uFvDRqShxL8=j8H+Cqk8 zYzEbBxHi)CwePC(o!Ecc;dA8^<;SBXE z+&NY-8sB!eKH^el_L6@_CH8bj5Yw|+*O*PEAbgeK*Y?^~Mm z%$Sn7t_^*95{5*OXH)sNZMrcDjo^}*<7)l1`>u0}-KG*}<5|6LwB^8Xi(XK;?anzY z&c)90wE*i;L^j?s89GOqU~rU!<%o1o7HH+M3-c>w2mwfFvv<>t9;U(w`^gl%+3koEbUu z8c51$L~XTMAN31Ed@9euKb*f_pCz(lm;FI53 zUl+{#c`j}WzJuVj5z87OJzfN5%Z(mpuh`&uUboE`L|$T2w#+X7`fZGnk?CRe;I+Fy zH*~zJGVX;bk6iahx4j#BQ#l%V-jaeVGKXBHCt8-}LN>_t4%_sZ%^DH()lJSo(LI+u zLyq`ggN8=N*t8;9&p0qKF@@P>?`ajEFTRH{9y39&^=|_Gr=0N-yIfnc**5A<2E~hh7?{M;WOp zV*57e8VNm6qTz_f^NWvmTEA+;r!|U;j5(Pdj&m+t?fGv~Yv4LH+*<4w1ua=KO$t8^ z{XDX@wU*U4)@AD$+PrupEh7LVrgQ-ne*6)Xpd4^i5cB)O|9(D1FD#&u2;qr3X;TEV zi=M#j4q>QPduaaf$(tos&W|SfNhdF&raw-r#=x82`|n!Y?Tq?kCKRtP1%qcuU8q{Zl{}DXqE~1*sP*}4gl;n# z=|!;KpW??(qmQ1<5XR0@ih{`3JO3Q0YyRiYVR{jez^6mkWPT6tmEXg7@pd(}KVZzi z#NYX@|EU#yuokJZRB>x)xJms+M?Ww9>Nyz-U8uk6`mtYJj+Eg8SQ)6XXwk>dWQO8T?%@u9CB^L8P+N`qT6m>w5Rm9J)GM&qF}+--p+z zMT1V)2SE=J#`POgg2yP(R1>+4_ymfh76C{irww@3+#Lz4TXywq5IPhC-JAuJSbI5n28j0rTjG(ajaO)zmnc+WXSP)kj%1%brXfE+MVTU~ z9g-WAV(kO)ChNr&+Gss$J6@FU_adQzT$keB$Xb*~GW+|re$UqLz4coXe=CUJ>hxc3 zd{lmH?nHGLcv#r?OsKX}FgU4KFJ?`^vV6q8`}fLAo!Z+#`iYZ<^>vu|N2~Ow`HAbw zrkVF8OjOOgJ@pP-!zQikgb<-a;x`o{oD|LPd#mx8Qkh(%-bOW>!vF^fe>xKSlcV?F zl4<=?FZ03SS$6e)2y2~?_G-%1i^e><`nHrvla17{U2B0Erxj_*4ZYjtlptp^d-k9C z-)e+M8Zx?O&}Hv(E{vurYEHwFO%W~Hm}p|}mSua&WpZbT?9Mk&&c{YeQc)6qVFX!5 z-!uJ`OpJc?lcebc0+-^I3(+Jw-zjM2u6;pS&xLRE!D-fT&@h`-`N6O3DK$yLD(gx! zTup4;pw=yhP|5q9=%o}TJwp@(O-~qo$zFh&W749q=VUX4auS>hSillJFuisj_~&$v z4!1o`Yh7p=nk-ym#bqtONAifRYiaK~%J0S0>N;FdvfJ(1Z9d6Y*^&a`^W$=nNW zoJpJv#_(S|_umca zz!~1g{OTlEy#jFvriRFDYW^nHTuhgSOG!?@Bf{pEBf3R{R2}O?=x5Z)?G+jgpC^e% z@zl%m1iZTPynV>g(9-#GYRit;`lf;GC8bm5wJS6aly9vRtbJr}dem$9UhYJsc`9Bt zF1rB5?L#OfZO(~hCBVyu6Fy|VRg?K7$GeqX?#>fCB6ZD{IS?=FKzp2#1{u=O1;K9U zu81o*rGg^1yyW+Tj`i^RjDgS zj%Ia<*=g=hIGZxYH!OYR80Ko`RHJZQ!tybT=6cfreTVt7HQsy+Y*&uDkqVz zUL5es^QZheqmrxb`d-(hI2Ntt#R4Rq`H_Ao;OAT)g~uWIw-XwsAD>1mZfyg?Vdp}t z3c61b&WxB^6^Ab|8$SP%pL^oCcV-jkNS95QWt`@hN7uoWtQXztplXR~Pj=97)?HhL zpJP9=x%JKF!qV=f>CD8>^+%{rLu|u#ZrV*fhw);ZgNJ<(h-6rzI6a||Fo8$M+q`~Z z0Lx(^WonDv$1j`foqD;HWL|Tbnosdf+9jvU6DjUI3zb!pfAHWrJKTis0C%uOB?4P! z5#R9<;E9u~F1G~zeFO@&Tt-GGCyVPZFibn6Gc{7GIpqw17}9>tjBXE%rhU#pD1Gyd zNGGYfZSspSDo-*o8!055VYe@^{DD(WC3i++Ox{{dK{7!$^enfUc(gyoS_$@gb~feU6A`Z7|S{Sj>H2@zyK|ek<;wQ z^F)~k_SvwHeKThtY!01)uLt^d}SQ1%htQkWRpHEWcW{dB$vcR>_wbr6}AF=w0F?U3cYT+V2>3<%;fiq(m< zZDx1)R^lJ3XIsqVFQVXnTi5Cnon1WKD@_7xT^9}%;qws5N|h#?;vqyaU@%L1^X?N| z$)&nUwibdnJzgF5_RSTVuE)$+#U|0OW%;wSA3jNY2Zv`Thh}Q-exHfAw2`Vd1G{)q zM&jf~ptqV6<)z06srN8<*58H(UN&9OWa00i(|B1#_+ajlTyxh&oB%ZA_|CS8d{qJx1`ckVHW zE1@qAGCc06)5+p9n=nwJeAEVnh&eLC)?uS6?(Vs97NapuSRyPcnbXgK*0%)IqSyL- z5cWY~kb(b98j_nQuh8}{7eF=URPq(t^dGfBp@E=tI*;JFx8-RTaIJ0j|90p4p&3Y# zY4p58D~+VRv>*cyWlIEq{vj`p@LbeUcDuV%0E@F^z}$8H`do3ABL4PhN7!p2_GKSg zvaCcx|Bz&E(qI(*SHIGZMSh2^$XWaLd6lCVjbldcB=?=$Htipl5a_{H41I~`!U-elKg_7{2;tmfJZ!(RJsm!g5+hBy{V{s1M=FxXO0!}5Y1nf zhL#KSt*lgAHu2El?R34nUeXL`K$B=pYjtTY?`-zYaiLFVo*COU+lokH`v2UnEfjY5 zD@%8mGAq_Al<)5*dwV+#`dAM+|Mb(cr)~%a+2%BEUi((U`egMe_gI2=9CB}$wB?A^ z;1hXcp>lqWiv=qQ|05*%SNFImew?AbR-^A~>qDbDU0}6XF974SOXX&6u26B=t~o@~ zqp3gb7Ae~W;7fBtXi!Ne-*qypoBNRob68NLVo{K$5b?|O%e)RSy>)WtZmjS~0?m%e z;oAI&b{%I|Rx3LkLUo#&axsF_sru}{jFXu~MGg>T5yyixrojPrcP>qDRWQ(c|@ zCiRyg~!*3>pJGtjKqEh5#wmL;w3G#6)G&I2_63gs{vN z%$uc7{>Ey~`8HNaKKtFDq~U`Xl4hrttr~-M7raEDRzF$P*o{xX8JO~CEKDX4TweLq z6-EY@w**ur3@|04jM|7i6KY4Ri0a2Pk&vWQp9>%muWCa95vC#7XW5%eyShhShueId z+h^T{#R<|S`|+0d?z9XK%6>TTtzj8=>KH#flKk4Xgh#pHL>;7%rG)j!oZ%Hb3OgaoaRFSK}cQgr-N@NaKvh5!9V*?PE6*o zrB=qJLInXqs4ca8EZEx{QOi+AccMACB~v?bR;4ZO*|d}MoYFdgnw2()$V^j+8XMAz zE`j?YjRO;1;(F`j+y+3N!NJ^{AIl8SW=#{YF&gUx>bIc^ z4o{5WSMb=-&%>@J(})KyvanL=MN)}#t2NY_SItTPG|@^MXJ}9llY{>OPsBARbpd>0 z5*!6t7NQv*35VgS=nopP!9X{8|5Z2rgKqqN;op__n%x>%dj8hsvee<=*YOMMrb8NI0dpTszz%b!@}&AR7lQSoB{a(+}7C}C}p%hdC@_-SYwjfN-%1vO{tDIS{tZv!(7!^PV}*9w0=^q_U<5O?K;ZxPgTFzA`hB}J(1H_Wg}!P3>;Lwd z3Y{-qp=GLGpCZo{MZC#C+Jb}Y5t(x~@HkE6Q+YrKy$)zNX)g)E=$SGQHYFjJ)KERK zjvNfda&*B=Crh~CA4SICpy(mMP7-VY7fU!Y0LK;@2P^GgW72kAkLe!O$^Xg z4Z%y0q4Ecr=G`cm(Mq;WYM4AzTmn91fhT6&lpdLCjWLLtA?ROjU+dixHRentoZMQg91ldgh^JrY8+rL#%MIluz$cPHEz&OdIFjcrXV8lC%|%)@L~QQNOQ|5@!lIW_t~8@* z-}C%w1CZRoZFDe|k59%I*o$E6Z%qk{ zINMn847F-o;pC%#8Xaj%8zESNIV@`8g!OEEzy3%2WUDRBikWHYYHKy@Le5LYvFQq* zHT|~vY?_qJ#5leLbVnY1<4meJyvMKEtuY@HYqm5!H=k&C*{ohoREbV@CG$Th#pI;*6dH?hpIg8cU=n)0kWp`U;W8{D&P8( zPxxOsvHx_GwVorcM!|3`TDyAPT>;+>mwN5(#MIP`ye+15u4iQ|?d4gp{ozsaO>tii!}4 zC+TVF89sQ9RCWq)-%CD5!xuQYM&m(socs!x4?~R)L2>q|7%8}o;5^?VdB^q1-r~(& zmw?jJP+<+B(Of>&QOvTiSML?y5({g-y}o=*b-!S$gJY62bNiv>3rzYev;c&6?+~)f z278K&@VRp9qf}ia$Dtr|^!7$u?YAQcN}_Ct?aF0sSMAL2d$n%m76(toFsx09Fz7(q zbYSD`tq~1NA&!|FDafWh*3!J(EW(Il{u(Zpm~@R-S7^*JNBq3^4<;+ZD20&Z}3xbWJ_#3u0l8-tUv}1L%zPIJPqR^vLSq#d3+|iH{3z5@@ zT;IWC*5&kwAQPkb0do<2>iEU)QjEJ06S zj!~si(9<`=Qvm$#?d4EQUZSq#6B{4cFI!V9Ln3dWp~KG*;6dw+|B2$4xlk0_$T0rppw6ffyW6W8^Eo=QKMjJ*ZJav(5 ztg1TQz}r%Ctj*xwx`fT(uo6ir7JE$$``4(z<}_O3U$*|guK{R4DV3cx)$gZ5_)hnQ z*XwLCc@>IHfuyv`KRR3g3M+ERS`4I1i&WA`)o@bX5ibq76i7n(SmJ;6Zt|gjabSiR z&a*N+N0swO;VD&VP~EkfFS`T|H(er&7-PYwM&c z6&P!nsKcWAtHFN>CW}dW%`=#7yuu(preJSmC6+yFl$uJDK~ve^I8J$H4tu@S^BAP4 z`hte?JF%zvx|Ywn-!oY|ZVbLl6i?rOFIzvRt9_uL66EKQEHjW2EI~0Y3Ows8w7*Kb z<}p-tXJ&5pLMzvfQ}8TmZMyR1e#IDRB9GClK$xjD$00?fUsPBkw+Srm_5?-XqpVZu(#`c23cqn!? zz0v6{iR=d~;DA+D7LRIFTIONLuP}uihFu)tNucnA9<-lPBWj&RsZ~Z2tPU*gEHwMl zlC#3->9}YHV5#{zX{oFb1?~MnFE5fvCLYaXF&6k8DrFD6%)4o=ARAhE%Joj|xqbDg zTHKIy7vyH^YGI7oqsBog(5<85^s$g^DXftFb2WaRUwY!ud~8Z&-1X*ul-FPg;0b0d z|Jr*+Whc-TQRuQ=&&JdvQF*-a2@Z!2A`{2QvBZ@ADJcY7J@QN?MK4u~a6$%~2ty?> zC3=Bdt#TkVhp+yjN)&I|7-aQE4W{PraZNbzeIgen|@)X83)I08ZSjz zmDdm$pbW~L;c{CGL4$dj)dlu<(%CNE!VTyHMfQOdm-sR zObcZ2TCfj)MTp zz5e<|_n{i|VtISQsLFUn9AR2odM`w$=>?C`Vl{f~7d)RIy|~Dr4#>72>y6twid@EKksGqB0tX+qZ+4$NQ%F zM;yo+;pNlZ0<|4GZ!;484a}WtTuIKx6Iowuc8< zMVQU-KF!76O75e0lq9baj0Zlj>x0`p7wmCIbs31geLKSAG|*)5{Ys&ln$@+O26sRGfEhIlGsgLZQpVDVCUw&-l1mtDPCd%Be% zKTzUcB|!vpER5OevGyROl+*h(U{Kut43E>D$Mb~{Q^{ewEQMI|%RXVMy3J{<80hEO zy8^Ft4$t!a1*r~?FMU0}JC!u=ROQ&c^K!@%`vNoBd*;)qha6FvAuwo{E$REIC-*d@ zNCfPLN4tUbcu%*;qht|gJMxvBB^BeRWrEgu<2fzz2J{EKYIo#AJ}+h;L`0VK%CLvD ztiQ;xjk<+JjJAOUyHN1L1DudhtmOo~ArG0QU{iJiw>?!V=Iq#!t_|pvH(O_1O8Es@ zG0xhz#f>a3YEpGtGd8AI)S_Y}_6b0Fbw+20d(|+3w}=nhc`Xyp{?KxJ+nS5KyZqU= zBrT-NJ~0P=NA8)+k`XKlAfCUA5EsJcd=2eb4E^~iKLBVRRfif)A+B%`R2gyY?4t#hYKU08a+akSrdwaC@l-y*O&VSal*TR2sIr^c?eA_0_A0%2B*eq*i1QK!FWQM7WSt$4a^L1k zU)!mjEj$;!_9ZdH$$(2!%S5JPlkFIiE$-E7em-F)&B4K^hn*uS3Sl28c`x78wbc){ z$(Lxjos0Hv;Fk(}{6@{QE{pDQP=8&~V1e*r&GSnCG51M0s9i3P`B7L?trcjprzU&9 zfR_^X9bz90m>WId=Eu9Dw03gRlg^#CW_9p!Qtt=6`8>zk>^3Snk$3`m_op8$_+?vx0 z;a}h4nBP^jj8hZuy>WsHsUXhL3l={?1Cy_$&kh)|E6S%W_Gc?|E5#!lmaSt{PHfSg zy|E(Nl*GMS26g9Qe$o!-wwTm5pYw8G`^o`}D0-&5Cs4fqliQvW?A42tf6FKy`f)vE%#703LirZH2 zvg3YqR`J7KvW8vr(Smb{@JBM@DgsMg+s0f$pPV5>!(tUv)HVbT#*1D&V!DyWi!CDx zQZ7|*jR`H?Hm5Oa!x2?gST09)3p-Hn+VaHNz*3`wSfVa6-KT!N11s1!-!dLl+|>^H z-m0W)oh{|IKx8te$A;&7{cSiEXqO86|7h-mWdb6qDrK%^_{@JY3<2GJwq2j?jGyB) zQ@nD$ zW*|j`0O&-&v2-B_e*o~lUjIq=YN$&L+;vO?Ixu{6Hs#hZ={)FmoHsLl;bHy$)v|LS7 zS|0SQ^?D^?yFIb5SFzX`>)qKww$3rwr*pZkl(|V-=w@^r=hEzd+jf$!_h^B<@`td8 zCJzq}CE-OfspEqzp(w#le>mHAeW)vOB;5OuxB@1?=c17sOwV~Mn_Q#(BX5$8&WmGK zoucZVa$BI*tQ`2>Le@`gr1>$`j}KBCDAIl8Wt6~oHT;6oBrSU$vKj3<$t;f^n%b`N zLJi*M3Vm?CN9)@=M{4{`jG6`nFF6wzn;$Ir%7&&L?(PyR=o~tzw*1J;IDFNMQ@Hu2ulHV!T#KS|!lJD% z82ktcxs(waOQN2ig8S*gzyaq}&df(qh7HeCrczn$vKfG2LvHkP*oYv+-+3n)^5R@K zoi_i)qSgBu)FCYQEAF%S4Zhj`B-07v1FqGPUd@(i^gqFtYhG7qtYjHKwm{kC#YW9Q z3w)!2whiO zk4qv`E-5?8ET~51Tdw=F1616v9FJMi*R|Vb)g~$9hnD^dI~rA^H0IQKSEqwP8n;<^hzrc{d+~+Z*cdNN zZtnT#ylwq!w(Ha&vXWlG@(IJHN|3DvWWr0z#e|-|8nse|Fbni+ug}rGtF8Tkz-zeX zH<81S)mp(Sapxo3{s0q8&pfWs1hPR7sMS>taDs_)duvbXA3|4$Ey)pxmHG<`lv7zZ zx`2f^&s_v1D&Iyyn{Q3j_fH@|NS6eufgT>lU7>CLLFav;E}-`e=U z(N>6H`Sh!b@g&)aGqAE!!E;(Y{R%ikINe@}p5Z*Xyj=*a-C!EC_R+|Y*7N3db#@hk zV~*#deDpAbv}jcsl7M&uH`AFp9-Co z*X;htGfS$e1HJ?P;DH%nE-_vIcKrMIBkez(G5<^Y<_!Hyz-5Bj04$;tvez26?D6tc zp`;8pVyrfDc$Mc)xKWFV=0~W5AxMM#je#K<>8JA4d;>q1@6c)DvlPnxBv!Zj$PcE` z8~o%?L73|4fn$qqw%a?4iH?f7xMHk9-mr2U>R|PVVF+>c&4A3j^iSu?^1V#xml9o# z>rk+4SQ^v)^_|)Frx*r1&%5EqW9({IXq0taPp4zbI~P`iZ^or{hzmo?=_XRl6?g`9 zrF7h*nEBjaY6o%Xz_5Uu6sh4mA$Z@;vZ1c^Y;p7w>5Qv8sp5NLj<@Di<7KVh(38H= zq_ejCz4`smP+={ib~L?fcc{uj0gNj)lhLDRcY5Ho&FA&pE(4ZWY%@<4DvrK*%8C3w z>F8h~xR^$*4p43`Fbu4BK~ba}{~&m=_MJews>8m~ROzjF+)l z8BzG;Z*pGGfmmj38_MpQ9X$>5QBUdyCWgqNmG(iMn*k4qytuV9T!QR567w2$*1Lrz zsf;v5yacI&V9CufXfj|d&&%#T%Jg$UA79Rz#961mG-!=kFDdHxQ`X=+_k9DRASGSj zi9?J2sJ4;C^$qHHp}~bGzABR^kukHt_Z2TJBq!Rd2W0ZgG}wy|Hl}zdb^6SoFK|zt zta-EGiR3$x<-4o4+=*({8GR%7Tu?kMSW8(Va?=rGrY5V+3Xg0`|vC#FLv3BV?j!Rx0cVVr(<$sgHoH!5SpUocr?)% z0`KyEunrwXDl-Me!d4EL1{`-5=o+rcih>;#SI2B=xeOA9MUtFk%`77-Nm~PEF}=fS z{bnMcX$7WcHKs{PDuJhc$aI(Fv!wxf{hDuso{0W12Y?tGA|aYorba;SIhm}i?`JcP zW-0W~GC}_I6~gz+qIzzK;GBEHSCfD+%cg5FhV<$eId+vQL{_Tzh?Fyi=f-Tr~~6W=K@hzd(D3Nxy3FtujZ z3h}I~qJ8g{2wtub1f$Z4J+J-GF3NOZFmDUJOR7DJAR5Na#U>yXlPieNX4K9{{C8qGO z9a>CtAY#DmSJJBCBFGHAtrJP8AR+PfRu8q&7{Pc1Fm6({yp^Y*9lcw{G_Qz6$yAKS zX4xjo9U-;`S-_sGoI)@yA(9GHG%?mS%?WL5o6COaI$BkBg|@Ql)7&sSOIBRq(_%wVCMkYa9#&OAUwZar?`G|2RRdzJ7p;IwD*j>j;BNXS7f-7Q;S3cFb5&qdO*z5@J^w$Yq$4s?h4lJ9Ca~5~@ z*M>a}zINZXS;RvQ8!J4ch3^@Ui)a#@@+3FGJM^U?Vy$tkcJua|D`ggN<7JHW=p!ao zQd(9R);Ilv*U0jcl+G8&!lQ5R>ua%M9MB>zAMSoXvnr32Im3Wg)$i)mdAR zBDqa=0m*TCtnd6JO*4KglTfq4AgbJOL{?t@Q}c4v+d$D{?d@m#_YCO;f6mVF)0d!6 zi(u?CpNXm(T?AE;9PfgaCKdGb)0wIb4lyM#I>CL@mV($MWL!+Jp`Y8or@6&Vi2x>Q z02_S%pFC02i~M)gkN}xVk8gB~zd)JyCJBvI!@ok`oPO1n&^kC2UPK(aQ=K zANb+~ba+28{o?4`$`;4_<*My-$^z@;m?7m40lAj=R4^smX%YR z)Lk)s$@_qVwHbZEOqvB!g(Ub?59>ja>#}oes44J_hJ-ejQ37{C?W+dHcOXe#^pd9r9aS{tvVZUz5nH zRUQ^?pBsynrUY|&J{aYk>*UEN*Hm@}M}J(A8_(N+HBd{t^>v(4j4p@ye(1P8!s19} zEgQqf9$Q#-PW_O6Wx>(TrA&Hz;l3uf{rr#j?DcF_obyFzOK zlVx+yC3I}q8NclG?PK8#(h5_<>6gaQ9lCM;Z10aBw-71ns1gOUGutiYW#9aO`aL>W zhkwr`MrD`h#Lqh}~`AQ;HLRZZwQ@K!rP0 z*iJ#&jc&B#(*^Cv$Ihjp~jrcSZ+l)z3iQfys1GFE8ZSX8J#yV zUXxDz)Gs?zcPSfthMQ`b?vu`xQ zAiI-&h32DQ#LYikMoMS06hXUpPQu#GBlojKWt)|82z*KMxJLZQQBnuAkY^>kz)qS= zTXA(YDp*IRs^I-DLq&WEi^|QYXw&wWd7+qm)-qX7C|hz)2U3GU^=bT~n-ZZr{83+J z&5Vc#mRIAcsN%9U+$C3EK#SvEABkEW2PdF*B1`DU zCE_%vMEReDyCJpr_MxlK*Bb5XhT*owCoJX}em|yS0-CC!jQnH*o=Z`l8+(;5Ej0NU zJWOF}Zy~Z(Y^uT#o(U}gr$$tF&iBf>FvIWly9!M^6SHXrjA{Jv&CTxI#jF+owgs@a zZ)0Y~OJ&m}gH6^}-LNS4Fe!DppDvQ<*4r0PCV7+^fMZ_;{>tkFTUK0-v`5TJwx^z7slWJ8`nV6|-fm*$)B#-*L&i;1N zQ^eTIZv7La(%*9ZtqgdU#7kK!%`3@XPn1<-Jdo!IPYb{GIjrQU^h|{;;a2F<`&2MC z&J`L&}Gu6XC5jf zSoKoA?dQGi5(e%+JYX(%n&n0m*Ku$0F@M+)i^g>V7UjHE{Vp8UMG)Xup;_qJt}hHJeY z-lNo>`4bLTk)GsWUK)X6o1<}g;i$IGgs(TL_lF49CeliNU=lj$0p0i6&Z0RDE;!?S zo-*GmHrib9(dLNU+-owT6sMPiHC&o=Ew5E?BaVl;F6+RxminddWAp%aMy^=U>Np*G z@>W0#+WU2u{Fs*b3T>DSL=1XeHZtv&feaV>k^y`}LnB76S zgaJ%)X?$JpvgpMJ%m}WR!wEq-4qF2CQtFKFlVZT7wf}82fnWJmK*T5Ln5;#q6M} z$7MqGT7}N{bhmK27OKwqgm$IJzf5#ShWWXS=L8dtcle-hKa8S$;xDUV3Y$Q2TxG}r z@lnS=#Ms&?o2e(Pqx`^W|6wa(JYmw|zPg(Ky|Qw}d%RIUCCPra^o!$JlKLmAWRV(( z`sBWO`XHxlC>5kWf0YTY-Q8bZR%*^MZ0ZfGE+!w1FW2i|*srE^Ffe5qiz8gO+maS9 zVN+(>(Hx3^6A_6Zag~H26htsP0SvoDNCq%=7uiT=muF|LF*(~i%W(2S-mna;fIQ^p z*4h4~`CP&QyS460g55Jb87}#lETbi(tk@FySL)pq8)7TophH>OK7J)nPcht`*$g7L z^)6`BEae0}#zjL~HAQCcP|Gf?<)oaxms z%Y$N6z2FGbEv~j?3Fy_femL1J6xBGAE<~z=mmMf8O~fseBrxbknrMFp3fdpz-IkWmY-ccTjkD;d)4b^&vhFtRrRME(CXBt8pBnL>!2lhZ zdEk$LcD-dk3Ah|?cE1A!MF(#4t6SPPMg&8K`vbSt?f+wV6wbgZRx~v}b zoUIn@)p`_JU##9q8ar4iGhnv;kbP=E#=u{l=$@yZKAoDdNk2dvMHQOv`KI_g6}}p< zYVf`Kr6l1K=GK7TU!Ztx+=)NmBZ@CUpkszmwXHCwejZMeVz^GfJcTDW!uIg&uWv`~$GyWvm%f$)aPnQ=l!!Ehlg!>$a z0}Ix0ldho>Z((76PJu9r!epfvMvt^*POf-L&g#;w3w&Kss%9qO@S z4D*vOzf~_$cN*Z5CI=)kd3tefS^@HnacIBDe2@w9zCr@>`% z%a&OwjYzTnP5{kX>UUVQz@V_Cio8dnjh~2&vgn6q$I@Ex*=a~Q{-lvwbESi8)%XP` z0>9LInDYi7Ob*(8uq)`~zh6118Z-DU)1#*ko_yd_iaQdQn+dED%o;#7e>x-n2b}4D z|f`eDdc9$f9W^6oMVSCEr6K3_vioK&A zO;9|stdej0d}yhKl~x$Xj98GiRv`{M)fDz?RROrwYff%g#7Cq)WX8I`er7z=&9}6 zJ1q$5ZQCC(C~sOv;6m=*@X^oANHp*YWAF_Ja!9gOzwC>MI;l4?bd%VrPpZBy7+mTY zhx|o)v-pB5m#s)&VQG>}qv*uVP)~7aHM^kOKG_4`r@2m=K9|H1i`DN7Fg22Jq)W-! z;(`4_dE-`+m|d&d&Qzf0dbp#0)v5VzcW8zEsHV;-hI*r{r0=Y=n#mHQe$(&(U$PhM z&K6~+=vNj7;PKg9?2Rt>{=!4K>nH{L}>OjFJ+#* z6VRw0nJhQ7xNJr)tRGfPsjuD$ZPF)4)ZrT&OLfch*$8Y-(>XcAwV@2qFV4O6Ga$RS z&g!VQ&9(eXqkd65W#%cK;D@{S14(VE#@ZQK`OW>hc3ct48n?%RGZDO+U~A;N0%%EmBj zO}q|BU!y!VKh^PLdAagQ;fG|K)6eQ2+jk4LLPI7+o%L57?1EGn>@3b4hGQDbxX?p= zS?~K;bP6fqQafiV8YmM&Bww7=n^oc2n^L;aVxEv65|MYNDxJ(i%=+`2SOxl#Zlvae zk`PG^Nofrs`J4KnRnzp0_UYphoUwchwjXSh2 z|LZwNGp-oly~mj6+q&iF5dPlQr4+;}qL$QbqsCC^)GJ0NN!=Y<3c#p$Ij-R#As5Z%%5x=jw&#|DPw$SN%;a23`FeH z|4{_{?zH(ZxA`Sg=|NYFc~+1ex67qsgde*XC0}2^uS9lL<}DGX$4`W~FByQ!6`!i7 zJU`8Dst^dAI3f&4HIQ(++^+ys1B4|nL~(BCk_x}6&-6ZceK+K8GeapztPrl|J;1NB zzu)`JP{#t01>G)yNR~ep9wLNbUoQcyhu5-vb(pO!EP?!RUoaNx*@a18)@q6x*xOI5 zjM&@p#Ky)shsjW(f*GqTG_gzXD>VLo6#ord;|E)D_=VdI^wGHFHtd)DKZ(}p9GHheZ6B!xh?2h#$ z7#QZ~cB^eW>yvC$5!I(0;eoc^=~LEui(dMn9!1qF=mS9tDk-5V!oNZYzW`*aZMzP! zF*EbF(Vpf(xbco-B>kFw&r?kPn**V`O6?G~l0xj~#U!?OIC!#-+4W2Sb{oTspKCpN zy^6;1mXf938%fV8g)AqAv$WuD5{v!lxADT0B1MF*Mj-XqcE-sgV~oIf&X+8hNM z%w`HMMgFaYjHhN~=iRv2lrX_3*WRNEt#k5GAerI7RUDedQ$s3(WTr5sf9w4+!&HvQ z1@$~s`Ty2wrbfjQuIhml*ZQM@Oy;}DUsbrqDI7Gcx*^wo$n|~{2|nXG0U?Af*I&mx z^?!DS#`qrE&iMCsG=Cmy1D8RGeOQMuMI2A^UDve-=kbw8G)FKv@99-IV&61Q~!tW!dvqvLXdjm|O ze3h(pyG*62u=oO)Xz8!FGZG66cGB^J=1^+*#>94V9VMx^IG-ynS&ipM;_MB=Li1*ZmxC0H!ulf(TS3r! z8mxc~f!%CZQkceONlWXtW}Eq7X*9iP96|j~RP!&a1?96Pzp&I1^DceT*L_9pYpiQr zm2$7jQAsNQ%<=z+ZxEGSz)*FOogK9F>y04I58s5D*G!sZ7%%Lr+%C+oObOkjo(fg$ zc+{y0+%tbB+Zfv&v5U=WNifQ2Fw(g zcRfG!=6cS0KY~6unqDO^%$+;v&25W;+tg2=9`dw8G1?0{Q~9<4vyB6K29_@u)X#^BojrnBKWn+)$O70Pma;KACzvHr`1rz-iT9w zrxRIpRIcH~`jWmwaiBIw%9efY=R>i=6GpFU9iZs zdt+h>_w!ls!I|iU3$g)G#Zfw87~>UVq?Lqyf^~SD$E;^3abm<+G78M1hcLW5a_YMg? z3erJ(4FTy8NN7?5A>5Vso_)r5_TJyQcYOccZ`|?zo8)=2)?9PVK7aGbLJWEQL1Q?{ zHN~Fp`EjV5!qvM5S1j)*$0X}A2p2`GVV)bldqX=wEU%QauM>vdanYTFwfBd!d+GLN zQ1>d|UNy^3^Ei9i&UWbFmF|=Ikh2RA@`ICBAg{g|{<~W%Yf%?d0AJ?BEInsL72Zda z93et;n(o6O?H6U~=FM-cFK%0-N9AQl_IPvEW^K6#rE)um6({7$%H{vIz5B z>e09=#~0@_s%=#E#fakRe}@}3)L`x?T7s$HI(ADj;P!kWSaa!&!0QRpwC2K%D`>s= zMzdNQj&xn()qc10sP@(R7(@E{ULs9}mz9<51-~t2N;r=}hypvBK>;*~iYUfZ_q(;( zFn5lUy$$VO))?ALy2 zi>8ceLSAc*nBWCw<@U5R+o{|aBcv`mPlbiV^%%iBFOo;nHoCDZFj>pXQCWG2>gzFf ziW9$Z1>5)bT9eXW7D#t=IUhm+ceeJvaR~)7l-wi{QMx zTy@uedGqR4>!Gh$x#eH&L|^Uf{=|dr4(XK`ucrZsA<{U`ZN4(Q0elFWyB~Do%%pHb zKpdu#^o}^qstez6Yx41xMp;>9qJt8a02s(4$H-3bOA?L+`wHI1~v{x zy=^_9JJsPVH;t=mtB&35@Fu#Bh~(}$=I)nhkf1kn)0{8L{uYCvFwGJFQ$^hyxBJT2 zHQxRz5-d$VFdGryv3mx01I8{~riC}z5dSsQ*-Ed=6^o)E5LQUH9{-zgOgWs_tdU04fv_9uvdo~YcF;9=xX|49RbnO6$f zT4l6uUQ^PZFD$%qy^C2w!lJXl#_CEpkv3)j9c?^B@otC1Ch4P&gP|s|+ z#!(rgKB%A|8`1Kz0z>zPzN46Xrl_+@9tI=3&Pm>){AQ5}mF)mPT{57Cu7gFT|0 z_bwC@*QgWtAD3&j!_WILd`D&}LdL_KAm%BwfDy$c%7>MqcwavJ`MuV_sCQUvKD#*m zk(LTIf0Ow9LkO3jlcUu`-!cyqyETqi9O!)emk9}#A(?iH^|o=@BYOfv)Hd(6#X+dG zm|}qF5nMgFvAs|qpt6~;ZW6RUJ!`f3p=D8+F2(o!$c<6iz&538G}pckTjsvM9U`3n z?(!Si$x+#!Ghl)FxBi$q4tuK~u4zXB9qdIXmpq3moMk2Qi2!k55)HD6ClN& zV4l=rc9_$MAW=L13xaZt1SSRa0TP0BvTX^GZ4+vyR+s*QmDoz|zYU z8o}p}ZpUhB|Gd)q;uY!zu{ve-uaTX^mpt}>cVMwNn)>$6)zYF_`l7m)AKbdaR+uAv z_q?qg%kk?Rwl1CYyO;QaRrX$7pke#gKvMV<7*vKj+BE_?g10^6c87E|)wsEh znYA^gwUo5Z2eGfA@5Nn|m%Ct0efHA5&|?sTC;r+02V};ul@8M&C~LEUd_&IR+VF8~ z4bz14`$%tvclj+^EMy04MGkkhVb+Cly!p2&t#kd;NhvPZQof;H2xFNgJW*;iFL!wL~e*S z>X7$rh%UFCl92Xmudo&FJo%857nFe>w0oIRn841QCu^k?w8v6LtOWYsB4b2Hd+A_y zzb4}O{?%ms#ozk2`=0(!Z}xxap-!6X$a&ts8veyDb0|BzqoZ31R9vjZdSgN`DRq2E z=X;+0VFkR*Pi5}v4Ap>6 zwaUwePL^x#Pej)$COKFisp(vN-~D1}b-R;>p894PU5L)R`|mE!fD^pSzrAPE`Fgv; zSu|;%)LQ=RLIGSzGJ@SD=`%gvBWlqs`m?8rV)oE??NoMk?Ny>}bE968$%}Bopy-x# z=*;UDowaqLF-01dgkK!O4`6OSD-KgA`ysNPpRe z+R0fsKwQxx^6KnrFbujfzRyZ{XP5}))dFz|(k?PcsonMCTVT>c31~1KA=2gG=sqSL z2e8ymNxtcV9z(P<(eV0vk$+S2Z=U@7;`}Xw{+5&fw`-iKy*rLsoR9SOIVz*Ndnyke zTfKCmd6D}&@(0kaBgtuHSi7O1s?uZ8;&y>{JFf)v*KbnlX$J0Q1b9=7+O4s-=Yln$ z|DuD(4cBIA2AX;j)6&usOS~O4b@;g)W7||dyi+ua)zC^hem%z!Yr&Z>u9pI$tsXDE z;6M3;-r5`&d0Pl2+@vBs)a9tWQk-LZwd9*1w&bSpZ)R~%@@b?35nE-b%4*JVdutAgu>#>kLt^$IY~|nCIorydV)f=F3d7 zS3hNg`B#H28_r7-JI*gL*CIB)m8=uK`$=4j$I;hRx-|r4xhY(DvZD>V8!8-{sW?n$ zmflKNB%UyMjjvOO7W6t?#jl-`EUc|k9IJa#5H?&*fQ7`Zjp(jgT=Mt&5lF8yPIJu* z|6La=G<~}c^RreZLs~&aTI0M}WoFfl+o4*JgVi{X!^6TE8A=&?-e*IAcB}P%VTVPC zW)ZK1DKuA`(<48prb)O<68<4ALppzy-Aexo7`Z1!rX&whA$wlqto0lnEqlv;oZ7I0 zLjnLGBjs_=@fp*v?>e+waE~58fR(27F-%YUhKlGUXGf(YgV~TaG^X;D<0F28?tCXS zGDZ{t!+Ew-E!4kbJ622~2t$S-lb|yELG_IkctHMB6`n54KSi zV`)R>{tGGsJ?Nm!H2Lthji2v9^as+v0|!ug)_xHHS~uO?GlJnRKF(L^Omz3+jv!0m zIrz55UMb(5uH_w3qYehR_VWl4=IDqo3vR>^;tcR97?ld?h9aiP6Z^1k5ZDq5F6Yxvmgvxz z6*n>P8Ghd~pxeYJ#RxarQYJ0>sr}v`4Al;h!_#k;g?VUCqV_)hv=Q=G9vC9SRNA9= z#k^vgzfIkx%bV5G7}IEop%O00evxgF$xe?2^w6(Yn`5;1dyj4!o-($m_1WZWc&1z; zY5211%QUYSlkUPR=%=B9!MTMtg%>-P4^Bx!eedo?Kt^diV?-zcqn)ky&O3nnc*&vA zsE;yaa!b=XZY?pE50ew`e9FrHTapS2Q&+Hch;P;qV$tG_&;D^ra(kSc>d_+}8^*{O4)|Mn$eiAn*VZ5R ze7-ZRqs|bo7%^~MY?v#RK+$C~KlKE&nP=lUL&2{cKk>qwpu{ixwZ{VefKSshqt)yc zXZHKcui5OC`S>W~nO;xQfYYpWUYguif;V&TA2`m73Dbuq1WQ%yFCw8Hn8L}O6dQq& zH+2DogqX_0E4B-16c66KEXe)5(Ty$+qXuqKX##}6ll15)viOu_I*2IqDTpr6KgS0- zkB%*{t#(D`1GihB>R=&uhZ^Gzu!x#%@UmKRyJz_TT4z zZF4)uU`fxn%+t!WH(js_nhf8G>%~{2r>(?~V;6#5_T|>v)d!x%i`1JmPKlurR!#=j zisLO6UU2OD)v9bqf6xPY?3N4%N@9fKuX&VZ_Pn498AW*c1cMu=Wu(^`63Zn2{@uyA z!??Me7U4_wah&?3mUo>_A~5lnW8vLT=pD^Pi%?40&sk+@P%@)jfxMhF5NKI%J|zLr z%G>z;RYG&mKF>|3{7q4nrf>pl%9OuM8mi{_h{M1@2tdD^?T?{b%!5?!U3%_uc=Xx6 zkmtOB^2$?ipNa@9eipL`KFOyW6yYZp2~$rbb|+Rm!Wgvt$Cq7wH4~4sDk}{)nen;} z&I48)!^R9enNP$8_|QpNx&t4x)jY8!!DRrU!c+p@zBSw6eLrzcA|AfaupH@-dopd9 z<`y*f&pd4>S&(zJ%T+pSVF1L4;OT96dMiEFz4FafXWOq(XKT|$| zT0&B*6g1ZNFhkVBB{D{7{9ubyPyE^}DmCWdeAe5CjR~T*#hEmPuIoyikJyZt)J_vmpAY?y&|0gCn>=!>2Z#|8xH{d|GPf@4tBG&klF5AxS49;)ixCmoe z9Zf3I7a!Ym6ugw@EcCyS3WQ4r`HyuBW|S7`;fb)oe1-MR8b0FHe~Y5E5K$aSQkFCb zQltAb%1is6g5q{XmHb18O1Xa8B1X{k5kycg4xop!M=qb+%`H{%BCO3^U)ql}TwGtE zkkv4(fbBX;R&=TtMzxEkuGgb^hu>;f4doO5%AQf09;zLDM+NS9Hwc3``hnNYP?tT{ z_9-KJRVfE2ECJ_geJ`Hx*-wbkLe?~;J6fF4a@Qdc$r(Qg|C#SA6G z6_a%(MdOB%woBV$C5C47>J_)++f&Ah2~ehY?#} zP17Y(D=U2aJ(lVXbFBL;lA9wf_vKbmZkvUVxXc~guyodaEmp5q{W^bS2Pp^YXr**$ zDA9Efmen6TzqNd@(~r~Nx`?=TvQpzpdCclI2IF+}f}2{R4;~p=yK4+4;~vYi8!E{d zN*mAXTL#5)M&`t1+)q=~Nn>O205MSGZ7}K8F9lbyy<1Iq{wG1E#J*etk~*DYUS@9X zE>@pjc>o}}d?kb52+>;1RZxqfuOzLTbq;H)mzZeADQGH+gmbe4Bj+#=&yv34>sjQq zGUIMw&Dk=16Vu`~PkYjv29T=M`Zkw3@V_cg3I=G; zEx~&uDmO$U<0SfOg~s)Vu;dslepY7#+nL`gDVJ~twu?09FyesVELzQ(S}d4PCe3oT z+pgL%fXNjref=N&JGN-+*z1+**M*!Qu8Uqyw*t)hQ_is`^*S20qkid*ng7oJRy<9; zp<_~8xXQ_HqmZ9f9nGt`9p?p(6}rWQbHcwRm^TDhxJWR@u9q~CLd?oV{Ksn>!~|=% zQUYkaWj$pXW?P1OYAR?7^NNdZd+xTEC{|or%jM=kgg*o__ZT|I-=Gf@_QVq=)l!kj zjD6_Q-t-cSt2Cm5xrq7hN__@wRj&hYcit62iCh@&*twVi-P zm=uhV+S)}i9yg`~l?urNDy8g{1Ri7q@XQR4fxYO1ssSFrw*_~gexKc*Jsd&-Fcd^7 zv9jjbIG!C!m^oJg-G+#Q67m3{Euf#r8i|2R$liYYbZQ2|OWwc%eLn_u^0{GutbM9> zIqF%>aje&}+4q;LVSO!^?Ft{L$glYVqio&7`HK{*PXq2M-Uv+*0=*4$8kkPMf3SZE z%Qdq;UEBA#x7wk$sS9Ns8u=|>u{S)xq>h8l3oEiNIh7##hKVoP$U$2WsAtV_-~zRL z1f$LpO}wc1UH5a3kP^5GN%Vzj3C}t&QWJ-dMeTyx&PGUYkG*zA8hvS#dyt5j%x}6{ za(#=*A-Pi^yCU*Pn zOnkjMCiiY?Iv1KWCmYalJrUtmPWRP~puSDyRdsyeu8A>{FmWoPSA%HK(|J<5HYrDG_C08)&enW<3FwsS z8~B(2-SjUVb9WAQ7Y>ee=@|*>&_=15U#+Jk^6At4n^FgA8&aSX+!Oj4dh@u{kFmv1 zQVNnrAX+*OMfl%RaVswP&33<+*@t^EtKsiYxIb^;1GZ?<4epN5d&rP#HS@^9mxww; z_eU!cU*?MN@AIEB?Q|?ql&XN+Vi&!wg#!(_xajSEShJ!>8`KzrY0m6*@^3ON-_hq@ z^_73U0&DKen5i^_k)x1@bRU@=RUBxp*eUx7(%kh*$p6wQTMardvo>MSIRU7|ZpyP* zsf1ZZTA0^d>9=pCw6qe+DV^CC%ko?xcA+Mvv zS=d82vhx~!FPRM-CqLsosf0vdyvt$uAe0~eYYpv}4)J@J@>06W#SkLVPz1;FHZYZ~ zA2XfxmVCthKBJ?B>05^yJ!EQ$Ls7N!)5B*&Ks7yux2AtOiQV;WdMw50lg?l1Lfhjq zcfjBj$vPpzwan@uEnl`VAc|$!4MIpX=5%23{G0m19@PNu>cC5Fo`Rd|Y&}1fiMZRHnA_G@ zb_Bq=>U-~w0SNp)l-Pj}et2EEL%}gEd#x;-U8iw>OpCexamoR=*4Umt2AN*iGFNWs zQ$(Y_GoY;{t+=PJM>E40xgaYixsI|W4tV`5IN-E-sMPj+Bt>{7RY&Y_CD$n^|Gf&w z5lb*-^TY5zwf8393f+rD6EiI8vs=freKv%h>{F7}s6*f*P7tFNA&_op+ALSI{f|oa z0G0i^jZV>J$5zSS$m8&_V*#@zl!7e7o6Ye-9`Z}AQT2$fEu;4QOr$eb3dJC@^YUP!%G9z%j|5lqlmWF(>1;cew z_nL2S^23BQyZ-uIvW5KIhz!e*;IGRzQ)YV-7dO9?wFUn4Zk}${c0`RYspL!=-eQH+ z`W(3FYHH=k$xzD2m*!*^!)3@f5bxY)Uvh|H16{0|QKE1LxlI$L9OWC6Wq zznT{VDjssL)GL0``>W#N^S3lsMmc%)ZYZ&g0Nw8ERv|q09bGyea%n6};$!5U)MPdT z>Tzy5Nl5NlxjOCqkS6o{B09}QwhZ8M^8Dld|0SXSu!eE_4T^EUy7!a>tDFXY=h1#j z@|_L3wsPV~Or@!UBmQe_=P1Y~yzM$A;T|W{z`-(8iGJ25_yy6^Q~~t{ZBvN^J>iq9 ztpEI_bP2_JEFlA!zXunI5jp7T!2hv~>p!Z8JaT`4hJ0AiSMvFu`FRfQ;i0i#)gP#A z_B45UZ(gl9pY!8k#9uIJ%aTW!FHsM$ilq9VR z6!01X+T{Pw6z2&Nx;qA4zv>9xy8{T>L`ZLNCiwK9m^qdaGKpt_7(Q?W=~8_#4Vt?K zBtcEUnH?MjU=X-Z=u3KwGFr%ni|LC+ckze8vAP%7LAOJsOYG7hvrb` zeyzGrN^&`AS|9jXGR$qQi5gr+i{$iRg?_Pbi2?SR^8=7J~pOkGdf+3_+_b(~%`3M#cj z&3Szx&|jPA30^PzcTbzN5@ADrH@!2gADxGghTy=`)5;2H|3S^q9J$-s6xEl|8liJ}b9!Cp@L2 zdZ>g_`ujr2aUH{*=(z;-{@ZgbVV`dhBj}c=B)`%Ll4);GNoq)60>iF@5*V2ozPKpw zL^DrF2VcFYC?>4U>w zD-+2Wk*6V*Irj|;yFXSn{u&#;+i@4{#|CNYZP{!J<%}3E+~`UXZuGGgzMg~9`C+$9 znIu{AV{p?**UhfJMAe>y*V8$)r0`*ns5o}RGQJC#$&j7#SwVV>EyhJt3ytC7F^GdB zW-6tMQC^qXPO&$FG~b1W%b!{OZP8&)vOt6i7kP|>{5aqn?GD+UM-BPD(qb_@-6%J& z>wPRvMvId^V*zg#%F8aZTCulsoy>F*5RGr_tk<=7@hKzdqUX_Hj30Nqg}7^=*b4oNw`zaj zdif^H!loYlwXN{@(~Tp59liwfYSU$jhUH?5bFg#~G`4Gf*Cvfjx{FbiJ^D)b*tv9Y zjfUDf?da$4-<&&3>|A*oyeo^lJV9HuD7S#NQ)!K9^91IsY+%R0%Wc8EY5{#etkM~U z^d6fkk8RQ7Jzgd4R|TOc^AOsfH*!<6flrBqa;Kh>q~OE`=`q{zT0TnJhI8**=C^CP za-D1|>pF!92f3X?&En$_9Cet4&TT=x0^_hKfsp9R4z;r#fZzsrL7ZUnVa0SUW}qEb zWVymX-!N(Dlhhc@1fR(Zi)ZGfr!WnVN-pI0v_6@FK9JX7C!W*xe(t%vfJ^3*()eoR zYj#dJ!a>J^4Yq&NfQDQs&~-WUIJa%6QQ9geqtkN8Xy#>)z{^iDm(F%Z5r?tbU#^GC zL4BQ!u$w3m(Xd~O)01`^GtQja+Wi2Oe?(BnSf3yf7etgH#fT zED2~|=py++*MaxZjaKZnTt>?cI&$(n_TYA1U3IM$VWGti*>t<qbgjIo}}UWZNL98-+r^NY%QH0FiRlxBDR&hFH1 zpvukxbG8-PkfV&r+SknWVx&B=HEY2AZX0F>uFYQhanuZ0&bxp1Scx8GQ3&BVJyjD5 z-+2^JSpPne30@DmQ!h5`BCW||?wBI?B|OPgnM*z)(S7N$4kz^6GwE6e@UBaUuN1H0 z0RT2HGPa>GEjQPJVR%;4lL{GRJC>Q8LNlW6>TqS!)!}2D7Q`~&ekXcOh@~Lq{ZFEs zWfl1mLG9cB4Ip9Z?tWV(M|5sV#X`CEbuFM8bG&bQC2z4RMQ)zYoTPOY4C}YHW3$L} zQ0=gD`181WE~c^fGun-~n^1gM0E=Jq;cgW{&CePaxP8D66MY1C*}^*T+qk3rQ<3p+ zdegWz$h)Q{uSnFyl@!_hnp1*Y8zx4Cyos|aFv^VQM} zwEt+zL>(eppS~p}(bKVTYFh5MO7Ph0Vp&ytXAAz?g9snq=;A&L-ICwYCU&oubIf0+ zc|gI0m|KKfm|d~@eQ2L?#&!{VlQ;P)n*6AJ(~c`>Y`U&7*Mg?T+i7T$Mg{bb&d};6 z!xS#i8%wu$g_m7_6;a6X(I-AeQBju|MpBs7qOQGT`CiUp&HwDgU6Se3a(?fOn-sX)NMj?1``-ap0 zw3tPH{Vm#x)e1w1qqW-?2d5=eN}0v{@j2c`Z&?Yt=#wP}ikL`RnUzs`0fDx)1QCwH z8L*?`JRIM_#Z`hiW6$o=L91!B$aJ0s*}J#Fujag+Hj-7^>eyjWr4 zijhfQnRT2Pa=pB>wX;Gbc!$2<0Rff_5V23&#D1OdZC&h;-*iNMnDCFE9%-_OT33$H zZH}eUYCzPpr*|yvk5N@UBD}zH2={;nV0DsR?V^$Twg;NE44{fg4WA4BO3{Ld+Cy+k z3hmEK;CLI?_(wf)*TQvAdIp?LMv;5Z!*WQSHV8chSy`Pj5E=`K+hWNu4_CSo_YzBW zB}R~S!~6AN0|=Xl=%(NaQ?|#^n9|LJ%24M`$7U}|R-^Gb4xx5QaTY0x1mvLB53PgS zapkSbEL}8(VH!Up`LkU=0*@`R?DS@ zhXtX*c5UGX(COo#;#(p9;$=M!4yC3)3#nV0&SrqMW&LQo^ib)S2)*|vsH3g;X1-4cRnYK;i^~z8to~~aW{W~9VyU1fR+gZ0glT94y z1k%$kOTpGqtTKQPbJFvPl2@^~gmGF+zC`~8r;GFvG4z%p6{ptyC@P6!IdJez*rv-q z&r%Uq1rvu%%@(HG?6+n=n0dqt+j%rMJyKKE==m(+TaMMG_!oJ}PiF2V%LA&0nc~?( z7t`G!_|?SReDD2@@1Ffy4w8+Gy25J6A;C^>@#f`$b}HO-@W2a^Tc%`GNP4{N`}?Y zkp2?vSV<#CsXX+9^y;~fi~~fOtL+E1+`st972}VRZ#>|@8po%$WBv1z@_Tj1#vJhk zhGwobVeT-W@hDjV!Rs;{<%|VX2gGn8te)US?ZEi!(NfL!9bA;d-76M`F!slPQ18@2 zlG8F1&%MQ{U7SJb`2{_b)wgl1Yv%oP$foY{u(;5zF-Bs%-siAE8=AnnL$e_j72Dv5 z-N6~sdzqT`GYzV*tnH*`sGPK|O+NN~DK*W)?<}o_U^k0dyvz~z&Mk|Wn ztprcvX6cT`RO<32(|@;mII-DmqvvOT-bDP__9Zw2ZCe5*Mql9!Gcu%j=15S|@rEhi z?y{ZT>^V9}ggP^BP?c9RU}a2d-e56S4IQb|+vw7^@jOjt zmvE;fR%=^erUTXHf(?OS^a$*;B$#mfb3(Tn;!DCvY3pJob@J$8&$w%ewNPbdP=Q6P z4>tOtd1iccOZo5631Ux>hlkXhYD%oD*%soA)CZegy|Vcy&QUA(@xtuJG6!w!q6gB& z$F_I6<>0Ueq!yHjx{x7HxOFmF?vb}sgG-;T(SF~YQsAppFUFVo;q#@EKr_5I(lFQH z*@OECS6f9N72ID`vcnkfmMt|wJ1fmg z1*7z>G{o_nG6U$mIA-%?j+n&pD8u@-o6?+;T%pR!YhU7fa^#o3d-ZTvA?AHheQpfh zM@}zEq+D)k$VHt5zS7^>Z$o*h7LNhHJU=D*$bselp|aayYsOwxm+U7f-_Fo1Nd1Y= zv%-RvZ~x*3Us67k>n*$T(E_p!V&6`Q#|c=)CSW1Q6>yzhj@7Vbzh)7LiIa|}Cz!^> zW3{=4SuFSb9wC&F2F;TMoFD@QgSS6`$n!72Ina^x6vSU4=|XveqBuPz-c{@fZV#0LCizUf66ai#nuOgb$?3Y(4UHU?|0^?yiR? zP8yC^!xJEa)s=cj3}{ew2Nj07U#JywVr7Tm14Qk<2B6x;B}Ds_r0;fJP!`mVD{Wp! zQKc^p;!6<8ku8z2w9ZvvNB8O>o_j3w-AXbuDc8I@oUx{xX~=Gry?fjj$JUycIk8gG zJR#Gb?jt{Vs(ozoZ`bH(^Z*ByoM1PRmVWpdzfF+x4uD)$ikL{k_jf>JnsQX6Bclt} zIJZwy4dLDa>zO~z$Bjm~;--as zG(~o*^^Wp#<1|M!7PGUX4cY0+v;<;(%RCj*zVGJIB76O3kcBxPgj9a5g6KjnsDf~_1V0+i z6(*bkl2uJ=-5$slwD*7fV{S15e^CwRgxD)-0@s2FLHnPz(sqdio)N^(55%fI@yh&{ z@5o+3jnen7nx2x>@)70K>ELh{wg9nYPH~jNh=&0As#2$)5tB+KV&TT3`AoFpoXpip zHSnijo6#u*-Fu*A3~*!{kqtNNa{(UCCn>Z8bla4;jemMiW#8ql;ZEkT_VRKY@|-i( zU#Xf9OyCbxO+A6F%y}I;GI2^WPZXdBC@pCBPsTkVslzhj{tmQfcPdCvR3ZtSU|+dY zG#QE^`)@4Nca5)#=DU{kjl}kk_!GCb^k09O#a>BcYHvnmR))IO1~hex!$%8e*&%6x60m#SNkne^pw`g}z6UbLmT0|g)=R{--+Iz7bE z$u^tGpoW2y{h>5PHm3l!NKjFrYd)=EBnY9bN22_sLDyap81mhh42FDr1L~L@mw_SQ zd)|?RH&v!55yX|xdV(R}0j1j@J0%1XS{1W@5xW_jMgJ%m^1Td(e2Wp!-+vs8AU|s8 zI3*FEEF*OM&od&9AeVv=N06rof{gd(U-UHvBgoO4jQCw^#4$aQ6`R+=2=Wu-1&}v$ z0NFN+|9L8ZukLT!{mplO--^E_%HPuX|2AEr|FYfBqOT&56h-+Ox8!>JrqkWat7}=& z-@^^w@OeC09H1Xf3j0(qWBf5G5#?KI7?|NLNJ+Y#nitjXjA!4up#`^6C=y`0Sz688 z_}*AieKj`$Qpcnkoe#_sQU$uGu7~_`+e){p-P#^hD$sqJG7-5^4A86Zg%ZJAN{Lp< zzZj3i4?sDjOV3^BMw7Z5QnT>q{;EYC+ln)9h+!VCzRR7Oz@Ezd{^P6Ys+R2&Zr^i6 ztfk?y|JHoULse*~B110~iF0+ZzBpT)uOMmmodnnwtAoI>`4_Wj)ipnZ7CFCs)Y3*5 zvj}4_6P6XXdw8GievPM!?Bw8+w~L;S3V(RM;?V}LKsPlJ4Z;714f_{Tl0Wnchmdy< zyxiJ|REl1R5O(G``v%z!0$ncUGrgB&_+Q9aVPl%%5a1E8JsB6Lf?ILj%t*eXx z)FV*=%H_2E)2o?Nc;*n(RPGaKX88+^N~!mst*O-3FJ_tevY4IQt~D^KAaH&3l6-O= zD;eJpvuL}8RI7lYtXoU_Aj)wQy$qT~%u4a!m)zp{^v&P)EA6`} zFUnuf=j-mFb65w7)!m&uoW;Q?)C-Fl95VC@^mC9nuH_S}OqQt^f?ce#8+E!e9Nlfs zr`_;A_fyw-!CT6&7PD@}s$N$({uTt*>Vq{PtJz}uO)me7UTv9fH zy~x{qc;NtMkenuSdx1tKB$vA0u8WCG@agB?7xW7to}33_ic+`Y9x=<1sUU;TlT=Zda>d*| z;vy3^;_=WL@%s4&e?IOJY{+HEie2bSk%)8SD;}n-n0T#zOS_N3cp^sQGcbG76hoF6 z-tMu|))Z{0rmr-rEilR5rFLy#6nfSn;39Wbul_bAwHAPEQZ{@l9gx#lE48AUJog;&o{=GS%XujL7E>ZLDKiayoAkfst99hGXjM z1s!8<7D-SHU6f#pwutSadn#wnC+Z6@j}G#BRX~wBxs3D<&wEJcUh~NGNP}bojLk9$ zEhO%1ZX8%EOnLr>@v{B};{eSNG0ytx7u_W;5}*VZAx5~g&*0WKZ>5-goz~a- zo1^N>l*Ay6ceUop#zX3_){DqVqb3z*GF8dSptQKk5-r85;3)eDLm9v;u>+_#cXkF3 z8>X6ykaZ45^feO#e-uI||KK=8CobBP$>@`}P5$B2iaqc&bvM?6B<5$oc@XlI%2+{p zi0Dc45e%Srczuzsmd%P@jUKhwjI~J)w~4hXO=clZ;rcD@*|yxSvBoh{`uCr8VL20p z;sol=hpwY?VD%#Oyt@__emxjf%;6;RNw+q-c`TwdFxR{|H!rj7_7flJYhR|OO0H?K zL-yBdd1Jb~a*7o0Md(v&-UF9Bjv(*Bvwny|ip3TkD0Zpy4uzb+Q;)rKb5LTMFbLsl zE!$w|nI-L4g-j4vvghv7C1KCgJ+W^QKrUR9V)PaCv2XBcty&JTU4=Pqw=TK;`O{gc zqx~}AwP5}~Qe=j*##Qbqv#zSt7HbAQ|f)Rpp=al3QtR1b| z(PhDY>|D*%w#-K>6v`giMPF0B9~Y~!FqoIgQ~7IDL?qmDK!sWAu{s_l<&@xq}PKtWyGdt2cW zLpO-K?@qg#e6w@@_hj@Zrl=P{{*5t$Lvl342d=UO2;s#DW~RMY#pEN4#rW+Pg%W;+ z6zHZ^`ji$;Qqo7K{rI8Jd&Qz}d9m}Q0Q=l;qOPA=f)!NB+k!eQu) zgvxf=+@_`Go}xo@MX>9>Mhix=ZhEUpb-B=h`*T%V0t|qYP89YEhmIv-#V|1ADc}W92<()gh(Sb1^aCag0SIm#obfQ>ufrHZbiP$2~ic z`l*WU!T-X+$x&;H3~^Hp?JCi5dpNeUmsxzWsYoXf)fC!vAT&`{);eHTF(FzUrqRaj z9iJOFqOw1z`3MCzqXFi+M7H>WTG@|x9cMr#&UU4v#AcIkTBwc6LrQ@vOE0JP!}Qwv z-B;FyuhuD<-`nAxSQ21%Z*B{yamu|R26JdPSA_9tzT-=zozsckkAiFQ!VcEL)ztJw zD0+96gGpZt;hKZAF63=r_d8$P$2YIwy~Kw`%nB-^bu1PO4f3sJ^JUZS_V1X2De$Kx zk*TsW_%P7M>+fay#>u$sPM67YZfOc_&GzV@Bo4@i0t};jF7K$7LR8`E(l1`Lojc7@ zvRKD?O~{vPfBt;d(g2kOccC1nO9cbaUM(~Hr&b$ZxaWpxbd&Grn5q&X!8->|!FG$U zcB%F6BgJ}L6iii2W4kPD-CdKF_jvfOc;^Nw%2Bc?c8>aw*ViDHYPO&_q@O)by4>Y> zy__$_dwzecTWi?4P+}JKMRjDIY_L3kSq<^sbJn<2wSg(DOGi$?qNx4RUE4_+wfmp$ z+5#!Tjp!A&`E$^>xzaX>5*xK~bmsEdGnTEClpg&J8U@=|+)~}+x;DwDvI}}FTHEyX z!zZiD%{fXp2Kwbj0OF_33-A&W&1E#!Z^f{J6+;jB}_s%VfSML zlgkpD$0>=OQGnWIS&e=Q`P}aXM4L~3=Pu!83hmsi|0Yifws(|adQB=i&KG(s8ih+* zRKD0Udu$IiN{|Ni5l`N|uR(FM2oaOxLH`Gp)gArT30v_L{yZC8u{9-x@Sog8dM zij5*`>)Me3$%%Ab5~^Uz$VoKV#9d@{9C7E$(HlO`iShDjfE zy$`k$Ow)TFfnq3j?gkLgdqN2CvN23;gYWCAoq-9p-&p8(Y|4^P&_nN#G8)#hv)l30 zBG}m5S!p8MzUN0P=-llx7!4Uo1Kn-H-_@4oVf!|_-l%krQJ~k+B8~EC0*WrZj}u4lm%IVs1`K-^ z8C#7@-eJk>HaBYIEo~leIX4AYSJ8_3Izd2x1LS~qoGC1`bH1`hQ%E3jv&b_UzJy zQxa#c!*`(NQB&$7jc%flRp{ z_z7R3bKIt7E5Rp)0bdJEP@Mf|< zbenSt=IyY*|2tz!!fJ=~mF9+G2`WCGZOhltf1aN`Zer57FE(jRRM{a@IYP*%;7-T+ z8g(`CD9ttv4nPTasV}T})~ZDo`zCmYJ^o4ht9?fO{fNb`O=qkS)N@`a2s0tlG#Z!A z`?XbFduc4?j_La#eb0F`RSn0`9RvMuNd<)cGQi|L_!?+p={P}6>>Rw=!4HX{Plq2A zr(A^F0=@j*n)W_iD4?gPG;6x%^%aBq&VpIt`YOT0DNzGaIuF$|VbV&>hNBgcfU*t& z0{eXsf2eR;4ECs-^yi4zL4RN5q&)eaiZPx_VtuCiIOH0KPOa7hjSltdL0Gh>^h;8r zqbDKt|DMQPQ>r`&m|sUNR3GdQbSVX)QW)KS!vn^9zTe1ebK^{n!2&hLWv z?AnhXtark}>BDt5XJS@o57nL9c&azagJ#9lN(kC}Ld>pWfsWX_At8nSRk8g~YxHMI zH>}&A;vW8N^0+yMDQP9U);)OADz9jnR>}bd#VrlF&^aMSfdhH7g>C=-y85yrpP^Xh zI|q@TW^nBkr0e42?XF{x4sU9R%y}M@tA4iKt>(5ZHH+L$zDuBkf7OBD!}wTKtgK$X z5aa^N+LTk7t%uQ|qT64t9nHV1NYN^Ed-I~TREhIo<#22vs=3|=ZD1Kc zQ>xfm00_h=6{mX32ERg3gFbA&sO3~FIkV9#Y44*xtU2DtBq>QhZYV$DZ_&)B9oIQ5 z#0@8tkfqmnXCiB$a52jAgA^#2%iGx`$T2<;Wn79h^zP{CP1N<=gm^?+IBpP75oFt8 z)0C*_i9s9Nic}?~w*q~19xmEWSHk?_R_<+&si;S3$UYs?x%>cZs1h`A#v?Fuw1%f7 zlv$-x2QU=zQo#FHZfun`NF~AL{1`B0!PUO@m9D-vj@aVf+O7lZS)?Ehcg6GfR^DNpYJ26H_N4 z?lsrVY`4X%8#4EsS%DEkUD)+8B>G;CPh@S(w+o**X}E3^GQg(*GSC}x);eF;fR@|@I*YD zMZIWj@eyP`ac2@;oJ~{bBa~w8l-hr8@j=(JkQ`~*(U?;O+JPLv^J?7L=1LG|GL0&H zHzpEuJG+4QlKo3!!`kRVJ+oAb^NzqFYD|K@!3#rb|A%CK+Cz_vpu*0(Hj#S2rl`J^ zz1rK+L{hYlcZL03SF;7xCS?ki7sDGwV@a%kO9Dd*8Fyl^k3LEq0*TSAXLYn|jqP0? zpEfofmN1N*KJ4qMt87RYR0J5`HkREBR>wEEc}Q^2Y@4?_2=qE;} zG;2EbHI*aM{R56rlLq2cBa={ZA2ly0zh$}CYp#cmO>p66RIhbq%^qJ=MXQ?1wJODp zr#hMnZi2ms(?bAZ(5LX$^~)(zAjy98Bx8 z{8%nzUoOpcFt*gv`szHb_$!v_S+cpU|9JffD=-9!ZBSz<#;q?Dhuh8m&>l$;&p}BN zXF`l+5~V&d!~+{5_%iNe9xZ{!FFWIprzFi+g2AJDh%fRdt*u+Egz=Lz;6tP*QJS{k zwMsJyAnVh$Y47)PUG;Zl0YM9I-iC2(kS3$@W(|yqffwhag*FW=t6YDt5FR3ZT`*mV zG?17ORs)CN>CU)4me2RVWXnwH?N}T$NTPtM1RnNEC8hB%2+iYM zC;S5kG&VO#^_-le-)#O)GHOS5TCz`Fu26TnmiElSUrv}ZDL<4x`j=wd$d&;thix$^ zl_3w*HHvIfET-byBw4*FO$>21UaU4)p4{o{zd2lS4*!F_w+@SP?e|A9krI`XUec|! zk|NzX^w6D(bd9KhfP$m~0@5&aH;BZL(%s#I1JW>_d;G2SUVE+g-S6+5>+Ey(+2>mS zaOpEM&-2{h`&;+tTiCFjLiqMuH>JDdLE0aRAzSWQyv(Xcc_QV`lEhuM7U8UEqousS zN_dHX64?B9u(szp-XOkj?SFv0I7zB2opBwPKRgf+5Xz6+o1z?XIg9o%?+bxp6l^SPLkI13)L%ttBrpS4h0`OlAS*T zb#+lcu?A+r-JLr%G>5)K5PRS4f~!!L@*fcFgTv&WShhv`F6f^)s z(4KbQzo5o!5R4%0Csw%lL6q^SF!;9eo`zjc4G!ndBqjeE7VW&(NjQvY!27E+&Yxn-7&Z!2DcG`_tD)$68*AF)$U!1J zio{>4f57mdy-`!~nlxll9`}0W%6sBaey;h`+kiBt+kMeH5n0f80}_>ueV@bSXrC6a zw|(mA*_Ik{b=Jo(M>P#A(}l)~M3aCR# zlI#^GTykD^2g6k97(T*~{tw>%6PNzeYyW-WpS8h%DaCdm@h@{YdY-^@7~?~Vu?Ta; zz}{$T>`;wp1lyQpYIdCE^6@vdKWusM6HD&}5QX6y0U15g4SwS63x#erkb+^Le+fMe zc6Ec_AiMw}9$uOthjYR4>d#9N?oeX@z=!D>|1_F9ev9(i^iPMr#=v zSER!7O9tF=*P)p&SB4dDVRAD*6VZnkwvIu}U9`&7bq17v9B5VCFi#*)7qD;>-)W}0 zZH99dgD^>Aq`BcQv4Q~uq=Ki_+{ZFDJMkGfP)eA)Bhg5YmqE7jwRtL%E zr3PUbScHsge=`)BJv;KTncT19LtGwnIS(F75?gVRKu)ej!gBnEWInGQR>|eZd~z9p zocKUS|0H+WNe$IUHwSyvkeqo*J&yTk9!)Vp!55vQ3wu9^h`Hl!N*^AD+kDJrQ+UX5 zM-1Z^JSjXmVc)w_`u$yH)!MT|nzgA?S$xPts^s-9F`5S3Rs96_E_3rp(>$AHsYsek z>ev@15^Laha(){VNf8rwmR7e_zRaE-I!I|YhkWpMsz2QLKz>b=ez+wf`jPshKnCvA zNOQKk@YzEeK;6Ub?MB30`A0+llWl^X1{Q&7jpnMHDyyw;NH!&WqBdgQmcXnYRUVD> zj9c{ixS#WF2yavZE+hiXka}d}n|(rET>NyWAbln&;`P*z^2NAdLe*Lxjec|17+ZZ` zWl@8U@;Bn8<;_?k;TW5B3+XpjD_Ce%^lXA;vOc$<7b#NV@64%_>e|l6L(a+& z`!$@Hcl_oxOt*$Y*h14q?bgaqtcxOHXV5EwYX-2^h}n{uo^L{nWA$O&{YGJxuq*i7 zLmGpU^<_`I+2l-!`_;|&WHceFSD(FzY`)q}@#1n0_*MTEO-*$@by29{J_ItN%&824 zC>4oHD@!3Q6TDVq;ym0L<3C2pGb92rTbD_!^$E{B{1i)FHWA%f{DP7~zG`(N_E1-! z50NwJbRe}XY%p>YaB-%&*+(@n9P6_DzQOnHPVYCZ0(d=bxZx zNKp;T&4U+&5$e@GI~kSR($C@*dHP1eMm>L#Ygq~ZolcQzU#^7?&4q+4ldBcxx4sQ`^I~05 zD!~?@DZ~aOE0&&1+EA@=G5D5PbEf~n!-~bE-LguW+0G{@!>_Kkp#fMl~nY&w=cQWk#>VS}Fz3aC&HW52*KA+zb!Ijv@#()=C(u7W-MV+pC6akLB_&36 zncEega0HF@Sw7&8$A{RnkC^ANJ&S7H`?~#Rhcc=*R(~=U{BDCDY#+w(ZEkrG?lW!} z%IO#***P3Yl6Z(y+c#O z`f&Qk$TNh9(tuJ3%gxt$mw#CW**U*}CSgUl6^}WqUB{X6x+M{t@aJC64W02bQ$;+_ zs@I?0T>|ucX&2fRQI(PXGLDw7H|_4yJBK%L(Xm=Nj2xTJrrZOFMyY_z%$8W|uGr#S z!?SXR*4}bZsORnObTA`KZ{Hozs`#Q=vC2KmrP3RhDeZHz9h*#6wj_Z_1irVqJAge$ zhe0RCjAX<%S2if);+okXsoV8DXgp|L@K<2E@8KZY8$T(WNKNe|T$HnAp7w2?DH|SQ z6*x;C%Xn!Z{w@gvEvNv=LPjJRbNfp7f1TpC29fjMoIvSfoX~3sm#=r~FkVCy% zx5Q}DCr5%EVtXe<)vQOV-iLE0hu^$|$a70#r}n}5;#P}>R&BSsWI#rT!gn>zI(S{P zER}j3Md&Z(C8wO!AQ%BfI>`Lkx|pb`H(o_q5bz>!~WC2YOEi0YGk^`zZ!}j+%}Hh<&_eey2ImB{E1~PFU8>Y?CL(O^w1X zLAfQSbyz|tI$Vko%ESAOptr3PqsM#CGtkDaw9S37B%)wO=#*sfQ83s*TgC>T{V z?>Mab5H@;<`iljWMN8N5-qoeczN@;#r-ITFc|8n&-46{0P4f`TO)fgV!6yVW4QocR z{qj@P=?zsgoHu2jY3jUb1*zj=lGp)WkWaRV0Z~z6g?xwxBSh#i=JEG1I!<|5{Gphs zD-A`W!;jt0@Xf7@JSjHmoBhr1Hy4$Y9*;!DZ)Sd;lBIJxF^dhGTZ*-%Z9CAQ+*Q-^;gGWy72ocnLI> z!>@&yA972{GbCg5Pe1m=Mcri5M6LB4b<6nKQn^Q<6plR8%G^{sZyhhYG;su{m>BN) z^pHFWpECWiZ5lhV$@@3y81GEjk>+9-8c^b)sazhzXswsX@Mdu*`~fl0z;7lg5gu-bD=oXCfwfgk9kZ0) z1um2@cSrnHRYxa7YVUNJifUgZg|1z07H&_P9HVv#-66({Q-QvkfWDhDNGtO>ECds6 z8sZyx9;gpl2*ON&3fZ3_89v^$OhXKfS|3pz@VjK(N|VGD$)IC_T>52{)qCflYnmhF zGnDGn7bW8I14?!*r`}F&vv&?08P@pD-uEew_31w2ZbFe;77fR|xaclF+AA>!-YZwZ z?(E_E+!7*FIIptS6PbZ%tLf7Q3*Oq@rSgmr|Ne1*Zbqm}wO-%27Jl|jJzsY9gG>tj z9B`5g6B5!&({L5!nBZ`D0-K$ko#(7wXlTf^H2y8gyBx@Ea1LOI!ooNJ28A%L`zwV_ zov6C*)v@02mCaK*fuC49V~)@!+2Z~9+HL;pM66KxYF=Y6vCZ~{)xv4W!NXGyZKB%| z;ii01a*_4>s+U0wd^B~ANqEfVJn`hx)XYWQ>;Ba<1AptI=jNID4llke=568b%oHf= zuLmjksyt$S7L%_=i;webu;dGj7fr>LhBko-)Y4v&tq@9CA$;ygko`6*Jc6ivezry_ zYotX(+K+f#xhlyHPQgHS!B;FpxVDZtKoB1Zc8b3@rgPzoS2;i?_wK;+pZ78`3L^Kv zA%*biwdgV*e_1T$ZQ#W1An^^8#W#IZa}{%b{#@qdB-&DTbe+iEk>k+X-YKaf4zX6b zx-u27u+20-b<(4(F=kfwQ0W`@Vs1uWR?;0i?>7v3^lmyb_?G}XkG%3#K$}xerTeQ5 zg1(ivL9rL;A@*a->aRj-;`c6Dq;`2Zh%h6InRsg?w8bla2aw| z$(uVHD-aAM<{bi2&4AkHiNY=#Ll72yxVP`>OmaddeGC?ZbPW5=ySFiFg}VXvv8wN8 z>r_E`Rd9FHdp*Az(W~RN=a089hQc#?mf)s*2YkXW%;3K{ywyl$r_&*SWw?oP@j@cN zpAVuQ6El&+!fDYyZn7rMDrK`;5BgMPYY%U(_X6)hSy}7yh(=5N7gbd?x)`j|R))c) zpsUZob5kRV8|{1>cD#4WBDZ1D4ZHPhhuZV4PBWiQl80uWw^ax_&3%HH963#8>bHdk zv&*yG(Ok}rWHUD*x4e28*jgN6_R2b)nj?Ilx@sT6Vjp9-mUme#k~L@SUP#e{YO|Js zUQTHmCXvzgTzIa&O-8aU{R_oZeOXI2Xb4bkI-9ETbDZ9kPMu|^*2@uYZiW4kc^1&@ zavw@pGl4dK6&YiGKX-BGq2W*=yZDq5Mu-S2FO4EF@LLu|E3(m@R-kDy_P%z{std`4 zZ#&fA*kZ57FbOK{ugDx#bQ~W7FYK^jhsUoZcxAdr=~r+b&@{T=AZ6AK!j2JzrEWds*F` z9(jxtzplJV_?~(Vb#@<`ygoa(ot)lnX`cCtTW8Ft@2MkwVs@%WTzItbO;S(u!XT!| z$%l4>QW`x^rc;2hatdPiM8utC`_BujKJ`u7-A=J^e8@9gr|8=|HFY4UGLYUk$ba1> z%yu=kNDuX1`*AOU7N~wyc-u`^8U?Bq9tR<3h3kq1xy-$GdxxrzD!)%d-o2luEb_40 z^NDs@v!A)@4E^|R)iMDNH-mrf7RhhLx{m<-6@Fg|#_b%JME`#4lh9GsbL6*=6T*p> zW0tjojFWX)qVHP?GvH2Om0UjyE1w zQHv`c89N?a7FU zDJ07Lq&$vIrKOOlC7amyapVD-gx!CJ# zcwVPnMy?mwHBVH``_b13cKdxcU+i&jpJG5%tV^*n5sxCNY)?K8J^=S=`5`gh0v^|2M#s;BqeO#=LB(D840x*`O*T{SHU#Pb>+bP5%laZ_WKX zm^SbXm6shItdGSr>oJ2G>#yR-E29L|(O6hp<<4q=11T(nAIBj~OUt_ZC zjDHUOw{!_qLa1q3@(|zck{*LZ=4XD+QWUn!$xE_bfO20qcQ@gHtNyr(0>sK3>x8Z` zwKO}<22R!x5rd(rdN;r3raKbEbXmHNHor?y#3ALugNQiD*<@xvaU{niq5L7z|3LL* z@D>ruOJa|YKp#h{Z&pptOM<>rfo!G69ju%7xnwxyTSpXr_58+_N)a+8cjg|qjz>C! zE!MxjhBl4w66lb!S_hnYwmWuSzd^wd9!0E=(*kFB$W3EDj%Ma7RJbQJrHlqQUIw#pa+$X zy+tR_Fd$><$MTgiejB9n!ZUu?N&i>?2B+*tp_Z1iP0kZ%CpZH~`(8vm3Y{XEsw_C7 zQSgOgwf0-G6z?Bzvd-sNedsmD(n9U=Q-(bUKU1uAUsbe5`XS28=&p6|I2;-~S!yR3 zi$3Ty<+)?d9w>51G1N_DMJ?PQEB|9r|CRjHMD^aFa6`4Fe>#kL#1B7C-G{)q!eHO z!w@uVqHCt1HRF^z1@7^mDI+{B>08ZIG;(uLTbc}x0=2an^5nPJxEamOFD_wpm^X4Z zapvOM1o^juImb7Cy;TdXs)olx6E1h#BlzFE;+L`A%nBtlyO;BLA&u1JaWz(o8}elY zAoU-Wp8tTtjb?YzI^tyBi})N#v3qc60FyUGFwh#lr42q6WE{gdIGr$D!|nd~*Voes zS>9GgFnGTit-|1~=nmB{eP`b;KpZ`tFdKGS1w>nGrv^2CF19lL@RN*!$TxN}Fdw5N z{*69!7<)uoQB*=0BhllYK{TW_v$s_OSLt(4sk{_<|4sUO1YL7}oUuE{#` z5U8HMeofb(oQlLmp_ok$C=6WzG(2@jtbCGsC@l2Go)t?a@+9j8+g+D(0MC_myd1^j z9KnN5lINmBKlv278aMnaORif7LyOlNqbXyI&&u;LE8%WhTmuPgYCGryX7EOs)&J6} zVvZ@t$4{FMOEZ3A6|{im$~^yl&Hs?bKg6^Dr1HqWXKqS`D<8?9tfZvDeB|tg;AQm3 z&5-FI^0L1xzl6f(ZeednT@_-MyfY2n4q7L^Bx~aKBbFTBjUIWCVcaR1^0n>g4nI}F zWsPp*h!-6w-uf+yb*_BKN9xOHphUQm!Jj{zpno4+{Is#}m7sw83BqK|tQb~c<=x{b z>Zip=;E6lf!lPSKUSt5Y-OPKx(2;iQt6{G=)3DVY(&>(2O>URUfSuO7F z_f2-^7FztA3sxGg)1>Thi_iAZg|oy{M(B$>ODq0HPjj=Y3sv;7(+f7%CS&4*=Nn&k3q5^6N}r%c)S#|Awy2Lt(k zsTBU;>wjYO|C1LwZ!f!r^IJzwsNW_ot1B6V!|S6|f3;~QZ!9~mXcCMxY}^hqYMA&= zC~Bqiw3Vflcc^`-t6Vpsj4B6ruYyF8N?RzV(-C7ksXV@&Pw6I=VQU>&Qkn}m@o2ES zgz+`GRWsjQEi!!TCXYWz61fr`j|+!qD3COO`BQ%XLhgS_^d0?(<9cMonZ6b5h)ES_ zLm_k6JhAwXeRO3N;InKD=gfjf+I54TA{IZf;K!ulM-<^#3nzL zT&3iQrXM$2#*#2N1D?^xL!2%d7N`n7f6qC#u}` z>g?7GjmWZb7q+>xLU>Bg_DpwNL7N5TrQ~hhGU`}^fV6MsD|{pcdLI#1_aZ};3Ra`Z z-`ep=Sk{}N!Gl?8MbJc=zQ&zkWX9M@=uY=g;-N=oi}tcrR$ixL&wK`&p5{&!vrI{g z&NZk|x8^&z+(^R1m2e0rZXZDC`lnE5i}%|v0#RAfD<0jo^{daFoov$mib@_p$ltnu zWGmHFTUhcEIR7!?7JEWVn0$@I^~d+eZP{jSBEZP8Z+IJ=c$^n)aW!|kQpM9oK*LIM zWYo>K{RY%SKgZ(}k_srT2rTxj96Ok{!VZq%k6zduavgA_9P83)DA2w+0 zT-22dk}!8B+-#UFJG{Q1Tt+W8+U+p+BSQMn^W0Fp%_?m#-(}&FXUQ|}2VK7Tc;tR# zwT!eP9?UI0SRa%T*iH_}JW<^j=QO@KI89t$Q73MyKDP4A-XOHwUWq{3 z+;J>|8EPB@<##1^CArPOmyTqE4rCHHZq4AL-oDl54_UdH+@C}#2bY(39)CDS`)+0hts^sRN; z#W%d!-PKd9x@T!~Z*FF%0s6LmL>kIylG>@!tWF|-S>HAbF`V9xs*Tmgz{r8LtL8QS zG_tjI&z+Zr&OBB3a#049+f}XnHO&>NoU&oLnR|mUN(K6CJa3S<{B&n)?Zd?!*aK{k zV237irRiL!FpdFfr+XvccQ~6B6%EP`NvQpGNGq!IE6cwOYYWVH?zxSeNDt{q$V#Z+ zkyH>{%$%W6R|JxmS5ixM^89?L9qE|ePfXdA$hbYSeP@%2)bK!2}}Nf}>2eI%#l)pjtf z-To5Cox*sNc$s*5OSd1GOyEJ;-}T{W^G~eaD)^ar87ulxa`jfyQBynVhjQ_^pgOEF z4hBM%IB2>=`(qeNeBO2cSOkr8E(R4kcg{McnBAJu$QGK1c&tpNOXiPR8^!PH|Bb9N(t;5Vx|(dn@83 znS^TfMO94W$r-b9-;`Xo$>{GRmjzIB7zY3RA9}j2FkV4aH_{Iv3j$wn`vupz%+YNL zn+a|;%t`2dif}TswM==N9!GV-Ngkdc6S#S)t>Xr^MwdJ`CIE)= zSsZH1&&-QoJ)rb=(~Je+5IvUaneW5g;n!Log5)tK;O*UGbl zVO9t~OMZxDcD`lg<0!heG4OcH?|62W?#%mmTNe?@x|)y5JOrQZD0OMduVxz-&Tb_k z-gM*>-Qxe8Kz3u4j8uRI$p6}2U%}o*^Le|+n6627P&8}98Mf8@Z-u!sQ6MkFYM?E& zCrL^DeIGRkokFm*P`p~;G6tcc6#KRXGV@W`^shG?r!kS{nRiU2p?NN=++O&n$`N5q zwP_s|EbF}03b@h*M@B2_nfpBqZ9Ro9kts`brtW95zMxH27fX*i4 z)a>UKXiG%OIFvSI){lQ;{M=!JO6r7S`fN;lp#PGJ{l@p2=}H}HW2JCZ1ytm@=4dIj zrTt1rBhXv-tq;DfZ*qN^NwTlsAdPU@-fokjWu%gxO?Xb7nbD!vNtZ6lZ%9Z2;S1EN z*Pz!mngwqhSjIA%&1U@+ci`(_!3m8u-9u2$fu$RPx&oBx6U=$F9f7GQBGfWS}-Cbsc_z7xw?m&q4^aQwAMKCY1N1(%3IB2q#+y4`5tPgOf&sis` z5AEwFc%c%EZUigcnwwP(hwU%rHf_3!AM9i77kbb4IcO?I4Qd87Q-5L=C4)^mI*MLO zIX~WXK20LL@CBxBtf@YQ3cM3S6E?gK+rl_M4HwJDYd^8Xgc8x&k|3$*7jE+RTm4O| zzxnEK8T?x_{H;a*Q;S2HvQ%y%PbQ--^2V*bv|Gi@+E{}lV4_*W^S5+7f5IVPl{7c% ziX0r@X&lU{JM?D0w^JS)MZ@bXeAgDlIOI=z=lX+EFi`S`Ij(y2&e41k%#O>0k8O3 zG&8VpN!(4}acNJzK=F(L=A9aT2NwA)LEB~?ST{HZ6*ywT^~M-ei?OA^QVwY~q1-b8 zcu4RQ>j?%D`O~NU_L8T|Abmg|)FU)w&_m;&BSZGb4T7hj1NibsFlcfY-0MkEQ4pLY zod5mp-&_n?NO5(}fbGXTL>YZw8Jz|@VG{pU&}Q^+|EreVNLm<_!IAuMiRDY+sQk@` zWL1a3n7jZ@SlAFOCj~7Z@q5|azx(enoBpv$LZPhQjbvpTV%Fd6tPTt#HpMV*LgKkm z;)T>ttUV>zue!Lm=+;>4Nl#m~2RcD6S9EFE8K@@F;CniMrF%L#Dk#--TVZ@kd9$)m zA&IM5C9`8-g!(shx=r5|)bnFN$dPBGnirW+2v-yHlvbbW@=&^QkS0xopg=>BeaZm_ zXr%p}mab;ye7 zlVj~N&%9YTa$#P6be!z#cwqC=9A{~Jc8`yAm%W{rQZyD%Wvwlr9enhjPGVo&C?&2o zOsHLXc4qCo(`9GJVG(<2#xhUO+K+3MG02e@xc8Dpdv*LzeYH)^}%%&4%nBDKX+u9PL(F8`XMSy8VirRFH|9%W83s0y7! zo)xRj(RC)<4Ldqt*KPfXd*Ml0klSouqoh}(0bKa$oaoqKFWt@w+V*{`y!5W<(CYw$ zv!dvNp5>=85SR1@5+>NS`rnkB7k$7)qpPzIGjbv(VcR|!@`Wm zbx?h|1j<=oQiCh+dSYvz<3s7FF)}3oIWm_)ThmM$fem&GGO~9CZH;h;EgEh|Tx{oI zpyAtRzYAppOVdtg1?>TG(>Vz@xVRYxK6dk^B`c2gV?Hlxly=@(p&HlPp^`Pxa(vFG zR6(SMd{>}6Y9NrAyL>4IvSQ&87&yvqw=*PwoAW=*g(7h`s+OFSDz8;Dj zZi@|n*(IpwQ4H+EP7@k4#l z6i|ZR*Z^|o{oZ0&wf#J|!&myNtLziP$T|a8q)Hu{Ixu^j+mZa}8Yd%(p@GmP8M`sZ zbxb0sv?w1=dOX+Fxfh5Mfp)^FL#zE^? z;UJp!L!YWLi?>~T)L`qRJbtB{HqF+IHlpX-_(akY7-LnZXad@h)#aUKfg|MN57u`@ zJc|M{f|uUg<_s+3!PBC&uhwwfOt;5`aHL_sD~r({SWobZ^HX2*to4BratsboF;$>Fx$B{3>E{HKENpc9n&jRWg8qT149(7|140mi;csT< zU(gvjxH^Xc4%Pjxj3JDrjw|z&5+FljkJj?!K3$%xN0rR_U z9u|5}R(4hxSSTyCH{|v7>f4+Fy10zYj_OaUlNB&F}wv z-$%0UOGZE?0`UBjX$6`O;bYlMH~|n$fv3qY*&~JEHMb3ar_8XS9pqT?Hhg) zGG0?}#Oyn0>N4eFw=-dv%VHGqd@0<($qas-Cn}rW*jQ60t6=cWm-kE!mV?ZRV0&co z=Fyyn7%fW=`el;1hLAYOybX011X%t0LTT%yP=wy>7CX)Ip zTPurI4JIJ@W*3p_yt7aX z-QhghsPHsjr{Oj&3byej3#*rI1o)eU`RX6pSxbQAP`};nYFZiE$1>eQ%WW&Sj6q*1 zhGw@CAlRI6%+kl`J+UQPKjQ!wCj#px(T z!Fe(XjI%TdtsE9;a)`JJLrX(ak{&7Gg zqpkZAB6 z=F{eMA=|(-%wNAg9-ano6yFgQQ4yan>3}q?n*#Ao<^5fK{KMA}ScRImF2^^fm}@m{ zeR!P~amaw_l=+$Y_b(0%9%}_r4~=`t3T@=L6DTMHe1-aL&0Ra_O(@;l8&Hc0 z#AVRu?;IG+jh4SUl0JXEAiiUmDN^_08bwBP3aiZL(#%3DS_5uy*MUOt=O2sv!@El9&;qBrtrOcCiw(Bw5T6$UfX+iJt4sriCFPjj}VF28Te2?Tbx zUk4%&kyPhobmW(&*5V+wv&*r_&It((!sFn1(d8gfLW{{(ll`|A`gQ_*{DXK+DmznF zj}`sZYePAsavzv}Vu4JxU|=UdvGS;C4k3s#GNYkgaFT;Zre?Y@;|*X`bH&>>nufud zg#q+#!n7>fn)}OzO%gv}ezp8(`7c7QL@hin)@YhwJ_QDP(;4OMd_V+xjdB0psOji` zd*SuL_X=13dlo1Jxy)6rQn_be8k)+*#efg=S1_sJFW}N&|Ns6+_^poi<-2S{5nGJ( z?M=og5scIDbM(I@-|hw!Qgd$-crcEub{V=h8g<)St1hAM)h*KOa6?1LWAjUJL<&rO zSh2#uORm$M@RnLnK$~kdcM|ZOmh${YLZY>ER$uYcYw6s01Hq-wKYP<^;;qF}L&^+% zO1!^1pA>zsp|Pd4uU5#k5AT~=+b7AY=# zjZ@2C2(GtyF;1qPr0B|q0B6`Fz%J<}-|g-bO~XEU?*p4C(CO*GE3It2sg*{@QVod0MIGR%zi!mEWE7hd9{L4vJw)% zPhTymEqKa}|KLtS{X5nv#TUNA>b>mTQTUeLQcYQj2+~-LhYC44*w-Q0lgYC`=+iNS zKM=h?7E9~)COj*Y%Hr$;|Fui4>Xt-=gjqqML9we@?L&BCAr@Y-cnlAGid=<%%yl>i zQO}_AYe@Hh(QU8EA>D%&qEd0W z_Zjj@K|8!uT1yYa7uAY{O3S;gFvo>ht*WGQa)v2>3`nOs7Z-YdfKJ^ML zM~f;)Xf#?z+>^bO%;4xx8kw%gpcMk-g7;zpb+km-MZKUIc?_K(p{%N_Bl5PYYFwL` zdg(ihZKt*aPtc#P-0WUzhv6u4GBmX=r=tdYwbzus-FqXG906)cijHmjJ{a%kjnke| zYQn}ai3`68D}r39n2nu)8XtDgrAk*HYukYq;}5=0TiJz$3btEjpS80yZnL`3SX2}E z7=~Sl0?*wI495*Qh8ll2cR05>!JhD^f7D~mmMUf8l# zDUOM13f1{hCNpWE2F{-nUx#5#$cA_iYEJ)^?VfOsgh?tIdz>k~yLRy3XykIINa8=Y znZYG*XGp)ddOdgaa2afz7HGkW?DkDDRB4?U$2p``+6k@Bd-f4$GKtq9_@1(gEerb* zzV4d0zNamnm4b*HZ~e14FB;p#ub4*kWMAguiRZ`!jTXN;J1AQ%ZmP5fMWwj*t0AsI z{D~N4imuVje@2W%k|;Ui4-V-J+Dmd+3F7yvyvOvGgQP<*@}P zup_aksZ~`(VK>0TB96=UgZM{mDxvrAk8YDutT1kmIY-@pE{}Qz%NQ@Ipi!eL1`92 z9n>~xqEXFp_WW*)n&jmU8-C4%$`^dmMCvTI)R^(`EsYjVyDJxal8(r4sHvoa>Zdd7 zXS}qkZzfAktEjID*b9b*(@VUa*6sYh-#+prUPTzW!DBC%LC;qhxh1wWBXzv9&%88d zc@9II>zyP?h&<#hlZ|NK-Z>(U_aq^)tXb@rM0fvmYJy!o?0fgY070ymEU@%Nj#PN65vIt@Y#o_1;uPR z4`PV4Iil4x;-M=UZ`m(X(ci+H=9!>7HBamM>V=~{9c$+n4M69PB2%Q{b=e*GIzYtm zl4eHYl_1WOItXHvmr0x;s`rju)!=6S4WK4yoe(F~Lm-u9rD@~>CuEkXsM7t=o&*v< znKH98ggv1-h!iRC9sIPTjB9RD4!Kp4mT%^!ix+fd#wY(L*7ZgQw>3itf<9E$vOiZk z=ipSawk6z~Z9`;Neq|?{Xx31=9oaH-=e^RC)qtb>a<+Ch*8@s#sG^#8l z(#qHknRjKyqr>n+=eM=K!$6}4Ca7plbrbhW{BmB^(5Z(n7GF|q=0JQa?sPJYK=7SN z<@Nc*7#@p)&hThJvVVer{zqI`_c(5D5Ez5{25#)^*Sj#^uBfa$YhHamAt7u0{tVxd zQKdE^rL?V$U#b>c=w9G7nivB{Wd^Ll)yBid^{YsV{7p|)03eE3I&!}4=08=0M* zL~Oh0bg1)QIW~k%>((EL-js>LvHU!y8kyOnd8{|reKY%ZIbbiG3%pt5ZiB^}>nT@8 zr-q(6am1~qBFvb8nbZFXyf5xd@%$+if3zt;q4$`@W-mXsvrG$YfhbQeRYq)$a$x{$-Vha z_9}>BTaEw5O8GL`ZjD~BhWaLnub{X{&5A8iBQYXUAJ9~vV8fl z7pfLWptPzVthR?S$&tDo5#Q@$NR(kXOl&W%^#!TieIY)a_<(i+IJBt^dQix~EBYKu zOF?aIP@Cs?3?AqC`|n&&Dq%|t zU%}Llu4r@>A-D;7-+#E%pKkqR&dANj2`)6#SH1Us$1x;W&zQNIo#7?P`{s=9YxG+0 z(W#tp4%7D=k&(Pd)Ke3XsKxwA1-T&&;>2us} zfOe0kJ>SU%0fS#8TOxNpnY4iIS7!g7$?(>)Y0Wkg3{;*>`8`GA@7w%Mo4@(yZ(;ab zQT)m+`~Rg9wGOQle^}2S9};{JnpP=+p25KwM{=G=9m-in-BPfOSjZdL6fed&x{-Q3 zQl;y@Zq1IL>&Md;nIA4aoN1t#{*nvlIs$`-X0Fa6zfDXIvM=~tc`lWkt<3KvqtteJ zT`kYS$r{OuenGeodyL(Wxfg|U-k!aMJBOBmeS>=@9cV=>FW>mIgLN>XPjIKfRiRs5 z{*EDE#MQy})wYe1U#&nQ#xEcr$9bfUq7WY^Ysg{KGT!gvbTdM=_BCY&gYkd(aEq;OoN8u-QRrx zWj)w2e#+hqY|8*(yBlNw0ZMcoxqlALg{{1T^_TwBXB7SD8u3liCQze?nJYi`bL_tb zSH-wsGIxBL1ebO6H67XDIkt70W*W*&BOTfgBof-;m(GP`Z>F|}5Ucgk=h{q|CvQ`z z`GM+TrAB(@fX*?~GCux?(}et(~bGCTXL8|pBr`mfh2!& z!v5qs{i!ma)jex}mXeSw@s+t#Lw6bPK(i=^S3_=6m*aG;#&C{)f<>npV~{D;3#@gT z9PXS$r1m;gJ%~4hnK&w1-+}&4Kr%vPssgm)Y zy36eKnwCC5@C?h6xbrd^Fc7hIyjie#a)pKdJt1I=m*T%~@Sk4n50CXffAt#%yp?AL zg{<~Awfkj0c%}mu+2MKg@@0Zq%acDU4%B5ALbEDUur)6$(q(5tn}2&sfI$h${`K1r zGJCr>*}6;d5nqH%82rTYZw`&}DtYRxyi{GK^l$fIyUVRCb_oXTx4&!n_<6Wu$P@QN>l0l5zpb zh}b0qCDAKn=>LPgw~mUsUHio`FbGjXBu83Gq#Hz}8AoDhL;>j#grONl0i`ddspkV$Q2p`?{xEd!c3wGD?y1cvA({&KI2@6c z7R`~`i<=JR{KWY=uR7a9WaV#*`N`8`z^*B~$F2>dXrH-unIuk6cod~sDfafte@zsO zX;L&_W;cFr$e8gux=AUsyqxHi0-F>IsI>?hW`|ipZ{}-e8eIdnbqXgsKA?F zR|t#rt5Ez_yzn?h>5HWOx0X%d*{$v*l&X^&P@N|0VZUPe^gU-?ND2p|CT8lH$`uo7~@8T)_gIcKqOGKnhssh^)rLjy49 z?Z4@O?u_Cixw2yti}j9;VuXOL-I};R6s}qQGUnjB1qYM(P2sIwdpKV)JA{VMmiNlQ zJC&U|11uQrf22bO<)1|*Ykl`72y0!THbZM51b)>ymXlkkbSFdg-fL>zH)K5b>DA~F zG4G3SkhR1;98aLXG+yES`iJ}K!YdqXaAB6wuGL4_NI|8-I1~=JEk6$nyPC@EWcF~0 zNrOquK9gg|C}#db_;>V@?OtNii7p5TcUwta^ty6;_zgg$k;0C$0;Va4KdWh}TAGoD zI`l&uuP@O?-%!)#FdK8@g%G9x~j(381nL1ZPB5ZQX0G^*R9P;!)mP~dMvUk zPT5+wiL}ANFIyNV$}dlDCyH4P^*!vDj$7jWSDf%~Fjcz$ZKjGE_Xy=G)bXwo6`Y^U zgS16O3I1q7I4O?T(cu{eoCEpA>+)FfyAjo~tLfUUYILmnc1?U%?wpsu=k(1h-Vf~_ zZslr|unBKkobT^_Pp-!8BTw)aNXyp~JwL~ai$YuUOL?e}o-=5dtklNAhJfY{YThgF zEyUiO*5z1;(C39r&>%HlVL(WV_{3p-(bz08zofm*GN!IInKw%sG(P901AWs3#AvZe z%|!q>YkLB@y)H<8s*v&b+RtMy@gb0yH*1INk3;^gw)FSUes9Qc3i)q!*1vh-H!u9= zh2Ole|39ZFUpAf?Z%}{8qIScp3)TOqJi<1vA;HKBiCVWX)hIe;dk_L6uU!K+!5Rv~ zx&{ru)v+IR*eG*RnUbcYJllfOVgXLQKUqW13}=?h zHa1F^R$;v86rh1A-mKZh*Vzvx+r$`i?Mn39?sBVtdjbpaU-}mQ+^xX+rk&u= zKe+>oU)GdMCoH=^#tujH`YBK9Pmj4Fvd$~O3Dz~dD6`eF9Qf=9lq6YByQx#W;kMxR zJp5nT&~gkJo&-)#Zo4;?DqP3c#OinLwFPgN6GA9$$;(q=S=bXx!rO(Pcp(1eU+9ehhrw z3|gL5utb%7o_r%N9_jX|KQv8QC&SNf|rc;IrLz8oF{e%u*owV zmg(HqRRRh28>N{nVL>Tw8zRfO0weAL=6OY>#42h70|V_TCqG726+?-WO#`Yd0JXea zgUxGhA@dLuh^5B-_SIG~V=lP<`(X;PfhRxw!mcO}@bevrO-j5QFfYQ#B`r~xq@pNi%_S!7b3)5cYRz_Ce$Ts%0|xz-1J)EUua=uI4RRM$}YH7J1bv zCrssMjdNBz;X2yL zF#YVR+C%W-mLoLdlH-D%H)^~Q5Tcmulo%;(nAaOBC0$(&1`n08hYn~PMg@A__bNRe zLsdHaiCevg3_aCqOm!Andj(IetvJQuo`{mC##@nx1echDBspabIDI-)9(S70LScLn zhMykz^(w0}nbNLITn~7{#T4IS^mEwC!v+Aj=A|{xY-){auM`V&1UjrhWu&BJl=B$- zpbQ*#GL%s!bn3*|c1i;YpfxhdmapA+^AZYol%|#6Xq7FW+e^E3vH3?9VGlg6&qJ(c zwn**tJq$`TdAWKb_&)=h$lF8Ldu}axHjmWWqVG8$Q5;`>F^ib&nAm}D84JiFP%Pp8 zq`}t=6Civ~Sea!L64IkYA_Crv;Zop(f;Q*UDO|yJ$#Xmq3d)q6VCw;6)pGIClINXc zk85)-Z82>(UFUfQVpxs+HIE_sDQN#eanLHHpvKkd>Zsp^+zebx$l=}O`uxs8t-n4YNd%0&sgTc7_{QWLXnM)_2S#GWq; z2>R^!9}s!>!sS-+q6!H)Cnoae-L~RwALFn3HQ0XKtk`r`t`+BVBr8$yxJ&iWp2iG0H)?foau({x`cXtkI6{O;(Do$uE&5g6eA(ysBT=3e<&l7wI zjWukXL%&l~8R%_Y&Nbrg&9%SYMjZry1<#2yqcnXJJhsy~gPu}R-aomtx3GUTRF+noArL%Qm_0Rj zxaAsu?GVqStFMwezz)j&MRi@jhs=1CfryNg|2g6&r5bNpZ*K?n)8SYv1;B3_8b3#l z6AShwEKO{cnLNiQs1Q}k2vhuU|9Wj{&09oipPBS&D2)BIMpD8Av>8lfHGsN++>OO( zNirS#TFjzS8cIce;Kq2dwTtP$4r}ZFVPCQQuC32F>!-60-qJIlM|gO%k5=Exzw0Rm z2%QcjCxHjzQwFy(vtGt;-|+2N!>de6r5ZAxW7`%*gws84FPts*sfz>kuyTc)wNOeK zx~HM7>lB(G#QFx<9Z3*lqsMX*sxmd+qj3oUVfOw7=cH)l) z&LZ=q(0odBp0eUiwq5fp=Rd2{owr05INI*E0DkJl!iedGP6~pxDcp$c>G7))`KZ|1 z)_i*ln*lTsu;=(tbSzgSx{SdguA0@?|6F4BE?=3pqL!8dz&GX_AcOO}qEq!kZZ4z1 z?|XjXWc@Yz+{2U!(snw5Ayt-c3g95IcWHg;f|zpvG7BcTf-N~+cKVxTm7a?}xdc13 zLGR{a?GJ1_>3_tPEut}Z`_Wrp(2LsQfBlZo45^p6i*Im-Q^A8Z#m;*A@DCb|FmQ9p zF~L(0@Wy_{ngm7X0cNj{q(Uzq^RJV>5)J`yU*H8<(!9}>7#3_tt}J9D z55NM+QNWC#S2nO~Ix*q~>6E33Yw?)6V=%Fl*tQ@j=l?&J|0Ng$X?V>GwG!o{R07H` zW!%M>@0g4&>^!*syn>$Mm67L(rcdW%;Y`jJ_}K>X^i?ViEhj|ST}n&*+YbI?yZ%T8 zOH(8jycHDg!^)j%H(2RnH_LX_WtwOAaYgSuv$ZyCyU+asU_bM^pBEuWPdYqu?tY3+v&YM zr;|OG;GdmfSJLP8}2DCW>(r zYdTf-#bALIhR}UPrpPYS7=Yyl4yp%hkMAEnTirNZ-G=P)K#q8^w({>O{obYDwDgU*WPb`2C4)i`M~CBmQr6k`P5XxL--n&y8kpDsM)B5 zSR?l`yy`pFQaUfL8jOpb;b76bd%j{7Z7o(GV>S2Rf=}JGqiNFzk)^og?3%+DpI7!6 zYZrGw`W~Ux)zSI}TebjWKbZup*s=P5@(*jvIXF-ocInK-XirQH>zc^Cv0MAtFg)N) ziSkQGGUMgHMJ;oQm(e`CS3d37JY6xEG_(1L4>Yy`lNeClsg+$nys-tzLO7Y)5)RcC zjWv}ZvTd~X@6NU@P@*Ylm7&oO2DT-lEqK)kY=rOsfL#Lhm^qV&eVf7au;$!^@zGPI z+CAp3r5f5xA1x3Kh`9+W`vU$-LS--W;vHvdePt4rJ~bu|hkJb9Mz-urxQ&Tege)SA zfD=k@*Vf1(qvc~$Ni{>hAQ^%4XR;~NJ@5Bg z`c4Jh@uDv_`zJdcqtt;IkA0~el(<3Dk1nr*;|s8 zl(e*qau@AtSNTQ70y-xFv^|XrL}yKXJr$a4X=CNF<{b z6o+f7{2+ayHb;BMA|oX&Iq+doQ`!#wCqOdY$QaqfPIr}qrfwvSYg}E9dGETrI07R0 z@k{gYhnj=HQ0bs(Vd6of0Bh39Tp!qaG4DfZsQIkDQ35tX`QCP`{g4P<4r}g68Qj$k zW(^yrNm2>@{Cp4dsH&>U$Df~Bz~Y1%c>~JfeLI)`u?&uuLNYZGAcUZg9jOoW0WTY6As9$Bjc`Lzi zlJC8{E5Ag6<9fit*c6q26*|J#tbgz3Bb2>~fTN7f&1li6%&2NE?P~)Q!+G^@;)?4& zm4+#te-vRTYYioRDr~5Q!eRr%;Emg6>(F)hqOVlm1S=FM}6(nSLtG0QebL5QTLQO4Pv3N`IuE;)Gzzy1b}5+`)z| zS9U3=n8_=HTrQze^$RX1lzpJdfLQ)w?rp==42hKqQuLeC8)f&XLi^$Z|XWG6Gw5FbMp?|4;Z5JYrgUvD+LRJqYW6{AgJSg57QqLm8~4K zBNKzA76tDAWhS?w;L;17qU# z-EO8y`+L0BHu8JB8X~pF4E(ej=t7H?pOInZlxBENz zA8uVYjswNC#pHJ`-M#@%LiEOynyVfU~D9p5iV#ImAYDgjuN$N)`EBMV?GfcZ2MeIx;jru(7t{nHp0z`X~cdlA$M#?$WMMzU{Kd? z4uRlhkmN0&>0BeMu-{b(4S(WGR{FD4%0ccTo0cF5(T+LqbYfN{=c~s(jK+^wXhx3x ztwF1dur~|}Dq$^s(^*B1>SMt+Pls4PsOMxIQ@+!%a542^ptdGepll*F1}vnCjP^YZ zCGS9=2nr5ijug>gG4$vNh~@4=@ z_8GG^!*jBQ@yyMax(;VA+^NoHcPntn>~z0&IM8#7l5}>wdD6JIFq_(`6rr43ou2ON zv>xzMDL*^dbwTXkh;{qqjU>4QVZ$UHg(szLynQ@Lp($El0YRD>2w~Vx(1-kW zPg94FkDpq1#((baPQPHOY11+GHmB8uDP3WkVy#Q+-M9XFu@zwp*V_ZcjE`@d4YIOi z4uOlekKG1TZq;O)1toRj?w`hW+&VSwn%8L2|b6d`bkk*KB!dnymqnWhhsDkTnJ?fuf<2Ee*sn zWa7N^%SBH|1ILTd>qIS>1n^bpUt={>jl7UQ#B!41b6dQP3~_jlkEdVXAL_?OkTBRh ze}3+-F`#9Jxh>gj;ZZz0HahrYDk;@ldYB&viCx%{&TwwE0lEB# zVAKBpAQ%Pxyd|sEm_6j@AcDTiNJ#zGUKmdSGJEQYUD8=^U&h+f8P4om$z4{-8SF=v zZBlrBNm_<#3o4F*=gNHqDzMw)aBN|>;{`d2NZf>hBXj%9L;GWW;CA#1a#@53;>gNcZ44=P;Ud--*C1*=qkn zSpN{eoaIhWY$o;}8;(_ES+LGV$f$*XI4!>$x_T>jH_TND_i3Y0y@KHtZ1gWl1f4J9 z|4i7o)Xj-TAtYEw{h7eJUqBlB!P}zJ{!JNO^_-`JTn}Hrf1G{-aa@m~a(0(VlK?lL z!c>8tjw#Kzm5$ss%$^?U?00*j4ZyX^O2J0gH``sel`|aS9P~^b*xmj8A2WhSwY$LX z8JOBMz;5vI_9oTolOs^2XR&cmfZeOp!-GIffd}#jztf2(R>5FSPGrw;H0#jYan%@h ztig@+^khKhOc@+@=%3+`VW}UDmb`%;*eEzz$UnpJ15B|pHI?{oYI%PM^HLMp@Qd?) zPv`gU{HC4Xob_Ao{Fci9^Gc%YlIDzwJ=`bJ-DU!%A|hWH;7z8L;%8~*zitxc<%n-r z5cl>XF@9Dd?aGAETosR%_r=)!l8K6I4Go{RV(j3h(hQ{6RvB*knA3$uH__kYX`B!7 zepfc&F;sPd{Z0<|fSQUiE1Q|6d18}_g7(GIvd8kc?Jw0j$p&)e2+jfB)^Cf|lmE)o zl0jA&$xS)engwD`tLT;=k0VKQXR&@8eZY0(jZ_$cjxvGbL7##^co-*8n;A$HNbC-} z4$5az!TN!%xiV!7z}~3AWmJ~J84fAdJKOtOCY9I|)9ZnQjW)-wZF@8%I`0j%Z)mhh9WPnfk>M^Qbz{`0?0saL*Yjkt{Qo zV^O;Xod5pVAIDiHwO0GP@7Dd2m`aZs9QQt%BA=DkVGzbH05tBbM zle{CD3X;D)H_R<)YTS65o{SrIUE$^c60G>ieg{|3$Iz`-LhmiE8P78u%#PtU6^}oe zTG{4UZTYych>qfD_A*BuTXu0W-osqE%qU+b8C@o^5Cyy(&+oC=;+^@@x(kR)-Anlm zYp^Jq>6$A2@;&~XpSQ+of2K@0lIF-zcc}7qOKF)~TCf|eeQ%iE9Fd9ArjizN(rN1#1s{>OTp=@i47rG??n$?Bd#6WoRB|fALLZUvGxCsl3&;EV-xBk~n&(*letx-ZGPI-rwh!CZEl^z{^o5_<9a_XZa4n zTT2@{qtK~JPgR8H;u1~b>o0@-Do~jbt$=c6O{wIUAKEok2L@-KHmH4N=Do@``*93f zV}_py5c-4Xcc-Y>Q|fd~C4<+O{nl$%6+P+;Z%>UyG5Fjy9lt(T?z28#sNNx*a-1R` z(*NEwr_-PH1@M5+Hm9B&*8$s|t)r)R z!VVsgGgV6UhCzy%r>dNiQ7=KTG|TO7oR7;q-LvB=8dexbmC=@9mRC+Bh|h+*!Ls*< zlx*D#^bxWo$LQ*xA+s#av$zORR%-6~%@+%I;y8kswU^Q_QS_-v^Lks$KT3NF=#dDx zWq)$A|KSV$OA-3NSTXzm!Whm|Exx-aaUhEXriH9s$GWK+2KB3Z9U!rgqpWxGPg9%uIhFh5zc4&BH6+7k{^)Uap@Subs>92s zvz9r^)n4ojAc%-y0b|3o_1{)kO|E6%A+zsY*OOJFyI;1|_1HMeFP|}!{(Q)hA})x7 zNB2V@83#irsOs(fZHk&Fwl4kF)|*vMoAm=_`Zu{8Oa)GFDDx;VC92;VE;@?s5sRy7 ztzvxOF;vBYY^%pK`!7sksN#W(=)q(F_}7o+%Z4A#v#l~WL7VlvjUCpsjbp2YEKlAXF_B_O}8nFtQGD`yPPi(LafV7*YA4i+avhC9# zE@b?S9Y^k`8jG@!RS8@&FjLcLU^b=l8YzIo)yUxbJPNqfvlLLqM^fgW3^c*}L#OW5 zJ+Qh~fidI)n=%?R&;HF&@oGMy_+QU=j3HmpELWZeZ@St7c<_& z$>&W;4hOt$d04c`1){nRh8Ssgjj7A7-<>8W>s!LdVgmPX;w2h=pC`q=4qoqV?)`)* zRJM^n!_nSA?lyr%Mqz+h`=bh8 zzrQY7T8#i2KS5v^P}sU4Z|Em4=}1@GjHv-0`%)LpMM61zKJJ?mN=1QJC9CSg7Rl&e-0r1H5Nppf}?Z)KEqm0F#U-i z3rI&R6blBti9GB3x0N71n9|xEkXXhrRXTB6OqbIRE3lOuYHNLC(lPT~ccnDXd#WKS z)_GS&+X`O-(a~EFDqwK?e=kczThquH42_SI<^K4VfW%o zoT4QHZvnxli`E47%C~Qc@>W;hbV7*4#>R&!%!PwJ&&MjyzaRTQ494Fd{Mms1zqcO= z_o&>&tG0#KD$DPUKp%7(}9Vr+j-L`9*HWs#_wo-g3W zImVwCg5f6Ws-0$+W0zZwrVbyuM@_2p9YRMmi>n&rk{BY4P&YL)I4cH)HT7%`I#7gA zF_Wom;gyt7h2G{{_tat#R3n$N_%fQ~5{KC_w0>!m)3sYzm9Y+~zTHT0^VDl$Ga-FvJM zfa4J{KB6~D`Ka{r>lvaSn3SH6wG*|?r#G{9z9UWVlb3#EU6LtB*({8V;I>-3FUVbf zf;v6I^Ywj_$(V6ETq#$qbX(uTIy2M=8>9{%Y+2=u-_nT^t&uQo!lZrUpajPteN zsjLg%p&Jsxh4OIUNQzvdmJGZI`eLwW0)`=MpWzWANb@A;RNjfDwpNZPdm#xB`NmZ5 zO^13X2&%&SeN@%4Ij-qbKzRIY| z?w;os8{tGjMS40nrhRpl@JW)mJlKJu5sDQjq*WW$$8WMErd_*=_w$>*id9r}rBSGB zauEOgO!$>Dvf-H2WAjwJ^EquK_oy#mt^B8}cNf;`hFuY>buE))3nC)#Ei%mo1?F1k zi-t$vcgye%x9h9tL6ti{v3t}g*nI(hYPZEzRSJcR*QG9fyU~0bE5mQ)+P0x1gaYW- zR-HT%c>-)gstH$ow%c3Olwg!^{qQ&BiA?Tt4=NSxuUaFm$3Zn)Y6 zhQ@@^!33l&O?iYA!xdGIH}ED zd0H7+@MWQ>OI)<~(T=dPaVYGnb7~k1ck|tVR%b?t<9elyeorMT-KP4bEltD6iTGe< z^G>A~HhOi^qVdg?iU4X6iqK?bENPqZx|0;#Lf88)lOr1kD3paa#m5k`QhRZv|0>~H z;INC!^F+>KGr=c_V6%Ca4~?er4CPBdbc83`xo?_3Gjw1&!;wb;B|lahJ$x*8`NNnf ztWdCgc+4$<_4{}=(q_G8o&0je)9h3$4`t!@M*_~DaujZxc*$f2*2^kVWibHVFOLm? zaPAkFAmofYq*R7$-_-8!%CfOeH+0oHJ#lmB2=vK{Tu%NJEvh2=pqPg))aW+%W9TZ@ zZHRul7j3+2BI}OQ-RKxADkf8)hL=(4iidqYJ>ljy``+9jP0#euLg9IkdS(YglYd_J|Qf8hdUyhFHeFQFFHi^Hm0@D`LkFMxV><= zzHU8Gxu0%QV7Eco@L|Hut0qO$RFGB&Ef}54{V7PYvUx5w%(V9to6pOqI5%klv$zh| z#t+v%3r*x4qFQmX(hJm6`J$^?x_?dc9H)mEk4th|Gm;>RTZI^%DRa*lEdVCg&$(2$ zpJDVPV}k0~(R4p(Cd&uUr9?NJT|2tDjGt#QJ)Mj{f3-;V>W#)!w(((ntj+Mtz5)dQ zrwpk7O8P#nv2As|btQPlv_KT!-HIVzQEQv!`FcBM2*X7~9=%J;?8zEmPG6B91ucZptn zfy)mc#k`F9V6`cw5q7`hqQ452Pe6pAD%R2tkFgpwwRvvFTkXaf{&`^&&OJD@Eo5<& z`$UsU`|1Fp{-p=ry=KqVT3e`mAiv5mx>&Zx<}gMiH%aKGPAerugeGskcbc5eNXVuj zO${|>&&p6(j(mMP?_oX>wp~?^3zqn+hdhoaJd|LZr{1;o~Co1!{p0*;IG)MK)( z-WJO#hLJ+eAHB%gcK+}c$f zHBz5mgyUY)F}8Z6eI1_oo9#|b=-jT|^cciHGz>Dl6nrXHTh%YC}6_!5(E zFUjyTQSGqs2M{+>q{Rw+!5sO$O6(=gt2UjhHtnzjtO)vrLKJl{(BErY+dEdkKa)Hh zPpnmZxEg2#!{vuV>EnjE3)Q6=IVi{^W?abDh;ey{CIUenQ4)U1ero)-%lylv!~@rg zPhY=HN7TPdG0`!Qw$EebQlY0BnR_aPb#tW7aKN$sDIklrC;v^&Yy1B#ZjR6lw_|L3 zz93<+OjtF$zEW_iru7vIwgoME9!U}Po4D~m@51`PUMY1&#<#{>%+dcLCXp`p9yaxOEQ zZ6v_M7ZtT%$O@DZfDnEh6%}~>gphl%{(aumRTX$-5R1c*3JtDA{HvazTY&g(IdyHd zrF_{tXfHklyHYMa2#0qXebM?;?Eb0y4kN)Qodnf63GpN%6-oWRTaEJ zvA}*6#L&_J0skWwCilbnL~=~ma{6ZDp&G1)w@ftH@wwTe#a?N@I{w>qpMn>2_o}j% z!}oXDdS&+wrI@^5mDLVa-JS&8fTgN@(_{&<6N6!JUm$>Lk&F>75LO7By3wmK{gW?} zA^^eW^M>!aM~Q5RwOK~%oTa6?A%@PGmM@68w};F}As*ynRU!N z$mS1-tEt;Q&csso}xtsm%yv%zPSaARn z6hZ|IL;OCX-mc_TR~8>0Tt$1?$tv ziF7m2s6p z%L#t+;+(_E2AL%I$4Iym@Ad5Lt0sn4WcQE453qu*itzX(2XTg@e_}PRUsfSX;vj?G zE70huEpgN4jzN6svk~FA)jC&xG;m?T%rIX6ULt%97A{|hHG@^Lbns8&#-|{tnk!$F zs0wkjeXV2m^vg>7x?*vn-8#Ci3FKD#%3PvNFM$wkDi;cX)Z~=cTCcMeXw+}s#vczkC$ajjSLh)bV>eOka&D`iejrZE ziWS6nibz1RVIo{MM^5^~n%DpVv910FrVkaz3$ zA=)yN!;#JNIWt2~d;6^ya+`M_9k`Cx#)f8bi9e#uj(syH;PWIiSiQe>ai>p^_p?;B z0_oBHhs~QQKm>XcIA`Fg8bAkBjwCp ze`&g0R%-M2w~iEKX{FmFoP@m1%v!VF($GikG!t-*1?(l>7Zs?AoLI!b3#gJBzFAyC zGK-h<2YU_qv~v-llouVX#cujEer=UGd>{07x!Sz|{*OE{-Ir*tg7)Z+F^ zN92Vj6`feucbWTS*8ID-=#%69c=ouXa#`8J@V?x}di)P;4p)^azq3|N%84B)D6As0#P*tnkOM)Gyv3)(JkSSr0zeF+uJ# z!+^pQF+zSPmE76Jlw<9I4B(voQXLi`HTARc8BP?qx6&B{GkAnmWPewV=~>8`HKj8g z4l0ay_+P*LH0Zkv{Kdzh*YxolEMub22Kp=yJYXlQpd>suaR&)LOVaG^xX88zZxQ0b zy>gU$Rn^fIRR1b@U?(p4m*3W&NMv9Tyk|Irup>zv!jyQ1 zq_5_LraHHA{Lm=HkxX?hIFS66W}AM7LzD$ND+HY3?1p24v1SX}w;$wUHX@I}EakB0 zI#s`n{9z<{3f7wfPSX)DD$1NW=V4A518JQ85PV)F#=`O*=Is^?3n#6H{LABuU8@hx z_7W&)Wh0{~zJwM4%Y!3id^~X<4YrrP_7CX43uz=Mrjv$#D~h62 zz5Omjml$^>CJfX@rTT(B{gY-Bn!<5f=v%RkI+d<+D)XRau}$-w{tAsP2x*Xemp?%z zi?%kjWJ{l>e>VWHC+%y0XeYbDUYvcCc4dOrc7g7v|D5N+dhOUmH93*WsGFR<>a)p2 zs@K_m9v!7ig%xainm@hAUKT5<5roMx?)jz;f1PYA1eiUYcJeak*=QSpzoh;yUUlf@Ct=KBoY?ZqS{i)&~eI=hE`sl;PTzlX4Nw zb0fzI`YA)Aj_ghgd+ql(zlf|&q*e23;~kmhFlkZEN9e4MA=of1Z`<)bGlFka1qPZIJ*WBexSuesq3h`Z>j zl|52T4i=PA1>GFqlkxSrY{AJxUrVSR=YV`B*opbU>mrF~PE)4Fdm=V8uQwCTOfc)Q zj7a7sSAyJ51g7Uxc3ZzOo;u&-4t^QE-T`ML_%(`!0Kiv^ZI>`GSS`Be%BXfj$Q-(Q zWmK~1nA(~o&ICir<})vxJPDCJNf!`3usuc_jAAyhD`x2|@EMRKajGNzUhH`6pNndT z?@~!~g_AaM2IV%2AsYlH?G^du=i*4?t|nz^8EW@*#?;H)0c1;)7?-%W3iCDCrRhT+ zFO+zKbH|gQJYiZE`vHB9Q9l9mG;)oH&}!u1qh_0j3|Z~90{C?eEnil)t}+mWzt7Q7 z6hnx-PR>d&R`pTg<3@uPS^LUX8}sNb@)Ch4-cQ`|1)0aDPi<;ZXo0ULCgYNpb!LdW zHq`4%1vMg_|oW?p)}je+Yy&dHm(>Y#2Y;= zb}{SqD^K9dYMvF?{Yw z?0!(jE0tQWv!xt{4JQEt{F@ZZX~rnS8138>onun7{Fj>o2Zt2MoP=e`Pu>`TJ}y2|ft#G2q(k;1o5!cQCGhcT0zch>VuSNzA#uj0~zoXnR6sUw@Qt(dSR`9bPjb6WxWrb-rZ4>9dmO^F9*yy8)TdNF+LsE8rI}2w1cpL`n{5LYgwzCdOj@Cg&Vki$$fSDMaxRkHWi$4X{}e=S zD)*996&Sy+Iq2zxpYel_l5$6dm$NdrIA0a4&UYamj%iR2uv0ti60ftl_liDbxeSL3 z2+g*f4j92!z)O3C4rhNBo~Vr<5H$9-&N)HUZ40XOt3z9_Ftt4`A(bzIueH}cCuZbb z@s3LO%QAY`nxM|ToMCPZ&U|w<_-*11d-M$vqgpraWs&8CH#hvI^iefSsGExkD97ne ziMm(T791YW^`SHzkt3{|-jcpXP~|$VvUGe-c{^+w2i##}3w>zj1kv8THaHfIYiebN6-)i{LVmAoL%SsI`KcVfD)nK(YBw^%k zC>f}E$9(n{<;0hWRyF>I*@1gKKe!i-1-!4fZ#GV@Ou&D%1_!zM&+OaGS9J;N#l~Gq zP8+9EvTMTY&7U3}VSVo9Pseo2g@8nkkBl_(Ues+R{0Ocafnz|I6>kvvoZ+;k%#O#{ zw62Ni+YF3KT1t@66q-9}J~N?mUKeIOE(y7w=AogZk>(A5pxUq2+mu_T?O}%tG)kxh z?1w9h9ir9~HXAjOKYD7)Om&rpmW7VcQT)O4+0^nUwl`(7^Y2qCA**xcneJ03g5Hip zf8*=_JdQ!$Hacu@1!Hhn@UFHZk*2E8eT{PUves@bOS`rcljm9%)vT-ZAbi&Txj=LC zIze(hK>@8*^2`wJo7OlwC0PbwRqEBXrULM&+jVv)WGhJTkL<&`3>ku54!fELPJ<&; zm8VBx>qq)4W5WRiJI?LtnvN!0>e&Zb%S-cdUd5r^%>_5M^2@-EZ+kv=C&4^KwrxAt zqdjG<13t3Z2Ea-6ExRMCn<|}9zQ@&b7~!fVJ3b1XfYc6szOPrac@N3&tj{QPs2SlQ|O;8HL#b`9ui0ilk2RjM2ko zoh;mk!_7~Gw)jb6BJaxts}+DFEYk&oX0U#$Bj=SMbdg zG=OcNvY*=&mx@hNF8{KEXO%xUrXE?XQI%GtMf0U%x%{O}1rG(myp+NVp${BCbz)@T ze39(x&r+}!#?D5A!JOtvH>)5@)m>$*HgvP3?p_RAK;u+yvoWg1rM2eKt+ew$7WdNE zyM7c32e@|d5r(A(x$5OKDjk~V_W=+<9n^`}Vl60MORRE(BppBS;_y6Np=r}Z@hT{8 zwFT!te3<*~haJhI&=#g^ihepE`Mp>+U}yW`>N_oLwgV`8W3?$wnv|q3J|1F$(Le{H1{h5_W46O0G&mZ$$m z4qe7+j?Clu=!) zdilq4D#Xfj*z5?ZD22iflbVN;ZsveYXPHKAP*By-?t}=HEkqb z=e^QD1J%7qJAT~u(w4HTcHG6aCc>}%nV;N^o?f4$JSI{p!*@viD_2j#uz5SZrdUl4 z{_{`wM8EFhWG%ANtS}29aQSRr3SaI(9YwzuDydx$&Za)_+#}M6mu)cW_qrU4qid8a zz2)|Vxw9*~M?iru!+stm9u9W_%`FL_QL%QzUqamfFNeb&e9~l{+=P|X28zlKugb5s zeStjY0A`%y+2Fq=9p+Y706#vFp+@7VExgQLeF=f*cvm(kbLsLfm8>(wKd}jrM@|Zp zv;Z%IL13mfvAc&goM4F$da;F{aqXf%2hp-DK`IZe)OV~^M~=1Eu%;N+&YA=kl%CbK zQUD6m0YiyQnXVJAeN1cYipl!6R%0!zT1BAG|4==Aj@c`QxQMZ&o=W&TZ|2c2bhW6J z#8?Pt9gk*LVJ0fyH7wd(vyKv-FG@lk@AZc8E>j?N%&jb53roAAhw51wP5phDzZ$Ti z?!H}zzCP&^nL_RwIPFG}5Z3N_GKUq1+gtC1nJwxHZK?IGTSsb#k-%rN0ldWw8L2%S zM)UBwhHM;p94VmfDo_z6<{?W}?skSls6V5#`efv*(Q+88s`_z&=X_>b)~5Ui5#O5x zLSn%8b6n4I6DKG=Z0``;tl|9<)m+b~%BoEt#nz<2;3(#mdL7GJ`AvtfRN%A7=rf$J z?T#K|5t0435;BwX(qbJtpqfg(dAKrSIS0m$Z1uk~bR})2BOxu(mdIOp4T*sD=P13U{3ZpT5`PQvIwIDd?#4M~)V_Zx@t^b9m+^=XA?2Pq;a`a>uvKLoiC zVT1bFSd{UBm6KJAN^sBB^i47FtM)!g|4t>(BOS$k1rc42zFOUW%sNWyg8EbLwNgD>C(q3sxm`E=j<6D5*o_p5Q7>n zDb!Ya>$7bnd!4jN`Ht$BS8Z$J9T8u?h_OP&gj_Mr$vKTO{9-auf?E0)=!@{2FTTbu zUERr2{r_X{J)@%9x;9Zfh>>srLCH##ELn*M5s;igGLm!7sg9r^S+anD#DXH{Pz05n zb1Z^Lkc?yss)}Ca+o#8y`Wv_J{d#=eclf7%RPDWM?X~8b^I0=Ib6oo*#(Yw1fJw>F z2(us{phfz`2U?KnqS?nk3U}3gpJW=C3tnmi_rLGT%>#*eI%HY=CC*9F=HmHXH}K;qvJEL7PiO)tuxUUFNaVG7cGT4FLT`M4f<4f+Pdg|G{vi~*bGhWvdv%O zRAEQJ8pybl+WLC&_dq$Xll`2ai1N*J==Qm-%yRP*}P=G-1GvMA=!5%}NM$zFFxyFL74ogt~0#z{==N+0|!9!}8b9bFc4%=V$AqD%X-E(hT`yyVnzm zPx$#@6~DbmhPlPRUBTVN%@&AR!94>*7>V!2X&q#~|M3bY@yFUH9IkmUT%P3vIYz9Y zkz&k@PmJJGm~7u1aF&gf0O}%A=rHpVCnan266frt734Gv>ytHdYEvURu$y79L7ZuZ z;s{B}$j7R%IE{-Nqo%HYn0jNZGfokKAUzN?51WSkuvyeEMzv`;Sy)Be%=U7&r}W)a01NupcpT4IvURqAefST8!UX0 z!6nWcu5lHiL);lP1@;~qmQF%=P|Cgemthyzy)>&`Vm|Rc--Wbig55#2ccwu11oGkG zjmc?9jIZ{$wF&)klIv$A+?ZA{V>O)a)-$mau_NKakJ-9=?R$HDuF~ER2Y-%8Mq*4| z9}}$}q8gla!{uC%{v7&tq=_Ft;AKQGL~XE93UA6K7!6Subbq*0{#wE5|tZSZRSx@;bCa@{G}O2iiFep08(R2Bg3}Ta890w00FKcTjnO5c?fA zhZ=n~W{Dp5^%piaA7x{MAH}@NWfk9=CtU2w6q3DedTKQ1CHby*yQC&9|EWxE4gxu2 z&7Lkh*^3l*UfhZ?6*n+pP899FenNNROTVc3J_qttc86};qg!>U3HNth75;pJ4CYIJ5`c zU2ShbopvG%+7Y|)`7*%AUl042r$ZH$N%=AgFGQKy8IobQXbShMJ;*AvjaA~FLABXF zqIHX}uVD3zMW?^>cK>SyPH8R%LfwQLl|Gs_PlYZjlJ6zn$9Zx;-FQc68Ejq^!@8pFN{AQ1nmU2{#5IX{x%VE&VCPdW_gKozK9(v@a|319oEk*B7cB%*W*^~zQ4q= za4MJh?o!oyxCHF@7B(rR8PmIH0vTMkf_!fi0v^7l22BymzY9HLpTO?uUD*Yn5!6a0GtD0!|@-BL3&0y#Jyquc`kMw-#69 zkZb9F(|lfHo|3G&^NBNM}P@ie~gqWx2@H&v)qcq zGax+3FdPViy?uH=ZLhj78LEbJE1wej4)6SImW44H3)>^0SZwq6Xz!8nJ@G%RTKG=M z=XW?bNme%sa*Em=4OE?8Bhnb(MGrK~Ks%%QLDL!m=bab2sAYDl~8n35NE0e7Lvp?Ja= zC{;9Q?I#LpCG@Rxv(F5@6Vr5Y*X`;4K%-GGHz$Ygi?7~14J9)Tr_^`$jA?ESFjl|V zc2`m=?uPF4k74<|b!0yeC1?U13a_Zk2VJf#Jw3O+OgcDhkrBXnht(#hBop$7hNVQ` zR%vQzj%B&WqMdt$3lDffX4=G`drg@Kkv)6%nZA>|4s8u?6x45I){D2OX<7WcUeBdP z>y>@eau8qaGh@|eDa-^F?`jFqkFNd28G;pHy7@6Ct&fB?R+9fX+GR2M{@b1}O;6Yy zqRNcxuG?7Y(BbxMsvhc(!Ik}SO@T}+E#Xn0hbtEGDzSIFy20HB>q8$h$$^`0X;0&* z>*d5y)8^*J0fMFagi{q8jFY$GwJz^S>W*^Gc&@>?PhvO@lHF`xblfauV&vvWA~5vG(XbHeDK;JRt+{gh(h^T|Km1G4^iO;Q(Xpt(R%>9hct+g!%_{rX>m&bDJYXbNLlAr

6$I2iC{_vEEi^sH} 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≪$)6!O&7uZKjfe=yp|wKkrr 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

K29DCRb0F9 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%0A-K9x(Ozj8^WUuhOnd>}?il<*hgtd_ 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

C0|T1F_0P6* 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

s*MS~)vd$pK*#uZFdgUn5XACBnz=NFjA8 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 T3m#Yp{!x-wJ(+ae@aF#m=9$qr literal 0 HcmV?d00001 diff --git a/README.md b/README.md index d80759e..095ba54 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,14 @@ -# ComfyUI DropSend Node (ComfyUI >> DropBox) +# ComfyUI DropSend Node (ComfyUI to Dropbox) -Automatically upload your ComfyUI output files to Dropbox with optional encryption. Set it and forget it! +Automatically upload your ComfyUI output files to Dropbox with optional encryption. Set it and forget it. > **Prefer Google Drive?** Check out [DriveSend Node](https://github.com/machinepainting/ComfyUI_DriveSendNode) -![DropSend Node Overview](Images/DropSend_Node_Display.jpg) +![DropSend Node Overview](Images/DropSend_Node_Display.png) --- -## 🔄 How It Works +## How It Works ``` ┌─────────────────────────────────────────────────────────────────────────────┐ @@ -39,31 +39,21 @@ Automatically upload your ComfyUI output files to Dropbox with optional encrypti └─────────────────────────────────────────────────────────────────────────────┘ ``` -**Encryption is completely optional.** Leave `enable_encryption` off and files upload directly as-is. +Encryption is optional. Leave `enable_encryption` off and files upload as-is. --- -## 📤 Features - -### DropSend AutoUploader Node -- Real-time folder monitoring with optional subfolder support -- Supports: `.png`, `.jpg`, `.jpeg`, `.webp`, `.gif`, `.mp4`, `.avi`, `.mov` -- Optional AES-128 encryption before upload -- SHA256 checksum verification -- Queue system for reliable uploads +## Two Nodes ### DropSend Setup Node -- Generates Dropbox refresh token from App Key/Secret -- Outputs credentials for RunPod environment variables -- Optional encryption key generation +Runs once. Exchanges your Dropbox app credentials for a refresh token, then either writes them to `.env` (local installs) or shows them in a one-shot browser panel (cloud installs) so you can copy them into your platform's secrets manager. -### Decryption Scripts (Local Use) -- Cross-platform scripts for macOS, Windows, and Linux -- Decrypt `.enc` files after downloading from Dropbox +### DropSend AutoUploader Node +Runs every workflow. Watches your ComfyUI output folder, optionally encrypts each new file, and uploads it to Dropbox. Supports `.png`, `.jpg`, `.jpeg`, `.webp`, `.gif`, `.mp4`, `.avi`, `.mov`. Includes SHA256 verification, queue-based retries, and optional subfolder monitoring. --- -## 💾 Installation +## Installation ```bash cd ComfyUI/custom_nodes/ @@ -75,238 +65,404 @@ Restart ComfyUI after installation. --- -## 🔧 Dropbox App Setup +## Step 1: Create a Dropbox App -1. Login to [Dropbox](https://www.dropbox.com/) -2. Go to [Dropbox Developers](https://www.dropbox.com/developers/) → Click **Create Apps** -3. Select **Scoped Access** → **App Folder** (recommended) -4. Name your app → Click **Create app** -5. Go to **Permissions** tab and enable: +1. Log in to [Dropbox](https://www.dropbox.com/) +2. Open [Dropbox Developers](https://www.dropbox.com/developers/) and click **Create Apps** +3. Choose **Scoped Access** then **App Folder** (recommended) +4. Name your app and click **Create app** +5. On the **Permissions** tab, enable: - `account_info.write`, `account_info.read` - `files.metadata.write`, `files.metadata.read` - `files.content.write`, `files.content.read` 6. Click **Submit** to save permissions -7. Go to **Settings** tab → Note your **App Key** and **App Secret** +7. On the **Settings** tab, copy your **App Key** and **App Secret** -> **Note:** If you can't select App Folder, create an `/Apps/` folder in your Dropbox root first. +> If "App Folder" is not selectable, create an `/Apps/` folder in your Dropbox root first. --- -## 🏃‍♂️ DropSend Setup (RunPod & Cloud Users) +## Step 2: Run the Setup Node -### Step 1: Run Setup Node +The Setup Node is gated behind an environment variable. This prevents a remote workflow from hijacking or wiping your credentials. Pick the section that matches where you run ComfyUI. -1. Add **DropSend Setup Node** to your workflow -2. Configure: - - `app_key`: Paste your App Key - - `app_secret`: Paste your App Secret - - `auth_code`: Leave blank (for now) - - `dropbox_dest_folder`: `/Apps/ComfyUI_Output_Files` (or your choice) - - `storage_method`: **display_only** - - `encryption_key_method`: **Display Only** (or off if not using encryption) +### A) Cloud (RunPod and similar) -3. Run the node → Two Dropbox popups appear -4. Accept permissions → Copy the authorization code -5. Paste code into `auth_code` field -6. Run the node again - -### Step 2: Copy Credentials from Console - -The console displays: +**1. Set the gate.** Add this to your RunPod template's **Environment Variables**: ``` -DROPBOX_APP_KEY: XXXXXXXXXX -DROPBOX_APP_SECRET: XXXXXXXXXX -DROPBOX_REFRESH_TOKEN: XXXXXXXXXX -COMFYUI_ENCRYPTION_KEY=XXXXXXXXXX (if encryption enabled) +COMFYUI_DROPSEND_ALLOW_SETUP=1 ``` -**Copy only the value after the `:` or `=` sign** (not the variable name). +Start (or restart) the pod. To verify, open a pod shell and run: -### Step 3: Create RunPod Secrets +```bash +echo $COMFYUI_DROPSEND_ALLOW_SETUP # should print: 1 +``` -1. Go to [RunPod.io](https://www.runpod.io) → Click **Secrets** in sidebar -2. Create these secrets (Make sure the name of the secret is EXACTLY as shown below): +**2. Add the Setup Node to your workflow.** Configure: -| Secret Name | Secret Value | -|-------------|--------------| -| `DROPBOX_APP_KEY` | Your app key | -| `DROPBOX_APP_SECRET` | Your app secret | -| `DROPBOX_REFRESH_TOKEN` | Your refresh token | -| `COMFYUI_ENCRYPTION_KEY` | Your encryption key *(optional - only if using encryption)* | +| Field | Value | +|---|---| +| `storage_method` | `display_only` (values shown in browser, never saved on the pod) | +| `encryption_key_method` | `Display Only` (or `off` if you do not want encryption) | +| `reconnect` | leave off | -### Step 4: Create a Custom Template (Recommended) +**3. Click "Set credentials..."** on the node. A modal opens with three password fields: -Creating a template saves your environment variables so you don't have to add them every time. +| Field | What to paste | +|---|---| +| App Key | Your Dropbox App Key (from Step 1) | +| App Secret | Your Dropbox App Secret (from Step 1) | +| Auth Code | Leave blank for now | -1. Go to [RunPod.io](https://www.runpod.io) → Click **My Templates** in sidebar -2. Click **+ New Template** -3. Configure your template settings (container image, GPU, etc.) -4. Click **Environment Variables** dropdown -5. Click **+ Add Environment Variable** for each: +Click **Save**. The modal closes. -| Key | Value (click 🗝️ and select secret) | -|-----|-------------------------------------| +**4. Click Queue (Run).** The node prints an OAuth URL. The URL is delivered three ways, use whichever works: + +- A browser popup opens automatically (preferred) +- The ComfyUI terminal prints a `DROPSEND DROPBOX AUTHORIZATION REQUIRED` banner with the URL (Cmd or Ctrl click to open) +- Wire a `Show Text` node to the Setup Node's `STRING` output + +**5. Authorize at Dropbox.** Open the URL, click Allow, and copy the authorization code Dropbox displays. + +**6. Paste the auth code.** A second modal auto-opens for this. Paste your App Key, App Secret, and the new Auth Code. Click **Save**. + +**7. Click Queue again.** A **DropSend Credentials** panel appears in your browser with four values: + +| Value | Description | +|---|---| +| `DROPBOX_APP_KEY` | From your Dropbox app | +| `DROPBOX_APP_SECRET` | From your Dropbox app | +| `DROPBOX_REFRESH_TOKEN` | Long-lived token, just generated | +| `COMFYUI_ENCRYPTION_KEY` | Only if you chose to generate one | + +Each value has a **Copy** button. There is also a **Copy all as NAME=value** button. + +The panel is browser-only. Closing it discards the data and nothing is saved on the pod. If you close it before copying, just rerun the Setup Node to regenerate the values. + +**8. Save the values to RunPod Secrets.** In RunPod, click **Secrets** in the sidebar and create: + +| Secret Name (must match exactly) | Value | +|---|---| +| `DROPBOX_APP_KEY` | from the panel | +| `DROPBOX_APP_SECRET` | from the panel | +| `DROPBOX_REFRESH_TOKEN` | from the panel | +| `COMFYUI_ENCRYPTION_KEY` | from the panel (only if using encryption) | + +**9. Add the secrets to your pod template.** Click **My Templates**, edit your template, and under **Environment Variables** add: + +| Key | Value | +|---|---| | `DROPBOX_APP_KEY` | `{{ RUNPOD_SECRET_DROPBOX_APP_KEY }}` | | `DROPBOX_APP_SECRET` | `{{ RUNPOD_SECRET_DROPBOX_APP_SECRET }}` | | `DROPBOX_REFRESH_TOKEN` | `{{ RUNPOD_SECRET_DROPBOX_REFRESH_TOKEN }}` | -| `COMFYUI_ENCRYPTION_KEY` | `{{ RUNPOD_SECRET_COMFYUI_ENCRYPTION_KEY }}` *(optional)* | +| `COMFYUI_ENCRYPTION_KEY` | `{{ RUNPOD_SECRET_COMFYUI_ENCRYPTION_KEY }}` (optional) | -6. Click **Save Template** -7. When deploying a new pod, click **Change Template** → select your custom template. Done! +Save the template. The next time you deploy a pod from this template, ComfyUI will see the credentials automatically. -> ⚠️ **Why this matters:** If you skip creating a custom template, you'll have to manually add all 4 environment variables every single time you start a new pod. Save yourself the headache — make the template once and reuse it. +> You can now remove `COMFYUI_DROPSEND_ALLOW_SETUP=1` from the template unless you plan to re-run the Setup Node from this pod. -> **💡 New to templates?** Take a template you already use, copy its container/docker settings into a new custom template, add the environment variables above, and save. That's it. - -> **Already have a pod running?** Terminate it → deploy a new pod using your custom template. This is the cleanest way to pick up the new environment variables. - -### Step 5: Test Upload - -1. Add **DropSend AutoUploader Node** to your workflow -2. Set `run_process` to **True** -3. Run a workflow that generates an image -4. Check your Dropbox folder! +**10. Deploy a fresh pod from your template.** Skip to **Step 3**. --- -## 💻 DropSend Setup (Local Users) +### B) Local install -1. Add **DropSend Setup Node** to your workflow +**1. Set the gate in the same shell that will launch ComfyUI:** + +```bash +# macOS / Linux +export COMFYUI_DROPSEND_ALLOW_SETUP=1 + +# Windows (Command Prompt) +set COMFYUI_DROPSEND_ALLOW_SETUP=1 + +# Windows (PowerShell) +$env:COMFYUI_DROPSEND_ALLOW_SETUP = "1" +``` + +Verify: + +```bash +# macOS / Linux +echo $COMFYUI_DROPSEND_ALLOW_SETUP + +# Windows (Command Prompt) +echo %COMFYUI_DROPSEND_ALLOW_SETUP% + +# Windows (PowerShell) +echo $env:COMFYUI_DROPSEND_ALLOW_SETUP +``` + +Each command should print `1`. Now launch ComfyUI from that same shell. + +**2. Add the Setup Node to your workflow.** Configure: + +| Field | Value | +|---|---| +| `storage_method` | `env_file` (values written to `.env`, mode `0600`, in the plugin directory) | +| `encryption_key_method` | `save to .env` (or `off`) | +| `reconnect` | leave off | + +**3. Click "Set credentials..."** on the node. In the modal: + +| Field | What to paste | +|---|---| +| App Key | Your Dropbox App Key | +| App Secret | Your Dropbox App Secret | +| Auth Code | Leave blank | + +Click **Save**. + +**4. Click Queue.** The node prints an OAuth URL. Open it, authorize at Dropbox, and copy the auth code. + +**5. Paste the auth code.** A second modal auto-opens. Paste App Key, App Secret, and Auth Code. Click **Save**. + +**6. Click Queue again.** Credentials are written to `.env` in the plugin directory and loaded into the running ComfyUI process. No restart needed. + +> Once setup is complete, you can drop `COMFYUI_DROPSEND_ALLOW_SETUP` from your environment. The AutoUploader does not need it. + +--- + +## Step 3: Use the AutoUploader + +1. Add the **DropSend AutoUploader Node** to your workflow. 2. Configure: - - `app_key`: Paste your App Key - - `app_secret`: Paste your App Secret - - `auth_code`: Leave blank (for now) - - `dropbox_dest_folder`: `/Apps/ComfyUI_Output_Files` - - `storage_method`: **env_file** - - `encryption_key_method`: **save to .env** (or off) -3. Run the node → Accept Dropbox permissions → Copy auth code -4. Paste code into `auth_code` field → Run again -5. Restart ComfyUI to load the `.env` file -6. Add **DropSend AutoUploader Node** and run! +| Field | What it does | +|---|---| +| `watch_folder` | Folder to monitor for new files (defaults to ComfyUI output, see clamp note in Security section) | +| `dropbox_dest_folder` | Destination folder in Dropbox (must start with `/Apps/...`) | +| `folder_format` | Append today's date to the destination, or use the literal name | +| `enable_encryption` | If true, encrypts each file with AES (Fernet) before uploading | +| `Post_Delete_Enc` | After upload, delete the local `.enc` file | +| `Subfolder_Monitor` | Recursively watch subfolders | +| `run_process` | Set to `True` to start uploading | + +3. Run a workflow that generates an image. The AutoUploader picks it up, optionally encrypts it, uploads it to Dropbox, and prints status to the ComfyUI console. --- -## 🔐 Decryption Scripts (Local Use Only) +## Decryption (Local Use Only) -The `/scripts/` folder contains scripts to decrypt `.enc` files on your local machine. +If you uploaded with `enable_encryption=True`, files arrive in Dropbox as `filename.ext.enc`. Decrypt them on your local machine after downloading. -> ⚠️ **LOCAL USE ONLY** — Run these after downloading encrypted files from Dropbox. +> **Decrypt files only after they have been moved to your local computer or external drive.** Decrypting on the cloud pod defeats the purpose of encrypting before upload. -> **ONLY DECRYPT ONCE FILES HAVE BEEN MOVED TO YOUR LOCAL COMPUTER OR EXTERNAL HD. OTHERWISE IT DEFEATS THE PURPOSE OF ENCRYPTION BEFORE SENDING TO CLOUD STORAGE.** - -### Prerequisites on local machine for decrypting +### Install the decrypt dependency ```bash pip install cryptography ``` -### Store Your Encryption Key +### Store your encryption key locally **macOS (Keychain):** -1. Open Keychain Access → File → New Password Item -2. Name: `ComfyUI_Encryption_Key`, Account: `ComfyUI`, Password: your key +1. Open Keychain Access, choose File then New Password Item. +2. Name: `ComfyUI_Encryption_Key`. Account: `ComfyUI`. Password: your key. -**Windows (Environment Variable):** -1. Win + R → `sysdm.cpl` → Advanced → Environment Variables -2. New User Variable: `COMFYUI_ENCRYPTION_KEY` = your key +**Windows:** +1. Press `Win + R`, run `sysdm.cpl`, open **Advanced**, click **Environment Variables**. +2. Under **User variables**, click **New**. Name: `COMFYUI_ENCRYPTION_KEY`. Value: your key. -**Linux (Environment Variable):** +**Linux:** ```bash echo 'export COMFYUI_ENCRYPTION_KEY="your_key_here"' >> ~/.bashrc source ~/.bashrc ``` -### Run Decryption +### Run the decrypt script -### Local Decryption (Decrypt Files on Your Computer) +1. Open the `/scripts/` folder in this repository and pick your platform: -Once your encrypted `.enc` files have been downloaded from the cloud, you can decrypt them locally using the platform-specific scripts provided in this repo. + | Platform | File | + |---|---| + | macOS | `mac/decrypt_folder_mac.sh` | + | Windows | `win/decrypt_folder_win.py` | + | Linux | `linux/decrypt_folder_linux.sh` | + | Cross-platform | `decrypt_folder.py` (Python) | -#### Step-by-Step +2. Save the script to a convenient location (your home folder works well). -1. **Go to the [`/scripts`](https://github.com/machinepainting/ComfyUI_DropSendNode/tree/main/scripts) folder** in this repository. +3. Open a terminal in that location and run: -2. **Select your platform folder** (`mac/`, `win/`, or `linux/`) and download the decrypt script for your OS. If you want to use the cross-platform Python version, grab `decrypt_folder.py` from the scripts root instead. - - | Platform | Folder | Script | - |---|---|---| - | macOS | `mac/` | `decrypt_folder_mac.sh` | - | Windows | `win/` | `decrypt_folder_win.py` | - | Linux | `linux/` | `decrypt_folder_linux.sh` | - | Cross-platform | scripts root | `decrypt_folder.py` | - -3. **Download the script** and place it in a convenient location on your computer. Your user root/home directory is recommended for easy terminal access (e.g. `~/` on macOS/Linux or `C:\Users\YourName\` on Windows). - -4. **Open a terminal** and navigate to the folder where you saved the script: - ```bash - # macOS / Linux — example if saved to home directory - cd ~/ - - # Windows (Command Prompt) — example if saved to user folder - cd C:\Users\YourName\ - ``` - -5. **Run the decryption script:** ```bash # macOS ./decrypt_folder_mac.sh - # Windows - python decrypt_folder_win.py - # Linux ./decrypt_folder_linux.sh - # Cross-platform (Python) + # Windows + python decrypt_folder_win.py + + # Cross-platform Python python decrypt_folder.py ``` -6. **When prompted, drag in (or paste the path to) the folder containing your `.enc` files.** +4. When prompted, drag in (or paste the path to) the folder containing your `.enc` files. -7. **The script will decrypt your files.** Once complete, you'll be asked if you'd like to move the original `.enc` files to a separate folder for cleanup. Note: the script will **never delete your files** — you can remove the `.enc` originals manually at your own discretion. +5. The script decrypts each file alongside the original. Once finished, you are asked whether to move the `.enc` originals into a separate cleanup folder. Originals are never deleted automatically. -That's it — your decrypted files are now available locally on your machine, off the cloud and ready to use. - -> **💡 Manual Encryption:** Each platform folder also contains an encryption script if you ever want to encrypt files manually outside of ComfyUI — for example, encrypting media before uploading it yourself. These are separate from the node's built-in encryption, which handles everything automatically during upload. +> Each platform folder also contains an encryption script if you ever want to encrypt files manually outside of ComfyUI. The node itself handles encryption automatically during upload. --- -### Files Not Uploading -- Check console for error messages -- Verify `run_process` is **True** -- Confirm Dropbox folder starts with `/Apps/` +## Troubleshooting -### Encryption Key Not Found -- Verify secret name is exactly `COMFYUI_ENCRYPTION_KEY` -- Check environment variable is set in pod template -- Restart pod after adding environment variables +### Files are not uploading +- Set `run_process` to `True`. +- Check the ComfyUI console for upload errors. +- Confirm the destination folder starts with `/Apps/`. -### Authorization Failed -- Re-run setup with `reconnect` set to **true** -- Generate a new auth code +### "Encryption key not found" +- Confirm the secret name is exactly `COMFYUI_ENCRYPTION_KEY`. +- Verify the env var is set in the pod template (then restart the pod). + +### "Setup is disabled" or "Reconnect refused" + +The Setup Node prints this when `COMFYUI_DROPSEND_ALLOW_SETUP=1` is not visible to the running ComfyUI process. Stop ComfyUI, set the variable in the same terminal you launch from, verify it, and start ComfyUI again. + +```bash +# macOS / Linux +export COMFYUI_DROPSEND_ALLOW_SETUP=1 +echo $COMFYUI_DROPSEND_ALLOW_SETUP # prints: 1 +``` + +```cmd +:: Windows (Command Prompt) +set COMFYUI_DROPSEND_ALLOW_SETUP=1 +echo %COMFYUI_DROPSEND_ALLOW_SETUP% +``` + +```powershell +# Windows (PowerShell) +$env:COMFYUI_DROPSEND_ALLOW_SETUP = "1" +echo $env:COMFYUI_DROPSEND_ALLOW_SETUP +``` + +For RunPod or Docker, add the variable to the pod template and restart. + +> The variable must be set in the **same shell that launches ComfyUI**. Setting it in one terminal and starting ComfyUI from a different one (or via Pinokio, ComfyUI Desktop, a launcher script, etc.) will not work. Adding it to `~/.bashrc` or `~/.zshrc` and opening a fresh terminal also works. + +### "Browser delivery refused" + +The Setup Node printed this because your prompt was submitted without a `client_id` (typical for `curl` or SDK submissions that omit it). Submitting that way would broadcast credentials to every connected WebSocket client, so the node refuses. Submit the Setup workflow from the ComfyUI web UI instead, or switch `storage_method` to `env_file` to write to disk. + +### Browser panel did not appear after `display_only` setup +- Re-run the Setup Node. Credentials are not stored on the pod in this mode, so the panel is the only retrieval path and it regenerates on each run. +- Check the browser's popup or panel blocker. +- If it still does not appear, switch `storage_method` to `env_file` and `cat` the `.env` file from a shell. + +### Authorization failed +- Confirm `COMFYUI_DROPSEND_ALLOW_SETUP=1` is set (see above). +- Re-run the Setup Node with `reconnect=True` to clear stale state, then retry. +- Generate a fresh auth code from Dropbox. --- -## ⚠️ Security Best Practices +## Security Best Practices -1. **Never commit your `.env` file** — Add to `.gitignore` -2. **Backup your encryption key** — Without it, encrypted files cannot be recovered -3. **Use secure key storage** — Prefer Keychain/Environment Variables over plain text +1. **Never commit your `.env` file.** It is already in `.gitignore`. +2. **Back up your encryption key.** Without it, encrypted files cannot be recovered. +3. **Prefer Keychain or environment variables** over plaintext storage of the key. +4. **Bind ComfyUI to localhost or front it with an authenticating proxy.** ComfyUI's `/prompt` endpoint accepts any submission unauthenticated; on a publicly-reachable host that means anyone can queue workflows on your machine. Either bind to `127.0.0.1` (default) and tunnel in via SSH/VPN, or place ComfyUI behind a reverse proxy that enforces HTTP basic auth or OAuth. The DropSend protections layered on top assume the operator is the only person with workflow-submit access; without that, the `COMFYUI_DROPSEND_ALLOW_SETUP` gate is your last line of defense. + +### Encryption key rotation + +The Fernet key in `COMFYUI_ENCRYPTION_KEY` is symmetric: the same key encrypts and decrypts. Practical implications: + +- **Old `.enc` files cannot be decrypted with a new key.** If you rotate the key while previously-encrypted files still live in your Dropbox, those files become permanently unreadable unless you keep the old key on hand (e.g. in a labelled backup). Decide before rotating: re-download and re-encrypt against the new key, accept the loss, or stash the old key in a labelled secrets vault entry (e.g. `COMFYUI_ENCRYPTION_KEY_2025_archive`). +- **A leaked key compromises everything encrypted under it.** If you suspect the key has been exposed (committed to git, pasted into a chat, etc.), generate a fresh key, re-encrypt files you need going forward, and delete or replace the old `.enc` files in Dropbox. The leaked key remains valid for any copy of the old files an attacker may already have. +- **Generating a new key.** Re-run the Setup Node with `encryption_key_method = Display Only` (or `save to .env`). Each run generates a fresh `Fernet.generate_key()`. Copy the new value into your secrets store and restart the pod. + +#### Recovering files encrypted with an old key + +If you have `.enc` files that were encrypted with an older key (whether you rotated deliberately or are upgrading from v1.0.x), this is the recovery process: + +1. **Locate the old key.** Wherever you stored it: password manager, secrets vault, old `.env` file, screenshot of the original Setup Node output panel. The Fernet key looks like `Q2xVZi1...rjs=` (Base64, 44 characters). +2. **Download the `.enc` files locally.** Don't decrypt on the cloud pod, that re-introduces the plaintext to the pod's filesystem. +3. **Set the OLD key as `COMFYUI_ENCRYPTION_KEY` in your local shell**: + + ```bash + # macOS / Linux (one-shot, just for the decrypt session) + export COMFYUI_ENCRYPTION_KEY="" + ``` + ```cmd + :: Windows Command Prompt + set COMFYUI_ENCRYPTION_KEY= + ``` + +4. **Run the decrypt script** from the [Decryption section](#decryption-local-use-only) above against the folder of `.enc` files. The script reads `COMFYUI_ENCRYPTION_KEY` from the environment, so whichever key is currently set is the one used. +5. **(Optional) Re-encrypt with the new key.** If you want the recovered files re-uploaded to Dropbox under the new key, swap `COMFYUI_ENCRYPTION_KEY` to the new value and run the matching encrypt script in `scripts//`. +6. **Wipe the old key from your shell** when finished: + + ```bash + unset COMFYUI_ENCRYPTION_KEY # macOS / Linux + set COMFYUI_ENCRYPTION_KEY= # Windows cmd + ``` + +If the old key was leaked (per the v1.1.0 advisory below) and you're recovering files only because you wanted them back: be aware that anyone with a copy of both the leaked key AND a copy of the `.enc` file can decrypt it. Re-uploading under a fresh key only protects the *new* uploads, not the old `.enc` files that were already in attacker-reachable storage. + +### Uninstalling / disconnecting + +When you stop using DropSend (uninstalling the plugin, decommissioning a pod, etc.), do these steps in order so leaked credentials cannot be reused: + +1. **Disconnect the Dropbox app from your account.** Go to , find the app, and click **Disconnect**. This invalidates the refresh token at Dropbox; even a copy of the token sitting in someone's clipboard becomes useless. *(Running the Setup Node with `reconnect=True` does this automatically via the API — same effect, different trigger.)* +2. **Reset the app secret.** Go to , click your app → **Settings** → next to **App secret**, click **Show**, then **Reset**. This invalidates any cached secret that was paired with the (now-revoked) refresh token. Without both halves, no further token refresh is possible even if the old values were captured. +3. **Remove credentials from your platform's secrets store.** Delete `DROPBOX_APP_KEY`, `DROPBOX_APP_SECRET`, `DROPBOX_REFRESH_TOKEN`, and `COMFYUI_ENCRYPTION_KEY` from RunPod Secrets / Docker env / systemd EnvironmentFile / wherever they're configured. Restart the pod after removal so the env vars are no longer in process memory. +4. **Delete `.env`** from the plugin directory if you used `storage_method = env_file`. +5. **Decide what to do with previously-uploaded `.enc` files.** Files already in Dropbox under your account were encrypted by the operator who held `COMFYUI_ENCRYPTION_KEY`. If that key was leaked, anyone with the key can still decrypt the files. Delete files you don't need, or re-download and re-encrypt with a fresh key. + +### Threat model for network-reachable ComfyUI hosts + +If your ComfyUI is reachable over the network (RunPod, tunnels, LAN, public web UI), anyone who can submit a workflow can in principle set node inputs. To keep DropSend safe in that setting, the nodes enforce these protections. + +- **`watch_folder` is clamped to the ComfyUI output directory.** The AutoUploader runs a recursive Watchdog observer that uploads everything it sees, so an unrestricted path would be an arbitrary-file-read primitive. By default, `watch_folder` must resolve inside the directory returned by `folder_paths.get_output_directory()`. To monitor an additional location, set `COMFYUI_DROPSEND_ALLOWED_WATCH_PATHS` on the host (`os.pathsep`-separated absolute paths) before starting ComfyUI. Workflow inputs cannot expand this list. + +- **The Setup Node refuses to write or clear credentials unless explicitly opted in.** This is what `COMFYUI_DROPSEND_ALLOW_SETUP=1` enforces. A remote workflow submitter can send JSON to ComfyUI but cannot set environment variables on your machine, so the gate proves a human with host access opted in. The AutoUploader never needs this flag. + +- **Setup Node secret fields are not workflow inputs.** `app_key`, `app_secret`, and `auth_code` do not appear in the node's `INPUT_TYPES`. They are entered only via a browser-only modal and POSTed to a same-origin route (`/dropsend/setup/stash`) that is gated on a live WebSocket session. They never enter the workflow JSON, PNG metadata, ComfyUI's localStorage auto-save, copy-pasted nodes, or the unauthenticated `/history` endpoint. + +- **The stash route is hardened.** Same-origin check (the `Origin` header must match the request `Host`, blocking cross-origin CSRF from another tab), `Content-Type: application/json` requirement, live-session check (the supplied `client_id` must match a connected WebSocket), per-IP rate limit (30 POSTs per 10 seconds), 32 KB body cap, JSON validation, 32-entry capacity with 60-second TTL, lock-protected access, one-shot consumption when `setup()` runs. + +- **Credentials never travel through the node's `ui` or `result` channels.** ComfyUI persists both into `PromptServer.history`, served on the unauthenticated `/history` HTTP endpoint. Instead the Setup Node delivers credentials via: + - **`env_file`** (local installs only): values are written to `.env` in the plugin directory (mode `0600`, race-free open) and the node returns only a non-secret confirmation. + - **`display_only`** (cloud or hosted ComfyUI): values are pushed to the originating browser session via a one-shot WebSocket message and rendered in a panel inside the workflow tab. Nothing is written to disk on the pod. The panel discards the data when closed. + +- **WebSocket deliveries are sid-targeted, never broadcast.** ComfyUI's `send_sync(event, data, sid=None)` would broadcast to every connected client when `sid` is `None`. The Setup Node refuses to send credential or refresh notifications without a `client_id` and returns a clear "Browser delivery refused" message. As defense in depth, the originating `client_id` is echoed inside each WebSocket payload and the JS handler verifies it matches `api.clientId` before rendering the credentials panel. + +- **Reconnect revokes the Dropbox refresh token at the source.** Running Setup with `reconnect=True` calls `POST /2/auth/token/revoke` against `api.dropboxapi.com` (8-second timeout) so the previously-issued refresh token cannot be reused even if it leaked out of band. Local cleanup proceeds regardless of revocation outcome. + +- **Logging stores no secrets.** The plugin's `dropsend.log` records file paths, watcher events, and errors. No tokens, refresh tokens, app secrets, or encryption keys are written to logs or stdout in plaintext. The post-setup banner uses last-4-character redaction so values are not captured by stdout aggregators. The log uses `RotatingFileHandler` (5 MB per file, 3 backups) so it cannot grow unbounded; on a long-lived host disk usage is capped at roughly 20 MB. + +### Additional considerations + +- **`COMFYUI_DROPSEND_ALLOW_SETUP` is process-wide, not per-action.** Once set, every workflow submission in that ComfyUI process is unblocked, including hostile submissions during the setup window. Recommended discipline: set the gate, run Setup once, restart ComfyUI without the gate. + +- **The OAuth authorization URL contains your Dropbox `app_key`.** Dropbox treats `app_key` as a public identifier (it appears in every authorization URL), but the URL string itself ends up in `/history` when the Setup Node returns it during the first run. This reveals which Dropbox app the host is paired with. It does not, on its own, allow access to your data. + +- **Plain ComfyUI runs over HTTP.** The browser-only credential delivery in `display_only` mode rides the same WebSocket the rest of ComfyUI uses, in cleartext on the wire. On a network you do not fully trust, terminate ComfyUI behind HTTPS (reverse proxy, tunnel) before relying on this path. The most conservative alternative is to run the Setup Node on a local ComfyUI install and copy the values into your cloud secrets manager directly. Credentials never touch the cloud pod's filesystem or its network. + +- **Multi-tenant hosts: the plugin directory listing is visible.** Plugin files are installed `0o755` (world-readable directory listing). The `.env` inside is `0o600` so its contents are protected, but other local users can run `ls` on the plugin dir and see that you have a `.env` (signaling "this user is paired with Dropbox"). Single-user machines are unaffected. On a multi-tenant box, set the plugin directory to `0o700` if your ComfyUI process runs as the only consumer, or accept the metadata leak. + +- **Reconnect-revocation can fail silently if Dropbox is unreachable.** If `reconnect=True` cannot mint a fresh access token (network outage, refresh token already invalidated, etc.), local cleanup proceeds but the token at Dropbox stays alive. The failure is logged at `ERROR` level (`dropsend.log` and stdout) with explicit instructions to manually disconnect at . **Watch for the "Token revocation FAILED" line** when reconnecting; if you see it, finish the disconnect manually. + +- **Dropbox SDK error messages may appear in `dropsend.log`.** When an upload or token-refresh call fails, the SDK exception is logged. Most failure modes don't include credential material, but reviewing the log before sharing it (e.g. with support) is good practice. --- -## 🧪 Tested On +## Tested On - macOS 13+ (Ventura, Sonoma) - Python 3.10 / 3.11 -- ComfyUI (Feb 2026) +- ComfyUI (May 2026) - RunPod GPU instances --- -## 📁 Repository Structure +## Repository Structure ``` ComfyUI_DropSendNode/ @@ -317,10 +473,12 @@ ComfyUI_DropSendNode/ ├── dropbox_auth_manager.py ├── encrypt_file.py ├── monitor_output.py -├── oauth_handler.py +├── safe_paths.py ├── requirements.txt ├── README.md ├── .gitignore +├── web/ +│ └── dropbox_oauth.js └── scripts/ ├── decrypt_folder.py ├── mac/ @@ -336,10 +494,36 @@ ComfyUI_DropSendNode/ --- +## Changelog + +### v1.1.0 — Setup Node refactor + security hardening + +**Security fixes (advisory):** earlier versions of the Setup Node accepted `app_key`, `app_secret`, and `auth_code` as workflow inputs and delivered credentials over a `send_sync(event, data)` call without an explicit `sid` argument. On ComfyUI hosts reachable over a network, both paths leaked credentials: + +- **WebSocket broadcast.** When `PromptServer.client_id` was `None` (typical for CLI/API submissions that omit `client_id`), `send_sync(..., None)` broadcast credential payloads to every connected browser tab on the same instance. +- **Workflow persistence.** `app_key`/`app_secret`/`auth_code` typed into the node's text fields were serialized into saved workflow JSON, ComfyUI's localStorage auto-save, embedded PNG metadata of any image generated during the session, copy-pasted nodes, and the unauthenticated `/history` HTTP endpoint. + +If you ran a previous version of the Setup Node on a network-reachable host, treat the corresponding `app_key` / `app_secret` / `refresh_token` as compromised: revoke the Dropbox app, reset the app secret, and re-issue a refresh token. See **Uninstalling / disconnecting** above. + +**v1.1.0 closes both vectors via:** +- Removing `app_key` / `app_secret` / `auth_code` from the Setup Node's `INPUT_TYPES` entirely. Credentials are now entered through a browser-only modal that POSTs to a same-origin route, and never become workflow inputs at any layer. +- Refusing to call `send_sync` for credential events when `client_id` is `None`. Defense in depth: the `client_id` is echoed inside each WebSocket payload and verified by the JS handler against `api.clientId` before rendering the credentials modal. +- Hardening the new `/dropsend/setup/stash` route with a live-WebSocket-session check, per-IP rate limit, body cap, and 60-second TTL on stashed entries. +- Revoking the Dropbox refresh token at the source on `reconnect=True` (8-second timeout, local cleanup proceeds regardless). + +**Other changes in this release:** +- `folder_format` dropdown for AutoUploader (`project_name` default + five worldwide date formats). +- Single-Observer fix for the macOS `_fsevents` conflict that had prevented `.enc` files from being picked up by the upload watcher. +- Auto-trigger modal after Run 1 prints the OAuth URL banner. +- Branded `📦👀 / 📦🔐 / 📦📤` log emojis for watching/encrypted/sent. +- Centralized logging in `__init__.py` so log records actually persist to `dropsend.log`. + +--- + ## License MIT --- -Shout-out to Adam for his contributions to this node build! +Shout-out to Adam for his contributions to this node build. diff --git a/__init__.py b/__init__.py index 6afe825..78bcfe8 100644 --- a/__init__.py +++ b/__init__.py @@ -1,5 +1,74 @@ # ComfyUI_DropSendNode/__init__.py # Register DropSend Setup + AutoUploader nodes +import os +import logging +import logging.handlers +from dotenv import load_dotenv + +# --------------------------------------------------------------------------- +# Logging +# --------------------------------------------------------------------------- +# Attach a FileHandler to the root logger so every child logger in this +# plugin (`logging.getLogger(__name__)` in our modules) gets its records +# persisted to dropsend.log alongside ComfyUI's own stdout. We do NOT +# use logging.basicConfig() here: ComfyUI's main.py configures the root +# logger before our package is imported, and basicConfig is a no-op +# once any caller has already configured root. +# +# Race-free perms: pre-create the file with 0o600 via os.open() before +# FileHandler can create it under the default umask (typically 0o644). +# A follow-up chmod tightens perms if the file already existed with +# looser bits. +_LOG_PATH = os.path.join(os.path.dirname(__file__), "dropsend.log") +try: + _fd = os.open(_LOG_PATH, os.O_CREAT | os.O_WRONLY | os.O_APPEND, 0o600) + os.close(_fd) +except OSError: + pass +_root_logger = logging.getLogger() +if not any( + isinstance(h, logging.FileHandler) + and getattr(h, "baseFilename", "") == _LOG_PATH + for h in _root_logger.handlers +): + try: + # Rotating handler caps disk use: 5 MB per file, 3 backups + + # current = 4 files = ~20 MB max. On a busy host, plain + # FileHandler grows unbounded over months; rotation prevents + # a tiny background process from filling someone's home dir. + _fh = logging.handlers.RotatingFileHandler( + _LOG_PATH, + maxBytes=5 * 1024 * 1024, + backupCount=3, + ) + _fh.setFormatter( + logging.Formatter("%(asctime)s - %(levelname)s - %(name)s - %(message)s") + ) + _root_logger.addHandler(_fh) + # If ComfyUI didn't set a root level (or set it higher than INFO), + # raise enough that our INFO records actually reach the handler. + if _root_logger.level == logging.NOTSET or _root_logger.level > logging.INFO: + _root_logger.setLevel(logging.INFO) + except OSError: + pass +try: + os.chmod(_LOG_PATH, 0o600) +except OSError: + pass + +# --------------------------------------------------------------------------- +# .env loading +# --------------------------------------------------------------------------- +# Load .env from the plugin directory at import time so DROPBOX_APP_KEY, +# DROPBOX_APP_SECRET, DROPBOX_REFRESH_TOKEN, COMFYUI_ENCRYPTION_KEY, and +# the uploader's persisted settings are visible in os.environ before any +# node runs. override=False is intentional — host-injected env vars +# (RunPod secrets, Docker env, systemd EnvironmentFile) take precedence +# over the plugin's local .env. +_PLUGIN_ENV = os.path.join(os.path.dirname(__file__), ".env") +if os.path.exists(_PLUGIN_ENV): + load_dotenv(_PLUGIN_ENV, override=False) + from .dropsend_uploader_node import NODE_CLASS_MAPPINGS as RUN_CLASS, NODE_DISPLAY_NAME_MAPPINGS as RUN_DISPLAY from .dropsend_setup_node import NODE_CLASS_MAPPINGS as SETUP_CLASS, NODE_DISPLAY_NAME_MAPPINGS as SETUP_DISPLAY NODE_CLASS_MAPPINGS = {} @@ -10,18 +79,3 @@ NODE_DISPLAY_NAME_MAPPINGS.update(RUN_DISPLAY) NODE_DISPLAY_NAME_MAPPINGS.update(SETUP_DISPLAY) # Define web directory for JavaScript extensions WEB_DIRECTORY = "./web" -# Register OAuth callback route with ComfyUI server -def register_oauth_routes(): - """Register OAuth callback routes with ComfyUI's PromptServer""" - try: - from server import PromptServer - from .oauth_handler import handle_oauth_callback - - # Add the OAuth callback route - PromptServer.instance.app.router.add_get('/oauth/dropbox/callback', handle_oauth_callback) - print("[DropSend] Registered OAuth callback route: /oauth/dropbox/callback") - - except Exception as e: - print(f"[DropSend] Warning: Could not register OAuth routes: {e}") -# Register routes when the node is loaded -register_oauth_routes() diff --git a/dropbox_auth_manager.py b/dropbox_auth_manager.py index 28a82c1..3fb34a7 100644 --- a/dropbox_auth_manager.py +++ b/dropbox_auth_manager.py @@ -1,107 +1,31 @@ # dropbox_auth_manager.py import os +import logging import requests import json +logger = logging.getLogger(__name__) + class DropboxAuthManager: - def __init__(self, app_key=None, app_secret=None): - # Always store provided credentials + def __init__(self, app_key=None, app_secret=None, refresh_token=None): self.app_key = app_key self.app_secret = app_secret - self.refresh_token = None - - # Try to load from file storage if no credentials provided - if app_key is None or app_secret is None: - self._try_load_from_file() - + self.refresh_token = refresh_token + def _get_credentials_file_path(self): - """Get path to credentials file""" + """Path to a legacy JSON credential file from older versions. + + The current code never writes this file — credentials live in + `.env` (or are delivered to the browser via WebSocket and never + touch disk). The path is kept only so reset() can clean up a + stale file left over from earlier installs. + """ plugin_dir = os.path.dirname(os.path.abspath(__file__)) return os.path.join(plugin_dir, ".dropbox_credentials.json") - - def _try_load_from_file(self): - """Try to load credentials from JSON file""" - try: - credentials_path = self._get_credentials_file_path() - if os.path.exists(credentials_path): - with open(credentials_path, 'r') as f: - creds = json.load(f) - - if self.app_key is None: - self.app_key = creds.get("app_key") - if self.app_secret is None: - self.app_secret = creds.get("app_secret") - if self.refresh_token is None: - self.refresh_token = creds.get("refresh_token") - - print(f"[DropboxAuthManager] Loaded credentials from file: {credentials_path}") - - except Exception as e: - print(f"[DropboxAuthManager] Could not load from credentials file: {e}") def is_connected(self): - # Load from file if we don't have credentials yet - if not (self.app_key and self.app_secret and self.refresh_token): - self._try_load_from_file() return bool(self.app_key and self.app_secret and self.refresh_token) - def store_tokens(self, app_key, app_secret, refresh_token): - """Store tokens in JSON file""" - try: - credentials_path = self._get_credentials_file_path() - - credentials = { - "app_key": app_key, - "app_secret": app_secret, - "refresh_token": refresh_token - } - - print(f"[DropboxAuthManager] Storing tokens in file: {credentials_path}") - with open(credentials_path, 'w') as f: - json.dump(credentials, f, indent=2) - - # Set appropriate file permissions (readable only by owner) - os.chmod(credentials_path, 0o600) - - # Update instance variables after successful storage - self.app_key = app_key - self.app_secret = app_secret - self.refresh_token = refresh_token - print(f"[DropboxAuthManager] Tokens stored successfully in credentials file") - - except Exception as e: - error_msg = f"Failed to store Dropbox tokens: {e}" - print(f"[DropboxAuthManager] {error_msg}") - raise RuntimeError(error_msg) - - def exchange_auth_code(self, auth_code, redirect_uri=None): - if not (self.app_key and self.app_secret): - raise ValueError("App key and secret must be set before exchanging auth code.") - - data = { - "code": auth_code, - "grant_type": "authorization_code", - "client_id": self.app_key, - "client_secret": self.app_secret - } - - # Include redirect_uri if it was used in the authorization request - if redirect_uri: - data["redirect_uri"] = redirect_uri - - headers = {"Content-Type": "application/x-www-form-urlencoded"} - response = requests.post("https://api.dropbox.com/oauth2/token", headers=headers, data=data) - response.raise_for_status() - - creds = response.json() - refresh_token = creds.get("refresh_token") - if not refresh_token: - raise RuntimeError("Failed to obtain refresh token from Dropbox.") - - self.store_tokens(self.app_key, self.app_secret, refresh_token) - self.refresh_token = refresh_token - return True - def exchange_auth_code_raw(self, auth_code, redirect_uri=None): """Exchange auth code for tokens without storing them""" if not (self.app_key and self.app_secret): @@ -119,34 +43,29 @@ class DropboxAuthManager: data["redirect_uri"] = redirect_uri headers = {"Content-Type": "application/x-www-form-urlencoded"} - - print(f"[DropboxAuthManager] Token exchange request data: {data}") - print(f"[DropboxAuthManager] Making request to: https://api.dropbox.com/oauth2/token") - + + # Do not log `data` or `response.text` here — both contain secrets + # (client_secret, refresh_token, access_token). On platforms that + # capture stdout (RunPod, Docker, CI) those would land in shared logs. response = requests.post("https://api.dropbox.com/oauth2/token", headers=headers, data=data) - - print(f"[DropboxAuthManager] Response status: {response.status_code}") - print(f"[DropboxAuthManager] Response text: {response.text}") - - # If 400 error, try without it. - # This handles cases where the auth code was obtained without a callback URL + + print(f"[DropboxAuthManager] Token exchange response status: {response.status_code}") + + # If 400 error, try without redirect_uri. This handles cases where + # the auth code was obtained without a callback URL. if response.status_code == 400 and redirect_uri: - print(f"[DropboxAuthManager] 400 error with callback URL, trying without callback URL...") - + print("[DropboxAuthManager] 400 with redirect_uri, retrying without it") + data_without_redirect = { "code": auth_code, "grant_type": "authorization_code", "client_id": self.app_key, "client_secret": self.app_secret } - - print(f"[DropboxAuthManager] Retry request data (no callback URL): {data_without_redirect}") - + response = requests.post("https://api.dropbox.com/oauth2/token", headers=headers, data=data_without_redirect) - print(f"[DropboxAuthManager] Retry response status: {response.status_code}") - print(f"[DropboxAuthManager] Retry response text: {response.text}") - + response.raise_for_status() return response.json() @@ -174,12 +93,10 @@ class DropboxAuthManager: """Clear stored tokens and optionally revoke authorization with Dropbox""" if revoke_token: - # Load credentials from file first if we don't have them in memory - if not (self.refresh_token and self.app_key and self.app_secret): - print("[DropboxAuthManager] Loading credentials for token revocation...") - self._try_load_from_file() - - # First, revoke the token with Dropbox if requested and possible + # Revoke the token with Dropbox if we have it in memory. + # The legacy auto-load from .dropbox_credentials.json is gone; + # callers that want to revoke must construct this manager with + # creds (or set them) before calling reset(revoke_token=True). if self.refresh_token and self.app_key and self.app_secret: try: print("[DropboxAuthManager] Revoking token with Dropbox...") @@ -199,17 +116,41 @@ class DropboxAuthManager: response = requests.post( "https://api.dropboxapi.com/2/auth/token/revoke", headers=headers, - json=revoke_data + json=revoke_data, + # Bound the wait so a Dropbox outage or DNS + # failure doesn't hang the user mid-reconnect. + # Local-cleanup is the priority here; the + # token-revoke is best-effort (and Dropbox + # tokens expire on their own anyway). + timeout=8, ) if response.status_code == 200: - print("[DropboxAuthManager] Token successfully revoked with Dropbox") + msg = "[DropboxAuthManager] Token successfully revoked with Dropbox" + print(msg) + logger.info(msg) else: - print(f"[DropboxAuthManager] Token revocation failed: {response.status_code} - {response.text}") - + # Don't log response.text — it can echo the access token on some failures. + msg = ( + f"[DropboxAuthManager] Token revocation FAILED at Dropbox " + f"(HTTP {response.status_code}). The refresh token may still " + f"be valid. Manually disconnect at " + f"https://www.dropbox.com/account/connected_apps to be sure." + ) + print(msg) + logger.error(msg) except Exception as e: - print(f"[DropboxAuthManager] Could not revoke token with Dropbox: {e}") - # Continue with local cleanup even if revocation fails + # Common case: Dropbox unreachable, refresh token already + # invalidated, or get_access_token() couldn't mint one. + # Local cleanup proceeds, but the operator needs to know + # the token may still be live at Dropbox. + msg = ( + f"[DropboxAuthManager] Token revocation FAILED locally: {e}. " + f"The refresh token may still be valid at Dropbox. Manually " + f"disconnect at https://www.dropbox.com/account/connected_apps." + ) + print(msg) + logger.error(msg) else: print("[DropboxAuthManager] Skipping token revocation (revoke_token=False)") diff --git a/dropbox_upload.py b/dropbox_upload.py index 4a06030..af5f6f3 100644 --- a/dropbox_upload.py +++ b/dropbox_upload.py @@ -6,14 +6,7 @@ import requests from dropbox.exceptions import ApiError import logging -logging.basicConfig( - level=logging.INFO, - format='%(asctime)s - %(levelname)s - %(message)s', - handlers=[ - logging.FileHandler('dropsend.log'), - logging.StreamHandler() - ] -) +# Logging configured by the package __init__ — see __init__.py. logger = logging.getLogger(__name__) def get_token(): @@ -81,7 +74,7 @@ def upload_to_dropbox(local_file_path, dropbox_folder="/ComfyUI_Output_Files"): if local_hash != remote_hash: raise Exception(f"Upload integrity check failed for {dropbox_path}") - logger.info(f"📦✅ Upload Verified: {dropbox_path}") + logger.info(f"📦📤 Sent: {dropbox_path}") return True # Indicate successful upload and verification except Exception as e: logger.error(f"Upload failed: {str(e)}") diff --git a/dropsend_setup_node.py b/dropsend_setup_node.py index 9ef5860..d908aad 100644 --- a/dropsend_setup_node.py +++ b/dropsend_setup_node.py @@ -1,6 +1,9 @@ # dropsend_setup_node.py import os +import re +import time +import threading import requests import webbrowser import uuid @@ -8,25 +11,265 @@ import json from dotenv import load_dotenv, dotenv_values import urllib.parse from .dropbox_auth_manager import DropboxAuthManager -from .oauth_handler import OAuthCallbackHandler, get_server_base_url from cryptography.fernet import Fernet + +# --------------------------------------------------------------------------- +# Out-of-band secret transport +# +# ComfyUI persists every queued prompt's input JSON in +# PromptServer.history, which is exposed on the unauthenticated +# /history endpoint. If the Setup Node accepts app_key/app_secret/ +# auth_code as workflow inputs, those values are visible there for the +# lifetime of history entry — a real exposure on any network-reachable +# pod (RunPod tunnel, public ComfyUI UI, etc.). +# +# To close it: the JS extension intercepts Queue, POSTs the secret +# widget values to /dropsend/setup/stash (this module's route), clears +# the widgets, then lets the queue go through. The prompt JSON ComfyUI +# stores in history therefore has empty strings for the secret fields. +# When this node's setup() actually runs, it pulls the real values +# from the stash (one-shot, keyed by the originating client_id). +# +# Entries auto-expire after _SETUP_STASH_TTL_SEC so a stash POST that's +# never consumed (user closed the tab between stash and queue, etc.) +# doesn't sit in memory. +# --------------------------------------------------------------------------- + +_setup_secret_stash = {} +_setup_secret_lock = threading.Lock() +_SETUP_STASH_TTL_SEC = 60 +_SETUP_STASH_MAX_ENTRIES = 32 # cap to bound memory under stash-spam abuse +_CLIENT_ID_PATTERN = re.compile(r"^[A-Za-z0-9._-]{1,128}$") + +# Per-IP rate limit on the stash route. Defense-in-depth against an +# attacker on the same network firing thousands of stash POSTs to +# evict a legitimate user's entry between Save and Queue (the entry +# eviction policy is oldest-first to favour fresh writes, but a +# sufficiently fast attacker can still race). +_STASH_RL_WINDOW_SEC = 10 +_STASH_RL_MAX_PER_WINDOW = 30 +_stash_rl_state = {} +_stash_rl_lock = threading.Lock() + + +def _stash_rl_check(remote_ip): + """Return True if `remote_ip` is under the per-window POST budget, + False if it should be 429'd. Updates the bucket in place.""" + if not remote_ip: + return True # don't block requests we can't attribute + now = time.time() + cutoff = now - _STASH_RL_WINDOW_SEC + with _stash_rl_lock: + # Lazy GC: only walk the dict every ~50 hits, otherwise this + # is O(N) per request and turns into its own DoS. + if len(_stash_rl_state) > 256: + stale = [ip for ip, hits in _stash_rl_state.items() if not hits or hits[-1] < cutoff] + for ip in stale: + _stash_rl_state.pop(ip, None) + hits = _stash_rl_state.setdefault(remote_ip, []) + # Drop hits outside the window. + i = 0 + while i < len(hits) and hits[i] < cutoff: + i += 1 + if i: + del hits[:i] + if len(hits) >= _STASH_RL_MAX_PER_WINDOW: + return False + hits.append(now) + return True + + +def _stash_prune_expired_locked(): + now = time.time() + expired = [k for k, (ts, _v) in _setup_secret_stash.items() if now - ts > _SETUP_STASH_TTL_SEC] + for k in expired: + _setup_secret_stash.pop(k, None) + + +def _stash_set(client_id, payload): + with _setup_secret_lock: + _stash_prune_expired_locked() + if len(_setup_secret_stash) >= _SETUP_STASH_MAX_ENTRIES and client_id not in _setup_secret_stash: + # Evict the oldest entry rather than refuse the write — the + # legitimate user's most recent attempt should win over + # whatever's been sitting around. + oldest_key = min(_setup_secret_stash, key=lambda k: _setup_secret_stash[k][0]) + _setup_secret_stash.pop(oldest_key, None) + _setup_secret_stash[client_id] = (time.time(), payload) + + +def _stash_consume(client_id): + with _setup_secret_lock: + _stash_prune_expired_locked() + entry = _setup_secret_stash.pop(client_id, None) + if entry is None: + return None + _ts, payload = entry + return payload + + +def _register_stash_route_once(): + """Register the /dropsend/setup/stash POST handler on PromptServer. + + Idempotent — repeat calls are no-ops. Called at module import; if + PromptServer isn't ready yet, registration is silently skipped (the + Setup Node falls back to reading secrets from prompt inputs, the + legacy/insecure path). + """ + if getattr(_register_stash_route_once, "_registered", False): + return + try: + from server import PromptServer + from aiohttp import web + except Exception: + return + instance = getattr(PromptServer, "instance", None) + if instance is None or not hasattr(instance, "routes"): + return + + @instance.routes.post("/dropsend/setup/stash") + async def _stash_handler(request): + # Same-origin enforcement. The browser sends an Origin header on + # POSTs; we require it to match the host the request was made to. + # Without this, a malicious page in another tab could attempt a + # CSRF POST against http://127.0.0.1:8188 — and while the live- + # WebSocket-session check would block injection without a known + # client_id, an attacker who sniffed the WS could still try. + # Origin check closes the cross-origin path entirely. + origin = request.headers.get("Origin", "") + if origin: + try: + from urllib.parse import urlparse + origin_host = urlparse(origin).netloc + except Exception: + origin_host = "" + if not origin_host or origin_host != request.host: + return web.json_response({"error": "cross-origin denied"}, status=403) + + # Content-Type lockdown: only accept JSON. Closes the confused- + # deputy class where a form-encoded body is parsed as JSON. + if request.content_type and request.content_type != "application/json": + return web.json_response( + {"error": "Content-Type must be application/json"}, + status=415, + ) + + # Per-IP rate limit. Defense-in-depth against stash-spam DoS + # attempting to evict a legitimate user's entry by overflowing + # the entry cap. + remote_ip = request.headers.get("X-Forwarded-For", request.remote or "").split(",")[0].strip() + if not _stash_rl_check(remote_ip): + return web.json_response({"error": "rate limit"}, status=429) + + # Reject oversized bodies before json-decoding to avoid a + # malicious large-payload memory spike. + if request.content_length is not None and request.content_length > 32 * 1024: + return web.json_response({"error": "payload too large"}, status=413) + try: + data = await request.json() + except Exception: + return web.json_response({"error": "invalid json"}, status=400) + client_id = data.get("client_id") if isinstance(data, dict) else None + if not client_id or not isinstance(client_id, str) or not _CLIENT_ID_PATTERN.match(client_id): + return web.json_response({"error": "client_id required"}, status=400) + + # Authenticate by liveness: only accept stash writes for a + # client_id that currently has an active WebSocket connection + # to this PromptServer instance. Closes the "attacker on the + # same network injects credentials by guessing a victim's + # client_id" vector — the attacker would need both the + # client_id AND a live WS bound to it under that ID. + try: + sockets = getattr(instance, "sockets", None) + if not sockets or client_id not in sockets: + return web.json_response({"error": "client_id has no active WebSocket"}, status=403) + except Exception: + return web.json_response({"error": "internal"}, status=500) + + payload = { + "app_key": str(data.get("app_key") or ""), + "app_secret": str(data.get("app_secret") or ""), + "auth_code": str(data.get("auth_code") or ""), + } + # Drop entries that have nothing to stash, saves memory and + # avoids weird empty-stash-overrides-real-input behaviour. + if not any(payload.values()): + return web.json_response({"ok": True, "stashed": False}) + _stash_set(client_id, payload) + return web.json_response({"ok": True, "stashed": True}) + + _register_stash_route_once._registered = True + print("[DropSend Setup] Registered /dropsend/setup/stash route (out-of-band secret transport)") + + +_register_stash_route_once() + + +# Workflow inputs to the setup node can come from any caller that can submit +# a workflow to ComfyUI. On a network-reachable host that means a remote +# attacker can (a) wipe credentials via reconnect=True or (b) overwrite the +# stored Dropbox app to redirect uploads to their own account. We therefore +# require the operator to opt in by setting this env var on the host before +# the setup node will perform any state-changing action. +_SETUP_OPT_IN_VAR = "COMFYUI_DROPSEND_ALLOW_SETUP" +_SETUP_OPT_IN_HELP = ( + f"Setup is disabled. To allow this node to write or clear credentials, " + f"set {_SETUP_OPT_IN_VAR}=1 in the host environment before starting " + f"ComfyUI, or provision DROPBOX_APP_KEY / DROPBOX_APP_SECRET / " + f"DROPBOX_REFRESH_TOKEN directly via environment variables (e.g. RunPod " + f"secrets). This guard prevents remote workflow submitters from " + f"hijacking or wiping your Dropbox connection." +) + + +def _setup_opt_in_enabled(): + return os.getenv(_SETUP_OPT_IN_VAR, "").strip().lower() in ("1", "true", "yes") + + +# Names of fields treated as secrets when redacting the console banner. +# Every field the Setup Node emits is a credential, so all four are +# redacted. The destination folder is owned by the AutoUploader and +# never passes through this node. +_SECRET_FIELDS = { + "DROPBOX_APP_KEY", + "DROPBOX_APP_SECRET", + "DROPBOX_REFRESH_TOKEN", + "COMFYUI_ENCRYPTION_KEY", +} + + +def _redact(value, visible_tail=4): + """Return value with all but the last few characters masked.""" + if not value: + return "" + if len(value) <= visible_tail: + return "*" * len(value) + return "*" * (len(value) - visible_tail) + value[-visible_tail:] + + +def _redact_kv_line(line): + """Redact a 'NAME=value' line if NAME is in _SECRET_FIELDS.""" + name, sep, value = line.partition("=") + if sep and name in _SECRET_FIELDS: + return f"{name}={_redact(value)}" + return line + class DropSendSetupNode: @classmethod def INPUT_TYPES(cls): - # Always show all fields for simplicity - no dynamic field hiding + # Architecture: this node has NO credential-bearing inputs. + # app_key, app_secret, and auth_code never enter the workflow + # prompt JSON, never reach PromptServer.history, never get + # serialized into PNG metadata or saved workflows. They are + # entered by the user in a browser-only modal launched from + # the JS extension's "Set credentials…" button, POSTed + # directly to the same-origin route /dropsend/setup/stash, and + # consumed once on the next Queue from the in-process stash + # keyed by client_id. The only inputs on the node are + # configuration knobs that aren't sensitive. return { "required": { - "app_key": ("STRING", {"default": "", "multiline": False}), - "app_secret": ("STRING", {"default": "", "multiline": False}), - "auth_code": ("STRING", {"default": "", "multiline": False}), - "dropbox_dest_folder": ("STRING", {"default": "/Apps/ComfyUI_Output_Files"}), - }, - "optional": { - "reconnect": ("BOOLEAN", { - "label": "Reset stored credentials", - "default": False - }), "storage_method": (["env_file", "display_only"], { "label": "Credential Storage Method", "default": "display_only" @@ -34,7 +277,13 @@ class DropSendSetupNode: "encryption_key_method": (["off", "Display Only", "save to .env"], { "label": "Encryption Key Method", "default": "Display Only" - }) + }), + }, + "optional": { + "reconnect": ("BOOLEAN", { + "label": "Reset stored credentials", + "default": False + }), } } @@ -42,47 +291,128 @@ class DropSendSetupNode: OUTPUT_NODE = True FUNCTION = "setup" - def setup(self, dropbox_dest_folder, app_key=None, app_secret=None, auth_code=None, reconnect=False, storage_method="display_only", encryption_key_method="Display Only"): + @classmethod + def IS_CHANGED(cls, *args, **kwargs): + # Force re-execution on every Queue. Setup is intentionally + # side-effecting (writes/clears .env, exchanges auth codes, + # refreshes tokens) and the input dict here doesn't reflect + # the actual work — the real driver is the out-of-band stash + # entry, which ComfyUI's input-hash cache cannot see. Always + # returning NaN means setup() runs every time the user clicks + # Queue, which is the correct semantics for this node. + return float("NaN") + + def setup(self, storage_method="display_only", encryption_key_method="Display Only", reconnect=False): try: - print(f"[DropSend Setup] Called with:") - print(f" app_key: '{app_key}' (type: {type(app_key)}, bool: {bool(app_key)})") - print(f" app_secret: '{app_secret}' (type: {type(app_secret)}, bool: {bool(app_secret)})") - print(f" auth_code: '{auth_code}' (type: {type(auth_code)}, bool: {bool(auth_code)})") - print(f" reconnect: {reconnect}") - print(f" storage_method: {storage_method}") - print(f" encryption_key_method: {encryption_key_method}") - + print(f"[DropSend Setup] Called: reconnect={reconnect}, storage_method={storage_method}, encryption_key_method={encryption_key_method}") + + # Credentials live exclusively in the per-session out-of-band + # stash keyed by client_id, populated by the browser modal + # via POST /dropsend/setup/stash. There are no fallback + # paths — if the stash is empty for this client, the user + # has to click "Set credentials…" on the node and enter + # values there. This is the architectural guarantee that + # /history, PNG metadata, workflow JSON, and localStorage + # never see the secret fields. + app_key = None + app_secret = None + auth_code = None + try: + from server import PromptServer + sid = getattr(PromptServer.instance, "client_id", None) + if sid: + stashed = _stash_consume(sid) + if stashed: + app_key = stashed.get("app_key") or None + app_secret = stashed.get("app_secret") or None + auth_code = stashed.get("auth_code") or None + print("[DropSend Setup] Loaded secrets from out-of-band stash") + except Exception as e: + print(f"[DropSend Setup] Warning: could not consume secret stash: {e}") + + print(f"[DropSend Setup] Inputs present: app_key={bool(app_key)}, app_secret={bool(app_secret)}, auth_code={bool(auth_code)}") + # Initialize auth manager auth_manager = DropboxAuthManager() print(f"[DropSend Setup] Auth manager initialized") # Handle reconnect/reset request if reconnect: + if not _setup_opt_in_enabled(): + message = ( + "Reconnect refused: " + _SETUP_OPT_IN_HELP + ) + print(f"[DropSend Setup] {message}") + return {"ui": {"text": [message]}, "result": (message,)} + print("[DropSend Setup] Reconnect requested - clearing all credentials") - - # Clear all credentials (skip token revocation to avoid delays) + + # Populate the auth manager from os.environ (which + # was loaded from .env at module import) so the reset + # call has the credentials needed to revoke the + # refresh token at Dropbox. Without this, a leaked + # refresh_token + app_secret pair would still be valid + # at Dropbox until manually revoked. Revocation is + # best-effort with an 8-second timeout (see + # DropboxAuthManager.reset) — local cleanup proceeds + # regardless. + auth_manager.app_key = os.environ.get("DROPBOX_APP_KEY") or auth_manager.app_key + auth_manager.app_secret = os.environ.get("DROPBOX_APP_SECRET") or auth_manager.app_secret + auth_manager.refresh_token = os.environ.get("DROPBOX_REFRESH_TOKEN") or auth_manager.refresh_token + print("[DropSend Setup] Clearing all stored credentials") - auth_manager.reset(revoke_token=False) - + auth_manager.reset(revoke_token=True) + # Manually clear all credential files node_dir = os.path.dirname(__file__) - + # Clear .env file if it exists env_path = os.path.join(node_dir, ".env") if os.path.exists(env_path): print(f"[DropSend Setup] Removing .env file: {env_path}") os.remove(env_path) + + # Clear in-process os.environ for the credential keys. + # __init__.py's load_dotenv() copies .env values into + # os.environ at module import; deleting .env on disk + # does not unset those copies. Without this, the next + # Setup run hits the `env_vars_set` short-circuit at + # line ~165 and returns "credentials found in system + # environment variables" — even though the user is + # mid-reconfigure and expects to enter a new auth code. + # We don't touch DROPBOX_FOLDER (a path, not a credential) + # or COMFYUI_ENCRYPTION_KEY (kept across reconnects). + for key in ("DROPBOX_APP_KEY", "DROPBOX_APP_SECRET", "DROPBOX_REFRESH_TOKEN", "DROPBOX_ACCESS_TOKEN"): + if key in os.environ: + os.environ.pop(key, None) + print(f"[DropSend Setup] Cleared {key} from process environment") - # Send WebSocket message to trigger ComfyUI refresh after clearing credentials + # Send WebSocket notification to the originating browser + # so its auth fields refresh. Refuse to broadcast — if + # there's no client_id (e.g. CLI submission without one + # in the prompt JSON), every connected browser tab on + # this ComfyUI instance would otherwise refresh. try: from server import PromptServer - message_data = { - "type": "dropbox_reconnect_complete", - "success": True, - "message": "Credentials cleared - ComfyUI will refresh to show auth fields" - } - PromptServer.instance.send_sync("dropbox_reconnect_complete", message_data) - print(f"[DropSend Setup] Sent WebSocket notification for reconnect completion") + sid = getattr(PromptServer.instance, "client_id", None) + if not sid: + print( + "[DropSend Setup] Skipping reconnect-complete " + "broadcast: prompt has no client_id (CLI " + "submission?). Submit from the ComfyUI web UI " + "to receive the refresh notification." + ) + else: + message_data = { + "type": "dropbox_reconnect_complete", + "success": True, + "client_id": sid, + "message": "Credentials cleared - ComfyUI will refresh to show auth fields", + } + PromptServer.instance.send_sync( + "dropbox_reconnect_complete", message_data, sid + ) + print(f"[DropSend Setup] Sent WebSocket notification for reconnect completion") except Exception as e: print(f"[DropSend Setup] Warning: Could not send WebSocket notification: {e}") @@ -115,18 +445,27 @@ class DropSendSetupNode: if runpod_env_set: return ("Warning: Detected RunPod secrets. Using those instead.",) - # New setup flow using DropboxAuthManager + # New setup flow using DropboxAuthManager. + # + # Below this point the node accepts Dropbox app credentials from + # workflow inputs and persists them. On a remotely-reachable + # ComfyUI instance that flow is exploitable — a workflow author + # could swap in their own Dropbox app to redirect uploads. Gate + # it behind an explicit operator opt-in. + if not _setup_opt_in_enabled(): + message = _SETUP_OPT_IN_HELP + print(f"[DropSend Setup] {message}") + return {"ui": {"text": [message]}, "result": (message,)} + print(f"[DropSend Setup] Starting new setup flow") - + # Clean up the inputs first app_key_clean = app_key.strip() if app_key else "" app_secret_clean = app_secret.strip() if app_secret else "" auth_code_clean = auth_code.strip() if auth_code else "" - print(f"[DropSend Setup] Cleaned inputs:") - print(f" app_key_clean: '{app_key_clean}' (len: {len(app_key_clean)})") - print(f" app_secret_clean: '{app_secret_clean}' (len: {len(app_secret_clean)})") - print(f" auth_code_clean: '{auth_code_clean}' (len: {len(auth_code_clean)})") + # Log only the lengths, not the values themselves. + print(f"[DropSend Setup] Cleaned input lengths: app_key={len(app_key_clean)}, app_secret={len(app_secret_clean)}, auth_code={len(auth_code_clean)}") # Check if we have app credentials if not app_key_clean or not app_secret_clean: @@ -138,21 +477,59 @@ class DropSendSetupNode: if not auth_code_clean: print(f"[DropSend Setup] No auth code provided - generating OAuth URL for manual flow") auth_temp = DropboxAuthManager(app_key=app_key_clean) - + # Manual OAuth flow without redirect_uri (Dropbox will display the code) - oauth_url = auth_temp.get_oauth_url(require_reapprove=True) - + oauth_url = auth_temp.get_oauth_url(force_reapprove=True) + + # Print a high-visibility banner with the OAuth URL so the + # operator can see it directly in the ComfyUI terminal + # without needing to wire a Show Text node to the Setup + # Node's output. The URL contains only the OAuth client_id + # (Dropbox app_key) — semi-public per Dropbox's design, + # not a credential — so it's safe to print to console. + print() + print("=" * 80) + print("DROPSEND — DROPBOX AUTHORIZATION REQUIRED") + print("=" * 80) + print("Open this URL in your browser to authorize:") + print() + print(f" {oauth_url}") + print() + print("After authorizing, Dropbox will display an authorization code.") + print("Paste it into the credentials modal that auto-opened in your") + print("browser, then click Save and re-queue this workflow.") + print("=" * 80) + print() + + # Auto-open the credentials-entry modal in the originating + # browser so the user can paste the auth_code as soon as + # Dropbox shows it. Same client_id-only delivery pattern + # we use for the credentials_ready event — refuse if + # there's no client_id (CLI submission), otherwise the + # event would broadcast to every connected browser tab. try: - print(f"[DropSend Setup] Setting up manual OAuth popup...") - # JavaScript will automatically open a popup window - message = f"Dropbox OAuth Ready!\n\nClick the link below to authorize with Dropbox:\n\n{oauth_url}\n\nA popup window will open. After authorization, Dropbox will show your auth code.\nCopy the code and paste it into the 'auth_code' field above, then run this node again." - print(f"[DropSend Setup] OAuth URL ready for popup: {oauth_url}") + from server import PromptServer + sid = getattr(PromptServer.instance, "client_id", None) + if sid: + PromptServer.instance.send_sync( + "dropsend_credentials_needed", + {"client_id": sid, "stage": "auth_code"}, + sid, + ) + print("[DropSend Setup] Sent credentials-needed event to browser (auto-opens modal for auth_code paste)") except Exception as e: - print(f"[DropSend Setup] Error setting up OAuth: {e}") - message = f"Dropbox Authorization:\n\nPlease visit this URL to authorize:\n\n{oauth_url}\n\nAfter authorization, Dropbox will display your auth code. Copy it and paste into the 'auth_code' field above." - - print(f"[DropSend Setup] OAuth URL: {oauth_url}") - + print(f"[DropSend Setup] Warning: could not send credentials-needed event: {e}") + + message = ( + f"Dropbox OAuth Ready!\n\n" + f"Click the link below to authorize with Dropbox " + f"(also printed in the ComfyUI terminal):\n\n" + f"{oauth_url}\n\n" + f"A popup window will open. After authorization, Dropbox " + f"will show your auth code.\nCopy the code and paste it " + f"into the 'auth_code' field above, then run this node again." + ) + # Use ComfyUI's dynamic return format for better UI integration return { "ui": {"text": [message]}, @@ -176,70 +553,241 @@ class DropSendSetupNode: encryption_key = None if encryption_key_method != "off": encryption_key = Fernet.generate_key().decode() - - # Prepare .env lines - env_lines = [] + + # Route each credential to one of two destinations based on the + # user's two independent choices: + # + # storage_method = env_file | display_only + # encryption_key_method= save to .env | Display Only | off + # + # `env_file` / `save to .env` -> persist to .env on disk + # `display_only` / `Display Only` -> deliver to the originating + # browser via a WebSocket side-channel that does NOT pass + # through the node's `ui` or `result`. Both of those land in + # PromptServer.history (see ComfyUI execution.py — the + # history_result["outputs"] dict is built from ui_outputs), + # which is served on the unauthenticated /history endpoint + # and would expose any credential placed there. Cloud users + # (RunPod, Docker) explicitly choose `display_only` to keep + # credentials out of the pod's filesystem entirely. + env_writes = [] # (NAME, value) pairs to persist to .env + ws_payload = {} # NAME -> value, delivered via WebSocket only + + dropbox_creds = [ + ("DROPBOX_APP_KEY", app_key_clean), + ("DROPBOX_APP_SECRET", app_secret_clean), + ("DROPBOX_REFRESH_TOKEN", refresh_token), + ] if storage_method == "env_file": - env_lines.append(f"DROPBOX_APP_KEY={app_key_clean}") - env_lines.append(f"DROPBOX_APP_SECRET={app_secret_clean}") - env_lines.append(f"DROPBOX_REFRESH_TOKEN={refresh_token}") - env_lines.append(f"DROPBOX_FOLDER={dropbox_dest_folder}") + env_writes.extend(dropbox_creds) + else: + for name, value in dropbox_creds: + ws_payload[name] = value + if encryption_key_method == "save to .env" and encryption_key: - env_lines.append(f"COMFYUI_ENCRYPTION_KEY={encryption_key}") - - # Write to .env if there are lines to write - if env_lines: - node_dir = os.path.dirname(__file__) - env_path = os.path.join(node_dir, ".env") - with open(env_path, "w") as f: - f.write("\n".join(env_lines) + "\n") - - # Prepare display lines - display_lines = [] - if storage_method == "display_only": - display_lines.append(f"DROPBOX_APP_KEY={app_key_clean}") - display_lines.append(f"DROPBOX_APP_SECRET={app_secret_clean}") - display_lines.append(f"DROPBOX_REFRESH_TOKEN={refresh_token}") - display_lines.append(f"DROPBOX_FOLDER={dropbox_dest_folder}") - if encryption_key_method == "Display Only" and encryption_key: - display_lines.append(f"COMFYUI_ENCRYPTION_KEY={encryption_key}") - - # Build message - message = "" - if storage_method == "env_file": - message = "Dropbox connected successfully! Credentials saved to .env file." - elif storage_method == "display_only": - message = """Dropbox Connected Successfully! + env_writes.append(("COMFYUI_ENCRYPTION_KEY", encryption_key)) + elif encryption_key_method == "Display Only" and encryption_key: + ws_payload["COMFYUI_ENCRYPTION_KEY"] = encryption_key -===================================================================== -ENVIRONMENT VARIABLES - Copy & Paste Ready -===================================================================== + # Merge with any existing .env so re-running setup is non-destructive. + # + # - Non-setup keys (e.g. the AutoUploader's ENABLE_ENCRYPTION, + # POST_DELETE_ENC, etc.) survive a setup re-run unchanged. + # - Setup keys whose destination this run is NOT the .env file + # are dropped from disk: either they're being rewritten from + # env_writes, or they're being delivered via the browser-only + # WebSocket and the old on-disk copy is now stale. Switching + # from env_file -> display_only therefore actually scrubs the + # credential lines off disk, instead of leaving stale secrets + # in .env. + # - The race-free open (O_CREAT with mode 0o600) keeps the file + # from being world/group-readable in the open->chmod window. + # Keys the Setup Node "owns" — these get scrubbed from .env + # on a setup re-run that's not writing them back, so old + # values don't linger when switching env_file -> display_only. + # DROPBOX_FOLDER is intentionally absent: it's owned by the + # AutoUploader, not Setup, and would otherwise get wiped + # whenever the user re-runs Setup to rotate credentials. + SETUP_KEYS = { + "DROPBOX_APP_KEY", + "DROPBOX_APP_SECRET", + "DROPBOX_REFRESH_TOKEN", + "COMFYUI_ENCRYPTION_KEY", + } -""" + "\n".join(display_lines) + """ + node_dir = os.path.dirname(__file__) + env_path = os.path.join(node_dir, ".env") + + existing = {} + if os.path.exists(env_path): + existing = dict(dotenv_values(env_path)) + + preserved = {k: v for k, v in existing.items() if k not in SETUP_KEYS} + merged = dict(preserved) + for name, value in env_writes: + merged[name] = value + + if merged: + fd = os.open(env_path, os.O_WRONLY | os.O_CREAT | os.O_TRUNC, 0o600) + with os.fdopen(fd, "w") as f: + for k, v in merged.items(): + f.write(f"{k}={v}\n") + if env_writes: + # Load the freshly-written values into os.environ so + # they are usable by the AutoUploader (or any other + # node) in the same ComfyUI session, without requiring + # a restart. + load_dotenv(env_path, override=True) + # If env_writes is empty (e.g. display_only re-run that + # only scrubbed credentials), don't load — the new file + # has no credentials we'd want to push into os.environ. + elif os.path.exists(env_path): + # No setup keys this run AND nothing else worth keeping — + # remove the empty-shell file rather than leave a 0-byte + # 0600 file behind. + os.remove(env_path) + + # Deliver the browser-only payload via PromptServer's WebSocket + # to the originating client. This data is NOT included in the + # node's `ui` or `result` and is therefore never persisted in + # PromptServer.history. + # + # Security: refuse to send if the prompt has no client_id. + # ComfyUI's send_sync with sid=None broadcasts to *every* + # connected WebSocket client (server.py send_json: when sid + # is None it iterates self.sockets). On a network-reachable + # host (RunPod tunnel, LAN, etc.) that means a CLI/curl/SDK + # submission without a client_id field would push the + # credentials to any browser tab pointed at the same ComfyUI + # instance. So we treat "no client_id" as a delivery failure + # and surface it to the operator instead. + ws_delivered = False + ws_delivery_error = None + if ws_payload: + try: + from server import PromptServer + sid = getattr(PromptServer.instance, "client_id", None) + if not sid: + ws_delivery_error = ( + "prompt has no client_id (typical for CLI/curl/SDK " + "submissions). display_only delivery requires " + "submitting from the ComfyUI web browser so a " + "client_id is attached to the prompt." + ) + msg = ( + "[DropSend Setup] Refusing to deliver credentials: " + "prompt has no client_id. Sending to sid=None would " + "broadcast to every connected browser. Submit from " + "the ComfyUI web UI instead." + ) + print(msg) + try: + import logging as _logging + _logging.getLogger(__name__).warning(msg) + except Exception: + pass + else: + # Echo the sid inside the payload so the JS handler + # can defense-in-depth verify it matches api.clientId + # and ignore mismatched events. + PromptServer.instance.send_sync( + "dropsend_credentials_ready", + {"credentials": dict(ws_payload), "client_id": sid}, + sid, + ) + ws_delivered = True + except Exception as e: + ws_delivery_error = str(e) + print(f"[DropSend Setup] WebSocket delivery failed: {e}") + + # Build the result/ui message — contains NO credential values. + # Both `ui` and `result` are persisted in PromptServer.history. + # Keep it short and action-oriented: tell the user the one + # thing to do next. + message_parts = ["Dropbox connected."] + if ws_payload and ws_delivered: + # display_only path (covers the mixed case where env_writes + # also happened — the panel still has values the user must + # manually copy into platform secrets before they're useful). + # Two-step framing: most cloud platforms (RunPod, Docker, + # K8s) require a container/pod restart for newly-added + # secrets to take effect. So "copy then run" is wrong; + # the correct flow is "copy, then configure secrets, then + # restart the pod, then on the new pod remove the Setup + # node and run AutoUploader". + message_parts.append( + "Next steps:\n" + " 1. Copy each value from the DropSend Credentials " + "panel to a safe place (password manager, secure note).\n" + " 2. Add them to your platform's secrets configuration " + "(RunPod Secrets, Docker env, systemd EnvironmentFile).\n" + " 3. Restart your pod / container so the new secrets " + "are visible to the ComfyUI process.\n" + " 4. On the restarted pod, remove this Setup node " + "from your workflow and run the 'DropSend - AutoUploader' " + "node." + ) + elif ws_payload and not ws_delivered: + # Failure-mode message. The two audiences and what each + # should do: + # • Cloud users (RunPod, hosted) using display_only — + # must submit from the web UI so a client_id is on + # the prompt. They should NOT switch to env_file + # because that puts secrets on the pod's filesystem, + # which is exactly what display_only is designed to + # avoid. + # • Local users — env_file is a reasonable fallback. + message_parts.append( + f"Browser delivery refused: {ws_delivery_error}\n\n" + f"What to do:\n" + f" • Cloud / RunPod / hosted ComfyUI: Submit this " + f"workflow from your web browser (not via curl / API / " + f"SDK). The browser's WebSocket connection attaches a " + f"client_id automatically. display_only never writes " + f"credentials to the pod's filesystem.\n" + f" • Local install only: If you're running ComfyUI on " + f"the same machine you're using and don't mind " + f"credentials in a 0600 .env file on disk, switch " + f"storage_method to 'env_file' and rerun." + ) + elif env_writes: + # env_file path: creds are already loaded into the running + # process; user just needs to remove the Setup node. + message_parts.append( + "You can remove this Setup node from your workflow " + "and run the 'DropSend - AutoUploader' node." + ) + elif existing and any(k in SETUP_KEYS for k in existing): + # Re-run that scrubbed previously-written credential lines + # from .env (typical when switching env_file -> display_only). + message_parts.append( + "Previous credentials in .env were cleared because " + "this run delivers them another way." + ) + + message = "\n\n".join(message_parts) + + # Console banner — confirmation only, values redacted. The + # operator who controls the host can verify what was set and + # where, without secrets going to captured stdout. + print("\n" + "=" * 80) + print("DROPSEND SETUP COMPLETE (values redacted in console)") + if env_writes: + print(f"Wrote to file: {env_path}") + for name, value in env_writes: + print(" " + _redact_kv_line(f"{name}={value}")) + if ws_payload: + label = "Sent to browser:" if ws_delivered else "FAILED to send to browser:" + print(label) + for name, value in ws_payload.items(): + print(" " + _redact_kv_line(f"{name}={value}")) + print("=" * 80 + "\n") -===================================================================== -Perfect for RunPod, Docker, and production environments! -These credentials are ready to use immediately. -=====================================================================""" - - # For display_only, ensure credentials are prominently shown in console - if display_lines: - print("\n" + "="*80) - print("DROPBOX CREDENTIALS READY FOR PRODUCTION - COPY FROM CONSOLE") - print("="*80) - for line in display_lines: - print(line) - print("="*80) - print("Copy the lines above to your environment variables!") - print("Perfect for RunPod, Docker, and production environments!") - print("="*80 + "\n") - print(f"[DropSend Setup] {message}") - - # Use ComfyUI's dynamic return format for better UI integration + return { "ui": {"text": [message]}, - "result": (message,) + "result": (message,), } except Exception as e: diff --git a/dropsend_uploader_node.py b/dropsend_uploader_node.py index 9487d3a..e325466 100644 --- a/dropsend_uploader_node.py +++ b/dropsend_uploader_node.py @@ -4,19 +4,58 @@ import os import threading import logging import time +from datetime import date, datetime from dotenv import load_dotenv, dotenv_values from watchdog.observers import Observer from .monitor_output import start_monitoring, watcher_observer, stop_queue_processor from .encrypt_file import FileEncryptHandler, ENCRYPT_EXTENSIONS, stop_queue_processor as stop_encrypt_queue_processor, get_encryption_key +from .safe_paths import resolve_safe_watch_folder, validate_dropbox_dest, get_output_root -logging.basicConfig( - level=logging.INFO, - format='%(asctime)s - %(levelname)s - %(message)s', - handlers=[ - logging.FileHandler('dropsend.log'), - logging.StreamHandler() - ] -) +# Folder format options. The first option uses the user's literal +# text as a project folder name (no date appended); the remaining +# options append today's date to the user's base folder in the +# selected style. Date formats use "-" or "." as separators rather +# than "/" so the date stays within a single path segment, which +# keeps _strip_trailing_date simple and avoids visually splitting +# the date across folders. +PROJECT_NAME_FORMAT = "project_name" +DATE_FORMATS = { + "mm-dd-yyyy": "%m-%d-%Y", + "dd-mm-yyyy": "%d-%m-%Y", + "yyyy-mm-dd": "%Y-%m-%d", + "dd.mm.yyyy": "%d.%m.%Y", + "yyyy.mm.dd": "%Y.%m.%d", +} +FOLDER_FORMAT_OPTIONS = [PROJECT_NAME_FORMAT] + list(DATE_FORMATS.keys()) +DEFAULT_FOLDER_FORMAT = PROJECT_NAME_FORMAT + + +def _today_str(format_name): + fmt = DATE_FORMATS.get(format_name) + if not fmt: + return "" + return date.today().strftime(fmt) + + +def _strip_trailing_date(path, format_name): + """If the last `/`-separated segment of `path` parses as a date in + the given format, return `path` with that segment removed. Otherwise + return `path` unchanged. Used to recover the BASE folder from a + persisted destination that already has a date appended.""" + fmt = DATE_FORMATS.get(format_name) + if not fmt: + return path + cleaned = path.rstrip("/") + parts = cleaned.split("/") + if len(parts) < 2: + return path + try: + datetime.strptime(parts[-1], fmt) + except ValueError: + return path + return "/".join(parts[:-1]) or "/" + +# Logging configured by the package __init__ — see __init__.py. logger = logging.getLogger(__name__) # Define encrypt_observer at module level @@ -28,25 +67,49 @@ class DropSendAutoUploaderNode: node_dir = os.path.dirname(__file__) env_path = os.path.join(node_dir, ".env") - default_watch = os.path.join(os.getcwd(), "output") - default_dest = "/Apps/ComfyUI_Output_Files" + default_watch = get_output_root() + default_dated_base = "/ComfyUI_Output_Files" + default_flat_base = "/ComfyUI-Project/My-Project" default_encrypt = True default_delete_enc = False default_subfolder_monitor = True default_run_process = True + default_folder_format = DEFAULT_FOLDER_FORMAT if os.path.exists(env_path): cfg = dotenv_values(env_path) - default_dest = cfg.get("DROPBOX_FOLDER", default_dest) + # Two persisted bases let the dated and project-name modes + # each remember their own folder pattern, so switching the + # dropdown doesn't lose whichever setup the user isn't + # currently using. Legacy fallback chain on the dated key + # picks up destinations configured by the Setup Node or a + # prior version of this node. + default_dated_base = cfg.get( + "DROPBOX_FOLDER_BASE_DATED", + cfg.get("DROPBOX_FOLDER_BASE", cfg.get("DROPBOX_FOLDER", default_dated_base)), + ) + default_flat_base = cfg.get("DROPBOX_FOLDER_BASE_FLAT", default_flat_base) default_encrypt = cfg.get("ENABLE_ENCRYPTION", "False").lower() == "true" default_delete_enc = cfg.get("POST_DELETE_ENC", "False").lower() == "true" default_subfolder_monitor = cfg.get("SUBFOLDER_MONITOR", "True").lower() == "true" default_run_process = cfg.get("RUN_PROCESS", "True").lower() == "true" + default_folder_format = cfg.get("DROPBOX_FOLDER_FORMAT", default_folder_format) + if default_folder_format not in FOLDER_FORMAT_OPTIONS: + default_folder_format = DEFAULT_FOLDER_FORMAT + + if default_folder_format == PROJECT_NAME_FORMAT: + default_dest = default_flat_base + else: + # Defensive: strip a trailing date in case a legacy + # DROPBOX_FOLDER value already had one appended. + default_dated_base = _strip_trailing_date(default_dated_base, default_folder_format) + default_dest = default_dated_base.rstrip("/") + "/" + _today_str(default_folder_format) return { "required": { "watch_folder": ("STRING", {"default": default_watch}), "dropbox_dest_folder": ("STRING", {"default": default_dest}), + "folder_format": (FOLDER_FORMAT_OPTIONS, {"default": default_folder_format}), "enable_encryption": ("BOOLEAN", {"default": default_encrypt}), "Post_Delete_Enc": ("BOOLEAN", {"default": default_delete_enc}), "Subfolder_Monitor": ("BOOLEAN", {"default": default_subfolder_monitor}), @@ -58,9 +121,25 @@ class DropSendAutoUploaderNode: OUTPUT_NODE = True FUNCTION = "start" - def start(self, watch_folder, dropbox_dest_folder, enable_encryption, Post_Delete_Enc, Subfolder_Monitor, run_process): + def start(self, watch_folder, dropbox_dest_folder, folder_format, enable_encryption, Post_Delete_Enc, Subfolder_Monitor, run_process): global encrypt_observer - logger.info(f"Starting DropSend AutoUploader: watch_folder={watch_folder}, dropbox_dest_folder={dropbox_dest_folder}, encryption={enable_encryption}, Post_Delete_Enc={Post_Delete_Enc}, Subfolder_Monitor={Subfolder_Monitor}, run_process={run_process}") + + # Resolve the actual destination at run-time. For date formats + # this refreshes the date on every workflow run, so a saved + # workflow opened yesterday still uploads into today's folder. + # For project_name we use the user's literal text verbatim and + # persist it as-is. + if folder_format not in FOLDER_FORMAT_OPTIONS: + folder_format = DEFAULT_FOLDER_FORMAT + if folder_format == PROJECT_NAME_FORMAT: + dated_base = None + flat_base = dropbox_dest_folder + else: + dated_base = _strip_trailing_date(dropbox_dest_folder, folder_format) + dropbox_dest_folder = dated_base.rstrip("/") + "/" + _today_str(folder_format) + flat_base = None + + logger.info(f"Starting DropSend AutoUploader: watch_folder={watch_folder}, dropbox_dest_folder={dropbox_dest_folder}, folder_format={folder_format}, encryption={enable_encryption}, Post_Delete_Enc={Post_Delete_Enc}, Subfolder_Monitor={Subfolder_Monitor}, run_process={run_process}") # Handle stopping the process if run_process is False if not run_process: @@ -89,14 +168,26 @@ Set 'run_process' to True and run the node again to resume. logger.info(stop_message) return (f"All monitoring, uploading, and encryption stopped for {watch_folder}",) - # Validate watch_folder - if not os.path.exists(watch_folder): - logger.error(f"Watch folder does not exist: {watch_folder}") - raise ValueError(f"Watch folder does not exist: {watch_folder}") + # Constrain watch_folder to the ComfyUI output directory tree. The + # uploader runs a recursive Watchdog observer that uploads every file + # it sees, so an unrestricted path turns this node into an + # arbitrary-file-read primitive on remotely-accessible ComfyUI hosts. + try: + watch_folder = resolve_safe_watch_folder(watch_folder) + except ValueError as e: + logger.error(str(e)) + raise + if not os.path.isdir(watch_folder): logger.error(f"Watch folder is not a directory: {watch_folder}") raise ValueError(f"Watch folder is not a directory: {watch_folder}") + try: + dropbox_dest_folder = validate_dropbox_dest(dropbox_dest_folder) + except ValueError as e: + logger.error(str(e)) + raise + # Validate Dropbox credentials from .dropbox_upload import get_token try: @@ -120,12 +211,28 @@ Set 'run_process' to True and run the node again to resume. if os.path.exists(env_path): existing = dotenv_values(env_path) + # DROPBOX_FOLDER is the resolved destination (with date when a + # date format is selected) for visibility and for any other + # tool reading the .env. The two _BASE keys are written + # independently — only the one matching the active format is + # touched, so the other mode's saved pattern survives a switch. existing["DROPBOX_FOLDER"] = dropbox_dest_folder + if dated_base is not None: + existing["DROPBOX_FOLDER_BASE_DATED"] = dated_base + if flat_base is not None: + existing["DROPBOX_FOLDER_BASE_FLAT"] = flat_base + existing["DROPBOX_FOLDER_FORMAT"] = folder_format existing["ENABLE_ENCRYPTION"] = str(enable_encryption) existing["POST_DELETE_ENC"] = str(Post_Delete_Enc) existing["SUBFOLDER_MONITOR"] = str(Subfolder_Monitor) existing["RUN_PROCESS"] = str(run_process) - with open(env_path, "w") as f: + # Race-free open: the file is created with mode 0600 from the + # start. The merged file may include DROPBOX_REFRESH_TOKEN / + # COMFYUI_ENCRYPTION_KEY the user previously stored, so the + # window between create-with-default-perms and a follow-up + # chmod is exactly what we need to avoid. + fd = os.open(env_path, os.O_WRONLY | os.O_CREAT | os.O_TRUNC, 0o600) + with os.fdopen(fd, "w") as f: for k, v in existing.items(): f.write(f"{k}={v}\n") @@ -133,35 +240,78 @@ Set 'run_process' to True and run the node again to resume. # Start processes only if run_process is True if run_process: - # Start folder watcher - thread = threading.Thread( - target=start_monitoring, - args=(watch_folder, dropbox_dest_folder, enable_encryption, Post_Delete_Enc, Subfolder_Monitor), - daemon=True - ) - thread.start() - - # Start encryption watcher if enabled + # Build the encrypt handler up-front; start_monitoring will + # schedule it on the SAME Observer as the upload handler. + # macOS's _fsevents library refuses two separate watches on + # the same path (the second emitter dies with "already + # scheduled" and never delivers events), so we share one + # Observer with multiple handlers. + encrypt_handler = None if enable_encryption: encrypt_handler = FileEncryptHandler(watch_folder, False, Subfolder_Monitor) - encrypt_observer = Observer() - encrypt_observer.schedule(encrypt_handler, watch_folder, recursive=Subfolder_Monitor) - encrypt_observer.start() + + # Run synchronously — Observer manages its own threads, so + # there is nothing to gain from wrapping this in a thread, + # and a thread introduces a startup race where the upload + # observer might not be ready before the first file lands. + start_monitoring( + watch_folder, + dropbox_dest_folder, + enable_encryption, + Post_Delete_Enc, + Subfolder_Monitor, + encrypt_handler=encrypt_handler, + ) + + if encrypt_handler is not None: logger.info(f"Starting encryption monitor for {watch_folder}") - def keep_encrypt_alive(): - try: - while True: - time.sleep(1) - except KeyboardInterrupt: - if encrypt_observer: - encrypt_observer.stop() - if encrypt_observer: - encrypt_observer.join() + # Build a banner the user sees in the node's UI output and in + # the ComfyUI console. Each setting line is `key = value + # (plain-English meaning)` so the implications are obvious at + # a glance — no jumping back to the README to figure out what + # POST_DELETE_ENC does. + sub_desc = "subfolders watched recursively" if Subfolder_Monitor else "only the top-level folder is watched" + if folder_format == PROJECT_NAME_FORMAT: + fmt_desc = "your dropbox_dest_folder is used verbatim, e.g. /ComfyUI-Project/My-Project" + else: + fmt_desc = f"today's date in {folder_format} appended daily, folder refreshes each session" + enc_desc = "files encrypted (.enc) before upload" if enable_encryption else "files uploaded as-is, no encryption" + if enable_encryption: + del_desc = ".enc files deleted after upload verifies" if Post_Delete_Enc else ".enc files kept on disk after upload" + else: + del_desc = "ignored — only matters when enable_encryption is true" - threading.Thread(target=keep_encrypt_alive, daemon=True).start() + banner = f""" +===================================================================== +📦📤 DropSend - AutoUploader - RUNNING +===================================================================== - return (f"📦✅ .env updated: DROPBOX_FOLDER={dropbox_dest_folder}, ENABLE_ENCRYPTION={enable_encryption}, POST_DELETE_ENC={Post_Delete_Enc}, SUBFOLDER_MONITOR={Subfolder_Monitor}, RUN_PROCESS={run_process}",) +Watching: + {watch_folder} + +Uploading to: + {dropbox_dest_folder} + +Settings: + enable_encryption = {str(enable_encryption).lower()} ({enc_desc}) + folder_format = {folder_format} ({fmt_desc}) + Post_Delete_Enc = {str(Post_Delete_Enc).lower()} ({del_desc}) + Subfolder_Monitor = {str(Subfolder_Monitor).lower()} ({sub_desc}) + run_process = {str(run_process).lower()} (monitoring active — set false and re-run to stop) + +How to change settings while running: + • Edit any field on this node and re-run the workflow to apply. + • To switch from a date format to a project name: pick `project_name` + in folder_format, edit dropbox_dest_folder to your project name, + then re-run. + • To stop monitoring entirely: set run_process = false and re-run. + +===================================================================== +""" + print(banner) + logger.info(banner) + return (banner,) # Required mappings for ComfyUI NODE_CLASS_MAPPINGS = {"DropSendAutoUploader": DropSendAutoUploaderNode} diff --git a/encrypt_file.py b/encrypt_file.py index 446f4a2..afaecf4 100644 --- a/encrypt_file.py +++ b/encrypt_file.py @@ -7,15 +7,9 @@ from watchdog.observers import Observer from watchdog.events import FileSystemEventHandler from cryptography.fernet import Fernet import threading +from .safe_paths import is_safe_event_path -logging.basicConfig( - level=logging.INFO, - format='%(asctime)s - %(levelname)s - %(message)s', - handlers=[ - logging.FileHandler('dropsend.log'), - logging.StreamHandler() - ] -) +# Logging configured by the package __init__ — see __init__.py. logger = logging.getLogger(__name__) ENCRYPT_EXTENSIONS = ('.png', '.jpg', '.jpeg', '.webp', '.gif', '.mp4', '.avi', '.mov') @@ -62,11 +56,25 @@ class FileEncryptHandler(FileSystemEventHandler): self.start_queue_processor() def on_created(self, event): - if not event.is_directory and event.src_path.lower().endswith(ENCRYPT_EXTENSIONS): + if event.is_directory: + return + # Defense-in-depth: refuse symlinks or paths whose realpath escapes + # the allowed output roots, so a symlink in the watched directory + # cannot trick the encryptor into reading and uploading a file + # outside the tree. + if not is_safe_event_path(event.src_path): + logger.warning(f"Skipping unsafe path (symlink or outside output root): {event.src_path}") + return + if event.src_path.lower().endswith(ENCRYPT_EXTENSIONS): logger.info(f"Detected new file to encrypt: {event.src_path}") self.file_queue.put(event.src_path) def start_queue_processor(self): + global _stop_queue_processor + # Reset the stop flag so that a new handler created after a prior + # stop_queue_processor() call still has a working queue worker. + # Mirrors what start_monitoring() does on the upload side. + _stop_queue_processor = False def process_queue(): while not _stop_queue_processor: if not self.file_queue.empty(): @@ -94,7 +102,7 @@ class FileEncryptHandler(FileSystemEventHandler): enc_path = file_path + '.enc' with open(enc_path, 'wb') as f: f.write(encrypted_data) - logger.info(f"Created encrypted file: {enc_path}") + logger.info(f"📦🔐 Encrypted: {enc_path}") # Defer deletion until after upload verification (handled in monitor_output.py) except Exception as e: diff --git a/monitor_output.py b/monitor_output.py index 9c27f93..d2ade0b 100644 --- a/monitor_output.py +++ b/monitor_output.py @@ -9,15 +9,12 @@ from watchdog.observers import Observer from watchdog.events import FileSystemEventHandler from .dropbox_upload import upload_to_dropbox from .encrypt_file import ENCRYPT_EXTENSIONS +from .safe_paths import is_safe_event_path -logging.basicConfig( - level=logging.INFO, - format='%(asctime)s - %(levelname)s - %(message)s', - handlers=[ - logging.FileHandler('dropsend.log'), - logging.StreamHandler() - ] -) +# Logging is configured by the package __init__ — see __init__.py for +# the FileHandler attached to the root logger. logging.getLogger here +# returns a child logger that propagates to root and inherits its +# handlers (file + ComfyUI's own stdout). logger = logging.getLogger(__name__) watcher_observer = None @@ -66,6 +63,14 @@ class NewFileHandler(FileSystemEventHandler): if event.is_directory: return file_path = event.src_path + # Defense-in-depth: refuse symlinks or paths whose realpath escapes + # the allowed output roots. The watch_folder input is already + # clamped, but Watchdog follows symlinks placed inside the watched + # tree, so without this check a `output/leak.png -> ~/.ssh/id_rsa` + # would still get uploaded. + if not is_safe_event_path(file_path): + logger.warning(f"Skipping unsafe path (symlink or outside output root): {file_path}") + return if encryption_enabled and not file_path.lower().endswith('.enc'): logger.info(f"Skipping non-.enc file (encryption enabled): {file_path}") return @@ -94,7 +99,7 @@ class NewFileHandler(FileSystemEventHandler): threading.Thread(target=process_queue, daemon=True).start() -def start_monitoring(watch_folder, dropbox_dest_folder, enable_encryption=False, delete_enc=False, subfolder_monitor=True): +def start_monitoring(watch_folder, dropbox_dest_folder, enable_encryption=False, delete_enc=False, subfolder_monitor=True, encrypt_handler=None): global watcher_observer, watcher_handler, encryption_enabled, _stop_queue_processor encryption_enabled = enable_encryption _stop_queue_processor = False # Reset stop signal when starting @@ -107,9 +112,18 @@ def start_monitoring(watch_folder, dropbox_dest_folder, enable_encryption=False, watcher_handler = NewFileHandler(dropbox_dest_folder, delete_enc) watcher_observer = Observer() watcher_observer.schedule(watcher_handler, watch_folder, recursive=subfolder_monitor) + # macOS's _fsevents C extension maintains a global registry of watched + # paths and refuses a second watch on the same path with a + # "Cannot add watch ... it is already scheduled" RuntimeError that + # crashes the second Observer's emitter thread silently. So when + # encryption is enabled, register the encrypt handler on the SAME + # Observer (watchdog supports multiple handlers per observer and + # dispatches every event to every handler). + if encrypt_handler is not None: + watcher_observer.schedule(encrypt_handler, watch_folder, recursive=subfolder_monitor) watcher_observer.start() - logger.info(f"Now watching: {watch_folder} (Subfolder_Monitor: {'Yes' if subfolder_monitor else 'No'})") + logger.info(f"📦👀 Watching: {watch_folder} (Subfolder_Monitor: {'Yes' if subfolder_monitor else 'No'})") logger.info(f"Upload target: {dropbox_dest_folder}") logger.info(f"Encryption enabled: {'Yes' if encryption_enabled else 'No'}") diff --git a/oauth_handler.py b/oauth_handler.py deleted file mode 100644 index ded42c1..0000000 --- a/oauth_handler.py +++ /dev/null @@ -1,766 +0,0 @@ -# oauth_handler.py - OAuth callback handling for DropSendNode - -import asyncio -from aiohttp import web -from .dropbox_auth_manager import DropboxAuthManager - -# Global state to track pending OAuth flows -pending_oauth_sessions = {} - -class OAuthCallbackHandler: - def __init__(self): - self.session_id = None - self.app_key = None - self.app_secret = None - self.completion_callback = None - - def start_oauth_session(self, session_id, app_key, app_secret, completion_callback=None, storage_method="keyring", dropbox_folder="/Apps/ComfyUI_Output_Files", original_redirect_uri=None): - """Start a new OAuth session and store the credentials for callback processing""" - print(f"[OAuthHandler] Starting OAuth session: {session_id}") - - self.session_id = session_id - self.app_key = app_key - self.app_secret = app_secret - self.completion_callback = completion_callback - self.storage_method = storage_method - self.dropbox_folder = dropbox_folder - - # Store in global pending sessions - pending_oauth_sessions[session_id] = { - 'app_key': app_key, - 'app_secret': app_secret, - 'completion_callback': completion_callback, - 'storage_method': storage_method, - 'dropbox_folder': dropbox_folder, - 'original_redirect_uri': original_redirect_uri, # Store the original redirect URI - 'handler': self - } - - print(f"[OAuthHandler] OAuth session stored for: {session_id} with storage method: {storage_method}") - - async def process_callback(self, auth_code, redirect_uri=None): - """Process the OAuth callback with the received auth code""" - try: - print(f"[OAuthHandler] Processing callback for session: {self.session_id}") - print(f"[OAuthHandler] Auth code received: {auth_code[:10]}...") - print(f"[OAuthHandler] Processing callback for auth code exchange") - - # Use DropboxAuthManager to exchange the code - print(f"[OAuthHandler] Creating DropboxAuthManager for token exchange...") - auth_manager = DropboxAuthManager(self.app_key, self.app_secret) - print(f"[OAuthHandler] Exchanging auth code for tokens...") - result = auth_manager.exchange_auth_code_raw(auth_code, redirect_uri=redirect_uri) - refresh_token = result.get("refresh_token") - - print(f"[OAuthHandler] Auth code exchange successful - got refresh token: {bool(refresh_token)}") - print(f"[OAuthHandler] Using storage method: {self.storage_method}") - - # Handle different storage methods - success_message = None - if self.storage_method == "env_file": - # Store in .env file - import os - node_dir = os.path.dirname(__file__) - env_path = os.path.join(node_dir, ".env") - with open(env_path, "w") as f: - f.write(f"DROPBOX_APP_KEY={self.app_key}\n") - f.write(f"DROPBOX_APP_SECRET={self.app_secret}\n") - f.write(f"DROPBOX_REFRESH_TOKEN={refresh_token}\n") - f.write(f"DROPBOX_FOLDER={self.dropbox_folder}\n") - success_message = "Dropbox connected successfully! Credentials saved to .env file." - - elif self.storage_method == "display_only": - # Display credentials for manual copying - import os - - # Print credentials to console for easy copy/paste - print("\n" + "=" * 80) - print("DROPBOX CREDENTIALS READY FOR PRODUCTION - COPY FROM CONSOLE") - print("=" * 80) - print(f"DROPBOX_APP_KEY={self.app_key}") - print(f"DROPBOX_APP_SECRET={self.app_secret}") - print(f"DROPBOX_REFRESH_TOKEN={refresh_token}") - print(f"DROPBOX_FOLDER={self.dropbox_folder}") - print("=" * 80) - print("Copy the lines above to your environment variables!") - print("Perfect for RunPod, Docker, and production environments!") - print("=" * 80 + "\n") - - success_message = f"""Dropbox Connected Successfully! - -===================================================================== -ENVIRONMENT VARIABLES - Copy & Paste Ready -===================================================================== - -DROPBOX_APP_KEY={self.app_key} - -DROPBOX_APP_SECRET={self.app_secret} - -DROPBOX_REFRESH_TOKEN={refresh_token} - -DROPBOX_FOLDER={self.dropbox_folder} - -===================================================================== -Perfect for RunPod, Docker, and production environments! -These credentials are ready to use immediately. -=====================================================================""" - - else: - # Fallback to env_file - import os - node_dir = os.path.dirname(__file__) - env_path = os.path.join(node_dir, ".env") - with open(env_path, "w") as f: - f.write(f"DROPBOX_APP_KEY={self.app_key}\n") - f.write(f"DROPBOX_APP_SECRET={self.app_secret}\n") - f.write(f"DROPBOX_REFRESH_TOKEN={refresh_token}\n") - f.write(f"DROPBOX_FOLDER={self.dropbox_folder}\n") - success_message = "Dropbox connected successfully! Credentials saved to .env file." - - # Send WebSocket message to trigger ComfyUI refresh (except for display_only) - if self.storage_method != "display_only": - try: - from server import PromptServer - message_data = { - "type": "dropbox_oauth_complete", - "session_id": self.session_id, - "success": True, - "message": success_message - } - PromptServer.instance.send_sync("dropbox_oauth_complete", message_data) - print(f"[OAuthHandler] Sent WebSocket notification for OAuth completion") - except Exception as e: - print(f"[OAuthHandler] Warning: Could not send WebSocket notification: {e}") - else: - print(f"[OAuthHandler] Skipping WebSocket notification for display_only method") - - # Call completion callback if provided - if self.completion_callback: - await self.completion_callback(True, success_message) - - return True, success_message - - except Exception as e: - error_msg = f"Error: OAuth callback failed: {e}" - print(f"[OAuthHandler] ERROR: {error_msg}") - - if self.completion_callback: - await self.completion_callback(False, error_msg) - - return False, error_msg - -def create_display_only_success_page(session_id, app_key, app_secret, refresh_token, dropbox_folder): - """Create a success page with textarea fields for display_only storage method""" - from aiohttp import web - - return web.Response(text=f""" - - - - - Dropbox Authorization Successful - - - -

- - - - - """, content_type='text/html') - -def get_server_base_url(request=None): - """Dynamically detect the server base URL for OAuth callbacks""" - import os - import socket - - try: - if request: - # Try to get from the incoming request - scheme = 'https' if request.secure else 'http' - host = request.host - base_url = f"{scheme}://{host}" - print(f"[OAuthHandler] Detected server URL from request: {base_url}") - return base_url - else: - # Fallback: try to detect from ComfyUI server instance - from server import PromptServer - if hasattr(PromptServer, 'instance') and PromptServer.instance: - # Get the port from ComfyUI server - port = getattr(PromptServer.instance, 'port', 8188) - - # Try to detect if we're on RunPod or similar cloud service - hostname = socket.gethostname() - print(f"[OAuthHandler] Detected hostname: {hostname}") - - # Check for RunPod-specific hostname patterns - if 'runpod' in hostname.lower() or hostname.endswith('.runpod.net'): - # For RunPod, try to get the public URL - runpod_public_ip = os.getenv('RUNPOD_PUBLIC_IP') - if runpod_public_ip: - base_url = f"https://{runpod_public_ip}:{port}" - print(f"[OAuthHandler] Detected RunPod URL: {base_url}") - return base_url - - # Check for common cloud service environment variables - public_url = os.getenv('COMFYUI_PUBLIC_URL') or os.getenv('PUBLIC_URL') - if public_url: - base_url = public_url.rstrip('/') - print(f"[OAuthHandler] Using configured PUBLIC_URL: {base_url}") - return base_url - - # Default fallback to localhost - base_url = f"http://localhost:{port}" - print(f"[OAuthHandler] Fallback to localhost: {base_url}") - return base_url - - except Exception as e: - print(f"[OAuthHandler] Error detecting server URL: {e}") - import traceback - traceback.print_exc() - - # Final fallback - base_url = "http://localhost:8188" - print(f"[OAuthHandler] Using final fallback: {base_url}") - return base_url - -# OAuth callback route handler -async def handle_oauth_callback(request): - """Handle incoming OAuth callback from Dropbox""" - try: - # Extract parameters from callback - auth_code = request.query.get('code') - error = request.query.get('error') - session_id = request.query.get('state') # We'll use state parameter to track sessions - - print(f"[OAuthCallback] Received callback - code: {bool(auth_code)}, error: {error}, state: {session_id}") - - if error: - error_msg = f"OAuth authorization failed: {error}" - print(f"[OAuthCallback] ERROR: {error_msg}") - return web.Response(text=f""" - -

❌ Authorization Failed

-

{error_msg}

-

You can close this window and try again in ComfyUI.

- - """, content_type='text/html', status=400) - - if not auth_code: - print(f"[OAuthCallback] ERROR: No authorization code received") - return web.Response(text=""" - -

❌ No Authorization Code

-

No authorization code was received. Please try again.

-

You can close this window and try again in ComfyUI.

- - """, content_type='text/html', status=400) - - # Find the pending OAuth session - if session_id and session_id in pending_oauth_sessions: - session_data = pending_oauth_sessions[session_id] - handler = session_data['handler'] - - # Use the original redirect URI that was used for authorization (not the detected one) - original_callback_url = session_data.get('original_redirect_uri') - if original_callback_url: - print(f"[OAuthCallback] Using stored redirect URI: {original_callback_url}") - callback_url = original_callback_url - else: - # Fallback to dynamic detection - base_url = get_server_base_url(request) - callback_url = f"{base_url}/oauth/dropbox/callback" - print(f"[OAuthCallback] Using detected redirect URI: {callback_url}") - - success, message = await handler.process_callback(auth_code, redirect_uri=callback_url) - - # Clean up the session - del pending_oauth_sessions[session_id] - - if success: - # Check if this is a display_only flow and show appropriate success page - storage_method = session_data.get('storage_method', 'keyring') - - if storage_method == 'display_only': - # Extract refresh token from the success message (token exchange already happened in process_callback) - if 'DROPBOX_REFRESH_TOKEN=' in message: - import re - refresh_token_match = re.search(r'DROPBOX_REFRESH_TOKEN=([^\s\n]+)', message) - if refresh_token_match: - refresh_token = refresh_token_match.group(1) - - app_key = session_data['app_key'] - app_secret = session_data['app_secret'] - dropbox_folder = session_data['dropbox_folder'] - - # Special success page with textarea fields for credentials (stays open for copying) - return create_display_only_success_page(session_id, app_key, app_secret, refresh_token, dropbox_folder) - - # If we couldn't extract the refresh token, fall back to error handling - return web.Response(text=f""" - -

❌ Display Setup Error

-

Could not extract refresh token from OAuth response.

-

Please close this window and try again in ComfyUI.

-

Debug info: {message[:200]}...

- - """, content_type='text/html', status=500) - else: - # Standard success page for env_file storage method (auto-closes quickly) - return web.Response(text=f""" - - - - - Dropbox Authorization Successful - - - -
-
✓
-

Authorization Successful!

-

{message}

- -
- - - """, content_type='text/html') - else: - return web.Response(text=f""" - - - - - Dropbox Authorization Failed - - - -
-
❌
-

Setup Failed

-

{message}

-
-

You can close this window and try again in ComfyUI.

-
-
- - """, content_type='text/html', status=500) - - else: - # Fallback for sessions without state tracking - print("[OAuthCallback] No session found, attempting generic processing") - return web.Response(text=f""" - - - - - Dropbox Authorization Code - - - -
-
🔄
-

Authorization Code Received

-

Please return to ComfyUI and manually enter this code:

-
{auth_code}
-
-

📋 Select the code above and copy it to ComfyUI

-
-
- - """, content_type='text/html') - - except Exception as e: - print(f"[OAuthCallback] Unexpected error: {e}") - return web.Response(text=f""" - -

❌ Callback Error

-

An unexpected error occurred: {e}

-

You can close this window and try again in ComfyUI.

- - """, content_type='text/html', status=500) \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index 4654926..d97b0f0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,7 @@ [project] name = "comfyui-dropsend-node" description = "Automatically upload ComfyUI output files to Dropbox with optional encryption. Supports real-time monitoring, cloud setups (RunPod), and includes cross-platform decryption scripts." -version = "1.0.3" +version = "1.1.0" license = { file = "LICENSE" } dependencies = ["requests", "python-dotenv", "watchdog", "dropbox", "cryptography"] diff --git a/safe_paths.py b/safe_paths.py new file mode 100644 index 0000000..e5d5450 --- /dev/null +++ b/safe_paths.py @@ -0,0 +1,144 @@ +# safe_paths.py +# +# Path validation helpers used by DropSend nodes to constrain user-supplied +# paths to safe locations. +# +# Threat model: a ComfyUI instance may be reachable over the network. Any +# workflow author can therefore set node inputs. Without restriction, the +# DropSend uploader's watch_folder input becomes an arbitrary-file-read +# primitive — the watcher recursively uploads everything under the path to +# the operator's Dropbox account. We constrain watch_folder to the ComfyUI +# output directory tree, with an operator-controlled allowlist for advanced +# setups. + +import os +import logging + +logger = logging.getLogger(__name__) + + +def get_output_root(): + """Return the absolute, real path of ComfyUI's output directory. + + Falls back to /output if folder_paths is unavailable (e.g. running + unit tests outside a ComfyUI process). + """ + try: + import folder_paths # type: ignore + root = folder_paths.get_output_directory() + except Exception: + root = os.path.join(os.getcwd(), "output") + return os.path.realpath(root) + + +def get_allowed_roots(): + """Return the list of directory roots a watch_folder is allowed to be in. + + Always includes the ComfyUI output directory. Operators who need to + monitor additional locations (e.g. a custom output mount) can opt in by + setting COMFYUI_DROPSEND_ALLOWED_WATCH_PATHS to an os.pathsep-separated + list of absolute paths. Workflow inputs cannot expand this list. + """ + roots = [get_output_root()] + extra = os.environ.get("COMFYUI_DROPSEND_ALLOWED_WATCH_PATHS", "") + if extra: + for raw in extra.split(os.pathsep): + raw = raw.strip() + if raw: + roots.append(os.path.realpath(raw)) + return roots + + +def _is_within(child, parent): + """True iff `child` is `parent` or a descendant of it (after realpath).""" + try: + return os.path.commonpath([child, parent]) == parent + except ValueError: + # Different drives on Windows, etc. + return False + + +def resolve_safe_watch_folder(user_input): + """Resolve a user-supplied watch_folder to a safe absolute path. + + - Empty input → the ComfyUI output directory. + - Relative input → joined under the output directory. + - Absolute input → must resolve under one of the allowed roots. + + Raises ValueError with a clear message if the input escapes the allowed + set (path traversal, symlinks pointing outside, unrelated absolute path). + """ + output_root = get_output_root() + allowed_roots = get_allowed_roots() + + if user_input is None or str(user_input).strip() == "": + return output_root + + candidate = str(user_input).strip() + + if not os.path.isabs(candidate): + candidate = os.path.join(output_root, candidate) + + resolved = os.path.realpath(candidate) + + for root in allowed_roots: + if _is_within(resolved, root): + return resolved + + raise ValueError( + "watch_folder must be inside the ComfyUI output directory " + f"({output_root}). Got: {user_input!r} (resolved: {resolved}). " + "If you need to monitor a different location, set the " + "COMFYUI_DROPSEND_ALLOWED_WATCH_PATHS environment variable on the " + "host before starting ComfyUI." + ) + + +def is_safe_event_path(path): + """True iff a Watchdog file event path is safe to process. + + Rejects (a) symlinks and (b) paths whose realpath escapes the allowed + roots. Defends against symlinks placed inside the watched directory + that point at sensitive files outside it (e.g. an output/leak.png + -> ~/.ssh/id_rsa would otherwise be read, encrypted, and uploaded by + the watchers). + """ + try: + if os.path.islink(path): + return False + resolved = os.path.realpath(path) + except OSError: + return False + + for root in get_allowed_roots(): + if _is_within(resolved, root): + return True + return False + + +def validate_dropbox_dest(dest): + """Validate a Dropbox destination folder string. + + Dropbox paths are POSIX-style absolute paths. We reject empty values, + paths missing the leading slash, parent-traversal segments, and NUL + bytes. This is defense-in-depth — Dropbox itself does not interpret + `..` — but it keeps malformed inputs from being silently accepted. + """ + if dest is None or str(dest).strip() == "": + raise ValueError("dropbox_dest_folder must not be empty.") + + value = str(dest).strip() + + if "\x00" in value: + raise ValueError("dropbox_dest_folder contains a NUL byte.") + if not value.startswith("/"): + raise ValueError( + f"dropbox_dest_folder must start with '/'. Got: {value!r}" + ) + parts = [p for p in value.split("/") if p] + if any(p == ".." for p in parts): + raise ValueError( + f"dropbox_dest_folder must not contain '..' segments. Got: {value!r}" + ) + + return "/" + "/".join(parts) if parts else "/" diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/test_safe_paths.py b/tests/test_safe_paths.py new file mode 100644 index 0000000..016ec39 --- /dev/null +++ b/tests/test_safe_paths.py @@ -0,0 +1,230 @@ +"""Security tests for safe_paths.py — the only barrier between +remote workflow inputs and arbitrary-file-read on the host. + +Covers: + • is_safe_event_path: symlink rejection, path-traversal rejection, + legitimate-path acceptance, non-existent-path handling. + • validate_dropbox_dest: NUL bytes, missing leading slash, `..` + segments, empty inputs. + • resolve_safe_watch_folder: relative join, absolute clamp to + output root, symlink-escape rejection, allowlist via env var. + +Run with: + python -m unittest tests.test_safe_paths +or: + python tests/test_safe_paths.py +""" + +import os +import sys +import shutil +import tempfile +import unittest + +# Add the plugin root so we can import the module by name. +sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) + +import safe_paths + + +class _BaseSafePathTest(unittest.TestCase): + """Set up an isolated tempdir as the fake ComfyUI output root and + monkey-patch safe_paths.get_output_root to return it. Each test + runs in its own directory so file/symlink fixtures don't leak.""" + + def setUp(self): + self.tmp = tempfile.mkdtemp(prefix="dropsend-test-") + # Real-realpath: macOS may resolve /tmp -> /private/tmp. + self.output_root = os.path.realpath(self.tmp) + self._orig_get_output_root = safe_paths.get_output_root + safe_paths.get_output_root = lambda: self.output_root + # Clear the allowlist env var so it doesn't bleed in from the + # caller's shell. + self._orig_allow = os.environ.pop("COMFYUI_DROPSEND_ALLOWED_WATCH_PATHS", None) + + def tearDown(self): + safe_paths.get_output_root = self._orig_get_output_root + if self._orig_allow is not None: + os.environ["COMFYUI_DROPSEND_ALLOWED_WATCH_PATHS"] = self._orig_allow + shutil.rmtree(self.tmp, ignore_errors=True) + + +class TestIsSafeEventPath(_BaseSafePathTest): + """is_safe_event_path is the gate watchdog calls on every file + event. False → file is ignored (no upload, no encrypt). True → + file is processed. Anything that lets a symlink or out-of-tree + path through becomes an arbitrary-file-read primitive.""" + + def test_regular_file_inside_root_is_safe(self): + path = os.path.join(self.output_root, "image.png") + with open(path, "wb") as f: + f.write(b"x") + self.assertTrue(safe_paths.is_safe_event_path(path)) + + def test_regular_file_in_subdir_is_safe(self): + sub = os.path.join(self.output_root, "subdir") + os.makedirs(sub) + path = os.path.join(sub, "image.png") + with open(path, "wb") as f: + f.write(b"x") + self.assertTrue(safe_paths.is_safe_event_path(path)) + + def test_symlink_inside_root_is_rejected(self): + target = os.path.join(self.tmp, "..", "outside-target") + target = os.path.abspath(target) + with open(target, "wb") as f: + f.write(b"sensitive") + try: + link = os.path.join(self.output_root, "leak.png") + os.symlink(target, link) + # Even though `link` is inside the watched root, it's a + # symlink -> it must be rejected. + self.assertFalse(safe_paths.is_safe_event_path(link)) + finally: + try: os.unlink(target) + except OSError: pass + + def test_symlink_to_sensitive_target_is_rejected(self): + # Classic exfiltration pattern: a symlink inside the watched + # tree points at ~/.ssh/id_rsa or similar. + sensitive = os.path.expanduser("~/.ssh") # may or may not exist; doesn't matter + link = os.path.join(self.output_root, "id_rsa.png") + try: + os.symlink(sensitive, link) + self.assertFalse(safe_paths.is_safe_event_path(link)) + except OSError: + self.skipTest("could not create test symlink in tempdir") + + def test_path_outside_root_is_rejected(self): + # File exists but is outside the watched root. + outside = os.path.join(self.tmp, "..", "outside.png") + outside = os.path.abspath(outside) + with open(outside, "wb") as f: + f.write(b"x") + try: + self.assertFalse(safe_paths.is_safe_event_path(outside)) + finally: + try: os.unlink(outside) + except OSError: pass + + def test_directory_traversal_string_is_rejected(self): + # The literal path string contains "..". Even if the string + # textually starts with the root, after realpath() it must + # still be inside the root for is_safe_event_path to return + # True. Here we craft a path that resolves outside. + path = os.path.join(self.output_root, "..", "..", "etc", "passwd") + # `path` does not exist under our tmpdir; what matters is + # that realpath escapes the root, which is_safe_event_path + # must catch. + self.assertFalse(safe_paths.is_safe_event_path(path)) + + def test_allowlist_extra_root_accepted(self): + # Operator opts a second root in via env var. Files under + # that root must now be accepted. + extra = tempfile.mkdtemp(prefix="dropsend-extra-") + try: + os.environ["COMFYUI_DROPSEND_ALLOWED_WATCH_PATHS"] = extra + extra_real = os.path.realpath(extra) + f = os.path.join(extra_real, "image.png") + with open(f, "wb") as fh: + fh.write(b"x") + self.assertTrue(safe_paths.is_safe_event_path(f)) + finally: + os.environ.pop("COMFYUI_DROPSEND_ALLOWED_WATCH_PATHS", None) + shutil.rmtree(extra, ignore_errors=True) + + +class TestValidateDropboxDest(unittest.TestCase): + """validate_dropbox_dest is what stops a hostile workflow from + sending an `app_secret`-leaking dest like '../../etc/passwd' + over the wire to Dropbox (which would just normalize and accept + it, but still — defense in depth).""" + + def test_empty_string_is_rejected(self): + with self.assertRaises(ValueError): + safe_paths.validate_dropbox_dest("") + + def test_none_is_rejected(self): + with self.assertRaises(ValueError): + safe_paths.validate_dropbox_dest(None) + + def test_whitespace_only_is_rejected(self): + with self.assertRaises(ValueError): + safe_paths.validate_dropbox_dest(" ") + + def test_missing_leading_slash_is_rejected(self): + with self.assertRaises(ValueError): + safe_paths.validate_dropbox_dest("Apps/Foo") + + def test_parent_traversal_segment_is_rejected(self): + with self.assertRaises(ValueError): + safe_paths.validate_dropbox_dest("/Apps/Foo/../etc/passwd") + + def test_nul_byte_is_rejected(self): + with self.assertRaises(ValueError): + safe_paths.validate_dropbox_dest("/Apps/Foo\x00Bar") + + def test_valid_path_returns_normalized(self): + result = safe_paths.validate_dropbox_dest("/Apps/Foo/Bar") + self.assertEqual(result, "/Apps/Foo/Bar") + + def test_double_slashes_normalized(self): + # split-and-rejoin should collapse repeated slashes + result = safe_paths.validate_dropbox_dest("/Apps//Foo///Bar") + self.assertEqual(result, "/Apps/Foo/Bar") + + def test_root_only_is_accepted(self): + result = safe_paths.validate_dropbox_dest("/") + self.assertEqual(result, "/") + + +class TestResolveSafeWatchFolder(_BaseSafePathTest): + """resolve_safe_watch_folder is the only thing standing between a + remote workflow input and 'watch + upload my entire ~/.ssh'. Test + that the clamp to output_root is real and that legitimate flows + still work.""" + + def test_empty_input_returns_output_root(self): + self.assertEqual(safe_paths.resolve_safe_watch_folder(""), self.output_root) + + def test_none_input_returns_output_root(self): + self.assertEqual(safe_paths.resolve_safe_watch_folder(None), self.output_root) + + def test_relative_input_joined_under_output(self): + sub = os.path.join(self.output_root, "subdir") + os.makedirs(sub) + result = safe_paths.resolve_safe_watch_folder("subdir") + self.assertEqual(result, sub) + + def test_absolute_input_inside_output_accepted(self): + sub = os.path.join(self.output_root, "subdir") + os.makedirs(sub) + result = safe_paths.resolve_safe_watch_folder(sub) + self.assertEqual(result, sub) + + def test_absolute_input_outside_output_rejected(self): + with self.assertRaises(ValueError): + safe_paths.resolve_safe_watch_folder("/etc") + + def test_traversal_back_to_root_rejected(self): + with self.assertRaises(ValueError): + # Even though the string is a relative path, after + # realpath it escapes the root. + safe_paths.resolve_safe_watch_folder("../../etc") + + def test_symlink_pointing_outside_root_rejected(self): + # An attacker-supplied watch_folder that's a symlink to /etc + # must be rejected even though the symlink itself was created + # inside the watched dir. + outside = os.path.realpath(tempfile.mkdtemp(prefix="dropsend-out-")) + try: + link = os.path.join(self.output_root, "shortcut") + os.symlink(outside, link) + with self.assertRaises(ValueError): + safe_paths.resolve_safe_watch_folder(link) + finally: + shutil.rmtree(outside, ignore_errors=True) + + +if __name__ == "__main__": + unittest.main(verbosity=2) diff --git a/tests/test_setup_node_security.py b/tests/test_setup_node_security.py new file mode 100644 index 0000000..027fb41 --- /dev/null +++ b/tests/test_setup_node_security.py @@ -0,0 +1,221 @@ +"""Regression tests for security-critical patterns in +dropsend_setup_node.py. + +These run static AST analysis against the source file rather than +invoking setup() at runtime. Reasons: + • setup() pulls in aiohttp, requests, dropbox, the Dropbox API, + and several global modules. A behavioral test would be heavy. + • The patterns we're guarding against are syntactic — "is there + a send_sync call without a sid argument" is exactly the kind + of regression an AST walk catches deterministically. + +Catches: + • The original WebSocket-broadcast vulnerability (send_sync with + sid=None broadcasts to every connected client). Any future + change that drops the `if sid:` guard or hardcodes None as the + third argument fails this test loudly at CI time. + +Run with: + python -m unittest tests.test_setup_node_security +or: + python tests/test_setup_node_security.py +""" + +import ast +import os +import sys +import unittest + + +_SETUP_NODE_PATH = os.path.join( + os.path.dirname(os.path.dirname(os.path.abspath(__file__))), + "dropsend_setup_node.py", +) + +# WebSocket events that carry credential data or trigger credential- +# adjacent UI changes. Any send_sync of one of these MUST NOT be a +# broadcast (sid=None). +CREDENTIAL_EVENTS = frozenset({ + "dropsend_credentials_ready", + "dropsend_credentials_needed", + "dropbox_reconnect_complete", +}) + + +def _iter_send_sync_calls(tree): + """Yield every call to a `*.send_sync(...)` attribute in the tree.""" + for node in ast.walk(tree): + if not isinstance(node, ast.Call): + continue + func = node.func + if isinstance(func, ast.Attribute) and func.attr == "send_sync": + yield node + + +def _first_arg_is_credential_event(call): + """If the first positional arg is a string literal naming a + credential-class event, return that string; otherwise None.""" + if not call.args: + return None + arg = call.args[0] + if isinstance(arg, ast.Constant) and isinstance(arg.value, str): + if arg.value in CREDENTIAL_EVENTS: + return arg.value + return None + + +class TestNoBroadcastForCredentialEvents(unittest.TestCase): + """The dangerous pattern is `PromptServer.instance.send_sync(EVENT, + DATA)` (no third arg) or `send_sync(EVENT, DATA, None)`. Both + cause aiohttp's send_json to iterate every connected websocket + and deliver to all of them — i.e. a credential broadcast. + + Every credential-class send_sync in the setup node must have a + third argument, and that third argument must not be a `None` + literal.""" + + @classmethod + def setUpClass(cls): + with open(_SETUP_NODE_PATH, "r", encoding="utf-8") as f: + cls.tree = ast.parse(f.read(), filename=_SETUP_NODE_PATH) + + def test_every_credential_send_sync_supplies_a_sid(self): + offenders = [] + for call in _iter_send_sync_calls(self.tree): + event = _first_arg_is_credential_event(call) + if event is None: + continue + # Inspect the third positional or `sid=` keyword argument. + sid_arg = None + if len(call.args) >= 3: + sid_arg = call.args[2] + else: + for kw in call.keywords: + if kw.arg == "sid": + sid_arg = kw.value + break + if sid_arg is None: + offenders.append( + f"send_sync({event!r}, ...) at line {call.lineno} " + "supplies no sid argument; this would broadcast to " + "every connected WebSocket client." + ) + continue + if isinstance(sid_arg, ast.Constant) and sid_arg.value is None: + offenders.append( + f"send_sync({event!r}, ..., None) at line {call.lineno} " + "passes None as sid; this would broadcast to every " + "connected WebSocket client." + ) + if offenders: + self.fail( + "Credential events must never be broadcast. Offenders:\n " + + "\n ".join(offenders) + ) + + def test_every_credential_send_sync_is_inside_a_truthy_sid_check(self): + """Static-analysis defense in depth: walk every credential + send_sync and confirm it sits inside an `if sid:` (or `if X:`) + block. Catches the case where someone supplies a truthy-looking + variable that's actually `None` at runtime — the surrounding + guard is what proves the variable is non-empty.""" + offenders = [] + # Build parent links so we can walk upward from each call. + parent_of = {} + for parent in ast.walk(self.tree): + for child in ast.iter_child_nodes(parent): + parent_of[id(child)] = parent + + def is_inside_truthy_check(node): + cur = parent_of.get(id(node)) + while cur is not None: + if isinstance(cur, ast.If): + test = cur.test + # Accept `if sid:` and `if some_var:` (Name node) + # and `if sid is not None:` style. + if isinstance(test, ast.Name): + return True + if ( + isinstance(test, ast.Compare) + and len(test.ops) == 1 + and isinstance(test.ops[0], (ast.IsNot, ast.NotEq)) + and isinstance(test.comparators[0], ast.Constant) + and test.comparators[0].value is None + ): + return True + if ( + isinstance(test, ast.UnaryOp) + and isinstance(test.op, ast.Not) + ): + # `if not sid: ... else: send_sync(...)` is + # also an acceptable guard. + return True + cur = parent_of.get(id(cur)) + return False + + for call in _iter_send_sync_calls(self.tree): + event = _first_arg_is_credential_event(call) + if event is None: + continue + if not is_inside_truthy_check(call): + offenders.append( + f"send_sync({event!r}, ...) at line {call.lineno} " + "is not inside an `if sid:` (or equivalent) guard. " + "Without the guard, a falsy/missing client_id " + "would silently broadcast credentials." + ) + if offenders: + self.fail( + "Credential events must be inside a truthy-sid check. " + "Offenders:\n " + "\n ".join(offenders) + ) + + +class TestSetupNodeHasNoCredentialInputs(unittest.TestCase): + """The Setup Node's INPUT_TYPES must not declare app_key, + app_secret, or auth_code as workflow inputs. The whole point of + the modal architecture is that these never enter the prompt JSON; + if they reappear in INPUT_TYPES, every leak vector we closed + (workflow JSON, PNG metadata, /history, etc.) silently reopens.""" + + FORBIDDEN_INPUT_NAMES = frozenset({"app_key", "app_secret", "auth_code"}) + + @classmethod + def setUpClass(cls): + with open(_SETUP_NODE_PATH, "r", encoding="utf-8") as f: + cls.source = f.read() + cls.tree = ast.parse(cls.source, filename=_SETUP_NODE_PATH) + + def test_input_types_does_not_declare_credential_fields(self): + # Find INPUT_TYPES in DropSendSetupNode. It returns a dict + # literal of dicts; we check the keys at the inner level. + offenders = [] + for node in ast.walk(self.tree): + if not isinstance(node, ast.FunctionDef): + continue + if node.name != "INPUT_TYPES": + continue + for sub in ast.walk(node): + if not isinstance(sub, ast.Dict): + continue + for key in sub.keys: + if ( + isinstance(key, ast.Constant) + and isinstance(key.value, str) + and key.value in self.FORBIDDEN_INPUT_NAMES + ): + offenders.append( + f"{key.value!r} appears as a key in an INPUT_TYPES " + f"dict at line {key.lineno}. Setup-Node credentials " + "must NOT be workflow inputs — they go through the " + "modal + stash route, never the prompt body." + ) + if offenders: + self.fail( + "Forbidden credential fields declared as workflow inputs:\n " + + "\n ".join(offenders) + ) + + +if __name__ == "__main__": + unittest.main(verbosity=2) diff --git a/web/dropbox_oauth.js b/web/dropbox_oauth.js index 2a15311..dffaa4b 100644 --- a/web/dropbox_oauth.js +++ b/web/dropbox_oauth.js @@ -1,194 +1,582 @@ -// dropbox_oauth.js - ComfyUI extension for seamless Dropbox OAuth flow +// dropbox_oauth.js — ComfyUI extension for the DropSend Setup Node. +// +// Architecture summary +// -------------------- +// The Setup Node deliberately has NO secret-bearing inputs in its +// Python INPUT_TYPES. app_key, app_secret, and auth_code are entered +// only via a browser-only modal launched from the "Set credentials…" +// button this extension installs on the node. The modal POSTs the +// values directly to /dropsend/setup/stash (a same-origin route +// registered by dropsend_setup_node.py) and closes. setup() consumes +// the stash entry on the next Queue. +// +// What this guarantees +// • Secrets never enter any LiteGraph widget value, so they cannot +// be serialized to workflow JSON, ComfyUI's localStorage auto-save, +// PNG metadata, copy-pasted nodes, or PromptServer.history / +// /history. +// • Browser-native masking (input type=password) covers shoulder- +// surfing during typing. +// • Modal closes after Save; no in-process JS cache. User pastes +// fresh values each time the modal opens — they don't persist +// across modal sessions. +// +// Auto-trigger UX +// --------------- +// After Run 1 prints the OAuth URL banner, dropsend_setup_node.py +// sends a "dropsend_credentials_needed" WebSocket event to the +// originating client_id only. Receiving that event auto-opens the +// entry modal so the user can paste the auth_code (plus re-paste +// app_key/app_secret) without clicking the button between runs. import { app } from "../../scripts/app.js"; import { api } from "../../scripts/api.js"; -// Track OAuth popup windows +// --------------------------------------------------------------------------- +// Constants and small helpers +// --------------------------------------------------------------------------- + +// Node-type registered in NODE_CLASS_MAPPINGS in dropsend_setup_node.py. +const SETUP_NODE_TYPE = "DropSendSetup"; + +// Track OAuth popup window so a second click reuses/replaces the first. let oauthPopup = null; +// Find every Setup Node currently in the graph (typically just one). +function findSetupNodes() { + try { + return app.graph.nodes.filter(n => n.type === SETUP_NODE_TYPE); + } catch (e) { + console.warn("[DropSendNode] Could not enumerate graph nodes:", e); + return []; + } +} + +// --------------------------------------------------------------------------- +// "Set credentials…" button widget on the Setup Node +// --------------------------------------------------------------------------- + +// Add the button widget to a Setup Node instance. Idempotent — safe +// to call repeatedly from any code path (prototype.onNodeCreated, +// loadedGraphNode, setup-time sweep) without producing duplicate +// buttons. +// +// Critical detail: after addWidget the node's bounding box must be +// recomputed via setSize(computeSize()), otherwise the new widget is +// drawn outside the existing draw area and looks "missing." This is +// the failure mode that hit when nodeCreated installed the button +// after ComfyUI had already laid out the node for its three other +// widgets. +function ensureCredentialButton(node) { + if (!node || node.type !== SETUP_NODE_TYPE) return; + if (node.__dropsendButtonAdded) return; + if (typeof node.addWidget !== "function") { + console.warn("[DropSendNode] node.addWidget unavailable; cannot install Set credentials button"); + return; + } + node.addWidget("button", "Set credentials…", null, () => { + openCredentialEntryModal({ reason: "user-clicked" }); + }); + node.__dropsendButtonAdded = true; + try { + if (typeof node.computeSize === "function" && typeof node.setSize === "function") { + node.setSize(node.computeSize()); + } + } catch (e) { + console.warn("[DropSendNode] could not recompute node size after adding button:", e); + } + try { app.graph.setDirtyCanvas(true, true); } catch (_) {} + console.log(`[DropSendNode] Installed Set-credentials button on ${SETUP_NODE_TYPE}`); +} + +// --------------------------------------------------------------------------- +// Credential ENTRY modal (the new input surface) +// --------------------------------------------------------------------------- +// +// This is the modal the user types secrets INTO. Distinct from +// showCredentialModal below, which is the OUTPUT modal that displays +// the four delivered credentials at the end of a successful Setup run. + +function openCredentialEntryModal({ reason }) { + // If an entry modal is already open (e.g. user clicked the button + // twice, or auto-trigger fired while one was already open), just + // bring it to focus instead of stacking. + const existing = document.getElementById("dropsend-credentials-entry-modal"); + if (existing) { + const firstInput = existing.querySelector("input"); + if (firstInput) firstInput.focus(); + return; + } + + const overlay = document.createElement("div"); + overlay.id = "dropsend-credentials-entry-modal"; + overlay.style.cssText = [ + "position:fixed", "inset:0", + "background:rgba(0,0,0,0.7)", + "z-index:10001", + "display:flex", "align-items:center", "justify-content:center", + 'font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif' + ].join(";"); + + const dialog = document.createElement("div"); + dialog.style.cssText = [ + "background:#1e1e1e", "color:#eaeaea", + "border-radius:12px", "padding:24px", + "max-width:520px", "width:90%", + "box-shadow:0 20px 60px rgba(0,0,0,0.5)", + "box-sizing:border-box" + ].join(";"); + + const header = document.createElement("div"); + header.style.cssText = "display:flex;justify-content:space-between;align-items:center;margin-bottom:8px"; + const title = document.createElement("h2"); + title.textContent = "Set DropSend Credentials"; + title.style.cssText = "margin:0;font-size:1.2rem;color:#fff"; + const closeX = document.createElement("button"); + closeX.textContent = "×"; + closeX.setAttribute("aria-label", "Close"); + closeX.style.cssText = "background:none;border:none;color:#999;font-size:1.5rem;cursor:pointer;padding:0 8px;line-height:1"; + closeX.onclick = () => overlay.remove(); + header.appendChild(title); + header.appendChild(closeX); + dialog.appendChild(header); + + const intro = document.createElement("p"); + intro.style.cssText = "color:#bbb;font-size:0.85rem;line-height:1.5;margin:0 0 16px 0"; + intro.textContent = + reason === "auto-after-oauth-url" + ? "Authorization URL printed in the ComfyUI terminal. Authorize at Dropbox, copy the auth code, then paste app_key + app_secret + auth_code below and click Save." + : "Paste your Dropbox app_key and app_secret. Leave auth_code empty for now; you'll paste it later after authorizing at Dropbox. Values are sent to the server (browser only, never written to disk in display_only mode) and are NOT saved by ComfyUI in any workflow JSON, PNG metadata, or browser cache."; + dialog.appendChild(intro); + + // Three password inputs. + const fields = [ + { name: "app_key", label: "App Key" }, + { name: "app_secret", label: "App Secret" }, + { name: "auth_code", label: "Auth Code (paste after authorizing at Dropbox)" }, + ]; + const inputs = {}; + fields.forEach(({ name, label }) => { + const row = document.createElement("div"); + row.style.cssText = "margin-bottom:12px"; + + const lbl = document.createElement("label"); + lbl.textContent = label; + lbl.style.cssText = "display:block;font-size:0.8rem;color:#aaa;margin-bottom:4px;letter-spacing:0.02em"; + row.appendChild(lbl); + + const input = document.createElement("input"); + input.type = "password"; + input.autocomplete = "off"; + input.spellcheck = false; + input.value = ""; + input.style.cssText = "width:100%;box-sizing:border-box;padding:8px;font-family:Menlo,Monaco,monospace;font-size:0.9rem;background:#2a2a2a;color:#eaeaea;border:1px solid #444;border-radius:4px"; + row.appendChild(input); + + dialog.appendChild(row); + inputs[name] = input; + }); + + // Status line for inline error messages from the Save handler. + const status = document.createElement("p"); + status.style.cssText = "color:#f87171;font-size:0.8rem;margin:6px 0 0 0;min-height:1em"; + status.textContent = ""; + dialog.appendChild(status); + + const footer = document.createElement("div"); + footer.style.cssText = "display:flex;gap:10px;margin-top:16px;padding-top:12px;border-top:1px solid #333"; + + const cancelBtn = document.createElement("button"); + cancelBtn.textContent = "Cancel"; + cancelBtn.style.cssText = "flex:1;padding:9px;background:#444;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:0.9rem"; + cancelBtn.onclick = () => overlay.remove(); + + const saveBtn = document.createElement("button"); + saveBtn.textContent = "Save"; + saveBtn.style.cssText = "flex:1;padding:9px;background:#3b82f6;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:0.9rem"; + saveBtn.onclick = async () => { + const payload = { + app_key: inputs.app_key.value || "", + app_secret: inputs.app_secret.value || "", + auth_code: inputs.auth_code.value || "", + }; + if (!payload.app_key && !payload.app_secret && !payload.auth_code) { + status.textContent = "Nothing to save. Paste at least app_key + app_secret."; + return; + } + const clientId = api && api.clientId ? api.clientId : null; + if (!clientId) { + status.textContent = "Browser not yet connected to ComfyUI. Wait a moment and try again."; + return; + } + saveBtn.disabled = true; + cancelBtn.disabled = true; + try { + const resp = await fetch("/dropsend/setup/stash", { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ client_id: clientId, ...payload }), + }); + if (!resp.ok) throw new Error("server returned " + resp.status); + } catch (e) { + console.error("[DropSendNode] Stash POST failed:", e); + status.textContent = "Could not save: " + e.message; + saveBtn.disabled = false; + cancelBtn.disabled = false; + return; + } + // Wipe the input values from DOM the moment Save succeeds — + // even though the modal is about to be removed, we don't want + // the values to sit in input.value while the GC catches up. + Object.values(inputs).forEach(i => { i.value = ""; }); + overlay.remove(); + console.log("[DropSendNode] Stashed credentials via entry modal; click Queue to run setup"); + }; + + footer.appendChild(cancelBtn); + footer.appendChild(saveBtn); + dialog.appendChild(footer); + + // Submit on Enter from any input. + Object.values(inputs).forEach(input => { + input.addEventListener("keydown", (ev) => { + if (ev.key === "Enter") { ev.preventDefault(); saveBtn.click(); } + if (ev.key === "Escape") { ev.preventDefault(); cancelBtn.click(); } + }); + }); + + overlay.appendChild(dialog); + document.body.appendChild(overlay); + + // Auto-focus the first empty input — usually app_key on initial + // open, auth_code if app_key is already filled (no longer applies + // here since we don't pre-fill, but the same logic is harmless). + setTimeout(() => { + const firstEmpty = fields.map(f => inputs[f.name]).find(i => !i.value); + if (firstEmpty) firstEmpty.focus(); + }, 0); +} + +// --------------------------------------------------------------------------- +// OAuth popup window (delegate to Dropbox) +// --------------------------------------------------------------------------- + +window.openDropboxOAuth = function (url) { + console.log("[DropSendNode] Opening OAuth popup:", url); + if (oauthPopup && !oauthPopup.closed) oauthPopup.close(); + const popup = window.open( + url, + "dropbox_oauth", + "width=500,height=700,scrollbars=yes,resizable=yes,status=no,location=no,toolbar=no,menubar=no" + ); + if (popup) { + oauthPopup = popup; + popup.focus(); + const checkClosed = setInterval(() => { + if (popup.closed) { + console.log("[DropSendNode] OAuth popup closed"); + clearInterval(checkClosed); + oauthPopup = null; + } + }, 500); + return popup; + } + console.error("[DropSendNode] OAuth popup blocked by browser?"); + return null; +}; + +// --------------------------------------------------------------------------- +// Credential OUTPUT modal (the existing display_only delivery surface) +// --------------------------------------------------------------------------- +// +// Renders the four credentials delivered by the server after a +// successful exchange. Browser-only — never persisted, discarded +// when closed. + +function showCredentialModal(creds) { + const existing = document.getElementById("dropsend-credentials-modal"); + if (existing) existing.remove(); + + const overlay = document.createElement("div"); + overlay.id = "dropsend-credentials-modal"; + overlay.style.cssText = [ + "position:fixed", "inset:0", + "background:rgba(0,0,0,0.7)", + "z-index:10000", + "display:flex", "align-items:center", "justify-content:center", + 'font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif' + ].join(";"); + + const dialog = document.createElement("div"); + dialog.style.cssText = [ + "background:#1e1e1e", "color:#eaeaea", + "border-radius:12px", "padding:24px", + "max-width:600px", "width:90%", "max-height:85vh", + "overflow-y:auto", + "box-shadow:0 20px 60px rgba(0,0,0,0.5)", + "box-sizing:border-box" + ].join(";"); + + const header = document.createElement("div"); + header.style.cssText = "display:flex;justify-content:space-between;align-items:center;margin-bottom:12px"; + const title = document.createElement("h2"); + title.textContent = "DropSend Credentials"; + title.style.cssText = "margin:0;font-size:1.25rem;color:#fff"; + const closeX = document.createElement("button"); + closeX.textContent = "×"; + closeX.setAttribute("aria-label", "Close"); + closeX.style.cssText = "background:none;border:none;color:#999;font-size:1.5rem;cursor:pointer;padding:0 8px;line-height:1"; + closeX.onclick = () => overlay.remove(); + header.appendChild(title); + header.appendChild(closeX); + dialog.appendChild(header); + + const intro = document.createElement("p"); + intro.style.cssText = "color:#bbb;font-size:0.9rem;line-height:1.5;margin:0 0 18px 0"; + intro.textContent = + "These values are shown only in this browser and will be discarded when you close " + + "this dialog. They are NOT written to disk in this mode. Save each value somewhere " + + "safe now (password manager, secure note). Then configure them as your platform's " + + "secrets (RunPod Secrets, Docker env, systemd EnvironmentFile). Most cloud platforms " + + "require a pod or container restart for new secrets to take effect. Running the " + + "AutoUploader will fail until that restart completes."; + dialog.appendChild(intro); + + const flashCopied = (btn) => { + const original = btn.textContent; + btn.textContent = "✓"; + setTimeout(() => { btn.textContent = original; }, 1200); + }; + + Object.entries(creds).forEach(([name, value]) => { + const row = document.createElement("div"); + row.style.cssText = "margin-bottom:14px"; + + const labelRow = document.createElement("div"); + labelRow.style.cssText = "display:flex;justify-content:space-between;align-items:center;margin-bottom:4px"; + const label = document.createElement("label"); + label.textContent = name; + label.style.cssText = "font-weight:600;font-size:0.85rem;color:#aaa;letter-spacing:0.02em"; + + const copyBtn = document.createElement("button"); + copyBtn.textContent = "Copy"; + copyBtn.style.cssText = "padding:4px 12px;font-size:0.8rem;background:#3b82f6;color:#fff;border:none;border-radius:4px;cursor:pointer"; + copyBtn.onclick = async () => { + try { + await navigator.clipboard.writeText(value); + flashCopied(copyBtn); + } catch (e) { + input.select(); + document.execCommand("copy"); + flashCopied(copyBtn); + } + }; + labelRow.appendChild(label); + labelRow.appendChild(copyBtn); + + const input = document.createElement("input"); + input.type = "text"; + input.value = value; + input.readOnly = true; + input.style.cssText = "width:100%;box-sizing:border-box;padding:8px;font-family:Menlo,Monaco,monospace;font-size:0.85rem;background:#2a2a2a;color:#eaeaea;border:1px solid #444;border-radius:4px"; + input.onclick = () => input.select(); + input.onfocus = () => input.select(); + + row.appendChild(labelRow); + row.appendChild(input); + dialog.appendChild(row); + }); + + const footer = document.createElement("div"); + footer.style.cssText = "display:flex;gap:10px;margin-top:18px;padding-top:14px;border-top:1px solid #333"; + + const copyAllBtn = document.createElement("button"); + copyAllBtn.textContent = "Copy all as NAME=value"; + copyAllBtn.style.cssText = "flex:1;padding:10px;background:#3b82f6;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:0.9rem"; + copyAllBtn.onclick = async () => { + const text = Object.entries(creds).map(([k, v]) => `${k}=${v}`).join("\n"); + try { + await navigator.clipboard.writeText(text); + flashCopied(copyAllBtn); + } catch (e) { + console.error("[DropSendNode] Clipboard write failed:", e); + alert("Clipboard write failed; select and copy values manually."); + } + }; + + const doneBtn = document.createElement("button"); + doneBtn.textContent = "I have copied them"; + doneBtn.style.cssText = "flex:1;padding:10px;background:#444;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:0.9rem"; + doneBtn.onclick = () => overlay.remove(); + + footer.appendChild(copyAllBtn); + footer.appendChild(doneBtn); + dialog.appendChild(footer); + + overlay.appendChild(dialog); + document.body.appendChild(overlay); +} + +// --------------------------------------------------------------------------- +// Extension registration +// --------------------------------------------------------------------------- + app.registerExtension({ name: "DropSendNode.OAuthHandler", - + async setup() { console.log("[DropSendNode] OAuth extension loaded"); - - // Listen for WebSocket messages about OAuth completion - api.addEventListener("dropbox_oauth_complete", (event) => { - console.log("[DropSendNode] Received OAuth completion notification via WebSocket", event.detail); - - const data = event.detail; - if (data.success) { - console.log("[DropSendNode] OAuth successful"); - this.handleOAuthSuccess(); - } else { - console.error("[DropSendNode] OAuth failed:", data.message); - } - }); - - // Listen for WebSocket messages about reconnect completion + + // Defensive sweep: if ComfyUI restored a workflow before our + // hooks were attached, install the button on any Setup Node + // already in the graph at this point. + try { + findSetupNodes().forEach(n => ensureCredentialButton(n)); + } catch (e) { + console.warn("[DropSendNode] setup-time sweep failed:", e); + } + + // Reconnect-complete: server cleared credentials and wants the + // browser to refresh so the auth UI is back in its initial state. api.addEventListener("dropbox_reconnect_complete", (event) => { - console.log("[DropSendNode] Received reconnect completion notification via WebSocket", event.detail); - + console.log("[DropSendNode] dropbox_reconnect_complete:", event.detail); const data = event.detail; - if (data.success) { - console.log("[DropSendNode] Reconnect successful"); + if (data && data.success) { this.handleReconnectSuccess(); } }); - - // Listen for postMessage from OAuth popup window - window.addEventListener("message", (event) => { - if (event.data && event.data.type === 'dropbox_oauth_complete') { - console.log("[DropSendNode] Received OAuth completion notification via postMessage", event.data); - - if (event.data.success) { - console.log("[DropSendNode] OAuth successful"); - this.handleOAuthSuccess(); - } else { - console.error("[DropSendNode] OAuth failed:", event.data.message); - } + + // Credentials-needed: server printed the OAuth URL and is + // signaling the browser to open the entry modal so the user + // can paste the auth_code (and re-paste app_key/app_secret) + // as soon as Dropbox shows them the code. + api.addEventListener("dropsend_credentials_needed", (event) => { + console.log("[DropSendNode] dropsend_credentials_needed:", event.detail); + const data = event.detail || {}; + const expectedClientId = data.client_id; + const ourClientId = api && typeof api.clientId !== "undefined" ? api.clientId : null; + if (expectedClientId && ourClientId && expectedClientId !== ourClientId) { + console.warn( + "[DropSendNode] Ignoring credentials-needed event: client_id mismatch (got " + + String(expectedClientId) + ", expected " + String(ourClientId) + ")" + ); + return; } + openCredentialEntryModal({ reason: "auto-after-oauth-url" }); + }); + + // Credentials-ready: server delivered the four output values + // for display_only mode. Show the OUTPUT modal. + api.addEventListener("dropsend_credentials_ready", (event) => { + console.log("[DropSendNode] dropsend_credentials_ready"); + const data = event.detail; + if (!data || !data.credentials || typeof data.credentials !== "object") { + console.error("[DropSendNode] credentials_ready payload missing/malformed", event); + return; + } + const expectedClientId = data.client_id; + const ourClientId = api && typeof api.clientId !== "undefined" ? api.clientId : null; + if (ourClientId == null) { + console.warn( + "[DropSendNode] api.clientId not available, cannot defense-in-depth verify; " + + "trusting the server's sid-targeted delivery." + ); + } else if (expectedClientId && expectedClientId !== ourClientId) { + console.warn( + "[DropSendNode] Ignoring credentials event: client_id mismatch (got " + + String(expectedClientId) + ", expected " + String(ourClientId) + ")" + ); + return; + } + // If an entry modal is still open from before, close it — + // we don't need it any more, the values were consumed and + // the OUTPUT modal is about to render. + const entry = document.getElementById("dropsend-credentials-entry-modal"); + if (entry) entry.remove(); + showCredentialModal(data.credentials); }); }, - - handleOAuthSuccess() { - // Don't auto-close popup - let user close manually after seeing success message - console.log("[DropSendNode] OAuth success detected - popup will stay open for user to close manually"); - - // Reset any reconnect checkboxes - this.resetReconnectFields(); - - // Note: Manual refresh required if user wants to update UI - console.log("[DropSendNode] OAuth success handled - manual refresh available"); - }, - + resetReconnectFields() { try { - // Find all DropboxSetupNode instances and reset their reconnect fields - const nodes = app.graph.nodes.filter(node => node.type === "DropboxSetupNode"); - nodes.forEach(node => { - if (node.widgets) { - const reconnectWidget = node.widgets.find(w => w.name === "reconnect"); - if (reconnectWidget && reconnectWidget.value === true) { - console.log("[DropSendNode] Resetting reconnect field to false"); - reconnectWidget.value = false; - if (node.onWidgetChanged) { - node.onWidgetChanged("reconnect", false); - } - } + findSetupNodes().forEach(node => { + if (!node.widgets) return; + const reconnectWidget = node.widgets.find(w => w.name === "reconnect"); + if (reconnectWidget && reconnectWidget.value === true) { + reconnectWidget.value = false; + if (node.onWidgetChanged) node.onWidgetChanged("reconnect", false); } }); } catch (e) { console.log("[DropSendNode] Could not reset reconnect fields:", e); } }, - - handleReconnectSuccess() { - // For reconnect, we DO want auto-refresh to show the auth fields again - console.log("[DropSendNode] Reconnect success - refreshing interface to show auth fields"); - - // Reset any cached state that might prevent popup detection - this.resetReconnectFields(); - - // Refresh ComfyUI interface to show auth fields after reconnect - setTimeout(() => { - console.log("[DropSendNode] Refreshing ComfyUI interface after reconnect"); - window.location.reload(); - }, 1000); // Short delay for reconnect - }, - - // Override node execution to detect and handle OAuth URLs - async beforeRegisterNodeDef(nodeType, nodeData, app) { - if (nodeData.name === "DropboxSetupNode") { - console.log("[DropSendNode] Registered DropboxSetupNode enhancement"); - - // Add custom OAuth popup handling - const originalExecuted = nodeType.prototype.onExecuted; - nodeType.prototype.onExecuted = function(message) { - console.log("[DropSendNode] Node executed with message:", message); - - // Check if this execution includes OAuth URL generation - if (message && typeof message === 'object' && message.text && message.text[0]) { - const text = message.text[0]; - console.log("[DropSendNode] Message text content:", text.substring(0, 100) + "..."); - - if (text.includes('Dropbox OAuth Ready!')) { - console.log("[DropSendNode] Detected Dropbox OAuth ready message"); - - // Extract OAuth URL from the message - const urlMatch = text.match(/(https:\/\/www\.dropbox\.com\/oauth2\/authorize[^\s]+)/); - if (urlMatch) { - const oauthUrl = urlMatch[1]; - console.log("[DropSendNode] Extracted OAuth URL:", oauthUrl); - - // Auto-open the popup after a brief delay - setTimeout(() => { - console.log("[DropSendNode] Auto-opening OAuth popup..."); - window.openDropboxOAuth(oauthUrl); - }, 500); - } else { - console.log("[DropSendNode] No OAuth URL found in message"); - } - } else { - console.log("[DropSendNode] Message does not contain 'Dropbox OAuth Ready!' trigger"); - } - } else { - console.log("[DropSendNode] Message structure not recognized for OAuth detection"); - } - - if (originalExecuted) { - return originalExecuted.apply(this, arguments); - } - }; - } - } -}); -// Utility function to open OAuth in a small popup window -window.openDropboxOAuth = function(url) { - console.log("[DropSendNode] Opening OAuth popup:", url); - - // Close existing popup if open - if (oauthPopup && !oauthPopup.closed) { - oauthPopup.close(); - } - - // Open small popup window - const popup = window.open( - url, - 'dropbox_oauth', - 'width=500,height=700,scrollbars=yes,resizable=yes,status=no,location=no,toolbar=no,menubar=no' - ); - - if (popup) { - oauthPopup = popup; - - // Focus the popup - popup.focus(); - - console.log("[DropSendNode] OAuth popup opened successfully"); - - // Monitor popup closure with more detailed logging - const checkClosed = setInterval(() => { - if (popup.closed) { - console.log("[DropSendNode] OAuth popup closed by user or completed"); - clearInterval(checkClosed); - oauthPopup = null; + handleReconnectSuccess() { + console.log("[DropSendNode] Reconnect success - refreshing UI to show auth fields"); + this.resetReconnectFields(); + // Close any open entry modal — the prior session is gone. + const entry = document.getElementById("dropsend-credentials-entry-modal"); + if (entry) entry.remove(); + setTimeout(() => { + console.log("[DropSendNode] Reloading after reconnect"); + window.location.reload(); + }, 1000); + }, + + nodeCreated(node) { + ensureCredentialButton(node); + }, + + // Fires when a node is restored from saved state — auto-save in + // localStorage on page reload, dragged workflow JSON, dragged PNG + // with embedded workflow metadata. Without this, the button + // wouldn't be added to nodes that already existed when the + // workflow was loaded. + loadedGraphNode(node, _app) { + ensureCredentialButton(node); + }, + + // Install the Set-credentials button on every instance of the + // Setup Node. We override prototype.onNodeCreated here (rather + // than relying solely on the nodeCreated extension hook) because + // it runs in-context with the node's construction, so the + // button is added before ComfyUI computes the node's initial + // size — guaranteeing the button is inside the drawn bounds. + // + // Also detects the OAuth URL printed by the Python setup() and + // auto-opens it in a popup window. + async beforeRegisterNodeDef(nodeType, nodeData, _app) { + if (nodeData.name !== SETUP_NODE_TYPE) return; + console.log(`[DropSendNode] Registered ${SETUP_NODE_TYPE} enhancement`); + + const origOnNodeCreated = nodeType.prototype.onNodeCreated; + nodeType.prototype.onNodeCreated = function () { + const r = origOnNodeCreated ? origOnNodeCreated.apply(this, arguments) : undefined; + try { + ensureCredentialButton(this); + } catch (e) { + console.warn("[DropSendNode] ensureCredentialButton via prototype hook failed:", e); } - }, 500); // Check more frequently - - // Also monitor popup URL changes (if possible) - try { - popup.addEventListener('beforeunload', () => { - console.log("[DropSendNode] OAuth popup is navigating"); - }); - } catch (e) { - console.log("[DropSendNode] Cannot monitor popup navigation (cross-origin)"); - } - - return popup; - } else { - console.error("[DropSendNode] Could not open OAuth popup - popup blocked?"); - return null; - } -}; \ No newline at end of file + return r; + }; + + const originalExecuted = nodeType.prototype.onExecuted; + nodeType.prototype.onExecuted = function (message) { + try { + if (message && message.text && message.text[0]) { + const text = message.text[0]; + if (text.includes("Dropbox OAuth Ready!")) { + const m = text.match(/(https:\/\/www\.dropbox\.com\/oauth2\/authorize[^\s]+)/); + if (m) { + setTimeout(() => window.openDropboxOAuth(m[1]), 500); + } + } + } + } catch (e) { + console.warn("[DropSendNode] onExecuted hook error:", e); + } + if (originalExecuted) return originalExecuted.apply(this, arguments); + }; + }, +});