From 2e6fa77dc1b2400112487ca9b3e9ceb8ea940f9a Mon Sep 17 00:00:00 2001
From: bgallois <benjamin@gallois.cc>
Date: Wed, 6 Dec 2023 19:15:52 +0100
Subject: [PATCH] update metadata and docs

---
 docs/api/runtime-calls.md      |  32 ++++-----
 docs/api/runtime-errors.md     |  10 +--
 docs/api/runtime-events.md     | 118 ++++++++++++++++-----------------
 docs/dev/pallet_conventions.md |   4 +-
 pallets/quota/src/lib.rs       |   2 +-
 resources/metadata.scale       | Bin 133159 -> 133152 bytes
 6 files changed, 81 insertions(+), 85 deletions(-)

diff --git a/docs/api/runtime-calls.md b/docs/api/runtime-calls.md
index f1ef287ed..f6b99dfcd 100644
--- a/docs/api/runtime-calls.md
+++ b/docs/api/runtime-calls.md
@@ -13,7 +13,7 @@ through on-chain governance mechanisms.
 
 ## User calls
 
-There are **79** user calls from **23** pallets.
+There are **80** user calls from **23** pallets.
 
 ### Account - 1
 
@@ -694,6 +694,20 @@ Revoke an identity using a revocation signature
 
 Any signed origin can execute this call.
 
+#### force_remove_identity - 5
+
+<details><summary><code>force_remove_identity(idty_index, idty_name, reason)</code></summary>
+
+```rust
+idty_index: T::IdtyIndex
+idty_name: Option<IdtyName>
+reason: IdtyRemovalReason<T::IdtyRemovalOtherReason>
+```
+</details>
+
+
+remove an identity from storage
+
 #### fix_sufficients - 7
 
 <details><summary><code>fix_sufficients(owner_key, inc)</code></summary>
@@ -1565,7 +1579,7 @@ exist altogether, thus there is no way it would have been approved in the first
 
 ## Root calls
 
-There are **20** root calls from **10** pallets.
+There are **19** root calls from **10** pallets.
 
 ### System - 0
 
@@ -1802,20 +1816,6 @@ O(P) where P is the number of max proposals
 
 ### Identity - 41
 
-#### remove_identity - 5
-
-<details><summary><code>remove_identity(idty_index, idty_name, reason)</code></summary>
-
-```rust
-idty_index: T::IdtyIndex
-idty_name: Option<IdtyName>
-reason: IdtyRemovalReason<T::IdtyRemovalOtherReason>
-```
-</details>
-
-
-remove an identity from storage
-
 #### prune_item_identities_names - 6
 
 <details><summary><code>prune_item_identities_names(names)</code></summary>
diff --git a/docs/api/runtime-errors.md b/docs/api/runtime-errors.md
index 1efc9f85c..1bb46f090 100644
--- a/docs/api/runtime-errors.md
+++ b/docs/api/runtime-errors.md
@@ -638,7 +638,7 @@ Insufficient certifications received to claim membership.
 <li>
 <details>
 <summary>
-<code>DistanceNotOK</code> - 1</summary>
+<code>DistanceNotOk</code> - 1</summary>
 Distance has not received a positive evaluation.
 </details>
 </li>
@@ -906,14 +906,14 @@ Distance is already under evaluation.
 <li>
 <details>
 <summary>
-<code>ManyEvaluationsByAuthor</code> - 1</summary>
-Author requests too many evaluations.
+<code>TooManyEvaluationsByAuthor</code> - 1</summary>
+Too many evaluations requested by author.
 </details>
 </li>
 <li>
 <details>
 <summary>
-<code>ManyEvaluationsInBlock</code> - 2</summary>
+<code>TooManyEvaluationsInBlock</code> - 2</summary>
 Too many evaluations for this block.
 </details>
 </li>
@@ -966,7 +966,7 @@ Insufficient certifications received to claim membership.
 <li>
 <details>
 <summary>
-<code>DistanceNotOK</code> - 1</summary>
+<code>DistanceNotOk</code> - 1</summary>
 Distance has not received a positive evaluation.
 </details>
 </li>
diff --git a/docs/api/runtime-events.md b/docs/api/runtime-events.md
index a326fd833..ab06c6d7a 100644
--- a/docs/api/runtime-events.md
+++ b/docs/api/runtime-events.md
@@ -1,6 +1,6 @@
 # Runtime events
 
-There are **130** events from **37** pallets.
+There are **129** events from **37** pallets.
 
 <ul>
 <li>System - 0
@@ -1182,11 +1182,12 @@ reason: IdtyRemovalReason<T::IdtyRemovalOtherReason>
 <li>
 <details>
 <summary>
-<code>MembershipAcquired()</code> - 0</summary>
+<code>MembershipAcquired(member, expire_on)</code> - 0</summary>
 A membership was acquired.
 
 ```rust
-: T::IdtyId
+member: T::IdtyId
+expire_on: BlockNumberFor<T>
 ```
 
 </details>
@@ -1194,11 +1195,12 @@ A membership was acquired.
 <li>
 <details>
 <summary>
-<code>MembershipExpired()</code> - 1</summary>
-A membership expired.
+<code>MembershipTerminated(member, reason)</code> - 1</summary>
+A membership was terminated.
 
 ```rust
-: T::IdtyId
+member: T::IdtyId
+reason: MembershipTerminationReason
 ```
 
 </details>
@@ -1206,11 +1208,12 @@ A membership expired.
 <li>
 <details>
 <summary>
-<code>MembershipRenewed()</code> - 2</summary>
-A membership was renewed.
+<code>PendingMembershipAdded(member, expire_on)</code> - 2</summary>
+A pending membership was added.
 
 ```rust
-: T::IdtyId
+member: T::IdtyId
+expire_on: BlockNumberFor<T>
 ```
 
 </details>
@@ -1218,35 +1221,11 @@ A membership was renewed.
 <li>
 <details>
 <summary>
-<code>MembershipRequested()</code> - 3</summary>
-A membership was requested.
+<code>PendingMembershipExpired(member)</code> - 3</summary>
+A pending membership has expired.
 
 ```rust
-: T::IdtyId
-```
-
-</details>
-</li>
-<li>
-<details>
-<summary>
-<code>MembershipRevoked()</code> - 4</summary>
-A membership was revoked.
-
-```rust
-: T::IdtyId
-```
-
-</details>
-</li>
-<li>
-<details>
-<summary>
-<code>PendingMembershipExpired()</code> - 5</summary>
-A pending membership request has expired.
-
-```rust
-: T::IdtyId
+member: T::IdtyId
 ```
 
 </details>
@@ -1303,22 +1282,27 @@ receiver: T::IdtyIndex
 </li>
 <li>Distance - 44
 <ul>
-</ul>
-</li>
-<li>SmithSubWot - 50
-<ul>
-</ul>
+<li>
+<details>
+<summary>
+<code>EvaluationRequested(idty_index, who)</code> - 0</summary>
+A distance evaluation was requested.
+
+```rust
+idty_index: T::IdtyIndex
+who: T::AccountId
+```
+
+</details>
 </li>
-<li>SmithMembership - 52
-<ul>
 <li>
 <details>
 <summary>
-<code>MembershipAcquired()</code> - 0</summary>
-A membership was acquired.
+<code>EvaluationUpdated(evaluator)</code> - 1</summary>
+A distance evaluation was updated.
 
 ```rust
-: T::IdtyId
+evaluator: T::AccountId
 ```
 
 </details>
@@ -1326,23 +1310,33 @@ A membership was acquired.
 <li>
 <details>
 <summary>
-<code>MembershipExpired()</code> - 1</summary>
-A membership expired.
+<code>EvaluationStatusForced(idty_index, status)</code> - 2</summary>
+A distance status was forced.
 
 ```rust
-: T::IdtyId
+idty_index: T::IdtyIndex
+status: Option<(<T as frame_system::Config>::AccountId, DistanceStatus)>
 ```
 
 </details>
 </li>
+</ul>
+</li>
+<li>SmithSubWot - 50
+<ul>
+</ul>
+</li>
+<li>SmithMembership - 52
+<ul>
 <li>
 <details>
 <summary>
-<code>MembershipRenewed()</code> - 2</summary>
-A membership was renewed.
+<code>MembershipAcquired(member, expire_on)</code> - 0</summary>
+A membership was acquired.
 
 ```rust
-: T::IdtyId
+member: T::IdtyId
+expire_on: BlockNumberFor<T>
 ```
 
 </details>
@@ -1350,11 +1344,12 @@ A membership was renewed.
 <li>
 <details>
 <summary>
-<code>MembershipRequested()</code> - 3</summary>
-A membership was requested.
+<code>MembershipTerminated(member, reason)</code> - 1</summary>
+A membership was terminated.
 
 ```rust
-: T::IdtyId
+member: T::IdtyId
+reason: MembershipTerminationReason
 ```
 
 </details>
@@ -1362,11 +1357,12 @@ A membership was requested.
 <li>
 <details>
 <summary>
-<code>MembershipRevoked()</code> - 4</summary>
-A membership was revoked.
+<code>PendingMembershipAdded(member, expire_on)</code> - 2</summary>
+A pending membership was added.
 
 ```rust
-: T::IdtyId
+member: T::IdtyId
+expire_on: BlockNumberFor<T>
 ```
 
 </details>
@@ -1374,11 +1370,11 @@ A membership was revoked.
 <li>
 <details>
 <summary>
-<code>PendingMembershipExpired()</code> - 5</summary>
-A pending membership request has expired.
+<code>PendingMembershipExpired(member)</code> - 3</summary>
+A pending membership has expired.
 
 ```rust
-: T::IdtyId
+member: T::IdtyId
 ```
 
 </details>
diff --git a/docs/dev/pallet_conventions.md b/docs/dev/pallet_conventions.md
index c9ae7f7bc..e5175f305 100644
--- a/docs/dev/pallet_conventions.md
+++ b/docs/dev/pallet_conventions.md
@@ -30,6 +30,6 @@ Hooks are inherently infallible, and no errors should be emitted within them. To
 
 Internal functions should adhere to the following naming convention:
 
-- `do_action` for regular functions executing the base logic of a call (e.g., `do_remove_identity`). These functions should directly emit events and trigger errors as needed.
-- `force_action` for privileged functions that bypass any checks. This can be useful for specific benchmarking functions.
+- `do_action_` for regular functions executing the base logic of a call (e.g., `do_remove_identity_`). These functions should directly emit events and trigger errors as needed.
+- `force_action_` for privileged functions that bypass any checks. This can be useful for specific benchmarking functions.
 - `check_` for functions performing checks and triggering errors in case of failure.
diff --git a/pallets/quota/src/lib.rs b/pallets/quota/src/lib.rs
index 8431af5d6..f3a579cb2 100644
--- a/pallets/quota/src/lib.rs
+++ b/pallets/quota/src/lib.rs
@@ -130,7 +130,7 @@ pub mod pallet {
     }
 
     // This pallet only contains the `on_idle` hook and no call.
-    // Hooks are infallible by definition, so there are no error. To monitor errors
+    // Hooks are infallible by definition, so there are no error. To monitor no-ops
     // from inside the quota pallet, we use events as mentioned in
     // https://substrate.stackexchange.com/questions/9854/emitting-errors-from-hooks-like-on-initialize
 
diff --git a/resources/metadata.scale b/resources/metadata.scale
index 8cba70d82084d4a6c13159a9585ad29f6c8e7c00..a4239406fb5544df7692aff4f117176809213953 100644
GIT binary patch
delta 12920
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
DA#`KM

delta 12709
zcmZ25fn)gu4z}FXl0-h!jcmp&jFFSASY#PvCr7YoG8SxZVqs-rRb*roWt_Z`Lu_&j
zr|#tQ9IV1N!MT|w8NR8xNvTD}8JPtv462i@IUFWOa0;?&BB{1#)SY~U)0ok6@()f+
z7Dq<LhUtb)jFOZ6xP%xzCns|0Fa}QU<5FV`-Mp1cnT?0Xm(eZ1C^=Q3BqMe5Ljmci
zq}1fZ(&AKw%#vb-w4&5hg`~us#JuEGh0J1w%)H{#w6x6R%+$ORg_3-Qg2c+4l8jV^
z#N_1s(!3Id<f7EXlFa-(g@U5Y<WxP2=<<ww9hd>JlN|-EbvQhN67y2>a}_dE6cUSz
zGt=`@Q(~f_2E=Ek=qMC{<>NC`VkfT_tdp;R$|;oQ<z(h%r=}>R6@j&<=9OfYR89_*
z&)$4MD4w5@VY0o_6>bKF@XV5ol%m9Pj>+p4!<d*DKq@91s?3+k2}(^X%}W89keXTy
za(`kT%;}Rqs3;hP_~k1UmgbivDx~EXDP*QVY>4s8_suU#buKL`O3h2IbjvS-n8U!t
zGG%grs_NvEstP77CJ;e|w8YGu)D#;CFR(PVG}Wy%Cx?NB#RVdyPzVxJNGr|B0Xs}s
z-I<YLa=f~zB8MiUPiAq6LVlV;E+m!}$}{p6$}@9v6jJj_Qi~=FYDlCdmVjbPAuqL}
zM4>pfxHvOEPtPGbEH&8%qA5Nz#V*#zzqBMhKQk}gv9u&3zbLaLGqsq7VFRNBNL`4P
z6(kjTrr0qsVz+g2frhdNQC8VN%yQ57PfN?m%u8iq5Mb0nvVwt$V{*ENm6J|1+<mbY
za6O<X#ni&g@x&1t2B_Ybt~Y{tx>yg{L=%XKL8-a<WvM9`ZeZbg0XHxsu~;D|zZepX
zMVaXt;FO${s!)(v1P**~f<}a!4l83xMrJX@J#0l_2Tk6%S9EfTrVJ0V8zxWC6c-1@
zAcpm<9Fvb~>Y*wQl+T_VrxjDr6UZ2nky-@KUWs`M`DtmXpv+d3T998<l9~ca4Il@l
zXO^YrDI{cP=A|SkWF!_8q~@ijC_rN<0h$ovGxJhXD-skE^HNM1H9%^0iwjbdGt)AY
zH5E!Sb5j+HbMi~{6hc7$Ni73q;z`=-!agz4AhkMRB_I_sv76PjR|&Fn)Ho{SrIt?)
zuock(<!n$+%}gn&gxI5_kYApcS`?q1S{ZBNnNm{eoS&DLS(KZaGTHHl{A77sT_%n-
zll^S9<w~Nl>e5ljOUzA;om^$B!^BZBd4;VUuK|+E*vZFjw=!`QOs=z&L6ZOl9-I9i
zMv2La?!rQ#@Ky=2vI4omGlhYHBW1F`gJiu5)U1?P7f9*=m71;<1(`*V6oRCMks|<>
zK0t~TQX#6anh=zlms*Zt0ux69iV5Y3^~DNB5TyuXd=L%^N-Zo+EiS<@h?yhDF%Od1
zz{R{mc_PRlsA7asNPY@REz8fwFi4dJ!$}~6z)BIuO!jh=5@HZwL<$U6js=d>`Cc(f
ziz$He3PxCfiY+EZ#>oqw$xhy8!Z*3WsnV9i#V@s7Avv|E1eDmobpRt{bY^jJX=;&<
z0)&nSQz`M_szOJhC^b1XvkW9Xd99~7W9;NNo)aB8LZDd~)ht7j%;MF7L?GB1v6E+e
zIcR~*1xFjIxgKyQ!dw#z_MIx@bo)$3naMj$ct+D0I2jH^8q*xsX-t=KdSVr$?Br%|
z4@SeyXS{V784V{F`if5G^EF~Lo$TnV&uBWi&^Lq8a`G+TJB+rI9RmC&v-;;kSqJ^=
zz^o^Xwv$x@gP9x|r|UN{N>5+V#K<{$UZ97Ni(6(+PHGCYIhB`MTs)aC$VJPQk<kLu
z0s{$!R2HN%FtP-|OCx0Ef%4f*u3%#oCrbq9GI~yK3qHu`yV)Zoi;>ZH`bSPi&B=E{
zQ(?^PuqH;|$?w9_m;xE6uWe_P+?*f2hKVtBvrJSNsEu137s?;Y$iTp)z>o-{8W>V1
zUyn0q%$&?0@5qtK$iToRz>qsRK3!~cUOXogW8vhAL?_0|&ASsHFiIAJbd)kOlrl0f
zuyB}|FjRsBOc-h>&r1=Td@9+Ev2n6siW*ZR<77D|U5i#m1|CL<y!@iv#GF<}MwSo;
zMxFeE)FN<^02flpP0UM4EXgmbgs5R?ojflkh_Q3>#}rvGDJ-W@lv<oxRF<03$;fEo
zUjS;{+JvWqS`Bs#44so5QdJpy!A_`26=9q>d19&*(?qZnCf`amW}G^iFU^K==49`*
z#f)<&zfZF@p3BI><D6g4!V<!`kdc9fVId;}1DIf1%E+)3?75YU0t_n|85o#37#J8h
z7}jo%Prt;(w2^V*TZzfuSqquAGENtaVl=Sb$;cASz`(-5$;>DLZr9l{FzjSxk$|`o
zWW!!YMh*eL{Jc~K1_puP{M=L)hP{jo42%p6dnZR{Ycn34+@3AR_;K>GY=5bPjEn-#
zi8(n8j25|xl}V}b1*t`u`6-#nXD9RL7>aykVl)Xz%*jbDDfTbQOwY_?U^qBABuAI=
z=;Wpx6-L&{%X2Ikk4}D&qt24c$hdZLU`5R2^juk%jf{*NCkIx<PJWsz&vcS;Qhwaz
zlss9ci;R;U%i<<K%#&sM$v7#$p6M^+<i`9K7C|P)vtYfc1$r!!OpI5-dcPE?v8XbE
z4T_muRVc@z3FG`IlxK{b>`<C8xuQs#v2wCQS^VVBMT#u7OpGVN=9CnxGB!?b$d8}=
zvsjCzm5K2#Sh%^wn5C16@g|rfR;tO^JK3SMk#Xr{zl!+Die++)D<?aYRWq&y>y$26
zXF18lcoD34QMm@=*~$O&;wNiWC^KH1>{rpqcy;oHiVl{$F!Od)sxdyCe7~}q<t5CW
zyQ<`w7?~$G=EqI8tQKQDIXR#@obl}BJ2gR|K>MgXS*~U;3O}fJA__mMt_FqgTVKq0
zcJje`RmO{xpVxabUY%^%V8-}z^1()t%{2|Yj4*-C2OD27GQVYHoIIgjZ1bV!Y><pz
ztAWx@Mh?#u#)pgy0*sJGXG&_(Lq?Dw1ET<_5%_d+L#vp^O-4oukJQAJ)FK8(lj79m
z{JfO-3@{%_hT$gT<cmzAlP|Z*GTxp1u~maHbFx%h6yx2=rEMyV4=2xRGiQ7{`BIx2
z<IBlE+guqdC)>B1Fui4*KG%#<dh&#Jd8UtylQ*`@$bV&IG;qwx$uCb$3C_tcDF!9g
zkKjxpA;IvKaq^q?5~iPwo0B?@F@aKyR<|mn%H)7<8AitGA6OYBCokv|**vQ|ff2^f
znJT_nyVnNBXA?+CEiQqpoeNV2(w5!N2vfGXZ9)b!OpaqpqJ%?fL3&YQN@_f`D_YFL
z$Wxw?&pSEbfT$vyLP01*S|L#Z+S~>;&6C0H96g4T>H7MNV)fvTZi3zfU4?}5jQj*E
zg%G5Eb4k8JQmO*fmJ~gPP)2YQ9o+RRPs}U>_s$hciW2jR6O%z@kV0B&szPQOr~{Cb
znpj+-keHLBkW^ZtU}&HU>oUL`tB{wPno^&dqEM3W$cSu>f<}0%LQZOlLUDd>szP3V
zi9$vq$SM@aC}foumndZBDdZQWq!xiY&7cSZ_mE36Qez78i;FXpGIKI>N-9A%Cufuv
z<!S0c9GjL}#K8y&ba<$XOkO@^H7s;<rtW8CoUAh~k&$(B-!yM6P9{c$=u!)71tWu4
z1{MYeRwf1pwjKsfCI$v(5pZ$H%f!II#K0gp`Oh>@M#jnOE*fkun{LX;D7tygj2DcI
zqLbImFyu2RO3h8o%*)J6k1xpw3vFhdt;5VD$}~AwQDU<9JSi(iCPoekKX3)X!obMH
zsNx8TFi;1ALB>BXwKyZc1YL%afkBdK`a(}e#mNWetz?wloHgHtkx_Q?`UN?R4=2kk
z>|<1%yn3MvqvGTb3vHNGnI=1Ei%)i4B+V$hIdRb&W+qLh$%Q)Nlhc-&FzQbJv)qLd
zoM9)|G;mM;zw8f8Y_sEvELKL{$!pdIGa61>C(dX%Sz?_fizySM<>c+_3?{d((_{3V
zyk%Vkqv_;?4VrA0Of12Swv+oe=qq?KF-mBJ=_mwiGB8R&vMZ7hgXQGz^}dX@lW(rq
zlyqcb^hixHGBq`{w6Y4$OwUU!DJ@E6U~rr)y+J|M6&4X@Cb0|*uAuOD0EfRP6Q}~V
zWU^&q@CDl*h_F2r({>~whQP`9Hu&>~f(-}+84$@dJvNk4a&quSMaJ04r5iOE3pdZ(
zn8L^yJDGWN6l3D#xXsy&iIY!lHeyVj{CBg8bS4vH0H~_-FGwsbP4z9!DalMsNhz{p
zU`U;8vqhaV6O=e|nHX{>=WH=%ES$Vxi>YKO6Qf6Q5vD&&C%@aGz>n(B%E_`@b)Y43
z?$%vkmdf;g4MxGuvD;Lk<%7iJ+1q!)5^(+wR<J7N#WQv=veYv1giPjV7oFT-#6Ee)
zPGy#(jEo7B3*QS*{<L!<oU?h>E?Y*XMyBZ(!Wkttf7~s_!q_^Q=YTUK@8*C5nk<Y*
zCs!RYWX#;W=7=#PW9H-sM<wAxI>&;T7&AB5pZLbam^r!Zv;$-2=Iy7SurPHpP42f;
zntbenD>zfwP4>E&3}&5Y?A=^<=`IuF#LY2R;~5zzZr*b(pOMjKve6B5#<`QTZcJue
zIQid=%Zw8zU%FY#IB{~oElozp$yK+M7)vM5y`{i7b@IMj;*3)#U%MqIH4~mHOk)`s
zW`a_MBREyeoy>PzopT{5_yrjmmQJ?2eMH0~IVUkQ7r85|&@=he6GdhPg)5WaJTYcg
zP;i{A@YJ7KLE+Bif~TfT3JR0o-}%Y7a`XIW226}=Crdr(W864-<%3m>8z+Z6oX)hD
zY4h8My`Tm~^<zDmtxSvtptKN>T9lNTlViuguoYzeP9}z(Ow%no8Rc9+!k`9{03%PS
zu@M8qUMA$m(LpAR#?e70aN`I>v2ZXPWnwtWG~GUzQDX81H#NqS6nW|_#8Ve1UwBc-
zXu8?yr7Sa}>E?tti$QH1miNAlpvpvyO&~cjC+Fzo2OpI;PkjHI5h6O7<Cg&A&B>C#
z)S&X4AAA(#K$hDq`Kyo(BEYQz8t5s=&&(?Ubs6Ngo?>KV(YlG^bz97Kp)I6cc$W#%
zix6OC)M0d;Zp+Hp%=mEnK~_dRNP^d5d^%m4jZqGg=C{YPF@ma1aOKORQBag$Q5j!S
zS&$0p9BjAdV4MKWG?FON+dpzL<}txK4gtdK+b8faX2I%Q6s6M@1Q^vBGpBn9Fv>D!
zZch_nRDr3RZYRMgy?wth<31*c>m(r}o5UE4VAgK8lVIEp<FE-7r6%TpYa%p{v`I03
zV$^(!5=y?9q2vn*rI*te$}k!-zMZb8#;Cmgn+#(NGdMt0wwEg~W;4Mg*pwLqm>54!
z4_9TB2g@r@pQXw;nepv*JvBxfCa{po_I?dUM@G)KptO6Gk>TU?o0^Ooj9;fSX)#(b
z{bZVMqs8dU@|THGaB^UU<MeY{j2ui~nI_9INlgEs#pnc5VWQ1gFZP#-L#DVOJ~_WA
zRUj-sGX>OgVq~5y8znJW{Q&RuciN2RkT8;%Zl}ZelreL<iZ0`3#?0+EbQ!sz;UlsA
zw;tnUM#jwT{RWJ6OpL746-^n%rhkZKl%8&H%qYag$;`mOw3Cs6mwEC*A?fX9#*C{N
z83jSAtkgxBA-xevq~3@qGpMe3$SA=e3DPOb%peO=3^CG~1)@O_NrNIt84H6dGjc}N
zWX8y-n#|ygsyTg*8KcZ}Au~pCM&0RJW{m2LrqhGW7<Cver`MY?$}sAJ6eKV{ogQGp
zC@yTs%xDl+l!jE-8BSL>XLRBLRRUo}X#qv~`DxQ<nlZ{xpJLAF&Ha>-Q2^8oWni!b
znIkiu&4SSrw_&!^t1K7|p-oxgujox#21kV7)m)*W<%#5ZS8!-a2rzhpLcx`p!FRi{
zB_k6PW8ii(YsNdwjG@!}9T+91YuhtM3Pv(BYPeRE6eYUlB&HWLFhoM+*4i`j3&k=s
z3X~ceSuilfGBYr+vNI%tY_<|jg<6`6WN9iypQ!_*EXPVlMhl<(<m~CWj*N2Rj50;3
ziN*PO#hJ{EGC>d~14AZAy%lFJ$cd@U422+*A@M0%3N^kG$@o%`a*62%j*JSzD;Z^+
zAX7<<5)2%S9GNLArzblyYI0VB3@c@3s6{fY5o%Z~l3|Sy!#+DQT5`35^fWRvbTUuY
z5|i2<;KcZmiLrOOlPjYZ55oTwnWw*<$0##>iYuc6(^Tfkxr&O@ue&lTGL}sL>B=Z8
z=Hir-pPcOh?$3wh=lkcRFfg*jOxJZ|6qoRENi8mcHVXanOI#~5i%S@oSURT1x-lwE
zZ*XH2llTHsl9>k{RDew+fyPXyZ**f6)=mZK08Jq!<|w437UUOamiTxgO`t&ogMo!*
z&h#&CjOx>6+!+-ZS4_8cXVj98fVM!<9l*viWqPwaqw4gFE{p|CGnpsHtB6fE^kDR5
zoQnuOv4zmkTZ$BV3qfi{r{DHqOy^t*3cZEQ3@fKE@MM&pp61DD$+#B8))h0bam*=7
zO-!lu%uCMC&CE+@U|?}@oc_v_Q9;E5Dy5JQp0|OigiSUvFo9Iscrhv~`}pOTD5T|=
z=A}R;2^6wZE1`qmo+(Z_iOJbM)BC&_bs2r8@9|=+Qd02CFYyP>CNOZYsDSi>rxrjg
z$cQ-u=X57;MioY`>FM5#`r_Oy0U`PM3b~;9JESSD=^v{Z3#ZHbFveN(GBKKfS_eUp
zc@$6+aVt1~?J!~33G)43W`@0B0R~wnhJ#?%QDzf{qtmzfFlsZMWS;DxExG-V52Gg|
z<JswMevH!?FHXPf$C$!+b-I&3qbcK6P;gsK-{j9I#B`H+a-ojo_WS;fhRlq2rwax%
zI*L3*3i^j23vVzyot_rVs3-K2nSp}=G~C7Tk{L8I#qe_avS7wC#<$aDLm2HDKTeMg
zVGLw^3o##5?lOJ^v(?{1WA!VN(O*GEzh!3l3HE^i1H)ftP@DQCBja@UFve^~*6EwW
z7|(HWvVclr1px-$=>k!VhM?kHc>DQqMh7NFQILoQZ!9Atd=yD?dT115z7#JLqXj4o
zp=l62T_}*3SXs<F{azHKI+HBRWZnZ()6L@<`L^pvGp=G{R0Nr2sG$li+BI1aW~zc+
zz{x1Vpvl6(z@*B;pvyA3-%@3IcpT$lM#JfIix~a5Z-AmcH7~z3J!5jf3(4vI@r=SY
zCN7!9C7>B-P#W=OU}RYV69DBkaKAMvH8oEmwJb5GG!Zms2F`1lWvMxp)6<I?RT)=I
zzhBHKHGNevqrmjt#f-{~3qS%I(>Y2Ql^ADC*DhgHn|>jIQH}cw!v5*4C5+nBH<mC;
zvGn*RR!k2}WEAHFO`s$uXQZY~|69VS$T(xVd?}-vbcA1i33SvVBp)(=0h)?p;9#kk
zo><B#H@%^hQ9|;9CwMkQAvrM*?B>+m%o6Zy#Pr>zj51m_&Z$KuA^D+sDXD3hd8sK3
zTr9GT&QP`BnG>*Lg_8W~{AG+rf(9Tf{PIiOK$(nzo26j-#Uw@<aIwH>Iz2v_(Vg3p
zg+YQ*ASJOR(Q^96WJWhe+vz`&854zESr|1yx`Rs+OG=9w7%W*PCmKjjZ%JYFH?n0x
zu6i9=Fsfch7I4)IqF6W>1Q=XFc1cW^O=Ywe@dU-JFAIY&IIaa;Sr`IYCf8q*;1O{x
zD#|Zn0S&{3OrMa-D3P4u37uV6NQ4wO3dyk9Ll2PKpe2nnWZIE|ktG3B14J$WNqJae
zPG$-y2{16RWK8ExW0Xpa07-+5$;{6~L=*!v%Yn%JQia4K$jC<`Xix(@Mgm#HkgAXf
zn)-w<0#L}yFLwbM<q4W%g@-!}OTu)!G)4(Yuq*r$b5o%Xhg27=ECtgG(imk#Y(QE;
z(w=!`AU86wv4l)tn8qk769bmXFM&^<I#ognLUxv(>6g<OmFrPsnuEmy9ulA-8*m{D
zo__VqFM$=7EIue|AT#d{P@52e#KjVUq7LjdQ1JOcl}4tP1l5BkF%y$=QW>~e5U~cb
zx-zu{GQ|m!b%6Q|(YoScDFCex$xlpC04?(X4=+F#k$~+9fNBUzEz3^^SE1gil?=Qr
zDF^{jt)ajLUUvf4GQBFDQI469Wy$o}>5Q6sHh%df!HK!4V8<rrrZVueWPma-XuiBS
zF*g+{@)C1XryoscR0tMe=>P{W*l1YN15N(rmE=?^BxfY%rKhI&fR%WsRzf2)v^X_|
zL69W^ER3SFv^X_ox>W|FT)hxWM?g`2MrKkbs01p>S13v?ODzJgEdWjH=cIu2xdee`
z4xpwwrlh2%FbK2wfCb_CAQ2>N0v3ZeJ49Flzyb;>`KiT_(gW1EVA;yZ#mUL(Tv}W*
z{f-M`Dr4yMPZ^BfjFHnHmN9B-N?3qG#xn(;S{YbE;PIWA0yYPne5Oy#WRzvhnZ7=g
zQF?k_IiuY4z;Z^B=?lskImJC7X$mwg4mXFHC1Co&az>Hl6v$ivB3p&zhZck51JtU4
zNP?|F%3h$gMc@S$u=O=52pgc&P;iSt`6n=oQD%B$24m6m2U(0AOo=R@iRbAHDi~E*
zTO9KgGN-T2W;EguWdx6yW={WI!C1}R0ZIn&dPHLSoJvLs_Adw(($h~?!V1gO>2|q{
z{*0N^`*Il@7+a_F=P|l5W`Zj+`CMp4)`(P*<w6R#LKcR?>C5sM)%kWZG4L?T6es2u
z<fImtPQRVU7|mD;)~{a))nALGzY?r}CzAj}EvUGxWMOCo(YY)PtsqTe)7R!R>S}kg
zFzPsk6s4vHr<T}+faaQ5SQKCapt&8;zy@e6l%W@-%W%3`0izJ(#Oa;|j4F&8)AI@#
z#e^A5oD=i%@=JmsQ&<d)3^CK!7cffHGciQ?CgxSTLMqJ6{Jdh%Ja9{xftf+UFCWsP
zVqjs=@XLp#7Y0^_1i$<|*PP7s%%q%DxBMc6ZU#066~sy>b_SP_{Cp(y^NWfZI2c^Q
zi}Lf*gHnr2bEf|(WaMDtWB^rGg`*We6)XOk!!F~4yE${Ioaea~g7Y8)3&Yaw2~~`Y
zOpGh1C)F^9G1^YwS;H8}xOO^sEu#kGT5!%1Wq^!R@G>D9vm03^-}aT-KBbm%A`9nM
zQ1;!)!mx9?UK3*|<6aOY1Db~yF#;|91Lq6|29_zH2_MMfzszFr`ad0o0?_15r9x3^
zNl~RjPGU)F5hza-a32J_?<k7|!%>JEPC^Tkvq%NW$?1!m8O<4er{8X7G-33eF3`fL
zB77F)n3F6F7r`c6WszXG3Nhg()P%c8CfuCf+rn7Kc^9PTCJV#E?INv=)0r5bPG8f`
zxQFrO^vn*%PR6%j{gCqI<8<>*Mt#Pw)6+W{RhfRWOz-Ptl;K~=$S4Dzw6Ta~VED^2
zSvE>)dS^Bx@Ae0sjE$hNCC6Sy(dp&gjE44%Oah=uX2zq8D)5E^<3uJA@K6RLD=PyF
zg9!rz11l>71B(JDD=(`ct0=1^t0Jo|t05}`=k$&97^S8&_AnYS@<P}?J&f9nf)Mtk
z9!B-)hCPhZ)35X}Dorm3u>^Y=)wpC?8F^fb5*Zj|w>$PSZWLfrWChIwP3M`%D9xq{
zvQ%@r?mR{XM%C$l^BAQWH6iA;%wv?}&tzm&0Ie+pHTxJCbU`v!jE39a%wzn=!kD=I
z^<u_oCdSn5?#mdn7#Sm{Z(7c%A)L#|7$RW+E>R(C1&V8@zg^C_l(BdE<Q0q?7^hBm
zS;-jBICJ}wm5j$38P`tFS<M*AxN-WS)r{qgTen-SVdQ6IJh|O#En^ZRBk%OJ>lnQl
z1*iX5$Ee5nbh`R_##+Xw+n26qbYud}p}yG2xSLUM`;twJvl$s>r#oz6jAT^ZK5Gl3
z6brX4GYbPpA|q(7ak}6=M&ap~b}+^=+D<pv$vB76ar@bwj8_@OE;2Ikn79_?Cug{n
zLKa9!C`2%A-?5u96*NREw~w)p=_lj%b^91A8Ce3ECo)bqJiwSdy<k2g+w>_17>_ZB
zGA{rLsc&yN$Y{*Wm^gjM5yl?I!s)I@87&!Wr`I24)Mc!lzV;}i2Gd{0?bnYoHZwDK
zGP6xDJjp0Lz2GFHCS&jPStl7)7$<Juf0FStGrJ%Y;~WOYsnd6!Wt3-}IsN8YMgzvV
z+qup$u3=<cIeq(iMok{jI!i`|4WQ15<n%Y^8SNO?PS?J`n9jIy`s53YCCpoyW2bXn
zWNc&Poj&m*<5$L=+uJXJ#x`ZAOJ8BMWIQ-M^a`VwiYgQ19tOsf%zQHLpjF2OiHtCY
zgb1j2l*-6(cKTtEhKt+(USZ5-X4Pb3Jisyi!+A!r?X5Q$n;98zZs)wkSjNP7cY4De
z#vsP0(=Xp)oW}H%d3yF;#wNzd>F@3`USaynJpIT$#$c&RCdM}mjEpQICeSHkf5=)2
z#@gwI_Zc-AS*J(eXSC$!WZ`82`K*zN@dpE=;Pl1!8O<0)r{B8IXvuhVy2t}Y7e>kH
zkq;Qt7<s23c)+-av2}XwL&khY+3jy1GA1xGDo*!%%qYXyIX(L^V-Dla={FuThA}hj
zx;@?S38MoGLyQ{h_R=SeER2l0)2p5`$}loapZ=6llaYD)!KaK0?92=d3=E8h(_cJg
zRAV&V&i{-tkCD-HdfjuzAjaP57oRhVGC5dGfAO4gA&BmN!5F|8IQ`BGMlHtB?RP&i
zPGXc<%ETzk$l-u!*9Cyrk_ZSma0yKB{>+%d%&?egy3A|FIL657)vp=V8Dpm}e$D90
zm^l6AYerkf#Odm97?ng<GBGML3TS}pN4NnN)8pPSMlz;M-|>bqhLL%?=v&5O<^~ak
z>D_M`bwEk)Eu#iw>hy<i8J!@MJ&O?|16aU%`l5G?l}rbjw#&X}6l7%Vov#0Zv66W$
z6T|ei9~eU!cTQ*i$f(CNkwr%bywpCpG--P6Q$|UUFC#uOYA`ZSZ~Vxp#yEBQijRyY
zaL=A(VpJv4voog$eql7k?%A_UjG8z+%a7f&bEnVv#;C)ykj0P@lvpk@G3su=@Qu-e
ziE-(4&Yz5`%nMmoPB;9?sLgVfiP3U<!cWE!CdQ4^xBdndGShYcFv>A*o$m98F%`6O
z#c}%9Ka7Qpd#9`aWt3$+INkLx;~vI~)0zG;TCzN3V)Wc@|BtbSMereuy-a9HW=>{F
zB?IG2CdR<&SD2VUW8!kmOlgcSr?)aQwK2Y(&cnjwBErbb7|JMP5Kxp~kYAjb<CLG5
z@^O0#3zIe@<JajESeYg>ew?nt#uUc%lVy7i8xsp-{a+SGMphOD59f^3<ZQqEyr|To
z{NU8Ql++?l)*c72XmCMla#(5+XxTe2tAGVqETjS|BFHLW02Xmi%}XuLEEZ)|fT-}z
pFDgj{Ia-ocK?AJ9FF!9iRgtwv2h4+%(u}&(IGCha4Ox3sSpm4-7S#X%

-- 
GitLab