From d3cb6009105c32ced63089c095e481decb070b15 Mon Sep 17 00:00:00 2001 From: Yudong Jin Date: Mon, 8 Jan 2024 19:06:37 +0800 Subject: [PATCH] translation: Add the initial translation of the chapter of stack and queue (#1033) * Update the format of Q&As in docs-en * Fix the code comments of JavaScript and TypeScript * Add the initial translation of the chapter of stack and queue --- .../chapter_stack_and_queue/stack.js | 2 +- .../chapter_stack_and_queue/stack.ts | 2 +- .../chapter_array_and_linkedlist/summary.md | 74 ++-- .../summary.md | 24 +- docs-en/chapter_data_structure/summary.md | 18 +- .../deque.assets/array_deque.png | Bin 0 -> 26632 bytes .../deque.assets/array_deque_pop_first.png | Bin 0 -> 20773 bytes .../deque.assets/array_deque_pop_last.png | Bin 0 -> 19326 bytes .../deque.assets/array_deque_push_first.png | Bin 0 -> 23951 bytes .../deque.assets/array_deque_push_last.png | Bin 0 -> 24537 bytes .../deque.assets/deque_operations.png | Bin 0 -> 22496 bytes .../deque.assets/linkedlist_deque.png | Bin 0 -> 16982 bytes .../linkedlist_deque_pop_first.png | Bin 0 -> 15899 bytes .../linkedlist_deque_pop_last.png | Bin 0 -> 17510 bytes .../linkedlist_deque_push_first.png | Bin 0 -> 20676 bytes .../linkedlist_deque_push_last.png | Bin 0 -> 19227 bytes docs-en/chapter_stack_and_queue/deque.md | 399 ++++++++++++++++++ docs-en/chapter_stack_and_queue/index.md | 13 + .../queue.assets/array_queue.png | Bin 0 -> 23213 bytes .../queue.assets/array_queue_pop.png | Bin 0 -> 19735 bytes .../queue.assets/array_queue_push.png | Bin 0 -> 23133 bytes .../queue.assets/linkedlist_queue.png | Bin 0 -> 14778 bytes .../queue.assets/linkedlist_queue_pop.png | Bin 0 -> 15661 bytes .../queue.assets/linkedlist_queue_push.png | Bin 0 -> 18687 bytes .../queue.assets/queue_operations.png | Bin 0 -> 18364 bytes docs-en/chapter_stack_and_queue/queue.md | 375 ++++++++++++++++ .../stack.assets/array_stack.png | Bin 0 -> 15928 bytes .../stack.assets/array_stack_pop.png | Bin 0 -> 15681 bytes .../stack.assets/array_stack_push.png | Bin 0 -> 17586 bytes .../stack.assets/linkedlist_stack.png | Bin 0 -> 14814 bytes .../stack.assets/linkedlist_stack_pop.png | Bin 0 -> 15689 bytes .../stack.assets/linkedlist_stack_push.png | Bin 0 -> 18725 bytes .../stack.assets/stack_operations.png | Bin 0 -> 17743 bytes docs-en/chapter_stack_and_queue/stack.md | 383 +++++++++++++++++ docs-en/chapter_stack_and_queue/summary.md | 31 ++ docs/chapter_stack_and_queue/deque.md | 14 - docs/chapter_stack_and_queue/stack.md | 4 +- 37 files changed, 1263 insertions(+), 76 deletions(-) create mode 100644 docs-en/chapter_stack_and_queue/deque.assets/array_deque.png create mode 100644 docs-en/chapter_stack_and_queue/deque.assets/array_deque_pop_first.png create mode 100644 docs-en/chapter_stack_and_queue/deque.assets/array_deque_pop_last.png create mode 100644 docs-en/chapter_stack_and_queue/deque.assets/array_deque_push_first.png create mode 100644 docs-en/chapter_stack_and_queue/deque.assets/array_deque_push_last.png create mode 100644 docs-en/chapter_stack_and_queue/deque.assets/deque_operations.png create mode 100644 docs-en/chapter_stack_and_queue/deque.assets/linkedlist_deque.png create mode 100644 docs-en/chapter_stack_and_queue/deque.assets/linkedlist_deque_pop_first.png create mode 100644 docs-en/chapter_stack_and_queue/deque.assets/linkedlist_deque_pop_last.png create mode 100644 docs-en/chapter_stack_and_queue/deque.assets/linkedlist_deque_push_first.png create mode 100644 docs-en/chapter_stack_and_queue/deque.assets/linkedlist_deque_push_last.png create mode 100644 docs-en/chapter_stack_and_queue/deque.md create mode 100644 docs-en/chapter_stack_and_queue/index.md create mode 100644 docs-en/chapter_stack_and_queue/queue.assets/array_queue.png create mode 100644 docs-en/chapter_stack_and_queue/queue.assets/array_queue_pop.png create mode 100644 docs-en/chapter_stack_and_queue/queue.assets/array_queue_push.png create mode 100644 docs-en/chapter_stack_and_queue/queue.assets/linkedlist_queue.png create mode 100644 docs-en/chapter_stack_and_queue/queue.assets/linkedlist_queue_pop.png create mode 100644 docs-en/chapter_stack_and_queue/queue.assets/linkedlist_queue_push.png create mode 100644 docs-en/chapter_stack_and_queue/queue.assets/queue_operations.png create mode 100755 docs-en/chapter_stack_and_queue/queue.md create mode 100644 docs-en/chapter_stack_and_queue/stack.assets/array_stack.png create mode 100644 docs-en/chapter_stack_and_queue/stack.assets/array_stack_pop.png create mode 100644 docs-en/chapter_stack_and_queue/stack.assets/array_stack_push.png create mode 100644 docs-en/chapter_stack_and_queue/stack.assets/linkedlist_stack.png create mode 100644 docs-en/chapter_stack_and_queue/stack.assets/linkedlist_stack_pop.png create mode 100644 docs-en/chapter_stack_and_queue/stack.assets/linkedlist_stack_push.png create mode 100644 docs-en/chapter_stack_and_queue/stack.assets/stack_operations.png create mode 100755 docs-en/chapter_stack_and_queue/stack.md create mode 100644 docs-en/chapter_stack_and_queue/summary.md diff --git a/codes/javascript/chapter_stack_and_queue/stack.js b/codes/javascript/chapter_stack_and_queue/stack.js index 1a19a7e7e..debf7fa6d 100644 --- a/codes/javascript/chapter_stack_and_queue/stack.js +++ b/codes/javascript/chapter_stack_and_queue/stack.js @@ -6,7 +6,7 @@ /* Driver Code */ /* 初始化栈 */ -// Javascript 没有内置的栈类,可以把 Array 当作栈来使用 +// JavaScript 没有内置的栈类,可以把 Array 当作栈来使用 const stack = []; /* 元素入栈 */ diff --git a/codes/typescript/chapter_stack_and_queue/stack.ts b/codes/typescript/chapter_stack_and_queue/stack.ts index 2d59544d3..f4b92ecf6 100644 --- a/codes/typescript/chapter_stack_and_queue/stack.ts +++ b/codes/typescript/chapter_stack_and_queue/stack.ts @@ -6,7 +6,7 @@ /* Driver Code */ /* 初始化栈 */ -// Typescript 没有内置的栈类,可以把 Array 当作栈来使用 +// TypeScript 没有内置的栈类,可以把 Array 当作栈来使用 const stack: number[] = []; /* 元素入栈 */ diff --git a/docs-en/chapter_array_and_linkedlist/summary.md b/docs-en/chapter_array_and_linkedlist/summary.md index 3effb5e57..d9e88821e 100644 --- a/docs-en/chapter_array_and_linkedlist/summary.md +++ b/docs-en/chapter_array_and_linkedlist/summary.md @@ -14,68 +14,68 @@ ### Q & A -!!! question "Does storing arrays on the stack versus the heap affect time and space efficiency?" +**Q**: Does storing arrays on the stack versus the heap affect time and space efficiency? - Arrays stored on both the stack and heap are stored in continuous memory spaces, and data operation efficiency is essentially the same. However, stacks and heaps have their own characteristics, leading to the following differences. +Arrays stored on both the stack and heap are stored in continuous memory spaces, and data operation efficiency is essentially the same. However, stacks and heaps have their own characteristics, leading to the following differences. - 1. Allocation and release efficiency: The stack is a smaller memory block, allocated automatically by the compiler; the heap memory is relatively larger and can be dynamically allocated in the code, more prone to fragmentation. Therefore, allocation and release operations on the heap are generally slower than on the stack. - 2. Size limitation: Stack memory is relatively small, while the heap size is generally limited by available memory. Therefore, the heap is more suitable for storing large arrays. - 3. Flexibility: The size of arrays on the stack needs to be determined at compile-time, while the size of arrays on the heap can be dynamically determined at runtime. +1. Allocation and release efficiency: The stack is a smaller memory block, allocated automatically by the compiler; the heap memory is relatively larger and can be dynamically allocated in the code, more prone to fragmentation. Therefore, allocation and release operations on the heap are generally slower than on the stack. +2. Size limitation: Stack memory is relatively small, while the heap size is generally limited by available memory. Therefore, the heap is more suitable for storing large arrays. +3. Flexibility: The size of arrays on the stack needs to be determined at compile-time, while the size of arrays on the heap can be dynamically determined at runtime. -!!! question "Why do arrays require elements of the same type, while linked lists do not emphasize same-type elements?" +**Q**: Why do arrays require elements of the same type, while linked lists do not emphasize same-type elements? - Linked lists consist of nodes connected by references (pointers), and each node can store data of different types, such as int, double, string, object, etc. +Linked lists consist of nodes connected by references (pointers), and each node can store data of different types, such as int, double, string, object, etc. - In contrast, array elements must be of the same type, allowing the calculation of offsets to access the corresponding element positions. For example, an array containing both int and long types, with single elements occupying 4 bytes and 8 bytes respectively, cannot use the following formula to calculate offsets, as the array contains elements of two different lengths. +In contrast, array elements must be of the same type, allowing the calculation of offsets to access the corresponding element positions. For example, an array containing both int and long types, with single elements occupying 4 bytes and 8 bytes respectively, cannot use the following formula to calculate offsets, as the array contains elements of two different lengths. - ```shell - # Element memory address = Array memory address + Element length * Element index - ``` +```shell +# Element memory address = Array memory address + Element length * Element index +``` -!!! question "After deleting a node, is it necessary to set `P.next` to `None`?" +**Q**: After deleting a node, is it necessary to set `P.next` to `None`? - Not modifying `P.next` is also acceptable. From the perspective of the linked list, traversing from the head node to the tail node will no longer encounter `P`. This means that node `P` has been effectively removed from the list, and where `P` points no longer affects the list. +Not modifying `P.next` is also acceptable. From the perspective of the linked list, traversing from the head node to the tail node will no longer encounter `P`. This means that node `P` has been effectively removed from the list, and where `P` points no longer affects the list. - From a garbage collection perspective, for languages with automatic garbage collection mechanisms like Java, Python, and Go, whether node `P` is collected depends on whether there are still references pointing to it, not on the value of `P.next`. In languages like C and C++, we need to manually free the node's memory. +From a garbage collection perspective, for languages with automatic garbage collection mechanisms like Java, Python, and Go, whether node `P` is collected depends on whether there are still references pointing to it, not on the value of `P.next`. In languages like C and C++, we need to manually free the node's memory. -!!! question "In linked lists, the time complexity for insertion and deletion operations is `O(1)`. But searching for the element before insertion or deletion takes `O(n)` time, so why isn't the time complexity `O(n)`?" +**Q**: In linked lists, the time complexity for insertion and deletion operations is `O(1)`. But searching for the element before insertion or deletion takes `O(n)` time, so why isn't the time complexity `O(n)`? - If an element is searched first and then deleted, the time complexity is indeed `O(n)`. However, the `O(1)` advantage of linked lists in insertion and deletion can be realized in other applications. For example, in the implementation of double-ended queues using linked lists, we maintain pointers always pointing to the head and tail nodes, making each insertion and deletion operation `O(1)`. +If an element is searched first and then deleted, the time complexity is indeed `O(n)`. However, the `O(1)` advantage of linked lists in insertion and deletion can be realized in other applications. For example, in the implementation of double-ended queues using linked lists, we maintain pointers always pointing to the head and tail nodes, making each insertion and deletion operation `O(1)`. -!!! question "In the image 'Linked List Definition and Storage Method', do the light blue storage nodes occupy a single memory address, or do they share half with the node value?" +**Q**: In the image "Linked List Definition and Storage Method", do the light blue storage nodes occupy a single memory address, or do they share half with the node value? - The diagram is just a qualitative representation; quantitative analysis depends on specific situations. +The diagram is just a qualitative representation; quantitative analysis depends on specific situations. - - Different types of node values occupy different amounts of space, such as int, long, double, and object instances. - - The memory space occupied by pointer variables depends on the operating system and compilation environment used, usually 8 bytes or 4 bytes. +- Different types of node values occupy different amounts of space, such as int, long, double, and object instances. +- The memory space occupied by pointer variables depends on the operating system and compilation environment used, usually 8 bytes or 4 bytes. -!!! question "Is adding elements to the end of a list always `O(1)`?" +**Q**: Is adding elements to the end of a list always `O(1)`? - If adding an element exceeds the list length, the list needs to be expanded first. The system will request a new memory block and move all elements of the original list over, in which case the time complexity becomes `O(n)`. +If adding an element exceeds the list length, the list needs to be expanded first. The system will request a new memory block and move all elements of the original list over, in which case the time complexity becomes `O(n)`. -!!! question "The statement 'The emergence of lists greatly improves the practicality of arrays, but may lead to some memory space wastage' - does this refer to the memory occupied by additional variables like capacity, length, and expansion multiplier?" +**Q**: The statement "The emergence of lists greatly improves the practicality of arrays, but may lead to some memory space wastage" - does this refer to the memory occupied by additional variables like capacity, length, and expansion multiplier? - The space wastage here mainly refers to two aspects: on the one hand, lists are set with an initial length, which we may not always need; on the other hand, to prevent frequent expansion, expansion usually multiplies by a coefficient, such as $\times 1.5$. This results in many empty slots, which we typically cannot fully fill. +The space wastage here mainly refers to two aspects: on the one hand, lists are set with an initial length, which we may not always need; on the other hand, to prevent frequent expansion, expansion usually multiplies by a coefficient, such as $\times 1.5$. This results in many empty slots, which we typically cannot fully fill. -!!! question "In Python, after initializing `n = [1, 2, 3]`, the addresses of these 3 elements are contiguous, but initializing `m = [2, 1, 3]` shows that each element's `id` is not consecutive but identical to those in `n`. If the addresses of these elements are not contiguous, is `m` still an array?" +**Q**: In Python, after initializing `n = [1, 2, 3]`, the addresses of these 3 elements are contiguous, but initializing `m = [2, 1, 3]` shows that each element's `id` is not consecutive but identical to those in `n`. If the addresses of these elements are not contiguous, is `m` still an array? - If we replace list elements with linked list nodes `n = [n1, n2, n3, n4, n5]`, these 5 node objects are also typically dispersed throughout memory. However, given a list index, we can still access the node's memory address in `O(1)` time, thereby accessing the corresponding node. This is because the array stores references to the nodes, not the nodes themselves. +If we replace list elements with linked list nodes `n = [n1, n2, n3, n4, n5]`, these 5 node objects are also typically dispersed throughout memory. However, given a list index, we can still access the node's memory address in `O(1)` time, thereby accessing the corresponding node. This is because the array stores references to the nodes, not the nodes themselves. - Unlike many languages, in Python, numbers are also wrapped as objects, and lists store references to these numbers, not the numbers themselves. Therefore, we find that the same number in two arrays has the same `id`, and these numbers' memory addresses need not be contiguous. +Unlike many languages, in Python, numbers are also wrapped as objects, and lists store references to these numbers, not the numbers themselves. Therefore, we find that the same number in two arrays has the same `id`, and these numbers' memory addresses need not be contiguous. -!!! question "The `std::list` in C++ STL has already implemented a doubly linked list, but it seems that some algorithm books don't directly use it. Is there any limitation?" +**Q**: The `std::list` in C++ STL has already implemented a doubly linked list, but it seems that some algorithm books don't directly use it. Is there any limitation? - On the one hand, we often prefer to use arrays to implement algorithms, only using linked lists when necessary, mainly for two reasons. - - - Space overhead: Since each element requires two additional pointers (one for the previous element and one for the next), `std::list` usually occupies more space than `std::vector`. - - Cache unfriendly: As the data is not stored continuously, `std::list` has a lower cache utilization rate. Generally, `std::vector` performs better. +On the one hand, we often prefer to use arrays to implement algorithms, only using linked lists when necessary, mainly for two reasons. - On the other hand, linked lists are primarily necessary for binary trees and graphs. Stacks and queues are often implemented using the programming language's `stack` and `queue` classes, rather than linked lists. +- Space overhead: Since each element requires two additional pointers (one for the previous element and one for the next), `std::list` usually occupies more space than `std::vector`. +- Cache unfriendly: As the data is not stored continuously, `std::list` has a lower cache utilization rate. Generally, `std::vector` performs better. -!!! question "Does initializing a list `res = [0] * self.size()` result in each element of `res` referencing the same address?" +On the other hand, linked lists are primarily necessary for binary trees and graphs. Stacks and queues are often implemented using the programming language's `stack` and `queue` classes, rather than linked lists. - No. However, this issue arises with two-dimensional arrays, for example, initializing a two-dimensional list `res = [[0] * self.size()]` would reference the same list `[0]` multiple times. +**Q**: Does initializing a list `res = [0] * self.size()` result in each element of `res` referencing the same address? -!!! question "In deleting a node, is it necessary to break the reference to its successor node?" +No. However, this issue arises with two-dimensional arrays, for example, initializing a two-dimensional list `res = [[0] * self.size()]` would reference the same list `[0]` multiple times. - From the perspective of data structures and algorithms (problem-solving), it's okay not to break the link, as long as the program's logic is correct. From the perspective of standard libraries, breaking the link is safer and more logically clear. If the link is not broken, and the deleted node is not properly recycled, it could affect the recycling of the successor node's memory. +**Q**: In deleting a node, is it necessary to break the reference to its successor node? + +From the perspective of data structures and algorithms (problem-solving), it's okay not to break the link, as long as the program's logic is correct. From the perspective of standard libraries, breaking the link is safer and more logically clear. If the link is not broken, and the deleted node is not properly recycled, it could affect the recycling of the successor node's memory. diff --git a/docs-en/chapter_computational_complexity/summary.md b/docs-en/chapter_computational_complexity/summary.md index 698923795..1f2c4c391 100644 --- a/docs-en/chapter_computational_complexity/summary.md +++ b/docs-en/chapter_computational_complexity/summary.md @@ -26,24 +26,24 @@ ### Q & A -!!! question "Is the space complexity of tail recursion $O(1)$?" +**Q**: Is the space complexity of tail recursion $O(1)$? - Theoretically, the space complexity of a tail-recursive function can be optimized to $O(1)$. However, most programming languages (such as Java, Python, C++, Go, C#) do not support automatic optimization of tail recursion, so it's generally considered to have a space complexity of $O(n)$. +Theoretically, the space complexity of a tail-recursive function can be optimized to $O(1)$. However, most programming languages (such as Java, Python, C++, Go, C#) do not support automatic optimization of tail recursion, so it's generally considered to have a space complexity of $O(n)$. -!!! question "What is the difference between the terms 'function' and 'method'?" +**Q**: What is the difference between the terms "function" and "method"? - A "function" can be executed independently, with all parameters passed explicitly. A "method" is associated with an object and is implicitly passed to the object calling it, able to operate on the data contained within an instance of a class. +A "function" can be executed independently, with all parameters passed explicitly. A "method" is associated with an object and is implicitly passed to the object calling it, able to operate on the data contained within an instance of a class. - Here are some examples from common programming languages: +Here are some examples from common programming languages: - - C is a procedural programming language without object-oriented concepts, so it only has functions. However, we can simulate object-oriented programming by creating structures (struct), and functions associated with these structures are equivalent to methods in other programming languages. - - Java and C# are object-oriented programming languages where code blocks (methods) are typically part of a class. Static methods behave like functions because they are bound to the class and cannot access specific instance variables. - - C++ and Python support both procedural programming (functions) and object-oriented programming (methods). +- C is a procedural programming language without object-oriented concepts, so it only has functions. However, we can simulate object-oriented programming by creating structures (struct), and functions associated with these structures are equivalent to methods in other programming languages. +- Java and C# are object-oriented programming languages where code blocks (methods) are typically part of a class. Static methods behave like functions because they are bound to the class and cannot access specific instance variables. +- C++ and Python support both procedural programming (functions) and object-oriented programming (methods). -!!! question "Does the 'Common Types of Space Complexity' figure reflect the absolute size of occupied space?" +**Q**: Does the "Common Types of Space Complexity" figure reflect the absolute size of occupied space? - No, the figure shows space complexities, which reflect growth trends, not the absolute size of the occupied space. +No, the figure shows space complexities, which reflect growth trends, not the absolute size of the occupied space. - If you take $n = 8$, you might find that the values of each curve don't correspond to their functions. This is because each curve includes a constant term, intended to compress the value range into a visually comfortable range. +If you take $n = 8$, you might find that the values of each curve don't correspond to their functions. This is because each curve includes a constant term, intended to compress the value range into a visually comfortable range. - In practice, since we usually don't know the "constant term" complexity of each method, it's generally not possible to choose the best solution for $n = 8$ based solely on complexity. However, for $n = 8^5$, it's much easier to choose, as the growth trend becomes dominant. +In practice, since we usually don't know the "constant term" complexity of each method, it's generally not possible to choose the best solution for $n = 8$ based solely on complexity. However, for $n = 8^5$, it's much easier to choose, as the growth trend becomes dominant. diff --git a/docs-en/chapter_data_structure/summary.md b/docs-en/chapter_data_structure/summary.md index 8fc838610..2737fa993 100644 --- a/docs-en/chapter_data_structure/summary.md +++ b/docs-en/chapter_data_structure/summary.md @@ -15,19 +15,19 @@ ### Q & A -!!! question "Why does a hash table contain both linear and non-linear data structures?" +**Q**: Why does a hash table contain both linear and non-linear data structures? - The underlying structure of a hash table is an array. To resolve hash collisions, we may use "chaining": each bucket in the array points to a linked list, which, when exceeding a certain threshold, might be transformed into a tree (usually a red-black tree). - From a storage perspective, the foundation of a hash table is an array, where each bucket slot might contain a value, a linked list, or a tree. Therefore, hash tables may contain both linear data structures (arrays, linked lists) and non-linear data structures (trees). +The underlying structure of a hash table is an array. To resolve hash collisions, we may use "chaining": each bucket in the array points to a linked list, which, when exceeding a certain threshold, might be transformed into a tree (usually a red-black tree). +From a storage perspective, the foundation of a hash table is an array, where each bucket slot might contain a value, a linked list, or a tree. Therefore, hash tables may contain both linear data structures (arrays, linked lists) and non-linear data structures (trees). -!!! question "Is the length of the `char` type 1 byte?" +**Q**: Is the length of the `char` type 1 byte? - The length of the `char` type is determined by the encoding method used by the programming language. For example, Java, JavaScript, TypeScript, and C# all use UTF-16 encoding (to save Unicode code points), so the length of the char type is 2 bytes. +The length of the `char` type is determined by the encoding method used by the programming language. For example, Java, JavaScript, TypeScript, and C# all use UTF-16 encoding (to save Unicode code points), so the length of the char type is 2 bytes. -!!! question "Is there ambiguity in calling data structures based on arrays 'static data structures'? Because operations like push and pop on stacks are 'dynamic.'" +**Q**: Is there ambiguity in calling data structures based on arrays "static data structures"? Because operations like push and pop on stacks are "dynamic". - While stacks indeed allow for dynamic data operations, the data structure itself remains "static" (with unchangeable length). Even though data structures based on arrays can dynamically add or remove elements, their capacity is fixed. If the data volume exceeds the pre-allocated size, a new, larger array needs to be created, and the contents of the old array copied into it. +While stacks indeed allow for dynamic data operations, the data structure itself remains "static" (with unchangeable length). Even though data structures based on arrays can dynamically add or remove elements, their capacity is fixed. If the data volume exceeds the pre-allocated size, a new, larger array needs to be created, and the contents of the old array copied into it. -!!! question "When building stacks (queues) without specifying their size, why are they considered 'static data structures'?" +**Q**: When building stacks (queues) without specifying their size, why are they considered "static data structures"? - In high-level programming languages, we don't need to manually specify the initial capacity of stacks (queues); this task is automatically handled internally by the class. For example, the initial capacity of Java's ArrayList is usually 10. Furthermore, the expansion operation is also implemented automatically. See the subsequent "List" chapter for details. +In high-level programming languages, we don't need to manually specify the initial capacity of stacks (queues); this task is automatically handled internally by the class. For example, the initial capacity of Java's ArrayList is usually 10. Furthermore, the expansion operation is also implemented automatically. See the subsequent "List" chapter for details. diff --git a/docs-en/chapter_stack_and_queue/deque.assets/array_deque.png b/docs-en/chapter_stack_and_queue/deque.assets/array_deque.png new file mode 100644 index 0000000000000000000000000000000000000000..5f0bcd35352e81f0700945324701fc442d471d71 GIT binary patch literal 26632 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 Q+5hFdrKY1=q>KytABB}fi~s-t literal 0 HcmV?d00001 diff --git a/docs-en/chapter_stack_and_queue/deque.assets/array_deque_pop_first.png b/docs-en/chapter_stack_and_queue/deque.assets/array_deque_pop_first.png new file mode 100644 index 0000000000000000000000000000000000000000..9d203a63f04834a1445882c207515728179315ff GIT binary patch literal 20773 zcmbrlWmr^E+c3KK%)rpy(k0R%Avu(^G$=U;NOwvO-7VdvD2PadfCG{OO1Fe`2nYxW zf@gf5_x-Nx{P=#H>&&0M=HB+5UEu;H__v-$b? z9~yYh&d&S$`ztFeBO@cfuYRwuudl7Gef|0sy@YOUZOzNe+uGWys;XLAT1rYv%FoY# z_wL=VU%$|3ba8R<PfbQPJnmpUXx{+uPeS zGc&WZvwM1a#>dBBym%omFW=YKS6NxPy1F_uGxPradlM5A85xqq@?)y`OVGEO;1nn?(R-aO(`oY|M>AkPEPL2 zmoEbY1HHYyUS3{WT3V5jk*cbyM@L5}6w2J(+{MMk*x0zHrpCv|CnhFlXJ=<{a4;+^ z?Afzt>Uk6T`uc~5hgMcrsi~=+o}P+|iZtQF-rnAOdwXtfZtQWRZ{EE5b#>FfdJ@?@ z9~>O4uCD&v-(M(Y>_u;ehlhuQgM)bbcwj(4>Zh%u;oY5r;2+w=-tT60OJ=5brdwv4 zeLXyW*ozF#u6Z@AZmxV&$eH@G@r5C3WD8xl@_j=#bG&e<;Lw`qhXK{{k4uNw(_4cd z;<{o_!wokVrY~xe&ysC<62EMX4Wx7@&#$b%9QYR15qXyF@zY-=<i%j;gep6WfhJjv?c>6%z=`m*9syS%i&X!dGx zXl<}|;_a`(fFEY8AHV%Q*m;$-Qxf^p10%*^!*u=YudgpVE3dDw+-hdd zUqp-BDdRTCv?yanW3Gv$M9F_4y)s*B7{1*^{IJ>)~a^<9aPAn~18iG^4(-Dp*!%&!Dz zuy{}E+{C4{l&ok5f}aMNKPh*>g{4h7rWvrtQkM2{;p-^c>nxJ}7A|E`Qi#PD8qXOs z%;0}KR-s1yty#SLCH@niX$ycQ?Al$nPTw6nT2IusXyqwV_{VqW+Xr4>c5O*4BjO6; zPUXIUarF4T5V8jp7jmuS3L6Gyzy?L?;Cn>DKiFN=zY7&~@E&uTbr=nT^%X>PgN*d% z!XKxd#SF&oh-C(G#t9`>nZonO`yWV2v^!~P71k=N^f$IKnSvfUk>$frLgLXfI<1{L zzdsb0{iZ>bQK1rAIZ5r?l>^+{z3D<9A|EoY=e(Q1@9XeZ80WBNyw3ntoq~)>u%X!G z<79LQ8oOV7X#bGmZ5yBe;Qopf?zQ_!0V5h-zXlJg7LMGq2I5SB8ZGl5pYFNBk|8_0 z#KUQnIci7k-a}j1$9dX5%0@x$YE_OPL1Yg;x?Sl9;kYbzYLzlN-j12;wC>#ZcQ67U z`L(|0+>a;A<_dR&zCHPc$D_j@c?WS~`~=UQq;{a+S|}|i0Js0?`ZfbARCNPZ=Pt_b z>B!I_|GNY>7HYm>+5tyr81BZrelgMY{DrmV2P zG~2T6c8n!pPRre(Qi%%b3-HbnQ7fCY%m3Y4S zIl80kB*?r-U?o!NC-cuIR5j6q0NDdt%_c1k@4Ed&N$*%ySlAtOs%9v~lM}STm&!o} z<9UOPG=a+IgzE*3Lsv&B!x^@gO6lP(q6DcvJc_7MXm(jm$R}TbDSm6Xz2or>UR=P_ z(|0!iE85aGkJTDU7#VKdju38~rd-5p$0v)BdA{sn$K&Sd{L#0G=Wut7h2c8RZ?PJ#sD=!ufxI&$!; z8MiA9CX(!15l9Y}4&Su#+Y&7z;+9{p0sxW9@9!4%o&;KOXL^eHhG}EFH+D9dKa)~f zkP|^EovA?PgieFcsF1X11w+$8sT!kd2d)!-!-rayM2@R^t{drl6gtF6Py8oulYPbH z4?hZ-$RJ? znj_gzDFJ($!YHMwDd38nmGm9Gh>ZYBxkT^Yj`n#xQ+ILjVo1L#@J^n5ootlmMuxXE@CnPgj!jCdSMIR!9f@r zSq3*;IpoBv0Zj^2EhmQ8@KTkjKch=d>pX&_qCBW|R^i~$4VuKK2E9(=DCO+hs#(EZ zJ)5cF=0#rA2Yz!-J8{%kWwNg_3v{b3;3xq`lb1+WJ{p2(8*CLf2q)8PFgx0_ApHG*>fko9mDgsRBVvDlDYiw-TIs0 zC3)PdDv@?i>b%R(`2Vd?2uv31|F!bABovM*?o6ARbhDQ zmiPGj6Bot!ekZz3eaaH&(i*&*O8ux-{8vDLE;U9lEFHOFco`$bZa>p|dJ#^qD$A4( z$1r8XBmUu?2Bh3xH$c_~IIhy5Pr>JN)_ZP!Zdtd^H2u3l@_Z?22lJnhq0-eF~_Y$7wr)zkT;}>`Jo{q%}iJ-`<27a);oI!arjZ0cd za;G&^N!-;XkWOo<+mxG{f+S(A#xb`~oNzCQCizgA@md2sNFJ>2ig+o6Tik!nt`|*Z zs!`7F#BZb%6I|czn)65Z0a0k^yvOsomA}&7G`{>Q%KQjSJ21ob{nAApw-j`tvjG&) z;|+R=pv(i6Wo7rU-LEpwtOD_hlj12F6*$8J&f+6^dn8e<0%4|%ug}L^yJTMWFTCQi z0^*i%eI@18i`$iK2cdVr$?s;f{GI!RPtESnxE-@u4qp_p%6Zu^|Kb5;t4^j<7%Snu zCm_UqEh8L+2&6O$W$e?gjaDkdM96S=);9YKv9t{LDSlSP;}*b<{g0l_2)@+NNUx@& zizs7?063U4Ysma6`=yy!Q|jlvrPrW4%WKz{>XwO4v@bT+DRH^_E_=_;dOhF21d4E& zPE}zhO7wX*k6%i5{9|ylCu0Jq|2;5Zi=)0@qI$`CU`uElETU*m9oBY2<`msrqxZT? zA|v``M3rXQM!xQQ0{y3Y0#rs$xXiBI1go#>gy}L(cWB$*-z>g-cSn zZ2$ynC&dnqE{l9!Kw1xt9YAx0W^4h??0~F$uJ=$5r(4>nDqCNVc|i`~^iA)U7uS>P z6Wi}9fbq*rb-ryw-t`2LJ*heDIujqDw3B?r7B>uJchsEgO+zKF8H3JDMV(`~5?FP} zo$t0TkSc*wKyS+jS2fSrg)@xFdS#(#aq0UsA1)9b7hYKKMGd0Mnu9CUphIz$2?A2K>Y;h!*h!{Kq;8jvhs}u;$ z>f_+??^RrcVSUAr9HR^Cgski^%g-mK%P ziP_LOmUa7V+2WuM4>pN?hAc+^PE2XC_B>p%4mBivs8nS9O=2cW4-gXMNTG-3h-f+u zQ3jKkF#QEkgBO5gj$S5%68rOjyG=DArI z8-$2y#1wl%+-BDLL$*dSQe5wOI7#`t6bUSnglW*M)}q$viiW2|(0aG{qa-To4e;#E zMcB3r^l}fSYyj6`fOl}~9t6%}pAEa4N=O`=eX%MJ3_~#2glwS6F(tVP>7+B0B!8Ns z;VwrH*||7tCX!AKnafRheRnp_^XJ5A^gYAJUyYtBY`e*V%x%)-Ja6?91S_o{fo73p zvwl>QIm2Bluk zCJP~NqirsC62$xQX?1W`R-j-PxK;L3T(7fdk|TI~YA!`_R1W3@t*@I`VJ7n%kjui` zO5oNCQ?2k<-(j+4hiNMDV|NtjyezNu_e0^ORC?T!9ua@N7o7Cw$Tw`S-U&0fK=`ck zAXts+#sU|o%+GlK~V|FOzf+YxTOd-WYQ&| zxxvbd)bhv48#MF{Z%!1zG=*pp=54t$?Eb=3KF4Q&W0zu5x<{CFp^HQJQh&2KBBlJq z8p50N^7H+KLX|MTv%*fPmmm-cGUJp&_AL3>u^in3Mfl4Y5fCfrF1FA}S~~>-q@@Rt7_nRJ`D%9wmh2+m093pxsVmnV;Dq+WpT1 zfa$a;DBpE+UG&@VyJ4@c%cI`+FwOnZu5XwuP`0Aq2Djy5v^8;!-m2Xd{Uq`Biw0!) z97=a4o{lTv+&4^k(i=`e{l295>(Qpn5JztG@O*1-;&w}0LqJw&jyQhF6AqjJUDAQV zT~UFwlk^A%%MTjK?z42cTvAl%KMg>hVR#9nT^=y=JnY4+b#pvPp!7A)kiq}d;?EE~^az)M24E|ds_t}fz7fbfK%_=iOCSlq zP+9x8xVRPnnLm$S104T{3WIVF#J(OXPgcv<%q;tpI!k6VBpizab(M@I=+}sPtNeu+ zzhsCArq&wL0MY$!H!^)kUq~e>H=GP%tMV8)RmGp{T<2QgF#)uEnU#7BIkj231pAlR z_@BRo3wBz!p#MT;kjCGx&#C5Ya1_|hqH;b-7C4;?Z9@G!-81lzp*x8~kH3iBy-KzN zM;NY&#%jnSRa;Zfp5ttXOGh1py$b1gtLbrF>rVhL6~f1*3%qi5|J4bfGI^C?5Q@Wu zUg)`!MrjkhQs3A**vtGcD*l||#(iECrxeNRr>0>MfLJXgMyCk$6?@|s8ddG;J;m@9 za+z&@eWS)5zb^5`Zew7^mwK)<=}%gvgQU~F*vEQ2&(1&Pl`{>Nq*JnGz-!>2jZQ<4 zZWR)V?!KNrv|5>kw)w5>Kfh!w@QO+1N4_SVrNk|XCE|))Q^=)VWf@|Cm$J8wiB97p zlLF=7?kS=_Bw27*$HuV^wqp0AVLD21iXL|t>fb#d{xo(w0B>Xv=78vaBs)q`mAdX1 z>1^3Q6oU?Tndipe`^joJkKVRZe*KJP-ROz*OT^s);mTgI9SCJjK@8?pPKv(@$p z@Zx>omk@-r$ymaVYWGnfL$9&D>&D4I^x@BL6plY1j>4^>|L&w$LX$SUZaMggA z6j@|8zZ#(Y0)s^@J;be{9X71>h_C}*Wj??L(m!lRna}0r4Rf%gSS3p+FtKlaOJqho z821Qp^B(nv&QT;rglEqleUYht*&Ab`bSx- z;U7k%H+U`hJ?|d|LX{FN*%ppC;X6%`2aG=y`9N~I7RtNxd>K+;?lilQEJhERw11=~ z3`DVzAG)H5K4e7<&)YMTENdw^)Ltq5FU17yHn1S`ALi?)tm%!Ql;7`By9ZcQq!9f+ zCHA2}R1dqLp{7zgOeY8SGCoc<9l*;#8wioAks++ea=1BJ)gWA&|G`xQqSTOYa$?zW zO9XK>Daq5=K?=^We^lB3uS8x!eEFN%yucqdLz+%`K zjy#%I8Ti%DXA0p85l9D}4T9Z->h3>?uEnKdT5H@0Wc1)?-eD*g8NL_@c=Z{u zSU&SEYWlW+-(CE|)`x;oO0*&MPGO{-r`IX?dpejMy3+fu$?LOp7LfOeILC$KdxW|w z(DxT!+0vm`UY#567E)ZaZu8ZE5=|!q$C2iE(tpD_)Z$)=cXkl;ldQErnJ!4*xn%aP z5eI4u2a=Qc7o3Mu{7sWZJz+E~+MYkou={9zyXab2bMc5090|TYf9p+#*lyLT6@9|> z9)fHhnKoq#6a`@8+M89T+fE(O(!?tp$-yd#>LNX(Q>j5YP+}Bcn2Vn^;M}oIE8LCZ`T0v0wsw9DdB*MyQ#wd+74@j5iQlm*=?d#D+62)e@q7a7!N8{Cmy~c(P=l?sY8T zb5gaye)J3Dd1>D4;lrhyeVIaDiox=pz{?rmj=#KV9kF9Lxo#A#_$$s?)e=A2v$Zia z{w4hl#Q&$D_7*Y2Wr0bC&2F@3yJ~W&QwqbR1+cp)zuLD(YF=4Qq_FR$oW6MvM)g>; z)Ty~!k{yMehN&`VaxgUurf>ammG7rqRD>9ozDdn)dn|02IMytFN*LkyEe`(LV~bm& z_K(w*K63QT(!*rwc?3ErGm5}~9i_{GaZ{Wbutx8W9oFQ`2Ias-8ej_AcX*&*-FGp9 zDBU@Qa1&eprS766aqAt8$is$%gKd_D3(FZ=Z3TRmBzmr^%~O{SoCQYq&3@hQ(^!HX zLBw{J%RN4@I-?O#Auh%#q-fwVp6t!Xr!m|@a2yUHv(s}Ig6ccPR4gc|ZU*KT6(#q4 zs>r~|7bUM13vrk${8Oh&AHhiU?n4JDk#8{odkctf6@?dStgIEw2Ktz93t-{g+125} zTpu2hj1Xvcwn8KGXd2ytS{g8t{w-wUV;(7DM^_Td>-H@j7|EKcRpM8L8E{6yBo{v} zV5Be<3g}b}JDk!6y->6xP}LMV6UdwO41$ALpc8Dlmz5jhJpw|;nz5b5P9OJ-7GSpc&S?c(%4Ak;whjO= zRtoDt50P^5T=rKA03q?i%`sKaDD)5N`W>XbF5w3wLA8H`h%F5L`MMpBVbsEbgpnY~ zasEe^{S?%wtjX;B(CGFKhWY(fvbyJu%8Ab|q<>S~B76*dQJ7TnBUf)Fl8--A@ zOA3uY-?N#4DVHGH@cdB>`DRh1(XANG9b9IEjX!fw8~50dt}&1IkR8M%bSE)zstokA zU~KpJO3q~*Lc#|Z2?b1#H9=FKTWu1HxRi%{xYzBES(}4}u$-sQL!%OwK!xt~I+jYS zxH+~2Tx32D^Fo%FT*bN&Vepql>IN)liof`Y&6{0J$=ccjrAMdGgn3AF98l&m%px}W z)92B!kniI6S&6$}&`DRL%bn|-1end7CShfYAvWwjTrx_Yl9w8pQ8s_`RdJq!Vyk0< zUEBAUyI-Xp3OoUFo6P|`W0*T9YO?8CD1a2f>9|-YHo6cBuPdxH0$w>%*Ri8CUjUxI z@K(%CbwDVBg%?x;a5VrAEYANKks^A?5C{KY@1g9xU@uW>9gIYT1_Ols8yO@2cLe^Q zyHfw>k^kQW>F*bduLWb*ytr>NR0w!p!`uh|SO6a(=XnoJw^&h2vLO9IF%SYjaLDNA zhNu$4+^a$%m*jQ)0+XsgB4`OHNzh@pxT|hxqX*e(M<1tfm@$xB3}gkBDZNM7I?{&2 zEJ}i2#y~>Q>J~5c_(xWrEy{rv*pRtdIZ&G5@pJ#6VN(v5FG0ngEsn5MZXBfcUs#<0 zvT~ToNGn@AbXesUmMV#}>hTwL{27JI+(d#dzr`&9$f5wob8P@CRSHWw>%i*ch#jyi&pwOf$PhKmot!NfmtkSP$EEvhY}$1 z0GVX(Q$bV#KS`K!((krVNl$w9W}@LQajIxu+B3Cr@Gjlv=Oc5 zPS^MSPV;($%Kad??5(t*HB9Qj@SD`-(dhSkGG%6LIi^-b)lT8&fh-Cra<2`89ZZ7zpnV2IOtYn7}oHFpo9`6SSfaxi8`AI zxKE*8ddvkv9r9?(iK~4{jV8 zhOPuw%-j9`avlm@{VMRS@W`YAENRF(VKGtPCUwKl+${&H7~18%ZH3DKZc5{s!f^YC z->lrlMh*cJFVc-poda5%d1zf1P5seIJ+P|h_0yUUi}YPVEt@FHjwja9ZqCR{c9@f^Y zGc!=;_})rdF!~hWYazWd=3>uA$VMswMQRf!3wJhCWPu-B+YwBdrWK)MvqXa(@T`CD z#uUh3{@hksO=gydmb;b@jc7LWt>i{Vebu*}c_TIduJTx?WKcEX( zhQubqQMLVZ307Fh#x541nQgg3Emt6%9-ZL<*OAh0@reyL2!Gu2Iw;ycMoEaMgg;L) z#C-O?Oc7*EH1PaD_;WrVcZv3QfABxjUI<3QfPApAk)!IRv~$qPOAAr(z`@DjQxe-33@D1%bI{S#J{=!*&-fOFE}mLSy{ z;Jc8h5$EF**o0{ZrOqM4Z;o9PW_}`~QiSJfGjz1fY^J0$`389RFm>r!-*@;$p z%$acrRPjYiG%T(;00YM6Bs}J&Y^JywrpZZY9eLTSWM06(00Q8}MFzZ4-WYy&58^wq z3ylLDU0W8JKT7adqP1E+<056Jxq;C=^t>SUSbRz^6L!gji@Q5w^bey->77{cGQ=B5 zS}j*K&Sunvqg~|*WyNek#MFdG$%|OXBPEj`0$g|h;%Qc%7~CnXw!ib8pR%F8&%R6Imym}@JEizwFiL~8h|^Q=3jFv$&PcmXE63FG?E zIUcx`*XzqsRp4W_42qUFyy8~bp1}75FK?%+~Ue z_TXmGMNn(cZPU~{@tWWmd3&;p{^`gKyqs_)96t$e#1*~(*+CN1o5nzF1H${%=y2fM z2ke?RB@1e+2eUc=!|n?&fQVW!bSkwn8p`!Lf?o((BY5Ojm zaY`yrGA$};ELH1unQ-^gAICg+1MS`2cqB13!|pywk;lpEO`%~SvU_Eft(V-+v^_A>*al~gD`xKdZ6 z8sT`GwkOlN`>M=={p1_ZW58IxvRKKsgXn1s8F(f+F`OR(^wi0so;|oy{qx-L8l(u3 zOt4>QRs?(v`4I~GPOdAG;Plckb?O`$!@|M`^t5T<$o=9kN`Us+&CbG=CDWn>x!nm0Ov3gphbKk5<;o{7fqf3dGa4L z&yVi`=bMH3n?5Hwz)BEBz?^-W1gV^-%#M%$u7LU@{}*dLNfa8y zx*g)S7Gfm_bgz&N1D+3-X@EQe$XhX3sy^yDL+*wxrl+qkfpbX_VjWmpnrLZECl|zY zayMtdv{M@(hT0FaqA0h?P*?lgtF3a_b+~1&*DeujnrPupcz-19SUm9JBu z>yxZIPbthxv=Z!fm6WM>6-eZ#UY2pOwx_3RDm{$gkEVi?<6$o-k+jl8&9e`Z?66WF zzM!JK5$`;@eB|IDnZCMn`lR6JgS{sqDI!M_`a`6@k|A!~6T;I)T?WBFE9t)c`kM0hxPF6lEa*y;;7NkwRbz?CMvvr%#waN7&Y+_m;U*F_zFKyjp z+6MeT(uFXxV!5BsQNs?m5c{r|p|G(g)dsT?b@fgwO$sz5%JDM6L!yzA&4u)-%;TCw zOW5<eBf1?}tsElMF` z`@tlvk~hyPr^2%)!70t@&zg$a({Oj=BQfFy_oMoA8bt=zGZG(a~@-iPo7&^);s?Wgel5z3kT4LgC7i1`jVV*2CGL<4S#qMnxl@L}pz zJYz!!+iO8~lx_MRHhacZM}Kj8prVwJ-uEznJSxoEznB=R`emIP6*yJ6mxzbVte_lK ztfKvMbp-gT)@#9dS?kYCPj#u~8)d!=Kdx~H=AHRt^NQpFAG8UgQUFD@dj3%5Xg~UM z6s+R>7!VV_^3Fw=6UjbQJD9I6MB5Yh-K%@N2Gl<`CtctytI>b&130nYFg7^;ZOXmB z5JKIZ(U)xeno8|mf$D=_WA`&q*&MIUGV|6PP<(LL+op)v!=vc>wdhu?f3i|l2ZmEr zsZhU@6x_4Z;9zwulMk-vuT%JV84)@JTbiw?;-<=owV9N8zkc8S?`x6{0(y~uPkrd2 z^@GQ6KZ8GfaZP6DD?(8(O#mBX#6cQa@|y58kq)&xDbRoLxG5o7M1QZ8L+SpVJi;VM z`)_<^>4b`a#~m-ZkuP5^%tRXms(k(s4wkss1?qo`nqr_tvr-Ija;!_m?j4Lw<$(>ZlYG-p$#j_E=}<&VsU1tU6cb}X$Z$H?fxsXiFhr>Eih840fZ zk6hW4Yx%L^aB5@vsXn>>z}fO2(>-ByYeU!UXmeG|7Ppfti^_g`^iK)Y`Dmt+a# z@~>0_*t__ZsaPhg?9VqKK<>K#`C$^?>T`ErXcbqe4C-zP#Gjv@5-mRa@!%+U&JZ+U ze+j9=yafAYGvBwsP&?5B4MGG^mSL6Ia;QNkN`$frH|p~d)^Wml&s8Tp$QU%J_@x14 zCpX~;zsAt==MR_0IyV3)9SE_IZ_48ZV@hZNKbn^HA7=G z^d_zdEknmrU}XU=K`p9W1minyH>A;(`Z%l5^e1O=9E z`2@R4Do4T&=|vE%gxe1I=yZ8zf~Av|L$C5(Zp%HX9740Mb0q|!Imq34c(0f(H)hiaI1^CZxlwP#o@W{jJJOe{If|E8la9BRs$G@O$@M=eBJZ#}zohZa>abhR8*-hrM z4W4esPT1LOCr2+}K6;Nd02{Ag5h?0aaB2e$yCKv*Y=vDy3%iCP6_#%WP(CvHvw^+` zfaH%MV63nBiTMg*(h0A_WpM=lG3pn1Z-z&aL{YM!4Scd-SUr4G^AS^|P zLZ*F=fMg0K{rkE_=Rcu2!xtmIF6f^pvQLCdhv;Z(ro4+zmDgbwZ3wTv~w5c3;jhT!PBBR z7LZ^8bWRTtK<%$tDzP|wU)iMM7K>VTDjSLMg_QIpi0OWjxgG zkjH{4H9t=TpqE+^b)lcZ4t39E_T1(yj>C+OOzNyc^U$<4@a(SrQ0_T_WLS}JbtdcZ z+bjoo9pZ}wc=nToMXnIwPnCj#^bT2DSCm=FH2|FZfp@62-Nr9<`&al3s6r}>%oZUH<6 zG_53lv3&Z(Y@1ck+V!Nv-g8*^dgwaW9Pec*)Q6^c{*VZ8cZJx~Sm!(j{&&mG!zB{k1%qyhEGuR81cJ z$potd8?Ko(2{CeK*n;V-xlVC_qywcSQLBV}AQBajUYJRrSmgMxjr<)Ft0MFZ*6PclB&)TNB72-dC zDdj$o1E-Ztg4i^+s;4@@rLuh!=daclNp~KUR7BU0{QjlU7$}1K6r&NwAE;j)AaA;N zdj|6(12>#&b^#_LWFGN8d`ujUz8jbq^-{Q*4KjB@mrj7pt&ycc{QY8*>%7Q~vTtZ3 zr0Dx#n;K?b}1duY;p95PNZrs`63U!2mA#S zF7xonJR(sNB~BDcW^TL;SP;YN9=aL~UFJGrn)d^v;9nZ}k|>S$9J=@&g=}GWxrFIpAXe7S2#V_*s)PO zuv$d4{F&u78IO0AsSP)IW3(|>Y-BI~zA);!C#Cy$3fV@b4LZ`kS>h6jcu_atoeVx+ z0CXqRyxf4~=x3gu3vPI(fBw6K2odmpqLAi&l;sV!)6MgDP>OGJ^06B{xv!{(*cQJn z`AXV+4iA3!&?S|2U8a4xmn%s6)o{Z-VQ+Pg54o`vN~Vj#C^cQf#;RT?#SCUi)FQj0 zp|IZ%?$3a$K35|(pEe-M^N{5N7jkE6f(0p*U*>t-1LeB?HPC_y@{XVs?Bjfy)$Hv~ z^4{7EUaMTa7~bJrtaJ@sQrXMXde7Vq-428m93>$#s`uHnD?y^tZ2B(z#jnR>#QQ$U zHuH`dzfk(jibmrN&W0h+KW)~^`jZ@DPF~oQsEb+GRuGhAc(m8Wm%RR!fpfE>-t4G`9=rO3U z8^8a|(gdJvxeI4Wwyf{rVJ*7GxUII|8{RG|RjphdG--N2WcAw>5Ezn(eiru0iz;#) zXx5{cV9IdhaVuw0ln&(dTV9@*dpS#GK}1_8LylPgyNCHS;`ZijDS^d6RSfw`tv|u* z3*Qr6ENMT-jknNOpIByrf_h%9pCk)w59QD6hwm=GKY-3u(LWaY8Os#QzAL&yhzv_4 zgzNZAps2k?S4`&Gx`xwuO|EdA>eh2x?A$vqf!j_mWDYM{OGgK(b3 z2ayeJq~T5%(~iJ6+sg$I#$CvbqLJFXK96~4Oij*lSDkURTlDLatu-$64?MB-$eg8x z9>o*zvA*8(qXT$nX(8r#%Z1l8SsY*e+a9)Hz_2JOIx})VV*p~`*Y;~BtZ~Q_qF2!t z*45y>R34SB2s=0;1gSNFq1V zX!0M39ku?CL=hU z8SY}DCI`PX=^_jBuxpgavS|cJ?>C;}LyrC{MJhP{@#l|R3}d7q%DQ+v2e@7Fp>Aec zX~z)4!iKhr%YcoKe0|k*f)Y6F{koAPpa;%{%^{u>8|WQwa+dKazro~XnvqgILlN52~W3*PZDtX?rC zKl={iv{beKZ@kZQ!!!24%6kF1 zKin=+8ypXzTvLF7@(Lpnl8c_`>&Fowq61Yxdnf*3 z`RtnCUv=O{G<`Od0lgU`*TbeXJ5o%46?5e^u0aeJWGQ-z>7V2qgsU0Z!Q>iUGWq~U z`o#C!3wO}QJaj`->a(;pnwc#LJ06n=c*}ke$n$TW^<1Y7W}-i#gP=Dt_?v4IqeAHD(4E=xpP zYeX2{jPMQ-0`Jrgr5Vxs=}Cv+gB?;@IX{)+N}gfZm|)TOV1g1~)_M_obYi?}9KS}S zz3*Q+oK;-FQp^X7KEv!`(jOW$|Bw_V+F-^>5S6|0_MpiBKF~Kg`sF1im^BwLzAHN8 zK}V^<1=Gg7s-zS_X|~)Gs2BTWJy**nhduQZj@cvq31T!Jta;EIO=k!5H)6}@FiUlg zeI*LsA2Kz~tRZ;!HU!XkP>)y2c^h3TbslX0zb4EM;?opE4ZNPBt7AR!$RbfP<|o6I z^L_pOgk^~8JB0!GR!2LmCaPT>QDkDnj>=3_$X>3=Si%k}v#|Z!S)dxir@^_0*`@~1 zE@0B28GD;8v~DL)aTdIOgh^oQi4KtdNEnTa?JlJvyf>SHzJ@lS3EOMs^gL>I0AZQ^ z!lqv)dvHN62-iZkE_m>BHyHPMu!{z(vhX}hK0@ixHDcqr9O}R!0J77o+J&uC7L>b1 z4xMbm9M)x5!;}{*%>r>0Q=)Y^$UD9JIX#gjeIzOXY?Nd*c+gc;Ssf{ndA4Q=8xyBM z{Csn+0~p^cYxTwsHVT3pr>Zl$t1>hM#E|iGAc-??k5F8%06E46Q`9Nh{_SM6!FC_69KdaY( z_=ltZP=99a^87b%$~r;S7*XA|VBnGZ(bOHZHlU;e-MQOF@Ih@2k}fyY9=odhXvA9E z7LXJ92)+Mu2>}dPkOZWIktsdN?dOM&;X2i0nUO@yM18I5N~awUSqRKBI-CdX`>>&p z9h$O^)Wk%F-x`rFr29Xma4PfVxIaWs!J}o&SSuYxRYZc;`>vRNC+C%cJ2RHB*Awpd z4jtsZu(6yFDEJ3yMozf;AZkfvj_TV_>^k*XO#xJ^6A;_z`9f*-4+D20_7!+Gx;yk( zI6>C*e)F@}GtDmJDo0vF@_-kGf+AScV)C|p4cNL@^F3W1%RG##G7=MD(xcb3XuWv7 zQMcK7yw_N|O)cK$M0_!u_g|au$d}cbDhQx>MeLwLd%&_p=ggjZ)ZlP0%h3Ib8%Sjy zv}RZT!u&7-_-E1W>ew&TU8|T-dMH&g5_X)S~Ovj7O{!H>V%mL5T75Kx5P0Md^*1C_OPZr@qXPSf;*68 z5U#lq8Ic$Pqk=$UDY8mR<;xWAtKOUZgn4t{rm|1vYJ=lR@<+)ebw2FQ@L4Y`JaQVUqc(e0&li9J^V0~PrtSg5-2&+ZgvBDO|%e+q6;${z(Xp2KsoW-9f7`{ z6u3|ErNjeNK*BIjlv1acp+IEffJU=S37eia(8MEV!P+31D+HdO4Z;1%i(iE*x72i2 zKqY2o1jLC-;{Bd7ZTQX?yuPd5b^bZ#WkM`jE+xAB-7d%Rk@Y{Na8~`7y-LB}nSSJ( zn6yAVq0nF{*ex}}Iqp{z7}X@+R=$GO!CT(JF$$b|XnqLXS(oUEQe zACx$*!B5V+6eh`9q{iiP$hcFu|G%NI1vQzOs zjVEbjjV)dYMpI`18dczGM6$qQbHaoL^8bDDKttbYsx+%BwH%` zGAh}ZEJ$b8|etSn6pGR9H2{3jC&IdC41u*0;^!n?==Q*eoPE-!|*9#>6yip(3 zK~=`lzBypEH@xc2wTi?sWL<&eR3|)I0~HL`qbr{TXOE$s#k*7yEB8=v?;rMwZzwLx z!W+P(=Pq1_0XOmFb_|)DsQr$g@wRdoW?ULa%TW?#BrQI$$9fVlqR-SM-6}*K}8`kPR!;s%bDgqdC0}xTB2yzp95ms)b zXu$!rS=O2Y-tseyi~Y)9&>Xz+DhL&AZRUm)??JM5Do8zuE%t(@KSfNaB5{rA{6}G% zYgy4yUZp+bbk0slEM>LFECLPv3TsipL=bdQgId2xtw$w%;4N<%=<;VKc7Qe%B*tR$vx6_9D}Tch(mjal;IRez z`PpWB{$3?Zu-(GXKmmP=86Z{_!FcdivXe#7CMHPMMHQiPrr&q)v{2hxIaTDVB969= z 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 OSx3V_{kf|B?f(K|DL(fA literal 0 HcmV?d00001 diff --git a/docs-en/chapter_stack_and_queue/deque.assets/array_deque_push_last.png b/docs-en/chapter_stack_and_queue/deque.assets/array_deque_push_last.png new file mode 100644 index 0000000000000000000000000000000000000000..6b3baf39d78e1140c010d4d989f9c274e9349869 GIT binary patch literal 24537 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 Fe*wEeD1!h1 literal 0 HcmV?d00001 diff --git a/docs-en/chapter_stack_and_queue/deque.assets/deque_operations.png b/docs-en/chapter_stack_and_queue/deque.assets/deque_operations.png new file mode 100644 index 0000000000000000000000000000000000000000..a39788322d9cbbd0e8cb9a8eba27a0fc83475f57 GIT binary patch literal 22496 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 DsD645 literal 0 HcmV?d00001 diff --git a/docs-en/chapter_stack_and_queue/deque.assets/linkedlist_deque.png b/docs-en/chapter_stack_and_queue/deque.assets/linkedlist_deque.png new file mode 100644 index 0000000000000000000000000000000000000000..d615020104d157da4fd19cdd8a2659410b8dbfb3 GIT binary patch literal 16982 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 literal 0 HcmV?d00001 diff --git a/docs-en/chapter_stack_and_queue/deque.assets/linkedlist_deque_pop_first.png b/docs-en/chapter_stack_and_queue/deque.assets/linkedlist_deque_pop_first.png new file mode 100644 index 0000000000000000000000000000000000000000..b50944ef1d963a1c35bafaf44f0131948b7e9009 GIT binary patch literal 15899 zcmcJ$cTiM8vp70ucgbl90+K3%%{q?K+Ufrs9sDiZ>>UStenMeTu6sjtU+5iyX zLBs$t5?}mzFJu7##H6YAK;u>?(S|&OUv=`vAw-L zZVLCVCu?qFwx_2jGc)u3`}b*SX|G4X(eSQ7h+}!y1cuh@> zr>E!8(9qi2+UV$LOiaw{*RNMsSEr_?CMPG$%E}ZJ6iP};zJC4M+1WWVGP1wFzr4J> zwYBBy>bkhNSW!_?SXekPFwoxK9v2svlarH>kkHrH7aAJ6v9ZzI+$<|A+t}Fn@Zm#s zb@jJz-yR+wVzF2!CnsNDUu$b?RaMo%z`%)#32kld*49=%J-yi2*qG1JVIM=2l9H5^ zloH$C){WJ^Xbk+e_^o23y#H7K;?CmQ{#w_M&fcHBdHuN|DZ#PtVqcU7qAeD+0FZ7{ zRg{0=HL><70B<<}XPy=?6d?YA|GNi!Fo*dMWyg69^#k4i^%E>3f&LGl9sj4O|1}p~ z-AA(y9>aw10I6%RTTGLR%20@QVE!8Kz!gm!rW&rc3;u={UyfVuzgib*3m0X65B>FF zE;X217<~2V|C9d4c1O)u?{quXFaamx-b)U%lq4u8kQXgSLyRqY-QE&EYY#B)$u4*K zIpBtaCFAVHh zFf(CD%`bA0!?qwXd^hYHb||jNi94y?(PVs-Rb47UMt4ph4MNGVV>41zafW6*i!Ba) zLj}8qg5#dKOg_!+957&sqnfr^;Y|0Iic8%vww|^)dY{q~d-0^9pQv1JW%7U+Ld^xq zz!BZ|G%|=(>wd@9Q<_KhAJMhuj$3Otu|JQanu`#=cfg23!?XuLeLg%#%UgtDy50|~ zM}v!%A;go1$iUMz>O3ArGaIY?u6Yf988Y_(nKwCt7)Rj^9ILE76iieG>t_he<52^Z zp#b6Zg$<)I+37=F+snu!Z4#-?dJjbWcl+bQ!_Jed{_Y>Y2WET#$uh3Gk<)WhgWoUcNWZ_5$CNRyJI-!~Aw*;cF#Xe?msn{R6Y$Rg++zf5c4{ zo{lmF?;kOS_+I~g@iRn>$k7fYH~55{C#6iG@KOEDD&{8p zNSyfLWp-h-ccl!>SVcM&ohl#*`MezY0+>d=Bl8DUWcx@-GSTK5ABf7WcDfp+D!eKz zsYI^9o$W7GfWMso>3+Yw4?H1v-f`!4cp9Nd$_HD>TB@wES`XnxyZn?2dm?d8Ml$Dj z;*Q=XI~Ag!Yb3))jdWwuKNyKVi)$jPPeaU-CxPY3(C zppqPW&870co7_2>qx#pxgg|5|O`#Dbz0~9HMP<2IGiwB4D`ELc^x+mo$L{$Qathnzn|d`4 z_~EF|&z3H6deGsh{{~?S6n3foKx52vM%-uHp7=I@HlpZ?^AeUNlFTMz`bJ{xOd-gR zyi6>hOyyd5Lka6#wEZ2bbYx%b=7u-7tW!Z3e;B*e*!6v)UsqYKj1$n&V5oQVnh*(c z!PI#0kcdF@CKQa)EdCqUrikG8`)$#3A5r&}{RZ!y+b12J30ZQC64?J2@DDf7A$(t7 zmta*}{G!)&@u;xX*(pS{A=;Hlbi9#I!5bEK@Xt21_OO;X{{-*RDCfCGa1=H%hU(QuOBvYa(HCnDP(7*5uJ__)$}-@6NOym}JVbj2e1 zW>9q2>{WaIZ)!yzovJCzMz2lW_sIvaM7?b}F6A=jTbS;&@mUNuQ^FB%d3L zT%y5T^Nfbvgv^N8^*BVs=xje!6pAgNVe(VIM+#|ALYVsff}saj^ya*C0(6re^BhPq zv@qsfMUE-_(naw9ro0Y6MKv?wV(%kYOFI!93N2=1PAfxhPy38lHWH7vCmL}Va(_a_ z3kgGRpNsTCaz9&IRDW|IO4Em(+wQPTQ)q_a32{#4;oGD?cIJTnD4iV9b@Cj_-|uTI zn0tNqpy{n0Zg}ZXqa)?7LgCg0@h5q&3OWZiyANb=4?XC;;lYa>cYjMf@lviP*I@Tl z)0S6RWc7JUlKDqgW#mWEC&`cGvsDWH<#Z44lV-|m5Czb5UKHNnDy_WVzt#k0evO9A z(uL=F-7J<4DN^W;AbXuja*kZLx)nP8znY=Oru`?LU{jP@0m0AJNSWEUtth&D)TuKh zM${I@@>QP}F~&?zcyJvq%#9IB`_Rh?uOxnOmaVpt1^KoUVJtSudL;g3A$4rl*Y}P? z?pv#QLsv8>PZXAh65qVD#>Mz2$t(T@G1;K25oaEeMii|;z#r@0<8Etu%uw8__a3yR z&&sRtSX^QBgiSI}j$nNzYh~7= z>%850k%y?QDI-r|h%R87Xh2J3(S^><7MA>KCG}`OhJ`78v=-4JEb`+cJErR3AcZ5m zldrX=qmukI{n0QhpD7UZ*+xpdLU^h7m1Z?aZzB>14HdI*<~(*v)u|;EDb(c=qgN^5r;5f9ma9N6e)&YY?9lF40be}{%hhGV9uTBUw{L%=B0_6+Da2Wc3cw0RVWLZ2 z1Dnh@AM}pv*7s#C&m{24gED=D*CVOBRURH|)?3>B^3TNVhf+t%oo;d6%BcaR&$7l5 zc4ClQ5}}B>5rV&26lP)tH?B9NCbhbQVC?k6m(WD&E~&T?eLw8oC{#bFZzwWW2e9|7czV!ki~dBO;6V zVnxinh@B#{@N*oe>(+G4sDWKfnZYPm#=lR6*)DA|B&Ma9Vp8|LDI}64^(9$fc@YYz zw2WNoZq==Ra$)td?v==sJf%`{WV&iCH22kiX!+2`ze%dyKKS6W~um^ zHLXeAAd<*Qf-Oqb^=#PNt+S@H;#P3kjoozHIJL(=62I0g*dU$%Rb>*an%|$`s|%O6Rrvj;O<^8x{m3!q;*E2f#z;*t?8Y)RI7_Ih21ga zr)NK4R+5Sr;_`P39#F)nNxpB>m&^HnRr;~+d)+>M1I^(P_V?}TwsIW<@+{BwJ^hh1*Z zhFKQs2lDY9AFsMj)XMml@i^P3B6>)KyLBRh&c;-(#SoD8{1=!+yO+3T^4eFOY2GXv zWy1S#Nl<&8Gt&~5jT73_O}hLBTg@u5-N7%p{jkHS48HCEnNgCO;7IL2_$}yPJ-hsh ze_-9E>dVK_;RZ*{rvIx^_-ON~i|&Ow6-58F+A4y3r``)W;l)?FuMoR6O-t-S9u$TF zrspt2XMOm(mE+=|-~YJr5EFc7&zPx2UExAq4SUH8BS~%mt4L<%Bs!MaL7yD}V}(klASR{9s`2dCC=^ zWR(;fNcfHo5$5|hLT%EBNd?j(fm-=}J%#<(Afrn(VcNtTZP|_O*AGJ+gH$*QIblXF zvt5QWvH}x%NQ)3^#hzF9&e9Vo3ZT%)&oaHgJZ&V|3F$Ck@TzoWiD%~(0S-G3c!~GW z^5pbh1hST zIzI{_1MgsbDm`muY!x0cwwERB7wYCuPUXJtwMx!Pv=O}s5sWE`6UU!!x}gf zqPwMOPU6))IId}Kcw%xKn94k6vvi?E_7`T+R%U%CTrP5V6@ycvjz6TWs^JV>Z?^}Y z9`_Kc(|(Y*Af#XBg+``t%}zcf@PKJ|rd!5Qojmt((^VdBg^R6}pQ0}sWT&DuT_3Wk zwlovcsWgXC&3*a`HhjXxIy2Av(%h-)$g0h)v43xd{nKJ&id3P7%7CXnBrEXgBs<09 zUdpG8Z3#~q(9gQBQCU&U2~hSjt|-u8V(e&eimMu#MB*Ix2=3eBzYYQK_|>-nFZlJcke|t19?;l=l#nv~!6-gp8Nw{P5z=$!Nk)Dct^#?xm^XcALr=<=Zvhv2+rfMp2yrU!&+=H z@}??Mc-e98TIbIvYk|Ld6t6>M_f?nu1h8I|Y# zbHJqEj~gb^^kX*3PDhDk`GGo_7SFqO?Frd#~Z`#EZ7A2`ciJ_(?Axa9!SSlZ6A5>Gw{}vKyb+kBT{4)rzMl zorfADnfw#xhgBNOzL zfY}oWWPzZcXS<_5*5NL-z<%oM>vATu{BpL|?6DBqz1w}@?! zh>7Pat#U(J2S5)m!zbb+#c|)x+f%9`osIus*r9c)v!*X{+B(1g^R5pu;0$YvX9MNb z19)#h9N>U=z~D(*(UNQ5(bo*da}}K=WCu;1c!0x2saZAu*V|EaZ*IZ%fqPvO@2(9P zZ9X~jksfV;V7D@Ulq^!VFDahfBk{d5Ji#DsK)HG$zx zh)Xtu34Q|u#_`||Yg<_cpc3v)h8@iL1&ryPcBj?a)?eDMhj(lwbg+TgnHgXcAzY8I zquGkcdJ`$ERLZJATxotOX(?;Z-v13?H95vKl8i_31h2`i0iqsnQ}0E)g&0`!TAVW9F1 z1s9=E_(^mHfqR2MZ~$#eXwD9T&_Lh?aEgQhF&ys)>eMj+g}K{|hHK?Aet(y-`j12e zM~*4Lg~k-@dX7T|B>&jGJd}kGb1urtP(>y!5@kvPJm*%j`*8pM+G6k0H964hsc;P> z#Az@`bVq8$(Y27o+iRt8P_<225p#Tnyo6mu?S$`$b1jCb+}8qqy;0Jc~(LwtsVIUx72)24uXeWwo+WQ{C=o7?(Lslk9aI0_lN2+<+Ukb=s zKCmPG=*XFvvHxO4IOr?r>fPE>Md{6G z1Q#tL%=BQeJ~0)#`-mG|fR9K>boZqW8~W;EFcu16@axRZ;t@&J4i#yb7%_*`vGomq zGJXziPIzgqP>Zzo^U9_$27yAa8_RULzIllvP^3hmWp*7|{rd%CEJ&3Jhe5-EGonsF zZ-{<^gIj_~5syhexQ3|X$+hFL?dwlkm~Sc81$kEtGSPv23yD_X=4s3AX*SqzosV)`uldL$+^B z@BMv{G2Fu8TYVusZnDBV?StY~AA2!%f$k4PTR*J3h>d^fq7$4eK;hR@89G5nYFrVI z6U)8uG^|=mpW2)>Pvj0Sjk?vEXd$X4| zrVFyD-xEKE*qY>lHQ4jQ(j?M6{X;w&bX(huYA6T-e{kYgIyJqE8cT4!Lm=K2(bow>^SU*4I^$eM3aMyR@J^M-CWCu=iw>0 zfY9p`Q@omg$7p7iE5CjK-(xx^F2Ru3)tVVgjLiz}iV=VdN@@hWhwjYjZV4nwBdUzMG{C;gD|b_2c2&Q!X1bduj;L}+TVFw!A31mO z|E^Ld)YVrP3l4cS6WScBVU7{lIX^ktT1B@oZWFxIty*iSg1oM++ofNxpWtg2E|(_Z zkC!(E!^iEA#j`gVpiePKdAHLx@40Jfl7Sz`qhsPG{=_x`t(x&-!FLibp<>AQ?k%KP z6L=nflUfKET!$}lNg)TuX)xocE^ZZ*Q?-NyOo?8R_8iOAUV#@)Aa`$b^kez_DllYQ z;D>icT61l^Jpq{sxSzw@Rp}3UHDbC&;L4d4G^_WzD;$BH_;3o6pQkclj>rw%->Q*5 zd-7@ex@NZt7%oK?4@}S!MK5T*Mo1{9y3!F2_^AJ~!ZI5Dpf4q(z=egig*=)cJplS7AXLl;AG;|CN8)ViQ_i`<;y+Z-#>&2 z218eZ)oFx1e?JPt?cmIL4b~HDw z(-88{1sg&ro=T_ZWj?jZA8kaYDkZF{4X9C?PVl`-2PHx3i#bG^xoZVpjVTVFXhphn zyuh&MiSIG+Pz2o@m5M~TuY8ZHn^&$%!Z}RFzZ31jjqsjO1*B8RmkI`)uu~N!hjw+R zJA=$~3e1K1#1iPiT^^$RguB{QbxkXDYrL70AA}YJVRJ%1cks7r(D3(HWMcEr%}K&7 zM$F?^i>)?=$lQ_Awi4!{6)3?QIVY+#Uxa(7SoIOXZxR%2_engA$Vntg4L?|8w=wh( zw|+G-7s&_8Q5u}}VY-j6Y1i*IbH6@Qr3I42(?^?r{zJ9zBwlBfX5>zV5p-$T!tZD_ z?ZGFSFcR70w!}Z!@$>WA;>Bvs@V>0^c!$F`YFOeiUk$hgd(U56>bC6dgG->T@pKXh&Xas69r>k!vXN~lgl(c*wpZye0f z4DOU6#tM~vz+i7|VqyK^ySam05)$3se~DPhtKu_B6HmwO}!vv2%4eh)SM7(uaQ z_$j{oT$?pT;(nIO~S=ru{^+Q0r6BYne>UNUap%MYIqWqlt-goUp$FL9F0 z-K8c&Cs`mRH0)Ltg2I=WqE`m5>0omt;N8g%biSf^h!Mv&OPTZ6ExIy<+FN)>uiTGF z^LP`#RrEjEL$~e(xX|FP&jn*_2H!vay7)Q`Tk{+>cT-RBF=@4);6_Iw=R{bY`ce(^ zwRg_m>k25h;HTi@*GScE!FLWH8E|*F?M9qF{k}usWKuAAhUWfQJTQy*7139{lWC*( z9N#lUZDg1NyJt>{z_NXoodU~%lOn-VIE4ZxF@^ejFT853k5wbdOQ*xN<7l}0=$we2 zMvM{P>b)oHbO}mDuyXBQD8|-ElrUUNF?ble2pNc*wE9^h4IIB#La4$n0_it|n#v=q zbIC}Xi~W`(w*}?|Op$TXg%_gapzmau^*vt}oLl>B206BJxr+y`{DqI_T9Gfws;Ksa zDyb>)z#r={qIAxqb*! zg>rCF%rV}k%%4ie@4he8di}UGbp2QEtkhQuEl<8rCqIaNJ{0qD7*YB#{u7Ho1+Ib6 zn$SC{2W%2%pzUxjJu&@(gXYzbM_3uj9>zDE(w1^9x9fx+(#NOhO>(a)C+A9I-}f+N zJ}IFtxb)+KU9qN@+x*!ljs{2FPoy&CKfIW6gEnre)Zd!zPDle7!rjWt%rbgI6dd&m z^DSNkm(aKup%>z&Xhd8*ET9G327ecGf}~)0@#UQ<;Sy?ZtytM8Wr<$`p5m0H4%Q5=B3DV~UPGL5mW@=I)r4ru zio94~9p_yy`Mn23f&&HfwNMm4cH7ttdcV+01gRY#eu3PwUFbdY8XWl9omk52Ng=Zw zh8T-n`nyNJOWWfaM}3~<2sL)`RKE1%Jg|9I`IBr=iPiA_N@sWF8>&A$*DsZ(JY&Rk zx?C^tD|C`Bp*a$~-j%cphVME3e#>3Fx?@XqJG`mxIK{ABu`=H?@Vm=@edRBp?1;#+ zFy)BkAajEa{)Vfc_UQ!j`jc$4%#xl3r}Vv{PCUdE$j9(bJ;G;{dhS&7*X&FOzUw$G zesH;0nO=*6N~3in!L)v-!RzJIEAM!e=~f@v#MxXqfoD+V91CfepRtbq&?4V>>1ebc zzS$D=ZAgfOYTx_T?t4mgmpdaR=GSLWaTl-BxSv=1j8V;n;$4CTufp2!&#kNCPn8EZ;9#%WSBf;K1iHS;zWo)Cbd_m@6(KRi)s;YJ?g1kR`(Xz2U zH~VBIPQUF^3CX>tz-~Jtygn~JooLa*Rkd`@KGQnX=#IokTZL(q!m~+J0&L%}c4o{F z7RSLD`Bis6HWWKNNq0goaPP9z#(*5p>|2QM$GG&0uu!}O@ zle~inrC_7JWjtqBXzn(VX16%L$-Uz6wbyvpxG>=dA~M#@w1~FOyCGLMP-8qvH8;+O z^vXs4X}NLm>7;@(Gr{^8lJ3_4C8lKznmx^={LZ5ewaX=fGsO$8#cdZ_*7ywdJ;P;L$xl2s)9--OxojxGMV{(G*F{o1;{5%PrXrnRlpY1u>?38mtU%SAo zL&Vq;w-0uB{5jVX19ftlwE~(HXd|d}7NuE3dszEZ_tv1RFkO!Fu_~I9hS@Z^^iXzM zq3yChiT9!~3y$Y>C4h)!4g6DYi`dK0vB|XsE+(*qoYD{30 zNQ9!(r9Smmkw1PPNsK*P{Q~HtpJ%2CbG4cItOox|tC~9nOegX96V+gxQFtxk?Hv4A z=<&j9Y6tZvjGJc%3K01$YT!$sG&9ac0Ky49byuYze8GTYCpSW7nn%!R-tXR{UyW4*i(_$>J&`@%yz>_J+Bz z=KTH-{)U!c4<+~gqB8L3rY4z9k^6}r$sm``yGsj{{Fs*#nAtbC!B4gNHxWQ~I)eHT zaV#9ht1``satg22b3}9;hE4*?tx_{Ot!eHDNM=lAm;=~5lZ9(1llJ4;2Pv(6940+P zwCYK*E$=_5VoFW#dUHgWgSo=#ulC@I={Wl!u99PHJ8 zppj}vPex4X?6tmTahPKCBd-Hp;6{+MemWm*Tu5}Cie&Bsf(WvFVNX-o>5yYAB}Hr& zwPl4?us~0$*mhF>&FM|La^wI|+Orqe5jGq7YM=~A8=TCN#SlJ~;rcd=7qFQ?F}Em; zJZS@_bzq~{g7~CboS^xRg+r^eTRy2)MU~EEu`?6y1F9TFJ`Xm=c52K`U7mJlQ)SK& z(Qp5m53vKkZ9zp<2Wr5+v+5U0v74CX<&VQQ#WHPA1>i$22)7ZNBubX5XWE$$tp*!g%;Sd zst44^ciRKxTQdY^Jp4}WWApD<1oErZUR6RY_j%(cCV@JbqJ4&KbGRG0Oql-sSHcRg zn{Za=foB_-UztGJ*9l>Le2%l+2wfxrTYQ7!>69My64Yu0!;?81f|_Y8gabeLEs=lt z^9Cd83NL{0R*7Gva?~;7p$3)+{@LN3r{I1;N)7Plee}KJ2XTTiCH}5O?kOw=XUw9H zZXs1}8bn!aOsXI|9MA=uHx(Fn8^WoQLa~&CEV%MZH|*Dm29ngtL_vi7Qz;W2^D7Dr z4ZkM{s)2F%{}cLh!JmQ}_1^QgMsQ^jMqW2JZT6#8#Jl~nF|s+wjQtWQ^+i3QiIZm~ zWY1~7hEVZj<+4*Z3EQ6uq&TI_fvTB1Md}?=|rquF= zhaLf$a!Ly7#w?*5!HM|QX~Ov|10pvL8>qgS=)tTV-%1nnh7xx(G5b8$B^@=Kk%JM}`EH~91*fBPD zL0J|d@zyKmZ}?YMON0&8r;vDx%<}o~LfO$m3Jymlw;Gg+rLPP7P)76N_YM@5%2?Kk zq^ArqPhXpUtvt^EX3Rac@B^)AfvmfwkwIg~1HSQ@Yp_{h({{m5|MyyG%onSgoWNdB zjFlg{fWDX_9CKPHJQBxhwBcJ`S}sEzpjN?B9$wvb=Hg8%Fte_NShLB!?DT~o9qTIZSm$Q zRvk4HGm~$w7jbgqjSRWD0sQ1&@@!qqRc=3}wk`QU?@0WBG@QQP@E0$AffuB8em?8u z8TTD^S@lAD@ve+0n$YNhm5;T?O$t4&>gflLN~s7`+7cS`=GBl8>9`d~UV`<|JB2UE zI;)VIqn8!Scwaafe%ro4qZe*>=RI$p&O%AefXKH2md3OMrq$FTEK+=FHs!3(?FKP+ zZL`Su{36b!E?B5HpT5s9MLscwt}qb_-9!I1)JXExL1o4Sf%K15Ugvm6q|o}4jp9n^ z@h3$K8O>42;Q>G??EFmXez^O2!vrzOIPH%}+JhckvXN-Q%Hp}198XrMY_#4+IPc7I zZEUvTkoDPYTy%Dm@j_dwLDI^YzsR{B-ozzvSL|_y!!Y=v)@w?|19f z%yf{gRIUHJ<`8!Ty^31PN!S&IM|}KhZ*vyenZ|`$?mmy?>e?}!zxCv^SnsaBz?)=L zW?U;s_lcD~n*_ffXW7h@{W8_!Kj529NlVMgw~7?561o32xhln#e*eDKY`^k^*K4B)C!&>`>fa+Mre-}boI4rcU zz^_wh#cyn66cenWy&L-qdedvH)`u=!Ro&8J6aT)%cmbL-M{af(Q#-ps+%E? zl)p*>k^6A2aKY&A489?TJf<*2pt?4})}@$GaJz%mtuHDS$=#`hkQcN?c=;%gC;<8G zZz~!szWrg_#@uMPI5ch}i_?c|kr6_5QtU2XRLFPFj6ek5#3yi*T<2NYTWUMnd5JX* zYQ4_pH8BHS3lQD%rSY4M5g?G`^J4dBlg|`-FHxBRLDXZ%_S6ff!oop>-{kuBFR1Zn zMj-;(XvF1Td&@M@Q6BAHe-Sc6RLMo4^B_Wwv7!2>0qk`5HfV*dZ(;O7smPp1OpTs^SsnI&B z{17y>sra~5pn~us-SvNynRW{clMwafN~?!~uE#QLxC(QA|F72ILKHFcr)X#5%nd(k z94p&AKAjW5%j2ZmCoJW|F2&+Uj}{fNc*qT>Ut^+zdJxpO7t3L7-v~sWAvUz~#l>J* zD{RLH{9r#86GkKwSPs@Gw|by)larsRcbla*M9aE<#(9AZHA4C{G1_u*X_#GBHS|lZ zya-a^gA!ut5-i1Z6JfT`8&<|U_XAqH*rJ#i!1;Rku`>68%#B{tO0u;}aAuAHAQ;_`U0pm1 z0#?CG;|9Cf?j~Vvz2}BDj*d;dw#QkmJygg+aMNb)fSsV+`}t9Yr^ju#5D@s<98$v@ z^cB}GZJx{H`j4Noe3=r>f0L^I^ryjmK|8j5uUU$?Ms7-mxEKmnN6b4YvkmhEGK#0b6C!->gBTGgpAqUaB;j~;sl z2l<57D_s5cIFHAQumUEU*L^vJQDwOp@4hAbF4PD2S0%TN@)eUr1*jBOxL3~Ps^UlxttoxFR zyQbkL=vhY6!`mQ|6He})7S_)HFg12zVsk@B8rFIx(32%;JI;47WeI=B=ldXx_?j)JeX zIUzcjsWIPMJ0iWKMSykys9ef7D!qy$#F%D)$|_WUg~iNg3St6cjw164xV?QZiWC)H z@)#G4_`OHQ7>>q#UtruF_s?UCQF9E;ML`y2@OC!5eS>?2{RT0|t-i*{KaWq{&*fPW z9XW_L$G<5B{_&jf8vPcz@vr`)w7_Nblbr6bU+`!W-4y3pP! z_7uU}r{-iwMbTVlI)=t^3FDrwoJ| zki77AQR6wyk-4l-lFY00Um7_R9V8rZUxCElK9M|U&PSmBD&^Wuhn4@w_Ypg3EEi# zLEVMt%T!~x!jkqBxrdcG-YgmmnmtY-EKFV>@j1ZDoLnTGGrphDp_&`%ea$lN0r=1`T=h(Y8YD3^z62**yI@ z$sf+EP5ShCL6q`Mckp6e$KA|KmVlB9g~lvCV2O=M_qt=7f#5The5IH@Fr;arx!J5U zS;vA&qsD+V9p~kBM9H&Z50H2B%I4jJiFcG(4MqEd?DfI)(0dw@|Mb59RcPE`L~Vu= zYu3M)3}zwhvppiB&%4mWX=eRa)5*3G` zBb?(zCW(sYyBpb4U?Y@eKgfR)E*Ni}xeHGhnP8*d9-_SR$)@miS~zOaJl^q11~m+v9DkYx8l0>}l+-^3xzl%)em8w1%uHPF zcl3eBc9JV=YKbwRu5267U0tueZ~Cn2pt*UNr(W^njpO&cg2Oj~P+w66S<`y=)$}tj zFY6~f2sGHRlLl2s=`H&ws_RxBCN~Td(;Xwvj_Nx1mUeGkYsY)pI)J4BW3 z{R#b3u-t#}PmH+to@$-&*C)sOmZ!JNZax{#Fmwk@Q4eQ!zil`7^=MRGOEo z_v}gOo}DF)6RRl^w)L3Of^zAnmISDiONl}|Hcv+GcUz`B+Bj-j6__(RbN1+~(pc|C z%ZjbKa6d3hT{L6ezK#NkASFub$|<)xyVt14kG3;y_398Ev zy_m^?T43)viWdH(D*^ska{y>={5C+~9BFiMrNPact~#$oMdM(Af@kRlkd5@Y!X*E} zY%L<3tjo+cucJ6{{{5)TM=>H_>&{-qksL7RGQqc`-c1bvZpNg;4c}a1Meg!%_7I29=DE2&|I({+v5l@;NR^J} zuX7;2zs%#YJYhk1QcRtfP}rsNFw~?@mm4)X3afsv?RA5@lJ;Pd;mEq8B=Sq_-AN%3)*q}Vdm&1z;i z;hMgrRb9=;E5bqrp4Jq!$o$o{x?gv6f!Uz!qe4Pf$f(a!|shzR>TGN0$ zf9xThN616^1vOD26n@lGH}wk4xF5AJ65|M-1td_QuqsWite!Jf(LFby{J)Cv77AY= z!&gZ^=Sb1uEKsFD$xXXEAn;mDT@y3Rywk%oc~EGeZF)XluBVhLsXCtYgD$*hnLI_u zsW8#X=-`IAA&{d?nn;RUi;ug-q z>p~z}r}03zW2I+p_?@;z&6nSFYPrv|J0=piqv~b7&ohWP(inkSeEdh5q+z|ChPjWZbev4Q^=&Yw`~ literal 0 HcmV?d00001 diff --git a/docs-en/chapter_stack_and_queue/deque.assets/linkedlist_deque_pop_last.png b/docs-en/chapter_stack_and_queue/deque.assets/linkedlist_deque_pop_last.png new file mode 100644 index 0000000000000000000000000000000000000000..8df3433759175fc34acd32ba6f3ee379cace4fb3 GIT binary patch literal 17510 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 literal 0 HcmV?d00001 diff --git a/docs-en/chapter_stack_and_queue/deque.assets/linkedlist_deque_push_first.png b/docs-en/chapter_stack_and_queue/deque.assets/linkedlist_deque_push_first.png new file mode 100644 index 0000000000000000000000000000000000000000..2cdd94a5a083425ed0bb353a9fc12420c9645c69 GIT binary patch literal 20676 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

`Cyb;1M3>Lf8Zft~}X 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 literal 0 HcmV?d00001 diff --git a/docs-en/chapter_stack_and_queue/deque.assets/linkedlist_deque_push_last.png b/docs-en/chapter_stack_and_queue/deque.assets/linkedlist_deque_push_last.png new file mode 100644 index 0000000000000000000000000000000000000000..eed3f18ea9f98a5a13747e4ef24debeff1ac86bc GIT binary patch literal 19227 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 literal 0 HcmV?d00001 diff --git a/docs-en/chapter_stack_and_queue/deque.md b/docs-en/chapter_stack_and_queue/deque.md new file mode 100644 index 000000000..7d78a5369 --- /dev/null +++ b/docs-en/chapter_stack_and_queue/deque.md @@ -0,0 +1,399 @@ +# Double-Ended Queue + +In a regular queue, we can only delete elements from the head or add elements to the tail. As shown in the figure below, a "double-ended queue (deque)" offers more flexibility, allowing the addition or removal of elements at both the head and the tail. + +![Operations in Double-Ended Queue](deque.assets/deque_operations.png) + +## Common Operations in Double-Ended Queue + +The common operations in a double-ended queue are listed below, and the specific method names depend on the programming language used. + +

Table   Efficiency of Double-Ended Queue Operations

+ +| Method Name | Description | Time Complexity | +| ------------- | --------------------------- | --------------- | +| `pushFirst()` | Add an element to the front | $O(1)$ | +| `pushLast()` | Add an element to the rear | $O(1)$ | +| `popFirst()` | Remove the front element | $O(1)$ | +| `popLast()` | Remove the rear element | $O(1)$ | +| `peekFirst()` | Access the front element | $O(1)$ | +| `peekLast()` | Access the rear element | $O(1)$ | + +Similarly, we can directly use the double-ended queue classes implemented in programming languages: + +=== "Python" + + ```python title="deque.py" + from collections import deque + + # Initialize the deque + deque: deque[int] = deque() + + # Enqueue elements + deque.append(2) # Add to the rear + deque.append(5) + deque.append(4) + deque.appendleft(3) # Add to the front + deque.appendleft(1) + + # Access elements + front: int = deque[0] # Front element + rear: int = deque[-1] # Rear element + + # Dequeue elements + pop_front: int = deque.popleft() # Front element dequeued + pop_rear: int = deque.pop() # Rear element dequeued + + # Get the length of the deque + size: int = len(deque) + + # Check if the deque is empty + is_empty: bool = len(deque) == 0 + ``` + +=== "C++" + + ```cpp title="deque.cpp" + /* Initialize the deque */ + deque deque; + + /* Enqueue elements */ + deque.push_back(2); // Add to the rear + deque.push_back(5); + deque.push_back(4); + deque.push_front(3); // Add to the front + deque.push_front(1); + + /* Access elements */ + int front = deque.front(); // Front element + int back = deque.back(); // Rear element + + /* Dequeue elements */ + deque.pop_front(); // Front element dequeued + deque.pop_back(); // Rear element dequeued + + /* Get the length of the deque */ + int size = deque.size(); + + /* Check if the deque is empty */ + bool empty = deque.empty(); + ``` + +=== "Java" + + ```java title="deque.java" + /* Initialize the deque */ + Deque deque = new LinkedList<>(); + + /* Enqueue elements */ + deque.offerLast(2); // Add to the rear + deque.offerLast(5); + deque.offerLast(4); + deque.offerFirst(3); // Add to the front + deque.offerFirst(1); + + /* Access elements */ + int peekFirst = deque.peekFirst(); // Front element + int peekLast = deque.peekLast(); // Rear element + + /* Dequeue elements */ + int popFirst = deque.pollFirst(); // Front element dequeued + int popLast = deque.pollLast(); // Rear element dequeued + + /* Get the length of the deque */ + int size = deque.size(); + + /* Check if the deque is empty */ + boolean isEmpty = deque.isEmpty(); + ``` + +=== "C#" + + ```csharp title="deque.cs" + /* Initialize the deque */ + // In C#, LinkedList is used as a deque + LinkedList deque = new(); + + /* Enqueue elements */ + deque.AddLast(2); // Add to the rear + deque.AddLast(5); + deque.AddLast(4); + deque.AddFirst(3); // Add to the front + deque.AddFirst(1); + + /* Access elements */ + int peekFirst = deque.First.Value; // Front element + int peekLast = deque.Last.Value; // Rear element + + /* Dequeue elements */ + deque.RemoveFirst(); // Front element dequeued + deque.RemoveLast(); // Rear element dequeued + + /* Get the length of the deque */ + int size = deque.Count; + + /* Check if the deque is empty */ + bool isEmpty = deque.Count == 0; + ``` + +=== "Go" + + ```go title="deque_test.go" + /* Initialize the deque */ + // In Go, use list as a deque + deque := list.New() + + /* Enqueue elements */ + deque.PushBack(2) // Add to the rear + deque.PushBack(5) + deque.PushBack(4) + deque.PushFront(3) // Add to the front + deque.PushFront(1) + + /* Access elements */ + front := deque.Front() // Front element + rear := deque.Back() // Rear element + + /* Dequeue elements */ + deque.Remove(front) // Front element dequeued + deque.Remove(rear) // Rear element dequeued + + /* Get the length of the deque */ + size := deque.Len() + + /* Check if the deque is empty */ + isEmpty := deque.Len() == 0 + ``` + +=== "Swift" + + ```swift title="deque.swift" + /* Initialize the deque */ + // Swift does not have a built-in deque class, so Array can be used as a deque + var deque: [Int] = [] + + /* Enqueue elements */ + deque.append(2) // Add to the rear + deque.append(5) + deque.append(4) + deque.insert(3, at: 0) // Add to the front + deque.insert(1, at: 0) + + /* Access elements */ + let peekFirst = deque.first! // Front element + let peekLast = deque.last! // Rear element + + /* Dequeue elements */ + // Using Array, popFirst has a complexity of O(n) + let popFirst = deque.removeFirst() // Front element dequeued + let popLast = deque.removeLast() // Rear element dequeued + + /* Get the length of the deque */ + let size = deque.count + + /* Check if the deque is empty */ + let isEmpty = deque.isEmpty + ``` + +=== "JS" + + ```javascript title="deque.js" + /* Initialize the deque */ + // JavaScript does not have a built-in deque, so Array is used as a deque + const deque = []; + + /* Enqueue elements */ + deque.push(2); + deque.push(5); + deque.push(4); + // Note that unshift() has a time complexity of O(n) as it's an array + deque.unshift(3); + deque.unshift(1); + + /* Access elements */ + const peekFirst = deque[0]; // Front element + const peekLast = deque[deque.length - 1]; // Rear element + + /* Dequeue elements */ + // Note that shift() has a time complexity of O(n) as it's an array + const popFront = deque.shift(); // Front element dequeued + const popBack = deque.pop(); // Rear element dequeued + + /* Get the length of the deque */ + const size = deque.length; + + /* Check if the deque is empty */ + const isEmpty = size === 0; + ``` + +=== "TS" + + ```typescript title="deque.ts" + /* Initialize the deque */ + // TypeScript does not have a built-in deque, so Array is used as a deque + const deque: number[] = []; + + /* Enqueue elements */ + deque.push(2); + deque.push(5); + deque.push(4); + // Note that unshift() has a time complexity of O(n) as it's an array + deque.unshift(3); + deque.unshift(1); + + /* Access elements */ + const peekFirst: number = deque[0]; // Front element + const peekLast: number = deque[deque.length - 1]; // Rear element + + /* Dequeue elements */ + // Note that shift() has a time complexity of O(n) as it's an array + const popFront: number = deque.shift() as number; // Front element dequeued + const popBack: number = deque.pop() as number; // Rear element dequeued + + /* Get the length of the deque */ + const size: number = deque.length; + + /* Check if the deque is empty */ + const isEmpty: boolean = size === 0; + ``` + +=== "Dart" + + ```dart title="deque.dart" + /* Initialize the deque */ + // In Dart, Queue is defined as a deque + Queue deque = Queue(); + + /* Enqueue elements */ + deque.addLast(2); // Add to the rear + deque.addLast(5); + deque.addLast(4); + deque.addFirst(3); // Add to the front + deque.addFirst(1); + + /* Access elements */ + int peekFirst = deque.first; // Front element + int peekLast = deque.last; // Rear element + + /* Dequeue elements */ + int popFirst = deque.removeFirst(); // Front element dequeued + int popLast = deque.removeLast(); // Rear element dequeued + + /* Get the length of the deque */ + int size = deque.length; + + /* Check if the deque is empty */ + bool isEmpty = deque.isEmpty; + ``` + +=== "Rust" + + ```rust title="deque.rs" + /* Initialize the deque */ + let mut deque: VecDeque = VecDeque::new(); + + /* Enqueue elements */ + deque.push_back(2); // Add to the rear + deque.push_back(5); + deque.push_back(4); + deque.push_front(3); // Add to the front + deque.push_front(1); + + /* Access elements */ + if let Some(front) = deque.front() { // Front element + } + if let Some(rear) = deque.back() { // Rear element + } + + /* Dequeue elements */ + if let Some(pop_front) = deque.pop_front() { // Front element dequeued + } + if let Some(pop_rear) = deque.pop_back() { // Rear element dequeued + } + + /* Get the length of the deque */ + let size = deque.len(); + + /* Check if the deque is empty */ + let is_empty = deque.is_empty(); + ``` + +=== "C" + + ```c title="deque.c" + // C does not provide a built-in deque + ``` + +=== "Zig" + + ```zig title="deque.zig" + + ``` + +??? pythontutor "可视化运行" + + + +## Implementing a Double-Ended Queue * + +The implementation of a double-ended queue is similar to that of a regular queue, with the choice of either linked lists or arrays as the underlying data structure. + +### Implementation Based on Doubly Linked List + +Recall from the previous section that we used a regular singly linked list to implement a queue, as it conveniently allows for deleting the head node (corresponding to dequeue operation) and adding new nodes after the tail node (corresponding to enqueue operation). + +For a double-ended queue, both the head and the tail can perform enqueue and dequeue operations. In other words, a double-ended queue needs to implement another symmetric direction of operations. For this, we use a "doubly linked list" as the underlying data structure of the double-ended queue. + +As shown in the figure below, we treat the head and tail nodes of the doubly linked list as the front and rear of the double-ended queue, respectively, and implement the functionality to add and remove nodes at both ends. + +=== "LinkedListDeque" + ![Implementing Double-Ended Queue with Doubly Linked List for Enqueue and Dequeue Operations](deque.assets/linkedlist_deque.png) + +=== "pushLast()" + ![linkedlist_deque_push_last](deque.assets/linkedlist_deque_push_last.png) + +=== "pushFirst()" + ![linkedlist_deque_push_first](deque.assets/linkedlist_deque_push_first.png) + +=== "popLast()" + ![linkedlist_deque_pop_last](deque.assets/linkedlist_deque_pop_last.png) + +=== "popFirst()" + ![linkedlist_deque_pop_first](deque.assets/linkedlist_deque_pop_first.png) + +The implementation code is as follows: + +```src +[file]{linkedlist_deque}-[class]{linked_list_deque}-[func]{} +``` + +### Implementation Based on Array + +As shown in the figure below, similar to implementing a queue with an array, we can also use a circular array to implement a double-ended queue. + +=== "ArrayDeque" + ![Implementing Double-Ended Queue with Array for Enqueue and Dequeue Operations](deque.assets/array_deque.png) + +=== "pushLast()" + ![array_deque_push_last](deque.assets/array_deque_push_last.png) + +=== "pushFirst()" + ![array_deque_push_first](deque.assets/array_deque_push_first.png) + +=== "popLast()" + ![array_deque_pop_last](deque.assets/array_deque_pop_last.png) + +=== "popFirst()" + ![array_deque_pop_first](deque.assets/array_deque_pop_first.png) + +The implementation only needs to add methods for "front enqueue" and "rear dequeue": + +```src +[file]{array_deque}-[func]{} +``` + +## Applications of Double-Ended Queue + +The double-ended queue combines the logic of both stacks and queues, **thus it can implement all the application scenarios of these two, while offering greater flexibility**. + +We know that the "undo" feature in software is typically implemented using a stack: the system `pushes` each change operation onto the stack, and then `pops` to implement undoing. However, considering the limitations of system resources, software often restricts the number of undo steps (for example, only allowing the last 50 steps). When the length of the stack exceeds 50, the software needs to perform a deletion operation at the bottom of the stack (the front of the queue). **But a regular stack cannot perform this function, which is where a double-ended queue becomes necessary**. Note that the core logic of "undo" still follows the Last-In-First-Out principle of a stack, but a double-ended queue can more flexibly implement some additional logic. diff --git a/docs-en/chapter_stack_and_queue/index.md b/docs-en/chapter_stack_and_queue/index.md new file mode 100644 index 000000000..d6586aac8 --- /dev/null +++ b/docs-en/chapter_stack_and_queue/index.md @@ -0,0 +1,13 @@ +# Stack and Queue + +
+ +![Stack and Queue](../assets/covers/chapter_stack_and_queue.jpg) + +
+ +!!! abstract + + Stacks are like stacking cats, while queues are like cats lining up. + + They respectively represent the logical relationships of Last-In-First-Out (LIFO) and First-In-First-Out (FIFO). diff --git a/docs-en/chapter_stack_and_queue/queue.assets/array_queue.png b/docs-en/chapter_stack_and_queue/queue.assets/array_queue.png new file mode 100644 index 0000000000000000000000000000000000000000..29c7f4962c825e11557d7407fdf9f4fe542dcc4a GIT binary patch literal 23213 zcmbq)byQT**XW&qp}R}E8)=Z1l2!y19F=bA5-uo+h=_DIf;33yNH<8gfOK~Xyz%#a zYrVJL`u=!py}Q<(x##RX`|LdX+%x-p)YVqS$DzRi003WIO<5lRFwl?CVJsN>>mr-a z9NoCmee_u6?(S}Nbv39y@aX91;^N}t$B)v|(l<9ZEiEnA*Vp8MeaFYgyP7zXUqh#- zr|s?SJ>I<8-rjC)ZAHzYW@l%YmX%k&%&CuU?gvm7SiRW@l&5&(9YZ6=n5jCMG6Eef@fHaFCpw92*;(mX@Zhto-}; z@AdU{TU*=l@$u^F>bbeOn3xz41Qiq%;^X5tH#aLPD)RF37WWoSO-+Y~hf7OK3knJh z3=H=6_SDtYb8~aEva%Kz7rVN;R8>`Vb#;4sdS1ME@#)hi6BCoMv9b2{c3&T#u&}Vm zwzZ+5AuTN}IXSt>$;raPLQ6}_4<9~!`SL|pRy_+ZTZ_t;MlhgIhO=e$LSX1quweW|gkkeG3 zqrk^{SyLOyep|;|fptH|H_imU{Hm?3Jq~~MEN^yvWBhGpsa8siT+FAl?_s+JMA~efT!l2RbT2OCcD5$8qYlqc24|+$ zn@ir5CrBdU!d!`p2qxzJ7Y*yyR=^!l6Ui@739f!r}h& z>Xdya=`XEobKA2QjX4`7aeFV=w@;2IH`o7eEdE`aZ~QeB5)!g!On-ZQb$fpDcWL5k zpdqy<_2T;G*V?c0{+`R9g5aV48yW9*AK_ll z4ipT3&*;m@9mx6qYv*QfBe^^2b7<)F?}hHk@v4c@wc)Pynw*ij*~{+A)rsM?*2>%? zS|I><>Zq=)@Yri+XF>rVV8lboV~GgfSz`Ze^@^PTXf1_~mjCIpRW{ewFfW1lv9y;a zz*_|-l%bg%*Pfh=ZYy{E81Ma0_7exv<}1aB+uzWgBd*$%bn&>f)E~X>hzn!S`feEW zK&_qqTd_uRwI2MQ$>aA7Cq~0c0(D-zSokZ9J-(bwi+Tq{I%g@bmvMDi+6qusbU?p!1M6z#Jm;PG3QhvS=#p% z?M&NOLdpDVL;|h%sn%GmqgRAyq8BaPlHj_bB_XC4y&bzw5ub;8bT(4zfh(D(js9b` z-Bh-x`n2zaQFg-&Bi{sOAni6TYQHV=h;G)mW#7AOYjohf9^a&sQh;(Q*C^RtW-0mJ zkfxd=%Fg@$2=*As@w%?SZBK=TWo7AKLN&sfth<gJQfYv-f+g{DNn`8+gU(P)fjlHNhc7ME8uyrd z=7`-oEZV0csD%kawtN>H_dqfR?@?loK3E#5m1p2BKM=OPc{)ac*E05M&5Hk;?HTky zHnG1Tm3A!x(;!ejXi1*&ekCJ81%gZ3k6KVNy z7q&Ob>P26h8W7IW$%5gL+D4d0LX9GzYV9auCriMPe63NGFf$FUy|-9=Mbf+&BA`a^ z-$$?uYreRCz{G6b4wev{D+J!NuKT0`SWy;Q+QDiY>$iSMdt*M)F5&;Jm*qBr7{2cG zP(nDrEJ`$xpqW@Um$Cl};JjhXFnbM%poZo=9L90h5;O~koDwwv@dy4B;#T@xuaB#J zJa~T^QlbjOgjqZ@0k1o_G+>sg2q{iYdHZ=97t}}fEk!MOToLaw4g+1jPu3$K! zD)j@o$#p++^SLjUXph)YweEQUFNa>#y{Ia|%b{NbvuF&Yz-?QlXAr;Iiztm@^77Pj z*absKmpi20m*DBG=~UY;S&VX@cR5 zo2b9pV0Nj8Z90R4Y)%Cpd?RU*7TRE5uhKKSc@4nUg5n9sn!W{3HKwN|(gvUwLV%K# zD*Q3b19mGKSgl}7g$LV1VXu{uTv1O#8uY|474QGUQ=I8@${V__OZvY{D#42xOhQ6j z4|zpd4%xVPgm}tr$L#rNOljf8Gafvlm0h5sPHx$Ud3{c!xaQ$#N&$Wk&CD)E!rhKt zJs*2t2b*{XDG?oEku{b1>bUX0av4J+-c4^4y)C0M^alWc#44dD5a3r23=X##{AKNC zjfusDmj(K+#n|;@zWmr295dL1zXz-rLuQue+@Kp&)HG~u0##6Yn~-%~^nB7@^&Y1R zc0n3b8o+19eDk?rc@$pOf=`+YV8$9ic=3{O@}N{U*z1YHe-d{_r}1Z>$C9*-@p(wfkru?O-|e2_Gqu|_dcrO>5Ah53 zMAnmM@2Sv=9Bj<(zW1XICvu094-#g?%B;2t=&^wp-`&n@@)zN{2Fuz&6aKs|H*_jr zgaRO62acS3p*nf_GolA1oTBdnCUsksuzw3K#lHf6m!}`>b`=D?c!F8xeQ7x$Dxd5zIa!;w1d^hxBaU$e zy6Lu<(mgkvG$8~0ZbyFf|wv?Qmednfp` zd#A6g!^W%Gjeaqbr3gBeVD$=L1@_nj_%eu2Q>tz3j~rgIi^|ZW1$jzx>ojDQ_w>b& zLACdpb06Jd2bP{oUMX53RtAFMti}9Ik3%zZepnENn)`}M&^UGB$o>&jx$#`A{c|tK zruZd9Y~Ok8pdJ(XN(d|C*u&oHn~{-&7u_8(n)cBBP;T^mF@}L9j&7a8TeZ*`Q#Q~! z8o<%hVVwI1BK`jY-MyPYr+g^PQ%~!7KpVfxjdwv&3wPV>FK*fr_H*I?u<%@JUHZT^ z-}18`DSxqPoH(=KoMp{h-ycdaWB}r}BJVjZ|ErHmwdQCCPqV3Yvw+}TEZ=I^woBmG zh;ge^wKhU55(%~+N`vCY{I~{XHFLsve-5*F^E5{#pA-D|2%f-fz2PWp-n+7auUxfN zZ(Pue_9#ukN3MXzaZX9}7$3~xOLhrhX*n+z2Ei*!p$x&|abLcNcO8AN88~KVovNdv%hwV8otIKTV?WN|KJv^N_KjE8nU%W93$U|u zDmRxXV1Fai)SSqtfeyH3=joa6_SM4cb7#=u9_5Ss^VrBZu7tlSpu>CnLK>9tI)<}q z&5D}nG|IqNR;iZ(?Kkwc5_95oOB)M6Zx9@UbOA2T0oT!_MiC4Tq-vdfXeWn0j8BMoh`>zzB5(7u=2$v`U_E}AHW3?jUtPdncE!QKtDG0S%IACSxU=j> zDTyodOJCmI_YtApzgb6O%( z56Oj2dw2lnwTMy1%|O2XthB8UD3jMiC4=6CgUhM>>aGiEgc(T$?7H(uk3^vV2-k|h zE>IUv5^#o@9$zfRgT$o5Yv+6u>zm&X(NnqhEN>X3vC7D$j~;be%$M%N-k`gTehcUe z!IRB{N^}k!4kqtP-^%p#v^tAC!tJqDw0^`RDI8yIDgplUi>C~>US6d=9^tPGojI=8 zoZ*WLR$tD}<ZwZTGvQ9VP$iI{bjuTA9cTS#nEH zPoJ3SdoN`1aOt*TtvFp0B7;SfI;UE<+Mz{rGNG;-Pm212G~vT#eDF%=Fy9*|?pA#d zzbOlXQJqe(Nc0rI^9ecb-?}fF-QM-y=aOydjR_F z7t4QmMFKd`zqQoAAO) z1^#hptuTnlw+*>XUFJ|=&n$Y*2;$F)#OBuzt}7s6^u!;roq*^AE3sP1ioK zq5Ue`6-tHIdQ#RSg&XwytmaD?WUedP!Sye`{4fqu&`TRQrtNK%2J2sVkJ6*Kev^S+ zkItDYRXB8J_(xd`{g_R-!0nX%ZrwWifR~J9?=f=)`b=w~Q+*!5VMtoJ*H&@l2kMLg zSmpLSIuf^tZ6ze!O@BMh+Ws86kj7g4SfwW;bc7}0#!ppb`#)uTEez*SX;R5M%j+_Z zAwwe*vFlIsnr`*53!HtF8_&b}Physfzv^Z`DoDa9viLJYuJfRw9Bb8E3ql9^J#Y58 zp!r;HIKYLFJrjui7&R^s8ZKOjLq5aWpi6<050S+}#r)wjdMIht{4#}3NeFBb+%f4G z>10nlMByNvCEEP_sK;$?Zt@+OzpAaMv6J}!i}wi(SZFrF_Ii{BX!#Cpc8cgi^&~>< z&6Tcd%&uT0agFr0b5nRCOae%W*r&On}X{BYIX+X{!2Mo!1S{4{#dcm<}U)3D`T0l+w!IlsS3fEYHZVM+ol0O zb})j2v*oFYuU=Lyz4`B~`F|w-Tg%A^M@B3K07s(|a^-a9GX13rWcwv((2g7AMzRAZ zlEU_YVx^jw5zB8V1DXSn6gx}-$a_OWU2FVBqyjaMyhI8cl3D;Mkp?vs0$LC4A)ly# zB`Cp9!kc#yWM#?(i%^^ktJ`$#pd~ay9O2K6>;r5GG}ka3RC;T(Ni$%Da3ckN$g)&OCXQ z)D3`aWO%to@q$Mph2FQ0SEFh?xA(Kf7%LZ9V}ky^#Yg|>d)L;={-~Dzr>SY{FDA=C??>oz#W|Ue0 z8kPlYPwq1Io6Y=jG=C2t>^^z>`-UcFv!uvKq_V@%2D9^#s}*ZGfP9%NIdUoX3s?Bp zj7hr&Gl_a5Lh$#Dk1E5=w+LsCvo**Lv*E#Yw4E$^d(sJvWQcZg19S4Se8Zj)JF^4)rn-qUvqtUF8 zK$k`x)(72T1MDOp=|J-Mv1&oZKh+Sb0e%O15(kR4v7%0*rZqPT5< zFAcIgQH7uWl=Dy=xC%bO5<6BCsH`muti&z87hZ0g3!OSeX>|s2)mY%j!(>bG4FGrC z`5Xpm>UiGk6fwYom|Q-}`K$I@4{Po%z+|EZ<3PI(asuxVfF@MGz+Vd_Q0Qd;EQ=w? z%FBdie(Z7f>={9Jfivw(8fxIP&a>7f4mY0*9MoI}xw6T=n^((fuK-K}y10E+)Z~b1 z`FK8w`RMRCiyF1=IeU^!=_={7q{JVe%q0%qC~BN_rNRj+jYFNt+n4>E$H%wmP1{3S%0x2o}4cN#DZ=C>46K7|HFs!66}# zfvE#zkPHH(-g6BT?tUFi9r#13|HXKM)k1HO04-|_!6L}Sg5~xLy@MK^Iot%Ahx_9a zHfJfuK@)_{Iok3UnL`N}Rh;HmlK^IZQ9))aZNz~Pec1az~lN-5B+U z3bj2Zl|DpCs!wx--6B{ejakOTm7{8Ce7#zZacbFV6sr%}frfnOdMV=`p94G^Z|FG# z2o~oLoYy?zWt7Ps%Q6q@A0N7HFna*WXC$Z}*P0Q?50#M<9=J$Ddm(IL zI_tv{IhztP{K@ypdYfK_bBebp#(`AGqo2kD>V4(1mDP+A0AQm;W1hc+(jN34z}|{c6bFqljlyqR%_s8 zu>4WT$>x52^``E-8%n0&bf|$=d2!b+cqZ4K571zClks7`_+wGKUqy`)T)VPn zz(nQ)Tjz$=2y67W&IqO4jM(YCpvnh;VjTCl$x|+l8pY(E%5ra>1l4*(nF+%xO}S0O z%$A-eVC12E@#<2vC9*=0I`xL+k2m(e0x!ya#Zq_Cfn6!5^y4x ziM~Q-m*viv62c+X7|uS=fSQu%gG$_If*}r&#%4ayOwDPzm23m^b&*soG~c5B(;w(l;KAABPWls%PRWlSZk8o%^z>Cax zoMIXz!pkY7uI{$pRRGQLd5x?vF{8-Yk?67SyM3`E#ADU`FK&vwP}*G|pja#16lH(< z>iyHO7$d(Mp&YjtO@P2h9Z-)K2u~=MIU1TRRZA?-XiyIB%1xY(8~uaA#8SiU0|TF5 z5)yG5-bZriP_85X3)zM~1)K4pqvWROAu$|6Rr)fewW;zX%08=I^b=`Z2L?7~JFC~n z?ZtF!XcCoEAO<=7#ZQidz1f*WV{ys%?9sDsZ(B6SN&PI;x1jP?#FICkXVT`~IKqdXlmc z!qm{hjA564~$i!T&Z&vPh^9@hrRp2;(G4mORbBdnLT28AoW}h2}@sf*ztj4 zW&BA3z2jGlz1B6*joBoyjtJ!;EY1o7^~D4Uo=+AGSN{Pn&kq3&=9V^UWLji|QYjgIM8BO+PtL&4v4@`|nS-$|S zk)MD;#XqbG0x+tRy-EMVEz732WJV}@#@li`Raq@1J)mp9-lw<1{F~TB4oQ&a_)juL zMIu216jc_#P7cpxer@ zi@&30)XgGXjVaiRZ8tMwkjfySl?Z<^B>&}!TFa1%SXT|i&)w`=9Vq?}KdOuOn2#pr zCvnamgf%W=+0(e9sbVeuTpbkm@|h8b@35YqBgE~F?#@+xkIt6jaBg*ZfpdLjZVgB(s2@)+XBXFLCWA@Kpe>mD$` zjHZu+v@%|KIz(O_p?sFb4gM~*gAe0Dv6S|naQyz1UDf^MOs>=wVNC^j&twy)qHW>G zy)Q|=dEvTZn|bR}21?2UmO=|^BRl9Bfgf1^$6X+&fceJL><}3YKo3kr5f>%1 zjGzz%zF5VLw3$nNmW1|dvqC5Zq161PTQxJ9#zirX(Sw9z3c(3{I1%{U5e-}OLF|y- zpk4g$H%J2?a;_=)PgVdLxc&|D31KrqO}4yu*fP1Zq_Kw{`u7cSS*!xn-F^YOu`h~E zg$_s@G_vu(TLhBKn!U*XP#rzFRHE)9qxA$oyhn3pMqkF7po8wb;Kxcj(P8^XJSao& zZtNfM8F^VoATi{$>n0zK__bs%0Q!-;k&B(;pd}QQOZX2n2UC*m zQ0%N@@P0eU#l(Gs>Xj?gDhQ4295g(_9L>=a!@^F`GcvbusC=WDEZZ}X@T)=u7SfUljC4?F!?}F5)CS=tJH~(?@K`@+0w8dC z;D@7?*7oe}FwH16oCtvQ*IK+#XJ|0K_kED+P3P_$>o1cH!1-NFR?Ph zFoUWHG_y6iWO2l9a{#dx;&~P@LlCa3Vp=j4nInL^xKBe2#j;fbo{TMrovI~K^|O?U z(u)za&pBqx+E3ZxOoa$##x6K+^Xo*E6Ynt9{uu#oe}y)qsffXKB}+<%>RySMPVzB) z2%>KAuRV|{`7~^=!%J1jkgKY#}Z)-}uC9KKWg)hji6fNF6w9lj=Ik(Kd8 z(yLtk+$bp!4+0-&0(%eb8;I=>>}MHBT~#vn54zH1ei9rdm@{A;{LEtz`23Vmft$@x z0a&_X1i7Ucg4!W6)^rM4Plz6Twq{D;fk{M)v%;tv@JWr(IK5~b4a~@GvBaX4!O|PD z`kzAJd=1QqPlX$c@i{qKYdrwJ`pBhEZ=t{xs{`Ov_`kc=W|Y6E?OTxlrj{@0{<|a~ z_?#MzUy2xB+TML2#eEh9Il*u>lYxI1oCftjU=FnIq@ z;jgJ5^kFK=EisUtgf)7^@O@%=T?#bzI)o1UJCmwr*_GJL1{-XObi_}qoKP0)<{k4n zT4^|t$G?sN0v%ZGy789HN1&H4tFrFI0!xl-L>W+c@)4Nm6|W1Zo4;_n z>WlU0P+ER%F6_{3HnUJ1X9iUA+;t2w>TcrCpfR7H&*zqBT52@e2eb_WmvJ+Gcv7XW2lasXUjc$)pb15h^mU(dWL$q;0G05AnH zdV7q;45&$pVZUV17Kfnx?~=@Xd_36PAVm>oUjfF|Nde#Ukx^x`kT-u74yoDMUwyBf z$+A{a2{RY=Fye-c>ohdbLb3QTo07Faofikb~$} zx5x92`bUi$Z7=F(B?y2M5mYsxcSQ1#JxZ)k4#DizL(}z`!L3 z(CZ+?#&Z&y(~Qa3Gl&Otk;rXR0$OMQ4j9GOOR$)^g zoK}asTLCisJ^-4b0@*pdTvz>YbFF7_4kGpD28WT zziE6Y`_a{dC9$t%!h@A&1;Sde%BuflD4k37p+V7m^F$ZGE5bf_3oTKn9AsD@s2FFy~Z&V@;+5Yz(wktdWu z#`LM#DKulAM+0a=S-dWCjXgFhltIx8+OFlg18$;GqLj!Lrgw$dU>p|$EOD%$1br57 zp}_s7^{=Op7^Z_4z{PxB#f3~gHL%6>dd#GQy68yVss= z;r_LjQ_um386d(z2;#`hIsLkQhVHAGbEiaFooE-yKHly}J}9au~kI|LLzEnzyi z-^1`Y>OoVwJujBLMCxh4#LzT`G=y{ZB{}9|Yy7&VQJA9)xPfGQ%yh&M?so4t^8zrx z2|TQTOm%^f#W~d{xq$U&7l@bT)(Mr5y3dH=UktCb8iV~%X|4w8ShJa%A73Y;J|L(|O|kQm{emBqv^ z{M`oAK+*CBc2RZuz@*9Or6hq}@kB%!Pw5blS`E{6{A4`Edw}zt zmSFK`qCbK40mAF_L4#<~grxc)3oU3OG9(qbCG^20;TKU(R_SXgkr$Yth3LvN`opBb zD2F6t;Mfdzw~`)od3_QDxIxQ5V;(S2JHs4yCa;4|UKNk7IKWV{EikMutcDsEW0=l% zM1`K1xa4C>%xP0Zk4vsrkQZc5%J;sC-Zk=F5$rx!29O{J;&$HkTJSntNXrjZ!FtQj z0N=ou1Y2tEdHVzFDGip#dy&ppl!a;;VSV;meGuUVRsdg^rz3#%`&2iW86Fqil3wpp zWJ{HD5k~mqM)>bke@Bm2MQUWE08&~IBPVGffcOBe(YyojyFrFU(RGCez}W9MM>LP= z&2dTQ@u}OUegkwYzAQ{G^3=vkXL4@9HT49ZsM6yBU&dI)I~VC9{#i&qoD4XI>aISA zmQ|9>R!{@gU!p%maw;-Rg2@Bso_tZU4ZbDcsu5!!s03u(2*Ci`I6N_?RtNXj3)00m ztV+@5&bPJa-*|(|-&WjPO#eqM4gT?MnBz!Dem?6^ZV~OWIpJSOgjjuK!P_|VVXu-& z=Zec)b^M1~;!vw$@xEyC#~3f%(t@%*{h|tp6A|UU6)Y$BFvx&UKB^np&6>d9W6G}@ z(r*b-KM&i~?7aNfddR7EWk)`oY~9}=T!515MAVvo->=(mJbj{2;q9UmDTm7mP>6t0 ztUyvvBM8j^IHyG*g7+X8@(|q$3nW^Vfz3Z zOwdXJkV0qNi)#_^m(x8U4={>i1GXzj!I{Fm$eczSK@)mZdok6J=mK)(_I>wHid3 zHkrN(@c9dl6?S`S~=bGUDVZ z33|;07GF{bHl;%BNnM%RT_EO8EtcRu35pd58fTUrFiR|7GyQ|U)RY#Y5j(|VFTZtU z96Du8Cx1rb#RhqlC5YUNy{;jLjQ#Mw>e*B(zrcLfg}F02*cTkTZ1oZ#r@zMrs<%U) zWrKMlQxU+~M!Zza!(6j=_UFTC^6i5`fWOaoe`qNhi45CF>a9=RRjvri1AYK2_v2bm zR5l}~b=MtrRA?V;fn8|G9bN4%=%ib)xG5G>mJMJI(@#~4pZ%D&kEiWY!soOcj}Z-F z>*B(HhSYk60erUY0)5Js6}iln$T@G)Osjn#OdQHfbKk*)PWFLjZHSMCVIZj;E^K3s z>jbO&2nl;A7;F)xzZas}O#Vo8GY=XgtQCyQszF;Q?W@;7NGyl@02sZ~i*vv7hz^;p-c$6!1=~)anfbUvc!~8?KZuHhw$6}r1Va8Z^im9JL5|{T zV_!p9oC0oMMN6I^O6G7I6I&1ur7;>OOBC8a!FAhh?`5bfYoQWoQL51s#&N48c7T_; zL57q#sPe^#jn^(YU0RpW>=(Ki7i=IwO??HzB;JzdDA@n40mQhnzI?nzv38_VqJFyl zQWD>cCouf+Vl)ln#R3UO7k?R%$?yH%5>Cd>P${~t0Svib;c;d=S-c9CgwT;}Zz3^O zrY=mko^M>t$qGIlN|SiAoN)G68HZV$6@2v)I4@Z`u|#iS8eTpF?9l#5$@F6WuNBZj zyd9n)p}Ydu87Qg6a(SHWgGbCkB43_Jnq?_QB2Qk%JsbufPSoam#s4iNn7I{W;paWb z&N_#VqjIy@`jV5r6#=5;j}B!Cr$A-$QwGKMk7zAyg%8tL4gTWBfY_7#s82=O9wDz) zZr(i&t{=T!tL_vlXBQO4%a*wu7YqaKNctv>Waluas)xI0C?;IhBOsj-|7avJV&HsV z{%n;;p47cQ9@zRoB>|sN)nH-gh444ue2ynOWN7C`7cQ6AbEhmMa+$TIB)+0jPtnWe z>gsp|Xo^7Yzl&Bu9Nl9D)rs*J3rbJ&*uVzIYbe$vlNi>gr{W()Ib36l*@uklvS1gw zSCS&W_+?waq1LZkxxX&=s4lLAVmhzRqe~`DYl0!ljCN>2`0_?M5n7Y{La+o{Z#W2-|(MVuV3Oi%UK?Ksi@I)S3 zdyKY5%>brzEa6XT?8Uw7p9?pYmH1t6=y;@7E@cW<=X^X%?{0j{h z*(RIrQnW3+o_PY-FHWvVA_1S@C`_W3=78%f21OZbpxElSgzWi4=miy?BM|I$0i5YT zFF5CDQ1JuDqiv+v8O}o38MQ9}ow%0=sp!fWUv;442I>Xjy}Q7BufqzqqKp2Q{ULO+ zwntt#&(Y;ZcBZ(CE-xq*96NMIhosbT?~$*ADr z-1yoaH^W1IqG9BS8-@q2)LgF+NEzxMg+|}PS=@+j@RBrw zjPWRsmeCHLX0)*WnnnC_DQaj5HN8L`7|qzO$3a7i=j&|SJn}4gyZCOG98i6 zi7t7<2S+uQZkc;O2QZ!x@N z``^JB1+n&`BmMhZxnt_>4KrBvRI{G!pxq0O=4u)jsa4xPdiktMif55H|@j zxBPPwXHjro9=%~djP<4tUKC}MbZ3YRJGf8i| z&ZWxFEGeTVtYOA1UKvlTzz@pLykx*1U0v+SO@IDO{e08XLwr(ivO)R;m!l4buH*_l z-UR&bZkx>3u092y2jU~Y=AV8A4BdPx4t>e+s^q;HHQC?X!$oE(S8ihr51I>)j!(?F zvuF2dj8ad2Y!#ZPAzQW(roovp{zBKs4%+Q{NV7r6m^st#V;_ke80f+z7;RmEQOr8& zhGDm6v(jI(vs3m|Id_FF1u}WBA>ms(A960HV-}JT(n~5LGBvXup#mVS%*oid%-rrD zJkgAb@WE*41+72c7S=F(R)RQo7B79JsGyZw%@GpN*?ifR4HS5j*3wanhVL9ABVkjX z^w9jKRms>I_BX@;^+?n(bNfi2)4!U2=(;+@@7|o|;#1|AH&Ci{$D)IF0Xk8Gq#@kJ z0gwW89Kz3th4Vxkt^*Ozl{7a}En*)vT$+l@J`ehp(fh$qAF>D-7LN0w)uwP512p3v zu&RaNc0hPH=55TzN9K3y`;L!R9mVr%niOkjZMKfw8Y~#ioSnOqc={59vT>gbRfd|j z&afCN#TYUV6R6pJzlIb=8IFBPgNEvppPt1#CVItsoVKk= z{bJY&e2|~f|26LDRUK~pd`VG<82j5Az z+llL#CxaAUPHWooH$qkdZax-k04fKvG^lhB&@=FcRV^(vM5cT6k=;T9j^U$MGcw`H zG*M>`d8hS8%zwycMy^7R`EtD*cTPf0*A}nyTX=-W_Cuv&=0|5BWx< z)OnjW#ZJxGpo|5uMytYC935ZrT>-g$8Y&WbV!w1e#`FEj{m&r(`|9;a!$m)9ti-_G zpU+85-?~3b!6@oq#0Mp5igwL9366u+rX5L}N)+t$gv3e(zZp`qzTr`QN^CvWy79KSW4c=b2x9q_!ncrqL*9|Uyn6@<$cs0hFteEEu!bI_ozJB z1&7Rj5Vd?pr08^@($6ycvJDb2*LAL9&GKij`kaNk(8E;jx!AG;LD9m+@8e57%qMf; zfZxMAwBq4uG^p_mOkF>9Gn6I!UOJkf!iG~QcQYfw)C$J)`9O3>5L{P=MqW(h$5rLk zzz%>Gmw-h6Pz~VVfRMdJFH6yladhIx&bY8eFP`AKe*czBHjr8GBi8PJ9HP5q*g)w* zQa)G=5at{S;22}^HJhM={9Z8Wi{e9|q&cC#0De$63i)%Z<){kfR7A>vq%YRhfOP5o z&a>!eu|OCR72)FG4=kk1+Z(p$zZ9uUc9od}eS5F0>7w<52L^;6Xsa-P6@Kuu!a-W% zuBCa5KGXA`Uv=&kO>n1bP;QbkTOdS!d>*ffidpbjlweDDA@o-nW8t z|F9HOS5<$#rW>Hkn>$wMjkaVj+E795lqhUC8~E&gltvl1p48V+dAs56uL5A16}^+z z*SQIF3<#{=2+$|Rw?07&nn+lrgUpoq(Xu72gj1QMNR?f{$F7YzcDj-3oU)DzH=ZBa%tsV zuOuqPy2gHJ)x7$bj4aUp$a|TDtpV(k&s2HaEaaM6*(s0v$YK`}{h~uP+0?^?^1xp? z>j|L*(G0YvE>#j>X(uef*e!BxPwZq*+!1)@(}L+RGe(t0H!t~^Q+%7YMH{M4>>QS753!iW|&kh$`~ zougo3AQmG*cX^0uGs7t~bbzFsPvjvSA^6bp_rslRNadG^Z>QRO8*GRJMY%`lBRZpv zzn<4W#=M9z6#zBTzpwH&OTtAkb~z$I@92Sba#Z@#g%Uc-x5dEvfaqy#W#B6lh0;%R z-Otd_4S&lobd%b^IHt{SZq5Od4PreLxtzYMKELdYv3cXg%sr035Z>f{;iYGWbk9tV zprPc=V*I4(@czHRC;XYRg^koPSKP%HE!6wy_^)KZM;`2BMl-W4g?Am90f|X06Yfwf z3$vq{APQraViTRil;R{Yn|fN5vU<&)HsI<<-L(3+DoZ?$Qr^GUBOs*`|8;@NXIWS6 z(dqB&6sYu7Pmp=V5hihop9v$8w~sta9pKSElLS3GKk(H;l&cluDKc#7g(tGgG%fQd znTuoSaFLI7j$Ha^xSGTXC-sv;XJmHgcwTGDwI;*Ai-xLYs_YQ;Z;i$Elppp#z-ES! zEs0a0t%#!roI3Y!a5gW>oFkkgD!VzssX^GZ(hbHBZ<>xO+73?8wprSwRlkkTqSd$x z_%W~hHjD3n74qfbRDIFk=Un%4ad8dF6qhoGYo2o}Qz2943YmpWDJ711C?WGq$UGBW zL$}NkGK)~8jEOQ2zf<4m_x|xd@AJHWocrv(_FikRwa?n?Ja_N)*|N}O3AUnmo8GWq zXNFQOAQYYAfF;R$+Qt^DPYr=CyJ9gWcq&|PZ1{m0Z{7&`JTQZC1b=K#1Ljv|6SUxC zSY6?J!?jfED?q(X;nUgWaO$V-nmgH34uJvWGY$bK^Olr3=*kTW{H2OpLl2%`rIjY3Lyj|3KjlPuosxUpvY)Ue-tK%NgYZ;!?%zE!@uFsjT zY{-4wN$>VYnjh>x+-5}$>YZo;YL1~7pkGl=Lq4C*r0yY78o5PKmVk6=O~A`mNs6x; zZRJA`6cH^RF|%<0N^;)tSg~rx_jtor<>JbJRFP$kn_-UA_5Ar~k}YBiW``%7vMPR#@g zM{1pG26VH1e9X7>)BkL-cX`Q3X)6|?2+oXxT$HSlURnVE z?~e;XGUm0AmjPGjA_H4gFT0_KESCB+*)GTKTfpE(hZ01*sPV+{p+jg>EZuS;#S>FJ zq%~lcw){DY!QG?Vz{h0zi;kLrb9|jd#ESx{Yn7!YB6j^**%TkMnA-s3-{A?a0tKI= zO@7udyO|71*+|Ppgsy{!w0_orV1)t&K4a&pBOv_f-aG=O)r9Jp$;qNoG?jxI^Pb!v z7m*2;E7~_ESlMle&nL+wpbo|F{CL
qLhoA8Z}pd{Ud^+&JF#>7k8-D>8_Ohf@Ky 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 F{SUi_(N6#X literal 0 HcmV?d00001 diff --git a/docs-en/chapter_stack_and_queue/queue.assets/array_queue_pop.png b/docs-en/chapter_stack_and_queue/queue.assets/array_queue_pop.png new file mode 100644 index 0000000000000000000000000000000000000000..c57e6a1982a0e0e8493209bd9a89c4b9f3dc2cc4 GIT binary patch literal 19735 zcmbsQby!tj@HmX_ea@k~K^p0jl2kYn(xHHW)Il0S5s(%(B_)ltbP0l_v>XJayBnk> zMM}!|`1yU`?{n{c-aqbr?)isVvu0+^nl-UEdseuPmNF6kEqnj~h*VV+9|Hgu280dc z!ZCl&^8~Cgg9{xEJ*B^Y|E{mE2Q~&A9UYyYpFeJ@3=a>#zP@g4ZIzLcp$h1`yu3U< zKAxGG*;B`NbadR^-QC&QLC>RCR#rwwN88)mS65f(=H}37bW~JSUtizG#zuO2`qI+U z>e|}L$w_8rW=~H~Zhua7b#-B3VM9YhOH0fB`}eP|uLlMOnwpv}E-&-)@**Q6V`5_7 zzkfeJKVMN%QC?pD;K763++0^z*MozDiHV8j{beO3rG$ipva+(0l9J@)I0eiauNr>3T!ot;HQL^wM;r=_K7Yirll z)eQ~~_V@Se>grBUPj7E;Z*6UjkB@hCb-jN5dSqn8$jHdRz(7SsCANJdJ3BikC#QH} z+Rx8#YHG^Z*x16tLM?4%cz9SWZdhGi{Z>$aaB%SC;_BzmpFy?LGKnMh_VyF|yLD4v zQc_a(obNwK86Vpm6NnmO4IS|D@!^aZ+_Mv1+CS@_TB#aXT3=d7Xpi61CULD^w*NTs zGsLv0Yhk0cV&9T)aBVPQV(@pMenxkCXv^Ecg|ktF5I!UDc<>;a}%}W%d6& zPJZ>vQ+auHO)GO^W4Jq}E&B8Lo<+g<#`lIj6V{{iqt31MucOQBbCY^GljWmjn@1O? z7pL<(b0$S|Cm+0LmR83XR@2+&l3M59R8JQT6>XKh|LLXv^YpB4`rz%?wXF8}=%(3= zvG$;#pqsOkvCWhI)#L5o+i5*piQhK|W`3Nv7Du*5%&)AyY4~xqGS&N|=d3(#t0-zK zJ2<#0XzygtwrnB1VWxSuxq71NygqABgRo#|XQK~o(N>@QJ!#|DM(0w;#X!?$bLn=1 z^YqU%r;5dj<@u3~k!aO?t%>#N(aYKXm*2l`R%KitA71Zo)~_zL&bJP)4}0}~ zd)?DEV(p_10IJifiVyTWXLlzb;h~X)SZxg90h>#XjEOf?f}(6m0+?|5|M|D0MR$ga`lww&(@Zj_=TM0Y^I8qjhvkZ{LVt3)y z(Jv<(@js9*#-GP#Ex|E?eZr>!!+(NsLn=WS`2<`?zaCdb4+lxe5~mwLi)1T;2}6on zSkHj)419x?{fyB45!{>9DFvns7yntJkSQE}%P#eCCOC%2nTm)!pinoTYO~Mgm+d*% z8kSbLDm~@u5g5Tq=a#oYi_DdVe!hoKlf^4m=bjO0c&QuH%aqq1|KM~uh(_F(fVVOv>v z?r>qeIr`i;ge;FfKvW(F@$cGaH&=LCsnL@bMh*vh$Et@!{ku(sQYP_r6)AJQ?ca(s zUbV78a~~5`)LQrp9)G?gqlg{bjfYyXF;0gHTVut&Pyq+23ufCAt|C#ewWDA}QW9 z@fAhefzpIwDu|m)BvRfYPF6z0sgZJLn2LtVYt1!v;ur)DMxNN*O&GgfmwRvS{=D|f z{74;2Y8ulBffM>K@N*ThYhnBF4i*a!hpUhOE7|AjR(&z?jn!i|Z;c;pZJR>+y-xO2 zed{g`hfgNbJKx{k!#XS>i8@2)UbICeT-NL;wz&h!oLs9__y4ePjx7}^ecL-)4skOk z{HLjyVdbMx+c5{=;A;w5+)WaCD|P~wy|N_@L-|mcYn(2eRir#TmZO8&|niR{TQeZQcmZ z=8M2YxF^67ctP@m9C*zkRD>gB>1$C?V!G@C9MnA7!bCuEA?TbK za#AAEYPMRilrkmY)#f%H2_|Antbwi{md zpTju_kdIKoJ%3a1-c@f_zr1sJNoV9~WC~PTTs@G?`}!2C0>y~lo2){=0*rsK#iJpO z`{VsWkfK`w;7z0WH7D>)6xO8 zQ>27BP@$*T$Q^~Gu=BPkf6Wk~W((AJ?wYvsOpf=JOz}g;f(x^S3&3d@yU#p;y{7!x zCJBb}Q-86TLu5kLahpHh!o{MsVS)J)nH>zGWDG z{$-n03_iLx*&lHb$cj16K`SbBHIDI>DxP>78{~Je;9+U8-Qo*W*5xd1afwN%5e*Aw- zfE^gGr3%A1KQAdJ*7g412roJZuUo{ZzGG6m0+}C)Vu!=~HKCfQ+$_Oxea`C&rMLk@ z9s9>A)%FjDb6pUEVJX;iQM)fwXqxC2oHjn>H3dxF2z=PgXc*khD5%c;GPLupx=R#i zvDxeN9!coaf2%s^V-_sd$7JQ)Cn06dC(UoSr{7$$cDhj;JMaGhX)@;Ro_jDqRKU!0 zLf?&;!e(!ehR8j$S4-E-d-Z{Q3sREdCsseqIkWg4yasL_G1_-vMTad$Xd~# ziF+EIJoh0AyN-sIMzGaw@2+XketqzroSz|zLRTt+-;y?w#yA?7%&Z&O67z8E>Vxw! z%e@U@*fdqrS&_Hf^^c~AGF6V6h;w{Gsp}JwTh4lu4Ni&zY{@IzrJh_bFD}eNq%Ag` z71v;d7$L5KAJnImzD;#4hA{*t!2P@maGd|Xh$9(l0!)ayc^oyp)k@XSiDsHPWP5C^ z1X;VmRoaV7uIgnH=SE$4S(s?hBzD*G7kcV0zy?ZWxc$l3hGpLL5ZwRa6D68=)D~4{ zH0;)6qLqcCRZw|%PXsUWMhzfK40=I#-^%+yS1x9i%Rrtj10=sIGwpH^B*I=r61^X$ z0%Q_r8(+1sT?+Yv}!_Y zwk3~sB19=h);b=)(gp8r$gCs@X;{3nJ5AAWZ~AwHXQi)e(w*1BJJ|tilwyYm^{Go* z)tA(qayph5#1jN#@oEL$WTp>7ysKA43C(LuIJO>V4Lqo7P6d829RrzXJZ)j~3Y*7N zS8I#mrp}`Owthkw-W*arrmYXm4aG!upR_NKgrf4&1m=LG5(xuPF)Fi+T7nWSuU8sI z?F8SVucR%*Cgp`_f_mE?*mu>p^Cx4x(7Sl^%el1QYhvf8ioR2G0h=zp+bm0t_iUNb zHHCfFN#h(?#id6aL<+usem|6fUiVguffV$+9B{LkJ4i;1)^dU!tjN_ve-Y~FgWRd0f^|8tl9r4$_Mefv0ryRDLy z1P=k>dpt`&4`5x@ea~@nCfLjbn+)la#uo}iB1A_hbu=7we`!dy=BLVVWy!#-_?_E1nPJ&;5UufAZW-G47T9say=O|ig}kH8^C<+C+k!II9`e84I>SN9F{YG}wutj^@l`|Ugs zEvYr`m&bkPzl~hy40`-cwc2ts{xqfx<+7!l>*YoD6eg>uR;~U9v<=_UgNk#?3~?j$ z8|AOJxP=bQ3P#9UVH9^o9XoI0a5aKf$J%rSB}L)qGz&zXs8@Waw1v+t>$2-JNfb7t zI^8XP|5ss_w$1UEnZN(5Bv(|JN15xOLjz369Fu%AuZmZ@Q#hjWg>2+6F{WnL{wtT` zC8yA>syFmx*9TvMFaoG+;p4H4b75PpI1WHErp&--Kssb@Ql}Cc+ZivmSk)Q7-YWwm z9q&bu<1H>s`U)}+oRQ0&?1WYME0#rKS^W)rN<&cp%EuFtRy-pVka0s+TfsPYcBrUf z>T~LRs;r3lEzLA#O>zbb0jrm36-R93RpIwT0#zTq`#3JY?Et&s5o?)#ny;rspv1H2 zgm=8f{d!iL-z3UaLBJQj2VVQ-byXmv4bk=f}T)6>QS)5*J`EH(zL6NhUKR zRUBNR5I>ei^XFQ06(v+}qg6GHifs@>Dd$wlicpZ%3fnpRz!Nw7TU2rE?4()_y@8e3 z$Li0HJW4OQS>|;ULRO`+wX32RF0_~s--N3uPjEAZuK7j=ah+8)kAxAo4IbM>@1?EK zIfwCMU9x;t=@a-t8@Q5~#*ZahaiHf}E3DaEz5A{pD#2UX7wLge`_}=f59({dsQYkA-9#`l6 z5P(||Oz&th$j#k`ilYNT25Y&(DZ%3m0K1#ILc6l^A@GPX1U@Z2qWsL!A?QEsBgf`{ zwBNw_@jLN!KV?C}SOJvwGfTz)NYB-A;5px4@n&6tP;4N-IwZ=U||$#JTN8Synb#*an}N4H`i_&kqk( zb94x2y>$mI7Ek)Q`DnnGS3=Yfl*zNZgR1tU>Ax{sW{60|6HeWKc!KGV6XPbFB|z^XE-uRc z^EyYvih!Ca_^u^CJ?K?JKR1-e!H@bSyqbX7!fh6)MH*AuV}Bn~_FQ84xiS2E!j@WK z;z~ds`{3Eu1-2pA!8eHpMUN*S1BV5u{*JB*vnv6Shx>~HDV7c;vXU{78_ESD_DB^$ zN-Q16P!{}bZs?f|;t`+(QqHkri1D+hi62lR9|4{2xEM;<{}XGX9Kz9?Z97A9#q(Qc zPdFZy4mL%!vg5YwY}Mtft9;<;rVwgOwJS`KVRdN89y3c8t@Nq;i0)jx;RIh6YgjfE zjFbv-6FZW~-Il+Ihj9ntcI7yyt<%^U7dt;^d<(P7%L1FoHI*-ZS<8coZ9%IQYbT%c zARJqO8xlW)i?8J0eiNQ%S^?vR<8-0kHwO@ZKKcae08VQ-{leg`_N*!|B;tJd_u1!$ z071IO55aV>ZrE|@vIZX{Vt4r0X6vg`9d@J+P&Q7Ck{Sjx9v*9 zZ2qHxKd-HBzJXCcD4*i5-99#S_j&}@#51Gi*O<2$vk5aGK(MN@YNbjH&vKIg^t9Kl z+7C#zZ8=SwSL!1;67hEWRSC1>z#I%YDbi0J7SsJ4SbSn+4mWeEJQ9WQP!?HUINzOI zh+25(b%C-qto~PQ*RBj018X7ydR1DE$?I<%sQy^nYrqVr`Q8R<{uxCpPZdUERgf|r zfv5;eI+%yW9?1q+AC)kpafBE|;Cb$DfCnX#j|X~|Fbpi_(!(P@Wn1^I*G2>1n18)B zL4L+g{@>|LuDXCXFTN#go(%#Qw_O(J^ZFD2N8wv&%HM#v(F65&8QZwobj)=g-zA1E zqcD#DsLfrcZ}5RS%G;2B4fAiPww z98H2c;g22oEp~6yWH3)XaDL)tz+S!wW@FjF=z@K`t6f9Aibt#BlV^TF6kIeZdBtbw zh|W!V;6pylj_W_GqsM#%xA!}jRdqZ%pe%;=S5FA)N)VJ%F2upg3I z9qpcr6ASc5w}y1dA-t0BCwJsbC<$KQvh9AZ0|*oV5t=YKZ3hV|W|ys1vn`obP64cW z591b>$^_V^_yy2)ZC>2aBxWOj+7=nB>xqJ1(bmPH6%Mc>Ys?UL7hsFTjkidyNd>M+ zKS-aI8c1!*6C{hdI|SYM`8j)zUZ8jmdeoRmme<-nJlxMQ1{d4_a@N!Uxh2A72@eX8 z@;d`dVtt+Oo2AB5S-*=PxXUkIVdHYVz=PGBBS_We?;=PMq(5`#R6b=xfP9Y)cuYk} zisZ)IcS4Z%gYsE(2xW*j1shM9oW(T$TL z2Ltp^sCgrUgJBIn}R)s95T-Ti&3IuYS+UzaqfHVv@+ff(oc;h5A zNsdg+EoU|+)W3t#@6eU#`x}T`!F1}+%RkS^i+32%Yny8GxKSc&P>Ux@7)$TuLX)(- zBedA$vxku%zqtmeFYuQ)W0R1SqZ@BWVav6H$xs7OB177h?pQK^7e4N4^uw@?cX$Nk z2uSe1)7G}^CNln-0z|Mu!$}gAIlqTYyXU5@BeUMnOv58D1{N9f#R!8fXo&~qY3QUs zrUWYCFND)L>oIA2m!ug z@3Lxs8B_wK-oPZEz2<;kf=%-UAEm*3Y?$P%9Oz46m^Ededpb|}79V%n@Gs)uf3bv0|m~ReDIUJ_>%t(B-c=dTi_C>f`@eAbr$~U%lqcAWx$D?5v=eow`)vlv9O; zqwR61G}UB;;B=dU8Qb>wNCYuHryIA7VrDLGMB{P4Z1ui+(}v-vLD|0t78zX@THm^C zPg6fw0G3zPWP03$DaK=i_APrEq_N-{0~wrlj~Sjqi>$Mekbrkfv0@AL%3%u$LoWvW zun1W;AzE~pKOu@7sFhu_0Hkm_0Qbu-fD;@p`!MFnImnFy8UmQ%w5Ktk1~JOqMHHGx z$AC3gmOuh*Yvdw66kNmhBg{VjH=R9MM~i&1+y%VFOw%E?I%$z(a@ZIp65oN8H^LAx zmXMqeXS|1l2e!QR?p){^G+2S7u<)GN}n(mHv0mh#rRJon$7M!DwuL)e^Q>FM2b$8J~!tf3Q8y+suIDZ+*m5VFJ{sho%{gXqiedi7{aRSZ!6R0-{|}^d6}jQ4~%E1JBY)v?^(lUH1ud1WARG zkxV#>zS! z9{wl~_yi7*kka`lFipxnk5v``O6eWeg=leuiNhLJX%u@K*?X%@X+ncLbZ3 zXCF_{%;^>Fv<;ZBa*Sy}4EFS-s=b}oVmbK3kV=5II#LC!3A59Lp=cj=KU3wd+pd9A zm`(ulTcNw9PE_f4Ty*Xvt1=k_lUv2Yw&C~r13%%DrC3v-hqS@w7dtq>O5Qb6oXpD< z_io?x(}&-E33IBfB;=DvT@+`PyI6XMYHkr~wb3HEzEbjdlXbu<%xG|7WrZQq!!K^i zwP1!MV#kE2eU4Io86ZOTX8czzGtfVj_h@535I+r=;d$dsHnMWBR}*`gN~AEiiAb;3 zUeitK`tRODL46LK3iRH{O;XpMmJGmn^0Z$PD0uPVLz&Bl2Opv78wqI08)v!1WUdt5 zdMLII2%0^Sr;`3cIXb<%q2*yrl>3YwuJbv!B^6g9@~VlOQ%-U{0%thyM9^av+{&lP z`-_L7u>vd2iIB;BEiDLABa0hH_&J50#$9M9oOctHDDHSI8&gGQFEx^x53v0f(I2L$^rE7uhTA^fG23TiPDQ{7V4L$O= z7EOCB3pZ)9?-xS(vpQk9505n9*73wpxA9xbkON`D*dLttvd_S-dWDiOv5oQz(;FU{#^;J)iXKcf&{(lG#n?_hNvN@&%aKhPY)@a<<LdFfB>yiCY9s}VEZgSRd1ar+xW#BSy4`h0Y;rF-;8%o(2=o^4#6 zz_kawqj2WMcEAH_ZeV-N9W2@YAH@vHum0*J$s||C)Dxh!fD1n5($~4xdVm_y+T`rRBgcOTx6Y zgY>`ei(0nF;JE$i>EAIYLG|4VDt4)oeBOPmJHs`ZNE$c9(#w|_*Yc89vh#ulSlGtF z9D_Zu7>RWlO55jf>&#Kxg)m-HO+KB7-cg@$Yz~a6JZC0@4_o zPU9cFzWPKwvljAR-FY#)S|MEH+-CFH_@qmaVzL*bVr?#XY4*Q-GC(2Sf=SG!=;LEv?Z`-WsVGm z+r2M5K&(h&4?j7@viesV!)ejMFcFB5rAVF-^$hc$MeJBz7Hpw#3B_aBGXefaq!<+1cjO|<3-(Bb*7 z>W((I4gd$~uB|p}&H5zBL*r+3NWp=f3AXOn*^eFoQg|uKJL*i>vGnIB_~>-cl4TAd zTX19YB0l|JP4~yC7;$CBe3((AhJ8ZH6wU0-BQZ7gH9f=Bb6}3;;?ts&PzIKv`R4#( z7Vv6daiK|?DC8Bx-$%hI%8K1=Kb8q{L31=seqdM_ZlGj?1Lyn4WD!AIq{X;7`XaB% zDMj)Xgo6~ytSB6dlH9j#9&v9y`-`K!=uk2t-YGwJFKcBZv#@3EdU4KGE8$5%Hc75W-bXCQDSNIaHQb)Zk@cm4db>~!cSDUAnk;|4Zb_gV_r{~ zBpwOhiaU&erznj>VzNmK*!c~yfDK>Sck$y5{88g99&Sl(>@_a3XSj8=5?J{6n!EYip&hj#Z%*Cws$U8nN4Tk86#< z*Wg6#X+7@I;oOb{T{8>s<$ctjf=%H4YwQYzz&W0Nl59TWkN~H!c7&bMUt))><;v%^ zPfrX0daO2j-MeW*47GR3HLmvGGI&KujT;}SE-#nyp|-yn1l#l>g#0Cwp{lQdcz7{u zTLuk!c^J#_a}bchh84jWjQ;?*-MI3hw!Ny+jJk8A?ZAEBo1sz4pX8k{l_v``s7^!7 zqCO#uRy(BD&!R`i8;FjHHL)84YSfM5>a%k6;U3rMIm79x*^R3tX_f zX&648>2TOTVnF?L28>Gf@kWcx)sQ~!hFsdUTiTSfl)AOhEzO2%In}KFoKtd#V#6L? z;{Tz==UT|($vknf!4*i7e50ZpB4`7f&cIvlJA5{h^DG9QLiG#ayjJ&5f!FVe-+|6o zJRHcWKAWCI+&!F~3=+bPF#M%T-7+G5>rapk#>^0o*<;QK!^hiTMM=E;WeyF< z*LLkCF=3Hr?Ru-mWbI46ZVHLDy2#^5J)PcW!s(0l1b#QjIRn*B6!0wqc=z;Q0@Sye z7g!8vr!LTH&WRK1<^YM8Cs%>0J#l)p?+Y(4;^ouJp2h1+F)~aC#NQP0tmiPzr}o*X zk!R{-u)UE&p8T-3T!oSEETBWivv(@cicMkWr zVoGajSQN5WFK?xpxK920;Nv}XKL(*AX>19|WF31m#sbpjQ`n^DU;QtS@#QlxHNa=7 zX721E%#+ORB@iO{7jV~td9r3uqO+#XNY1{9b3pPIU z5-C^I_Cf?lzm{Nm$b9;S8^czGb13#ai@uA{VL2v1-E7Y&BT4zMUyyxc4cd@;BgMA(EF6S=UWRm|*g70b%qMC)UFR z@DRH?=YAQ88^Y7d?)O$R>H{U(O#G}d2=Lz7AAd~Ek|3>larYkkwt}Wy4{io6`h%pO zQ*RSm-n#c?#5gA;H9b&6fRg$U9iO36l&penQs|-pRKH$v=zWHD^f1CVb#vBGN}=kW z^$5Tp%VEv|jUZVLr+L7d3$933+yW^!s0}-hAQM&b*}L7nNAM}h^1^Zd)7gi0FuN_$ z&#)_YoQ+Idk%l>^P&CJ^qK%O#@qCTe(~KHeJuYgV6%@OmS@L{2oe1DtOR+*;K-%1T ztGA3$YkjuC#i$MLy+Ug>VF{NI`8I;~-!@>gnoF%PMDcp15PUbvg!T;UZ_0`tS|BD^ zHqi4;`X}QyRH+y4UP%m-eE9f4)Rjg`2}ppyjw#{siKYD!H|m>4C- zwhFC5;yA)w&aMb7KIobeOGq}psxujzF-E1)$-wF^UN)&|moP}!FhBVK|1Md4OI>?Z zb49;s<72`CUz_60yLhN+{AG4k|NGF_4&gUI<_M`~TxMu#7i=`%8ePn-qU-7iyD4 zd7+(ar4?+Ny@0+Tv3E=##zJp-G&o-K88TJC>J>*#@vG$6HQXlV%9YL(^47cflp; zqWmDp@aXQ{*ShII3=5fT?txdkXUuD2Q_KYCZMB%@l9^UKRQ#t; zF-y0z!vr2e_e(miO@W{(t9HC>Ii?t8zL`ILp3N#Qyf5a+!j81O=BDziI9XbFM;_~e z8d;f{Oew&vx5oGEN!PTO)$6b;G;G`eOZ>ek?0ljl{sA9Z^k|y=A9JOm-dBqh$Shx( zHKczdcU@u5UTnXyWfRTTPlDyIUr*e=C(&%%r92>QcmBYIb?Cb0=WY*Nvv*}YASEj< zCYodFnZSX24u&cgn= zMa=wpljki7Ur*|}R#8Dd20!WXzNSF7J4Y5F4keZi>ac~%@vX6()7L0_bjP34oE|r; z{QkkFT~*`rN;sZ%^Nyec`n+5zl)w6EM(x>iQsrONwVG>H>#M;xtkWtfW9XEdi_6 zGP<|fE$_Om=Q75>-zHCe_p}QxEL}CtH8Tk|SJ>RWoYVUrjE}M!{ShQ)T40Tj?iZ*P z;AVRj`v`|v6Ci4Tjrq(G(~9hGc+G@bPSf}~+4+>$j9wsK{h-9}PoI?rQta3?T~xRc zG+q%?`t*Gxpq$$aRSn13b&!VTfNyPXjaRrmRL_&|oxg=DXmV-^+8fK5@3W!p@ul`$D`28pn-8p$zpwml@ zUPAxPQNNVH2k(n~4Nh$>tz7mYt-wPBW5wZ?9GN&MHh)kFl-z_YTnZkhHml-VWooCx^Q1AM3q9u~`oNuiR-Bj|p6lcJw zs`*B?AWA-m%>)1E15Y#uWXZejB>7mN)*P}-8fAsVYE!g#OGU5HR!P@p@1}V46;gW4 ztyDNE0AE|HFD$bYa7Lp$IEPvH;q8cF=hiwLos)y2AfW13y4w{SV%_ zc%P#-EWmT-!XnnCu~JH$enxBj>T^#uWj^(szB zoMrnuvygn*nWCm!#{IlWF?{;-!$%+yx#7)Vnq$>8M0KwXf4X<;@Ea%e7N_|>WRCuo zE(6EiE#WR}XUkr@8uk?hY`m+J(zAjmGtk*4ME5%y(Ag+}gdzbJJx<23b9he%wc=(6E z>(W7H>*p>w?Ts=)ZaF6V?N8Ao`-x8O+$S`^u25P0M$OUpIh#ZEN9GiJ@?kcec?_&( zcAOp+z6M@s6xRGkdxycqr>1wU7PVj*RlMWBs6e8nCA%kc!qIVE(N z$^cPeRITC5vXA5ZS>d}23F0uAA_J;{+%)dtMUM7bGW>y8MCU0#5tmP3k3>!RfVzsOZJP`T%^@F2{T0R6A90 z%ZKeHd%E(!H0Dh68D}_&U19?VUhh~?^sp*H7i3tvB!Qjx5@+}BCA|>o;c=_o=6;!q zseYw|*v{*!=HS}}3M3iXB>MR)3l@miMYxqJpIr~=+om&2Q&Km6WAic#Mj8M~Uuz=o zNkIqGpovaMh+B!}&-#@Q!vEHMzX%Wuuk-CD0n|@s4tG9!rQZZ6aq@*L;u>;Dkvz9L zQ^VG&#NSGHR#Y8yKf^B`nH&XuN9fTr)&v|ru2E|~?m#uWZftJJcjq;)&G-K-s`e5H zO~>Af2EM3dMwNb7g5;>> zcY(LPRtqnOsQC#tcjIp*%q%Xxh&%pox5rpIEz7^G_Hj{(k1wB2aWuv?5TMFG$?N~@ zkJfdN2CZDK58(B3v}nutfdJs4$`fIVz-v8UOB_-ecH2G9-^E;Uzk!ZhM*e0&EKB~+ zQZcc9Zzrn^J5Nn&GXnV0!IMNhVT}$`c8b4T(_YR27cnsts()5J+yD~Q z3mlkdfuI<3(~H@%QYnz~brsffQe$u$uN{{sp+>2r>}S9azt01c&1_E)LieOIFo8k( z%0YKppN?_?_;%(ZuHIKbg=v2H$jXwBeiCk_aX(jl{l%KQaah}##E!O;p6(- zdXjun$m<3kX{!Zd)Z1PG@|tmi3as*C4otpnx6XV3Y}%(P1wa4ns&w?_?=R2SD5+19 zjEz}Ty!1s#320rU4tm-{j1ol5g}b`a{B*ussU;Gg=>@&}DY7r2!j$_wV6<=ZRPe9} zeX!(ry+DIGHxDm42ya#`=i94t{|DoG%8adaxY^yY%>{_{W(6KliJ{YYTs*Gtv3gtA z1R3|iN8P16$Ov|bEZ&F<(zW8hlf)f`P<;Y>v!v)w9&2W9rX`yP@P5+>5^nDM4Kiq# za4vN0%2a;^u=^6Jg-MZ!_&es|B&yG@Bz2djbM>N&NuIe`Rccq2!96XO^!7`3I$vBA zB5X2%i$boe;vNBUmQm>(>Pl^UFoMe*OSx;|GbP${OaVLO|BO@d@!NNrY1U08 zf8dQiul_s%3qnVyOkMYv=_4;Xo@~vsOs}crNBX`wa7j&Suu_R5upGOmm;z~P`MPZo zLE6lBVD@&@Xk`X#_(-9 z58Dw62Qp|%ILuM&j$b=%~mV+QP;u~-ONb;^#}Jy0)mvggoN&R!Do@4X0qBr%H#D|^wi)tq9ov^_p024 zA9Rob{Awgy+upNqQneW$pK9?7tAt2b{q^RIXY(_w$TRMSWZQ2iiTMT5z+^#9FX1X z9LNL95An_JIkRRHAdJr>Z2!D*n7G3$%MSt1XwjvRZKkVfk|IzEgM~c+uH{ho$-xeC zT$ZLQ@18~{;<8L40b$&1X0U@7mj##Qi#5!!8gnmcg$&tY12e4BW`$N#q1R3# zc^}D67>A>YBK*TNqHzx)uSc|flyg7m-^F4=VUvIOBwf*`HD#zQ4YsR4CJ zfNV|xGTnF$s|R6W(=R|ulK%ra0{ZuEf$w4fHgO6hRhAaeej5tg`zM|7KOCA<7SoG- zHZaJTCrPXT()y8hJi#`w{}wA=ah3|-!j(pg{d5HlT(Pp+3{-anJJE!@-*@=~!JfzO zi_ZL`ULGnRbW($gOYuPCQ$&SN2%xnS1;~rS!cGA}5elT;Ltumft;$aNKM*&846+!5 zyM=BFD-Q0c2fXhnVFZ`qgUzN^91wBuosBUu3tqOz>w6ePEA;2>4H=R<79m8AWFLhl{z{S~ z?P3uXF4(8?KvNyor$&es9}LE~2RbK6VbiVbsKwAXC%+#B1M;C_kbd933P5B>Knn&_ z+XH-@A6Vo8A{J=N_!in~n1@&jF^o~~YXO*ejhjuRiXL2jMM@{$u=$DskEMnMnx;Vi zes#X%Oe_lWNl{i^8l^!8du;Bw%yxFZflGKue+DZ_Aya9JWihS0H` zUP(e*7%tX-!!N+3BoSs3>!#v)SEEzA4(&s%VE`u-m+MYowmx(==neII{Z+P4%x5fB zdk7?)Wwd41`>}MG12Y6D0bOYa-fH0J3K4q^L~j>Y>Va#2@K}7n=J#pQB`_5NL~IL? z6t8ti6pM}fUvph|45EVaKcfFy?fx~`Rnedu@L4{PBTr$H>|nkwtb3o>nH(uyd)M** zYUDhlnoQO>{^lhK9Rj;_mL>=a2!d>oqFJQK(iWr%Dj*UxbX-GQ@CBtrBr1p)0dX;u zfP{!NsgbILOIadPREi5o3kU(}+;{ixp1U9S!<;kopLx#AoHMq>^c0EK14J8O z_FNBZEw1^<@w}4@;E*PQ8gYEaZ*wDRoUymoC32TD)^4;{~{YOCa{3&0Ek7pn;d^SKlW8oj6+Z*~rW@+le)FB9C zgqT5p=3M#D?%G%c^3l2k!^S93%LRxp3_=(iAfJJJ$2i82pDpisw7&F{ATLC=4UKo{ z`U?O|+ZJ)xPUb+qhv3p3yZr9jOSHlL?y*W3wu95c?%y3*@;fuYUD{uB4PI4({TiyW z2M^|J0ImHBreLLPemyT^R3R7P6$UY1TXRqi_@9+6RAqC-ITVZ$2g4nKA$9a1uz78?5aS@w+gn7QU;27F72Of_XP&7W_m(KDf+ zUV^S6<=SIPP~4XV)K8Z(-EcQqVhmG*5dJ4#&L*b-F1 zKoH0ME*=BLJ5oN8_mn9qQO^ohvMQrEQAkXbIl%KYJt*h$+|0n^N1ZE62zdkNYyQUl zY;`cjL+6ydV~l{Zx*#88;f-czn2zzdrnaZeeI~u+lJgU%XNQ*ZMExCsf^K! zk;pb#p>Ps_w)7+K#hSh?e%*d(xi-LyGwPE+O+kecBdCRHloJ7StwEB%-g6M8pHPRC z9VtccuY9(x2|o%+7zEg5>}gR@3@sJw5!*Lh*P_7=xOy1nY`C`e1Ai)2&+Ga=t|(dx z{;{F=P#%g=fLA$dIcCf|0E**w@JoBq8A&aMWW_=CA_w?!qUtRuK+N}lDP{p&hspiKJM=TtG7@5Sl zlNaj^!I#AJimALVtesP^yg4?IGj*WbW5ZFX_v#(%S#mz`fMmo{xDhsWgUD55kbo9f zBPZ0(hrJ2(@`!a8J5EetaZn+$iih@XHnox(zPz)S8j;50MWs5(&%F9o>pXh-OB_u@ zqLBKTZ)%YD>tsUmc_gNKV2Kzgy6eefP3Z`Kb=z#l;`moeia@en_)q*i(lI%lQHI7h zU=G+?J@UcvP`w9>OkO930u>_Z6~YSYD}xTXJCDpSb)Za4JcYb({MHpAF4cCUkI_zy zpo=&F^hBy!WsKK!SPb{pbaX*$YLIqpI*w-xjFbb(=k)@F>9qxK1-j)(-N ztMSN(dXJrTV%T<#Wcq`-VX|Unlatfe#klby+5f;7T=8du)$QY18QwqJvyT1eNyhv{ zmI{Jtd6$cALr}e1LK1l(;dlUKUKd0lA5enZ2$raV^piza2a~ltMrAwR5l1Ng!NK z7N>&5jC;A^ZSrinU^Xo=lTRrkxGvt~__?juO^?NJjcxvAp_=*IpOSi~+HOyyu%3Z) zvlF40jQECbRSQkWciNA`E(i>j^F33P)$gU8QZJ}LzUPk_>O6WcKKZchHXyQ@i76cM zSnkVK#Rn&kHkJAdy=(mD)aT6&BQ&N=SH8Z z)(3~iOE7jWIsxms(T+8TiR0?{;P5jku?}~VXC|A?J<+2rCnXMoe1PUvJ%X)+Y|-v* z3nPeUk7IZM5|J}=9{$#4)mU7#Xkqh$9wh0|bJfIN$SU0A+aDX?rJLDxyrAbbWy62g z!V(Bs6}F+_k)hqH=Gdq+*zwV%&z%TodHj0m*;Yxno8d1Ljd4INx|1GLKM_srFiUA@ zc6b9w4v|H*9|;O(Cr>D%#AbE*Kja<6zm^LKGCeBaj0&^T_#*j7G+^3Y?wumIW zdU**D9+Ue;uP7W{!4;MO-}Y^Qp!-EhxU5(m)l2Iw|a)%#DqITl;t^Nk@JN9 zK?3L=(3kWBfEd*1eLwJUbk@TCL`Y#`UM&W#t7E?XwDThq(}gQrAtg#M-u0$RA6Lk0 zSUXIjtPaxZaB8yTF*CN6{cAHO7F+hlp$cB)E`)U_TZiNEw;&sYAph}5po%!S(M~{ zAmXa{&}B9O1oourh#%FSU!ZGZ&CBqD|I*F&|HYt?#aGG*I1N47FOT&B|H_d>7^f)?Obax5}2ug?`AtEl43P>p-wWNSFNGY&LNP~jXNGPB*(z!@Wcf-<1 zhjjhc&-ecGyU+dI`#g95*_nCIoH>2onfFYH`cp+xA|@gL0O?~TIZXf%xF)oZ0EYWJ z&J-}mbxze)p2=TbT`eswy{q;+K0e;t+taKm4hadlxVXH3|9(S5!`ayxtzYNgzklz2 z2)4Dg9UmXxR3@66o5M_DA|fI%7))1J*T%-iz`(%z`uf7c!s6m$Qc}|7g((4>guMZrWzR;onM?E92{V`u+!7iJ3BjZadFbp(yObhPoF+@ zb#^)zs8fR8)l22bXls*4Nj2dwZ{}tn~Hu?eFjBOpkSqkG9S2 zOUHz%r+kWuiMbckZ;_pr^s6qWzS_^vZ)$GgT3v4aV^lFddgJeA#c283+M4rEtY+E>GH%ejB;PPISvxI0rs?Cs>G|j^HmY`_ zva+&wsrM*1;^h2nXlo;_Yb}2u&!g}Me|XR0&UVMx+_o9t#VYo3(%?zk&y z{gc_PW9ERayzbu}a~)BQk?(33whoUk4|eOPcGH`uj%zdbj?eN3H{;q?e{@XuO-{V4 z{OMYdv+JQawLbZ2xHrACEvK!yWVm?uXt#fI-mk34Huu{>>YIU;gW7(qLCz%V+tAOh z-|5Ymzj4mZtBcr$#nXOFc5n8c|MTYI!Lre<(LXDm#iIwO2l1H6;L7pyxsk@ff#RXQ zn!cXeiQ2f<&wrz>b{!vVX)~_ut@JK0?uVk<=VqJ>Mj8hCDto)Ww)`rapQ#)h4({(T zX{?;t-1s$wv&`|c(Tv9&|TqVKl(*?;!`=+u?&`D*-)v8|gJbuG#JGCpYG zt9%mxookQfWS)6UY>Yt&F@Qi`MqYO8;h#q;cqKIy{gO7PcSQ30}2_ZK4i8f=S<9nDon5%#b*^Ri1*!`Y0o<$hM8~dGY5EH zuw_+xHw$;eL%c5c{{7@lkEyRInCPj?FJUXbViFa`sr$*Caupxd(zwx&Tm^!CRc2ts zPS!{z5V)#ML51X~rVW6r2iqe!AT$~JGXKxRbH+@DRfLlpMf6!Fz6_3TBF9Xa=}(hZ z_l``lTQrBtUd;T6!gqU z%wTu%u!nK50v|u`J?5*?~Rqo!tT+vuLM>v3?XT>rX&5AmR|bi}oYA z7gk=2U|Il)Pzkf5SvA3Io%S>3Izqv$!9UWx_p+QOVn%?%JQru!AWZ%3%@F~BlSMNE z&+#r(wi%ey?+QvEhp^ldCZt(yWaYdA|I5@ORQeF!x3cTuJhkKT>oHTY4kv^S{qg}a zwRMctj^MwA1JqN&@vnWWpLusvkttgPzppb0`O!gr#gd@O z{2~9p6Sdofupp1c7$Ijm%=w_STR)9>|s&J&r(`DWG*vM(N zJDX4|Y7E=+C5D-WC!S|9%)bjS^1C-LWUU;?8=jSmcYazUE8TwnEnuK6-+76`R~gDH z*Cum+&WgNt6DINDxiEuQ)&uUdgJf6PkX^&R&qdI93#P34ar5wG#gx~060Low&o^a0 zBd|uPSrG|oR2E`6>BBm4C2KR{@5wQKxdnLN=55B#3BTpt&Q;7^M(X2ukYr?$KnTfk zzcUgelnp5kVZ|V4pIp6Fn6*~%C`j)i!fsLsq`v|7%lqci+r0x~!IqNf2_6>#n68W7 zNTScDX)Ab9$)ADxUmtLW_!NQv6hiWK&_|(9{M!SbY!#TgsR6;Hvo@fvP32^~z1Oh^ zY%M{Z3&S+2^iWn?Q;r!6Quv#S(APGa7n{RkhM$QXzph-GJddI(`dNKov5DE3Q3J2= z3#b(xxo{?~)#xV+$^d6yPb%bwX?Z0rhJdYmO0ROur;%$JdRhDnx~9p`AEe+&w;)vJ zO{h70;jKm9h>uh?hK|{6>`tj48vMQ!`%zi{fp#Yu3(h`QpE)`ffUIRZZQ$(`1liu) zrFm#hdh0Ro%$zvkEwj}25EkHj*XxtQT_#p&GOTh*>rd_o`Gw6l&Bs@sz+!vnE;__m_1-T;pTME;^cPi|XLOpK#%hsAu+;%;rPg|x$ce~6CNveF zBsvUsOv%&MW^w#{&GrrQq&;y2?g*2R_6ZBav0wSUZ)zB-yY9KPLE>up`I?{;aaOrB zThQQyZcrw0CczB7!rM_c6OFzrCW!q7wi<;ub4sF`4BPHO&VxHY0wO2b^r~EV-}ITckImqRPxV8zKV;m@ER8Bgm;aHlWXi#HDVmVZ^REYU=Oc+;*k6b_GUA-hp8u{$0i%-53#!jj9oj=S z+zCl|JyTG%)w@5RdlOHo);YJ(FOaCD|JHK@_|sY0ZeaVPWad5W9;A7$+8ebAd;09m z79Ud$S0_kMOCXyNE`q z=}X%8K*9M93y#D~U3z4!c;1Ea@3lcgQA6J=r_tb496}Ah2CL&pwz8>?b1hy`$hiV1 zr~io2b5O&;TBK%#3cRH8kn_i1X2O2_ZiVj{d2(Mp4;YQi)htx-*vHqOI-Z-2lOOxM ziQ@Zb9xm9m)-#Q{Cp{8`Pc-<-AsUNIr2AgIxtAnWj(UHlCN zlQ5p2$5&@61WphB<+#dx_J4-)U#7F?BfzPo;=g=1N%RQH+idqQ>&=(H!^Li=|8n2| z2Y8?_=4TpxmSYri+|o5x`3TCp*rda`D~=iR&S!o83b>UFn2+(L%)xKh)SCt)1cNz; zPkj5*Qd9Wn_>b=Gg#7s<9bcWG$cfWm0jWU>E5?N9WTzvB$1j>Zh`v}-hPRPXIix=! zlt)OS5{N{vatfSL3%HyCz&sBs&%5E5pZ0 z&L*AQ;fZ^dm?E*7mk)U1)cLqaR1izVX~c=&IVLGk>bo^<-+6~&NXgqk)@-g@19apRwMNUTgXlb8Vo7k+=c>j#&8l5oY( zO@wr3hI}f888@TsIbL@j6_JwjO2S~DLzafpXk>5Q5=8REv^Le%S zQ6WmAmA)p3Eqn6bYX!H7%OJ@t=4Mdc~%i^#lui`0ETvYuf)M>oG=I=Y;LWP0QhzDo@mwyf!} z+R|a#4&TviG`&{7&Pj6}-_k=3Ayn3^qKh-SgP^bj8{4|o2bjkZiv|_Uf;Q@w9+7vR zxk@mm;1}sSH;Pf}LHeHLH~lc0yUA~s44+pS!lMxBNf^OTNyp}*kNy;~6)butNWcBL zUStOvzVEJ1XEFW8G)~N@75a+R92p(#ylneEtL~7n2#+>bLI`c&659TZbISZV(|a~r z^aw|;m@88jy!&XAD9y$A;*`aAZHs~PTlygbC#KkO)6}l{XJd#Xv%QXsW*ADWLxmzs zN(Vx&RR$?N_$Z{>(zE&D^}$h?6ZN^sj)E#=<9WgElqDBy(5wmX{n)bEh;GPQEjwFD z0GUE|7cez2dx~SaEQq*eu=c&Bmn)uWPbjxSN)Oeo(6<1i%=-MJ)F*-y^(FgI+eS_i zemi+*eiHwuxBHsj?t@#Tu*wzjfeLGZ)4H2+oom=$%X6Q%7t7s=uN7_acT#49+1D)e znEFd+SW=3h!C;&RXE>5g@)K_H3<}gSOpJ~tFCerCyk5K_?qb6iBTCEk7wPjNW9Pi; z+xCTUA?XI%?otSW);^@S>KQ#|=B8HiTkCFvi2qZH_8QDL$rH+U=_gBTi1)hj-(m;_ zs%MNgwn9%L{32873%z2`RF3|R84@UtJBgtkZx?+1?(iB?&p!xhU~OGmQMS|THiH+5 zEG5o;tC7h9D5_A%{N%uMzbyfaJv8heu;vs*mPs(hj0BeF6bnG|! z)%&Ql=1LM&?07XO=TdnrY~5W#3iAjEeSLsAy5E^~@TALqn_S!ms;gi&X|7UF%-BWuAiy9uVvCa?CVRqljF5QKX&+x%p3C!wmNx3S^8h{ZjrwTYt|6>>eLo?%bPtNU5GSDe#p=6o>QF*rU`4297q zy6+^3Z!^OwE{ojPo^qpS>@<&3jlSNCU>i^_flGBNFcO}&HdN^^@}fOLyQ7MugN#~}%_~jqFIzwUoSsG1-16#% zjp?xO{{)hsGfTf2{!6=e&gGlj&#h>XU4zl@=efe{a@q&KdZI0Cjwbpo#lFJujM-Dj zAP_;BKN)inTlb7V618{3(=ACI`JE%L3(oCK?@m&Ss~CGrTo!NOzip^fbeSW_jG7km z#McqFzQyN^;B9^#J?7{NZ*>dTG>j+sz}ne@8z#^yn)Wk+7f*IWj1qNPIa;@@}Q zPLgA3bDHWMc-zfwr(|biU5t+Z;l1;H6?HeQOvBn+DTyIM!EQK>BSN21PDs)J)(S?+QxPPSsQ!!~}$pk(Y{ZRn4&~ z-jC`AGbwa~_csQkQl3a9%uE#gD$30jj!+w^K=sQFjBbiCq z`{#zGeZw;JthCUn9W`FyOj@;LzP4>)_mnIA!bwq_R#sS>IO9}qD&irVOQL25^Z^oE-J zcfLn)9dtjAsZBhu{YawmoT9+!{ULqdM5W30PMDmy&Hp-%7L7o$DP`kcXeD#BTG76v z23=~$&U6R&RVjb!w*KcNwxWl3ZlO7&rT*a_Am<^A_v#|U-m6v?MZ)|>&k*r@v#NJa2V?btb5~ozrEmBV~ z^aru8JWz&wsOqoZ;nY=X{v-zJ;`)?mPRPrf_@rz4IrtfB-6n}nM@>Ik7sdR%{GL0& zd<!R9|**0?^$wwjWzZmIHoAHVDLvPiUnXqC?t8F)E7G4~oKb|-V zy?B>Zi95j6BS%SpA2@vSyB4K;bL~Ud>r`k3p5tZBQH?>3%k~)&&O@YD({$uMv!!VP zhrsKF+t4Cnl+os3HS@h(z@*H``$L%uDf4}N>QRJtkL^1CZ`1rdYp}jnZO4eoUU=Q6 z57TYK`4PFK2Q5WHqIbAhD^&PxamDf{m4m~AwBaD9(8MAVl*%hZ!8pEGlO*V|YR#Xo z7%?_4`VTGjDu#}6Wd=>eNKgLiimej&W+1*hwuYy(`NM-Ev_)Q*J z;Q*{#@E*|y>X#$==mz-Z)lf3ejmvgow^MH%Gn|5Rn@5S-TUz8dK%At z2vN3LZ(OqGUbaOah3K=$n;&DW{_4Z{u;!h%>F_i-g|a{w8zr~ zPI0mKwsw<7;uGIe#5|+U#oA4D98jOV?&0&{WlzW2TC;iVxxHv?4;)-$dWsx9kt&L(6Ct&ZStj8oI69>ixHWTiN9H!KpNaW^^-DQ3X*VUMUAYyfRRV) z<5N8R82ZDMt}u<>@nv`IF}-ML<%icW-jxW$A0Pc}Mg`GMR?a6cBwbdW2~5|d5Jq%^ z-nh87Dud6~d(yvp>Lk7a4StysiqRDPED%d&2{dk5nuTP=5s#Y^if$#>uWJ@m))^K| zkjl{A9_~J;!eBr4@bL7};iMMH&VmkWyx-?d@KjM-uql-hyj-0@2TlW zOd8B>kAaevj0Ed<*3rWn4+sJPjjAib(U(%jjLecZ4#82^b@7E{@t_1rRG6hb5L5(X z1}4UhkL)o*q1+xEFm@6xzstq~8ucrbF}I&`DNINuc8Te&TE+SQ?bQFRj+?twUMJgi ztlhYipN=iY*VTaCFL`6Sn6ycV1fg*nh52o93##Y0Z+^w7iKnFao#6Y_`t&uW&Z7FS ziaFP%NLNiv&KKUt9uo*S!X#H6Yse7EeBAO`&nsh)fBVvXX&eRPO#j>?3MSji^`8_P z@M<%dmuIJAbuVK;BtPDZaAVrh*P-Wcq(14n#!LkJ@stHHLKJ`3aYS-6SiC1gk6JLa zEtPXf;L8lB!`Scd$R#0^-B2_s%t$w^Cl@C=KDSL=2<~{Rquh}!{D)v6_!31AId^w( z+g#z^WhYyZASeFW>qdR3tXq?$`~+?hANU@VK@gi4`&H{9Z|zuPLz>pbLd0*R{QkYy z3<)c*8JF2Sns&mWyu_qIKGa{%zjsfuVwm?>W*_slLp6a#I!D1TFH$zz|t9Ue2^Awu2ALqAU*RR`QALJ>dS z%HbaMHtd{_%fv$C@%d1J`?rYFxJa@FNUI{NC@{twpYA+gBAchd@asa(ikGKkaU=ya z4sqRUHXuNKp;lqlQbQHP+$4^_)9PyC4T@Y@Y5nz<>Pmk_FQ^NM8X6=>qHKc#erIG7+zcjw7LCvaTcwc|k(^ zPx43_Mb2oZ{X#$wb25Hf>xkxJ?o{YDFZuzOBuXob7ftnw;EqFV3kz0%z|<*?71?{u znGr2uyR<8SD0(l4us!|3$mf2*ho&+kcs8c{t%jQVx1e698#Mma-ZKd1Qc}mEm5T_a z7DA-!^P^bnp9rGU{mos-t7G}h?XIIapGOMrD(f!!EybsS!^9l)X8%eN*A~Ussl|ze zc&>(|DmT#9E-Jh8z+sO@k_K~)nzl$@E8^sz6rf9%=DQIakHMSK)WAEwgLtJWowf?} zh@uKP1pk93xKQCg89dcAO=?H0GBV8+7@|T%njb&0&2&MVivHICp~DnBH;W^nyxOwK zUz^2<(sW6kK2lBc{{IFrgy=ua#eUU{dKpZt?n>!YM=J3fctV2hO<59CDUbM8aQWcPDfU7fVG!g*ly-5B z?skUm(SMuGdq;~rxx${*Kn&!`(iXIhjc4^;zZX|gEZ}gRKwO|uhRt9tb+B~hzfy=N zR1?(Jcjv5{5DRnFo4E9cT0OXp`kAb7sw0|=qxsx@=X@BXn!hHLoH<}D?Aw%>mIpM* zvjlWtAv!Y~{gVcHvQ1%ig(4fb?p!AM<>Kymqjd?7)q{v$A#y9RJe?ZTP5(41*}t%d zq`LM%2Qytldrb>aHxlbM{!zR7;e${&1%AuL_Z(tdFUF@`YKc}*230*y-`*t6McE5{ zbX7AmXj+208f=Qpn3UW%$OSjvv0)TW#aCI=&V5ZF<{b}o^<{g=2~hRFv^Q734fB(o zWSZBN7d{$&GbPg_*9IGGSpP}tI^OaT8c%>zxquY939~%Re{UAw5w8l?`U8Px!-$;u z-5Gc@BWsTd*pQ{hOcr)6buW6)2NI#EJRmN~e+yk$5bBpTePAn~7|lXVlvV?0eOXlw z($wb_7{qnu+UR5IU-e2SuA8}%#8@DN2x*YTFRVasqhq@vZk=e`?vAEWM%DwE#3xl( zsXKq(_>IoO9r5p_fg89GtQ|(i{zK~A8xZqZZ(MVN!aUwhg_o0ixAII~-azNJd*aBz z8EF|Cyr@}V7SR`vE(~<@w zw*&i3mS!eo>emM%8zr8QK_r@BLP5Dc;HMs@aG@g&*qd2A#GbwFbQxUS?#RzIOu{hJ zV&wYn{l~Wcy|gKFyjButhQNJpFG#X?xwJYsw7Tb9g0x<)-Ih)}}+W(2E7^DQkQFcl^qjyJ3M z89VP0ysmHmi3rdw3CffuLOuEq2weI(e`vGh#C>?n+YW@rQ{YTxa~4iv)_rOTXA&IQ z$BFjQ3RvQ+aVugHCkfOT`wY*x!M+yQPcxv}*h`_tmS!j#9hiW>TEBQ9Ue;!BmHxPm zDRDKfw<1`)YSRB})qoKhs#Hr*nrK#r$8d_Zy-N5b(K`b6#U*v*X?6&B^d;h8 zGW4$+4MdL6ppJCg7e@o4O3IJr3UiG;bip9cSTB4?jrk24xP^%$L5)0sY|ugAMfz|G zjJ?3acLA&Ap>s$8QPMvI4V3}F4NieBpayg{dz3L*kKmrU)Qb`p|MZq3X`5-V07NXnugmBkuMf`nkGgeD1bz)}&5} z1Z$TBV;o&UzCJv-6>4MAxFLD=e^deJSpF>3&GwB;NWC2)I~pp5*ceM9eE}sv&J?1{ zTBYKZRj>5kah*W$;RtP5~ z0PgG7B1FhP!i1p_fCNArp0H%0x$ooWiQn{s5)S!?TQ5t~Kh00c45VrwGZzr>TpJBbQ~Wd|qlj`y`~dt+Reb#iUYzuQqYahdc8m;Py2r z$^wS`;g(>c#%3h-0Jl@7C;tM)UgccMxxvwLK=+`vBBo$8V&H@Af8AXLtzK77W(Yea z(5^8W)ikhIsYEq_{wvbKi)e@L**8iML zj9TBUkYNTLTcEGn)IrY`AN8sSm&wt4EO97?wJ6H%jzZq>#2e_iLvW9 zz(*}eT7(@;!pK*y8oi|pzF8hG(8aU-Tj?SC@$Rg#ZKOVs-gWKhQH{Ql#J*?%tjz8M zejh(4v97hc5NWvsRS?#O$FuKL8Hy@C<|9PaOxM#fmQD%)E`6Me^bwBp38$7S4-6~x z`Tv$f&esyM9-K@+CV%AnIRgSd=Hr&nhce{D#`=F+?^@BL7Ybf7rJe}~xNExNMEOb| zh@B%@Z|!&k{^16gx|g-ITa#i58TQehsY|1IGqFa97=&cV=>&K$jvJ&j%( z#R9zlr)5uzL4M)`m>>A)XPerPXBM#kY2u2LqLWDhA?O(YznVvf=ielZ$#m16-UP_% zD+t!;>KZH!(xsEV2xFhViUd2I!}$1+x0g^rjA8om?e_>2S(5G#jC|=l*RP=`9)i2* z6c2KKpmfv#1LgG%^z@LSO9+;#DCpJ~arpyLy89DE4iNaq`1YKI&gfe{HW>Slao z2{)KpGVafP_*cciicptRoqG=wy|GIF#(iM$8BLJWd9mnBTdPuDhJ;o=qGbfq_9B-z zl!#1bUR|S@EJW-npLlDtUqrQ;tjbhke7iV`gL$-I>d$+}g^|IT&*c+D`GkRQQm^Kn zo8FOj+Ln)zzS|3W7n%u zcS!co`DAiZqfYiHG0nEy3q<%r9R(p{{RwuPnNttkIgHsgY$=^L=ZO|yv@j3}cvg)> zl~h+T{2sBz{|^rhdS$ho8sle+nq9FFmJ)7|<`}3bZegzu)`Nac+1!*5VVCVRu+t4tUk+5u%uj z{8vyD9dW$NZ06KcL6rqi^yToKEotHkVsk5Dh}Ela|KvoQdP5>&nY{`<|kYrlUzfrRT5q+NSAM2uBp8K3dC z1L)35`tgbQN5z?ML)Sp+n6iSJ62+kq?f71El{GCE9HH{|WS1*539 ze)%;(91JO}o`SA$-)?X6@NE$?lyZ3IhfTddRFw%Q8BY=5=o?-l+8GR{*z9Ro8Q{B!T+|fBB5G6_X0g7mG5i<6}qg`p0x<%*3NzB--`11W1H_>f+>4IRN zaljqDrUocU6tYHcGrW%jLlSxaNUi;XX&&o>1;-eWXvJ;>=%di&*o-j)B2+aK`TNALp zT7)0M_aGkaImBs6pi~5s^Wpe4Okxdxhi?#o-O%@Fu~r5$cAb|c2fQ&!Md;~au}4RH zc%fx3;wmAZ-$teLtAI82uU?S57X*?F4geiO5%LUj{Xv*2YL|$Y_)^HEU;MoSaMXWEGG);Yzv6rvU5~^XTyg;P6VE^7M4U9MV0&|&VkHZZ4 zq^9R9nz862EKDr^xem=P3)+{U5;1Z_4i*5EZ0A)T2f*vOGXfcWym!rcI)W~)*aDQt zhG?7BFx7hYS<3TqMaxr=Z-=*JhaM1THh%&#c5EQv>{mK|_ zp;z7uJJ&}-Bre2dq{Hu8vEQN-ar=QX3@uhvA`z~VL_czf;gW^WWA?*I4JWaf&AFDw zven1VO^<|$XNx&?XCx^y{}iSAk9}UEPUj=!1uqZeR`cuD0hduKl4IpD4>|^huRahN zXL#Gb(Qg0Gwb=66#`-gIbmr}+;%CGSuZ*tJ+&N<{^n7k8$>X@P#Z$itkw{siSN|6~ z6`@5R(NJ}8i;oITi_;`jeLNcE@uvYA^zV1LAPqsJfoHg4Pi^Xd;7cc2P{)n^?78g^ zKI`Bvln4pQshyz#^`7r-7Z}$;bE3sRTv103z*i#v_^&mTp`09 znq~WR6GkD)t&M{d&wtPEfWAWvc_xUWG=3ltPfNT|CB~S%{pm=Uw}(b}AJEXCZ4Sjn z(Pkes*m*%dKfdnN=yq<| z{3Ywt9hFuYnzzu`yAaylbavjHuy^d&rAZ~N@F*!I%}XGxp&!kiqN$v24$!C&a;2m^ zQb@;U`4=|QV;?(b{3)Br(zQywdRdvBeN?(|BzCXLx}n>XHiDAo(%x^Oq6TmA9ys~R^`*Tz2TUQz3 z9_8^9NM5EC$|kef6Ira;@&q1j4NL9U7Y?2$Oq%np$x$Ll-m*{t+(8vI7|D+iz7xhB z6g3WC{FRu3&1yK~Wlh-cVdC%8?4N`=(QMLL5B=0|fVbc(&&hjq9+na2DFA%~23<>A z$7>?|{qjrKm1r;SqYKC5+@qM;jQRunM9XwBpP4aiS$1vdh1M_FtU@^8)h{GzgA%`0 zdrhY)sQ6L`$G9kTXK$S#n zN8#xllhm-=J}WuCW_jh#v!p9%`x0RkRF_SJ%&$ST7i^r}uO=%>)xM2(aJ`HIWUmGP zc(X5tMD{Kdr8T*5p8FYgPG^9En1m$u(FX5IqbBBzj}eepJ>F#MhL+%gV6)L1FJN}3 zRIy$Fk9u{54Zlp9s@^)WbsM~>juyPLM;(;n#Ppb+dHT6?b~gUbVoL6r1IrAFrhu!W zm9QE}!e{2r=_F2Txwn0%au6C%N{J1V!KZMxPLr|e1W)|B5yqcI@%pIEf+NI?AKb2s zzlPLnOJe`@2*UNLnrz40E%?;Z2IxOtHyDkmjJALCw{lUHls(K-y5gh!d|8%(!S5!Q zxB|OzR|5?)|7S#q=x2W($^;oOTnV5#jj)|fM*i6u){witWgi&NE3VPG=y?)q-lRba zi=b^XYnPp&tCu3^YqtqLcv6>(Z@iVDp8Uo7xnLe4CN|-GtAg0q9jTG(_lyt`-9>^j zgW$(eV+w4?|AHU`p>J&MCw~Tg;X?ZMuRjd5m`!(CS%}Mg@!oOiMcWM%<$xVaQ z{C@wDezHr`roJ$mQ}8^M$+YM~@KwvT0pkgiA-1E+se6R)(o&>I-U;qBVc*danYFv` z8IXuh%IoR(vO5`jLjEzR`F$JCxEsztBJ4ya z_;?`3h!MtbR3*Zmo^{Mj*OrpDIk8;XesCxv_;%PoTsrS~V1latwQ3N=uJp2zRBF{+ ziSma~8|uC%v&v3J&Aq;++TUb{564W5-01LXPSiZcU(YsYslF^5_FTPvP~P)yW=yWZ;R$XZbZXp&M=|Sjd3uU?G-U(Z$-d#(p#X|cK+b{4P z?Mi;M3;EMSvLik!WV#SxTBQ--qb{<>$MpnpJ#DZOi4Lg~K)&IF(ER=gLf7pesf!h! zQiwxbt*YJ%RHA=GCfbM)oA3C?0ex5mOMU_ZOD;*-M+*h&s4$ahOBz_BzW?S@r?*_e z9oZys6l{SI#bByr3Lqibt`rMOG=N&=dO<(1={)xX0=rGr8 zwp^GYBqI^SnshuwN#-J7u=mtVbN(!}u$(hs7NjC?ISUl2C+v~S+fX8jjeh1sb;ZK3 z_mVIw#PaNtmpjXX!PimKu@>4Pcyz(i1zM6?GgPfxo3fZW&*q-ap3`6YKd9U?qX!`je?QOunUJDDATWQ~Kiwd-GZA zBIhat3fn9_u)QlZ&VWg;)*J*+W5m%XT>T|tN_R6)_|dZ(uW^?|e(xy)5oWzTuTcds zyMqeam|7~Jz&QF&6N_7z^*c$%7={#Rs)|LCs0G1p6k0g}Qfcz+ULMGl>@e;w6>ldS zq)Wr!v09xNb!_a3s(*G%UZlsD(~Y>X`lJl{7l|6$GDH^Q7aa%+E#v3dco#Ki?s|o` z-6W+n?I69Td3m4Uy0{$e?|t02&oI4=z+IHed$WjOegiD6f@;Rg1vwfSRlgruDd4b- z7IU6Ws`fS{!J{#AS&uVc8Fw8;0w;hHR*ZSvGQTZm$-H>w&w_%Cgm#XEHMh8_TaKnG zRM#0Q(IT614Ws)vnF1ZF)rH8|S}C>qDDYvf5?Z-nd1tO^5QP(^XFjy@r*EaFb6+Eb zrARqu!L(}ft)zi+?O(5GrWO#(PhS(zDWy9M4!Lftw`YfFi^jl$=eV8a zPPk!cqp1j=(zrRe<48$f{J;A>{nybC_lh>VUps@Cb|=Ky_+83RXX6i!ND`3y;B!;6 zLeC5}u53n7F_>3t%N@$FB$JC*6edW~wDSJq@Q9ZVO>-~kc>5m9;Y)r<{e4meDDPYB z9=HTP4)%EH!AMf9@!{6Ww+|wb3&)Do_2guagzkhe?Zf1$BcgG;X=*q}Gr@}u8BSCA zzQE~{%G6pyzP|%r>n6(Sqp1^DY3~mou70mDI_3F0@T#F#MC9aKP2#se#-lUn%Vowk z_~#|N8@=X>LwOmGU~b6{pPung+$P{`ZwxKSK$3amRy;X11=Z~1 zlm)0|Dsq{*Gv=9>>jY!qr6JmHY1RCpjx8B5Z~UOct2H{;`aGhv8rmt}UY-W4tgfhtivvV+ zv}%d)6QbjRT!<8xL+y?EQNeH=rCzgI*f7e7bZXS~vlSnoU=Gpo(-x_P9Fyo#Zx{mHpXS zoQ|4bc1R8if5)c2{>{Mt=a~}0ZWyHYjTE}#y({D{=Tne-he32ujTKWsqZ=$v_l$pj z(f#R>Bk7A2s_pqZh%A^cKV2`*Dm_}XpvQbW**Y*?p+I5C6t?^E<%F!rpsQeS*l1#R zUQfTz&wI|lmaN5IVUFv&12)Xv=ki7DAKB3{nLksX=HNlgOt3;GZ;YrP!F0LGe|3J8 z7IahQ&r}ICL+Mo6>fewF*h%Jr?@T`2NqTwP-qX>CF<-)y?~;^O24r zfoJl(^)%{e}yj+1~#| zGBA|W?z0notHg!x&kApLc>Gp*z_VtOy$r~#{X6);eF?PW=XEi zq6qYOTm&UweLL&6Rs-wtJHj!^D?*Hkw;+VZXGaM%7~o(2-Rh=*%DXh~CKn9Z*MGiV z{Xmz)&0J6Zn(nEb2a*VL&pMacQDD6`<%MG%Hyxtri2_%S(H~AIM$Z3KHOiP;xwYu9 z#PgSah!`4`$oKO5Cv$1M}jv(N0F6N9YI=ckI8#6mi4ok5;B zux!1;FkzYMUXVOJCV_FP*0X7ns25ay(UM%`<3{{(BUG3jj&XeKlZ%c6Q2j!L4!_`qkXuj|hrg^-;jC_$Iq{6AY zAsU2c!yUbyTnS7F({}I))1ryfTX=A_%Zr(g^D)EBn3n!I{wLteeX{sJvpXaISo4B0 zTsy3&h3{0kIM_a{mB-EVn*jw6!*KQH-QB+^r*ayd=!pUy)gq1}%_MAmU*!fJX>GdI z1d-?9K_T1cZysF3>?lrCyf%dL))tDRby?PYy%fG9!Bt#9I#RA9;G$n-O`EsWd;n zMvfKYXH}O*}h-c^J%_K4&Aqiap>W4FABVd<4sJ@qBTi4y?%~u+NFh@2!c@ zMkr)^(_{LNVjhOwJkJ+LH>n&8KvM~@q*eCITL>XV{x7}R8QoW0XusT!< zE3cR4K>5il6*HPJ-t*-Z!?0!VL>ssb88 zDFPZP3Q|Oo-Xa#1CS3$e5K%fv?;u605PA~{O%V{3j#2{BL5&K66uIkn@AusD>;Bm1 zIeW_NoZX!>XLjDRYt}YHz9vP>AX0RX9qLhm2J4&f2J;cRUM0~hWLactHO8Ro{^Ztz zwn@gUP#OOj?`iJ`z+hGkQq^G`c=l=F_^2bZVw2Le^Eb#SA&)(?axfO9yn?1xAC?`> z2q|2NYW2PaYiHS#viNOiPzSSCKQi=_Q8dt2Z zRoL695i7*XMOm5z$a*wbCDnU!r-zXkSew`~?;SDSbQ9k02z=WmP}jG35SxF;|eX{EW?{Fit?))Dxu> z61YK68zO?f^(ZzpzPC+c*xs!-^jjJbD+_c==~49OtVa`uLV7bsBs#xMjq)I)vi9T; zSG;wX_IWh+(^V_&*J)7=Q2Q_||Hw}KV@9e(xfi(djg?5n6_D6P3!n9Qs=Kc2Vz_+nHuvfy2D`2hGIy1nA zi#sXd5>Rax!mX5Zz1Q^J%40SR-m6VgkbyXyb|!Po#DLbdjK({ixzH~L-3Y)8d7}q7 znpW!RXfk)$jW(^35jlnZC=RtV+uNCs4(7STi+*|~kTglTz_oGHS)0D1CSUT;ROdbD!WC`1aJT&sk2hShG0m)(vz`Uz9Ejyp`2-P zo!La}gePpi|3#!;g^iV)xt#oAWUcGlqrgDr9Ges~TvtMNE}Hh%d~Z{I%;`Lm@AK%Y zeng#sUaIFZXYsqk<`FIBE~hxKG9SLqLF}B1*7TiS&%?{)Uk10%KR&iQev)~In>Hfa zy!#^unG6#5P@__3C9bENZQlxRu#aW=rg{9Zm3R+u&YBnYR^)= zc-?K2*O9DOPc}3Fw4TfLTxM>%vh&iz$LsVeo{bV3T^w+GE5HDx_J(!sS~cdE*0JRw z9}$uZf#XYU{sNN?RsAOMgrNCuRgI{Vt0S3zY!PA)Q%g}vJq7(}e25}uQcYG1zL zw!gVDM)&@gFs%}8wA0-?QBuVbbXn+u{;UuSq*_RW0X-L%`z z*X{tBsNJ06KeRd9d-I+Ac8RJg#+pNSB}n_#^Wn;d!uBz%BSF1g{VHT5lZ?kQ?58F~ z*tizXs^0_UlT&t6G3nyaYFC-X&rbz40j)7R;b(=z_kHy@cE8C)Wv7Nh5>^%>gq!aT zp(}Rr=8T-Vrc8B5NgdMXe4A3g0oJo$#~UiwZN{dJCNnf`6`x+7`JC7_Fxa9Ntla$s z@|x4!s?c5_R;@o5u=F|l%Q|8okJmNlDQ>NV(Tv#*hv_|(I zCh>}%$)`+VSa4%qSPF4c;ThEaaNw4>5uZq%aLMV#7sDd7GH}v_eqB4_{mON&XAOP| zlBrE)HJ07mZ)lf_CKi?MSW08_ISE7qb!JDk_2ogjwMffSYrCq?Yhh$feej_A)CeZ< zh=AZrMvY;4G(KrV-w}Km3ihpQG!NNPdgNDJTpWC;nnP3Rn7#M&3Emc|3EMI;|8;E9 z>f4oKc!pCk zry+D@@c*H=%YdysiNE8oDa_Z4G-L6%nGSkHebyja-yR&Cm_hv`Nd8BF`76*^bp9(~ zf#U9*k8Hh`fG$Z$)rx>}XDfF?-h0(b5a-4vx>#_Mq9~o`z;zZ=|49IG35AJffzoI~ zeE%tVjYwR}dO!>vA3+}NmR(G`h9^B3s}3Asu;&YJJwx=!6tixRJDOL(pfr75QxSda z3DIdoK4!|SUGt$RgeB;sHV;uHi%T>Aa1gWz;3#9(9>&>WKZzj#*b7h+Ki{ax7Irv@ z#vVmf;l;CngAPJN?KS!!b@LdUBm!xrHe&q?1dzdfyVC9xvec{ zA%;od{_%Qi1e~?BOQ&BP#YuQXM44Y5lf1}4yf60rfyg<)(IQ96FHvQrVzl)4tTB)l zP$WgRJdg$M`%zd9lnc+_IeHa-$B-p%)g{i>zoMgW&|{7qZ})w zoc>sSO2fn9Ta9{Vy$;LF@GHC8jitI|T|KoY{*9-EcW!~(6lRo;!aIv1EO{1QxuXn!}}O#x=}DS;Nl+I-`{5 z3Wko==jOIRDLpM>sM7)H+66&sn=%-3&ud|K&Ro4$TgqRhpP{IhyTf(YL?5gkUlFT( zqnjsXQp!r@B`c`0@DuvYE(3Mq8<3DJ&N-2{<;@zc$?L^h9% zOR$U?-TRK$cw0U~zr|%BtZWS>SPD>H9295J`cXWmY>3MZ37zs8cb0;LGT~ADUcqi_ ztmBsgk2}DO^ajMthr**6H4J$W@q@s3A1FNKLiH9)#@z*1(3cl?u$27eIVc=VZ3ye{ zD57*4kTQd)S`^CM(ePu{CF9w<1!r5Q;8BWFyzGNSdbi;4J`hvN1lK8+Q;n$}#?Uyf zdf&x`8-WP|fs_6xNzD&>?DG63G^67a`Rr%i>2y9GVxYqFy?l`$S%`P8K|SorkJFa> zD8E5b$COKci)cBg#c`gRo?@_7DICd?`Lrhe*WfOX0oiZYhXU~#fDXJGq0X5$H$4-xPd#WIH zh`jXVh*)7%L4@6hvwR!TeqpUIuE2e#DdOKl4zm+~6}9n_X~Qg3aeJ`z3h7bBya=`J zFO5V^(BIY|OH#$qjvgg>P5I&u?Otn+bP;C=z%y|X)cE^r+_-&noB~fAcqnyaczCQO zO;)()j4JKb)f2unE`oCycnItfC@7N9iji=nQ3M%^#1#e{1Fl9JAXOrIX2;;*ZE+GG z9r?M;A*g+qgAfjn4xB<`op2;RG;IdMhQ@B>!=o_<;-v0vR`c^d@t_srrldF@f~+U) zD9b@eNK?*&M;USZgz?*-b-;80QbHhO zVCWJ1Eok+otu#rnjt37j9Pt9Idig;FfIwKw6@>}My&j7{0j@}Rbh!nkodp|Nu+O}v zMs(u&jm~7y$_xi5gN!FT!56O1BT?`qme7NyMW21^e&%qL^eKY!X>gQ-Qf8gqp}1Q^{*#7%BTQ=? z;Z6<)oD&p&Ky{Nf8iggGqpQ%-qKw2x;KvRc3rWZ!fmc@#STIxHqoWNOam9P+gRo9M zI(kT$Y5Bo5!8* zQOV%fTN!-1m8*ND-it=|M&P3dmc~88QYV}y?v2ustzeyR%hu)FJKrgncUR(taTCRv zzeI^pRreog{T z4np@=p#J-i4}|_1( zkTs8s!wk4$A;_s{iHiU%<`~Si4Pt>`{xN|<>Fff4?%}|XnW)Qf5T?SV=;>!d&T=sY zN2{QIece24Oq|k+YL|{WLx(e8MX~4~<7n1DM~AyqN*cm^PTxkqKaybsLWSHIgWXi% zUxo%+U^jb)9}XrVXBq~HV5_4Mgz}J#RA8U%>rr4U2*6g1RR815@FFkF;OxLqQMp~C zE=jt-p9DS;JrLBk6;l=iw8jddYd9&}fgTTjB>ig@nS$hh%>M|)ZJ*5TN9-j@F2@^@ zP8>39GyhYz$qZ@vAXmySDN;q4%QuFy$BcLDlzb2Gy(#{de{E>;f~pj$Q_75z%hjPD zpq>*mzm#mNQgkkR-#ypisZN85X?KxNa5yPf2k<3 z8TW5sp}uhlP(qyUGgj& zavW+GDhwIUdD`X;9MS{t-KIWva6Ey=T4(`OPT{kUBQkT@)|oJS_pi%SJmo1i%+#&b z@|1>Ll?y*_8iJ?VeXh+?r2Q9ke-bZD?xXpEFh>DV{U6m~-XPZfZO`%9;K8*iGKWC& zS`>8GciRH`lpEvf>sxecy_BAu{lJ&ZNVG9nt%C}VCLY;R%863@torC^ zdaCY=(M3!C(HC}AT#o{L8TfZ+Y;?4B3D_2!SOi}2_DlA0r77cJ#8!VGVgbA2BQQmkgTp5P+ZX{U9nB}ld> z!tZ71z;((^Up?jqbxJv6 zcBpA+Nd3*7HIu6Q7@EZk6K>A$;oZg@{u^yhXl&#_rq3#R_YV{?@C~idE=3? zWnQrhF742z4DUOylXZS#3Cb7av-QV(sB&IoER>p+vNkg5>U9uLd_tPUM_sX6E-^rU#dOygZFmH?0}K)vQ*QcXebHpO#sbF{<1I$H{d~6_r89nBqCKk<-(Kjq)sV-woMpdBNy6qx@qk(CP=7*DQCcPS?&C zrb~Y>UvX0Dc3H7@u(W83H01DflBFS0fAp!Mwt9BP^h)w+Jv#D+xV_YIsaTO@6)3!* zZIm$F{mYCe{H9M^T76-9o*-$KG@hvoIR23tYVKr?xd>c$%yfvH!gMaS3oQ` z=47QwY)j$ZokZa)K?)O+PB-&VHwNw+W#OvR4j4u0E;ArcAl=jQU7-R}cM;7+k@k9% za6$!Q2`=8Qizj6)mOO_KsA$dl{77(d#4jyyd<75{llJ>h?18GDw1Dy-6|V=NlGs8K zOD`o%tlxJ#?}Qti4k;_oed@U5URyd^G|}Zt#SU`(?bwKTksZg_*yZ)XhfGUgxs-d2 z#mpgGuCp*TMWBw`miz9VIQ(0(dWDqZ*^L(|pYL6HTj9q%Z}g>ig&ZgJMT)c=EXs$* z5~I4bVmUu3tG3To?r86@4}As+{DMky6>z$4Kw4K}3)|bG_~cgMuwFZ>h{0Zp;Bh%e ziSA`NbN^+ocdBnMr0Sb`j!uZPXK~8|Wg|b;pQCj-yJ{;{O7x|b1}CEIPJcO8I(zKd zb4$bKAfB>me}6Zfzk0aEJtw=Q|FR%y_cbk7ALuC4{L9eQ LHq{^@ANQ@d?wdby&YJnnZ|^;`_ngV>3DMF}A|bj>1ONbuin4+Z0N~+X zAwzH|?s58+&k_JYF0Ds;ir3fIes%9oPftTaLM|^arKF^qo14$i&yS9d_V@R(vshbO z+l;>S#hnFLC#Sx?zOAjTA3uJywzgJPRYgTbm6n#KrKNRucTY`C#m2_Y&dz3MWsQxE zEiEl2B_)N1hW^>xTU%TE`t|F^#zuX8eRz0yVq)UL!ou+IaC>`uN=nMFU%!6;{=KrY zl97>da&i(MA3rfM@%{VvpFe+&j*ePeTkGlR)z;Ju3=9+%73JjQG&VLWC@7SdmlqTi zgoTA!SXij2sO;|U=H=yidwXLr7*kVI85xSrmDT-g5M#5HsLQH1;yV7aI(CvG$P_Y zHRR$No4CH#eDqzn@23-?yPwytuI0x=f$}7hf7QqRoUXO@&FRne^TGfzg&KZAN+4%m z>2j8jMS-QS?=Fi6hl{)4r% z_sP&t5J*l`uFx2}2+T^(h<6MHT#N)A3(E>X2r- z==T)zy7#($#Yc^5%Y~97u%7CwT$kLSjY- z-l6C0&j)J^%?})Q-&QfRus#8d+jR``Vi(_hEK0JPf~cxK;hv=Z1YSNU69FJlaWDzK(H`dR>3kx$nJI}hXF^TB4?uN zw>Y(L<1wXr+&6V{*}SEs*N)Vo*3P6B!{A|4Ch(z)^Lbuov_haQ8{)P5yQ4{{wFx!0 z{s$g;B)MAO_&ne-(%}f&uE`H*fel;g+oWhumj*jp4QELG3Agvf;p15Ge)Z|n5sXt4%-TssQ*6Im(B{vxY;T+8@sgVd0 ze%)^hTm8tBA91&ADZ;j~Gs&vWn5ys%Sn=v`yJgSj6scMDC#0Z5CW66Nx!kMixPI|-w1&*^4SY}DN%a`WT=l67PkgVS>8;_ z+;VfGPVIiU6DS}L-*^re!m}^6X_L{;N$1##I;NxbvRr1il+L6-`w>oVkQ-5qP#izyi3dLi27mtW>G&Wtd{r3d1s?C9(8Z z?Ez%W57vWqGV~yOH+uw&;eINkSu1t-tYAHI!+@&shHO>~-~O~`v~%AXqoFMN<9lAY z@2Cu;6oK@?PDurPgus>tg>ucxnNWf2-Dk`@v%aCsR*PE%TFsyMDOacym11Xwwr-7R z0~{EamyDAW6BMU(e#xf2cIsFm?FNAV{26%!M?T!!V7pGftZ6Ft-Gx%an_6eyOhSXK za2l*f8R;{A;!as# z{#p3$#NSBD;;Slogm^lI?+@|kL%@fXL5Kx8Jwlwc;aYy^_bqvfQsVC1-0SEvuFb7t zGikdQOU*kFB1%-u9Rk7BcX~oz&bE($(icRuI#W|%yDv9^pbTgI{bsGxs~tdNfYgiv z6@KRSwKL$n6NdQK4bq4Ciuc=ANMW+Wi6`J`YH!DvmTsWgF`Q~l*wSeY*50^BhLC5w zED~>xl{wx~BB-*+(3Q_zjrk3#RDnOb1~r%z=R>k@+U13BY~G$`#eH(c+iMwbc?nt9 zo5wdv!;~%)(o!k++ZzfMo`;8iwhQyc-&@&gQG%@N_eIw?r{JwAKeYFI=(JC98ksm3 z^UP{=HF}yz4ZY2SK2-zdzp#zS#BdNeE+4Ibu}zv5uC=K0_^Sj=$`C&wM>Vg$p!-SI zYd#>Ol|_$IvERv@9~bg*5GxD>s)TAZ0R}oETA%o4{t+3fmyB55Br8{S1$L|BZz%+O z}5pyq@W0y+Y?4;o~^H5Tbu>y z^h4aw-%o#hSk}8`WpgBrk%B_j&2~(P%brXQUa^eIP^rG)Sr|W3;S+vh&R0qhd>P1x zrIlNsY&4C3;rEM7(Pnj$pn6|^Mp-AjGu7sn-iE+CH?MHn945fL4k71#a5S?@;HhB$9_!vzX0%IJmp9%-uosEtP0gMtCMjQ{2_AENn!hxtz^U-A3Y+)Sg z2^Z!B21x(Vx-S4Ml7q0tiMUM_5D2f*kN*dsclHk{6_ySHFq$GUK!YmSzzHl4--N)i z`BHh+ILtjY0CbOqxEtbt#(53wx9{X{wUGqAfFTs~x9+`V@D?O=-rD)}&{FZpU)h*Y zD~-Nn8}XhiP4h^hT7f+;|Fv0hF_BiXUNO6h4C#Xe$eCX5=4&SGs}QMDt<2<-ydH9? zb~I#t^x1f$8zg>yN7NDOmztRPm3kyiTRO-X5I5ysem$OjQ!8Q(T8J z$?D!5;d1@YBj8W=)T@QpJYLr0dSN+V7V}ZDb z^_O#~xK2!0OB-NB`H&F(H1yBqjV$7pF04I}LbwJ;t5h&xSS3o617tT{q1F}%te^E5 zWT>1MjBH8)@)(erHZ&k`?8)1WwT@eG5C;9=zgDa*K?Q&)kz#$F-Mjbq6nxxeY8uM`&aMEB>9@$ zki_=AAe7Y(h6t*~f#2>-`b-K5zxBUG8^VgAZ6s)*&Q&MtoIxtngYD};(XX*XZEZ+! zCOKACDHRq3HJEvG>-6h$8W;{OANGY3D^-x zHMukOU3WkQd>;|;f?OCf_=$@jqkauXYXOs^qrY2i<5)!3fXJrN1$DqT^}DTK49&m7 zw&@pL*@ccKZxWJJNN?Z;LP#vb0!1-vWdJtuH5v#gK5J7q4mfCVhhMa{0EQS9#CM@ugJ0Q zZb>}AT!`I^+HcGY%Rj~~DP%{3UX9^Y-+B$HoeLK@BF4RO4J4Igywq z-=CSB*HiV^safv?!+8Wi!}0)< zY0t@f@(!tPa-;^nCT6wAKl1ghoQZ;k(Rxiq8xPrlha_+NZ(@r@);Ya_4jDiqx83Vj zJAw-c9x#BU4VGgaf=cxL2(&JsnCSARCmccm`BX++cgjc<8^*eZT{(uQ36A0}?klgIZ)n zq7}r$!oisIyZDRp8KSF$z)-IYuiu-n_d@F??s$1z2BZ0-Srf zV-FdUAAiW~&=~3}UINUr_z#3x?s1SpP-HmiK^S&<6zdh&X^=M$>7x2-BRjdN)eZ#Z zhHHD%R!Jhfa!9kq#HrZ<+6wMQIO73lrv$(O+?xGQyaBGyK7r$l7uh^*;?&u6cfK3pT@Cel&2RCAJs_&)o&;$E0kOmr zi@NVR;shAW%ZslFpxsU|fS4Zta>zILdxInqTL1fRW=!n;)tj#zo6jWywiU_%5NYo} zU>aoxy}0!1HhPxE#I555n4A61+;gd2uwVozSIj7gFz!@E21Yh=Ip_|sp;Jfv2YU4j z{rDk)mQW9$8Wk~SiWmekqC|dEo!%8*NWYPRzDV@oqQO{(_D>A5QBh!~NN)fcuSH0( z*^M1R75#mK8-er_`}jj&OMv#k8~_o^0`AEh|FBqnA=E?*Mr2BP^=*-h$_Tpg00`ry zRBAxsdEs}C+XQEc8OB0BQe?m%olIQ_CZ|B1pkzSjQzlNd+u%7gLBbR&(gFrg zT0n5V?DfaJVTTsO!<4wtK2}^gFdNbUR`l>u(qr83-UAfA*;tZi^0i$a8OwjL-w+RZ9CY*;4p@Ua9LPvJ zi=TOVrv>DMKu|z%E6F)%MF6A0VXSo^x^4c zu_TL4_t}I1#N}Mzgt0zYQupl$pINU?2=rDOX}Orge^38m=cVc7#^8N#s21UQ+x+EG zCP{!3y>AaQwT1>%1EodIEy>^SSJPj;rcBGu>fxjJ<3)7Fc^^Y zcU7}46ax)7?_wT)@j+q`-#985!6{B=jGOps+&T#QbMAx)K7m4})>ixS)CH^)W++kQ9Ge->|L#~ezB?|SH{2H^X>MW9aWFSsT z;9{}>GoR$|WR6&!Rb?&J5jG0=V_X%(ApPZ^30;lgC}rdnKIpHPnJTlQ5TUdC4&o<@ zKq*hlyxgaO;=%Hfmcd9Z!I2FX5TCASS2{`* znXsTG9R&VH1IwM^tI%0pZQtiy(A7pvJblcInK$8(WrNf_YDgeF^^|UMN~Vkdu0hpG zOnmD^1k;lkt^mX2B3-}ft*z*{eQIgyCe?Jv6l!a-nLS#IO zBBs>yREMHm7~}Cx_UotFMtpx(D{|}tAnqc%2hfBC^3YiB3v4vN zIPUFvQKU{Eq2C9mpONV{4#lFs1;7_oyVjT&y!X8-J!vZ>Z!FetP8x}(J%x0AKGRot z-pHj#@V@s`Ci!VhbrO%QFLu{>bayP(rD)bNblKqLnMv74LbS;>BLfU!TL}jX_SjQ- z;!ecpPbLCqQ~68%$!n6Bg3IYEaVHO(?RnbZ>{?RwPhh9-@DgwhsNsyLGBcd{O7X-| zqCqG;LEL92YTE)rJKCH&`2#))`hB8i#k{Cz`DGghxcu^w$6)bO39) zvC;jmXe&lL-B9@-HgG4Mk@$k4v2S}M>Oj%~Uda@^y*fkJ+H;CC()df>9_vbonBns> zS~+RnK;W^FKOpA3S@lu!&5QV~fm*qMPd-!Jx0pJtvKt$XC!TG4Dgfu~n7X$sh5(uB zpf^k5Jk8RQtu>1Y;lv-EcFqX>_st3z`KzE*S1Z-SB%hUKW>`7Pqz)b0H&o~*h*Aa9g@jNzOJEuC2klzMlDOnQp1%4;bW8jm#+c^nBJbqoh@QR8)+heSi9EtI#)vmQz(Z({)`F3|hw`c4BR-8)v*{TF`Tv%teaC87C*Z9GAJUh33e)4X$Zm_>p* zWPBs>QyV%gjKGoHY*Sg|t)(GGh~aUyy2_pQz5w3$$x^@=kQaQe1Nah9j+3W#&Q0_B z(QX|utVMdg5yDVP|F)+?2^&Cz!j7Ki2L@A~)ab7MbN-eF4f6V7SkksIUteQh2K-&t)MAb+?P-ys{6^f~PKP0enycoKUAhB|(SfMjnu+ z8RPlDaABh19`-0GlgV>S=!1S=5oDGWdDpqN z){Z17Ie+!sQNlsQOf5T0N_K6wOJRKQ;(#_ipG zBiPG>%!U%ev?tNx!E;1iI}Tr8G|kE|0C^IpA{hJ5g&h2n;NWm1SYfZ!L>gKmIpsWLa^3t7rir*Vjtx#L&-qadXL|?%Xb4p zP8}2>_SD#8NAqW9NyTv;Myxk1*Owm>2JXbB)YuU!kC^kOH9R`cURo>%dcvBAFL@ma z$@5F(e!6k$iBeVXkA>d2wQ7t}QvH@gawlk-;sdYVmj%9vT!p(JBSlkcWmJ=N$KDVH zW@aj8%k=THSz*FYq@8mQu*(obh=sBS)W;0l7hnc{wOES&mw%49<$#L^e{(iT*|(CVJJ0toh{!OjeNQJ}6Ad*75-pLH zJZWhmnAf2g9S|XCHF345M@0Q>nd7i&q390XffZUX(__QkEx4g6UJPoSA zMIxJUto@h$l=CmEE{x6mj3;l0NR>uQ3QEd zLwDE+#~ocS-e4CCh*qrKzI@TSg%BgE8Y?+t+MF!{jSsBal;^w>A- zEi{pEw2iv*&Ubo(J@Qcx+V%$rO@g7?Z*?Q-?)NaYwqjm|pdL53 z9LTm&Tm(QBSTOa6RGUg*0n)?Mll#TwwK8y@iM-eMCU%uo8Hmq@O31bQ<7?&S!0{r! zjV2Cm#W!KP@DL8+kc7^{*PNK@JJ}(Jn^6bES^_<(v0GFh4e#~o6zo9OKm15aCPq(g z)km6t2$KQYBLcnYU)(E+!*OvE;_VTW6QiqGyxZedpTjIeja_I^oo1B#eTuJ7Orwj) z|4<-1gDjmMm_PYDGq+^dmYVhD^m@OFxJ&a7uc;RSP-H?=Rdj;yAO7zk?10|LaxK5CMNZpGPEBVE_mJm(mWQ%EzZvL_KUE?Kk`js(Bn$9rA32=|3 zUG78>qZo5o5n(`z-v46`M|a>wypf7!S6iv_tRbI$3B-PgX#>o>H>l9}?tvo0(6XH& z4^jdxmXoD-uv}&aqMc|UW1Km&bFlWj`oex=wb}gDV~aYc_fmv7VUe#9 z*ggUC=rC2_H<9`MS`mTW%8vUP3--F`$2%tUCt1p%r4CAYMQjIAnmkid^6&*S*f39q zu2qIpxVeP}zoo%`p5=IA@@#5-Nkb8uqnGIqai4gO8HO)H$kn=GJuD@aUisK+t{G{Oi-dB}9GS;g9 z$#~i;nL&<~Vr%ppTPZ4;#T&w>&ts2^RyLwXJ;8=U6J&_dDa}Vn3@(i$CtPn zIY^5{5-Uz9roVl?#d=l;&(N#5xUd&YRE8n4k}Oo*&-gK!MyQq`3T1#&S(TCP0dd-s zVsodm&3Fnd@0>dU$h%K>X-#cZkj(Lm(JaKsjz#LN*ApbG|1(WxH;_lW(l{SS zT57W`rU+Y`04kg5Ch{zjQNU;Es3*|Csh81DRNO!O$Pjq3oOd@UAFHOo)C$^){^diI zK4Ys&n1vx83yIq^d*QXnpqxTIW>!3EaBgTVc?;|Q8~?z+03yVgWC!8wBcrm30Q@3# z1F5^#8ABFUefV2UoIaC64Y(Y;TfyxfkstASJ=DUklqip$I%KmuwgE3p((lerK{hU? zj9fu!U-|W57-FB(Fq%h$(G{e6&UV8Q^k)nI4m|P=D~N#@FD{NpP`&m79}TkK3pF7E)ZLspp`bGTL2I&T0ZH%l{SH7zb zf9bp#f$|Qj=al=!Mb(!`Y47GiNYYMQ7oOwc(5Hd82-Qnph=g2rVz~?5Jfcz{e1RS| z#2d*H0-J&v(j~lnLBqL^wpoWHw2oV!_}stotBPdbd{PX|ED){F`e3OS>11*GD6^r> zxb|Y}gb+>VWP1nW+Se@mZHfIDd?Z$*A}-);{NM+fAS&wq55%|_BX?Fi8QYdxv!Eiy z>^`MHjW%@Pu_i>q`F+m`_DFC0!67^Nh~zb61yLEqc1JQj{pvpS+)PT&3$HyF=EzO+ zj_0Ph6B#-`=-219I#Wtg^s6vi9}6YxWh1w6UVVjQ!SX}yp8{LCcb@z)f=EORRwZ(k z-Lh@$$(+Q~di6*@wnpD|<*f+|*R%sI>Z-6g^HluQ?-Zumq0tAGI2?XEX3>H7*@bdY zV5ec$7*ntu09{Xj*_(crqLNL~nKFrS0A4e&MaS9tsIKs|rf$y>>W*qr1^ygm@2t4X zRf(6Wn1-kQcp4VSFx|s4lo8AsdVOu~zME)Y+98G%wQGKnrNYIhPEt(UM&lfW4z))JblOm;#mrvWZJcXfjsVf-8zn3?NdijMu_o{ZY_wOGdEu>8d z(GS^&X3CVDNyC6cJXKaip#eB(0mWvGr!qEXblK+3vR_G@ZQP@qS6)L zEL5xnsT{t!cfS)1>H7F*lWA%4n@rXMLP|Tsy@&SJ=>f;Js6NEnUhk7ckRHj}azzfb z&RRz$H+YQsj977l6(cr=#Fz)SzePcn|3un-?BTs{pms+&VN17Mfeg=aP`QyoDA&UN zbriQ4v1Gz=)Yr>PrmC{czR;ee5@Nf}P;O9<;$f?)&?N$V2BkNSI7%>pJG()Mla3Jq6(tc(RXV?d# zRGt8@1il#t2t2KPDzP}ctxhDQ^@O8_{C1{q7|%^xEffu&KU%dz=ZfDi*(`NYTY|IS z_xagOa2T6a3j#H5z#I2FP18S+y3FOrtd@Kk-2}*tsnQ3k$x-gVj>tC5%kkPrTM&Y8 z2)Ho>xa`6y$Fn-EH}o5KKv<9Eqa+2OMZDhqZM7t69LVe*nqY;*>;;2qhsB0s>@5h9 zjf9L$98n)2`0KqI=}y2q)L(>d3>h5#q>GV>F0)bUfseYGaNv&#>6t-5OM(_6S7K># z=N7Ew*&&_il0rt1q|y((1EdFEj@=bLW^?7EnphwPfy^&8;ASt@$H7b-KMg8G5-G=9veEQ`|egoZ2xHcVRvGh;G{yEO7#YAl#fG9ULJ zf4$<08@Y-_(7${(qz8%+d~$9C?lJq)!vx`a!1l@_0?o$?{xPv)2fa@0lGv-~Ik{j-(ru_Y{;;DLL zM3keW)Z~W4*3J&DVszt6<>kV|If`<>SB`8!Jsf&(H|6fZJH_!O6K7cp?C(z4&>-8C zBJlocfaKqu#r0%ETheG{$4_p96xiPSy>GVpD~sH4>7eR@&@r+_67t_dC->Pg{R^8b z2xd%+7W#{xK;*7Wd6z9cw$ifOQ5ST!6f>5=v?>DW0Z|17m*m)1ozIEp5irLiCy;H% z_4eeTD?1(f0VZHs$mtaF(;mq zj5fy@M@)N|F{aD+g~RWDJUHrj$um|wcmjesFwuQVnSD9x z=Ww)}vY>B9%GIX|pNg;UqNf=ypmd}F`}9AwUn*lbFdOQ(sCslYq;N=DD>Fs|h6l5S zJ4WqvSa-1pu6m@43hX++$0sNu?hf;20U9PO1Sg=}4aL_5DUyeN;``kk#B>ZaT``2BlbR!#!TBE%at4PJj zZQ+wVIDgVOn8|8*Vf^BbAK(gY+^N6U`iilkwIPv|QrmpTv4sxX(nI-Lr|r3pl;(Q* z^O*h3p~OHiX4;k^yZViS^Iu9$KNL^EjZNEd+B0((O`tRJJcQIh1&NtMEszLSL?ll| z_gZwnds6KAOUzvp;5f8=>Q?EE@-y3b%QI+V>zPu@pz#gt5m&IOaa*HixBO-L)xYhg4Orqkr}Ja0b504v56J8Kl8rEPI_sx`e)&PbXz z?w0;u(lcg(eN$>|QtjBhC@?7jdQOJCa&SKFADF9Pqf!8Azm&;J^$lg@a0b7kJbtH* zROTxy@zZ&=a(&Iw&#>Di+EpyI8oXOx(qVV$YBkUw;7(QyoW0$h(SR?$yI#Kj`CyB$ zkg1w*@m@~Y+bL^3ed71Y{R$G`GjjeLQei%>Q*+%=_qp7PS2O+FQQ5;2p5Xusbvbhf zc?6|k+^^|fcg@^84M9=(2Sqx0=zti4@H_@S)D-zp~$Pj$L46%Ce#jl>ske_hxSvA(VC1MiwJiQL{kSV; zMHphG2;`s{GMLB6X26lFFUo$}xAIRZjqIrpDN}$7wU8cvh^iRw{#s@Tkl|l46LGiG z{Fn)szEp^T^qBuG54>VFgdv{aNFdPY+dW(PyKI~m$qNa#Ce&lG2vtkHYjL0y>Z^PU zR7i&1*8Wx&gJ_LrcF_r2V00J96+)0d$B1B)u zZs4SafArD0aIX#@2+O;JK~=&KIdK4FoC1|*1cB?R0qPFCLJGI#hfjet^b$oj?)zeFgN=qtxS{MsWpvRz;?5c0}PTuZ4BXHI`=1CQe zJ0e>zs??A;VZs^z-xRD2|G>Z*UK+KMfbQ~4@(IhAUK3xNZXa+8X?*v^ln4} z@6<=}_qdlXrPtbm(>2j)x9tE;7BjWY8%V8aF-%)<%JjvWz@EyeNVZq}!q?!0SrPT( zy|#hI-beiCayi=BI1KrIt&l!j zGagq^NRA@dyZq}$Tw!YmIda_}d4+B8nKa-V8B$O%(Semfa~+ry+g0_^r(-wp)#mZo zS(c($FlI#Y)RFZias==xWtw~&N^&O^yepquR6o_aDhu|Y66qq>Z!UXxCw40!AA)tc z_o5%^T$1#mXG>?9A8r3xe?Sk}np_MB36{u&w7}P=AFy4~Rq#y)4*#(`7fmeD7A7Zm z`vo>6RR$gt&(65fy786!m6J0qtxPZeY*$dAk0KZnYNT4qb6JgWx4MGaH-pi%-=Df# z^dGudv#{(K5bQY;CtI~imgG%y?YYn%ekr&C>m(pJf_=uRA0~uR7b59BWku%xmbbu@ zS!pW`39k7{yto1}^X_$dM(aM>Uw6_~|Lq_3bmqMUmJae_HL^&`H|0&rE8AMOMGvON z90XaGsIE8jIL-SXjCuFwxU&3Lky>Q`z%7-rAWk0nJ0wH!(6!wx6Y`^IVb<-5&LkE#TF2(H}`1thn?gv(1q1ohF&jbm0#~1~*PE(V}XTZ&Ny|LE8;gXTn8=BHSR$ad_!hsp-|#6E3bxEs?v}@u5G0U9!Ee_zYeJ979B3WyBwy`!W&~5Z}E0%z`g}P+)qlIz{|&C)H|N z{&%wB51{E)5Fc&^->mJK!&4qVAVM!!FkUTA0}nRvakIL*v#%aO;*jFWeh#p=ncocY zC?-q0?(=^8eiwvbw@r!CPJVcl{Cap+a9!J!k;0hJvSzv#nq%{Pgut=a<2}=R5OdyA zJJc-jyKwF_;6weuTchJYp2vSKy#W0+CIjz`oi`?Vp8efpZdGuiYCMI%A9E^ z0Kux8lA>3VwHx$(UTZKWDYf)`k(sFgE57jl^^X@>oSyrT_i zvvsx1I*Z3ZP@MVm$lbR-I)P;pwv8>Oi`xclcdoc7fLQ|4Yf4+-kNHnvaUSQPi_HNz z;ST#rQ7Jdbf}quHQ|=zrxS2Xt2k*aFYgLGH2rB)v&wEh|d>`0+jjpeM()%OtMAZ$Y)9%Em zrw7N_#24z(2vJ_tnc0q1T(GDiG&%H#WLqYfV!x> z%=??Qbst2Yzh_9@RFu2nRxw++UXoQNL!rPtoIZgIR+H|iD#plo9l_hK?}5ksAG@BV zay_+zvqKVwKbHnb-eX;tm@=&HG^(ZS^?TJ~GH9lx)m~wlE{8K;6{dJgyGm=h<^DM% znx-^HtlsqDh6KixNgX-KtHp4TX>5O7$+*pH-JPIUWV*wrNp{96>y`DU>YuTDwaGT( z64M*@U9m_0~Cg7M(Vs`xcN%vuHfp+?jVqu zvr?Qd?nT>|vSVGWCyCSQtNT+w_5Oa5GN=-0$$c7l{~v2Mg)-7E6KH9TDeZzlDx-iw z8Y5>n=L4k6Z>)Z#U99Bhw+c9gj#NEsOq9n_@=@>covC-0XO(;BU$X|dN1X=ZdhcWp1DSP%UNorrlioH(}>ZVgn@|kXeQHB^w z{@8-6CQ4r%fSGBRLTYrcIt2{daD*KuGh!$PMfNe7`UP-GUu19FU)YXVhKAT{%>|4 s|Cj1TV=qVLf7+4j*EZ$}{|jjVv&_&Lus66l{ZEC8qJ~0|9NODmRI+PM51yn*%X#vR>q@_V66p)eb51|3vf=A@M(l zSprr7KxR6(^p(%g&leUJ0&4>f4-dn`!}aPuot~aHH8n{~OCKE_?e6YwZ*M<&@&q@5 z%j|kTy*{etnpo0~f@FwoJ_(cRtc z;o&hfG?bj2JT)~nxV{n>7dJUM+27xvm6g@d(2$Xlk(!!XR8*v-q!beq^ZWPj*4Ebf z`T4fCw(|1w%*@P_lat=w-qO<2jg5`v<>j@twKs3xyn6L2KR;hxUA?NRs<^n=)YLQ~ zAt53n0)}B17Z*7>x&4Fvv9YnwpFeMHZ5FN3U`WhG*?CtIC?Cy+=j06P* zSy)(TX=&x<9>u9p8FAj3zRh!0v&n4nlA|g!#P=U5n1j`4~?CZicU4kN`!Y zEF@c(iR{B39Q0nGk^sxfZqnfP9S=~BLVkSnM*@KmF!TU)*o?gh{bmZX@^=7%zS@vP zfi26HLJ*bTE8v8&<2j+^9WJraiE?zd0Q_qrLcF=8qw zabcVjezB93+hM&+K-E5a5vq^;>m~T`5{&(}Pc(h|*6@yT1{0)?v97oGWGY@=RO$-UN zl`FJaf5d}__n+qSmQ7mB*zgXVLo!j?LlTi;!QiXK{(3R5vrP1?1h3*(_17bm3VrBO+G4Qg|{k=-Pk;vYTu^}-p=c>3AMBJODE0I-CCS~Y^9po5 z$()di!4&%@J6|0HQ-$wYAdFHxdq(+EP``Z0!Rh_O$L>k~BD_Fx@k{%Ne7)oygHaQOOMJ zZ91k+<>n7+fEJ_m!9U{Us=%j(H)tx2$*d`q;O)h&%QQF?mMka8$hj2MB3m(00kg#f zI-sA;jWQyqbh*ZRYons2PznqDNOfsU7!p9J&e z_wR5FQ<+}Aq(GeJtI_h4vE{WH0Ub4QM$+Fq=8z_6y+WL!bCv-*l(E!tAfjgKC}x_2 z2Kz|^!G|Ee76!Fwqtxjj$Tjh8*`S*?FA1No(cUr;umK z>(q%^4lJp=4y3WmVKJ>X2h!go5=f=V66+R?eo*J#A_NXigi^j;W&<1d)ur1azjGFe z8U?w0y(A`Ec6ERn?{PYLq`MQ7+DIN9wZsQ#I!e?RMM81 zt)*_38T)h;t5%h@*BL=Oi$)%PCB;@H4fVb4Z)(+(U7H9jy8r%p*64MI#7hkt0*2z9)(UNxJ!Ki9xq)rw>%wG6rQh&;6S8IX)&&3Ad#@L9^?Ca0zm_Xtpy znK{?(?XSi1E&XUx!rpz$D$jtU-nb%UB{ib2f$T^A5nT4T4%*zxWg-4zLSe(y0Ii|3OxQJR*IH{SgZ2nolDhS61jHzO>KY!652`0zzT{Qb{crD7ao>3NAN-&VVsrRR2rKX%?Ob!V*ZU9|z4 ztvUP+5Ap~x2YI(f{oa081IlKWRT_06bEzvX#P9pN4L(h_+$wt)@LE#xDd)V%OY#r% zIe7i|Es#%?M*wLj7-lOJy_;L!77=sge@{7#fh zP}rAC9CZjjj{s$vRdS3f^CsnU!s($|SK3E4y9^LNkW9594iNm=!V`o1r^q-rIX(8> zTsIJlWUPh#T*7IiHRnW&q+IgS7v*SiAq~ZsAUbq~Je(E+cP`gE5uhThY%bz9h$dpC z5C?B9J6S$_o<)7BB&E;?$4|Nt5+=kLJGuAk+o>d$L-XVuB|>kb?cUk5qf0|?)a0Uc zSO?Dl#rw!*Wcxs{9%oYz(lZ(x&d(W}TeEWE$$y^dsVA`veP;~3nHlgd4t^=+blda} z)I#2EuYWD|?!qIr+DSHO^#l91;!zUIp|Y8oER=lng2cOeb9n)|XtBmVq0d^$jJTzHE$mV#COCQ3%1rreN5X%D-scN*wsqQN|E@yX|ZU zOc~mUkfXax>>Cy7>Q`A6+p=9NF5vnlPMv%WEqq?^$G#_hBv^-yOW-8V@Ep01O!`2K z(WHz}VaNgn%?X>Yw%Ek3fB*b%UM!4Wi`kP=jUMku^CM(sKB6`qM21`{`jG>mHsQ{r zwNKhoFPIhH^v;(yGT?5IOD$o;wJ58XSm4WLG}x`;X2QOt9LHOQp*ZTF=ERn-Rzn9I zEEPk#{+ls9NsXM#*Zei~LT%!^gpgq`nN`T#s5}WY80?tomAnqhQ@xR%;^%r%{1Bs? zOW9C4-g>8fv{M9jARC%aFLiq^B2JkRjeSv1CO>ZPARA!t=3fjZhJ3VdxZj;)Y5%Ewui6F=!?zt8k0sa{}I*3WUdBD%z5`mmV<=cvI^Dm4g8}iNEj@3L>YwlkQYW`iSmWJOz2>u%p2iBV_%ZNXSI5oBG#`=o#~tLZ04h?SaHk7 zg?sx5rhCK%FJ2aD%kOXf4s1l2NSMvv+hh9?T#s5|ANgGDwIUHfqk|TAxd=(q5P1-? zo)U!cvUChc0-I}zIwvmQw27;HPdgtFC1Ts;*VQW5#@j_NgaGjw=c4U4*&34HCuk-2 z1T5o)Y5xn~7G~!-{#}s%&+Tz} zyPT_NnEL@s2mzH^UWKp4hy4BHVKK6+nAqNlQmKaeThAOukM2V#8vBnWZ38n#$HT+q z>{@MqD9C(1IkrjBHwy!0fxefh4bZvfrdS~X_fCgis@R%s}M?u8bUc4qo{D!)L8IF8Gp-TfLh9hT|EpuL`k8J zOK=ixv3wG-4k^^)b~+)zp~TVEWrz8Lhj*r{s%<>N5GZk@sIpcIUANXKbeK5<_=3TM zTX_ZSt|gD#qEMO4h_FlUy%vT|XBS%dFdZ0}X*GTC?}{!qQ2|`T8D!C~L(=>AU<46n z+e~)sC^j5LphS+MvdbNdYHG5Jvm#L;Kv5x2Nr`V05wAnK5Y*CsteTfg+CKF~LKYF0 zJ$LJaq+j}*fCNss{aQsOm*fbX2Lle(ianujra)Z)DV>2lq{3Ur`%dnt%_+~?N%NeY zN`ChKdj8I`-CyJ8Y0uC&vL&L!@4rsZxv1NmS^bIEeBLElbmXwSD!d@2e07mVk4lk@ zK!}!{O2<%aMEmr-=~+4{E3XHM-kRLL-xH6jFNb?I-cw8KR9|?Z!6_%n6h!Q$nCb1e zU5cOD`6lEN{+?-pwU0t`o_rr*j%hA<%$tt4FeX7Qmb*Nv<;jkfTrO)|%+R$35{#|M zFA67uz9}XQ>6ibZe4X>LRu>~sF7TuClQjG^#yK@qt4BsZWlCGHP3yE6(Lu%^cpKqK zS^qKaWHY*pf&q8NJ6%g`T|eV0UfzY{80CU%$9+kd29{TU+1P^6mzDhAGZp&v+6X*A zmVmZ*3f!h}uZNt~M_w9e`MkbqMab}l2O4~9Y*lIbV3s=i`cT-Pykbkfq~E*C z8hA;xlt_X&WAU|JSuXS>u1pTB_!X7IWgH$~5I?#RtDuV_3y=qG%Ui;JGUPhFmQ}CMMcRbs3 zH`3{LzVA^qA9G4o0qkXKyTGy39CeTDwD1WtLk zT->57^}hWkv5bmFCE7;%hx0#Opy*0o>vt$n6P)-fhsz~qD%^L!EUrK*pblh@J{W^L zozLUPXNH25P5f*h4$9gc_X@jIhD1Nq~~yj)|-rMWBq7O9v1b46*LzX^ep ziiqBt<4zBSYt-;4ht|clt4qI~ zgp0q@!sTZ?dXBbrcr2+sX|RUpNAP)v(Ehs7hmTAoxXmv{YSdC~3TnaO?;nH&yr-em zd1j?ZLRXtnfZS*rR!@iz;@ZFcdUWYL$LhP+-tytmw~;`>Xt)T@j{#0Uyf70eI@{WEBo{S30SLk*I#c!2yYu-W7fjQqrF4UXG@ng9xRJqM+I z`Zo$KfarhJqWHc&^;-o4^+Yx*dki>PVh67W?4bm%lPm@VE+5bB%Tmgp!JP)bS3%&y z@%=Z!u}bBhgbE^Bfw?>g+$uYupwb~l6sVCLsy>~+_z!Sbd}_Q;pwnVsKJQ&UGU*hF zyN4RQeZt)=Z_l#?Z14)_!J^ZHclT1a+AjAE-U39hG%a6&Jwsr!UCL?8p{l?FEA}-` zn)Xp)U(WI_KKurCenD2WRv+{gd-QMQ5c{fkBTjT(YtXT6mir=37msukAPl9#hMAs0 z*};K_sKIU)ArgB=Qe}Hh<&wQ9m={I?t||!Ab|1pjkON67dhq=zXpcJtY7R)Oc?1fc zuha%S6*?XIb;#I}2MEmH$MjgzXLcT7`+*za@(@5KDfs4#gEAPe>wJMVXpXH#IvL=E z#%pO1So;QUaD(hS9-@pZQ2=W9s)#Z|?&qw7E(8Jt;?wsbonxdhDG`hx&IHx>wX{g_ ze@n_y2F-n5sQzj2^(|Kga8=c&i@httH?A=i z{GJ#2#_oJnGf$F1c-+}@TBt;Wf|!INY^DPX5K%3m!je9yFTBEidkl^@1#1s_v&ZFE z|E%tp$F=%2S;i+HzDUVmb^ul43GHs$;M!bKy)-Q*T?-V3o@;YRBf>6>EDTiu;yuLZ zM7RtswyRoJXz1@pK>Q3jdTTorJm@jVFGjWJ(c&iW)kQoZ!q^Ow<0{FCtlXsFgMseF zo9Cz2)XZ&WiF$%4wPiOT-lUW}#W5gi5#ZcnT|NdfvIt+iWHv?>F&?b{DEWnD+hF+EIiJ_t z0B*OGhjSlBg5vOe6Y}v{#I}d9U;QZ{gj$>{{4+Z}S8{;-gdb>q7DNo0QQs+i6a01r zZlA`$nVdm*Ci}Ii2j8e7Q4~m~S~Du#jZb2LlE~Tp{^r+T4X4@UA^1~EkOcYDQ(nm5)z&(A3%tIBmU=)*LJXLr=Ev)cb0(J!`%81I$_&1u{BdRK>f*TrKWxaHF{H#niTupBbG_M9%Ut1#ehRP0r}U> z4Dezs4jq`>=?s2emo>zb5+SJ`McT@!*-L%}ysLYwt(kd?O< zPIv0{hEhUX8&BN46H}0_<)VWr6uI_{N@*7Oaa{`~KAhRx`?BOs@}sbqVvDTH%s~{^ zo$}+Nm_~n|W7_2Wk+4SAW&1+-&78PGnFo3keZyk)TvLM;yJ+9$c4cDqD2QUHK`O_8 znoEfxe1h$%WT%zYb{-pavMh{H{mVz>T2lcu8Woi$>2c$PI+#MWHkDL<9&1ZhUehTK zhD$W_D*|jZHahEdO7F`Oe@T$%4e*fj#i=Uq*$sae{ozP~*~vawMKie?fK+Cf)i~Qy zkvLWviHp4}LVm}E?4^*Fys+|DTOgWABTT=H(&1Lrx}guJ+1GMvKNp25X;T`UKr-)h zKgB`I=AfD%pDnZ?r3AjgDmgUyozy^KdS@&k&CF`Pe<3euzKa)piJa!uv;3f#HoFrp z``5c$A3@0dk}_2wdUeDG2z~0KIcVnaJAr({sb!BP;I34e z^Y?1fh*6%xm-irj(~tbHLg6b^Mi1(l037wIoEnFPNWaSnj}lpCS%HkiTlcoQwA>{>z)1;|M`2UJKVsX9#``5rCz6k=!o@aPX=99>;n-tigDXI6-#=o zn1mq~b=)z5cfZ!l;coXYd}O&d))vlpIy|p|-xdBysI_|ZAfZa_L5eRv8u2lZ`H*BtvAN1DFNKXaquB5!qw(+@4`N%n;?KQk;L)7Cbids}xrNz0llvw1)s`oxP zh0N3&S;yNTucsBao_PIN~X2ylmp{P z+#L^3H;ZWuPPd?&lAbP8SZ1j+JM5 zSM$pYyz@AD_7sp}Q~r#`-dJZwi?!X&l8Gb5N?!T{CB@q9@Hw$D{a6S4rLi;+*Zt>I zTo^azq|TSBT_wR~ch1k{pB*)rDs1p?Svaem=Zh(bd%|UwF^@DYYj%+No;R(GqDy z5Ft-&$zn8--f*8r)SHi5Hjwt93^4q`ePqXSrgqyfw3^AMK1GDtRKz`J!qruh!jleD zM)RLDAMfQ>fMHRMy8-rZ6hhiuycMxE2!^RP^Rq_(BS^g{^Oi zdai^Ay@=wP4QnCz)0U^1?#A7TkB{|stNdMoP5B&JxC5$h?YZ#7*uwW)t->I>uV#>O z>XNJ9_H`mkz>U8v%28&RZ;59>*Q=$^xWeoNJQcm?f7P?#80&?0n6W!v3Q7W{%ner% z)tiXw;SQzU`eo$4ji?VTZr8KH`}(-kw6ox4H<}N>2)HhQi0NZJa89<)ExdGPgt$m6?yoLEGt{=|OA0cjUn_ z%!qIP!Zk>~#wcxMp5Y0(Jt#Bd6N1Ts?u}mQns?N?=~d!o#-zB~YpKc?;fW_=m!uwh z>bGB%>i+B}d#NmSQsF{hDG?ivNs7APwq@8y9xhCK*pQ4`9>dkHqx*Dh>&Yj{+SfN! zw0&y)MF8FXO*^m`(R7nM!)v&gG$Y4w{;?j)Jw2@IgOY7@k3I^PeQ(&@#f+QvA}<&H z<<}WfqUHe#uE3&}J*NeM%H6CVZmfkncJqUbScmaTlL}| z71)QDSb$ETgPO912CtqG?nz<`Das92Rt4G${YWv-zMP7%;>5ns%bE_vEC|>QTeApC z-wW!u+q`DLSNKIaGRD3C3Or(FP?A^FaUu0bBWvP~bGzHm0DVGUo2}b)$Gt*!EkP^N z%s(%uOXSIYwVab7>PwsI|I7+FjPNvlzwt7hCy__&l8Nmp{7$(J8IqS#W;73NSjr*UgSING$ zx(Az;5%@e$S>{YtBzbpeNZKB%ey+si!+>44kg1*`Xhg(jQY0$VGBLh4E2z@Y{~8yp zy!)v6&fB<^Mi&BZ&EUJu9ERG;*EB-dhgY3Q>Blcdlh-fLKJ#zQf7iS;B8GmNR!A-D z@FkN@!G~p&l;GCePFi6OE;+J)p<4a&5)-MVLqCCG!JVIp&{89b;pArq_+i}4v|75F z?X@Y4#na9bf$dif7ikvWk6zn}ju8&)S7z0qje-qQNU+gGc`pom=Ogkb#E#YVy7XyB zLtHtyzPzaGT?~|rCpIQF3HsUwO?*6L=|jJdVnuhmND;gU%heK8Pmo3rU5|V9tbQTo z-N_opMDPX&?L(B=PyDX(r?9{aU1diE4N}x_!SN!eyy{3`Dwz)Lg%u%EiWVQR%zSwPm9(N6*8CROPsrWm98M>DAbO zxUy_f3i?~0DF(F}B9n;hLF;*^kmZT(UukW%bEQW?emC{E({iOUqlav#Y z6K5PQp!8%eYI9BOa?@S2`ISAem=ox zos@J~QGN91f5?P&F$km362C1Tn4nrEOSehnuOZ?QKiEA##K8NUKQ6#uj-f~prhy+V zVh-rZq#f4#ZMl+|0q4Iwu!rZ6Jkj*Rt4czhhJF*JoULl249SbOP-2>~I$DRZ;^?b^ z?~daS5qqzBMx>K!nsHA2f`p+AEpZ0bO&2O0Es7hyT3-Ox_ykSZ8r&A;T%4G^} zSOKLuip;AB@LHFEA8PgDgAM1^4#{|*P$G=_p!tb?{RD#rbAuUIFMRMI79`*$i&_FE zN-fYGzkIu1%v2ScZ~qy>m|giNHo>2xH+Ola;c0{KciXZe=7S!QCRSV`h2=|9&0Zul;`iZG{IQpNB)@}+~g`rwa)*=li0eS#elCe0%e(4n5L zO#8@`9=GcUIv-M+dAU+#L1)_Aqus0L(cwO+T;X=z}s4nFZuF!(H5c6|?1BX3>3Skm>nM>UQz#6@~EMDP@-- zIu0XuX#VWoybKkT&7a73L*hj)BbK4=GULp$H*|et`cINoZBZKjwhejDHS%|}v9%@UN)MAhg7;V0897CFa>+#TKeaQG*)i87+Mkox$->@Go-9>bo!UVfy+lqwk~{ zHj5dz>OuVXP&4ECi1`^4x4%_rD;tU1Z4m!pz<3s@9JJo;D70sR_n2|7y$ql-@(14- zb~yZVyX){P4XRTR{vbre77O~>>Wgke6TiVxhtpGabnN;PlaZ3mQ{vY#aR%tvD_;$? z*9nBhF2)#iF4B9fq?Gfr;KKB#12{i|)D!jCF;-aJl+RkP$oeC3?>iq_r7-v>>2%B; z0xme_YH5!8+fP6516LKKJ$xo?N=E*|?bj&@BdxdBe`nrVLG%PkwU zIHK#)cCSK0Ni&Cs>;1jxusaZr^(^|$-g*uF|ND3pH~F`Kp+>Oomn!2aP=V^KbEhNd z0DsX7>A1(wLUfzXqlS^I2v<#lz7*s=8jdFl?6@*9aXWh?Uz0IqUqIou%}xD6-#fx3 zo^8fiqtcQXyyzy*1@;G56aXYqNZS2yNxsabzRpllM$Hqi3qtc0G!P2nQ$=U4W7 z&kosh?v`7x9J_F$i|kklbwsl~_d=5cW)m-h<4PHB4Y3)opLx-H0oP8uf1U2~P`BJ? z^_RLgoRNHiBr{PZYxo=U0~Y#L{fC*MxqJOy!dwD5+1SVrxf|yXY#FTHlh!?^oxGo} zoyll?&U$F$Ct9~+-!~9i`s+Hyuai>7P{iR(mblh~hi=FBx8hD8%g8EZR99A5_u7|| zb!i;n%H-`Q5L{@!&OzQ1aK?frB- zdwdJ=+cEU++l3Y8^;e~j1^w0@J~30`4?i%UmJMU2qs4C=ZYszyy__E{?5!oa_6PU> z%G+PX)q~1

b<=+9~&qhY!X{1s#0-bPF3~M?dZCzkIhW|Glt5kq^fCZe)bTy;@py zzVF}cZJI*vnB&Z-Ia@k=;guqlB%c_3>N>|?2(?7V#M+uJ=>47w39sPQPQw&Uv>?tr z*h$$Yr6&%qZQpXnY-0K}Bhf_Bl*x72&JBOIvfo4u9x9<9e>vTJW+lKeZTw?>G=ogM=P;@4R*Ut z{QmX~L+qC;)Jha#7XnHIeKPXA>#0+ooF|IO3vof+h;XPss5*4;K<%3h8>_=l-xF67Jcn$7Cl87K3)*@$> z9ht=Fj?iMqc7M3ZH}@3^QbXcp;)|KMxsYnfV)R&n_yICYKYkL+bI&~mcV)WPJ5(Lj z`GBWsNE5;%_@ui9B?yMeFp_pWaI9YIh_<~jjIY0d*Jd`0Jbt2kn6NHC^g+Ty;Hpf7 z?Hbv47R=l2ci(E~$7;y6PxP2he>e;rXb(`Rsha z&~FKL6vynu6l|+0GtLvV17lOaLPZSyd7^L)bv@Z7lVihBAw`T~Fv3V6yX-qy45_Xm zZZ}jIps7{{g?KOU9lH;x`7k0R`RQ<8m)=R?-D;Az3(cQLX*K<<^PjA|j{$RxDI&2m z?dn7s2FVGR-fe^DltLjh{=!FRil(h0+*S0KwWW5BKbl8TdSqj|&4u70eN-vylw_*X zPxzWQib^tY;Ebr9FtQB`;yAS$33aJe!8KPDmGRfXJJ|c61z(Cf9|Qk+JBOm8#6OIG zt@`nzGn))9#V6747*@nK;j>c@&f=ko4J{Pa8*YhOe%(YCDyCSnX$`B}U@O&zQCK6} zzZ7!;_wh+GaF!*!#VD+l1_w~*12K-Ph%m=5HAzSA_Ke?gsTubbuE5g9tHhXMf<>_^Y*jTLUfw1PwY(}=Va^*{Yq(}l6n*mLtv(PMMp0FfufF#a zw(}v7`*=nrS&UByR6Xz@^ps##(8=)=ek23GBe#W_W*QiAJP0C0*n?(Ka{W|70%}$&Hn#K5f9TwADMT^!`-c~7GR$WJF(V%+`A+Q_on}9BDN%l zS|%Avel>YOJ_l#dF2OfYR0qecjcnQ1$p|2(wAOmGf#GY2?MpW+?zYnm6j7W1VH5F- zebw9GrjE(>-GmeN>!~*GGqyDG-a~6S1?CP08w6_j#80DF)=|-^M>9PfM1&zUTd8^s zZC`?!w(?YC5L`;&+N^b9_rCH!WQfe89Sl|lpM??A9-AUWiEzM7u7w3vh-^IBZ>HDunr5|65!dvh2mrvCOG2hQz>0dY2OEG=+=czUrSu~ROcu5pTB z=3~7&a<#f;MOh&q7s93`QN^P=+&gq3biG@hVhbN0to&rJ9x1o20{>UZ?l zwu_q=WWvQ8X__XA2BCWK@UT}81fJM3#+JN*_?4%YJD%4c=mAUWA|vUy-=C8aO((po z^VZ-XnUgq^__RCzJJ9?$fo55^0dZUs$tNtCm@7`;CF_1X%Qxz8&PV4$+pLMBapYmf zkKRr#g^*6~OE3L&-Jf6$d4D8ci3+vksJ*<4=u3jR)zgA6Wu{`TeMjhMx)7@=xh94y z$%TKW3727P3OsW7OknvnDU6#~5DMqhXNh|}+h2x~$gIX?9ZND&LWomX+RMdaJB_CRQi7vT(^{Ju-TTsPDJeih&2L*`uuW_va3l+&|0 zwjzP_5>TO#i3<2f27P4-;GIAv+aT84KNeHtX2&r~^P(}}H5!>TcIOJ%FMnr;@T7Sq z$_XFQBGr^;eiYU{5%c!9ds;)3ao@HqH!SIs5r0!@Z20A^;9v!Qn~1xplU(BIWF>8~ zmGY-#3G;$P)WHQ5^LHuyum4EU3g4$1DLQcl30^5|na9R{7rxo5i@-|P(d3qePEEbrJYFwq5&c0y*DCaxm z;H_UsVmaghxeQ0M$IURlTe@h^xGGm^1GCHO76cM>9~o4@I7k1on^I93{)nPf_S&$u znO*Do^T$?TW&PDReNHFSqcPTi@JGYuh*1^oow?MajnWg;u70s#rq>+8<_Y$h1efFB(6b zfs})?@hYXdH-vsl3(}i6w<#=F7T(MD2!>gcwbfCD`IUK;G^i`y2W^kjY-jrz6(r3y zGWo5YA3{heL4~9$38P3J9>4RFS;^3z@W;fdu1{;vH(CWR?=HyqE?*|78TIwQwjNB` z<4ZA&tiE{bK%M&dQyjaWZ8ck11O4U#!{g~fbnJ!-dedT(-RJZo7xTt$C_RNo8M3)5?}3~PQ943r z_{2Amm)-x{d4`7LrGzrRcUZ9EYh1Xk-Q#h|zc-G!|IS_R0~%M=Gpr-SIZ_+>M4Vm1 zwkWYRH9g8aMvTYHLJv-mIu74f4+)v)MjD(~d2Vi_r=yLg2;ch!>pF^6V3?x--^at4 z$8g9Iy<(Yhq54hz6gn#0nw@^O+Ldkq98|L|x8kqhAhvh{nV}X%O@$NCz08C!4^;e% z~#i{+KnZvi1 zbSJ4o8N3rou-uw!FVdvF__Z3Yr9azWsEr;^`MpbofluMB1+Z6Y0fz`n^??wCWe*%|t>7A-IOdIU|$@Ub)FOTUrG<-4& zEvS{yS(;Sp-z|6`d$&*>K=WGM_cY(Ns?j`#CTN$;4I8*TL%n8{KJN{t&|*Q&9d+@$ zLNa!~HLSQ~qlA2u$x4%V_}pm)_j1A9Sz3W#z3P7=T1_@{qvDMA?yjhP)F>P(c)4)y z{q9NBZUS(RdED#6A#S@zQ1u10r)z}#5S3+2>sYuqZJk%pJHeGV%)*ZKceD5yo$XcJ z)5a{WfaC+O_=jHT(9Z01Lc0Pizse>$Yt_M|nCeJ_qF%%BtC{%!yi%!qu49<{26?D3 zqA!FP)qTuiw||T-yhA~Zfh|@iXG-EN>DsoMdqjKs#No&XFy|Zn#{r2&d3RSD`-&Y0 z&(G6|yF7(UhhN+69X}bWk+VHqmu8&sF45Yev~G(Da2JAWq?}8ThdM)Ka%~c3Tjcm~ z7|A{4MGUEVL;MDFTjHi{IFGiOw=o5;@zLS*bjdN0Kf0OMAhi;@RXcTs#-)&adcFAU zK!7q&3fjfjyjF{~Hmj5jc8-|2@;=?KcZ?B^Nq#<3? zJ>T*6@OxpS%($uS!i)_)jtpJfdKZI!4^1D@rC;;gJY=fk6_p!16l!eT&6qXWKhe6u zlRnNKvbnYS?2Dob#h#Uoq(ZjSKvVK*&o=z=aoTb5 z8%x2{IbX+8Y3Oav^ZSDdujZ9oUO;9;SBVpBl!FaXo$Fc#i)mrDf2_NsWc?i~MvT85 zR~sGHIA=jtDgZij57DuUM@a6ATRramL%#U^9J;^qWJ>&qg;m%%SdD)YjOpDCS(WY-P!uUx=KQCq;9e)6z+ARG8On*r!C;&MR)z{Q-xg0dCR~QEe@;OjVEJ%{nEoa%Yi z`I9+_E(T1i7;7H&xIFfg9v9R`SN=|H?WW)D;VAqNb!*S%K%mQJ!PD)sLwgms5@P7eJ9lq!Q literal 0 HcmV?d00001 diff --git a/docs-en/chapter_stack_and_queue/queue.assets/linkedlist_queue_push.png b/docs-en/chapter_stack_and_queue/queue.assets/linkedlist_queue_push.png new file mode 100644 index 0000000000000000000000000000000000000000..a53b9f44dc01194766228cedd7c14ef3db784513 GIT binary patch literal 18687 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 a?5}dkLPF^d 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 zv#IYg`C0IQ6H4{^b*mNt000000000000000000000000000000{_Vjb0RR91fS~`c iePIFs000000ALs0=-8@0(|^VQ0000atT literal 0 HcmV?d00001 diff --git a/docs-en/chapter_stack_and_queue/queue.md b/docs-en/chapter_stack_and_queue/queue.md new file mode 100755 index 000000000..59280900e --- /dev/null +++ b/docs-en/chapter_stack_and_queue/queue.md @@ -0,0 +1,375 @@ +# Queue + +"Queue" is a linear data structure that follows the First-In-First-Out (FIFO) rule. As the name suggests, a queue simulates the phenomenon of lining up, where newcomers join the back of the queue, and people at the front of the queue leave one by one. + +As shown in the figure below, we call the front of the queue the "head" and the back the "tail." The operation of adding elements to the tail of the queue is termed "enqueue," and the operation of removing elements from the head is termed "dequeue." + +![Queue's First-In-First-Out Rule](queue.assets/queue_operations.png) + +## Common Operations on Queue + +The common operations on a queue are shown in the table below. Note that method names may vary across different programming languages. Here, we adopt the same naming convention as used for stacks. + +

Table   Efficiency of Queue Operations

+ +| Method Name | Description | Time Complexity | +| ----------- | -------------------------------------- | --------------- | +| `push()` | Enqueue an element, add it to the tail | $O(1)$ | +| `pop()` | Dequeue the head element | $O(1)$ | +| `peek()` | Access the head element | $O(1)$ | + +We can directly use the ready-made queue classes in programming languages: + +=== "Python" + + ```python title="queue.py" + from collections import deque + + # Initialize the queue + # In Python, we generally use the deque class as a queue + # Although queue.Queue() is a pure queue class, it's not very user-friendly, so it's not recommended + que: deque[int] = deque() + + # Enqueue elements + que.append(1) + que.append(3) + que.append(2) + que.append(5) + que.append(4) + + # Access the front element + front: int = que[0] + + # Dequeue an element + pop: int = que.popleft() + + # Get the length of the queue + size: int = len(que) + + # Check if the queue is empty + is_empty: bool = len(que) == 0 + ``` + +=== "C++" + + ```cpp title="queue.cpp" + /* Initialize the queue */ + queue queue; + + /* Enqueue elements */ + queue.push(1); + queue.push(3); + queue.push(2); + queue.push(5); + queue.push(4); + + /* Access the front element */ + int front = queue.front(); + + /* Dequeue an element */ + queue.pop(); + + /* Get the length of the queue */ + int size = queue.size(); + + /* Check if the queue is empty */ + bool empty = queue.empty(); + ``` + +=== "Java" + + ```java title="queue.java" + /* Initialize the queue */ + Queue queue = new LinkedList<>(); + + /* Enqueue elements */ + queue.offer(1); + queue.offer(3); + queue.offer(2); + queue.offer(5); + queue.offer(4); + + /* Access the front element */ + int peek = queue.peek(); + + /* Dequeue an element */ + int pop = queue.poll(); + + /* Get the length of the queue */ + int size = queue.size(); + + /* Check if the queue is empty */ + boolean isEmpty = queue.isEmpty(); + ``` + +=== "C#" + + ```csharp title="queue.cs" + /* Initialize the queue */ + Queue queue = new(); + + /* Enqueue elements */ + queue.Enqueue(1); + queue.Enqueue(3); + queue.Enqueue(2); + queue.Enqueue(5); + queue.Enqueue(4); + + /* Access the front element */ + int peek = queue.Peek(); + + /* Dequeue an element */ + int pop = queue.Dequeue(); + + /* Get the length of the queue */ + int size = queue.Count; + + /* Check if the queue is empty */ + bool isEmpty = queue.Count == 0; + ``` + +=== "Go" + + ```go title="queue_test.go" + /* Initialize the queue */ + // In Go, use list as a queue + queue := list.New() + + /* Enqueue elements */ + queue.PushBack(1) + queue.PushBack(3) + queue.PushBack(2) + queue.PushBack(5) + queue.PushBack(4) + + /* Access the front element */ + peek := queue.Front() + + /* Dequeue an element */ + pop := queue.Front() + queue.Remove(pop) + + /* Get the length of the queue */ + size := queue.Len() + + /* Check if the queue is empty */ + isEmpty := queue.Len() == 0 + ``` + +=== "Swift" + + ```swift title="queue.swift" + /* Initialize the queue */ + // Swift does not have a built-in queue class, so Array can be used as a queue + var queue: [Int] = [] + + /* Enqueue elements */ + queue.append(1) + queue.append(3) + queue.append(2) + queue.append(5) + queue.append(4) + + /* Access the front element */ + let peek = queue.first! + + /* Dequeue an element */ + // Since it's an array, removeFirst has a complexity of O(n) + let pool = queue.removeFirst() + + /* Get the length of the queue */ + let size = queue.count + + /* Check if the queue is empty */ + let isEmpty = queue.isEmpty + ``` + +=== "JS" + + ```javascript title="queue.js" + /* Initialize the queue */ + // JavaScript does not have a built-in queue, so Array can be used as a queue + const queue = []; + + /* Enqueue elements */ + queue.push(1); + queue.push(3); + queue.push(2); + queue.push(5); + queue.push(4); + + /* Access the front element */ + const peek = queue[0]; + + /* Dequeue an element */ + // Since the underlying structure is an array, shift() method has a time complexity of O(n) + const pop = queue.shift(); + + /* Get the length of the queue */ + const size = queue.length; + + /* Check if the queue is empty */ + const empty = queue.length === 0; + ``` + +=== "TS" + + ```typescript title="queue.ts" + /* Initialize the queue */ + // TypeScript does not have a built-in queue, so Array can be used as a queue + const queue: number[] = []; + + /* Enqueue elements */ + queue.push(1); + queue.push(3); + queue.push(2); + queue.push(5); + queue.push(4); + + /* Access the front element */ + const peek = queue[0]; + + /* Dequeue an element */ + // Since the underlying structure is an array, shift() method has a time complexity of O(n) + const pop = queue.shift(); + + /* Get the length of the queue */ + const size = queue.length; + + /* Check if the queue is empty */ + const empty = queue.length === 0; + ``` + +=== "Dart" + + ```dart title="queue.dart" + /* Initialize the queue */ + // In Dart, the Queue class is a double-ended queue but can be used as a queue + Queue queue = Queue(); + + /* Enqueue elements */ + queue.add(1); + queue.add(3); + queue.add(2); + queue.add(5); + queue.add(4); + + /* Access the front element */ + int peek = queue.first; + + /* Dequeue an element */ + int pop = queue.removeFirst(); + + /* Get the length of the queue */ + int size = queue.length; + + /* Check if the queue is empty */ + bool isEmpty = queue.isEmpty; + ``` + +=== "Rust" + + ```rust title="queue.rs" + /* Initialize the double-ended queue */ + // In Rust, use a double-ended queue as a regular queue + let mut deque: VecDeque = VecDeque::new(); + + /* Enqueue elements */ + deque.push_back(1); + deque.push_back(3); + deque.push_back(2); + deque.push_back(5); + deque.push_back(4); + + /* Access the front element */ + if let Some(front) = deque.front() { + } + + /* Dequeue an element */ + if let Some(pop) = deque.pop_front() { + } + + /* Get the length of the queue */ + let size = deque.len(); + + /* Check if the queue is empty */ + let is_empty = deque.is_empty(); + ``` + +=== "C" + + ```c title="queue.c" + // C does not provide a built-in queue + ``` + +=== "Zig" + + ```zig title="queue.zig" + + ``` + +??? pythontutor "可视化运行" + + + +## Implementing a Queue + +To implement a queue, we need a data structure that allows adding elements at one end and removing them at the other. Both linked lists and arrays meet this requirement. + +### Implementation Based on Linked List + +As shown in the figure below, we can consider the "head node" and "tail node" of a linked list as the "head" and "tail" of the queue, respectively. We restrict the operations so that nodes can only be added at the tail and removed at the head. + +=== "LinkedListQueue" + ![Implementing Queue with Linked List for Enqueue and Dequeue Operations](queue.assets/linkedlist_queue.png) + +=== "push()" + ![linkedlist_queue_push](queue.assets/linkedlist_queue_push.png) + +=== "pop()" + ![linkedlist_queue_pop](queue.assets/linkedlist_queue_pop.png) + +Below is the code for implementing a queue using a linked list: + +```src +[file]{linkedlist_queue}-[class]{linked_list_queue}-[func]{} +``` + +### Implementation Based on Array + +Deleting the first element in an array has a time complexity of $O(n)$, which would make the dequeue operation inefficient. However, this problem can be cleverly avoided as follows. + +We can use a variable `front` to point to the index of the head element and maintain a `size` variable to record the length of the queue. Define `rear = front + size`, which points to the position right after the tail element. + +With this design, **the effective interval of elements in the array is `[front, rear - 1]`**. The implementation methods for various operations are shown in the figure below. + +- Enqueue operation: Assign the input element to the `rear` index and increase `size` by 1. +- Dequeue operation: Simply increase `front` by 1 and decrease `size` by 1. + +Both enqueue and dequeue operations only require a single operation, each with a time complexity of $O(1)$. + +=== "ArrayQueue" + ![Implementing Queue with Array for Enqueue and Dequeue Operations](queue.assets/array_queue.png) + +=== "push()" + ![array_queue_push](queue.assets/array_queue_push.png) + +=== "pop()" + ![array_queue_pop](queue.assets/array_queue_pop.png) + +You might notice a problem: as enqueue and dequeue operations are continuously performed, both `front` and `rear` move to the right and **will eventually reach the end of the array and can't move further**. To resolve this issue, we can treat the array as a "circular array." + +For a circular array, `front` or `rear` needs to loop back to the start of the array upon reaching the end. This cyclical pattern can be achieved with a "modulo operation," as shown in the code below: + +```src +[file]{array_queue}-[class]{array_queue}-[func]{} +``` + +The above implementation of the queue still has limitations: its length is fixed. However, this issue is not difficult to resolve. We can replace the array with a dynamic array to introduce an expansion mechanism. Interested readers can try to implement this themselves. + +The comparison of the two implementations is consistent with that of the stack and is not repeated here. + +## Typical Applications of Queue + +- **Amazon Orders**. After shoppers place orders, these orders join a queue, and the system processes them in order. During events like Singles' Day, a massive number of orders are generated in a short time, making high concurrency a key challenge for engineers. +- **Various To-Do Lists**. Any scenario requiring a "first-come, first-served" functionality, such as a printer's task queue or a restaurant's food delivery queue, can effectively maintain the order of processing with a queue. diff --git a/docs-en/chapter_stack_and_queue/stack.assets/array_stack.png b/docs-en/chapter_stack_and_queue/stack.assets/array_stack.png new file mode 100644 index 0000000000000000000000000000000000000000..e8e3445b7eb965d7ae250c298ba5a76873c5fc94 GIT binary patch literal 15928 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 literal 0 HcmV?d00001 diff --git a/docs-en/chapter_stack_and_queue/stack.assets/array_stack_pop.png b/docs-en/chapter_stack_and_queue/stack.assets/array_stack_pop.png new file mode 100644 index 0000000000000000000000000000000000000000..be56b586d3de283ef3909118cb488ee2a2967325 GIT binary patch literal 15681 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 literal 0 HcmV?d00001 diff --git a/docs-en/chapter_stack_and_queue/stack.assets/array_stack_push.png b/docs-en/chapter_stack_and_queue/stack.assets/array_stack_push.png new file mode 100644 index 0000000000000000000000000000000000000000..7caf4d72e00629b824bfd5ada9086523c4ef4cab GIT binary patch literal 17586 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 S&*@zuvM-s?o^-cutXq$dObfJ8%G`91*PU{7H~ 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 literal 0 HcmV?d00001 diff --git a/docs-en/chapter_stack_and_queue/stack.assets/linkedlist_stack_pop.png b/docs-en/chapter_stack_and_queue/stack.assets/linkedlist_stack_pop.png new file mode 100644 index 0000000000000000000000000000000000000000..09a57488b0371075873f9402d08f26952ebe9241 GIT binary patch literal 15689 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
    4S0Y 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 literal 0 HcmV?d00001 diff --git a/docs-en/chapter_stack_and_queue/stack.md b/docs-en/chapter_stack_and_queue/stack.md new file mode 100755 index 000000000..8248054b3 --- /dev/null +++ b/docs-en/chapter_stack_and_queue/stack.md @@ -0,0 +1,383 @@ +# Stack + +"Stack" is a linear data structure that follows the principle of Last-In-First-Out (LIFO). + +We can compare a stack to a pile of plates on a table. To access the bottom plate, one must remove the plates on top. If we replace the plates with various types of elements (such as integers, characters, objects, etc.), we obtain the data structure known as a stack. + +As shown in the following figure, we refer to the top of the pile of elements as the "top of the stack" and the bottom as the "bottom of the stack." The operation of adding elements to the top of the stack is called "push," and the operation of removing the top element is called "pop." + +![Stack's Last-In-First-Out Rule](stack.assets/stack_operations.png) + +## Common Operations on Stack + +The common operations on a stack are shown in the table below. The specific method names depend on the programming language used. Here, we use `push()`, `pop()`, and `peek()` as examples. + +

    Table   Efficiency of Stack Operations

    + +| Method | Description | Time Complexity | +| -------- | ----------------------------------------------- | --------------- | +| `push()` | Push an element onto the stack (add to the top) | $O(1)$ | +| `pop()` | Pop the top element from the stack | $O(1)$ | +| `peek()` | Access the top element of the stack | $O(1)$ | + +Typically, we can directly use the stack class built into the programming language. However, some languages may not specifically provide a stack class. In these cases, we can use the language's "array" or "linked list" as a stack and ignore operations that are not related to stack logic in the program. + +=== "Python" + + ```python title="stack.py" + # Initialize the stack + # Python does not have a built-in stack class, so a list can be used as a stack + stack: list[int] = [] + + # Push elements onto the stack + stack.append(1) + stack.append(3) + stack.append(2) + stack.append(5) + stack.append(4) + + # Access the top element of the stack + peek: int = stack[-1] + + # Pop an element from the stack + pop: int = stack.pop() + + # Get the length of the stack + size: int = len(stack) + + # Check if the stack is empty + is_empty: bool = len(stack) == 0 + ``` + +=== "C++" + + ```cpp title="stack.cpp" + /* Initialize the stack */ + stack stack; + + /* Push elements onto the stack */ + stack.push(1); + stack.push(3); + stack.push(2); + stack.push(5); + stack.push(4); + + /* Access the top element of the stack */ + int top = stack.top(); + + /* Pop an element from the stack */ + stack.pop(); // No return value + + /* Get the length of the stack */ + int size = stack.size(); + + /* Check if the stack is empty */ + bool empty = stack.empty(); + ``` + +=== "Java" + + ```java title="stack.java" + /* Initialize the stack */ + Stack stack = new Stack<>(); + + /* Push elements onto the stack */ + stack.push(1); + stack.push(3); + stack.push(2); + stack.push(5); + stack.push(4); + + /* Access the top element of the stack */ + int peek = stack.peek(); + + /* Pop an element from the stack */ + int pop = stack.pop(); + + /* Get the length of the stack */ + int size = stack.size(); + + /* Check if the stack is empty */ + boolean isEmpty = stack.isEmpty(); + ``` + +=== "C#" + + ```csharp title="stack.cs" + /* Initialize the stack */ + Stack stack = new(); + + /* Push elements onto the stack */ + stack.Push(1); + stack.Push(3); + stack.Push(2); + stack.Push(5); + stack.Push(4); + + /* Access the top element of the stack */ + int peek = stack.Peek(); + + /* Pop an element from the stack */ + int pop = stack.Pop(); + + /* Get the length of the stack */ + int size = stack.Count; + + /* Check if the stack is empty */ + bool isEmpty = stack.Count == 0; + ``` + +=== "Go" + + ```go title="stack_test.go" + /* Initialize the stack */ + // In Go, it is recommended to use a Slice as a stack + var stack []int + + /* Push elements onto the stack */ + stack = append(stack, 1) + stack = append(stack, 3) + stack = append(stack, 2) + stack = append(stack, 5) + stack = append(stack, 4) + + /* Access the top element of the stack */ + peek := stack[len(stack)-1] + + /* Pop an element from the stack */ + pop := stack[len(stack)-1] + stack = stack[:len(stack)-1] + + /* Get the length of the stack */ + size := len(stack) + + /* Check if the stack is empty */ + isEmpty := len(stack) == 0 + ``` + +=== "Swift" + + ```swift title="stack.swift" + /* Initialize the stack */ + // Swift does not have a built-in stack class, so Array can be used as a stack + var stack: [Int] = [] + + /* Push elements onto the stack */ + stack.append(1) + stack.append(3) + stack.append(2) + stack.append(5) + stack.append(4) + + /* Access the top element of the stack */ + let peek = stack.last! + + /* Pop an element from the stack */ + let pop = stack.removeLast() + + /* Get the length of the stack */ + let size = stack.count + + /* Check if the stack is empty */ + let isEmpty = stack.isEmpty + ``` + +=== "JS" + + ```javascript title="stack.js" + /* Initialize the stack */ + // JavaScript does not have a built-in stack class, so Array can be used as a stack + const stack = []; + + /* Push elements onto the stack */ + stack.push(1); + stack.push(3); + stack.push(2); + stack.push(5); + stack.push(4); + + /* Access the top element of the stack */ + const peek = stack[stack.length-1]; + + /* Pop an element from the stack */ + const pop = stack.pop(); + + /* Get the length of the stack */ + const size = stack.length; + + /* Check if the stack is empty */ + const is_empty = stack.length === 0; + ``` + +=== "TS" + + ```typescript title="stack.ts" + /* Initialize the stack */ + // TypeScript does not have a built-in stack class, so Array can be used as a stack + const stack: number[] = []; + + /* Push elements onto the stack */ + stack.push(1); + stack.push(3); + stack.push(2); + stack.push(5); + stack.push(4); + + /* Access the top element of the stack */ + const peek = stack[stack.length - 1]; + + /* Pop an element from the stack */ + const pop = stack.pop(); + + /* Get the length of the stack */ + const size = stack.length; + + /* Check if the stack is empty */ + const is_empty = stack.length === 0; + ``` + +=== "Dart" + + ```dart title="stack.dart" + /* Initialize the stack */ + // Dart does not have a built-in stack class, so List can be used as a stack + List stack = []; + + /* Push elements onto the stack */ + stack.add(1); + stack.add(3); + stack.add(2); + stack.add(5); + stack.add(4); + + /* Access the top element of the stack */ + int peek = stack.last; + + /* Pop an element from the stack */ + int pop = stack.removeLast(); + + /* Get the length of the stack */ + int size = stack.length; + + /* Check if the stack is empty */ + bool isEmpty = stack.isEmpty; + ``` + +=== "Rust" + + ```rust title="stack.rs" + /* Initialize the stack */ + // Use Vec as a stack + let mut stack: Vec = Vec::new(); + + /* Push elements onto the stack */ + stack.push(1); + stack.push(3); + stack.push(2); + stack.push(5); + stack.push(4); + + /* Access the top element of the stack */ + let top = stack.last().unwrap(); + + /* Pop an element from the stack */ + let pop = stack.pop().unwrap(); + + /* Get the length of the stack */ + let size = stack.len(); + + /* Check if the stack is empty */ + let is_empty = stack.is_empty(); + ``` + +=== "C" + + ```c title="stack.c" + // C does not provide a built-in stack + ``` + +=== "Zig" + + ```zig title="stack.zig" + + ``` + +??? pythontutor "可视化运行" + + + +## Implementing a Stack + +To understand the mechanics of a stack more deeply, let's try implementing a stack class ourselves. + +A stack follows the principle of Last-In-First-Out, which means we can only add or remove elements at the top of the stack. However, both arrays and linked lists allow adding and removing elements at any position, **therefore a stack can be seen as a restricted array or linked list**. In other words, we can "mask" some unrelated operations of arrays or linked lists to make their logic conform to the characteristics of a stack. + +### Implementation Based on Linked List + +When implementing a stack using a linked list, we can consider the head node of the list as the top of the stack and the tail node as the bottom of the stack. + +As shown in the figure below, for the push operation, we simply insert elements at the head of the linked list. This method of node insertion is known as "head insertion." For the pop operation, we just need to remove the head node from the list. + +=== "LinkedListStack" + ![Implementing Stack with Linked List for Push and Pop Operations](stack.assets/linkedlist_stack.png) + +=== "push()" + ![linkedlist_stack_push](stack.assets/linkedlist_stack_push.png) + +=== "pop()" + ![linkedlist_stack_pop](stack.assets/linkedlist_stack_pop.png) + +Below is an example code for implementing a stack based on a linked list: + +```src +[file]{linkedlist_stack}-[class]{linked_list_stack}-[func]{} +``` + +### Implementation Based on Array + +When implementing a stack using an array, we can consider the end of the array as the top of the stack. As shown in the figure below, push and pop operations correspond to adding and removing elements at the end of the array, respectively, both with a time complexity of $O(1)$. + +=== "ArrayStack" + ![Implementing Stack with Array for Push and Pop Operations](stack.assets/array_stack.png) + +=== "push()" + ![array_stack_push](stack.assets/array_stack_push.png) + +=== "pop()" + ![array_stack_pop](stack.assets/array_stack_pop.png) + +Since the elements to be pushed onto the stack may continuously increase, we can use a dynamic array, thus avoiding the need to handle array expansion ourselves. Here is an example code: + +```src +[file]{array_stack}-[class]{array_stack}-[func]{} +``` + +## Comparison of the Two Implementations + +**Supported Operations** + +Both implementations support all the operations defined in a stack. The array implementation additionally supports random access, but this is beyond the scope of a stack definition and is generally not used. + +**Time Efficiency** + +In the array-based implementation, both push and pop operations occur in pre-allocated continuous memory, which has good cache locality and therefore higher efficiency. However, if the push operation exceeds the array capacity, it triggers a resizing mechanism, making the time complexity of that push operation $O(n)$. + +In the linked list implementation, list expansion is very flexible, and there is no efficiency decrease issue as in array expansion. However, the push operation requires initializing a node object and modifying pointers, so its efficiency is relatively lower. If the elements being pushed are already node objects, then the initialization step can be skipped, improving efficiency. + +Thus, when the elements for push and pop operations are basic data types like `int` or `double`, we can draw the following conclusions: + +- The array-based stack implementation's efficiency decreases during expansion, but since expansion is a low-frequency operation, its average efficiency is higher. +- The linked list-based stack implementation provides more stable efficiency performance. + +**Space Efficiency** + +When initializing a list, the system allocates an "initial capacity," which might exceed the actual need; moreover, the expansion mechanism usually increases capacity by a specific factor (like doubling), which may also exceed the actual need. Therefore, **the array-based stack might waste some space**. + +However, since linked list nodes require extra space for storing pointers, **the space occupied by linked list nodes is relatively larger**. + +In summary, we cannot simply determine which implementation is more memory-efficient. It requires analysis based on specific circumstances. + +## Typical Applications of Stack + +- **Back and forward in browsers, undo and redo in software**. Every time we open a new webpage, the browser pushes the previous page onto the stack, allowing us to go back to the previous page through the back operation, which is essentially a pop operation. To support both back and forward, two stacks are needed to work together. +- **Memory management in programs**. Each time a function is called, the system adds a stack frame at the top of the stack to record the function's context information. In recursive functions, the downward recursion phase keeps pushing onto the stack, while the upward backtracking phase keeps popping from the stack. diff --git a/docs-en/chapter_stack_and_queue/summary.md b/docs-en/chapter_stack_and_queue/summary.md new file mode 100644 index 000000000..706434032 --- /dev/null +++ b/docs-en/chapter_stack_and_queue/summary.md @@ -0,0 +1,31 @@ +# Summary + +### Key Review + +- A stack is a data structure that follows the Last-In-First-Out (LIFO) principle and can be implemented using either arrays or linked lists. +- In terms of time efficiency, the array implementation of a stack has higher average efficiency, but during expansion, the time complexity for a single push operation can degrade to $O(n)$. In contrast, the linked list implementation of a stack offers more stable efficiency. +- Regarding space efficiency, the array implementation of a stack may lead to some level of space wastage. However, it's important to note that the memory space occupied by nodes in a linked list is generally larger than that for elements in an array. +- A queue is a data structure that follows the First-In-First-Out (FIFO) principle, and it can also be implemented using either arrays or linked lists. The conclusions regarding time and space efficiency for queues are similar to those for stacks. +- A double-ended queue is a more flexible type of queue that allows adding and removing elements from both ends. + +### Q & A + +**Q**: Is the browser's forward and backward functionality implemented with a doubly linked list? + +The forward and backward functionality of a browser fundamentally represents the "stack" concept. When a user visits a new page, it is added to the top of the stack; when they click the back button, the page is popped from the top. A double-ended queue can conveniently implement some additional operations, as mentioned in the "Double-Ended Queue" section. + +**Q**: After popping from a stack, is it necessary to free the memory of the popped node? + +If the popped node will still be used later, it's not necessary to free its memory. In languages like Java and Python that have automatic garbage collection, manual memory release isn't required; in C and C++, manual memory release is necessary if the node will no longer be used. + +**Q**: A double-ended queue seems like two stacks joined together. What are its uses? + +A double-ended queue is essentially a combination of a stack and a queue, or like two stacks joined together. It exhibits both stack and queue logic, therefore enabling the implementation of all applications of stacks and queues with added flexibility. + +**Q**: How exactly are undo and redo implemented? + +Undo and redo are implemented using two stacks: Stack A for undo and Stack B for redo. + +1. Each time a user performs an operation, it is pushed onto Stack A, and Stack B is cleared. +2. When the user executes an "undo", the most recent operation is popped from Stack A and pushed onto Stack B. +3. When the user executes a "redo", the most recent operation is popped from Stack B and pushed back onto Stack A. diff --git a/docs/chapter_stack_and_queue/deque.md b/docs/chapter_stack_and_queue/deque.md index 5701ff548..7ba4bc38a 100644 --- a/docs/chapter_stack_and_queue/deque.md +++ b/docs/chapter_stack_and_queue/deque.md @@ -209,28 +209,21 @@ // 请注意,由于是数组,unshift() 方法的时间复杂度为 O(n) deque.unshift(3); deque.unshift(1); - console.log("双向队列 deque = ", deque); /* 访问元素 */ const peekFirst = deque[0]; - console.log("队首元素 peekFirst = " + peekFirst); const peekLast = deque[deque.length - 1]; - console.log("队尾元素 peekLast = " + peekLast); /* 元素出队 */ // 请注意,由于是数组,shift() 方法的时间复杂度为 O(n) const popFront = deque.shift(); - console.log("队首出队元素 popFront = " + popFront + ",队首出队后 deque = " + deque); const popBack = deque.pop(); - console.log("队尾出队元素 popBack = " + popBack + ",队尾出队后 deque = " + deque); /* 获取双向队列的长度 */ const size = deque.length; - console.log("双向队列长度 size = " + size); /* 判断双向队列是否为空 */ const isEmpty = size === 0; - console.log("双向队列是否为空 = " + isEmpty); ``` === "TS" @@ -247,28 +240,21 @@ // 请注意,由于是数组,unshift() 方法的时间复杂度为 O(n) deque.unshift(3); deque.unshift(1); - console.log("双向队列 deque = ", deque); /* 访问元素 */ const peekFirst: number = deque[0]; - console.log("队首元素 peekFirst = " + peekFirst); const peekLast: number = deque[deque.length - 1]; - console.log("队尾元素 peekLast = " + peekLast); /* 元素出队 */ // 请注意,由于是数组,shift() 方法的时间复杂度为 O(n) const popFront: number = deque.shift() as number; - console.log("队首出队元素 popFront = " + popFront + ",队首出队后 deque = " + deque); const popBack: number = deque.pop() as number; - console.log("队尾出队元素 popBack = " + popBack + ",队尾出队后 deque = " + deque); /* 获取双向队列的长度 */ const size: number = deque.length; - console.log("双向队列长度 size = " + size); /* 判断双向队列是否为空 */ const isEmpty: boolean = size === 0; - console.log("双向队列是否为空 = " + isEmpty); ``` === "Dart" diff --git a/docs/chapter_stack_and_queue/stack.md b/docs/chapter_stack_and_queue/stack.md index 0912ee780..b7e1485f6 100755 --- a/docs/chapter_stack_and_queue/stack.md +++ b/docs/chapter_stack_and_queue/stack.md @@ -186,7 +186,7 @@ ```javascript title="stack.js" /* 初始化栈 */ - // Javascript 没有内置的栈类,可以把 Array 当作栈来使用 + // JavaScript 没有内置的栈类,可以把 Array 当作栈来使用 const stack = []; /* 元素入栈 */ @@ -213,7 +213,7 @@ ```typescript title="stack.ts" /* 初始化栈 */ - // Typescript 没有内置的栈类,可以把 Array 当作栈来使用 + // TypeScript 没有内置的栈类,可以把 Array 当作栈来使用 const stack: number[] = []; /* 元素入栈 */