From 9c546984af162bcadfe9351b70bbb73ff5789a3d Mon Sep 17 00:00:00 2001 From: Orestis <orestis.malaspinas@pm.me> Date: Mon, 12 Dec 2022 18:00:13 +0100 Subject: [PATCH] added cours 10 --- slides/cours_10.md | 553 ++++++++++++++++++ slides/figs/Singly-linked-list.svg | 638 +++++++++++++++++++++ slides/figs/fig_empty_queue_insert.png | Bin 0 -> 13624 bytes slides/figs/fig_non_empty_queue_insert.png | Bin 0 -> 20622 bytes slides/figs/fig_queue_extract.png | Bin 0 -> 19932 bytes slides/figs/fig_queue_extract_one.svg | 298 ++++++++++ slides/figs/fig_queue_representation.png | Bin 0 -> 7251 bytes 7 files changed, 1489 insertions(+) create mode 100644 slides/cours_10.md create mode 100644 slides/figs/Singly-linked-list.svg create mode 100644 slides/figs/fig_empty_queue_insert.png create mode 100644 slides/figs/fig_non_empty_queue_insert.png create mode 100644 slides/figs/fig_queue_extract.png create mode 100644 slides/figs/fig_queue_extract_one.svg create mode 100644 slides/figs/fig_queue_representation.png diff --git a/slides/cours_10.md b/slides/cours_10.md new file mode 100644 index 0000000..6d34021 --- /dev/null +++ b/slides/cours_10.md @@ -0,0 +1,553 @@ +--- +title: "Piles et files d'attente" +date: "2021-12-08" +patat: + eval: + tai: + command: fish + fragment: false + replace: true + ccc: + command: fish + fragment: false + replace: true + images: + backend: auto +--- + +# Rappel + +## Qu'est-ce qu'une pile? + +. . . + +* Structure de données LIFO. + +## Quelles fonctionnalités? + +. . . + +1. Empiler (push): ajouter un élément sur la pile. +2. Dépiler (pop): retirer l'élément du sommet de la pile et le retrouner. +3. Liste vide? (is_empty?). +4. Jeter un oeil (peek): retourner l'élément du sommet de la pile (sans le dépiler). +5. Nombre d'éléments (length). + +# Le tri à deux piles (3/3) + +## Exercice: trier le tableau `[2, 10, 5, 20, 15]` + +```C + + + + + + + + + + + + + + + + +``` + +# La calculatrice (1/8) + +## Vocabulaire + +```C +2 + 3 = 2 3 +, +``` + +`2` et `3` sont les *opérandes*, `+` l'*opérateur*. + +. . . + +## La notation infixe + +```C +2 * (3 + 2) - 4 = 6. +``` + +## La notation postfixe + +```C +2 3 2 + * 4 - = 6. +``` + +## Exercice: écrire `2 * 3 * 4 + 2` en notation `postfixe` + +. . . + +```C +2 3 4 * * 2 + = (2 * (3 * 4)) + 2. +``` + +# La calculatrice (2/8) + +## De infixe à post-fixe + +* Une *pile* est utilisée pour stocker *opérateurs* et *parenthèses*. +* Les opérateurs on des *priorités* différentes. + +```C +^ : priorité 3 +* / : priorité 2 ++ - : priorité 1 +( ) : priorité 0 // pas un opérateur mais bon +``` + + +# La calculatrice (3/8) + +## De infixe à post-fixe: algorithme + +* On lit l'expression infixe de gauche à droite. + +* On examine le prochain caractère de l'expression infixe. + * Si opérande, le placer dans l'expression du résultat. + * Si parenthèse le mettre dans la pile (priorité 0). + * Si opérateur, comparer sa priorité avec celui du sommet de la pile: + * Si sa priorité est plus élevée, empiler. + * Sinon dépiler l'opérateur de la pile dans l'expression du résultat et + recommencer jusqu'à apparition d'un opérateur de priorité plus faible + au sommet de la pile (ou pile vide). + * Si parenthèse fermée, dépiler les opérateurs du sommet de la pile et les + placer dans l'expression du résultat, jusqu'à ce qu'une parenthèse + ouverte apparaisse au sommet, dépiler également la parenthèse. + * Si il n'y a pas de caractère dans l'expression dépiler tous les + opérateurs dans le résultat. + +# La calculatrice (4/8) + +## De infixe à post-fixe: exemple + +```C +Infixe Postfixe Pile Priorité +((A*B)/D-F)/(G+H) Vide Vide Néant + (A*B)/D-F)/(G+H) Vide ( 0 + A*B)/D-F)/(G+H) Vide (( 0 + *B)/D-F)/(G+H) A (( 0 + B)/D-F)/(G+H) A ((* 2 + )/D-F)/(G+H) AB ((* 2 + /D-F)/(G+H) AB* ( 0 + D-F)/(G+H) AB* (/ 2 + -F)/(G+H) AB*D (/ 2 + F)/(G+H) AB*D/ (- 1 + )/(G+H) AB*D/F (- 1 + /(G+H) AB*D/F- Vide Néant +``` + +# La calculatrice (5/8) + +## De infixe à post-fixe: exemple + +```C +Infixe Postfixe Pile Priorité +((A*B)/D-F)/(G+H) Vide Vide Néant +-------------------------------------------------------- + /(G+H) AB*D/F- Vide Néant + (G+H) AB*D/F- / 2 + G+H) AB*D/F- /( 0 + +H) AB*D/F-G /( 0 + H) AB*D/F-G /(+ 1 + ) AB*D/F-GH /(+ 1 + Vide AB*D/F-GH+ / 2 + Vide AB*D/F-GH+/ Vide Néant +``` + +# La calculatrice (6/8) + +\footnotesize + +## Exercice: écrire le code et le poster sur matrix + +* Quelle est la signature de la fonction? + +. . . + +```C +char *infix_to_postfix(char* infix) { // init and alloc stack and postfix + for (size_t i = 0; i < strlen(infix); ++i) { + if (is_operand(infix[i])) { + // we just add operands in the new postfix string + } else if (infix[i] == '(') { + // we push opening parenthesis into the stack + stack_push(&s, infix[i]); + } else if (infix[i] == ')') { + // we pop everything into the postfix + } else if (is_operator(infix[i])) { + // this is an operator. We add it to the postfix based + // on the priority of what is already in the stack and push it + } + } + // pop all the operators from the s at the end of postfix + // and end the postfix with `\0` + return postfix; +} +``` + + +# La calculatrice (7/8) + +## Évaluation d'expression postfixe: algorithme + +* Chaque *opérateur* porte sur les deux opérandes qui le précèdent. +* Le *résultat d'une opération* est un nouvel *opérande* qui est remis au + sommet de la pile. + +## Exemple + +```C +2 3 4 + * 5 - = ? +``` + +* On parcours de gauche à droite: + +```C +Caractère lu Pile opérandes + 2 2 + 3 2, 3 + 4 2, 3, 4 + + 2, (3 + 4) + * 2 * 7 + 5 14, 5 + - 14 - 5 = 9 +``` + +# La calculatrice (8/8) + +## Évaluation d'expression postfixe: algorithme + +1. La valeur d'un opérande est *toujours* empilée. +2. L'opérateur s'applique *toujours* au 2 opérandes au sommet. +3. Le résultat est remis au sommet. + +## Exercice: écrire l'algorithme en C (et poster sur matrix) + +. . . + +```C +bool evaluate(char *postfix, double *val) { // init stack + for (size_t i = 0; i < strlen(postfix); ++i) { + if (is_operand(postfix[i])) { + stack_push(&s, postfix[i]); + } else if (is_operator(postfix[i])) { + double rhs = stack_pop(&s); + double lhs = stack_pop(&s); + stack_push(&s, op(postfix[i], lhs, rhs)); + } + } + return stack_pop(&s); +} +``` + + + +# La liste chaînée et pile (1/6) + +## Structure de données + +* Chaque élément de la liste contient: + 1. une valeur, + 2. un pointeur vers le prochain élément. +* La pile est un pointeur vers le premier élément. + +{width=80%} + +# La liste chaînée et pile (2/6) + +## Une pile-liste-chaînée + +```C +typedef struct _element { + int data; + struct _element *next; +} element; +typedef element* stack; +``` + +## Fonctionnalités? + +. . . + +```C +void stack_create(stack *s); // *s = NULL; +void stack_destroy(stack *s); +void stack_push(stack *s, int val); +void stack_pop(stack *s, int *val); +void stack_peek(stack s, int *val); +bool stack_is_empty(stack s); // reutrn NULL == stack; +``` + +# La liste chaînée et pile (3/6) + +## Empiler? (faire un dessin) + +. . . + +```C + + + + + + + +``` + +## Empiler? (le code ensemble) + +. . . + +```C +void stack_push(stack *s, int val) { + element *elem = malloc(sizeof(*elem)); + elem->data = val; + elem->next = *s; + s = elem; +} +``` + +# La liste chaînée et pile (4/6) + +## Jeter un oeil? (faire un dessin) + +. . . + +```C + + + + + + + +``` + +## Jeter un oeil? (le code ensemble) + +. . . + +```C +void stack_peek(stack s, int *val) { + *val = s->data; +} +``` + +# La liste chaînée et pile (5/6) + +## Dépiler? (faire un dessin) + +. . . + +```C + + + + + + + +``` + +## Dépiler? (le code ensemble) + +. . . + +```C +void stack_pop(stack *s, int *val) { + stack_peek(*s, val); + element *tmp = *s; + *s = (*s)->next; + free(tmp); + return val; +} +``` + +# La liste chaînée et pile (6/6) + +## Détruire? (faire un dessin) + +. . . + +```C + + + + + + + +``` + +## Détruire? (le code ensemble) + +. . . + +```C +void stack_destroy(stack *s) { + while (!stack_is_empty(*s)) { + int val = stack_pop(s); + } +} +``` + +# La file d'attente (1/2) + +* Structure de données abstraite permettant le stockage d'éléments. +* *FIFO*: First In First Out, ou première entrée première sortie. +* Analogue de la vie "réelle"": + * File à un guichet, + * Serveur d'impressions, + * Mémoire tampon, ... + +## Fonctionnalités + + . . . + +* Enfiler, ajouter un élément à la fin de la file. +* Défiler, extraire un élément au devant de la file. +* Tester si la file est vide. + +. . . + +* Lire l'élément de la fin de la file. +* Lire l'élément du devant de la file. +* Créer une liste vide. +* Détruire une liste vide. + +# La file d'attente (2/2) + +## Implémentation possible + +* La structure file, contient un pointeur vers la tête et un vers la queue. +* Entre les deux, les éléments sont stockés dans une liste chaînée (comme une + pile). + + + +## Structure de données en C? + +. . . + +```C +txpedef struct _element { // Elément de liste + int data; + struct _element* next; +} element; + +typedef struct _queue { // File d'attente: + element* head; // tête de file d'attente + element* tail; // queue de file d'attente +} queue; +``` + +# Fonctionnalités d'une file d'attente + +## Creation et consultations + +. . . + +```C +void queue_init(queue *fa); // head = tail = NULL +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 + +. . . + +```C +void queue_enqueue(queue *fa, int val); // adds an element before the tail +int queue_dequeue(queue *fa); // removes the head and returns stored value +void queue_destroy(queue *fa); // dequeues everything into oblivion +``` + +# Enfilage + +## Deux cas différents: + +1. La file est vide (faire un dessin): + +. . . + +{width=40%} + +2. La file n'est pas vide (faire un dessin): + +. . . + +{width=70%} + +# Enfilage + +## Live (implémentation) + +. . . + +```C +void queue_enqueue(queue *fa, int val) { + element elmt = malloc(sizeof(*elmt)); + elmt->data = val; + elmt->next = NULL; + if (queue_is_empty(*fa)) { + fa->head = elmt; + fa->tail = elmt; + } else { + fa->tail->next = elmt; + fa->tail = elmt; + } +} +``` + +# Défilage + +## Trois cas différents + +1. La file a plus d'un élément (faire un dessin): + +. . . + +{width=80%} + +2. La file un seul élément (faire un dessin): + +. . . + +{width=25%} + + +3. La file est vide (problème) + +# Défilage + +## Live (implémentation) + +. . . + +```C +int queue_dequeue(queue *fa) { + elmt = fa->head; + int val = elmt->data; + fa->head = fa->head->next; + free(elmt); + if (NULL == fa->head) { + fa->tail = NULL; + } + return val; +} +``` + +. . . + +## Problème avec cette implémentation? + diff --git a/slides/figs/Singly-linked-list.svg b/slides/figs/Singly-linked-list.svg new file mode 100644 index 0000000..dae4ee1 --- /dev/null +++ b/slides/figs/Singly-linked-list.svg @@ -0,0 +1,638 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + width="271.77063mm" + height="108.99983mm" + viewBox="0 0 271.77063 108.99983" + version="1.1" + id="svg92" + sodipodi:docname="Singly-linked-list.svg" + inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20, custom)" + 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="namedview94" + 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="0.16191253" + inkscape:cx="382.92281" + inkscape:cy="867.75249" + inkscape:window-width="944" + inkscape:window-height="1022" + inkscape:window-x="962" + inkscape:window-y="44" + inkscape:window-maximized="1" + inkscape:current-layer="layer1" /> + <defs + id="defs89"> + <marker + style="overflow:visible" + id="DotM" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="DotM" + inkscape:isstock="true"> + <path + transform="matrix(0.4,0,0,0.4,2.96,0.4)" + style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt" + d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z" + id="path7259" /> + </marker> + <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="path7216" /> + </marker> + <marker + style="overflow:visible" + id="Arrow1Lstart" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Lstart" + inkscape:isstock="true"> + <path + transform="matrix(0.8,0,0,0.8,10,0)" + style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + id="path7195" /> + </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="path7216-5" /> + </marker> + <marker + style="overflow:visible" + id="DotM-0" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="DotM" + inkscape:isstock="true"> + <path + transform="matrix(0.4,0,0,0.4,2.96,0.4)" + style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt" + d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z" + id="path7259-9" /> + </marker> + <marker + style="overflow:visible" + id="Arrow2Lend-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="path7216-6" /> + </marker> + <marker + style="overflow:visible" + id="Arrow2Lend-7-0" + 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="path7216-5-6" /> + </marker> + <marker + style="overflow:visible" + id="DotM-8" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="DotM" + inkscape:isstock="true"> + <path + transform="matrix(0.4,0,0,0.4,2.96,0.4)" + style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt" + d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z" + id="path7259-97" /> + </marker> + <marker + style="overflow:visible" + id="Arrow2Lend-36" + 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="path7216-1" /> + </marker> + <marker + style="overflow:visible" + id="DotM-8-4" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="DotM" + inkscape:isstock="true"> + <path + transform="matrix(0.4,0,0,0.4,2.96,0.4)" + style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt" + d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z" + id="path7259-97-5" /> + </marker> + <marker + style="overflow:visible" + id="Arrow2Lend-36-0" + 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="path7216-1-3" /> + </marker> + <marker + style="overflow:visible" + id="DotM-0-6" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="DotM" + inkscape:isstock="true"> + <path + transform="matrix(0.4,0,0,0.4,2.96,0.4)" + style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt" + d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z" + id="path7259-9-1" /> + </marker> + <marker + style="overflow:visible" + id="Arrow2Lend-3-0" + 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="path7216-6-6" /> + </marker> + <marker + style="overflow:visible" + id="Arrow2Lend-7-0-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="path7216-5-6-2" /> + </marker> + <marker + style="overflow:visible" + id="DotM-8-4-7" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="DotM" + inkscape:isstock="true"> + <path + transform="matrix(0.4,0,0,0.4,2.96,0.4)" + style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt" + d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z" + id="path7259-97-5-7" /> + </marker> + <marker + style="overflow:visible" + id="Arrow2Lend-36-0-6" + 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="path7216-1-3-4" /> + </marker> + <marker + style="overflow:visible" + id="DotM-8-3" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="DotM" + inkscape:isstock="true"> + <path + transform="matrix(0.4,0,0,0.4,2.96,0.4)" + style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt" + d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z" + id="path7259-97-6" /> + </marker> + <marker + style="overflow:visible" + id="Arrow2Lend-36-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="path7216-1-5" /> + </marker> + </defs> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(-0.36967225,-2.5050807)"> + <g + id="g3580"> + <g + id="g24207"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.5833px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;letter-spacing:0px;stroke-width:0.264583" + x="36.682896" + y="38.202869" + id="text6474-3"><tspan + sodipodi:role="line" + id="tspan6472-6" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583" + x="36.682896" + y="38.202869">0</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.5833px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;letter-spacing:0px;stroke-width:0.264583" + x="-0.73103225" + y="10.545908" + id="text17747"><tspan + sodipodi:role="line" + id="tspan17745" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583" + x="-0.73103225" + y="10.545908">stack</tspan></text> + <path + style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2Lend)" + d="M 12.729453,13.750898 C 12.330364,25.260185 17.227241,33.50031 33.621646,34.643091" + id="path18808" + sodipodi:nodetypes="cc" /> + </g> + </g> + <g + id="g3643" + transform="translate(-8.1840905,2.5045546)"> + <rect + style="fill:none;stroke:#000000;stroke-width:1;stroke-opacity:1" + id="rect140-29" + width="31.621361" + height="15.888521" + x="140.73814" + y="23.853914" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 164.53454,24.18415 V 39.63821" + id="path1501-3" /> + <text + xml:space="preserve" + style="font-size:10.5833px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;stroke-width:0.264583" + x="145.9039" + y="35.655811" + id="text6474-19"><tspan + sodipodi:role="line" + id="tspan6472-4" + style="stroke-width:0.264583" + x="145.9039" + y="35.655811">21</tspan></text> + <path + style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#DotM-8);marker-end:url(#Arrow2Lend-36)" + d="m 168.072,31.56383 h 15.84399" + id="path7136-78" /> + <g + id="g43819" + transform="translate(135.35753,-128.52638)"> + <rect + style="fill:none;stroke:#000000;stroke-width:1;stroke-opacity:1" + id="rect140-2" + width="31.621361" + height="15.888521" + x="49.971462" + y="152.42796" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 73.767859,152.75821 v 15.45406" + id="path1501-6" /> + <text + xml:space="preserve" + style="font-size:10.5833px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;stroke-width:0.264583" + x="55.137226" + y="164.22986" + id="text6474-1"><tspan + sodipodi:role="line" + id="tspan6472-8" + style="stroke-width:0.264583" + x="55.137226" + y="164.22986">17</tspan></text> + <path + style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#DotM-0);marker-end:url(#Arrow2Lend-3)" + d="M 77.305319,160.13789 H 93.149313" + id="path7136-7" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.5833px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;letter-spacing:0px;stroke-width:0.264583" + x="95.359497" + y="164.22469" + id="text6474-3-5-9"><tspan + sodipodi:role="line" + id="tspan6472-6-6-2" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583" + x="95.359497" + y="164.22469">0</tspan></text> + </g> + <g + id="g24758-0" + transform="translate(97.719115,-51.525442)"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.5833px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;letter-spacing:0px;stroke-width:0.264583" + x="6.4283442" + y="59.566795" + id="text17747-2-2"><tspan + sodipodi:role="line" + id="tspan17745-9-3" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583" + x="6.4283442" + y="59.566795">stack</tspan></text> + <path + style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2Lend-7-0)" + d="M 19.888829,62.771786 C 19.48974,74.281073 24.386617,82.521198 40.781022,83.663979" + id="path18808-1-7" + sodipodi:nodetypes="cc" /> + </g> + </g> + <g + id="g3624" + transform="translate(-7.3070295,-13.303108)"> + <g + id="g702" + transform="translate(-1.5543969,-0.09757996)"> + <rect + style="fill:none;stroke:#000000;stroke-width:1;stroke-opacity:1" + id="rect140-29-3" + width="31.621361" + height="15.888521" + x="140.7131" + y="88.780045" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 164.50949,89.110281 V 104.56434" + id="path1501-3-5" /> + <text + xml:space="preserve" + style="font-size:10.5833px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;stroke-width:0.264583" + x="145.87886" + y="100.58194" + id="text6474-19-6"><tspan + sodipodi:role="line" + id="tspan6472-4-2" + style="stroke-width:0.264583" + x="145.87886" + y="100.58194">12</tspan></text> + <path + style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#DotM-8-3);marker-end:url(#Arrow2Lend-36-7)" + d="m 168.04695,96.489961 h 15.84399" + id="path7136-78-9" /> + </g> + <rect + style="fill:none;stroke:#000000;stroke-width:1;stroke-opacity:1" + id="rect140-29-6" + width="31.621361" + height="15.888521" + x="183.78406" + y="88.682465" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 207.58045,89.0127 v 15.45406" + id="path1501-3-1" /> + <text + xml:space="preserve" + style="font-size:10.5833px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;stroke-width:0.264583" + x="188.94981" + y="100.48436" + id="text6474-19-5"><tspan + sodipodi:role="line" + id="tspan6472-4-5" + style="stroke-width:0.264583" + x="188.94981" + y="100.48436">21</tspan></text> + <path + style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#DotM-8-4);marker-end:url(#Arrow2Lend-36-0)" + d="M 211.11791,96.39238 H 226.9619" + id="path7136-78-4" /> + <g + id="g43819-7" + transform="translate(178.40344,-63.69783)"> + <rect + style="fill:none;stroke:#000000;stroke-width:1;stroke-opacity:1" + id="rect140-2-6" + width="31.621361" + height="15.888521" + x="49.971462" + y="152.42796" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 73.767859,152.75821 v 15.45406" + id="path1501-6-5" /> + <text + xml:space="preserve" + style="font-size:10.5833px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;stroke-width:0.264583" + x="55.137226" + y="164.22986" + id="text6474-1-6"><tspan + sodipodi:role="line" + id="tspan6472-8-9" + style="stroke-width:0.264583" + x="55.137226" + y="164.22986">17</tspan></text> + <path + style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#DotM-0-6);marker-end:url(#Arrow2Lend-3-0)" + d="M 77.305319,160.13789 H 93.149313" + id="path7136-7-3" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.5833px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;letter-spacing:0px;stroke-width:0.264583" + x="95.359497" + y="164.22469" + id="text6474-3-5-9-7"><tspan + sodipodi:role="line" + id="tspan6472-6-6-2-4" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583" + x="95.359497" + y="164.22469">0</tspan></text> + </g> + <g + id="g24758-0-5" + transform="translate(96.842054,13.303108)"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.5833px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;letter-spacing:0px;stroke-width:0.264583" + x="6.4283442" + y="59.566795" + id="text17747-2-2-2"><tspan + sodipodi:role="line" + id="tspan17745-9-3-5" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583" + x="6.4283442" + y="59.566795">stack</tspan></text> + <path + style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2Lend-7-0-3)" + d="M 19.888829,62.771786 C 19.48974,74.281073 24.386617,82.521198 40.781022,83.663979" + id="path18808-1-7-4" + sodipodi:nodetypes="cc" /> + </g> + </g> + <g + id="g3599"> + <rect + style="fill:none;stroke:#000000;stroke-width:1;stroke-opacity:1" + id="rect140" + width="31.621361" + height="15.888521" + x="35.965668" + y="75.427032" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 59.762066,75.757277 V 91.211331" + id="path1501" /> + <text + xml:space="preserve" + style="font-size:10.5833px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;stroke-width:0.264583" + x="41.131432" + y="87.228928" + id="text6474"><tspan + sodipodi:role="line" + id="tspan6472" + style="stroke-width:0.264583" + x="41.131432" + y="87.228928">17</tspan></text> + <path + style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#DotM);marker-end:url(#Arrow2Lend)" + d="M 63.299526,83.136951 H 79.14352" + id="path7136" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.5833px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;letter-spacing:0px;stroke-width:0.264583" + x="81.353706" + y="87.223755" + id="text6474-3-5"><tspan + sodipodi:role="line" + id="tspan6472-6-6" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583" + x="81.353706" + y="87.223755">0</tspan></text> + <g + id="g24758" + transform="translate(-7.0295076)"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.5833px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;letter-spacing:0px;stroke-width:0.264583" + x="6.4283442" + y="59.566795" + id="text17747-2"><tspan + sodipodi:role="line" + id="tspan17745-9" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583" + x="6.4283442" + y="59.566795">stack</tspan></text> + <path + style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2Lend-7)" + d="M 19.888829,62.771786 C 19.48974,74.281073 24.386617,82.521198 40.781022,83.663979" + id="path18808-1" + sodipodi:nodetypes="cc" /> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.86468px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;letter-spacing:0px;stroke-width:0.293233" + x="35.846004" + y="98.283569" + id="text26870"><tspan + sodipodi:role="line" + id="tspan26868" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.86468px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.293233" + x="35.846004" + y="98.283569">data</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.86468px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;letter-spacing:0px;stroke-width:0.293233" + x="64.074135" + y="71.651909" + id="text26870-2"><tspan + sodipodi:role="line" + id="tspan26868-7" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.86468px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.293233" + x="64.074135" + y="71.651909">next</tspan></text> + <text + xml:space="preserve" + style="font-size:10.5833px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;stroke-width:0.264583" + x="35.886299" + y="111.35505" + id="text42316"><tspan + sodipodi:role="line" + id="tspan42314" + style="stroke-width:0.264583" + x="35.886299" + y="111.35505">element</tspan></text> + </g> + </g> +</svg> diff --git a/slides/figs/fig_empty_queue_insert.png b/slides/figs/fig_empty_queue_insert.png new file mode 100644 index 0000000000000000000000000000000000000000..62d73bdb4f2aaacb9060748b89575cb0ad1a6f4a GIT binary patch literal 13624 zcmeAS@N?(olHy`uVBq!ia0y~yV02?(U|7h(#K6E{(%h)Yz#w|ODkP#LD6w3jpeR2r zGbdG{q_QAYA+;hije()!*4kO=MLOFjwf?`ZmBv}Xxmo5$$IXK}_4}H$;`D7ZlRRFU z-DG23VyV`B{@?uncIWFqrmk#Jk6gL)>6;&3x?3;&T)6A|>)J1RckADWpPE1a&-wHA ze?K>K+lW^7ykB3rzklE7J+=QGJm)_@e*V0DYTdP!^IP}n*X&=kZq5Ab>67QTCRNP; zKL7swZ$BN*+si!vTtDM}-^X=-PrqL&(384G{IGD@my37n4_7Z;@xS)XpY`?5K6@@6 zt*Y01Z@mBb`=4(f_cQAJKL4>e-n#q#;g5P>O4t1Ho?~~u`uEeHKi+<NxLo$<hf41s z{|@y!{^ff5{-bsJ)#7i}yXJjz-tp;qK)m}N`;W&C27Rp4`5gP>{*Rq^-XAM3z3Z#D z)#6pfod?sOF$>z;{d~IHzV80<m+H|ziS37yIVQ`z*eT_mkvNG#e)7J*oKHJ-^^Alb zsT5CKet7%dAJuo4y)N8%YU=doa}REou>AM)_s_4L|6hOi=bpRR=zH8jm9PJN3j%64 z@}~Oz|D+f6;Jo^>vd6FIe?R#5*U}?yMj7U3rZShA-&1Y-`F^Wt{=CJT+qbKISGzg= zYh;5!VQ#W<Ncktd-x+q*;Z7R&gpYgGWqe<?Nj~Mk?c~Ibrza$xQCZFwJNvvy{e5Yj zJ^sx4Du<Gmd1`UKQqflRo>{kgN<h6%l+os#qpM6`TRxkj`#fe-!K&#IK^rG|Yi`|g zDSOSzsIyzIL`A>V-NMmx^Ky~)+HKdWo-eX3z4mI){?A7^l>1C_o&>td=6><~dB!C7 zS!CMW+;5^`F%Abdf6`jLZriVKvx9DB-afbc&92+;+M}#LE=g9OU-T+-dHv~I>Z|S3 z-(ElSxAxi}_3VdgUhlQ<Z$5T;X^rkfR`q3bCT^TyBdLFifmL>jvAgy11!pwV*R}pQ zlF=ADYtrUDMs94Eza8xRKW+E>nZHl(v32==|C#O|&Eo!`@Bb(6bYJ;fv3URUxBQXO ze-GvE;S3TN3KlTBRJUhk`$a$Q#E+WWKQSC>SbFAG@$bMz?`y?wF+b?)<=L7rCrzIF zsX%W#x6DF+BeC0hw=TRt&cAM#+G^{+c7HY$`Kf<!&;L++_xx4Y=E50va(}gsXuaNd zAnu)$@%vW}hi;|YR6k2)FnK5&9pSv^%eu8D8P;#w7SEl(z1Zcrea`dEk{VyKt>4`h zn4jYO@X8kdd;H-GzC_vYoU@~Q;`Fe~Z$6}-Zg|DGMqm1P#993rwwrFwyUfw_)^PVU zoo_!({=8f_Su^=R*WA}(SJN`h=0|B3?y}Xcm@8g-#@n#CtXyYXY(lL6y}!w8MdLjj z&nE{qSLZGMF#Y!4?;+Q8(z@%}SK3KSc(a@@Z4$4ms;R4e6mRRccJ*S@?{929PR~qP z+MYS_gx=<fVhc0sc<UBTc(&x+?(Fn0d2{;N@{QZ=)@+V{RcHTr#k2keGdA51aFe;} zq^0XVb@4^+-SZ~BoF?>m)tZ})obne`T`EPpCRx~)T14sR=uJ0Q4Lp5Ewf|m3huAXX z7tu2+-mp3fCY+vIwbV)|H6z#5J}LH{=N>^Lwdg#aThAG$B<sCi7<*#N&GO*gZnG9& z6P}b|J}K@%ioVx#3qDgh``;F;FFsZ1X4mgXydQ2RvqQ#!Bjoq8?|TAgC|^8iz9*f3 zR>O&&&B<ElPv&m_9b~iMz``Sy|Ib`)O;s(D(^|(^xM%+VkXxM%-(9sCet+D?rTbrJ zuh-AOcd81`HliZz0>YQP8e3d!a}2l{G}*7r)ZLWFSQzV7Y09Oo_o_o@>a$w2Dhsju zJd#ti0w%TJE;yQ3xpDVIy>+JCSNI%12ro>UTqN*!``0sZDu+&+ZK%GQ)a@**Q0cU9 zul(m$o5ss?!efH|zFoUBNJ@51Zll$wr8XNrZQyJaaVTY)!!o7r%>yORQnS-c#?p<< z1vdk}mY#olT*W&5+}@WlQI~DK_+1*bUQe?Of3y7BxxC{iYk#<k)JQK+3$Sj!bb408 zt21Xeb!Ty^9AnOD<uY{FT_Sk%&MXnn)zu62S03HK*?YfcpRiAdx~_kyQ;ej_saCV? zRY~VwMppM02$XG>?fBqoC()bbnDx$)zvy7<#*nx>CqF60RBy=5%E>*o`K#I6lOA%y z+iov;!o8GdL4@Xtb4rro>Qnt5^Ife~XfkFIou?AgtgM&h_L@Iwr`qBTE7~ef_v~@* zzh?QxtjUV!=+-KamFt*49xypsSR2D`A$sTJ=O15L%<NY>tTJAoxpcYLl^gc_u3y<2 z1<&a^*t|aDl-tPHTystS@P|JV>>K0Py-d-XBXzF2JA}b!iOIpILY)gdObd4IW9OAx z{xLJ*?@5Pm8)KVZ99wyG#ly8s>w70L?hNz$V0+h5<yI<xxcl>R_fvXb{MUW|V!A4d zqv;ld#Kw8ax{sW70~(tzUwg-$E*-Mb_{s6i;`O(To@`+J%C+FR&-&KxUGr0FyjiF3 zH~itO=5bW<kMYxqfo^>hu6=kiEzQnwiJ8{=o>xA<+Se3ECT^bHslLo0{n*mBMosQ5 zZf~9DZQh==V)F8oPcJh5^;};2`NkCAuiwI3J)P9n9{G0C&WHOQzZJ{TGLI=Am11{< zU2fWG>R)V?sdc=+`=7ekk<#S(M&4-|rZHCqvi2$|#>c&$e#1JlW9N=_$IdZlNrp}2 zS8jZ7Qo*v~WagcW+7l%ji(1`RnO*%k$Md_c$FD7MDqdPLwE-15RZn}o7)-U+F<Kv} z%1}L`62&T7)zR|EG`#1tWRvlehULd?Ezg=9d0_lR`dIo#Lyl)cK^sh0=iXqlUtlYd z>hoZ7^88EkuS!)tbdFmnP2IMjR&Uxjr(KP6TJ=^=QPr_pdTD~_!k)*SRR<sIe96A( zC&v?D@QsP(`pyqCXRp7MIqf2Y=a1yoeUFyh_G_QU_r~{uhOvU<I!(ur7jFV`-+HaT zwA)&Ihv9@ny<4ssC^}{?i1{k5;?<NLwR4m5(pBC^Eg!H2nMSDuI#|}Os&-tzO6CM} z&*9+Di7eNaAFhjP{$8{8kka||srlIfobyAMXq=9H6#H`hw@-ObfAUu^j9_I*HkGb= zVIVclNa3Ww>8zyY%3CD`_9gQJf7!oW!MlY~ZKsFEfg`CKY$~ptbkT2+b&}g#uJmGd znbi(u4*jpXvPbs?h%u}TFi7CuQRYw+_?3x&%bRtH9g8`R9L@4D-~M~@S@x(I%PJ>{ z2K@W<L}y3Jt%-aIt2^#KVLws4qFO%S&V;I48#@;;W?N-W6-m6s)@wTdrhSdf5x#}X zpRL%m$v9ws%k>GmDNI!%T(7wkw=OSJoR+X(!@Fa(LH7TKL;D*I&iS4H@%!M#mmb}_ zO+~ZTu5VSyVYuRX|Cmqc*HvrOzHobRP5X5uQ{CtNiyJIX0ulu_huW8aYdWX4W`#jq zgW+1<_g@)o)ISB+zLAS`5OGuNoFNeQWHa;HrdQI*mzgH9Y+AI!f0_^Ptd1zd1A+od zm)KTvz6$epz1>j0`<3_`H*PcimhI+FR|5C4zI>@~<LoGKp(N>uQ{lxo!eW|naVz!h zOds-0@hn@M=*RHs#;;eK{LlYtkrLRI>&V-AKUAmF%)nFeu=vtzy<%$jYiF61v2-g; zwtF$D>tpcoij@@=E8`Ezzu}BHxKl*oR>X{`27d$Ny62pie+Y7jGSpp=d{aF6$?=S? zp4qy#E_(SlOhV-ScWe_(5D?guu=ZDwqT+Fzi+VZCE0)x^wJ`tqa>F65T(eFz-Z5ff zLgH5?g}6^AM3SUagWp{aV>)oq;>I@F`dO1*KeJ7<<IGydWmvsWeT&|w1tt>$3Xkk= z&i&%>P+2dozEx?@s}t`Zy_hBBYck(r)<ez>-xSO@bXF>h&im$eP+;3+p@{}N_wanE zTl@L4){5wm+n4n>s(ueW_5aJpmTR(c4qZ9T(E(-7-`8HAeCoLOu|xb>H#tNdwzHJ) z4EHM$d3{jegt>>_y`VD{LaTVD+g`rEZ|%S3uE%<BK7Kv%*yYpgMvm_35}P$AJ_xbT zP8Q*NuBhUz{I%oG{2#SB;w(Mq^J71A{*jtu^NMAO{<YGb+&wC;tBr&D8>|anueWuK zP5fq~^>jg(2J;DVj@x4M949xfan;hFz+RLlwfjWgq+M4tSxi{HDrGka@0}pLW?c}+ z$BG#yoU3FwIR6$cZP413lvfv_vum}v$<`bHEw3EuxRkoG?@Lcm{49wtdu;@>wuomP zR6QjVWS`x5&hvTxGPTSZ%C}~<y2SGzDn7L*=;N1U7lFrJHraudYfpTV{V8x^kz(lg zbFVtybllL~{dnf<h90ll51}c%r7sT1KVi>h6B2sVu&kvtD}RyE6InYmtvSw3UTz-l z&h_U%FRTBu)1-XT2ggU57R~?PE#D}9&SHt<+N=qUyKda5ySYOAj-r_FVUzRMCmdC= z>*Uevdm28q(#5$@>Ck+KcablQr!AGVvfId3d7Nh&^CaJ#)w`MbZ(Pk_3HCns%}nhP zzcaVV#L_<^N0a@Gz4%UK$<`c?YreLEk^gnBO<r}v{@4v+LN7vs7~bS49A*kyotAZV zJI6Nh`0T4&+~p=|9q3WMk-@a*h)(XW=c#!e3mG*`4qmu&;wwjQ&jmBF{bp9;u1%i` zLjGzquW)D1KUlSH{R^87>08YM-pSi5iHq`XSu|@QW4)VWQt5`Qp9$XzjTknyg}Kbg zJuA5_o|*Hp$%>DHH%jGZGHEu=Rj|6P_ry?HX_ARbol?%N3(bD6tAANkw#Jl4JV{&b zXwF%9+VjC{Zdn1#Z-NbzS1q0U@W?5~jh0GnLa~Qs-uf!4vUlf97PFIM<!0}8VED!m zDY56lioceE8~fSczn*KW)XkOBSZJKszsuWxnwxjytBk)o((g@rcw%|DEg40MzBI?Z z-pHaNxx?PTOUC#qr-KWV`=n_p4on})CaWD(Q=Z1^?<rLC(rsZeyXW6CUzrz}ckC^E z%OH{POnJ){<x@Rghr<^+WU~plt*$U)VY%JhGn*}iLAs%3@8UZV$!8Rd7R+2Re{G`e z6b(79X-c*or?S{5yl4nsVrl=&dVVJVJC<Ay9|hMHo+sodm6gh$otM#Bo59%7ae7fn zgT1`T5BE<By6@MoymvCg;i0IuuT3<c9j~!x@|k(Pa)(tG9cW-U!l_!fY;xtI=?yVg z{l))f)_C;TC>aVREcxs5-^W|ZH0M+N^fY+`{ZCml%p7n3FsihFt834-|M2Bml8+Re z&j<=;Hhi7AHRD_ZOWFTvRrBx11;|^Lh)xnwW`8wvh9`5X1NTwR7lF_E+BgIl+&=T1 z4LAAf%y*_^jVy=c&-H8WmVdsuznHCZ!&1q`0s-a^oi@q6(@<Jg-t$h1g|q#OlDU8V zwpyzkq2Cb<b~_A(ALezgIC;wZ^ZWx}-yOf18+V|8%cIJO;1IWX#mf`JK6X45xHU__ z>)YGgTpuLQdO6Hivq;^xEIKVj{kT2DvT89Sfwbs1LV0X&dEUfGT$y@EC11^-GwytZ zbZ+O<lUsCDWnN#K(6>mg<X6otYgQ+&f{cQ)5Utn){0D-qFUT&R7BPPgchy5Ksf&FI zP0jCavNJHstu5!fzFjRk;jHzcil=uEJ~8o4x~X+HYT?3!1^=8hKMCJzN=tlu<8|GK z_QK_rrr&rk+Vy(NM($&n7ACoOm7_0HSi9OL-(sibIsYf@e_qX$|4(oFqo41V950T! zVf!&)`j))I{O9&<dKWq&)LuFI+=Y`F{R<9k2;0**iOJKVfZ6+jEV~R3dy3Z)k*{lc zZp5=ZxH)5%-+xvX@rh3}4>KqmT26iA;b)z*$F1q@C8o8zuk1_v&HJ{sXrc7f4bPAF zTy1XW-L<m3+xt@J_Y+UGmMm)6+MICQd-20(ZfED;N#EXNvZU{h%a5ZQCbHyqCcZk= zz_HKepuEeC6Bb90hZXcU2>G~h%1&YUv@~C=OWAn>Yxe%Y@(0F=Y-e7$y|J-${cg$I z<G4cB;Ku@sH1m@^Jb$>lFSTFux%9xYx$BssOIN`5d7JV+IR0|r^kJU8c=tqoZ)Yik zhcD!PS6u!%vv&Ue1*!Z@i+d+3Db)w2p54N_Z*Nz-irLLiYxV^hGOzy?U~u5eUhQYk zMNgRQahp|MvXXfc$ClfD?|JvG@U&se)z3=%IWyq&kt_BI&nMK(R1t2pn0T&qk>K}B zTWpuOe&1EyXgZBc{ZhjFGZK}xze9ut|J=GHFjf0Vq+!|ai7`{0x4rs0<@%OZEw-Kw z>D>BlZVHk=`)<ZAn6&iupDG6CPfkvg|K%`GVq9sYx>%C!e8#uCAqPZTVs><LE)H63 zAku21{fZ;aWwWhF?6PBl)frX}ES#REPVMb4OiMN|;Wn`JUt-EOPqyP+vCGWkw|k_d zdOd%A&R*nlo#O!WH5ZkV9*r)RI&JQIp5aHHs2$mS{%aS<`Mq9}KkwY;=YM7rA}lNN zCiTp6KLdx&t4$7?FtGS`&p5D@Ihtv~ya@vC=Dp=dggbsS=`>j^_f&{~#d!Fp(1%XJ zdEGazm2Bbb`|Q_eJI&$T@$3k$pv4WH>)r*bzn{<G{4#In{Jc2FO^jSoZl_+XDo#If zyQOV%l&e<q!6!AHA$OyNd#8Pl_$N5Ec3E)5p6He%GhSbBxD;>Wc|E4G<Wp<5kyDw# zzFmrQmlRnBJ8Yb4(qPEdVtzcP=n^k`JLiNMt6WMCAKJxh_b^b-NZ~5)L;1qu6|6QQ z>73`Myi@rv*}bG%RD*fP&Q;O|Y64Pq&5NApUzSRI&Q*3O#B=YQ16vM%Q<&Ii_enWP ztUbiyY1b*`l*#+fPxmjb&0qAQEmimZ+bPqv_FV6M^Lx{si`QR&4?X)+Ky8*wa+<CQ zZ^N=Jd`#v(XB#tZQ>N#=6@L)Oc1ky}CGX14@|dW&RU(h-;`UB9-}`6Zis>eo*`E3J zZdw_f_CnzJ*7@Jx{_YbGum8$!^Yl}CQ0cwnOYA2x%#GmT+`VDa#uwABu|)*jS{~qj zBJJ-*J_V~6^O^p=GCO@`f_*QeZGM1XeW`G1xP(-9%HCJ{i$A>j)S1COYg<Xs){lxE z%vw8l-)&8MqVj&8$$XX|fz^TK3lx=l-?Se6HCc1^3ts7>z5hNh=b68GkNV8=cOS}+ zAL&VC`8c_#_(AuAu+3&M_w<5e+}B(-HLP3D_Rz{wUO~P!`PHRI9}Ti!n`t(&N4A`b zoF#F~*&%Oc_1)DoqaS+BE@EmpuygnA{kLylzjk!XemQRG)xQ<w8niy0{CAGkaZ<UR zMf20o|9V?m->d%qvop<AH12Zn;fGZZX3Y7$@OPBN!Z@zB)YS8py#G&>o|NJ`l3n(< z-)F`05F5VZlW#k0wYaO=ZvG(eiQ#nCgRN((bMCrmTS+fnHrp?J$AbRYJ+4hhokP~# z`20v^Zn=5L1iPOJXL##Z+rMRG&Xf1dsXWt=C-Or{k9n`D=QUj|-@3~Cm*&6A72--$ ze&JNL%(r*_6O$b-$F@$23*g&tXS&kOA?t|Q7jxxHRe}57gvISBkGo($YuT3Nw^upE z*=6Kbd3n?)Jg}Y@v%BH*fhF}1+~(Ei$JfnQk?Z>XGd^!w&LuCGyM+u4j4heY&H<jz z&afd}1_q6ZwG(YU4m-#kjSpVBNR-`r%A*Mjts(_P3$JL2EOc5S8dYkr^9%PZiAf^j z?gzI%cyK)F>cOLt;q2j#0)H3^i;IIwCJOzZE)sR5qTo({`FFYU_Y4aIQ)gW@Wy{!= zn-=70I6Yp_dHoA#5yc|{Q)Z@~@d}dK_xQCO<Gy>U71RFjw0GYhwLwBapfi0&;;kdE zj|9)&cCd23#i3K1ylVVxvM#Z9%I{oP@#omiCz}o!E2o(myUQqwdCRUTG0>hZ^--lT z=4#0)@glj^bGBP#UzN(fJ9)oB%!TRGclZ@^XzC;g3b|;kSlFbMqmpsebK``Cf0y*z zKl`Oxr1@l3!^C7c=?e<G>ps~3xVtuVj>Pv#hddYjK3Ztk)_6hh!W!#y-#0!s@o#uw zT(ETeUuoWiUz5L7MR&_HGT%OMv@|;STf=Etg<mNrmc8+EoaMBUW6%7H=1&_BMlUG8 z`g-lw{>$tN-my#b8=9RHmbl!^wtN5X<(s$njo1FGW031CY7Ny*|IWa`z**oCS<Jwo zrwqc36-({Q7#JAXOFVsD*`IPtuuDr>T6;}pV2~~Gba4!+xb=2!ZNZgmKi|tA&@akc z>3T^lc0t4)lZaF%G2PCoOE?#uZ7`bKz*Mou&uPt_%vW>I`QB9Vy{U3`gJ!VuEdi6a zJ~zKSRSK#*yv(nAR$AAbo#NUmk}is_8=1vCpGECqZ52`e)Re05?XUAT!?fJ>_pj~# z_W9@G$FZ`R{qu_VS>^Z7GhVrPF|z=Rq`r@vumXpdl%v2DlO_d?Ocuw0OB_v;+yq!u zdr`$bl{uOw$!-6!E%kS;9IwpjPZvBqu6b2msz{M2G7}BFRx|01(1vUcro*fA%DI|& z&U6Tv23+$nn|S^6;c2?j5z}Pl&C_mwTikDFb!0NL_9^$8qnB8O7?{HQkDFdEKC^hq z1!d8r$0xZ=d7S#fr$Zr9Epu9G<-GYH%sAJ~n4_>bZ@LfXr2cHB#8V-2FKcTaJo=bN z*PWN$wf8}URkUdCidm;mDqa1{>nT*bOpSFW|D;uYck@|P=Pr$CtDKi4sde@V%jt`` z%ko$=ELl|N_WoG+S#W~M)Nh<Bu8y-`@5r!XQJp(=(zjZMCWT9OjS3x3A8d1$3Qj5c z=F}6F#Nz0gE;dPp@sGk^H}en8W(t}jW|Ksp@P7VtU~}$q_O7Qh3O98)UpiBAL6*P4 z?>)=;&kH6bUh?7fo~CnBw>f5C&Ce$%CvQ$Wd+PM*(`)Bkzka>{hbjO6{hR++f8Sjh z{41MVKW4{-`5<uLf7bf@6aGKgR2l#8)AY@LmsmW7ryYnij2A!dX??V_<|FsEw~W^< zU7tlqDP>yry=-3Zs;uYyxyUDFmt0ogQ?XBhc6WE1`)*#fs%zQHn2qi4f9LP}`K(J+ z+rub*-mP`7^X~7fHCeYO_xtYn|F^FE{Qp?HR`ti%_4Q{z|Iyuk=hAssv;2E|o_lZq zx1K96ByZp1?hh-k8CLk^N5||)3eT>}oIUGYX-dlnPTMWT-`DEu#_ai85|w%W?JAvl zaa(trzU}6}c`n(txY(G%#N7OOz`XY0Uw=PuUR(YD{K4c}Sy9)*>+53w#wUJ#b#?33 zt=)3>486YFwQMYT5a}5jYI>M+o#ms-dGZbqET^UJW@Ko1e{0&)md^+G$@OOB@ol-> zCHD2|ig)}u+}d*6ReePZRC@1}->(e~4PB)1ZSt~3ixzF#RP^=L)ku?R-zEu7e^44* zq`c>WRN4}E_DkiVjn`+c@L=7Stdi?BDN>2yzSpZIk5n{V4Rab+D7hvlg?+c?^fMIh z(s5N-*i{l=^z}@H3*%9r1^ODBik_Zgm#--}^VNpMbN8++gTP)@Pq(BL*K*~H+NSf8 zBDiuCmz_{)5DYMk3QOi`aNam4^YW}C6WIiVlXred<2ZS|<l4qP3(mW)I-ss{HX-ob ziBnUxudj(LzF+&jcjvrzh0OCG5BO>sN+0;j!SQR|M-@kh^z%~{I8M0w^Gtg9OHk)v zfzGuwmDOKtSUiPU95)EM3NkQE33wW@>V!+`)m5SVHXj_my^v&kpLOViPNMXWKBlGv zt3p@5+yDRHRPFGzevl1L0m6H9i}xs;47~b*>G~C3@fh38%En|Vy&Y|Nm5s?S`rhB% z^^$Gg%Gq%bB-*?Uw=CE0nziLG&)s>Mv!0)yfBx?&VU`~PuC~iP)2@3*&*qo4x^idM z#;GSKSQbB96SK4Ea2xOcKhN#`=iAwC^Iq1x_47{W+pA7>U5-^dUiz|UjraPft*@R= zkM~ReyL0{G#oP7fCW_lPoy$>J($>bdyIVJU+m<a`7#LgwxpyZ-emf?eFB3Lp)5Up< zlT{o0RDNacJKN&tu446E+BW(!Q{=NE#ntC+zu)1n|Ii$|IxIEzx6P858)cIJ{rUO% z`T6+GX}&)`{`mO#F4z5?#p%AjybL~bt)`|%PD^#3cz(9|`UMLVX6H32{E7<w(Cgun z{Key3zxJ9LYgjlf**8^vdgAFhDQxYI+8<T_o=o=Nbn&?L_8GR--`?EZJY7FtuFj_Z zU(NPI_bVRvipNzvd~~#%m6i4Lv$L=Bj-5VrYMI|$s~hsS_SIIqySMA`FP~JkY}Jbc z7v`<K&B(#PFi);m(!@R5v$^lJVUYi=d9PJPyr!g{^L7cDp3H3f(laV3%_ukKd`PmP z=>*|9OS9T|gD!<s3fUM>+`@eRns2<9it?7(JtqavPUrD%oFSn8C~D5O$<v;*&RX;< zDCERDx#MdhH>aJQW$I%a9ujiEq|oHcoSz#@!uprpx^+uRN-D1A<I&@C)o*s+|NHLi z^>}`U$!fm8j+yTZ3=9km4&Ge-{he|8xh2IbU%kp=n2`GOP%F2yw6}SFY|Ormnk7B= zcUhEJ=HJ`3qvY+vzP`R^x=)Wz-ED1U^=kF<>7~n7t=Ed&_BqDg{rJ06k3Q+1O*WjC zcP}U`Vq4k$m*-^G-MD(IuqyiMtqY9%GLs_{)A!BVuB)xL_TJX)$Gh&%HD>XBeah?F zyVJGu@BbY?Kl9_qc@b+%{)>o+e7PL>|FHZ&fv|TojnnnsIG!qBm2;bo!T0jLy5DcZ z<7-R5y}8+Zrh9Tgt{ZQ3RM)E-$=Q7~`qE#|dKUH1wD`fEXGQB~UWqv^y_&PANrAKN zxdy|646d5{{62R}b}V_u$RK((iHDKF;dGSJNiWW$rYj0V>M!NYKWs8P?zg^-cY3({ zU-|z(jxY0_trxe)V^WF*AOHWl&$I8(v8gOdPEM}yN=|-!sFl0?&5gqIw%>W4O|QMr zU$cLD{=9rQ)m~qf6uk>c$4vPdHJ`bex-MI@!}8nX{|1j81%9w7pGtbsdj0PT&W49K zmMn^xbV^Xz|NP=v!aZ3=99`Yr;`(uW%HH0}y}eD=s$|95wP&~GhK5E?tNs0UyL{!7 ziLBgWPo6(NKi~fUp;qp@>07sKsrmo=e*LeP%lH3y)V-y?OR(ZlK&UkXgZ&3)dyWIw zr?#B`Xd+m#j$h!%LTeDYZ)$)~P=e<N+x4$o3}?RF^-B2U#wmimYIhkF3bwR7WOhhU z7ZSMom1XvnMQJY<IXDTh2>h^nRp}D_^6l;I`~UrV{n)u~-Rram;itf0)v8sy>aT2j zD{EaQV_CH1dW);C@7d`5y;FVEF7GzbRO4}-=6dac%S0ZHLuP9nCb+6<act8uHks*@ zwM~J0kNiXxtBDg-JH=GvCZ#l{)fgvMWwqTe`<#2X;GA{ayAL)q+G_7H9u|A-c~q>< zpuNXu`Hme6gB#~gNO8WR>>#Kl{>Nd`izQ-@E#?I&E6w#dQgP+;hZ!P%Hy94=xRZX^ z<oE*qUq2rA+yDRbx%TYzc{Y`s_U*H4U-Nd?yE&G{vu4k3m+Msh5YxXPW73I)o%)fR zmh8^!S9mRyud{dQlj{5PY<+C+e_H(C>cj8f?%SuzO}=HXSNZ$x_UhW;pdclVCIyc2 z`?cQ%rX4AgYdSS|hmYkQyX7w`ln*c8yZ7&bMrH;Ffg_KOb~~#Y^E6L$v|YTUcv8Rp zza6`FMG3U*ezz;zfbpN;6=N?e?U{D9Rq@Q3DK#4^KR^3Fb8Qt{%n_#vaV91v9+OJG zytp{U-G82qWzgHt>ho)wCb>-r1X-|jdfY7Y{5Y?~{u%w|2Q+?GEM6j*a^aBNKM85; zdmNMA9y&M4(s+)Xa}iJM^~2kfekp#D?K%F~dB?uzm71-w(b3U?fre9eiZ4*f{@OFi zt%(14AzMlGw_16Iwr6+$+)SU(`)$gbsLQV$Hd%j*c(wQFtL^Kex2N7-_iNcXi@dd8 zud23!!P4ySy*WACJH@KsTv+J5*M0e9_3*GTtG>yfYF~c2KT&S_#^Vzn3g1{IvGGaD zCif$T=9vbwa)TWNR9qJ~pYHHA^_>?J82Itc=JV60O?&3>yXSK9&W?N+m#JY}<_WSe z2M7Az-c&njVdkCPbxV%KL`GIVIWaNCXr^<Oo9A<xbz<H^Oz%~b3|)<_pBLK9f0p6j zeaFpMP}bc3WWx-_?pmk7OO~zaFZfPw;F0h2T+q2@$!`XS?u{;&3hp>_Ej>MPNq?CX zAGes!i}*7W?%LhcczNel*>5|8rV~LdC*2+^y_i*~+QV_uZ8BH7wAii8kehodi&cMB zC@V9&2D^ka=r^UkyeGI%vn^4A>#a%Ef_`(OMH8GtK9n40X5g@4XPK#fpj^jV#_@L> z-=?1ECw)pc-#_l{j@Y^ErOTzxV@U@t?>oGTb0W)z-W3AhB?BKs#D%HkEIHoy<@k-+ zaoN&KZ5Avk_PY`jvb*ZFhFMl+potIP%gT_)70Jh?9gWsL4?N51CFOXme_r4v4x@En zdM3F|C|sI8#iXf6+ZL1(VqQwB_9{H~I^Xd6Qu3ims@_F<=Zl}6IoQN~@{`3qjh8;c zY<DE0_2T#K$-BF&SK3@mM1*I?j-^Xe54Z82xA}bL>-Bj1Ir4Wmr=M?RW|ymev+>WL zKX-KZ`N_W*-JZUDUf`u<2eUVkKR+Di|Nr~`e?1Ki4`XBP@O3i(`gg6{op`uy+O%o6 zZr!@MIsJLY$KH<q@2f&rKWLk(k(rVbAo8@o{*N+4#I&g=pL_pcySe}0*Y&O3;{V>} z*GKQEDAbF3fBOGgg`f3vuk*=xSALmWes5vkx|011uB+aA@tW&+zr6meaKpb!jg#Em z8gAXXwS0b^)t~#DjDDq+UiV&j;nJl~d*9ctU$*R7r~14ZCYeEbk_NkeMPHkExmGr| z%A1qn$#egGB`f!?H(8$c<m?>F;&b)-a!Y0Wq<V9=PJDA@+uPgu`}c0$YWk<*Ft7O> z%i^?8Pk7c=X>@&hGTHyzpJ(%`-&MX`I$iBi+wH}idP%+_ese4~*8KdGXUlxx=H~SK z)$jM7*?#Hnn|phI-@gB^EIC<u8lRVxq|Dm2Yfn$tw=aC;vi`mC&F}ldE-`%g_xt_y z>C^ZB`E)wMO(Rn!_SWs&t5>ZG%Cj<lHi=K(TvSxF-|p9oqut^gHw0Wdalq#5mEf&g zw`%gIHZO4w3ElhooOQpvec#j8Np8OuZ`)ROd6{pmY;I1DP4%~&w4zJb%p5Z271W+C zl+iJrVlrvg_Ip*USFKw0-|lB4GrN)5y!ZA8FD>={|L^;LW1eQ#_DOC*1&@w&{(iSR z-$5~T&HKCl$A90ees5dwz#%sFZu!2?vN{$ZV?gaZe%mhrm6etMPquAKe$C<a%fJ5D zW$pEQHf3B?(lMH1a!H<BT<^}7%*m;d^Xvar#>U>A>~A-7`t<3Wrsn16pWm=#xzEf? zYaj0a^He_~LL)OpAg26osrPif+7AcW_2c*PFf3iV)Zg~&71{DTg8SM;Ssb06osX&5 zrk<K&ntg50|9`)$zrUMnmMg`u=i9Apc7C}dNlu>1&5Ntg=x`j;um5@4{C>^nKR-WL ze|r<TzwWQQeC?D*o-NzA+yD7+`2GI>|GM?}S)`wvvuM$x`G20MGhDcM@#CH1^NEbT zA}=1>22Mz={Qd1M!-nkZdVwOw^BM1d_nh?R=h>ab&(qG$xq0i>tm)Ise|&hjv-o+E zVWM{LlJ3k|3<i~-o`6bpAEOK2=NSxgZ*7tP`@)@};OD2O&*#_6o#u$nREdqb&a2Ej zb?VfmUwCA-?f!f?JZaLT)6@0EMMXjWHcmTp;LxEkDaj)avmWnQbLvKqr187`|LYhs za&!Nl&97@#ZJp#+6n%-|!<AtF)<%K4|G)3gw=U=7=2o?R_c8bMx8LuAqo+wPF`v-( zrlaOs_s-(ydhz>Y7|zYL{(gvCpXbq;1BTY-*W`Ak23+!Jdzz!QXw6R*&IC=S(?v}h zT};P|oJ?M_Ffgbj9(URK+1V>9D(a8{v#P49iEsMD*kef>Kg_@X@7s3fstskf&xIzf zsAAz{*rv6C=QQ`i)FU(AIaN)QoL{04>HT`&*3_k;yU(}IFALSXcj->$lRN89y)@Xn z>2<*6W1l98-k$Y)$C-C`cOTxgZq=$&x2oUv>Fp?eeXWtVIOFuANvXH}%I_vz-IRBF z&b^&$B)qQ6zVbM3^jK(0i5d5<Ed?L1t*g3yaZmpJm)h**p<+&jp|#hK|9Um)k#^~y ztZVDz=kJR;*7ffBxjQ?H^<#Hk$-lKsH?=iYdiE}R^Xu2+1>e40+s(Lc#@hJPJ>DB0 z&t1#Xwrb}bouJtG3o`CsZTK7nVjGh=<Age_LW_UNdZa(R6JdUOnlAU=eV|Ou_(&{r z)h|Bf&hUE&msI{cRdDEgt;RA9BiYjrBBV|}QQ4X}Z+S$USM8OJbGE%~I#E`Cut;Z5 z@{H?e#8@3S)c>zz*zxbzYjK^330t>YXI@%zT)y7sPyOd-XaDZ-w%Ap<W=3N0zR<VU zCo2x=_8(_SayY$U$;30~x_6#)ceu1t^sRK(rTB$fwpx0g6I&lxy)*S^JI!@}`i{@% ztc}I)muIYr+iUfO)3)M6LTqg8{L6RNajRUtEv#!G+L#<^_o|@KHL2>z-uI`CG%{5- zPx|(Ep6%;-6(>E;^uF+XskK*_MQ~n8?~=pyn+kre60fYR?6>=s@nioYjatuJ-){#= zv^_{}OWi$h_7mRDhoR{ZmrZuMuug7bsbc043#HyGma3TyD^{)Is&$I5|NC`eYqa7F zkC2AHS%;)ffUI0RL51@{yex-Gfr;fakCRKz#6){GE9`i7w&UBkZ|3(Zlyg>Ws#Lh^ z8yI*|x!>kezO(Oyl!sRZgJKT9DF38A6_j9)srnjUK3KfY=M~E~rBiC^#R;?LMtl=} zuW|qLIp(vM!ef^#T)1%QQdWjjr%!LLQMl_{T3RY0^>Au<oaa_aj)NOaD(02DUY@rw zEBv0z$C9%gUaB)+UpIOzap##{^h1|@KUi;nTTuM+l<B0>-}hJUPOt7aS^ApK(#zs? zZnR%wWY7L8E8W?D9eyj-JTAJt%vV-c*3{H=*0Qf&2R=A?&Q7$vV0zzw;}Xqc8`p_0 z0u^-!j_?>)rRpjyO+9A(;?l&eUy4j$Ue{f^Z`YEFqv!5rYHMpB4qCT<{rQE`_NA{v z0s{jr63bp)S()8up0Bz8)YTM@X^!s=Q*!<szczJh*gGrpgk8&epDtawD%aD~(_%ti zZtmH&(d*Z(<CAyGzP`@)rTw-YDUnij^J=5mRC{{_pT9C+7ZJ91_0D|PdAGMOEsFel zE<4!7+`N62hQ9v!oxkm>zGO(8-?C!Gils|cr_TO<?Nn;$?ODGnL%wE8PBAe$wkhw{ z^(*DxwNqc0`)|v=eJ$R3`qz?vscY-w@4HLi+4DZYp0{BBG|Br33l<fgo^hOCMva|c zZqL_i(biU0%Y0{Fv)$!ZAej9~XjfKG;-3SFn=&pgTIxOhkbsl2PtJy^a`U%r*;4a$ zb$o7q{`qY`8k-N9oK^Ln#&DoV(zs97dRozT0hZ{OoCojitv;Mvxanu>DaMDDc6Tnn zKFn`_XJazEnD(|y$-&&l+X`ha@xQ*lzW?}R;Sa|)svCa_2@O5D$!1&SkB|NJcdlGv zVX!WLw`4_$?eawzU$D#9e0a5beOkYvwUyPXRjd5wSTHh3o8@>EZ@-mcVwJdB-mB`# z!py21S%YQ;4)LYlUS2AmUjJPtseJzQY17&2FXH=u9ChZmWnoyq@7JsI_5VJb<g*;V zbmGTC>o<;kJIlTwX6CmM*jKo-{{O$c^`$JTwv8t`6Ox->cs_e-`|*hI!~eDIZVmyL zG+y3W_`BEpPLGtT?Zb@x{PUeZ8k?ES7rS}-$4E&@6{*%eSP-$hEcb=*uj~8&nTBSt zu&CPJtG@d<Id6?LNLMfO%Zu_Jzxx)h%v#j1a8r4&<kj<a-!@-R|8i73{?CWQ{2SK< zUJ`CHs7q*5@ik%+&-nOc>%%`x$2&f$tlp*kBm3^`z~|4OKVSFwS4Q(XwPe=^R&qx# z)E-&<Ri-^*#=;-oCScI>)9oyaatBXhUxVhlM>Ess{RBDZ^89~WcI=RNE#PG}`@^J( z84Dx@xfm2a=-6gfswjIfIWzpIGD$jm=A1|4ytS{FahvFOzB!;Y-?I4GnVH7!|2v;V z?#kQA_+uJ>$aIt5CGUQSXm{0U1TZlua4ayMwC{aXAG^rmizyFoZIc$@IUQ8zAIx*0 z*Zkg&#KUZB>~4HKw@vJp=P{AXe#aKAdf7aE%8nVwPYbQ=bUMU(y+gY#S1Zu9{GfSC zoLOXKn$OJsRPXf5o*XfEl9y(<i0zIFcYpemrDM|z?LAX?+^^4D=#mooM8eJI2IB-3 zl~lt#Mh3@;eOhjlj;}LfZJKn>m%~jcvT2%#>8Z)<)=Bxeq<MNxkchq<8#TdV(xc=o zpCz@*3nv#%QTB{`Vq-f~cGk9#qk>6+eM%gYmN<Fdjym*ES;+U&B9GZoEBu2xRJSZi zloZsL^4#GNRPue=BokjIheZG2gtG_w%9mLbJ>l@Zd_A`OZbr#LS^hgqgf=tA^f#<F zzwsf)`~#2aGr<RzEE^&(PWajP`XbZa*Jd&NcT#N9oF4qxo8SD*QY+7rf#;g)l#;Ly zH<J6WUcGvDj^*Yp+--?o-rn9`UTVIxOwOpyR^TvOq`}1C@Zw-is=a!XO2foQT|Q;< zXPW%j7{l`uFIP&dhzE-BF^GsV9C%}S<wf>+I~G-2wGBGa;o;@4uB;4R?)UcQ=H<VC zFIu!{cHXX)(GQm{T^e8W(Y0#Ri+}wOBbBlu8V@X8@yX<LVBz5}sfOKEOIfrH*5&Om zT;}e5_QRU>v-k>DN+liN#H4qOiG_t_-h1W=D}5RlEHT!2IpzNLZQI(q-5wsdez#-s z+O@iCwJ+(s%_tOQQB+#R88^vtURp-m<fOpHMUuCIMO%efBfGLUi9FrOa`wU;iQdke z7fMr=W+k0sT5YW3&CVhjG3~tfs;pB=*#<nmpC?wdEUuVmG$mrn2ixP1Cv#3@VNlds z5jgE~MW1>tSI*^cJLQ%g==-@rveCiy_xJbVBB@)P_nw_=UH<piS5{WmnOn{+pI`Uu zob`JXGqZPhcbm`j`4)as@>%%)Usv~jzjykx&H2wSTTXn8z0Ir9wlHXGP-C{W-N_9l zZnF*MJ<q*;?oZsAzq67$%qOL3CTP!X>XkOXSMj)a``xnJE7HDns?UqqoW^^&=TY*X zM@PH+9-Ekfz`oz_cK7!79`Bcz|FC9#?c410cE8{7*Z(+t(C&)IuKs263=J>dKiJVc zC!l=x-%01rpWpv>+wHLRaki@@YoE<bcl$F-zUG5ta`NMchufv4q@<*!W!1l$9aZtv zi`cMW<;s_j`|aQTtaWresN8R}sqXKumBGuCe4Pq(=4RTQf1Ou%zxMmx!|nX>I|>wA zT|a&D^7a=0l5lNJB!hzIC2#$`S1e;@ns`oHGHaI9tYsVd6otbs?VH-6?sI*)@+_sE zZ!GUXZQX5q?;6=vf6F;F<??d>_nHqXKR;V4vvISIwAZgb>vsX6r56{uMpRGW)Xg+k z^h&$pXB2hhLt=|+?aNC`zu&7~zq}##y07Ku@Q4VD{Cj)y7&q(up1Qt9b?*EGiDlJ% zJg<41CY6<*U8FLN#cGzsJCSgA_v0Irk5_U1cyV#@biG)wnHAU8L~@JiXlQG5o5n;% zS*4zuqWI^<-SYc$yJsI&)OdMO>ZH}X4Rg3|-MaPf&vX0vmc?pwF8q44`TQ@h%GYbR z->dn2c45Q*uWR#ruS8eG|GG4N!!8AlmjUONN%c$D&0c@1$<JtFi&oG)xn30+1<w!6 zQDGvTFXP{f>&2{CxpL>X-;*Xy3fP-yU31yjytnee+UxQ4e{ZJGKYR36!J8W!w{6=d zbGBx^w4-Ognuxsb5!u)ci)RTgv`)?YS#zl4l7NJfuA9WYH~(vI9y)Yr!^%1K^>zNd z>9?7LPH)<ld;R+L=SjI5Iy!qEwn-P6eBLYfMYzl`>5SOM8x>8w_a~)CNckLReGz_% z#ZjVdW6sS@I_4`@t-A5uS#8l0=KI%5FPGWe-+aeR!ocU+larIZy}ULY5J+KI+H>~& zu30C#Je@i;vz#WraMIymIr%i~*7iwh2VNU>7wQP4*lfAP;^^>TXWR|u?@eYPc~#Hd zyC!X5D%e`#V>*X{!%pdP*pyU@zUij@8eepMHyh59X?o&ue70D!r{T5DGsT4Z)>qg~ z5b<Pqpkmnc<V%Fr6jRT@2nG%#xnq|&nieb(WO4LV=77yVMjqriQ?Y&P)~na9$=TId z{0;8v>WYevX8)=^zwVdjG_fY06C6iA+7&-L^S<u;ZpXPsES~pkKA&AI+ady<w|o$R kG?59Ouyhkp@&56Dsb^2*^Y5Z!3=9kmp00i_>zopr0AT%Hr~m)} literal 0 HcmV?d00001 diff --git a/slides/figs/fig_non_empty_queue_insert.png b/slides/figs/fig_non_empty_queue_insert.png new file mode 100644 index 0000000000000000000000000000000000000000..2d0c4aa785e63dee2b3c57c6643eab01b706aa49 GIT binary patch literal 20622 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 YZPs*F1_dVz1_lNOPgg&ebxsLQ0LliAUH||9 literal 0 HcmV?d00001 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 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 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> diff --git a/slides/figs/fig_queue_representation.png b/slides/figs/fig_queue_representation.png new file mode 100644 index 0000000000000000000000000000000000000000..262d9a7ee941a10e3d50a19ac87a287d6f42ce71 GIT binary patch literal 7251 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 Kb6Mw<&;$VDzVn&@ literal 0 HcmV?d00001 -- GitLab