{"id":15308,"date":"2026-05-08T14:35:21","date_gmt":"2026-05-08T09:05:21","guid":{"rendered":"https:\/\/utho.com\/blog\/?p=15308"},"modified":"2026-05-08T14:47:06","modified_gmt":"2026-05-08T09:17:06","slug":"what-is-c-programming","status":"publish","type":"post","link":"https:\/\/utho.com\/blog\/what-is-c-programming\/","title":{"rendered":"What is C Programming? Features, Uses &amp; How It Works"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">C is a very powerful programming language. It was created by Dennis Ritchie at Bell Labs in the early 1970s. It is fast and works very close to computer hardware. It was first used to build the UNIX operating system. Even today it is used in many important systems like operating systems, embedded devices and software tools.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>What is C Programming A Simple Overview ?<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Have you ever thought about how the software inside your computer or phone really works? Or how a car engine system can read many sensor signals and react in real time. Most of these systems use a language called C.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">C programming is one of the most basic and important programming languages. It helped build the foundation of modern computers. Many big systems like operating systems databases and security tools are written using C. Even after many years it is still one of the most used languages in the world.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">C is very important because it is fast and gives direct control over the computer. This means programmers can control memory and system resources in a very detailed way. That is why it is used in places where speed and performance matter a lot.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This guide helps you understand C programming in a simple way. It explains where it came from how it works and why it is still useful today. It also helps beginners understand how programming starts at the basic level.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you are new to coding C is a very good language to start with. It teaches you how computers think and work from the inside. Once you understand C other programming languages become much easier to learn.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>What is C Programming ?<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">C Programming is a simple and powerful programming language. It is used to build system software like operating systems firmware and many applications. It was created by Dennis Ritchie in the 1970s at Bell Labs. C gives direct control over computer memory and hardware using simple rules and keywords.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Over time C became one of the most important programming languages in the world. Many modern languages like C plus plus C sharp Java, Python Go and Rust are influenced by C. When you learn C you also start to understand how computers really work inside. You learn how memory works, how data is stored and how systems manage resources.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">C is called a middle level language. This means it is between very low level machine language and high level languages like Python. Low level languages are very hard for humans to read and high level languages hide many details. C is in the middle so it is easier to read but still gives control over the system.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This balance of simplicity and control is why C is still used even after many years. It helps programmers write clear code while still working very close to the computer system.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>The Evolution of C Programming ?<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The history of C Programming started in the early 1970s at Bell Laboratories in the United States. At that time most system software was written in assembly language. Assembly language was very close to hardware and it worked only on specific machines. Because of this it was very hard to move software from one computer to another.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dennis Ritchie and Brian Kernighan wanted to fix this problem. They wanted to create a language that was fast like assembly but also easy to use on different computers. They improved an older language called B and then created C between 1969 and 1973.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">One of the biggest success stories of C was when the UNIX operating system was rewritten using it. Before this UNIX was written in assembly language. After rewriting it in C it proved that a high level language could still be fast and powerful enough to run an operating system. This was a very important moment in computer history.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In 1978 a famous book called The C Programming Language was published by Kernighan and Ritchie. This book helped many programmers learn C and it became a main guide for the language. Later in 1989 a standard version of C was created so that programs could work the same on different computers. More updates came later but the main idea of C stayed the same.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Even today C is still used in many important systems. It is trusted because it is fast, simple and very close to how computers really work.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>How C Programming Works Step by Step ?<\/strong><\/h2>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1672\" height=\"1061\" src=\"https:\/\/utho.com\/blog\/wp-content\/uploads\/image-5.jpeg\" alt=\"How C Programming Works Step by Step ?\" class=\"wp-image-15310\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Understanding how C works internally is what separates developers who just write C from those who truly understand it. C does not run through an interpreter or a virtual machine. It follows a precise compilation pipeline that transforms your source code into a binary that the CPU executes directly. Here is exactly how that process works.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 1 \u2014 Writing the Source Code<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">You write C code in plain text files saved with a .c extension. This is your human-readable source code. It contains all your logic, functions, variables, and instructions written using C syntax.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ hello.c \u2014 your source file<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">#include &lt;stdio.h><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">int main() {<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0printf(&#8220;Hello from C!\\n&#8221;);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0return 0;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">At this stage, the file is just text. The computer cannot run it yet. It needs to be transformed into machine instructions first.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 2 \u2014 Preprocessing<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Before actual compilation starts, the C preprocessor runs first. It scans your source file looking for preprocessor directives \u2014 lines that start with #. It processes all of these before the compiler sees the code.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The most common directive is #include, which pulls in the contents of a header file. When you write #include &lt;stdio.h>, the preprocessor replaces that line with the entire content of the stdio.h header file \u2014 which contains declarations for functions like printf().<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">#define creates macros \u2014 text substitutions that the preprocessor replaces before compilation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">#include &lt;stdio.h><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ Preprocessor macro \u2014 replaced before compilation<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">#define MAX_SIZE 100<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">#define SQUARE(x) ((x) * (x))<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">#define PI 3.14159<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">int main() {<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0printf(&#8220;Max size: %d\\n&#8221;, MAX_SIZE);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0printf(&#8220;Square of 7: %d\\n&#8221;, SQUARE(7));<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0printf(&#8220;PI value: %.5f\\n&#8221;, PI);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0printf(&#8220;Area of circle (r=5): %.2f\\n&#8221;, PI * SQUARE(5));<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0return 0;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Output:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Max size: 100<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Square of 7: 49<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">PI value: 3.14159<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Area of circle (r=5): 78.54<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">After preprocessing, all macros are expanded and all #include directives are replaced. The preprocessor produces a modified version of your source file that the compiler then receives.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 3 \u2014 Compilation<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The compiler takes your code after preprocessing and changes it into assembly language. Assembly language is a simple form of instructions that the computer can understand. It depends on the type of processor like x86 or ARM.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is also the stage where the compiler checks your code for mistakes. It looks for syntax errors and other problems. If you forget a semicolon or use a variable that is not defined the compiler will show an error at this stage.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The compiler also tries to make your program better and faster. It can improve the code by removing extra steps combining small functions and changing the order of instructions. These improvements help the program run more efficiently on the computer.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Compile command:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">gcc -Wall -O2 -c hello.c -o hello.o<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The -Wall flag enables all warnings. -O2 enables level-2 optimization. -c tells the compiler to produce an object file without linking.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 4 \u2014 Assembly<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The assembler takes the assembly code produced by the compiler and converts it into machine code \u2014 binary instructions (zeros and ones) that the CPU can directly understand and execute.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The output of this step is an object file (.o or .obj on Windows). Object files contain machine code but are not yet executable \u2014 they may reference functions or variables defined in other files.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 5 \u2014 Linking<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The linker is the final step. It takes one or more object files and combines them with any required libraries (like the C Standard Library) to produce a single executable binary.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If your program calls printf(), the linker connects your code to the actual implementation of printf() in the Standard Library. If you have multiple .c files in your project, the linker combines all their compiled object files into one executable.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Link command:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">gcc hello.o -o hello -lm<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The -lm flag links the math library. The output hello is the final executable binary.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 6 \u2014 Execution<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">When you run the executable, the operating system loads it into memory and hands control to the main() function. From that point, the CPU executes your instructions directly \u2014 no interpreter, no virtual machine, no translation layer.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">.\/hello<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Output:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Hello from C!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This direct execution is why C is fast. The path from your source code to the CPU is as short as possible.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Complete Compilation Pipeline Overview<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Source Code (.c)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u2193<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0Preprocessor\u00a0 \u00a0 \u00a0 \u00a0 \u2190 Handles #include, #define, macros<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u2193<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Preprocessed Code<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u2193<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0Compiler \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2190 Translates to assembly, checks syntax, optimizes<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u2193<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0Assembly Code<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u2193<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0Assembler\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2190 Converts assembly to binary machine code<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u2193<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0Object File (.o)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u2193<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0Linker\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2190 Combines object files + libraries<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u2193<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Executable Binary \u00a0 \u00a0 \u2190 Runs directly on CPU<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Understanding this pipeline helps you debug compilation errors, understand optimization flags, and know exactly what happens when your C program runs.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Features of C Programming<\/strong><\/h2>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1672\" height=\"1061\" src=\"https:\/\/utho.com\/blog\/wp-content\/uploads\/image-5.jpeg\" alt=\"Features of C Programming\" class=\"wp-image-15311\" srcset=\"https:\/\/utho.com\/blog\/wp-content\/uploads\/image-5.jpeg 1672w, https:\/\/utho.com\/blog\/wp-content\/uploads\/image-5-300x190.jpeg 300w, https:\/\/utho.com\/blog\/wp-content\/uploads\/image-5-767x487.jpeg 767w, https:\/\/utho.com\/blog\/wp-content\/uploads\/image-5-1024x650.jpeg 1024w, https:\/\/utho.com\/blog\/wp-content\/uploads\/image-5-1536x975.jpeg 1536w\" sizes=\"auto, (max-width: 1672px) 100vw, 1672px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">C Programming has many strong features that make it very popular even today in 2026 and beyond. These features are not just ideas they are real reasons why C is used in operating systems embedded systems databases and fast software all over the world.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>1. Simplicity and Clean syntax<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">C has a very simple structure. It uses only 32 main keywords. Because of this it is easy to learn for beginners and also powerful for experts. Every line of code in C has a clear meaning. There are no hidden actions and nothing runs in the background without the programmer knowing.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">#include &lt;stdio.h><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">int main() {<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0int x = 10;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0int y = 20;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0int sum = x + y;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0printf(&#8220;Sum of %d and %d is %d\\n&#8221;, x, y, sum);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0return 0;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Output:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sum of 10 and 20 is 30<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Even this simple program shows C&#8217;s clarity \u2014 every line has a direct purpose with no unnecessary syntax surrounding it.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>2. Portability Across Platforms<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">A C program written on one machine can be compiled and run on a completely different machine, operating system, or hardware architecture with minimal or no changes. C compilers exist for virtually every platform \u2014 x86, ARM, RISC-V, MIPS, PowerPC, and more.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">#include &lt;stdio.h><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ Runs identically on Windows, Linux, macOS, and embedded ARM<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">int main() {<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0printf(&#8220;Portable C program!\\n&#8221;);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0printf(&#8220;int size:\u00a0 \u00a0 %lu bytes\\n&#8221;, sizeof(int));<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0printf(&#8220;long size: \u00a0 %lu bytes\\n&#8221;, sizeof(long));<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0printf(&#8220;double size: %lu bytes\\n&#8221;, sizeof(double));<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0return 0;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Output:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Portable C program!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">int size:\u00a0 \u00a0 4 bytes<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">long size: \u00a0 8 bytes<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">double size: 8 bytes<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>3. High Performance and Speed<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">C compiles directly to native machine code. There is no interpreter, no virtual machine, no garbage collector. The binary runs directly on the CPU with zero runtime overhead \u2014 which is why C is used wherever performance is non-negotiable.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">#include &lt;stdio.h><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">#include &lt;time.h><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">int main() {<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0clock_t start = clock();<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0long long sum = 0;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0for (long long i = 1; i &lt;= 1000000000LL; i++) {<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0sum += i;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0double time_taken = (double)(clock() &#8211; start) \/ CLOCKS_PER_SEC;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0printf(&#8220;Sum: %lld\\n&#8221;, sum);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0printf(&#8220;Time: %.3f seconds\\n&#8221;, time_taken);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0return 0;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Output:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sum: 500000000500000000<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Time: 0.387 seconds<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Summing one billion numbers in under 0.4 seconds \u2014 this is native machine code performance.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>4. Modularity Through Functions<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">C supports structured programming by organizing code into functions. Each function does one thing. This makes programs easier to read, test, debug, and maintain. Large projects like the Linux kernel contain hundreds of thousands of functions.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">#include &lt;stdio.h><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">int findMax(int a, int b, int c) {<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0int max = a;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0if (b > max) max = b;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0if (c > max) max = c;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0return max;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">float findAverage(int a, int b, int c) {<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0return (float)(a + b + c) \/ 3.0f;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">int isPrime(int n) {<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0if (n &lt; 2) return 0;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0for (int i = 2; i * i &lt;= n; i++)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if (n % i == 0) return 0;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0return 1;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">int main() {<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0int x = 45, y = 82, z = 63;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0printf(&#8220;Max: %d\\n&#8221;, findMax(x, y, z));<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0printf(&#8220;Average: %.2f\\n&#8221;, findAverage(x, y, z));<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0printf(&#8220;Is 82 prime? %s\\n&#8221;, isPrime(82) ? &#8220;Yes&#8221; : &#8220;No&#8221;);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0printf(&#8220;Is 83 prime? %s\\n&#8221;, isPrime(83) ? &#8220;Yes&#8221; : &#8220;No&#8221;);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0return 0;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Output:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Max: 82<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Average: 63.33<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Is 82 prime? No<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Is 83 prime? Yes<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>5. Rich Standard Library<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">C provides a comprehensive Standard Library through header files. These cover I\/O operations, string manipulation, mathematical functions, memory management, file handling, and more \u2014 all without external dependencies.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">#include &lt;stdio.h><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">#include &lt;string.h><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">#include &lt;math.h><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">#include &lt;stdlib.h><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">int main() {<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0\/\/ String functions<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0char text[] = &#8220;C Programming&#8221;;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0printf(&#8220;String: %s\\n&#8221;, text);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0printf(&#8220;Length: %lu\\n&#8221;, strlen(text));<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0\/\/ Math functions<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0printf(&#8220;\\nsqrt(225) = %.0f\\n&#8221;, sqrt(225));<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0printf(&#8220;pow(2,10) = %.0f\\n&#8221;, pow(2, 10));<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0printf(&#8220;ceil(4.2) = %.0f\\n&#8221;, ceil(4.2));<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0printf(&#8220;floor(4.9) = %.0f\\n&#8221;, floor(4.9));<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0\/\/ Random number<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0srand(42);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0printf(&#8220;\\nRandom (1-100): %d\\n&#8221;, (rand() % 100) + 1);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0return 0;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Output:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">String: C Programming<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Length: 13<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">sqrt(225) = 15<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">pow(2,10) = 1024<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">ceil(4.2) = 5<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">floor(4.9) = 4<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Random (1-100): 37<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>6. Manual Memory Management<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">C gives programmers complete, direct control over memory through malloc(), calloc(), realloc(), and free(). You decide exactly when memory is allocated and when it is released \u2014 there is no garbage collector making those decisions for you.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">#include &lt;stdio.h><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">#include &lt;stdlib.h><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">int main() {<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0int n = 5;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0int *arr = (int *)malloc(n * sizeof(int));<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0if (arr == NULL) {<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0printf(&#8220;Memory allocation failed!\\n&#8221;);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return 1;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0\/\/ Store squares<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0for (int i = 0; i &lt; n; i++)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0arr[i] = (i + 1) * (i + 1);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0printf(&#8220;Squares stored in dynamic memory:\\n&#8221;);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0for (int i = 0; i &lt; n; i++)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0printf(&#8220;arr[%d] = %d\\n&#8221;, i, arr[i]);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0free(arr);\u00a0 \/\/ Always free what you allocate<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0printf(&#8220;Memory freed.\\n&#8221;);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0return 0;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Output:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Squares stored in dynamic memory:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">arr[0] = 1<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">arr[1] = 4<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">arr[2] = 9<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">arr[3] = 16<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">arr[4] = 25<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Memory freed.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>7. Pointers \u2014 Direct Memory Access<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Pointers store memory addresses. Through pointers, C gives direct access to memory, enabling dynamic data structures, efficient function parameter passing, and hardware-level programming that is simply not possible in most other languages.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">#include &lt;stdio.h><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">void swap(int *a, int *b) {<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0int temp = *a;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0*a = *b;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0*b = temp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">int main() {<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0int x = 100, y = 200;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0printf(&#8220;Before: x = %d, y = %d\\n&#8221;, x, y);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0swap(&amp;x, &amp;y);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0printf(&#8220;After:\u00a0 x = %d, y = %d\\n&#8221;, x, y);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0\/\/ Pointer arithmetic<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0int numbers[] = {10, 20, 30, 40, 50};<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0int *ptr = numbers;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0printf(&#8220;\\nTraversing array with pointer:\\n&#8221;);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0for (int i = 0; i &lt; 5; i++) {<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0printf(&#8220;*(ptr+%d) = %d\\n&#8221;, i, *(ptr + i));<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0return 0;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Output:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Before: x = 100, y = 200<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">After:\u00a0 x = 200, y = 100<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Traversing array with pointer:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">*(ptr+0) = 10<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">*(ptr+1) = 20<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">*(ptr+2) = 30<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">*(ptr+3) = 40<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">*(ptr+4) = 50<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>8. Direct Hardware Access<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Through pointers and memory-mapped I\/O, C allows direct interaction with hardware components \u2014 processors, memory registers, GPIO pins, communication buses, and peripherals. This is why C dominates embedded systems development.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ Hardware register access in embedded C<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ (Conceptual \u2014 real addresses depend on the microcontroller)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">#include &lt;stdio.h><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ Simulating memory-mapped hardware registers<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">unsigned int GPIO_OUTPUT = 0x00000000;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">void setPinHigh(int pin) {<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0GPIO_OUTPUT |= (1 &lt;&lt; pin);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0printf(&#8220;Pin %d set HIGH | Register: 0x%08X\\n&#8221;, pin, GPIO_OUTPUT);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">void setPinLow(int pin) {<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0GPIO_OUTPUT &amp;= ~(1 &lt;&lt; pin);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0printf(&#8220;Pin %d set LOW\u00a0 | Register: 0x%08X\\n&#8221;, pin, GPIO_OUTPUT);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">int main() {<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0printf(&#8220;Hardware GPIO Control Simulation\\n\\n&#8221;);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0setPinHigh(0);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0setPinHigh(3);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0setPinHigh(7);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0setPinLow(3);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0return 0;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Output:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Hardware GPIO Control Simulation<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pin 0 set HIGH | Register: 0x00000001<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pin 3 set HIGH | Register: 0x00000009<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pin 7 set HIGH | Register: 0x00000089<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pin 3 set LOW\u00a0 | Register: 0x00000081<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Applications and Uses of C Programming<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">C Programming is very powerful and flexible. It is used to build very important software systems. These systems are used every day by billions of people in 2026.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>1.<\/strong> <strong>Operating Systems Development<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><br>Operating systems control computer hardware and run all apps. They also manage files and system tasks. C is used to build almost all major operating systems.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">UNIX was the first operating system rewritten using C. Linux is also mostly written in C. Linux is used in Android phones web servers big computers and cloud systems. Parts of Windows and macOS are also built using C and C plus plus.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">#include &lt;stdio.h><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">#include &lt;unistd.h><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">#include &lt;sys\/types.h><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">int main() {<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0\/\/ Direct OS interaction through system calls<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0pid_t pid\u00a0 = getpid();<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0pid_t ppid = getppid();<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0uid_t uid\u00a0 = getuid();<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0printf(&#8220;Process ID \u00a0 \u00a0 \u00a0 : %d\\n&#8221;, pid);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0printf(&#8220;Parent Process ID: %d\\n&#8221;, ppid);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0printf(&#8220;User ID\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 : %d\\n&#8221;, uid);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0return 0;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Output:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Process ID \u00a0 \u00a0 \u00a0 : 14823<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Parent Process ID: 14820<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">User ID\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 : 1000<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>2. Embedded Systems and Microcontrollers<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Embedded systems are inside your car&#8217;s engine control unit, your smartwatch, your WiFi router, your medical devices, and industrial controllers. C dominates this domain because it produces compact binary code, uses minimal RAM, and gives direct hardware access.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">#include &lt;stdio.h><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ Embedded LED blink simulation<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">#define LED_PIN 13<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">void digitalWrite(int pin, int state) {<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0printf(&#8220;Pin %d -> %s\\n&#8221;, pin, state ? &#8220;HIGH (LED ON)&#8221; : &#8220;LOW (LED OFF)&#8221;);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">void delay_ms(int ms) {<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0printf(&#8220;[Delay: %d ms]\\n&#8221;, ms);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">int main() {<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0printf(&#8220;Embedded LED Blink \u2014 3 cycles\\n\\n&#8221;);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0for (int i = 0; i &lt; 3; i++) {<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0digitalWrite(LED_PIN, 1);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0delay_ms(500);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0digitalWrite(LED_PIN, 0);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0delay_ms(500);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0return 0;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Output:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Embedded LED Blink \u2014 3 cycles<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pin 13 -> HIGH (LED ON)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">[Delay: 500 ms]<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pin 13 -> LOW (LED OFF)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">[Delay: 500 ms]<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8230;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>3. Database Management Systems<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">SQLite, the most widely deployed database on the planet, is written entirely in C. PostgreSQL, MySQL, and Redis are also C. Databases handle millions of queries per second and need predictable, high-speed performance \u2014 exactly what C delivers.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">#include &lt;stdio.h><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">#include &lt;string.h><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">#define MAX 5<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">struct Record { char key[20]; char value[50]; };<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">struct Record db[MAX];<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">int count = 0;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">void insert(const char *key, const char *val) {<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0if (count &lt; MAX) {<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0strcpy(db[count].key, key);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0strcpy(db[count].value, val);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0count++;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0printf(&#8220;Inserted: %-15s -> %s\\n&#8221;, key, val);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">void query(const char *key) {<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0for (int i = 0; i &lt; count; i++) {<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if (strcmp(db[i].key, key) == 0) {<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0printf(&#8220;Found \u00a0 : %-15s -> %s\\n&#8221;, key, db[i].value);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0printf(&#8220;Not found: %s\\n&#8221;, key);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">int main() {<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0printf(&#8220;=== Simple Database Engine ===\\n\\n&#8221;);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0insert(&#8220;name&#8221;, \u00a0 \u00a0 &#8220;Dennis Ritchie&#8221;);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0insert(&#8220;language&#8221;, &#8220;C&#8221;);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0insert(&#8220;year&#8221;, \u00a0 \u00a0 &#8220;1972&#8221;);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0insert(&#8220;lab&#8221;,\u00a0 \u00a0 \u00a0 &#8220;Bell Labs&#8221;);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0printf(&#8220;\\n=== Queries ===\\n&#8221;);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0query(&#8220;language&#8221;);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0query(&#8220;year&#8221;);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0query(&#8220;os&#8221;);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0return 0;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Output:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">=== Simple Database Engine ===<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Inserted: name\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 -> Dennis Ritchie<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Inserted: language\u00a0 \u00a0 \u00a0 \u00a0 -> C<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Inserted: year\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 -> 1972<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Inserted: lab \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 -> Bell Labs<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">=== Queries ===<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Found \u00a0 : language\u00a0 \u00a0 \u00a0 \u00a0 -> C<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Found \u00a0 : year\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 -> 1972<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Not found: os<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>4. Compilers and Language Interpreters<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">CPython (Python&#8217;s standard implementation) is written in C. PHP runtime, Ruby&#8217;s MRI interpreter, and Lua are all C. When you run a Python script, C code is parsing it, compiling it to bytecode, and executing it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">#include &lt;stdio.h><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ Simulated expression evaluator \u2014 like what an interpreter does<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">double evaluate(double a, char op, double b) {<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0switch (op) {<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0case &#8216;+&#8217;: return a + b;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0case &#8216;-&#8216;: return a &#8211; b;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0case &#8216;*&#8217;: return a * b;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0case &#8216;\/&#8217;: return (b != 0) ? a \/ b : 0;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0default:\u00a0 return 0;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">int main() {<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0printf(&#8220;Expression Evaluator (interpreter core)\\n\\n&#8221;);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0printf(&#8220;10 + 25\u00a0 = %.2f\\n&#8221;, evaluate(10, &#8216;+&#8217;, 25));<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0printf(&#8220;50 &#8211; 18\u00a0 = %.2f\\n&#8221;, evaluate(50, &#8216;-&#8216;, 18));<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0printf(&#8220;7\u00a0 * 8 \u00a0 = %.2f\\n&#8221;, evaluate(7,\u00a0 &#8216;*&#8217;, 8));<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0printf(&#8220;100 \/ 4\u00a0 = %.2f\\n&#8221;, evaluate(100,&#8217;\/&#8217;, 4));<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0return 0;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Output:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Expression Evaluator (interpreter core)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">10 + 25\u00a0 = 35.00<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">50 &#8211; 18\u00a0 = 32.00<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">7\u00a0 * 8 \u00a0 = 56.00<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">100 \/ 4\u00a0 = 25.00<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>5. Network Programming and Cybersecurity Tools<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Nginx (web server), OpenSSL (encryption), Wireshark (packet analysis), and Nmap (port scanning) are all written in C. Network software needs fast byte-level data handling \u2014 C does this better than any other high-level language.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">#include &lt;stdio.h><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">#include &lt;string.h><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">struct Packet {<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0int\u00a0 source_port;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0int\u00a0 dest_port;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0char protocol[10];<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0char payload[80];<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">};<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">void analyzePacket(struct Packet p) {<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0printf(&#8220;%-10s | %5d -> %d | %s\\n&#8221;,<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0p.protocol, p.source_port, p.dest_port, p.payload);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">int main() {<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0printf(&#8220;Network Packet Analyzer\\n&#8221;);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0printf(&#8220;%-10s | %12s | Payload\\n&#8221;, &#8220;Protocol&#8221;, &#8220;Port (S->D)&#8221;);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0printf(&#8220;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;\\n&#8221;);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0struct Packet packets[] = {<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{54321, 80,\u00a0 &#8220;HTTP&#8221;,\u00a0 &#8220;GET \/ HTTP\/1.1&#8221;},<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{54322, 443, &#8220;HTTPS&#8221;, &#8220;TLS ClientHello&#8221;},<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{54323, 22,\u00a0 &#8220;SSH&#8221;, \u00a0 &#8220;SSH-2.0-OpenSSH_8.9&#8221;},<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{54324, 53,\u00a0 &#8220;DNS&#8221;, \u00a0 &#8220;Query: example.com&#8221;}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0};<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0for (int i = 0; i &lt; 4; i++)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0analyzePacket(packets[i]);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0return 0;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Output:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Network Packet Analyzer<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Protocol \u00a0 |\u00a0 Port (S->D) | Payload<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">HTTP \u00a0 \u00a0 \u00a0 | 54321 -> 80\u00a0 | GET \/ HTTP\/1.1<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">HTTPS\u00a0 \u00a0 \u00a0 | 54322 -> 443 | TLS ClientHello<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">SSH\u00a0 \u00a0 \u00a0 \u00a0 | 54323 -> 22\u00a0 | SSH-2.0-OpenSSH_8.9<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">DNS\u00a0 \u00a0 \u00a0 \u00a0 | 54324 -> 53\u00a0 | Query: example.com<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>6. Game Development and Graphics Engines<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">OpenGL and Vulkan \u2014 the standard GPU rendering APIs \u2014 are C interfaces. SDL (Simple DirectMedia Layer), used in thousands of games, is written in C. Real-time game loops need consistent frame timing and zero GC pauses \u2014 both C strengths.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">#include &lt;stdio.h><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">struct GameObject { char name[20]; float x, y, speed; int health; };<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">void update(struct GameObject *obj) { obj->x += obj->speed; }<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">void render(struct GameObject obj) {<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0printf(&#8220;[%s] pos=(%.1f, %.1f) HP=%d\\n&#8221;, obj.name, obj.x, obj.y, obj.health);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">int main() {<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0struct GameObject player = {&#8220;Player&#8221;, 0.0f, 0.0f, 3.0f, 100};<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0struct GameObject enemy\u00a0 = {&#8220;Enemy&#8221;,\u00a0 80.0f,0.0f,-1.5f, 60};<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0printf(&#8220;=== Game Loop \u2014 4 Frames ===\\n\\n&#8221;);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0for (int frame = 1; frame &lt;= 4; frame++) {<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0printf(&#8220;Frame %d:\\n&#8221;, frame);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0update(&amp;player); update(&amp;enemy);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0render(player);\u00a0 render(enemy);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0printf(&#8220;\\n&#8221;);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0return 0;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Output:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">=== Game Loop \u2014 4 Frames ===<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Frame 1:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">[Player] pos=(3.0, 0.0) HP=100<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">[Enemy] pos=(78.5, 0.0) HP=60<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Frame 2:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">[Player] pos=(6.0, 0.0) HP=100<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">[Enemy] pos=(77.0, 0.0) HP=60<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8230;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>7. Artificial Intelligence and Robotics<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">TensorFlow Lite \u2014 which runs ML models on phones and embedded devices \u2014 has its core written in C and C++. Robotics control systems use C for real-time sensor processing because response time must be microseconds, not milliseconds.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">#include &lt;stdio.h><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">#include &lt;math.h><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">double relu(double x)\u00a0 \u00a0 { return x > 0 ? x : 0; }<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">double sigmoid(double x) { return 1.0 \/ (1.0 + exp(-x)); }<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">double neuron(double inputs[], double weights[], int n, double bias) {<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0double sum = bias;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0for (int i = 0; i &lt; n; i++) sum += inputs[i] * weights[i];<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0return sigmoid(sum);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">int main() {<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0printf(&#8220;Neural Network \u2014 Single Neuron\\n\\n&#8221;);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0double values[] = {-2.0, 0.0, 1.5, 3.0};<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0printf(&#8220;ReLU activations:\\n&#8221;);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0for (int i = 0; i &lt; 4; i++)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0printf(&#8221;\u00a0 relu(%.1f) = %.1f\\n&#8221;, values[i], relu(values[i]));<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0double inputs[]\u00a0 = {0.6, 0.9, 0.3};<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0double weights[] = {0.5, 0.7, 0.2};<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0double output = neuron(inputs, weights, 3, -0.1);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0printf(&#8220;\\nNeuron output: %.4f\\n&#8221;, output);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0printf(&#8220;Prediction\u00a0 : %s\\n&#8221;, output > 0.5 ? &#8220;Class 1&#8221; : &#8220;Class 0&#8221;);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0return 0;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Output:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Neural Network \u2014 Single Neuron<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">ReLU activations:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0relu(-2.0) = 0.0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0relu(0.0) = 0.0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0relu(1.5) = 1.5<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0relu(3.0) = 3.0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Neuron output: 0.7109<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Prediction\u00a0 : Class 1<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Elements of a C Program With Code Examples<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A C program is composed of several key elements that work together to perform tasks. Understanding these elements is essential for writing correct and effective C code.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>1. Header Files<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Header files contain declarations of functions and macros. They are included at the beginning of the program using #include.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">#include &lt;stdio.h>\u00a0 \u00a0 \/\/ printf, scanf, file I\/O<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">#include &lt;stdlib.h> \u00a0 \/\/ malloc, free, exit<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">#include &lt;string.h> \u00a0 \/\/ strcpy, strlen, strcmp<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">#include &lt;math.h> \u00a0 \u00a0 \/\/ sqrt, pow, sin, cos<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>2. The Main Function<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Every C program starts execution from main(). It returns an integer \u2014 0 for success, non-zero for error.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">#include &lt;stdio.h><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">int main() {<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0printf(&#8220;C program starts here.\\n&#8221;);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0return 0;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>3. Variables and Data Types<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">#include &lt;stdio.h><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">int main() {<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0int\u00a0 \u00a0 age \u00a0 \u00a0 \u00a0 = 28;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0float\u00a0 price \u00a0 \u00a0 = 99.99f;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0double pi\u00a0 \u00a0 \u00a0 \u00a0 = 3.14159265359;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0char \u00a0 initial \u00a0 = &#8216;D&#8217;;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0printf(&#8220;Age: %d | Price: %.2f | Pi: %.5f | Initial: %c\\n&#8221;,<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0age, price, pi, initial);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0return 0;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Output:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Age: 28 | Price: 99.99 | Pi: 3.14159 | Initial: D<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>4. Operators<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">#include &lt;stdio.h><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">int main() {<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0int a = 18, b = 5;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0printf(&#8220;+ : %d\\n- : %d\\n* : %d\\n\/ : %d\\n%% : %d\\n&#8221;,<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0a+b, a-b, a*b, a\/b, a%b);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0printf(&#8220;a > b : %d\\na == b: %d\\n&#8221;, a>b, a==b);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0return 0;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Output:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">+ : 23<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8211; : 13<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">* : 90<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/ : 3<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">% : 3<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">a > b : 1<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">a == b: 0<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>5. Control Statements<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">#include &lt;stdio.h><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">int main() {<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0int score = 78;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0if\u00a0 \u00a0 \u00a0 (score >= 90) printf(&#8220;Grade: A\\n&#8221;);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0else if (score >= 75) printf(&#8220;Grade: B\\n&#8221;);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0else if (score >= 60) printf(&#8220;Grade: C\\n&#8221;);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0else\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 printf(&#8220;Grade: F\\n&#8221;);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0return 0;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Output:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Grade: B<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>6. Loops<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">#include &lt;stdio.h><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">int main() {<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0\/\/ Factorial using for loop<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0int n = 7;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0long factorial = 1;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0for (int i = 1; i &lt;= n; i++) factorial *= i;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0printf(&#8220;Factorial of %d = %ld\\n&#8221;, n, factorial);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0\/\/ Sum using while loop<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0int sum = 0, i = 1;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0while (i &lt;= 50) { sum += i; i++; }<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0printf(&#8220;Sum of 1 to 50 = %d\\n&#8221;, sum);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0return 0;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Output:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Factorial of 7 = 5040<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sum of 1 to 50 = 1275<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>7. Functions<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">#include &lt;stdio.h><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">long fibonacci(int n) {<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0if (n &lt;= 1) return n;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0return fibonacci(n-1) + fibonacci(n-2);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">int main() {<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0printf(&#8220;Fibonacci sequence:\\n&#8221;);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0for (int i = 0; i &lt; 10; i++)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0printf(&#8220;F(%d) = %ld\\n&#8221;, i, fibonacci(i));<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0return 0;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Output:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Fibonacci sequence:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">F(0) = 0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">F(1) = 1<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">F(2) = 1<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">F(3) = 2<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">F(4) = 3<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">F(5) = 5<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">F(6) = 8<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">F(7) = 13<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">F(8) = 21<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">F(9) = 34<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>8. Pointers<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Pointers store memory addresses and enable dynamic memory allocation, efficient function calls, and hardware-level programming. Mastery of pointers separates a competent C developer from a truly skilled one.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">#include &lt;stdio.h><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">int main() {<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0int value = 42;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0int *ptr\u00a0 = &amp;value;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0printf(&#8220;Value\u00a0 \u00a0 \u00a0 \u00a0 : %d\\n&#8221;, value);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0printf(&#8220;Address\u00a0 \u00a0 \u00a0 : %p\\n&#8221;, (void*)ptr);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0printf(&#8220;Via pointer\u00a0 : %d\\n&#8221;, *ptr);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0*ptr = 999;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0printf(&#8220;After change : %d\\n&#8221;, value);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0return 0;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Output:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Value\u00a0 \u00a0 \u00a0 \u00a0 : 42<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Address\u00a0 \u00a0 \u00a0 : 0x7ffd3c2a1b4c<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Via pointer\u00a0 : 42<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">After change : 999<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Advantages and Disadvantages of C Programming<\/strong><\/h2>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1672\" height=\"1061\" src=\"https:\/\/utho.com\/blog\/wp-content\/uploads\/image-6.jpeg\" alt=\"Advantages and Disadvantages of C Programming\" class=\"wp-image-15312\" srcset=\"https:\/\/utho.com\/blog\/wp-content\/uploads\/image-6.jpeg 1672w, https:\/\/utho.com\/blog\/wp-content\/uploads\/image-6-300x190.jpeg 300w, https:\/\/utho.com\/blog\/wp-content\/uploads\/image-6-767x487.jpeg 767w, https:\/\/utho.com\/blog\/wp-content\/uploads\/image-6-1024x650.jpeg 1024w, https:\/\/utho.com\/blog\/wp-content\/uploads\/image-6-1536x975.jpeg 1536w\" sizes=\"auto, (max-width: 1672px) 100vw, 1672px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Advantages<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>a) Structured Language<\/strong><strong><br><\/strong> C helps you write programs in a clear and organized way using functions. This makes code easier to read and fix. Big programs can be split into small parts which makes them easier to manage.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>b) Wide Adoption and Ecosystem<\/strong><strong><br><\/strong> C has been used for many years so it has many tools and support. There are compiler debuggers, libraries and guides available. This makes building and fixing programs easier for developers.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>c) Direct Hardware Control<\/strong><strong><br><\/strong> C can directly control computer hardware using pointers and memory access. This is very useful for system software drivers and embedded devices where full control is needed.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>d) Foundation for Other Languages<\/strong><strong><br><\/strong> Learning C helps you understand many other languages like C plus Java Python Go and Rust. It builds strong basic knowledge of how programming really works.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>e) Open Source and Free<\/strong><strong><br><\/strong> Many C tools and libraries are free to use. Developers and companies can use them without paying money. This makes C accessible for everyone.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>f) Predictable Performance<\/strong><strong><br><\/strong> C runs very fast because it converts directly into machine code. There is no extra delay or background processing. This makes it very good for real time systems.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Disadvantages<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>a) Complex for Beginners<\/strong><strong><br><\/strong> C can be hard for new learners. Small mistakes in code can cause crashes or errors. Things like pointers and memory need careful handling.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>b) No Object Oriented Features<\/strong><strong><br><\/strong><strong> <\/strong>C does not have features like classes or objects. So for big applications developers often use other languages like C plus plus.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>c) Manual Memory Management<\/strong><strong><br><\/strong> In C you must handle memory yourself. If you make mistakes it can cause memory leaks or crashes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>d) Limited Abstraction<\/strong><strong><br><\/strong> Simple tasks may need more code in C compared to languages like Python. This makes development slower for some applications.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>e) No Built In Exception Handling<\/strong><strong><br><\/strong> C does not have automatic error handling. Developers must manually check errors using conditions which can make code longer.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Conclusion<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">C Programming is a strong and long lasting language. It is used in many important systems like operating systems, embedded devices and network tools. It is fast, efficient and gives full control over hardware.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Learning C helps you understand how computers work from the inside. It teaches memory pointers and system level thinking. These skills help you learn other programming languages more easily.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Even in 2026 C is still very important and widely used in real world systems.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>C is a very powerful programming language. It was created by Dennis Ritchie at Bell Labs in the early 1970s. It is fast and works very close to computer hardware. It was first used to build the UNIX operating system. Even today it is used in many important systems like operating systems, embedded devices and [&hellip;]<\/p>\n","protected":false},"author":21,"featured_media":15314,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_crdt_document":"{\"document\":\"AAAH+qXf5QeRR6dJGlQcsgEBAQgASAIISpwKAQEIArQB9gFIALoIAQEIAkJIAKAJAQEIAkJIALgHAQEIAkJIAIQHAQEIAkJIAKoGAQEIAkJIAJQBAQEIAEgOAgEBCAJKADoBAQgCSgCKAQEBCAJKAJoBAQEIAkoAgAEBAQgCSgCaAQEBCAJKAKYBAQEIAkoAqAEBAQgCStYJuAkBAQgCQkgAoAEBAQgCQkgAqgkBAQgCQkgArAoBAQgCQkgAgAoBAQgCQkgAsgUBAQgCQkgAsgEBAQgCQkgAqAoBAQgCQkgAhggBAQgCQkgAqAoBAQgCQkgAmgsBAQgCQkgApgQBAQgCQkgAvgEBAQgASAAQAQEIAkJIALYKAQEIAkJIALIBAQEIAkJIAJYGAQEIAkJIAIoBAQEIAihqSACAAQEBCAJCSAAoAQEIAggCKHRIALQBAQEIAjBySACSAQEBCAJCSAASAQEIAkJIAJIEAQEIAkJIAJ4BAQEIAkJIALwGAQEIArADCPoDSACuCAEBCAJCSACMAwEBCAIoakgAgAEBAQgCQkgAtgEBAQgCQkgAOAEBCAJCSACKAQEBCAJCSAA0AQEIAkJIACgBAQgCCAIodEgAhgIBAQgCCAIodEgAjgIBAQgCCAIodEgAvgEBAQgCCAIodEgArgIBAQgCMHJIAJIBAQEIAkJIABIBAQgCQkgAgAEBAQgCQkgAKgEBCAJCSAAuAQEIAkJIADIBAQgCQkgAhgEBAQgCQkgAgAYBAQgCQkgAmgEBAQgCQkgAkgcBAQgCQkgAnAcBAQgCQkgAhggBAQgCQkgAkgEBAQgCQkgAlgEBAQgCQkgAngQBAQgCQkgAlAEBAQgCQkgAggYBAQgCQkgAlgYBAQgCQkgAkgEBAQgCQkgAtAUBAQgCQkgAvgcBAQgCQkgAjAEBAQgCQkgAgAEBAQgCQkgAugIBAQgCQkgAlgEBAQgCQkgAogcBAQgCQkgAHgEBCAJCSACAAQEBCAJCSAAqAQEIAkJIAKQDAQEIAkJIAL4BAQEIAkJIADABAQgCiAHKAUgAmgEBAQgCGQAMAgwCDAIM6AFIAL4CAQEIAogBygFIAJoBAQEIAkJIADIBAQgCiAHKAUgAmgEBAQgCJBIMAgwCDAIMAgz8AUgAsAMBAQgCiAHKAUgAmgEBAQgCDE5IADYBAQgCiAHKAUgAmgEBAQgCJBIMAgwCDAIMAgz8AUgAoAMBAQgCiAHKAUgAmgEBAQgCGFpIAIgBAQEIAogBygFIAJoBAQEIAjANAAIMAgwCDAIMAgzQAkgApgMBAQgCiAHKAUgAmgEBAQgCJAwCDMABSAC8AQEBCAJCSAC8BAEBCAKCAQLGAUgApgEBAQgASAAQAQEIArYH+AdIALQJAQEIAkJIAIQJAQEIAihqSACAAQEBCAJCSAAoAQEIAjBySACWAQEBCAIwckgAlgEBAQgCMHJIAKABAQEIAggCKHRIAJwCAQEIAjBySACSAQEBCAJCSAASAQEIAkJIAIABAQEIAkJIADwBAQgCQkgAvgMBAQgCQkgAsAEBAQgCQkgAkAgBAQgCKGpIAIABAQEIAkJIAIwCAQEIAkJIACgBAQgCCAIodEgAgAIBAQgCCAIoIAwCDO4BSAC0AgEBCAIIAigkDOQBSACsAgEBCAIIAih0SACmAgEBCAIwckgAkgEBAQgCQkgAEgEBCAJCSACAAQEBCAJCSAA2AQEIAhIMAgxuSACMAQEBCAIWDGRIAIIBAQEIAkJIADgBAQgCQkgArAEBAQgCQkgArAcBAQgCKGpIAIABAQEIAiZoSAA+AQEIAkJIACgBAQgCMHJIALABAQEIAjBySACkAQEBCAIwckgApAIBAQgCBgKaAeQBSACCAgEBCAIwckgAggEBAQgCMHJIAL4CAQEIAggCKHRIALYBAQEIAggCKHRIAJYCAQEIAjBySACSAQEBCAJCSAASAQEIAkJIAIABAQEIAkJIAD4BAQgCQkgANgEBCAJCSACGAwEBCAJCSACwAQEBCAJCSAC0BwEBCAIoakgAgAEBAQgCQkgAlAEBAQgCMHJIAJgBAQEIAjAMCMYBSACwAQEBCAIwDAjGAUgAsAEBAQgCMHJIAJYBAQEIAkJIABIBAQgCQkgAoAEBAQgCMHJIAIICAQEIAkJIABIBAQgCQkgAOAEBCAIwckgArgEBAQgCMHJIAIYCAQEIAqAB4gFIAKICAQEIAjBySACSAQEBCAJCSAASAQEIAkJIACgBAQgCMHJIALYBAQEIAggCKHRIAIwCAQEIAggCKHRIAKACAQEIAggCKHRIALACAQEIAggCKHRIALACAQEIAjBySACSAQEBCAJCSAASAQEIAkJIAIABAQEIAkJIAB4BAQgCQkgALAEBCAJCSAAuAQEIAkJIADABAQgCQkgAogEBAQgCQkgAhAcBAQgCKGpIAIABAQEIAipsSACCAQEBCAImaEgAPgEBCAIqbEgAggEBAQgCQkgAKAEBCAIwckgApgEBAQgCMHJIALwBAQEIAggCKHRIALoBAQEIAggCKHRIAIwCAQEIAjBySACiAQEBCAIIAih0SACUAgEBCAIIAih0SACSAgEBCAIIAih0SACQAgEBCAIIAih0SACUAgEBCAIwckgAoAEBAQgCBgIqdEgAlAEBAQgCCAIodEgAqgIBAQgCMHJIAJIBAQEIAkJIABIBAQgCQkgAgAEBAQgCQkgAOgEBCAJCSAAkAQEIAkJIACwBAQgCQkgAMAEBCAJCSAAqAQEIAkJIACwBAQgCQkgANAEBCAJCSACoAQEBCAJCSACuBwEBCAIoakgAgAEBAQgCKmxIAIIBAQEIAkJIACgBAQgCMHJIAJQBAQEIAjBySACUAgEBCAIwckgApAEBAQgCCAKYAeQBSAC8AgEBCAKgAeIBSACCAgEBCAIwckgAggEBAQgCMHJIAKABAQEIAjBySAC8AQEBCAKgAeIBSACmAgEBCAIIAih0SACcAgEBCAIwckgAvAEBAQgCCAKYAeQBSAC4AgEBCAIwFAzSAUgAogIBAQgCCAIodEgAtAEBAQgCMHJIAJIBAQEIAkJIABIBAQgCQkgAgAEBAQgCQkgAkgEBAQgCQkgAJAEBCAJCSAAkAQEIAkJIACQBAQgCQkgAJgEBCAJCSAAmAQEIAkJIACoBAQgCQkgAtgEBAQgCQkgArgcBAQgCKGpIAIABAQEIAkJIAIYBAQEIAjBySACcAQEBCAIwckgAkAEBAQgCMHJIAJQBAQEIAkJIABIBAQgCQkgAKAEBCAIwckgAqgEBAQgCCAIodEgAkgIBAQgCBgIqdEgAqgEBAQgCCAIoGgzaAUgAnAIBAQgCMHJIAKoBAQEIAjBySACKAgEBCAIwckgApgEBAQgCCAIodEgAmgIBAQgCMHJIAIACAQEIAggCmAHkAUgAhAMBAQgCMHJIAIIBAQEIAjBySACSAQEBCAJCSAASAQEIAkJIAIABAQEIAkJIAIABAQEIAg0AWkgAigEBAQgCQkgAjAEBAQgCQkgAKgEBCAJCSAAqAQEIAkJIACoBAQgCQkgAKgEBCAJCSAAqAQEIAkJIAKQBAQEIAkJIAJYHAQEIAkJIAKIBAQEIAkJIAIwCAQEIAihqSACAAQEBCAJCSACsAQEBCAJCSACcAQEBCAJCSACEAQEBCAIwckgAgAIBAQgCCAIodEgAggMBAQgCQkgAEgEBCAJCSACCAQEBCAIwckgAigIBAQgCCAIoKgzqAUgAjAMBAQgCQkgAEgEBCAJCSAAoAQEIAggCKHRIAJ4CAQEIAgYCKnRIAJwBAQEIAgYCKnRIAJwBAQEIAgYCKnRIAJwBAQEIAgYCKnRIAJoBAQEIAjBySACSAQEBCAJCSAASAQEIAkJIAIABAQEIAkJIAJABAQEIAkJIAJoBAQEIAkJIAJoBAQEIAkJIAJoBAQEIAhoMaEgApAEBAQgCQkgAvgEBAQgCQkgAkgUBAQgCQkgAlAIBAQgCQkgAkgUBAQgCQkgAogcBAQgCKGpIAIABAQEIAipsSACCAQEBCAIwckgAiAEBAQgCQkgAKAEBCAIwckgAmgIBAQgCCAIoEAzQAUgAtgEBAQgCCAIodEgArgEBAQgCMBIM0AFIALYBAQEIAggCKCQMAgwCDMACSACsAgEBCAIIAih0SACQAgEBCAIIAigcDAIMAgwCDAIM1AJIAIADAQEIAjBySACSAQEBCAJCSAASAQEIAkJIAIABAQEIAhYMAgwCDMABSACeAQEBCAJCSACAAQEBCAIODAIMAgwCDAIM1AFIALABAQEIAkJIAIICAQEIAkJIAJoIAQEIAihqSACAAQEBCAJCSACQAQEBCAJCSAA0AQEIAkJIAJ4BAQEIAggCKB4I2gFIAJgDAQEIAkJIABIBAQgCQkgAPgEBCAIIAih0SAC+AQEBCAJCSAASAQEIAkJIACgBAQgCCAIodEgAmAIBAQgCMHJIAIACAQEIAqAB4gFIAKICAQEIAqAB4gFIAIwCAQEIAqAB4gFIAKICAQEIAqAB4gFIAIwCAQEIAjBySACCAQEBCAIwckgAkgEBAQgCQkgAEgEBCAJCSACAAQEBCAJCSACKAQEBCAIQCFpIAIQBAQEIAkJIAC4BAQgCEAhaSACEAQEBCAJCSAAuAQEIAkJIABYBAQgCQkgArgEBAQgCQkgAtgcBAQgCKGpIAIABAQEIAipsSACCAQEBCAJCSAAqAQEIAkJIALABAQEIAkJIADwBAQgCQkgALAEBCAJCSACuAQEBCAIwckgAqgEBAQgCBgKaAeQBSACmAgEBCAIGApoB5AFIAKoCAQEIAqAB4gFIAIACAQEIAggCmAEwCNwCSACOAwEBCAIwckgAggEBAQgCQkgAEgEBCAJCSACKAQEBCAIwckgAiAIBAQgCoAHiAUgAtAIBAQgCCAKIAhoMFAjWA0gAmAQBAQgCkALSAkgArgIBAQgCoAHiAUgAsgEBAQgCMHJIAIIBAQEIAggCKHRIAL4BAQEIAkJIABIBAQgCQkgAKAEBCAIIAih0SACaAgEBCAIwHgwCDOoBSACeAgEBCAIwckgAsAEBAQgCMB4MAgzqAUgAigIBAQgCMBoMAgwCDPQBSACeAgEBCAIIAih0SAC8AQEBCAIwckgApAEBAQgCMHJIAJwBAQEIAjBySACYAQEBCAIwckgAkgEBAQgCQkgAEgEBCAJCSACAAQEBCAJCSACMAQEBCAIcDAIMAgwCDAIMAgwECPwBSACoAgEBCAIkDAIMAgwCDAQI6AFIALoBAQEIAhwMAgwCDAIMAgwCDAQI\/AFIAJQCAQEIAhwMAgwCDAIMAgwCDAQI\/AFIAJ4CAQEIAkJIAC4BAQgCDQAWDAIMAgwCDAQI8gFIAIQCAQEIAg0ADgwCDAIMAgwCDAIMBAjGAkgAngIBAQgCQkgAKgEBCAJCSAC+AQEBCAJCSAC2BgEBCAIoakgAgAEBAQgCQkgAkgIBAQgCQkgArAEBAQgCBgIqdEgAmgEBAQgCoAHiAUgAngIBAQgCoAHiAUgAngIBAQgCoAHiAUgAngIBAQgCoAHiAUgAvAIBAQgCoAEQDP4BSACgAgEBCAIwckgAggEBAQgCQkgAEgEBCAJCSAAoAQEIAggCKHRIAKwCAQEIAggCKBwM3AFIALACAQEIAggCKBwM3AFIALACAQEIAggCKBAMCgwuDOACSACCAwEBCAIIAigcDNwBSACuAgEBCAIwckgAkgEBAQgCQkgAEgEBCAJCSACAAQEBCAJCSACeAQEBCAIODFxIADoBAQgCDgxcSAA6AQEIAwAMCgxmSACEAQEBCAIODFxIADoBAQgCQkgAjgIBAQgCQkgAlgcBAQgCKGpIAIABAQEIAipsSACCAQEBCAJCSAAuAQEIAjAGDMQBSACsAQEBCAIwBgzEAUgAqAEBAQgCMHJIAKQBAQEIAjBySACiAQEBCAJCSAAUAQEIAkJIAJoBAQEIAggCKQAI5AFIAIoCAQEIAggCvAHIAkgAugMBAQgCQkgAEgEBCAJCSAAoAQEIAggCKHRIAIgCAQEIAggCKK4BCOoCSACCAwEBCAIIAih0SAC4AgEBCAIGAip0SAC2AQEBCAKgARYMEAzgAkgAlAMBAQgCoAHiAUgAggMBAQgCoAEWDBAM4AJIAJ4DAQEIAqABFgwQDOACSACaAwEBCAIwckgAhAEBAQgCMHJIALwBAQEIAqAB4gFIAKQCAQEIAjBySACSAQEBCAJCSAASAQEIAkJIAIABAQEIAkJIAD4BAQgCEgwEDBIIygFIALABAQEIAkJIAK4BAQEIAgoMAgwCDBQIBgziAUgAkgIBAQgCCgwCDAIMFAjQAUgAigIBAQgCBgwCDAIMAgwUCAYM7AFIAKYCAQEIAgYMAgwCDAIMFAgGDOwBSACkAgEBCAJCSACCAgEBCAJCSACqBwEBCAIoakgAgAEBAQgCQkgAmAIBAQgClAEIEgj4AUgAlgIBAQgCQkgAmAEBAQgCCAIodEgAmAMBAQgCQkgAEgEBCAJCSAAoAQEIAgYCKnRIALoCAQEIAgYCKiwMGAzQAkgAjAMBAQgCCAIodEgAlgIBAQgCMHJIAJoCAQEIAggCmAHkAUgAqgIBAQgCoAHiAUgAgAMBAQgCoAEeDMwCSAC4AgEBCAIIApgB5AFIAIoCAQEIAjBySACCAQEBCAIwckgAkgEBAQgCQkgAEgEBCAJCSACAAQEBCAJCSACIAQEBCAJCSAAgAQEIAkJIAIwBAQEIAkJIAIoBAQEIAkJIACABAQgCQkgAjAEBAQgCQkgAigEBAQgCQkgAFgEBCAJCSACAAgEBCAJCSACeBwEBCAIoakgAgAEBAQgCJmhIAD4BAQgCKgwCDBgI5gFIAI4CAQEIAkJIAIQCAQEIAkJIAJwCAQEIAjBySACkAQEBCAIwckgAugIBAQgCMHJIAKgBAQEIAkJIABIBAQgCQkgAKAEBCAIIAih0SACaAgEBCAIwckgAkAIBAQgCCAIodEgAvAEBAQgCMHJIALwBAQEIAggCmAEODP4BSACyAwEBCAIwHgzcAUgAkAIBAQgCMHJIAIYCAQEIAjBySACiAgEBCAIIAih0SACUAgEBCAIIAigiDCIIzAJIAJYDAQEIAjBySACSAQEBCAJCSAASAQEIAkJIAIABAQEIAkJIAIwBAQEIAkJIADIBAQgCGFpIAIgBAQEIAhhaSACGAQEBCAIYWkgAhgEBAQgCGFpIAIYBAQEIAkJIADoBAQgCFAxiSACEAQEBCAJCSACGAgEBCAJCSACgBQEBCAJCSACQAQEBCAJCSACIBAEBCAIoFAIMzAFIAJACAQEIAioIAgzCAUgAvAEBAQgCKggCDMIBSACEAgEBCAImCAIMAgzMAUgAiAIBAQgCQkgAmgEBAQgCQkgAoAMBAQgCKGpIAIABAQEIAkJIACgBAQgCCAIodEgAhgIBAQgCMHJIAJIBAQEIAkJIABIBAQgCQkgAqAEBAQgCKGpIAIABAQEIAkJIACgBAQgCMAYMAgwKDAIMAgzEAkgAngIBAQgCMAoMDgwCDPABSACSAgEBCAIwEgwCDAIMAgz6AUgAqgIBAQgCMAoMEgzmAUgAggIBAQgCCAIodEgAtAIBAQgChALGAkgAhgMBAQgCMHJIAJIBAQEIAkJIABIBAQgCQkgAgAEBAQgCQkgAsgEBAQgCQkgAigEBAQgCKGpIAIABAQEIAkJIACgBAQgCMHJIAKQBAQEIAggCKHRIAKYCAQEIAoQCxgJIAIYDAQEIAggCKBIIMgjIAkgAqAIBAQgCMHJIAJIBAQEIAkJIABIBAQgCQkgAgAEBAQgCQkgAHAEBCAJCSAAcAQEIAkJIABwBAQgCQkgAGgEBCAJCSAAaAQEIAgQITkgAKAEBCAJCSAAiAQEIAkJIAJwBAQEIAihqSACAAQEBCAJCSAAoAQEIAjBySACeAQEBCAIwBAwCDAIMEAj2AUgAugIBAQgCMB4I2AFIAJwCAQEIAjAeCNgBSACcAgEBCAIwCAwCDAIMAgwCDAIMAgwCDAIM9gJIALADAQEIAjBySACSAQEBCAJCSAASAQEIAkJIAIABAQEIAkJIACABAQgCQkgAggEBAQgCKGpIAIABAQEIAkJIACgBAQgCMHJIALYBAQEIAjBySACUAQEBCAIwckgApgEBAQgCMHJIAJ4CAQEIAggCKHRIAKACAQEIAjBySACuAQEBCAIwckgApgEBAQgCMHJIAIoCAQEIAggCKHRIAIoCAQEIAjBySACSAQEBCAJCSAASAQEIAkJIAIABAQEIAkJIADoBAQgCQkgAOgEBCAJCSACKAQEBCAIoakgAgAEBAQgCQkgAPgEBCAIwckgAsAEBAQgCMHJIAI4CAQEIAkJIABIBAQgCQkgAKAEBCAIIAih0SACAAgEBCAIwckgAvgEBAQgCCAKYAeQBSACCAwEBCAIwckgAkgEBAQgCQkgAEgEBCAJCSACAAQEBCAJCSAA2AQEIAkJIACABAQgCQkgAIAEBCAJCSAAgAQEIAkJIACABAQgCQkgAIAEBCAJCSAAgAQEIAkJIACABAQgCQkgAIgEBCAJCSAAiAQEIAkJIACIBAQgCQkgAiAEBAQgCQkgArgYBAQgCKGpIAIABAQEIAkJIACgBAQgCMHJIAJ4BAQEIAjAQDM4BSAC4AQEBCAIIAigYDAIMAgwCDMICSACyAgEBCAIIAigcDAIMAgz4AUgAsgIBAQgCCAIoJAzkAUgAkgIBAQgCMHJIAJYBAQEIAggCKHRIAIoCAQEIAjBySACSAQEBCAJCSAASAQEIAkJIAIABAQEIAgoMAgwCDAIMwgFIAJoBAQEIAg4MAgwCDHhIAKgBAQEIAhYMZEgAPAEBCAJCSAA0AQEIAqoBAu4BSACOAgEBCABIABABAQgCQkgAhgEBAQgCQkgAhggBAQgCQkgAlAgBAQgCQkgArAcBAQgCQkgAlgcBAQgCQkgApgYBAQgCQkgAlAcBAQgCQkgAjAEBAQgCQkgAogYBAQgCQkgAvAYBAQgCQkgAlAUBAQgCQkgAggYBAQgCQkgAmAYBAQgCJioQ4gFIAJQIAQEIAkJIAIwGAQEIAkJI7MMJAQK0wwEBApyiBwECimACCAIIAgQDA+jdCqrpCiy6CKYljhu6AropjAOkNJgDlgKmBJIcgAGgA7QBnAGSAZAVrgiEBoABvA2GApwBjgKcAb4BnAGuApwBkgGckAGaAZwBvgKcAZoBqgOaAZwBsAOcAZoBnAE2nAGaAZwBoAOcAZoBnAGIAZwBmgGcAaYDnAGaAZwBvAGIB4ADlgKmBJQBtAkwjAuAAaADlgGcAZYBnAGgAZwBnAKcAZIBlhuAAYgHgAKcAbQCnAGsApwBpgKcAZIBuAeMAZwBggGGEYABnAE+oAOwAZwBpAGcAaQCnAGCApwBggGcAb4CnAG2AZwBlgKcAZIBlhyAAYwEmAGcAbABnAGwAZwBlgGGBoICngWuAZwBhgKcAaICnAGSAY4FtgGcAYwCnAGgApwBsAKcAbACnAGSAaIagAGcAYIBnAE+nAGCAaADpgGcAbwBnAG6AZwBjAKcAaIBnAGUApwBkgKcAZACnAGUApwBoAGcAZQBnAGqApwBkgGCIoABnAGCAaADlAGcAZQCnAGkAZwBvAKcAYICnAGCAZwBoAGcAbwBnAGmApwBnAKcAbwBnAG4ApwBogKcAbQBnAGSAYAigAG+A50BAJABnAGUAY4FqgGcAZICnAGqAZwBnAKcAaoBnAGKApwBpgGcAZoCnAGAApwBhAOcAYIBnAGSAYIIigGAIoABvAmAApwBggOoBYoCnAGMA44FngKdAQWaAZwBkgG0EKQBMJgDvhuAAZwBggGcAYgBoAOaApwBtgGcAa4BnAG2AZwBrAKcAZACnAGAA5wBkgGmBZ4BuAOwAbYPgAGSCZgDpAW+AY4FmAKcAYACnAGiApwBjAKcAaICnAGMApwBggGcAZIBjAiEAaYDhAG6EoABnAGCAZgOqgGcAaYCnAGqApwBgAKcAY4DnAGCAbAFiAKcAbQCnAGYBJwBrgKcAbIBnAGCAZwBvgGOBZoCnAGeApwBsAGcAYoCnAGeApwBvAGcAaQBnQEBmAGcAZIBjgioApwBugGcAZQCnAGeAqYDhAKcAZ4ClBCAAZIImgGcAZ4CnAGeApwBngKcAbwCnAGgApwBggGOBawCnAGwApwBsAKcAYIDnAGuApwBkgGgCDqcATqcAYQBnAE6vg6AAZwBggGmA6wBnAGoAZwBpAGcAaIBggaKApwBugOOBYgCnAGCA5wBuAKcAbYBnAGUA5wBggOcAZ4DnAGaA5wBhAGcAbwBnAGkApwBkgGACLABpgSSApwBigKcAaYCnAGkAoYPgAGQBZYCkASYA44FugKcAYwDnAGWApwBmgKcAaoCnAGAA5wBuAKcAYoCnAGCAZwBkgGsJYABnAE+nAGOArQIpAGcAboCnAGoAY4FmgKcAZACnAG8AZwBvAGcAbIDnAGQApwBhgKcAaICnAGUApwBlgOcAZIBnAqIAZwBhgGcAYYBnAGGAbIDhAEwoAOAEZACnAG8AZwBhAKcAYgClAqAAaADhgKcAZIBlAeAAaADngKcAZICnAGqApwBggKcAbQCnAGGA5wBkgGgDIABoAOkAZwBpgKcAYYDnAGoApwBkgG6DiiYB4ABoAOeAZwBugKcAZwCnAGcApwBsAOcAZIBhguAAaADtgGcAZQBnAGmAZwBngKcAaACnAGuAZwBpgGcAYoCnAGKApwBkgG+DYABtgOwAZwBjgKOBYACnAG+AZwBggOcAZIBiieAAaADngGcAbgBnAGyApwBsgKcAZICnAGWAZwBigKcAZIBpgWaAZwBqAGcATyAA6gDlgKmBCigAoA2pgKaJiyUCK4L5I4dko8dAQEIAkJI0I8dBAKsCPQIhJ0dAQEIAkJIwP4btBSyCIZvDwGABg8CogYPAqoGDwOiAw6cG64ZngYOqgKoBw6CAaQLPrAigASwAYYqggE+ggGYKoIBohq2FIoNuhKsEqAOkhOKGIIBiAGcBKQDigIPAJgEDwK0Aw8AugEPAq4LigWEGbIBhAyCAZQRggsgjg0OgAQOuAEPAJgLDwMQmgEPARA4DwMQPg8DEKYBIg8BECgaDwMQqAq2EaYGsAKkAhY6vgGwBTouFjq4CoIBvAGsAYAHjAqGBxy6BRyCAxygChAeqAIPACAOiAEPACCKAQ8BIA6OAQ8BIA6aC4QEGqoKJKINuhc+ggEOJKQWkAOSCS6eC5YOFrwBCrIBCrYBCg6sBroGtgEOFg8AogEaDrIBDwG4AR6sDJQJOpoFigOSAw8AHJ0CAIYCDwa2BaAYjB6eA4ICDwGMAg8AngKKBw8BNA8AlAHeuQkEAqIlBAKCLwQCvtQJLK5JtCywN6YmoASQA6IWsg68DqIDqgOaA4oErpEBtgKaBIQFtgKMBbYCkgK2ArwEtgKkArYCggW2AoQqoASzAgC8ArgDqByICJwDkASIBIIEigmoAogSnAKeBIwDgAOABJ4DngKaBJIDsgOoHYwFtAKNAwCcB6AHigOiA74DoAaSA6gDvAONBAC0G5wCngKaAqIEggOYA5YDqAO+ArADrgOsA7ADvAKwAoYElCOcAqIEsAKwA4ADmASeA54CvAKYA4IEuAOYA5QEvgOQA5IjvgS4AqwCogaGA64DhgO4A4YDpgOCA7YDnAOgBJ4ClAmKI7wKnAOqCKYDmgi6A7kCAbYChhKqIZwCngKoBLYDkgOKA5IDiASsA5wEuAaWBaYRkgq8CIwHtAOcA74DqAO+A6gDngKeCaoEvhOcApoPhgOCBIYEnAOqBLIGpAOQBLQFigSOA54CjAe2A7oDjAOmA7oDmAOAA7gCtAKgCYQElgOwA4QGoAOyEpIJtgK7AwGYBLwDkAaIBI0EAJ4EigSyCZcCAKACuA+cAqgEiAOEA4ADpAemA4gJpAOeBJQEkgOwBJ4EugS2BKACmAOABJIJlgauA6YDggSqEZAGpgamCJYEqASyA7YDhgScBJQEpgOeAr4mnAKaAoILgAOWBLYGtgOsA5kDAI4FrAOiA74DsAOyBK4LpAKjAgC4BJQWrAOYA6ADnAygBKIDpgigBLoDrgOGBJ4DkASiBLINoASAA4IEogSEBIwQgAigBLoClgS5AwCMBZgMoASSA7ACggO6A7wDigOCA6cDAJAPtgSMA5wHnAOaA54EnCigBLoClAOPBACuA7ICpgO4BrYChAPEvRkEAqgBlLEeyPUfqocLsrcClgXyrgkEApaiAwQCmIYLjukFzsQPBAKQApqmF9KmFwQCli4EApAgsNcWAQEIAkJI7tcWBAK0zRG+BY4FoDiAKSzEhx2INtQ2AhqS2gIEAoDsHgLa4h6e4h4CRAgCRNLsHqDsHgEBCAJCSAIEAvblEqQKqNoSBgLW7BaA+xYBAQgASPAO2qsEhLoEAwC5C6oVmIYdzPAbgAG0AYASsgisBYYCjgK+Aa4CkF6aATAPAaQBjAKaATYPAoICmgE2mgE2DwKyAZoBiAGaATwPA6QBvgEOnBuAAZcBAKABnAKGEowDgAKSAQ6UAZcBAKYCrAMOggGkCz6AAbABpAGkAoICggG+ArYBlgKqEawBmAE8NDw0iAOMA64BhgKiAowCtgGMAqACsQIAmg6CAT6CAYABpgG8AboBjAKiAZQCkgKQApQCoAGUAaoCphGCAYABlAGUAqQBvAKCAoIBoAG8AaYCnAK8AbgChAGeAbQBpBGeAZwBkAGOAqoBkgKqAYwBkAGqAYoCpgGaAoAChAOCAbADrBKkBIAClgSKApwBqgKeAp0BAZoBnAiKGIIBiAGAAZoCggE0rgGCATSWAQ8AOpACjgEPAjq6Ag8AugEPAq4LugOQAZgDuAKYAoACogKMAqICjAKCAb4DsgGEDIIBiAaqAaYCqgKAApICPJ4CiAK0AqwCIIwBrgKyAYIBuAKaAo4BDoIBsAGOAQ4uigEPADi8AaQBnAGYAYwEDwMQmgEPARA4DwMQPg8DEKYBIg8BECgaDwMQqAqWBJoBnwIBvAKwATC8AawCjgGiAY4BogGCARY6MI4BoAGQBDouFjq4CoIBhgE3ATKkAZADmgEwtASIAqACIrgCtwEAHIIBggO2ARyMAbYBHIgBhAG8AaQCtAMQHqgCDwAgDogBDwAgigEPASAOjgEPASAOmguEBBqAApIEugKeASSKAZYCmgKqAoADvgE6igKCAbQTPoIBDiSSBaQBugKiApoCkAK9AQCwAYICjgGCAYYCogKUApQBLpQBogSIAYcBAJQClg4WvAEKsgEKtgEKDqwGgAGGArQDgAE2DhYPACg6Gg4wggEPAT46Hiq0AoYDiAaAAaQBpgKGA4QBOiqwBIoDgAGeATQPAByPAQM4DwaIAa4EgAG2AZQBpgGeAqACrgGmAYsCAIoGlgGwAYgDgAK+AYIDvhCAAZ4BgAE4igEPAT6OAQ8AiAGWATyWAYoCrgIPATQPAJQBlnAsrkm0LLA3piagBJADohayDrwOogOqA5oDigSukQG2ApoEhAW2AowFtgKSArYCvAS2AqQCtgKCBbYChCqgBLMCALwCuAOoHIgInAOQBIgEggSKCagCiBKcAp4EjAOAA4AEngOeApoEkgOyA6gdjAW0Ao0DAJwHoAeKA6IDvgOgBpIDqAO8A40EALQbnAKeApoCogSCA5gDlgOoA74CsAOuA6wDsAO8ArAChgSUI5wCogSwArADgAOYBJ4DngK8ApgDggS4A5gDlAS+A5ADkiO+BLgCrAKiBoYDrgOGA7gDhgOmA4IDtgOcA6AEngKUCYojvAqcA6oIpgOaCLoDuQIBtgKGEqohnAKeAqgEtgOSA4oDkgOIBKwDnAS4BpYFphGSCrwIjAe0A5wDvgOoA74DqAOeAp4JqgS+E5wCmg+GA4IEhgScA6oEsgakA5AEtAWKBI4DngKMB7YDugOMA6YDugOYA4ADuAK0AqAJhASWA7ADhAagA7ISkgm2ArsDAZgEvAOQBogEjQQAngSKBLIJlwIAoAK4D5wCqASIA4QDgAOkB6YDiAmkA54ElASSA7AEngS6BLYEoAKYA4AEkgmWBq4DpgOCBKoRkAamBqYIlgSoBLIDtgOGBJwElASmA54CviacApoCgguAA5YEtga2A6wDmQMAjgWsA6IDvgOwA7IErgukAqMCALgElBasA5gDoAOcDKAEogOmCKAEugOuA4YEngOQBKIEsg2gBIADggSiBIQEjBCACKAEugKWBLkDAIwFmAygBJIDsAKCA7oDvAOKA4IDpwMAkA+2BIwDnAecA5oDngScKKAEugKUA48EAK4DsgKmA7gGtgKEA+D3D7K3ApYFiPoEjukF7OoOqsURvgWOBaA4gCks8qIagP0LpAqQrw7qUCgAIQEnAigGJwAoACEAKAAnAAQABwAoAicBKAAnAKgABACHACgCJwEEAIQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInACgBJwAHACgCJwEEACcAhwAoAicBBAAnAIcAKAInAQQAJwCHACgCJwEEACcAhwAoAicBBAAnAIcAKAInAQQAJwCHACgCJwEEACcAhwAoAicBBAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInACgAJwGHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEAIQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAhAIoACcAhwAoAicBBACEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEAIQBKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAhAAoACcAhwAoAicBBAAoACcAhwAoAicBBAAoACcAhwAoAicBBAAoACcAhwAoAicBBAAoACcAhwAoAicBBAAoACcAhwAoAicBBACEAigAJwCHACgCJwEEAIQCKAAnAIcAKAInAQQAhAIoACcAhwAoAicBBACEAigAJwCHACgCJwEEAIQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAhAAoACcAhwAoAicBBACECCgAJwCHACgCJwEEAIQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAhAAoACcAhwAoAicBBACECigAJwCHACgCJwEEAIQAKAAnAIcAKAInAQQAhAAoACcAhwAoAicBBACEACgAJwCHACgCJwEEAIQKKAAnAIcAKAInAQQAhAAoACcAhwAoAicBBACEACgAJwCHACgCJwEEAIQAKAAnAIcAKAInAQQAhAwoACcAhwAoAicBBACEACgAJwCHACgCJwEEAIQDKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAhAEoACcAhwAoAicAKAAnAYcAKAInAQQAhAAoACcAhwAoAicBBAAoACcAhwAoAicBBACEACgAJwCHACgCJwEEACgAJwCHACgCJwEEAIQAKAAnAIcAKAInAQQAhAAoACcAhwAoAicBBACEACgAJwCHACgCJwEEAIQCKAAnAIcAKAInAQQAhAAoACcAhwAoAicBBAAoACcAhwAoAicBBAAoACcAhwAoAicBBAAoACcAhwAoAicBBAAoACcAhwAoAicBBAAoACcAhwAoAicBBAAoACcAhwAoAicBBACEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEAIQCKAAnAIcAKAInAQQAhAYoACcAhwAoAicBBACEBCgAJwCHACgCJwEEAIQCKAAnAIcAKAInAQQAhAAoACcAhwAoAicBBAAoACcAhwAoAicBBAAoACcAhwAoAicBBAAoACcAhwAoAicBBACEAygAJwCHACgCJwEEAIQBKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAhAAoACcAhwAoAicBBACEACgAJwCHACgCJwEEACgAJwCHACgCJwEEAIQAKAAnAIcAKAInAQQAhAAoACcAhwAoAicBBACEACgAJwCHACgCJwEEAIQCKAAnAIcAKAInAQQAhAAoACcAhwAoAicBBACEACgAJwCHACgCJwEEAIQCKAAnAIcAKAInAQQAhAIoACcAhwAoAicBBACEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEAIQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAhAAoACcAhwAoAicBBACEAigAJwCHACgCJwEEAIQCKAAnAIcAKAInAQQAhAAoACcAhwAoAicBBAAoACcAhwAoAicBBAAoACcAhwAoAicBBACEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEAIQAKAAnAIcAKAInAQQAhAAoACcAhwAoAicBBACEACgAJwCHACgCJwEEAIQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAhAAoACcAhwAoAicBBACEAigAJwCHACgCJwEEAIQCKAAnAIcAKAInAQQAhAIoACcAhwAoAicBBACEAigAJwCHACgCJwEEAIQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAhAAoACcAhwAoAicBBACEACgAJwCHACgCJwEEAIQAKAAnAIcAKAInAQQAhAAoACcAhwAoAicBBAAoACcAhwAoAicBBACEACgAJwCHACgCJwEEAIQAKAAnAIcAKAInAQQAhAIoACcAhwAoAicBBACEAigAJwCHACgCJwEEAIQAKAAnAIcAKAInAQQAhAIoACcAhwAoAicBBACEAigAJwCHACgCJwEEAIQCKAAnAIcAKAInAQQAhAIoACcAhwAoAicBBACEACgAJwCHACgCJwEEAIQCKAAnAIcAKAInAQQAhAIoACcAhwAoAicBBACEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEAIQAKAAnAIcAKAInAQQAhAAoACcAhwAoAicBBAAoACcAhwAoAicBBACEACgAJwCHACgCJwEEAIQAKAAnAIcAKAInAQQAhAAoACcAhwAoAicBBACEAigAJwCHACgCJwEEAIQAKAAnAIcAKAInAQQAhAAoACcAhwAoAicBBACEACgAJwCHACgCJwEEAIQAKAAnAIcAKAInAQQAhAAoACcAhwAoAicBBACEAigAJwCHACgCJwEEAIQAKAAnAIcAKAInAQQAhAIoACcAhwAoAicBBACEAigAJwCHACgCJwEEAIQCKAAnAIcAKAInAQQAhAAoACcAhwAoAicBBAAoACcAhwAoAicBBAAoACcAhwAoAicBBAAoACcAhwAoAicBBAAoACcAhwAoAicBBAAoACcAhwAoAicBBAAoACcAhwAoAicBBAAoACcAhwAoAicBBAAoACcAhwAoAicBBAAoACcAhwAoAicBBAAoACcAhwAoAicBBAAoACcAhwAoAicBBACEACgAJwCHACgCJwEEACgAJwCHACgCJwEEAIQAKAAnAIcAKAInAQQAhAAoACcAhwAoAicBBACEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEAIQAKAAnAIcAKAInAQQAhAIoACcAhwAoAicBBACEAigAJwCHACgCJwEEAIQEKAAnAIcAKAInAQQAhAAoACcAhwAoAicBBACEACgAJwCHACgCJwEEAIQAKAAnAIcAKAInAQQAhAIoACcAhwAoAicBBACEACgAJwCHACgCJwEEAIQCKAAnAIcAKAInAQQAhAAoACcAhwAoAicBBACEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEAIQBKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAhAAoACcAhwAoAicBBAAoACcAhwAoAicBBAAoACcAhwAoAicBBAAoACcAhwAoAicBBACEACgAJwCHACgCJwEEAIQCKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAhAAoACcAhwAoAicBBACEBCgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEAIQCKAAnAIcAKAInAQQAhAIoACcAhwAoAicBBACEAigAJwCHACgCJwEEAIQCKAAnAIcAKAInAQQAhAIoACcAhwAoAicBBACEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEAIQBKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAhAAoACcAhwAoAicBBACEACgAJwCHACgCJwEEAIQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAhAAoACcAhwAoAicBBACEBCgAJwCHACgCJwEEAIQCKAAnAIcAKAInAQQAhAIoACcAhwAoAicBBACECCgAJwCHACgCJwEEAIQCKAAnAIcAKAInAQQAhAwoACcAhwAoAicBBACEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEAIQFKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAhAkoACcAhwAoAicBBAAoACcAhwAoAicBBAAoACcAhwAoAicBBACEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEAIQEKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAhAIoACcAhwAoAicBBAAoACcAhwAoAicBBAAoACcAhwAoAicBBACEAigAJwCHACgCJwEEAIQAKAAnAIcAKAInAQQAhAAoACcAhwAoAicBBACEACgAJwCHACgCJwEEAIQAKAAnAIcAKAInAQQAhAAoACcAhwAoAicBBACEACgAJwCHACgCJwEEAIQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAhAEoACcAhwAoAicBBAAoACcAhwAoAicBBACEASgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEAIQAKAAnAIcAKAInAQQAhAAoACcAhwAoAicBBAAoACcAhwAoAicBBAAoACcAhwAoAicBBAAoACcAhwAoAicBBAAoACcAhwAoAicBBAAoACcAhwAoAicBBACEACgAJwCHACgCJwEEAIQCKAAnAIcAKAInAQQAhAIoACcAhwAoAicBBACEACgAJwCHACgCJwEEAIQEKAAnAIcAKAInAQQAhAAoACcAhwAoAicBBAAoACcAhwAoAicBBAAoACcAhwAoAicBBACEACgAJwCHACgCJwEEAIQAKAAnAIcAKAInAQQAhAYoACcAhwAoAicBBACEACgAJwCHACgCJwEEAIQAKAAnAIcAKAInAQQAhAAoACcAhwAoAicBBACEAigAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEAIQCKAAnAIcAKAInAQQAhAQoACcAhwAoAicBBACEACgAJwCHACgCJwEEAIQEKAAnAIcAKAInAQQAhAYoACcAhwAoAicBBACEAigAJwCHACgCJwEEAIQAKAAnAIcAKAInAQQAhAAoACcAhwAoAicBBACEACgAJwCHACgCJwEEAIQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAhA0oACcAhwAoAicBBACECSgAJwCHACgCJwEEAIQNKAAnAIcAKAInAQQAhA0oACcAhwAoAicBBAAoACcAhwAoAicBBACECygAJwCHACgCJwEEAIQPKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAhAAoACcAhwAoAicBBAAoACcAhwAoAicBBAAoACcAhwAoAicBBACEAigAJwCHACgCJwEEAIQAKAAnAIcAKAInAQQAhAAoACcAhwAoAicBBACEACgAJwCHACgCJwEEAIQAKAAnAIcAKAInAQQAhAIoACcAhwAoAicBBACEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEAIQCKAAnAIcAKAInAQQAhAQoACcAhwAoAicBBACEBCgAJwCHACgCJwEEAIQIKAAnAIcAKAInAQQAhAQoACcAhwAoAicBBACEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEAIQBKAAnAIcAKAInAQQAhAEoACcAhwAoAicBBACEAygAJwCHACgCJwEEAIQBKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAhAAoACcAhwAoAicBBACEACgAJwCHACgCJwEEACgAJwCHACgCJwEEAIQCKAAnAIcAKAInAQQAhAIoACcAhwAoAicBBACEACgAJwCHACgCJwEEAIQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAhAQoACcAhwAoAicBBACEAigAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEAIQCKAAnAIcAKAInAQQAhAQoACcAhwAoAicBBACEAigAJwCHACgCJwEEAIQCKAAnAIcAKAInAQQAhAQoACcAhwAoAicBBACEACgAJwCHACgCJwEEAIQEKAAnAIcAKAInAQQAhAQoACcAhwAoAicBBACEACgAJwCHACgCJwEEAIQAKAAnAIcAKAInAQQAhAAoACcAhwAoAicBBACEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEAIQFKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAhAkoACcAhwAoAicBBACEBygAJwCHACgCJwEEAIQLKAAnAIcAKAInAQQAhAsoACcAhwAoAicBBAAoACcAhwAoAicBBAAoACcAhwAoAicBBACEACgAJwCHACgCJwEEACgAJwCHACgCJwEEAIQDKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAhAIoACcAhwAoAicBBAAoACcAhwAoAicBBAAoACcAhwAoAicBBACEAigAJwCHACgCJwEEAIQGKAAnAIcAKAInAQQAhAIoACcAhwAoAicBBACEACgAJwCHACgCJwEEAIQCKAAnAIcAKAInAQQAhAAoACcAhwAoAicBBACEAigAJwCHACgCJwEEAIQCKAAnAIcAKAInAQQAhAAoACcAhwAoAicBBACEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEAIQAKAAnAIcAKAInAQQAhAAoACcAhwAoAicBBACEBSgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEAIQAKAAnAIcAKAInAQQAhAAoACcAhwAoAicBBACEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEAIQCKAAnAIcAKAInAQQAhAAoACcAhwAoAicBBACEAigAJwCHACgCJwEEAIQAKAAnAIcAKAInAQQAhAQoACcAhwAoAicBBACEAigAJwCHACgCJwEEAIQAKAAnAIcAKAInAQQAhAAoACcAhwAoAicBBACEAigAJwCHACgCJwEEAIQGKAAnAIcAKAInAQQAhAAoACcAhwAoAicBBAAoACcAhwAoAicBBAAoACcAhwAoAicBBAAoACcAhwAoAicBBAAoACcAhwAoAicBBACEACgAJwCHACgCJwEEAIQAKAAnAIcAKAInAQQAhAAoACcAhwAoAicBBACEACgAJwCHACgCJwEEACgAJwCHACgCJwEEAIQBKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAhAMoACcAhwAoAicBBACEAygAJwCHACgCJwEEAIQDKAAnAIcAKAInAQQAhAUoACcAhwAoAicBBAAoACcAhwAoAicBBAAoACcAhwAoAicBBACEACgAJwCHACgCJwEEACgAJwCHACgCJwEEAIQCKAAnAIcAKAInAQQAhAAoACcAhwAoAicBBAAoACcAhwAoAicBBAAoACcAhwAoAicBBACEACgAJwCHACgCJwEEACgAJwCHACgCJwEEAIQKKAAnAIcAKAInAQQAhAYoACcAhwAoAicBBACECCgAJwCHACgCJwEEAIQEKAAnAIcAKAInAQQAhAIoACcAhwAoAicBBACEACgAJwCHACgCJwEEAIQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAhAAoACcAhwAoAicBBAAoACcAhwAoAicBBACEACgAJwCHACgCJwEEAIQCKAAnAIcAKAInAQQAhAAoACcAhwAoAicBBACEBigAJwCHACgCJwEEAIQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAhAEoACcAhwAoAicBBAAoACcAhwAoAicBBAAoACcAhwAoAicBBACEACgAJwCHACgCJwEEACgAJwCHACgCJwEEAIQAKAAnAIcAKAInAQQAhAgoACcAhwAoAicBBACEAigAJwCHACgCJwEEAIQCKAAnAIcAKAInAQQAhBIoACcAhwAoAicBBACEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEAIQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAhAAoACcAhwAoAicBBACEACgAJwCHACgCJwEEAIQAKAAnAIcAKAInAQQAhAAoACcAhwAoAicBBACEAigAJwCHACgCJwEEAIQAKAAnAIcAKAInAQQAhAAoACcAhwAoAicBBACEACgAJwCHACgCJwEEAIQCKAAnAIcAKAInAQQAhAAoACcAhwAoAicBBAAoACcAhwAoAicBBAAoACcAhwAoAicBBAAoACcAhwAoAicBBAAoACcAhwAoAicBBAAoACcAhwAoAicBBACEACgAJwCHACgCJwEEACgAJwCHACgCJwEEAIQAKAAnAIcAKAInAQQAhAAoACcAhwAoAicBBAAoACcAhwAoAicBBAAoACcAhwAoAicBBACEAigAJwCHACgCJwEEAIQAKAAnAIcAKAInAQQAhAIoACcAhwAoAicBBACEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEAIQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAhAAoACcAhwAoAicBBACEAigAJwCHACgCJwEEAIQKKAAnAIcAKAInAQQAhAgoACcAhwAoAicBBACEBCgAJwCHACgCJwEEAIQAKAAnAIcAKAInAQQAhAIoACcAhwAoAicBBACEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEAIQHKAAnAIcAKAInAQQAhAUoACcAhwAoAicBBACEASgAJwCHACgCJwEEACgAJwCHACgCJwEEAIQBKAAnAIcAKAInACgAJwGHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACgCJwEEAIQCKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnACgOqAsEAIQAgQCEAIEBhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQBgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAYEAhAHHACgCJwEEACgAJwCoASgAhADHACgCJwEEACgAJwDEAEQBxAFEBsQDRALEBEQDxAREA8QFRADEAkQExABEAcQBRADEAEQBxARECMQARAHEAEQAxABEC8QDRAzEAUQMxABEAcQARAbEAEQHxAFEA8QARAXEA0QBxABEAcQARADEAkQBxAREAMQIRADEAEQIxANEBMQARAPEAUQFxAFEAcQBRADEAkQExChEBcQARALEAEQAxABEAMQCRADEAEQAxAZEAMQARADEAEQCxABEAsQARALEAUQBxAFEAMQBRAPEGkQCxAFEBMQARALEBEQHxABEAMQARAPEAUQExApEAcQARADEBEQAxAJEAMQDRADEAUQCxABEA8QBRADEAUQBxANEAMQARADEAEQAxAhEAMQARAnEAEQFxABEAcQARADEA0QAxAJEAMQARALEB6gBKACoASgAqAEoAMTHAqgBKACoAsQCqAEoAKgBKADEAagBKACoAygAqAEoAMcAKAInAQQAKAAnAKgBKADEBagAKACoAKEBqAAhAagBKACoCMcAKAInAQQAKAAnAKgBKADEAaEChwAoAicBKAAnAKgAwQCoyMAJpocJc3RhdGV2ZXJzaW9uZG9jdW1lbnRkYXRlZG9jdW1lbnRzdGF0dXNkb2N1bWVudHRpdGxlZG9jdW1lbnRjb250ZW50ZG9jdW1lbnRleGNlcnB0ZG9jdW1lbnRhdXRob3Jkb2N1bWVudGZlYXR1cmVkX21lZGlhZG9jdW1lbnRjb21tZW50X3N0YXR1c2RvY3VtZW50cGluZ19zdGF0dXNkb2N1bWVudHN0aWNreWRvY3VtZW50dGVtcGxhdGVkb2N1bWVudGZvcm1hdGRvY3VtZW50bWV0YWZvb3Rub3Rlc2RvY3VtZW50Y2F0ZWdvcmllc2RvY3VtZW50dGFnc2RvY3VtZW50YmxvY2tzV2hhdCBpcyBDIFByb2dyYW1taW5nPyBGZWF0dXJlcywgVXNlcyAmYW1wOyBIb3cgSXQgV29ya3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRkcm9wQ2FwaW5uZXJCbG9ja3NDIGlzIGEgdmVyeSBwb3dlcmZ1bCBwcm9ncmFtbWluZyBsYW5ndWFnZS4gSXQgd2FzIGNyZWF0ZWQgYnkgRGVubmlzIFJpdGNoaWUgYXQgQmVsbCBMYWJzIGluIHRoZSBlYXJseSAxOTcwcy4gSXQgaXMgZmFzdCBhbmQgd29ya3MgdmVyeSBjbG9zZSB0byBjb21wdXRlciBoYXJkd2FyZS4gSXQgd2FzIGZpcnN0IHVzZWQgdG8gYnVpbGQgdGhlIFVOSVggb3BlcmF0aW5nIHN5c3RlbS4gRXZlbiB0b2RheSBpdCBpcyB1c2VkIGluIG1hbnkgaW1wb3J0YW50IHN5c3RlbXMgbGlrZSBvcGVyYXRpbmcgc3lzdGVtcywgZW1iZWRkZWQgZGV2aWNlcyBhbmQgc29mdHdhcmUgdG9vbHMuY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz5XaGF0IGlzIEMgUHJvZ3JhbW1pbmcgQSBTaW1wbGUgT3ZlcnZpZXcgPzwvc3Ryb25nPjxicj5IYXZlIHlvdSBldmVyIHRob3VnaHQgYWJvdXQgaG93IHRoZSBzb2Z0d2FyZSBpbnNpZGUgeW91ciBjb21wdXRlciBvciBwaG9uZSByZWFsbHkgd29ya3M\/IE9yIGhvdyBhIGNhciBlbmdpbmUgc3lzdGVtIGNhbiByZWFkIG1hbnkgc2Vuc29yIHNpZ25hbHMgYW5kIHJlYWN0IGluIHJlYWwgdGltZS4gTW9zdCBvZiB0aGVzZSBzeXN0ZW1zIHVzZSBhIGxhbmd1YWdlIGNhbGxlZCBDLmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudEMgcHJvZ3JhbW1pbmcgaXMgb25lIG9mIHRoZSBtb3N0IGJhc2ljIGFuZCBpbXBvcnRhbnQgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzLiBJdCBoZWxwZWQgYnVpbGQgdGhlIGZvdW5kYXRpb24gb2YgbW9kZXJuIGNvbXB1dGVycy4gTWFueSBiaWcgc3lzdGVtcyBsaWtlIG9wZXJhdGluZyBzeXN0ZW1zIGRhdGFiYXNlcyBhbmQgc2VjdXJpdHkgdG9vbHMgYXJlIHdyaXR0ZW4gdXNpbmcgQy4gRXZlbiBhZnRlciBtYW55IHllYXJzIGl0IGlzIHN0aWxsIG9uZSBvZiB0aGUgbW9zdCB1c2VkIGxhbmd1YWdlcyBpbiB0aGUgd29ybGQuZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50QyBpcyB2ZXJ5IGltcG9ydGFudCBiZWNhdXNlIGl0IGlzIGZhc3QgYW5kIGdpdmVzIGRpcmVjdCBjb250cm9sIG92ZXIgdGhlIGNvbXB1dGVyLiBUaGlzIG1lYW5zIHByb2dyYW1tZXJzIGNhbiBjb250cm9sIG1lbW9yeSBhbmQgc3lzdGVtIHJlc291cmNlcyBpbiBhIHZlcnkgZGV0YWlsZWQgd2F5LiBUaGF0IGlzIHdoeSBpdCBpcyB1c2VkIGluIHBsYWNlcyB3aGVyZSBzcGVlZCBhbmQgcGVyZm9ybWFuY2UgbWF0dGVyIGEgbG90LmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudFRoaXMgZ3VpZGUgaGVscHMgeW91IHVuZGVyc3RhbmQgQyBwcm9ncmFtbWluZyBpbiBhIHNpbXBsZSB3YXkuIEl0IGV4cGxhaW5zIHdoZXJlIGl0IGNhbWUgZnJvbSBob3cgaXQgd29ya3MgYW5kIHdoeSBpdCBpcyBzdGlsbCB1c2VmdWwgdG9kYXkuIEl0IGFsc28gaGVscHMgYmVnaW5uZXJzIHVuZGVyc3RhbmQgaG93IHByb2dyYW1taW5nIHN0YXJ0cyBhdCB0aGUgYmFzaWMgbGV2ZWwuZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50SWYgeW91IGFyZSBuZXcgdG8gY29kaW5nIEMgaXMgYSB2ZXJ5IGdvb2QgbGFuZ3VhZ2UgdG8gc3RhcnQgd2l0aC4gSXQgdGVhY2hlcyB5b3UgaG93IGNvbXB1dGVycyB0aGluayBhbmQgd29yayBmcm9tIHRoZSBpbnNpZGUuIE9uY2UgeW91IHVuZGVyc3RhbmQgQyBvdGhlciBwcm9ncmFtbWluZyBsYW5ndWFnZXMgYmVjb21lIG11Y2ggZWFzaWVyIHRvIGxlYXJuLmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudDxzdHJvbmc+VGFibGUgb2YgQ29udGVudHM8L3N0cm9uZz5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc29yZGVyZWR2YWx1ZXNpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudFdoYXQgaXMgQyBQcm9ncmFtbWluZz9pbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudFRoZSBFdm9sdXRpb24gb2YgQyBQcm9ncmFtbWluZ2lubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50SG93IEMgUHJvZ3JhbW1pbmcgV29ya3Mg4oCUIFN0ZXAgYnkgU3RlcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50RmVhdHVyZXMgb2YgQyBQcm9ncmFtbWluZ2lubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50QXBwbGljYXRpb25zIGFuZCBVc2VzIG9mIEMgUHJvZ3JhbW1pbmdpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudEVsZW1lbnRzIG9mIGEgQyBQcm9ncmFtIOKAlCBXaXRoIENvZGUgRXhhbXBsZXNpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudEFkdmFudGFnZXMgYW5kIERpc2FkdmFudGFnZXMgb2YgQyBQcm9ncmFtbWluZ2lubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Q29uY2x1c2lvbmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz5XaGF0IGlzIEMgUHJvZ3JhbW1pbmcgPzwvc3Ryb25nPmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudEMgUHJvZ3JhbW1pbmcgaXMgYSBzaW1wbGUgYW5kIHBvd2VyZnVsIHByb2dyYW1taW5nIGxhbmd1YWdlLiBJdCBpcyB1c2VkIHRvIGJ1aWxkIHN5c3RlbSBzb2Z0d2FyZSBsaWtlIG9wZXJhdGluZyBzeXN0ZW1zIGZpcm13YXJlIGFuZCBtYW55IGFwcGxpY2F0aW9ucy4gSXQgd2FzIGNyZWF0ZWQgYnkgRGVubmlzIFJpdGNoaWUgaW4gdGhlIDE5NzBzIGF0IEJlbGwgTGFicy4gQyBnaXZlcyBkaXJlY3QgY29udHJvbCBvdmVyIGNvbXB1dGVyIG1lbW9yeSBhbmQgaGFyZHdhcmUgdXNpbmcgc2ltcGxlIHJ1bGVzIGFuZCBrZXl3b3Jkcy5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRPdmVyIHRpbWUgQyBiZWNhbWUgb25lIG9mIHRoZSBtb3N0IGltcG9ydGFudCBwcm9ncmFtbWluZyBsYW5ndWFnZXMgaW4gdGhlIHdvcmxkLiBNYW55IG1vZGVybiBsYW5ndWFnZXMgbGlrZSBDIHBsdXMgcGx1cyBDIHNoYXJwIEphdmEsIFB5dGhvbiBHbyBhbmQgUnVzdCBhcmUgaW5mbHVlbmNlZCBieSBDLiBXaGVuIHlvdSBsZWFybiBDIHlvdSBhbHNvIHN0YXJ0IHRvIHVuZGVyc3RhbmQgaG93IGNvbXB1dGVycyByZWFsbHkgd29yayBpbnNpZGUuIFlvdSBsZWFybiBob3cgbWVtb3J5IHdvcmtzLCBob3cgZGF0YSBpcyBzdG9yZWQgYW5kIGhvdyBzeXN0ZW1zIG1hbmFnZSByZXNvdXJjZXMuZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50QyBpcyBjYWxsZWQgYSBtaWRkbGUgbGV2ZWwgbGFuZ3VhZ2UuIFRoaXMgbWVhbnMgaXQgaXMgYmV0d2VlbiB2ZXJ5IGxvdyBsZXZlbCBtYWNoaW5lIGxhbmd1YWdlIGFuZCBoaWdoIGxldmVsIGxhbmd1YWdlcyBsaWtlIFB5dGhvbi4gTG93IGxldmVsIGxhbmd1YWdlcyBhcmUgdmVyeSBoYXJkIGZvciBodW1hbnMgdG8gcmVhZCBhbmQgaGlnaCBsZXZlbCBsYW5ndWFnZXMgaGlkZSBtYW55IGRldGFpbHMuIEMgaXMgaW4gdGhlIG1pZGRsZSBzbyBpdCBpcyBlYXNpZXIgdG8gcmVhZCBidXQgc3RpbGwgZ2l2ZXMgY29udHJvbCBvdmVyIHRoZSBzeXN0ZW0uZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50VGhpcyBiYWxhbmNlIG9mIHNpbXBsaWNpdHkgYW5kIGNvbnRyb2wgaXMgd2h5IEMgaXMgc3RpbGwgdXNlZCBldmVuIGFmdGVyIG1hbnkgeWVhcnMuIEl0IGhlbHBzIHByb2dyYW1tZXJzIHdyaXRlIGNsZWFyIGNvZGUgd2hpbGUgc3RpbGwgd29ya2luZyB2ZXJ5IGNsb3NlIHRvIHRoZSBjb21wdXRlciBzeXN0ZW0uZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz5UaGUgRXZvbHV0aW9uIG9mIEMgUHJvZ3JhbW1pbmcgPzwvc3Ryb25nPmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudFRoZSBoaXN0b3J5IG9mIEMgUHJvZ3JhbW1pbmcgc3RhcnRlZCBpbiB0aGUgZWFybHkgMTk3MHMgYXQgQmVsbCBMYWJvcmF0b3JpZXMgaW4gdGhlIFVuaXRlZCBTdGF0ZXMuIEF0IHRoYXQgdGltZSBtb3N0IHN5c3RlbSBzb2Z0d2FyZSB3YXMgd3JpdHRlbiBpbiBhc3NlbWJseSBsYW5ndWFnZS4gQXNzZW1ibHkgbGFuZ3VhZ2Ugd2FzIHZlcnkgY2xvc2UgdG8gaGFyZHdhcmUgYW5kIGl0IHdvcmtlZCBvbmx5IG9uIHNwZWNpZmljIG1hY2hpbmVzLiBCZWNhdXNlIG9mIHRoaXMgaXQgd2FzIHZlcnkgaGFyZCB0byBtb3ZlIHNvZnR3YXJlIGZyb20gb25lIGNvbXB1dGVyIHRvIGFub3RoZXIuZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50RGVubmlzIFJpdGNoaWUgYW5kIEJyaWFuIEtlcm5pZ2hhbiB3YW50ZWQgdG8gZml4IHRoaXMgcHJvYmxlbS4gVGhleSB3YW50ZWQgdG8gY3JlYXRlIGEgbGFuZ3VhZ2UgdGhhdCB3YXMgZmFzdCBsaWtlIGFzc2VtYmx5IGJ1dCBhbHNvIGVhc3kgdG8gdXNlIG9uIGRpZmZlcmVudCBjb21wdXRlcnMuIFRoZXkgaW1wcm92ZWQgYW4gb2xkZXIgbGFuZ3VhZ2UgY2FsbGVkIEIgYW5kIHRoZW4gY3JlYXRlZCBDIGJldHdlZW4gMTk2OSBhbmQgMTk3My5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRPbmUgb2YgdGhlIGJpZ2dlc3Qgc3VjY2VzcyBzdG9yaWVzIG9mIEMgd2FzIHdoZW4gdGhlIFVOSVggb3BlcmF0aW5nIHN5c3RlbSB3YXMgcmV3cml0dGVuIHVzaW5nIGl0LiBCZWZvcmUgdGhpcyBVTklYIHdhcyB3cml0dGVuIGluIGFzc2VtYmx5IGxhbmd1YWdlLiBBZnRlciByZXdyaXRpbmcgaXQgaW4gQyBpdCBwcm92ZWQgdGhhdCBhIGhpZ2ggbGV2ZWwgbGFuZ3VhZ2UgY291bGQgc3RpbGwgYmUgZmFzdCBhbmQgcG93ZXJmdWwgZW5vdWdoIHRvIHJ1biBhbiBvcGVyYXRpbmcgc3lzdGVtLiBUaGlzIHdhcyBhIHZlcnkgaW1wb3J0YW50IG1vbWVudCBpbiBjb21wdXRlciBoaXN0b3J5LmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudEluIDE5NzggYSBmYW1vdXMgYm9vayBjYWxsZWQgVGhlIEMgUHJvZ3JhbW1pbmcgTGFuZ3VhZ2Ugd2FzIHB1Ymxpc2hlZCBieSBLZXJuaWdoYW4gYW5kIFJpdGNoaWUuIFRoaXMgYm9vayBoZWxwZWQgbWFueSBwcm9ncmFtbWVycyBsZWFybiBDIGFuZCBpdCBiZWNhbWUgYSBtYWluIGd1aWRlIGZvciB0aGUgbGFuZ3VhZ2UuIExhdGVyIGluIDE5ODkgYSBzdGFuZGFyZCB2ZXJzaW9uIG9mIEMgd2FzIGNyZWF0ZWQgc28gdGhhdCBwcm9ncmFtcyBjb3VsZCB3b3JrIHRoZSBzYW1lIG9uIGRpZmZlcmVudCBjb21wdXRlcnMuIE1vcmUgdXBkYXRlcyBjYW1lIGxhdGVyIGJ1dCB0aGUgbWFpbiBpZGVhIG9mIEMgc3RheWVkIHRoZSBzYW1lLmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudEV2ZW4gdG9kYXkgQyBpcyBzdGlsbCB1c2VkIGluIG1hbnkgaW1wb3J0YW50IHN5c3RlbXMuIEl0IGlzIHRydXN0ZWQgYmVjYXVzZSBpdCBpcyBmYXN0LCBzaW1wbGUgYW5kIHZlcnkgY2xvc2UgdG8gaG93IGNvbXB1dGVycyByZWFsbHkgd29yay5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8c3Ryb25nPkhvdyBDIFByb2dyYW1taW5nIFdvcmtzIFN0ZXAgYnkgU3RlcCA\/PC9zdHJvbmc+ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNhbHRjYXB0aW9uaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRVbmRlcnN0YW5kaW5nIGhvdyBDIHdvcmtzIGludGVybmFsbHkgaXMgd2hhdCBzZXBhcmF0ZXMgZGV2ZWxvcGVycyB3aG8ganVzdCB3cml0ZSBDIGZyb20gdGhvc2Ugd2hvIHRydWx5IHVuZGVyc3RhbmQgaXQuIEMgZG9lcyBub3QgcnVuIHRocm91Z2ggYW4gaW50ZXJwcmV0ZXIgb3IgYSB2aXJ0dWFsIG1hY2hpbmUuIEl0IGZvbGxvd3MgYSBwcmVjaXNlIGNvbXBpbGF0aW9uIHBpcGVsaW5lIHRoYXQgdHJhbnNmb3JtcyB5b3VyIHNvdXJjZSBjb2RlIGludG8gYSBiaW5hcnkgdGhhdCB0aGUgQ1BVIGV4ZWN1dGVzIGRpcmVjdGx5LiBIZXJlIGlzIGV4YWN0bHkgaG93IHRoYXQgcHJvY2VzcyB3b3Jrcy5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8c3Ryb25nPlN0ZXAgMSDigJQgV3JpdGluZyB0aGUgU291cmNlIENvZGU8L3N0cm9uZz5sZXZlbGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50WW91IHdyaXRlIEMgY29kZSBpbiBwbGFpbiB0ZXh0IGZpbGVzIHNhdmVkIHdpdGggYSAuYyBleHRlbnNpb24uIFRoaXMgaXMgeW91ciBodW1hbi1yZWFkYWJsZSBzb3VyY2UgY29kZS4gSXQgY29udGFpbnMgYWxsIHlvdXIgbG9naWMsIGZ1bmN0aW9ucywgdmFyaWFibGVzLCBhbmQgaW5zdHJ1Y3Rpb25zIHdyaXR0ZW4gdXNpbmcgQyBzeW50YXguZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Ly8gaGVsbG8uYyDigJQgeW91ciBzb3VyY2UgZmlsZWRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCNpbmNsdWRlICZsdDtzdGRpby5oJmd0O2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudGludCBtYWluKCkge2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3ByaW50ZigiSGVsbG8gZnJvbSBDIVxuIik7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cmV0dXJuIDA7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50fWRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudEF0IHRoaXMgc3RhZ2UsIHRoZSBmaWxlIGlzIGp1c3QgdGV4dC4gVGhlIGNvbXB1dGVyIGNhbm5vdCBydW4gaXQgeWV0LiBJdCBuZWVkcyB0byBiZSB0cmFuc2Zvcm1lZCBpbnRvIG1hY2hpbmUgaW5zdHJ1Y3Rpb25zIGZpcnN0LmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudDxzdHJvbmc+U3RlcCAyIOKAlCBQcmVwcm9jZXNzaW5nPC9zdHJvbmc+bGV2ZWxpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudEJlZm9yZSBhY3R1YWwgY29tcGlsYXRpb24gc3RhcnRzLCB0aGUgQyBwcmVwcm9jZXNzb3IgcnVucyBmaXJzdC4gSXQgc2NhbnMgeW91ciBzb3VyY2UgZmlsZSBsb29raW5nIGZvciBwcmVwcm9jZXNzb3IgZGlyZWN0aXZlcyDigJQgbGluZXMgdGhhdCBzdGFydCB3aXRoICMuIEl0IHByb2Nlc3NlcyBhbGwgb2YgdGhlc2UgYmVmb3JlIHRoZSBjb21waWxlciBzZWVzIHRoZSBjb2RlLmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudFRoZSBtb3N0IGNvbW1vbiBkaXJlY3RpdmUgaXMgI2luY2x1ZGUsIHdoaWNoIHB1bGxzIGluIHRoZSBjb250ZW50cyBvZiBhIGhlYWRlciBmaWxlLiBXaGVuIHlvdSB3cml0ZSAjaW5jbHVkZSAmbHQ7c3RkaW8uaCZndDssIHRoZSBwcmVwcm9jZXNzb3IgcmVwbGFjZXMgdGhhdCBsaW5lIHdpdGggdGhlIGVudGlyZSBjb250ZW50IG9mIHRoZSBzdGRpby5oIGhlYWRlciBmaWxlIOKAlCB3aGljaCBjb250YWlucyBkZWNsYXJhdGlvbnMgZm9yIGZ1bmN0aW9ucyBsaWtlIHByaW50ZigpLmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCNkZWZpbmUgY3JlYXRlcyBtYWNyb3Mg4oCUIHRleHQgc3Vic3RpdHV0aW9ucyB0aGF0IHRoZSBwcmVwcm9jZXNzb3IgcmVwbGFjZXMgYmVmb3JlIGNvbXBpbGF0aW9uLmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCNpbmNsdWRlICZsdDtzdGRpby5oJmd0O2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudC8vIFByZXByb2Nlc3NvciBtYWNybyDigJQgcmVwbGFjZWQgYmVmb3JlIGNvbXBpbGF0aW9uZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50I2RlZmluZSBNQVhfU0laRSAxMDBkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQjZGVmaW5lIFNRVUFSRSh4KSAoKHgpICogKHgpKWRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCNkZWZpbmUgUEkgMy4xNDE1OWRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudGludCBtYWluKCkge2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3ByaW50ZigiTWF4IHNpemU6ICVkXG4iLCBNQVhfU0laRSk7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cHJpbnRmKCJTcXVhcmUgb2YgNzogJWRcbiIsIFNRVUFSRSg3KSk7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cHJpbnRmKCJQSSB2YWx1ZTogJS41ZlxuIiwgUEkpO2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3ByaW50ZigiQXJlYSBvZiBjaXJjbGUgKHI9NSk6ICUuMmZcbiIsIFBJICogU1FVQVJFKDUpKTtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtyZXR1cm4gMDtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnR9ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz5PdXRwdXQ6PC9zdHJvbmc+ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50TWF4IHNpemU6IDEwMGRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudFNxdWFyZSBvZiA3OiA0OWRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudFBJIHZhbHVlOiAzLjE0MTU5ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50QXJlYSBvZiBjaXJjbGUgKHI9NSk6IDc4LjU0ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50QWZ0ZXIgcHJlcHJvY2Vzc2luZywgYWxsIG1hY3JvcyBhcmUgZXhwYW5kZWQgYW5kIGFsbCAjaW5jbHVkZSBkaXJlY3RpdmVzIGFyZSByZXBsYWNlZC4gVGhlIHByZXByb2Nlc3NvciBwcm9kdWNlcyBhIG1vZGlmaWVkIHZlcnNpb24gb2YgeW91ciBzb3VyY2UgZmlsZSB0aGF0IHRoZSBjb21waWxlciB0aGVuIHJlY2VpdmVzLmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudDxzdHJvbmc+U3RlcCAzIOKAlCBDb21waWxhdGlvbjwvc3Ryb25nPmxldmVsaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRUaGUgY29tcGlsZXIgdGFrZXMgeW91ciBjb2RlIGFmdGVyIHByZXByb2Nlc3NpbmcgYW5kIGNoYW5nZXMgaXQgaW50byBhc3NlbWJseSBsYW5ndWFnZS4gQXNzZW1ibHkgbGFuZ3VhZ2UgaXMgYSBzaW1wbGUgZm9ybSBvZiBpbnN0cnVjdGlvbnMgdGhhdCB0aGUgY29tcHV0ZXIgY2FuIHVuZGVyc3RhbmQuIEl0IGRlcGVuZHMgb24gdGhlIHR5cGUgb2YgcHJvY2Vzc29yIGxpa2UgeDg2IG9yIEFSTS5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRUaGlzIGlzIGFsc28gdGhlIHN0YWdlIHdoZXJlIHRoZSBjb21waWxlciBjaGVja3MgeW91ciBjb2RlIGZvciBtaXN0YWtlcy4gSXQgbG9va3MgZm9yIHN5bnRheCBlcnJvcnMgYW5kIG90aGVyIHByb2JsZW1zLiBJZiB5b3UgZm9yZ2V0IGEgc2VtaWNvbG9uIG9yIHVzZSBhIHZhcmlhYmxlIHRoYXQgaXMgbm90IGRlZmluZWQgdGhlIGNvbXBpbGVyIHdpbGwgc2hvdyBhbiBlcnJvciBhdCB0aGlzIHN0YWdlLmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudFRoZSBjb21waWxlciBhbHNvIHRyaWVzIHRvIG1ha2UgeW91ciBwcm9ncmFtIGJldHRlciBhbmQgZmFzdGVyLiBJdCBjYW4gaW1wcm92ZSB0aGUgY29kZSBieSByZW1vdmluZyBleHRyYSBzdGVwcyBjb21iaW5pbmcgc21hbGwgZnVuY3Rpb25zIGFuZCBjaGFuZ2luZyB0aGUgb3JkZXIgb2YgaW5zdHJ1Y3Rpb25zLiBUaGVzZSBpbXByb3ZlbWVudHMgaGVscCB0aGUgcHJvZ3JhbSBydW4gbW9yZSBlZmZpY2llbnRseSBvbiB0aGUgY29tcHV0ZXIuZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz5Db21waWxlIGNvbW1hbmQ6PC9zdHJvbmc+ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Z2NjIC1XYWxsIC1PMiAtYyBoZWxsby5jIC1vIGhlbGxvLm9kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRUaGUgLVdhbGwgZmxhZyBlbmFibGVzIGFsbCB3YXJuaW5ncy4gLU8yIGVuYWJsZXMgbGV2ZWwtMiBvcHRpbWl6YXRpb24uIC1jIHRlbGxzIHRoZSBjb21waWxlciB0byBwcm9kdWNlIGFuIG9iamVjdCBmaWxlIHdpdGhvdXQgbGlua2luZy5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8c3Ryb25nPlN0ZXAgNCDigJQgQXNzZW1ibHk8L3N0cm9uZz5sZXZlbGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50VGhlIGFzc2VtYmxlciB0YWtlcyB0aGUgYXNzZW1ibHkgY29kZSBwcm9kdWNlZCBieSB0aGUgY29tcGlsZXIgYW5kIGNvbnZlcnRzIGl0IGludG8gbWFjaGluZSBjb2RlIOKAlCBiaW5hcnkgaW5zdHJ1Y3Rpb25zICh6ZXJvcyBhbmQgb25lcykgdGhhdCB0aGUgQ1BVIGNhbiBkaXJlY3RseSB1bmRlcnN0YW5kIGFuZCBleGVjdXRlLmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudFRoZSBvdXRwdXQgb2YgdGhpcyBzdGVwIGlzIGFuIG9iamVjdCBmaWxlICgubyBvciAub2JqIG9uIFdpbmRvd3MpLiBPYmplY3QgZmlsZXMgY29udGFpbiBtYWNoaW5lIGNvZGUgYnV0IGFyZSBub3QgeWV0IGV4ZWN1dGFibGUg4oCUIHRoZXkgbWF5IHJlZmVyZW5jZSBmdW5jdGlvbnMgb3IgdmFyaWFibGVzIGRlZmluZWQgaW4gb3RoZXIgZmlsZXMuZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz5TdGVwIDUg4oCUIExpbmtpbmc8L3N0cm9uZz5sZXZlbGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50VGhlIGxpbmtlciBpcyB0aGUgZmluYWwgc3RlcC4gSXQgdGFrZXMgb25lIG9yIG1vcmUgb2JqZWN0IGZpbGVzIGFuZCBjb21iaW5lcyB0aGVtIHdpdGggYW55IHJlcXVpcmVkIGxpYnJhcmllcyAobGlrZSB0aGUgQyBTdGFuZGFyZCBMaWJyYXJ5KSB0byBwcm9kdWNlIGEgc2luZ2xlIGV4ZWN1dGFibGUgYmluYXJ5LmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudElmIHlvdXIgcHJvZ3JhbSBjYWxscyBwcmludGYoKSwgdGhlIGxpbmtlciBjb25uZWN0cyB5b3VyIGNvZGUgdG8gdGhlIGFjdHVhbCBpbXBsZW1lbnRhdGlvbiBvZiBwcmludGYoKSBpbiB0aGUgU3RhbmRhcmQgTGlicmFyeS4gSWYgeW91IGhhdmUgbXVsdGlwbGUgLmMgZmlsZXMgaW4geW91ciBwcm9qZWN0LCB0aGUgbGlua2VyIGNvbWJpbmVzIGFsbCB0aGVpciBjb21waWxlZCBvYmplY3QgZmlsZXMgaW50byBvbmUgZXhlY3V0YWJsZS5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8c3Ryb25nPkxpbmsgY29tbWFuZDo8L3N0cm9uZz5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRnY2MgaGVsbG8ubyAtbyBoZWxsbyAtbG1kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRUaGUgLWxtIGZsYWcgbGlua3MgdGhlIG1hdGggbGlicmFyeS4gVGhlIG91dHB1dCBoZWxsbyBpcyB0aGUgZmluYWwgZXhlY3V0YWJsZSBiaW5hcnkuZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz5TdGVwIDYg4oCUIEV4ZWN1dGlvbjwvc3Ryb25nPmxldmVsaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRXaGVuIHlvdSBydW4gdGhlIGV4ZWN1dGFibGUsIHRoZSBvcGVyYXRpbmcgc3lzdGVtIGxvYWRzIGl0IGludG8gbWVtb3J5IGFuZCBoYW5kcyBjb250cm9sIHRvIHRoZSBtYWluKCkgZnVuY3Rpb24uIEZyb20gdGhhdCBwb2ludCwgdGhlIENQVSBleGVjdXRlcyB5b3VyIGluc3RydWN0aW9ucyBkaXJlY3RseSDigJQgbm8gaW50ZXJwcmV0ZXIsIG5vIHZpcnR1YWwgbWFjaGluZSwgbm8gdHJhbnNsYXRpb24gbGF5ZXIuZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Li9oZWxsb2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudDxzdHJvbmc+T3V0cHV0Ojwvc3Ryb25nPmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudEhlbGxvIGZyb20gQyFkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRUaGlzIGRpcmVjdCBleGVjdXRpb24gaXMgd2h5IEMgaXMgZmFzdC4gVGhlIHBhdGggZnJvbSB5b3VyIHNvdXJjZSBjb2RlIHRvIHRoZSBDUFUgaXMgYXMgc2hvcnQgYXMgcG9zc2libGUuZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz5Db21wbGV0ZSBDb21waWxhdGlvbiBQaXBlbGluZSBPdmVydmlldzwvc3Ryb25nPmxldmVsaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRTb3VyY2UgQ29kZSAoLmMpZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A74oaTZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7UHJlcHJvY2Vzc29yJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IOKGkCBIYW5kbGVzICNpbmNsdWRlLCAjZGVmaW5lLCBtYWNyb3Nkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDvihpNkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRQcmVwcm9jZXNzZWQgQ29kZWRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO+KGk2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwO0NvbXBpbGVyICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg4oaQIFRyYW5zbGF0ZXMgdG8gYXNzZW1ibHksIGNoZWNrcyBzeW50YXgsIG9wdGltaXplc2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO+KGk2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwO0Fzc2VtYmx5IENvZGVkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDvihpNkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDtBc3NlbWJsZXImbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IOKGkCBDb252ZXJ0cyBhc3NlbWJseSB0byBiaW5hcnkgbWFjaGluZSBjb2RlZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A74oaTZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7T2JqZWN0IEZpbGUgKC5vKWRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO+KGk2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0xpbmtlciZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IOKGkCBDb21iaW5lcyBvYmplY3QgZmlsZXMgKyBsaWJyYXJpZXNkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDvihpNkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRFeGVjdXRhYmxlIEJpbmFyeSAmbmJzcDsgJm5ic3A7IOKGkCBSdW5zIGRpcmVjdGx5IG9uIENQVWRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudFVuZGVyc3RhbmRpbmcgdGhpcyBwaXBlbGluZSBoZWxwcyB5b3UgZGVidWcgY29tcGlsYXRpb24gZXJyb3JzLCB1bmRlcnN0YW5kIG9wdGltaXphdGlvbiBmbGFncywgYW5kIGtub3cgZXhhY3RseSB3aGF0IGhhcHBlbnMgd2hlbiB5b3VyIEMgcHJvZ3JhbSBydW5zLmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudDxzdHJvbmc+RmVhdHVyZXMgb2YgQyBQcm9ncmFtbWluZy48L3N0cm9uZz5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2FsdGNhcHRpb25pbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudEMgUHJvZ3JhbW1pbmcgaGFzIG1hbnkgc3Ryb25nIGZlYXR1cmVzIHRoYXQgbWFrZSBpdCB2ZXJ5IHBvcHVsYXIgZXZlbiB0b2RheSBpbiAyMDI2IGFuZCBiZXlvbmQuIFRoZXNlIGZlYXR1cmVzIGFyZSBub3QganVzdCBpZGVhcyB0aGV5IGFyZSByZWFsIHJlYXNvbnMgd2h5IEMgaXMgdXNlZCBpbiBvcGVyYXRpbmcgc3lzdGVtcyBlbWJlZGRlZCBzeXN0ZW1zIGRhdGFiYXNlcyBhbmQgZmFzdCBzb2Z0d2FyZSBhbGwgb3ZlciB0aGUgd29ybGQuPGJyPjxicj48c3Ryb25nPjEuIFNpbXBsaWNpdHkgYW5kIENsZWFuIHN5bnRheDwvc3Ryb25nPmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudEMgaGFzIGEgdmVyeSBzaW1wbGUgc3RydWN0dXJlLiBJdCB1c2VzIG9ubHkgMzIgbWFpbiBrZXl3b3Jkcy4gQmVjYXVzZSBvZiB0aGlzIGl0IGlzIGVhc3kgdG8gbGVhcm4gZm9yIGJlZ2lubmVycyBhbmQgYWxzbyBwb3dlcmZ1bCBmb3IgZXhwZXJ0cy4gRXZlcnkgbGluZSBvZiBjb2RlIGluIEMgaGFzIGEgY2xlYXIgbWVhbmluZy4gVGhlcmUgYXJlIG5vIGhpZGRlbiBhY3Rpb25zIGFuZCBub3RoaW5nIHJ1bnMgaW4gdGhlIGJhY2tncm91bmQgd2l0aG91dCB0aGUgcHJvZ3JhbW1lciBrbm93aW5nLmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCNpbmNsdWRlICZsdDtzdGRpby5oJmd0O2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudGludCBtYWluKCkge2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2ludCB4ID0gMTA7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7aW50IHkgPSAyMDtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtpbnQgc3VtID0geCArIHk7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cHJpbnRmKCJTdW0gb2YgJWQgYW5kICVkIGlzICVkXG4iLCB4LCB5LCBzdW0pO2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3JldHVybiAwO2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudH1kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8c3Ryb25nPk91dHB1dDo8L3N0cm9uZz5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRTdW0gb2YgMTAgYW5kIDIwIGlzIDMwZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50RXZlbiB0aGlzIHNpbXBsZSBwcm9ncmFtIHNob3dzIEMncyBjbGFyaXR5IOKAlCBldmVyeSBsaW5lIGhhcyBhIGRpcmVjdCBwdXJwb3NlIHdpdGggbm8gdW5uZWNlc3Nhcnkgc3ludGF4IHN1cnJvdW5kaW5nIGl0LmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudDxzdHJvbmc+Mi4gUG9ydGFiaWxpdHkgQWNyb3NzIFBsYXRmb3Jtczwvc3Ryb25nPmxldmVsaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRBIEMgcHJvZ3JhbSB3cml0dGVuIG9uIG9uZSBtYWNoaW5lIGNhbiBiZSBjb21waWxlZCBhbmQgcnVuIG9uIGEgY29tcGxldGVseSBkaWZmZXJlbnQgbWFjaGluZSwgb3BlcmF0aW5nIHN5c3RlbSwgb3IgaGFyZHdhcmUgYXJjaGl0ZWN0dXJlIHdpdGggbWluaW1hbCBvciBubyBjaGFuZ2VzLiBDIGNvbXBpbGVycyBleGlzdCBmb3IgdmlydHVhbGx5IGV2ZXJ5IHBsYXRmb3JtIOKAlCB4ODYsIEFSTSwgUklTQy1WLCBNSVBTLCBQb3dlclBDLCBhbmQgbW9yZS5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQjaW5jbHVkZSAmbHQ7c3RkaW8uaCZndDtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQvLyBSdW5zIGlkZW50aWNhbGx5IG9uIFdpbmRvd3MsIExpbnV4LCBtYWNPUywgYW5kIGVtYmVkZGVkIEFSTWRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudGludCBtYWluKCkge2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3ByaW50ZigiUG9ydGFibGUgQyBwcm9ncmFtIVxuIik7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cHJpbnRmKCJpbnQgc2l6ZTombmJzcDsgJm5ic3A7ICVsdSBieXRlc1xuIiwgc2l6ZW9mKGludCkpO2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3ByaW50ZigibG9uZyBzaXplOiAmbmJzcDsgJWx1IGJ5dGVzXG4iLCBzaXplb2YobG9uZykpO2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3ByaW50ZigiZG91YmxlIHNpemU6ICVsdSBieXRlc1xuIiwgc2l6ZW9mKGRvdWJsZSkpO2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3JldHVybiAwO2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudH1kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8c3Ryb25nPk91dHB1dDo8L3N0cm9uZz5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRQb3J0YWJsZSBDIHByb2dyYW0hZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50aW50IHNpemU6Jm5ic3A7ICZuYnNwOyA0IGJ5dGVzZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50bG9uZyBzaXplOiAmbmJzcDsgOCBieXRlc2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudGRvdWJsZSBzaXplOiA4IGJ5dGVzZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz4zLiBIaWdoIFBlcmZvcm1hbmNlIGFuZCBTcGVlZDwvc3Ryb25nPmxldmVsaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRDIGNvbXBpbGVzIGRpcmVjdGx5IHRvIG5hdGl2ZSBtYWNoaW5lIGNvZGUuIFRoZXJlIGlzIG5vIGludGVycHJldGVyLCBubyB2aXJ0dWFsIG1hY2hpbmUsIG5vIGdhcmJhZ2UgY29sbGVjdG9yLiBUaGUgYmluYXJ5IHJ1bnMgZGlyZWN0bHkgb24gdGhlIENQVSB3aXRoIHplcm8gcnVudGltZSBvdmVyaGVhZCDigJQgd2hpY2ggaXMgd2h5IEMgaXMgdXNlZCB3aGVyZXZlciBwZXJmb3JtYW5jZSBpcyBub24tbmVnb3RpYWJsZS5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQjaW5jbHVkZSAmbHQ7c3RkaW8uaCZndDtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQjaW5jbHVkZSAmbHQ7dGltZS5oJmd0O2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudGludCBtYWluKCkge2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2Nsb2NrX3Qgc3RhcnQgPSBjbG9jaygpO2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2xvbmcgbG9uZyBzdW0gPSAwO2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2ZvciAobG9uZyBsb25nIGkgPSAxOyBpICZsdDs9IDEwMDAwMDAwMDBMTDsgaSsrKSB7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7c3VtICs9IGk7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7fWRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2RvdWJsZSB0aW1lX3Rha2VuID0gKGRvdWJsZSkoY2xvY2soKSAtIHN0YXJ0KSAvIENMT0NLU19QRVJfU0VDO2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3ByaW50ZigiU3VtOiAlbGxkXG4iLCBzdW0pO2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3ByaW50ZigiVGltZTogJS4zZiBzZWNvbmRzXG4iLCB0aW1lX3Rha2VuKTtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtyZXR1cm4gMDtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnR9ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz5PdXRwdXQ6PC9zdHJvbmc+ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50U3VtOiA1MDAwMDAwMDA1MDAwMDAwMDBkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRUaW1lOiAwLjM4NyBzZWNvbmRzZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50U3VtbWluZyBvbmUgYmlsbGlvbiBudW1iZXJzIGluIHVuZGVyIDAuNCBzZWNvbmRzIOKAlCB0aGlzIGlzIG5hdGl2ZSBtYWNoaW5lIGNvZGUgcGVyZm9ybWFuY2UuZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz40LiBNb2R1bGFyaXR5IFRocm91Z2ggRnVuY3Rpb25zPC9zdHJvbmc+bGV2ZWxpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudEMgc3VwcG9ydHMgc3RydWN0dXJlZCBwcm9ncmFtbWluZyBieSBvcmdhbml6aW5nIGNvZGUgaW50byBmdW5jdGlvbnMuIEVhY2ggZnVuY3Rpb24gZG9lcyBvbmUgdGhpbmcuIFRoaXMgbWFrZXMgcHJvZ3JhbXMgZWFzaWVyIHRvIHJlYWQsIHRlc3QsIGRlYnVnLCBhbmQgbWFpbnRhaW4uIExhcmdlIHByb2plY3RzIGxpa2UgdGhlIExpbnV4IGtlcm5lbCBjb250YWluIGh1bmRyZWRzIG9mIHRob3VzYW5kcyBvZiBmdW5jdGlvbnMuZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50I2luY2x1ZGUgJmx0O3N0ZGlvLmgmZ3Q7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50aW50IGZpbmRNYXgoaW50IGEsIGludCBiLCBpbnQgYykge2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2ludCBtYXggPSBhO2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2lmIChiICZndDsgbWF4KSBtYXggPSBiO2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2lmIChjICZndDsgbWF4KSBtYXggPSBjO2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3JldHVybiBtYXg7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50fWRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudGZsb2F0IGZpbmRBdmVyYWdlKGludCBhLCBpbnQgYiwgaW50IGMpIHtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtyZXR1cm4gKGZsb2F0KShhICsgYiArIGMpIC8gMy4wZjtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnR9ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50aW50IGlzUHJpbWUoaW50IG4pIHtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtpZiAobiAmbHQ7IDIpIHJldHVybiAwO2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2ZvciAoaW50IGkgPSAyOyBpICogaSAmbHQ7PSBuOyBpKyspZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7aWYgKG4gJSBpID09IDApIHJldHVybiAwO2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3JldHVybiAxO2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudH1kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRpbnQgbWFpbigpIHtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtpbnQgeCA9IDQ1LCB5ID0gODIsIHogPSA2Mztkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtwcmludGYoIk1heDogJWRcbiIsIGZpbmRNYXgoeCwgeSwgeikpO2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3ByaW50ZigiQXZlcmFnZTogJS4yZlxuIiwgZmluZEF2ZXJhZ2UoeCwgeSwgeikpO2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3ByaW50ZigiSXMgODIgcHJpbWU\/ICVzXG4iLCBpc1ByaW1lKDgyKSA\/ICJZZXMiIDogIk5vIik7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cHJpbnRmKCJJcyA4MyBwcmltZT8gJXNcbiIsIGlzUHJpbWUoODMpID8gIlllcyIgOiAiTm8iKTtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtyZXR1cm4gMDtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnR9ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz5PdXRwdXQ6PC9zdHJvbmc+ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50TWF4OiA4MmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudEF2ZXJhZ2U6IDYzLjMzZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50SXMgODIgcHJpbWU\/IE5vZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50SXMgODMgcHJpbWU\/IFllc2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudDxzdHJvbmc+NS4gUmljaCBTdGFuZGFyZCBMaWJyYXJ5PC9zdHJvbmc+bGV2ZWxpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudEMgcHJvdmlkZXMgYSBjb21wcmVoZW5zaXZlIFN0YW5kYXJkIExpYnJhcnkgdGhyb3VnaCBoZWFkZXIgZmlsZXMuIFRoZXNlIGNvdmVyIEkvTyBvcGVyYXRpb25zLCBzdHJpbmcgbWFuaXB1bGF0aW9uLCBtYXRoZW1hdGljYWwgZnVuY3Rpb25zLCBtZW1vcnkgbWFuYWdlbWVudCwgZmlsZSBoYW5kbGluZywgYW5kIG1vcmUg4oCUIGFsbCB3aXRob3V0IGV4dGVybmFsIGRlcGVuZGVuY2llcy5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQjaW5jbHVkZSAmbHQ7c3RkaW8uaCZndDtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQjaW5jbHVkZSAmbHQ7c3RyaW5nLmgmZ3Q7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50I2luY2x1ZGUgJmx0O21hdGguaCZndDtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQjaW5jbHVkZSAmbHQ7c3RkbGliLmgmZ3Q7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50aW50IG1haW4oKSB7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ly8gU3RyaW5nIGZ1bmN0aW9uc2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2NoYXIgdGV4dFtdID0gIkMgUHJvZ3JhbW1pbmciO2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3ByaW50ZigiU3RyaW5nOiAlc1xuIiwgdGV4dCk7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cHJpbnRmKCJMZW5ndGg6ICVsdVxuIiwgc3RybGVuKHRleHQpKTtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsvLyBNYXRoIGZ1bmN0aW9uc2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3ByaW50ZigiXG5zcXJ0KDIyNSkgPSAlLjBmXG4iLCBzcXJ0KDIyNSkpO2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3ByaW50ZigicG93KDIsMTApID0gJS4wZlxuIiwgcG93KDIsIDEwKSk7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cHJpbnRmKCJjZWlsKDQuMikgPSAlLjBmXG4iLCBjZWlsKDQuMikpO2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3ByaW50ZigiZmxvb3IoNC45KSA9ICUuMGZcbiIsIGZsb29yKDQuOSkpO2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOy8vIFJhbmRvbSBudW1iZXJkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtzcmFuZCg0Mik7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cHJpbnRmKCJcblJhbmRvbSAoMS0xMDApOiAlZFxuIiwgKHJhbmQoKSAlIDEwMCkgKyAxKTtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtyZXR1cm4gMDtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnR9ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz5PdXRwdXQ6PC9zdHJvbmc+ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50U3RyaW5nOiBDIFByb2dyYW1taW5nZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50TGVuZ3RoOiAxM2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudHNxcnQoMjI1KSA9IDE1ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50cG93KDIsMTApID0gMTAyNGRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudGNlaWwoNC4yKSA9IDVkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRmbG9vcig0LjkpID0gNGRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudFJhbmRvbSAoMS0xMDApOiAzN2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudDxzdHJvbmc+Ni4gTWFudWFsIE1lbW9yeSBNYW5hZ2VtZW50PC9zdHJvbmc+bGV2ZWxpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudEMgZ2l2ZXMgcHJvZ3JhbW1lcnMgY29tcGxldGUsIGRpcmVjdCBjb250cm9sIG92ZXIgbWVtb3J5IHRocm91Z2ggbWFsbG9jKCksIGNhbGxvYygpLCByZWFsbG9jKCksIGFuZCBmcmVlKCkuIFlvdSBkZWNpZGUgZXhhY3RseSB3aGVuIG1lbW9yeSBpcyBhbGxvY2F0ZWQgYW5kIHdoZW4gaXQgaXMgcmVsZWFzZWQg4oCUIHRoZXJlIGlzIG5vIGdhcmJhZ2UgY29sbGVjdG9yIG1ha2luZyB0aG9zZSBkZWNpc2lvbnMgZm9yIHlvdS5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQjaW5jbHVkZSAmbHQ7c3RkaW8uaCZndDtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQjaW5jbHVkZSAmbHQ7c3RkbGliLmgmZ3Q7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50aW50IG1haW4oKSB7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7aW50IG4gPSA1O2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2ludCAqYXJyID0gKGludCAqKW1hbGxvYyhuICogc2l6ZW9mKGludCkpO2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2lmIChhcnIgPT0gTlVMTCkge2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3ByaW50ZigiTWVtb3J5IGFsbG9jYXRpb24gZmFpbGVkIVxuIik7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cmV0dXJuIDE7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7fWRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOy8vIFN0b3JlIHNxdWFyZXNkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtmb3IgKGludCBpID0gMDsgaSAmbHQ7IG47IGkrKylkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDthcnJbaV0gPSAoaSArIDEpICogKGkgKyAxKTtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtwcmludGYoIlNxdWFyZXMgc3RvcmVkIGluIGR5bmFtaWMgbWVtb3J5OlxuIik7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Zm9yIChpbnQgaSA9IDA7IGkgJmx0OyBuOyBpKyspZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cHJpbnRmKCJhcnJbJWRdID0gJWRcbiIsIGksIGFycltpXSk7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ZnJlZShhcnIpOyZuYnNwOyAvLyBBbHdheXMgZnJlZSB3aGF0IHlvdSBhbGxvY2F0ZWRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3ByaW50ZigiTWVtb3J5IGZyZWVkLlxuIik7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cmV0dXJuIDA7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50fWRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudDxzdHJvbmc+T3V0cHV0Ojwvc3Ryb25nPmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudFNxdWFyZXMgc3RvcmVkIGluIGR5bmFtaWMgbWVtb3J5OmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudGFyclswXSA9IDFkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRhcnJbMV0gPSA0ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50YXJyWzJdID0gOWRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudGFyclszXSA9IDE2ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50YXJyWzRdID0gMjVkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRNZW1vcnkgZnJlZWQuZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz43LiBQb2ludGVycyDigJQgRGlyZWN0IE1lbW9yeSBBY2Nlc3M8L3N0cm9uZz5sZXZlbGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50UG9pbnRlcnMgc3RvcmUgbWVtb3J5IGFkZHJlc3Nlcy4gVGhyb3VnaCBwb2ludGVycywgQyBnaXZlcyBkaXJlY3QgYWNjZXNzIHRvIG1lbW9yeSwgZW5hYmxpbmcgZHluYW1pYyBkYXRhIHN0cnVjdHVyZXMsIGVmZmljaWVudCBmdW5jdGlvbiBwYXJhbWV0ZXIgcGFzc2luZywgYW5kIGhhcmR3YXJlLWxldmVsIHByb2dyYW1taW5nIHRoYXQgaXMgc2ltcGx5IG5vdCBwb3NzaWJsZSBpbiBtb3N0IG90aGVyIGxhbmd1YWdlcy5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQjaW5jbHVkZSAmbHQ7c3RkaW8uaCZndDtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnR2b2lkIHN3YXAoaW50ICphLCBpbnQgKmIpIHtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtpbnQgdGVtcCA9ICphO2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyphID0gKmI7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7KmIgPSB0ZW1wO2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudH1kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRpbnQgbWFpbigpIHtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtpbnQgeCA9IDEwMCwgeSA9IDIwMDtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtwcmludGYoIkJlZm9yZTogeCA9ICVkLCB5ID0gJWRcbiIsIHgsIHkpO2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3N3YXAoJmFtcDt4LCAmYW1wO3kpO2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3ByaW50ZigiQWZ0ZXI6Jm5ic3A7IHggPSAlZCwgeSA9ICVkXG4iLCB4LCB5KTtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsvLyBQb2ludGVyIGFyaXRobWV0aWNkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtpbnQgbnVtYmVyc1tdID0gezEwLCAyMCwgMzAsIDQwLCA1MH07ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7aW50ICpwdHIgPSBudW1iZXJzO2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3ByaW50ZigiXG5UcmF2ZXJzaW5nIGFycmF5IHdpdGggcG9pbnRlcjpcbiIpO2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2ZvciAoaW50IGkgPSAwOyBpICZsdDsgNTsgaSsrKSB7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cHJpbnRmKCIqKHB0cislZCkgPSAlZFxuIiwgaSwgKihwdHIgKyBpKSk7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7fWRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3JldHVybiAwO2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudH1kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8c3Ryb25nPk91dHB1dDo8L3N0cm9uZz5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRCZWZvcmU6IHggPSAxMDAsIHkgPSAyMDBkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRBZnRlcjombmJzcDsgeCA9IDIwMCwgeSA9IDEwMGRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudFRyYXZlcnNpbmcgYXJyYXkgd2l0aCBwb2ludGVyOmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCoocHRyKzApID0gMTBkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQqKHB0cisxKSA9IDIwZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50KihwdHIrMikgPSAzMGRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCoocHRyKzMpID0gNDBkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQqKHB0cis0KSA9IDUwZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz44LiBEaXJlY3QgSGFyZHdhcmUgQWNjZXNzPC9zdHJvbmc+bGV2ZWxpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudFRocm91Z2ggcG9pbnRlcnMgYW5kIG1lbW9yeS1tYXBwZWQgSS9PLCBDIGFsbG93cyBkaXJlY3QgaW50ZXJhY3Rpb24gd2l0aCBoYXJkd2FyZSBjb21wb25lbnRzIOKAlCBwcm9jZXNzb3JzLCBtZW1vcnkgcmVnaXN0ZXJzLCBHUElPIHBpbnMsIGNvbW11bmljYXRpb24gYnVzZXMsIGFuZCBwZXJpcGhlcmFscy4gVGhpcyBpcyB3aHkgQyBkb21pbmF0ZXMgZW1iZWRkZWQgc3lzdGVtcyBkZXZlbG9wbWVudC5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQvLyBIYXJkd2FyZSByZWdpc3RlciBhY2Nlc3MgaW4gZW1iZWRkZWQgQ2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudC8vIChDb25jZXB0dWFsIOKAlCByZWFsIGFkZHJlc3NlcyBkZXBlbmQgb24gdGhlIG1pY3JvY29udHJvbGxlcilkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQjaW5jbHVkZSAmbHQ7c3RkaW8uaCZndDtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQvLyBTaW11bGF0aW5nIG1lbW9yeS1tYXBwZWQgaGFyZHdhcmUgcmVnaXN0ZXJzZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50dW5zaWduZWQgaW50IEdQSU9fT1VUUFVUID0gMHgwMDAwMDAwMDtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnR2b2lkIHNldFBpbkhpZ2goaW50IHBpbikge2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dQSU9fT1VUUFVUIHw9ICgxICZsdDsmbHQ7IHBpbik7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cHJpbnRmKCJQaW4gJWQgc2V0IEhJR0ggfCBSZWdpc3RlcjogMHglMDhYXG4iLCBwaW4sIEdQSU9fT1VUUFVUKTtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnR9ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50dm9pZCBzZXRQaW5Mb3coaW50IHBpbikge2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dQSU9fT1VUUFVUICZhbXA7PSB+KDEgJmx0OyZsdDsgcGluKTtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtwcmludGYoIlBpbiAlZCBzZXQgTE9XJm5ic3A7IHwgUmVnaXN0ZXI6IDB4JTA4WFxuIiwgcGluLCBHUElPX09VVFBVVCk7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50fWRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudGludCBtYWluKCkge2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3ByaW50ZigiSGFyZHdhcmUgR1BJTyBDb250cm9sIFNpbXVsYXRpb25cblxuIik7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7c2V0UGluSGlnaCgwKTtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtzZXRQaW5IaWdoKDMpO2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3NldFBpbkhpZ2goNyk7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7c2V0UGluTG93KDMpO2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3JldHVybiAwO2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudH1kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8c3Ryb25nPk91dHB1dDo8L3N0cm9uZz5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRIYXJkd2FyZSBHUElPIENvbnRyb2wgU2ltdWxhdGlvbmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudFBpbiAwIHNldCBISUdIIHwgUmVnaXN0ZXI6IDB4MDAwMDAwMDFkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRQaW4gMyBzZXQgSElHSCB8IFJlZ2lzdGVyOiAweDAwMDAwMDA5ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50UGluIDcgc2V0IEhJR0ggfCBSZWdpc3RlcjogMHgwMDAwMDA4OWRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudFBpbiAzIHNldCBMT1cmbmJzcDsgfCBSZWdpc3RlcjogMHgwMDAwMDA4MWRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudDxzdHJvbmc+QXBwbGljYXRpb25zIGFuZCBVc2VzIG9mIEMgUHJvZ3JhbW1pbmc8L3N0cm9uZz5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRDIFByb2dyYW1taW5nIGlzIHZlcnkgcG93ZXJmdWwgYW5kIGZsZXhpYmxlLiBJdCBpcyB1c2VkIHRvIGJ1aWxkIHZlcnkgaW1wb3J0YW50IHNvZnR3YXJlIHN5c3RlbXMuIFRoZXNlIHN5c3RlbXMgYXJlIHVzZWQgZXZlcnkgZGF5IGJ5IGJpbGxpb25zIG9mIHBlb3BsZSBpbiAyMDI2LmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudDxzdHJvbmc+MS48L3N0cm9uZz4gPHN0cm9uZz5PcGVyYXRpbmcgU3lzdGVtcyBEZXZlbG9wbWVudDwvc3Ryb25nPmxldmVsaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8YnI+T3BlcmF0aW5nIHN5c3RlbXMgY29udHJvbCBjb21wdXRlciBoYXJkd2FyZSBhbmQgcnVuIGFsbCBhcHBzLiBUaGV5IGFsc28gbWFuYWdlIGZpbGVzIGFuZCBzeXN0ZW0gdGFza3MuIEMgaXMgdXNlZCB0byBidWlsZCBhbG1vc3QgYWxsIG1ham9yIG9wZXJhdGluZyBzeXN0ZW1zLmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudFVOSVggd2FzIHRoZSBmaXJzdCBvcGVyYXRpbmcgc3lzdGVtIHJld3JpdHRlbiB1c2luZyBDLiBMaW51eCBpcyBhbHNvIG1vc3RseSB3cml0dGVuIGluIEMuIExpbnV4IGlzIHVzZWQgaW4gQW5kcm9pZCBwaG9uZXMgd2ViIHNlcnZlcnMgYmlnIGNvbXB1dGVycyBhbmQgY2xvdWQgc3lzdGVtcy4gUGFydHMgb2YgV2luZG93cyBhbmQgbWFjT1MgYXJlIGFsc28gYnVpbHQgdXNpbmcgQyBhbmQgQyBwbHVzIHBsdXMuZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50I2luY2x1ZGUgJmx0O3N0ZGlvLmgmZ3Q7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50I2luY2x1ZGUgJmx0O3VuaXN0ZC5oJmd0O2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCNpbmNsdWRlICZsdDtzeXMvdHlwZXMuaCZndDtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRpbnQgbWFpbigpIHtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsvLyBEaXJlY3QgT1MgaW50ZXJhY3Rpb24gdGhyb3VnaCBzeXN0ZW0gY2FsbHNkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtwaWRfdCBwaWQmbmJzcDsgPSBnZXRwaWQoKTtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtwaWRfdCBwcGlkID0gZ2V0cHBpZCgpO2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3VpZF90IHVpZCZuYnNwOyA9IGdldHVpZCgpO2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3ByaW50ZigiUHJvY2VzcyBJRCAmbmJzcDsgJm5ic3A7ICZuYnNwOyA6ICVkXG4iLCBwaWQpO2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3ByaW50ZigiUGFyZW50IFByb2Nlc3MgSUQ6ICVkXG4iLCBwcGlkKTtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtwcmludGYoIlVzZXIgSUQmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDogJWRcbiIsIHVpZCk7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cmV0dXJuIDA7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50fWRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudDxzdHJvbmc+T3V0cHV0Ojwvc3Ryb25nPmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudFByb2Nlc3MgSUQgJm5ic3A7ICZuYnNwOyAmbmJzcDsgOiAxNDgyM2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudFBhcmVudCBQcm9jZXNzIElEOiAxNDgyMGRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudFVzZXIgSUQmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDogMTAwMGRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudDxzdHJvbmc+Mi4gRW1iZWRkZWQgU3lzdGVtcyBhbmQgTWljcm9jb250cm9sbGVyczwvc3Ryb25nPmxldmVsaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRFbWJlZGRlZCBzeXN0ZW1zIGFyZSBpbnNpZGUgeW91ciBjYXIncyBlbmdpbmUgY29udHJvbCB1bml0LCB5b3VyIHNtYXJ0d2F0Y2gsIHlvdXIgV2lGaSByb3V0ZXIsIHlvdXIgbWVkaWNhbCBkZXZpY2VzLCBhbmQgaW5kdXN0cmlhbCBjb250cm9sbGVycy4gQyBkb21pbmF0ZXMgdGhpcyBkb21haW4gYmVjYXVzZSBpdCBwcm9kdWNlcyBjb21wYWN0IGJpbmFyeSBjb2RlLCB1c2VzIG1pbmltYWwgUkFNLCBhbmQgZ2l2ZXMgZGlyZWN0IGhhcmR3YXJlIGFjY2Vzcy5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQjaW5jbHVkZSAmbHQ7c3RkaW8uaCZndDtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQvLyBFbWJlZGRlZCBMRUQgYmxpbmsgc2ltdWxhdGlvbmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCNkZWZpbmUgTEVEX1BJTiAxM2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudHZvaWQgZGlnaXRhbFdyaXRlKGludCBwaW4sIGludCBzdGF0ZSkge2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3ByaW50ZigiUGluICVkIC0mZ3Q7ICVzXG4iLCBwaW4sIHN0YXRlID8gIkhJR0ggKExFRCBPTikiIDogIkxPVyAoTEVEIE9GRikiKTtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnR9ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50dm9pZCBkZWxheV9tcyhpbnQgbXMpIHtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtwcmludGYoIltEZWxheTogJWQgbXNdXG4iLCBtcyk7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50fWRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudGludCBtYWluKCkge2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3ByaW50ZigiRW1iZWRkZWQgTEVEIEJsaW5rIOKAlCAzIGN5Y2xlc1xuXG4iKTtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtmb3IgKGludCBpID0gMDsgaSAmbHQ7IDM7IGkrKykge2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2RpZ2l0YWxXcml0ZShMRURfUElOLCAxKTtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtkZWxheV9tcyg1MDApO2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2RpZ2l0YWxXcml0ZShMRURfUElOLCAwKTtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtkZWxheV9tcyg1MDApO2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO31kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtyZXR1cm4gMDtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnR9ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz5PdXRwdXQ6PC9zdHJvbmc+ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50RW1iZWRkZWQgTEVEIEJsaW5rIOKAlCAzIGN5Y2xlc2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudFBpbiAxMyAtJmd0OyBISUdIIChMRUQgT04pZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50W0RlbGF5OiA1MDAgbXNdZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50UGluIDEzIC0mZ3Q7IExPVyAoTEVEIE9GRilkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRbRGVsYXk6IDUwMCBtc11kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQuLi5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8c3Ryb25nPjMuIERhdGFiYXNlIE1hbmFnZW1lbnQgU3lzdGVtczwvc3Ryb25nPmxldmVsaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRTUUxpdGUsIHRoZSBtb3N0IHdpZGVseSBkZXBsb3llZCBkYXRhYmFzZSBvbiB0aGUgcGxhbmV0LCBpcyB3cml0dGVuIGVudGlyZWx5IGluIEMuIFBvc3RncmVTUUwsIE15U1FMLCBhbmQgUmVkaXMgYXJlIGFsc28gQy4gRGF0YWJhc2VzIGhhbmRsZSBtaWxsaW9ucyBvZiBxdWVyaWVzIHBlciBzZWNvbmQgYW5kIG5lZWQgcHJlZGljdGFibGUsIGhpZ2gtc3BlZWQgcGVyZm9ybWFuY2Ug4oCUIGV4YWN0bHkgd2hhdCBDIGRlbGl2ZXJzLmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCNpbmNsdWRlICZsdDtzdGRpby5oJmd0O2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCNpbmNsdWRlICZsdDtzdHJpbmcuaCZndDtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQjZGVmaW5lIE1BWCA1ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50c3RydWN0IFJlY29yZCB7IGNoYXIga2V5WzIwXTsgY2hhciB2YWx1ZVs1MF07IH07ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50c3RydWN0IFJlY29yZCBkYltNQVhdO2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudGludCBjb3VudCA9IDA7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50dm9pZCBpbnNlcnQoY29uc3QgY2hhciAqa2V5LCBjb25zdCBjaGFyICp2YWwpIHtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtpZiAoY291bnQgJmx0OyBNQVgpIHtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtzdHJjcHkoZGJbY291bnRdLmtleSwga2V5KTtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtzdHJjcHkoZGJbY291bnRdLnZhbHVlLCB2YWwpO2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2NvdW50Kys7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cHJpbnRmKCJJbnNlcnRlZDogJS0xNXMgLSZndDsgJXNcbiIsIGtleSwgdmFsKTtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDt9ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50fWRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudHZvaWQgcXVlcnkoY29uc3QgY2hhciAqa2V5KSB7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Zm9yIChpbnQgaSA9IDA7IGkgJmx0OyBjb3VudDsgaSsrKSB7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7aWYgKHN0cmNtcChkYltpXS5rZXksIGtleSkgPT0gMCkge2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3ByaW50ZigiRm91bmQgJm5ic3A7IDogJS0xNXMgLSZndDsgJXNcbiIsIGtleSwgZGJbaV0udmFsdWUpO2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3JldHVybjtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDt9ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7fWRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3ByaW50ZigiTm90IGZvdW5kOiAlc1xuIiwga2V5KTtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnR9ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50aW50IG1haW4oKSB7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cHJpbnRmKCI9PT0gU2ltcGxlIERhdGFiYXNlIEVuZ2luZSA9PT1cblxuIik7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7aW5zZXJ0KCJuYW1lIiwgJm5ic3A7ICZuYnNwOyAiRGVubmlzIFJpdGNoaWUiKTtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtpbnNlcnQoImxhbmd1YWdlIiwgIkMiKTtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtpbnNlcnQoInllYXIiLCAmbmJzcDsgJm5ic3A7ICIxOTcyIik7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7aW5zZXJ0KCJsYWIiLCZuYnNwOyAmbmJzcDsgJm5ic3A7ICJCZWxsIExhYnMiKTtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtwcmludGYoIlxuPT09IFF1ZXJpZXMgPT09XG4iKTtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtxdWVyeSgibGFuZ3VhZ2UiKTtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtxdWVyeSgieWVhciIpO2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3F1ZXJ5KCJvcyIpO2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3JldHVybiAwO2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudH1kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8c3Ryb25nPk91dHB1dDo8L3N0cm9uZz5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQ9PT0gU2ltcGxlIERhdGFiYXNlIEVuZ2luZSA9PT1kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRJbnNlcnRlZDogbmFtZSZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IC0mZ3Q7IERlbm5pcyBSaXRjaGllZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50SW5zZXJ0ZWQ6IGxhbmd1YWdlJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IC0mZ3Q7IENkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRJbnNlcnRlZDogeWVhciZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IC0mZ3Q7IDE5NzJkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRJbnNlcnRlZDogbGFiICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IC0mZ3Q7IEJlbGwgTGFic2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudD09PSBRdWVyaWVzID09PWRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudEZvdW5kICZuYnNwOyA6IGxhbmd1YWdlJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IC0mZ3Q7IENkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRGb3VuZCAmbmJzcDsgOiB5ZWFyJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgLSZndDsgMTk3MmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudE5vdCBmb3VuZDogb3Nkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8c3Ryb25nPjQuIENvbXBpbGVycyBhbmQgTGFuZ3VhZ2UgSW50ZXJwcmV0ZXJzPC9zdHJvbmc+bGV2ZWxpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudENQeXRob24gKFB5dGhvbidzIHN0YW5kYXJkIGltcGxlbWVudGF0aW9uKSBpcyB3cml0dGVuIGluIEMuIFBIUCBydW50aW1lLCBSdWJ5J3MgTVJJIGludGVycHJldGVyLCBhbmQgTHVhIGFyZSBhbGwgQy4gV2hlbiB5b3UgcnVuIGEgUHl0aG9uIHNjcmlwdCwgQyBjb2RlIGlzIHBhcnNpbmcgaXQsIGNvbXBpbGluZyBpdCB0byBieXRlY29kZSwgYW5kIGV4ZWN1dGluZyBpdC5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQjaW5jbHVkZSAmbHQ7c3RkaW8uaCZndDtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQvLyBTaW11bGF0ZWQgZXhwcmVzc2lvbiBldmFsdWF0b3Ig4oCUIGxpa2Ugd2hhdCBhbiBpbnRlcnByZXRlciBkb2VzZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50ZG91YmxlIGV2YWx1YXRlKGRvdWJsZSBhLCBjaGFyIG9wLCBkb3VibGUgYikge2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3N3aXRjaCAob3ApIHtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtjYXNlICcrJzogcmV0dXJuIGEgKyBiO2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2Nhc2UgJy0nOiByZXR1cm4gYSAtIGI7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Y2FzZSAnKic6IHJldHVybiBhICogYjtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtjYXNlICcvJzogcmV0dXJuIChiICE9IDApID8gYSAvIGIgOiAwO2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2RlZmF1bHQ6Jm5ic3A7IHJldHVybiAwO2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO31kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnR9ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50aW50IG1haW4oKSB7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cHJpbnRmKCJFeHByZXNzaW9uIEV2YWx1YXRvciAoaW50ZXJwcmV0ZXIgY29yZSlcblxuIik7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cHJpbnRmKCIxMCArIDI1Jm5ic3A7ID0gJS4yZlxuIiwgZXZhbHVhdGUoMTAsICcrJywgMjUpKTtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtwcmludGYoIjUwIC0gMTgmbmJzcDsgPSAlLjJmXG4iLCBldmFsdWF0ZSg1MCwgJy0nLCAxOCkpO2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3ByaW50ZigiNyZuYnNwOyAqIDggJm5ic3A7ID0gJS4yZlxuIiwgZXZhbHVhdGUoNywmbmJzcDsgJyonLCA4KSk7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cHJpbnRmKCIxMDAgLyA0Jm5ic3A7ID0gJS4yZlxuIiwgZXZhbHVhdGUoMTAwLCcvJywgNCkpO2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3JldHVybiAwO2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudH1kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8c3Ryb25nPk91dHB1dDo8L3N0cm9uZz5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRFeHByZXNzaW9uIEV2YWx1YXRvciAoaW50ZXJwcmV0ZXIgY29yZSlkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQxMCArIDI1Jm5ic3A7ID0gMzUuMDBkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQ1MCAtIDE4Jm5ic3A7ID0gMzIuMDBkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQ3Jm5ic3A7ICogOCAmbmJzcDsgPSA1Ni4wMGRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudDEwMCAvIDQmbmJzcDsgPSAyNS4wMGRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudDxzdHJvbmc+NS4gTmV0d29yayBQcm9ncmFtbWluZyBhbmQgQ3liZXJzZWN1cml0eSBUb29sczwvc3Ryb25nPmxldmVsaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnROZ2lueCAod2ViIHNlcnZlciksIE9wZW5TU0wgKGVuY3J5cHRpb24pLCBXaXJlc2hhcmsgKHBhY2tldCBhbmFseXNpcyksIGFuZCBObWFwIChwb3J0IHNjYW5uaW5nKSBhcmUgYWxsIHdyaXR0ZW4gaW4gQy4gTmV0d29yayBzb2Z0d2FyZSBuZWVkcyBmYXN0IGJ5dGUtbGV2ZWwgZGF0YSBoYW5kbGluZyDigJQgQyBkb2VzIHRoaXMgYmV0dGVyIHRoYW4gYW55IG90aGVyIGhpZ2gtbGV2ZWwgbGFuZ3VhZ2UuZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50I2luY2x1ZGUgJmx0O3N0ZGlvLmgmZ3Q7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50I2luY2x1ZGUgJmx0O3N0cmluZy5oJmd0O2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudHN0cnVjdCBQYWNrZXQge2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2ludCZuYnNwOyBzb3VyY2VfcG9ydDtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtpbnQmbmJzcDsgZGVzdF9wb3J0O2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2NoYXIgcHJvdG9jb2xbMTBdO2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2NoYXIgcGF5bG9hZFs4MF07ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50fTtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnR2b2lkIGFuYWx5emVQYWNrZXQoc3RydWN0IFBhY2tldCBwKSB7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cHJpbnRmKCIlLTEwcyB8ICU1ZCAtJmd0OyAlZCB8ICVzXG4iLGRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3AucHJvdG9jb2wsIHAuc291cmNlX3BvcnQsIHAuZGVzdF9wb3J0LCBwLnBheWxvYWQpO2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudH1kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRpbnQgbWFpbigpIHtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtwcmludGYoIk5ldHdvcmsgUGFja2V0IEFuYWx5emVyXG4iKTtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtwcmludGYoIiUtMTBzIHwgJTEycyB8IFBheWxvYWRcbiIsICJQcm90b2NvbCIsICJQb3J0IChTLSZndDtEKSIpO2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3ByaW50ZigiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIpO2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3N0cnVjdCBQYWNrZXQgcGFja2V0c1tdID0ge2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3s1NDMyMSwgODAsJm5ic3A7ICJIVFRQIiwmbmJzcDsgIkdFVCAvIEhUVFAvMS4xIn0sZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ezU0MzIyLCA0NDMsICJIVFRQUyIsICJUTFMgQ2xpZW50SGVsbG8ifSxkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDt7NTQzMjMsIDIyLCZuYnNwOyAiU1NIIiwgJm5ic3A7ICJTU0gtMi4wLU9wZW5TU0hfOC45In0sZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ezU0MzI0LCA1MywmbmJzcDsgIkROUyIsICZuYnNwOyAiUXVlcnk6IGV4YW1wbGUuY29tIn1kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDt9O2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2ZvciAoaW50IGkgPSAwOyBpICZsdDsgNDsgaSsrKWRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2FuYWx5emVQYWNrZXQocGFja2V0c1tpXSk7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cmV0dXJuIDA7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50fWRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudDxzdHJvbmc+T3V0cHV0Ojwvc3Ryb25nPmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudE5ldHdvcmsgUGFja2V0IEFuYWx5emVyZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50UHJvdG9jb2wgJm5ic3A7IHwmbmJzcDsgUG9ydCAoUy0mZ3Q7RCkgfCBQYXlsb2FkZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRIVFRQICZuYnNwOyAmbmJzcDsgJm5ic3A7IHwgNTQzMjEgLSZndDsgODAmbmJzcDsgfCBHRVQgLyBIVFRQLzEuMWRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudEhUVFBTJm5ic3A7ICZuYnNwOyAmbmJzcDsgfCA1NDMyMiAtJmd0OyA0NDMgfCBUTFMgQ2xpZW50SGVsbG9kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRTU0gmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgfCA1NDMyMyAtJmd0OyAyMiZuYnNwOyB8IFNTSC0yLjAtT3BlblNTSF84Ljlkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRETlMmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgfCA1NDMyNCAtJmd0OyA1MyZuYnNwOyB8IFF1ZXJ5OiBleGFtcGxlLmNvbWRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudDxzdHJvbmc+Ni4gR2FtZSBEZXZlbG9wbWVudCBhbmQgR3JhcGhpY3MgRW5naW5lczwvc3Ryb25nPmxldmVsaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRPcGVuR0wgYW5kIFZ1bGthbiDigJQgdGhlIHN0YW5kYXJkIEdQVSByZW5kZXJpbmcgQVBJcyDigJQgYXJlIEMgaW50ZXJmYWNlcy4gU0RMIChTaW1wbGUgRGlyZWN0TWVkaWEgTGF5ZXIpLCB1c2VkIGluIHRob3VzYW5kcyBvZiBnYW1lcywgaXMgd3JpdHRlbiBpbiBDLiBSZWFsLXRpbWUgZ2FtZSBsb29wcyBuZWVkIGNvbnNpc3RlbnQgZnJhbWUgdGltaW5nIGFuZCB6ZXJvIEdDIHBhdXNlcyDigJQgYm90aCBDIHN0cmVuZ3Rocy5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQjaW5jbHVkZSAmbHQ7c3RkaW8uaCZndDtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRzdHJ1Y3QgR2FtZU9iamVjdCB7IGNoYXIgbmFtZVsyMF07IGZsb2F0IHgsIHksIHNwZWVkOyBpbnQgaGVhbHRoOyB9O2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudHZvaWQgdXBkYXRlKHN0cnVjdCBHYW1lT2JqZWN0ICpvYmopIHsgb2JqLSZndDt4ICs9IG9iai0mZ3Q7c3BlZWQ7IH1kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnR2b2lkIHJlbmRlcihzdHJ1Y3QgR2FtZU9iamVjdCBvYmopIHtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtwcmludGYoIlslc10gcG9zPSglLjFmLCAlLjFmKSBIUD0lZFxuIiwgb2JqLm5hbWUsIG9iai54LCBvYmoueSwgb2JqLmhlYWx0aCk7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50fWRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudGludCBtYWluKCkge2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3N0cnVjdCBHYW1lT2JqZWN0IHBsYXllciA9IHsiUGxheWVyIiwgMC4wZiwgMC4wZiwgMy4wZiwgMTAwfTtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtzdHJ1Y3QgR2FtZU9iamVjdCBlbmVteSZuYnNwOyA9IHsiRW5lbXkiLCZuYnNwOyA4MC4wZiwwLjBmLC0xLjVmLCA2MH07ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cHJpbnRmKCI9PT0gR2FtZSBMb29wIOKAlCA0IEZyYW1lcyA9PT1cblxuIik7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Zm9yIChpbnQgZnJhbWUgPSAxOyBmcmFtZSAmbHQ7PSA0OyBmcmFtZSsrKSB7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cHJpbnRmKCJGcmFtZSAlZDpcbiIsIGZyYW1lKTtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDt1cGRhdGUoJmFtcDtwbGF5ZXIpOyB1cGRhdGUoJmFtcDtlbmVteSk7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cmVuZGVyKHBsYXllcik7Jm5ic3A7IHJlbmRlcihlbmVteSk7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cHJpbnRmKCJcbiIpO2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO31kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtyZXR1cm4gMDtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnR9ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz5PdXRwdXQ6PC9zdHJvbmc+ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50PT09IEdhbWUgTG9vcCDigJQgNCBGcmFtZXMgPT09ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50RnJhbWUgMTpkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRbUGxheWVyXSBwb3M9KDMuMCwgMC4wKSBIUD0xMDBkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRbRW5lbXldIHBvcz0oNzguNSwgMC4wKSBIUD02MGRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudEZyYW1lIDI6ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50W1BsYXllcl0gcG9zPSg2LjAsIDAuMCkgSFA9MTAwZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50W0VuZW15XSBwb3M9KDc3LjAsIDAuMCkgSFA9NjBkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQuLi5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8c3Ryb25nPjcuIEFydGlmaWNpYWwgSW50ZWxsaWdlbmNlIGFuZCBSb2JvdGljczwvc3Ryb25nPmxldmVsaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRUZW5zb3JGbG93IExpdGUg4oCUIHdoaWNoIHJ1bnMgTUwgbW9kZWxzIG9uIHBob25lcyBhbmQgZW1iZWRkZWQgZGV2aWNlcyDigJQgaGFzIGl0cyBjb3JlIHdyaXR0ZW4gaW4gQyBhbmQgQysrLiBSb2JvdGljcyBjb250cm9sIHN5c3RlbXMgdXNlIEMgZm9yIHJlYWwtdGltZSBzZW5zb3IgcHJvY2Vzc2luZyBiZWNhdXNlIHJlc3BvbnNlIHRpbWUgbXVzdCBiZSBtaWNyb3NlY29uZHMsIG5vdCBtaWxsaXNlY29uZHMuZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50I2luY2x1ZGUgJmx0O3N0ZGlvLmgmZ3Q7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50I2luY2x1ZGUgJmx0O21hdGguaCZndDtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRkb3VibGUgcmVsdShkb3VibGUgeCkmbmJzcDsgJm5ic3A7IHsgcmV0dXJuIHggJmd0OyAwID8geCA6IDA7IH1kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRkb3VibGUgc2lnbW9pZChkb3VibGUgeCkgeyByZXR1cm4gMS4wIC8gKDEuMCArIGV4cCgteCkpOyB9ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50ZG91YmxlIG5ldXJvbihkb3VibGUgaW5wdXRzW10sIGRvdWJsZSB3ZWlnaHRzW10sIGludCBuLCBkb3VibGUgYmlhcykge2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2RvdWJsZSBzdW0gPSBiaWFzO2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2ZvciAoaW50IGkgPSAwOyBpICZsdDsgbjsgaSsrKSBzdW0gKz0gaW5wdXRzW2ldICogd2VpZ2h0c1tpXTtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtyZXR1cm4gc2lnbW9pZChzdW0pO2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudH1kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRpbnQgbWFpbigpIHtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtwcmludGYoIk5ldXJhbCBOZXR3b3JrIOKAlCBTaW5nbGUgTmV1cm9uXG5cbiIpO2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2RvdWJsZSB2YWx1ZXNbXSA9IHstMi4wLCAwLjAsIDEuNSwgMy4wfTtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtwcmludGYoIlJlTFUgYWN0aXZhdGlvbnM6XG4iKTtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtmb3IgKGludCBpID0gMDsgaSAmbHQ7IDQ7IGkrKylkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtwcmludGYoIiZuYnNwOyByZWx1KCUuMWYpID0gJS4xZlxuIiwgdmFsdWVzW2ldLCByZWx1KHZhbHVlc1tpXSkpO2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2RvdWJsZSBpbnB1dHNbXSZuYnNwOyA9IHswLjYsIDAuOSwgMC4zfTtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtkb3VibGUgd2VpZ2h0c1tdID0gezAuNSwgMC43LCAwLjJ9O2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2RvdWJsZSBvdXRwdXQgPSBuZXVyb24oaW5wdXRzLCB3ZWlnaHRzLCAzLCAtMC4xKTtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtwcmludGYoIlxuTmV1cm9uIG91dHB1dDogJS40ZlxuIiwgb3V0cHV0KTtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtwcmludGYoIlByZWRpY3Rpb24mbmJzcDsgOiAlc1xuIiwgb3V0cHV0ICZndDsgMC41ID8gIkNsYXNzIDEiIDogIkNsYXNzIDAiKTtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtyZXR1cm4gMDtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnR9ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz5PdXRwdXQ6PC9zdHJvbmc+ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50TmV1cmFsIE5ldHdvcmsg4oCUIFNpbmdsZSBOZXVyb25kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRSZUxVIGFjdGl2YXRpb25zOmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwO3JlbHUoLTIuMCkgPSAwLjBkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDtyZWx1KDAuMCkgPSAwLjBkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDtyZWx1KDEuNSkgPSAxLjVkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDtyZWx1KDMuMCkgPSAzLjBkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnROZXVyb24gb3V0cHV0OiAwLjcxMDlkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRQcmVkaWN0aW9uJm5ic3A7IDogQ2xhc3MgMWRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudDxzdHJvbmc+RWxlbWVudHMgb2YgYSBDIFByb2dyYW0gV2l0aCBDb2RlIEV4YW1wbGVzPC9zdHJvbmc+ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50QSBDIHByb2dyYW0gaXMgY29tcG9zZWQgb2Ygc2V2ZXJhbCBrZXkgZWxlbWVudHMgdGhhdCB3b3JrIHRvZ2V0aGVyIHRvIHBlcmZvcm0gdGFza3MuIFVuZGVyc3RhbmRpbmcgdGhlc2UgZWxlbWVudHMgaXMgZXNzZW50aWFsIGZvciB3cml0aW5nIGNvcnJlY3QgYW5kIGVmZmVjdGl2ZSBDIGNvZGUuZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz4xLiBIZWFkZXIgRmlsZXM8L3N0cm9uZz5sZXZlbGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50SGVhZGVyIGZpbGVzIGNvbnRhaW4gZGVjbGFyYXRpb25zIG9mIGZ1bmN0aW9ucyBhbmQgbWFjcm9zLiBUaGV5IGFyZSBpbmNsdWRlZCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBwcm9ncmFtIHVzaW5nICNpbmNsdWRlLmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCNpbmNsdWRlICZsdDtzdGRpby5oJmd0OyZuYnNwOyAmbmJzcDsgLy8gcHJpbnRmLCBzY2FuZiwgZmlsZSBJL09kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQjaW5jbHVkZSAmbHQ7c3RkbGliLmgmZ3Q7ICZuYnNwOyAvLyBtYWxsb2MsIGZyZWUsIGV4aXRkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQjaW5jbHVkZSAmbHQ7c3RyaW5nLmgmZ3Q7ICZuYnNwOyAvLyBzdHJjcHksIHN0cmxlbiwgc3RyY21wZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50I2luY2x1ZGUgJmx0O21hdGguaCZndDsgJm5ic3A7ICZuYnNwOyAvLyBzcXJ0LCBwb3csIHNpbiwgY29zZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz4yLiBUaGUgTWFpbiBGdW5jdGlvbjwvc3Ryb25nPmxldmVsaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRFdmVyeSBDIHByb2dyYW0gc3RhcnRzIGV4ZWN1dGlvbiBmcm9tIG1haW4oKS4gSXQgcmV0dXJucyBhbiBpbnRlZ2VyIOKAlCAwIGZvciBzdWNjZXNzLCBub24temVybyBmb3IgZXJyb3IuZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50I2luY2x1ZGUgJmx0O3N0ZGlvLmgmZ3Q7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50aW50IG1haW4oKSB7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cHJpbnRmKCJDIHByb2dyYW0gc3RhcnRzIGhlcmUuXG4iKTtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtyZXR1cm4gMDtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnR9ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz4zLiBWYXJpYWJsZXMgYW5kIERhdGEgVHlwZXM8L3N0cm9uZz5sZXZlbGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50I2luY2x1ZGUgJmx0O3N0ZGlvLmgmZ3Q7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50aW50IG1haW4oKSB7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7aW50Jm5ic3A7ICZuYnNwOyBhZ2UgJm5ic3A7ICZuYnNwOyAmbmJzcDsgPSAyODtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtmbG9hdCZuYnNwOyBwcmljZSAmbmJzcDsgJm5ic3A7ID0gOTkuOTlmO2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2RvdWJsZSBwaSZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA9IDMuMTQxNTkyNjUzNTk7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Y2hhciAmbmJzcDsgaW5pdGlhbCAmbmJzcDsgPSAnRCc7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cHJpbnRmKCJBZ2U6ICVkIHwgUHJpY2U6ICUuMmYgfCBQaTogJS41ZiB8IEluaXRpYWw6ICVjXG4iLGRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2FnZSwgcHJpY2UsIHBpLCBpbml0aWFsKTtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtyZXR1cm4gMDtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnR9ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz5PdXRwdXQ6PC9zdHJvbmc+ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50QWdlOiAyOCB8IFByaWNlOiA5OS45OSB8IFBpOiAzLjE0MTU5IHwgSW5pdGlhbDogRGRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudDxzdHJvbmc+NC4gT3BlcmF0b3JzPC9zdHJvbmc+bGV2ZWxpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCNpbmNsdWRlICZsdDtzdGRpby5oJmd0O2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudGludCBtYWluKCkge2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2ludCBhID0gMTgsIGIgPSA1O2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3ByaW50ZigiKyA6ICVkXG4tIDogJWRcbiogOiAlZFxuLyA6ICVkXG4lJSA6ICVkXG4iLGRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2ErYiwgYS1iLCBhKmIsIGEvYiwgYSViKTtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtwcmludGYoImEgJmd0OyBiIDogJWRcbmEgPT0gYjogJWRcbiIsIGEmZ3Q7YiwgYT09Yik7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cmV0dXJuIDA7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50fWRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudDxzdHJvbmc+T3V0cHV0Ojwvc3Ryb25nPmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCsgOiAyM2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudC0gOiAxM2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCogOiA5MGRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudC8gOiAzZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50JSA6IDNkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRhICZndDsgYiA6IDFkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRhID09IGI6IDBkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8c3Ryb25nPjUuIENvbnRyb2wgU3RhdGVtZW50czwvc3Ryb25nPmxldmVsaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQjaW5jbHVkZSAmbHQ7c3RkaW8uaCZndDtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRpbnQgbWFpbigpIHtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtpbnQgc2NvcmUgPSA3ODtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtpZiZuYnNwOyAmbmJzcDsgJm5ic3A7IChzY29yZSAmZ3Q7PSA5MCkgcHJpbnRmKCJHcmFkZTogQVxuIik7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ZWxzZSBpZiAoc2NvcmUgJmd0Oz0gNzUpIHByaW50ZigiR3JhZGU6IEJcbiIpO2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2Vsc2UgaWYgKHNjb3JlICZndDs9IDYwKSBwcmludGYoIkdyYWRlOiBDXG4iKTtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtlbHNlJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgcHJpbnRmKCJHcmFkZTogRlxuIik7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cmV0dXJuIDA7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50fWRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudDxzdHJvbmc+T3V0cHV0Ojwvc3Ryb25nPmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudEdyYWRlOiBCZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz42LiBMb29wczwvc3Ryb25nPmxldmVsaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQjaW5jbHVkZSAmbHQ7c3RkaW8uaCZndDtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRpbnQgbWFpbigpIHtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsvLyBGYWN0b3JpYWwgdXNpbmcgZm9yIGxvb3Bkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtpbnQgbiA9IDc7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7bG9uZyBmYWN0b3JpYWwgPSAxO2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2ZvciAoaW50IGkgPSAxOyBpICZsdDs9IG47IGkrKykgZmFjdG9yaWFsICo9IGk7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cHJpbnRmKCJGYWN0b3JpYWwgb2YgJWQgPSAlbGRcbiIsIG4sIGZhY3RvcmlhbCk7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ly8gU3VtIHVzaW5nIHdoaWxlIGxvb3Bkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtpbnQgc3VtID0gMCwgaSA9IDE7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7d2hpbGUgKGkgJmx0Oz0gNTApIHsgc3VtICs9IGk7IGkrKzsgfWRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3ByaW50ZigiU3VtIG9mIDEgdG8gNTAgPSAlZFxuIiwgc3VtKTtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtyZXR1cm4gMDtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnR9ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz5PdXRwdXQ6PC9zdHJvbmc+ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50RmFjdG9yaWFsIG9mIDcgPSA1MDQwZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50U3VtIG9mIDEgdG8gNTAgPSAxMjc1ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz43LiBGdW5jdGlvbnM8L3N0cm9uZz5sZXZlbGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50I2luY2x1ZGUgJmx0O3N0ZGlvLmgmZ3Q7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50bG9uZyBmaWJvbmFjY2koaW50IG4pIHtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtpZiAobiAmbHQ7PSAxKSByZXR1cm4gbjtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtyZXR1cm4gZmlib25hY2NpKG4tMSkgKyBmaWJvbmFjY2kobi0yKTtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnR9ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50aW50IG1haW4oKSB7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cHJpbnRmKCJGaWJvbmFjY2kgc2VxdWVuY2U6XG4iKTtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtmb3IgKGludCBpID0gMDsgaSAmbHQ7IDEwOyBpKyspZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cHJpbnRmKCJGKCVkKSA9ICVsZFxuIiwgaSwgZmlib25hY2NpKGkpKTtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtyZXR1cm4gMDtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnR9ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz5PdXRwdXQ6PC9zdHJvbmc+ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Rmlib25hY2NpIHNlcXVlbmNlOmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudEYoMCkgPSAwZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50RigxKSA9IDFkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRGKDIpID0gMWRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudEYoMykgPSAyZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Rig0KSA9IDNkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRGKDUpID0gNWRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudEYoNikgPSA4ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Rig3KSA9IDEzZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Rig4KSA9IDIxZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Rig5KSA9IDM0ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz44LiBQb2ludGVyczwvc3Ryb25nPmxldmVsaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRQb2ludGVycyBzdG9yZSBtZW1vcnkgYWRkcmVzc2VzIGFuZCBlbmFibGUgZHluYW1pYyBtZW1vcnkgYWxsb2NhdGlvbiwgZWZmaWNpZW50IGZ1bmN0aW9uIGNhbGxzLCBhbmQgaGFyZHdhcmUtbGV2ZWwgcHJvZ3JhbW1pbmcuIE1hc3Rlcnkgb2YgcG9pbnRlcnMgc2VwYXJhdGVzIGEgY29tcGV0ZW50IEMgZGV2ZWxvcGVyIGZyb20gYSB0cnVseSBza2lsbGVkIG9uZS5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQjaW5jbHVkZSAmbHQ7c3RkaW8uaCZndDtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRpbnQgbWFpbigpIHtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtpbnQgdmFsdWUgPSA0Mjtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtpbnQgKnB0ciZuYnNwOyA9ICZhbXA7dmFsdWU7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cHJpbnRmKCJWYWx1ZSZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA6ICVkXG4iLCB2YWx1ZSk7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cHJpbnRmKCJBZGRyZXNzJm5ic3A7ICZuYnNwOyAmbmJzcDsgOiAlcFxuIiwgKHZvaWQqKXB0cik7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cHJpbnRmKCJWaWEgcG9pbnRlciZuYnNwOyA6ICVkXG4iLCAqcHRyKTtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsqcHRyID0gOTk5O2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3ByaW50ZigiQWZ0ZXIgY2hhbmdlIDogJWRcbiIsIHZhbHVlKTtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtyZXR1cm4gMDtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnR9ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz5PdXRwdXQ6PC9zdHJvbmc+ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50VmFsdWUmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgOiA0MmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudEFkZHJlc3MmbmJzcDsgJm5ic3A7ICZuYnNwOyA6IDB4N2ZmZDNjMmExYjRjZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50VmlhIHBvaW50ZXImbmJzcDsgOiA0MmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudEFmdGVyIGNoYW5nZSA6IDk5OWRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudDxzdHJvbmc+QWR2YW50YWdlcyBhbmQgRGlzYWR2YW50YWdlcyBvZiBDIFByb2dyYW1taW5nLjwvc3Ryb25nPmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzYWx0Y2FwdGlvbmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz5BZHZhbnRhZ2VzPC9zdHJvbmc+ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz5hKSBTdHJ1Y3R1cmVkIExhbmd1YWdlPC9zdHJvbmc+PHN0cm9uZz48YnI+PC9zdHJvbmc+IEMgaGVscHMgeW91IHdyaXRlIHByb2dyYW1zIGluIGEgY2xlYXIgYW5kIG9yZ2FuaXplZCB3YXkgdXNpbmcgZnVuY3Rpb25zLiBUaGlzIG1ha2VzIGNvZGUgZWFzaWVyIHRvIHJlYWQgYW5kIGZpeC4gQmlnIHByb2dyYW1zIGNhbiBiZSBzcGxpdCBpbnRvIHNtYWxsIHBhcnRzIHdoaWNoIG1ha2VzIHRoZW0gZWFzaWVyIHRvIG1hbmFnZS5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8c3Ryb25nPmIpIFdpZGUgQWRvcHRpb24gYW5kIEVjb3N5c3RlbTwvc3Ryb25nPjxzdHJvbmc+PGJyPjwvc3Ryb25nPiBDIGhhcyBiZWVuIHVzZWQgZm9yIG1hbnkgeWVhcnMgc28gaXQgaGFzIG1hbnkgdG9vbHMgYW5kIHN1cHBvcnQuIFRoZXJlIGFyZSBjb21waWxlciBkZWJ1Z2dlcnMsIGxpYnJhcmllcyBhbmQgZ3VpZGVzIGF2YWlsYWJsZS4gVGhpcyBtYWtlcyBidWlsZGluZyBhbmQgZml4aW5nIHByb2dyYW1zIGVhc2llciBmb3IgZGV2ZWxvcGVycy5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8c3Ryb25nPmMpIERpcmVjdCBIYXJkd2FyZSBDb250cm9sPC9zdHJvbmc+PHN0cm9uZz48YnI+PC9zdHJvbmc+IEMgY2FuIGRpcmVjdGx5IGNvbnRyb2wgY29tcHV0ZXIgaGFyZHdhcmUgdXNpbmcgcG9pbnRlcnMgYW5kIG1lbW9yeSBhY2Nlc3MuIFRoaXMgaXMgdmVyeSB1c2VmdWwgZm9yIHN5c3RlbSBzb2Z0d2FyZSBkcml2ZXJzIGFuZCBlbWJlZGRlZCBkZXZpY2VzIHdoZXJlIGZ1bGwgY29udHJvbCBpcyBuZWVkZWQuZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz5kKSBGb3VuZGF0aW9uIGZvciBPdGhlciBMYW5ndWFnZXM8L3N0cm9uZz48c3Ryb25nPjxicj48L3N0cm9uZz4gTGVhcm5pbmcgQyBoZWxwcyB5b3UgdW5kZXJzdGFuZCBtYW55IG90aGVyIGxhbmd1YWdlcyBsaWtlIEMgcGx1cyBKYXZhIFB5dGhvbiBHbyBhbmQgUnVzdC4gSXQgYnVpbGRzIHN0cm9uZyBiYXNpYyBrbm93bGVkZ2Ugb2YgaG93IHByb2dyYW1taW5nIHJlYWxseSB3b3Jrcy5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8c3Ryb25nPmUpIE9wZW4gU291cmNlIGFuZCBGcmVlPC9zdHJvbmc+PHN0cm9uZz48YnI+PC9zdHJvbmc+IE1hbnkgQyB0b29scyBhbmQgbGlicmFyaWVzIGFyZSBmcmVlIHRvIHVzZS4gRGV2ZWxvcGVycyBhbmQgY29tcGFuaWVzIGNhbiB1c2UgdGhlbSB3aXRob3V0IHBheWluZyBtb25leS4gVGhpcyBtYWtlcyBDIGFjY2Vzc2libGUgZm9yIGV2ZXJ5b25lLmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudDxzdHJvbmc+ZikgUHJlZGljdGFibGUgUGVyZm9ybWFuY2U8L3N0cm9uZz48c3Ryb25nPjxicj48L3N0cm9uZz4gQyBydW5zIHZlcnkgZmFzdCBiZWNhdXNlIGl0IGNvbnZlcnRzIGRpcmVjdGx5IGludG8gbWFjaGluZSBjb2RlLiBUaGVyZSBpcyBubyBleHRyYSBkZWxheSBvciBiYWNrZ3JvdW5kIHByb2Nlc3NpbmcuIFRoaXMgbWFrZXMgaXQgdmVyeSBnb29kIGZvciByZWFsIHRpbWUgc3lzdGVtcy5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8c3Ryb25nPkRpc2FkdmFudGFnZXM8L3N0cm9uZz5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8c3Ryb25nPmEpIENvbXBsZXggZm9yIEJlZ2lubmVyczwvc3Ryb25nPjxzdHJvbmc+PGJyPjwvc3Ryb25nPiBDIGNhbiBiZSBoYXJkIGZvciBuZXcgbGVhcm5lcnMuIFNtYWxsIG1pc3Rha2VzIGluIGNvZGUgY2FuIGNhdXNlIGNyYXNoZXMgb3IgZXJyb3JzLiBUaGluZ3MgbGlrZSBwb2ludGVycyBhbmQgbWVtb3J5IG5lZWQgY2FyZWZ1bCBoYW5kbGluZy5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8c3Ryb25nPmIpIE5vIE9iamVjdCBPcmllbnRlZCBGZWF0dXJlczwvc3Ryb25nPjxzdHJvbmc+PGJyPjwvc3Ryb25nPjxzdHJvbmc+IDwvc3Ryb25nPkMgZG9lcyBub3QgaGF2ZSBmZWF0dXJlcyBsaWtlIGNsYXNzZXMgb3Igb2JqZWN0cy4gU28gZm9yIGJpZyBhcHBsaWNhdGlvbnMgZGV2ZWxvcGVycyBvZnRlbiB1c2Ugb3RoZXIgbGFuZ3VhZ2VzIGxpa2UgQyBwbHVzIHBsdXMuZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz5jKSBNYW51YWwgTWVtb3J5IE1hbmFnZW1lbnQ8L3N0cm9uZz48c3Ryb25nPjxicj48L3N0cm9uZz4gSW4gQyB5b3UgbXVzdCBoYW5kbGUgbWVtb3J5IHlvdXJzZWxmLiBJZiB5b3UgbWFrZSBtaXN0YWtlcyBpdCBjYW4gY2F1c2UgbWVtb3J5IGxlYWtzIG9yIGNyYXNoZXMuZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz5kKSBMaW1pdGVkIEFic3RyYWN0aW9uPC9zdHJvbmc+PHN0cm9uZz48YnI+PC9zdHJvbmc+IFNpbXBsZSB0YXNrcyBtYXkgbmVlZCBtb3JlIGNvZGUgaW4gQyBjb21wYXJlZCB0byBsYW5ndWFnZXMgbGlrZSBQeXRob24uIFRoaXMgbWFrZXMgZGV2ZWxvcG1lbnQgc2xvd2VyIGZvciBzb21lIGFwcGxpY2F0aW9ucy5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8c3Ryb25nPmUpIE5vIEJ1aWx0IEluIEV4Y2VwdGlvbiBIYW5kbGluZzwvc3Ryb25nPjxzdHJvbmc+PGJyPjwvc3Ryb25nPiBDIGRvZXMgbm90IGhhdmUgYXV0b21hdGljIGVycm9yIGhhbmRsaW5nLiBEZXZlbG9wZXJzIG11c3QgbWFudWFsbHkgY2hlY2sgZXJyb3JzIHVzaW5nIGNvbmRpdGlvbnMgd2hpY2ggY2FuIG1ha2UgY29kZSBsb25nZXIuZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz5Db25jbHVzaW9uPC9zdHJvbmc+PHN0cm9uZz48YnI+PC9zdHJvbmc+IEMgUHJvZ3JhbW1pbmcgaXMgYSBzdHJvbmcgYW5kIGxvbmcgbGFzdGluZyBsYW5ndWFnZS4gSXQgaXMgdXNlZCBpbiBtYW55IGltcG9ydGFudCBzeXN0ZW1zIGxpa2Ugb3BlcmF0aW5nIHN5c3RlbXMsIGVtYmVkZGVkIGRldmljZXMgYW5kIG5ldHdvcmsgdG9vbHMuIEl0IGlzIGZhc3QsIGVmZmljaWVudCBhbmQgZ2l2ZXMgZnVsbCBjb250cm9sIG92ZXIgaGFyZHdhcmUuZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50TGVhcm5pbmcgQyBoZWxwcyB5b3UgdW5kZXJzdGFuZCBob3cgY29tcHV0ZXJzIHdvcmsgZnJvbSB0aGUgaW5zaWRlLiBJdCB0ZWFjaGVzIG1lbW9yeSBwb2ludGVycyBhbmQgc3lzdGVtIGxldmVsIHRoaW5raW5nLiBUaGVzZSBza2lsbHMgaGVscCB5b3UgbGVhcm4gb3RoZXIgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzIG1vcmUgZWFzaWx5LmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudEV2ZW4gaW4gMjAyNiBDIGlzIHN0aWxsIHZlcnkgaW1wb3J0YW50IGFuZCB3aWRlbHkgdXNlZCBpbiByZWFsIHdvcmxkIHN5c3RlbXMuZHJvcENhcGlubmVyQmxvY2tzaWRsaW5rdXJsc2l6ZVNsdWdsaW5rRGVzdGluYXRpb25pZGxpbmt1cmxzaXplU2x1Z2xpbmtEZXN0aW5hdGlvbmlkbGlua3VybHNpemVTbHVnbGlua0Rlc3RpbmF0aW9uPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPkMgaXMgYSB2ZXJ5IHBvd2VyZnVsIHByb2dyYW1taW5nIGxhbmd1YWdlLiBJdCB3YXMgY3JlYXRlZCBieSBEZW5uaXMgUml0Y2hpZSBhdCBCZWxsIExhYnMgaW4gdGhlIGVhcmx5IDE5NzBzLiBJdCBpcyBmYXN0IGFuZCB3b3JrcyB2ZXJ5IGNsb3NlIHRvIGNvbXB1dGVyIGhhcmR3YXJlLiBJdCB3YXMgZmlyc3QgdXNlZCB0byBidWlsZCB0aGUgVU5JWCBvcGVyYXRpbmcgc3lzdGVtLiBFdmVuIHRvZGF5IGl0IGlzIHVzZWQgaW4gbWFueSBpbXBvcnRhbnQgc3lzdGVtcyBsaWtlIG9wZXJhdGluZyBzeXN0ZW1zLCBlbWJlZGRlZCBkZXZpY2VzIGFuZCBzb2Z0d2FyZSB0b29scy48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+QyBwcm9ncmFtbWluZyBpcyBvbmUgb2YgdGhlIG1vc3QgYmFzaWMgYW5kIGltcG9ydGFudCBwcm9ncmFtbWluZyBsYW5ndWFnZXMuIEl0IGhlbHBlZCBidWlsZCB0aGUgZm91bmRhdGlvbiBvZiBtb2Rlcm4gY29tcHV0ZXJzLiBNYW55IGJpZyBzeXN0ZW1zIGxpa2Ugb3BlcmF0aW5nIHN5c3RlbXMgZGF0YWJhc2VzIGFuZCBzZWN1cml0eSB0b29scyBhcmUgd3JpdHRlbiB1c2luZyBDLiBFdmVuIGFmdGVyIG1hbnkgeWVhcnMgaXQgaXMgc3RpbGwgb25lIG9mIHRoZSBtb3N0IHVzZWQgbGFuZ3VhZ2VzIGluIHRoZSB3b3JsZC48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5DIGlzIHZlcnkgaW1wb3J0YW50IGJlY2F1c2UgaXQgaXMgZmFzdCBhbmQgZ2l2ZXMgZGlyZWN0IGNvbnRyb2wgb3ZlciB0aGUgY29tcHV0ZXIuIFRoaXMgbWVhbnMgcHJvZ3JhbW1lcnMgY2FuIGNvbnRyb2wgbWVtb3J5IGFuZCBzeXN0ZW0gcmVzb3VyY2VzIGluIGEgdmVyeSBkZXRhaWxlZCB3YXkuIFRoYXQgaXMgd2h5IGl0IGlzIHVzZWQgaW4gcGxhY2VzIHdoZXJlIHNwZWVkIGFuZCBwZXJmb3JtYW5jZSBtYXR0ZXIgYSBsb3QuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+VGhpcyBndWlkZSBoZWxwcyB5b3UgdW5kZXJzdGFuZCBDIHByb2dyYW1taW5nIGluIGEgc2ltcGxlIHdheS4gSXQgZXhwbGFpbnMgd2hlcmUgaXQgY2FtZSBmcm9tIGhvdyBpdCB3b3JrcyBhbmQgd2h5IGl0IGlzIHN0aWxsIHVzZWZ1bCB0b2RheS4gSXQgYWxzbyBoZWxwcyBiZWdpbm5lcnMgdW5kZXJzdGFuZCBob3cgcHJvZ3JhbW1pbmcgc3RhcnRzIGF0IHRoZSBiYXNpYyBsZXZlbC48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5JZiB5b3UgYXJlIG5ldyB0byBjb2RpbmcgQyBpcyBhIHZlcnkgZ29vZCBsYW5ndWFnZSB0byBzdGFydCB3aXRoLiBJdCB0ZWFjaGVzIHlvdSBob3cgY29tcHV0ZXJzIHRoaW5rIGFuZCB3b3JrIGZyb20gdGhlIGluc2lkZS4gT25jZSB5b3UgdW5kZXJzdGFuZCBDIG90aGVyIHByb2dyYW1taW5nIGxhbmd1YWdlcyBiZWNvbWUgbXVjaCBlYXNpZXIgdG8gbGVhcm4uPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+CgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPkMgUHJvZ3JhbW1pbmcgaXMgYSBzaW1wbGUgYW5kIHBvd2VyZnVsIHByb2dyYW1taW5nIGxhbmd1YWdlLiBJdCBpcyB1c2VkIHRvIGJ1aWxkIHN5c3RlbSBzb2Z0d2FyZSBsaWtlIG9wZXJhdGluZyBzeXN0ZW1zIGZpcm13YXJlIGFuZCBtYW55IGFwcGxpY2F0aW9ucy4gSXQgd2FzIGNyZWF0ZWQgYnkgRGVubmlzIFJpdGNoaWUgaW4gdGhlIDE5NzBzIGF0IEJlbGwgTGFicy4gQyBnaXZlcyBkaXJlY3QgY29udHJvbCBvdmVyIGNvbXB1dGVyIG1lbW9yeSBhbmQgaGFyZHdhcmUgdXNpbmcgc2ltcGxlIHJ1bGVzIGFuZCBrZXl3b3Jkcy48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5PdmVyIHRpbWUgQyBiZWNhbWUgb25lIG9mIHRoZSBtb3N0IGltcG9ydGFudCBwcm9ncmFtbWluZyBsYW5ndWFnZXMgaW4gdGhlIHdvcmxkLiBNYW55IG1vZGVybiBsYW5ndWFnZXMgbGlrZSBDIHBsdXMgcGx1cyBDIHNoYXJwIEphdmEsIFB5dGhvbiBHbyBhbmQgUnVzdCBhcmUgaW5mbHVlbmNlZCBieSBDLiBXaGVuIHlvdSBsZWFybiBDIHlvdSBhbHNvIHN0YXJ0IHRvIHVuZGVyc3RhbmQgaG93IGNvbXB1dGVycyByZWFsbHkgd29yayBpbnNpZGUuIFlvdSBsZWFybiBob3cgbWVtb3J5IHdvcmtzLCBob3cgZGF0YSBpcyBzdG9yZWQgYW5kIGhvdyBzeXN0ZW1zIG1hbmFnZSByZXNvdXJjZXMuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+QyBpcyBjYWxsZWQgYSBtaWRkbGUgbGV2ZWwgbGFuZ3VhZ2UuIFRoaXMgbWVhbnMgaXQgaXMgYmV0d2VlbiB2ZXJ5IGxvdyBsZXZlbCBtYWNoaW5lIGxhbmd1YWdlIGFuZCBoaWdoIGxldmVsIGxhbmd1YWdlcyBsaWtlIFB5dGhvbi4gTG93IGxldmVsIGxhbmd1YWdlcyBhcmUgdmVyeSBoYXJkIGZvciBodW1hbnMgdG8gcmVhZCBhbmQgaGlnaCBsZXZlbCBsYW5ndWFnZXMgaGlkZSBtYW55IGRldGFpbHMuIEMgaXMgaW4gdGhlIG1pZGRsZSBzbyBpdCBpcyBlYXNpZXIgdG8gcmVhZCBidXQgc3RpbGwgZ2l2ZXMgY29udHJvbCBvdmVyIHRoZSBzeXN0ZW0uPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+VGhpcyBiYWxhbmNlIG9mIHNpbXBsaWNpdHkgYW5kIGNvbnRyb2wgaXMgd2h5IEMgaXMgc3RpbGwgdXNlZCBldmVuIGFmdGVyIG1hbnkgeWVhcnMuIEl0IGhlbHBzIHByb2dyYW1tZXJzIHdyaXRlIGNsZWFyIGNvZGUgd2hpbGUgc3RpbGwgd29ya2luZyB2ZXJ5IGNsb3NlIHRvIHRoZSBjb21wdXRlciBzeXN0ZW0uPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+CgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPlRoZSBoaXN0b3J5IG9mIEMgUHJvZ3JhbW1pbmcgc3RhcnRlZCBpbiB0aGUgZWFybHkgMTk3MHMgYXQgQmVsbCBMYWJvcmF0b3JpZXMgaW4gdGhlIFVuaXRlZCBTdGF0ZXMuIEF0IHRoYXQgdGltZSBtb3N0IHN5c3RlbSBzb2Z0d2FyZSB3YXMgd3JpdHRlbiBpbiBhc3NlbWJseSBsYW5ndWFnZS4gQXNzZW1ibHkgbGFuZ3VhZ2Ugd2FzIHZlcnkgY2xvc2UgdG8gaGFyZHdhcmUgYW5kIGl0IHdvcmtlZCBvbmx5IG9uIHNwZWNpZmljIG1hY2hpbmVzLiBCZWNhdXNlIG9mIHRoaXMgaXQgd2FzIHZlcnkgaGFyZCB0byBtb3ZlIHNvZnR3YXJlIGZyb20gb25lIGNvbXB1dGVyIHRvIGFub3RoZXIuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+RGVubmlzIFJpdGNoaWUgYW5kIEJyaWFuIEtlcm5pZ2hhbiB3YW50ZWQgdG8gZml4IHRoaXMgcHJvYmxlbS4gVGhleSB3YW50ZWQgdG8gY3JlYXRlIGEgbGFuZ3VhZ2UgdGhhdCB3YXMgZmFzdCBsaWtlIGFzc2VtYmx5IGJ1dCBhbHNvIGVhc3kgdG8gdXNlIG9uIGRpZmZlcmVudCBjb21wdXRlcnMuIFRoZXkgaW1wcm92ZWQgYW4gb2xkZXIgbGFuZ3VhZ2UgY2FsbGVkIEIgYW5kIHRoZW4gY3JlYXRlZCBDIGJldHdlZW4gMTk2OSBhbmQgMTk3My48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5PbmUgb2YgdGhlIGJpZ2dlc3Qgc3VjY2VzcyBzdG9yaWVzIG9mIEMgd2FzIHdoZW4gdGhlIFVOSVggb3BlcmF0aW5nIHN5c3RlbSB3YXMgcmV3cml0dGVuIHVzaW5nIGl0LiBCZWZvcmUgdGhpcyBVTklYIHdhcyB3cml0dGVuIGluIGFzc2VtYmx5IGxhbmd1YWdlLiBBZnRlciByZXdyaXRpbmcgaXQgaW4gQyBpdCBwcm92ZWQgdGhhdCBhIGhpZ2ggbGV2ZWwgbGFuZ3VhZ2UgY291bGQgc3RpbGwgYmUgZmFzdCBhbmQgcG93ZXJmdWwgZW5vdWdoIHRvIHJ1biBhbiBvcGVyYXRpbmcgc3lzdGVtLiBUaGlzIHdhcyBhIHZlcnkgaW1wb3J0YW50IG1vbWVudCBpbiBjb21wdXRlciBoaXN0b3J5LjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPkluIDE5NzggYSBmYW1vdXMgYm9vayBjYWxsZWQgVGhlIEMgUHJvZ3JhbW1pbmcgTGFuZ3VhZ2Ugd2FzIHB1Ymxpc2hlZCBieSBLZXJuaWdoYW4gYW5kIFJpdGNoaWUuIFRoaXMgYm9vayBoZWxwZWQgbWFueSBwcm9ncmFtbWVycyBsZWFybiBDIGFuZCBpdCBiZWNhbWUgYSBtYWluIGd1aWRlIGZvciB0aGUgbGFuZ3VhZ2UuIExhdGVyIGluIDE5ODkgYSBzdGFuZGFyZCB2ZXJzaW9uIG9mIEMgd2FzIGNyZWF0ZWQgc28gdGhhdCBwcm9ncmFtcyBjb3VsZCB3b3JrIHRoZSBzYW1lIG9uIGRpZmZlcmVudCBjb21wdXRlcnMuIE1vcmUgdXBkYXRlcyBjYW1lIGxhdGVyIGJ1dCB0aGUgbWFpbiBpZGVhIG9mIEMgc3RheWVkIHRoZSBzYW1lLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPkV2ZW4gdG9kYXkgQyBpcyBzdGlsbCB1c2VkIGluIG1hbnkgaW1wb3J0YW50IHN5c3RlbXMuIEl0IGlzIHRydXN0ZWQgYmVjYXVzZSBpdCBpcyBmYXN0LCBzaW1wbGUgYW5kIHZlcnkgY2xvc2UgdG8gaG93IGNvbXB1dGVycyByZWFsbHkgd29yay48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCgo8IS0tIHdwOmltYWdlIHsiaWQiOjE1MzEwLCJzaXplU2x1ZyI6ImZ1bGwiLCJsaW5rRGVzdGluYXRpb24iOiJub25lIn0gLS0+CjwhLS0gL3dwOmltYWdlIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPlVuZGVyc3RhbmRpbmcgaG93IEMgd29ya3MgaW50ZXJuYWxseSBpcyB3aGF0IHNlcGFyYXRlcyBkZXZlbG9wZXJzIHdobyBqdXN0IHdyaXRlIEMgZnJvbSB0aG9zZSB3aG8gdHJ1bHkgdW5kZXJzdGFuZCBpdC4gQyBkb2VzIG5vdCBydW4gdGhyb3VnaCBhbiBpbnRlcnByZXRlciBvciBhIHZpcnR1YWwgbWFjaGluZS4gSXQgZm9sbG93cyBhIHByZWNpc2UgY29tcGlsYXRpb24gcGlwZWxpbmUgdGhhdCB0cmFuc2Zvcm1zIHlvdXIgc291cmNlIGNvZGUgaW50byBhIGJpbmFyeSB0aGF0IHRoZSBDUFUgZXhlY3V0ZXMgZGlyZWN0bHkuIEhlcmUgaXMgZXhhY3RseSBob3cgdGhhdCBwcm9jZXNzIHdvcmtzLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpoZWFkaW5nIHsibGV2ZWwiOjN9IC0tPgo8aDMgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPjxzdHJvbmc+U3RlcCAxIOKAlCBXcml0aW5nIHRoZSBTb3VyY2UgQ29kZTwvc3Ryb25nPjwvaDM+CjwhLS0gL3dwOmhlYWRpbmcgLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+WW91IHdyaXRlIEMgY29kZSBpbiBwbGFpbiB0ZXh0IGZpbGVzIHNhdmVkIHdpdGggYSAuYyBleHRlbnNpb24uIFRoaXMgaXMgeW91ciBodW1hbi1yZWFkYWJsZSBzb3VyY2UgY29kZS4gSXQgY29udGFpbnMgYWxsIHlvdXIgbG9naWMsIGZ1bmN0aW9ucywgdmFyaWFibGVzLCBhbmQgaW5zdHJ1Y3Rpb25zIHdyaXR0ZW4gdXNpbmcgQyBzeW50YXguPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+Ly8gaGVsbG8uYyDigJQgeW91ciBzb3VyY2UgZmlsZTwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5pbnQgbWFpbigpIHs8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPn08L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5BdCB0aGlzIHN0YWdlLCB0aGUgZmlsZSBpcyBqdXN0IHRleHQuIFRoZSBjb21wdXRlciBjYW5ub3QgcnVuIGl0IHlldC4gSXQgbmVlZHMgdG8gYmUgdHJhbnNmb3JtZWQgaW50byBtYWNoaW5lIGluc3RydWN0aW9ucyBmaXJzdC48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6aGVhZGluZyB7ImxldmVsIjozfSAtLT4KPGgzIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj48c3Ryb25nPlN0ZXAgMiDigJQgUHJlcHJvY2Vzc2luZzwvc3Ryb25nPjwvaDM+CjwhLS0gL3dwOmhlYWRpbmcgLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+QmVmb3JlIGFjdHVhbCBjb21waWxhdGlvbiBzdGFydHMsIHRoZSBDIHByZXByb2Nlc3NvciBydW5zIGZpcnN0LiBJdCBzY2FucyB5b3VyIHNvdXJjZSBmaWxlIGxvb2tpbmcgZm9yIHByZXByb2Nlc3NvciBkaXJlY3RpdmVzIOKAlCBsaW5lcyB0aGF0IHN0YXJ0IHdpdGggIy4gSXQgcHJvY2Vzc2VzIGFsbCBvZiB0aGVzZSBiZWZvcmUgdGhlIGNvbXBpbGVyIHNlZXMgdGhlIGNvZGUuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPiNkZWZpbmUgY3JlYXRlcyBtYWNyb3Mg4oCUIHRleHQgc3Vic3RpdHV0aW9ucyB0aGF0IHRoZSBwcmVwcm9jZXNzb3IgcmVwbGFjZXMgYmVmb3JlIGNvbXBpbGF0aW9uLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD4vLyBQcmVwcm9jZXNzb3IgbWFjcm8g4oCUIHJlcGxhY2VkIGJlZm9yZSBjb21waWxhdGlvbjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPiNkZWZpbmUgTUFYX1NJWkUgMTAwPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+I2RlZmluZSBTUVVBUkUoeCkgKCh4KSAqICh4KSk8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD4jZGVmaW5lIFBJIDMuMTQxNTk8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5pbnQgbWFpbigpIHs8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPn08L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD48c3Ryb25nPk91dHB1dDo8L3N0cm9uZz48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5NYXggc2l6ZTogMTAwPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+U3F1YXJlIG9mIDc6IDQ5PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+UEkgdmFsdWU6IDMuMTQxNTk8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5BcmVhIG9mIGNpcmNsZSAocj01KTogNzguNTQ8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5BZnRlciBwcmVwcm9jZXNzaW5nLCBhbGwgbWFjcm9zIGFyZSBleHBhbmRlZCBhbmQgYWxsICNpbmNsdWRlIGRpcmVjdGl2ZXMgYXJlIHJlcGxhY2VkLiBUaGUgcHJlcHJvY2Vzc29yIHByb2R1Y2VzIGEgbW9kaWZpZWQgdmVyc2lvbiBvZiB5b3VyIHNvdXJjZSBmaWxlIHRoYXQgdGhlIGNvbXBpbGVyIHRoZW4gcmVjZWl2ZXMuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOmhlYWRpbmcgeyJsZXZlbCI6M30gLS0+CjxoMyBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+PHN0cm9uZz5TdGVwIDMg4oCUIENvbXBpbGF0aW9uPC9zdHJvbmc+PC9oMz4KPCEtLSAvd3A6aGVhZGluZyAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5UaGUgY29tcGlsZXIgdGFrZXMgeW91ciBjb2RlIGFmdGVyIHByZXByb2Nlc3NpbmcgYW5kIGNoYW5nZXMgaXQgaW50byBhc3NlbWJseSBsYW5ndWFnZS4gQXNzZW1ibHkgbGFuZ3VhZ2UgaXMgYSBzaW1wbGUgZm9ybSBvZiBpbnN0cnVjdGlvbnMgdGhhdCB0aGUgY29tcHV0ZXIgY2FuIHVuZGVyc3RhbmQuIEl0IGRlcGVuZHMgb24gdGhlIHR5cGUgb2YgcHJvY2Vzc29yIGxpa2UgeDg2IG9yIEFSTS48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5UaGlzIGlzIGFsc28gdGhlIHN0YWdlIHdoZXJlIHRoZSBjb21waWxlciBjaGVja3MgeW91ciBjb2RlIGZvciBtaXN0YWtlcy4gSXQgbG9va3MgZm9yIHN5bnRheCBlcnJvcnMgYW5kIG90aGVyIHByb2JsZW1zLiBJZiB5b3UgZm9yZ2V0IGEgc2VtaWNvbG9uIG9yIHVzZSBhIHZhcmlhYmxlIHRoYXQgaXMgbm90IGRlZmluZWQgdGhlIGNvbXBpbGVyIHdpbGwgc2hvdyBhbiBlcnJvciBhdCB0aGlzIHN0YWdlLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPlRoZSBjb21waWxlciBhbHNvIHRyaWVzIHRvIG1ha2UgeW91ciBwcm9ncmFtIGJldHRlciBhbmQgZmFzdGVyLiBJdCBjYW4gaW1wcm92ZSB0aGUgY29kZSBieSByZW1vdmluZyBleHRyYSBzdGVwcyBjb21iaW5pbmcgc21hbGwgZnVuY3Rpb25zIGFuZCBjaGFuZ2luZyB0aGUgb3JkZXIgb2YgaW5zdHJ1Y3Rpb25zLiBUaGVzZSBpbXByb3ZlbWVudHMgaGVscCB0aGUgcHJvZ3JhbSBydW4gbW9yZSBlZmZpY2llbnRseSBvbiB0aGUgY29tcHV0ZXIuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+PHN0cm9uZz5Db21waWxlIGNvbW1hbmQ6PC9zdHJvbmc+PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+Z2NjIC1XYWxsIC1PMiAtYyBoZWxsby5jIC1vIGhlbGxvLm88L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5UaGUgLVdhbGwgZmxhZyBlbmFibGVzIGFsbCB3YXJuaW5ncy4gLU8yIGVuYWJsZXMgbGV2ZWwtMiBvcHRpbWl6YXRpb24uIC1jIHRlbGxzIHRoZSBjb21waWxlciB0byBwcm9kdWNlIGFuIG9iamVjdCBmaWxlIHdpdGhvdXQgbGlua2luZy48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6aGVhZGluZyB7ImxldmVsIjozfSAtLT4KPGgzIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj48c3Ryb25nPlN0ZXAgNCDigJQgQXNzZW1ibHk8L3N0cm9uZz48L2gzPgo8IS0tIC93cDpoZWFkaW5nIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPlRoZSBhc3NlbWJsZXIgdGFrZXMgdGhlIGFzc2VtYmx5IGNvZGUgcHJvZHVjZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBjb252ZXJ0cyBpdCBpbnRvIG1hY2hpbmUgY29kZSDigJQgYmluYXJ5IGluc3RydWN0aW9ucyAoemVyb3MgYW5kIG9uZXMpIHRoYXQgdGhlIENQVSBjYW4gZGlyZWN0bHkgdW5kZXJzdGFuZCBhbmQgZXhlY3V0ZS48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5UaGUgb3V0cHV0IG9mIHRoaXMgc3RlcCBpcyBhbiBvYmplY3QgZmlsZSAoLm8gb3IgLm9iaiBvbiBXaW5kb3dzKS4gT2JqZWN0IGZpbGVzIGNvbnRhaW4gbWFjaGluZSBjb2RlIGJ1dCBhcmUgbm90IHlldCBleGVjdXRhYmxlIOKAlCB0aGV5IG1heSByZWZlcmVuY2UgZnVuY3Rpb25zIG9yIHZhcmlhYmxlcyBkZWZpbmVkIGluIG90aGVyIGZpbGVzLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpoZWFkaW5nIHsibGV2ZWwiOjN9IC0tPgo8aDMgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPjxzdHJvbmc+U3RlcCA1IOKAlCBMaW5raW5nPC9zdHJvbmc+PC9oMz4KPCEtLSAvd3A6aGVhZGluZyAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5UaGUgbGlua2VyIGlzIHRoZSBmaW5hbCBzdGVwLiBJdCB0YWtlcyBvbmUgb3IgbW9yZSBvYmplY3QgZmlsZXMgYW5kIGNvbWJpbmVzIHRoZW0gd2l0aCBhbnkgcmVxdWlyZWQgbGlicmFyaWVzIChsaWtlIHRoZSBDIFN0YW5kYXJkIExpYnJhcnkpIHRvIHByb2R1Y2UgYSBzaW5nbGUgZXhlY3V0YWJsZSBiaW5hcnkuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+SWYgeW91ciBwcm9ncmFtIGNhbGxzIHByaW50ZigpLCB0aGUgbGlua2VyIGNvbm5lY3RzIHlvdXIgY29kZSB0byB0aGUgYWN0dWFsIGltcGxlbWVudGF0aW9uIG9mIHByaW50ZigpIGluIHRoZSBTdGFuZGFyZCBMaWJyYXJ5LiBJZiB5b3UgaGF2ZSBtdWx0aXBsZSAuYyBmaWxlcyBpbiB5b3VyIHByb2plY3QsIHRoZSBsaW5rZXIgY29tYmluZXMgYWxsIHRoZWlyIGNvbXBpbGVkIG9iamVjdCBmaWxlcyBpbnRvIG9uZSBleGVjdXRhYmxlLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPjxzdHJvbmc+TGluayBjb21tYW5kOjwvc3Ryb25nPjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPmdjYyBoZWxsby5vIC1vIGhlbGxvIC1sbTwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPlRoZSAtbG0gZmxhZyBsaW5rcyB0aGUgbWF0aCBsaWJyYXJ5LiBUaGUgb3V0cHV0IGhlbGxvIGlzIHRoZSBmaW5hbCBleGVjdXRhYmxlIGJpbmFyeS48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6aGVhZGluZyB7ImxldmVsIjozfSAtLT4KPGgzIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj48c3Ryb25nPlN0ZXAgNiDigJQgRXhlY3V0aW9uPC9zdHJvbmc+PC9oMz4KPCEtLSAvd3A6aGVhZGluZyAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5XaGVuIHlvdSBydW4gdGhlIGV4ZWN1dGFibGUsIHRoZSBvcGVyYXRpbmcgc3lzdGVtIGxvYWRzIGl0IGludG8gbWVtb3J5IGFuZCBoYW5kcyBjb250cm9sIHRvIHRoZSBtYWluKCkgZnVuY3Rpb24uIEZyb20gdGhhdCBwb2ludCwgdGhlIENQVSBleGVjdXRlcyB5b3VyIGluc3RydWN0aW9ucyBkaXJlY3RseSDigJQgbm8gaW50ZXJwcmV0ZXIsIG5vIHZpcnR1YWwgbWFjaGluZSwgbm8gdHJhbnNsYXRpb24gbGF5ZXIuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+Li9oZWxsbzwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPjxzdHJvbmc+T3V0cHV0Ojwvc3Ryb25nPjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPkhlbGxvIGZyb20gQyE8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5UaGlzIGRpcmVjdCBleGVjdXRpb24gaXMgd2h5IEMgaXMgZmFzdC4gVGhlIHBhdGggZnJvbSB5b3VyIHNvdXJjZSBjb2RlIHRvIHRoZSBDUFUgaXMgYXMgc2hvcnQgYXMgcG9zc2libGUuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOmhlYWRpbmcgeyJsZXZlbCI6M30gLS0+CjxoMyBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+PHN0cm9uZz5Db21wbGV0ZSBDb21waWxhdGlvbiBQaXBlbGluZSBPdmVydmlldzwvc3Ryb25nPjwvaDM+CjwhLS0gL3dwOmhlYWRpbmcgLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+U291cmNlIENvZGUgKC5jKTwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPlByZXByb2Nlc3NlZCBDb2RlPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+VW5kZXJzdGFuZGluZyB0aGlzIHBpcGVsaW5lIGhlbHBzIHlvdSBkZWJ1ZyBjb21waWxhdGlvbiBlcnJvcnMsIHVuZGVyc3RhbmQgb3B0aW1pemF0aW9uIGZsYWdzLCBhbmQga25vdyBleGFjdGx5IHdoYXQgaGFwcGVucyB3aGVuIHlvdXIgQyBwcm9ncmFtIHJ1bnMuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+CgoKPCEtLSB3cDppbWFnZSB7ImlkIjoxNTMxMSwic2l6ZVNsdWciOiJmdWxsIiwibGlua0Rlc3RpbmF0aW9uIjoibm9uZSJ9IC0tPgo8IS0tIC93cDppbWFnZSAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+QyBoYXMgYSB2ZXJ5IHNpbXBsZSBzdHJ1Y3R1cmUuIEl0IHVzZXMgb25seSAzMiBtYWluIGtleXdvcmRzLiBCZWNhdXNlIG9mIHRoaXMgaXQgaXMgZWFzeSB0byBsZWFybiBmb3IgYmVnaW5uZXJzIGFuZCBhbHNvIHBvd2VyZnVsIGZvciBleHBlcnRzLiBFdmVyeSBsaW5lIG9mIGNvZGUgaW4gQyBoYXMgYSBjbGVhciBtZWFuaW5nLiBUaGVyZSBhcmUgbm8gaGlkZGVuIGFjdGlvbnMgYW5kIG5vdGhpbmcgcnVucyBpbiB0aGUgYmFja2dyb3VuZCB3aXRob3V0IHRoZSBwcm9ncmFtbWVyIGtub3dpbmcuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPmludCBtYWluKCkgezwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+fTwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPjxzdHJvbmc+T3V0cHV0Ojwvc3Ryb25nPjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPlN1bSBvZiAxMCBhbmQgMjAgaXMgMzA8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5FdmVuIHRoaXMgc2ltcGxlIHByb2dyYW0gc2hvd3MgQydzIGNsYXJpdHkg4oCUIGV2ZXJ5IGxpbmUgaGFzIGEgZGlyZWN0IHB1cnBvc2Ugd2l0aCBubyB1bm5lY2Vzc2FyeSBzeW50YXggc3Vycm91bmRpbmcgaXQuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOmhlYWRpbmcgeyJsZXZlbCI6M30gLS0+CjxoMyBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+PHN0cm9uZz4yLiBQb3J0YWJpbGl0eSBBY3Jvc3MgUGxhdGZvcm1zPC9zdHJvbmc+PC9oMz4KPCEtLSAvd3A6aGVhZGluZyAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5BIEMgcHJvZ3JhbSB3cml0dGVuIG9uIG9uZSBtYWNoaW5lIGNhbiBiZSBjb21waWxlZCBhbmQgcnVuIG9uIGEgY29tcGxldGVseSBkaWZmZXJlbnQgbWFjaGluZSwgb3BlcmF0aW5nIHN5c3RlbSwgb3IgaGFyZHdhcmUgYXJjaGl0ZWN0dXJlIHdpdGggbWluaW1hbCBvciBubyBjaGFuZ2VzLiBDIGNvbXBpbGVycyBleGlzdCBmb3IgdmlydHVhbGx5IGV2ZXJ5IHBsYXRmb3JtIOKAlCB4ODYsIEFSTSwgUklTQy1WLCBNSVBTLCBQb3dlclBDLCBhbmQgbW9yZS48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+Ly8gUnVucyBpZGVudGljYWxseSBvbiBXaW5kb3dzLCBMaW51eCwgbWFjT1MsIGFuZCBlbWJlZGRlZCBBUk08L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5pbnQgbWFpbigpIHs8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPn08L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD48c3Ryb25nPk91dHB1dDo8L3N0cm9uZz48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5Qb3J0YWJsZSBDIHByb2dyYW0hPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5kb3VibGUgc2l6ZTogOCBieXRlczwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpoZWFkaW5nIHsibGV2ZWwiOjN9IC0tPgo8aDMgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPjxzdHJvbmc+My4gSGlnaCBQZXJmb3JtYW5jZSBhbmQgU3BlZWQ8L3N0cm9uZz48L2gzPgo8IS0tIC93cDpoZWFkaW5nIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPkMgY29tcGlsZXMgZGlyZWN0bHkgdG8gbmF0aXZlIG1hY2hpbmUgY29kZS4gVGhlcmUgaXMgbm8gaW50ZXJwcmV0ZXIsIG5vIHZpcnR1YWwgbWFjaGluZSwgbm8gZ2FyYmFnZSBjb2xsZWN0b3IuIFRoZSBiaW5hcnkgcnVucyBkaXJlY3RseSBvbiB0aGUgQ1BVIHdpdGggemVybyBydW50aW1lIG92ZXJoZWFkIOKAlCB3aGljaCBpcyB3aHkgQyBpcyB1c2VkIHdoZXJldmVyIHBlcmZvcm1hbmNlIGlzIG5vbi1uZWdvdGlhYmxlLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+aW50IG1haW4oKSB7PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+fTwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPjxzdHJvbmc+T3V0cHV0Ojwvc3Ryb25nPjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPlN1bTogNTAwMDAwMDAwNTAwMDAwMDAwPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+VGltZTogMC4zODcgc2Vjb25kczwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPlN1bW1pbmcgb25lIGJpbGxpb24gbnVtYmVycyBpbiB1bmRlciAwLjQgc2Vjb25kcyDigJQgdGhpcyBpcyBuYXRpdmUgbWFjaGluZSBjb2RlIHBlcmZvcm1hbmNlLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpoZWFkaW5nIHsibGV2ZWwiOjN9IC0tPgo8aDMgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPjxzdHJvbmc+NC4gTW9kdWxhcml0eSBUaHJvdWdoIEZ1bmN0aW9uczwvc3Ryb25nPjwvaDM+CjwhLS0gL3dwOmhlYWRpbmcgLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+QyBzdXBwb3J0cyBzdHJ1Y3R1cmVkIHByb2dyYW1taW5nIGJ5IG9yZ2FuaXppbmcgY29kZSBpbnRvIGZ1bmN0aW9ucy4gRWFjaCBmdW5jdGlvbiBkb2VzIG9uZSB0aGluZy4gVGhpcyBtYWtlcyBwcm9ncmFtcyBlYXNpZXIgdG8gcmVhZCwgdGVzdCwgZGVidWcsIGFuZCBtYWludGFpbi4gTGFyZ2UgcHJvamVjdHMgbGlrZSB0aGUgTGludXgga2VybmVsIGNvbnRhaW4gaHVuZHJlZHMgb2YgdGhvdXNhbmRzIG9mIGZ1bmN0aW9ucy48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+aW50IGZpbmRNYXgoaW50IGEsIGludCBiLCBpbnQgYykgezwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD59PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+ZmxvYXQgZmluZEF2ZXJhZ2UoaW50IGEsIGludCBiLCBpbnQgYykgezwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD59PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+aW50IGlzUHJpbWUoaW50IG4pIHs8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+fTwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPmludCBtYWluKCkgezwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPn08L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD48c3Ryb25nPk91dHB1dDo8L3N0cm9uZz48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5NYXg6IDgyPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+QXZlcmFnZTogNjMuMzM8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5JcyA4MiBwcmltZT8gTm88L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5JcyA4MyBwcmltZT8gWWVzPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOmhlYWRpbmcgeyJsZXZlbCI6M30gLS0+CjxoMyBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+PHN0cm9uZz41LiBSaWNoIFN0YW5kYXJkIExpYnJhcnk8L3N0cm9uZz48L2gzPgo8IS0tIC93cDpoZWFkaW5nIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPkMgcHJvdmlkZXMgYSBjb21wcmVoZW5zaXZlIFN0YW5kYXJkIExpYnJhcnkgdGhyb3VnaCBoZWFkZXIgZmlsZXMuIFRoZXNlIGNvdmVyIEkvTyBvcGVyYXRpb25zLCBzdHJpbmcgbWFuaXB1bGF0aW9uLCBtYXRoZW1hdGljYWwgZnVuY3Rpb25zLCBtZW1vcnkgbWFuYWdlbWVudCwgZmlsZSBoYW5kbGluZywgYW5kIG1vcmUg4oCUIGFsbCB3aXRob3V0IGV4dGVybmFsIGRlcGVuZGVuY2llcy48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+aW50IG1haW4oKSB7PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPn08L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD48c3Ryb25nPk91dHB1dDo8L3N0cm9uZz48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5TdHJpbmc6IEMgUHJvZ3JhbW1pbmc8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5MZW5ndGg6IDEzPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+c3FydCgyMjUpID0gMTU8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5wb3coMiwxMCkgPSAxMDI0PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+Y2VpbCg0LjIpID0gNTwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPmZsb29yKDQuOSkgPSA0PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+UmFuZG9tICgxLTEwMCk6IDM3PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOmhlYWRpbmcgeyJsZXZlbCI6M30gLS0+CjxoMyBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+PHN0cm9uZz42LiBNYW51YWwgTWVtb3J5IE1hbmFnZW1lbnQ8L3N0cm9uZz48L2gzPgo8IS0tIC93cDpoZWFkaW5nIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPkMgZ2l2ZXMgcHJvZ3JhbW1lcnMgY29tcGxldGUsIGRpcmVjdCBjb250cm9sIG92ZXIgbWVtb3J5IHRocm91Z2ggbWFsbG9jKCksIGNhbGxvYygpLCByZWFsbG9jKCksIGFuZCBmcmVlKCkuIFlvdSBkZWNpZGUgZXhhY3RseSB3aGVuIG1lbW9yeSBpcyBhbGxvY2F0ZWQgYW5kIHdoZW4gaXQgaXMgcmVsZWFzZWQg4oCUIHRoZXJlIGlzIG5vIGdhcmJhZ2UgY29sbGVjdG9yIG1ha2luZyB0aG9zZSBkZWNpc2lvbnMgZm9yIHlvdS48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPmludCBtYWluKCkgezwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPn08L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD48c3Ryb25nPk91dHB1dDo8L3N0cm9uZz48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5TcXVhcmVzIHN0b3JlZCBpbiBkeW5hbWljIG1lbW9yeTo8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5hcnJbMF0gPSAxPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+YXJyWzFdID0gNDwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPmFyclsyXSA9IDk8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5hcnJbM10gPSAxNjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPmFycls0XSA9IDI1PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+TWVtb3J5IGZyZWVkLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpoZWFkaW5nIHsibGV2ZWwiOjN9IC0tPgo8aDMgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPjxzdHJvbmc+Ny4gUG9pbnRlcnMg4oCUIERpcmVjdCBNZW1vcnkgQWNjZXNzPC9zdHJvbmc+PC9oMz4KPCEtLSAvd3A6aGVhZGluZyAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5Qb2ludGVycyBzdG9yZSBtZW1vcnkgYWRkcmVzc2VzLiBUaHJvdWdoIHBvaW50ZXJzLCBDIGdpdmVzIGRpcmVjdCBhY2Nlc3MgdG8gbWVtb3J5LCBlbmFibGluZyBkeW5hbWljIGRhdGEgc3RydWN0dXJlcywgZWZmaWNpZW50IGZ1bmN0aW9uIHBhcmFtZXRlciBwYXNzaW5nLCBhbmQgaGFyZHdhcmUtbGV2ZWwgcHJvZ3JhbW1pbmcgdGhhdCBpcyBzaW1wbHkgbm90IHBvc3NpYmxlIGluIG1vc3Qgb3RoZXIgbGFuZ3VhZ2VzLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD52b2lkIHN3YXAoaW50ICphLCBpbnQgKmIpIHs8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD59PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+aW50IG1haW4oKSB7PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+fTwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPjxzdHJvbmc+T3V0cHV0Ojwvc3Ryb25nPjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPkJlZm9yZTogeCA9IDEwMCwgeSA9IDIwMDwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5UcmF2ZXJzaW5nIGFycmF5IHdpdGggcG9pbnRlcjo8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD4qKHB0ciswKSA9IDEwPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+KihwdHIrMSkgPSAyMDwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPioocHRyKzIpID0gMzA8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD4qKHB0ciszKSA9IDQwPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+KihwdHIrNCkgPSA1MDwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpoZWFkaW5nIHsibGV2ZWwiOjN9IC0tPgo8aDMgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPjxzdHJvbmc+OC4gRGlyZWN0IEhhcmR3YXJlIEFjY2Vzczwvc3Ryb25nPjwvaDM+CjwhLS0gL3dwOmhlYWRpbmcgLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+VGhyb3VnaCBwb2ludGVycyBhbmQgbWVtb3J5LW1hcHBlZCBJL08sIEMgYWxsb3dzIGRpcmVjdCBpbnRlcmFjdGlvbiB3aXRoIGhhcmR3YXJlIGNvbXBvbmVudHMg4oCUIHByb2Nlc3NvcnMsIG1lbW9yeSByZWdpc3RlcnMsIEdQSU8gcGlucywgY29tbXVuaWNhdGlvbiBidXNlcywgYW5kIHBlcmlwaGVyYWxzLiBUaGlzIGlzIHdoeSBDIGRvbWluYXRlcyBlbWJlZGRlZCBzeXN0ZW1zIGRldmVsb3BtZW50LjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPi8vIEhhcmR3YXJlIHJlZ2lzdGVyIGFjY2VzcyBpbiBlbWJlZGRlZCBDPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+Ly8gKENvbmNlcHR1YWwg4oCUIHJlYWwgYWRkcmVzc2VzIGRlcGVuZCBvbiB0aGUgbWljcm9jb250cm9sbGVyKTwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD4vLyBTaW11bGF0aW5nIG1lbW9yeS1tYXBwZWQgaGFyZHdhcmUgcmVnaXN0ZXJzPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+dW5zaWduZWQgaW50IEdQSU9fT1VUUFVUID0gMHgwMDAwMDAwMDs8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD52b2lkIHNldFBpbkhpZ2goaW50IHBpbikgezwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+fTwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPnZvaWQgc2V0UGluTG93KGludCBwaW4pIHs8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPn08L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5pbnQgbWFpbigpIHs8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD59PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+PHN0cm9uZz5PdXRwdXQ6PC9zdHJvbmc+PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+SGFyZHdhcmUgR1BJTyBDb250cm9sIFNpbXVsYXRpb248L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5QaW4gMCBzZXQgSElHSCB8IFJlZ2lzdGVyOiAweDAwMDAwMDAxPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+UGluIDMgc2V0IEhJR0ggfCBSZWdpc3RlcjogMHgwMDAwMDAwOTwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPlBpbiA3IHNldCBISUdIIHwgUmVnaXN0ZXI6IDB4MDAwMDAwODk8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+CgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPkMgUHJvZ3JhbW1pbmcgaXMgdmVyeSBwb3dlcmZ1bCBhbmQgZmxleGlibGUuIEl0IGlzIHVzZWQgdG8gYnVpbGQgdmVyeSBpbXBvcnRhbnQgc29mdHdhcmUgc3lzdGVtcy4gVGhlc2Ugc3lzdGVtcyBhcmUgdXNlZCBldmVyeSBkYXkgYnkgYmlsbGlvbnMgb2YgcGVvcGxlIGluIDIwMjYuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOmhlYWRpbmcgeyJsZXZlbCI6M30gLS0+CjxoMyBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+PHN0cm9uZz4xLjwvc3Ryb25nPiA8c3Ryb25nPk9wZXJhdGluZyBTeXN0ZW1zIERldmVsb3BtZW50PC9zdHJvbmc+PC9oMz4KPCEtLSAvd3A6aGVhZGluZyAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD48YnI+T3BlcmF0aW5nIHN5c3RlbXMgY29udHJvbCBjb21wdXRlciBoYXJkd2FyZSBhbmQgcnVuIGFsbCBhcHBzLiBUaGV5IGFsc28gbWFuYWdlIGZpbGVzIGFuZCBzeXN0ZW0gdGFza3MuIEMgaXMgdXNlZCB0byBidWlsZCBhbG1vc3QgYWxsIG1ham9yIG9wZXJhdGluZyBzeXN0ZW1zLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPlVOSVggd2FzIHRoZSBmaXJzdCBvcGVyYXRpbmcgc3lzdGVtIHJld3JpdHRlbiB1c2luZyBDLiBMaW51eCBpcyBhbHNvIG1vc3RseSB3cml0dGVuIGluIEMuIExpbnV4IGlzIHVzZWQgaW4gQW5kcm9pZCBwaG9uZXMgd2ViIHNlcnZlcnMgYmlnIGNvbXB1dGVycyBhbmQgY2xvdWQgc3lzdGVtcy4gUGFydHMgb2YgV2luZG93cyBhbmQgbWFjT1MgYXJlIGFsc28gYnVpbHQgdXNpbmcgQyBhbmQgQyBwbHVzIHBsdXMuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+aW50IG1haW4oKSB7PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD59PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+PHN0cm9uZz5PdXRwdXQ6PC9zdHJvbmc+PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPlBhcmVudCBQcm9jZXNzIElEOiAxNDgyMDwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6aGVhZGluZyB7ImxldmVsIjozfSAtLT4KPGgzIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj48c3Ryb25nPjIuIEVtYmVkZGVkIFN5c3RlbXMgYW5kIE1pY3JvY29udHJvbGxlcnM8L3N0cm9uZz48L2gzPgo8IS0tIC93cDpoZWFkaW5nIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPkVtYmVkZGVkIHN5c3RlbXMgYXJlIGluc2lkZSB5b3VyIGNhcidzIGVuZ2luZSBjb250cm9sIHVuaXQsIHlvdXIgc21hcnR3YXRjaCwgeW91ciBXaUZpIHJvdXRlciwgeW91ciBtZWRpY2FsIGRldmljZXMsIGFuZCBpbmR1c3RyaWFsIGNvbnRyb2xsZXJzLiBDIGRvbWluYXRlcyB0aGlzIGRvbWFpbiBiZWNhdXNlIGl0IHByb2R1Y2VzIGNvbXBhY3QgYmluYXJ5IGNvZGUsIHVzZXMgbWluaW1hbCBSQU0sIGFuZCBnaXZlcyBkaXJlY3QgaGFyZHdhcmUgYWNjZXNzLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD4vLyBFbWJlZGRlZCBMRUQgYmxpbmsgc2ltdWxhdGlvbjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPiNkZWZpbmUgTEVEX1BJTiAxMzwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPnZvaWQgZGlnaXRhbFdyaXRlKGludCBwaW4sIGludCBzdGF0ZSkgezwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD59PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+dm9pZCBkZWxheV9tcyhpbnQgbXMpIHs8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+fTwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPmludCBtYWluKCkgezwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+fTwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPjxzdHJvbmc+T3V0cHV0Ojwvc3Ryb25nPjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPkVtYmVkZGVkIExFRCBCbGluayDigJQgMyBjeWNsZXM8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+W0RlbGF5OiA1MDAgbXNdPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPltEZWxheTogNTAwIG1zXTwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPi4uLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpoZWFkaW5nIHsibGV2ZWwiOjN9IC0tPgo8aDMgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPjxzdHJvbmc+My4gRGF0YWJhc2UgTWFuYWdlbWVudCBTeXN0ZW1zPC9zdHJvbmc+PC9oMz4KPCEtLSAvd3A6aGVhZGluZyAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5TUUxpdGUsIHRoZSBtb3N0IHdpZGVseSBkZXBsb3llZCBkYXRhYmFzZSBvbiB0aGUgcGxhbmV0LCBpcyB3cml0dGVuIGVudGlyZWx5IGluIEMuIFBvc3RncmVTUUwsIE15U1FMLCBhbmQgUmVkaXMgYXJlIGFsc28gQy4gRGF0YWJhc2VzIGhhbmRsZSBtaWxsaW9ucyBvZiBxdWVyaWVzIHBlciBzZWNvbmQgYW5kIG5lZWQgcHJlZGljdGFibGUsIGhpZ2gtc3BlZWQgcGVyZm9ybWFuY2Ug4oCUIGV4YWN0bHkgd2hhdCBDIGRlbGl2ZXJzLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+I2RlZmluZSBNQVggNTwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPnN0cnVjdCBSZWNvcmQgeyBjaGFyIGtleVsyMF07IGNoYXIgdmFsdWVbNTBdOyB9OzwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPnN0cnVjdCBSZWNvcmQgZGJbTUFYXTs8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5pbnQgY291bnQgPSAwOzwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPnZvaWQgaW5zZXJ0KGNvbnN0IGNoYXIgKmtleSwgY29uc3QgY2hhciAqdmFsKSB7PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+fTwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPnZvaWQgcXVlcnkoY29uc3QgY2hhciAqa2V5KSB7PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPn08L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5pbnQgbWFpbigpIHs8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+fTwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPjxzdHJvbmc+T3V0cHV0Ojwvc3Ryb25nPjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPj09PSBTaW1wbGUgRGF0YWJhc2UgRW5naW5lID09PTwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD49PT0gUXVlcmllcyA9PT08L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPk5vdCBmb3VuZDogb3M8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6aGVhZGluZyB7ImxldmVsIjozfSAtLT4KPGgzIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj48c3Ryb25nPjQuIENvbXBpbGVycyBhbmQgTGFuZ3VhZ2UgSW50ZXJwcmV0ZXJzPC9zdHJvbmc+PC9oMz4KPCEtLSAvd3A6aGVhZGluZyAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5DUHl0aG9uIChQeXRob24ncyBzdGFuZGFyZCBpbXBsZW1lbnRhdGlvbikgaXMgd3JpdHRlbiBpbiBDLiBQSFAgcnVudGltZSwgUnVieSdzIE1SSSBpbnRlcnByZXRlciwgYW5kIEx1YSBhcmUgYWxsIEMuIFdoZW4geW91IHJ1biBhIFB5dGhvbiBzY3JpcHQsIEMgY29kZSBpcyBwYXJzaW5nIGl0LCBjb21waWxpbmcgaXQgdG8gYnl0ZWNvZGUsIGFuZCBleGVjdXRpbmcgaXQuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPi8vIFNpbXVsYXRlZCBleHByZXNzaW9uIGV2YWx1YXRvciDigJQgbGlrZSB3aGF0IGFuIGludGVycHJldGVyIGRvZXM8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5kb3VibGUgZXZhbHVhdGUoZG91YmxlIGEsIGNoYXIgb3AsIGRvdWJsZSBiKSB7PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPn08L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5pbnQgbWFpbigpIHs8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD59PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+PHN0cm9uZz5PdXRwdXQ6PC9zdHJvbmc+PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+RXhwcmVzc2lvbiBFdmFsdWF0b3IgKGludGVycHJldGVyIGNvcmUpPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpoZWFkaW5nIHsibGV2ZWwiOjN9IC0tPgo8aDMgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPjxzdHJvbmc+NS4gTmV0d29yayBQcm9ncmFtbWluZyBhbmQgQ3liZXJzZWN1cml0eSBUb29sczwvc3Ryb25nPjwvaDM+CjwhLS0gL3dwOmhlYWRpbmcgLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+TmdpbnggKHdlYiBzZXJ2ZXIpLCBPcGVuU1NMIChlbmNyeXB0aW9uKSwgV2lyZXNoYXJrIChwYWNrZXQgYW5hbHlzaXMpLCBhbmQgTm1hcCAocG9ydCBzY2FubmluZykgYXJlIGFsbCB3cml0dGVuIGluIEMuIE5ldHdvcmsgc29mdHdhcmUgbmVlZHMgZmFzdCBieXRlLWxldmVsIGRhdGEgaGFuZGxpbmcg4oCUIEMgZG9lcyB0aGlzIGJldHRlciB0aGFuIGFueSBvdGhlciBoaWdoLWxldmVsIGxhbmd1YWdlLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+c3RydWN0IFBhY2tldCB7PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPn07PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+dm9pZCBhbmFseXplUGFja2V0KHN0cnVjdCBQYWNrZXQgcCkgezwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+fTwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPmludCBtYWluKCkgezwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPn08L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD48c3Ryb25nPk91dHB1dDo8L3N0cm9uZz48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5OZXR3b3JrIFBhY2tldCBBbmFseXplcjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6aGVhZGluZyB7ImxldmVsIjozfSAtLT4KPGgzIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj48c3Ryb25nPjYuIEdhbWUgRGV2ZWxvcG1lbnQgYW5kIEdyYXBoaWNzIEVuZ2luZXM8L3N0cm9uZz48L2gzPgo8IS0tIC93cDpoZWFkaW5nIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPk9wZW5HTCBhbmQgVnVsa2FuIOKAlCB0aGUgc3RhbmRhcmQgR1BVIHJlbmRlcmluZyBBUElzIOKAlCBhcmUgQyBpbnRlcmZhY2VzLiBTREwgKFNpbXBsZSBEaXJlY3RNZWRpYSBMYXllciksIHVzZWQgaW4gdGhvdXNhbmRzIG9mIGdhbWVzLCBpcyB3cml0dGVuIGluIEMuIFJlYWwtdGltZSBnYW1lIGxvb3BzIG5lZWQgY29uc2lzdGVudCBmcmFtZSB0aW1pbmcgYW5kIHplcm8gR0MgcGF1c2VzIOKAlCBib3RoIEMgc3RyZW5ndGhzLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5zdHJ1Y3QgR2FtZU9iamVjdCB7IGNoYXIgbmFtZVsyMF07IGZsb2F0IHgsIHksIHNwZWVkOyBpbnQgaGVhbHRoOyB9OzwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD52b2lkIHJlbmRlcihzdHJ1Y3QgR2FtZU9iamVjdCBvYmopIHs8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+fTwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPmludCBtYWluKCkgezwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD59PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+PHN0cm9uZz5PdXRwdXQ6PC9zdHJvbmc+PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+PT09IEdhbWUgTG9vcCDigJQgNCBGcmFtZXMgPT09PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+RnJhbWUgMTo8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5bUGxheWVyXSBwb3M9KDMuMCwgMC4wKSBIUD0xMDA8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5bRW5lbXldIHBvcz0oNzguNSwgMC4wKSBIUD02MDwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPkZyYW1lIDI6PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+W1BsYXllcl0gcG9zPSg2LjAsIDAuMCkgSFA9MTAwPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+W0VuZW15XSBwb3M9KDc3LjAsIDAuMCkgSFA9NjA8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD4uLi48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6aGVhZGluZyB7ImxldmVsIjozfSAtLT4KPGgzIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj48c3Ryb25nPjcuIEFydGlmaWNpYWwgSW50ZWxsaWdlbmNlIGFuZCBSb2JvdGljczwvc3Ryb25nPjwvaDM+CjwhLS0gL3dwOmhlYWRpbmcgLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+VGVuc29yRmxvdyBMaXRlIOKAlCB3aGljaCBydW5zIE1MIG1vZGVscyBvbiBwaG9uZXMgYW5kIGVtYmVkZGVkIGRldmljZXMg4oCUIGhhcyBpdHMgY29yZSB3cml0dGVuIGluIEMgYW5kIEMrKy4gUm9ib3RpY3MgY29udHJvbCBzeXN0ZW1zIHVzZSBDIGZvciByZWFsLXRpbWUgc2Vuc29yIHByb2Nlc3NpbmcgYmVjYXVzZSByZXNwb25zZSB0aW1lIG11c3QgYmUgbWljcm9zZWNvbmRzLCBub3QgbWlsbGlzZWNvbmRzLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPmRvdWJsZSBzaWdtb2lkKGRvdWJsZSB4KSB7IHJldHVybiAxLjAgLyAoMS4wICsgZXhwKC14KSk7IH08L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5kb3VibGUgbmV1cm9uKGRvdWJsZSBpbnB1dHNbXSwgZG91YmxlIHdlaWdodHNbXSwgaW50IG4sIGRvdWJsZSBiaWFzKSB7PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+fTwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPmludCBtYWluKCkgezwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+fTwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPjxzdHJvbmc+T3V0cHV0Ojwvc3Ryb25nPjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPk5ldXJhbCBOZXR3b3JrIOKAlCBTaW5nbGUgTmV1cm9uPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+UmVMVSBhY3RpdmF0aW9uczo8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+TmV1cm9uIG91dHB1dDogMC43MTA5PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5BIEMgcHJvZ3JhbSBpcyBjb21wb3NlZCBvZiBzZXZlcmFsIGtleSBlbGVtZW50cyB0aGF0IHdvcmsgdG9nZXRoZXIgdG8gcGVyZm9ybSB0YXNrcy4gVW5kZXJzdGFuZGluZyB0aGVzZSBlbGVtZW50cyBpcyBlc3NlbnRpYWwgZm9yIHdyaXRpbmcgY29ycmVjdCBhbmQgZWZmZWN0aXZlIEMgY29kZS48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6aGVhZGluZyB7ImxldmVsIjozfSAtLT4KPGgzIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj48c3Ryb25nPjEuIEhlYWRlciBGaWxlczwvc3Ryb25nPjwvaDM+CjwhLS0gL3dwOmhlYWRpbmcgLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+SGVhZGVyIGZpbGVzIGNvbnRhaW4gZGVjbGFyYXRpb25zIG9mIGZ1bmN0aW9ucyBhbmQgbWFjcm9zLiBUaGV5IGFyZSBpbmNsdWRlZCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBwcm9ncmFtIHVzaW5nICNpbmNsdWRlLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6aGVhZGluZyB7ImxldmVsIjozfSAtLT4KPGgzIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj48c3Ryb25nPjIuIFRoZSBNYWluIEZ1bmN0aW9uPC9zdHJvbmc+PC9oMz4KPCEtLSAvd3A6aGVhZGluZyAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5FdmVyeSBDIHByb2dyYW0gc3RhcnRzIGV4ZWN1dGlvbiBmcm9tIG1haW4oKS4gSXQgcmV0dXJucyBhbiBpbnRlZ2VyIOKAlCAwIGZvciBzdWNjZXNzLCBub24temVybyBmb3IgZXJyb3IuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPmludCBtYWluKCkgezwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+fTwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpoZWFkaW5nIHsibGV2ZWwiOjN9IC0tPgo8aDMgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPjxzdHJvbmc+My4gVmFyaWFibGVzIGFuZCBEYXRhIFR5cGVzPC9zdHJvbmc+PC9oMz4KPCEtLSAvd3A6aGVhZGluZyAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+aW50IG1haW4oKSB7PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPn08L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD48c3Ryb25nPk91dHB1dDo8L3N0cm9uZz48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5BZ2U6IDI4IHwgUHJpY2U6IDk5Ljk5IHwgUGk6IDMuMTQxNTkgfCBJbml0aWFsOiBEPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOmhlYWRpbmcgeyJsZXZlbCI6M30gLS0+CjxoMyBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+PHN0cm9uZz40LiBPcGVyYXRvcnM8L3N0cm9uZz48L2gzPgo8IS0tIC93cDpoZWFkaW5nIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5pbnQgbWFpbigpIHs8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPn08L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD48c3Ryb25nPk91dHB1dDo8L3N0cm9uZz48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD4rIDogMjM8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD4tIDogMTM8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD4qIDogOTA8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD4vIDogMzwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPiUgOiAzPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPmEgPT0gYjogMDwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpoZWFkaW5nIHsibGV2ZWwiOjN9IC0tPgo8aDMgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPjxzdHJvbmc+NS4gQ29udHJvbCBTdGF0ZW1lbnRzPC9zdHJvbmc+PC9oMz4KPCEtLSAvd3A6aGVhZGluZyAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+aW50IG1haW4oKSB7PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+fTwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPjxzdHJvbmc+T3V0cHV0Ojwvc3Ryb25nPjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPkdyYWRlOiBCPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOmhlYWRpbmcgeyJsZXZlbCI6M30gLS0+CjxoMyBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+PHN0cm9uZz42LiBMb29wczwvc3Ryb25nPjwvaDM+CjwhLS0gL3dwOmhlYWRpbmcgLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPmludCBtYWluKCkgezwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD59PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+PHN0cm9uZz5PdXRwdXQ6PC9zdHJvbmc+PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+RmFjdG9yaWFsIG9mIDcgPSA1MDQwPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+U3VtIG9mIDEgdG8gNTAgPSAxMjc1PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOmhlYWRpbmcgeyJsZXZlbCI6M30gLS0+CjxoMyBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+PHN0cm9uZz43LiBGdW5jdGlvbnM8L3N0cm9uZz48L2gzPgo8IS0tIC93cDpoZWFkaW5nIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5sb25nIGZpYm9uYWNjaShpbnQgbikgezwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+fTwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPmludCBtYWluKCkgezwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD59PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+PHN0cm9uZz5PdXRwdXQ6PC9zdHJvbmc+PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+Rmlib25hY2NpIHNlcXVlbmNlOjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPkYoMCkgPSAwPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+RigxKSA9IDE8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5GKDIpID0gMTwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPkYoMykgPSAyPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+Rig0KSA9IDM8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5GKDUpID0gNTwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPkYoNikgPSA4PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+Rig3KSA9IDEzPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+Rig4KSA9IDIxPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+Rig5KSA9IDM0PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOmhlYWRpbmcgeyJsZXZlbCI6M30gLS0+CjxoMyBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+PHN0cm9uZz44LiBQb2ludGVyczwvc3Ryb25nPjwvaDM+CjwhLS0gL3dwOmhlYWRpbmcgLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+UG9pbnRlcnMgc3RvcmUgbWVtb3J5IGFkZHJlc3NlcyBhbmQgZW5hYmxlIGR5bmFtaWMgbWVtb3J5IGFsbG9jYXRpb24sIGVmZmljaWVudCBmdW5jdGlvbiBjYWxscywgYW5kIGhhcmR3YXJlLWxldmVsIHByb2dyYW1taW5nLiBNYXN0ZXJ5IG9mIHBvaW50ZXJzIHNlcGFyYXRlcyBhIGNvbXBldGVudCBDIGRldmVsb3BlciBmcm9tIGEgdHJ1bHkgc2tpbGxlZCBvbmUuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPmludCBtYWluKCkgezwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+fTwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPjxzdHJvbmc+T3V0cHV0Ojwvc3Ryb25nPjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPkFmdGVyIGNoYW5nZSA6IDk5OTwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKCjwhLS0gd3A6aW1hZ2UgeyJpZCI6MTUzMTIsInNpemVTbHVnIjoiZnVsbCIsImxpbmtEZXN0aW5hdGlvbiI6Im5vbmUifSAtLT4KPCEtLSAvd3A6aW1hZ2UgLS0+CgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPjxzdHJvbmc+YSkgU3RydWN0dXJlZCBMYW5ndWFnZTwvc3Ryb25nPjxzdHJvbmc+PGJyPjwvc3Ryb25nPiBDIGhlbHBzIHlvdSB3cml0ZSBwcm9ncmFtcyBpbiBhIGNsZWFyIGFuZCBvcmdhbml6ZWQgd2F5IHVzaW5nIGZ1bmN0aW9ucy4gVGhpcyBtYWtlcyBjb2RlIGVhc2llciB0byByZWFkIGFuZCBmaXguIEJpZyBwcm9ncmFtcyBjYW4gYmUgc3BsaXQgaW50byBzbWFsbCBwYXJ0cyB3aGljaCBtYWtlcyB0aGVtIGVhc2llciB0byBtYW5hZ2UuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+PHN0cm9uZz5iKSBXaWRlIEFkb3B0aW9uIGFuZCBFY29zeXN0ZW08L3N0cm9uZz48c3Ryb25nPjxicj48L3N0cm9uZz4gQyBoYXMgYmVlbiB1c2VkIGZvciBtYW55IHllYXJzIHNvIGl0IGhhcyBtYW55IHRvb2xzIGFuZCBzdXBwb3J0LiBUaGVyZSBhcmUgY29tcGlsZXIgZGVidWdnZXJzLCBsaWJyYXJpZXMgYW5kIGd1aWRlcyBhdmFpbGFibGUuIFRoaXMgbWFrZXMgYnVpbGRpbmcgYW5kIGZpeGluZyBwcm9ncmFtcyBlYXNpZXIgZm9yIGRldmVsb3BlcnMuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+PHN0cm9uZz5jKSBEaXJlY3QgSGFyZHdhcmUgQ29udHJvbDwvc3Ryb25nPjxzdHJvbmc+PGJyPjwvc3Ryb25nPiBDIGNhbiBkaXJlY3RseSBjb250cm9sIGNvbXB1dGVyIGhhcmR3YXJlIHVzaW5nIHBvaW50ZXJzIGFuZCBtZW1vcnkgYWNjZXNzLiBUaGlzIGlzIHZlcnkgdXNlZnVsIGZvciBzeXN0ZW0gc29mdHdhcmUgZHJpdmVycyBhbmQgZW1iZWRkZWQgZGV2aWNlcyB3aGVyZSBmdWxsIGNvbnRyb2wgaXMgbmVlZGVkLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPjxzdHJvbmc+ZCkgRm91bmRhdGlvbiBmb3IgT3RoZXIgTGFuZ3VhZ2VzPC9zdHJvbmc+PHN0cm9uZz48YnI+PC9zdHJvbmc+IExlYXJuaW5nIEMgaGVscHMgeW91IHVuZGVyc3RhbmQgbWFueSBvdGhlciBsYW5ndWFnZXMgbGlrZSBDIHBsdXMgSmF2YSBQeXRob24gR28gYW5kIFJ1c3QuIEl0IGJ1aWxkcyBzdHJvbmcgYmFzaWMga25vd2xlZGdlIG9mIGhvdyBwcm9ncmFtbWluZyByZWFsbHkgd29ya3MuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+PHN0cm9uZz5lKSBPcGVuIFNvdXJjZSBhbmQgRnJlZTwvc3Ryb25nPjxzdHJvbmc+PGJyPjwvc3Ryb25nPiBNYW55IEMgdG9vbHMgYW5kIGxpYnJhcmllcyBhcmUgZnJlZSB0byB1c2UuIERldmVsb3BlcnMgYW5kIGNvbXBhbmllcyBjYW4gdXNlIHRoZW0gd2l0aG91dCBwYXlpbmcgbW9uZXkuIFRoaXMgbWFrZXMgQyBhY2Nlc3NpYmxlIGZvciBldmVyeW9uZS48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD48c3Ryb25nPmYpIFByZWRpY3RhYmxlIFBlcmZvcm1hbmNlPC9zdHJvbmc+PHN0cm9uZz48YnI+PC9zdHJvbmc+IEMgcnVucyB2ZXJ5IGZhc3QgYmVjYXVzZSBpdCBjb252ZXJ0cyBkaXJlY3RseSBpbnRvIG1hY2hpbmUgY29kZS4gVGhlcmUgaXMgbm8gZXh0cmEgZGVsYXkgb3IgYmFja2dyb3VuZCBwcm9jZXNzaW5nLiBUaGlzIG1ha2VzIGl0IHZlcnkgZ29vZCBmb3IgcmVhbCB0aW1lIHN5c3RlbXMuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+CgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPjxzdHJvbmc+YSkgQ29tcGxleCBmb3IgQmVnaW5uZXJzPC9zdHJvbmc+PHN0cm9uZz48YnI+PC9zdHJvbmc+IEMgY2FuIGJlIGhhcmQgZm9yIG5ldyBsZWFybmVycy4gU21hbGwgbWlzdGFrZXMgaW4gY29kZSBjYW4gY2F1c2UgY3Jhc2hlcyBvciBlcnJvcnMuIFRoaW5ncyBsaWtlIHBvaW50ZXJzIGFuZCBtZW1vcnkgbmVlZCBjYXJlZnVsIGhhbmRsaW5nLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPjxzdHJvbmc+YikgTm8gT2JqZWN0IE9yaWVudGVkIEZlYXR1cmVzPC9zdHJvbmc+PHN0cm9uZz48YnI+PC9zdHJvbmc+PHN0cm9uZz4gPC9zdHJvbmc+QyBkb2VzIG5vdCBoYXZlIGZlYXR1cmVzIGxpa2UgY2xhc3NlcyBvciBvYmplY3RzLiBTbyBmb3IgYmlnIGFwcGxpY2F0aW9ucyBkZXZlbG9wZXJzIG9mdGVuIHVzZSBvdGhlciBsYW5ndWFnZXMgbGlrZSBDIHBsdXMgcGx1cy48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD48c3Ryb25nPmMpIE1hbnVhbCBNZW1vcnkgTWFuYWdlbWVudDwvc3Ryb25nPjxzdHJvbmc+PGJyPjwvc3Ryb25nPiBJbiBDIHlvdSBtdXN0IGhhbmRsZSBtZW1vcnkgeW91cnNlbGYuIElmIHlvdSBtYWtlIG1pc3Rha2VzIGl0IGNhbiBjYXVzZSBtZW1vcnkgbGVha3Mgb3IgY3Jhc2hlcy48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD48c3Ryb25nPmQpIExpbWl0ZWQgQWJzdHJhY3Rpb248L3N0cm9uZz48c3Ryb25nPjxicj48L3N0cm9uZz4gU2ltcGxlIHRhc2tzIG1heSBuZWVkIG1vcmUgY29kZSBpbiBDIGNvbXBhcmVkIHRvIGxhbmd1YWdlcyBsaWtlIFB5dGhvbi4gVGhpcyBtYWtlcyBkZXZlbG9wbWVudCBzbG93ZXIgZm9yIHNvbWUgYXBwbGljYXRpb25zLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPjxzdHJvbmc+ZSkgTm8gQnVpbHQgSW4gRXhjZXB0aW9uIEhhbmRsaW5nPC9zdHJvbmc+PHN0cm9uZz48YnI+PC9zdHJvbmc+IEMgZG9lcyBub3QgaGF2ZSBhdXRvbWF0aWMgZXJyb3IgaGFuZGxpbmcuIERldmVsb3BlcnMgbXVzdCBtYW51YWxseSBjaGVjayBlcnJvcnMgdXNpbmcgY29uZGl0aW9ucyB3aGljaCBjYW4gbWFrZSBjb2RlIGxvbmdlci48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+TGVhcm5pbmcgQyBoZWxwcyB5b3UgdW5kZXJzdGFuZCBob3cgY29tcHV0ZXJzIHdvcmsgZnJvbSB0aGUgaW5zaWRlLiBJdCB0ZWFjaGVzIG1lbW9yeSBwb2ludGVycyBhbmQgc3lzdGVtIGxldmVsIHRoaW5raW5nLiBUaGVzZSBza2lsbHMgaGVscCB5b3UgbGVhcm4gb3RoZXIgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzIG1vcmUgZWFzaWx5LjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPkV2ZW4gaW4gMjAyNiBDIGlzIHN0aWxsIHZlcnkgaW1wb3J0YW50IGFuZCB3aWRlbHkgdXNlZCBpbiByZWFsIHdvcmxkIHN5c3RlbXMuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Y2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50SGF2ZSB5b3UgZXZlciB0aG91Z2h0IGFib3V0IGhvdyB0aGUgc29mdHdhcmUgaW5zaWRlIHlvdXIgY29tcHV0ZXIgb3IgcGhvbmUgcmVhbGx5IHdvcmtzPyBPciBob3cgYSBjYXIgZW5naW5lIHN5c3RlbSBjYW4gcmVhZCBtYW55IHNlbnNvciBzaWduYWxzIGFuZCByZWFjdCBpbiByZWFsIHRpbWUuIE1vc3Qgb2YgdGhlc2Ugc3lzdGVtcyB1c2UgYSBsYW5ndWFnZSBjYWxsZWQgQy5kcm9wQ2FwaW5uZXJCbG9ja3NsZXZlbEhhdmUgeW91IGV2ZXIgdGhvdWdodCBhYm91dCBob3cgdGhlIHNvZnR3YXJlIGluc2lkZSB5b3VyIGNvbXB1dGVyIG9yIHBob25lIHJlYWxseSB3b3Jrcz8gT3IgaG93IGEgY2FyIGVuZ2luZSBzeXN0ZW0gY2FuIHJlYWQgbWFueSBzZW5zb3Igc2lnbmFscyBhbmQgcmVhY3QgaW4gcmVhbCB0aW1lLiBNb3N0IG9mIHRoZXNlIHN5c3RlbXMgdXNlIGEgbGFuZ3VhZ2UgY2FsbGVkIEMuY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50SGF2ZSB5b3UgZXZlciB0aG91Z2h0IGFib3V0IGhvdyB0aGUgc29mdHdhcmUgaW5zaWRlIHlvdXIgY29tcHV0ZXIgb3IgcGhvbmUgcmVhbGx5IHdvcmtzPyBPciBob3cgYSBjYXIgZW5naW5lIHN5c3RlbSBjYW4gcmVhZCBtYW55IHNlbnNvciBzaWduYWxzIGFuZCByZWFjdCBpbiByZWFsIHRpbWUuIE1vc3Qgb2YgdGhlc2Ugc3lzdGVtcyB1c2UgYSBsYW5ndWFnZSBjYWxsZWQgQy5kcm9wQ2FwaW5uZXJCbG9ja3M+wqDCoMKgwqDCoMKgwqDCoD4+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgPsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqA+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoD4+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqA+wqDCoMKgwqDCoMKgwqDCoD7CoMKgwqDCoD7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoD4+Pj7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoD4+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoD7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqA+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgPj4+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoD7CoMKgwqDCoD7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoD4+Pj7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqA+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoD7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqA+wqDCoMKgwqA+wqDCoMKgwqDCoMKgPsKgwqDCoMKgwqDCoD7CoMKgwqDCoMKgPsKgwqDCoMKgwqDCoMKgPj7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqA+PsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgPsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgPsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqA+wqDCoMKgPsKgwqDCoMKgPsKgwqDCoMKgPsKgwqDCoMKgwqA+wqA+Pj7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqA+PsKgwqA+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoD7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoD7CoMKgPsKgPsKgPsKgwqA+wqDCoMKgwqDCoMKgwqDCoD7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoD7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgPj7CoMKgwqDCoD4+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoD7CoMKgwqDCoD7CoMKgwqDCoD7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgPsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgPsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgPsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgbGV2ZWxsZXZlbGxldmVsPCEtLSB3cDpoZWFkaW5nIC0tPgo8aDIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPjxzdHJvbmc+V2hhdCBpcyBDIFByb2dyYW1taW5nIEEgU2ltcGxlIE92ZXJ2aWV3ID88L3N0cm9uZz48L2gyPgo8IS0tIC93cDpoZWFkaW5nIC0tPgoKPHA+SGF2ZSB5b3UgZXZlciB0aG91Z2h0IGFib3V0IGhvdyB0aGUgc29mdHdhcmUgaW5zaWRlIHlvdXIgY29tcHV0ZXIgb3IgcGhvbmUgcmVhbGx5IHdvcmtzPyBPciBob3cgYSBjYXIgZW5naW5lIHN5c3RlbSBjYW4gcmVhZCBtYW55IHNlbnNvciBzaWduYWxzIGFuZCByZWFjdCBpbiByZWFsIHRpbWUuIE1vc3Qgb2YgdGhlc2Ugc3lzdGVtcyB1c2UgYSBsYW5ndWFnZSBjYWxsZWQgQy48L3A+CjwhLS0gd3A6aGVhZGluZyAtLT4KPGgyIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj48c3Ryb25nPldoYXQgaXMgQyBQcm9ncmFtbWluZyA\/PC9zdHJvbmc+PC9oMj4KPCEtLSAvd3A6aGVhZGluZyAtLT4KPCEtLSB3cDpoZWFkaW5nIC0tPgo8aDIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPjxzdHJvbmc+VGhlIEV2b2x1dGlvbiBvZiBDIFByb2dyYW1taW5nID88L3N0cm9uZz48L2gyPgo8IS0tIC93cDpoZWFkaW5nIC0tPgo8IS0tIHdwOmhlYWRpbmcgLS0+CjxoMiBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+PHN0cm9uZz5Ib3cgQyBQcm9ncmFtbWluZyBXb3JrcyBTdGVwIGJ5IFN0ZXAgPzwvc3Ryb25nPjwvaDI+CjwhLS0gL3dwOmhlYWRpbmcgLS0+CjxwPiNpbmNsdWRlICZsdDtzdGRpby5oPjwvcD4KPHA+wqDCoMKgwqBwcmludGYoIkhlbGxvIGZyb20gQyFcbiIpOzwvcD4KPHA+wqDCoMKgwqByZXR1cm4gMDs8L3A+CjxwPlRoZSBtb3N0IGNvbW1vbiBkaXJlY3RpdmUgaXMgI2luY2x1ZGUsIHdoaWNoIHB1bGxzIGluIHRoZSBjb250ZW50cyBvZiBhIGhlYWRlciBmaWxlLiBXaGVuIHlvdSB3cml0ZSAjaW5jbHVkZSAmbHQ7c3RkaW8uaD4sIHRoZSBwcmVwcm9jZXNzb3IgcmVwbGFjZXMgdGhhdCBsaW5lIHdpdGggdGhlIGVudGlyZSBjb250ZW50IG9mIHRoZSBzdGRpby5oIGhlYWRlciBmaWxlIOKAlCB3aGljaCBjb250YWlucyBkZWNsYXJhdGlvbnMgZm9yIGZ1bmN0aW9ucyBsaWtlIHByaW50ZigpLjwvcD4KPHA+I2luY2x1ZGUgJmx0O3N0ZGlvLmg+PC9wPgo8cD7CoMKgwqDCoHByaW50ZigiTWF4IHNpemU6ICVkXG4iLCBNQVhfU0laRSk7PC9wPgo8cD7CoMKgwqDCoHByaW50ZigiU3F1YXJlIG9mIDc6ICVkXG4iLCBTUVVBUkUoNykpOzwvcD4KPHA+wqDCoMKgwqBwcmludGYoIlBJIHZhbHVlOiAlLjVmXG4iLCBQSSk7PC9wPgo8cD7CoMKgwqDCoHByaW50ZigiQXJlYSBvZiBjaXJjbGUgKHI9NSk6ICUuMmZcbiIsIFBJICogU1FVQVJFKDUpKTs8L3A+CjxwPsKgwqDCoMKgcmV0dXJuIDA7PC9wPgo8cD7CoMKgwqDCoMKgwqDihpM8L3A+CjxwPsKgwqBQcmVwcm9jZXNzb3LCoCDCoCDCoCDCoCDihpAgSGFuZGxlcyAjaW5jbHVkZSwgI2RlZmluZSwgbWFjcm9zPC9wPgo8cD7CoMKgwqDCoMKgwqDihpM8L3A+CjxwPsKgwqDCoMKgwqDCoOKGkzwvcD4KPHA+wqDCoMKgQ29tcGlsZXIgwqAgwqAgwqAgwqAgwqAg4oaQIFRyYW5zbGF0ZXMgdG8gYXNzZW1ibHksIGNoZWNrcyBzeW50YXgsIG9wdGltaXplczwvcD4KPHA+wqDCoMKgwqDCoMKg4oaTPC9wPgo8cD7CoEFzc2VtYmx5IENvZGU8L3A+CjxwPsKgwqDCoMKgwqDCoOKGkzwvcD4KPHA+wqDCoMKgQXNzZW1ibGVywqAgwqAgwqAgwqAgwqAg4oaQIENvbnZlcnRzIGFzc2VtYmx5IHRvIGJpbmFyeSBtYWNoaW5lIGNvZGU8L3A+CjxwPsKgwqDCoMKgwqDCoOKGkzwvcD4KPHA+wqDCoE9iamVjdCBGaWxlICgubyk8L3A+CjxwPsKgwqDCoMKgwqDCoOKGkzwvcD4KPHA+wqDCoMKgwqBMaW5rZXLCoCDCoCDCoCDCoCDCoCDCoCDihpAgQ29tYmluZXMgb2JqZWN0IGZpbGVzICsgbGlicmFyaWVzPC9wPgo8cD7CoMKgwqDCoMKgwqDihpM8L3A+CjxwPkV4ZWN1dGFibGUgQmluYXJ5IMKgIMKgIOKGkCBSdW5zIGRpcmVjdGx5IG9uIENQVTwvcD4KPHA+I2luY2x1ZGUgJmx0O3N0ZGlvLmg+PC9wPgo8cD7CoMKgwqDCoGludCB4ID0gMTA7PC9wPgo8cD7CoMKgwqDCoGludCB5ID0gMjA7PC9wPgo8cD7CoMKgwqDCoGludCBzdW0gPSB4ICsgeTs8L3A+CjxwPsKgwqDCoMKgcHJpbnRmKCJTdW0gb2YgJWQgYW5kICVkIGlzICVkXG4iLCB4LCB5LCBzdW0pOzwvcD4KPHA+wqDCoMKgwqByZXR1cm4gMDs8L3A+CjxwPiNpbmNsdWRlICZsdDtzdGRpby5oPjwvcD4KPHA+wqDCoMKgwqBwcmludGYoIlBvcnRhYmxlIEMgcHJvZ3JhbSFcbiIpOzwvcD4KPHA+wqDCoMKgwqBwcmludGYoImludCBzaXplOsKgIMKgICVsdSBieXRlc1xuIiwgc2l6ZW9mKGludCkpOzwvcD4KPHA+wqDCoMKgwqBwcmludGYoImxvbmcgc2l6ZTogwqAgJWx1IGJ5dGVzXG4iLCBzaXplb2YobG9uZykpOzwvcD4KPHA+wqDCoMKgwqBwcmludGYoImRvdWJsZSBzaXplOiAlbHUgYnl0ZXNcbiIsIHNpemVvZihkb3VibGUpKTs8L3A+CjxwPsKgwqDCoMKgcmV0dXJuIDA7PC9wPgo8cD5pbnQgc2l6ZTrCoCDCoCA0IGJ5dGVzPC9wPgo8cD5sb25nIHNpemU6IMKgIDggYnl0ZXM8L3A+CjxwPiNpbmNsdWRlICZsdDtzdGRpby5oPjwvcD4KPHA+I2luY2x1ZGUgJmx0O3RpbWUuaD48L3A+CjxwPsKgwqDCoMKgY2xvY2tfdCBzdGFydCA9IGNsb2NrKCk7PC9wPgo8cD7CoMKgwqDCoGxvbmcgbG9uZyBzdW0gPSAwOzwvcD4KPHA+wqDCoMKgwqBmb3IgKGxvbmcgbG9uZyBpID0gMTsgaSAmbHQ7PSAxMDAwMDAwMDAwTEw7IGkrKykgezwvcD4KPHA+wqDCoMKgwqDCoMKgwqDCoHN1bSArPSBpOzwvcD4KPHA+wqDCoMKgwqB9PC9wPgo8cD7CoMKgwqDCoGRvdWJsZSB0aW1lX3Rha2VuID0gKGRvdWJsZSkoY2xvY2soKSAtIHN0YXJ0KSAvIENMT0NLU19QRVJfU0VDOzwvcD4KPHA+wqDCoMKgwqBwcmludGYoIlN1bTogJWxsZFxuIiwgc3VtKTs8L3A+CjxwPsKgwqDCoMKgcHJpbnRmKCJUaW1lOiAlLjNmIHNlY29uZHNcbiIsIHRpbWVfdGFrZW4pOzwvcD4KPHA+wqDCoMKgwqByZXR1cm4gMDs8L3A+CjxwPiNpbmNsdWRlICZsdDtzdGRpby5oPjwvcD4KPHA+wqDCoMKgwqBpbnQgbWF4ID0gYTs8L3A+CjxwPsKgwqDCoMKgaWYgKGIgPiBtYXgpIG1heCA9IGI7PC9wPgo8cD7CoMKgwqDCoGlmIChjID4gbWF4KSBtYXggPSBjOzwvcD4KPHA+wqDCoMKgwqByZXR1cm4gbWF4OzwvcD4KPHA+wqDCoMKgwqByZXR1cm4gKGZsb2F0KShhICsgYiArIGMpIC8gMy4wZjs8L3A+CjxwPsKgwqDCoMKgaWYgKG4gJmx0OyAyKSByZXR1cm4gMDs8L3A+CjxwPsKgwqDCoMKgZm9yIChpbnQgaSA9IDI7IGkgKiBpICZsdDs9IG47IGkrKyk8L3A+CjxwPsKgwqDCoMKgwqDCoMKgwqBpZiAobiAlIGkgPT0gMCkgcmV0dXJuIDA7PC9wPgo8cD7CoMKgwqDCoHJldHVybiAxOzwvcD4KPHA+wqDCoMKgwqBpbnQgeCA9IDQ1LCB5ID0gODIsIHogPSA2Mzs8L3A+CjxwPsKgwqDCoMKgcHJpbnRmKCJNYXg6ICVkXG4iLCBmaW5kTWF4KHgsIHksIHopKTs8L3A+CjxwPsKgwqDCoMKgcHJpbnRmKCJBdmVyYWdlOiAlLjJmXG4iLCBmaW5kQXZlcmFnZSh4LCB5LCB6KSk7PC9wPgo8cD7CoMKgwqDCoHByaW50ZigiSXMgODIgcHJpbWU\/ICVzXG4iLCBpc1ByaW1lKDgyKSA\/ICJZZXMiIDogIk5vIik7PC9wPgo8cD7CoMKgwqDCoHByaW50ZigiSXMgODMgcHJpbWU\/ICVzXG4iLCBpc1ByaW1lKDgzKSA\/ICJZZXMiIDogIk5vIik7PC9wPgo8cD7CoMKgwqDCoHJldHVybiAwOzwvcD4KPHA+I2luY2x1ZGUgJmx0O3N0ZGlvLmg+PC9wPgo8cD4jaW5jbHVkZSAmbHQ7c3RyaW5nLmg+PC9wPgo8cD4jaW5jbHVkZSAmbHQ7bWF0aC5oPjwvcD4KPHA+I2luY2x1ZGUgJmx0O3N0ZGxpYi5oPjwvcD4KPHA+wqDCoMKgwqAvLyBTdHJpbmcgZnVuY3Rpb25zPC9wPgo8cD7CoMKgwqDCoGNoYXIgdGV4dFtdID0gIkMgUHJvZ3JhbW1pbmciOzwvcD4KPHA+wqDCoMKgwqBwcmludGYoIlN0cmluZzogJXNcbiIsIHRleHQpOzwvcD4KPHA+wqDCoMKgwqBwcmludGYoIkxlbmd0aDogJWx1XG4iLCBzdHJsZW4odGV4dCkpOzwvcD4KPHA+wqDCoMKgwqAvLyBNYXRoIGZ1bmN0aW9uczwvcD4KPHA+wqDCoMKgwqBwcmludGYoIlxuc3FydCgyMjUpID0gJS4wZlxuIiwgc3FydCgyMjUpKTs8L3A+CjxwPsKgwqDCoMKgcHJpbnRmKCJwb3coMiwxMCkgPSAlLjBmXG4iLCBwb3coMiwgMTApKTs8L3A+CjxwPsKgwqDCoMKgcHJpbnRmKCJjZWlsKDQuMikgPSAlLjBmXG4iLCBjZWlsKDQuMikpOzwvcD4KPHA+wqDCoMKgwqBwcmludGYoImZsb29yKDQuOSkgPSAlLjBmXG4iLCBmbG9vcig0LjkpKTs8L3A+CjxwPsKgwqDCoMKgLy8gUmFuZG9tIG51bWJlcjwvcD4KPHA+wqDCoMKgwqBzcmFuZCg0Mik7PC9wPgo8cD7CoMKgwqDCoHByaW50ZigiXG5SYW5kb20gKDEtMTAwKTogJWRcbiIsIChyYW5kKCkgJSAxMDApICsgMSk7PC9wPgo8cD7CoMKgwqDCoHJldHVybiAwOzwvcD4KPHA+I2luY2x1ZGUgJmx0O3N0ZGlvLmg+PC9wPgo8cD4jaW5jbHVkZSAmbHQ7c3RkbGliLmg+PC9wPgo8cD7CoMKgwqDCoGludCBuID0gNTs8L3A+CjxwPsKgwqDCoMKgaW50ICphcnIgPSAoaW50ICopbWFsbG9jKG4gKiBzaXplb2YoaW50KSk7PC9wPgo8cD7CoMKgwqDCoGlmIChhcnIgPT0gTlVMTCkgezwvcD4KPHA+wqDCoMKgwqDCoMKgwqDCoHByaW50ZigiTWVtb3J5IGFsbG9jYXRpb24gZmFpbGVkIVxuIik7PC9wPgo8cD7CoMKgwqDCoMKgwqDCoMKgcmV0dXJuIDE7PC9wPgo8cD7CoMKgwqDCoH08L3A+CjxwPsKgwqDCoMKgLy8gU3RvcmUgc3F1YXJlczwvcD4KPHA+wqDCoMKgwqBmb3IgKGludCBpID0gMDsgaSAmbHQ7IG47IGkrKyk8L3A+CjxwPsKgwqDCoMKgwqDCoMKgwqBhcnJbaV0gPSAoaSArIDEpICogKGkgKyAxKTs8L3A+CjxwPsKgwqDCoMKgcHJpbnRmKCJTcXVhcmVzIHN0b3JlZCBpbiBkeW5hbWljIG1lbW9yeTpcbiIpOzwvcD4KPHA+wqDCoMKgwqBmb3IgKGludCBpID0gMDsgaSAmbHQ7IG47IGkrKyk8L3A+CjxwPsKgwqDCoMKgwqDCoMKgwqBwcmludGYoImFyclslZF0gPSAlZFxuIiwgaSwgYXJyW2ldKTs8L3A+CjxwPsKgwqDCoMKgZnJlZShhcnIpO8KgIC8vIEFsd2F5cyBmcmVlIHdoYXQgeW91IGFsbG9jYXRlPC9wPgo8cD7CoMKgwqDCoHByaW50ZigiTWVtb3J5IGZyZWVkLlxuIik7PC9wPgo8cD7CoMKgwqDCoHJldHVybiAwOzwvcD4KPHA+I2luY2x1ZGUgJmx0O3N0ZGlvLmg+PC9wPgo8cD7CoMKgwqDCoGludCB0ZW1wID0gKmE7PC9wPgo8cD7CoMKgwqDCoCphID0gKmI7PC9wPgo8cD7CoMKgwqDCoCpiID0gdGVtcDs8L3A+CjxwPsKgwqDCoMKgaW50IHggPSAxMDAsIHkgPSAyMDA7PC9wPgo8cD7CoMKgwqDCoHByaW50ZigiQmVmb3JlOiB4ID0gJWQsIHkgPSAlZFxuIiwgeCwgeSk7PC9wPgo8cD7CoMKgwqDCoHN3YXAoJmFtcDt4LCAmYW1wO3kpOzwvcD4KPHA+wqDCoMKgwqBwcmludGYoIkFmdGVyOsKgIHggPSAlZCwgeSA9ICVkXG4iLCB4LCB5KTs8L3A+CjxwPsKgwqDCoMKgLy8gUG9pbnRlciBhcml0aG1ldGljPC9wPgo8cD7CoMKgwqDCoGludCBudW1iZXJzW10gPSB7MTAsIDIwLCAzMCwgNDAsIDUwfTs8L3A+CjxwPsKgwqDCoMKgaW50ICpwdHIgPSBudW1iZXJzOzwvcD4KPHA+wqDCoMKgwqBwcmludGYoIlxuVHJhdmVyc2luZyBhcnJheSB3aXRoIHBvaW50ZXI6XG4iKTs8L3A+CjxwPsKgwqDCoMKgZm9yIChpbnQgaSA9IDA7IGkgJmx0OyA1OyBpKyspIHs8L3A+CjxwPsKgwqDCoMKgwqDCoMKgwqBwcmludGYoIioocHRyKyVkKSA9ICVkXG4iLCBpLCAqKHB0ciArIGkpKTs8L3A+CjxwPsKgwqDCoMKgfTwvcD4KPHA+wqDCoMKgwqByZXR1cm4gMDs8L3A+CjxwPkFmdGVyOsKgIHggPSAyMDAsIHkgPSAxMDA8L3A+CjxwPiNpbmNsdWRlICZsdDtzdGRpby5oPjwvcD4KPHA+wqDCoMKgwqBHUElPX09VVFBVVCB8PSAoMSAmbHQ7Jmx0OyBwaW4pOzwvcD4KPHA+wqDCoMKgwqBwcmludGYoIlBpbiAlZCBzZXQgSElHSCB8IFJlZ2lzdGVyOiAweCUwOFhcbiIsIHBpbiwgR1BJT19PVVRQVVQpOzwvcD4KPHA+wqDCoMKgwqBHUElPX09VVFBVVCAmYW1wOz0gfigxICZsdDsmbHQ7IHBpbik7PC9wPgo8cD7CoMKgwqDCoHByaW50ZigiUGluICVkIHNldCBMT1fCoCB8IFJlZ2lzdGVyOiAweCUwOFhcbiIsIHBpbiwgR1BJT19PVVRQVVQpOzwvcD4KPHA+wqDCoMKgwqBwcmludGYoIkhhcmR3YXJlIEdQSU8gQ29udHJvbCBTaW11bGF0aW9uXG5cbiIpOzwvcD4KPHA+wqDCoMKgwqBzZXRQaW5IaWdoKDApOzwvcD4KPHA+wqDCoMKgwqBzZXRQaW5IaWdoKDMpOzwvcD4KPHA+wqDCoMKgwqBzZXRQaW5IaWdoKDcpOzwvcD4KPHA+wqDCoMKgwqBzZXRQaW5Mb3coMyk7PC9wPgo8cD7CoMKgwqDCoHJldHVybiAwOzwvcD4KPHA+UGluIDMgc2V0IExPV8KgIHwgUmVnaXN0ZXI6IDB4MDAwMDAwODE8L3A+CjxwPiNpbmNsdWRlICZsdDtzdGRpby5oPjwvcD4KPHA+I2luY2x1ZGUgJmx0O3VuaXN0ZC5oPjwvcD4KPHA+I2luY2x1ZGUgJmx0O3N5cy90eXBlcy5oPjwvcD4KPHA+wqDCoMKgwqAvLyBEaXJlY3QgT1MgaW50ZXJhY3Rpb24gdGhyb3VnaCBzeXN0ZW0gY2FsbHM8L3A+CjxwPsKgwqDCoMKgcGlkX3QgcGlkwqAgPSBnZXRwaWQoKTs8L3A+CjxwPsKgwqDCoMKgcGlkX3QgcHBpZCA9IGdldHBwaWQoKTs8L3A+CjxwPsKgwqDCoMKgdWlkX3QgdWlkwqAgPSBnZXR1aWQoKTs8L3A+CjxwPsKgwqDCoMKgcHJpbnRmKCJQcm9jZXNzIElEIMKgIMKgIMKgIDogJWRcbiIsIHBpZCk7PC9wPgo8cD7CoMKgwqDCoHByaW50ZigiUGFyZW50IFByb2Nlc3MgSUQ6ICVkXG4iLCBwcGlkKTs8L3A+CjxwPsKgwqDCoMKgcHJpbnRmKCJVc2VyIElEwqAgwqAgwqAgwqAgwqAgOiAlZFxuIiwgdWlkKTs8L3A+CjxwPsKgwqDCoMKgcmV0dXJuIDA7PC9wPgo8cD5Qcm9jZXNzIElEIMKgIMKgIMKgIDogMTQ4MjM8L3A+CjxwPlVzZXIgSUTCoCDCoCDCoCDCoCDCoCA6IDEwMDA8L3A+CjxwPiNpbmNsdWRlICZsdDtzdGRpby5oPjwvcD4KPHA+wqDCoMKgwqBwcmludGYoIlBpbiAlZCAtPiAlc1xuIiwgcGluLCBzdGF0ZSA\/ICJISUdIIChMRUQgT04pIiA6ICJMT1cgKExFRCBPRkYpIik7PC9wPgo8cD7CoMKgwqDCoHByaW50ZigiW0RlbGF5OiAlZCBtc11cbiIsIG1zKTs8L3A+CjxwPsKgwqDCoMKgcHJpbnRmKCJFbWJlZGRlZCBMRUQgQmxpbmsg4oCUIDMgY3ljbGVzXG5cbiIpOzwvcD4KPHA+wqDCoMKgwqBmb3IgKGludCBpID0gMDsgaSAmbHQ7IDM7IGkrKykgezwvcD4KPHA+wqDCoMKgwqDCoMKgwqDCoGRpZ2l0YWxXcml0ZShMRURfUElOLCAxKTs8L3A+CjxwPsKgwqDCoMKgwqDCoMKgwqBkZWxheV9tcyg1MDApOzwvcD4KPHA+wqDCoMKgwqDCoMKgwqDCoGRpZ2l0YWxXcml0ZShMRURfUElOLCAwKTs8L3A+CjxwPsKgwqDCoMKgwqDCoMKgwqBkZWxheV9tcyg1MDApOzwvcD4KPHA+wqDCoMKgwqB9PC9wPgo8cD7CoMKgwqDCoHJldHVybiAwOzwvcD4KPHA+UGluIDEzIC0+IEhJR0ggKExFRCBPTik8L3A+CjxwPlBpbiAxMyAtPiBMT1cgKExFRCBPRkYpPC9wPgo8cD4jaW5jbHVkZSAmbHQ7c3RkaW8uaD48L3A+CjxwPiNpbmNsdWRlICZsdDtzdHJpbmcuaD48L3A+CjxwPsKgwqDCoMKgaWYgKGNvdW50ICZsdDsgTUFYKSB7PC9wPgo8cD7CoMKgwqDCoMKgwqDCoMKgc3RyY3B5KGRiW2NvdW50XS5rZXksIGtleSk7PC9wPgo8cD7CoMKgwqDCoMKgwqDCoMKgc3RyY3B5KGRiW2NvdW50XS52YWx1ZSwgdmFsKTs8L3A+CjxwPsKgwqDCoMKgwqDCoMKgwqBjb3VudCsrOzwvcD4KPHA+wqDCoMKgwqDCoMKgwqDCoHByaW50ZigiSW5zZXJ0ZWQ6ICUtMTVzIC0+ICVzXG4iLCBrZXksIHZhbCk7PC9wPgo8cD7CoMKgwqDCoH08L3A+CjxwPsKgwqDCoMKgZm9yIChpbnQgaSA9IDA7IGkgJmx0OyBjb3VudDsgaSsrKSB7PC9wPgo8cD7CoMKgwqDCoMKgwqDCoMKgaWYgKHN0cmNtcChkYltpXS5rZXksIGtleSkgPT0gMCkgezwvcD4KPHA+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcHJpbnRmKCJGb3VuZCDCoCA6ICUtMTVzIC0+ICVzXG4iLCBrZXksIGRiW2ldLnZhbHVlKTs8L3A+CjxwPsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldHVybjs8L3A+CjxwPsKgwqDCoMKgwqDCoMKgwqB9PC9wPgo8cD7CoMKgwqDCoH08L3A+CjxwPsKgwqDCoMKgcHJpbnRmKCJOb3QgZm91bmQ6ICVzXG4iLCBrZXkpOzwvcD4KPHA+wqDCoMKgwqBwcmludGYoIj09PSBTaW1wbGUgRGF0YWJhc2UgRW5naW5lID09PVxuXG4iKTs8L3A+CjxwPsKgwqDCoMKgaW5zZXJ0KCJuYW1lIiwgwqAgwqAgIkRlbm5pcyBSaXRjaGllIik7PC9wPgo8cD7CoMKgwqDCoGluc2VydCgibGFuZ3VhZ2UiLCAiQyIpOzwvcD4KPHA+wqDCoMKgwqBpbnNlcnQoInllYXIiLCDCoCDCoCAiMTk3MiIpOzwvcD4KPHA+wqDCoMKgwqBpbnNlcnQoImxhYiIswqAgwqAgwqAgIkJlbGwgTGFicyIpOzwvcD4KPHA+wqDCoMKgwqBwcmludGYoIlxuPT09IFF1ZXJpZXMgPT09XG4iKTs8L3A+CjxwPsKgwqDCoMKgcXVlcnkoImxhbmd1YWdlIik7PC9wPgo8cD7CoMKgwqDCoHF1ZXJ5KCJ5ZWFyIik7PC9wPgo8cD7CoMKgwqDCoHF1ZXJ5KCJvcyIpOzwvcD4KPHA+wqDCoMKgwqByZXR1cm4gMDs8L3A+CjxwPkluc2VydGVkOiBuYW1lwqAgwqAgwqAgwqAgwqAgwqAgLT4gRGVubmlzIFJpdGNoaWU8L3A+CjxwPkluc2VydGVkOiBsYW5ndWFnZcKgIMKgIMKgIMKgIC0+IEM8L3A+CjxwPkluc2VydGVkOiB5ZWFywqAgwqAgwqAgwqAgwqAgwqAgLT4gMTk3MjwvcD4KPHA+SW5zZXJ0ZWQ6IGxhYiDCoCDCoCDCoCDCoCDCoCDCoCAtPiBCZWxsIExhYnM8L3A+CjxwPkZvdW5kIMKgIDogbGFuZ3VhZ2XCoCDCoCDCoCDCoCAtPiBDPC9wPgo8cD5Gb3VuZCDCoCA6IHllYXLCoCDCoCDCoCDCoCDCoCDCoCAtPiAxOTcyPC9wPgo8cD4jaW5jbHVkZSAmbHQ7c3RkaW8uaD48L3A+CjxwPsKgwqDCoMKgc3dpdGNoIChvcCkgezwvcD4KPHA+wqDCoMKgwqDCoMKgwqDCoGNhc2UgJysnOiByZXR1cm4gYSArIGI7PC9wPgo8cD7CoMKgwqDCoMKgwqDCoMKgY2FzZSAnLSc6IHJldHVybiBhIC0gYjs8L3A+CjxwPsKgwqDCoMKgwqDCoMKgwqBjYXNlICcqJzogcmV0dXJuIGEgKiBiOzwvcD4KPHA+wqDCoMKgwqDCoMKgwqDCoGNhc2UgJy8nOiByZXR1cm4gKGIgIT0gMCkgPyBhIC8gYiA6IDA7PC9wPgo8cD7CoMKgwqDCoMKgwqDCoMKgZGVmYXVsdDrCoCByZXR1cm4gMDs8L3A+CjxwPsKgwqDCoMKgfTwvcD4KPHA+wqDCoMKgwqBwcmludGYoIkV4cHJlc3Npb24gRXZhbHVhdG9yIChpbnRlcnByZXRlciBjb3JlKVxuXG4iKTs8L3A+CjxwPsKgwqDCoMKgcHJpbnRmKCIxMCArIDI1wqAgPSAlLjJmXG4iLCBldmFsdWF0ZSgxMCwgJysnLCAyNSkpOzwvcD4KPHA+wqDCoMKgwqBwcmludGYoIjUwIC0gMTjCoCA9ICUuMmZcbiIsIGV2YWx1YXRlKDUwLCAnLScsIDE4KSk7PC9wPgo8cD7CoMKgwqDCoHByaW50ZigiN8KgICogOCDCoCA9ICUuMmZcbiIsIGV2YWx1YXRlKDcswqAgJyonLCA4KSk7PC9wPgo8cD7CoMKgwqDCoHByaW50ZigiMTAwIC8gNMKgID0gJS4yZlxuIiwgZXZhbHVhdGUoMTAwLCcvJywgNCkpOzwvcD4KPHA+wqDCoMKgwqByZXR1cm4gMDs8L3A+CjxwPjEwICsgMjXCoCA9IDM1LjAwPC9wPgo8cD41MCAtIDE4wqAgPSAzMi4wMDwvcD4KPHA+N8KgICogOCDCoCA9IDU2LjAwPC9wPgo8cD4xMDAgLyA0wqAgPSAyNS4wMDwvcD4KPHA+I2luY2x1ZGUgJmx0O3N0ZGlvLmg+PC9wPgo8cD4jaW5jbHVkZSAmbHQ7c3RyaW5nLmg+PC9wPgo8cD7CoMKgwqDCoGludMKgIHNvdXJjZV9wb3J0OzwvcD4KPHA+wqDCoMKgwqBpbnTCoCBkZXN0X3BvcnQ7PC9wPgo8cD7CoMKgwqDCoGNoYXIgcHJvdG9jb2xbMTBdOzwvcD4KPHA+wqDCoMKgwqBjaGFyIHBheWxvYWRbODBdOzwvcD4KPHA+wqDCoMKgwqBwcmludGYoIiUtMTBzIHwgJTVkIC0+ICVkIHwgJXNcbiIsPC9wPgo8cD7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgcC5wcm90b2NvbCwgcC5zb3VyY2VfcG9ydCwgcC5kZXN0X3BvcnQsIHAucGF5bG9hZCk7PC9wPgo8cD7CoMKgwqDCoHByaW50ZigiTmV0d29yayBQYWNrZXQgQW5hbHl6ZXJcbiIpOzwvcD4KPHA+wqDCoMKgwqBwcmludGYoIiUtMTBzIHwgJTEycyB8IFBheWxvYWRcbiIsICJQcm90b2NvbCIsICJQb3J0IChTLT5EKSIpOzwvcD4KPHA+wqDCoMKgwqBwcmludGYoIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iKTs8L3A+CjxwPsKgwqDCoMKgc3RydWN0IFBhY2tldCBwYWNrZXRzW10gPSB7PC9wPgo8cD7CoMKgwqDCoMKgwqDCoMKgezU0MzIxLCA4MCzCoCAiSFRUUCIswqAgIkdFVCAvIEhUVFAvMS4xIn0sPC9wPgo8cD7CoMKgwqDCoMKgwqDCoMKgezU0MzIyLCA0NDMsICJIVFRQUyIsICJUTFMgQ2xpZW50SGVsbG8ifSw8L3A+CjxwPsKgwqDCoMKgwqDCoMKgwqB7NTQzMjMsIDIyLMKgICJTU0giLCDCoCAiU1NILTIuMC1PcGVuU1NIXzguOSJ9LDwvcD4KPHA+wqDCoMKgwqDCoMKgwqDCoHs1NDMyNCwgNTMswqAgIkROUyIsIMKgICJRdWVyeTogZXhhbXBsZS5jb20ifTwvcD4KPHA+wqDCoMKgwqB9OzwvcD4KPHA+wqDCoMKgwqBmb3IgKGludCBpID0gMDsgaSAmbHQ7IDQ7IGkrKyk8L3A+CjxwPsKgwqDCoMKgwqDCoMKgwqBhbmFseXplUGFja2V0KHBhY2tldHNbaV0pOzwvcD4KPHA+wqDCoMKgwqByZXR1cm4gMDs8L3A+CjxwPlByb3RvY29sIMKgIHzCoCBQb3J0IChTLT5EKSB8IFBheWxvYWQ8L3A+CjxwPkhUVFAgwqAgwqAgwqAgfCA1NDMyMSAtPiA4MMKgIHwgR0VUIC8gSFRUUC8xLjE8L3A+CjxwPkhUVFBTwqAgwqAgwqAgfCA1NDMyMiAtPiA0NDMgfCBUTFMgQ2xpZW50SGVsbG88L3A+CjxwPlNTSMKgIMKgIMKgIMKgIHwgNTQzMjMgLT4gMjLCoCB8IFNTSC0yLjAtT3BlblNTSF84Ljk8L3A+CjxwPkROU8KgIMKgIMKgIMKgIHwgNTQzMjQgLT4gNTPCoCB8IFF1ZXJ5OiBleGFtcGxlLmNvbTwvcD4KPHA+I2luY2x1ZGUgJmx0O3N0ZGlvLmg+PC9wPgo8cD52b2lkIHVwZGF0ZShzdHJ1Y3QgR2FtZU9iamVjdCAqb2JqKSB7IG9iai0+eCArPSBvYmotPnNwZWVkOyB9PC9wPgo8cD7CoMKgwqDCoHByaW50ZigiWyVzXSBwb3M9KCUuMWYsICUuMWYpIEhQPSVkXG4iLCBvYmoubmFtZSwgb2JqLngsIG9iai55LCBvYmouaGVhbHRoKTs8L3A+CjxwPsKgwqDCoMKgc3RydWN0IEdhbWVPYmplY3QgcGxheWVyID0geyJQbGF5ZXIiLCAwLjBmLCAwLjBmLCAzLjBmLCAxMDB9OzwvcD4KPHA+wqDCoMKgwqBzdHJ1Y3QgR2FtZU9iamVjdCBlbmVtecKgID0geyJFbmVteSIswqAgODAuMGYsMC4wZiwtMS41ZiwgNjB9OzwvcD4KPHA+wqDCoMKgwqBwcmludGYoIj09PSBHYW1lIExvb3Ag4oCUIDQgRnJhbWVzID09PVxuXG4iKTs8L3A+CjxwPsKgwqDCoMKgZm9yIChpbnQgZnJhbWUgPSAxOyBmcmFtZSAmbHQ7PSA0OyBmcmFtZSsrKSB7PC9wPgo8cD7CoMKgwqDCoMKgwqDCoMKgcHJpbnRmKCJGcmFtZSAlZDpcbiIsIGZyYW1lKTs8L3A+CjxwPsKgwqDCoMKgwqDCoMKgwqB1cGRhdGUoJmFtcDtwbGF5ZXIpOyB1cGRhdGUoJmFtcDtlbmVteSk7PC9wPgo8cD7CoMKgwqDCoMKgwqDCoMKgcmVuZGVyKHBsYXllcik7wqAgcmVuZGVyKGVuZW15KTs8L3A+CjxwPsKgwqDCoMKgwqDCoMKgwqBwcmludGYoIlxuIik7PC9wPgo8cD7CoMKgwqDCoH08L3A+CjxwPsKgwqDCoMKgcmV0dXJuIDA7PC9wPgo8cD4jaW5jbHVkZSAmbHQ7c3RkaW8uaD48L3A+CjxwPiNpbmNsdWRlICZsdDttYXRoLmg+PC9wPgo8cD5kb3VibGUgcmVsdShkb3VibGUgeCnCoCDCoCB7IHJldHVybiB4ID4gMCA\/IHggOiAwOyB9PC9wPgo8cD7CoMKgwqDCoGRvdWJsZSBzdW0gPSBiaWFzOzwvcD4KPHA+wqDCoMKgwqBmb3IgKGludCBpID0gMDsgaSAmbHQ7IG47IGkrKykgc3VtICs9IGlucHV0c1tpXSAqIHdlaWdodHNbaV07PC9wPgo8cD7CoMKgwqDCoHJldHVybiBzaWdtb2lkKHN1bSk7PC9wPgo8cD7CoMKgwqDCoHByaW50ZigiTmV1cmFsIE5ldHdvcmsg4oCUIFNpbmdsZSBOZXVyb25cblxuIik7PC9wPgo8cD7CoMKgwqDCoGRvdWJsZSB2YWx1ZXNbXSA9IHstMi4wLCAwLjAsIDEuNSwgMy4wfTs8L3A+CjxwPsKgwqDCoMKgcHJpbnRmKCJSZUxVIGFjdGl2YXRpb25zOlxuIik7PC9wPgo8cD7CoMKgwqDCoGZvciAoaW50IGkgPSAwOyBpICZsdDsgNDsgaSsrKTwvcD4KPHA+wqDCoMKgwqDCoMKgwqDCoHByaW50ZigiwqAgcmVsdSglLjFmKSA9ICUuMWZcbiIsIHZhbHVlc1tpXSwgcmVsdSh2YWx1ZXNbaV0pKTs8L3A+CjxwPsKgwqDCoMKgZG91YmxlIGlucHV0c1tdwqAgPSB7MC42LCAwLjksIDAuM307PC9wPgo8cD7CoMKgwqDCoGRvdWJsZSB3ZWlnaHRzW10gPSB7MC41LCAwLjcsIDAuMn07PC9wPgo8cD7CoMKgwqDCoGRvdWJsZSBvdXRwdXQgPSBuZXVyb24oaW5wdXRzLCB3ZWlnaHRzLCAzLCAtMC4xKTs8L3A+CjxwPsKgwqDCoMKgcHJpbnRmKCJcbk5ldXJvbiBvdXRwdXQ6ICUuNGZcbiIsIG91dHB1dCk7PC9wPgo8cD7CoMKgwqDCoHByaW50ZigiUHJlZGljdGlvbsKgIDogJXNcbiIsIG91dHB1dCA+IDAuNSA\/ICJDbGFzcyAxIiA6ICJDbGFzcyAwIik7PC9wPgo8cD7CoMKgwqDCoHJldHVybiAwOzwvcD4KPHA+wqDCoHJlbHUoLTIuMCkgPSAwLjA8L3A+CjxwPsKgwqByZWx1KDAuMCkgPSAwLjA8L3A+CjxwPsKgwqByZWx1KDEuNSkgPSAxLjU8L3A+CjxwPsKgwqByZWx1KDMuMCkgPSAzLjA8L3A+CjxwPlByZWRpY3Rpb27CoCA6IENsYXNzIDE8L3A+CjxwPiNpbmNsdWRlICZsdDtzdGRpby5oPsKgIMKgIC8vIHByaW50Ziwgc2NhbmYsIGZpbGUgSS9PPC9wPgo8cD4jaW5jbHVkZSAmbHQ7c3RkbGliLmg+IMKgIC8vIG1hbGxvYywgZnJlZSwgZXhpdDwvcD4KPHA+I2luY2x1ZGUgJmx0O3N0cmluZy5oPiDCoCAvLyBzdHJjcHksIHN0cmxlbiwgc3RyY21wPC9wPgo8cD4jaW5jbHVkZSAmbHQ7bWF0aC5oPiDCoCDCoCAvLyBzcXJ0LCBwb3csIHNpbiwgY29zPC9wPgo8cD4jaW5jbHVkZSAmbHQ7c3RkaW8uaD48L3A+CjxwPsKgwqDCoMKgcHJpbnRmKCJDIHByb2dyYW0gc3RhcnRzIGhlcmUuXG4iKTs8L3A+CjxwPsKgwqDCoMKgcmV0dXJuIDA7PC9wPgo8cD4jaW5jbHVkZSAmbHQ7c3RkaW8uaD48L3A+CjxwPsKgwqDCoMKgaW50wqAgwqAgYWdlIMKgIMKgIMKgID0gMjg7PC9wPgo8cD7CoMKgwqDCoGZsb2F0wqAgcHJpY2UgwqAgwqAgPSA5OS45OWY7PC9wPgo8cD7CoMKgwqDCoGRvdWJsZSBwacKgIMKgIMKgIMKgID0gMy4xNDE1OTI2NTM1OTs8L3A+CjxwPsKgwqDCoMKgY2hhciDCoCBpbml0aWFsIMKgID0gJ0QnOzwvcD4KPHA+wqDCoMKgwqBwcmludGYoIkFnZTogJWQgfCBQcmljZTogJS4yZiB8IFBpOiAlLjVmIHwgSW5pdGlhbDogJWNcbiIsPC9wPgo8cD7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgYWdlLCBwcmljZSwgcGksIGluaXRpYWwpOzwvcD4KPHA+wqDCoMKgwqByZXR1cm4gMDs8L3A+CjxwPiNpbmNsdWRlICZsdDtzdGRpby5oPjwvcD4KPHA+wqDCoMKgwqBpbnQgYSA9IDE4LCBiID0gNTs8L3A+CjxwPsKgwqDCoMKgcHJpbnRmKCIrIDogJWRcbi0gOiAlZFxuKiA6ICVkXG4vIDogJWRcbiUlIDogJWRcbiIsPC9wPgo8cD7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgYStiLCBhLWIsIGEqYiwgYS9iLCBhJWIpOzwvcD4KPHA+wqDCoMKgwqBwcmludGYoImEgPiBiIDogJWRcbmEgPT0gYjogJWRcbiIsIGE+YiwgYT09Yik7PC9wPgo8cD7CoMKgwqDCoHJldHVybiAwOzwvcD4KPHA+YSA+IGIgOiAxPC9wPgo8cD4jaW5jbHVkZSAmbHQ7c3RkaW8uaD48L3A+CjxwPsKgwqDCoMKgaW50IHNjb3JlID0gNzg7PC9wPgo8cD7CoMKgwqDCoGlmwqAgwqAgwqAgKHNjb3JlID49IDkwKSBwcmludGYoIkdyYWRlOiBBXG4iKTs8L3A+CjxwPsKgwqDCoMKgZWxzZSBpZiAoc2NvcmUgPj0gNzUpIHByaW50ZigiR3JhZGU6IEJcbiIpOzwvcD4KPHA+wqDCoMKgwqBlbHNlIGlmIChzY29yZSA+PSA2MCkgcHJpbnRmKCJHcmFkZTogQ1xuIik7PC9wPgo8cD7CoMKgwqDCoGVsc2XCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBwcmludGYoIkdyYWRlOiBGXG4iKTs8L3A+CjxwPsKgwqDCoMKgcmV0dXJuIDA7PC9wPgo8cD4jaW5jbHVkZSAmbHQ7c3RkaW8uaD48L3A+CjxwPsKgwqDCoMKgLy8gRmFjdG9yaWFsIHVzaW5nIGZvciBsb29wPC9wPgo8cD7CoMKgwqDCoGludCBuID0gNzs8L3A+CjxwPsKgwqDCoMKgbG9uZyBmYWN0b3JpYWwgPSAxOzwvcD4KPHA+wqDCoMKgwqBmb3IgKGludCBpID0gMTsgaSAmbHQ7PSBuOyBpKyspIGZhY3RvcmlhbCAqPSBpOzwvcD4KPHA+wqDCoMKgwqBwcmludGYoIkZhY3RvcmlhbCBvZiAlZCA9ICVsZFxuIiwgbiwgZmFjdG9yaWFsKTs8L3A+CjxwPsKgwqDCoMKgLy8gU3VtIHVzaW5nIHdoaWxlIGxvb3A8L3A+CjxwPsKgwqDCoMKgaW50IHN1bSA9IDAsIGkgPSAxOzwvcD4KPHA+wqDCoMKgwqB3aGlsZSAoaSAmbHQ7PSA1MCkgeyBzdW0gKz0gaTsgaSsrOyB9PC9wPgo8cD7CoMKgwqDCoHByaW50ZigiU3VtIG9mIDEgdG8gNTAgPSAlZFxuIiwgc3VtKTs8L3A+CjxwPsKgwqDCoMKgcmV0dXJuIDA7PC9wPgo8cD4jaW5jbHVkZSAmbHQ7c3RkaW8uaD48L3A+CjxwPsKgwqDCoMKgaWYgKG4gJmx0Oz0gMSkgcmV0dXJuIG47PC9wPgo8cD7CoMKgwqDCoHJldHVybiBmaWJvbmFjY2kobi0xKSArIGZpYm9uYWNjaShuLTIpOzwvcD4KPHA+wqDCoMKgwqBwcmludGYoIkZpYm9uYWNjaSBzZXF1ZW5jZTpcbiIpOzwvcD4KPHA+wqDCoMKgwqBmb3IgKGludCBpID0gMDsgaSAmbHQ7IDEwOyBpKyspPC9wPgo8cD7CoMKgwqDCoMKgwqDCoMKgcHJpbnRmKCJGKCVkKSA9ICVsZFxuIiwgaSwgZmlib25hY2NpKGkpKTs8L3A+CjxwPsKgwqDCoMKgcmV0dXJuIDA7PC9wPgo8cD4jaW5jbHVkZSAmbHQ7c3RkaW8uaD48L3A+CjxwPsKgwqDCoMKgaW50IHZhbHVlID0gNDI7PC9wPgo8cD7CoMKgwqDCoGludCAqcHRywqAgPSAmYW1wO3ZhbHVlOzwvcD4KPHA+wqDCoMKgwqBwcmludGYoIlZhbHVlwqAgwqAgwqAgwqAgOiAlZFxuIiwgdmFsdWUpOzwvcD4KPHA+wqDCoMKgwqBwcmludGYoIkFkZHJlc3PCoCDCoCDCoCA6ICVwXG4iLCAodm9pZCopcHRyKTs8L3A+CjxwPsKgwqDCoMKgcHJpbnRmKCJWaWEgcG9pbnRlcsKgIDogJWRcbiIsICpwdHIpOzwvcD4KPHA+wqDCoMKgwqAqcHRyID0gOTk5OzwvcD4KPHA+wqDCoMKgwqBwcmludGYoIkFmdGVyIGNoYW5nZSA6ICVkXG4iLCB2YWx1ZSk7PC9wPgo8cD7CoMKgwqDCoHJldHVybiAwOzwvcD4KPHA+VmFsdWXCoCDCoCDCoCDCoCA6IDQyPC9wPgo8cD5BZGRyZXNzwqAgwqAgwqAgOiAweDdmZmQzYzJhMWI0YzwvcD4KPHA+VmlhIHBvaW50ZXLCoCA6IDQyPC9wPgpsZXZlbDxmaWd1cmUgY2xhc3M9IndwLWJsb2NrLWltYWdlIHNpemUtZnVsbCI+PGltZyBzcmM9Imh0dHBzOi8vdXRoby5jb20vYmxvZy93cC1jb250ZW50L3VwbG9hZHMvaW1hZ2UtNS5qcGVnIiBhbHQ9IkhvdyBDIFByb2dyYW1taW5nIFdvcmtzIFN0ZXAgYnkgU3RlcCA\/IiBjbGFzcz0id3AtaW1hZ2UtMTUzMTAiLz48L2ZpZ3VyZT4KPCEtLSB3cDpoZWFkaW5nIC0tPgo8aDIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPjxzdHJvbmc+RmVhdHVyZXMgb2YgQyBQcm9ncmFtbWluZzwvc3Ryb25nPjwvaDI+CjwhLS0gL3dwOmhlYWRpbmcgLS0+CjxmaWd1cmUgY2xhc3M9IndwLWJsb2NrLWltYWdlIHNpemUtZnVsbCI+PGltZyBzcmM9Imh0dHBzOi8vdXRoby5jb20vYmxvZy93cC1jb250ZW50L3VwbG9hZHMvaW1hZ2UtNS5qcGVnIiBhbHQ9IkZlYXR1cmVzIG9mIEMgUHJvZ3JhbW1pbmciIGNsYXNzPSJ3cC1pbWFnZS0xNTMxMSIvPjwvZmlndXJlPgpsZXZlbGxldmVsPCEtLSB3cDpoZWFkaW5nIC0tPgo8aDIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPjxzdHJvbmc+QXBwbGljYXRpb25zIGFuZCBVc2VzIG9mIEMgUHJvZ3JhbW1pbmc8L3N0cm9uZz48L2gyPgo8IS0tIC93cDpoZWFkaW5nIC0tPgo8IS0tIHdwOmhlYWRpbmcgLS0+CjxoMiBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+PHN0cm9uZz5FbGVtZW50cyBvZiBhIEMgUHJvZ3JhbSBXaXRoIENvZGUgRXhhbXBsZXM8L3N0cm9uZz48L2gyPgo8IS0tIC93cDpoZWFkaW5nIC0tPgpsZXZlbGxldmVsbGV2ZWxjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRDIFByb2dyYW1taW5nIGlzIGEgc3Ryb25nIGFuZCBsb25nIGxhc3RpbmcgbGFuZ3VhZ2UuIEl0IGlzIHVzZWQgaW4gbWFueSBpbXBvcnRhbnQgc3lzdGVtcyBsaWtlIG9wZXJhdGluZyBzeXN0ZW1zLCBlbWJlZGRlZCBkZXZpY2VzIGFuZCBuZXR3b3JrIHRvb2xzLiBJdCBpcyBmYXN0LCBlZmZpY2llbnQgYW5kIGdpdmVzIGZ1bGwgY29udHJvbCBvdmVyIGhhcmR3YXJlLmRyb3BDYXBpbm5lckJsb2Nrc2xldmVsPCEtLSB3cDpoZWFkaW5nIC0tPgo8aDIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPjxzdHJvbmc+QWR2YW50YWdlcyBhbmQgRGlzYWR2YW50YWdlcyBvZiBDIFByb2dyYW1taW5nPC9zdHJvbmc+PC9oMj4KPCEtLSAvd3A6aGVhZGluZyAtLT4KPGZpZ3VyZSBjbGFzcz0id3AtYmxvY2staW1hZ2Ugc2l6ZS1mdWxsIj48aW1nIHNyYz0iaHR0cHM6Ly91dGhvLmNvbS9ibG9nL3dwLWNvbnRlbnQvdXBsb2Fkcy9pbWFnZS02LmpwZWciIGFsdD0iQWR2YW50YWdlcyBhbmQgRGlzYWR2YW50YWdlcyBvZiBDIFByb2dyYW1taW5nIiBjbGFzcz0id3AtaW1hZ2UtMTUzMTIiLz48L2ZpZ3VyZT4KPCEtLSB3cDpoZWFkaW5nIHsibGV2ZWwiOjN9IC0tPgo8aDMgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPjxzdHJvbmc+QWR2YW50YWdlczwvc3Ryb25nPjwvaDM+CjwhLS0gL3dwOmhlYWRpbmcgLS0+CjwhLS0gd3A6aGVhZGluZyB7ImxldmVsIjozfSAtLT4KPGgzIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj48c3Ryb25nPkRpc2FkdmFudGFnZXM8L3N0cm9uZz48L2gzPgo8IS0tIC93cDpoZWFkaW5nIC0tPgo8IS0tIHdwOmhlYWRpbmcgeyJsZXZlbCI6M30gLS0+CjxoMyBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+PHN0cm9uZz5Db25jbHVzaW9uPC9zdHJvbmc+PC9oMz4KPCEtLSAvd3A6aGVhZGluZyAtLT4KCjxwPkMgUHJvZ3JhbW1pbmcgaXMgYSBzdHJvbmcgYW5kIGxvbmcgbGFzdGluZyBsYW5ndWFnZS4gSXQgaXMgdXNlZCBpbiBtYW55IGltcG9ydGFudCBzeXN0ZW1zIGxpa2Ugb3BlcmF0aW5nIHN5c3RlbXMsIGVtYmVkZGVkIGRldmljZXMgYW5kIG5ldHdvcmsgdG9vbHMuIEl0IGlzIGZhc3QsIGVmZmljaWVudCBhbmQgZ2l2ZXMgZnVsbCBjb250cm9sIG92ZXIgaGFyZHdhcmUuPC9wPgpkb2N1bWVudHNsdWdzdGF0ZXNhdmVkQXRzdGF0ZXNhdmVkQnlsZXZlbGNsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudDxzdHJvbmc+MS4gU2ltcGxpY2l0eSBhbmQgQ2xlYW4gc3ludGF4PC9zdHJvbmc+ZHJvcENhcGlubmVyQmxvY2tzbGV2ZWw8cD5DIFByb2dyYW1taW5nIGhhcyBtYW55IHN0cm9uZyBmZWF0dXJlcyB0aGF0IG1ha2UgaXQgdmVyeSBwb3B1bGFyIGV2ZW4gdG9kYXkgaW4gMjAyNiBhbmQgYmV5b25kLiBUaGVzZSBmZWF0dXJlcyBhcmUgbm90IGp1c3QgaWRlYXMgdGhleSBhcmUgcmVhbCByZWFzb25zIHdoeSBDIGlzIHVzZWQgaW4gb3BlcmF0aW5nIHN5c3RlbXMgZW1iZWRkZWQgc3lzdGVtcyBkYXRhYmFzZXMgYW5kIGZhc3Qgc29mdHdhcmUgYWxsIG92ZXIgdGhlIHdvcmxkLjwvcD4KPCEtLSB3cDpoZWFkaW5nIHsibGV2ZWwiOjN9IC0tPgo8aDMgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPjxzdHJvbmc+MS4gU2ltcGxpY2l0eSBhbmQgQ2xlYW4gc3ludGF4PC9zdHJvbmc+PC9oMz4KPCEtLSAvd3A6aGVhZGluZyAtLT4KCmNsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudGRyb3BDYXBpbm5lckJsb2NrcwUHCAQIBggFCAcIBwgGCA4IDggLCAZIAQYIBAkICggECAY4CAcECkcAC4UFCAcECgc6mwMHCwgHBAoHqAQHCwgHBAoHtAMHCwgHBAoHmgMHCwgHBAoHjQMHCwgHBAoHIgcLCAcECgcGCwgHBAoHFgsIBwQKBx4LCAcECgcmCwgHBAoHGQsIBwQKByYLCAcECgcsCwgHBAoHLQsIBwQKBwoLCAcECgcoBwsIBwQKB60EBwsIBwQKB44FBwsIBwQKB7gEBwsIBwQKB7ECBwsIBwQKBzEHCwgHBAoHjAUHCwgHBAoHuwMHCwgHBAoHjAUHCwgHBAoHpQUHCwgHBAoHiwIHCwgHBAoHNwcLCAcECgMHCwgHBAoHkwUHCwgHBAoHMQULCAcECgeDAwcLCAcECgcdBwsIBwQKBxQEBwsIBwQKBwwHCwgHBAoHBAEUGQcLCAcECgcYCQcLCAcECgcBBwsIBwQKB4ECBwsIBwQKBycFCwgHBAoHlgMHCwgHBAoHuAEEkwIHCwgHBAoHngEHCwgHBAoHFAQHCwgHBAoHMwcLCAcECgcUBwsIBwQKBx0HCwgHBAoHEgcLCAcECgcMBwsIBwQKBwQBFCIHCwgHBAoHBAEUJgcLCAcECgcEARQeBwsIBwQKBwQBFDYHCwgHBAoHGAkHCwgHBAoHAQcLCAcECgcYBwsIBwQKBw0HCwgHBAoHDwcLCAcECgcRBwsIBwQKBxsHCwgHBAoHuAIHCwgHBAoHJQULCAcECgehAwcLCAcECgemAwcLCAcECge7AwcLCAcECgchBwsIBwQKByMHCwgHBAoHhwIHCwgHBAoHIgULCAcECge5AgcLCAcECgeDAwcLCAcECgchBQsIBwQKB7ICBwsIBwQKB7cDBwsIBwQKBx4HCwgHBAoHGAcLCAcECgeVAQcLCAcECgcjBQsIBwQKB6kDBwsIBwQKRwELCAcECgcYBwsIBwQKBw0HCwgHBAoHqgEHCwgHBAoHNwULCAcECgcQBwsIBwQKByQBBwsIBwQKB0wABgEGAQYBBiQHCwgHBAoHJAEHCwgHBAoHEQcLCAcECgckAQcLCAcECgcSCQYBBgEGAQYBBjMHCwgHBAoHJAEHCwgHBAoHBg0HCwgHBAoHJAEHCwgHBAoHEgkGAQYBBgEGAQYrBwsIBwQKByQBBwsIBwQKBwwQBwsIBwQKByQBBwsIBwQKBxhGAAEGAQYBBgEGAQYkBwsIBwQKByQBBwsIBwQKBxIGAQYXBwsIBwQKB5YCBwsIBwQKByEBCQcLCAcECgMHCwgHBAoHuwM3BwsIBwQKB5oEBwsIBwQKBxQEBwsIBwQKBwwHCwgHBAoHGAsHCwgHBAoHGAsHCwgHBAoHGBAHCwgHBAoHBAEULQcLCAcECgcYCQcLCAcECgcBBwsIBwQKBxgHCwgHBAoHFgcLCAcECge3AQcLCAcECgcwBQsIBwQKB4AEBwsIBwQKBxQEBwsIBwQKBz4HCwgHBAoHDAcLCAcECgcEARQfBwsIBwQKBwQBFBAGAQYcBwsIBwQKBwQBFBIGHQcLCAcECgcEARQyBwsIBwQKBxgJBwsIBwQKBwEHCwgHBAoHGAcLCAcECgcTBwsIBwQKBwkGAQYIBwsIBwQKBwsGCAcLCAcECgcUBwsIBwQKBy4FCwgHBAoHrgMHCwgHBAoHFAQHCwgHBAoHEwQHCwgHBAoHDAcLCAcECgdYAAcLCAcECgcYEgcLCAcECgcYMgcLCAcECgcDAS0IBwsIBwQKBxgBBwsIBwQKBxg\/BwsIBwQKBwQBFBoHCwgHBAoHBAEUKgcLCAcECgcYCQcLCAcECgcBBwsIBwQKBxgHCwgHBAoHFwcLCAcECgcTBwsIBwQKB5sBBwsIBwQKBzAFCwgHBAoHsgMHCwgHBAoHFAQHCwgHBAoHIgcLCAcECgcYDAcLCAcECgcYBgQOBwsIBwQKBxgGBA4HCwgHBAoHGAsHCwgHBAoHAQcLCAcECgcoBwsIBwQKBxghBwsIBwQKBwEHCwgHBAoHFAcLCAcECgcYFwcLCAcECgcYIwcLCAcECgcwGQcLCAcECgcYCQcLCAcECgcBBwsIBwQKBwwHCwgHBAoHGBsHCwgHBAoHBAEUJQcLCAcECgcEARQvBwsIBwQKBwQBFDcHCwgHBAoHBAEUNwcLCAcECgcYCQcLCAcECgcBBwsIBwQKBxgHCwgHBApHAQsIBwQKBw4HCwgHBAoHDwcLCAcECgcQBwsIBwQKBykFCwgHBAoHmgMHCwgHBAoHFAQHCwgHBAoHFQQHCwgHBAoHEwQHCwgHBAoHFQQHCwgHBAoHDAcLCAcECgcYEwcLCAcECgcYHgcLCAcECgcEARQcBwsIBwQKBwQBFCUHCwgHBAoHGBEHCwgHBAoHBAEUKQcLCAcECgcEARQoBwsIBwQKBwQBFCcHCwgHBAoHBAEUKQcLCAcECgcYEAcLCAcECgcDARUJBwsIBwQKBwQBFDQHCwgHBAoHGAkHCwgHBAoHAQcLCAcECgcYBwsIBwQKBxUHCwgHBAoHCgcLCAcECgcOBwsIBwQKBxAHCwgHBAoHDQcLCAcECgcOBwsIBwQKBxIHCwgHBAoHLAULCAcECgevAwcLCAcECgcUBAcLCAcECgcVBAcLCAcECgcMBwsIBwQKBxgKBwsIBwQKBxgqBwsIBwQKBxgSBwsIBwQKBwQBLCUHCwgHBAoHMAkHCwgHBAoHGAEHCwgHBAoHGBAHCwgHBAoHGB4HCwgHBAoHMBsHCwgHBAoHBAEULQcLCAcECgcYHgcLCAcECgcEASwjBwsIBwQKBxgKBiEHCwgHBAoHBAEUGQcLCAcECgcYCQcLCAcECgcBBwsIBwQKBxgHCwgHBAoHIQcLCAcECgcKBwsIBwQKBwoHCwgHBAoHCgcLCAcECgcLBwsIBwQKBwsHCwgHBAoHDQcLCAcECgczBQsIBwQKB68DBwsIBwQKBxQEBwsIBwQKBxsHCwgHBAoHGA4HCwgHBAoHGAgHCwgHBAoHGAoHCwgHBAoHAQcLCAcECgcMBwsIBwQKBxgVBwsIBwQKBwQBFCgHCwgHBAoHAwEVFAcLCAcECgcEARQNBhoHCwgHBAoHGBUHCwgHBAoHGCUHCwgHBAoHGBMHCwgHBAoHBAEULAcLCAcECgcYIAcLCAcECgcEASwpBwsIBwQKBxgBBwsIBwQKBxgJBwsIBwQKBwEHCwgHBAoHGAcLCAcECgcYBwsIBwQKB0YAEQcLCAcECgceBwsIBwQKBw0HCwgHBAoHDQcLCAcECgcNBwsIBwQKBw0HCwgHBAoHDQcLCAcECgcqBQsIBwQKB6MDBwsIBwQKBykHCwgHBAoHPgcLCAcECgcUBAcLCAcECgcuBwsIBwQKByYHCwgHBAoHGgcLCAcECgcYIAcLCAcECgcEARSAAQcLCAcECgcBBwsIBwQKBxkHCwgHBAoHGCUHCwgHBAoHBAEUFQYqBwsIBwQKBwEHCwgHBAoHDAcLCAcECgcEARQuBwsIBwQKBwMBFQ0HCwgHBAoHAwEVDQcLCAcECgcDARUNBwsIBwQKBwMBFQwHCwgHBAoHGAkHCwgHBAoHAQcLCAcECgcYBwsIBwQKByAHCwgHBAoHJQcLCAcECgclBwsIBwQKByUHCwgHBAoHDQYXBwsIBwQKBzcHCwgHBAoHoQIHCwgHBAoHggEFCwgHBAoHoQIHCwgHBAoHqQMHCwgHBAoHFAQHCwgHBAoHFQQHCwgHBAoHGAQHCwgHBAoHDAcLCAcECgcYLQcLCAcECgcEARQIBgwHCwgHBAoHBAEUFgcLCAcECgcYCQYMBwsIBwQKBwQBFBIGAQYBBg8HCwgHBAoHBAEUJwcLCAcECgcEARQOBgEGAQYBBgEGDwcLCAcECgcYCQcLCAcECgcBBwsIBwQKBxgHCwgHBAoHCwYBBgEGCAcLCAcECgcYBwsIBwQKRwAGAQYBBgEGAQZHAAsIBwQKBzkFCwgHBAoHhQQHCwgHBAoHFAQHCwgHBAoHIAcLCAcECgcSBwsIBwQKBycHCwgHBAoHBAEUDwQ4BwsIBwQKBwEHCwgHBAoHFwcLCAcECgcEARQeBwsIBwQKBwEHCwgHBAoHDAcLCAcECgcEARQrBwsIBwQKBxggBwsIBwQKBzAZBwsIBwQKBzAOBwsIBwQKBzAZBwsIBwQKBzAOBwsIBwQKBxgBBwsIBwQKBxgJBwsIBwQKBwEHCwgHBAoHGAcLCAcECgcdBwsIBwQKBwgEDgcLCAcECgcPBwsIBwQKBwgEDgcLCAcECgcPBwsIBwQKBwMHCwgHBAoHLwULCAcECgezAwcLCAcECgcUBAcLCAcECgcVBAcLCAcECgcNBwsIBwQKBzAHCwgHBAoHFgcLCAcECgcOBwsIBwQKBy8HCwgHBAoHGBUHCwgHBAoHAwEtGgcLCAcECgcDAS0cBwsIBwQKBzAIBwsIBwQKBwQBLBgEEgcLCAcECgcYAQcLCAcECgcBBwsIBwQKBx0HCwgHBAoHGCQHCwgHBAoHMCIHCwgHBAoHBAGEAQ0GCgQaBwsIBwQKB4gBRwALCAcECgcwAQcLCAcECgcYAQcLCAcECgcEARQeBwsIBwQKBwEHCwgHBAoHDAcLCAcECgcEARQsBwsIBwQKBxgPBgEGEwcLCAcECgdYAAcLCAcECgcYDwYBBgkHCwgHBAoHGA0GAQYBBg4HCwgHBAoHBAEUHQcLCAcECgcYEgcLCAcECgcYDgcLCAcECgcYDAcLCAcECgcYCQcLCAcECgcBBwsIBwQKBxgHCwgHBAoHHgcLCAcECgcOBgEGAQYBBgEGAQYCBA8HCwgHBAoHEgYBBgEGAQYCBAIHCwgHBAoHDgYBBgEGAQYBBgEGAgQFBwsIBwQKBw4GAQYBBgEGAQYBBgIECgcLCAcECgcPBwsIBwQKB0YACwYBBgEGAQYCBAIHCwgHBAoHRgAHBgEGAQYBBgEGAQYCBAUHCwgHBAoHDQcLCAcECgc3BQsIBwQKB5MDBwsIBwQKBxQEBwsIBwQKB4EBBwsIBwQKBy4HCwgHBAoHAwEVDAcLCAcECgcwFwcLCAcECgcwFwcLCAcECgcwFwcLCAcECgcwJgcLCAcECgcwCAYKBwsIBwQKBxgBBwsIBwQKBwEHCwgHBAoHDAcLCAcECgcEARQ1BwsIBwQKBwQBFA4GIwcLCAcECgcEARQOBiMHCwgHBAoHBAEUCAYFBhcGCgcLCAcECgcEARQOBiIHCwgHBAoHGAkHCwgHBAoHAQcLCAcECgcYBwsIBwQKBycHCwgHBApHAAYIBwsIBwQKRwAGCAcLCAcECgcBBgUGCAcLCAcECkcABggHCwgHBAoHPwULCAcECgejAwcLCAcECgcUBAcLCAcECgcVBAcLCAcECgcPBwsIBwQKBxgDBg0HCwgHBAoHGAMGCwcLCAcECgcYEgcLCAcECgcYEQcLCAcECgcCBwsIBwQKByUHCwgHBAoHBAFUAAQMBwsIBwQKBwQBPjIHCwgHBAoHAQcLCAcECgcMBwsIBwQKBwQBFCMHCwgHBAoHBAEUNwQFBwsIBwQKBwQBFDsHCwgHBAoHAwEVGgcLCAcECgcwCwYIBhMHCwgHBAoHMCkHCwgHBAoHMAsGCAYYBwsIBwQKBzALBggGFgcLCAcECgcYAgcLCAcECgcYHgcLCAcECgcwGgcLCAcECgcYCQcLCAcECgcBBwsIBwQKBxgHCwgHBAoHFwcLCAcECgcJBgIGCQQMBwsIBwQKBy8HCwgHBAoHBQYBBgEGCgQDBhEHCwgHBAoHBQYBBgEGCgQWBwsIBwQKBwMGAQYBBgEGCgQDBhYHCwgHBAoHAwYBBgEGAQYKBAMGFQcLCAcECgc5BQsIBwQKB60DBwsIBwQKBxQEBwsIBwQKB4QBBwsIBwQKByoECQQIBwsIBwQKByQHCwgHBAoHBAEUiwEHCwgHBAoHAQcLCAcECgcMBwsIBwQKBwMBFTwHCwgHBAoHAwEVFgYMBhcHCwgHBAoHBAEUKgcLCAcECgcYLQcLCAcECgcEASwcBwsIBwQKBzAoBwsIBwQKBzAPBg8HCwgHBAoHBAEsDAcLCAcECgcYAQcLCAcECgcYCQcLCAcECgcBBwsIBwQKBxgHCwgHBAoHHAcLCAcECgcIBwsIBwQKBx4HCwgHBAoHHQcLCAcECgcIBwsIBwQKBx4HCwgHBAoHHQcLCAcECgcDBwsIBwQKBzgFCwgHBAoHpwMHCwgHBAoHFAQHCwgHBAoHEwQHCwgHBAoHFQYBBgwEDQcLCAcECgc6BwsIBwQKB4YBBwsIBwQKBxgSBwsIBwQKBxg9BwsIBwQKBxgUBwsIBwQKBwEHCwgHBAoHDAcLCAcECgcEARQsBwsIBwQKBxgoBwsIBwQKBwQBFB0HCwgHBAoHGB4HCwgHBAoHBAEsBwYzBwsIBwQKBxgPBhMHCwgHBAoHGCMHCwgHBAoHGDEHCwgHBAoHBAEUKQcLCAcECgcEARQRBhEEHgcLCAcECgcYCQcLCAcECgcBBwsIBwQKBxgHCwgHBAoHHgcLCAcECgcRBwsIBwQKBwwQBwsIBwQKBwwPBwsIBwQKBwwPBwsIBwQKBwwPBwsIBwQKBxUHCwgHBAoHCgYKBwsIBwQKBzsHCwgHBAoHqAIHCwgHBAoHIAULCAcECge8AQcLCAcECgcUCgEGGwcLCAcECgcVBAEGFgcLCAcECgcVBAEGGgcLCAcECgcTBAEGAQYXBwsIBwQKByUFCwgHBAoHqAEHCwgHBAoHFAQHCwgHBAoHDAcLCAcECgcEARQiBwsIBwQKBxgJBwsIBwQKBwEHCwgHBAoHLAULCAcECgcUBAcLCAcECgcMBwsIBwQKBxgDBgEGBQYBBgFGAAcLCAcECgcYBQYHBgEGCgcLCAcECgcYCQYBBgEGAQYRBwsIBwQKBxgFBgkGRwALCAcECgcEARQ5BwsIBwQKB4IBGQcLCAcECgcYCQcLCAcECgcBBwsIBwQKBxgHCwgHBAoHMQcLCAcECgcdBQsIBwQKBxQEBwsIBwQKBwwHCwgHBAoHGBIHCwgHBAoHBAEUMgcLCAcECgeCARkHCwgHBAoHBAEUCQQZBAkHCwgHBAoHGAkHCwgHBAoHAQcLCAcECgcYBwsIBwQKBwYHCwgHBAoHBgcLCAcECgcGBwsIBwQKBwUHCwgHBAoHBQcLCAcECgcCBAYHCwgHBAoHCQcLCAcECgcmBQsIBwQKBxQEBwsIBwQKBwwHCwgHBAoHGA8HCwgHBAoHGAIGAQYBBggEGwcLCAcECgcYDwQbBwsIBwQKBxgPBBsHCwgHBAoHGAQGAQYBBgEGAQYBBgEGAQYBBhYHCwgHBAoHGAkHCwgHBAoHAQcLCAcECgcYBwsIBwQKBwgHCwgHBAoHGQULCAcECgcUBAcLCAcECgcMBwsIBwQKBxgbBwsIBwQKBxgKBwsIBwQKBxgTBwsIBwQKBxgvBwsIBwQKBwQBFC8HCwgHBAoHGBcHCwgHBAoHGBMHCwgHBAoHGCUHCwgHBAoHBAEUJAcLCAcECgcYCQcLCAcECgcBBwsIBwQKBxgHCwgHBAoHFQcLCAcECgcVBwsIBwQKBx0FCwgHBAoHFAQHCwgHBAoHFwcLCAcECgdYAAcLCAcECgcYJwcLCAcECgcBBwsIBwQKBwwHCwgHBAoHBAEUHwcLCAcECgcYHwcLCAcECgcEASwoBwsIBwQKBxgJBwsIBwQKBwEHCwgHBAoHGAcLCAcECgcTBwsIBwQKBwgHCwgHBAoHCAcLCAcECgcIBwsIBwQKBwgHCwgHBAoHCAcLCAcECgcIBwsIBwQKBwgHCwgHBAoHCQcLCAcECgcJBwsIBwQKBwkHCwgHBAoHHAULCAcECgePAwcLCAcECgcUBAcLCAcECgcMBwsIBwQKBxgPBwsIBwQKBxgIBg4HCwgHBAoHBAEUDAYBBgEGAQYRBwsIBwQKBwQBFA4GAQYBBhYHCwgHBAoHBAEUEgYQBwsIBwQKBxgLBwsIBwQKBwQBFCQHCwgHBAoHGAkHCwgHBAoHAQcLCAcECgcYBwsIBwQKBwUGAQYBBgEGBQcLCAcECkcABgEGAQYRBwsIBwQKBwsGBQcLCAcECgcSBwsIBwQKBzUBCQcLCAcECgMHCwgHBAoHGwcLCAcECge7AwcLCAcECgeCBAcLCAcECgeuAwcLCAcECgejAwcLCAcECgeLAwcLCAcECgeiAwcLCAcECgceBwsIBwQKB4kDBwsIBwQKB5YDBwsIBwQKB6ICBwsIBwQKB7kCBwsIBwQKB4QDBwsIBwQKBxMVCJIDBwsIBwQKB74CBwsIBwQKB40BBwsCBAMIDwIEAwgPAgQDCA+7BRazEr0UkhqLAYkOsAEuqAqCA74GbgKOSG4AtQFuCaQDiwEqGKYFsAFuAqsNpANuArwDLqMILrABbgaLDoYCbgGDA68CbgGnAm4DkQ1uAbABbgqBES6wAW4MgBG\/AW4ApwJuCYEEgBG+BC60Ai6nAm4DmggYvw1uALABbgWzArwBuwepBLICpwJuBYYEswGdCS6MB24DuAJuBKcCbgeHBG4BswEuigiJBG4EpwJuA5AEbgGfBy6zAW4BgQMupwJuCYAEkwJuAaMHqAKIAqcCbge2Em4AmgRuAKcCbgiOBW4BuQEYoAhuAYoFsAEuqgOwAW4EkAawAW4CnQesA7ABbgOjBbABbge\/BrsBLqcCbgGlE7ABbgWzAm4AoAGLARSAG40TFrcFFggHBAoHlwMHCwWXAwgHBAoHlwMHCwFEAEEARAMGAkECRgADQQMGAQYDQQMGAgYEQQQGQQFEAwFEAEEABAFEAEEDRAEIRAMBRAABBAFEAghEBUECRAtBAEQBSABEAQhEAAgEAUQAAUQFAUQDCEQAQQBEAgFEBEECRAABRAABBEEBRABBAwRBBwQBRAFIAkQAQQIESAIBRAAIDEEADAhEAkEARABBAARBAUQDQScESAMBRAEBBAEEQQEEAQRBBQQBBAFEAQELRAABRAAIQQBIAEEACEEARAAIBEEZRAFBAEQASAEBCEQAQQNEBQgBBAFEAkEABEICAQJBB0QAAQRBAwRBAQRBAgRBAAQLBAFEAAsEQQAEQQBEAEECBAEEAQRBBwQBRAgBRAIIBAFEAAEEQQIEQQEEAUQBQQZFAYcCnwO0Ab0BgwIdJhWUBB0vMyuDARUPgQFPAJABDxYPiAEPGg+BAQ80HVcAHDoVHSw8PT8VXAAdHCQePhkNiwEnNxUdGGEAFy0jLykVJzI8xAEAFR0eHB4fKikyHTY1NDYcFoEBFR0eFjYeNhkNHCorOio0OCYVHRoUFiE1ITUhMR85LDoNFSAdLI0BMY0BO1oBGRUtHR4hOSIjIjM0MxUgHx2VASs4LCkeKR4NFV8AHR4hKy0YPA0wMogBGxENKzkxJCcsKh4aGBUzJikuJikdGWcBNiMNggF\/AH4AFVgCHR4dGx4dLoYBMIoBiAEnODk9Ow5qABUrMjM3Nh2FAZgBiQGIATc5LTgvHQ0VHRw6HokBIDk0agCMAW8APTaPARUaWQEdOzY6Nx0vFR0iJi0jhgEsFR0ePyw6FREdG3cCFR0nFh87PCMfcQAVHSQzLCs5FR0bIzE2MBcxFRklGQW5ArYBrAJFAIMChwJFAQgHBAoHkQMHCwWKAoADswG2AbQBmQMIBAUHBQcFCAcECgcvBwsFgwSIAggHBApHAAsMAQ0AAAECALEpAQIA2xRCAQEAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAPUDQeQUnQSnDZ0BpgGsAZMCIDoplwQggwGHAT+XASktnwFtALgBLRstsAEtJC2zAS0+oAGTAroEIGsAMI4BKSCAAZoBlgGTASkmISAfODKSAYEBIZ8BO4sBKSAseAArgQE3gwGRASk7hgGQAdgBACkgIR8hMz49hgExigGJAYgBigEwKpUBKSAhKooBMp4BgQEhMD6TAY4BPpwBkQE6KSAuKCo1iQE1jgE1hQEzjQGAAaIBISklIIABoQGFAaYBjwFuAS0pMqwBICEkjQE7NzuWAYgBoAEpLzggrAE\/jAGAAZEBhgGRAYYBISliACAhNZMBlQGAAacBIYQBmgGMApcBOSE\/jQGPATiFAY8BPjIuLCmUAT2KAY8BggGPASAtzwEBngGQASGWAdgBAKEBlwEpXQAiHSAhNjQyMYUBvQGEAaEBnAE7qgGhAa8BrQEiPpIBKTiJAYUBkwGSASCLAawBnQGmAYsBjQGVAaABnAGFASEpIB+HATKdATSNAYgBfgC5AYgBgwGRAYoBqwEpJGMBIrABiAE+ggGEASCDASkgjwGJAZUBgQGaAaMBKSAykwGjAZQBKRQgL50BzgEAuAEpIDsqM48BkAE3M8UBACkgOIcBgAE\/oQEpIC882QEAiQErhQEpLTQetAGTApABkwGKBEFTNkEBAcpCAH0BfRV9AHcEb3BlbncEb3Blbnl3AHcIc3RhbmRhcmR3AHUAdyRhNWZlMDRlNi01M2MyLTRiZmYtOTZmZC0xOWFkZmJkMGJjODd4dw5jb3JlL3BhcmFncmFwaHl3JDkzOGM5OTUyLWQ0NWMtNDQ1NC04MTNhLWJkN2NmMjcxNTA4MHckNjI0ZGJiNjItZTVmNy00ZWYwLTlkMWQtZGRlNjc1NWU2NTI5eHcOY29yZS9wYXJhZ3JhcGh5dyRkMjg1YjAyYi02OTYyLTQzYTYtYTIwZS1hYmMzMjM4ODk4NTB4dw5jb3JlL3BhcmFncmFwaHl3JGY1ZGIzZjAxLWUxZDMtNGFlMS1hNjRiLTI4OTRhNzNmZDk0Znh3DmNvcmUvcGFyYWdyYXBoeXckZTNlZWQ3NTEtZTk4Zi00NGMyLWE2MjgtNThjMWQzMTBmNTQ0eHcOY29yZS9wYXJhZ3JhcGh5dyQ2YjUyNTZhNC05M2M2LTQ0NDItYmYwYy05YzlkYTcxNWZhYzN4dw5jb3JlL3BhcmFncmFwaHl3JDAxMGRhMTRjLTIxOTctNGE5Yi05ZTY1LWQ1OWQ4OGU5Y2EyYXh3DmNvcmUvcGFyYWdyYXBoeXckNGI3NDZlNzctMTQwZC00N2MyLTg4MDktODU3M2NiMzQxZDI5eHcJY29yZS9saXN0eHcAdyRiMDExNzgwNy1mNjkyLTRiMDYtOGFjMy0zMjFlOWRkYTY2NTd4dw5jb3JlL2xpc3QtaXRlbXckM2Y0MDBmNGUtOTM3ZC00Y2U1LWE4MWMtM2E2MGY1MjQ5ODIweHcOY29yZS9saXN0LWl0ZW13JDM0ZjZjM2M2LWE2MjEtNGU3Mi04ZjllLTBjZTY3NjllYjg0Y3h3DmNvcmUvbGlzdC1pdGVtdyQxOGViNTA3OS1hZjQ1LTQ2ZDktODIzZC1hOTg1YWVkMjEwMzd4dw5jb3JlL2xpc3QtaXRlbXckYjIzODA0MjQtODZmNi00MTI1LTlkMjUtMDQzYjljNzYwOWE3eHcOY29yZS9saXN0LWl0ZW13JDk1MGMxYjZiLTcyNmUtNDEwMC04YTNhLTk4NTAxM2I1MWUyYXh3DmNvcmUvbGlzdC1pdGVtdyQ3NmM4NGI2Zi0zYzY1LTQwMTUtOWY3OS05ZjA0ODY4MjljMTN4dw5jb3JlL2xpc3QtaXRlbXckZGExODY5YjAtZDJmNy00ZTE1LTg4NjUtOTNlYWE1ZjU4NWNheHcOY29yZS9saXN0LWl0ZW13JDA2OWIyNDk0LWM5ODMtNDMwMC04NmNmLTkzYjY5ZGE1OGIyN3h3DmNvcmUvcGFyYWdyYXBoeXckNWQyY2JkMmItNTkwOS00N2MxLTg1OTgtNjU4MDY2M2MxMDM5eHcOY29yZS9wYXJhZ3JhcGh5dyQxNDA1ZTFhZS1kNWYxLTRhNDUtODE2YS1iMDQ4M2VjNWU3YzV4dw5jb3JlL3BhcmFncmFwaHl3JDk2ZmEzNTUxLWNjOTEtNDVkMi05ZjNlLWJkMTA1ZjZiZTJmNnh3DmNvcmUvcGFyYWdyYXBoeXckNzFhZjk2ODUtNjhmNC00NmU5LTg4NWEtNjQ5N2UwZGY4ZTAyeHcOY29yZS9wYXJhZ3JhcGh5dyQ2NGVjY2VkNC1iMmY5LTQwZDQtOGI1My1jYzY5YWUzNzgzMzB4dw5jb3JlL3BhcmFncmFwaHl3JGIxMzIxYWY4LTc3MmMtNDNkNC04YzMzLTMxNDg5YmQ0NTg4Znh3DmNvcmUvcGFyYWdyYXBoeXckMmY0YzQ4MzMtNmM2My00MjAzLWEwM2UtYTY3MzBiZjAxMTIweHcOY29yZS9wYXJhZ3JhcGh5dyRhN2QzODQ2Yy1kMmQzLTQ5ODctOGE2NC1lOGViMDhiY2EwNGF4dw5jb3JlL3BhcmFncmFwaHl3JDdiZDZmZWViLTgzMTQtNDE4MS1hOTQ4LTNhZDg0ZGY3MzRjYnh3DmNvcmUvcGFyYWdyYXBoeXckNjM2MDM1ZmQtZTMyYS00M2QwLTk3YjItZWQxNzRmZTQ3OTIweHcOY29yZS9wYXJhZ3JhcGh5dyQ0MWIwZTQ2OS03OGIxLTQ2ZDgtOTMxYS1jNGJkMzUyNWI5MjZ4dw5jb3JlL3BhcmFncmFwaHl3JDhlOWI4NDY2LTBmZTUtNGEzOC1hMDg2LWZmYWFkM2ZlMDJiZXh3CmNvcmUvaW1hZ2V3AHckMGU4MjNjYTMtZDVkMy00NWFmLWFkMWItOTU1MDk2MDE2YTBjeHcOY29yZS9wYXJhZ3JhcGh5dyQzNmM3OGY2NC1lYjVjLTQ0OWUtOTEwYy1hYWFmNTc2MDg0YjZ4dwxjb3JlL2hlYWRpbmd9A3ckNGZmZDZjMjEtZmUzZS00MjdlLTgwNWQtZDUxYzEzZWRhYTMzeHcOY29yZS9wYXJhZ3JhcGh5dyQzN2EzMDU1Ny05MTc0LTQ5NjYtYmRlNC0yYmQ2ODdlMDM2NDh4dw5jb3JlL3BhcmFncmFwaHl3JDVmMzNmMThkLTc1ZDktNDUxMi04YWRhLTYwZGJmYjNiODBkMXh3DmNvcmUvcGFyYWdyYXBoeXckMDM4Zjk4ZDQtMGIyNy00ZmE3LWIwYmMtZTIzYTljNWRjMTI3eHcOY29yZS9wYXJhZ3JhcGh5dyRkMDAyZTU4NS1jZWY5LTQ5NDctOTc3ZC1jZjMwMWQ1ZDcwM2Z4dw5jb3JlL3BhcmFncmFwaHl3JDU4OTM0MjU5LWMxOGUtNDU5YS04ZWI5LWVmNzk3ZDhjOTZhM3h3DmNvcmUvcGFyYWdyYXBoeXckMWVjMWQzMjItZGNjOS00YmVkLWEzNDItZTdmZDNlMDVhMGVheHcOY29yZS9wYXJhZ3JhcGh5dyQyZTNmMWZiNi00YzIyLTQ5YjEtYTcxZi1lMWYwZmFhOTY2MjJ4dw5jb3JlL3BhcmFncmFwaHl3JGQ2M2RiZmYxLWVhYmItNDY5Ny1hOGE5LTU2YmQyYWJhYWI5NXh3DGNvcmUvaGVhZGluZ30DdyRjNmU2ZGEwNi00MTU4LTRjM2QtYjI2Zi03N2I5MzJlOTQxZjR4dw5jb3JlL3BhcmFncmFwaHl3JGY2MTI4MmYyLWM2MzMtNDA5ZC1hNTFiLWRkODgxODEwMjJmZnh3DmNvcmUvcGFyYWdyYXBoeXckNGRiNWI1NDYtYWM2Mi00MmUzLWIxMmMtYmYyZjM1NDBiZGU3eHcOY29yZS9wYXJhZ3JhcGh5dyQ4MDgyYTdiMi0yMTZhLTQyZWQtYTFkNC0yNjgwZjZhMTE5M2Z4dw5jb3JlL3BhcmFncmFwaHl3JDAxOWE4NmIxLTQwMjAtNGQxNS04YWRiLTBlNTBhNWViNmFmYnh3DmNvcmUvcGFyYWdyYXBoeXckNDUzYTIxMzItZTE0NS00N2EyLWIyYTMtNTNiODVkMjVlZjcyeHcOY29yZS9wYXJhZ3JhcGh5dyRkYzA1NjdhYS0wOWRiLTQ1ZTktYWI4MC0yNjM5OTFiY2YyM2V4dw5jb3JlL3BhcmFncmFwaHl3JGVmMWIwMDcyLTBkZDItNGMwNS1hOTc4LTlkZjdmNWQ0ZDljOHh3DmNvcmUvcGFyYWdyYXBoeXckNzE0M2ExZDYtZmNiYy00Y2FmLWFmYWYtNWM5Y2QzM2U1MDgyeHcOY29yZS9wYXJhZ3JhcGh5dyQ2NGRjMjVhMC1mZDczLTQxZjAtYjFkOS1lMTYzZTYzZjk2NzJ4dw5jb3JlL3BhcmFncmFwaHl3JGMwMzNlNmJmLTU2NzYtNGJjZS1iODUzLWUwYzkyOGZiMWFhOHh3DmNvcmUvcGFyYWdyYXBoeXckMzA5YjkxNDgtZDg0Ny00MGJiLTg4OWUtNGZkMjVjYjI4ZGZieHcOY29yZS9wYXJhZ3JhcGh5dyQwZmI0YmI0Yi0xZGJmLTRmOGItOWJlZi1kMzM3NzkyZDU5NmF4dw5jb3JlL3BhcmFncmFwaHl3JGU1YWJjZTg2LWUxMGYtNDdiOC05N2NjLTE2MmNhODJmYjMzYXh3DmNvcmUvcGFyYWdyYXBoeXckYmY5MmNkMDktZWIxMS00MjkwLWE2ZmItOWZjOTQyNWYzZDlieHcOY29yZS9wYXJhZ3JhcGh5dyQ1MjZlMTEyZS02MWQ1LTRjY2MtYjBiNy1kMTlhYmNhNmY0YjJ4dw5jb3JlL3BhcmFncmFwaHl3JGU4Zjc1ZGEwLTg5NDktNDY1Yy1hMmQzLWY4MjgyMGY4NWNiY3h3DmNvcmUvcGFyYWdyYXBoeXckNDlmODA1NWYtMjljOC00NDE3LTg4ZjItY2IyNzMyNjRhNjdkeHcOY29yZS9wYXJhZ3JhcGh5dyQ2YmE5ZDA0MC0xNWU4LTQzNDgtYWJlZS1mZjJmNTQxMjgwYWN4dw5jb3JlL3BhcmFncmFwaHl3JDllYTUyYWQ3LTgyMTgtNDEyZC1hZTkzLWRlYjNiZWMwNjhlOXh3DmNvcmUvcGFyYWdyYXBoeXckMTgyMWMwNDYtNzYxYS00ODRlLWJhN2EtOWNkYTVhZmNlZmNmeHcOY29yZS9wYXJhZ3JhcGh5dyQ3YzJlMzRlZi1lZTYwLTQ0NWUtYjhkMy1lMGYzZjYwYmU4YjR4dwxjb3JlL2hlYWRpbmd9A3ckYmY4NmI2ODAtNGQ4NC00ZDM3LWFhNTMtZjY0YjA5OWExZjJkeHcOY29yZS9wYXJhZ3JhcGh5dyRkMmEyYmM4Mi1hZGI5LTRhOGEtYjYwYi00YjY3MjVhMzc1MzF4dw5jb3JlL3BhcmFncmFwaHl3JGQ2MWRkNzQyLWQ2YjgtNDQ0MS04MDMxLWUzYzY5NzVjMGU2Mnh3DmNvcmUvcGFyYWdyYXBoeXckZmFmZjBmNDQtYjNmZC00YjAyLWJhNGEtNWVkZWQ1ZGQ5YTAweHcOY29yZS9wYXJhZ3JhcGh5dyRlZjU3YzAxOS1jMjIxLTRjYjYtYmRkNy1hMzUwNWNhZTE5MTR4dw5jb3JlL3BhcmFncmFwaHl3JDliNjQ1ZGNlLTdhOTctNGIzMS04YzNlLWRmNmNhNWE0ZWM3NHh3DmNvcmUvcGFyYWdyYXBoeXckOGY2NTY1MzItYzJlOS00YmY4LWFjMzktNDM2MDg2MjcwNWUxeHcMY29yZS9oZWFkaW5nfQN3JGRiM2I2Y2E2LTQyNDQtNGJiZS05NDg2LTM3MjU0OTdhNjEyMHh3DmNvcmUvcGFyYWdyYXBoeXckNzc0ODUxNTAtZjI4My00YWFiLWJmYzktYmIwYmFjNzRiZTEzeHcOY29yZS9wYXJhZ3JhcGh5dyQ1NGI1OTdjYS02MmQ2LTRmNWUtODc1Yi0zMmMyOWUyNWFiYzJ4dwxjb3JlL2hlYWRpbmd9A3ckMjJlYjMxZDktYmQ4NS00MTQ5LTkzZWYtMjJmNzU4MGMxZmU4eHcOY29yZS9wYXJhZ3JhcGh5dyQ0MDFlMjEyZC03MzU4LTRiYjMtODEyYS01YjYzNTRiNmMxMDh4dw5jb3JlL3BhcmFncmFwaHl3JDExNDgzZGFhLWY2NjUtNDk5ZS04NjIyLWFjNDg0MmNjNzFjMHh3DmNvcmUvcGFyYWdyYXBoeXckZDM4YzU1ZmUtMmIyZi00NTI3LTkxYmMtMGI3Y2Y0MTlhOTRieHcOY29yZS9wYXJhZ3JhcGh5dyRkZDllNWZhOS02ZWE5LTRjOTctYmY3Mi1kNmYxZWY1NzVlZmR4dw5jb3JlL3BhcmFncmFwaHl3JGM0OTAwYzBjLWZkNzYtNDRmZC04MWRmLWM4MjY4ZTk2MDUwN3h3DGNvcmUvaGVhZGluZ30DdyRmZTQ5ZjUxMi00ZGYxLTRhOGEtYjNiZC1lYmRiNmVlMWNiYTF4dw5jb3JlL3BhcmFncmFwaHl3JGZkZmU1NTc4LWU1MmMtNDQ2YS05NTAwLTIwY2QxYzdlM2YwNnh3DmNvcmUvcGFyYWdyYXBoeXckNTNmOGNhMDktYzE1OS00ZmFiLWJhNmQtMWU5YWNhOTk2ZDk4eHcOY29yZS9wYXJhZ3JhcGh5dyQyOTRhMmQ5NC02ZjVmLTQ0NDktYjFmZi1hMjVmZTU0MjdiNjd4dw5jb3JlL3BhcmFncmFwaHl3JGJlNjUyNDg0LTYxZWEtNGIyNi04ZTk1LWViYmJlZTA2ZmUyNHh3DmNvcmUvcGFyYWdyYXBoeXckZGVlYmVhMDYtMjFlZC00M2YyLTg2YTctOTJiOWQ1MjFiNWIxeHcMY29yZS9oZWFkaW5nfQN3JGZkMmU4YTAxLTE1MzYtNDg1MC1hMWEyLTIwYTc0NTg5Yzg0MXh3DmNvcmUvcGFyYWdyYXBoeXckMzQyZmZmMWYtYjcwYy00YTAwLTliZjUtYWJlMzA2NjU1YmRkeHcOY29yZS9wYXJhZ3JhcGh5dyQ1MjM3MzVhNi1iODg5LTQwOWItYjc4Zi1jZmU0ZmIyYmIzMDV4dw5jb3JlL3BhcmFncmFwaHl3JGFjNjI2ZDQ0LWVjZTItNGU1NC1hMmI4LTk0NmNkMjk2Y2FhOXh3DmNvcmUvcGFyYWdyYXBoeXckOTE3MzBlZDktZjIzNi00MGViLWEwODYtOTU5N2NhY2Q4NThjeHcOY29yZS9wYXJhZ3JhcGh5dyQ1MWI4MTY0NS0wYTZmLTRkOTAtYjQxZi01NGJlZDkzYWI0NzB4dw5jb3JlL3BhcmFncmFwaHl3JGE1YzgxYWVkLTVmMmEtNGRjNC1hNDgxLTlhYWJjNDZkZTM4NXh3DmNvcmUvcGFyYWdyYXBoeXckNTE3NjdkMzEtYzcyMy00MWM1LThlNWItNzJkYjE0ZjVjMjIxeHcOY29yZS9wYXJhZ3JhcGh5dyQ5MjM0YWMzZS0wYzk3LTQwYzktOWM0Ni02NmQ2YjljMDdiMDJ4dw5jb3JlL3BhcmFncmFwaHl3JDVkZjY4OTcyLWQ3ODYtNGUyNi04M2YyLTk5MmIzNjNjMzU0NHh3DmNvcmUvcGFyYWdyYXBoeXckZjg5MTI0ZmYtODE1ZC00YzViLWJhMDEtM2YzYTMxYmIxYWFmeHcOY29yZS9wYXJhZ3JhcGh5dyRiMmRkMzJjOS0wZjI4LTRmNDYtYjhlNC1iNDY0YjRkNjVhOGJ4dw5jb3JlL3BhcmFncmFwaHl3JDc3NzFhYWI4LTA2NTEtNDEyZC04YzljLTQyNDY2MmQ4ZjRjMHh3DmNvcmUvcGFyYWdyYXBoeXckZGZhNzljYzQtZTQ0Ni00MzllLWFjM2ItYTYwM2U0NWE2ODI4eHcOY29yZS9wYXJhZ3JhcGh5dyQ0NWI4OTQyMi1iNjgyLTQyYjEtOGIzNC1hZmUzZDcxMTFhNjh4dw5jb3JlL3BhcmFncmFwaHl3JGMzMzk2NDc2LWEzNzEtNDliOS1iN2M2LTZkZGViM2RiNjY0OHh3DmNvcmUvcGFyYWdyYXBoeXckZDNlNjZkZmQtYjY2ZC00NGRlLTk4YTQtMzQ0MmIwM2Y4ZWNheHcOY29yZS9wYXJhZ3JhcGh5dyQyZTZjNWY2Ni1lODgwLTRkZGQtOTdiMi02OWJhOTg3NTIzY2R4dw5jb3JlL3BhcmFncmFwaHl3JGJlMTExYWJhLTEyZmEtNDNjZi04Y2Y0LWI4N2U5Njk1NWY3ZXh3DmNvcmUvcGFyYWdyYXBoeXckOWJkZGQ0ODUtMmM4Mi00N2RlLTg0MjgtY2JjYzc5ZTg4YjQ3eHcKY29yZS9pbWFnZXcAdyQ4OTI2ZjNlMi1hODI5LTRlMTUtYTNhMi1mOTRhM2MyN2M2YWV4dw5jb3JlL3BhcmFncmFwaHl3JDI1NTA4ZmMwLTc4NzctNDJiNy1iODU4LWQ4ZmMyYWNhMTkxYXh3DmNvcmUvcGFyYWdyYXBoeXckOGYzMmM3MTQtNWJlYy00MzYxLWEzMDctMWVhNGM2NTNmNDZmeHcOY29yZS9wYXJhZ3JhcGh5dyQ2NWEwOWM1Yy0yOTU0LTQ1NjktOTVjYS0yNjJjMGRkNjU3NDR4dw5jb3JlL3BhcmFncmFwaHl3JGVmY2NlMjFiLThlNzAtNDhjNy04OGIyLWExNDg2NTY5YjJjMXh3DmNvcmUvcGFyYWdyYXBoeXckMTQyNGU5MWUtOGI3NS00MWYxLWE4NGYtZDk0YTdjMGYxYTFleHcOY29yZS9wYXJhZ3JhcGh5dyQ5M2M2Njk4Yy02YmJmLTQ1YzktOTBmNC1kNGI4MTBiY2RlMWV4dw5jb3JlL3BhcmFncmFwaHl3JDEyZGIzOTNhLTNlZWItNGNiZC04M2NkLWUxOGE3ZDU3NGFiMXh3DmNvcmUvcGFyYWdyYXBoeXckMjM3MTAyNjAtYzY4Ny00Yjk3LTg4NzMtZmVkOWU2Y2U0MjIyeHcOY29yZS9wYXJhZ3JhcGh5dyRjNWQ0OWM2NC0xMmVmLTQ5YjctOTUxYS00YWI4MzA5NDRhMDF4dw5jb3JlL3BhcmFncmFwaHl3JGMxZWNhOTIyLTNlNDgtNGE3YS05ODkzLTI5MzQyMzZlM2JiYXh3DmNvcmUvcGFyYWdyYXBoeXckMTNkYjY1NjgtMDNiNC00ZGQwLTk5MTctMGViNGQ0NTdiNWQweHcOY29yZS9wYXJhZ3JhcGh5dyQ0NDRiMjIzNS1jYTZmLTQ2YWQtYTdlOS04ZjQ3OWI1MzhiMGN4dw5jb3JlL3BhcmFncmFwaHl3JGNhZWUxYjhkLWM5ZTMtNGI5Mi1hNzM0LTBhZmUwNjA2ZDNjOHh3DGNvcmUvaGVhZGluZ30DdyQ0MTIyMTA5Ny0yOWZhLTQxMDktYTNlYi1lY2FkN2FmNTdkOWV4dw5jb3JlL3BhcmFncmFwaHl3JGFhMTM1ZDViLWI2ZDAtNDdiNC1hMTU2LTc1ZGJhZWFlYWJjN3h3DmNvcmUvcGFyYWdyYXBoeXckMmM4ZjcxYzItZDc0Ni00NmQwLWJiZjctY2NhYmI2Y2M3ZDkweHcOY29yZS9wYXJhZ3JhcGh5dyRkMjNhYjgyYS00YzU4LTQ0YmQtODdlNS03MThkYmVhNDA2YzZ4dw5jb3JlL3BhcmFncmFwaHl3JDYyMGZlZDQwLWQwOTEtNDBlNi1hZmYzLTE1MzBjNGFhNDVkM3h3DmNvcmUvcGFyYWdyYXBoeXckNDZlZTAyOGMtYzEwNC00OGRjLTlkNWQtZWZmZmU3MDBlZTFkeHcOY29yZS9wYXJhZ3JhcGh5dyQyNzEyNzFhOC02YjNhLTRjMWQtODlhMC0wM2YzZmIzNTkxYmN4dw5jb3JlL3BhcmFncmFwaHl3JGVmYjM5N2YyLWQ2ZGUtNDg4Zi1hOTdiLTQ1MDM5YzYxMzdmNHh3DmNvcmUvcGFyYWdyYXBoeXckMzEzMTM1YmYtMTllZS00YTI5LWFhY2YtZmJhY2FiMDFiZGNmeHcOY29yZS9wYXJhZ3JhcGh5dyQ0ZDlhMzMyZi1mN2ZlLTRiMjgtOTkwYy1iOGQwNTU5NjAyNGF4dw5jb3JlL3BhcmFncmFwaHl3JDI1ZDRhZTQ4LTZlOTYtNGUyNS04ZmIyLThjZDliYWIyMDJkMXh3DmNvcmUvcGFyYWdyYXBoeXckNDIxOTUyMzUtMGYzZS00YjU3LTg5YTAtMTBmNmMxYjAyYjcweHcOY29yZS9wYXJhZ3JhcGh5dyQ2NGQyOGMyNS02ZWExLTQ1M2UtOGI5Ny1jNjRiYTM1ZTQ3ZmZ4dw5jb3JlL3BhcmFncmFwaHl3JDExNGYwMjZiLWUxNGUtNDg4Yi04OGY1LTVlMTE4YTVmNWZhYnh3DmNvcmUvcGFyYWdyYXBoeXckZTQzOTQzN2UtYzFjMC00MWMzLWFiOTAtZGU2NTcwODg2NzFieHcOY29yZS9wYXJhZ3JhcGh5dyRkZDViNDZjZC05ZTJjLTRlNGUtODM3YS1mMWU4M2FiMWIxNDF4dwxjb3JlL2hlYWRpbmd9A3ckY2IxNGFkMWEtYjA2Mi00NTFiLWE0NTgtN2RlNGJiMzNkZmM4eHcOY29yZS9wYXJhZ3JhcGh5dyRlMmUyODRhOC1mY2VkLTRlOTEtYjZhYi01MWNmZDhlNDdiMmN4dw5jb3JlL3BhcmFncmFwaHl3JDE0ZmVhMzNhLWI3MjEtNDRlZC05ZjFlLTQzZDExN2I2NWMwNnh3DmNvcmUvcGFyYWdyYXBoeXckZjM3YTU4MTItODM3My00ODQxLWE4MjYtZjA1YmNkOWEwN2I1eHcOY29yZS9wYXJhZ3JhcGh5dyRlZWRhYjVlNy1mZjM3LTRjYzktYWQ0OS03YTMwMTI1ZmYxYWN4dw5jb3JlL3BhcmFncmFwaHl3JDA3MGRjMGNlLTVkYWQtNDgxMy1hYTk2LWMyMWVhMjNmMjhiM3h3DmNvcmUvcGFyYWdyYXBoeXckOTQwYTQ2ZjMtOTExNi00YjRhLTllYTctNmIxYzdkMjgxZDE2eHcOY29yZS9wYXJhZ3JhcGh5dyQzYTAzYmI0Mi04ZTdiLTQzY2EtYWE3Mi0yZWQ2YWY5MjBjM2J4dw5jb3JlL3BhcmFncmFwaHl3JDZlNDYxNTEwLWY0ZmItNGI3NS05NzRhLTVjNWU3YzM0Yzg2Ynh3DmNvcmUvcGFyYWdyYXBoeXckNzQ2YTBmOGEtMGFjZC00ZjIxLWI4NGItNjE3NzBlMjU0YzIweHcOY29yZS9wYXJhZ3JhcGh5dyQzNThlMWExZi0wOTg3LTQ0ZjQtODJjNC1iNzFkYjE1OTJmMTB4dw5jb3JlL3BhcmFncmFwaHl3JDhlNmYxZTlkLWFhMjMtNGRiNS05YWRkLTY1NTIxN2QxZDQzOHh3DmNvcmUvcGFyYWdyYXBoeXckZDUxOWI4NWQtNmFjOC00NDBhLTgwMTQtMDBhYzliMGE2OTA0eHcOY29yZS9wYXJhZ3JhcGh5dyRkMmIwMzk2OC0wYzAyLTRiMjUtODg0Ni05ZDU4MTIyZDhkYzF4dw5jb3JlL3BhcmFncmFwaHl3JDUyOTYyMzgxLTYzODktNDI2ZS1hOWU0LWI4ZjUwNmM1OGQzNXh3DmNvcmUvcGFyYWdyYXBoeXckMTBlMDE4MTItZjk1YS00MDQ1LWEzNGMtZjVmM2M4ZDg4MDI2eHcOY29yZS9wYXJhZ3JhcGh5dyQ4MzAzZTlhNS0wOWZkLTRjYTMtYTBlOC04NjA0OTEyOWI1OWV4dw5jb3JlL3BhcmFncmFwaHl3JDBjNzZiMDExLWZkNzEtNGQ2Mi1iYWZhLWU3MGVlMWYxZDQwOXh3DmNvcmUvcGFyYWdyYXBoeXckOTI2YjhhOWItMzdkNC00NjMxLTkyMDEtZTE2ZmU5NmI4NWZmeHcMY29yZS9oZWFkaW5nfQN3JDViZGI3MjQ5LTA2NDItNDJjYi1hN2FhLWQ0YzM0NzZmNjU3N3h3DmNvcmUvcGFyYWdyYXBoeXckYjBlOWE5OWMtYjQxNy00ZWIxLThjZjctZDk0NzNkYzY1NzQweHcOY29yZS9wYXJhZ3JhcGh5dyRiZTU5YzZjNy1kOGU0LTRkYmQtYjJjMy1hOWRlNTU1NzRmZDV4dw5jb3JlL3BhcmFncmFwaHl3JGY2ZWYwZGYzLTE3NWQtNDI2Mi1iYzY0LWM4ZjEzN2ZlNGRkMHh3DmNvcmUvcGFyYWdyYXBoeXckNGRkOGNmNDQtOTRkMC00MmM1LWFjOTUtYjc3MjE3ODFiMzhheHcOY29yZS9wYXJhZ3JhcGh5dyRjYTU3MmJjYi1mZTdiLTRhOGYtYTk1Ni02MjQyODQ3MDc1Mzd4dw5jb3JlL3BhcmFncmFwaHl3JDhhZjRkYjBkLWMxNGUtNGI3My05MjQzLWI2ZDc4OGFlZmJiNnh3DmNvcmUvcGFyYWdyYXBoeXckNmQxY2QxODYtYzk0Mi00NmU4LTg1MzItZThiOTAzNDUwY2M1eHcOY29yZS9wYXJhZ3JhcGh5dyRjZTQ3MjdmMi0zNWMyLTQ4ODAtYjQ3Mi02Zjg4OWE2YmU2OTh4dw5jb3JlL3BhcmFncmFwaHl3JDY1ZDRhYzE5LTc3YWYtNGU3OS1hZmVkLTE0ZGZhZGVhNTgyYnh3DmNvcmUvcGFyYWdyYXBoeXckYzJjYzc1MjItYTZkOC00N2FmLWE2OWMtNDNkYTFiZWU5ZDU3eHcOY29yZS9wYXJhZ3JhcGh5dyRkZTYwYWRmZS1lNDFiLTRkZjgtYWJiOS01MzA1NTM0ODg2YTB4dw5jb3JlL3BhcmFncmFwaHl3JDdjZmRjYjE2LTVjYjItNDEwNy1hOWRhLWU2ZDE1NTA0ZWJjYnh3DmNvcmUvcGFyYWdyYXBoeXckMzc3ZmQ4OGYtZDg0MS00ZGYxLWE3MGYtNmQ1YzhhMDg1M2NkeHcOY29yZS9wYXJhZ3JhcGh5dyQ5ZDhjOWU4YS02ZTI5LTQ2MGQtYjZlMS04NzQ1NWU4NDI1MWF4dw5jb3JlL3BhcmFncmFwaHl3JDQ4NTQxZmEyLWU4M2ItNDBlOC1hZWJiLTVmZDY2YWEwNTM1Ynh3DmNvcmUvcGFyYWdyYXBoeXckZWEzNWU3MmMtOTI5NC00YTRkLTlhODktNzJhZThiNTQ2Yzg0eHcOY29yZS9wYXJhZ3JhcGh5dyRiMTQwNmE0OC1jMTdkLTQyZGQtYWQ5Ni0wZTgzMWVkZWQwMGJ4dw5jb3JlL3BhcmFncmFwaHl3JDRhMzExZGU4LWMzMWYtNDI4MS1iOGFkLWY2OTAyZTFlNDhkM3h3DmNvcmUvcGFyYWdyYXBoeXckZDMyMmYzZWYtZGZhNC00YWMzLWFiMTUtMjRlMDdmMjg0MDEweHcOY29yZS9wYXJhZ3JhcGh5dyQzODE5YThhZi1mNWRlLTQ3N2YtOGI4Yi0yYTQyMDgzMDhjZDR4dw5jb3JlL3BhcmFncmFwaHl3JDA1ZmQ3YTYyLTA3YzgtNGRjOS04ODlhLWU1MmU4MjkyNDE1NXh3DmNvcmUvcGFyYWdyYXBoeXckZmVhZWY3ZjMtNzJkOS00NGJmLWFhZWUtYTQ0YjI4MzNmNmM5eHcOY29yZS9wYXJhZ3JhcGh5dyQyN2FkNTgyNS02Zjk2LTRkZmEtOTc4MC0yNDI3NWY3MzE0OTV4dw5jb3JlL3BhcmFncmFwaHl3JDdiOGMwYmUxLTRiNTAtNDQ5OC05OTZhLTYzZDQ5NWVmODgwNHh3DmNvcmUvcGFyYWdyYXBoeXckZWNlZjg1ZWUtMDZlYy00MTJiLTkyNzktMmYzZTY1MDY0YWRjeHcOY29yZS9wYXJhZ3JhcGh5dyRkOTg5NzM0OS1iZThkLTQ5OTQtYTFlZS1lMDM4YTU1OWU5Zjd4dw5jb3JlL3BhcmFncmFwaHl3JDg5MzUxZWYwLWQzNzMtNGM0OC1iNDk5LWQ4ZjUwMDIyMTg2Mnh3DmNvcmUvcGFyYWdyYXBoeXckNjA1YTFmNzEtNGVkYy00ODVlLWJjYzctZTE0MTY1NjdjNDg2eHcOY29yZS9wYXJhZ3JhcGh5dyQ2YTlhN2NmYS1hYzZjLTQzNTYtYTRjOS02ZDRjOTU3OTIwZmJ4dw5jb3JlL3BhcmFncmFwaHl3JDY4N2Y4YWUyLWNiOWEtNDE4Yi1hMmY3LWJlZDQwMGE1Y2Y3Mnh3DGNvcmUvaGVhZGluZ30DdyRmNGVkZTA0OS1iYTk2LTQ3NmYtYTZhNi04MWNjZGQxMjQxNzh4dw5jb3JlL3BhcmFncmFwaHl3JGVkMmE5YjJhLWQyY2UtNDQ4MC04ZWE2LTcyN2Y4NDM3MzVkYXh3DmNvcmUvcGFyYWdyYXBoeXckYTQxODYyOTktYTAwZC00MjE5LWFjYjYtNWY3MGI5Y2I3NjFieHcOY29yZS9wYXJhZ3JhcGh5dyQ4MjQ4YjMyYy0xYmVlLTQ4OGMtYWM3Yy00MTUxZWUwZDM2ZGN4dw5jb3JlL3BhcmFncmFwaHl3JGE5MmUxN2U3LTM5ZTMtNDMwZS1hNzllLTcyYTI4NjNjNWI0OHh3DmNvcmUvcGFyYWdyYXBoeXckOWMzNmYwY2EtNTRlMS00MGY2LTgwMDMtYzA2YjI1NDIyMjc0eHcOY29yZS9wYXJhZ3JhcGh5dyQxNmRmNjBkYy0zMTY4LTRiZDQtOWI2Yi05NDQ1NTFhZTQwNWR4dw5jb3JlL3BhcmFncmFwaHl3JDRmYjE3ODFkLWZmODEtNGQ1ZC1iZjQ4LWYxMzA5YTRiMTUyNnh3DmNvcmUvcGFyYWdyYXBoeXckOWI2OGQ4MGMtMWYwNy00NTJiLWI0YmUtODFmZTRiYTRmYmE4eHcOY29yZS9wYXJhZ3JhcGh5dyQ0ZWUzNWRjOS1kMzE4LTRhYjktOGFhYi1iMjA3YzdmNTMxMGF4dw5jb3JlL3BhcmFncmFwaHl3JGU5YWE5M2U1LWFmZmItNGE4YS04MzViLWFjNmI4N2QyNDUzZnh3DmNvcmUvcGFyYWdyYXBoeXckN2RlOGUzMWItZmRlMC00MzFkLWFiNjktZjU0YTIxOGE2YmFkeHcOY29yZS9wYXJhZ3JhcGh5dyQzNDgwZDViYi00YzVlLTQ3ZTAtODBiMC0xZGU5ZGE0NmU1NTJ4dw5jb3JlL3BhcmFncmFwaHl3JGYzZmFhZWU4LTRiZjUtNDYyYS05NGQzLTQ2ZWM0NGE0ZDY5M3h3DmNvcmUvcGFyYWdyYXBoeXckMmNhODczNmYtN2I5Mi00MTI1LWIwYjctNGRhYTgwOGIyYTAxeHcOY29yZS9wYXJhZ3JhcGh5dyQwOTk5MTJhOS1hZDc1LTRiNjMtYjYyNC02NTA5NDUzODk4MTB4dw5jb3JlL3BhcmFncmFwaHl3JDJjZDU3MTNmLTM0ZjQtNDA0Ni1hNzhlLTFhZTE4MzBkYWRiOHh3DmNvcmUvcGFyYWdyYXBoeXckOWVhNGVkZmEtN2IyYy00ODNjLWI4NmItOGM1ODY1NTYzZGI5eHcOY29yZS9wYXJhZ3JhcGh5dyQzOGQxZWU1Mi0yYzFlLTQyM2UtOTMxMS00MjVmYWYxYWQ1MDZ4dw5jb3JlL3BhcmFncmFwaHl3JGUyMmU4MWQwLWU5MmEtNGIxMy04ZjRmLTY0YjdlYzcxZjEzZnh3DmNvcmUvcGFyYWdyYXBoeXckNTJjN2VlZGUtY2E0Yy00NTQyLWE2ZjEtNDg1NzQzN2NjZTFheHcOY29yZS9wYXJhZ3JhcGh5dyQzMzExOWMwMS03ZDU1LTQ0MjQtOGUyNi1kNzllNGZhMjY3MzN4dw5jb3JlL3BhcmFncmFwaHl3JGJjMmFlNTVlLWJjYmQtNGY0OS1iYzA1LTM1MmZlYjNiOGY4N3h3DmNvcmUvcGFyYWdyYXBoeXckOWZmNzI4OGEtZDgwOS00NThjLTgyMDctM2IzYjE5MmEzOGYyeHcOY29yZS9wYXJhZ3JhcGh5dyQwNjQ1YjAwYi0zYzcyLTQwMmYtYWRiMi0wZGMzYTNlMmFlZWF4dw5jb3JlL3BhcmFncmFwaHl3JDFhNjU1YWNkLWQwMWQtNGE2Ni1hY2VkLTY5N2Q0ODUwM2ZjN3h3DmNvcmUvcGFyYWdyYXBoeXckMWM4MTNmYzktYWMwYy00OGU5LTljZmEtYzU0YTA0MzZjYmFheHcOY29yZS9wYXJhZ3JhcGh5dyQ5NDZiY2RiYy1lYTgxLTQyMWMtODIzYS1iMzBkN2Y1NWNiOTd4dw5jb3JlL3BhcmFncmFwaHl3JGIxN2RmOWM5LWVlMzYtNDNjOS1hN2ZlLTgxODZiZDg3MmQwZXh3DGNvcmUvaGVhZGluZ30DdyRkZDg5ZGY1Yy1iZTk2LTQyNDgtYWY3MC03ZGRjYmNkYjkxNDF4dw5jb3JlL3BhcmFncmFwaHl3JDk0YTczOGE0LWU4ZDktNDI4ZC05MzBmLTgwZjhlMGE2ZDZlNXh3DmNvcmUvcGFyYWdyYXBoeXckZGY5MjM0YmUtZDUxMi00NjVjLTljNzAtYzJlZjQ1MzFkODlieHcOY29yZS9wYXJhZ3JhcGh5dyRiYjEyYTliYi0yZWUzLTQ1ZDMtYjM1Yi0xZTc4NzZkMmZmNTZ4dw5jb3JlL3BhcmFncmFwaHl3JDQ1ZWNiNzc3LWY5YzItNDIyYS05NzBjLWFhN2ZlYTU3NzQ0YXh3DmNvcmUvcGFyYWdyYXBoeXckZDYzNDYwMTQtMWRiNy00MDdjLTkwZGItMWJlN2VhM2IzMGEweHcOY29yZS9wYXJhZ3JhcGh5dyQ2ZDhjZWMyMC1iNDAxLTQ5NGYtOTVlNy1hMzUzODRiYWZlMjd4dw5jb3JlL3BhcmFncmFwaHl3JDY2MDJiZjFiLTc5ZmUtNGE3Zi1iZmRlLWIyYzk2ZGQ4ZGMxYXh3DmNvcmUvcGFyYWdyYXBoeXckMjUxZTU3ZWUtYmM0MS00OTAyLWE3MGEtZDY2OTU3YmUyZTRjeHcOY29yZS9wYXJhZ3JhcGh5dyRjZDM0NmJiMy1lODk3LTQ2ZTMtYTljYS1lNzQ1M2YyYmRjMzB4dw5jb3JlL3BhcmFncmFwaHl3JDhlYjU4Zjk2LWFhMWYtNDVmYy1hOTc1LWQ4MGQyY2JkNTVlZXh3DmNvcmUvcGFyYWdyYXBoeXckN2I0NmU2M2ItY2Q4Ni00YzViLTg3ZTAtMGI1ZjFkMmVlNjFkeHcOY29yZS9wYXJhZ3JhcGh5dyQ5ODZhZWI3NS1mOTMyLTRhY2UtOTNlNC05ZWU1M2Q3YzFhMjZ4dw5jb3JlL3BhcmFncmFwaHl3JDg4NDM0NGY4LTg0NDctNDFhNi1iNjdkLWU5Mzk4YjgyZjI0MXh3DmNvcmUvcGFyYWdyYXBoeXckZTI5NDI4MzctY2FlZS00MzJmLWEyMmItYTA3ODcwMzc2ZGY4eHcOY29yZS9wYXJhZ3JhcGh5dyRkNDY3NDMxMS1lZDE2LTRlZTctOTVmOC04NTQwYzgyODM3ZTV4dw5jb3JlL3BhcmFncmFwaHl3JDlmYjAzY2MxLTkxM2QtNDQxNi05OWY5LWZmYzRkZTMzODFlYnh3DmNvcmUvcGFyYWdyYXBoeXckMzBjN2YyNjUtZWU1ZS00ZDkxLThiNDItYmU5YTdjYWE1YTI5eHcOY29yZS9wYXJhZ3JhcGh5dyQ4M2VjM2RmNS01MTFlLTQwYmMtYmRhNC00YmYyMjUyMjdkZTd4dw5jb3JlL3BhcmFncmFwaHl3JDY0ZWM0MTZiLWUyYjItNGExOC04YTI2LTI2MTkxNTcxYzJlNHh3DmNvcmUvcGFyYWdyYXBoeXckOTFkOGZiZTUtOGQ5Mi00OWU0LTkyZWEtODQ4NGU5YTM1N2U2eHcOY29yZS9wYXJhZ3JhcGh5dyQzYTUxNzQ1Ni0yMDg1LTQ3MGMtOTJjZS0wOGQ2ZjU1OGNkNDJ4dw5jb3JlL3BhcmFncmFwaHl3JGYwYTYzYmQyLTkyMzktNGZkNS05ZWU1LTBjMjAwNWZkNzQwMXh3DmNvcmUvcGFyYWdyYXBoeXckMWJiYjg1NjMtZDFiNy00YWQ4LThiOTUtNWI3YjA0MzU5OTFkeHcOY29yZS9wYXJhZ3JhcGh5dyQ4NWVjMzEwYS1kY2QzLTRkYmUtOTMxZS0wMjcwOTk4YWVmZDZ4dw5jb3JlL3BhcmFncmFwaHl3JGZiNjU5NTgyLWU2YWEtNGUwYi1iZDNiLTk0ZGNkZTNjNDNiMnh3DmNvcmUvcGFyYWdyYXBoeXckMjYyOWViMjYtM2NkOS00ZThhLThmZmMtMTJlNzA1YzI2YmY1eHcOY29yZS9wYXJhZ3JhcGh5dyQ4ZWQwMjg0ZC0zYTYxLTQxYWItYThiNy1jYzZiZDgzOTJkMjh4dw5jb3JlL3BhcmFncmFwaHl3JDIwZTViYWM5LTZkM2YtNDJjMi05MjUxLWQzNmUzYzBkZjQwN3h3DGNvcmUvaGVhZGluZ30DdyRmZTRmN2VjNi1kYmI4LTQzOTgtYWZlNy0yODIyNjMwNjIwOTh4dw5jb3JlL3BhcmFncmFwaHl3JDhjMDcxZDFkLTE5ODMtNGUxZS1iOGY1LTFjMzRlYjgxMmYwZXh3DmNvcmUvcGFyYWdyYXBoeXckYTE1N2JjNjMtZGRiNC00NTUxLThjZmQtMGI3ZTM3ODkyOTE5eHcOY29yZS9wYXJhZ3JhcGh5dyQ5ZGQ5ODFiYy03NzYyLTRhZWUtOGRmMy05YmIzZjc4MmFmZmR4dw5jb3JlL3BhcmFncmFwaHl3JDczOTQyMDYyLTViODYtNGZjNC05NWJmLTkzNjFjYTBhOWVmZXh3DmNvcmUvcGFyYWdyYXBoeXckNmExNmIwM2YtZGQ3YS00N2M5LWIyMDgtN2NlOTlhYTYzOWM0eHcOY29yZS9wYXJhZ3JhcGh5dyRlOTljODMyNS1jMzY2LTQ3MzgtOWQ1ZC00NjM5MThmMDYyZTV4dw5jb3JlL3BhcmFncmFwaHl3JGM5YTQwY2Y1LTQ0MTctNDJiNC1hNTRjLWFiZDUzMjI5ZDg2OHh3DmNvcmUvcGFyYWdyYXBoeXckNDEwYTgyYWUtNzVmYS00M2I4LWIyZTAtYjIzZTRjOTJlY2IyeHcOY29yZS9wYXJhZ3JhcGh5dyRmYzFjN2M0Ny00NjI5LTQ1Y2YtYTBhZC0zYjdiMWVjYTFkYWV4dw5jb3JlL3BhcmFncmFwaHl3JGY0MjMyYjgzLWE1OTAtNDk3Ni1iODU3LTU5OTI0OTRjZTY0ZHh3DmNvcmUvcGFyYWdyYXBoeXckMjE3NmQxN2ItOTJlMy00ODg5LThiNTgtNjNjODNmNWRkMDFieHcOY29yZS9wYXJhZ3JhcGh5dyRlYWUzNTdkZC1jM2VmLTQzZGItOWYxNC0xNzc3NGY2ZWEwYzJ4dw5jb3JlL3BhcmFncmFwaHl3JGUzN2E2MzEyLWFhZTctNDNmZC1hYjVhLWFmNTg3ZjdhODVlMXh3DmNvcmUvcGFyYWdyYXBoeXckNGM4NzMyNTMtZGUyMi00ZTkwLWJiMWYtNjI5NzZmNGVmNjhleHcOY29yZS9wYXJhZ3JhcGh5dyQ2YzAwYTFkMy1lZmQzLTRkOWQtODkwYS05NWJhOWMxNGE2Nzd4dw5jb3JlL3BhcmFncmFwaHl3JDY5MzNlNGE5LTExZWMtNGI0Zi05ZjEyLTdhNWFjMjJhNzMxZnh3DmNvcmUvcGFyYWdyYXBoeXckOTY3MzFjZTYtMzE5Mi00MjJmLTg1NjctNDI3ZmY5MmRkOTFmeHcOY29yZS9wYXJhZ3JhcGh5dyQyMDZlOTI4NS03ZTUzLTQ1YTMtODZmNi1hNjExODhmMjZlYWZ4dw5jb3JlL3BhcmFncmFwaHl3JDk4OTg5NDVmLWMzOWUtNDcwNy1hMTFmLTU5M2FhYzc0ZTJjY3h3DmNvcmUvcGFyYWdyYXBoeXckYWU5NzVlYTctZWYyZC00NjY4LThkZmItM2RiNGUwYzhjNGU0eHcOY29yZS9wYXJhZ3JhcGh5dyQ0YTFjNTkxYy01ODBlLTRhZGItODBkNC1mNjc3Y2JmZjdlNjB4dw5jb3JlL3BhcmFncmFwaHl3JGQ4MzE4ZGU0LWVkNzktNDFlOC04YjA5LWQ1OTc4OTFlZTk1Nnh3DmNvcmUvcGFyYWdyYXBoeXckNTNjMDAzYjgtZmU3ZS00MTNlLTk2NGUtNTVkYWRiODY0YWI2eHcOY29yZS9wYXJhZ3JhcGh5dyRmYWVhNzhmNS1jNzM4LTQ4OWQtYWU1MS0zZGVhOTNjOGUzOGF4dw5jb3JlL3BhcmFncmFwaHl3JDJhZWRiZGE5LTJkN2MtNGE5ZC05OTM1LWUwNWFkZTdjNTczZHh3DmNvcmUvcGFyYWdyYXBoeXckYzE1MGJmZGUtNDJjZS00NzVlLThiNmMtYTU4YzQyMGU1ZmY5eHcOY29yZS9wYXJhZ3JhcGh5dyQ0YjE2ZThhMC0yZGYyLTQwYzMtYjcxOS1jZDI5NTlhYzI2ODV4dw5jb3JlL3BhcmFncmFwaHl3JDU1MjQxZWFlLTRlNzktNDRkYS05ZWU5LTE5ZjczMjU1ZWZiN3h3DmNvcmUvcGFyYWdyYXBoeXckYjk5ZmVlM2EtYjk1Ni00MGQ3LWFlNzYtNjJkMTZkNjQzMTA0eHcOY29yZS9wYXJhZ3JhcGh5dyQ3NDRlNTliMy03MGUxLTQ1YWItYmU0OC1jODY2YWYwM2NiMGN4dwxjb3JlL2hlYWRpbmd9A3ckNjg3NjQ1NGUtZmI0ZC00ZmI0LWFlNjAtNjRhMzIxNWFiNmU4eHcOY29yZS9wYXJhZ3JhcGh5dyRkN2NlODVhZC0xZDYzLTRmNGItYmNkYy0xNzJmYzc5ZDA0NTl4dw5jb3JlL3BhcmFncmFwaHl3JDg4NWMzYWU3LTEyZWQtNDkwMi1hZmYzLTAwZWIzZGE0NzliYXh3DmNvcmUvcGFyYWdyYXBoeXckMTlmNmYyMWEtNWI1Yi00YzFlLTkzNDktZjk0YTZkMTZjNDlleHcOY29yZS9wYXJhZ3JhcGh5dyQxMzM2YzkzYi0zNzc5LTQ5MDUtYTEyMy02M2FmOWZiYWQ3NWV4dw5jb3JlL3BhcmFncmFwaHl3JDJlNjliNmZjLTA0NjQtNDNjNC05MzkwLThhNWFmNmI0NDk5NHh3DmNvcmUvcGFyYWdyYXBoeXckNGViNWU5N2EtZDdlNS00YzRjLThlMjItZWJiNzg4ZGQ2NmU0eHcOY29yZS9wYXJhZ3JhcGh5dyRiZWM3MmM3Yy05NzVkLTRkNmItYjBiYS0xMTZhNGRlYjE4NTd4dw5jb3JlL3BhcmFncmFwaHl3JGI3Mjg5Y2Q0LTViYzAtNDMzNC04N2YwLWM0ZTJmNDRkYTY1Znh3DmNvcmUvcGFyYWdyYXBoeXckNDMzMThmNmItMDg0ZS00MWQ5LTk3YmYtZDJkZGU2MDUxNDNheHcOY29yZS9wYXJhZ3JhcGh5dyQ1YjVmNmIyNC03M2ZjLTQ2MTgtYThmYS01MmE1ZjA4MWI3Zjd4dw5jb3JlL3BhcmFncmFwaHl3JDM2MTk0MDU4LWM4NjUtNDg4NC1iNmNjLTNhYjgzOWU3MWQ1Y3h3DmNvcmUvcGFyYWdyYXBoeXckYjg0NzBhMTYtMjc0OS00ZDg3LWFjNTMtOWU5NDQ4NjEzNmEweHcOY29yZS9wYXJhZ3JhcGh5dyQxYjkwODBjMi02NDY1LTQ0MmMtODA4MS1mMDhlYTQ3YzliNDB4dw5jb3JlL3BhcmFncmFwaHl3JDI1ZTYxMjZlLTFlNzEtNGE0OS05Y2E4LTY2ZDVhOTUwNDJkYXh3DmNvcmUvcGFyYWdyYXBoeXckMTdmZGUzM2QtNDFjNy00ZWE5LWI5MmYtZTYzMjc0Zjk1NWEzeHcOY29yZS9wYXJhZ3JhcGh5dyQ3ZTNjYzQ2My04MmVmLTQ0OTAtYTJjOS01YjU1NmQ3ZGI2MTV4dw5jb3JlL3BhcmFncmFwaHl3JDg2OTM2YzJlLTUyZjctNDIwMS04MmNlLWYwNmFhMjVlNzZmYXh3DmNvcmUvcGFyYWdyYXBoeXckMDc1ZTA0MGUtZTZmNC00MDlkLWJjMjUtZjRmOTE0MmYyNDZieHcOY29yZS9wYXJhZ3JhcGh5dyQzZmM1NjAyNS0zYTBlLTRiYWUtOTY4Mi1hMDcyYWE3YTUwMGF4dw5jb3JlL3BhcmFncmFwaHl3JGI0YTRhNzJkLTRhYmMtNGQzOS05NDQ3LWE5MzExZmE1ZWEzZnh3DmNvcmUvcGFyYWdyYXBoeXckZWY2Mzc2MDYtZTZiMC00MDYwLTg0NzQtYzdmMGNiOGI5ZmQ1eHcOY29yZS9wYXJhZ3JhcGh5dyRkN2MxNGUyYi1iNDQxLTQwNmYtODY0YS1iZmExN2RiNTJiYmZ4dw5jb3JlL3BhcmFncmFwaHl3JGFhYTlhODQ5LTNmMjAtNDJlNC1hYjIwLTFkYmNmM2I4ZWU2ZXh3DmNvcmUvcGFyYWdyYXBoeXckN2JkZjAyNjUtMGVmMi00ZThmLWFjNzktNjYwMjIwZmZjYjdjeHcOY29yZS9wYXJhZ3JhcGh5dyRmNWI2MjcyNC0wYzgwLTQ1NWItODM0Mi02NjM5NDA0NWFlNmR4dw5jb3JlL3BhcmFncmFwaHl3JDQ3ODQ4ZDYwLTk2NDEtNDBlYy1hYjljLWE5MjU1NTA2OThkN3h3DmNvcmUvcGFyYWdyYXBoeXckNmFlMDM0ZjItNzlhOS00YzYwLWExNWQtMGVhNWViZjEyOWJieHcOY29yZS9wYXJhZ3JhcGh5dyQ5YWEwMzBiOC1kYmU3LTQ5ODQtYWQ3NS1hYTFkNTE0ODBhZmF4dw5jb3JlL3BhcmFncmFwaHl3JDdmYTVhYTMzLTRhOTEtNDlkZS04MWI1LWUwMWY5MzE3ODUyMXh3DmNvcmUvcGFyYWdyYXBoeXckMjdhNDgzNWUtMDEzOC00ZjRjLTgxMWYtNTA0OWRjNThhZDE0eHcMY29yZS9oZWFkaW5nfQN3JGM4MGViMDIyLTc0ZjctNDMyNi05NzgwLTU5NzVkMzU2YmIwZnh3DmNvcmUvcGFyYWdyYXBoeXckYWFiNzg3NTctODdmMS00YTBlLWE0NzktMGEyZWRjYmM4NzgxeHcOY29yZS9wYXJhZ3JhcGh5dyQxMDVjMjNmNy1iMjBlLTRhZDItODA0NS1kNzYyODNkZDA1NWZ4dw5jb3JlL3BhcmFncmFwaHl3JGVkNzJlMTRmLTE0YmItNDYwMy1iZWVjLTVkMjNiZWMwMGE5Y3h3DmNvcmUvcGFyYWdyYXBoeXckY2Q4ODA3ZGYtOGM2MS00MjY1LWFlMTQtYWE4YzRiN2Q2M2VleHcOY29yZS9wYXJhZ3JhcGh5dyQ3NTIxZmFhMC0zZmU2LTRhZmQtOTI5MC1mOGI0Y2Q5MjJkYmJ4dw5jb3JlL3BhcmFncmFwaHl3JGJiMGVhMzdlLWJhZjktNDZmZS04YzZjLTNhZTZmMjc2ZGRjZHh3DmNvcmUvcGFyYWdyYXBoeXckNDQwOTUyYzctODc4Yy00MTc4LWEyYjAtYWExYzI0NjA0Nzk0eHcOY29yZS9wYXJhZ3JhcGh5dyQ1MGUzYzg4MC1mMDczLTQ4NWMtODBmNy0zNDc2YjcyMDBhYjB4dw5jb3JlL3BhcmFncmFwaHl3JDBhNGEzMzdlLThkNTYtNDI3ZS1iZDg0LTY3YzE4NTM5ZTA2OXh3DmNvcmUvcGFyYWdyYXBoeXckMDc2YjQxZmUtMDBlOC00NWZiLTgxMDUtNjBhYjIzNGE0N2U2eHcOY29yZS9wYXJhZ3JhcGh5dyRiN2ZmZWUyYi0zODc4LTRjNmEtOTk3Yi1hNjBkZDBjOGZkZDd4dw5jb3JlL3BhcmFncmFwaHl3JGQ2YWIxZjE2LTI3ODAtNDYwZi1hZDQxLTk0YTQzNDU0NGYwNXh3DmNvcmUvcGFyYWdyYXBoeXckODU3MTUxOTQtZDUwMS00NTY2LWE2NWYtYmVmNmNlNGM3YjQ5eHcOY29yZS9wYXJhZ3JhcGh5dyRiNmY3MGFhNS04ZWFhLTQyNzgtYmFjYy1hM2MyZWIyODhjNzl4dw5jb3JlL3BhcmFncmFwaHl3JDRmNjU4ODE4LTY0ZmQtNDFjMC1iN2MxLWFmZjYxMDI4OWJkNHh3DmNvcmUvcGFyYWdyYXBoeXckZTdiMTRmOTctZmYxZS00YzYzLWFkNGUtN2I3NmJhMDlhZDE0eHcOY29yZS9wYXJhZ3JhcGh5dyQxNDMyNDkwNC0xOTFhLTQxMzUtYWI2Mi01MzFjZDRjODc2YzJ4dw5jb3JlL3BhcmFncmFwaHl3JDk2YmFmNzMwLWY0ODQtNDE4Zi04Y2E5LTVjNWQ5MjRkMThmMXh3DmNvcmUvcGFyYWdyYXBoeXckNjJkNTI0ZjgtZmQ4OS00MTdiLWFjNTItZTM5ODU2YTY2NWE4eHcMY29yZS9oZWFkaW5nfQN3JDM0ZmFiNmM0LWI3OTEtNGJjMS04ZDUxLWY5MmEyODBkNTM1ZHh3DmNvcmUvcGFyYWdyYXBoeXckMzI5NzQxMjQtMWM0ZC00OTI2LTk2NjYtZjE1ZGNiMmQ5NTBjeHcOY29yZS9wYXJhZ3JhcGh5dyQ1MDgzNzhiOS00OWFhLTQxNmItODBkOC1lN2I2OGZhZDkzNzN4dw5jb3JlL3BhcmFncmFwaHl3JDU2ZDM1YWRlLTg4MjgtNDk5My1iMWY5LTM1ZjcxNmZiOGY3Nnh3DmNvcmUvcGFyYWdyYXBoeXckNDQ2ZjIzN2EtOGNkNi00NmE4LTk4OTItYjUzNDMwN2YxNzAweHcOY29yZS9wYXJhZ3JhcGh5dyQ0ZWFkZGI1MS01M2Q1LTQxZWQtOTFkZi1kZTlhZGE1NjBjZjh4dw5jb3JlL3BhcmFncmFwaHl3JDBiZGEyNThmLWRhYmEtNGYxNy05ZjE1LTk1ZjNlZTMyMjc2M3h3DmNvcmUvcGFyYWdyYXBoeXckNjVlZDhjNTQtMTc2YS00NDEyLWFmMmYtNDdiYzdlM2QyZTJieHcOY29yZS9wYXJhZ3JhcGh5dyRlZGMwMzRiOS04NWQzLTQwMjEtYTBiYi1hYjdiY2Y4YTdhZTR4dw5jb3JlL3BhcmFncmFwaHl3JGM0MTM1Y2EyLTk2NmUtNDVkYi1iZTcwLTRkNzRhN2ZjYzViZnh3DmNvcmUvcGFyYWdyYXBoeXckNGNmMWI0NTMtMTNmYi00MDIyLTlhMDAtZmYyMGE1NzZmM2ZjeHcOY29yZS9wYXJhZ3JhcGh5dyRkNzk5NTk1NC1kZTViLTQ4OWItODYzZi01OTBiYjUyN2Q5ZDN4dw5jb3JlL3BhcmFncmFwaHl3JDVjNDYwMTIyLWFiMTItNGFhNi1hNDBjLTY3MmM4YzQzODBiZXh3DmNvcmUvcGFyYWdyYXBoeXckYzMwYjFhMjctYjY2OS00MWRhLTgwZDktMmIzYmYwNTI4YjIzeHcOY29yZS9wYXJhZ3JhcGh5dyRmNDY3MGEyNy05ZGUyLTQ3OGYtOTUwNi0wYTcxYjU1YjVkMzV4dw5jb3JlL3BhcmFncmFwaHl3JGIwYTAyMTlhLWMzODMtNDY1NS1iMTU3LTZhZTYxNzlhYTAwN3h3DmNvcmUvcGFyYWdyYXBoeXckM2Y4MmJlMDctNjc1Mi00M2ZhLTljMjktYTFmMDk4NDM4NmRmeHcOY29yZS9wYXJhZ3JhcGh5dyQyNTM1MGRjYS0yYmRhLTQ4Y2YtYmI0Ni00NDQwODM3NDViYTV4dw5jb3JlL3BhcmFncmFwaHl3JDJkZjJmNTVmLWUxMzMtNDUyYi1hMjcxLTljM2I5OTkwNDkxZnh3DmNvcmUvcGFyYWdyYXBoeXckNTE4YzUxYTgtZjZmZS00Y2FiLWE5Y2YtNzNlMzgyM2EzN2JmeHcOY29yZS9wYXJhZ3JhcGh5dyQ1ZjQ4NWYyNS1hMGYyLTRlNzYtOWVhZi0yZDc0YmY0ZDg2MDR4dw5jb3JlL3BhcmFncmFwaHl3JDIzOGMxM2Y1LTA2YmUtNDJjNC1hYzQwLTRjNjMwNzBmODY2N3h3DmNvcmUvcGFyYWdyYXBoeXckZTYwZTFmMjEtMTgzOS00M2VmLThiNjMtNTMyNDYxN2YyODVkeHcOY29yZS9wYXJhZ3JhcGh5dyQwZTg0YzczOS02ZmMzLTRlZWQtOWY0Ni00ZjcyZmI3MjQyYWN4dw5jb3JlL3BhcmFncmFwaHl3JDlhMmVkYmJmLTE2YTItNGM1MC04NDZhLTZiMGMwZGNhMGNjOHh3DmNvcmUvcGFyYWdyYXBoeXckYzY1ZTUyNWUtNmI1OS00MjFmLWJjNGUtYjI0ZmU5YThlNmU2eHcOY29yZS9wYXJhZ3JhcGh5dyRmZTU3MTFjNi0zNDdkLTQzMDMtYmEwNC04Njk5MDQ1Mjc0NjN4dw5jb3JlL3BhcmFncmFwaHl3JDM2ZjczZTQ2LTZjMTItNDYzMS1iYzNkLTRmMzZiZjAxMzJhZnh3DGNvcmUvaGVhZGluZ30DdyQ3Y2IwNDZjMy02OTZkLTQ3NjMtOWU3My1kNWIzMDhmY2E1Mjl4dw5jb3JlL3BhcmFncmFwaHl3JGNlOGRjZjYwLTJhOWUtNGM5ZS1hMmRjLTgxYjJlMWJkMTJkM3h3DmNvcmUvcGFyYWdyYXBoeXckMjUxNGU1Y2MtNTMxYy00ZjQyLTlhNGEtYzhjYjFjMWViNmQ4eHcOY29yZS9wYXJhZ3JhcGh5dyRjMjc1NWM3NC0wZDNkLTRiNzEtOTZjYi0wN2M4MTVkMTljOGN4dw5jb3JlL3BhcmFncmFwaHl3JDU5NGEwMjJlLTNmZTYtNDIxNS04YjRlLTJjYzViZTFmZTQyZnh3DmNvcmUvcGFyYWdyYXBoeXckNzZiZTlmYTYtNTBkNy00ZWJkLWFjZjQtOTNlMmJhMzMyMjNkeHcOY29yZS9wYXJhZ3JhcGh5dyQ4OWQyMjdmOS1lMzM0LTQ1NTYtYjc0ZC0yYjA1OWE4NzEyNzV4dw5jb3JlL3BhcmFncmFwaHl3JDZiZGVmZmJhLTE2NzMtNDEwYi1hMTRlLTZjN2U2YTE2MjhlN3h3DmNvcmUvcGFyYWdyYXBoeXckN2IzN2ZhYjAtMjdjZi00Y2NiLWE5OWEtYjIyODMxOTNlZGUyeHcOY29yZS9wYXJhZ3JhcGh5dyRiODIxODNmNC1kYzUxLTQwZjktODRhNS1mY2RkNDA3NDRhMzh4dw5jb3JlL3BhcmFncmFwaHl3JDU4YzMwZjAzLTJhNDEtNDVlMC05MDNmLWU2M2IxYzU4MWI5MXh3DmNvcmUvcGFyYWdyYXBoeXckODBlYTJhM2ItNmVlYS00OGY5LTlkMTEtNTlkYjM3OGEyMjc5eHcOY29yZS9wYXJhZ3JhcGh5dyRjNjBiZDkyOS0zZWNkLTRjY2EtOWM4ZC1hZjhjOWFjNDJiMWJ4dw5jb3JlL3BhcmFncmFwaHl3JDJmNmViNmRjLTViNDEtNGQzYS04ODM2LTM1MDJiYWYyMjZjMHh3DmNvcmUvcGFyYWdyYXBoeXckMmU2ZmNmOTEtZTIwOC00NjQ3LThjODctNzVjNDJiM2I5MWY0eHcOY29yZS9wYXJhZ3JhcGh5dyQ0MmZlZjlkMC05NzNkLTQ5YTMtOTllMC0wMTFhNmI4NTUzNjF4dw5jb3JlL3BhcmFncmFwaHl3JGQ1YTA4ZWYzLWUxZDItNDU3ZS1hNDgzLTBhNzExYWQ1ODFhNnh3DmNvcmUvcGFyYWdyYXBoeXckNWExZmYwNzEtZWI2ZS00Yzk4LWIxMzUtY2Y4MDBmYzViYTcweHcOY29yZS9wYXJhZ3JhcGh5dyQzOGYxZTllMi1kYTg3LTRmOGYtYmVjNS02MDUxM2FiNTRmOTl4dw5jb3JlL3BhcmFncmFwaHl3JGIwZjRmZDIxLTI1MTUtNDVlZi04YWM3LTQxMmU4OGRiZjZlZHh3DmNvcmUvcGFyYWdyYXBoeXckNjRiNmY2ZmQtNzBkZC00ZWZiLTkyYzItYjViNDQ1OTA2ODk2eHcOY29yZS9wYXJhZ3JhcGh5dyQzYmY2Y2VjMS1kYmRmLTRiMDQtYWI5Ni0yZDlmNTI0MmJkNDZ4dw5jb3JlL3BhcmFncmFwaHl3JGVjNDdhNzUwLTNmN2MtNDEwMi1hZTE2LTlkYWNhMjdmMWRmOXh3DmNvcmUvcGFyYWdyYXBoeXckZjA0YWE1ZTgtNGZiNC00NjhmLTliNDgtMGI4ZDk0YTQ1MWNkeHcOY29yZS9wYXJhZ3JhcGh5dyQzZjEwOTQ2MC1hZDc3LTQxNDMtOGI2My02OGVjMDg3NGFhZTV4dw5jb3JlL3BhcmFncmFwaHl3JGEzZTVkNjhjLTM4MDYtNGI3NC04MWU1LTcxMDUwY2JkMzUxM3h3DmNvcmUvcGFyYWdyYXBoeXckNzlmNjcxZDgtYWIwMy00MzhiLTlhMWUtMDE2MGY1ODhlZTZmeHcOY29yZS9wYXJhZ3JhcGh5dyQ3ZjFiMjA0ZS1jMDMxLTQyY2ItYTllNC0wYzhjZDc4YWE0ZWZ4dw5jb3JlL3BhcmFncmFwaHl3JDg5NjRmMDNlLTJlMWYtNDUzZi05ZWIxLWFkOGNmMWMwOTVmYnh3DmNvcmUvcGFyYWdyYXBoeXckNWY3ZGJjZWUtNjc3MC00NThmLWFjZWMtMTc1MWM5ODFiZjgweHcOY29yZS9wYXJhZ3JhcGh5dyRkZmU2OGQ0ZC05NjVhLTRmYTgtYTUzMC1kNDU4ZjYyYmMwMzh4dw5jb3JlL3BhcmFncmFwaHl3JGRiNmIzZWZhLWRiOTAtNDExOC1hMzE1LTQ0ZGMyNTIzMWUwZHh3DmNvcmUvcGFyYWdyYXBoeXckZWQ0MDA5NTktYTQ1Yy00OGExLWE3NmQtN2RhY2ViZWMwYTIzeHcOY29yZS9wYXJhZ3JhcGh5dyRhMzlmZTJkZi1jYzg1LTQ5OGQtOWJkYS0wMmMwMWM2MzAxNWF4dw5jb3JlL3BhcmFncmFwaHl3JGFiNWE4NTY2LWEyOTEtNDEzNS04MWRmLWU1ZTRkZTgxYjVkN3h3DmNvcmUvcGFyYWdyYXBoeXckYWJmZmZmYTQtNjgxZC00MTM5LTgzMGYtZWUzOWViNTBmNThieHcOY29yZS9wYXJhZ3JhcGh5dyQyN2I0NGIwOC0xODEzLTQ2NDgtYTk5Zi1lMmQ1ZmVkYmM5YWF4dw5jb3JlL3BhcmFncmFwaHl3JDYzNThjZDIyLTM4ZmMtNGVkZC04ZmZkLTE4ZGY4NTA5M2M5Znh3DmNvcmUvcGFyYWdyYXBoeXckZDY4MWEwNDEtZTVjOC00N2YxLWE0ZDAtNTdlY2MyZjU4M2QzeHcOY29yZS9wYXJhZ3JhcGh5dyQ2MTFmYzFiYy0wNzBhLTQyNWEtYmY0Ny05ZWVmZWExMDE1N2J4dw5jb3JlL3BhcmFncmFwaHl3JDA3ZmJiYTM5LTA5NGQtNGRmMC1hYmVkLTZiODlmYTExZjYwZnh3DmNvcmUvcGFyYWdyYXBoeXckMTIwNWEzNzktZjQxNy00MzFmLWIzMGItZjg2MWE4MzVjNTg4eHcOY29yZS9wYXJhZ3JhcGh5dyRlNjk4OGIyMS0xN2Q0LTRlZGMtYWVmNy03NzI2NDVkZDM1MzJ4dw5jb3JlL3BhcmFncmFwaHl3JDg1NGU0ZTBlLTZiYWYtNDczNS04NDBjLWU1YzczMDQwNzVhOXh3DmNvcmUvcGFyYWdyYXBoeXckNWI0NTRkZjItYjU5ZC00NDI3LWIzMDctMWNmYTMzNDA4ZDM4eHcOY29yZS9wYXJhZ3JhcGh5dyQ5MmMzMGUxZi1mZjBkLTQ5MTEtYjIwMS1lMTQ4MThjNzExMTd4dw5jb3JlL3BhcmFncmFwaHl3JDM0NzcwODY5LTRiNzYtNGZhNS1iNjZmLWYxMmU1YzA5ZDkxMHh3DGNvcmUvaGVhZGluZ30DdyQzNzI4MTRkZC05NGM0LTQ1ZWYtYjc3MC1lNzg5YjY3ZjhjYjF4dw5jb3JlL3BhcmFncmFwaHl3JDAwZmJhYmQ0LWY2ZDEtNGE4OS1hMDZlLTg1MzBlZDA5MDlkNHh3DmNvcmUvcGFyYWdyYXBoeXckOTNjNjZlNzUtYTUwNi00MzM2LTk5MjUtMTA1MzFjZDczMWFheHcOY29yZS9wYXJhZ3JhcGh5dyQ4NTMyOGRlMy00ODdjLTQwYmItODZhNC00ZmM5YTNjZDQzZGN4dw5jb3JlL3BhcmFncmFwaHl3JDQwMmZhMzE0LWU0MGMtNDYyZi04ZDY4LTRjOGUyYTIwNDNkYnh3DmNvcmUvcGFyYWdyYXBoeXckZDcxZDY3ZTItZGJhNS00MDAxLThhYWUtYzYxMjAzYjMyOTMxeHcOY29yZS9wYXJhZ3JhcGh5dyQyM2Q3OWFlYi04NzM1LTQ0OGEtODBlZS0xMjZiZjU2NjcxMzV4dw5jb3JlL3BhcmFncmFwaHl3JDEwYjRlNjAwLTY4MzctNDU1Zi1hYTI1LTA2YTQ3Yjg0MzM1OXh3DmNvcmUvcGFyYWdyYXBoeXckZWM3NmJkMzMtYjM2Yi00ZTE3LWE5YzItZTc2Yjg4YTUyMTAzeHcOY29yZS9wYXJhZ3JhcGh5dyRlY2NjYjY2YS05OTAxLTRhMTEtODY4ZS0zMmZkMjMyYTg3OTZ4dw5jb3JlL3BhcmFncmFwaHl3JDM0ZTczZTc1LTMwMjktNDAyOC1iOWQwLTEyZWIyY2IyNzhkZXh3DmNvcmUvcGFyYWdyYXBoeXckZWFjZGQ4YTQtNDUzYS00ZjZjLTg0YTYtYWZhZWIyZjQ1MjIzeHcOY29yZS9wYXJhZ3JhcGh5dyQzZDZmYmVhZC0yMWUyLTRlYmUtOTg2Ny1kZTc3MGM5ZTU0NzB4dw5jb3JlL3BhcmFncmFwaHl3JGY2MjU0YjhmLTgyYmUtNDFiMi1iYmJhLWFhNWYwNmQxNTFjN3h3DmNvcmUvcGFyYWdyYXBoeXckZTAzN2IzMjUtM2Y1NS00ZDY1LWJlM2QtYjQwZWQ1YjY4Y2Q3eHcOY29yZS9wYXJhZ3JhcGh5dyRmYTI1MzQyOC1kNDNkLTQwYzctOTZiZS1iOGY4NjUzNGZlYjB4dw5jb3JlL3BhcmFncmFwaHl3JDM4OTk0MDIwLTY5YTYtNGY1ZC04MzMyLWIyMDUzNjAzODE5Ynh3DmNvcmUvcGFyYWdyYXBoeXckNWQ0NDc4MGEtMGNmYS00MzYwLWI1OTItMTk0MTFhY2RlZWRleHcOY29yZS9wYXJhZ3JhcGh5dyRmNGI2NDRkMC0zZTJjLTQ5ZGEtOTAzNS0xMTUyODA2NDEyYmJ4dw5jb3JlL3BhcmFncmFwaHl3JDQ2YmU4NTlkLTM2ZDAtNGY5Zi05YzQ2LTU5YWI3NTY3MTgwNXh3DmNvcmUvcGFyYWdyYXBoeXckNmIwZTZhZDQtNjVkNC00ZTEzLTg2NDYtMmM2YzlhNmNkMWUyeHcOY29yZS9wYXJhZ3JhcGh5dyRmYjFjM2RlOC1jMTFiLTRjMjUtYTE3ZS0wNzY0NWUwMzc5MTN4dw5jb3JlL3BhcmFncmFwaHl3JDEzNTI4MTIyLWEwN2QtNGQ5Ny04YmIwLTU0ODZlMmM0MmQwY3h3DmNvcmUvcGFyYWdyYXBoeXckYjRjYjljYTctZDI1Ny00YmJmLTlkM2ItMDI0NjczNTljMTc5eHcOY29yZS9wYXJhZ3JhcGh5dyRlZjFhZTA1YS1jYTI2LTRhMjUtYWI5OC1lNzU5ZmY2OTNjODZ4dw5jb3JlL3BhcmFncmFwaHl3JDRiNjgwOTRkLWUzNGUtNGJjNC04YTVjLWI0ZWJhMWUxYzkyZnh3DmNvcmUvcGFyYWdyYXBoeXckZmEwYjhiMGQtMGJjOC00ZTRhLWJkNDctM2IzNTdmOTA4NWYweHcMY29yZS9oZWFkaW5nfQN3JGM3NGVlZTQwLTc3MmEtNGY2ZC1iMjE5LTQyMWY3YjhkYTE1N3h3DmNvcmUvcGFyYWdyYXBoeXckZjQzNDQxMWMtMzY4ZC00NzhmLTlkOTUtZDI0NTNmY2EyODBheHcOY29yZS9wYXJhZ3JhcGh5dyQ1MGFiN2U0MC03NDhkLTQwZWItOTBlYy02M2JiMjZjODE2ZjJ4dw5jb3JlL3BhcmFncmFwaHl3JGM2NTg5ZWNkLTg3YjktNGEzMC05NzM4LTlhOWEwMDViZmM4Ynh3DmNvcmUvcGFyYWdyYXBoeXckODlmNDRlYWEtOGM2NS00ZDg2LTk5ZTQtMzcxMGU1OGM0ZTkzeHcOY29yZS9wYXJhZ3JhcGh5dyQyY2QzNDIxMC1jNDM3LTQ1MDktYjI3Ny1jMTVlYmIxZDU2MDN4dw5jb3JlL3BhcmFncmFwaHl3JDhhY2I1MWQ3LTQzYzgtNDkxOC1hMjVhLWExMjA5NWNjY2Y0Znh3DmNvcmUvcGFyYWdyYXBoeXckNWEwMDY5MGEtN2EwMy00Yzk4LTgyZmEtMjUyZTQ4ZDBlM2UyeHcOY29yZS9wYXJhZ3JhcGh5dyQzNjI4ZDc5YS1mNTkzLTRhODQtODJhOC0yNDdhMTc3NGVlODR4dw5jb3JlL3BhcmFncmFwaHl3JDcyYjUzMGY2LTFhYWMtNDRmYi05MjY2LTc3ODBjNzU4YzYzYXh3DmNvcmUvcGFyYWdyYXBoeXckMWUwMDc2ZDItYmExNy00NjA1LTkyNjMtMGIxZjlhYmE4ZTEyeHcOY29yZS9wYXJhZ3JhcGh5dyQzYzczYTNmZi1hYjIyLTQ1NWUtODMxNy0wYjM5MWFjNTFmYzB4dw5jb3JlL3BhcmFncmFwaHl3JGM0Nzg0ZjA5LWQxZWItNDA5ZS1iYTBhLTE1MTk3ZmE0MWIxZXh3DmNvcmUvcGFyYWdyYXBoeXckNTY3ZWQzZWItZDg0Ny00MzEzLWIyZTAtZDQ2MzBkOTU3MjE1eHcOY29yZS9wYXJhZ3JhcGh5dyRjMDc5OWIzMi00OGRlLTQ4YzAtYThjNy1lN2FlZmZmNWZlMTh4dw5jb3JlL3BhcmFncmFwaHl3JGE4OWIzYzgxLWEwNmMtNDEzZi1iMDJmLTlhYzZjZjlkYjViMnh3DmNvcmUvcGFyYWdyYXBoeXckMmY3NDdjMDYtMjhjNy00NmJhLWJiYTctMzBiYjU1Yjk4MDdmeHcOY29yZS9wYXJhZ3JhcGh5dyQ5NjY2YmM0Zi0yM2ZiLTQwODQtYWU0Ny1lZWRlY2Q5MTVmY2F4dw5jb3JlL3BhcmFncmFwaHl3JGMwNmVlMWJhLTgzYTEtNDg3OC05N2ZkLWY0NjA1MzU5NDkzY3h3DmNvcmUvcGFyYWdyYXBoeXckZWZmMTlhODAtN2QzMS00NzY1LWI5MDQtMzYxNjExNzM4MDE2eHcOY29yZS9wYXJhZ3JhcGh5dyQ0M2M4OWFiMy1kNDU3LTQ0ODAtODYxNy1iZDZkODdmNjIyZmZ4dw5jb3JlL3BhcmFncmFwaHl3JDc3NGNlYTM1LTQzMTctNGVjNy1hMWE5LTg5NzI4ZGI2ZjA0OHh3DmNvcmUvcGFyYWdyYXBoeXckOWEwMWUzMTAtYzk4Zi00ZDY2LTk2YjgtMDBiNWNkNWUzZWRjeHcOY29yZS9wYXJhZ3JhcGh5dyRlMTVkYjJmZC05NWUxLTQxYWUtYTVkNi00ZTMyYjRlMDZhNDN4dw5jb3JlL3BhcmFncmFwaHl3JDJhZjNhM2JhLWFkYTEtNGIxZC1hZTc5LWViZWNkNmZhNWUxOHh3DmNvcmUvcGFyYWdyYXBoeXckNjJmODVjOTYtYjhlMi00Mjg4LTk4YWMtNzZmZWJkMGFiYjY2eHcOY29yZS9wYXJhZ3JhcGh5dyQxZTFlYzkzYS1kNjA5LTRlMDEtYTIzOC0xZTA2ODJhMDdlNzR4dw5jb3JlL3BhcmFncmFwaHl3JDhjYjlkMmRkLTUxZDUtNGM1Yi1iNTcwLTQ2Y2Q4ZDM3NjA3Ynh3DmNvcmUvcGFyYWdyYXBoeXckNzBkYTlkZTYtMzc5Ni00ZTY1LWJjZmEtZjIyZGVhMjEyNDdheHcOY29yZS9wYXJhZ3JhcGh5dyQ0YjE2NTYyYS1hNTI1LTRlNDEtYTY3MC03NGM1MWEwZTEwNjR4dw5jb3JlL3BhcmFncmFwaHl3JDM1MTRjMDVmLTQ5YjYtNGM3Yy05YjgwLWY0OWExMmY2N2NlMHh3DmNvcmUvcGFyYWdyYXBoeXckYTQ3OGI5MDYtYWIwMi00NGYyLWI1ODUtYThhMmVmNDcyNDg3eHcOY29yZS9wYXJhZ3JhcGh5dyRhMGYzN2YxMy0zMTM4LTQ3MDUtYmM2MS1lYmJiM2E4OTU5ZGV4dw5jb3JlL3BhcmFncmFwaHl3JDcwZjY0MjhlLTFjODctNGFhMy05ZTdlLTUwN2IyZGQ3NTg0M3h3DmNvcmUvcGFyYWdyYXBoeXckZDNmMmRkZjctYWRmYy00ZjMwLTkyMTItYjcxZGE5ZGRmNzc1eHcOY29yZS9wYXJhZ3JhcGh5dyRiZjc2M2U0Mi0zZTYwLTRhYjctOGVkNS04MTBlNTNlYjc1YWF4dwxjb3JlL2hlYWRpbmd9A3ckNjRhZjU0MDAtNzZjNC00ZjQzLWJmYWItNTkyMGNmMDVjODc1eHcOY29yZS9wYXJhZ3JhcGh5dyQ1OTQwMzIyMS1hNWY4LTQzNTgtYmRlYi1lOTRkMWVmZGM4NTd4dw5jb3JlL3BhcmFncmFwaHl3JGE0Y2RlOGRlLWY0ODAtNDNjZi04NTQwLTRkMDMzNjc2NzY5Y3h3DmNvcmUvcGFyYWdyYXBoeXckYzRhMDQ3NWEtNThmMy00ZThlLWIyOWItOTAzNmNjNGU1NzI2eHcOY29yZS9wYXJhZ3JhcGh5dyQ4NDAxMmQyYy1mM2UxLTRhYzgtYjNiMi1lMDVhNDkyMGFmZGV4dw5jb3JlL3BhcmFncmFwaHl3JGNkNDI2Mjk1LWUxY2QtNGYzZC1iYmE5LWFjZjQ1NTMzNjIwZnh3DmNvcmUvcGFyYWdyYXBoeXckOGFmNjQyMGYtOTNjNi00NTNiLWE0ZGEtODNlMTBiMjZlNmNieHcOY29yZS9wYXJhZ3JhcGh5dyQ5ZmY2OThjMi01MjMwLTRkNDAtYWEyMy05NWJkYjFiZjFlMTN4dw5jb3JlL3BhcmFncmFwaHl3JDg5YzRjMDZmLWI2Y2ItNDFiNy1iNmRkLWM5MzJjZjBjYzUzYXh3DmNvcmUvcGFyYWdyYXBoeXckM2NmZTAyMmEtNTJlNC00ZWM1LTk2MjAtYzQ2OWE0MzhlNzk0eHcOY29yZS9wYXJhZ3JhcGh5dyRhOTJiMjFjMC0wZDU3LTRjZTQtYjlmNy03ZTY3Njg1ZDZiYmJ4dw5jb3JlL3BhcmFncmFwaHl3JGRjNGM4MjM3LWY1NTEtNDIyMC1hZDJjLWNmN2NmN2I0NzU2NHh3DmNvcmUvcGFyYWdyYXBoeXckNDY4M2NlYTEtNTI1OS00OGQwLWJmMDYtOTkwMDU5NGMyODI5eHcOY29yZS9wYXJhZ3JhcGh5dyQ3NWI5ODhiMC1kYzdmLTRiODctODQyMy0wMGQ3MzE4NGVmNDB4dw5jb3JlL3BhcmFncmFwaHl3JGJkYjZlMmE4LWUxMDAtNDk1Zi05ZmVhLWU3ODdmNjViYzgwY3h3DmNvcmUvcGFyYWdyYXBoeXckMGJiNzU4ZGUtMTZhMy00MTdiLTg2MDItOTJmZWNkODAxMTRkeHcOY29yZS9wYXJhZ3JhcGh5dyQ1NjAwZmFlOS0wMjAwLTQ3ZjUtYWY5Yi1lMGQ4NTIyMThlM2R4dw5jb3JlL3BhcmFncmFwaHl3JGYzZDU2NGM5LTZmZmMtNDViNC1iMTBhLTgzMjQyNzUxZGMyM3h3DmNvcmUvcGFyYWdyYXBoeXckODJhYTRjMWItYTM1Yi00MTI2LWJmMzctMTAxMjBiOTJjZTUweHcOY29yZS9wYXJhZ3JhcGh5dyQ5NjE2MDRkYS04ZDM0LTRlMjEtYjE5YS1lZGVkMTc4NGY4NzR4dw5jb3JlL3BhcmFncmFwaHl3JGY5MDg2M2I1LTNiZTEtNDgyYS04OThmLTJjM2I3MmU5MjQ2OXh3DmNvcmUvcGFyYWdyYXBoeXckOWYxMGQ2NGMtNTkwMS00MWE1LTlhM2ItZjU2NTBlZTdhZjM0eHcOY29yZS9wYXJhZ3JhcGh5dyQ4MzQyMjAzYy04MjM2LTQwNTAtODMzYS1lZTkzNTBiMzBjY2Z4dw5jb3JlL3BhcmFncmFwaHl3JDM3YTIxOGRkLWYwNWItNGVkZi05NTA1LTM4OWM1OGZiZjE5OXh3DmNvcmUvcGFyYWdyYXBoeXckNTM5MTI1NzMtNWRhNC00OTYwLWFhYWMtNjMyMmFiYjQyNGNleHcOY29yZS9wYXJhZ3JhcGh5dyQ2M2E5NTVlMC1lYTQ1LTQ2ZjAtYjQ0Ni1lMzM2ZGUxODdjNTZ4dw5jb3JlL3BhcmFncmFwaHl3JGU1N2UxY2ZjLTQ4ZDUtNDFiMC05NWI2LTVhNDI1MWIwYzgyNnh3DmNvcmUvcGFyYWdyYXBoeXckMGRhMTFmYWEtNzhlOS00MTVmLWI4ZTAtYzNhNWUzZDlkYmRjeHcOY29yZS9wYXJhZ3JhcGh5dyRhNmIwM2M3NC03MDJlLTQ1ODEtYTRiNy00OTkwNGIzZDVmOGZ4dwxjb3JlL2hlYWRpbmd9A3ckMjE0Nzg2ZGItOTZiZS00NDY4LTkxY2EtMGQ3MDdmNGVkMzVjeHcOY29yZS9wYXJhZ3JhcGh5dyQxMDVkNTUwZi1mOTkzLTQ5N2UtYmZmOS1iNGY4NGMyMzZiMDR4dw5jb3JlL3BhcmFncmFwaHl3JDgwYjQyNmY4LTQ5YWMtNDA2Mi04MTc5LTY0NDI1M2VkMGFmMnh3DmNvcmUvcGFyYWdyYXBoeXckMGUwMmM4MTAtYWNkYy00YTdhLWJkZWUtMjhlN2ZiMjQwZGEweHcOY29yZS9wYXJhZ3JhcGh5dyRkZGUxMGE5ZC05MDI4LTQ3NTctOTdiNy0zNDkxYzE4MzQ1NGJ4dw5jb3JlL3BhcmFncmFwaHl3JDMzYWIyYTI0LTcxMmQtNGM2Yi1iZThlLTMyNmQzODk4MTAxMnh3DmNvcmUvcGFyYWdyYXBoeXckNjhjYmNkZWMtODMxOC00MzUxLTljYzQtYWQxODEzMDg2OTdmeHcOY29yZS9wYXJhZ3JhcGh5dyQ2ZmE3NjdhNC1mZDkwLTRkMWEtYmFlMy00MzM1ODYzZmUxZTF4dw5jb3JlL3BhcmFncmFwaHl3JDQ1ODA1NWYxLTYxOTctNGEyMS05ZjMzLTg4OGNjNmZhNDdkMnh3DmNvcmUvcGFyYWdyYXBoeXckNzgzOTZhN2EtNzE5Yi00MGUwLWExOGItOTgyOTFhNmMxMzU1eHcOY29yZS9wYXJhZ3JhcGh5dyQwMmU4Y2Q4Yy01NzFiLTQyMzktODNjOC01YjhiNGY1OWNhMDJ4dw5jb3JlL3BhcmFncmFwaHl3JGRjNTYyZTM1LWQwM2QtNGNkNi05MjAxLTIyZmZkZThjZDc3ZHh3DmNvcmUvcGFyYWdyYXBoeXckZDYzNTZhYzAtYmJiYy00NTAyLTk5NGUtMTNlMjdmOWRkMDVheHcOY29yZS9wYXJhZ3JhcGh5dyRmNzE0YmM1NC1hZTI5LTRmZDUtYTA5Yy0wMmU2ODA1M2U4ZmR4dw5jb3JlL3BhcmFncmFwaHl3JDRkNTNlNzM5LWVkM2QtNGJmMC05MDM2LTYzMDgwZWNjYmFkN3h3DmNvcmUvcGFyYWdyYXBoeXckMDA0NDI1ZWItNzQxYi00YWUzLThmMGItYzI2ZDAxNTg0NDIxeHcOY29yZS9wYXJhZ3JhcGh5dyRlZTE5NTczZC1iMDUwLTQyM2EtYjIzNC0wYTBmYzlkMGI2YTF4dw5jb3JlL3BhcmFncmFwaHl3JDllN2E2YjJhLWY1OTYtNGM4ZC05MTQ5LWQyNGVkMjk4M2Q0N3h3DmNvcmUvcGFyYWdyYXBoeXckNzk4NmVhZTgtMTU0Ny00OTBiLThkYjItOTM3YzgzMGNhZDJmeHcOY29yZS9wYXJhZ3JhcGh5dyQ2NjQwMjk3Ni1lYzc3LTRjY2ItYmYxYS1iMTljNDZmNWZjYzJ4dw5jb3JlL3BhcmFncmFwaHl3JGZlZjljNWI4LTYzMTctNGM5My05ODYwLTg0MWZkYWI1ZWVlZXh3DmNvcmUvcGFyYWdyYXBoeXckNzZjNzQwMGMtNjNlOS00NmNmLThmZmQtMzc4Y2VkMzk1Yzc0eHcOY29yZS9wYXJhZ3JhcGh5dyQwNmFmOWNiMy04MDBjLTRmZjMtYjg0ZS0xYjVjMWVlZjgwYTl4dw5jb3JlL3BhcmFncmFwaHl3JDhlOTY0ZDgzLTZkMWMtNDcxMy05ZjJiLWZiNDkxMmY2ZDNlM3h3DmNvcmUvcGFyYWdyYXBoeXckYTFjMzgyN2QtZTI1OS00MmE4LWI2MDktMWJjZmUwYjQ1MzgxeHcOY29yZS9wYXJhZ3JhcGh5dyRlMDI3ZTU2Ni0yNmVkLTQ3YzEtYTJkNS01NjhlOTdhNTkyZTF4dw5jb3JlL3BhcmFncmFwaHl3JGY2OGM1MDJlLTZjZTEtNGFhNy04Y2MxLWQ4NWRhOTJiOTFmNHh3DmNvcmUvcGFyYWdyYXBoeXckMDJmOGUyYmItNzBjNy00MGM3LTgyYzEtNmI0MzI5N2NlOGRieHcOY29yZS9wYXJhZ3JhcGh5dyRjNTBlODgxOC04NzBkLTQ0NzUtYWUzNy0zZDAwYmNmZWY5OTB4dw5jb3JlL3BhcmFncmFwaHl3JDBhNzQyZGE4LWY0YjktNGRmNS1iY2E4LTVjZGE2ODUxZGYzM3h3DmNvcmUvcGFyYWdyYXBoeXckNjY5ZjUwNmEtZjZlNS00YjFhLWJhYWQtODdjYjI5ODAzZjMweHcOY29yZS9wYXJhZ3JhcGh5dyRiM2U3NjA2YS0yZDEyLTQxOTQtODFlOS1hZjgzZjJmNzM2ZTl4dw5jb3JlL3BhcmFncmFwaHl3JDk3YTRmYjRhLTJmYjgtNDhkZC1iN2NkLTY4MDNhZTM3MDk1Nnh3DmNvcmUvcGFyYWdyYXBoeXckMzJkYWYwMjgtMTU5MS00YmIxLWEwMTYtNjBiMGNlZjYzYWMweHcOY29yZS9wYXJhZ3JhcGh5dyRhMGQwMjMyNi0wMGQ2LTRlNTItYjRiYS1hMWQzNWEwMTE3Y2N4dwxjb3JlL2hlYWRpbmd9A3ckZjk0ZDI5ZmYtNTA1My00Y2ZhLWFhOTEtOWU1MzFkMDIxYzhkeHcOY29yZS9wYXJhZ3JhcGh5dyQwMTA4NmQxYy0xNWIyLTQ3ZTctOWEzNy1mZDcwZWQ2YTM5Y2Z4dw5jb3JlL3BhcmFncmFwaHl3JDJiODAxZDYyLTYyNDEtNDcxOS1iYmE3LWJkMDM4MTZmMjgzMnh3DmNvcmUvcGFyYWdyYXBoeXckNjk1YzA3ZTYtOTQzOS00ZTk5LWFmZTgtZGI2YjJhMTdjMjA3eHcOY29yZS9wYXJhZ3JhcGh5dyRhY2IyZmRiOC01MTNmLTQxZGQtYjdlMi1jOTIyMWVmNWRhMzd4dw5jb3JlL3BhcmFncmFwaHl3JDFhYmFkNmQ1LWNhYTEtNDBkNy1hZTdhLWFiOWE1MDFkOTUwNnh3DGNvcmUvaGVhZGluZ30DdyQ3OTE0OGMyZS01Y2Y5LTQ1OGYtOTc5YS0zODAxYTY2NjY4YzV4dw5jb3JlL3BhcmFncmFwaHl3JDVkYjE5YTRhLTlhNmQtNDExMS05NDA4LTdkMmRjMWU3YzljMHh3DmNvcmUvcGFyYWdyYXBoeXckNzVjMDViZDUtMzI3ZC00ZGE1LWEwYjQtZjI4N2EzNWM2NmMxeHcOY29yZS9wYXJhZ3JhcGh5dyQzNjViYzUxMS0wODkwLTRlNTYtYWMyOC0zZDcxYzY2MzRhYjF4dw5jb3JlL3BhcmFncmFwaHl3JGIwNWFhZGJjLTNlNDQtNDVlOC1hNGRlLTQ4NDlmMTU0NWEzZXh3DmNvcmUvcGFyYWdyYXBoeXckMjExNWE5ZjQtYzUxNC00ODdkLTlkODAtMGM5YjBiNjZjMjE1eHcOY29yZS9wYXJhZ3JhcGh5dyRhZTVkZTg2YS01OTY1LTRjYWYtOTNkMS01NmY1OGViNGFhZjF4dwxjb3JlL2hlYWRpbmd9A3ckNmI2YTUwYjUtZGRhZS00ZTg0LTllNDAtODk3MjY0NjRhYTg5eHcOY29yZS9wYXJhZ3JhcGh5dyQ0OTQ4ZmY1Yy1mZGM5LTQ4ZGMtOTYyNC1mMzA4Y2Q0YzU4MDR4dw5jb3JlL3BhcmFncmFwaHl3JDYzYjQ5NzJkLTA0N2YtNDUwYy05NmQ5LTcwOWUwY2FhMDgyOHh3DmNvcmUvcGFyYWdyYXBoeXckMzM3Y2M4YzctNTlhYy00MTkyLWE5OTAtMjM1Mzg4ZjE3OTZjeHcOY29yZS9wYXJhZ3JhcGh5dyRmYmMwNmNiMS04NWQyLTRiYjAtYTNlZC1hNmM0NDZiYWU5ODZ4dw5jb3JlL3BhcmFncmFwaHl3JDljMmUyMmFmLWQyMDUtNDgwYS1iM2Y1LTMzNmJhOTdkYmJiZnh3DmNvcmUvcGFyYWdyYXBoeXckNWU4MzgyYWEtNWRlMS00NDU2LThmMzItNTYxMjBkMzU2NzI0eHcOY29yZS9wYXJhZ3JhcGh5dyQ0OTA5YTUyYi0xMzhlLTQxMjktYTM2Mi1lZjlkZDNjYTM1ZjR4dw5jb3JlL3BhcmFncmFwaHl3JGU2ZWMwYzA2LWNkNjktNDRhMS1hMmM5LWM5NjZhYzdiMzExZHh3DmNvcmUvcGFyYWdyYXBoeXckZmQ1NDFmZGQtYmYwMS00NDVlLWFiNzMtMTkzZjA4MWI0NTczeHcOY29yZS9wYXJhZ3JhcGh5dyQ5MDI0NzA1NC1mZDg0LTQyM2YtOTEyMi01Mjc4YzU5MDBmODl4dw5jb3JlL3BhcmFncmFwaHl3JDVlNjA1MjU3LTBhMTMtNDZjNS1hZjQ4LTY3ZWNlNjk2ZWUyMHh3DmNvcmUvcGFyYWdyYXBoeXckZjVmNWRhY2EtYmU0OS00NGIxLWI5ZDktYmRkYTJiNGY1Yzc5eHcMY29yZS9oZWFkaW5nfQN3JGZjMGY2Yzg3LTc1MmItNDZiYS05ZDNlLTRmOTkxNWRiMzg3ZHh3DmNvcmUvcGFyYWdyYXBoeXckNGEzMWI3NDEtMjc2Zi00YTE1LThjMTMtY2JlOTBjNTMzODBleHcOY29yZS9wYXJhZ3JhcGh5dyQyMGQ0OWViZC1iZWU2LTQ1YjctYWI0Mi03Njg3YThkZWIzZjZ4dw5jb3JlL3BhcmFncmFwaHl3JDM2OGJlYTMxLTExYmMtNDM5ZC05ODc2LWZkNzkyN2IyMTJmOXh3DmNvcmUvcGFyYWdyYXBoeXckNDY4NjMxMjgtNzk5OS00M2Q4LTgzZTUtMWY2MDk5MTYwYjM4eHcOY29yZS9wYXJhZ3JhcGh5dyRiYWU1YTlmNy0xNTNjLTRkYWItODU4My05OWM1ZjhhNGJjNzh4dw5jb3JlL3BhcmFncmFwaHl3JGU4ODljODUzLWIyMTEtNGQ5Ny1hNGIxLWUyMmUxMjA5NmMwZHh3DmNvcmUvcGFyYWdyYXBoeXckNGRiYmQ3ZGYtYmZiZS00ZGY5LTljMWMtYmEwYTg1ZTNmZGU3eHcOY29yZS9wYXJhZ3JhcGh5dyQ2MDJlMjYxYi01M2Y0LTQ4MDEtOTQ5MC1mNjA4NDMxYWJlMDN4dw5jb3JlL3BhcmFncmFwaHl3JDc1ZDhhZjAxLTY3ODUtNDIxYy1iMmZiLTdhMjUwNWNiYmU3ZHh3DmNvcmUvcGFyYWdyYXBoeXckMmU4MzZjN2UtMjdjZS00NjI5LWI0NGUtMTc5OWU3NTViZmYxeHcOY29yZS9wYXJhZ3JhcGh5dyRkNGExNDI1Zi01NzM3LTRiODktYTYzMi01NDJkZjdjN2M5ODJ4dw5jb3JlL3BhcmFncmFwaHl3JGZkMWZkMmVkLTAzMTQtNDliMC05MjE3LTlmN2NiZWQ0ZWQwOHh3DmNvcmUvcGFyYWdyYXBoeXckMzgxNzhjY2EtMTZjZi00NjU0LWJmMGQtMDNlM2NmYzhmNjRleHcOY29yZS9wYXJhZ3JhcGh5dyQ1MjNlODZmZS0wZDBiLTQ5M2UtOGNhNS04MGEwYjQwYzZkZmR4dw5jb3JlL3BhcmFncmFwaHl3JDI1ZTg4ZDE1LWVkMzMtNDIyNy04Yzc5LWNhZDMxODBmODM3OHh3DmNvcmUvcGFyYWdyYXBoeXckNDA0MzA3ZjItNGIwYi00OTNjLWIzYTAtOTMwM2EzOTczMDc2eHcMY29yZS9oZWFkaW5nfQN3JDNiNDE1OGFjLTNhYWUtNDliOC05OGZiLTA1YmFhZWJiYzk3ZXh3DmNvcmUvcGFyYWdyYXBoeXckYzY3NjE4ZjgtYzk2YS00Yzg2LWFlNzItYmJjOWM5OTc5NDhkeHcOY29yZS9wYXJhZ3JhcGh5dyRiMDUxMjdkYy01NzU5LTQwYTMtYjlkOS05MTcxNTE5YmE0YjR4dw5jb3JlL3BhcmFncmFwaHl3JDE5MWM3MWZkLTFhMGQtNDhiYi04M2M5LWE5ZjFjYzM4MmU5NXh3DmNvcmUvcGFyYWdyYXBoeXckNTgwYTQ4NTEtNjEwMy00ZmIwLTgzNjctODRmN2M1ZjQxOTc3eHcOY29yZS9wYXJhZ3JhcGh5dyQxODg0MTk5YS1hMTE1LTRiZTYtYTU2ZC1lM2IwMjI1ZWFkMTd4dw5jb3JlL3BhcmFncmFwaHl3JDgzNjVhMmQyLWQ2N2YtNDAzYS04OGY5LTU2ODgwNWRiZGYyOXh3DmNvcmUvcGFyYWdyYXBoeXckYzE4YTliZTMtNzdhMC00MTA5LWI5MmYtMzliZjYyZWFmODg1eHcOY29yZS9wYXJhZ3JhcGh5dyQxOTUzZDQ0NC05ZmMwLTRlY2ItODBhZS1lZjExNjExOTQ0OGN4dw5jb3JlL3BhcmFncmFwaHl3JGUyZWEwNzFmLTBkMGQtNDg1Yi05MWIzLTRmZDQ0M2YzNDkxMXh3DmNvcmUvcGFyYWdyYXBoeXckNjE4YjFlMDktYzU0Ni00ZjlhLWFkMDUtZmU4YWNiMDRmMWE1eHcOY29yZS9wYXJhZ3JhcGh5dyQ0ZjQzMzA0My05ZGZhLTRmNDgtOWIyMC01YzdkZmVjNGZiMWR4dwxjb3JlL2hlYWRpbmd9A3ckODM3NzMwNzgtMzE4Zi00MGYxLWE2ZDItNWQyOTU1ZWJmOWQzeHcOY29yZS9wYXJhZ3JhcGh5dyRkNzVmMmEzZS04ZWM4LTQ2Y2UtYjY2Mi1jMWI3M2E4ZDFhZTN4dw5jb3JlL3BhcmFncmFwaHl3JDNjZDEwNmJjLWI5OGQtNGFiMC1iZGFlLWMxOTZhYTdkOGM0OXh3DmNvcmUvcGFyYWdyYXBoeXckZjlmNWY2MGYtMWQzNC00ZTRiLWE2NzEtYzQwODZhMTM4ZTc1eHcOY29yZS9wYXJhZ3JhcGh5dyRmYzhhNDVkMS01ZmI4LTQ0MWQtYTdkYi01ZDhiYzQ4NDNlNzB4dw5jb3JlL3BhcmFncmFwaHl3JDVjZDBiOTI2LTk1YmUtNDE2Yy1iZTA3LTIwY2Y5NTA1OWE3ZHh3DmNvcmUvcGFyYWdyYXBoeXckZDBlNTQzNGEtMjg1Ni00ZDMwLTg4MzktZDc3NTQ3Yzk1NTIzeHcOY29yZS9wYXJhZ3JhcGh5dyQ3MzI2YTQ0Ni0zMDRkLTRiMzUtODJkMC1jMThkODFlNzc1YWJ4dw5jb3JlL3BhcmFncmFwaHl3JGVkNGFjM2YwLTY0YTAtNGZlNS05ZjQ1LTlhZTk4OTE3YTdkN3h3DmNvcmUvcGFyYWdyYXBoeXckYzhkNjA2NzktODVkMS00YTliLWEwM2YtNGVlNDE4NTZhMjkzeHcOY29yZS9wYXJhZ3JhcGh5dyRlODBiZWQzYS04N2ExLTRhZDktOGNhYi0xMzViZGFmNWEzZDV4dw5jb3JlL3BhcmFncmFwaHl3JDM1NTAyZGY1LTBmMWMtNDVkZC1iZmJjLTZlZDQ2YjdmYTY0Znh3DmNvcmUvcGFyYWdyYXBoeXckYjE5ZjRhYWQtYjkwZC00YzZkLTg1NzMtYzFhYzgzMDY5NjVieHcOY29yZS9wYXJhZ3JhcGh5dyQ5Y2NhZmMzNi04NTk4LTQ2YzEtOTRhZS1kOTFkOGUzZWY2OGR4dw5jb3JlL3BhcmFncmFwaHl3JDI4NmUyMGI0LTM1MDAtNDJlOS05ZWY3LTNiYmFmYjRjZmM4ZXh3DmNvcmUvcGFyYWdyYXBoeXckZDJlOTc1N2QtZDhlZi00NTU3LWJhYjEtZTlkZTFmMjY3OGJkeHcOY29yZS9wYXJhZ3JhcGh5dyQ3M2Q0NmUxMy1hZTlhLTRhMjYtYjUwMy02ZDFmMzE0Y2Q4ODB4dwxjb3JlL2hlYWRpbmd9A3ckYjc4OThlZGUtNTA0NC00ZDMxLTg2YTktNGQ4NGJiOGY2ZDNmeHcOY29yZS9wYXJhZ3JhcGh5dyQ0NzIwZTgyZi1iZTMxLTQzZmEtODA2Ni1jYTA3ODRhMmI5OTN4dw5jb3JlL3BhcmFncmFwaHl3JGY5YzI2MDExLTA1NmEtNDFmMi1iZDQ1LWY1ZjQ3YjQzZWE2M3h3DmNvcmUvcGFyYWdyYXBoeXckNGFhNGI4YzgtYjZhMy00ZmM3LWFjMWEtMzI3MjM1NDE2NWQ4eHcOY29yZS9wYXJhZ3JhcGh5dyQ3ZjViOGNlZC0wNGJmLTQ3ZWItOWI2Yy00YjY1NDY4ZjdmNTJ4dw5jb3JlL3BhcmFncmFwaHl3JDZmNDM4NjU3LTZiNGMtNDllNS05YjYyLTNjNTVmOTcyOWQ4NXh3DmNvcmUvcGFyYWdyYXBoeXckYzU1N2M2MzktOTVlYy00NGZhLThmZmUtYTkxNjFlMjQwMmUxeHcOY29yZS9wYXJhZ3JhcGh5dyQzNWVlMzMwNC01YTI2LTRmMTMtOWJiOS00OTVkYzc4NDBmZTh4dw5jb3JlL3BhcmFncmFwaHl3JDM3MzllYmJlLWMyMDYtNGQ2OS1iZWVhLTE2ODE4OGI5YWJkNHh3DmNvcmUvcGFyYWdyYXBoeXckNzViMjkyMjAtZGI5ZS00NmE3LTk0MTgtMjU0YTNkN2ZiYTBieHcOY29yZS9wYXJhZ3JhcGh5dyRlODU0ODk1Mi0zNzRhLTQxNmItOTY5ZS1lYzVlODExMDY3Y2J4dw5jb3JlL3BhcmFncmFwaHl3JDIzYzY3OTg3LTI1MGEtNGM5Yi05NjYzLTI1YmVkMjVmYjlkZnh3DmNvcmUvcGFyYWdyYXBoeXckMTFlMWFlNmYtY2VkOS00YTQ2LTk0YjMtMjM2ZmM3ZjZiNzIweHcOY29yZS9wYXJhZ3JhcGh5dyQ2MGZmMmMwYS0zMWJjLTQxNGEtYmExMi1jYzM5MzAxYTU1Y2R4dw5jb3JlL3BhcmFncmFwaHl3JDA4OGQxNTI5LTlmYjUtNDBjZS1iOTk1LTkyNzgzMTI3NzRjNXh3DmNvcmUvcGFyYWdyYXBoeXckOTQzMTlhOGYtY2EyNi00MTU0LTlkMzEtMzY1MzlmYjRmZjRleHcOY29yZS9wYXJhZ3JhcGh5dyRhNmNlZDQyYS1hZjcyLTRhNmUtOGRlNy02NWY3YmZiZGYxMmJ4dw5jb3JlL3BhcmFncmFwaHl3JGIxOTM2YmJhLWU5NGEtNDIyZi1hOWMzLWQxMjM4ZGRiOWQ1ZHh3DmNvcmUvcGFyYWdyYXBoeXckNWE2Nzg1MTYtMWIxOS00NDRjLWJjOGMtMTNmMzQyMmMwZGFieHcOY29yZS9wYXJhZ3JhcGh5dyQyOGZjMmVkMS1hYjdiLTQ3OTYtOGViZS00NTNhOTAwZmVhNmR4dw5jb3JlL3BhcmFncmFwaHl3JDgyYjkyNzY0LWE2ZGQtNDA2ZS1hMTg1LWIyYzY4YWY0NTFmZHh3DmNvcmUvcGFyYWdyYXBoeXckYjFiZDZhNWItYjNhYi00YzY0LWJlMTktMDg1MTc0ODk2MWM2eHcOY29yZS9wYXJhZ3JhcGh5dyQxYjRjZjM4ZS1lNmFiLTQyODYtYjFlNi03NjI3MDQyM2JiYTV4dw5jb3JlL3BhcmFncmFwaHl3JGVmZTRhZTg0LTFjMjAtNDBjOS1iNjJjLTU1OTRlMWM2YjI1NXh3DGNvcmUvaGVhZGluZ30DdyQwZmJlMGIyMS05NmRjLTRlYzItYjg5MC05ZmQ4YjcyYTc2ZjZ4dw5jb3JlL3BhcmFncmFwaHl3JGQ2M2M3NmE3LThlMzMtNGI4Yy05ZjYzLTFjYTU5YzkyZWM0Nnh3DmNvcmUvcGFyYWdyYXBoeXckZjViMjFlZjAtNTBiYy00MTE1LTk4N2UtNDM5NGIxY2JmNzQ2eHcOY29yZS9wYXJhZ3JhcGh5dyRmNGZhNmZkMy0zYWRlLTQ4YTItOTFlNy1hNTc0YzM0ZjNkMWR4dw5jb3JlL3BhcmFncmFwaHl3JDllNjdmM2EwLTMzZDUtNDMyZC1hODMwLTU0ZjA0ZmZlNzE1NHh3DmNvcmUvcGFyYWdyYXBoeXckMTJjZmNiN2UtOTExNy00MTUxLThjODktMGQ5YThhYjRjN2VheHcOY29yZS9wYXJhZ3JhcGh5dyQyOTU4ZDIwOC1lMDdhLTQ3YWYtYWEzOC00YTcyNTQ1NzNiN2R4dw5jb3JlL3BhcmFncmFwaHl3JDYxNjk1NjA2LWMzNTQtNGZmOS1hNzk2LWI1ZTNmNTY0NmRlOXh3DmNvcmUvcGFyYWdyYXBoeXckYTg5YTQ2NjktMmM4Yi00OGE3LTgzMmUtZWFlMGYxN2YzMTFmeHcOY29yZS9wYXJhZ3JhcGh5dyQxYWRjZGNiOS0yMzg0LTRlMzMtYjQ0Yy0wODkxNjA1ZmExZjZ4dw5jb3JlL3BhcmFncmFwaHl3JDcyYWU4NDEzLWE5NmUtNGY0ZS1hOWZkLWIwODkwYTJmMjc4MXh3DmNvcmUvcGFyYWdyYXBoeXckMGI3OTAwNDUtODZiMi00MjhjLTk1MWYtYjllYTFkYzJlYmI3eHcOY29yZS9wYXJhZ3JhcGh5dyRiNDk4OTkwZS01M2Y1LTRhYmYtOTRjOC0zNDAyMWI2MjVlNDJ4dw5jb3JlL3BhcmFncmFwaHl3JGQ3MTg3ZmZmLWEwM2QtNDRhYy05NTE0LWYyYjJlOGI0M2U5Znh3DmNvcmUvcGFyYWdyYXBoeXckY2ZjZTY5M2YtOGMzMi00ZTE5LTk3OWQtM2ZiZTc0MjZmMGY4eHcOY29yZS9wYXJhZ3JhcGh5dyRiZDg5NDEzYy02Mjg1LTRkODktOGEyYS0wNjA2ZDIxZjNmYWF4dw5jb3JlL3BhcmFncmFwaHl3JDEyMTJmNjEwLTY3ZWUtNDRlNy04ODBkLWM4NjM4NmNiMWVmNXh3DmNvcmUvcGFyYWdyYXBoeXckOTk3MzFiYjAtZTM5Ni00ZTVlLWEwNjMtNjU2ZjcxMDFiM2YyeHcOY29yZS9wYXJhZ3JhcGh5dyRhODY2MzA2NC0xNWQxLTQ1Y2ItYTU0Ni1kNTAzYjM2NzFhNGV4dwpjb3JlL2ltYWdldwB3JGIzNjQ2YzJjLWUxOTktNGY1Zi1hZDcxLThlOWViNWZmMzE0ZXh3DmNvcmUvcGFyYWdyYXBoeXckM2E2MzM4MTUtNTc1OC00ZDliLWI5ZTAtOGY2YjZjYTk1YTU3eHcOY29yZS9wYXJhZ3JhcGh5dyQzZmYyMDk0MS0zNDZmLTQyZGItOTU0Mi00MzliZmMzZmUwMTN4dw5jb3JlL3BhcmFncmFwaHl3JDVhMWJhZDg4LWFmNzQtNDRiYi1hMTU2LTYzMjAzZjQ0ZGUzY3h3DmNvcmUvcGFyYWdyYXBoeXckMjk2Y2VhZDEtZWEyMy00NDJkLWFjMmQtMmQ5ZWM1M2ZmMzcxeHcOY29yZS9wYXJhZ3JhcGh5dyRiY2NmNzRmNS0xZmM0LTQxZjktOTMwOC1lYmIxYzU5ODcyMzF4dw5jb3JlL3BhcmFncmFwaHl3JGUxMTY5NzhhLWYyMjQtNDhlNy05OGUxLTlmYTU1ZTIxMzljMXh3DmNvcmUvcGFyYWdyYXBoeXckZWU3Y2NlZTYtZmVkMS00ZDVlLTg4ODYtNzQxYTEwMDU1YzhheHcOY29yZS9wYXJhZ3JhcGh5dyQyMjUyNDBkOC05YjMwLTQ4NWItYTBlYy0zODE0ZmM3OWUxYWF4dw5jb3JlL3BhcmFncmFwaHl3JDMwM2I3OTgzLTc2ODMtNDZhOC1iM2UyLTZhMzA1OThkOTMyN3h3DmNvcmUvcGFyYWdyYXBoeXckMjBiNWNhMjktY2RlMS00MmQ5LTkyYjMtOTE2NjllOTM4YzMyeHcOY29yZS9wYXJhZ3JhcGh5dyQ3YjZhZjA2My03YzdmLTRkNDUtOWZkZi05MjA4Yjg3NGE3MzF4dw5jb3JlL3BhcmFncmFwaHl3JDJhM2Y2YzZkLTY5OWUtNGVmYy04ZmYxLTAwMzkwNWMwNDk1Y3h3DmNvcmUvcGFyYWdyYXBoeXckMjhjODlmOWUtNTk0OS00Mjc4LTg0MzMtZTFkYmNkZmMzN2QzeHcOY29yZS9wYXJhZ3JhcGh5dyQxNzAxYjg3Yy0yNGNhLTRlOGYtODZjOC04NzNlZWU2ZDk5OTF4dw5jb3JlL3BhcmFncmFwaHl3JDlmZDllMTA0LTU1YTQtNDAxZS04Yjk4LTM5ZTM4Nzg0NjA3MXh3DmNvcmUvcGFyYWdyYXBoeX2O7wF3Kmh0dHBzOi8vdXRoby5jb20vYmxvZy8\/YXR0YWNobWVudF9pZD0xNTMxMHc1aHR0cHM6Ly91dGhvLmNvbS9ibG9nL3dwLWNvbnRlbnQvdXBsb2Fkcy9pbWFnZS01LmpwZWd3BGZ1bGx3BG5vbmV9j+8BdypodHRwczovL3V0aG8uY29tL2Jsb2cvP2F0dGFjaG1lbnRfaWQ9MTUzMTF3NWh0dHBzOi8vdXRoby5jb20vYmxvZy93cC1jb250ZW50L3VwbG9hZHMvaW1hZ2UtNS5qcGVndwRmdWxsdwRub25lfZDvAXcqaHR0cHM6Ly91dGhvLmNvbS9ibG9nLz9hdHRhY2htZW50X2lkPTE1MzEydzVodHRwczovL3V0aG8uY29tL2Jsb2cvd3AtY29udGVudC91cGxvYWRzL2ltYWdlLTYuanBlZ3cEZnVsbHcEbm9uZXc+aHR0cHM6Ly91dGhvLmNvbS9ibG9nL3dwLWNvbnRlbnQvdXBsb2Fkcy9pbWFnZS01LTEwMjR4NTc2LmpwZWd3BWxhcmdldz5odHRwczovL3V0aG8uY29tL2Jsb2cvd3AtY29udGVudC91cGxvYWRzL2ltYWdlLTUtMTAyNHg2NTAuanBlZ3cFbGFyZ2V3Pmh0dHBzOi8vdXRoby5jb20vYmxvZy93cC1jb250ZW50L3VwbG9hZHMvaW1hZ2UtNi0xMDI0eDY1MC5qcGVndwVsYXJnZXc1aHR0cHM6Ly91dGhvLmNvbS9ibG9nL3dwLWNvbnRlbnQvdXBsb2Fkcy9pbWFnZS01LmpwZWd3BGZ1bGx3NWh0dHBzOi8vdXRoby5jb20vYmxvZy93cC1jb250ZW50L3VwbG9hZHMvaW1hZ2UtNS5qcGVndwRmdWxsdzVodHRwczovL3V0aG8uY29tL2Jsb2cvd3AtY29udGVudC91cGxvYWRzL2ltYWdlLTYuanBlZ3cEZnVsbHckYzM1ZjBhMWEtMWM3My00YjNkLWFhZjMtODM5NzhhODkwOTJmeHcOY29yZS9wYXJhZ3JhcGh5dyQ4ZTJmNDgyMC03MzRjLTQ2NjktOWY1YS1mMDNjNDY5NGM3NjF3DGNvcmUvaGVhZGluZ30CdyRjMzVmMGExYS0xYzczLTRiM2QtYWFmMy04Mzk3OGE4OTA5MmZ4dw5jb3JlL3BhcmFncmFwaHl3JGE4MWFkNjY3LTU3YzMtNDQyMC1iZjI1LTI1YzE3ZDgyMDQ4NXcMY29yZS9oZWFkaW5nfQJ3JGJmNjlmMGYxLWY1NDctNDlhOC1iNWNkLWMxYjE5NmQ4MGYzNHcMY29yZS9oZWFkaW5nfQJ3JGMzMzE5Nzk0LTIwMDAtNDkzMC05ZDM4LTc3ZDYyNGIyYjMxOHcMY29yZS9oZWFkaW5nfQJ3JDk5ZmE3YjZlLThmMmMtNDI0Zi1iZDVmLWJmOGQ2NTM1MDNjMHcMY29yZS9oZWFkaW5nfQJ3GkZlYXR1cmVzIG9mIEMgUHJvZ3JhbW1pbmcudxlGZWF0dXJlcyBvZiBDIFByb2dyYW1taW5ndyZIb3cgQyBQcm9ncmFtbWluZyBXb3JrcyBTdGVwIGJ5IFN0ZXAgP3ckNGFhZTlmMzktY2I1NC00NzUxLWE1ZTktYTA2NGIxNDI4YWMxdwxjb3JlL2hlYWRpbmd9AnckYzdkOTA4ZWMtY2JlMS00MzZiLWJjNTItZjEzNzc1OTZjYjk2dwxjb3JlL2hlYWRpbmd9AnckYmMxNWIxYTQtMjUzZS00ZWJjLTlkNjAtMjQ4NDUyMGJlNDAxdwxjb3JlL2hlYWRpbmd9AncuQWR2YW50YWdlcyBhbmQgRGlzYWR2YW50YWdlcyBvZiBDIFByb2dyYW1taW5nLnctQWR2YW50YWdlcyBhbmQgRGlzYWR2YW50YWdlcyBvZiBDIFByb2dyYW1taW5ndyRiMTM1NjZlYi1lNzdjLTQ4ZTQtYjcxMS01MTI4MmU3MTU3Mjd3DGNvcmUvaGVhZGluZ30DdyQ2NzcxODUyOS1iNzZmLTRkOTUtOTYyMi04MzVjNjY1MGRhMTV3DGNvcmUvaGVhZGluZ30DdyRjMmZlZjQ4Zi01YzNhLTRhMDMtYmRiZS00MDNlODc4MWVkYTl4dw5jb3JlL3BhcmFncmFwaHl3JDc3NDdkYjIwLTUzMTYtNGVkMC04MzdjLWU0NTA3ODY5Y2EwYncMY29yZS9oZWFkaW5nfQN9ku8BdxV3aGF0LWlzLWMtcHJvZ3JhbW1pbmd3JGRhMTg2OWIwLWQyZjctNGUxNS04ODY1LTkzZWFhNWY1ODVjYXUBfQF3JGFlYjdmNDFiLThhZGMtNDRkNi1hMWJjLWQ3NThjNWFlNmU1ZXcMY29yZS9oZWFkaW5nfQN3JDg5MjZmM2UyLWE4MjktNGUxNS1hM2EyLWY5NGEzYzI3YzZhZXcOY29yZS9wYXJhZ3JhcGh5dyRjNzM0ZTljZC0zYjhmLTQ2ZmMtYTFiYS1jYzE4NzZmMTFhYzV3DGNvcmUvaGVhZGluZ30DdyQ4OTI2ZjNlMi1hODI5LTRlMTUtYTNhMi1mOTRhM2MyN2M2YWV3DmNvcmUvcGFyYWdyYXBoeXckZGI0YTA3N2QtYjAxMy00MDY4LThiZGItYzcyMGE3MzEwZWI5eHcOY29yZS9wYXJhZ3JhcGh5dyQ3NzVhNjliOC05MjU2LTQ2OTMtODk1OS1iMjc3OTI4MzkzZTJ3DGNvcmUvaGVhZGluZ30DdyQ5ZTE2MjIzYS1jODVjLTQyYWUtYmIyZi04OGVmODk2MGQxZDd4dw5jb3JlL3BhcmFncmFwaHl3B3B1Ymxpc2h3EzIwMjYtMDUtMDhUMTQ6MzU6MjF7QnngbVn\/AAB9uqXf5QcB+tLv8gPqBwEBBAAHADsAzQIAAQA82wHkB+UCAQABACoAhgkAAQAzAK0LAAEAOQAGAKAFAxwDARMhF6gEA5UCA7IBAwETKgMBEy4DARMmAwETPhewFyMJCwwFAQUBBQEFLCMiIwkRCQUBBQEFAQUBBTsjCQUVIwkRCQUBBQEFAQUBBTMjCQsYIwkXBgUBBQEFAQUBBQEFLCMbBQEFuAEAAQAjAAkABgADAAEA\/QE3vQIDHBcTFxMXGAMBEzUXqwQDYgMBEycDARMQBQEFJAMBExIFJQMBEzoXXgUBBRsF7AIDGwMcFyAXGhc6AgEsEBcJF0cDARMiAwETMhedBAMyFxQXBgMWFwYDFhdMF04XHxcrLyEXLhcjAwETLQMBEzcDARM\/AwETPxe1AwMdAxsDHQMcFxsXJgMBEyQDARMtFxkDARMxAwETMAMBEy8DARMxFxgCARQRAwETPBebBAMdAxwXEhcyFxoDASstLxEXCRcYFyYvIwMBEzUXJgMBKysXCgUpAwETIReaBAMrFxYXEBcvFx0DARMwAgEUHAMBEw0FIhcdFy0XGwMBEzQXKAMBKzEXCRdgBdAEA44BFygDARNyFy0DARMVBU8DARM2AgEUFQIBFBUCARQVAgEUFBf2AQUaAAEAOQCoBQMdAyADHBc1AwETCAUUAwETHhcJBRQDARMSBQEFAQUXAwETLwMBEw4FAQUBBQEFAQUXF0UFAQUBBTcFAQUBBQEFAQXxAgN5AwETDwNoAwETQwMBEzMXKC8hLxYvIS8WFwkXZwM1A\/4CAx0DwAEXHQIBLCICASwkLxADASsYAxoXNxcsLyoDAUMNBQoDIkcPLwkXCQMBE0MDARM0Fw8FAQUbFyAXDwUBBREXDQUBBQEFFgMBEyUXGhcWFxQXbgUBBQEFAQUBBQEFAgMpBQEFAQUBBQIDGAUBBQEFAQUBBQEFAgMbBQEFAQUBBQEFAQUCAy8FCwUBBQEFAQUCAxAFBwUBBQEFAQUBBQEFAgPQAgOHAQIBFBQvHy8fLx8vLi8IBRIXJgMBEz0DARMOBSsDARMOBSsDARMIBQUFFwUSAwETDgUqF3AFFwURBQUFFwXWAgMdAx8XAwUVFwMFExcaF1ADARMUAxQDAT1XAwETKwMBEzcDDQMBE0MCARQiLwsFCAUbLzEvCwUIBSAvCwUIBR4XChcmLyIXYgUCBQkDUAUBBQEFCgMDBR4FAQUBBQoDIQUBBQEFAQUKAwMFIQUBBQEFAQUKAwMF5wIDfgMJAzwDARNwAgEURAIBFBYFDAUfAwETMhc1AwErJC8wLw8FFwMBKxQXCRfiBAMbAx0FAQUMA6UBFxoXRRc5AwETNBcwAwETJRcmAwErBwU7Fw8FGxcrFzkDARMxAwETEQURAyYXeQsYCxcLFws+BQ0AAQA9APcCCQEFOAMBBTMDAQU1AwEFAQXQAQMcAwETKhdiAxwXAwUBBQUFAQUBBQ4XBQUHBQEFEhcJBQEFAQUBBRkXBQUJBQ8DARNBQSEXrAEDHBcaAwETOkEhAwETCQMZAxEXgAEDYQMcFxcXAgUBBQEFCAMjFw8DIxcPAyMXBAUBBQEFAQUBBQEFAQUBBQEFHhd\/AxwXIxcSFxsXNwMBEzcXHxcbFy0DARMsF60BAycXIBdMAwETJxcnAwErMBeHBAMcFxcXCAUWAwETDAUBBQEFAQUZAwETDgUBBQEFHgMBExIFGBcTAwETLBc\/BQEFAQUBBRQFAQUBBSQFIgABADcACQAGAAMAAQAdAK0LAAEAIADoBwABABUUCNIBngIBAwEDAQEFlwOcArMJwwe9CmWSDWtLkgGJBx9wOS4oqAWWAsIBH74DQi5GLj4uVi4ojiQsLl4uLHUsLncuLC4aLiwuby4sLiMuLC5yLiwuPeQBX0uSASq5Av4CH3AqLiouLy5NLijrBh\/kAT8uWS5VLlIuKPwBJS4gowQfLh5wNy4xLlEuQC4gLl4uOi5KLiiLBx+GASsuNy43LirDAUCvATYuQi5QLiinATouRS5PLlcuVy4o0QYfLiAuHi4gcDIuPS48LkUuMC5JLkguRy5JLi8uKS5ULijBCB8uIHApLkkuMS5dLkAuIC4vLj0uUi5NLj0uWy5QLjkuKMAIH38tLicuKacBNC5ILjQuTS40LkQuMi5MLj8uYS4gLiiBAiTACB++Aj8uYLQBRC5lpwFOLi0uLS4tLiwuKJoEMRhr\/wYfLiAuI3BMLjouNi46LlUuRy5fLiizAS58N\/sDH6kCa7IBPqcBSy4\/LlAuRS5QLkUuIC4ohgIhcyHdBB8uIMwDNC5SLlQuPy5mLiC4AUMuWS6LAS5WLjguIC4+pwFMLk4uNy5ELk4uPS4xLi0uKy4ohwJTLjwuSS5Oc0EuTooEH4kCLC5OLk4uTi5dLk8uIKcBVS5XLlcuYC5WLiiQAhwuHC4hLhzfAx8uIHM1LjMuMS4wwQFELnynAUMuYC5bLjouaS5gLm4ubC4hLj0uUS4ogAI3kwFILkQuUi5R4wMfqAFKiAFrpwFcLmUuSi5MLlQuXy5bLkQuIC4otgkfLh4uRpoCMS5cLjOnAUwuRy49Lj0ueC5HLkIuUC5JLmouKM4CIy4iLiIuInkhGG+gBEcuPS5BLkPKAh9wQi4o6gEfcE4uSC5ULkAuWS5iLiiQAx9wMS5SLmIuUy4o3QMT7AEfcC4uXC5NLk0udy4o4wIfcDouKS4yLk4uTy42LjIuRC5ELii\/Ax97Ny5GpwE\/Lj4uYC4o5QkfcC4uOy5YLlguSC4qLkQuKLMBLC4zLh1gc0uSARRPwA1S4wmJAo0D3gED1gHEeADwBQDlCAIBCgQAAQAxAI8DCgE1\",\"updateId\":409519524}","footnotes":""},"categories":[1],"tags":[],"class_list":["post-15308","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorials"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>What is C Programming? Features, Uses &amp; How it Works<\/title>\n<meta name=\"description\" content=\"Learn the basics of C programming. Explore its key features, real-world uses in systems, and a step-by-step breakdown of how the C compilation process works.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/utho.com\/blog\/what-is-c-programming\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"What is C Programming? Features, Uses &amp; How it Works\" \/>\n<meta property=\"og:description\" content=\"Learn the basics of C programming. Explore its key features, real-world uses in systems, and a step-by-step breakdown of how the C compilation process works.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/utho.com\/blog\/what-is-c-programming\/\" \/>\n<meta property=\"og:site_name\" content=\"Utho\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/uthocloud\" \/>\n<meta property=\"article:published_time\" content=\"2026-05-08T09:05:21+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-05-08T09:17:06+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/utho.com\/blog\/wp-content\/uploads\/What-is-C-Programming-Features-Uses-How-It-Works.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"556\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Umesh\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@uthocloud\" \/>\n<meta name=\"twitter:site\" content=\"@uthocloud\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Umesh\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"21 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/utho.com\/blog\/what-is-c-programming\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/utho.com\/blog\/what-is-c-programming\/\"},\"author\":{\"name\":\"Umesh\",\"@id\":\"https:\/\/utho.com\/blog\/#\/schema\/person\/f213e3fcf1ea5603ab66197a9c960b3c\"},\"headline\":\"What is C Programming? Features, Uses &amp; How It Works\",\"datePublished\":\"2026-05-08T09:05:21+00:00\",\"dateModified\":\"2026-05-08T09:17:06+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/utho.com\/blog\/what-is-c-programming\/\"},\"wordCount\":4449,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/utho.com\/blog\/#organization\"},\"articleSection\":[\"Tutorials\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/utho.com\/blog\/what-is-c-programming\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/utho.com\/blog\/what-is-c-programming\/\",\"url\":\"https:\/\/utho.com\/blog\/what-is-c-programming\/\",\"name\":\"What is C Programming? Features, Uses & How it Works\",\"isPartOf\":{\"@id\":\"https:\/\/utho.com\/blog\/#website\"},\"datePublished\":\"2026-05-08T09:05:21+00:00\",\"dateModified\":\"2026-05-08T09:17:06+00:00\",\"description\":\"Learn the basics of C programming. Explore its key features, real-world uses in systems, and a step-by-step breakdown of how the C compilation process works.\",\"breadcrumb\":{\"@id\":\"https:\/\/utho.com\/blog\/what-is-c-programming\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/utho.com\/blog\/what-is-c-programming\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/utho.com\/blog\/what-is-c-programming\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/utho.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"What is C Programming? Features, Uses &amp; How It Works\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/utho.com\/blog\/#website\",\"url\":\"https:\/\/utho.com\/blog\/\",\"name\":\"Utho\",\"description\":\"Tutorials Guides for Linux, Windows and Developers\",\"publisher\":{\"@id\":\"https:\/\/utho.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/utho.com\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/utho.com\/blog\/#organization\",\"name\":\"Utho\",\"url\":\"https:\/\/utho.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/utho.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/utho.com\/blog\/wp-content\/uploads\/utho_logo_blue.png\",\"contentUrl\":\"https:\/\/utho.com\/blog\/wp-content\/uploads\/utho_logo_blue.png\",\"width\":1147,\"height\":446,\"caption\":\"Utho\"},\"image\":{\"@id\":\"https:\/\/utho.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/uthocloud\",\"https:\/\/twitter.com\/uthocloud\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/utho.com\/blog\/#\/schema\/person\/f213e3fcf1ea5603ab66197a9c960b3c\",\"name\":\"Umesh\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/utho.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/afa76ed351f7257e667140e6a5ad997a47e4c0c9e09cb1f81f91e75f72906613?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/afa76ed351f7257e667140e6a5ad997a47e4c0c9e09cb1f81f91e75f72906613?s=96&d=mm&r=g\",\"caption\":\"Umesh\"},\"url\":\"https:\/\/utho.com\/blog\/author\/profito\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"What is C Programming? Features, Uses & How it Works","description":"Learn the basics of C programming. Explore its key features, real-world uses in systems, and a step-by-step breakdown of how the C compilation process works.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/utho.com\/blog\/what-is-c-programming\/","og_locale":"en_US","og_type":"article","og_title":"What is C Programming? Features, Uses & How it Works","og_description":"Learn the basics of C programming. Explore its key features, real-world uses in systems, and a step-by-step breakdown of how the C compilation process works.","og_url":"https:\/\/utho.com\/blog\/what-is-c-programming\/","og_site_name":"Utho","article_publisher":"https:\/\/www.facebook.com\/uthocloud","article_published_time":"2026-05-08T09:05:21+00:00","article_modified_time":"2026-05-08T09:17:06+00:00","og_image":[{"width":1024,"height":556,"url":"https:\/\/utho.com\/blog\/wp-content\/uploads\/What-is-C-Programming-Features-Uses-How-It-Works.jpg","type":"image\/jpeg"}],"author":"Umesh","twitter_card":"summary_large_image","twitter_creator":"@uthocloud","twitter_site":"@uthocloud","twitter_misc":{"Written by":"Umesh","Est. reading time":"21 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/utho.com\/blog\/what-is-c-programming\/#article","isPartOf":{"@id":"https:\/\/utho.com\/blog\/what-is-c-programming\/"},"author":{"name":"Umesh","@id":"https:\/\/utho.com\/blog\/#\/schema\/person\/f213e3fcf1ea5603ab66197a9c960b3c"},"headline":"What is C Programming? Features, Uses &amp; How It Works","datePublished":"2026-05-08T09:05:21+00:00","dateModified":"2026-05-08T09:17:06+00:00","mainEntityOfPage":{"@id":"https:\/\/utho.com\/blog\/what-is-c-programming\/"},"wordCount":4449,"commentCount":0,"publisher":{"@id":"https:\/\/utho.com\/blog\/#organization"},"articleSection":["Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/utho.com\/blog\/what-is-c-programming\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/utho.com\/blog\/what-is-c-programming\/","url":"https:\/\/utho.com\/blog\/what-is-c-programming\/","name":"What is C Programming? Features, Uses & How it Works","isPartOf":{"@id":"https:\/\/utho.com\/blog\/#website"},"datePublished":"2026-05-08T09:05:21+00:00","dateModified":"2026-05-08T09:17:06+00:00","description":"Learn the basics of C programming. Explore its key features, real-world uses in systems, and a step-by-step breakdown of how the C compilation process works.","breadcrumb":{"@id":"https:\/\/utho.com\/blog\/what-is-c-programming\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/utho.com\/blog\/what-is-c-programming\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/utho.com\/blog\/what-is-c-programming\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/utho.com\/blog\/"},{"@type":"ListItem","position":2,"name":"What is C Programming? Features, Uses &amp; How It Works"}]},{"@type":"WebSite","@id":"https:\/\/utho.com\/blog\/#website","url":"https:\/\/utho.com\/blog\/","name":"Utho","description":"Tutorials Guides for Linux, Windows and Developers","publisher":{"@id":"https:\/\/utho.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/utho.com\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/utho.com\/blog\/#organization","name":"Utho","url":"https:\/\/utho.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/utho.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/utho.com\/blog\/wp-content\/uploads\/utho_logo_blue.png","contentUrl":"https:\/\/utho.com\/blog\/wp-content\/uploads\/utho_logo_blue.png","width":1147,"height":446,"caption":"Utho"},"image":{"@id":"https:\/\/utho.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/uthocloud","https:\/\/twitter.com\/uthocloud"]},{"@type":"Person","@id":"https:\/\/utho.com\/blog\/#\/schema\/person\/f213e3fcf1ea5603ab66197a9c960b3c","name":"Umesh","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/utho.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/afa76ed351f7257e667140e6a5ad997a47e4c0c9e09cb1f81f91e75f72906613?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/afa76ed351f7257e667140e6a5ad997a47e4c0c9e09cb1f81f91e75f72906613?s=96&d=mm&r=g","caption":"Umesh"},"url":"https:\/\/utho.com\/blog\/author\/profito\/"}]}},"_links":{"self":[{"href":"https:\/\/utho.com\/blog\/wp-json\/wp\/v2\/posts\/15308","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/utho.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/utho.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/utho.com\/blog\/wp-json\/wp\/v2\/users\/21"}],"replies":[{"embeddable":true,"href":"https:\/\/utho.com\/blog\/wp-json\/wp\/v2\/comments?post=15308"}],"version-history":[{"count":4,"href":"https:\/\/utho.com\/blog\/wp-json\/wp\/v2\/posts\/15308\/revisions"}],"predecessor-version":[{"id":15319,"href":"https:\/\/utho.com\/blog\/wp-json\/wp\/v2\/posts\/15308\/revisions\/15319"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/utho.com\/blog\/wp-json\/wp\/v2\/media\/15314"}],"wp:attachment":[{"href":"https:\/\/utho.com\/blog\/wp-json\/wp\/v2\/media?parent=15308"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/utho.com\/blog\/wp-json\/wp\/v2\/categories?post=15308"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/utho.com\/blog\/wp-json\/wp\/v2\/tags?post=15308"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}