From 511c28150b61f83447e418524ec526d587d7105b Mon Sep 17 00:00:00 2001 From: "Hunam (Elie TD)" Date: Wed, 24 Apr 2024 12:35:04 +0300 Subject: [PATCH] feat(app): add AFFiNE (#3069) * feat: add AFFiNE * fix: add min and max values to password field * dezoom logo * fix password error message * change password requirements and error message * change version to "stable" * fix password min max in accordance to the regex validator Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * add supported architectures * refactor(affine): small changes in compose file * fix(affine): change container names --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Co-authored-by: Stavros --- apps/affine/config.json | 53 ++++++++++++++++ apps/affine/docker-compose.yml | 91 ++++++++++++++++++++++++++++ apps/affine/metadata/description.md | 23 +++++++ apps/affine/metadata/logo.jpg | Bin 0 -> 49152 bytes 4 files changed, 167 insertions(+) create mode 100644 apps/affine/config.json create mode 100644 apps/affine/docker-compose.yml create mode 100755 apps/affine/metadata/description.md create mode 100644 apps/affine/metadata/logo.jpg diff --git a/apps/affine/config.json b/apps/affine/config.json new file mode 100644 index 00000000..e3847cce --- /dev/null +++ b/apps/affine/config.json @@ -0,0 +1,53 @@ +{ + "name": "AFFiNE", + "id": "affine", + "available": true, + "short_desc": "AFFiNE is a workspace with fully merged docs, whiteboards and databases.", + "author": "https://github.com/toeverything", + "port": 3010, + "categories": [ + "utilities" + ], + "description": "AFFiNE is a workspace with fully merged docs, whiteboards and databases. A privacy-focused, local-first, open-source, and ready-to-use alternative for Notion & Miro. Docs, canvas and tables are hyper-merged with AFFiNE - just like the word affine", + "tipi_version": 1, + "version": "stable", + "source": "https://github.com/toeverything/affine", + "website": "https://affine.pro", + "exposable": true, + "form_fields": [ + { + "env_variable": "AFFINE_ADMIN_EMAIL", + "label": "Admin Email", + "pattern_error": "Invalid email", + "regex": "^[\\w\\-\\.]+@([\\w-]+\\.)+[\\w-]{2,}$", + "required": true, + "type": "text" + }, + { + "env_variable": "AFFINE_ADMIN_PASSWORD", + "label": "Admin Password", + "pattern_error": "Invalid password: Must have 1 lowercase, 1 uppercase, 1 special character, 1 digit and no $.", + "regex": "^(?=.*\\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[^\\w\\d\\s:])([^\\s$]){8,128}$", + "required": true, + "type": "password", + "min": 8, + "max": 128 + }, + { + "env_variable": "AFFINE_TELEMETRY_ENABLE", + "label": "Enable affine telemetry?", + "required": false, + "type": "boolean" + }, + { + "env_variable": "AFFINE_POSTGRES_PASSWORD", + "label": "Affine postgres password", + "type": "random", + "min": 32 + } + ], + "supported_architectures": [ + "arm64", + "amd64" + ] +} \ No newline at end of file diff --git a/apps/affine/docker-compose.yml b/apps/affine/docker-compose.yml new file mode 100644 index 00000000..8965da26 --- /dev/null +++ b/apps/affine/docker-compose.yml @@ -0,0 +1,91 @@ +version: "3.9" +services: + affine: + image: ghcr.io/toeverything/affine-graphql:stable + container_name: affine + command: ["sh", "-c", "node ./scripts/self-host-predeploy && node ./dist/index.js"] + ports: + - ${APP_PORT}:3010 + depends_on: + affine-redis: + condition: service_healthy + affine-postgres: + condition: service_healthy + volumes: + # Custom configurations + - ${APP_DATA_DIR}/data/config:/root/.affine/config + # Blob storage + - ${APP_DATA_DIR}/data/storage:/root/.affine/storage + logging: + driver: "json-file" + options: + max-size: "1000m" + restart: unless-stopped + environment: + - NODE_OPTIONS="--import=./scripts/register.js" + - AFFINE_CONFIG_PATH=/root/.affine/config + - REDIS_SERVER_HOST=affine-redis + - DATABASE_URL=postgres://tipi:${AFFINE_POSTGRES_PASSWORD}@affine-postgres:5432/affine + - NODE_ENV=production + - AFFINE_ADMIN_EMAIL=${AFFINE_ADMIN_EMAIL} + - AFFINE_ADMIN_PASSWORD=${AFFINE_ADMIN_PASSWORD} + - TELEMETRY_ENABLE=${AFFINE_TELEMETRY_ENABLE} + networks: + - tipi_main_network + labels: + # Main + traefik.enable: true + traefik.http.middlewares.affine-web-redirect.redirectscheme.scheme: https + traefik.http.services.affine.loadbalancer.server.port: 3010 + # Web + traefik.http.routers.affine-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.affine-insecure.entrypoints: web + traefik.http.routers.affine-insecure.service: affine + traefik.http.routers.affine-insecure.middlewares: affine-web-redirect + # Websecure + traefik.http.routers.affine.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.affine.entrypoints: websecure + traefik.http.routers.affine.service: affine + traefik.http.routers.affine.tls.certresolver: myresolver + # Local domain + traefik.http.routers.affine-local-insecure.rule: Host(`affine.${LOCAL_DOMAIN}`) + traefik.http.routers.affine-local-insecure.entrypoints: web + traefik.http.routers.affine-local-insecure.service: affine + traefik.http.routers.affine-local-insecure.middlewares: affine-web-redirect + # Local domain secure + traefik.http.routers.affine-local.rule: Host(`affine.${LOCAL_DOMAIN}`) + traefik.http.routers.affine-local.entrypoints: websecure + traefik.http.routers.affine-local.service: affine + traefik.http.routers.affine-local.tls: true + + affine-redis: + image: redis + container_name: affine-redis + restart: unless-stopped + volumes: + - ${APP_DATA_DIR}/data/redis:/data + healthcheck: + test: [ "CMD", "redis-cli", "--raw", "incr", "ping" ] + interval: 10s + timeout: 5s + retries: 5 + networks: + - tipi_main_network + + affine-postgres: + image: postgres + container_name: affinepostgres + restart: unless-stopped + volumes: + - ${APP_DATA_DIR}/data/postgres:/var/lib/postgresql/data + healthcheck: + test: [ "CMD-SHELL", "pg_isready -U affine" ] + interval: 10s + timeout: 5s + retries: 5 + environment: + POSTGRES_USER: tipi + POSTGRES_PASSWORD: ${AFFINE_POSTGRES_PASSWORD} + POSTGRES_DB: affine + networks: + - tipi_main_network diff --git a/apps/affine/metadata/description.md b/apps/affine/metadata/description.md new file mode 100755 index 00000000..4af96cb7 --- /dev/null +++ b/apps/affine/metadata/description.md @@ -0,0 +1,23 @@ +## AFFiNE + +[AFFiNE](https://affine.pro) is an open-source, all-in-one workspace and an operating system for all the building blocks that assemble your knowledge base and much more -- wiki, knowledge management, presentation and digital assets. It's a better alternative to Notion and Miro. + +![](https://cdn.affine.pro/Github_hero_image1.png) + +### Features + +**A true canvas for blocks in any form. Docs and whiteboard are now fully merged.** + +- Many editor apps claim to be a canvas for productivity, but AFFiNE is one of the very few which allows you to put any building block on an edgeless canvas -- rich text, sticky notes, any embedded web pages, multi-view databases, linked pages, shapes and even slides. We have it all. + +**Multimodal AI partner ready to kick in any work** + +- Write up professional work report? Turn an outline into expressive and presentable slides? Summary an article into a well-structured mindmap? Sorting your job plan and backlog for tasks? Or... draw and code prototype apps and web pages directly all with one prompt? With you, AFFiNE AI pushes your creativity to the edge of your imagination. + +**Local-first & Real-time collaborative** + +- We love the idea of local-first that you always own your data on your disk, in spite of the cloud. Furthermore, AFFiNE supports real-time sync and collaborations on web and cross-platform clients. + +**Self-host & Shape your own AFFiNE** + +- You have the freedom to manage, self-host, fork and build your own AFFiNE. Plugin community and third-party blocks are coming soon. More tractions on [Blocksuite](https://blocksuite.io). Check there to learn how to [self-host AFFiNE](https://docs.affine.pro/docs/self-host-affine). diff --git a/apps/affine/metadata/logo.jpg b/apps/affine/metadata/logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..01176fd1ac73908e35fb6cd2374855a7e360a441 GIT binary patch literal 49152 zcmeFZWmH^EvoN}eVF7}>ySoRH;5PW+5*P*@Y#0V7dC;H%2G`*34gmrLx4_^Uf&~u* zNJ2t#C(rZBS>HP6JMTI7&t2=j&FsBvs;jH3tEzia|g&Umsz9} zaOY1v0JveEzd;P=-{t>$iU^5_$p~RS5=_7E!ZJdl0C4*i*59~c=w99W3;xaW)$M=6 zzj^)I#DC?8KzPUq3c7g-*x0$-LIoi1u7bWc9)iLGLW01LrKP0>g+v5JMEEfj{9b-;2peC1H!s$|b5MeMLEugv2q$+prr#WG zY~8&Pax9pd{}Rd7;~#AQ)3*Pe(8JLk;qK+={$G&)Bl}N<{k;&T`5@5$oxiK=Z!P>O zix)x}i4pDpW(hAtKM$y&KGe(I8xDagBcW~x*5AcFWEA008w6AdbIGy%_6B|-%tylT zw>JpM2#fLxi3$n*MG11ZbF%mQPbq)<4Tcg^7j_H|bxpV7%kM z7UZ7=6y0I&aEweCxkXu+{)tytRMdsL+dIK98D9FT3QX$CiW0)o5)%9(0>Zzo`=@ec z)SSE!?r^`q`HKP6^KTH$iRn*$%Gf}D+g^^v1MY6;4T0LR{0;BrZjbP>fkU4-V3a7w z^2FZW$;}Dj$AobhCkHnuoJoWUQxV1$|3>fQ2*q&uKU(x36eftNSn#)p{Uw9o|0&*| zdH=y1|4xo^@!#M-`ieZ$ztg`p@NW(LTLb^rz`r%{Zw>taPXqs)ZA0BKlPDj|T>95B zz^D8787PyefDj<1pbomj{(JTgJeZ}AU3v*L+}VGQn|}0FA^6vaTXvY~leMnCj*7aL zGA0xOfLn$zh^yBfApmf7L%@H}r%X)En6N)$;);719+Ciq4aCdiiLS2JpFIE5+tvJ^ z5etCk|IO<^CHb$B_;#3?I3`}f!H~#9Jm3fntcHQLd=MVL;baU<2642p!@y-2m=BH- z5ChNt#@qe{fBX$Q{00B`4Z{uf6)|mlfPtAD{sV0LA7F?h+!aHEX*s~=3iHOu@MroR zd)@zXAZMOAJ2YpE$NW03ZqjfR_G$ z;%w6ZpfwTzsFplz;5L8O^E=wSWsiwX&r1P-z!U&T-vI!g`CmH2{5*1ON^UJ(0z)6^xF4N4fuR(r+gJZ_58!_SYML80QuyTE2}%4BR5dx=oDr>n*^D zan{?wt=kxq-;Ma4aPjc5aqir`he2Wpv@mXS?-thW+qZ7ryLT54gT+u|a`g_%fVEiaWNHZs7X=7HhI24y9xA>k+6J0U7Goz&a{!=iNu zln3ATjG6iLFM~-MApMpi79F;IF8j?{C*PVHbeA*_NLw<#wmWxGo#?W-v_$1AQrO=0 zwkVDZmA83UtYzE2k@ksxe> z)uQ8x(m=Kz#a^aE8)G&Ov(IvX?V~)Ku&rTQ$`+lj*xqQY`oTD+?kJ>iNj$m|rqcnfrsta4E}$G45s5og?RHzjrhK79NsPJfh}yj=?eNW)V<*xp-mbx8T)PyF zfhr2k$OQ>pm5=nB5Grd&FC()KQo?k$rWiF`X|C_L#?9qCFA7pZk0fxe0j!`N)kk2W zqOoOvQ#V=0Sj2gYT;LcIwyklCVVU-$&Y3RyB^K z555tj|KIr@7UPZ1x6hCFOZ#$0M!!$>CM1+829X-0E!#%%V3xg55R&FPIf6vmGN*DM zX0JcG83pzx(u!3{_3FE2*3ws=Wwfw>s9JdVmI`7FiPioXdMb-GU?q0UV0$j8;~A;>Hpm6)7V{b; z&=wMI{C>!0bMk}jh(rZ$Ri(z7%H5{ok|`#`2K6hoK*(?$hrDKe!UTr9W`Nuea9 z3dC+RlinIUyvGq(wq-QExxvzkP1X8P#Rh4V);Xqs^x{EfAT?1Kyq4H59E_L-ueq(< z*%g^KO%PGPQRxw;`BB7d@wAN)z#8^{>0*6hG`*0O2VUGTl+dnhH+G+O5%a8%^k|80 zDs+0`v(5a;&VmCq9~BtkrdFw1-OwoMST*OZFXiem^F2?DusE9=9avlVgKD1_A^Gkq zMLa9ECdj+ZMg7&#)0x!1QrU(kC?8B?-a@`lduQKEy!>-P5_}{Li|O(I%2`CpFTvhA zHb^9v^V6_8-VNd@czEd*Q|;|deFtO7q3-QKTfsZNQ5v5 z?jXUhaIVT;5+?yan8-(Cef3bKZxq4+tsj$hHEwn)2$}#%9FRHZa za0c}G{-ZpDM=Kw$O3OTDG0tccd0g)P@)^BY_L zG_T6>*8Z{>dZQ_d1Bza3j>V-xN*i9X%N0r|pP@|r?6yhK+^_e|{d*7}TM^xR+KXEc z+u8CCPt#(q!rRnP(&7v1D-7~Rc`TLL#A0h8<5?$G)mEM)H5Qj3Gf$%zsd7ddJj4;V zuQH?A^2ycqK!%fGQaw?-XpVf*&z4-=8z)4Z^X#}mtZGt=+LJ64sFZ$glk%fx3wbqPoFiK(f{!Q1;SPkhJ zZF*v~63XBdX#?iC=YuZQrv|u_<#eAHzjwtfkzIrf9UQDn8m-$P2cl=2%dzwD-X4fs zkn$aw)0q0<&pnSRaTwPT8EmR7<#X}uUR0t22wdbu==mN^@ANtz=QLJk#O`1Vm@Ql( zN41q}o5d9u7VR5z^eVtSZ&_0bKjcF#R$PzBl^f?5Xf2ZORMW-PAO<< z;hgx6I31>GSP&hd@f2V`Eub{O?N0sidH#Fv=OuDP`1pwPy4w8G_Y+Ota@frMpWabb z&L)q>>s>O8&K4@Z5o^`vF;HJRae~s9*cx8JCam*9o8R=Axrm&hFFW~^U^o6q=4BFM zQC%;->BOkCnBc_&i2!=G-Z7upoK`(0x)xLRBx#g1DBPY%ILNz}_nfCJ zb<3~+;o3E-W-)oP;OX|-8r`M+(b+=!tDXQud0I|4sp!|k7>1}Lo@SF%L zGh^uMe`|3Zq@PN{Z7$?ODay0Frt>t3-&CU1tnfX{=$^Q`G6~)i0HE<_DCZtsgl<(W zXs>lazR3o}c(morXz$SbJ!(6f7!Tq5Z0QD#_s;1;Q&3aXIiWbU%HAC{l?~5FxEiB8 z9=HFG2SLJ~^U|c{&PWUIRl1xtQmXLz4l5KtqP|9v{c{m~I81?|6({L{Eo+Ru#c$lw ztdRj~Fdi3TD;}k7Ak|w(mG;>s&0IBSwRDZHc2!5DdBxMhYLSQvm13zfTls>RtHYZF zS2SF0W%?qgC;UWJLtJ77kztS9lp6x%v64*8?dCE{6hI@Tv2FZe#>p!@oGn3 z*}Go1X_9N2ZkTOEDU@Ptj$y5;X8y+WS?!47DFXlDrNEw1h9W=oFty@sVVU_IvMku1 zeE-)BBkjdb&EZ9sk92Lq^|21j=dWb-`m8Kn8F0=EHQ_xvvZIogvYybVY-TlJ7h1O( z0cD7QnED(s_uTc}4`tW3wL*3;9B@RE!7F@4-#Vd51Wi)aBbJuqRx)bEmma*~Q=mbI(xU-DGgOY{=4y%`eD+Fm03v+=(b@UNyx z$$5-(%06;2^0(VxVeC|znIR6qM-dg|IPg~m1a12a7ajWGx5|@xGgiAa_|;7{io~1o zBN~Q8{g;YPx`tlpZ3EbiMie$w_D1Xlc1g7(>LYza+FS$E%p2nh;xB?kNhZ}sY_c-A zQVl-ou%#E&uL-+|lWfkYv$MQA#IC~nLNf*3xR~!PaSbwd!%QcG{2LweOy>m-xknP8MKB8YSGo4gnkXOXqTF1ah*_fpwxLM+SyW`KxUoMPGTkv_#znS;}_GJ#^vGM@=iYcxG=U!Q^J*h$Cgwz!OX-$!_8*HFwFuwKx zEf?pRMx3g);Ps&Kg=|E+#~4=Lkp5)mkEngG5m{^opQA^^Ztf`YN@T2}q`JN&!EJ%b zu%PaW&A{>_Db6F&#(4`VBco#J@IprFelJz^kvoCFo|PEf0O5)4d)Tewd3DTQdo@^> ztKeU66EB%*KZ%Dt7i!cZn>5olf(cj3hBYi~8<+u3m3TCXRu2Cx5Z*60n z7oNQ)z>F0P(+|Mf4g^c19MdNxflD*E*x=_uV2V?>c^|Wgp;sns6+RUNx%c+9n)(G( z8!pGdwt7`_!ARjr;p}{7Ql62*-RQ4bcP#HrBxO-eiqNWEJU#dIw0i-H9-shxm{q&n}jB9Q4%&3a2!?8U_L6+eG(TpjY z({QxN?uShl4Vo)6-~1`S_^d*_3k7%OcPVp<>xT9_Z|pCxm!ai8M;d8PM9b9QS&@H~ zcX6H+r~jkp(ejTTA=>VP2~Q(*=8%OmkE~$HOtU3nehv58x|Q{UZlNupa6pe73?uzjf|wKqdkWjZ=FN(l6JN^M+VOidu}Fp9w_4H2V0lblnj z1mEv_kao>i7^eU2Q-iNtfxt44;SMjFf14LwZK|cx2}?)#V#B4VC#!z}=)$BXHyzKJ zk@SFYP+&uDt-NfwvpGxrH{?)*OXaE=KJ%q>a}-6{rark+-dhdv*oMcQarFvs)f)+- zuN}Ra-_h$y4H$1Dqm%lT=dPZ%#MdVUE=~04!t9TUt!&fmLAMIiaJJU^uP357CKk;q zC#ki>lq)J;$3G>(!`Sv#MsTfsDq|5RJ+uD{XPUi{l^KpBy^l(yVNW{dWILKTB#s-V&Up?rSeGbPL|#8^N7Ggzy4s5 z+<$q)8S*qnG}~~8R87PLv!^EeGc#BYl1LBz8rFMwU#`X(_q!xB%o+N~hxi+M&PkJ< z`=@5MUE2sUmy2H`KUT-?B)VP%s+Q?M5b+pLaR3XX1_m6o4=#Zi+cQXR?cX!S?PBk+ z-OB20bNW7Wtd<0?Uw4*xIH2#szbxFPZ}Hll-YH7?Ht}0d(&fO#+XV(mi5`Uv&oVTE8ib;VYa~Z9%13S{E=0;Q~)VGM5;w` z;ol+aRAOVX&*z}7rspN)>K!42UCAhiM&4g<^2mH44QnW?P~`BU#0-w+CmHA<{%?Er z7cmt2JdWSaf1@LZ^7(LWX^#t6p=8$dKN6XuFzY zt2k}wr4jscVz8X~DQe7i`2*UJFZ*A2zuViVX%!K*g{w%T-nzlrGXI~oa^4+g_Qw4t znL9?c6bEj-(i~e-lf)2mvJv#222w&T8ha8Cb~UI-(Oqk)Tz#V}J>B9bF5<*NM%p<* zq=+uk`ED4;X@LC312c>JaG3A8}*ORJ}n{+8qhcY+~;$$2}$Pm?a&D4Gz)w1?fUgB$$5A zCDVaGy|XlH+dTyz6`31K9LrHl2Vr+n4Hlh@RPj%~)4`KKDrDT@(!=r4a|P@O+ii+M*sMaAMk>xqvZ<-ykC?% zk)`uir!sgfnRWVExFQo~8HAin-EcCgoNlBdDO{Kgq(I9qgy$ys|QO&hc1-7FuU$a{6^;^!F^Iy>LER{h}E{>AL{ zKpN~aae*~EMKpZ(F{YV{X{K)R{<4*6jE1GA^|XrH^4(C5U%<=nOH#i8e}zJ^_vxn2 zDYXPqpB=oz%SX9bAz_1HPpT~()2C|c5md?_?f6Hn1l$>@PR)M-bbjP2Nee6H7Mi&t zNb<9w`IlLY3>V<|cCK7``jB$SOA(T}l{=nuHvCjOlw91g+xsQ-L0ERyI(e1>KAHq? zK#J|#_QwyYSLP-57R4{>4vZ8v%{G1@@2)mUy}g;6Qx-FTMGRI97N;D2A|OtRgPly= zCL2`~k1e)zmSxE^UL?ckV;_Bqd>+*_%imni(MbNC-_1K(L>HaVP-SSE9cGt>%_VDh z+)%;NftRR2D9Qjdsf)ySKHkQvDJb{jBo6jhS*R~SX`YhXDr%n`q zeWleJ_p-I@kd~t;Bm$PXl+xDQ*PtPglKq~i1Guens`~q#`gX$HVgF@YRq*AWR$amSp{cgNN!{Q{aZMnqbuMPx7Wk}dto$>&T}z#T=b zzRLr)l00Q5qZdkceuTCX0*^hY2o+~LDsEn1MRcKMYTB+h8jv}oolgplATgm2vzp9` z%@q}ew1!6XAIHccQz?<}_r>it@H&wV{E1+FY(&Q^-7*<`)XYQqd6HN@a4@wIv+t#C z+Yl)?d!0{QfPh0gtB*&n2ACk_OLN3G{Tk}cY_+-t!)12wv0{?v&M_YGujsN$edHIn z)`u%j2pH@6mn$7+?9_RUUhD0yzcH~{OQU8(F%hJYo$#G|OaHI*@ zi;ftLi0Go1Gw;~)3aTFJE{!p6x|%iL>|1CDQA|@=$_Du4-K#!p-dx!tXl9T5kfE+> zRQ4g5veVKyej~pck}2u-NdQgDPA^K=XG{N`+a$vXWLL1mYRPmhqal5M2Ql&;yV?-k zIH*I*gNmrhswg0Qpc`G3kH#$Yea7@Q1#EM-=nk*S+~}`so6UQ?&Bf_s-az_H`^(RVY)jbXyt42mYq4E5YzeDJXGpSMPq z^vnW>AuV6EN#W+?+Hh{L1eVX;h>!3Z%?ASi;HkR*LB`;bCs;w!5vQRIX zHKa<|R#h)%a2k+}#PA1Ja%6XuU`5-n&QacwHnlLMEjJI%(W5F(jCcrk8(A!DR{3+Q zxpo43ff_3?Q@Rb>JxpZp_w&FrG&CrQ>!N1CDWUGEQntKr`X%UKX=F8 zuDNIvLc8&Q)awq98FM5(Q3Cs!w>*(XRW5BsSNJB?j;jj^j~a7K-gYGxJvjVfu*JyV@#UPQZO(av=8|J2?gJm&H3Pvh z<)Z&lGN|J-ZHh;lx19r>=rmbrS&jV(C#;j8W5@ZNLVQypyJZX%^4Y0jtvV^*{#X+K z&P2(W*u|pkNWk3?AYm`GocSb(@Rk z#P9_XBKmX27w!J~qaS%+ZzahVH+r&e^ZYpgJn!!4B5XD`>Jt4zU{Pmwn$gjMyD2uf;<2$M)TCPE zK*AU%tA}*tIZ=ob`Uaf~OYak8_g?)zSDLTqL(S}5y%fqeF;|Q%rI%h5$m!W*I$&Y+8i{D!Q5@wshR6v$i zv0HH7nd#_=SysO-uVXT#@e3%{1pAjdjqb$;en^=Bk4bpC3Wtbig4mcY1va0BMdgl+ zHLIsqHuae7v!HfmCfJBgSKk&Ukg;G~K~T*d^FEqBOhj2el(>BP;eb$oBGpSnHre}q zU)J#a(F17ocP}1Wwz<^3TGggMn6(Nr%)Xcx4XQNpW{G8mMx?*_*BqDma}B2fms{!& z{Kd`+@e6p?HQZTT`wzEpe|PT5V;@nw7P%^njmW@lS;5XIHHp5 z5TbOJAIl%2D2m5snCc@c*8~+utcI-|1s%CD?xgZq0VcqPbh7>t|x( z=zeSl_qs#Z7Oqd`d>VW=>nsPJ2sg_VxJ~5L+O9c${}66NNhEM`E1%%}!2GU~Z4rA) za9((7T%wajZ#)z1L`u_MgUdD{lw6DJwH&@E`#|NlvlwMUo8S24?m#F8;KM~VL zjGyqRw?{W&wx)E;iC?eT2PNnDd*`93Ukr`U>fOE<7ep^-;;)+g%*Bx~f2iVYEI}Zc zj{O;usf79B-h9F&P6(q%TVVT0iR<~j5qO1{AjN{d+whLP1Wm)KtuvE=eDrXeGAF?t z2tlb8!_>jaQ&tsS+=~XY zjV5p8+nE50y>f{;nP=9pE5^r#FfsdFsqx0kbz38oW?ToSA=zVIVT3W7{ zL61=z zH6L9h*JZktX-sy)-pjO?BIP3rnv#PIisNDst^uW7(I@)%ICGSxo;3J-dyyi}1nm=j zbS|4StedJ;9PMLU2wO4*=e%#Og?d`zA2iHoi+C|jH=JnV%4ZLFj_xKz`08V;KMruj z-S4P6;xB0AXT^e4kEu)<@7Xd4GV^|$BT9S2wLZ&ms1w;)@X9dh zy-{c0CO+Zng%^GyuL_cJ@K}9Z6BC@j^Mu`f4$SJzSkClcXnZi3bUm)v>)Uue5E>Vt zrJ!Eg%B!%Y??#+jDx|q8*fF=hlAv5NoZjc0!I@HWJ=R` zuRS;U@X;#$gRkw>CjpVgE8oaX9tD1*%KZf}wJ0}>P2?TkB)h8nLLPlK7{QMp7!-b< z$dJFr-KIDD#X2Zs6l6GRHbTj;lS1ibcs}3Ue%Zb-8vXQAwga}tS7lFE=HSL7VUMKI zih0d(pxtsdL$IJEYI!iSU$)x=>Nk}r>9PBq@=zyEw4L<0I_TDRtDFy>R)&QG+yz-N zqHdfe{J0{pbHF>`E+r0=Dq7!LRcEEQi2N;pWjFcKs+iCeF=N(Rimcz2mhCTbmUt;p z*PxXpd80$RZ8+;$bON_G8K)A~Y}h|Er-^qGxCs>v(T_b>|M4vp)J<@C?}NKuoC4bG zOwmR02bl2EyW8q2Kk!KnwPViq-96QkZ58f z9s@=$v*ho1GUo6tA8z;)O5kNoPIy|4>XKAIs~&PP@enVORwmz`0Rfa#jWmie=~REFb_8x{ya! ziwN;)CKswiCqqV^lb^l?%t?^VmN{IejAQUrobzJC`)k|*xl;58N}j55NPBzrVf%pp z1WP573yzEfraG>C&-a!UX`Nf?A}nA$hwxGi@%SZY|*ZO9r7AgQQ!N0M?BslG% zs?$Ue$l_b)FCbC~4yV{XtCm|bKc$(qbaE+j&Rq&xaJ!VA%qHc`6U;4)U)_KMh?N%}G2QI+x8zBuz08q&i(rUs!#nLmj*1LnKC! zvQ^~P=K0md&{UyS4`Ek>);-lvF4?Ms+5)%SJ8mJm0_N~@XGg^wn9=c)`|hQ#lj`d4 zqf17PWjK`5YY!jFa{i&t-NMJkZZ?Y3?#dRfOj{i-G-TES2j*8$vVEwx0)i*&j~AC4 zY*e?_vpSBH^OsYob}LoiIZqX{@)C2gD6oW_j|n+gh1o9g`E~kEWEnO*- z9S4O6E*odCbGWVW>^b(Va*&^%jG4KKx>p(DvIoX`1-vXSvg~-|MJund*WQ>n#eDW0 z5VN{S@>bX^Y237k#B0rCZeGt@pI(hvq~L#Mums;NR#`3k;wZyAoKo2;i>JjcxVO5h z?iS7dgcsM9C!Ig5Ip)N*|Lu>3 zug^x7h|;)@xws&lLpOP1t(gZj$BN;KtA$!4?PuSNT@iC4n+`<9M`SVCjd=-=CmFNW zug9G@2HhvZ~wgXl;U&2iFi%E&CPa6aHzxknG7dniFpI0(U$6!irLAh8>Ix_ zC5~D1&<5k5Yq^E@Os@O~l2CSeC96+4oLiQQ#&h6PCiN<>Bl2oZn63EfF$Xw^nPPm- zlIq=8+Mvt~mv=115Yc4uf(cY&o9Pzi4!b%_+znp=&>zidW0m&WKmM*DQzCu|3^U>!eeMgbd3(lk~oG`{8ki z>@!>Oh_UBx_Gcq*)n4@5`ne>a!)+sq|#e^zxr|wW2mUcXD*pU&Sl~USMMo=)%n6hSw?ebqh$sT^pz(h6VI+9JwffQR$&rdS=Xt4L4Gv$8A=pL#DCdkgJ!wNfe zvEAlP(R&M)K{_2Yr0I*glwg?ULh})hbS-UEXPxsfsay@{7jURmQR zO{FrPk+_G|$`&%?;>Yyeq`Jp=A0%j-!sEtB3g+#%cRi`xG++CP3rgAxhLWjmQb7|CE;=XZ3)SblruLk zH7D=Pc;6JT7tqD7KD+G(*ES4SHg>J~EL=`OX+gX%Qezl3C%!{FHyll9p(5S1y9JHA zLO1d}CayiC+}V2{3A%np!&EHK-jm*GD?+GV;1VEUG@I#a(iMq>N1-LV78ksn9gWo? zca>M|R#D!wA}XTZ{Q|o5Wveo-yH#6x#K$O*Mp!K~^B0Nz2;C7VrRqXe%abN(5c}w} zeZo}NYaQF+26HJE7qMiJl7`(xcq(D#b0F0U*SqTgjBZy;&$&C?Nmo)AEyMl;e8 z3LP!1DJ216<+;K(O(<-(SQM~moA*l2Q2yZoW`k>Gm*5wB$j(Cs2&|pw)k*W4|mz zad2CeriqhZ-0o-cc4}$y3CI$v)0Crf{2&=6wni*&;37zPO0A*aZX5q4S)XCTDu~i1 z!oxjSui%FO&cyU?g4 ztiMrnomb}K4_gTlPy&>ZF(*;%*!V7wk}hT{)23G5(j>FpquQ>rev(2~j$gt1!mgMl~xx)hlo4-cMipXzKhH@S2E+}@ES zHVKqU-xU!F^XWv)idYfM3^uiZIzYT2d;St3m5!N1rtARZar%&9HCY5s8|*@?b@LY> z-Zn7BFGu|PYh_DifLS>Ev1G7s%H;BZZl=r~k1ne(hQTWHG|-#^2c8&3ouLMJBP5?? zXjfU*?%Nw=_FYvumE2t4+yJ8^y0OhmTN%nsZz}f`zrrDoWeM42@pKhs5QV10HAS4y zLpm?JWy31M`~5yK?J=1}6a24%6aG}%Jw7mMHBfua|8v6fy;I&=iOJeJ$$G=8 zGtQw*LQ?K`0kmur7WCN@!ANNzj~1C9nF6*B?>Bm0Bs=fK3`|S8+)Rg7F=QWX4eov^ z6D-#EBdW<9P=vFpms|{a>DRX_ZM(WvlpKQ@M-FKVsx4nvYVbJV4@#-unAyyrAB=VQ zlG5EGz5arD^YS3-P1ayX)qtpRqFLmgYqx}Ed6*ue`Gi6ors>kmP@de7EI(hHIH6~k zh6sb0b5}_C(eat}-NA~di$#Pfg?`Mi7i8ICS(lDaic5qwa^vjZ)1+@46wGL6(WZIm zxXDi24%-x)e_}V8RKyY{?7={V3+#tZ#ry(5+Rppk#?y7zD)RZF7odEQ;}#C7?f!S3 z7s88TDW3|Wnq*6-+20mB^&j!fuQvU!bvwX$&96fo92eJP?yBL6 zyisXXrR8uEH)$GZNskOv$f5#wREQ!|=^8zh*6QKlj80`rHJ-%ViU0lZtLrr{Iw!k7 z-K?D|gB)5qYUjBar4}H`N$Lg2u*98R5YqQJAv+1iPXRINYsitd5ua- z^^L(x#`tlBbhPDi#L&sDT@vOQdhF zE~;U`6nPmx2a)y+p%io_Z81ijru5>bq&-7@eb9Y}%lP;ITEdoav{HBf$-lmIv@Y#t zi7KkC>S{=us^(@(xnwRVcq(zQT zTGBfD^HIr>sJ>h!u0RJv`G`QOgTh-^I&S(sgp%KVS4Aq})+VAaUo3fkbAH)M%?MZf z_<_@5E^|AI^@7)5z*==^2ko4E140kj2~p=?YJQZS3{E8_ks!dFJhIqI+?E&jLD6(b zs3^oFXSekUk6*E=M}KfIG+F&#oj4wpw^}QoWO80Qg8X7LB!b6KZ;Z8#kDTsA_~ z*HhEg#M^tWbjVd?Eu=We;PsP&p6+V%r?ZSUzW8yjBMn|b^3bHcr`vB+B0QHYM)4_Jfua*aYojS%8Ud{)U|b8 ze@jKqOO!tf_E4=9!+-p|WU8D9-G)xrqv-bjl$5)c$NL_VlD3)|k5vFl*iNQ{xE-1t z#wKu+2z+{B7a<&mW8vVS%A~gCXJIyI?<*?dJF)83s&`IcQ6D@odbHl)8&aLqh+HyY z*{LiUBa4xQui4VGzcUO2v#Z(7a%)>`VXX)dcm)JseBO>DLj8a@(e(J0bd32)MP_(( z89YT>^R3Q<`~st%AirjoEoHT+b5;kqGMrEAe`|?48dM7SfaehIF zG64O4u!QNPJn-g78F6;6O~?4B+CB1b+^H6D2d1U@P~aWdes$PL*oye7o@?$A*9L1v zW2as4xNzNcrk*1m4+(JlNuKH>%xZM`fLX`ypOg7~idt-`C1uc%9m*<$l3RJXI_**$ z4xHI3Cizj zy&E2&J-PD5pW7^FRY94>ySQ{`p7U)) z7=)SUVx-BwBb=cA+W%9Q8RG22y_64DH6Tu6n!cK73C%}uSydNq!UeoEHfqn`_9hz> z@k{vV6Rk9x`cOr@7>5RB_JCg4W!g-3e)lr;-7A!&_yzO`p6#0%m{_$G7i)1Tr931j zY-YDlbXy#SNQo}E78*Ja@R1z|oY_547bn*Z6S6UHZ)xrfIKC3UZ2M+{f9rm7WL8Xq`8kTCL6`7fN&mXmJk&Qv`%J)5fRjokI- zqH&t+ngl%Gab~oT;TF}@?;sIV2PqtLI8l`6I7|RFO81YJYYUmu2 zQ}lDS5R*}TkWJyz#ZSWQ)jlF@saj9k-Ysn3ug<~B&RKKbqE2lOd^^Sy>NmRG326^$ zF|y_gS&VH0Z|@w=q^m2cj!1J8WMgANqy;=|_b_W97==v1wxoWXWjiqDipKu*oqSYw zx1&SGzv3HizfN-#r?jZc_Ah{%`iGQ>=KeZ`L4pjN{m~us#IW(sBK79-vvLRkG5O!i-(&Zc9S{)x%S`4Eyf0TfvB` z?aOBgW;P#C@lJ?+h8u_4Di0g;wF>y$wj=~u(=6C0
    dgU;QVww6*^CAgw{34 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

    1h<#d0o-M2z}P*W&n3@3nG2pOfRuZO4iK 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 I