{"id":7904,"date":"2026-05-04T10:16:16","date_gmt":"2026-05-04T09:16:16","guid":{"rendered":"https:\/\/workboot.fr\/ciela\/?page_id=7904"},"modified":"2026-05-05T16:57:17","modified_gmt":"2026-05-05T15:57:17","slug":"makefile","status":"publish","type":"page","link":"https:\/\/workboot.fr\/ciela\/makefile\/","title":{"rendered":"Makefile"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Make et makefile ou Makefile , souvent utiliser pour compiler un projet en langage c <\/p>\n\n\n\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary>cheatsheet<\/summary>\n<div data-wp-interactive=\"core\/file\" class=\"wp-block-file\"><object data-wp-bind--hidden=\"!state.hasPdfPreview\" hidden class=\"wp-block-file__embed\" data=\"https:\/\/workboot.fr\/ciela\/wp-content\/uploads\/2026\/05\/bavo-van-achte_gnumake.pdf\" type=\"application\/pdf\" style=\"width:100%;height:600px\" aria-label=\"Contenu embarqu\u00e9 bavo-van-achte_gnumake.\"><\/object><a id=\"wp-block-file--media-3aba81d5-b323-4796-b700-599f07122861\" href=\"https:\/\/workboot.fr\/ciela\/wp-content\/uploads\/2026\/05\/bavo-van-achte_gnumake.pdf\">bavo-van-achte_gnumake<\/a><a href=\"https:\/\/workboot.fr\/ciela\/wp-content\/uploads\/2026\/05\/bavo-van-achte_gnumake.pdf\" class=\"wp-block-file__button wp-element-button\" download aria-describedby=\"wp-block-file--media-3aba81d5-b323-4796-b700-599f07122861\">T\u00e9l\u00e9charger<\/a><\/div>\n<\/details>\n\n\n\n<h2 class=\"wp-block-heading\">1. Pourquoi utiliser Make ?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Make<\/strong>\u00a0automatise la compilation :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u00c9vite de retaper\u00a0<code>gcc -o prog main.c utils.c<\/code>\u00a0\u00e0 chaque fois<\/li>\n\n\n\n<li>Ne recompile que les fichiers modifi\u00e9s (gain de temps)<\/li>\n\n\n\n<li>Facilite la gestion des projets multi-fichiers<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">2. Syntaxe de base<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>cible: d\u00e9pendances\n    commandes<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\"><strong>Important<\/strong>\u00a0: Les commandes doivent commencer par une\u00a0<strong>tabulation<\/strong>\u00a0(pas des espaces !)<br><\/mark><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">il faut comprendre que pour faire la cible il faut la ou les  d\u00e9pendance sinon infaisable <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Premier exemple simple<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">fichier : makefile ou Makefile  (fichier texte)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>hello: hello.c\n    gcc -o hello hello.c<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">comme indiqu\u00e9 la d\u00e9pendance est d&rsquo;avoir le fichier hello.c (source)  pour pouvoir avoir hello (cible)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>bruno@elliott:~\/Works\/langage_C\/hello$ make\nmake: ***  Aucune r\u00e8gle pour fabriquer la cible \u00ab\u00a0hello.c\u00a0\u00bb, n\u00e9cessaire pour \u00ab\u00a0hello\u00a0\u00bb. Arr\u00eat.\nbruno@elliott:~\/Works\/langage_C\/hello$ ls\nmakefile\nbruno@elliott:~\/Works\/langage_C\/hello$ cat makefile \nhello: hello.c\n\tgcc -o hello hello.c\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">oui il manque le source !<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"c\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/***********************\/\n\/* Exemple: hello.c             *\/\n\/***********************\/\n#include &lt;stdlib.h>\n#include &lt;stdio.h>\n\nint main () \n{\n\tputs(\"Bonjour le monde \\n\");\n\treturn EXIT_SUCCESS;\n}\n<\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>bruno@elliott:~\/Works\/langage_C\/hello$ cat hello.c \n\/********************************\/\n\/* Exemple: hello.c             *\/\n\/********************************\/\n#include &lt;stdlib.h>\n#include &lt;stdio.h>\n\nint main () \n{\n\tputs(\"Bonjour le monde \\n\");\n\treturn EXIT_SUCCESS;\n}\nbruno@elliott:~\/Works\/langage_C\/hello$ make \ngcc -o hello hello.c\nbruno@elliott:~\/Works\/langage_C\/hello$ ls\nhello  hello.c  makefile\nbruno@elliott:~\/Works\/langage_C\/hello$ make\nmake: \u00ab\u00a0hello\u00a0\u00bb est \u00e0 jour.\nbruno@elliott:~\/Works\/langage_C\/hello$ \n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Les variables automatique de make<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Variable Signification Exemple Valeur pour target: dep1 dep2<\/li>\n\n\n\n<li>$@     Nom de la cible                                             $@ \u2192 target target<\/li>\n\n\n\n<li>$&lt;      Premi\u00e8re d\u00e9pendance                                     $&lt; \u2192 dep1 dep1<\/li>\n\n\n\n<li>$^      Toutes les d\u00e9pendances                                  $^ \u2192 dep1 dep2 dep1 dep2<\/li>\n\n\n\n<li>$?      D\u00e9pendances plus r\u00e9centes que la cible         $? dep1 (si plus r\u00e9cent)<\/li>\n\n\n\n<li>$*      Base du nom de fichier (sans extension)       $* \u2192 file pour file.c dep1 (sans .c)<\/li>\n\n\n\n<li>$+     Toutes d\u00e9pendances (avec doublons)             $+ dep1 dep2 dep1<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading\">$@<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">correspond au nom de la cible &lsquo;target&rsquo;<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">$&lt;<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">correspond \u00e0 d\u00e9pendance 1<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">$^<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\"> Toutes les d\u00e9pendances $^ \u2192 dep1 dep2 dep1 dep2<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">$? <\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">D\u00e9pendances plus r\u00e9centes que la cible $? dep1 (si plus r\u00e9cent)<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">$*<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\"> Base du nom de fichier (sans extension) $* \u2192 file pour file.c dep1 (sans .c)<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">$+ <\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Toutes d\u00e9pendances (avec doublons) $+ dep1 dep2 dep1<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Exemple de makefile classique (un peu passe partout)<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>#la cible (executable)\nTARGET = test\n#Makefile petit projet avec skeletonc\nCFLAGS = -g -Wall -pedantic -ansi\n#compilateur ici gcc\nCC = gcc\nDEB = gdb\n#section pour avoir TARGET il faut TARGET.c et faire \n$(TARGET): $(TARGET).c\n\t$(CC) $&lt; $(CFLAGS) -o $@\n#avec edit on aura le source dans vi\nedit:\t$(TARGET).c\n\tvi $(TARGET).c\n#on va lancer gdb avec l'executable\ngdb:\t$(TARGET)\n\t$(DEB) $(TARGET)\n#on nettoie le projet\nclean:\n\trm $(TARGET)\n# fausses cibles (phony)\n.PHONY: edit gdb clean<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Exemple d&rsquo;un petit projet <\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">cptchaine.c<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"c\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/********************************\n * Projet : passage de chaine\n * Auteur : Bogt\n * Date   : 28\/11\/2022\n ********************************\/\n#include &lt;stdlib.h>\n#include &lt;stdio.h>\n#include \"malib.h\"\n\nint main (int argc, char **argv)\n{\t\n\tint letter_number;\n\tletter_number=lg_chaine (\"Bonjour le monde\");\n\tprintf (\"on a %d lettre(s) ou espace(s) dans cette chaine\\n\",letter_number);\n\treturn EXIT_SUCCESS;\n}<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">malib.c<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"c\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">#include &lt;stdio.h>\n\/* fonction lg_chaine *\/\nint lg_chaine(char *chaine)\n{\n\tint nb_lettre;\n\tnb_lettre=0;   \/* pas de lettre au d\u00e9part de la fonction *\/\n\tprintf (\"%s \\n\",chaine);\n\twhile (chaine[nb_lettre]!=0)  \/* 0 ou '\\0' *\/\n \t{\n\t\tnb_lettre=nb_lettre+1; \t\/* on a une lettre en plus dans la chaine *\/\n\t}\n\treturn nb_lettre; \/* retour du nombre de lettre *\/\n}<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">malib.h   (header)<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"c\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">#ifndef __malib__\n#define __malib__\n\/* fonction lg_chaine *\/\nint lg_chaine(char *chaine);\n#endif<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">makefile  (version simple)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cptchaine: cptchaine.o malib.o\n\tgcc -o cptchaine malib.o cptchaine.o -Wall -ansi -pedantic -g\ncptchaine.o: cptchaine.c\n\tgcc -c cptchaine.c -Wall -ansi -pedantic\nmalib.o: malib.c\n\tgcc -Wall -ansi -pedantic -c malib.c\ntarball:\n\ttar -zcvf ..\/cptchaine.tar.gz cptchaine.c malib.c malib.h Makefile\nclean:\n\trm *.o cptchaine <\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">version am\u00e9lior\u00e9e<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CC = gcc\nCFLAGS = -Wall -ansi -pedantic -g\nOBJ = cptchaine.o malib.o\nTARGET = cptchaine\n\nall: $(TARGET)\n\n$(TARGET): $(OBJ)\n\t$(CC) -o $@ $^ $(CFLAGS)\n\ncptchaine.o: cptchaine.c\n\t$(CC) -c $&lt; -o $@ $(CFLAGS)\n\nmalib.o: malib.c\n\t$(CC) -c $&lt; -o $@ $(CFLAGS)\n\ntarball:\n\ttar -zcvf ..\/$(TARGET).tar.gz cptchaine.c malib.c malib.h Makefile\n\nclean:\n\t$(RM) $(OBJ) $(TARGET)\n\n.PHONY: all clean tarball<\/code><\/pre>\n\n\n\n<div data-wp-interactive=\"core\/file\" class=\"wp-block-file\"><object data-wp-bind--hidden=\"!state.hasPdfPreview\" hidden class=\"wp-block-file__embed\" data=\"https:\/\/workboot.fr\/ciela\/wp-content\/uploads\/2026\/05\/bavo-van-achte_gnumake.pdf\" type=\"application\/pdf\" style=\"width:100%;height:600px\" aria-label=\"Contenu embarqu\u00e9 bavo-van-achte_gnumake.\"><\/object><a id=\"wp-block-file--media-1647a008-e99f-4344-9861-6fd91a855731\" href=\"https:\/\/workboot.fr\/ciela\/wp-content\/uploads\/2026\/05\/bavo-van-achte_gnumake.pdf\">bavo-van-achte_gnumake<\/a><a href=\"https:\/\/workboot.fr\/ciela\/wp-content\/uploads\/2026\/05\/bavo-van-achte_gnumake.pdf\" class=\"wp-block-file__button wp-element-button\" download aria-describedby=\"wp-block-file--media-1647a008-e99f-4344-9861-6fd91a855731\">T\u00e9l\u00e9charger<\/a><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Make et makefile ou Makefile , souvent utiliser pour compiler un projet en langage c 1. Pourquoi utiliser Make ? Make\u00a0automatise la compilation : 2. Syntaxe de base Important\u00a0: Les [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"{\"document\":\"AADUK6jw+M8cr4DAlhKlvp2lGO+AwJYSAaW+naUYr4DAlhKlvp2lGO+AwJYSAaW+naUY74DAlhIApb6dpRivgMCWEqW+naUYr4DAlhKlvp2lGO+AwJYSA6W+naUY74DAlhIBpb6dpRivgMCWEqW+naUYr4DAlhKlvp2lGK+AwJYSpb6dpRivgMCWEqjw+M8cr4DAlhKo8PjPHK+AwJYSpb6dpRivgMCWEqW+naUYr4DAlhKlvp2lGK+AwJYSpb6dpRivgMCWEqW+naUYr4DAlhKlvp2lGK+AwJYSpb6dpRjvgMCWEgKlvp2lGK+AwJYSpb6dpRivgMCWEqW+naUYr4DAlhKlvp2lGK+AwJYSpb6dpRivgMCWEqW+naUYr4DAlhKlvp2lGK+AwJYSpb6dpRivgMCWEqW+naUYr4DAlhKlvp2lGK+AwJYSpb6dpRivgMCWEqW+naUYr4DAlhKlvp2lGK+AwJYSpb6dpRivgMCWEqW+naUYr4DAlhKlvp2lGK+AwJYSpb6dpRivgMCWEqW+naUYr4DAlhKlvp2lGK+AwJYSpb6dpRjvgMCWEhCDhoqBCq+AwJYSg4aKgQqvgMCWEoOGioEKr4DAlhKDhoqBCq+AwJYSg4aKgQqvgMCWEoOGioEKr4DAlhKc65ajHK+AwJYSg4aKgQqvgMCWEoOGioEKr4DAlhKDhoqBCq+AwJYSg4aKgQqvgMCWEoOGioEKr4DAlhKDhoqBCq+AwJYSg4aKgQqvgMCWEoOGioEKr4DAlhKDhoqBCq+AwJYSg4aKgQqvgMCWEoOGioEKr4DAlhKc65ajHK+AwJYSnOuWoxzvgMCWEgiDhoqBCq+AwJYSg4aKgQqvgMCWEoOGioEKr4DAlhKDhoqBCq+AwJYSg4aKgQqvgMCWEoOGioEKr4DAlhKDhoqBCq+AwJYSg4aKgQqvgMCWEoOGioEK74DAlhIBg4aKgQqvgMCWEoOGioEKr4DAlhKDhoqBCq+AwJYSg4aKgQqvgMCWEoOGioEKr4DAlhKDhoqBCq+AwJYSg4aKgQqvgMCWEoOGioEKr4DAlhKDhoqBCq+AwJYSg4aKgQqvgMCWEoOGioEKr4DAlhKDhoqBCq+AwJYSg4aKgQqvgMCWEoOGioEKr4DAlhKDhoqBCu+AwJYSA7WdzccK5b6dpRgAqPD4zxy1nc3HCuW+naUYEajw+M8cg4aKgQrlvp2lGACo8PjPHKW+naUYqPD4zxyDhoqBCuW+naUYAujw+M8cSYOGioEK5b6dpRgKqPD4zxyDhoqBCuW+naUYC6jw+M8ctZ3NxwrDhoqBCkKo8PjPHIOGioEK5b6dpRgUqPD4zxyDhoqBCuW+naUYCKjw+M8cg4aKgQrlvp2lGBmo8PjPHIOGioEK5b6dpRgOqPD4zxyDhoqBCuW+naUYDKjw+M8c5b6dpRglqPD4zxyDhoqBCuW+naUYGqjw+M8cg4aKgQrlvp2lGACo8PjPHKW+naUYqPD4zxyDhoqBCuW+naUYB6jw+M8ctZ3NxwrDhoqBCi2o8PjPHLWdzccKw4aKgQoAqPD4zxyDhoqBCqjw+M8ctZ3NxwqDhoqBCu+AwJYSANzrlqMcAIOGioEK6PD4zxwXg4aKgQro8PjPHBeDhoqBCujw+M8cF4OGioEK6PD4zxwXg4aKgQro8PjPHBeDhoqBCujw+M8cF7WdzccKw4aKgQoC6PD4zxwWtZ3NxwrDhoqBCgGo8PjPHLWdzccKw4aKgQoFqPD4zxy1nc3HCsOGioEKAajw+M8ctZ3NxwrDhoqBCgGo8PjPHLWdzccKw4aKgQoAqPD4zxy1nc3HCsOGioEKBKjw+M8ctZ3NxwrDhoqBCgCo8PjPHLWdzccKw4aKgQoDqPD4zxy1nc3HCsOGioEKAKjw+M8ctZ3NxwrDhoqBCgSo8PjPHLWdzccKw4aKgQoAqPD4zxy1nc3HCsOGioEKI6jw+M8cr4DAlhLDhoqBCgrc65ajHASDhoqBCqjw+M8ctZ3NxwrDhoqBChmo8PjPHLWdzccKw4aKgQoHqPD4zxy1nc3HCsOGioEKAKjw+M8cg4aKgQqo8PjPHLWdzccKw4aKgQoHqPD4zxy1nc3HCsOGioEKAKjw+M8cg4aKgQqo8PjPHLWdzccKw4aKgQoHqPD4zxy1nc3HCsOGioEKAKjw+M8cg4aKgQqo8PjPHLWdzccKw4aKgQoHqPD4zxy1nc3HCsOGioEKC6jw+M8ctZ3NxwrDhoqBCheo8PjPHLWdzccKw4aKgQoGr4DAlhLo8PjPHBblvp2lGAHo8PjPHDfDhoqBCgCo8PjPHIOGioEKqPD4zxyDhoqBCqjw+M8cg4aKgQro8PjPHATDhoqBCgHo8PjPHAavgMCWEpzrlqMcpb6dpRi1nc3HCqW+naUYtZ3Nxwqlvp2lGLWdzccKpb6dpRi1nc3HCqW+naUYtZ3Nxwqlvp2lGLWdzccKpb6dpRi1nc3HCqW+naUYtZ3Nxwqlvp2lGLWdzccKpb6dpRi1nc3HCqW+naUYtZ3Nxwqlvp2lGLWdzccKpb6dpRi1nc3HCqW+naUYtZ3NxwqDhoqBCuW+naUYALWdzccKpb6dpRi1nc3HCoOGioEK5b6dpRgAtZ3Nxwqlvp2lGLWdzccKpb6dpRi1nc3HCqW+naUYtZ3Nxwqlvp2lGLWdzccKpb6dpRi1nc3HCqW+naUYtZ3Nxwqlvp2lGLWdzccKpb6dpRi1nc3HCqW+naUYtZ3Nxwqlvp2lGLWdzccKpb6dpRi1nc3HCqW+naUYtZ3Nxwqlvp2lGLWdzccKg4aKgQrlvp2lGAC1nc3HCqW+naUYtZ3NxwqDhoqBCuW+naUYALWdzccKpb6dpRi1nc3HCoOGioEK5b6dpRgAtZ3Nxwqlvp2lGLWdzccKpb6dpRi1nc3HCqW+naUYtZ3NxwqDhoqBCuW+naUYALWdzccKg4aKgQrc65ajHBSDhoqBCrWdzccKg4aKgQq1nc3HCoOGioEKtZ3NxwqDhoqBCrWdzccKg4aKgQq1nc3HCoOGioEKtZ3NxwqDhoqBCrWdzccKg4aKgQq1nc3HCoOGioEKtZ3NxwqDhoqBCrWdzccKg4aKgQq1nc3HCoOGioEKtZ3NxwqDhoqBCrWdzccKg4aKgQq1nc3HCoOGioEKtZ3NxwqDhoqBCrWdzccKg4aKgQq1nc3HCoOGioEKtZ3NxwqDhoqBCrWdzccKg4aKgQq1nc3HCoOGioEKtZ3NxwqDhoqBCrWdzccKg4aKgQq1nc3HCoOGioEKtZ3NxwqDhoqBCrWdzccKg4aKgQq1nc3HCoOGioEKtZ3NxwqDhoqBCrWdzccKg4aKgQq1nc3HCoOGioEKtZ3NxwqDhoqBCrWdzccKg4aKgQq1nc3HCoOGioEKtZ3NxwqDhoqBCrWdzccKg4aKgQq1nc3HCoOGioEKtZ3NxwqDhoqBCrWdzccKg4aKgQq1nc3HCoOGioEKtZ3NxwqDhoqBCrWdzccKg4aKgQq1nc3HCsOGioEKA5zrlqMcw4aKgQoE3OuWoxwAg4aKgQrc65ajHALDhoqBCgCc65ajHIOGioEK3OuWoxwcg4aKgQrc65ajHADlvp2lGIIIw4aKgQoUpb6dpRjDhoqBChSvgMCWErWdzccKpb6dpRic65ajHPWdzccKAKW+naUYnOuWoxylvp2lGJzrlqMc9Z3NxwoApb6dpRic65ajHLWdzccKpb6dpRic65ajHKW+naUYnOuWoxylvp2lGJzrlqMc9Z3NxwoCpb6dpRic65ajHPWdzccKAKW+naUYnOuWoxylvp2lGJzrlqMcpb6dpRic65ajHKW+naUYnOuWoxylvp2lGJzrlqMcpb6dpRic65ajHKW+naUYnOuWoxylvp2lGJzrlqMcpb6dpRic65ajHKW+naUYnOuWoxylvp2lGJzrlqMc9Z3NxwoBpb6dpRic65ajHKW+naUYnOuWoxylvp2lGJzrlqMcpb6dpRic65ajHKW+naUYnOuWoxylvp2lGJzrlqMcpb6dpRic65ajHKW+naUYnOuWoxylvp2lGJzrlqMcpb6dpRic65ajHKW+naUYnOuWoxylvp2lGJzrlqMcpb6dpRic65ajHKW+naUYnOuWoxylvp2lGJzrlqMcpb6dpRic65ajHKW+naUYnOuWoxylvp2lGJzrlqMcpb6dpRic65ajHKW+naUYnOuWoxz1nc3HCgHc65ajHAD1nc3HCg2DhoqBCpzrlqMcg4aKgQqc65ajHIOGioEKnOuWoxyDhoqBCpzrlqMcg4aKgQqc65ajHIOGioEK3OuWoxwBg4aKgQqc65ajHIOGioEKnOuWoxyDhoqBCpzrlqMcg4aKgQqc65ajHIOGioEKnOuWoxyDhoqBCpzrlqMcg4aKgQqc65ajHIOGioEKnOuWoxyDhoqBCpzrlqMcg4aKgQqc65ajHIOGioEK3OuWoxwD9Z3NxwoHg4aKgQqc65ajHIOGioEKnOuWoxyDhoqBCpzrlqMcg4aKgQqc65ajHIOGioEKnOuWoxyDhoqBCpzrlqMcg4aKgQqc65ajHIOGioEKnOuWoxyDhoqBCpzrlqMc9Z3NxwoAg4aKgQqc65ajHIOGioEKnOuWoxyDhoqBCpzrlqMcg4aKgQqc65ajHIOGioEKnOuWoxyDhoqBCpzrlqMcg4aKgQqc65ajHIOGioEKnOuWoxyDhoqBCpzrlqMcg4aKgQqc65ajHIOGioEKnOuWoxyDhoqBCpzrlqMcg4aKgQqc65ajHIOGioEKnOuWoxyDhoqBCtzrlqMcAaW+naUYr4DAlhKlvp2lGK+AwJYSpb6dpRivgMCWEqW+naUYr4DAlhKlvp2lGK+AwJYSpb6dpRivgMCWEqW+naUYr4DAlhKlvp2lGK+AwJYSpb6dpRivgMCWEqW+naUYr4DAlhKlvp2lGK+AwJYSpb6dpRivgMCWEqW+naUYr4DAlhKlvp2lGK+AwJYSnOuWoxzlvp2lGACvgMCWEqW+naUYr4DAlhKc65ajHOW+naUYAK+AwJYSpb6dpRivgMCWEqW+naUYr4DAlhKlvp2lGK+AwJYSpb6dpRivgMCWEqW+naUYr4DAlhKlvp2lGK+AwJYSpb6dpRivgMCWEqW+naUYr4DAlhKlvp2lGK+AwJYSpb6dpRivgMCWEqW+naUYr4DAlhKlvp2lGK+AwJYSpb6dpRivgMCWEpzrlqMc5b6dpRgAr4DAlhKlvp2lGK+AwJYSnOuWoxzlvp2lGACvgMCWEqW+naUYr4DAlhKc65ajHOW+naUYAK+AwJYSpb6dpRivgMCWEqW+naUYr4DAlhKlvp2lGK+AwJYSnOuWoxzlvp2lGACvgMCWEoOGioEKr4DAlhKDhoqBCq+AwJYSg4aKgQqvgMCWEoOGioEKr4DAlhKDhoqBCq+AwJYSg4aKgQqvgMCWEpzrlqMcr4DAlhKDhoqBCq+AwJYSg4aKgQqvgMCWEoOGioEKr4DAlhKDhoqBCq+AwJYSg4aKgQqvgMCWEoOGioEKr4DAlhKDhoqBCq+AwJYSg4aKgQqvgMCWEoOGioEKr4DAlhKDhoqBCq+AwJYSg4aKgQqvgMCWEpzrlqMcr4DAlhKc65ajHK+AwJYSg4aKgQqvgMCWEoOGioEKr4DAlhKDhoqBCq+AwJYSg4aKgQqvgMCWEoOGioEKr4DAlhKDhoqBCq+AwJYSg4aKgQqvgMCWEoOGioEKr4DAlhKDhoqBCq+AwJYSg4aKgQqvgMCWEoOGioEKr4DAlhKDhoqBCq+AwJYSg4aKgQqvgMCWEoOGioEKr4DAlhKDhoqBCq+AwJYSg4aKgQqvgMCWEoOGioEKr4DAlhKDhoqBCq+AwJYSg4aKgQqvgMCWEoOGioEKr4DAlhKDhoqBCq+AwJYSg4aKgQqvgMCWEoOGioEKr4DAlhKDhoqBCq+AwJYSg4aKgQrvgMCWEiLDhoqBCgDvgMCWEgDo8PjPHACvgMCWEqjw+M8ctZ3NxwrDhoqBCgOlvp2lGMOGioEKAaW+naUYg4aKgQqlvp2lGMOGioEKAaW+naUYw4aKgQoApb6dpRiDhoqBCqW+naUYg4aKgQqlvp2lGMOGioEKBKW+naUYw4aKgQoBpb6dpRiDhoqBCqW+naUYg4aKgQqlvp2lGIOGioEKpb6dpRiDhoqBCqW+naUYg4aKgQqlvp2lGIOGioEKpb6dpRiDhoqBCqW+naUYg4aKgQqlvp2lGIOGioEKpb6dpRiDhoqBCqW+naUYw4aKgQoCpb6dpRiDhoqBCqW+naUYg4aKgQqlvp2lGIOGioEKpb6dpRiDhoqBCqW+naUYg4aKgQqlvp2lGIOGioEKpb6dpRiDhoqBCqW+naUYg4aKgQqlvp2lGIOGioEKpb6dpRiDhoqBCqW+naUYg4aKgQqlvp2lGIOGioEKpb6dpRiDhoqBCqW+naUYg4aKgQqlvp2lGIOGioEKpb6dpRiDhoqBCqW+naUYg4aKgQqlvp2lGIOGioEKpb6dpRiDhoqBCqW+naUYw4aKgQqYAeW+naUYcYOGioEKpb6dpRiDhoqBCqW+naUYg4aKgQqlvp2lGIOGioEKpb6dpRiDhoqBCqW+naUYg4aKgQqlvp2lGIOGioEKpb6dpRiDhoqBCqW+naUYg4aKgQqlvp2lGIOGioEKpb6dpRiDhoqBCqW+naUYg4aKgQqlvp2lGIOGioEK5b6dpRgBg4aKgQqlvp2lGIOGioEK5b6dpRgBg4aKgQqlvp2lGIOGioEKpb6dpRiDhoqBCqW+naUYg4aKgQqlvp2lGIOGioEKpb6dpRiDhoqBCqW+naUYg4aKgQqlvp2lGIOGioEKpb6dpRiDhoqBCqW+naUYg4aKgQqlvp2lGIOGioEKpb6dpRiDhoqBCqW+naUYg4aKgQqlvp2lGIOGioEK5b6dpRgBg4aKgQqlvp2lGIOGioEK5b6dpRgBg4aKgQqlvp2lGIOGioEK5b6dpRgBg4aKgQqlvp2lGIOGioEKpb6dpRiDhoqBCqW+naUYg4aKgQrlvp2lGAGDhoqBCqW+naUYw4aKgQpF5b6dpRgBw4aKgQqBAeW+naUYAMOGioEKgwilvp2lGIOGioEKpb6dpRiDhoqBCqW+naUYw4aKgQoBpb6dpRiDhoqBCqW+naUYg4aKgQqlvp2lGIOGioEKpb6dpRiDhoqBCuW+naUYAcOGioEKAaW+naUYw4aKgQpfpb6dpRjDhoqBChvlvp2lGAKDhoqBCuW+naUYA4OGioEKpb6dpRiDhoqBCqW+naUYw4aKgQoA5b6dpRgAw4aKgQpD5b6dpRgGg4aKgQqlvp2lGMOGioEKPaW+naUYw4aKgQp+pb6dpRiDhoqBCqW+naUYw4aKgQoDpb6dpRjDhoqBCogBpb6dpRjDhoqBCoAFrCMCqgPcAwKcBpAB0gcCrCToJJItlAE4+C4DAYJC\/kECtFiqARAq9loCgFsUmgEYsAEkMvBfAwCqhAGNAQEzACoKggEyCqABMJoBOJ4BFgwclgHokwEDAAYDC7yzAiKaAZIBOCD2sQKwswKEAYABqAEyLq4BJDKKARzauwKUAuAKAwagqgOEApABogGAAZoBMJYCLM61AwKwxgOKATotADI6gAGGATCGASCOAhw2\/scDcNgKAtgGuAFm1gEItAIOGAIiBAIEAtQB8AJEjgUCtgH2AfAECIwj1hYAJs4FAQIKAkIBDUoAvAIBAgoCQgENSgCcAgECCgJCAQ1K7A0KviMOCgQoAvAB2iMMhiWWC5oBICLGBgjgLAqGqQIGAggGCgQICgwEBgQDAAQCGgQCWAKMBAgKAgoEkgQC\/AMCsgHuBv6qAgyAPXoGBAIEBgMABBjMCvoyDrZCsgQgChLsBcRDEJZBAwAKBAIEDgQSAggE1gXWPRKgSpYDLCqKA3QaDNhSFKJUArACBCQcBQAoDgIOEgQCCBwKCAMAOpgBOigUBMgL0FMWnmgsAgYIAgYFAAIGAwHMahi0bqoQ3FyCR9pqGo6BAfwCQgEE2n0Mthf2EgMABAMABAMBpBICBAMABAIFAPoSBAKYMsA4DqjzAQLUvwGUvwH28wEslpkBwJoBAghKqDcBAgoCQgENSgCaAwECCgJCAQ1KAJgDAQIKAkIBDUoAoAMBAgoCQgENSgCOAwECCgJCAQ1KAKQDAQIKAkIBDUrsSC6knAHGAwAm\/k4BAgoBDkrySzC0mwEC5JwBMryhAUgCbPqhATSEogEC+KIBNoCxAeoHyqoBOLisAQLwrQE6lroB5AWCAuYCxrUBPLi2AQL0twE+nMsB6gXKDOS6AYABksgBAtLJAYIBjtcByASsAcwJ5swBhAG21AEC+tUBhgGSsQLCAQwCDgQKBgwClicDAAgCCgMA8m3S7AEGhrMCHC4IpASGBcKzAgTuAYapAvixAoQBqtwCdAUAAwAEBgQDAQ4C6N0ChgGs9gIsCgR48vcCiAGY3QKEGfiPAo72AfjdAooBqvcCBEIBBPT4AowBgv0CsBXgqwKKlQLm\/QKOAbaSAwRCAQTElAOQAbKYAx7YsQKErgLKlwOSAaSkAwRCAQT2pQOUAY6oAwwGrgESsAfoCuioA5YBsNMDLAIEAwMGAwAG0NYDmAGOxQOwB7oB5AxM8M4CAQIKAkIBDUrkd+gBqIgBAQEIAQ9ILgIBAQgBEEhkngF4BAIBAYYBop0ByJsBKLYC\/AXCAQECqpoBGvyWAdqIAQKErAEC+iaMA8iLAYIDkAGcHaoIlAE4kBO4FqoBECoMFNRYrlkY9lmmWyQyviSNAQEzACoKggEyCviHAZiJATD4iQGSiwE4+osBmI0BFgwcwo4BmI8B4pMBAQEIAQ5ImrQCIpoBkgE4ILoBhAGAAagBMi6uASQyigEcimeEApABogGAAZoBMJYCLKQRigE6LQAyOoABhgEwhgEgjgIcNroRAtCuAQDMrwGkBry8AfbGAgKqvgLEvAIIFgKKzQL8zAJCZACkAQYEAwAKBAMBStYBJNwBAsYNLABQJlAUAQEIAQ9IAgUAQkisAQEBCAIIAhYDAAYMAgQIAgQDAtQBAQ5IAJwCAQEIAQ9ILgIBAQgCIAKOAQL0AQENSAC6AgEBCAJCAQ1IAJoCAQEIAkIBDUjEBo4IAQEIAQ9I\/gy8DQMBlgQMqA4DAhwDAe4UgBbIFgQCSKIWAQEIAQ9IAgUANAIIAwEEAwAIAhIE9gG6AQEBCAEPSM4EAwKQBIoHBQADAQwEBgMBBgMCBgISAg4KDgIGAwE2AgoG0AMEggQCwAQDAJYEIAIcAgwCEAIEAvoFlAYC9gLCC4wOAQEIAQ9IxjSQIgMBLr4YAwMEFOY8kjSUCQUAAgQDAQQDAQUBxgoEApYK3gqiCgEBCAEPSOYClgMDANgDAwIEkAEClAUCzgQFAJAEAgYEAwMECAIFAAIKAwAGAwHEEJAQAQEIAQ9I\/AaGB64EAwAHAAQKAgQGEAIEAuwNlgYCqgf+C6INAQEIAQ9IZuwClgXoAgIsvAICEgIqAgQCDAMBCAoC8AKqBPYBvgECDgIEAgQOAgoC\/AKIAwIG1AEE9gMC\/gKaCQEBCAEPSAIFAOoGvAjoAa4CAwEEAhwCGgMDCAMAGgIECAMADAIEAgcAAwIEAwIOAgQCCAIGAwEKAwAIAwASAgQGAwEIAhACJgIECAMADAIEBgQCCAIQAhoKAwEQAgQCCBwIKtAK4AIDAKoVAQEIAQ9ICiYDAAQDAQQCBgUAAgYDAeABpAEBAQgBD0j0E5QXAw8GFggCBgLuBAQCAQQCtATeAQMFBAMCrAkS\/AkErgsS\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\/BqCGwEBCAEPSOQXAt4Eph\/cA5wEBOoEsAQBAQgBD0gCBAIBBAIqDswCNo4RAggCjgICBgKoAQL2E44V4BakFgEBCAEPSEywAcIeAqYcSoQDAQEIAQ9I4AE2kAIDDQYEFggCBgL0AgQCAQQCugIODPgBAwUEAwMMFhLeAwImsg4BAQgBD0gKKgLqDLoNygIDAIIDAQEIAQ9IAgUAMgIEAhACDgIJASAEDgIQAhgEGiAUAhICBhAIAjAEFCACHhAkAhoCCCARACwCmAEgDBDODYoWBhICiAIGDgL+GoIdAsIbhhsBAQgBD0jCHJobsALSHQKKGwUAjAMIJAQaCCACEAggAwAQCAISECIIMhAKAiQIPhADAAUAAhIIPhAEAgoIjgECNhAMCC4Q8CukLAEBCAEPSAomAwAEAwQEAwLmELwQAsgQqh7oHgKeDySIDwLQCqAGAwEIAwEJAAMAAQADAAkIChIJCAMACSARAAgQCBAIEAgQCOANChgCIgQCBAKiIA4KBCigC5oBICLGBgim\/AEKBgIIBgoECAoMBAYEAwAEAhoEXAYCjAQICgcABJIExAQKAv4E8O4BBwAEAgQGAwAEiAsgChLKBwMACgQCBA4EEgIIBL4KHiyoAwx0GgyGBQoEJBwE8FicWQ4CDhIEAggcCggDADqYATooFASECwQCBggCBgUAAgYDAfJjBAMABAMABAMApBIDAAQDAAQCBPgSAgQCjI0BAQOmCowFCAKUBq4EiAgChhECmg0CjF0GDAIOBAoGDJQnBAMACAIKAwD4JhwuCKQEhgXCswIE7gGC1AIGBQADAAQGBAMBDrQaBAoEhDEMBq4BErAHniIEAgQDArAP6A8DAOQPsAe6AcbFA\/wNnqYCAQHkA\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hACBAIQBoQCoACEAKAWhAKgAxAzBAMQCwQDEBKEBhwAhACgAIQAnASEAKA8nAKEAqACEAYEAhAGBAIQAgQCEAoEAhACBAIQDgQCEAKECqADECAQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAMQAoQHBE4EAwQEhAKEAwQChAcEBoQHBAKEAwQKhA8EAoQHBCqECwROhAqgAKAChDagAwROhCMEIoQHBDqEBwViHACEAKAAhACcAIQEoDycAoQCoACcAKAAnACgABAEoBMQAoQHBAMQAIQCoACgAqAChAKgAwQChAcEBoQHBAKEAwQKhACgAoQLBAKEBwQqhAsEToQAoAKEAKACoACgAqAAoAKgAKACoACgAqAAoAKgAKACoACgAoQAoAKEAKAChACgAoQAoAKEAKAChACgAoQAoAKEAKAChACgAoQAoAKEAKAChACgAoQAoAKEAKAChACEAwRChACgAoQAoAKEAKAChACgAoQAoAKEAKAChACgAoQAoAKEAKADBCKEAKAChACgAwQ4hAKEAKAChACEAoQAoAKEAKADBAagAKACoACgAoQAoAKEAKADBAKEAKADBAqEAKAChACgAoQAoAMEAoQAoAKEAKADBCqEAKAChACgAoQAoAMEToQHBLIcAIQAoACEAJwEhACgPJwAEAIQQgQAAAKEAqAAoAMQKwQAAAIEAAACBAMQAhAGBAIQBgQCEA4EAhAOBAIQDgQCEA4EAhAOBAIQDgQCEAIELhACBAoQAgQCEAYEHhACBBoQAgQPBAAAAxALBAMQNwQDEAMEDxAGhAcEAAADBAMQEwQAAAMQAwQDEAMEAxADBAMQAwQDEAMEBxADBAMQAwQDEAMEAxAHBAMQAwQDEAIcAIQAoACEAJwAhASgPJwChASEBoQEhAAEAAADEBMEOxADBAcQAwQHEAMEAxADBBQAAoQCoACgBhwAhACgAIQAnASEAKA8nAMQLhAAEAIEAwQCBAIQAgQCHACEAKAEnASgQJwChAKgAIQCoAAQAxALBAIQBxACEAIcAIQAoACEAJwEhACgPJwAEAIEAhAOhAKgAIQCoAIcAIQAoAScBKBAnAMQBhACBAIQAgQCEAIEABACBAIQAgQCEAIEAhACBAMQAhwAhACgAIQAnASEAKA8nAMQCgQCEAIEAhACBAIQAgQCEAIEAhACBAIQABACHACEAKAEnASgQJwDEA8EAxADBAMQAwQDEA8EAxACBAKEAqAAhAKgAxAcEAIQBhwAhACgAIQAnASEAKA8nAAQAhAGBAIcAIQAoAScBBACEASgQJwCHACEAKAAhACcBIQAoDycAoQCoACEAqADEAIQEBACEAIEAhwAhACgBJwEEAIQBKBAnAKEAqAAhAKgAhwAhACgAIQAnASEAKA8nAMEDgQAEAIQBgQCHACEAKAEnAQQAhAEoECcAoQCoACEAqACBAAAAwQzEA4QAgQCEAIEAhACBAIQAgQCEAIEAhACBA4QAgQCEA4EAhAiBAIQCAACBAAAAhwAhACgAIQAnASEAKA8nAMEJgQChAwAAxwAoACEAKAAnACgRJwAHACEAKAEnAQQAKA8nAIcAIQAoAScBBACEASgPJwCHACEAKAEnAQQAhAMoDycAhwAhACgBJwEEAIQBKA8nAIcAIQAoAScBBACEASgPJwCHACEAKAEnAQQAhAIoDycAhwAhACgBJwEEAIQBKA8nAIEAAADECAAAxAPBAMQAwQDEAcEMxAXBA8QAwQOBAMQLwQDEAAAAxAnBAaEBxAHBAaEBxAGhAUcAIQAoAScBKBAnAAEAhACBAIQAgQCEAMQBwQLEAaEBxwAhACgBJwEoECcABACECIEAhA+BAIQHxAnBAMQLwQDEA8EAxALBAMQAwQDEAMEAxAHBAKEBxAChBQQAhASBAIQKoQCoACgAhwAhACgAIQAnASEAKA8nAKEAqAAEAIQDgQGEBIEAhAaBAIQEgQCEAIEAhACBAIQKgQGEAIEAhAaBAIQBgQCEAIEBhACBAIQCgQCEAoEAhAKBAIQAxAvBAMQBwQDEAcEAxADBAMQAwQDEAMEAxADBAMQAwQDEAMEAxADBAMQAwQDEAcEAxADBAMQDwQDEAsEAxAKhAYQHgQCEA8QAoQGHACEAKAAhACcBIQAoDycAhACBAIQAgQCEAIEAhAOBAIQKBACEDYEAhAGhAKgAKACHACEAKAAhACcAIQEoDycAoQCoACEAKAXEEMEAxAOhAKgAoQDEAcEAxADBAMQAoQCoAKEBxwAhACgBJwEoECcABACEBocAIQAoAScBKBAnAMQBhAEEAIEAhACHACEAKAAhACcAIQEoDycAoQCoACEAKAWhAKgAoQDEAIQAgQCEAIEAhACBAIQAgQCEAIEAhAChAKgAhwAhACgBJwEoECcAhAGhAQQAhwAhACgAIQAnACEBKA8nAMQAhAeBAIQGgQCEAYEAhACBAIQBoQCoACEAKAWhAKgAoQCoAMQQoQGHACEAKAEnASgQJwAEAIEAhAKhAYcAIQAoACEAJwEhACgPJwChAKgABACEB4EBhAiBAIQEgQCEBIEAhAGBAIQEgQCEAIEAhAKBAIQAgQCEAYEAhACBAIQAgQCEAIEAhAGBAIQAhwAhACgAIQAnASEAKA8nAMQAhAGhAqgABACBAIQCgQCEAoEAhAKBAIQCgQCEAIEAhACBAIQCgQCEAIEAhAWBAIQAgQCEAoEAhAKBAIQAgQCEAIEAhADHACEAKAEnASgQJwAEAIQHgQCEBIEAxADBAMQAhACBAKEBxAGh5NoC38ICc3RhdGV2ZXJzaW9uJm5ic3A7Jm5ic3A7Jm5ic3A7CiZuYnNwOyZuYnNwOyZuYnNwOwoKJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7CgoKCgoKCgoKCiZndDsKJmd0OwoKCgoKCgoKCgoKCiZuYnNwOyZuYnNwOwoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKb3JpZ2luYWxDb250ZW50MS4gUHVxdWkgbGlyTWtlP2xldmVsY29udGVudDxzdHJvbmc+TWFrZTwvc3Ryb25nPsKgYXV0b21hdGlzZSBsYSBjb21waWxhdGlvbiA6ZHJvcENhcG9yZGVyZWR2YWx1ZXNjbGllbnRJZG9yaWdpbmFsQ29udGVudGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnTDiXZpdGUgZGUgcmV0YXBlcsKgPGNvZGU+Z2NjIC1vIHByb2cgbWFpbi5jIHV0aWxzLmM8L2NvZGU+wqDDoCBjaGFxdWUgZm9pc1VBR0hpZGVEZXNrdG9wVUFHSGlkZU1vYlVBR0hpZGVUYWJVQUdMb2dnZWRJblVBR0xvZ2dlZE91dFVBR0RheVVBR1Jlc3BvbnNpdmVDb25kaXRpb25zVUFHQW5pbWF0aW9uVHlwZVVBR0FuaW1hdGlvblRpbWVVQUdBbmltYXRpb25EZWxheVVBR0FuaW1hdGlvbkVhc2luZ1VBR0FuaW1hdGlvblJlcGVhdFVBR1Bvc2l0aW9uVUFHU3RpY2t5TG9jYXRpb25VQUdTdGlja3lSZXN0cmljdGVkVUFHU3RpY2t5T2Zmc2V0aW5uZXJCbG9ja3NjbGllbnRJZG9yaWdpbmFsQ29udGVudGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnROZSByZWNvbXBpbGUgcXVlIGxlcyBmaWNoaWVycyBtb2RpZmnDqXMgKGdhaW4gZGUgdGVtcHMpVUFHSGlkZURlc2t0b3BVQUdIaWRlTW9iVUFHSGlkZVRhYlVBR0xvZ2dlZEluVUFHTG9nZ2VkT3V0VUFHRGF5VUFHUmVzcG9uc2l2ZUNvbmRpdGlvbnNVQUdBbmltYXRpb25UeXBlVUFHQW5pbWF0aW9uVGltZVVBR0FuaW1hdGlvbkRlbGF5VUFHQW5pbWF0aW9uRWFzaW5nVUFHQW5pbWF0aW9uUmVwZWF0VUFHUG9zaXRpb25VQUdTdGlja3lMb2NhdGlvblVBR1N0aWNreVJlc3RyaWN0ZWRVQUdTdGlja3lPZmZzZXRpbm5lckJsb2Nrc2NsaWVudElkb3JpZ2luYWxDb250ZW50aXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudEZhY2lsaXRlIGxhIGdlc3Rpb24gZGVzIHByb2pldHMgbXVsdGktZmljaGllcnNVQUdIaWRlRGVza3RvcFVBR0hpZGVNb2JVQUdIaWRlVGFiVUFHTG9nZ2VkSW5VQUdMb2dnZWRPdXRVQUdEYXlVQUdSZXNwb25zaXZlQ29uZGl0aW9uc1VBR0FuaW1hdGlvblR5cGVVQUdBbmltYXRpb25UaW1lVUFHQW5pbWF0aW9uRGVsYXlVQUdBbmltYXRpb25FYXNpbmdVQUdBbmltYXRpb25SZXBlYXRVQUdQb3NpdGlvblVBR1N0aWNreUxvY2F0aW9uVUFHU3RpY2t5UmVzdHJpY3RlZFVBR1N0aWNreU9mZnNldGlubmVyQmxvY2tzMi5TeXR4IGJhZWxldmVsaTrDqXBkY2U8YjxtcmtzdHlsZT0iYmFrZ291LWNvbG86cmdiYSgwLDAsMCwwKSJjc3M9Imhhcy1uaW4tY29sb3JoYXMtdnZpZC1yZWQtY29vciI+PHN0cm9uZz5JbXBvcnRuPC9zdHJvbmc+wqA6TGVzY21tYW5kb2l2dCBjb21tZXJwYXIgdWXCoDxzdHJnPnRhYnVsYXRvPC9zdHJvbmc+wqAocCBkZXMgZXNwY3MhKTxicj48L21hcms+aWwgZmF1dCBjb21wbmRyIHF1ZSBwb3VmYWlyIGxhIGNpYmwgaSBmYXV0IGxhIG91IGxzIGTDqXBlbmRhbmNlIG5vbiBpbmZhaXNhYiBQcmVteGVtcHNtcGxldmVsZmljaXIgbWFrZmllIHVNYWtlZmlsZShmaWlydHh0ZSlobDo8Yj5nY2MgLWhsbG8uY2NtbSBkaXF1w6lsIGTDqXBuZGNzdGQndm9lZmlocihvdWMpIHZ2IChiKWJybm9AZWxsb3R0On4vV29ya3MvYW5nYWdlX0MvaGVsbG8ka2U8YnI+bWFrZTogKioqICBBdWN1ZSByw6hnbGUgcG91ciBmYWJyaXJhIGNpYmzCq8KgaGVsbG8uY8KgwrssIG7DqWNlc2FpcmUgcCDCq8KgaGVsbG\/CoMK7LiBBcnLDqnQuPGJyPmJydW5vQGVsbGlvdHQ6fi9Xb3Jrcy9sYW5nYWdlX0MvaGVsbG8kIGxzPGJyPm1ha2VmaWxlPGJyPmJydW5vQGVsbGlvdHQ6fi9Xb3Jrcy9sYW5nYWdlX0MvaGVsbG8kIGF0IG1ha2ZpbGU8YnI+aGVsbG86IGhlbGxvLmM8YnI+CWdjYyAtbyBoZWxsbyBoZWxsby5jPGJyPm91aSBpbCBtYW5xdWUgbGUgc291cmNlICFsYW5ndWFnZXRoZW1laGlnaGxpZ2h0bGluZW51bWJlcnNsaW5lb2Zmc2V0dGl0bGVncm91cGJydW5vQGxsaW90dDp+L1dvcmsvbGFuZ2FnZV9DL2hlbGxvJGN0IGhlbGxvLmMgPGI+LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLzxicj4vKiBFeGVtcGxlOiBoZWxsby5jICAgICAgICAgICAgICovPGJyPi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi88YnI+I25jbHVkZSAmbHQ7c3RkbGkuaD48YnI+I2luY3VkICZsdDt0ZGlvLmg+PGJyPjxicj5pbnRtaW4gKCkgPGJyPns8YnI+CXBzKCJCbmpvdXIgbGUgb25kZSBcbiIpOzxicj4JcmV1cm4gRVhJVF9TVUNDRVNTOzxicj59PGJyPmJydW5vQGVsbG90dDp+L1dvcmtzL2xhbmdhZ2VfQy9oZWxsbyQgbWFrZSA8YnI+Z2NjIC1vIGhlbGxvIGhlbGxvLmM8YnI+YnJub0BsbGlvdHQ6fi9Xb3Jrcy9sYW5nYWdlX0MvaGVsbG8kbHM8YnI+aGxsbyBoZWxsby5jICBmaWxlPGJyPmJydW5vQGVsbGlvdHQ6fi9Xb3Jrcy9sYW5nYWdlX0MvaGVsbG8kIG1ha2U8YnI+bWFrZTogwqvCoGhlbGxvwqDCuyBlc3Qgw6Agam91ci48YnI+YnJ1bm9AZWxsaW90dDp+L1dvcmtzL2xhbmdhZ2VfQy9oZWxsbyQgPGJyPmNvbnRlbnRMZXMgdmFyaWFibGVzIGF1dG9tYXRpcXVlIGRlIG1ha2VsZXZlbFZhcmlhYmxlIFNpZ25pZmljYXRpb24gRXhlbXBsZSBWYWxldXIgcG91ciB0YXJnZXQ6IGRlcDEgZGVwMmNsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudCRAICAgICBOb20gZGUgbGEgY2libGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQCDihpIgdGFyZ2V0IHRhcmdldFVBR0hpZGVEZXNrdG9wVUFHSGlkZU1vYlVBR0hpZGVUYWJVQUdMb2dnZWRJblVBR0xvZ2dlZE91dFVBR0RheVVBR1Jlc3BvbnNpdmVDb25kaXRpb25zVUFHQW5pbWF0aW9uVHlwZVVBR0FuaW1hdGlvblRpbWVVQUdBbmltYXRpb25EZWxheVVBR0FuaW1hdGlvbkVhc2luZ1VBR0FuaW1hdGlvblJlcGVhdFVBR1Bvc2l0aW9uVUFHU3RpY2t5TG9jYXRpb25VQUdTdGlja3lSZXN0cmljdGVkVUFHU3RpY2t5T2Zmc2V0aW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnQkJmx0OyAgICAgIFByZW1pw6hyZSBkw6lwZW5kYW5jZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJmx0OyDihpIgZGVwMSBkZXAxVUFHSGlkZURlc2t0b3BVQUdIaWRlTW9iVUFHSGlkZVRhYlVBR0xvZ2dlZEluVUFHTG9nZ2VkT3V0VUFHRGF5VUFHUmVzcG9uc2l2ZUNvbmRpdGlvbnNVQUdBbmltYXRpb25UeXBlVUFHQW5pbWF0aW9uVGltZVVBR0FuaW1hdGlvbkRlbGF5VUFHQW5pbWF0aW9uRWFzaW5nVUFHQW5pbWF0aW9uUmVwZWF0VUFHUG9zaXRpb25VQUdTdGlja3lMb2NhdGlvblVBR1N0aWNreVJlc3RyaWN0ZWRVQUdTdGlja3lPZmZzZXRpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudCReICAgICAgVG91dGVzIGxlcyBkw6lwZW5kYW5jZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJF4g4oaSIGRlcDEgZGVwMiBkZXAxIGRlcDJVQUdIaWRlRGVza3RvcFVBR0hpZGVNb2JVQUdIaWRlVGFiVUFHTG9nZ2VkSW5VQUdMb2dnZWRPdXRVQUdEYXlVQUdSZXNwb25zaXZlQ29uZGl0aW9uc1VBR0FuaW1hdGlvblR5cGVVQUdBbmltYXRpb25UaW1lVUFHQW5pbWF0aW9uRGVsYXlVQUdBbmltYXRpb25FYXNpbmdVQUdBbmltYXRpb25SZXBlYXRVQUdQb3NpdGlvblVBR1N0aWNreUxvY2F0aW9uVUFHU3RpY2t5UmVzdHJpY3RlZFVBR1N0aWNreU9mZnNldGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50JD8gICAgICBEw6lwZW5kYW5jZXMgcGx1cyByw6ljZW50ZXMgcXVlIGxhIGNpYmxlICAgICAgICAgJD8gZGVwMSAoc2kgcGx1cyByw6ljZW50KVVBR0hpZGVEZXNrdG9wVUFHSGlkZU1vYlVBR0hpZGVUYWJVQUdMb2dnZWRJblVBR0xvZ2dlZE91dFVBR0RheVVBR1Jlc3BvbnNpdmVDb25kaXRpb25zVUFHQW5pbWF0aW9uVHlwZVVBR0FuaW1hdGlvblRpbWVVQUdBbmltYXRpb25EZWxheVVBR0FuaW1hdGlvbkVhc2luZ1VBR0FuaW1hdGlvblJlcGVhdFVBR1Bvc2l0aW9uVUFHU3RpY2t5TG9jYXRpb25VQUdTdGlja3lSZXN0cmljdGVkVUFHU3RpY2t5T2Zmc2V0aW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnQkKiAgICAgIEJhc2UgZHUgbm9tIGRlIGZpY2hpZXIgKHNhbnMgZXh0ZW5zaW9uKSAgICAgICAkKiDihpIgZmlsZSBwb3VyIGZpbGUuYyBkZXAxIChzYW5zIC5jKVVBR0hpZGVEZXNrdG9wVUFHSGlkZU1vYlVBR0hpZGVUYWJVQUdMb2dnZWRJblVBR0xvZ2dlZE91dFVBR0RheVVBR1Jlc3BvbnNpdmVDb25kaXRpb25zVUFHQW5pbWF0aW9uVHlwZVVBR0FuaW1hdGlvblRpbWVVQUdBbmltYXRpb25EZWxheVVBR0FuaW1hdGlvbkVhc2luZ1VBR0FuaW1hdGlvblJlcGVhdFVBR1Bvc2l0aW9uVUFHU3RpY2t5TG9jYXRpb25VQUdTdGlja3lSZXN0cmljdGVkVUFHU3RpY2t5T2Zmc2V0aW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnQkKyAgICAgVG91dGVzIGTDqXBlbmRhbmNlcyAoYXZlYyBkb3VibG9ucykgICAgICAgICAgICAgJCsgZGVwMSBkZXAyIGRlcDFVQUdIaWRlRGVza3RvcFVBR0hpZGVNb2JVQUdIaWRlVGFiVUFHTG9nZ2VkSW5VQUdMb2dnZWRPdXRVQUdEYXlVQUdSZXNwb25zaXZlQ29uZGl0aW9uc1VBR0FuaW1hdGlvblR5cGVVQUdBbmltYXRpb25UaW1lVUFHQW5pbWF0aW9uRGVsYXlVQUdBbmltYXRpb25FYXNpbmdVQUdBbmltYXRpb25SZXBlYXRVQUdQb3NpdGlvblVBR1N0aWNreUxvY2F0aW9uVUFHU3RpY2t5UmVzdHJpY3RlZFVBR1N0aWNreU9mZnNldGlubmVyQmxvY2tzb3JkZXJlZHZhbHVlc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudFVBR0hpZGVEZXNrdG9wVUFHSGlkZU1vYlVBR0hpZGVUYWJVQUdMb2dnZWRJblVBR0xvZ2dlZE91dFVBR0RheVVBR1Jlc3BvbnNpdmVDb25kaXRpb25zVUFHQW5pbWF0aW9uVHlwZVVBR0FuaW1hdGlvblRpbWVVQUdBbmltYXRpb25EZWxheVVBR0FuaW1hdGlvbkVhc2luZ1VBR0FuaW1hdGlvblJlcGVhdFVBR1Bvc2l0aW9uVUFHU3RpY2t5TG9jYXRpb25VQUdTdGlja3lSZXN0cmljdGVkVUFHU3RpY2t5T2Zmc2V0aW5uZXJCbG9ja3MkQGxldmVsY29ycmVzcG9uZCBhdSBub20gZGUgYSBjaWJsZSAnYXJnZXQnJCZsdDtsZXZlbGNvcnJlc3BvbmQgw6AgZMOpcGVuZGFuY2UgMWxldmVsIFRvdXRlcyBsZXMgZMOpcGVuZGFuY2VzIF7ihpIgZGVwMSBkZXAyIGRlcDEgZGVwMmxldmVsRMOpcGVuZGFuY2VzIHBsdXMgcsOpY2VudGVzIHF1ZSBsYSBjaWJsZSA\/IGRlcDEgKHNpIHBsdXMgcsOpY2VudClsZXZlbCBCYXNlIGR1IG5vbSBkZSBmaWNoaWVyIChzYW5zIGV4dGVuc2lvbikgKuKGkiBmaWxlIHBvdXIgZmlsZS5jIGRlcDEgKHNhbnMgLmMpbGV2ZWxUb3V0c8OpcG5kbmNzKHZjZG9ibG9zKSQrZGUxIGRwMmRlMUVtcGQgbXFwYXJ0dSlsZXZlbCNsYSBjaWJsZSAoZWN1dGFibGUpPGJyPlRBUkdFVCA9IHRlc3Q8YnI+I01ha2VmaWxlIGV0aXQgcHJvamV0IGF2ZWMgc2tldG9uYzxicj5DRkxBR1M9IC1nIC1XYWxsIC1wZWFudGljIC1hbnNpPGJyPiNjb21waWxhdGVyIGljaSBnY2M8YnI+Q0MgPSBnY2M8YnI+REVCID0gZ2RiPGJyPiNzZWN0aW9vdXIgYXZvaXIgVEFSR0VUIGlsIGZhdXQgVEFSR0VULmMgIGZhcmUgPGJyPiQoVEFSR0VUKTogJChUQVJHRVQpLmM8YnI+CSQoQ0MpICQmbDskKENGTEFHUykgLW8gJEA8YnI+I2F2ZWMgZWRpdCBvbiBhdXJhIGxlIHNvdXJjZSBkYW5zIHZpPGJyPmVkaXQ6CSQoVEFSR0VUKS5jPGJyPgl2aSAkKFRBUkdFVCkuYzxicj4jb24gdmEgbGFuY2VyIGdkYiBhdmVjIGwnZXhlY3V0YWJsZTxicj5nZGI6CSQoVEFSR0VUKTxicj4JJChERUIpICQoVEFSR0VUKTxicj4jb24gbmV0dG9pZSBsZSA8YnI+Y2xlYW46PGJyPglybSQoVEFSR0VUKTxicj4jIGZhdXNzZXMgY2libGVzIChwaG9ueSk8YnI+LlBIT05ZOiBlZGl0IGdkYiBjbGVhbkV4ZW1sZSBkJ3VuIHBldCBwcm9qdCBsZXZlbGNwdGNoYWluZS5jbGFuZ3VhZ2V0aGVtZWhpZ2hsaWdodGxpbmVudW1iZXJzbGluZW9mZnNldHRpdGxlZ3JvdXBtYWxpYi5jbGFuZ3VhZ2V0aGVtZWhpZ2hsaWdodGxpbmVudW1iZXJzbGluZW9mZnNldHRpdGxlZ3JvdXBtYWxpYi5oICAgKGhlYWRlcilsYW5ndWFnZXRoZW1laGlnaGxpZ2h0bGluZW51bWJlcnNsaW5lb2Zmc2V0dGl0bGVncm91cG1rZih2ciljcHRjaGFpbjogY3B0Y2hhaW5lLm8gbWFsaWIubzxiPglnY2MgLW8gY3B0Y2hhaW5lIG1hbGliLm8gY3B0Y2hhaW5lLm8gLVdhbGwgLWFuIC1wZWRhbnRpYyAtZzxicj5jcHRjaGFpbmUuOiBjcHRjaGFpZS5jPGJyPglnY2MtYyBjcHRjaGluZS5jIC1XYWxsIC1hbnNpIC1wZWRhbnRpYzxicj5hYi46IG1hbGliLmM8Yj4JZ2NjIC1XYWxsIC1hbnNpIC1wZGFudGljIC1jIG1hbGliLmM8YnI+dGFyYmFsbDo8YnI+CXRhciAtemN2ZiAuLi9jcHRjaGFpbmUudGFyLmd6IGNwdGNoYWluZS5jIG1hbGliLmMgbWFsaWIuaCBNYWtlZmlsZTxicj5jbGVhbjo8YnI+CXJtICoubyBjcHRjaGFpbmUgdmVyw6nDqWNsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudENDID0gZ2NjPGJyPkNGTEFHUyA9IC1XYWxsIC1hbnNpIC1wZWRhbnRpYyAtZzxicj5PQkogPSBjcHRjaGFpbmUubyBtYWxpYi5vPGJyPlRBUkdFVCA9IGNwdGNoYWluZTxicj48YnI+YWxsOiAkKFRBUkdFVCk8YnI+PGJyPiQoVEFSR0VUKTogJChPQkopPGJyPgkkKENDKSAtbyAkQCAkXiAkKENGTEFHUyk8YnI+PGJyPmNwdGNoYWluZS5vOiBjcHRjaGFpbmUuYzxicj4JJChDQykgLWMgJCZsdDsgLW8gJEAgJChDRkxBR1MpPGJyPjxicj5tYWxpYi5vOiBtYWxpYi5jPGJyPgkkKENDKSAtYyAkJmx0OyAtbyAkQCAkKENGTEFHUyk8YnI+PGJyPnRhcmJhbGw6PGJyPgl0YXIgLXpjdmYgLi4vJChUQVJHRVQpLnRhci5neiBjcHRjaGFpbmUuYyBtYWxpYi5jIG1hbGliLmggTWFrZWZpbGU8YnI+PGJyPmNsZWFuOjxicj4JJChSTSkgJChPQkopICQoVEFSR0VUKTxicj48YnI+LlBIT05ZOiBhbGwgY2xlYW4gdGFyYmFsbFVBR0hpZGVEZXNrdG9wVUFHSGlkZU1vYlVBR0hpZGVUYWJVQUdMb2dnZWRJblVBR0xvZ2dlZE91dFVBR0RheVVBR1Jlc3BvbnNpdmVDb25kaXRpb25zVUFHQW5pbWF0aW9uVHlwZVVBR0FuaW1hdGlvblRpbWVVQUdBbmltYXRpb25EZWxheVVBR0FuaW1hdGlvbkVhc2luZ1VBR0FuaW1hdGlvblJlcGVhdFVBR1Bvc2l0aW9uVUFHU3RpY2t5TG9jYXRpb25VQUdTdGlja3lSZXN0cmljdGVkVUFHU3RpY2t5T2Zmc2V0aW5uZXJCbG9ja3NzaGVldGNoZWF0IGNsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzc2hvd0NvbnRlbnRzdW1tYXJ5VUFHSGlkZURlc2t0b3BVQUdIaWRlTW9iVUFHSGlkZVRhYlVBR0xvZ2dlZEluVUFHTG9nZ2VkT3V0VUFHRGF5VUFHUmVzcG9uc2l2ZUNvbmRpdGlvbnNVQUdBbmltYXRpb25UeXBlVUFHQW5pbWF0aW9uVGltZVVBR0FuaW1hdGlvbkRlbGF5VUFHQW5pbWF0aW9uRWFzaW5nVUFHQW5pbWF0aW9uUmVwZWF0VUFHUG9zaXRpb25VQUdTdGlja3lMb2NhdGlvblVBR1N0aWNreVJlc3RyaWN0ZWRVQUdTdGlja3lPZmZzZXRpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudGRyb3BDYXBwbGFjZWhvbGRlclVBR0hpZGVEZXNrdG9wVUFHSGlkZU1vYlVBR0hpZGVUYWJVQUdMb2dnZWRJblVBR0xvZ2dlZE91dFVBR0RheVVBR1Jlc3BvbnNpdmVDb25kaXRpb25zVUFHQW5pbWF0aW9uVHlwZVVBR0FuaW1hdGlvblRpbWVVQUdBbmltYXRpb25EZWxheVVBR0FuaW1hdGlvbkVhc2luZ1VBR0FuaW1hdGlvblJlcGVhdFVBR1Bvc2l0aW9uVUFHU3RpY2t5TG9jYXRpb25VQUdTdGlja3lSZXN0cmljdGVkVUFHU3RpY2t5T2Zmc2V0aW5uZXJCbG9ja3NzaGVldGNoZWF0ZmlsZU5hbWVzaG93RG93bmxvYWRCdXR0b25kb3dubG9hZEJ1dHRvblRleHRwcmV2aWV3SGVpZ2h0VMOpbMOpY2hhcmdlcjwhLS0gd3A6ZGV0YWlscyAtLT4KPCEtLSAvd3A6ZGV0YWlscyAtLT4KCmJhdm8tdmFuLWFjaHRlX2dudW1ha2VocmVmdGV4dExpbmtIcmVmaWRmaWxlSWRkaXNwbGF5UHJldmlldyA8cD5NYWtlIGV0IG1ha2VmaWxlIG91IE1ha2VmaWxlICwgc291dmVudCB1dGlsaXNlciBwb3VyIGNvbXBpbGVyIHVuIHByb2pldCBlbiBsYW5nYWdlIGMgPC9wPgpzaGVldDxkZXRhaWxzIGNsYXNzPSJ3cC1ibG9jay1kZXRhaWxzIj48c3VtbWFyeT5jaGVhdHNoZWV0PC9zdW1tYXJ5PjwhLS0gd3A6ZmlsZSB7ImlkIjo3OTc1LCJocmVmIjoiaHR0cHM6Ly93b3JrYm9vdC5mci9jaWVsYS93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wNS9iYXZvLXZhbi1hY2h0ZV9nbnVtYWtlLnBkZiIsImRpc3BsYXlQcmV2aWV3Ijp0cnVlfSAtLT4Kc3RhdGV2ZXJzaW9uY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50VUFHSGlkZURlc2t0b3BVQUdIaWRlTW9iVUFHSGlkZVRhYlVBR0xvZ2dlZEluVUFHTG9nZ2VkT3V0VUFHRGF5VUFHUmVzcG9uc2l2ZUNvbmRpdGlvbnNVQUdBbmltYXRpb25UeXBlVUFHQW5pbWF0aW9uVGltZVVBR0FuaW1hdGlvbkRlbGF5VUFHQW5pbWF0aW9uRWFzaW5nVUFHQW5pbWF0aW9uUmVwZWF0VUFHUG9zaXRpb25VQUdTdGlja3lMb2NhdGlvblVBR1N0aWNreVJlc3RyaWN0ZWRVQUdTdGlja3lPZmZzZXRpbm5lckJsb2Nrc0RFQiA9IGdkYiEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT48bGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT48L0RFQiA9IGdkYgouUEhPTlk6IGVkaXQgZ2RiIGMKLlBIT05ZOiBlZGl0IGdkYiBjbGVhbiMgZmF1c3NlcyBjaWJsZSAocGhvbnkpcyMgZmF1c3NlcyBjaWJsZXMgKHBob255KQpsZWFuc3RhdGV2ZXJzaW9uZG9jdW1lbnRkYXRlZG9jdW1lbnRzdGF0dXNkb2N1bWVudHRpdGxlZG9jdW1lbnRjb250ZW50ZG9jdW1lbnRleGNlcnB0ZG9jdW1lbnRhdXRob3Jkb2N1bWVudGZlYXR1cmVkX21lZGlhZG9jdW1lbnRjb21tZW50X3N0YXR1c2RvY3VtZW50cGluZ19zdGF0dXNkb2N1bWVudHRlbXBsYXRlZG9jdW1lbnRtZXRhX3VhZ19jdXN0b21fcGFnZV9sZXZlbF9jc3Nmb290bm90ZXNkb2N1bWVudGJsb2Nrc01ha2VmaWxlY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50ZHJvcENhcFVBR0hpZGVEZXNrdG9wVUFHSGlkZU1vYlVBR0hpZGVUYWJVQUdMb2dnZWRJblVBR0xvZ2dlZE91dFVBR0RheVVBR1Jlc3BvbnNpdmVDb25kaXRpb25zVUFHQW5pbWF0aW9uVHlwZVVBR0FuaW1hdGlvblRpbWVVQUdBbmltYXRpb25EZWxheVVBR0FuaW1hdGlvbkVhc2luZ1VBR0FuaW1hdGlvblJlcGVhdFVBR1Bvc2l0aW9uVUFHU3RpY2t5TG9jYXRpb25VQUdTdGlja3lSZXN0cmljdGVkVUFHU3RpY2t5T2Zmc2V0aW5uZXJCbG9ja3MxLiBQb3VycXVvaSB1dGlsaXNlciBNYWtlID9sZXZlbGNsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudDxzdHJvbmc+TWFrZTwvc3Ryb25nPmF1dG9tYXRpc2UgbGEgY29tcGlsYXRpb24gOmRyb3BDYXBVQUdIaWRlRGVza3RvcFVBR0hpZGVNb2JVQUdIaWRlVGFiVUFHTG9nZ2VkSW5VQUdMb2dnZWRPdXRVQUdEYXlVQUdSZXNwb25zaXZlQ29uZGl0aW9uc1VBR0FuaW1hdGlvblR5cGVVQUdBbmltYXRpb25UaW1lVUFHQW5pbWF0aW9uRGVsYXlVQUdBbmltYXRpb25FYXNpbmdVQUdBbmltYXRpb25SZXBlYXRVQUdQb3NpdGlvblVBR1N0aWNreUxvY2F0aW9uVUFHU3RpY2t5UmVzdHJpY3RlZFVBR1N0aWNreU9mZnNldGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNvcmRlcmVkdmFsdWVzVUFHSGlkZURlc2t0b3BVQUdIaWRlTW9iVUFHSGlkZVRhYlVBR0xvZ2dlZEluVUFHTG9nZ2VkT3V0VUFHRGF5VUFHUmVzcG9uc2l2ZUNvbmRpdGlvbnNVQUdBbmltYXRpb25UeXBlVUFHQW5pbWF0aW9uVGltZVVBR0FuaW1hdGlvbkRlbGF5VUFHQW5pbWF0aW9uRWFzaW5nVUFHQW5pbWF0aW9uUmVwZWF0VUFHUG9zaXRpb25VQUdTdGlja3lMb2NhdGlvblVBR1N0aWNreVJlc3RyaWN0ZWRVQUdTdGlja3lPZmZzZXRpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudMOJdml0ZSBkZSByZXRhcGVyPGNvZGU+Z2NjIC1vIHByb2cgbWFpbi5jIHV0aWxzLmM8L2NvZGU+w6AgY2hhcXVlIGZvaXNVQUdIaWRlRGVza3RvcFVBR0hpZGVNb2JVQUdIaWRlVGFiVUFHTG9nZ2VkSW5VQUdMb2dnZWRPdXRVQUdEYXlVQUdSZXNwb25zaXZlQ29uZGl0aW9uc1VBR0FuaW1hdGlvblR5cGVVQUdBbmltYXRpb25UaW1lVUFHQW5pbWF0aW9uRGVsYXlVQUdBbmltYXRpb25FYXNpbmdVQUdBbmltYXRpb25SZXBlYXRVQUdQb3NpdGlvblVBR1N0aWNreUxvY2F0aW9uVUFHU3RpY2t5UmVzdHJpY3RlZFVBR1N0aWNreU9mZnNldGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50TmUgcmVjb21waWxlIHF1ZSBsZXMgZmljaGllcnMgbW9kaWZpw6lzIChnYWluIGRlIHRlbXBzKVVBR0hpZGVEZXNrdG9wVUFHSGlkZU1vYlVBR0hpZGVUYWJVQUdMb2dnZWRJblVBR0xvZ2dlZE91dFVBR0RheVVBR1Jlc3BvbnNpdmVDb25kaXRpb25zVUFHQW5pbWF0aW9uVHlwZVVBR0FuaW1hdGlvblRpbWVVQUdBbmltYXRpb25EZWxheVVBR0FuaW1hdGlvbkVhc2luZ1VBR0FuaW1hdGlvblJlcGVhdFVBR1Bvc2l0aW9uVUFHU3RpY2t5TG9jYXRpb25VQUdTdGlja3lSZXN0cmljdGVkVUFHU3RpY2t5T2Zmc2V0aW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRGYWNpbGl0ZSBsYSBnZXN0aW9uIGRlcyBwcm9qZXRzIG11bHRpLWZpY2hpZXJzVUFHSGlkZURlc2t0b3BVQUdIaWRlTW9iVUFHSGlkZVRhYlVBR0xvZ2dlZEluVUFHTG9nZ2VkT3V0VUFHRGF5VUFHUmVzcG9uc2l2ZUNvbmRpdGlvbnNVQUdBbmltYXRpb25UeXBlVUFHQW5pbWF0aW9uVGltZVVBR0FuaW1hdGlvbkRlbGF5VUFHQW5pbWF0aW9uRWFzaW5nVUFHQW5pbWF0aW9uUmVwZWF0VUFHUG9zaXRpb25VQUdTdGlja3lMb2NhdGlvblVBR1N0aWNreVJlc3RyaWN0ZWRVQUdTdGlja3lPZmZzZXRpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudGRyb3BDYXBVQUdIaWRlRGVza3RvcFVBR0hpZGVNb2JVQUdIaWRlVGFiVUFHTG9nZ2VkSW5VQUdMb2dnZWRPdXRVQUdEYXlVQUdSZXNwb25zaXZlQ29uZGl0aW9uc1VBR0FuaW1hdGlvblR5cGVVQUdBbmltYXRpb25UaW1lVUFHQW5pbWF0aW9uRGVsYXlVQUdBbmltYXRpb25FYXNpbmdVQUdBbmltYXRpb25SZXBlYXRVQUdQb3NpdGlvblVBR1N0aWNreUxvY2F0aW9uVUFHU3RpY2t5UmVzdHJpY3RlZFVBR1N0aWNreU9mZnNldGlubmVyQmxvY2tzPCEtLSB3cDpoZGluZyAtLT4KPGgyIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj4xLiBQb3VycXVvaSB1dGlsaXNlciBNYWtlID88L2gyPgo8IS0tIC93cDpoZWFkaW5nIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPjxzdHJvbmc+TWFrZTwvc3Ryb25nPmF1dG9tYXRpc2UgbGEgY29tcGlsYXRpb24gOjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpsaXN0IC0tPgo8dWwgY2xhc3M9IndwLWJsb2NrLWxpc3QiPjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+w4l2aXRlIGRlIHJldGFwZXLCoDxjb2RlPmdjYyAtbyBwcm9nIG1haW4uYyB1dGlscy5jPC9jb2RlPsKgw6AgY2hhcXVlIGZvaXM8L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+Cgo8IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPk5lIHJlY29tcGlsZSBxdWUgbGVzIGZpY2hpZXJzIG1vZGlmacOpcyAoZ2FpbiBkZSB0ZW1wcyk8L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+Cgo8IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPkZhY2lsaXRlIGxhIGdlc3Rpb24gZGVzIHByb2pldHMgbXVsdGktZmljaGllcnM8L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+PC91bD4KPCEtLSAvd3A6bGlzdCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4yLiBTeW50YXhlIGRlIGJhc2VsZXZlbGNsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudGRyb3BDYXBVQUdIaWRlRGVza3RvcFVBR0hpZGVNb2JVQUdIaWRlVGFiVUFHTG9nZ2VkSW5VQUdMb2dnZWRPdXRVQUdEYXlVQUdSZXNwb25zaXZlQ29uZGl0aW9uc1VBR0FuaW1hdGlvblR5cGVVQUdBbmltYXRpb25UaW1lVUFHQW5pbWF0aW9uRGVsYXlVQUdBbmltYXRpb25FYXNpbmdVQUdBbmltYXRpb25SZXBlYXRVQUdQb3NpdGlvblVBR1N0aWNreUxvY2F0aW9uVUFHU3RpY2t5UmVzdHJpY3RlZFVBR1N0aWNreU9mZnNldGlubmVyQmxvY2tzY2libGU6IGTDqXBlbmRhbmNlcyAgICBjb21tYW5kZXNjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRkcm9wQ2FwVUFHSGlkZURlc2t0b3BVQUdIaWRlTW9iVUFHSGlkZVRhYlVBR0xvZ2dlZEluVUFHTG9nZ2VkT3V0VUFHRGF5VUFHUmVzcG9uc2l2ZUNvbmRpdGlvbnNVQUdBbmltYXRpb25UeXBlVUFHQW5pbWF0aW9uVGltZVVBR0FuaW1hdGlvbkRlbGF5VUFHQW5pbWF0aW9uRWFzaW5nVUFHQW5pbWF0aW9uUmVwZWF0VUFHUG9zaXRpb25VQUdTdGlja3lMb2NhdGlvblVBR1N0aWNreVJlc3RyaWN0ZWRVQUdTdGlja3lPZmZzZXRpbm5lckJsb2Nrc2hlYWRpbmcgLS0+CjxoMiBjbGFzcz0idy1ibG9jay1oZWRpbmciPjIuIFN5bnRheGUgZGUgYmFzZTwvaDI+CjwhLS0gL3dwOmhlYWRpbmcgLS0+Cgo8IS0tIHdwOmNvZGUgLS0+CjxwZSBjbHNzPSJ3cC1ibG9jay1jb2RlIj48Y29kZT5jaWJsZTogZMOpcGVuZGFuY2VzCiAgICBjb21tYW5kZXM8L2NvZGU+PC9wcmU+CjwhLS0gL3dwOmNvZGUgLS0+Cgo8IS0tIHdwOnBhcmE8c3Ryb25nPkltcG9ydGFudDwvc3Ryb25nPjogTGVzIGNvbW1hbmRlcyBkb2l2ZW50IGNvbW1lbmNlciBwYXIgdW5lPHN0cm9uZz50YWJ1bGF0aW9uPC9zdHJvbmc+KHBhcyBkZXMgZXNwYWNlcyAhKTxicj5tYXJrIHlsZT0iYmFja2d1ZC1jb2xvcjpyYmEoMCwgMCwgMCwgMCkiIGNsYXNzPSJoYXMtaW5saW5lLWNvbG9yIGhhcy12aXZpZC1yZWQtY29sb3IiPHN0cm9uZz48L21hcms+Y2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50ZHJvcENhcFVBR0hpZGVEZXNrdG9wVUFHSGlkZU1vYlVBR0hpZGVUYWJVQUdMb2dnZWRJblVBR0xvZ2dlZE91dFVBR0RheVVBR1Jlc3BvbnNpdmVDb25kaXRpb25zVUFHQW5pbWF0aW9uVHlwZVVBR0FuaW1hdGlvblRpbWVVQUdBbmltYXRpb25EZWxheVVBR0FuaW1hdGlvbkVhc2luZ1VBR0FuaW1hdGlvblJlcGVhdFVBR1Bvc2l0aW9uVUFHU3RpY2t5TG9jYXRpb25VQUdTdGlja3lSZXN0cmljdGVkVUFHU3RpY2t5T2Zmc2V0aW5uZXJCbG9ja3NtYXJrIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwgMCwgMCwgMCkiIGNsYXNzPSJoYXMtaW5saW5lLWNvbG9yIGhhcy12aXZpZC1yZWQtY29sb3IiPjxzdHJvbmc+SW1wb3J0YW50PHN0cm9uZz7CoDogTGVzIGNvbW1hbmRlcyBkb2l2ZW50IGNvbW1lbmNlciBhciB1bmXCoDxzdHJvbmd0YWJ1bGF0aW9uPC9zdHJvbmc+wqAocGFzIGRlcyBlc3BhY2VzICEpPGJyPjwvbWFyaz48L3A+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+ZG9jdW1lbnRzbHVnc3RhdGVzYXZlZEF0c3RhdGVzYXZlZEJ5UHJlbWllciBleGVtcGxlIHNpbXBsZWxldmVsY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50ZHJvcENhcFVBR0hpZGVEZXNrdG9wVUFHSGlkZU1vYlVBR0hpZGVUYWJVQUdMb2dnZWRJblVBR0xvZ2dlZE91dFVBR0RheVVBR1Jlc3BvbnNpdmVDb25kaXRpb25zVUFHQW5pbWF0aW9uVHlwZVVBR0FuaW1hdGlvblRpbWVVQUdBbmltYXRpb25EZWxheVVBR0FuaW1hdGlvbkVhc2luZ1VBR0FuaW1hdGlvblJlcGVhdFVBR1Bvc2l0aW9uVUFHU3RpY2t5TG9jYXRpb25VQUdTdGlja3lSZXN0cmljdGVkVUFHU3RpY2t5T2Zmc2V0aW5uZXJCbG9ja3NoZWFkaW5nIHsibGV2ZWwiOjN9IC0tPgo8aDMgY2xhc3M9InctYmxvY2staGVkaW5nIj5QZW1pZXIgZXhlbXBsZSBzaW1wbGU8L2gzPgo8IS0tIC93cDpoZWRpbiAtLT4KCjwhLS0gd3A6cGFncmFoZWxsbzogaGVsbG8uYyAgICBnY2MgLW8gaGVsbG8gaGVsbG8uY2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudGRyb3BDYXBVQUdIaWRlRGVza3RvcFVBR0hpZGVNb2JVQUdIaWRlVGFiVUFHTG9nZ2VkSW5VQUdMb2dnZWRPdXRVQUdEYXlVQUdSZXNwb25zaXZlQ29uZGl0aW9uc1VBR0FuaW1hdGlvblR5cGVVQUdBbmltYXRpb25UaW1lVUFHQW5pbWF0aW9uRGVsYXlVQUdBbmltYXRpb25FYXNpbmdVQUdBbmltYXRpb25SZXBlYXRVQUdQb3NpdGlvblVBR1N0aWNreUxvY2F0aW9uVUFHU3RpY2t5UmVzdHJpY3RlZFVBR1N0aWNreU9mZnNldGlubmVyQmxvY2tzCgo8IS0tIHdwOmNvZGUgLS0+CjxwcmUgY2xhc3M9IndwLWJsb2NrLWNvZGUiPjxjb2RlPmhlbGxvOiBoZWxsby5jCiAgICBnY2MgLW8gaGVsbG8gaGVsbG8uYzwvY29kZT48L3ByZT4KPCEtLSAvd3A6Y29kZSAtLT5maWNoaWVyIDogbWFrZWZpbGUgb3UgTWFrZWZpbGUgZmljaGllciA6IG1ha2VmaWxlIG91IE1ha2VmaWxlICAoZmljaGllciB0ZXh0ZSljbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRkcm9wQ2FwVUFHSGlkZURlc2t0b3BVQUdIaWRlTW9iVUFHSGlkZVRhYlVBR0xvZ2dlZEluVUFHTG9nZ2VkT3V0VUFHRGF5VUFHUmVzcG9uc2l2ZUNvbmRpdGlvbnNVQUdBbmltYXRpb25UeXBlVUFHQW5pbWF0aW9uVGltZVVBR0FuaW1hdGlvbkRlbGF5VUFHQW5pbWF0aW9uRWFzaW5nVUFHQW5pbWF0aW9uUmVwZWF0VUFHUG9zaXRpb25VQUdTdGlja3lMb2NhdGlvblVBR1N0aWNreVJlc3RyaWN0ZWRVQUdTdGlja3lPZmZzZXRpbm5lckJsb2NrcyAoZmljaGllciB0ZXh0ZSkKCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT5jb21tZSBpbmRpcXXDqSBsYSBkw6lwZW5kYW5jZSBlc3QgZCdhdm9pciBsZSBmaWNoaWVyIGhlbGxvLmMgcG9jb21tZSBpbmRpcXXDqSBsYSBkw6lwZW5kYW5jZSBlc3QgZCdhdm9pciBsZSBmaWNoaWVyIGhlbGxvLmMgcG91ciBwb3V2b2lyIGF2b2lyIGhlbGxvIChjaWJsZSkgKHNvdXJjZSkgKHNvdXJjZSkgIHVyIHBvdXZvaXIgYXZvaXIgaGVsbG8gKGNpYmxlKWNsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudGRyb3BDYXBVQUdIaWRlRGVza3RvcFVBR0hpZGVNb2JVQUdIaWRlVGFiVUFHTG9nZ2VkSW5VQUdMb2dnZWRPdXRVQUdEYXlVQUdSZXNwb25zaXZlQ29uZGl0aW9uc1VBR0FuaW1hdGlvblR5cGVVQUdBbmltYXRpb25UaW1lVUFHQW5pbWF0aW9uRGVsYXlVQUdBbmltYXRpb25FYXNpbmdVQUdBbmltYXRpb25SZXBlYXRVQUdQb3NpdGlvblVBR1N0aWNreUxvY2F0aW9uVUFHU3RpY2t5UmVzdHJpY3RlZFVBR1N0aWNreU9mZnNldGlubmVyQmxvY2tzCgo8IS0tIHdwOmNvZGUgLS0+CjxwcmUgY2xhc3M9IndwLWJsb2NrLWNvZGUiPjxjb2RlPjwvY29kZT48L3ByZT4KPCEtLSAvd3A6Y29kZSAtLT5icnVub0BlbGxpb3R0On4vV29ya3MvbGFuZ2FnZV9DL2hlbGxvJCBtYWtlbWFrZTogKioqICBBdWN1bmUgcsOoZ2xlIHBvdXIgZmFicmlxdWVyIGxhIGNpYmxlIMKraGVsbG8uY8K7LCBuw6ljZXNzYWlyZSBwb3VyIMKraGVsbG\/Cuy4gQXJyw6p0LmJydW5vQGVsbGlvdHQ6fi9Xb3Jrcy9sYW5nYWdlX0MvaGVsbG8kIGxzbWFrZWZpbGVicnVub0BlbGxpb3R0On4vV29ya3MvbGFuZ2FnZV9DL2hlbGxvJCBjYXQgbWFrZWZpbGUgaGVsbG86IGhlbGxvLmMJZ2NjIC1vIGhlbGxvIGhlbGxvLmNicnVub0BlbGxpb3R0On4vV29ya3MvbGFuZ2FnZV9DL2hlbGxvJCBtYWtlCm1ha2U6ICoqKiAgQXVjdW5lIHLDqGdsZSBwb3VyIGZhYnJpcXVlciBsYSBjaWJsZSDCq8KgaGVsbG8uY8KgwrssIG7DqWNlc3NhaXJlIHBvdXIgwqvCoGhlbGxvwqDCuy4gQXJyw6p0LgpicnVub0BlbGxpb3R0On4vV29ya3MvbGFuZ2FnZV9DL2hlbGxvJCBscwptYWtlZmlsZQpicnVub0BlbGxpb3R0On4vV29ya3MvbGFuZ2FnZV9DL2hlbGxvJCBjYXQgbWFrZWZpbGUgCmhlbGxvOiBoZWxsby5jCglnY2MgLW8gaGVsbG8gaGVsbG8uYwpjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRkcm9wQ2FwVUFHSGlkZURlc2t0b3BVQUdIaWRlTW9iVUFHSGlkZVRhYlVBR0xvZ2dlZEluVUFHTG9nZ2VkT3V0VUFHRGF5VUFHUmVzcG9uc2l2ZUNvbmRpdGlvbnNVQUdBbmltYXRpb25UeXBlVUFHQW5pbWF0aW9uVGltZVVBR0FuaW1hdGlvbkRlbGF5VUFHQW5pbWF0aW9uRWFzaW5nVUFHQW5pbWF0aW9uUmVwZWF0VUFHUG9zaXRpb25VQUdTdGlja3lMb2NhdGlvblVBR1N0aWNreVJlc3RyaWN0ZWRVQUdTdGlja3lPZmZzZXRpbm5lckJsb2Nrc291aSBpbCBtYW5xdWUgbGUgc291cmNlICFjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRkcm9wQ2FwVUFHSGlkZURlc2t0b3BVQUdIaWRlTW9iVUFHSGlkZVRhYlVBR0xvZ2dlZEluVUFHTG9nZ2VkT3V0VUFHRGF5VUFHUmVzcG9uc2l2ZUNvbmRpdGlvbnNVQUdBbmltYXRpb25UeXBlVUFHQW5pbWF0aW9uVGltZVVBR0FuaW1hdGlvbkRlbGF5VUFHQW5pbWF0aW9uRWFzaW5nVUFHQW5pbWF0aW9uUmVwZWF0VUFHUG9zaXRpb25VQUdTdGlja3lMb2NhdGlvblVBR1N0aWNreVJlc3RyaWN0ZWRVQUdTdGlja3lPZmZzZXRpbm5lckJsb2NrcwoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPm91aSBpbCBtYW5xdWUgbGUgc291cmNlICE8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYWggLS0+CnA+PC9wPgo8IS0tIC93cDpnaCAtLT5sYW5ndWFnZXRoZW1laGlnaGxpZ2h0bGluZW51bWJlcnNsaW5lb2Zmc2V0dGl0bGVncm91cGVubGlnaHRlci9jb2RlYmxvY2sgeyJsYW5ndWFnZSI6ImMifSAtLT4KPHJlIGNsc3M9IkVubGlnaHRlSlNSQVciIGR0YS1lbmxpaHRlLWxuZ3VhZ2U9ImMiIGRhdGEtZW5saWd0ZXItdGhlbWU9IiJkYXRhZW5saWdodGVyaGlnaGxpZ2h0PSIiIGRhdGEtZW5saWdodGVyLWxpbmVudW1iZXJzPSIiIGRhdGEtZW5saWdodGVyLWxpbmVvZmZzZXQ9IiIgZGF0YS1lbmxpZ2h0ZXItdGl0bGU9IiIgZGF0YS1lbmxpZ2h0ZXItZ3JvdXA9IiIvKioqKioqKioqKioqKioqKioqKioqKiovLyogRXhlbWxlOiBoZWxsby5jICAgICAgICAgICAgICovCi8qKioqKioqKioqKioqKioqKioqKioqKi8KI2luY2x1ZGUgJmx0O3N0ZGxpYi5oCiNpbmNsdWRlICZsdDtzdGRpby5oPgoKaW50IG1haW4gKCkgCnsKCXB1dHMoIkJvbmpvdXIgbGUgbW9uZGUgXG4iKTsKCXJldHVybiBFWElUX1NVQ0NFU1M7Cn0KcmVlbmxpdGVyL2NvZGVibG9ja2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudGRyb3BDYXBVQUdIaWRlRGVza3RvcFVBR0hpZGVNb2JVQUdIaWRlVGFiVUFHTG9nZ2VkSW5VQUdMb2dnZWRPdXRVQUdEYXlVQUdSZXNwb25zaXZlQ29uZGl0aW9uc1VBR0FuaW1hdGlvblR5cGVVQUdBbmltYXRpb25UaW1lVUFHQW5pbWF0aW9uRGVsYXlVQUdBbmltYXRpb25FYXNpbmdVQUdBbmltYXRpb25SZXBlYXRVQUdQb3NpdGlvblVBR1N0aWNreUxvY2F0aW9uVUFHU3RpY2t5UmVzdHJpY3RlZFVBR1N0aWNreU9mZnNldGlubmVyQmxvY2tzCgo8IS0tIHdwOnByYXAtLT48PjwvcD4KPCEtLSAvd3A6IC0tPmNvZGUgLS0+CjxlIGNsc3M9IndibG9ja2NvZGUiY29kZWNvZGU+PC9yZWNvZGVicnVub0BlbGxpb3R0On4vV29ya3MvbGFuZ2FnZV9DL2hlbGxvJCBjYXQgaGVsbG8uYyAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovLyogRXhlbXBsZTogaGVsbG8uYyAgICAgICAgICAgICAqLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8jaW5jbHVkZSAmbHQ7c3RkbGliLmgjaW5jbHVkZSAmbHQ7c3RkaW8uaGludCBtYWluICgpIHsJcHV0cygiQm9uam91ciBsZSBtb25kZSBcbiIpOwlyZXR1cm4gRVhJVF9TVUNDRVNTO31icnVub0BlbGxpb3R0On4vV29ya3MvbGFuZ2FnZV9DL2hlbGxvJCBtYWtlIGdjYyAtbyBoZWxsbyBoZWxsby5jYnJ1bm9AZWxsaW90dDp+L1dvcmtzL2xhbmdhZ2VfQy9oZWxsbyQgbHNoZWxsbyAgaGVsbG8uYyAgbWFrZWZpbGVicnVub0BlbGxpb3R0On4vV29ya3MvbGFuZ2FnZV9DL2hlbGxvJCBtYWtlbWFrZTogwqtoZWxsb8K7IGVzdCDDoCBqb3VyLmJydW5vQGVsbGlvdHQ6fi9Xb3Jrcy9sYW5nYWdlX0MvaGVsbG8kIGJydW5vQGVsbGlvdHQ6fi9Xb3Jrcy9sYW5nYWdlX0MvaGVsbG8kIGNhdCBoZWxsby5jIAovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi8qIEV4ZW1wbGU6IGhlbGxvLmMgICAgICAgICAgICAgKi8KLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwojaW5jbHVkZSAmbHQ7c3RkbGliLmg+CiNpbmNsdWRlICZsdDtzdGRpby5oPgoKaW50IG1haW4gKCkgCnsKCXB1dHMoIkJvbmpvdXIgbGUgbW9uZGUgXG4iKTsKCXJldHVybiBFWElUX1NVQ0NFU1M7Cn0KYnJ1bm9AZWxsaW90dDp+L1dvcmtzL2xhbmdhZ2VfQy9oZWxsbyQgbWFrZSAKZ2NjIC1vIGhlbGxvIGhlbGxvLmMKYnJ1bm9AZWxsaW90dDp+L1dvcmtzL2xhbmdhZ2VfQy9oZWxsbyQgbHMKaGVsbG8gIGhlbGxvLmMgIG1ha2VmaWxlCmJydW5vQGVsbGlvdHQ6fi9Xb3Jrcy9sYW5nYWdlX0MvaGVsbG8kIG1ha2UKbWFrZTogwqvCoGhlbGxvwqDCuyBlc3Qgw6Agam91ci4KYnJ1bm9AZWxsaW90dDp+L1dvcmtzL2xhbmdhZ2VfQy9oZWxsbyQgCnN0YXRldmVyc2lvbm9yaWdpbmFsQ29udGVudGNsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudGRyb3BDYXBVQUdIaWRlRGVza3RvcFVBR0hpZGVNb2JVQUdIaWRlVGFiVUFHTG9nZ2VkSW5VQUdMb2dnZWRPdXRVQUdEYXlVQUdSZXNwb25zaXZlQ29uZGl0aW9uc1VBR0FuaW1hdGlvblR5cGVVQUdBbmltYXRpb25UaW1lVUFHQW5pbWF0aW9uRGVsYXlVQUdBbmltYXRpb25FYXNpbmdVQUdBbmltYXRpb25SZXBlYXRVQUdQb3NpdGlvblVBR1N0aWNreUxvY2F0aW9uVUFHU3RpY2t5UmVzdHJpY3RlZFVBR1N0aWNreU9mZnNldGlubmVyQmxvY2tzZmlsZU5hbWVzaG93RG93bmxvYWRCdXR0b25kb3dubG9hZEJ1dHRvblRleHRwcmV2aWV3SGVpZ2h0VMOpbMOpY2hhcmdlcmJhdm8tdmFuLWFjaHRlX2dudW1ha2VocmVmdGV4dExpbmtIcmVmaWRmaWxlSWRkaXNwbGF5UHJldmlldzwhLS0gL3dwOmNvZGUgLS0+Cgo8IS0tIHdwOmZpbGUgeyJpZCI6Nzk3NSwiaHJlZiI6Imh0dHBzOi8vd29ya2Jvb3QuZnIvY2llbGEvd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDUvYmF2by12YW4tYWNodGVfZ251bWFrZS5wZGYiLCJkaXNwbGF5UHJldmlldyI6dHJ1ZX0gLS0+CjxkaXYgY2xhc3M9IndwLWJsb2NrLWZpbGUiPjxvYmplY3QgY2xhc3M9IndwLWJsb2NrLWZpbGVfX2VtYmVkIiBkYXRhPSJodHRwczovL3dvcmtib290LmZyL2NpZWxhL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzA1L2Jhdm8tdmFuLWFjaHRlX2dudW1ha2UucGRmIiB0eXBlPSJhcHBsaWNhdGlvbi9wZGYiIHN0eWxlPSJ3aWR0aDoxMDAlO2hlaWdodDo2MDBweCIgYXJpYS1sYWJlbD0iYmF2by12YW4tYWNodGVfZ251bWFrZSI+PC9vYmplY3Q+PGEgaWQ9IndwLWJsb2NrLWZpbGUtLW1lZGlhLTE2NDdhMDA4LWU5OWYtNDM0NC05ODYxLTZmZDkxYTg1NTczMSIgaHJlZj0iaHR0cHM6Ly93b3JrYm9vdC5mci9jaWVsYS93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wNS9iYXZvLXZhbi1hY2h0ZV9nbnVtYWtlLnBkZiI+YmF2by12YW4tYWNodGVfZ251bWFrZTwvYT48YSBocmVmPSJodHRwczovL3dvcmtib290LmZyL2NpZWxhL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzA1L2Jhdm8tdmFuLWFjaHRlX2dudW1ha2UucGRmIiBjbGFzcz0id3AtYmxvY2stZmlsZV9fYnV0dG9uIHdwLWVsZW1lbnQtYnV0dG9uIiBkb3dubG9hZCBhcmlhLWRlc2NyaWJlZGJ5PSJ3cC1ibG9jay1maWxlLS1tZWRpYS0xNjQ3YTAwOC1lOTlmLTQzNDQtOTg2MS02ZmQ5MWE4NTU3MzEiPlTDqWzDqWNoYXJnZXI8L2E+PC9kaXY+CjwhLS0gL3dwOmZpbGUgLS0+PGRpdiBjbGFzcz0id3AtYmxvY2stZmlsZSI+PG9iamVjdCBjbGFzcz0id3AtYmxvY2stZmlsZV9fZW1iZWQiIGRhdGE9Imh0dHBzOi8vd29ya2Jvb3QuZnIvY2llbGEvd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDUvYmF2by12YW4tYWNodGVfZ251bWFrZS5wZGYiIHR5cGU9ImFwcGxpY2F0aW9uL3BkZiIgc3R5bGU9IndpZHRoOjEwMCU7aGVpZ2h0OjYwMHB4IiBhcmlhLWxhYmVsPSJiYXZvLXZhbi1hY2h0ZV9nbnVtYWtlIj48L29iamVjdD48YSBpZD0id3AtYmxvY2stZmlsZS0tbWVkaWEtM2FiYTgxZDUtYjMyMy00Nzk2LWI3MDAtNTk5ZjA3MTIyODYxIiBocmVmPSJodHRwczovL3dvcmtib290LmZyL2NpZWxhL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzA1L2Jhdm8tdmFuLWFjaHRlX2dudW1ha2UucGRmIj5iYXZvLXZhbi1hY2h0ZV9nbnVtYWtlPC9hPjxhIGhyZWY9Imh0dHBzOi8vd29ya2Jvb3QuZnIvY2llbGEvd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDUvYmF2by12YW4tYWNodGVfZ251bWFrZS5wZGYiIGNsYXNzPSJ3cC1ibG9jay1maWxlX19idXR0b24gd3AtZWxlbWVudC1idXR0b24iIGRvd25sb2FkIGFyaWEtZGVzY3JpYmVkYnk9IndwLWJsb2NrLWZpbGUtLW1lZGlhLTNhYmE4MWQ1LWIzMjMtNDc5Ni1iNzAwLTU5OWYwNzEyMjg2MSI+VMOpbMOpY2hhcmdlcjwvYT48L2Rpdj4KPCEtLSAvd3A6ZmlsZSAtLT48L2RldGFpbHM+CnN0YXRldmVyc2lvbm9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudHN0YXRldmVyc2lvbm9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudGNsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudGRyb3BDYXBVQUdIaWRlRGVza3RvcFVBR0hpZGVNb2JVQUdIaWRlVGFiVUFHTG9nZ2VkSW5VQUdMb2dnZWRPdXRVQUdEYXlVQUdSZXNwb25zaXZlQ29uZGl0aW9uc1VBR0FuaW1hdGlvblR5cGVVQUdBbmltYXRpb25UaW1lVUFHQW5pbWF0aW9uRGVsYXlVQUdBbmltYXRpb25FYXNpbmdVQUdBbmltYXRpb25SZXBlYXRVQUdQb3NpdGlvblVBR1N0aWNreUxvY2F0aW9uVUFHU3RpY2t5UmVzdHJpY3RlZFVBR1N0aWNreU9mZnNldGlubmVyQmxvY2tzTGVzIHZhcmlhYmxlcyBkZSBtYWtlbGV2ZWwgYXV0b21hdGlxdWXCoAoKPCEtLSB3cDpoZWFkaW5nIC0tPgo8aDIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPkxlcyB2YXJpYWJsZXMgYXV0b21hdGlxdWUgZGUgbWFrZTxiPlZhcmlhYmxlIFNpZ25pZmljYXRpb24gRXhlbXBsZSBWYWxldXIgcG91ciB0YXJnZXQ6IGRlcDEgZGVwMjw+JEAgTm9tIGRlIGxhIGNpYmxlICRAIOKGkiB0YXJnZXQgdGFyZ2V0PD4kJmx0OyBQcmVtacOocmUgZMOpcGVuZGFuY2UgJCZsdDsg4oaSIGRlcDEgZGVwMTw+JF4gVG91dGVzIGxlcyBkw6lwZW5kYW5jZXMgJF4g4oaSIGRlcDEgZGVwMiBkZXAxIGRlcDI8PiQ\/IETDqXBlbmRhbmNlcyBwbHVzIHLDqWNlbnRlcyBxdWUgbGEgY2libGUgJD8gZGVwMSAoc2kgcGx1cyByw6ljZW50KTw+JCogQmFzZSBkdSBub20gZGUgZmljaGllciAoc2FucyBleHRlbnNpb24pICQqIOKGkiBmaWxlIHBvdXIgZmlsZS5jIGRlcDEgKHNhbnMgLmMpPD4kKyBUb3V0ZXMgZMOpcGVuZGFuY2VzIChhdmVjIGRvdWJsb25zKSAkKyBkZXAxIGRlcDIgZGVwMTw+L2kgLS0+Cgo8IS0tIHdwOmxhPi9oMj4KPCEtLSAvd3A6aGVhZGluZyAtLT4KCjwhLS0gd3A6bGlzdCAtLT4KPHVsIGNsYXNzPSJ3cC1sb2NrLWxpc3QiPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT4vbGkKPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT4vbGkKPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT4vbGkKPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT4vbGkKPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT4vbGkKPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT4vbGkKPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT4vbGkKPCEtLSAvd3A6bGlzdC1pdGVtIC0tPjx1bD4KPCEtLSAvd3A6bHN0ZSAvLS0+Cgo8IS0tIHdwOi0tPgo8IGNsYXNzPSJ3cC1ibG9jay1saXQiPjxvbD4KPCEgL3dwOmwgLS1jbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRkcm9wQ2FwVUFHSGlkZURlc2t0b3BVQUdIaWRlTW9iVUFHSGlkZVRhYlVBR0xvZ2dlZEluVUFHTG9nZ2VkT3V0VUFHRGF5VUFHUmVzcG9uc2l2ZUNvbmRpdGlvbnNVQUdBbmltYXRpb25UeXBlVUFHQW5pbWF0aW9uVGltZVVBR0FuaW1hdGlvbkRlbGF5VUFHQW5pbWF0aW9uRWFzaW5nVUFHQW5pbWF0aW9uUmVwZWF0VUFHUG9zaXRpb25VQUdTdGlja3lMb2NhdGlvblVBR1N0aWNreVJlc3RyaWN0ZWRVQUdTdGlja3lPZmZzZXRpbm5lckJsb2Nrc2lkcGFyYW1ldGVyc2lzU3RhY2tlZE9uTW9iaWxlaXN0IHsib3JkcmVkIjp0cnVlfW9sc2lzdHJhIC0tb3JkZXJlZHZhbHVlc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudGRyb3BDYXBVQUdIaWRlRGVza3RvcFVBR0hpZGVNb2JVQUdIaWRlVGFiVUFHTG9nZ2VkSW5VQUdMb2dnZWRPdXRVQUdEYXlVQUdSZXNwb25zaXZlQ29uZGl0aW9uc1VBR0FuaW1hdGlvblR5cGVVQUdBbmltYXRpb25UaW1lVUFHQW5pbWF0aW9uRGVsYXlVQUdBbmltYXRpb25FYXNpbmdVQUdBbmltYXRpb25SZXBlYXRVQUdQb3NpdGlvblVBR1N0aWNreUxvY2F0aW9uVUFHU3RpY2t5UmVzdHJpY3RlZFVBR1N0aWNreU9mZnNldGlubmVyQmxvY2tzcmdwaHBwYXJhZ3JhcGhwYQo8PjwvPgo8IS0tIC93cDpwIC0tPiRAY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50ZHJvcENhcFVBR0hpZGVEZXNrdG9wVUFHSGlkZU1vYlVBR0hpZGVUYWJVQUdMb2dnZWRJblVBR0xvZ2dlZE91dFVBR0RheVVBR1Jlc3BvbnNpdmVDb25kaXRpb25zVUFHQW5pbWF0aW9uVHlwZVVBR0FuaW1hdGlvblRpbWVVQUdBbmltYXRpb25EZWxheVVBR0FuaW1hdGlvbkVhc2luZ1VBR0FuaW1hdGlvblJlcGVhdFVBR1Bvc2l0aW9uVUFHU3RpY2t5TG9jYXRpb25VQUdTdGlja3lSZXN0cmljdGVkVUFHU3RpY2t5T2Zmc2V0aW5uZXJCbG9ja3NsZXZlbGNvcnJlc3BvbmQgYXVoZWFkaW5nIHsibGV2ZWwiOjR9IC0tPgo8aDQgY2xhc3M9InctYmxvY2staGVkaW5nIj4kQDwvaDQ+CjwhLS0gL3dwOmhlYWRpbmcgLS0+Cgo8IS0tIHdwOnBhIG5vbSBkZSBsYSBjaWJsZSB0YXJnZXQnJ2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudGRyb3BDYXBVQUdIaWRlRGVza3RvcFVBR0hpZGVNb2JVQUdIaWRlVGFiVUFHTG9nZ2VkSW5VQUdMb2dnZWRPdXRVQUdEYXlVQUdSZXNwb25zaXZlQ29uZGl0aW9uc1VBR0FuaW1hdGlvblR5cGVVQUdBbmltYXRpb25UaW1lVUFHQW5pbWF0aW9uRGVsYXlVQUdBbmltYXRpb25FYXNpbmdVQUdBbmltYXRpb25SZXBlYXRVQUdQb3NpdGlvblVBR1N0aWNreUxvY2F0aW9uVUFHU3RpY2t5UmVzdHJpY3RlZFVBR1N0aWNreU9mZnNldGlubmVyQmxvY2tzJCZsdDtsZXZlbGNsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudGRyb3BDYXBVQUdIaWRlRGVza3RvcFVBR0hpZGVNb2JVQUdIaWRlVGFiVUFHTG9nZ2VkSW5VQUdMb2dnZWRPdXRVQUdEYXlVQUdSZXNwb25zaXZlQ29uZGl0aW9uc1VBR0FuaW1hdGlvblR5cGVVQUdBbmltYXRpb25UaW1lVUFHQW5pbWF0aW9uRGVsYXlVQUdBbmltYXRpb25FYXNpbmdVQUdBbmltYXRpb25SZXBlYXRVQUdQb3NpdGlvblVBR1N0aWNreUxvY2F0aW9uVUFHU3RpY2t5UmVzdHJpY3RlZFVBR1N0aWNreU9mZnNldGlubmVyQmxvY2tzIG5vbSBkZSBsYSBjaWJsZSAndGFyZ2V0JwoKPCEtLSB3cDpoZWFkaW5nIHsibGV2ZWwiOjR9IC0tPgo8aDQgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPiQmbHQ7PC9oND4KPCEtLSAvd3A6aGVhZGluZyAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD4gIGNvcnJlc3BvbmQgw6AgZHBlbmRhbmNlIDHDqWNsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudGRyb3BDYXBVQUdIaWRlRGVza3RvcFVBR0hpZGVNb2JVQUdIaWRlVGFiVUFHTG9nZ2VkSW5VQUdMb2dnZWRPdXRVQUdEYXlVQUdSZXNwb25zaXZlQ29uZGl0aW9uc1VBR0FuaW1hdGlvblR5cGVVQUdBbmltYXRpb25UaW1lVUFHQW5pbWF0aW9uRGVsYXlVQUdBbmltYXRpb25FYXNpbmdVQUdBbmltYXRpb25SZXBlYXRVQUdQb3NpdGlvblVBR1N0aWNreUxvY2F0aW9uVUFHU3RpY2t5UmVzdHJpY3RlZFVBR1N0aWNreU9mZnNldGlubmVyQmxvY2tzY29ycmVzcG9uZGF1IGNvcnJlc3BvbmQgw6AgZMOpcGVuZGFuY2UgMTwvPgo8IS0tIC93cDphZyAtLT4kXmNsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudGRyb3BDYXBVQUdIaWRlRGVza3RvcFVBR0hpZGVNb2JVQUdIaWRlVGFiVUFHTG9nZ2VkSW5VQUdMb2dnZWRPdXRVQUdEYXlVQUdSZXNwb25zaXZlQ29uZGl0aW9uc1VBR0FuaW1hdGlvblR5cGVVQUdBbmltYXRpb25UaW1lVUFHQW5pbWF0aW9uRGVsYXlVQUdBbmltYXRpb25FYXNpbmdVQUdBbmltYXRpb25SZXBlYXRVQUdQb3NpdGlvblVBR1N0aWNreUxvY2F0aW9uVUFHU3RpY2t5UmVzdHJpY3RlZFVBR1N0aWNreU9mZnNldGlubmVyQmxvY2tzPC9wPgo8IS0tL3dwOnBhcmFncmFwaC0tPgoKIS0tIHdwOmFnIC0tPgo8cD48bGV2ZWxoZWRpbnsibGV2ZWwiOjR9IGg0IGNsYXNzPSJ3LWJsb2NrLWhlYWRpbmciaDRoZWRpbiBUb3V0ZXMgbGVzIGTDqXBlbmRhbmNlcyAkXiDihpIgZGVwMSBkZXAyIGRlcDEgZGVwMmNsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudGRyb3BDYXBVQUdIaWRlRGVza3RvcFVBR0hpZGVNb2JVQUdIaWRlVGFiVUFHTG9nZ2VkSW5VQUdMb2dnZWRPdXRVQUdEYXlVQUdSZXNwb25zaXZlQ29uZGl0aW9uc1VBR0FuaW1hdGlvblR5cGVVQUdBbmltYXRpb25UaW1lVUFHQW5pbWF0aW9uRGVsYXlVQUdBbmltYXRpb25FYXNpbmdVQUdBbmltYXRpb25SZXBlYXRVQUdQb3NpdGlvblVBR1N0aWNreUxvY2F0aW9uVUFHU3RpY2t5UmVzdHJpY3RlZFVBR1N0aWNreU9mZnNldGlubmVyQmxvY2tzJD8gY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50RMOpcGVuZGFuY2VzIHBsdXMgcsOpY2VudGVzIHF1ZSBsYSBjaWJsZSAkPyBkZXAxIChzaSBwbHVzIHLDqWNlbnQpZHJvcENhcFVBR0hpZGVEZXNrdG9wVUFHSGlkZU1vYlVBR0hpZGVUYWJVQUdMb2dnZWRJblVBR0xvZ2dlZE91dFVBR0RheVVBR1Jlc3BvbnNpdmVDb25kaXRpb25zVUFHQW5pbWF0aW9uVHlwZVVBR0FuaW1hdGlvblRpbWVVQUdBbmltYXRpb25EZWxheVVBR0FuaW1hdGlvbkVhc2luZ1VBR0FuaW1hdGlvblJlcGVhdFVBR1Bvc2l0aW9uVUFHU3RpY2t5TG9jYXRpb25VQUdTdGlja3lSZXN0cmljdGVkVUFHU3RpY2t5T2Zmc2V0aW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRkcm9wQ2FwVUFHSGlkZURlc2t0b3BVQUdIaWRlTW9iVUFHSGlkZVRhYlVBR0xvZ2dlZEluVUFHTG9nZ2VkT3V0VUFHRGF5VUFHUmVzcG9uc2l2ZUNvbmRpdGlvbnNVQUdBbmltYXRpb25UeXBlVUFHQW5pbWF0aW9uVGltZVVBR0FuaW1hdGlvbkRlbGF5VUFHQW5pbWF0aW9uRWFzaW5nVUFHQW5pbWF0aW9uUmVwZWF0VUFHUG9zaXRpb25VQUdTdGlja3lMb2NhdGlvblVBR1N0aWNreVJlc3RyaWN0ZWRVQUdTdGlja3lPZmZzZXRpbm5lckJsb2Nrc2xldmVsJF4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD4gVG91dGVzIGxlcyBkw6lwZW5kYW5jZXMgJF4g4oaSIGRlcDEgZGVwMiBkZXAxIGRlcDI8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6aGVhZGluZyB7ImxldmVsIjo0fSAtLT4KPGg0IGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj4kPyA8L2g0Pgo8IS0tIC93cDpoZWFkaW5nIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPkTDqXBlbmRhbmNlcyBwbHVzIHLDqWNlbnRlcyBxdWUgbGEgY2libGUgJD8gZGVwMSAoc2kgcGx1cyByw6ljZW50KTwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPiQqY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50IEJhc2UgZHUgbm9tIGRlIGZpY2hpZXIgKHNhbnMgZXh0ZW5zaW9uKSAkKiDihpIgZmlsZSBwb3VyIGZpbGUuYyBkZXAxIChzYW5zIC5jKWRyb3BDYXBVQUdIaWRlRGVza3RvcFVBR0hpZGVNb2JVQUdIaWRlVGFiVUFHTG9nZ2VkSW5VQUdMb2dnZWRPdXRVQUdEYXlVQUdSZXNwb25zaXZlQ29uZGl0aW9uc1VBR0FuaW1hdGlvblR5cGVVQUdBbmltYXRpb25UaW1lVUFHQW5pbWF0aW9uRGVsYXlVQUdBbmltYXRpb25FYXNpbmdVQUdBbmltYXRpb25SZXBlYXRVQUdQb3NpdGlvblVBR1N0aWNreUxvY2F0aW9uVUFHU3RpY2t5UmVzdHJpY3RlZFVBR1N0aWNreU9mZnNldGlubmVyQmxvY2tzbGV2ZWxjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRkcm9wQ2FwVUFHSGlkZURlc2t0b3BVQUdIaWRlTW9iVUFHSGlkZVRhYlVBR0xvZ2dlZEluVUFHTG9nZ2VkT3V0VUFHRGF5VUFHUmVzcG9uc2l2ZUNvbmRpdGlvbnNVQUdBbmltYXRpb25UeXBlVUFHQW5pbWF0aW9uVGltZVVBR0FuaW1hdGlvbkRlbGF5VUFHQW5pbWF0aW9uRWFzaW5nVUFHQW5pbWF0aW9uUmVwZWF0VUFHUG9zaXRpb25VQUdTdGlja3lMb2NhdGlvblVBR1N0aWNreVJlc3RyaWN0ZWRVQUdTdGlja3lPZmZzZXRpbm5lckJsb2NrcyQrIGNsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudFRvdXRlcyBkw6lwZW5kYW5jZXMgKGF2ZWMgZG91YmxvbnMpICQrIGRlcDEgZGVwMiBkZXAxZHJvcENhcFVBR0hpZGVEZXNrdG9wVUFHSGlkZU1vYlVBR0hpZGVUYWJVQUdMb2dnZWRJblVBR0xvZ2dlZE91dFVBR0RheVVBR1Jlc3BvbnNpdmVDb25kaXRpb25zVUFHQW5pbWF0aW9uVHlwZVVBR0FuaW1hdGlvblRpbWVVQUdBbmltYXRpb25EZWxheVVBR0FuaW1hdGlvbkVhc2luZ1VBR0FuaW1hdGlvblJlcGVhdFVBR1Bvc2l0aW9uVUFHU3RpY2t5TG9jYXRpb25VQUdTdGlja3lSZXN0cmljdGVkVUFHU3RpY2t5T2Zmc2V0aW5uZXJCbG9ja3NsZXZlbGhlYWRpbmcgeyJsZXZlbCI6NH0gLS0+CjxoNCBjbGFzcz0idy1ibG9jay1oZWRpbmciPiQqPC9oND4KPCEtLSAvd3A6aGVhZGluZyAtLT4KCjwhLS0gd3A6cGEgQmFzZSBkdSBub20gZGUgZmljaGllciAoc2FucyBleHRlbnNpb24pICQqIOKGkiBmaWxlIHBvdXIgZmlsZS5jIGRlcDEgKHNhbnMgLmMpCgo8IS0tIHdwOmhlYWRpbmcgLS0+CjxoIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj4kKyA8L2gyPgo8IS0tIC93cDpoZyAtLT4KPHA+PC8+CjwhLS0gL3dwOnBhcmFncmFwIC0tPmNsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudGRyb3BDYXBVQUdIaWRlRGVza3RvcFVBR0hpZGVNb2JVQUdIaWRlVGFiVUFHTG9nZ2VkSW5VQUdMb2dnZWRPdXRVQUdEYXlVQUdSZXNwb25zaXZlQ29uZGl0aW9uc1VBR0FuaW1hdGlvblR5cGVVQUdBbmltYXRpb25UaW1lVUFHQW5pbWF0aW9uRGVsYXlVQUdBbmltYXRpb25FYXNpbmdVQUdBbmltYXRpb25SZXBlYXRVQUdQb3NpdGlvblVBR1N0aWNreUxvY2F0aW9uVUFHU3RpY2t5UmVzdHJpY3RlZFVBR1N0aWNreU9mZnNldGlubmVyQmxvY2tzaXNWYWxpZGNsaWVudElkbmFtZWF0dHJpYnV0ZXNVQUdIaWRlRGVza3RvcFVBR0hpZGVNb2JVQUdIaWRlVGFiVUFHTG9nZ2VkSW5VQUdMb2dnZWRPdXRVQUdEYXlVQUdSZXNwb25zaXZlQ29uZGl0aW9uc1VBR0FuaW1hdGlvblR5cGVVQUdBbmltYXRpb25UaW1lVUFHQW5pbWF0aW9uRGVsYXlVQUdBbmltYXRpb25FYXNpbmdVQUdBbmltYXRpb25SZXBlYXRVQUdQb3NpdGlvblVBR1N0aWNreUxvY2F0aW9uVUFHU3RpY2t5UmVzdHJpY3RlZFVBR1N0aWNreU9mZnNldG9yZGVyZWR2YWx1ZXNpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudFZhcmlhYmxlIFNpZ25pZmljYXRpb24gRXhlbXBsZSBWYWxldXIgcG91ciB0YXJnZXQ6IGRlcDEgZGVwMlVBR0hpZGVEZXNrdG9wVUFHSGlkZU1vYlVBR0hpZGVUYWJVQUdMb2dnZWRJblVBR0xvZ2dlZE91dFVBR0RheVVBR1Jlc3BvbnNpdmVDb25kaXRpb25zVUFHQW5pbWF0aW9uVHlwZVVBR0FuaW1hdGlvblRpbWVVQUdBbmltYXRpb25EZWxheVVBR0FuaW1hdGlvbkVhc2luZ1VBR0FuaW1hdGlvblJlcGVhdFVBR1Bvc2l0aW9uVUFHU3RpY2t5TG9jYXRpb25VQUdTdGlja3lSZXN0cmljdGVkVUFHU3RpY2t5T2Zmc2V0aW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQkQCBOb20gZGUgbGEgY2libGUgJEAg4oaSIHRhcmdldCB0YXJnZXRVQUdIaWRlRGVza3RvcFVBR0hpZGVNb2JVQUdIaWRlVGFiVUFHTG9nZ2VkSW5VQUdMb2dnZWRPdXRVQUdEYXlVQUdSZXNwb25zaXZlQ29uZGl0aW9uc1VBR0FuaW1hdGlvblR5cGVVQUdBbmltYXRpb25UaW1lVUFHQW5pbWF0aW9uRGVsYXlVQUdBbmltYXRpb25FYXNpbmdVQUdBbmltYXRpb25SZXBlYXRVQUdQb3NpdGlvblVBR1N0aWNreUxvY2F0aW9uVUFHU3RpY2t5UmVzdHJpY3RlZFVBR1N0aWNreU9mZnNldGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50JCZsdDsgUHJlbWnDqHJlIGTDqXBlbmRhbmNlICQmbHQ7IOKGkiBkZXAxIGRlcDFVQUdIaWRlRGVza3RvcFVBR0hpZGVNb2JVQUdIaWRlVGFiVUFHTG9nZ2VkSW5VQUdMb2dnZWRPdXRVQUdEYXlVQUdSZXNwb25zaXZlQ29uZGl0aW9uc1VBR0FuaW1hdGlvblR5cGVVQUdBbmltYXRpb25UaW1lVUFHQW5pbWF0aW9uRGVsYXlVQUdBbmltYXRpb25FYXNpbmdVQUdBbmltYXRpb25SZXBlYXRVQUdQb3NpdGlvblVBR1N0aWNreUxvY2F0aW9uVUFHU3RpY2t5UmVzdHJpY3RlZFVBR1N0aWNreU9mZnNldGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50JF4gVG91dGVzIGxlcyBkw6lwZW5kYW5jZXMgJF4g4oaSIGRlcDEgZGVwMiBkZXAxIGRlcDJVQUdIaWRlRGVza3RvcFVBR0hpZGVNb2JVQUdIaWRlVGFiVUFHTG9nZ2VkSW5VQUdMb2dnZWRPdXRVQUdEYXlVQUdSZXNwb25zaXZlQ29uZGl0aW9uc1VBR0FuaW1hdGlvblR5cGVVQUdBbmltYXRpb25UaW1lVUFHQW5pbWF0aW9uRGVsYXlVQUdBbmltYXRpb25FYXNpbmdVQUdBbmltYXRpb25SZXBlYXRVQUdQb3NpdGlvblVBR1N0aWNreUxvY2F0aW9uVUFHU3RpY2t5UmVzdHJpY3RlZFVBR1N0aWNreU9mZnNldGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50JD8gRMOpcGVuZGFuY2VzIHBsdXMgcsOpY2VudGVzIHF1ZSBsYSBjaWJsZSAkPyBkZXAxIChzaSBwbHVzIHLDqWNlbnQpVUFHSGlkZURlc2t0b3BVQUdIaWRlTW9iVUFHSGlkZVRhYlVBR0xvZ2dlZEluVUFHTG9nZ2VkT3V0VUFHRGF5VUFHUmVzcG9uc2l2ZUNvbmRpdGlvbnNVQUdBbmltYXRpb25UeXBlVUFHQW5pbWF0aW9uVGltZVVBR0FuaW1hdGlvbkRlbGF5VUFHQW5pbWF0aW9uRWFzaW5nVUFHQW5pbWF0aW9uUmVwZWF0VUFHUG9zaXRpb25VQUdTdGlja3lMb2NhdGlvblVBR1N0aWNreVJlc3RyaWN0ZWRVQUdTdGlja3lPZmZzZXRpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudCQqIEJhc2UgZHUgbm9tIGRlIGZpY2hpZXIgKHNhbnMgZXh0ZW5zaW9uKSAkKiDihpIgZmlsZSBwb3VyIGZpbGUuYyBkZXAxIChzYW5zIC5jKVVBR0hpZGVEZXNrdG9wVUFHSGlkZU1vYlVBR0hpZGVUYWJVQUdMb2dnZWRJblVBR0xvZ2dlZE91dFVBR0RheVVBR1Jlc3BvbnNpdmVDb25kaXRpb25zVUFHQW5pbWF0aW9uVHlwZVVBR0FuaW1hdGlvblRpbWVVQUdBbmltYXRpb25EZWxheVVBR0FuaW1hdGlvbkVhc2luZ1VBR0FuaW1hdGlvblJlcGVhdFVBR1Bvc2l0aW9uVUFHU3RpY2t5TG9jYXRpb25VQUdTdGlja3lSZXN0cmljdGVkVUFHU3RpY2t5T2Zmc2V0aW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQkKyBUb3V0ZXMgZMOpcGVuZGFuY2VzIChhdmVjIGRvdWJsb25zKSAkKyBkZXAxIGRlcDIgZGVwMVVBR0hpZGVEZXNrdG9wVUFHSGlkZU1vYlVBR0hpZGVUYWJVQUdMb2dnZWRJblVBR0xvZ2dlZE91dFVBR0RheVVBR1Jlc3BvbnNpdmVDb25kaXRpb25zVUFHQW5pbWF0aW9uVHlwZVVBR0FuaW1hdGlvblRpbWVVQUdBbmltYXRpb25EZWxheVVBR0FuaW1hdGlvbkVhc2luZ1VBR0FuaW1hdGlvblJlcGVhdFVBR1Bvc2l0aW9uVUFHU3RpY2t5TG9jYXRpb25VQUdTdGlja3lSZXN0cmljdGVkVUFHU3RpY2t5T2Zmc2V0aW5uZXJCbG9ja3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ImxldmVsIjo0fSA0ND4KPCEtLSAvd3A6aGVhZGluZyAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5Ub3V0ZXMgZMOpcGVuZGFuY2VzIChhdmVjIGRvdWJsb25zKSAkKyBkZXAxIGRlcCBkZXAxPC9wcGFyYWdyYXAgLS0+Cgo8IS0tIHdwOmEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50ZHJvcENhcFVBR0hpZGVEZXNrdG9wVUFHSGlkZU1vYlVBR0hpZGVUYWJVQUdMb2dnZWRJblVBR0xvZ2dlZE91dFVBR0RheVVBR1Jlc3BvbnNpdmVDb25kaXRpb25zVUFHQW5pbWF0aW9uVHlwZVVBR0FuaW1hdGlvblRpbWVVQUdBbmltYXRpb25EZWxheVVBR0FuaW1hdGlvbkVhc2luZ1VBR0FuaW1hdGlvblJlcGVhdFVBR1Bvc2l0aW9uVUFHU3RpY2t5TG9jYXRpb25VQUdTdGlja3lSZXN0cmljdGVkVUFHU3RpY2t5T2Zmc2V0aW5uZXJCbG9ja3NNYWtlIGV0IG1ha2VmaWxlIG91IE1ha2VmaWxlICwgc291dmVudCB1dGlsaXNlciBwb3VyIGNvbXBpbGVyIHVuIHByb2pldCBlbiBsYW5nYWdlIGNwYXJhZ3JhcCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpoZWFjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRkcm9wQ2FwVUFHSGlkZURlc2t0b3BVQUdIaWRlTW9iVUFHSGlkZVRhYlVBR0xvZ2dlZEluVUFHTG9nZ2VkT3V0VUFHRGF5VUFHUmVzcG9uc2l2ZUNvbmRpdGlvbnNVQUdBbmltYXRpb25UeXBlVUFHQW5pbWF0aW9uVGltZVVBR0FuaW1hdGlvbkRlbGF5VUFHQW5pbWF0aW9uRWFzaW5nVUFHQW5pbWF0aW9uUmVwZWF0VUFHUG9zaXRpb25VQUdTdGlja3lMb2NhdGlvblVBR1N0aWNreVJlc3RyaWN0ZWRVQUdTdGlja3lPZmZzZXRpbm5lckJsb2Nrc2lsIGZhdXQgY29tcHJlbmRyZSBxdWUgcG91ciBmYWlyZSBsYSBjaWJsZSBpbCBsYSBvdSBsZXMgZmF1dCBwYXJhZ3JhcCAtLT4KPHA+aWwgZmF1dCBjb21wcm5kcmUgcXVlIHBvdXIgZmlyZSBsYSBjaWJsZSBpbCBmYXV0IGxhIG91IGxlcyA8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6aGVhZMOpcGVuZGFuY2UgICBzaW5vbiBmYWlzYWJsZSBkw6lwZW5kYW5jZSBzaW5vbiBmYWlzYWJsZSBpbmluRXhlbXBsZSBkZSBtYWtlZmlsZSBjbGFzc2lxdWUgbGV2ZWxjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRkcm9wQ2FwVUFHSGlkZURlc2t0b3BVQUdIaWRlTW9iVUFHSGlkZVRhYlVBR0xvZ2dlZEluVUFHTG9nZ2VkT3V0VUFHRGF5VUFHUmVzcG9uc2l2ZUNvbmRpdGlvbnNVQUdBbmltYXRpb25UeXBlVUFHQW5pbWF0aW9uVGltZVVBR0FuaW1hdGlvbkRlbGF5VUFHQW5pbWF0aW9uRWFzaW5nVUFHQW5pbWF0aW9uUmVwZWF0VUFHUG9zaXRpb25VQUdTdGlja3lMb2NhdGlvblVBR1N0aWNreVJlc3RyaWN0ZWRVQUdTdGlja3lPZmZzZXRpbm5lckJsb2NrcyNsYSBjaWJsZSAoZXhlY3V0YWJsZSlUQVJHRVQgPSB0ZXN0I01ha2VmaWxlIHBldGl0IHByb2pldCBhdmVjIHNrZWxldG9uY0NGTEFHUyA9IC1nIC1XYWxsIC1wZWRhbnRpYyAtYW5zaSNjb21waWxhdGV1ciBpY2kgZ2NjQ0MgPSBnY2Mjc2VjdGlvbiBwb3VyIGF2b2lyIFRBUkdFVCBpbCBmYXV0IFRBUkdFVC5jIGV0IGZhaXJlIAkkKENDKSAkJmx0OyAkKENGTEFHUykgLW8gJEAjYXZlYyBlZGl0IG9uIGF1cmEgbGUgc291cmNlIGRhbnMgdmllZGl0OgkkKFRBUkdFVCkuYwl2aSAkKFRBUkdFVCkuY2dkYjoJJChUQVJHRVQpCSQoREVCKSAkKFRBUkdFVCkjb24gbmV0dG9pZSBsZSBwcm9qZXRjbGVhbjoJcm0gJChUQVJHRVQpaGVkaW5oMiBjbGFzcz0idy1ibG9jay1oZWFkaW5nIkV4ZW1wbGUgZGUgbWFrZWZpbGUgY2xhc3NpcXVlIGgyaGVhZGluZyAtLT4KCjwhLS0gdzpjb2RlIC0tPgo8cHJlIGNsc3M9IndwLWJsb2NrLWNvZGUiPjxjb2RlPiNsYSBjaWJsZSAoZXhlY3V0YWJsZSkKVEFSR0VUID0gdGVzdAojTWFrZWZpbGUgcGV0aXQgcG9qZXQgdmVjIHNrZWxldG9uYwpDRkxBR1MgPSAtIC1XYWxsIC1wZWRhbnRpYyAtYW5zaQojY29tcGlsYXRldSBpY2kgZ2NjCkNDID0gZ2NjCiNzZWN0aW9uIHBvdXIgdm9pciBUQVJHRVQgaWwgZmF1dCBUQVJHRVQuYyBldCBmYWlyZSAKJChUQVJHRVQpOiAkKFRBUkdFVCkuYwoJJChDQykgJCZsdDsgJChDRkxBR1MpIC1vICRACiNhdmVjIGVkaXQgb24gYXVyYSBsZSBzb3VyY2UgZGFucyB2aQplZGl0OgkkKFRBUkdFVCkuYwoJdmkgJChUQVJHRVQpLmMKI29uIHZhIGxhbmNlciBnZGIgYXZlYyBsJ2V4ZWN1dGFibGUKZ2RiOgkkKFRBUkdFVCkKCSQoREVCKSAkKFRBUkdFVCkKI29uIG5ldHRvaWUgbGUgcm9qZXQKY2xlYW46CglybSQoVEFSR0VUKTwvY29kZT48L3ByZT4KPCEgL3dwOmNvZGUgLS0kKFRBUkdFVCk6ICQoVEFSR0VUKS5jI29uIHZhIGxhbmNlciBnZGIgYXZlYyBsJ2V4ZWN1dGFibGUodW4gcGV1IHBhc3NlIHBhcnRvdXQpKHVuIHBldSBwYXNzZSBwYXJ0b3V0KWNsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudGRyb3BDYXBVQUdIaWRlRGVza3RvcFVBR0hpZGVNb2JVQUdIaWRlVGFiVUFHTG9nZ2VkSW5VQUdMb2dnZWRPdXRVQUdEYXlVQUdSZXNwb25zaXZlQ29uZGl0aW9uc1VBR0FuaW1hdGlvblR5cGVVQUdBbmltYXRpb25UaW1lVUFHQW5pbWF0aW9uRGVsYXlVQUdBbmltYXRpb25FYXNpbmdVQUdBbmltYXRpb25SZXBlYXRVQUdQb3NpdGlvblVBR1N0aWNreUxvY2F0aW9uVUFHU3RpY2t5UmVzdHJpY3RlZFVBR1N0aWNreU9mZnNldGlubmVyQmxvY2tzCgo8IS0tIHdwOmFnIC0tPgo8cD48Lz4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPkV4ZW1wbGUgZCd1biBwZXRpdCBwcm9qZXQgbGV2ZWxjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRkcm9wQ2FwVUFHSGlkZURlc2t0b3BVQUdIaWRlTW9iVUFHSGlkZVRhYlVBR0xvZ2dlZEluVUFHTG9nZ2VkT3V0VUFHRGF5VUFHUmVzcG9uc2l2ZUNvbmRpdGlvbnNVQUdBbmltYXRpb25UeXBlVUFHQW5pbWF0aW9uVGltZVVBR0FuaW1hdGlvbkRlbGF5VUFHQW5pbWF0aW9uRWFzaW5nVUFHQW5pbWF0aW9uUmVwZWF0VUFHUG9zaXRpb25VQUdTdGlja3lMb2NhdGlvblVBR1N0aWNreVJlc3RyaWN0ZWRVQUdTdGlja3lPZmZzZXRpbm5lckJsb2Nrc2xhbmd1YWdldGhlbWVoaWdobGlnaHRsaW5lbnVtYmVyc2xpbmVvZmZzZXR0aXRsZWdyb3VwaGVkaW5oMiBjbGFzcz0idy1ibG9jay1oZWFkaW5nIkV4ZW1wbGUgZCd1biBwZXRpdCBwcm9qZXQgaDJoZWFkaW5nIC0tPgoKPCEtLSB3OmVubGlnaHRlci9jb2RlYmxvY2sgLS0+CjxwcmUgY2xzcz0iRW5saWdodGVKU1JBVyIgZHRhLWVubGlodGUtbG5ndWFnZT0iYyIgZGF0YS1lbmxpZ2h0ZXItdGhlbWU9IiIgZGF0YS1lbmxpZ2h0ZXItaGlnaGxpZ2h0PSIiIGRhdGEtZW5saWdodGVyLWxpbmVudW1iZXJzPSIiIGRhdGEtZW5saWdodGVyLWxpbmVvZmZzZXQ9IiIgZGF0YS1lbmxpZ2h0ZXItdGl0bGU9IiIgZGF0YS1lbmxpZ2h0ZXItZ3JvdT0iIj48L3ByZT4KPCEtLSAvd3A6ZW5saWd0ZXIvY29kZWJsb2NreyJsYW5ndWFnZSI6ImMifSAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICogUHJvamV0IDogcGFzc2FnZSBkZSBjaGFpbmUKICogQXV0ZXVyIDogQm9ndAogKiBEYXRlICAgOiAyOC8xMS8yMDIyCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KI2luY2x1ZGUgJmx0O3N0ZGxpYi5oPgojaW5jbHVkZSAmbHQ7c3RkaW8uaD4KI2luY2x1ZGUgIm1hbGliLmgiCgppbnQgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQp7CQoJaW50IGxldHRlcl9udW1iZXI7CglsZXR0ZXJfbnVtYmVyPWxnX2NoYWluZSAoIkJvbmpvdXIgbGUgbW9uZGUiKTsKCXByaW50ZiAoIm9uIGEgJWQgbGV0dHJlKHMpIG91IGVzcGFjZShzKSBkYW5zIGNldHRlIGNoYWluZVxuIixsZXR0ZXJfbnVtYmVyKTsKCXJldHVybiBFWElUX1NVQ0NFU1M7Cn1jbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRkcm9wQ2FwVUFHSGlkZURlc2t0b3BVQUdIaWRlTW9iVUFHSGlkZVRhYlVBR0xvZ2dlZEluVUFHTG9nZ2VkT3V0VUFHRGF5VUFHUmVzcG9uc2l2ZUNvbmRpdGlvbnNVQUdBbmltYXRpb25UeXBlVUFHQW5pbWF0aW9uVGltZVVBR0FuaW1hdGlvbkRlbGF5VUFHQW5pbWF0aW9uRWFzaW5nVUFHQW5pbWF0aW9uUmVwZWF0VUFHUG9zaXRpb25VQUdTdGlja3lMb2NhdGlvblVBR1N0aWNreVJlc3RyaWN0ZWRVQUdTdGlja3lPZmZzZXRpbm5lckJsb2Nrc2NwdGNoYWluZS5jY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50ZHJvcENhcFVBR0hpZGVEZXNrdG9wVUFHSGlkZU1vYlVBR0hpZGVUYWJVQUdMb2dnZWRJblVBR0xvZ2dlZE91dFVBR0RheVVBR1Jlc3BvbnNpdmVDb25kaXRpb25zVUFHQW5pbWF0aW9uVHlwZVVBR0FuaW1hdGlvblRpbWVVQUdBbmltYXRpb25EZWxheVVBR0FuaW1hdGlvbkVhc2luZ1VBR0FuaW1hdGlvblJlcGVhdFVBR1Bvc2l0aW9uVUFHU3RpY2t5TG9jYXRpb25VQUdTdGlja3lSZXN0cmljdGVkVUFHU3RpY2t5T2Zmc2V0aW5uZXJCbG9ja3NwYXJhZ3JhcGggLS0+CjxwPmNwdGNoYWluLmM8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6ZQoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPm1hbGliLmNjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRkcm9wQ2FwVUFHSGlkZURlc2t0b3BVQUdIaWRlTW9iVUFHSGlkZVRhYlVBR0xvZ2dlZEluVUFHTG9nZ2VkT3V0VUFHRGF5VUFHUmVzcG9uc2l2ZUNvbmRpdGlvbnNVQUdBbmltYXRpb25UeXBlVUFHQW5pbWF0aW9uVGltZVVBR0FuaW1hdGlvbkRlbGF5VUFHQW5pbWF0aW9uRWFzaW5nVUFHQW5pbWF0aW9uUmVwZWF0VUFHUG9zaXRpb25VQUdTdGlja3lMb2NhdGlvblVBR1N0aWNreVJlc3RyaWN0ZWRVQUdTdGlja3lPZmZzZXRpbm5lckJsb2Nrc2xhbmd1YWdldGhlbWVoaWdobGlnaHRsaW5lbnVtYmVyc2xpbmVvZmZzZXR0aXRsZWdyb3VwbWFsaWIuYwoKPCEtLSB3cDplbmxpZ2h0ZXIvY29kZWJsb2NrIHsibGFuZ3VhZ2UiOiJjIn0gLS0+CjxwcmUgY2xhc3M9IkVubGlnaHRlckpTUkFXIiBkYXRhLWVubGlnaHRlci1sYW5ndWFnZT0iYyIgZGF0YS1lbmxpZ2h0ZXItdGhlbWU9IiIgZGF0YS1lbmxpZ2h0ZXItaGlnaGxpZ2h0PSIiIGRhdGEtZW5saWdodGVyLWxpbmVudW1iZXJzPSIiIGRhdGEtZW5saWdodGVyLWxpbmVvZmZzZXQ9IiIgZGF0YS1lbmxpZ2h0ZXItdGl0bGU9IiIgZGF0YS1lbmxpZ2h0ZXItZ3JvdXA9IiI+I2luY2x1ZGUgJmx0O3N0ZGlvLmg+Ci8qIGZvbmN0aW9uIGxnX2NoYWluZSAqLwppbnQgbGdfY2hhaW5lKGNoYXIgKmNoYWluZSkKewoJaW50IG5iX2xldHRyZTsKCW5iX2xldHRyZT0wOyAgIC8qIHBhcyBkZSBsZXR0cmUgYXUgZMOpcGFydCBkZSBsYSBmb25jdGlvbiAqLwoJcHJpbnRmICgiJXMgXG4iLGNoYWluZSk7Cgl3aGlsZSAoY2hhaW5lW25iX2xldHRyZV0hPTApICAvKiAwIG91ICdcMCcgKi8KIAl7CgkJbmJfbGV0dHJlPW5iX2xldHRyZSsxOyAJLyogb24gYSB1bmUgbGV0dHJlIGVuIHBsdXMgZGFucyBsYSBjaGFpbmUgKi8KCX0KCXJldHVybiBuYl9sZXR0cmU7IC8qIHJldG91ciBkdSBub21icmUgZGUgbGV0dHJlICovCn08L3ByZT4KPCEtLSAvd3A6ZW5saWdodGVyL2NvZGVibG9jayAtLT5jbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRkcm9wQ2FwVUFHSGlkZURlc2t0b3BVQUdIaWRlTW9iVUFHSGlkZVRhYlVBR0xvZ2dlZEluVUFHTG9nZ2VkT3V0VUFHRGF5VUFHUmVzcG9uc2l2ZUNvbmRpdGlvbnNVQUdBbmltYXRpb25UeXBlVUFHQW5pbWF0aW9uVGltZVVBR0FuaW1hdGlvbkRlbGF5VUFHQW5pbWF0aW9uRWFzaW5nVUFHQW5pbWF0aW9uUmVwZWF0VUFHUG9zaXRpb25VQUdTdGlja3lMb2NhdGlvblVBR1N0aWNreVJlc3RyaWN0ZWRVQUdTdGlja3lPZmZzZXRpbm5lckJsb2NrcwoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPm1hbGliLmggICAoaGVhZGVyKWNsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudGRyb3BDYXBVQUdIaWRlRGVza3RvcFVBR0hpZGVNb2JVQUdIaWRlVGFiVUFHTG9nZ2VkSW5VQUdMb2dnZWRPdXRVQUdEYXlVQUdSZXNwb25zaXZlQ29uZGl0aW9uc1VBR0FuaW1hdGlvblR5cGVVQUdBbmltYXRpb25UaW1lVUFHQW5pbWF0aW9uRGVsYXlVQUdBbmltYXRpb25FYXNpbmdVQUdBbmltYXRpb25SZXBlYXRVQUdQb3NpdGlvblVBR1N0aWNreUxvY2F0aW9uVUFHU3RpY2t5UmVzdHJpY3RlZFVBR1N0aWNreU9mZnNldGlubmVyQmxvY2tzbWFsaWIuaCAgIChoZWFkZXIpCgo8IS0tIHdwOnBhcmFncmFoIC0tPgo8L3A+CjwhLS0gL3dwOmdoIC0tPmxhbmd1YWdldGhlbWVoaWdobGlnaHRsaW5lbnVtYmVyc2xpbmVvZmZzZXR0aXRsZWdyb3VwZW5saWdodGVyL2NvZGVibG9jayB7Imxhbmd1YWdlIjoiYyJ9IC0tPgo8cmUgY2xzcz0iRW5saWdodGVKU1JBVyIgZHRhLWVubGlodGUtbG5ndWFnZT0iYyIgZGF0YS1lbmxpZ3Rlci10aGVtZT0iImRhdGFlbmxpZ2h0ZXJoaWdobGlnaHQ9IiIgZGF0YS1lbmxpZ2h0ZXItbGluZW51bWJlcnM9IiIgZGF0YS1lbmxpZ2h0ZXItbGluZW9mZnNldD0iIiBkYXRhLWVubGlnaHRlci10aXRsZT0iIiBkYXRhLWVubGlnaHRlci1ncm91cD0iIiNpZm5kZWYgX19tYWxpYl9fI2RlZmluZSBfX21hbGliX18KLyogZm9uY3Rpb24gbGdfY2hhaW5lICovCmludCBsZ19jaGFpbmUoY2hhciAqY2hhaW5lKTsKI2VuZGlmcmVlbmxpdGVyL2NvZGVibG9ja2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudGRyb3BDYXBVQUdIaWRlRGVza3RvcFVBR0hpZGVNb2JVQUdIaWRlVGFiVUFHTG9nZ2VkSW5VQUdMb2dnZWRPdXRVQUdEYXlVQUdSZXNwb25zaXZlQ29uZGl0aW9uc1VBR0FuaW1hdGlvblR5cGVVQUdBbmltYXRpb25UaW1lVUFHQW5pbWF0aW9uRGVsYXlVQUdBbmltYXRpb25FYXNpbmdVQUdBbmltYXRpb25SZXBlYXRVQUdQb3NpdGlvblVBR1N0aWNreUxvY2F0aW9uVUFHU3RpY2t5UmVzdHJpY3RlZFVBR1N0aWNreU9mZnNldGlubmVyQmxvY2tzbWFrZWZpbGUKCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5tYWtlZmlsZTwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPmNsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudGRyb3BDYXBVQUdIaWRlRGVza3RvcFVBR0hpZGVNb2JVQUdIaWRlVGFiVUFHTG9nZ2VkSW5VQUdMb2dnZWRPdXRVQUdEYXlVQUdSZXNwb25zaXZlQ29uZGl0aW9uc1VBR0FuaW1hdGlvblR5cGVVQUdBbmltYXRpb25UaW1lVUFHQW5pbWF0aW9uRGVsYXlVQUdBbmltYXRpb25FYXNpbmdVQUdBbmltYXRpb25SZXBlYXRVQUdQb3NpdGlvblVBR1N0aWNreUxvY2F0aW9uVUFHU3RpY2t5UmVzdHJpY3RlZFVBR1N0aWNreU9mZnNldGlubmVyQmxvY2tzY3B0Y2hhaW5lOiBjcHRjaGFpbmUubyBtYWxpYi5vCWdjYyAtbyBjcHRjaGFpbmUgbWFsaWIubyBjcHRjaGFpbmUubyAtV2FsbCAtYW5zaSAtcGVkYW50aWMgLWdjcHRjaGFpbmUubzogY3B0Y2hhaW5lLmMJZ2NjIC1jIGNwdGNoYWluZS5jIC1XYWxsIC1hbnNpIC1wZWRhbnRpY21hbGliLm86IG1hbGliLmMJZ2NjIC1XYWxsIC1hbnNpIC1wZWRhbnRpYyAtYyBtYWxpYi5jdGFyYmFsbDoJdGFyIC16Y3ZmIC4uL2NwdGNoYWluZS50YXIuZ3ogY3B0Y2hhaW5lLmMgbWFsaWIuYyBtYWxpYi5oIE1ha2VmaWxlY2xlYW46CXJtICoubyBjcHRjaGFpbmUgCgo8IS0tIHdwOmNvZGUgLS0+CjxwcmUgY2xhc3M9IndwLWJsb2NrLWNvZGUiPjxjb2RlPmNwdGNoYWluZTogY3B0Y2hhaW5lLm8gbWFsaWIubwoJZ2NjIC1vIGNwdGNoYWluZSBtYWxpYi5vIGNwdGNoYWluZS5vIC1XYWxsIC1hbnNpIC1wZWRhbnRpYyAtZwpjcHRjaGFpbmUubzogY3B0Y2hhaW5lLmMKCWdjYyAtYyBjcHRjaGFpbmUuYyAtV2FsbCAtYW5zaSAtcGVkYW50aWMKbWFsaWIubzogbWFsaWIuYwoJZ2NjIC1XYWxsIC1hbnNpIC1wZWRhbnRpYyAtYyBtYWxpYi5jCnRhcmJhbGw6Cgl0YXIgLXpjdmYgLi4vY3B0Y2hhaW5lLnRhci5neiBjcHRjaGFpbmUuYyBtYWxpYi5jIG1hbGliLmggTWFrZWZpbGUKY2xlYW46CglybSAqLm8gY3B0Y2hhaW5lIDwvY29kZT48L3ByZT4KPCEtLSAvd3A6Y29kZSAtLT4gICh2ZXJzaW9uIHNpbXBsZSljbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRkcm9wQ2FwVUFHSGlkZURlc2t0b3BVQUdIaWRlTW9iVUFHSGlkZVRhYlVBR0xvZ2dlZEluVUFHTG9nZ2VkT3V0VUFHRGF5VUFHUmVzcG9uc2l2ZUNvbmRpdGlvbnNVQUdBbmltYXRpb25UeXBlVUFHQW5pbWF0aW9uVGltZVVBR0FuaW1hdGlvbkRlbGF5VUFHQW5pbWF0aW9uRWFzaW5nVUFHQW5pbWF0aW9uUmVwZWF0VUFHUG9zaXRpb25VQUdTdGlja3lMb2NhdGlvblVBR1N0aWNreVJlc3RyaWN0ZWRVQUdTdGlja3lPZmZzZXRpbm5lckJsb2NrcyAgKHZlcnNpb24gc2ltcGxlKQoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPkNDID0gZ2NjQ0ZMQUdTID0gLVdhbGwgLWFuc2kgLXBlZGFudGljIC1nT0JKID0gY3B0Y2hhaW5lLm8gbWFsaWIub1RBUkdFVCA9IGNwdGNoYWluZWFsbDogJChUQVJHRVQpJChUQVJHRVQpOiAkKE9CSikJJChDQykgLW8gJEAgJF4gJChDRkxBR1MpY3B0Y2hhaW5lLm86IGNwdGNoYWluZS5jCSQoQ0MpIC1jICQmbHQ7IC1vICRAICQoQ0ZMQUdTKW1hbGliLm86IG1hbGliLmMJJChDQykgLWMgJCZsdDsgLW8gJEAgJChDRkxBR1MpdGFyYmFsbDoJdGFyIC16Y3ZmIC4uLyQoVEFSR0VUKS50YXIuZ3ogY3B0Y2hhaW5lLmMgbWFsaWIuYyBtYWxpYi5oIE1ha2VmaWxlY2xlYW46CSQoUk0pICQoT0JKKSAkKFRBUkdFVCkuUEhPTlk6IGFsbCBjbGVhbiB0YXJiYWxsY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50ZHJvcENhcFVBR0hpZGVEZXNrdG9wVUFHSGlkZU1vYlVBR0hpZGVUYWJVQUdMb2dnZWRJblVBR0xvZ2dlZE91dFVBR0RheVVBR1Jlc3BvbnNpdmVDb25kaXRpb25zVUFHQW5pbWF0aW9uVHlwZVVBR0FuaW1hdGlvblRpbWVVQUdBbmltYXRpb25EZWxheVVBR0FuaW1hdGlvbkVhc2luZ1VBR0FuaW1hdGlvblJlcGVhdFVBR1Bvc2l0aW9uVUFHU3RpY2t5TG9jYXRpb25VQUdTdGlja3lSZXN0cmljdGVkVUFHU3RpY2t5T2Zmc2V0aW5uZXJCbG9ja3N2ZXJzaW9uIGFtbGlvcsOpZXZlcnNpb24gYW1saW9yw6llCgo8IS0tIHdwOmNvZGUgLS0+CjxwcmUgY2xhc3M9IndwLWJsb2NrLWNvZGUiPjxjb2RlPkNDID0gZ2NjCkNGTEFHUyA9IC1XYWxsIC1hbnNpIC1wZWRhbnRpYyAtZwpPQkogPSBjcHRjaGFpbmUubyBtYWxpYi5vClRBUkdFVCA9IGNwdGNoYWluZQoKYWxsOiAkKFRBUkdFVCkKCiQoVEFSR0VUKTogJChPQkopCgkkKENDKSAtbyAkQCAkXiAkKENGTEFHUykKCmNwdGNoYWluZS5vOiBjcHRjaGFpbmUuYwoJJChDQykgLWMgJCZsdDsgLW8gJEAgJChDRkxBR1MpCgptYWxpYi5vOiBtYWxpYi5jCgkkKENDKSAtYyAkJmx0OyAtbyAkQCAkKENGTEFHUykKCnRhcmJhbGw6Cgl0YXIgLXpjdmYgLi4vJChUQVJHRVQpLnRhci5neiBjcHRjaGFpbmUuYyBtYWxpYi5jIG1hbGliLmggTWFrZWZpbGUKCmNsZWFuOgoJJChSTSkgJChPQkopICQoVEFSR0VUKQoKLlBIT05ZOiBhbGwgY2xlYW4gdGFyYmFsbDwvY29kZT48L3ByZT4Kw6nDqQUHRgEBRgF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zMy04NjM1LWQ3MzQ0NmU0MzdmZHckODU3OWZjODAtZTNlOS00YzMzLTk5NmYtZGRlZjJmYjM3OWY4dyRhYzcwZWFkNS1jMzY3LTRlM2ItYTI5MC1lMzdjMDUyNDlmZjF3JGMyMjg3N2FiLWNjYjEtNGJmOS1hZmU0LTkzNzQ3NWYzMTdmN3ckMWEyMTQwMmEtNDRjYi00YWMxLTg2NWMtNmRlNGUzNGFmMGIwdyRmYWI4YmIwZi1hMjYzLTRkOTYtYmZjNy0xYzI2Njk4NWRjNDB3JDk0ZGNlNzI4LWUwNTktNDhhNi1hMzEzLTBiMTgxYmNiNjhmOXckMjhlN2I2NTUtMDY3My00NGIyLThjZDQtZDkwYmI4NzZkNzI3dyRiOWQyYjJkZS1mNGNjLTQ3YTktYTYxZi04YjdlODgwNTg3NjB3JDYyMDRjODhhLTllZmEtNGZjYi05ZWNjLTQzNzFkZmM3NzM1MnckZDcwNGQ1MDUtMWMzNS00ZDJhLWE0NTUtMzYxYjMxMzU4MDU1dyQ3MmI4YWRmZC1lNGZkLTQwOTEtYWM4ZS05NTQ3ZTFmOGQyZDF3JGZkZjIzNDViLWZlNjItNDRiNC05MTdjLWI1ODM2MGEwMWJiYnckNWMzNGZkMjUtMjQxNi00YTg0LWExMzYtZjgxN2E5MGFkNDNldyQ1ZmMyODQzOS0zN2M0LTQ4MWUtOWQyZC0yYjg1NmNjNDVlNmZ3JGM5ODk2YmNlLTk0MzUtNDQ5NC05ZDE2LTExYzE0M2MxMWRhZnckZWQxZWI3YzAtYzYzMy00Mjk2LWFhMzktMGZhNTU4ZTc0OGQ0dyQyNTkyYTI4MC0wNGU5LTRiZTgtOTA3Zi1mODVjM2ZhOTk0YTJ3JGQxYjVlZWQ3LWE0NDEtNDJjNC04ZGNkLThiMDgwOWJmYzcxMHckY2UyYTUzNzctNDRiNC00ZWRhLTk2NDktNzc3ZDU0ZjY1ZWU0dyQ3ZmViMDg1ZC0yMDkyLTQ2NDgtODI3Yy0wMTgwZWQxOGNkMTR3JDRjMmVlYmQ0LTA4MTUtNDVkOS1iNmE4LTQ2MTI0OTQ3ZDUzY3ckNjgxNmI3YTUtOGZiYy00YTM2LTliZTctYzYwNDAzYTc5Y2E0dyRmN2I0MTU2MC0zOWI5LTQzODctOGJlNi1jNWE3YjZhYWRkZjl3JGY1NDA5ZTliLTVkYTUtNGY2Ny04OWMwLTAyZDc1NGZmZjVhOHckYWRlYThkNjQtNzkzMy00ZDZlLTk3NDktOTVkYmVjNThkZGZidyQyNTliMmMyZi1lYmUxLTQxZGItOTZhYS0wYzBiMGJmZjY4OTN3JDlhMjhjNzdlLTdmMGQtNGViNy05YjFkLTU3MGQ1ZWE2Y2IzOHckYzY3NDgxYjAtMDA2MC00YWUzLWI0ZGUtM2FjODZhYTIxNzQzdyRlMGEwODNhMi00MjAwLTRjMWItYWFjNy00OTcyZjg1ODY5MDR3JDcyZTVlYTI4LWI1YTUtNDc4OS1hNDhkLWVlZmRiNzUzZmM3NnckZjRlNGY0MGUtZmFjYi00OTY2LWEyOTYtZjMxOTAzOGVhNDE1dyQ2OGFiZTQ4MS1hZDlkLTQyNDgtODg4Zi03ODI1MjMzYzU1Y2R3JDQzMTY0NjMzLTMxNGQtNDdlMC04ZDMzLWE3MzEzOGY3OGJlOHelBTxkaXYgY2xhc3M9IndwLWJsb2NrLWZpbGUiPjxvYmplY3QgY2xhc3M9IndwLWJsb2NrLWZpbGVfX2VtYmVkIiBkYXRhPSJodHRwczovL3dvcmtib290LmZyL2NpZWxhL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzA1L2Jhdm8tdmFuLWFjaHRlX2dudW1ha2UucGRmIiB0eXBlPSJhcHBsaWNhdGlvbi9wZGYiIHN0eWxlPSJ3aWR0aDoxMDAlO2hlaWdodDo2MDBweCIgYXJpYS1sYWJlbD0iYmF2by12YW4tYWNodGVfZ251bWFrZSI+PC9vYmplY3Q+PGEgaWQ9IndwLWJsb2NrLWZpbGUtLW1lZGlhLTE2NDdhMDA4LWU5OWYtNDM0NC05ODYxLTZmZDkxYTg1NTczMSIgaHJlZj0iaHR0cHM6Ly93b3JrYm9vdC5mci9jaWVsYS93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wNS9iYXZvLXZhbi1hY2h0ZV9nbnVtYWtlLnBkZiI+YmF2by12YW4tYWNodGVfZ251bWFrZTwvYT48YSBocmVmPSJodHRwczovL3dvcmtib290LmZyL2NpZWxhL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzA1L2Jhdm8tdmFuLWFjaHRlX2dudW1ha2UucGRmIiBjbGFzcz0id3AtYmxvY2stZmlsZV9fYnV0dG9uIHdwLWVsZW1lbnQtYnV0dG9uIiBkb3dubG9hZCBhcmlhLWRlc2NyaWJlZGJ5PSJ3cC1ibG9jay1maWxlLS1tZWRpYS0xNjQ3YTAwOC1lOTlmLTQzNDQtOTg2MS02ZmQ5MWE4NTU3MzEiPlTDqWzDqWNoYXJnZXI8L2E+PC9kaXY+dyQ3OWY4OTg2My1kZGU5LTQ2OTAtODM4OS05MGZlYWU0NjRhNDF3DmNvcmUvcGFyYWdyYXBoeXckM2IwYjdkYzQtODFjOC00YmM4LWJlYjYtYTdmYTQxZTUxNjFldz08aDIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPjEuIFBvdXJxdW9pIHV0aWxpc2VyIE1ha2UgPzwvaDI+dwxjb3JlL2hlYWRpbmd9AnckZmRiYmQ3NjctYjIzNC00ZjJlLTk5MTQtYzYyOWEzZGRjZWRidzk8cD48c3Ryb25nPk1ha2U8L3N0cm9uZz7CoGF1dG9tYXRpc2UgbGEgY29tcGlsYXRpb24gOjwvcD53DmNvcmUvcGFyYWdyYXBoeXckNWFlZTUwNGEtZjQ0Zi00OTA1LWJhNjctZmQwNjliZTk3YTI5dyM8dWwgY2xhc3M9IndwLWJsb2NrLWxpc3QiPgoKCgo8L3VsPncJY29yZS9saXN0eXcAdyQ1NGVmZmFkZC1hNmNlLTQwNTEtYTZmZC0yOWEwMGNhNzg0NTV3UzxsaT7DiXZpdGUgZGUgcmV0YXBlcsKgPGNvZGU+Z2NjIC1vIHByb2cgbWFpbi5jIHV0aWxzLmM8L2NvZGU+wqDDoCBjaGFxdWUgZm9pczwvbGk+eHcOY29yZS9saXN0LWl0ZW15eXl5eXUAeXcAfZAGfQB3BGVhc2V5dwB3A3RvcHl9AHckZGQ0ODJhODItOTljZC00MjM4LWIyNDMtOTA5ZGIzNzA2OTVhd0A8bGk+TmUgcmVjb21waWxlIHF1ZSBsZXMgZmljaGllcnMgbW9kaWZpw6lzIChnYWluIGRlIHRlbXBzKTwvbGk+eHcOY29yZS9saXN0LWl0ZW15eXl5eXUAeXcAfZAGfQB3BGVhc2V5dwB3A3RvcHl9AHckY2Y3NjNjYTQtNmY2My00ZTljLTlkMzYtYTM2NmJkNTZlOWY1dzc8bGk+RmFjaWxpdGUgbGEgZ2VzdGlvbiBkZXMgcHJvamV0cyBtdWx0aS1maWNoaWVyczwvbGk+eHcOY29yZS9saXN0LWl0ZW15eXl5eXUAeXcAfZAGfQB3BGVhc2V5dwB3A3RvcHl9AHckZmMyNGQ2M2EtNzU4NS00ZTYxLTkyNGMtNzE3MDNlZGVmOTk5dzQ8aDIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPjIuIFN5bnRheGUgZGUgYmFzZTwvaDI+dwxjb3JlL2hlYWRpbmd9AnckZDJkMWY4YTUtMmYxYS00ZGZkLThmODUtNjU0MTA5OWY3MGRjd088cHJlIGNsYXNzPSJ3cC1ibG9jay1jb2RlIj48Y29kZT5jaWJsZTogZMOpcGVuZGFuY2VzCiAgICBjb21tYW5kZXM8L2NvZGU+PC9wcmU+dwljb3JlL2NvZGV3JDMzMzI2YTE4LWQxYTYtNDg4NS04NjkwLWJhNjE3NGQ2YTg5M3fmATxwPjxtYXJrIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwgMCwgMCwgMCkiIGNsYXNzPSJoYXMtaW5saW5lLWNvbG9yIGhhcy12aXZpZC1yZWQtY29sb3IiPjxzdHJvbmc+SW1wb3J0YW50PC9zdHJvbmc+wqA6IExlcyBjb21tYW5kZXMgZG9pdmVudCBjb21tZW5jZXIgcGFyIHVuZcKgPHN0cm9uZz50YWJ1bGF0aW9uPC9zdHJvbmc+wqAocGFzIGRlcyBlc3BhY2VzICEpPGJyPjwvbWFyaz48L3A+dyQxOGU2YTY0Ni0xNzMwLTRmNWYtOWQxMi1lMzVmZjc4YWVjYWR3YjxwPmlsIGZhdXQgY29tcHJlbmRyZSBxdWUgcG91ciBmYWlyZSBsYSBjaWJsZSBpbCBmYXV0IGxhIG91IGxlcyAgZMOpcGVuZGFuY2Ugc2lub24gaW5mYWlzYWJsZSA8L3A+dw5jb3JlL3BhcmFncmFwaHl3JGI0NzVlODdkLWU2ZTgtNGQ5Zi04YmY2LTM2ZjRlYmI1ZjFmNnc4PGgzIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj5QcmVtaWVyIGV4ZW1wbGUgc2ltcGxlPC9oMz53DGNvcmUvaGVhZGluZ30DdyQyZjQyMzc4YS0zNWEzLTRjZDktYmM4My03OTJlM2RhMWI4ZDB3NjxwPmZpY2hpZXIgOiBtYWtlZmlsZSBvdSBNYWtlZmlsZSAgKGZpY2hpZXIgdGV4dGUpPC9wPncOY29yZS9wYXJhZ3JhcGh5dyRiZTljZjVkOC0wNjIyLTRjZTAtOGVlYS1lODNmY2Y1YzNhOGF3VTxwcmUgY2xhc3M9IndwLWJsb2NrLWNvZGUiPjxjb2RlPmhlbGxvOiBoZWxsby5jCiAgICBnY2MgLW8gaGVsbG8gaGVsbG8uYzwvY29kZT48L3ByZT53CWNvcmUvY29kZXckZTUwMTg3YmUtZmRjYS00YjMzLTg2MzUtZDczNDQ2ZTQzN2Zkd248cD5jb21tZSBpbmRpcXXDqSBsYSBkw6lwZW5kYW5jZSBlc3QgZCdhdm9pciBsZSBmaWNoaWVyIGhlbGxvLmMgKHNvdXJjZSkgIHBvdXIgcG91dm9pciBhdm9pciBoZWxsbyAoY2libGUpPC9wPncOY29yZS9wYXJhZ3JhcGh5dyQ4NTc5ZmM4MC1lM2U5LTRjMzMtOTk2Zi1kZGVmMmZiMzc5Zjh30QI8cHJlIGNsYXNzPSJ3cC1ibG9jay1jb2RlIj48Y29kZT5icnVub0BlbGxpb3R0On4vV29ya3MvbGFuZ2FnZV9DL2hlbGxvJCBtYWtlCm1ha2U6ICoqKiAgQXVjdW5lIHLDqGdsZSBwb3VyIGZhYnJpcXVlciBsYSBjaWJsZSDCq8KgaGVsbG8uY8KgwrssIG7DqWNlc3NhaXJlIHBvdXIgwqvCoGhlbGxvwqDCuy4gQXJyw6p0LgpicnVub0BlbGxpb3R0On4vV29ya3MvbGFuZ2FnZV9DL2hlbGxvJCBscwptYWtlZmlsZQpicnVub0BlbGxpb3R0On4vV29ya3MvbGFuZ2FnZV9DL2hlbGxvJCBjYXQgbWFrZWZpbGUgCmhlbGxvOiBoZWxsby5jCglnY2MgLW8gaGVsbG8gaGVsbG8uYwo8L2NvZGU+PC9wcmU+dwljb3JlL2NvZGV3JGFjNzBlYWQ1LWMzNjctNGUzYi1hMjkwLWUzN2MwNTI0OWZmMXcgPHA+b3VpIGlsIG1hbnF1ZSBsZSBzb3VyY2UgITwvcD53DmNvcmUvcGFyYWdyYXBoeXckYzIyODc3YWItY2NiMS00YmY5LWFmZTQtOTM3NDc1ZjMxN2Y3d6cDPHByZSBjbGFzcz0iRW5saWdodGVySlNSQVciIGRhdGEtZW5saWdodGVyLWxhbmd1YWdlPSJjIiBkYXRhLWVubGlnaHRlci10aGVtZT0iIiBkYXRhLWVubGlnaHRlci1oaWdobGlnaHQ9IiIgZGF0YS1lbmxpZ2h0ZXItbGluZW51bWJlcnM9IiIgZGF0YS1lbmxpZ2h0ZXItbGluZW9mZnNldD0iIiBkYXRhLWVubGlnaHRlci10aXRsZT0iIiBkYXRhLWVubGlnaHRlci1ncm91cD0iIj4vKioqKioqKioqKioqKioqKioqKioqKiovCi8qIEV4ZW1wbGU6IGhlbGxvLmMgICAgICAgICAgICAgKi8KLyoqKioqKioqKioqKioqKioqKioqKioqLwojaW5jbHVkZSAmbHQ7c3RkbGliLmg+CiNpbmNsdWRlICZsdDtzdGRpby5oPgoKaW50IG1haW4gKCkgCnsKCXB1dHMoIkJvbmpvdXIgbGUgbW9uZGUgXG4iKTsKCXJldHVybiBFWElUX1NVQ0NFU1M7Cn0KPC9wcmU+dxNlbmxpZ2h0ZXIvY29kZWJsb2Nrd8QBLyoqKioqKioqKioqKioqKioqKioqKioqLwovKiBFeGVtcGxlOiBoZWxsby5jICAgICAgICAgICAgICovCi8qKioqKioqKioqKioqKioqKioqKioqKi8KI2luY2x1ZGUgPHN0ZGxpYi5oPgojaW5jbHVkZSA8c3RkaW8uaD4KCmludCBtYWluICgpIAp7CglwdXRzKCJCb25qb3VyIGxlIG1vbmRlIFxuIik7CglyZXR1cm4gRVhJVF9TVUNDRVNTOwp9CncBY3cAdwB3AHcAdwB3AHckMWEyMTQwMmEtNDRjYi00YWMxLTg2NWMtNmRlNGUzNGFmMGIwd7gEPHByZSBjbGFzcz0id3AtYmxvY2stY29kZSI+PGNvZGU+YnJ1bm9AZWxsaW90dDp+L1dvcmtzL2xhbmdhZ2VfQy9oZWxsbyQgY2F0IGhlbGxvLmMgCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLyogRXhlbXBsZTogaGVsbG8uYyAgICAgICAgICAgICAqLwovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiNpbmNsdWRlICZsdDtzdGRsaWIuaD4KI2luY2x1ZGUgJmx0O3N0ZGlvLmg+CgppbnQgbWFpbiAoKSAKewoJcHV0cygiQm9uam91ciBsZSBtb25kZSBcbiIpOwoJcmV0dXJuIEVYSVRfU1VDQ0VTUzsKfQpicnVub0BlbGxpb3R0On4vV29ya3MvbGFuZ2FnZV9DL2hlbGxvJCBtYWtlIApnY2MgLW8gaGVsbG8gaGVsbG8uYwpicnVub0BlbGxpb3R0On4vV29ya3MvbGFuZ2FnZV9DL2hlbGxvJCBscwpoZWxsbyAgaGVsbG8uYyAgbWFrZWZpbGUKYnJ1bm9AZWxsaW90dDp+L1dvcmtzL2xhbmdhZ2VfQy9oZWxsbyQgbWFrZQptYWtlOiDCq8KgaGVsbG\/CoMK7IGVzdCDDoCBqb3VyLgpicnVub0BlbGxpb3R0On4vV29ya3MvbGFuZ2FnZV9DL2hlbGxvJCAKPC9jb2RlPjwvcHJlPncJY29yZS9jb2RldyRmYWI4YmIwZi1hMjYzLTRkOTYtYmZjNy0xYzI2Njk4NWRjNDB3QzxoMiBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+TGVzIHZhcmlhYmxlcyBhdXRvbWF0aXF1ZSBkZSBtYWtlPC9oMj53DGNvcmUvaGVhZGluZ30CdyQ5NGRjZTcyOC1lMDU5LTQ4YTYtYTMxMy0wYjE4MWJjYjY4Zjl3Kzx1bCBjbGFzcz0id3AtYmxvY2stbGlzdCI+CgoKCgoKCgoKCgoKPC91bD55dyRlNGRiZTBiOS0wYmMwLTQ2MDktYjM4NC05ZTQ3MWUxMTIyZWN3RTxsaT5WYXJpYWJsZSBTaWduaWZpY2F0aW9uIEV4ZW1wbGUgVmFsZXVyIHBvdXIgdGFyZ2V0OiBkZXAxIGRlcDI8L2xpPnckZjc1YjkyNDAtNzAzMC00MTc1LTk0MjgtZTllNTg3MTAyYjI5eHdgPGxpPiRAICAgICBOb20gZGUgbGEgY2libGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQCDihpIgdGFyZ2V0IHRhcmdldDwvbGk+dw5jb3JlL2xpc3QtaXRlbXl5eXl5dQB5dwB9kAZ9AHcEZWFzZXl3AHcDdG9weX0AdyRiNDM2MTc5ZC01ZjJiLTRmYzUtOTVkMC03OWY2MTIwMmE4NGF4d2E8bGk+JCZsdDsgICAgICBQcmVtacOocmUgZMOpcGVuZGFuY2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCZsdDsg4oaSIGRlcDEgZGVwMTwvbGk+dw5jb3JlL2xpc3QtaXRlbXl5eXl5dQB5dwB9kAZ9AHcEZWFzZXl3AHcDdG9weX0AdyQzNzRhODIxOC0wYzEyLTRiZmUtYWM4Mi00YmNhNDAwODE0NmV4d2Q8bGk+JF4gICAgICBUb3V0ZXMgbGVzIGTDqXBlbmRhbmNlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkXiDihpIgZGVwMSBkZXAyIGRlcDEgZGVwMjwvbGk+dw5jb3JlL2xpc3QtaXRlbXl5eXl5dQB5dwB9kAZ9AHcEZWFzZXl3AHcDdG9weX0AdyQ2MDQ2YWNiYy0yOTA3LTRhOTQtYTdkYy04ZDRlYWQwYWFmOWZ4d1s8bGk+JD8gICAgICBEw6lwZW5kYW5jZXMgcGx1cyByw6ljZW50ZXMgcXVlIGxhIGNpYmxlICAgICAgICAgJD8gZGVwMSAoc2kgcGx1cyByw6ljZW50KTwvbGk+dw5jb3JlL2xpc3QtaXRlbXl5eXl5dQB5dwB9kAZ9AHcEZWFzZXl3AHcDdG9weX0AdyQ3NmY5ODVhMS0wZTBkLTQzZWUtYmE0Ni01OWQxNjI1MTI5NjJ4d2U8bGk+JCogICAgICBCYXNlIGR1IG5vbSBkZSBmaWNoaWVyIChzYW5zIGV4dGVuc2lvbikgICAgICAgJCog4oaSIGZpbGUgcG91ciBmaWxlLmMgZGVwMSAoc2FucyAuYyk8L2xpPncOY29yZS9saXN0LWl0ZW15eXl5eXUAeXcAfZAGfQB3BGVhc2V5dwB3A3RvcHl9AHckZWJkYzM2YzUtYjJkMS00ZDliLTk3NjYtODc5NmJlYzJlMmMzeHdRPGxpPiQrICAgICBUb3V0ZXMgZMOpcGVuZGFuY2VzIChhdmVjIGRvdWJsb25zKSAgICAgICAgICAgICAkKyBkZXAxIGRlcDIgZGVwMTwvbGk+dw5jb3JlL2xpc3QtaXRlbXl5eXl5dQB5dwB9kAZ9AHcEZWFzZXl3AHcDdG9weX0AdyQyOGU3YjY1NS0wNjczLTQ0YjItOGNkNC1kOTBiYjg3NmQ3Mjd3HzxvbCBjbGFzcz0id3AtYmxvY2stbGlzdCI+PC9vbD53CWNvcmUvbGlzdHh3AHckNjIzYmY4MjYtZDI3MC00MTk5LWIxMDQtMDQzN2UwZjVlYmE5eHcJPGxpPjwvbGk+dw5jb3JlL2xpc3QtaXRlbXl5eXl5dQB5dwB9kAZ9AHcEZWFzZXl3AHcDdG9weX0AdyRiOWQyYjJkZS1mNGNjLTQ3YTktYTYxZi04YjdlODgwNTg3NjB3JDxoNCBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+JEA8L2g0PncMY29yZS9oZWFkaW5nfQR3JDYyMDRjODhhLTllZmEtNGZjYi05ZWNjLTQzNzFkZmM3NzM1MnctPHA+Y29ycmVzcG9uZCBhdSBub20gZGUgbGEgY2libGUgJ3RhcmdldCc8L3A+dw5jb3JlL3BhcmFncmFwaHl3JGQ3MDRkNTA1LTFjMzUtNGQyYS1hNDU1LTM2MWIzMTM1ODA1NXcnPGg0IGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj4kJmx0OzwvaDQ+dwxjb3JlL2hlYWRpbmd9BHckNzJiOGFkZmQtZTRmZC00MDkxLWFjOGUtOTU0N2UxZjhkMmQxdyI8cD5jb3JyZXNwb25kIMOgIGTDqXBlbmRhbmNlIDE8L3A+dw5jb3JlL3BhcmFncmFwaHl3JGZkZjIzNDViLWZlNjItNDRiNC05MTdjLWI1ODM2MGEwMWJiYnckPGg0IGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj4kXjwvaDQ+dwxjb3JlL2hlYWRpbmd9BHckNWMzNGZkMjUtMjQxNi00YTg0LWExMzYtZjgxN2E5MGFkNDNldzo8cD4gVG91dGVzIGxlcyBkw6lwZW5kYW5jZXMgJF4g4oaSIGRlcDEgZGVwMiBkZXAxIGRlcDI8L3A+dw5jb3JlL3BhcmFncmFwaHl3JDVmYzI4NDM5LTM3YzQtNDgxZS05ZDJkLTJiODU2Y2M0NWU2ZnclPGg0IGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj4kPyA8L2g0PncMY29yZS9oZWFkaW5nfQR3JGM5ODk2YmNlLTk0MzUtNDQ5NC05ZDE2LTExYzE0M2MxMWRhZndJPHA+RMOpcGVuZGFuY2VzIHBsdXMgcsOpY2VudGVzIHF1ZSBsYSBjaWJsZSAkPyBkZXAxIChzaSBwbHVzIHLDqWNlbnQpPC9wPncOY29yZS9wYXJhZ3JhcGh5dyRlZDFlYjdjMC1jNjMzLTQyOTYtYWEzOS0wZmE1NThlNzQ4ZDR3JDxoNCBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+JCo8L2g0PncMY29yZS9oZWFkaW5nfQR3JDI1OTJhMjgwLTA0ZTktNGJlOC05MDdmLWY4NWMzZmE5OTRhMndWPHA+IEJhc2UgZHUgbm9tIGRlIGZpY2hpZXIgKHNhbnMgZXh0ZW5zaW9uKSAkKiDihpIgZmlsZSBwb3VyIGZpbGUuYyBkZXAxIChzYW5zIC5jKTwvcD53DmNvcmUvcGFyYWdyYXBoeXckZDFiNWVlZDctYTQ0MS00MmM0LThkY2QtOGIwODA5YmZjNzEwdyU8aDQgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPiQrIDwvaDQ+dwxjb3JlL2hlYWRpbmd9BHckY2UyYTUzNzctNDRiNC00ZWRhLTk2NDktNzc3ZDU0ZjY1ZWU0dzw8cD5Ub3V0ZXMgZMOpcGVuZGFuY2VzIChhdmVjIGRvdWJsb25zKSAkKyBkZXAxIGRlcDIgZGVwMTwvcD53DmNvcmUvcGFyYWdyYXBoeXckN2ZlYjA4NWQtMjA5Mi00NjQ4LTgyN2MtMDE4MGVkMThjZDE0d1Y8aDIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPkV4ZW1wbGUgZGUgbWFrZWZpbGUgY2xhc3NpcXVlICh1biBwZXUgcGFzc2UgcGFydG91dCk8L2gyPncMY29yZS9oZWFkaW5nfQJ3JDRjMmVlYmQ0LTA4MTUtNDVkOS1iNmE4LTQ2MTI0OTQ3ZDUzY3eTBDxwcmUgY2xhc3M9IndwLWJsb2NrLWNvZGUiPjxjb2RlPiNsYSBjaWJsZSAoZXhlY3V0YWJsZSkKVEFSR0VUID0gdGVzdAojTWFrZWZpbGUgcGV0aXQgcHJvamV0IGF2ZWMgc2tlbGV0b25jCkNGTEFHUyA9IC1nIC1XYWxsIC1wZWRhbnRpYyAtYW5zaQojY29tcGlsYXRldXIgaWNpIGdjYwpDQyA9IGdjYwpERUIgPSBnZGIKI3NlY3Rpb24gcG91ciBhdm9pciBUQVJHRVQgaWwgZmF1dCBUQVJHRVQuYyBldCBmYWlyZSAKJChUQVJHRVQpOiAkKFRBUkdFVCkuYwoJJChDQykgJCZsdDsgJChDRkxBR1MpIC1vICRACiNhdmVjIGVkaXQgb24gYXVyYSBsZSBzb3VyY2UgZGFucyB2aQplZGl0OgkkKFRBUkdFVCkuYwoJdmkgJChUQVJHRVQpLmMKI29uIHZhIGxhbmNlciBnZGIgYXZlYyBsJ2V4ZWN1dGFibGUKZ2RiOgkkKFRBUkdFVCkKCSQoREVCKSAkKFRBUkdFVCkKI29uIG5ldHRvaWUgbGUgcHJvamV0CmNsZWFuOgoJcm0gJChUQVJHRVQpCiMgZmF1c3NlcyBjaWJsZXMgKHBob255KQouUEhPTlk6IGVkaXQgZ2RiIGNsZWFuPC9jb2RlPjwvcHJlPncJY29yZS9jb2RldyQ2ODE2YjdhNS04ZmJjLTRhMzYtOWJlNy1jNjA0MDNhNzljYTR3PDxoMiBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+RXhlbXBsZSBkJ3VuIHBldGl0IHByb2pldCA8L2gyPncMY29yZS9oZWFkaW5nfQJ3JGY3YjQxNTYwLTM5YjktNDM4Ny04YmU2LWM1YTdiNmFhZGRmOXcSPHA+Y3B0Y2hhaW5lLmM8L3A+dw5jb3JlL3BhcmFncmFwaHl3JGY1NDA5ZTliLTVkYTUtNGY2Ny04OWMwLTAyZDc1NGZmZjVhOHf1BDxwcmUgY2xhc3M9IkVubGlnaHRlckpTUkFXIiBkYXRhLWVubGlnaHRlci1sYW5ndWFnZT0iYyIgZGF0YS1lbmxpZ2h0ZXItdGhlbWU9IiIgZGF0YS1lbmxpZ2h0ZXItaGlnaGxpZ2h0PSIiIGRhdGEtZW5saWdodGVyLWxpbmVudW1iZXJzPSIiIGRhdGEtZW5saWdodGVyLWxpbmVvZmZzZXQ9IiIgZGF0YS1lbmxpZ2h0ZXItdGl0bGU9IiIgZGF0YS1lbmxpZ2h0ZXItZ3JvdXA9IiI+LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqIFByb2pldCA6IHBhc3NhZ2UgZGUgY2hhaW5lCiAqIEF1dGV1ciA6IEJvZ3QKICogRGF0ZSAgIDogMjgvMTEvMjAyMgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiNpbmNsdWRlICZsdDtzdGRsaWIuaD4KI2luY2x1ZGUgJmx0O3N0ZGlvLmg+CiNpbmNsdWRlICJtYWxpYi5oIgoKaW50IG1haW4gKGludCBhcmdjLCBjaGFyICoqYXJndikKewkKCWludCBsZXR0ZXJfbnVtYmVyOwoJbGV0dGVyX251bWJlcj1sZ19jaGFpbmUgKCJCb25qb3VyIGxlIG1vbmRlIik7CglwcmludGYgKCJvbiBhICVkIGxldHRyZShzKSBvdSBlc3BhY2UocykgZGFucyBjZXR0ZSBjaGFpbmVcbiIsbGV0dGVyX251bWJlcik7CglyZXR1cm4gRVhJVF9TVUNDRVNTOwp9PC9wcmU+dxNlbmxpZ2h0ZXIvY29kZWJsb2Nrd5IDLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqIFByb2pldCA6IHBhc3NhZ2UgZGUgY2hhaW5lCiAqIEF1dGV1ciA6IEJvZ3QKICogRGF0ZSAgIDogMjgvMTEvMjAyMgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlICJtYWxpYi5oIgoKaW50IG1haW4gKGludCBhcmdjLCBjaGFyICoqYXJndikKewkKCWludCBsZXR0ZXJfbnVtYmVyOwoJbGV0dGVyX251bWJlcj1sZ19jaGFpbmUgKCJCb25qb3VyIGxlIG1vbmRlIik7CglwcmludGYgKCJvbiBhICVkIGxldHRyZShzKSBvdSBlc3BhY2UocykgZGFucyBjZXR0ZSBjaGFpbmVcbiIsbGV0dGVyX251bWJlcik7CglyZXR1cm4gRVhJVF9TVUNDRVNTOwp9dwFjdwB3AHcAdwB3AHcAdyRhZGVhOGQ2NC03OTMzLTRkNmUtOTc0OS05NWRiZWM1OGRkZmJ3DjxwPm1hbGliLmM8L3A+dw5jb3JlL3BhcmFncmFwaHl3JDI1OWIyYzJmLWViZTEtNDFkYi05NmFhLTBjMGIwYmZmNjg5M3fEBDxwcmUgY2xhc3M9IkVubGlnaHRlckpTUkFXIiBkYXRhLWVubGlnaHRlci1sYW5ndWFnZT0iYyIgZGF0YS1lbmxpZ2h0ZXItdGhlbWU9IiIgZGF0YS1lbmxpZ2h0ZXItaGlnaGxpZ2h0PSIiIGRhdGEtZW5saWdodGVyLWxpbmVudW1iZXJzPSIiIGRhdGEtZW5saWdodGVyLWxpbmVvZmZzZXQ9IiIgZGF0YS1lbmxpZ2h0ZXItdGl0bGU9IiIgZGF0YS1lbmxpZ2h0ZXItZ3JvdXA9IiI+I2luY2x1ZGUgJmx0O3N0ZGlvLmg+Ci8qIGZvbmN0aW9uIGxnX2NoYWluZSAqLwppbnQgbGdfY2hhaW5lKGNoYXIgKmNoYWluZSkKewoJaW50IG5iX2xldHRyZTsKCW5iX2xldHRyZT0wOyAgIC8qIHBhcyBkZSBsZXR0cmUgYXUgZMOpcGFydCBkZSBsYSBmb25jdGlvbiAqLwoJcHJpbnRmICgiJXMgXG4iLGNoYWluZSk7Cgl3aGlsZSAoY2hhaW5lW25iX2xldHRyZV0hPTApICAvKiAwIG91ICdcMCcgKi8KIAl7CgkJbmJfbGV0dHJlPW5iX2xldHRyZSsxOyAJLyogb24gYSB1bmUgbGV0dHJlIGVuIHBsdXMgZGFucyBsYSBjaGFpbmUgKi8KCX0KCXJldHVybiBuYl9sZXR0cmU7IC8qIHJldG91ciBkdSBub21icmUgZGUgbGV0dHJlICovCn08L3ByZT53E2VubGlnaHRlci9jb2RlYmxvY2t35AIjaW5jbHVkZSA8c3RkaW8uaD4KLyogZm9uY3Rpb24gbGdfY2hhaW5lICovCmludCBsZ19jaGFpbmUoY2hhciAqY2hhaW5lKQp7CglpbnQgbmJfbGV0dHJlOwoJbmJfbGV0dHJlPTA7ICAgLyogcGFzIGRlIGxldHRyZSBhdSBkw6lwYXJ0IGRlIGxhIGZvbmN0aW9uICovCglwcmludGYgKCIlcyBcbiIsY2hhaW5lKTsKCXdoaWxlIChjaGFpbmVbbmJfbGV0dHJlXSE9MCkgIC8qIDAgb3UgJ1wwJyAqLwogCXsKCQluYl9sZXR0cmU9bmJfbGV0dHJlKzE7IAkvKiBvbiBhIHVuZSBsZXR0cmUgZW4gcGx1cyBkYW5zIGxhIGNoYWluZSAqLwoJfQoJcmV0dXJuIG5iX2xldHRyZTsgLyogcmV0b3VyIGR1IG5vbWJyZSBkZSBsZXR0cmUgKi8KfXcBY3cAdwB3AHcAdwB3AHckOWEyOGM3N2UtN2YwZC00ZWI3LTliMWQtNTcwZDVlYTZjYjM4dxk8cD5tYWxpYi5oICAgKGhlYWRlcik8L3A+dw5jb3JlL3BhcmFncmFwaHl3JGM2NzQ4MWIwLTAwNjAtNGFlMy1iNGRlLTNhYzg2YWEyMTc0M3e9AjxwcmUgY2xhc3M9IkVubGlnaHRlckpTUkFXIiBkYXRhLWVubGlnaHRlci1sYW5ndWFnZT0iYyIgZGF0YS1lbmxpZ2h0ZXItdGhlbWU9IiIgZGF0YS1lbmxpZ2h0ZXItaGlnaGxpZ2h0PSIiIGRhdGEtZW5saWdodGVyLWxpbmVudW1iZXJzPSIiIGRhdGEtZW5saWdodGVyLWxpbmVvZmZzZXQ9IiIgZGF0YS1lbmxpZ2h0ZXItdGl0bGU9IiIgZGF0YS1lbmxpZ2h0ZXItZ3JvdXA9IiI+I2lmbmRlZiBfX21hbGliX18KI2RlZmluZSBfX21hbGliX18KLyogZm9uY3Rpb24gbGdfY2hhaW5lICovCmludCBsZ19jaGFpbmUoY2hhciAqY2hhaW5lKTsKI2VuZGlmPC9wcmU+dxNlbmxpZ2h0ZXIvY29kZWJsb2Nrd2AjaWZuZGVmIF9fbWFsaWJfXwojZGVmaW5lIF9fbWFsaWJfXwovKiBmb25jdGlvbiBsZ19jaGFpbmUgKi8KaW50IGxnX2NoYWluZShjaGFyICpjaGFpbmUpOwojZW5kaWZ3AWN3AHcAdwB3AHcAdwB3JGUwYTA4M2EyLTQyMDAtNGMxYi1hYWM3LTQ5NzJmODU4NjkwNHchPHA+bWFrZWZpbGUgICh2ZXJzaW9uIHNpbXBsZSk8L3A+dw5jb3JlL3BhcmFncmFwaHl3JDcyZTVlYTI4LWI1YTUtNDc4OS1hNDhkLWVlZmRiNzUzZmM3NnfsAjxwcmUgY2xhc3M9IndwLWJsb2NrLWNvZGUiPjxjb2RlPmNwdGNoYWluZTogY3B0Y2hhaW5lLm8gbWFsaWIubwoJZ2NjIC1vIGNwdGNoYWluZSBtYWxpYi5vIGNwdGNoYWluZS5vIC1XYWxsIC1hbnNpIC1wZWRhbnRpYyAtZwpjcHRjaGFpbmUubzogY3B0Y2hhaW5lLmMKCWdjYyAtYyBjcHRjaGFpbmUuYyAtV2FsbCAtYW5zaSAtcGVkYW50aWMKbWFsaWIubzogbWFsaWIuYwoJZ2NjIC1XYWxsIC1hbnNpIC1wZWRhbnRpYyAtYyBtYWxpYi5jCnRhcmJhbGw6Cgl0YXIgLXpjdmYgLi4vY3B0Y2hhaW5lLnRhci5neiBjcHRjaGFpbmUuYyBtYWxpYi5jIG1hbGliLmggTWFrZWZpbGUKY2xlYW46CglybSAqLm8gY3B0Y2hhaW5lIDwvY29kZT48L3ByZT53CWNvcmUvY29kZXckZjRlNGY0MGUtZmFjYi00OTY2LWEyOTYtZjMxOTAzOGVhNDE1dxo8cD52ZXJzaW9uIGFtw6lsaW9yw6llPC9wPncOY29yZS9wYXJhZ3JhcGh5dyQ2OGFiZTQ4MS1hZDlkLTQyNDgtODg4Zi03ODI1MjMzYzU1Y2R4d7cDPHByZSBjbGFzcz0id3AtYmxvY2stY29kZSI+PGNvZGU+Q0MgPSBnY2MKQ0ZMQUdTID0gLVdhbGwgLWFuc2kgLXBlZGFudGljIC1nCk9CSiA9IGNwdGNoYWluZS5vIG1hbGliLm8KVEFSR0VUID0gY3B0Y2hhaW5lCgphbGw6ICQoVEFSR0VUKQoKJChUQVJHRVQpOiAkKE9CSikKCSQoQ0MpIC1vICRAICReICQoQ0ZMQUdTKQoKY3B0Y2hhaW5lLm86IGNwdGNoYWluZS5jCgkkKENDKSAtYyAkJmx0OyAtbyAkQCAkKENGTEFHUykKCm1hbGliLm86IG1hbGliLmMKCSQoQ0MpIC1jICQmbHQ7IC1vICRAICQoQ0ZMQUdTKQoKdGFyYmFsbDoKCXRhciAtemN2ZiAuLi8kKFRBUkdFVCkudGFyLmd6IGNwdGNoYWluZS5jIG1hbGliLmMgbWFsaWIuaCBNYWtlZmlsZQoKY2xlYW46CgkkKFJNKSAkKE9CSikgJChUQVJHRVQpCgouUEhPTlk6IGFsbCBjbGVhbiB0YXJiYWxsPC9jb2RlPjwvcHJlPncJY29yZS9jb2RleXl5eXl1AHl3AH2QBn0AdwRlYXNleXcAdwN0b3B5fQB3JDhhODViNjgwLTZiYjAtNGNmZi1iMjYyLTc5YmZlMGM4YzA4ZXh3DGNvcmUvZGV0YWlsc3l5eXl5eXUAeXcAfZAGfQB3BGVhc2V5dwB3A3RvcHl9AHckMTNiMWRjN2YtNmMxZi00NzkyLWI0NDUtYzZhZjEyNjI3ZWE0eHcOY29yZS9wYXJhZ3JhcGh5dyRUYXBlesKgLyBwb3VyIGFqb3V0ZXIgdW4gYmxvYyBjYWNow6l5eXl5eXUAeXcAfZAGfQB3BGVhc2V5dwB3A3RvcHl9AHckM2FiYTgxZDUtYjMyMy00Nzk2LWI3MDAtNTk5ZjA3MTIyODYxdwljb3JlL2ZpbGV4fZgJd09odHRwczovL3dvcmtib290LmZyL2NpZWxhL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzA1L2Jhdm8tdmFuLWFjaHRlX2dudW1ha2UucGRmd09odHRwczovL3dvcmtib290LmZyL2NpZWxhL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzA1L2Jhdm8tdmFuLWFjaHRlX2dudW1ha2UucGRmfad8dzl3cC1ibG9jay1maWxlLS1tZWRpYS0zYWJhODFkNS1iMzIzLTQ3OTYtYjcwMC01OTlmMDcxMjI4NjF4e0J5342161AAe0Hsn+OFAAAAkAEAeHcOY29yZS9saXN0LWl0ZW15eXl5eXUAeXcAfZAGfQB3BGVhc2V5dwB3A3RvcHl9ANUHAH0BfQB3BmNsb3NlZHcGY2xvc2VkdwB3AHcAeHl5eXl5dQB5dwB9kAZ9AHcEZWFzZXl3AHcDdG9weX0Adwxjb3JlL2hlYWRpbmd9Anh3DmNvcmUvcGFyYWdyYXBoeXl5eXl5dQB5dwB9kAZ9AHcEZWFzZXl3AHcDdG9weX0AeHcJY29yZS9saXN0eXcAeXl5eXl1AHl3AH2QBn0AdwRlYXNleXcAdwN0b3B5fQB4dw5jb3JlL2xpc3QtaXRlbXl5eXl5dQB5dwB9kAZ9AHcEZWFzZXl3AHcDdG9weX0AeHcOY29yZS9saXN0LWl0ZW15eXl5eXUAeXcAfZAGfQB3BGVhc2V5dwB3A3RvcHl9AHh3DmNvcmUvbGlzdC1pdGVteXl5eXl1AHl3AH2QBn0AdwRlYXNleXcAdwN0b3B5fQB4eXl5eXl1AHl3AH2QBn0AdwRlYXNleXcAdwN0b3B5fQB3DGNvcmUvaGVhZGluZ30CeHl5eXl5dQB5dwB9kAZ9AHcEZWFzZXl3AHcDdG9weX0Adwljb3JlL2NvZGV4dw5jb3JlL3BhcmFncmFwaHl5eXl5eXUAeXcAfZAGfQB3BGVhc2V5dwB3A3RvcHl9AHh5eXl5eXUAeXcAfZAGfQB3BGVhc2V5dwB3A3RvcHl9AHcHcHVibGlzaHcTMjAyNi0wNS0wNFQxMDoxNjoxNncIbWFrZWZpbGV3DGNvcmUvaGVhZGluZ30DeHl5eXl5dQB5dwB9kAZ9AHcEZWFzZXl3AHcDdG9weX0Adwljb3JlL2NvZGV4dw5jb3JlL3BhcmFncmFwaHl5eXl5eXUAeXcAfZAGfQB3BGVhc2V5dwB3A3RvcHl9AHh3DmNvcmUvcGFyYWdyYXBoeXl5eXl5dQB5dwB9kAZ9AHcEZWFzZXl3AHcDdG9weX0AeHl5eXl5dQB5dwB9kAZ9AHcEZWFzZXl3AHcDdG9weX0Adwljb3JlL2NvZGV4dw5jb3JlL3BhcmFncmFwaHl5eXl5eXUAeXcAfZAGfQB3BGVhc2V5dwB3A3RvcHl9AHh5eXl5eXUAeXcAfZAGfQB3BGVhc2V5dwB3A3RvcHl9AHcTZW5saWdodGVyL2NvZGVibG9ja3cAdwB3AHcAdwB3AHcBY3h5eXl5eXUAeXcAfZAGfQB3BGVhc2V5dwB3A3RvcHl9AHfEAS8qKioqKioqKioqKioqKioqKioqKioqKi8KLyogRXhlbXBsZTogaGVsbG8uYyAgICAgICAgICAgICAqLwovKioqKioqKioqKioqKioqKioqKioqKiovCiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgbWFpbiAoKSAKewoJcHV0cygiQm9uam91ciBsZSBtb25kZSBcbiIpOwoJcmV0dXJuIEVYSVRfU1VDQ0VTUzsKfQp3CWNvcmUvY29kZYcCAHckNjIzYmY4MjYtZDI3MC00MTk5LWIxMDQtMDQzN2UwZjVlYmE5dwk8bGk+PC9saT53kwQ8cHJlIGNsYXNzPSJ3cC1ibG9jay1jb2RlIj48Y29kZT4jbGEgY2libGUgKGV4ZWN1dGFibGUpClRBUkdFVCA9IHRlc3QKI01ha2VmaWxlIHBldGl0IHByb2pldCBhdmVjIHNrZWxldG9uYwpDRkxBR1MgPSAtZyAtV2FsbCAtcGVkYW50aWMgLWFuc2kKI2NvbXBpbGF0ZXVyIGljaSBnY2MKQ0MgPSBnY2MKREVCID0gZ2RiCiNzZWN0aW9uIHBvdXIgYXZvaXIgVEFSR0VUIGlsIGZhdXQgVEFSR0VULmMgZXQgZmFpcmUgCiQoVEFSR0VUKTogJChUQVJHRVQpLmMKCSQoQ0MpICQmbHQ7ICQoQ0ZMQUdTKSAtbyAkQAojYXZlYyBlZGl0IG9uIGF1cmEgbGUgc291cmNlIGRhbnMgdmkKZWRpdDoJJChUQVJHRVQpLmMKCXZpICQoVEFSR0VUKS5jCiNvbiB2YSBsYW5jZXIgZ2RiIGF2ZWMgbCdleGVjdXRhYmxlCmdkYjoJJChUQVJHRVQpCgkkKERFQikgJChUQVJHRVQpCiNvbiBuZXR0b2llIGxlIHByb2pldApjbGVhbjoKCXJtICQoVEFSR0VUKQojIGZhdXNzZXMgY2libGVzIChwaG9ueSkKLlBIT05ZOiBlZGl0IGdkYiBjbGVhbjwvY29kZT48L3ByZT54eXl5eXl1AHl3AH2QBn0AdwRlYXNleXcAdwN0b3B5fQB3CWNvcmUvZmlsZXh9mAl3T2h0dHBzOi8vd29ya2Jvb3QuZnIvY2llbGEvd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDUvYmF2by12YW4tYWNodGVfZ251bWFrZS5wZGZ3T2h0dHBzOi8vd29ya2Jvb3QuZnIvY2llbGEvd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDUvYmF2by12YW4tYWNodGVfZ251bWFrZS5wZGZ9p3x3OXdwLWJsb2NrLWZpbGUtLW1lZGlhLTE2NDdhMDA4LWU5OWYtNDM0NC05ODYxLTZmZDkxYTg1NTczMXirAQB3JGMzNGEzYjBjLTIwMDktNDFlNi1hMDg0LTVjMzZlMWJlMTFiZHdbPHA+TWFrZSBldCBtYWtlZmlsZSBvdSBNYWtlZmlsZSAsIHNvdXZlbnQgdXRpbGlzZXIgcG91ciBjb21waWxlciB1biBwcm9qZXQgZW4gbGFuZ2FnZSBjPC9wPnckM2IwYjdkYzQtODFjOC00YmM4LWJlYjYtYTdmYTQxZTUxNjFldzk8cD48c3Ryb25nPk1ha2U8L3N0cm9uZz7CoGF1dG9tYXRpc2UgbGEgY29tcGlsYXRpb24gOjwvcD53YjxwPmlsIGZhdXQgY29tcHJlbmRyZSBxdWUgcG91ciBmYWlyZSBsYSBjaWJsZSBpbCBmYXV0IGxhIG91IGxlcyAgZMOpcGVuZGFuY2Ugc2lub24gaW5mYWlzYWJsZSA8L3A+d0M8aDIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPkxlcyB2YXJpYWJsZXMgYXV0b21hdGlxdWUgZGUgbWFrZTwvaDI+dys8dWwgY2xhc3M9IndwLWJsb2NrLWxpc3QiPgoKCgoKCgoKCgoKCjwvdWw+dyRlNGRiZTBiOS0wYmMwLTQ2MDktYjM4NC05ZTQ3MWUxMTIyZWN3RTxsaT5WYXJpYWJsZSBTaWduaWZpY2F0aW9uIEV4ZW1wbGUgVmFsZXVyIHBvdXIgdGFyZ2V0OiBkZXAxIGRlcDI8L2xpPnckZjc1YjkyNDAtNzAzMC00MTc1LTk0MjgtZTllNTg3MTAyYjI5d2A8bGk+JEAgICAgIE5vbSBkZSBsYSBjaWJsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRAIOKGkiB0YXJnZXQgdGFyZ2V0PC9saT53JGI0MzYxNzlkLTVmMmItNGZjNS05NWQwLTc5ZjYxMjAyYTg0YXdhPGxpPiQmbHQ7ICAgICAgUHJlbWnDqHJlIGTDqXBlbmRhbmNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQmbHQ7IOKGkiBkZXAxIGRlcDE8L2xpPnckMzc0YTgyMTgtMGMxMi00YmZlLWFjODItNGJjYTQwMDgxNDZld2Q8bGk+JF4gICAgICBUb3V0ZXMgbGVzIGTDqXBlbmRhbmNlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkXiDihpIgZGVwMSBkZXAyIGRlcDEgZGVwMjwvbGk+dyQ2MDQ2YWNiYy0yOTA3LTRhOTQtYTdkYy04ZDRlYWQwYWFmOWZ3WzxsaT4kPyAgICAgIETDqXBlbmRhbmNlcyBwbHVzIHLDqWNlbnRlcyBxdWUgbGEgY2libGUgICAgICAgICAkPyBkZXAxIChzaSBwbHVzIHLDqWNlbnQpPC9saT53JDc2Zjk4NWExLTBlMGQtNDNlZS1iYTQ2LTU5ZDE2MjUxMjk2MndlPGxpPiQqICAgICAgQmFzZSBkdSBub20gZGUgZmljaGllciAoc2FucyBleHRlbnNpb24pICAgICAgICQqIOKGkiBmaWxlIHBvdXIgZmlsZS5jIGRlcDEgKHNhbnMgLmMpPC9saT53JGViZGMzNmM1LWIyZDEtNGQ5Yi05NzY2LTg3OTZiZWMyZTJjM3dRPGxpPiQrICAgICBUb3V0ZXMgZMOpcGVuZGFuY2VzIChhdmVjIGRvdWJsb25zKSAgICAgICAgICAgICAkKyBkZXAxIGRlcDIgZGVwMTwvbGk+dx88b2wgY2xhc3M9IndwLWJsb2NrLWxpc3QiPjwvb2w+dyQ8aDQgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPiRAPC9oND53LTxwPmNvcnJlc3BvbmQgYXUgbm9tIGRlIGxhIGNpYmxlICd0YXJnZXQnPC9wPncnPGg0IGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj4kJmx0OzwvaDQ+dyI8cD5jb3JyZXNwb25kIMOgIGTDqXBlbmRhbmNlIDE8L3A+dyQ8aDQgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPiRePC9oND53OjxwPiBUb3V0ZXMgbGVzIGTDqXBlbmRhbmNlcyAkXiDihpIgZGVwMSBkZXAyIGRlcDEgZGVwMjwvcD53JTxoNCBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+JD8gPC9oND53STxwPkTDqXBlbmRhbmNlcyBwbHVzIHLDqWNlbnRlcyBxdWUgbGEgY2libGUgJD8gZGVwMSAoc2kgcGx1cyByw6ljZW50KTwvcD53JDxoNCBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+JCo8L2g0PndWPHA+IEJhc2UgZHUgbm9tIGRlIGZpY2hpZXIgKHNhbnMgZXh0ZW5zaW9uKSAkKiDihpIgZmlsZSBwb3VyIGZpbGUuYyBkZXAxIChzYW5zIC5jKTwvcD53JTxoNCBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+JCsgPC9oND53PDxwPlRvdXRlcyBkw6lwZW5kYW5jZXMgKGF2ZWMgZG91YmxvbnMpICQrIGRlcDEgZGVwMiBkZXAxPC9wPndWPGgyIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj5FeGVtcGxlIGRlIG1ha2VmaWxlIGNsYXNzaXF1ZSAodW4gcGV1IHBhc3NlIHBhcnRvdXQpPC9oMj53PDxoMiBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+RXhlbXBsZSBkJ3VuIHBldGl0IHByb2pldCA8L2gyPncSPHA+Y3B0Y2hhaW5lLmM8L3A+d\/UEPHByZSBjbGFzcz0iRW5saWdodGVySlNSQVciIGRhdGEtZW5saWdodGVyLWxhbmd1YWdlPSJjIiBkYXRhLWVubGlnaHRlci10aGVtZT0iIiBkYXRhLWVubGlnaHRlci1oaWdobGlnaHQ9IiIgZGF0YS1lbmxpZ2h0ZXItbGluZW51bWJlcnM9IiIgZGF0YS1lbmxpZ2h0ZXItbGluZW9mZnNldD0iIiBkYXRhLWVubGlnaHRlci10aXRsZT0iIiBkYXRhLWVubGlnaHRlci1ncm91cD0iIj4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICogUHJvamV0IDogcGFzc2FnZSBkZSBjaGFpbmUKICogQXV0ZXVyIDogQm9ndAogKiBEYXRlICAgOiAyOC8xMS8yMDIyCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KI2luY2x1ZGUgJmx0O3N0ZGxpYi5oPgojaW5jbHVkZSAmbHQ7c3RkaW8uaD4KI2luY2x1ZGUgIm1hbGliLmgiCgppbnQgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQp7CQoJaW50IGxldHRlcl9udW1iZXI7CglsZXR0ZXJfbnVtYmVyPWxnX2NoYWluZSAoIkJvbmpvdXIgbGUgbW9uZGUiKTsKCXByaW50ZiAoIm9uIGEgJWQgbGV0dHJlKHMpIG91IGVzcGFjZShzKSBkYW5zIGNldHRlIGNoYWluZVxuIixsZXR0ZXJfbnVtYmVyKTsKCXJldHVybiBFWElUX1NVQ0NFU1M7Cn08L3ByZT53DjxwPm1hbGliLmM8L3A+d8QEPHByZSBjbGFzcz0iRW5saWdodGVySlNSQVciIGRhdGEtZW5saWdodGVyLWxhbmd1YWdlPSJjIiBkYXRhLWVubGlnaHRlci10aGVtZT0iIiBkYXRhLWVubGlnaHRlci1oaWdobGlnaHQ9IiIgZGF0YS1lbmxpZ2h0ZXItbGluZW51bWJlcnM9IiIgZGF0YS1lbmxpZ2h0ZXItbGluZW9mZnNldD0iIiBkYXRhLWVubGlnaHRlci10aXRsZT0iIiBkYXRhLWVubGlnaHRlci1ncm91cD0iIj4jaW5jbHVkZSAmbHQ7c3RkaW8uaD4KLyogZm9uY3Rpb24gbGdfY2hhaW5lICovCmludCBsZ19jaGFpbmUoY2hhciAqY2hhaW5lKQp7CglpbnQgbmJfbGV0dHJlOwoJbmJfbGV0dHJlPTA7ICAgLyogcGFzIGRlIGxldHRyZSBhdSBkw6lwYXJ0IGRlIGxhIGZvbmN0aW9uICovCglwcmludGYgKCIlcyBcbiIsY2hhaW5lKTsKCXdoaWxlIChjaGFpbmVbbmJfbGV0dHJlXSE9MCkgIC8qIDAgb3UgJ1wwJyAqLwogCXsKCQluYl9sZXR0cmU9bmJfbGV0dHJlKzE7IAkvKiBvbiBhIHVuZSBsZXR0cmUgZW4gcGx1cyBkYW5zIGxhIGNoYWluZSAqLwoJfQoJcmV0dXJuIG5iX2xldHRyZTsgLyogcmV0b3VyIGR1IG5vbWJyZSBkZSBsZXR0cmUgKi8KfTwvcHJlPncZPHA+bWFsaWIuaCAgIChoZWFkZXIpPC9wPne9AjxwcmUgY2xhc3M9IkVubGlnaHRlckpTUkFXIiBkYXRhLWVubGlnaHRlci1sYW5ndWFnZT0iYyIgZGF0YS1lbmxpZ2h0ZXItdGhlbWU9IiIgZGF0YS1lbmxpZ2h0ZXItaGlnaGxpZ2h0PSIiIGRhdGEtZW5saWdodGVyLWxpbmVudW1iZXJzPSIiIGRhdGEtZW5saWdodGVyLWxpbmVvZmZzZXQ9IiIgZGF0YS1lbmxpZ2h0ZXItdGl0bGU9IiIgZGF0YS1lbmxpZ2h0ZXItZ3JvdXA9IiI+I2lmbmRlZiBfX21hbGliX18KI2RlZmluZSBfX21hbGliX18KLyogZm9uY3Rpb24gbGdfY2hhaW5lICovCmludCBsZ19jaGFpbmUoY2hhciAqY2hhaW5lKTsKI2VuZGlmPC9wcmU+dyE8cD5tYWtlZmlsZSAgKHZlcnNpb24gc2ltcGxlKTwvcD537AI8cHJlIGNsYXNzPSJ3cC1ibG9jay1jb2RlIj48Y29kZT5jcHRjaGFpbmU6IGNwdGNoYWluZS5vIG1hbGliLm8KCWdjYyAtbyBjcHRjaGFpbmUgbWFsaWIubyBjcHRjaGFpbmUubyAtV2FsbCAtYW5zaSAtcGVkYW50aWMgLWcKY3B0Y2hhaW5lLm86IGNwdGNoYWluZS5jCglnY2MgLWMgY3B0Y2hhaW5lLmMgLVdhbGwgLWFuc2kgLXBlZGFudGljCm1hbGliLm86IG1hbGliLmMKCWdjYyAtV2FsbCAtYW5zaSAtcGVkYW50aWMgLWMgbWFsaWIuYwp0YXJiYWxsOgoJdGFyIC16Y3ZmIC4uL2NwdGNoYWluZS50YXIuZ3ogY3B0Y2hhaW5lLmMgbWFsaWIuYyBtYWxpYi5oIE1ha2VmaWxlCmNsZWFuOgoJcm0gKi5vIGNwdGNoYWluZSA8L2NvZGU+PC9wcmU+dxo8cD52ZXJzaW9uIGFtw6lsaW9yw6llPC9wPne3AzxwcmUgY2xhc3M9IndwLWJsb2NrLWNvZGUiPjxjb2RlPkNDID0gZ2NjCkNGTEFHUyA9IC1XYWxsIC1hbnNpIC1wZWRhbnRpYyAtZwpPQkogPSBjcHRjaGFpbmUubyBtYWxpYi5vClRBUkdFVCA9IGNwdGNoYWluZQoKYWxsOiAkKFRBUkdFVCkKCiQoVEFSR0VUKTogJChPQkopCgkkKENDKSAtbyAkQCAkXiAkKENGTEFHUykKCmNwdGNoYWluZS5vOiBjcHRjaGFpbmUuYwoJJChDQykgLWMgJCZsdDsgLW8gJEAgJChDRkxBR1MpCgptYWxpYi5vOiBtYWxpYi5jCgkkKENDKSAtYyAkJmx0OyAtbyAkQCAkKENGTEFHUykKCnRhcmJhbGw6Cgl0YXIgLXpjdmYgLi4vJChUQVJHRVQpLnRhci5neiBjcHRjaGFpbmUuYyBtYWxpYi5jIG1hbGliLmggTWFrZWZpbGUKCmNsZWFuOgoJJChSTSkgJChPQkopICQoVEFSR0VUKQoKLlBIT05ZOiBhbGwgY2xlYW4gdGFyYmFsbDwvY29kZT48L3ByZT6CEQB3PTxoMiBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+MS4gUG91cnF1b2kgdXRpbGlzZXIgTWFrZSA\/PC9oMj53Izx1bCBjbGFzcz0id3AtYmxvY2stbGlzdCI+CgoKCjwvdWw+d1M8bGk+w4l2aXRlIGRlIHJldGFwZXLCoDxjb2RlPmdjYyAtbyBwcm9nIG1haW4uYyB1dGlscy5jPC9jb2RlPsKgw6AgY2hhcXVlIGZvaXM8L2xpPnckZGQ0ODJhODItOTljZC00MjM4LWIyNDMtOTA5ZGIzNzA2OTVhd0A8bGk+TmUgcmVjb21waWxlIHF1ZSBsZXMgZmljaGllcnMgbW9kaWZpw6lzIChnYWluIGRlIHRlbXBzKTwvbGk+dyRjZjc2M2NhNC02ZjYzLTRlOWMtOWQzNi1hMzY2YmQ1NmU5ZjV3NzxsaT5GYWNpbGl0ZSBsYSBnZXN0aW9uIGRlcyBwcm9qZXRzIG11bHRpLWZpY2hpZXJzPC9saT53NDxoMiBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+Mi4gU3ludGF4ZSBkZSBiYXNlPC9oMj53TzxwcmUgY2xhc3M9IndwLWJsb2NrLWNvZGUiPjxjb2RlPmNpYmxlOiBkw6lwZW5kYW5jZXMKICAgIGNvbW1hbmRlczwvY29kZT48L3ByZT535gE8cD48bWFyayBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDApIiBjbGFzcz0iaGFzLWlubGluZS1jb2xvciBoYXMtdml2aWQtcmVkLWNvbG9yIj48c3Ryb25nPkltcG9ydGFudDwvc3Ryb25nPsKgOiBMZXMgY29tbWFuZGVzIGRvaXZlbnQgY29tbWVuY2VyIHBhciB1bmXCoDxzdHJvbmc+dGFidWxhdGlvbjwvc3Ryb25nPsKgKHBhcyBkZXMgZXNwYWNlcyAhKTxicj48L21hcms+PC9wPnc4PGgzIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj5QcmVtaWVyIGV4ZW1wbGUgc2ltcGxlPC9oMz53NjxwPmZpY2hpZXIgOiBtYWtlZmlsZSBvdSBNYWtlZmlsZSAgKGZpY2hpZXIgdGV4dGUpPC9wPndVPHByZSBjbGFzcz0id3AtYmxvY2stY29kZSI+PGNvZGU+aGVsbG86IGhlbGxvLmMKICAgIGdjYyAtbyBoZWxsbyBoZWxsby5jPC9jb2RlPjwvcHJlPnduPHA+Y29tbWUgaW5kaXF1w6kgbGEgZMOpcGVuZGFuY2UgZXN0IGQnYXZvaXIgbGUgZmljaGllciBoZWxsby5jIChzb3VyY2UpICBwb3VyIHBvdXZvaXIgYXZvaXIgaGVsbG8gKGNpYmxlKTwvcD530QI8cHJlIGNsYXNzPSJ3cC1ibG9jay1jb2RlIj48Y29kZT5icnVub0BlbGxpb3R0On4vV29ya3MvbGFuZ2FnZV9DL2hlbGxvJCBtYWtlCm1ha2U6ICoqKiAgQXVjdW5lIHLDqGdsZSBwb3VyIGZhYnJpcXVlciBsYSBjaWJsZSDCq8KgaGVsbG8uY8KgwrssIG7DqWNlc3NhaXJlIHBvdXIgwqvCoGhlbGxvwqDCuy4gQXJyw6p0LgpicnVub0BlbGxpb3R0On4vV29ya3MvbGFuZ2FnZV9DL2hlbGxvJCBscwptYWtlZmlsZQpicnVub0BlbGxpb3R0On4vV29ya3MvbGFuZ2FnZV9DL2hlbGxvJCBjYXQgbWFrZWZpbGUgCmhlbGxvOiBoZWxsby5jCglnY2MgLW8gaGVsbG8gaGVsbG8uYwo8L2NvZGU+PC9wcmU+dyA8cD5vdWkgaWwgbWFucXVlIGxlIHNvdXJjZSAhPC9wPnenAzxwcmUgY2xhc3M9IkVubGlnaHRlckpTUkFXIiBkYXRhLWVubGlnaHRlci1sYW5ndWFnZT0iYyIgZGF0YS1lbmxpZ2h0ZXItdGhlbWU9IiIgZGF0YS1lbmxpZ2h0ZXItaGlnaGxpZ2h0PSIiIGRhdGEtZW5saWdodGVyLWxpbmVudW1iZXJzPSIiIGRhdGEtZW5saWdodGVyLWxpbmVvZmZzZXQ9IiIgZGF0YS1lbmxpZ2h0ZXItdGl0bGU9IiIgZGF0YS1lbmxpZ2h0ZXItZ3JvdXA9IiI+LyoqKioqKioqKioqKioqKioqKioqKioqLwovKiBFeGVtcGxlOiBoZWxsby5jICAgICAgICAgICAgICovCi8qKioqKioqKioqKioqKioqKioqKioqKi8KI2luY2x1ZGUgJmx0O3N0ZGxpYi5oPgojaW5jbHVkZSAmbHQ7c3RkaW8uaD4KCmludCBtYWluICgpIAp7CglwdXRzKCJCb25qb3VyIGxlIG1vbmRlIFxuIik7CglyZXR1cm4gRVhJVF9TVUNDRVNTOwp9CjwvcHJlPne4BDxwcmUgY2xhc3M9IndwLWJsb2NrLWNvZGUiPjxjb2RlPmJydW5vQGVsbGlvdHQ6fi9Xb3Jrcy9sYW5nYWdlX0MvaGVsbG8kIGNhdCBoZWxsby5jIAovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi8qIEV4ZW1wbGU6IGhlbGxvLmMgICAgICAgICAgICAgKi8KLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwojaW5jbHVkZSAmbHQ7c3RkbGliLmg+CiNpbmNsdWRlICZsdDtzdGRpby5oPgoKaW50IG1haW4gKCkgCnsKCXB1dHMoIkJvbmpvdXIgbGUgbW9uZGUgXG4iKTsKCXJldHVybiBFWElUX1NVQ0NFU1M7Cn0KYnJ1bm9AZWxsaW90dDp+L1dvcmtzL2xhbmdhZ2VfQy9oZWxsbyQgbWFrZSAKZ2NjIC1vIGhlbGxvIGhlbGxvLmMKYnJ1bm9AZWxsaW90dDp+L1dvcmtzL2xhbmdhZ2VfQy9oZWxsbyQgbHMKaGVsbG8gIGhlbGxvLmMgIG1ha2VmaWxlCmJydW5vQGVsbGlvdHQ6fi9Xb3Jrcy9sYW5nYWdlX0MvaGVsbG8kIG1ha2UKbWFrZTogwqvCoGhlbGxvwqDCuyBlc3Qgw6Agam91ci4KYnJ1bm9AZWxsaW90dDp+L1dvcmtzL2xhbmdhZ2VfQy9oZWxsbyQgCjwvY29kZT48L3ByZT54eXl5eXl1AHl3AH2QBn0AdwRlYXNleXcAdwN0b3B5fQB3DGNvcmUvaGVhZGluZ30CeHl5eXl5dQB5dwB9kAZ9AHcEZWFzZXl3AHcDdG9weX0Adwljb3JlL2xpc3R4dwB4eXl5eXl1AHl3AH2QBn0AdwRlYXNleXcAdwN0b3B5fQB4dw5jb3JlL3BhcmFncmFwaHl5eXl5eXUAeXcAfZAGfQB3BGVhc2V5dwB3A3RvcHl9AHcMY29yZS9oZWFkaW5nfQR4eXl5eXl1AHl3AH2QBn0AdwRlYXNleXcAdwN0b3B5fQB3DGNvcmUvaGVhZGluZ30EeHcOY29yZS9wYXJhZ3JhcGh5eXl5eXl1AHl3AH2QBn0AdwRlYXNleXcAdwN0b3B5fQB4eXl5eXl1AHl3AH2QBn0AdwRlYXNleXcAdwN0b3B5fQB4dw5jb3JlL3BhcmFncmFwaHl5eXl5eXUAeXcAfZAGfQB3BGVhc2V5dwB3A3RvcHl9AHcMY29yZS9oZWFkaW5nfQR4eXl5eXl1AHl3AH2QBn0AdwRlYXNleXcAdwN0b3B5fQB4dw5jb3JlL3BhcmFncmFwaHl5eXl5eXUAeXcAfZAGfQB3BGVhc2V5dwB3A3RvcHl9AHh5eXl5eXUAeXcAfZAGfQB3BGVhc2V5dwB3A3RvcHl9AHcMY29yZS9oZWFkaW5nfQR4dw5jb3JlL3BhcmFncmFwaHl5eXl5eXUAeXcAfZAGfQB3BGVhc2V5dwB3A3RvcHl9AHcMY29yZS9oZWFkaW5nfQR4eXl5eXl1AHl3AH2QBn0AdwRlYXNleXcAdwN0b3B5fQB4dw5jb3JlL3BhcmFncmFwaHl5eXl5eXUAeXcAfZAGfQB3BGVhc2V5dwB3A3RvcHl9AHcMY29yZS9oZWFkaW5nfQR4eXl5eXl1AHl3AH2QBn0AdwRlYXNleXcAdwN0b3B5fQB4dwljb3JlL2xpc3R5eXl5eXUAeXcAfZAGfQB3BGVhc2V5dwB3A3RvcHl9AHl3AHh3DmNvcmUvbGlzdC1pdGVteXl5eXl1AHl3AH2QBn0AdwRlYXNleXcAdwN0b3B5fQB4dw5jb3JlL2xpc3QtaXRlbXl5eXl5dQB5dwB9kAZ9AHcEZWFzZXl3AHcDdG9weX0AeHcOY29yZS9saXN0LWl0ZW15eXl5eXUAeXcAfZAGfQB3BGVhc2V5dwB3A3RvcHl9AHh3DmNvcmUvbGlzdC1pdGVteXl5eXl1AHl3AH2QBn0AdwRlYXNleXcAdwN0b3B5fQB4dw5jb3JlL2xpc3QtaXRlbXl5eXl5dQB5dwB9kAZ9AHcEZWFzZXl3AHcDdG9weX0AeHcOY29yZS9saXN0LWl0ZW15eXl5eXUAeXcAfZAGfQB3BGVhc2V5dwB3A3RvcHl9AHh3DmNvcmUvbGlzdC1pdGVteXl5eXl1AHl3AH2QBn0AdwRlYXNleXcAdwN0b3B5fQB4dw5jb3JlL3BhcmFncmFwaHl5eXl5eXUAeXcAfZAGfQB3BGVhc2V5dwB3A3RvcHl9AHh3DmNvcmUvcGFyYWdyYXBoeXl5eXl5dQB5dwB9kAZ9AHcEZWFzZXl3AHcDdG9weX0Adwxjb3JlL2hlYWRpbmd9Anh5eXl5eXUAeXcAfZAGfQB3BGVhc2V5dwB3A3RvcHl9AHcJY29yZS9jb2RleHl5eXl5dQB5dwB9kAZ9AHcEZWFzZXl3AHcDdG9weX0Adwxjb3JlL2hlYWRpbmd9Anh5eXl5eXUAeXcAfZAGfQB3BGVhc2V5dwB3A3RvcHl9AHcTZW5saWdodGVyL2NvZGVibG9ja3cAdwB3AHcAdwB3AHcBY3eSAy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKiBQcm9qZXQgOiBwYXNzYWdlIGRlIGNoYWluZQogKiBBdXRldXIgOiBCb2d0CiAqIERhdGUgICA6IDI4LzExLzIwMjIKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwojaW5jbHVkZSA8c3RkbGliLmg+CiNpbmNsdWRlIDxzdGRpby5oPgojaW5jbHVkZSAibWFsaWIuaCIKCmludCBtYWluIChpbnQgYXJnYywgY2hhciAqKmFyZ3YpCnsJCglpbnQgbGV0dGVyX251bWJlcjsKCWxldHRlcl9udW1iZXI9bGdfY2hhaW5lICgiQm9uam91ciBsZSBtb25kZSIpOwoJcHJpbnRmICgib24gYSAlZCBsZXR0cmUocykgb3UgZXNwYWNlKHMpIGRhbnMgY2V0dGUgY2hhaW5lXG4iLGxldHRlcl9udW1iZXIpOwoJcmV0dXJuIEVYSVRfU1VDQ0VTUzsKfXh3DmNvcmUvcGFyYWdyYXBoeXl5eXl5dQB5dwB9kAZ9AHcEZWFzZXl3AHcDdG9weX0AeHcOY29yZS9wYXJhZ3JhcGh5eXl5eXl1AHl3AH2QBn0AdwRlYXNleXcAdwN0b3B5fQB4eXl5eXl1AHl3AH2QBn0AdwRlYXNleXcAdwN0b3B5fQB3E2VubGlnaHRlci9jb2RlYmxvY2t3AHcAdwB3AHcAdwB3AWN35AIjaW5jbHVkZSA8c3RkaW8uaD4KLyogZm9uY3Rpb24gbGdfY2hhaW5lICovCmludCBsZ19jaGFpbmUoY2hhciAqY2hhaW5lKQp7CglpbnQgbmJfbGV0dHJlOwoJbmJfbGV0dHJlPTA7ICAgLyogcGFzIGRlIGxldHRyZSBhdSBkw6lwYXJ0IGRlIGxhIGZvbmN0aW9uICovCglwcmludGYgKCIlcyBcbiIsY2hhaW5lKTsKCXdoaWxlIChjaGFpbmVbbmJfbGV0dHJlXSE9MCkgIC8qIDAgb3UgJ1wwJyAqLwogCXsKCQluYl9sZXR0cmU9bmJfbGV0dHJlKzE7IAkvKiBvbiBhIHVuZSBsZXR0cmUgZW4gcGx1cyBkYW5zIGxhIGNoYWluZSAqLwoJfQoJcmV0dXJuIG5iX2xldHRyZTsgLyogcmV0b3VyIGR1IG5vbWJyZSBkZSBsZXR0cmUgKi8KfXh3DmNvcmUvcGFyYWdyYXBoeXl5eXl5dQB5dwB9kAZ9AHcEZWFzZXl3AHcDdG9weX0AeHl5eXl5dQB5dwB9kAZ9AHcEZWFzZXl3AHcDdG9weX0AdxNlbmxpZ2h0ZXIvY29kZWJsb2NrdwB3AHcAdwB3AHcAdwFjd2AjaWZuZGVmIF9fbWFsaWJfXwojZGVmaW5lIF9fbWFsaWJfXwovKiBmb25jdGlvbiBsZ19jaGFpbmUgKi8KaW50IGxnX2NoYWluZShjaGFyICpjaGFpbmUpOwojZW5kaWZ4dw5jb3JlL3BhcmFncmFwaHl5eXl5eXUAeXcAfZAGfQB3BGVhc2V5dwB3A3RvcHl9AHh5eXl5eXUAeXcAfZAGfQB3BGVhc2V5dwB3A3RvcHl9AHcJY29yZS9jb2RleHl5eXl5dQB5dwB9kAZ9AHcEZWFzZXl3AHcDdG9weX0Adwljb3JlL2NvZGV4dw5jb3JlL3BhcmFncmFwaHl5eXl5eXUAeXcAfZAGfQB3BGVhc2V5dwB3A3RvcHl9AAaouPynDgsBQgGFAQIE3SAKGQABAAECEQQWQBRajwGMB9y1y5EOCwB+AQAVzgFAFAEFEwwDAgEGAQABAx0Bpd\/OkgytAQACAQ0TNgEAAQACAwEKAgkCAwQAAg0SAAEAAQER7gEBAAEAAQEaAYsBBYAEHAEAAQACABEHAQMBAAEBAQQBCAQAAQACAOMBDQICAQABAgEBAQIBCAEGBQYBAgEiAxoBCwEPAQ0BBQEHAQEBDAEIAQABAAIApgICAgEEAAEBBQECCwEAAQACAIABBQICAgACAAEFAwEBBAICAQABBAEAAQACAIsBCwECAwYBAQMHAwsfEQEAAQACAFcFAQgBFAEBAQUBAAEDBgE9AQEGAQEBAQcFAQUBAikBAQABAAIAEQJTAwEAAQEBDQEMAQABAAEEAQwDAwIFAQEBAgMAAwECAQcCAQMBAggFAQ8BAAEDAQcBEgEGAQ0BAwEHAQwFAAIHAy+YAgEBAAEAAgARAAIBAgARAAEAAQABAXEABgAQAwECBQqMAgg7CIcBAQEAAQABARERCwACAgEBAwABAA8IBAMuvQSFBJgDr4CgiwkGAJkEAQABAAEBEQD\/BswB9c7mowUCAAAC8wGDg8WABdYCAIgCAQABAAIAEQADAAMABQAGyAQGAAIAAvIHVwA+AScBLQE0AUQBUQE5AQFFARABAQ8eARYBsgleN94CAQEoEB8QQAUFEQIBFQEIBOABAQcBAAEICAIBAAQAAQABARE1GWkBAwEBAQACJwEAAgABAAEBNhABAAEAAgAREFslAQABAAIAEQICBAEAAQACAKMBCAEMASUBAAEAAgA3AQEYAQALAAEBAQMEAQEAAQACADMAAQEBAwgBATkyFwIVAQABAAIAEgABPgEAAQACJgMVEgABAAIAEQPwAk0BAAEAAigCIhEDAQABAAIAEd0BAQABMwEAAQACIgMOEVO6AQsGACBfAQcLBwERAQMKABMABIYBAQABAAIAEc0BAgERAQGUBQMABAAHK4sBIgG4AV82OBcCAQEAFgIjBysEE1kjAQEAFgMBAQICAQADBAECAQMBBAMBAQAEAAECAgIDAAEAdQYBAQIBBQIDBwEAAQABAQE1EgMJIgIDAgcBAwMFAQABAwEBAQQCAgEAAQACABENAgQCDgECAQsIDwEDARoBDwE1AQIBBAEfAQABZgEOAQABCQF+AScBDwEW5gEAHQA1ABcAHQIlABIAEAIkAA8AEgIVAAcAKAQBNAEHAwICAwMGFgEBAAEAAgAbAAEBAQMKABgAAgAFAAwABAIBAAEAAQERCJYBBcMBDpIDABYAAQMBAAEAAgARAAICAQABAQEAAQABAYgBCAEAAQABARER9AMABABHAAMANAAoBAEAAQABAUcTAQABAAEBNAAHAg0DAQIFEOYCAQEAAQABAREIPgEBAAEAAgARBgEBAQcBBgEbAgYBBwELAiYBCAEOARcCGQEoAQwBOQFbjAICCQBEAgcAMRIBAAEAAgBZIQIgARsBDAFLATwBAAIBATUBLwFkAQABAAIAEQAJAAQAAQAKANEDEwEB\",\"updateId\":323817575}","_uag_custom_page_level_css":"","footnotes":""},"class_list":["post-7904","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Makefile - workboot<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/workboot.fr\/ciela\/makefile\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Makefile - workboot\" \/>\n<meta property=\"og:description\" content=\"Make et makefile ou Makefile , souvent utiliser pour compiler un projet en langage c 1. Pourquoi utiliser Make ? Make\u00a0automatise la compilation : 2. Syntaxe de base Important\u00a0: Les [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/workboot.fr\/ciela\/makefile\/\" \/>\n<meta property=\"og:site_name\" content=\"workboot\" \/>\n<meta property=\"article:modified_time\" content=\"2026-05-05T15:57:17+00:00\" \/>\n<meta name=\"twitter:label1\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data1\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/makefile\\\/\",\"url\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/makefile\\\/\",\"name\":\"Makefile - workboot\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/#website\"},\"datePublished\":\"2026-05-04T09:16:16+00:00\",\"dateModified\":\"2026-05-05T15:57:17+00:00\",\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/workboot.fr\\\/ciela\\\/makefile\\\/\"]}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/#website\",\"url\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/\",\"name\":\"workboot\",\"description\":\"Open Source, Open Minds \",\"publisher\":{\"@id\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/#organization\",\"name\":\"workboot\",\"url\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/logo_ciel-dorian-1.png\",\"contentUrl\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/logo_ciel-dorian-1.png\",\"width\":1024,\"height\":950,\"caption\":\"workboot\"},\"image\":{\"@id\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Makefile - workboot","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:\/\/workboot.fr\/ciela\/makefile\/","og_locale":"fr_FR","og_type":"article","og_title":"Makefile - workboot","og_description":"Make et makefile ou Makefile , souvent utiliser pour compiler un projet en langage c 1. Pourquoi utiliser Make ? Make\u00a0automatise la compilation : 2. Syntaxe de base Important\u00a0: Les [&hellip;]","og_url":"https:\/\/workboot.fr\/ciela\/makefile\/","og_site_name":"workboot","article_modified_time":"2026-05-05T15:57:17+00:00","twitter_misc":{"Dur\u00e9e de lecture estim\u00e9e":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/workboot.fr\/ciela\/makefile\/","url":"https:\/\/workboot.fr\/ciela\/makefile\/","name":"Makefile - workboot","isPartOf":{"@id":"https:\/\/workboot.fr\/ciela\/#website"},"datePublished":"2026-05-04T09:16:16+00:00","dateModified":"2026-05-05T15:57:17+00:00","inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/workboot.fr\/ciela\/makefile\/"]}]},{"@type":"WebSite","@id":"https:\/\/workboot.fr\/ciela\/#website","url":"https:\/\/workboot.fr\/ciela\/","name":"workboot","description":"Open Source, Open Minds ","publisher":{"@id":"https:\/\/workboot.fr\/ciela\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/workboot.fr\/ciela\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/workboot.fr\/ciela\/#organization","name":"workboot","url":"https:\/\/workboot.fr\/ciela\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/workboot.fr\/ciela\/#\/schema\/logo\/image\/","url":"https:\/\/workboot.fr\/ciela\/wp-content\/uploads\/2025\/05\/logo_ciel-dorian-1.png","contentUrl":"https:\/\/workboot.fr\/ciela\/wp-content\/uploads\/2025\/05\/logo_ciel-dorian-1.png","width":1024,"height":950,"caption":"workboot"},"image":{"@id":"https:\/\/workboot.fr\/ciela\/#\/schema\/logo\/image\/"}}]}},"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false},"uagb_author_info":{"display_name":"admin","author_link":"https:\/\/workboot.fr\/ciela\/author\/admin\/"},"uagb_comment_info":0,"uagb_excerpt":"Make et makefile ou Makefile , souvent utiliser pour compiler un projet en langage c 1. Pourquoi utiliser Make ? Make\u00a0automatise la compilation : 2. Syntaxe de base Important\u00a0: Les [&hellip;]","_links":{"self":[{"href":"https:\/\/workboot.fr\/ciela\/wp-json\/wp\/v2\/pages\/7904","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/workboot.fr\/ciela\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/workboot.fr\/ciela\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/workboot.fr\/ciela\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/workboot.fr\/ciela\/wp-json\/wp\/v2\/comments?post=7904"}],"version-history":[{"count":29,"href":"https:\/\/workboot.fr\/ciela\/wp-json\/wp\/v2\/pages\/7904\/revisions"}],"predecessor-version":[{"id":7981,"href":"https:\/\/workboot.fr\/ciela\/wp-json\/wp\/v2\/pages\/7904\/revisions\/7981"}],"wp:attachment":[{"href":"https:\/\/workboot.fr\/ciela\/wp-json\/wp\/v2\/media?parent=7904"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}