From b0a23a6a7f152cf0237c46d942364ff971fcebda Mon Sep 17 00:00:00 2001 From: Matthew Walls Date: Tue, 11 Oct 2022 19:17:19 -0700 Subject: [PATCH] 1.4 Update Initial Update Debug Inspector patch disabled for now as the debug settings menus have been changed in 1.4 --- 1.4/Assemblies/DoorsExpanded.dll | Bin 0 -> 116224 bytes 1.4/Defs/JobDefs/PH_Jobs.xml | 12 + .../Heron_ResearchProjects.xml | 66 ++ .../ResearchProjectDefs/Heron_ResearchTab.xml | 9 + 1.4/Defs/SoundDef/Heron_Sounds.xml | 150 ++++ 1.4/Defs/Stats/DoorOpenTime.xml | 43 ++ 1.4/Defs/ThingDef_Building/Heron_Base.xml | 126 ++++ 1.4/Defs/ThingDef_Building/Heron_Doors.xml | 643 ++++++++++++++++++ .../Heron_RemoteDoorsAndButtons.xml | 303 +++++++++ 1.4/Defs/WorkGiverDefs/PH_WorkGivers.xml | 19 + .../ChineseSimplified-by-Juijote.txt | 0 .../Keyed/ProjectHeron_Keys.xml | 25 + .../English/Keyed/ProjectHeron_Keys.xml | 29 + 1.4/Languages/French-by-qux.txt | 0 .../French/DefInjected/JobDef/PH_Jobs.xml | 6 + .../Heron_ResearchProjects.xml | 19 + .../ResearchTabDef/Heron_ResearchTab.xml | 6 + .../DefInjected/ThingDef/Heron_Doors.xml | 58 ++ .../ThingDef/Heron_RemoteDoorsAndButtons.xml | 15 + .../WorkGiverDef/PH_WorkGivers.xml | 9 + .../French/Keyed/ProjectHeron_Keys.xml | 23 + .../German/DefInjected/JobDef/PH_Jobs.xml | 7 + .../Heron_ResearchProjects.xml | 20 + .../ResearchTabDef/Heron_ResearchTab.xml | 7 + .../DefInjected/ThingDef/Heron_Doors.xml | 58 ++ .../ThingDef/Heron_RemoteDoorsAndButtons.xml | 15 + .../WorkGiverDef/PH_WorkGivers.xml | 9 + .../German/Keyed/ProjectHeron_Keys.xml | 23 + .../Japanese/DefInjected/JobDef/PH_Jobs.xml | 6 + .../Heron_ResearchProjects.xml | 16 + .../ResearchTabDef/Heron_ResearchTab.xml | 6 + .../DefInjected/ThingDef/Heron_Doors.xml | 59 ++ .../ThingDef/Heron_RemoteDoorsAndButtons.xml | 15 + .../WorkGiverDef/PH_WorkGivers.xml | 8 + .../Japanese/Keyed/ProjectHeron_Keys.xml | 23 + 1.4/Languages/Korean-by-MarinHigh.txt | 0 .../DefInjected/ThingDef/Heron_Doors.xml | 59 ++ 1.4/Languages/Polish-by-sma342.txt | 0 .../DefInjected/ThingDef/Heron_Doors.xml | 59 ++ .../DefInjected/ThingDef/Heron_Doors.xml | 59 ++ .../PortugueseBrazilian-by-Freewayz.txt | 0 .../DefInjected/ThingDef/Heron_Doors.xml | 59 ++ 1.4/Languages/Russian-by-kr33man.txt | 0 .../Heron_ResearchProjects.xml | 17 + .../ResearchTabDef/Heron_ResearchTab.xml | 7 + .../DefInjected/ThingDef/Heron_Doors.xml | 59 ++ 1.4/Languages/Spanish-by-Crusader.txt | 0 .../Spanish/DefInjected/JobDef/PH_Jobs.xml | 6 + .../Heron_ResearchProjects.xml | 19 + .../ResearchTabDef/Heron_ResearchTab.xml | 6 + .../DefInjected/ThingDef/Heron_Doors.xml | 58 ++ .../ThingDef/Heron_RemoteDoorsAndButtons.xml | 15 + .../WorkGiverDef/PH_WorkGivers.xml | 8 + .../Spanish/Keyed/ProjectHeron_Keys.xml | 23 + 1.4/Patches/Autodoor.xml | 5 + 1.4/Patches/DoorMassPatch.xml | 5 + 1.4/Patches/DoorOpenSpeed.xml | 12 + 1.4/Patches/VanillaDoors.xml | 54 ++ About/About.xml | 1 + LoadFolders.xml | 4 + Source/.editorconfig | 75 ++ Source/DebugInspectorPatches.cs | 30 +- Source/ProjectHeron.csproj | 20 +- Source/ProjectHeron.sln | 7 +- 64 files changed, 2482 insertions(+), 18 deletions(-) create mode 100644 1.4/Assemblies/DoorsExpanded.dll create mode 100644 1.4/Defs/JobDefs/PH_Jobs.xml create mode 100644 1.4/Defs/ResearchProjectDefs/Heron_ResearchProjects.xml create mode 100644 1.4/Defs/ResearchProjectDefs/Heron_ResearchTab.xml create mode 100644 1.4/Defs/SoundDef/Heron_Sounds.xml create mode 100644 1.4/Defs/Stats/DoorOpenTime.xml create mode 100644 1.4/Defs/ThingDef_Building/Heron_Base.xml create mode 100644 1.4/Defs/ThingDef_Building/Heron_Doors.xml create mode 100644 1.4/Defs/ThingDef_Building/Heron_RemoteDoorsAndButtons.xml create mode 100644 1.4/Defs/WorkGiverDefs/PH_WorkGivers.xml create mode 100644 1.4/Languages/ChineseSimplified-by-Juijote.txt create mode 100644 1.4/Languages/ChineseSimplified/Keyed/ProjectHeron_Keys.xml create mode 100644 1.4/Languages/English/Keyed/ProjectHeron_Keys.xml create mode 100644 1.4/Languages/French-by-qux.txt create mode 100644 1.4/Languages/French/DefInjected/JobDef/PH_Jobs.xml create mode 100644 1.4/Languages/French/DefInjected/ResearchProjectDef/Heron_ResearchProjects.xml create mode 100644 1.4/Languages/French/DefInjected/ResearchTabDef/Heron_ResearchTab.xml create mode 100644 1.4/Languages/French/DefInjected/ThingDef/Heron_Doors.xml create mode 100644 1.4/Languages/French/DefInjected/ThingDef/Heron_RemoteDoorsAndButtons.xml create mode 100644 1.4/Languages/French/DefInjected/WorkGiverDef/PH_WorkGivers.xml create mode 100644 1.4/Languages/French/Keyed/ProjectHeron_Keys.xml create mode 100644 1.4/Languages/German/DefInjected/JobDef/PH_Jobs.xml create mode 100644 1.4/Languages/German/DefInjected/ResearchProjectDef/Heron_ResearchProjects.xml create mode 100644 1.4/Languages/German/DefInjected/ResearchTabDef/Heron_ResearchTab.xml create mode 100644 1.4/Languages/German/DefInjected/ThingDef/Heron_Doors.xml create mode 100644 1.4/Languages/German/DefInjected/ThingDef/Heron_RemoteDoorsAndButtons.xml create mode 100644 1.4/Languages/German/DefInjected/WorkGiverDef/PH_WorkGivers.xml create mode 100644 1.4/Languages/German/Keyed/ProjectHeron_Keys.xml create mode 100644 1.4/Languages/Japanese/DefInjected/JobDef/PH_Jobs.xml create mode 100644 1.4/Languages/Japanese/DefInjected/ResearchProjectDef/Heron_ResearchProjects.xml create mode 100644 1.4/Languages/Japanese/DefInjected/ResearchTabDef/Heron_ResearchTab.xml create mode 100644 1.4/Languages/Japanese/DefInjected/ThingDef/Heron_Doors.xml create mode 100644 1.4/Languages/Japanese/DefInjected/ThingDef/Heron_RemoteDoorsAndButtons.xml create mode 100644 1.4/Languages/Japanese/DefInjected/WorkGiverDef/PH_WorkGivers.xml create mode 100644 1.4/Languages/Japanese/Keyed/ProjectHeron_Keys.xml create mode 100644 1.4/Languages/Korean-by-MarinHigh.txt create mode 100644 1.4/Languages/Korean/DefInjected/ThingDef/Heron_Doors.xml create mode 100644 1.4/Languages/Polish-by-sma342.txt create mode 100644 1.4/Languages/Polish/DefInjected/ThingDef/Heron_Doors.xml create mode 100644 1.4/Languages/Portuguese/DefInjected/ThingDef/Heron_Doors.xml create mode 100644 1.4/Languages/PortugueseBrazilian-by-Freewayz.txt create mode 100644 1.4/Languages/PortugueseBrazilian/DefInjected/ThingDef/Heron_Doors.xml create mode 100644 1.4/Languages/Russian-by-kr33man.txt create mode 100644 1.4/Languages/Russian/DefInjected/ResearchProjectDef/Heron_ResearchProjects.xml create mode 100644 1.4/Languages/Russian/DefInjected/ResearchTabDef/Heron_ResearchTab.xml create mode 100644 1.4/Languages/Russian/DefInjected/ThingDef/Heron_Doors.xml create mode 100644 1.4/Languages/Spanish-by-Crusader.txt create mode 100644 1.4/Languages/Spanish/DefInjected/JobDef/PH_Jobs.xml create mode 100644 1.4/Languages/Spanish/DefInjected/ResearchProjectDef/Heron_ResearchProjects.xml create mode 100644 1.4/Languages/Spanish/DefInjected/ResearchTabDef/Heron_ResearchTab.xml create mode 100644 1.4/Languages/Spanish/DefInjected/ThingDef/Heron_Doors.xml create mode 100644 1.4/Languages/Spanish/DefInjected/ThingDef/Heron_RemoteDoorsAndButtons.xml create mode 100644 1.4/Languages/Spanish/DefInjected/WorkGiverDef/PH_WorkGivers.xml create mode 100644 1.4/Languages/Spanish/Keyed/ProjectHeron_Keys.xml create mode 100644 1.4/Patches/Autodoor.xml create mode 100644 1.4/Patches/DoorMassPatch.xml create mode 100644 1.4/Patches/DoorOpenSpeed.xml create mode 100644 1.4/Patches/VanillaDoors.xml diff --git a/1.4/Assemblies/DoorsExpanded.dll b/1.4/Assemblies/DoorsExpanded.dll new file mode 100644 index 0000000000000000000000000000000000000000..cf75f3f73c07c80591d5be4d555f0bc4f1b6fd3f GIT binary patch literal 116224 zcmb?^2YejG_5a-7-Cj|#PLl5=xyeQH`ifjJmJM<@#u%^-xYD}~_L`Lqg!3IT0f&H1 zAk+|&&_hc?3%w+S7(##uLI?zK3;}-NA0eS60e&F<-|w5X*h zc~f_9|CJXizfvlIe_wv7)O~pJZ-#_l9drR)J?w#Mb$8^M;rIC#J~RB_6IXXOuXpSd zoTJt@A9K{Yb@qnlqmOHLHm+-4y{>uAfd@6OwU0fnt*R?<;wl?s=D!${9BNw;k{?(_{vzxuG-F1FR>+e1T< zBio!#=NM!NZ)`gi^(#C}{$@a3ZO(Bg+dw3*LWr~;-wkh;fJ=h=C|CTEH$w&0;76g4 zp*~e!Qc%88up>|%uq>sb^*tt7FgwQ}ZYL3>LkTN|XVL-f^;Q~DD}$i3jhS`h47C6? z02VW{W04g#(?iWHtRPwuN{2()@rY%@rab}AbRbcgGUAotw2??^^z20BJMAECPa*~Y z@#Ij$+5-txKWJP)9WHHDvChfJiw1)J?4F2NQxMoF7_CTEhwQ0{RGMLX8lE8=mJ`kF z+7S(<&5%6+iC4|)Kpsp6Mu6CKYcFKg`g;b}p@xXHH&Up}hf;=WR813AltS~k$fHcx z^s+#y&JGmnBE{qc-I9$UW`K;U1JC>73A2PupxHo6W_qikv8+oV-ImPgR%bTa+>MG1 zYdT1^WCE@Ash~Xracd@m&RGb~Xo==Xz=TM$6|C%VO)(2S1RC2yMi#9LBol;74D}9z zPUhhWlSBQ?^-uIA4S$YNO~yv$(P*lwR#|fp^V|D_DkwNT-cBOo)}o$Jgt~Fnb*8136O{Xh1Ao zma`9tRn+&; zgAt^Mx~c3TNR^ny2SLg*;{M&?Z!5D4vW3p<1_(4NwOit?j68oKHbv^trHA zm`nivBV^huK&8}P%HUBAr%}a|ZQ6{6)%O_50}N{=3K~{DG@r1b4>P&Mup6}Al6lf9>j)_-z5$&~MbO>>$~qFc*2Q2CzOo{uJM}~uHi}Q0l|Kql z`)CA4fMY~-Rn(sjvx2UUl~L0=7Fo%uhCd(;wT@%5Zd_P(pzlOMzw>xJqa-!6!gOF& z+Iu^j89M>6KnTF~vsNV%_K8SJp7?fqHIl8R{L%8#RxIeUIMj5$gQAUF(fm++Mob1}o&lL3s_YZ2B3Oy?RDaBf8aYuk1; zinPRsMSqmA*8y(X3}zy5Yj*AhB4sl@vdUUt4)kY|rt=)By@f!=Fkyk{Gc@ukMM}C2 z^Nj9600E{{TLQItA!fr9$`bKIvY>^8THP; z*rb_0cv3yW=mA1I5W_kRCH)-XOzU)#g0*}L&p@Wi@R!i-j~BzRAqCSKi@@+x81QT` zYBL=+hOM(EB9dYX%rePcWPcpIQ%wAgh3V1}fZo9pp8@u(Dp<+Ju-h z9caRQXAa4zgsl=*bmoy$SwbS-@hs%kc_y-}O0p9x>H<@414QS+KXw75E*OU^4rZFe zj!jl#0pY+BJ#Pj=qRyQ12S^ak`z$2WO<@Ofs`as;wo4D?HjN^qPz}m}ru}W;PeHF` z*~P3YG{A_3Ea)VfNr#<143de3wqk_z1-1^O6|u3lOEVUX+vgyiIw%qg*;`m@-&n{m z(=W>pE2s;HogbAF5w4w}A9TakxhUX75VyYD2T_bZwFN<(2ZSl-Yer#0W@bp($&gCW zC<+1zdp>|ExM-VLMjM2-xi?xFQDA~B43l9S+Wfkpmt_~*%<70}Z$*H<428u4@x2!I zeEB6TfsQA>S|&& z>4mWx=^}N2#A4R>fR&yScJ>XRsWq{fsKC$$cOCLvozQJ*4?@MnYS1+Sx9()9tR7%h0rztNPM%%qtv-)q#~-J+@a>sC_UQ~{AXO+aq6Oc;h0LZGFUsW4=W$`QrbgpL<*#sM)N z=g6KiHq|g^YH3c4ISX}8L~x*jfO9%?*o#v6+fix5#6jNVK(C`JF)%04$8s2R17Ngl zZ71DRuk9?lR#%l&f9cwep#NrVM;pYIhhO^sWR8MZJIw*msuH@-DPhwt{pg zG;Ga6;JG@3lngag4QkhVV!avk74#8r-RDah)?KVr+`DI>x}AA=>C(=yxY!v8v7nn2 z*yDs_VwKU{4fR>SL;^FHkSUWX!vY6bfMTi^z*1V9k~@#zPtV=sZZJ!~qsNPv#cAK(s1Aa30UsJjf%iX2;@w_NDOE5Rd&z^c^jTEBFG zkRJMEbvde!)n(L(nViF#iOSxK!skF@8Hi=>h6em){l#4>PYcV;Er*FaCY_RrmPtxu zj2q)F-G>|2Bvg`VG!g<&)fiR-GK%Hruq8eK#;{{|Yf#wfgN}6IZ~G zc`^Gph}n-bIZ1nd*%HkD7CD&_{_J*wpCGu-a8pk*i|Wa6XGi=Fw{iU0-vLk+Nn>I7 z6br~+(D{h@t=}U|E_Hish1*=c!biKfclb9?##wmLKpOrekz=e(*u`zI<*441^{yT9 zUQR47MPK!#33Fh-NxClDzg%~tgpK}>RniOzxeUa5NN=FPCq%PPBWTGOt!U$7M78AO zozEa{J4Xbato#)i~sFI7A*Oy>nqSj;3G|;8Q;DAWhU^Pv<4H1MPDU=RGG}4_sR_ZsxmNY z?FWXa#)1rDYN9KH*20RFF|9l9mz;`D3@3oT`bSiQzBa7VdI7QApAcw0?7pUU2Qu_w zvjQW>=|mMjhi$Vd--VNf4+n=G6kzMu>njwp}SSeewk4{{Is!Xg>23>Oka;J zLN|W`^4m89xwJ|%6t4}{hPf?n#zHYTUzl(pOI*!isNVhyXvZzskXHi+hd_F2IhjOX zWQf=o8S7OL6F(GHcY`BzrkGzgm?);iin#%@iGOIjf@6?)YOLX}4paxLVVkwSS_1=K zJGf3|41cg!{#51<+zovivV&pkHB?Uhgd)}sMuU(n4nayAS{+J{s18*JbLXK2)uC_> zUI))eZmT?FfgF~m96L-k6*hz(0A2qT#IidPMCF_!P~p!)Z2|u#uo5nc+5E*Ys47N}N%Jin4H9(csF+O6I6=_Dwh0`4%FZQO4IIC?N@@bZ~|BHh?;3 zl_>xas0&Epkc8!kBnm`6h#0Jf(FsN@Sga?I{~y4ucMzlpKo+6wyNDi_V^|%?M5}}O zU5GADB?S1t0%QoldjwRQXzkw-+YD>+0m(c?M^0fgtoI3FOza@2u7@1!A;$rJ5fR8_ zW><&F)}siNlAy?*nH~h_#EEzDcm~jCp58jW2(30<=4NUVE)p?|NCgsZ1-p@uW|--= z>JXUv2l%C#iO%kROmueltd+~He*$2Az}B#NscOM4wmV!M((MlSYPaz1=P4PCZ{>2s z{tz^>A0aqtWkq$kTH}YTk4c(>GSf3reN{03FXV_~GO_AlIvvda+sjA~llCe#Y=Ahj zK$f0th4mkVu2U;mX(guxeVSoJo1qwC*K}=!k(EWk!R~_!%~qHbVc$jc1(Rs07IW@X zT?K0ysge3r$bV}&B@ztw5@3`@DFQc(0xapG6@9n8vKrG+cEK<^VApird&1>yH`U9q zRZQGGTdk#WmYS)>-s&~kpQRg2H(WY$uG95YSr ztxZ2qivx8bSD3R(iR>W)L-3v160<%<^%Vuma1H4hV8wMy{_Gw?DTeXRC0>m|Cxq=^ zjs~02AL){0j=UUC%o*X^KLaQ;LHE(9DZMl?F=A%_5BZ6<0ebMN2sO0@LWzk{9;ts0 zNR8jmK{}ABFBN4-WL)D9COd}pbS}Z-wZ+I?3bf?W{_GbhX7?b#+_DDaRSrHekX+*~ zqutrMU>Ww8Kuca*x*^g0!AoC$DeD@eb0G-lFn|UO3y1Vk9@v6lAUO+*KSnTH&Pm2l z!>&M01V{t`naH7p<#S6mvE&HMdnFRB=g~K#wm}3h;b&rUeh>hL9YA8AdXqEfaVf2 zJLd}7Z^7&)Wtg&mEKM=fGc-zOiax*?Y&bs$reWG)6xZAD`-RvcdzZ|t=_kq<)EB$(JgnapBe-PRLUlah=Teul9kL*t|({WQyA~GT8C{&fI zbT;x4biRv6g>x}NOf*jcvTR2hdS5T8Yc*w|)>Z|M$wa+u#~?9)##2dNOuL%#D&ead zA&w3;fA#>RT9cE#By8U-rfP@^om(*-v1$d|Og33n5TiS8?+1DF&lMxuR}VDj3otF4 zv0zg&5)rgQY(|H61eF=~Kp+>-XLJeJU7S@u;LJrK3*4u=Xj9H1h2&r+*D{HArn;yX z8u(B?pVv=+TT(}0wak}!GgfD?8O*A6j;zHtv(+d(jD>Nknq$PU+L(=`1)D)JNuH&# zFtg{Os|nMiC`>G>b%w}9pKGIc0P6@q^||)x#Eaul+Bym`UQUSOsh6zt4C{C#NDl2J zIr<-;8VR`y9bp%AYD_yvM69~t7o-4eiUn>lxOZe4o7gbt97rZk|A8Gzw#K=b8G4UW zXq)Of&_-q8kyW=}L=}3=pgbxLh`Y8LpokHwYx`^?dk@U3d76Rku9H?Sho}A3^p#el zfH6`sLrq^7fxF(LZ;rTwam?HVB2RCSXYplpli7v~Ynb zY7Jws1GR+X3A-5y!`hRr6JJdFWikcl!=)@kYlNVWL?~YMaP3vELY2w)4GR+$Go5zs zf)osKS=J~PYGHt>6)I{)G(Q?a!ot}sR^iqdp-t^+jkPrtb^&CU46AwXI23%E z>R|8*>x^}d0hyNk72rV59WF~*Xm+xr`Q(ry5%fRUug;JN_OdASbX>19^?t}iP_ieHoMF9) z`oxy?y`nH}Iok>v;JECb2>X&>or|`?O}OXOhiE?XKLNg|=f{Zjn5(ItJwU&uix7J< zqM)@W9`W(R4W}Iq)@M$poYRTFaxO)#dsf57<*zO$x~52!5PJ%!wPNsd59FZ`AJmj1 z>(U;-+%*`=_EM`sMly z5C2WSjpb@Id8&)yx2KU8jTnMe5eGbQj}iu^;5xv=8B_zISw!-4@ne(*RXe^aAhly2Zyy^!Vf7?#N+EfZFE?C5+hm z%A%&U5?aFP2WPJkRiMS6`xzcujsf)rjJg^2<2SM?WM?Y7177h|wA=LJxqU#onDl3v zw&x>APj`L`VTp1p{n>qy71no@CP7e{;r&fvp6pB8j$8q-n+nv?tyv4Oo~hP_QmRnIfX0_la;ajom3Xfn(li=73rxNlL0J zsdWX%#2KqfXu5dhzy(@l1b1LMaYz=;wS$UZTq!p2n?hMEKCu6V3tkayE*`|naJA1& z`FVo|Q{((p;Ah&bg8|9^6mfBtHzI=3iC*mx09v{Tv6mv+Mf{MI%8|6p9+xqq=QG$R zQ^V;~HrB%^ad*zBPnvQsws^M=ZGsBXjO+nU)9KwC1Etr|~AR%kCU+Hl^2&0=jR z#eRSe9OC5#Q{PjGRl1{zKa?YaHhoQfrb~_HU0I;E2TFh%GlfpLPikSeQ|Q)_JtMmp z!u0We*?OvS){>5ZBeKGkd3i+ExO$3C4^Y}P(PrQ2ui&dkbM=?r)>79Z;Y>rQB+EVySoZMat80KSG;if)H|L0R~S1)u{*R8@xC%hg)*TLt)WA5n$XgJ{b2T zRx=u|4cA6$qZTF;(O3lC6L-(FB1V*OaVsjqHomFXt%YiFznC2gcg`@XMq5GiWIQw1 zVJHsv#NjZ@s$L6N(mhY9PDYqliV}6@HWj#u_bP-~of@no3KH)GEy*+WI}8Q$k-c8EKh7(1@F=l&vzoHJ62H9pCO$3dTRr6JK+JM*CKI0RK>Y(K-TB2 z!W$L~scx*Dv}P>~aZ#T7rlPvRt!5rWcPZQFkdto#t)+_)UfW1TTUzp%76JSV&2Q-`!o4CcI)M)UN-w!47FuOpTlV8Zvd7wm7vtUDKB8E%t zRu`U?cy7kCN(!W_^H{$GaEbdYs&-E3>;?iYs-JH zukzn5l;<4nYRCq2E}Yw)hy3xgv$3R~Yppzn0IjWz5Gk*dUT`bBse_V*Dw$AhRT zC9E~@3UY+u0U?o z=>WEw{a@IOSdS?uYub=bK_)k_egMS$l?bdKB1ktI*{kr}up9Z|vLb03?cNy?a$-yibEGV{j13%J$%6i`jsZ{5UrqTaq4 z&kDo&Hwj9m!ko*k%#1?zEx@V5x$mubmatL!wwL?v%l&G~2l`zu&J*TWD1`wwX5EH@ z(flm%n4WGp9W|JFtVU~E4QC$WeiJ_QXF$P5?9oW4YMf*72o?KyNu~MOq_Rgj6$j{M z_U9nsw|{|fw|BdAb@@3c+deBwofMhqr8Qi(nQb^XfnvCnjDw+Ry-bTd*54pX+`1k0 zQ8;(tS;D88y;In^3!!~C0^FJZc?7};*uP{7v;U14ljZfL_DTQ@r!|II1YT9^^qi^+A*xes6#9BQ^ZK{@`62et&=P>oxp={@^ca_=EkyKi2Sv0I!SS;`wey z-BgP;`TGPl>IPJ`xVC$Vjn2j_9H;to!%B=pdW!=KNvqJ#*(kXcmWt-=Mh+| z^=N-B3)B%w?uFRDV)LT4(VqB`bQ&{Qu(aon5?t%o{n47Q;g69_MQugzJ{NAs?20Z0 zXl3?UR>@UDBy9htzgnJm5gzXk;d2+Eray#H^I_}X3)|34q>=XoXTVd;W{b3CrNKRa=r~1P>RItL<@B2oGnKG%V3&le1 zHJILDQoj#|sJbe{`94cl^=qiN3t0B}>ju;gkcodEhVitZ$+e@FOjT=bjec1+R+EZm z&x46}J`Kj|YLFktVtCN*mKBYYjUs_q&p<4d2gPC_a6Snyt&ejN6l zKOUYH_&4)r9|~^&-mIyS+*|v zeZj@(*MWuy377pl(8+@Ebq@5@QmlR)XpA>V{y+~Cj)mJF7iB)ca$&n0xz4W;cb-I` z_ncm0a)*~J85X8|7ez5Q3ehfV@uJlx!+8UEvD$v^0q1@I+owUF#nT~g*3_(lr}wRF z!unYz@vNI(6Q^@sd?#EP&U(0{XSD{9N?X^vR_YNy9lF#B{~7XJJ1_dDNvc zwRP6>jMf{@)j+`;SARqjj~DRR`X<*DT!HAKK>ic5Gf!cApspv5Ju>gaX67Ua1>y<8 zK!1%XV46vLsY?VkSw*CTKnexkP74kM=6gz54 zUM9rm0H?i}WrxFhn;;yLdm-rwA?p>ClrKzFrD`Jbg^3YY{@@24)~m>m=(q3Q*%6JT z&4^Y4XkG+%WJe8~d1#j>Dt904KsERzy&f@es&-VD7E2vo9m4($-zkrEWBbKj{GW=J zx*G#s7~2EI#h!B>K-O#EqKg|zC4id>fPD#ovA7$P+Y5jN0K{cir*j7=biY@q@Z(~I z(H660FK6)30w?xgSq7_qm&r4Vpo*4INtwrr04dY8kPPh!k;v9Y_mu?_9mCZ6hHY$j zOT2rCmyKmR+1J%vtM}`yov3^RX>{#RYSf(GC^;51tk)?JPT1u=E2{}+)dhFvCNaRI zx;U0Omk?Q?oQ*qo7m}QMC%INPCGPNwsbD-!A1mg1swawThh-?*9y3gWyw1xg+X4#BL zj}O$FXV&9oM)~**{P%|-maY(-NRCKh?OLwcQ6Jv8H%wfP=CI|Zos4OJgaR;AcTaX7 zb<8ciGOg4sX9QR%R!bc2X`@EIXNvclWH*c70FaF-H*MnHyzFnaq5$zn?T#O`hC-TN z0bYQ1OAtQ~eEtP84Mz53Fz1)h8ipb^Ha?@NkvboTjs&;#g#L|3=YJ4b%^p&ar9VNI zUqTCVOxd3z&C<-rcYpXm>Cf=!{67R1nx>JA zl4!}7c-R=HqPdg6x)I2oj0gIrpL=wC-2n1}L;p2Ymp06#(*fD~cN_FOeV}m02!Fk0 zAfnGN*HRex^XuyU0BD9*xH*AB&OUBVu#mHdn}e?~xur(BIiW%h-ja}pg}ofPDkgi3 zpX#c2ue;VQQ>Z&V2;lYt%fupBJaE@Z$6mZamcd zCCZJf&C?5np5OW(_WX_T0ZFMebmG=e3OTenLt#4ACy(p_y?FF!)3VEH6S)uC{k5M) z*Nb+4?Wcix?WFm5aoUF$rvdbCKdrc&M^@Sgj~Io-kN7vz!K4%Z8~DU*hI+y9z=wQ> zYL?Ezok=%q9zLJMXfbC=?;KwH#axD11)G_HnM1OTug01D1_dWCb>kumb1{XvS*#l! z)SdI5jZW>Z59*!UCDDAL53f(v5TeZ0>Z#CA)(m@#B=BYE_Qv686ILI<2@!0pUloC#H~RH=vN1U=i{oB z+Jii|cs$#K0ge{a&Szj-=Iu`H2)3raxf!!!w7~mh65q`*OA5>fnl9jcvjPtk3cUEu z3e=4BYM6@HH(=?kLV+v3S%Ieu1$KS20gVYOR<(o693v- zPAw^N?l&uPUrCYYzgdxJYmu=wiGM9)>r0AU_RWg?OBHIVuXp~!LSA?3&luyQON%r! z)pwEq^E!aDsI17*{TI2SP~^uzN_gvI`2MmbFm~p8SSIOy?b7 z+C$K_ol#b)M81NvFACMnL6JtUd00=m%`02}w={GwC_waHz*jfC$HR7x1o>{+(wYv> zT5tUo{={xZv??_+Vh>|py>lwr?o)N{HqW0*w|Tm6D^S0)tiAn{>BhM0y6uWV9FW_vEr6yE@TZu%x*?d7f2m~@8S$+6z8_~2t@J^!b8gyjRz3vF>!6h>>LR| zOBW&5NK6;f!(u@+w*M+Yv;{>n*Y23fkL_R%>+WB5`|xF1z05?Mvd{vRx3$=_$6>6z> zIwa9|^A9Z)Iipy_c}n8_FgCbQq$6FZ#W`N${S@&Rg#1*o2z2~!rut^=?LsZ-Oo?MD z_Pl~}7Xsc7k#FvuuIQi0-wK@UB$BJU4<+7Ddy7)-Xmf{Yv~~&N{Vz#QB`j%;+poY_d<8=?`dP($MP_Ce& zIHMqfk~xxdi4^arNYNU07He_d|EeOD1;&zlmNK>!Dd!dheKS{BTR0`NG3PTO(U0A| zP-qW6s8S;Eg-AI!BIvuOsse*=7K=GG?Ih7pO~oPy3!2Qpu>`~3=91vicL%v;fcWdtiS-qd&-LUKX5vq71mhDa_?`;B zl@R88m!^DOrH~4i!Q4B;c*TfsZFFNgst=e9*KYj*>?U`%ViuA7K3)uZ39RA8Ak2UH zVh|>MftElHbD=;>Fo!vX-Us3SG}hUL_d(L};xUR@JOYu8JFaE>z%N+AH^dKmeD990 z-`m9*2lycx-%l};rd+Sldt|J?6rPUzHJH1@iBwSD*k9s(W6Ll6_KP0}ehflC_`ksC zg^~Y;K6>MSg&+Sf@e`%|8>+dteCj>%;G<8b{8q9s7kopPag9Fl7Cr&`H&lAW!fzIY$8|PhcZ1}r3rcc4lrqXYZ zMpvy0;e81?8^Wz^M4P-TCVM*8Cv0aK?4@!TUkSz0AAL$a-A5VjJH&kr z+-N#{G4XYci?Nda2SbcL-wmlpAt(4i?;RBPLVdiVg_nOn0~?iIqzaePAEw9RXJa2g zq{qC-6JkpjA^P%p0BsZ*%Av{)ln1{lg|7n++U-KRTpZ7zg0h|zabvd|wNiMvQ5h|T zHRaQgSu9v0Vppi}`aFN*ejC&h^9L5-PCR^V$({IUz)UPZ*zn_Cyf9}!LJ_Ytv@%;f zYqRj(&1e$a&2IqAZArX1$7m)j-(fP-!9ZL*PKS|+`o%BS_xRC=mue@8Z$ipvEK@{8)dn_Pg_azeID+bV<*Aeill-5on z51)eFPqON%PQL|kaiKwjrxnI+7o{;jUP`h0-L)9v9`GozQ+Psr0gODZ_@LvcItMzQ zTC`WQ!F^LB4?`{$#l>E;TDk~fxBXQ)#wA4zLavp!HE{IZPk2HI4jAOK_}Vnsyrs@CQ=p6DI+_7vcK5 zk?5fMLMt$b2CPC7J0AnIf7kb0VNG#-8pfUgd2#|`*b@>M_h5K*v(9Yn+eg!R z6lZ0!kaTBep1I=vjpsq(+B#Me3%RaD;uox5p8rjGtMCGg*D6AEtHSt1AYNwcF>mmo zIzQquRebfP)-1esgU{kei&uIyJ7gjpi^Re!gcF(g#$M8oi_rot>iO{bmT2=TzL7I%E76x~qnSr9e5Pb;{n!sba1 z$Ns&1uDmk#Q%~4Mdk^=RI1ef{)&T548@Ie`hP_C*OnC{*%)(uw7d5n+u#%fRVl8#y z909n5>7d1YyL@2Vl!E$-PIfP}&s85S#7q>dgWv0dap3LrE6V(4E9zk1=Qk_pTV_zl zp6{{poor^p-Wzn&O}P0p1})h!Kxfzb><;9&zRJ0se$TN%MTYb9z5K>|_kNy-a26It zTGGe3Q{nb8{iY-DAudAMnc%^1UoR$xZ}s@?>8K{j*V$(vV$VcSnW{rynT1%D5fM22 zVFj{gBP;VJu3X|f>I=buzWd|-rcbkKp5fgc46DDQu35B!o3#zlMD%9u!C+WsR=MXO zfKm%Mxd4GP@GKyX(bXGR%&)pq}D&)tPFzFZ|?@I+RuL)R-ke@`y$9%=r>h(pfmMD~) zY_39e$A=s__kcg<{U3Zv@DjKg5Fdk&_B03aLGi!{fK&)y2CkQH`I=eOf$sv!S1cOv z(H@{+|HNKQ4nQla(2w|AZn4fg&~Etm`T|dd{p{RdK%-=dcc&+z!h~5*Y-N>~$HcpI zdV_mpuAOudqOFOulU|b+cS7t9@DY0nSmf-oS9gA>C@F8kA(P*-<%|1TEXS`kXdf;& zJ|8S$>Ep)q+nt2jPdr0MPY33kYiqsK6M9K`mxBOn5QB0g5p5 z8>x8D3&+PxQ4hLGn?HXl3R%mL%vAaF(6dgY>w~7f zoE)w|AiIM2j1xbR2l{@s8cz(=;2|&iOdr;H7Z}A@i(hNOKv1811(d>}9`kNmJQ$1G zs{m;YWeG^Ph3!L;%(R;Nvx@%25~l`yX>jp94(l*rvEEaQdzARO91I2Nh~K#tB{Wxj z=N}Vw1+{p43>f&!mglkoGv!A>!ekl?u>5u~QnK>Ed*5EyBt*IF3drfvq3qFk=8r*O9g83{Ftn+V1H-&} zrga>$O?}DwsvT$pIuRy&(N|$idj40TPVCh0Y0yVur%C>t*C4vi<59S49U9YZ6()v* z_AWU|Ex2g+t%dFbJv{pal-fU>Ktu2TrQ+v`5gT!3^L zt{FN{Bww9GK?icjt!2g1aceaZ=v(A%<}Uh|qGatggtF@u?b<$xdF+8jJO?+@^^~#; zE)JiO<&WgKpD#HX=-3;u*5bJ#glv2tCc6#^BWokft}jFr1MB_PDM-rh!H3#Fnz%cM ztq_O#?9+{qI)sJ(lLCfIq!Z9u#a~U6`9AUB*ErvH@%URCQk`J>1TzB-e_Kj;zc&eg z1YdztgRs9JGCDV~Qg=Ts3wlcc584}%8}(QC1NbiYsfb&rA*f7^a*YQc{tt&%*r&5B zepAN&79#c;2;8qyy`=Hd<2tj*Y;h4bAzqcLjFco@dhZ$7v&sRC4K(4%u=7lH7;#;{ z-$MUO;b$uGofGooUlGtb@PR@3cFjTLJ5%AD2{m<|36wK}7a;i)CVfl>f)}h_fuC9( zm}D%mVnvO?Nk{xjy9?lGYDS_0ztKA=7{1al!^`c>$h6NwkO^QC6NRU$45QqHzlJhR z{>1VcAAT37oPs%U;zMS#!;hCSrb2B2zBzzj;q=l*_S>MwcLQAg8R`d+_rc&BHzkim zH*~)WCNFQ9_SwKrZ!)cB6v$NT()mp=J!}P`z&T_Mt9cT2v$^G1lEL3C0pb?cIvhm! z0gLaD=x9XFMWiBBpqtZl-O}($ti`=AuJ6K5q}}M+h)m)o*!=0v(z;-&Qdg$dZQBNM z4s1&jAl5ED053F{*qjI><4&mYD8t5?9BqHLal~;f*Bj*SWR94fzTmj}fO#^Q|M-rVEqJ|u{ zPXm!GLm}+U21)sNhrHfdhY>P262Sa-(O4|{dhoj$7+fzRbKgf$7aY9pV%8UT_CZPT zz^?*1`$@bJ{4_a>B|az?yw* zdR9EtFN#UxIS+D5PVlEgZZw`e-g_x0_kENxtQ$cscL|HjJDnI|^zSld367e>zG%a# z#>A-FfiEQ=f~qiZ>v21Vmvs5_#&GNKhgbuvWzt_+uENM(ibtisOHZT)`1dLPod&#k z^tH3_Fa~NC!u;U4$=`5|<}O1iW7ro0NR2VFOxrO)uw|2j)nH>uV2S8!(@DZbbrEZT zn0ZR`Y19j`uzV+6KH@RMV2RG3qQNcBT9{bz?XBERl6g&e=FQB^-$DW1D$&~*{TZX! zpqmAzJAclcU${B5nbX9a+ZhPE4IaA}qVaBv^LGH8KFwq0HPq@d@WFq>0JckdF@S~e zZVWWK4D6_NYmY~%%7ds%j0!UcL#SYlf7sTPf1*^R*LfNeHKd_bQO5w<6h0oz_9dG- z??hwH@RG9r*b`-!7i?iz&qTazMhg>Ln^ z52a~e&T2fG$|wG%J&c-gxpfV-3R|*+n9P$(=20z`5VNp zZNq1YZ4)qMB$2Yr(&io6h!vHOn=0+^gB*@fvJfN%WKnZpg*6iAUc`?`g_MB1HDYX4>MxlbyckX6$8_H}BJAd*4_Dnn$ zbiP$aPFM@;kEj#+gWaJ=RqvhzHd<0Ec=69ui`6}2K|CRP-u}HBw_GPg>uP@VH zO8T-S3w?QIp%3W3%amYnqJ`stV?~ z$)43aqu9BxK|yz{x{fq@ja3Bq8mrb(EPaht0W}v!wMyE=au5ZM4cM>!&^YCVeFPN) z4*K$7JkXbkhrWD1^r^?G8<>F}ML;TLWSN$ZjGq^S5noGiLZIk=e+E4d*+r#7Gf(1+ z_uvxRWO27+a>ppFH|OB~dVk*Cwf0poy{|yhrg#>J7OWpLpk9N;c?IL-XjK))h4gcf zl@4QL!*e6jjs~|KGJ>$d+U`!KfOoUIy&y3DE44e8(e0+)iKslgV+AF4C&_}{9a_+l zwmWLRXm>(Y?CvCRLc60Ha}31puw6sD+lWWkjjYDAyOsQPQoW2W`Sx|mNOBXfU1Ph2 z1v!q)f)0bi523KN&sWT48!PY+&6W2>2f9zDnV(cUuueXMa+2v&mNAS=`gil%lrc_= z$-wOxW2%nxw*zt5!Lt{veOMPnb}JqwW)a_app+t>Wm9wkq7?SLJR) zAq$f+({6;Z<$jJNjgVl@teCbN0O8E)W&#regT2C|h`kCWjVShtnH3uYdlh233i<4S zeJ@?=FQkgkbrt&=o0zul1BAm`xUC(N;3z1k#~IG~FyL+`WS>lyF`9`6kBPsafyOXR z%q4X{NM&xq&)Sm-q24nP{dkba2pZGamNuOG**hAy4u_=W+bWuJqer=mlwCQAl(K(A zM@zJgF`R#}WMb?4*sb5Z0Gab& zX}>ATpZ!J@CjI7kj}0w@IAtK4YMhl(l_fn&l4vmZg)u)>hZpQh_bD29u}?{j(x)&_ zmp(<)lW)zVfBlScnw9jgGl7Brg_*qBbvrT({cE1T_>mOr0q6`1ko-QtupV?13z&F_ ziIx8R!*~|2D(K5mll}4~-?;S%k-Uz}b=w%UVZ5~A9uUDt1MJ_?X(h12e-@GMQPcqr zh48yQ&<^$!CgW@P_ZBKYKz>sN-yP51hdg^biU`L21&p@N3)rFukWr|3rQd#(T-KEn zM?%r8&5> z|G9a;E#wXLTbQeu1&CFEc(~gOIUX*=e|n*Po-iqwCw9w)o%nfHBYy^e4K~1^0n-No z>6*Na44rL1fqI-{VEKl;yQ*{bSFp|5m@ds^vF}j{rByyvsB!@q_&ri`Ny~Z?)C!0T zwAc*(d~3k|9YK=~xvb;2pA?mqrAq0;2wXd31OHG+mEt^C$R*D6g_MUg6}j-QfrK_c zBE48Z>ILkT^hmG_JebRhm;0FfHd$0&0-iYBkkb(Uy!lgTp`4lMEWiDGWF%m`#R<@> zAm)xqI}nvIX$Z8W$0R}vYnw)QZF3*&n8QsUYa3J6Ek{T{Vp+WO4npF5PQeqMUcHHb z9N93ijKKpgM_7;_^b6QSq1@c-0M5fd*b+tx+LF|6WZwdw zwx$0;jG8APwc5xs?HZExf9Ue*X-4nkZyw5*Y4vZUkq{DzCL>eKSQjfy1r$<&-qDM&<^mvr$k)^dB zDgUA#g{tWB5mZh+z72Seq7ps+7P%#QdhTFYAOfk~;D@zcJ^mdr3YUOX4nMZT3{hn6eS)$KwMN@_(+x`o&)PBffM63DV8i$YEKN(L*^*Fn6`N$HK z{{x)6^9)@&2Zqcd=tW9uO41>3O5qo;3xq51^V_UnW|5f;cFqkH#4n|VbTtjVtC5mI z=>FX-jqkXXS(`S+f99#_zrwhijE zXd9v@u?=1)p>2Ewc#iUxzW-vmZTtuMu5EmZ=WL|vWF1JKe%h?T-lX(cv*u@#RE z75k5Xzu(rf<;X)@g8yBpeelmSgy|6h2L%1qwqT8e= zzp6PmX4B&CmHEv-%{*uU|4b?DpaM9z64I#M=?JMe#9*7vbBmpT0Qe%c5h~orh8I~&4 z+D&`d>ZbNc0h6qQJZhlDvN-`ac;HC|aD7f!AQiHEXEqxa+X;;_PxsbcY&d$WH@|xR z`QrRa8Y2v|e+nJ1f3ngN?MkvRhOREiO6!(-DC$3OLp}iY`&6SVRjYc%+Gu3FhwZ%u5%%mlcgRaz<2qP zLEkk6|1iPOLX*Oqh5|$G4B_hWn6SMQO~ZBMVMb_R=j&|dU{;aH5m`jWNGgrrU1qsA zfPtSU9AZRDu^Y;?)uVPo9xpEl> zc#cenT+ll1hx+m8YDQ*ZHw(8rYB3ckq+!QF`7P*mtS=##WjY}e{3edvs)^fwL!0b3 z5wys-9+lr8f=C)erQbw#?!xeB%2X(thrDr*c{u8o*%uk;F$27}@)qfI5t1KK4h|Ch zwtxw-{|C`Z=U!3`>nlX3fU5%E^YF{5K*P0t`wVWv$$j8i2Q8R|i%3wYlJAk9I;m}3 z+r)7b$G0;lNE=WWVo)8KSL$;-XRJW{pbgIIbtiNZW3OK-)jbD!ha99TF^0mCsFC{| zvM;jKV5G;5LVDK8HvFUf!GwIvhFx0`sYdcM-$WHh2BLc)U>R_zB0zco&sj*LO=5D- zAP#x+ck1PQ?_fN^jyekefT~RV8}2^Q1@U*@80HhQU-Po*ruvnHt-~3=aM;Zqb?Un5 zga(^~EvBj({zAr7*EBOcT*9n`J0-k+*bAAcx^v=wL!)Z&fef!5!EjC`!y~E~zA%pA zOQRV6N1!b;RJ>YUH}&sLrutiWTaBrnlJJypXELfz5zI9cFgmCk8yJ2zcE6!VsDJMb zrK#WSv)|A&-T0NuNb|@8iSwtJQB>|K3!sj;&(&R+{1eMTzrHbibjd3J>l~ zn(9x(mQ9bUbJ03e9gDcBCN|&PVXC+GA@uer!yC{dQ%!4R7})D?vrY9$1H+GobtdC# z*{s%@kni3o+jUO^Yu`&`^+7xNT;57fl*M{m<}$|-=xGveY$X2gL_Qx$&a@fi9_XVaP4yUZOf`NSH9JJYy(`J*P_!bh>e^a?za`1C zhYTT(uj7sRQT0me*a1;>lSqE#d_qGh)_C|#*0nm$aO7xm{_H;F{1)UuVq@NzA6J)- zZbgl6h+g)Q8s`mSjpvD!&YeJK9l-c)Qy8wQ89Sg!osnn(hucOm=MPiJ&#^+`z!A*ZAU1h*JKHsN z%-8{@`m~uX`aNs|b~S`FuS6?G8rP5JZxFN$pxr(w+TRH+K%4QKJEH0!vHxia(y5mo z@!WEj{d5{}o@yb@!H^7k#3JS_7OS|sO{6!F`N0*eF*TJG#)%|fn?Ol^IFgdwPq@7w zayHe336$I7IV`(esI^BraT|0<;*hFmn!FPCoZsurKUk&2sjm%cP}oDRsQaZOQ<) z;s+wz(c|_4{?c}acM8qDr;^T~#cbWx9c*1YEDfy|I)hd){s?#;ei3#)pY~ejznJB(>C`ADQab3|m(((6^<(Tpnhte>nY(`KB6|pw%_b zrCnVJjYQRA;lBfZAgaz6t6tl|_Wo-WTXgFph6@KWymSJ?(Jc&XM3Nh&FIXbm$I%v3 zy;nt=-;w^ZdC-1C<0?CwJ?rf$q<nLYF$WNH z8hU}LZiCIl)i%&E)tuq9guhEIzk^?ms>Vsg$B$DZez|ywcckqDMem!0x06Lvx5B#M zLk?m1ky!6%!qusw-)~F!9|`Y6Xex6c`FyLL_`5_?_l{#N3nYH}7!_|)p#|(~mdJ1i zO2yR=(0`-qFH?wl!*a@MF8q?Io@piLmx=v90FA(tqpww~VG~-to>*0QAmB- zq*DQb{WP{Kwi*+ukfc7ExGQ!kzQDYXq^1tr6{}H0G3zFkBgPW5MV%(8HyTT+P>G=4lW zXR04cxd#Aa>MBXqgO_(PztE{Sr!zGVDIdyxG-y}syS{_e?Lsp*VpnW2ZV~F#{F%FA z+kC6lodP>FzAJW-Z;iTJXx<~7ouuv;Sa23;o}?aD5pW%xuq$?lZ>@S-ID1GqTc=)@ za-kW-T&Mmbuo^f|VLI7gDM+&QvKM+x}Cj;Y>ANU{^QoiZueZCwQ(=cL4KU z`~vRYzAj+CeF#(ER?~fKQT-UU=xjAZV53?II~OU|kV3h?`_5CdeL_(=%A z7&iss&-eWV)_sYDCyyQ*45&YVPC(5}k432k4TL^6b~G0B+lMkfD8sNP{Rw`*@509~`@i^p}337I(EQB_|gr82)a+2f^{GQ^KQLj{wd& zb5BO7x!OBL`WtIM!8~u&z8?gac71>lv%sm$`Fzj@c=M}7_qn||h>miI!Og|hq&D?;oX#1V<4e_O2 zH?%VRqJ`me35KtYW~e1oDh(|kEt3sH#};I=Smg8HNe1)jG0%hZa|Zr7K3rAKdIe!s z$6E+L8@&s^dU*JHi>s zgoL|NSAze_c^?Gh>fx#XgbW+T)+FNUPfd%AxVlfmrx8w8XOF$6ZnC;s!XGbX{Cn*T zA3S6r-u~56idfHs+QL?bAH|!{XEZNdeFtTC`L-gw z*kriDxC~)S1>>hyZG{{vXI+EvsxenW4%HKGK>U)HE8}d@&A{2^`#Hj~{`(OgEOh)r z=M#ezd?AM06~pn8|IcB#!3H=!sqo8-qJ2P*5iOaDxv1&r)lPg z&9}8o*0-;ZR)JV_s zK0=?mdJyw}h|s6D41E`^*o@GpPK?k){xkY9;!7&OKzMK!Tl&?U>@~sPV5&V4`qaG< z^0P|#FXyW7R%p4Ew>Jzro@G`c?$sW1^L^@+1LLUiWQ4S_K@GIbW`qYt#vp%ujGne9 zJ`wQ~5nt4d;Sv`1$;c_7aIT~-Qm2gBw;`lj-<* zO+D2{*d*+zp$*}6%b0r7O)W_=^^TkR^GK$mEgJKzIZVafRCqCICMEUl@E?~FHeFJ` zjiiL;Qb}zO-!+=B6Ll)`ZK+|Cq&9~)?em}sJ|%ULdTi$UhH4dQWqp^yFMq2crW)MT zq|8|j^$MT27uevb+ZqyTgPW>MUEI*1?vd1X^r7vl$tN8?dt7CKKwHK)7*#0D(LM+cQ&NeR@tq+NL@ASiH1q) z1s-nTka5ebzcuWw&fZI>jsa{R)rCDV!cLuKG%ivnVh5BO8@*3M<1+QMq_(TO=Zp*; zs$P}UX5}=DZah@|%S|1R!YUgj{h#7#|)5Vq1y z#c(=zm^#T#ofRAzI!tv+YD@T%X_>~uRMt&hH*Eq^XG>~(_<{Dbe21&=xT(`DrY><) zRR=P4ja!a=^KkVGHx*4UMd}e3lXiWC`n^smTGkQjbvH#@I!g7pDcaJ}YVb^jzwL^) zbd37Go1*m`qwaQ7w4USCoLL(4;lz~2g=}*cSBulhhGz>dK`{ky9+}d{~xK_<^Q*7T_^|71s@59uHxf+wLU8^QYYKyuZJ#MX9 zC#lWKI)JIG+|)->?sGTggV$KAD(8`kw$HVyUQ${vYt^2T+N`$u$=P%_H6_Gyi`*0~ za;;kKrdFx_8rQ1(B(){Haqg1Fb!xkt8j04fQ_s4oaqtD})SundzO{put^Vq!j;LLV z)H{;e9zLPw#mxj7=f*BI08B%LHBtFn-`5BJvkeFAiN?DZJn%yZ@F{HS> zOPo<@%voLHQ-&Z5u)@29?IOyzQM`*4-X*d$L}S(^@)=Si-zDZLh_z^!SQwSIGz$6_ zL(hrhRmF*2;vNlcoBK|}dhw$Ls=iJ3;>2$8I72(cUn+gsmy6$pp>^5c5a|oKN2u@0 z>?_0&1#us)5Tm1@c??14poS~N(M6Q+CQ(0fQ}&hO6NVJOd{ZRUQJMi=T~E*su?{xF zH^mkWT|R2D?VI9$4PBVA*mjk8Ttf?{Uz@!_G%n^+#MNcr%ibtXGqgj@TRI|Rli09C zl{t3mwb`4*L58*qf8M>>o5c~Gwi0RAh=1v{`;fK;FR!XH<5Pc>y;baEXoo1A{#f>P zV*gT=_T;@SMBERt+5)J3r@Mk?!I8gg^h4?7dPlFK3_lwuW}5 ztjqb4xJ^UPrmo9*P-I?4rEC$;re2xz5dBWEhOW&yAm(Z4niOBo!(yF=_M((SVpkZt zGUpNTZWy{Y=P{A#Rizw5?N5k{H1tQ*_hZo*hOW$cQmkrMlz&XUHs>dTej|_C^3LcR zbABprR8YbXGV;U`afgO3g3WhCJfI;@?t=Iu;xUFcqwlxn91%xUnmC+VoOV>We5%YF zQwTbuq2H)9Kczh>)Nb%D1;%${rd@^@L#`9u)2i3Pj{JQaA&huioh6co+`s45i;*uRm!Gm zk7bXPQ@5$U|0nO&+%eMjEtPib)W@<5rTsbuJ-z7K?C~;LLoYzGPmqHd+Age(FC`Vp zHl6kibjKvQOQ#Jj`9p58Ot@Z^;z!yP`2j=Q#TVso=T4QYZ%}D}MVZs&i0=>tO_KIW z?uF99&<=4Jqcl_Arqi;9$LGzGr*+!T(D%9W*&9_UXO;}inGzKN@eE94A@c8H(Wwf0*fS7<1Cusd(1d_zNv3%m0!mG5Y1 z#^P;xUzeYSplQX|Zr5I2hLpu^I8K?7n z(xo6Va@1RZ4$!fKrd%tZXXv?v^16TKt(Cu4X`-g;LqJ)(i1N9F>4Pl!K{;4KB6&&z zpj-_-GdeXtBu8lI^+|d8opOeT?j12aze`@Oq5DUS&%az=&yecTmGb5&Xct4O4_C_j zqtf;>v{~FDr{`ZOAJ>r6GAI9=@`#3JiaGgL$(O?U>|%p_i=k6;6835vWx*ZPqf@e? zJ`d1GcM`NwdNINg z7TKZGsMTBK!y2MiZ;?+jq*}d2KF^S9^%nUnhBk{;*44=OmvEY0Tr0(Ws_(=FTcuY+ z)XuFkbbq9sTjh-!vcl)FRX)Jbsl@aJo8(q`P(j@4t?~(-My=i|pVeupvs?1F%8b2{ zvEC|k8B(p@Dn~Pq5Q2Dw$IJ#Sl=bA$YehGfFJoNvotXlPNtbvfUWZ)hk5rQ9grVMw)e zyZo3TRpxdnAD|v>78h7L^S8^v8k%AKrRBSFtcJdhKHMZ{X($`HMA6^+%Au3=m=`x zC0}AlwfYYEs!r?1NZcXcG^O1s-_~i%u`j+;&if(tPvyH)&Sz+|D6p@~xl=CFP#4DR zF6l8*?v`tH+5n{OmRD=&_n4zS^1B+^hgN@I?l$GSTi&nJtZ3QY@=*<4haTM{pEXh5 zE05{4cR_it{Jn<8Vm9xSZ<#26Am7z#vq1R+`Gtm_Mw$1^O4}!Eb=ps?SLE-Lmxt5r;z#mkhLkLLP|`1n8j|)wx!^&9 zl%#!7wlQ=n@ox)?(;k!^3gT7upzP9Vw5lGI8+6(~W^c-WP(Gs}k_8XSUob?iwgY-g zr_l<3NRD_YQu{+PbAP1vhvX!NRP7JR84BXsAChx*8rA-goUhZU_J`zk8lu`Ck~cA= zYJW)X*J)Jye)+bBNWScs9~_9(zF(#uAL^&OCvI*sZ(Ag|RB)ptOC zhapwp0l817QGEyHTNY!ZCkgENlT&vTl_J?IiLsa|2^1Dw&di${ao`Sf(hvgofM)f@`_vtk1 z?Zfgv8lv9f*2s^k6jk5DvVbAQ*N5aP4N-lEWaE=WsrdSk>|jW7)*-oGL0tPGd6iD1 z+7HRCI*n>SB!8hHs{N3BnITpCA^DC@quxFu-_;P+{)l|&Fx7r4@%{z7@*k0pDTwQP zL_Vd{sJ=(!3p(wA+203c|DSL^9^FS|21Ba8N8|*ZM)f@^CuxZ4dsIHFpv1-n`|=-^ z$8;K5NRP^wbsE+8s646D8fPB_^*t)bF{HH2qjEY!R6CV2m!ZvKSKMLbE7#Df z#H0C-$r=;o6S7{XeQbR`{|WhpDecEH{-;#mW>IE8mQOd+rAQo3uS5JP6}RKWQ;TqU zU;J)TYN}mK%1gy<#VjS638%IPyBl#|91rApm0lqlEMQEAQNQd6zsj%qW8a`ncz zYKVqPHfs6ZBr0Kg8evrY(VEm$DYgw#A>m(~pu*Ht{4OBcBgNl~jnE?g2W^l7Ke`)* zCmJf@jeNr2JA=aaIaK}1sG=5LgK@BleU0b{>B<3pk7C`BkAYN4@7IG9#OK9;ek(`H|T%#@}3; zij$W)b}fW|ZI%ixi2tpK;%#Xb@QI3lkNL+ODvna2!he@X^2!{_tHNT;f)uYXUd68) zOT1Uc9MT&TNwtc-+#aH_h?@oy=UmDBb`iI2>qx>METr!>&_t zyoJ>Fvnh3VE|t0E0?K9PA{AG%j%Lsz+|1kmeO#>$RSw0iT7sD|=DL&wqg320;Fc(9 zrs7JbDGpIQ89Q#poh2%PQu_)mVz!Cj%zU0yP9tzXB&}71z@-LP&}Z4DxQ;c&Mub*9 zN{ZXFc&=4gc9BtU^a?V!=RcVSP4s$EG-@tX$s-`Otipj1cM9ekxuQ$Hd_-)#xkfdH zO1~)l2i()!#~XRkJ4gv*#9qS~TEq{)nN|^p6=&c{k3?%#8X3E2Va=sVR&|jqRr6@% zU9^nyJ_X%m6-_9|rZp_l8#IZ~K2prVIdp(ft3#Kga7r_3_Jwn^R~UD8!fYAyHLa zVlD>bcIzm-CpSubhQB!ceTcu0#Tekm05=A>F~E%hZY*$Pfg20lSm4G2Hy*zxIUcz2 zxVbeRxbeWv#9J3Lft!hUF=hfc6S!Hx%>r%~aI=7$1zZVmCBT&cR{~rKaI=A%4cu(t zW&<}HxH)Li9N^~QzSJDx<^Wd;x>DduL01Y~DR6Uvn+x1r;N}817r1$%2!Eg9Z!G>k z#NWqwE8{}^eTKiu`1=rlAH)75`#lYz9k;+JJ``a;+zHMuO+^nVEaR}2!^Iq~(V zOAm`H#LLw$inZeC{8z+w+Yc|mJ0X^%^G^Xo?b*pUW%r27M|>dmic1SW5_`n65LDYN zDYz%S)AmOB=lE?Os`qLR_lT5X1#*w=@}(o?^<3l4T>I5xd0Le`AS#M4mV0eKn|lf3 z*`;2&S30x1<#9=8vO8_dYPQHH(85%45AyDk`#A4DK|8md;ta00Prhi&nDoE$jCc!qcZ%ks6LO;% zxZ(?7a;L;wj@$kCnnFd zoU;8kJJqsN&~2_$f^Hq1u{~^`Ye|#dVHa86vwf6SZ^@QFn6lJTYzqy&#B#>=Lao#C zvF+W`Hp@`vhmDqHMc)9;k49bt%%5_;ZP{tNwB{DeHp}-X-46T>`FoJ})580J|IPdZ z2)B=a5}yY?Rr@qkK5yA0h7|wOQYh*6M+mIPVqGER^7w#kHs71G^%tb?O9+pSclr{ zbGKLv?Y8WlR+_KfDD8q8JI40lg!`>K`L^Q~Ja@-LV->%8WPug8sS8Ahr zFS0GRA1_&Kdz(}55pxUI+wKwLCrg~vtw>#{AnKjpb#x{2GeEVMe z-f>Ip+r{{c+Uy7HuF8)@t-N@a&;Eq{$$=sJN;xa_3j1RDlafvLqxQeoZ?&Hh|Ec`8 z{YCrBSZjO5D!k2dM$8_0v;DaJor&OB`yVFm1kLQaJM9iRAM{@uZM+xLnonfvUE zAtesj&)AR7|FQi&`@u!e0Ph^L4`Du1_liY`?-aW$PuoAXUpDJ+c8{F7@;zYaept6$ zG3yiiS{Y2W#I2RTnUa8TZp}da^4U*E6~rB|zK;8I9=WWjDsG!BOIaMZN4%TjkL#9k z!$NT%h}xlJ#5OT!4Az=#Uy3rhWDhuhW84|r`x#r~wu$u7-$6KV#Z7S@S%P}Aae8?> z;zXYv_t#0cBh^#08$aUx?y~z3zdHL#q%J7_DKHO}{Vc9qygu|-_<88|r4!NecbB~i zn#pxk=5&NK+HW9kM=jgsT{CR)dqhn(q!#MJ?8wnIS@GM&oD~#<)KW8kkVVIwceJ z9u{Smf0h&jV=wy%@$KNx6SkC@B?)<)x-IUtkryS@S~ickjPv>v_KMed-ic>MFwJ;L zYjC_IDLP)(6yBIHUXlbJFG=!`mp>o6!MZc<;^q68Gap1MN%*Od-ed6LIg;?>c?2BX zsZcPtmW-KpT6)1n5=mq6p5<_y@{7+FAjgMESk{r8&%e;c?y_#Eiy)0UM zV*-W6{SL&fD4f$T(Q^I3@_r{UGL8L)+8@Ws|6cj?(r+T3n|)2cn>p7|`=Go%{dP&> zv0ZY?;Aas3V(G8?-NS9z$89(ytCx*|*S2=(;Qrm#J4WUA-($@#9gX;{ql)_P<5neF z0y8W6AB}6Ays-ZPk(k+nu-}lD{--R1a5MLmr8Mu!xKox_$A|hqVLeuId4JM1SM^_P z|HGigkih8|Z0Y~8xHRds{gj1t^zpbo_17WqqP*MsUoR&O+>emB<$7-63H%uOPvcHl zHVvACo<5p2r{5EC16MrV|Ab}Cz+?UQT9@NC*`c}m~xe_qXVl1~k1em& zJsJ069MPPxy*TOeq&@cE7hVO*ysT|W+3}9C-%i?Ve{|d}Nkij_X1kc2wJWJG{=%9) zNzY;oXNhAxX^03E8~Avcx7^;<({k?lJ8;uyodSI z6Tj<%TY-0iL-w#N-6I~&-JiTiyp{V%awAKCJ$y5BWBd&nKTh5l-!Sx<8|8TE8UUAU1PkH)-CAG zv_0a6Veg9Vanz&Z@w?I=!Z^5=y*gm0)t>j-0GY6M*`Ed^T5{(8ZNLZ%${#_y<=9T9EjV=t@=eB^`&b5oPMA3936;zrrur+PhJ#nQ&cl-Cc1%(2pXPqe;O{=<~ndIY{UmdZIjZce{Fw#3T6rfd|;ir!8c zYX4&Chbc!bp`i(>M=e(lO;0@#_a4e`v^1vGq&8ZfhiqJBA*=F~MU_UqaB(kO+~(O9 zl2ohE7b%_qf8Luq(=G<@PhDmCWYp)@>v;wb#LY*U*E0`XFGmf2KlOU<%k?b1k6M2* z?DN!Z;;$E2)7HwF!&B2vSh8}9)3#e_4W6*hAGkD)^y8|uGgimgP})x0z!l#>e0BXM zSt&;sZcKa6I=Jknw2!Sdg*y?Fc3W&8GIFu4QtqGkvotS8eiq(kq>DQkYpr1U)ruMC|A42{Mq>m_(6?P`>Rao{#w zZK1Z|>n`Kx+po6d48A=5W^UEhmdnOon@*J2qhYkGsI&H8P+gvsE*lS!>LOY=2BPb;8e~2~dA=awJ+>(1NW%Hj-e=*^qr7xzRNO*nh zFVjyY{4)Em2p_rNopguo%;fjeJ)pFUeQ3jBamaFUT0#cd@PjknOZaT^1sNYF48ST_ zY+tu%1TZ5A3#|IJ ziFafaXMV~Ydm#Sh+7i(Cu$m6UwXqDjpXJ5}kQ-NEcCh0^nH8XaqkMz)3YNE5sQq=^ zZqU&BZ9ob8p*Ii2eXEr0ge`@)W$u-i&buS?H23Rm=9v$;ojYy+9Q8tGq9rYpXco-< zb>(Q!DQP=6rZHXykty$X=^TuUl?Mys8VrbT$#KZF^0P~|!(-BXdbaB>B@z!ux zRxM`Pla(f)8s^IK*lx|aDr;}z`hi=rY#9H;B8kJpmK!g)BP$6fZb!2c@b$0f5T=S> zAj}lM&PvB`qP&6lVDT#A*@!2>7xH_A1soqCP9qK(hty(V=yw-$2iira$Vb?XFiC6> z{{YR^;(gFu!@0JKk5J~ls4Gd_FFphQCEyc8y`->FS_UTI{$xDDRWb?TYMF*|T=KIl zx*bL(Z$p?awu3%NoR$MYlWF00S}1RxB_64rz@)=}L*We^Zs+h04)<_aXrIyv0T;oTfQ!{M78TH~3X!?O4%QC9`Wog8lFa8LZp;(NpH=J=6# zCq6}clrhgR<`l=@HFuL!4rJ!N~%r z_+7z<;Z8AP=t+cKLywGbikF7&9_bVr!%mK*lEo+r3r11ic^t0ha07?CIXt59qn)B* z*u1gaS`LqJc#=c>7$%j&;XDqHaCnl#)8mGNyXK82n#%DMU(N9i9PZ}u2#3$A)Cokn zfy0v=iXy_;ib{~TfaCKxT+QK04#h;y#o=xak8pUBLota`cV9^15e^HcQ+ytWt2x}j z;cgC(aCnl#c{7M|HHRBG+|A(;4o`9@W-<+j8#vs};Sml`awujIO#z3iIo!bEZVr!d zc#=a=!jv3t;BYsGM>ssmp_t7y9M0o#1BbggJi_5g4#ga%kCZyd@5LEgl~JM7)okgmZ~3$mqd1ImyE}K8A@&klV#L@t6W#Hw~%N zkunqiOK@f~2jN_tiIgE$fisUPKs7kis0HR?+!#7K{C{v_mt6H*giltzj?g#$&j@d; zrEn0(59FUge8hMPj}IceH-qB8ETVW|Ifcu{QTW<$3b#~Jn6#K^e!Gm~6Pf0*(G)+z zlsjwQLHq|L?;(6@=D!gp6jGR0N1ux~skb{Zy{S znNF!!rY7J-uwWL&RZo+v1^{z&Sq8!%W)OZ6x3)cZFfcVksK%^}3lOia8-}oC5dH4; zLl+kz{QJdI&l11*B5J>)8FcZCF#Y+&n=dXsC;f?wD#J9}F1kp^>5h>Vnmz&CLN}A* z5%$B=0v+EUJd{Mb9$$M%MmRvEAWXr@l?Ap`2EsJ(6YfxmK?pNoM_FK91%YvaQ*qV}KDCGz@U8`4O|L@OhI%Y`tG5>6 zdXz0;$z6>2bbl&TKlm0~f%8}JgU1>av=itvzF4w^?0TJXiKl?Y$LH(D+D z-qxiE$H^vy^P~e|g@pDORnm=cnQTS4LV6H3%QXmHvK^sc`Vp>`YY|={A(6y4WhcTX zWEa9GWjDg7rGD_TM8G`VB%TR>-EW;5#Xc>uczhyMSgO);s zhb-eD8J+^=7;yxYW5lzd93!3sPIK{-o&6O^+A&W;dX4a!+!3n*uat)QGGz6Huz;(Ab) zh#Ns!BEAdC60rl6CE_+vmWc0xvPA3xWr?^Gl(WV6K{;F81IpRrK2XjU_k(h_cmR~M z#XeBZ77v1QjyMR)IpPo~=ZMFxa}oX+lyk&kP|gugSxJr_0cELp7L=vpIZ&307f@!Y z_&F#`#W7HpieIA4Qt@k0&K0kKa<2FdDCdgbgL1BT9h7s$A3-@+oCM`u@h4Eu6Mq5a zJn0hJ_2Q#_{4fK!cRe2CO!uxu36a@ zBDC1XVJB3Kl~N}z5l*oNXSi2jmvaN&*t!#I;c1aAFO;Qnsk}wrEB|C!V_j=~#Cpv7 ziZ#>LVe5`7ieD1{v-mLyWeFP-wk158kd`<&u`qE(;+n+A5?@dJS7Kbhf_{blZteGE zzYqF}{z?69Nk2+@BE9IGKI!@IG2DddnHNq={G(c_#1`4(R|Y(4iYdPD%05{3%_|cYi@e?gK;_ue@CV4lWj)Y6(PZFNAT$$Kx$?5lwWj#ES>-&9(zc#=R zS(hYFwA_uq2a+$9FD3uh`uk)T@GX{!13tuGi=`gV`T@20t&^b5ntB=1zGHhP)ob~7 z`b_)X@g?~C&_aI)G9R%I$a)NaKe1QgCXVRvI(+WpNn&=bZ=EMt>GuaJ9KQLEb?yeA zzpF9e@C7?OUU#6>)zmZvRHZYUnr2LDLafo_TvOU?KsD}Ajpy=qe~?hclZuI=yfYN? z`zriCpW7KC{1iqw5rbSnNXx222Q4gxtcQ|}5 zx2tMxr^D;H+}-GI?{Ehkq0WFi*w_~Eceb{bcY3@oe8Ak)Lo`qo(X%zNu@`c63mt3R zi`-p}evg;C9&XK)snjmhpn9F1UPs97s_+LxWufSL6)}zNbk5e$;pp;(^9IX;i`;JX zhsID5@H8-~xxcl+x(>IGFww=&U`oovkusNSp+DfRbT@alF7vp%8r-1}eak&M6O-0E zLe4ff_e_=1W1?arFPvsf$#jlYy175x`fw6Q`f3T0hAE3Lq~eyi+x_d@i#omDy1-H} zB?idtqOK~AW13zQ7ZW>qy3xF;95avL62HH_mRCWSqr1m=gtKv^+T(LAaI`nO91Go{ zHouFT5hf{~q1qhud)K*_xLe!-x6i4@Q6=?ks=`Ju4KAZ6;e|7e)?-l2O|NKkJJ;|) zmphzmD*Wvoj*zF>>uzkr+?KV3+<^st2eCX2F7ht$8!>Y!OWdt)AFUO)UOXto@2hl# z9MPlEqw-33(9`O3g#3YeufyqH;t!#OvQ~%3SKFd^w^#NsdzU+c?h1$3+l#{7u9`M1 zo0@>5qs`;2?#bV1OqI(MT8=64cQISnfk7M_iI^rgkKUQa}+ zkLF{6%jk!$`Z{_r;=bS62STl67 zX6Ry3-RX0#E*2!g9S}>1)>ipC+aYTV2--TN0jv~~In59aAgm9#T^=VS3gTr>5=e-^ zt_Zn(A(F%HfT=VrdO-6X!8YhM!Y}Xy={dV}dQ(#uBnU;@o0^ajLZ=&0WGb=3CQoJr zs)6l5^9X4}>o(dFnk;I4p(%@ymt}??*}wFXM*j0-CJ>%o z(oELeGg)&F!6XhRD=xyr0aovVZBhME)q*Oy<9ylqq^rrl`r7qQ`cMSm+5lsr7oDO%bi`P*VkF!W~d! zts6yB8P27fmRA%i| zDyzp_0CRrx3qr6-t*^yj;Rv|qcVl5)jWx&z3QmiAn)zl=a1O9fl{~V&xuOqcV zj=-!W!_Xl#?BG_GVQ{hR%Di5Gm)pen%t5h#7VSZ&AI#p&?O5Os&>{whuW{28 z6Xyxigu5{0gt!cU*xfU+ZU)C2+F(p~g)yp8qM;%_`P1pX3~2_7-x6D;}kAv z;<8}3&lwpkW2}s!;S?Tuq^M_YP(5Al7DuNS_IFS!pNHx(I=%xpGGu&i8INdJM zq8?^0kFiM-ynhSt9l{%bVYn-r%mqN#wRhA9{E$8&k2}~qEsB_cpy3%21d+3#p#z=; zvB)3tv~)Lx*Ga9fqcc>|=I~*31g6CBo@jZ?dqTbKRUQHt&noTof{p%icSDzl{01%& zga+u1_4T4t0wUmX`&{1cMt>(~u3GPQc81)`+uS~^d{2-H)Gbw;oBB@1k($9wxBLAe zA|bGvw%hp0Ip>;4o&}K55ooE8B(^56VkxDvdi|{i7-47OCIMIHt9HN{<`T471gi$P z^R#yb4qdHwFxOUk0$|@VFL713PNhbX$1K?B@p`MVGP`N?kqz<_7J|b=@doUgX*Ude zlVQ}aW2%ew9=Os}E16Lc*W*FPFqgrSODERBa1AO)2@gsoq%pEAa0fb;`kb_j1k~d7 zbkLJ(fSE1OnMyYjDIO%7l{lrs3qes2Srdh&9vDcz?H6PY9j9qYG4Z&y29ZKs%Q(D zyiheQ90utD(+a~#yAwYP2;F-REMszJlws}pm%z&hSEpDGzT??w@cVrv+=6X>pqF^s zVSOR8%oEfbp1PJ6@N$(8g3P@hBBmX_RN*HPfG4S7uzw2}Lo34uViG|v4TvK6xWE84 z?f~JUBo36UpzWLz8`M%AgM&n?7maA=eUYey5can=8Ag_%Z5+m>35&#s%>Yj;=^xSH z40xLH-R-aos)>D2!WBj+c!?W4;KV1n!vbAIWV@hs$DBoC4^*TGkW5jum9~==ewSO+ zb?}4Oou(V3gpRpIt6x2rdpg{VpowdM?$v;Q4M#Mea(qR*cM)avcR1>mBZ^ zSYm+tLS_VP2`5&VJGj6D01MQQ2PrzOoXEPso*u&+cB?X~hb|0Tn&HG~jLG-F)&l*Q zDGfoyB_Ya!CP44esB&%Mh*~^LA;t*I$BYwlDU6ivDqkxG3g%LP*bF8tmsI0u zR}oe>VQ3MdXO~WCYU+S&_vzKgShe6d3PXvXG3|{e(p$ZgBWUVKn8rzJF|g3x-s}!= zrjCGrod>5Fe8R&RAGL{>V|9R{E~pw6!GC`MI*BOE_phnG)C*&kTD%-G^(4HP%b<8NsGn!h#Du-irE&QO7 zP-+zO8OC5`!?2_buuODJiRv)P5;t}lJ_dQR0uh+z(;eWXP$WtwfkIN9^$r?HSSCzH z2E2~CB2nrWC)03q1ij-Y*BGMqVFd>;HHJNoc(WTOtXr`5gCX4NBZ#Ur?HSnIGsCP> z%?M+YLH0DwX^ahg6O^GrMh6ktcwq_oOr^xi)$?5M+@Y_^V#eWFl`j5La%jgC8D_%g9o(Obf>&{@<;3#0*lJ`66lEhLD{ zIQaR(={($IL@tGlQQACuXV659VNPYZ(a(w>l65`tP!KZ432|gHwj2Frogqy{m9XP6 z6ja%mUjjIog$-!1gh}=lDKUseKzn0e!?a3yW3dFL8;_7N&tb#@cn26zBFS*@l0L%u zUWbb^R=|J`!5H?sTL}cu_=02%@^nB#VlUfH@&U`q5sYl|6-o&;cvr~tK{lOP7;%$VAG06+Q48r#6k$0FSdQgt=_S{)M#{ouTty z7R_))l5mmzZ*Y z2^kT=D5nPt+%Cx4NCLJMI9G!y>F`F7s)_Eve0Hfs@L_Lt1ZA`wwu_tCgN;&SSd2un z@B(mqb2WWZDL+#u`W00OseKQa0!Z2^tmjy;cMHHSF1TSM2`nkg0s%*N1ZT8}3U&BQ z30kQ$9*3&Ddx>N#@7A2bYCu4K(ZJL4R|r~BFd!8G=Rl3#qY$M+t|LbfyhU&oyM-r6 zXB_L?0!M^yS3QP}jxq@WOW%+rydMFqtTb{t=ooHqEOEm?13A^(fE^IbT&NLe8?Rt9 zg4Zb#kakcB1hGYrvg=wP$=HGmL+P^Bfq=%+5{5@F{&pxv>@HeHX<^;)UCVp@}-egBiy(z>`TwaW&w~dJD+sL%3SZ zw~tJADoi25ejNh!XbEh>s`zA>JWD!eGSi5ZHzHoI`50L=o6eNMDA*d(K@x3En_S4k zLyd~rOu~jPGE&e2p|%#muEU@nE=~momBH+0Q3|`ACOK*-co)yUg&ww0&l?895ceh> z+EYOb-j-4o)K+de4iMD*YY4jm6~p2I&(vYtO7vt5sE9x0S21M-F_KCHy~1nnNIhJ2 zFaraA-deN@+PP6lv`?p}wsZ6lacVeQCg#;6>c)6 zxy9m69Bt@0Sux>@HW~+I3Hj#?^~AgAGLEJRt1f>tZ33`O&HF>F&Ut5kwdH0|G>kzz9&G)FO<}lM$crZY0S|Zy5x(cv zqzoA^w*<{c>gD8r^!9KV!o3ce8$pt~(KwzGN3$Cx8dhCJXE5Y%hyH<~P3)vhDy;hj zOa}(R7EQ&;kECLuF8^|9@IY%dowFz$m={hOjEJvOW2pHm&B2>NQgt|J;c_7@iScw+ z)gN9iknps{w`#?i_#*c_^6KAUL4`$QenodVdE!$T)*0=UpbP08(Jf z30E8BM_8D{!4<^NVRC2*8T?e_0wyd6mew}$VyDT0qX_O&jqjb2ibd^%Xu>k|;-z;yOW|9-e{Pp!O`( z`Sf6LL)Cc$aMX)10P7wXT!AHaR;pITX)X=eWs0j)Kv9lyb31&(LWu#0 z#HkpABVa2=5^(D54wf}TQblkr;UY-XlE0(e9qMwU0-PWs40BVIZ>NcxP79NJ#u38I zhglK^BAZ4=MdycP(K|{`B%uod&2i{kT<I|cy<;l%O;pVY#q21VeFJdiFvQEUAjE*%cYN#~Bu%*Q(lmO%?b!~|sr+ekyVYoJE#^|frycRnsccouw zA9JH$-Lj(Xx!R3!Y$2b{a8#W-aFk7oWe!*pklUJ${8k(dJ0&Be$}D9V76vNdOLROJ zmt#k1*cmYJ8OPGS!qLG1*oQ1s2VB^`PBK|xF{+gCv3`eW2dbgX-|2NVtnqXhZ#h)s zuv4&!L<~TO@=EG51Wf}^8R0v~jm$BaX8eSt;U}~^&IOb^WZP*-2uCOO5U^B$MakrxOcZh`@j z)vk71yhYPd7`0uzGXZ(C7f1WJYG9~;cmQEcni0hNq_|*kI$Du~^pp|D@e#Ic0p=!b zI-~P1)lzj>VLrGJY6a>9;uIYv3qVJ!9YI`Fqf*r2 zQy_X%qV%VcgefL z;XM2%rgF`LL^IBADwZ-PB6HJ-8L^>{l}bw`7M}V{dl^%jxmvSTY9b+78Es~hcMV++ zBTdBN7DmLODb-vXOiA1=f=Np|sy=9XT=%5f7wWlJh0jK_eo%+enYgW@h>a8ca{fWi^ zv2+NG;%Nb!Q(1TVbt3kavuPRG0#(7afz1yoIJS$}rl!dVGa!Vga>kKV0G`)`j?>Z! zyW<39i$GK)-_~P2&2wb}Sx2#I#{EpPkl;i{OK?Aho!+cX>ssLPfCpUYtDV?&;OvZU zgNBJIj#+0Ni`@W$R4BY6cxjD&&xYaF27QlIE(1f0lA?8&;KK*zW_r<$B!$4%1Y0GJ z2H=yy@gZSNeqf9q99}rSAiSDCc+R6lG+92x6ih;ap;-D}U09=KUhFjZ9kN<}1rwd5 zZDVvj%%9*)+*jlT8gU)<7^{*85;ikfjA??PF@f-|7%AW#s-n!-&4e!M65qszKO=~9 zbJbqH1Xt^;z=0s$IQF>cXfW(|L)5qnL+J34f3GXJMFts$dbTE0He4xg>EgZ^c5Hm= zc)n#UV>`LWHLs$uv-7_ywXC*?T$Nw33~gBBx-%}5xpFvuG!%Hi1>?GjZgK-&w#WdCqHlsPcLPvH#|rp z(@`&{`1vBC28h!e;1N{Cl3SmT3*bReFKWU|6$}OVtSf+9c4&pqRU0(qNYG#^unVr9 z;1ZNG7+Jk^JV{Hqn$E$3>Zl?J!Ob^Ec~b#{gd8eCL3R$d2@P)SssYye%IW%IkR7>E zuk(@+FfPKX$qJh9dYIicMly03QDef@WiW6Nol?^^kH9+IE=6zn&LVEi8gB+e9rbuu zSYI^^LXqJ>1@8A&>_3pz5V}Ef!P50UP(aLc-|0$U5N-_YF|mb&{}ZR0x`6ONL)bF5 z$`SCwEuetttt31UPM8pW?J*5YT@wm@rB0bJt(ahABgt+6Odh=E*wWyJJtl}izSx8Y zVy8leWq2I;V2kNVjA+P-(>k05gY%Rf1hE-p*$7F?aecg7jcbvZSUSlAI?T;*>Zn)z zgM9Sm4n$xtA3Q~1SP@F;M^I?G@`!o6VME{*0hF$4C%w%8$>lIW%?x|*!&uB%IL^}; zhERSu-k04dylvoO{LL<%+SC+k^I-BxyOpg+j0Tfp7sBu6P`M?36Y6Q(Y&?X$p`a9}c=u9IhE^<4uw)}{d zIq4>_iW7Ij7UE00>QcOP;7UO4*oFs4pf^FIN)=?rWMUyeUh1&vYRnEIA_%;PA3DqlhKw zh%f914)Uum5vMM(A#RVF+`Q-}>LM2_hFN)gY2?YeYM`6Tb$m<{WOqrh42PB7Y!Shx zQ$`{glzL6Up2V3if#J0nNhJn?PmA5<^u(m8cW(9Ba))01be2m(359UjN`@0=k#o>A z8+M#RQnDfFR2GHr;4G1?A4=!nh+IZJq5j|Bn0gQ zs7a>nGKq7Y2-h~MiFh;l{98>1$vs1Ws_#C~Qiov-`33Qa2RwCrDW+%nLA(Tx?OZ+f z9JJq1!U!uV;85lX&L8w1DF~&^$GRaFvc|DVSx6}x+%lu%bA)h^M195Ag2`*$P3e_REtB&uH;IxR$FKBbqXL&RfIc6}ODJfAv_ua9kk6zwXj+UI zCj99aNs6$xeSl+ZBn%@IQn8366iP%#`P!j+=ft?ErXji)p`&3!C0N+7#N`|hhN7dX zmfn+aA|6d8f+U2DhJfYtX;@KJJJ7^dI5(gz5{vt=XNpcRlwe=jSWfrsMKc`p{3@$~ z2;l(Dt9-AOnB%mV3jN`nX51VL`DQ+ww)-+A@VovN7 zVg{mTbEK(5-)1As5;9|PFB?&QX9ye!wj)x%lF0RLyoU%_H_*_l8jGX-DxB66K^0^P z?(}h-?>rcXai)DK_`U!{Cc&NuftH;rGZyzqAM zOXfb?M)6A)W$YLtY--*je#ye3Hiu`)YhICOA!AF$<2>6m5@&zO63#i5U%AZibbf^r z&NiiAp}4b8>sKf+YHH7s-#oo$(%Gexo0^>J9q3pKkJOh=g`g*`DwKniq!O9dd^Jbu z5k4crO(*Ox=^9h`UK7i=YUCF53KB=S3FINA%`WYgdHc$~Q{_1|>1^YOM!n0|gj-5< zuNNwqb|2k!J~s|`S(CDAHW_yMwJE-<3jJG+x6&XKNz8SGdcEX`z64l(dm;0b=46*D z3I|A5NC&?Hh_g&WRNyR4R8g=T+gi~|=XFXd!qFIg1y7&z@8f8`~wLV6f%x;D$E3%dGeO(xkh^xa|oZ+r>lVQURYa~s@5E*^! z2kzy($86A`@jKswUvmhbV&Hujya*mahK(jRs&pz{KwIQqAJ(*V=8XPeV}>Wqc`d)9 zL{PNL09U4>4ysjh4;)^pz;_5KGgS^A0CR>2>}A(+tIqgmvl{UllP>d z&9L%))2Lx1OdmVI81hLQ>_V6;`lescoV0Gpz<0FLo-(RpnnbKDx;a6%l9mkX_#iEG621;!2)+H_k;E3@-d2J)6h1qL=itaIZu{@(uXp2g@Dmr3iP40l9$V$HpQ&!$)yVd|nF%G7=#_jVP`fhPtsKgQ(oT($E<`TELYf#3pGYQnab>=0I05qjC|kI2csm3h*a@8JI@)61O=$?&sNbI!sqbm-}HKXkH1OO3$JkC3*dNlTKGi( zUjla{Y{GZJeWDSV4#ZlJ<^UaDi4Y>uh>Ns^!UGJvc%W^?_r%4x27E`{fj@YlP)-Mz zh^;ohQSAT@uiA1sornqhEXtAc4SWatN_^wG0AK9KPrWA^ut+Qbj{b}O{d5fRYy(@2 zZ)mRvp1!3{c}0eilb~;iVw5UU7NG_8`0L_ciL3^+$pHxWseuXM_ntcNIdGM;0AINu z&V5;#LrelN~%R^J#&;H*CNz_Hx&6#w5vLbVwQi2F8@;W zghsRg?ZVw_^rHiz6YZpOy!bVP0^mD&CJOK^@dC6CAIU%~seUyF9#G5WMvu-_8nq6` zgDA(3(y5lSmfLES+s5-*z%xwqAHts>Ehx}EDFD<7ETvH$1h;T1ji0I`y6&jZY>Q3>Ba?#;k&ytYd^2UU=^IH1zB@F8L!D@e<8|4?T^H zn;C2FRRO3dm*OSa)U!+%+S!8twEm1T&1FSu=sn{F$VYS79x1=q7{)5U1wA1CGG=d# zZk;hEv}Qw`9^tM?KWHxH%BARkPhO>7(z>QKX2tJx?%q@{u{Wmo^c$5qoLvuzepRo9v55|xr54GkjD|5qlF2N5C zM3zt$3n^7F4IGKEDirAC0%>6=b|%3>F=A2@sRayx3bYer(FRrO!E=oeLx{~gcpPZywP~iUM+wAyBFntwjrzrg+l_fQB(G{D zaWP5QXjx=rqm>G~01b-fn^$&|BkaEOOHC?u?iG0@L-=y5%MLt_b8 zb`hosdVK<=sIfkmt_F3A!4$O^zYu;Dt0!w1_@3jc@yX3#50bB>JH-$hKa!Lrm+-MN zge2){36bs>70P0(!07n!pHd7K>`A*Eb49&XTG(U(VFqZ$cdX;AypyFZrbR~8;NvlUj1*a;+6v88EjLDuIK>zjVTA@A zXK*qJsAi;k+0r&@P`0xwO$?_}f*2z&j~77^TZHxpu>GeS<*9Y-#Q2hxW!MiihcU~} zRr%D~BFmgCblnH*FbMHg*bl4{Dg>Ndgs~#dBi<0>jQ&NeT%)|6R*xty!^pevOJ9_e zMgt#!0w1+v=RtzGOWXa1#6zD3H3HwxQj%5%?FlHSXkUUd$f7dR8-XX0ZS0V$#9GiQ z34A$n7<8oOBIPvc8he%&O(iy5SA!yG%N46JO%PD$QyH-wz6XG2Q4knJtw|e6VlHa67#E?U1!z`Ky=Y68b3SUd!33mENEp)MCoPSe z6G&BTQHRBnz1c$fttle1(~um>a?73;RiFW)L}KJH)AA7 zRM4s$0}hBDcQsxz*$}7PqckefP`QMW*@T&o^33)irwpMKYC9l-P;boHX<8+;*Cs0L%l5<28{=t3^4nXPDYXPL6=9W_9 zG?zZqsSJup4-EHKWUeY8Z^%reHZt8fHLAp!wBzZElbLoJIk|{l)m@LW;8x~QqLoM^ zZg3QFuIAN3BbPDjDz`C0Cd$zUWu(0kUNO;4H0U}oKE&lDJ!zCk+4-?*41-#?pxB_N z7EqdU6|M=(4mB^aYM@!8tpmw>njxhXdeMjb*!L{!wv+@@Qq5Wsl4?+Ej^jTGdJuGQZ3*(ukLp zUNfkc0b>|aLCm6Gua|npa_*Whlbak=#J#wZU@Do*sXG61aBCHPAU^6+{%0d8&hfzH&V|cxx=gH9MU_?1(8)oveRfy9};}1(Skmucz6vo za=%G#5=R;3nk0F64SWS@KHX@?mz3z^jC>JkO`A6*HzInD=OWyb2yGvdeTY$NZ^_Oj zh3D-o(mXtG=aA^(9-N0%=i>;H)MVQj8+mR~xReH7Cw*<|nHEk5CGUIkB}q zVLdz2pjKl+8ip)M!-7zDlMKslMRiV{!)-81KBorZ-Wk*p{*I|drVyP$d!Cwv*N&0r zytPSGP3NgmqWT?MUYqn4YlcX>zO-hkP$QvcyXRhpG}C!#7d!Erj8}(ZA|-M-#&~-_ z_KNlsBHzqCJ^53x?Xv(9q_+!$d6F$#b1rgID9)yO7J=)C@A`IfFzw9wtj~yteXv@{ z-A0xHIYN|mL)J_I+mo$m3)vUSmK9l4i`s=!Nop4(N2=aZ?H*VPZEVx4BRZABW1tTV zIlfqxp;8r3sQp0~TGAap+EeKyN0q;pb_@$yyHuf5*`CS+hvR>3KB6=SyCiG0DktO*?<4W^y z9#t{={JaR_(w_c-uj=|x`IPHU*^O}L)SO={&gIJx-=MMlfA2Ag*@uzFZkRZRG&$`E zdhWu-#4o3J#gK>|jHNS0ek8rOo)l@M0r0s@w1ip%Ps)S{NA*0XX+nArYJC*nq}Q6r z?K`(vqslYy#fh7#Oec0Okz)svFKSiOx}x@zB%r;vI(SqLG<8JVn~r5j``PMp{NJuE zM$f2S|4({0j^r4*;=Pa|bX`JuyvXvWJ!uo{I^%pu)Dm~8Lu_MS&YnAxSLvA$O7y_- zDh9>2ZN;?SHN>W@M?0x~Tv}lxo@)0_F_Jsg=#AQ?8a63u3Q^O${PWElRby`7cDI<> zyNICS!DwMQYKhhJbLWbxWn^snNc*{-ir#%VpL|g@#o+hI zX+Q18)U~gedOgut8L{TYNQ;>>O<5zxu@2@VMmv;TkM=aiEG@V1J*r4H^7FbIQp<-| zN}H1Rn7qPdC3-NEI6EmJ4+~kyZg_vxUX)fBY2gK!XXOuVV%x<9Ecqvi3xZhjV#s_@ z(vErwFjO9mvj;UOkF&@ndz$QEI$TsBgS~esw-xj zvy}Z$65GU;L#fwiJBNy;-_DgMX8j{c^U~!LvftF+PVr>KGQsXA#)?0md{HYtH?qD} z4MqtlKZZrnH+6KWYPU!`!4T$+E=U@D9*d9rrtV>X)kSMK+DQ-(sTD^26&asMO9@|x zR?uppRiU&ZOMqZ+&NlXM=9>Q7dZNZ=^is3|zqyEZ(-{n{G+)340QHx z8?}Ru+m&C+IE6Dt_Wa6?YK!S~Snb2`i8Rzr7yHzCUme<011VICYZheBsq^O8v@tn( z$k{!C;$lN0^xS2gJzvbaYWgZmNvl}rP%+C%Gw=RscKU8*6-J8eEp`4{16q>$J@ZG6 zd4}S4vnNIL*>Zy$d*_MS@?q6v|py#q!mJaAzkHQ?QM*gSloB%=UYaPkqGux;{P3=Ow2J_+E<;*7uHjQ zS70P)_h_8r#`dTQzADxVTC;YG?gdFFW$A=3B|7?QODtV^uF_)mcARLQfW4C|+_ntD>k?9)(VO(-kV z7*h{wQ7t_8YU(RzlvH64ggU8JnuSvTPkZMcBG+}_@pJFa?%drSUCq6_a%6jUGa(UK z;aGk|#+KuiyS6vdHd@DPOHM?+$ZJbVmU#7ECrS~_on8ImKLQR!ZB=TBp@JG>NTF(D zs33+qL|~POc1Z$VaG@y;#I%AM8fe;nzQ1$t%Jgmy3B2^GEK;Wy-|DE{k0TetrkYRzxbf{*ydOvVcvtN!tuZd?mKY3|U^ zrpQLj;IlNRrtl7ANxq!ZFAAdqOH}v@NtjuKStlrP@doTqmGaK)s7-4 z>DL%#d@MDAPZQ3OF9Umm~xJ-Y0bA~f$+-ACIkt}Z7$H;yW9UTM-}WpVEMoe#c|}}*Ybfnrc8vLLwWCH0 zH-oHr-qT_dU3$#s8)Wz0UEU%o3fI`Yz*01vZOvHt4H6s2nZE{%XWG4N%jeBoFXl_e zuvI=f*auZLc99Kb#^fsncUD`3|AV&n_`dGP(`elOBzR~xNu%jAW_M)6Cd>v)5@b`0 zGJZ^|$ObLg5a<6L_$%adbKxibx;?jfqM0duE7dtS zMQqH3=HK9UdQVsO7DC^wC?=9LuE-x)?KzRjXEtv7aQP&AKNYQK>mD=m2>|J@$xU4{1(tMPb z#a-3WviOI&+vbL@P3&CxJ$9~Wn}lP5=0^40r@d5Y;#}Gznsaa^lGNU>vwG>5`^>Lj zN2)I#xdBn(SzE5tlDK{;`U}VcPG#4|`-X18ud&~>W(&8EdI+7o?F`c0kk8k|h2OQm zBKKo!Yl}{8nRMH4RicGSZX!D|Sx?H{J!>JZSFQy&FMlf;Zk4~=YgI7?tj)1&_po~j z#xmqP#X2p(mys*kDldTwBfbPp^z~q|aLVoS_1CYZa7YePL2TjtKU~ej)X=bG-I|Tp zZ|zb<1R*R_w7&CD3H@}yQR|X-IR2*u{08%{g1n-W_8JnI=$9~RtH%rlB(LULgW?*O zw2MzY*YZkvHNPc9dhdTtK)-R}eHlNjk%#{LUJMNu9!p`q%4@lq{EObj4W-HI3Tk`z ztOEAJHx|LMN8S6!A~01)3lA0ap8)c4>^l4(Xa~y0aKL?BA(4ihx{8|`63B1KQY#Ic z(DewP-OinrzG#7l@GE?WJayZzixPr82MsjIFRAfgD*B!ltWZEy>@N1qD58RuJ2UptAqaKTf!d)ft#9a>)5*2d%`&eNQ_na2ixp&|D z$%X#E`@!Bnc=hP#{_yZ${#g4TgHk;RqHZq97Cpv2T++r8Sz&ogI>YmFsqO|;wiazk z8?PxPsypQkxbC`38^7$|e@ zyL!?oJ_o{{FzgYYVZ5bW5{P6>JxIp5Cr5&cflbCrJxSww)pc3Fl$nf^APiokEQM4> zq#JO(t}8jH|CMfoK&`+7P7Yc^xn2q?{414%bR=>jand{pQR8kG#&H~#gDuI~ARY8w z8We?jA8RoXqX%2-59tAu( zYU)QO1~iBIC;%v)D!uh^C?4ucn&*2&w4oTtaizy~#c{1h{Sc~FV0Pm|S{2npV@BA0 zZ{UVqsgEA$a#G|O?}l&5cn@NfPJ~}9f5bXG*uKWF`6B#{(m`lvJWmHZNS{(x$}njB zft+boR6}6~^EB>p*_DJ_4GozNVu_AmO2?AM>!1)0xJ}gnQ32F2s`M)%I4HU0*(xI& zB5C82D(U9iQ{ChoVuuu@6UjL*l_owyp&y{b=;$=p$cf!k>C`4y65k~WN%Im){cL-kwI7xiyc9Hdl_61&cSrT zi>@czxnxW@qPv5e>wug_6zzS$NdVt0!~SepVv8u96nD}|W&F7wAz3wWL&L7CFQ_He zpcGVn-{PcsWvE7PNf~zWunQ@nPt;otx-2aeN#`X>*CKJdaVed@v)r4UgYWRuaFrsp zkgWzGR1oD1zhQ^4LBS~OiRfU2{y_BEO6Z|oNaxYuD2mX~(6T1Oa8tRIPNa=D(#D%< zgC3v~Kb6unE|sPFZ&F7*eS^M*s&7}7`kA`?b15wtQx)DJ)L^Xi8|Vt80B;OP()=LF zwxdS@8NA#^ml~Io@k&I6x6;OywDES*c!zdKMxZLmLJ;;;tlhUnYzkpCT)NP`sosq^ zQWqhal#->{5HFL+3&jM5gy^<%*7zqe zWK6D=rJUS*=nol4k4z&bXxwblcw(mHZNvR)(SRUE<&x~mwF;)H0zpZVC23qG@v;@a zZtp^n{1B)Zf2(mD##4Bz=rtAhf00nWYUO})J=qJzG4l`^bQh97IXbC%W4RX%>4mlz zLa0|AKzzHgiP@%Z#EYx=xs;bd#juNM72_793qwhk^dY_mXxOQIV;Rmz()|!s0Ibw1 z?m@2ruNx3#ach#@T5lN~FIQkfmva?5$P<4eXtt%_qlFx2w;M&S#;~)^He^!FO(!KP zzRyTQvT%1SN@0L`lu#}_VEVQ&+7H)by)KM~*29md9_?1jTtdnzpYn36ExLg_>JC*{&$UtNZHNE{cPCwyUq)o$icrUe{v@ z#$yLuVo& zqn#{FCwP=>8Xm+$T=Y@*$f)&+$5NbZrfLo@x2O0M(|~NIr|yvA8LYW4Y35eh&`K^S zn+b2n6dROQo@HU>a}v*hk;%+!Qbzy|xM6r=qyw*P+7r$mg=jV{b%7E2bGsnK7l|z$ zX@!75PP2JZdgP0;>A`xpWs`Kh^@k)W5dv(@<3z}ncYMyO&zCS$2P3Qyx}BVpoye9Y zw-WBtzehvp~gC%(KA;U`S!Op<0KNjSW8 z;j%c1?3qhIABC4x?k!!e81AFQ(iQ;fp+eJ1W6{g%1sRv828p<{*9atkNrrJFZG4~t zNp=wzfSO(-w&n$!S+O9qdAU;Wrk54055pj{{&U`}CE4q0A$#34kGt1W9>T)zU9#Ro zG9%EXLX9tllKF+}=1Pe%)9g)*XY#y>Ylf1%CBj>}++{}WveYB0ycLyY`xVAxY#Vee+1S(ZtI^c;E{9o1MyWI>H3!f$Cr99Kkmu}!L)Bgn|pS29D?#A2G+X%drT zb~@~iSR1Nu&7f+2ZaQKVVk8RX1_lSP^NsK4s)`Q0jtwv=e4Wu$EBSepn7j&7Pd+M} zW=n|%ML#TxL{aj5U+(y@!h&5DB^XGw_MX0|oy4wlzb}@CClw}$*AbO7Y zv?4Gd!51meMIV~CT*>nGa$nl`3EV9}Lxcj^JSo5R)nTlL9#MqdO-H>t{7gL>!M>I( zLLv^XNO>CnP{0#i;ho9W9HgzL+0XIIBQnzdNs-k!F?9sQIL&Ur<~+C}z7i+vrcKhn zba7OpT%11UX~4xe-ZcAV+ITO`eq}BEsuc(kgO_dS=oyPbC_+rDCMB3bLWN!hDOkn< zhh)e?DvD87u9k~qn`p~AvN(pJ*h~~=gQwJ9E7T%}qd16})iFbK6=G^;L0UwhArF$> z!1Uk|95~F&8)P?#dKQ^hDF?9#ShGnCsLO~+?F~BwLAWpkg&j)pC=vn4Z3{tVV#*Z@ zW3$L8cST`T!8^4A4b{0p7GzJS5Gw2e&=%=pb2~;90?Jt|&KllBF;6z`Sd7!=eQ8z^ zl^Iyw$2D2BVbn=Md>`_w>+f*ijN^lTmMTGpE$FwZEuJId4v5l%T3#4GLm0X%S_*z`g`Tt&;kd&H|H+&i za9`un+^#1^{psQxj4$&$X$uo(75`{+xrZuSsgh=Q^Jl5wX10aY8t>TuWlQ@r!co#j zkWM00)6HF$@!ggsUTQr}`==SAus(0F6p#7DCD~9p(+pMc_Zp)tV3W|YZZ(7bPj>y6 zQaKDGd;A3kO$F`c-?j)%qZ}~xXC@puTfEX+4~9t569tF|8%t({8%wPUkQgbjm@|x% z#kZ|WHr=iw875|ex7OUh+x0)}`kzQ_l%8N*rm+{IaaBI^1lG~sJ-Nl6Wox_dDucD}>V0C7l@Bzxw)f&)&ZCy;n-k?R>1nN?lhvuFIzaE^J?PWHfej;pynn zf8JfX_U^lS{r;n+-F-jaUHapT7nQbecZmwF6zYQbxss~z`Sw^41g`WdxeUq==1y!7 zLomW;j?YOXu<KG>xj9j2rgdOwd-~?S;P#%3A(OBa`q+zL#+yr@%wx6;jA8P>RtU$e~%N1)v_RdO}|5EzZ zuAZS956xb^4OuBngV`vv5hORhW#eB&aWGZ^Im1DvFY8T`XmS0Y(7p{!|FkG%Z{I22 zrh2TjKzJn-h`%t<=3UjXeEb8X=OEbgD)HAvIsr=Yh)T#Nzn&9U^JUqbLBbE(O3iMW4>?7D3(Y{d7_FqlwRs`gkFYRu^{PIDXHC}&KP-%q05=~K{}@xjL#bDC08ylB|&NL2oQ=@YJ}Rc6CNcWM@ZKwf{V z0rZM-**rQ}t`qcA0#XS>GIXmFTly!yEV2?r{~{^+N5J2Pa;a4~)j%U-F za&Cv>RmVW}dPl+?j_AYasigDz6^JjyQdm_*F8xEKp{W9`dB%eIQki*;J=Fn!%LuhE71l zuApXLqY$~-w}}>+G0V`+TtRbGa@S-=pgrAS21nBnQ5{aqGst12EGp;`k&M$p38t=0 z`!3t)Y(@^iaLBe>rm4T2Ke3^{9#sWRdvR+9R${WKXyZkMr1d^6z|Ew1ZzhK6w)|aI znz>TV97Zt%8H|X*tCdD%bh(T~BeW``+cm;>A|o#1Q&CQphgc7_qR7^6-WqQyZD%Qx zdC>b(7lObOB(v+Nr7lyurYA7gby`=jQ@L$Xz;{jhHypUY?GJDJ0>{TcdHmS;*L2nz z2YlFhU#A1gDdcc&GH|sWPmb@mV?w`r{M1)Ir4#TdIQsI=9S`ofA0Y8yE0eQIIV$d~ z&R!Z+t$Hh`ZlzOxO;e};w2tb=)RFY`7w+4!^MFpU<0v8K&jVK`VaL5Y?sM+pz&)^{ z%8nJs#S|y{-1P`2+xTONcOO1<=)QZY`e5Mhze!bpV$G_G_dmoolfXT6%Xwy_Q*J92u(an^S|!pUGqXTLOl>J(Hl%pY`aYv2Z+8r%Q)-b0U% z?b~G3@i&+LEtAS<2%w{s=z{HU9!{6X?}J>pL^n|tB#j6Wa9U;=Va;2yhq&GzYM zGspJMynN)DV;uaZbF@#)zI5c2Q2R6|n|wBKV>gEbAI4rh!+A9-#u+p^{b?l_i1fL@ zefH*Hlv^-Y$71;t&p6g@1+1OBoO?QOledQDxy^Y|zkB?JJ+qux^96+Y^QR6Y%_~7Z zxYM}Th`}3bxLU{-%j|T4Hl~Cx> z6Q|UrLkCVD@%=2Mv-9|PW8r!nvnM+^Gya4>(CF(&p60Bix{gykGIO{-a*V^K9 zJA~9BB^Sup(UdRe$E6+K?%dY`cUrws>jf>IIdKGl7^gF<@m{aQhrs-BPGkct^l6xJ z;U{lF#-erSZVOzZ!ggSKJ6R0r_*d9p#)m^f)T~(o2(^ zUg+jdzj&O333nWRi47S1`|oYQSl!GTcxw{^tF#sIS(zuFo$Cba%d~Dx|2_dU$4W!39n_j+zmCmsnX&@zyQO{L8i3OoO8J#` zYaxwT8UGX9y6$AX8Z>Z^xR|?cce- z6^wfc71}VKrT5wt(C*)TtUuq$M?V~nx1~*nNk$>9b2|l1w1lzPT5&UcwT@kj9UVVE z8v;Wsq_zFc|6I3D+!5wqV$~hnVN7iISzB67t#naVrHlURO>6f)T$`TGT6?H + + + + PH_UseRemoteButton + DoorsExpanded.JobDriver_UseRemoteButton + using TargetA. + false + true + + + diff --git a/1.4/Defs/ResearchProjectDefs/Heron_ResearchProjects.xml b/1.4/Defs/ResearchProjectDefs/Heron_ResearchProjects.xml new file mode 100644 index 0000000..63212f7 --- /dev/null +++ b/1.4/Defs/ResearchProjectDefs/Heron_ResearchProjects.xml @@ -0,0 +1,66 @@ + + + + + Heron_ResearchTab + + + + ProjectHeron_Curtains + + Unlocks simple construction techniques to make rings, simple hooks, and poles for the production of curtains, which open far faster than standard doors, but slowly vent temperatures between rooms. + Neolithic + 200 + 0 + 2 + +
  • ClassicStart
  • +
  • TribalStart
  • +
    +
    + + + ProjectHeron_PrisonDoors + + Provides simple prison doors to keep inmates safe, well, mostly. + 500 + Medieval + 1 + 2 + + + + ProjectHeron_RemoteDoors + + Unlocks remote doors for remote containment as well as buttons and levers to manipulate them. + 800 + Industrial + 1 + 3 + + + + ProjectHeron_Gates + + Hinges and fastening techniques allow for the construction of swinging doors, such as large gates. + 200 + Neolithic + 0 + 3 + +
  • ClassicStart
  • +
    +
    + + + ProjectHeron_BlastDoors + + Allows for the production of blast absorbing pressurized blast doors. + 3000 + Industrial + HiTechResearchBench + 2 + 2 + + +
    diff --git a/1.4/Defs/ResearchProjectDefs/Heron_ResearchTab.xml b/1.4/Defs/ResearchProjectDefs/Heron_ResearchTab.xml new file mode 100644 index 0000000..6866b4a --- /dev/null +++ b/1.4/Defs/ResearchProjectDefs/Heron_ResearchTab.xml @@ -0,0 +1,9 @@ + + + + + Heron_ResearchTab + + + + diff --git a/1.4/Defs/SoundDef/Heron_Sounds.xml b/1.4/Defs/SoundDef/Heron_Sounds.xml new file mode 100644 index 0000000..6f2bac3 --- /dev/null +++ b/1.4/Defs/SoundDef/Heron_Sounds.xml @@ -0,0 +1,150 @@ + + + + + HeronGarageOpen + MapOnly + 1 + +
  • + False + +
  • + Misc/RemoteDoor/GarageOpen +
  • + + 3 + 0.85~1.15 + +
    +
    + + + HeronGarageClose + MapOnly + 1 + +
  • + False + +
  • + Misc/RemoteDoor/GarageClose +
  • + + 3 + 0.85~1.15 + +
    +
    + + + HeronCurtainOpen + MapOnly + 1 + +
  • + False + +
  • + Misc/Curtain/CurtainOpen +
  • + + 3 + 0.85~1.15 + +
    +
    + + + HeronCurtainClose + MapOnly + 1 + +
  • + False + +
  • + Misc/Curtain/CurtainClose +
  • + + 3 + 0.85~1.15 + +
    +
    + + + + HeronJailDoorOpen + MapOnly + 1 + +
  • + False + +
  • + Misc/JailDoor/JailDoorOpen +
  • + + 3 + 0.85~1.15 + +
    +
    + + + HeronJailDoorClose + MapOnly + 1 + +
  • + False + +
  • + Misc/JailDoor/JailDoorClose +
  • + + 3 + 0.85~1.15 + +
    +
    + + + + HeronBlastDoorOpen + MapOnly + 1 + +
  • + False + +
  • + Misc/BlastDoor/BlastDoorOpen +
  • + + 3 + 0.85~1.15 + +
    +
    + + + HeronBlastDoorClose + MapOnly + 1 + +
  • + False + +
  • + Misc/BlastDoor/BlastDoorClose +
  • + + 3 + 0.85~1.15 + +
    +
    + +
    diff --git a/1.4/Defs/Stats/DoorOpenTime.xml b/1.4/Defs/Stats/DoorOpenTime.xml new file mode 100644 index 0000000..5db6e70 --- /dev/null +++ b/1.4/Defs/Stats/DoorOpenTime.xml @@ -0,0 +1,43 @@ + + + + + + DoorOpenTime + DoorsExpanded.StatWorker_DoorOpenTime + + The amount of seconds it takes for the door to open.\n\nSlow doors will slow down everyone who uses them. + Building + FloatMaxTwo + {0} s + 3104 + true + + + + + PoweredDoorOpenTime + DoorsExpanded.StatWorker_DoorOpenTime + + The amount of seconds it takes for the door to open if powered.\n\nSlow doors will slow down everyone who uses them. + Building + FloatMaxTwo + {0} s + 3103 + true + + + + + UnpoweredDoorOpenTime + DoorsExpanded.StatWorker_DoorOpenTime + + The amount of seconds it takes for the door to open if unpowered.\n\nSlow doors will slow down everyone who uses them. + Building + FloatMaxTwo + {0} s + 3102 + true + + + diff --git a/1.4/Defs/ThingDef_Building/Heron_Base.xml b/1.4/Defs/ThingDef_Building/Heron_Base.xml new file mode 100644 index 0000000..28d017d --- /dev/null +++ b/1.4/Defs/ThingDef_Building/Heron_Base.xml @@ -0,0 +1,126 @@ + + + + + + + + +
  • Buildings
  • +
    + MinifiedThing + +
  • Fabric
  • +
  • Leathery
  • +
    +
    + + + +
  • Metallic
  • +
    +
    + + + +
  • Metallic
  • +
  • Woody
  • +
  • Stony
  • +
    +
    + + + + + DoorsExpanded.Building_DoorExpanded + Building + DoorMoveable + 1 + true + + + 250 + 1.0 + + false + true + Normal + + true + BulletImpact_Metal + true + Light + Structure + true + 1.0 + true + RealtimeOnly + + true + true + Door_OpenPowered + Door_ClosePowered + Door_OpenManual + Door_CloseManual + false + + + +
  • + + +
  • PlaceWorker_DoorLearnOpeningSpeed
  • + +
    + + + + HeronInvisibleDoor + + DoorsExpanded.Building_DoorRegionHandler + Building + + Repair + + BlankTex + Graphic_Single + + false + + + + BlankTex + FloorEmplacement + 0 + false + false + false + false + true + false + Normal + false + Light + RealtimeOnly + + true + true + true + + +
  • + + + + diff --git a/1.4/Defs/ThingDef_Building/Heron_Doors.xml b/1.4/Defs/ThingDef_Building/Heron_Doors.xml new file mode 100644 index 0000000..8bb4593 --- /dev/null +++ b/1.4/Defs/ThingDef_Building/Heron_Doors.xml @@ -0,0 +1,643 @@ + + + + + + + PH_DoorDouble + + + 40 + 320 + 1700 + + 50 + (2,1) + + Things/Building/Door/DoorDouble_Mover + Graphic_Single + (2,1) + + + false + + + Things/Building/Door/DoorDouble_MenuIcon + +
  • + Door + true +
  • +
  • + Standard +
  • +
    +
    + + + PH_DoorTriple + + + 60 + 480 + 2550 + + 75 + (3,1) + + Things/Building/Door/DoorTriple_Mover + Graphic_Single + (3,1) + + + false + + + Things/Building/Door/DoorTriple_MenuIcon + +
  • + Door + true +
  • +
  • + Standard +
  • +
    +
    + + + PH_AutodoorDouble + + + 40 + 320 + 2200 + + + 80 + 4 + + 50 + (2,1) + + Things/Building/Door/AutodoorDouble_Mover + Graphic_Single + (2,1) + + + false + + + Things/Building/Door/AutodoorDouble_MenuIcon + +
  • + Autodoor + true +
  • +
  • + true + Standard +
  • +
  • + CompPowerTrader + 100 +
  • +
  • + + +
  • Autodoors
  • + + 6 +
    + + + PH_AutodoorTriple + + + 60 + 480 + 3300 + + + 120 + 6 + + 75 + (3,1) + + Things/Building/Door/AutodoorTriple_Mover + Graphic_Single + (3,1) + + + false + + + Things/Building/Door/AutodoorTriple_MenuIcon + +
  • + Autodoor + true +
  • +
  • + true + Standard +
  • +
  • + CompPowerTrader + 150 +
  • +
  • + + +
  • Autodoors
  • + + 6 +
    + + + PH_DoorJail + + Sliding jail cell door with strong bars. + + 30 + 300 + 1500 + + + 30 + 2 + + 50 + (1,1) + false + + Things/Building/Door/JailCell_Mover + Graphic_Single + CutoutComplex + (1,1) + + + false + + + + HeronJailDoorOpen + HeronJailDoorClose + + +
  • + Standard + true + 0.8 + false +
  • +
    + +
  • ProjectHeron_PrisonDoors
  • +
    +
    + + + + + HeronCurtainTribal + + Divides rooms. Curtains are much faster to open than standard doors, but are flammable and slowly vent temperatures between rooms. + + 10 + 50 + 850 + 4.0 + 1.0 + + 25 + (1,1) + false + + HeronCurtainOpen + HeronCurtainClose + true + + + Things/Building/Door/Curtain_Mover + Graphic_Single + (1,1) + + + false + + + +
  • + true +
  • +
  • + Stretch + 6.0 + true +
  • +
    + +
  • ProjectHeron_Curtains
  • +
    +
    + + + HeronCurtainTribalDouble + + + 20 + 100 + 1700 + 4.0 + 2.0 + + 50 + (2,1) + + HeronCurtainOpen + HeronCurtainClose + true + + + Things/Building/Door/CurtainDouble_Mover + Graphic_Single + (2,1) + + + false + + + +
  • + HeronCurtainTribal + true +
  • +
  • + Stretch + 6.0 + true + (0.2,1) +
  • +
    + +
  • ProjectHeron_Curtains
  • +
    +
    + + + HeronCurtainTribalTriple + + + 30 + 150 + 2550 + 4.0 + 3.0 + + 75 + (3,1) + + HeronCurtainOpen + HeronCurtainClose + true + + + Things/Building/Door/CurtainTriple_Mover + Graphic_Single + (3,1) + + + false + + + +
  • + HeronCurtainTribal + true +
  • +
  • + Stretch + 6.0 + true + (0.2,1) +
  • +
    + +
  • ProjectHeron_Curtains
  • +
    +
    + + + + + PH_GateDoubleThick + + + 60 + 500 + 2500 + + 100 + (2,1) + + Things/Building/Door/GateDoubleThick_Mover + Graphic_Multi + (2,2) + + + false + + + Things/Building/Door/Gate_MenuUI + +
  • + Door + true +
  • +
  • + DoubleSwing + false + true +
  • +
    + +
  • ProjectHeron_Gates
  • +
    +
    + + + + + + PH_DoorBlastSingle + + A heavy door that is far more resilient to damage. + + 50 + 500 + 2000 + 0.25 + 0.5 + + + 40 + 4 + + 75 + (1,1) + false + Heavy + + Things/Building/Door/DoorBlastDoor_MoverSingle + Graphic_Single + (1,1) + + false + + + Things/Building/Door/BlastDoorSingleUI + + HeronBlastDoorOpen + HeronBlastDoorClose + + +
  • + true +
  • +
  • + true + Standard + false + (0,0,1) + + Things/Building/Door/DoorBlastDoorSingle + Graphic_Single + CutoutComplex + (1,1) + + false + + +
  • +
  • + CompPowerTrader + 50 +
  • +
  • + 2.0 +
  • +
    + +
  • JecsTools.PlaceWorker_Outline
  • +
    + +
  • ProjectHeron_BlastDoors
  • +
    + 6 +
    + + + PH_DoorBlastDoor + + A heavy pair of doors that are far more resilient to damage. + + 100 + 1000 + 4000 + 0.25 + 0.5 + + + 80 + 7 + + 150 + (2,1) + Heavy + + Things/Building/Door/DoorBlastDoor_Mover + Graphic_Multi + (2,1) + + false + + + Things/Building/Door/BlastDoorUI + + HeronBlastDoorOpen + HeronBlastDoorClose + + +
  • + true +
  • +
  • + true + Standard + true + false + + Things/Building/Door/DoorBlastDoor_MoverAsync + Graphic_Multi + (2,1) + + false + + + (0,0,1) + + Things/Building/Door/DoorBlastDoor_Frame + Graphic_Multi + CutoutComplex + (2,1) + + false + + + + Things/Building/Door/DoorBlastDoor_FrameAsync + Graphic_Multi + CutoutComplex + (2,1) + + false + + +
  • +
  • + CompPowerTrader + 100 +
  • +
  • + 2.0 +
  • +
    + +
  • JecsTools.PlaceWorker_Outline
  • +
    + +
  • ProjectHeron_BlastDoors
  • +
    + 6 +
    + + + PH_DoorThickBlastDoor + + + 200 + 2000 + 8000 + 0.25 + 0.5 + + + 160 + 14 + + 300 + (3,2) + Heavy + + Things/Building/Door/DoorBlastDoor_Mover + Graphic_Multi + (3,2) + + false + + + Things/Building/Door/BlastDoorUI + + HeronBlastDoorOpen + HeronBlastDoorClose + + +
  • + PH_DoorBlastDoor + true +
  • +
  • + true + Standard + true + false + + Things/Building/Door/DoorBlastDoor_MoverAsync + Graphic_Multi + (3,2) + + false + + + + Things/Building/Door/DoorBlastDoor_Frame + Graphic_Multi + CutoutComplex + (3,2) + + false + + + + Things/Building/Door/DoorBlastDoor_FrameAsync + Graphic_Multi + CutoutComplex + (3,2) + + false + + +
  • +
  • + CompPowerTrader + 200 +
  • +
  • + 2.0 +
  • +
    + +
  • JecsTools.PlaceWorker_Outline
  • +
    + +
  • ProjectHeron_BlastDoors
  • +
    + 6 +
    + +
    diff --git a/1.4/Defs/ThingDef_Building/Heron_RemoteDoorsAndButtons.xml b/1.4/Defs/ThingDef_Building/Heron_RemoteDoorsAndButtons.xml new file mode 100644 index 0000000..db0871a --- /dev/null +++ b/1.4/Defs/ThingDef_Building/Heron_RemoteDoorsAndButtons.xml @@ -0,0 +1,303 @@ + + + + + PH_DoorButton + + A button that connects to doors (functions the same as a lever). + DoorsExpanded.Building_DoorRemoteButton + Building + South + true + (0,0,1) + + false + + Things/Building/RemoteDoorButton/RemoteDoorButton_ON + Graphic_Multi + + (0.9,0.3,0.9) + + + (0.2,0,0.6,0.1) + + 2 + + + false + + Things/Building/RemoteDoorButton/RemoteDoorButton_OFF + Graphic_Multi + + (0.9,0.3,0.9) + + + (0.2,0,0.6,0.1) + + 2 + + BuildingOnTop + PassThroughOnly + 50 + ConstructDirt + Normal + RealtimeOnly + 0.40 + + 80 + 200 + 1 + + true + + 10 + 1 + + BulletImpact_Ground + true + 0.5 + +
  • JecsTools.PlaceWorker_OnTopOfWalls
  • +
    + true + +
  • + CompPowerTrader + 5 +
  • +
    + Structure + +
  • ProjectHeron_RemoteDoors
  • +
    +
    + + + PH_DoorLever + + A lever that connects to doors (functions the same as a button). + DoorsExpanded.Building_DoorRemoteButton + Building + South + true + (0,0,1) + + false + + Things/Building/RemoteDoorLever/RemoteDoorLever_ON + Graphic_Multi + + (0.9,0.3,0.9) + + + (0.2,0,0.6,0.1) + + 2 + + + false + + Things/Building/RemoteDoorLever/RemoteDoorLever_OFF + Graphic_Multi + + (0.9,0.3,0.9) + + + (0.2,0,0.6,0.1) + + 2 + + BuildingOnTop + PassThroughOnly + 50 + ConstructDirt + Normal + RealtimeOnly + 0.40 + + 40 + 100 + 1 + + true + + 5 + 1 + + BulletImpact_Ground + true + 0.5 + +
  • JecsTools.PlaceWorker_OnTopOfWalls
  • +
    + true + +
  • + CompPowerTrader + 1 +
  • +
    + Structure + +
  • ProjectHeron_RemoteDoors
  • +
    +
    + + + PH_DoorRemoteSingle + + Vertical sliding metal door. Uses less power than an autodoor but opens more slowly. + + 20 + 160 + 1000 + 0.25 + + + 20 + 1 + + 25 + (1,1) + false + + Things/Building/Door/DoorRemote_Mover + Graphic_Single + (1,1) + + + false + + + + HeronGarageOpen + HeronGarageClose + + +
  • + true +
  • +
  • + true + StretchVertical + true +
  • +
  • + CompPowerTrader + 15 +
  • +
  • + 2.0 +
  • +
    + +
  • ProjectHeron_RemoteDoors
  • +
    +
    + + + PH_DoorRemoteDouble + + + 40 + 320 + 2000 + 0.25 + + + 40 + 2 + + 50 + (2,1) + + Things/Building/Door/DoorDoubleRemote_Mover + Graphic_Single + (2,1) + + + false + + + + HeronGarageOpen + HeronGarageClose + + +
  • + PH_DoorRemoteSingle + true +
  • +
  • + true + StretchVertical + true +
  • +
  • + CompPowerTrader + 30 +
  • +
  • + 2.0 +
  • +
    + +
  • ProjectHeron_RemoteDoors
  • +
    +
    + + + PH_DoorRemoteTriple + + + 60 + 480 + 3000 + 0.25 + + + 60 + 3 + + 75 + (3,1) + + Things/Building/Door/DoorTripleRemote_Mover + Graphic_Single + (3,1) + + + false + + + + HeronGarageOpen + HeronGarageClose + + +
  • + PH_DoorRemoteSingle + true +
  • +
  • + true + StretchVertical + true +
  • +
  • + CompPowerTrader + 45 +
  • +
  • + 2.0 +
  • +
    + +
  • ProjectHeron_RemoteDoors
  • +
    +
    + +
    diff --git a/1.4/Defs/WorkGiverDefs/PH_WorkGivers.xml b/1.4/Defs/WorkGiverDefs/PH_WorkGivers.xml new file mode 100644 index 0000000..b5014ca --- /dev/null +++ b/1.4/Defs/WorkGiverDefs/PH_WorkGivers.xml @@ -0,0 +1,19 @@ + + + + + PH_UseRemoteButton + + DoorsExpanded.WorkGiver_UseRemoteButton + BasicWorker + 81 + use + using + +
  • Manipulation
  • +
    + true + true +
    + +
    diff --git a/1.4/Languages/ChineseSimplified-by-Juijote.txt b/1.4/Languages/ChineseSimplified-by-Juijote.txt new file mode 100644 index 0000000..e69de29 diff --git a/1.4/Languages/ChineseSimplified/Keyed/ProjectHeron_Keys.xml b/1.4/Languages/ChineseSimplified/Keyed/ProjectHeron_Keys.xml new file mode 100644 index 0000000..339a65e --- /dev/null +++ b/1.4/Languages/ChineseSimplified/Keyed/ProjectHeron_Keys.xml @@ -0,0 +1,25 @@ + + + + 断开按钮或控制杆 + 断开所有连接的按钮或控制杆。 + {0}需要远程打开电源。 + 使用按钮或控制杆 + 切换殖民者是否应该去激活或停用按钮或控制杆。 + 连接电源进行远程安全防护。 + 连接按钮或控制杆进行远程安全防护。 + 连接到按钮或控制杆 + 立即将遥控门连接到按钮 + 在 {0} 处成功设置新按钮或控制杆 + {0}无法设置新按钮 + 在 {0} 取消链接先前连接的按钮或控制杆 + 取消链接先前连接的按钮或控制杆 + 必须连接到遥控门 + 必须接通电源 + 远程安全防护 + 启用此设置后,只能通过对应按钮远程开关此门,此门关闭时,将处于锁定状态,无法出入。 当此设置关闭时,任何人都可以像使用普通门一样自由开关此门。 + + + 必须安装在墙上。 + + diff --git a/1.4/Languages/English/Keyed/ProjectHeron_Keys.xml b/1.4/Languages/English/Keyed/ProjectHeron_Keys.xml new file mode 100644 index 0000000..48539a1 --- /dev/null +++ b/1.4/Languages/English/Keyed/ProjectHeron_Keys.xml @@ -0,0 +1,29 @@ + + + + Doors Expanded + Log level (for debugging) + Normal + Debug + Stack Trace + + Can be opened and closed from a distance with a button or lever. + Disconnect button or lever + Disconnects any connected button or lever. + {0} requires power to be opened remotely. + Use {0} + Toggles whether or not a colonist should make their way over to activate or deactivate {0}. + Connect a power source to secure remotely. + Connect a button or lever to secure remotely. + Connect to a button or lever + Instantly links the remote door to a button or lever + Failed to set new button or lever from {0} + Must be connected to a remote door + Must be connected to power + Secured remotely + With this setting on, the door may only be opened remotely by using the corresponding button or lever. The door will act like it is in a locked state, no entry or exit, while closed. When this setting is off, characters may freely open and close the door like normal doors. + + + Must be placed on a wall. + + diff --git a/1.4/Languages/French-by-qux.txt b/1.4/Languages/French-by-qux.txt new file mode 100644 index 0000000..e69de29 diff --git a/1.4/Languages/French/DefInjected/JobDef/PH_Jobs.xml b/1.4/Languages/French/DefInjected/JobDef/PH_Jobs.xml new file mode 100644 index 0000000..1405b2a --- /dev/null +++ b/1.4/Languages/French/DefInjected/JobDef/PH_Jobs.xml @@ -0,0 +1,6 @@ + + + + Utilise TargetA. + + \ No newline at end of file diff --git a/1.4/Languages/French/DefInjected/ResearchProjectDef/Heron_ResearchProjects.xml b/1.4/Languages/French/DefInjected/ResearchProjectDef/Heron_ResearchProjects.xml new file mode 100644 index 0000000..ac05d32 --- /dev/null +++ b/1.4/Languages/French/DefInjected/ResearchProjectDef/Heron_ResearchProjects.xml @@ -0,0 +1,19 @@ + + + + Rideaux + Déverrouille des techniques de construction simples pour fabriquer des anneaux, des crochets simples et des tringles pour fabriquer des rideaux qui s'ouvrent beaucoup plus rapidement que les portes standard, mais libèrent lentement les températures entre les pièces. + + Portes de prison + Fournit des portes de prison simples pour protéger les détenus. + + Portes automatique + Déverrouille les portes automatique ainsi que les télécommandes pour les contrôler. + + Portails + Les charnières et les techniques de fixation permettent de construire des portes battantes. + + Portes anti-souffle + Permet la fabrication de portes résistantes aux explosions. + + \ No newline at end of file diff --git a/1.4/Languages/French/DefInjected/ResearchTabDef/Heron_ResearchTab.xml b/1.4/Languages/French/DefInjected/ResearchTabDef/Heron_ResearchTab.xml new file mode 100644 index 0000000..fa53eca --- /dev/null +++ b/1.4/Languages/French/DefInjected/ResearchTabDef/Heron_ResearchTab.xml @@ -0,0 +1,6 @@ + + + + Recherche de portes + + \ No newline at end of file diff --git a/1.4/Languages/French/DefInjected/ThingDef/Heron_Doors.xml b/1.4/Languages/French/DefInjected/ThingDef/Heron_Doors.xml new file mode 100644 index 0000000..2157e15 --- /dev/null +++ b/1.4/Languages/French/DefInjected/ThingDef/Heron_Doors.xml @@ -0,0 +1,58 @@ + + + + + + + + + + Porte de prison + Une porte de prison avec de solides barreaux. + + + + Rideaux + Sépare les chambres. Les rideaux s'ouvrent beaucoup plus rapidement que les portes conventionnelles, mais ils sont hautement inflammables et laissent lentement l'air passer entre les pièces. + + + + + + + Portail + + + + Porte anti-souffle + Une porte lourde qui est beaucoup plus résistante aux dommages que les portes classiques. + + Porte anti-souffle + Une paire de portes lourdes qui sont beaucoup plus résistantes aux dommages que les portes classique. + + + + diff --git a/1.4/Languages/French/DefInjected/ThingDef/Heron_RemoteDoorsAndButtons.xml b/1.4/Languages/French/DefInjected/ThingDef/Heron_RemoteDoorsAndButtons.xml new file mode 100644 index 0000000..01d5f36 --- /dev/null +++ b/1.4/Languages/French/DefInjected/ThingDef/Heron_RemoteDoorsAndButtons.xml @@ -0,0 +1,15 @@ + + + + Poignée de porte + Une poignée qui se connecte aux portes (fonctionne comme un levier). + + Levier de porte + Un levier qui se connecte aux portes (fonctionne comme un bouton). + + Porte automatique + Porte métallique coulissante verticale. Utilise moins d'énergie qu'une porte automatique mais s'ouvre plus lentement + + + + diff --git a/1.4/Languages/French/DefInjected/WorkGiverDef/PH_WorkGivers.xml b/1.4/Languages/French/DefInjected/WorkGiverDef/PH_WorkGivers.xml new file mode 100644 index 0000000..a408c8a --- /dev/null +++ b/1.4/Languages/French/DefInjected/WorkGiverDef/PH_WorkGivers.xml @@ -0,0 +1,9 @@ + + + + Utilise TargetA + Utiliser + Utilise + + + \ No newline at end of file diff --git a/1.4/Languages/French/Keyed/ProjectHeron_Keys.xml b/1.4/Languages/French/Keyed/ProjectHeron_Keys.xml new file mode 100644 index 0000000..2802c93 --- /dev/null +++ b/1.4/Languages/French/Keyed/ProjectHeron_Keys.xml @@ -0,0 +1,23 @@ + + + + Peut être ouvert et fermé à distance avec un bouton ou un levier. + Bouton ou levier de déconnexion + Déconnecte tous les boutons ou leviers attachés. + {0}Une alimentation électrique doit être établie pour ouvrir la porte. + Utilise {0}. + Indique si un colon doit passer pour activer ou désactiver {0}. + Connectez une source d'alimentation pour assurer le contrôle à distance. + Connectez un bouton ou un levier pour la télécommande. + Connectez-vous avec un bouton ou un levier + Connecte instantanément la porte avec un bouton + Le nouveau bouton n'a pas pu être défini{0} + Doit être connecté à une porte télécommandée + Doit être connecté à l'alimentation + Télécommandé + Lorsque ce paramètre est activé, la porte ne peut être ouverte qu'à distance en appuyant sur le bouton approprié. La porte se comporte comme si elle était verrouillée, sans entrée ni sortie tant qu'elle est fermée. Lorsque ce paramètre est désactivé, les personnes peuvent ouvrir et fermer librement la porte comme des portes normales. + + + Doit être placé sur un mur. + + diff --git a/1.4/Languages/German/DefInjected/JobDef/PH_Jobs.xml b/1.4/Languages/German/DefInjected/JobDef/PH_Jobs.xml new file mode 100644 index 0000000..f371a6b --- /dev/null +++ b/1.4/Languages/German/DefInjected/JobDef/PH_Jobs.xml @@ -0,0 +1,7 @@ + + + + Benutze TargetA. + + + \ No newline at end of file diff --git a/1.4/Languages/German/DefInjected/ResearchProjectDef/Heron_ResearchProjects.xml b/1.4/Languages/German/DefInjected/ResearchProjectDef/Heron_ResearchProjects.xml new file mode 100644 index 0000000..c40a870 --- /dev/null +++ b/1.4/Languages/German/DefInjected/ResearchProjectDef/Heron_ResearchProjects.xml @@ -0,0 +1,20 @@ + + + + Einfache Vorhänge + Schaltet einfache Konstruktionstechniken zur Herstellung von Ringen, einfachen Haken und Stangen für die Herstellung von Vorhängen frei, die sich weitaus schneller öffnen als Standardtüren, jedoch die Temperaturen zwischen den Räumen langsam ablassen. + + Häftlingskontrolle + Bietet einfache Gefängnistüren, um die Insassen größtenteils zu schützen. + + Fernbediente Türen + Schalte Fernbedienbare Türen für die ferngesteuerte Kontrolle sowie Knöpfe und Hebel frei, um sie zu kontrollieren. + + Scharniere und Tore + Scharniere und Befestigungstechniken ermöglichen den Bau von Pendeltüren, z. B. großen Toren. + + Explosionsschutztüren + Ermöglicht die Herstellung von druckstoßabsorbierenden Türen. + + + \ No newline at end of file diff --git a/1.4/Languages/German/DefInjected/ResearchTabDef/Heron_ResearchTab.xml b/1.4/Languages/German/DefInjected/ResearchTabDef/Heron_ResearchTab.xml new file mode 100644 index 0000000..bc429c8 --- /dev/null +++ b/1.4/Languages/German/DefInjected/ResearchTabDef/Heron_ResearchTab.xml @@ -0,0 +1,7 @@ + + + + Türforschung + + + \ No newline at end of file diff --git a/1.4/Languages/German/DefInjected/ThingDef/Heron_Doors.xml b/1.4/Languages/German/DefInjected/ThingDef/Heron_Doors.xml new file mode 100644 index 0000000..8cd0213 --- /dev/null +++ b/1.4/Languages/German/DefInjected/ThingDef/Heron_Doors.xml @@ -0,0 +1,58 @@ + + + + + + + + + + Gefängnistür + Schiebegefängniszellentür mit starken Metallstangen. + + + + Vorhang (Stamm) + Teilt Räume. Vorhänge lassen sich viel schneller öffnen als Standardtüren, sind jedoch entflammbar und lüften langsam die Temperaturen zwischen den Räumen. + + + + + + + Tor + + + + Explosionsschutztür + Eine schwere Tür, die viel widerstandsfähiger gegen Beschädigungen ist. + + Explosionsschutztür + Ein schweres Türenpaar, das viel widerstandsfähiger gegen Beschädigungen ist. + + + + diff --git a/1.4/Languages/German/DefInjected/ThingDef/Heron_RemoteDoorsAndButtons.xml b/1.4/Languages/German/DefInjected/ThingDef/Heron_RemoteDoorsAndButtons.xml new file mode 100644 index 0000000..c3bd6bf --- /dev/null +++ b/1.4/Languages/German/DefInjected/ThingDef/Heron_RemoteDoorsAndButtons.xml @@ -0,0 +1,15 @@ + + + + Türknopf + Eine Taste, die mit Türen verbunden wird (funktioniert wie ein Hebel). + + Türhebel + Ein Hebel, der mit Türen verbunden wird (funktioniert wie ein Knopf). + + Fernbedienbare Tür + Vertikale Metallschiebetür. Teilt Räume. + + + + diff --git a/1.4/Languages/German/DefInjected/WorkGiverDef/PH_WorkGivers.xml b/1.4/Languages/German/DefInjected/WorkGiverDef/PH_WorkGivers.xml new file mode 100644 index 0000000..691c76d --- /dev/null +++ b/1.4/Languages/German/DefInjected/WorkGiverDef/PH_WorkGivers.xml @@ -0,0 +1,9 @@ + + + + Benutze TargetA + Benutze + Benutzt + + + \ No newline at end of file diff --git a/1.4/Languages/German/Keyed/ProjectHeron_Keys.xml b/1.4/Languages/German/Keyed/ProjectHeron_Keys.xml new file mode 100644 index 0000000..6862325 --- /dev/null +++ b/1.4/Languages/German/Keyed/ProjectHeron_Keys.xml @@ -0,0 +1,23 @@ + + + + Kann mit einem Knopf aus der Ferne geöffnet und geschlossen werden. + Knopf oder Hebel trennen + Trennt alle angeschlossenen Knöpfe oder Hebel. + {0} Zum Öffnen der Tür muss eine Stromversorgung hergestllt werden. + Benutzen Sie {0}. + Schaltet ein oder aus, ob ein Kolonist vorbeikommen soll, um {0} zu aktivieren oder zu deaktivieren. + Schließen Sie eine Stromquelle an, um die Fernbedienbarkeit zu gewährleisten. + Schließen Sie einen Knopf oder Hebel an, um eine Fernbedienbarkeit zu gewährleisten. + Mit einem Knopf oder Hebel verbinden + Verbindet die Tür sofort mit einem Knopf + Neuer Knopf konnte nicht festgelegt werden {0} + Muss an eine Fernbedienbare Tür angeschlossen werden + Muss an die Stromversorgung angeschlossen sein + Ferngesteuert + Wenn diese Einstellung aktiviert ist, kann die Tür nur durch Drücken der entsprechenden Taste aus der Ferne geöffnet werden. Die Tür verhält sich so, als wäre sie verriegelt, kein Ein- oder Ausgang, solange sie geschlossen ist. Wenn diese Einstellung deaktiviert ist, können Menschen die Tür wie normale Türen frei öffnen und schließen.. + + + Muss an eine Wand gestellt werden. + + diff --git a/1.4/Languages/Japanese/DefInjected/JobDef/PH_Jobs.xml b/1.4/Languages/Japanese/DefInjected/JobDef/PH_Jobs.xml new file mode 100644 index 0000000..552ea86 --- /dev/null +++ b/1.4/Languages/Japanese/DefInjected/JobDef/PH_Jobs.xml @@ -0,0 +1,6 @@ + + + + TargetAを使用中 + + \ No newline at end of file diff --git a/1.4/Languages/Japanese/DefInjected/ResearchProjectDef/Heron_ResearchProjects.xml b/1.4/Languages/Japanese/DefInjected/ResearchProjectDef/Heron_ResearchProjects.xml new file mode 100644 index 0000000..b710983 --- /dev/null +++ b/1.4/Languages/Japanese/DefInjected/ResearchProjectDef/Heron_ResearchProjects.xml @@ -0,0 +1,16 @@ + + + + 簡素なカーテン + 標準的なドアよりも素早く開く事ができるカーテンの製造するのに、リングと簡単なフック、ポールを取り付けるための簡単な建築技術のロックを解除します。ただしカーテンで仕切られている部屋同士や屋外の熱がゆっくりと入ってきます。 + + 囚人の隔離 + 基本的な隔離技術です。 + + ちょうつがいとゲート + ちょうつがいと留め金具の技術は、大きなゲートのような開き戸の建設を可能にします。 + + ブラストドア + 爆発の圧力を吸収して内部の人や物を守る防爆扉の建設を可能にします。 + + \ No newline at end of file diff --git a/1.4/Languages/Japanese/DefInjected/ResearchTabDef/Heron_ResearchTab.xml b/1.4/Languages/Japanese/DefInjected/ResearchTabDef/Heron_ResearchTab.xml new file mode 100644 index 0000000..c592e09 --- /dev/null +++ b/1.4/Languages/Japanese/DefInjected/ResearchTabDef/Heron_ResearchTab.xml @@ -0,0 +1,6 @@ + + + + Doors + + \ No newline at end of file diff --git a/1.4/Languages/Japanese/DefInjected/ThingDef/Heron_Doors.xml b/1.4/Languages/Japanese/DefInjected/ThingDef/Heron_Doors.xml new file mode 100644 index 0000000..d37eac0 --- /dev/null +++ b/1.4/Languages/Japanese/DefInjected/ThingDef/Heron_Doors.xml @@ -0,0 +1,59 @@ + + + + + + + + + + 囚人用ドア + 強力な鉄格子を持ちスライドさせて開閉する刑務所用の囚人部屋のドアです. + + + + カーテン (部族) + 部屋を隔てる手動扉です.カーテンは標準的なドアよりも素早く開く事ができますが,可燃性なのと換気口のように仕切られた空間同士の温度が通り抜けます. + + + + + + + ゲート + + + + ブラストドア + 損傷に対してはるかに弾力性のある重いドア。 + + ブラストドア + 損傷に対してはるかに弾力性のある重いドアのペア。 + + + + diff --git a/1.4/Languages/Japanese/DefInjected/ThingDef/Heron_RemoteDoorsAndButtons.xml b/1.4/Languages/Japanese/DefInjected/ThingDef/Heron_RemoteDoorsAndButtons.xml new file mode 100644 index 0000000..025d4ca --- /dev/null +++ b/1.4/Languages/Japanese/DefInjected/ThingDef/Heron_RemoteDoorsAndButtons.xml @@ -0,0 +1,15 @@ + + + + ドアボタン + ドアを操作するボタン(レバーと同じ機能)です. + + ドアレバー + ドアを操作するレバー(ボタンと同じ機能)です. + + 遠隔ドア + 垂直にスライドする金属製のドアです.部屋を分割します. + + + + diff --git a/1.4/Languages/Japanese/DefInjected/WorkGiverDef/PH_WorkGivers.xml b/1.4/Languages/Japanese/DefInjected/WorkGiverDef/PH_WorkGivers.xml new file mode 100644 index 0000000..e036e7d --- /dev/null +++ b/1.4/Languages/Japanese/DefInjected/WorkGiverDef/PH_WorkGivers.xml @@ -0,0 +1,8 @@ + + + + TargetAを使用 + 使用 + 使用 + + \ No newline at end of file diff --git a/1.4/Languages/Japanese/Keyed/ProjectHeron_Keys.xml b/1.4/Languages/Japanese/Keyed/ProjectHeron_Keys.xml new file mode 100644 index 0000000..38318b1 --- /dev/null +++ b/1.4/Languages/Japanese/Keyed/ProjectHeron_Keys.xml @@ -0,0 +1,23 @@ + + + + ボタンで遠くから開閉できます。 + ボタンやレバーを解除 + 接続されているボタンまたはレバーを解除します。 + {0}を遠隔操作で開く必要があります。 + {0}を使用 + 入植者が{0}の操作をできるのか、できないかを切り替えます。 + 遠隔操作で安全を確保するために電源に接続してください。 + ボタンやレバーを接続して遠隔操作で安全を確保します。 + ボタンに接続 + 離れていても操作できるように遠隔ドアをドアボタンやドアレバーに接続します。 + 新しい操作ボタン(座標:{0})に設定できませんでした + 遠隔操作するドアに接続する必要があります + 電源に接続する必要があります + 遠隔ドアを施錠 + この設定がオンの場合、ドアは対応するボタンを押すことによってのみ遠隔操作で開くことができます。閉じられている間、ドアはロックされた状態、つまり出入り口とはならない状態になります。この設定がオフの場合、ポーン(人間や動物)は通常のドアのようにドアを自由に開閉できます。 + + + 壁に置く必要があります。 + + diff --git a/1.4/Languages/Korean-by-MarinHigh.txt b/1.4/Languages/Korean-by-MarinHigh.txt new file mode 100644 index 0000000..e69de29 diff --git a/1.4/Languages/Korean/DefInjected/ThingDef/Heron_Doors.xml b/1.4/Languages/Korean/DefInjected/ThingDef/Heron_Doors.xml new file mode 100644 index 0000000..6700408 --- /dev/null +++ b/1.4/Languages/Korean/DefInjected/ThingDef/Heron_Doors.xml @@ -0,0 +1,59 @@ + + + + + + + + + + 감옥 문 + 튼튼한 창살이 있는 미닫이식 감방 문입니다. + + + + 커튼 (부족민) + 방을 나눕니다. 커튼은 평범한 문보다 훨씬 빨리 열리지만, 불탈 수 있고 서서히 방 사이의 온도를 전달합니다. + + + + + + + 관문 + + + + 방폭 문 + 손상에 훨씬 더 탄력적인 무거운 문. + + 방폭 문 + 손상에 훨씬 더 탄력적인 무거운 한 쌍의 문. + + + + diff --git a/1.4/Languages/Polish-by-sma342.txt b/1.4/Languages/Polish-by-sma342.txt new file mode 100644 index 0000000..e69de29 diff --git a/1.4/Languages/Polish/DefInjected/ThingDef/Heron_Doors.xml b/1.4/Languages/Polish/DefInjected/ThingDef/Heron_Doors.xml new file mode 100644 index 0000000..3be8d0a --- /dev/null +++ b/1.4/Languages/Polish/DefInjected/ThingDef/Heron_Doors.xml @@ -0,0 +1,59 @@ + + + + + + + + + + więzienne drzwi + Przesuwane więzienne drzwi z mocnymi kratami. + + + + kurtyna (plemienna) + Rozdziela pomieszczenia. Kurtyny otwierają się szybciej niż zwykłe drzwi, ale są łatwopalne i powoli przepuszczają temperatury z innych pomieszczeń. + + + + + + + brama + + + + drzwi pancerne + Ciężkie drzwi, które są znacznie bardziej odporne na uszkodzenia. + + drzwi pancerne + Ciężka para drzwi, które są znacznie bardziej odporne na uszkodzenia. + + + + diff --git a/1.4/Languages/Portuguese/DefInjected/ThingDef/Heron_Doors.xml b/1.4/Languages/Portuguese/DefInjected/ThingDef/Heron_Doors.xml new file mode 100644 index 0000000..79c55e9 --- /dev/null +++ b/1.4/Languages/Portuguese/DefInjected/ThingDef/Heron_Doors.xml @@ -0,0 +1,59 @@ + + + + + + + + + + porta de cela + Uma porta de cadeia deslisante com barras bem fortes. + + + + cortina (tribal) + Divide as salas. As cortinas são bem mais rápidas para abrir do que as portas normais, porém são bem inflamáveis e tenta equilibrar a temperatura entre salas. + + + + + + + portão + + + + portão blindado/anti-explosão + Uma porta pesada que é muito mais resistente a danos. + + portão blindado/anti-explosão + Um par de portas pesadas que são muito mais resistentes a danos. + + + + diff --git a/1.4/Languages/PortugueseBrazilian-by-Freewayz.txt b/1.4/Languages/PortugueseBrazilian-by-Freewayz.txt new file mode 100644 index 0000000..e69de29 diff --git a/1.4/Languages/PortugueseBrazilian/DefInjected/ThingDef/Heron_Doors.xml b/1.4/Languages/PortugueseBrazilian/DefInjected/ThingDef/Heron_Doors.xml new file mode 100644 index 0000000..79c55e9 --- /dev/null +++ b/1.4/Languages/PortugueseBrazilian/DefInjected/ThingDef/Heron_Doors.xml @@ -0,0 +1,59 @@ + + + + + + + + + + porta de cela + Uma porta de cadeia deslisante com barras bem fortes. + + + + cortina (tribal) + Divide as salas. As cortinas são bem mais rápidas para abrir do que as portas normais, porém são bem inflamáveis e tenta equilibrar a temperatura entre salas. + + + + + + + portão + + + + portão blindado/anti-explosão + Uma porta pesada que é muito mais resistente a danos. + + portão blindado/anti-explosão + Um par de portas pesadas que são muito mais resistentes a danos. + + + + diff --git a/1.4/Languages/Russian-by-kr33man.txt b/1.4/Languages/Russian-by-kr33man.txt new file mode 100644 index 0000000..e69de29 diff --git a/1.4/Languages/Russian/DefInjected/ResearchProjectDef/Heron_ResearchProjects.xml b/1.4/Languages/Russian/DefInjected/ResearchProjectDef/Heron_ResearchProjects.xml new file mode 100644 index 0000000..84e6ae8 --- /dev/null +++ b/1.4/Languages/Russian/DefInjected/ResearchProjectDef/Heron_ResearchProjects.xml @@ -0,0 +1,17 @@ + + + + простые шторы + Открывает простые строительные технологии для изготовления колец, простых крючков и шестов для производства штор, которые открываются намного быстрее, чем стандартные двери, но медленно пропускают воздух между комнатами. + + содержание заключенных + Базовое + + петли и ворота + Петли и способ скрепления позволяют создавать раздвижные двери, такие как большие ворота. + + взрывозащищенные двери + Позволяет производить герметичные взрывозащищенные двери. + + + \ No newline at end of file diff --git a/1.4/Languages/Russian/DefInjected/ResearchTabDef/Heron_ResearchTab.xml b/1.4/Languages/Russian/DefInjected/ResearchTabDef/Heron_ResearchTab.xml new file mode 100644 index 0000000..80b6f5a --- /dev/null +++ b/1.4/Languages/Russian/DefInjected/ResearchTabDef/Heron_ResearchTab.xml @@ -0,0 +1,7 @@ + + + + исследование дверей + + + \ No newline at end of file diff --git a/1.4/Languages/Russian/DefInjected/ThingDef/Heron_Doors.xml b/1.4/Languages/Russian/DefInjected/ThingDef/Heron_Doors.xml new file mode 100644 index 0000000..323a36d --- /dev/null +++ b/1.4/Languages/Russian/DefInjected/ThingDef/Heron_Doors.xml @@ -0,0 +1,59 @@ + + + + + + + + + + тюремная дверь + Раздвижная дверь тюремной камеры с прочной решеткой. + + + + занавес (племя) + Разделяет комнаты. Занавесы открываются гораздо быстрее обычных дверей, но легко воспламеняются и медленно пропускают воздух между комнатами. + + + + + + + ворота + + + + взрывозащищенная дверь + Тяжелая дверь, более устойчивая к повреждениям. + + взрывозащищенная дверь + Тяжелая пара дверей, которые гораздо более устойчивы к повреждениям. + + + + diff --git a/1.4/Languages/Spanish-by-Crusader.txt b/1.4/Languages/Spanish-by-Crusader.txt new file mode 100644 index 0000000..e69de29 diff --git a/1.4/Languages/Spanish/DefInjected/JobDef/PH_Jobs.xml b/1.4/Languages/Spanish/DefInjected/JobDef/PH_Jobs.xml new file mode 100644 index 0000000..b7f2240 --- /dev/null +++ b/1.4/Languages/Spanish/DefInjected/JobDef/PH_Jobs.xml @@ -0,0 +1,6 @@ + + + + usando TargetA. + + \ No newline at end of file diff --git a/1.4/Languages/Spanish/DefInjected/ResearchProjectDef/Heron_ResearchProjects.xml b/1.4/Languages/Spanish/DefInjected/ResearchProjectDef/Heron_ResearchProjects.xml new file mode 100644 index 0000000..1081590 --- /dev/null +++ b/1.4/Languages/Spanish/DefInjected/ResearchProjectDef/Heron_ResearchProjects.xml @@ -0,0 +1,19 @@ + + + + Cortinas simples + Desbloquea técnicas de construcción simples para hacer anillos, ganchos simples y postes para la producción de cortinas, que se abren mucho más rápido que las puertas estándar, pero que ventilan lentamente las temperaturas entre las habitaciones. + + Contención de prisioneros + Proporciona puertas de prisión simples para mantener a los internos seguros, bueno, en su mayoría. + + Puertas remotas + Desbloquea puertas remotas para contención remota, así como botones y palancas para manipularlas. + + Bisagras y puertas + Las bisagras y las técnicas de fijación permiten la construcción de puertas batientes, como puertas grandes. + + Puertas batientes + Permite la producción de puertas de explosión presurizadas que absorben explosiones. + + \ No newline at end of file diff --git a/1.4/Languages/Spanish/DefInjected/ResearchTabDef/Heron_ResearchTab.xml b/1.4/Languages/Spanish/DefInjected/ResearchTabDef/Heron_ResearchTab.xml new file mode 100644 index 0000000..bb401c3 --- /dev/null +++ b/1.4/Languages/Spanish/DefInjected/ResearchTabDef/Heron_ResearchTab.xml @@ -0,0 +1,6 @@ + + + + Investigación de puertas + + \ No newline at end of file diff --git a/1.4/Languages/Spanish/DefInjected/ThingDef/Heron_Doors.xml b/1.4/Languages/Spanish/DefInjected/ThingDef/Heron_Doors.xml new file mode 100644 index 0000000..54f35a1 --- /dev/null +++ b/1.4/Languages/Spanish/DefInjected/ThingDef/Heron_Doors.xml @@ -0,0 +1,58 @@ + + + + + + + + + + Puerta de prisión + Puerta corredera de celda con fuertes rejas. + + + + Cortina (tribal) + Divide habitaciones. Las cortinas son mucho más rápidas de abrir que las puertas estándar, pero son inflamables y ventilan lentamente las temperaturas entre las habitaciones. + + + + + + + Portón + + + + Puerta blindada + Una puerta pesada que es mucho más resistente al daño. + + Puerta blindada + Un par de puertas pesadas que es mucho más resistente al daño. + + + + diff --git a/1.4/Languages/Spanish/DefInjected/ThingDef/Heron_RemoteDoorsAndButtons.xml b/1.4/Languages/Spanish/DefInjected/ThingDef/Heron_RemoteDoorsAndButtons.xml new file mode 100644 index 0000000..aaf4e69 --- /dev/null +++ b/1.4/Languages/Spanish/DefInjected/ThingDef/Heron_RemoteDoorsAndButtons.xml @@ -0,0 +1,15 @@ + + + + Botón de puerta + Un botón que se conecta a las puertas (funciona igual que una palanca). + + Palanca de puerta + Una palanca que se conecta a las puertas (funciona igual que un botón). + + Puerta remota + Puerta corredera vertical de metal. Divide habitaciones. Se puede abrir y cerrar a distancia con un botón. + + + + diff --git a/1.4/Languages/Spanish/DefInjected/WorkGiverDef/PH_WorkGivers.xml b/1.4/Languages/Spanish/DefInjected/WorkGiverDef/PH_WorkGivers.xml new file mode 100644 index 0000000..2c4c380 --- /dev/null +++ b/1.4/Languages/Spanish/DefInjected/WorkGiverDef/PH_WorkGivers.xml @@ -0,0 +1,8 @@ + + + + usa TargetA + usa + usando + + \ No newline at end of file diff --git a/1.4/Languages/Spanish/Keyed/ProjectHeron_Keys.xml b/1.4/Languages/Spanish/Keyed/ProjectHeron_Keys.xml new file mode 100644 index 0000000..81b63e1 --- /dev/null +++ b/1.4/Languages/Spanish/Keyed/ProjectHeron_Keys.xml @@ -0,0 +1,23 @@ + + + + Se puede abrir y cerrar a distancia con un botón o palanca. + Botón o palanca de desconexión + Desconecta cualquier botón o palanca conectada. + {0} requiere que la energía se abra de forma remota. + Usa {0} + Alterna si un colono debe o no hacer su camino para activar o desactivar {0}. + Conecte una fuente de alimentación para proteger de forma remota. + Conecte un botón o palanca para asegurar de forma remota. + Conectarse a un botón o palanca + Vincula instantáneamente la puerta remota a un botón + No se pudo establecer el nuevo botón desde {0} + Debe estar conectado a una puerta remota + Debe estar conectado a la alimentación + Protegido de forma remota + Con esta configuración, la puerta solo se puede abrir de forma remota presionando el botón correspondiente. La puerta actuará como si estuviera en un estado cerrado, sin entrada ni salida, mientras está cerrada. Cuando esta configuración está desactivada, los personajes pueden abrir y cerrar libremente la puerta como las puertas normales. + + + Debe ser colocado en la pared. + + diff --git a/1.4/Patches/Autodoor.xml b/1.4/Patches/Autodoor.xml new file mode 100644 index 0000000..af101e7 --- /dev/null +++ b/1.4/Patches/Autodoor.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/1.4/Patches/DoorMassPatch.xml b/1.4/Patches/DoorMassPatch.xml new file mode 100644 index 0000000..af101e7 --- /dev/null +++ b/1.4/Patches/DoorMassPatch.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/1.4/Patches/DoorOpenSpeed.xml b/1.4/Patches/DoorOpenSpeed.xml new file mode 100644 index 0000000..0d86300 --- /dev/null +++ b/1.4/Patches/DoorOpenSpeed.xml @@ -0,0 +1,12 @@ + + + + + /Defs/StatDef[defName="DoorOpenSpeed"]/minValue + + 0.1 + true + + + + diff --git a/1.4/Patches/VanillaDoors.xml b/1.4/Patches/VanillaDoors.xml new file mode 100644 index 0000000..02a8174 --- /dev/null +++ b/1.4/Patches/VanillaDoors.xml @@ -0,0 +1,54 @@ + + + + + +
  • + Always + /Defs/ThingDef[defName="Door"]/comps + + /Defs/ThingDef[defName="Door"] + + + + +
  • +
  • + /Defs/ThingDef[defName="Door"]/comps + +
  • + true +
  • + + +
    +
    + + + +
  • + Always + /Defs/ThingDef[defName="Autodoor"]/comps + + /Defs/ThingDef[defName="Autodoor"] + + + + +
  • +
  • + /Defs/ThingDef[defName="Autodoor"]/comps + +
  • + true +
  • +
  • + true + Standard +
  • + + +
    +
    + +
    diff --git a/About/About.xml b/About/About.xml index 1c3c564..f8711ee 100644 --- a/About/About.xml +++ b/About/About.xml @@ -9,6 +9,7 @@
  • 1.1
  • 1.2
  • 1.3
  • +
  • 1.4
  • diff --git a/LoadFolders.xml b/LoadFolders.xml index 4085ce8..46b13fb 100644 --- a/LoadFolders.xml +++ b/LoadFolders.xml @@ -18,4 +18,8 @@
  • /
  • 1.3
  • + +
  • /
  • +
  • 1.4
  • +
    diff --git a/Source/.editorconfig b/Source/.editorconfig index 95cf15e..cb7dd1f 100644 --- a/Source/.editorconfig +++ b/Source/.editorconfig @@ -17,3 +17,78 @@ indent_size = 4 # New line preferences end_of_line = lf insert_final_newline = true +csharp_using_directive_placement = outside_namespace:silent +csharp_prefer_simple_using_statement = true:suggestion +csharp_prefer_braces = true:silent +csharp_style_namespace_declarations = block_scoped:silent +csharp_style_expression_bodied_methods = false:silent +csharp_style_expression_bodied_constructors = false:silent +csharp_style_expression_bodied_operators = false:silent +csharp_style_expression_bodied_properties = true:silent +csharp_style_expression_bodied_indexers = true:silent +csharp_style_expression_bodied_accessors = true:silent +csharp_style_expression_bodied_lambdas = true:silent +csharp_style_expression_bodied_local_functions = false:silent +csharp_indent_labels = one_less_than_current + +[*.{cs,vb}] +#### Naming styles #### + +# Naming rules + +dotnet_naming_rule.interface_should_be_begins_with_i.severity = suggestion +dotnet_naming_rule.interface_should_be_begins_with_i.symbols = interface +dotnet_naming_rule.interface_should_be_begins_with_i.style = begins_with_i + +dotnet_naming_rule.types_should_be_pascal_case.severity = suggestion +dotnet_naming_rule.types_should_be_pascal_case.symbols = types +dotnet_naming_rule.types_should_be_pascal_case.style = pascal_case + +dotnet_naming_rule.non_field_members_should_be_pascal_case.severity = suggestion +dotnet_naming_rule.non_field_members_should_be_pascal_case.symbols = non_field_members +dotnet_naming_rule.non_field_members_should_be_pascal_case.style = pascal_case + +# Symbol specifications + +dotnet_naming_symbols.interface.applicable_kinds = interface +dotnet_naming_symbols.interface.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected +dotnet_naming_symbols.interface.required_modifiers = + +dotnet_naming_symbols.types.applicable_kinds = class, struct, interface, enum +dotnet_naming_symbols.types.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected +dotnet_naming_symbols.types.required_modifiers = + +dotnet_naming_symbols.non_field_members.applicable_kinds = property, event, method +dotnet_naming_symbols.non_field_members.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected +dotnet_naming_symbols.non_field_members.required_modifiers = + +# Naming styles + +dotnet_naming_style.begins_with_i.required_prefix = I +dotnet_naming_style.begins_with_i.required_suffix = +dotnet_naming_style.begins_with_i.word_separator = +dotnet_naming_style.begins_with_i.capitalization = pascal_case + +dotnet_naming_style.pascal_case.required_prefix = +dotnet_naming_style.pascal_case.required_suffix = +dotnet_naming_style.pascal_case.word_separator = +dotnet_naming_style.pascal_case.capitalization = pascal_case + +dotnet_naming_style.pascal_case.required_prefix = +dotnet_naming_style.pascal_case.required_suffix = +dotnet_naming_style.pascal_case.word_separator = +dotnet_naming_style.pascal_case.capitalization = pascal_case +dotnet_style_coalesce_expression = true:suggestion +dotnet_style_null_propagation = true:suggestion +dotnet_style_prefer_is_null_check_over_reference_equality_method = true:suggestion +dotnet_style_prefer_auto_properties = true:silent +dotnet_style_object_initializer = true:suggestion +dotnet_style_collection_initializer = true:suggestion +dotnet_style_prefer_simplified_boolean_expressions = true:suggestion +dotnet_style_prefer_conditional_expression_over_assignment = true:silent +dotnet_style_prefer_conditional_expression_over_return = true:silent +dotnet_style_explicit_tuple_names = true:suggestion +dotnet_style_operator_placement_when_wrapping = beginning_of_line +tab_width = 4 +indent_size = 4 +end_of_line = lf diff --git a/Source/DebugInspectorPatches.cs b/Source/DebugInspectorPatches.cs index 5f62c9c..099dcc1 100644 --- a/Source/DebugInspectorPatches.cs +++ b/Source/DebugInspectorPatches.cs @@ -30,21 +30,21 @@ public static class DebugInspectorPatches { public static void PatchDebugInspector() { - var harmony = HarmonyPatches.harmony; - var type = typeof(DebugInspectorPatches); - harmony.Patch(original: AccessTools.Constructor(typeof(Dialog_DebugSettingsMenu)), - transpiler: new HarmonyMethod(type, nameof(AddMoreDebugViewSettingsTranspiler))); - harmony.Patch(original: AccessTools.Method(typeof(Dialog_DebugSettingsMenu), "DoListingItems"), - transpiler: new HarmonyMethod(type, nameof(AddMoreDebugViewSettingsTranspiler)), - postfix: new HarmonyMethod(type, nameof(AddMoreDebugViewSettingsPostfix))); - harmony.Patch(original: AccessTools.Method(typeof(EditWindow_DebugInspector), "CurrentDebugString"), - transpiler: new HarmonyMethod(type, nameof(EditWindowDebugInspectorTranspiler))); - harmony.Patch(original: AccessTools.Method(typeof(District), "DebugString"), - postfix: new HarmonyMethod(type, nameof(DistrictMoreDebugString))); - harmony.Patch(original: AccessTools.Method(typeof(Room), nameof(Room.DebugString)), - postfix: new HarmonyMethod(type, nameof(RoomMoreDebugString))); - harmony.Patch(original: AccessTools.Method(typeof(DoorsDebugDrawer), nameof(DoorsDebugDrawer.DrawDebug)), - postfix: new HarmonyMethod(type, nameof(AddMoreDoorsDebugDrawer))); + //var harmony = HarmonyPatches.harmony; + //var type = typeof(DebugInspectorPatches); + //harmony.Patch(original: AccessTools.Constructor(typeof(Dialog_DebugSettingsMenu)), + // transpiler: new HarmonyMethod(type, nameof(AddMoreDebugViewSettingsTranspiler))); + //harmony.Patch(original: AccessTools.Method(typeof(Dialog_DebugSettingsMenu), "DoListingItems"), + // transpiler: new HarmonyMethod(type, nameof(AddMoreDebugViewSettingsTranspiler)), + // postfix: new HarmonyMethod(type, nameof(AddMoreDebugViewSettingsPostfix))); + //harmony.Patch(original: AccessTools.Method(typeof(EditWindow_DebugInspector), "CurrentDebugString"), + // transpiler: new HarmonyMethod(type, nameof(EditWindowDebugInspectorTranspiler))); + //harmony.Patch(original: AccessTools.Method(typeof(District), "DebugString"), + // postfix: new HarmonyMethod(type, nameof(DistrictMoreDebugString))); + //harmony.Patch(original: AccessTools.Method(typeof(Room), nameof(Room.DebugString)), + // postfix: new HarmonyMethod(type, nameof(RoomMoreDebugString))); + //harmony.Patch(original: AccessTools.Method(typeof(DoorsDebugDrawer), nameof(DoorsDebugDrawer.DrawDebug)), + // postfix: new HarmonyMethod(type, nameof(AddMoreDoorsDebugDrawer))); } private static Dictionary patchCallRegistry; diff --git a/Source/ProjectHeron.csproj b/Source/ProjectHeron.csproj index 7fd124c..7031cf4 100644 --- a/Source/ProjectHeron.csproj +++ b/Source/ProjectHeron.csproj @@ -1,7 +1,7 @@  - RW1.3;RW1.3Unstable + RW1.3;RW1.3Unstable;RW1.4Unstable RW1.3 DoorsExpanded net472 @@ -17,6 +17,24 @@ TRACE + + + ..\1.4\Assemblies\ + + + + + + + + + ..\1.4\Assemblies\ + + + + + + ..\1.3\Assemblies\ diff --git a/Source/ProjectHeron.sln b/Source/ProjectHeron.sln index 81c3a1d..42eb7a9 100644 --- a/Source/ProjectHeron.sln +++ b/Source/ProjectHeron.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29728.190 +# Visual Studio Version 17 +VisualStudioVersion = 17.1.32210.238 MinimumVisualStudioVersion = 10.0.40219.1 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProjectHeron", "ProjectHeron.csproj", "{3A4FB893-1148-4E16-B548-867647DF1724}" EndProject @@ -14,12 +14,15 @@ Global GlobalSection(SolutionConfigurationPlatforms) = preSolution RW1.3|Any CPU = RW1.3|Any CPU RW1.3Unstable|Any CPU = RW1.3Unstable|Any CPU + RW1.4Unstable|Any CPU = RW1.4Unstable|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {3A4FB893-1148-4E16-B548-867647DF1724}.RW1.3|Any CPU.ActiveCfg = RW1.3|Any CPU {3A4FB893-1148-4E16-B548-867647DF1724}.RW1.3|Any CPU.Build.0 = RW1.3|Any CPU {3A4FB893-1148-4E16-B548-867647DF1724}.RW1.3Unstable|Any CPU.ActiveCfg = RW1.3Unstable|Any CPU {3A4FB893-1148-4E16-B548-867647DF1724}.RW1.3Unstable|Any CPU.Build.0 = RW1.3Unstable|Any CPU + {3A4FB893-1148-4E16-B548-867647DF1724}.RW1.4Unstable|Any CPU.ActiveCfg = RW1.4Unstable|Any CPU + {3A4FB893-1148-4E16-B548-867647DF1724}.RW1.4Unstable|Any CPU.Build.0 = RW1.4Unstable|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE