From 3d30288a5e135d55a31386adfda19232f48185d1 Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Mon, 11 May 2020 17:56:04 -0400 Subject: [PATCH 01/37] Round hours shown on occupations page --- code/modules/client/preference_setup/occupation/occupation.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/client/preference_setup/occupation/occupation.dm b/code/modules/client/preference_setup/occupation/occupation.dm index 42794aa8bf..59229c1d70 100644 --- a/code/modules/client/preference_setup/occupation/occupation.dm +++ b/code/modules/client/preference_setup/occupation/occupation.dm @@ -146,7 +146,7 @@ //VOREStation Add if(!job.player_has_enough_playtime(user.client)) var/available_in_hours = job.available_in_playhours(user.client) - . += "[rank] \[IN [(available_in_hours)] DEPTHOURS]" + . += "[rank] \[IN [round(available_in_hours, 0.1)] DEPTHOURS]" continue //VOREStation Add End if(job.minimum_character_age && user.client && (user.client.prefs.age < job.minimum_character_age)) From cc6592e35ceab0814ebf9983d9851891ee9ea0f2 Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Fri, 15 May 2020 11:21:30 -0400 Subject: [PATCH 02/37] Update revinfo proc --- code/datums/helper_datums/getrev.dm | 79 +++++++++++++++++++++-------- 1 file changed, 57 insertions(+), 22 deletions(-) diff --git a/code/datums/helper_datums/getrev.dm b/code/datums/helper_datums/getrev.dm index 8b194a139c..7c214e3a29 100644 --- a/code/datums/helper_datums/getrev.dm +++ b/code/datums/helper_datums/getrev.dm @@ -5,40 +5,75 @@ var/global/datum/getrev/revdata = new() var/revision var/date var/showinfo + var/list/testmerge = list() /datum/getrev/New() - var/list/head_branch = file2list(".git/HEAD", "\n") - if(head_branch.len) - branch = copytext(head_branch[1], 17) + if(world.TgsAvailable()) // Try TGS maybe + testmerge = world.TgsTestMerges() + var/datum/tgs_revision_information/REV = world.TgsRevision() + if(REV) + revision = REV.origin_commit || REV.commit + branch = "-Using TGS-" // TGS doesn't provide branch info yet + date = "-Using TGS-" // Or date + + if(!revision) // File parse method + var/list/head_branch = file2list(".git/HEAD", "\n") + if(head_branch.len) + branch = copytext(head_branch[1], 17) - var/list/head_log = file2list(".git/logs/HEAD", "\n") - for(var/line=head_log.len, line>=1, line--) - if(head_log[line]) - var/list/last_entry = splittext(head_log[line], " ") - if(last_entry.len < 2) continue - revision = last_entry[2] - // Get date/time - if(last_entry.len >= 5) - var/unix_time = text2num(last_entry[5]) - if(unix_time) - date = unix2date(unix_time) - break + var/list/head_log = file2list(".git/logs/HEAD", "\n") + for(var/line=head_log.len, line>=1, line--) + if(head_log[line]) + var/list/last_entry = splittext(head_log[line], " ") + if(last_entry.len < 2) continue + revision = last_entry[2] + // Get date/time + if(last_entry.len >= 5) + var/unix_time = text2num(last_entry[5]) + if(unix_time) + date = unix2date(unix_time) + break - to_world_log("Running revision:") - to_world_log(branch) - to_world_log(date) - to_world_log(revision) + to_world_log("-Revision Info-") + to_world_log("Branch: [branch]") + to_world_log("Date: [date]") + to_world_log("Revision: [revision]") + +/datum/getrev/proc/GetTestMergeInfo(header = TRUE) + if(!testmerge.len) + return "" + . = header ? "The following pull requests are currently test merged:
" : "" + for(var/line in testmerge) + var/datum/tgs_revision_information/test_merge/tm = line + var/cm = tm.pull_request_commit + var/details = ": '" + html_encode(tm.title) + "' by " + html_encode(tm.author) + " at commit " + html_encode(copytext_char(cm, 1, 11)) + if(details && findtext(details, "\[s\]") && (!usr || !usr.client.holder)) + continue + . += "#[tm.number][details]
" client/verb/showrevinfo() set category = "OOC" set name = "Show Server Revision" set desc = "Check the current server code revision" + var/list/msg = list() + if(revdata.revision) - to_chat(src, "Server revision: [revdata.branch] - [revdata.date]") + msg += "Server revision: [revdata.branch] - [revdata.date]" if(config.githuburl) - to_chat(src, "[revdata.revision]") + msg += "[revdata.revision]" else to_chat(src,revdata.revision) else - to_chat(src, "Revision unknown") + msg += "Server revision: Unknown" + + if(world.TgsAvailable()) + var/datum/tgs_version/version = world.TgsVersion() + msg += "TGS version: [version.raw_parameter]" + var/datum/tgs_version/api_version = world.TgsApiVersion() + msg += "DMAPI version: [api_version.raw_parameter]" + + if(revdata.testmerge.len) + msg += revdata.GetTestMergeInfo() + + to_chat(src, msg.Join("
")) From 9ec585ec68bd2f1c2875647588715a9bbcf694e7 Mon Sep 17 00:00:00 2001 From: Arokha Sieyes Date: Fri, 15 May 2020 11:57:44 -0400 Subject: [PATCH 03/37] Allow hiding other huds like ghost huds with F12 --- code/_onclick/hud/hud.dm | 93 +++++++++++++++++++++------------------- 1 file changed, 49 insertions(+), 44 deletions(-) diff --git a/code/_onclick/hud/hud.dm b/code/_onclick/hud/hud.dm index c4dabaf3ca..917fbb7c56 100644 --- a/code/_onclick/hud/hud.dm +++ b/code/_onclick/hud/hud.dm @@ -332,61 +332,66 @@ datum/hud/New(mob/owner) if(!hud_used) to_chat(usr, "This mob type does not use a HUD.") - return - - if(!ishuman(src)) - to_chat(usr, "Inventory hiding is currently only supported for human mobs, sorry.") - return - - if(!client) return + return FALSE + if(!client) + return FALSE if(client.view != world.view) - return + return FALSE + + toggle_hud_vis(full) + +/mob/proc/toggle_hud_vis(full) if(hud_used.hud_shown) hud_used.hud_shown = 0 - if(src.hud_used.adding) - src.client.screen -= src.hud_used.adding - if(src.hud_used.other) - src.client.screen -= src.hud_used.other - if(src.hud_used.hotkeybuttons) - src.client.screen -= src.hud_used.hotkeybuttons - - //Due to some poor coding some things need special treatment: - //These ones are a part of 'adding', 'other' or 'hotkeybuttons' but we want them to stay - if(!full) - src.client.screen += src.hud_used.l_hand_hud_object //we want the hands to be visible - src.client.screen += src.hud_used.r_hand_hud_object //we want the hands to be visible - src.client.screen += src.hud_used.action_intent //we want the intent swticher visible - src.hud_used.action_intent.screen_loc = ui_acti_alt //move this to the alternative position, where zone_select usually is. - else - src.client.screen -= src.healths - src.client.screen -= src.internals - src.client.screen -= src.gun_setting_icon - - //These ones are not a part of 'adding', 'other' or 'hotkeybuttons' but we want them gone. - src.client.screen -= src.zone_sel //zone_sel is a mob variable for some reason. - + if(hud_used.adding) + client.screen -= hud_used.adding + if(hud_used.other) + client.screen -= hud_used.other + if(hud_used.hotkeybuttons) + client.screen -= hud_used.hotkeybuttons else hud_used.hud_shown = 1 - if(src.hud_used.adding) - src.client.screen += src.hud_used.adding - if(src.hud_used.other && src.hud_used.inventory_shown) - src.client.screen += src.hud_used.other - if(src.hud_used.hotkeybuttons && !src.hud_used.hotkey_ui_hidden) - src.client.screen += src.hud_used.hotkeybuttons - if(src.healths) - src.client.screen |= src.healths - if(src.internals) - src.client.screen |= src.internals - if(src.gun_setting_icon) - src.client.screen |= src.gun_setting_icon + if(hud_used.adding) + client.screen += hud_used.adding + if(hud_used.other && hud_used.inventory_shown) + client.screen += hud_used.other + if(hud_used.hotkeybuttons && !hud_used.hotkey_ui_hidden) + client.screen += hud_used.hotkeybuttons + if(healths) + client.screen |= healths + if(internals) + client.screen |= internals + if(gun_setting_icon) + client.screen |= gun_setting_icon - src.hud_used.action_intent.screen_loc = ui_acti //Restore intent selection to the original position - src.client.screen += src.zone_sel //This one is a special snowflake + hud_used?.action_intent.screen_loc = ui_acti //Restore intent selection to the original position + client.screen += zone_sel //This one is a special snowflake hud_used.hidden_inventory_update() hud_used.persistant_inventory_update() update_action_buttons() hud_used.reorganize_alerts() + return TRUE + +/mob/living/carbon/human/toggle_hud_vis(full) + ..() + + // Prevents humans from hiding a few hud elements + if(!hud_used.hud_shown) // transitioning to hidden + //Due to some poor coding some things need special treatment: + //These ones are a part of 'adding', 'other' or 'hotkeybuttons' but we want them to stay + if(!full) + client.screen += hud_used.l_hand_hud_object //we want the hands to be visible + client.screen += hud_used.r_hand_hud_object //we want the hands to be visible + client.screen += hud_used.action_intent //we want the intent swticher visible + hud_used?.action_intent.screen_loc = ui_acti_alt //move this to the alternative position, where zone_select usually is. + else + client.screen -= healths + client.screen -= internals + client.screen -= gun_setting_icon + + //These ones are not a part of 'adding', 'other' or 'hotkeybuttons' but we want them gone. + client.screen -= zone_sel //zone_sel is a mob variable for some reason. //Similar to button_pressed_F12() but keeps zone_sel, gun_setting_icon, and healths. /mob/proc/toggle_zoom_hud() From 90d917106a6af1109c9d90a9fbc37d898c5505de Mon Sep 17 00:00:00 2001 From: Arokha Sieyes Date: Fri, 15 May 2020 12:02:12 -0400 Subject: [PATCH 04/37] Fix bad arg --- code/modules/mob/living/damage_procs.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/damage_procs.dm b/code/modules/mob/living/damage_procs.dm index aeab794552..ed74c02828 100644 --- a/code/modules/mob/living/damage_procs.dm +++ b/code/modules/mob/living/damage_procs.dm @@ -8,7 +8,7 @@ Returns standard 0 if fail */ -/mob/living/proc/apply_damage(var/damage = 0,var/damagetype = BRUTE, var/def_zone = null, var/blocked = 0, var/soaked = 0, var/used_weapon = null, var/sharp = 0, var/edge = 0) +/mob/living/proc/apply_damage(var/damage = 0,var/damagetype = BRUTE, var/def_zone = null, var/blocked = 0, var/soaked = 0, var/used_weapon = null, var/sharp = 0, var/edge = 0, var/obj/used_weapon = null) if(Debug2) to_world_log("## DEBUG: apply_damage() was called on [src], with [damage] damage, and an armor value of [blocked].") if(!damage || (blocked >= 100)) From 74aaebeacdf805445f560d79f6f7ad02fe5b2635 Mon Sep 17 00:00:00 2001 From: Arokha Sieyes Date: Fri, 15 May 2020 11:43:35 -0400 Subject: [PATCH 05/37] Add tooltips to ghost HUD buttons --- code/_onclick/hud/ghost.dm | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/code/_onclick/hud/ghost.dm b/code/_onclick/hud/ghost.dm index 048b0e716d..7af541e9d3 100644 --- a/code/_onclick/hud/ghost.dm +++ b/code/_onclick/hud/ghost.dm @@ -1,30 +1,43 @@ /obj/screen/ghost icon = 'icons/mob/screen_ghost.dmi' -/obj/screen/ghost/MouseEntered() +/obj/screen/ghost/MouseEntered(location,control,params) flick(icon_state + "_anim", src) + openToolTip(usr, src, params, title = name, content = desc) + +/obj/screen/ghost/MouseExited() + closeToolTip(usr) + +/obj/screen/ghost/Click() + closeToolTip(usr) /obj/screen/ghost/jumptomob name = "Jump to mob" + desc = "Pick a mob from a list to jump to." icon_state = "jumptomob" /obj/screen/ghost/jumptomob/Click() + ..() var/mob/observer/dead/G = usr G.jumptomob() /obj/screen/ghost/orbit name = "Orbit" + desc = "Pick a mob to follow and orbit." icon_state = "orbit" /obj/screen/ghost/orbit/Click() + ..() var/mob/observer/dead/G = usr G.follow() /obj/screen/ghost/reenter_corpse name = "Reenter corpse" + desc = "Only applicable if you HAVE a corpse..." icon_state = "reenter_corpse" /obj/screen/ghost/reenter_corpse/Click() + ..() var/mob/observer/dead/G = usr G.reenter_corpse() @@ -33,30 +46,37 @@ icon_state = "teleport" /obj/screen/ghost/teleport/Click() + ..() var/mob/observer/dead/G = usr G.dead_tele() /obj/screen/ghost/pai - name = "pAI Candidate" + name = "pAI Alert" + desc = "Ping all the unoccupied pAI devices in the world." icon_state = "pai" /obj/screen/ghost/pai/Click() + ..() var/mob/observer/dead/G = usr G.paialert() /obj/screen/ghost/up name = "Move Upwards" + desc = "Move up a z-level." icon_state = "up" /obj/screen/ghost/up/Click() + ..() var/mob/observer/dead/G = usr G.zMove(UP) /obj/screen/ghost/down name = "Move Downwards" + desc = "Move down a z-level." icon_state = "down" /obj/screen/ghost/down/Click() + ..() var/mob/observer/dead/G = usr G.zMove(DOWN) From 6873a3238daa859e8c0cbebc60715de0eb6a6d5c Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Fri, 15 May 2020 13:43:24 -0400 Subject: [PATCH 06/37] Add confused alert --- code/_onclick/hud/alert.dm | 5 +++++ code/modules/mob/living/life.dm | 3 +++ 2 files changed, 8 insertions(+) diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm index 2b18b5a90d..a062fd204b 100644 --- a/code/_onclick/hud/alert.dm +++ b/code/_onclick/hud/alert.dm @@ -220,6 +220,11 @@ The box in your backpack has an oxygen tank and gas mask in it." or something covering your eyes." icon_state = "blind" +/obj/screen/alert/confused + name = "Confused" + desc = "You're confused, and may stumble into things! This may be from concussive effects, drugs, or dizzyness. Walking will help reduce incidents." + icon_state = "confused" + /obj/screen/alert/high name = "High" desc = "Whoa man, you're tripping balls! Careful you don't get addicted... if you aren't already." diff --git a/code/modules/mob/living/life.dm b/code/modules/mob/living/life.dm index 2fdfcf4c56..7b425a18ec 100644 --- a/code/modules/mob/living/life.dm +++ b/code/modules/mob/living/life.dm @@ -154,6 +154,9 @@ /mob/living/proc/handle_confused() if(confused) AdjustConfused(-1) + throw_alert("confused", /obj/screen/alert/confused) + else + clear_alert("confused") return confused /mob/living/proc/handle_disabilities() From 2d590505c1d2dc59b8edb6e10ff527da11040328 Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Fri, 15 May 2020 13:43:35 -0400 Subject: [PATCH 07/37] Fix buckled/item based alerts --- code/_onclick/hud/alert.dm | 9 +++++++-- icons/mob/screen_alert.dmi | Bin 110277 -> 111982 bytes 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm index a062fd204b..7e23e31692 100644 --- a/code/_onclick/hud/alert.dm +++ b/code/_onclick/hud/alert.dm @@ -36,8 +36,9 @@ alert = new type if(new_master) - alert.icon_state = "template" // blank, so our icon is presented + alert.icon_state = "itembased" var/image/I = image(icon = new_master.icon, icon_state = new_master.icon_state, dir = SOUTH) + I.plane = PLANE_PLAYER_HUD_ABOVE alert.add_overlay(I) alert.master = new_master else @@ -317,12 +318,14 @@ Recharging stations are available in robotics, the dormitory bathrooms, and the name = "Hacked" desc = "Hazardous non-standard equipment detected. Please ensure any usage of this equipment is in line with unit's laws, if any." icon_state = "hacked" + no_underlay = TRUE /obj/screen/alert/locked name = "Locked Down" desc = "Unit has been remotely locked down. Usage of a Robotics Control Console like the one in the Research Director's \ office by your AI master or any qualified human may resolve this matter. Robotics may provide further assistance if necessary." icon_state = "locked" + no_underlay = TRUE /obj/screen/alert/newlaw name = "Law Update" @@ -330,6 +333,7 @@ office by your AI master or any qualified human may resolve this matter. Robotic so as to remain in compliance with the most up-to-date laws." icon_state = "newlaw" timeout = 300 + no_underlay = TRUE //MECHS @@ -402,12 +406,13 @@ so as to remain in compliance with the most up-to-date laws." for(var/i = 1, i <= alerts.len, i++) var/obj/screen/alert/alert = alerts[alerts[i]] - if(alert.icon_state in cached_icon_states(ui_style)) // prevents "" state from attempting matches + if(alert.icon_state in cached_icon_states(ui_style)) alert.icon = ui_style else if(!alert.no_underlay) var/image/I = image(icon = ui_style, icon_state = "template") I.color = ui_color + I.alpha = ui_alpha alert.underlays = list(I) switch(i) diff --git a/icons/mob/screen_alert.dmi b/icons/mob/screen_alert.dmi index 638fd7d109274e057dc1da257a3fbf9b2af984d2..f762fe371c7163366ecae7f9e8c72517d6fd7e72 100644 GIT binary patch literal 111982 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

`VUQ2^SYap#-!jgg-M%9Fy^lXB{irUx z{Fg4K`+yZjL#htOI28_IZvxGg40mK|iU#}cb9H0zF*#zEhPbnK0e0~x1oGr&_8Tus zERZo)A6NE)H#9Kv629q-Eaks<8exAbTY`HGt}?@3Tt(K0ccGn4TWrEe&Tx2NXzVrB~uJavd0 zbGF2=nF?f$FGoj+&&#v1`s|a|Ny0dwVd6g*9n@aq`rb(St!+|3vzJ1Tl&0UleuCmnTekyIsfqv0?NN)T@0*1N*h{=dxxXgwVpax&n zR*E3Ie^A&vvLFsYQFcYz z{dEFZa;!|F>uGm*K(U^FedscaN~`6%V_t~AaB8NpUvLy)I`@TV;X~*7yVz{$+egQz zczZ}9Gh|i@(DpOeX53l>nzBS`Nle9Pu~JM6YH}qZ$trx+&`5PD4nTOJ5benuJaL~5 z%r8isK3S;zYu~a#-XfY5x()qfwgBL%YyG-K(FzgWfckPFLv0Y*G=Ko;C##p7U;-cD zihEl^ee zXPpQbniM#lj}ftjaY9+G1v6$kK&&1q#@hDNbpNuntaI2rzAm2Fc-y)+L2dXHM8x9L z`w~bn$mJNPHA%LMn`~}JA1^4*!I|_tY<(kI&DETXDV@h17({Z=%@`**z>V>0wbBRQ zH;3cNnaRz-(LWgM9^3}{G_4XhRGArpqp)ydyB zT*g>jR_cGvJhp85oJJh%L(ynuJa}W_rg?pxnm43;Sq;o!-vzhMYCqIW8eSVfc|O~} zXNW%eCBPMRx8*B&JI~ZF4tX$oTzP=w+7R~}D7+FDwk*W*ZS-kx?6BwSODk!xRpVQ- z_1@d*-;>Hl>HP(*4H}cjpB7Qe$!9|9AgusLn%Zs zEE(#0<|**LE06pQYEGgEG#^XjNU{%lnFDSv*=sNAO9mswegE+0 zzg9x+ZmO)<*P>}66mS!RSK6)96N4hIR$f>f_>T{qw3@T}My7-Pay-9*a+)c4F+cq0 zA=&uonIhhBhrhM?3c>JSr^bXyx@f|)*xuSV8+HU$0eJ(zi8;*ZW8=)8{5__CmU;xm z@>wc$AIJo-DT0nyRkN%$!%Aiz;x+mTXm7Hg&+2{tylnz3(-$OjIrG9Kzrh3e{j10XT;2$Ns2Tf*Rox>kS7$_9Cvv#o1oRj68(UQS6v?9Dr=>0MJr1I= z-JOiCwh*1P)X~( z@NJB3>g=y?Xx%@5+IY__Ty+~mQ^}yebmRJhg8H0h7BVd?jbfVtjK_$6o}rPI)uOSF zx_|+Vr95fRPzD{o!&Om&0AEZ}q!&s)9h}*hH6SZp3=`E#r^-PJ=5yO<_H6N^ckiF~ z(rCfu+ohF_ja;SJ3K~zxI${p!#(jXZ=b_%3!KULNH|u*vc2|S7rOSKA%L%e105hoB zUoUxHR2Ro+R+0UGRQ|3`LdBm1uGF-%KHE-PuTag+WR>QVx|Ze7Uw6b65SEoXrAoE5 ziS3<7&zqrk!=e|)r@f7u9fw0zIRN z_f2FUHw6=TZT>u-`B~(+lc-|dz6*-GmZbc=Z+?gQ4Ov)GCa2}}%uHgmyk)UzkbTjC z!xM!)80QIAk8}m7D4PD8(5e|f$Z#Ie^Lar9qIU=P?K`56;|7(Mf zcx0DJypnJ6k3QYD`k!?(4@$o_@)}j=PfLp?CQLmMj;&nP=1(mj>8kG9Liit-ihyR% zqiKsn~mKaE3l`v;m z2adcNv&N_I?pS4=>@;w?xQE-ClUi@@%!;mF41^k!oS=H3pOWnrRIib8KMMgn)&%Q@ zJ`fj%?dQQClNpW<9ey@7`6Sf|K9Uy=0A(}qSBA~M!LI78i&4B=(^;SK!&ov5H#|!S zF~e5)VQAYf=yNeU;98ER>*VJ3=O7G25{#qg+K04rbft{n>~y@_b%M9SgpYtr)5mRl zNx^}DK}6hGuMCcDuDI3m!_Pp`6H>j3UI;d=C<2dA1G6=Q;GX=UhcFGmWczl)G(JAE zvRN2Z8pDkyX#*%~pN;jt0$umUZiuutc?U1|awcM!#`d7A z>+#tIIRVH`A6n+RvVC!wchla;@4HCVxx--U{=hT2!+FeWOstZ}pWd`xU}96* zuC0+x@)Xky;Am=Wx3YJY^5tDT7nZfnica&;n(Ty`NwZ|k&^y+N2{%<6S$e;+!7?HwwJGbTaD*O?vPj|>9|&mfG?oj-Cg!ao?M z#jAfDn#xSNui)u?QF}x#oVK@j#X$)x0{2xxbC;$D2+NsPN}5)R45c34?$RM2G2@eR zATECr=J&_8vi7W#_u(@`oBqz|b)5_!!!)I&gHN1g+4=Z;;^#)W> zFDPCb($mdGNc{Dw2S%-+3Q#8f8@k$1cu7E&xe}-{H?G%XISiJVt^(GKZ|ePEIcHrb zCp7Uv{guiCBgbU#rretgA3oxGkUR!^+y=QDx!$tAh>84u57^rXOX*{Trc>QXG3Puw zyS}=fw8;L|{KI#r^zy(`OaGT#Hlfwb;b&K-3{F!a$BwlGuBm@LjpPy&L-QZe|3Kvf zGiz%GPRq#%@}-^hN~mbV!p*(=Z;^(n8p>nsyc*NEGkyX@y@hLmV~Ig-(3V`vMt>5y5f)+h^_vCM^FV6O%4O)Kt$^^wZ z(B(ILWO3u{=A}Uynbdb%0DKioO>r5@rxAZG!HzR_&!R5hjHo0y3%0Btl1mqeAhYYfu8P&nPKV z0o_~1?x{i-*S3}?O0EeLi@ati=Zxj{{`W~;xen{=V=X9_5PE}i?2RgrY-KiSkgO7 z>nrjyo`ixVnC8E}-7M-l;**h)^><0Ta7XCc*!1%>N+piI?Z&qoJ^=8K_2f z2eO271JOr=07!@+b=Ale3SAHD`|0uH-Dk*-vO9n!l;^yhUPx%-wWD?uM>!-WJeNHH z5|T25#3x&2=OydGmX~&?r*giTE$OsBh_s^LB-9EpwV$N=a}$NMaxS-%XPD)RQVr4% zIb&7Y+0wKXV;}Ol>al4x`+DP=#d}B|jJ2uElCGez1E7Dz_PaW>Y5gd*T+5&0i^B6; zhaufJNvT=)l$nE)Pu3hU@Sl2f7x}jUnU`Dx@Qy5C6!cdgus{~eADWLT`pYH21yVxx zA9x_CSM(1}DfawMX$-X5`o2IT%wK(MWH7F%;$#8GFd6bFCs(>Aayt~0EC}vT6H0Xz zBXNN?VonL8#4wJ)=Ow?rlW42+jqItxJsCsTv@|2^jxO z86}|{$Y{Dv80aJhuSSpEn&5Z@mg}D~o4F~_rcNxw6ekN500mP9uU?b7U*!t73+}(= z36~0@_2^kYkX?g;lCLF7?}Mge`5#1=w;+7mBZY;0CEe*MZ zkn8+4eTvV1FMgPvMCz_skKSYC2!b#E)tx&~Nzz9dR-BqlC$lA5>)*Zu;Cf-QV7Zyw zv2+d;Ag_hRnWhqx#Rx!v71cI5q*bTFBX0wa%p!|6keM+UAyR7;s6eoZ?ct3sB4BHX zz0I}i9wDBI=R@6RIKd`oQRP7S%+afQ2UsHT$gdW}0|_Wq*-XSs``8E~ z`ZNY%#tmC8gqMULV~$+zWhw^0AaE_d;kz29mI@ezGRT>p;Q8|vWt8?;i8W2oHi3eo9p1swgb?+nC{ zpjG~u(TB|p{|SXUVUe~8fDl-(eXDMlc*Hr2#6cIo6;PMpD6$FPzHX&aB=>O_U9ybt zJrO2Ow>8%)PQ(u2@0UQe?Cps<8QQD%qGxBKHIWPkW@H5DbO&uKNUMZMWR;tiI=}9M zEk(B2a>0NW9XkvW@yeLD#!z=)_E)mE@Fh&%YYUl^ACBL4)EB$NDePlrPBVb3LZda3 zdPXv`pzrhT{@$Of-l;t&p|RAKyWVxU<(-+9As4#;jRlzf+8H}5u5(1^+h30GSlb%t_tBr953!&-H-wf-;d$Gt?WCN4954_#KRZ=Ln@hYrEm z-R*cHkKr)ce2ABh2iGT+f_#_lg0F$Uq(wyWP}TmuF?!1@nlX5?kgj~UF!bl@DPP<#xEQxxt2OEWZQc&jzM0+Oh| z)t6m%6o2R;SQYQu{D`oUWuLc*)Xu%F=rgB&u>wIi0W7Z`zBdVB{@$_g8ZxDiqJ1r%7>^oRP4{bk66iKHACGXu>Mfm?IK8`mm>4 z+{7vAH~i{=Q6-g`Xg5)(&r-Iz(NDU^;J#3y+wo|zTYgJKRlD@o80~OI~tz4Yui?UMy7@c7lLv-wSUer|*+F4u5uNmwG}lyi-$CWf^c1 z0S+x|v0Im=jg2YCbEPtKmn#k7HGsEMjx}u3bGq8kI6-8Q;LDae5Q*^B3j3y^0$lfN z^jG3{TQ6To5c1^DkIe2TSiR2p+jz6l#U8_4xjzKdiqf6?k8rI50et{Bkg2bqVkE3` z^>#WR5_`@C_tJ1v!CYad^d%I!468uiLi!Ly(LIp(c6#Spw19pGe!WbWKq*nk3|v5q zjg4i7#tJNVDa7A*t_)ysGJ2KX@$B;cy~btzSm~Fjrrb ztQ!H4Fv!uQITcRG@io!WwF@CC=a3n@W-SGbDOEbqVM8k@ zvU{Ki73ez2AI|1~EDr;^Ne7x;Zg#qPc(`nOA4g@x3X-o)p0-JeN< zVw)lLU;VB&&<-Y;dagSOIz&lo>@Ra<^>dP?9(nrK+FcKU`N1+Z%zNXUTFPzp!`$13*h=AYCY9#faf<)97X&ScC~Qd^^$Nz;W3E zKeV*&Mln6@5(1a80$}L!{5V+CqYn-avc;Vm^I&3mhHpUNe=VWR{k|h6P!AeZnS{P>MhX)nTEVVH)S597W67 zJs8)6apTEsei)(qdA0EzK~HUO*=8iDO~Pmt#Ml;;+JrT-Q;m{nhtUoD#&l>4Cb8Xj z()#hAA~+c)nMy6_ng%LN;qBC4>bYT%?0848KIU)~8e`HbDUZpH*av-)VjNIMge|f$%R%XRl}fgIXZC zq-zS(Q!2vD76$XL=vGBwY1XO+lX>+bQns%*!*--cU}np5l7~;Dojk=O?|RR5xj+vn zK_!erj1qghyfjzNhjrol%kvwU>Xl9xsl2v~{y1JKFR`d+UFQldS zw;1~hhis^n6dqi%$*jNFRt$)2V3F}RxQ z%-80B$nEoU(r1VUmrBA^W+kHvj zv!A&r1v8)x8swq@;kuGP$=f$ibbB&C``@eRx_RQ=e(d-;c75P^pmMFFxsPO+OM$ngkVgvhRzPX3>+^bARp772l zPtAYTJ&c+g8}=ubgh)PFFDuHUM48rFnD6@seVsPtkCzpO?Qv9+t;!qdMHXad_s-A; zW%9{_kq!?Bj27RK-nhs@V{f_4AL~178f^%H=PG}0bqE}v%KZQnkMS8N3X)++Da28~ zPsnd$tZXE*+*aW@EX4KH8}DJ@6NjhZje!r(J6{6n{lQd?_~a4e*9@iv{Zg?XQKYFw z^9cOIVo|22ulA_|WcBTQ^SkmgM3&_6cQBfD+=gi^-ShqThnR|nN^(S4FMi1c%D{u< z(DR_t$XQa>vv$a=qvEd=V#ix(oR3p3|DbX4C(G71to*w!@h7a7H!NzLe5jz_o9NM* zKob19Mp>yh;4l7zbRj#0ou)ewX|^^uyg$7iQdi5Hw7KOO%WMUWy^Og8G_OHmJhu2y zAj~Zg*t1-&{{ncE%oEF^gwP!T%C}wEab2^&NUV<&jnC=?e^MwB{l*{)^g(zkr4Sac zm1Flc;7^k#dgR!8u+m#q%F4~ClfzrMklL6*>6di!P10fp&6CAK@0j!TQRZq3OX6`a z7V?}=gG?ziW<}vdo2-$gVw>Jse(1*q0ez7$$r97> zR9X~vk{82Wbo`(&99V+@@7U!IA|A)Z2UDtylgH9NCCIu{n7CemR_wAL3XhBhOuT z^-RG3x>Nv7frpejvmO=52l?1X1s#Yu0nXsBVUi#3r>H@@pyYSqvL|^gPf~6dqiesK z+3n5jMT{3J$iBVEp%*&V`tXqw`4S$T`W1$GT|{PuWrv@*c9lM(tBqISm2@$zn7l0v zX8?~r^s|>y+2lf2Y9UA?&~K~p><}L2nely5g)sNBO^S{R~Bb437_LGa<94pE>twlKCGyV**iHjujo zlh$Cvc}N&6=szV^{!^ljShGsu)Un&qi37&!KW^Z`;xHl1|MB-48iH?Zv?#G_5#XsB zQr;IPgRPj7%2dsFi&eo_;XprubUnUc^Z$B>rByt9gEn@sC3FYmq)>vQ<^`VQP&pK2 z!qbrX{-jB2ATFQDWw!^O1bn-akSl z4L1gr0r&7m_nDqgsALFo+Tsk!D0^Z9g?zOcQFTA%YJWzHX`>WMvliwLvj;h01t}8- zIU!Rm#8QakS{M|gTOq4`;%0*kr?E$0SA){d79sWc~Kf8E#d)u(-&4gMP!n#F8wb0uxD$ zSu{!+j@9CN28wKKX;RkXa%gPuQD>;eRk%OidMs*l;s|oBQ2DE`NL6wj7*$*#p_ zAWb9OX#sR?>A>fCSl=M&eE2I^lv-JOSjIr>ZoT{j;qG?jTC$1)S0W)g1o!dXMAHj) zN~>XIf;*i~`HPj-*qU6=q?uQzh?m&`$omH$U#YLwt?CQdHri73XhF~e$<^e(JFP1q zyiYb6v~hPj#^2(o5Njy*g3$yl0W%omqy`ueFvrYDo6AXi<*}&zWQ9=Lf;16g6Bk!i zKjH?y|M)CxCkAU#QHy)SyNgQR%_Ipukb?|URn65=6=p*Nf)7DdHSvb^>O;*AiZ`Dx zWbs-3jyf)(TiNx_K1?%6x>u2lgD21wiy1Bre!vdVAZ$OU?63z{!l`du6dIq9g8v3m zQW^$8Mn^yEJ^?i^lSJaPO5iby(0Y_S^o|cdZPRqeYbs`=D-raxeFsdgKwjaeI#~S4 z2}R;b0t>(dlOm^n_se?(!$#flTbD&uRnfRV&O5m~Yn&i|$SyEa0449}=$ao`7}xc?jp2^s13_Ur#*FrXAofY1w~tVOT-*?{i^ z|DG9>o<4*D*ZA2Ev_5s$QP+auWvj@oCTk!wokWI}LdC?I*gY(KmNa zLU;{Lz=g?I-g-sGSlwyytoOQLv@;>hCsJjUO9-wWx8H%`c2Yce0diCa7)C`Xozlnl zhxBBzVLS^Mw(q)mT-fBdmWGT*xhRSlE&!BF6Zj{9Kko-d?;eN*R&7#GgJQ^PvE|Ne#mh*AEoH-1?(zce?W76 zJaI+~$^pv|@K=Uq9&(K@N2x2~nHR$KjR+s@Er~jr0cEtpYV%+ti#e4mgoaJ-jRCt} z7n+*lG6_l&J+IyIKen2Rx#G^=QouVbV4H?w1_!(a=F}rt#y~;f=%Iow$2<@p!!I@2 z5@t1IxUa?`H4=-uRdu29yO&<4x?*lm9M&c|>R9p1W6f_oHapw2xkFac8LOvI`-%74 zXNdUJfOd=rMd>E}5ox1R)M^Ys?)5iEHDh=Zns)6|Ww+<0MFt@7^5E)kbI|E z?})mJ;s-&F8{@AZNMLV{C3f(S!=|ZFE)V_3K9AQbT4IXB^^PN~xxsbCt6B^~G*MM^ z$K;p2tH!Yi;pR@eA!rSJzY&9|^2zz$-NC)DVssN?Cwn+}^$yosnM7uXC=BZk-zo*y zEDRE5M=sw{>ZPwtlwbU0W{B9TVGzN7Lk5_}%Xl<$IqyVrhHhjkef^FI?S0OOv*>F- z&9!u0fhhLu0v*60R5go_!iVE*N1ng`bOiUkk{BKI7U;M@`7-((tr#W!!NXDnMkJmI zO&b2kPqz=Tcpx|aTlA|xJ~Fc$zx>FxM#H=Q_2;198+iawgNV*6>^5W>3!K>zmscep z7`<6=)LeR<2ebCJZ5jAH7e@64XsE0rYUgy+UP4QX-!PG;r?r#A)>sherKg3B%5-RX z-*(Y116raBuZ%Q3C(XG`s4uGL>XME4thb#+8iVXoQKwN$xmC^N(JtkqvOkVgf}I> z|K<%Cwc};nVFs7-BR~D#LUM%H4UBUZ!}rH2L$`t(qB>v=Zl&uvpk|x8!s}UK)Po)} zO;Ru`96GQIig8eI_Xc-AoUmY9nH=Wph0a|3f?E#mr)_-lBa*u%^a-7foU>NZR*}om_4=8X~BU9iAQ6A8_(qMPtQVDVf%uo zA<XbWT1!nl{Dv0LJLDK_xas^iyjkYYZVAC9 zw;(_B25AD-!;6QQ5xVkVC>|#Ug~vc}pFnJH#{dEu=W(6ZjCE!AWkwv$B`2R>(XbRWl;BDW%)Q8f#TQowtq=eMV+t38TGf>{VX(_28A-`NnvRupVW zx98aQp$3w5b_WR3fgE~`0XWt`htoR{VsJIn6;L1xvbEV7{#7OC8KSl!tR~EBkpYYJ zm-^8;I0SA}JN4p=Lm@lywEjpGakABNzdXuH1~&i5BOr9O-_jP&&2 zj%FyjNlhM#gMnqDq@!co#cd_pknm*tqlkKG!g8V|XX}cq6*G*n0@w`wjsncvI`HpCM?Y6`?C_SrA7h<90z9W z`3T=mKP^v$)pH<1Z(mp%-BfGY*H=eM3_H1HFvjlnuYY!{8X`iQLDWmCDxfedeXAPh zWukj+HKy>{icd3oF?$^^)pI1;QotK39?<(7WbYJRzrK0t>IU~ASnQ0S%b4~V zrvX8~9XDfJkfp9Xr$lydJsPP%QBNp>QB?i4-i08mZsI@+@miLQ^p^99kd14 z-LbPIge2^@1&Nf!e9382?ZQ00129#P6Qqz4$&g#4s5kLq zw>O4&vLnmB0E||C)=;q$omv zfwj{R%N~xJU1@zaTB*K{l!s4l&P2`!K!QAd*~xO&`w;Kn@csil^X`TcYJ{PhaBd;| zs4qMcDhjC8J!qPxXBRd^yD1=@o}4{m@qo73|3+kvsapO>K5}pay;_Z2_aQ37=~*4h zsiZ7J>@y!*dxze&)$we38HP%dmQoNNF>5eS76x!@YheQ)y9f4D=o43L9Zi_i)i$h4 zw)fw^2N91Vf`1)Fn@iv1FPLU$$tnyT-x^d9?&(}O5lwpc)vlYHf9L@^Px;BWazR6He1_`7_|uw`ZsFvApxD*Foz3 z{=W2~&NiK07l8r*x^{TvEuAA8&c_|(?YfT5un*5x4N1aS6}jT&OvFjqrP=!Yq1_eF z*ZNnk-6n3pl>_WnfzbzqsGN=Fpfe9mr&gA5J5Y>sobC2;-hgK;IsB zx#Ciry$Mf`ygD?0RY!Tko~}>7vN`?Slo8y+ur8(?!Jgb|tepv?$7*)rm}C!2ygaTK z3E*8wg{PU)7~8}1PbD1zSw}okly$!QtY0diahJIz3Nh*eT^M9r!GVPL;h!XmMctZs zcz4Dp`kwgdhO)Dq>OXXfso{u{IohI2y~#TTD z#~ZaZ32&@mES09eKp&8Z+clF*cfWSacqDF7^$RqNpGd^-PdW7y6pCJHunbS>yqy$; z&J>?b2j4+cmk=@=cKPuuiM};Pd#W$SY2@=@2qd;PQHPgO0F7q`pt3CX87QoWatP3{ z`-Hr#v7MiLCL2S#%uUk016XkSs!pRfm6cUHY2TCaIfXQ1cL@XDO0`lL=a}SDHBLPd z2QH25OBwdWcc6Q0LK|yvt$*{79Z4Vt*_wqtiEsBv4P|BxnT{FY#IyKH#n4yEwh!5V z?5JX)BHt?Ed*R~o@P!Qa0$P&Kzi2e;L#>lMgltXlr#HFR=D6L~kku&Au1n_O?1 ztI|J8r(iK!=4U=y1}aUUR?C>)$v*p$c*4+A`6#ZU zou{axqS7)oSg(HcUNntWe{}Yjd?t@Q@m$F_(}|zl3RyfX+SNd)C$qP*ri=IyEQyd1 z*B2Ozb|yyWA%im{g??WM-;oyr;Ui=ZH1<-lSG>vI$Ag|+;GV*c&DM$+1VIt}B6waH zA}}LYO6@caOTX<{%#wy!c3!MLH!NCRV81ZkxMMfX)#!o|dyi+G^;B3=&{4r9qmIvP#zCm)dH5!m%WI$2rEP4=e4FXECi z99BoN2439UO4=JgeeG75s5^X_R_}Q?v#XBK7AXE4=m{{=2k%UNwYVBQAikcgwy3jt zV})K1wwYd#xM2S`7N8>z{2eGF^LTkM9JImU3EAr07TCW)Tw>r2aPDyV+wG9u>aDL| z_{`^eyGKC0!T4>FYA6D{AuZTa^y*nk@P2Oj!%@Wlz@3knzE<6s*F!(8x` zhhR_0S;apA;IGa7kBUqjkyC|gEB}_~Cxs^2`V%X2n&uW3Y+dyZ?f?FJwVAUq2$$39 z&DCZ(hY~Y9VY)_lc{|}fXIJ-#C+aiGi(=OGp9!=mbzybAKM}qi^{=TNEiaJLOlUDP zE6*+Ly+89MRAi4tO;>^rCqF5+Xty`4MUSXs{9mIaSvZ6e5%OFb7c@BDmCuI1 zx1SD7)4l`l>1^Pr-i5J;6}`%!34>YIZ)cdVqeGn)lnKT4{Z5tUoknQ{l<5*GSQ2X7 zM$6_+X&==c!{pTz8t`JROnsa?ls@oNhEHN<^E2k?ki5H)$t$8`a9VY7a`RV0)d{3o zm}Z@(_BHz60(W|PO2mJozJ5EBO!ut;?B=#32)Q1D)#mhIJ`@G>4Js=7lWk#|@wYl& z8U%Fta932Qo*R4|6~dAM35TKOi(a`Il_o0=D0W&Eg?K#dz^I_#(L`g`-kZi-ZS&=L zHRh}@&PXuvh?Kyl1n%WwpVOPo95@a}$BTvOqzcX8+<)P&O0z2{AVcO#CFVNG5rfS? zFA^nQwYscqPNTgeXY5L4|}O zK>HznU~M%RJNO1QImCKrybV>c%|!sFz1jY6r*Kv8(~qjHr^^i9Z{E-6->ChBplMeW z5>VRi3EurBPo-dna^>C~O7q}M-*LByOsMR76Mo1(Lq@0~l)Q;*y3dMh!~G_GDK}PmlBl6P7OH<;CaW zVk66m?@NV zzC0p5P+(?ElO-WE}_^a1NiHJ|# zi}6CAe3qjs1cq@LE69{@>k0}9V4mTW>Ay(fL)m5=GAfJw&V>t(Zd)%^8ebi$s4>G9 zifc=$53aww91$P0OMqhKG{mcJy?>$v`~|~5>UD2?V&L+zh`u?2Bq=x3461lhr+(%$ zB}~tKbXjVSjbQ{*9yx2xvn2#LEWGIBuv8No_#57_5GAO;wt0OcO08jMtPi(*x);@6 zBXS|N@CZsXU{9z&urS|mwlA#j&}%&#w6@cG^PCU*j%SW6fiwPpD*MW)ID%$vSR@1z z0t5>l+=6?s;4ZF%no zdaAm+3Oy*~GHtTUK_Xr)(EFqy>Y;}mF!1YrjJ1VxC}b$tIoX9Q+dl4wzJC$vZ@uIZ z7Qk5~HjuL!=KY#1;-2DgSNIX3I<)J)Al%XE={m}_b+?ODb77#(_=W*>-ug74g5oi9 zq{O@Y7TWq6=Y7H*nr--ktTA>+U8AQW#g8xEj}CR@#&{N$8?RWvJ^Ea5Hx=CVwq3}{ ztsj*H!Cm^)@?p)9UA_;URaD2jUT#s+zpblCr>F|Dz8TP1`d>16d$=88{kg`$AF!e^A4fV2+O;_#wAj z?(z_T(|uikKF9yIfn!P@)X}2%i=Q`D5+Kr_NgjtMc=2T&;lS?Tdb>y`zF?YxWP#oG zc}G4RKf@5Gu^+H==T%zhEE#A%IHR#>-&mEZCWSJTXnm+r)}kn1eFvv&}Db}?zZ4#O{Afijs8f(!f+6rb@P#t9dR zjYCk)6_No(I*)yp(x0vD$pL(9*ZKQ^GWbZ5^QVzt0q@IoRm+B$052>`%;JqLX_=MnPf{f~T-||m zpudKYoPC~xifXJ(D3Jx@-hIJff_Qp7g%S+0JM!1UaFhkVIohMw=FWsPE*k&ge-eFj z=`Nge`{l1n#Oevn+=ue=s~Z#B{>C`jJr{mcHOa=-lOxNTt@SQi3yI)l&AHV<9^v%d zp}8d_5j;FtDGk9_`DSq=hsGTF<)3{e6U|S2-4xKiz zQ5{3eux?#LY)+dHgo*v-w;io8io5%%q4JulhvkAD_yW(nL=ux@vl;96@I`sHj-S~P z^J1eCyy`DuLK;l$aIRFoC?h8mb_}77e#F(wKk~$mwBqGWH50m`uLbJ;fZ>;0{g+goWL6-#! zbtoF^(_z=0Fx`yBBdK>mXuxh~8bP%ad~=!dti{TWCAQG=eU)|y84Iq-uOJ=L%&JC0 z4sY1l$&GQDT$+uyMX)Yt2okPX+NnW*iz~<7mr=(4XeU-P&?gC^AXi;fVW&Y~t z(4s=x$TToz^cA=~?m~IH|HNr#L&_&ld#w#`! zm0M{1_dS^B_xCq~r1SN`(h+7*^Y(;IOXj7HCTo*pe&OY}nXUa)y8Tpd;44w&(AwTl z%b!yHO)oyD&a$UEh(W!@FI81}iDuMmRga)O6m066c$ysxE72j{m-8?k9oszbOL*bYp)~!hMIA2UQap+_8l3XfusH_q#dh%St$gJUviO4vH zYz(`8qiN>%;&k7`WVMcIV<3+7-W{&b=)`4rqfxH26 zx7K|MgTe1QzrE9hggFlWP>oj!#sWkqFK+|NC2?hK5n@Xb+0&JAo-C7xndubSN%ZF!iD9oJ%Wsb zB$!-P4KDA7s#~-|{JQP}l$`Ry~W!Yxn6mJ0Avw9Y=AgYiF)U z2{c}r6Co5A2}tN2RYZ(@%_z2~79pQ|iN8(h^SZjqHW??AK@OsZAKy*q2#dvW*GVf7 zQjV+DoXcQw4b`UeU*8Koo_ZqWW@{{t$V&yar8yxzBp7g&5o@NE~qIHFT zPp(AO@J<^%S(yvz52*{My~TTOh;g=8)wEj+D#3|^gCFUE$X5i@3xCs{lwTCLJ4Jz{ zTw#T!vitr=1uNYd2l5|}S59ExaRC#i_W;Jo+?A2 znFuT09w<&DA|#LSM@{*OmHD)N`;5KW^g&ly_0Jyj@ z5b5v!LwFW(+&TmQe43ZGDgt}U@dcsJr`!%3Yr7wJ3lsxw9_1lRwB*&WF)0LjrkRb>bqdJd zY>clERRfOLiO!%BerWo^#-nuD$^je)rtHM1Sj%|c=xC^}u>e~#Nl9dXgHn+QQuvZXhqFZRF^qH(6a$UhwgG}2Eh5UFz z70B?k&kdQ&ksNC~aoQ6s+O23s1^ql&4q{Db^8p* z?&!@w@@g^*1U6-2D~Zu8T(@o&QCOBQ6yyYOd85P|8U}#oF?q^kg43V>(h}2H*sLlx zjq`*Bkh-^$s(3%U=-2GD!2g{O3BVafXjOWy}0ehU9JB2+>P z;KLsDMf1a|MNm_6g){5GV|vNKZsS3D=Y=8}mMP}wc{;74cq{X8y*?f)A@Po`!xkY2 zAwn53eU!iFXY0fws^-b z9!h3rVj}g#$M(6Ejw|kES9LVQ%Vra-P%-j-ocYSfjSJ#ew8u$fm?K}5Oa0}QG4y&f zG04~2sS!(7Tm|ng+0UvB9uJD!USzq+{ynqpeRW+1{mch;hkEnCw0^2d+3Lf4G$3v9 zpedy{Z0+n!P44UlysIVaVfKZA5`d-+XoY&C?!nKAz6xMkR$C>_hO1AU$)wj&q9hgu z8vX~5{8KxA{SryXaCt+^=za#gL0Fa;dCaAtX9-fh{kjPJ=~kSgHo2hja*?CUuv15V;)Slrii!Fu&{h^g)4ro+mpHXL&?k0pWnYf8XuY8KeA6i z$W@sfUi<#g8{72wF18r`tvBLB$3sslr`49I@Vm=Jp7v*i^ZD9siu-r{Ie9y9&{}U3 zPeQ0bRRV>x{Ax9DsuYzlN|OmfCCV)3^Pz_YO9*0{etYJ0$S5tgbl-vN`*$OMH6E>b zmJ%s?M$i|_{ak1hYG+}QRbKuemS;Y6XI}W^uGLU4^Y5Y~a$z|BeDg(gmcjQfRRAEQn4h>%xjF`C-{zi%zj-M~tzgjkul#^cHXm3$|HWlZIi05?bA3}!?emXQFh(Qh7G@^)2TF(ws2cQr8<>Sc>wr_ zj-z=r@0yT+00=oQZIR1SZO6YVm=ngn_}p@{l2&`YDIR8Ul06p*4;oHk4+g>`&<6!^ zcETLmG!aE8K>ijkIud9~eNe~PMTATVVzlW`ZKTVt4W|0;!1=Rwc-dY9lZVPDxtg-* z!!LXD`hU(XTvR?bGq7vp?E*s-Z{bpsR~H4QX7v3GxnqdgMoE`)xD{BfdJO!>Q^##D z&ufkz4e4=xR&e^IO8sQ~6b>|POFM^u2Hfitb9>{C$>@)}n7SC$zuz(hXm4V}= z>P+!7SbML=zhGvtQl}W+^(45O4h$-?A0rjUS3q#6wAtS&*=LinkPFrU9@*AicKBI%BV=+- zx{`0aqpKUojJy_CiDT4pfRxAkjUN)Avvk~mu<9K|s4@0VYxfM6TV5^^L7et!aI6i5 z$MorLkvq2sLFNP(3H0US-pY8SKm$)AoJAj3V-e@cbQDvT5=+{M1Lm2bnNhNj)n<`V zGN9e=pyQjMVbJfFK7&n5^SdAh;d4>L`XV7bj}J^UYG$_5bQ3r6<^28elPwh*q(PW5 zt%Y$rob@SRw!&wVkpJm&Dn22>A#SJ#e6!qld$tL0VL{8O?b}hg@f?D({&hB{BZBof zL8s}7mOo*W@#&+)J;k4k0p_VA^HjM^pFC*NF9>!NkW!NBlAeKu3I4LSMybkb0|B&qj%?qf zdP{eDewzfx<9!SGJ|6ELFHct&S_RhVd0nk*=UZD;wd(DEm(y!laI?j;_O>_{8Sc%8 zY!`%NJ&X$YH>2{uS95WNj13Y4oBy?Ca7@!R zRIV=5k`4R}@8^_WGiQM1zBZtmNEku_ie+?&hHoT&iTvs^SJ$1nsOZ6c(D`cIedHTJ z?DO^|PX2NugjQfGyiL|{|%F`lWv;^K&Fb}Kx_iY@N8qS{#vChSL4ywHVQu@I4$8c z&4`}l+kbm)97^i!76|CBgNVlGSoXB|ufLyQ9g<>T6&u-_O-=pvvgRc(TPk3fsmua} z_Wlhg9QxIV+{ev@57~B*OT9TxG^QqSq|p-f%ymisDb_pL#A0kJD$x)8?qq3P;CXpO zF9HNai@!xd2+%mxP?QtLa0?Hy)30w<9?6%Iy;L4jsHb*GSGGS4oQH2w71ohTfZkah8pq%-vx(Ks->T@Zs-)5tw zVK-0jyG(uDw_e)Ztc1?dN?=w8X0SDD_HXng$S7|50L?~yRr~&#ZRq@hpHt+wDLY(> zeaG0pKb+b<@%SD%S$^n2=6sC+aB0>Ys^MY?_MBVldI3>>V4K{s4;J^gn{=;0t!2Ca zQZ^3rOUu*B(i0u;MGOc(h$H~|R+AUmz0t7wb)On@nZJ|*K}*g5h=DLe{wq|;Wf{eS zY06l+sUqs`bOEp0zxdoyBRX{;AXCS8(`(oQNSN86#j~csr@q2dm(*F&DbX)woeDtQ zM(8c0prvLP2As{_p!g5s6V}<<{$C&efnbd(E5y_L!?Jf#0z^F6sT+&+*2U(y%VJ7^ zEdXF)PtPDYeV?Z*qv2%M_@pEiZEYDa7~FpkEFJ)yPRGm)C`s1Dur6iC@3hXy1F`$(W_;}Ful2%Up9(jX4>qZ4ZsWDQ&V91SBgm%FDr)| zlYnfvrp-n^WRfVBRq2jhUnEIU&Qg48pZb|uzibp1`rsA3LIpB^xRa%fy(9zf|LUN# z_WHX^pD*yAn<FZyy*A`4SJxU5EH({&-gG;pk_X zGZZX6j?4>A{W{w9Y1{}K7a%SerZ0V%e7n3DrfP;$8g1q(^nzllex@C0MO?tB7Uc!n zP@91%x1K5+zVudZW*lFUC+tJ>x_|g)sU>(|&&ldNu*X+?lxV@1f{&M?bl7xk5?2d6 z-lC6|lnzGGzsV)+X0UrI(0M3pzM`QbCf~ca$ot#4cXhn$GjS-xCw9tNr=v@}es6Ge zMr#&s=;PMD;k4b$zLlmA4wV&8Yn2x^f6MSJoin0JIAI> zjfj7(z}0N2>s8^PO+UJ51O-0M9rJ3q$itl3a6fEeGkmap zHxX6^%(D_Z?jz<+M;bR#pgD_^Dke+C zPyOUM5kmdLEL@)>JM{NLHeRHKk;RX_bQ?-a-`)WhLRSIOWG_Z*J@wkGjNS5-m$DP)Tw3n)7VSZZW#T`&4cc(k!+fSs(k_3s zo%PP))eqZuP0a-*rA0D9){S-n8aDni%xap~1L!CAKgE6H7xlU_pRskLn^fqh;#0&( z3Cb}Am0x-rl>CSwth#41U}0^LifICn1OWK>`tJhfZ5V)6Is!t}ZE+jhOSGyaCXkqP zFUb?~fsm<8o_Yn1doEOBk8ie@s&VGB#mP0tl(=!6!)=}CiYR3~h~fK^CNK~3WH|ar zjJ0lESPCr38jYg?0`euxSD)w@*lpj5t|8AQwMU+OkCrSzc>Y$uF3!LmU=lbY$0{c= zKaAb=zr|u~QH@reOSf0OcM)Z$?!rThJ_DcT;nvICJ4rf28Qw<#9Z%GA_o((PFv4!r z+@3g~lI37vnm8AmVExq#O->k9{m(I74MMKwEgcH~3BBSwL_NT}IzU}o9EZdu=% zc-3*|*xckr^yWit;e!rdoBa?|Grx9=s+3y)*CSl{|NA|>hbvDNHTI^6CAJ2SSwJf& zFX)RV739pQ_Ex&{_KC+xi(5S!d`(sBlC)njCKvsrO$SjUiOxn#Q67)j?se%sS4Etj zUoQCns3UQt*5I8ms1>pN`z@j=8lUEA2N2@dhHk3jJy2xQ2X-?Q_9kJf*W;YmDFyib zd~8Gr9t6K$tZeI8s?a#J$Gs{|L$N;X2`p5Kh2majSZigAp?NCSGGex##^?~;AR66& z^`Nr)f{d`F;@wk8CVv6aYp5TzuaHcxf!4<)W?rf4T{dEUYGvITgT!ziMenG(S=8rp zrw+$PT|@`rkocY?pc zrhD)vB}({K^G=q%$-Mb5;I%)XkdAr#nnk?&;pHSjAAT8DYttF%<^10w;s$D9@Fh}< zWYKiOtS*A zFZF|%VV0SApxn6UKII!`FZ+WRW%dYGrv1Y=bzOQ~!|Ife8@R$D>1Z6p-GfNqsb24b z-MY;UOmHN!22r}i@p)MU&Tga!LRiVYv6V2PdJ&$u6=sA{S9j& zpU^F5%9vs%GdaKMk|#t*a4$O^nG_8^klZ+6h`Fs9DsK*K(Ux&<(66;!<`Z94cwvN| zv>XwJawOg?h?7udt67M%g`gOFsF{*bCFuVC3P*({t!lKa6nS`Qx@o=uIk8)n>aK6! z+1t*0PsdcwDB(f$A60}U9W8db(@g8xurGG8Bll5X2^H{hNr#=<)=TNxt2_4$Tu-gG zGOT{Gm(;}U0XeVZnnfW<5Wj>Q!8dZ%i}P>#PQKpZ5OV|hO%r`VcWJrdqWM|%^hgyu z6=|`OsoV$0I!DN{$YW5<+V0-`B^Sv()d^6^<{bY~$@vHs-NS?BuhKP*5~b!vc_u;p z@^_)3DIA_TS5CE=ZDQmVBy_(2K?4jidRehm1a;8#ebJv%lpjQ>yQ117o^SlY{vT=hHL0kYpNdNe&m&H`4bJ~vJhZG%L_=-fSbN7kO z%@JeTj$XaiEkQ}< zX7Am)MM#5j+I`&yq*c)8-dLRvnkYqSj;#Etefb@~a00YMwPAU1kx4S8=9|kb76#`N zvbC=5305nh>nDavc;Ks8P!rA)!e$Z=1ea|!raf)zWZn7IWQspDmXPT_!nLZhW;kp6 zFTw_+=p^4k4{f+$`po}obGG*yc8!Yw>H%JcWKX%~xdy-P*wj;9T50*sB@gra`u-5m zNfSauX78q{Nc-RZ(sbcjA095<3&{mJ>X(^5c8h;vn#(pzvQlO@`YOvOHckr};sRrz z+t#3v+$G%|AyqMaZh+YKCALyMi-N-f$IS5L8$66;SFv7#I_(&e^%k^Pnkp~wZoJES z3O4~Nn4>E<2@9ROTX?L&BV{cg;VvLDHd~9P*Z3;$U7EH)q&%=*al0Ka#oPU5P%qw_ zIRABWMl10pwHq1a??T@{~@No}U< z?%s3L9OVy5*x}mOKe;&p&Bcs6i3V^O-gf(Y<;5e7gNL6Fh_yE6#CwQcT!U{%FUGb& zu(qAWQ9mDVIxj+e)>g-|qo z8gJog2PHj76xGJ>Dfm|#lczVniu75GNZ=@#KJ7xgb9WP_b`Jlv>WS7s;Wc0GxQg*# zS-+e&N5y&EWk2TPRSk8`E)b(fRC+$hhEikm+Jnsc$LPX}$55TtS-zZt4hMPT7GqJ{jFZh@x|xU3%)F5< z8M^jfhdxA~v!ClPiH=I~AcSg&rbJm{j@Oe6p!L3p4{@hl1E}WwiEBShhZ?o~&9orv z_Bh@c>6*J58Or@rlERoK zLfWK9H#&MeyVGepwj)?^S~}YkjBX;-1QdM0=W~--08IW!`N=ot7gKRHKU3@NM*SfK z$g4rfO^M)ml3VH+EJ-dL1pkDcLCm)Vd^Ok=#i#~5);Xe_a}+os~^Ee~INZsWz3 z{!N|9Zxnoa*GkM|W;qqXd@r2WXp1k<3i+oqy>RWer^Db}9NHKu|86SZ*A4T*Gx9z3 z-e)~{4Y10g*yUe%2HvduHt_t$eVx}w9or#MtlhY6I8;=_itG5!!AVjiS^MR1ksJA5 zz7nDanT05ei_io`FvLd@G{3O0Ao}+9MiLTJmvep}HPL5fGD`vI4v}aO{>&nfp0~I& z&8{^?L*FAvG#H)AWWj@<yjw0+3fANyn(%3jUak4- z@-vU_B2h3#rShCv%S~TksE&C*Cl(MET5efxHMOo;bSuErPGdckyj_QH;<_==lx3U zpOSX!OatfITI9OBE)82tl^~^3AIlW>W?M!y`^yRfXyjWOVtKuxCK&qJr9V_h($#g| zOkzF>AofEDoiCjhot)mD0BZBkz$$RiZNIzS~5BGNYy5?k?KMtQT8(kGKY- zXeHNwtNQcZJv=&?JZt6dDD3*P)RhGtV5>|d7b_@AOV#Ah!p@|-Z9tDV<(NkZEjEKO*7^81 zO}lEo6i#-q{u>wiXN~8jqq;@7U(K!x-H`FCTm*1-$G~Z+X-`bgp3qA{otqf2!1kWE z)|3>cpZNcgL`b-s{5Tmnm)FHi>yo)OzKvBIR`oSPBu)n8xfIoO+py#`OS-zy{5+0m>Z zE{0-NBYw(wr}WMSkj=IA2X>1U0kUHZG<_MmQ9*b=qW0&T4l^9vPF{9|nT*IK@6n1ke)1^RYG2oW?bDKQqWt4l<(vdB&~on5ZB z=I+gbA%%<*DY!#L_`gIBtwSjncU%--sPkWji@;RhZFHgc-mN5usw4ui+xwsEso27R zQ-+cijYUL@l6;2U__U{(k@*Z`EMB5l)q-y#?<<=Xt~+rO^bQ~1^M;t zj=bkzgmq&`L7vFN&Bf@=v$J^(K{RQ}DyA3PZ64us!)DFomvqPPlz?ndkb{rFZYL>2 zvT&8DR=x0|7U5?Xc>_M}SYv$)KK;V=cpBVsRD#>FmTZu;p05~Zk^qGIb+c=&@lffn z)bhTWpz@$8O`kd&1g2ivO&hZq3&$#>;6g#XcHGoyNjhDco<$*}8-cf8HPS zbYO=j%eNy9_#!BkrKI2}w0tIdkyMB;bSjL3*Z|-Y!hH#YSuaAN0Yi6pcO2Z33K3W* zCiQ0_t6{NN?w1quM}4f}VwL3hBllASfjAbN@?|Xt^_HV9=?r#lU7xQOa+i(fonTxX zUFV8z7f*@73M51NtnQk9&H0(}8#FOe*|CjC_&NM)SSbSnI2)L4cO=oV{l(}4BQ(jy zDAybm{N~9xDC3m}IDOjyxI-<=nDOY3`ILy0E(-P+JD z>b)Qb*l-taS{!cmp z=}U{yl0?%?_1SCxb_-7BjB8SRkfT{=@2qonE`PqT0fI0A6Zl;U&1uO<+Se!~IXv6C z&r`uYughs^5uf&V6%VqwR-EGQEiT0hltOSVR@~jKP+STWO>v4e#ogVZSkd6FL4)O{-+%vm z&)Gehot@pxzVq6=&-3+zh7v9o6&3;l0#w8l zsbKA4>2BxhY3JgMfZ&^(_kF^BMGR+X>Q?*na;0sVTW2G>nfIT=o#{@b=tBBb2aFFY zs+WwKGV!_o?GgFDMvD^yO3YX5da~SXF+o1V~9)TmaB^be6<>JWrBCRAJ)P zW&%P|pc}me8asyB>jgd3n+o&q+Uu=V={eQDqJc>vihuHaUn;X$#7&RI^^SgauvqbH z2rfc#F?9C_Gw*ftMcn(+{|ck8oPB3`oiu z^2wG~oao!ztWrUiwG{Y(CjKO-FBM7I?n^mbmK{y(t+`}CHp1wa zh?MveGgqJ|-|0kF+Mra^H@h1MTGteQ?xAdYTbyikcbv_x8+Gm-;8h@?pTj30pFRsE znEmVd)Uk^wsH-lpeg{2g2Md^*z_LS|YmA1sbjs8aXfRua$nUQ#gB=xk2lNz=V_G7@ z2)0I^yO`tV5m;>Q9w{6dc-Mkjk0I_U<6fn)1H+-irz?GNT<-ZBrXuojLK~0pLu0_) zPA`fd=lBvxxTtQjEFu=v5%?P(kvD9OSIvl2g^O^g|js=bL@eex5*{N6yC9v#E*WSb91YB^|so& ztSJ{cLQxs(I6h%jm&TGwlz8axFmmtd-fi_x?J~ZxRR}Wq(pvYfoQv1gMLa@>B?K_PrGGpw0G3iNn+J4eSX5a^(I9{K3l`!&sIP%_x?eE!$=mCkv6ajb9hg;`ZL{ zwA)W1wgDzj0&IpI`d=lo@QnFVuG1O5@r`xxEpS=c>_=gA@#x6f0C$;ku$MtrDwOZ>q*P+t4^B;52Og@;RcE6Io?-hS0a&T|}bTGao zfhC3mG&}8Sa`u3d(tI0)2(`@U2x|L0g`zuJELsXA3i*44Oil)himM*)y`V!mbQ`}g zizPEjXa1YiFwh+_QtQ&;utTU;J*A*YswYfMdq3gg-y9`EZ_jj3yjf4%%%;6pldz`O z76&AyJ09EHXK-+EG-6=g_;jlGx3jZleloC!>7=2cYT{j>!&|c_nk9Awl5~>Fsq?_7 zbhXSHxPW5hzFio<-%V<06LpGx_(h(P>G8WH3XIgH;y&r}{ZG!+<@7=|F-PCOS*dK8 zksx6dZRwc-l~*Sd=I7?7{{+~58^R3b^ACYf2y{rwaMAya`p&xC$g$+U|5-ChrD(>Is{ON6(=? zj;-2WsDc!ic$Q6XFa0H#7etZl>$k0&-nRIU*qhh)sxfPvo{8wL-BKc~2S9}3vspNZ zc-YD_+uK_{PP^*JFTXPJAA#`WtUWrMI}6{E?q{atm~_LxTb%u6?Uuf}x>_PlJV15S ztj?S)@6{_IpMa@Y{14YZ)o`S`%N9YqA7**9+jUKz!dwF8-FkHcb3MtgLZk%Nuuf5df70kuFkGW z3+nVRDeCLAGG^I)wa@kGJY@|H%oW^vak#D^(PqEtwPQp6`)=5Ixy{ILeBecz>Fa$nyu(l6Lp< ziF;UH#M@9U21lRcq1S_=D}q^dZmt$%E{%K6ym)QL;SdkqiPx+UAKA;38cbc*&h@{6 z?%E=MjkF=>e?7~xX|KeNTskE4@&@J4>sN{rLmCRghBCRSCrDHlXO~o*EegDG-LL(& z0dliXb}y_cAv0JTI&pL|`JCW#SBITfjvid4KRn40Oq|LP^hIlvoDv5R#;t@Te+9zj zPO|eE*3^(FqS@Hg$g+Es4=%~%(mc2{>H6`F-1|8`M|Yi?C7h2VvfJQtq7-}TXf`?_ zNGYOkysmk$cumUVMV!6Mxzl`lBWFy=XGt~jbV>O2GXNX(*5QTNh>rLSKL3aPeIVM# z^TQpn+25z^<~CH>PqwqpI&RlXlT*WtIyxDtz{Ggysp##dsPz5AB}hc*1HR*G-B3A7 zyr-YvI~D@0sATJ`moP+*(b3N$CS(7Z(;nRXKhrk47W7Yz#|xX>quC@;JpLlxbfA2^ z*Sg$AczRQ%NK8u|=|q_H?D^%bDnXGiDXBT+ zP-Yj`kZP&Q{l_Kv7mB~4wXm^L?tPoKLry;Oba}HlG!e4Dfk$TQ^$H!l#J~5~7iwnc zQ8{yGtLYK%tR7T**~nyy-{lKou%8Lmb9qIDyO)|%%U($|WD>mgi7wbfdRUK|s_>8V zYF)HaCXevCcb<2E4vVXZ$OLc?)^RlusZ=^V>D4`^;P_WS*)5n7xlXA(#V0vG$2u@L zzas;5&AZ>ZP`$d?N*d~->Hw{&r3q;5yEit9xxCxbjDKNe zvH1`|JD#fgH2zwT!|m=^gs{`}Wxfo*?%~?vVP%;>(iy>-mXc5EuyA;0!*#ARN2$Ik zv^|w*J5YKw-%Iz&2k&eHuCoUx2OF(X*hAk&QZoiutvRH#aURseamp42&W3Jxmh%J+ed;3)_z~odc*VL%XPb{SucHC4K-f+ zw|;lMT?Z(x94CqDJ{1ThjacyIgMaKmLzJO(A~X%&5-n*6)HWR3qKOY`E!nr>7mZ-s zoKtk&O{F5~t!j1R9?0ZHFn?^+!wsGoPk%>Zs~P?wc^*wJ7q8Qx7J+>T%Qe zbbWOC@Auz1*ctFE_DhkW$1nteZJpS`K5Z>6=AFdp^wFl+~G@FJhL@D#vx0J2=_Txkm zFUGrdEi2C>lsDv$|8`?aKAcO_z2L$_+fuN(5aWj?opoT#)cNHEV~9UtlAVCD5(?uty5Mn=T&~BoJEdeZUJP z&Z3D$6dN_NGT+~Mku^U1Xu}6IGpnNu6*r?P9hf1=1R1qQn~8SxN#9zaRTr6oP{zX$ zpOKNrK^0pUFVEZdvHw3332AD17i8@<;jcMxvgJ<*A{!axA~)sgkGH?8);!M&tIobZ zI80rFh%3Q67n7&*qe@`$%kyB>` zbsp2tG1t1qb#LbYoMGAhO(8F1<$*SFLrJ!xNjMbirU~Fa{~kGAJ9gd**?b=>D!S0$ zwvkW2^TOn-F}O`6DwO9|a_4gT1t_I&PkHlMASklff$UUnf0~*|v(XJiM1yBP*FugL zlQWkzon989bPX#8n=LtV96yIEUo&Y25X?e)vRoLLz_NT@*df8Jc2GXfE(&<#33f_^eu`JbLCM>}!O&U{`C(VUwqoGD81hCCES=c|ZYaN;eUMent%%s0q z?j2v5AFTsC5B;RY;u``@pE7}NVxu~J%cuTNyr;!2ogq>@Y;YJNNZMQK>qZfsB z;L^+e!*QVB1eG&)>$l0oVSTz1gxZGfL?Kqzwt95Cv)Xk1KYzB+`uaJ$f^i$5%QSUP zws?XO(BfTLL)vS`?eWF_@hsMDt9qayE=4J|Z85*1bcP}ZbyV(;C_*0sh`CKT1Uay& zBnq7=WJu(>DyDrYo9^kaD!pmRkNsJ2c#e?~B?Zk+8#i~ql+)}}|C8_L_4ej5^z|64 zKypCg(+8W^kd_T{(mYb>4?3P2_pb&9YzNNScr-@3*ibG${Z7?uba!GHp9l^5oDY;V ziL;sOXye~P|3C-rqLl)+UONP;E_TujPHvN4B7t?Rdh^C}B0>B=U3 zG{-KiZ90_~QIn>%RT>Y-w0j1|xp+wmc}nNlxoluZS;)xbFiV>N`2c#f;jOlQF+c!O z^ZQA>@dH|bSfedDHq%7WHhULOu%gcP_$=+$f_Ac6$mn57o&j_j`FjR>a+0JCTVY;} zC9z32<(tcy9zN4At4y9!*m|&XF$*Z2i{0ier69fReo$c(_^(jwNG(k|>(1pxnV{{U zj?}*dXDA&;z0s5g-vFrpAdhhJ;M!Xc8(4M!ZaA+Q5M5eO^{j6h5xuIcrnBuKl5om?yhsm_dI7}I&<%$5}e>4 zkf%ml>@gC76J&=6zde?Dc7VW_nB&wQINg8l#?l>UpPc)2;1<%cF6HicxO3~k{hhlL z5iTru6P_a21t@cT_p_^*Dh_Key1uv%&my<+aOPsw*Jbe9qN1}mV%CB&f`)g)tmxmq ze9NM3pdPLN|rBQ@3HSmcKzbM_XMg!_5@iOgL|HM&<>ctEl%*Q{k>wS6o9gF z=la#o&}8TDe|Lq-7Z7-*Xuw*(pdC?BVMNIdvWisan@$zM=s;6e5+W0Hd11w6 zb+Z_y%7cruSy!50c$EeRMv#$*k&)S<{%<^9MlPyf8Jc`LJ?LJZNl68j3GM@Ny2?!) z=GpCC%E~(=S}AD_=0)<$b&eFX*5lFYL` z#b@|1rX}9i`A*cmGh0bt@~LxLkvGl?5|tnSs=8nC#L!;pmsF$v{t6$QyCA``r~rj@hc3k1Ehk31Xi$%iOE`2k6h+8r zY0Zgb&>e>%YS|$xD%wu)!lhW$EM`wVmSnqE4>xm_Sq`_&Bw6hHGrp6)CcS?_(p+{Fo3(Ves@Wd$zF30X3x>+M6lEw||3 zUgU+XJ-fF83bWrIfx}h?A{;JPy3!dOQ-GAuEp@bd&gVW>!n-AcAA-)NpaF^C|El~zVv%;frbd9P`F`VcBLwv) znLC6gH|yIqt;gsb5#-B`E`_JRkj0hUcJ0D+iw<-CLRlADO7l$6tDg=Op|xrpBQ+&y zmTIhO1cZ{#@W?)xfRKkl$CoWJAy0>}{_1ZM(M;>;D2IC;_V5G`{X{C6sH&&LlOCSb z(Bbu)*z(u2l0ZS4(xo-!?6w%1*cvZ#0U1_W9}IG+Z=3AFPmF zM6M@YS;r$A>nb;m51q~WDwNAmlJoGctEQc1N!u23u#a-McQyJ>$!JO~;`3zPlS9xrR5W z?huoAKr;u2N(OjDrt)O+!i67ca7{CXeds;b96&#P2?<*Bxrby6|2OU!o(-ICI(5lh zhHcGC^jO`wNbD|xEHqnn^L$qsuzoVHnM`8(V0YBdu2)ZNZF%%j`moxr<_(_(ZZoxd zB(FgSgVlTxBb<3B&fdMTD=avZS+yW&mDD%YP&A;-qNK!WTk~yShG_1U%ESbBPuQ%} zt=y%jXN_z=KaPwK|0t}AN8i?g?~UOhSRMHDey_7@1hOq0RJxV(`0{!zY4JKM*5&Lm zhfCUY)|R8Q<@{fg^BGCKQD_EgbCgD(lQe)A8a=a#tF&Y*wkrB1 z?=yu$fDb3o#4CrNq*r2pzoXjdz!*Y*RfU&`_O7|<22AO^Jl@pU6WtVlOSr!BaE_pY zKES$l=Z&9sIBNSmjDXQkD&74V4|SuMdgSNxtmp~D$~IaLk*JwOC-gG{*R zl!*i}rY*dSYJF)1G4ll(0aegr^E&guQ#2(}gkXKaWca5tm|liQ*3vZ)Z{QvQUsj@i z+m)PpA|Ecd2qAZa;#X_q;1-Xv9}|&u;Bobky{2Vfm%cq!1^{?bZFk@#J_aTvEpF!W z5I-b(7nTM6`S9|(cQIPjd|5B%6~`0iO7rC!%Va}unRK6PYmmQF-w zD+KG_CKbanMSkCA%S-RrTEmpfRd)1_xr}f1oVp!0mB733zRx>f8+-$wsXTcJ_|RI9 zk(ak|9bqcqpZvgt!t|;?A5Rzl<_?-eA0ISWc8~9*O_Sj}>BSmLl6Md6TLuE1XPBM0 zFL6SF(?i6X&-tRyun|HSp6L>d4ga(~Gh_wIVz`D*=^3EnLB8oq?$Ns@SNTW}H@#ff zrVUr}ZMW!V5H#Q^ctf;ZcgWvyr>Rxop9;#m!|j}(Mzn@bC{pX zH8$7>>UvHTrLfEf=7#L`e~k=W)0O}R`uh_>5@KeqhRIi!i6CB@mw^!5#(L(Rk5Ww{~IV{=lixlCkC+4ZaP0-B1`zC$2In>&&YHp6_prEpkkcqpHTE@?K*)vY0?1m-Z zcaUt~Z5RBDL(R3mGHEZ(QApB|r_1NUp-&UzPhwXgX*++R8>~5#4vdwwx!h*>ky!^d z9s~Hyem(EKPmC{bWWIl;RqKZ-V48b*dHvb`WsU|q4Mx3a?*Hnd-rH$qHWS$$V~zuEM?Zm?)rw+yK`t1AmEM z%h!smPFaVX^0#+QnU+b$Z*LA|z~(A=r<*U1_=iFq>XP+73cRDZnToT&9_PKg$$P{3 zvbY#D~!x)I5lWt-3w6q7%FexjT5Ik#aNl46qWVedNNj z+0)_^OiF2g4X@V%8lP(udAYj2T$em=Z>QaJ|7}mmWWBvt0C$!_XP-2wV1)-lQ0Y>?3Ie~{GtXSf=!?!`NO5<>4kNEkx(u&X(r-R+| zBz8w}cYq`_eQX zbGdZFf>8P>8vFvg+X3CLafTrNsC;Ht97kW}UvZ9YMxii4ltOnU#s3}HBZ2S~{SN#E znKW-s;01DQ6VDp=9=AjkmE{Pge0>3|PKXBGg{hO8HQBug!5shDK)y>HX_rE21=ikY ziVjBazb11$Gd9FC=%!624vb3S*G#5PHfOMv04tw(j9!no*BMCc zD(pg=vpLeNy_&i&Pb`bF{6eo|nz^1gKsY!)b(Ny73%i54R}n#U zGfOkF9(OZ!Ti}{Qjd}Lg`$;G8*2p3dN$bbhnsrRUl09)12L1=4L*!~wI8u_*%-K7% zjZawE(lD=2Y83MKM%COKke;GzCj5A5Jr+Oz`vzT{^ACs^Bwc!I#^I2Jhpo_K&(I{^IAS&j_+ae&-{423{+M zjW1iG?6#pZPVllm!ZuOw)UVcr{7xRGDXaT!ZWvlX=)!_-{s;#W5FI6q5V+rd~Y($X&v4<1ciA1y5{jo($R!Pmc`s3Z^S z@jf9tJan<_<~+S$#~a}va8=~I0|$uGng!pI?Pt~;{TV~#rZ1AL{Wc8;)>KWsfAx@~ zE4H4RSVF=VSSdIoYi!7*Jk~EEtlBRnGSA{{UG}1RjHq4B$|4Hqee!wnz8zvGGsNC+ zPk7`bCvBk??%=MaYgGgp5XP24d-_=hqF;;U)Dn$du(~eve?`v}x+@-F2S?$4$>ibd z$`MEM)0#S3lTW3VLHQdR8Yy-c=U^hHj?pa41QNY}dA)=(ETTH4;rc*9DY%aB{fp9QJPK)YoF%k$U@Q zVCnz$Oa$E->uT&%OAZ*?=|9{0CCob-w5>ustoT>N7XBBMv~j+5giny;9Dv_Yfzw58j=RV2a`q`uw5D~mv)G@^vo-nh&sU^%lf!{ozs5!1Nyn?b33krg zD+{AWNAdIY+$DPlhxtOtCwQfwor8C;3w8k1*LedAH|ZM~UDPXyzV9XG3^qAswS&R` zR74$NqK9v!5iSXyL5Sux&CfsYOSiKA2hhUA-T<%QDqAfsECh?M2P3{DbAYhSzOLQv zP3CR$9>;N)MjCTDQSM} ze~+2PXWj||q3@gM%Rid7d|R5OqLpJ|#y~=<_$I13S}U&ju65qrSLPb4u-K5LxC&~K zIaNj^WBTMu_ZrV#s=m%S* zX~5}CyTY!R>vn=yoT>DK3=y-)SOG{|*jX z`$KMKJmdL%8fju%Gn6)yrMLoiYKyx*fK_{hDkbx~+cJ4DG-?c@ng z-`%y8=oq=kF*NK%+9vN|=YmZka*T})`TD1E!N`=k!Y@Z1L;wJBl0y>Be!Vc4*Be8I zC(qyQgR58`U$$HK2xnc+m^)$8$T}IBNtf5Jq0iE&mWr<1KEL$hI8A&5zR5h`%=jPV z6(oa{F0C__f5l4>!hVOJf7|d`wjw3iIr%Y>f*ce*klgp0U0?A88eEBmf;7Dnrs++e z_Qgt_II;i{)e2Dy2@sab!D?Vl_C+Jw&W>X54!_-TH8bsaVIJ{YLi~llE}37j^gq=c z_@{%x+4+;|@asH{m!>JDsKq$NjG9W0g+(*7{}!X6qvMI2DWYLYs%5EJy4PGLONY z4quFkmJCS>JY~yCpie%%n&BMNx6YzZCd1jP(;vQk#EfBNBtXF8A|ok8<(t1kPkVeG z$bOONC+*g;C|CNw2>((Se{HFDl{zzyHwUz4%jXw#n-snfA>Z!vq9Lp#vRC(Xl0k|F zS^UW+qOt@;kaIT9BKQ_Gr^#hMN;AkF2ORj~izJr*^w)vEEUDq@{#ofO*zf*jC}yLS zZuQ4x8{?}Sb$Y%+*OO<4{N&!SUpQ4>siEhi^~sWSEuLYKfp6mN(U;IVqUCprzZL^0 zrQGChY`FCI#&G;BhO57z(^PoAq5pH)6hGMgYkjHGDg5K>%HGz*TD5t|OQh($0oEWckAx|uMO=rLhbSk4}-WJxHA>OnmxDe#PrT*imK zJ9++y{ra)yCr32P*D)kSe~|G=iAzV{+f;?7`B6Z4_j}omA5+oD!&)TXrDbWSH-*cm zJG;ADf7d5h@X!S|AdiG{3<4~eaE=}ZQkm6K7HYjAmlhJmIrMF2SC{V;_&eLQFESy6 ze>Drs#vZ(CJQ!-#y;j6MVM!ZP4m>|o&zZYyhiah0xdZ!gW|$$R7Es*Fw@JI; z)ww^lyUWYVKvoFKBRU%26#%e1`QXn4IW8(uBZjb;-`<|iA&Wkrx=4^wezcSVO0kKg zs0&NqKI#F|rxq8lEOva=1Uf5H2{DnoaC~2X0d75t_McacfhxvhFC5I@Lpe7WN;5Lb zepOdL*YSj_Dq9~|#bjtR72B$`enyRcaJ{F!h_o?H z+$6S|S5T6BL;o9aWp-BdAY1Qn%Cj8F9dqZa#pN}-u!KArrIdRqB-?mI(5My-SyE*2 zb~oa73JCeLQY}z7r(&*sOb{#SOS<-?v%$ zt@@LV=p%{0b(UI(sfG#>3oX7dw}=L!b+GiQ2(`P|`%<<)pbAfe>S9hTZ-8*WO9j+h zyUuof7=wunyQ1P#oj$zWjDk;7%+48C75Mhbmfe^7(Jw&3I)jZ!mjsRZD^!YZEw%qW zC^PC6S!xj0)rIM{LSU`;CTM|T8lCwf8Ni*#e-8p)hVSTD!q=kv zkQaVbppgn6e+@@y%*Ro1p!~GYuUaK639T0XO_3lxGk?lbu&rnUsC$Kx zhwdIb7DOpn#qlYudxVK2iy;y^AAX$~g6}?tQ_RSaD<0UtNl4>ylHcLf5t7YM)cRs2 zrVfc^U0vH;sxu3+9vJaDJ`!MYqUu1ADmt)nkWc% z9#BBsVu5C$1Y7Z<9xM=uY(tXl{YZi* zn1NAFB4-k5J`oV`CXjG2HDvQigh4b3AHK-%zGG9GmU zZYX0LA@O`q=bXL|8^w%^@@Y>@$v?j<3*slgOf|-+e~ZE&(8%f9>cm`a&sX%*h?an$ zw~!4Q#@8(aHyP$lM5$KjUaK6y8sUQ?p@Z0aJy2$+Wf=iV7!$2DSzEd(CyMtqKVz&u zv+EZfx!U;hFBe!yv~?nR*LrZG{#sR*t0C;!FD_lxLqDHZbPG@l=u;>-%MFW2eX$)zA+zH zrt=E(^BYt=Ag^d^x?B&JPJ99i30(+X@CMvcF!B+;z;_&G3yK$xV>jd_JHF>d61lC-XNAO6wt&-0@~wEF|g@h&d+r)HIVDVj7R!RLEHVd22K z&V2l~)@Gc~Eiq%fSQR=gx>bK4zmNo1^S-yq?*8+{z*T1Gx;%=BFN%#?_hlHjr%m(G z;39}{5~aFNP^Px$4?PZUMIgcNa&8kvR+gLNhc317 zPjJe~a*)*w-!;pekTFx>V%fD`4!$t}9O}XGOCTE&8A|(*2IVnGxlnnUj*$%`Ql6oz zB377-fB@wKVD5*UAzutzEQ%GS%8ahqo(KJYO9{4b z_=66Ycxr_}aYZvi7h53)(hKn#ni+|rTo@mNEIrL78+WV>-ycvp8mVIeK_MH_H|Anx zI)D0J^k1~K`Y|SN?i`QkI)eGJR~3$d#n_hvy*DKXH=~P=)OROe?aREDPn#LZ-5S05 zuR@6WV3~&y&1_Hw2mEG%`xI@4kkE#dS8Ox~r(ad+;OE%coNcPg$|chu+zE5~CQd?a z^F@Guf0(x9@8SYP0AL8E-qqvhXI9djZa!=m+R9CU%sZ<&&@Z(FB!%5HL7o9|?49^Aq*hI0xsGE0-K1Uy} zhVLUHszb}@t{qa82C0?~rE57?7Bz_g*qNs@=of2Ug-lAsM4g0upKzavd|CL*60LvL zMGEf1i-PJDH{mHXlTA^ua)&Fll-jx60iLD2Aw5X5Mk^z$4ZLU_?<6p;U#37FXOW5JuAzWH3tmRka5C z4LDI}+<|}F_zj$z8NZydcw~l%fdZj3>0=qZ&3=;D&Ze4s*30kpSiEl9v@emv5I)i) zbSE-8)1%vG~FY0=#WP6t3`4lzY@LAz2wh#r8tw zFmMv8Q?mkxnl9}7Z2yY%`on&eZec=oAn|Du;MBufdm^d&iTD)A1M7$GVd;u?K;}8u zs#7d0nP}0v7lvz)g@xa-1pX);6w9Q?z>qtl-}$+hgQ@{%2Yb#0aJZku#zdoE=sZuP_CtJ1Kh0>-ceUXbXkSDNzEh8@P%qr;Unt*Bw zB~RA?^?tz5#gkjWI0=&3#6HC0bYif{tq}-#moLZ->M6;%G0g7xEl6K`$$*}&hRVRJ z)V)U%FBU(VX=Yj@Mqoap##`-L&cR@=pL&6g)Eq9`%8aQ)stC|RB{XABV8j>>6=ozU zuh1>PLPD;Htzi4Xc29~5r2jyK#emG@urR0S7rMPeXW|8gY*+r$@2qmfJKwh!}i(nbsAr)_@pxnmA#=4EYn`<-J;qIdzk5PWSOM{`?PY&m{=hJ$O z5QS6>ln60727k-ZbJ27&B(4fowvWLKA73mwo+?yjv@WobqBi-6Hn33QYr=_z>wfH# zk-e)XBINYm{u!b${XjSV*6U6{H^`zsHAtxTB+~f-R+B&cRKX!%GGSu_X9y-?X5oZr z__@t}@3IQ)NQJrKn8BnMh*kSV1w!oKfb$hH6D~j`Jlh2|CHJ}-33X?TU{sU#G**XZaYV@HCpSIb| z`X`+YO3(5c{cH%P!5_j=wFk^Mr0XB7jitwS@yndrr|n8ss@;#|8>Zfhy|KNBnHW?8 zJ{so<6Z}9(RwS(CV!}eQXAYERE-#O)iD6X8rXd9=66h$H&`)y!)T}sva>&a5pus?7 zSAlY&>n~avRtzYRjaPYHhok z@cB$}P}Wq&%OcGcYZWc0XA~~$j$lCWTbZcK#O&kE3iZCuv$u)ceBW_wWw4LD*8KLd zT19ZvujV7Y-JS|Foydw{E!wJwwFHj}T2npan~R6kis(gBJ;_@55K;I;v>k350A&I; zxntMU4C^mUbz}XH+;Wfy)+MZSe~*2Iqb`10bBShW|87OcU2H?8?IN{I$ibfyt$bxz zw@hzbj4ipK8UB4t^^@02QYO#t5S%mMCpWtbq%gbV$!%$Qw;MqJCs%jvFU9HJ~`Wpj$Sw-C{YA%=Az%r88%8{aqCP9mZ$?4B%?~`>WN? zNUuze0LJn+%kwb-4H;E6Cb$PBMFpf{U?9cP6MO_TUpO>XDJUvix<%J!4~3wLg39W)nWGfz42<~F{Knje zhgYI~08$RvHjos+afwmOp~lhPlnE^o0m`UO`fhaMnZ_VK3KC8^hqp}q5=JElB49TJ z#QW3mCIRP@^l0t-vuCZ>(hu7ugZt}r)`eVSG-=-Rq5^;Yw{t7BV;4l5r;p)`VHQUu zbzPW@r%c@0l_qpP3z2*Ak^NZTZj`of_=qAe#Uwz)) zO4?MEPvwdcdL{lH6NyCHdKm5-}yWZr^0ssqnoDX;aW7s2mCvZLjhE&`{g$VFmFJWEkaCjYF*=htfA z7Oeg{V~YP~#$(fhr9j@tr_ubOBKY`Ld;=3iy0T0@cYF$oU^QgtKn2N8^1-QAhj}0ao z1eKX?R8XZqcDDPB@538DM?)eWoMQseXSktjj0kk-axTRDjSv|ysCXE9G7?ynZi$N0 z3JSGhh=2Z9&v~L0Uh*+A^yP#2R2};@>l<|}8($9ShF@|F^bHIQ$5*(*!2;xn2spRT zdK@_=9uy!!yer-6c__XKuKPS=aCvS}e{de&1>rh}jjF7|TxiAkmgxZc%IbR8pL%Mb z4)h!nW>ZB03{xOebu}Yudo^sZlhZ3E4DAV+p&EA5_j@yOSMz%5-@lW`KHb+qc_Yd< z3H@o;u;GqLbU`)OnJD-PDwgjoIfzq}nI$y}w0p;vTG{tx(d}6mz zhnHgX@Pxq@%oux=Lvq_ic0l>2NMH7<`;7@tJ|-??7#v5Om9jcDN4P3L-ScD+fHwMqdE@BaIWWC1MOVjb%w(xX@^ml2!&MnY77df>XS!8m)U$SW!{U*wT~1mhHm z#3x532@6Ji8xL*aj9l#<`1tT&ExzOWPpm`^gi#)V$@~=64G_+@ zZF>kSF$NS-0q60#65h~GjUpjhsR+DeKEIT2Yiq%nO$bCuu=u+=^5B*+?y|V5vqt?M zMFh?el%}5Td!BeUynN^y5A=YO2oJY2A5x%jspNxYUZw2X-7@$!`P^ z!*pk_KLbG^(a4YcdV%jp>2AY96n5_^qx4M43AzkK`^wg0#)Mgk>`3OK$OezugLcypPDzU-lkBj3Y{2 z>xk9S`DLzXeR+GznNekGvY474m6|2{#TJF1rqqmtkV!B%R7Bx54KxN1-2$jd+@#z^ z_nBBSt}v#U?H)0%kRUcbidZqFD77D8Cn9BBS9(SzW46vl*maYgK6c~xR=QTzs=foW z+Z>D-+zyR*!$*I_`)%8lMp-A!>uL(j(VJ1Y5S4t6NjZ)k3bE|_k|EIrq>V!z*zG^O zVffOQi|^2+uMgi{5@2i~Ir)_o6ht0QSU!&nwjV6aE{(*Cdko^lO~c8ZthJFy6r8~} zgpoT%$Cjvq2Fq4~b@u~kKFn`ztIYGc!CX={gsKBcq*Y0r@Uo~4;d^*{yl(Tj^pRj2 zlU|%0$|KS#HEtn+$hFUCR+V=S!S0r+oPKr0RMe+E^LORd?H8M-YA!B_ks3NGQn+dn z@F;XQ;EK)etM7e`volD_`twhE&vs@UypSD7 z8k#pP51t@Kyp{&GY1_KmVZ7+9Md{v0UC!8vZ~zI#1*!^mbOSwwtPGK2mG@hD+9a}z zLZyhpiR{$Z7;F|!uSufWhzL-);CZb|uS;6Z7o7(r*{a(21z=5|9a`osp!=O%Fweh~ zg9u}ryCcJTEa0CDVzPaQ%EuHyI6WBu$AMjPexh>8Z~WNfiY|Z}<59>(m=f$%V~!c! z(!akQIuQQpRgmfS&0$`(L1=+F0iv=R|7&60r*TFM!{;<3{oyQP)jyG8Xdpvu`yz__whs5=81ouI6Cuh;hccia4uute=NtBAFU6TQ~%3sG?g5A z1g%&K3rET^hzN_omH+nZ$>L*fqpqHkAB}KnVA@T8X*TTrjzrVo#ZAxU58<>US~Jul zVvA_G0+oR9{kA9M)6LCXf#Zuq*&ax6gzI|(xhxNItgRo!j;81+U$h*NZl-=#HTF~y zL{5qk4q%ZqP^yFrwIHea2wsg!T8&Uj+_nWfKh%yU4;1G5!s@@Jup6|Y=UofGUGAW5 zq021J7vspIyi9I5{z82eOM~|iD7CCe*acvePjyYYuTdc)lbvqwR<^P-_obNrf~y=# zDnzJ5Vkts`zMPB<&`L%{lqJDbL8?HIw20a+Ah5En`}ZOQqD%70YIAx{;>FH)FIB2s zzg5S-=Z&T7-NL<>AjQdBnRmC0zuNzd<*&JVYVtb@+!!caj2c>0kBS5QZc_)jd6!5wpSao7uA@oY5p+4_te_>nrP#(Ny3#fp z#Ju>)AD`$;@m($b#A`h~W43&eUTv9(^#jY);XKOkR(YjxbQwGzeQ?-tEmcNU|5>49 z>St>W|B=2<$us|cPMPTJ;}eg39NPTj69*M_QKI74Jw?-CSt5+G%E_%UZi7UDJ8Mpt zLt`HkyAPerWFdkP>8)3S;+9LY-c!C`owRxn)OW8GKey$Uje4Le8#*2X`K?XYF z?NwgAf|_g_xUrN2%EG%GWAdgvU4cI;%=fw_mKZU}%E}Y3E7#L`yV^fZ&T4{OV;JFy zPKHdVR1&^})gDzBJpqxBEH+^laQ09kems&9VRQIiTFnZLqU(oZ%(6ntZ#KqAxfrJ4 zCshnHzG3c)QQj}n22jWtXX+*T!=wJ|Nb&6I374fMw^YiK#diwRYQddpoS zP9ITt*tU}lHokf>4T=huW`|Y`gwtchRE++pnxK2LGykyHFNv%o&BqbAtwOESiz3Hh zgTN|Rz+XA4S^qNA(eG)O1I zzB^|XWQvHb6`+m3B6z($H_Rvd~;af%n$;_fXj#R*W{-Q7ux zy9ReDR;&#mg_Ig?3da%P_`&pflY$}k*}92ADX^-~!JZ1shJD1y2x zW_2JY1l=&)v~*2VLnV1X5t)q*F&zW47Nii}H9hFK#0hQ*Fv zTKbh@3LH$%gzx)gHp)d_sEmQv-(dxwgPw^0HpyBWw5C6tZVi^!pE;xp;B(9(XU={$ zl}AObwRN8qe>CR)hhWq|QrSdR*+W{bXB&e3hp3O8s|u$eSn}Vy)j1U1VY>DBLJFW7 z0iouf6NyqP=YvVEI#Oa3-UW^+wI)15xO*)pMX?iH7vZyVwtzctx zJAyL9*cbcMx!QU>z0I|qE)w3VFt~}9VcMBixh8_)-EQE~?fc*Z-`P!n_o>e&oweR! zwy}|e?-+dx%ofCb-n_~(r9tS2=pXmU_!D56D>41z#l_VM&kXcRTBxeD^L9WtGh{wdU*@3 z3%TI2l#$kzUcvCI`qBdlD=foj-;9dDz0gSC{+2bwDFFKJ|8W7n^urf=@XyItxVpU2 zSB>Y9c+;#T)M{q#rD87M2nL5AfQSY`^lxFj3oypy4v9iw?Lqa)*MjP5o)Pp=Ccg#< zyCssysEBRq#o~Aj92il=?+A(Le$leCWsEJ_VHtu;X))ya zt4O5qFv6sRi|(|MEOZ8lvx``MlMrWDv;4x0^z}G1w4(JBgI?)oa)I0z2AGSGfy9gi{0MZ7C9WK)9t{wr7Y8@P@0Zh!JLx;ekP77rG{lfp-NMrOT|!wI-e6N#lMRM1On@P{>OBMyiiaOzzMEr7um4yDKDT?%D;dfVW*Wd z!S1A!5&2emCSy}VhZMdCF0uzEUcPa-1sw4$Fzd-#U2mf(z)JE|o2ouIoz5O~Zreuv z!Y_EOV?A(+PXMBisGG&PfkV`81yn!vQab{>wplA0u{DF5Y|@nyrjVAhZNned{Ol!) zco$Cp{aa&4`-W{}OufqdQ2C=SRHL29s5i1yaHYI&15EJvr>*86M)?#vk|8T?uA1cEyDSM zwME-)sg?uQ(3!dgzk3|B$=bDUGXjz$NEAj@PF>6K>7wX&k@dp3wjvkY}B{+A5zizTy4>kz4 zNnQd_Y_hwh5I$?xhij|n)UNvs<2GY9;ZE=dmPCnv!czf0A5KLRSe?)`Emv03xV*kc z5^K0?aEp9qpqS@Q-hOL)Ap1BT!LMT7{v+GBq+I-%?aWqLu*{r(@XgdzbQ;X~%4z~+ z)BTk4#vyCW6`k)Ux+W3xU_9lN>`wajK+uEH@t%L`M(co>xUr>k?Na{M&E8MDK$xEA z{y}Id;HKv(Ns~*%<(xmZXmx>a7CQ&-BWW)!MF>?TBJRdT2I?W{w`rxKA`uc zx3qZC6}el7NoX?2Xu4Xj)yvxkH6XT*A^0HBYnNh%nl~4ps1^}_qW!>2tbq~P5KX@t z8mxflx@xT?O~>}*li>5Ku>k+je=HUJt4}uv&-Vd}>!<6hEq87MRL%)KKR4t|{uw6H zpws>YCAPpl6Bn_~Mt^z;eIYKYYuF$T7LuAA-E?`h6)>nLIsgG{&|(5^8QHM1W27~$ zDYxJV>tpEW{;Fyz|?#;ptD^mTv%o<-BidAB{S;wpLcsg{%MuGj*n} zv-;o%5!hAC(TrKbRpxsMTuPRgyDi84s9h^ay5$j9EVQvWB;;GI#UQ-n8stWXS9>wN znVb-t5A?>1I_O(-gVVc);ZGsonL=3v`5dX+eub&PMs!ZW?u<2N#Gbg=?l(FomZ2vi zGMiUD?7x^nixx+I1?&fVTT^aZ?y?6gna5-j`Ax$KUX_lF%^F@}V%Wp{K*F;cnzAp| zLg4NTnPGbW0SjZ={08O8d@Xu`H>`}G=oAy3qA|39E|rSWJgpqSmp{da?^5v9_3FE| z(!+|vZ*b z(Txme4DgS7`e1`Z>?=GYFm(9Bgm4AzG3UMUyBhvYB3TGiXXp4VS$*Fn42w>ZR;>A? z^I4Y`kecu9QA*M!$e@|1kiRp&|K1=$Gj63z@(&pmUfvNrKf*~@>uFrC z`VyS>fj%Jay#Tc3+h35j|4 zjR-kTH_{v!U=f#wSWr)JNftH;`K0#g> zJ{WD3s0SGeDO=dYZx_a6Plt`Co9a*#AZ1{LlpMD2ho%%uQ6zq58L_P%AlUS#(Su1~zyJz;8zL$R5;6fuR zA2Cim1dxY<$aZ15xCemor$Czdpsih(9@I3*XN`#u!bA{?i>0%(W+8sp7kxk=$Id@V z0?@_a3z6#*DXf48DzI?*GSF7llW!)-e_3hu3ZA@qFdoYY)q26A2F5# z4R{E%?dMS{s4J{Eg?d>nQo3Ww%OGqfh!$`E&Ca2DSi}>=B@da5jGH_}cPlU)gBknB zZ~>`R{fG~z-XT5j4_&)7@ux5fNp1TMV>`TicUgA%cJuqXL|5(GjaF8Xw+3?kI=W?t zni{%chsmfqxQ@q~?@=lYu@W$)I*gMQSOc>wS$txoWhds*Jf$+Xs@MjlxoJ_bO)`7> zX|G$??-AjSyYh0fUJwbSvmzN2?aG*B(rX+$L_iRr{lSKc1tA7K;kF7N>06wc9mmGH z{?dyQG%3wT+8i;5!)a6zyFUsqtlU~rcdn-C^D^fibT@WOcKgRF7`_;=vjzas1K4Bs z<7^qY;rphT2sofAAjn`ic6IfSd`U?n*qN!x11JFYjs>`|wK#e4`szK*5qO)m_*}Jj z1~+ZPBC)p~UIG5v)lTVk$0j+jA3syaUA$<-8}@<2u|oM=Fw_}9?5wyA@`%!99FguF zcH{TnCnjl(@2xGWtCi$OkJB#gR7G`l-JTDBJQ?`5yr(6vZX_i}F1Vthz)-WiA29XN z$Jg?O=#G2l0H}AZ8dKqkgrDW8ZY)XWDN=9h&Ho);G~dXX((sn`?m8s@qaGv5JHCWp zy((|~6&8W)3nAdRKF-Ov`34PJ`l<6q+8k0o)dT78Q#?7Sa5-4aby2J0BYl3dD_kJ% zb;3Lrvcjz;Lcy5%TG17%48W){= zA>_+8(Yu%0gIg1p$!aE*4skCVdtk3oDh02iwbttLW+xdB6GGZUU;W@pHVn)L9%$80 z^1T#+#)WU3mZ4v~=-WzUMCkhjG@Go{CAXL|-o#EWg?I(5CAZWLOyu##JAoQoHe>|}gnL-#I z-!;IJgLz*Z{cYM0ZXiMQwGXteFZyDz3%;CQI@eqQX95!Pth_?xBd+j;YbC4v1_OC>6&VuV;3RPRY=@JaAT+jZcGgK!kIr=Q3ktZdkxSo}VaAp7 zefxrXoFqM``EgefXSTHeX6$qHo46{rceEdf4*UgM(NG(aMziG^(d< z-NbO^ma}0ru!fV3J(v^AqAOWBq0OhkF=4sHXW=EB6$e>B>mK%<7&*}=L6&;T@K1X9 zmttSb%DBJ0aF?=#1yf?(75sS5*wdMSgmMsp@sJ&-h$>#Rv-+KZjJeQCBL|m1Nw$k*L;e^kBszCs3HA^`7NX4q?C%tO@Nm?X?96mxWjPq3_?%-k~S{wQ%9U|`JbeqQv z)43^R2}0;^$9Q|YGO<*cz~{GCd`6VZY-Qlvu1urGs%E_nz^0faN3AV!e|8$rt;5pu zK*_8uUxUeq%oQ4;)L~sUuzN|oWQPDtMNRd}d5R$I4^le|;3~Si!@&{Nm>q$k>xr{U z0Ym2~^HC%>>7AT=K+1cBN{O57Ko+c61%+c*%7OgBIC8X>1Q{9KJa7dcjxuWUO;nVY z=3kuO*6TQ5$&uQpT3Ok!^tRozQsi{7`E!^eafu9Q8JB=c`Iw+DgtdO#;f;3>&eyQ} z1knV`_4Yo9W2;X4gHO({TJ8PLMcGoy$$drT5Ee!0v|oc_+@o%!nz|_5U^i}}@L`|4 zqBJUI#6=@wW;Ok(XFrsJ7u5CsM2RK zk?K2xze4v96PT+^w(o;3P@zi7ms;1e@({Kw&KZy+rl}Hq1;IKuHDPHf2@Tj!(vRYz zVI_sH6RI|dy}1wqo`pkL4cYUP%eh{(>Qke`VgOn01YQu*=`%7Ko(1LDnvE73Eas*!P*|C&Es?u;M(0JBI z?!}A;Y3*}7zma>CGaP+vm&QX&N|B(eLY$XQTHwd8RsN9lAhuI5s%c_Z?8H|E^h8+p zqyAGMzRTOtZ3O8$Z{Iz#ks9JZE=e2JLFSNypEnEEAsY6AuUkmN4k+lId01ZxBcOOeBIg`py9ULI<)rKpxw# zp0BE-lE)=^Xi&ND?+Rhs1hdgRKQF~3VQw$j%rP{58xLUmo52DiK1*g}{L0FXVagd46^F(ee_O7Ud1b`P+K*IL`Gn;q|NL73o#NLWOqQ5VdxtVK=(M z@8f0SXd*oU+4kL?cM4$drg&RX^(`(K+Q-t+1#YlS)fzoKEG;5}D~!*gr|fpjfDE9`|BYI?kCy-;}-77W)IE!!8K>0h2DZ)8g~5!nbiNJY-eskGM!P+i$V zo)y2H_A-Ao0$uDIxomiE+|16hSdzqe{{Spgd8hpxig3&w2ouZ4R!LomTe?6Fb5d8b z4y4PfdDPv}GJ_p{2)^KlLK-f5AYEHe=i(qhJ`9%cy(#eWS27b%UA#p#pwDbzS@5+5 zC2Hiy1&f`a$r|i-`U61pT=_ca5Qadr^&0gMhwwbmc7=V4a6~zMxmwYYoZ!jXCPp3Y zS?19pKl>SBh(K3RNBRstNUttio~R^uT^O4Y?O~4!mhPI-%4CvHNDG z%R2Bi+=UoKdi#($|JYslROt6L_i?QPlwtO=X6E|uk*-X%%g~wxtGLs+)t(g$IS`tl zzYIDAY5dx3{(QdCxQ|TtiU4zPn~BG#5DK~~`Ss&$y-@6sWN(({Wpk1ORG$E!)0QxN zQuo(B4og11-8!_uIS+hoOqx6*kW${!$BBXc*hzZ*wxViCoAW0E0CeTSw6+;(`xkBZ zLYA8AW+EhA2qqUxe0@}EH2GzsT%MnLulMDAf8|Oh;OrYfv$b<`7DA&R3copVWT^F8 zkPMEFoo+M<_dQqNxYa0Hsl<}_$I!#rzt=ttDb!?3?87d;V)$g#M~|1$j=hVTPJa)L zf(UAQ!zW2Hhh4U;y`NywM;8~2)QQ@9%dRua$G)5GqcOZz@*QrZq(`M7kar43PvH~0 z3sldvBcM+b)Un+`eh`2;1L4bkai+MQ_4f3X&EzsG$UndGd_|xR^!%33g><-+*mIqX zq1@=opmadsk_Pb1j|FrF9ZrJr#Vqhl-#)#)Cn3p!K6#4N4DY(xb&f9Fy6Cd{rC-i|_!)DxD*606CJQL7rHD&NQ0weBV`GU4t)*CyfCcR(j{H#6 z+n-ZtYi##j4L11LwMEN#Sqg|)zt}##ZXgd9ec)(4?|tDc@Ub*nbUBm^`Z_&_5bW4q zxp+aKAxz!3b6|slR+Tw+x|T3^8eruX(hc-}|163E6KOQ@30_T(XXn=RRAaC&5?R zpU?@#JYlKlq>RI17k*E4-@J*tziW`CGF}RD^`uGrB?SfxX<}sR4qpbw5cmRtz!~2g zz&?d`VP=8#l3BrvL=g+tj~}nv65c!zgu=&Ik9m;YQ`0fMyglUQK?CL_ldC7L=kZtw z8YTij1U}x(R*~;rlR+l|J-Kj!b%Q**%^&jv(WDVPdWW`QcdE7eW`hU4>k)Ck_m;Vr z@OO0}Pp9CqVbdqYGG$Sfn{=cES-U+wFZ0hCwa^9r!&)YfR|?@DyqGHpmbeo;nnHus4$2jj+anSJpg^FF=V)THGk z%E+h{r4kK;EzX}r+W=(E2SxPwG%4xfw6;@U{3N5&A4_^-YxETh4 zkJ6krCm{qiM8P1Dpwr*rTL0dI->?_eTKlSguOg5O-g0ug8p*L|PH{1vG5Vgw$G>{` zp#ODU9eZBwKQz0%Jrh7+zVNXfgN%h3FF@fZ((?xS6@HOD<&S;p^g}ilbVo)0fbLE> zk|#mp|&pSRC4;ElfAD===Ev z8SZ*Mu+}=~BsQ`H9~z8FA6FPTyuzQ_^ik?2NClx})*4dI_)hlQPcpx+?3dDr=bjAB zNd|Bsm3y!*x!GleRLFPfw1oISmZu(tX0yM4O-sWesy3W@3M!eH4#v4{+mGOTR*AGk^)x}0YOUx zVsq_$VO6vCj9@x_PlNYd_gg_z;-x3gdrxgB>S@ab;H;Fu?><{0=z9WIPZCelb%>WV zl9zqR*ZFw;){S1JwWo<|tzKr_q$f{TiG}Of<%S-;W6Y`JRd^?UtQ%fAw$1<6?oz9j zrcG!8?p{(tf<~>rG)Y%AwMx*2@5-NkEi6h+)^12jpY$?`mZe^1gIi1}0s1lECjUMknwXDOa6aiYEy7&TQmRZC5M12>(fL|==J1Nw>0 z86y&e2Huctf)f$)+fm5Xbyg)$B=T?MeknWs9hI5|&c$KY4*nIk@JpapU=exaK_55O z^}P`EbBP2rGdI<4Gn@G~!+qhUpEo_r9&!55b@to30INnuPYL3cmv}S5zsMT*4~USv zXrssg_TL-G$*yq;VCs_AR^nyENe<%Mk)o?${a2fT&>;D-0@&kNsTBmfIp zcWql&>)(bZn$4F3cqeg5$S86Ld9rMA8)`lvv%I_@m`)33_Y&C`q8)#=ULZq~NBGIo zpc8FlsG}Fzpo%feH}MBNVc*8%=7^QQFayHx)jizZj-(;R6}t>}bap=I3qiJ-yK&p< zL#*vO?`*_STY?$q#X=uJt$T@-7yoFw#v>)Vpr_$9X8|nunC}^R=!OKBy*kcXy|Sh0 z0LvGdx0P2Fxz4`Qx-DJ&AA+5XP=3fWOL?k(Q}%J*=Qq#V;PDgkPEyv1#e989*+N?9!Xr$fl-v7p-aukF{435bg@ss8(!s@a{`!=@B% z^Hi&9oO#hGjXH;;@!CV(`n{R})NwO$7j|lPA1S@rzk=+v+%uEBU-5m~ALuL3=1)iyE;ttr+;P8C1Kz( z4|1UZGL5{QfJr{}I5q!j&xn^ab9@Sf@C^O58x5+0wK`OS&|^dn z^5`yom#94cEH~F0KDgaQC`U)ikAdQ8yzHdHlzIdGG~x2JL*nf8aoh)eP?KzwHJoGcE7m2!{o`e#9Bmhv&!9(!DDv{P{JOeldSr!zUK_brR=& zum$P<1gbjrzNT-99gGy#>FE`)>vB@ptGoaN2nm7$%|! z&ZeBFF#766C0iB4SQ`gX{(oG6@P1uPz2Pc@*1E<*(7&ho{x&A3Nm#y zaQR*z@WlIl+H80$8&O0=#Gp5TtQNV`w!S#9;ZEn#zV89O5g+R3_%9n`iA*D$gj}@= zPz^(@H$mTDnOqSH$T~Ik>%;iBe4PD|=d+ir&<=yXDAT2l_5r&6U}j^dzXS+fj-(}@ zDa0O#|AOU1ev&z}#*5ovL3q+Qg!HqI1WC`#Z+()18cE`&1G+k>>tW`!Bj$h{eU1p5 zMe}l1-fWx(eVlcaWlf)A(d}AIc^xo~B9bW;#fx!J|0<`|GyNk^7DJHs_BH@A`uPi8 z-?6M?X-h?mTk&n{ZMjy@Cm-&%io2hroUoV{&%X0dd+XVVwiZhR%t-V6^~E|xH^y%a($5D*i)yYl@muo{GTGqw zULQ}seRgDO6VFpRy9k1e_jnkt``vt7>%B|!Y=aQcS5!R{vK zO}Zme)o3^_>cp2YYZ4KyH~#i?GJyXdyE42F1&2=S$ts*qUlz+d@@FM5ekZBOi&`uQ zsNQIqWIIm&O`iJGtHZVqHv|5;M(cl~|FqT}ta$@oZdU(7gXGpD4!1fv`-|T4N(tu5 zE#Ka~pt2-%O<|DgXG8<5J`Tt$8UCs5IX<;m$B@>1aK;4iCskXPW#eVqhJ!dYPR z{9HHAH=s(Cdfv4rd}QV>10Hpg^zqNn=p11{zRHed*;h)0Fd#B^uvQU{uIdZh1Hp3! zxMS<3kL}fTIjEeWq7J|;s9HCkwNg1xBS=B>R~ED`C#);+$|pkodMkG&&^OsgNzv?Jlym zthDq;{P6If)HZ_4*Jy1y8MV<1BM0Ey6Qi2`|*ow2U> znayq{k9GFLZ@~#=s{CI^PQyK&KeK4o(Ld_)A9+H0)BiN?g*8-iZKLU?>vITx*;RQ@ zE<{R7TJ-UYhW{p{>6pXoy&6;Mww%y*ZMI~|GjwQm3Lpp%NOK6`x%Ad2yM1qbp7xKM zNF^@!xs)X_-5Jwp&LQ^$*1S2IEvi4p1&qW0x-*Kghs{T)DPraT>B@&%o#4dv1}Doo zmX=cA&^eY>V`5$11`dKzR?KjO(0;rOn~l57P^Yf%XCgZK3!R;&QC-G#t>N1K=RsY! z_|$pewLd#8t>QVUra-RrwE`8UHd#Dzjq980n26JM!dSV1Vm#E*3O4FW2m7c^#V~1! zMEW#*&}k8nO>1IAkwIFb5PY3f;uzQ&_|SI9kb2VyY{fk4pzJsv+FftzGc9d7+jL!D zi;qb&YC7w}JyT?AgRGNE2AA0DXM{`P;h?eRFbOOPa8Qt&Gf=|yF>Uh4T5aGIr%uu@ z+;C~aSlg4++Mc_@HE%FFp0km^%a^4L&Ll_itH*m8kJND)=CH<&RwpO*A+Of^a;@2W z=2T@+j+$7?G*4MPz+x2i{z6N=`C zpEvL%K+ygBjR&G&pKnI7vF&$}lxUCj9unSXx4 z!4~Dke%);2*LH~*d|L63D!PNK@$0cA7PM1&#t&@z&|Hrv2-D6lRGr2kPFV=#emRJd zPYox4-TpiAN_kUn0Fir4>E4vbO(c@`&5K9QaZlFqQ!r(@WMGhH5yhHv2DoK804KNt zH5TC!`T&}}@0+{cxP@~i_01j!NP_3zJgsg-Jth6!mN6=&i#?brvIK?sJn35p;4FE6>dJemL6d*0tX1bS;5e3gKF zP;>or?fD?`nF()@es*afiwzgOJUafNl-^o`U` z7kWTN;6u<>Z|eBo$%()>Y7@+EIzpY|qG~oE@Es0nvX<7^;havqG3R7e$yNtvtJ6z~ z0tf#4+(|7xqeus$>Yp{`g5u5R`_|W|lVMv*%c}uQ=@VaSfBZb_Y8y!zKQeNy>$O$g zr9K*GVZ$m)&<(?ovsy`rcQUAop)H)HPuKb&vEHhoOSIfNC-7#0L(3$;NP{IMN{>fp zszxG9#o3XV-heT!ru3}qH5BvlOPjruksoP8N0JKlGyN?~%sdMNi*(Uf@=of$RwqKb zBt?$Nq3_0os-wKB{HlW-#8Md7Pn1`1)7Kg;U)o?76P^)2zNe)c<^Mj$kEP9jIdDgO z0MIYdH_-za1YCw=Q=xtALWC-8RC;J!uRlq2%U+z8*WgNB%yAxY=FI+;yQ%(a4>yzr zM(%W+Ko?t|qTNAgBfO?UB?ux+#Pr;23R83Z`(}e==vd+Qiga;6RZh{%o?FmkDZuW(&)|Kemr#=JldMKXOVfAN;u3zzEz*PuukBKr<$)+?I? zQ`>CHRrvdEL4B)RX$4o0JNY?Zwa&d-vDgdIXO)l-G7$&N5*9YX6_Q5_1gcw`%c6oM=6vfKJOKuD<;B#c0{YhSMY`~HuL#eIC)wfPJXups_>-u0;4Zo zAbgm8Dzh)UvqL--L0kXUb~@Hf=!3vH`OXRHhwSV5Tp)ua%7CW#ewWh;RkdX82@IJZ zQYML4g9hiMIF0r)>$)RO70VQ!T&c#n%zT}UyNp|-P8B_;SrQ$H_tN~&0>;$utOC0g z7^u6-?>jSTxFtFdgWhL;xV|C6&0Q|+CJGkzI7s_IOJibUGL@}um;i$A)j$G<2W{cM zUh01?RO|nQ`2K3;L(890|1gLS%oAiXaYOS@{o9XMhiNZD4sETeF2WnmWxd3z;qJ-o z1sVN{p;i`}3|3(eKYQaY%gte4#@f=fQL$x6pbn>-srQE0{?SbJ+S4b_^#6dIGVtuE z&KZ;R(xPgJPr#~l-}RQ^lGV&H!QQnn$AYzwXO^cQp^Y_4*{FgS>T&}n@wLzV`+RB( ze({(z>dhmBcx0JHR%#>`rB!_+6Au#Zvzb6$Z6V#!o$(HQe!6x|w=BuuvA4!kmLVbi zK^&6|U$gCj12#D^x5fwd-9+9|WRLK8#zt8$v0JmL)m~8W?Gd48x7YQqfH0mUUvnkz{0k$V$`Y;Oi29D4qT(*7de!{!6mM6X;nz%IN|HMkhNt z8d|)ZLV#4bsVyM|=$I#|WIWko6VOthO&**w;HPoezeHgC2+Bh}@DWtku8J86j?v*) zvy~^4SV}C3bm-{>=26*Ns{NjL4Utg#GrkwU)wokDke|+%>ZKzL?FewyzB1!>wg)jl z_zb>l%>+e18bd}CyybP@gjx*?z-e>x?%la~GJc(F#8Wo2h}uxW&q*2l>mkHQzq z2QWYqUe_x1c@qG84LJ8Gw0gk>ah&_@)4U1Zsq9ix7F2i`R2H)OvEscUq$;1yi=ORZ z$G?G~`=Q3UvvzWAq)9oy6YPjjJEh=8J|N~NfBncr-;lK7TT@Sf=LUxVl$5`u{J`K_b9c8_-uqn zS{5NCu75+Ri%V4p0XJ(DnVkh~n(rq3YTOXR3kYOQG8Yi_5B8p%I1_Nz%sEdLf?+hswm3Sqt zGh0wr{+P0Zfu$&mAG{G<)7`V?z@4e^bQQ za3d?PpiqB{PzqdIH8*M?x3)?LzSFYk^T3m$C6s=H>id0+$)1#upUT4EW5EwL6y*W( z${1>Pq)P&2RaRh19EwaHtaDo*jRPuq5UH8V zCYBKUH6y3oiibn}5HwlL4gNGLvNYe!fL{hOD&ZjjE>eK=#h{lUwJ_x<@pM452E4E(STy5A7!oAW*y1A+8FGZjd&0lD^DZA4|<4lw8+Jub<8_ z?6Lt5adeGIv~80kj`3!x< z-kam`s#30R-e()Rtdn9!(gd8msMB;FG5#*z)wWyuNTbrSC#?Hh$x^Ein*&2ZA1}d` zH`Ai5F0s0?d+~!kTjB$JAO0P{3NrNFMV$9_+H66#`urA0LpP*E1w8VAtQML5$c4(u z2*NvL4rxTjt2=(0#{8QO7bKLc+*z3(vk?)(s2ulXuJBf$_z6no?Ew3AL5ORMYm~F&F$7!^x zPJ)MYUzgod-UzfbnD7MUIGRh@t=8-lX61-_;Pu}X3jucMl)#J1d4tT{$SjjC2WPr z6^)wNU|G@+Q%JIH&fI zyYM#2*3Wt@AYkl0&`zRy;R6qq?T+N5t%6*EYSr!f)2K~sh7Ih_te^-~m-bo?a!CTb zW-_-s&NcoUYDEYCi+WzQe11U_ezZl;{9q{P^d%}9qAn;=1lOg4jw@1d0cF>#wcejd z|F_ccgNv#s^_$90pi$Dyp`xPV z6JXs1|^J-|6L5q9oeWB zpG8_J=rUQ-3Dd^P(j@#OM%vpZkR3NO1bgVx_E&Fr)=E7$5w5l-W=BFn5unoZi?ij8 zD}zrJVb%)+4d;MF;p6t$%%@x;*iZ304Yu@&nW;Jk5c0SVt7rByYdPHz zFiWncGjh#FkYiC?9^@c&6US|`hX+|PC3u238SHOIF>IXQj@NJ*ZpIXzueJ1Oa5#^X zU=v>ZddgWjJBib&&LUup$;N5Sh6>+Ap$+;J47ueM*ugcyM&iHE8-WcFN$4>)ZnoS_ zv5KHk%$8iS2)T^UCY=xN6GA0$uXpbxrG=J|iYzKPeK4A%uaTp+s&?RBOf6dwB(^r} zdVz3q$%-MH)#dZ9AfI{ecOORY>;+p9q1$um`9jC>b;t}_6H#fkhOVwa4Xz`T@ugr` z&#uQJoIRexbw?jobk3Ejwk9nuL12lAl>&twax3>PP9_5ijD5VBf^^vpEH;=?3r$~H zzkdC?0xt(#w&t$~uosr&Q-2uWC7c$6Up%D=JVUyRH<%MMYwEH~XxX1;Z|_iEZDy%N zzr*4Bl?E$x3PDE%r67w@uL^ea-0@SB<2pLhx@1*t3T4Q>^yu)+_-J8r_STYeWP-L*2Mp2`4w4V3ESe5kV>nb7zPVnO2R z6PsDa3j}<(E0_y%MEEkxK#*M86tK&@-znRbBuiFdSmb^AT1c3pc%ip#zr5csyxL;r{$5;Dcs3y(WVtf<93e7X1{e`Zf8~jGdx0Z7W3Xk0!BERtmtpF7WN4IXxO6WMA5fDhmX}{7uJ+W3ixCvtrn+$J!dgr6 zv#uHu5m9b^F-OH&m5izsS-*8x}-~rLwuYBj{7a@-E|n1%CnI| z5GowpCz^%%xn<2A6X&8f$MSqJ@$Wnor}8Bo9D`$tBtLcy7hfmgcV|mOMqG=DixMXk zC!vKp@K-adajd^GT|W87Y6B4LeklZ|jiTXZpn5NL;XB=Sdm z2LHBH1}xzoXWS|U&PH@!MRK7L{*rM2s~OUn;FURg{XYriGHT{n-`u4B+hC<&0D*5- zWvfJhCGYAFV`+nL#f(Sg5^QF!hG$(e$I~Pd^*Kfos6<20&d&Nht|G18m1lX6SE$DLW^NZd3a>TIUsF)c{5KeARW<|(PV-L-_UFBCi%Ucv zQ?2C{d@uIcT8s`?Rnl~`1Dz47SaIuOtjQRxns_f>y2z}UUq$9qaT0KL*90SK-zVp1 z*w|KJwbaB8U%Wv_`jD-HM)ygnqe(nngr6cP#PQacL|4-fDMyWiQl12B&b+EwTv`*8 z98qlcY<$0oW$ZHuQnBl8p)AGaGQOHQ=`GxJrm(InJz{Zc#9Q52@GtMZegjEDn%ST#- z&wMD!Nq1I4e%yK&GNn$}|I*~Hc$i{?q99P-SiJ1lNzWTzz3^08c*Z z_pPpm`Jglpb0(UVjx7aaHSZ~D09Tge*FIMfbq3mKit^FIPWn%OgQGZC0ghFkLGF!- z1~)H3y@LuO!U1Ke;O-|8xJvZB|IeMJhC{5cw3OyqV-Nxb=G9N zUCoZptWQG#P7$2io4SS#T|-Uu~OVAE-e&_yAz;D@!~GUrMSC8aVJ1qjFuEDd03@mN(BST`7^QTq@~%cJq@xqwZt zyC>iyLx!24SkQiRNkkBBqMa--OeH6}GK^16hm8#eiP`yhZj?FLGKa?$NbB<^mfxSn3F*flf78nCKs; zH|*5PasZw(W0ct1sIKv(?fD|ClHDMvQrhdU!uq0X^M1C^e}L+U&ic8VpR_w@GwqKU z*nf89_45eQVzn9Kp=;~OwE+OP0)Mpgr9USmw(KuE=&zc1S{~fDcD{S9q4wIrJ8Rj` zCR;yOkjVKnLwlR|2=S#>R==x)ZB96lh<$f?mqWA9 z$euos9iWy6M|{;8XXsvRo%Ur0a@1_EDoA;Ds2VH!026ziGln~CsWI9v=lBNjJD@|$ z9uhaNabr5#Ok|8Xu@%Y;29|v}AKr+OD_H8X%o|*+K=ASy&5>$;GaGWwsu_F&wi{ks zpClGpHh){E)$QSwF8`Qxx)603&3PSi@hBdD`Pn?td@3BXKX|dTMssexZs3}AJL6s& zK3E+mRu(*%E^G@{1~wvTsA7xu%L#vPQ?1jpVw=u8U;n^7q4tN~VT2Gn!we;kdAwoM zx7}%Ro3~Yj7&V(p-ip$;zB6Z%k`CNdKF8Mp9;RREV#1N}9xvS7hZ;{zl8v&*ZFQn^ zdh^+^d9uD@F_;Ff97{I(7Jw`=9(~zzCeLG$rP*x&av}C{87*EY&!O@Ujuc8#>gARa z|A~&2)UNmBXpJ`_cTY#Y;%VcSBFFgQw~lcixz=C9Orlt$e7G+FF4l71#`)4SY{}`tGq3G!O*u%Q2|`tn3yi7J|0FB=ds!L-j!pHx=+{M zx2~%5rPq~5m1V`*F2I91P)e#S_jUtYxXCW>_9sp$+b^!;nfgn17S72c$q`!tK>`^$ zFnEHhx8;#@(pG6o8N}U+%7<@)#=TeLo}Wa4W1=9Bz%G#`b5EnveN5P#_06Q`-lsOF zn51}BJeHsx`y=qi#?KsOa($SG$_YGn%+pwVSKC*L4!_l#JGVOMt{dV)1<1?D-DuEe zY}NlS@1K+PE(wuIM#=LOlf#i+@Z21I=Uqe9Wy_>r%%txguc7bd0C36K1cJtfmcFL6 zDeKR>x~*@;^zNqfKdCN?ad}Gc8XF8|NRz(B6mDBa{d;`!W3qD8Gr9$mbEL#Y_K1S4 zvXAXfGx6{`n&IGl5Fhv57{O6E^EfyUMf)=Y6Rj!BR_O{)L|*82sSI51J5pPmLVO&L zkmufB9*C`V6OE|*x20>&s>vG)WXxIe3&KTQ%*Ice;g)a$3KlE!^N_|BtP|=t>!nuo zQ8Go9$uaWlSf^q}X4d33Sk?kGg6;)p!z9@tK~3XjL>eBs?Ka8@_u2ZOG9{efB)BmY zdjZ_uW%Rap6a(O(p7Bq4e!Q_E-hD-J`f0Tl8`GU@yRh5Q@8!I^A?%1)Ld*f=K|RT9 zUkb=f{}^jpUsUbbDLf7wRu9mJA$!79nrrb)CaqM660Hv*_0XmH zM$LrDaOYCnUxIWcGx4rWo_@wz__6yee>JP;mV#oTBW&i(Sy&x2LEk7xqU2}$;fN*ZhSGuM(!&RZR?Q>z`84QF%K`QY~Y#Opju4|t7Z(t%Mg|KL9F)|!3-8BEZC_Ks& z4IGC>k;w+jT`0jgau8XbGim50iM8SrdqQ0G@gMCUu%@j3F8qf~VtU*b3} z+~2>*@E2Hq-;(lu*_xr0E`rpWdR0_DgOMo=FlVE_lr@*XBaMm*q2boFF^nkMzd%g3 zL#EeanF_Mly-E=#bPIr|iiTb5E=ZhQdFnsKUw(jNsF#2pjUqm6NLjKR5dP5SkVsQN zvAtl$jTy{e5?92kk@<*(dae9LulyK#+cUWLjfYHSQO5|-1M2W0n!88eoBsS!IIR*) zvSD~%>8U8Y$uUoD?oqT)@s|Mz{_vZ0Vp(=%KeuHL8rj1zaZ{=}`eFyRRnr=c)^RcU z%dv+rawfquWLV()>+kLZ`M1Rh!0U1vGuR79trCH&3k1=k>3rjW+BJJAspq!*+~7?x zgB=RkZ_a>e@}DIw_;DGUOfJ5m_Vqc@C5sq4=rS$)xUTzats}WRyiySqD>K+8X=qi_ zu1I4!oT-IHS{lWF@bB~TC$p%1_l<`n)0Y3HXXLhBg^xgSQBdLmf6?H3%?+<~+h0+% zPJWO6O19vD!W`!O8*rAZpFR~Yi2j^D;l7G2FzFok}LxvNNB>1cVdxIBMuR zE&KONP2S(yTAsK~*cM5bBjBs1R#(S?Cg_J}XGK6zDyO1Sbsz0yzw2?KsFsLTr(hp* zwe^F+xz+QBnbrcJ8v((L%PMxvo)US1nB>gvAi=2@tws9B$jHb#ImhZIl4v=v?UDL0 z8Cb=>raeH_-OG4cs%Vm8<7e6K$_8=x^x2RynArm25jO#s%PwC`1D*(cIR7!&$^%0= zc3E!WxzM8TL42J&S zsK0f84&`g~Svs#?+nD$fZtNd}?K(l~tF@aWKm#G09@D#2l7%rFn>Y6hJ*1%@PnNFX zQ;ggnt9g4)UT*|K$B}Yc7Vl3UH)Q5rtX{A8*w^(dqxnSMP^wzHreS=-rnKA|Nc#8S zq`F1hl|qGzO>luOF5(u?IS1KaB#N+neldM`lti_0l)KRrx*m*W{CHwzyyMAJ8=Jv7 z3$lEznqt0=eGSZ!C{ft-wG^@#$oKh7a%-#auXa`AVPq>82L8{^w$UgrHju$jiVVfQC4rn>vRwvNb z{QO>1dLhRiOMq}oQ{*{c?sRstS0_3>X)gc^5YG>TjIUgj&M%ffw4nb~hMXEci>boO*yUJVTt=aB}u z?GdZ-qI$4%CoxeY9p zs7)*JD9Z=UUwFuEUz{_zcn7Q8z~Tr{vb% zaR18~C^9%6akAVnTJ_`buqE^w4vY7rg9$CgrO>kfGfwWD)7+v@HjTV55RI3o* zHc_R1Lqvr^6E^8}lkcN5;Nc&eK+ggmmKh|*o@Vl5j9WO2DaGBGAyVnHMgd2pYlvD@ zhs@PHcsbi*P=Z65uW(`4aNj4XneTf_6$5uQMphB@HU7C>yLFgX$B8DySIfx${_Wm@ zyjeFcP$)K=FL+a8H}^(nb!o4-y3c>0hW=aOk#_&pV=MK_@9kZGt%rQ_?hiKE#EQwj zAA27#mp6n5_4yNEI4I;@Q4A^>QAZg8cEz>S8!tx&Y5Kw;jWY3$f`eUMb#9W+O7_>^ z8CYCBOj13_QTVPAt3A$96O)o~^sxIV3gh_FQ)ZWzxVK1K-o(+MzsD^bsI^e^+6sTF zRpiJPvZc|3k$wa*@V=PhIG$(Ye5Q{#bU!@!dU|)dZq#VIq=8Lo^&Vegy&m_+f+(mdbu^we$o5JB2Ad*Jk5{%4XF9` zjE1g+xh%*I>lV(Zm2NRPdR^k_OV{QDqXumpN6O*-=!f96y{R7RjWj<0*Q=p|mch`A zP}6FED3f)}#P2ex#+s=5CS6s~^@-kGUbCH;?MIP+brVfy)*8#@NT#&9)9b-c>f1R} zh?KGLB6=MU6%Og^#vS^jV+%7hElU|0V~u+wy+UbMvIGpY1RNuC3b`rL(`Y2f5nrCq zbT~AJEd&19W21o%oFoFh9L+-QGd0E^0O1vsP``O+Fsj zZXNpkmqgGQdbl9}vYGffCIfQHy@)I9!qXo6?IJxR;}a#KCks!EKzKur-8t&a$M+aW zC(ymYy2IC->*ImTG4{4eev{tT#QJ4BU_}(1%Xs*8AgVHz(YoKs*$zFOFK<{W z9pM>db+mfU9AT{-PagLS@cBDaxm1uKz|ae~iQ|prS6-kScD6 z0=rRN-_OzUQ-w1;c$rS*4%){0QC?Oi{B;n=w6k&&8G&MOYTpIr5pMiD_%N{1N<$44$Z5dG5=}oHL!S8_&r-CK__KBy?Q&xR39z zo2k#9U7^_GIu0IV?5 zKNgdzq}&r#UODm}tNuMOTE&0_v$z3DH)#ll!d;A9y zDWl`X zm(cD})d;3Th(H~SlQXHxM%;6Ji=t6Fw|py=`z878);nB|u6dOs`1hA&?b2iK0UBEW ziy@or(zAV#O;x=?CSCPVzV5^+Ivi|fhqUC?oanRtvT|N@RZXp zr~ZUQIDbi>9B7dyn5ANKN)4 zkUPz;sarA<)}tt^u1jXH8_fO-G`y6kN4n!rtIPO#biY0Zzg^k-^Q44zTG26U47%Gu z-~5Lj%Mwkk3XD*yUvgeF~xye+XD8uMj1R7DLi;(mqxMh9njvq z_+xDHlDMw=aaIO@1Kfkn9{XYSschh}Wz`Ak_p{m|s8^Dq@6hQteUoCa)hH)zZp+e37n6uZZ4M!R|um6)8o{uFOn<#%YNJKkQn=GCA`$b3u} zO<~~w=eQh-I-Sg1z(iiEg%Q|&>YgCaz|72HX6eD$VN7%BNg3W>uSB1VMnvyM9UCS? zOXl0pb425?(u~Ho&eoiZEPzTDPIaupHo?gLVP$0%t_vQ^dfShfjH~MP zGo!QFBa;zq;HqM0f$K!QdagQG*Eh0o`Hangaj{^ zk%@(=Km;$VO%t4A$QEqOl=##+7>%g0kYnTD?DUnl`s8=zBs-9TwGID_yYDCeNqo8Bk3cwp=qLiBD19;qFL?K!% zAr|_%0Y%n?Bt!(^!GOwqRLBUDgeSSDEcN*a&Phe>`B${TqoN_+l@bI+s*bs%OQaH& z*`H%3B}!moW$il_xy5@2R2A+&zOA)`@asRRJ^`#bD~Yob@d?$El7CT9`7R0Q!}ed} z4q-rlC1!-dL!dvGb$$V#e)h;Si#|2AcFG4f7yn?~8=#_ut^y&XsJR*!(&*GCMvw1gJ1QkVOmDVzc1RmQwYWdO z2epwpvnRc0b~c=rkCLJNXl6oVfr{e<-UE9%ofQjZDoJ?>L7nKwsZ^R)oZrAf8tq0o zY#bbD?)v>NdQe?Bg6fNuGm?RwN%5e`6aRRA%K@EyC)U0H`B%pm5>k*P?$}HEvO^N< zQ5jjItQ4BKP2nOj`t+tNL5y7ZkU1eSA=gKBE5$FKfz|9Sg1EV}jni65YuVJckU{yv zW)A0oU=)-o=8#Uu9;!C;a8EbK;O@xB4-Kk`tVc7vJrX}6TM?>&&Bbfz1{$-HVfr<* zwwl1OyxE%`U$ffsx-26V&S9C%FKiL(`}zNp>9s??+b!_ zr3+Jg0*~X69jyxEA2rTP83bkRnrGosK6b*`?#6ev!)fnj2g+TI)8fFNCe!qH|#100#tyYyCA(~4GIfaEz z5>q;1Sf+Egdba|VBSz~FPL8(vI>oobks2-qOA|jDh^p|U(Nl(-DpG{+5Ae&oI;%TY=@sIdQ%!-Z(C^V17WmU5%8_&Odj){#8laPpzgKTWUZB?SG$TChw z$BVUi>d-x|774`pi9GUHG-km&SSN;%5hR?K%tZHp(Rd9 zO~PfnBpgB#zyKPMI0U1u#`jk2!b1wo5Yl%qGi_{63Jg*v;A0t(c zY~f%0C7vTAJzE-40!a4#(_aT1%+Or=U*Q_$He8Pi>!?psBoQ8KO0$c~wPAc0-+zrCoeYI+r;Jzxz+A=Srn(R~l}; z0#PP8O#!`#ZIbc$XO^^nzNq4}_OF|f_v=0;?kEWZkw?ZzYYT)HmVD$EZEDtdEF#Lc ziH|-S7nKz=`Bp&rr}*%lh}IAf>dx~spFOGN2ckzr2ayj$`mwXxWawcJ-Ne4RLV_%W z!ffFtZX0;HKQJP20nkK=m19f!9k5;|Dufr6p}kWJ$z3U&rqja6BJWbhSZjJ)Sk`Z@ z&Nl1YeSX;}2Gr)@Jl)rQ5Y28f!rsTI8d5fK5XkCAdr^W0J!7jhCp+c^A-* zE9%+y-6{MXF=2IAGt=seo_OF|5JJH09(?vaIk(&Og+2pH=LA2j{&?=pg~ksWQt9&g znlpH9GV9h+*1c`C>DB`GOP1EtkfSwvPBWzdpFK=1nRrR3aFThEMD>#hIY6EZ@RQOo zR+Fd2ANVz(Mi_!n6+3#$^t_GYhu(5m-A6SS{N-$>UZGFkj0}Y%rEP)>Goa1YD2Kw) z=jJMYMpBge(=xwtO2&ki^W&ISkhGMZKg$aa(Wj2lKNV`o+B3Ck1<^tJ)}({Zro3F5 z%kHK}1q#A#ZPn~=nr1)G@!cq}ey&o}P5P=`7`)@i6Ud-NJ50|}6!SJR|as^0pg?ALwj)yoqlj0}|3CL|=BA~+fs9YQLw3oF)E!LFyW{#3T1 z#^-ImnTGeautcJS@D7nGR3?dEYWmmEHn3(8cHvY(q-n{ei4cGsz{_U&L43o?!9Gs8 z0Yr+Q84K*G0x)3L->EgNb&?nerpaZ*r@kNFn&OLbcg4r}^b6_b#@L-1$m&%CT4~3j zmG)1ic@5?p*tdiL>9)D(J2F2U947fenK9zO%pN6z_r|J{tb;CNvN%y?10(RFHXcVD zpznuro^ZOcCZ*>EAHL2%c7vY7E&H*y*Bg(}hwF9E#VnwYp3t1*b(m5%EIpula@U%b zmA&HR^q7u3_Un=kq*d1#O506y^px(b&GtH_k)o=Lgo-Cv@YbT>;7!=)LXAXEL}2}$ zJ^YrAXO>dYV5IzGH)7CKtlPJP!Th(c6ca*Np85&S6bV)noFHyo03>q#^rQS|6QfiAA}@O#z0B+yxE`DnW4kbD$zyju|Gcm8`lW33->Pvac!hT43^b`Zh^i z*3Sn)VdIzGrn8_rC5zvxS^O~JuIzy8{SAjfZXJOx5yv!GHwnnv+5QCO-NrTH`g?{ zva*^X*E}nQ>j>SSOTug?#eCzJhy%5V1PTh00h-gv;DaX?MqgI)Xe7!qg}`;y?;g5~ z`K`LyD*n=rv+2m!KWNl#_4M?$2<6`sd!~{x#wp=P4wM1I7=e$ZjpMS2!QZ+hO|}CYBsZ|!e{z0XMv47>L!KqDh>7s& z6$rX>w^WmsqT$z&79u0lYcMa<6MBmhsaE;1$Gc#%H-X0t&Zg#2S2%Q&Xx~p;)z`{_ z%gKkxaIe9!e+fa)x*+E5OC;=Z_yEZEmI&+_CT6kSWHCx?IhifCflyLXLVCyWTj~yw;@m5j*X0k{M;9y1S#U(#nOiFO9^=@Qm zs8i81>>#w{(Nq2fSqM1}QGHjdJ9%S{vM0p^@*ivl@#PRGo9!7GMxs$j=4d^= z+jFbx&<6=Wh8V*%W$2O;vap|Q!zYiU|C%)MJ7-j)`q~RHxI>~<*k3wjIME5&P-}7E zWvO$r>&F^C&*~R-7kRRY&ldgws+rRBhkH`yKz>Tk>yT?SnvE9!aO=qX(?wRN1Aa{! zD3qw~{d4gxo2gZBq`|zS4fgL~KaTs_GsluuuBax|OI8Mw6pp56Z?N%}Q|NvF zwp(H0`+W=YLZIGH0{N7;u;rhBKx}4Kd$ROm^7hh1-gg{662ng%``(p3#~d=ARr7FV zO~Al`T#GVQUl9lRU;$P;PFKO=*Frr9>FP1TaZhieKDktTO;sZkizfyfyn8lD-sy5^4 zCOL1nNf_OovvKR_t@`0&H{0KMs=e;HyX$uB>i4-+nyOosp1@9JoE!0Nh~WZ7^oCQ* zk;Y6VNn^*q<6CF8xwfmv6tF|({4Lo`Bg!=*klcAc8%=SJ;Av{M3W+e&oM?qjJdn5^t;{ z2G}2n-$j@F>f3mm0mW#Q^&XGHFD4k^DxJS=v7la$vZ8NoTiiCdicB%l*DXJ`@sa-1 zI6LehPto`vucK3~s&s}DJJ<|Pfq1cyucPXUlKqAxKSg@m`21Iymm%+`LBl zu|Tu=k-fEn4c10?4PE(y!%C{3>F>L4hJS!49^H*_5ZLBy$`Fhl7QcQD2pHY86;Ng^ zDf-m(m*77#OY6!hku27bX1FBC=(M2~>d2NfrEOLB=XIloj@4M`tOgaJ&`bp{1Hd)g z)a@ST`uR2TYGWpRlmy`oCbJ7(W{fva4(g;JsPf?_E7h6z*tJAw7c68#0^9|&@>O;d z)bXU8&<=ZQJ$|=J4);yy)o{6~}7*pu~E_R%w&js$L&a(m4xE$2LbxN{FeKYq%P%{Z^@ zcx4{nwzEe=$*^(rTT0BEX$bRf(HEOsv;FHx`Fah_0njh8}g?-u<;8LfcFXfy#TmkC54Gg)$$$J-l zl9IHR@;my-&X0G}R#>%mE6(C;=51_doit)U6>A+8K=EG_;27wH>fJ^erE+^DhZ zaNgAM-+0}-Q@0AjsRbD5nyPhePfqU#`ZQZ1)mY+(IGd-xT8@rXRmeY=#2Z3BTrV&8 zcDTVE2Su|twE83B!qHZt{Io%F@DYA!86x6OILR6;=k#~GYQVo{)AN<2)GWRLp8u=`&42;VDqa z7{b(a(x&pzx#`|pye&3-!}X(U<_U<4MJaXRk-Je>%nnPW`Bz~{VTd95W zRuiL`F`l=+|I3egwSf7pL)VH(9rEQ^MigOX-sCKJ-2%XY031fhB``*}s2(V1)yij` z!Tz>v4<~*7O6l0}`aPREo}!X<7{R}br9IYaLj}F}Z+}Zwia=ie2bGC!Rau5Zh}>#y z7z}bJ(3@PsDG>y}l>N4wGq83zH@tY|wyvys+x~8~-DeG{e&>Ul`4sEqAAvAfK zNeN|x-4siVdvrao^7^y?A6|9c@Xlt43B3n;F|*2OFjNZM>HKWJDT{8K00n_!;-{1E zejT;%#mA2zdRNQ4usWwp!1Vw?7xel+B(XGN|Ja)dlZ4XQ-Ie;{`_1)aIQ-H1^_zXM zuKyWj!t7^??$`wJF3DI*Rc@#W3s!h(v*$1IHUHCWu3zqa;XH4LMCaiWnI1CqE zcb{%u;MOWity^1boUpqMJXWS%uSYp!TTg*JLS@MF=y%tL36TtjuA7+v3l|S9UG+aN z@X4)Fk!(1HI+;wdH95m2zUsn>Ia~W#Ca{E;(H58@lox~7yo*q=qiAlY5W_q#nD$Xz zrD!WCu72U*8~kq|M&j{_Wzo~j96_q zomXT7uE@Av3qn>7DH}1}M&)WMcyc!stVycO&zMgceN!PVr4Is`=4^*s3y}M3AS}~c zop|4u)V&-XYpkoK7o_%A`H9MI$d+-Lu>&e6`FJ>EifOXtEmZn{_Hlm&mi61Lm4 z2jqSYk0qvH$cUU@z{B3Yx<)+mjRXrmig#a@6c;o4r1SCfJD+#lXV07FPCtAi7*dUa zJ$ki?)V0$g>=rZkJZ`k^t!ktn9C9(;_qAmKnvt^)N_@bdrcp`#iu@j}z^D0YdqX#> ze!SF*)ZZsm;!D_hd!4m6TWEgCudFvD{PUG25@G4-MQ%B-wwgvf!}IrRkegYVAVr%W z=}(y|q8eK()n+Pve)k^^S69CvBTFvh>ZCLLH;-ChN$bm5{N51rQK3|N?j~)AUf@=l zj_P3A9713xqQ9f8_Ug4xAXTXCKAm1}>kU^-Xjsi@db&+TTt0JMUX^hR$2j3tIywm# z=R%4rYz$j{1I2NH zvdX;na6aDNJF6b+VxBdk26B#UFJr^&c!8?Q_dru!Y+AoTYe*Ow!CTFJ3Yx)H3E!I0 z*YP$5f|JLCE9oCA9;5Rid`-cQ11ogmk1;6{`7&s-noQ2ih(`x1y?>oOMEkP8Af>3V zBMEMb`%-qnL}6psZRIp~Nw!Ztzpu;Mp3HK@p84|v72z+!#3fIDtwviP5Io2UFmZCvnC@{WP(E12gK{SCh8Y#NU+@Nq{bXP4R;H8;x4Z5IG&sMB)lzFxk$XMRIoU%6L?z9Z@joaCfr>=n$ETef?-r7PE$1QY^_(qd z)b%oE1>gOl)3a>spE2^S?9gwI25ZMxw>Ku)9&2BO%kaoqy9BH~y+uOTe7)l@(#m=T zyC?jNI>TiTceQyjtnASrIWi2LM_$O@OBsrEm@eAAhLBf5J0~^uZCMf`P%F#R)w>~W z(w(ElQJpx&$In$z(;$c0-Jv{2{p5X+>mzD;=OKY+WgZ~kbw+Hl>Ih)YA zibU1o;yp;G4K~zMQqSUw=w{9rB5=DAo6oofPKlgRMbZ+aG=17l5W6S6kUE*682#Sx zJ$j?a#-!s%!8YW&1zc6O=KdVBQah2k`}%Ts{?gn*+c#-<_cuxgO(bhkW6NC-fS2M8 zGM4mp$_DkW+;>}`vV@gGrlopi~`7P&O+7poxKjOV%0jvGv%jjxKt(~_=VdfRWruGJn1 z=s^;}+6!uV^Gci@f)E+>IqRK?Dq)15nlY27wN1)-vNiJ8wb;#vj?aC(UxPdrub@)V zx}e$PG{GM79yqt>k<38NEs<50BIZkyAHF~QORok)IYh3F)$;HZ(?^noPW-~2n!hP5 zziBtyd$`-w>V%mPH_9FgUe=1j@`ok9+$!gMun~tllEr`wfc@VM)OPB$`^U-}NLUI3wvA^PVbM~YFd4ctQ42MfO^ z?}ywou0EXk!Qw*6=opo%F+cYuRZ$B34lVdG+fFq;Pf_)w`6{WrjDLKTdF)4A~NVxh~p z&zeDnn9&p>R5cZu6h8)@#Szo}Wu~ji*8GP#o7sEsh!OADj%k95mwIjeOZ0L{b=**E zmSt&4LVRwsV1E4THb);~`QnyX&+F}p*LhIJ3&OAUKUsj4#byZ8I$r!FO=IkyuD|jD z?I3ay_$fW_X#4J~Ud~H&I4KFNMU<*Aw30dhi4E!6cWkQ4=k$ZWkukF@%)M)cqoLMZ zT3z5}sB+@-kDHa6MFONOH2+>B!ZgjRH8VaM0y10?l z@;|BPe}ccb>)Ia~Va`zR6+pfp^Qu=kY?FFn6UK+#8%G}26?@7+I56`1!-*VccUGM? zGj{PNUu(YalR)Xj3$7?jV*;^$%tP$gKeqf_&U)i++j=)&-nhEpIge=MCW3PP%oZu7 z{T{=%>$tKAgZU7#AaA3dO}KUY=EPbW?V}>!aK^AzEBf7lAEH-h?>f^AJqMDyvNSKI zuqbuBh6dYvapts(8AX?vRj==}=VH`9a{Sz}HP(1t;=)B)N;1C^p@O!cI5jERtgxK9 zxnAePKNMR-TH8OB^B^$v%xs(O_mf>_kE|~bB6l?GU6=lj#+ZTV$snm5u1w=n4Fn#z znkH@>`pnJGKFSQBL1(syrheN}miw-TmB&aSP+U;J7)5s!4^{8i+inz_zYuLDH*AVM zQSz=)G#oD9-*+!?;-W>h_iCI2ovsO1US?0U2L}mb927@**}ojp@n;ivyiMRP3xwnl z`C3W%b;Kn@vy!`Ob47$NXgR~NGRK(G67!+NjMuL?NiM0*ee9#x5(+P8M`3m28I@ls zrn?ItdVSz)Q{qa!;g|$#k>Mb^*pj^>WV(N`f+dwY(si-@2R!&Ljcf#= zkiwNCUB|9sP0aFyU$Kl@SLJf1j;7%_Nu7C9{~}?nZ7V<4vB5Qn5G!b!!D}P#!hUUqqXL$4a*N0xZa~zj~usZ zhS|c__SvAb$M+fjxTmF$jjCDRSdCSbAWt0h^Kb1#{-11n-BQcKg6Irtm2+F16{8`_WC*cQ!%bP3J>$ffku3&4IUKyfN5gw%D+99SP{@6Ca$1`#U~0 z54XXth#r4TzllSnAP8mm_}FAthy6w2hup4~h?>`TmhQ=q(C||tG5kY3!&qWVnGZx zq~kI)B%rGwofw_xu!DIsvFho1zM{R8ZgDA3{NK`9*XxG z{%qdu;4pbKgXhY7H+I|YEY^Lg^wozJ$Cj_fj|KVt;p|n%df3U>e&UCnKaWutsynh; z?|sD`(!NUS5g}Kt_q?xAF{u;r?q%2zg}v;m+Cj~3-mc#aLyN|u-d$5aQzbi?FFc^r zEAXuzT0M`%p|P#Y_-=NTOy?su;>mwIK5se50)=brQp90xFj=oY`GV&t3O$O7%Y1b+ z8}ElbgHp6ZAOC(bugsR7{V6T>5lAAs&2RDE)=q-2oldPSex%J4HJ zx=P*qLWSUF2F5~E3!y|IG{VyxvkFkpf;t^{V`My2}?`8l&)>P%_H;_J?W4_PSiT)QBY+8 zk(JYRXnl#`>gHrjZ%@(0^SLd-(0h8({~zxWd?PkH#j*{S-v91Vh3q#_C~E7c6C5v^ zNs8c>PsJDu6q`{6@*XDNY2l9j`w`mhle6coun}D(Ai5LqM ztq2+AuCcT{JA7=!U@4Lp{|?WLi)=dh@%i1&L~xj&;~@$CAMl^^&rI#q@=^w4(>~u4 z4zR}X2>j5Ykw_jJ`Hu2cDnJ1v5s#vC$z5IJG$ZKX_2hSn_0<}|=SQbwMmW)%DQPWj zZLH^AaqffcHrvGK#g@I;LK?HbuYP?=6sPEXUtf6ER>B3pvZomMj|NWtip|{(IeSQ^ z>d4OiHc{)3=*pBxUI#Bsgk!7FA|U>LAGYpCdi(9p?5}VF^;#`n?$rg&nsB zoa{ZNX|r-gju`t$kacbFY^WCvHdsLUWiViR~4%?#zJ{I`C z(?O*|`DK11xtpRT?4;Az-Nr87D}Nm0`%W`%NL;5ql}7D)ZF4VQ%RBPjdBA+Ml=JVF zzVH81+<8iY^?T6_n8W%5ri394%{0;tM5SJp0!98%8dI2DswXb(sp*g0c1C6nmrZ!Ht7lR(E<`3}u0cmE&$=E85WAL~&^IBHhU((XP;V{S}j ziClVj*g_hkll}8&*VeF4hX~>&{)hj?M_0T~1A1}NsWKM365x}|vVm?C7kq*qN#wQo z1^j0!#3>@RuR&?h&K2i0i)}x0s+CC(hMT0ahyxFQQRm*L<4Sh&sW#a0UZ)d9?(AXU zd?LvJXmw>jji(;6`}YFXhNhIM;(emEdkMZ6BRkLa@_o3(^OOjLW=5%0oRs zs8FN3q(F^O>}?mcgXv2Sq)01yw*=^cro&)NH}2iZIm~0Qui-k#glP3&nZQc?3U3_Z z{mYT`2)Pmhdg1x8xB{A1;$s|_8&5rdsrvXlSBLHb5y>%bDQo2ne!Dr&Lm6SPFKH)^ zQm!sj_M zrEk!1Q6n(_a3VD9d`i1AhM@n66m>Cs+YX?hrSFwlK3Kwnz=4*gZp&yE^#BzOuPgKN z$neS~M-uh^c(?MJurRtR?iZF`3U?IfviM<;0!!cUEVsOP6m@{m%kDtHbanMGcW-8E zTCD%3QB5PBx?1=D0kJ?%zvQ*)jVaiUkncp>4nB^IYRZe^JN9;s*#Mmh5A5(b^4*_F z5Ac#!r*A@80WF7mxWX!d_q%wHFc(iMrmB-MjYT_c{2dZzm-61B?sLQcI32$Ld-iSQ zh8*V(b&v<&2K>*^@y0pKtgvFx6?-3wXz(`}KG5JDvDSN=B@w?Z^@M^o>lr zUhtbi&7msbPb8QoCC$#`4)HL;6C7ky^lW2)2#H?$}5@m!z`UFOq#3{in2X)cy zSe|J(oGE-(E3x9QqV%-kdU83!fYJwmPH;>B$71lClJ@@%6<5Lk&)%EI$5q{T|L=2` zxwDTn+BeJlj%~bPv)b%iAS4hHNJ5fAmO`5*^p~dj<;jz_X`ePp>64@-Nn2>rBuxk* zge3t2#ux*}2D}^Zwj|5iM;dANnS1X!zduGJOSWta3^D!HpMNy3d(SzaduOih=X}rk zE?gm?SF&(vzNY_>7IOnaa;X9jk7iTcI7R^1uV2r-_ue~VS&azM7hp+dxY3fL{xDpH zuhe$-?AiSGx4%6tE9^}3!^vlOZ|B^x$0sraj@A^#Z)(HQv|#Z;mv~xm=*UrlD_M1A zHF}^VkW(8Ylm`^$Wk)mJ9_mN{<-~g?wg+*#c=s)^GsnNR!)1o!7GJ)VURtSPuIsR? zdw~5t1zhjRqc+|#em6=h1}(e$xfI1N;(u8For)J2V#*o5|H*v@b7QA@|HFx`OSwG_ zH#-vKUUYovK~3P=M$iaax(7MR0?hmCkM0S+6|cNuyjvo8&YCqV7F>4OhC^j#$VixQ zI)moAV=l42ww9Vvt8LXE{4xN&kA8FHSYlw{gd7^6X&U==or}B{o3Ffb!zIJqm-Jlr zU$RfT-Me4W*saR>zk=jKk>C2Pur6688QKHJ4c8N4D<}#2bbj&lH~Ft!3wZ7;_d#q2 z_-Bz``xHC>`DK>hs~`wf9|c|;PFfy@&;n(Jrn(ISyFBq%|CiI#m>1_Xeb4QBdx7vT zy|v~ib2@pi@t*t~yqt=r;Cel%JV#~_S zXz2}RU@!wMeMkFFsZvaB2(o&hJph4I=1VNW%tr$Nwl$D`s}|Vkz7y|xa{f|y#%Pp; z|J~pp59bh}HxNusO9o0i`h3@V1@9t-EWdp=2V2%R}{9*a$ zR4`??!Q@H`-HR%CdA#8laOfvs1MWv)@ocQ$y$l*C9~c(^LyGku z6?mq4I+uRPsTZpyfo40@ve9Z;a9+NgJv1G+2bjrZ#wp_k0l49cPXjP8Q2b{<)FIilFLBcLOJ)k<8NmaOb{)6(Fy8%FM`{Ak zz1{}EwKEJs<+D-Nn9FE^7|-4)u)iP1FK7mcJn!P9N$|1pK}e_dVPTlgq>D zcY^;!NawQ5Yz(pM$N+OuOrBH0E`5NRjUhU^Gw-?=~wn1fshT*EH9x(R{Rkk!6CJLGksz*b${fGw+m-AxhIef9M10yRr zxV;ijO@SuoA*_SV=yBj*VNaEyGOwt*0MZWZS?lXu`ZvjXRVJ`3WvIvOpxY77#AGTr zt_3*Sx#Z3}?}P^#S#kuxf7A(O>(;Hzo;{mAd-hD|3!eziB>#!LKu72NJdwxe>3V@~ zAIt_;RB}|zuG%qH%*yVBJzk#tnTH!bmSD-uqve1m(!SiUMpCGq?EcMsH1OQ(ZJ5Ju z%&pxCCf8QdpN(-U0V>xkY3)v6nmV@a^4#lfT)C_{Fi}hFg#3g973PVrp~O9uAaJ_; zCqu~#vGfv#qvH36^nxsj5c9>E^e%A>gySFzlDtPp zvt2%@6#tw`vGVu7UvbgU4NBW$NRC8cbX)J_b{(Mf$jnQU*|JYMPe8qPu#fk%g3Zb z1E_ua=@ol!x@kj&Wl|vph3xTpw@a4Z)H}Wbz@eXf?Npaqgb)}WgECyoT$g7JgO$Vi zN5x+ItJJF_%RgmDUiyLe%H_A^Ce?pVh1G80VhDBtTfYnQZ(`Ebm$E-~Kfl@4!1;4q zIOqCr!p1uwCZJrA$Ut~COj)JyWq{R!o(}Ld>iKw^%8-)s!W;8-;g6`YrGvmWb^UP` z;N5rM&G*0mec-4ic5Jx8)~#FV=_zg!mn^Se{_>Y63`8Fft*x!&9zWCk6V28z5xi9k zusR}!9ai9H&z{4_t~%bD1Nhlbeh4sTk8mRG4|OCc<_1+>;JAOl`ntM6dv}7R(<|xd zPmd9j(&t>l2V{>Epv<5T^O)N$3D?r;Ma!(IHVkA>_=1`U|LAKVa$@ec!w(biLd z98|@9s9_X82U*nMsF1`>bwHw`U zd(&_kq*3LPN-=oKB!!U^DTnb2PN1aa$42*GtNu^T9jWHhDHWy7@*E9f0 z+}4;aC07DZTz&P1mB0V}3Na{unXqWp3Qt)@`6oM$e2om;;uDGNew2x3y2;tdeie-$2A|$ zPNE;s6qNJn;{u$cYq*>eE+ z^^UT%Mhi{}Exp6D!d{p&oe=?gb00wQ+?49E=HY1TZAQ~Eg#_O&|L`?v+F0(><%d&S zAOUZLbS_);I2^V%_8%++0!EgA*GIhf2w zYHZyf+>AI7Va_i07r}9yt)L=o(@Lm4t<{ohJNu0-;P^; zoIMf$=VLMcD;j0SaA8~TD5r^y=*%b-=o#ggvE%+?OxoyUo!#BXjk^(@-L}gl%^~Ny z7{DgOpj#=LhG(o|v9lsjEmiz`0VnJ)C~8p2C&&&SfCbwH`BjRnaT$TT2QfBnN2|^d zw!V$i`EArA7m=QSFK+N&vVCh<`pMT|F(mpRw;eL`1QDMkWI2A_kowexRD@Tl014Rk zZL4$Pb%oaqC{|E7HW_s(xpYHA!?>SMghwBJ^tg%)Cv!S^FYu4XsWQPFoA`RX1lezQ z4-jB_Lo|Kv41WNM!u89az;L!fN*kdi@hipkt=`xkD2d>B?WZ-Cv3N!hp|lC@gPllx zv{8j0_8uw<(C!0_Io{Hn9an^Gd*aEgC&CZMbH5Y(r~J)E6ZzXDoWFXj(EL;4x8{x>vU1X$4iq@X;m*q2kxJ=ciudf6C= zl%ZGpZ8JDUXudeUIZN`DGRgZ!EWnZoo$3cV6-J9ssp7&(3bK#scP9Bu7;n~fqWwNN znjm|kRpBQx162QeGBe&C5e+jqu2|YJ}5kULN8@mo^6C zgG1x=39{zpp$TPz0kCcNI1!ps?V~L=c3)ukf#drgD?X+1-U=qlKORn(|5O&pI%4T- zD(eDtWXDt^sHzO}OseaYRmo4+0y@k8?(%PIynCc3ATT0i$Cg7XReu`jI}~ zOh+*sqGfrsUgkdY%!*6)T|U31Q~UYiyX2JQTD@>!z24_NM_HL3|L7qBG486Z{=BP^?8ae0|lV$q;xa zo`JLcXO4g1(*Gwg+6y!tnno~r02!#p-?s%gMM2!qw2^|iZlDG$(@82coj~$naUZa0 z0nZ%1D*(qA#0A)O!`k^CQ;bw{9}nYMfFu2H`_JreA6$W9a$FUOQf2waS63{9t|O!S z8Me){p%6z5gL&C3J}K$-1U7DT)5}Z3_V8wH9LBL2-KNSD+^9)~(gYfcnnD4kX=F5w zHGu#(rBd_(YA@gNC`aqut|yF?GRyt0HLz0*ZFthZw{CLg+&&kkNJ-mT!E3Jx=6zU^ zO$*XL0@Hx`A5?^bkb6bYTPNs$0`ve(zr@oaldjdd$w(}nmunJ9N!jJ;xrJIGU)p4K zT`Y2bOlF>~2tSP86wIueSgcPeKJcwte^8u(){L_Q_g45%2Pfly?3F`!bV1%xW4th7 ztQ9rh66JX3OXBm!ff$w{*mN+)pUkOy&+P1UffB(+i$}QveWe*Y^rp&H&y>Mvwe%hM zp-7sOHI{ua-|X~CDJ&?vTKXx2o0qsV=mn1O(X#>wbhQ_#4ni^CbtA+b*5KkDlHCp68$F z_n$tTrF@ck%46f(5+XknSbflt9Ou}d?#d?CJ%JPXp;SXfaBoRGB`7#hhG@y{1XiQ%|iB9jjFHkSv({3ZXqOcw^Bk z?W+FQMY4a5)}O5=viAio-MHKhXXXog&T^*`3F#}eLgxl8)wxR_sx#eyw;ro5Y6tsX z)p~2LkTsbuQJ8gsQ#pC5Q?cs_v#T?p4OwmEX3w@K8PhdW{9dAjhG>-IC&T`qgc|SB zeSy@_yK8*`%v}&lZ1dQsbIMHb%LGBhug>us7?~b%Rto|&ZPg)4=+iBYL zopgMH{EMEwZ0Dv+pPxT^Kd?0B7;EqtxTD)fp;TFZc3pzNp5J7h`Xp^04RA;JOK9== zCsQQyqjIvG*ST?=~iQXzhMJvT6nZ53Su#wg7p@VdkhY zk997Ir5vP$O$TGg^)0V9|J(4N^7~&hPAa+aj*Y@Q`um^df7kiv^6%+q+V2WnBOXXI zs>;w@{yqIn&s_nc)5eUi4sYZ5whyGAIb0m0Yhuq|-Mx2~b#=8D_;}*RosZQ0cK$70 z@7pL8peRI|#?+x9 z_Bamyy>W&tiweh~Iud4gB1v3nh_oai6dI5OnrxeX!$1I2Y@3{>F&CHpfGZ^xKz%;X z{(U(bm7-kNsm#L`O=Iq}&lYO}?p&pMpVBUk$F!D)NJ{I-JB7ivOrDQZm+*<)oQp*C z#qIi$%U7t$(V5DJA2$7?aU|W3v+`bhGIh|uMx^^+76a9D+@QNzB$%wcZ~jJf#`}%z zC7;VQV!@0L*;QX$5U)}*1q?~VKKV2oxK^xPyY^(y&1vJo2Om^F{pnA~9J~19i}}Vk zzVQdq#Z&RGTD2z#=Iryzs&bfR#h5cC!Uv=i^uh1ELT%D0s6Fp07n)pP+5=-@E4|4r=Mc53Baj zm7=<;O8E}|QXO7+3-jz|oPvk^PzyP22xp*GWO@%9nYmXwb^e){iI-HW>S`(sQ+SvH zYnN*qFMUHUmv4f$NG)f8AHVAs;GK8gDHwh{O4(QbP~tZc{u*y_1{UwN`NEAAxp=Ql zdA0ejIHQ!tE&c6Ho#j8vf0qBh8~<=ITgI*}DaK20_7?fO{?PYdLg9rMR-7~Zx%K+% zHw?Kh%Hu%*bDw%@g#z~6a?6IsM;=)*_vV{7Z2$GISH!Qpazg_!*|zChyLN>IZ1}(j zHdN;GT$#@kU$bUKAF%P3TQ-Cqd1QqKM6SPnL*aM78>tAd+Kt}|SElP%s7Sr5mU9)F z8en-#uZrsz>D40WiYg@|Re!^wb-(bsGjGT~S-zOtX@z*JNZK2;xZC48lWt{4ZKJwj zdXsJBL&EV^DlIq{o0sumD-dw$uifR2hBVIS$GG?zh(1ECez@8-Gs) z|AFLO%88;V<2CAdA6~*Zq)Bj)F7~pG^Vm%j^J(WUI=NV=mxLm(pcOEAjY?i%KiAQ~ zIrIVZd65Kv;R>-q_aVpt^pBzDSb4>FU!itD7(T5j5u$xR#GwDDbe7 zm_nlshYB*{03rQNg6c02{1~rLpsJibYNj!nSJ6ZiOB68p*CVfJ|I|3g_7lXSOoMJ0 zj?h9Mo0-am#Hpnp2!l$nj0mq&K?^l>r#o317$h$eBA6@ST8kJIF@8*g`g2kwX~0Vu zlc#|g6bcM@E?_Sy(V|j3Eb7%wAU=t~GHmrE0Uk#X!mHhms@SI-^4zp(gVje`KpvHzE*$Y$_0wPcFHhn5&wF1obTm~E zs4f8-zhO{pAdf~)ybr(rZ<#J}IlWYn5nEN38|$i-+j&HP`1D4oSZ;U;pF({Jggs$t|gu<>JH7YWFp+kQxvE_NQow;nHmivGGQt%-(_VusP>g;XI4f@#L88HOaDraQ0f(WRJ zzQ@#u3XjmAeFKvMeH@{ubDf@{O1x+;7b><_Tck2v6ibPp_w;Hv6IL6D@jDb51UF#w z6d`r5s#F)M+0K$ftM#v_O*-rsC=)Q?rN_KoneV80Q>EOAACOQpU;6R!4{ooz%1u&G zVW3=qN&nvG%|T&Gg5T#)n5-bpKm7LZ^q-}(yd0dWEd0O>g}MM#J>TIu0ow)QIZ(@i zi$qFYiJ#p9$^|>~o}u&;yg%B6Pt5>Ar1L+sVj`#hF4Zc&EG^;5w5sp(l6E&+1iK$I zGb$+j`epR4f6cs_e&yYp*6w)oDdWOfA912oix}Nvzw&`dt5c_TIg7J6i?eu_Ak>e< ztyHTYk;6{|&H zO3auqt=>jG6x`u5(4)JJA9g?6Da?P*Utn+Hd{6YkYx2E6`qzl(>N`>mPv0Lr^2x6xXKRg0h=f8(0bvjY^?w=QSJ(0y@ zyp7i3f+3O)s#)>e2J6U`EAvmk(P_QEQ7ib59Q0(u2Md|{OQ;LYmR5U@HqT zH;Ub|^TnBKzgl`2Z@u;Q(@upq5j_0x&&Rbo-%I?ZShCVzkH;h!3{WT(2!%pun!t67 zJ{N_8O)i%wpUDczsJ*AWIJEQo;JIp_F;NgdV{y#qa>MY(H5bB?~ zkC3>R*%Zr8Bmop05~wu-b+J-zo3i`E!fx$0)ACo|&V^shP7YMqWilxgRj}@HUzeG) z-I=$`ioFjucFfj}L@Src3V9Ho+Ggz!)i|D&=Q+*H0LnyhEjJJN6m-);8Bt~lpL;}+ z+%0kxP=>#lKp@v2ajVW93{X?NKDU6RL#Uy(wrfLyCTWTu ztO{JySZU~n?FfAaTCNY*9@6u{1JW-tivB5D(&$#wA5dZQVuam>T=&zdduCM~j#T}L zTPKcyC#JMyo`N@qK{d*4M4B-SeLsTvY$i#BGO=vedTsCS!@gui!BI6+UB7hjHKtt8 zI_-kiRa0N7Z4YbGUoO0j)7*fOK@?s@cJ*kn+&W@>SZjz(b&Z0dyG`?*u;@{^WvJhM zH`uy(YPPa5szS^HHB%vUX!*4sJMg&CcjaeuU!+bvgM=Nw)_Q7}5UI*Z@78U`k#$== zL+5!5M(doF*^76q@we1z{)Y1?o4nWw#-I0gY<|X#&$`~NsaYfu3kKdh~ak_q!mO3%BN6X1xlbi z>gX6y)Fban`JHe$Ol4(tj$!W(O%o^urfG;!D4@Hpt1QbSgb>0s4N)i*q~o}FJRXtF z=A>;q%C>DKgurp!;R`7Gpp}lrV!hr(k^ig+p2Zo5@y4$_H!uBI0pdVjKm|o{DpPO~ z*j^!fvYvF$p zsDqFd!s*z{;PqFj8R$Sk(DS%R#q)Y<_Jwv81@ugfsP->VhTE-Fb|?d2vw`;b#;!neXTwuDx~z}EJqLLEsra8Glqtv zA^k!n_mPhxeXl)W9BG*9gl2t08N{TIFyO(^VhE2B=v-??x4 zUVA0do45RK^DNui_IQH$0D42vHMNiu8NX%>J+F7{-Dv2ILB|t*wP8rj>1vx76tq#0YA!++b2LsCm!6d0G_71BF(jmv2vO|g@tC5jDynBP8OqAS zhG`nYaU2STf^=Qi&~>4**{t+;v-3m>DImuL{s32cG`?M7_UbXh+1sK|LPkVeGNO^?4&rtPrJfKQn#&(Alv z@7MccQ)}YgI|lNekjj`LWpF_7@|%UB3+hBDm{DHUgsRhBZD_leY)hC4RZz~nM!RnI zQu_vA3URLU-=eOkMXTz3R*Q$ct~Xe(OgASmEbQpHDr^oZO|L{aE0oM{l&&5SYTX0g zLs$G&ZpN}7s2M|tMJ|ytoKTgtbOX_MNER$zbAyf2t8GSzMoH!pmD~PXZ_kAv$u=*& zqtFzdDqlg<7h=ic1U1hxzfM8cA!{egLrmrz9B^z@;T7Td%ao}PK;eOc5qv*7{lFX$ z1x+YJYHl-n@(ry}o|Be4PmxavTcngIU#u*8fHsIsQx^LbEW%42u%0IBx%b?=obRpv zOY4t<(^ZSNLYWIcWd?>%Crg(BE<(ct{2c-l)%s za)G6Y7K|;wH@egiV%|p!mHWB}^3y%a)Aph<*lZLm76CqZ=>e-v2;~OqqFXrO%r?Ax3Zc``aXEV^KX^^t>TpY^>g~2D7_xjh3j&ncm)*0Ps zeMhuR>}7p0+N}JC0!GZ=;acr)R`%KPUUT7%T5TZcmU-)iG2;riZfbdFo$7%fd=-{A zgWLks7v`ebwC2b+$Y;JL3&~2a(K_VhXGEQ_zfzjzAC)>W@%o%uKmsd*j+ z8@}Z`6sT}~DI5EI$DTwQYHx6Zv8a~O7vm9o!F))uI)ky|FWr!v2X_ed<4;F6-}cvu z1x8fqcs1ClU@Ax5c+>n@-z(bR`XVY4)Kvu;wP4Xb`E07q$PHyhVbf!t+d7^y4(F9n zu`OnQ(*`$MRjC3Mxq-4H${5N;bD{m7{M4%XV5Ks6n&3^9s(JryFm)zakwPMRzVz?> zogNEJbEfPQm|9;6(gF2ofC$g6%FSFdPq_oClH55RO-4xGo-PB9n?p zz>5g@krfw{OWAn+9`YSFj&QM8YgEmMk}6l^JsAWhNP+Fi;>RHAOJbVG3%n3QBoYaV z0tkj-2(Q-?gM(5S-l>Y?+F;Z!q=BAcfQDLbY}*|YOP+0#tZH0V5PFA+-O(o zIkddlB`H8ntsBGu1{6rp7Xw4^rwL#Iqz1s7a*cFa~yviS* zA*{#(X-(4vd$xt@LQN8a5sAhhf5%FWR-O3O^r?c^4mY(#hV zZZl?{6VAK7Iq2ljsSq%z2>6xmnXZhkhxKIp8+u#@G<)YxPbyp?y-$BtI}oZ+9^F9v zY;~dOU#<{{HU$le8@v>~N#l^HLVV~ilJj*}i9=7AvFWRvDlQY`x`d-u! zC1QIfH~VWLP-_H2SEvZwHy234pdUyhcpdZ}DJM-+k?{GBHMB#|hlX75q?xLmRt+^% z6`gF-Bv7oMH%|`G%eAQ^!nQ1B_~y92gFp9l)!kmGYQEGhf90>V_R5(m(0xct6{2?i z1q}k#4O|Z71>$vunhrZmySxhQ@=4OltQGkqInSVqDe3kglLiG(9?i2`tNl$Kz3czgH`^8_6qy zt{YfZF=d&@zJ97hQugb0&RT$H@!o;KVK&jgL;V}I zY{XJ}XSJS6cam$|Z-=XvsQ?*>%#l{tMm^czgVA_CbngO{gYY)^)qlZx?}s@TLhvPc zZlfCx<*kEeNRwra%3m?l4cC0F5M1}5x9yT;*=BTLHe`M;ynb6%U~2Y}mqfE=p?l{l zl@gkh*e3=<*SnVL5$?{HtXQ?>80EFnCknvjlHCR9cOjk^#Q(!(?reeSRV*A5d~K5* zosu_OulZDATH9_tUN_SXn`u{blBNt-*uFUxw&k0m2Bn}v6QCvwXcqMEq)=I{d}TuV zj#L|oK(OGCbQwg?lR-AC^xk!5Y;Z<;@%`6B>k`Ey>tSXPDldbkM?uYpN&Dd0UDB%a z89jZwjlt=w?5d~#&cA==a;I$SC3cnaYN!;_8&R#_|IFDLoO_?15mu@tRt}wr8NM2}Hjll@}Ow(9x<`RWI1%DO8u| zG`p-(sQwl`Yv(n>QRy+?)Qze}8K}QdhImt;Y>JbJQK@~8wZQzJHbz8mG!D169VddL zF zA!#tsIYg*D07|2;vmZ~#9-`-8jK`-V9D!+hNyRg;QKMpdm`q>@;c8gvAikg?S(d^u z#OoX25+FrY?4(bbwe7 zEP~c`Xw?Nb5}qUAP58x+6>qjdAqRJS0p?x<>Zbygfu%BG(ny zGt>%51Fpg!Q93DZCxFvfEgu~^sBVs&qvdk06Ll`pq>LyP3QECFL8{=CV+*=XMeU=| z-KA0943j4**5u&zKFA&vES#kH#}i@c2xrc}Zk#gkKny^_xm z;Y(sr&LBa`CxuP{!jAGZSx#gire&sImahsnVMbeIeQ>VL%No!CNnKDeP4VKJP*Z@L z=R$m!U{a+bEx=dd)=a5$YjS%v^8J~agYDK4JEgfsNE$=i^z2}}TYmTd9-L1%J!+N$ z4ayftW}Gko=I5Ue{;8ayoO7o*wJd?2H6j^rl6CV|Kt)WT@`7tWtLSf2wDiH2r(ok2 zc>gB_I1mg%&j3_U$xT17PSC3>&bdN}+^fPJSf?kdXFCz43p5=Us3*!@S6%DG(z99Q zKVNNo<-6X%)NAa9DGhFU&t@$(^rDg5f5fg|P_9un8N|!5qZ_g*MO6Y;epr#%0u@aH zaS(zv;G3pQ(GRu0eAC_*MZ&A6Cogl#JsqHGA-!JZf=9#vy`p~f!+5L(=0C}Udnyqe zjnv|!W1fx$SQ5PPU_AN330Z9 zIF9mqy}HNaQD-f{vv{w-050G#e@!jd{@dq5Ez57qGzf+2N6S=5=|_jE9)Ve-zyP%r zKCuJjLWo=jPCvw-gz}KWUMg7F0m(9j-2#~-ios^sxz^J&%W!=pKEV&R-#0&cSej~b zuuwMXGb)^2BaD`VX8)96en!nlplOHVv(19;bx^SrR(1(4b`_!xj07xM0Gau4(;{$V zib4YVdlZW<5VUlPf*w=E4v0i!z=^Pe9yLuIy|g zTA77}a@90ZTzVWpr=43>6$?ZL7nGgb#*%P{(_b-9T6_1Jy{|rIwAU@lEWPey0vv_$ zgrKt*ZoO6ExPsoFgQ$cG9h%D&iL9W(BgphXzD?0Ppty30#*yC{iD;cNs^&Uj$3X=n z{18`N!%8(q0FSr8PHrhoR0M;Y-#H7gghe;r$kr#u3f@F4!IN2lslzFJ*m$!RzKjoV ze+bQh*wzI8panp*x*R9((zfRabxpNc9uKkp0cxX_>|eK^+2>A2pwLqW_+5Oheq7VW z6*?I!L4Gig$8&t81tA3KbQ&q8^80<7X=<9Lq1m=WZ*QOG^LbH9QC?n->$)61d|1@g z)hUn1Lws;hRaRE;=9|04tXVUal*KqerIgZjO*oE=5Rgixm0@W5c>E=-3a)(DVlmgI zUOeUAO<^roOOqVP=>_-25dqX?x0t-lhu;MQMXs8y8;(Fhm<^x{4SHsQez zG1q&6(mm@*nsq|cbVndH^Y9ge^q4tur;Ha!X2?*vK~ zcSx@L8%cB{s3nT+>qT}bDGG;wL}%sQghiRCQHNEpwpz9F$L!(&*M%l4-=fR&HR~S< zv^huIe7Xn0jC`}-(ct5XfChu*5V%C3B_-w{cqK4|520{t?TNC8FTaexeiA;{Z z*27fPRnXpdgsDqr(A_gY^^^*50c9d1E+{X;QJAKVRb}DzTI2JFLYStZ`Tai4>-A^= zsZ>&%G^vTwx7ExwqrU$&!(**E@tAJ~R?& z1!#b-r=TeWreD#K5=^R+kw`>Z8~?#PToqM;X)E0da$+k%^#Do!rR+R1$xZ?_`wB)p zuNOkAFnPoEh_Jx>w4!sqpkXf5&GJ&+BQRPe4c9riQfFSsgSX%iv9f461!W+0X#0U+ z+U3xf7d-pt-u+Ad)Tz@$LO6yLMm2p#fDlO(K~~MU(v4~x@}l`#>2H6^NdJHAy?2yd zS9$mU+542++uZ3RjYgwhEz8EnGVV1PW2!MG5NZM;lqA4Q5+D$VK=P6Rc|%Mf{76Dx zAapRe_ug&E>TNWm>HYS5Pub7=$F+oHOR|k2WUZgSYiZ3r`|fkTXWzSZp8MVVDSa&_ zbIM!F8y6KJTL*IrEI!9VW`K?q&W;inzd;DwHB;9oIQ11F?&TG-ec)d&?3&gDQ;Ai^sR`Dhm^V^VM<5wSi_a<;d=n{a|qwq&Pp?Saj-E z=s8cAwS-iQB8X^;H%G~yR)ZvHF-RWr+NQe1r@s?wOTg~}{WC>p3U+$X_xhlvJfR!v zpn{sfET|!cTqp}Dabv8C8GKB?OwUSfOUe!UX(Z}aZRKlU2l1VXTd!A~a()En73J@` zgaw6!&}oAm8e&g*j8q$}DGTYP5S$LZFN4Tx;lSN6vP0C~yPeTWAGuRr<1g%9?1gGt znhsG%;Dso_%NJh892FXbG(w*(2Om7HA^deKz<4glYd`lnDl;=&^e2D9E&uQj$K*OD z#|ii=0~K1!DH4Td(ckh;p|d*+WrK)f&l3amEa)cMwt_T*?a5wa~A=I_1( z)w`a`P?=OR2?#n=D5n_>uZuPfuW?jXm?P0>G?eRF+P1Y0f`EFxrgOP0LEr<5y?ghm z?(S~loy&+Dk#e=HaxGbghlf-)mu2daTa_$Y&;0y6$z-a@sX62|BO-!`QODvx^za}1 z^mRwI|C_UqxBE+u+t&5z%NhIhbtmrkv?Em4<=vcn-KfB`)zBg1H^|sg*ZB5l|BI{t z;!VeGTSOOwjGeIGwbkbFirXG%7fprpOhfqF9{(ZZH~hy(kN@A2KjH1=*BpNROnl;+ z_wm=Cy!Kh`$HG-tzgdoF1P>X%A!+je$ESY6+y3e`{Ku!B&3Pm$AAb#r&!4!@iTG_w z3KC*=VDWGZ1^)nN5& z!;br}v&LWF5q^deALA@w2mZs?IU^^p3%c(}M+`$!w|%8AxJ1LlLaiH;`=MsLsF;VE zuHYBIT@B_*&`ZD$d|H;l)G$PDfvGICXMqf?{g5y*VU??oXuoY~7@rwY^%hV5Q_hrk zGed{^v6|ai&=<{!WyHE3Tr`K>+(Z>{zsB<~vmy_}ND!`MM zT+Bq=fQ}ffMl-f+lD<>>(V?PVudrwP0FkJJ9~x@f zN7XAtqlz#BrJ23NyH7%Vg^GY`I&fkFh$UiVGMQuY=kqN(9*-!?vZPWeTj_NA@Sfku z$e3ETY`JLFc8K2@l@s>+An=db zCe#nKwchpKE1r3oXW<)P{VC8iLU4RFc<3{H z+tZ)jGdYjMq0jWi@Y}dR9cY2-HX1ohL`8uT=>4$iD#PwGzd={qcM+?TRNsU6(LS8n zhe@7OfGOZmU8z}tx?;np1)dUkR5AaMkXxmUdxluF0%d_=mQmofzxa1`#U&p_qJfMr zUE}vO0u`w1FgYV}YoEflp|@3-`@}y|*WL6M-i})L3Y^*d2;6?cx4sQ$=tdIf&NAY? zj?yQRAd!eAAF>c(=jWSEovb0xJZw}FTSmDm8wKs3K{EGunv z=cX{WWw$flmi9ZlmMLoA6lUM{Ia03~rylkb+i@w?`G1Drwee?8C;zd#DYw24b^4bn zedTMkwJ2&uMSUEk9jquY3UZ%j$t!{u6}2@>$T3YxD(d0Fq%=qZ!|ycO z?*H4^{?vjn=?Fx$B4{y`&prp$-9f}D62CA>m|Tv(ZvZFtFv{9bucLC+NBjmk~?5 z?4GVrv@~JLC6}=2k0)8N@Kx-(?&pV%;NM@_^Z-pBv8wXxP=JkcnRqUD`0uLon@gk5 zrT$LDAB{$73^lOva3`Y#bswuNxS}Xc*63<&g>s132-v-K9{>~M|xv1G5M7;x>~Igi$%0ChA<2<#->s!)7si9LEz*2 z0Xui@RshpuqfP!;lwz@nBwLA<%b+v3v-7yFtD@1Uh-g6Yyk`4_pueBkye`i{|d&Jp~6w>oaWLv8Pi z!{>Q!{@?ca!!H~?hS}erq2=ke{jd6^^U~QDtUvsE&(7)NUhi=KbI*ip;IBV;;|_0^2dkSP-GLnH4RPhsHd#^e-nhbUV$B1^DLH z6tCOhk+d>bVG{59m=hoQOyHTo}H`i&VTyd+Qj!#cS8qaJMI=0zCDW&%>tX>+0MbxrGZ4tH7n3Ho?p$9=+(}$36c<{I2T|ZI2)WX&MGp z!p81&@oG@j4M5{2Tm}b6P)UdR*;%U60KlvH#Nu)0>m@=LGWiS*C&bu3PRvEcgs>`z zt8rVL!*tTtngvxOo;_)~l2H*FwZCgbm5g8mDR8GWYer^`O(Ok+jK|m}P zr(CL_ltng|!H5usp=hlSC&;#KONF5^$Krn>IOqKJM;&*4`f|>pnY;g)ONh_J@4e&7 z6B>YDg?|xUaQ=FDdO7sJoBzLi{6`wUXCB{u+m;ia`>yw1aY6%lB>K*8khw(G{n+C8)!Gw^B1&$=qjKIu3=x%}P!@z|h5JLGXs5ZF3zMIr;4|;)< zE{D`#58(sAb*L%&YAekL95!;7pCO?Cb7R?6`WSNT>8{QGARlm zHW=zciw!WM&F?m7#y50tY5vFIwP zw#11w9&$pJ)|O*Cwt2!p!JsPAum*g4L9ZW64g|&G2AvvuG&0}5#b;S3_`{GIxgYX3 zBc&%Gc_w$=zlwzKA#eX{)ZV*c+pR=X-FThN`irx>Vbwc8)r7PM)`-NOx;Zkg4AS?Z zQop?dEt3j0CpW5q)sy?JvZVoq=s?`;DxDm^4Y*VAc0+3SJ+R^xVCq1Urv_J$h((~d z8P?Z<4%}InmeVvW4himu`VL4fg$*Boaxu&fKWNR*m8e=(iTM*cNT)-WXKV!>TY(*6 zkjyyRkKh;f(I^dLyjfzFPc9KB@3hht%TTU+?4;=&1JB-*`&AX-%9$^)_~kEWWXl$^ zJv}7yd8YR6rETd_Dl;?8kBrc>em&gsd3NSMa(s>x@HeI!#OpTovX84>oQk46Tf?df zP6TS>Wpqu*$I=vQ)99L_(P$6=sxBnr395dHq!mM3G3t#v=~xWQ*U%8K1V8N^m*4k2 zT-T=22yh$+V+@r_l`u2_QYaJ%Lqj^1WOizb&=?x^1_}tnkVHI5u~Z-$afw8tG#V8Z zi^asU^x?`8wOai}J2c#N`xchp-TZ#LK7IM&_UC%|1I*0NzF2zhx_t|M=Qkg^i|9Js z{#?fI*UA6e9RHC?w6%|GzcGqP2h&$>;iOl9S|w;3CVwPQYgQkK zZ4kQ_>Ofo|3ss{6e}8=bTVHc;Di>%o4Fm@Qpfav~i9KDQwN088D)t93H_A_k8hriw z2Pyh7F5CDN^HzaLuL9@ahgaLg;EllP(7F-C1I`8~0zrY$Y*vKZ5Qaf!rRj-!uR+=r z9Tx}5#KJHpE#h|dhnd06v8fdwHZUb92kM=#25*R48a3Xr^{T)rmjvs$eykeJ~nK+q!bo&9R-4<>DyIM_B>4-NN8RMJ=t3 zE59`AOSnKXlY5<-4%~3--3o>Te;C641&CvVHNf=XPdLx);kNP$KJdT4!Z-f@$FNt> zQ{$M7pgd?<4Z(Kc$BNB2DYou)$90#oR-fT_*==a{fp?ud^_{5|=tz3AK^yW+B^Lsb+6`89~Oi#6~0JSYFbXTX9@odf*q4d39uo|r~j7ofW5;SNDI zYvLXxHUc&j2f?ly9r49pvM6lJEf15^brV?2>?n<+Cue#=n({{bsDDSosZ9`575Wnm zPHzjjush_EZq0dZE+?fTv{`~vGe@2C%<@i>Wm zp32M&@m!9|%nXTq9ycDRGBZQ_vSqBC`NA=;b0U7*ws8ZOMrVk`ZJY%W{3JMCQL5U* z&c#SB%wVD+lci~*ZOLXzY1d$9U3}LNL=5T940YY0hKJMYK+Yn}DC)LPeX)nDTs-gD zM$ooxl}@L%Wm)1lE{Q|}%hDv134*{U5l@hB$zy55-0U35ObT0TYz?t^3{WU7wB)h` zp-&KaDi)22>$)_(Kn+T1lSm}gvG`vs?z;WCAHD!T{{C+!(fR-1`Ja#R1Ni>G-}!>C zedx!=iST@k-?8}ZlP(Vb7gc6&|2y}uH=G?TinfK;SV@->Hg{j6HvDHPs?TFFSGRO7^pRl7gkcS_GD>l)5Uv5@t8iAnnef0jP?qrc)IvsY z%5cWu00;V#To8BgWjS-P2U#>Jw67Fu4+`7_L0Tw!y5U?BYGss~-li%o7fW3Bi&9FB zsXa1~KHqF&yJ8kqUA)e3@rz=LLyB&M_!$sH79c%u;B&i%m<$$RDdDmu+xWo~8+ciC zE5!Q==K9%s*Dg+;7kV}cp)GKx;`GxL2S)}HD7rswLr4iqw zqhT$!k9_|neosfN()Q4|ykRE(yOr=1fQ)r!m z*fIzX02{&H2dR}38Ji24bXD1!Qfhe>Ju?^D9gSv8;~^YNfgRch%>Q2Vm+rbZE}_%z zpk5P9JqA_Kr36u(VRn9&TX*hnPV|p`;#vED@WK_~A>+62zWeA}z4|DlcccQ0=WV#Ps~g)j)Q1F%Ll^{xhmLg`riQY@AvnT%V_T7Q9v zG*fv-A`uG30@~7efv{jfHv@x%w6wHPt=6d5YqaF^#1nBm&tpMvFX=>5^wY{O41=dt zWT1-0a#$#o^l`t0UjffY`5f|u{M26_U!DJ|7-WnC&(Y`FDiHt8@c*{Q|9p(!Ew?l) zkX-ZmKYGE}Kh`qnk$67F?|A$+i{)&F)wP#=(Yxv=A5DDk)vqb9s-CI6`XH!=P`nTF z=QkkvBuiU>A;SUPh7}l==1Rzg7oui9OKkHVN+Sx#6()8oGI^S{%m#&ITwK);kABY` za7-91{6e^L^+Ji##)HfeRibn>A`cvxaaLuW(3!l$p3j^d7ux(zXK z@8`a4i`mpQ01F)Y+t(vIUWM>lWE|8z!ozoJ*2IC6AWSI6@6@G*XG$iz&)C6;@&;Q~ zad9XyqBv?mZlla5E)?{=N=tz0StQBA(?TLBf*afc6W4P4TNJE*D}VguYdJWb=pckhHb*BNPBVPcoOv9@I9ZZ*FvX{ie?3qmz3 z7OGk?ORULPe9HezvrBGF7nFP9UwQpEzhA*}==cLr_nd-k`a5p?z(ORvm8<`AEtf6b z%4^Ql1=0pemF~ik8(TZUsukvw_tZlgh|C6@BYffiIf0 zItcU%O4!kUMz}JyRz)k*R;{j0LgktYSg8PY(}#KRy-`$GfMu7e$F^@L z)78b^d+s6A)m#Sis#Q|$?T7on5dLDZM6@+RWyZp4ZLWskDoPU-RNlghyI9zmVZ~%+ zjz#PH7(FmfDjlK4ZY2_n&}cMBWizC^)8Hr!5Qs;^_rZd2RgGLOLZwnYCjY{P3&n99 zEK5T(Kem)gB^8ZEh(sc2ZK1VhzA(>{rTvT!j}wW-acqldG)mp8lgnnw=W=prpDzdk zd_O=b5K%@%nPc%E#xrua-lcAa$5tG-ZS3;v;IZfKcL-zGjRMCH3cvOlw-&$WW^On^ z+s7H>+UL>l5O!U#k;mWtQFYvC!{74w?>YLv5ZnL#PF6qNw*8i8m(lv<$N%ZDad|#? zu2{fBpTGToene0O`Zi`UuvSqnD!JT5 zLJRo0BGM+v&n?s&S3`6steT@;7kPBNgHtcL43((C*bPXJP2)jB%7THdic{Y#_*=k> z!ogkcY%od~Mns+b(V*X|VKJ$|ku_=*9dt-+Y>Tx%m{9fDMw6<0gmwm)RMhSh?9KsX z=KHAag7hl_D`aXM#VOW z-Pw(n46ceQm&axM_<&XG+z`g}QdDD~3il1^Lc}pKH00h5R^@|GF|Z>8o%is>Sc>;8 ze+-;i=>12)qMq-g_x!(wKY{Qr82<{`1vvAvkjIBj=H&O*yW(|mt+U96H<(i42BO(A zUzdfdbFiXbec%Vt)oI1((w8+_6EnCfKv4u~1u13FV_$~$&!NgA=&-;#dk8gs84ORr zxtCLOU(5W!KS5qdB_NjuKM4z5XcSd6`Kr)02atT+xP7aL&Q6fe^?~?;S_v~db#G8m z6}uCQ7O^TjK^7~t5oGEC=I^P`s6oEcgXt?L)PF6vLYLI-y2jZmX{O_nJa7PHw`8-C?uy$jNy8J-DL{$%nrE9nN2K`g2b9V|iu1 z5Cyn$<_oy-I9;n(Q=XnaYyfM80-3HZ+Lku0cVTRdSSEA${jSxk@v7Bhs=(v%yRJi} zS_K*~5yi?FR0Fcn7?Xo@gxV+HoniIzC6s5YM2QjYvY4AKkZsLUE|hU>&BC58q-LNh zgoIRU6{2<&>8VnyPEyp}XnkxanECmF*tR9M?I_D?X1tC@V=_HGt!lM8xm=EAOP5Hc zQc=-pjD-ujn42q*&1I!rDyv8|N_Tg+1VMl_onWX`szjqvf*>&S^RuR0uFA3a?=0V? z&b@B*S%Ki6x{f1u*(%}{@?ca?_d07 zHT2mJN$+1gL(K-{bH8sM^gDf$*RIBS>@|{r5%U*n#jhzSpp$beuYPNJNqIo|-O(^rsVO2c zMe1sc>OdVe1mS5d&>!Qp@+m|fxD6@HqFe(Vs_8IO1ID3sH8=*$tPm~&c~VTc3pu#m znzLh~fmnTT2oj6%NGB#QUzT4|^9oh4WYZ&R!~ML4if)0H_F6Klh`X>?_le|=9k zcBPD0%i~$#HC8gw`fpUMH-IBd+y-_*urCQ2nuC*0uXiQ$;`&pVNvu+(D2?b|OL1Cw zR6yGC6kz!=;FRkQFM~o;4Ia-3e*a^ic)AM2i&KD)@^Q|%=S!5Qrw@B~o_zf^hmGH% zB~WM@!6#n%NucR1>O`A0U!SiRYNb*o=0+J?KTBqJ2PWE#Zxp~OMR5}j6@1*Ri}qcN z1#{&xvCb5sqsV6SSP@OB)F7UTF*!Cvw9`SfqP(t1W$`@aT$%paBth`(9|o05m1WD) z%JcltbzQru_CN&U@i?yQ5(EK}ryX3h)|4w%GMS86mPLD8n^=xTquwAMk25(rMJyH* z+qRT3CiJ|(fHvuLnu&>HJBu7L0>}M=UL>9?71$vo_?zN?u9RNC?eQNng3tGQzwT6M zhm7En$G`bhXbLE+W<~fb00ibCwGUVaEk4Y!ha7v*K2V0KFM^eY6Y#~&#a;XP#tyeb7lTin=0wW&2K3%oTZe3eaucPMB*`+30kLz%L zD^_BSpzjRXeEW9RriEm57MTY#@*`xqLh6FQ14=&>3hNb1y8#z$3v^YW2JIPw0|~4u z+RI&vlj)PBnl;d^G4mv<_e!z;zuDgUde-VLRJ0*>V@CTV?cMsoPu_|xDmQ!G4RU=YUcS9C-K`(i`u!&bu|gIPyca*K_{2!R?Czhi@>snA?& zOG9N;H3lEH=CZ3zY_{Okx)%8fR=}pTu;X)oP9!f_R|)kWDAWpYRte-lUv~%9>tQ6+ zT=?e#TOpcLa8Q`muy(1cr=k+|wh@-oy4urfGJdO6ttG})Hb-S?J^luK!>PP#RLsu_}ThuQH0afv`V1Pgq}V3dUtC=};t?TrxzhDysU zeprIxDv1%H=oT^N+0Qu7^BEo<3)|cCcBxb{u~_u!Qhq`t;!3$(Rq1q+AP8|?N9N|{ zl)!_#Llrbb}FbUb70CYzxLYNDng(JEf0Yz z0lxq)hPFQeT)-Dp9JoPYDgt|8d;sjLLD!+j#?WUH)^e080U?xbP<1>B_Li;E$(M&8 zpp_q3-4a{ode*M{or(VGpmnatYDC;17tS_QhAw-#kaiTx01tqj73de(4%U4Td4(d? z4vav!Sg_)XJ$Jy86-puzu~(d9@@T{CfUZd!r~u4kf?lTXN&Y_n$KJqqhygipHi$Jl ztUPxa5myUb4f&r#x*ueRh9My?LOep#3-622(+2l%21zM~9v4pkU4v!8nuRKOWI55U z{va6?m9aO7MNUwIC_RkLX^=l(|Lx=NvHpCq<&VnS^%4#W)_}q~s3_ZpWLB~5|0*td zm5?|Scod{ZHMtLfS_H1Z=>F#Ym#3lq454KXS~e);Bois$sy#bqT>EsQvAD8jk;Dqy zXk_}RijCd)5w6iPdtjF}vu3e$^(4Jqs#nn%hR7>~@&QFGCGcHv=Rk5mRG|jJniJYz zsW|^sgZg`@UIB@!;^t8}ccV4uEC^H6w_8=aSFD++)kyUFG4DxCET?R$0{LG~#uLTi z9ZLls!jWq5MCuP-_#WV{jmTOvTtAbzWQP`1XZXNAZ&+t0F_S2`7nO~Hvfy}oOc?^33%#8MP~-K z3@O@A6_&IMItBZFY|pkw!erw~6|`S$l2oAHtHPOS?Vr3n>|%@h0T+XwH!A-XRuz6E zg?*3PV;!wwW^%w8Re|5#z6{zs6=6(KK46$EDyHsLWcCW3R|x4Yg{%@p6b%Cpd`WZ0 zmxWZ1E?GrMQc7Y+<47A%6v8Sti{WjA!iAsQFv&QXM|kUs-NDb&wlG*HEvQLD1#R~oPnappSath!(eaav9e-F^^8;4Rl+ejn8w3S~Urxs7 z%EVIrI`E#R$J;Xv;rBoGiKqKK+w=2C{Hk$)JM$l5 z+0W=&y&8aIYb%e++ncYCaUaLyH^xvJDIqdVO+l*GMi_V)r7(7YJsTy`3WdG%Wb)s2+#g+X=P9}fME!>DcLe)jnfY&y*2FW{3AO_ zDJ*TjMU~xUM613wBm2}`c_22KYYU_KlT32e+AzVm#_qKyYf9pSdz|rHHjGCXge~D;m?o|X!M2b&nPj`!0XOh|SZR;oNmj@la zZ$%0bQ;%83l|jWF{}tJ{e3{>tTu&ss486Wf)m!^aTqTvN?-4IuC)$36pmr*x2UrfQ z0(-akI)~HwxPV9U(A)ZP7^7@M9KUk4qyJ zA_^MG5YY~)Lh88u$z&3x6iO)*hK6V~su~T?C}km{BpP+Jh#S^wHOqBfJkQ5<9kkX& zqfr5rZ6lr+NF)*^l}f2dq?zr&^L*1RL@!KDO&s?gUcyWG?}YvG3xYD~;4_TyosnPY z`P4!aE$z{D5u~CBa_uG-YZG^DK$jaM+KY4qIs44e36n@Tk5LV!ltD7Rp|fszkmo+- zOoY1d@^?0RTNapv$^*tE$N~2P>uCm9&j1C1Nd;X3FBifrlF5Y8)c3Vjcv2TLZwaH@ z@3y9TmPw{{G>n%#tJc2w@#lS*X2=i#L0tu1i)Vvp^D77b=z%yE_`D><+B1L?b!3UsZ2;JbGZo zMSk9nqNGDn_&9|J=bX9zVc*wT72oh_UzmmNmOy3FezNlnD{g62$3;O}s!-aj8l{r* zhPGP8;i6MK`Qo5MX0-S-rjhG1iO?dL-J_>Q#&rEd;e*F*jSp*i)(tJF)2QK6!C;Og?ZKRyCm>?#n@GJ z`A*%a*HzH9Hb^br5Vp?Om2WRcNm(^>$R1%UUPwK@>er7xK9TA>62FdIpf~V}qZ{w1KZCiQkvhiLrI}pW^D4IP@klKW-L^((cg0ME^U#q6Vlxb0nXou!l`~7jWa~Of zCe}zK(IT#!7pr}NiIafRr1JLMV$W`To8O57HUeWbQ;^*WsspGp&1!B7ioDVLg&o$i zI&58^j2+w)RCj)ti9{Z&^E^KupTyq%WoM+e#ANj%6CJqSnOU&bWKaD_xLiDgXpm6_ zaj@4Q(y7Gj#8`7m6}RX{y{1)R!UQJ3Sgkr~KPB2) zB6n;2^GY1Zx^?r$iUV z@eT|`XV;!l@7S4-G){X}JOsnFOC-qwU^V;8BdRmA#>B^rQ;e4!3A!AsI9#ib z{4;Z{%S}?Jz{+A}XT@E7iQgI22*}`;#;Jz8l;}C7-3?-u4=AtpgsSehRW&?SIf;xo zZJSJ7Zv|(u*llaD)s(;xlx9_flYcoG(+kpUV+byy)Brf4b(n^9k{4=K~32-VuDE+s@*lLAi?~C zX^P!7P&Qty&RJ7$II8~Qv-s0#(OM~Ej5v;?0Q0mLrx;_fEK7`mSS)I3twUo%ZCSQ* zUFUGnyi!_>!K6}2RW4UU+jbDsimcXy+n{J@`pysH4Rs`cDt@kqEXm7h(;g?P+wRMQpXD=?J2h z2`F%DVlB*vF`fWU0)JG6<)BER6x>S`*~_kZ2GAfGaxdugcj%|>Mtb8&U1 z74wG0bLwtz*XOLEmtQVDy;pgQMxV0gI&;Pu-E5V67E3y4RmuvLvPZMx+QwnI~x7NTXk{ak|18H=^z#rH;r;vUlDfB-l0dlM+oB5HNR$+AB%PePU(T5pbLR>(kVfE zq)qIZh^mDKFH+KyUK8p_ zQY|_^gS#SDt?gr={xBW40G5^2kS? zJnnh_Q}|CBJ|6%bC`1dQU?{j7qdk-#5GX@pyam%z!6_)LIh)X_5jq}$<buCv_Ma6OAh6 z`=}rYO&Esa`vI1vDHKX!sZ=paDLl_Vq#|W{dNTTAlVQJvm+@aOEsn3I)N$?7L@IEo$lvCtxRRVRj+Ig%VX1) z-?2iRc$;zhE@mN*z>fdRwiz2*a#&@QnJ?LXrXH%+EKb8WDjpZvIb>ItW`bDB(rQSd zuJ}7yiT(7r7OVRt!AaEzMY}dps}(IB%IIOV+6lA^GOsDztIE3$sOfN&;+l7a{h2c) z$qfo#CJ=|lEZ*?_YC3j`ig#ZiStbRqq62HISlU)fxdO`tics1|IW@^2axUu#`KWX& z#=pkIJ-4ap)oEg}cG1vMhYULEf-L+F4 zTy>@NnsvfcU$Y0jN2HV};7f;zrV(4e%4+F8&*Z1Rre@6r;&!yEq*`X61dQ@wlKh3| zk##$8roO4>i~E@Gdavr%JHhLdfS6J|E`}s_?QvC^+AmYiLfqUU5|N}tXGW>YHdU=H zKy|%^HtROTt|=M2gUMLJ;H=WEZSR(hv?^+kiJv?T7X{oQ+_mw}!%xF2ue|!dWohht z-~0A4pTPf<_-(tnHhjodh=65ThzQYWgj6a?Jl@PBXIUC!48>xZSS(7ZRH0aGI=dVy zK6~V<;|cf=um9S%t)2(JdIrD5Vo_BpRpc1_hi~9}-~0B7H)>zPOZabsk~?@8!+a4} zrI-L}AVZ)Q(@X$RZyG;@dk_5F*|2CjxTrQA`)>Sqs{c5)S^atYC6Wz%{74I5Vn2V3 zR*{>pb@smOY(JTMvvkToDa?6@wN`#Woqw+1$1Tx~s)wj-r-eL&+Gj-mNFLxkwSrAD z&d%wK-W2hTd;G+7uF@p4l&hHRZ6`{e;G~pw%hI3 zFQt)*bSR4nnPo4PdR%o!yD<#N!>r>>LcjwOAg8F`SDVFQHJ5XMwUp=}i$ewEwqIsL z`G4%ad3YSvnYVqP>b+b0Vp)=Rd68L6Z0ukH!Gf>_5^x}kO};FX_ziqynRp;vOhSfX z0&g-*h{+5?LgEP_3nmE(5Hf@%1eql$fLUx~%NWb6WNTMTt=_B7`$u)Px?A0?ty_{& z{jRI7>RP&fr?+$WbLu(gXio7L1$m+D6}_^a5~WfKeh<74y)RuSPjWVUd=c@r&J&7n zcDZJCmWu+>DUlTtnnkCmme1^c%6h@_y69|n0INV&Sz)>Q|BI0L8YlP>ZqAi1`AK1i z<1Z_|7k*_s^ojdIYq0ag-yU=>KWBDmHUU6Du!D&G9L>`HpB$-P&rMh;{O!}8o9$jT zx<-UW?Z0y~-7@mveT8>l^9`ScLAj%=U-@vwa;*TD{2eXWWkghnLC&F>5NFB1vr~EF z-MyA;iqF*C#ig3dwgLr+iofu7_*7QdByVeN%2G?Y_UFAnQr@@Z9IZCwlYY-4aUZp; zqDFp59ubH)1hf&LmY+ZLiszyY|K|G}1M;)HqaZ&lU*IT}qL2FRrO%n+fGJa^rbL#1 z{R$U@c#8lZM550DS4N1rJVAt|ggG2|O!%JpgK(_*oVrg~`Qp)8YH8^#l)_qRQNn!E zI+tHyr-mNRqZMo2LN(x8z%BU2k41_6o1$<(gS<MIyYH;!sJfa3GXAqDUEaLlg zvtP`nrlr%eX3m+~Mn|#yxOVq1GnE}I5L@VypQ2No;52c9I!l=t&>HwFVS0E0 z3%`A4i}Q@SxzYcjpIWgJho~XK32cA?x$YyRLs}rh;C{*16Tp#h(svjVTn8gl?8wQ zq5ZVEXKPgcaV?Kf!Tb|%OLw6gN9Ea46H-*#<|)6Rn}F!$ zA{i6~ctO|>5s}_%fl2`6#_E zYz`+odv@`5WHDzITX;d9!_D4bAPd3Q{ut4&F6;#sqY^M1gzXe44iK+1OMcZ&h8)Go??UI5i62eT)vRfK$%=3I~tu z!FBivLRJ+iG%7U7JgW-}Aw(oX2N5iqgh@DO_=0UCoxP;HBF7ujgD zwPA_0;juXhS!<}AdphkM$0&BF^b&VA3mISPt$*9 z`wL+~`sWkn9opq4279{+TU2V40ghXP^ea#qDkX#+r9ed;JVbQX9BiHsu&ltjWV z{{bK&HzsL2-S@yy;&!I*hV=g$g8z%n?xVSFKRW{j*epKQ7Zu?PsCcEs>+HlCaU*;J zf3c0yxgW&Fe7cVOg`LNPeBx`@qDDc}idbG>%7HguJ$^q?Mb^i$#TK%j%URyT$A3vkR{PuYh)f#!i1OaPiPHKm#s08C6< zPpo{6O3SF&S{SMXjqP;nv3jQS??wk|59y%+<)|!JkouXUWbd*`Ug3WC_4uS*fHp%)#Aj0AS?u$)dBWJL;?rVf`^D$ zo%jbLlofjDJkrnq{pL5Y_&O@SmY(G3^5?vr0l4%eJoO z+j4u`ce4I#URU$&q`s4*Ie(;c44wC>Ps!(h^P8;ap7*IwCHar${E^NvWooiDEdZFP z)P#pb_$(s1lB*;4&7X#Ux@c1{6m_I-r0#Irp1Qi~EP~92dgY9kK z5eDGWK`R~1G662zbu#Js-~2`xfJ+ChbTG>VxNO&XuPVQJ%%*awX$L?<=_)HD0yLts z#Pc#%ZWB-{ys~YlYlcmCd^}pW`u)_^%^BBofA*V+Pwg|={(U4z&~+rkE_FNgJCOQ( zV>{y?kw6fSJxHx$<-lN&s!BmikEGw*kH64EP>WI+@MCu_!B)7K0e2_vsErEy8VV|k zaYQ2g?2awelt>0jit%V3B0&Y`U_a;B?X0a9_&W{~@wu?rz|x`Ug{sf|9vHw%1zRT2 z8PFWfxucN*tW>aN0-XWP(VROTZQjr@Y_y;)4>ishsE$Pf5vOo9v!}K&Ia0np|6u^! zxN&3NhNarJEq%w|#L+qoB{pxBr`eZ!UbkU%0T7y1F?WIB;y(^HVjQ{j+_}>9$k91KG|^>#1GJ7hR9>5k=*% zY8yxWK{`d4or;zAKm@ChbSr|g*^3dbTI4_g#cH7=*vENGX7Q!ZT}`3rq_tC{bnY5f zUv?F%s~7O^cYlp`8DQ|p!xXqXvA%f_P@pJ^R5roKD$>3;i5d&gQXx2A_$6vAKud*S zF5qWWd>{J%Zpe6SGC(-h0G_G-@y~dD^8U5;aCQzp|0Doz+_+KJ)YJg*)i2*Pstf${ zx4zDI?-<>9#v3Uu>3*ZJPK`=ZkEcc;Bl#!lNLxGB!i#X1 zW)2zrz0DkH`xSL{bNI@>*8q6s?YDWtQ#-BqHI2&Zd9Y#)mbwL$ zILgrieJD0NF9%L=ioJk&+FoR25Jl9WI$i_P&l_k;*X9ikG8KIF^~-5)-U|#tar1@- znXk$?-xaXwpWQp1Z&S0r7{?~^`45W#UwiGfQ9s#$<>&t4lOvw{!2Q1kh9b;F5SA|7 z1U-}6a-Qg!&OcKWkuBQD7L}w%lOy?O($W7N4z#(KcP4G$vuw5gVA*PT>WQ@1$*2E{ z73aj)PvqF&(B{pT58Jn8%m0r0`H7y-9KVZ!FhJ)#eQia>3aj z1CpUa0r{N>){w3_k{41FU;69MMae>4$bE_Cg+KZ!s7!4Ez=?(5hBWoVHiG{+znii0Ic z?23g>Rnliw!0tp54s41Ip+q1Y0xgV1u@eeMXntouR%ZbOpz)QzAc_R#GD3yBoKRTs zy5$N2z5mPE3*Jvn?K*-*;Ixl?Pc>DE_xKXwHWCPPrNn!DiEtYUgkx1>V}rc%I(Y2I zj{qNw@2{&{6bD}-^bWoJ2v=S=QP<4MX9aBf50~-zKk#E9;o9$8JLH?_`M?Rr{rQgz zfQgVB3;Y1O`$mo+GHKGHx?69B+isiK^I>AwNTc!(ypZrX^LhD-07vVe?+7s0`fObh z#YaEDo82!HboXJ8*y*uJ0ugX11$f*w6jrar=j$Nc-%fRjmDU~&cZrqd3s>-Vb0{&;1QTJF2*$+Yspn<7&NzWMucnIVo;OEz9^^g(9IO9iMS!`|b4UL|Yw#!m zYlK5um`=^lVZUUMBIYjs0RE^8JcSfH{rD^)+WUI2*h^Wo=rj%=>A+(R6ZIbD*q*Ft%UOT=7n!e=5o#`@&{amDw~XyaTTx1Vd}3Bj)-q)SSSke50WtAdru2g{ z;s5|307*naRO@6@Hh`rF950D*f+nUclG?)XQ`Cfb%0>f`2OJ{I7VEJdOPe9xmm? zn|+KY5X}hyM+3iSpKS!-Uv9lI7nb=~BCHZ0X98I|Smsc7Tsv~aa3Gf1INm;c)7jt9 zx4v~1et(FgN4t{}VU8Zvd;X2*K45F;Cs>J6sz{nc4%)00Xi7J(f*LHYYKm+{V1t2n z39^{WK5`kYhYu3=`zZ`}aAe`KlEe}mIY-p}6Nw^>quIlo%dkK&a4 z;g#R6Y(v?ARu*ybk8f z*~+nFn>coC6QDP&ui(0C|7lbO{kPk`ABWp$l&%{@ z@4>CW#3w^dy)T$;JJB<%e7iA-Y&R3miJ5Nk2As3w@qT5QZow^-A%m|(F~)F@QE+n->v&a&%JA(lx9A?G8@Yk z_K3c4hJEqD@a$m=$74B*YCB(PJFke$3x05V_<(0v^EPh0W@<$*TyVAblNtEs(pplv z`p00YS)Pl+>^IjrxmP6T%AU$(d%sVvJ6e2XRnFpsyF#sW@|6a1Mk4wkDcHxPUjD8 zpB~Dk_DoyS_x3vU>m)#j`IcM)Z~rZ=w^XVRejCOu_rpaJVMMNf>uX&9?(7MxIXE5I z$mw~c9vca8AdjI|2C_L?ZtJj;Q50sQ+t8+aq^$B8!fR`}tdXCzJ_9@os>Gu`#YKs4cN?~n&l^niXM(AtMb})X<`>j6n zkVayw`GCy54+rHOpYbq^YCc|WTxgd}iCcjaJVCJjI~ao0^Ap5@T4buHD3fkj&Hi|} zB18jz6$gfCKs(f;H-GnOmo7)-CtP;Lp8F0IG}(lf!zu_Z%&dQAzA0mFDqV+DeJECM z+fR}SUo*p*>5tus=Fh*>WtBg#r8)QJ5~KtdOb(u!iEkgJs*sRIu1&K>Hxj(4D(sVr z|NCGt$7P{aGgsFBU^KB3D#6SAlweejbUc>-Qg3f-+pkba$SZsE06VhUP{mF6?VhI3HPBFnc#GC?lVe8Cg1HKY%vd3(9m4g58xqX!RfC z>tR~Xf;``PlsO`G1+q6@P&NDzG)vlEig;$Jxcv;L@l6QwFZ=X#=E%9N;ErR}TynEW z|LQ|p`egBjXiUvw5-^&g-s|O;OSfoapfdXl3%W~cN>2mv{B9>Mlk=cGVp870OA_Z= zV1@&*^$}DT=qzpPn`@0Rn80O5~73(DU;KLC_Kna{S-D1bkEV zlgCBEMrDD5IMClg%E<2U7cpK$=_v9in#JE_^%HgX42`UPJ&hG`xxRkc=4`pqFOYP;U5j)Wj^5`I;#o@#cO17oR!|GXpFdoT9iLap3h=?n@m z{tpnNyRJxc>c4x|M5ig6n=l!XW{r8Z-F0?l)wuE+#7jmcRc#ns4$QNPRhq5GU?4ay z6rLJA4^GbrDZolj{aA)(w4b?EP`91L#>$0;g~VQ=6RQr+okL)?sTBy+Q_epBBeS^A zAFgm7v!32;dpp{))vJOc*eBMl7_|6?5UEOO?d?U`G{tyrP6mC{q;AA4?foLTI`5JwKTVPMyse_?kmu;J1n3ORpXmceW5&) zC#Rt%yVu3*ePg_q2ZBxlH8#_+N^j4?=5(Zaj0xnlLOOq%D>YER+Nw61P$ru9!k^n9 z0oxJ%ALVEO6Mw@W6~~Ew{a(hhZ1&dCyWxW*K6Eh}b~%b27|kBWYtVgiRp%Qg1mt?P zbXCv_1N+^mOuJ3*+osp#&8K^wi+&;YSvlnX+r4HX%R{iWd=KthMr>xfGJVW20ZBA@|A!qCE!ib{v@$ZIQ@UN4{R9mXWlMUF5L6eoGR$t+b&ink-0nok* z&k?0dir{?B`AO4GqqD0(!-={^{)HfE>7naGa_Mk2{D%TKDhafnu~Q1@Et{lx-t+g48E#f>W*7;;HDp(1uO#y>eYIZTG?x#emX`j2aKDjXjza;8%+ zK!v)d7VW1aR*zh52kogn@KV&x1M%H>03-U3k7f_l8msAnfXpQmH0|ouQH|w7~+9I7KF09Dv=n!If1}FXT7#s*e8X zHn00vnKsx7zF(-eV=L}jp``qSZYg(s?sZKD?86Jn#)1brGCv9vR|jye!6uddrdWuj zmQB*pHa!(AX6%l^ukeWM4odq7xp-$oX*~XAy?lEiERY5ik{fRPY1@79}F*6*pQ7f6Kx9!?B>APt5@q7~4 zHBLqOXW#B98TTL*uX8Ra6|?)>jBFEv?Ofk#222htbv_81G@G(lsbaJAN}Ym-+ekR_ z#BU4!!ieNgCyX2Bu>;Vs#;tO05 z`L3iiihl|<5~Y8`>r91_+Kh!Azg4t$n_JJvHTaOY4~W(miL+)iTyCkW;^0(!l$xyN zu>C=wg&7<*GBR?3)vcahP&7O2%H;eoDFK(i6MSd_rJSq=GIlfexGv@o{Dj>n0Eo8s ze;w6U*MW;wb5UofrdSa+>(6NP<}n&32I0#N3{4!#;M06-QVG+MntN8OxCyg{n2pZP zC^f7)7o$B9E4aYV}L_ zYVmT@%`n_{VQ#B!!_e?EJ+{X?O*1)bZXhcv=h89xwK6a_r3l0+4ny`B+?*QPt-Su6 zc))Ge>QTno43;7FcXsaFwYR?H1QBHy*T~;d*#2@jUoE{Im{09&FZon8Sm0F?Pdb?h zfxX>bekFsFleoVLAh{Lc8Wj}n}M7VW*>I^FfR%Y#5AvCBTrRdK37-VzU-YzId2?LnXgm)3({1QXo+0Chd zAVK=LFc7dX7G&bI`|i6|t+8UFQ}6uF{zGn4lK4d%th}aYe&?%V-uH`{6q`K>VE*S%+T`B4 zhS6y0KY~~Sfp|^%o1eYe{l1pHTE}5aU)G;sD`XmMc0TLyOl?QZ(b~uMu->L&1iPY| z{O?Y)y@h!CF75idZsiC3zr)w%Gk53jp6Ux^v0oUK9Jh@3`3J`u{z*E9 zCC5aZa!m)Wd}${e5QIP5S1AcA$VWvv%M%7KeLvZDgzcWk-fJl~*bBh}d+-&9kk_@8bSu6&r#a1OvKA~EFoAr0|$v07rN&uko9jx=YRL2)%`Ta z#%*b##%^u(dR-O+aeOp3&NeU)(Py;h_>y^9E>vMNfdi9^o+c+1*h8)m4M1EY$y1+~9={%PEEm4W&1S~>}uW3DXGsPnr? zvEx=6|C_GRj68GKYX1P$H4XS}G2Cb~6MvlXt{W&<^xTs=6M z#fRage@o=`e(hU%S4e^6<8Sv&QQh@;0y)=Um-#p4j2}a3gYprvYgxSA`F0hj<7gnl zNVVVny|eUQ`OqBuFI31#PuF?V%-XpTV$q2ZTCtuw-CS*Gb2zTB&VPo%4 zly{j875{cZP>gU?VF=f09@rS!VaQFGebd3p$+fpGF1*Wu)p*Jkr3GR?rWtA*rttBq4?j`~5_i1N=Cgen$4y87Q`w{#+! zFR68+ncn?T4G*?hg)AN=%GH;wkkzf?0yXuc20Jqh{o8|n-s1Ij+pj*V-_nvFB`&Tr zsm8~%nBvKm_4hls-_-s*3)pVEpZYEWTnWH9IKTN`S0>1E%ZLkP=1N5Z$tf~rwWurZ zzDJ}G%L4PW4A1SGI&){({+)A@&dUu?w;wOf8m~coux`-Rn+~;{YjFtOx#{%MQdWa( z&HE_~_1a2W)ktS?^U<4u)v+{7c|k?%7+!@*1j}RlY+9i?ny}buQ?awTMt7ILH-2e{ zIoS)9wqIgy{TkhOqWmbDJ_I<-j9NZSs>1^p!Ld%PMl4kz3Q5YX@VT*Kk6Sti`;$+p^*BTqjN1*M%keyGMlKZI$vp6ugy~mS%8*L!Z^Qz~f zDZeO916}*;aQK(hKVWxs_*a%eh;8q~Pgp#y|J)O-;GNjvDN?QLM`gtCl9U6gTMo6? z8Crr(;;$B}HO@8`(tLrnaIg5Q2fjNpfnA!gBk=E+9V8S_zjD-pdvEcjmgpxX_@BSi zh+p7$W4Jn{*e}>YUB^MFbnPuN`Po~pk4X+NhNT}?9i~TGpe2{oUrQ02D&?tIA?QzO zyN7z<#*PmkBMXs0W&R)i;X47BSTZQVah&1ccdq6P4qaN=>D>^UI?Qf~kq`?Zz#dT; z`qK|2o&o}aP2X~+a7c~?kP>Q=Z)KR;VKpAHi8}ALMZ-`$7^1tNGeE6x>aaviCZvYx zqxRb8Jui^zg#e(Ml~tFi`i3a!=7nKEj8k|70rlVr{}s}jWo7yKGT5E*;fnx3J<>u8 zo~|-D8b^zAfzhphcOCc*v8bRV;CTz`4Vv)XM}feZ-D8N4JWXG>m$D zZ#)Lt<20Bm7Ld9Q&kMw>gqr+d6vbMGSkOHRS`es5ZhRKkeS(l&P7s=kRm{?ql%N1@O>3Jv=_1 z4=_98;^F-$?UZsQP{)8U!n^3zG8Xo6!wxqy7eHG7`hLPhBP^+dNm*3hTcH&7(GCJi z6=a;`pgQ3yN9WQ!c%XjG8Dk@FuocBcrqdXR62(=-QBnt39&XWg3qp|i?+zcsEXD3f z`q2ZxC`-7ehu3@mJzxTqNic>E5}x{48#zK|@Kn;WFpS(C6;&5)sMA~N&=T2Yn;SpM zTVRNMMZ^@-mn=1}&k`ndm1z+5PDneh6cCHT+NX-ESzILa^r-~(U7B5Wdk-%q)mah> zv{WtZ@DTDDo6t_o&+^tKj~4$iH}|j-!iU%0eh>ZzZh?&U!hCZM@8<|mFZaOo@$gUv z;NCc#{p}Nk549VU9ZwR&=%i4j+j>!kIJyv^!Q91-<79-PCqVs6+wBRaIyPxNJ6g14 z{iy;;1_iO+U(&yPfJrbJalhRjzk_kV{hKJqV`1!}^aHLnZEfSF}Od$Zbv7n@))9ng57QUZA&^i3Pl_z)otltp9oAkz6{^!IG{7matN zjL=tJ66JdVQ2nkBrtctHvvA43bkPMw9C-CD-T-4l0Bg0F9}eJ~&~p|ginbRr%>7Q( zdeeJA+CeP|IkgzXUa`=QOi&KH1mj9x@IJF>RTg?qswImFw?XBYbwrAHV+H=fW%z zn?o)BeA|b8)k-Le-%dcbiI4|wx2r)A2kpt)A-o|02X&UrDeMQ9n`nlcb_7&49R+w3 zZNhNjb1ZB)B08rX8b?GCo+;lilZE`CeOE;t;lN&@8u2n2%g6jQK;DZNQ|h;Gs^v8De{;|T8#d!HzK92qFl7W$ zOox_Y(n#oFX6!r!Q&2!4*0WaZqh5Cu<3C<9Pz*T0h^LKaSqfF_y#{jZS!VEZ&G|Wz z`JTU;-$&7Ph0Kp*iVpD-<3-|0zZ2H(CLz{SCCJ_GL0Br=y7FWm1_1#^JYuZxMT%_< zGpaR0UFpP7a_M(07!ieiodA^xrlvT?$yCA+{+Gx(hp?Vl2hl5(& ze}=)VyEBggR*QhmkP0+nOhb~FyM^-75e>iJ-6SJvXB_0my&?@7I1S~vhNdQyoR=v* zY<-crD%W8mJ+CC-j8%x*L3Jb5@J6+M&?*4B&d@n<64ox%JZgv)uj^_@u?yNwc5c5Q^$e3Xh1604a(Crq*GfSu~8!P z$INGG&!cF&F#3pk6EON48iew6k)vAMvfbNa3f|*y#_ReayL7ZTnK~e; zdUW^P;PCAg!7SM68P_}iy_I>sq$1V*GS(NB>>^(>!IAIGMYux*+{MxdoGCtBy>bi; z&P}57)bq#cBR~V`lW9zc^Lpi_w*;e4c{^E=iNMHDHi0pO`RUIDf$>6%Y}BtK#a<(c zyn0!feOhNk^ze9i`;^}jK(Su{p4H+4r(%RprMK}=(vsb#mWXM-c()Qo=kx{=9#;mKC zJK%AUGW?#xrjJ$KXoQeaj~1Pec^W0EZ}@M@GxX5!RX#0yIq##^mVL!$zYfBV?Lng-bI`-AU7R5wA_+#Z{t{R5t-m0$iWcY#i> z+*FX0aF9f-?@<}Rui5-tFEsJh$JUKZO}*!5;peXdAl@BMbL5Z+qmD~b zKHVf`$I5S32<-=Qy^akQxx#DScr@ZyP^0%yHp89@=RxG6H`1zzPXg}c-RY5rJ@Tk+ zq$Y<9fhRi^j~rN2to4h8cyuMQib%o^D0dN@!=CzpcEpb^O9{e0UfS6-%bA!^RlTWG zG>C?rKi-`5x-=*6dMCftd&YNGl((Fn-XIUxQ@J;L{XJuN)z!O$hTz^8Nl+ zu!We$_3g%00VTXIBC~6jjosB}=ILRopw`qkmRyZctp(Ker8I$>f1xw%laTb57l$-z zd}D;Bs4^X)?4!)l9~@GiWO}?ZKynb0VLX+^0YO6vP0Q= zfc!PCL0uG7p&E_w9MSgkYqq~fYVOZ^7@>4yGmE~9GpomTyK5)V3)s_rfqDNKNN*yN zthVItH)0>rTZW+LS+%=Sizd%&?q6Huz4w>Nj^7~ga`>OeWacefK0aCg*DP`+!vve< zK(uJ+=8ue$X)X3RsV54ixf1Qd7S`)(E07d&1&8~537(f;@|Q(hVglBlI5es_H=9>+ z`2_Y%5*a|~dcawFWy<44CS>d@=-E-~=6f=3I9-?MeqQ+Geo04%q$@$*UvS8t}0^=pYQ_V>X_V$mtT*zS6NIn5I@$1 z{Ul&w|UOe0P zo5Qto|Fqag@YwlH6@SM&(UEF#WT~c!SQPVnY<`#nx`G>H^gyjBi{4TWVgyHlv?{?c zzjq1ejtK&%ev%RlgvGu~4?!#q|**RhuBt-6y?s_Kg@m9(52YAImxM$w{n`XbbO=Yw=w0UWb1{Ycp&oiCZ1 zhvhPCY+Ra;yZnmp&d&W`v-@+f5U2~|&Qv^s_0oud<+3K5`aibLf{2Non zK7xrls}U~11`mj1#*?uLdEfH@X!&M#W)8iTD_j!2t|e+epXW1#y-CK)gV4p{#?VYp zW^R#-41Uy`BHxN!a^TC+pgXa(X9rTfd1{Z}P(mn3UB|;mag*qBIX=ZgUi81TUuO_c zn7KVut&@5s&qbf*LRqSF53UknAs7?Dor!^Y#(5%ltIyIW{;|-1li>+O&o^{TlJqfi zj>V5MgN%@FfU@}th4W#-*=5OJsT7$QQCRuH6v=5qC|`u3x?33pxDQ!lVTNA@`8NY8 zP>=XDo5zdgqgcCDEDq?AD6E7DfgxqYi$*WI>VmJUX69V{Pg*UB$49PHw#-e)u?Qaf6?^V;ZJ4N*A>t5->nt2 zU#^P8{6OsvE+f?EW{7(|6*#xa$V$wm(0?R`Lc%IvoJ{HbRbbmj`oxYvJo*r|jL_Mj zMOQH_JMX8UUiknU=Qk8}-0&Hs-vIe%0^Ea?*@QtD`4#em`v+;zhTo}Qu5=?gU>+Dl zJB5CY=`(MM^V5;GO6FN&x&$I|EXb@XSNO7_yPlsivOmg*hqBU zLPfr!#~cNqd?I4y8*!#U9_6qMd4tKz8t(P5@h*uun-fitPc<dIi zpKaO(KkzE-1JeEweN&nVAim2oZTV#S=KwixNYZxUQ>bP8 zirh<}s|VN!=LnD2czIv;9U1o!L419Q!ehk`PDXhG>Ue3%ZmY&zv@xqt(sx~u_?Pd| zb~6Yg>I=W2M9kBMIng0;Jf*WvVJ?)7HFFoDCQ^RJaOOpFaPn7;AF%V*awx5*R-*Iz zjm~E!YbtPc59lSpJc8=UJzTO7A{FD@D^1(`(F+ZHRnH-)pfs%EzRENvrx{S?Tqw>>JKqwqe|PzU`-wA8oy3Kmu!`yFio%9yDG5fWtX1~b}i z0)y($l=(xv9G`4}jFe$KVdfkXkz@zxY9u0BR+Ttg17UJB$`=xjInoG7rex#D);7b_ z2j$J)7K~1M*)>k_tYGI646yaKfli)3gF=1;3~Yj?AHf9gHE|B7(hm? zzxykA+m_r+4n9NlE70-{chs6LnN2>0Zq^sgDy}fLX&ZH$W1#wB$EJm89{{lxUNH4c zv}VY<35S%0_5M5uc06IFzp4L0gfUqJB|yqA)_`ERn&6#!wi+3+zQD_f)s-!JrIL^M z@{jjToh0{28s@{Oz&>-2*2;>a`z(XU8g7qr)bIgac!5tKcmD^CKW$X%pB0#CiNz4OAM^0zV@OSY>;O+zMg$mNd zZcm5jKPAlxtvI-uPpPMMODe`xmjJBM6ma{f90#^OHcJgv!9#ZoC|o_eFuN0s{^WB! zm1*i5&hy!d?_qGWxx~N%F)8a|UT%yy@8mh!idg7MQBM-zgRSoYnpW zVU)SwQz;F2rPBkk9T=%)XF-3GizgWcf*1nNfx zHh2Bcv(h{@;G`|GTP>7sgh2``C=x+U9CnN}!$|JWa+JaGHheQr9@8T?%(4^l?^+}i zQfEdH!!qG>qfr6Gk51mZ2Vp<)!Vc5k|G)1RRZ!$bp#Iggds3T=-tR{j{^okJ6vuKv%gl!Cw(Y@Wyc#=FM6+MIpwcB|F<7pel3$(kQMEO4(!dscb6a-`CfnD6Ebm5kU zaEbrjm`p+HcIMmi^*Ag=ravGU^O3NC#y`5gA3iN$L9i7h83xYZB)f$l0%6Qg7vC`G z#@0D9xDi)eDZ4>hh@ln||3=tXAb{#>#1KucFJAwl=LjU+gQ0=$A0l3^UvSr_Xdyz~ zq|l>Nm8J{HMj2X4pwF4B_@X!Pd<*|8$+H_;dB{i<^6z^|UC}R*nwe_AAkx>k45*a4 zTJ?$E{D+5_&`s`B!}z$-`=Rs#UKs~A7QTNVeC6x(6kus-Rh5}Cqarb@0j`D77F`RAejj@tejWt?hS!dFHIJ+o`ce6<0=ZV;ja4*33lQa` zOUDul7*E7@Co0VR)0C%7wHtY;wSy<$A-`NR(G5yR6GJVO^;3MlMKGjNYB$u@- zfD#=dRH#H(OpLn3n1*bi|06^-<9l53rp(<@74)wQsj&1trJt_A`MKl;X z)274kmakbp?1FS8!CfrjFqtH}57~r3DQMp)-@)yRD|}?0^~vq+c&*^FyQw}GM_n+Ss^4d zTGj!a60x3zZ91?rcR|e{c12H+p%mgfl`AS9DkB{>juyGgQ%AbM#o$$+vTq(q^J@zk z!C2iT7z>nk`$yFv?9l;Hy`ld(HA{(cOosQtE?cUvc4h^rx64J7VI*4@6m(fqkot||LZ7#DHuwS_j5v>B4u{0P!! zmU)L9zb>L|j!P-Z7&9SF-It=Y+9Qe7T8sBfyvN`|9sEr{h1#w{BFTZu7K(gz$oM2p zRzq#Y673lAkgg5Mn95~(x_=GCnb<{^!VREPln5Z#qzFQynwz!#u3#Z->|EF=yxC20m* zx2wgryvVeT%@tG>40I!}u4;Xj7w4roWU1mcsU59u+7%p=Td}dCPuMFfw);MjR+#Xb ztNr6%D?;Gsz}`bH0R6#jf44)Jb|zBEa99C@uM9)*M%NIFW>{FT#Q-P>66Ep~_2L3X z4oO6?InQM>qL!ox@O3;+n?ocGm{ZQu!%B)2M{-t3`26<`d>9GZrFE(gZax|O%OYfM zFY6X{fJnYc{@IcC?Y-Q?WAak#1rITC^vb+lid)GpMt~Ug8|dfiy)&lGJ4T*;5>)Uu z;U)?LMmtVB=9NCOpfs;P&H+kNcvZSByVde?eThgHk%Z>ESo8vk`0@`>_;2ysJJxT% z;9xu7)Me*d#!xq50@(zD6g84>KdM%BVt`8+#!$ol!3FmIg|EMzKGZ;T|Dt{9A5}}_ zlrq*vCT-PUi;*DaWkc#CknQ1QNQqcYRq?rff@S56A0LmI+xuXOo-Mw&x;&zWpKO3v!iVf-1NVk zzU>`xR_Th#b9Z5&7WUB26b-7!ZQCM|%jA zpl#*!<6H}D7gV2+C52AXP4|4zeA=X41Cq`_ZTR3`31wz*<3w@$$ZM?=V*)VM!Lwuu zapEOEkmb^p9Sd+rQjW+XBT7~USRhwMhlqCFW}=*-xLIOCHE2JBP*3+n)Yr0h_%R1E zESZMaK(|M=#AQubU8k=7O^PhgUnuaNpVg=?qn#cWZi8hpfgeMpgF9B85c z^V54JBZ1b-wU6~tVvq(fg&GIaJFQ|*@ARSWuPXsf-Z9=KdLaM&A$hRtI?LCq!F z8YLhUb=!P)-n%?_8I!FTa?XMj7{|2v$rrUN8W2Ho@aL-)zWghwEC^5uNB~fVwoqD1 zc(`$Tq|80gS&j-J0#h^5F4AN4@&v`fSjNCd8VvC5=uO7UiM_E`0H}@?ipvOHY%*3d zO6+Suh*IZo9J%IQCHO%djn!6X7wb#!$RM3*MR_uVgN3ZLR~yHX%Y5O0;-l!elgEO2 z0!r*-hxbSxQ`bh*{jb^HLmQLPx#7Jy4fx<`Ga` zAVqa&1nq7o>+Qa*W)iqzk%WKp0=L<;hlm8*vLn8&NHl&O#(i{pc|kf(YG`2Xw#V9H z%H{R5v2E?j*s7_tr1Co!)dsk?^={$U>dU)Z;e1aYug35e5s%xTK%pB(R)+5VL;9K+{hOJgLbdBXz*MgzXM)dx3uC z7vZJa#2BU)TMN;mS_eu*TB5@)qZV3N33uAJi06Gu)PfMb-c`brS3sTTkY)?^Hv&sf z-fDs~iNRLL7Di_<3Z#(YMe{vCmofB>M_tw0^+^6s)W04WY{4S0E|mP#gW?POY2eVi zjz{~_gT_qJd-%nN;btn}Zu7Eo`5zxX1r;Z_`SJYR)YN9M`P;XZt-xB7<_Wd5ak~bQ z@T7!*(^jR_@9YI|BBYQqVNE$5ceLMMC(!_7j(4IoCn>$)^ zexf9uP!pS*G`+m>Y*~a!(8?rwepO0lDNWq{ZNvufQ%ei%)<2#%W7c@JEe>)Nh%SW= z7H3#Oe&XOvP@{!+Z@PaUrk>f~*CAGioti}H>(u<{dSzAF>E9ra1%u>I#f{)UZkxn84Z0z*;m`;6Ns$frHk@WJ%3o3< zYs7kUYjmn`wWi(gYx59hh4-+{+d%DeHC`m5AhRFLn)*RUM|BWIJ3Ho)(a~7Lmn|-9 zVtim&U~leJ`551~){Fw>Z@d$ixwXM|KAUC}px*7el@)(arr z&-rWSv8$#w&1fPNO36MxCSbt`tYXMX!0G_jTVzx#P%QzfB?Pdg{StM{DUcCZk;5w8 za>IeT<^2vz{QT7x2Q4wG#1z-2X3-0q2uXqnVFq>4=vh%@DH2qmENuig8qNp86t+1T zg3fRro|e|9~JCHe-mz5g89l}CI~!~TX#bL!}B*y!%e_=Qoc zAG2@K#B9H9Q(t(CsYnN`uHx5J%mfz(>}CRkhaBh5GM5IE6#JXgM5?3(-ON1Yr+7O0 zw!RSB(KA^yT$fzo^x2m-25i9>mmqfT@Z9vw?hngvPDvrN-gsuK;18VRv^#ofs@5-M zluW7uj>)iuh&uYU#A*e0j8o-v%bDxoXRT+MihViVm*1spQ1GRmjH-1($?*An;d^e< z)c6heVWz5ehR)iv8{~z>#httJor=0T48ZN>&S0|5c3-Trii&%@CC^uxk%#M};rDeN zisk_)g4RO0-`_8C0lI3bv{SfOfPVBlt93#Jid} z)>Lw8H9~Jt_4}W4QF8HMj)5dvT!4tzCPDtACj%`^LCVnCtY~;+y?UcA+8w2vs_FX9 zx{L-2*YV|k*pYnpVk&xYw;8UZcF~E<5J${oUg{p3Y_AC z9{5Tt^H%vUoj7Q_toC=oY4v;R+J_RQ!OsXGCNYoS z^~@p@Co#woq_~-fxEY1ezbiH(p#OtKP>=sw7PFQN6?g_DI9?{0*uX40WB^)dMb_(d zrH27z?nrwI@#Y4wL|y|4B2a<$Xjy1TVQ#dt39yFN=4N(#b*Ds$n<6q@c5TW4K9g-7 zL2ptgIE=Zr>h<6h!}B!e*R6}`-d5b)rmofHig>`te`XQkzWmxj4ok{7ltP5At}9d- z0G;=zkzwQVr{;R%@Ht7A=k|;#s#=7iw<>6JstHs3&{i`PWHzU8K8_6U?{c0-x8nzC zPEIbT4(bH`ZKgI)u)^lTQ!{$_n6Y`DbzI=y7OT%8iT zuir9QvH1P&$fHTvcR-ndh{E~%6k^j-wmxLXRc=AS`B&)Vct?wMEDiRP=m7jGm%$_& z^Ha^&mwV&A3pFN!%NPI$N0+{>l4uM7(f@jH=1906h)y>6rc5IVpjw5sb>5xMj(Ps`n| zADMLJi@R1&E_D4f1$2Dq0j!MioW}=QVjJmIvLEf{3zUgsxIm%*yo5>-nZ!p^O|5Ti z$shZX$20r{miJ09yMSsENr4Sy@D9In-zdeHsn;6-_q|+`I=VrXn(C$uJN*JNJa?%f zQX@h_$?flUYO+K8X;Vh)j|J%|n2Tdw2t`Y3di@2Cu#S8PbGh=7KtB1cl{xE@y5gTd zTSsFegqf`7e;Vp0d+)>dy&7PYPVcpK{0Uek4_w3pJQ$0veJ{q;B>R(f5uGh!V~$C4 z+VO{IPZy=bnURLzgu_~3)GfBn6abJMS-`XFEmAuXfi^}Kswn{g ziMmDcgj3p|%vnV_A&Xq4=Eb>n^#`mL>Kp=;nD5Moch(GE>_CR0FFf;-oOy<1-71UY z$nGA8Y4lA-DP7PW?8t9`zuA9y?d?P3w9WQ+bDRN9q>~< zCfjWshw|Z>~)*AaT!5;%bW97&1&9GggEGcohwD=jwIE z{mw;z0&`!s?5*Rb`rA{aYgF)&tq?ViKB`B+bkHp%r2F zNH}Yon@^aYXV4=Aq)6%z4vzXq8o$KuKHTd|uMOy@SEyYAT})mEX)Sc<#pi#HJ^h}hoQdjrz=(WUuVr7v!=u3}I%aC z|L~K6FB-jF3OETy|&@ zOmV{9yF}mQ)&p)9g?2;TGe5v7;6Nr32FQfS-vr7impL-h889x47m0Y82rP~PClVGe ze#`TQ&PSpb)Iymg6ksG+haby}rG%^~6I8$27b*BR5vKwk>KHnZ>Ak@N=7hZmgozrHdU`gX`et8juZ#Vnkm&i|+2(W&|7 z`TFC_j0b*xcf4~lGAju{{-X9L^sf$|bbPzbD9FELJiNR5kMZ%Wm$ux^m>U03VP0g| zJw^Zl2cQ($ezZh4KKUs`LP~hwOD*_*k_m)3rumH5oCc=tm~bkq^iTEY^{-Ai2W(~2 zEs?j$O8YcUCsD;6E=TL<9m-cNrCfU-zaF&*;kLrq%73=TRMfg2^S8g31xBP0kSRWR zKtMo>0D5ghre1c`xGn4G>xVeFiLN>33yGsez($oXyxQ#I$6l_mOXElZf2OeD4giRy z2W)KT_!$#Z2xoP8i-KwG92R!9AQ;zs04tUOdmt**0mLldf%p??F6^?9yCBFKU18Np zHe&mgQ9pxg%vy1X;XsrT+FNc;4K+(XEl$p|Yri z$C{_NT;}Ob@sb;l`3WEh7=VW%p$opJ-skP#K7+VRB1FU!32=~McKQ1~NkfE5mv2B2 zB2;HT=oeI>ziRA)oUbB%-p6zBP`R9kR&#Fwz*C4#1`YHQf3iPjFa?qhm*;86^TS^h zd46o6))sFX=u1M$-X5Hj?=pz{H2qS?XCuBhRB7rBK?uZ&C3pf#`j;`YY}HD6c6oQ4 zl5We*C~RvP*a^H`nm6+DWmjkNH5?4c8aA3syt(yO;^0WW{>p?1! zGhs?JwuKTYi=^8nYQFVTnF^J)^pN?GO6u0-a%A|_(7~6dyo3`w+u~sm+s?g<$6-cmDcdN3b6LxMjPGb_*NjxZ|}OcG_!A zd}0-{oDxg46_jqe5SS^J2e9o4F!=d0atvyX|sOXT+OpgiCsFieoEW zpJ%SF^l4`gGb~BB{9L@KBW$rc&4LoY|8=!E3EW&QV*T?SUKPDXs7hBUVc^Du0Npdz zZ!39PiNsHYyiGB0h1v1$?UHFE$TDJ6{9GB@IaJjYet81-&311&u+PG5C*fRnhIp#q z+jte~04_*1DONnAT<*t1pm&Z>{yo79N}&qM>X>{;0>htPXx79tjd(gw!E`eU6~E$R7A&*>>=nE6 z6_Z$)Eb})P>)#eq)mQbxsWEJnr?D})_}(#uH5+{X;dAYJO9gDtWOKpbxtj!_cAdr#1KXgZ6M-(p}-CnTL@1*V@D1nKGW zJqo$0wSQG#{~8SVn0@oN7*bQ zYO@a5ZI>dq`i|x9aJahe_J4&*3$gmzyxqOugzok^S>X`Z*N+Z*?kePx_06^Ps%?3m zc;D5vyeNps3Z+`fSr6Rx6c0^);UBD2{hSz6D)U2x>&cC;SuQ*-MM#1lJsmZRx}!l# zqe0X{Sw!3bGzK7mBJgK5GDOIJkaSAnO~Ny%&6;DSXB+4hGLi=nzoe{JC&TsZxj#iz z8YV~|sq)Ib!YZ93AI~LGZJdngoxd_Q6|WeXH_sVwYe|N4rKY@7TdBQ?QQaeBw{3l3 z4JDRP3MW%47=WwVF=-0tMTqL^E-0tepT~HlGtj#>uexIfs&%|G=3CJ5Zk6{5dOgn7dSP(v00#C)(Z&m3R{FY~&H zp~EvVqFs?=>AnS2ToT-1%QN2V*D)K+{Tbh^Gf%E9v(>GptzfRl_@*1v+`m8tY9(X< zf4msQH!?Y?#_y_L{c`wxngPBM(w#1sz8K385)w|12UNbC`rQL20D#j>t%sw|hyppu zPD!B6o}7s}9~|!#;xn><_aYcX5^Ye7e>uauuzT<0pLfcp$Gl;|maxdH5@W#GDUqW$ zG9FKN+P8BB ziVL&MZ$;ilFk|Z<| z07<_>$>q+4%J0JeyB)&XeDSPQUrkF}zQRf|>UBuaf_$yu>re{UO*O^-;ekl!#)~-V z{oJM>>nK4ha3VFAloS(2e9T)b)~=ui45%0w7`A+j>5=AYP+Em|1Z`GAzA|3Z9#th> zbIPi9)Z9-=DUwJZ`g6_;L`K}>3BGS;Rl=1~G4)!oNgBqDZV1QWyulbY^ZR#V78Vw@ zM~}jO4ecM^;^E28&TgIJk(J#sHU9^F26Ax^(tmDSBpi+nZY8f}p~#j%;<~?ou#)rj zEi3RULH5YpAhdjZ1LkJq=tp*x7L*pr9?}d-!}OhQ)_%f}vnZ5gwmzrR{M5hxeU`I; zJ$rxxY;bV!f(|hcljJ!uWgoQdQD z7oL--FP6F6<12@g|gjj3E2==-gy)dogbtga_(7|oJpTPl=9~1 zvo;z-$+QD!jFos;&(J03&vv^7RX2Zv1-&*qQkQb4I}FNG84jG{vPvU}*^i336Psm{ zGl;ixYX=AJul{yf^BW+3XJ0OBSq8jGN*XxG@Gg2Z-C(3|WWc_VWYPL$bhCD`!}%XsmOA*5JTZa;u#sMu zDd#w_F11HTmYwCr%z@?Y|v^aCr ze}~fHZN0~z6pmJ%_$cZq zJ>{AzzDt?8oAf3rk>BUw%PtcWQ;BU4W8Wi61j@Hw-6T(!gX^}7S2X$#(p#rDHcqH9Hx+M-4K0kk;1iLtjmhLx+r5QOWFPl1 zzAm5BVN|xVxan(xcA)!QZ=v0#y*Xdx-tGH|up+wdkMOz&EA*oA=Ajh)z-x|N3#QY@ z@Dv%wuS1Y6NVTEzXgwPBgI+>L@DdXU89JLM$I;cPMW&njIoA^r`-#HW=MSAbP?SN3^!XQ`rSeYI53BK&ONpYe$8Wrk${)A*!_ssu> zdpkmo^P9(jG;Px&`nlz{sI~hjCjwkDyJ&No*xKwZy)I?c5pIBcyhHG!wQ9;t0layy zazgXUE&EbVe-Yalup5A%N1)78*&Ojc&iEyT8WH0gRR7J@1=$sh@g`iFy1|iMEetbIJ-hAG-D1N(jkP9t}}!W+7JgZ+{>5 zDEHq)vZephR)yLm(F4D8d+N=Fl&JK{hB5kHxmIdMl9*wf2L4q{f4>0`#7gNdM;;>T zNK6D2Sbk>f_hbz1jA8?dl}XRW=^mkVNqKJajW4LC+OstY?&8%`KOr`vx6oToZ>~<> zHG>y-kO~I=fLe3>|5U;`@EL5x_>vCj8{1(Z zeX!lp1n~Vmw6Gc7?{L`*|2jcF$N8eJD%gGr9sR!oY*Fw(yMAS7NzK(my0r35ZJSgF zF%V0BHNh6hVRT=J-kS%`EdQCv7fys)(_+EIoHL&&K?tSAxouF~SC0V9v51|nF+&>Y zf)JzvJL}K}gsu0JYfq)*2>nRh^APp{Cw%RR7U?qL@t%%(W6bb2q|%M=CW|bI`>v zJ=-f%9wmnc%SXWI3-Q$$sM_uN>?`R9vahpK3KS5@SiaAq+a=H&e=u=TG0+!QA^7FZ z=92sN!@L)h%u=~Sf;qb{#DaO!X;7n^w|)22dmYLWIe*2LKc4@>S2`ha;`l{2b1UA` zd`KAUg1j{KmmNPiTxc>b;j7MlJAN?#kLjIv?3bah^uxvfyxE!*Q!V`qT#DX~w=C6L z&=hCUNqMyy%^!VnTHc(#NFHCYYt1sIDbHe-vYYB}kWpuf3OFDMTF{n_qv2wz}TCwGDcbWqZGGXIVV-6~J8tJ=0#DRn++nW5Jh=Pl(3OSLGVo zXTW2PT13WSzC@1wp6B*Ldj03aISG z+xc3TV?W+=nfedwG4YxXUrWP%c#wqVHh2L2A$!7AGXBEG)@wr3B>lrq{cd(~p%_!- zTYuHPJ_}9zEvUy8WxW)EisQ%w^TT+Ls~K|4sa_4~gPm`YY_Fp-EWPR+=2bH}SMs&R z|CdrMJD0(Yrr`^2JcYITNU_rw?|TACGU@ph0rzVrPE!k-dui|ta0N`YDmueq%q48E zd}SBVtX!zEP5Xd7^&5bslNc4rKuh%7gE4%0KKBFB&Ful!7FmAN^4l9sAGK1&PR<4F zk(h%H=Qd_*i;5^^Q`qWWLx=y7HK>R)2UQUJ-Irxq6KktzR3Vu_7TlEj1=oi7Y);zy z^dV?+WAV5kj2rLv8d|pO>_ihts1|!`Nv}Youo^q7`KuE8Y#>WzF*BT%*yC8Ha^WG& zLp`_zEgG)e1%)Z^X4A1hggvoW5Zcm`DZpAyrurHOHCNw1`~eMdb#{1$&lhQU+sTxx z`Sz`HwTYE|7b=u=<&@I}L}pj&#Cd$gv0}Md&(M%=O*QfJ=gq2kS!92-@;QQ3Mu)mp z4gd7-PaVOLTxL<>p{_$-RV~trR{?jCNGRo9i6CM-dFaY+NJ>Pisnk2xVFUP=EzP{@ zyb9C``hdi1mVJe!MEmbHQ=$ZV^>r~DhW8B#Yk>B2k*Hy0m+CZY9v1>@wsEaSkp@(x zvjU!=3MZ)DY6hmQk4t(U9CX4SEAf`;C)uO`i7E2HxJe)+w%DcUupV;WOpc~-nYlPS zCY&5827HOeY?h9|hFm093YjhbsKVo%3l-8B)+V9ndkjL5m`dC_FZz!)%Etx8J1Xcz-XXx};ibosMEtSb;xw&XhPmq7 z(3JXXO+NcSo~wR;j$9_Q^t_hMKYS5%PHE(EA|DZO0L}MOOgR5ua=8Dy_Zb~CRyS`G zCXFL%eLJhx`y?~%xwSnhc0tqn~~Uj*Eor{6ub~IosE?tE%+iv6?N;I ziKbb{_^8VhC<4|vSgZj2WsCU4s)}+%x zp0gs8fX<9#QycJOzffdBNwz*5Eyr!otCU6QSmeY^N!im^J<_J+FL8oik z&p7H0W`~CHl8*;UDJ=P19M&Pf&+JX$g0$ilhrm)m3$2PEiOVaDVWys3AwO2WP?4-a zwFcifr~hlHUXvvQo2S7QU7Cl>wQ=mR{Wy!4f-=NwFr+1RpT^h>)KMk! z`5GzpZ1NT#4mut>idN;;4{MLBK8)7+FD>b4;18#Po8NE8i=2S+AMgfii~yt^|Ly5> zO1y4edws>cbUL~W#Z)Sdi}Fq=ndiF{`B^CMT~c3UztG9&o(Equ?Ns)ymZ5K75nz`A zv|HkE=4}qSOPBsV+~H{>UfYOy2I&JXxQ&OG%rflpM?8bLG`C=aH>(A0J!}>?@(K$0 z7k~XID=XVQ-|ss!rxs$T|7IF%l;hAeRPfn;r14M`*=8z7a8qaKA8@#qJNPLhsCO-E zE)C<^FAUFC%liZI@zSr7rc(mN^A1F75^g%@Dl#2#ZT*ln>#d&9Z zG2@kf2~ZJ-_r3kffM33F0pqYM_qSW;^9aFE6sA=ECRtA~tfeb7CwlH^m|rKunN=>t zwIuW1MIIwwXysUjgR3k`SYDt^A)p6M)AJ#*Whtu)s4yOAxIZ`&4`Ob_&MjNtcQQKu zkss2Yk#7mRo9=RrnC7M*7mO7dBMowEQxa3{J43kbc$j zp|jT{x7_vtgDn=js$G+SXx zvhiBZ&x_(yE^}_`E!;zpwtoTaswNsjHO{LLZJ4tX{!Rm5nM(DNv4YTqUxjI^dd$UM zGEoNS#2Sq)QLaf-S9sW5!iQMuGUS=g1*%I@wW^ZwqZYT`r}rCBjG5ziO+P)o&vxGT z7$(P>V_!On0$6GjiI(iXD_+@z%~CD|LCAoSFeHmYy|7gMHi1yySzscW7}HoX-RP^b z=(RP9BAhNs{H1e6kpnNEX{!88iY(#Jym07vjnMPWHAR0-Qo5x$a9-3^p~a~Wr{JRC zhJ#RB0=>Ro9TK6nm{?_524H_NIlm(HcUIcKZlMK{P1!Qc*yJQ-IAE>{F>5gfy?hoJBZ$ z?OPhR<5#RNJf=&l*OMjUY@ED19D_aFE_>qQT6!$M@Z%rLj2;c%<9Rwl*0o`N^2be9 zCBXy(0{`Oq$8fd?xMzWJX0@=JLXa)^FNP@wQ?BXh(!{{pZ!UlX{f*a}&Zl*9Yt&9E(z;`ybtlbW({A>59tDtqJ*T&Y9;zC)wec>tZq=hSfqTc+=lO{_=Vj&W63^=eb5KK$`^9NHadF*)W;ZBHz zTkXuC>UoZuMTQ6mw;o-F-fD=!LC&=)q_gsK%tf$Qx#*6Z&fToF#jVmi3uXM$PM3>m zRKx{7Q^n=78vpgYigx@!+X;$0g)3*>$X3Nujju)BiOd)+LZZQ%e(=YzY&`PT?FJr4 z5juP(DJBAZJb~;_mrsM$!Tq2wiazKR*D_CzI*(U3>JNv6854@lBR%?Ro4^ zJPU%05^%MKjB3@LWaWOl_Lcp<@QM%>6-Vk?lKF-=PdFLy&JV1J+Mn5-(O^Au@y;6M zpfwc;(tqcvEJv3NaVYl`NnDGK-qq=_%#ZI*3G6P>BTY0ZhPWr)4Q|U4+M)GEqy!3JjR=Tu?Oe}ovWf2ULICkDVO=kn<&`iG%8!zd?JDIg=K zfOMg>Eb(RB{+ijuK-`K1`X9jkZ8htD8!l15Lf zD@vw^CNF9y?Kz8!s`H(4vb%&-pO}Fn42;0NC34IvoxM8FF|3p{yEILEtAjyd1X`Xt ze6Pw0g#HYp)J+(?t^YwkY{l@{7UdLl-?2r&XC~1pLPJ#AR6Q~$eD{eqzbfZaYv7s1 z5FmY~V|(ecBRd}-H5NTWjt#W2q^EBSVXVIOKk;r@3mseJoJ>*JX1E^Ud=I`K0-Hyi zaSM%{o_>j?hx9>=@-jZ(N~Mq7H48`pBPp*mJOH`9cK5x!%lEU2WSj7iE*E##tK%^{ z%MO2+x%pm4)6`fkGZHOe_LEfKu9kVd37k7OMbv~0l=rFMYdoMeufS-NjJJut?b!?0ycE4)wrX--J zMx`SqFDP6Y_m3W zDK}Oflah7p$tqxnbaJNS6cIRx%W?F*uzwb4ztM;yHp#k}bHx1A;&B>2ph*~QQ1d*kLUBe z=B%Vzt;CHAmQB_V8GlCh`e0Jv>xhlaBZ0l3D5J^0N2~GZ$;9b_ z-pxjj4?Am7QVplFJ|hiLysR;sCcw~ zrcX9S8+s2zsDcfjTWfN`%f*CfG})XYP2M&2>*5CeCYBp7ql}g=V0d=#xywJCQqtd7 zvcGRSFWnj%=!+W|UUvMBI}RiD;@8JXUynB)(lDV7eAjd|W1F`096Apq0gb7JtPQQW zR`}2R-Pb35;sW{2rc10s>^QrJsx0q&LByrExx;mEna|%WHmC;rqSoF1@|=t$4c5}# z+kFalrphD~5rK2kc!-x4$XZfTva+$^?##u(0TB?GA}|5+)k67#9fsL%F&bt}iv-s9 zl)E?g#I@8JdUkt1Z7>qE|1?Sr830?a?f7=3A9@NtO+s#1g$*W@;XMn`Pe|(-?oCj^Obb%1*V7j z!`(-oTP6CmC4dVD_qzixiJGgI4iUVu+AgB#`W_hI^}x#rL~hwevz|e}@gGLFy*M1T zEe9ipBnw#4&4M=%fFE_0N6JNtR>A)VIZSGU From 02f82fc1f043d409d19acef2d43c1d602287ec8a Mon Sep 17 00:00:00 2001 From: Atermonera Date: Fri, 15 May 2020 11:02:03 -0700 Subject: [PATCH 08/37] Refactor move/click code and cooldowns --- code/__defines/is_helpers.dm | 2 +- code/_onclick/rig.dm | 4 + code/game/atoms_movable.dm | 4 + code/game/objects/structures/door_assembly.dm | 36 +- .../structures/stool_bed_chair_nest/chairs.dm | 14 + code/game/objects/structures/target_stake.dm | 70 +-- code/modules/ai/interfaces.dm | 23 + code/modules/mob/living/carbon/carbon.dm | 406 ++++++++++++++++++ code/modules/mob/living/carbon/human/human.dm | 8 + .../mob/living/carbon/human/human_movement.dm | 17 + code/modules/mob/living/living.dm | 22 + code/modules/mob/living/living_movement.dm | 5 +- .../modules/mob/living/silicon/robot/robot.dm | 7 + .../living/silicon/robot/robot_movement.dm | 13 +- .../mob/living/simple_mob/simple_mob.dm | 13 +- code/modules/mob/mob.dm | 3 + code/modules/mob/mob_movement.dm | 20 + code/modules/vehicles/vehicle.dm | 3 + 18 files changed, 613 insertions(+), 57 deletions(-) diff --git a/code/__defines/is_helpers.dm b/code/__defines/is_helpers.dm index d7bab37345..f97f206634 100644 --- a/code/__defines/is_helpers.dm +++ b/code/__defines/is_helpers.dm @@ -54,4 +54,4 @@ //--------------- //#define isturf(D) istype(D, /turf) //Built in #define isopenspace(A) istype(A, /turf/simulated/open) -#define isspace(A) istype(A, /turf/space) +#define isspace(A) istype(A, /turf/space) diff --git a/code/_onclick/rig.dm b/code/_onclick/rig.dm index e281505dc2..953531a49d 100644 --- a/code/_onclick/rig.dm +++ b/code/_onclick/rig.dm @@ -63,7 +63,11 @@ return loc == card /mob/living/proc/HardsuitClickOn(var/atom/A, var/alert_ai = 0) +<<<<<<< HEAD if(!can_use_rig()) +======= + if(!can_use_rig() || !checkClickCooldown()) +>>>>>>> 6de7439... Merge pull request #7082 from VOREStation/aro-moverefactor return 0 var/obj/item/weapon/rig/rig = get_rig() if(istype(rig) && !rig.offline && rig.selected_module) diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 87a09d538a..26dd1d4a78 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -21,7 +21,11 @@ var/icon_rotation = 0 // Used to rotate icons in update_transform() var/old_x = 0 var/old_y = 0 +<<<<<<< HEAD var/datum/riding/riding_datum //VOREStation Add - Moved from /obj/vehicle +======= + var/datum/riding/riding_datum = null +>>>>>>> 6de7439... Merge pull request #7082 from VOREStation/aro-moverefactor var/does_spin = TRUE // Does the atom spin when thrown (of course it does :P) var/movement_type = NONE diff --git a/code/game/objects/structures/door_assembly.dm b/code/game/objects/structures/door_assembly.dm index e0a94e285b..40c47c9bb9 100644 --- a/code/game/objects/structures/door_assembly.dm +++ b/code/game/objects/structures/door_assembly.dm @@ -14,8 +14,8 @@ var/glass = 0 // 0 = glass can be installed. -1 = glass can't be installed. 1 = glass is already installed. Text = mineral plating is installed instead. var/created_name = null - New() - update_state() +/obj/structure/door_assembly/New() + update_state() /obj/structure/door_assembly/door_assembly_com base_icon_state = "com" @@ -136,23 +136,23 @@ airlock_type = "/multi_tile/glass" glass = -1 //To prevent bugs in deconstruction process. - New() - if(dir in list(EAST, WEST)) - bound_width = width * world.icon_size - bound_height = world.icon_size - else - bound_width = world.icon_size - bound_height = width * world.icon_size - update_state() +/obj/structure/door_assembly/multi_tile/New() + if(dir in list(EAST, WEST)) + bound_width = width * world.icon_size + bound_height = world.icon_size + else + bound_width = world.icon_size + bound_height = width * world.icon_size + update_state() - Moved(atom/old_loc, direction, forced = FALSE) - . = ..() - if(dir in list(EAST, WEST)) - bound_width = width * world.icon_size - bound_height = world.icon_size - else - bound_width = world.icon_size - bound_height = width * world.icon_size +/obj/structure/door_assembly/multi_tile/Moved(atom/old_loc, direction, forced = FALSE) + . = ..() + if(dir in list(EAST, WEST)) + bound_width = width * world.icon_size + bound_height = world.icon_size + else + bound_width = world.icon_size + bound_height = width * world.icon_size /obj/structure/door_assembly/proc/rename_door(mob/living/user) var/t = sanitizeSafe(input(user, "Enter the name for the windoor.", src.name, src.created_name), MAX_NAME_LEN) diff --git a/code/game/objects/structures/stool_bed_chair_nest/chairs.dm b/code/game/objects/structures/stool_bed_chair_nest/chairs.dm index d471ba3840..e4c8479572 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/chairs.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/chairs.dm @@ -159,6 +159,20 @@ else unbuckle_mob() +/obj/structure/bed/chair/office/handle_buckled_mob_movement(atom/new_loc, direction, movetime) + for(var/A in buckled_mobs) + var/mob/living/occupant = A + occupant.buckled = null + occupant.Move(loc, direction, movetime) + occupant.buckled = src + if (occupant && (loc != occupant.loc)) + if (propelled) + for (var/mob/O in src.loc) + if (O != occupant) + Bump(O) + else + unbuckle_mob() + /obj/structure/bed/chair/office/Bump(atom/A) ..() if(!has_buckled_mobs()) return diff --git a/code/game/objects/structures/target_stake.dm b/code/game/objects/structures/target_stake.dm index 1e9c091ccb..7802e258ea 100644 --- a/code/game/objects/structures/target_stake.dm +++ b/code/game/objects/structures/target_stake.dm @@ -8,45 +8,45 @@ w_class = ITEMSIZE_HUGE var/obj/item/target/pinned_target // the current pinned target - Moved(atom/old_loc, direction, forced = FALSE) - . = ..() - // Move the pinned target along with the stake - if(pinned_target in view(3, src)) - pinned_target.forceMove(loc) +/obj/structure/target_stake/Moved(atom/old_loc, direction, forced = FALSE) + . = ..() + // Move the pinned target along with the stake + if(pinned_target in view(3, src)) + pinned_target.forceMove(loc) - else // Sanity check: if the pinned target can't be found in immediate view - pinned_target = null - density = 1 + else // Sanity check: if the pinned target can't be found in immediate view + pinned_target = null + density = 1 - attackby(obj/item/W as obj, mob/user as mob) - // Putting objects on the stake. Most importantly, targets - if(pinned_target) - return // get rid of that pinned target first! +/obj/structure/target_stake/attackby(obj/item/W as obj, mob/user as mob) + // Putting objects on the stake. Most importantly, targets + if(pinned_target) + return // get rid of that pinned target first! - if(istype(W, /obj/item/target)) - density = 0 - W.density = 1 - user.remove_from_mob(W) - W.loc = loc - W.layer = ABOVE_JUNK_LAYER - pinned_target = W - to_chat(user, "You slide the target into the stake.") - return + if(istype(W, /obj/item/target)) + density = 0 + W.density = 1 + user.remove_from_mob(W) + W.loc = loc + W.layer = ABOVE_JUNK_LAYER + pinned_target = W + to_chat(user, "You slide the target into the stake.") + return - attack_hand(mob/user as mob) - // taking pinned targets off! - if(pinned_target) - density = 1 - pinned_target.density = 0 - pinned_target.layer = OBJ_LAYER +/obj/structure/target_stake/attack_hand(mob/user as mob) + // taking pinned targets off! + if(pinned_target) + density = 1 + pinned_target.density = 0 + pinned_target.layer = OBJ_LAYER - pinned_target.loc = user.loc - if(ishuman(user)) - if(!user.get_active_hand()) - user.put_in_hands(pinned_target) - to_chat(user, "You take the target out of the stake.") - else - pinned_target.loc = get_turf(user) + pinned_target.loc = user.loc + if(ishuman(user)) + if(!user.get_active_hand()) + user.put_in_hands(pinned_target) to_chat(user, "You take the target out of the stake.") + else + pinned_target.loc = get_turf(user) + to_chat(user, "You take the target out of the stake.") - pinned_target = null + pinned_target = null diff --git a/code/modules/ai/interfaces.dm b/code/modules/ai/interfaces.dm index 74ad2eb1a4..798c94bc01 100644 --- a/code/modules/ai/interfaces.dm +++ b/code/modules/ai/interfaces.dm @@ -76,6 +76,7 @@ /mob/living/proc/IMove(turf/newloc, safety = TRUE) if(!checkMoveCooldown()) return MOVEMENT_ON_COOLDOWN +<<<<<<< HEAD // Check to make sure moving to newloc won't actually kill us. e.g. we're a slime and trying to walk onto water. if(istype(newloc)) @@ -94,9 +95,31 @@ var/delay_will_be = movement_delay() . = SelfMove(newloc, get_dir(loc,newloc), delay_will_be) ? MOVEMENT_SUCCESSFUL : MOVEMENT_FAILED +======= + + // Check to make sure moving to newloc won't actually kill us. e.g. we're a slime and trying to walk onto water. + if(istype(newloc)) + if(safety && !newloc.is_safe_to_enter(src)) + return MOVEMENT_FAILED + + // Move()ing to another tile successfully returns 32 because BYOND. Would rather deal with TRUE/FALSE-esque terms. + // Note that moving to the same tile will be 'successful'. + var/turf/old_T = get_turf(src) + + // An adjacency check to avoid mobs phasing diagonally past windows. + // This might be better in general movement code but I'm too scared to add it, and most things don't move diagonally anyways. + if(!old_T.Adjacent(newloc)) + return MOVEMENT_FAILED + + . = SelfMove(newloc) ? MOVEMENT_SUCCESSFUL : MOVEMENT_FAILED +>>>>>>> 6de7439... Merge pull request #7082 from VOREStation/aro-moverefactor if(. == MOVEMENT_SUCCESSFUL) set_dir(get_dir(old_T, newloc)) // Apply movement delay. // Player movement has more factors but its all in the client and fixing that would be its own project. +<<<<<<< HEAD setMoveCooldown(delay_will_be) +======= + setMoveCooldown(movement_delay()) +>>>>>>> 6de7439... Merge pull request #7082 from VOREStation/aro-moverefactor return \ No newline at end of file diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 554d873dd5..d8275da362 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -1,3 +1,4 @@ +<<<<<<< HEAD /mob/living/carbon/Initialize() . = ..() //setup reagent holders @@ -413,3 +414,408 @@ clear_alert("handcuffed") update_action_buttons() //some of our action buttons might be unusable when we're handcuffed. update_inv_handcuffed() +======= +/mob/living/carbon/Initialize() + . = ..() + //setup reagent holders + bloodstr = new/datum/reagents/metabolism/bloodstream(500, src) + ingested = new/datum/reagents/metabolism/ingested(500, src) + touching = new/datum/reagents/metabolism/touch(500, src) + reagents = bloodstr + if (!default_language && species_language) + default_language = GLOB.all_languages[species_language] + +/mob/living/carbon/Life() + ..() + + handle_viruses() + + // Increase germ_level regularly + if(germ_level < GERM_LEVEL_AMBIENT && prob(30)) //if you're just standing there, you shouldn't get more germs beyond an ambient level + germ_level++ + +/mob/living/carbon/Destroy() + qdel(ingested) + qdel(touching) + // We don't qdel(bloodstr) because it's the same as qdel(reagents) + for(var/guts in internal_organs) + qdel(guts) + for(var/food in stomach_contents) + qdel(food) + return ..() + +/mob/living/carbon/rejuvenate() + bloodstr.clear_reagents() + ingested.clear_reagents() + touching.clear_reagents() + ..() + +/mob/living/carbon/Moved(atom/old_loc, direction, forced = FALSE) + . = ..() + if(src.nutrition && src.stat != 2) + adjust_nutrition(-DEFAULT_HUNGER_FACTOR / 10) + if(src.m_intent == "run") + adjust_nutrition(-DEFAULT_HUNGER_FACTOR / 10) + + if((FAT in src.mutations) && src.m_intent == "run" && src.bodytemperature <= 360) + src.bodytemperature += 2 + + // Moving around increases germ_level faster + if(germ_level < GERM_LEVEL_MOVE_CAP && prob(8)) + germ_level++ + +/mob/living/carbon/relaymove(var/mob/living/user, direction) + if((user in src.stomach_contents) && istype(user)) + if(user.last_special <= world.time) + user.last_special = world.time + 50 + src.visible_message("You hear something rumbling inside [src]'s stomach...") + var/obj/item/I = user.get_active_hand() + if(I && I.force) + var/d = rand(round(I.force / 4), I.force) + if(istype(src, /mob/living/carbon/human)) + var/mob/living/carbon/human/H = src + var/obj/item/organ/external/organ = H.get_organ(BP_TORSO) + if (istype(organ)) + if(organ.take_damage(d, 0)) + H.UpdateDamageIcon() + H.updatehealth() + else + src.take_organ_damage(d) + user.visible_message("[user] attacks [src]'s stomach wall with the [I.name]!") + playsound(user.loc, 'sound/effects/attackblob.ogg', 50, 1) + + if(prob(src.getBruteLoss() - 50)) + for(var/atom/movable/A in stomach_contents) + A.loc = loc + stomach_contents.Remove(A) + src.gib() + +/mob/living/carbon/gib() + for(var/mob/M in src) + if(M in src.stomach_contents) + src.stomach_contents.Remove(M) + M.loc = src.loc + for(var/mob/N in viewers(src, null)) + if(N.client) + N.show_message(text("[M] bursts out of [src]!"), 2) + ..() + +/mob/living/carbon/attack_hand(mob/M as mob) + if(!istype(M, /mob/living/carbon)) return + if (ishuman(M)) + var/mob/living/carbon/human/H = M + var/obj/item/organ/external/temp = H.organs_by_name["r_hand"] + if (H.hand) + temp = H.organs_by_name["l_hand"] + if(temp && !temp.is_usable()) + to_chat(H, "You can't use your [temp.name]") + return + + return + +/mob/living/carbon/electrocute_act(var/shock_damage, var/obj/source, var/siemens_coeff = 1.0, var/def_zone = null, var/stun = 1) + if(status_flags & GODMODE) return 0 //godmode + if(def_zone == "l_hand" || def_zone == "r_hand") //Diona (And any other potential plant people) hands don't get shocked. + if(species.flags & IS_PLANT) + return 0 + shock_damage *= siemens_coeff + if (shock_damage<1) + return 0 + + src.apply_damage(0.2 * shock_damage, BURN, def_zone, used_weapon="Electrocution") //shock the target organ + src.apply_damage(0.4 * shock_damage, BURN, BP_TORSO, used_weapon="Electrocution") //shock the torso more + src.apply_damage(0.2 * shock_damage, BURN, null, used_weapon="Electrocution") //shock a random part! + src.apply_damage(0.2 * shock_damage, BURN, null, used_weapon="Electrocution") //shock a random part! + + playsound(loc, "sparks", 50, 1, -1) + if (shock_damage > 15) + src.visible_message( + "[src] was electrocuted[source ? " by the [source]" : ""]!", \ + "You feel a powerful shock course through your body!", \ + "You hear a heavy electrical crack." \ + ) + else + src.visible_message( + "[src] was shocked[source ? " by the [source]" : ""].", \ + "You feel a shock course through your body.", \ + "You hear a zapping sound." \ + ) + + if(stun) + switch(shock_damage) + if(16 to 20) + Stun(2) + if(21 to 25) + Weaken(2) + if(26 to 30) + Weaken(5) + if(31 to INFINITY) + Weaken(10) //This should work for now, more is really silly and makes you lay there forever + + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread + s.set_up(5, 1, loc) + s.start() + + return shock_damage + +/mob/living/carbon/proc/help_shake_act(mob/living/carbon/M) + if (src.health >= config.health_threshold_crit) + if(src == M && istype(src, /mob/living/carbon/human)) + var/mob/living/carbon/human/H = src + var/datum/gender/T = gender_datums[H.get_visible_gender()] + src.visible_message( \ + "[src] examines [T.himself].", \ + "You check yourself for injuries." \ + ) + + for(var/obj/item/organ/external/org in H.organs) + var/list/status = list() + var/brutedamage = org.brute_dam + var/burndamage = org.burn_dam + /* + if(halloss > 0) //Makes halloss show up as actual wounds on self examine. + if(prob(30)) + brutedamage += halloss + if(prob(30)) + burndamage += halloss + */ + switch(brutedamage) + if(1 to 20) + status += "bruised" + if(20 to 40) + status += "wounded" + if(40 to INFINITY) + status += "mangled" + + switch(burndamage) + if(1 to 10) + status += "numb" + if(10 to 40) + status += "blistered" + if(40 to INFINITY) + status += "peeling away" + + if(org.is_stump()) + status += "MISSING" + if(org.status & ORGAN_MUTATED) + status += "weirdly shapen" + if(org.dislocated == 2) + status += "dislocated" + if(org.status & ORGAN_BROKEN) + status += "hurts when touched" + if(org.status & ORGAN_DEAD) + status += "is bruised and necrotic" + if(!org.is_usable() || org.is_dislocated()) + status += "dangling uselessly" + if(status.len) + src.show_message("My [org.name] is [english_list(status)].",1) + else + src.show_message("My [org.name] is OK.",1) + + if((SKELETON in H.mutations) && (!H.w_uniform) && (!H.wear_suit)) + H.play_xylophone() + else if (on_fire) + playsound(src.loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) + if (M.on_fire) + M.visible_message("[M] tries to pat out [src]'s flames, but to no avail!", + "You try to pat out [src]'s flames, but to no avail! Put yourself out first!") + else + M.visible_message("[M] tries to pat out [src]'s flames!", + "You try to pat out [src]'s flames! Hot!") + if(do_mob(M, src, 15)) + src.adjust_fire_stacks(-0.5) + if (prob(10) && (M.fire_stacks <= 0)) + M.adjust_fire_stacks(1) + M.IgniteMob() + if (M.on_fire) + M.visible_message("The fire spreads from [src] to [M]!", + "The fire spreads to you as well!") + else + src.adjust_fire_stacks(-0.5) //Less effective than stop, drop, and roll - also accounting for the fact that it takes half as long. + if (src.fire_stacks <= 0) + M.visible_message("[M] successfully pats out [src]'s flames.", + "You successfully pat out [src]'s flames.") + src.ExtinguishMob() + src.fire_stacks = 0 + else + if (istype(src,/mob/living/carbon/human) && src:w_uniform) + var/mob/living/carbon/human/H = src + H.w_uniform.add_fingerprint(M) + + var/show_ssd + var/mob/living/carbon/human/H = src + var/datum/gender/T = gender_datums[H.get_visible_gender()] // make sure to cast to human before using get_gender() or get_visible_gender()! + if(istype(H)) show_ssd = H.species.show_ssd + if(show_ssd && !client && !teleop) + M.visible_message("[M] shakes [src] trying to wake [T.him] up!", \ + "You shake [src], but [T.he] [T.does] not respond... Maybe [T.he] [T.has] S.S.D?") + else if(lying || src.sleeping) + src.sleeping = max(0,src.sleeping-5) + if(src.sleeping == 0) + src.resting = 0 + M.visible_message("[M] shakes [src] trying to wake [T.him] up!", \ + "You shake [src] trying to wake [T.him] up!") + else + var/mob/living/carbon/human/hugger = M + var/datum/gender/TM = gender_datums[M.get_visible_gender()] + if(M.resting == 1) //Are they resting on the ground? + M.visible_message("[M] grabs onto [src] and pulls [TM.himself] up", \ + "You grip onto [src] and pull yourself up off the ground!") + if(M.fire_stacks >= (src.fire_stacks + 3)) //Fire checks. + src.adjust_fire_stacks(1) + M.adjust_fire_stacks(-1) + if(M.on_fire) + src.IgniteMob() + if(do_after(M, 0.5 SECONDS)) //.5 second delay. Makes it a bit stronger than just typing rest. + M.resting = 0 //Hoist yourself up up off the ground. No para/stunned/weakened removal. + else if(istype(hugger)) + hugger.species.hug(hugger,src) + else + M.visible_message("[M] hugs [src] to make [T.him] feel better!", \ + "You hug [src] to make [T.him] feel better!") + if(M.fire_stacks >= (src.fire_stacks + 3)) + src.adjust_fire_stacks(1) + M.adjust_fire_stacks(-1) + if(M.on_fire) + src.IgniteMob() + AdjustParalysis(-3) + AdjustStunned(-3) + AdjustWeakened(-3) + + playsound(src.loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) + +/mob/living/carbon/proc/eyecheck() + return 0 + +/mob/living/carbon/flash_eyes(intensity = FLASH_PROTECTION_MODERATE, override_blindness_check = FALSE, affect_silicon = FALSE, visual = FALSE, type = /obj/screen/fullscreen/flash) + if(eyecheck() < intensity || override_blindness_check) + return ..() + +// ++++ROCKDTBEN++++ MOB PROCS -- Ask me before touching. +// Stop! ... Hammertime! ~Carn + +/mob/living/carbon/proc/getDNA() + return dna + +/mob/living/carbon/proc/setDNA(var/datum/dna/newDNA) + dna = newDNA + +// ++++ROCKDTBEN++++ MOB PROCS //END + +/mob/living/carbon/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume) + ..() + var/temp_inc = max(min(BODYTEMP_HEATING_MAX*(1-get_heat_protection()), exposed_temperature - bodytemperature), 0) + bodytemperature += temp_inc + +/mob/living/carbon/can_use_hands() + if(handcuffed) + return 0 + if(buckled && istype(buckled, /obj/structure/bed/nest)) // buckling does not restrict hands + return 0 + return 1 + +/mob/living/carbon/restrained() + if (handcuffed) + return 1 + return + +/mob/living/carbon/u_equip(obj/item/W as obj) + if(!W) return 0 + + else if (W == handcuffed) + handcuffed = null + update_inv_handcuffed() + if(buckled && buckled.buckle_require_restraints) + buckled.unbuckle_mob() + + else if (W == legcuffed) + legcuffed = null + update_inv_legcuffed() + else + ..() + + return + +//generates realistic-ish pulse output based on preset levels +/mob/living/carbon/proc/get_pulse(var/method) //method 0 is for hands, 1 is for machines, more accurate + var/temp = 0 //see setup.dm:694 + switch(src.pulse) + if(PULSE_NONE) + return "0" + if(PULSE_SLOW) + temp = rand(40, 60) + return num2text(method ? temp : temp + rand(-10, 10)) + if(PULSE_NORM) + temp = rand(60, 90) + return num2text(method ? temp : temp + rand(-10, 10)) + if(PULSE_FAST) + temp = rand(90, 120) + return num2text(method ? temp : temp + rand(-10, 10)) + if(PULSE_2FAST) + temp = rand(120, 160) + return num2text(method ? temp : temp + rand(-10, 10)) + if(PULSE_THREADY) + return method ? ">250" : "extremely weak and fast, patient's artery feels like a thread" +// output for machines^ ^^^^^^^output for people^^^^^^^^^ + +/mob/living/carbon/verb/mob_sleep() + set name = "Sleep" + set category = "IC" + + if(usr.sleeping) + to_chat(usr, "You are already sleeping") + return + if(alert(src,"You sure you want to sleep for a while?","Sleep","Yes","No") == "Yes") + usr.sleeping = 20 //Short nap + +/mob/living/carbon/Bump(atom/A) + if(now_pushing) + return + ..() + if(istype(A, /mob/living/carbon) && prob(10)) + spread_disease_to(A, "Contact") + +/mob/living/carbon/cannot_use_vents() + return + +/mob/living/carbon/slip(var/slipped_on,stun_duration=8) + if(buckled) + return 0 + stop_pulling() + to_chat(src, "You slipped on [slipped_on]!") + playsound(src.loc, 'sound/misc/slip.ogg', 50, 1, -3) + Weaken(FLOOR(stun_duration/2, 1)) + return 1 + +/mob/living/carbon/proc/add_chemical_effect(var/effect, var/magnitude = 1) + if(effect in chem_effects) + chem_effects[effect] += magnitude + else + chem_effects[effect] = magnitude + +/mob/living/carbon/get_default_language() + if(default_language) + if(can_speak(default_language)) + return default_language + else + return GLOB.all_languages[LANGUAGE_GIBBERISH] + + if(!species) + return null + + return species.default_language ? GLOB.all_languages[species.default_language] : null + +/mob/living/carbon/proc/should_have_organ(var/organ_check) + return 0 + +/mob/living/carbon/can_feel_pain(var/check_organ) + if(isSynthetic()) + return 0 + return !(species.flags & NO_PAIN) + +/mob/living/carbon/needs_to_breathe() + if(does_not_breathe) + return FALSE + return ..() + +>>>>>>> 6de7439... Merge pull request #7082 from VOREStation/aro-moverefactor diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 0af9f90225..9ac2827e31 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -1658,7 +1658,11 @@ var/obj/item/organ/external/e = organs_by_name[name] if(!e) continue +<<<<<<< HEAD if((e.status & ORGAN_BROKEN && (!e.splinted || (e.splinted && e.splinted in e.contents && prob(30))) || e.status & ORGAN_BLEEDING) && (getBruteLoss() + getFireLoss() >= 100)) +======= + if((e.status & ORGAN_BROKEN && (!e.splinted || (e.splinted in e.contents && prob(30))) || e.status & ORGAN_BLEEDING) && (getBruteLoss() + getFireLoss() >= 100)) +>>>>>>> 6de7439... Merge pull request #7082 from VOREStation/aro-moverefactor return 1 else return ..() @@ -1679,9 +1683,13 @@ if(istype(loc, /turf/simulated)) var/turf/T = loc T.add_blood(src) +<<<<<<< HEAD . = ..() /mob/living/carbon/human/reduce_cuff_time() if(istype(gloves, /obj/item/clothing/gloves/gauntlets/rig)) return 2 return ..() +======= + . = ..() +>>>>>>> 6de7439... Merge pull request #7082 from VOREStation/aro-moverefactor diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm index cd2d368d6d..2ffd9c6195 100644 --- a/code/modules/mob/living/carbon/human/human_movement.dm +++ b/code/modules/mob/living/carbon/human/human_movement.dm @@ -2,10 +2,19 @@ /mob/living/carbon/human/movement_delay(oldloc, direct) +<<<<<<< HEAD . = 0 if (istype(loc, /turf/space)) return ..() - 1 +======= + . = ..() + + if(species.slowdown) + . = species.slowdown + + if (istype(loc, /turf/space)) return -1 // It's hard to be slowed down in space by... anything +>>>>>>> 6de7439... Merge pull request #7082 from VOREStation/aro-moverefactor if(species.slowdown) . += species.slowdown @@ -25,6 +34,7 @@ if(can_feel_pain()) if(halloss >= 10) . += (halloss / 10) //halloss shouldn't slow you down if you can't even feel it +<<<<<<< HEAD var/hungry = (500 - nutrition) / 5 //VOREStation Edit - Fixed 500 here instead of our huge MAX_NUTRITION if (hungry >= 70) . += hungry/50 @@ -45,6 +55,10 @@ if(H.weight > L.weight) . += 1 //VOREstation end +======= + var/hungry = (MAX_NUTRITION - nutrition) / 5 + if (hungry >= 70) . += hungry/50 +>>>>>>> 6de7439... Merge pull request #7082 from VOREStation/aro-moverefactor if(istype(buckled, /obj/structure/bed/chair/wheelchair)) for(var/organ_name in list(BP_L_HAND, BP_R_HAND, BP_L_ARM, BP_R_ARM)) @@ -112,12 +126,15 @@ . -= chem_effects[CE_SPEEDBOOST] // give 'em a buff on top. . = max(HUMAN_LOWEST_SLOWDOWN, . + config.human_delay) // Minimum return should be the same as force_max_speed +<<<<<<< HEAD . += ..() /mob/living/carbon/human/Moved() . = ..() if(embedded_flag) handle_embedded_objects() //Moving with objects stuck in you can cause bad times. +======= +>>>>>>> 6de7439... Merge pull request #7082 from VOREStation/aro-moverefactor // This calculates the amount of slowdown to receive from items worn. This does NOT include species modifiers. // It is in a seperate place to avoid an infinite loop situation with dragging mobs dragging each other. diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 316bb2be88..a017b0457d 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -785,6 +785,11 @@ default behaviour is: to_chat(usr, "OOC Metadata is not supported by this server!") //VOREStation Edit End - Making it so SSD people have prefs with fallback to original style. +<<<<<<< HEAD +======= + return + +>>>>>>> 6de7439... Merge pull request #7082 from VOREStation/aro-moverefactor // Almost all of this handles pulling movables behind us /mob/living/Move(atom/newloc, direct, movetime) if(buckled && buckled.loc != newloc) //not updating position @@ -797,9 +802,14 @@ default behaviour is: // Prior to our move it's already too far away if(pullee && get_dist(src, pullee) > 1) stop_pulling() +<<<<<<< HEAD // Shenanigans! if(pullee && !isturf(pullee.loc) && pullee.loc != loc) log_debug("[src]'s pull on [pullee] was broken despite [pullee] being in [pullee.loc]. Pull stopped manually.") +======= + // Shenanigans! Pullee closed into locker for eg. + if(pullee && !isturf(pullee.loc) && pullee.loc != loc) +>>>>>>> 6de7439... Merge pull request #7082 from VOREStation/aro-moverefactor stop_pulling() // Can't pull with no hands if(restrained()) @@ -819,11 +829,19 @@ default behaviour is: if(lying && !buckled && pull_damage() && A.has_gravity && (prob(getBruteLoss() * 200 / maxHealth))) adjustBruteLoss(2) visible_message("\The [src]'s [isSynthetic() ? "state" : "wounds"] worsen terribly from being dragged!") +<<<<<<< HEAD /mob/living/Moved(var/atom/oldloc, direct, forced, movetime) . = ..() handle_footstep(loc) +======= + +/mob/living/Moved(var/atom/oldloc, direct, forced, movetime) + . = ..() + handle_footstep(loc) + +>>>>>>> 6de7439... Merge pull request #7082 from VOREStation/aro-moverefactor if(pulling) // we were pulling a thing and didn't lose it during our move. if(pulling.anchored || !isturf(pulling.loc)) stop_pulling() @@ -1235,7 +1253,11 @@ default behaviour is: //actually throw it! src.visible_message("[src] has thrown [item].") +<<<<<<< HEAD if((istype(src.loc, /turf/space)) || (src.lastarea?.has_gravity == 0)) +======= + if((isspace(src.loc)) || (src.lastarea?.has_gravity == 0)) +>>>>>>> 6de7439... Merge pull request #7082 from VOREStation/aro-moverefactor src.inertia_dir = get_dir(target, src) step(src, inertia_dir) diff --git a/code/modules/mob/living/living_movement.dm b/code/modules/mob/living/living_movement.dm index 8256fe29a0..9407a7cb18 100644 --- a/code/modules/mob/living/living_movement.dm +++ b/code/modules/mob/living/living_movement.dm @@ -8,7 +8,10 @@ return !P.can_hit_target(src, P.permutated, src == P.original, TRUE) return (!mover.density || !density || lying) -/mob/living/SelfMove(turf/n, direct) +/mob/CanZASPass(turf/T, is_zone) + return ATMOS_PASS_YES + +/mob/living/SelfMove(turf/n, direct, movetime) // If on walk intent, don't willingly step into hazardous tiles. // Unless the walker is confused. if(m_intent == "walk" && confused <= 0) diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 63267c6e09..36293e8bad 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -943,6 +943,13 @@ update_canmove() /mob/living/silicon/robot/mode() +<<<<<<< HEAD +======= + set name = "Activate Held Object" + set category = "IC" + set src = usr + +>>>>>>> 6de7439... Merge pull request #7082 from VOREStation/aro-moverefactor if(!checkClickCooldown()) return diff --git a/code/modules/mob/living/silicon/robot/robot_movement.dm b/code/modules/mob/living/silicon/robot/robot_movement.dm index 4b1c533f21..f74211b7e4 100644 --- a/code/modules/mob/living/silicon/robot/robot_movement.dm +++ b/code/modules/mob/living/silicon/robot/robot_movement.dm @@ -15,6 +15,7 @@ //No longer needed, but I'll leave it here incase we plan to re-use it. /mob/living/silicon/robot/movement_delay() +<<<<<<< HEAD . = speed if(module_active && istype(module_active,/obj/item/borg/combat/mobility)) @@ -23,9 +24,19 @@ . += config.robot_delay . += ..() +======= + . = ..() + + . += speed + + if(module_active && istype(module_active,/obj/item/borg/combat/mobility)) + . -= 3 + + . += config.robot_delay +>>>>>>> 6de7439... Merge pull request #7082 from VOREStation/aro-moverefactor // NEW: Use power while moving. -/mob/living/silicon/robot/SelfMove(turf/n, direct) +/mob/living/silicon/robot/SelfMove(turf/n, direct, movetime) if (!is_component_functioning("actuator")) return 0 diff --git a/code/modules/mob/living/simple_mob/simple_mob.dm b/code/modules/mob/living/simple_mob/simple_mob.dm index 82d16472c1..42366d7bd9 100644 --- a/code/modules/mob/living/simple_mob/simple_mob.dm +++ b/code/modules/mob/living/simple_mob/simple_mob.dm @@ -193,7 +193,7 @@ . = ..() to_chat(src,"You are \the [src]. [player_msg]") -/mob/living/simple_mob/SelfMove(turf/n, direct) +/mob/living/simple_mob/SelfMove(turf/n, direct, movetime) var/turf/old_turf = get_turf(src) var/old_dir = dir . = ..() @@ -211,7 +211,13 @@ return ..() */ /mob/living/simple_mob/movement_delay() +<<<<<<< HEAD . = movement_cooldown +======= + . = ..() + + . += movement_cooldown +>>>>>>> 6de7439... Merge pull request #7082 from VOREStation/aro-moverefactor if(force_max_speed) return -3 @@ -237,10 +243,15 @@ if(m_intent == "walk") . *= 1.5 +<<<<<<< HEAD . += config.animal_delay . += ..() +======= + + . += config.animal_delay +>>>>>>> 6de7439... Merge pull request #7082 from VOREStation/aro-moverefactor /mob/living/simple_mob/Stat() diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 4d3187bdd2..a3a8b7ab16 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -40,7 +40,10 @@ else living_mob_list += src lastarea = get_area(src) +<<<<<<< HEAD hook_vr("mob_new",list(src)) //VOREStation Code +======= +>>>>>>> 6de7439... Merge pull request #7082 from VOREStation/aro-moverefactor update_transform() // Some mobs may start bigger or smaller than normal. return ..() diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index 3d0f88e7a7..0948c119dc 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -122,6 +122,7 @@ // Nothing to do in nullspace if(!my_mob.loc) return +<<<<<<< HEAD // Used many times below, faster reference. var/atom/loc = my_mob.loc @@ -130,6 +131,16 @@ if(my_mob.control_object) Move_object(direct) +======= + + // Used many times below, faster reference. + var/atom/loc = my_mob.loc + + // We're controlling an object which is SOMEHOW DIFFERENT FROM AN EYE?? + if(my_mob.control_object) + Move_object(direct) + +>>>>>>> 6de7439... Merge pull request #7082 from VOREStation/aro-moverefactor // Ghosty mob movement if(my_mob.incorporeal_move && isobserver(my_mob)) Process_Incorpmove(direct) @@ -170,12 +181,21 @@ */ if(Process_Grab()) +<<<<<<< HEAD return // Can't move if(!my_mob.canmove) return +======= + return + + // Can't move + if(!my_mob.canmove) + return + +>>>>>>> 6de7439... Merge pull request #7082 from VOREStation/aro-moverefactor // Relaymove could handle it if(my_mob.machine) var/result = my_mob.machine.relaymove(my_mob, direct) diff --git a/code/modules/vehicles/vehicle.dm b/code/modules/vehicles/vehicle.dm index ed7bdc9a2a..c25b9bad2f 100644 --- a/code/modules/vehicles/vehicle.dm +++ b/code/modules/vehicles/vehicle.dm @@ -42,8 +42,11 @@ var/load_offset_y = 0 //pixel_y offset for item overlay var/mob_offset_y = 0 //pixel_y offset for mob overlay +<<<<<<< HEAD //var/datum/riding/riding_datum = null //VOREStation Edit - Moved to movables. +======= +>>>>>>> 6de7439... Merge pull request #7082 from VOREStation/aro-moverefactor //------------------------------------------- // Standard procs //------------------------------------------- From a23605c9fd39b7123218d56250f7aaaeaefd929c Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Fri, 15 May 2020 14:17:34 -0400 Subject: [PATCH 09/37] Move cyberpunk detective gear to be suits, add long version --- code/datums/outfits/jobs/security.dm | 4 ++-- .../loadout/loadout_suit_vr.dm | 12 ++++++++++++ .../loadout/loadout_uniform_vr.dm | 6 ------ .../clothing/suits/miscellaneous_vr.dm | 15 +++++++++++++++ .../clothing/under/jobs/security_vr.dm | 6 ------ icons/mob/suit_vr.dmi | Bin 46478 -> 48087 bytes icons/mob/uniform_vr.dmi | Bin 14334 -> 14536 bytes icons/obj/clothing/suits_vr.dmi | Bin 13521 -> 14182 bytes icons/obj/clothing/uniforms_vr.dmi | Bin 4975 -> 4450 bytes 9 files changed, 29 insertions(+), 14 deletions(-) diff --git a/code/datums/outfits/jobs/security.dm b/code/datums/outfits/jobs/security.dm index 814cda5054..a5e058ca9c 100644 --- a/code/datums/outfits/jobs/security.dm +++ b/code/datums/outfits/jobs/security.dm @@ -41,8 +41,8 @@ /decl/hierarchy/outfit/job/security/detective/forensic name = OUTFIT_JOB_NAME("Forensic technician") head = /obj/item/clothing/head/helmet/detective_alt - suit = null - uniform = /obj/item/clothing/under/detective_alt + suit = /datum/gear/uniform/detective_alt2 + uniform = /obj/item/clothing/under/det //VOREStation Edit End /decl/hierarchy/outfit/job/security/officer diff --git a/code/modules/client/preference_setup/loadout/loadout_suit_vr.dm b/code/modules/client/preference_setup/loadout/loadout_suit_vr.dm index ecba5dd228..35ce55e1fa 100644 --- a/code/modules/client/preference_setup/loadout/loadout_suit_vr.dm +++ b/code/modules/client/preference_setup/loadout/loadout_suit_vr.dm @@ -38,3 +38,15 @@ display_name = "Colorful poncho" description = "A mexican looking poncho. It look like it fits wolf taurs as well." path = /obj/item/clothing/suit/poncho + +//Detective alternative +/datum/gear/uniform/detective_alt + display_name = "sleek modern coat, detective" + path = /obj/item/clothing/suit/storage/det_trench/alt + allowed_roles = list("Head of Security", "Detective") + +//Detective alternative +/datum/gear/uniform/detective_alt2 + display_name = "sleek modern coat (long), detective" + path = /obj/item/clothing/suit/storage/det_trench/alt2 + allowed_roles = list("Head of Security", "Detective") diff --git a/code/modules/client/preference_setup/loadout/loadout_uniform_vr.dm b/code/modules/client/preference_setup/loadout/loadout_uniform_vr.dm index b56d5d62e3..282ba1b267 100644 --- a/code/modules/client/preference_setup/loadout/loadout_uniform_vr.dm +++ b/code/modules/client/preference_setup/loadout/loadout_uniform_vr.dm @@ -174,12 +174,6 @@ Swimsuits display_name = "Varmacorp nanovest" path = /obj/item/clothing/under/fluff/v_nanovest -//Detective alternative -/datum/gear/uniform/detective_alt - display_name = "sleek modern coat, detective" - path = /obj/item/clothing/under/detective_alt - allowed_roles = list("Head of Security", "Detective") - /* Qipao */ diff --git a/code/modules/clothing/suits/miscellaneous_vr.dm b/code/modules/clothing/suits/miscellaneous_vr.dm index 097407f0e8..dc181579b9 100644 --- a/code/modules/clothing/suits/miscellaneous_vr.dm +++ b/code/modules/clothing/suits/miscellaneous_vr.dm @@ -71,3 +71,18 @@ icon_state = "whitedress1" flags_inv = HIDESHOES +/obj/item/clothing/suit/storage/det_trench/alt + name = "sleek modern coat" + desc = "A sleek overcoat made of neo-laminated fabric. Has a reasonably sized pocket on the inside." + icon = 'icons/obj/clothing/suits_vr.dmi' + icon_override = 'icons/mob/suit_vr.dmi' + icon_state = "cyberpunksleek" + item_state = "cyberpunksleek" + +/obj/item/clothing/suit/storage/det_trench/alt2 + name = "sleek modern coat (long)" + desc = "A sleek long overcoat made of neo-laminated fabric. Has a reasonably sized pocket on the inside." + icon = 'icons/obj/clothing/suits_vr.dmi' + icon_override = 'icons/mob/suit_vr.dmi' + icon_state = "cyberpunksleek_long" + item_state = "cyberpunksleek_long" diff --git a/code/modules/clothing/under/jobs/security_vr.dm b/code/modules/clothing/under/jobs/security_vr.dm index 72d4ebfb45..e69de29bb2 100644 --- a/code/modules/clothing/under/jobs/security_vr.dm +++ b/code/modules/clothing/under/jobs/security_vr.dm @@ -1,6 +0,0 @@ -/obj/item/clothing/under/detective_alt - desc = "sleek modern coat" - icon = 'icons/obj/clothing/uniforms_vr.dmi' - icon_override = 'icons/mob/uniform_vr.dmi' - icon_state = "cyberpunksleek" - item_state = "cyberpunksleek" diff --git a/icons/mob/suit_vr.dmi b/icons/mob/suit_vr.dmi index 4b441abed9f82e2d3a6a30bdb2253f70a7b53240..017c99b4acbffbd229d96a801a89b7af936a227c 100644 GIT binary patch delta 10123 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 ZLuDuV`3%ux_%C*4P06j*N%; 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 hn4`#)hv+2#NM literal 14334 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 Cj-|{1 diff --git a/icons/obj/clothing/suits_vr.dmi b/icons/obj/clothing/suits_vr.dmi index 621136ba1847c1cadfa8290885ce3a27f41a7789..af6e271aea28715da951d5eb4964df6f55af3b14 100644 GIT binary patch literal 14182 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 literal 13521 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 I=F{i@1w6|Z8~^|S diff --git a/icons/obj/clothing/uniforms_vr.dmi b/icons/obj/clothing/uniforms_vr.dmi index 2f3ea7266b878e38840f759e09b382b03456f5ba..c399246a0bb891996b0190e32effa47a640b67e6 100644 GIT binary patch literal 4450 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 literal 4975 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 S%Ru;p2He*)(5SxW5dL2bhM;T! From 3057230bb28886fe1a79ac5fd8ffd0f16837558b Mon Sep 17 00:00:00 2001 From: Atermonera Date: Fri, 15 May 2020 13:32:13 -0700 Subject: [PATCH 10/37] Fixes #649 (#7114) --- code/modules/admin/admin_tools.dm | 21 ++++++++++++--------- code/modules/admin/verbs/randomverbs.dm | 2 +- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/code/modules/admin/admin_tools.dm b/code/modules/admin/admin_tools.dm index 376aa2da44..8b4e1ae44c 100644 --- a/code/modules/admin/admin_tools.dm +++ b/code/modules/admin/admin_tools.dm @@ -9,18 +9,18 @@ if(M.mind) dat += "Current Antag?: [(M.mind.special_role)?"Yes":"No"]
" dat += "
Note: This is arranged from earliest to latest.

" - + if(!isemptylist(M.attack_log)) - dat += "

" + dat += "
" for(var/l in M.attack_log) dat += "[l]
" - + dat += "
" - + else dat += "No attack logs found for [M]." - + var/datum/browser/popup = new(usr, "admin_attack_log", "[src]", 650, 650, src) popup.set_content(jointext(dat,null)) popup.open() @@ -43,13 +43,13 @@ if(!isemptylist(M.dialogue_log)) dat += "
" - + for(var/d in M.dialogue_log) dat += "[d]
" - + dat += "
" else - dat += "No dialogue logs found for [M]." + dat += "No dialogue logs found for [M]." var/datum/browser/popup = new(usr, "admin_dialogue_log", "[src]", 650, 650, src) popup.set_content(jointext(dat,null)) popup.open() @@ -58,5 +58,8 @@ feedback_add_details("admin_verb","PDL") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - + +// Used to get `atom/O as obj|mob|turf in view()` to match against strings containing apostrophes immediately after substrings that match to other objects. Somehow. - Ater +/proc/admin_atom_validate(atom/A) + return view() \ No newline at end of file diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index ace7d48e91..d85a88cbef 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -616,7 +616,7 @@ Traitors and the like can also be revived with the previous role mostly intact. message_admins("[key_name_admin(src)] has created a command report", 1) feedback_add_details("admin_verb","CCR") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! -/client/proc/cmd_admin_delete(atom/O as obj|mob|turf in view()) +/client/proc/cmd_admin_delete(atom/O as obj|mob|turf in admin_atom_validate(O)) // I don't understand precisely how this fixes the string matching against a substring, but it does - Ater set category = "Admin" set name = "Delete" From c8e5abc937b630bb91532534fa2ae6030df66acc Mon Sep 17 00:00:00 2001 From: Atermonera Date: Fri, 15 May 2020 13:34:31 -0700 Subject: [PATCH 12/37] Random item spawners qdel properly on init without using sleep (#7134) --- code/game/objects/random/_random.dm | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/code/game/objects/random/_random.dm b/code/game/objects/random/_random.dm index b559495eb5..8b616c83f5 100644 --- a/code/game/objects/random/_random.dm +++ b/code/game/objects/random/_random.dm @@ -11,15 +11,7 @@ . = ..() if (!prob(spawn_nothing_percentage)) spawn_item() - Random_SafeDestroy(0) - -// This function should, theoretically, guarantee the deletion of the random object. Not all of them destroy themselves for some reason, especially if created through non-standard means. -/obj/random/proc/Random_SafeDestroy(var/recursion_level) - set waitfor = FALSE - sleep(30) - qdel(src) - if(src && recursion_level < 5) - Random_SafeDestroy(recursion_level + 1) + return INITIALIZE_HINT_QDEL // this function should return a specific item to spawn /obj/random/proc/item_to_spawn() From 373a5c7223660f5c280a664e729a9245baf0ef72 Mon Sep 17 00:00:00 2001 From: Atermonera Date: Fri, 15 May 2020 13:36:13 -0700 Subject: [PATCH 14/37] changelog (#7161) --- html/changelog.html | 33 ++++++++++++++ html/changelogs/.all_changelog.yml | 45 +++++++++++++++++++ .../Layne - Promethean Language.yml | 5 --- .../atermonera_multilingual_pref.yml | 11 ----- html/changelogs/atlantiscze-dumpsterdive.yml | 6 --- html/changelogs/atlantiscze-hardsuit.yml | 6 --- html/changelogs/atlantiscze-power.yml | 10 ----- html/changelogs/atlantiscze-sm.yml | 6 --- html/changelogs/mechoid-newhorizon.yml | 44 ------------------ 9 files changed, 78 insertions(+), 88 deletions(-) delete mode 100644 html/changelogs/Layne - Promethean Language.yml delete mode 100644 html/changelogs/atermonera_multilingual_pref.yml delete mode 100644 html/changelogs/atlantiscze-dumpsterdive.yml delete mode 100644 html/changelogs/atlantiscze-hardsuit.yml delete mode 100644 html/changelogs/atlantiscze-power.yml delete mode 100644 html/changelogs/atlantiscze-sm.yml delete mode 100644 html/changelogs/mechoid-newhorizon.yml diff --git a/html/changelog.html b/html/changelog.html index 6045c2ca04..cc0d540a75 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -53,6 +53,39 @@ -->
+

13 May 2020

+

Atermonera updated:

+
    +
  • Added a preference to control multilingual parsing behaviour, with a few different modes. Should hopefully be less punishing to people who stutter and use hyphens as a language key.
  • +
  • The examine mode preference should now persist across reconnections during a single round, but if the server is fully restarted it still appears to reset. This issue is also present for the multilingual preference, and I'm still looking into it. Savefiles are cryptic.
  • +
+

Layne updated:

+
    +
  • Added Promethean language.
  • +
+

Mechoid updated:

+
    +
  • Adds more interactions with animals, like shearing and taming.
  • +
  • New PoIs
  • +
  • Thermal poncho attachment, has minor slowdown, but gives thermal protection to the armor it is attached to.
  • +
  • Mercenaries now drop their guns again. Most likely to be broken, however they can be repaired. Examining when adjacent will allow you to inspect the gun for what is needed.
  • +
  • Mercenary Snipers now exist. They will telegraph their shots approximately 2 seconds in advance, and can fire at 14 tiles away. Will occasionally drop pieces of their PTRs that survive combat.
  • +
  • Clothing can now check attachments for temperature resistance.
  • +
  • MHD Howitzer beam effect actually exists again.
  • +
  • Xenoresin ground cover is properly colored again.
  • +
+

atlantiscze updated:

+
    +
  • Robots can now search loot piles.
  • +
  • Hardsuits now allow backpacks to be carried in storage slot. This is limited to hardsuits which are worn on the back slot.
  • +
  • SMES units now have automatic load balancing both on inputs and outputs
  • +
  • SMES units (and derived objects, such as PSUs) can now have more than one input terminal. This allows for input from more otherwise isolated power networks.
  • +
  • Completely redesigned cell rack PSUs, removed ghetto variant. Cell rack PSUs now support multiple power cells and hot-swapping of cells during operation. This allows for either charging multiple cells at once in one device (directly from power cable) or for powering up various machinery with only a power cell. They are still inferior to SMESes in pretty much all aspects.
  • +
  • Multitool on a cable now shows nicer results with large currents (uses kW or MW accordingly)
  • +
  • Multitool may be now used to change colour of cable coils.
  • +
  • Supermatter delamination effects have been tweaked. Delamination is considerably less laggy, and less directly destructive. Instead, it causes larger health hazard and secondary engineering problems such as power outage or partial damage of solar arrays.
  • +
+

29 April 2020

Leshana updated:

    diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 08eaf8a18c..2f698c2602 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -5132,3 +5132,48 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. - rscadd: Shutoff valve monitoring is now also available as a modular computer program. Its UI has also been cleaned up a little. - rscadd: Research robot module now has basic exploration and xenoarchaeology tools. +2020-05-13: + Atermonera: + - rscadd: Added a preference to control multilingual parsing behaviour, with a few + different modes. Should hopefully be less punishing to people who stutter and + use hyphens as a language key. + - tweak: The examine mode preference should now persist across reconnections during + a single round, but if the server is fully restarted it still appears to reset. + This issue is also present for the multilingual preference, and I'm still looking + into it. Savefiles are cryptic. + Layne: + - rscadd: Added Promethean language. + Mechoid: + - rscadd: Adds more interactions with animals, like shearing and taming. + - rscadd: New PoIs + - rscadd: Thermal poncho attachment, has minor slowdown, but gives thermal protection + to the armor it is attached to. + - rscadd: Mercenaries now drop their guns again. Most likely to be broken, however + they can be repaired. Examining when adjacent will allow you to inspect the + gun for what is needed. + - rscadd: Mercenary Snipers now exist. They will telegraph their shots approximately + 2 seconds in advance, and can fire at 14 tiles away. Will occasionally drop + pieces of their PTRs that survive combat. + - tweak: Clothing can now check attachments for temperature resistance. + - bugfix: MHD Howitzer beam effect actually exists again. + - bugfix: Xenoresin ground cover is properly colored again. + atlantiscze: + - rscadd: Robots can now search loot piles. + - rscadd: Hardsuits now allow backpacks to be carried in storage slot. This is limited + to hardsuits which are worn on the back slot. + - rscadd: SMES units now have automatic load balancing both on inputs and outputs + - rscadd: SMES units (and derived objects, such as PSUs) can now have more than + one input terminal. This allows for input from more otherwise isolated power + networks. + - tweak: Completely redesigned cell rack PSUs, removed ghetto variant. Cell rack + PSUs now support multiple power cells and hot-swapping of cells during operation. + This allows for either charging multiple cells at once in one device (directly + from power cable) or for powering up various machinery with only a power cell. + They are still inferior to SMESes in pretty much all aspects. + - tweak: Multitool on a cable now shows nicer results with large currents (uses + kW or MW accordingly) + - tweak: Multitool may be now used to change colour of cable coils. + - tweak: Supermatter delamination effects have been tweaked. Delamination is considerably + less laggy, and less directly destructive. Instead, it causes larger health + hazard and secondary engineering problems such as power outage or partial damage + of solar arrays. diff --git a/html/changelogs/Layne - Promethean Language.yml b/html/changelogs/Layne - Promethean Language.yml deleted file mode 100644 index ed0f2e7ab3..0000000000 --- a/html/changelogs/Layne - Promethean Language.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: Layne -delete-after: True -changes: - - rscadd: "Promethean language." - - tweak: "NONVERBAL define was changed a bit." diff --git a/html/changelogs/atermonera_multilingual_pref.yml b/html/changelogs/atermonera_multilingual_pref.yml deleted file mode 100644 index 84552b9a13..0000000000 --- a/html/changelogs/atermonera_multilingual_pref.yml +++ /dev/null @@ -1,11 +0,0 @@ -author: Atermonera -delete-after: True - -# Any changes you've made. See valid prefix list above. -# INDENT WITH TWO SPACES. NOT TABS. SPACES. -# SCREW THIS UP AND IT WON'T WORK. -# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. -# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. -changes: - - rscadd: "Added a preference to control multilingual parsing behaviour, with a few different modes. Should hopefully be less punishing to people who stutter and use hyphens as a language key." - - tweak: "The examine mode preference should now persist across reconnections during a single round, but if the server is fully restarted it still appears to reset. This issue is also present for the multilingual preference, and I'm still looking into it. Savefiles are crpytic." diff --git a/html/changelogs/atlantiscze-dumpsterdive.yml b/html/changelogs/atlantiscze-dumpsterdive.yml deleted file mode 100644 index ee988d11b9..0000000000 --- a/html/changelogs/atlantiscze-dumpsterdive.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: atlantiscze - -delete-after: True - -changes: - - rscadd: "Robots can now search loot piles." \ No newline at end of file diff --git a/html/changelogs/atlantiscze-hardsuit.yml b/html/changelogs/atlantiscze-hardsuit.yml deleted file mode 100644 index 92cea41472..0000000000 --- a/html/changelogs/atlantiscze-hardsuit.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: atlantiscze - -delete-after: True - -changes: - - rscadd: "Hardsuits now allow backpacks to be carried in storage slot. This is limited to hardsuits which are worn on the back slot." \ No newline at end of file diff --git a/html/changelogs/atlantiscze-power.yml b/html/changelogs/atlantiscze-power.yml deleted file mode 100644 index 31e354cc55..0000000000 --- a/html/changelogs/atlantiscze-power.yml +++ /dev/null @@ -1,10 +0,0 @@ -author: atlantiscze -delete-after: True - -changes: - - rscadd: "SMES units now have automatic load balancing both on inputs and outputs" - - rscadd: "SMES units (and derived objects, such as PSUs) can now have more than one input terminal. This allows for input from more otherwise isolated power networks." - - tweak: "Completely redesigned cell rack PSUs, removed ghetto variant. Cell rack PSUs now support multiple power cells and hot-swapping of cells during operation. This allows for either charging multiple cells at once in one device (directly from power cable) or for powering up various machinery with only a power cell. They are still inferior to SMESes in pretty much all aspects." - - tweak: "Multitool on a cable now shows nicer results with large currents (uses kW or MW accordingly)" - - tweak: "Multitool may be now used to change colour of cable coils." - \ No newline at end of file diff --git a/html/changelogs/atlantiscze-sm.yml b/html/changelogs/atlantiscze-sm.yml deleted file mode 100644 index d6d8ddbfcf..0000000000 --- a/html/changelogs/atlantiscze-sm.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: atlantiscze - -delete-after: True - -changes: - - tweak: "Supermatter delamination effects have been tweaked. Delamination is considerably less laggy, and less directly destructive. Instead, it causes larger health hazard and secondary engineering problems such as power outage or partial damage of solar arrays." \ No newline at end of file diff --git a/html/changelogs/mechoid-newhorizon.yml b/html/changelogs/mechoid-newhorizon.yml deleted file mode 100644 index e9740680a3..0000000000 --- a/html/changelogs/mechoid-newhorizon.yml +++ /dev/null @@ -1,44 +0,0 @@ -################################ -# Example Changelog File -# -# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. -# -# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) -# When it is, any changes listed below will disappear. -# -# Valid Prefixes: -# bugfix -# wip (For works in progress) -# tweak -# soundadd -# sounddel -# rscadd (general adding of nice things) -# rscdel (general deleting of nice things) -# imageadd -# imagedel -# maptweak -# spellcheck (typo fixes) -# experiment -################################# - -# Your name. -author: Mechoid - -# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. -delete-after: True - -# Any changes you've made. See valid prefix list above. -# INDENT WITH TWO SPACES. NOT TABS. SPACES. -# SCREW THIS UP AND IT WON'T WORK. -# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. -# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. -changes: - - rscadd: "Adds more interactions with animals, like shearing and taming." - - rscadd: "Sif moss turfs can now spawn animal groups." - - rscadd: "New PoIs" - - rscadd: "Thermal poncho attachment, has minor slowdown, but gives thermal protection to the armor it is attached to." - - rscadd: "Mercenaries now drop their guns again. Most likely to be broken, however they can be repaired. Examining when adjacent will allow you to inspect the gun for what is needed." - - rscadd: "Mercenary Snipers now exist. They will telegraph their shots approximately 2 seconds in advance, and can fire at 14 tiles away. Will occasionally drop pieces of their PTRs that survive combat." - - tweak: "Clothing can now check attachments for temperature resistance." - - bugfix: "MHD Howitzer beam effect actually exists again. - - bugfix: "Xenoresin ground cover is properly colored again." From b6c8d3182958d459e4ebcad3aaec12c657130d8b Mon Sep 17 00:00:00 2001 From: Atermonera Date: Fri, 15 May 2020 13:35:57 -0700 Subject: [PATCH 16/37] cleans up advanced_who output (#7148) * cleans up advanced_who output * Missing tag --- code/game/verbs/advanced_who.dm | 69 +++++++++++++++++---------- code/modules/vchat/css/ss13styles.css | 17 ++++++- code/stylesheet.dm | 9 ++++ 3 files changed, 70 insertions(+), 25 deletions(-) diff --git a/code/game/verbs/advanced_who.dm b/code/game/verbs/advanced_who.dm index 9f067054f2..4498136b2b 100644 --- a/code/game/verbs/advanced_who.dm +++ b/code/game/verbs/advanced_who.dm @@ -7,24 +7,36 @@ var/list/Lines = list() - if(holder && (R_ADMIN & holder.rights || R_MOD & holder.rights)) + if(holder) for(var/client/C in GLOB.clients) - var/entry = "\t[C.key]" + var/entry = "[C.key]" if(C.holder && C.holder.fakekey) entry += " (as [C.holder.fakekey])" - entry += " - Playing as [C.mob.real_name]" - switch(C.mob.stat) - if(UNCONSCIOUS) - entry += " - Unconscious" - if(DEAD) - if(isobserver(C.mob)) - var/mob/observer/dead/O = C.mob - if(O.started_as_observer) - entry += " - Observing" - else - entry += " - DEAD" + + entry += "" + + if(C.mob.real_name) + switch(C.mob.stat) + if(UNCONSCIOUS) + entry += "Unconscious" // these are literally all spans so I can apply .inverted to them because black on dark grey isn't legible + + if(DEAD) + if(isobserver(C.mob)) + var/mob/observer/dead/O = C.mob + if(O.started_as_observer) + entry += "Observing" + else + entry += "Died" + else - entry += " - DEAD" + entry += "Playing" + + entry += " as [C.mob.real_name]" + + else if(isnewplayer(C.mob)) + entry += "In lobby" + + entry += "" var/age if(isnum(C.player_age)) @@ -33,14 +45,20 @@ age = 0 if(age <= 1) - age = "[age]" + age = "[age]" else if(age < 10) - age = "[age]" + age = "[age]" - entry += " - [age]" + entry += "Age: [age]" + entry += "" if(is_special_character(C.mob)) - entry += " - Antagonist" + if(C.mob?.mind?.special_role) + entry += "[C.mob.mind.special_role]" + else + entry += "Antagonist" + + entry += "" if(C.is_afk()) var/seconds = C.last_activity_seconds() @@ -48,7 +66,9 @@ entry += "[round(seconds / 60)] minutes, " entry += "[seconds % 60] seconds)" + entry += "" entry += " (?)" + entry += "" Lines += entry else @@ -60,16 +80,17 @@ entry += "[C.key]" var/mob/observer/dead/O = C.mob if(isobserver(O)) - entry += " - Observing" + entry += " - Observing
    " else if(istype(O,/mob/new_player)) - entry += " - In Lobby" + entry += " - In Lobby
    " else - entry += " - Playing" + entry += " - Playing
    " Lines += entry + msg += "" for(var/line in sortList(Lines)) - msg += "[line]\n" - + msg += "[line]" + msg += "
    " msg += "Total Players: [length(Lines)]" - msg = "" + msg + "" + msg = "" + msg + "" to_chat(src, msg) \ No newline at end of file diff --git a/code/modules/vchat/css/ss13styles.css b/code/modules/vchat/css/ss13styles.css index 51d0eb5467..372c3ecf22 100644 --- a/code/modules/vchat/css/ss13styles.css +++ b/code/modules/vchat/css/ss13styles.css @@ -165,13 +165,28 @@ h1.alert, h2.alert {color: #000000;} .bug {color: #9e9e39;} .vox {color: #AA00AA;} .promethean {color: #5A5A5A; font-family:"Comic Sans MS","Comic Sans",cursive;} -.inverted .promethean {color: #A5A5A5; font-family:"Comic Sans MS","Comic Sans",cursive;} +.inverted .promethean {color: #A5A5A5; font-family:"Comic Sans MS","Comic Sans",cursive;} .zaddat {color: #941C1C;} .rough {font-family: "Trebuchet MS", cursive, sans-serif;} .say_quote {font-family: Georgia, Verdana, sans-serif;} .terminus {font-family: "Times New Roman", Times, serif, sans-serif} .interface {color: #330033;} +.black {color: #000000;} +.darkgray {color: #808080;} +.gray {color: #A9A9A9;} +.red {color: #FF0000;} +.orange {color: #FF8C00;} +.blue {color: #0000FF;} +.green {color: #00DD00;} +.inverted .black {color: #606060;} +.inverted .darkgray {color: #808080;} +.inverted .gray {color: #A9A9A9;} +.inverted .red {color: #FF4444;} +.inverted .orange {color: #FF8C00;} +.inverted .blue {color: #6666FF;} +.inverted .green {color: #44FF44;} + /*BIG IMG.icon {width: 32px; height: 32px;}*/ img.icon {vertical-align: middle; max-height: 1em;} img.icon.bigicon {max-height: 32px;} diff --git a/code/stylesheet.dm b/code/stylesheet.dm index b11b716b66..ca7a9a51b7 100644 --- a/code/stylesheet.dm +++ b/code/stylesheet.dm @@ -121,4 +121,13 @@ BIG IMG.icon {width: 32px; height: 32px;} .debug_debug {color:#0000FF;} .debug_trace {color:#888888;} +.black {color: #000000;} +.darkgray {color: #808080;} +.gray {color: #A9A9A9;} +.red {color: #FF0000;} +.orange {color: #FF8C00;} +.blue {color: #0000FF;} +.green {color: #00DD00;} + + "} From 5e6cbc0315a0a0b8561911d830f3d1fdc169fc4e Mon Sep 17 00:00:00 2001 From: Atermonera Date: Fri, 15 May 2020 13:37:14 -0700 Subject: [PATCH 18/37] Fixes Runtime in ,: bad arg name 'disable_warning' --- code/game/objects/items.dm | 2 +- code/game/objects/items/weapons/storage/internal.dm | 2 +- code/modules/clothing/clothing.dm | 6 +++++- code/modules/clothing/gloves/arm_guards.dm | 2 +- code/modules/clothing/gloves/gauntlets.dm | 2 +- code/modules/clothing/shoes/leg_guards.dm | 2 +- code/modules/clothing/suits/armor.dm | 2 +- 7 files changed, 11 insertions(+), 7 deletions(-) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index c295a1a08c..4835268bfa 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -341,7 +341,7 @@ var/list/global/slot_flags_enumeration = list( //If you are making custom procs but would like to retain partial or complete functionality of this one, include a 'return ..()' to where you want this to happen. //Set disable_warning to 1 if you wish it to not give you outputs. //Should probably move the bulk of this into mob code some time, as most of it is related to the definition of slots and not item-specific -/obj/item/proc/mob_can_equip(M as mob, slot, disable_warning = 0) +/obj/item/proc/mob_can_equip(M as mob, slot, disable_warning = FALSE) if(!slot) return 0 if(!M) return 0 diff --git a/code/game/objects/items/weapons/storage/internal.dm b/code/game/objects/items/weapons/storage/internal.dm index ddb7e873e6..63afc51b4e 100644 --- a/code/game/objects/items/weapons/storage/internal.dm +++ b/code/game/objects/items/weapons/storage/internal.dm @@ -18,7 +18,7 @@ /obj/item/weapon/storage/internal/attack_hand() return //make sure this is never picked up -/obj/item/weapon/storage/internal/mob_can_equip(M as mob, slot, disable_warning = 0) +/obj/item/weapon/storage/internal/mob_can_equip(M as mob, slot, disable_warning = FALSE) return 0 //make sure this is never picked up //Helper procs to cleanly implement internal storages - storage items that provide inventory slots for other items. diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index a13947cf0a..c07b076ed3 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -59,7 +59,7 @@ user.recalculate_vis() //BS12: Species-restricted clothing check. -/obj/item/clothing/mob_can_equip(M as mob, slot, disable_warning = 0) +/obj/item/clothing/mob_can_equip(M as mob, slot, disable_warning = FALSE) //if we can't equip the item anyway, don't bother with species_restricted (cuts down on spam) if (!..()) @@ -337,7 +337,11 @@ return */ +<<<<<<< HEAD /obj/item/clothing/gloves/mob_can_equip(mob/user, slot, disable_warning = 0) +======= +/obj/item/clothing/gloves/mob_can_equip(mob/user, slot, disable_warning = FALSE) +>>>>>>> fcdbc41f... Fixes Runtime in ,: bad arg name 'disable_warning' (#7162) var/mob/living/carbon/human/H = user if(slot && slot == slot_gloves) diff --git a/code/modules/clothing/gloves/arm_guards.dm b/code/modules/clothing/gloves/arm_guards.dm index 791bb0a10b..6b0517642a 100644 --- a/code/modules/clothing/gloves/arm_guards.dm +++ b/code/modules/clothing/gloves/arm_guards.dm @@ -7,7 +7,7 @@ w_class = ITEMSIZE_NORMAL drop_sound = 'sound/items/drop/metalshield.ogg' -/obj/item/clothing/gloves/arm_guard/mob_can_equip(var/mob/living/carbon/human/H, slot, disable_warning = 0) +/obj/item/clothing/gloves/arm_guard/mob_can_equip(var/mob/living/carbon/human/H, slot, disable_warning = FALSE) if(..()) //This will only run if no other problems occured when equiping. if(H.wear_suit) if(H.wear_suit.body_parts_covered & ARMS) diff --git a/code/modules/clothing/gloves/gauntlets.dm b/code/modules/clothing/gloves/gauntlets.dm index eb5d05c909..efb25587a9 100644 --- a/code/modules/clothing/gloves/gauntlets.dm +++ b/code/modules/clothing/gloves/gauntlets.dm @@ -14,7 +14,7 @@ punch_force = 5 var/obj/item/clothing/gloves/gloves = null //Undergloves -/obj/item/clothing/gloves/gauntlets/mob_can_equip(mob/user, slot, disable_warning = 0) +/obj/item/clothing/gloves/gauntlets/mob_can_equip(mob/user, slot, disable_warning = FALSE) var/mob/living/carbon/human/H = user if(H.gloves) gloves = H.gloves diff --git a/code/modules/clothing/shoes/leg_guards.dm b/code/modules/clothing/shoes/leg_guards.dm index a6eefc1247..a4079087ab 100644 --- a/code/modules/clothing/shoes/leg_guards.dm +++ b/code/modules/clothing/shoes/leg_guards.dm @@ -9,7 +9,7 @@ can_hold_knife = TRUE drop_sound = 'sound/items/drop/boots.ogg' -/obj/item/clothing/shoes/leg_guard/mob_can_equip(var/mob/living/carbon/human/H, slot, disable_warning = 0) +/obj/item/clothing/shoes/leg_guard/mob_can_equip(var/mob/living/carbon/human/H, slot, disable_warning = FALSE) if(..()) //This will only run if no other problems occured when equiping. if(H.wear_suit) if(H.wear_suit.body_parts_covered & LEGS) diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index 3920ddd636..c41ff83d81 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -9,7 +9,7 @@ max_heat_protection_temperature = ARMOR_MAX_HEAT_PROTECTION_TEMPERATURE siemens_coefficient = 0.6 -/obj/item/clothing/suit/mob_can_equip(var/mob/living/carbon/human/H, slot, disable_warning = 0) +/obj/item/clothing/suit/mob_can_equip(var/mob/living/carbon/human/H, slot, disable_warning = FALSE) if(..()) //This will only run if no other problems occured when equiping. for(var/obj/item/clothing/I in list(H.gloves, H.shoes)) if(I && (src.body_parts_covered & ARMS && I.body_parts_covered & ARMS) ) From cb36e93a307834d69d1d676d218a08e159cc6f4d Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Fri, 15 May 2020 17:14:29 -0400 Subject: [PATCH 19/37] Add mini HUDs to mechs, rigs --- code/_onclick/hud/_defines.dm | 20 ++ code/_onclick/hud/hud.dm | 24 ++ code/_onclick/hud/rigmech.dm | 267 ++++++++++++++++++++ code/game/mecha/mecha.dm | 6 + code/modules/clothing/spacesuits/rig/rig.dm | 7 + icons/mob/screen_rigmech.dmi | Bin 0 -> 2955 bytes vorestation.dme | 1 + 7 files changed, 325 insertions(+) create mode 100644 code/_onclick/hud/rigmech.dm create mode 100644 icons/mob/screen_rigmech.dmi diff --git a/code/_onclick/hud/_defines.dm b/code/_onclick/hud/_defines.dm index 518cc78b91..978f2d782d 100644 --- a/code/_onclick/hud/_defines.dm +++ b/code/_onclick/hud/_defines.dm @@ -159,3 +159,23 @@ #define ui_ghost_teleport "SOUTH:6,CENTER+1:24" #define ui_ghost_pai "SOUTH: 6,CENTER+2:24" #define ui_ghost_updown "SOUTH: 6,CENTER+3:24" + +// Rig panel +#define ui_rig_deco1 "WEST:-7, SOUTH+5" +#define ui_rig_deco2 "WEST:-7, SOUTH+6" +#define ui_rig_pwr "WEST+1:-7, SOUTH+6" +#define ui_rig_health "WEST+1:-7, SOUTH+6" +#define ui_rig_air "WEST+1:-7, SOUTH+5" +#define ui_rig_airtoggle "WEST+1:-7, SOUTH+5" +#define ui_rig_deco1_f "WEST+2:-7, SOUTH+5" +#define ui_rig_deco2_f "WEST+2:-7, SOUTH+6" + +// Mech panel +#define ui_mech_deco1 "WEST:-7, SOUTH+8" +#define ui_mech_deco2 "WEST:-7, SOUTH+9" +#define ui_mech_pwr "WEST+1:-7, SOUTH+9" +#define ui_mech_health "WEST+1:-7, SOUTH+9" +#define ui_mech_air "WEST+1:-7, SOUTH+8" +#define ui_mech_airtoggle "WEST+1:-7, SOUTH+8" +#define ui_mech_deco1_f "WEST+2:-7, SOUTH+8" +#define ui_mech_deco2_f "WEST+2:-7, SOUTH+9" diff --git a/code/_onclick/hud/hud.dm b/code/_onclick/hud/hud.dm index c4dabaf3ca..c8e2f5f988 100644 --- a/code/_onclick/hud/hud.dm +++ b/code/_onclick/hud/hud.dm @@ -184,6 +184,7 @@ var/list/global_huds = list( var/list/adding var/list/other + var/list/miniobjs var/list/obj/screen/hotkeybuttons var/obj/screen/movable/action_button/hide_toggle/hide_actions_toggle @@ -193,6 +194,8 @@ var/list/global_huds = list( var/icon/ui_style var/ui_color var/ui_alpha + + var/list/minihuds = list() datum/hud/New(mob/owner) mymob = owner @@ -219,6 +222,7 @@ datum/hud/New(mob/owner) hotkeybuttons = null // item_action_list = null // ? mymob = null + qdel_null(minihuds) /datum/hud/proc/hidden_inventory_update() if(!mymob) return @@ -325,6 +329,26 @@ datum/hud/New(mob/owner) HUD.ui_color = client?.prefs?.UI_style_color HUD.ui_alpha = client?.prefs?.UI_style_alpha +/datum/hud/proc/apply_minihud(var/datum/mini_hud/MH) + if(MH in minihuds) + return + minihuds += MH + if(mymob.client) + mymob.client.screen -= miniobjs + miniobjs += MH.get_screen_objs() + if(mymob.client) + mymob.client.screen += miniobjs + +/datum/hud/proc/remove_minihud(var/datum/mini_hud/MH) + if(!(MH in minihuds)) + return + minihuds -= MH + if(mymob.client) + mymob.client.screen -= miniobjs + miniobjs -= MH.get_screen_objs() + if(mymob.client) + mymob.client.screen += miniobjs + //Triggered when F12 is pressed (Unless someone changed something in the DMF) /mob/verb/button_pressed_F12(var/full = 0 as null) set name = "F12" diff --git a/code/_onclick/hud/rigmech.dm b/code/_onclick/hud/rigmech.dm new file mode 100644 index 0000000000..91632e1604 --- /dev/null +++ b/code/_onclick/hud/rigmech.dm @@ -0,0 +1,267 @@ +/datum/mini_hud + var/datum/hud/main_hud + var/list/screenobjs = list() + var/list/types_to_instantiate + var/needs_processing = FALSE + +/datum/mini_hud/New(var/datum/hud/other) + apply_to_hud(other) + if(needs_processing) + START_PROCESSING(SSprocessing, src) + +/datum/mini_hud/Destroy() + main_hud?.remove_minihud(src) + main_hud = null + if(needs_processing) + STOP_PROCESSING(SSprocessing, src) + return ..() + +// Apply to a real /datum/hud +/datum/mini_hud/proc/apply_to_hud(var/datum/hud/other) + if(main_hud) + unapply_to_hud(main_hud) + main_hud = other + main_hud.apply_minihud(src) + +// Remove from a real /datum/hud +/datum/mini_hud/proc/unapply_to_hud(var/datum/hud/other) + main_hud.remove_minihud(src) + +// Update the hud +/datum/mini_hud/process() + return PROCESS_KILL // You shouldn't be here! + +// Return a list of screen objects we use +/datum/mini_hud/proc/get_screen_objs(var/mob/M) + return screenobjs + +// Specific types +/datum/mini_hud/rig + var/obj/item/weapon/rig/owner_rig + var/obj/screen/rig/power/power + var/obj/screen/rig/health/health + var/obj/screen/rig/air/air + var/obj/screen/rig/airtoggle/airtoggle + + needs_processing = TRUE + +/datum/mini_hud/rig/New(var/datum/hud/other, var/obj/item/weapon/rig/owner) + owner_rig = owner + power = new () + health = new () + air = new () + airtoggle = new () + + screenobjs = list(power, health, air, airtoggle) + screenobjs += new /obj/screen/rig/deco1 + screenobjs += new /obj/screen/rig/deco2 + screenobjs += new /obj/screen/rig/deco1_f + screenobjs += new /obj/screen/rig/deco2_f + + for(var/scr in screenobjs) + var/obj/screen/S = scr + S.master = owner_rig + ..() + +/datum/mini_hud/rig/Destroy() + if(owner_rig) + //owner_rig.minihud = null + owner_rig = null + return ..() + +/datum/mini_hud/rig/process() + if(!owner_rig) + qdel(src) + return + + var/obj/item/weapon/cell/rigcell = owner_rig.cell + var/obj/item/weapon/tank/rigtank = owner_rig.air_supply + + var/charge_percentage = rigcell ? rigcell.charge / rigcell.maxcharge : 0 + var/air_percentage = rigtank ? CLAMP(rigtank.air_contents.total_moles / 17.4693, 0, 1) : 0 + var/air_on = owner_rig.wearer?.internal ? 1 : 0 + + power.icon_state = "pwr[round(charge_percentage / 0.2, 1)]" + air.icon_state = "air[round(air_percentage / 0.2, 1)]" + health.icon_state = owner_rig.malfunctioning ? "health1" : "health5" + airtoggle.icon_state = "airon[air_on]" + +/datum/mini_hud/mech + var/obj/mecha/owner_mech + var/obj/screen/mech/power/power + var/obj/screen/mech/health/health + var/obj/screen/mech/air/air + var/obj/screen/mech/airtoggle/airtoggle + + needs_processing = TRUE + +/datum/mini_hud/mech/New(var/datum/hud/other, var/obj/mecha/owner) + owner_mech = owner + power = new () + health = new () + air = new () + airtoggle = new () + + screenobjs = list(power, health, air, airtoggle) + screenobjs += new /obj/screen/mech/deco1 + screenobjs += new /obj/screen/mech/deco2 + screenobjs += new /obj/screen/mech/deco1_f + screenobjs += new /obj/screen/mech/deco2_f + + for(var/scr in screenobjs) + var/obj/screen/S = scr + S.master = owner_mech + ..() + +/datum/mini_hud/mech/Destroy() + if(owner_mech) + owner_mech.minihud = null + owner_mech = null + return ..() + +/datum/mini_hud/mech/process() + if(!owner_mech) + qdel(src) + return + + var/obj/item/weapon/cell/mechcell = owner_mech.cell + var/obj/machinery/portable_atmospherics/canister/mechtank = owner_mech.internal_tank + + var/charge_percentage = mechcell ? mechcell.charge / mechcell.maxcharge : 0 + var/air_percentage = mechtank ? CLAMP(mechtank.air_contents.total_moles / 1863.47, 0, 1) : 0 + var/health_percentage = owner_mech.health / owner_mech.maxhealth + var/air_on = owner_mech.use_internal_tank + + power.icon_state = "pwr[round(charge_percentage / 0.2, 1)]" + air.icon_state = "air[round(air_percentage / 0.2, 1)]" + health.icon_state = "health[round(health_percentage / 0.2, 1)]" + airtoggle.icon_state = "airon[air_on]" + +// Screen objects +/obj/screen/rig + icon = 'icons/mob/screen_rigmech.dmi' + +/obj/screen/rig/deco1 + name = "RIG Status" + icon_state = "frame1_1" + screen_loc = ui_rig_deco1 + +/obj/screen/rig/deco2 + name = "RIG Status" + icon_state = "frame1_2" + screen_loc = ui_rig_deco2 + +/obj/screen/rig/deco1_f + name = "RIG Status" + icon_state = "frame1_1_far" + screen_loc = ui_rig_deco1_f + +/obj/screen/rig/deco2_f + name = "RIG Status" + icon_state = "frame1_2_far" + screen_loc = ui_rig_deco2_f + +/obj/screen/rig/power + name = "Charge Level" + icon_state = "pwr5" + screen_loc = ui_rig_pwr + +/obj/screen/rig/health + name = "Integrity Level" + icon_state = "health5" + screen_loc = ui_rig_health + +/obj/screen/rig/air + name = "Air Storage" + icon_state = "air5" + screen_loc = ui_rig_air + +/obj/screen/rig/airtoggle + name = "Toggle Air" + icon_state = "airoff" + screen_loc = ui_rig_airtoggle + +/obj/screen/rig/airtoggle/Click() + var/mob/living/carbon/human/user = usr + if(!istype(user) || user.stat || user.incapacitated()) + return + var/obj/item/weapon/rig/owner_rig = master + if(user != owner_rig.wearer) + return + user.toggle_internals() + +/obj/screen/mech + icon = 'icons/mob/screen_rigmech.dmi' + +/obj/screen/mech/deco1 + name = "Mech Status" + icon_state = "frame1_1" + screen_loc = ui_mech_deco1 + +/obj/screen/mech/deco2 + name = "Mech Status" + icon_state = "frame1_2" + screen_loc = ui_mech_deco2 + +/obj/screen/mech/deco1_f + name = "Mech Status" + icon_state = "frame1_1_far" + screen_loc = ui_mech_deco1_f + +/obj/screen/mech/deco2_f + name = "Mech Status" + icon_state = "frame1_2_far" + screen_loc = ui_mech_deco2_f + +/obj/screen/mech/power + name = "Charge Level" + icon_state = "pwr5" + screen_loc = ui_mech_pwr + +/obj/screen/mech/health + name = "Integrity Level" + icon_state = "health5" + screen_loc = ui_mech_health + +/obj/screen/mech/air + name = "Air Storage" + icon_state = "air5" + screen_loc = ui_mech_air + +/obj/screen/mech/airtoggle + name = "Toggle Air" + icon_state = "airoff" + screen_loc = ui_mech_airtoggle + +/obj/screen/mech/airtoggle/Click() + var/mob/living/carbon/human/user = usr + if(!istype(user) || user.stat || user.incapacitated()) + return + var/obj/mecha/owner_mech = master + if(user != owner_mech.occupant) + return + owner_mech.toggle_internal_tank() + +/* +/mob/observer/dead/create_mob_hud(datum/hud/HUD, apply_to_client = TRUE) + ..() + + var/list/adding = list() + HUD.adding = adding + + var/obj/screen/using + using = new /obj/screen/ghost/jumptomob() + using.screen_loc = ui_ghost_jumptomob + using.hud = src + adding += using + + using = new /obj/screen/ghost/orbit() + using.screen_loc = ui_ghost_orbit + using.hud = src + adding += using + + using = new /obj/screen/ghost/reenter_corpse() + using.screen_loc = ui_ghost_reenter_corpse + using.hud = src + adding += using +*/ \ No newline at end of file diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index 990a99bc05..594c89a4ee 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -100,6 +100,8 @@ var/static/image/radial_image_lighttoggle = image(icon = 'icons/mob/radial.dmi', icon_state = "radial_light") var/static/image/radial_image_statpanel = image(icon = 'icons/mob/radial.dmi', icon_state = "radial_examine2") + var/datum/mini_hud/mech/minihud + /obj/mecha/drain_power(var/drain_check) @@ -195,6 +197,7 @@ QDEL_NULL(pr_give_air) QDEL_NULL(pr_internal_damage) QDEL_NULL(spark_system) + QDEL_NULL(minihud) mechas_list -= src //global mech list . = ..() @@ -1321,6 +1324,8 @@ src.verbs += /obj/mecha/verb/eject src.log_append_to_last("[H] moved in as pilot.") src.icon_state = src.reset_icon() + if(occupant.hud_used) + minihud = new (occupant.hud_used, src) update_cell_alerts() update_damage_alerts() set_dir(dir_in) @@ -1386,6 +1391,7 @@ /obj/mecha/proc/go_out() if(!src.occupant) return var/atom/movable/mob_container + QDEL_NULL(minihud) if(ishuman(occupant)) mob_container = src.occupant else if(istype(occupant, /mob/living/carbon/brain)) diff --git a/code/modules/clothing/spacesuits/rig/rig.dm b/code/modules/clothing/spacesuits/rig/rig.dm index 392ec65ad8..1afd78dee0 100644 --- a/code/modules/clothing/spacesuits/rig/rig.dm +++ b/code/modules/clothing/spacesuits/rig/rig.dm @@ -93,6 +93,7 @@ // Wiring! How exciting. var/datum/wires/rig/wires var/datum/effect/effect/system/spark_spread/spark_system + var/datum/mini_hud/rig/minihud /obj/item/weapon/rig/examine() . = ..() @@ -188,6 +189,7 @@ START_PROCESSING(SSobj, src) else STOP_PROCESSING(SSobj, src) + QDEL_NULL(minihud) // Just in case we get removed some other way // If we've lost any parts, grab them back. var/mob/living/M @@ -363,6 +365,11 @@ // Success! canremove = seal_target + if(M.hud_used) + if(canremove) + QDEL_NULL(minihud) + else + minihud = new (M.hud_used, src) to_chat(M, "Your entire suit [canremove ? "loosens as the components relax" : "tightens around you as the components lock into place"].") M.client.screen -= booting_L qdel(booting_L) diff --git a/icons/mob/screen_rigmech.dmi b/icons/mob/screen_rigmech.dmi new file mode 100644 index 0000000000000000000000000000000000000000..65e2b3184dfae4f2c37583d357c994506b840cf6 GIT binary patch literal 2955 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 literal 0 HcmV?d00001 diff --git a/vorestation.dme b/vorestation.dme index e0b3619c97..ec7a416f87 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -161,6 +161,7 @@ #include "code\_onclick\hud\picture_in_picture.dm" #include "code\_onclick\hud\radial.dm" #include "code\_onclick\hud\radial_persistent.dm" +#include "code\_onclick\hud\rigmech.dm" #include "code\_onclick\hud\robot.dm" #include "code\_onclick\hud\robot_vr.dm" #include "code\_onclick\hud\screen_objects.dm" From 259e33da5db031072d539a6ce7337d7226f6f48f Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Fri, 15 May 2020 20:23:49 -0400 Subject: [PATCH 20/37] Merge conflict fix for 7162 --- code/modules/clothing/clothing.dm | 4 ---- 1 file changed, 4 deletions(-) diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index c07b076ed3..fa44532b13 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -337,11 +337,7 @@ return */ -<<<<<<< HEAD -/obj/item/clothing/gloves/mob_can_equip(mob/user, slot, disable_warning = 0) -======= /obj/item/clothing/gloves/mob_can_equip(mob/user, slot, disable_warning = FALSE) ->>>>>>> fcdbc41f... Fixes Runtime in ,: bad arg name 'disable_warning' (#7162) var/mob/living/carbon/human/H = user if(slot && slot == slot_gloves) From b3b22daa1dfeaed29bf18eed590657dd0068a661 Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Fri, 15 May 2020 20:36:47 -0400 Subject: [PATCH 21/37] Merge upstream PR --- code/_onclick/rig.dm | 4 - code/game/atoms_movable.dm | 4 - .../structures/stool_bed_chair_nest/chairs.dm | 14 - code/modules/ai/interfaces.dm | 23 - code/modules/mob/living/carbon/carbon.dm | 406 ------------------ code/modules/mob/living/carbon/human/human.dm | 8 - .../mob/living/carbon/human/human_movement.dm | 17 - code/modules/mob/living/living.dm | 21 - .../modules/mob/living/silicon/robot/robot.dm | 7 - .../living/silicon/robot/robot_movement.dm | 11 - .../mob/living/simple_mob/simple_mob.dm | 11 - code/modules/mob/mob.dm | 3 - code/modules/mob/mob_movement.dm | 20 - code/modules/vehicles/vehicle.dm | 5 - 14 files changed, 554 deletions(-) diff --git a/code/_onclick/rig.dm b/code/_onclick/rig.dm index 953531a49d..e281505dc2 100644 --- a/code/_onclick/rig.dm +++ b/code/_onclick/rig.dm @@ -63,11 +63,7 @@ return loc == card /mob/living/proc/HardsuitClickOn(var/atom/A, var/alert_ai = 0) -<<<<<<< HEAD if(!can_use_rig()) -======= - if(!can_use_rig() || !checkClickCooldown()) ->>>>>>> 6de7439... Merge pull request #7082 from VOREStation/aro-moverefactor return 0 var/obj/item/weapon/rig/rig = get_rig() if(istype(rig) && !rig.offline && rig.selected_module) diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 26dd1d4a78..01f5e687d8 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -21,11 +21,7 @@ var/icon_rotation = 0 // Used to rotate icons in update_transform() var/old_x = 0 var/old_y = 0 -<<<<<<< HEAD - var/datum/riding/riding_datum //VOREStation Add - Moved from /obj/vehicle -======= var/datum/riding/riding_datum = null ->>>>>>> 6de7439... Merge pull request #7082 from VOREStation/aro-moverefactor var/does_spin = TRUE // Does the atom spin when thrown (of course it does :P) var/movement_type = NONE diff --git a/code/game/objects/structures/stool_bed_chair_nest/chairs.dm b/code/game/objects/structures/stool_bed_chair_nest/chairs.dm index e4c8479572..d471ba3840 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/chairs.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/chairs.dm @@ -159,20 +159,6 @@ else unbuckle_mob() -/obj/structure/bed/chair/office/handle_buckled_mob_movement(atom/new_loc, direction, movetime) - for(var/A in buckled_mobs) - var/mob/living/occupant = A - occupant.buckled = null - occupant.Move(loc, direction, movetime) - occupant.buckled = src - if (occupant && (loc != occupant.loc)) - if (propelled) - for (var/mob/O in src.loc) - if (O != occupant) - Bump(O) - else - unbuckle_mob() - /obj/structure/bed/chair/office/Bump(atom/A) ..() if(!has_buckled_mobs()) return diff --git a/code/modules/ai/interfaces.dm b/code/modules/ai/interfaces.dm index 798c94bc01..74ad2eb1a4 100644 --- a/code/modules/ai/interfaces.dm +++ b/code/modules/ai/interfaces.dm @@ -76,7 +76,6 @@ /mob/living/proc/IMove(turf/newloc, safety = TRUE) if(!checkMoveCooldown()) return MOVEMENT_ON_COOLDOWN -<<<<<<< HEAD // Check to make sure moving to newloc won't actually kill us. e.g. we're a slime and trying to walk onto water. if(istype(newloc)) @@ -95,31 +94,9 @@ var/delay_will_be = movement_delay() . = SelfMove(newloc, get_dir(loc,newloc), delay_will_be) ? MOVEMENT_SUCCESSFUL : MOVEMENT_FAILED -======= - - // Check to make sure moving to newloc won't actually kill us. e.g. we're a slime and trying to walk onto water. - if(istype(newloc)) - if(safety && !newloc.is_safe_to_enter(src)) - return MOVEMENT_FAILED - - // Move()ing to another tile successfully returns 32 because BYOND. Would rather deal with TRUE/FALSE-esque terms. - // Note that moving to the same tile will be 'successful'. - var/turf/old_T = get_turf(src) - - // An adjacency check to avoid mobs phasing diagonally past windows. - // This might be better in general movement code but I'm too scared to add it, and most things don't move diagonally anyways. - if(!old_T.Adjacent(newloc)) - return MOVEMENT_FAILED - - . = SelfMove(newloc) ? MOVEMENT_SUCCESSFUL : MOVEMENT_FAILED ->>>>>>> 6de7439... Merge pull request #7082 from VOREStation/aro-moverefactor if(. == MOVEMENT_SUCCESSFUL) set_dir(get_dir(old_T, newloc)) // Apply movement delay. // Player movement has more factors but its all in the client and fixing that would be its own project. -<<<<<<< HEAD setMoveCooldown(delay_will_be) -======= - setMoveCooldown(movement_delay()) ->>>>>>> 6de7439... Merge pull request #7082 from VOREStation/aro-moverefactor return \ No newline at end of file diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index d8275da362..554d873dd5 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -1,4 +1,3 @@ -<<<<<<< HEAD /mob/living/carbon/Initialize() . = ..() //setup reagent holders @@ -414,408 +413,3 @@ clear_alert("handcuffed") update_action_buttons() //some of our action buttons might be unusable when we're handcuffed. update_inv_handcuffed() -======= -/mob/living/carbon/Initialize() - . = ..() - //setup reagent holders - bloodstr = new/datum/reagents/metabolism/bloodstream(500, src) - ingested = new/datum/reagents/metabolism/ingested(500, src) - touching = new/datum/reagents/metabolism/touch(500, src) - reagents = bloodstr - if (!default_language && species_language) - default_language = GLOB.all_languages[species_language] - -/mob/living/carbon/Life() - ..() - - handle_viruses() - - // Increase germ_level regularly - if(germ_level < GERM_LEVEL_AMBIENT && prob(30)) //if you're just standing there, you shouldn't get more germs beyond an ambient level - germ_level++ - -/mob/living/carbon/Destroy() - qdel(ingested) - qdel(touching) - // We don't qdel(bloodstr) because it's the same as qdel(reagents) - for(var/guts in internal_organs) - qdel(guts) - for(var/food in stomach_contents) - qdel(food) - return ..() - -/mob/living/carbon/rejuvenate() - bloodstr.clear_reagents() - ingested.clear_reagents() - touching.clear_reagents() - ..() - -/mob/living/carbon/Moved(atom/old_loc, direction, forced = FALSE) - . = ..() - if(src.nutrition && src.stat != 2) - adjust_nutrition(-DEFAULT_HUNGER_FACTOR / 10) - if(src.m_intent == "run") - adjust_nutrition(-DEFAULT_HUNGER_FACTOR / 10) - - if((FAT in src.mutations) && src.m_intent == "run" && src.bodytemperature <= 360) - src.bodytemperature += 2 - - // Moving around increases germ_level faster - if(germ_level < GERM_LEVEL_MOVE_CAP && prob(8)) - germ_level++ - -/mob/living/carbon/relaymove(var/mob/living/user, direction) - if((user in src.stomach_contents) && istype(user)) - if(user.last_special <= world.time) - user.last_special = world.time + 50 - src.visible_message("You hear something rumbling inside [src]'s stomach...") - var/obj/item/I = user.get_active_hand() - if(I && I.force) - var/d = rand(round(I.force / 4), I.force) - if(istype(src, /mob/living/carbon/human)) - var/mob/living/carbon/human/H = src - var/obj/item/organ/external/organ = H.get_organ(BP_TORSO) - if (istype(organ)) - if(organ.take_damage(d, 0)) - H.UpdateDamageIcon() - H.updatehealth() - else - src.take_organ_damage(d) - user.visible_message("[user] attacks [src]'s stomach wall with the [I.name]!") - playsound(user.loc, 'sound/effects/attackblob.ogg', 50, 1) - - if(prob(src.getBruteLoss() - 50)) - for(var/atom/movable/A in stomach_contents) - A.loc = loc - stomach_contents.Remove(A) - src.gib() - -/mob/living/carbon/gib() - for(var/mob/M in src) - if(M in src.stomach_contents) - src.stomach_contents.Remove(M) - M.loc = src.loc - for(var/mob/N in viewers(src, null)) - if(N.client) - N.show_message(text("[M] bursts out of [src]!"), 2) - ..() - -/mob/living/carbon/attack_hand(mob/M as mob) - if(!istype(M, /mob/living/carbon)) return - if (ishuman(M)) - var/mob/living/carbon/human/H = M - var/obj/item/organ/external/temp = H.organs_by_name["r_hand"] - if (H.hand) - temp = H.organs_by_name["l_hand"] - if(temp && !temp.is_usable()) - to_chat(H, "You can't use your [temp.name]") - return - - return - -/mob/living/carbon/electrocute_act(var/shock_damage, var/obj/source, var/siemens_coeff = 1.0, var/def_zone = null, var/stun = 1) - if(status_flags & GODMODE) return 0 //godmode - if(def_zone == "l_hand" || def_zone == "r_hand") //Diona (And any other potential plant people) hands don't get shocked. - if(species.flags & IS_PLANT) - return 0 - shock_damage *= siemens_coeff - if (shock_damage<1) - return 0 - - src.apply_damage(0.2 * shock_damage, BURN, def_zone, used_weapon="Electrocution") //shock the target organ - src.apply_damage(0.4 * shock_damage, BURN, BP_TORSO, used_weapon="Electrocution") //shock the torso more - src.apply_damage(0.2 * shock_damage, BURN, null, used_weapon="Electrocution") //shock a random part! - src.apply_damage(0.2 * shock_damage, BURN, null, used_weapon="Electrocution") //shock a random part! - - playsound(loc, "sparks", 50, 1, -1) - if (shock_damage > 15) - src.visible_message( - "[src] was electrocuted[source ? " by the [source]" : ""]!", \ - "You feel a powerful shock course through your body!", \ - "You hear a heavy electrical crack." \ - ) - else - src.visible_message( - "[src] was shocked[source ? " by the [source]" : ""].", \ - "You feel a shock course through your body.", \ - "You hear a zapping sound." \ - ) - - if(stun) - switch(shock_damage) - if(16 to 20) - Stun(2) - if(21 to 25) - Weaken(2) - if(26 to 30) - Weaken(5) - if(31 to INFINITY) - Weaken(10) //This should work for now, more is really silly and makes you lay there forever - - var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread - s.set_up(5, 1, loc) - s.start() - - return shock_damage - -/mob/living/carbon/proc/help_shake_act(mob/living/carbon/M) - if (src.health >= config.health_threshold_crit) - if(src == M && istype(src, /mob/living/carbon/human)) - var/mob/living/carbon/human/H = src - var/datum/gender/T = gender_datums[H.get_visible_gender()] - src.visible_message( \ - "[src] examines [T.himself].", \ - "You check yourself for injuries." \ - ) - - for(var/obj/item/organ/external/org in H.organs) - var/list/status = list() - var/brutedamage = org.brute_dam - var/burndamage = org.burn_dam - /* - if(halloss > 0) //Makes halloss show up as actual wounds on self examine. - if(prob(30)) - brutedamage += halloss - if(prob(30)) - burndamage += halloss - */ - switch(brutedamage) - if(1 to 20) - status += "bruised" - if(20 to 40) - status += "wounded" - if(40 to INFINITY) - status += "mangled" - - switch(burndamage) - if(1 to 10) - status += "numb" - if(10 to 40) - status += "blistered" - if(40 to INFINITY) - status += "peeling away" - - if(org.is_stump()) - status += "MISSING" - if(org.status & ORGAN_MUTATED) - status += "weirdly shapen" - if(org.dislocated == 2) - status += "dislocated" - if(org.status & ORGAN_BROKEN) - status += "hurts when touched" - if(org.status & ORGAN_DEAD) - status += "is bruised and necrotic" - if(!org.is_usable() || org.is_dislocated()) - status += "dangling uselessly" - if(status.len) - src.show_message("My [org.name] is [english_list(status)].",1) - else - src.show_message("My [org.name] is OK.",1) - - if((SKELETON in H.mutations) && (!H.w_uniform) && (!H.wear_suit)) - H.play_xylophone() - else if (on_fire) - playsound(src.loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) - if (M.on_fire) - M.visible_message("[M] tries to pat out [src]'s flames, but to no avail!", - "You try to pat out [src]'s flames, but to no avail! Put yourself out first!") - else - M.visible_message("[M] tries to pat out [src]'s flames!", - "You try to pat out [src]'s flames! Hot!") - if(do_mob(M, src, 15)) - src.adjust_fire_stacks(-0.5) - if (prob(10) && (M.fire_stacks <= 0)) - M.adjust_fire_stacks(1) - M.IgniteMob() - if (M.on_fire) - M.visible_message("The fire spreads from [src] to [M]!", - "The fire spreads to you as well!") - else - src.adjust_fire_stacks(-0.5) //Less effective than stop, drop, and roll - also accounting for the fact that it takes half as long. - if (src.fire_stacks <= 0) - M.visible_message("[M] successfully pats out [src]'s flames.", - "You successfully pat out [src]'s flames.") - src.ExtinguishMob() - src.fire_stacks = 0 - else - if (istype(src,/mob/living/carbon/human) && src:w_uniform) - var/mob/living/carbon/human/H = src - H.w_uniform.add_fingerprint(M) - - var/show_ssd - var/mob/living/carbon/human/H = src - var/datum/gender/T = gender_datums[H.get_visible_gender()] // make sure to cast to human before using get_gender() or get_visible_gender()! - if(istype(H)) show_ssd = H.species.show_ssd - if(show_ssd && !client && !teleop) - M.visible_message("[M] shakes [src] trying to wake [T.him] up!", \ - "You shake [src], but [T.he] [T.does] not respond... Maybe [T.he] [T.has] S.S.D?") - else if(lying || src.sleeping) - src.sleeping = max(0,src.sleeping-5) - if(src.sleeping == 0) - src.resting = 0 - M.visible_message("[M] shakes [src] trying to wake [T.him] up!", \ - "You shake [src] trying to wake [T.him] up!") - else - var/mob/living/carbon/human/hugger = M - var/datum/gender/TM = gender_datums[M.get_visible_gender()] - if(M.resting == 1) //Are they resting on the ground? - M.visible_message("[M] grabs onto [src] and pulls [TM.himself] up", \ - "You grip onto [src] and pull yourself up off the ground!") - if(M.fire_stacks >= (src.fire_stacks + 3)) //Fire checks. - src.adjust_fire_stacks(1) - M.adjust_fire_stacks(-1) - if(M.on_fire) - src.IgniteMob() - if(do_after(M, 0.5 SECONDS)) //.5 second delay. Makes it a bit stronger than just typing rest. - M.resting = 0 //Hoist yourself up up off the ground. No para/stunned/weakened removal. - else if(istype(hugger)) - hugger.species.hug(hugger,src) - else - M.visible_message("[M] hugs [src] to make [T.him] feel better!", \ - "You hug [src] to make [T.him] feel better!") - if(M.fire_stacks >= (src.fire_stacks + 3)) - src.adjust_fire_stacks(1) - M.adjust_fire_stacks(-1) - if(M.on_fire) - src.IgniteMob() - AdjustParalysis(-3) - AdjustStunned(-3) - AdjustWeakened(-3) - - playsound(src.loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) - -/mob/living/carbon/proc/eyecheck() - return 0 - -/mob/living/carbon/flash_eyes(intensity = FLASH_PROTECTION_MODERATE, override_blindness_check = FALSE, affect_silicon = FALSE, visual = FALSE, type = /obj/screen/fullscreen/flash) - if(eyecheck() < intensity || override_blindness_check) - return ..() - -// ++++ROCKDTBEN++++ MOB PROCS -- Ask me before touching. -// Stop! ... Hammertime! ~Carn - -/mob/living/carbon/proc/getDNA() - return dna - -/mob/living/carbon/proc/setDNA(var/datum/dna/newDNA) - dna = newDNA - -// ++++ROCKDTBEN++++ MOB PROCS //END - -/mob/living/carbon/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume) - ..() - var/temp_inc = max(min(BODYTEMP_HEATING_MAX*(1-get_heat_protection()), exposed_temperature - bodytemperature), 0) - bodytemperature += temp_inc - -/mob/living/carbon/can_use_hands() - if(handcuffed) - return 0 - if(buckled && istype(buckled, /obj/structure/bed/nest)) // buckling does not restrict hands - return 0 - return 1 - -/mob/living/carbon/restrained() - if (handcuffed) - return 1 - return - -/mob/living/carbon/u_equip(obj/item/W as obj) - if(!W) return 0 - - else if (W == handcuffed) - handcuffed = null - update_inv_handcuffed() - if(buckled && buckled.buckle_require_restraints) - buckled.unbuckle_mob() - - else if (W == legcuffed) - legcuffed = null - update_inv_legcuffed() - else - ..() - - return - -//generates realistic-ish pulse output based on preset levels -/mob/living/carbon/proc/get_pulse(var/method) //method 0 is for hands, 1 is for machines, more accurate - var/temp = 0 //see setup.dm:694 - switch(src.pulse) - if(PULSE_NONE) - return "0" - if(PULSE_SLOW) - temp = rand(40, 60) - return num2text(method ? temp : temp + rand(-10, 10)) - if(PULSE_NORM) - temp = rand(60, 90) - return num2text(method ? temp : temp + rand(-10, 10)) - if(PULSE_FAST) - temp = rand(90, 120) - return num2text(method ? temp : temp + rand(-10, 10)) - if(PULSE_2FAST) - temp = rand(120, 160) - return num2text(method ? temp : temp + rand(-10, 10)) - if(PULSE_THREADY) - return method ? ">250" : "extremely weak and fast, patient's artery feels like a thread" -// output for machines^ ^^^^^^^output for people^^^^^^^^^ - -/mob/living/carbon/verb/mob_sleep() - set name = "Sleep" - set category = "IC" - - if(usr.sleeping) - to_chat(usr, "You are already sleeping") - return - if(alert(src,"You sure you want to sleep for a while?","Sleep","Yes","No") == "Yes") - usr.sleeping = 20 //Short nap - -/mob/living/carbon/Bump(atom/A) - if(now_pushing) - return - ..() - if(istype(A, /mob/living/carbon) && prob(10)) - spread_disease_to(A, "Contact") - -/mob/living/carbon/cannot_use_vents() - return - -/mob/living/carbon/slip(var/slipped_on,stun_duration=8) - if(buckled) - return 0 - stop_pulling() - to_chat(src, "You slipped on [slipped_on]!") - playsound(src.loc, 'sound/misc/slip.ogg', 50, 1, -3) - Weaken(FLOOR(stun_duration/2, 1)) - return 1 - -/mob/living/carbon/proc/add_chemical_effect(var/effect, var/magnitude = 1) - if(effect in chem_effects) - chem_effects[effect] += magnitude - else - chem_effects[effect] = magnitude - -/mob/living/carbon/get_default_language() - if(default_language) - if(can_speak(default_language)) - return default_language - else - return GLOB.all_languages[LANGUAGE_GIBBERISH] - - if(!species) - return null - - return species.default_language ? GLOB.all_languages[species.default_language] : null - -/mob/living/carbon/proc/should_have_organ(var/organ_check) - return 0 - -/mob/living/carbon/can_feel_pain(var/check_organ) - if(isSynthetic()) - return 0 - return !(species.flags & NO_PAIN) - -/mob/living/carbon/needs_to_breathe() - if(does_not_breathe) - return FALSE - return ..() - ->>>>>>> 6de7439... Merge pull request #7082 from VOREStation/aro-moverefactor diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 9ac2827e31..c08fb9b20e 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -1658,11 +1658,7 @@ var/obj/item/organ/external/e = organs_by_name[name] if(!e) continue -<<<<<<< HEAD - if((e.status & ORGAN_BROKEN && (!e.splinted || (e.splinted && e.splinted in e.contents && prob(30))) || e.status & ORGAN_BLEEDING) && (getBruteLoss() + getFireLoss() >= 100)) -======= if((e.status & ORGAN_BROKEN && (!e.splinted || (e.splinted in e.contents && prob(30))) || e.status & ORGAN_BLEEDING) && (getBruteLoss() + getFireLoss() >= 100)) ->>>>>>> 6de7439... Merge pull request #7082 from VOREStation/aro-moverefactor return 1 else return ..() @@ -1683,13 +1679,9 @@ if(istype(loc, /turf/simulated)) var/turf/T = loc T.add_blood(src) -<<<<<<< HEAD . = ..() /mob/living/carbon/human/reduce_cuff_time() if(istype(gloves, /obj/item/clothing/gloves/gauntlets/rig)) return 2 return ..() -======= - . = ..() ->>>>>>> 6de7439... Merge pull request #7082 from VOREStation/aro-moverefactor diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm index 2ffd9c6195..cd2d368d6d 100644 --- a/code/modules/mob/living/carbon/human/human_movement.dm +++ b/code/modules/mob/living/carbon/human/human_movement.dm @@ -2,19 +2,10 @@ /mob/living/carbon/human/movement_delay(oldloc, direct) -<<<<<<< HEAD . = 0 if (istype(loc, /turf/space)) return ..() - 1 -======= - . = ..() - - if(species.slowdown) - . = species.slowdown - - if (istype(loc, /turf/space)) return -1 // It's hard to be slowed down in space by... anything ->>>>>>> 6de7439... Merge pull request #7082 from VOREStation/aro-moverefactor if(species.slowdown) . += species.slowdown @@ -34,7 +25,6 @@ if(can_feel_pain()) if(halloss >= 10) . += (halloss / 10) //halloss shouldn't slow you down if you can't even feel it -<<<<<<< HEAD var/hungry = (500 - nutrition) / 5 //VOREStation Edit - Fixed 500 here instead of our huge MAX_NUTRITION if (hungry >= 70) . += hungry/50 @@ -55,10 +45,6 @@ if(H.weight > L.weight) . += 1 //VOREstation end -======= - var/hungry = (MAX_NUTRITION - nutrition) / 5 - if (hungry >= 70) . += hungry/50 ->>>>>>> 6de7439... Merge pull request #7082 from VOREStation/aro-moverefactor if(istype(buckled, /obj/structure/bed/chair/wheelchair)) for(var/organ_name in list(BP_L_HAND, BP_R_HAND, BP_L_ARM, BP_R_ARM)) @@ -126,15 +112,12 @@ . -= chem_effects[CE_SPEEDBOOST] // give 'em a buff on top. . = max(HUMAN_LOWEST_SLOWDOWN, . + config.human_delay) // Minimum return should be the same as force_max_speed -<<<<<<< HEAD . += ..() /mob/living/carbon/human/Moved() . = ..() if(embedded_flag) handle_embedded_objects() //Moving with objects stuck in you can cause bad times. -======= ->>>>>>> 6de7439... Merge pull request #7082 from VOREStation/aro-moverefactor // This calculates the amount of slowdown to receive from items worn. This does NOT include species modifiers. // It is in a seperate place to avoid an infinite loop situation with dragging mobs dragging each other. diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index a017b0457d..61d937644f 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -785,11 +785,8 @@ default behaviour is: to_chat(usr, "OOC Metadata is not supported by this server!") //VOREStation Edit End - Making it so SSD people have prefs with fallback to original style. -<<<<<<< HEAD -======= return ->>>>>>> 6de7439... Merge pull request #7082 from VOREStation/aro-moverefactor // Almost all of this handles pulling movables behind us /mob/living/Move(atom/newloc, direct, movetime) if(buckled && buckled.loc != newloc) //not updating position @@ -802,14 +799,8 @@ default behaviour is: // Prior to our move it's already too far away if(pullee && get_dist(src, pullee) > 1) stop_pulling() -<<<<<<< HEAD - // Shenanigans! - if(pullee && !isturf(pullee.loc) && pullee.loc != loc) - log_debug("[src]'s pull on [pullee] was broken despite [pullee] being in [pullee.loc]. Pull stopped manually.") -======= // Shenanigans! Pullee closed into locker for eg. if(pullee && !isturf(pullee.loc) && pullee.loc != loc) ->>>>>>> 6de7439... Merge pull request #7082 from VOREStation/aro-moverefactor stop_pulling() // Can't pull with no hands if(restrained()) @@ -829,19 +820,11 @@ default behaviour is: if(lying && !buckled && pull_damage() && A.has_gravity && (prob(getBruteLoss() * 200 / maxHealth))) adjustBruteLoss(2) visible_message("\The [src]'s [isSynthetic() ? "state" : "wounds"] worsen terribly from being dragged!") -<<<<<<< HEAD /mob/living/Moved(var/atom/oldloc, direct, forced, movetime) . = ..() handle_footstep(loc) -======= - -/mob/living/Moved(var/atom/oldloc, direct, forced, movetime) - . = ..() - handle_footstep(loc) - ->>>>>>> 6de7439... Merge pull request #7082 from VOREStation/aro-moverefactor if(pulling) // we were pulling a thing and didn't lose it during our move. if(pulling.anchored || !isturf(pulling.loc)) stop_pulling() @@ -1253,11 +1236,7 @@ default behaviour is: //actually throw it! src.visible_message("[src] has thrown [item].") -<<<<<<< HEAD - if((istype(src.loc, /turf/space)) || (src.lastarea?.has_gravity == 0)) -======= if((isspace(src.loc)) || (src.lastarea?.has_gravity == 0)) ->>>>>>> 6de7439... Merge pull request #7082 from VOREStation/aro-moverefactor src.inertia_dir = get_dir(target, src) step(src, inertia_dir) diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 36293e8bad..63267c6e09 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -943,13 +943,6 @@ update_canmove() /mob/living/silicon/robot/mode() -<<<<<<< HEAD -======= - set name = "Activate Held Object" - set category = "IC" - set src = usr - ->>>>>>> 6de7439... Merge pull request #7082 from VOREStation/aro-moverefactor if(!checkClickCooldown()) return diff --git a/code/modules/mob/living/silicon/robot/robot_movement.dm b/code/modules/mob/living/silicon/robot/robot_movement.dm index f74211b7e4..fe05775c51 100644 --- a/code/modules/mob/living/silicon/robot/robot_movement.dm +++ b/code/modules/mob/living/silicon/robot/robot_movement.dm @@ -15,7 +15,6 @@ //No longer needed, but I'll leave it here incase we plan to re-use it. /mob/living/silicon/robot/movement_delay() -<<<<<<< HEAD . = speed if(module_active && istype(module_active,/obj/item/borg/combat/mobility)) @@ -24,16 +23,6 @@ . += config.robot_delay . += ..() -======= - . = ..() - - . += speed - - if(module_active && istype(module_active,/obj/item/borg/combat/mobility)) - . -= 3 - - . += config.robot_delay ->>>>>>> 6de7439... Merge pull request #7082 from VOREStation/aro-moverefactor // NEW: Use power while moving. /mob/living/silicon/robot/SelfMove(turf/n, direct, movetime) diff --git a/code/modules/mob/living/simple_mob/simple_mob.dm b/code/modules/mob/living/simple_mob/simple_mob.dm index 42366d7bd9..6a750ea518 100644 --- a/code/modules/mob/living/simple_mob/simple_mob.dm +++ b/code/modules/mob/living/simple_mob/simple_mob.dm @@ -211,13 +211,7 @@ return ..() */ /mob/living/simple_mob/movement_delay() -<<<<<<< HEAD . = movement_cooldown -======= - . = ..() - - . += movement_cooldown ->>>>>>> 6de7439... Merge pull request #7082 from VOREStation/aro-moverefactor if(force_max_speed) return -3 @@ -243,15 +237,10 @@ if(m_intent == "walk") . *= 1.5 -<<<<<<< HEAD . += config.animal_delay . += ..() -======= - - . += config.animal_delay ->>>>>>> 6de7439... Merge pull request #7082 from VOREStation/aro-moverefactor /mob/living/simple_mob/Stat() diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index a3a8b7ab16..4d3187bdd2 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -40,10 +40,7 @@ else living_mob_list += src lastarea = get_area(src) -<<<<<<< HEAD hook_vr("mob_new",list(src)) //VOREStation Code -======= ->>>>>>> 6de7439... Merge pull request #7082 from VOREStation/aro-moverefactor update_transform() // Some mobs may start bigger or smaller than normal. return ..() diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index 0948c119dc..3d0f88e7a7 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -122,7 +122,6 @@ // Nothing to do in nullspace if(!my_mob.loc) return -<<<<<<< HEAD // Used many times below, faster reference. var/atom/loc = my_mob.loc @@ -131,16 +130,6 @@ if(my_mob.control_object) Move_object(direct) -======= - - // Used many times below, faster reference. - var/atom/loc = my_mob.loc - - // We're controlling an object which is SOMEHOW DIFFERENT FROM AN EYE?? - if(my_mob.control_object) - Move_object(direct) - ->>>>>>> 6de7439... Merge pull request #7082 from VOREStation/aro-moverefactor // Ghosty mob movement if(my_mob.incorporeal_move && isobserver(my_mob)) Process_Incorpmove(direct) @@ -181,21 +170,12 @@ */ if(Process_Grab()) -<<<<<<< HEAD return // Can't move if(!my_mob.canmove) return -======= - return - - // Can't move - if(!my_mob.canmove) - return - ->>>>>>> 6de7439... Merge pull request #7082 from VOREStation/aro-moverefactor // Relaymove could handle it if(my_mob.machine) var/result = my_mob.machine.relaymove(my_mob, direct) diff --git a/code/modules/vehicles/vehicle.dm b/code/modules/vehicles/vehicle.dm index c25b9bad2f..e43228c4be 100644 --- a/code/modules/vehicles/vehicle.dm +++ b/code/modules/vehicles/vehicle.dm @@ -42,11 +42,6 @@ var/load_offset_y = 0 //pixel_y offset for item overlay var/mob_offset_y = 0 //pixel_y offset for mob overlay -<<<<<<< HEAD - //var/datum/riding/riding_datum = null //VOREStation Edit - Moved to movables. - -======= ->>>>>>> 6de7439... Merge pull request #7082 from VOREStation/aro-moverefactor //------------------------------------------- // Standard procs //------------------------------------------- From 8cdc7929209b0b4bd84b59a41dd61ef5f2e0b8f9 Mon Sep 17 00:00:00 2001 From: Atermonera Date: Fri, 15 May 2020 17:55:19 -0700 Subject: [PATCH 22/37] Merge pull request #7090 from VOREStation/aro-poismes Don't give POI SMES more charge than possible --- code/modules/power/smes_construction.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/power/smes_construction.dm b/code/modules/power/smes_construction.dm index 558e879a87..a43bf079c8 100644 --- a/code/modules/power/smes_construction.dm +++ b/code/modules/power/smes_construction.dm @@ -58,7 +58,7 @@ // Pre-installed and pre-charged SMES hidden from the station, for use in submaps. /obj/machinery/power/smes/buildable/point_of_interest/Initialize() . = ..() - charge = 1e7 // Should be enough for an individual POI. + charge = capacity // Should be enough for an individual POI. RCon = FALSE input_level = input_level_max output_level = output_level_max From 88b1ef4fc66a286fcdcc971f0126c3d183b682e7 Mon Sep 17 00:00:00 2001 From: Atermonera Date: Fri, 15 May 2020 17:55:43 -0700 Subject: [PATCH 24/37] Add some ctrl/alt vehicle helper clicks --- code/modules/vehicles/bike.dm | 1 + code/modules/vehicles/cargo_train.dm | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/code/modules/vehicles/bike.dm b/code/modules/vehicles/bike.dm index 1d4cb49a3b..fe059b9e07 100644 --- a/code/modules/vehicles/bike.dm +++ b/code/modules/vehicles/bike.dm @@ -1,6 +1,7 @@ /obj/vehicle/bike name = "space-bike" desc = "Space wheelies! Woo!" + description_info = "Use ctrl-click to quickly toggle the engine if you're adjacent (only when vehicle is stationary). Alt-click will similarly toggle the kickstand." icon = 'icons/obj/bike.dmi' icon_state = "bike_off" dir = SOUTH diff --git a/code/modules/vehicles/cargo_train.dm b/code/modules/vehicles/cargo_train.dm index 939c72110e..10ff1c94d5 100644 --- a/code/modules/vehicles/cargo_train.dm +++ b/code/modules/vehicles/cargo_train.dm @@ -1,7 +1,12 @@ /obj/vehicle/train/engine name = "cargo train tug" desc = "A ridable electric car designed for pulling cargo trolleys." +<<<<<<< HEAD icon = 'icons/obj/vehicles_vr.dmi' //VOREStation Edit +======= + description_info = "Use ctrl-click to quickly toggle the engine if you're adjacent (only when vehicle is stationary). Alt-click will grab the keys, if present." + icon = 'icons/obj/vehicles.dmi' +>>>>>>> e09f035... Merge pull request #7115 from VOREStation/pol-veh icon_state = "cargo_engine" on = 0 powered = 1 From 23d9c7cbdca8a83c1749735338345226f39ccf1d Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Fri, 15 May 2020 20:59:21 -0400 Subject: [PATCH 25/37] Update cargo_train.dm --- code/modules/vehicles/cargo_train.dm | 4 ---- 1 file changed, 4 deletions(-) diff --git a/code/modules/vehicles/cargo_train.dm b/code/modules/vehicles/cargo_train.dm index 10ff1c94d5..94437458cf 100644 --- a/code/modules/vehicles/cargo_train.dm +++ b/code/modules/vehicles/cargo_train.dm @@ -1,12 +1,8 @@ /obj/vehicle/train/engine name = "cargo train tug" desc = "A ridable electric car designed for pulling cargo trolleys." -<<<<<<< HEAD icon = 'icons/obj/vehicles_vr.dmi' //VOREStation Edit -======= description_info = "Use ctrl-click to quickly toggle the engine if you're adjacent (only when vehicle is stationary). Alt-click will grab the keys, if present." - icon = 'icons/obj/vehicles.dmi' ->>>>>>> e09f035... Merge pull request #7115 from VOREStation/pol-veh icon_state = "cargo_engine" on = 0 powered = 1 From d14a15ec6f3f35957e179a70cbb453281b2572bb Mon Sep 17 00:00:00 2001 From: Atermonera Date: Fri, 15 May 2020 18:06:24 -0700 Subject: [PATCH 26/37] Merge pull request #7144 from Cyantime/patch-1 Allows fax machine toner replacement --- code/modules/paperwork/faxmachine.dm | 23 ++--------------------- 1 file changed, 2 insertions(+), 21 deletions(-) diff --git a/code/modules/paperwork/faxmachine.dm b/code/modules/paperwork/faxmachine.dm index 15b597275f..a850cf9989 100644 --- a/code/modules/paperwork/faxmachine.dm +++ b/code/modules/paperwork/faxmachine.dm @@ -120,17 +120,7 @@ var/list/adminfaxes = list() //cache for faxes that have been sent to admins SSnanoui.update_uis(src) /obj/machinery/photocopier/faxmachine/attackby(obj/item/O as obj, mob/user as mob) - if(istype(O, /obj/item/weapon/paper) || istype(O, /obj/item/weapon/photo) || istype(O, /obj/item/weapon/paper_bundle)) - if(!copyitem) - user.drop_item() - copyitem = O - O.loc = src - to_chat(user, "You insert \the [O] into \the [src].") - playsound(loc, "sound/machines/click.ogg", 100, 1) - flick(insert_anim, src) - else - to_chat(user, "There is already something in \the [src].") - else if(istype(O, /obj/item/device/multitool) && panel_open) + if(O.is_multitool() && panel_open) var/input = sanitize(input(usr, "What Department ID would you like to give this fax machine?", "Multitool-Fax Machine Interface", department)) if(!input) to_chat(usr, "No input found. Please hang up and try your call again.") @@ -138,17 +128,8 @@ var/list/adminfaxes = list() //cache for faxes that have been sent to admins department = input if( !(("[department]" in alldepartments) || ("[department]" in admin_departments)) && !(department == "Unknown")) alldepartments |= department - else if(O.is_wrench()) - playsound(loc, O.usesound, 50, 1) - anchored = !anchored - to_chat(user, "You [anchored ? "wrench" : "unwrench"] \the [src].") - else if(default_deconstruction_screwdriver(user, O)) - return - else if(default_deconstruction_crowbar(user, O)) - return - - return + return ..() /obj/machinery/photocopier/faxmachine/proc/sendfax(var/destination) if(stat & (BROKEN|NOPOWER)) From 8b0a581e5d08bb9009c799747ea257d054324a9b Mon Sep 17 00:00:00 2001 From: Atermonera Date: Fri, 15 May 2020 18:05:41 -0700 Subject: [PATCH 28/37] Merge pull request #7139 from KillianKirilenko/kk-gps Even More GPS Variety --- code/game/objects/items/devices/gps.dm | 35 +++++++++++++++++++++++++ icons/obj/gps.dmi | Bin 1502 -> 1998 bytes 2 files changed, 35 insertions(+) diff --git a/code/game/objects/items/devices/gps.dm b/code/game/objects/items/devices/gps.dm index 562ed56990..08d4440d66 100644 --- a/code/game/objects/items/devices/gps.dm +++ b/code/game/objects/items/devices/gps.dm @@ -183,6 +183,13 @@ var/list/GPS_list = list() /obj/item/device/gps/security/on tracking = TRUE +/obj/item/device/gps/security/hos + icon_state = "gps-sec-hos" + gps_tag = "HOS0" + +/obj/item/device/gps/security/hos/on + tracking = TRUE + /obj/item/device/gps/medical icon_state = "gps-med" gps_tag = "MED0" @@ -190,6 +197,13 @@ var/list/GPS_list = list() /obj/item/device/gps/medical/on tracking = TRUE +/obj/item/device/gps/medical/cmo + icon_state = "gps-med-cmo" + gps_tag = "CMO0" + +/obj/item/device/gps/medical/cmo/on + tracking = TRUE + /obj/item/device/gps/science icon_state = "gps-sci" gps_tag = "SCI0" @@ -197,6 +211,13 @@ var/list/GPS_list = list() /obj/item/device/gps/science/on tracking = TRUE +/obj/item/device/gps/science/rd + icon_state = "gps-sci-rd" + gps_tag = "RD0" + +/obj/item/device/gps/science/rd/on + tracking = TRUE + /obj/item/device/gps/engineering icon_state = "gps-eng" gps_tag = "ENG0" @@ -204,6 +225,20 @@ var/list/GPS_list = list() /obj/item/device/gps/engineering/on tracking = TRUE +/obj/item/device/gps/engineering/atmos + icon_state = "gps-eng-atm" + gps_tag = "ATM0" + +/obj/item/device/gps/engineering/atmos/on + tracking = TRUE + +/obj/item/device/gps/engineering/ce + icon_state = "gps-eng-ce" + gps_tag = "CE0" + +/obj/item/device/gps/engineering/ce/on + tracking = TRUE + /obj/item/device/gps/mining icon_state = "gps-mine" gps_tag = "MINE0" diff --git a/icons/obj/gps.dmi b/icons/obj/gps.dmi index 17c25ac15e60b972211ca5cbcbb4ec121b7c3c52..2a1bc98b10a2c4f102618bd6a8b83ffdad9237ef 100644 GIT binary patch literal 1998 zcmY+FdoJa>CQ~lCPGp(gO&KL- z8S06!h*pZ2G)lRQiCnsv2gz-d8f(a0b~*!)N-~*jYHI4>;4r+)VsLQqcN48Sb0ZFi z~Aj%mYFJO?s$HBn(EQ(X6bjVm!SAtep%tZFjNQ9vB#?W3UO> zn?-9@cpF;hmOq-GpC^E3$@w4TqnF#hhG_I2G+?Ed`Gcd@8c^a7S#@HS`SeKZ?R#c_^lc#|2@CH zznO6;kGgz$L#+*zXGnQjp2#c+CO3K)lL zcHDvtZfvQv3eG^ysU@kmH6S^1A#^QgUN#QHgj9ep22FVCO&eIr%Mj*1{Lvk_e?}Ev z-@f~+0&kdK{e4~9zN#2x?VN1b{w1&kU8$Lqy~jf8G03Wpmvy;gL#TVQ9Z&$~`S6aU z>lbe^bo*DUUC=YKJ=@3(bGUZdPogJzmSux`e8T-h@T;wt`-gQy(XGY-3F6i$F9b5N zx8HlrG{PMN|GQQa1xcyBg6mxbrEphU$WVPec{!PNVlqjwa8BKYC6kGZsn^mnyGxqQ zG+6(xMV*hm;*^01F>};yw>04H>TGjrirKIv?ZZ5b(%#XqXl?)R{lu*`b#=vABO@br z$H(MtD;aZwR>e+d}Gp z9-wx+KM;+Kjh(VLf_QB$Es~SR;^Xz-SFF%U#*uL;1+lZG2g1c^1^OejMUZ1^O`VXS zo8#-03NLD0P$Lpiv~?^Kw87Hd)ppnVmMZ2#DprH?gLFm+Yf@f1dykraHkkYxbwjRz zE}xox(efGEr&Z{eU6<~L+jO3RYIL?)JX7)9$*zW`&N+iVBh8Ge4Xo(MibBUADN5Ps|06UBSj=+^YepDFJl+1#!X{UC*e?_|O!C z%&5K>gLH5;AN<6@{2156{ARzH1b_j<0w3N~kpc3~L97sGxA9LnM*71~pO@Dr{sD?- z(G_j&?ewA6HEk`e9%8@rKoo9iFjxLm^fICs@3B^SQtx%zK?0g_Iw?|b;twgI5hF@G zq9>D;te*QeqEBvtG)ujb{wWCf__?!le0;pK6X8Que)=?X@p^Z+zZtpxzOzEIGB=0% z!>ze(w|su-^JgOs?wi*FMsi#n3|<~MEt9nl%mQl9O26XCDF0_E;17hR8Dd6Bj+6(9 z1#4t#Y_%bjQ8wz932w%kMyTzSXMwg_h=azc*F`Hf8)DbW(%Ee27X&_x&-$Nq*fXvM zme~#nT%EI$NLcCYhB-oj3okgDZ~rkbunadK*zBC;MZ%`Zg1h>}jDKJsnNV?;H)o#U z>eNf(@zlvM{^Q%}IRx;mn_fMGjy$7+E#Z*G!Nl_j|L9Ek{o0&MkkH{9-I^(fF3Uv&OdZ8In)l5R!F08<=I_$ z!Q{Yo3WZS$OtjH+Ot7i@SSAZ4rL*UTrl*gYVa_;fYilR8zOmISRis+!u?>-AMNN8% zFb?FT4S|#Ty#}bo{M%<4k%!WXj#w;4qGSlv;=uUX+b1VZ>J;WHS?LILy(Ce${>X^n zuyfX9687TE29_j|Hi7(=n7_U_;lzbH)0GXUCFc$j|41(J>k<&~xSj1!Kve@LxpbS< zo7*pQFb4Ev;l#sVa=ulaFw#M6(2kZue}EzGto)Eo`SL1^i{GugLOJl~oQWAv^+y4| Lo`D{)b+3U~{@c&rnKS>$msYZGEMSSg zh&w&b&d$KK!>)o#Cm9aehc*BJ|4>j+a4wiGeV88~A2l^K*MB%Cz>h`L)YP>e4(cTu zl$4Z8N=kH9C%*t4T17DbkN{Nx4R2LEVgmyzDk^D3N5H_qT&UGp00001bW%=J06^y0 zW&i*H$9hy)bVOxyV{&P5bZKvH004NLjZ(o5f-np{v#(g-sz#Bk7XvXII_dgQ=@n-LP`{DW6%N#a?kNIVHOO|L={4^%_*MFlj$XHVjl+R&Ws zsA~N0T^fBS+yvyxc!@`$6XP4+OtCZ#+T3wCS?nk4`L1R6<1K~#90?VJg7;y4t9Ng(%zV;Ril-AQDQ@z`UA%>Vyy`*fIPYuwTl zMw77B9}%R|<i&)a%>o-EP+mNbja+2IBVa)(m+4 zea{T2KY#Shfcj(448+qPPiDaDYk+=RbK>=F^`{!3KldHr7d#IJcXxM#!2kq!9uDvC z?}x)7x_&fz`14^j8XB0a`hXI@p12`Q9a5@a& zbO!jq0W3Ix1qZO;02Um;f&*AQO>DtUJe5^w>S^MctU@zS6VGK8ntPgfA*;~B)5J?z zg_fQszWi0_uS9O160$ljA*pGf50ud2)DpU>0Rg72iBW)=Yhn~&?wS|{Shyxe0hX?bmvA#z1N6{l zG<1DiJ+v7mgb+eVn7`lKKwCb)w}G}WzKH}Qh;5S9|GiAgF&@F1lXe>r)T{`fPP~SNCR88S*#u? z3R#5;PZJli3L(ABa%V7aGFWD6zuIb6dle@^yH!XG_BXj^({D1k)BfKyIsxc`c1VfX z^LJcA9(||%+X;{aO$OEW?T3=v+kZCFUt%$6&);zXuP&vt$>k=Gjk*NT{#C>Pu0)DJ z2?1Sgb+dqA%tN3$Jd=sk|rU&^69=ak8|i9{rvtn82oyr@qZeq0tVaZ zW(Ir)w14jmRKXbt1oWN%|3Uyl2qAG0DAJRjo({0b^t19mK ze>gzk6$rk9k!LXY4h@eir+?G%^G`l9O>QqKf%ST1xcv907lEB(UM&oetf5 Date: Fri, 15 May 2020 18:12:48 -0700 Subject: [PATCH 30/37] Merge pull request #7147 from Mechoid/MiningDroneFix Give Mining Drones a proper fire delay. --- .../simple_mob/subtypes/mechanical/drones/mining_drone.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/simple_mob/subtypes/mechanical/drones/mining_drone.dm b/code/modules/mob/living/simple_mob/subtypes/mechanical/drones/mining_drone.dm index 5c6660e67c..2e014482f2 100644 --- a/code/modules/mob/living/simple_mob/subtypes/mechanical/drones/mining_drone.dm +++ b/code/modules/mob/living/simple_mob/subtypes/mechanical/drones/mining_drone.dm @@ -32,7 +32,7 @@ movement_cooldown = 5 hovering = TRUE - base_attack_cooldown = 5 + base_attack_cooldown = 2.5 SECONDS projectiletype = /obj/item/projectile/energy/excavate projectilesound = 'sound/weapons/pulse3.ogg' From fac9b2654079b3a9c9aa5428f9a7caf0b739d5d4 Mon Sep 17 00:00:00 2001 From: Atermonera Date: Fri, 15 May 2020 18:14:17 -0700 Subject: [PATCH 32/37] Merge pull request #7150 from KillianKirilenko/kk-misc [QOL] More Readable CMC --- nano/css/shared.css | 12 ++++++++++-- nano/templates/crew_monitor.tmpl | 6 +++--- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/nano/css/shared.css b/nano/css/shared.css index c79d603d94..3517402e2a 100644 --- a/nano/css/shared.css +++ b/nano/css/shared.css @@ -663,7 +663,15 @@ th.Silicon { font-weight: bold; color: #ffffff; } -/* Damage colors for crew monitoring computer */ +/* Damage/health colors for crew monitoring computer */ + +.dead { + color: red; +} + +.alive { + color: #7cfc00; +} .burn { color: orange; @@ -674,7 +682,7 @@ th.Silicon { } .toxin { - color: green; + color: lime; } .oxyloss { diff --git a/nano/templates/crew_monitor.tmpl b/nano/templates/crew_monitor.tmpl index bf02a98b8e..2dbc65d36d 100644 --- a/nano/templates/crew_monitor.tmpl +++ b/nano/templates/crew_monitor.tmpl @@ -22,11 +22,11 @@ Used In File(s): \code\game\machinery\computer\crew.dm {{for data.crewmembers}} {{if value.sensor_type == 1}} - {{if data.isAI}}{{/if}} + {{if data.isAI}}{{/if}} {{else value.sensor_type == 2}} - {{if data.isAI}}{{/if}} + {{if data.isAI}}{{/if}} {{else value.sensor_type == 3}} - {{if data.isAI}}{{/if}} + {{if data.isAI}}{{/if}} {{/if}} {{/for}}
    {{:value.name}} ({{:value.assignment}}){{:value.dead ? "Deceased" : "Living"}}Not Available{{:helper.link('Track', null, {}, 'disabled')}}
    {{:value.name}} ({{:value.assignment}}){{:value.dead ? "Deceased" : "Living"}}Not Available{{:helper.link('Track', null, {}, 'disabled')}}
    {{:value.name}} ({{:value.assignment}}){{:value.dead ? "Deceased" : "Living"}} ({{:value.oxy}}/{{:value.tox}}/{{:value.fire}}/{{:value.brute}})Not Available{{:helper.link('Track', null, {}, 'disabled')}}
    {{:value.name}} ({{:value.assignment}}){{:value.dead ? "Deceased" : "Living"}} ({{:value.oxy}}/{{:value.tox}}/{{:value.fire}}/{{:value.brute}})Not Available{{:helper.link('Track', null, {}, 'disabled')}}
    {{:value.name}} ({{:value.assignment}}){{:value.dead ? "Deceased" : "Living"}} ({{:value.oxy}}/{{:value.tox}}/{{:value.fire}}/{{:value.brute}}){{:value.area}}({{:value.x}}, {{:value.y}}, {{:value.z}}){{:helper.link('Track', null, {'track' : value.ref})}}
    {{:value.name}} ({{:value.assignment}}){{:value.dead ? "Deceased" : "Living"}} ({{:value.oxy}}/{{:value.tox}}/{{:value.fire}}/{{:value.brute}}){{:value.area}}({{:value.x}}, {{:value.y}}, {{:value.z}}){{:helper.link('Track', null, {'track' : value.ref})}}
    From 3c1c5ab3e49f53a9a0e23b27c38904ed0eb93a49 Mon Sep 17 00:00:00 2001 From: Rykka Date: Sat, 16 May 2020 01:56:24 -0400 Subject: [PATCH 34/37] Port over AI Opening Doors from Paradise This makes an [OPEN] link appear on all radio messages the AI hears (to the right of the follow link). When clicked, it allows the AI to open the door nearest to the speaker (or, if it is a voice changer, the door nearest to the poor sap who had his voice stolen). AI, Open This Door! --- code/game/machinery/camera/tracking.dm | 6 ++- code/modules/mob/living/silicon/ai/ai.dm | 63 +++++++++++++++++++++--- 2 files changed, 61 insertions(+), 8 deletions(-) diff --git a/code/game/machinery/camera/tracking.dm b/code/game/machinery/camera/tracking.dm index f7fd84eca7..60541e0fe3 100644 --- a/code/game/machinery/camera/tracking.dm +++ b/code/game/machinery/camera/tracking.dm @@ -152,11 +152,11 @@ cameraFollow = null /mob/living/silicon/ai/proc/ai_actual_track(mob/living/target as mob) - if(!istype(target)) return + if(!istype(target)) return FALSE var/mob/living/silicon/ai/U = usr if(target == U.cameraFollow) - return + return TRUE if(U.cameraFollow) U.ai_cancel_tracking() @@ -185,6 +185,8 @@ return sleep(10) + return TRUE + /obj/machinery/camera/attack_ai(var/mob/living/silicon/ai/user as mob) if (!istype(user)) return diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index 61f0be1a95..22707c6dbb 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -483,6 +483,19 @@ var/list/ai_verbs_default = list( else to_chat(src, "System error. Cannot locate [html_decode(href_list["trackname"])].") return + + if(href_list["trackbot"]) + var/mob/living/bot/target = locate(href_list["trackbot"]) in mob_list + if(target) + ai_actual_track(target) + else + to_chat(src, "Target is not on or near any active cameras on the station.") + return + + if(href_list["open"]) + var/mob/target = locate(href_list["open"]) in mob_list + if(target) + open_nearest_door(target) return @@ -825,6 +838,39 @@ var/list/ai_verbs_default = list( /mob/living/silicon/ai/proc/is_in_chassis() return istype(loc, /turf) +/mob/living/silicon/ai/proc/open_nearest_door(mob/living/target) // Rykka ports AI opening doors + if(!istype(target)) + return + + if(target && ai_actual_track(target)) + var/obj/machinery/door/airlock/A = null + + var/dist = -1 + for(var/obj/machinery/door/airlock/D in range(3, target)) + if(!D.density) + continue + + var/curr_dist = get_dist(D, target) + + if(dist < 0) + dist = curr_dist + A = D + else if(dist > curr_dist) + dist = curr_dist + A = D + + if(istype(A)) + switch(alert(src, "Do you want to open \the [A] for [target]?", "Doorknob_v2a.exe", "Yes", "No")) + if("Yes") + A.AIShiftClick() + to_chat(src, "You open \the [A] for [target].") + else + to_chat(src, "You deny the request.") + else + to_chat(src, "Unable to locate an airlock near [target].") + + else + to_chat(src, "Target is not on or near any active cameras on the station.") /mob/living/silicon/ai/ex_act(var/severity) if(severity == 1.0) @@ -906,15 +952,20 @@ var/list/ai_verbs_default = list( jobname = "Unknown" var/track = "" - if(changed_voice) - if(impersonating) + if(changed_voice) // They have a fake name + if(impersonating) // And we found a mob with that name above, track them instead track = "[speaker_name] ([jobname])" - else + track += "\[OPEN\]" // Rykka ports AI opening doors + else // We couldn't find a mob with their fake name, don't track at all track = "[speaker_name] ([jobname])" - else - track = "[speaker_name] ([jobname])" + else // Not faking their name + if(istype(speaker, /mob/living/bot)) // It's a bot, and no fake name! (That'd be kinda weird.) :p + track = "[speaker_name] ([jobname])" + else // It's not a bot, and no fake name! + track = "[speaker_name] ([jobname])" + track += "\[OPEN\]" // Rykka ports AI opening doors - return track + return track // Feed variable back to AI /mob/living/silicon/ai/proc/relay_speech(mob/living/M, list/message_pieces, verb) var/message = combine_message(message_pieces, verb, M) From 67ce8f383cd4e7842b392b82b375c6fc9934512f Mon Sep 17 00:00:00 2001 From: KasparoVy <12377767+KasparoVy@users.noreply.github.com> Date: Sat, 16 May 2020 02:35:06 -0400 Subject: [PATCH 35/37] Adds Equine Facial Markings & Ears I was poring over the markings list as usual, inspired this time to draft a donkey but was woefully struck by a lack of equine markings. Neigh, this cannot be! So I took to resolving the issue post-haste. The muzzle is flexible goes quite well with draconic designs too. Recommended to use with the Sergal bodytype for best results. --- .../mob/new_player/sprite_accessories_vr.dm | 14 +++++++++++++- .../vore/appearance/sprite_accessories_vr.dm | 8 ++++++++ icons/mob/human_races/markings_vr.dmi | Bin 60274 -> 60453 bytes icons/mob/vore/ears_vr.dmi | Bin 25030 -> 25323 bytes 4 files changed, 21 insertions(+), 1 deletion(-) diff --git a/code/modules/mob/new_player/sprite_accessories_vr.dm b/code/modules/mob/new_player/sprite_accessories_vr.dm index 3bb6c6f858..d3d6fb759f 100644 --- a/code/modules/mob/new_player/sprite_accessories_vr.dm +++ b/code/modules/mob/new_player/sprite_accessories_vr.dm @@ -1153,4 +1153,16 @@ name = "Claws" icon_state = "claws" color_blend_mode = ICON_MULTIPLY - body_parts = list(BP_L_HAND,BP_R_HAND) \ No newline at end of file + body_parts = list(BP_L_HAND,BP_R_HAND) + + equine_snout //Why the long face? Works best with sergal bodytype. + name = "Equine Snout" + icon_state = "donkey" + color_blend_mode = ICON_MULTIPLY + body_parts = list(BP_HEAD) + + equine_nose + name = "Equine Nose" + icon_state = "dnose" + color_blend_mode = ICON_MULTIPLY + body_parts = list(BP_HEAD) diff --git a/code/modules/vore/appearance/sprite_accessories_vr.dm b/code/modules/vore/appearance/sprite_accessories_vr.dm index bbc7ad9d9f..67222aab21 100644 --- a/code/modules/vore/appearance/sprite_accessories_vr.dm +++ b/code/modules/vore/appearance/sprite_accessories_vr.dm @@ -331,6 +331,14 @@ color_blend_mode = ICON_MULTIPLY extra_overlay = "otie-inner" +/datum/sprite_accessory/ears/donkey + name = "donkey, colorable" + desc = "" + icon_state = "donkey" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "otie-inner" + /datum/sprite_accessory/ears/zears name = "jagged ears" desc = "" diff --git a/icons/mob/human_races/markings_vr.dmi b/icons/mob/human_races/markings_vr.dmi index 487c66f674056c785d9de28f0313f460f712a1e9..e9fcad5e631b676a7ecdc8a95ef7d8b6cc0d8973 100644 GIT binary patch delta 4907 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 JY9Cog{|`nOnf?F( delta 4714 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 Date: Sat, 16 May 2020 11:41:58 -0400 Subject: [PATCH 36/37] Update BC glob patterns now that I know how they work --- .github/boring-cyborg.yml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/boring-cyborg.yml b/.github/boring-cyborg.yml index 4b8d729834..d6047f49af 100644 --- a/.github/boring-cyborg.yml +++ b/.github/boring-cyborg.yml @@ -6,24 +6,24 @@ labelPRBasedOnFilePath: # Add 'Type: Map' to any changes to .dmm files "Type: Map": - - '**.dmm' + - '**/*.dmm' # Add 'Type: Map' to any changes to image files "Type: Icon": - - '**.dmi' - - '**.png' - - '**.jpg' + - '**/*.dmi' + - '**/*.png' + - '**/*.jpg' # Add 'Type: Sound' to any change to sound files "Type: Sound": - - '**.ogg' - - '**.mp3' - - '**.wav' + - '**/*.ogg' + - '**/*.mp3' + - '**/*.wav' # Add 'Type: Fluff' to any change to *custom_items* "Type: Fluff": - - '**custom_items**' - - '**loadout_fluff**' + - '**/*custom_items*' + - '**/*loadout_fluff*' # Contains changes to system folders "Type: .git or .github": From 2b96e0bfaed748da748958d1eace0144da7db237 Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Sat, 16 May 2020 12:13:24 -0400 Subject: [PATCH 37/37] Fixes mousedrop shenanigans --- code/game/machinery/OpTable.dm | 44 +++++++++++++----------------- code/game/machinery/oxygen_pump.dm | 7 +++-- 2 files changed, 24 insertions(+), 27 deletions(-) diff --git a/code/game/machinery/OpTable.dm b/code/game/machinery/OpTable.dm index a410ad79b3..2200ef94c6 100644 --- a/code/game/machinery/OpTable.dm +++ b/code/game/machinery/OpTable.dm @@ -53,15 +53,6 @@ return TRUE return FALSE -/obj/machinery/optable/MouseDrop_T(obj/O as obj, mob/user as mob) - - if((!(istype(O, /obj/item/weapon)) || user.get_active_hand() != O)) - return - user.drop_item() - if(O.loc != src.loc) - step(O, get_dir(O, src)) - return - /obj/machinery/optable/proc/check_victim() if(locate(/mob/living/carbon/human, src.loc)) var/mob/living/carbon/human/M = locate(/mob/living/carbon/human, src.loc) @@ -102,40 +93,43 @@ else icon_state = "table2-idle" -/obj/machinery/optable/MouseDrop_T(mob/target, mob/user) - - var/mob/living/M = user - if(user.stat || user.restrained() || !check_table(user) || !iscarbon(target)) - return - if(istype(M)) - take_victim(target,user) - else +/obj/machinery/optable/MouseDrop_T(mob/living/carbon/target, mob/living/user) + if(!istype(target) || !istype(user)) return ..() + if(!Adjacent(target) || !Adjacent(user)) + return ..() + + if(user.incapacitated() || !check_table(target, user)) + return ..() + + take_victim(target, user) + /obj/machinery/optable/verb/climb_on() set name = "Climb On Table" set category = "Object" set src in oview(1) - if(usr.stat || !ishuman(usr) || usr.restrained() || !check_table(usr)) + var/mob/living/user = usr + if(!istype(user) || user.incapacitated() || !check_table(user, user)) return - take_victim(usr,usr) + take_victim(user, user) -/obj/machinery/optable/attackby(obj/item/weapon/W as obj, mob/living/carbon/user as mob) +/obj/machinery/optable/attackby(obj/item/weapon/W, mob/living/carbon/user) if(istype(W, /obj/item/weapon/grab)) var/obj/item/weapon/grab/G = W - if(iscarbon(G.affecting) && check_table(G.affecting)) - take_victim(G.affecting,usr) + if(iscarbon(G.affecting) && check_table(G.affecting, user)) + take_victim(G.affecting, user) qdel(W) return -/obj/machinery/optable/proc/check_table(mob/living/carbon/patient as mob) +/obj/machinery/optable/proc/check_table(mob/living/carbon/patient, mob/living/user) check_victim() if(victim && get_turf(victim) == get_turf(src) && victim.lying) - to_chat(usr, "\The [src] is already occupied!") + to_chat(user, "\The [src] is already occupied!") return 0 if(patient.buckled) - to_chat(usr, "Unbuckle \the [patient] first!") + to_chat(user, "Unbuckle \the [patient] first!") return 0 return 1 \ No newline at end of file diff --git a/code/game/machinery/oxygen_pump.dm b/code/game/machinery/oxygen_pump.dm index b40314d2c2..37c75957be 100644 --- a/code/game/machinery/oxygen_pump.dm +++ b/code/game/machinery/oxygen_pump.dm @@ -41,8 +41,11 @@ return ..() /obj/machinery/oxygen_pump/MouseDrop(var/mob/living/carbon/human/target, src_location, over_location) - ..() - if(istype(target) && CanMouseDrop(target)) + var/mob/living/user = usr + if(!istype(user) || !istype(target)) + return ..() + + if(CanMouseDrop(target, user)) if(!can_apply_to_target(target, usr)) // There is no point in attempting to apply a mask if it's impossible. return usr.visible_message("\The [usr] begins placing \the [contained] onto [target].")