From 7b1a0daad211339240dc552b00dc2f7d730211cc Mon Sep 17 00:00:00 2001 From: Rhials <28870487+Rhials@users.noreply.github.com> Date: Thu, 20 Jun 2024 13:19:30 -0400 Subject: [PATCH] DRAGnet snares now use a dedicated beacon instead of the station teleporter (#84118) ## About The Pull Request This sets up an alternative to the DRAGnet snares using the teleporter to determine the destination of their snare teleport -- The DRAGnet beacon. ![drag net](https://github.com/tgstation/tgstation/assets/28870487/0084d4d9-378f-4896-bc88-0685d6407999) Rather than using a convoluted system that routes via the teleporter, DRAGnets can now by synced with a DRAGnet beacon. When snare rounds are fired and successfully teleport a target, they will instead be sent to the synced beacon. Syncing can be done by either pressing the gun to the beacon or vice-versa. These beacons can be wrenched into place, then swiped with a security ID to block them from being unwrenched. An emag will unlock and unwrench the beacon, and fry its access control. To facilitate this change, roundstart DRAGnet armory spawns are now done through spawners (like the other weapons), which includes a single beacon to be used by the two guns. You can print more with basic sec tech, and one is included in the DRAGnet crate from cargo. The teleport is also slightly more accurate, to make it more consistent. As usual, if not synced to a beacon, DRAGnets will just teleport your target willy-nilly. ## Why It's Good For The Game The current system is both clunky and prone to mishaps, dissuading players from engaging with it. The "active" teleporter concept has always been a bit of a mystery to players, and when a system for properly using the DRAGnet teleport is set up, it's incredibly easy to break even on accident. Every time you teleport a prisoner you have to pray that no bumbling space explorer decided to reroute the teleporter to the abandoned satellite. This system is much more clear and reliable. It's also more versatile, allowing for multiple teleport networks to be set up simultaneously. Security is starved for creativity at times. They deserve to be able to do some wacky dynamic stuff with their tools. ## Changelog :cl: Rhials balance: DRAGnets now come with a beacon they can be synced to, which will set the destination for the snare round's teleport ability. /:cl: --- _maps/map_files/Birdshot/birdshot.dmm | 2 +- .../map_files/Deltastation/DeltaStation2.dmm | 5 +- .../map_files/IceBoxStation/IceBoxStation.dmm | 5 +- _maps/map_files/MetaStation/MetaStation.dmm | 3 +- _maps/map_files/NorthStar/north_star.dmm | 2 +- _maps/map_files/tramstation/tramstation.dmm | 3 +- _maps/map_files/wawastation/wawastation.dmm | 3 +- .../objects/effects/spawners/random/armory.dm | 10 ++ code/modules/cargo/packs/security.dm | 7 +- .../projectiles/guns/energy/energy_gun.dm | 27 +++++- .../projectile/energy/net_snare.dm | 87 +++++++++++++++--- code/modules/research/designs/misc_designs.dm | 13 +++ .../research/techweb/nodes/security_nodes.dm | 1 + icons/effects/random_spawners.dmi | Bin 95426 -> 95835 bytes icons/obj/devices/tracker.dmi | Bin 11771 -> 11967 bytes 15 files changed, 134 insertions(+), 34 deletions(-) diff --git a/_maps/map_files/Birdshot/birdshot.dmm b/_maps/map_files/Birdshot/birdshot.dmm index 86dd2443803..ef02944be57 100644 --- a/_maps/map_files/Birdshot/birdshot.dmm +++ b/_maps/map_files/Birdshot/birdshot.dmm @@ -45122,7 +45122,7 @@ /obj/structure/rack, /obj/effect/spawner/random/armory/riot_helmet, /obj/effect/spawner/random/armory/bulletproof_helmet, -/obj/item/gun/energy/e_gun/dragnet, +/obj/effect/spawner/random/armory/dragnet, /turf/open/floor/iron/dark/small, /area/station/ai_monitored/security/armory) "qaV" = ( diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index f399c25d3b1..9f1a266b185 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -882,11 +882,8 @@ pixel_x = 3 }, /obj/structure/window/reinforced/spawner/directional/north, -/obj/item/gun/energy/e_gun/dragnet{ - pixel_y = 4 - }, -/obj/item/gun/energy/e_gun/dragnet, /obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/spawner/random/armory/dragnet, /turf/open/floor/iron/dark, /area/station/ai_monitored/security/armory) "alG" = ( diff --git a/_maps/map_files/IceBoxStation/IceBoxStation.dmm b/_maps/map_files/IceBoxStation/IceBoxStation.dmm index 09525a5fa06..9e5ecd8c048 100644 --- a/_maps/map_files/IceBoxStation/IceBoxStation.dmm +++ b/_maps/map_files/IceBoxStation/IceBoxStation.dmm @@ -30518,15 +30518,12 @@ "jko" = ( /obj/structure/railing, /obj/structure/rack, -/obj/item/gun/energy/e_gun/dragnet{ - pixel_y = 4 - }, -/obj/item/gun/energy/e_gun/dragnet, /obj/structure/cable, /obj/machinery/door/firedoor/border_only, /obj/effect/turf_decal/tile/red/half/contrasted{ dir = 1 }, +/obj/effect/spawner/random/armory/dragnet, /turf/open/floor/iron/dark/textured, /area/station/ai_monitored/security/armory/upper) "jkx" = ( diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index 24c017ab71b..6cd01a35c9d 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -32130,12 +32130,11 @@ /area/station/maintenance/fore) "loY" = ( /obj/structure/rack, -/obj/item/gun/energy/e_gun/dragnet, -/obj/item/gun/energy/e_gun/dragnet, /obj/effect/turf_decal/tile/blue/half/contrasted{ dir = 4 }, /obj/machinery/light/small/directional/west, +/obj/effect/spawner/random/armory/dragnet, /turf/open/floor/iron/dark, /area/station/ai_monitored/security/armory) "lpo" = ( diff --git a/_maps/map_files/NorthStar/north_star.dmm b/_maps/map_files/NorthStar/north_star.dmm index 0f9faf9338b..7ce411f102f 100644 --- a/_maps/map_files/NorthStar/north_star.dmm +++ b/_maps/map_files/NorthStar/north_star.dmm @@ -57668,7 +57668,7 @@ /area/station/science/lower) "oOW" = ( /obj/structure/rack, -/obj/item/gun/energy/e_gun/dragnet, +/obj/effect/spawner/random/armory/dragnet, /turf/open/floor/iron/dark, /area/station/ai_monitored/security/armory) "oOY" = ( diff --git a/_maps/map_files/tramstation/tramstation.dmm b/_maps/map_files/tramstation/tramstation.dmm index 4015dbf2ad3..a8b81413f9c 100644 --- a/_maps/map_files/tramstation/tramstation.dmm +++ b/_maps/map_files/tramstation/tramstation.dmm @@ -28696,10 +28696,9 @@ /area/station/cargo/storage) "jlQ" = ( /obj/structure/rack, -/obj/item/gun/energy/e_gun/dragnet, -/obj/item/gun/energy/e_gun/dragnet, /obj/item/radio/intercom/directional/north, /obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/spawner/random/armory/dragnet, /turf/open/floor/iron/dark, /area/station/ai_monitored/security/armory) "jlX" = ( diff --git a/_maps/map_files/wawastation/wawastation.dmm b/_maps/map_files/wawastation/wawastation.dmm index 8bec8ecfae0..f06276d3e9f 100644 --- a/_maps/map_files/wawastation/wawastation.dmm +++ b/_maps/map_files/wawastation/wawastation.dmm @@ -13544,12 +13544,11 @@ /area/station/maintenance/department/medical) "eQJ" = ( /obj/structure/rack, -/obj/item/gun/energy/e_gun/dragnet, -/obj/item/gun/energy/e_gun/dragnet, /obj/effect/turf_decal/tile/red/half/contrasted{ dir = 1 }, /obj/item/radio/intercom/directional/south, +/obj/effect/spawner/random/armory/dragnet, /turf/open/floor/iron/dark, /area/station/ai_monitored/security/armory) "eQQ" = ( diff --git a/code/game/objects/effects/spawners/random/armory.dm b/code/game/objects/effects/spawners/random/armory.dm index 5292ca6ad09..dfb71ff10d5 100644 --- a/code/game/objects/effects/spawners/random/armory.dm +++ b/code/game/objects/effects/spawners/random/armory.dm @@ -45,6 +45,16 @@ icon_state = "shotgun" loot = list(/obj/item/gun/ballistic/shotgun/riot) +/obj/effect/spawner/random/armory/dragnet + name = "DRAGnet spawner" + icon_state = "dragnet" + loot = list(/obj/item/gun/energy/e_gun/dragnet) + spawn_loot_count = 2 + +/obj/effect/spawner/random/armory/dragnet/spawn_loot(lootcount_override) + . = ..() + new /obj/item/dragnet_beacon(get_turf(src)) //And give them a beacon too! + // Armor /obj/effect/spawner/random/armory/bulletproof_helmet name = "bulletproof helmet spawner" diff --git a/code/modules/cargo/packs/security.dm b/code/modules/cargo/packs/security.dm index e36f9f84cac..05360fe913f 100644 --- a/code/modules/cargo/packs/security.dm +++ b/code/modules/cargo/packs/security.dm @@ -214,9 +214,12 @@ /datum/supply_pack/security/armory/dragnet name = "DRAGnet Crate" desc = "Contains three \"Dynamic Rapid-Apprehension of the Guilty\" netting devices, \ - a recent breakthrough in law enforcement prisoner management technology." + a recent breakthrough in law enforcement prisoner management technology. Includes a DRAGnet beacon." cost = CARGO_CRATE_VALUE * 5 - contains = list(/obj/item/gun/energy/e_gun/dragnet = 3) + contains = list( + /obj/item/gun/energy/e_gun/dragnet = 3, + /obj/item/dragnet_beacon = 1 + ) crate_name = "\improper DRAGnet crate" /datum/supply_pack/security/armory/energy diff --git a/code/modules/projectiles/guns/energy/energy_gun.dm b/code/modules/projectiles/guns/energy/energy_gun.dm index fec816b1e76..78e75d1f306 100644 --- a/code/modules/projectiles/guns/energy/energy_gun.dm +++ b/code/modules/projectiles/guns/energy/energy_gun.dm @@ -86,7 +86,7 @@ /obj/item/gun/energy/e_gun/dragnet name = "\improper DRAGnet" - desc = "The \"Dynamic Rapid-Apprehension of the Guilty\" net is a revolution in law enforcement technology." + desc = "The \"Dynamic Rapid-Apprehension of the Guilty\" net is a revolution in law enforcement technology. Can by synced with a DRAGnet beacon to set a teleport destination for snare rounds." icon_state = "dragnet" inhand_icon_state = "dragnet" lefthand_file = 'icons/mob/inhands/weapons/guns_lefthand.dmi' @@ -95,10 +95,35 @@ modifystate = FALSE w_class = WEIGHT_CLASS_NORMAL ammo_x_offset = 1 + ///A dragnet beacon set to be the teleport destination for snare teleport rounds. + var/obj/item/dragnet_beacon/linked_beacon /obj/item/gun/energy/e_gun/dragnet/add_seclight_point() return +/obj/item/gun/energy/e_gun/dragnet/item_interaction(mob/living/user, obj/item/tool, list/modifiers) + if(istype(tool, /obj/item/dragnet_beacon)) + link_beacon(user, tool) + +///Sets the linked_beacon var on the dragnet, which becomes the snare round's teleport destination. +/obj/item/gun/energy/e_gun/dragnet/proc/link_beacon(mob/living/user, obj/item/dragnet_beacon/our_beacon) + if(linked_beacon) + if(our_beacon == linked_beacon) + balloon_alert(user, "already synced!") + return + else + UnregisterSignal(linked_beacon, COMSIG_QDELETING) //You're getting overridden dude. + + linked_beacon = our_beacon + balloon_alert(user, "beacon synced") + RegisterSignal(our_beacon, COMSIG_QDELETING, PROC_REF(handle_beacon_disable)) + +///Handles clearing the linked_beacon reference in the event that it is deleted. +/obj/item/gun/energy/e_gun/dragnet/proc/handle_beacon_disable(datum/source) + SIGNAL_HANDLER + visible_message(span_warning("A light on the [src] flashes, indicating that it is no longer linked with a DRAGnet beacon!")) + linked_beacon = null + /obj/item/gun/energy/e_gun/dragnet/snare name = "Energy Snare Launcher" desc = "Fires an energy snare that slows the target down." diff --git a/code/modules/projectiles/projectile/energy/net_snare.dm b/code/modules/projectiles/projectile/energy/net_snare.dm index 1bb7988e4ba..ac35fb5503e 100644 --- a/code/modules/projectiles/projectile/energy/net_snare.dm +++ b/code/modules/projectiles/projectile/energy/net_snare.dm @@ -11,10 +11,15 @@ SpinAnimation() /obj/projectile/energy/net/on_hit(atom/target, blocked = 0, pierce_hit) + var/obj/item/dragnet_beacon/destination_beacon = null + var/obj/item/gun/energy/e_gun/dragnet/our_dragnet = fired_from + if(our_dragnet && istype(our_dragnet)) + destination_beacon = our_dragnet.linked_beacon + if(isliving(target)) var/turf/Tloc = get_turf(target) if(!locate(/obj/effect/nettingportal) in Tloc) - new /obj/effect/nettingportal(Tloc) + new /obj/effect/nettingportal(Tloc, destination_beacon) . = ..() /obj/projectile/energy/net/on_range() @@ -29,26 +34,18 @@ light_range = 3 anchored = TRUE -/obj/effect/nettingportal/Initialize(mapload) +/obj/effect/nettingportal/Initialize(mapload, destination_beacon) . = ..() - var/obj/item/beacon/teletarget = null - for(var/obj/machinery/computer/teleporter/com as anything in SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/computer/teleporter)) - var/atom/target = com.target_ref?.resolve() - if(target) - if(com.power_station && com.power_station.teleporter_hub && com.power_station.engaged) - teletarget = target - else - com.target_ref = null - + var/obj/item/dragnet_beacon/teletarget = destination_beacon addtimer(CALLBACK(src, PROC_REF(pop), teletarget), 3 SECONDS) /obj/effect/nettingportal/proc/pop(teletarget) if(teletarget) - for(var/mob/living/L in get_turf(src)) - do_teleport(L, teletarget, 2, channel = TELEPORT_CHANNEL_BLUESPACE)//teleport what's in the tile to the beacon + for(var/mob/living/living_mob in get_turf(src)) + do_teleport(living_mob, get_turf(teletarget), 1, channel = TELEPORT_CHANNEL_BLUESPACE) //Teleport what's in the tile to the beacon else - for(var/mob/living/L in get_turf(src)) - do_teleport(L, L, 15, channel = TELEPORT_CHANNEL_BLUESPACE) //Otherwise it just warps you off somewhere. + for(var/mob/living/living_mob in get_turf(src)) + do_teleport(living_mob, get_turf(living_mob), 15, channel = TELEPORT_CHANNEL_BLUESPACE) //Otherwise it just warps you off somewhere. qdel(src) @@ -58,6 +55,66 @@ /obj/effect/nettingportal/singularity_pull() return +/obj/item/dragnet_beacon + name = "\improper DRAGnet beacon" + desc = "Can be synced with a DRAGnet to set it as a designated teleporting point." + icon = 'icons/obj/devices/tracker.dmi' + icon_state = "dragnet_beacon" + inhand_icon_state = "beacon" + lefthand_file = 'icons/mob/inhands/items/devices_lefthand.dmi' + righthand_file = 'icons/mob/inhands/items/devices_righthand.dmi' + ///Has a security ID been used to lock this in place? + var/locked = FALSE + +/obj/item/dragnet_beacon/item_interaction(mob/living/user, obj/item/tool, list/modifiers) + if(istype(tool, /obj/item/gun/energy/e_gun/dragnet)) + var/obj/item/gun/energy/e_gun/dragnet/dragnet_to_link = tool + dragnet_to_link.link_beacon(user, src) + return + + if(isidcard(tool)) + if(!anchored) + balloon_alert(user, "wrench the beacon first!") + return + + if(obj_flags & EMAGGED) + balloon_alert(user, "the access control is fried!") + return + + var/obj/item/card/id/id_card = tool + if((ACCESS_SECURITY in id_card.GetAccess())) + locked = !locked + balloon_alert(user, "beacon [locked ? "locked" : "unlocked"]") + else + balloon_alert(user, "no access!") + +/obj/item/dragnet_beacon/wrench_act(mob/living/user, obj/item/tool) + if(user.is_holding(src)) + balloon_alert(user, "put it down first!") + return ITEM_INTERACT_BLOCKING + + if(anchored && locked) + balloon_alert(user, "must be unlocked first!") + return ITEM_INTERACT_BLOCKING + + if(isinspace() && !anchored) + balloon_alert(user, "nothing to anchor to!") + return ITEM_INTERACT_BLOCKING + + set_anchored(!anchored) + tool.play_tool_sound(src, 75) + user.balloon_alert_to_viewers("[anchored ? "anchored" : "unanchored"]") + +/obj/item/dragnet_beacon/emag_act(mob/user, obj/item/card/emag/emag_card) + if(obj_flags & EMAGGED) + return FALSE + obj_flags |= EMAGGED + locked = FALSE + set_anchored(FALSE) + do_sparks(3, TRUE, src) + balloon_alert(user, "beacon unlocked") + return TRUE + /obj/projectile/energy/trap name = "energy snare" icon_state = "e_snare" diff --git a/code/modules/research/designs/misc_designs.dm b/code/modules/research/designs/misc_designs.dm index 8ae869220de..0ea6c41e164 100644 --- a/code/modules/research/designs/misc_designs.dm +++ b/code/modules/research/designs/misc_designs.dm @@ -818,6 +818,19 @@ ) departmental_flags = DEPARTMENT_BITFLAG_SECURITY + +/datum/design/dragnet_beacon + name = "DRAGnet Beacon" + desc = "A beacon that can be used as a teleport destination for DRAGnet snare rounds. Remember to sync it with your DRAGnet first!" + id = "dragnet_beacon" + build_type = PROTOLATHE | AWAY_LATHE + materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 5, /datum/material/glass = SHEET_MATERIAL_AMOUNT * 2) + build_path = /obj/item/dragnet_beacon + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SECURITY + ) + departmental_flags = DEPARTMENT_BITFLAG_SECURITY + /datum/design/inspector name = "N-Spect Scanner" desc = "Central Command-issued inspection device. Performs inspections according to Nanotrasen protocols when activated, then prints an encrypted report regarding the maintenance of the station. Definitely not giving you cancer." diff --git a/code/modules/research/techweb/nodes/security_nodes.dm b/code/modules/research/techweb/nodes/security_nodes.dm index 97092f2682a..8b931fd2273 100644 --- a/code/modules/research/techweb/nodes/security_nodes.dm +++ b/code/modules/research/techweb/nodes/security_nodes.dm @@ -32,6 +32,7 @@ "scanner_gate", "turret_control", "pepperspray", + "dragnet_beacon", "inspector", "evidencebag", "handcuffs_s", diff --git a/icons/effects/random_spawners.dmi b/icons/effects/random_spawners.dmi index ddd6fd6f608bd114a92d6210f8bf26e4e9968e71..ed6c0c8702e45438562f6b7aa916f29cd7c1d1b2 100644 GIT binary patch delta 5975 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 diff --git a/icons/obj/devices/tracker.dmi b/icons/obj/devices/tracker.dmi index 59884c0aff8810423f1206e144301f016b54c262..39be63ef4de814e2bfd48b1848367c37cb98b46d 100644 GIT binary patch delta 10423 zcmY*<2UHVX*KQCI6%~C!ij=4zh*AXUE!e;Sf`Alh5d{%3^q!DGMNyQNphyi;1OdSp zkWPXH0V$C#1PDk8JrHV0`-ktl|6TWHtywd3GIP#8dq4X*`|LeTC!$NDEYG`t&phV= zXqT+w&hrf5wk4P1ohl6$ClN2$!3m46jjli-Cn4~wmu`h+ERBX|2ybL^S3@iID+eg% z>_07Z>FAz9$gSc zT&s{fWng@5>egewup{TRqnbKiJo&N1R=suJ5)l{_Y8$x|W&lkHHxCUaH53(B4WVf%{k6^unmD$lY)0xr@h}^NbPc{O4pi5jX z#|^*+&A?}uRYP}dla`R1SIn-g4kBj`8lCHr=7H+pEX({}*8P=t171e0Z;TO~Z80I{ zfM?mpBikRVmJ?08qzi}ZuE5K9TQTp03|~y958m*1tS50%cdf<<2e}hKC9S%S1#?N{ zqIm91&d`#p>evP=WY0gGD8&@I@+?ZO!*98Ub`0KAQh<1EPV{9lZfvD$v^~AuZn0(l zZbA{Wd>h`wk+2*%0ne2UW_F^InC1kZhPH-N+)-AhHB}2%V~)L5A8z9wLHc^-bc$~S zlhH&KFq*d>=3{p*03WnPN0{e{GiMe?FS?NN~>V zDl;1znX}h{F0(H;?ySePSyox2+sef7L5y6pp+S~RJ0ir&H?n3+fX(<|@Ku?+UM#8A z%XSU1q8Y7?dL(ds-f*eun|sr^O+x2!KEQ$eMWIlp*&hzCGj|H-o4Whw)hwo38)cL1T*{LrXm6Z!SNjVFc@xr#QEDdC~`XYZ*Oo z#=V)%to~Ki5i0Qe94x|6EoqbAe|=86#`F6nwX6TwyIWUSY ze)MrpwfYz7!xBtLp;2&q7oxk6+cm!I9L&D-#mJ`0y{;tL!*h|z%c&X)Dir?3EI#&x z3G_Nvmt?3y*UWofs{+UFWQ1Ym5L#JVJl_MCZ~ulaJxrASLg}p>ob*fhX#kOzrrg#V zW9!p+_XQXY%ZzVVWP57@X4i08^gC|@u6(=w`*@t^CEiQd^(Tr}6(2xqWj^gG4WD|* zZuwzT=|SZ=Jm0TCXQL9FKb@+k0tY%jiQ&xfjRzB8*;EHU z2sQ`!@+Y#bIlkAQaqx-DsTXqlr-_rR{A(c$w^!Wgy;BL59H~ogV?)Li3UA3HQ(&I%mtS#bKuqbK zhH;7%fS78}tO9Q-<>$|x%V>TjT3l6Scl`Kq3ncOr)@2LGjaDJD=r`B5vXd+g8DrGy zEqV$#!}h@^PJ{_R2W${)wFP`dGoT)2AbG@l^>1^Uet3Bxm%W9ex13-XksBqagpTdX zY>64>(+BDDKpEW=R;m8^&1KBQ42)?SH{dg(2J>jB7u@Nc|4j+ zzc|ciusv3K;EeNwk`&k`--{cB1#pc0n0lyY@)Qc|bpnr5iV9;0=exS+H%Lk)f>z>86}U8kH1K9Q zA>s*|{!~qdWnP$*^KGco3-|nxc+Wgr3pp&z&{3hkij58Gx3#}ks^U_oKC@Z2!FV`D zN5EL=`woeXUwd>J12Bgwg2QIaE6}2hXXzBo<|8GY$=6M5Ws&S)sVqHvY;`-{j)yg3XdqOaH)eY2hpU% zFrY*dDHK1p6O3~k2LmwUj2LRyh6f`YdLf`^IIe!<=LGaB;RGpmGsZ@(J5{4D<)OFt z7q4D9CD5KYxf`b2jtyb|Y9fd8hKC(HPmG#bv|Y6v6C9}x^n~|JFAX<4hkoLY;_nhr z27CN~HD%76W#^h8DbpJZge{MhIB+&AJkzJD@dkS5-@+*L-C?_ShlL7RcE8Q!S1+_L zXx*Y2>{O}vUWvHQyyZl;*aguCOMI!Hc8Q5}xa?eHfhArU?pXCGRl3K}GM-0EU43>U z25NU@Yk8iv^8Mk12QO+Px2u(3Gl1pk{U_y!?=NNQh00OXh`tCMi#toUKfFdIs{mQk zHchSY)#-YW1}WwDqwxniZ%)Se*Gw;9&YHmC@Tq#{W}a=a-CUB1^y(umwijhP;#GAS zI6HNglc@3T3{T?Gbaq=oR8pYv5d#ZbU?eGMr=qNHubSZMbb1#Pm?P&@&3w1>g{^j! z{X_$#@5dm!&Wyk~LVxf$ywjX8Em&_DOIqm6jNa%l)6?gkJo3?huYSb(gTvx#vUAF_ zaGac1?}r zk~lXJMPOy4BD;*R6HyRK8XLB%zhY^y;V=#*nPA+gyhfU9!FySKHVMymvVyQfI2FdT zOhL%dYnR^;h*)+M59Gq{dDZb}lctXBE$`0MI(^Au&R709PK~VB@~7(RcNEmd%)14> zE=kE+eWoakq)lXv9rjWIrjg&(5F9-pq$(G9mw;+<=B`IeCAC-37|&=6#51lX0HoDk zNo3`l|Cz3iV@vB3Ihh=*72BWuk5;x9a^4*fh-3uB+=4QX`Hb@NL~l>@5etVAS~pGGBMY%ef6QfOMkkx>xRIK4iY-|z4FWs zv9qR`G5vI{M^`9hG}c}gF4HAm+=vR9UvkmAOAi&5l1L|_s=M@qUwAUo@hDrY`ZgV; zA*Yv{kLqA@2vcVc50%qV!FuD{a2|dlFapN58SIK+=DMgdQ0sv4Wlri9%Nq*B{3M_C zN}rZZa|f>VUplImlQbGzd@ggoJV4s%okD5RYjOSUT7!tp{=XN3=jnbAm?@>Y z+~K1>W9O7T-7_P+GAn|l3=_IXktnvez+3~*K(WW@TX>6BrWdl2liN89Yw6znNfRVo zj2X@52|%#*KuHVBf1yWXydUO8%`_{h1b)MIh@QZnfF{h#B-Gou&TKPkqP-sq$9Dbl zLwWn}ZSZq`X`@q=c|ZPhc>T&Q6irLT%8pTAYqY5lL!Sn2z9wsc2C~_yU5n{M0a(~p zyi=xGm)?zg7Bp%b&HL3@BWmFd4$%#szm$;G`uqF8aIWkV5mxcDppl)H?cc{oe=@m? zNzit*0VjPm;V0V_x_WzH0nhsN?w@rgp99+NLp$ZeF~44NBEdX-eX@DEWmf31B0ZP# z+&u}()|4f#jUHP*&MZrmH2|a|^k+g|O4%|Nb>>jhpGh!xfDEh)f*Ze?|+od(3Ci=OWHe)=xS z!77QBQHGseQW9{Dn$oot&`$qF(&c{b$EVK}-20((Pa`LlJWO|!6j>l1ZMTn=dI=v= zJy9XN{wm=S>R+MA%`!@h(bHB1;jH6+ns4yIoLA{}4_4Yj7$4`ya#MB$4bQmk&?#Ki zM0B3K+CS~(YDS+yd;?O~q+V@B?p?e~Zg(){(+|9=*LmwN(^`T-q=bWm3R$$Cs5!%PUE1E+dV)n#<*%nYUQ&~Ak?3~RUS)S zuUa-S9JVnfaNJ(W8||$<{JAl_xOorZgEuNuedV*o3E?6Xj5!K|Rhgywj=jY*2f$!U4~%j6=b7$1L^LxcMnj$r_4Rk3iSXD^RUHhS?QWfR$LG9>9aUjjw^zN9 zZCqlV+Su9RBI`JRKm5RsZ236s40L)?RU-YjbKZfy|R#n4_ zG?WkvWPb-nL~5NG<7H?BSLr_#PI&kQT&|+F{_q`!MDZLHgFtwNFF+vs&f+Yf#$ftl z;35PvS69r0P)$&jgSSci2M1k7`L(+TZHA;3?m%?B{?@t0%iid_Kjig@Dtsecn?wasEk1SEuOBAlZGkG+1yla>}?5 zXileS_xT|KEl>XPbyd!L>GPjf0+p4~BWUidrD)xh5dWv?Ie+#^kiF#T&fB2Vg(+YC zWj)3hIbTDPK|pT4_`l>a2zFty0Gp<DW zsx~lmVJGq)GrnoY!ylY9IAzBH7+?&o8EMz@j28V_$b8iZwDysr z00AxF!V;gu(04jQ!M!EqP87~fK?c`!QUEuu#D_zO7yw2n6-?XiWY;&m`g^+G#U#?GNXw9!G68^c)U;Tu^<&EzW|XWr7ANnQ@iTv&aZm0A2%l|b@bNlvb#+vW>Jj*^yCTT7~@~sRq zpSdpfD3Q@=E}#f&yFSvg9o>R34R9W5VU?g*6=x{345IEslBIi=^>!ra*^8qi;^kp{ z$%kbCg%H`9twP0CMcG)OSqdio!pEX|?a^&z^*TL9GBaWp&X*#2~PXhMO`M!Hm%d@gCmWZH1-2L^{ zyzY;t*w2CdOCJE4Jm)8IU_TTU+22=j@ToM_47-!7u5uo#Ij`- zW~Y5;4*hAO^L9Ks($aL1L`vVI?7mudl^4a=nmYd2tcueq&Ap!peMIP|+&SB}YWZyr(cdOM zZ|F}&_w-nsV4ok6DvFcPk{gjWV5fR!9pKXo1^ezDi`Zvv>uftTKlBqsYL>_yFRzam z?{|nTQHTf$EuX&euTT3wIaRkVt@fIknMs+7L4E_+jPv6lN{Y8u%NZkd(feoL{qI zpY`U|_4c7<^)Two8>-`PjT>D@U@ogNzb{W39y5-9N~(0`4kQ5YXX;Z2+7m`nR^bkp z-j*d#Db5xqm9;O3&-Z<_`3ATDG)g?`0An~9GVb#hcRN(Qh6oryYgMSg*mGe(BuLFQ zK8jyZx}-B*tGMuRZ7F#6UK#%?-Nl#ay#7G3&;TMVIDXjhK=JWq@!!~Cv`8fi(G|T9 zq8_uy=P3vY&)MJak-Amnd^1txNDY{Whg7}*ekMLqcByOi&$v$GgR`Q#}CN#qsdDJZO^M@CG-97!i2Cu1(`@yXrU zi3naAwuOb);xY7q$;xe-OMS@UMS~_t)QB-pwbhLqaj~(njw8*^2n6NB#e5#f9nm0( z8c+4XzP>^N!O$&v!6L9d zAJj|o;`~I6aZy4Cf$Yd4m|xe%WV#RyJ zf17wnSu-<@&74IVI-V-yI(K^RJp}QZcbJiFIJ(~Zwdkg-P_4@Ju?yn|=`ZCanqdc? zfA4?n=~xOZv=DEujhZh^o6MZOGo`p7kKbk;Kggfu)g~2JE1vT7Zc?iGd#X&J@P(+# zYY9J}4D%YToO z74P&551(>ggC@a&LJ$+reG#q|GdY5d}tC6*(sNCLnaNjjv`Pk3KRG zgg}HPExzr+`HNfw7cd1-mBL`S_mR`2vtX7nOClk>kC$&;(ZBnm7-y*Q|pGb2LC2G9?F!V})M5E&P63020~< zLR{D#|q8~ABkzqlz~8gpECxFZC4Hn z{4r4jd2nF242ZK55e0N;IWH-Jifb_$!LGj;yK$}f{KeVIWZ*fNAfIYD!hTM5HU!h; zt>GqudN3*-3}}tInCS1XbW$vNcp(9<%JETGz#xdJ!vksJ7m~BE&?eWEQigORwx8{w z+4#PVQG1zQC=ld-HhqnZG6;k~w%xw{XzLPBNs((@0?HP+d1a9sVROZC)rg3$+i4g4 z%O^b!pfY!RFCUA3iOVD}*O_6bf)f*EZ|i`XV=nyrc-g;cE*pNjWh8wx$EyVU*oV4fN7f$(V!9Hd z^pfMSvKscWu6khqE9Q_FGa?A|0siLB*D4bykp`b_5qMQ)w;hDEbEzx6ASySqFE~ZH zp;Q~(LCU*YmuYh1UmvUianbuv`L9sm;-?g-(ZoxYhHNu!!}g+R%k7334mDn0=!2lX z&&`vJmWDwKB9qY*Jr~*M^l(x!&$ekuZI9wQ8uCn@u<}Hjr$v;|zd!8v8Oj51k_Qs= zi^dyb5}7Or`SW6o@6o9U(V90B_s8Q3(2#;$_h ztX~swWzT;rFS~mw97;qMIEkzdG6XEn_424sj_YbT1R8Gowra6eWokjq%Vtw7tPRwAbc;5W{0<~qXnBglS>xi@Pio~LBIB9EGs^Rk24 zT?5_URr;u)+mzA>CsH}vxv#E>ce)*!68vM6?uW0ASeFHX-bSitJs3m)jcb4IB{0&G zNDKwhm0f4LsH}1$f{fr+nIV|-t4RwfS%JXYWp;Oh{^)+f+UQ)@=f47-bb0fPMOpHA z`kGxr76=YQMtBlbWl-R^E-~_4Xcp+Afn=9ZI5xw_;2$62RL_U@_iWU9%<-~(J;d#F zE}3MA(+&3OWm6>!!Qu@l%quj!4lFv{Gp4jiqaL{r^9t&ZqmIouVNCfH;Q&yq_b2TA zvdoh626l6utv+FBPzB9(%_W&_*cZIvUMk2uu%$C+q(Y(F7kjaZ0YlTn5qG@5MOrKc z75y~iN-}t+w5r+vvY!3Rn&M9Z);hKHWK80dWu+o-x%80PieJ$kmbFp2OVI6S1a{nc zp${qyJgm@Oj#v|CIA3Q5h`QQmT!>@{sqkTm8%=hRkw0sq=YVj(+Mifj{o5*-0Sz#0 zNBkip-cJLYL!Q{YFW!Si2rDhN`({Tg5|*V03#doXRbjb%27c)pl>2&po64%if6G0=^-`xtoO8`WSP7OJ0mA#&XRschpl0tIj!=Im*ri*9b(UuSgJyPCvH zer&9#3?xvyEF)krW7BO|HS*TK148x<5MQ>Lc3!Q3BO4AK4s_>h*OftQIU%MCq zT{#R~^zAu((Kj}=%B?NO9OKb7#l`%FG_KRzPc$OaF|Y?l9qZY26JPR&6j#iUB7WMF zahvnafiqekT5MnD`U$f%)|k!`cE8o+s~bNSlxA`8&u90fkfq_{4hI~mq{ShdHShGX ze^!{6ctIv9ZQ|^w4h}rLPs+N_P=vLU=m3>VS8=YnQ0dVwvNTd#(O;(IRMpzv?Ma|| zRtiM8*e=RP9j*_F)l|Hl=Qe23HZ?eNmGj1FtcS*bxG$WS-#COv!$RU{tMb?L)eZS; zT?SeKL#O{&N=%tq9LpF4KT`tXySl0T-S|rc-rRu-LuH=|s2#1_i0jqP@$s$piJYoq zda3^h?2JS~-~0_Q_d7yauyi}Mi(q+*9CXZdp#qG(jPC2ReXoPxuOM+&V$#PRcYuZE z#7R?A(-Kb}qsMpm;*y|Z|B1Rz=I$W`+C2-Tmc%A=E~$?nuYy5p6_@_o$WcuX29IXk z$tNMyl7j^lZ*m{)3-S>F39vTCM{oQsc-ojIc+!KGrSUsL1acCoAo^KvxNw_8gkxP1 z)pnk*#l%xN70hM9aNU?zU4azCDQ95y3pOt}-OlSrVt2$M@a#-lM1K$kiUP-FoCYHS zGMcLAX{+6Bi6$G4DZx*Kee+LZHmv+L1FN@L;j{L+Ib~(bE2A11Pvi5;S}JnHol&Pf zoru->iY_K<(-ceS$*u3wVd8levPkn=+AWy;0#`BvtEst|EPHrq#0-0j=tKM&U)xvB zSh>dpCP8gEz~{tP3Jz~zPvBYmGF2V9=v9y52Db|ET6e+_qianlKJ$sQ{YBKy%ux!_ z`hOb6*fVQjd%TJ}>{HmrZR#-D=XVK{Q1(fS*7v1)H2Zj&;R4hD_cJqSY%;A{C9MP> zxppM-f=>z|vfCYQopNln(r*s9Lg+N90u?&`OfxQObQDDqXNJP9x2&p7u^1~I*bK(z zm4q*M={)yj8-Db$)pT(J0(EMpN~o)D+ni|f4Qv?oHG~F|{R><|K2T&PlvKEXYG=E+ z=izn#&cweXm$H#h_hmALD8|{oMC*wli6N^=Wri=j=P)$8p7pXHLooSyKbB~OrMPNtA%K7*$sDl8_PJ+%{~rVLkksvl2G7F0AM(UmvLUi? zi@i9zO+W02X6*AACGcSXY1i7(gt6z0CXHYObgu7OPiDorjCurFe263B5|WfRMaHAZ zpt|drUowFVslz9Wzc@D02wXx)A0S>!aO*6}v&1kr`@O!W*(NRM%@h0TX+&E0qo1aB zg!5xN-%?84v2SQ*3k353OB!;t=9Cx12hFwtufA@vzL0LoD^b4aEqvKbeMnjxi{wVK zjc?SyA=k0l#v26WuBPn-wpY(sK6m|tc?~?=Lgz#V#{?}6b>g)nmxh+Ulr1OjHj0Am z-jbrnp7k2IzM!eHh}15WXo2=GE@{QXOi>a?BGMS!SotgMmb2Nz2KWbGBwY~o z)k92IM7@3SbYTcd-Vt+|9|ZPorTmI)B8*+%HAvjlfcGE}PAVV$r%u810a1Jzdt<|~ z9@EHSzeg~3euU1vN5ts{&~4qP^f)``(J;=!xn(Wiz9d}PX&K6@mh%L26*0)=FyNlk zadElzab>_ccv|_x7s|EcClG_o4ybwPPYUNSyr-y4W2S6$NLx3v3i-}Zr_xfz&d!@N zD#%cSVjcmKy!-B)$p^N02A3JK0Ss@?!-J)~cr$D~EvRyHa8Q1vMWt8|9om`dIcE+( z0oe7bQ=TRiVz%CDG#5y*Y_ z0lEpxMcn{9HU#Z&BtI9nVOWIQ6@%Z^YvmIW8fM%CDamtgQr>#```YU1>#j%u+zp%; zXKUrXVq%KGW4^xuq9DGtdMb{&ow)G`V&n*ZfoFCj_oy-P^LX=S%YLz_H?I$hwFdv^ oy`_Cm_JMiv_qfMG(jpw#m3M!-4K;?{A>a>w&Ejh5 delta 10232 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