From ba58c3035c404e6474f9e1cb0e7767fb33182f2e Mon Sep 17 00:00:00 2001 From: Aote Jin Date: Wed, 4 Sep 2024 15:30:58 +0800 Subject: [PATCH 1/6] - Add S-mode debug CSR for debug --- chapter2.adoc | 199 +++++++++++++++++++++++++----------- chapter3.adoc | 2 +- external-debug-security.pdf | Bin 224834 -> 224928 bytes 3 files changed, 139 insertions(+), 62 deletions(-) diff --git a/chapter2.adoc b/chapter2.adoc index e2657c8..535d532 100644 --- a/chapter2.adoc +++ b/chapter2.adoc @@ -60,12 +60,12 @@ When debug is allowed in supervisor domain, <> are allo [[dbgaccpriv]] ==== Debug Access Privilege -The *debug access privilege* is defined as the privilege level granted to the external debugger to access hardware resources with abstract commands or program buffers. Memory and register accesses from Debug Mode also carry *debug access privilege* instead of always with M-mode. The *debug access privilege* is represented by the `prv` and `v` fields in dcsr. The legal privilege levels programmable to `dcsr` in Debug Mode are elaborated in <>. Debugger accesses to registers and memory will be checked by permission check mechanisms against *debug access privilege*, and trigger traps if they violate corresponding rules. +The *debug access privilege* is defined as the privilege level granted to the external debugger to access hardware resources with abstract commands or program buffers. Memory and register accesses from Debug Mode also carry *debug access privilege* instead of always with M-mode. The *debug access privilege* is represented by the `prv` and `v` fields in `dcsr` or <>. The legal privilege levels programmable to the fields in Debug Mode are elaborated in <>. Debugger accesses to registers and memory will be checked by permission check mechanisms against *debug access privilege*, and trap if they violate corresponding rules. [[prvvacc]] -===== Configuring dcsr for External Debugger Access Privileges +===== Configuring External Debugger Access Privileges -The dcsr (at 0x7b0) is always accessible in Debug Mode and the `prv` and `v` fields in the dcsr have been modified to authorize privilege for external debug accesses. Upon transitioning into Debug Mode, the `prv` and `v` fields are updated to the privilege level the hart was previously operating in. The maximum debug privilege level that can be configured in `prv` and `v` is determined in <>. The fields retain legal values when the `prv` and `v` are configured with an illegal privilege level. Illegal privilege levels include unsupported levels and any level higher than the maximum allowed debug privilege. When the hart resumes from Debug Mode, the current privilege mode and virtualization mode are changed to that specified by `prv` and `v`. +The `prv` and `v` fields have been modified to authorize privilege for external debug accesses. Upon transitioning into Debug Mode, the `prv` and `v` fields are updated to the privilege level the hart was previously operating in. The maximum debug privilege level that can be configured in `prv` and `v` is determined in <>. The fields retain legal values when the `prv` and `v` are configured with an illegal privilege level. Illegal privilege levels include unsupported levels and any level higher than the maximum allowed debug privilege. When the hart resumes from Debug Mode, the current privilege mode and virtualization mode are changed to that specified by `prv` and `v`. [[maxdbgpriv]] [options="header"] @@ -78,7 +78,7 @@ The dcsr (at 0x7b0) is always accessible in Debug Mode and the `prv` and `v` fie |========================================= [NOTE] -As the `prv` and `v` fields in dcsr are Write Any Read Legal (WARL) fields, the external debugger is able to read back the written value to determine the maximum debug privilege level. +As the `prv` and `v` fields are Write Any Read Legal (WARL) fields, the external debugger is able to read back the written value to determine the maximum debug privilege level. ==== Privilege Level Changing Instructions @@ -86,7 +86,7 @@ The RISC-V Debug Specification cite:[dbgspec] defines that the instructions that ==== Interrupt during Single Stepping -The interrupt can be disabled by `stepie` in the dcsr during single stepping. When `mdbgen` is 1, `stepie` disables interrupts in all privilege modes for the hart. When `mdbgen` is 0 and `sdedbgalw` is 1, only interrupts delegated to the supervisor domain are disabled, while interrupts that trap to M-mode are not affected. +The interrupt can be disabled by `stepie` during single stepping. When `mdbgen` is 1, `stepie` disables interrupts in all privilege modes for the hart. When `mdbgen` is 0 and `sdedbgalw` is 1, only interrupts delegated to the supervisor domain are disabled, while interrupts that trap to M-mode are not affected. [NOTE] When debugging is only allowed for the supervisor domain, M-mode interrupts must not be disabled. Otherwise, debugging might impact the behavior of other parts of the system. For example, if a context switch for the supervisor domain triggered by a timer interrupt is suppressed, some real-time workloads might not be completed on time, resulting in unexpected errors. @@ -94,14 +94,12 @@ When debugging is only allowed for the supervisor domain, M-mode interrupts must === Trace When Sdsec is supported, trace, as a non-intrusive debug method, will be constrained based on RISC-V privilege level. The availability of trace output is indicated through the interface defined in <<<_reference to the trace interface doc_>>> to trace module. -[mtrcctl] ==== M-Mode Trace Control Each hart must add a new state element, `mtrcen`, which controls the availability of M-mode tracing. Setting `mtrcen` to 1 enables trace for both M-mode and the supervisor domain; setting `mtrcen` to 0 disables trace output when the hart is running in M-mode. [NOTE] Similar to M-mode debug control, `mtrcen` may be controlled through various methods, such as a new input port to the hart, a handshake with the system Root of Trust (RoT), or other methods. The implementation may group several harts together and use one signal to drive their `mtrcen` state or assign each hart its own dedicated state. -[sdtrcctl] ==== Supervisor Domain Trace Control The Smsdetrc extension introduces `sdetrcalw` field (bit 8) in CSR <> within a hart. The trace availability for a hart in supervisor domain is determined by the `sdetrcalw` field and `mtrcen`. If either `sdetrcalw` or `mtrcen` is set to 1, the trace output is allowed when the hart runs in the supervisor domain. @@ -109,7 +107,7 @@ When both `sdetrcalw` and `mtrcen` are set to 0, trace output is inhibited at al === Trigger (Sdtrig) -Triggers configured to enter Debug Mode can only fire or match when external debug is allowed, as outlined in <>. A trigger enabled for a privilege level higher than debug allowed privilege is not accessible by an external debugger. When this trigger is selected using `tselect`, it always reads as 0, and any writes to it are ignored. +Triggers configured to enter Debug Mode can only fire or match when external debug is allowed, as outlined in <>. [NOTE] Implementations must ensure that pending triggers intending to enter Debug Mode match or fire only when the hart is in a state where debug is allowed. For example, if an interrupt traps the hart to a debug-disallowed privilege mode, the trigger can only take effect either before the privilege is updated and control flow is transferred to the trap handler, or after the interrupt is completely handled and returns from the trap handler. The implementation must prevent Debug Mode from being entered in an intermediate state where privilege is changed or the PC is updated. This also applies to scenarios where a trigger is configured to enter Debug Mode before instruction execution and an interrupt occurs simultaneously. @@ -134,68 +132,147 @@ The privilege level of the trigger chain is determined by the trigger enabled fo [NOTE] This represents a balance between usability and hardware complexity. There may be instances where the triggers are linked across different privilege levels (e.g., from S-mode to M-mode), while the external debugger may only have access with S-mode privilege. The external debugger should not modify the chain, because it could be suppressed or incorrectly match or fire in M-mode. -==== Sdtrig CSR +=== CSRs -The CSRs tcontrol, scontext, hcontext, mcontext, and mscontext must follow access rules defined in <>. Meanwhile, tselect, tdata1, tdata2, and tdata3 are read/write accessible when debug is allowed. If debug is disallowed, writes to these registers are ignored, and reads return zero. The table below illustrates the access conditions for tselect, tdata1, tdata2, and tdata3. +[[ssdextcsr]] +==== Extension of Sdext CSR -[options="header"] -[cols="30%,70%"] -.Tselect, tdata1, tdata2, tdata3 CSR access condition in Debug Mode -|================================================================ -| Register | Access condition -| tselect(0x7a0) | mdbgen == 1 \|\| sdedbgalw == 1 -| tdata1(0x7a1) | mdbgen == 1 \|\| sdedbgalw == 1 -| tdata2(0x7a2) | mdbgen == 1 \|\| sdedbgalw == 1 -| tdata3(0x7a3) | mdbgen == 1 \|\| sdedbgalw == 1 -| tinfo(0x7a4) | mdbgen == 1 \|\| sdedbgalw == 1 -|================================================================ - -The fields in mcontrol, mcontrol6, icount, itrigger, etrigger, and tmexttrigger are read/write accessible only when the access conditions are met. When access is disallowed, writes to these fields are ignored, and reads return zero. +The following CSRs are provided for debugging supervisor domain. They are only read/write in Debug Mode and not accessible by hart. +.Allocated addresses for supervisor shadow of Debug Mode CSR [options="header"] -[cols="20%,80%"] -.Tdata1 fields access condtion against privilege granted to external debugger -|==================================== -| Field | Access condition -| m | mdbgen == 1 -| s | mdbgen == 1 \|\| sdedbgalw == 1 -| u | mdbgen == 1 \|\| sdedbgalw == 1 -| vs | mdbgen == 1 \|\| sdedbgalw == 1 -| vu | mdbgen == 1 \|\| sdedbgalw == 1 -|==================================== - -=== Other CSR updates +[cols="25%,25%,50%"] +|============================================================================================ +| Number | Name | Descirption +| 0xaaa | sdcsr | Supervisor debug control and status register. +| 0xaaa | sdpc | Supervisor debug program counter. +| 0xaaa | sdcratch0 | Supervisor debug scratch register 0. +| 0xaaa | sdcratch1 | Supervisor debug scratch register 1. +|============================================================================================ -==== Debug Control and Status (dcsr) +The `sdcsr` register tracks the current debug state of the hart, formatted as shown in <> and <>. When `mdbgen` is 0 and `sdedbgalw` is set to 1, the `prv` and `v` fields indicate the the privilege level at which the hart was executing before entering Debug Mode. Meanwhile, the `sdpc` is updated with the address of the next instruction to executed upon entry into Debug Mode. When resuming from Debug Mode, the privilege level of the hart is restored to the values in `prv` and `v`, while the hart's PC is updated wth the address in `sdpc`. -The dcsr is always accessible in Debug Mode. The access rules for field `prv` and `v` are addressed in subsection <>. Beside `prv` and `v`, the access condition of remaining fields are listed in the following table. -When the access conditions are met, they are read/write accessible. When access is disallowed, writes to these fields are ignored, and reads return zero. +The `sdscratch0` and `sdscratch1` are optional scratch registers. -.Dcsr fields access condition against privilege granted to external debugger -[options="header"] -[cols="40%,60%"] -|============================================ -| Field | Access condition -| debugver | mdbgen == 1 \|\| sdedbgalw == 1 -| extcause | mdbgen == 1 \|\| sdedbgalw == 1 -| cetrig | mdbgen == 1 -| ebreakvs | mdbgen == 1 \|\| sdedbgalw == 1 -| ebreakvu | mdbgen == 1 \|\| sdedbgalw == 1 -| ebreakm | mdbgen == 1 -| ebreaks | mdbgen == 1 \|\| sdedbgalw == 1 -| ebreaku | mdbgen == 1 \|\| sdedbgalw == 1 -| stepie | mdbgen == 1 \|\| sdedbgalw == 1 -| stoptime | mdbgen == 1 -| mprven | mdbgen == 1 -| nmip | mdbgen == 1 -|============================================ - -==== Debug PC (dpc) and Debug Scratch Register (dscratch0 and dscratch1) +[NOTE] +In a straightforward implementation, reading or writing any field in `sdcsr` is equivalent to reading or writing the corresponding field in `dcsr`, much like how it works for `sstatus`. + +[caption="Register {counter:rimage}: ", reftext="Register {rimage}"] +[title="Supervisor debug control and status register (sdcsr) for RV32"] +[id=sdcsr32] +[wavedrom, ,svg] +.... +{reg: [ + {bits: 1, name: 'prv'}, + {bits: 1, name: '0'}, + {bits: 1, name: 'step'}, + {bits: 1, name: '0'}, + {bits: 1, name: '0'}, + {bits: 1, name: 'v'}, + {bits: 3, name: 'cause'}, + {bits: 1, name: '0'}, + {bits: 1, name: '0'}, + {bits: 1, name: 'stepie'}, + {bits: 1, name: 'ebreaku'}, + {bits: 1, name: 'ebreaks'}, + {bits: 1, name: '0'}, + {bits: 1, name: '0'}, + {bits: 1, name: 'ebreakvu'}, + {bits: 1, name: 'ebreakvs'}, + {bits: 6, name: '0'}, + {bits: 3, name: 'extcause'}, + {bits: 1, name: '0'}, + {bits: 4, name: 'debugver'} +], config:{lanes: 3, hspace:1024}} +.... + +[caption="Register {counter:rimage}: ", reftext="Register {rimage}"] +[title="Supervisor debug control and status register (sdcsr) for RV64"] +[id=sdcsr64] +[wavedrom, ,svg] +.... +{reg: [ + {bits: 1, name: 'prv'}, + {bits: 1, name: '0'}, + {bits: 1, name: 'step'}, + {bits: 1, name: '0'}, + {bits: 1, name: '0'}, + {bits: 1, name: 'v'}, + {bits: 3, name: 'cause'}, + {bits: 1, name: '0'}, + {bits: 1, name: '0'}, + {bits: 1, name: 'stepie'}, + {bits: 1, name: 'ebreaku'}, + {bits: 1, name: 'ebreaks'}, + {bits: 1, name: '0'}, + {bits: 1, name: '0'}, + {bits: 1, name: 'ebreakvu'}, + {bits: 1, name: 'ebreakvs'}, + {bits: 6, name: '0'}, + {bits: 3, name: 'extcause'}, + {bits: 1, name: '0'}, + {bits: 4, name: 'debugver'}, + {bits: 32, name: '0'}, +], config:{lanes: 4, hspace:1024}} +.... + +[caption="Register {counter:rimage}: ", reftext="Register {rimage}"] +[title="Supervisor debug program counter (sdpc)"] +[id=sdpc] +[bytefield] +---- +(defattrs :plain [:plain { :font-size 24}]) +(def row-height 40 ) +(def row-header-fn nil) +(def left-margin 30) +(def right-margin 30) +(def boxes-per-row 32) +(draw-column-headers {:height 24 :font-size 24 :labels (reverse ["0" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "DXLEN-1" ""])}) +(draw-box "sdpc" {:span 32:text-anchor "middle" :borders {:left :border-unrelated :top :border-unrelated :bottom :border-unrelated :right :border-unrelated}}) +(draw-box "DXLEN" {:font-size 24 :span 32 :borders {}}) +---- + +[caption="Register {counter:rimage}: ", reftext="Register {rimage}"] +[title="Supervisor debug scratch register 0 (sdscratch0)"] +[id=sdscratch0] +[bytefield] +---- +(defattrs :plain [:plain { :font-size 24}]) +(def row-height 40 ) +(def row-header-fn nil) +(def left-margin 30) +(def right-margin 30) +(def boxes-per-row 32) +(draw-column-headers {:height 24 :font-size 24 :labels (reverse ["0" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "DXLEN-1" ""])}) +(draw-box "sdscratch0" {:span 32:text-anchor "middle" :borders {:left :border-unrelated :top :border-unrelated :bottom :border-unrelated :right :border-unrelated}}) +(draw-box "DXLEN" {:font-size 24 :span 32 :borders {}}) +---- + +[caption="Register {counter:rimage}: ", reftext="Register {rimage}"] +[title="Supervisor debug scratch register 1 (sdscratch1)"] +[id=sdscratch1] +[bytefield] +---- +(defattrs :plain [:plain { :font-size 24}]) +(def row-height 40 ) +(def row-header-fn nil) +(def left-margin 30) +(def right-margin 30) +(def boxes-per-row 32) +(draw-column-headers {:height 24 :font-size 24 :labels (reverse ["0" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "DXLEN-1" ""])}) +(draw-box "sdscratch0" {:span 32:text-anchor "middle" :borders {:left :border-unrelated :top :border-unrelated :bottom :border-unrelated :right :border-unrelated}}) +(draw-box "DXLEN" {:font-size 24 :span 32 :borders {}}) +---- + +==== Extension of Sdtrig CSR + +The Smtdeleg and Sstcfg extensions define the process for delegating triggers to modes with lower privilege than M-mode. The Sdsec requires both extensions to securely delegate Sdtrig triggers to supervisor domain. -Debug PC (at 0x7b1) and Debug Scratch Register (at 0x7b2 and 0x7b3) are not restricted by <>, they are always accessible in Debug Mode. +[NOTE] +When M-mode enables debugging for supervisor domain, it can optionally delegate the triggers to the supervisor domain, allowing an external debugger with S-mode privilege to configure these triggers. [[Sdseccsr]] -==== Sdsec CSR +==== Debug Control CSR -The Sdsec extension does not introduce any new CSR. The CSR control knobs in `msdcfg` for supervisor domain debug and trace are specified in Smsdedbg and Smsdetrc extension respectively in _RISC-V Supervisor Domains Access Protection_ cite:[smmtt]. The Smsdedbg and/or Smsdetrc extension must be implemented to support security control for debugging and/or tracing in supervisor domain. +The CSR holding the debug and trace contol knobs for supervisor domain are specified in Smsdedbg and Smsdetrc extension respectively in _RISC-V Supervisor Domains Access Protection_ cite:[smmtt]. The Smsdedbg and/or Smsdetrc extension must be implemented to support security control for debugging and/or tracing in supervisor domain. diff --git a/chapter3.adoc b/chapter3.adoc index 3ca7b49..c82d039 100644 --- a/chapter3.adoc +++ b/chapter3.adoc @@ -57,7 +57,7 @@ Trusted entities like RoT should configure IOPMP or equivalent protection before === Security Fault Error Reporting -A dedicated error code, security fault error (cmderr 6), is included in `cmderr` of abstractcs (at 0x16 in Debug Module). Misconfigurations of the dcsr and issuance of abstract commands under disallowed circumstance can signify such an error. Additionally, the bus security fault error (sberror 6) is introduced in `sberror` of sbcs (at 0x38 in Debug Module) to denote errors related to system bus access. +A dedicated error code, security fault error (cmderr 6), is included in `cmderr` of abstractcs (at 0x16 in Debug Module). Issuance of abstract commands under disallowed circumstance can signify such an error. Additionally, the bus security fault error (sberror 6) is introduced in `sberror` of sbcs (at 0x38 in Debug Module) to denote errors related to system bus access. The error raised by resethaltreq, reset can be identified through the fields `allsecfault` and `anysecfault` in dmstatus. Error status bits are internally maintained for each hart, with the `allsecfault` and `anysecfault` fields indicating the error status of the currently selected harts. These error statuses are sticky and can only be cleared by writing 1 to `acksecfault` in dmcs2. diff --git a/external-debug-security.pdf b/external-debug-security.pdf index c56992fcc3467694680c48639b4a203138d2fca0..7ff2e23aef9cd46bc81333ef9258337c8bdd9932 100644 GIT binary patch delta 69643 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 E58MZm-2eap delta 69035 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 }XbK~6 zXA)1_hKe$jY7TTp1Xc6+hH&uXKM0LsfHa;allNRhrE6&PO1-)n57t+m6bmngABw#> zo5EiB`HoyCUs#7BXBt{pv@NZ z7B-xdA^8B1o(gfLSL0Q37iqe3aunh7#FETqA__s~Lt|bz2|w6%lrK;KF5`)}@8(^k8UJW`hqm~o+4OySM!O&08(*GttF;?}1C z8_}MwT)$seXIsdDKGZ+ATa1Jd9Ukg-!(~{XcQ5xZO;%Qapjbx1OaVFT$&sF+FIIJr zzX(VF$`JH;NWWk2>|!8coq=&<$gbQ4OqjwLbzZQ z-c{wT6Gec_4*qO#=`~%l{7hivAJLo2BJfMb^Yb3$FbsAvM&$;z#qBDK36KAP7&n3hyOTxl)pSjxo#3zkV07k@KQD1L5$Si$2l4k<- z-I5FA9x`*e2fnT4tK@gWxz$#Dmw}Is>^|zAl#vuhUyApcujuO8*u4>|Zjk z3#~-(dcR|x`5Lh$+9l4fUPD!zTdIHmr7;@@iAXs>w|d|nNVq%w1R9XCKQhz|r?p$R z{T!F%)oH1Dq*r`|Z~02WN|BjOzCwPcvox#XK0V{tAAg$DOg%PmdY?R`ZAXEE6VtDg?6q~B;DZrWw;{EMq_G92n?%oUf`4)WtMZOkU_N*X zZHniOR>cS>WSX!aK7Y|yt;0{%ST2K}yerUdfZl~_jzFPQOeQdtEHKvssxYuP+hN72 zy*Q4XG=p2Ms2{`td{>%Dk(gfl7pqbNaQSts?SrUFAk9YKoHcF_3xZaoVTvj|TfQ}C za9)2%jA=PM7v$1-0Ja2Dn{m0y!;#jcTXGRPyp}Qa*PV)f1Sz@PvH>TsPZ0R9%9BU3 zlBs@9YX{qt$ zXmuSFzyT#P3l{r02fLmov&t*2!>_II_bDn#A+2pB+rC%~!*wkEc18`8A@9H2z;6r^ zUiX=n2KIiBOh?kbMeeZXPfAPW&Cv)?bC#@D2g9+X7WJEo7LaFCPNR3C1PIIZ%D2`NPZ zcGm9amIy2v+3cmHRvK7rf~C^}#f0^x=x2(C9c!YkIsS+5$SP{RY*FUb0kw!*v=~K~ zAq=0)6*d?@dP|4$;OMGk9)!gnN1yppLXl49-UZ@$$fW0)q;03_kEc0f>%lc%&5zPo zO#uVLL->2@7tyncFWT|loeqmHIO_?u9B~B0sd-hR0eK%DUNuOVYtdo=qI0rXJ3O3T zS5!N(@UsZQ#pl*xb!Mion)ffWAMhNJM)_; zU24O1W=7{#}#!*oJ5KNc0WF&Y&$><+Y% z=E2x0FSVr5ZPQnd`nZWK$v=2US2i;?ze+5zLAv%|OL|!+;+=9@*)EC{E%oD}YHfVZ ztyLpWMP0DI!1c}WM&7OCeiL1&%Ay*AROLWzo;r>$`ptY06DF5+A)LK;*p+uS5dnSd z*}U9ApZdTw`Ot$n6;?ekhc=?$KBTNQcDbZ%eVJH&gLLB*&&jr2q)}Bp6>Ujfg5f@T z=j7Ejf#RfzOMFWP^hHsWgo|qb(_yq7R&&~*eF2w!3Sz|k;05Z*1}Kucki$!nS!Q!@ zxTXetMWMmeTz6^gG4`5uoc)-Jvr&$jJM_vMpWtstifYt>9Y^g~F;J{L9m7uFXNo;A z)&xgr4p$xQt~x=KnGB&wX|vv44nvLbdLK-h(9&wqztCqaAT!^E3qthcADX>oOIVhfEi^sGPfS> z-Ir)FFyb8me^-gcSV66ucqQL{nlSdQ_zJR2Xra^;_^PFrb>RMvSGiJF7w%i&Gn-Jk z?SlU3#=BgZo_^!rMxGB?Mc^sz!2#vDQa|&ry89|K^i`G9O&%x`SJVol7H*@R0n6h! z{#75N+F|C-*n;sp9%9wdVN^ zH(=O~0cf4eDwa^lxCSbB!jRnEIIJP;T#jc~&u6N@oJ&Gnu}cp&z5I@f-!_|8nz&P_ zVpu?sLz7HP2t;p5(Sp>EUplMDkqL)S}Ik<<~!a-pX6AkidaL4Pou0GiJ( z7dU>Z7Y0G1xw6`;1}}FLwHdz*QBVk;wAaLIZ9Yve`eICTV7ze8G4VNGI36eSf~SQw z3?Ce73`hLss$k9eC!`f&n$vdlnu^8BO$MfY>Of0j*<*ODINc6@{I)%#5Z4@6+PqvC zE%!Ov-Xy(6;Wwu$!>qZFllpY%h+e?vE#lT%Z9kEA{ZVPJ$(%#61!r%iW__}NIH_U0 z_$t!XN?Tbv>I5!lxsMxW!9J=9*}2W+i|*{8Vr}ZRcV?WMPP%RRu*Qt5eLuJvrNyOa zxo(T?7lPZvK~hPp<<(Dn-3*>%4qEQrFCA!tO~*gFC0A9Mve zorS~E*z0YvOG_6!^|llb=iS6W1)<> zUb;LLbxe$CTD0tL3L-p{TBe^;p6Yw2a3{f_s~wK{ZZ$%1&){?b7v-XXPPp#n6kcQl zdGP>QwGM^wnCo7D13jYPI%=&wi5S7;ZXCpzD%K-)KkrsuxGyX5y5x}41UzuH?TWCp zySD0}V4?Q8cg{A2Wb7T#moM6ZvAr~W>M=tg^u-o3d`O&e(%b;Hi3KCWNfRx6@PVI? z_a=NbkS#+3Y5JMOJc{1iwkV8mvJ-k}eiV{#v1Vt)^NU)@h`X1-i7y(pqEnl8ykM z9U|hQXp^EIf;W?(Q>_V%zMAzA9OXdN5{U@;wT>3n)q%JRMNOL;mr9h{fc>j+uV-h# zvvu-=pQzbSBDF}NXRxX*XTQf{=3g%lXIswq=LSnMoc*5hGGD3pzcjma8&s^2?ELx# zc$DH}{zs1M@{XMW|Dll}x>I@pd!7C%B}6ixC^!i|J0}Md7YjQpDH|_46E7PtDF+)j z6EFMQ3&ejx4%#}01-YN1B%eBfBg4LtZ3km(cpebTG6ksOf{c`tg`0_!gO{C$l$Dd4 ziJgm=l#_#liG!7sl$D#6iHie7wuTSR!vS(Q#b)4PW#ZuFCAD|6wblRKvp=3V-{jHX z9|QzQndQywEnF>0*;)S3R%)KL=-t8Jto0JXdnNe5RzZig0J7IR--?7nW52F1q zq?6BVVJER|nIQ) zf{(xle}pt^EBsx{B!o<^X7bv11@zgTGO6QwiXqF zZI#=+P!#pS;N*Qzw2tCK9Dj0N)=WEd8P}U{^sC!&*(^OV9WvGCe|F}NZ^EgjESt8@ zRxEmKI7XiyC5Y+jJ3U>duu;^THqg-hRhb5xr|ClWUUc&N?vl!SW@0%Cc=78l z-HM5g;;r030b$62AaEq3AhGq#WkPQ(`o|>M&v$LqW2-x<{5kC%DQ4QiAD`OU)ayPJ zr?7vR(4^k40&R-!c2#y3#v}l5&BDzWSk#eFY^+I!Y& z{W@r%xQ~Z+P=Q0gCsWMj?0O6SL(Rh7IMQjfFl+Qd0Xy?bZXgr z<3{#9UXPg1_3R_}H!gQKyZJ_955y+|pZ&QjLeso>zHQ(pbSuex4UIC{XAZ}0g#-vO zRWwf3X*2am6`^%cvSA=xw;ij-?@;iP31Wz@m_n0~h(iI%B`H)G#TRWUPd?vWqPdn@ zlfZsoppFh}N2S$o%<>scOVx2}wij)fQd|BS1@QjGFC+rDpy1x%5 z_R4@$fvk3EmT+Mi4YsoVm-4&MGQ zH~=0W8CMi2<8xM;q%8}bLEV0D9YY_0*=aZQHIpPoh8^$K$wx-m(v@xrdolx zCG3Lfii(gg1%`=z?xuuUpI+WHWrU@|E*TCG$2KQp;$oknKs#odEhC@yG9&tKcD}@G zGd<`&v}FXqoL+n_hoaiCXlJ$a7E}vSNu(Qk}ae_e->UTM@hBdr|v(`qDV*FkL z#6;EN>uKVl8}En}jOaGGzFsA&<43rgzS-sd$rPpHiQ~|>pU*H)?h^b$+il({j?FGm z-%0V*EQ@8cmWTO0l7K!x*#;I0N0m3Y%0`ZTehBCvC-(Wr5!nQTn1UL)l^8<*8Za$8v1>{v=EqW7{ z<8-$hu`R$ujh{D&otd6&1&NpU!SBifgO(hjdgwK8iLlQApU*U{^=V}V(0^>-c`i`m z8&nWT?wqUD5?p(xc+D;(uonE}?LSyr z%q<`}iCg`tO~PL0M2?P3nDHUz)WO9ut9&mmtL`(5AMvM=)itSQ{^(DxB2??Xz?*y@ ziUObInV3P5#v$UD?WAB@9o5OS%0*jMHTE5q_$jZYs2i8juj}kr4VkB#j_;q5$BwLr zj?wUJJC+&;p#rBToQiWeogo|RqTSQviUd;(^UNHUyIo8-d+G$pSKg(Wo>bDyGQ4f@ zJw{Sgi>~0_VsT0C7A!D0RK`$<0O66_VEs|wv8+$Q;XlEF^ltbJZ~Ww;(E`X4 zmc>UR=Ba`qfr@pM5#@wNx@m8mDks05T-?Stpdj03ShInnuiKM2$vPuBIf7_(&y2pCmp|KK%G_5 zBHk68WVuLeZaFc)S64uL|HNa`Q?x7FJPcLiY<74kiTW{M-Q0cO4G!!UNW;SAV$x%m z%C=bGRy!CO|521T8Kch1M?~Qw1V~B!#!OOQ=CF&DjBvNK0~bdKeFO@?R<%d9$MTuj1`*`#{-XiViFdS{Hh4Z*qa87#89tF


CB!-gxcR(T8)GW-wY={L$ltd6Vc&JDl5aAv=3wkI4N z4$Ayk%Y<1#!zs8Fg}RgaK}o}SqmvtcFBiQI0^`1;g(I)G=->n{d|FH3GT5rko4dZR z@QmVR)=ZZe-k3?a*zPoqnaQ&_r#HTA{+bnB5K)X=(8)1*x_vsZz8ktk$nuck6{$}a z2cN8NpR7BU*VS&5k|rFHiOPxsVBdQB&LVZTf3Rij+0<&w(sI`_fap++7a zW|GElxK}DImChe{HU=|Vahx;#!A^{3fFAU$yM7g#Dl6`+&#nZp zK6kF;P$D4UZI-A3QcJQ1=ssbfNkFU>pl1x9O{uprgiE>}th7L&6b3rtS1j{Hn$;xL z2a)*?HLM}>82b+`?Q9Kr7EF@pBu+=o!Br8g8eEpE^x|@7qfLn!6XuwYs1|Y^~ zLP~y@r#4?kGhpwpUofl5e8&H)wEY9`Tp**kZU7GmHQx*bdSU-3PEqmvQKU%!O1k>+ zLPGyV``rJ~zAg_}{3}^Wb(?3_(u``O$FX6K_#zb2)~uK|K#W2tjWj# zCE!D;v`o z7#Y8*g+?Z>1||-6c1Ca7AuTB@`)?AWl3b+)P7e8&<4N=b-~dYn00}#vemr*p z38#QhV|Q~X*^Uf&&+;$V#U!uZN^J0U#Wb0rR*!a{NCGjNzh#FghGd_%5dnubZa9F# zpM+m+uC-6KTZNH7o3^KZeB~kR1oF}_KD>^E7QEaz^ZDLcQ0)~+UnY<3ysv)!7Uba> zegC!LW;DBFfvwrFz3&NOa~JOdy;5NJ8SUZ{$YT+7OY12#<2t`OAx|<1cGAPv^&I9rCgH9BwZz)6&v$Xu3cv67H!&Y+J)YqIk?)wWqPN2Ezt*KX|jcRAR-b?`>KZ^zvD{D-THxhhdH_eweDju z>f`Bn+5HUF0$Mmt_ieFpfY0}1H&=5e{TjWzR_nG%5>RHJBPj%ko>2EVSXAC0nX6JE zz{a5o)v4<()6J6CAw_eL`FLhsxQ$xn2RjWGX!H!;Sr^j8e!leVI~#y!!EHhNdM$#I z4rrCCH6#+0;B048E{2BT zYW=CGIepn!w!l80trYJ|%`kUOX!JGfXh$=;1-h9|t;m+YXf`&y(nY`?F!Ovv)GQtc ztwz7WQE;Q<39BA^unFz-i_a9~p;tgH#)?d}U`2jgz+NY1ANdP`03?e^F*<3o5HB6u25a|kzdMv7rZ{`{yFE> zv6iNOnVh;6Z*U(@G`o8O+zeycd-m9C6!h%k21IaCP9Qi+PvZm@)t+tGrj1K_E9Fgx zyE{O7LbB~iD}NzaMy%ba49!vDnA{REJz9$C78|29{xw5@@jg8*t!AMhNNb|Yp z@CTJt=)mg68`>P-87Q;x-#ap^B-6#T^kguiX_TzGnT~Td6_UMViO*Xx_VQ$_PG{EL z$-5kR&GEzK0{4z>MKVOfovFz7Mg|KhQ@QsJydYhNriTKUsGE@eL=qg8@g9{LBWKaU zkgG0jDb{oS*@d_v_60X4!Anfp6(mdGLU;m?hYDRO>bbn5vb_WhF%pPwDeS;Ec9%o+ z(%HGp^z02>hy~-4uf!a^Ky}ZA7^yk?(l!=~$ht|fKsF4^s@6#~_mSDjJooQPaE^6O ziZ$f4SWvWZ1?05sPA%$qmA>_q+1Bxxvhh2=Jfr%R@~%nVAv7TM4v5=|U4VkrB@is? z_0ZkNQEAjg7LBEOS-iR^<2jhw7KWuk?)`gC>xic(wlrluhvHu_$MtDFKaT81bMnT* zqIOA*1Jm4)7s(rC;t1&ExxRIA;PSfTKJIYzUz7=@FZtf8@RqbG$nm_O7g<+C%lg_= z+u2@3{$OfO#f>_1niK7(e=sG()hCi>=gzh(XA-OQ@CzK*7!*Aoh9zDasl0R1(qV8m z92k&;t1^CyG-EO=^Qk&IXJZmYmm^qHeO&Dh0iuEv%YWDUG)3>{O`)@3IlLuJ?gnq9 zJ5Ko|fAJ>tGHGBZek?YIBEwILd^(~h{jNe~QqfYzwEl=X1QvVZ;@^e-y{e6>5Ffe~ zvcWd~dX~q^qty64*#0qE_?1o&5L3iFNJ|BWlQ^|ohAUbP)Mn@$6n0F67(6vU;;1%L z2z>HE_OWkd*^DNr+D6)yl)^||(L$ufac1Rsf-_U*`&MRxWzmTq#H2PKEY{GR6W9gt z9s70KylY59?U!MUKJ#t$xKF5q5%b7%)%ID-TUU}bgqI9hwR|IC#o09x@tDw9(x^kj z(k}_sRR(5s2==r4mO$Jow_?{#wl~Hj3&=nSdJ5PR()7s099)swpN021*sPM2u!C@x z<>*wevlDiR`(#LMIRHnK{4AN#DY%s|`&heJrmkv*XJcEQ{^CK1b5OS9by}0A%|Wh@ zXY-zCV&$;r>{l!*=Nbwzx!qnkLHz z&gn`1Tr_-xPp*f^A_rl`Et-&cGQhPt73_@bP~*)F{hyJ8f^nL6;Psq_YgQ{J1|ih6 z-g=jNUv_^qow9pm_c|7GbFtPHvQd_vSsl019?Zoxb3_FvDa;bLeT?mRRKY?IWifrX zD>Tb?*}|&8DBUqR40KP6~|>|zdpMaJ=Js~1g}O%E*yg)mqdfJvv=-_waX zxgTH6P2}c@4M26HuRRSMP*J)t`Wz*a_C-QBpq0=mcd}5Wn)SYBDz3rN#uP?qFX4oLZS>nc z&xAf{1?^+2MqMFo|F9BFb)@PNIE@Fqq8#2h*KibgC$=zYesn3m^JNN5YudrYf!^V29&q>l}WQ>SBT5Akngb3hTYl7F(WG**j z?1B}gJi!6e6oaqMk4Ws9FFw^OPbLy=f=#`MxAY5rlMW&JSG_RweT?7T8Sx36EJfiAXE!nyZ7kJ;GPqW#ca1HBfgL~UaT4%(r|hBdFV>l# ze35{fY*&}VSCkNOt+K$K*6D|SQ)V^x?`P(X!&@ly%AMz=-|MK#v=mxfGix!;-mTVf zI=I>E;(8=i(5+`ew>S#ABrRQ#K>87Z&Ax`@op0Y@5O)y^{bCz|I{`jkYyqEQvOYcE z>0hoSc*Rd|mLC-gNU9vXE}l)@zX*R|;Vb`NDh2zOOY#2YQoL_m>H}yz1tIxd6o8V< zf&w6YL+8pU0HS~T4c1!_>+kbutSo3n*PEJ;)w-8%a4o)T(PEPjZsW(H$-{j#B z-}-k5j#*1v=dFnSP3d_H)BQhs4l4^NV2M0g1P#FV=hPNG)t`9Y{}Tks`G<`B4=rS6 zNsem=$ADzxVrTg;CD?67^SjeLLf~mvg~WfUZd(C+LN#Q6SzHbYGXrS%%Wx4;c4e1+ zlfaZ%i`P+5%pbDXrc=)>Q^iqvJ-gWt83Vq0cRoMFY`Gn7DQ1i?y}W*U^?7*vd$!2_ z^zy1$Jm=x?ZiBs)|Bz~T-QA(@cr50!5u?n9K#^H?1c>k=>lLR*u*7c{1-dm37L+^Z zXun(RK_PTIY4Caac@xrvu^#SmjN_pG8Wp|}&ZHKE(Q(`A^W;!k#3_GTQY6C3%U)12 z)7T{G{3Ig5W8w-O?eu6M!{l>V9%AD?QukQEy#82&w`db!jR5DMf5K-+^) zQIL^t36#a?A%wE_=3gB{mT1~xj50MZoknySSpe(mAWTdqj)f*X!()Z{E>*m<0A3sa z%!Ym&gk=~gR=#6`yyfZ;|8KXV_fh zPqRce-i-($j46&SHYp1u+vgKN>feJb++mc|4g8wnObWN>2}zfMRFzDQs+nT;NIb!U ztD6A;1$W#jvuOlq<0CfPUGP_*G=Q>NHoJpy{n0;wWk)O-v^Hf&8}XgwF$U#0-Xh;$ zIh#5IrW?xQ5ge;89JZ_Z+Weoy>;vxLCjl0#-C#t0-JebT8II`Nl{XMPq5BSMc{HS5 zfZ^xw?}E2Qg>bzB{ONJ)8K206cjji0LEI?$AVVEIEBeqDvq0`rDzQlse(9+&Ym>o5 zh9DA%M`kq9Q?e#f;uV9Y9~5ts5YDDJDuShxtx8~h6dAnw-4$x2i z3GdN>$%Car|5Y3g_Bg}Kx&rPKhzOWQ`3}g-?)Pai(X|vjvGb`=ZGXYa&|%wR znvJ+ee3`GEew@Bn#r&voYhy-WZ6e-S*Dd&*BovT@8-eZ0&E#ua-PI4Hs8<5D;^V6*zo+j&z?K4@KNltDQnYe5O+K5?L84KBs z^N|3J=3)A=m)ke5Z+m9#Mvc7In-lwT&?6Gj`P~Bc{wZpWfpC5nJCwKiiNHsA5E#DG zQ6Sv(T4b9=5MH-{3NB)tiTzEz`9nw~UCCy~XLyfm=lSIT93swI8wBtwG^~La~ zvVpf9=uW|jg!_l($z$hP8b|twkX+h#m8t6kY35^e+qCRz5pa!OQ!pQa)I%-C?U|^; ztwn4Bomm=PnU}YgIhvPMUx5Zc@Oxxj2z?5UDjyu8iDd7Z=9cEB>U|eoqM!*pVX9hT z_9<}BrqEdy<9Tw*BARKa`FO;G5(L;Jz(fQ*p21?XZjyQMbRyQnVEL6>G{GO*(=FT0OK}t*8NeAcdna zE<*~3^}RY16TFiA>NHTqe`(lZ#-$$pCgDCF+x!PUZE1=_QZjs2VZH^`J}W6QLZ39F z*^0!zvr5uwUT6ly%2+VR=Ofwy3M24R&HAq)bPTahBHamzi|T5W3Lg~;=qb^lW$-f$ zY?b=iiy0B=GU`}-C8gjh!0WCQq*AFFGOwU%3M1J_iTn0ynq;uO5f>EWSq1A_pY3d?nq|-&f5M7r{E*kQaZf~3Sk}*0j z?VdWJ@J%|u%d{=*7~j}nSIou4)oUG}ARa7Z1MDEWsKS!V`N1O;w;?6G4GoM!Dk+YEXf zyk_N>=H{!h7<@{fgN=No&3fCKnQdOx_kx~?&XpAs!>3v%OFV-OJ|&$#eIY-aAC6PYfafU|?23{w4m7%`;a3s677;c#)&N^*aDmy#EF~4;0oV z1-v+*4T}Yc&fX1!84B)BpW~lQ0@q8qT?1~#n;%lX-};E<1)2r7AeL`EV2OZn6x@AD zj`o0;}kDupzGT?%*6 z(WDE8p8AS8cjx5$M5)Sm(*2RAnM`GRY%*)R`AFSBA?&0H+1^_7whl_(cW(AA$1f67 z=D(hTOZ9!h6@`QFYtZ#hXRD>&1aDFteT0?3i^wkwU#GvKH^!N(u3^Mn*mm{ z^4T4M+{+&heMv)zr&8vj^-nu3-+>sj!wJJxoPh~YZ_xmW)luJf<7v0d4Q75Ru48yK z-|^a}W?%)MIWIzgUQ%U7pyyaSt`zS`e|;1`A(Bbv0Mk1SGkh22qpgG@j@KbP8dxq? zCA-XZ5|+hIPpqVfJr9ynx=?DApOo#r<*|VP_I@qphWq10x?}D2QU13Ro=1h+Zvpxo zi~ioCf}vh1DejWme=H<9AQ_@=1Nb_sfzew4rb=LEgqTAjaG1#k59e+Af07k@HJXmLm2iK#)-t^5(tHh6nj^p3zL;y@Gi ztSx){ZYcq-)A!}B=~P(au1{EF#Ua6HQ&e*L9&+xpKZ;^`C_%e@>08|OGm0J~BJ7{@ zXW%RxZ?Z)XI14)nE#EYGiscPwSCar(|EU+WtStYoYGC~T4fsD$`0XMH zP)|N-vIj8$8AP~%mn=dGpvL0hV&Zzk#awTZP(0jRq}*IAOgucvqGteneU|^C^Z(o- z@ef9Ga`Q6r{QqF|ZwA;kIXH+MZD}aVr?w_hT6Wu{(}s* z?*Q$vvGNztAD1^4L?YGDheV&BT9UuX(Ut178oTl0&Z{L8OG({b#wKHy8YmPyWGSw) zm%`w1u&a#iJiLM9!@1+%Cxu?m_Mex8{n*=|y}!vLKU|-V39oi+eMvytAV_ui!(4qbYeUZnTlI|$N_C`~{* zY!MI;kS2%<(gZ023Km3Z(nSPCs$c{0&*7lY`@G+`?!VT(Yk6evWRgr~Cdp(nnO!8^ zOJ-

E&=c%hu~ce)Izio5h9l`1j*)9Z8w%iZ40z3V!z}N_mtUbKhgKe3AaU&_?(c z;a3tZ&!;Tmqj*X5fs&K>7ELeCwlaFyo-F5tQS9`ogFgFsTJ$SH#6?kwouZAn-*l4* z$Xd{cP7#NSiD)v%#Dku|rboyKsOt+py2{9^FP=c{V$_4n)PXB~k6u=_gd5TYDvDMK z$&{=qtW*vA^yl7mP%Jj+k}q;1`L**g^wYAi{X~{%i6NiEoGdMbN!nSy>XvQ4yYq3= z;RXtIfcHD9v61P+{A%7g#)odK{;S!``j39c{tW*46W!OHWKqf~?abq1>#ph5_~3Q0 zo@e~f$n}q<-&B^*3>g)S(c~s8f2nn~CU?>IQGfsLB=JxhO}+ZnOrkgU4cpJbB}pqK zcf70p+V#R(i_*?lOX^>%p`b~-`Rqer7rEJnfD4Vit6#iI-EHqLduLP6cHAGyRg~yQa+4pa@-K#y$iblGgPGK)BZ$-~a;?^x{D`5#f6gpkH zyylly<31nI{WtIXCYje&vDI=iq;fv}AmjhdyvI9&QiGwhS!9T-bL=I>g{=zZ%6aa> zcNR;+E|!gtck;@_>x8O{=k8^GsiO&C322G@Stgi$mp|J#eaSt*>~?SJX`P+%TK@3u z@!Wx*YB)k=QFLz?PqCd9;CZ=pAMxu$)1J&HGPF=RNi_P*QbeSVqq+B5WzYBZrZj22 z!uC3Yy*zUOD=7~RuGfYVeq5$w+UaA89uZIN6`D~vU}gJMQK!fH zRz`lOf51~2U4u@w5G~Koo`}0cpR`gbu1KCiYV9Z!AFm{K+JGr2WZro)9$Z4PT76al zsU1GxZz+CffLrNe?qFOn`G6J)6&p~ZQe@d4KBBoxo}5o;)NJ>vHHFqPF=J_nMs+%S05(&@SWzWSCjp__i+hdH-5e%^NqSsYoprua!tmLBX(vl zH0hjMrz3j5h)*D`ej}neYUbhS+_Mlu&x|+0JD$kdICMa!OhsXLJYOZjH9Q$^Yk@~> zrBCZ0^#-*k(s|#$CyGbm9YQ#f{zZP5xwAr$iuL|l67S{Dv;&NCahJVQ%ld50uZ2`@ zm9?O;DyH8 zRj<|CE+@Wl-(2VLdO4$L{G=l7jK^&zUOavIZ)kBzZ6?pL+idF0)iWp+HC4k`QxH2s z`R6Yx^`=WYFW5LTPdqu}gaCCS@8WLe4K{&zhKqV9ewr*|p@xt_6%_6O=*i?*mg+S`^+|Q3XRH8d zAqKJ;EN;I4EUp?hnYu-q`!TYurv2HpNbg0N9fBSh5fpD?y?)ty!|Snk#Pja2q*r`C zt3|}zVTeKr4^<=eiwfvzuHHnyNYC_VWx3->in^&dx~1)*UrJu`U}B6~fTrVF2#P2l zNg}s2=BRV8G`X_Ok;dM_@eJv$MfwJ~!%9FU$(4<27l-P{#=Eqe#(3qPO7v|q?r+V+=5xvtcO=IG2`ZU8bFW&G-eH(j z?5lAs7*92+m8s{Q6B&$4T^}$J&3ZIMzU(a-OcOMJ zt1M9&el_dF(8)+b#=B@ndsJhwX7F{Zj+tPUTQX$u@6bTj1%)AW9{*)y?zbRzfqN~6 zINDQsYk~?5%b&cnB{Z$?j^brsP*{4tnlzetK}Fb&p>C@kn)Z_6D)`1kGQnZ?dF@|a z0Tj`m3Iydx0u}VLZxEil-4y3(&%@YZ1Q?@90dm z6lI1q&XM$L{}vmB&oxS(q4PEqs|HV6-_-C5$EG2j_UX%D3^kh?e9(BZ6gpJ+ zvV!J)x@-*ZGg*HE{c&~NU*S~$4YC@DM=V?U%+2;$f85(nnz{T_>xr5f_iYSQ-xmG#FOG~J65V&1YnX@3QgxDazN+-Rm%9 zRG#v!BT^XkRUplF{|Lx{j&q&qR!5O==DEemkeJ*hx+BzB?EX3>p`Yx$#B||O5Mz%I zU0>LqcGfXF))R#s6Bw*2d|S=(Hr|M?d0&)Ry6s#^s_yd1JsGF$WKeRsv*g3aSsY{n zWfP5~F|6>bQazTmH_e~vE&y`eU_s9MS769NlzTN)tqi?SU*od)62*5UU6p=#G88(L z_%axBurMrSGXKOGE?z+q&@gX0-n_Bgr2}MZ^mFpcd8#AXD)PM<7WVbJ=h_al6A$sd zVxpRXE17QF9YvzC(zaFo>myD^;&1x3a>{efzTip)-N;Oe5f|w_J3JE@XQ*zYfYaWL zUS^cepc40W$iD9sW=o-JNH<8RE&IkK@o>)zsR_Ys0viv5%{d<#yt@8wD8>2#kK5=a zr0wba{3H&8B1IEAhM|wTCp?M2ToKBere|{EcrtW5sjXn~hjD6U-B${(`$eY><|6}} z-`-x+6^d_CzFZil=unbBVe~b6Sxu`X?*uw(xb;zOs<&CiyHNw0x)V5NhLIZDk5&aU z9U@RR4u z(TAQ~k68L&IB4up+2c3}XYTEH!@kd!=pgwx}KGOzbSLRtTAl;ky!Y^pmtxc zB2CE;o$udoWY5~hS~*H9aPi{wecSpWyMkZRb+9rx{OJAGtWrxG_hWBul$Y5ut7Z;C z^DF^64*eU)eK+eDc0++gf(=D4uy<3I>%lyq5t2ELzfR$b13esj%^!_KVx3};$m6XA z60;dF`PbG0`PZxIPi(nkjb93w*~O9nb#DUec!b>`9EYO&11=^Zf<*lb9M_u&V331s zVO-Mh^!cB2^;`m^58{jhzWT6{N057yA33`${{5t z1IHl|%$Us&*m|(BNFt@c<^%XrAyFt1aakEqxiqL8oF#xOA~`|7nII$*HkJn-Ut3e0 ztP)2%6(kbmA;IMlaVZf=8L+!TqL3oeve+$?7|8gu3Hq=0K?kIzWd3Uxgv=?cpvLU( zFkVH?xzqmBVkC*1d(@GT*-idY=#p*IEZ(kjH|;!4r)A6ubH}8ceP4g>dx`3gUho2k zDI`-j)s5#3cV5}qk}D~N_YH=_T~Wcv%=s?E*@>97u@BwtZIPS4oHY_%zm{j*)>;W4 z+xw8^J#Ojjh$vLu6-azH{c5&B!sivg##s$?tvf>=KhZFMCwGmw9$G^?mA@;8q?bA` zZ~TUHa!vkci)$}Uo;A2~9rOx)sO=W*YV`POes5Q1F#6s|*URGmhq}C}b;dTb)fX83 z9{re)OsePH;4B{BD-H;lDI8~r_dMY{*@frvd)}x^z2gK`)%XE)ONwI~dNvmQs5yY` z1)4FjqMIj3F)g0lRrqmc0&35Q%n?@qppZq=D9b`{UEkNYrP>2!Gi zU_e&LKuGoW-5Hs_U+2Skv6Yz|af_(9sh!AY15xEm!aA|W9u%PuV=3pV#hTY5+w_{~Wps3A#NOq7k5XlaD$N%Tfw z%lKPmLAGAu(5k~h>Oqq=@9)>Y)|OMXPlz9uv^`X*An|FlR{TBIh+>aEHMNTSd2VK+ zp5$Ehc<|U{(6>fG8#aF9O%Puu*~XVsWt4kPrkEE#TSxM`_~O*x z;8c=6-LB;V2XUJw${D$#))VkpgQ(Gl;laKSU-h51C}E0E%9MEHA2vOy{hBpUzH_Ej zZxY2MZcC%%ZX9W`c5jL~X0}>TUy(JSgv#=|sV?#9Tbb2P+VVG)_4L0y|FBP)Bk8yJ z+`rt_w8(5@{pI?WJ!yl{g*%Dg+TFzpu6LBPFFj7oETe{*-?(YnwVr+Eg5+dqMTheT z#h$r$cd{Ya@+JMp06(jYAh#xy`kIT1oarL!uT4@ZY$x+St8p@}xj)ZKxqI%z`^6W? zzWjuTh}~XqQ$k)H*%zu>P-eIk zzRLv!-^-?;GXvaooR&DJsMjA*IDSBT7zp1>qbQoJ*}GO{H#RBG6D#sk)L(D@hBeF_ zC5s%%tAVpOnEDpS_9YtigkNYp?3!}(8t!?nKlo;yBBLfLM^N*XG*yHgp4f9<3wmcd zcK(Fjk7B*=zZFGSE&2z=$DL}lBb%2uWx12@a>ko2!)JL?e>eZBWpB)zUgwk{wBniO zVAg<~6KD4=+Y*QvoAo=a^47PCuA9eRU$||=;=fQ#!9L7%?J#I5mC>m?4ps0)G+nsL zcGbh1VP))fa;^k1shg5^`H!=FNff$-H0HBP%MTlwW|cnLD#k4gTivNJmuk6KWh;CB zi~EzOwxd()%5}9;wSUp8oD0=t#n0O=nR7}VabP4qh2IKrf2>~9ViJS(5 z;({FvEh^?(Ovz7EgfeWW^t>j{^ep4~92RqCPn;qRsfx6dV7?%z;w9vaA~)BvkuR4` zdsV!n#hlUdO$+m=wYeLiB^T&D{4My3Yto> zx_SHHwEO1;=ZyEG6uWYAel;X?tfuq$H^}oKuWLXN5_8H5wJMz{F!n^sCg?Hr&cqCj8ei!4mE{VB-S|; zJNJyY#5wh&9#4F@-U*xC$Z~S4Tb%w}d(W=D$!*Ay#SfTzPsSfklOjv6aWyr|=IYxa zZ<6WX^hEdRwAIJJa{STJ~B(PTgS>i!O7=!983PE(z1}Tn$9b+MeKc3@2LBRNS)4*sAhz8y? zL@*pZ;jqh!!}dl9pilg9@D2#|1di3fJKG^F(A6o_4ddXAgyW15Y7AI(_#J}6yj*-7 zoLpSoLXOi$M#b6d=ga9NV32TGD zxJQNHZfl4J_-RXs!x_d16s_c+s*c^Hu~E)oeWxQ2b16yq&=^6__z#emhX+6!+l&Ca ztSpQ)K?p(;(y*Ngf(PRO0@Nn>gDS$F^vLBKtM>sC8LJ^U0O>gnIpI(85EtC4hB$NN z*8#lh*b+8EE=0MQHpXDJAnA;Q~M|wo% zzhFM5n3DhKc|i3n07>u*Lj)m^0`NL$ir_>X8?7a!B(eS>*5GQe)G3UA2!8%zeFP#c zR{LIuGAra-HIH}UT9z-n3h$H(ZQ;D3Syq#_PH;z*t05lC^gRul)G&i$!JRLQUsQ-Sl>++wdp>X~wm@>yVL?ZLQJ?7e{wLu)8Qt%O-I1AQkw!t6pfAH%opk1HVLRG(4_ zxrE`_kP3K5>&qRboR-K<;RCZDPw>k=*Jj-IzAgQo{Gk(C;}Ct%+~ZMk#34s#pYnEv*Wy!1Mg(Gt7@>6>f^1ma?jYZE;==XTq%Rl_O zc(-*(yK@uW=Lcop?R|3Ks83Gj^)YRXZ%L+AuQQpoe!IysCqG}6(Qn%N!^G)DVmz*A zlvH=SQB0!6BTkY#>|AT>1LaG6KNCDYi|ddM@-EhN;hbupUU7XGQb9GhT|>F;Eii{1 z;?ew7AdEbCUckw^MDm>>WmD{X^g}k`g}P_Ft^rLR=*;ubmHSal_c%@l3sX>3D7)l! zd>wlWofsf>4vQj8#}ip>XZpCSX&K*w+v<#~7x^%WMX%XUqCJ^BZ|&7;30_jU+Qno_ zwIXS`RBEy-!)y<;uWsvHh~waQih{J3Ha65Mvy$~M`nWGR+h@;`G=_;?&~9{@6zsb6 zvM*l8YX|-KquH03c5WYCu7zv4*Vg097XpF`R?iaNpj2A)&^tMF_2gj6>4B5GMWd9f z`)7Q~B=neK^>ZnrIJ7E0KT=>BrI(<2M;lD|;q5fl@U&??kxDCt^_N2R)DNo{?7r$Z zGsa6Urfllamy(*`?~o)?;S%FferXG-sL~{>k&SpKgdPpf>Xat1!&gz4B(~$bdZHvj zB%SVZlY~ll_;+s{k+2&FKg0VeUu*|jzb20AA&?x2+UZF*7(A;Ht;biLwWe-MmwM4z znrEiSgt8~zV<1$glB;ViTXY8@a?+CQ!$n+H1BIaILm+wt{c4DN~m~(4LnU zPv>lThM`(Ar{&3>Kv&h8&DGBO5s&PR>#5fzMdz9+f^^ChEtmV-#ou+S!k%PR=aMK# zscKn-?oczY@)tGgJhqqJWmRP!?6>XYc^qSZGd<@t`h(jWKTtR3zPLyOp<&s#vb4NQjm`nK*Jb3x z$(#fie2ElA=Bbm|X5Kv_xp?IYzLwJfZ|^(pg{sV}Db1@>rl!4fJ$LxYo9=eHRMG`; zF*yBHK0WHnXR!DsH}&Aw$)&b$%QE`s!uNM4axVwQ)LL7gZT`)-E*@v@P6A!9D8dA;-dNtParo;+f* zySMh9EX9A784&Mnb1Ws+EJu3ye&2Y%#1%bpt&-cZ5*JtL< zym5u;D9W}luevIE<+a%>fLzq#o#7ISY%OHFC1ZG#;1s`N0-HBVz*59%Pi5Xow?TKQjwq;`?AF5v!0AG z@B>Pb%EsXb#-A8*4Ji5i9SqDQPu92V;|4T{4Je%HMpL+o3EPxEraf=QPAzQNE8Fsk zpSxoxTrukpR8}aYjZcp?&GZCx{92Qu=qUsKGgPo zT3E;HAG(GGp7|YgGkiDBd~um7;#HWX2;4gBRaonDs?LRaKj&7@=SA}b>Oz_?H`<@A zgxTgPy!devtuvrqyFR&a<@$68`#l^1;%8N6tamTpx=bf^{d`Kx;|10^$+tJ7p40r! z4;0d{m@_o}(Dyu%`LO5mRaudNAHBl7m#8>Oi$>niS<_IkEu1$^!EF^h@#$Vxp43RK zR+H1gy@fWp$(@sC&VC`4NGon7NbG*>M>X4usFq?hm+bvBcv5k!t*Col3i<79 zafU5!-Vu&gGi?+X^!a)6yk@`e5H=`i`1(<3-`>i{+bev|q8%FD>|}Q0f{<&g`jW7v z)y!mgvJS2#6qx^L?=1f6b?X+NqT*7rNX18A`;AI|iIeZ^B>7L7?zJ1(KAo7Ysk_+a zx_xWqj$w=L2D;eR@BP4oIk+v7^=n?kTvJuVPmZ$;A>yhJk+=LV!3JW;yTbAvKHlcE zC#@fR%>1UmSQM!^yp+;*^5MO2{Wc%AXgCcM_eeWM(;i-!w9uT(S0LCCl?!NpaC$c4 zbki4Px_isoc*w1pt@$q}Pn%ZMjNe`7TtGVt=qxLb{k)_AX$)2Szx_ZaQ);af- zq9$&=4XbT#3-2OYJkIV~)0^16shS4T7NbP7+ve5U9!tA+OqoLiS4kiH^Pz~TOQhbt zC|Xi%vLOsj=D5P@ukpC{e!H*aOu5-DSLy{RYq#h_oYm4dGf~d5Q;M3p_;pVf-s8Rf z8Z)Lc63e*Gl9GOfOle{MPSQ6e@?hoi`CprTRlh$i?ko8hhSKQ?B_q5);HG&E4b3zt z$M&MpI8uI8E7%Q*1jZWM14$g2WB=t!O%L0HEyRBqW(ANESQQ_Mjn(=uomb)?gRBG+ z<4?^ALcn5dsGAOmbC3kqp6c$1u!Gx85yTLH8F55#*d1*|u=?%sH$eV+Zb*tqNdK43 z5+wZD|NI*oV?+h!rhof+NWjX#-qhmkgy6IC~NzsuvJ(^d8Id^=10u8ttFWpd7-D_R^?6JrJdqx=TsHf_pZD!c+UIthXGM5 zpWYq(vw3@D{hxoG_+s{KR?^)6+TfB*30>vFH>5RzeXuU+n;*nse$t|ZHJ1>wX9Csh z<+Ojb;JP6Y2y~(l*;MMQlj2l3R?ohW4Rf5a!+F#^=hjx%AQL2GI)!^N=n`T?x3w=) zHT!He(3-la-ZZR4s$PAc*%4eAqng;3ZAE)sti>YY^3AFEwoXpxa>6xX~$Va%N;$7_vaP-EtZSKp}Ghe zxrP^7`@Qq8+RI~{?3C)awd$18^XdF!l)43Pcs*)IkGjeqN)*!^a8go^H=Eo}ezGnV zmw+!;leEo=emQbqfAG%J8#RT?#FMCBH;b4}y7`^%mtT;Z+mU!Me9q&ptFs{aq-U+% z^ZeKT&^7Hz)?t=)|7$4<>t};smJYUV2WjjhufF$73}q2${zN*hBEy{FkXkUt)={=9_=WD~4Ys8z`-;$p(TroqQX^n>ik|@!9_R|v1xZm6d8kQG%XbmP* zu5{zzOET*`zN1x$Dj5zpdKsE6_>=IWeJ_jsN(8u#`5@x^o+YX|7st2xT(R@8mka_! z=N&520IN?Y7!|KcFAeO|D3E))h9Re4GzXq9xmDnNa=210Fi+w(dnb1bT_<}gIT^~3i2R#QHnQqzeQ-a})LIe!u1)>=}^ zo!us}eVq30Ox69DFBfw*@G$z!v(;-M!)cE`=}gDI%WE>kGkUt2|CQY14>6A7>aVxXzerQzb%b%;Noum>=YTDY|`JbMM~P6 zS*jCmKZ=Sm#QB=QH28R|jFtd-A6I{=Co{W@~ z-n{!ga=M(br`&G7bVBnbcTh}s@}}`r#yP;6sCfWr~%`xZ95rFPwqRLy_Bk4 z7h>qLVUv_VJGy}|d=uM=yhZ=9uiM*__4RKRujuyOYG+3hfWUXBb7XB zi4t*ic|0b!3cG(?9ok#JPh2;lnd6^7Eg)VuQ3Ox>Jqfh$w{x#I3gX+lW#ag&uZp;i z4gEFuQ4MZPQ^XHz#Effp;=8Xck3R|Djnut8cdBmQ$T=bCOPWx+Mk~`<`d*DGE9O+H zI;Hcy=Gk_qV{ud#r&1m8M)C^@I*p>xigYXetC_RAnO;L>U1U+`y;XW-g-**P+48x| zKJ5zPZ#TCM>3Vpf)h_hK)nEQNqvBIjHOm^%id@T~H)0xba+fim^>_i2J+g>Nz-4O) zwH$IhB7ATT1`gAZImkD_TJC@3YG~k(pd-Q9!;Y5 zp(ub0A_L-vx85PtVV`IODFWGYAsS)ojsTV>C1lItI|LstLcE1{710WTH57xB6fhU6 z!SB})lq^R^K_bz!DB!SoWDz40H4Sz03&ft$ocfF~Ba-@Sk%En*5HtuBhFBb=QvaM! zN}*t~REYVnxll^#XsJHFWqpNJ^$c`v9|4dSgBgV(UeJ9NVW@-jDD(oB zFCd3d1mc0D0sn=eb8we9L6Vs--v=PhQp@}mhrj%m!9)i+>Vqu&776jghDb;X=8%BQFt2tb z7_|O&OHCZ&g_lGjdpHFJiNJf}0JKyLP)u7G(#OzF8g4~FQlv-i{4KSQf_UI~BxDX- zNP=pIB_Jt;%wN*U!IqNH71&c8Vu3HpLHKZt6vPhmNI{bDX%wLDpEOH&69o~#0vrfN zI8_>wgOSpZ418A+*muEeFbqll0cMwhY~Xj2z^V(LxZzBBfZ(tUBn(?hfmdc($QXWo z{KSIEC4yUJq0_L3G(eM34zhyxkDs`(xlM8)_X4IW^cheo-x<*BpE96b@M;4G$bzSX zGoWK1j-QSym4RL5Kn5@_Tf^^;pN{LxQ2@BuVyd!MgxKJ23kVM;P=rL`spB+r*a+C9 zbDmFf<(ose@IEGQP#&~zpafaMY6>6^cmiMxZYx3JSi?0Y>8P)P$^c#lLl{h$N_asT z#GjOs5djCVKn?;x7%j~5+JH2m^6W$12+XE zK%_?lwA`(VsX_yCg-z7J(=|;XK^S_FNl2nZfa`)dN>)TlTnskW1eGlxgZRUC>VQ>_ zx`1wtTG-~L;4yVj!MqL-5s-Ecw$XruU{P&Q^E(YJBKVkB5%{w1>F&Igz%{Uw;(+5h(08MCn*D*M^Nx@eSk~b z|1UffwsX-2pmtHcbt5b)0daa!RT13(P`!-_3eU<}G} z8-j8TMvxv%W&+{iqmW`ElEAHr$pj=98G?2|o(2{^!30p0+6bgMnt)jlj3zvCap2E` zaR~y*0p}-4_@XIbY^o7xXU!Nh(P6|a#1xbhFa~J`rpM*r&!!LozL*pU7z;ul9bgI# z9s}^gKIZ_uq6uiH-xT7bK*|D-B|ryp84+12adBBV)(qg*bezuti&=oN5Nrm@2$_O1 z%4U$j5pJ|d;MxIVR3T-=fHM>3kP;~?CW1VoM5!qlnE+B8mbC!09LqU?oRv8wj~N4G z_$c6zB?j>NWeM=QcATe4E-5PljLg7Q1T!=+5t~3fDVW*pPthYhwk<(*C73iOOE6eL zb@*i9at64gAua|s{NRh1aFi7&CTWfZQK1JOT9Uw~AT9~c>M$R~JQ{jp62JvT17d_n zj^U)R-Q2JO-Sn^k-Bh)LgviCkFct?8l1W5HS`1892pdrK_v36ZtT2?>vj#;nEI|<^ zYeOOo3H_W!0;I^wuSJC0k6fSF(}GP z!;TJsl}y%vjFUEy0?cOzX3!FA(5X#ZFu&fhgGlj!C?Tc53~C3c$Z3Pkl7Tht0pxwm zYq%YxNQUvZ0T;%_!F&V!Z(v&xXbV=e#pcRj<;Tzg$mug%fDf|+Bt(n#ERzNkwHS(B z90_6?O9AG>YYw3A=j^ah60pA`=)@A{6-+LY*iP&_Lc}K}Q9y|z1_!lph&?t}5zcS| zz(4FktKE)}JQd(SxXlB|BLZCJzzC9-kb#xdL4RW$0Em$jqy(oq13r^Dg4YEnNQee0 zd9-RE#YLpR1PV%k(FdH|FoU)57znI4U@%ZgV?mF7=l%okv=c-M4>&_~tWrdxnqI*n zq3q&E+8X$3t)3Hj1Gj!Kx)E{R0SZxj=*j*cN1vuz@=O;&H_QxkIvlfy!I~ zaq&DLK6n|EH|+_8z{3Ml#{krOKy)len)NXq#Ibrd&`m*1GBCSI!OCu6r0ipg$GL&x zXFMStgan-E3C44rJDBYjJfZHtZGCiyC}4eeK)%;rKutXD0oGXwZ^%>n&nJS_KrDz* zFjxHL0#=Xz!v!F8M;$+E9VI3WFM5F1*S$eq9G-yR3%-D03OC`(kB1Y&tn3>Sw0Xw z`7xWZv<3nAC}IFU-TpuWU-QATkpw0UfVf$uB*er(d%sY(m z0?M0L0MN-JeE|a|0>FqH@P!0n(LkvB52A3sAIN(W43Qx~{6Genzz1~ftsj8034(Gl z+IT2LM}EuztegY((*}bctor}yK5Gcjmt4Uol^Flc0P(*J1pzXOd>~HRW3j||Cjd$Q zTi*nxKHNZ1A2I}}#hH=7BV|1hi1A+t5R{M$77YU2CJu!X5t8tB5X1#xqjE67BcWi> z$p(YD;V=|BXYy|>B>utTXm9>ktp1bGs6Rr6#Sp9>|A8TBrXmcq|MR#7e3&N$qK5f> z!GDbBAxHR12+$t>w@@B%UkI2A0aEzz)_I_!13(729Z(yt4uwc@uvZ?BCJkbEIuua- zSvaJ91SR&Lqa85#Kk@lruRFpI!XO1)AQIwkuw^7zML=7p;EPcZKIgG0Vu|@*g;7Vh zAK|9+08erNjK)Zj1V(}|(j^0alK)7T1VBU*^E;L{X-pnQ>M*b%e#%i9Od3iN^WpDc zH!!Tl|IH25A8w$q-~Il}jiVhXktqK$1O6o<|C|3deAgGEg3H1I(*fQDu>1uexdB%o zdf3(vVlX=%4ge`BH!Omfj$x2LLh=~dqYi*HOdgodu^qv{V1AfR%Kp<4AR?HVfR^)L zvhm-j9r=pGix+@sI7fiN&Ke2kJ@Wv7s*x{rQUnl33`52LZ19MJm^4{zI);*1q+!DV zF!nJ888Mh24R%oSFR3wUGH_iI#CycHKRv);|G&eEiGeKaMDe$g<9EQq|6@4-|6kO= ziX?XKf{P;|BCId|@e1{qzsF+tU;gID{_ejcfGVSn2CP%|2HUEf3lJ^F78M22a{Zsk zjPbVz?&|Qn3qZ9wTD*QlK?~>pYeD%t|Db@s@zHq3F6+Sc|34NK?DyvXuB*pO$T8MO zE_BBO^m8Pbew5KzS!04TVxU@#r3Z)v#c_py3t>F%xPh}fhI@%%C8>%%G7|w<8aCwd zSUwW;znJ|~6oCelp-Bu-mjGP^ur1KQhOwYs+$#_;)d6=gMvSUJ0w=@*sC6_X`v>Y> zEW`o<7cbyG#sFW41t7d=0MdOKOh7dkArq_@9g!%OY5$BxY|zy|V-XuE^>~3qA;DCF zhM0lRoPHd@Z1}iB0=Os+ssyQ+PQmgQAp*kVK7jUt6B+~j@d8*)(HFt2_TUnfehdjA zC1J6+qv|eP2Gs?}f&3?zAq|iZ*iHj~kB7)HU66V4*~Spk+KLYLy6u{b}M8 zK!Ee#QtJP{C4(KrGagp#-^q z%j-Yliglp>!wzt(uNP#GzBTFlG)Ij2rEn;b)Ibfg`D;C57w*-Khm<#5~fYyNl_&=V3y}lo! zJ|!(HAp?4j{cs7GUBNXQaQg(d&xBZ|O14e&*@Bpd9~@{Oq`2kCcxjJPs4_!M0vso$ zDkw&CcW`hgGnI$$b;OUZXSh%K=?Dy~K3IqEWVw6PSy$A4M}Hbnyg6PP$nh2xuEd^aDRZVRyZHU1z=W^W z&T}Gfj0Zn9&(k0~J+el~lWZfHUX`#JzhJR5!~0U?muk9=zQBy$PAY%04VJ*o zgecYxMYM_LSb0bwx$@7S0Op=&DIWj^V$k~C%ym=`Ax`JP|(qUcrUMl zGzQmfG~=@ToQj;Mi|Y+_lkEV?{vwsQXB^ya&Y8spgYtVe65LNVse^m$RNwP@&Xs?3 z)J~c3`S606DyK|ksMO=GIwJ)=HS;M(T9MS`TrG{k$DGtvMgx4+Z*KEu>5lTQnV7sD zMeX91qXnqkI8Z~HvTYZB;3jDF^W>ZOSY6O?GYixAvx`w%y2bnEV4~xjtuR`*(tNX{ zo@MILeBk{(^RV!+$+y$iHrETKB&FU=jE$eOFf-4Et#pNX`ZW@8e_UvjE#NIzDapF2 zJI)()g)!{5EiEf8<0)!-_Pk^b5`Cv!<9@Sm_cze*W2JMRjg5agdn4pT&!X09_#A;rRq~Q~q#EBO4EqNxMxBup@ zkS6rvwR#e-tXUpM>udJelV@$rU~b*$cPy+ankI)&~QPEj|Q{93N7i|UKjV6 znYXp@z@RFm`Qa=ZmSl5bUE~CdlU3l>26Gv{@p8h5Yl>P(Z(i@ZClIo-94KAWem zM-;X#)A$F@%$fVUnDKlpsJCW+u-D=ptmL`V{cE&gbc}-kg6dlS@Xx61|UcI5y zE7K17inV!{`FKv&Z&;A^+-7#~$YpG4X0i+ov3ud~oXh_FO~#4qn#wD;1byvD*KO5& z3@y6on$T4j8(o^r)+Ph(bjX>+3|r0#xpnaK%#zad#dVvjT@n&atg^Y8*ULgSL|Og# z_HgQy$ZhqmwCQfYSAqge>oe(bPjq&IL6H9^Q{=hLZ zF{(xo0hCt6vi`Aka!@0&?d%9NF=uxAP2!mQonYyYLXhMFo=uw~4sF*CF>}|Qy-PIn z6LYV_&g_uRA||w!bzDF zyer*Gp9hL?EBdTN9CesKlf5rm-e7Mi8qp=}e4~b@qiR2S8b`||W?&;>OK?NBJCb+dKJ1b^Lq>Arrxt6p(7&(9M z&8vIyefe9Lbt8VC5)s1N_wON!tAnhEDc)SRrI$yNUAE=_)ZJsmr(I2T@>k>gD>!kq z>~Bbv_t6Vo2x(IK3L`EO-HW^`7K^uxPpB&hTb_)jk9e)h^b^;1E3$wrn5{>@%p^jQ zqeAgApQh>DK~muB5w5ZypKKHM@n%SF1~CVw;l4m_r9aR-AAKc%?AJule%R^S*7Pq8 zF58vMN>(q?)aI{$Qqo!}^-i%lZ6|#omph!+3y;2t{+RyzCOl>_mu$L;X1JfaPbaWO zh3FacVC{3ts9`II$ci6-&FSOYlsj9l)yq~8>-w8Zk3tTy6CrcpRQvr?U+ZtD=%vNw zB!RU)`ryxf5o_Bk8NXj|*9{inXD9_7^esuJi?Y#W$&W>g-tb8|_p-OXaHz1h;3kdC z11^zZE3~jv{+RQ{?E`|Yri1pq!^Q4Q@8;L56?$spWhk{!C5b7baJHGO56NVd-R>u1 z={qyJR9=t2sGjuBnFZgrcwNczoW^9Nu?h+{;(rURMtDCZ*N&34CZZMd_FR zDRZ$gJut))U)_kM6)#Ml@~acQ8RL1$&zkfK317?5E3Zf&U;O$_%Z0Klo~_-{$IvjK zmD>tW>9p6>=Yel+&Fk;I{MLg~H$%$PZ#=i76N@d~AGzyNEnn7CJT|wyVYuoaNUqYW zb84T1@@4O6n!N@t`eR(fL^6syw~ z;>u{{<$)(|aR$&6JHD&_M0mcI3H!(xl**^hwH_}>Ej+qM>tq`D{l zNj({>S8(4-e0u1zvdtKIYF%U6DarVAW$qObkyv~U;dy1zQjZZH(PmPXty^;{79W*4 z_NX!uZF1;Wv^%GUf7p03z11yt>Z0J#F*w^F9F+Tg@LhOK=bK#h(={iBT2&Qvi}7q5 z=iceq_D4U7R$Vr#d4qaWxy&+*b8|k$9}<#{9z8K-vuavhkUShj982&>^Gc2JC+4u6 zhD!WZw1>$x#D}vVIKKouL#LXkho{a_a0T6sFh95zkIs`gdtNt|BTuKJg0J!sNiz8) z?Ur?^e52ylnYc#;;<&|RKRGQ~i)egF6&a#YkEw$lp4gQ2lx>I!-j?@8Pm1<^-zwOe z=zEmA_tZYaku#EOBjbC9w#NI7C%>~+hVb9N-bq^cl3M+}I@r=U>1jIk?IPYPLH7d9 zTVqco`a-{=v$L+-{(P|duKp+DLrAr>mP2{N&reRM=Y-$rHm!bs4~|F{+3}7pw&+{c zs1E-@wQcsw(3pF)jC0cb0o9cR6Wg0{Lr)(VeK<|SlU=vq7xxgcTK2|4IO(vuUt)Up zK|_q6oZa-H|Mc8f2}LRS8ZqJeOk(1to!6r&O^Y`z66DbPHk;Ks^tAb_HTOdo#P$w5 z(<0swY>J8{n44#Q2xux>X%lB+~)N4g0{V`N`q=6^RJRLhnz)M9VG_m zZ;}zM;ij2t^s6)QpI~+BxnNu-(U8%!!E)y7cvo+4OaKehw9nOw^v{R8Z*|AJ4p3~4 z&zFZSe>oVwM}M<+IQUT&Zy~$oy}fhk?ppA;$&k#>$a+vjB{tD7@slrOUn6+9VA^0;*AO#}jE5jB6gs{IE}N|StEzETXtHXHeFr0dhodb78u zr(MrBzP&9JJYI!%KR+*=7RLAFIwZg6C~AM@))F&%@uv%iV1Bjwma{xcdV*xMJC!Hr z!Re6SmpX6X4sJjRNmX@Lw-2ZK&<7UJIX(US)-1=j#ZT~^xD@Hj4Uyp3sJgE9WTEg~ zZmHQ>8!7V=x!QojI-w0A!`-BUSBmrJnxh)62h@3&rLLZPfR1@>TtHjX+_WZa)>b&& ze5o^Vp)ktHet_ufspVH0n)K>~cx~6+KJb%pJt3xvd-zeYaxS~tHnJjzf53|;o`p3}r_SY47FZc5FnPkGDtBv6 zZ;sZiNRb~dY+O%?fj_vjZs-UKTfn{y@2tsXt;3sFD>xQMjXp8{ex2RUHfCmN7IE>=!u)?suXi*VImR2n^VKaQ;FLZt!hP2uJR1we|^DRC2ywa zv+JktHLq2Ic$!(PV)$CFwKA}S%25-cA#F_+|dS^-2-Ph{~Rn*C04f|w4 zJkIuT=YWAzEg5~{8hs|mcTduB?nEaM6RL!5j)S$z-^C;+E>}J3)74lk?~Ay#I_@N{ z<@E;N#k6-awEBeKrM)ZF6Uuj*P2ci`WLcovje6u7U*3D#>sPj)_Mjl8H_qE`{K4k@ z7}}Xzy7K(wXlo1K{m9?_UK1f98sC4VT+#P>`jzW)IzxjuHM;QKPWv!Xd+Jzb&1v5! z$=#-Vrp05o-Ay;+n?Kxe(lwZm)2HdHcl%WF;P4~SVEOb;%3%60`R4Q0{2d*gvI_e% zx5Jt^@?J4Ud5<=`Dac;1Yp(QFJ!@A*AyM{fIpd>-N&wH}T29WVpYDqj2F1_s4x7Hp zqLmZHClNM2owlxoF1a8s)?V!t;{UC0IyL4018+c(zjr(}GWy*98f8KEo->1;u8R2N zn9$Us#(T5ct;SF)rP@(6u~Svt-GfayTbZSc$sT=tbn5b>y505HVD*Xf(gdq_-tBaRBd zQHSWMr54IfU8=?J9pR7i4;~>n58-R{P5QbwhJsaz-1N=GZ_!hW-=dnp?;W3?U&}8q zCjdjWLzH`|g`T>81n+;qb4PextuSs9Y@LO*E=lkp5@OKNE2~`|He(g-&B7!$V%mUp zp|ph7;L}Y3ffZFoK3JzpOH@bVH_za!!EuQhD&^AK#ytVjwzF)GOcEI#A8{1_41fG? ztWlP2vfD$FESb#fw?o*pI9Lq_WJxi<#cywZqF!57+ic1EO}b3j+QCAWIE-M}yMUo4$ga3uzX(omA9ptLv;GfRCx z?%dUwsH)r5^V0`m`W3a zlGVD_@^lD3qQ8F*%io+7bO~}35x=ECT3?)_St~Cx+cAG3ghN&)>b0G_^}VHIe$sKB z{_+PsOF6q=-d*zNKfgqMaGw7^|1{z+2*)e@XNw=SpZUW{oQcbC#}XM3eVv1TVYX^l z!;du`dwrKo6Q#i);-i^W28Aeed+6c zvIoTH>FIw@1^3CH>LT@*J{ht5>H*ZbWrG27_g_)Sbe2Q z)UxCr;x~D`w9w@j!hoSm;@7>p7Ci{ME&w?vCM6SP<|dgp)Ov27ulp#0C=11O&I|ni zecrzLA93)7neXq&SDC9);$hwX=F79$xx4@6{-S@WbOK3A$)yR|$65nL5L~a%OAum;A`}0R$>5cVI1pq45w}kcUm+JSFwMHWr!IX_DMT~Fp4jGDKNGPj z6D@irbxNr(;gpnZwL~xz{1MNtMmk=j5z_nsKD}D97@^OL53nOIX6i}6>=z$zgsDmB zO0a(wF9-pgr=#Eav5xmf$H05}V_q)sPJo4FL)M{?i-{~Bsn+@rulDXA3~>CMw)0!# z%#W3>ip=(4Qpvu$V{+1@ET=OVj>+3^e zhCXtAHkc=az4ykV2*7KVEQ*kTp+{4E`V_B~>+%xCylzzh_&@P^d=|gCip?ING^c+t z)wg~vio5;qcZ~e@1atfjn-Fw&9q?t4_;6!bc%4+3V@t@R4t~|(@lNUkl2B5VKx7_Y z+;oTS-~JAL)X#v-uui*R9oZv#`)}WmiuTyfe)iZ?pPy-IIdk)=$38u4yZyd?=!uz` zCk8Vz2LEAZ=8RLnc0U^R#`f)3{P%yOH_qDaXKx^%pI{Eb_&H>{!wS5sS-MXy^r};B z@>>K-54`q`l7esk$H@aEU-`+zmV0bE;zW=7kG*K>^w8$>2R8BNgvm~w(sdqjkZ9k7 z!^Nixa$r%m*UJmRhA?$}#~)uIkMaXQ+8vP9G-}awwSM=W?!aU3EL44+Y)*eHzP>kl z>{v%qfBM+-_k`{IS1ftrYoz4yrHvpXAp+6*O=)gpgJBtAkD&F7L8h_?%ESr%d+a3~ z|Ho$pLs>JKbtDqWv5)8SM;`LUAV+Vtwb?^cY76n(e2*YBe{;U_X4{^g;s|3(%dVC- zSDglIc>wl{pMy^-B|gcs8}xr}xrh+`HZWp;2NmPl%ivo>kB($-s-ZRI!?g>KvGwyk zTOa5%RO~wI=zU@`9pxP)z* z;H=Xz^&XjQ#-)QsBCa>|CAvr^2pshR;;rS$7Q>G}UY+aA4k1#&!`|pXnB!`gW2d37 z9IssN^eA894XEGFzkaCNf4Mbp-rLZ9pd-~oqXb&nz8}iXQ_t_Em8)}m@p|{(rX*9x zTs3X-=XqopK3dR?6%3(rXWA8BAk zr4j#Gr%LBkGQNws$)?4EJd9?DsFy}I|DeA9Tt9U*&LGP%+U>!dCF^#nfFS}QDfvbs zA0gtYJe|^OJLLjkx!xEb^EgHc`p__4{7bY{EFu_g>Qwq9RTzKn68{4K;~#(VM*`y# z4S+Wr@CJ&1s4&RFQk6GF=NFF*zgkoO)F8DhSfx?~2)Gh0=G&#rp4*4k;@`35#rl>X z4boGd^*S8nmIs&{J?ELLNWH$+vpWHM55l4Jn*B=vHsDqD62n(wh`(QvC8WfP@#_() zOhaY@_}zJZi%zlhZqRN~s4{=*r@sz}2oEf)6!Wnm+B~Bn9^3inv|9{HDqYMO6oGVL zr0nv)#KeoV5iubmyFHZ4PvdP%PZnp|?Ug~%s*FTj&AUT1N!oBO!EO&r%uT_6ptMC$ z91tEI93)pJDfw$y$5|jg`2xl!hOt>zxCzr$pKa!Ls3s7p3A`Z%B)}ms3Gd5b6lCI#-gWpUv2{Q*Dq`sYyst5*4jff3N zD2(PmE!|^^&Mhfp|Hzfb>GgnKTVh!HE`QkLJ~4WmzeSx8%aIKBsj{`M`)&M_?nIAY zPVDAyNjw4JtxGFsm5qPUR_<-PcJ-7s3PCmrDZB7n{4JrSs8(qC<^Pg6?hF0{`r@*k zobO^yj)uOtXr*80KbR+L^)T$gQkgy!N>)KEkMZHOU7%=W5ko7S*MOc61jy?``b6zt0$|%7h@~kF0-;Ew0^ct(@yH{r->7 z1gA9M)c&n0_1ntMi5af6mpZN~ZZj3u6F@=r&#m>jKxkOlD(aPC~`eUx19q&rWSWJ6%vP{q*?6Q{%bbv&l0c=Tx7s*}%6%lf92; z!%I~TKl_cUsy*LxSoaNEdpC#cDzb~VRwjMx>8%fNVe)^B&Tq;~@4NQM*$?i`kIQb( zsVOws%d{Ee7mxhv7cHg1De+u&zUMp$`em*N@+w{R9IHC?polRi>kPQWw?JV36K8oe z6HJ67J_i1U9!*{#hUNlg_NPCvcJ z!fKpo+4J&z-}HA!Ghz9E1Lj15v53zb9%$(qg#lxk;;>l;gN|(@6Jwi{z^E3$Ux#`u3_D>moH`k6AdPf*>tg1S`jIyGkUzQdj~ZIc$h)Q^zc zyQ_S~z=d%#pTRiuzh<0YGaQ*uqGH^j3}kDXyE9w&bsJ*hd2`VO#b zuzCEW9Q|>)wfBuv_mjYE4+c$06R-S*LDi_`=O2>c5 z|8MmJ?>+<$CbsI>wTEV&n=3A!dv0dtSyy49>sivD64v#3=r59d%ey`>S&e6+VV9YJ zH=F`KiBT`D3r_HXm9Rz%_72zjsi45aQLE7n{r>tmg>UpZ=^R63YEpvq4Silhfaj2u z*(M0}vNy;PWCvrp0%L#4M%6-O>4_b|^W^5;5n$x4iFemW7+01at0W*j;n$r(h8EY# zghNXbXe>>y2{U-PfX_`ru&njL#u=gP_6dTW60M6ih;3Gavpol60Dr&!3lfi@qdguU zJY*>2MNb`Hx*%RP$|7B$Jguasa(W`lP@8QkPA=A~Bc-IQz~6rye`;tg;hJjLTwPR0 zLwZfGqhH6rwlYV0A?_(>dP!8f5+C|m#`@!k9bHm!k2p9$q^aNCMLpZ5 z;*!Uj7w49m#s+}D5$5G@nR+1(TOYOhueob9#^eba;a`7+RjEx99tSK&&u?#5 zw)HfzkUP&E$o`*`Qb=JbkxGw-#K*}Qi6|yP9eO-4prSGizZ@rg>&O4-RsQ8*ay~)d zwA)Q)85e)U?@j8oH7KIXHnnK+gX93h`>o&Nv-Dx|t)B-Eg^>8yfQRhZJSa9e{orWb z1}70-$n@2>gO#yzkvJelJuD5Xs0zgw6{-wQ6~=#g_NJEq?n#EA^~PFXEA>-K1;oGc=5aktKANpXj2S-Ufb2# zs8Ccjw`r;E0)7|Jn{(GjIa&v}F~OZ}f%uWwCO zF5L*+BaTqT9(gc89v)a&CFWxzwfR|DDopXbzQdrTq{4ATT+HEZG4b>zZ44}O@!6^T z@A!Z1o}-8ubq0Istzb5h6AmJRRpw;eg!^;y?e+j!bZ}HEd+AZm;9W>&Dd-^s#U7$9ps#wo}+t3mjE;QmY8gAqJ$rgFk~47CfYkm zRB%%3{>?*u(Hht!G#01}(-r&(A+7x4KwXd#$LKcvfkFCL{R9uNl+Z3(C;TGW_lvQ$ zzjF}%O+WI(rwD0it3YZjU<=X}BIbYZ#DWPHd`!Ty5t0qM{fa&aw*)+}^7pPr-)XBb zPmSI*g(MKgdD1jWKvr*>fjV2fX%PxWBi^(ag(H_YEkTLspf@c=QRr!JIsnPhE8cV< zGN7M%(?Q@<7FYf%Q-zh@bO>(1J`ABqLEQsLFhjg&A9dQB#z;;rdeamNrNe){X&M#M zDsP%Wa=Oc#7NJ;r+?$r5O4`R$iqhz}yy*axLVxZ}2clj^;Y|l23v-t@9gK>Zm%Ql^ z>ICzdHyw(yCHGcLP0!Dajf~E+S*FY^wq|N-WZcQtO%58^vhi`YjTE`qHmA!ubC+|- z&@?qW#kMCPc`V4hv6Jmjf73zZF{v$NBMM&r(%I}Ia3XNJM43FC-!)(DlSjDCN`6W-=R1=sA{ z(Abo16d+emP0q6IQ^T`69WzcchVijM=cEhzoSPhS&aktiPPVn+S$7HM7F%Fy{4D4Z>VyAx<5K4~yDXTDgRr6W&hXbr(E`pk@=ao`su5 z?E-xa4GXnK&>XaP0A&-DP71Z=0f(oT2`CwXx|8r^ksj`i_-sV83n>?*30D?IVSusZ z`qdp1kUHR=g_?g3KH=>=w#{jifM`i%5Q&86kc_-90dO1%) zYU9=u>v~`1-~!qlU?Fn138NuWt`_Rg3K}AkodqsL($0SsJ&eP95b~3P-H>t4L3&8g zA{ou7P`4c<+X(Mwq1VYZoEz70$N`U+-B4PZ;~$q+i!zs6XfeqmC&{sC@jpvW}sFIE$W1{r>t6- zYfY#d-VJ|HLh2CSPC(_6&Ww=T1(KN&EWssUoDs$`0aPMkpH-20;{5-TD+@B3TB8$} z&}LAWb)+UM%;!mAW;+CnA~>f7gcE`+eHw9j2#Wg_X-7U>k=w8RLHlloQD}`u=~AI~Di7sD#8rrjP%*MVyj2c*uL4XpU{7_Z9&Diz)&laMMzo+-upsikJamBN zccLjSu$3OP8TCSBwiO-57`=r45xp##n;bKl%1lBuCq>lqGNS(<jE2>A-n=`mlKcz61NKM0yzZ%GPm8q0(t=g zH9412!vdkV`ojWt0Rc0Yam4}@5j8O~I0`RJWo~D5XdpQ@GdYt1$s~Whdka`wRkrZn z=bStUuK;-f0dkT<5+F|q1i~u;5+0@H4Gk1&QV5Th0OiqIYi+gmMW5Q%(Q4J}tsQmd zwrQtR>x{qS>(_ZXwb$`>)Twp;xzibE^g7qM`gtpayUs}{P^->A-~at5>~q#$d+oK? zYp=ccNkAAO6owJ5;Z6MoaZkn~lpsNf&KmUl`pCg^ zpF!J4P;7&M5Et-)F+-#>qekoXa(-yZPYK1O^W z?}heSsM909fWPC#&wh(gZYe@hwz1KPN!}g&F@%aIq5Z+JasOE0$kv}DB$@#k*C19` z9N&G(f6cf$zVtH`Ekx|~(y{z6+2?zFopVmFw01;59C<*aAv>@Iwo)z#J;V1bf>c^iFh=>*v z6ptbZ>L$*prm?XG(eT+6mO;3m@X(PqY8mf5YYBkfKrazsWzveKpi~l@k(KB|JE%>l z8cGM0S}1lX3Meg5x}kJIDP!A+QFM^cM?#(#*?Atcp3i^4(+>1sAUl6QvXcc+zY3)U z*#(aRt^vw&w4SGkJf8yEAS#1C65e&BqJDw8dAW$83XvC{J=A^3OI9KswHZ;o4#W_b z5W|y)pMu|`Y`|qxe+1fWkk5>=$v>hpvJB|~UqHQs5dWRI>pVS@Q%^)Z67~SZ8Rp+? zv9Dh9?jnCk)@VG$7YL(7(J`@c@#1hpLSm9cDns&Ql#;4QOV3c!DmAl+L8eBl%gWBt z8<5dtw&dm^Ykq;Pu*hEg?PLG{xt#7!PkUQyOLJ3W!;0ng%j#-ts@<-t$_l5WysWgO z*j`j7aJ{#5()BB7`?c1FCu{O_26-Wb{%>Cs6j^MClAuI&V;7FCX_T!+d}I(Nc^rg5hh#pCJ~k2J=o&S2J|=w0GKf zVQ$+Rh88o^XJTTe$J}6H)Z~F)7v_GnR}rk<*BKOh2XS#k+3J@1U{docPms`5(}O<1 zz@LLr6)98+o%1wJU)PMl5MU0lsY=BvzW0I?t$|8#TeBxzr_mb4S>!b9JA;ImZFzrj zzD3&3wrrbkxzXLrfH&(~J<~x-Q`g71!Nz-i!EI|Gp4PIiV8p?=&lM_WIx&H^n>#sL z8l~^su)9z_Dw*FpEZUax=y{~f+yjagPd!9qqxew0d(~2KhQ9kN)v5aL^5QAFx zw5P8>sProOU{?0i9)&9C>;x8_jK|-}1|?WC`vVY7#Yq<=s@gpDtxSD$m#2RyB6PTc zWk+e;H?d(niZB}p&!A8vq&;ytFAn0lUn95SP2L&1-6fro5!?IyrSxS4b0?ku{ z7{P4X?RQ1!*!mKtJT~;IYUjD}*(&gRYE-=1hbk0?8Ag)U5@XTOlC5w`zbmbowF<^fXh~H_fzq zN)?>2EuJlkJJ_)jQ9Z72t27!Q@l~E-@b2a_PQ1Id%kvy8gY@n;&sl#06II^I&NG?N z=6Q~Wb%nzcES5#G6`HNEoLZnFHScZR%hC8OkZsxOOBdnPf8Z1RkSc2M-6YfDM1Wp1>B4AF#9ixNn z9TR}VfQyH_8OkV>tx!%w`2-3dBd4-yu01%1x6Wbl91bK{<7W@f5?5z& zg$=^K38!*{r2^9g1f)*^k8#jn;m#@$u3v>hBAUa^(_Dn|2^0#a z0Ka75D~G4dnbrOUnp2uTS^Wv&{TP2~z21J+dZqn+E7|V7zU}&<>%r@9UjN|wU#|-; z%)NN-x+u2#&5D0$oCb`4!rd)!_d+3XnsW}5?WeC`=N0^0a!%=d*8A+XXAeCaeD<%; z^0%Hpeg5isQv5?KKIc7m=-i9vsHfsnl<_B(C(S3x;|~M)@aV%AA131;7=7U417s9B zic5cT^x{#%dlWx*^pm4=M@i>VeDNrzkK)F|s}B>7!v}v4KX#b>$>EEKiKfH&wf(qr z-_SlHc3=8F;q@~~4-_%c1{n+9EiJw4y&c3F; z7yI7q<0V-W+j*b>1)9f`TggvIGJd6UCE@KD>)6&o*0y8RCT{b#jkRrS@?J}#h zJpsqJi>-h0?Xbma$2CqRYJV*LYCPeHzZm~XJUNQCqSNRTL_s8MlVKjdfDfH%Yt`%P zF9_yfsTMS?3gX>CO)GnMHg^U2yMw5`YnA5=#s@lg?B9}PUHKQT4ML2yfkeY*rnQ3IS(- z4FA8ngx}JRb?6QFc;WMP*B9_v51)VJ`mbAzSc^gnwUC;yg-USKjn*1s92ef)hZqNo zb>Dw#08&GILi~<6PaarAJ^ByH8o7AqiDgJS_qVU7z{g;W?3=NCN$5H$XZulqq`n{| z1fMVAEBLSTuMk^^fS^F&f+)C1JWA|m-zcE#*oyP1_o$DE0zyYTL%cM%er^r#_q@+% zj&ST`@F_)W&=@*|-h@M6C4LnDhAB8Uf~1652A{q4n+M*lqDJzJr!LYeJuLj7*kAJ%*(NHv9+-$V*eE9 zj2nwP8~1s9OZ){ftODpIkY5B*OR{e>l2i$*LMShhbu-Tn5}Rgs@y=ggHb`CL%z%HU zLcb?Iv|rl#_TWrHbQKUCr^T zVtIY|=4r>>t_yz({qf0@p=*DB&b@!#5xn#lmX{U3Levt+KnIjmppse%DSqYh<*>{< z=KhM`h6qbSs4%~ru;yhDQb`=as7=I{`3MHak8(tG38qmm?;wJRSP;Ys15@Vfi!9V9Bd%*S;G1%l8gnd#tVP zv1^A9|KZWr)<^#kmcIl1BjLS(R0vrMxN#EVNLG3sJR9&ORRy@5EXda~YQB^mEn++JkJ8+x4aW!Gz*iidi3yvcXNs_S^&Qn|?e&9g z#Xh&zKKAt3#OaNt)J98}cir8O_+F`VJ3=jQ;R4?y2lh5j4gcV@%(8!?u&8gj(d@Y^ ztfL)l%*x<`**HJeBCG0gSaDXEI6|t{7A$h4AcJHd_|wVnuCu0D9E_&&wxYaM)!Et2 z8&+)HRk_AVceE9{wQ<{~?c-061x|0Sw6u*^mEXPAb=$+QOR`*@7F}t!q+(5_D$O9VS~Yf;t!sb0w6n*yx+creac7fzvfC|>&TYHPv*noq1DAG?0&Ld;b0--w zpoTQ;3Kb`883qHY60B03Z!3%=1z1IHQ5ehBsk3=@rp&0A{TboL>2HS+UnnxugL46>_#}0b75?z?j7dX%>tk&?Tvo z7@dh^RA7vFaNXiSFUYsC_QaR1tK8Z5@6b7H7I{wvDG*JGc`;HtCDcJud{Qj7mR2b@ zzO<*_ckG4RCLZrIcGk-aIyTewTYDaQfFB(z&=9YN_PG<&CDB-Ab1~2Jqoa6*ffFM; zemG*zc6VB8s||mi>WFQ+LC#$8sR6PY!mNl(WLlU(VGOvLRCC_6=Gj0g;=WQ}O%7jb zbFa+5?K|s=OE;dG8vpT*Wi|Kx_DJt^hc31FHdjnW!AM%U-5iUVvSxGRsy<#z?ex#? ziBrg8iv!2|Mt*otZR__j{|8TF?Ynnr9nA)1u_4vev)q3&dp04BNj&`P-OhhHbMm2Z z40eGp3&5_?2&u42&5y@Sl1hqk3!$3*Ly?^yvspx5n*9ZJxxhMrPxW0t1=*$ybSwcK zHOP)uK<flNs)BH!t!#mjE%WFw&#wWzjyebM+$Yd{m$-t znl&}MUcP^G+w+@C@JvB_DXp$s->5Ftr>M%>KTEOHm~$!&^7Nt>o7To8;Hk>BE9=xX z=WegrHR!N;w>Omatf*8OSM>(Uecu@@EMI%*RjsS1D6hGuDpO{!@z_dxYjl**&|aC% zl(pp+G&!v)vOH%a_^uZ8N(a5NkZpcO+6r0EBqo1Fa!*)A9M0Heo~;lf4-$n$hA-W= zt%MMua+-ctHdgMlf~opN^}*i24h*Y zsi{PbbFeNWPb)24_t?Pb`R%n$PlaaAJsrAyWgGEcefjq1Hx>WOsRQ?ed^Q&guy_)eqjB<-aZKldU%p4i@3y;u$tpd_KfSHfs|sh+8_{3$Y4kkTQImoC&CRD=Zb3!0xBaq6Dq|k(LI#tmW{z`UbLFyfiYjttWRJ%F!Zs@nO!)d;QN}4@7^Z zZKb_z+{}a2_knz+s1FYT3+S z%Uqlp=I067Uq99DP8BDahR<$48~Qxx={kd>PHi|nS*)t?mdgq{oW7mSnT9pT4>Cp7 z>X^J#{pzNCSY>5TpTv^aMl{ZqdD?#pi^A$}v9>(=$0JAHKU~N9mbKeiuv;q3WOj|` zQ;ce4 zpFb7)@Ta3;TfCQ@n;JFTc_#G5DXhU6UskU?@gckJLC*OC#)VNeD&QMlcb9(*%qDfr zz?Mv^f;Hus(m*Hi#0TQPZ0e9{)5YR6t-OO;FFYs`mO4V;#n(cqTjV)*wKudYAWX^4 zBHuUUr$r5icKPa?LTEFJjLGWCu2?r%CoGQTg|R6{Bx-boe#G)kNXwFKot1=#Wi_To zMO0aDbM5Sg5y_Q8fgb-cl`5^Ei4)5g?CxW!f4>1EWD;M@#x01;oc0Fr<7*?iZVVx{IEcvgCSerN)&GUceT?O8-&xvfV zfGfM|MTL_Gq$^5?1>a~Qa+Auah{<;l`keaO>dermcuPiMQL$P$(y*b^Y0)KxK3c{4 zsv}~jaCCx*S!oGWC1cMuNY$xp*QQ!3vqG0=|JeemE+CR9a|&pDxh8b-D~=rI%%z@} zpNrS8wM}I2xYRgONFjfCOKnr4Y9c;tpSQTE9F9uO&HggDYUMF*YZK-#=mY+?g?PaX zzO^}`@KT3RZ%gQ0S{&-#8)}s5iZWwD)FS;Ga2u{BssO{u1&$IX8#PqymlEou8U9z4 zo?*xUau=~QXtOwZ)?Ec`^BH^2?K?P@imyo8DcFcab5VC*xb>gjX?8>=lr3PoF z7sY5eQ_K*gbiw*xmOzeT^W}TIH*TCmAV)3Am27&t=^Vm)Z`GO5+;>lhzWjbi$G>1+ z@Fd2;RbT#xwr$61?~WFYrsdw%-kojQrDqZ8tLxVN@5N`4Ymc?IK6Wjt5GvPu}viRZ2z4YIhSwbw6{@ ziqHjaIxaRy>H5b*W!jc|x?46i>Nr`}ha{XmXp|pW>E@>p0o&kjGE2o>KiU*k)V#*3 zI^6w(`+TD5H+ENjvw;r%?fJXY*WcGlZ?sK4dyjO>i=lt-e1oOJ>q!voWI<)HKe=h) z<+g=M3&N7jybTwb%+AI}LO4#2U^R}nH1_5HS88r+2ha-OBL1WB0MkU@dmv z`uxS&bJ2gMYVpoByuT&Vr!S0}VJm0MSvF8s+Eb~{X}`N;-Qh0X@|_ok*PmFIuXL<- z$n#rEvX>RoY4zI&hmNe)H{Ab*B)_FUub|c>@$Bd{s!N;A`OR)ers1~XyXt!$94=-T z?96ggs=l|qDA`hD(l4*8%h7iYY_9KpaziC2y99q^)`ZtH&C*z8W#o48+`&kXNe35o zkQdnqJYg!=B~fwH(bSA+Pdt^RD>t3^bYUV=H4=?Yy%p~dO>9-$G!kws70khRV5|bD zL~>8$fc4ciVu{yz?|9g`Ub5xoojc#Ue+9cjd5D*}`LAypt9Fg7$PshCPUbD+($4P& zPK~InPeB}+bkkXRKFV~= z{2m^1HS1n{tfk8=D>Ah7G53L;jr**d2G>cjo+OAJjm%7@ET~jOb z{&4LnVX779dORAJuk;w7R28=ocd1I6E#-gpMNN5fP0J4N?B_W}uu#ZH-YLJ%!c`xxLNI$|%RNLoWH$uACVt{ZH-#>9VH({xQ0* zS0c%6F0#Z^`mlcR#?pwb4=zvY0ZKK`Jl;S*ZrI`wGZvP|eqSb1pFjgUrEzp0_f5d01J$&`SPd`4eE6tXZs<2dL z8CMk2m)@(}VoJ!)cj`2SnxvT>n>U<0(bD=KN@sz3PrTZe1scZ2schLUK@YLBo;_h=|nZHZ?m zn$*N>wJeFwxqiL9dC*^xAFVDU@3E~cSF0SIh4$MjHCk5>H{T$K^HdP;uxfHAfyMi~ zugMSO;@n1dCFmSRt1CNEsx4IWXZKP}u|7H7V3j3@b3>xi-LQYs(sM7puFsbx&rb0k&=oNW2~3er zTa=lYm|1jvmJ5Hn5muhS%v0gjDPku%*r^!o6y8G!q~BmAT#o0@8vJ;SGjIv!$7kR%?)8W!A=sC47;FPTBYQxMp(@G`ul$om4R0_oDEJvUTOXI*pPE! zA(P(}9nej?kL)|G?;^YO&###4cAMSrhu-xl&qmH3u;Cwe&e{+k4iY#N6LjQ^EyJ$8luGxXn^U)@uOm$w% zbawj7TG+ipQ|N9k{A$B%Usk0hwQB!wjvl$Zud1`&Y}9tp`@<25Ll-ao^4-F9$Ng)M z4_YHWq{P%3l#9^KFWVyVxUlw65$_Ri&$jWI;v9L{Uyo*sB$ldGj!omc?~Ib`(lhfj z<*|R1Ok0pq$$ce2v=|FBq5_Yb+$MQ@bI)LoGe?$budS<04n1ltOpBV|%aad)92I}Z zULNGp-n5g)?~ESrHR?(#6?AcPUcrjoP> z=9*|Vm5iU1WI8?8yfSsPv%f|w(^=Eh1!jL^N_s`>I(N$*%~|Ys1@7AZ^d{{YHiz(z;|! zX;?HS8Z($ZFD(|21X^5}ME=)LQ)B`@FDh0X(wDfQ!@%gYwt z%12=nUO1LXWJ+9Ej>*k-3m<>KlbB&P=c(SpMsuT9F*_N(nJ-qROdU*0E_U;0zev;+ z<>o0d5en%$%nIUO0b@)R$x_CB$qMpuO>!U*oo>wvg+h0ilQ5X0t(p70Y5|*~)!W%A#;QBFJw~fG!p6H-@Ydaik!Q2SR^x-y(#gB5ZXq zI{a}i3co9)o=}>#v^cY&u~C!htmzp4j-Ofgz+hEM=wM8SI!jK}mb&Bki8_rsHeM1d zB#4-}IC2*y;FAqC)UrSvW7qfp`t7&+dmk97)hBMu_wH;acciNmd7A=CV}dze@Avm) z>Ks=BqmYS_hvVG7od z)e)G7V$etg<|8S(BLWM6{$Kd(`&6dZx^2K~?k?V~5heSQ9b zZ+sm++P_$=uZ+0_>GDqu4UEujeqX@loAl9xLnD(Qb_DP5qt|SrZxHu|i6?>BG&ngq zR%|wJ+_=#+zzt^V9SxWV{F7!N9yKp&4n(?h1QU}}eM5hvZG#|k_2|eX-8$MoxzRW7 zXLT4J>h+IIz?f4beg1KJa?nq=)-9(S$NVE<;^koi1HE9DToZk3W_?2wljB2cra&7S zD19Tex}ue?YgN;g6|Hrx26|;(TWw=|8@;lkrKO^wtLS4oN?NJ``EaDVuBtWr-uS#!$Yj8TK)d7mzC}x4Qnzn=IA7S0KX>@9wo&rwb*2%A^I`4;x z-tnQa$qCcM(6DKAe8AjTy&P4cQ8b1&p>Z^X2GD;XnnX10)-15|$pfecT1NptjQmim zgW28-^OlBuHw+&dwcO}6!PWfm^aHOAaPI@k2IxHrg@&EJpBtkec7mhOw-2p==Lpxn z2_y*f4?CkuE$zSIhhcd3LVbUPiy~IfDS-PpFS6PUaYWQcXtW3-k1GcQwq4R?hFO0JBk8!O7an$*~fk zHdG5zx5JaISHOH}fqMhg>yVr4+XxsM=42yaU0jbk4i2|fb2G02b;7eAT38yEw;z9` z3R`EKtKANk8RsHlf|GHa(<1;_*242q#m*T2KV(-LY&5#WClg$sUT*%el&mj(+&q}# z=0w;RW1NHm&X)5YnTXi0FXI0Irwcn17TVc3-N5x7xiPyo0d9(uVJae1c(zXd9bUb8 zK1_hbtY^o#JZ9o#8-^#V;{dd?mS2C)?TNT+t{=GF>MG&(O3|=45TgW?gxKE@%V58o zj8af4QlK=Hjxv!3X^{?P!5LEzRxttpaJFUt8>RrVQz0q>zq(<}8iWN(+(!2%7J z_%s6~1~OqaIA$`JPwN650W+6v>jH}bHMjZe0!js!9qR%JmrL;iL6_^VF~2y6^w< zdHeK!zMXTf>s;rW$Kzb0RIvxXQ8N@9tWn!+LN6E<^4|MbFv; zKasQ`dqMlY^YYxE1asW&I*Yod22B%q8#0TY<-MII<+MK@AI*K?s{C~M&5M<_%FQ9N zHTW``@%*!8MUiTTWap=R`56`2?@*AZ+UR&Jd$rcfE@DxiT(tQ~*X?Em8m$i{9Sy}5 zgJrDAZ&9rpPSZAyD?VbY+s)iX9!BE($_0;7DM{YW7Vhlt>b!*hnqSJ0d5ghT$W6}S z^7x2RqokbfM6K|8o_w)dmZ5t#N?VorWVK+~`TGULEec%r z=Y3*_nF>-RaqGv@%iF6W_I2E_xWond+nG)=`WozXouyirY!>My#BE~zgVtF#W=#zAfc(u zIe%PBT@$PEy}Mv@^DH@y&)!YfvTprzfv4-ltvh!^LYOpvz6se|Xx);4zWTl+dvDxS z46|+KUe4%xiEvJirN#XBM|D+KC!FgZ zl>bJ?$`{{#<@f7byH8;@E;k80a47S~NT|kPRfBZbHE>vb0FkkL)8g98m67+~^n9;u zyUsTN1y#H5Z4OKKe~W6HF{O11cH6PwbG9{pJ>dBL18Lu>hq{RvX_H3x>yOeNR6L2= z627%j>EPsK4X2ek6N*!#eeHn-aP9SkktVI&i;6w?x>+_Jrb(`*bm@#C}7Yqkm<9@8`E6jmrvpOEc8JEGqyzj*0YPj&FgN~?_@dP*?{ zjq(?KuR*OmMVZuG*?NVDTl-(bwBfJemFU#)7@vi?-D8 z(R5xrNf|c7xKA?WCIq2=>c=-^eKmF+_d0!v-A87r>>&-+h-l|Jj;e=UaZlB0*&jyJ zp|o_~cEOb-GS~NgkCoE5_zJ{xiJlr1qse~KsdCeh$!2w(F1aR;`}2)q^$ra5?6lz& zhi#lm{Cr^8Ny9PXU8b8B10APK*iT+t;21Yz6ER;nYeJWIrR65(geKLl@Hc_wd`{E( z@8j1Ozskva8XWzL7-EL?5*j4o7ZMf|+{Oc*|&xK_Fe` zL6%L`flT>m3k1ZD@VcZc^m&B{udmcBg}nKmL63)PuOOuZ$iw>lFg!$pu|r%C!6& zH}=ga(qX@S^~7HtIseAXH}Hj@8LuBCeiSqG%GWu|_geJ38P-ver}y4mP$Kp=Ajby{ei=cv^v3Vei6w~yoY>HYZITf_EnZwE?g`^*Pxz=fZicN z)62qEqp9nrexj{PCmTgq9sF8ZKaOq9^KE|lmV_U>CUjeUbw7c7xvHO3JACB?846eH zB+(7LT?qFp-l3aH?NPx>^vC<^(2R?Fm^}?rKo`p1%vwXUzBr*}=lSIOR}tgwwIhB8 z+_laY)n=X#$`pJ>sXdNw$zvUw-Ex>p*O%={Y38c&`7D|=@?={f9mPbi zdzh-_=*wt{dea4=gSLksIF|6@sKX)bnDeEadV%sYat(7e?E_7M+rYcQSV{iG$_H)S z8sVXiw(IDA>EXSOk>gzbvFP|h-!&oH5hX%m&c@@Y9L12{>B=WntDS3kv(~#WThCiv zRtOPI41?}?E@cX8qhk_lEh9#5HaJfxXqL0hiMii--q;demEXByy*>q0@G}H%F8mw)V9cTOEwc=&4q} zBXGPlpe1+zV@2H`E?>v&&Ukj--dArD6cIZ#obtrOa(j4{PUqYDjOn8SIysobr)#Jl z@$n>2o2YsVR9PHJ2rdz*vJxe!r$G8|EyZY*^1|ye{Sm^S9%pH2?f;~|)im|gt-<*Q z{`H{SqjA{EF4@7MBc0DyjMh*-53SBQ$u@;Zebvr=`h8}^?%0pZTP`v@;oG8n)&$q| zc+u-cg@u=?Qvr`BS|mD3znc9tgI{c{#%|eNBC*{QU)(NtRc&$fh^GJ8)f+c^4jTPh z9nuyVH`=2XS$Xl|Y65-w*PR`Euc%!9ynISX-|wl-wnJ4RRhq?#3_*tZQ=4P9C&>%~ z2amixGRe{v93H<=V>H4rTj2oxh&+v3oDhci>>l zEq%`H58p(GXGGGTzYUzUUvFf8!&F16K8Uk{2BDr!X&lv z=quLvo;rcUy0eFUi>fpx<(MY2w+`tsU3Q>hY3#hV+JrhbX+jjMyL(Ygf(Iog`dMU+SI>lyzPhWspX=*MUr}8yn!Qr0TcNpe?NIJf z9fuR;Ije`s>bAOyS+n}a{8bSdf{Uv+N1(P#;l8=1k;&5E{JJMazn*axHfAKsEkCnG~$asDHXn5eC{RXx|p=%i$h_r1?GQ(pgiw3QC(xF=1880<~R@JG+Zx{L+&sr@oB~sge65eAq)&iG0B|kA|w^{Q_Xuo==@rt85KQfX`TlVnO zy79N`#|0xFzrWCRQ?Ocf>|T;qX3u)xxdIj9^~HNkA$4b~&weO<(Kmd|p!b-A+_vS% zmh;J^>(`|f_^qu%c{qBmAFSC)+oetS=CIyTsD6UY$==WzJ(CX!$uG=F5$l+}_dsuJ zosZY;FL#=6k>DwVRYgR)OH_EsD%o~a5+*n-(p?K_zex19sMe^kEC zK;Y5X^{vyI7jWV`Wrw;l%Jtt=em=9@F1flaHGls=xm%#eXkTiBOaPnG!fL$s1&eUf zCbaPG;9|#n%f8|~Xzt7Pn>^1eO9pyRoakL_tP=bXpKRcl*UexoOAr{J(pb<$FchycG89yR4rtJdiN) zRr_Z4lPC6--lm%NL*_R_m>i_G@GA7&dHA-F8p_vdy-^;xm|G46yAi9CT?Q{3Q#>C*e>c|t=C zlGv}&h8bUL#dK5i$PEum>n#WA5S8v^-q-BGj>uhzaW>m#Y|5@rTbfO~L#5YSDt@#i z#A+Gu@urzr*sjMdW1xG|%~i?5s|x4JU7O7Vm1zq#hN+DB2AX-KnWtJw-#Hw|OV=E( z9W7;Wz{g81+WO=}$q0?6eQ|XOJ&W_EG1gPNX@oQPTo_v_T?{pS#p}%kxs{3J)SAV0 zHNS8(zoeB_H(WkHux)iT$>_u8{#>?B1N(&(X+dvh{EeU@>WJOqD^0WudqbCEN-uq| zZh-3MA8>o$xSuEJ{$bNc*_*NWT=lDaOE;_+3?@g|&}XC!n|BBZuEuyMpH=bZ6xj0I zt7<>qZ!Xayf!QrSE-JKe>2$qn!qEXQs+mhyhUsr84rr5mf9(m=xblg z-5N4zSX98HzAHpHWH9(O%|Qtt`YTU14@-COLQ%w$qAxZm|E#+5Qhfm2ZQm(?00A#MdR%__#WC zJbbmo#b{YD6s^@SFdGvHOjqq@L=aCA*C3P`fAr6g4W>kgl?M$zkuPfE~X4~ENa6LCPFU)Lr z%7j}ztl|DD6H&PjvRz~mov4h{x-BWg>N#8=^VBEEVNNPC2mG|sk&|=U%I_hy{iu3@ z*4FK{kYaRB>gM+x4-JLor=GQ(-=@n5vpn?EFUNLK39pY!EhY`mt?k|?-ApK_l^Bd( zInc;|q#Sbpq8u)L`s))Vv3&Jpy?ddHx8HBq=CYxl!I@{Y7EgCH9{~EYQd<%|weR+u zO^?s-e)O$Wwm);j7HXY6D#rHhZ2#VhlTvq{Y7|227E&8$e#GZFtlDO5)Fd|)sr=9u zsU+MkyL^&Qs6XRqh~^gYRP!4b46e8zC>ql*GMSsLPu)Me_9O4W9DU;B{x7d(hOMu$ z<#i6dP*PfNq$vuVH@UQ)e$`saZ3%Oj>pMdiA})1~ox0_UEwowex0yIT{h%glmV4*$u6Ii2 z1)*XkCmy0Nk}@o8UPdtUJ}$f)l3Hwh_8FsW_3WM_7Y4@jzqQ+Q7AqE*rzU^uJZ^vQ zO;}Cb@J8xY59W=BVxnzt?Om+ic%Rqa?^>bSyxAw7u*??~PkS+D$jE;#>+ey7# zRF?Xra?o`#h#})%g2K+am(>aa$pajjRrdTTn3_bn73GK$6|UmLEk&Q!E^0RT?suhI zxvJ~%Lao`RKZJAh6U*W$^c*eLXQJP7QPo}2>b%sIYw!1c;*QSYdh>v;TCdsau%PG0 zv&tdE?AZ?k24{2&EQi+ZcZLa>)@ZKT)ht&xSd?*WBKMx?1@&kH@nOB zaTa6IRk`%2JLRNJO>ss?$xQra^`j{_9hS7aUa!OMySqqt23%!xC=W~|&pnAgUeBn$ zRDSJ|=zZ_I&)6Kdo2;`P%=!4Ha$j!u#&@UJFQaOjji(0O!b;uCR`EXFm7XJzh;$;) zvsv12s$St72GGR^noYs1+y@D%cfv^`qSX9xr;^w#DmKTL&hVLEOqKY$RHbtyHDodS z*~~KOxRkkDQUMLoZL^&H3{S-b*P5F8Mf%J7_qqg)zYQ7oDEj?Kxg%fo!Y^89PZP`i zhldillWDl`J`8IR=%IfhVSa2!rpssL^XV2=xAbCev9ro3L)z@Ka(zwXxwf2EkAjDf z(0v_|aT@6zCX+-)E0!H<*2RsU%(B_nh1@stid}J3+L8Z^d&Xpwg=fX!oO{r&bjLi8 z#CRPW=8$8n-xszBO?h3OeVAlnls-}U9n(eI1$7p#Iq_c(@oG`k9;ZntU>I#Fmlpv(6eNSBMRqsbjU+wvC3mRr=xgLjIhHEP9jzpU}+@F{)pFy#{JQFVAZ^wdpFxa=WVcNIUijW__6(QcF7|L^Gk_ zvr3*{?$~jZyuF4p)^gcKopOK3zDwDdbV; z5a!hyp6y2e*fDP6n02SUb%T*~;L6RA6~iW>YPI8aT?e026MeKs4=`TtJ!p*kq4hjo zCcVSsllZF}(Q28HY`D+q%M4i)i{DgN2qB*o9w%~}$kwSRkM2luAn7ykPMezY%8B#Z zu5;CI?hEy`>Pd&08*k-N2fo zqvUeeoNsq#ontn1lGA@jdfCca zza}lV%?yj{m^ZfPWrZ8nip4E{l-(Z!eWzWNz}@G3pu%jk;J@{5SddZgYOoqjed$om zCXLZa`-`XR!n-~=jDIm}Rdb0MEmQggWvq}nghiJ|9dEXJK-EqQ3YeaIkLD+;%tMwK zp{k(O7&aM+;MPASXBBdrPp0v;Np1jMb+2m>8!bSEm*e|A&fkR z3F=x{I4;Qj0VnL0yeIcHQ_x0GvLLUr?#@odI8#A4c7_Yr7!MYh#}I#+44 z(w#Tx7j{_=`9YK9AYmgzp6;)qtLeT6?w#`@Jh7UL4=~!M7%Hsr$Xxw%n?&$Za`SKy z+B{9~&iQX;Vk5Y7VtNMxbq#Wbv93OgQv)vbadNjkY-2s%nPr3b&6ZO%LVA3QjncY< zdFqm6n+t{pgA30)`3NqL&qTVKS2;zCxP@+4vpVW{%IpC2A;+`))PXBI4C2dEEp7=M zAvdKvFs*N|Xwp(&C#fH` zBrE`wPf7kf7hNiQvk3X#o+@c?d5hzyz}-5jTVJeoPkIvaK>b+DS-^-|XD4i@) zHA>teeAIa-bWA1b=)zGh?Tw*>A9ZY`g*r@e`|DiANdjS}iF-Et0{E#?<*bsnnm@GE z?QbG1;T=F*>Xj{Jxx2 zZ&lei01B)N^ z*6EWSKG71Oq%ilQ67L5U*WG)*-PrGQvqxz6GL_4{_KBIhjworPBI%qsrsMXPiuvye zD$=k&XQ@f+do*_I<;={};*!S+4=yJ6jg3fs(5$c|MELh?87G}Jj_jQ(kXI;gof?vA zaa}E74U|$k2J0mfkKe#awHBorBX)TiDjD zTW8s+yYAN?9Nh1zYjsN8M6YThwnYl1ANP8^DkHKL^h}7oH^KdIA$-S)h8p=h?j8ch zvh&LeGM@x5$kgiIW^IU=X(E=Y-0_eX2$Rv23GFl?)r<0NsNL=0_i{3gsQQ-gM zlZ;|~M0h;(;kcj>52JqU^Y$8dY6*tN^Ym$~^;Lb7wo?n9?d38TY#p@=le3*!n~pek zTq}#DfA+v?^m^I&TMHcHqnel_YN#1HZ~luf8$-{w(Y)KzM61DHE_FlCbE=WbiGIP5 zNn8HJ8~;wl63^4>i!vFEC99Dvdc|AvN>LLjxN{HGjzWj!n+Y}9+Y%ML(-+;xst4;Q zOimd{4s1h3HTqw*J#X3df!RE zPqX}@Sh{w+Y(L`Wa#Bd~RZ?*~r$7XsFAv1?X1R~FCicb_XQ=ofj`hHx@13_vxCdpH zXZR+k=?rN?AwgyPNYZnvvbE`D`GI`ZuFZdSk8;52cP0AN&8Z4P~;ep|I{H+ymoaLvFusur^d{SHEe?~2< zezEei6r1A3!5y5k=h~0jN1li_cyA+k>D@hsx)guA9<8h7o!j$9m7a5LUbfqodEMxX zn0D;DXSvDK)6~#eiO%Fx@AjU~sn|SxdOn+8)<$D@-@z+}e4RNg1GV*5cO?>&R9e*~ zS7rJ&C+8qd?evLshKGKxoIkWvoV9juYF=Xg(f8Wp)>iAKpdrS0wqcT-n%9hREM_*; z8)}jKR;Q_5?$fx)sEpYtjvf-X2%)`L$Ar#PTS*N#y-nOZh=F$dT9RzMmsPC78nr-7 zP&ezZ=SR#4I5RvpcCQePFcmshU5F+;wr2C!!y_bG796Fgvy+(}lMx2IJyQ9ZT80yY zM~PrTvrWq1per)vPb{jMTCg}ojAkEAY_|{%M{$D$&0dxmzeFYo^QYIb?CLbTsBz?2 ztU8#Ns`z^zH69bYU7qG>tdKTMZ87T!nlNhcgX)BnG~XafV_eEd#8HIl=l@_y7(Cbq z90Qpz9K(Vp^l%IZI;g`jGNna1*xLENx0v>)$0Hd_= zhRr2Wn*aX9w*59cJh0j*eHu;(G);z&2izl=$78SvT6hc*K?{$iG)euJKA?phN1$|$ zMWI;#vOYW>^i!qqgft{Po{ajvhd)~&ps)zu31~bL`+xWZ-Mit327Ki&LyrwKpkaY< zh|LjD_&;qcJ{z`S;2Q{VEg_&t2=72ZqhRX!v&}XB=SG31{!v8&`i}wqg<&vo zcSAs95xWN%!j}ReA?yrb|MQW*=u$it*c*WiR|U`;9pNK^A|iYw0nk7&2s(Ph)tG?C zBJ78N$3aN0@pv3!G66VAxcCV;99-WBWGupOf~`?nKvO>dNtI0epW*%$DF|c|39kGE zG8rL4(9;|TS5knH;krOXVF+-k5;0`rKjZcTwuo3P=^yYX23o1ZxF%xpu~bIDaPVXV zeJlYX3?de^5r;29AR^o`k%*@B5T|_p2nb+!xNwP}Yy8iH`CDg+L@Wlu423dcK|Dew zh(rPgAs`~*Ujb2M0m~hJ>MW5&KqDrTh*0dLBxQ)XI6T-t zOsr%Ooe>z)jR0Gwv;?Po{%ATGLn6c70~td`Nz!0&X zjK|{<cTeFD?koU?Lr4aPA;R?ojDu&eC^Yc@ zaK!`|_)p}g|NEoC00Hp>&Navoev9jmw6J)1_6z2ckdguA5ljiuI2_0&e$#+{)pP(v zWLyCI@0|V+#sM$&d-9*Th?E1&CBc;%U}PM8E`-CQ;2sW*!=p)X?Z@G<=s#TlCX5GP z?}Rf0ED`2Yz{Wx5#eqW zU?9Z6cSj^6t%-z&=M`w69zP>5MgISZpM-;#B48k*m;@LB9<~8S`c&xjQnJh)^UDoDjM|CLlE(WQNFbAf&>ih5xC42oMb~+|VH5f@eMe1AY%N z7Y{Goz&McYA;$ghvH|S>kN80m3D2(4cr+T}e82;_|2dHVnIffBhD!@n#qgvRtVj6A zv}M8h1CRty4gdzu1kN=E6?@PMB+W?c!-LWau8W}Xho=aXDhkOv23Qb+6iB_`7#8HO z6zm_NVgK@`zlDKCT$F$s7l%*@JQj~URiJeUL1Ib&cyWr-f(2n0RTK;y0^D(e)CmU< zDZp8js(HeKtPy`2>l>sh9x_IL2yn8Bfx`#2TlY`MjR)2`~80al&>`BPMzh|o_WG6BMaG7%wGB8Yl$ z!juXMjsdekFb!%E2*EW8_+rFla195?K=eRjSme=x3o^vHlR^6bYrQ{7Gn#-xBP)RD2Nb~Jk+ z_+<`Abiu_9Olkxy;*JxH!~f&QC>BY;65+Rd07Fy(XaextzfR#VMW)<v07^_Wd?TRTLIiP;Jiy8n2xvPc`2Bq*Kni3$_@!VtMgaNczZeFE!@y%C zzz}f;g90}Ou#JE_IFKU3sy_^{KDapp3=3B{U_S(SN`V1M0X+Z3fY1m}+5rZ*{@+Ge i{#RCDzHh#2ZmcQ* From 8147fce091afa9e968ee59f7fbf8cd63872d78b1 Mon Sep 17 00:00:00 2001 From: Aote Jin Date: Fri, 6 Sep 2024 22:03:58 +0800 Subject: [PATCH 2/6] - Clarify that sdcsr provides supervisor access to dcsr --- chapter2.adoc | 6 +++--- chapter3.adoc | 2 +- external-debug-security.pdf | Bin 224928 -> 225107 bytes 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/chapter2.adoc b/chapter2.adoc index 535d532..b085188 100644 --- a/chapter2.adoc +++ b/chapter2.adoc @@ -86,7 +86,7 @@ The RISC-V Debug Specification cite:[dbgspec] defines that the instructions that ==== Interrupt during Single Stepping -The interrupt can be disabled by `stepie` during single stepping. When `mdbgen` is 1, `stepie` disables interrupts in all privilege modes for the hart. When `mdbgen` is 0 and `sdedbgalw` is 1, only interrupts delegated to the supervisor domain are disabled, while interrupts that trap to M-mode are not affected. +The interrupt can be disabled by `stepie` in `dcsr` during single stepping. When `mdbgen` is 1, `stepie` disables interrupts in all privilege modes for the hart. When `mdbgen` is 0 and `sdedbgalw` is 1, only interrupts delegated to the supervisor domain are disabled, while interrupts that trap to M-mode are not affected. [NOTE] When debugging is only allowed for the supervisor domain, M-mode interrupts must not be disabled. Otherwise, debugging might impact the behavior of other parts of the system. For example, if a context switch for the supervisor domain triggered by a timer interrupt is suppressed, some real-time workloads might not be completed on time, resulting in unexpected errors. @@ -150,9 +150,9 @@ The following CSRs are provided for debugging supervisor domain. They are only r | 0xaaa | sdcratch1 | Supervisor debug scratch register 1. |============================================================================================ -The `sdcsr` register tracks the current debug state of the hart, formatted as shown in <> and <>. When `mdbgen` is 0 and `sdedbgalw` is set to 1, the `prv` and `v` fields indicate the the privilege level at which the hart was executing before entering Debug Mode. Meanwhile, the `sdpc` is updated with the address of the next instruction to executed upon entry into Debug Mode. When resuming from Debug Mode, the privilege level of the hart is restored to the values in `prv` and `v`, while the hart's PC is updated wth the address in `sdpc`. +The `sdcsr` provides supervisor access to `dcsr` and is a subset of it. The accessible fields are formatted as shown in <> and <>. When `mdbgen` is 0 and `sdedbgalw` is set to 1, the `prv` and `v` fields indicate the the privilege level at which the hart was executing before entering Debug Mode. Meanwhile, the `sdpc` is updated with the address of the next instruction to executed upon entry into Debug Mode. When resuming from Debug Mode, the privilege level of the hart is restored to the values in `prv` and `v`, while the hart's PC is updated wth the address in `sdpc`. -The `sdscratch0` and `sdscratch1` are optional scratch registers. +The `sdscratch0` and `sdscratch1` are optional scratch registers are only required if dscratch0 and dscratch1 are implemented. [NOTE] In a straightforward implementation, reading or writing any field in `sdcsr` is equivalent to reading or writing the corresponding field in `dcsr`, much like how it works for `sstatus`. diff --git a/chapter3.adoc b/chapter3.adoc index c82d039..b9894ea 100644 --- a/chapter3.adoc +++ b/chapter3.adoc @@ -57,7 +57,7 @@ Trusted entities like RoT should configure IOPMP or equivalent protection before === Security Fault Error Reporting -A dedicated error code, security fault error (cmderr 6), is included in `cmderr` of abstractcs (at 0x16 in Debug Module). Issuance of abstract commands under disallowed circumstance can signify such an error. Additionally, the bus security fault error (sberror 6) is introduced in `sberror` of sbcs (at 0x38 in Debug Module) to denote errors related to system bus access. +A dedicated error code, security fault error (cmderr 6), is included in `cmderr` of abstractcs (at 0x16 in Debug Module). Issuance of abstract commands under disallowed circumstance sets `cmderr` to 6. Additionally, the bus security fault error (sberror 6) is introduced in `sberror` of sbcs (at 0x38 in Debug Module) to denote errors related to system bus access. The error raised by resethaltreq, reset can be identified through the fields `allsecfault` and `anysecfault` in dmstatus. Error status bits are internally maintained for each hart, with the `allsecfault` and `anysecfault` fields indicating the error status of the currently selected harts. These error statuses are sticky and can only be cleared by writing 1 to `acksecfault` in dmcs2. diff --git a/external-debug-security.pdf b/external-debug-security.pdf index 7ff2e23aef9cd46bc81333ef9258337c8bdd9932..4a67b0ef8f4ef20975ed07985f25a14e2cc6240e 100644 GIT binary patch delta 20917 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 delta 20770 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 From 714f4e3facd5e3d035e613fe59f4fc7709b39487 Mon Sep 17 00:00:00 2001 From: Aote Jin Date: Fri, 13 Sep 2024 15:43:13 +0800 Subject: [PATCH 3/6] - Remove supervisor access to dscratch* --- chapter2.adoc | 45 +++++------------------------------- external-debug-security.pdf | Bin 225107 -> 223314 bytes 2 files changed, 6 insertions(+), 39 deletions(-) diff --git a/chapter2.adoc b/chapter2.adoc index b085188..ff4cfbb 100644 --- a/chapter2.adoc +++ b/chapter2.adoc @@ -137,7 +137,7 @@ This represents a balance between usability and hardware complexity. There may b [[ssdextcsr]] ==== Extension of Sdext CSR -The following CSRs are provided for debugging supervisor domain. They are only read/write in Debug Mode and not accessible by hart. +The `sdcsr`, `sdpc` provides supervisor read/write access to the `dcsr`, `dpc`. They are only accessible in Debug Mode. .Allocated addresses for supervisor shadow of Debug Mode CSR [options="header"] @@ -146,16 +146,12 @@ The following CSRs are provided for debugging supervisor domain. They are only r | Number | Name | Descirption | 0xaaa | sdcsr | Supervisor debug control and status register. | 0xaaa | sdpc | Supervisor debug program counter. -| 0xaaa | sdcratch0 | Supervisor debug scratch register 0. -| 0xaaa | sdcratch1 | Supervisor debug scratch register 1. |============================================================================================ -The `sdcsr` provides supervisor access to `dcsr` and is a subset of it. The accessible fields are formatted as shown in <> and <>. When `mdbgen` is 0 and `sdedbgalw` is set to 1, the `prv` and `v` fields indicate the the privilege level at which the hart was executing before entering Debug Mode. Meanwhile, the `sdpc` is updated with the address of the next instruction to executed upon entry into Debug Mode. When resuming from Debug Mode, the privilege level of the hart is restored to the values in `prv` and `v`, while the hart's PC is updated wth the address in `sdpc`. - -The `sdscratch0` and `sdscratch1` are optional scratch registers are only required if dscratch0 and dscratch1 are implemented. +The `sdcsr` is a subset of the `dcsr` formatted as shown in <> and <>, while the `sdpc` has full access to the `dpc`. [NOTE] -In a straightforward implementation, reading or writing any field in `sdcsr` is equivalent to reading or writing the corresponding field in `dcsr`, much like how it works for `sstatus`. +Unlike `dcsr` and `dpc`, the scratch registers do not have supervisor access, and external debuggers with S-mode privilege cannot not use them as scratch memory. [caption="Register {counter:rimage}: ", reftext="Register {rimage}"] [title="Supervisor debug control and status register (sdcsr) for RV32"] @@ -216,6 +212,9 @@ In a straightforward implementation, reading or writing any field in `sdcsr` is ], config:{lanes: 4, hspace:1024}} .... +[NOTE] +The `nmip`, `mprven`, `stoptime`, `stopcount`, `ebreakm` and `cetrig` fields in the `dcsr` are configurable only by M-mode, masked from the `sdcsr` while the `prv` field is constrained to 1 bit. + [caption="Register {counter:rimage}: ", reftext="Register {rimage}"] [title="Supervisor debug program counter (sdpc)"] [id=sdpc] @@ -232,38 +231,6 @@ In a straightforward implementation, reading or writing any field in `sdcsr` is (draw-box "DXLEN" {:font-size 24 :span 32 :borders {}}) ---- -[caption="Register {counter:rimage}: ", reftext="Register {rimage}"] -[title="Supervisor debug scratch register 0 (sdscratch0)"] -[id=sdscratch0] -[bytefield] ----- -(defattrs :plain [:plain { :font-size 24}]) -(def row-height 40 ) -(def row-header-fn nil) -(def left-margin 30) -(def right-margin 30) -(def boxes-per-row 32) -(draw-column-headers {:height 24 :font-size 24 :labels (reverse ["0" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "DXLEN-1" ""])}) -(draw-box "sdscratch0" {:span 32:text-anchor "middle" :borders {:left :border-unrelated :top :border-unrelated :bottom :border-unrelated :right :border-unrelated}}) -(draw-box "DXLEN" {:font-size 24 :span 32 :borders {}}) ----- - -[caption="Register {counter:rimage}: ", reftext="Register {rimage}"] -[title="Supervisor debug scratch register 1 (sdscratch1)"] -[id=sdscratch1] -[bytefield] ----- -(defattrs :plain [:plain { :font-size 24}]) -(def row-height 40 ) -(def row-header-fn nil) -(def left-margin 30) -(def right-margin 30) -(def boxes-per-row 32) -(draw-column-headers {:height 24 :font-size 24 :labels (reverse ["0" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "DXLEN-1" ""])}) -(draw-box "sdscratch0" {:span 32:text-anchor "middle" :borders {:left :border-unrelated :top :border-unrelated :bottom :border-unrelated :right :border-unrelated}}) -(draw-box "DXLEN" {:font-size 24 :span 32 :borders {}}) ----- - ==== Extension of Sdtrig CSR The Smtdeleg and Sstcfg extensions define the process for delegating triggers to modes with lower privilege than M-mode. The Sdsec requires both extensions to securely delegate Sdtrig triggers to supervisor domain. diff --git a/external-debug-security.pdf b/external-debug-security.pdf index 4a67b0ef8f4ef20975ed07985f25a14e2cc6240e..ba72ebeb065b116d8cdf0bf26d4e6d45642e4afe 100644 GIT binary patch delta 38891 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 delta 40107 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 Date: Wed, 18 Sep 2024 18:17:14 +0800 Subject: [PATCH 4/6] - Rewording - Remove sdcsr64 - Add placeholder in appendix for exe-based imp --- appendix.adoc | 5 ++--- chapter2.adoc | 36 +++--------------------------------- external-debug-security.pdf | Bin 223314 -> 223131 bytes 3 files changed, 5 insertions(+), 36 deletions(-) diff --git a/appendix.adoc b/appendix.adoc index 64b4517..1046897 100644 --- a/appendix.adoc +++ b/appendix.adoc @@ -22,6 +22,5 @@ Similar to the Debug Module, the trace encoder is controlled by the mtrcen[i] an image::external_debug_trace.png[title="The security control on trace module",align="center"] - - - +=== Execution Based Implementation with Sdsec + diff --git a/chapter2.adoc b/chapter2.adoc index ff4cfbb..ebf4e25 100644 --- a/chapter2.adoc +++ b/chapter2.adoc @@ -137,7 +137,7 @@ This represents a balance between usability and hardware complexity. There may b [[ssdextcsr]] ==== Extension of Sdext CSR -The `sdcsr`, `sdpc` provides supervisor read/write access to the `dcsr`, `dpc`. They are only accessible in Debug Mode. +The `sdcsr` and `sdpc` registers provide supervisor read/write access to the `dcsr` and `dpc` registers respectively. They are only accessible in Debug Mode. .Allocated addresses for supervisor shadow of Debug Mode CSR [options="header"] @@ -148,10 +148,10 @@ The `sdcsr`, `sdpc` provides supervisor read/write access to the `dcsr`, `dpc`. | 0xaaa | sdpc | Supervisor debug program counter. |============================================================================================ -The `sdcsr` is a subset of the `dcsr` formatted as shown in <> and <>, while the `sdpc` has full access to the `dpc`. +The `sdcsr` register exposes a subset of the `dcsr`, formatted as shown in <>, while the `sdpc` provides full access to the `dpc`. [NOTE] -Unlike `dcsr` and `dpc`, the scratch registers do not have supervisor access, and external debuggers with S-mode privilege cannot not use them as scratch memory. +Unlike the `dcsr` and `dpc`, the scratch registers do not have supervisor access, and external debuggers with S-mode privilege cannot not use them as scratch memory. [caption="Register {counter:rimage}: ", reftext="Register {rimage}"] [title="Supervisor debug control and status register (sdcsr) for RV32"] @@ -182,36 +182,6 @@ Unlike `dcsr` and `dpc`, the scratch registers do not have supervisor access, an ], config:{lanes: 3, hspace:1024}} .... -[caption="Register {counter:rimage}: ", reftext="Register {rimage}"] -[title="Supervisor debug control and status register (sdcsr) for RV64"] -[id=sdcsr64] -[wavedrom, ,svg] -.... -{reg: [ - {bits: 1, name: 'prv'}, - {bits: 1, name: '0'}, - {bits: 1, name: 'step'}, - {bits: 1, name: '0'}, - {bits: 1, name: '0'}, - {bits: 1, name: 'v'}, - {bits: 3, name: 'cause'}, - {bits: 1, name: '0'}, - {bits: 1, name: '0'}, - {bits: 1, name: 'stepie'}, - {bits: 1, name: 'ebreaku'}, - {bits: 1, name: 'ebreaks'}, - {bits: 1, name: '0'}, - {bits: 1, name: '0'}, - {bits: 1, name: 'ebreakvu'}, - {bits: 1, name: 'ebreakvs'}, - {bits: 6, name: '0'}, - {bits: 3, name: 'extcause'}, - {bits: 1, name: '0'}, - {bits: 4, name: 'debugver'}, - {bits: 32, name: '0'}, -], config:{lanes: 4, hspace:1024}} -.... - [NOTE] The `nmip`, `mprven`, `stoptime`, `stopcount`, `ebreakm` and `cetrig` fields in the `dcsr` are configurable only by M-mode, masked from the `sdcsr` while the `prv` field is constrained to 1 bit. diff --git a/external-debug-security.pdf b/external-debug-security.pdf index ba72ebeb065b116d8cdf0bf26d4e6d45642e4afe..af842b8f98e20a7aedd31f6c702194a11186cfa9 100644 GIT binary patch delta 30035 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 OD$sHhCz{QjE%$%3ScP){ delta 30491 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 From dc5d161800f0bfb7a8846474c361a6fe7b95ec32 Mon Sep 17 00:00:00 2001 From: Aote Jin Date: Thu, 19 Sep 2024 11:07:11 +0800 Subject: [PATCH 5/6] - Remove the unnecessary articles --- chapter2.adoc | 6 +++--- external-debug-security.pdf | Bin 223131 -> 223143 bytes 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/chapter2.adoc b/chapter2.adoc index ebf4e25..aa49488 100644 --- a/chapter2.adoc +++ b/chapter2.adoc @@ -148,10 +148,10 @@ The `sdcsr` and `sdpc` registers provide supervisor read/write access to the `dc | 0xaaa | sdpc | Supervisor debug program counter. |============================================================================================ -The `sdcsr` register exposes a subset of the `dcsr`, formatted as shown in <>, while the `sdpc` provides full access to the `dpc`. +The `sdcsr` register exposes a subset of `dcsr`, formatted as shown in <>, while the `sdpc` register provides full access to `dpc`. [NOTE] -Unlike the `dcsr` and `dpc`, the scratch registers do not have supervisor access, and external debuggers with S-mode privilege cannot not use them as scratch memory. +Unlike `dcsr` and `dpc`, the scratch registers do not have supervisor access, and external debuggers with S-mode privilege cannot not use them as scratch memory. [caption="Register {counter:rimage}: ", reftext="Register {rimage}"] [title="Supervisor debug control and status register (sdcsr) for RV32"] @@ -183,7 +183,7 @@ Unlike the `dcsr` and `dpc`, the scratch registers do not have supervisor access .... [NOTE] -The `nmip`, `mprven`, `stoptime`, `stopcount`, `ebreakm` and `cetrig` fields in the `dcsr` are configurable only by M-mode, masked from the `sdcsr` while the `prv` field is constrained to 1 bit. +The `nmip`, `mprven`, `stoptime`, `stopcount`, `ebreakm` and `cetrig` fields in `dcsr` are configurable only by M-mode, masked from `sdcsr` while the `prv` field is constrained to 1 bit. [caption="Register {counter:rimage}: ", reftext="Register {rimage}"] [title="Supervisor debug program counter (sdpc)"] diff --git a/external-debug-security.pdf b/external-debug-security.pdf index af842b8f98e20a7aedd31f6c702194a11186cfa9..07bed712fb20f4299e76d6cf93fdd606eeb68cdc 100644 GIT binary patch delta 10106 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�=@#jEXb&blVHryJyzh>93)M^%&8Yr*X4xRY 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 From cc346dc58e1256d6128d52949a36eb6a019f1600 Mon Sep 17 00:00:00 2001 From: Aote Jin Date: Mon, 23 Sep 2024 09:33:28 +0800 Subject: [PATCH 6/6] - Add backticks on register name --- chapter3.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chapter3.adoc b/chapter3.adoc index b9894ea..8e01efe 100644 --- a/chapter3.adoc +++ b/chapter3.adoc @@ -57,7 +57,7 @@ Trusted entities like RoT should configure IOPMP or equivalent protection before === Security Fault Error Reporting -A dedicated error code, security fault error (cmderr 6), is included in `cmderr` of abstractcs (at 0x16 in Debug Module). Issuance of abstract commands under disallowed circumstance sets `cmderr` to 6. Additionally, the bus security fault error (sberror 6) is introduced in `sberror` of sbcs (at 0x38 in Debug Module) to denote errors related to system bus access. +A dedicated error code, security fault error (cmderr 6), is included in `cmderr` of `abstractcs` (at 0x16 in Debug Module). Issuance of abstract commands under disallowed circumstance sets `cmderr` to 6. Additionally, the bus security fault error (sberror 6) is introduced in `sberror` of `sbcs` (at 0x38 in Debug Module) to denote errors related to system bus access. The error raised by resethaltreq, reset can be identified through the fields `allsecfault` and `anysecfault` in dmstatus. Error status bits are internally maintained for each hart, with the `allsecfault` and `anysecfault` fields indicating the error status of the currently selected harts. These error statuses are sticky and can only be cleared by writing 1 to `acksecfault` in dmcs2.