tN1b;cD&>|$bv^&F<|
zEGFTL$nue9i*0hL*z_oF5TFS8-y&MKiSBP&o)SA0ByimBw7xRdM-Ncvg7idtF#Y0-7ofWsK~ESjxP0_
z--|vFB8uqeHywcn{0sU2&2_+)`{xgIv;=ifr7Iv+NwvNa0ShE#bkUp0>19s)uZ)SM
zWYDOxUxFm{9X)~ySg#x8xkpz$Hms6D@ORoyM{mEi?ET$MJFEEdb-JNf#<9|U}b2+w%Qy#lou
zI#bbSCZE!IyA*v-P*%{dnX2pMBWs19^9CnS;hlzuyW(Hmx>6{wvtDwW>vj@8F|)xy
zhJQ=DnY3G_UK2VK3!h%{wL#qz?kSyd5x2kce>!*R<^BaER<)Q(j?8x%bO5F!Ppa}*~Zb}Kf!G^!-+^@XkrErX#=SH
ztnfvFBYQ;PxjbhmYipYq{fv>W&d$Z3O
z(kN%~w>lXKm*)V2-(RBXs9dixg5}5RBP+PGUMA;M&T1zc`gd>9^uK6n#Re6Gv{?IXFBe;Lma@x<9m|lm3MNE~7iR#rIi}vRD17&U@3XZR0E+i%iFMV66Z4j0NYtJD9h=A8vj@h=LpakNn!2;!{Bz|L)zpZudC`1~Q~7Inu3a6dQ{Z
ziyDhLixUOt$lEK+S*3l1!Dqg!5e`;TV-4aUACB5O8S?#Bg6+aAhjV+~V2&V@y21Dt
zU3HcDl=+)6fTG8t(jz}w=YMnu5FAJf0h#I5oex=A9Ka)W^|%8LmT-AtyOG-sH(-GS>8iy|MX1x=9N!LjFcCBsZzq8m4N2Ae^{@*T%zY^2#n3<
zyw96A7yD=y!@?xK~pAWP(zRg*X92S9WC;Gx7wbq^uULLF#^cKEWc86bO26Sfbr
z)eXWr`gl;%UB;d=93~|N9esRp87nmSwgUH1hzHO0HSR5Q4iZY8IlkvlR2EdW6f#jt4ph28wNbrKbAevZsWl1vD_gDJC#-hETnTVEP_N6(^e_tQ)oal&&>uR
z!ICuc#Z3y1?6SHG(+UJ_)X5nc=ft3fMw#MD|2bX+Y#E&2``?xhL(pM*!i0*yQD}np
zclrfai6|T{;4X}|dfy<%u*373-*dZorWf}KwycfqoSnT_Wg=I>
zQX5rvcCzT>Uw>Zf%o(Y621m`h)gPK|En2wsS`RW8ToTS=Mtjq5AgvjvVhMTz73{AK-Svh)jRj
zMaj4+OxQk5-5PK_Qt@GrH@@5QT_@u6YM5V61NZacky8W<+5n3tX=Opji&V{vQNN*K
zAB`xQN;Xe5*E7}7&tq2P*SeZCo>fS15y`=y)}|&K)^+#1(}_8)b~1`hmZ3TZHkMV_
zx1#uNoNXWFs7YwxDQ+%MV0^|upqg@^OiL|$wdI%6laI@aA{I1PPU(Eky?-K`f%Gz~
zr|*B=Jn(*8lfh1Q!O<73vj2NNsCwTQml`Cx+Swm`w2df{Ij}fkJU>Pzh=@U(tUUun
z%OaDA>sDFk`H#}OIUi?P;-Hk)*D^WiKy#L2G@Be@*@;*SC_EBN^t=xt{FWuas~qDF
zhhn?Cj?Mxb&L6trI{tq;Em!2Q3bkPQVIsRXl`i4dV>h=lF>OP`qUgw<^pzzpB3f9O
z%VO1w)Y3*D_|XK*WY6x$sGAI0W3RI5URoS}qjXJ1nGBpGwR!QxS@s7OppwL`<2
zOuZ_q`Xtu;5yofK-z#GP@xYmRmEC`AM^1Gr!$p!rkdIH~ceADqm*TSa*hZ|#&z~;|
zOq-g4YIm9n7yg-OY%-vv{j2Dh6NyNhk0
zAjZ)(@vQ70ixBMlP%cj`WcO1C1Csau|G0Q7m&ZO+pocLOWyI?R0y;
zTZ&+Be{~Q(H)lu+oIoW>0o&gG=#AO6v3w1gt>a|m$}=gv!HpXgIO9h}$Eqn9P%#5v
zL01o?+4H$U>#r9mxS+9hH}keY0PA^6U)#f;=I)<4$XFt}-P?5gs6oF=z)lb9=kkf_
z>R;$gt`G`iVxTJ{t8XO8Le*;b2c(?(OTn=c;^I2p-Q7e$A8whQ2#|7jUpnzZMJi08
zmrau5v-|o6szh7gWic$)z#~}5L%vs7gGfW-$QSGbeZCygY&?@+oKCz
zLJ7CGwkTkRj8>yEvZ^^3k0WM$lNX(oxfztyM-N)Y{h;2cyVQA#iJgwmXo}5yd0bT
z?HiE`{7h^MP6%u`JDk-YI6Gn{ylH~Ls6aELbNA3I3Oz{^Ix`~->JJtd7bVb=u0)}2
zGbHi#+R&i^afpL2UR10_%Hu}@L!-Ypy1Irowa;>&Fz5w4)3dpSpRTy))_a2LpAv1=
zigf%HQ?i_Qw0U2k&M$Sq7LFZK+zi~>s#&T7cc?PU;h-VTBk*$}V(uuw#;E1*o=j>c
zW0t%3vR^VT>ldP@MZBe~`I+A{_14Xsl$8h;D$GR5PS&CMb1l?v)pbVxVRM;uxD0Xf
zb=;HV%Ur{67@WC*mXY4B*0gBr`8zKe>j>0Yx9g0*v2IRfC0M?eB+R7~%?f~@xMGPv
zeq2Q-X-#e}`IT#Qhu@cNEm^ZEH66zZv!=}lo)ZpLjvX;)u~1A;9u$+i{Ati;D!ILQ
zUrp^0n_R%Zp*51nV2r*>xd*M9IsZRN&5b=rjCvS^ocPVi$o$L@X%;Qj<_%Z?8an?l9iPe&WJ2h#~|>x
zjXd8}TS97ZnLBudHv*Dmax@^dJ@r{=D`<}L
zczU(uTru6bPRVhd(jEfglZD1OXh#pTo!n!>>a2^|gN;$RrM$pwP}gOFNO(eWvcunQ
z+W0TDGf(BXXZ|ZJZHHZ%E)ES;d4m6!#_P&I3Ih4)ydx(&VDI3dZeUP|>DMnrjUhd1
z0`Z=bP1aP!XURdo{y=dTvV->GKcLWagc^tDrBH`K2KvRd&B6MP+?bI}iVMV-A&|7o
zyJBVGh1|S6<3te==5te>0>kpc}q3^j{(PJRAQC;e2Bk*Dw-42PqS?N?zj
z1^TRnZu)sx%|+>2<0JWUO?P{|UmhXWj^IT_
zlm=Cf&r@i7yN>)CbN}%XFt8d3J{q!qm&N$!#XtNlC#j|2j!2ROKCM~#YI6`j{wJ?|
z*ry;sh*}Jys))xNY1e##Zi;bdr^1Gdrfj8=IDu7y=#;Is*#o|NH`Efn8?ZE#Ojx1f
z6!VkxsB@xyi2;R7CBvI)aMki%&00@<{$!AiwN0Aw$I>?hUq*SFE|k%gtswG1QD{&D
zMN4D-%_XsxBptQ4K0B%G8pg(g0w(-TywyR>sk2yTI6=oBKaR&=`+xc=(@SUQPlvsl
zVVg@`CJNl{Bhu^%zOu{j3WeH?OLTVq8ug>i)AhK`9F8E_V2}#rueb7!Y?ZwScwE2yOIL3nY;IZuTA2?vu|lL1_z}sIA&h5
znzs&M2E<6kH-B~(@6vPYrq0l9M4_slBbcU%C&-!
z9+=-qKxI1t!EfjB`UK{9^B}KWJ8z4>fDsHkDihlG&MATc-t(v2jaZ&84?Hg2^_>kf6|FiNaWo&9JKr-
z!Iv-6BrKB&E|UfKPemc_5~z{!sm;_tC%{6)&GPV_+_Es9q1uc%*k%4cQT5W*U~!_&
z3m-Fyw}1pk8byLZCI`dg>U|JZNK8*>0h)1oCIB$+Bg9keBBH?GA|AWX`;cb#)Yp~(
z{Y?q{IsGl?i6L}Chul~03qyWzF#IY{XR)&Os)AwJje}$W)7&gu$WNR~6y(k!iT^l>
z!%hYPN4=UKB)IAI72nz1Duf_aP!FC(C_!8nOvFjjP()7y@5$TQ+wX;mEZn<>x
zJJl6c&fjVrnwa>AKRcbB_+t0aooVvrAFCJsRKYPZ)CXF#O^`Cl(~`LTE|bMWs_2i{
z;lFrQWsZU>wWOqEuq@>DfLe&Y4|}Z(aaKQScxWgX)hQdBqkAI_9SF>6`7;`)?HfcL
z->j0}zOthxcTp?|U^!0CouZt6q<#AXh&04hYb#!K)^z?N!oO@``RI8b8HoLBv31q{
zn!tHPlp?lul$Dho`_=Nudgp@XKTbRsh$+kRr<$3WSzvXi0Lr@^Xoa(TOdwY8c4Gq#({a-}g
zLXM7OA|;xZIXVU!E^^T%d|i3_d5Y^20HSz5ii+A|{R!8VxQQWx9r$nJ`|ovW#j+Wc
z@@6$bH}|W_V-tfJ6&6Rkb`U?D8nNbJq2`p6LnKx4Y|9Bf{*xdrI#lXnh5E9eRFdYH
zA#gNv`WQhdz#94+Rl>n-v&CYdl#}eIo2CZ)yK^X`lGAk0rp%LXn_om7hQN<~Zm8KL
zF2JhiBO15*94b7I2zZ$}(RJs|00$mAg~vCqG$VVH-H<)>5Afz>Cqy+!CApR72edmW%x!GMr@p9Zl?UZvSp*=q`UYRThK{*
z<8H=eU922LbtBK6YU;-hu`qu_r?=rIi`|HD1OQO3o#z6OG{s@4`Z8HhZ#r#Ez-%|u
zLypk1j4zV--)7zE>gj0_B9s#`M+7s@Lx}qO`>VFfjhrK*6r0&g(U^B}H&vG%dp6jw
z-zRPghG69=F20@7u!FqR(@RB4f}ZvBwMx}Y=~V5*x3@T7)p^03u-%7nMu3uCmc@5a
zCY1N=C%d<-Bo*Qj20-m>91D#{0Wm*(8JG5yqOQM{g`C_DP$*!4
zKVWGM?W`_iSw;yN)&y(h)y;oOyA=Cm;qj@e58$&nM*#$L(FhKo^nS_yC^AIo8SHEn
z3v4B7{={gWN&@v)-AF@{bcA>>pO%#vxT3B~?=+Ll)G4-01X%IJY}fptHwJXeEuR}I
z8X2)3ZcdZj#A~;ioym60&{GH;-5qz4;QO^u;>wYOd3V|3?W3D!(x&_VlNx*HpaLc`
zGIF_N%<8Ly)VR}62mdAzAebPSdn(MO)Xn|IePAjbj%2Fro=~@PzX=*tL_kPL2$&5Z
z>J$&l=H=(djUc^I$AuQwuT$UF#X---e3}>)DJdy<0zQUX$lVriIwWS8o7PfkZ=nGE
z<$i!Br#GrMSKkN2&@_(`N}-~mielDCCfcz0zV3WW_|z|t+*qx5(&WhM&F`;^A=5J;64yL9+;nJE~H+GOqvmQfMuTEU-dpZ=85kS)vewa
zZz8uy4UXPR1I-5toS&fMo~N%1LUgzSpH=-=`>T83L{lqq$K^Hf
z$j;7g?#)v9@Eenf0QK^X+U}}$K~PfM11*r*MChwv7`0=;CB&u!Og>v3wvF+tw5k+}
zNrlC4I{5nqddI-)9Jv#jN|~`4?do^$+zDeQtW@fn(c8cuZC;hPu;9e6S4~NZOSAm?
zGdfy<8Wm_b_uKdb8oPGHZt)BTsh49ggWXsHF-RccjNZP(F$&h4Rk-i&yi}PqZ3N%E%>Wrvaa|n
zVyva`OTcNEF3O|G2^22#@j?r58XIFDqJ?&PjZzCF#bNPO|Ua8ii
zR>|(ilFbWO_!{Ek%ci?`Cq;xBI4a4QpJPl&e+!UVZ={{w9ErUwN}oGWxIK3La;Q_y=2aA9!3xy0&`h@*HYXvViYv|bLB^fHvbZbRPpY5?HPV_
zJe-FZbLT{_v@5*j#R@lGO=4X=YAeiiF{gx=!E`-teSIAW4oMDsCWfj0THDC_Ka6ym
z$mGH;JP|GPRcE}-_2P!gr{1+OlykNQ__c-UgMF0XPobcV^@{yYm2?XOeE3tLyo~dZ
z`Rrfh1A0f;wTGQnDiAcBrC^8J&aCXN!mZ7s@-oh2DzkfxMUqgjra>FT
zsfk8B{#0ngrG*Lq-yprRP;(EIq*^!c{>bq#R63m<6MIYjlg}F`iL2
zY?aeuJrOwVf5iU&HT2&|3}`HX*-$y(zqd_*`Z+!Epm*KLUS!O8((FZA{;NBd;D6Dx
zE>K~EG5DDg>-AAvn1EC6xo7IsA!}cm*Z-aG%nc9Y*V@rNQrtj3Ek~-J_|{
z&I8+xn)B#(e8Mq32IJwDwFf?UYcP`&gKb9&uB
zuxZ@AQPV~TiG;U=KiC_jEPiZ?Zk^c3sUg_B6KyUV+b3||Ckt{|J|(cjFXysRo1z9X
zK&f6O5ClHhAxrFhDW-$uhO2N31b;qQ0I(BdVpclL2U?Dm{xC
zioIObSVuBz{QDaQU2fIOa6Zk$N&@pdP6eD={`WLtB`B$>sc@s!XDmu~MpUeBqxR8F
z)2VI2-4k>?DN^^evZuJrZ2%QH=>iqtZ5f@0dPl!RpYTM0r~zhnDKGfUA(z}jqY}l-
z$47Pgo68uUQDc8!P*Cn$G*(y_L@p1yB3^@41az0;sE*@nr-s
z8|oezGZhpZ8ZN)EkENt2jS2`DBWHI8J{^Di5(R>$?I6jWt+(7TIb_VOnY{$5k5fsA
zp`lO0`&!*o1TYXq<+92wJDG8&mJdw!NsuFocXPcT{P7-}xJJ{Q>ozM)n92q#Br*sc
zW9lhqY4QIQ<_Dq8G6+2zKc)9gLo<3lM9oJ_repjdSg!Pb^fc(Kk^XqOgfVq~c)AlaDU6KyO3>1upc~WY*;dFxg(+A7sP$-V8cwE5jm9_}
z8Jpn{mIM&KXv7mZyK03X=uL>US;kRLre|ejOgS8bN@iz}^?cH=$h&0U|Fk@DJxBRmVQ?o!-g}i)1
zR|Rm%mEzrTR}z>%dzHzU;rc`GRCm8$Z>mC~=8m5lU*hH%xz}(JH}sbE4k&ecg`90|
zpWR(qc+0ArIPXPE3qf)M4j!wRZj;GF6oE#?w&+`G3qtR?zEZ(Pe
zTIiFmt)5SKSW%8N$wWjcky}S0lDT2M2-~^kaGk?r9`Sqgs2D@5D-y7BB1mZ0t!S4Nw6SFl^`HpnshKy
z0t5((fOP34kVx+Y0wjclQL*1tb;
z5%)@OOuN+XzxPDKq!3xlBuqUUwRxQ(G|_3;aq+4CsTtWB@S4Dzq^ixrS7z3O$zS#g
zo;W_K_cqiV2Ki_qEG??><`4G~#0v}IzMQb_Lr?q8pLk5VVPiq`@}Kr;5qge~1tx=%hf$6&5?{^;d!8}-sioXnx0vo_`e)y6ws-s#!{&Po@?8R&|;^(FAjgoKoX
zt8aI`3IT+whPvW;{U?q-au*K$UUqChe!(16;r!P6-0+o}gv2xT&*2ww%dei}mY!ar
zc$`-nX7J?<>*;)kE98(*iXHM42|q)K6Ny?*ogeLLGW#en^Q22J2i
zU%jr^A7Fy=&cB%aMz@VOLKM^f46T*cPYl><%)bIZkrjft!US~j3PFPY@+^MX4Th0;A^TFfsjX&N!+xJy9{4e7=
zhspTHz_uapu{~i$L5X|Mine@@cSvklMU8~iFLZRgAojkJ%isNKgV*}CXNAta{L96-
zJH9VBD11<)g!1u8?S@{zdgn>f(kRxeZzGwuYVrA&{%U_sx8;~i;M*5=2C{J>Wp;_uL6)e?B>-=<~|PPqWoaa+=cBFE*Agab>u2BGNZs7Dhla{o%(zWrQ;=
z;X$uTp|90EueqNKGVi}z*SS40iQ1e_q(w$gvM*5&Kh<_pp?1!&wUP#yGwcBR)TG2d
zU}^pLBk+;=SaMXeLs;Rb^78V7Px-vkwhklZqMP5pdbLN)zSN~FeK6a(BZ&p7si|Sg
zmf`ts8K0|B)dYjpk<0hx&G_n`)_d-AP!Usg?vQYQXl-ph@`^9;FKN9xzQFGHlgW68
z=0m^5X|1a9Va-k@{q)C`_h$vFv$7frV1y1UZmc4#6wPMTaU{jF6F}J9W-G3}$zqpQ
zB2}=h(?P|l<=xqSx=E_GWEC%3o4d$!VDf^#BX=dWPQ7cL5?uP=+N(n2*!A`HZgRsk
zkOkdyrL;(yveMF=tgNgb4CB$(rup$!(Jk%`R_G>Pj&Wp|l8a(lj{1?|wGdoyS65m@
zM8q{R*cT*~pV>*uLEmq)=fsN2yGeFbxZ=(Jk(kc9tXA<-ldJ-xLL)Zg99_skpef5ITD)MRff*$xosYw@~m{
zVwp(e5N9>u!*^!&%Pzo&j~H@=*pZ^c1d3YWk4QJFe^03;oxQasxHLaMe+`lc7{S^{
zuY1O}SKF^s$Un@MXlcqG)B?>aW0vg7%FE9swl`{qFKihG_8q(^{XkT&E-X-te}+k7
z2PsA5s(nP&Et|UJUdph^U-(0F$AJ^x6}sUD<0qdT1D~KLO6?^@6;g8s5g3UO$#7PC
zqz*nqnZ#-^*y4l^H+eRk4915AzF=g*@J$a(*^rKL@T&zXc>d<+KZv29V&p(K{CDAe
zv}w=Jq#k@P92VG$;@Q4#SuXh#*MV?##m7pS2S|c7jLTxB{8qs@3J*F{!ec2M|L<=5
z@9zUm$H56LH@m6LW%#0gEADhe%6E?Fz|HblY-_#qsWoTkV&GDZspo)cuXb~1)daKC
z3D~JUC^Cut>^sL@wCGbTuXQIiybX~;pjdH>>O~^HGq8~^FlebwUO%;mh&IIct4KKZXD
z7M|yYV$lsYwGLlHR?37d-sgtK!GuWWDi3ulo>KfvG-`&dYGo!AzaIIi(lay^@4{`B
zGd`VAY~S3-8~aXvGo5z9>^C_`tokNb{j&5AL%sXxa9X%|}9f0y_Kvc-95U
z&SQ6v@}%E?1D{UfWKs&Fe6#~aK7IOXcPf?~>wx(IGd=T-&+f3FNX0eQHHRg%x9+)M
zU%tR^GNyb+SBSj}S625v&>dt4M%VHd!s?=1_WpZi|9h#YbS-={Z85;zww@b4;vPly
zE@zT+GA(LBJ*bdC1yEg`x
z*)FM7izWjO5RJIJNF~7gL-J*y`i~Kt47lOw-Lug7ZFe3f>GV@)PEoNm_g&W}tNHo_
zJ0jIc1N)$k5^a(q!Fp?!Z9LQpx`sp|(^y%i@N`(Js+9}vr$b=
zEvKZ!?D0%TIC^Wbq%*IuQ1R1rp+VM7v%4`{d-mMXLi;cFXuWvhUrI_%5cl%IYkHt9
zUn7@z&UgIhJ?q*Bw-)}%c;Tw_W+06G4i
z2N<5Uo-V#YtUZ9vtWsjknP9d)*G8cf&-4CXWj0$Z=-d_rnBGJa?<(?gjpli5Q)8~v
z#%IV~>MHY&){+k11gVX_&Gf*?pU2)k=a`U}*L&gohxxf4`_yGIiQbIu?PsjAva-`L
z26Mf+W>t%yTkTRAOlE#|w%mECe^%i?^d5dGHa>vt1nGJX(l4rRr+{6g1`ov|P?FV6
z7v?Pozk{X+Ygrevhd0DgpFGSWyy*9&?X8ip!2zAq|LlJAL)jm3rSNecbkD}8?E8*)14
zkrs!ZTweHmF>c1%W?tx%-RmAg4bL!nrkyce$$WbI#UaA&{d=AlsXEuT`>vqyp;b!%
zpojmhtL3(Cw>;kiyJiQKMsRUqVYrpbo@gAf9uBuAU3#pBTpqbb0+s?C4&PVQ^-Y(5
z&-rrz;{dpafxmjejqDz2J*M~E@^ZusVV7#=`&v}3aK^p3)#-}t1}79RT=8n9Hyn$v
z#GqlUt4%U4XphyRU?h*+p??|RZk4twdMZxO!dzpO!H#YDDvjTd_t@E}w>xFKY6ykh
zY+ysqpE$2a4l^xLwtCREqsDFejB~<9-cYVZyZnH-eG#_v{eqM#rlIChsl02L@=={?
zG_!eny=DzA(Bj9O=m;BLu2>7PmP1m9JjKbh$sjmsiPKeNa>yW_S4?u#xN4RiPFI=V
zaX+G3uHx}u2CFuF_D@eTs|I7Q<5xXx&k_cj#XBF7aUIC}kJ^g_L%djGzWjblkCrVyB#*)s3G2Oe8M5uMTB|wx;O>D@^Mzh#&vN
zoQ#&!*Or;vPF-g)>2IRnOfOh|Ud^KLj@d5r^F2IM$M^Q_LBgN03is?33-a^j>B^#y
zFzxy?XV?t|WgLK2Q|i&rTAd}qIg8Gs!>!om4-u~vu;}Ic=+o{9wr%HBCYM_`1*Kun
z4y_@0rSS;}ZypvB7p>{PBaX^!ZD^smdGiQUGG#&9AA8wUW*G?yC)Cx|bAjVW
z99_;-DNeq$#*9hFKl(hnU^*YbWW;Gg7FkWIvRJ#xxO$ce#+9xg7AU!~u~9#~w6uiF
zELb?&?TX6w_MY)qh0m}ZN~Bo~ZQC5>Oh*PWEdp;(fys;8
z>X}Da-nN`clY#(3W(SsT7!6r0R#Ax$d&AZafholaZ9l$2Z*Ey
z8wWiBvR`0?DF5Zoe^bVcvX$UpobYdG9I@h-;r0;)k~w{?3@FAKtpk#VJMu(p?$$SpuH1$d=_AxKjW
zy46g?;yRh@O<#ZoCDTEIQub~GEPp~!tQes8vI*D+Ubg8h(!#gk&DDYU=6L=tSdW&8#@NsmL$6B`i9iyF2r1#VQQv
zU3^CxxQ2q~4Qz+G;Xk;0`>Md$oW53WR@}K0
zIH4V|VLe(vPl_Fb=PkTM3x35&B}h@ZQs#lqzP1@2r(xf6RWvG>lOpEB>!wN~B=0av
zgqEft$Xoh4u}sXm`e=MjvlRxhtUl+pLdPz0U*{<<^RS$m`?GYiws%y2Av>vzqX_fA
z2CDnzDYo413fkIk|HU^_ua5l*%}ZFl=g#u?HklolS}eBc<8W578<8RCtry#upzvob
z0IPshJ4QxQJK!S2)xyGJmO;`+7Ckcicth1`()rtEt?j7D8{6Ay3o9MLu{mz9)+3Iv
z@0@tbK_jmA_V(uF=0btMP(O?V>JPt45O7*=O+dkS6AehRv3p0-C4=l9ptHBTI~~C9
zzbgx&Aln?nqMIaO6v2Y(kxNEp0K_D6dr^Z;@vPYJ@pzS81B^V;X9H>7aYFvk3wwY{g%0*EJ1}t0v
z{fTZFlmDZ-fd7Q%=m>eCQ0&(`e~w1|j!%C=h63!{Uhh~`%=~q4Iwi7v(wqN@i35`K
zo^ie9*GMrm#n|QA9;InzOr&`DZ3*6YLfTX8ZdafnQe9P<-Owf_1bjA=^1Omp%NERl
zF-zaG>|2-|!OgGSiJ-0^lvNw&&HL2#Rg+Vs;^N}-k9*OLA;I1|(Bj>!7aj+Q@mv;9=A?p2WpDPG%(b
z(xgeeN`n=5t|wb(E&3u?+Wd5Mvn3n0`6*nEbeRsbvMQJgK5DDqo!ao$2T(fiS|{*9
zJO3*V{?CiUot-JMWhSf7wW6fHANWwM)*0uTLbLU%396{78opy;VV1=Ir!nQ!;t^`9
zmZI62>h>1iqQlGme0ch?F)_eFg=igVU-Q#aodmrug>cLr_@)qzVPbkX40@(m7TR>$
za4S>ovCGpnepic14qR
z%Y1QrP04lOhdNbZyYl*9#>207RG*9a%*by6XhYO)z_VekwB=ORmGIs@^b%!6g230CNPY3Sx~7U=$EF6YWm|8Krrt!)Mwm+2U1W91?m
zjp!)_e@v{PLl|+aHJ`O^!~%#rV4K6bg5eTsQ&K4#qlu1TUDP5@yv!U4eRsG|!HC_Z
zCJDh@R>Ar)<_C*jWK>?ztEmApQ?SK0-a#_C&F`;)&r!=KIz{gED%P}w$x+W%BYCVH8^X0&
zTrNgy6Ti32W??O3G%hm{?AaeJ&n^|p3H%XPr8o6GaR47qkd8H_56FB{Lp
z7ufuvnsBNbsB$S7S&O-IT|&G79~TxD#!v4(ItCOe*?abk??35DcR+P+^Lx+tp52gy
zzDT~^$#9IDN~QJYUL(E_Aam!I
z<(uB68fUlbUPuB}qhBDPxRj^UV##2nacJoc$mXEvda`DQYii0z^h`q5Zfw?c5}hE&
zCHgEbu$~7r9JP3Vff^7^j&uyuVI`PB|ZJOaxmyP@n+
zX)9d2P82RPQXPFmwOtY?V^1fkBdE33Gabo2OmnPBqyi`JWAz1S_dWHRcO<#$mEf*Q
z>_s{wr(e|*lzK7V1>@}O41IK_&M{{UVj{dmUY~VtM5Yd{S`=@?##l*=ow{LHNUUWd
ze$sZ#Upw3SW-T13+KvVhNF>|s?d=5E&$eX9-xBdM2XU5N$!t!;+oyqwZvTx##
z`E9Mc=8_;@tS~XvceOlBnZGEOTGIz%?Q%A=v?hHx0AQ++qM?cKpvv)6g;GsEFy~XMC#8BJA
zN28Y{`^0r2m|sLXH5|laS0?oy#86O*_dd&%bBcKtpOf08|kMz~VHrQxsDg)o8}
zjZ!l|JNs6qudgpRBg6h%uc?K_h3TUmQ;%?&9vb=gl|(NJqr&R7NS3DLSxUbhM(yTaDu&1fXjkBAmf(1(Mc
zY{y1dOE~`2wcIkRDj(M|Jf@*yZQFSxREu_0uvm?=6_Y8gA2Hhm;o>vLDNz%(5fYSz
z)_7-~ZWe&*dBw#RC=^lV=rFL|Aw3^S)JoXcSG^nWw`2vE)bt)55&hi5Fm7tC;Wq}m
zoG5E6mdbh$muSZvU&25&A+x&`<{LWWMKcEvx^%NNSmA*^Kt>CMKHpK_0b%)S3rY+R
z?%EU$^X<&;5H&-N#blyElF>3X;5(=$*b~XC>~8Zf@`Qk3q5!*4=N9q!v)xYshzi;{
zr}PbtMhE%%`uYN(4X9YjKg$Z%Nqyd=UL)
zXT$k=1SO&|7m%2~%ny{h`mc=%s}Me4O{PKeffu(z7+IwF)kzkLMPWjHFSnq0}<)
z_^{f{aV1Ss(_ZWM8Cn7j9vRe$iD41o<8bQ&YI6Z+H?99zHubtQ=DSB9(5d`c+b2XK
zotC)WK#d@+Xg)7W{IqbcBMR^Zz?+6koFn~FC|Oraa1pgaU!ve5Z_lv&A|kz+_h5=d
zZ;{7kihEY1{ZN`NIgSIqX1?Ul5uTXbZc&@2C~5um=x7#9*!!4Gu1{)^SK7>)p2vr<
z%pTW??M_++r7w_P|7B;(Yvhqdy|L||V{Tm@x8Os
zOxDmKN&HV*@-Gsvzl1npUE#iEc=Qnpu!UlZjdca8zW6DcCg;HrM()nrA^8j6VzEBV
zodK~5w_XK6-lFZT3-2XVsdPvHs5EjJQFAYmBJrQ7w2TOfkjAR%K4G*7J8f&V+6!TC
zsT_Iufph0HP+av&6XY1A$C)H4O!}JNu$NI@Mt&4UGGIT9Yf1KhQ`Tz&MP0;C|d_Iem4X{N&~cT;;+4B
zz(5$?K7;r#qxI8hmZ4G9QpF~mSLM5Kip_3BFazb?>C43X5dRpK+fKXk8q5#
zHT|1u%R+ze>oFJr)3)+pQI@dtxg2bPqHS&U4+bL+6iF-e;2XEN!|w^a)Rb?ep&d3m
zt`IQw7O@8zd8Tf8d|t5>@RMdNd$ges=5n^W?%S<(fkD_VD;P{iKh+qb1f4;Jt^hlT
z!4a5b%>8OI?ZOU*xbV(1wzXKvm}ZBYNzB`iD@Ss;5(Ei4Z!9X|mpT!&9QuX+z65cp
z*EC3v4ds*PP3(aKbwzcdDs!FJDt@d*a}^H!ixd6l<-~N(8b&anV
JU3>8S{{g;wqRs#S
literal 0
HcmV?d00001
diff --git a/maps/southern_cross/job/outfits.dm b/maps/southern_cross/job/outfits.dm
index 56e62dd28d9..3994ff9be3f 100644
--- a/maps/southern_cross/job/outfits.dm
+++ b/maps/southern_cross/job/outfits.dm
@@ -13,8 +13,13 @@ Keep outfits simple. Spawn with basic uniforms and minimal gear. Gear instead go
l_ear = /obj/item/device/radio/headset/explorer
id_slot = slot_wear_id
pda_slot = slot_l_store
+<<<<<<< HEAD
pda_type = /obj/item/device/pda/explorer //VORESTation Edit - Better Brown
id_type = /obj/item/weapon/card/id/explorer //VOREStation Edit
+=======
+ pda_type = /obj/item/device/pda/cargo // Brown looks more rugged
+ id_type = /obj/item/weapon/card/id/science/explorer
+>>>>>>> 47d2c55... New ID Card Design (#7815)
id_pda_assignment = "Explorer"
flags = OUTFIT_HAS_BACKPACK|OUTFIT_COMPREHENSIVE_SURVIVAL
backpack_contents = list(/obj/item/clothing/accessory/permit/gun/planetside = 1)
@@ -47,7 +52,12 @@ Keep outfits simple. Spawn with basic uniforms and minimal gear. Gear instead go
uniform_accessories = list(/obj/item/clothing/accessory/storage/webbing/pilot1 = 1)
id_slot = slot_wear_id
pda_slot = slot_belt
+<<<<<<< HEAD
pda_type = /obj/item/device/pda //VOREStation Edit - Civilian
+=======
+ pda_type = /obj/item/device/pda/cargo // Brown looks more rugged
+ id_type = /obj/item/weapon/card/id/civilian/pilot
+>>>>>>> 47d2c55... New ID Card Design (#7815)
id_pda_assignment = "Pilot"
flags = OUTFIT_HAS_BACKPACK|OUTFIT_COMPREHENSIVE_SURVIVAL
@@ -60,6 +70,12 @@ Keep outfits simple. Spawn with basic uniforms and minimal gear. Gear instead go
l_hand = /obj/item/weapon/storage/firstaid/regular
belt = /obj/item/weapon/storage/belt/medical/emt
pda_slot = slot_l_store
+<<<<<<< HEAD
pda_type = /obj/item/device/pda/sar //VOREStation Add
id_pda_assignment = "Field Medic" //VOREStation Edit
flags = OUTFIT_HAS_BACKPACK|OUTFIT_EXTENDED_SURVIVAL|OUTFIT_COMPREHENSIVE_SURVIVAL
+=======
+ id_type = /obj/item/weapon/card/id/medical/sar
+ id_pda_assignment = "Search and Rescue"
+ flags = OUTFIT_HAS_BACKPACK|OUTFIT_EXTENDED_SURVIVAL|OUTFIT_COMPREHENSIVE_SURVIVAL
+>>>>>>> 47d2c55... New ID Card Design (#7815)
diff --git a/vorestation.dme b/vorestation.dme
index 9b8cb172396..aaaea8c1deb 100644
--- a/vorestation.dme
+++ b/vorestation.dme
@@ -1306,7 +1306,11 @@
#include "code\game\objects\items\weapons\grenades\spawnergrenade_vr.dm"
#include "code\game\objects\items\weapons\grenades\supermatter.dm"
#include "code\game\objects\items\weapons\id cards\cards.dm"
+<<<<<<< HEAD:vorestation.dme
#include "code\game\objects\items\weapons\id cards\cards_vr.dm"
+=======
+#include "code\game\objects\items\weapons\id cards\id_stacks.dm"
+>>>>>>> 47d2c55... New ID Card Design (#7815):polaris.dme
#include "code\game\objects\items\weapons\id cards\station_ids.dm"
#include "code\game\objects\items\weapons\id cards\station_ids_vr.dm"
#include "code\game\objects\items\weapons\id cards\syndicate_ids.dm"
From bf28bee12d47ca18a432838319a2af54e319704e Mon Sep 17 00:00:00 2001
From: Novacat <35587478+Novacat@users.noreply.github.com>
Date: Mon, 22 Mar 2021 01:36:08 -0400
Subject: [PATCH 2/5] Update vorestation.dme
---
vorestation.dme | 3 ---
1 file changed, 3 deletions(-)
diff --git a/vorestation.dme b/vorestation.dme
index aaaea8c1deb..c7811704c09 100644
--- a/vorestation.dme
+++ b/vorestation.dme
@@ -1306,11 +1306,8 @@
#include "code\game\objects\items\weapons\grenades\spawnergrenade_vr.dm"
#include "code\game\objects\items\weapons\grenades\supermatter.dm"
#include "code\game\objects\items\weapons\id cards\cards.dm"
-<<<<<<< HEAD:vorestation.dme
#include "code\game\objects\items\weapons\id cards\cards_vr.dm"
-=======
#include "code\game\objects\items\weapons\id cards\id_stacks.dm"
->>>>>>> 47d2c55... New ID Card Design (#7815):polaris.dme
#include "code\game\objects\items\weapons\id cards\station_ids.dm"
#include "code\game\objects\items\weapons\id cards\station_ids_vr.dm"
#include "code\game\objects\items\weapons\id cards\syndicate_ids.dm"
From a770ab4f7e321413e352f6600a13f937fa117f52 Mon Sep 17 00:00:00 2001
From: Novacat <35587478+Novacat@users.noreply.github.com>
Date: Mon, 22 Mar 2021 01:37:43 -0400
Subject: [PATCH 3/5] Update syndicate_ids.dm
---
.../items/weapons/id cards/syndicate_ids.dm | 117 +-----------------
1 file changed, 1 insertion(+), 116 deletions(-)
diff --git a/code/game/objects/items/weapons/id cards/syndicate_ids.dm b/code/game/objects/items/weapons/id cards/syndicate_ids.dm
index 8ef8894982a..01f6591104e 100644
--- a/code/game/objects/items/weapons/id cards/syndicate_ids.dm
+++ b/code/game/objects/items/weapons/id cards/syndicate_ids.dm
@@ -62,121 +62,6 @@
registered_user.unregister(OBSERVER_EVENT_DESTROY, src)
registered_user = null
-<<<<<<< HEAD
-=======
-/obj/item/weapon/card/id/syndicate/CanUseTopic(mob/user)
- if(user != registered_user)
- return STATUS_CLOSE
- return ..()
-
-/obj/item/weapon/card/id/syndicate/Topic(href, href_list, var/datum/topic_state/state)
- if(..())
- return 1
-
- var/user = usr
- if(href_list["electronic_warfare"])
- electronic_warfare = text2num(href_list["electronic_warfare"])
- to_chat(user, "Electronic warfare [electronic_warfare ? "enabled" : "disabled"].")
- else if(href_list["set"])
- switch(href_list["set"])
- if("Age")
- var/new_age = input(user,"What age would you like to put on this card?","Agent Card Age", age) as null|num
- if(!isnull(new_age) && CanUseTopic(user, state))
- if(new_age < 0)
- age = initial(age)
- else
- age = new_age
- to_chat(user, "Age has been set to '[age]'.")
- . = 1
- if("Appearance")
- var/datum/card_state/choice = input(user, "Select the appearance for this card.", "Agent Card Appearance") as null|anything in id_card_states()
- if(choice && CanUseTopic(user, state))
- src.icon_state = choice.icon_state
- src.item_state = choice.item_state
- src.sprite_stack = choice.sprite_stack
- update_icon()
- to_chat(usr, "Appearance changed to [choice].")
- . = 1
- if("Assignment")
- var/new_job = sanitize(input(user,"What assignment would you like to put on this card?\nChanging assignment will not grant or remove any access levels.","Agent Card Assignment", assignment) as null|text)
- if(!isnull(new_job) && CanUseTopic(user, state))
- src.assignment = new_job
- to_chat(user, "Occupation changed to '[new_job]'.")
- update_name()
- . = 1
- if("Blood Type")
- var/default = blood_type
- if(default == initial(blood_type) && ishuman(user))
- var/mob/living/carbon/human/H = user
- if(H.dna)
- default = H.dna.b_type
- var/new_blood_type = sanitize(input(user,"What blood type would you like to be written on this card?","Agent Card Blood Type",default) as null|text)
- if(!isnull(new_blood_type) && CanUseTopic(user, state))
- src.blood_type = new_blood_type
- to_chat(user, "Blood type changed to '[new_blood_type]'.")
- . = 1
- if("DNA Hash")
- var/default = dna_hash
- if(default == initial(dna_hash) && ishuman(user))
- var/mob/living/carbon/human/H = user
- if(H.dna)
- default = H.dna.unique_enzymes
- var/new_dna_hash = sanitize(input(user,"What DNA hash would you like to be written on this card?","Agent Card DNA Hash",default) as null|text)
- if(!isnull(new_dna_hash) && CanUseTopic(user, state))
- src.dna_hash = new_dna_hash
- to_chat(user, "DNA hash changed to '[new_dna_hash]'.")
- . = 1
- if("Fingerprint Hash")
- var/default = fingerprint_hash
- if(default == initial(fingerprint_hash) && ishuman(user))
- var/mob/living/carbon/human/H = user
- if(H.dna)
- default = md5(H.dna.uni_identity)
- var/new_fingerprint_hash = sanitize(input(user,"What fingerprint hash would you like to be written on this card?","Agent Card Fingerprint Hash",default) as null|text)
- if(!isnull(new_fingerprint_hash) && CanUseTopic(user, state))
- src.fingerprint_hash = new_fingerprint_hash
- to_chat(user, "Fingerprint hash changed to '[new_fingerprint_hash]'.")
- . = 1
- if("Name")
- var/new_name = sanitizeName(input(user,"What name would you like to put on this card?","Agent Card Name", registered_name) as null|text)
- if(!isnull(new_name) && CanUseTopic(user, state))
- src.registered_name = new_name
- update_name()
- to_chat(user, "Name changed to '[new_name]'.")
- . = 1
- if("Photo")
- set_id_photo(user)
- to_chat(user, "Photo changed.")
- . = 1
- if("Sex")
- var/new_sex = sanitize(input(user,"What sex would you like to put on this card?","Agent Card Sex", sex) as null|text)
- if(!isnull(new_sex) && CanUseTopic(user, state))
- src.sex = new_sex
- to_chat(user, "Sex changed to '[new_sex]'.")
- . = 1
- if("Factory Reset")
- if(alert("This will factory reset the card, including access and owner. Continue?", "Factory Reset", "No", "Yes") == "Yes" && CanUseTopic(user, state))
- age = initial(age)
- access = syndicate_access.Copy()
- assignment = initial(assignment)
- blood_type = initial(blood_type)
- dna_hash = initial(dna_hash)
- electronic_warfare = initial(electronic_warfare)
- fingerprint_hash = initial(fingerprint_hash)
- icon_state = initial(icon_state)
- sprite_stack = list("")
- update_icon()
- name = initial(name)
- registered_name = initial(registered_name)
- unset_registered_user()
- sex = initial(sex)
- to_chat(user, "All information has been deleted from \the [src].")
- . = 1
-
- // Always update the UI, or buttons will spin indefinitely
- SSnanoui.update_uis(src)
-
->>>>>>> 47d2c55... New ID Card Design (#7815)
/var/global/list/id_card_states
/proc/id_card_states()
if(!id_card_states)
@@ -208,4 +93,4 @@
registered_name = "Syndicate"
assignment = "Syndicate Commander"
icon_state = "syndicate-id"
- access = list(access_syndicate, access_external_airlocks)
\ No newline at end of file
+ access = list(access_syndicate, access_external_airlocks)
From 67dfb26b8150ce07a42468a994bac5c3dddd4f3c Mon Sep 17 00:00:00 2001
From: Novacat <35587478+Novacat@users.noreply.github.com>
Date: Mon, 22 Mar 2021 01:41:22 -0400
Subject: [PATCH 4/5] Update outfits.dm
---
maps/southern_cross/job/outfits.dm | 16 +---------------
1 file changed, 1 insertion(+), 15 deletions(-)
diff --git a/maps/southern_cross/job/outfits.dm b/maps/southern_cross/job/outfits.dm
index 3994ff9be3f..9fa06c2fa99 100644
--- a/maps/southern_cross/job/outfits.dm
+++ b/maps/southern_cross/job/outfits.dm
@@ -13,13 +13,8 @@ Keep outfits simple. Spawn with basic uniforms and minimal gear. Gear instead go
l_ear = /obj/item/device/radio/headset/explorer
id_slot = slot_wear_id
pda_slot = slot_l_store
-<<<<<<< HEAD
pda_type = /obj/item/device/pda/explorer //VORESTation Edit - Better Brown
- id_type = /obj/item/weapon/card/id/explorer //VOREStation Edit
-=======
- pda_type = /obj/item/device/pda/cargo // Brown looks more rugged
id_type = /obj/item/weapon/card/id/science/explorer
->>>>>>> 47d2c55... New ID Card Design (#7815)
id_pda_assignment = "Explorer"
flags = OUTFIT_HAS_BACKPACK|OUTFIT_COMPREHENSIVE_SURVIVAL
backpack_contents = list(/obj/item/clothing/accessory/permit/gun/planetside = 1)
@@ -52,12 +47,8 @@ Keep outfits simple. Spawn with basic uniforms and minimal gear. Gear instead go
uniform_accessories = list(/obj/item/clothing/accessory/storage/webbing/pilot1 = 1)
id_slot = slot_wear_id
pda_slot = slot_belt
-<<<<<<< HEAD
pda_type = /obj/item/device/pda //VOREStation Edit - Civilian
-=======
- pda_type = /obj/item/device/pda/cargo // Brown looks more rugged
id_type = /obj/item/weapon/card/id/civilian/pilot
->>>>>>> 47d2c55... New ID Card Design (#7815)
id_pda_assignment = "Pilot"
flags = OUTFIT_HAS_BACKPACK|OUTFIT_COMPREHENSIVE_SURVIVAL
@@ -70,12 +61,7 @@ Keep outfits simple. Spawn with basic uniforms and minimal gear. Gear instead go
l_hand = /obj/item/weapon/storage/firstaid/regular
belt = /obj/item/weapon/storage/belt/medical/emt
pda_slot = slot_l_store
-<<<<<<< HEAD
+ id_type = /obj/item/weapon/card/id/medical/sar
pda_type = /obj/item/device/pda/sar //VOREStation Add
id_pda_assignment = "Field Medic" //VOREStation Edit
flags = OUTFIT_HAS_BACKPACK|OUTFIT_EXTENDED_SURVIVAL|OUTFIT_COMPREHENSIVE_SURVIVAL
-=======
- id_type = /obj/item/weapon/card/id/medical/sar
- id_pda_assignment = "Search and Rescue"
- flags = OUTFIT_HAS_BACKPACK|OUTFIT_EXTENDED_SURVIVAL|OUTFIT_COMPREHENSIVE_SURVIVAL
->>>>>>> 47d2c55... New ID Card Design (#7815)
From 362a5129af2e90ae4451ceb79bdade028d842a7f Mon Sep 17 00:00:00 2001
From: Heroman
Date: Tue, 23 Mar 2021 18:02:31 +1000
Subject: [PATCH 5/5] Adjusts IDs to match vorestation status quo
---
code/datums/outfits/jobs/civilian.dm | 12 +-
code/datums/outfits/jobs/civilian_vr.dm | 5 +-
code/datums/outfits/jobs/command_vr.dm | 5 +
code/datums/outfits/jobs/medical_vr.dm | 2 +
code/datums/outfits/jobs/science_vr.dm | 8 ++
code/datums/outfits/jobs/special_vr.dm | 6 +-
code/datums/outfits/outfit_vr.dm | 8 +-
code/game/jobs/job/civilian_vr.dm | 2 +-
.../items/weapons/id cards/id_stacks.dm | 6 +-
.../items/weapons/id cards/id_stacks_vr.dm | 131 ++++++++++++++++++
maps/tether/tether_jobs.dm | 9 +-
vorestation.dme | 10 +-
12 files changed, 182 insertions(+), 22 deletions(-)
create mode 100644 code/datums/outfits/jobs/command_vr.dm
create mode 100644 code/datums/outfits/jobs/medical_vr.dm
create mode 100644 code/datums/outfits/jobs/science_vr.dm
create mode 100644 code/game/objects/items/weapons/id cards/id_stacks_vr.dm
diff --git a/code/datums/outfits/jobs/civilian.dm b/code/datums/outfits/jobs/civilian.dm
index 7d7d86fedc2..cda81f977f9 100644
--- a/code/datums/outfits/jobs/civilian.dm
+++ b/code/datums/outfits/jobs/civilian.dm
@@ -1,6 +1,6 @@
/decl/hierarchy/outfit/job/assistant
name = OUTFIT_JOB_NAME(USELESS_JOB) //VOREStation Edit - Visitor not Assistant
- id_type = /obj/item/weapon/card/id/assistant
+ id_type = /obj/item/weapon/card/id/generic //VOREStation Edit
/decl/hierarchy/outfit/job/assistant/visitor
name = OUTFIT_JOB_NAME("Visitor")
@@ -25,7 +25,7 @@
/decl/hierarchy/outfit/job/service/bartender
name = OUTFIT_JOB_NAME("Bartender")
uniform = /obj/item/clothing/under/rank/bartender
- id_type = /obj/item/weapon/card/id/civilian/bartender
+ id_type = /obj/item/weapon/card/id/civilian/service/bartender //VOREStation Edit
pda_type = /obj/item/device/pda/bar
backpack_contents = list(/obj/item/clothing/accessory/permit/gun/bar = 1)
@@ -44,7 +44,7 @@
uniform = /obj/item/clothing/under/rank/chef
suit = /obj/item/clothing/suit/chef
head = /obj/item/clothing/head/chefhat
- id_type = /obj/item/weapon/card/id/civilian/chef
+ id_type = /obj/item/weapon/card/id/civilian/service/chef //VOREStation Edit
pda_type = /obj/item/device/pda/chef
/decl/hierarchy/outfit/job/service/chef/cook
@@ -68,13 +68,13 @@
backpack = /obj/item/weapon/storage/backpack/hydroponics
satchel_one = /obj/item/weapon/storage/backpack/satchel/hyd
messenger_bag = /obj/item/weapon/storage/backpack/messenger/hyd
- id_type = /obj/item/weapon/card/id/civilian/botanist
+ id_type = /obj/item/weapon/card/id/civilian/service/botanist //VOREStation Edit
pda_type = /obj/item/device/pda/botanist
/decl/hierarchy/outfit/job/service/janitor
name = OUTFIT_JOB_NAME("Janitor")
uniform = /obj/item/clothing/under/rank/janitor
- id_type = /obj/item/weapon/card/id/civilian/janitor
+ id_type = /obj/item/weapon/card/id/civilian/service/janitor //VOREStation Edit
pda_type = /obj/item/device/pda/janitor
/decl/hierarchy/outfit/job/librarian
@@ -114,7 +114,7 @@
gloves = /obj/item/clothing/gloves/black
l_ear = /obj/item/device/radio/headset
id_slot = slot_wear_id
- id_type = /obj/item/weapon/card/id/science/explorer
+ id_type = /obj/item/weapon/card/id/exploration //VOREStation Edit
pda_slot = slot_belt
pda_type = /obj/item/device/pda/cargo // Brown looks more rugged
r_pocket = /obj/item/device/gps/explorer
diff --git a/code/datums/outfits/jobs/civilian_vr.dm b/code/datums/outfits/jobs/civilian_vr.dm
index 7d39ae8c1b6..3acfffdfd15 100644
--- a/code/datums/outfits/jobs/civilian_vr.dm
+++ b/code/datums/outfits/jobs/civilian_vr.dm
@@ -1,5 +1,5 @@
/decl/hierarchy/outfit/job/assistant/worker
- id_type = /obj/item/weapon/card/id/civilian
+ id_type = /obj/item/weapon/card/id/civilian/service
/decl/hierarchy/outfit/job/assistant/cargo
id_type = /obj/item/weapon/card/id/cargo
@@ -16,3 +16,6 @@
/decl/hierarchy/outfit/job/assistant/officer
id_type = /obj/item/weapon/card/id/security
+
+/decl/hierarchy/outfit/job/assistant/entertainer
+ id_type = /obj/item/weapon/card/id/civilian/entertainer
diff --git a/code/datums/outfits/jobs/command_vr.dm b/code/datums/outfits/jobs/command_vr.dm
new file mode 100644
index 00000000000..5e90123ffcc
--- /dev/null
+++ b/code/datums/outfits/jobs/command_vr.dm
@@ -0,0 +1,5 @@
+/decl/hierarchy/outfit/job/hop
+ id_type = /obj/item/weapon/card/id/silver/hop
+
+/decl/hierarchy/outfit/job/secretary
+ id_type = /obj/item/weapon/card/id/silver/secretary
\ No newline at end of file
diff --git a/code/datums/outfits/jobs/medical_vr.dm b/code/datums/outfits/jobs/medical_vr.dm
new file mode 100644
index 00000000000..e9b2c1a0d02
--- /dev/null
+++ b/code/datums/outfits/jobs/medical_vr.dm
@@ -0,0 +1,2 @@
+/decl/hierarchy/outfit/job/medical/doctor/virologist
+ id_type = /obj/item/weapon/card/id/medical/virologist
\ No newline at end of file
diff --git a/code/datums/outfits/jobs/science_vr.dm b/code/datums/outfits/jobs/science_vr.dm
new file mode 100644
index 00000000000..cf0e9e4b3a6
--- /dev/null
+++ b/code/datums/outfits/jobs/science_vr.dm
@@ -0,0 +1,8 @@
+/decl/hierarchy/outfit/job/science/xenobiologist
+ id_type = /obj/item/weapon/card/id/science/xenobiologist
+
+/decl/hierarchy/outfit/job/science/xenobotanist
+ name = OUTFIT_JOB_NAME("Xenobotanist")
+ uniform = /obj/item/clothing/under/rank/scientist
+ id_type = /obj/item/weapon/card/id/science/xenobotanist
+ suit = /obj/item/clothing/suit/storage/toggle/labcoat/science
\ No newline at end of file
diff --git a/code/datums/outfits/jobs/special_vr.dm b/code/datums/outfits/jobs/special_vr.dm
index 010010291dd..6dea4e4cfa9 100644
--- a/code/datums/outfits/jobs/special_vr.dm
+++ b/code/datums/outfits/jobs/special_vr.dm
@@ -19,7 +19,7 @@
back = /obj/item/weapon/storage/backpack/satchel
id_type = /obj/item/weapon/card/id/centcom/ERT
pda_type = /obj/item/device/pda/centcom
-
+
post_equip(var/mob/living/carbon/human/H)
..()
ert.add_antagonist(H.mind)
@@ -31,6 +31,7 @@
shoes = /obj/item/clothing/shoes/clown_shoes
mask = /obj/item/clothing/mask/gas/clown_hat
backpack_contents = list(/obj/item/weapon/stamp/clown = 1, /obj/item/weapon/bikehorn = 1)
+ id_type = /obj/item/weapon/card/id/civilian/clown
pda_type = /obj/item/device/pda/clown
flags = 0
@@ -41,8 +42,9 @@
head = /obj/item/clothing/head/soft/mime
mask = /obj/item/clothing/mask/gas/mime
backpack_contents = list(/obj/item/weapon/pen/crayon/mime = 1)
+ id_type = /obj/item/weapon/card/id/civilian/mime
pda_type = /obj/item/device/pda/mime
-
+
post_equip(var/mob/living/carbon/human/H)
..()
if(H.backbag == 1)
diff --git a/code/datums/outfits/outfit_vr.dm b/code/datums/outfits/outfit_vr.dm
index 455d84c90e1..12eb237a0ca 100644
--- a/code/datums/outfits/outfit_vr.dm
+++ b/code/datums/outfits/outfit_vr.dm
@@ -116,7 +116,7 @@ Keep outfits simple. Spawn with basic uniforms and minimal gear. Gear instead go
id_slot = slot_wear_id
pda_slot = slot_l_store
pda_type = /obj/item/device/pda/explorer
- id_type = /obj/item/weapon/card/id/explorer
+ id_type = /obj/item/weapon/card/id/exploration
id_pda_assignment = "Explorer"
flags = OUTFIT_HAS_BACKPACK|OUTFIT_COMPREHENSIVE_SURVIVAL
@@ -132,6 +132,7 @@ Keep outfits simple. Spawn with basic uniforms and minimal gear. Gear instead go
id_slot = slot_wear_id
pda_slot = slot_belt
pda_type = /obj/item/device/pda
+ id_type = /obj/item/weapon/card/id/civilian/pilot
id_pda_assignment = "Pilot"
flags = OUTFIT_HAS_BACKPACK|OUTFIT_COMPREHENSIVE_SURVIVAL
@@ -145,6 +146,7 @@ Keep outfits simple. Spawn with basic uniforms and minimal gear. Gear instead go
belt = /obj/item/weapon/storage/belt/medical/emt
pda_slot = slot_l_store
pda_type = /obj/item/device/pda/sar
+ id_type = /obj/item/weapon/card/id/exploration/fm
id_pda_assignment = "Field Medic"
flags = OUTFIT_HAS_BACKPACK|OUTFIT_EXTENDED_SURVIVAL|OUTFIT_COMPREHENSIVE_SURVIVAL
@@ -156,10 +158,10 @@ Keep outfits simple. Spawn with basic uniforms and minimal gear. Gear instead go
id_slot = slot_wear_id
pda_slot = slot_l_store
pda_type = /obj/item/device/pda/pathfinder
- id_type = /obj/item/weapon/card/id/explorer/head
+ id_type = /obj/item/weapon/card/id/exploration/head
id_pda_assignment = "Pathfinder"
flags = OUTFIT_HAS_BACKPACK|OUTFIT_EXTENDED_SURVIVAL|OUTFIT_COMPREHENSIVE_SURVIVAL
/decl/hierarchy/outfit/job/assistant/explorer
- id_type = /obj/item/weapon/card/id/explorer
+ id_type = /obj/item/weapon/card/id/exploration
flags = OUTFIT_HAS_BACKPACK|OUTFIT_COMPREHENSIVE_SURVIVAL
diff --git a/code/game/jobs/job/civilian_vr.dm b/code/game/jobs/job/civilian_vr.dm
index beb4f477f89..3d5e9cb95e3 100644
--- a/code/game/jobs/job/civilian_vr.dm
+++ b/code/game/jobs/job/civilian_vr.dm
@@ -194,7 +194,7 @@
minimal_access = list(access_entertainment)
pto_type = PTO_CIVILIAN
- outfit_type = /decl/hierarchy/outfit/job/assistant
+ outfit_type = /decl/hierarchy/outfit/job/assistant/entertainer
job_description = "An entertainer does just that, entertains! Put on plays, play music, sing songs, tell stories, or read your favorite fanfic."
alt_titles = list("Performer" = /datum/alt_title/performer, "Musician" = /datum/alt_title/musician, "Stagehand" = /datum/alt_title/stagehand,
"Actor" = /datum/alt_title/actor, "Dancer" = /datum/alt_title/dancer, "Singer" = /datum/alt_title/singer,
diff --git a/code/game/objects/items/weapons/id cards/id_stacks.dm b/code/game/objects/items/weapons/id cards/id_stacks.dm
index c073f6cba3f..4567cfe0381 100644
--- a/code/game/objects/items/weapons/id cards/id_stacks.dm
+++ b/code/game/objects/items/weapons/id cards/id_stacks.dm
@@ -7,6 +7,7 @@
base_icon = "icons/obj/card_new.dmi"
// New sprite stacks can be defined here. You could theoretically change icon-states as well but right now this file compiles before station_ids.dm so those wouldn't be affected.
+ /*
id
generic
initial_sprite_stack = list("base-stamp", "top-generic", "stamp-silhouette", "clip")
@@ -77,7 +78,7 @@
bartender
initial_sprite_stack = list("base-stamp", "top-green", "stamp-n", "pips-dark")
chef
- initial_sprite_stack = list("base-stamp", "top-green", "stamp-n", "pips-white")
+ initial_sprite_stack = list("base-stamp", "top-green", "stamp-n", "pips-white")
janitor
initial_sprite_stack = list("base-stamp", "top-green", "stamp-n", "pips-purple")
journalist
@@ -93,4 +94,5 @@
syndicate
initial_sprite_stack = list("base-stamp-dark", "top-syndicate", "stamp-s")
officer
- initial_sprite_stack = list("base-stamp-dark", "top-syndicate", "stamp-s", "pips-gold", "stripe-gold")
\ No newline at end of file
+ initial_sprite_stack = list("base-stamp-dark", "top-syndicate", "stamp-s", "pips-gold", "stripe-gold")
+ */ // VOREStation Removal - defined in id_stacks_vr.dm
\ No newline at end of file
diff --git a/code/game/objects/items/weapons/id cards/id_stacks_vr.dm b/code/game/objects/items/weapons/id cards/id_stacks_vr.dm
new file mode 100644
index 00000000000..12442a353f3
--- /dev/null
+++ b/code/game/objects/items/weapons/id cards/id_stacks_vr.dm
@@ -0,0 +1,131 @@
+/obj/item/weapon/card
+
+ id
+ initial_sprite_stack = list("base-stamp", "top-generic", "stamp-n")
+ generic
+ initial_sprite_stack = list("base-stamp", "top-generic", "stamp-silhouette", "clip")
+ centcom
+ initial_sprite_stack = list("base-stamp-silver", "top-darkgreen", "stamp-n", "pips-gold", "stripe-gold")
+ vip
+ initial_sprite_stack = list("base-stamp-gold", "top-darkgreen", "stamp-n", "pips-gold", "stripe-gold")
+ ERT
+ initial_sprite_stack = list("base-stamp-silver", "top-blue", "stamp-n", "pips-red", "stripe-red")
+ medic
+ initial_sprite_stack = list("base-stamp-silver", "top-blue", "stamp-n", "pips-medblu", "stripe-medblu")
+ commander
+ initial_sprite_stack = list("base-stamp-silver", "top-blue", "stamp-n", "pips-gold", "stripe-gold")
+ engineer
+ initial_sprite_stack = list("base-stamp-silver", "top-blue", "stamp-n", "pips-orange", "stripe-orange")
+ janitor
+ initial_sprite_stack = list("base-stamp-silver", "top-blue", "stamp-n", "pips-purple", "stripe-purple")
+ silver
+ initial_sprite_stack = list("base-stamp-silver", "top-blue", "stamp-n")
+ secretary
+ initial_sprite_stack = list("base-stamp", "top-blue", "stamp-n")
+ hop
+ initial_sprite_stack = list("base-stamp-silver", "top-blue", "stamp-n", "pips-gold")
+ medical
+ initial_sprite_stack = list("base-stamp", "top-medblu", "stamp-n")
+ chemist
+ initial_sprite_stack = list("base-stamp", "top-medblu", "stamp-n", "stripe-orange")
+ geneticist
+ initial_sprite_stack = list("base-stamp", "top-medblu", "stamp-n", "stripe-purple")
+ psych
+ initial_sprite_stack = list("base-stamp", "top-medblu", "stamp-n", "stripe-brown")
+ virologist
+ initial_sprite_stack = list("base-stamp", "top-medblu", "stamp-n", "stripe-green")
+ emt
+ initial_sprite_stack = list("base-stamp", "top-medblu", "stamp-n", "stripe-blue")
+ head
+ initial_sprite_stack = list("base-stamp-silver", "top-medblu", "stamp-n", "pips-gold")
+ /*
+ sar
+ initial_sprite_stack = list("base-stamp", "top-darkgreen", "stamp-n", "pips-medblu")
+ */
+ security
+ initial_sprite_stack = list("base-stamp", "top-red", "stamp-n")
+ detective
+ initial_sprite_stack = list("base-stamp", "top-red", "stamp-n", "stripe-brown")
+ warden
+ initial_sprite_stack = list("base-stamp", "top-red", "stamp-n", "stripe-white")
+ head
+ initial_sprite_stack = list("base-stamp-silver", "top-red", "stamp-n", "pips-gold")
+ engineering
+ initial_sprite_stack = list("base-stamp", "top-orange", "stamp-n")
+ atmos
+ initial_sprite_stack = list("base-stamp", "top-orange", "stripe-medblu", "stamp-n")
+ head
+ initial_sprite_stack = list("base-stamp-silver", "top-orange", "stamp-n", "pips-gold")
+ science
+ initial_sprite_stack = list("base-stamp", "top-purple", "stamp-n")
+ roboticist
+ initial_sprite_stack = list("base-stamp", "top-purple", "stamp-n", "stripe-brown")
+ xenobiologist
+ initial_sprite_stack = list("base-stamp", "top-purple", "stamp-n", "stripe-orange")
+ xenobotanist
+ initial_sprite_stack = list("base-stamp", "top-purple", "stamp-n", "stripe-green")
+ /*
+ explorer
+ initial_sprite_stack = list("base-stamp", "top-darkgreen", "stamp-n")
+ */
+ head
+ initial_sprite_stack = list("base-stamp-silver", "top-purple", "stamp-n", "pips-gold")
+ /*
+ pathfinder
+ initial_sprite_stack = list("base-stamp-silver", "top-darkgreen", "stamp-n", "pips-purple") //not a true head, no gold stripe for you
+ */
+ cargo
+ initial_sprite_stack = list("base-stamp", "top-brown", "stamp-n")
+ miner
+ initial_sprite_stack = list("base-stamp", "top-brown", "stamp-n", "stripe-purple")
+ head
+ initial_sprite_stack = list("base-stamp-silver", "top-brown", "stamp-n", "pips-white")
+ civilian
+ initial_sprite_stack = list("base-stamp", "top-generic", "stamp-n")
+ chaplain
+ initial_sprite_stack = list("base-stamp-dark", "top-dark", "stamp-cross", "stripe-white")
+ internal_affairs
+ initial_sprite_stack = list("base-stamp", "top-blue", "stamp-n", "stripe-black")
+ service
+ botanist
+ initial_sprite_stack = list("base-stamp", "top-green", "stamp-n", "stripe-darkgreen")
+ bartender
+ initial_sprite_stack = list("base-stamp", "top-green", "stamp-n", "stripe-black")
+ chef
+ initial_sprite_stack = list("base-stamp", "top-green", "stamp-n", "stripe-white")
+ janitor
+ initial_sprite_stack = list("base-stamp", "top-green", "stamp-n", "stripe-purple")
+ journalist
+ initial_sprite_stack = list("base-stamp", "top-generic", "stamp-n", "stripe-red")
+ clown
+ initial_sprite_stack = list("base-stamp", "top-rainbow", "stamp-n")
+ mime
+ initial_sprite_stack = list("base-stamp", "top-white", "stamp-n", "stripe-black")
+ entertainer
+ initial_sprite_stack = list("base-stamp", "top-generic", "stamp-n", "stripe-brown")
+ pilot
+ initial_sprite_stack = list("base-stamp", "top-generic", "stamp-n", "stripe-pink")
+ head
+ initial_sprite_stack = list("base-stamp-silver", "top-blue", "stamp-n", "pips-gold")
+ exploration
+ initial_sprite_stack = list("base-stamp", "top-pink", "stamp-n")
+ fm
+ initial_sprite_stack = list("base-stamp", "top-pink", "stamp-n", "stripe-medblu")
+ head
+ initial_sprite_stack = list("base-stamp-silver", "top-pink", "stamp-n", "pips-white")
+ talon
+ initial_sprite_stack = list("base-stamp-dark", "top-dark", "stamp-silhouette")
+ doctor
+ initial_sprite_stack = list("base-stamp-dark", "top-dark", "stamp-silhouette", "pips-medblu", "stripe-medblu")
+ engineer
+ initial_sprite_stack = list("base-stamp-dark", "top-dark", "stamp-silhouette", "pips-orange", "stripe-orange")
+ officer
+ initial_sprite_stack = list("base-stamp-dark", "top-dark", "stamp-silhouette", "pips-red", "stripe-red")
+ pilot
+ initial_sprite_stack = list("base-stamp-dark", "top-dark", "stamp-silhouette", "pips-purple", "stripe-purple")
+ captain
+ initial_sprite_stack = list("base-stamp-dark", "top-dark", "stamp-silhouette", "pips-gold", "stripe-gold")
+ syndicate
+ initial_sprite_stack = list("base-stamp-dark", "top-syndicate", "stamp-s")
+ officer
+ initial_sprite_stack = list("base-stamp-dark", "top-syndicate", "stamp-s", "pips-gold", "stripe-gold")
\ No newline at end of file
diff --git a/maps/tether/tether_jobs.dm b/maps/tether/tether_jobs.dm
index 89ea143f504..7c671ac58ad 100644
--- a/maps/tether/tether_jobs.dm
+++ b/maps/tether/tether_jobs.dm
@@ -136,7 +136,7 @@
/decl/hierarchy/outfit/job/talon_captain
name = OUTFIT_JOB_NAME("Talon Captain")
- id_type = /obj/item/weapon/card/id/gold
+ id_type = /obj/item/weapon/card/id/talon/captain
id_slot = slot_wear_id
pda_type = null
@@ -151,6 +151,7 @@
/decl/hierarchy/outfit/job/talon_pilot
name = OUTFIT_JOB_NAME("Talon Pilot")
+ id_type = /obj/item/weapon/card/id/talon/pilot
id_slot = slot_wear_id
pda_type = null
flags = OUTFIT_HAS_BACKPACK|OUTFIT_COMPREHENSIVE_SURVIVAL
@@ -167,7 +168,7 @@
name = OUTFIT_JOB_NAME("Talon Doctor")
hierarchy_type = /decl/hierarchy/outfit/job
- id_type = /obj/item/weapon/card/id/medical
+ id_type = /obj/item/weapon/card/id/talon/doctor
id_slot = slot_wear_id
pda_type = null
@@ -185,7 +186,7 @@
name = OUTFIT_JOB_NAME("Talon Security")
hierarchy_type = /decl/hierarchy/outfit/job
- id_type = /obj/item/weapon/card/id/security
+ id_type = /obj/item/weapon/card/id/talon/officer
id_slot = slot_wear_id
pda_type = null
backpack_contents = list(/obj/item/weapon/handcuffs = 1)
@@ -203,7 +204,7 @@
name = OUTFIT_JOB_NAME("Talon Engineer")
hierarchy_type = /decl/hierarchy/outfit/job
- id_type = /obj/item/weapon/card/id/engineering
+ id_type = /obj/item/weapon/card/id/talon/engineer
id_slot = slot_wear_id
pda_type = null
flags = OUTFIT_HAS_BACKPACK|OUTFIT_EXTENDED_SURVIVAL
diff --git a/vorestation.dme b/vorestation.dme
index c7811704c09..c437a9a9fdd 100644
--- a/vorestation.dme
+++ b/vorestation.dme
@@ -394,11 +394,14 @@
#include "code\datums\outfits\jobs\civilian.dm"
#include "code\datums\outfits\jobs\civilian_vr.dm"
#include "code\datums\outfits\jobs\command.dm"
+#include "code\datums\outfits\jobs\command_vr.dm"
#include "code\datums\outfits\jobs\engineering.dm"
#include "code\datums\outfits\jobs\job.dm"
#include "code\datums\outfits\jobs\medical.dm"
+#include "code\datums\outfits\jobs\medical_vr.dm"
#include "code\datums\outfits\jobs\misc.dm"
#include "code\datums\outfits\jobs\science.dm"
+#include "code\datums\outfits\jobs\science_vr.dm"
#include "code\datums\outfits\jobs\security.dm"
#include "code\datums\outfits\jobs\special_vr.dm"
#include "code\datums\outfits\military\fleet.dm"
@@ -1308,6 +1311,7 @@
#include "code\game\objects\items\weapons\id cards\cards.dm"
#include "code\game\objects\items\weapons\id cards\cards_vr.dm"
#include "code\game\objects\items\weapons\id cards\id_stacks.dm"
+#include "code\game\objects\items\weapons\id cards\id_stacks_vr.dm"
#include "code\game\objects\items\weapons\id cards\station_ids.dm"
#include "code\game\objects\items\weapons\id cards\station_ids_vr.dm"
#include "code\game\objects\items\weapons\id cards\syndicate_ids.dm"
@@ -1707,9 +1711,9 @@
#include "code\modules\ai\ai_holder_targeting_vr.dm"
#include "code\modules\ai\interfaces.dm"
#include "code\modules\ai\say_list.dm"
-#include "code\modules\ai\ai_holder_subtypes\simple_mob_ai.dm"
-#include "code\modules\ai\ai_holder_subtypes\simple_mob_ai_vr.dm"
-#include "code\modules\ai\ai_holder_subtypes\slime_xenobio_ai.dm"
+#include "code\modules\ai\aI_holder_subtypes\simple_mob_ai.dm"
+#include "code\modules\ai\aI_holder_subtypes\simple_mob_ai_vr.dm"
+#include "code\modules\ai\aI_holder_subtypes\slime_xenobio_ai.dm"
#include "code\modules\alarm\alarm.dm"
#include "code\modules\alarm\alarm_handler.dm"
#include "code\modules\alarm\atmosphere_alarm.dm"