From 41708b2a562ab6de023b618ec403fe2dc42ba05c Mon Sep 17 00:00:00 2001
From: Orestis <orestis.malaspinas@pm.me>
Date: Tue, 7 Dec 2021 12:00:17 +0100
Subject: [PATCH] added queue

---
 slides/cours_9.md                     | 207 ++++++++++++++++--
 slides/figs/fig_queue_extract.png     | Bin 0 -> 19932 bytes
 slides/figs/fig_queue_extract_one.svg | 298 ++++++++++++++++++++++++++
 3 files changed, 489 insertions(+), 16 deletions(-)
 create mode 100644 slides/figs/fig_queue_extract.png
 create mode 100644 slides/figs/fig_queue_extract_one.svg

diff --git a/slides/cours_9.md b/slides/cours_9.md
index 58e9e07..96cdf08 100644
--- a/slides/cours_9.md
+++ b/slides/cours_9.md
@@ -715,9 +715,9 @@ typedef struct _queue {    // File d'attente:
 
 ```C
 void queue_init(queue *fa); // head = tail = NULL
-bool queue_is_empty(queue fa); // checks if queue is empty
-int queue_tail(queue fa); // returns the value of the tail
-int queue_head(queue fa); // returns the value of the head
+bool queue_is_empty(queue fa); // fa.head == fa.tail == NULL
+int queue_tail(queue fa); // return fa.head->data
+int queue_head(queue fa); // return fa.tail->data
 ```
 
 ## Manipulations et destruction
@@ -748,22 +748,197 @@ vide.](./figs/fig_empty_queue_insert.png){width=40%}
 ![Insertion dans une file d'attente
 non-vide.](./figs/fig_non_empty_queue_insert.png){width=70%}
 
-<!-- # Défilage -->
+# Enfilage
+
+## Live (implémentation)
+
+. . .
+
+```C
+
+```
+
+
+
+
+# Défilage
+
+## Trois cas différents
+
+1. La file a plus d'un élément (faire un dessin):
+
+. . .
+
+![Extraction d'une file d'attente](./figs/fig_queue_extract.png){width=80%}
+
+2. La file un seul élément (faire un dessin):
+
+. . .
+
+![Extraction d'une file d'attente de longueur 1.](./figs/fig_queue_extract_one.svg){width=25%}
+
+
+3. La file est vide (problème)
+
+# Défilage
+
+## Live (implémentation)
+
+. . .
+
+```C
+
+```
+
+# Destruction
+
+## Comment on faire la désallocation?
+
+. . .
+
+On défile jusqu'à ce que la file soit vide!
+
+# Complexité
+
+## Quelle sont les complexité de:
+
+* Enfiler?
+
+. . .
+
+* Dépiler?
+
+. . .
+
+* Détruire?
+
+. . .
+
+* Est vide?
+
+
+# Implémentation alternative
+
+## Comment implémenter la file auterment?
+
+. . .
+
+* Données stockées dans un tableau;
+* Tableau de taille connue à la compilation ou pas (reallouable);
+* `head` et `tail` seraient les indices du tableau;
+* `capacity` seraient la capacité maximale;
+
+. . .
+
+## Structure de données
+
+```C
+typedef struct _queue {
+    int *data;
+    int head, tail, capacity;
+} queue;
+```
+
+# File basée sur un tableau
+
+* Initialisation?
+
+. . .
+
+```C
+
+
+
+
+```
 
-<!-- Voici l'entête de la procédure: `int queue_extraire(queue* fa);` -->
+* Est vide?
+
+. . .
+
+```C
+
+
+
+
+```
+
+
+* Empiler?
+
+. . .
+
+```C
+
+
+
+
+```
+
+* Dépiler?
+
+. . .
+
+```C
+
+
+
+
+```
+
+# Complexité
+
+## Quelle sont les complexité de:
+
+* Initialisation?
+
+. . .
+
+```C
 
-<!-- On commence par récupérer, la valeur en tête de file d'attente via l'appel `queue_tete(*fa);` -->
 
-<!-- Puis on met un pointeur temporaire sur l'élément en tête, avant de déplacer le pointeur de tête sur  l'élément suivant. -->    
-<!-- Finalement, on désalloue la mémoire -->
 
-<!-- ![Extraction d'une file d'attente](./figures/fig_queue_extract.png) -->
 
-<!-- Si la file d'attente n'avait qu'un seul élément, alors il faudrait mettre le pointeur `fa-­>debut` à `NULL`. -->   
-<!-- Dans ce cas, à la suite du point (3), le pointeur `fa-­>tete` se retrouve à `NULL`. On doit donc ajouter l'instruction : -->
+```
+
+* Est vide?
+
+. . .
+
+```C
+
+```
+
+
+* Empiler?
+
+. . .
+
+```C
+
+
+
+
+```
+
+* Dépiler?
+
+. . .
+
+```C
+
+
+
+
+```
+
+
+# File basée sur un tableau (git)
+
+* Créons le squelette et `Makefile` ensemble.
+
+. . .
+
+* Créons quelques issues et assignons les!
+
 
-<!-- ```C -->
-<!--     if (NULL == fa­>tete) { -->
-<!--        fa­>debut = NULL; -->
-<!--     } -->
-<!-- ``` -->
diff --git a/slides/figs/fig_queue_extract.png b/slides/figs/fig_queue_extract.png
new file mode 100644
index 0000000000000000000000000000000000000000..a31dfba6e27cc7cfbe046fef3158da529a93f55d
GIT binary patch
literal 19932
zcmeAS@N?(olHy`uVBq!ia0y~yU>0RyV0g&E#=yX^@7s(S3=9mM1s;*b3=DjSL74G)
z{)!X^1_sFz*NBqf{Irtt#G+J&^73-M%)IR4<ivthz5Jr|+3#$m7#I{7JY5_^D(1Yo
zTU{X>`iuQT{!Whur(hSUDc%blnmbrTJY91HCT{p6*V$xJbaUAWy~Oa0fGG=hEXkU_
z;gL|mR>xS52*Vu;jEN_k942@(bM<x!t?La^5M9EkE$cG#zPzgQ<?LHAYMJ-XfBuqb
zZE5^jP3F=b<L7hC`%)vtS_GUp6k7x?Ih_5$*8pJ)-PTyC01;<tox}x}ck&3Jks$A*
zj};#-dFy|aWm5!M+R3E*gKvT1?~ljj3twH){PW{+|BjNELVB^gS|&{r+CSgh+dD8U
zjIAy4&%XG5H8ZXKoSc}Vw&(FSIz0GpYiB1XYgOWql(gvncRpFG1;NYxJpBCJmix_h
z`ZZ@=>~6Nj7dz(6k@@rI^Z6Io)=Ha5`Ffmp1o_`7$y?_1CY}3^EvJ^xuj}HIwMuw#
zVWFUPdSs;JzMs#ecf{z;u_$Cx_nULz<>lptUtR=GnKsQ$r*GDg<Hr~0-{1G*=4SP(
z@9%o=?X7lJnz*3;|G$j8yGr-=eLbl@|3RyG97xyB+}Pb^NBQml2)x?B3G%B4Po{}y
z>(QixQ#6AWM7TEA|F8S<?ymKd=Q|1>GI4QneYhGPUwD82?{~Ycz6*1(+>vcL76113
z_V2rY2Yh@Uwl?bFt*zO0<px^+YM!1FeYej2seW7HtDe{IcE3Ni_xru>MrL*=t*J>5
z4m9p~+-JRN%kNjK*H4%_we{}q^541jpH8ZOJSLsLApQKj#{C_jkXKxCF;m2o^{~N?
z=kuxyUR}{-XmC+F*vQO&VPEa<1%1_DUxmK8wUzt!w%o)2|9!WYu`XM4Y}?ygTb<wE
z+k0`jzx=!E`F6Dm6Fr*x7Axw-?>lqX*0S!;j{D!|*Z<pj?C-BHFPj4wyCq&(5%}Wz
zdikQFq76w$x$f*JY|b`LIU%4EwS^-yGjn2v7T75&r%bz+FfsVex9d$j-1hL!&SHj!
ziOTLtr>E&=+}xD9x9@R@RpREG8**=(y}7k@^)0ix*5$_*I5ry;JaFKVGT{hXDPmjo
zh2xi{i&tWz;v7G9K6$&IrY0s45s`xR(Yd=yUNSWwZ0HnLSJKndW11)gO5_tFE@VvN
zVmNXB{P7M!<$$m-Hii>t&K&6y)qZv7{gsu$KRz7h|9H_|{@~N1&`KLqQ_;-KObN3b
z2{wMYn70B8Bg!8hVwJHf;dsCIyWF;%n@!o**M(+YUhXfyWcl*sQ&Th(CF9&6X)SoM
zmli|9-(O#67$h>8$D|)@V!iPCYv?UeF|nkxvrHrQ*V%G$as832{_(I~ar)_r)26kt
z%hw1nH7W=#{Jd&erSRY1-`#6!Y(9Pd{CAu8(x4t`b3U!9Tzjj&cBQO<hM&o<B}@!G
zZpvxr=bin#FYm4uND;$^%Fk&My>4%AY&@Jl|KH!=$)BE_{P9@+KgUE5k&6{SzdY`@
zfAn;E{JOGxM=mY(HcUAo!0@zG^V6qK6Q)mZU%&6ysrM2^J7qSfpFj4v-(K$G4M;jJ
z$(Z8F%8+3qr4zqT#^L8H@AG!Qb<A>awLCuFU!41H&u2fIzh5rTFiPcO<B>QJzGBac
znEXTP6Doz>`{i11<{X=4njH`lawON^&(AF^Ow7pGSWsSG{@Zg0aBwYhUhJ#2E`C2>
zt5f4#>+-P5oEsYwPn<gS=v|zN>D8;VGcGUVjjMRby64BE?u^UJd=DJIwIx${nqKUy
z?^fz+YL9k4pLcjo<mQUVpIzVr&LwQIkJh@ly<PQxU&sGAZvU@we%-Im+xOPRTIbx`
zBgt?7$Dse>$K|^!g$oM{XIK;}@vt%PDtUS7L9)Dc8BhMcpK6~zecI9ask5`Q;@{8b
zhQ-f(y!5~>mD=bwH6&(lm1zF{zh?I;9`nZRC}_N`C%~~IsbJ;Gl{fZQm+zfEt2edr
z+-#24ZgKrX2?h`5mfw3gshdyM>cP(E^PI!N#CW@vKv9_4GV7zP!-|}nn^-k9H7h<I
z72nyCbZbkdhL+Z$b91dP?kde@czXJr-+a5d=L3|V-P)QRu_Z&W>g%i4@AvEHdu!|}
zdD*mQkIj?k&)ZEFGBotbS|@#cbhKdi-5I9YVhj&1E%lyZUvD>Q@?=nwZv9dNvQx38
z-mrf8qdz}C&#)|3yS6_5eD3KJCk`~Ra{uAF#JcNBPO{*sO5uYR_5W<*s^6MEdG@U6
zwp{fa!#%&>?S64@Z?#Jjq~3TadfC%8FHi5;+1c%<r|UB_yxaf3ZcW5SroX?xuisXi
z>wVTt?BN`9!5(3CzXvnZ=N+79Tg@;<-J)u*oc^8<O!^<e@igH==gB3HE-m%;@b^ES
zKEIZ2K@C%xpC4b^xjB)~_lZuQm3w!WY1x|_jaRN**>Fsnb0WyZ(A8lNe?Fi8T<wDW
zhXc$%o=o;HxE@>nQAQF};BsWHnBlF(Cuh^4KEFmN{ro&uh8{^{Hc*DODt{+);otT3
z@yBNvCU2<yUB>XVnBm*|`~CO!R=4XuE8tpok0o9&ZcoSa`So(E!`HI~*iEc{duwaO
zmy7O|eLY|Yo4EM+UWwb5BiY6y*|a(Rypw{!gT3GH9e#FpHnX1w!-CY)(;~L#$-dkB
zJ&xh2e8KS^$>wfx{Wk448-9Y^`TcIW^YY7uoUXIYayKL#WRkHi<C(1H+qJ8ONyGn1
z*xIPpUTO11vAfGa^`TpzOlNp}?bP=dz$wpz`N)yEUGa54S+llEy}q`VnW5zMHQw3g
z`RfYbxhQmXb%6>-y_p?Lm!|Q{STyV`e(rX6PiLEkj?R%8hRFqAUIa26Sln;dwKe<t
zBIkBK8+S-a#U%RG^XSvl(?6b2?tk#%;o+KgC#5Cf>*H>0PUm+~3cPVXb^C3@njarF
z%y0jouB*#iw%c~m^Cfjxe+2GVdMNa+KlS$hKXUo`1&driA7EQOW!khwzO&6TuIX&}
zw)XM5q>pEgPq<=eIK#k`C+lE2!&XgQ-L;bf-rU-%z2y0iKcCM}oICfdZ{E2RCmN#G
z^1ZZ_I`ptW!P;6ndV3!0VS^13IuX0ebi<GEGrZgJnD5We^YzC%1eF&R%?PfYaW?J7
z+p?Pff4^H)eo|@Ul@{B0go&eee^;33@6g}`v)K>Jc2`>4e_eg7^H*q!$=153C02jK
zR`5*EW#8ZaN{}<<?<+YgyR<VBd%j+aesObiy2Eif(=3rH?Pm+#Y=3sJ%`++Bikj%s
zrAtAvzq2Lj&ySCwh<#F2>2Y3p`ss`NYOCMbe_9o~dcw46ZD-D$nJ{npzPg`J#Z9uW
z@uZ)h*Xp<2IWSQ0yM+8#wL@p~wma*HIj_E&^zF^fm?Tgm;7;Lj*+l#L6~9Bb{CYY)
z{=%Nh&uX7*-j-Rfm;X2G)N7x=TAOB_dVS~0uh1nX*<$V1Eo&9UwyxhAdw*Z;#>B&H
z9x9U>`fl$o&(FELOLW&&cV|JhPRBs&!044Bj}A04GcfFp>)-$H>-t3N>0ztCuHIx@
z`>O<0OuVgWv?zNcA<=g5$;rt(Ta@(l_$I6Q9@?0Ee8KhC(!NfC6T?;?-T(h@KEr{N
zlhqdnXjJrd2sm+MMoG;I`10zi_L+$jGsLEP9`)AW+ahaS#=tPI{$Hg|#0G^o&ud<<
z-EL6y!~;}f+5P+R*rM=}%Z>BVk%57NYX0+jEQ_CotTdlEe}4a-J$q)%>bNTqyxi~T
z?EHP43>Gy%4AgvQ9VvEc5peRj?7+#IxnhO4)|xPFF})ZL1_{d|6*2udnTel2?Y;8m
z>gw=?*I!SZG^vT-{?CNjE3Pi}7Ju^esiM8TeHPaZ*F(kUZQD;yR%d3owkGnhs$`3R
z69*^1mxhPIBCVAcMNc@?{N`{x2s_@l<lEcZ$)~63zPPbbnc=~aPT`6_ACDLQ{q=Rj
z+{vktH9sD<dw6;}mX(>Ui`&b^ka2aDXw<eG$*W)04!v#Ww>xlQp)(^x@v}1zwN?l_
zaVV;6c{MxW%gf8`|Np+P*IcMDXN8y6ysB54Q>IQ;G&B^vy)D=I_O@JQIp^tmu^Tck
zt8K}<E5$Hj{`~jm_m!sb$yhX8xpF1zxi6@0-F~+$dhs0dK>7J~zcj19ykKOQVNtj!
z{%QfJ{lc<dk@M&@-RKLu%ikNgyCr#EQ2|#(F?!+*5AK%Ve_DFaAuCJE?#Bb>Jl|(i
zwZom(UvGc&V_&84%9Shcq?8<}zt{3U&og-Xj2RtUv#&ET=*8@4xE@#C`@Dlgv1P)s
zW+5&it-y&P6?@~(%(s_k`0${aAC&ZM+*x|0&Clh_)R&c+g{_N`ykeMn&*d<WoXw2g
z(O-^9=RbIIa<YxP3x{IM5j!sp4-Hq>AjA59H5Gf~7!GuaY9FdGWAnM&%g~ay^5(2(
zzFRUcvvG^*WL)~J#*}Ixp&-J=$WZ_DbbLkMGONb#+D=UFf4f?kziK;ivU1wqo7~kc
zuK(!m_WNuMp!(m#)06Y^%smB>TPAd-T-eQYU;D<=wCvgDf?vO?*@(?p6Sr?M0|Q5^
z)1HsVq!}9C-roNB!a`>o_a~P()LmWT8o0kJ?#lXCy}v>kR>WVOFP%1d?t29%J#Fo7
zAugdJUJtE31y*xb{9Ze|@$|!n<$YnR!`42kt9!Y0`YU<A11%F)Oqsw^P<t%X>~P`d
z=WTkX(kJ$GzF24eu+4R`v&rAyd1kp%ptcahf#2`<pD#AC<9!|O8~)|%>K875SJkbE
zXI1-9cl3tuh8>6H151)07_C~k*?iq^tD{Gc8c6Uks*7l9YTnpWS$u%g)zg#H%gd{Y
zbK;Q|zf?uzta-dl&%`OVFwAjdT_U9UgiCb_m*f&7)snF9XOA&)NLrh4>E>)r5qrPy
zw;qGT(jY}e#f6UkN(D?DEKO0-27Izt*p}bl_Djb!`tqL6dA8L_e}8>VoNNBDbk@SD
z-U|$FC0x=_5bjn8j6N-FeT;SWMUKUe+^s%*YtJ$tVBQ_bxzT}R=SkjUxlK;1nohoK
zJ)YNm^=aejtcHt19zv3mmzVi62kg6(^Ccr<f0wB5!gyEpSK(LIA6odXj&(h+RIlVa
zi9b5A+54Ns`8Er>EoPKz<>6|Uy%+UM^iEksZeB%fnnX|7j-(G?SNH`532i@=8XFW8
z^x@_5`HTGL+c9o^e|x+Bt!=s8M~)mxa8lXW#Tyc7H``R9_3VwPL%FwR8Fs}6RjfYw
zv)^qar$^#*v5-5u-LexV9SpnCySe^<ofrdm!{0ZX&u7{GT^GCi#;=ysnkUnXH*dPp
zy3_kcYh?1xDJ>#p?*gZ#-V`dkeu$^+*P)oQ#A6y}xxd)H)!Ym$a}JZ5J;k79?!E%f
z-CHN5-rU4wX0F^kclPd<xdu=2w*Aay(tCF1jL$n0^SnC=pFe%Np%=TWpr1M6_SWp<
zQao(a5@%Gk?ydZswk`Mewy(9D-kb_tdt*uuZ;s;WO*tpM%0ir^W>@d)IeY$8LNWL0
z=&899r`1$aHbkF}n3j6_Mr@>Jj#HH0ZqstT+0g-IpCeM=v~65_BT#$w&vx!+R&KEk
znVFfT+pKGUnS8%B>+G`y=cRf7YGq#$Fsprfalw3Vg%$CxY+qM91ngh6zT=Dbwiexp
znFskiJd)f~byLFMS>5;eC3<>V&fIfpH6@$-=bTTy995dWnJZ%3v$~_3o)=%f(eh=j
zVx?Va=7;_HwtHv%w)}l_`u*!S*ZI%4d$Te5IFsEv7p260Ionfx)v3bK75|D16emes
zRoZZ+xzTxfo9BwwXvHVnyslVz9N8Y#`NYe^keRQYeL@!l1Jg{os!oZlwY++pnGSKe
z-`$ca%%EUrC#USzv!dK7#GGFzi+4^GyH640fsTg;uTRN;x|LwUB-PKxwO*iXBBxn1
zZ&oi)l{WKMKW<5e8@&b<A_Z9?0$s8h)~^{2mWMq))+-&cvq*JU>Fc(Oi`|vAwNK~I
z2;Q7_)}ZuN$de~eK%)kU6?s<$9W)qRiX@LPD2O=gd^z;G^k7!;A#KycJPZMcGK8jX
zZ)7NHmdsiyBQ;$%&sR2lL&del?)-P^|Ns5*>9qdF!pCkYDJdTWTwna28j#-{t-JGQ
zzEG}I{r)b#E9+Opw>sDUo+^~JRmy0ta8fT{7AM2*b%I~C4`gmUs5|B0nJL?YXY&eh
zpRQk4_jJ8txkldEiySrgG&5tEytO2xd(zBP+*Dme&AOi!{V$8t-{aBX5@J{?;IwdB
zbD(6Rsm6kJ1r2|He`jWpt9&w%jWu4qUsP>2ht%h@<{XV2N)OM@Z`F#h<=T-WHsfwt
z#es&E@2)Mo!?XPi@9v{K+YdKS%N3dN_1SELGxK;C)U3Su=1tE2*h`l#Z76ve#3Ny#
zU~^tOVW0W2PtVn+tUUeSfq~(0gW#QCkvfx|6D}TJv(-_zuV%?t!<rujH9wzD2elOK
z8Cw>{H+C+)8X=Xw|B>w1)wA!fjBgeBs{KyA?IV*A>y<m~6S>Y$|0Sxvqov6twejrA
zf*T3@b(%tyR_*M)&f0yC<-34w3D<v}c!jBsHD~!&AO4^F;=#dY28PO~PgFwo#8o_O
zz5afSd3~acfrjaZ&M5(_MNQ)i3ui6}nyC=5Vqut<0*k@J^YzDSzuygCx-$P>%iX;G
zrj|uYoKJ$xeWaLW;ut<0$}>8AlA(b;Y_hP?WKprT>{eSj^YZK&CE6Gz@<aYIe*8MU
zTU>w9h7AUv7+Y4xADwsX>iP=zzpvC@g)6%L?NXlV{qRC|g4TPV4-vJKFJ`|E-!aoA
zw2oI=9n`#F^3vLqC*GylvSZhrrj3UeOmNhi>il|=V}5{R(9d%V16Tyt9ei6<JbT}d
zN8O+788r59k{3&|Oi@zrVXOXm#P%3>TjGI=Ks%oUs%<e^414Cy?l(?Q*z<F4<8^Ke
zAGRB<Tpq0lmKHz%__+VK!7l&#THdp^<=z&XZI*jzvcH|=yyrp;$5NZGmh$G!=Jo3r
z&)Y5P*DqZ*o7-ryq}O`6m7Po+u0;_lUME=OZfx<AurcyrVd@a&>L|-zcp>7!CoYB1
zQxD8E7H+(@wJkiw_RojIch2wI9V;mMsP5_4iU+BC682oI{JMVS7wvn2`xn)T^6|b3
zXJBa%XL$V8Y*O7*hAV0_Qv5R5x3vXmw4G9I_6myL&*WmHs=_BbCCYkFZ%xP)7o~&C
zd}nJcRNxgqaisf@Dsw~v$L#8T-^x<mi*E*ca=w|MI#sQ3YVDD}T-I&X*VanjsjRHL
z({kIvq=YFr@}QSltwZ^?-xD_GTsx#wmUD{1toEedwhw>8%6>JdY^#o9vo257n>}&T
zk!5G^9-XIu`)C@kM^f-Hy_E8~={Gn1+4*L|5|wT5KNRLnUnl!lE%Er#qZ?(dN*>g`
zzq{MK`r)D0s^bxJ+k697drL+KMVy$Yzj}A-lB?y9lKbUsBN*P?|MzYCf^(<K_e)Kh
zcl6o1GfC|#yot;6HBt`$^>_ZOWwau`mFes1Q%cv?-w-Nub}Ki_bg-H|JO0uMP~kdP
zKZSeohUAZyf!3<3t))9-808O}Ywor(3EcgXt6-5?Kw(T$uda$zhNxAK*{lZ_q)w~z
zUEA<}srPgSg*T^9a4pG-nDZ)Hx@3EuiKTYT#h~mR^1Y(l=I{HJe#i6+3t!Eqd+&Gb
zs}$aTzs{PCPo|?=T))Ws?7JHql^;C4rR2@9Fyc(Pfa1lK!RjJnVnu&7E;YRk7m$4L
zL1IU|sVJXlwUqz<N77$ccddwT^>Y3-_0pTRNx#<`e${qR5ORO1Qe5YuB9wDyhv9=q
zhfCU<uBa?{=<l>ppkezZ7CrNvZ4BN;MsWt$85X_>EBbiZ-=0w;Uf)vc@1M`-XIPi(
zz1#OYujbQ9^*i5AeO3dFRrt;}EA(`!tFv3?GxJdR4d1qWSKWAf&`^lS-vB2^C(R8@
zoOB$8YzltzhJHPeW^#D_n@PvHHupMqdBr}|V`b=Pm)p{`<j}9p`?SwooECCtM<Mh3
z{r~MigR=F19?S12dn?7TAa-||fdtQwce~%OIy2kD*Y_y9d`&~z*;Dc7zP`Thy#Bho
z)fcs+(?dR#E^iWW;^<7B5-=fvJLjwVOrcLLNfz4o)LJ=$7RqMLl;K(`<kiY#v{aC3
zE^k@$mHhH!PaAemmEroi)>?EQfAc=As}~c#zq>18k|FT#%X0gLJ9bDoRPOD}yu9q;
zlarG{0T8t{EA;KY$H#h|{rvd8S3{f56L-vB<nS)!&E4JRK@TUW9eKU9>a5C_74Z`T
zIJU^ArltluIXdZWSmLyxA#5(w@}uFe<QR?wM9UOdz1a}CcEhcl0*f~W*-t;jtDNGV
zeUz`!i#xQn^aV@PCzi*ruC6|4->op$u2$;tvEJqwz2o8WwMTRPy}b`VJly{AUiEv{
zkOO|pFDn`wPySu|>&wd%=g;$dpYffW|8&FcyxnV$nRScnyM2FmH_>Qj!QWqBJzCwQ
zb{?0j=8@`Ub9HsCX?K#ExH5RT)6$@aH#R2Mv^youh|p<^TYvoN>FL=y!7(vB%?Aax
zwJch)ghf?Vm2s<TuXlncE5po#JZrCWtle4{9xTx=SGAlgZSkS}UEkhrzt7ij-|%DO
zx!EiFpPrtc{N%($hKASI*FXMvT>f~ca7e7t6}`AU91GrA$J+n-z?^nwMq}LGs=y*g
zr$^W0>yLhVdV1oVIX)*@IcG|n=Ow(owROkuce^!rD)5&5{FIuKp1!#H`#V!LaZgWA
zMt!y5`z?#|@9)dFy-in0SopQ5d8Q1LpO(Ueg9+x2Sz(UJrR-bmwjN*C?8PtfMomL2
z^z=jHl^G}YbUJL!xheGe+S<c=zu)6t@aORR8HUL__z$X>)U02=UjAz9ByORsDKQfY
z7CdQcaZ)(x8Y?v^Am_%0h1UdGmK3f&K4}v}OVNupK|5sR3|3@MjAV;z<Vu^p<<_g&
zvQ{Mw0za1|eSdfN#HmxCq@P_`6KU)-*GkmV(vp$4c$N3>Z*MoIo}MNVm1R~l$1mL>
zKP_*&bliIJ-R1B3UhLTCbt^SB)%0C(?EO!w;@skTNA^^HzOXuceZx6-58s-TM^8=F
zo;Y)6=g-g2Kg$YbvecYBTL15}yv^4u!6(k0duFX7)Le72^<qX#*y^KiZf<72wSFO|
zYh|_6+>0q6Llu(0zq=cAamVKL^Ve?L-B@I>+;48u{F+am`yZ7u+}N_k<l4&;vmZOQ
z-rQere|uMH_PdzJ$9lOd?iYyu?cB0u%NDKml_s@c-`+M?I@-3#Rp;yKLx-I1{dRZW
zKd<5u=c{l-m9Ss8l>2R*{%UpoeJua~!QTEWU#Cu(aKLWXy0t-n)-Aflb({6lysrDE
zv0rxw3pzEk^FOP*x4T?l&1Z(dw9lZaor=F-uWu}Q8I(6eIKVFdQLp*Ej1LCO9ezxk
zHP;}KDeumXgSw`-r%ao@_4ZrFt(RYa-2kG?t>#Kt6eut}I5AQA#r5^^Ti;IcQZ>uF
z6Y)0r?yl0u??Qe&J22sel2GS{?Ca|m^d*|jepq6aXd>k-B5II(%VdsK>8e}D^LD>A
zOG!&hI?^F{V?(0ziF2NZR`09TmHC_X@6XR0+w<eM_M2v3<MFrsDsrqxvU#p`dE1*g
zDqBLdrruAV{j11o?hM=NvViy1huitrf85y8!jiEyszSK!$_=$0)*?$*KGt2Cad(&L
zyWQ{YKobqs-`;Rm1{FR&#tRx-{rvp=^J(p@r=I)n`Sa=Yg{-Zndi>H}`<A9XKRcV9
z;f}=duGKCRe|^*yy}d4Wx0G<#tRIs))8|#P=|*qkv3RLCQC)yTVfyK2tG2s&?YH0Z
z{jv}}di;3!&1c?f&(6>9*Nfd1u)oXj>)Y&yFT$_tT0Qhu+q8M}#7UE!{%V~neS1qZ
zc6S-?FN=k5!Vj!X0S#q&cz7I$xjZlHcA%4EljskZw+0@*zN`#yZU)z~=dbv6Wp+YL
z+KQ(_9W72CA!$FZa(uT+yr`uR8qGXwM%?6A(`Mb>S6eOMo^z|_@6qe^Oc&Qin?HH>
z?9r2xlP_eLfTn<U9MXQi$zi$affTdDE3O`TvB30&^y1rjyLm4!_dmWeczJ@+%nM7s
zr+=7tA-6F~tx3U;VWJQ3=GBL+gFEi6=lDO%G`sD~my(+Acgr_K=rHR4_4IJ%<m8Ol
zkifX_|G(-NU#nD9RIc2ZCd4Jg6*w`Z=IhmPi^@+a7mly4-^*$K#*ee7Ox(s#Sfxz&
z%eCnGK1mKmu^kV&4n9A4%KL1ey#2gsvvM0&hp$ii{Ol|Pled=AJRb%I8-wg#fvl1X
zE3RIUO4*S8<=@rko<7|bMvM#}4kVR0WfmTee$)_`((IP{M6adg)8DQS&D&EJZA+PY
zWX>-YVFpzZm68fyt$*+T|LgyKGsVdChXwC?bHz3%Rqgn>UTYeHwAvzSvVFB119&z@
zgq*GW8eX~brgr$c3qhNCKOAJ2FJKkEeED*Au66o38PM3MppRN!qJ;RHvhtt$a{POo
z3b(FaF!6?Q=A|VZ>cVzBDN)Q*k{DT>G)>q{kL0OO4*|KzWuDW*2QSaLygjMasr&i)
zd47wT3>pg+79PzG0*!k5%r@g?_;9cK{nhIK0oP_H#E4mls=Zh`Rc=M?-8)qubxmJO
zTfdIZ+O}qmPKkQvlWDrqYzu16WZvIbo1Odnf-}FX(vqx>1(#MoymoS-NmPQ7(S=!C
z1wM=La;_DRt57_2vZY@lsjxL((m`RWbJ#{tj{EC9QZh}X=CxT~owsJvjZe3-*RxLX
zVVDvy;lg9nl?(^g&IC=3)_gd~&iFojex-2f#~Zx?+NBYzE<2?2zrWF_7rQIr@-p9;
zy<LC))cDLaQeE>rM+Y?O|9;<ZJ_dv0XFl^5ubdl@*Wjw(czQwGLFJ|vJ%z~=k{)c>
zp<uqkF}9mUy&+|)iB)7|<dlF36CT^H1XVMJIX4U#I5JjV{dIo!irF6PT8}<G7B*E}
zZLjFOs<*NA`<AB7Hr1~GS?hgv(yg;IjoBS4lf=#mavw{Btp!-x;CwLo;sFhVgHN|O
zy}abGZd1$N_=(G!3uh$=zD}HQaV@8i*OWD8tdOChL~ji*FRy^0AR(U)6}OM`LKqGl
zYUO5}qRz8^|G%oOx$9zfGBNPZFc;KN6p2zjA{b?Ubo-Sx{;(ED@$p5b+1C{8?d2J=
z-Y8!@%-MX8cV-Yzhls(gGZQR*HUxz^Ivq@IzNpt4r@Zu{pUM)A$XuyOlP2xBC{&tx
zLSW^#+}lcqhK4f)JbSvjmL$EnuyBS+rVzt}so`-4UtV6m^LX9wx8|UM^g99z6Q22o
zw12$krDUV0zeH;3f6-Y6&m^{7$w~0?_BPDEro(WcncuFXr-x^r@~Uouq=n*n_dTp8
ziWqfrD9u{w+w^qf!3@SLQI$WB)c4D7>pCrZd6Dgsg&L8nQ%y?F9nIZ-SM1pdk1buG
znd2Te<y%{`*%>Nctz6E)U^big@9*!&*F<jKVJ*r#*E~?SpH-_<La3F^s+mzNBQfl*
zm!`ya=CIw;*JHvW=04nc#>e~YHC<(8X8XTigc%Z!c8S`!3v(Enr0MQq)AdQ?KI5j%
zVx>Ig%k)_+hm%{QmK}L>bMZw>J-))i!j9K#nqQ}Flj{7geaYkM)HRdT+SLjtw>?<9
zs4P|1y6i~y`n_yx!@3W*^Ml$TKOVNrui9c=^P^zG;W=6YD-*u1$f}7@nC6&V=qx;I
zbLi>qSKe$$JpAG7_4s1%vzKJLi@L@2pSA6_{eGv|Fqp+lA@Fd@Gi$C(D>|ka?3SF7
zU11^gK75Jbr-+5qR&IFpJA22@Jgx@Ch@ck@P3L!T<byg{qNe3q3<;;EXx<6x6&3E9
zXIrggZ7t2<G(Es&;;U)1YTs_XeqfW%`H3H2e?D)2oLhen1H%NbrG^I6n*^Ma&YVq|
zntGEfo-gBQ4ZGV92ToQ_w-6Q4eU-v{tG~Mi22Q-69JN;Le(iTzxw;>T^A>gYobo=q
zD@HHxpGR=XyE~RPACCw#G+4je!3-J=XPy@UnrNEvYhg<hOZWFBiyrOi^q#KA$S})1
z|D5lapDz~o7kql+Y3JNC<COQ=fB$~J_brmRva|TP!t~QS|7}P;EmrdG&dld4z~j@M
zpt5?8s;J&{?#1r?$6j1q{IKZms=F%#Gzy-a5Ulz4^La;qzk6Y!VH>aXwG^T5W&5tY
z;kW<OaOFx!-lkvA&dxTh_>eGfF{sNS1?sl1aIsklnrcfsJFE5I-`|JRHW%Jj72@2M
zceiV8^mZqui3ukrDE@e}`TT?l6B;H>63W<m%cK32^jyDoclp{WzxS@xF$JxeSh8$c
z(dW!<xwqR4laGCn5e2Qbu>iH>HIqDDk5&rj@BJzU$|4L7?R>Hua&8*cd_HR)pz-JW
zED56&j<R=mI$K&;{(L&E&(N?n`?{M}N}TQQH=8r=?XhfFw(-gv&~lU?9}?$Sm-9JP
zIz5cenhu(aT<FTl%DJ^eMfB>~*%=oXv8J7y(<!X(m+<V&%#4eReqGIF=ap)iYhAu5
z_x3ghhN)gxRo+Ey$+*b0Hfrl3P-B+iPS9p?{kSKVn=Vv;y&C@UAiMm7@AvE38Q$F5
z+ARcH6Qts^Y11Z+g$jz|*On~WRw;bH<}>d!-RL$xS*t6Ra~zx54yG6t?$?jqB?6jI
z*NfR9Fm1<T*O-`?sY}!3>;Du^nL72OOk_sPz8Xno_r4=dtlSI?Aln}v1}%B`$=f5~
zbm+yMoyAwLB`T>1b#-?q8b}<P7BFSXlm$zcsDMfvF7F`07kfH?eYm<_!oJRiA>sTy
zThP*yu=R1WyACW4c)B$0^XJcosi#El>?mx0exhk}-QTJ&udnmZul*+3@F_~=`~7-*
zHa?jX#VIWULUHr!|5@%Tf8Q6jHcC-dm9_rIVfhblHlI&AIZ5@#jzZ-=8Ouu<dU6wA
zOrA1D<b%*#UP+~^+j65-)YRC7l{y0z*RJ?`JAc2Txw&}N-g(l`Sf-qxec|=j8HUMj
zy@%&8ZOyxD_3k;hxSoQtGP9(lq@%3ytfNPdhThy(_qQr<pKEgAuP>P;Z*NWA{yF@+
zm3f-)%b&}ZF8x^cZrK+rX5ZI8*)FdS3Jzvu*#GaBcAva`-{a%`;kVZnKR*Xr-gJJR
z?Zi2AdgAN<iaK1bn%lVSd(GjsyI0uuyyjCZe;mGb8)z}r#7{@=Z!GZ^)LXN%+Hd*#
z+M3&88QK|=s|q}MI+LA4w%ttIocQg{&AP*LqPAo-N*bp*tiR4~a%QDj+<I}p<&%H^
z{qpkiiIXS6MS3o1UQqu35BGJ)Tvx>GsSpHBV+Uxo_$|-=P<ZOpsSjT+`zK#q<m%z+
zxpM1U(ERb=@Ar#~wHOl4&N8idzxVr&`|&j&U3=tgcOCrb5)~IG2U=0Fs4jL_$-zC9
zp9{X<EoWwEaZ+3ol<AVZ>dyMCqKAiAcihbr5feM~wyZclH8nNk+8W7EpFSlmn&wve
zch$!3XLVO20`{-6pXkx@=+UEw+x!v+4Bg`Te7_FG=wx>N<#M>u&Jh3qE!(*`9o`+a
zG7Z0K0&=u7I;~qm)@<`kYA*TmA~0-Wzy^)?#doGVEllW_vz2=D@b#3*lOLDgdv|yD
z=CsY0DaZexum5+LtJO)2!MgU>mj!)O=g&XSlwe)*;y~T^yXCxAZfR+1-(#Y;<($mB
zy-jz;45fof8#mPc`ttF2dDYLS(|_`<jyihu=$mtMt#78Dp0@Gwa{u&pKG{=$e_#JH
zb>hT><u_U;NEjDAIT3X~ye3}OswCll-S6CQ-|yEyw@z{5SQ&c3^XQ>g?!WgKRE0Qq
zm%hFha71jw<Kz9Czu&LlA20Lw*Vp8=VcE_7kwHO+`sD5Jy`NG1{2Z^=xvARWMaN&=
z*=bz;>&we3`N!Ae>%aa^zOt{j`rD6>j~$PS>P2tQOMSolz1{xn8|wf6dviU${%m<h
zsEl3B3|}7~o)`T!NA(*W4$QNyp7#C&r()o{4-XHoIhm3)zw(*nw)+47ay~yhn_Ziq
zd2tcz>Z@5dLCb00U*J?!QE>FXaxH7CK=;wD*Jg8Uzqhygaku`y1DjG$?>OmrzwWp0
z6fafKxYS(h@@uavqPOR{?yvj%=UG0()9t&P0}C^5{QUgfFzE<~h?v;5*AlwX+m7ri
zeZ8n^Wn}wd#+@;J7Z<yOrtcUU%HG~mR99z@um5ZM>-+or4U4NDmRLMoyIGcb`e8<Y
z+kU%(2M#_n3>MxC^qp@fTYj%HeeZYW7Lz#8a=v!?I*zqr-JtbVx=~vW7@xOkZfas$
zvTWI-!~FI~o}HbYeaBu`mls^T=|l>Bxsd3@(K#a^MU9<LreoG>P5b|Uj6o~wHi1{>
zy;7ch@`h>lwJW>wGcz@<OJ7})S}&s;xk+Wk4YyvY(5EwOtG*<hpKBfdK6$QXaogJ)
z8<orFT)7hR?bX%Qjz`7U^xOZNA#0X1<NoLD%gcDJ%iqOpTe4)yLw3EJNA+Z^r=7hO
z74h%&H663u0}N)lS0c*Z+z5O#fzkQK#^UXpTFqzAzrS^YthHA6-Ku?c%Qba%Q{V4=
zKCj_@kcx`R2D$#_56^cC2z@>`*ZO$W+OTg+r^h9^_sN`8Q&HKlxB7dUy6>zbQoU|v
z|Ns4clfVCOSnB@I&(DWf`g{8MrJ3j5IdOQiLd%2)ttu-!+(50O--o#MH>{1`{;m4*
zyE{7}VIZy-^CA0v(awmC5izgZPn6%UHD57f(xgeNZ1e8#tCgNI<?a3b_uv2Ql{VLV
z^f<5n*Gu(p@9Y0t-`<*iUF-boo9XjYySuxatsP-=cvae(mivoztiLVh^7MM>RTjc@
z<6Y#>9Lep`V%7?(&3B{D$2^;zzb`R=_uFj^le$>B#aO=I;ZQVu`swNEH|g_hkNx}m
zzCL|^#Usvd>vq3OvMzsjrcc&-+S!vQ6SwEyK328&UPJ%&z18LK9-Usje%~o09^qpz
zI2Bd)NaY4S{QS7zepA)nd2g?*44%s0+He2Q0#uG}PECC(?`ocN<G{B!H#Z;SpD17Z
zC9wJNig&9*j;{axZufe}&ZE0ZU*7<=8glNr*Pi=*MA$#1QVui*Yn^}3=G&j2Rrl0Z
zgh|exKlRWyuhXg8a%<mY*hN2>t}|tW_T>Xgsd~`?iMQJ}a^?gb3){BuyN8&5Tui#t
z#3@rk*7NhXOt|ss_xt^u`P!Rfx8+D$r=AiqQ&nxvy}!@aI_U^U*}XlLZ`9}491;^1
zWi9Rd@};Eg&ySC9W*VnEiI^(3d{}-_T~u^!#Kxw#_xION<?ncVdwaUEvGGk=>#_|z
zhd123c{AtqG~Lx(Zf{6*Za)9_<?{L0ekp$ab~``)e*OQyY_hvQrTi4t4l}Vhck9ia
zos(;y%}l@1($b>!(OX5x%-r03i}Qw4W*c5|uD!8kYN@Km^P6`}Hb`ukuy)72h?{L2
zbDUNO=FHt4Uhw9|My<)G4;zZ~2?)jZ$ygp*7qPKvu3<7;_5IrK8_&)%O>XCrJalf3
z<>c7CRi>|tb~@FaThP`j<m53WGsv^`JUD6}^4G8Ub~x#HpKRpPpp)COu6Dh>zFuBh
zT>QAL*qK#fQ|*5+C%7sJf-(^(O*`^Oa~%)boPK^@DyZqXS!-(7UeLPO+P!XlGAHwH
zZc=?w9GZQ-#EkRq%{70lZcTlgWIXA>vNO6L?#JzzAlnf3<_2%-)%W2i+2v~v96Nse
z`pkeYFD^Fk-tEfKX`8ow_TL|m`)^tnKLgFW=DfbP_GaDRUmIu6ocYH3{hq^hKc7yo
zY4_kzG+h2N<l@SNBOQVghDj`4U0oZ>-bSs7-7OYh^O3dTlT&%vYEg%uTtRntl^))j
zeLWy1MkXZCcKPMbw6n7mO-)6UkM|v&X`H?x{k)t6Pum2W<xfvfU%X-k$L;O;$G^V5
zZdmuH;?2#?%i~;|y}Z3Q7C-mPxxY^qB)Kv9_^Mp<j0*}rGYlC0?f;tWDt#?B>Bs8F
zrMm-o6pt*rb-QwnTLi1*h8J3*i-fuq4w>$V&10A(^<7_6^Wd7u%@d|iKc4ID=XVUW
zh-Rj7`lDmL(sghDf7`y_Q9<C!=bHjfKMFoRa;^DzRNSKCgTnW{zO&6L9yGFlIKa#g
zTD8S*^MN61`?93i76GB2387c|N<rhcI%3>mYol7<@B6*(SXnb0@1Y9|oefJ~1n@|k
z={$JqV*mF`@RDWA79}6=V>mUrr;(X`(UK)9FP3K2u8Y~(1X>yVdi{R3fVhpj7A$D6
zPEUP)ZtmfEw$&T*@7uk(y`8_EUw+-k8_aAx2U<9V4GJH*bR2y&;YhUj_P{Q=&8#PE
z-#094JJM7*b3sVd!Yxq?Cx-l5a6V#zh#l|pWej=AU#I4Oe|NXLQ&|1cnVH6Sww;`;
zu54~D{_*3-3olC|wqyu?kNE%ZZ(u+`!?Uxq+5i6GP+WM_z-KDUqv!MMk3Bfp{P6%Y
zf5H9tJ0A1xb5?Dc;MP8=%S(idRWEK&$IZ>@pi$Ht8<W}n=G(<4|IWL+EAhpJg%iA%
zzPPlM`}@_+>F2G^tBP<XZjDl$e%e{AJ}^)a)KtB?7Bp+|`~CiY&}`(26&$Xvt_4<e
zZ*0$(ulw<^U8?``Vt0O<PbZW;yuA;9czF2YQt#;#j!LZfw8W|7&gXAglevziwne>e
zIF-^A6mynQLVL;~^;N!Fb^rgC@A>s=HK>92e*b?y22f8aFHcX+f8Lp`zrS9O|M=lB
z|6|bNu?AjgGl!KSZLc(ioSFgx0v=3vm}616$cyRXVt4+1hgDi8s5MUN;>t0TcI%hx
z{rmg7vZ?9R+i@WwEW7Xa?XCWvbbnv1MbQ%vhvToWtP}>dw{Pd~mjx}_Z|9RO`2BXf
zvZ3L`-+P_g`8<4lT#}NMCQX|3$|kL_&=4}l(d0c{uP|O!RrSZq<?{<(UQ(T7S1ZNN
zC*x52FZ2D*=W;x<RwDeiUj&{MS?YVbq{eNQ>6{s-qgmplz3$75!yLVy408jSGkwjg
z_M~YD89$7y5b?Xa_Mw0Jxj6@qbP8`Qe;=23+nL{%W%JFRCr_SewQK6=xcvY3*RbG$
z!<(C%)mhH>2n5B0+6@Pr+5b-JsD8iqx_)CuM53<~hvGs9PgmCOcZ&Jn?R+j5p))P&
zcI?g~)}KE?Bfs*XQ6*+}z6D#hn5Y<T$-O<z+ek=AsNm<PRK3n0Pp8K_74`l2QDO7p
z0P`J#byu#0Y{|cGr*fQ6b2r<fhhZ9@Z4FN5<$k-hHQ*IvZye`-X$dApl^{)*eSrab
z%u8y&PRRLiXpzqSjIB|IrLRJ!Oqs#}>O%MZ{QUg!)bO~Kr5=-S=CnoV@V$&xb@KRn
zZmxBBszmT|zqvaq1@@^lwJ8cYd3;&0<dItU(WWzJd}M5^wm25Eb#-?KhJ>*6A8&rY
z|G!-N`FXB^fr97e*>-PEKmX{?&f*<KPrY6+uU}I8``eDs=d25_$CfW#vgAnqyd(Gj
zeKY^_RKK3{MW07VLQX)Z+u>Xbe)rao{$;%!ho_5&Z$2!bqghf=ZYr@_NJ*4=@$t5g
zx?YCq=VWx^_sz+^yEQv}P2^@ae%mhr74z8@m$-$mi&;6zVS`R|szk7p6Vv^LLQWhj
zSye?f=HI!#JwJZQ^5yM0rpsPUnL731nVH5hlM3J6vHbJ<{{J=yg^UXpf4Ak{ess?I
z{gX)@>tc6@MIKCfb!8=J2?%&i?u|{U+-`j`l9QebbMmcaDOxU;x0|h0hbgpEJZ!3j
zR3q#BGkcipeZZs2JKU#wsfMkIXgqS{NI<&}$I64f(&npF1fHLtzkZU#ozm;EHSJy;
zic98ctYk<qkl0Z0&}oikvD%}<4R6Y<-;`N@sj7|WtN;6}6twR6_V#@CfI9WX`@GM7
z>MC?l4?euM{J<ifnyEU+79O3@W5hG>3is;xddchS<JlQNs{%o5&(qG#5M0;6sc2sN
z`|b9+&k9^zT&q+BG&MDA+C4cGRaj=#1buwmZ@;Mg{k<9H`En&zvigP=bNx744{gxB
z8g+kZ+Ty<Je9gBQw%=k|9MrQ*%cbIt)r!sf51IBIPyB6`SG~XPFQ`iT^7^{|o{vJ8
zSa#lhr&X?4_3h0|bN)yBe!qKc?c>Cun0V>QWUgMfW>8IPQT0V5pY`mMBFiN~nmumG
zH_ip#4ccs7_NHTDlYiU}8M%%Wp(}O!n-1=uzV3)O_vVkug+KRn@7Q5s^ZiaSXs%{u
zhODAuK&<1=ZMnC@c5(|^zt?XOaB8}`WO7&j{=Z_(Y&;HeadIJAqWOg{zE<Vj*&)cv
z%9?2FUsq@6)+5olX_FDdfgOd9KYTnczc_MpTB2?K5(A!QP}-mW|Bw3iIe9@rLSgIU
zdXLLh_dI{W(djG7ed^~V4lNCL4#g##)aHh0h;YU1EMoor{rz)OzWCC&hYlUu5WYHY
zf1RzG&x{6X^E?KIXXoZhUpx77;-|OU?<?8b%7S_?+uv?HE_e9V)z!)ATeY1QHLPDS
zN564JM8LV}E&+~~P8^C;O>Ztal(#+k$A^cZTz5Yn4Udf0;Hfbxa+c&_J2Tt7|99=t
zF3}Tb&hY%MJp6QS`Mra4EQ@zo8|X%FbMf=zdv<1K^Nt-B^A;<sRLR=c?Kx$j7Vl^o
z&*aGZltZzFWzk7BQGUB03cE^Qhovvv?NMkox4>#{!0M}lmho%!O}QCVRaIwLm4cSa
zZr8Q6l+3=qZYk%&mXM%W$DK=-EYUhVW5og)#g++e8IwF+H?+PxbTG$E+1gsVwY62y
z`uT^4hZDEoW}KpLTK(lk;GN3na|NyI4ZdNo4{hAsIR0yiP5G=U7!uGY;N)Rpx^szA
zQ0u!_r{9(>cJG(d(9mcI(ds>6sjX)UntlK+zZA60H&_?Hzwdf{y{x6B<&VGL?=v!d
z{P^+2*|SHVoSa<Q*EiwBYEWQ0gy?8I_f~?qwjis>v-M!Yfk~>~1&@w&c8Kp<-5sLU
z8nw19Y<2Gq%kHkO4T*=@&djkiPI{iRB6zu<qOGlLJD=>MZMI)7I2+79>*443%+Sb5
z>G_F?%5{flfL$#BarF|@l}iqVzsS3|$n`>oNlklj>*bd{H)6XYCQqN<E@_;$V9OQ}
zh6{Tti$Tj@*YEkn)yt^f8&=BtbkgL>f7=W%{!w(|P`s#cY7&?J96s|SMwxS2&&BYm
zw-`yfe6`r+w)o(^z11JDhR3_UWxx3FaC`E}Nvcy~?u0}|bx9hhDd_9>-@b+@_yqbV
z3JOIbrBs!$Ef1_2z?qk$|5!&?>C(M=++U<*??|by(TZQC*f3$E^WqH-$!1Q14rvd|
zc7Oc$`#ostGH`YP!&7ak$hBc!S`46R!<R2#T9m#L+3veCB<X0EsE3cw6GJ1Xrr>bL
zouFmm5;heEqEnPx1cZziJ@#XL+z_^`?fQd;$U@`7ggF~t@NB5EDOhut_oTb(hLtT-
z%Pu=D`*!GofpegHCHqvbR{6Rgjo+QhOFKhK-)0=!q$8#u*E2o74x<b^SX|O_<^IFN
z?SI=01HqZ4*H=VElt(5?^NFACowBoQANur&$8jjOuzEeboNy*|GS>m_)j>SH7nr6;
z20os!^3R_dn;#FF1A||zGxJ+69JO{@^sB8aEsLM=Ec2b+mV0|!;q6~vU$=ucG{o<(
zvvG6tNLZz<VV-b+VSl0zB)*dm*9RSpSSYmef#I&i@Nnb4&Xu|=8K5=N?Y38C?2Fc4
zh*h|gSAONng$|L`SG!gQFJH7|Nz3hJ7c(}boD||<VUkl;UQ&e=OG`8#)%&#`X8WBg
z7&7UX&(3|Wpfzj0{HvQAqawdHFF%^(=;+9JZB3+b&Jw}Lt5@Zk&93ZK4w7hV3|kFa
zwXieS)6>&nrcZ#@R2w(96T0E+Vm|Kv9k6r3ojW^=K?Br~Qp@v^?aB|kVl~<X9<@Cc
zX@IUEW1jHC_J{!wXxq)2HEU+<dZj=8v|;tPoPCEoIzT1q%a<>Ie7l{$Gq>ONn*^vt
zT(U$(PFdOaCcF}R{?0BXCFMc<|6k(ZG~kr?$bRLADn^bA4=(C5F|w>>Sl_<#(}ar|
zN3O08|9Ht;pH(z@iRM(Vl(aOnU%N!#@A(Wawm?O)!|7?d6DLn@wk&?8pr_aO{Dntw
zP%NnYGR(T7ab~{#e6CZ1P8^C`AK0$c5I<A#^VRpgMNhfJ^kO<(yTx2%pT60}(dwiV
zxrxOoQPw-^=!!>=k}^!BBG!iGMHdwrU0WCH-MYu)Mku&!&=Q+6+bmb=tFsfR?yd0G
zI%RKBeK2J2MFELp+|Q&GM1HD^*Z=>0|Kir{@INp8>$$Al>{eXO(uv(A!Y!urz<SDr
zTibG_|NS^_zi7vf8Mn<UKczf*_DspnZr<?|9?2yiA05>K7ZufSw_Z1>_>cgOgcg?0
z|KK%AYYHkEI;0C2z)O%^in7zU-|k)NJw54g8?WKsS6y-I-J_zUo)lT$U&!+I*Vose
zYWd&K^Yw?eKZvNQu_-DpHmv-VGH<bRFXLf@P@#_b_5Wr{A9Deh@)JHhv|ZWY!&!N#
z$YQRXLs;UrZO8d0U*uYTobk9RgB!02pP>pD?-nk@>pg{*5Asyo!|Go9f%ca~MM;Tp
zxjvca-oe@G#3NzAP`2Cl+2k(d0`YG7{aVl#nn{x<SN8NA+4PF*)K8&~!pFxBCKy2K
zFBPXB>w_5&ESwsmTPH4{zedZ@go*o38Y|0=&=>DcOjI_E*YRC__0Y?bV<n1v_Uy4a
zGsBR1>C&YPpbk;;zdt`Kem<RkaZ{@Iyv52J7bQ7b#tT8}t_d#$MLk(1*h`E|?^Lnt
zoI0ScZp^2flEuc>&e=74_tB(<yJzjVn^&>--i#Q=RZEtzY)(7t6c;DAeQoyjbrGA>
zc;%{ID9R}-Uwn6GXK`qoAtVtbRc0uICRc8_xCb#Z#98xXG2h7&?(r&|``WScja3E@
zk4c)ch<Sc~gpOEBTH2!*7Z)3bPG4kJwO6iar_Hi9hqrfkiwmp!9hqsIz9ZLbsgQQq
z8i%ALrT&Q%GlGL1cXnM}u@Y2c3JCpOq`s1Yq2ggtg~BAyfZu<)*!0@Dm1bU9e|LhS
z^M@CU`<2wy)%PT}ab8VR__{Uw`nnmO7O%B5p8xiPMCuLUfS|<fw>MUQf9G*Tc*^VR
z>zN%~j=w5@e@`}RtCh;}uI}!`lT^L`v{~QGF<TS0l?yb+<Z(`r6Eq458d!SrBn7m{
z!_j}5tX+-8zhBq)gEnF)c5Nt>u&b#EQ5O~EJ|$~YA>g-svlq0zFyWZuf~)i2lv($<
zCHwTf<yYT+n|EV`%%&ww3`>Gm-fwr=7}4X}E#{~rcKpl)y`3?A`)Yqby67&?d(*J`
z>nqW%^7A}@{%<{1uBat8<@e?J|5_ZI**?mufwt8hQhA`7x-=-$XT6gMU)5f_H|ski
zblgIE1Gob;gt>%bv$Qmx@BZxo@%ys&|5l<){K|IA`rCYD@$&Ne!PjbHI2GdFrAwEB
zi)IeRI*pYbj6o|!AhQo`3np$@6%p|6!NF#W%1=w;9WCz%*nsxDOy~ls+xO~L*y^d1
zxP*+3_sg$0>Ny!6kO!KFwyib;b;Us4QUNCqo&`&k+%mRC?Q>QzT(hjHXy0xD&^QRB
zobzZ73=&knl4V-<{vPl8>)Z<sKCF7Y<mJj3u%!$KR0WEkpIh2g1l}{G>7|u);>N~g
z(DI*MExEym40u?YqO!JD-z{+FDdc&YW1e@X;qb!`-U>Ey{L>vkCF<Ml_m9mjzjv}6
zygxVdh{nne#iE@uWxMB2>iYG`BH_x41?_@ztA(yE6_wi^s6CIBfq^#=bS?m&)>2NT
zZgDZ!Bg#BCCMvt{*e$>S+DfI@C}El<5?A?D^vlc3?awtpJ8>^vF?sxSO`N$+T--UC
z%Tv5kw@y7fH_ce4^zECC2U2nu>F@Gjo9e`}Y@1pU@03YxvUUru?`OP|XKwfJNAjKz
zhqyhwy`5*9<$|Yg?(eIWFi2ovNI2dnd*b~0<C{`X8&rNu@zMb8H$2qMaermPgKaMt
z1Vt)rtxA~W{_V|1KfURPUw`%Ik!a`3VrHJaYn$!e4H+dHv_vno7$3+8yS-ugDGB{O
z0!|VK^cwg6D_so<+K&GI^;;L*>5(*UvepEpCXWsmi<JTnYXY40HZ5?xe#Ta8h74E6
z6ho62wk=1JHvZQN=;1c&W|re;-h7Z_y%#rYjzMH>!kw}R8K(^0v=evDB4XustYMR2
z)mjmnwBt;g#U7p*GwnM?%sN(<Qny#X+V(1;q(ecl^1+5341qt(`tP!IPi{P(*?M<%
z)5%4RU(%Q!Zhg7nN_1j*mBO`%1mjZ=w!T<!X~%-XTMGquCSG5?aLdVr@)Zx){rT0+
z-2L{n{{AEH?(WXk(b%4KRjcI94MUyv++bg<_-L@)iD99`g@z?f>$Zg}PH<Q`(J?=D
z!L>}qW^T8s!bRPDK^clyI~H7sc(8Hh!buqqLtiZj<$Sm`GeJlq;Tjj?RDq(6QdO<e
z$Bu<C9bVadN~P`UvPO=EIU5f>Vt8QaoGyAeCB%V&l_yBkM2%I(yx7!jQRCSRhQ}rj
zdcn@?zZ_T+<glo48vlHu4#jXU#Vw0wUAHedJx$knx!+uHQ(C}Ds&#{!=+;<4HU@*d
z8@^T<XPsW~2;J~ai;#87&{aDz$4z2wnZ=%>8M$g6u~XM?^On9l_3MJ2xf`tJHr(V<
zXE?!Q5N;d@-LVk!Pg62$v*NNa8?KhSDQ)3NpYP6T2nhKnoV@+eyGaL=zA-SkL>ZR|
zF%}dbYkl#oy}B`kxz~q(@@eK1&hqzPU0v;59{|eG0`pq*SFU*6Wzg_x^*$rPJ#69<
zoq}qs#iZu47|oUBo6Q-vRy?hhgKf23S?~X=WkI}cjnf64Rs}ih?by0D%UE9_&|&Sj
z+9zqNvc(QdRM^H<w1&QKH{@Yn@4&P)>ZIyYp2G|uLNc`lI20Dmf^1eU<+}aK|7m#3
z+zm6%8qAh`8s3t6^-PT@mx4ftqTqCUwP_uU6Gem+88{S$I3MQ5%&&0v;V|HlF!;cg
zI>9h4qjcM+{u4dIYMcK)3ov&4*`9ukyEBHXJ&t+u=0BxhBYZdPsH|p6RA}(gY`&h=
za5Hva>&I#K<&8dE6MebY9_3|Ycx-eyW%Z1jJ8!b%taIW-O}H2t6kC}1@5r$+Fi*eC
z+V=5YPUOR{`HQ-<LCvL>7X6hE)^V&}7zRQMCWO^r-M-DW?A69J|H~@V9Q8IiEjBsC
zX~`p|%ku2v3mpL`6;p>50S+9DOS~lSu&J7a@w;RR`xvQjVUBjz5OIDw$?@uery+}{
zdgL~SGD|!W(zs$3F{h!U@X)D@L_?2+>Rs$DPJ${?Y+S7z4IEr+rQ#NINzG+sYv%Uq
z7UWW7II-YjXJV+AV))C4LS70&RSDa79t^4ZtNC3Ov|UqJblXFJr<o#3y<$<_B5G45
z3T7r2X)Xw5S`lKX@Zo&Y_I2BgnG{uJ7!)QPezC@&#66|q@apE{XB`y83Y}|?WJ%w7
z6@B(fn0bhtxs8CMPFBzQB^+GMyn2V%>RR3B50bW#;=d!u=#ms~FXXVu=+LrN?;@By
zwwCSC=D8bO^!CWV_4eSbC@iw?QMpj<*6<cvKIxo1{W)RMcY4_QRx``>3y1BNj$1Dr
zHk<o;j9El%T*Y0ph`Dh)a>Fe4{tLhDncE@|>Y<UPB+x0H=_JU|$dP2Ix(rkWC@vH@
zc6C0>gsjy&m2@s2dbhXqWcZrRhga|3I{nt8wpqV@85d7(oLGI~f0i}K2^@+o^$*tv
zD+)ADd!P>1zvLs={SWHk6z}9Q*};<)qD)0&N(gBE259`liGU!ZzUJ=g?|Da#9&I(A
zHe<@PX=0ZiuZ`Nu1zH3A(oh;aHnXGVr_udHu!$40j%?I9eeLRrw`GUlmboj;xuGn=
z^?(0fYmSq<KRmYh_c8H<$Ce4Ks<B<VGp5g&p0wex+w%138x+*8F4S;Rs?h0T;s4Dp
z9kKe`n`bL4J0|fxy;wTSamzu4aA7$so@UuMN|Ta*Hk{-8eLnEUCEHi;3-`q-EIQvm
zKmJH_{=EC&zk8RLe{Y-f`ou)#OcSY{b$@@Ia^D$qZeQ*1vXTqFetyqRs?R^u%x@R*
zMMHOa*y`LH_vIN5?2QTz+3<1Nv}r->uYbPmZ=YIJRP^-on>TMx8J@TK?4zcpcIn=|
zxCcuZ7z)Z4C3T-UckbEi_50&EJL2nps@DJe`Fy|J{`&v_{(LyhU-{!<`}P7a28Iax
zz>Tg_y>8#$-=BZK?)O{!{@OPikAM36{eJrWeYMdBk_-$c$M4SH=CL#8+=UAl>gBdq
ze}6Z}y4){-fnh^##qy+X+rM8f?<{$FY1R6-x3+3OKR5UE=JR&Dj|MX`9M~KESvNKF
z+@nWHZSC!!U$5W4?pM{ykW)7|r?av$Fx>82af9jc<HwcH=avVpzdrfSt|OUsb^r2@
z*Zg|9yz=SP@Gc2{28LNl%aeq!zWyp>TV>+jFXy{A&ObUjI<D^LQ_x~n&FQDLkB6?l
z`sMp~aSKfbhC9}Q8#&X`(}UNBeZCUxpITF6<5~3JK;xeukNbZ<>ees%@ZjLoj*53X
zpMScUK3~*QkAcDD=%R0IyY`wF{`v87YWoe_UoRG0R(?u}tA4w6idVVRyMFtBCuZmG
zn>lf!Apdq|hJ<KgQR$SVB&FKgTJ37#r$v^3|NfPfkva43?r!dRd<+a`{jP7-K=X9(
z_y4ck_w(88sqgoGIK*vP`YPnxySvd3QWzLEn7SOboi%^{`ID2?gI8a@lwmUI&aK%N
z#m{{B<n3ZUlrS)CD0Mk%b$3star*grXCFLBsQdr-yUPE4=8Oys){QG7+B-WtLsnmn
z*;iwEa;<v8{;$`fEejvD?B!%&DANht$hP{eZ-~~^Id-*Hv9YnNerya3M}<YpH{QDE
z5*{87IwQktX%NVo3sNpewWdv<{`u$g`TukClg`hx{rTZA|K;n~r^oL8bBlrDf!TlA
z|A&uuiwCa_EB^TCs7m=awLW?KdA8NxL~LXk7`Dg-eyqQ~F81_+0}lKCd^&xnPHq9n
z6+iN=?X>dl?3ft5-0$h*e*1I1(&m$H%w}L{_<Cbw;Kn_B=B(fMOH01ygX6l`-P2Sm
zUo31lvapy@e!uqmJr)LrH5dE-oc}q$T6k%YCTP{B-yDmH?sAn&9=v2=NT|LU7`XA)
zy(13~w--M<GgHQ*U;#w@mSEt;3=<<0lP}x%cJ8hI{%o?p-O11A?c+gS-LUuW_rQ;D
zx8HxZ_xrumS67EmzH@W-im=t1(@(SdvokQ<zF#XXI$b~BZ)?=qBS&0>s)ZRCHbk1K
zYORaeIcep}m1ix!&WhPzXPdwOZ<&~w7%0M4T+Mp<?wwwa8Uw?Q_^rD4??v2GFweht
z=5fFMJm+@4+$WjWQ|s#N?En8Mp7dmKzuhTs{k<VKbQl;4_TT=nA|fivYiG>4M~@!4
z%`1ytwrts_N8S3*E-m%0e9*|wHJh1%p{yzBB6H5Ppp_~b3=9d}ceV#IGBD)yPV4NN
z`FZP?uius|-#(3-+tr_$fniN(w#(5c4qCOBD@#*MnCE`=>E>c!xM3Fc$WnB&^5T{D
zhEvvk`&M$Lt$4$WMh1ok)9l7_Eiofo<H=jp-@5iQF)*x&J{V{?cVpu|p1Ju;3KKPK
zr+QVjol95re6{%H>y=9`U7kJ9OLZ^v<C%J85ey6oqO9@%zPMDiwN3t&QDr<~<Hmc|
z@56lJPdL5LI96>vY3IZctLn@31y;$nvaWnQ3=Dsqz2AhaS!Fck;qA_g7pJZ}*E(nZ
zJZ~i}28IPwx8#NBoOyESMueV^UwT@e)$`|4uKu7@u!vP`Yk08#TaWTz$L4#SKM;_0
znA!4Dpk5UyJVe(@ie7#!Irojn()H@GvhO%q85q{CF<rc9ukG93oj&K!-2GLRsK_nX
z!Op;-yYj(`h!am<{5P_hnNp<k*ZHue{oEy+)oYJi8Qr@*^<A@jP-Ur3@!XSVB6O2W
zOBop$)-K7dtgNh5_TRB(%ao#>bB-Q8y6pT`1LMg%`_7fD`^>ds<;s;Z)@3^3>tZsi
z*cccdyo>t&&foKvwe{u5F9Hk<2V%EA^J4{-ksVwN3=1?DF)=V?oN9X?GR14Dj8%z7
zZf>r0?W@wt$GzrUe}6JCYzWTzad$ogL&MyoPyHDf9D-d~85k~zfMVRlHH3kI!B<d}
ey24ZTGlaaeUoExN)`)?Dfx*+&&t;ucLK6TDC8$#X

literal 0
HcmV?d00001

diff --git a/slides/figs/fig_queue_extract_one.svg b/slides/figs/fig_queue_extract_one.svg
new file mode 100644
index 0000000..7778d43
--- /dev/null
+++ b/slides/figs/fig_queue_extract_one.svg
@@ -0,0 +1,298 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   width="71.796646mm"
+   height="55.054691mm"
+   viewBox="0 0 71.796646 55.054692"
+   version="1.1"
+   id="svg26163"
+   inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20, custom)"
+   sodipodi:docname="fig_queue_extract_one.svg"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:svg="http://www.w3.org/2000/svg">
+  <sodipodi:namedview
+     id="namedview26165"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     inkscape:pagecheckerboard="0"
+     inkscape:document-units="mm"
+     showgrid="false"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:zoom="1.2953002"
+     inkscape:cx="183.35518"
+     inkscape:cy="147.84217"
+     inkscape:window-width="1920"
+     inkscape:window-height="1080"
+     inkscape:window-x="0"
+     inkscape:window-y="0"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="layer1" />
+  <defs
+     id="defs26160">
+    <marker
+       style="overflow:visible"
+       id="Arrow2Lend"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend"
+       inkscape:isstock="true">
+      <path
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.625;stroke-linejoin:round"
+         id="path8989" />
+    </marker>
+    <marker
+       style="overflow:visible"
+       id="Arrow2Lend-7"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend"
+       inkscape:isstock="true">
+      <path
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.625;stroke-linejoin:round"
+         id="path8989-5" />
+    </marker>
+    <marker
+       style="overflow:visible"
+       id="Arrow2Lend-7-3"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend"
+       inkscape:isstock="true">
+      <path
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.625;stroke-linejoin:round"
+         id="path8989-5-6" />
+    </marker>
+    <marker
+       style="overflow:visible"
+       id="Arrow2Lend-7-2"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend"
+       inkscape:isstock="true">
+      <path
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.625;stroke-linejoin:round"
+         id="path8989-5-9" />
+    </marker>
+    <marker
+       style="overflow:visible"
+       id="Arrow2Lend-7-27"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend"
+       inkscape:isstock="true">
+      <path
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.625;stroke-linejoin:round"
+         id="path8989-5-0" />
+    </marker>
+  </defs>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-38.04528,-128.39909)">
+    <g
+       id="g27567">
+      <rect
+         style="fill:#ffffff;stroke:#000000;stroke-width:1;stroke-opacity:1"
+         id="rect849"
+         width="32.000549"
+         height="13.894769"
+         x="61.211033"
+         y="163.60229" />
+      <path
+         style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         d="m 77.211308,163.81338 v 13.47261"
+         id="path986" />
+      <text
+         xml:space="preserve"
+         style="font-style:normal;font-weight:normal;font-size:3.52777px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+         x="63.648254"
+         y="167.44313"
+         id="text3270"><tspan
+           sodipodi:role="line"
+           id="tspan3268"
+           x="63.648254"
+           y="167.44313"
+           style="stroke-width:0.264583">data</tspan></text>
+      <text
+         xml:space="preserve"
+         style="font-style:normal;font-weight:normal;font-size:3.52777px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+         x="80.402161"
+         y="167.34151"
+         id="text3270-3"><tspan
+           sodipodi:role="line"
+           id="tspan3268-6"
+           x="80.402161"
+           y="167.34151"
+           style="stroke-width:0.264583">next</tspan></text>
+      <path
+         style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)"
+         d="M 90.506705,170.55434 H 101.39839"
+         id="path8966" />
+      <path
+         style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend-7)"
+         d="m 57.156648,151.19704 9.957227,11.4829"
+         id="path8966-3"
+         sodipodi:nodetypes="cc" />
+      <path
+         style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend-7-3)"
+         d="m 57.070207,134.41304 13.529066,8.95621"
+         id="path8966-3-0"
+         sodipodi:nodetypes="cc" />
+      <path
+         style="fill:none;stroke:#000000;stroke-width:0.264583;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.529167, 0.264583;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#Arrow2Lend-7-2)"
+         d="m 79.884799,151.13428 -8.461285,11.75329"
+         id="path8966-3-1"
+         sodipodi:nodetypes="cc" />
+      <path
+         style="fill:none;stroke:#000000;stroke-width:0.264583;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.529167, 0.264583;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#Arrow2Lend-7-27)"
+         d="m 99.450797,151.13241 -25.53153,11.89643"
+         id="path8966-3-9"
+         sodipodi:nodetypes="cc" />
+      <g
+         id="g19539"
+         transform="matrix(0.26458333,0,0,0.26458333,50.232802,175.83868)">
+        <g
+           id="g14281"
+           transform="translate(-30.526542,-27.424011)">
+          <rect
+             style="fill:#ffffff;stroke:#000000;stroke-width:1.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect9442"
+             width="71.481941"
+             height="28.485205"
+             x="-14.786533"
+             y="-94.194954" />
+          <text
+             xml:space="preserve"
+             style="font-style:normal;font-weight:normal;font-size:13.3333px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none"
+             x="5.6842546"
+             y="-74.981659"
+             id="text11594"><tspan
+               sodipodi:role="line"
+               id="tspan11592"
+               x="5.6842546"
+               y="-74.981659">elmt</tspan></text>
+        </g>
+      </g>
+      <g
+         id="g19533"
+         transform="matrix(0.26458333,0,0,0.26458333,50.232802,175.83868)">
+        <rect
+           style="fill:#ffffff;stroke:#000000;stroke-width:1.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect14815"
+           width="139.78581"
+           height="29.670931"
+           x="76.975639"
+           y="-122.71912" />
+        <text
+           xml:space="preserve"
+           style="font-style:normal;font-weight:normal;font-size:13.3333px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none"
+           x="90.747475"
+           y="-103.29707"
+           id="text16175"><tspan
+             sodipodi:role="line"
+             id="tspan16173"
+             x="90.747475"
+             y="-103.29707">tete</tspan></text>
+        <text
+           xml:space="preserve"
+           style="font-style:normal;font-weight:normal;font-size:13.3333px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none"
+           x="167.53326"
+           y="-102.91296"
+           id="text16175-5"><tspan
+             sodipodi:role="line"
+             id="tspan16173-6"
+             x="167.53326"
+             y="-102.91296">debut</tspan></text>
+        <path
+           style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           d="m 146.86855,-122.04171 v 28.316121"
+           id="path17624" />
+      </g>
+      <g
+         id="g24610"
+         transform="matrix(0.26458333,0,0,0.26458333,50.232802,175.83868)">
+        <rect
+           style="fill:#ffffff;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+           id="rect20383"
+           width="33.501225"
+           height="22.229925"
+           x="-7.6590633"
+           y="-178.79926" />
+        <text
+           xml:space="preserve"
+           style="font-style:normal;font-weight:normal;font-size:13.3333px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none"
+           x="3.1117313"
+           y="-162.71361"
+           id="text21875"><tspan
+             sodipodi:role="line"
+             id="tspan21873"
+             x="3.1117313"
+             y="-162.71361">fa</tspan></text>
+      </g>
+      <g
+         id="g25290"
+         transform="matrix(0.26458333,0,0,0.26458333,50.232802,175.83868)">
+        <rect
+           style="fill:#ffffff;stroke:#000000;stroke-width:3.77953;stroke-opacity:1"
+           id="rect9338"
+           width="25.912838"
+           height="48.277096"
+           x="197.49173"
+           y="-44.128456" />
+        <path
+           style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           d="m 198.44004,-28.851968 13.81444,-13.814444"
+           id="path25192" />
+        <path
+           style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           d="m 198.16174,-17.266685 24.00548,-24.005477"
+           id="path25194" />
+        <path
+           style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           d="m 198.02184,-6.705438 25.33761,-25.337608"
+           id="path25198" />
+        <path
+           style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           d="M 197.49173,4.1486397 223.4456,-21.805234"
+           id="path25200" />
+        <path
+           style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           d="M 208.19521,4.2844338 223.75226,-11.272625"
+           id="path25202" />
+      </g>
+    </g>
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 57.951433,161.18156 40.25922,21.83269"
+       id="path27602" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 98.210653,161.18156 -40.25922,21.83269"
+       id="path27602-6" />
+  </g>
+</svg>
-- 
GitLab