diff --git a/VI3DGL/VERSION b/VI3DGL/VERSION index 9df886c..428b770 100644 --- a/VI3DGL/VERSION +++ b/VI3DGL/VERSION @@ -1 +1 @@ -1.4.2 +1.4.3 diff --git a/VI3DGL/sync-bundle-01.txt b/VI3DGL/sync-bundle-01.txt index 767e556..0cc4d19 100644 --- a/VI3DGL/sync-bundle-01.txt +++ b/VI3DGL/sync-bundle-01.txt @@ -1,7 +1,7 @@ ### SYNC-TRANSFER 1/5 -- mit sync-entpacken.bat entpacken ### Base64 - NICHT von Hand bearbeiten. ### FILE: VERSION | 6 -MS40LjIK +MS40LjMK ### FILE: Wochenplan.template.html | 26380 PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImRlIj4KPGhlYWQ+CjxtZXRhIGNoYXJzZXQ9IlVU Ri04Ij4KPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwg @@ -466,7 +466,7 @@ RWxlbWVudEJ5SWQoJ3dwLXNjcm9sbCcpLmlubmVySFRNTCA9CiAgICAgICAgJzxkaXYgY2xhc3M9 IndwLWxlZXItaGlud2VpcyI+PHN0cm9uZz5GZWhsZXIgYmVpbSBBdWZiYXUgZGVzIFdvY2hlbnBs YW5zPC9zdHJvbmc+PGJyPicgKwogICAgICAgIGVzY2FwZUhUTUwoZS5tZXNzYWdlIHx8IFN0cmlu ZyhlKSkgKyAnPC9kaXY+JzsKfQo8L3NjcmlwdD4KPC9ib2R5Pgo8L2h0bWw+Cg== -### FILE: app.js | 143098 +### FILE: app.js | 149495 LyogPT09IFZJMyBER0wtUGxhbnVuZyDigJQgQW53ZW5kdW5nc2xvZ2lrIChFeGNlbC10cmV1ZXMg TGF5b3V0KQoKICAgICAgIEVTTS1NaWdyYXRpb24gbGFldWZ0IOKAlCBzaWVoZSBkb2NzL01PRFVM X0tBUlRFLm1kLiA9PT0gKi8KCnZhciBfdXBkYXRlVG9hc3RTaG93biA9IGZhbHNlOwoKaW1wb3J0 @@ -866,2118 +866,2230 @@ IH0KCiAgICAvLyBIb3QtUmVsb2FkOiBhZG1pbi5qc29uIHd1cmRlIGF1ZiBkZW0gU2hhcmUgZ2Vh ZW5kZXJ0IChhbmRlcmVyIFNVIGhhdAogICAgLy8gZ2VzcGVpY2hlcnQpLiBXaXIgaG9sZW4gQWRt aW4tRGF0ZW4gKyBSZWNodGUgbmV1IHVuZCByZW5kZXJuIGRpZQogICAgLy8gcmVsZXZhbnRlbiBC ZXJlaWNoZS4gRGVyIFRhYi1XZWNoc2VsIHdpcmQgbmljaHQgYXVzZ2Vsb2VzdDsgVXNlcgogICAg -Ly8gYmxlaWJ0IGRvcnQsIHdvIGVyIGdlcmFkZSBpc3QuIFdlbm4gZ2VyYWRlIGVpbiBDaGVjay1N -b2RhbCBvZGVyCiAgICAvLyBJbXBlcnNvbmF0aW9uLUJhbm5lciBha3RpdiBpc3QsIHVlYmVyc3By -aW5nZW4gd2lyIGRpZSBBa3R1YWxpc2llcnVuZywKICAgIC8vIGRhbWl0IGtlaW5lIEFyYmVpdCB2 -ZXJsb3JlbiBnZWh0IGJ6dy4gZGVyIFRlc3QtS29udGV4dCBpbnRha3QgYmxlaWJ0LgogICAgZnVu -Y3Rpb24gYWRtaW5Ib3RSZWxvYWQoKSB7CiAgICAgICAgaWYgKGRpcnR5QWt0aXZlICYmIGRpcnR5 -QWt0aXZlKCkubGVuZ3RoID4gMCkgcmV0dXJuOyAgLy8gVXNlciBiZWFyYmVpdGV0IGdlcmFkZSB3 -YXMKICAgICAgICBpZiAoaW1wZXJzb25hdGlvbkFrdGl2KCkpIHJldHVybjsgIC8vIGltIEltcGVy -c29uYXRpb25zLU1vZHVzCiAgICAgICAgUHJvbWlzZS5hbGwoW2FwaSgnL2FwaS9hZG1pbicpLCBh -cGkoJy9hcGkvaW5mbycpXSkudGhlbihmdW5jdGlvbihyKSB7CiAgICAgICAgICAgIHZhciBhZG1p -bk5ldSA9IGFkbWluTGlzdGVuTm9ybWFsaXNpZXJlbihyWzBdKTsKICAgICAgICAgICAgdmFyIGlu -Zm8gPSByWzFdOwogICAgICAgICAgICB2YXIgcm9sbGVuRGlmZiA9IChaLnJlY2h0ZSAmJiBaLnJl -Y2h0ZS5yb2xsZSkgIT09IGluZm8ucm9sbGU7CiAgICAgICAgICAgIFouYWRtaW4gPSBhZG1pbk5l -dTsKICAgICAgICAgICAgWi5yZWNodGUgPSByZWNodGVBdXNJbmZvKGluZm8pOwogICAgICAgICAg -ICAvLyBDb2RlLU1hcCArIEdydXBwZW4tTWFwIG5ldSBhdWZiYXVlbiwgZmFsbHMgU2NoaWNodGNv -ZGVzL0dydXBwZW4gbWl0LWdlYWVuZGVydCB3dXJkZW4KICAgICAgICAgICAgWi5jb2RlTWFwID0g -e307CiAgICAgICAgICAgIChaLmFkbWluLnNjaGljaHRjb2RlcyB8fCBbXSkuZm9yRWFjaChmdW5j -dGlvbihzYykgewogICAgICAgICAgICAgICAgWi5jb2RlTWFwW3NjLmNvZGVdID0geyBoaW50ZXJn -cnVuZDogc2MuaGludGVyZ3J1bmQsIHNjaHJpZnQ6IHNjLnNjaHJpZnQsIGt1ZXJ6ZWw6IHNjLmNv -ZGUgfTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIFouZ3J1cHBlbk1hcCA9IHt9OwogICAg -ICAgICAgICAoWi5hZG1pbi5ncnVwcGVuIHx8IFtdKS5mb3JFYWNoKGZ1bmN0aW9uKGdyKSB7CiAg -ICAgICAgICAgICAgICBaLmdydXBwZW5NYXBbZ3IubmFtZV0gPSB7IGhpbnRlcmdydW5kOiBnci5o -aW50ZXJncnVuZCwgc2NocmlmdDogZ3Iuc2NocmlmdCwgYmV6ZWljaG51bmc6IGdyLmJlemVpY2hu -dW5nIH07CiAgICAgICAgICAgIH0pOwogICAgICAgICAgICBiZXplaWNobnVuZ2VuQW53ZW5kZW4o -KTsKICAgICAgICAgICAgbWFya2llcnVuZ2VuQW53ZW5kZW4oKTsKICAgICAgICAgICAgLy8gT3B0 -aW9uYWwtTW9kdWxlIG5hY2hsYWRlbiwgZmFsbHMgZGVyIFVzZXIgZ2VyYWRlIGZyaXNjaAogICAg -ICAgICAgICAvLyBTdGF0aXN0aWstL0xvZ2J1Y2gtUmVjaHRlIGJla29tbWVuIGhhdCAoaWRlbXBv -dGVudDogYmVyZWl0cwogICAgICAgICAgICAvLyBnZWxhZGVuZSBNb2R1bGUgd2VyZGVuIHVlYmVy -c3BydW5nZW4pLgogICAgICAgICAgICBvcHRpb25hbGVNb2R1bGVMYWRlbigpOwogICAgICAgICAg -ICBuYXZTaWNodGJhcmtlaXRBbndlbmRlbigpOwogICAgICAgICAgICBhZG1pblN1YnRhYkZpbHRl -ckFud2VuZGVuKCk7CiAgICAgICAgICAgIGlmICh0eXBlb2YgYWRtaW5SZW5kZXJuID09PSAnZnVu -Y3Rpb24nKSBhZG1pblJlbmRlcm4oKTsKICAgICAgICAgICAgLy8gVGFnLUluZm9zIChGZWllcnRh -Z2UsIEZlcmllbiwgU29uZGVydGVybWluZSkgYXVmIEJhc2lzIGRlciBuZXVlbgogICAgICAgICAg -ICAvLyBhZG1pbi5qc29uIG5ldSBiZXJlY2huZW4sIGRhbWl0IGFsbGUgYW5kZXJlbiBVc2VyIGRp -ZSBBZW5kZXJ1bmdlbgogICAgICAgICAgICAvLyBvaG5lIEY1IHNlaGVuIOKAlCBrb3BmUmVuZGVy -biBsaWVzdCBhdXMgWi50YWdJbmZvcy4KICAgICAgICAgICAgaWYgKHR5cGVvZiB0YWdJbmZvc0Jl -cmVjaG5lbiA9PT0gJ2Z1bmN0aW9uJykgdGFnSW5mb3NCZXJlY2huZW4oKTsKICAgICAgICAgICAg -aWYgKHR5cGVvZiBrb3BmUmVuZGVybiA9PT0gJ2Z1bmN0aW9uJykga29wZlJlbmRlcm4oKTsKICAg -ICAgICAgICAgaWYgKHJvbGxlbkRpZmYpIHRvYXN0KCdEZWluZSBSZWNodGUgd3VyZGVuIGdlcmFk -ZSBha3R1YWxpc2llcnQnLCAnaW5mbycpOwogICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKCkgeyAv -KiBzdHVtbSDigJQgVmVyc3VjaCBzcGFldGVyIHVlYmVyIG5hZWNoc3RlbiBIZWFydGJlYXQgKi8g -fSk7CiAgICB9CgogICAgLy8gcGxhbnVuZ0hvdFJlbG9hZDogbGVpY2h0Z2V3aWNodGlnZSBWYXJp -YW50ZSBmdWVyIHBsYW51bmcuanNvbi1tdGltZS0KICAgIC8vIEFlbmRlcnVuZ2VuLiBXaXJkIHZv -bSBoZWFydGJlYXQtd29ya2VyIGdldHJpZ2dlcnQsIHNvYmFsZCBwbGFudW5nLmpzb24KICAgIC8v -IHNlcnZlcnNlaXRpZyB2ZXJhZW5kZXJ0IHd1cmRlLiBMaXZlLVN5bmMgZGVja3QgWmVsbC0vS29t -bWVudGFyLVVwZGF0ZXMKICAgIC8vIGJlcmVpdHMgYWIg4oCUIGhpZXIgZ2VodCBlcyBudXIgZGFy -dW0sIGVpZ2VuZSBlZGl0UmVjaHRlL3NlaGVuLQogICAgLy8gQWVuZGVydW5nZW4gbWl0enViZWtv -bW1lbi4gRGFoZXIgcG9sbGVuIHdpciBudXIgL2FwaS9pbmZvIHVuZCBzY2hhdWVuLAogICAgLy8g -b2IgdW5zZXJlIGVpZ2VuZW4gUmVjaHRlIHNpY2ggYWVuZGVybjsgd2VubiBqYSwgbmV1IHJlbmRl -cm4uCiAgICAvLyAoQ2hlcnJ5LVBpY2sgMWFlZmUyNiBCdWcgIzMuKQogICAgZnVuY3Rpb24gcGxh -bnVuZ0hvdFJlbG9hZCgpIHsKICAgICAgICBpZiAoZGlydHlBa3RpdmUgJiYgZGlydHlBa3RpdmUo -KS5sZW5ndGggPiAwKSByZXR1cm47CiAgICAgICAgaWYgKGltcGVyc29uYXRpb25Ba3RpdigpKSBy -ZXR1cm47CiAgICAgICAgYXBpKCcvYXBpL2luZm8nKS50aGVuKGZ1bmN0aW9uKGluZm8pIHsKICAg -ICAgICAgICAgaWYgKCFpbmZvKSByZXR1cm47CiAgICAgICAgICAgIGlmIChpbmZvLnVwZGF0ZUF2 -YWlsYWJsZSAmJiAhX3VwZGF0ZVRvYXN0U2hvd24pIHsKICAgICAgICAgICAgICAgIF91cGRhdGVU -b2FzdFNob3duID0gdHJ1ZTsKICAgICAgICAgICAgICAgIHRvYXN0KAogICAgICAgICAgICAgICAg -ICAgICdVcGRhdGUgdmVyZsO8Z2JhcjogdicgKyAoaW5mby5yZW1vdGVWZXJzaW9uIHx8ICc/Jykg -KwogICAgICAgICAgICAgICAgICAgICcg4oCUIHVwZGF0ZS5iYXQgYXVzZsO8aHJlbiB1bmQgU2Vy -dmVyIG5ldSBzdGFydGVuJywKICAgICAgICAgICAgICAgICAgICAnaW5mbycsIHsgZGF1ZXI6IDIw -MDAwIH0KICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIGFs -dFJlY2h0ZSA9IFoucmVjaHRlIHx8IHt9OwogICAgICAgICAgICB2YXIgYWx0U2VyaWFsID0gSlNP -Ti5zdHJpbmdpZnkoewogICAgICAgICAgICAgICAgc2VoZW46ICAgICBhbHRSZWNodGUuc2VoZW4s -CiAgICAgICAgICAgICAgICBlZGl0aWVyZW46IGFsdFJlY2h0ZS5lZGl0aWVyZW4sCiAgICAgICAg -ICAgICAgICByb2xsZTogICAgIGFsdFJlY2h0ZS5yb2xsZQogICAgICAgICAgICB9KTsKICAgICAg -ICAgICAgdmFyIG5ldVNlcmlhbCA9IEpTT04uc3RyaW5naWZ5KHsKICAgICAgICAgICAgICAgIHNl -aGVuOiAgICAgaW5mby5zZWhlbiwKICAgICAgICAgICAgICAgIGVkaXRpZXJlbjogaW5mby5lZGl0 -aWVyZW4sCiAgICAgICAgICAgICAgICByb2xsZTogICAgIGluZm8ucm9sbGUKICAgICAgICAgICAg -fSk7CiAgICAgICAgICAgIGlmIChhbHRTZXJpYWwgPT09IG5ldVNlcmlhbCkgcmV0dXJuOyAgLy8g -bmljaHRzIFJlbGV2YW50ZXMgZ2VhZW5kZXJ0CiAgICAgICAgICAgIFoucmVjaHRlID0gcmVjaHRl -QXVzSW5mbyhpbmZvKTsKICAgICAgICAgICAgbmF2U2ljaHRiYXJrZWl0QW53ZW5kZW4oKTsKICAg -ICAgICAgICAgYWRtaW5TdWJ0YWJGaWx0ZXJBbndlbmRlbigpOwogICAgICAgICAgICBpZiAodHlw -ZW9mIGRhdGVuR3JpZFJlbmRlcm4gPT09ICdmdW5jdGlvbicpIGRhdGVuR3JpZFJlbmRlcm4oKTsK -ICAgICAgICAgICAgaWYgKHR5cGVvZiBuYW1lblJlbmRlcm4gPT09ICdmdW5jdGlvbicpIG5hbWVu -UmVuZGVybigpOwogICAgICAgICAgICB0b2FzdCgnRGVpbmUgUmVjaHRlIHd1cmRlbiBnZXJhZGUg -YWt0dWFsaXNpZXJ0JywgJ2luZm8nKTsKICAgICAgICB9KS5jYXRjaChmdW5jdGlvbigpIHsgLyog -c3R1bW0g4oCUIG5hZWNoc3RlciBIZWFydGJlYXQgdmVyc3VjaHQncyB3aWVkZXIgKi8gfSk7CiAg -ICB9CgogICAgLy8gaGV1dGVCbG9ja0FrdHVhbGlzaWVyZW4gLT4ganMvY29yZS9kYXRlbkxhZGVu -LmpzCiAgICAvLwogICAgLy8gPT09PT0gU2ljaHRiYXJrZWl0IFN0YXRpc3RpayAvIExvZ2J1Y2gg -LyBBZG1pbmlzdHJhdGlvbiAvIEJhY2t1cHMgPT09PT0KICAgIC8vIGRhcmZBZG1pblRhYi9kYXJm -U3RhdGlzdGlrL2RhcmZMb2didWNoLAogICAgLy8gZGFyZkFkbWluU3VidGFiL2RhcmZTdGF0aXN0 -aWtTdWIsCiAgICAvLyBiZXJlY2huZUZhY2hhdWZzaWNodFJlY2h0ZS9iZXJlY2huZVJlZ3VsYWVy -UmVjaHRlLAogICAgLy8gaW1wZXJzb25hdGUqLUZ1bmt0aW9uZW4gKDUpLAogICAgLy8gQURNSU5f -U1VCVEFCU19OSUVNQUxTX0ZVRVJfRkFDSEFVRlNJQ0hULCBhZG1pblN1YnRhYkZpbHRlckFud2Vu -ZGVuLAogICAgLy8gZGFyZlplbGxlRWRpdGllcmVuLCBuYXZTaWNodGJhcmtlaXRBbndlbmRlbgog -ICAgLy8gICAtPiBqcy9jb3JlL3Blcm1pc3Npb25zLmpzCgogICAgLy8gdGFnZUVyemV1Z2VuLCB0 -YWdJbmZvc0JlcmVjaG5lbiwgc3RhZXJrZUJlcmVjaG5lbiAtPiBqcy9ncmlkL3JlbmRlci5qcwoK -ICAgIC8vIEZ1ZWhydW5ncy1Mb2dpayAoZnVlaHJ1bmdzU2NoaWNodCwgZnVlaHJ1bmdzWmFlaGxl -biwgZGdsc0luU2NoaWNodCwgYWt0aXZlRnVlaHJ1bmcsIEZVRUhSVU5HX1NPTEwpLAogICAgLy8g -VmVyYW50d29ydHVuZ3N3ZWNoc2VsLVNhbW1lbC1NYWlsICh2ZXJhbnR3b3J0dW5nc1dlY2hzZWxE -aWFsb2daZWlnZW4vRW1haWxPZWZmbmVuLCBpbnRlcm4gaW4gZWRpdG9yLmpzKSwKICAgIC8vIGdl -c2FtdHZlcmFudHdvcnRsaWNoRW1haWwsIGZ1ZWhydW5nc1VudGVyYmVzZXR6dW5nUHJ1ZWZlbiAt -PiBqcy9ncmlkL2VkaXRvci5qcwogICAgLy8KICAgIC8vIGlzdFdhY2hsZWl0dW5nQWt0dWVsbGVy -VXNlciwgdW50ZXJiZXNldHp1bmdBbmFseXNlVmkzLCB6dURhdHVtU2Nyb2xsZW4sCiAgICAvLyB1 -bnRlcmJlc2V0enVuZ1dhcm51bmdaZWlnZW4gLT4ganMvZ3JpZC9pbnRlcmFjdGlvbi5qcwoKICAg -IC8vID09PT09IEJlc2V0enVuZ3Nrb250cm9sbGUgKEdlc2FtdHZlcmFudHdvcnRsaWNoZSwgSGVh -ZGVyLVRhYikgPT09PT0KICAgIC8vIGJlc2V0enVuZ0hvb2tzLCBiZXNldHp1bmdzQW5hbHlzZSwg -ZGVmaXppdEJyaWVmaW5nT2VmZm5lbiwKICAgIC8vIGJlc2V0enVuZ3NUYWJGYXJiZUFrdHVhbGlz -aWVyZW4sIGdlc2FtdHZlcmFudHdvcnRsaWNoVm9ybmFtZUVybWl0dGVsbiwKICAgIC8vIGJlc2V0 -enVuZ3Nrb250cm9sbGVSZW5kZXJuLCBiZXNldHp1bmdza29udHJvbGxlRXZlbnRzQXVmaGFlbmdl -biwKICAgIC8vIGZyZWlQZXJzb25lbkZ1ZXIsIGJlc2V0enVuZ01haWxNb2RhbCAtPiBqcy9iZXNl -dHp1bmcvYmVzZXR6dW5nLmpzCgogICAgLy8gc2NocmFmZnVyQmVyZWNobmVuLCBncmlkUmVuZGVy -biAtPiBqcy9ncmlkL3JlbmRlci5qcwoKICAgIC8vIGtvcGZSZW5kZXJuLCBuYW1lblJlbmRlcm4s -IGRhdGVuR3JpZFJlbmRlcm4sIHplbGxlVmlzdWVsbEFrdHVhbGlzaWVyZW4sIHN0YWVya2VaZWxs -ZUFrdHVhbGlzaWVyZW4gLT4ganMvZ3JpZC9yZW5kZXIuanMKCiAgICAvLyBlZGl0b3IgKE1vZHVs -LVN0YXRlKSwgZWRpdG9yT2VmZm5lbiwgZWRpdG9yU2NobGllc3NlbiwgZWRpdG9yQXVzd2FobCwg -bmFjaGJhckRhdHVtLCBzY2hpY2h0VHlwLCBydWhlemVpdFBydWVmZW4gLT4ganMvZ3JpZC9lZGl0 -b3IuanMKCiAgICAvLyBzY3JvbGxTeW5jLCB6dW1IZXV0aWdlbkRhdHVtLCBhbnNpY2h0V2VjaHNl -bG4gLT4ganMvZ3JpZC9yZW5kZXIuanMKCiAgICAvLyA9PT09PSBBZG1pbiAoa29uc29saWRpZXJ0 -OiBEaXNwYXRjaGVyICsgUGVyc29uZW4gKyBMaXN0ZW4gKwogICAgLy8gICBCZXplaWNobnVuZ2Vu -ICsgQmFja3VwcyArIFNjaGljaHRjb2RlcyArIEZlYXR1cmVzICsgU3VwZXJVc2VyICsKICAgIC8v -ICAgRmFjaGF1ZnNpY2h0ICsgU3ViLVNpY2h0YmFya2VpdCkgLT4ganMvYWRtaW4vYWRtaW4uanMK -CiAgICAvLyA9PT09PSBTdGF0aXN0aWsgPT09PT0gLT4ganMvc3RhdGlzdGlrLmpzCiAgICAvLyA9 -PT09PSBXb2NoZW5wbGFuICsgUGVyc29uZW4tUGxhbiA9PT09PSAtPiBqcy93b2NoZW5wbGFuL3dv -Y2hlbnBsYW4uanMKICAgIC8vID09PT09IEluZm9ybWF0aW9uc2ZlbnN0ZXIgPT09PT0KCiAgICAv -LyBEZWZhdWx0LUJlZGllbnVuZ3MtSGlud2Vpc2Ug4oCUIGdyZWlmZW4gd2VubiBhZG1pbi5iZWRp -ZW51bmdzdGV4dGUgbGVlcgogICAgLy8gb2RlciBuaWNodCB2b3JoYW5kZW4gaXN0LiBKZWRlIFpl -aWxlIHdpcmQgYWxzIGVpZ2VuZXIgTGlzdGVuZWludHJhZwogICAgLy8gZ2VyZW5kZXJ0OyBGb3Jt -YXQgIlRpdGVsOiBUZXh0IiAtPiBUaXRlbCBmZXR0LgogICAgdmFyIEJFRElFTlVOR19ERUZBVUxU -ID0KICAgICAgICAnUGxhbnVuZzogQXVmIGVpbmUgWmVsbGUga2xpY2tlbiB1bSBkZW4gU2NoaWNo -dGNvZGUgenUgw6RuZGVybi4gS29tbWVudGFyIMO8YmVyIGRhcyBFaW5nYWJlZmVsZCBpbSBFZGl0 -b3IuXG4nICsKICAgICAgICAnV29jaGVucGxhbjogREdMIHVuZCBXREYvRkJQIGdldHJlbm50IGRh -cmdlc3RlbGx0LCBtaXQgRGllbnN0bnVtbWVybi4gKiBtYXJraWVydCBCZXNldHp1bmcgYXVzIGRl -bSBGdW5rdGlvbnNiZXNldHp1bmdzcGxhbi5cbicgKwogICAgICAgICdQZXJzLiBQbGFuOiBKYWhy -ZXPDvGJlcnNpY2h0IGbDvHIgZWluZSBlaW56ZWxuZSBQZXJzb24gbWl0IE1vbmF0c2thbGVuZGVy -bi5cbicgKwogICAgICAgICdIZXV0ZS1CdXR0b246IFNjcm9sbHQgenVtIGhldXRpZ2VuIERhdHVt -LlxuJyArCiAgICAgICAgJ0JhY2t1cDogRXJzdGVsbHQgZWluZSBTaWNoZXJ1bmdza29waWUgZGVy -IGFrdHVlbGxlbiBQbGFudW5nLlxuJyArCiAgICAgICAgJ1ZlcmFudHdvcnRsaWNoOiBEaWUgcmFu -Z2jDtmNoc3RlIFBlcnNvbiBwcm8gU2NoaWNodCB3aXJkIGdvbGRmYXJiZW4gbWFya2llcnQuXG4n -ICsKICAgICAgICAnS29tbWVudGFyZTogWmVsbGVuIG1pdCBLb21tZW50YXIgaGFiZW4gZWluIGdv -bGRlbmVzIERyZWllY2sgb2JlbiByZWNodHMuXG4nICsKICAgICAgICAnQmFkZ2VzIGltIEhlYWRl -cjog8J+OgiBHZWJ1cnRzdGFnLCDimqAgV2FybnVuZywg4oS5IEhpbndlaXMg4oCUIGRpcmVrdCBh -bSBqZXdlaWxpZ2VuIFRhZy4nOwoKICAgIGZ1bmN0aW9uIGJlZGllbnVuZ1plaWxlblJlbmRlcm4o -dHh0KSB7CiAgICAgICAgdmFyIHF1ZWxsZSA9IHR4dCB8fCAnJzsKICAgICAgICBpZiAoIXF1ZWxs -ZS50cmltKCkpIHJldHVybiAnJzsKICAgICAgICByZXR1cm4gcXVlbGxlLnNwbGl0KC9ccj9cbi8p -Lm1hcChmdW5jdGlvbih6ZWlsZSkgewogICAgICAgICAgICB6ZWlsZSA9IHplaWxlLnRyaW0oKTsK -ICAgICAgICAgICAgaWYgKCF6ZWlsZSkgcmV0dXJuICcnOwogICAgICAgICAgICB2YXIgbSA9IHpl -aWxlLm1hdGNoKC9eKFteOl17Miw0MH0pOlxzKiguKykkLyk7CiAgICAgICAgICAgIGlmIChtKSB7 -CiAgICAgICAgICAgICAgICByZXR1cm4gJzxsaT48c3Ryb25nPicgKyBlc2NhcGVIVE1MKG1bMV0p -ICsgJzo8L3N0cm9uZz4gJyArIGVzY2FwZUhUTUwobVsyXSkgKyAnPC9saT4nOwogICAgICAgICAg -ICB9CiAgICAgICAgICAgIHJldHVybiAnPGxpPicgKyBlc2NhcGVIVE1MKHplaWxlKSArICc8L2xp -Pic7CiAgICAgICAgfSkuZmlsdGVyKEJvb2xlYW4pLmpvaW4oJycpOwogICAgfQoKICAgIC8vIEdy -dXBwaWVydCBkaWUgU2NoaWNodGNvZGVzIG5hY2ggZGVyIHZvcmhhbmRlbmVuIEthdGVnb3JpZS1M -b2dpayB1bmQKICAgIC8vIGxpZWZlcnQgSFRNTCBmdWVyIGVpbiAzLXNwYWx0aWdlcyBSYXN0ZXIg -cHJvIEdydXBwZS4KICAgIGZ1bmN0aW9uIHNjaGljaHRjb2RlTGVnZW5kZUh0bWwoKSB7CiAgICAg -ICAgdmFyIGxpc3RlID0gKFouYWRtaW4uc2NoaWNodGNvZGVzIHx8IFtdKS5maWx0ZXIoaXN0Q29k -ZUFrdGl2KTsKICAgICAgICB2YXIgZ3J1cHBlbiA9IHt9OwogICAgICAgIGxpc3RlLmZvckVhY2go -ZnVuY3Rpb24oc2MpIHsKICAgICAgICAgICAgdmFyIGsgPSBzY2hpY2h0Y29kZUthdGVnb3JpZShz -Yy5jb2RlKTsKICAgICAgICAgICAgaWYgKCFncnVwcGVuW2sua2V5XSkgZ3J1cHBlbltrLmtleV0g -PSB7IGxhYmVsOiBrLmxhYmVsLCBpdGVtczogW10gfTsKICAgICAgICAgICAgZ3J1cHBlbltrLmtl -eV0uaXRlbXMucHVzaChzYyk7CiAgICAgICAgfSk7CiAgICAgICAgZnVuY3Rpb24gdGlsZShzYykg -ewogICAgICAgICAgICByZXR1cm4gJzxkaXYgY2xhc3M9InNjLWxlZ2VuZGUtemVsbGUiPicgKwog -ICAgICAgICAgICAgICAgJzxzcGFuIGNsYXNzPSJzYy1sZWdlbmRlLWZhcmJmZWxkIiBzdHlsZT0i -YmFja2dyb3VuZDonICsgZXNjYXBlQXR0cihzYy5oaW50ZXJncnVuZCB8fCAnIzg4OCcpICsgJztj -b2xvcjonICsgZXNjYXBlQXR0cihzYy5zY2hyaWZ0IHx8ICcjZmZmJykgKyAnIj4nICsgZXNjYXBl -SFRNTChzYy5jb2RlKSArICc8L3NwYW4+JyArCiAgICAgICAgICAgICAgICAnPHNwYW4gY2xhc3M9 -InNjLWxlZ2VuZGUtdGV4dCI+PHN0cm9uZz4nICsgZXNjYXBlSFRNTChzYy5jb2RlKSArICc8L3N0 -cm9uZz48YnI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMHB4O2NvbG9yOnZhcigtLXRleHQtbXV0 -ZWQpIj4nICsgZXNjYXBlSFRNTChzYy5iZXplaWNobnVuZyB8fCAnJykgKyAnPC9zcGFuPjwvc3Bh -bj4nICsKICAgICAgICAgICAgICAgICc8L2Rpdj4nOwogICAgICAgIH0KICAgICAgICB2YXIgaHRt -bCA9ICcnOwogICAgICAgIE9iamVjdC5rZXlzKGdydXBwZW4pLnNvcnQoKS5mb3JFYWNoKGZ1bmN0 -aW9uKGspIHsKICAgICAgICAgICAgdmFyIGcgPSBncnVwcGVuW2tdOwogICAgICAgICAgICBnLml0 -ZW1zLnNvcnQoZnVuY3Rpb24oYSwgYikgeyByZXR1cm4gKGEuY29kZSB8fCAnJykubG9jYWxlQ29t -cGFyZShiLmNvZGUgfHwgJycsICdkZScpOyB9KTsKICAgICAgICAgICAgaHRtbCArPSAnPGRpdiBj -bGFzcz0ic2MtbGVnZW5kZS1ncnVwcGUiPicgKwogICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9 -InNjLWxlZ2VuZGUtdGl0ZWwiPicgKyBlc2NhcGVIVE1MKGcubGFiZWwpICsgJyA8c3BhbiBzdHls -ZT0iZm9udC13ZWlnaHQ6NTAwO29wYWNpdHk6MC42Ij4oJyArIGcuaXRlbXMubGVuZ3RoICsgJyk8 -L3NwYW4+PC9kaXY+JyArCiAgICAgICAgICAgICAgICAnPGRpdiBjbGFzcz0ic2MtbGVnZW5kZS1n -cmlkIj4nICsgZy5pdGVtcy5tYXAodGlsZSkuam9pbignJykgKyAnPC9kaXY+JyArCiAgICAgICAg -ICAgICc8L2Rpdj4nOwogICAgICAgIH0pOwogICAgICAgIHJldHVybiBodG1sOwogICAgfQoKICAg -IGZ1bmN0aW9uIGluZm9GZW5zdGVyWmVpZ2VuKCkgewogICAgICAgIHZhciBpbmZvQmxvY2sgPSAn -JzsKICAgICAgICBpZiAoWi5hZG1pbi5pbmZvdGV4dCkgewogICAgICAgICAgICBpbmZvQmxvY2sg -Kz0gJzxkaXYgY2xhc3M9ImluZm8ta2FydGUgaW5mby1rYXJ0ZS1pbmZvIj48c3Ryb25nPkluZm90 -ZXh0Ojwvc3Ryb25nPjxicj4nICsKICAgICAgICAgICAgICAgIGh0bWxBdXNGZWxkKFouYWRtaW4u -aW5mb3RleHQpICsgJzwvZGl2Pic7CiAgICAgICAgfQogICAgICAgIGlmIChaLmFkbWluLnN1cHBv -cnRpbmZvKSB7CiAgICAgICAgICAgIGluZm9CbG9jayArPSAnPGRpdiBjbGFzcz0iaW5mby1rYXJ0 -ZSBpbmZvLWthcnRlLXN1cHBvcnQiPjxzdHJvbmc+U3VwcG9ydDo8L3N0cm9uZz48YnI+JyArCiAg -ICAgICAgICAgICAgICBodG1sQXVzRmVsZChaLmFkbWluLnN1cHBvcnRpbmZvKSArICc8L2Rpdj4n -OwogICAgICAgIH0KICAgICAgICAvLyBBbnNwcmVjaHBhcnRuZXI6IFBlcnNvbmVuIG1pdCBGbGFn -IGlzdEFuc3ByZWNocGFydG5lcj10cnVlLiBTZWl0CiAgICAgICAgLy8gMjAyNi0wNS0yNSBvaG5l -IEZ1bmt0aW9ucy0gb2RlciBEaWVuc3RncnVwcGVuLUdhdGluZyAodGhlb3JldGlzY2gKICAgICAg -ICAvLyBrYW5uIGplZGUgUGVyc29uIGFscyBBbnNwcmVjaHBhcnRuZXIgYmVuYW5udCB3ZXJkZW4p -LiBEaWUgYWx0ZW4KICAgICAgICAvLyBGZWxkZXIgRnVua3Rpb24uaW5QbGFudW5nIHVuZCBEaWVu -c3RncnVwcGUuZGFyZkFuc3ByZWNocGFydG5lcgogICAgICAgIC8vIHdlcmRlbiBoaWVyIG5pY2h0 -IG1laHIgYXVzZ2V3ZXJ0ZXQuCiAgICAgICAgdmFyIGFwTGlzdGUgPSAoWi5wbGFudW5nLnBlcnNv -bmVuIHx8IFtdKQogICAgICAgICAgICAuZmlsdGVyKGZ1bmN0aW9uKHApIHsKICAgICAgICAgICAg -ICAgIHJldHVybiBwLmlzdEFuc3ByZWNocGFydG5lciAmJiAhcC5nZWxvZXNjaHRBbTsKICAgICAg -ICAgICAgfSkKICAgICAgICAgICAgLnNvcnQoZnVuY3Rpb24oYSwgYikgewogICAgICAgICAgICAg -ICAgdmFyIHJhID0gKChaLmFkbWluLmZ1bmt0aW9uZW4gfHwgW10pLmZpbmQoZnVuY3Rpb24oeCkg -eyByZXR1cm4geC5jb2RlID09PSBhLmZ1bmt0aW9uOyB9KSB8fCB7fSkucmFuZzsKICAgICAgICAg -ICAgICAgIHZhciByYiA9ICgoWi5hZG1pbi5mdW5rdGlvbmVuIHx8IFtdKS5maW5kKGZ1bmN0aW9u -KHgpIHsgcmV0dXJuIHguY29kZSA9PT0gYi5mdW5rdGlvbjsgfSkgfHwge30pLnJhbmc7CiAgICAg -ICAgICAgICAgICBpZiAocmEgPT0gbnVsbCkgcmEgPSA5OTsKICAgICAgICAgICAgICAgIGlmIChy -YiA9PSBudWxsKSByYiA9IDk5OwogICAgICAgICAgICAgICAgaWYgKHJhICE9PSByYikgcmV0dXJu -IHJhIC0gcmI7CiAgICAgICAgICAgICAgICByZXR1cm4gKChhLm5hbWUgfHwgJycpICsgJyAnICsg -KGEudm9ybmFtZSB8fCAnJykpLmxvY2FsZUNvbXBhcmUoKChiLm5hbWUgfHwgJycpICsgJyAnICsg -KGIudm9ybmFtZSB8fCAnJykpLCAnZGUnKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgaWYgKGFw -TGlzdGUubGVuZ3RoID4gMCkgewogICAgICAgICAgICAvLyBNYWlsLUJ1dHRvbiBwcm8gQW5zcHJl -Y2hwYXJ0bmVyOiBvZWZmbmV0IE91dGxvb2sgKG1haWx0bzopCiAgICAgICAgICAgIC8vIG1pdCB2 -b3JiZWZ1ZWxsdGVtIEJldHJlZmYgKyBFaW5sZWl0dW5nLiBCb2R5IG51dHp0IGRpZQogICAgICAg -ICAgICAvLyBkdC4gQW5yZWRlICsgQmV6dWcgYXVmIGRpZSBTY2hpY2h0cGxhbnVuZzsgQWJzZW5k -ZXIgd2lyZCBpbgogICAgICAgICAgICAvLyBkZXIgTWFpbC1TaWduYXR1ciBsZWVyIGdlbGFzc2Vu -LCB3ZWlsIE91dGxvb2sgZGFzIHNlbGJzdAogICAgICAgICAgICAvLyBhbmhhZW5ndC4KICAgICAg -ICAgICAgdmFyIGFwcFRpdGVsID0gYmV6KCdhcHAudGl0ZWwnKTsKICAgICAgICAgICAgdmFyIGFw -SHRtbCA9IGFwTGlzdGUubWFwKGZ1bmN0aW9uKHApIHsKICAgICAgICAgICAgICAgIHZhciBuYW1l -ID0gKChwLmRpZW5zdGdyYWQgPyBwLmRpZW5zdGdyYWQgKyAnICcgOiAnJykgKwogICAgICAgICAg -ICAgICAgICAgICAgICAgICAgKHAudm9ybmFtZSA/IHAudm9ybmFtZSArICcgJyA6ICcnKSArIChw -Lm5hbWUgfHwgJycpKS50cmltKCk7CiAgICAgICAgICAgICAgICB2YXIgemVpbGUgPSAnPHN0cm9u -Zz4nICsgZXNjYXBlSFRNTChuYW1lKSArICc8L3N0cm9uZz4nOwogICAgICAgICAgICAgICAgdmFy -IHJlY2h0cyA9IFtdOwogICAgICAgICAgICAgICAgaWYgKHAuZnVua3Rpb24pIHJlY2h0cy5wdXNo -KGVzY2FwZUhUTUwocC5mdW5rdGlvbikpOwogICAgICAgICAgICAgICAgaWYgKHAub2UpICAgICAg -IHJlY2h0cy5wdXNoKGVzY2FwZUhUTUwocC5vZSkpOwogICAgICAgICAgICAgICAgaWYgKHAudGVs -ZWZvbikgIHJlY2h0cy5wdXNoKCdUZWwuIDxzdHJvbmc+JyArIGVzY2FwZUhUTUwocC50ZWxlZm9u -KSArICc8L3N0cm9uZz4nKTsKICAgICAgICAgICAgICAgIGlmIChyZWNodHMubGVuZ3RoKSB6ZWls -ZSArPSAnIOKAlCAnICsgcmVjaHRzLmpvaW4oJywgJyk7CiAgICAgICAgICAgICAgICB2YXIgbWFp -bEJ0biA9ICcnOwogICAgICAgICAgICAgICAgaWYgKHAuZW1haWwpIHsKICAgICAgICAgICAgICAg -ICAgICB2YXIgYW5yZWRlID0gKHAudm9ybmFtZSA/IHAudm9ybmFtZSArICcgJyArIChwLm5hbWUg -fHwgJycpIDogKHAubmFtZSB8fCAnJykpLnRyaW0oKTsKICAgICAgICAgICAgICAgICAgICB2YXIg -YmV0cmVmZiA9ICdBbmZyYWdlIHp1ciBTY2hpY2h0cGxhbnVuZyDigJQgJyArIGFwcFRpdGVsOwog -ICAgICAgICAgICAgICAgICAgIHZhciBib2R5ID0gJ0hhbGxvICcgKyBhbnJlZGUgKyAnLFxuXG4n -ICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpY2ggaGFiZSBlaW5lIEZyYWdlIHp1 -ciBTY2hpY2h0cGxhbnVuZyB1bmQgbWVsZGUgbWljaCBiZWkgRGlyLCB3ZWlsIER1IGFscyBBbnNw -cmVjaHBhcnRuZXIgaGludGVybGVndCBiaXN0LlxuXG4nICsKICAgICAgICAgICAgICAgICAgICAg -ICAgICAgICAgICdbaGllciBrdXJ6IEFubGllZ2VuIGJlc2NocmVpYmVuXVxuXG4nICsKICAgICAg -ICAgICAgICAgICAgICAgICAgICAgICAgICdWaWVsZW4gRGFuayB1bmQgdmllbGUgR3LDvMOfZSc7 -CiAgICAgICAgICAgICAgICAgICAgdmFyIGhyZWYgPSAnbWFpbHRvOicgKyBlbmNvZGVVUklDb21w -b25lbnQocC5lbWFpbCkgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJz9zdWJqZWN0 -PScgKyBlbmNvZGVVUklDb21wb25lbnQoYmV0cmVmZikgKwogICAgICAgICAgICAgICAgICAgICAg -ICAgICAgICAgJyZib2R5PScgKyBlbmNvZGVVUklDb21wb25lbnQoYm9keSk7CiAgICAgICAgICAg -ICAgICAgICAgbWFpbEJ0biA9ICcgPGEgY2xhc3M9ImluZm8tYXAtbWFpbGJ0biIgaHJlZj0iJyAr -IGVzY2FwZUF0dHIoaHJlZikgKyAnIicgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn -IHRpdGxlPSJFLU1haWwgYW4gJyArIGVzY2FwZUF0dHIobmFtZSkgKyAnICgnICsgZXNjYXBlQXR0 -cihwLmVtYWlsKSArICcpIMO2ZmZuZW4iPk1haWw8L2E+JzsKICAgICAgICAgICAgICAgIH0gZWxz -ZSB7CiAgICAgICAgICAgICAgICAgICAgbWFpbEJ0biA9ICcgPHNwYW4gY2xhc3M9ImluZm8tYXAt -a2Vpbm1haWwiIHRpdGxlPSJLZWluZSBFLU1haWwtQWRyZXNzZSBoaW50ZXJsZWd0Ij7igJQga2Vp -bmUgRS1NYWlsIOKAlDwvc3Bhbj4nOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg -cmV0dXJuICc8bGkgc3R5bGU9Im1hcmdpbi1ib3R0b206NHB4Ij4nICsgemVpbGUgKyBtYWlsQnRu -ICsgJzwvbGk+JzsKICAgICAgICAgICAgfSkuam9pbignJyk7CiAgICAgICAgICAgIGluZm9CbG9j -ayArPSAnPGRpdiBjbGFzcz0iaW5mby1rYXJ0ZSBpbmZvLWthcnRlLXN1cHBvcnQiPicgKwogICAg -ICAgICAgICAgICAgJzxzdHJvbmc+QW5zcHJlY2hwYXJ0bmVyOjwvc3Ryb25nPicgKwogICAgICAg -ICAgICAgICAgJzx1bCBzdHlsZT0ibWFyZ2luOjZweCAwIDAgMThweDtwYWRkaW5nOjA7bGlzdC1z -dHlsZTpkaXNjIj4nICsgYXBIdG1sICsgJzwvdWw+PC9kaXY+JzsKICAgICAgICB9CgogICAgICAg -IC8vIEFsbGdlbWVpbmUgSGlsZmUg4oCUIG9wdGlvbmFsIGF1cyBhZG1pbi5qc29uLmhpbGZldGV4 -dCAoUmljaC1UZXh0KQogICAgICAgIHZhciBoaWxmZUJsb2NrID0gJyc7CiAgICAgICAgaWYgKFou -YWRtaW4uaGlsZmV0ZXh0ICYmIFN0cmluZyhaLmFkbWluLmhpbGZldGV4dCkudHJpbSgpKSB7CiAg -ICAgICAgICAgIGhpbGZlQmxvY2sgPSAnPGgzIHN0eWxlPSJjb2xvcjp2YXIoLS10ZXh0LWhlYWRp -bmcpO21hcmdpbi1ib3R0b206OHB4O21hcmdpbi10b3A6MTJweCI+QWxsZ2VtZWluZSBIaWxmZTwv -aDM+JyArCiAgICAgICAgICAgICAgICAnPGRpdiBzdHlsZT0iZm9udC1zaXplOjEzcHg7bGluZS1o -ZWlnaHQ6MS42O21hcmdpbi1ib3R0b206MTZweCI+JyArCiAgICAgICAgICAgICAgICBodG1sQXVz -RmVsZChaLmFkbWluLmhpbGZldGV4dCkgKyAnPC9kaXY+JzsKICAgICAgICB9CgogICAgICAgIC8v -IEJlZGllbnVuZyDigJQgYXVzIGFkbWluLmpzb24uYmVkaWVudW5nc3RleHRlIChSaWNoLVRleHQg -b2RlciBQbGFpbiksCiAgICAgICAgLy8gc29uc3QgRGVmYXVsdC4gV2VubiBIVE1MIHZvcmhhbmRl -biAoZW50aGFlbHQgPHVsPi88bGk+KSwgZGlyZWt0IGVpbmZ1ZWdlbjsKICAgICAgICAvLyBzb25z -dCBaZWlsZW4tenUtQnVsbGV0cy1VbXdhbmRsdW5nLgogICAgICAgIHZhciBiZWRpZW51bmdRdWVs -bGUgPSBaLmFkbWluLmJlZGllbnVuZ3N0ZXh0ZTsKICAgICAgICB2YXIgYmVkaWVudW5nOwogICAg -ICAgIGlmIChiZWRpZW51bmdRdWVsbGUgJiYgU3RyaW5nKGJlZGllbnVuZ1F1ZWxsZSkudHJpbSgp -KSB7CiAgICAgICAgICAgIGlmICgvPFwvPyh1bHxvbHxsaSlcYi9pLnRlc3QoYmVkaWVudW5nUXVl -bGxlKSkgewogICAgICAgICAgICAgICAgLy8gU2Nob24gZmVydGlnZXMgSFRNTCBtaXQgTGlzdGVu -IOKAlCBkaXJla3QgdWViZXJuZWhtZW4gKHNhbml0aXplZCkuCiAgICAgICAgICAgICAgICAvLyBD -U1MtUmVnZWxuIGZ1ZXIgLmluZm8tYWJzY2huaXR0IHVsL2xpIHN0ZXVlcm4gRWlucnVlY2t1bmcg -JiBBYnN0YW5kLgogICAgICAgICAgICAgICAgYmVkaWVudW5nID0gc2FuaXRpemVSaWNoSHRtbChi -ZWRpZW51bmdRdWVsbGUpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgYmVk -aWVudW5nID0gJzx1bD4nICsgYmVkaWVudW5nWmVpbGVuUmVuZGVybihiZWRpZW51bmdRdWVsbGUp -ICsgJzwvdWw+JzsKICAgICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGJl -ZGllbnVuZyA9ICc8dWw+JyArIGJlZGllbnVuZ1plaWxlblJlbmRlcm4oQkVESUVOVU5HX0RFRkFV -TFQpICsgJzwvdWw+JzsKICAgICAgICB9CgogICAgICAgIC8vIFdlcmt6ZXVnZS1TZWt0aW9uIChV -WC1BdWRpdCBTcHJpbnQgMi41LCAyMDI2LTA1LTI5KTogU3luYy1DaGVjawogICAgICAgIC8vIHVu -ZCBEaWFnbm9zZS1TZWl0ZSBleGlzdGllcmVuIGFscyAvc3luYy1jaGVjay5odG1sIGJ6dy4KICAg -ICAgICAvLyAvZGlhZ25vc2UuaHRtbCwgc2luZCBhYmVyIHZvbiBrZWluZXIgYW5kZXJlbiBTdGVs -bGUgaW4gZGVyIEFwcAogICAgICAgIC8vIHZlcmxpbmt0LiBIaWVyIGluIGRlciBJbmZvLU1vZGFs -IGF1Zm5laG1lbiwgZGFtaXQgQWRtaW5zK1NVIHNpZQogICAgICAgIC8vIG9obmUgVVJMLVRpcHBl -cmVpIG9lZmZuZW4ga29lbm5lbi4KICAgICAgICB2YXIgd2Vya3pldWdlQmxvY2sgPSAnJzsKICAg -ICAgICBpZiAoZGFyZkFkbWluVGFiKCkpIHsKICAgICAgICAgICAgd2Vya3pldWdlQmxvY2sgPSAn -PGRpdiBjbGFzcz0iaW5mby1hYnNjaG5pdHQiPjxoMz5XZXJremV1Z2U8L2gzPicgKwogICAgICAg -ICAgICAgICAgJzxkaXYgc3R5bGU9ImRpc3BsYXk6ZmxleDtnYXA6OHB4O2ZsZXgtd3JhcDp3cmFw -Ij4nICsKICAgICAgICAgICAgICAgICAgICAnPGEgY2xhc3M9ImJ0biBidG4tc2VrIiBocmVmPSIv -c3luYy1jaGVjay5odG1sIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciIgdGl0bGU9Ik1v -ZHVsLUxhZGUtRGlhZ25vc2U6IHBydWVmdCwgb2IgYWxsZSBKUy9DU1MtRGF0ZWllbiBmZWhsZXJm -cmVpIGdlbGFkZW4gd2VyZGVuIj5TeW5jLUNoZWNrIMO2ZmZuZW48L2E+JyArCiAgICAgICAgICAg -ICAgICAgICAgJzxhIGNsYXNzPSJidG4gYnRuLXNlayIgaHJlZj0iL2RpYWdub3NlLmh0bWwiIHRh -cmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIiB0aXRsZT0iU3lzdGVtLURpYWdub3NlOiBTZXJ2 -ZXItVmVyc2lvbiwgSGVhcnRiZWF0LCBQZXJtaXNzaW9ucyI+RGlhZ25vc2Ugw7ZmZm5lbjwvYT4n -ICsKICAgICAgICAgICAgICAgICc8L2Rpdj4nICsKICAgICAgICAgICAgICAgICc8L2Rpdj4nOwog -ICAgICAgIH0KCiAgICAgICAgLy8gVGFzdGF0dXJrdWVyemVsLVNla3Rpb24gKFVYLUF1ZGl0IFNw -cmludCAzLjcsIDIwMjYtMDUtMjkpOgogICAgICAgIC8vIFBvd2VyLVVzZXItRG9rdSBpbSBJbmZv -LU1vZGFsLCBkYW1pdCBkaWUgdm9yaGFuZGVuZW4gU2hvcnRjdXRzCiAgICAgICAgLy8gKEVTQyBm -dWVyIE1vZGFsLCBUYWIgZnVlciBGb2t1cy1UcmFwLCBFbnRlciB6dW0gU3BlaWNoZXJuLAogICAg -ICAgIC8vIERvcHBlbGtsaWNrIGltIEdyaWQpIGRpc2NvdmVyYWJsZSB3ZXJkZW4uCiAgICAgICAg -dmFyIHRhc3RhdHVyQmxvY2sgPQogICAgICAgICAgICAnPGRpdiBjbGFzcz0iaW5mby1hYnNjaG5p -dHQiPjxoMz5UYXN0YXR1cmvDvHJ6ZWw8L2gzPicgKwogICAgICAgICAgICAgICAgJzx0YWJsZSBj -bGFzcz0iaW5mby1zaG9ydGN1dHMiPicgKwogICAgICAgICAgICAgICAgICAgICc8dHI+PHRoPlRh -c3RlbmtvbWJpbmF0aW9uPC90aD48dGg+V2lya3VuZzwvdGg+PC90cj4nICsKICAgICAgICAgICAg -ICAgICAgICAnPHRyPjx0ZD48a2JkPkVzYzwva2JkPjwvdGQ+PHRkPlNjaGxpZXNzdCBkYXMgb2Jl -cnN0ZSBNb2RhbCAoTElGTyBiZWkgdmVyc2NoYWNodGVsdGVuIERpYWxvZ2VuKTwvdGQ+PC90cj4n -ICsKICAgICAgICAgICAgICAgICAgICAnPHRyPjx0ZD48a2JkPlRhYjwva2JkPiAvIDxrYmQ+U2hp -ZnQrVGFiPC9rYmQ+PC90ZD48dGQ+Rm9rdXMgaW5uZXJoYWxiIGRlcyBNb2RhbHMgd2VpdGVyIC8g -enVydWVjayAoRm9jdXMtVHJhcCk8L3RkPjwvdHI+JyArCiAgICAgICAgICAgICAgICAgICAgJzx0 -cj48dGQ+PGtiZD5FbnRlcjwva2JkPjwvdGQ+PHRkPkltIE1vZGFsOiBTcGVpY2hlcm4uIEltIEtv -bW1lbnRhci1FZGl0b3I6IEtvbW1lbnRhciBoaW56dWZ1ZWdlbjwvdGQ+PC90cj4nICsKICAgICAg -ICAgICAgICAgICAgICAnPHRyPjx0ZD48a2JkPkxpbmtza2xpY2s8L2tiZD4gYXVmIFplbGxlPC90 -ZD48dGQ+WmVsbGUgbWFya2llcmVuIChhdXN3YWVobGVuKTwvdGQ+PC90cj4nICsKICAgICAgICAg -ICAgICAgICAgICAnPHRyPjx0ZD48a2JkPlJlY2h0c2tsaWNrPC9rYmQ+IGF1ZiBaZWxsZTwvdGQ+ -PHRkPlNjaGljaHQtRWRpdG9yIG9lZmZuZW4gKEF1c2zDtnNlLUFrdGlvbiBpbSBCYWNrZW5kIGVp -bnN0ZWxsYmFyOiBMaW5rcy0vUmVjaHRzLS9NYXVzcmFkLS9Eb3BwZWxrbGljayk8L3RkPjwvdHI+ -JyArCiAgICAgICAgICAgICAgICAgICAgJzx0cj48dGQ+PGtiZD5LbGljazwva2JkPiBhdWYgVGFn -LUhlYWRlcjwvdGQ+PHRkPlRhZy1EZXRhaWwtTW9kYWwgKGFsbGUgUGVyc29uZW4gYW0gVGFnKTwv -dGQ+PC90cj4nICsKICAgICAgICAgICAgICAgICAgICAnPHRyPjx0ZD48a2JkPkhvdmVyPC9rYmQ+ -IGF1ZiBLb21tZW50YXItTWFya2VyPC90ZD48dGQ+S29tbWVudGFyLVBvcG92ZXIgKDI1MCBtcyBW -ZXJ6b2VnZXJ1bmcpPC90ZD48L3RyPicgKwogICAgICAgICAgICAgICAgICAgICc8dHI+PHRkPjxr -YmQ+RHJhZzwva2JkPiBhdWYgRmlsbC1IYW5kbGU8L3RkPjx0ZD5XZXJ0IG5hY2ggbGlua3MvcmVj -aHRzIGluIGRlcnNlbGJlbiBaZWlsZSBrb3BpZXJlbiAoRXhjZWwtYWVobmxpY2g7IGtlaW4gQXVz -ZnVlbGxlbiBuYWNoIG9iZW4vdW50ZW4pPC90ZD48L3RyPicgKwogICAgICAgICAgICAgICAgJzwv -dGFibGU+JyArCiAgICAgICAgICAgICc8L2Rpdj4nOwoKICAgICAgICB2YXIga29lcnBlciA9ICc8 -ZGl2IHN0eWxlPSJsaW5lLWhlaWdodDoxLjciPicgKwogICAgICAgICAgICAoaW5mb0Jsb2NrID8g -aW5mb0Jsb2NrIDogJycpICsKICAgICAgICAgICAgKGhpbGZlQmxvY2sgPyAnPGRpdiBjbGFzcz0i -aW5mby1hYnNjaG5pdHQiPicgKyBoaWxmZUJsb2NrICsgJzwvZGl2PicgOiAnJykgKwogICAgICAg -ICAgICAoYmVkaWVudW5nCiAgICAgICAgICAgICAgICA/ICc8ZGl2IGNsYXNzPSJpbmZvLWFic2No -bml0dCI+PGgzPkJlZGllbnVuZzwvaDM+JyArIGJlZGllbnVuZyArICc8L2Rpdj4nCiAgICAgICAg -ICAgICAgICA6ICcnKSArCiAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJpbmZvLWFic2Nobml0dCI+ -PGgzPlNjaGljaHRjb2RlLUxlZ2VuZGU8L2gzPicgKwogICAgICAgICAgICAgICAgJzxkaXYgY2xh -c3M9InNjLWxlZ2VuZGUtY29udGFpbmVyIj4nICsgc2NoaWNodGNvZGVMZWdlbmRlSHRtbCgpICsg -JzwvZGl2PicgKwogICAgICAgICAgICAnPC9kaXY+JyArCiAgICAgICAgICAgIHRhc3RhdHVyQmxv -Y2sgKwogICAgICAgICAgICB3ZXJremV1Z2VCbG9jayArCiAgICAgICAgICAgICc8ZGl2IGNsYXNz -PSJpbmZvLWZ1c3MiPicgKwogICAgICAgICAgICAgICAgZXNjYXBlSFRNTChiZXooJ2FwcC50aXRl -bCcpKSArICcgJyArIChaLmFkbWluLmphaHIgfHwgJycpICsgJyDigJQgQmVudXR6ZXI6ICcgKyBl -c2NhcGVIVE1MKFouYmVudXR6ZXIpICsKICAgICAgICAgICAgJzwvZGl2PjwvZGl2Pic7CgogICAg -ICAgIG1vZGFsWmVpZ2VuKCdJbmZvcm1hdGlvbiAmIEhpbGZlJywga29lcnBlciwKICAgICAgICAg -ICAgJzxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1zZWsiIGlkPSJpbmZvLWlt -cHJlc3N1bS1idG4iPkltcHJlc3N1bTwvYnV0dG9uPicgKwogICAgICAgICAgICAnPGJ1dHRvbiB0 -eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRuLXByaW1hZXIiIGlkPSJpbmZvLXNjaGxpZXNzZW4t -YnRuIj5TY2hsaWXDn2VuPC9idXR0b24+JywKICAgICAgICAgICAgbnVsbCwgbnVsbCwgeyByZWlu -ZXJEaWFsb2c6IHRydWUgfSk7CiAgICAgICAgdmFyIGJ0bkltcHJlc3N1bSA9IGRvY3VtZW50Lmdl -dEVsZW1lbnRCeUlkKCdpbmZvLWltcHJlc3N1bS1idG4nKTsKICAgICAgICBpZiAoYnRuSW1wcmVz -c3VtKSBidG5JbXByZXNzdW0uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBpbXByZXNzdW1Nb2Rh -bE9lZmZuZW4pOwogICAgICAgIHZhciBidG5TY2hsaWVzc2VuID0gZG9jdW1lbnQuZ2V0RWxlbWVu -dEJ5SWQoJ2luZm8tc2NobGllc3Nlbi1idG4nKTsKICAgICAgICBpZiAoYnRuU2NobGllc3Nlbikg -YnRuU2NobGllc3Nlbi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCkgeyBtb2Rh -bFNjaGxpZXNzZW4odHJ1ZSk7IH0pOwogICAgfQoKICAgIC8vIEJhdXQgZGVuIHZvcmF1c2dlZnVl -bGx0ZW4gU3VwcG9ydC1NYWlsLUJvZHkuIFBsYWluLVRleHQsIGtsYXIKICAgIC8vIHN0cnVrdHVy -aWVydCBpbiBBYnNjaG5pdHRlbiDigJQgVXNlciBzb2xsIGRpZSBMdWVla2VuIGF1c2Z1ZWxsZW4s -CiAgICAvLyBzdGF0dCB2b24gTnVsbCBhbiB6dSBzY2hyZWliZW4uIEF1dG8tU2VrdGlvbiBhbSBF -bmRlIGlzdCBtaXQKICAgIC8vIExpdmUtRGF0ZW4gdm9yYmVmdWVsbHQgKE5XLUtlbm51bmcsIGFr -dHVlbGxlIEFuc2ljaHQsIEJyb3dzZXIsCiAgICAvLyBBdWZsb2VzdW5nLCBCdWlsZC1KYWhyKSwg -ZGFtaXQgUGhpbGlwcCBuaWNodCBtZWhyZmFjaCBuYWNoZnJhZ2VuCiAgICAvLyBtdXNzLgogICAg -ZnVuY3Rpb24gX21haWxQbGF0emhhbHRlckVyc2V0emVuKHRlbXBsYXRlKSB7CiAgICAgICAgdmFy -IGpldHp0ID0gbmV3IERhdGUoKTsKICAgICAgICB2YXIgcGFkID0gZnVuY3Rpb24obikgeyByZXR1 -cm4gKG4gPCAxMCA/ICcwJyA6ICcnKSArIG47IH07CiAgICAgICAgdmFyIGFrdGl2ID0gJyc7CiAg -ICAgICAgdHJ5IHsgYWt0aXYgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCd2aTMuYWt0aXZlQW5z -aWNodCcpIHx8ICdwbGFudW5nJzsgfSBjYXRjaCAoZSkgeyBha3RpdiA9ICdwbGFudW5nJzsgfQog -ICAgICAgIHZhciBjdHggPSB7CiAgICAgICAgICAgICd7bndfa2VubnVuZ30nOiAgICAgICBaLmJl -bnV0emVyIHx8ICc/JywKICAgICAgICAgICAgJ3tha3R1ZWxsZV9hbnNpY2h0fSc6IGFrdGl2LAog -ICAgICAgICAgICAne2RhdHVtfSc6ICAgICAgICAgICAgcGFkKGpldHp0LmdldERhdGUoKSkgKyAn -LicgKyBwYWQoamV0enQuZ2V0TW9udGgoKSArIDEpICsgJy4nICsgamV0enQuZ2V0RnVsbFllYXIo -KSwKICAgICAgICAgICAgJ3t1aHJ6ZWl0fSc6ICAgICAgICAgIHBhZChqZXR6dC5nZXRIb3Vycygp -KSArICc6JyArIHBhZChqZXR6dC5nZXRNaW51dGVzKCkpLAogICAgICAgICAgICAne2F1ZmxvZXN1 -bmd9JzogICAgICAgKHdpbmRvdy5pbm5lcldpZHRoIHx8ICc/JykgKyAneCcgKyAod2luZG93Lmlu -bmVySGVpZ2h0IHx8ICc/JyksCiAgICAgICAgICAgICd7YXBwX2phaHJ9JzogICAgICAgICBTdHJp -bmcoKFouYWRtaW4gJiYgWi5hZG1pbi5qYWhyKSA/IFouYWRtaW4uamFociA6IG5ldyBEYXRlKCku -Z2V0RnVsbFllYXIoKSksCiAgICAgICAgICAgICd7YnJvd3Nlcn0nOiAgICAgICAgICAobmF2aWdh -dG9yICYmIG5hdmlnYXRvci51c2VyQWdlbnQpID8gbmF2aWdhdG9yLnVzZXJBZ2VudC5zdWJzdHJp -bmcoMCwgMTIwKSA6ICc/JwogICAgICAgIH07CiAgICAgICAgdmFyIG91dCA9IHRlbXBsYXRlOwog -ICAgICAgIE9iamVjdC5rZXlzKGN0eCkuZm9yRWFjaChmdW5jdGlvbihrKSB7IG91dCA9IG91dC5z -cGxpdChrKS5qb2luKGN0eFtrXSk7IH0pOwogICAgICAgIHJldHVybiBvdXQ7CiAgICB9CiAgICBm -dW5jdGlvbiBzdXBwb3J0TWFpbEJvZHlCYXVlbigpIHsKICAgICAgICB2YXIgdGVtcGxhdGUgPSAo -Wi5hZG1pbiAmJiBaLmFkbWluLnN1cHBvcnRNYWlsVGV4dCAmJiBTdHJpbmcoWi5hZG1pbi5zdXBw -b3J0TWFpbFRleHQpLnRyaW0oKSkKICAgICAgICAgICAgPyBaLmFkbWluLnN1cHBvcnRNYWlsVGV4 -dAogICAgICAgICAgICA6IFNVUFBPUlRfTUFJTF9ERUZBVUxUOwogICAgICAgIHJldHVybiBfbWFp -bFBsYXR6aGFsdGVyRXJzZXR6ZW4odGVtcGxhdGUpOwogICAgfQogICAgZnVuY3Rpb24gYnVnUmVw -b3J0TWFpbEJvZHlCYXVlbigpIHsKICAgICAgICB2YXIgdGVtcGxhdGUgPSAoWi5hZG1pbiAmJiBa -LmFkbWluLmJ1Z1JlcG9ydE1haWxUZXh0ICYmIFN0cmluZyhaLmFkbWluLmJ1Z1JlcG9ydE1haWxU -ZXh0KS50cmltKCkpCiAgICAgICAgICAgID8gWi5hZG1pbi5idWdSZXBvcnRNYWlsVGV4dAogICAg -ICAgICAgICA6IEJVR1JFUE9SVF9NQUlMX0RFRkFVTFQ7CiAgICAgICAgcmV0dXJuIF9tYWlsUGxh -dHpoYWx0ZXJFcnNldHplbih0ZW1wbGF0ZSk7CiAgICB9CgogICAgLy8gQnVnLVJlcG9ydC1Nb2Rh -bCBoaW50ZXIgZGVtIEhlYWRlci1CdXR0b24g4oCeQnVnUmVwb3J0Ii4gU3BpZWdlbHQgZGllCiAg -ICAvLyBTdXBwb3J0LUFuZnJhZ2UgKEltcHJlc3N1bS1Nb2RhbCksIGFiZXIgenVnZXNwaXR6dCBh -dWYgQlVHUy9Qcm9ibGVtZToKICAgIC8vIGVpbiB2b3JzdHJ1a3R1cmllcnRlcyBtYWlsdG86IGFu -IFBISyBSb2VzZ2VuLgogICAgZnVuY3Rpb24gYnVnUmVwb3J0TW9kYWxPZWZmbmVuKCkgewogICAg -ICAgIHZhciBtYWlsdG8gPSAnbWFpbHRvOnBoaWxpcHAucm9lc2dlbkBwb2xpemVpLm5ydy5kZScK -ICAgICAgICAgICAgKyAnP3N1YmplY3Q9JyArIGVuY29kZVVSSUNvbXBvbmVudCgnVkkzIERHTCBQ -bGFudW5nIC0gQlVHIC8gUHJvYmxlbSAoRG9ydG11bmQpJykKICAgICAgICAgICAgKyAnJmJvZHk9 -JyArIGVuY29kZVVSSUNvbXBvbmVudChidWdSZXBvcnRNYWlsQm9keUJhdWVuKCkpOwogICAgICAg -IHZhciBrb2VycGVyID0KICAgICAgICAgICAgJzxkaXYgY2xhc3M9ImJ1Z3JlcG9ydC1ib3giPicg -KwogICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9ImJ1Z3JlcG9ydC1ib3gtdGl0ZWwiPkJ1ZyBv -ZGVyIFByb2JsZW0gbWVsZGVuPC9kaXY+JyArCiAgICAgICAgICAgICAgICAnPHAgY2xhc3M9ImJ1 -Z3JlcG9ydC1ib3gtdGV4dCI+RXR3YXMgZnVua3Rpb25pZXJ0IG5pY2h0IHdpZSBlcndhcnRldD8g -TWl0IGRlbSBCdXR0b24gdW50ZW4gw7ZmZm5ldCBzaWNoIGVpbmUgPHN0cm9uZz52b3JzdHJ1a3R1 -cmllcnRlIEUtTWFpbDwvc3Ryb25nPiBhbiBQSEsgUm9lc2dlbiAoTlcwNTM2MDkpLiBCaXR0ZSBh -bGxlIEFic2Nobml0dGUgYXVzZsO8bGxlbiDigJQgYmVzb25kZXJzIGRpZSA8c3Ryb25nPlNjaHJp -dHRlIHp1bSBSZXByb2R1emllcmVuPC9zdHJvbmc+IHVuZCBtaW5kZXN0ZW5zIDxzdHJvbmc+ZWlu -ZW4gU2NyZWVuc2hvdDwvc3Ryb25nPiBkZXIgRmVobGVyc3RlbGxlLiBEaWUgdGVjaG5pc2NoZW4g -SW5mb3MgYW0gRW5kZSBiaXR0ZSB1bnZlcsOkbmRlcnQgbGFzc2VuLCBzaWUgaGVsZmVuIGJlaSBk -ZXIgRWluZ3Jlbnp1bmcuPC9wPicgKwogICAgICAgICAgICAgICAgJzxhIGNsYXNzPSJidG4gYnVn -cmVwb3J0LW1haWwtYnRuIiBocmVmPSInICsgZXNjYXBlQXR0cihtYWlsdG8pICsgJyI+JyArCiAg -ICAgICAgICAgICAgICAgICAgJ0J1ZyBwZXIgRS1NYWlsIG1lbGRlbiAoT3V0bG9vayDDtmZmbmVu -KScgKwogICAgICAgICAgICAgICAgJzwvYT4nICsKICAgICAgICAgICAgJzwvZGl2Pic7CiAgICAg -ICAgdmFyIGZ1c3MgPSAnPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRuLXNlayIg -aWQ9ImJ1Z3JlcG9ydC1zY2hsaWVzc2VuLWJ0biI+U2NobGllw59lbjwvYnV0dG9uPic7CiAgICAg -ICAgbW9kYWxaZWlnZW4oJ0J1ZyAvIFByb2JsZW0gbWVsZGVuJywga29lcnBlciwgZnVzcywgbnVs -bCwgbnVsbCwgeyByZWluZXJEaWFsb2c6IHRydWUgfSk7CiAgICAgICAgdmFyIHNiID0gZG9jdW1l -bnQuZ2V0RWxlbWVudEJ5SWQoJ2J1Z3JlcG9ydC1zY2hsaWVzc2VuLWJ0bicpOwogICAgICAgIGlm -IChzYikgc2IuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpIHsgbW9kYWxTY2hs -aWVzc2VuKHRydWUpOyB9KTsKICAgIH0KCiAgICAvLyBJbXByZXNzdW1zLU1vZGFsIG1pdCBOb3Rm -YWxsLUJveCArIHZvcmF1c2dlZnVlbGx0ZW0gbWFpbHRvOi1CdXR0b24uCiAgICAvLyBJbmhhbHQ6 -IGFkbWluLmpzb24uaW1wcmVzc3VtIChmYWxscyBsZWVyLCBJTVBSRVNTVU1fREVGQVVMVCBhdXMg -YWRtaW4uanMpLgogICAgZnVuY3Rpb24gaW1wcmVzc3VtTW9kYWxPZWZmbmVuKCkgewogICAgICAg -IHZhciBpbmhhbHQgPSAoWi5hZG1pbiAmJiBaLmFkbWluLmltcHJlc3N1bSAmJiBTdHJpbmcoWi5h -ZG1pbi5pbXByZXNzdW0pLnRyaW0oKSkKICAgICAgICAgICAgPyBzYW5pdGl6ZVJpY2hIdG1sKFou -YWRtaW4uaW1wcmVzc3VtKQogICAgICAgICAgICA6IHNhbml0aXplUmljaEh0bWwoSU1QUkVTU1VN -X0RFRkFVTFQpOwogICAgICAgIHZhciBtYWlsdG8gPSAnbWFpbHRvOnBoaWxpcHAucm9lc2dlbkBw -b2xpemVpLm5ydy5kZScKICAgICAgICAgICAgKyAnP3N1YmplY3Q9JyArIGVuY29kZVVSSUNvbXBv -bmVudCgnVkkzIERHTCBQbGFudW5nIC0gRG9ydG11bmQnKQogICAgICAgICAgICArICcmYm9keT0n -ICsgZW5jb2RlVVJJQ29tcG9uZW50KHN1cHBvcnRNYWlsQm9keUJhdWVuKCkpOwoKICAgICAgICB2 -YXIgbm90ZmFsbEJveCA9CiAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJpbXByZXNzdW0tbm90ZmFs -bCI+JyArCiAgICAgICAgICAgICAgICAnPGRpdiBjbGFzcz0iaW1wcmVzc3VtLW5vdGZhbGwtdGl0 -ZWwiPk5vdGZhbGwtUsO8Y2tmYWxsZWJlbmU8L2Rpdj4nICsKICAgICAgICAgICAgICAgICc8cCBj -bGFzcz0iaW1wcmVzc3VtLW5vdGZhbGwtdGV4dCI+RGllIE5XLUtlbm51bmcgPGNvZGU+TlcwNTM2 -MDk8L2NvZGU+ICg8c3Ryb25nPlBISyBSb2VzZ2VuPC9zdHJvbmc+KSBpc3QgaW0gU2VydmVyIGhh -cnQgYWxzIFN1cGVyVXNlciBoaW50ZXJsZWd0IHVuZCBnaWx0IGF1Y2ggZGFubiwgd2VubiBkaWUg -U3VwZXJVc2VyLUxpc3RlIGxlZXIgb2RlciB1bmxlc2JhciBpc3QuIEJlaSBQcm9ibGVtZW4gbWl0 -IFJlY2h0ZW4sIEJ1Z3Mgb2RlciBGcmFnZW4genVyIEFud2VuZHVuZyBzdGVodCBQSEsgUm9lc2dl -biBhbHMgQW5zcHJlY2hwYXJ0bmVyIHVuZCBSw7xja2ZhbGxlYmVuZSBiZXJlaXQuPC9wPicgKwog -ICAgICAgICAgICAgICAgJzxhIGNsYXNzPSJidG4gYnRuLXByaW1hZXIgaW1wcmVzc3VtLW1haWwt -YnRuIiBocmVmPSInICsgZXNjYXBlQXR0cihtYWlsdG8pICsgJyI+JyArCiAgICAgICAgICAgICAg -ICAgICAgJ1N1cHBvcnQtQW5mcmFnZSBwZXIgRS1NYWlsIChPdXRsb29rIMO2ZmZuZW4pJyArCiAg -ICAgICAgICAgICAgICAnPC9hPicgKwogICAgICAgICAgICAnPC9kaXY+JzsKCiAgICAgICAgdmFy -IGtvZXJwZXIgPSAnPGRpdiBjbGFzcz0iaW1wcmVzc3VtLWluaGFsdCIgc3R5bGU9ImxpbmUtaGVp -Z2h0OjEuNiI+JyArIGluaGFsdCArICc8L2Rpdj4nICsgbm90ZmFsbEJveDsKICAgICAgICB2YXIg -ZnVzcyA9ICc8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tcHJpbWFlciIgaWQ9 -ImltcHJlc3N1bS1zY2hsaWVzc2VuLWJ0biI+U2NobGllw59lbjwvYnV0dG9uPic7CiAgICAgICAg -bW9kYWxaZWlnZW4oJ0ltcHJlc3N1bScsIGtvZXJwZXIsIGZ1c3MsIG51bGwsIG51bGwsIHsgcmVp -bmVyRGlhbG9nOiB0cnVlIH0pOwogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbXBy -ZXNzdW0tc2NobGllc3Nlbi1idG4nKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9u -KCkgewogICAgICAgICAgICBtb2RhbFNjaGxpZXNzZW4odHJ1ZSk7CiAgICAgICAgfSk7CiAgICB9 -CgogICAgLy8gPT09PT0gTG9nYnVjaCA9PT09PSAtPiBqcy9sb2didWNoLmpzCiAgICAvLyA9PT09 -PSBFeGNlbC1JbXBvcnRlciA9PT09PSAtPiBqcy9pbXBvcnQvZXhjZWwtaW1wb3J0LmpzCiAgICAv -LyA9PT09PSBFdmVudC1MaXN0ZW5lciA9PT09PQogICAgLy8gVG9wLUxldmVsLVdyYXBwZXIuIERp -ZSBkcmVpIFN1Yi1GdW5rdGlvbmVuIHNpbmQgaW0gQm9vdHN0cmFwLVNjb3BlCiAgICAvLyBkZWZp -bmllcnQgdW5kIGdyZWlmZW4gdmlhIENsb3N1cmUgYXVmIGFsbGVzIGluIGRlciBJSUZFIHp1LgoK -ICAgIGZ1bmN0aW9uIGV2ZW50TGlzdGVuZXJFaW5yaWNodGVuKCkgewogICAgICAgIGdyaWRMaXN0 -ZW5lckVpbnJpY2h0ZW4oKTsKICAgICAgICBhZG1pbkxpc3RlbmVyRWlucmljaHRlbigpOwogICAg -ICAgIHJlc3RMaXN0ZW5lckVpbnJpY2h0ZW4oKTsKICAgIH0KCiAgICBmdW5jdGlvbiBncmlkTGlz -dGVuZXJFaW5yaWNodGVuKCkgewogICAgICAgIC8vIERpcnR5LVRyYWNraW5nOiBhbGxlIGJlYXJi -ZWl0YmFyZW4gQWRtaW4tU2VrdGlvbmVuIGFubWVsZGVuICsKICAgICAgICAvLyBEZWxlZ2F0ZWQt -TGlzdGVuZXIsIGRlciBJbnB1dHMvQ2hhbmdlcyBhbiBkZW4gcGFzc2VuZGVuIERpcnR5LUtleQog -ICAgICAgIC8vIHJvdXRldC4gU2llaGUgZGlydHlSZWdpc3RyaWVyZS9kaXJ0eVBydWVmZW4gb2Jl -bi4KICAgICAgICBkaXJ0eVRyYWNrZXJFaW5yaWNodGVuKCk7CgogICAgICAgIC8vIE5hdmlnYXRp -b24KICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcubmF2LWJ0bicpLmZvckVhY2go -ZnVuY3Rpb24oYnRuKSB7CiAgICAgICAgICAgIGJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycs -IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgLy8gVm9yIEhlYWRlci1UYWItV2VjaHNlbDog -Q2hlY2stTW9kYWwgYmVpIHVuZ2VzcGVpY2hlcnRlbiBBZW5kZXJ1bmdlbgogICAgICAgICAgICAg -ICAgZGlydHlQcnVlZmVuKGZ1bmN0aW9uKCkgeyBhbnNpY2h0V2VjaHNlbG4oYnRuLmdldEF0dHJp -YnV0ZSgnZGF0YS1hbnNpY2h0JykpOyB9KTsKICAgICAgICAgICAgfSk7CiAgICAgICAgfSk7CiAg -ICAgICAgYmVzZXR6dW5nc2tvbnRyb2xsZUV2ZW50c0F1ZmhhZW5nZW4oKTsKCiAgICAgICAgLy8g -QWRtaW4tVGFicyAoU2lkZWJhcikKICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcu -YWRtaW4tbmF2LWJ0bicpLmZvckVhY2goZnVuY3Rpb24oYnRuKSB7CiAgICAgICAgICAgIGJ0bi5h -ZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgZGly -dHlQcnVlZmVuKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5 -U2VsZWN0b3JBbGwoJy5hZG1pbi1uYXYtYnRuJykuZm9yRWFjaChmdW5jdGlvbihiKSB7IGIuY2xh -c3NMaXN0LnJlbW92ZSgnYWt0aXYnKTsgfSk7CiAgICAgICAgICAgICAgICAgICAgYnRuLmNsYXNz -TGlzdC5hZGQoJ2FrdGl2Jyk7CiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxl -Y3RvckFsbCgnLmFkbWluLXRhYicpLmZvckVhY2goZnVuY3Rpb24odCkgeyB0LmNsYXNzTGlzdC5h -ZGQoJ3ZlcnN0ZWNrdCcpOyB9KTsKICAgICAgICAgICAgICAgICAgICB2YXIgbmFtZSA9IGJ0bi5n -ZXRBdHRyaWJ1dGUoJ2RhdGEtYWRtaW4tdGFiJyk7CiAgICAgICAgICAgICAgICAgICAgdmFyIHRh -YiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZG1pbi10YWItJyArIG5hbWUpOwogICAgICAg -ICAgICAgICAgICAgIGlmICh0YWIpIHRhYi5jbGFzc0xpc3QucmVtb3ZlKCd2ZXJzdGVja3QnKTsK -ICAgICAgICAgICAgICAgICAgICAvLyBIaW53ZWlzZS1Qcm90b2tvbGwgbGF6eSBsYWRlbiwgc29i -YWxkIGRlciBTdWItVGFiIGFrdGl2IHdpcmQuCiAgICAgICAgICAgICAgICAgICAgaWYgKG5hbWUg -PT09ICdoaW53ZWlzZS1wcm90b2tvbGwnKSBoaW53ZWlzZVByb3Rva29sbFJlbmRlcm4oKTsKICAg -ICAgICAgICAgICAgICAgICAvLyBFcnNjaGVpbnVuZ3NiaWxkOiBkZWZlbnNpdmVyIHJlLXJlbmRl -ciBiZWltIEtsaWNrIGF1ZiBkZW4KICAgICAgICAgICAgICAgICAgICAvLyBTdWItVGFiLCBkYW1p -dCBkZXIgRWRpdG9yIGF1Y2ggZGFubiBlcnNjaGVpbnQsIHdlbm4KICAgICAgICAgICAgICAgICAg -ICAvLyBhZG1pblJlbmRlcm4oKSB2b3IgZGVtIGVyc3RlbiBUYWItU3dpdGNoIG5vY2ggbmljaHQg -bGllZi4KICAgICAgICAgICAgICAgICAgICBpZiAobmFtZSA9PT0gJ2Vyc2NoZWludW5nc2JpbGQn -KSBlcnNjaGVpbnVuZ3NiaWxkUmVuZGVybigpOwogICAgICAgICAgICAgICAgICAgIC8vIFN0YXRp -c3Rpay1MYXlvdXQ6IHJlLXJlbmRlcm4gYmVpbSBUYWItV2VjaHNlbCwgZGFtaXQgZnJpc2NoCiAg -ICAgICAgICAgICAgICAgICAgLy8gZ2ViYXV0ZSBCYXVrYXN0ZW4tS2FjaGVsbiBzb2ZvcnQgaW0g -UmFzdGVyIGVyc2NoZWluZW4uCiAgICAgICAgICAgICAgICAgICAgaWYgKG5hbWUgPT09ICdzdGF0 -aXN0aWstbGF5b3V0Jykgc3RhdGlzdGlrTGF5b3V0UmVuZGVybigpOwogICAgICAgICAgICAgICAg -ICAgIC8vIFN0YXRpc3Rpay1CdWlsZGVyOiBsYXp5IHJlbmRlcm4gKEVuZ2luZSBiYXV0IEZha3Rl -bnRhYmVsbGUpLgogICAgICAgICAgICAgICAgICAgIGlmIChuYW1lID09PSAnc3RhdGlzdGlrLWJ1 -aWxkZXInKSBzdGF0aXN0aWtCdWlsZGVyUmVuZGVybigpOwogICAgICAgICAgICAgICAgICAgIC8v -IEV4Y2VsLUV4cG9ydDogbGF6eSByZW5kZXJuLCB3ZW5uIGRlciBUYWIgYWt0aXYgd2lyZC4KICAg -ICAgICAgICAgICAgICAgICBpZiAobmFtZSA9PT0gJ2V4cG9ydCcpIGV4cG9ydFJlbmRlcm4oKTsK -ICAgICAgICAgICAgICAgICAgICAvLyBTdGFuZGFyZHJlY2h0ZSAoVXNlcik6IGxhenkgcmVuZGVy -bi4KICAgICAgICAgICAgICAgICAgICBpZiAobmFtZSA9PT0gJ3N0YW5kYXJkcmVjaHRlJykgc3Rh -bmRhcmRyZWNodGVSZW5kZXJuKCk7CiAgICAgICAgICAgICAgICAgICAgLy8gRHJhZnQtUmVzdG9y -ZS1CYW5uZXIgYW5iaWV0ZW4sIGZhbGxzIGZ1ZXIgZGllc2VuIFRhYiBlaW4KICAgICAgICAgICAg -ICAgICAgICAvLyBBdXRvLVNhdmUtRHJhZnQgaW0gbG9jYWxTdG9yYWdlIGxpZWd0IChQaGFzZSA5 -KS4KICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGFkbWluRHJhZnRCYW5uZXJBbmJpZXRl -biA9PT0gJ2Z1bmN0aW9uJykgYWRtaW5EcmFmdEJhbm5lckFuYmlldGVuKG5hbWUpOwogICAgICAg -ICAgICAgICAgfSk7CiAgICAgICAgICAgIH0pOwogICAgICAgIH0pOwogICAgICAgIGFkbWluU3Vi -dGFiRmlsdGVyQW53ZW5kZW4oKTsKCiAgICAgICAgLy8gQWRtaW4tU3ViLU5hdmlnYXRpb24gKGlu -bmVyaGFsYiBlaW5lcyBUb3AtVGFicykuCiAgICAgICAgLy8gS2xpY2sgYXVmIGVpbmVuIC5hZG1p -bi1zdWJuYXYtYnRuIHNjaGFsdGV0IGltIHVtc2NobGllc3NlbmRlbiAuYWRtaW4tdGFiCiAgICAg -ICAgLy8gendpc2NoZW4gU3ViLVNla3Rpb25lbiB1bSwgZGllIHBlciBkYXRhLXN1YnRhYj0iLi4u -IiBtYXJraWVydCBzaW5kLgogICAgICAgIC8vIEJzcDogIkZlaWVydGFnZSAmIEZlcmllbiIgLT4g -U3ViLVRhYnMgIkZlaWVydGFnZSIgLyAiU2NodWxmZXJpZW4iLgogICAgICAgIGRvY3VtZW50LnF1 -ZXJ5U2VsZWN0b3JBbGwoJy5hZG1pbi1zdWJuYXYnKS5mb3JFYWNoKGZ1bmN0aW9uKG5hdikgewog -ICAgICAgICAgICBuYXYuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbihldikgewog -ICAgICAgICAgICAgICAgdmFyIGJ0biA9IGV2LnRhcmdldC5jbG9zZXN0KCcuYWRtaW4tc3VibmF2 -LWJ0bicpOwogICAgICAgICAgICAgICAgaWYgKCFidG4gfHwgIW5hdi5jb250YWlucyhidG4pKSBy -ZXR1cm47CiAgICAgICAgICAgICAgICB2YXIgemllbCA9IGJ0bi5nZXRBdHRyaWJ1dGUoJ2RhdGEt -c3VidGFiJyk7CiAgICAgICAgICAgICAgICBpZiAoIXppZWwpIHJldHVybjsKICAgICAgICAgICAg -ICAgIHZhciB0YWIgPSBuYXYuY2xvc2VzdCgnLmFkbWluLXRhYicpIHx8IG5hdi5wYXJlbnRFbGVt -ZW50OwogICAgICAgICAgICAgICAgaWYgKCF0YWIpIHJldHVybjsKICAgICAgICAgICAgICAgIG5h -di5xdWVyeVNlbGVjdG9yQWxsKCcuYWRtaW4tc3VibmF2LWJ0bicpLmZvckVhY2goZnVuY3Rpb24o -YikgewogICAgICAgICAgICAgICAgICAgIGIuY2xhc3NMaXN0LnRvZ2dsZSgnYWt0aXYnLCBiID09 -PSBidG4pOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICB0YWIucXVlcnlTZWxl -Y3RvckFsbCgnW2RhdGEtc3VidGFiLXNla3Rpb25dJykuZm9yRWFjaChmdW5jdGlvbihzZWspIHsK -ICAgICAgICAgICAgICAgICAgICB2YXIgaXN0ID0gc2VrLmdldEF0dHJpYnV0ZSgnZGF0YS1zdWJ0 -YWItc2VrdGlvbicpID09PSB6aWVsOwogICAgICAgICAgICAgICAgICAgIHNlay5jbGFzc0xpc3Qu -dG9nZ2xlKCd2ZXJzdGVja3QnLCAhaXN0KTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAg -ICB9KTsKICAgICAgICB9KTsKCiAgICAgICAgLy8gSGlud2Vpc2UtUHJvdG9rb2xsOiBGaWx0ZXIg -KyBBa3R1YWxpc2llcmVuLUJ1dHRvbgogICAgICAgIChmdW5jdGlvbigpIHsKICAgICAgICAgICAg -dmFyIGJ0biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdocC1ha3R1YWxpc2llcmVuJyk7CiAg -ICAgICAgICAgIGlmIChidG4pIGJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGhpbndlaXNl -UHJvdG9rb2xsUmVuZGVybik7CiAgICAgICAgICAgIFsnaHAtZmlsdGVyLXR5cCcsICdocC1maWx0 -ZXItdm9uJywgJ2hwLWZpbHRlci1iaXMnXS5mb3JFYWNoKGZ1bmN0aW9uKGlkKSB7CiAgICAgICAg -ICAgICAgICB2YXIgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7CiAgICAgICAgICAg -ICAgICBpZiAoZWwpIGVsLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIGhpbndlaXNlUHJvdG9r -b2xsUmVuZGVybik7CiAgICAgICAgICAgIH0pOwogICAgICAgIH0pKCk7CgogICAgICAgIC8vIEdy -aWQtSW50ZXJha3Rpb246CiAgICAgICAgLy8gICBIb3ZlciB1ZWJlciBlaW5lIFplbGxlICAtPiBE -cmFnLUZ1ZWxsLUdyaWZmIGVyc2NoZWludCB1bnRlbiByZWNodHMKICAgICAgICAvLyAgIEVpbmZh -Y2gtS2xpY2sgICAgICAgICAgIC0+IFNjaGljaHQtRWRpdG9yIG9lZmZuZXQgc2ljaCBkaXJla3QK -ICAgICAgICAvLyBCZWltIFZlcmxhc3NlbiBkZXMgR3JpZHMgdmVyc2Nod2luZGV0IGRhcyBIYW5k -bGUgd2llZGVyLCBhdXNzZXIKICAgICAgICAvLyB3ZW5uIGRpZSBNYXVzIGF1ZiBkYXMgSGFuZGxl -IHdhbmRlcnQgb2RlciBnZXJhZGUgZWluIERyYWcgbGFldWZ0LgogICAgICAgIHZhciBncmlkRGF0 -ZW4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZ3JpZC1kYXRlbicpOwogICAgICAgIHZhciBo -b3ZlclplbGxlID0gbnVsbDsKICAgICAgICBncmlkRGF0ZW4uYWRkRXZlbnRMaXN0ZW5lcignbW91 -c2VvdmVyJywgZnVuY3Rpb24oZSkgewogICAgICAgICAgICBpZiAoZnVlbGxJc3RBa3RpdigpKSBy -ZXR1cm47IC8vIGxhdWZlbmRlciBEcmFnIC0gSGFuZGxlIG5pY2h0IHVtc2V0emVuCiAgICAgICAg -ICAgIHZhciB6ZWxsZSA9IGUudGFyZ2V0LmNsb3Nlc3QoJy5ncmlkLXplbGxlJyk7CiAgICAgICAg -ICAgIGlmICghemVsbGUgfHwgemVsbGUgPT09IGhvdmVyWmVsbGUpIHJldHVybjsKICAgICAgICAg -ICAgaG92ZXJaZWxsZSA9IHplbGxlOwogICAgICAgICAgICBmdWVsbEhhbmRsZUFuWmVsbGUoemVs -bGUpOwogICAgICAgICAgICAvLyBLb21tZW50YXItUG9wb3ZlcjogbnVyIGF1ZiBaZWxsZW4gbWl0 -IE1hcmtlci4gVmVyem9lZ2VydGVyCiAgICAgICAgICAgIC8vIFRyaWdnZXIgKGluIGRlciBGdW5r -dGlvbiBzZWxic3QpIHZlcmhpbmRlcnQgRmxhY2tlcm4gYmVpbQogICAgICAgICAgICAvLyBzY2hu -ZWxsZW4gVWViZXJ3aXNjaGVuIOKAlCBkaWUgUG9wb3Zlci1GdW5rdGlvbiBpc3Qgbm8tb3AgZnVl -cgogICAgICAgICAgICAvLyBaZWxsZW4gb2huZSBoYXQta29tbWVudGFyLgogICAgICAgICAgICBp -ZiAoemVsbGUuY2xhc3NMaXN0LmNvbnRhaW5zKCdoYXQta29tbWVudGFyJykpIHsKICAgICAgICAg -ICAgICAgIGtvbW1lbnRhclBvcG92ZXJaZWlnZW4oemVsbGUpOwogICAgICAgICAgICB9IGVsc2Ug -ewogICAgICAgICAgICAgICAga29tbWVudGFyUG9wb3ZlclZlcnN0ZWNrZW4oKTsKICAgICAgICAg -ICAgfQogICAgICAgIH0pOwogICAgICAgIGdyaWREYXRlbi5hZGRFdmVudExpc3RlbmVyKCdtb3Vz -ZWxlYXZlJywgZnVuY3Rpb24oZSkgewogICAgICAgICAgICBpZiAoZnVlbGxJc3RBa3RpdigpKSBy -ZXR1cm47CiAgICAgICAgICAgIHZhciBydCA9IGUucmVsYXRlZFRhcmdldDsKICAgICAgICAgICAg -aWYgKHJ0ICYmIHJ0LmlkID09PSAnZmlsbC1oYW5kbGUnKSByZXR1cm47CiAgICAgICAgICAgIC8v -IFdlbm4gZGVyIFBvaW50ZXIgYXVmIGRhcyBLb21tZW50YXItUG9wb3ZlciB3YW5kZXJ0LCBOSUNI -VAogICAgICAgICAgICAvLyBzY2hsaWVzc2VuIOKAlCBkZXIgUG9wb3Zlci1IYW5kbGVyIGhhZWx0 -IGVzIG9mZmVuLgogICAgICAgICAgICBpZiAocnQgJiYgcnQuY2xvc2VzdCAmJiBydC5jbG9zZXN0 -KCcjdmkzLWtvbW1lbnRhci1wb3BvdmVyJykpIHJldHVybjsKICAgICAgICAgICAgaG92ZXJaZWxs -ZSA9IG51bGw7CiAgICAgICAgICAgIGZ1ZWxsSGFuZGxlVmVyc3RlY2tlbigpOwogICAgICAgICAg -ICBrb21tZW50YXJQb3BvdmVyVmVyc3RlY2tlbigpOwogICAgICAgIH0pOwogICAgICAgIC8vIElu -dGVyYWt0aW9uIChVbWJhdSAyMDI2LTA2LTE1LCBVc2VyLVd1bnNjaCk6IExpbmtza2xpY2sgTUFS -S0lFUlQgZGllCiAgICAgICAgLy8gWmVsbGUgbnVyIChrZWluIExvY2ssIGtlaW4gRWRpdG9yKSDi -gJQgc28gZXJ6ZXVndCBiZWlsYWV1ZmlnZXMgS2xpY2tlbgogICAgICAgIC8vIGtlaW5lIEdlaXN0 -ZXItU3BlcnJlbiBtZWhyLiBXRUxDSEUgQWt0aW9uIGRlbiBTY2hpY2h0LUVkaXRvciBvZWZmbmV0 -LAogICAgICAgIC8vIGlzdCBpbSBBZG1pbi1CYWNrZW5kIGVpbnN0ZWxsYmFyIChhZG1pbi5lZGl0 -b3JUcmlnZ2VyKTogJ3JlY2h0cycKICAgICAgICAvLyAoRGVmYXVsdCksICdsaW5rcycsICdtaXR0 -ZScgKE1hdXNyYWQtS2xpY2spIG9kZXIgJ2RvcHBlbCcuCiAgICAgICAgZnVuY3Rpb24gemVsbGVN -YXJraWVyZW4oemVsbGUpIHsKICAgICAgICAgICAgdmFyIGFsdCA9IGdyaWREYXRlbi5xdWVyeVNl -bGVjdG9yKCcuZ3JpZC16ZWxsZS1tYXJraWVydCcpOwogICAgICAgICAgICBpZiAoYWx0ICYmIGFs -dCAhPT0gemVsbGUpIGFsdC5jbGFzc0xpc3QucmVtb3ZlKCdncmlkLXplbGxlLW1hcmtpZXJ0Jyk7 -CiAgICAgICAgICAgIGlmICh6ZWxsZSkgemVsbGUuY2xhc3NMaXN0LmFkZCgnZ3JpZC16ZWxsZS1t -YXJraWVydCcpOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBlZGl0b3JUcmlnZ2VyKCkgewog -ICAgICAgICAgICB2YXIgdCA9IChaLmFkbWluICYmIFouYWRtaW4uZWRpdG9yVHJpZ2dlcikgfHwg -J3JlY2h0cyc7CiAgICAgICAgICAgIHJldHVybiAodCA9PT0gJ2xpbmtzJyB8fCB0ID09PSAnbWl0 -dGUnIHx8IHQgPT09ICdkb3BwZWwnKSA/IHQgOiAncmVjaHRzJzsKICAgICAgICB9CiAgICAgICAg -ZnVuY3Rpb24gZWRpdG9yQW5aZWxsZU9lZmZuZW4oemVsbGUpIHsgemVsbGVNYXJraWVyZW4oemVs -bGUpOyBlZGl0b3JPZWZmbmVuKHplbGxlKTsgfQogICAgICAgIC8vIEVpbm1hbGlnZXIgRGlzY292 -ZXJ5LUhpbnQ6IGVya2xhZXJ0IGRpZSBha3R1ZWxsIGtvbmZpZ3VyaWVydGUgQmVsZWd1bmcKICAg -ICAgICAvLyBiZWltIGVyc3RlbiBMaW5rc2tsaWNrLCBkYW5hY2ggbmllIHdpZWRlciAobG9jYWxT -dG9yYWdlLUZsYWc7IFJlc2V0CiAgICAgICAgLy8gYmVpIFRyaWdnZXItV2VjaHNlbCB1ZWJlciBk -YXMgU3VmZml4IGltIEtleSkuCiAgICAgICAgdmFyIFRSSUdHRVJfTEFCRUwgPSB7IHJlY2h0czog -J1JlY2h0c2tsaWNrJywgbGlua3M6ICdMaW5rc2tsaWNrJywgbWl0dGU6ICdNYXVzcmFkLUtsaWNr -IChNaXR0ZSknLCBkb3BwZWw6ICdEb3BwZWxrbGljaycgfTsKICAgICAgICBmdW5jdGlvbiBlZGl0 -b3JUcmlnZ2VySGludEVpbm1hbGlnKCkgewogICAgICAgICAgICB2YXIgdCA9IGVkaXRvclRyaWdn -ZXIoKTsKICAgICAgICAgICAgaWYgKHQgPT09ICdsaW5rcycpIHJldHVybjsgLy8gTGlua3NrbGlj -ayBvZWZmbmV0IGphIGRpcmVrdCDigJQga2VpbiBIaW53ZWlzIG5vZXRpZwogICAgICAgICAgICB0 -cnkgewogICAgICAgICAgICAgICAgdmFyIGtleSA9ICd2aTMuZWRpdG9yVHJpZ2dlckhpbnQuJyAr -IHQ7CiAgICAgICAgICAgICAgICBpZiAobG9jYWxTdG9yYWdlLmdldEl0ZW0oa2V5KSA9PT0gJzEn -KSByZXR1cm47CiAgICAgICAgICAgICAgICB0b2FzdCgnTGlua3NrbGljayBtYXJraWVydCBkaWUg -WmVsbGUuIERlbiBTY2hpY2h0LUVkaXRvciDDtmZmbmVzdCBkdSBtaXQgJyArIChUUklHR0VSX0xB -QkVMW3RdIHx8ICdSZWNodHNrbGljaycpICsgJyBhdWYgZGllIFplbGxlLicsICdpbmZvJywgeyBk -YXVlcjogOTAwMCB9KTsKICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKGtleSwg -JzEnKTsKICAgICAgICAgICAgfSBjYXRjaCAoXykgeyAvKiBsb2NhbFN0b3JhZ2UgZ2dmLiBibG9j -a2llcnQgKi8gfQogICAgICAgIH0KICAgICAgICAvLyBMaW5rc2tsaWNrOiBtYXJraWVydCBpbW1l -ci4gSXN0IExpbmtza2xpY2sgZGVyIGtvbmZpZ3VyaWVydGUgVHJpZ2dlciwKICAgICAgICAvLyBv -ZWZmbmV0IGVyIHp1c2FldHpsaWNoIGRlbiBFZGl0b3IuCiAgICAgICAgZ3JpZERhdGVuLmFkZEV2 -ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oZSkgewogICAgICAgICAgICB2YXIgemVsbGUg -PSBlLnRhcmdldC5jbG9zZXN0KCcuZ3JpZC16ZWxsZScpOwogICAgICAgICAgICBpZiAoIXplbGxl -KSByZXR1cm47CiAgICAgICAgICAgIGlmIChlZGl0b3JUcmlnZ2VyKCkgPT09ICdsaW5rcycpIHsg -ZWRpdG9yQW5aZWxsZU9lZmZuZW4oemVsbGUpOyByZXR1cm47IH0KICAgICAgICAgICAgemVsbGVN -YXJraWVyZW4oemVsbGUpOwogICAgICAgICAgICBpZiAoZGFyZlplbGxlRWRpdGllcmVuKHplbGxl -LmdldEF0dHJpYnV0ZSgnZGF0YS1wZXJzb24nKSkpIGVkaXRvclRyaWdnZXJIaW50RWlubWFsaWco -KTsKICAgICAgICB9KTsKICAgICAgICAvLyBSZWNodHNrbGljazogb2VmZm5ldCBkZW4gRWRpdG9y -IHdlbm4ga29uZmlndXJpZXJ0IChuYXRpdmVzIEtvbnRleHRtZW51CiAgICAgICAgLy8gZGFubiB1 -bnRlcmRydWVja2VuKTsgc29uc3QgYmxlaWJ0IGRhcyBuYXRpdmUgQnJvd3Nlci1NZW51IGVyaGFs -dGVuLgogICAgICAgIGdyaWREYXRlbi5hZGRFdmVudExpc3RlbmVyKCdjb250ZXh0bWVudScsIGZ1 -bmN0aW9uKGUpIHsKICAgICAgICAgICAgdmFyIHplbGxlID0gZS50YXJnZXQuY2xvc2VzdCgnLmdy -aWQtemVsbGUnKTsKICAgICAgICAgICAgaWYgKCF6ZWxsZSB8fCBlZGl0b3JUcmlnZ2VyKCkgIT09 -ICdyZWNodHMnKSByZXR1cm47CiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAg -ICAgICAgZWRpdG9yQW5aZWxsZU9lZmZuZW4oemVsbGUpOwogICAgICAgIH0pOwogICAgICAgIC8v -IE1hdXNyYWQtL01pdHRlbGtsaWNrLiBtb3VzZWRvd24gdmVyaGluZGVydCBkZW4gQXV0b3Njcm9s -bC1DdXJzb3IsCiAgICAgICAgLy8gYXV4Y2xpY2sgKGJ1dHRvbiAxID0gTWl0dGUpIG9lZmZuZXQg -ZGFubiBkZW4gRWRpdG9yLgogICAgICAgIGdyaWREYXRlbi5hZGRFdmVudExpc3RlbmVyKCdtb3Vz -ZWRvd24nLCBmdW5jdGlvbihlKSB7CiAgICAgICAgICAgIGlmIChlLmJ1dHRvbiA9PT0gMSAmJiBl -ZGl0b3JUcmlnZ2VyKCkgPT09ICdtaXR0ZScgJiYgZS50YXJnZXQuY2xvc2VzdCgnLmdyaWQtemVs -bGUnKSkgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgIH0pOwogICAgICAgIGdyaWREYXRlbi5h -ZGRFdmVudExpc3RlbmVyKCdhdXhjbGljaycsIGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgaWYg -KGUuYnV0dG9uICE9PSAxIHx8IGVkaXRvclRyaWdnZXIoKSAhPT0gJ21pdHRlJykgcmV0dXJuOwog -ICAgICAgICAgICB2YXIgemVsbGUgPSBlLnRhcmdldC5jbG9zZXN0KCcuZ3JpZC16ZWxsZScpOwog -ICAgICAgICAgICBpZiAoIXplbGxlKSByZXR1cm47CiAgICAgICAgICAgIGUucHJldmVudERlZmF1 -bHQoKTsKICAgICAgICAgICAgZWRpdG9yQW5aZWxsZU9lZmZuZW4oemVsbGUpOwogICAgICAgIH0p -OwogICAgICAgIC8vIERvcHBlbGtsaWNrLgogICAgICAgIGdyaWREYXRlbi5hZGRFdmVudExpc3Rl -bmVyKCdkYmxjbGljaycsIGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgaWYgKGVkaXRvclRyaWdn -ZXIoKSAhPT0gJ2RvcHBlbCcpIHJldHVybjsKICAgICAgICAgICAgdmFyIHplbGxlID0gZS50YXJn -ZXQuY2xvc2VzdCgnLmdyaWQtemVsbGUnKTsKICAgICAgICAgICAgaWYgKHplbGxlKSBlZGl0b3JB -blplbGxlT2VmZm5lbih6ZWxsZSk7CiAgICAgICAgfSk7CgogICAgICAgIC8vIEtvbWJpbmllcnRl -IEFubGFzcy1aZWlsZSAoTWFpIDIwMjYpOiBGZWllcnRhZyArIFNvbmRlcnRlcm1pbiArCiAgICAg -ICAgLy8gR2VidXJ0c3RhZyBpbiBlaW5lciBaZWlsZS4gQ2xpY2stUm91dGluZyBuYWNoIGdldHJv -ZmZlbmVtIEVsZW1lbnQ6CiAgICAgICAgLy8gLSBTb25kZXJ0ZXJtaW4tSWNvbiAtPiBiZXN0ZWhl -bmRlcyBTb25kZXItTW9kYWwvRWRpdCAoamUgbmFjaCBSb2xsZSkKICAgICAgICAvLyAtIEZlaWVy -dGFnLVplbGxlICAgIC0+IEZlaWVydGFnLURldGFpbC1Nb2RhbCAoQmVzY2hyZWlidW5nICsgTGlu -aykKICAgICAgICAvLyAtIGxlZXJlIFplbGxlICsgU1UgIC0+IG5ldWVyIFNvbmRlcnRlcm1pbgog -ICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkYXR1bS16ZWlsZS1hbmxhc3MnKS5hZGRF -dmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgdmFyIHNvbmRl -ckljb24gPSBlLnRhcmdldC5jbG9zZXN0KCcua2QtZXZlbnQtc29uZGVyJyk7CiAgICAgICAgICAg -IGlmIChzb25kZXJJY29uKSB7CiAgICAgICAgICAgICAgICB2YXIgc29uZGVyRGF0dW0gPSBzb25k -ZXJJY29uLmdldEF0dHJpYnV0ZSgnZGF0YS1zb25kZXItZGF0dW0nKTsKICAgICAgICAgICAgICAg -IHZhciBzb25kZXIgPSBzb25kZXJEYXR1bSA/IHNvbmRlckZ1ZXJEYXR1bShzb25kZXJEYXR1bSkg -OiBudWxsOwogICAgICAgICAgICAgICAgaWYgKFoucmVjaHRlLmlzdFN1cGVyVXNlcikgewogICAg -ICAgICAgICAgICAgICAgIHNvbmRlckVkaXRNb2RhbFplaWdlbihzb25kZXIgPyBzb25kZXIuZGF0 -dW0gOiBudWxsKTsKICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoc29uZGVyKSB7CiAgICAgICAg -ICAgICAgICAgICAgc29uZGVyQW5zaWNodE1vZGFsWmVpZ2VuKHNvbmRlcik7CiAgICAgICAgICAg -ICAgICB9CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgICAg -dmFyIGZ0WmVsbGUgPSBlLnRhcmdldC5jbG9zZXN0KCcua2QtYW5sYXNzLWZlaWVydGFnJyk7CiAg -ICAgICAgICAgIGlmIChmdFplbGxlKSB7CiAgICAgICAgICAgICAgICB2YXIgZGF0dW0gPSBmdFpl -bGxlLmdldEF0dHJpYnV0ZSgnZGF0YS1kYXR1bScpOwogICAgICAgICAgICAgICAgdmFyIGluZm8g -PSAoWi50YWdJbmZvcyB8fCB7fSlbZGF0dW1dIHx8IHt9OwogICAgICAgICAgICAgICAgaWYgKGlu -Zm8udHlwID09PSAnZmVpZXJ0YWcnKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIG5hbWUgPSBp -bmZvLm5hbWUgfHwgJ0ZlaWVydGFnJzsKICAgICAgICAgICAgICAgICAgICB2YXIga3VyeiA9IGlu -Zm8ua3VyemJlc2NocmVpYnVuZyB8fCAnJzsKICAgICAgICAgICAgICAgICAgICB2YXIgdXJsID0g -aW5mby5pbmZvVXJsIHx8ICcnOwogICAgICAgICAgICAgICAgICAgIHZhciBrb2VycGVyID0gJzxk -aXYgc3R5bGU9ImZvbnQtc2l6ZToxNHB4O2xpbmUtaGVpZ2h0OjEuNTUiPicgKwogICAgICAgICAg -ICAgICAgICAgICAgICAoa3VyeiA/IGVzY2FwZUhUTUwoa3VyeikgOiAnPGVtIHN0eWxlPSJjb2xv -cjp2YXIoLS10ZXh0LW11dGVkKSI+S2VpbmUgQmVzY2hyZWlidW5nIGhpbnRlcmxlZ3QuPC9lbT4n -KSArCiAgICAgICAgICAgICAgICAgICAgICAgICc8L2Rpdj4nOwogICAgICAgICAgICAgICAgICAg -IHZhciBmdXNzID0gJyc7CiAgICAgICAgICAgICAgICAgICAgaWYgKHVybCkgewogICAgICAgICAg -ICAgICAgICAgICAgICBmdXNzICs9ICc8YSBjbGFzcz0iYnRuIGJ0bi1zZWsgYnRuLWtsZWluIiBo -cmVmPSInICsgZXNjYXBlQXR0cih1cmwpICsgJyIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVu -ZXIgbm9yZWZlcnJlciI+TWVociBiZWkgV2lraXBlZGlhIOKGlzwvYT4nOwogICAgICAgICAgICAg -ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBmdXNzICs9ICc8YnV0dG9uIGNsYXNzPSJidG4g -YnRuLXByaW1hZXIgYnRuLWtsZWluIiBpZD0iZnQtbW9kYWwtc2NobGllc3NlbiI+U2NobGllw59l -bjwvYnV0dG9uPic7CiAgICAgICAgICAgICAgICAgICAgbW9kYWxaZWlnZW4obmFtZSwga29lcnBl -ciwgZnVzcyk7CiAgICAgICAgICAgICAgICAgICAgdmFyIHNjaGxpZXNzZW4gPSBkb2N1bWVudC5n -ZXRFbGVtZW50QnlJZCgnZnQtbW9kYWwtc2NobGllc3NlbicpOwogICAgICAgICAgICAgICAgICAg -IGlmIChzY2hsaWVzc2VuKSBzY2hsaWVzc2VuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVu -Y3Rpb24oKSB7IG1vZGFsU2NobGllc3NlbigpOyB9KTsKICAgICAgICAgICAgICAgICAgICByZXR1 -cm47CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8gS2xpY2sg -YXVmIGxlZXJlIFplbGxlIChrZWluIEZlaWVydGFnL1NvbmRlcnRlcm1pbik6IFN1cGVyVXNlcgog -ICAgICAgICAgICAvLyBrYW5uIGVpbmVuIG5ldWVuIFNvbmRlcnRlcm1pbiBmdWVyIGRpZXNlbiBU -YWcgYW5sZWdlbi4KICAgICAgICAgICAgaWYgKFoucmVjaHRlLmlzdFN1cGVyVXNlcikgewogICAg -ICAgICAgICAgICAgdmFyIGxlZXJaZWxsZSA9IGUudGFyZ2V0LmNsb3Nlc3QoJy5rZC16ZWxsZVtk -YXRhLWRhdHVtXScpOwogICAgICAgICAgICAgICAgaWYgKGxlZXJaZWxsZSkgc29uZGVyRWRpdE1v -ZGFsWmVpZ2VuKGxlZXJaZWxsZS5nZXRBdHRyaWJ1dGUoJ2RhdGEtZGF0dW0nKSk7CiAgICAgICAg -ICAgIH0KICAgICAgICB9KTsKCiAgICAgICAgLy8gRWRpdG9yCiAgICAgICAgZG9jdW1lbnQuZ2V0 -RWxlbWVudEJ5SWQoJ2VkaXRvci1hdXN3YWhsJykuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywg -ZnVuY3Rpb24oKSB7IGVkaXRvckF1c3dhaGwodGhpcy52YWx1ZSk7IH0pOwogICAgICAgIGRvY3Vt -ZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oZSkgewogICAgICAgICAgICBp -ZiAoIWVkaXRvckFrdGl2KCkpIHJldHVybjsKICAgICAgICAgICAgdmFyIGVsID0gZG9jdW1lbnQu -Z2V0RWxlbWVudEJ5SWQoJ3plbGwtZWRpdG9yJyk7CiAgICAgICAgICAgIC8vIEpFREVSIEtsaWNr -IGF1c3NlcmhhbGIgZGVzIEVkaXRvcnMgc2NobGllc3N0IGlobiAodW5kIGdpYnQgZGVuCiAgICAg -ICAgICAgIC8vIExvY2sgZnJlaSkg4oCUIGF1Y2ggYXVmIGVpbmUgYW5kZXJlIFplbGxlIG9kZXIg -aXJnZW5kd28gc29uc3QgaW0KICAgICAgICAgICAgLy8gQnJvd3Nlci4gKEZydWVoZXIgYmxpZWIg -ZGVyIEVkaXRvciBiZWkgS2xpY2sgYXVmIGVpbmUgR3JpZC1aZWxsZQogICAgICAgICAgICAvLyBv -ZmZlbiwgd2VpbCBkb3J0IGRlciBFZGl0b3IgZGlyZWt0IG5ldSBnZW9lZmZuZXQgd3VyZGU7IHNl -aXQgZGVyCiAgICAgICAgICAgIC8vIExpbmtza2xpY2sgbnVyIG5vY2ggbWFya2llcnQsIHNvbGwg -ZXIgaGllciBzY2hsaWVzc2VuLikKICAgICAgICAgICAgaWYgKCFlbC5jb250YWlucyhlLnRhcmdl -dCkpIGVkaXRvclNjaGxpZXNzZW4oKTsKICAgICAgICB9KTsKICAgICAgICAvLyBSZWNodHNrbGlj -ayBhdXNzZXJoYWxiIGRlciBQbGFudGFmZWwgc2NobGllc3N0IGVpbmVuIG9mZmVuZW4gRWRpdG9y -CiAgICAgICAgLy8gZWJlbmZhbGxzIChzb25zdCBibGllYmUgZXIgYmVpbSBLb250ZXh0bWVudSB3 -b2FuZGVycyBzdGVoZW4pLgogICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NvbnRl -eHRtZW51JywgZnVuY3Rpb24oZSkgewogICAgICAgICAgICBpZiAoIWVkaXRvckFrdGl2KCkpIHJl -dHVybjsKICAgICAgICAgICAgdmFyIGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3plbGwt -ZWRpdG9yJyk7CiAgICAgICAgICAgIHZhciBpbUdyaWQgPSBlLnRhcmdldC5jbG9zZXN0ICYmIGUu -dGFyZ2V0LmNsb3Nlc3QoJyNncmlkLWRhdGVuIC5ncmlkLXplbGxlJyk7CiAgICAgICAgICAgIGlm -ICghZWwuY29udGFpbnMoZS50YXJnZXQpICYmICFpbUdyaWQpIGVkaXRvclNjaGxpZXNzZW4oKTsK -ICAgICAgICB9KTsKICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywg -ZnVuY3Rpb24oZSkgewogICAgICAgICAgICAvLyBFU0Mgc2NobGllc3N0IGRlbiBaZWxsLUVkaXRv -ci4gTW9kYWwtRVNDIGlzdCBzZWl0IFNwcmludCA2YQogICAgICAgICAgICAvLyAoYTExeSwgMjAy -Ni0wNS0yOSkgaW0gTW9kYWwtQ29udGFpbmVyIHNlbGJzdCBhbmdlc2llZGVsdAogICAgICAgICAg -ICAvLyAoZm9rdXNUcmFwQWt0aXZpZXJlbiBpbiB1aV9kaWFsb2cuanMpIOKAlCBkZXIgc2NobGll -c3N0IGRhbm4KICAgICAgICAgICAgLy8gbnVyIGRhcyBvYmVyc3RlIE92ZXJsYXkgaW0gU3RhY2sg -KExJRk8pLiBIaWVyIGtlaW4KICAgICAgICAgICAgLy8gbW9kYWxTY2hsaWVzc2VuLUF1ZnJ1ZiBt -ZWhyLCBzb25zdCB3dWVyZGVuIGJlaWRlIEhhbmRsZXIKICAgICAgICAgICAgLy8gZG9wcGVsdCBm -ZXVlcm4gKENvbmZpcm0genUgKyBIYXVwdG1vZGFsIHp1KS4KICAgICAgICAgICAgaWYgKGUua2V5 -ID09PSAnRXNjYXBlJykgZWRpdG9yU2NobGllc3NlbigpOwogICAgICAgIH0pOwoKICAgICAgICAv -LyBIZXV0ZS1CbG9jayBsaW5rcyBvYmVuIChlcnNldHp0IGRpZSBhbHRlIFRvb2xiYXIpCiAgICAg -ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2J0bi1oZXV0ZScpLmFkZEV2ZW50TGlzdGVuZXIo -J2NsaWNrJywgenVtSGV1dGlnZW5EYXR1bSk7CiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5 -SWQoJ2J0bi1zY2hpY2h0dGVhbScpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgc2NoaWNodFRl -YW1Nb2RhbE9lZmZuZW4pOwogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdidG4tdGhl -bWUnKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoZW1lVW1zY2hhbHRlbik7CiAgICAgICAg -ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2J0bi1pbmZvJykuYWRkRXZlbnRMaXN0ZW5lcignY2xp -Y2snLCBpbmZvRmVuc3RlclplaWdlbik7CiAgICAgICAgdmFyIGJ0bkJ1ZyA9IGRvY3VtZW50Lmdl -dEVsZW1lbnRCeUlkKCdidG4tYnVncmVwb3J0Jyk7CiAgICAgICAgaWYgKGJ0bkJ1ZykgYnRuQnVn -LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgYnVnUmVwb3J0TW9kYWxPZWZmbmVuKTsKCiAgICAg -ICAgLy8gSGlud2Vpcy1TeXN0ZW06IEtsaWNrIGF1ZiBCYWRnZSBPREVSIFVzZXItTmFtZW4gb2Vm -Zm5ldCBkaWUKICAgICAgICAvLyBIaW53ZWlzLU1vZGFsLUxpc3RlLiBOdXIgZnVlciBTVS9HZXNh -bXR2ZXJhbnR3b3J0bGljaGUgYWt0aXYsCiAgICAgICAgLy8gZGFtaXQgbm9ybWFsZSBVc2VyIGR1 -cmNoIHZlcnNlaGVudGxpY2hlcyBLbGlja2VuIG5pY2h0cyBlcmxlYmVuLgogICAgICAgIChmdW5j -dGlvbigpIHsKICAgICAgICAgICAgZnVuY3Rpb24gb2VmZm5lbigpIHsKICAgICAgICAgICAgICAg -IGlmIChoaW53ZWlzZVNpY2h0YmFyKCkpIGhpbndlaXNlTW9kYWxPZWZmbmVuKCk7CiAgICAgICAg -ICAgIH0KICAgICAgICAgICAgdmFyIGJFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdoaW53 -ZWlzLWJhZGdlJyk7CiAgICAgICAgICAgIGlmIChiRWwpIHsKICAgICAgICAgICAgICAgIGJFbC5h -ZGRFdmVudExpc3RlbmVyKCdjbGljaycsIG9lZmZuZW4pOwogICAgICAgICAgICAgICAgYkVsLmFk -ZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBmdW5jdGlvbihlKSB7CiAgICAgICAgICAgICAgICAg -ICAgaWYgKGUua2V5ID09PSAnRW50ZXInIHx8IGUua2V5ID09PSAnICcpIHsgZS5wcmV2ZW50RGVm -YXVsdCgpOyBvZWZmbmVuKCk7IH0KICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9CiAg -ICAgICAgICAgIHZhciB1RWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmVudXR6ZXItYW56 -ZWlnZScpOwogICAgICAgICAgICBpZiAodUVsKSB1RWwuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2sn -LCBvZWZmbmVuKTsKICAgICAgICAgICAgLy8gVG9wYmFyLUF2YXRhcjogS2xpY2sgb2VmZm5ldCAi -TWVpbiBQcm9maWwiLU1vZGFsIG1pdCBCaWxkLVVwbG9hZAogICAgICAgICAgICB2YXIgYXZCdG4g -PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWVpbi1hdmF0YXItYnRuJyk7CiAgICAgICAgICAg -IGlmIChhdkJ0bikgewogICAgICAgICAgICAgICAgYXZCdG4uYWRkRXZlbnRMaXN0ZW5lcignY2xp -Y2snLCBtZWluUHJvZmlsTW9kYWxPZWZmbmVuKTsKICAgICAgICAgICAgICAgIGF2QnRuLmFkZEV2 -ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBmdW5jdGlvbihlKSB7CiAgICAgICAgICAgICAgICAgICAg -aWYgKGUua2V5ID09PSAnRW50ZXInIHx8IGUua2V5ID09PSAnICcpIHsgZS5wcmV2ZW50RGVmYXVs -dCgpOyBtZWluUHJvZmlsTW9kYWxPZWZmbmVuKCk7IH0KICAgICAgICAgICAgICAgIH0pOwogICAg -ICAgICAgICB9CiAgICAgICAgfSkoKTsKCiAgICAgICAgLy8gUGVycy4gUGxhbjogUGVyc29uIHdl -Y2hzZWxuCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BwLXBlcnNvbi1hdXN3YWhs -JykuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgcHBSZW5kZXJuKTsKICAgICAgICBkb2N1bWVu -dC5nZXRFbGVtZW50QnlJZCgncHAtZHJ1Y2tlbicpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywg -ZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIC8vIERydWNrLU1vZHVzIGFuYWxvZyB6dW0gV29jaGVu -cGxhbjogYm9keS1DbGFzcyBzZXR6dCBkYXMgQG1lZGlhLXByaW50LUxheW91dAogICAgICAgICAg -ICAvLyAoSGVhZGVyL1Rvb2xiYXIvVGFicyBhdXMsIGFsbGUgMTIgTW9uYXRlIGF1ZiBlaW5lciBB -NC1RdWVyc2VpdGUpLgogICAgICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoJ2Ry -dWNrZW4tcGVyc3BsYW4nKTsKICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAg -ICAgICAgICAgICAgIHdpbmRvdy5wcmludCgpOwogICAgICAgICAgICAgICAgc2V0VGltZW91dChm -dW5jdGlvbigpIHsgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCdkcnVja2VuLXBlcnNw -bGFuJyk7IH0sIDUwMCk7CiAgICAgICAgICAgIH0sIDUwKTsKICAgICAgICB9KTsKCiAgICAgICAg -Ly8gS29tbWVudGFyLUVkaXRvciAoU3R1ZmUgMik6IFZlcmxhdWZzbGlzdGUgb2JlbiArIEVpbmdh -YmVmZWxkIHVudGVuLgogICAgICAgIC8vICJIaW56dWZ1ZWdlbiIgaGFlbmd0IGVpbmVuIG5ldWVu -IEtvbW1lbnRhciBhbiBkaWUgTGlzdGUgYW4gc3RhdHQKICAgICAgICAvLyBkZW4gdm9yaGFuZGVu -ZW4genUgdWViZXJzY2hyZWliZW4uIExvZXNjaC1JY29ucyBpbm5lcmhhbGIgZGVyCiAgICAgICAg -Ly8gVmVybGF1ZnNsaXN0ZSBzaW5kIG51ciBmdWVyIFNVL0dlc2FtdHZlcmFudHdvcnRsaWNoZSBz -aWNodGJhcgogICAgICAgIC8vIChzaWVoZSBlZGl0b3JLb21tZW50YXJWZXJsYXVmUmVuZGVybigp -IC8gZGFyZktvbW1lbnRhckxvZXNjaGVuKCkpLgogICAgICAgIHZhciBpbnB1dEVsID0gZG9jdW1l -bnQuZ2V0RWxlbWVudEJ5SWQoJ2VkaXRvci1rb21tZW50YXItaW5wdXQnKTsKICAgICAgICB2YXIg -YnRuSGluenUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnRuLWtvbW1lbnRhci1oaW56dScp -OwogICAgICAgIGZ1bmN0aW9uIGtvbW1lbnRhckhpbnp1Vm9tRWRpdG9yKCkgewogICAgICAgICAg -ICBpZiAoIWVkaXRvckFrdGl2KCkpIHJldHVybjsKICAgICAgICAgICAgdmFyIHRleHQgPSBpbnB1 -dEVsLnZhbHVlLnRyaW0oKTsKICAgICAgICAgICAgaWYgKCF0ZXh0KSByZXR1cm47CiAgICAgICAg -ICAgIGtvbW1lbnRhckhpbnp1ZnVlZ2VuKGVkaXRvckRhdHVtKCksIGVkaXRvclBlcnNvbklkKCks -IHRleHQsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgZWRpdG9yS29tbWVudGFyVmVybGF1 -ZlJlbmRlcm4oKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGlucHV0RWwudmFsdWUgPSAn -JzsKICAgICAgICAgICAgLy8gT3B0aW1pc3Rpc2NoZSBzb2ZvcnRpZ2UgUmUtUmVuZGVyIChTZXJ2 -ZXItQW50d29ydCBrb21tdCBhc3luY2hyb24pLgogICAgICAgICAgICBlZGl0b3JLb21tZW50YXJW -ZXJsYXVmUmVuZGVybigpOwogICAgICAgIH0KICAgICAgICBidG5IaW56dS5hZGRFdmVudExpc3Rl -bmVyKCdjbGljaycsIGtvbW1lbnRhckhpbnp1Vm9tRWRpdG9yKTsKICAgICAgICBpbnB1dEVsLmFk -ZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBmdW5jdGlvbihlKSB7CiAgICAgICAgICAgIC8vIEVu -dGVyIGltIEVpbmdhYmVmZWxkIC0+IGRpcmVrdCBhbmhhZW5nZW4gKGtlaW4gRm9ybS1TdWJtaXQs -IGRhaGVyCiAgICAgICAgICAgIC8vIGV4cGxpeml0IHZlcmRyYWh0ZXQpLgogICAgICAgICAgICBp -ZiAoZS5rZXkgPT09ICdFbnRlcicpIHsgZS5wcmV2ZW50RGVmYXVsdCgpOyBrb21tZW50YXJIaW56 -dVZvbUVkaXRvcigpOyB9CiAgICAgICAgfSk7CiAgICAgICAgLy8gTG9lc2NoLUljb24tRGVsZWdh -dGlvbiBhdWYgZGVuIFZlcmxhdWYtQ29udGFpbmVyIOKAlCBFaW50cmFlZ2Ugd2VyZGVuCiAgICAg -ICAgLy8gYmVpIGplZGVtIFJlcmVuZGVyIG5ldSBlcnpldWd0LCBlaW56ZWxuZSBMaXN0ZW5lciB3 -dWVyZGVuIHZlcmdlc3Nlbi4KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWRpdG9y -LWtvbW1lbnRhci12ZXJsYXVmJykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbihl -KSB7CiAgICAgICAgICAgIHZhciBidG4gPSBlLnRhcmdldC5jbG9zZXN0KCcuZWt2LWxvZXNjaGVu -Jyk7CiAgICAgICAgICAgIGlmICghYnRuIHx8ICFlZGl0b3JBa3RpdigpKSByZXR1cm47CiAgICAg -ICAgICAgIHZhciBraWQgPSBidG4uZ2V0QXR0cmlidXRlKCdkYXRhLWlkJyk7CiAgICAgICAgICAg -IGlmICgha2lkKSByZXR1cm47CiAgICAgICAgICAgIGJlc3RhZXRpZ2VuKCdEaWVzZW4gS29tbWVu -dGFyIHdpcmtsaWNoIGzDtnNjaGVuPyBEaWUgQWt0aW9uIHdpcmQgaW0gTG9nYnVjaCBwcm90b2tv -bGxpZXJ0LicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAga29tbWVudGFyTG9lc2NoZW4o -ZWRpdG9yRGF0dW0oKSwgZWRpdG9yUGVyc29uSWQoKSwga2lkLCBmdW5jdGlvbihvaykgewogICAg -ICAgICAgICAgICAgICAgIGlmIChvaykgZWRpdG9yS29tbWVudGFyVmVybGF1ZlJlbmRlcm4oKTsK -ICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9LCB7IGphRGFuZ2VyOiB0cnVlLCBqYVRl -eHQ6ICdMw7ZzY2hlbicgfSk7CiAgICAgICAgfSk7CgogICAgICAgIC8vIFBlcnNvbi1Ib3Zlci1Q -b3BvdmVyOiB6ZWlndCBTdGFtbWRhdGVuICsgMTQtVGFnZS1TY2hpY2h0dm9yc2NoYXUKICAgICAg -ICAvLyBiZWltIEhvdmVyIHVlYmVyIE5hbWVuIGluIFBsYW51bmcgLyBQZXJzb25hbHZlcndhbHR1 -bmcgLyBXb2NoZW5wbGFuLgogICAgICAgIC8vIEtsaWNrIGF1ZiBkZW4gTmFtZW4gb2VmZm5ldCB3 -ZWl0ZXJoaW4gZGFzIGpld2VpbGlnZSBNb2RhbC4KICAgICAgICBmdW5jdGlvbiBwcF9wZXJzb25J -ZEF1c0V2ZW50KGV2KSB7CiAgICAgICAgICAgIC8vIFJlaWhlbmZvbGdlOiB6dWVyc3Qgc3Blemlm -aXNjaGUgU2VsZWt0b3JlbiAobWl0IGRhdGEtaWQgYXVmCiAgICAgICAgICAgIC8vIGVpbmVtIElu -bmVyLVNwYW4pLCBkYW5uIGdlbmVyaXNjaGUgLm5hbWVuLXplaWxlLUNvbnRhaW5lci4KICAgICAg -ICAgICAgdmFyIGVsID0KICAgICAgICAgICAgICAgIGV2LnRhcmdldC5jbG9zZXN0KCcucGVyc29u -LW5hbWUtbGlua1tkYXRhLWlkXScpIHx8CiAgICAgICAgICAgICAgICBldi50YXJnZXQuY2xvc2Vz -dCgnLndwLW5hbWVbZGF0YS1wZXJzb24taWRdJykgfHwKICAgICAgICAgICAgICAgIGV2LnRhcmdl -dC5jbG9zZXN0KCcubmFtZW4temVpbGVbZGF0YS1wZXJzb24taWRdJyk7CiAgICAgICAgICAgIGlm -ICghZWwpIHJldHVybiBudWxsOwogICAgICAgICAgICByZXR1cm4geyBpZDogZWwuZ2V0QXR0cmli -dXRlKCdkYXRhLWlkJykgfHwgZWwuZ2V0QXR0cmlidXRlKCdkYXRhLXBlcnNvbi1pZCcpLCBhbmtl -cjogZWwgfTsKICAgICAgICB9CiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91 -c2VvdmVyJywgZnVuY3Rpb24oZXYpIHsKICAgICAgICAgICAgdmFyIGhpdCA9IHBwX3BlcnNvbklk -QXVzRXZlbnQoZXYpOwogICAgICAgICAgICBpZiAoaGl0KSBwZXJzb25Qb3BvdmVyWmVpZ2VuKGhp -dC5pZCwgaGl0LmFua2VyKTsKICAgICAgICB9KTsKICAgICAgICBkb2N1bWVudC5hZGRFdmVudExp -c3RlbmVyKCdtb3VzZW91dCcsIGZ1bmN0aW9uKGV2KSB7CiAgICAgICAgICAgIHZhciBoaXQgPSBw -cF9wZXJzb25JZEF1c0V2ZW50KGV2KTsKICAgICAgICAgICAgaWYgKCFoaXQpIHJldHVybjsKICAg -ICAgICAgICAgLy8gV2VubiBNYXVzIGF1ZiBlaW5lIGFuZGVyZSBQZXJzb24tVHJpZ2dlci1aZWxs -ZSBnbGVpdGV0LCBOSUNIVAogICAgICAgICAgICAvLyB2ZXJzdGVja2VuIOKAlCBkZXIgbW91c2Vv -dmVyLUhhbmRsZXIgemVpY2huZXQgZWluZmFjaCBuZXUuCiAgICAgICAgICAgIHZhciByZWwgPSBl -di5yZWxhdGVkVGFyZ2V0OwogICAgICAgICAgICBpZiAocmVsICYmIHJlbC5jbG9zZXN0ICYmICgK -ICAgICAgICAgICAgICAgIHJlbC5jbG9zZXN0KCcucGVyc29uLW5hbWUtbGlua1tkYXRhLWlkXScp -IHx8CiAgICAgICAgICAgICAgICByZWwuY2xvc2VzdCgnLndwLW5hbWVbZGF0YS1wZXJzb24taWRd -JykgfHwKICAgICAgICAgICAgICAgIHJlbC5jbG9zZXN0KCcubmFtZW4temVpbGVbZGF0YS1wZXJz -b24taWRdJykgfHwKICAgICAgICAgICAgICAgIHJlbC5jbG9zZXN0KCcjdmkzLXBlcnNvbi1wb3Bv -dmVyJykKICAgICAgICAgICAgKSkgcmV0dXJuOwogICAgICAgICAgICBwZXJzb25Qb3BvdmVyVmVy -c3RlY2tlbigpOwogICAgICAgIH0pOwogICAgICAgIC8vIFBvcG92ZXIgc2VsYnN0IHNvbGx0ZSBi -ZWltIEhvdmVyLUluIG5pY2h0IGF1c2JsZW5kZW4gKFVzZXIgZGFyZgogICAgICAgIC8vIGhpbmVp -bmtsaWNrZW4sIHouQi4gdW0gVGV4dCB6dSBrb3BpZXJlbikuCiAgICAgICAgdmFyIHBwRWwgPSBk -b2N1bWVudC5nZXRFbGVtZW50QnlJZCgndmkzLXBlcnNvbi1wb3BvdmVyJyk7CiAgICAgICAgaWYg -KHBwRWwpIHsKICAgICAgICAgICAgcHBFbC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywg -ZnVuY3Rpb24oKSB7IC8qIHplaWdlVGltZXIgZWggaW5ha3RpdiAqLyB9KTsKICAgICAgICAgICAg -cHBFbC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgcGVyc29uUG9wb3ZlclZlcnN0ZWNr -ZW4pOwogICAgICAgIH0KICAgICAgICAvLyBLb21tZW50YXItUG9wb3ZlciBhbmFsb2c6IEhvdmVy -LUluIGhhZWx0IG9mZmVuLCBIb3Zlci1PdXQgc2NobGllc3N0CiAgICAgICAgLy8gbWl0IGt1cnpl -ciBWZXJ6b2VnZXJ1bmcg4oCUIFVzZXIgc29sbCBaZWl0IGhhYmVuLCB1ZWJlciBkaWUgWmVsbGUg -PC0+CiAgICAgICAgLy8gUG9wb3Zlci1CcnVlY2tlIHp1IHdhbmRlcm4gdW5kIFRleHQgenUga29w -aWVyZW4uCiAgICAgICAgdmFyIGtwRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndmkzLWtv -bW1lbnRhci1wb3BvdmVyJyk7CiAgICAgICAgaWYgKGtwRWwpIHsKICAgICAgICAgICAga3BFbC5h -ZGRFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywga29tbWVudGFyUG9wb3ZlckZlc3RoYWx0ZW4p -OwogICAgICAgICAgICBrcEVsLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCBrb21tZW50 -YXJQb3BvdmVyVmVyc3RlY2tlbik7CiAgICAgICAgfQoKICAgICAgICAvLyBNb2RhbAogICAgICAg -IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtb2RhbC1zY2hsaWVzc2VuLWJ0bicpLmFkZEV2ZW50 -TGlzdGVuZXIoJ2NsaWNrJywgbW9kYWxTY2hsaWVzc2VuKTsKICAgICAgICBkb2N1bWVudC5nZXRF -bGVtZW50QnlJZCgnbW9kYWwtb3ZlcmxheScpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVu -Y3Rpb24oZSkgewogICAgICAgICAgICAvLyBRdWljay1XaW4gbmFjaCBVWC1BdWRpdCAoMjAyNi0w -NS0yOSk6IGRhdGEtbm8tY2xvc2UgcmVzcGVrdGllcmVuLAogICAgICAgICAgICAvLyBkYW1pdCBN -b2RhbHMgd2llIGRhcyBFeGNlbC1JbXBvcnQtUHJvZ3Jlc3MgKGxhZXVmdCwgZGFyZiBuaWNodAog -ICAgICAgICAgICAvLyBhYmdlYnJvY2hlbiB3ZXJkZW4pIG5pY2h0IGR1cmNoIHZlcnNlaGVudGxp -Y2hlbiBCYWNrZHJvcC1LbGljawogICAgICAgICAgICAvLyBzY2hsaWVzc2VuLiBEYXMgQXR0cmli -dXQgd2lyZCB2b20gQXVmcnVmZXIgZ2VzZXR6dCArIGluCiAgICAgICAgICAgIC8vIG1vZGFsU2No -bGllc3NlbiB3aWVkZXIgZ2VyYWV1bXQuCiAgICAgICAgICAgIGlmIChlLnRhcmdldCA9PT0gdGhp -cyAmJiB0aGlzLmdldEF0dHJpYnV0ZSgnZGF0YS1uby1jbG9zZScpICE9PSAnMScpIG1vZGFsU2No -bGllc3NlbigpOwogICAgICAgIH0pOwoKICAgICAgICAvLyBHZWJ1cnRzdGFnLU1vZGFsOiBLbGlj -ayBhdWYgZWluZW4gVGFnL01vbmF0L0phaHItQnV0dG9uLiBFdmVudC0KICAgICAgICAvLyBEZWxl -Z2F0aW9uIGF1ZiBtb2RhbC1vdmVybGF5LCB3ZWlsIGRlciBJbmhhbHQgYmVpIGplZGVtIEtsaWNr -CiAgICAgICAgLy8gbmV1IGdlcmVuZGVydCB3aXJkIChpbm5lckhUTUwgYXVmICNnYi1tb2RhbC1p -bmhhbHQpLgogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtb2RhbC1vdmVybGF5Jyku -YWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbihlKSB7CiAgICAgICAgICAgIHZhciBi -dG4gPSBlLnRhcmdldC5jbG9zZXN0KCcuZ2ItYnRuJyk7CiAgICAgICAgICAgIGlmICghYnRuKSBy -ZXR1cm47CiAgICAgICAgICAgIHZhciB0eXAgPSBidG4uZ2V0QXR0cmlidXRlKCdkYXRhLWdiLXR5 -cCcpOwogICAgICAgICAgICB2YXIgd2VydCA9IHBhcnNlSW50KGJ0bi5nZXRBdHRyaWJ1dGUoJ2Rh -dGEtZ2Itd2VydCcpLCAxMCk7CiAgICAgICAgICAgIGdlYnVydHN0YWdNb2RhbEtsaWNrKHR5cCwg -d2VydCk7CiAgICAgICAgfSk7CgogICAgfQoKICAgIGZ1bmN0aW9uIGFkbWluTGlzdGVuZXJFaW5y -aWNodGVuKCkgewogICAgICAgIC8vID09PT09IEFkbWluIEV2ZW50cyA9PT09PQoKICAgICAgICBk -b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnRuLXBlcnNvbi1uZXUnKS5hZGRFdmVudExpc3RlbmVy -KCdjbGljaycsIHBlcnNvbk5ldURpYWxvZyk7CiAgICAgICAgdmFyIGJ0blNvcnQgPSBkb2N1bWVu -dC5nZXRFbGVtZW50QnlJZCgnYnRuLW1hbnVlbGxlLXNvcnRpZXJ1bmcnKTsKICAgICAgICBpZiAo -YnRuU29ydCkgYnRuU29ydC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIG1hbnVlbGxlU29ydGll -cnVuZ0RpYWxvZyk7CgogICAgICAgIC8vIEVpbmZhY2gtS2xpY2sgYXVmIGlubGluZS1tYXJraWVy -dGUgRGF0ZW4tWmVsbGVuLiBCdXR0b25zIGluIGRlcnNlbGJlbgogICAgICAgIC8vIFplaWxlIGhh -YmVuIGRhdGEtYWt0aW9uICsgd2VyZGVuIGltIHp3ZWl0ZW4gQ2xpY2stSGFuZGxlciBhdXNnZXdl -cnRldCwKICAgICAgICAvLyBkb3J0IGdld2lubnQgZGVyIEJ1dHRvbiAoZWlnZW5lciBjbG9zZXN0 -KCkgbWF0Y2gpLgogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwZXJzb25hbC10Ym9k -eScpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oZSkgewogICAgICAgICAgICAv -LyBXZW5uIGVpbiBBa3Rpb25zLUJ1dHRvbiBnZXRyb2ZmZW4gd2lyZCwgTklDSFQgYWxzIElubGlu -ZS1LbGljayB3ZXJ0ZW4uCiAgICAgICAgICAgIGlmIChlLnRhcmdldC5jbG9zZXN0KCdidXR0b25b -ZGF0YS1ha3Rpb25dJykpIHJldHVybjsKICAgICAgICAgICAgdmFyIGlubGluZSA9IGUudGFyZ2V0 -LmNsb3Nlc3QoJy5wZXJzb25hbC1pbmxpbmUnKTsKICAgICAgICAgICAgaWYgKCFpbmxpbmUpIHJl -dHVybjsKICAgICAgICAgICAgcGVyc29uYWxGZWxkSW5saW5lRWRpdChwYXJzZUludChpbmxpbmUu -Z2V0QXR0cmlidXRlKCdkYXRhLWlkJyksIDEwKSwgaW5saW5lKTsKICAgICAgICB9KTsKCiAgICAg -ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BlcnNvbmFsLXRib2R5JykuYWRkRXZlbnRMaXN0 -ZW5lcignY2xpY2snLCBmdW5jdGlvbihlKSB7CiAgICAgICAgICAgIHZhciByYW5nU3BhbiA9IGUu -dGFyZ2V0LmNsb3Nlc3QoJy5yYW5nLWVkaXQnKTsKICAgICAgICAgICAgaWYgKHJhbmdTcGFuKSB7 -CiAgICAgICAgICAgICAgICByYW5nSW5saW5lRWRpdChwYXJzZUludChyYW5nU3Bhbi5nZXRBdHRy -aWJ1dGUoJ2RhdGEtaWQnKSwgMTApLCByYW5nU3Bhbik7CiAgICAgICAgICAgICAgICByZXR1cm47 -CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIGZ1bmtTcGFuID0gZS50YXJnZXQuY2xvc2Vz -dCgnLmZ1bmt0aW9uLWVkaXQnKTsKICAgICAgICAgICAgaWYgKGZ1bmtTcGFuKSB7CiAgICAgICAg -ICAgICAgICBmdW5rdGlvbklubGluZUVkaXQocGFyc2VJbnQoZnVua1NwYW4uZ2V0QXR0cmlidXRl -KCdkYXRhLWlkJyksIDEwKSwgZnVua1NwYW4pOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAg -ICAgICAgICB9CiAgICAgICAgICAgIHZhciBkZ3JkU3BhbiA9IGUudGFyZ2V0LmNsb3Nlc3QoJy5k -aWVuc3RncmFkLWVkaXQnKTsKICAgICAgICAgICAgaWYgKGRncmRTcGFuKSB7CiAgICAgICAgICAg -ICAgICBkaWVuc3RncmFkSW5saW5lRWRpdChwYXJzZUludChkZ3JkU3Bhbi5nZXRBdHRyaWJ1dGUo -J2RhdGEtaWQnKSwgMTApLCBkZ3JkU3Bhbik7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAg -ICAgICAgIH0KICAgICAgICAgICAgdmFyIGVsZGdsQ2VsbCA9IGUudGFyZ2V0LmNsb3Nlc3QoJy5l -bGRnbC1lZGl0Jyk7CiAgICAgICAgICAgIGlmIChlbGRnbENlbGwpIHsKICAgICAgICAgICAgICAg -IGVsZGdsSW5saW5lVG9nZ2xlKHBhcnNlSW50KGVsZGdsQ2VsbC5nZXRBdHRyaWJ1dGUoJ2RhdGEt -aWQnKSwgMTApKTsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAg -ICAgICB2YXIgYXBDZWxsID0gZS50YXJnZXQuY2xvc2VzdCgnLmFuc3ByZWNocGFydG5lci1lZGl0 -Jyk7CiAgICAgICAgICAgIGlmIChhcENlbGwpIHsKICAgICAgICAgICAgICAgIGFuc3ByZWNocGFy -dG5lcklubGluZVRvZ2dsZShwYXJzZUludChhcENlbGwuZ2V0QXR0cmlidXRlKCdkYXRhLWlkJyks -IDEwKSk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgICAg -dmFyIGlwQ2VsbCA9IGUudGFyZ2V0LmNsb3Nlc3QoJy5pbnBsYW51bmctZWRpdCcpOwogICAgICAg -ICAgICBpZiAoaXBDZWxsKSB7CiAgICAgICAgICAgICAgICBpblBsYW51bmdJbmxpbmVUb2dnbGUo -cGFyc2VJbnQoaXBDZWxsLmdldEF0dHJpYnV0ZSgnZGF0YS1pZCcpLCAxMCkpOwogICAgICAgICAg -ICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciBuYW1lTGluayA9IGUu -dGFyZ2V0LmNsb3Nlc3QoJy5wZXJzb24tbmFtZS1saW5rJyk7CiAgICAgICAgICAgIGlmIChuYW1l -TGluaykgewogICAgICAgICAgICAgICAgcGVyc29uQmVhcmJlaXRlbkRpYWxvZyhwYXJzZUludChu -YW1lTGluay5nZXRBdHRyaWJ1dGUoJ2RhdGEtaWQnKSwgMTApKTsKICAgICAgICAgICAgICAgIHJl -dHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICB2YXIgYnRuID0gZS50YXJnZXQuY2xvc2Vz -dCgnYnV0dG9uJyk7CiAgICAgICAgICAgIGlmICghYnRuKSByZXR1cm47CiAgICAgICAgICAgIHZh -ciBpZCA9IHBhcnNlSW50KGJ0bi5nZXRBdHRyaWJ1dGUoJ2RhdGEtaWQnKSk7CiAgICAgICAgICAg -IHZhciBha3Rpb24gPSBidG4uZ2V0QXR0cmlidXRlKCdkYXRhLWFrdGlvbicpOwogICAgICAgICAg -ICBpZiAoYWt0aW9uID09PSAnYmVhcmJlaXRlbicpIHBlcnNvbkJlYXJiZWl0ZW5EaWFsb2coaWQp -OwogICAgICAgICAgICBlbHNlIGlmIChha3Rpb24gPT09ICdwZXJzb24tdGVzdGVuJykgaW1wZXJz -b25hdGVQZXJzb24oaWQpOwogICAgICAgICAgICBlbHNlIGlmIChha3Rpb24gPT09ICdlbWFpbCcp -IHBlcnNvbkVtYWlsRGlhbG9nKGlkKTsKICAgICAgICAgICAgZWxzZSBpZiAoYWt0aW9uID09PSAn -dW1zZXR6ZW4nKSB7CiAgICAgICAgICAgICAgICBiZXN0YWV0aWdlbignUGVyc29uIGF1cyBkZXIg -UGxhbnVuZyBlbnRmZXJuZW4/IEJlc3RlaGVuZGUgRWludHLDpGdlIGJsZWliZW4gZXJoYWx0ZW4g -dW5kIGvDtm5uZW4gcGVyIOKAnlVtZ2VzZXR6dGUgZWluYmxlbmRlbiIgd2llZGVyIHNpY2h0YmFy -IGdlbWFjaHQgd2VyZGVuLicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgIHBlcnNv -blN0YXR1c1NldHplbihpZCwgZmFsc2UpOwogICAgICAgICAgICAgICAgfSwgeyB0aXRlbDogJ1Bl -cnNvbiB1bXNldHplbicsIGphVGV4dDogJ1Vtc2V0emVuJyB9KTsKICAgICAgICAgICAgfSBlbHNl -IGlmIChha3Rpb24gPT09ICdyZWFrdGl2aWVyZW4nKSB7CiAgICAgICAgICAgICAgICBwZXJzb25T -dGF0dXNTZXR6ZW4oaWQsIHRydWUpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIFBhcGll -cmtvcmItTGlmZWN5Y2xlIChDaGVycnktUGljayAzMDA5ZWE4LCBoaW50ZXIgVG9nZ2xlIGBmZWF0 -dXJlcy5wYXBpZXJrb3JiVUlgKS4KICAgICAgICAgICAgZWxzZSBpZiAoYWt0aW9uID09PSAnaW4t -cGFwaWVya29yYicpIHsKICAgICAgICAgICAgICAgIHZhciB0YWdlID0gWi5hZG1pbi5wYXBpZXJr -b3JiVGFnZUF1ZmJld2FocnVuZyAhPSBudWxsID8gWi5hZG1pbi5wYXBpZXJrb3JiVGFnZUF1ZmJl -d2FocnVuZyA6IDMwOwogICAgICAgICAgICAgICAgYmVzdGFldGlnZW4oJ1BlcnNvbiBpbiBkZW4g -UGFwaWVya29yYiB2ZXJzY2hpZWJlbj9cblxuU2llIHdpcmQgbmFjaCAnICsgdGFnZSArICcgVGFn -ZW4gYXV0b21hdGlzY2ggZW5kZ8O8bHRpZyBnZWzDtnNjaHQuIEJpcyBkYWhpbiBrYW5uIHNpZSB3 -aWVkZXJoZXJnZXN0ZWxsdCB3ZXJkZW4uJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAg -ICAgYXBpRGVsZXRlKCcvYXBpL3BlcnNvbmVuLycgKyBpZCkudGhlbihmdW5jdGlvbigpIHsKICAg -ICAgICAgICAgICAgICAgICAgICAgdmFyIHAgPSBaLnBsYW51bmcucGVyc29uZW4uZmluZChmdW5j -dGlvbih4KSB7IHJldHVybiB4LmlkID09PSBpZDsgfSk7CiAgICAgICAgICAgICAgICAgICAgICAg -IGlmIChwKSBwLmdlbG9lc2NodEFtID0gbmV3IERhdGUoKS50b0lTT1N0cmluZygpOwogICAgICAg -ICAgICAgICAgICAgICAgICBwZXJzb25lbk5ldUF1ZmJhdWVuKCk7CiAgICAgICAgICAgICAgICAg -ICAgICAgIHBlcnNvbmFsVGFiZWxsZVJlbmRlcm4oKTsKICAgICAgICAgICAgICAgICAgICAgICAg -aWYgKHR5cGVvZiBuYW1lblJlbmRlcm4gPT09ICdmdW5jdGlvbicpIHsgbmFtZW5SZW5kZXJuKCk7 -IGRhdGVuR3JpZFJlbmRlcm4oKTsga29wZlJlbmRlcm4oKTsgfQogICAgICAgICAgICAgICAgICAg -ICAgICB0b2FzdCgnUGVyc29uIGluIFBhcGllcmtvcmIgdmVyc2Nob2JlbicsICdlcmZvbGcnKTsK -ICAgICAgICAgICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlKSB7IHRvYXN0KCdGZWhsZXI6 -ICcgKyBlLm1lc3NhZ2UsICdmZWhsZXInKTsgfSk7CiAgICAgICAgICAgICAgICB9LCB7IHRpdGVs -OiAnSW4gUGFwaWVya29yYicsIGphVGV4dDogJ0luIFBhcGllcmtvcmInLCBqYURhbmdlcjogdHJ1 -ZSB9KTsKICAgICAgICAgICAgfSBlbHNlIGlmIChha3Rpb24gPT09ICd3aWVkZXJoZXJzdGVsbGVu -JykgewogICAgICAgICAgICAgICAgYXBpUHV0KCcvYXBpL3BlcnNvbmVuLycgKyBpZCwgeyBnZWxv -ZXNjaHRBbTogbnVsbCwgYWt0aXY6IHRydWUgfSkudGhlbihmdW5jdGlvbigpIHsKICAgICAgICAg -ICAgICAgICAgICB2YXIgcCA9IFoucGxhbnVuZy5wZXJzb25lbi5maW5kKGZ1bmN0aW9uKHgpIHsg -cmV0dXJuIHguaWQgPT09IGlkOyB9KTsKICAgICAgICAgICAgICAgICAgICBpZiAocCkgeyBwLmdl -bG9lc2NodEFtID0gbnVsbDsgcC5ha3RpdiA9IHRydWU7IH0KICAgICAgICAgICAgICAgICAgICBw -ZXJzb25lbk5ldUF1ZmJhdWVuKCk7CiAgICAgICAgICAgICAgICAgICAgcGVyc29uYWxUYWJlbGxl -UmVuZGVybigpOwogICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgbmFtZW5SZW5kZXJuID09 -PSAnZnVuY3Rpb24nKSB7IG5hbWVuUmVuZGVybigpOyBkYXRlbkdyaWRSZW5kZXJuKCk7IGtvcGZS -ZW5kZXJuKCk7IH0KICAgICAgICAgICAgICAgICAgICB0b2FzdCgnUGVyc29uIHdpZWRlcmhlcmdl -c3RlbGx0JywgJ2VyZm9sZycpOwogICAgICAgICAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oZSkg -eyB0b2FzdCgnRmVobGVyOiAnICsgZS5tZXNzYWdlLCAnZmVobGVyJyk7IH0pOwogICAgICAgICAg -ICB9IGVsc2UgaWYgKGFrdGlvbiA9PT0gJ2VuZGd1ZWx0aWctbG9lc2NoZW4nKSB7CiAgICAgICAg -ICAgICAgICBiZXN0YWV0aWdlbignUGVyc29uIEVOREfDnExUSUcgbMO2c2NoZW4/XG5cbkVpbnRy -w6RnZSBpbiBkZXIgUGxhbnVuZyB2ZXJ3YWlzZW4gKGJsZWliZW4gYWJlciB0ZWNobmlzY2ggZXJo -YWx0ZW4pLiBMb2didWNoLSB1bmQgU3RhdGlzdGlrLUhpc3RvcmllIGJsZWliZW4gc2ljaHRiYXIu -IERpZXNlIEFrdGlvbiBrYW5uIG5pY2h0IHLDvGNrZ8OkbmdpZyBnZW1hY2h0IHdlcmRlbi4nLCBm -dW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICBhcGlEZWxldGUoJy9hcGkvcGVyc29uZW4v -JyArIGlkICsgJz9lbmRndWVsdGlnPTEnKS50aGVuKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAg -ICAgICAgICAgICBaLnBsYW51bmcucGVyc29uZW4gPSAoWi5wbGFudW5nLnBlcnNvbmVuIHx8IFtd -KS5maWx0ZXIoZnVuY3Rpb24oeCkgeyByZXR1cm4geC5pZCAhPT0gaWQ7IH0pOwogICAgICAgICAg -ICAgICAgICAgICAgICBwZXJzb25lbk5ldUF1ZmJhdWVuKCk7CiAgICAgICAgICAgICAgICAgICAg -ICAgIHBlcnNvbmFsVGFiZWxsZVJlbmRlcm4oKTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYg -KHR5cGVvZiBuYW1lblJlbmRlcm4gPT09ICdmdW5jdGlvbicpIHsgbmFtZW5SZW5kZXJuKCk7IGRh -dGVuR3JpZFJlbmRlcm4oKTsga29wZlJlbmRlcm4oKTsgfQogICAgICAgICAgICAgICAgICAgICAg -ICB0b2FzdCgnUGVyc29uIGVuZGfDvGx0aWcgZ2Vsw7ZzY2h0JywgJ2VyZm9sZycpOwogICAgICAg -ICAgICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGUpIHsgdG9hc3QoJ0ZlaGxlcjogJyArIGUu -bWVzc2FnZSwgJ2ZlaGxlcicpOyB9KTsKICAgICAgICAgICAgICAgIH0sIHsgdGl0ZWw6ICdFbmRn -w7xsdGlnIGzDtnNjaGVuJywgamFUZXh0OiAnRW5kZ8O8bHRpZyBsw7ZzY2hlbicsIGphRGFuZ2Vy -OiB0cnVlIH0pOwogICAgICAgICAgICB9CiAgICAgICAgfSk7CgogICAgICAgIHZhciBmaWx0ZXJD -aGsgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRtaW4tcGVyc29uYWwtZmlsdGVyJyk7CiAg -ICAgICAgaWYgKGZpbHRlckNoaykgZmlsdGVyQ2hrLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScs -IHBlcnNvbmFsVGFiZWxsZVJlbmRlcm4pOwogICAgICAgIHZhciBwYXBpZXJrb3JiRmlsdGVyQ2hr -ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FkbWluLXBhcGllcmtvcmItZmlsdGVyJyk7CiAg -ICAgICAgaWYgKHBhcGllcmtvcmJGaWx0ZXJDaGspIHBhcGllcmtvcmJGaWx0ZXJDaGsuYWRkRXZl -bnRMaXN0ZW5lcignY2hhbmdlJywgcGVyc29uYWxUYWJlbGxlUmVuZGVybik7CgogICAgICAgIHZh -ciB1bWdDaGsgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2hrLXVtZ2VzZXR6dGUtZWluYmxl -bmRlbicpOwogICAgICAgIGlmICh1bWdDaGspIHVtZ0Noay5hZGRFdmVudExpc3RlbmVyKCdjaGFu -Z2UnLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgWi51bWdlc2V0enRlRWluYmxlbmRlbiA9IHVt -Z0Noay5jaGVja2VkOwogICAgICAgICAgICBwZXJzb25lbk5ldUF1ZmJhdWVuKCk7CiAgICAgICAg -ICAgIG5hbWVuUmVuZGVybigpOwogICAgICAgICAgICBkYXRlbkdyaWRSZW5kZXJuKCk7CiAgICAg -ICAgICAgIGtvcGZSZW5kZXJuKCk7CiAgICAgICAgfSk7CgogICAgICAgIC8vIFN0YW5kb3J0ZQog -ICAgICAgIHZhciBidG5TdE5ldSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdidG4tc3RhbmRv -cnQtbmV1Jyk7CiAgICAgICAgaWYgKGJ0blN0TmV1KSBidG5TdE5ldS5hZGRFdmVudExpc3RlbmVy -KCdjbGljaycsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICBaLmFkbWluLnN0YW5kb3J0ZSA9IFou -YWRtaW4uc3RhbmRvcnRlIHx8IFtdOwogICAgICAgICAgICBaLmFkbWluLnN0YW5kb3J0ZS5wdXNo -KHsgbmFtZTogJ05ldWVyIFN0YW5kb3J0Jywga3VlcnplbDogJycsIGlzdFBvb2w6IHRydWUgfSk7 -CiAgICAgICAgICAgIHN0YW5kb3J0ZVJlbmRlcm4oKTsKICAgICAgICB9KTsKICAgICAgICB2YXIg -c3RUYm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdGFuZG9ydGUtdGJvZHknKTsKICAg -ICAgICBpZiAoc3RUYm9keSkgc3RUYm9keS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0 -aW9uKGUpIHsKICAgICAgICAgICAgdmFyIGJ0biA9IGUudGFyZ2V0LmNsb3Nlc3QoJ2J1dHRvbicp -OwogICAgICAgICAgICBpZiAoIWJ0bikgcmV0dXJuOwogICAgICAgICAgICB2YXIgaWR4ID0gcGFy -c2VJbnQoYnRuLmdldEF0dHJpYnV0ZSgnZGF0YS1pZHgnKSk7CiAgICAgICAgICAgIHZhciBha3Rp -b24gPSBidG4uZ2V0QXR0cmlidXRlKCdkYXRhLWFrdGlvbicpOwogICAgICAgICAgICBpZiAoYWt0 -aW9uID09PSAnc3RhbmRvcnQtbG9lc2NoZW4nKSB7CiAgICAgICAgICAgICAgICB2YXIgc3ROYW1l -ID0gWi5hZG1pbi5zdGFuZG9ydGVbaWR4XS5uYW1lIHx8ICcnOwogICAgICAgICAgICAgICAgYmVz -dGFldGlnZW4oJ1N0YW5kb3J0IOKAnicgKyBzdE5hbWUgKyAnIiB3aXJrbGljaCBsw7ZzY2hlbj8n -LCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICBaLmFkbWluLnN0YW5kb3J0ZS5zcGxp -Y2UoaWR4LCAxKTsKICAgICAgICAgICAgICAgICAgICBzdGFuZG9ydGVSZW5kZXJuKCk7CiAgICAg -ICAgICAgICAgICB9LCB7IHRpdGVsOiAnU3RhbmRvcnQgbMO2c2NoZW4nLCBqYURhbmdlcjogdHJ1 -ZSB9KTsKICAgICAgICAgICAgfSBlbHNlIGlmIChha3Rpb24gPT09ICdzdGFuZG9ydC1yaHl0aG11 -cycpIHsKICAgICAgICAgICAgICAgIHJoeXRobXVzR2VuZXJhdG9yRGlhbG9nKGlkeCk7CiAgICAg -ICAgICAgIH0KICAgICAgICB9KTsKICAgICAgICB2YXIgYnRuU3RTcGVpY2hlcm4gPSBkb2N1bWVu -dC5nZXRFbGVtZW50QnlJZCgnYnRuLXN0YW5kb3J0ZS1zcGVpY2hlcm4nKTsKICAgICAgICBpZiAo -YnRuU3RTcGVpY2hlcm4pIGJ0blN0U3BlaWNoZXJuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywg -ZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHZhciBkYXRlbiA9IHN0YW5kb3J0ZUF1c1RhYmVsbGVM -ZXNlbigpOwogICAgICAgICAgICBhcGlQdXQoJy9hcGkvYWRtaW4vc3RhbmRvcnRlJywgZGF0ZW4p -LnRoZW4oZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICBaLmFkbWluLnN0YW5kb3J0ZSA9IGRh -dGVuOwogICAgICAgICAgICAgICAga29wZlJlbmRlcm4oKTsKICAgICAgICAgICAgICAgIGRpcnR5 -U2V0emVuKCdzdGFuZG9ydGUnLCBmYWxzZSk7CiAgICAgICAgICAgICAgICB0YWJEcmFmdExvZXNj -aGVuKCdzdGFuZG9ydGUnKTsKICAgICAgICAgICAgICAgIHRvYXN0KCdTdGFuZG9ydGUgZ2VzcGVp -Y2hlcnQnLCAnZXJmb2xnJyk7CiAgICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGUpIHsgdG9h -c3QoJ0ZlaGxlcjogJyArIGUubWVzc2FnZSwgJ2ZlaGxlcicpOyB9KTsKICAgICAgICB9KTsKCiAg -ICAgICAgLy8gRGllbnN0Z3J1cHBlbiDigJQgS3VlcnplbCwgQmV6ZWljaG51bmcsIEZhcmJlbi4g -QmVpIEt1ZXJ6ZWwtQWVuZGVydW5nCiAgICAgICAgLy8gd2VyZGVuIGFsbGUgUGVyc29uZW4gZGll -c2VyIEdydXBwZSBhdXRvbWF0aXNjaCB1bWdlc2NocmllYmVuCiAgICAgICAgLy8gKGNhc2NhZGUg -cmVuYW1lKS4KICAgICAgICB2YXIgYnRuR3J1TmV1ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo -J2J0bi1ncnVwcGVuLW5ldScpOwogICAgICAgIGlmIChidG5HcnVOZXUpIGJ0bkdydU5ldS5hZGRF -dmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICBaLmFkbWluLmdy -dXBwZW4gPSAoWi5hZG1pbi5ncnVwcGVuIHx8IFtdKS5zbGljZSgpOwogICAgICAgICAgICBaLmFk -bWluLmdydXBwZW4ucHVzaCh7IG5hbWU6ICcnLCBiZXplaWNobnVuZzogJycsIGhpbnRlcmdydW5k -OiAnIzU0NkU3QScsIHNjaHJpZnQ6ICcjRkZGRkZGJyB9KTsKICAgICAgICAgICAgZ3J1cHBlblRh -YmVsbGVSZW5kZXJuKCk7CiAgICAgICAgICAgIC8vIEZva3VzIGF1ZiBkYXMgZ2VyYWRlIGFuZ2Vs -ZWd0ZSBLdWVyemVsLUZlbGQKICAgICAgICAgICAgdmFyIGxldHp0ZVplaWxlID0gZG9jdW1lbnQu -cXVlcnlTZWxlY3RvcignI2dydXBwZW4tdGJvZHkgdHI6bGFzdC1jaGlsZCAuZ3J1cHBlLWt1ZXJ6 -ZWwtaW5wdXQnKTsKICAgICAgICAgICAgaWYgKGxldHp0ZVplaWxlKSBsZXR6dGVaZWlsZS5mb2N1 -cygpOwogICAgICAgIH0pOwoKICAgICAgICB2YXIgZ3J1cHBlblRib2R5ID0gZG9jdW1lbnQuZ2V0 -RWxlbWVudEJ5SWQoJ2dydXBwZW4tdGJvZHknKTsKICAgICAgICBpZiAoZ3J1cHBlblRib2R5KSBn -cnVwcGVuVGJvZHkuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbihlKSB7CiAgICAg -ICAgICAgIHZhciBidG5Tb3J0ID0gZS50YXJnZXQuY2xvc2VzdCgnW2RhdGEtYWt0aW9uPSJncnVw -cGUtcmF1ZiJdLFtkYXRhLWFrdGlvbj0iZ3J1cHBlLXJ1bnRlciJdJyk7CiAgICAgICAgICAgIGlm -IChidG5Tb3J0ICYmICFidG5Tb3J0LmRpc2FibGVkKSB7CiAgICAgICAgICAgICAgICB2YXIgc29y -dElkeCA9IHBhcnNlSW50KGJ0blNvcnQuZ2V0QXR0cmlidXRlKCdkYXRhLWlkeCcpLCAxMCk7CiAg -ICAgICAgICAgICAgICB2YXIgcmF1ZiA9IGJ0blNvcnQuZ2V0QXR0cmlidXRlKCdkYXRhLWFrdGlv -bicpID09PSAnZ3J1cHBlLXJhdWYnOwogICAgICAgICAgICAgICAgdmFyIHppZWxJZHggPSByYXVm -ID8gc29ydElkeCAtIDEgOiBzb3J0SWR4ICsgMTsKICAgICAgICAgICAgICAgIHZhciBncnAgPSBa -LmFkbWluLmdydXBwZW47CiAgICAgICAgICAgICAgICBpZiAoemllbElkeCA+PSAwICYmIHppZWxJ -ZHggPCBncnAubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIHRtcCA9IGdycFtzb3J0 -SWR4XTsKICAgICAgICAgICAgICAgICAgICBncnBbc29ydElkeF0gPSBncnBbemllbElkeF07CiAg -ICAgICAgICAgICAgICAgICAgZ3JwW3ppZWxJZHhdID0gdG1wOwogICAgICAgICAgICAgICAgICAg -IGdydXBwZW5UYWJlbGxlUmVuZGVybigpOwogICAgICAgICAgICAgICAgICAgIGRpcnR5U2V0emVu -KCdncnVwcGVuJywgdHJ1ZSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXR1 -cm47CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIGJ0biA9IGUudGFyZ2V0LmNsb3Nlc3Qo -J1tkYXRhLWFrdGlvbj0iZ3J1cHBlLWxvZXNjaGVuIl0nKTsKICAgICAgICAgICAgaWYgKCFidG4g -fHwgYnRuLmRpc2FibGVkKSByZXR1cm47CiAgICAgICAgICAgIHZhciBpZHggPSBwYXJzZUludChi -dG4uZ2V0QXR0cmlidXRlKCdkYXRhLWlkeCcpLCAxMCk7CiAgICAgICAgICAgIHZhciBnciA9ICha -LmFkbWluLmdydXBwZW4gfHwgW10pW2lkeF07CiAgICAgICAgICAgIGlmICghZ3IpIHJldHVybjsK -ICAgICAgICAgICAgLy8gRG9wcGVsdGUgU2ljaGVyaGVpdDogUGVyc29uZW4tWmFlaGx1bmcgZXJu -ZXV0IHBydWVmZW4KICAgICAgICAgICAgdmFyIHphZWhsID0gZ3J1cHBlblBlcnNvbmVuWmFlaGxl -bigpOwogICAgICAgICAgICBpZiAoKHphZWhsW2dyLm5hbWVdIHx8IDApID4gMCkgewogICAgICAg -ICAgICAgICAgdG9hc3QoJ0dydXBwZSAiJyArIGdyLm5hbWUgKyAnIiBoYXQgbm9jaCAnICsgemFl -aGxbZ3IubmFtZV0gKyAnIGFrdGl2ZSBQZXJzb25lbiDigJQga2FubiBuaWNodCBnZWzDtnNjaHQg -d2VyZGVuJywgJ3dhcm51bmcnKTsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAg -fQogICAgICAgICAgICBiZXN0YWV0aWdlbignRGllbnN0Z3J1cHBlICInICsgZ3IubmFtZSArICci -ICgnICsgKGdyLmJlemVpY2hudW5nIHx8ICcnKSArICcpIHdpcmtsaWNoIGzDtnNjaGVuP1xuXG5E -aWUgR3J1cHBlIHdpcmQgbmljaHQgYXVzIFBlcnNvbmVuLUVpbnRyw6RnZW4gZW50ZmVybnQsIGRp -ZSBzaWUgYmVyZWl0cyBnZW51dHp0IGhhYmVuIChha3R1ZWxsOiBrZWluZSkg4oCUIG51ciBhdXMg -ZGVyIEFkbWluLUxpc3RlLicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgWi5hZG1pbi5n -cnVwcGVuLnNwbGljZShpZHgsIDEpOwogICAgICAgICAgICAgICAgZ3J1cHBlblRhYmVsbGVSZW5k -ZXJuKCk7CiAgICAgICAgICAgICAgICB0b2FzdCgnR3J1cHBlIGxva2FsIGVudGZlcm50IOKAlCBq -ZXR6dCAiU3BlaWNoZXJuIiBkcsO8Y2tlbicsICdpbmZvJyk7CiAgICAgICAgICAgIH0sIHsgdGl0 -ZWw6ICdHcnVwcGUgbMO2c2NoZW4nLCBqYURhbmdlcjogdHJ1ZSB9KTsKICAgICAgICB9KTsKCiAg -ICAgICAgdmFyIGJ0bkdydVNwZWljaGVybiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdidG4t -Z3J1cHBlbi1zcGVpY2hlcm4nKTsKICAgICAgICBpZiAoYnRuR3J1U3BlaWNoZXJuKSBidG5HcnVT -cGVpY2hlcm4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpIHsKICAgICAgICAg -ICAgdmFyIGt1ZXJJbnB1dHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuZ3J1cHBlLWt1 -ZXJ6ZWwtaW5wdXQnKTsKICAgICAgICAgICAgdmFyIGJleklucHV0cyAgPSBkb2N1bWVudC5xdWVy -eVNlbGVjdG9yQWxsKCcuZ3J1cHBlLWJlei1pbnB1dCcpOwogICAgICAgICAgICB2YXIgaGdJbnB1 -dHMgICA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5ncnVwcGUtaGctaW5wdXQnKTsKICAg -ICAgICAgICAgdmFyIHNmSW5wdXRzICAgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuZ3J1 -cHBlLXNmLWlucHV0Jyk7CiAgICAgICAgICAgIHZhciBuZXVlR3IgPSAoWi5hZG1pbi5ncnVwcGVu -IHx8IFtdKS5tYXAoZnVuY3Rpb24oZykgeyByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgZyk7IH0p -OwogICAgICAgICAgICB2YXIgcmVuYW1lTWFwID0ge307ICAgICAvLyBhbHRlc0t1ZXJ6ZWwgLT4g -bmV1ZXNLdWVyemVsCiAgICAgICAgICAgIHZhciBkdXBsaWNhdGVDaGVjayA9IHt9OwogICAgICAg -ICAgICB2YXIgZmVobGVyID0gbnVsbDsKCiAgICAgICAgICAgIGt1ZXJJbnB1dHMuZm9yRWFjaChm -dW5jdGlvbihpbnApIHsKICAgICAgICAgICAgICAgIGlmIChmZWhsZXIpIHJldHVybjsKICAgICAg -ICAgICAgICAgIHZhciBpZHggPSBwYXJzZUludChpbnAuZ2V0QXR0cmlidXRlKCdkYXRhLWlkeCcp -KTsKICAgICAgICAgICAgICAgIHZhciBhbHRLdWVyemVsID0gaW5wLmdldEF0dHJpYnV0ZSgnZGF0 -YS1hbHQnKTsKICAgICAgICAgICAgICAgIHZhciBuZXVLdWVyemVsID0gaW5wLnZhbHVlLnRyaW0o -KTsKICAgICAgICAgICAgICAgIGlmIChpc05hTihpZHgpIHx8ICFuZXVlR3JbaWR4XSkgcmV0dXJu -OwogICAgICAgICAgICAgICAgaWYgKCFuZXVLdWVyemVsKSB7IGZlaGxlciA9ICdLw7xyemVsIGRh -cmYgbmljaHQgbGVlciBzZWluIChaZWlsZSAnICsgKGlkeCArIDEpICsgJyknOyByZXR1cm47IH0K -ICAgICAgICAgICAgICAgIGlmIChkdXBsaWNhdGVDaGVja1tuZXVLdWVyemVsXSkgeyBmZWhsZXIg -PSAnS8O8cnplbCAiJyArIG5ldUt1ZXJ6ZWwgKyAnIiBpc3QgbWVocmZhY2ggdmVyZ2ViZW4nOyBy -ZXR1cm47IH0KICAgICAgICAgICAgICAgIGR1cGxpY2F0ZUNoZWNrW25ldUt1ZXJ6ZWxdID0gdHJ1 -ZTsKICAgICAgICAgICAgICAgIC8vIFJlbmFtZSBudXIgd2VubiBlcyBlaW4gZWNodGVzIGFsdGVz -IEt1ZXJ6ZWwgZ2FiIOKAlCBuZXVlIEdydXBwZW4gKGFsdEt1ZXJ6ZWwgPT09ICcnKQogICAgICAg -ICAgICAgICAgLy8gYnJhdWNoZW4ga2VpbmVuIENhc2NhZGUuCiAgICAgICAgICAgICAgICBpZiAo -YWx0S3VlcnplbCAmJiBuZXVLdWVyemVsICE9PSBhbHRLdWVyemVsKSByZW5hbWVNYXBbYWx0S3Vl -cnplbF0gPSBuZXVLdWVyemVsOwogICAgICAgICAgICAgICAgbmV1ZUdyW2lkeF0ubmFtZSA9IG5l -dUt1ZXJ6ZWw7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgICBpZiAoZmVobGVyKSB7IHRvYXN0 -KGZlaGxlciwgJ3dhcm51bmcnKTsgcmV0dXJuOyB9CgogICAgICAgICAgICBiZXpJbnB1dHMuZm9y -RWFjaChmdW5jdGlvbihpbnApIHsKICAgICAgICAgICAgICAgIHZhciBpZHggPSBwYXJzZUludChp -bnAuZ2V0QXR0cmlidXRlKCdkYXRhLWlkeCcpKTsKICAgICAgICAgICAgICAgIGlmICghaXNOYU4o -aWR4KSAmJiBuZXVlR3JbaWR4XSkgbmV1ZUdyW2lkeF0uYmV6ZWljaG51bmcgPSBpbnAudmFsdWUu -dHJpbSgpOwogICAgICAgICAgICB9KTsKICAgICAgICAgICAgaGdJbnB1dHMuZm9yRWFjaChmdW5j -dGlvbihpbnApIHsKICAgICAgICAgICAgICAgIHZhciBpZHggPSBwYXJzZUludChpbnAuZ2V0QXR0 -cmlidXRlKCdkYXRhLWlkeCcpKTsKICAgICAgICAgICAgICAgIGlmICghaXNOYU4oaWR4KSAmJiBu -ZXVlR3JbaWR4XSkgbmV1ZUdyW2lkeF0uaGludGVyZ3J1bmQgPSBpbnAudmFsdWU7CiAgICAgICAg -ICAgIH0pOwogICAgICAgICAgICBzZklucHV0cy5mb3JFYWNoKGZ1bmN0aW9uKGlucCkgewogICAg -ICAgICAgICAgICAgdmFyIGlkeCA9IHBhcnNlSW50KGlucC5nZXRBdHRyaWJ1dGUoJ2RhdGEtaWR4 -JykpOwogICAgICAgICAgICAgICAgaWYgKCFpc05hTihpZHgpICYmIG5ldWVHcltpZHhdKSBuZXVl -R3JbaWR4XS5zY2hyaWZ0ID0gaW5wLnZhbHVlOwogICAgICAgICAgICB9KTsKICAgICAgICAgICAg -Ly8gIkluIFBsYW51bmcgc2ljaHRiYXIiLUNoZWNrYm94IGVpbmxlc2VuIChEZWZhdWx0IHRydWUp -LgogICAgICAgICAgICB2YXIgaW5wbElucHV0cyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwo -Jy5ncnVwcGUtaW5wbGFudW5nLWlucHV0Jyk7CiAgICAgICAgICAgIGlucGxJbnB1dHMuZm9yRWFj -aChmdW5jdGlvbihpbnApIHsKICAgICAgICAgICAgICAgIHZhciBpZHggPSBwYXJzZUludChpbnAu -Z2V0QXR0cmlidXRlKCdkYXRhLWlkeCcpKTsKICAgICAgICAgICAgICAgIGlmICghaXNOYU4oaWR4 -KSAmJiBuZXVlR3JbaWR4XSkgbmV1ZUdyW2lkeF0uaW5QbGFudW5nID0gISFpbnAuY2hlY2tlZDsK -ICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIC8vICJBbnNwcmVjaHBhcnRuZXIgbcO2Z2xpY2gi -LUNoZWNrYm94IGVpbmxlc2VuIChEZWZhdWx0IHRydWUpLgogICAgICAgICAgICAvLyBQZW5kYW50 -IHp1ciBpblBsYW51bmctTG9naWs6IHN0ZXVlcnQsIG9iIFBlcnNvbmVuIGRpZXNlciBHcnVwcGUK -ICAgICAgICAgICAgLy8gaW0gUGVyc29uYWwtVGFiIGFscyBBbnNwcmVjaHBhcnRuZXIgbWFya2ll -cnQgd2VyZGVuIGR1ZXJmZW4KICAgICAgICAgICAgLy8gdW5kIGltIEluZm8tTW9kYWwgbWl0IE1h -aWwtQnV0dG9uIGVyc2NoZWluZW4uCiAgICAgICAgICAgIHZhciBkYXJmQXBJbnB1dHMgPSBkb2N1 -bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuZ3J1cHBlLWRhcmZhcC1pbnB1dCcpOwogICAgICAgICAg -ICBkYXJmQXBJbnB1dHMuZm9yRWFjaChmdW5jdGlvbihpbnApIHsKICAgICAgICAgICAgICAgIHZh -ciBpZHggPSBwYXJzZUludChpbnAuZ2V0QXR0cmlidXRlKCdkYXRhLWlkeCcpKTsKICAgICAgICAg -ICAgICAgIGlmICghaXNOYU4oaWR4KSAmJiBuZXVlR3JbaWR4XSkgbmV1ZUdyW2lkeF0uZGFyZkFu -c3ByZWNocGFydG5lciA9ICEhaW5wLmNoZWNrZWQ7CiAgICAgICAgICAgIH0pOwoKICAgICAgICAg -ICAgdmFyIHJlbmFtZUtleXMgPSBPYmplY3Qua2V5cyhyZW5hbWVNYXApOwogICAgICAgICAgICBm -dW5jdGlvbiBuYWNoU3BlaWNoZXJuKCkgewogICAgICAgICAgICAgICAgWi5hZG1pbi5ncnVwcGVu -ID0gbmV1ZUdyOwogICAgICAgICAgICAgICAgWi5ncnVwcGVuTWFwID0ge307CiAgICAgICAgICAg -ICAgICBuZXVlR3IuZm9yRWFjaChmdW5jdGlvbihncikgewogICAgICAgICAgICAgICAgICAgIFou -Z3J1cHBlbk1hcFtnci5uYW1lXSA9IHsgaGludGVyZ3J1bmQ6IGdyLmhpbnRlcmdydW5kLCBzY2hy -aWZ0OiBnci5zY2hyaWZ0LCBiZXplaWNobnVuZzogZ3IuYmV6ZWljaG51bmcgfTsKICAgICAgICAg -ICAgICAgIH0pOwogICAgICAgICAgICAgICAgLy8gaW5QbGFudW5nLUZsYWcgKG9kZXIgVW1iZW5l -bm51bmcpIGthbm4gZGllIFNpY2h0YmFya2VpdAogICAgICAgICAgICAgICAgLy8gZ2FuemVyIEdy -dXBwZW4gdmVyYWVuZGVybiDigJQgUGVyc29uZW4tRmlsdGVyIG5ldSBncmVpZmVuCiAgICAgICAg -ICAgICAgICAvLyBsYXNzZW4gdW5kIFBsYW50YWZlbCBrb21wbGV0dCBuZXUgYXVmYmF1ZW4uCiAg -ICAgICAgICAgICAgICBwZXJzb25lbk5ldUF1ZmJhdWVuKCk7CiAgICAgICAgICAgICAgICBpZiAo -dHlwZW9mIG5hbWVuUmVuZGVybiA9PT0gJ2Z1bmN0aW9uJykgbmFtZW5SZW5kZXJuKCk7CiAgICAg -ICAgICAgICAgICBpZiAodHlwZW9mIGtvcGZSZW5kZXJuID09PSAnZnVuY3Rpb24nKSBrb3BmUmVu -ZGVybigpOwogICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBkYXRlbkdyaWRSZW5kZXJuID09PSAn -ZnVuY3Rpb24nKSBkYXRlbkdyaWRSZW5kZXJuKCk7CiAgICAgICAgICAgICAgICBwZXJzb25hbFRh -YmVsbGVSZW5kZXJuKCk7CiAgICAgICAgICAgICAgICBncnVwcGVuVGFiZWxsZVJlbmRlcm4oKTsK -ICAgICAgICAgICAgICAgIHZhciBzdWZmaXggPSByZW5hbWVLZXlzLmxlbmd0aCA/ICcgKCcgKyBy -ZW5hbWVLZXlzLmxlbmd0aCArICcgS8O8cnplbCB1bWJlbmFubnQgKyBQZXJzb25lbiBtaWdyaWVy -dCknIDogJyc7CiAgICAgICAgICAgICAgICBkaXJ0eVNldHplbignZ3J1cHBlbicsIGZhbHNlKTsK -ICAgICAgICAgICAgICAgIHRhYkRyYWZ0TG9lc2NoZW4oJ2dydXBwZW4nKTsKICAgICAgICAgICAg -ICAgIHRvYXN0KCdEaWVuc3RncnVwcGVuIGdlc3BlaWNoZXJ0JyArIHN1ZmZpeCwgJ2VyZm9sZycp -OwogICAgICAgICAgICB9CgogICAgICAgICAgICBmdW5jdGlvbiBhdXNmdWVocmVuKCkgewogICAg -ICAgICAgICAgICAgYXBpUHV0KCcvYXBpL2FkbWluJywgT2JqZWN0LmFzc2lnbih7fSwgWi5hZG1p -biwgeyBncnVwcGVuOiBuZXVlR3IgfSkpLnRoZW4oZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAg -ICAgICAgaWYgKCFyZW5hbWVLZXlzLmxlbmd0aCkgeyBuYWNoU3BlaWNoZXJuKCk7IHJldHVybjsg -fQogICAgICAgICAgICAgICAgICAgIChaLnBsYW51bmcucGVyc29uZW4gfHwgW10pLmZvckVhY2go -ZnVuY3Rpb24ocCkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAocC5ncnVwcGUgJiYgcmVu -YW1lTWFwW3AuZ3J1cHBlXSkgcC5ncnVwcGUgPSByZW5hbWVNYXBbcC5ncnVwcGVdOwogICAgICAg -ICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgIHJldHVybiBhcGlQdXQoJy9hcGkv -cGxhbnVuZycsIFoucGxhbnVuZykudGhlbihuYWNoU3BlaWNoZXJuKTsKICAgICAgICAgICAgICAg +Ly8gPT09PT0gVXBkYXRlLUJlcmVpY2ggKFN1cGVyVXNlcik6IFN0YXR1cywgQ2hhbmdlbG9nLCBG +b3J0c2Nocml0dCwgU2VsYnN0dGVzdCA9PT09PQogICAgdmFyIF91cGRhdGVQb2xsVGltZXIgPSBu +dWxsOwogICAgZnVuY3Rpb24gX3VwZEVzYyhzKSB7IHZhciBkID0gZG9jdW1lbnQuY3JlYXRlRWxl +bWVudCgnZGl2Jyk7IGQudGV4dENvbnRlbnQgPSBTdHJpbmcocyA9PSBudWxsID8gJycgOiBzKTsg +cmV0dXJuIGQuaW5uZXJIVE1MOyB9CiAgICAvLyBFc2NhcGluZyB6dWVyc3QgKFhTUy1zaWNoZXIp +LCBkYW5uIG51ciAqKmZldHQqKiBhbHMgPHN0cm9uZz4genVsYXNzZW4uCiAgICBmdW5jdGlvbiBf +dXBkSW5saW5lKHMpIHsgcmV0dXJuIF91cGRFc2MocykucmVwbGFjZSgvXCpcKihbXipdKylcKlwq +L2csICc8c3Ryb25nPiQxPC9zdHJvbmc+Jyk7IH0KICAgIGZ1bmN0aW9uIF91cGRNZChtZCkgewog +ICAgICAgIHZhciBvdXQgPSBbXSwgaW5VbCA9IGZhbHNlOwogICAgICAgIFN0cmluZyhtZCkuc3Bs +aXQoJ1xuJykuZm9yRWFjaChmdW5jdGlvbihsbikgewogICAgICAgICAgICB2YXIgdCA9IGxuLnJl +cGxhY2UoL1xzKyQvLCAnJyk7CiAgICAgICAgICAgIGlmICgvXiN7MSw2fVxzLy50ZXN0KHQpKSB7 +IGlmIChpblVsKSB7IG91dC5wdXNoKCc8L3VsPicpOyBpblVsID0gZmFsc2U7IH0gdmFyIGwgPSBN +YXRoLm1pbih0Lm1hdGNoKC9eIysvKVswXS5sZW5ndGggKyAyLCA2KTsgb3V0LnB1c2goJzxoJyAr +IGwgKyAnPicgKyBfdXBkSW5saW5lKHQucmVwbGFjZSgvXiMrXHMvLCAnJykpICsgJzwvaCcgKyBs +ICsgJz4nKTsgfQogICAgICAgICAgICBlbHNlIGlmICgvXlstKl1ccy8udGVzdCh0KSkgeyBpZiAo +IWluVWwpIHsgb3V0LnB1c2goJzx1bD4nKTsgaW5VbCA9IHRydWU7IH0gb3V0LnB1c2goJzxsaT4n +ICsgX3VwZElubGluZSh0LnJlcGxhY2UoL15bLSpdXHMvLCAnJykpICsgJzwvbGk+Jyk7IH0KICAg +ICAgICAgICAgZWxzZSBpZiAodCA9PT0gJycpIHsgaWYgKGluVWwpIHsgb3V0LnB1c2goJzwvdWw+ +Jyk7IGluVWwgPSBmYWxzZTsgfSB9CiAgICAgICAgICAgIGVsc2UgeyBpZiAoaW5VbCkgeyBvdXQu +cHVzaCgnPC91bD4nKTsgaW5VbCA9IGZhbHNlOyB9IG91dC5wdXNoKCc8cD4nICsgX3VwZElubGlu +ZSh0KSArICc8L3A+Jyk7IH0KICAgICAgICB9KTsKICAgICAgICBpZiAoaW5VbCkgb3V0LnB1c2go +JzwvdWw+Jyk7CiAgICAgICAgcmV0dXJuIG91dC5qb2luKCcnKTsKICAgIH0KICAgIGZ1bmN0aW9u +IHVwZGF0ZUJlcmVpY2hSZW5kZXJuKCkgewogICAgICAgIHZhciBib3ggPSBkb2N1bWVudC5nZXRF +bGVtZW50QnlJZCgndXBkYXRlLXN0YXR1cy1ib3gnKTsKICAgICAgICBpZiAoIWJveCkgcmV0dXJu +OwogICAgICAgIHZhciBjbEJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtY2hh +bmdlbG9nJyk7CiAgICAgICAgdmFyIGFrdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1 +cGRhdGUtYWt0aW9uJyk7CiAgICAgICAgdmFyIHN0YXJ0QnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVu +dEJ5SWQoJ2J0bi11cGRhdGUtc3RhcnQnKTsKICAgICAgICBpZiAoc3RhcnRCdG4pIHN0YXJ0QnRu +Lm9uY2xpY2sgPSBfdXBkYXRlU3RhcnRLbGljazsKICAgICAgICBib3guY2xhc3NOYW1lID0gJ3Vw +ZGF0ZS1ib3gnOwogICAgICAgIGJveC50ZXh0Q29udGVudCA9ICdQcsO8ZmUgUmVwb3NpdG9yeSDi +gKYnOwogICAgICAgIGNsQm94LmNsYXNzTGlzdC5hZGQoJ3ZlcnN0ZWNrdCcpOwogICAgICAgIGFr +dGlvbi5jbGFzc0xpc3QuYWRkKCd2ZXJzdGVja3QnKTsKICAgICAgICBhcGkoJy9hcGkvdXBkYXRl +L3N0YXR1cycpLnRoZW4oZnVuY3Rpb24oZCkgewogICAgICAgICAgICBpZiAoZC5tYWludGVuYW5j +ZSAmJiBkLm1haW50ZW5hbmNlLmxvY2tlZCkgeyBfdXBkYXRlRm9ydHNjaHJpdHRQb2xsZW4oKTsg +fQogICAgICAgICAgICB2YXIgbG9rYWwgPSBkLmxvY2FsVmVyc2lvbiB8fCAnPycsIHJlbW90ZSA9 +IGQucmVtb3RlVmVyc2lvbiB8fCAnPyc7CiAgICAgICAgICAgIGlmIChkLnVwZGF0ZUF2YWlsYWJs +ZSkgewogICAgICAgICAgICAgICAgYm94LmNsYXNzTmFtZSA9ICd1cGRhdGUtYm94IHVwZGF0ZS1i +b3gtd2Fybic7CiAgICAgICAgICAgICAgICBib3guaW5uZXJIVE1MID0gJzxzdHJvbmc+VXBkYXRl +IHZlcmbDvGdiYXI6PC9zdHJvbmc+IGFrdHVlbGwgdicgKyBfdXBkRXNjKGxva2FsKSArICcgJnJh +cnI7IG5ldSA8c3Ryb25nPnYnICsgX3VwZEVzYyhyZW1vdGUpICsgJzwvc3Ryb25nPic7CiAgICAg +ICAgICAgICAgICB2YXIgY2wgPSBkLmNoYW5nZWxvZyB8fCB7fSwgaHRtbCA9ICcnOwogICAgICAg +ICAgICAgICAgaWYgKGNsLmZvcm1hdCA9PT0gJ21hcmtkb3duJykgeyBodG1sID0gJzxoND5Jbmhh +bHQgZGllc2VzIFVwZGF0ZXM8L2g0PicgKyBfdXBkTWQoY2wudGV4dCk7IH0KICAgICAgICAgICAg +ICAgIGVsc2UgaWYgKGNsLmZvcm1hdCA9PT0gJ2ZpbGVzJykgeyBodG1sID0gJzxoND5EaWVzZSBE +YXRlaWVuIHdlcmRlbiBha3R1YWxpc2llcnQgKCcgKyAoY2wuZmlsZXMgfHwgW10pLmxlbmd0aCAr +ICcpPC9oND48dWwgY2xhc3M9InVwZGF0ZS1maWxlbGlzdCI+JyArIChjbC5maWxlcyB8fCBbXSku +bWFwKGZ1bmN0aW9uKGYpIHsgcmV0dXJuICc8bGk+JyArIF91cGRFc2MoZikgKyAnPC9saT4nOyB9 +KS5qb2luKCcnKSArICc8L3VsPic7IH0KICAgICAgICAgICAgICAgIGVsc2UgeyBodG1sID0gJzxw +PicgKyBfdXBkRXNjKGNsLnRleHQgfHwgJycpICsgJzwvcD4nOyB9CiAgICAgICAgICAgICAgICBj +bEJveC5pbm5lckhUTUwgPSBodG1sOyBjbEJveC5jbGFzc0xpc3QucmVtb3ZlKCd2ZXJzdGVja3Qn +KTsKICAgICAgICAgICAgICAgIGFrdGlvbi5jbGFzc0xpc3QucmVtb3ZlKCd2ZXJzdGVja3QnKTsK +ICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGJveC5jbGFzc05hbWUgPSAndXBk +YXRlLWJveCB1cGRhdGUtYm94LW9rJzsKICAgICAgICAgICAgICAgIGJveC5pbm5lckhUTUwgPSAn +JiMxMDAwMzsgQWxsZXMgaW4gT3JkbnVuZyAmbWRhc2g7IFZlcnNpb24gdicgKyBfdXBkRXNjKGxv +a2FsKSArICcgaXN0IGFrdHVlbGwuJzsKICAgICAgICAgICAgfQogICAgICAgIH0pLmNhdGNoKGZ1 +bmN0aW9uKGUpIHsKICAgICAgICAgICAgYm94LmNsYXNzTmFtZSA9ICd1cGRhdGUtYm94IHVwZGF0 +ZS1ib3gtZXJyJzsKICAgICAgICAgICAgYm94LnRleHRDb250ZW50ID0gJ1VwZGF0ZS1TdGF0dXMg +bmljaHQgYWJydWZiYXI6ICcgKyBlLm1lc3NhZ2U7CiAgICAgICAgfSk7CiAgICB9CiAgICBmdW5j +dGlvbiBfdXBkYXRlU3RhcnRLbGljaygpIHsKICAgICAgICBpZiAoIXdpbmRvdy5jb25maXJtKCdV +cGRhdGUgamV0enQgaW5zdGFsbGllcmVuP1xuXG5FcyB3aXJkIHp1ZXJzdCBlaW5lIHZvbGxzdMOk +bmRpZ2UgU2ljaGVydW5nIGVyc3RlbGx0LCBkYW5uIGRhcyBVcGRhdGUgZWluZ2VzcGllbHQgdW5k +IGVpbiBTZWxic3R0ZXN0IGF1c2dlZsO8aHJ0LiBXw6RocmVuZCBkZXMgVm9yZ2FuZ3MgaXN0IGRh +cyBTeXN0ZW0gZ2VzcGVycnQuJykpIHJldHVybjsKICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50 +QnlJZCgndXBkYXRlLWFrdGlvbicpLmNsYXNzTGlzdC5hZGQoJ3ZlcnN0ZWNrdCcpOwogICAgICAg +IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtZm9ydHNjaHJpdHQnKS5jbGFzc0xpc3Qu +cmVtb3ZlKCd2ZXJzdGVja3QnKTsKICAgICAgICBhcGlQb3N0KCcvYXBpL3VwZGF0ZS9zdGFydCcs +IHt9KS50aGVuKGZ1bmN0aW9uKGQpIHsKICAgICAgICAgICAgaWYgKGQgJiYgZC5zdGFydGVkID09 +PSBmYWxzZSkgdG9hc3QoJ1VwZGF0ZSBsw6R1ZnQgYmVyZWl0cy4nLCAnaW5mbycpOwogICAgICAg +ICAgICBfdXBkYXRlRm9ydHNjaHJpdHRQb2xsZW4oKTsKICAgICAgICB9KS5jYXRjaChmdW5jdGlv +bihlKSB7IHRvYXN0KCdVcGRhdGUtU3RhcnQgZmVobGdlc2NobGFnZW46ICcgKyBlLm1lc3NhZ2Us +ICdmZWhsZXInKTsgX3VwZGF0ZUZvcnRzY2hyaXR0UG9sbGVuKCk7IH0pOwogICAgfQogICAgZnVu +Y3Rpb24gX3VwZGF0ZUZvcnRzY2hyaXR0UG9sbGVuKCkgewogICAgICAgIHZhciBmb3J0ID0gZG9j +dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwZGF0ZS1mb3J0c2Nocml0dCcpOwogICAgICAgIGlmIChm +b3J0KSBmb3J0LmNsYXNzTGlzdC5yZW1vdmUoJ3ZlcnN0ZWNrdCcpOwogICAgICAgIHZhciBiYXIg +PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBkYXRlLXByb2dyZXNzLWJhcicpOwogICAgICAg +IHZhciB0eHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBkYXRlLXByb2dyZXNzLXRleHQn +KTsKICAgICAgICB2YXIgbG9nRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBkYXRlLWxv +ZycpOwogICAgICAgIHZhciBzdEVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwZGF0ZS1z +ZWxmdGVzdCcpOwogICAgICAgIGlmIChfdXBkYXRlUG9sbFRpbWVyKSBjbGVhckludGVydmFsKF91 +cGRhdGVQb2xsVGltZXIpOwogICAgICAgIGZ1bmN0aW9uIHRpY2soKSB7CiAgICAgICAgICAgIGFw +aSgnL2FwaS91cGRhdGUvcHJvZ3Jlc3MnKS50aGVuKGZ1bmN0aW9uKGQpIHsKICAgICAgICAgICAg +ICAgIGJhci5zdHlsZS53aWR0aCA9IChkLnBlcmNlbnQgfHwgMCkgKyAnJSc7CiAgICAgICAgICAg +ICAgICBiYXIuY2xhc3NOYW1lID0gJ3VwZGF0ZS1wcm9ncmVzcy1iYXInICsgKGQuc3RhdGUgPT09 +ICdmYWlsZWQnID8gJyB1cGRhdGUtcHJvZ3Jlc3MtZmFpbCcgOiAoZC5zdGF0ZSA9PT0gJ2RvbmUn +ID8gJyB1cGRhdGUtcHJvZ3Jlc3MtZG9uZScgOiAnJykpOwogICAgICAgICAgICAgICAgdHh0LnRl +eHRDb250ZW50ID0gJ1snICsgKGQucGVyY2VudCB8fCAwKSArICclXSAnICsgKGQubWVzc2FnZSB8 +fCAnJyk7CiAgICAgICAgICAgICAgICBpZiAoZC5sb2cpIGxvZ0VsLnRleHRDb250ZW50ID0gZC5s +b2cubWFwKGZ1bmN0aW9uKGwpIHsgcmV0dXJuIGwubXNnOyB9KS5qb2luKCdcbicpOwogICAgICAg +ICAgICAgICAgaWYgKGQuc2VsZnRlc3QgJiYgZC5zZWxmdGVzdC5sZW5ndGgpIHsKICAgICAgICAg +ICAgICAgICAgICBzdEVsLmlubmVySFRNTCA9ICc8aDQ+U2VsYnN0dGVzdDwvaDQ+JyArIGQuc2Vs +ZnRlc3QubWFwKGZ1bmN0aW9uKHIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICc8 +ZGl2IGNsYXNzPSJzdC1yb3cgJyArIChyLm9rID8gJ3N0LW9rJyA6ICdzdC1mYWlsJykgKyAnIj4n +ICsgKHIub2sgPyAnJiMxMDAwMzsnIDogJyYjMTAwMDc7JykgKyAnICcgKyBfdXBkRXNjKHIubmFt +ZSkgKyAnIDxzcGFuIGNsYXNzPSJzdC1kZXRhaWwiPicgKyBfdXBkRXNjKHIuZGV0YWlsKSArICc8 +L3NwYW4+PC9kaXY+JzsKICAgICAgICAgICAgICAgICAgICB9KS5qb2luKCcnKTsKICAgICAgICAg +ICAgICAgIH0KICAgICAgICAgICAgICAgIGlmIChkLnN0YXRlID09PSAnZG9uZScpIHsKICAgICAg +ICAgICAgICAgICAgICBjbGVhckludGVydmFsKF91cGRhdGVQb2xsVGltZXIpOyBfdXBkYXRlUG9s +bFRpbWVyID0gbnVsbDsKICAgICAgICAgICAgICAgICAgICB0b2FzdCgnVXBkYXRlIGFiZ2VzY2hs +b3NzZW46IHYnICsgKGQudG9WZXJzaW9uIHx8ICcnKSArICcg4oCUIFN5c3RlbSBmcmVpZ2VnZWJl +bi4nLCAnZXJmb2xnJywgeyBkYXVlcjogMTIwMDAgfSk7CiAgICAgICAgICAgICAgICAgICAgc2V0 +VGltZW91dCh1cGRhdGVCZXJlaWNoUmVuZGVybiwgMTgwMCk7CiAgICAgICAgICAgICAgICB9IGVs +c2UgaWYgKGQuc3RhdGUgPT09ICdmYWlsZWQnKSB7CiAgICAgICAgICAgICAgICAgICAgY2xlYXJJ +bnRlcnZhbChfdXBkYXRlUG9sbFRpbWVyKTsgX3VwZGF0ZVBvbGxUaW1lciA9IG51bGw7CiAgICAg +ICAgICAgICAgICAgICAgdHh0LnRleHRDb250ZW50ID0gJ0ZFSExHRVNDSExBR0VOOiAnICsgKGQu +ZXJyb3IgfHwgJycpICsgJyDigJQgdm9yaGVyaWdlciBTdGFuZCB3aWVkZXJoZXJnZXN0ZWxsdC4n +OwogICAgICAgICAgICAgICAgICAgIHRvYXN0KCdVcGRhdGUgZmVobGdlc2NobGFnZW4g4oCUIGF1 +dG9tYXRpc2NoZXIgUm9sbGJhY2sgYXVzZ2Vmw7xocnQuJywgJ2ZlaGxlcicsIHsgZGF1ZXI6IDE1 +MDAwIH0pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbigp +IHt9KTsKICAgICAgICB9CiAgICAgICAgdGljaygpOwogICAgICAgIF91cGRhdGVQb2xsVGltZXIg +PSBzZXRJbnRlcnZhbCh0aWNrLCAxMDAwKTsKICAgIH0KCiAgICAvLyBibGVpYnQgZG9ydCwgd28g +ZXIgZ2VyYWRlIGlzdC4gV2VubiBnZXJhZGUgZWluIENoZWNrLU1vZGFsIG9kZXIKICAgIC8vIElt +cGVyc29uYXRpb24tQmFubmVyIGFrdGl2IGlzdCwgdWViZXJzcHJpbmdlbiB3aXIgZGllIEFrdHVh +bGlzaWVydW5nLAogICAgLy8gZGFtaXQga2VpbmUgQXJiZWl0IHZlcmxvcmVuIGdlaHQgYnp3LiBk +ZXIgVGVzdC1Lb250ZXh0IGludGFrdCBibGVpYnQuCiAgICBmdW5jdGlvbiBhZG1pbkhvdFJlbG9h +ZCgpIHsKICAgICAgICBpZiAoZGlydHlBa3RpdmUgJiYgZGlydHlBa3RpdmUoKS5sZW5ndGggPiAw +KSByZXR1cm47ICAvLyBVc2VyIGJlYXJiZWl0ZXQgZ2VyYWRlIHdhcwogICAgICAgIGlmIChpbXBl +cnNvbmF0aW9uQWt0aXYoKSkgcmV0dXJuOyAgLy8gaW0gSW1wZXJzb25hdGlvbnMtTW9kdXMKICAg +ICAgICBQcm9taXNlLmFsbChbYXBpKCcvYXBpL2FkbWluJyksIGFwaSgnL2FwaS9pbmZvJyldKS50 +aGVuKGZ1bmN0aW9uKHIpIHsKICAgICAgICAgICAgdmFyIGFkbWluTmV1ID0gYWRtaW5MaXN0ZW5O +b3JtYWxpc2llcmVuKHJbMF0pOwogICAgICAgICAgICB2YXIgaW5mbyA9IHJbMV07CiAgICAgICAg +ICAgIHZhciByb2xsZW5EaWZmID0gKFoucmVjaHRlICYmIFoucmVjaHRlLnJvbGxlKSAhPT0gaW5m +by5yb2xsZTsKICAgICAgICAgICAgWi5hZG1pbiA9IGFkbWluTmV1OwogICAgICAgICAgICBaLnJl +Y2h0ZSA9IHJlY2h0ZUF1c0luZm8oaW5mbyk7CiAgICAgICAgICAgIC8vIENvZGUtTWFwICsgR3J1 +cHBlbi1NYXAgbmV1IGF1ZmJhdWVuLCBmYWxscyBTY2hpY2h0Y29kZXMvR3J1cHBlbiBtaXQtZ2Vh +ZW5kZXJ0IHd1cmRlbgogICAgICAgICAgICBaLmNvZGVNYXAgPSB7fTsKICAgICAgICAgICAgKFou +YWRtaW4uc2NoaWNodGNvZGVzIHx8IFtdKS5mb3JFYWNoKGZ1bmN0aW9uKHNjKSB7CiAgICAgICAg +ICAgICAgICBaLmNvZGVNYXBbc2MuY29kZV0gPSB7IGhpbnRlcmdydW5kOiBzYy5oaW50ZXJncnVu +ZCwgc2NocmlmdDogc2Muc2NocmlmdCwga3VlcnplbDogc2MuY29kZSB9OwogICAgICAgICAgICB9 +KTsKICAgICAgICAgICAgWi5ncnVwcGVuTWFwID0ge307CiAgICAgICAgICAgIChaLmFkbWluLmdy +dXBwZW4gfHwgW10pLmZvckVhY2goZnVuY3Rpb24oZ3IpIHsKICAgICAgICAgICAgICAgIFouZ3J1 +cHBlbk1hcFtnci5uYW1lXSA9IHsgaGludGVyZ3J1bmQ6IGdyLmhpbnRlcmdydW5kLCBzY2hyaWZ0 +OiBnci5zY2hyaWZ0LCBiZXplaWNobnVuZzogZ3IuYmV6ZWljaG51bmcgfTsKICAgICAgICAgICAg +fSk7CiAgICAgICAgICAgIGJlemVpY2hudW5nZW5BbndlbmRlbigpOwogICAgICAgICAgICBtYXJr +aWVydW5nZW5BbndlbmRlbigpOwogICAgICAgICAgICAvLyBPcHRpb25hbC1Nb2R1bGUgbmFjaGxh +ZGVuLCBmYWxscyBkZXIgVXNlciBnZXJhZGUgZnJpc2NoCiAgICAgICAgICAgIC8vIFN0YXRpc3Rp +ay0vTG9nYnVjaC1SZWNodGUgYmVrb21tZW4gaGF0IChpZGVtcG90ZW50OiBiZXJlaXRzCiAgICAg +ICAgICAgIC8vIGdlbGFkZW5lIE1vZHVsZSB3ZXJkZW4gdWViZXJzcHJ1bmdlbikuCiAgICAgICAg +ICAgIG9wdGlvbmFsZU1vZHVsZUxhZGVuKCk7CiAgICAgICAgICAgIG5hdlNpY2h0YmFya2VpdEFu +d2VuZGVuKCk7CiAgICAgICAgICAgIGFkbWluU3VidGFiRmlsdGVyQW53ZW5kZW4oKTsKICAgICAg +ICAgICAgaWYgKHR5cGVvZiBhZG1pblJlbmRlcm4gPT09ICdmdW5jdGlvbicpIGFkbWluUmVuZGVy +bigpOwogICAgICAgICAgICAvLyBUYWctSW5mb3MgKEZlaWVydGFnZSwgRmVyaWVuLCBTb25kZXJ0 +ZXJtaW5lKSBhdWYgQmFzaXMgZGVyIG5ldWVuCiAgICAgICAgICAgIC8vIGFkbWluLmpzb24gbmV1 +IGJlcmVjaG5lbiwgZGFtaXQgYWxsZSBhbmRlcmVuIFVzZXIgZGllIEFlbmRlcnVuZ2VuCiAgICAg +ICAgICAgIC8vIG9obmUgRjUgc2VoZW4g4oCUIGtvcGZSZW5kZXJuIGxpZXN0IGF1cyBaLnRhZ0lu +Zm9zLgogICAgICAgICAgICBpZiAodHlwZW9mIHRhZ0luZm9zQmVyZWNobmVuID09PSAnZnVuY3Rp +b24nKSB0YWdJbmZvc0JlcmVjaG5lbigpOwogICAgICAgICAgICBpZiAodHlwZW9mIGtvcGZSZW5k +ZXJuID09PSAnZnVuY3Rpb24nKSBrb3BmUmVuZGVybigpOwogICAgICAgICAgICBpZiAocm9sbGVu +RGlmZikgdG9hc3QoJ0RlaW5lIFJlY2h0ZSB3dXJkZW4gZ2VyYWRlIGFrdHVhbGlzaWVydCcsICdp +bmZvJyk7CiAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oKSB7IC8qIHN0dW1tIOKAlCBWZXJzdWNo +IHNwYWV0ZXIgdWViZXIgbmFlY2hzdGVuIEhlYXJ0YmVhdCAqLyB9KTsKICAgIH0KCiAgICAvLyBw +bGFudW5nSG90UmVsb2FkOiBsZWljaHRnZXdpY2h0aWdlIFZhcmlhbnRlIGZ1ZXIgcGxhbnVuZy5q +c29uLW10aW1lLQogICAgLy8gQWVuZGVydW5nZW4uIFdpcmQgdm9tIGhlYXJ0YmVhdC13b3JrZXIg +Z2V0cmlnZ2VydCwgc29iYWxkIHBsYW51bmcuanNvbgogICAgLy8gc2VydmVyc2VpdGlnIHZlcmFl +bmRlcnQgd3VyZGUuIExpdmUtU3luYyBkZWNrdCBaZWxsLS9Lb21tZW50YXItVXBkYXRlcwogICAg +Ly8gYmVyZWl0cyBhYiDigJQgaGllciBnZWh0IGVzIG51ciBkYXJ1bSwgZWlnZW5lIGVkaXRSZWNo +dGUvc2VoZW4tCiAgICAvLyBBZW5kZXJ1bmdlbiBtaXR6dWJla29tbWVuLiBEYWhlciBwb2xsZW4g +d2lyIG51ciAvYXBpL2luZm8gdW5kIHNjaGF1ZW4sCiAgICAvLyBvYiB1bnNlcmUgZWlnZW5lbiBS +ZWNodGUgc2ljaCBhZW5kZXJuOyB3ZW5uIGphLCBuZXUgcmVuZGVybi4KICAgIC8vIChDaGVycnkt +UGljayAxYWVmZTI2IEJ1ZyAjMy4pCiAgICBmdW5jdGlvbiBwbGFudW5nSG90UmVsb2FkKCkgewog +ICAgICAgIGlmIChkaXJ0eUFrdGl2ZSAmJiBkaXJ0eUFrdGl2ZSgpLmxlbmd0aCA+IDApIHJldHVy +bjsKICAgICAgICBpZiAoaW1wZXJzb25hdGlvbkFrdGl2KCkpIHJldHVybjsKICAgICAgICBhcGko +Jy9hcGkvaW5mbycpLnRoZW4oZnVuY3Rpb24oaW5mbykgewogICAgICAgICAgICBpZiAoIWluZm8p +IHJldHVybjsKICAgICAgICAgICAgaWYgKGluZm8udXBkYXRlQXZhaWxhYmxlICYmICFfdXBkYXRl +VG9hc3RTaG93bikgewogICAgICAgICAgICAgICAgX3VwZGF0ZVRvYXN0U2hvd24gPSB0cnVlOwog +ICAgICAgICAgICAgICAgdG9hc3QoCiAgICAgICAgICAgICAgICAgICAgJ1VwZGF0ZSB2ZXJmw7xn +YmFyOiB2JyArIChpbmZvLnJlbW90ZVZlcnNpb24gfHwgJz8nKSArCiAgICAgICAgICAgICAgICAg +ICAgJyDigJQgdXBkYXRlLmJhdCBhdXNmw7xocmVuIHVuZCBTZXJ2ZXIgbmV1IHN0YXJ0ZW4nLAog +ICAgICAgICAgICAgICAgICAgICdpbmZvJywgeyBkYXVlcjogMjAwMDAgfQogICAgICAgICAgICAg +ICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICB2YXIgYWx0UmVjaHRlID0gWi5yZWNodGUg +fHwge307CiAgICAgICAgICAgIHZhciBhbHRTZXJpYWwgPSBKU09OLnN0cmluZ2lmeSh7CiAgICAg +ICAgICAgICAgICBzZWhlbjogICAgIGFsdFJlY2h0ZS5zZWhlbiwKICAgICAgICAgICAgICAgIGVk +aXRpZXJlbjogYWx0UmVjaHRlLmVkaXRpZXJlbiwKICAgICAgICAgICAgICAgIHJvbGxlOiAgICAg +YWx0UmVjaHRlLnJvbGxlCiAgICAgICAgICAgIH0pOwogICAgICAgICAgICB2YXIgbmV1U2VyaWFs +ID0gSlNPTi5zdHJpbmdpZnkoewogICAgICAgICAgICAgICAgc2VoZW46ICAgICBpbmZvLnNlaGVu +LAogICAgICAgICAgICAgICAgZWRpdGllcmVuOiBpbmZvLmVkaXRpZXJlbiwKICAgICAgICAgICAg +ICAgIHJvbGxlOiAgICAgaW5mby5yb2xsZQogICAgICAgICAgICB9KTsKICAgICAgICAgICAgaWYg +KGFsdFNlcmlhbCA9PT0gbmV1U2VyaWFsKSByZXR1cm47ICAvLyBuaWNodHMgUmVsZXZhbnRlcyBn +ZWFlbmRlcnQKICAgICAgICAgICAgWi5yZWNodGUgPSByZWNodGVBdXNJbmZvKGluZm8pOwogICAg +ICAgICAgICBuYXZTaWNodGJhcmtlaXRBbndlbmRlbigpOwogICAgICAgICAgICBhZG1pblN1YnRh +YkZpbHRlckFud2VuZGVuKCk7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZGF0ZW5HcmlkUmVuZGVy +biA9PT0gJ2Z1bmN0aW9uJykgZGF0ZW5HcmlkUmVuZGVybigpOwogICAgICAgICAgICBpZiAodHlw +ZW9mIG5hbWVuUmVuZGVybiA9PT0gJ2Z1bmN0aW9uJykgbmFtZW5SZW5kZXJuKCk7CiAgICAgICAg +ICAgIHRvYXN0KCdEZWluZSBSZWNodGUgd3VyZGVuIGdlcmFkZSBha3R1YWxpc2llcnQnLCAnaW5m +bycpOwogICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKCkgeyAvKiBzdHVtbSDigJQgbmFlY2hzdGVy +IEhlYXJ0YmVhdCB2ZXJzdWNodCdzIHdpZWRlciAqLyB9KTsKICAgIH0KCiAgICAvLyBoZXV0ZUJs +b2NrQWt0dWFsaXNpZXJlbiAtPiBqcy9jb3JlL2RhdGVuTGFkZW4uanMKICAgIC8vCiAgICAvLyA9 +PT09PSBTaWNodGJhcmtlaXQgU3RhdGlzdGlrIC8gTG9nYnVjaCAvIEFkbWluaXN0cmF0aW9uIC8g +QmFja3VwcyA9PT09PQogICAgLy8gZGFyZkFkbWluVGFiL2RhcmZTdGF0aXN0aWsvZGFyZkxvZ2J1 +Y2gsCiAgICAvLyBkYXJmQWRtaW5TdWJ0YWIvZGFyZlN0YXRpc3Rpa1N1YiwKICAgIC8vIGJlcmVj +aG5lRmFjaGF1ZnNpY2h0UmVjaHRlL2JlcmVjaG5lUmVndWxhZXJSZWNodGUsCiAgICAvLyBpbXBl +cnNvbmF0ZSotRnVua3Rpb25lbiAoNSksCiAgICAvLyBBRE1JTl9TVUJUQUJTX05JRU1BTFNfRlVF +Ul9GQUNIQVVGU0lDSFQsIGFkbWluU3VidGFiRmlsdGVyQW53ZW5kZW4sCiAgICAvLyBkYXJmWmVs +bGVFZGl0aWVyZW4sIG5hdlNpY2h0YmFya2VpdEFud2VuZGVuCiAgICAvLyAgIC0+IGpzL2NvcmUv +cGVybWlzc2lvbnMuanMKCiAgICAvLyB0YWdlRXJ6ZXVnZW4sIHRhZ0luZm9zQmVyZWNobmVuLCBz +dGFlcmtlQmVyZWNobmVuIC0+IGpzL2dyaWQvcmVuZGVyLmpzCgogICAgLy8gRnVlaHJ1bmdzLUxv +Z2lrIChmdWVocnVuZ3NTY2hpY2h0LCBmdWVocnVuZ3NaYWVobGVuLCBkZ2xzSW5TY2hpY2h0LCBh +a3RpdmVGdWVocnVuZywgRlVFSFJVTkdfU09MTCksCiAgICAvLyBWZXJhbnR3b3J0dW5nc3dlY2hz +ZWwtU2FtbWVsLU1haWwgKHZlcmFudHdvcnR1bmdzV2VjaHNlbERpYWxvZ1plaWdlbi9FbWFpbE9l +ZmZuZW4sIGludGVybiBpbiBlZGl0b3IuanMpLAogICAgLy8gZ2VzYW10dmVyYW50d29ydGxpY2hF +bWFpbCwgZnVlaHJ1bmdzVW50ZXJiZXNldHp1bmdQcnVlZmVuIC0+IGpzL2dyaWQvZWRpdG9yLmpz +CiAgICAvLwogICAgLy8gaXN0V2FjaGxlaXR1bmdBa3R1ZWxsZXJVc2VyLCB1bnRlcmJlc2V0enVu +Z0FuYWx5c2VWaTMsIHp1RGF0dW1TY3JvbGxlbiwKICAgIC8vIHVudGVyYmVzZXR6dW5nV2FybnVu +Z1plaWdlbiAtPiBqcy9ncmlkL2ludGVyYWN0aW9uLmpzCgogICAgLy8gPT09PT0gQmVzZXR6dW5n +c2tvbnRyb2xsZSAoR2VzYW10dmVyYW50d29ydGxpY2hlLCBIZWFkZXItVGFiKSA9PT09PQogICAg +Ly8gYmVzZXR6dW5nSG9va3MsIGJlc2V0enVuZ3NBbmFseXNlLCBkZWZpeml0QnJpZWZpbmdPZWZm +bmVuLAogICAgLy8gYmVzZXR6dW5nc1RhYkZhcmJlQWt0dWFsaXNpZXJlbiwgZ2VzYW10dmVyYW50 +d29ydGxpY2hWb3JuYW1lRXJtaXR0ZWxuLAogICAgLy8gYmVzZXR6dW5nc2tvbnRyb2xsZVJlbmRl +cm4sIGJlc2V0enVuZ3Nrb250cm9sbGVFdmVudHNBdWZoYWVuZ2VuLAogICAgLy8gZnJlaVBlcnNv +bmVuRnVlciwgYmVzZXR6dW5nTWFpbE1vZGFsIC0+IGpzL2Jlc2V0enVuZy9iZXNldHp1bmcuanMK +CiAgICAvLyBzY2hyYWZmdXJCZXJlY2huZW4sIGdyaWRSZW5kZXJuIC0+IGpzL2dyaWQvcmVuZGVy +LmpzCgogICAgLy8ga29wZlJlbmRlcm4sIG5hbWVuUmVuZGVybiwgZGF0ZW5HcmlkUmVuZGVybiwg +emVsbGVWaXN1ZWxsQWt0dWFsaXNpZXJlbiwgc3RhZXJrZVplbGxlQWt0dWFsaXNpZXJlbiAtPiBq +cy9ncmlkL3JlbmRlci5qcwoKICAgIC8vIGVkaXRvciAoTW9kdWwtU3RhdGUpLCBlZGl0b3JPZWZm +bmVuLCBlZGl0b3JTY2hsaWVzc2VuLCBlZGl0b3JBdXN3YWhsLCBuYWNoYmFyRGF0dW0sIHNjaGlj +aHRUeXAsIHJ1aGV6ZWl0UHJ1ZWZlbiAtPiBqcy9ncmlkL2VkaXRvci5qcwoKICAgIC8vIHNjcm9s +bFN5bmMsIHp1bUhldXRpZ2VuRGF0dW0sIGFuc2ljaHRXZWNoc2VsbiAtPiBqcy9ncmlkL3JlbmRl +ci5qcwoKICAgIC8vID09PT09IEFkbWluIChrb25zb2xpZGllcnQ6IERpc3BhdGNoZXIgKyBQZXJz +b25lbiArIExpc3RlbiArCiAgICAvLyAgIEJlemVpY2hudW5nZW4gKyBCYWNrdXBzICsgU2NoaWNo +dGNvZGVzICsgRmVhdHVyZXMgKyBTdXBlclVzZXIgKwogICAgLy8gICBGYWNoYXVmc2ljaHQgKyBT +dWItU2ljaHRiYXJrZWl0KSAtPiBqcy9hZG1pbi9hZG1pbi5qcwoKICAgIC8vID09PT09IFN0YXRp +c3RpayA9PT09PSAtPiBqcy9zdGF0aXN0aWsuanMKICAgIC8vID09PT09IFdvY2hlbnBsYW4gKyBQ +ZXJzb25lbi1QbGFuID09PT09IC0+IGpzL3dvY2hlbnBsYW4vd29jaGVucGxhbi5qcwogICAgLy8g +PT09PT0gSW5mb3JtYXRpb25zZmVuc3RlciA9PT09PQoKICAgIC8vIERlZmF1bHQtQmVkaWVudW5n +cy1IaW53ZWlzZSDigJQgZ3JlaWZlbiB3ZW5uIGFkbWluLmJlZGllbnVuZ3N0ZXh0ZSBsZWVyCiAg +ICAvLyBvZGVyIG5pY2h0IHZvcmhhbmRlbiBpc3QuIEplZGUgWmVpbGUgd2lyZCBhbHMgZWlnZW5l +ciBMaXN0ZW5laW50cmFnCiAgICAvLyBnZXJlbmRlcnQ7IEZvcm1hdCAiVGl0ZWw6IFRleHQiIC0+ +IFRpdGVsIGZldHQuCiAgICB2YXIgQkVESUVOVU5HX0RFRkFVTFQgPQogICAgICAgICdQbGFudW5n +OiBBdWYgZWluZSBaZWxsZSBrbGlja2VuIHVtIGRlbiBTY2hpY2h0Y29kZSB6dSDDpG5kZXJuLiBL +b21tZW50YXIgw7xiZXIgZGFzIEVpbmdhYmVmZWxkIGltIEVkaXRvci5cbicgKwogICAgICAgICdX +b2NoZW5wbGFuOiBER0wgdW5kIFdERi9GQlAgZ2V0cmVubnQgZGFyZ2VzdGVsbHQsIG1pdCBEaWVu +c3RudW1tZXJuLiAqIG1hcmtpZXJ0IEJlc2V0enVuZyBhdXMgZGVtIEZ1bmt0aW9uc2Jlc2V0enVu +Z3NwbGFuLlxuJyArCiAgICAgICAgJ1BlcnMuIFBsYW46IEphaHJlc8O8YmVyc2ljaHQgZsO8ciBl +aW5lIGVpbnplbG5lIFBlcnNvbiBtaXQgTW9uYXRza2FsZW5kZXJuLlxuJyArCiAgICAgICAgJ0hl +dXRlLUJ1dHRvbjogU2Nyb2xsdCB6dW0gaGV1dGlnZW4gRGF0dW0uXG4nICsKICAgICAgICAnQmFj +a3VwOiBFcnN0ZWxsdCBlaW5lIFNpY2hlcnVuZ3Nrb3BpZSBkZXIgYWt0dWVsbGVuIFBsYW51bmcu +XG4nICsKICAgICAgICAnVmVyYW50d29ydGxpY2g6IERpZSByYW5naMO2Y2hzdGUgUGVyc29uIHBy +byBTY2hpY2h0IHdpcmQgZ29sZGZhcmJlbiBtYXJraWVydC5cbicgKwogICAgICAgICdLb21tZW50 +YXJlOiBaZWxsZW4gbWl0IEtvbW1lbnRhciBoYWJlbiBlaW4gZ29sZGVuZXMgRHJlaWVjayBvYmVu +IHJlY2h0cy5cbicgKwogICAgICAgICdCYWRnZXMgaW0gSGVhZGVyOiDwn46CIEdlYnVydHN0YWcs +IOKaoCBXYXJudW5nLCDihLkgSGlud2VpcyDigJQgZGlyZWt0IGFtIGpld2VpbGlnZW4gVGFnLic7 +CgogICAgZnVuY3Rpb24gYmVkaWVudW5nWmVpbGVuUmVuZGVybih0eHQpIHsKICAgICAgICB2YXIg +cXVlbGxlID0gdHh0IHx8ICcnOwogICAgICAgIGlmICghcXVlbGxlLnRyaW0oKSkgcmV0dXJuICcn +OwogICAgICAgIHJldHVybiBxdWVsbGUuc3BsaXQoL1xyP1xuLykubWFwKGZ1bmN0aW9uKHplaWxl +KSB7CiAgICAgICAgICAgIHplaWxlID0gemVpbGUudHJpbSgpOwogICAgICAgICAgICBpZiAoIXpl +aWxlKSByZXR1cm4gJyc7CiAgICAgICAgICAgIHZhciBtID0gemVpbGUubWF0Y2goL14oW146XXsy +LDQwfSk6XHMqKC4rKSQvKTsKICAgICAgICAgICAgaWYgKG0pIHsKICAgICAgICAgICAgICAgIHJl +dHVybiAnPGxpPjxzdHJvbmc+JyArIGVzY2FwZUhUTUwobVsxXSkgKyAnOjwvc3Ryb25nPiAnICsg +ZXNjYXBlSFRNTChtWzJdKSArICc8L2xpPic7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0 +dXJuICc8bGk+JyArIGVzY2FwZUhUTUwoemVpbGUpICsgJzwvbGk+JzsKICAgICAgICB9KS5maWx0 +ZXIoQm9vbGVhbikuam9pbignJyk7CiAgICB9CgogICAgLy8gR3J1cHBpZXJ0IGRpZSBTY2hpY2h0 +Y29kZXMgbmFjaCBkZXIgdm9yaGFuZGVuZW4gS2F0ZWdvcmllLUxvZ2lrIHVuZAogICAgLy8gbGll +ZmVydCBIVE1MIGZ1ZXIgZWluIDMtc3BhbHRpZ2VzIFJhc3RlciBwcm8gR3J1cHBlLgogICAgZnVu +Y3Rpb24gc2NoaWNodGNvZGVMZWdlbmRlSHRtbCgpIHsKICAgICAgICB2YXIgbGlzdGUgPSAoWi5h +ZG1pbi5zY2hpY2h0Y29kZXMgfHwgW10pLmZpbHRlcihpc3RDb2RlQWt0aXYpOwogICAgICAgIHZh +ciBncnVwcGVuID0ge307CiAgICAgICAgbGlzdGUuZm9yRWFjaChmdW5jdGlvbihzYykgewogICAg +ICAgICAgICB2YXIgayA9IHNjaGljaHRjb2RlS2F0ZWdvcmllKHNjLmNvZGUpOwogICAgICAgICAg +ICBpZiAoIWdydXBwZW5bay5rZXldKSBncnVwcGVuW2sua2V5XSA9IHsgbGFiZWw6IGsubGFiZWws +IGl0ZW1zOiBbXSB9OwogICAgICAgICAgICBncnVwcGVuW2sua2V5XS5pdGVtcy5wdXNoKHNjKTsK +ICAgICAgICB9KTsKICAgICAgICBmdW5jdGlvbiB0aWxlKHNjKSB7CiAgICAgICAgICAgIHJldHVy +biAnPGRpdiBjbGFzcz0ic2MtbGVnZW5kZS16ZWxsZSI+JyArCiAgICAgICAgICAgICAgICAnPHNw +YW4gY2xhc3M9InNjLWxlZ2VuZGUtZmFyYmZlbGQiIHN0eWxlPSJiYWNrZ3JvdW5kOicgKyBlc2Nh +cGVBdHRyKHNjLmhpbnRlcmdydW5kIHx8ICcjODg4JykgKyAnO2NvbG9yOicgKyBlc2NhcGVBdHRy +KHNjLnNjaHJpZnQgfHwgJyNmZmYnKSArICciPicgKyBlc2NhcGVIVE1MKHNjLmNvZGUpICsgJzwv +c3Bhbj4nICsKICAgICAgICAgICAgICAgICc8c3BhbiBjbGFzcz0ic2MtbGVnZW5kZS10ZXh0Ij48 +c3Ryb25nPicgKyBlc2NhcGVIVE1MKHNjLmNvZGUpICsgJzwvc3Ryb25nPjxicj48c3BhbiBzdHls +ZT0iZm9udC1zaXplOjEwcHg7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCkiPicgKyBlc2NhcGVIVE1M +KHNjLmJlemVpY2hudW5nIHx8ICcnKSArICc8L3NwYW4+PC9zcGFuPicgKwogICAgICAgICAgICAg +ICAgJzwvZGl2Pic7CiAgICAgICAgfQogICAgICAgIHZhciBodG1sID0gJyc7CiAgICAgICAgT2Jq +ZWN0LmtleXMoZ3J1cHBlbikuc29ydCgpLmZvckVhY2goZnVuY3Rpb24oaykgewogICAgICAgICAg +ICB2YXIgZyA9IGdydXBwZW5ba107CiAgICAgICAgICAgIGcuaXRlbXMuc29ydChmdW5jdGlvbihh +LCBiKSB7IHJldHVybiAoYS5jb2RlIHx8ICcnKS5sb2NhbGVDb21wYXJlKGIuY29kZSB8fCAnJywg +J2RlJyk7IH0pOwogICAgICAgICAgICBodG1sICs9ICc8ZGl2IGNsYXNzPSJzYy1sZWdlbmRlLWdy +dXBwZSI+JyArCiAgICAgICAgICAgICAgICAnPGRpdiBjbGFzcz0ic2MtbGVnZW5kZS10aXRlbCI+ +JyArIGVzY2FwZUhUTUwoZy5sYWJlbCkgKyAnIDxzcGFuIHN0eWxlPSJmb250LXdlaWdodDo1MDA7 +b3BhY2l0eTowLjYiPignICsgZy5pdGVtcy5sZW5ndGggKyAnKTwvc3Bhbj48L2Rpdj4nICsKICAg +ICAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJzYy1sZWdlbmRlLWdyaWQiPicgKyBnLml0ZW1zLm1h +cCh0aWxlKS5qb2luKCcnKSArICc8L2Rpdj4nICsKICAgICAgICAgICAgJzwvZGl2Pic7CiAgICAg +ICAgfSk7CiAgICAgICAgcmV0dXJuIGh0bWw7CiAgICB9CgogICAgZnVuY3Rpb24gaW5mb0ZlbnN0 +ZXJaZWlnZW4oKSB7CiAgICAgICAgdmFyIGluZm9CbG9jayA9ICcnOwogICAgICAgIGlmIChaLmFk +bWluLmluZm90ZXh0KSB7CiAgICAgICAgICAgIGluZm9CbG9jayArPSAnPGRpdiBjbGFzcz0iaW5m +by1rYXJ0ZSBpbmZvLWthcnRlLWluZm8iPjxzdHJvbmc+SW5mb3RleHQ6PC9zdHJvbmc+PGJyPicg +KwogICAgICAgICAgICAgICAgaHRtbEF1c0ZlbGQoWi5hZG1pbi5pbmZvdGV4dCkgKyAnPC9kaXY+ +JzsKICAgICAgICB9CiAgICAgICAgaWYgKFouYWRtaW4uc3VwcG9ydGluZm8pIHsKICAgICAgICAg +ICAgaW5mb0Jsb2NrICs9ICc8ZGl2IGNsYXNzPSJpbmZvLWthcnRlIGluZm8ta2FydGUtc3VwcG9y +dCI+PHN0cm9uZz5TdXBwb3J0Ojwvc3Ryb25nPjxicj4nICsKICAgICAgICAgICAgICAgIGh0bWxB +dXNGZWxkKFouYWRtaW4uc3VwcG9ydGluZm8pICsgJzwvZGl2Pic7CiAgICAgICAgfQogICAgICAg +IC8vIEFuc3ByZWNocGFydG5lcjogUGVyc29uZW4gbWl0IEZsYWcgaXN0QW5zcHJlY2hwYXJ0bmVy +PXRydWUuIFNlaXQKICAgICAgICAvLyAyMDI2LTA1LTI1IG9obmUgRnVua3Rpb25zLSBvZGVyIERp +ZW5zdGdydXBwZW4tR2F0aW5nICh0aGVvcmV0aXNjaAogICAgICAgIC8vIGthbm4gamVkZSBQZXJz +b24gYWxzIEFuc3ByZWNocGFydG5lciBiZW5hbm50IHdlcmRlbikuIERpZSBhbHRlbgogICAgICAg +IC8vIEZlbGRlciBGdW5rdGlvbi5pblBsYW51bmcgdW5kIERpZW5zdGdydXBwZS5kYXJmQW5zcHJl +Y2hwYXJ0bmVyCiAgICAgICAgLy8gd2VyZGVuIGhpZXIgbmljaHQgbWVociBhdXNnZXdlcnRldC4K +ICAgICAgICB2YXIgYXBMaXN0ZSA9IChaLnBsYW51bmcucGVyc29uZW4gfHwgW10pCiAgICAgICAg +ICAgIC5maWx0ZXIoZnVuY3Rpb24ocCkgewogICAgICAgICAgICAgICAgcmV0dXJuIHAuaXN0QW5z +cHJlY2hwYXJ0bmVyICYmICFwLmdlbG9lc2NodEFtOwogICAgICAgICAgICB9KQogICAgICAgICAg +ICAuc29ydChmdW5jdGlvbihhLCBiKSB7CiAgICAgICAgICAgICAgICB2YXIgcmEgPSAoKFouYWRt +aW4uZnVua3Rpb25lbiB8fCBbXSkuZmluZChmdW5jdGlvbih4KSB7IHJldHVybiB4LmNvZGUgPT09 +IGEuZnVua3Rpb247IH0pIHx8IHt9KS5yYW5nOwogICAgICAgICAgICAgICAgdmFyIHJiID0gKCha +LmFkbWluLmZ1bmt0aW9uZW4gfHwgW10pLmZpbmQoZnVuY3Rpb24oeCkgeyByZXR1cm4geC5jb2Rl +ID09PSBiLmZ1bmt0aW9uOyB9KSB8fCB7fSkucmFuZzsKICAgICAgICAgICAgICAgIGlmIChyYSA9 +PSBudWxsKSByYSA9IDk5OwogICAgICAgICAgICAgICAgaWYgKHJiID09IG51bGwpIHJiID0gOTk7 +CiAgICAgICAgICAgICAgICBpZiAocmEgIT09IHJiKSByZXR1cm4gcmEgLSByYjsKICAgICAgICAg +ICAgICAgIHJldHVybiAoKGEubmFtZSB8fCAnJykgKyAnICcgKyAoYS52b3JuYW1lIHx8ICcnKSku +bG9jYWxlQ29tcGFyZSgoKGIubmFtZSB8fCAnJykgKyAnICcgKyAoYi52b3JuYW1lIHx8ICcnKSks +ICdkZScpOwogICAgICAgICAgICB9KTsKICAgICAgICBpZiAoYXBMaXN0ZS5sZW5ndGggPiAwKSB7 +CiAgICAgICAgICAgIC8vIE1haWwtQnV0dG9uIHBybyBBbnNwcmVjaHBhcnRuZXI6IG9lZmZuZXQg +T3V0bG9vayAobWFpbHRvOikKICAgICAgICAgICAgLy8gbWl0IHZvcmJlZnVlbGx0ZW0gQmV0cmVm +ZiArIEVpbmxlaXR1bmcuIEJvZHkgbnV0enQgZGllCiAgICAgICAgICAgIC8vIGR0LiBBbnJlZGUg +KyBCZXp1ZyBhdWYgZGllIFNjaGljaHRwbGFudW5nOyBBYnNlbmRlciB3aXJkIGluCiAgICAgICAg +ICAgIC8vIGRlciBNYWlsLVNpZ25hdHVyIGxlZXIgZ2VsYXNzZW4sIHdlaWwgT3V0bG9vayBkYXMg +c2VsYnN0CiAgICAgICAgICAgIC8vIGFuaGFlbmd0LgogICAgICAgICAgICB2YXIgYXBwVGl0ZWwg +PSBiZXooJ2FwcC50aXRlbCcpOwogICAgICAgICAgICB2YXIgYXBIdG1sID0gYXBMaXN0ZS5tYXAo +ZnVuY3Rpb24ocCkgewogICAgICAgICAgICAgICAgdmFyIG5hbWUgPSAoKHAuZGllbnN0Z3JhZCA/ +IHAuZGllbnN0Z3JhZCArICcgJyA6ICcnKSArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAo +cC52b3JuYW1lID8gcC52b3JuYW1lICsgJyAnIDogJycpICsgKHAubmFtZSB8fCAnJykpLnRyaW0o +KTsKICAgICAgICAgICAgICAgIHZhciB6ZWlsZSA9ICc8c3Ryb25nPicgKyBlc2NhcGVIVE1MKG5h +bWUpICsgJzwvc3Ryb25nPic7CiAgICAgICAgICAgICAgICB2YXIgcmVjaHRzID0gW107CiAgICAg +ICAgICAgICAgICBpZiAocC5mdW5rdGlvbikgcmVjaHRzLnB1c2goZXNjYXBlSFRNTChwLmZ1bmt0 +aW9uKSk7CiAgICAgICAgICAgICAgICBpZiAocC5vZSkgICAgICAgcmVjaHRzLnB1c2goZXNjYXBl +SFRNTChwLm9lKSk7CiAgICAgICAgICAgICAgICBpZiAocC50ZWxlZm9uKSAgcmVjaHRzLnB1c2go +J1RlbC4gPHN0cm9uZz4nICsgZXNjYXBlSFRNTChwLnRlbGVmb24pICsgJzwvc3Ryb25nPicpOwog +ICAgICAgICAgICAgICAgaWYgKHJlY2h0cy5sZW5ndGgpIHplaWxlICs9ICcg4oCUICcgKyByZWNo +dHMuam9pbignLCAnKTsKICAgICAgICAgICAgICAgIHZhciBtYWlsQnRuID0gJyc7CiAgICAgICAg +ICAgICAgICBpZiAocC5lbWFpbCkgewogICAgICAgICAgICAgICAgICAgIHZhciBhbnJlZGUgPSAo +cC52b3JuYW1lID8gcC52b3JuYW1lICsgJyAnICsgKHAubmFtZSB8fCAnJykgOiAocC5uYW1lIHx8 +ICcnKSkudHJpbSgpOwogICAgICAgICAgICAgICAgICAgIHZhciBiZXRyZWZmID0gJ0FuZnJhZ2Ug +enVyIFNjaGljaHRwbGFudW5nIOKAlCAnICsgYXBwVGl0ZWw7CiAgICAgICAgICAgICAgICAgICAg +dmFyIGJvZHkgPSAnSGFsbG8gJyArIGFucmVkZSArICcsXG5cbicgKwogICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgJ2ljaCBoYWJlIGVpbmUgRnJhZ2UgenVyIFNjaGljaHRwbGFudW5nIHVu +ZCBtZWxkZSBtaWNoIGJlaSBEaXIsIHdlaWwgRHUgYWxzIEFuc3ByZWNocGFydG5lciBoaW50ZXJs +ZWd0IGJpc3QuXG5cbicgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1toaWVyIGt1 +cnogQW5saWVnZW4gYmVzY2hyZWliZW5dXG5cbicgKwogICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgJ1ZpZWxlbiBEYW5rIHVuZCB2aWVsZSBHcsO8w59lJzsKICAgICAgICAgICAgICAgICAg +ICB2YXIgaHJlZiA9ICdtYWlsdG86JyArIGVuY29kZVVSSUNvbXBvbmVudChwLmVtYWlsKSArCiAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnP3N1YmplY3Q9JyArIGVuY29kZVVSSUNvbXBv +bmVudChiZXRyZWZmKSArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJmJvZHk9JyAr +IGVuY29kZVVSSUNvbXBvbmVudChib2R5KTsKICAgICAgICAgICAgICAgICAgICBtYWlsQnRuID0g +JyA8YSBjbGFzcz0iaW5mby1hcC1tYWlsYnRuIiBocmVmPSInICsgZXNjYXBlQXR0cihocmVmKSAr +ICciJyArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgdGl0bGU9IkUtTWFpbCBhbiAn +ICsgZXNjYXBlQXR0cihuYW1lKSArICcgKCcgKyBlc2NhcGVBdHRyKHAuZW1haWwpICsgJykgw7Zm +Zm5lbiI+TWFpbDwvYT4nOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAg +ICAgICBtYWlsQnRuID0gJyA8c3BhbiBjbGFzcz0iaW5mby1hcC1rZWlubWFpbCIgdGl0bGU9Iktl +aW5lIEUtTWFpbC1BZHJlc3NlIGhpbnRlcmxlZ3QiPuKAlCBrZWluZSBFLU1haWwg4oCUPC9zcGFu +Pic7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXR1cm4gJzxsaSBzdHlsZT0i +bWFyZ2luLWJvdHRvbTo0cHgiPicgKyB6ZWlsZSArIG1haWxCdG4gKyAnPC9saT4nOwogICAgICAg +ICAgICB9KS5qb2luKCcnKTsKICAgICAgICAgICAgaW5mb0Jsb2NrICs9ICc8ZGl2IGNsYXNzPSJp +bmZvLWthcnRlIGluZm8ta2FydGUtc3VwcG9ydCI+JyArCiAgICAgICAgICAgICAgICAnPHN0cm9u +Zz5BbnNwcmVjaHBhcnRuZXI6PC9zdHJvbmc+JyArCiAgICAgICAgICAgICAgICAnPHVsIHN0eWxl +PSJtYXJnaW46NnB4IDAgMCAxOHB4O3BhZGRpbmc6MDtsaXN0LXN0eWxlOmRpc2MiPicgKyBhcEh0 +bWwgKyAnPC91bD48L2Rpdj4nOwogICAgICAgIH0KCiAgICAgICAgLy8gQWxsZ2VtZWluZSBIaWxm +ZSDigJQgb3B0aW9uYWwgYXVzIGFkbWluLmpzb24uaGlsZmV0ZXh0IChSaWNoLVRleHQpCiAgICAg +ICAgdmFyIGhpbGZlQmxvY2sgPSAnJzsKICAgICAgICBpZiAoWi5hZG1pbi5oaWxmZXRleHQgJiYg +U3RyaW5nKFouYWRtaW4uaGlsZmV0ZXh0KS50cmltKCkpIHsKICAgICAgICAgICAgaGlsZmVCbG9j +ayA9ICc8aDMgc3R5bGU9ImNvbG9yOnZhcigtLXRleHQtaGVhZGluZyk7bWFyZ2luLWJvdHRvbTo4 +cHg7bWFyZ2luLXRvcDoxMnB4Ij5BbGxnZW1laW5lIEhpbGZlPC9oMz4nICsKICAgICAgICAgICAg +ICAgICc8ZGl2IHN0eWxlPSJmb250LXNpemU6MTNweDtsaW5lLWhlaWdodDoxLjY7bWFyZ2luLWJv +dHRvbToxNnB4Ij4nICsKICAgICAgICAgICAgICAgIGh0bWxBdXNGZWxkKFouYWRtaW4uaGlsZmV0 +ZXh0KSArICc8L2Rpdj4nOwogICAgICAgIH0KCiAgICAgICAgLy8gQmVkaWVudW5nIOKAlCBhdXMg +YWRtaW4uanNvbi5iZWRpZW51bmdzdGV4dGUgKFJpY2gtVGV4dCBvZGVyIFBsYWluKSwKICAgICAg +ICAvLyBzb25zdCBEZWZhdWx0LiBXZW5uIEhUTUwgdm9yaGFuZGVuIChlbnRoYWVsdCA8dWw+Lzxs +aT4pLCBkaXJla3QgZWluZnVlZ2VuOwogICAgICAgIC8vIHNvbnN0IFplaWxlbi16dS1CdWxsZXRz +LVVtd2FuZGx1bmcuCiAgICAgICAgdmFyIGJlZGllbnVuZ1F1ZWxsZSA9IFouYWRtaW4uYmVkaWVu +dW5nc3RleHRlOwogICAgICAgIHZhciBiZWRpZW51bmc7CiAgICAgICAgaWYgKGJlZGllbnVuZ1F1 +ZWxsZSAmJiBTdHJpbmcoYmVkaWVudW5nUXVlbGxlKS50cmltKCkpIHsKICAgICAgICAgICAgaWYg +KC88XC8/KHVsfG9sfGxpKVxiL2kudGVzdChiZWRpZW51bmdRdWVsbGUpKSB7CiAgICAgICAgICAg +ICAgICAvLyBTY2hvbiBmZXJ0aWdlcyBIVE1MIG1pdCBMaXN0ZW4g4oCUIGRpcmVrdCB1ZWJlcm5l +aG1lbiAoc2FuaXRpemVkKS4KICAgICAgICAgICAgICAgIC8vIENTUy1SZWdlbG4gZnVlciAuaW5m +by1hYnNjaG5pdHQgdWwvbGkgc3RldWVybiBFaW5ydWVja3VuZyAmIEFic3RhbmQuCiAgICAgICAg +ICAgICAgICBiZWRpZW51bmcgPSBzYW5pdGl6ZVJpY2hIdG1sKGJlZGllbnVuZ1F1ZWxsZSk7CiAg +ICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBiZWRpZW51bmcgPSAnPHVsPicgKyBi +ZWRpZW51bmdaZWlsZW5SZW5kZXJuKGJlZGllbnVuZ1F1ZWxsZSkgKyAnPC91bD4nOwogICAgICAg +ICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgYmVkaWVudW5nID0gJzx1bD4nICsg +YmVkaWVudW5nWmVpbGVuUmVuZGVybihCRURJRU5VTkdfREVGQVVMVCkgKyAnPC91bD4nOwogICAg +ICAgIH0KCiAgICAgICAgLy8gV2Vya3pldWdlLVNla3Rpb24gKFVYLUF1ZGl0IFNwcmludCAyLjUs +IDIwMjYtMDUtMjkpOiBTeW5jLUNoZWNrCiAgICAgICAgLy8gdW5kIERpYWdub3NlLVNlaXRlIGV4 +aXN0aWVyZW4gYWxzIC9zeW5jLWNoZWNrLmh0bWwgYnp3LgogICAgICAgIC8vIC9kaWFnbm9zZS5o +dG1sLCBzaW5kIGFiZXIgdm9uIGtlaW5lciBhbmRlcmVuIFN0ZWxsZSBpbiBkZXIgQXBwCiAgICAg +ICAgLy8gdmVybGlua3QuIEhpZXIgaW4gZGVyIEluZm8tTW9kYWwgYXVmbmVobWVuLCBkYW1pdCBB +ZG1pbnMrU1Ugc2llCiAgICAgICAgLy8gb2huZSBVUkwtVGlwcGVyZWkgb2VmZm5lbiBrb2VubmVu +LgogICAgICAgIHZhciB3ZXJremV1Z2VCbG9jayA9ICcnOwogICAgICAgIGlmIChkYXJmQWRtaW5U +YWIoKSkgewogICAgICAgICAgICB3ZXJremV1Z2VCbG9jayA9ICc8ZGl2IGNsYXNzPSJpbmZvLWFi +c2Nobml0dCI+PGgzPldlcmt6ZXVnZTwvaDM+JyArCiAgICAgICAgICAgICAgICAnPGRpdiBzdHls +ZT0iZGlzcGxheTpmbGV4O2dhcDo4cHg7ZmxleC13cmFwOndyYXAiPicgKwogICAgICAgICAgICAg +ICAgICAgICc8YSBjbGFzcz0iYnRuIGJ0bi1zZWsiIGhyZWY9Ii9zeW5jLWNoZWNrLmh0bWwiIHRh +cmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIiB0aXRsZT0iTW9kdWwtTGFkZS1EaWFnbm9zZTog +cHJ1ZWZ0LCBvYiBhbGxlIEpTL0NTUy1EYXRlaWVuIGZlaGxlcmZyZWkgZ2VsYWRlbiB3ZXJkZW4i +PlN5bmMtQ2hlY2sgw7ZmZm5lbjwvYT4nICsKICAgICAgICAgICAgICAgICAgICAnPGEgY2xhc3M9 +ImJ0biBidG4tc2VrIiBocmVmPSIvZGlhZ25vc2UuaHRtbCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0i +bm9vcGVuZXIiIHRpdGxlPSJTeXN0ZW0tRGlhZ25vc2U6IFNlcnZlci1WZXJzaW9uLCBIZWFydGJl +YXQsIFBlcm1pc3Npb25zIj5EaWFnbm9zZSDDtmZmbmVuPC9hPicgKwogICAgICAgICAgICAgICAg +JzwvZGl2PicgKwogICAgICAgICAgICAgICAgJzwvZGl2Pic7CiAgICAgICAgfQoKICAgICAgICAv +LyBUYXN0YXR1cmt1ZXJ6ZWwtU2VrdGlvbiAoVVgtQXVkaXQgU3ByaW50IDMuNywgMjAyNi0wNS0y +OSk6CiAgICAgICAgLy8gUG93ZXItVXNlci1Eb2t1IGltIEluZm8tTW9kYWwsIGRhbWl0IGRpZSB2 +b3JoYW5kZW5lbiBTaG9ydGN1dHMKICAgICAgICAvLyAoRVNDIGZ1ZXIgTW9kYWwsIFRhYiBmdWVy +IEZva3VzLVRyYXAsIEVudGVyIHp1bSBTcGVpY2hlcm4sCiAgICAgICAgLy8gRG9wcGVsa2xpY2sg +aW0gR3JpZCkgZGlzY292ZXJhYmxlIHdlcmRlbi4KICAgICAgICB2YXIgdGFzdGF0dXJCbG9jayA9 +CiAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJpbmZvLWFic2Nobml0dCI+PGgzPlRhc3RhdHVya8O8 +cnplbDwvaDM+JyArCiAgICAgICAgICAgICAgICAnPHRhYmxlIGNsYXNzPSJpbmZvLXNob3J0Y3V0 +cyI+JyArCiAgICAgICAgICAgICAgICAgICAgJzx0cj48dGg+VGFzdGVua29tYmluYXRpb248L3Ro +Pjx0aD5XaXJrdW5nPC90aD48L3RyPicgKwogICAgICAgICAgICAgICAgICAgICc8dHI+PHRkPjxr +YmQ+RXNjPC9rYmQ+PC90ZD48dGQ+U2NobGllc3N0IGRhcyBvYmVyc3RlIE1vZGFsIChMSUZPIGJl +aSB2ZXJzY2hhY2h0ZWx0ZW4gRGlhbG9nZW4pPC90ZD48L3RyPicgKwogICAgICAgICAgICAgICAg +ICAgICc8dHI+PHRkPjxrYmQ+VGFiPC9rYmQ+IC8gPGtiZD5TaGlmdCtUYWI8L2tiZD48L3RkPjx0 +ZD5Gb2t1cyBpbm5lcmhhbGIgZGVzIE1vZGFscyB3ZWl0ZXIgLyB6dXJ1ZWNrIChGb2N1cy1UcmFw +KTwvdGQ+PC90cj4nICsKICAgICAgICAgICAgICAgICAgICAnPHRyPjx0ZD48a2JkPkVudGVyPC9r +YmQ+PC90ZD48dGQ+SW0gTW9kYWw6IFNwZWljaGVybi4gSW0gS29tbWVudGFyLUVkaXRvcjogS29t +bWVudGFyIGhpbnp1ZnVlZ2VuPC90ZD48L3RyPicgKwogICAgICAgICAgICAgICAgICAgICc8dHI+ +PHRkPjxrYmQ+TGlua3NrbGljazwva2JkPiBhdWYgWmVsbGU8L3RkPjx0ZD5aZWxsZSBtYXJraWVy +ZW4gKGF1c3dhZWhsZW4pPC90ZD48L3RyPicgKwogICAgICAgICAgICAgICAgICAgICc8dHI+PHRk +PjxrYmQ+UmVjaHRza2xpY2s8L2tiZD4gYXVmIFplbGxlPC90ZD48dGQ+U2NoaWNodC1FZGl0b3Ig +b2VmZm5lbiAoQXVzbMO2c2UtQWt0aW9uIGltIEJhY2tlbmQgZWluc3RlbGxiYXI6IExpbmtzLS9S +ZWNodHMtL01hdXNyYWQtL0RvcHBlbGtsaWNrKTwvdGQ+PC90cj4nICsKICAgICAgICAgICAgICAg +ICAgICAnPHRyPjx0ZD48a2JkPktsaWNrPC9rYmQ+IGF1ZiBUYWctSGVhZGVyPC90ZD48dGQ+VGFn +LURldGFpbC1Nb2RhbCAoYWxsZSBQZXJzb25lbiBhbSBUYWcpPC90ZD48L3RyPicgKwogICAgICAg +ICAgICAgICAgICAgICc8dHI+PHRkPjxrYmQ+SG92ZXI8L2tiZD4gYXVmIEtvbW1lbnRhci1NYXJr +ZXI8L3RkPjx0ZD5Lb21tZW50YXItUG9wb3ZlciAoMjUwIG1zIFZlcnpvZWdlcnVuZyk8L3RkPjwv +dHI+JyArCiAgICAgICAgICAgICAgICAgICAgJzx0cj48dGQ+PGtiZD5EcmFnPC9rYmQ+IGF1ZiBG +aWxsLUhhbmRsZTwvdGQ+PHRkPldlcnQgbmFjaCBsaW5rcy9yZWNodHMgaW4gZGVyc2VsYmVuIFpl +aWxlIGtvcGllcmVuIChFeGNlbC1hZWhubGljaDsga2VpbiBBdXNmdWVsbGVuIG5hY2ggb2Jlbi91 +bnRlbik8L3RkPjwvdHI+JyArCiAgICAgICAgICAgICAgICAnPC90YWJsZT4nICsKICAgICAgICAg +ICAgJzwvZGl2Pic7CgogICAgICAgIHZhciBrb2VycGVyID0gJzxkaXYgc3R5bGU9ImxpbmUtaGVp +Z2h0OjEuNyI+JyArCiAgICAgICAgICAgIChpbmZvQmxvY2sgPyBpbmZvQmxvY2sgOiAnJykgKwog +ICAgICAgICAgICAoaGlsZmVCbG9jayA/ICc8ZGl2IGNsYXNzPSJpbmZvLWFic2Nobml0dCI+JyAr +IGhpbGZlQmxvY2sgKyAnPC9kaXY+JyA6ICcnKSArCiAgICAgICAgICAgIChiZWRpZW51bmcKICAg +ICAgICAgICAgICAgID8gJzxkaXYgY2xhc3M9ImluZm8tYWJzY2huaXR0Ij48aDM+QmVkaWVudW5n +PC9oMz4nICsgYmVkaWVudW5nICsgJzwvZGl2PicKICAgICAgICAgICAgICAgIDogJycpICsKICAg +ICAgICAgICAgJzxkaXYgY2xhc3M9ImluZm8tYWJzY2huaXR0Ij48aDM+U2NoaWNodGNvZGUtTGVn +ZW5kZTwvaDM+JyArCiAgICAgICAgICAgICAgICAnPGRpdiBjbGFzcz0ic2MtbGVnZW5kZS1jb250 +YWluZXIiPicgKyBzY2hpY2h0Y29kZUxlZ2VuZGVIdG1sKCkgKyAnPC9kaXY+JyArCiAgICAgICAg +ICAgICc8L2Rpdj4nICsKICAgICAgICAgICAgdGFzdGF0dXJCbG9jayArCiAgICAgICAgICAgIHdl +cmt6ZXVnZUJsb2NrICsKICAgICAgICAgICAgJzxkaXYgY2xhc3M9ImluZm8tZnVzcyI+JyArCiAg +ICAgICAgICAgICAgICBlc2NhcGVIVE1MKGJleignYXBwLnRpdGVsJykpICsgJyAnICsgKFouYWRt +aW4uamFociB8fCAnJykgKyAnIOKAlCBCZW51dHplcjogJyArIGVzY2FwZUhUTUwoWi5iZW51dHpl +cikgKwogICAgICAgICAgICAnPC9kaXY+PC9kaXY+JzsKCiAgICAgICAgbW9kYWxaZWlnZW4oJ0lu +Zm9ybWF0aW9uICYgSGlsZmUnLCBrb2VycGVyLAogICAgICAgICAgICAnPGJ1dHRvbiB0eXBlPSJi +dXR0b24iIGNsYXNzPSJidG4gYnRuLXNlayIgaWQ9ImluZm8taW1wcmVzc3VtLWJ0biI+SW1wcmVz +c3VtPC9idXR0b24+JyArCiAgICAgICAgICAgICc8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9 +ImJ0biBidG4tcHJpbWFlciIgaWQ9ImluZm8tc2NobGllc3Nlbi1idG4iPlNjaGxpZcOfZW48L2J1 +dHRvbj4nLAogICAgICAgICAgICBudWxsLCBudWxsLCB7IHJlaW5lckRpYWxvZzogdHJ1ZSB9KTsK +ICAgICAgICB2YXIgYnRuSW1wcmVzc3VtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2luZm8t +aW1wcmVzc3VtLWJ0bicpOwogICAgICAgIGlmIChidG5JbXByZXNzdW0pIGJ0bkltcHJlc3N1bS5h +ZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGltcHJlc3N1bU1vZGFsT2VmZm5lbik7CiAgICAgICAg +dmFyIGJ0blNjaGxpZXNzZW4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5mby1zY2hsaWVz +c2VuLWJ0bicpOwogICAgICAgIGlmIChidG5TY2hsaWVzc2VuKSBidG5TY2hsaWVzc2VuLmFkZEV2 +ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKSB7IG1vZGFsU2NobGllc3Nlbih0cnVlKTsg +fSk7CiAgICB9CgogICAgLy8gQmF1dCBkZW4gdm9yYXVzZ2VmdWVsbHRlbiBTdXBwb3J0LU1haWwt +Qm9keS4gUGxhaW4tVGV4dCwga2xhcgogICAgLy8gc3RydWt0dXJpZXJ0IGluIEFic2Nobml0dGVu +IOKAlCBVc2VyIHNvbGwgZGllIEx1ZWVrZW4gYXVzZnVlbGxlbiwKICAgIC8vIHN0YXR0IHZvbiBO +dWxsIGFuIHp1IHNjaHJlaWJlbi4gQXV0by1TZWt0aW9uIGFtIEVuZGUgaXN0IG1pdAogICAgLy8g +TGl2ZS1EYXRlbiB2b3JiZWZ1ZWxsdCAoTlctS2VubnVuZywgYWt0dWVsbGUgQW5zaWNodCwgQnJv +d3NlciwKICAgIC8vIEF1ZmxvZXN1bmcsIEJ1aWxkLUphaHIpLCBkYW1pdCBQaGlsaXBwIG5pY2h0 +IG1laHJmYWNoIG5hY2hmcmFnZW4KICAgIC8vIG11c3MuCiAgICBmdW5jdGlvbiBfbWFpbFBsYXR6 +aGFsdGVyRXJzZXR6ZW4odGVtcGxhdGUpIHsKICAgICAgICB2YXIgamV0enQgPSBuZXcgRGF0ZSgp +OwogICAgICAgIHZhciBwYWQgPSBmdW5jdGlvbihuKSB7IHJldHVybiAobiA8IDEwID8gJzAnIDog +JycpICsgbjsgfTsKICAgICAgICB2YXIgYWt0aXYgPSAnJzsKICAgICAgICB0cnkgeyBha3RpdiA9 +IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ3ZpMy5ha3RpdmVBbnNpY2h0JykgfHwgJ3BsYW51bmcn +OyB9IGNhdGNoIChlKSB7IGFrdGl2ID0gJ3BsYW51bmcnOyB9CiAgICAgICAgdmFyIGN0eCA9IHsK +ICAgICAgICAgICAgJ3tud19rZW5udW5nfSc6ICAgICAgIFouYmVudXR6ZXIgfHwgJz8nLAogICAg +ICAgICAgICAne2FrdHVlbGxlX2Fuc2ljaHR9JzogYWt0aXYsCiAgICAgICAgICAgICd7ZGF0dW19 +JzogICAgICAgICAgICBwYWQoamV0enQuZ2V0RGF0ZSgpKSArICcuJyArIHBhZChqZXR6dC5nZXRN +b250aCgpICsgMSkgKyAnLicgKyBqZXR6dC5nZXRGdWxsWWVhcigpLAogICAgICAgICAgICAne3Vo +cnplaXR9JzogICAgICAgICAgcGFkKGpldHp0LmdldEhvdXJzKCkpICsgJzonICsgcGFkKGpldHp0 +LmdldE1pbnV0ZXMoKSksCiAgICAgICAgICAgICd7YXVmbG9lc3VuZ30nOiAgICAgICAod2luZG93 +LmlubmVyV2lkdGggfHwgJz8nKSArICd4JyArICh3aW5kb3cuaW5uZXJIZWlnaHQgfHwgJz8nKSwK +ICAgICAgICAgICAgJ3thcHBfamFocn0nOiAgICAgICAgIFN0cmluZygoWi5hZG1pbiAmJiBaLmFk +bWluLmphaHIpID8gWi5hZG1pbi5qYWhyIDogbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpKSwKICAg +ICAgICAgICAgJ3ticm93c2VyfSc6ICAgICAgICAgIChuYXZpZ2F0b3IgJiYgbmF2aWdhdG9yLnVz +ZXJBZ2VudCkgPyBuYXZpZ2F0b3IudXNlckFnZW50LnN1YnN0cmluZygwLCAxMjApIDogJz8nCiAg +ICAgICAgfTsKICAgICAgICB2YXIgb3V0ID0gdGVtcGxhdGU7CiAgICAgICAgT2JqZWN0LmtleXMo +Y3R4KS5mb3JFYWNoKGZ1bmN0aW9uKGspIHsgb3V0ID0gb3V0LnNwbGl0KGspLmpvaW4oY3R4W2td +KTsgfSk7CiAgICAgICAgcmV0dXJuIG91dDsKICAgIH0KICAgIGZ1bmN0aW9uIHN1cHBvcnRNYWls +Qm9keUJhdWVuKCkgewogICAgICAgIHZhciB0ZW1wbGF0ZSA9IChaLmFkbWluICYmIFouYWRtaW4u +c3VwcG9ydE1haWxUZXh0ICYmIFN0cmluZyhaLmFkbWluLnN1cHBvcnRNYWlsVGV4dCkudHJpbSgp +KQogICAgICAgICAgICA/IFouYWRtaW4uc3VwcG9ydE1haWxUZXh0CiAgICAgICAgICAgIDogU1VQ +UE9SVF9NQUlMX0RFRkFVTFQ7CiAgICAgICAgcmV0dXJuIF9tYWlsUGxhdHpoYWx0ZXJFcnNldHpl +bih0ZW1wbGF0ZSk7CiAgICB9CiAgICBmdW5jdGlvbiBidWdSZXBvcnRNYWlsQm9keUJhdWVuKCkg +ewogICAgICAgIHZhciB0ZW1wbGF0ZSA9IChaLmFkbWluICYmIFouYWRtaW4uYnVnUmVwb3J0TWFp +bFRleHQgJiYgU3RyaW5nKFouYWRtaW4uYnVnUmVwb3J0TWFpbFRleHQpLnRyaW0oKSkKICAgICAg +ICAgICAgPyBaLmFkbWluLmJ1Z1JlcG9ydE1haWxUZXh0CiAgICAgICAgICAgIDogQlVHUkVQT1JU +X01BSUxfREVGQVVMVDsKICAgICAgICByZXR1cm4gX21haWxQbGF0emhhbHRlckVyc2V0emVuKHRl +bXBsYXRlKTsKICAgIH0KCiAgICAvLyBCdWctUmVwb3J0LU1vZGFsIGhpbnRlciBkZW0gSGVhZGVy +LUJ1dHRvbiDigJ5CdWdSZXBvcnQiLiBTcGllZ2VsdCBkaWUKICAgIC8vIFN1cHBvcnQtQW5mcmFn +ZSAoSW1wcmVzc3VtLU1vZGFsKSwgYWJlciB6dWdlc3BpdHp0IGF1ZiBCVUdTL1Byb2JsZW1lOgog +ICAgLy8gZWluIHZvcnN0cnVrdHVyaWVydGVzIG1haWx0bzogYW4gUEhLIFJvZXNnZW4uCiAgICBm +dW5jdGlvbiBidWdSZXBvcnRNb2RhbE9lZmZuZW4oKSB7CiAgICAgICAgdmFyIG1haWx0byA9ICdt +YWlsdG86cGhpbGlwcC5yb2VzZ2VuQHBvbGl6ZWkubnJ3LmRlJwogICAgICAgICAgICArICc/c3Vi +amVjdD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KCdWSTMgREdMIFBsYW51bmcgLSBCVUcgLyBQcm9i +bGVtIChEb3J0bXVuZCknKQogICAgICAgICAgICArICcmYm9keT0nICsgZW5jb2RlVVJJQ29tcG9u +ZW50KGJ1Z1JlcG9ydE1haWxCb2R5QmF1ZW4oKSk7CiAgICAgICAgdmFyIGtvZXJwZXIgPQogICAg +ICAgICAgICAnPGRpdiBjbGFzcz0iYnVncmVwb3J0LWJveCI+JyArCiAgICAgICAgICAgICAgICAn +PGRpdiBjbGFzcz0iYnVncmVwb3J0LWJveC10aXRlbCI+QnVnIG9kZXIgUHJvYmxlbSBtZWxkZW48 +L2Rpdj4nICsKICAgICAgICAgICAgICAgICc8cCBjbGFzcz0iYnVncmVwb3J0LWJveC10ZXh0Ij5F +dHdhcyBmdW5rdGlvbmllcnQgbmljaHQgd2llIGVyd2FydGV0PyBNaXQgZGVtIEJ1dHRvbiB1bnRl +biDDtmZmbmV0IHNpY2ggZWluZSA8c3Ryb25nPnZvcnN0cnVrdHVyaWVydGUgRS1NYWlsPC9zdHJv +bmc+IGFuIFBISyBSb2VzZ2VuIChOVzA1MzYwOSkuIEJpdHRlIGFsbGUgQWJzY2huaXR0ZSBhdXNm +w7xsbGVuIOKAlCBiZXNvbmRlcnMgZGllIDxzdHJvbmc+U2Nocml0dGUgenVtIFJlcHJvZHV6aWVy +ZW48L3N0cm9uZz4gdW5kIG1pbmRlc3RlbnMgPHN0cm9uZz5laW5lbiBTY3JlZW5zaG90PC9zdHJv +bmc+IGRlciBGZWhsZXJzdGVsbGUuIERpZSB0ZWNobmlzY2hlbiBJbmZvcyBhbSBFbmRlIGJpdHRl +IHVudmVyw6RuZGVydCBsYXNzZW4sIHNpZSBoZWxmZW4gYmVpIGRlciBFaW5ncmVuenVuZy48L3A+ +JyArCiAgICAgICAgICAgICAgICAnPGEgY2xhc3M9ImJ0biBidWdyZXBvcnQtbWFpbC1idG4iIGhy +ZWY9IicgKyBlc2NhcGVBdHRyKG1haWx0bykgKyAnIj4nICsKICAgICAgICAgICAgICAgICAgICAn +QnVnIHBlciBFLU1haWwgbWVsZGVuIChPdXRsb29rIMO2ZmZuZW4pJyArCiAgICAgICAgICAgICAg +ICAnPC9hPicgKwogICAgICAgICAgICAnPC9kaXY+JzsKICAgICAgICB2YXIgZnVzcyA9ICc8YnV0 +dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tc2VrIiBpZD0iYnVncmVwb3J0LXNjaGxp +ZXNzZW4tYnRuIj5TY2hsaWXDn2VuPC9idXR0b24+JzsKICAgICAgICBtb2RhbFplaWdlbignQnVn +IC8gUHJvYmxlbSBtZWxkZW4nLCBrb2VycGVyLCBmdXNzLCBudWxsLCBudWxsLCB7IHJlaW5lckRp +YWxvZzogdHJ1ZSB9KTsKICAgICAgICB2YXIgc2IgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn +YnVncmVwb3J0LXNjaGxpZXNzZW4tYnRuJyk7CiAgICAgICAgaWYgKHNiKSBzYi5hZGRFdmVudExp +c3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCkgeyBtb2RhbFNjaGxpZXNzZW4odHJ1ZSk7IH0pOwog +ICAgfQoKICAgIC8vIEltcHJlc3N1bXMtTW9kYWwgbWl0IE5vdGZhbGwtQm94ICsgdm9yYXVzZ2Vm +dWVsbHRlbSBtYWlsdG86LUJ1dHRvbi4KICAgIC8vIEluaGFsdDogYWRtaW4uanNvbi5pbXByZXNz +dW0gKGZhbGxzIGxlZXIsIElNUFJFU1NVTV9ERUZBVUxUIGF1cyBhZG1pbi5qcykuCiAgICBmdW5j +dGlvbiBpbXByZXNzdW1Nb2RhbE9lZmZuZW4oKSB7CiAgICAgICAgdmFyIGluaGFsdCA9IChaLmFk +bWluICYmIFouYWRtaW4uaW1wcmVzc3VtICYmIFN0cmluZyhaLmFkbWluLmltcHJlc3N1bSkudHJp +bSgpKQogICAgICAgICAgICA/IHNhbml0aXplUmljaEh0bWwoWi5hZG1pbi5pbXByZXNzdW0pCiAg +ICAgICAgICAgIDogc2FuaXRpemVSaWNoSHRtbChJTVBSRVNTVU1fREVGQVVMVCk7CiAgICAgICAg +dmFyIG1haWx0byA9ICdtYWlsdG86cGhpbGlwcC5yb2VzZ2VuQHBvbGl6ZWkubnJ3LmRlJwogICAg +ICAgICAgICArICc/c3ViamVjdD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KCdWSTMgREdMIFBsYW51 +bmcgLSBEb3J0bXVuZCcpCiAgICAgICAgICAgICsgJyZib2R5PScgKyBlbmNvZGVVUklDb21wb25l +bnQoc3VwcG9ydE1haWxCb2R5QmF1ZW4oKSk7CgogICAgICAgIHZhciBub3RmYWxsQm94ID0KICAg +ICAgICAgICAgJzxkaXYgY2xhc3M9ImltcHJlc3N1bS1ub3RmYWxsIj4nICsKICAgICAgICAgICAg +ICAgICc8ZGl2IGNsYXNzPSJpbXByZXNzdW0tbm90ZmFsbC10aXRlbCI+Tm90ZmFsbC1Sw7xja2Zh +bGxlYmVuZTwvZGl2PicgKwogICAgICAgICAgICAgICAgJzxwIGNsYXNzPSJpbXByZXNzdW0tbm90 +ZmFsbC10ZXh0Ij5EaWUgTlctS2VubnVuZyA8Y29kZT5OVzA1MzYwOTwvY29kZT4gKDxzdHJvbmc+ +UEhLIFJvZXNnZW48L3N0cm9uZz4pIGlzdCBpbSBTZXJ2ZXIgaGFydCBhbHMgU3VwZXJVc2VyIGhp +bnRlcmxlZ3QgdW5kIGdpbHQgYXVjaCBkYW5uLCB3ZW5uIGRpZSBTdXBlclVzZXItTGlzdGUgbGVl +ciBvZGVyIHVubGVzYmFyIGlzdC4gQmVpIFByb2JsZW1lbiBtaXQgUmVjaHRlbiwgQnVncyBvZGVy +IEZyYWdlbiB6dXIgQW53ZW5kdW5nIHN0ZWh0IFBISyBSb2VzZ2VuIGFscyBBbnNwcmVjaHBhcnRu +ZXIgdW5kIFLDvGNrZmFsbGViZW5lIGJlcmVpdC48L3A+JyArCiAgICAgICAgICAgICAgICAnPGEg +Y2xhc3M9ImJ0biBidG4tcHJpbWFlciBpbXByZXNzdW0tbWFpbC1idG4iIGhyZWY9IicgKyBlc2Nh +cGVBdHRyKG1haWx0bykgKyAnIj4nICsKICAgICAgICAgICAgICAgICAgICAnU3VwcG9ydC1BbmZy +YWdlIHBlciBFLU1haWwgKE91dGxvb2sgw7ZmZm5lbiknICsKICAgICAgICAgICAgICAgICc8L2E+ +JyArCiAgICAgICAgICAgICc8L2Rpdj4nOwoKICAgICAgICB2YXIga29lcnBlciA9ICc8ZGl2IGNs +YXNzPSJpbXByZXNzdW0taW5oYWx0IiBzdHlsZT0ibGluZS1oZWlnaHQ6MS42Ij4nICsgaW5oYWx0 +ICsgJzwvZGl2PicgKyBub3RmYWxsQm94OwogICAgICAgIHZhciBmdXNzID0gJzxidXR0b24gdHlw +ZT0iYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1wcmltYWVyIiBpZD0iaW1wcmVzc3VtLXNjaGxpZXNz +ZW4tYnRuIj5TY2hsaWXDn2VuPC9idXR0b24+JzsKICAgICAgICBtb2RhbFplaWdlbignSW1wcmVz +c3VtJywga29lcnBlciwgZnVzcywgbnVsbCwgbnVsbCwgeyByZWluZXJEaWFsb2c6IHRydWUgfSk7 +CiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ltcHJlc3N1bS1zY2hsaWVzc2VuLWJ0 +bicpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIG1v +ZGFsU2NobGllc3Nlbih0cnVlKTsKICAgICAgICB9KTsKICAgIH0KCiAgICAvLyA9PT09PSBMb2di +dWNoID09PT09IC0+IGpzL2xvZ2J1Y2guanMKICAgIC8vID09PT09IEV4Y2VsLUltcG9ydGVyID09 +PT09IC0+IGpzL2ltcG9ydC9leGNlbC1pbXBvcnQuanMKICAgIC8vID09PT09IEV2ZW50LUxpc3Rl +bmVyID09PT09CiAgICAvLyBUb3AtTGV2ZWwtV3JhcHBlci4gRGllIGRyZWkgU3ViLUZ1bmt0aW9u +ZW4gc2luZCBpbSBCb290c3RyYXAtU2NvcGUKICAgIC8vIGRlZmluaWVydCB1bmQgZ3JlaWZlbiB2 +aWEgQ2xvc3VyZSBhdWYgYWxsZXMgaW4gZGVyIElJRkUgenUuCgogICAgZnVuY3Rpb24gZXZlbnRM +aXN0ZW5lckVpbnJpY2h0ZW4oKSB7CiAgICAgICAgZ3JpZExpc3RlbmVyRWlucmljaHRlbigpOwog +ICAgICAgIGFkbWluTGlzdGVuZXJFaW5yaWNodGVuKCk7CiAgICAgICAgcmVzdExpc3RlbmVyRWlu +cmljaHRlbigpOwogICAgfQoKICAgIGZ1bmN0aW9uIGdyaWRMaXN0ZW5lckVpbnJpY2h0ZW4oKSB7 +CiAgICAgICAgLy8gRGlydHktVHJhY2tpbmc6IGFsbGUgYmVhcmJlaXRiYXJlbiBBZG1pbi1TZWt0 +aW9uZW4gYW5tZWxkZW4gKwogICAgICAgIC8vIERlbGVnYXRlZC1MaXN0ZW5lciwgZGVyIElucHV0 +cy9DaGFuZ2VzIGFuIGRlbiBwYXNzZW5kZW4gRGlydHktS2V5CiAgICAgICAgLy8gcm91dGV0LiBT +aWVoZSBkaXJ0eVJlZ2lzdHJpZXJlL2RpcnR5UHJ1ZWZlbiBvYmVuLgogICAgICAgIGRpcnR5VHJh +Y2tlckVpbnJpY2h0ZW4oKTsKCiAgICAgICAgLy8gTmF2aWdhdGlvbgogICAgICAgIGRvY3VtZW50 +LnF1ZXJ5U2VsZWN0b3JBbGwoJy5uYXYtYnRuJykuZm9yRWFjaChmdW5jdGlvbihidG4pIHsKICAg +ICAgICAgICAgYnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKSB7CiAgICAg +ICAgICAgICAgICAvLyBWb3IgSGVhZGVyLVRhYi1XZWNoc2VsOiBDaGVjay1Nb2RhbCBiZWkgdW5n +ZXNwZWljaGVydGVuIEFlbmRlcnVuZ2VuCiAgICAgICAgICAgICAgICBkaXJ0eVBydWVmZW4oZnVu +Y3Rpb24oKSB7IGFuc2ljaHRXZWNoc2VsbihidG4uZ2V0QXR0cmlidXRlKCdkYXRhLWFuc2ljaHQn +KSk7IH0pOwogICAgICAgICAgICB9KTsKICAgICAgICB9KTsKICAgICAgICBiZXNldHp1bmdza29u +dHJvbGxlRXZlbnRzQXVmaGFlbmdlbigpOwoKICAgICAgICAvLyBBZG1pbi1UYWJzIChTaWRlYmFy +KQogICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5hZG1pbi1uYXYtYnRuJykuZm9y +RWFjaChmdW5jdGlvbihidG4pIHsKICAgICAgICAgICAgYnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2Ns +aWNrJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICBkaXJ0eVBydWVmZW4oZnVuY3Rpb24o +KSB7CiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmFkbWlu +LW5hdi1idG4nKS5mb3JFYWNoKGZ1bmN0aW9uKGIpIHsgYi5jbGFzc0xpc3QucmVtb3ZlKCdha3Rp +dicpOyB9KTsKICAgICAgICAgICAgICAgICAgICBidG4uY2xhc3NMaXN0LmFkZCgnYWt0aXYnKTsK +ICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuYWRtaW4tdGFi +JykuZm9yRWFjaChmdW5jdGlvbih0KSB7IHQuY2xhc3NMaXN0LmFkZCgndmVyc3RlY2t0Jyk7IH0p +OwogICAgICAgICAgICAgICAgICAgIHZhciBuYW1lID0gYnRuLmdldEF0dHJpYnV0ZSgnZGF0YS1h +ZG1pbi10YWInKTsKICAgICAgICAgICAgICAgICAgICB2YXIgdGFiID0gZG9jdW1lbnQuZ2V0RWxl +bWVudEJ5SWQoJ2FkbWluLXRhYi0nICsgbmFtZSk7CiAgICAgICAgICAgICAgICAgICAgaWYgKHRh +YikgdGFiLmNsYXNzTGlzdC5yZW1vdmUoJ3ZlcnN0ZWNrdCcpOwogICAgICAgICAgICAgICAgICAg +IC8vIEhpbndlaXNlLVByb3Rva29sbCBsYXp5IGxhZGVuLCBzb2JhbGQgZGVyIFN1Yi1UYWIgYWt0 +aXYgd2lyZC4KICAgICAgICAgICAgICAgICAgICBpZiAobmFtZSA9PT0gJ2hpbndlaXNlLXByb3Rv +a29sbCcpIGhpbndlaXNlUHJvdG9rb2xsUmVuZGVybigpOwogICAgICAgICAgICAgICAgICAgIC8v +IEVyc2NoZWludW5nc2JpbGQ6IGRlZmVuc2l2ZXIgcmUtcmVuZGVyIGJlaW0gS2xpY2sgYXVmIGRl +bgogICAgICAgICAgICAgICAgICAgIC8vIFN1Yi1UYWIsIGRhbWl0IGRlciBFZGl0b3IgYXVjaCBk +YW5uIGVyc2NoZWludCwgd2VubgogICAgICAgICAgICAgICAgICAgIC8vIGFkbWluUmVuZGVybigp +IHZvciBkZW0gZXJzdGVuIFRhYi1Td2l0Y2ggbm9jaCBuaWNodCBsaWVmLgogICAgICAgICAgICAg +ICAgICAgIGlmIChuYW1lID09PSAnZXJzY2hlaW51bmdzYmlsZCcpIGVyc2NoZWludW5nc2JpbGRS +ZW5kZXJuKCk7CiAgICAgICAgICAgICAgICAgICAgLy8gU3RhdGlzdGlrLUxheW91dDogcmUtcmVu +ZGVybiBiZWltIFRhYi1XZWNoc2VsLCBkYW1pdCBmcmlzY2gKICAgICAgICAgICAgICAgICAgICAv +LyBnZWJhdXRlIEJhdWthc3Rlbi1LYWNoZWxuIHNvZm9ydCBpbSBSYXN0ZXIgZXJzY2hlaW5lbi4K +ICAgICAgICAgICAgICAgICAgICBpZiAobmFtZSA9PT0gJ3N0YXRpc3Rpay1sYXlvdXQnKSBzdGF0 +aXN0aWtMYXlvdXRSZW5kZXJuKCk7CiAgICAgICAgICAgICAgICAgICAgLy8gU3RhdGlzdGlrLUJ1 +aWxkZXI6IGxhenkgcmVuZGVybiAoRW5naW5lIGJhdXQgRmFrdGVudGFiZWxsZSkuCiAgICAgICAg +ICAgICAgICAgICAgaWYgKG5hbWUgPT09ICdzdGF0aXN0aWstYnVpbGRlcicpIHN0YXRpc3Rpa0J1 +aWxkZXJSZW5kZXJuKCk7CiAgICAgICAgICAgICAgICAgICAgLy8gRXhjZWwtRXhwb3J0OiBsYXp5 +IHJlbmRlcm4sIHdlbm4gZGVyIFRhYiBha3RpdiB3aXJkLgogICAgICAgICAgICAgICAgICAgIGlm +IChuYW1lID09PSAnZXhwb3J0JykgZXhwb3J0UmVuZGVybigpOwogICAgICAgICAgICAgICAgICAg +IC8vIFN0YW5kYXJkcmVjaHRlIChVc2VyKTogbGF6eSByZW5kZXJuLgogICAgICAgICAgICAgICAg +ICAgIGlmIChuYW1lID09PSAnc3RhbmRhcmRyZWNodGUnKSBzdGFuZGFyZHJlY2h0ZVJlbmRlcm4o +KTsKICAgICAgICAgICAgICAgICAgICAvLyBVcGRhdGUtQmVyZWljaCAoU3VwZXJVc2VyKTogU3Rh +dHVzIGxhZGVuLCBzb2JhbGQgYWt0aXYuCiAgICAgICAgICAgICAgICAgICAgaWYgKG5hbWUgPT09 +ICd1cGRhdGUnKSB1cGRhdGVCZXJlaWNoUmVuZGVybigpOwogICAgICAgICAgICAgICAgICAgIC8v +IERyYWZ0LVJlc3RvcmUtQmFubmVyIGFuYmlldGVuLCBmYWxscyBmdWVyIGRpZXNlbiBUYWIgZWlu +CiAgICAgICAgICAgICAgICAgICAgLy8gQXV0by1TYXZlLURyYWZ0IGltIGxvY2FsU3RvcmFnZSBs +aWVndCAoUGhhc2UgOSkuCiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBhZG1pbkRyYWZ0 +QmFubmVyQW5iaWV0ZW4gPT09ICdmdW5jdGlvbicpIGFkbWluRHJhZnRCYW5uZXJBbmJpZXRlbihu +YW1lKTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9KTsKICAgICAgICB9KTsKICAg +ICAgICBhZG1pblN1YnRhYkZpbHRlckFud2VuZGVuKCk7CgogICAgICAgIC8vIEFkbWluLVN1Yi1O +YXZpZ2F0aW9uIChpbm5lcmhhbGIgZWluZXMgVG9wLVRhYnMpLgogICAgICAgIC8vIEtsaWNrIGF1 +ZiBlaW5lbiAuYWRtaW4tc3VibmF2LWJ0biBzY2hhbHRldCBpbSB1bXNjaGxpZXNzZW5kZW4gLmFk +bWluLXRhYgogICAgICAgIC8vIHp3aXNjaGVuIFN1Yi1TZWt0aW9uZW4gdW0sIGRpZSBwZXIgZGF0 +YS1zdWJ0YWI9Ii4uLiIgbWFya2llcnQgc2luZC4KICAgICAgICAvLyBCc3A6ICJGZWllcnRhZ2Ug +JiBGZXJpZW4iIC0+IFN1Yi1UYWJzICJGZWllcnRhZ2UiIC8gIlNjaHVsZmVyaWVuIi4KICAgICAg +ICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuYWRtaW4tc3VibmF2JykuZm9yRWFjaChmdW5j +dGlvbihuYXYpIHsKICAgICAgICAgICAgbmF2LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVu +Y3Rpb24oZXYpIHsKICAgICAgICAgICAgICAgIHZhciBidG4gPSBldi50YXJnZXQuY2xvc2VzdCgn +LmFkbWluLXN1Ym5hdi1idG4nKTsKICAgICAgICAgICAgICAgIGlmICghYnRuIHx8ICFuYXYuY29u +dGFpbnMoYnRuKSkgcmV0dXJuOwogICAgICAgICAgICAgICAgdmFyIHppZWwgPSBidG4uZ2V0QXR0 +cmlidXRlKCdkYXRhLXN1YnRhYicpOwogICAgICAgICAgICAgICAgaWYgKCF6aWVsKSByZXR1cm47 +CiAgICAgICAgICAgICAgICB2YXIgdGFiID0gbmF2LmNsb3Nlc3QoJy5hZG1pbi10YWInKSB8fCBu +YXYucGFyZW50RWxlbWVudDsKICAgICAgICAgICAgICAgIGlmICghdGFiKSByZXR1cm47CiAgICAg +ICAgICAgICAgICBuYXYucXVlcnlTZWxlY3RvckFsbCgnLmFkbWluLXN1Ym5hdi1idG4nKS5mb3JF +YWNoKGZ1bmN0aW9uKGIpIHsKICAgICAgICAgICAgICAgICAgICBiLmNsYXNzTGlzdC50b2dnbGUo +J2FrdGl2JywgYiA9PT0gYnRuKTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAg +dGFiLnF1ZXJ5U2VsZWN0b3JBbGwoJ1tkYXRhLXN1YnRhYi1zZWt0aW9uXScpLmZvckVhY2goZnVu +Y3Rpb24oc2VrKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIGlzdCA9IHNlay5nZXRBdHRyaWJ1 +dGUoJ2RhdGEtc3VidGFiLXNla3Rpb24nKSA9PT0gemllbDsKICAgICAgICAgICAgICAgICAgICBz +ZWsuY2xhc3NMaXN0LnRvZ2dsZSgndmVyc3RlY2t0JywgIWlzdCk7CiAgICAgICAgICAgICAgICB9 +KTsKICAgICAgICAgICAgfSk7CiAgICAgICAgfSk7CgogICAgICAgIC8vIEhpbndlaXNlLVByb3Rv +a29sbDogRmlsdGVyICsgQWt0dWFsaXNpZXJlbi1CdXR0b24KICAgICAgICAoZnVuY3Rpb24oKSB7 +CiAgICAgICAgICAgIHZhciBidG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaHAtYWt0dWFs +aXNpZXJlbicpOwogICAgICAgICAgICBpZiAoYnRuKSBidG4uYWRkRXZlbnRMaXN0ZW5lcignY2xp +Y2snLCBoaW53ZWlzZVByb3Rva29sbFJlbmRlcm4pOwogICAgICAgICAgICBbJ2hwLWZpbHRlci10 +eXAnLCAnaHAtZmlsdGVyLXZvbicsICdocC1maWx0ZXItYmlzJ10uZm9yRWFjaChmdW5jdGlvbihp +ZCkgewogICAgICAgICAgICAgICAgdmFyIGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQp +OwogICAgICAgICAgICAgICAgaWYgKGVsKSBlbC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBo +aW53ZWlzZVByb3Rva29sbFJlbmRlcm4pOwogICAgICAgICAgICB9KTsKICAgICAgICB9KSgpOwoK +ICAgICAgICAvLyBHcmlkLUludGVyYWt0aW9uOgogICAgICAgIC8vICAgSG92ZXIgdWViZXIgZWlu +ZSBaZWxsZSAgLT4gRHJhZy1GdWVsbC1HcmlmZiBlcnNjaGVpbnQgdW50ZW4gcmVjaHRzCiAgICAg +ICAgLy8gICBFaW5mYWNoLUtsaWNrICAgICAgICAgICAtPiBTY2hpY2h0LUVkaXRvciBvZWZmbmV0 +IHNpY2ggZGlyZWt0CiAgICAgICAgLy8gQmVpbSBWZXJsYXNzZW4gZGVzIEdyaWRzIHZlcnNjaHdp +bmRldCBkYXMgSGFuZGxlIHdpZWRlciwgYXVzc2VyCiAgICAgICAgLy8gd2VubiBkaWUgTWF1cyBh +dWYgZGFzIEhhbmRsZSB3YW5kZXJ0IG9kZXIgZ2VyYWRlIGVpbiBEcmFnIGxhZXVmdC4KICAgICAg +ICB2YXIgZ3JpZERhdGVuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2dyaWQtZGF0ZW4nKTsK +ICAgICAgICB2YXIgaG92ZXJaZWxsZSA9IG51bGw7CiAgICAgICAgZ3JpZERhdGVuLmFkZEV2ZW50 +TGlzdGVuZXIoJ21vdXNlb3ZlcicsIGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgaWYgKGZ1ZWxs +SXN0QWt0aXYoKSkgcmV0dXJuOyAvLyBsYXVmZW5kZXIgRHJhZyAtIEhhbmRsZSBuaWNodCB1bXNl +dHplbgogICAgICAgICAgICB2YXIgemVsbGUgPSBlLnRhcmdldC5jbG9zZXN0KCcuZ3JpZC16ZWxs +ZScpOwogICAgICAgICAgICBpZiAoIXplbGxlIHx8IHplbGxlID09PSBob3ZlclplbGxlKSByZXR1 +cm47CiAgICAgICAgICAgIGhvdmVyWmVsbGUgPSB6ZWxsZTsKICAgICAgICAgICAgZnVlbGxIYW5k +bGVBblplbGxlKHplbGxlKTsKICAgICAgICAgICAgLy8gS29tbWVudGFyLVBvcG92ZXI6IG51ciBh +dWYgWmVsbGVuIG1pdCBNYXJrZXIuIFZlcnpvZWdlcnRlcgogICAgICAgICAgICAvLyBUcmlnZ2Vy +IChpbiBkZXIgRnVua3Rpb24gc2VsYnN0KSB2ZXJoaW5kZXJ0IEZsYWNrZXJuIGJlaW0KICAgICAg +ICAgICAgLy8gc2NobmVsbGVuIFVlYmVyd2lzY2hlbiDigJQgZGllIFBvcG92ZXItRnVua3Rpb24g +aXN0IG5vLW9wIGZ1ZXIKICAgICAgICAgICAgLy8gWmVsbGVuIG9obmUgaGF0LWtvbW1lbnRhci4K +ICAgICAgICAgICAgaWYgKHplbGxlLmNsYXNzTGlzdC5jb250YWlucygnaGF0LWtvbW1lbnRhcicp +KSB7CiAgICAgICAgICAgICAgICBrb21tZW50YXJQb3BvdmVyWmVpZ2VuKHplbGxlKTsKICAgICAg +ICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGtvbW1lbnRhclBvcG92ZXJWZXJzdGVja2Vu +KCk7CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgICBncmlkRGF0ZW4uYWRkRXZlbnRM +aXN0ZW5lcignbW91c2VsZWF2ZScsIGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgaWYgKGZ1ZWxs +SXN0QWt0aXYoKSkgcmV0dXJuOwogICAgICAgICAgICB2YXIgcnQgPSBlLnJlbGF0ZWRUYXJnZXQ7 +CiAgICAgICAgICAgIGlmIChydCAmJiBydC5pZCA9PT0gJ2ZpbGwtaGFuZGxlJykgcmV0dXJuOwog +ICAgICAgICAgICAvLyBXZW5uIGRlciBQb2ludGVyIGF1ZiBkYXMgS29tbWVudGFyLVBvcG92ZXIg +d2FuZGVydCwgTklDSFQKICAgICAgICAgICAgLy8gc2NobGllc3NlbiDigJQgZGVyIFBvcG92ZXIt +SGFuZGxlciBoYWVsdCBlcyBvZmZlbi4KICAgICAgICAgICAgaWYgKHJ0ICYmIHJ0LmNsb3Nlc3Qg +JiYgcnQuY2xvc2VzdCgnI3ZpMy1rb21tZW50YXItcG9wb3ZlcicpKSByZXR1cm47CiAgICAgICAg +ICAgIGhvdmVyWmVsbGUgPSBudWxsOwogICAgICAgICAgICBmdWVsbEhhbmRsZVZlcnN0ZWNrZW4o +KTsKICAgICAgICAgICAga29tbWVudGFyUG9wb3ZlclZlcnN0ZWNrZW4oKTsKICAgICAgICB9KTsK +ICAgICAgICAvLyBJbnRlcmFrdGlvbiAoVW1iYXUgMjAyNi0wNi0xNSwgVXNlci1XdW5zY2gpOiBM +aW5rc2tsaWNrIE1BUktJRVJUIGRpZQogICAgICAgIC8vIFplbGxlIG51ciAoa2VpbiBMb2NrLCBr +ZWluIEVkaXRvcikg4oCUIHNvIGVyemV1Z3QgYmVpbGFldWZpZ2VzIEtsaWNrZW4KICAgICAgICAv +LyBrZWluZSBHZWlzdGVyLVNwZXJyZW4gbWVoci4gV0VMQ0hFIEFrdGlvbiBkZW4gU2NoaWNodC1F +ZGl0b3Igb2VmZm5ldCwKICAgICAgICAvLyBpc3QgaW0gQWRtaW4tQmFja2VuZCBlaW5zdGVsbGJh +ciAoYWRtaW4uZWRpdG9yVHJpZ2dlcik6ICdyZWNodHMnCiAgICAgICAgLy8gKERlZmF1bHQpLCAn +bGlua3MnLCAnbWl0dGUnIChNYXVzcmFkLUtsaWNrKSBvZGVyICdkb3BwZWwnLgogICAgICAgIGZ1 +bmN0aW9uIHplbGxlTWFya2llcmVuKHplbGxlKSB7CiAgICAgICAgICAgIHZhciBhbHQgPSBncmlk +RGF0ZW4ucXVlcnlTZWxlY3RvcignLmdyaWQtemVsbGUtbWFya2llcnQnKTsKICAgICAgICAgICAg +aWYgKGFsdCAmJiBhbHQgIT09IHplbGxlKSBhbHQuY2xhc3NMaXN0LnJlbW92ZSgnZ3JpZC16ZWxs +ZS1tYXJraWVydCcpOwogICAgICAgICAgICBpZiAoemVsbGUpIHplbGxlLmNsYXNzTGlzdC5hZGQo +J2dyaWQtemVsbGUtbWFya2llcnQnKTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gZWRpdG9y +VHJpZ2dlcigpIHsKICAgICAgICAgICAgdmFyIHQgPSAoWi5hZG1pbiAmJiBaLmFkbWluLmVkaXRv +clRyaWdnZXIpIHx8ICdyZWNodHMnOwogICAgICAgICAgICByZXR1cm4gKHQgPT09ICdsaW5rcycg +fHwgdCA9PT0gJ21pdHRlJyB8fCB0ID09PSAnZG9wcGVsJykgPyB0IDogJ3JlY2h0cyc7CiAgICAg +ICAgfQogICAgICAgIGZ1bmN0aW9uIGVkaXRvckFuWmVsbGVPZWZmbmVuKHplbGxlKSB7IHplbGxl +TWFya2llcmVuKHplbGxlKTsgZWRpdG9yT2VmZm5lbih6ZWxsZSk7IH0KICAgICAgICAvLyBFaW5t +YWxpZ2VyIERpc2NvdmVyeS1IaW50OiBlcmtsYWVydCBkaWUgYWt0dWVsbCBrb25maWd1cmllcnRl +IEJlbGVndW5nCiAgICAgICAgLy8gYmVpbSBlcnN0ZW4gTGlua3NrbGljaywgZGFuYWNoIG5pZSB3 +aWVkZXIgKGxvY2FsU3RvcmFnZS1GbGFnOyBSZXNldAogICAgICAgIC8vIGJlaSBUcmlnZ2VyLVdl +Y2hzZWwgdWViZXIgZGFzIFN1ZmZpeCBpbSBLZXkpLgogICAgICAgIHZhciBUUklHR0VSX0xBQkVM +ID0geyByZWNodHM6ICdSZWNodHNrbGljaycsIGxpbmtzOiAnTGlua3NrbGljaycsIG1pdHRlOiAn +TWF1c3JhZC1LbGljayAoTWl0dGUpJywgZG9wcGVsOiAnRG9wcGVsa2xpY2snIH07CiAgICAgICAg +ZnVuY3Rpb24gZWRpdG9yVHJpZ2dlckhpbnRFaW5tYWxpZygpIHsKICAgICAgICAgICAgdmFyIHQg +PSBlZGl0b3JUcmlnZ2VyKCk7CiAgICAgICAgICAgIGlmICh0ID09PSAnbGlua3MnKSByZXR1cm47 +IC8vIExpbmtza2xpY2sgb2VmZm5ldCBqYSBkaXJla3Qg4oCUIGtlaW4gSGlud2VpcyBub2V0aWcK +ICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgIHZhciBrZXkgPSAndmkzLmVkaXRvclRy +aWdnZXJIaW50LicgKyB0OwogICAgICAgICAgICAgICAgaWYgKGxvY2FsU3RvcmFnZS5nZXRJdGVt +KGtleSkgPT09ICcxJykgcmV0dXJuOwogICAgICAgICAgICAgICAgdG9hc3QoJ0xpbmtza2xpY2sg +bWFya2llcnQgZGllIFplbGxlLiBEZW4gU2NoaWNodC1FZGl0b3Igw7ZmZm5lc3QgZHUgbWl0ICcg +KyAoVFJJR0dFUl9MQUJFTFt0XSB8fCAnUmVjaHRza2xpY2snKSArICcgYXVmIGRpZSBaZWxsZS4n +LCAnaW5mbycsIHsgZGF1ZXI6IDkwMDAgfSk7CiAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uu +c2V0SXRlbShrZXksICcxJyk7CiAgICAgICAgICAgIH0gY2F0Y2ggKF8pIHsgLyogbG9jYWxTdG9y +YWdlIGdnZi4gYmxvY2tpZXJ0ICovIH0KICAgICAgICB9CiAgICAgICAgLy8gTGlua3NrbGljazog +bWFya2llcnQgaW1tZXIuIElzdCBMaW5rc2tsaWNrIGRlciBrb25maWd1cmllcnRlIFRyaWdnZXIs +CiAgICAgICAgLy8gb2VmZm5ldCBlciB6dXNhZXR6bGljaCBkZW4gRWRpdG9yLgogICAgICAgIGdy +aWREYXRlbi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKGUpIHsKICAgICAgICAg +ICAgdmFyIHplbGxlID0gZS50YXJnZXQuY2xvc2VzdCgnLmdyaWQtemVsbGUnKTsKICAgICAgICAg +ICAgaWYgKCF6ZWxsZSkgcmV0dXJuOwogICAgICAgICAgICBpZiAoZWRpdG9yVHJpZ2dlcigpID09 +PSAnbGlua3MnKSB7IGVkaXRvckFuWmVsbGVPZWZmbmVuKHplbGxlKTsgcmV0dXJuOyB9CiAgICAg +ICAgICAgIHplbGxlTWFya2llcmVuKHplbGxlKTsKICAgICAgICAgICAgaWYgKGRhcmZaZWxsZUVk +aXRpZXJlbih6ZWxsZS5nZXRBdHRyaWJ1dGUoJ2RhdGEtcGVyc29uJykpKSBlZGl0b3JUcmlnZ2Vy +SGludEVpbm1hbGlnKCk7CiAgICAgICAgfSk7CiAgICAgICAgLy8gUmVjaHRza2xpY2s6IG9lZmZu +ZXQgZGVuIEVkaXRvciB3ZW5uIGtvbmZpZ3VyaWVydCAobmF0aXZlcyBLb250ZXh0bWVudQogICAg +ICAgIC8vIGRhbm4gdW50ZXJkcnVlY2tlbik7IHNvbnN0IGJsZWlidCBkYXMgbmF0aXZlIEJyb3dz +ZXItTWVudSBlcmhhbHRlbi4KICAgICAgICBncmlkRGF0ZW4uYWRkRXZlbnRMaXN0ZW5lcignY29u +dGV4dG1lbnUnLCBmdW5jdGlvbihlKSB7CiAgICAgICAgICAgIHZhciB6ZWxsZSA9IGUudGFyZ2V0 +LmNsb3Nlc3QoJy5ncmlkLXplbGxlJyk7CiAgICAgICAgICAgIGlmICghemVsbGUgfHwgZWRpdG9y +VHJpZ2dlcigpICE9PSAncmVjaHRzJykgcmV0dXJuOwogICAgICAgICAgICBlLnByZXZlbnREZWZh +dWx0KCk7CiAgICAgICAgICAgIGVkaXRvckFuWmVsbGVPZWZmbmVuKHplbGxlKTsKICAgICAgICB9 +KTsKICAgICAgICAvLyBNYXVzcmFkLS9NaXR0ZWxrbGljay4gbW91c2Vkb3duIHZlcmhpbmRlcnQg +ZGVuIEF1dG9zY3JvbGwtQ3Vyc29yLAogICAgICAgIC8vIGF1eGNsaWNrIChidXR0b24gMSA9IE1p +dHRlKSBvZWZmbmV0IGRhbm4gZGVuIEVkaXRvci4KICAgICAgICBncmlkRGF0ZW4uYWRkRXZlbnRM +aXN0ZW5lcignbW91c2Vkb3duJywgZnVuY3Rpb24oZSkgewogICAgICAgICAgICBpZiAoZS5idXR0 +b24gPT09IDEgJiYgZWRpdG9yVHJpZ2dlcigpID09PSAnbWl0dGUnICYmIGUudGFyZ2V0LmNsb3Nl +c3QoJy5ncmlkLXplbGxlJykpIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgICB9KTsKICAgICAg +ICBncmlkRGF0ZW4uYWRkRXZlbnRMaXN0ZW5lcignYXV4Y2xpY2snLCBmdW5jdGlvbihlKSB7CiAg +ICAgICAgICAgIGlmIChlLmJ1dHRvbiAhPT0gMSB8fCBlZGl0b3JUcmlnZ2VyKCkgIT09ICdtaXR0 +ZScpIHJldHVybjsKICAgICAgICAgICAgdmFyIHplbGxlID0gZS50YXJnZXQuY2xvc2VzdCgnLmdy +aWQtemVsbGUnKTsKICAgICAgICAgICAgaWYgKCF6ZWxsZSkgcmV0dXJuOwogICAgICAgICAgICBl +LnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgICAgIGVkaXRvckFuWmVsbGVPZWZmbmVuKHplbGxl +KTsKICAgICAgICB9KTsKICAgICAgICAvLyBEb3BwZWxrbGljay4KICAgICAgICBncmlkRGF0ZW4u +YWRkRXZlbnRMaXN0ZW5lcignZGJsY2xpY2snLCBmdW5jdGlvbihlKSB7CiAgICAgICAgICAgIGlm +IChlZGl0b3JUcmlnZ2VyKCkgIT09ICdkb3BwZWwnKSByZXR1cm47CiAgICAgICAgICAgIHZhciB6 +ZWxsZSA9IGUudGFyZ2V0LmNsb3Nlc3QoJy5ncmlkLXplbGxlJyk7CiAgICAgICAgICAgIGlmICh6 +ZWxsZSkgZWRpdG9yQW5aZWxsZU9lZmZuZW4oemVsbGUpOwogICAgICAgIH0pOwoKICAgICAgICAv +LyBLb21iaW5pZXJ0ZSBBbmxhc3MtWmVpbGUgKE1haSAyMDI2KTogRmVpZXJ0YWcgKyBTb25kZXJ0 +ZXJtaW4gKwogICAgICAgIC8vIEdlYnVydHN0YWcgaW4gZWluZXIgWmVpbGUuIENsaWNrLVJvdXRp +bmcgbmFjaCBnZXRyb2ZmZW5lbSBFbGVtZW50OgogICAgICAgIC8vIC0gU29uZGVydGVybWluLUlj +b24gLT4gYmVzdGVoZW5kZXMgU29uZGVyLU1vZGFsL0VkaXQgKGplIG5hY2ggUm9sbGUpCiAgICAg +ICAgLy8gLSBGZWllcnRhZy1aZWxsZSAgICAtPiBGZWllcnRhZy1EZXRhaWwtTW9kYWwgKEJlc2No +cmVpYnVuZyArIExpbmspCiAgICAgICAgLy8gLSBsZWVyZSBaZWxsZSArIFNVICAtPiBuZXVlciBT +b25kZXJ0ZXJtaW4KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGF0dW0temVpbGUt +YW5sYXNzJykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbihlKSB7CiAgICAgICAg +ICAgIHZhciBzb25kZXJJY29uID0gZS50YXJnZXQuY2xvc2VzdCgnLmtkLWV2ZW50LXNvbmRlcicp +OwogICAgICAgICAgICBpZiAoc29uZGVySWNvbikgewogICAgICAgICAgICAgICAgdmFyIHNvbmRl +ckRhdHVtID0gc29uZGVySWNvbi5nZXRBdHRyaWJ1dGUoJ2RhdGEtc29uZGVyLWRhdHVtJyk7CiAg +ICAgICAgICAgICAgICB2YXIgc29uZGVyID0gc29uZGVyRGF0dW0gPyBzb25kZXJGdWVyRGF0dW0o +c29uZGVyRGF0dW0pIDogbnVsbDsKICAgICAgICAgICAgICAgIGlmIChaLnJlY2h0ZS5pc3RTdXBl +clVzZXIpIHsKICAgICAgICAgICAgICAgICAgICBzb25kZXJFZGl0TW9kYWxaZWlnZW4oc29uZGVy +ID8gc29uZGVyLmRhdHVtIDogbnVsbCk7CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHNvbmRl +cikgewogICAgICAgICAgICAgICAgICAgIHNvbmRlckFuc2ljaHRNb2RhbFplaWdlbihzb25kZXIp +OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9 +CiAgICAgICAgICAgIHZhciBmdFplbGxlID0gZS50YXJnZXQuY2xvc2VzdCgnLmtkLWFubGFzcy1m +ZWllcnRhZycpOwogICAgICAgICAgICBpZiAoZnRaZWxsZSkgewogICAgICAgICAgICAgICAgdmFy +IGRhdHVtID0gZnRaZWxsZS5nZXRBdHRyaWJ1dGUoJ2RhdGEtZGF0dW0nKTsKICAgICAgICAgICAg +ICAgIHZhciBpbmZvID0gKFoudGFnSW5mb3MgfHwge30pW2RhdHVtXSB8fCB7fTsKICAgICAgICAg +ICAgICAgIGlmIChpbmZvLnR5cCA9PT0gJ2ZlaWVydGFnJykgewogICAgICAgICAgICAgICAgICAg +IHZhciBuYW1lID0gaW5mby5uYW1lIHx8ICdGZWllcnRhZyc7CiAgICAgICAgICAgICAgICAgICAg +dmFyIGt1cnogPSBpbmZvLmt1cnpiZXNjaHJlaWJ1bmcgfHwgJyc7CiAgICAgICAgICAgICAgICAg +ICAgdmFyIHVybCA9IGluZm8uaW5mb1VybCB8fCAnJzsKICAgICAgICAgICAgICAgICAgICB2YXIg +a29lcnBlciA9ICc8ZGl2IHN0eWxlPSJmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDoxLjU1Ij4n +ICsKICAgICAgICAgICAgICAgICAgICAgICAgKGt1cnogPyBlc2NhcGVIVE1MKGt1cnopIDogJzxl +bSBzdHlsZT0iY29sb3I6dmFyKC0tdGV4dC1tdXRlZCkiPktlaW5lIEJlc2NocmVpYnVuZyBoaW50 +ZXJsZWd0LjwvZW0+JykgKwogICAgICAgICAgICAgICAgICAgICAgICAnPC9kaXY+JzsKICAgICAg +ICAgICAgICAgICAgICB2YXIgZnVzcyA9ICcnOwogICAgICAgICAgICAgICAgICAgIGlmICh1cmwp +IHsKICAgICAgICAgICAgICAgICAgICAgICAgZnVzcyArPSAnPGEgY2xhc3M9ImJ0biBidG4tc2Vr +IGJ0bi1rbGVpbiIgaHJlZj0iJyArIGVzY2FwZUF0dHIodXJsKSArICciIHRhcmdldD0iX2JsYW5r +IiByZWw9Im5vb3BlbmVyIG5vcmVmZXJyZXIiPk1laHIgYmVpIFdpa2lwZWRpYSDihpc8L2E+JzsK +ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZnVzcyArPSAnPGJ1dHRv +biBjbGFzcz0iYnRuIGJ0bi1wcmltYWVyIGJ0bi1rbGVpbiIgaWQ9ImZ0LW1vZGFsLXNjaGxpZXNz +ZW4iPlNjaGxpZcOfZW48L2J1dHRvbj4nOwogICAgICAgICAgICAgICAgICAgIG1vZGFsWmVpZ2Vu +KG5hbWUsIGtvZXJwZXIsIGZ1c3MpOwogICAgICAgICAgICAgICAgICAgIHZhciBzY2hsaWVzc2Vu +ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Z0LW1vZGFsLXNjaGxpZXNzZW4nKTsKICAgICAg +ICAgICAgICAgICAgICBpZiAoc2NobGllc3Nlbikgc2NobGllc3Nlbi5hZGRFdmVudExpc3RlbmVy +KCdjbGljaycsIGZ1bmN0aW9uKCkgeyBtb2RhbFNjaGxpZXNzZW4oKTsgfSk7CiAgICAgICAgICAg +ICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAg +ICAgIC8vIEtsaWNrIGF1ZiBsZWVyZSBaZWxsZSAoa2VpbiBGZWllcnRhZy9Tb25kZXJ0ZXJtaW4p +OiBTdXBlclVzZXIKICAgICAgICAgICAgLy8ga2FubiBlaW5lbiBuZXVlbiBTb25kZXJ0ZXJtaW4g +ZnVlciBkaWVzZW4gVGFnIGFubGVnZW4uCiAgICAgICAgICAgIGlmIChaLnJlY2h0ZS5pc3RTdXBl +clVzZXIpIHsKICAgICAgICAgICAgICAgIHZhciBsZWVyWmVsbGUgPSBlLnRhcmdldC5jbG9zZXN0 +KCcua2QtemVsbGVbZGF0YS1kYXR1bV0nKTsKICAgICAgICAgICAgICAgIGlmIChsZWVyWmVsbGUp +IHNvbmRlckVkaXRNb2RhbFplaWdlbihsZWVyWmVsbGUuZ2V0QXR0cmlidXRlKCdkYXRhLWRhdHVt +JykpOwogICAgICAgICAgICB9CiAgICAgICAgfSk7CgogICAgICAgIC8vIEVkaXRvcgogICAgICAg +IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlZGl0b3ItYXVzd2FobCcpLmFkZEV2ZW50TGlzdGVu +ZXIoJ2NoYW5nZScsIGZ1bmN0aW9uKCkgeyBlZGl0b3JBdXN3YWhsKHRoaXMudmFsdWUpOyB9KTsK +ICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKGUpIHsK +ICAgICAgICAgICAgaWYgKCFlZGl0b3JBa3RpdigpKSByZXR1cm47CiAgICAgICAgICAgIHZhciBl +bCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd6ZWxsLWVkaXRvcicpOwogICAgICAgICAgICAv +LyBKRURFUiBLbGljayBhdXNzZXJoYWxiIGRlcyBFZGl0b3JzIHNjaGxpZXNzdCBpaG4gKHVuZCBn +aWJ0IGRlbgogICAgICAgICAgICAvLyBMb2NrIGZyZWkpIOKAlCBhdWNoIGF1ZiBlaW5lIGFuZGVy +ZSBaZWxsZSBvZGVyIGlyZ2VuZHdvIHNvbnN0IGltCiAgICAgICAgICAgIC8vIEJyb3dzZXIuIChG +cnVlaGVyIGJsaWViIGRlciBFZGl0b3IgYmVpIEtsaWNrIGF1ZiBlaW5lIEdyaWQtWmVsbGUKICAg +ICAgICAgICAgLy8gb2ZmZW4sIHdlaWwgZG9ydCBkZXIgRWRpdG9yIGRpcmVrdCBuZXUgZ2VvZWZm +bmV0IHd1cmRlOyBzZWl0IGRlcgogICAgICAgICAgICAvLyBMaW5rc2tsaWNrIG51ciBub2NoIG1h +cmtpZXJ0LCBzb2xsIGVyIGhpZXIgc2NobGllc3Nlbi4pCiAgICAgICAgICAgIGlmICghZWwuY29u +dGFpbnMoZS50YXJnZXQpKSBlZGl0b3JTY2hsaWVzc2VuKCk7CiAgICAgICAgfSk7CiAgICAgICAg +Ly8gUmVjaHRza2xpY2sgYXVzc2VyaGFsYiBkZXIgUGxhbnRhZmVsIHNjaGxpZXNzdCBlaW5lbiBv +ZmZlbmVuIEVkaXRvcgogICAgICAgIC8vIGViZW5mYWxscyAoc29uc3QgYmxpZWJlIGVyIGJlaW0g +S29udGV4dG1lbnUgd29hbmRlcnMgc3RlaGVuKS4KICAgICAgICBkb2N1bWVudC5hZGRFdmVudExp +c3RlbmVyKCdjb250ZXh0bWVudScsIGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgaWYgKCFlZGl0 +b3JBa3RpdigpKSByZXR1cm47CiAgICAgICAgICAgIHZhciBlbCA9IGRvY3VtZW50LmdldEVsZW1l +bnRCeUlkKCd6ZWxsLWVkaXRvcicpOwogICAgICAgICAgICB2YXIgaW1HcmlkID0gZS50YXJnZXQu +Y2xvc2VzdCAmJiBlLnRhcmdldC5jbG9zZXN0KCcjZ3JpZC1kYXRlbiAuZ3JpZC16ZWxsZScpOwog +ICAgICAgICAgICBpZiAoIWVsLmNvbnRhaW5zKGUudGFyZ2V0KSAmJiAhaW1HcmlkKSBlZGl0b3JT +Y2hsaWVzc2VuKCk7CiAgICAgICAgfSk7CiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5l +cigna2V5ZG93bicsIGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgLy8gRVNDIHNjaGxpZXNzdCBk +ZW4gWmVsbC1FZGl0b3IuIE1vZGFsLUVTQyBpc3Qgc2VpdCBTcHJpbnQgNmEKICAgICAgICAgICAg +Ly8gKGExMXksIDIwMjYtMDUtMjkpIGltIE1vZGFsLUNvbnRhaW5lciBzZWxic3QgYW5nZXNpZWRl +bHQKICAgICAgICAgICAgLy8gKGZva3VzVHJhcEFrdGl2aWVyZW4gaW4gdWlfZGlhbG9nLmpzKSDi +gJQgZGVyIHNjaGxpZXNzdCBkYW5uCiAgICAgICAgICAgIC8vIG51ciBkYXMgb2JlcnN0ZSBPdmVy +bGF5IGltIFN0YWNrIChMSUZPKS4gSGllciBrZWluCiAgICAgICAgICAgIC8vIG1vZGFsU2NobGll +c3Nlbi1BdWZydWYgbWVociwgc29uc3Qgd3VlcmRlbiBiZWlkZSBIYW5kbGVyCiAgICAgICAgICAg +IC8vIGRvcHBlbHQgZmV1ZXJuIChDb25maXJtIHp1ICsgSGF1cHRtb2RhbCB6dSkuCiAgICAgICAg +ICAgIGlmIChlLmtleSA9PT0gJ0VzY2FwZScpIGVkaXRvclNjaGxpZXNzZW4oKTsKICAgICAgICB9 +KTsKCiAgICAgICAgLy8gSGV1dGUtQmxvY2sgbGlua3Mgb2JlbiAoZXJzZXR6dCBkaWUgYWx0ZSBU +b29sYmFyKQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdidG4taGV1dGUnKS5hZGRF +dmVudExpc3RlbmVyKCdjbGljaycsIHp1bUhldXRpZ2VuRGF0dW0pOwogICAgICAgIGRvY3VtZW50 +LmdldEVsZW1lbnRCeUlkKCdidG4tc2NoaWNodHRlYW0nKS5hZGRFdmVudExpc3RlbmVyKCdjbGlj +aycsIHNjaGljaHRUZWFtTW9kYWxPZWZmbmVuKTsKICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50 +QnlJZCgnYnRuLXRoZW1lJykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGVtZVVtc2NoYWx0 +ZW4pOwogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdidG4taW5mbycpLmFkZEV2ZW50 +TGlzdGVuZXIoJ2NsaWNrJywgaW5mb0ZlbnN0ZXJaZWlnZW4pOwogICAgICAgIHZhciBidG5CdWcg +PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnRuLWJ1Z3JlcG9ydCcpOwogICAgICAgIGlmIChi +dG5CdWcpIGJ0bkJ1Zy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGJ1Z1JlcG9ydE1vZGFsT2Vm +Zm5lbik7CgogICAgICAgIC8vIEhpbndlaXMtU3lzdGVtOiBLbGljayBhdWYgQmFkZ2UgT0RFUiBV +c2VyLU5hbWVuIG9lZmZuZXQgZGllCiAgICAgICAgLy8gSGlud2Vpcy1Nb2RhbC1MaXN0ZS4gTnVy +IGZ1ZXIgU1UvR2VzYW10dmVyYW50d29ydGxpY2hlIGFrdGl2LAogICAgICAgIC8vIGRhbWl0IG5v +cm1hbGUgVXNlciBkdXJjaCB2ZXJzZWhlbnRsaWNoZXMgS2xpY2tlbiBuaWNodHMgZXJsZWJlbi4K +ICAgICAgICAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGZ1bmN0aW9uIG9lZmZuZW4oKSB7CiAg +ICAgICAgICAgICAgICBpZiAoaGlud2Vpc2VTaWNodGJhcigpKSBoaW53ZWlzZU1vZGFsT2VmZm5l +bigpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciBiRWwgPSBkb2N1bWVudC5nZXRFbGVt +ZW50QnlJZCgnaGlud2Vpcy1iYWRnZScpOwogICAgICAgICAgICBpZiAoYkVsKSB7CiAgICAgICAg +ICAgICAgICBiRWwuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBvZWZmbmVuKTsKICAgICAgICAg +ICAgICAgIGJFbC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgZnVuY3Rpb24oZSkgewogICAg +ICAgICAgICAgICAgICAgIGlmIChlLmtleSA9PT0gJ0VudGVyJyB8fCBlLmtleSA9PT0gJyAnKSB7 +IGUucHJldmVudERlZmF1bHQoKTsgb2VmZm5lbigpOyB9CiAgICAgICAgICAgICAgICB9KTsKICAg +ICAgICAgICAgfQogICAgICAgICAgICB2YXIgdUVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo +J2JlbnV0emVyLWFuemVpZ2UnKTsKICAgICAgICAgICAgaWYgKHVFbCkgdUVsLmFkZEV2ZW50TGlz +dGVuZXIoJ2NsaWNrJywgb2VmZm5lbik7CiAgICAgICAgICAgIC8vIFRvcGJhci1BdmF0YXI6IEts +aWNrIG9lZmZuZXQgIk1laW4gUHJvZmlsIi1Nb2RhbCBtaXQgQmlsZC1VcGxvYWQKICAgICAgICAg +ICAgdmFyIGF2QnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21laW4tYXZhdGFyLWJ0bicp +OwogICAgICAgICAgICBpZiAoYXZCdG4pIHsKICAgICAgICAgICAgICAgIGF2QnRuLmFkZEV2ZW50 +TGlzdGVuZXIoJ2NsaWNrJywgbWVpblByb2ZpbE1vZGFsT2VmZm5lbik7CiAgICAgICAgICAgICAg +ICBhdkJ0bi5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgZnVuY3Rpb24oZSkgewogICAgICAg +ICAgICAgICAgICAgIGlmIChlLmtleSA9PT0gJ0VudGVyJyB8fCBlLmtleSA9PT0gJyAnKSB7IGUu +cHJldmVudERlZmF1bHQoKTsgbWVpblByb2ZpbE1vZGFsT2VmZm5lbigpOyB9CiAgICAgICAgICAg +ICAgICB9KTsKICAgICAgICAgICAgfQogICAgICAgIH0pKCk7CgogICAgICAgIC8vIFBlcnMuIFBs +YW46IFBlcnNvbiB3ZWNoc2VsbgogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwcC1w +ZXJzb24tYXVzd2FobCcpLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIHBwUmVuZGVybik7CiAg +ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BwLWRydWNrZW4nKS5hZGRFdmVudExpc3Rl +bmVyKCdjbGljaycsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAvLyBEcnVjay1Nb2R1cyBhbmFs +b2cgenVtIFdvY2hlbnBsYW46IGJvZHktQ2xhc3Mgc2V0enQgZGFzIEBtZWRpYS1wcmludC1MYXlv +dXQKICAgICAgICAgICAgLy8gKEhlYWRlci9Ub29sYmFyL1RhYnMgYXVzLCBhbGxlIDEyIE1vbmF0 +ZSBhdWYgZWluZXIgQTQtUXVlcnNlaXRlKS4KICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFz +c0xpc3QuYWRkKCdkcnVja2VuLXBlcnNwbGFuJyk7CiAgICAgICAgICAgIHNldFRpbWVvdXQoZnVu +Y3Rpb24oKSB7CiAgICAgICAgICAgICAgICB3aW5kb3cucHJpbnQoKTsKICAgICAgICAgICAgICAg +IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZSgn +ZHJ1Y2tlbi1wZXJzcGxhbicpOyB9LCA1MDApOwogICAgICAgICAgICB9LCA1MCk7CiAgICAgICAg +fSk7CgogICAgICAgIC8vIEtvbW1lbnRhci1FZGl0b3IgKFN0dWZlIDIpOiBWZXJsYXVmc2xpc3Rl +IG9iZW4gKyBFaW5nYWJlZmVsZCB1bnRlbi4KICAgICAgICAvLyAiSGluenVmdWVnZW4iIGhhZW5n +dCBlaW5lbiBuZXVlbiBLb21tZW50YXIgYW4gZGllIExpc3RlIGFuIHN0YXR0CiAgICAgICAgLy8g +ZGVuIHZvcmhhbmRlbmVuIHp1IHVlYmVyc2NocmVpYmVuLiBMb2VzY2gtSWNvbnMgaW5uZXJoYWxi +IGRlcgogICAgICAgIC8vIFZlcmxhdWZzbGlzdGUgc2luZCBudXIgZnVlciBTVS9HZXNhbXR2ZXJh +bnR3b3J0bGljaGUgc2ljaHRiYXIKICAgICAgICAvLyAoc2llaGUgZWRpdG9yS29tbWVudGFyVmVy +bGF1ZlJlbmRlcm4oKSAvIGRhcmZLb21tZW50YXJMb2VzY2hlbigpKS4KICAgICAgICB2YXIgaW5w +dXRFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlZGl0b3Ita29tbWVudGFyLWlucHV0Jyk7 +CiAgICAgICAgdmFyIGJ0bkhpbnp1ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2J0bi1rb21t +ZW50YXItaGluenUnKTsKICAgICAgICBmdW5jdGlvbiBrb21tZW50YXJIaW56dVZvbUVkaXRvcigp +IHsKICAgICAgICAgICAgaWYgKCFlZGl0b3JBa3RpdigpKSByZXR1cm47CiAgICAgICAgICAgIHZh +ciB0ZXh0ID0gaW5wdXRFbC52YWx1ZS50cmltKCk7CiAgICAgICAgICAgIGlmICghdGV4dCkgcmV0 +dXJuOwogICAgICAgICAgICBrb21tZW50YXJIaW56dWZ1ZWdlbihlZGl0b3JEYXR1bSgpLCBlZGl0 +b3JQZXJzb25JZCgpLCB0ZXh0LCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgIGVkaXRvcktv +bW1lbnRhclZlcmxhdWZSZW5kZXJuKCk7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgICBpbnB1 +dEVsLnZhbHVlID0gJyc7CiAgICAgICAgICAgIC8vIE9wdGltaXN0aXNjaGUgc29mb3J0aWdlIFJl +LVJlbmRlciAoU2VydmVyLUFudHdvcnQga29tbXQgYXN5bmNocm9uKS4KICAgICAgICAgICAgZWRp +dG9yS29tbWVudGFyVmVybGF1ZlJlbmRlcm4oKTsKICAgICAgICB9CiAgICAgICAgYnRuSGluenUu +YWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBrb21tZW50YXJIaW56dVZvbUVkaXRvcik7CiAgICAg +ICAgaW5wdXRFbC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgZnVuY3Rpb24oZSkgewogICAg +ICAgICAgICAvLyBFbnRlciBpbSBFaW5nYWJlZmVsZCAtPiBkaXJla3QgYW5oYWVuZ2VuIChrZWlu +IEZvcm0tU3VibWl0LCBkYWhlcgogICAgICAgICAgICAvLyBleHBsaXppdCB2ZXJkcmFodGV0KS4K +ICAgICAgICAgICAgaWYgKGUua2V5ID09PSAnRW50ZXInKSB7IGUucHJldmVudERlZmF1bHQoKTsg +a29tbWVudGFySGluenVWb21FZGl0b3IoKTsgfQogICAgICAgIH0pOwogICAgICAgIC8vIExvZXNj +aC1JY29uLURlbGVnYXRpb24gYXVmIGRlbiBWZXJsYXVmLUNvbnRhaW5lciDigJQgRWludHJhZWdl +IHdlcmRlbgogICAgICAgIC8vIGJlaSBqZWRlbSBSZXJlbmRlciBuZXUgZXJ6ZXVndCwgZWluemVs +bmUgTGlzdGVuZXIgd3VlcmRlbiB2ZXJnZXNzZW4uCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu +dEJ5SWQoJ2VkaXRvci1rb21tZW50YXItdmVybGF1ZicpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNr +JywgZnVuY3Rpb24oZSkgewogICAgICAgICAgICB2YXIgYnRuID0gZS50YXJnZXQuY2xvc2VzdCgn +LmVrdi1sb2VzY2hlbicpOwogICAgICAgICAgICBpZiAoIWJ0biB8fCAhZWRpdG9yQWt0aXYoKSkg +cmV0dXJuOwogICAgICAgICAgICB2YXIga2lkID0gYnRuLmdldEF0dHJpYnV0ZSgnZGF0YS1pZCcp +OwogICAgICAgICAgICBpZiAoIWtpZCkgcmV0dXJuOwogICAgICAgICAgICBiZXN0YWV0aWdlbign +RGllc2VuIEtvbW1lbnRhciB3aXJrbGljaCBsw7ZzY2hlbj8gRGllIEFrdGlvbiB3aXJkIGltIExv +Z2J1Y2ggcHJvdG9rb2xsaWVydC4nLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgIGtvbW1l +bnRhckxvZXNjaGVuKGVkaXRvckRhdHVtKCksIGVkaXRvclBlcnNvbklkKCksIGtpZCwgZnVuY3Rp +b24ob2spIHsKICAgICAgICAgICAgICAgICAgICBpZiAob2spIGVkaXRvcktvbW1lbnRhclZlcmxh +dWZSZW5kZXJuKCk7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfSwgeyBqYURhbmdl +cjogdHJ1ZSwgamFUZXh0OiAnTMO2c2NoZW4nIH0pOwogICAgICAgIH0pOwoKICAgICAgICAvLyBQ +ZXJzb24tSG92ZXItUG9wb3ZlcjogemVpZ3QgU3RhbW1kYXRlbiArIDE0LVRhZ2UtU2NoaWNodHZv +cnNjaGF1CiAgICAgICAgLy8gYmVpbSBIb3ZlciB1ZWJlciBOYW1lbiBpbiBQbGFudW5nIC8gUGVy +c29uYWx2ZXJ3YWx0dW5nIC8gV29jaGVucGxhbi4KICAgICAgICAvLyBLbGljayBhdWYgZGVuIE5h +bWVuIG9lZmZuZXQgd2VpdGVyaGluIGRhcyBqZXdlaWxpZ2UgTW9kYWwuCiAgICAgICAgZnVuY3Rp +b24gcHBfcGVyc29uSWRBdXNFdmVudChldikgewogICAgICAgICAgICAvLyBSZWloZW5mb2xnZTog +enVlcnN0IHNwZXppZmlzY2hlIFNlbGVrdG9yZW4gKG1pdCBkYXRhLWlkIGF1ZgogICAgICAgICAg +ICAvLyBlaW5lbSBJbm5lci1TcGFuKSwgZGFubiBnZW5lcmlzY2hlIC5uYW1lbi16ZWlsZS1Db250 +YWluZXIuCiAgICAgICAgICAgIHZhciBlbCA9CiAgICAgICAgICAgICAgICBldi50YXJnZXQuY2xv +c2VzdCgnLnBlcnNvbi1uYW1lLWxpbmtbZGF0YS1pZF0nKSB8fAogICAgICAgICAgICAgICAgZXYu +dGFyZ2V0LmNsb3Nlc3QoJy53cC1uYW1lW2RhdGEtcGVyc29uLWlkXScpIHx8CiAgICAgICAgICAg +ICAgICBldi50YXJnZXQuY2xvc2VzdCgnLm5hbWVuLXplaWxlW2RhdGEtcGVyc29uLWlkXScpOwog +ICAgICAgICAgICBpZiAoIWVsKSByZXR1cm4gbnVsbDsKICAgICAgICAgICAgcmV0dXJuIHsgaWQ6 +IGVsLmdldEF0dHJpYnV0ZSgnZGF0YS1pZCcpIHx8IGVsLmdldEF0dHJpYnV0ZSgnZGF0YS1wZXJz +b24taWQnKSwgYW5rZXI6IGVsIH07CiAgICAgICAgfQogICAgICAgIGRvY3VtZW50LmFkZEV2ZW50 +TGlzdGVuZXIoJ21vdXNlb3ZlcicsIGZ1bmN0aW9uKGV2KSB7CiAgICAgICAgICAgIHZhciBoaXQg +PSBwcF9wZXJzb25JZEF1c0V2ZW50KGV2KTsKICAgICAgICAgICAgaWYgKGhpdCkgcGVyc29uUG9w +b3ZlclplaWdlbihoaXQuaWQsIGhpdC5hbmtlcik7CiAgICAgICAgfSk7CiAgICAgICAgZG9jdW1l +bnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VvdXQnLCBmdW5jdGlvbihldikgewogICAgICAgICAg +ICB2YXIgaGl0ID0gcHBfcGVyc29uSWRBdXNFdmVudChldik7CiAgICAgICAgICAgIGlmICghaGl0 +KSByZXR1cm47CiAgICAgICAgICAgIC8vIFdlbm4gTWF1cyBhdWYgZWluZSBhbmRlcmUgUGVyc29u +LVRyaWdnZXItWmVsbGUgZ2xlaXRldCwgTklDSFQKICAgICAgICAgICAgLy8gdmVyc3RlY2tlbiDi +gJQgZGVyIG1vdXNlb3Zlci1IYW5kbGVyIHplaWNobmV0IGVpbmZhY2ggbmV1LgogICAgICAgICAg +ICB2YXIgcmVsID0gZXYucmVsYXRlZFRhcmdldDsKICAgICAgICAgICAgaWYgKHJlbCAmJiByZWwu +Y2xvc2VzdCAmJiAoCiAgICAgICAgICAgICAgICByZWwuY2xvc2VzdCgnLnBlcnNvbi1uYW1lLWxp +bmtbZGF0YS1pZF0nKSB8fAogICAgICAgICAgICAgICAgcmVsLmNsb3Nlc3QoJy53cC1uYW1lW2Rh +dGEtcGVyc29uLWlkXScpIHx8CiAgICAgICAgICAgICAgICByZWwuY2xvc2VzdCgnLm5hbWVuLXpl +aWxlW2RhdGEtcGVyc29uLWlkXScpIHx8CiAgICAgICAgICAgICAgICByZWwuY2xvc2VzdCgnI3Zp +My1wZXJzb24tcG9wb3ZlcicpCiAgICAgICAgICAgICkpIHJldHVybjsKICAgICAgICAgICAgcGVy +c29uUG9wb3ZlclZlcnN0ZWNrZW4oKTsKICAgICAgICB9KTsKICAgICAgICAvLyBQb3BvdmVyIHNl +bGJzdCBzb2xsdGUgYmVpbSBIb3Zlci1JbiBuaWNodCBhdXNibGVuZGVuIChVc2VyIGRhcmYKICAg +ICAgICAvLyBoaW5laW5rbGlja2VuLCB6LkIuIHVtIFRleHQgenUga29waWVyZW4pLgogICAgICAg +IHZhciBwcEVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3ZpMy1wZXJzb24tcG9wb3Zlcicp +OwogICAgICAgIGlmIChwcEVsKSB7CiAgICAgICAgICAgIHBwRWwuYWRkRXZlbnRMaXN0ZW5lcign +bW91c2VlbnRlcicsIGZ1bmN0aW9uKCkgeyAvKiB6ZWlnZVRpbWVyIGVoIGluYWt0aXYgKi8gfSk7 +CiAgICAgICAgICAgIHBwRWwuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsIHBlcnNvblBv +cG92ZXJWZXJzdGVja2VuKTsKICAgICAgICB9CiAgICAgICAgLy8gS29tbWVudGFyLVBvcG92ZXIg +YW5hbG9nOiBIb3Zlci1JbiBoYWVsdCBvZmZlbiwgSG92ZXItT3V0IHNjaGxpZXNzdAogICAgICAg +IC8vIG1pdCBrdXJ6ZXIgVmVyem9lZ2VydW5nIOKAlCBVc2VyIHNvbGwgWmVpdCBoYWJlbiwgdWVi +ZXIgZGllIFplbGxlIDwtPgogICAgICAgIC8vIFBvcG92ZXItQnJ1ZWNrZSB6dSB3YW5kZXJuIHVu +ZCBUZXh0IHp1IGtvcGllcmVuLgogICAgICAgIHZhciBrcEVsID0gZG9jdW1lbnQuZ2V0RWxlbWVu +dEJ5SWQoJ3ZpMy1rb21tZW50YXItcG9wb3ZlcicpOwogICAgICAgIGlmIChrcEVsKSB7CiAgICAg +ICAgICAgIGtwRWwuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsIGtvbW1lbnRhclBvcG92 +ZXJGZXN0aGFsdGVuKTsKICAgICAgICAgICAga3BFbC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxl +YXZlJywga29tbWVudGFyUG9wb3ZlclZlcnN0ZWNrZW4pOwogICAgICAgIH0KCiAgICAgICAgLy8g +TW9kYWwKICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbW9kYWwtc2NobGllc3Nlbi1i +dG4nKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIG1vZGFsU2NobGllc3Nlbik7CiAgICAgICAg +ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21vZGFsLW92ZXJsYXknKS5hZGRFdmVudExpc3RlbmVy +KCdjbGljaycsIGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgLy8gUXVpY2stV2luIG5hY2ggVVgt +QXVkaXQgKDIwMjYtMDUtMjkpOiBkYXRhLW5vLWNsb3NlIHJlc3Bla3RpZXJlbiwKICAgICAgICAg +ICAgLy8gZGFtaXQgTW9kYWxzIHdpZSBkYXMgRXhjZWwtSW1wb3J0LVByb2dyZXNzIChsYWV1ZnQs +IGRhcmYgbmljaHQKICAgICAgICAgICAgLy8gYWJnZWJyb2NoZW4gd2VyZGVuKSBuaWNodCBkdXJj +aCB2ZXJzZWhlbnRsaWNoZW4gQmFja2Ryb3AtS2xpY2sKICAgICAgICAgICAgLy8gc2NobGllc3Nl +bi4gRGFzIEF0dHJpYnV0IHdpcmQgdm9tIEF1ZnJ1ZmVyIGdlc2V0enQgKyBpbgogICAgICAgICAg +ICAvLyBtb2RhbFNjaGxpZXNzZW4gd2llZGVyIGdlcmFldW10LgogICAgICAgICAgICBpZiAoZS50 +YXJnZXQgPT09IHRoaXMgJiYgdGhpcy5nZXRBdHRyaWJ1dGUoJ2RhdGEtbm8tY2xvc2UnKSAhPT0g +JzEnKSBtb2RhbFNjaGxpZXNzZW4oKTsKICAgICAgICB9KTsKCiAgICAgICAgLy8gR2VidXJ0c3Rh +Zy1Nb2RhbDogS2xpY2sgYXVmIGVpbmVuIFRhZy9Nb25hdC9KYWhyLUJ1dHRvbi4gRXZlbnQtCiAg +ICAgICAgLy8gRGVsZWdhdGlvbiBhdWYgbW9kYWwtb3ZlcmxheSwgd2VpbCBkZXIgSW5oYWx0IGJl +aSBqZWRlbSBLbGljawogICAgICAgIC8vIG5ldSBnZXJlbmRlcnQgd2lyZCAoaW5uZXJIVE1MIGF1 +ZiAjZ2ItbW9kYWwtaW5oYWx0KS4KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbW9k +YWwtb3ZlcmxheScpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oZSkgewogICAg +ICAgICAgICB2YXIgYnRuID0gZS50YXJnZXQuY2xvc2VzdCgnLmdiLWJ0bicpOwogICAgICAgICAg +ICBpZiAoIWJ0bikgcmV0dXJuOwogICAgICAgICAgICB2YXIgdHlwID0gYnRuLmdldEF0dHJpYnV0 +ZSgnZGF0YS1nYi10eXAnKTsKICAgICAgICAgICAgdmFyIHdlcnQgPSBwYXJzZUludChidG4uZ2V0 +QXR0cmlidXRlKCdkYXRhLWdiLXdlcnQnKSwgMTApOwogICAgICAgICAgICBnZWJ1cnRzdGFnTW9k +YWxLbGljayh0eXAsIHdlcnQpOwogICAgICAgIH0pOwoKICAgIH0KCiAgICBmdW5jdGlvbiBhZG1p +bkxpc3RlbmVyRWlucmljaHRlbigpIHsKICAgICAgICAvLyA9PT09PSBBZG1pbiBFdmVudHMgPT09 +PT0KCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2J0bi1wZXJzb24tbmV1JykuYWRk +RXZlbnRMaXN0ZW5lcignY2xpY2snLCBwZXJzb25OZXVEaWFsb2cpOwogICAgICAgIHZhciBidG5T +b3J0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2J0bi1tYW51ZWxsZS1zb3J0aWVydW5nJyk7 +CiAgICAgICAgaWYgKGJ0blNvcnQpIGJ0blNvcnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBt +YW51ZWxsZVNvcnRpZXJ1bmdEaWFsb2cpOwoKICAgICAgICAvLyBFaW5mYWNoLUtsaWNrIGF1ZiBp +bmxpbmUtbWFya2llcnRlIERhdGVuLVplbGxlbi4gQnV0dG9ucyBpbiBkZXJzZWxiZW4KICAgICAg +ICAvLyBaZWlsZSBoYWJlbiBkYXRhLWFrdGlvbiArIHdlcmRlbiBpbSB6d2VpdGVuIENsaWNrLUhh +bmRsZXIgYXVzZ2V3ZXJ0ZXQsCiAgICAgICAgLy8gZG9ydCBnZXdpbm50IGRlciBCdXR0b24gKGVp +Z2VuZXIgY2xvc2VzdCgpIG1hdGNoKS4KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn +cGVyc29uYWwtdGJvZHknKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKGUpIHsK +ICAgICAgICAgICAgLy8gV2VubiBlaW4gQWt0aW9ucy1CdXR0b24gZ2V0cm9mZmVuIHdpcmQsIE5J +Q0hUIGFscyBJbmxpbmUtS2xpY2sgd2VydGVuLgogICAgICAgICAgICBpZiAoZS50YXJnZXQuY2xv +c2VzdCgnYnV0dG9uW2RhdGEtYWt0aW9uXScpKSByZXR1cm47CiAgICAgICAgICAgIHZhciBpbmxp +bmUgPSBlLnRhcmdldC5jbG9zZXN0KCcucGVyc29uYWwtaW5saW5lJyk7CiAgICAgICAgICAgIGlm +ICghaW5saW5lKSByZXR1cm47CiAgICAgICAgICAgIHBlcnNvbmFsRmVsZElubGluZUVkaXQocGFy +c2VJbnQoaW5saW5lLmdldEF0dHJpYnV0ZSgnZGF0YS1pZCcpLCAxMCksIGlubGluZSk7CiAgICAg +ICAgfSk7CgogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwZXJzb25hbC10Ym9keScp +LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oZSkgewogICAgICAgICAgICB2YXIg +cmFuZ1NwYW4gPSBlLnRhcmdldC5jbG9zZXN0KCcucmFuZy1lZGl0Jyk7CiAgICAgICAgICAgIGlm +IChyYW5nU3BhbikgewogICAgICAgICAgICAgICAgcmFuZ0lubGluZUVkaXQocGFyc2VJbnQocmFu +Z1NwYW4uZ2V0QXR0cmlidXRlKCdkYXRhLWlkJyksIDEwKSwgcmFuZ1NwYW4pOwogICAgICAgICAg +ICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciBmdW5rU3BhbiA9IGUu +dGFyZ2V0LmNsb3Nlc3QoJy5mdW5rdGlvbi1lZGl0Jyk7CiAgICAgICAgICAgIGlmIChmdW5rU3Bh +bikgewogICAgICAgICAgICAgICAgZnVua3Rpb25JbmxpbmVFZGl0KHBhcnNlSW50KGZ1bmtTcGFu +LmdldEF0dHJpYnV0ZSgnZGF0YS1pZCcpLCAxMCksIGZ1bmtTcGFuKTsKICAgICAgICAgICAgICAg +IHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICB2YXIgZGdyZFNwYW4gPSBlLnRhcmdl +dC5jbG9zZXN0KCcuZGllbnN0Z3JhZC1lZGl0Jyk7CiAgICAgICAgICAgIGlmIChkZ3JkU3Bhbikg +ewogICAgICAgICAgICAgICAgZGllbnN0Z3JhZElubGluZUVkaXQocGFyc2VJbnQoZGdyZFNwYW4u +Z2V0QXR0cmlidXRlKCdkYXRhLWlkJyksIDEwKSwgZGdyZFNwYW4pOwogICAgICAgICAgICAgICAg +cmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciBlbGRnbENlbGwgPSBlLnRhcmdl +dC5jbG9zZXN0KCcuZWxkZ2wtZWRpdCcpOwogICAgICAgICAgICBpZiAoZWxkZ2xDZWxsKSB7CiAg +ICAgICAgICAgICAgICBlbGRnbElubGluZVRvZ2dsZShwYXJzZUludChlbGRnbENlbGwuZ2V0QXR0 +cmlidXRlKCdkYXRhLWlkJyksIDEwKSk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg +ICAgIH0KICAgICAgICAgICAgdmFyIGFwQ2VsbCA9IGUudGFyZ2V0LmNsb3Nlc3QoJy5hbnNwcmVj +aHBhcnRuZXItZWRpdCcpOwogICAgICAgICAgICBpZiAoYXBDZWxsKSB7CiAgICAgICAgICAgICAg +ICBhbnNwcmVjaHBhcnRuZXJJbmxpbmVUb2dnbGUocGFyc2VJbnQoYXBDZWxsLmdldEF0dHJpYnV0 +ZSgnZGF0YS1pZCcpLCAxMCkpOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9 +CiAgICAgICAgICAgIHZhciBpcENlbGwgPSBlLnRhcmdldC5jbG9zZXN0KCcuaW5wbGFudW5nLWVk +aXQnKTsKICAgICAgICAgICAgaWYgKGlwQ2VsbCkgewogICAgICAgICAgICAgICAgaW5QbGFudW5n +SW5saW5lVG9nZ2xlKHBhcnNlSW50KGlwQ2VsbC5nZXRBdHRyaWJ1dGUoJ2RhdGEtaWQnKSwgMTAp +KTsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICB2YXIg +bmFtZUxpbmsgPSBlLnRhcmdldC5jbG9zZXN0KCcucGVyc29uLW5hbWUtbGluaycpOwogICAgICAg +ICAgICBpZiAobmFtZUxpbmspIHsKICAgICAgICAgICAgICAgIHBlcnNvbkJlYXJiZWl0ZW5EaWFs +b2cocGFyc2VJbnQobmFtZUxpbmsuZ2V0QXR0cmlidXRlKCdkYXRhLWlkJyksIDEwKSk7CiAgICAg +ICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIGJ0biA9IGUu +dGFyZ2V0LmNsb3Nlc3QoJ2J1dHRvbicpOwogICAgICAgICAgICBpZiAoIWJ0bikgcmV0dXJuOwog +ICAgICAgICAgICB2YXIgaWQgPSBwYXJzZUludChidG4uZ2V0QXR0cmlidXRlKCdkYXRhLWlkJykp +OwogICAgICAgICAgICB2YXIgYWt0aW9uID0gYnRuLmdldEF0dHJpYnV0ZSgnZGF0YS1ha3Rpb24n +KTsKICAgICAgICAgICAgaWYgKGFrdGlvbiA9PT0gJ2JlYXJiZWl0ZW4nKSBwZXJzb25CZWFyYmVp +dGVuRGlhbG9nKGlkKTsKICAgICAgICAgICAgZWxzZSBpZiAoYWt0aW9uID09PSAncGVyc29uLXRl +c3RlbicpIGltcGVyc29uYXRlUGVyc29uKGlkKTsKICAgICAgICAgICAgZWxzZSBpZiAoYWt0aW9u +ID09PSAnZW1haWwnKSBwZXJzb25FbWFpbERpYWxvZyhpZCk7CiAgICAgICAgICAgIGVsc2UgaWYg +KGFrdGlvbiA9PT0gJ3Vtc2V0emVuJykgewogICAgICAgICAgICAgICAgYmVzdGFldGlnZW4oJ1Bl +cnNvbiBhdXMgZGVyIFBsYW51bmcgZW50ZmVybmVuPyBCZXN0ZWhlbmRlIEVpbnRyw6RnZSBibGVp +YmVuIGVyaGFsdGVuIHVuZCBrw7ZubmVuIHBlciDigJ5VbWdlc2V0enRlIGVpbmJsZW5kZW4iIHdp +ZWRlciBzaWNodGJhciBnZW1hY2h0IHdlcmRlbi4nLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAg +ICAgICAgICBwZXJzb25TdGF0dXNTZXR6ZW4oaWQsIGZhbHNlKTsKICAgICAgICAgICAgICAgIH0s +IHsgdGl0ZWw6ICdQZXJzb24gdW1zZXR6ZW4nLCBqYVRleHQ6ICdVbXNldHplbicgfSk7CiAgICAg +ICAgICAgIH0gZWxzZSBpZiAoYWt0aW9uID09PSAncmVha3RpdmllcmVuJykgewogICAgICAgICAg +ICAgICAgcGVyc29uU3RhdHVzU2V0emVuKGlkLCB0cnVlKTsKICAgICAgICAgICAgfQogICAgICAg +ICAgICAvLyBQYXBpZXJrb3JiLUxpZmVjeWNsZSAoQ2hlcnJ5LVBpY2sgMzAwOWVhOCwgaGludGVy +IFRvZ2dsZSBgZmVhdHVyZXMucGFwaWVya29yYlVJYCkuCiAgICAgICAgICAgIGVsc2UgaWYgKGFr +dGlvbiA9PT0gJ2luLXBhcGllcmtvcmInKSB7CiAgICAgICAgICAgICAgICB2YXIgdGFnZSA9IFou +YWRtaW4ucGFwaWVya29yYlRhZ2VBdWZiZXdhaHJ1bmcgIT0gbnVsbCA/IFouYWRtaW4ucGFwaWVy +a29yYlRhZ2VBdWZiZXdhaHJ1bmcgOiAzMDsKICAgICAgICAgICAgICAgIGJlc3RhZXRpZ2VuKCdQ +ZXJzb24gaW4gZGVuIFBhcGllcmtvcmIgdmVyc2NoaWViZW4/XG5cblNpZSB3aXJkIG5hY2ggJyAr +IHRhZ2UgKyAnIFRhZ2VuIGF1dG9tYXRpc2NoIGVuZGfDvGx0aWcgZ2Vsw7ZzY2h0LiBCaXMgZGFo +aW4ga2FubiBzaWUgd2llZGVyaGVyZ2VzdGVsbHQgd2VyZGVuLicsIGZ1bmN0aW9uKCkgewogICAg +ICAgICAgICAgICAgICAgIGFwaURlbGV0ZSgnL2FwaS9wZXJzb25lbi8nICsgaWQpLnRoZW4oZnVu +Y3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwID0gWi5wbGFudW5nLnBlcnNv +bmVuLmZpbmQoZnVuY3Rpb24oeCkgeyByZXR1cm4geC5pZCA9PT0gaWQ7IH0pOwogICAgICAgICAg +ICAgICAgICAgICAgICBpZiAocCkgcC5nZWxvZXNjaHRBbSA9IG5ldyBEYXRlKCkudG9JU09TdHJp +bmcoKTsKICAgICAgICAgICAgICAgICAgICAgICAgcGVyc29uZW5OZXVBdWZiYXVlbigpOwogICAg +ICAgICAgICAgICAgICAgICAgICBwZXJzb25hbFRhYmVsbGVSZW5kZXJuKCk7CiAgICAgICAgICAg +ICAgICAgICAgICAgIGlmICh0eXBlb2YgbmFtZW5SZW5kZXJuID09PSAnZnVuY3Rpb24nKSB7IG5h +bWVuUmVuZGVybigpOyBkYXRlbkdyaWRSZW5kZXJuKCk7IGtvcGZSZW5kZXJuKCk7IH0KICAgICAg +ICAgICAgICAgICAgICAgICAgdG9hc3QoJ1BlcnNvbiBpbiBQYXBpZXJrb3JiIHZlcnNjaG9iZW4n +LCAnZXJmb2xnJyk7CiAgICAgICAgICAgICAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oZSkgeyB0 +b2FzdCgnRmVobGVyOiAnICsgZS5tZXNzYWdlLCAnZmVobGVyJyk7IH0pOwogICAgICAgICAgICAg +ICAgfSwgeyB0aXRlbDogJ0luIFBhcGllcmtvcmInLCBqYVRleHQ6ICdJbiBQYXBpZXJrb3JiJywg +amFEYW5nZXI6IHRydWUgfSk7CiAgICAgICAgICAgIH0gZWxzZSBpZiAoYWt0aW9uID09PSAnd2ll +ZGVyaGVyc3RlbGxlbicpIHsKICAgICAgICAgICAgICAgIGFwaVB1dCgnL2FwaS9wZXJzb25lbi8n +ICsgaWQsIHsgZ2Vsb2VzY2h0QW06IG51bGwsIGFrdGl2OiB0cnVlIH0pLnRoZW4oZnVuY3Rpb24o +KSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIHAgPSBaLnBsYW51bmcucGVyc29uZW4uZmluZChm +dW5jdGlvbih4KSB7IHJldHVybiB4LmlkID09PSBpZDsgfSk7CiAgICAgICAgICAgICAgICAgICAg +aWYgKHApIHsgcC5nZWxvZXNjaHRBbSA9IG51bGw7IHAuYWt0aXYgPSB0cnVlOyB9CiAgICAgICAg +ICAgICAgICAgICAgcGVyc29uZW5OZXVBdWZiYXVlbigpOwogICAgICAgICAgICAgICAgICAgIHBl +cnNvbmFsVGFiZWxsZVJlbmRlcm4oKTsKICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIG5h +bWVuUmVuZGVybiA9PT0gJ2Z1bmN0aW9uJykgeyBuYW1lblJlbmRlcm4oKTsgZGF0ZW5HcmlkUmVu +ZGVybigpOyBrb3BmUmVuZGVybigpOyB9CiAgICAgICAgICAgICAgICAgICAgdG9hc3QoJ1BlcnNv +biB3aWVkZXJoZXJnZXN0ZWxsdCcsICdlcmZvbGcnKTsKICAgICAgICAgICAgICAgIH0pLmNhdGNo +KGZ1bmN0aW9uKGUpIHsgdG9hc3QoJ0ZlaGxlcjogJyArIGUubWVzc2FnZSwgJ2ZlaGxlcicpOyB9 +KTsKICAgICAgICAgICAgfSBlbHNlIGlmIChha3Rpb24gPT09ICdlbmRndWVsdGlnLWxvZXNjaGVu +JykgewogICAgICAgICAgICAgICAgYmVzdGFldGlnZW4oJ1BlcnNvbiBFTkRHw5xMVElHIGzDtnNj +aGVuP1xuXG5FaW50csOkZ2UgaW4gZGVyIFBsYW51bmcgdmVyd2Fpc2VuIChibGVpYmVuIGFiZXIg +dGVjaG5pc2NoIGVyaGFsdGVuKS4gTG9nYnVjaC0gdW5kIFN0YXRpc3Rpay1IaXN0b3JpZSBibGVp +YmVuIHNpY2h0YmFyLiBEaWVzZSBBa3Rpb24ga2FubiBuaWNodCByw7xja2fDpG5naWcgZ2VtYWNo +dCB3ZXJkZW4uJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAgYXBpRGVsZXRlKCcv +YXBpL3BlcnNvbmVuLycgKyBpZCArICc/ZW5kZ3VlbHRpZz0xJykudGhlbihmdW5jdGlvbigpIHsK +ICAgICAgICAgICAgICAgICAgICAgICAgWi5wbGFudW5nLnBlcnNvbmVuID0gKFoucGxhbnVuZy5w +ZXJzb25lbiB8fCBbXSkuZmlsdGVyKGZ1bmN0aW9uKHgpIHsgcmV0dXJuIHguaWQgIT09IGlkOyB9 +KTsKICAgICAgICAgICAgICAgICAgICAgICAgcGVyc29uZW5OZXVBdWZiYXVlbigpOwogICAgICAg +ICAgICAgICAgICAgICAgICBwZXJzb25hbFRhYmVsbGVSZW5kZXJuKCk7CiAgICAgICAgICAgICAg +ICAgICAgICAgIGlmICh0eXBlb2YgbmFtZW5SZW5kZXJuID09PSAnZnVuY3Rpb24nKSB7IG5hbWVu +UmVuZGVybigpOyBkYXRlbkdyaWRSZW5kZXJuKCk7IGtvcGZSZW5kZXJuKCk7IH0KICAgICAgICAg +ICAgICAgICAgICAgICAgdG9hc3QoJ1BlcnNvbiBlbmRnw7xsdGlnIGdlbMO2c2NodCcsICdlcmZv +bGcnKTsKICAgICAgICAgICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlKSB7IHRvYXN0KCdG +ZWhsZXI6ICcgKyBlLm1lc3NhZ2UsICdmZWhsZXInKTsgfSk7CiAgICAgICAgICAgICAgICB9LCB7 +IHRpdGVsOiAnRW5kZ8O8bHRpZyBsw7ZzY2hlbicsIGphVGV4dDogJ0VuZGfDvGx0aWcgbMO2c2No +ZW4nLCBqYURhbmdlcjogdHJ1ZSB9KTsKICAgICAgICAgICAgfQogICAgICAgIH0pOwoKICAgICAg +ICB2YXIgZmlsdGVyQ2hrID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FkbWluLXBlcnNvbmFs +LWZpbHRlcicpOwogICAgICAgIGlmIChmaWx0ZXJDaGspIGZpbHRlckNoay5hZGRFdmVudExpc3Rl +bmVyKCdjaGFuZ2UnLCBwZXJzb25hbFRhYmVsbGVSZW5kZXJuKTsKICAgICAgICB2YXIgcGFwaWVy +a29yYkZpbHRlckNoayA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZG1pbi1wYXBpZXJrb3Ji +LWZpbHRlcicpOwogICAgICAgIGlmIChwYXBpZXJrb3JiRmlsdGVyQ2hrKSBwYXBpZXJrb3JiRmls +dGVyQ2hrLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIHBlcnNvbmFsVGFiZWxsZVJlbmRlcm4p +OwoKICAgICAgICB2YXIgdW1nQ2hrID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Noay11bWdl +c2V0enRlLWVpbmJsZW5kZW4nKTsKICAgICAgICBpZiAodW1nQ2hrKSB1bWdDaGsuYWRkRXZlbnRM +aXN0ZW5lcignY2hhbmdlJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIFoudW1nZXNldHp0ZUVp +bmJsZW5kZW4gPSB1bWdDaGsuY2hlY2tlZDsKICAgICAgICAgICAgcGVyc29uZW5OZXVBdWZiYXVl +bigpOwogICAgICAgICAgICBuYW1lblJlbmRlcm4oKTsKICAgICAgICAgICAgZGF0ZW5HcmlkUmVu +ZGVybigpOwogICAgICAgICAgICBrb3BmUmVuZGVybigpOwogICAgICAgIH0pOwoKICAgICAgICAv +LyBTdGFuZG9ydGUKICAgICAgICB2YXIgYnRuU3ROZXUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ +ZCgnYnRuLXN0YW5kb3J0LW5ldScpOwogICAgICAgIGlmIChidG5TdE5ldSkgYnRuU3ROZXUuYWRk +RXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgWi5hZG1pbi5z +dGFuZG9ydGUgPSBaLmFkbWluLnN0YW5kb3J0ZSB8fCBbXTsKICAgICAgICAgICAgWi5hZG1pbi5z +dGFuZG9ydGUucHVzaCh7IG5hbWU6ICdOZXVlciBTdGFuZG9ydCcsIGt1ZXJ6ZWw6ICcnLCBpc3RQ +b29sOiB0cnVlIH0pOwogICAgICAgICAgICBzdGFuZG9ydGVSZW5kZXJuKCk7CiAgICAgICAgfSk7 +CiAgICAgICAgdmFyIHN0VGJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3RhbmRvcnRl +LXRib2R5Jyk7CiAgICAgICAgaWYgKHN0VGJvZHkpIHN0VGJvZHkuYWRkRXZlbnRMaXN0ZW5lcign +Y2xpY2snLCBmdW5jdGlvbihlKSB7CiAgICAgICAgICAgIHZhciBidG4gPSBlLnRhcmdldC5jbG9z +ZXN0KCdidXR0b24nKTsKICAgICAgICAgICAgaWYgKCFidG4pIHJldHVybjsKICAgICAgICAgICAg +dmFyIGlkeCA9IHBhcnNlSW50KGJ0bi5nZXRBdHRyaWJ1dGUoJ2RhdGEtaWR4JykpOwogICAgICAg +ICAgICB2YXIgYWt0aW9uID0gYnRuLmdldEF0dHJpYnV0ZSgnZGF0YS1ha3Rpb24nKTsKICAgICAg +ICAgICAgaWYgKGFrdGlvbiA9PT0gJ3N0YW5kb3J0LWxvZXNjaGVuJykgewogICAgICAgICAgICAg +ICAgdmFyIHN0TmFtZSA9IFouYWRtaW4uc3RhbmRvcnRlW2lkeF0ubmFtZSB8fCAnJzsKICAgICAg +ICAgICAgICAgIGJlc3RhZXRpZ2VuKCdTdGFuZG9ydCDigJ4nICsgc3ROYW1lICsgJyIgd2lya2xp +Y2ggbMO2c2NoZW4/JywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAgWi5hZG1pbi5z +dGFuZG9ydGUuc3BsaWNlKGlkeCwgMSk7CiAgICAgICAgICAgICAgICAgICAgc3RhbmRvcnRlUmVu +ZGVybigpOwogICAgICAgICAgICAgICAgfSwgeyB0aXRlbDogJ1N0YW5kb3J0IGzDtnNjaGVuJywg +amFEYW5nZXI6IHRydWUgfSk7CiAgICAgICAgICAgIH0gZWxzZSBpZiAoYWt0aW9uID09PSAnc3Rh +bmRvcnQtcmh5dGhtdXMnKSB7CiAgICAgICAgICAgICAgICByaHl0aG11c0dlbmVyYXRvckRpYWxv +ZyhpZHgpOwogICAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgICAgdmFyIGJ0blN0U3BlaWNo +ZXJuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2J0bi1zdGFuZG9ydGUtc3BlaWNoZXJuJyk7 +CiAgICAgICAgaWYgKGJ0blN0U3BlaWNoZXJuKSBidG5TdFNwZWljaGVybi5hZGRFdmVudExpc3Rl +bmVyKCdjbGljaycsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICB2YXIgZGF0ZW4gPSBzdGFuZG9y +dGVBdXNUYWJlbGxlTGVzZW4oKTsKICAgICAgICAgICAgYXBpUHV0KCcvYXBpL2FkbWluL3N0YW5k +b3J0ZScsIGRhdGVuKS50aGVuKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgWi5hZG1pbi5z +dGFuZG9ydGUgPSBkYXRlbjsKICAgICAgICAgICAgICAgIGtvcGZSZW5kZXJuKCk7CiAgICAgICAg +ICAgICAgICBkaXJ0eVNldHplbignc3RhbmRvcnRlJywgZmFsc2UpOwogICAgICAgICAgICAgICAg +dGFiRHJhZnRMb2VzY2hlbignc3RhbmRvcnRlJyk7CiAgICAgICAgICAgICAgICB0b2FzdCgnU3Rh +bmRvcnRlIGdlc3BlaWNoZXJ0JywgJ2VyZm9sZycpOwogICAgICAgICAgICB9KS5jYXRjaChmdW5j +dGlvbihlKSB7IHRvYXN0KCdGZWhsZXI6ICcgKyBlLm1lc3NhZ2UsICdmZWhsZXInKTsgfSk7CiAg +ICAgICAgfSk7CgogICAgICAgIC8vIERpZW5zdGdydXBwZW4g4oCUIEt1ZXJ6ZWwsIEJlemVpY2hu +dW5nLCBGYXJiZW4uIEJlaSBLdWVyemVsLUFlbmRlcnVuZwogICAgICAgIC8vIHdlcmRlbiBhbGxl +IFBlcnNvbmVuIGRpZXNlciBHcnVwcGUgYXV0b21hdGlzY2ggdW1nZXNjaHJpZWJlbgogICAgICAg +IC8vIChjYXNjYWRlIHJlbmFtZSkuCiAgICAgICAgdmFyIGJ0bkdydU5ldSA9IGRvY3VtZW50Lmdl +dEVsZW1lbnRCeUlkKCdidG4tZ3J1cHBlbi1uZXUnKTsKICAgICAgICBpZiAoYnRuR3J1TmV1KSBi +dG5HcnVOZXUuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpIHsKICAgICAgICAg +ICAgWi5hZG1pbi5ncnVwcGVuID0gKFouYWRtaW4uZ3J1cHBlbiB8fCBbXSkuc2xpY2UoKTsKICAg +ICAgICAgICAgWi5hZG1pbi5ncnVwcGVuLnB1c2goeyBuYW1lOiAnJywgYmV6ZWljaG51bmc6ICcn +LCBoaW50ZXJncnVuZDogJyM1NDZFN0EnLCBzY2hyaWZ0OiAnI0ZGRkZGRicgfSk7CiAgICAgICAg +ICAgIGdydXBwZW5UYWJlbGxlUmVuZGVybigpOwogICAgICAgICAgICAvLyBGb2t1cyBhdWYgZGFz +IGdlcmFkZSBhbmdlbGVndGUgS3VlcnplbC1GZWxkCiAgICAgICAgICAgIHZhciBsZXR6dGVaZWls +ZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNncnVwcGVuLXRib2R5IHRyOmxhc3QtY2hpbGQg +LmdydXBwZS1rdWVyemVsLWlucHV0Jyk7CiAgICAgICAgICAgIGlmIChsZXR6dGVaZWlsZSkgbGV0 +enRlWmVpbGUuZm9jdXMoKTsKICAgICAgICB9KTsKCiAgICAgICAgdmFyIGdydXBwZW5UYm9keSA9 +IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdncnVwcGVuLXRib2R5Jyk7CiAgICAgICAgaWYgKGdy +dXBwZW5UYm9keSkgZ3J1cHBlblRib2R5LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rp +b24oZSkgewogICAgICAgICAgICB2YXIgYnRuU29ydCA9IGUudGFyZ2V0LmNsb3Nlc3QoJ1tkYXRh +LWFrdGlvbj0iZ3J1cHBlLXJhdWYiXSxbZGF0YS1ha3Rpb249ImdydXBwZS1ydW50ZXIiXScpOwog +ICAgICAgICAgICBpZiAoYnRuU29ydCAmJiAhYnRuU29ydC5kaXNhYmxlZCkgewogICAgICAgICAg +ICAgICAgdmFyIHNvcnRJZHggPSBwYXJzZUludChidG5Tb3J0LmdldEF0dHJpYnV0ZSgnZGF0YS1p +ZHgnKSwgMTApOwogICAgICAgICAgICAgICAgdmFyIHJhdWYgPSBidG5Tb3J0LmdldEF0dHJpYnV0 +ZSgnZGF0YS1ha3Rpb24nKSA9PT0gJ2dydXBwZS1yYXVmJzsKICAgICAgICAgICAgICAgIHZhciB6 +aWVsSWR4ID0gcmF1ZiA/IHNvcnRJZHggLSAxIDogc29ydElkeCArIDE7CiAgICAgICAgICAgICAg +ICB2YXIgZ3JwID0gWi5hZG1pbi5ncnVwcGVuOwogICAgICAgICAgICAgICAgaWYgKHppZWxJZHgg +Pj0gMCAmJiB6aWVsSWR4IDwgZ3JwLmxlbmd0aCkgewogICAgICAgICAgICAgICAgICAgIHZhciB0 +bXAgPSBncnBbc29ydElkeF07CiAgICAgICAgICAgICAgICAgICAgZ3JwW3NvcnRJZHhdID0gZ3Jw +W3ppZWxJZHhdOwogICAgICAgICAgICAgICAgICAgIGdycFt6aWVsSWR4XSA9IHRtcDsKICAgICAg +ICAgICAgICAgICAgICBncnVwcGVuVGFiZWxsZVJlbmRlcm4oKTsKICAgICAgICAgICAgICAgICAg +ICBkaXJ0eVNldHplbignZ3J1cHBlbicsIHRydWUpOwogICAgICAgICAgICAgICAgfQogICAgICAg +ICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciBidG4gPSBlLnRh +cmdldC5jbG9zZXN0KCdbZGF0YS1ha3Rpb249ImdydXBwZS1sb2VzY2hlbiJdJyk7CiAgICAgICAg +ICAgIGlmICghYnRuIHx8IGJ0bi5kaXNhYmxlZCkgcmV0dXJuOwogICAgICAgICAgICB2YXIgaWR4 +ID0gcGFyc2VJbnQoYnRuLmdldEF0dHJpYnV0ZSgnZGF0YS1pZHgnKSwgMTApOwogICAgICAgICAg +ICB2YXIgZ3IgPSAoWi5hZG1pbi5ncnVwcGVuIHx8IFtdKVtpZHhdOwogICAgICAgICAgICBpZiAo +IWdyKSByZXR1cm47CiAgICAgICAgICAgIC8vIERvcHBlbHRlIFNpY2hlcmhlaXQ6IFBlcnNvbmVu +LVphZWhsdW5nIGVybmV1dCBwcnVlZmVuCiAgICAgICAgICAgIHZhciB6YWVobCA9IGdydXBwZW5Q +ZXJzb25lblphZWhsZW4oKTsKICAgICAgICAgICAgaWYgKCh6YWVobFtnci5uYW1lXSB8fCAwKSA+ +IDApIHsKICAgICAgICAgICAgICAgIHRvYXN0KCdHcnVwcGUgIicgKyBnci5uYW1lICsgJyIgaGF0 +IG5vY2ggJyArIHphZWhsW2dyLm5hbWVdICsgJyBha3RpdmUgUGVyc29uZW4g4oCUIGthbm4gbmlj +aHQgZ2Vsw7ZzY2h0IHdlcmRlbicsICd3YXJudW5nJyk7CiAgICAgICAgICAgICAgICByZXR1cm47 +CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYmVzdGFldGlnZW4oJ0RpZW5zdGdydXBwZSAiJyAr +IGdyLm5hbWUgKyAnIiAoJyArIChnci5iZXplaWNobnVuZyB8fCAnJykgKyAnKSB3aXJrbGljaCBs +w7ZzY2hlbj9cblxuRGllIEdydXBwZSB3aXJkIG5pY2h0IGF1cyBQZXJzb25lbi1FaW50csOkZ2Vu +IGVudGZlcm50LCBkaWUgc2llIGJlcmVpdHMgZ2VudXR6dCBoYWJlbiAoYWt0dWVsbDoga2VpbmUp +IOKAlCBudXIgYXVzIGRlciBBZG1pbi1MaXN0ZS4nLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAg +ICAgIFouYWRtaW4uZ3J1cHBlbi5zcGxpY2UoaWR4LCAxKTsKICAgICAgICAgICAgICAgIGdydXBw +ZW5UYWJlbGxlUmVuZGVybigpOwogICAgICAgICAgICAgICAgdG9hc3QoJ0dydXBwZSBsb2thbCBl +bnRmZXJudCDigJQgamV0enQgIlNwZWljaGVybiIgZHLDvGNrZW4nLCAnaW5mbycpOwogICAgICAg +ICAgICB9LCB7IHRpdGVsOiAnR3J1cHBlIGzDtnNjaGVuJywgamFEYW5nZXI6IHRydWUgfSk7CiAg +ICAgICAgfSk7CgogICAgICAgIHZhciBidG5HcnVTcGVpY2hlcm4gPSBkb2N1bWVudC5nZXRFbGVt +ZW50QnlJZCgnYnRuLWdydXBwZW4tc3BlaWNoZXJuJyk7CiAgICAgICAgaWYgKGJ0bkdydVNwZWlj +aGVybikgYnRuR3J1U3BlaWNoZXJuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24o +KSB7CiAgICAgICAgICAgIHZhciBrdWVySW5wdXRzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFs +bCgnLmdydXBwZS1rdWVyemVsLWlucHV0Jyk7CiAgICAgICAgICAgIHZhciBiZXpJbnB1dHMgID0g +ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmdydXBwZS1iZXotaW5wdXQnKTsKICAgICAgICAg +ICAgdmFyIGhnSW5wdXRzICAgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuZ3J1cHBlLWhn +LWlucHV0Jyk7CiAgICAgICAgICAgIHZhciBzZklucHV0cyAgID0gZG9jdW1lbnQucXVlcnlTZWxl +Y3RvckFsbCgnLmdydXBwZS1zZi1pbnB1dCcpOwogICAgICAgICAgICB2YXIgbmV1ZUdyID0gKFou +YWRtaW4uZ3J1cHBlbiB8fCBbXSkubWFwKGZ1bmN0aW9uKGcpIHsgcmV0dXJuIE9iamVjdC5hc3Np +Z24oe30sIGcpOyB9KTsKICAgICAgICAgICAgdmFyIHJlbmFtZU1hcCA9IHt9OyAgICAgLy8gYWx0 +ZXNLdWVyemVsIC0+IG5ldWVzS3VlcnplbAogICAgICAgICAgICB2YXIgZHVwbGljYXRlQ2hlY2sg +PSB7fTsKICAgICAgICAgICAgdmFyIGZlaGxlciA9IG51bGw7CgogICAgICAgICAgICBrdWVySW5w +dXRzLmZvckVhY2goZnVuY3Rpb24oaW5wKSB7CiAgICAgICAgICAgICAgICBpZiAoZmVobGVyKSBy +ZXR1cm47CiAgICAgICAgICAgICAgICB2YXIgaWR4ID0gcGFyc2VJbnQoaW5wLmdldEF0dHJpYnV0 +ZSgnZGF0YS1pZHgnKSk7CiAgICAgICAgICAgICAgICB2YXIgYWx0S3VlcnplbCA9IGlucC5nZXRB +dHRyaWJ1dGUoJ2RhdGEtYWx0Jyk7CiAgICAgICAgICAgICAgICB2YXIgbmV1S3VlcnplbCA9IGlu +cC52YWx1ZS50cmltKCk7CiAgICAgICAgICAgICAgICBpZiAoaXNOYU4oaWR4KSB8fCAhbmV1ZUdy +W2lkeF0pIHJldHVybjsKICAgICAgICAgICAgICAgIGlmICghbmV1S3VlcnplbCkgeyBmZWhsZXIg +PSAnS8O8cnplbCBkYXJmIG5pY2h0IGxlZXIgc2VpbiAoWmVpbGUgJyArIChpZHggKyAxKSArICcp +JzsgcmV0dXJuOyB9CiAgICAgICAgICAgICAgICBpZiAoZHVwbGljYXRlQ2hlY2tbbmV1S3Vlcnpl +bF0pIHsgZmVobGVyID0gJ0vDvHJ6ZWwgIicgKyBuZXVLdWVyemVsICsgJyIgaXN0IG1laHJmYWNo +IHZlcmdlYmVuJzsgcmV0dXJuOyB9CiAgICAgICAgICAgICAgICBkdXBsaWNhdGVDaGVja1tuZXVL +dWVyemVsXSA9IHRydWU7CiAgICAgICAgICAgICAgICAvLyBSZW5hbWUgbnVyIHdlbm4gZXMgZWlu +IGVjaHRlcyBhbHRlcyBLdWVyemVsIGdhYiDigJQgbmV1ZSBHcnVwcGVuIChhbHRLdWVyemVsID09 +PSAnJykKICAgICAgICAgICAgICAgIC8vIGJyYXVjaGVuIGtlaW5lbiBDYXNjYWRlLgogICAgICAg +ICAgICAgICAgaWYgKGFsdEt1ZXJ6ZWwgJiYgbmV1S3VlcnplbCAhPT0gYWx0S3VlcnplbCkgcmVu +YW1lTWFwW2FsdEt1ZXJ6ZWxdID0gbmV1S3VlcnplbDsKICAgICAgICAgICAgICAgIG5ldWVHcltp +ZHhdLm5hbWUgPSBuZXVLdWVyemVsOwogICAgICAgICAgICB9KTsKICAgICAgICAgICAgaWYgKGZl +aGxlcikgeyB0b2FzdChmZWhsZXIsICd3YXJudW5nJyk7IHJldHVybjsgfQoKICAgICAgICAgICAg +YmV6SW5wdXRzLmZvckVhY2goZnVuY3Rpb24oaW5wKSB7CiAgICAgICAgICAgICAgICB2YXIgaWR4 +ID0gcGFyc2VJbnQoaW5wLmdldEF0dHJpYnV0ZSgnZGF0YS1pZHgnKSk7CiAgICAgICAgICAgICAg +ICBpZiAoIWlzTmFOKGlkeCkgJiYgbmV1ZUdyW2lkeF0pIG5ldWVHcltpZHhdLmJlemVpY2hudW5n +ID0gaW5wLnZhbHVlLnRyaW0oKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGhnSW5wdXRz +LmZvckVhY2goZnVuY3Rpb24oaW5wKSB7CiAgICAgICAgICAgICAgICB2YXIgaWR4ID0gcGFyc2VJ +bnQoaW5wLmdldEF0dHJpYnV0ZSgnZGF0YS1pZHgnKSk7CiAgICAgICAgICAgICAgICBpZiAoIWlz +TmFOKGlkeCkgJiYgbmV1ZUdyW2lkeF0pIG5ldWVHcltpZHhdLmhpbnRlcmdydW5kID0gaW5wLnZh +bHVlOwogICAgICAgICAgICB9KTsKICAgICAgICAgICAgc2ZJbnB1dHMuZm9yRWFjaChmdW5jdGlv +bihpbnApIHsKICAgICAgICAgICAgICAgIHZhciBpZHggPSBwYXJzZUludChpbnAuZ2V0QXR0cmli +dXRlKCdkYXRhLWlkeCcpKTsKICAgICAgICAgICAgICAgIGlmICghaXNOYU4oaWR4KSAmJiBuZXVl +R3JbaWR4XSkgbmV1ZUdyW2lkeF0uc2NocmlmdCA9IGlucC52YWx1ZTsKICAgICAgICAgICAgfSk7 +CiAgICAgICAgICAgIC8vICJJbiBQbGFudW5nIHNpY2h0YmFyIi1DaGVja2JveCBlaW5sZXNlbiAo +RGVmYXVsdCB0cnVlKS4KICAgICAgICAgICAgdmFyIGlucGxJbnB1dHMgPSBkb2N1bWVudC5xdWVy +eVNlbGVjdG9yQWxsKCcuZ3J1cHBlLWlucGxhbnVuZy1pbnB1dCcpOwogICAgICAgICAgICBpbnBs +SW5wdXRzLmZvckVhY2goZnVuY3Rpb24oaW5wKSB7CiAgICAgICAgICAgICAgICB2YXIgaWR4ID0g +cGFyc2VJbnQoaW5wLmdldEF0dHJpYnV0ZSgnZGF0YS1pZHgnKSk7CiAgICAgICAgICAgICAgICBp +ZiAoIWlzTmFOKGlkeCkgJiYgbmV1ZUdyW2lkeF0pIG5ldWVHcltpZHhdLmluUGxhbnVuZyA9ICEh +aW5wLmNoZWNrZWQ7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgICAvLyAiQW5zcHJlY2hwYXJ0 +bmVyIG3DtmdsaWNoIi1DaGVja2JveCBlaW5sZXNlbiAoRGVmYXVsdCB0cnVlKS4KICAgICAgICAg +ICAgLy8gUGVuZGFudCB6dXIgaW5QbGFudW5nLUxvZ2lrOiBzdGV1ZXJ0LCBvYiBQZXJzb25lbiBk +aWVzZXIgR3J1cHBlCiAgICAgICAgICAgIC8vIGltIFBlcnNvbmFsLVRhYiBhbHMgQW5zcHJlY2hw +YXJ0bmVyIG1hcmtpZXJ0IHdlcmRlbiBkdWVyZmVuCiAgICAgICAgICAgIC8vIHVuZCBpbSBJbmZv +LU1vZGFsIG1pdCBNYWlsLUJ1dHRvbiBlcnNjaGVpbmVuLgogICAgICAgICAgICB2YXIgZGFyZkFw +SW5wdXRzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmdydXBwZS1kYXJmYXAtaW5wdXQn +KTsKICAgICAgICAgICAgZGFyZkFwSW5wdXRzLmZvckVhY2goZnVuY3Rpb24oaW5wKSB7CiAgICAg +ICAgICAgICAgICB2YXIgaWR4ID0gcGFyc2VJbnQoaW5wLmdldEF0dHJpYnV0ZSgnZGF0YS1pZHgn +KSk7CiAgICAgICAgICAgICAgICBpZiAoIWlzTmFOKGlkeCkgJiYgbmV1ZUdyW2lkeF0pIG5ldWVH +cltpZHhdLmRhcmZBbnNwcmVjaHBhcnRuZXIgPSAhIWlucC5jaGVja2VkOwogICAgICAgICAgICB9 +KTsKCiAgICAgICAgICAgIHZhciByZW5hbWVLZXlzID0gT2JqZWN0LmtleXMocmVuYW1lTWFwKTsK +ICAgICAgICAgICAgZnVuY3Rpb24gbmFjaFNwZWljaGVybigpIHsKICAgICAgICAgICAgICAgIFou +YWRtaW4uZ3J1cHBlbiA9IG5ldWVHcjsKICAgICAgICAgICAgICAgIFouZ3J1cHBlbk1hcCA9IHt9 +OwogICAgICAgICAgICAgICAgbmV1ZUdyLmZvckVhY2goZnVuY3Rpb24oZ3IpIHsKICAgICAgICAg +ICAgICAgICAgICBaLmdydXBwZW5NYXBbZ3IubmFtZV0gPSB7IGhpbnRlcmdydW5kOiBnci5oaW50 +ZXJncnVuZCwgc2NocmlmdDogZ3Iuc2NocmlmdCwgYmV6ZWljaG51bmc6IGdyLmJlemVpY2hudW5n +IH07CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIC8vIGluUGxhbnVuZy1GbGFn +IChvZGVyIFVtYmVuZW5udW5nKSBrYW5uIGRpZSBTaWNodGJhcmtlaXQKICAgICAgICAgICAgICAg +IC8vIGdhbnplciBHcnVwcGVuIHZlcmFlbmRlcm4g4oCUIFBlcnNvbmVuLUZpbHRlciBuZXUgZ3Jl +aWZlbgogICAgICAgICAgICAgICAgLy8gbGFzc2VuIHVuZCBQbGFudGFmZWwga29tcGxldHQgbmV1 +IGF1ZmJhdWVuLgogICAgICAgICAgICAgICAgcGVyc29uZW5OZXVBdWZiYXVlbigpOwogICAgICAg +ICAgICAgICAgaWYgKHR5cGVvZiBuYW1lblJlbmRlcm4gPT09ICdmdW5jdGlvbicpIG5hbWVuUmVu +ZGVybigpOwogICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBrb3BmUmVuZGVybiA9PT0gJ2Z1bmN0 +aW9uJykga29wZlJlbmRlcm4oKTsKICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgZGF0ZW5Hcmlk +UmVuZGVybiA9PT0gJ2Z1bmN0aW9uJykgZGF0ZW5HcmlkUmVuZGVybigpOwogICAgICAgICAgICAg +ICAgcGVyc29uYWxUYWJlbGxlUmVuZGVybigpOwogICAgICAgICAgICAgICAgZ3J1cHBlblRhYmVs +bGVSZW5kZXJuKCk7CiAgICAgICAgICAgICAgICB2YXIgc3VmZml4ID0gcmVuYW1lS2V5cy5sZW5n +dGggPyAnICgnICsgcmVuYW1lS2V5cy5sZW5ndGggKyAnIEvDvHJ6ZWwgdW1iZW5hbm50ICsgUGVy +c29uZW4gbWlncmllcnQpJyA6ICcnOwogICAgICAgICAgICAgICAgZGlydHlTZXR6ZW4oJ2dydXBw +ZW4nLCBmYWxzZSk7CiAgICAgICAgICAgICAgICB0YWJEcmFmdExvZXNjaGVuKCdncnVwcGVuJyk7 +CiAgICAgICAgICAgICAgICB0b2FzdCgnRGllbnN0Z3J1cHBlbiBnZXNwZWljaGVydCcgKyBzdWZm +aXgsICdlcmZvbGcnKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgZnVuY3Rpb24gYXVzZnVl +aHJlbigpIHsKICAgICAgICAgICAgICAgIGFwaVB1dCgnL2FwaS9hZG1pbicsIE9iamVjdC5hc3Np +Z24oe30sIFouYWRtaW4sIHsgZ3J1cHBlbjogbmV1ZUdyIH0pKS50aGVuKGZ1bmN0aW9uKCkgewog +ICAgICAgICAgICAgICAgICAgIGlmICghcmVuYW1lS2V5cy5sZW5ndGgpIHsgbmFjaFNwZWljaGVy +bigpOyByZXR1cm47IH0KICAgICAgICAgICAgICAgICAgICAoWi5wbGFudW5nLnBlcnNvbmVuIHx8 +IFtdKS5mb3JFYWNoKGZ1bmN0aW9uKHApIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHAu +Z3J1cHBlICYmIHJlbmFtZU1hcFtwLmdydXBwZV0pIHAuZ3J1cHBlID0gcmVuYW1lTWFwW3AuZ3J1 +cHBlXTsKICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICByZXR1cm4g +YXBpUHV0KCcvYXBpL3BsYW51bmcnLCBaLnBsYW51bmcpLnRoZW4obmFjaFNwZWljaGVybik7CiAg +ICAgICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlKSB7IHRvYXN0KCdGZWhsZXI6ICcgKyBl +Lm1lc3NhZ2UsICdmZWhsZXInKTsgfSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIEth +c2thZGVuLVdhcm51bmc6IHdlbm4gS3VlcnplbCB1bWJlbmFubnQgd2VyZGVuLCBzaW5kIEFMTEUK +ICAgICAgICAgICAgLy8gUGVyc29uZW4gbWl0IGRlbSBhbHRlbiBLdWVyemVsIGJldHJvZmZlbiDi +gJQgdm9yaGVyIHplaWdlbiwKICAgICAgICAgICAgLy8gd2llIHZpZWxlIGRhcyBzaW5kLCBiZXZv +ciBzdGlsbHNjaHdlaWdlbmQgbWlncmllcnQgd2lyZC4KICAgICAgICAgICAgLy8gYmVzdGFldGln +ZW4oKSBlc2NhcHQgSFRNTDsgbWl0IFxuIHVuZCBwcmUtbGluZSB3aXJkIGRlciBCbG9jawogICAg +ICAgICAgICAvLyB0cm90emRlbSBtZWhyemVpbGlnIGRhcmdlc3RlbGx0LgogICAgICAgICAgICBp +ZiAocmVuYW1lS2V5cy5sZW5ndGgpIHsKICAgICAgICAgICAgICAgIHZhciBiZXRyb2ZmZW4gPSAw +OwogICAgICAgICAgICAgICAgdmFyIGRldGFpbHMgPSByZW5hbWVLZXlzLm1hcChmdW5jdGlvbihh +bHQpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgbiA9IChaLnBsYW51bmcucGVyc29uZW4gfHwg +W10pLmZpbHRlcihmdW5jdGlvbihwKSB7IHJldHVybiBwLmdydXBwZSA9PT0gYWx0OyB9KS5sZW5n +dGg7CiAgICAgICAgICAgICAgICAgICAgYmV0cm9mZmVuICs9IG47CiAgICAgICAgICAgICAgICAg +ICAgcmV0dXJuICcgIOKAoiAnICsgYWx0ICsgJyDihpIgJyArIHJlbmFtZU1hcFthbHRdICsgJyAg +KCcgKyBuICsgJyBQZXJzb24nICsgKG4gPT09IDEgPyAnJyA6ICdlbicpICsgJyknOwogICAgICAg +ICAgICAgICAgfSkuam9pbignXG4nKTsKICAgICAgICAgICAgICAgIGJlc3RhZXRpZ2VuKAogICAg +ICAgICAgICAgICAgICAgICdGb2xnZW5kZSBEaWVuc3RncnVwcGVuLUvDvHJ6ZWwgd2VyZGVuIHVt +YmVuYW5udCDigJQgYWxsZSB6dWdlb3JkbmV0ZW4gUGVyc29uZW4gd2VyZGVuIGF1dG9tYXRpc2No +IG1pZ3JpZXJ0OlxuXG4nICsKICAgICAgICAgICAgICAgICAgICBkZXRhaWxzICsKICAgICAgICAg +ICAgICAgICAgICAnXG5cbkluc2dlc2FtdCAnICsgYmV0cm9mZmVuICsgJyBQZXJzb24nICsgKGJl +dHJvZmZlbiA9PT0gMSA/ICcnIDogJ2VuJykgKyAnIGJldHJvZmZlbi4nLAogICAgICAgICAgICAg +ICAgICAgIGF1c2Z1ZWhyZW4sCiAgICAgICAgICAgICAgICAgICAgeyB0aXRlbDogJ0RpZW5zdGdy +dXBwZW4gdW1iZW5lbm5lbicsIGphVGV4dDogJ1Vtc2V0emVuJyB9CiAgICAgICAgICAgICAgICAp +OwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGF1c2Z1 +ZWhyZW4oKTsKICAgICAgICB9KTsKCiAgICAgICAgLy8gRXhjZWwtSW1wb3J0CiAgICAgICAgdmFy +IGltcEZpbGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW1wLWRhdGVpJyk7CiAgICAgICAg +aWYgKGltcEZpbGUpIGltcEZpbGUuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgZnVuY3Rpb24o +ZSkgewogICAgICAgICAgICB2YXIgZiA9IGUudGFyZ2V0LmZpbGVzICYmIGUudGFyZ2V0LmZpbGVz +WzBdOwogICAgICAgICAgICBpZiAoZikgaW1wRGF0ZWlWZXJhcmJlaXRlbihmKTsKICAgICAgICB9 +KTsKCiAgICAgICAgLy8gQmV6ZWljaG51bmdlbgogICAgICAgIHZhciBidG5CZXpTcGVpY2hlcm4g +PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnRuLWJlemVpY2hudW5nZW4tc3BlaWNoZXJuJyk7 +CiAgICAgICAgaWYgKGJ0bkJlelNwZWljaGVybikgYnRuQmV6U3BlaWNoZXJuLmFkZEV2ZW50TGlz +dGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHZhciBtYXAgPSBiZXplaWNo +bnVuZ2VuQXVzVGFiZWxsZUxlc2VuKCk7CiAgICAgICAgICAgIGFwaVB1dCgnL2FwaS9hZG1pbi9i +ZXplaWNobnVuZ2VuJywgbWFwKS50aGVuKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgWi5h +ZG1pbi5iZXplaWNobnVuZ2VuID0gbWFwOwogICAgICAgICAgICAgICAgYmV6ZWljaG51bmdlbkFu +d2VuZGVuKCk7CiAgICAgICAgICAgICAgICBkaXJ0eVNldHplbignYmV6ZWljaG51bmdlbicsIGZh +bHNlKTsKICAgICAgICAgICAgICAgIHRvYXN0KCdCZXplaWNobnVuZ2VuIGdlc3BlaWNoZXJ0IOKA +lCBSZWxvYWQgZsO8ciBhbGxlIE51dHplciBuw7Z0aWcnLCAnZXJmb2xnJyk7CiAgICAgICAgICAg IH0pLmNhdGNoKGZ1bmN0aW9uKGUpIHsgdG9hc3QoJ0ZlaGxlcjogJyArIGUubWVzc2FnZSwgJ2Zl -aGxlcicpOyB9KTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gS2Fza2FkZW4tV2FybnVu -Zzogd2VubiBLdWVyemVsIHVtYmVuYW5udCB3ZXJkZW4sIHNpbmQgQUxMRQogICAgICAgICAgICAv -LyBQZXJzb25lbiBtaXQgZGVtIGFsdGVuIEt1ZXJ6ZWwgYmV0cm9mZmVuIOKAlCB2b3JoZXIgemVp -Z2VuLAogICAgICAgICAgICAvLyB3aWUgdmllbGUgZGFzIHNpbmQsIGJldm9yIHN0aWxsc2Nod2Vp -Z2VuZCBtaWdyaWVydCB3aXJkLgogICAgICAgICAgICAvLyBiZXN0YWV0aWdlbigpIGVzY2FwdCBI -VE1MOyBtaXQgXG4gdW5kIHByZS1saW5lIHdpcmQgZGVyIEJsb2NrCiAgICAgICAgICAgIC8vIHRy -b3R6ZGVtIG1laHJ6ZWlsaWcgZGFyZ2VzdGVsbHQuCiAgICAgICAgICAgIGlmIChyZW5hbWVLZXlz -Lmxlbmd0aCkgewogICAgICAgICAgICAgICAgdmFyIGJldHJvZmZlbiA9IDA7CiAgICAgICAgICAg -ICAgICB2YXIgZGV0YWlscyA9IHJlbmFtZUtleXMubWFwKGZ1bmN0aW9uKGFsdCkgewogICAgICAg -ICAgICAgICAgICAgIHZhciBuID0gKFoucGxhbnVuZy5wZXJzb25lbiB8fCBbXSkuZmlsdGVyKGZ1 -bmN0aW9uKHApIHsgcmV0dXJuIHAuZ3J1cHBlID09PSBhbHQ7IH0pLmxlbmd0aDsKICAgICAgICAg -ICAgICAgICAgICBiZXRyb2ZmZW4gKz0gbjsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gJyAg -4oCiICcgKyBhbHQgKyAnIOKGkiAnICsgcmVuYW1lTWFwW2FsdF0gKyAnICAoJyArIG4gKyAnIFBl -cnNvbicgKyAobiA9PT0gMSA/ICcnIDogJ2VuJykgKyAnKSc7CiAgICAgICAgICAgICAgICB9KS5q -b2luKCdcbicpOwogICAgICAgICAgICAgICAgYmVzdGFldGlnZW4oCiAgICAgICAgICAgICAgICAg -ICAgJ0ZvbGdlbmRlIERpZW5zdGdydXBwZW4tS8O8cnplbCB3ZXJkZW4gdW1iZW5hbm50IOKAlCBh -bGxlIHp1Z2VvcmRuZXRlbiBQZXJzb25lbiB3ZXJkZW4gYXV0b21hdGlzY2ggbWlncmllcnQ6XG5c -bicgKwogICAgICAgICAgICAgICAgICAgIGRldGFpbHMgKwogICAgICAgICAgICAgICAgICAgICdc -blxuSW5zZ2VzYW10ICcgKyBiZXRyb2ZmZW4gKyAnIFBlcnNvbicgKyAoYmV0cm9mZmVuID09PSAx -ID8gJycgOiAnZW4nKSArICcgYmV0cm9mZmVuLicsCiAgICAgICAgICAgICAgICAgICAgYXVzZnVl -aHJlbiwKICAgICAgICAgICAgICAgICAgICB7IHRpdGVsOiAnRGllbnN0Z3J1cHBlbiB1bWJlbmVu -bmVuJywgamFUZXh0OiAnVW1zZXR6ZW4nIH0KICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAg -ICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYXVzZnVlaHJlbigpOwogICAg -ICAgIH0pOwoKICAgICAgICAvLyBFeGNlbC1JbXBvcnQKICAgICAgICB2YXIgaW1wRmlsZSA9IGRv -Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbXAtZGF0ZWknKTsKICAgICAgICBpZiAoaW1wRmlsZSkg -aW1wRmlsZS5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBmdW5jdGlvbihlKSB7CiAgICAgICAg -ICAgIHZhciBmID0gZS50YXJnZXQuZmlsZXMgJiYgZS50YXJnZXQuZmlsZXNbMF07CiAgICAgICAg -ICAgIGlmIChmKSBpbXBEYXRlaVZlcmFyYmVpdGVuKGYpOwogICAgICAgIH0pOwoKICAgICAgICAv -LyBCZXplaWNobnVuZ2VuCiAgICAgICAgdmFyIGJ0bkJlelNwZWljaGVybiA9IGRvY3VtZW50Lmdl -dEVsZW1lbnRCeUlkKCdidG4tYmV6ZWljaG51bmdlbi1zcGVpY2hlcm4nKTsKICAgICAgICBpZiAo -YnRuQmV6U3BlaWNoZXJuKSBidG5CZXpTcGVpY2hlcm4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2sn -LCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgdmFyIG1hcCA9IGJlemVpY2hudW5nZW5BdXNUYWJl -bGxlTGVzZW4oKTsKICAgICAgICAgICAgYXBpUHV0KCcvYXBpL2FkbWluL2JlemVpY2hudW5nZW4n -LCBtYXApLnRoZW4oZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICBaLmFkbWluLmJlemVpY2hu -dW5nZW4gPSBtYXA7CiAgICAgICAgICAgICAgICBiZXplaWNobnVuZ2VuQW53ZW5kZW4oKTsKICAg -ICAgICAgICAgICAgIGRpcnR5U2V0emVuKCdiZXplaWNobnVuZ2VuJywgZmFsc2UpOwogICAgICAg -ICAgICAgICAgdG9hc3QoJ0JlemVpY2hudW5nZW4gZ2VzcGVpY2hlcnQg4oCUIFJlbG9hZCBmw7xy -IGFsbGUgTnV0emVyIG7DtnRpZycsICdlcmZvbGcnKTsKICAgICAgICAgICAgfSkuY2F0Y2goZnVu -Y3Rpb24oZSkgeyB0b2FzdCgnRmVobGVyOiAnICsgZS5tZXNzYWdlLCAnZmVobGVyJyk7IH0pOwog -ICAgICAgIH0pOwogICAgICAgIHZhciBidG5CZXpSZXNldCA9IGRvY3VtZW50LmdldEVsZW1lbnRC -eUlkKCdidG4tYmV6ZWljaG51bmdlbi1yZXNldCcpOwogICAgICAgIGlmIChidG5CZXpSZXNldCkg -YnRuQmV6UmVzZXQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpIHsKICAgICAg -ICAgICAgYmVzdGFldGlnZW4oJ0FsbGUgZWlnZW5lbiBCZXplaWNobnVuZ2VuIGzDtnNjaGVuIHVu -ZCBhdWYgRGVmYXVsdHMgenVyw7xja3NldHplbj8nLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAg -ICAgIGFwaVB1dCgnL2FwaS9hZG1pbi9iZXplaWNobnVuZ2VuJywge30pLnRoZW4oZnVuY3Rpb24o -KSB7CiAgICAgICAgICAgICAgICAgICAgWi5hZG1pbi5iZXplaWNobnVuZ2VuID0ge307CiAgICAg -ICAgICAgICAgICAgICAgYmV6ZWljaG51bmdlblJlbmRlcm4oKTsKICAgICAgICAgICAgICAgICAg -ICBiZXplaWNobnVuZ2VuQW53ZW5kZW4oKTsKICAgICAgICAgICAgICAgICAgICB0b2FzdCgnQmV6 -ZWljaG51bmdlbiB6dXLDvGNrZ2VzZXR6dCcsICdlcmZvbGcnKTsKICAgICAgICAgICAgICAgIH0p -LmNhdGNoKGZ1bmN0aW9uKGUpIHsgdG9hc3QoJ0ZlaGxlcjogJyArIGUubWVzc2FnZSwgJ2ZlaGxl -cicpOyB9KTsKICAgICAgICAgICAgfSwgeyB0aXRlbDogJ0JlemVpY2hudW5nZW4genVyw7xja3Nl -dHplbicsIGphVGV4dDogJ1p1csO8Y2tzZXR6ZW4nLCBqYURhbmdlcjogdHJ1ZSB9KTsKICAgICAg -ICB9KTsKCiAgICAgICAgLy8gQmV6ZWljaG51bmdlbiAmIExpc3RlbiDigJQgRGllbnN0Z3JhZGUg -KyBGdW5rdGlvbmVuIGVkaXRpZXJiYXIKICAgICAgICAvLyAoUGhhc2UgMSAvIDIwMjYtMDUtMTkp -LiBCZWlkZSBMaXN0ZW4gd2VyZGVuIGFscyBUZWlsIHZvbgogICAgICAgIC8vIFouYWRtaW4gdmlh -IC9hcGkvYWRtaW4gZ2VzcGVpY2hlcnQgKGtlaW4gZWlnZW5lciBFbmRwb2ludCwgd2VpbAogICAg -ICAgIC8vIGJlaWRlcyByZWluZSBBcnJheS1GZWxkZXIgc2luZCB1bmQgZGVyIExlc2UtUGZhZCBv -aG5laGluIGFsbGVzCiAgICAgICAgLy8gYXVmIGVpbm1hbCBob2x0KS4KICAgICAgICB2YXIgYnRu -RGdyZE5ldSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdidG4tZGllbnN0Z3JhZC1uZXUnKTsK -ICAgICAgICBpZiAoYnRuRGdyZE5ldSkgYnRuRGdyZE5ldS5hZGRFdmVudExpc3RlbmVyKCdjbGlj -aycsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICBpZiAoIVouYWRtaW4uZGllbnN0Z3JhZGUpIFou -YWRtaW4uZGllbnN0Z3JhZGUgPSBbXTsKICAgICAgICAgICAgWi5hZG1pbi5kaWVuc3RncmFkZS5w -dXNoKCcnKTsKICAgICAgICAgICAgbGlzdGVuRGllbnN0Z3JhZGVSZW5kZXJuKCk7CiAgICAgICAg -ICAgIC8vIEZva3VzIGF1ZnMgbmV1ZSBJbnB1dGZlbGQKICAgICAgICAgICAgdmFyIGlucHV0cyA9 -IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5kZ3JhZC1pbnB1dCcpOwogICAgICAgICAgICBp -ZiAoaW5wdXRzLmxlbmd0aCkgaW5wdXRzW2lucHV0cy5sZW5ndGggLSAxXS5mb2N1cygpOwogICAg -ICAgIH0pOwogICAgICAgIHZhciBidG5EZ3JkU3BlaWNoZXJuID0gZG9jdW1lbnQuZ2V0RWxlbWVu -dEJ5SWQoJ2J0bi1kaWVuc3RncmFkZS1zcGVpY2hlcm4nKTsKICAgICAgICBpZiAoYnRuRGdyZFNw -ZWljaGVybikgYnRuRGdyZFNwZWljaGVybi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0 -aW9uKCkgewogICAgICAgICAgICB2YXIgbGlzdGUgPSBkaWVuc3RncmFkZUF1c1RhYmVsbGVMZXNl -bigpOwogICAgICAgICAgICBaLmFkbWluLmRpZW5zdGdyYWRlID0gbGlzdGU7CiAgICAgICAgICAg -IGFwaVB1dCgnL2FwaS9hZG1pbicsIFouYWRtaW4pLnRoZW4oZnVuY3Rpb24oKSB7CiAgICAgICAg -ICAgICAgICBsaXN0ZW5EaWVuc3RncmFkZVJlbmRlcm4oKTsKICAgICAgICAgICAgICAgIHRvYXN0 -KCdEaWVuc3RncmFkZSBnZXNwZWljaGVydCcsICdlcmZvbGcnKTsKICAgICAgICAgICAgfSkuY2F0 -Y2goZnVuY3Rpb24oZSkgeyB0b2FzdCgnRmVobGVyOiAnICsgZS5tZXNzYWdlLCAnZmVobGVyJyk7 -IH0pOwogICAgICAgIH0pOwoKICAgICAgICB2YXIgYnRuRnVua05ldSA9IGRvY3VtZW50LmdldEVs -ZW1lbnRCeUlkKCdidG4tZnVua3Rpb24tbmV1Jyk7CiAgICAgICAgaWYgKGJ0bkZ1bmtOZXUpIGJ0 -bkZ1bmtOZXUuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpIHsKICAgICAgICAg -ICAgaWYgKCFaLmFkbWluLmZ1bmt0aW9uZW4pIFouYWRtaW4uZnVua3Rpb25lbiA9IFtdOwogICAg -ICAgICAgICBaLmFkbWluLmZ1bmt0aW9uZW4ucHVzaCh7IGNvZGU6ICcnLCByYW5nOiA5OSB9KTsK -ICAgICAgICAgICAgbGlzdGVuRnVua3Rpb25lblJlbmRlcm4oKTsKICAgICAgICAgICAgdmFyIGlu -cHV0cyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5mdW5rLWlucHV0LWNvZGUnKTsKICAg -ICAgICAgICAgaWYgKGlucHV0cy5sZW5ndGgpIGlucHV0c1tpbnB1dHMubGVuZ3RoIC0gMV0uZm9j -dXMoKTsKICAgICAgICB9KTsKICAgICAgICB2YXIgYnRuRnVua1NwZWljaGVybiA9IGRvY3VtZW50 -LmdldEVsZW1lbnRCeUlkKCdidG4tZnVua3Rpb25lbi1zcGVpY2hlcm4nKTsKICAgICAgICBpZiAo -YnRuRnVua1NwZWljaGVybikgYnRuRnVua1NwZWljaGVybi5hZGRFdmVudExpc3RlbmVyKCdjbGlj -aycsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICB2YXIgbGlzdGUgPSBmdW5rdGlvbmVuQXVzVGFi -ZWxsZUxlc2VuKCk7CiAgICAgICAgICAgIFouYWRtaW4uZnVua3Rpb25lbiA9IGxpc3RlOwogICAg -ICAgICAgICBhcGlQdXQoJy9hcGkvYWRtaW4nLCBaLmFkbWluKS50aGVuKGZ1bmN0aW9uKCkgewog -ICAgICAgICAgICAgICAgbGlzdGVuRnVua3Rpb25lblJlbmRlcm4oKTsKICAgICAgICAgICAgICAg -IHRvYXN0KCdGdW5rdGlvbmVuIGdlc3BlaWNoZXJ0JywgJ2VyZm9sZycpOwogICAgICAgICAgICB9 -KS5jYXRjaChmdW5jdGlvbihlKSB7IHRvYXN0KCdGZWhsZXI6ICcgKyBlLm1lc3NhZ2UsICdmZWhs -ZXInKTsgfSk7CiAgICAgICAgfSk7CgogICAgICAgIC8vIFJlaWhlbmZvbGdlIC8gTG9lc2NoZW4g -4oCUIEV2ZW50LURlbGVnYXRpb24gYXVmIGJlaWRlIFRhYmVsbGVuLAogICAgICAgIC8vIGRpZXNl -bGJlIExvZ2lrIGZ1ZXIgRGdyYWQgdW5kIEZ1bmt0aW9uZW4sIG51ciB1bnRlcnNjaGllZGxpY2hl -cgogICAgICAgIC8vIFN0YXRlLVNsb3QgaW4gWi5hZG1pbi4KICAgICAgICB2YXIgbGlzdGVuVGFi -ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FkbWluLXRhYi1saXN0ZW4nKTsKICAgICAgICBp -ZiAobGlzdGVuVGFiKSBsaXN0ZW5UYWIuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlv -bihlKSB7CiAgICAgICAgICAgIHZhciBidG4gPSBlLnRhcmdldC5jbG9zZXN0KCdidXR0b25bZGF0 -YS1ha3Rpb25dJyk7CiAgICAgICAgICAgIGlmICghYnRuKSByZXR1cm47CiAgICAgICAgICAgIHZh -ciBha3Rpb24gPSBidG4uZ2V0QXR0cmlidXRlKCdkYXRhLWFrdGlvbicpOwogICAgICAgICAgICB2 -YXIgaWR4ICAgID0gcGFyc2VJbnQoYnRuLmdldEF0dHJpYnV0ZSgnZGF0YS1pZHgnKSwgMTApOwog -ICAgICAgICAgICAvLyBEaWVuc3RncmFkZS1Ba3Rpb25lbgogICAgICAgICAgICBpZiAoYWt0aW9u -ID09PSAnZGdyYWQtdXAnIHx8IGFrdGlvbiA9PT0gJ2RncmFkLWRvd24nIHx8IGFrdGlvbiA9PT0g -J2RncmFkLWxvZXNjaGVuJykgewogICAgICAgICAgICAgICAgLy8gVm9yIGplZGVyIFN0cnVrdHVy -YWVuZGVydW5nOiBha3R1ZWxsZSBJbnB1dC1XZXJ0ZSBlaW5zYW1tZWxuLAogICAgICAgICAgICAg -ICAgLy8gZGFtaXQgbmljaHQtZ2VzcGVpY2hlcnRlIEVkaXRpZXJ1bmdlbiBlcmhhbHRlbiBibGVp -YmVuLgogICAgICAgICAgICAgICAgWi5hZG1pbi5kaWVuc3RncmFkZSA9IGRpZW5zdGdyYWRlQXVz -VGFiZWxsZUxlc2VuKCk7CiAgICAgICAgICAgICAgICBpZiAoYWt0aW9uID09PSAnZGdyYWQtdXAn -ICYmIGlkeCA+IDApIHsKICAgICAgICAgICAgICAgICAgICB2YXIgdG1wID0gWi5hZG1pbi5kaWVu -c3RncmFkZVtpZHgtMV07CiAgICAgICAgICAgICAgICAgICAgWi5hZG1pbi5kaWVuc3RncmFkZVtp -ZHgtMV0gPSBaLmFkbWluLmRpZW5zdGdyYWRlW2lkeF07CiAgICAgICAgICAgICAgICAgICAgWi5h -ZG1pbi5kaWVuc3RncmFkZVtpZHhdICAgPSB0bXA7CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYg -KGFrdGlvbiA9PT0gJ2RncmFkLWRvd24nICYmIGlkeCA8IFouYWRtaW4uZGllbnN0Z3JhZGUubGVu -Z3RoIC0gMSkgewogICAgICAgICAgICAgICAgICAgIHZhciB0bXAyID0gWi5hZG1pbi5kaWVuc3Rn -cmFkZVtpZHgrMV07CiAgICAgICAgICAgICAgICAgICAgWi5hZG1pbi5kaWVuc3RncmFkZVtpZHgr -MV0gPSBaLmFkbWluLmRpZW5zdGdyYWRlW2lkeF07CiAgICAgICAgICAgICAgICAgICAgWi5hZG1p -bi5kaWVuc3RncmFkZVtpZHhdICAgPSB0bXAyOwogICAgICAgICAgICAgICAgfSBlbHNlIGlmIChh -a3Rpb24gPT09ICdkZ3JhZC1sb2VzY2hlbicpIHsKICAgICAgICAgICAgICAgICAgICBaLmFkbWlu -LmRpZW5zdGdyYWRlLnNwbGljZShpZHgsIDEpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAg -ICAgICAgbGlzdGVuRGllbnN0Z3JhZGVSZW5kZXJuKCk7CiAgICAgICAgICAgICAgICByZXR1cm47 -CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8gRnVua3Rpb25lbi1Ba3Rpb25lbgogICAgICAg -ICAgICBpZiAoYWt0aW9uID09PSAnZnVuay11cCcgfHwgYWt0aW9uID09PSAnZnVuay1kb3duJyB8 -fCBha3Rpb24gPT09ICdmdW5rLWxvZXNjaGVuJykgewogICAgICAgICAgICAgICAgWi5hZG1pbi5m -dW5rdGlvbmVuID0gZnVua3Rpb25lbkF1c1RhYmVsbGVMZXNlbigpOwogICAgICAgICAgICAgICAg -aWYgKGFrdGlvbiA9PT0gJ2Z1bmstdXAnICYmIGlkeCA+IDApIHsKICAgICAgICAgICAgICAgICAg -ICB2YXIgdCA9IFouYWRtaW4uZnVua3Rpb25lbltpZHgtMV07CiAgICAgICAgICAgICAgICAgICAg -Wi5hZG1pbi5mdW5rdGlvbmVuW2lkeC0xXSA9IFouYWRtaW4uZnVua3Rpb25lbltpZHhdOwogICAg -ICAgICAgICAgICAgICAgIFouYWRtaW4uZnVua3Rpb25lbltpZHhdICAgPSB0OwogICAgICAgICAg -ICAgICAgfSBlbHNlIGlmIChha3Rpb24gPT09ICdmdW5rLWRvd24nICYmIGlkeCA8IFouYWRtaW4u -ZnVua3Rpb25lbi5sZW5ndGggLSAxKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIHQyID0gWi5h -ZG1pbi5mdW5rdGlvbmVuW2lkeCsxXTsKICAgICAgICAgICAgICAgICAgICBaLmFkbWluLmZ1bmt0 -aW9uZW5baWR4KzFdID0gWi5hZG1pbi5mdW5rdGlvbmVuW2lkeF07CiAgICAgICAgICAgICAgICAg -ICAgWi5hZG1pbi5mdW5rdGlvbmVuW2lkeF0gICA9IHQyOwogICAgICAgICAgICAgICAgfSBlbHNl -IGlmIChha3Rpb24gPT09ICdmdW5rLWxvZXNjaGVuJykgewogICAgICAgICAgICAgICAgICAgIFou -YWRtaW4uZnVua3Rpb25lbi5zcGxpY2UoaWR4LCAxKTsKICAgICAgICAgICAgICAgIH0KICAgICAg -ICAgICAgICAgIGxpc3RlbkZ1bmt0aW9uZW5SZW5kZXJuKCk7CiAgICAgICAgICAgIH0KICAgICAg -ICB9KTsKCiAgICAgICAgLy8gTWlrcm90ZWFtcy1FZGl0b3Ig4oCUIFBoYXNlIDIgKDIwMjYtMDUt -MTkpLiBaLmFkbWluLm1pa3JvdGVhbXMgYWxzCiAgICAgICAgLy8gZ2VwZmxlZ3RlIExpc3RlLiBQ -ZXJzb25lbiBwcm8gVGVhbSB2aWEgTW9kYWwgKG1pa3JvdGVhbVBlcnNvbmVuRGlhbG9nKS4KICAg -ICAgICB2YXIgYnRuTXROZXUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnRuLW1pa3JvdGVh -bS1uZXUnKTsKICAgICAgICBpZiAoYnRuTXROZXUpIGJ0bk10TmV1LmFkZEV2ZW50TGlzdGVuZXIo -J2NsaWNrJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGlmICghWi5hZG1pbi5taWtyb3RlYW1z -KSBaLmFkbWluLm1pa3JvdGVhbXMgPSBbXTsKICAgICAgICAgICAgLy8gU3RydWt0dXJpZXJ0ZSBJ -RC1Wb3JzY2hsYWc6IHRfPFN0YW5kb3J0Pl88R3J1cHBlPjsgYmVpIGxlZXJlbgogICAgICAgICAg -ICAvLyBTdGFtbS1GZWxkZXJuIGJsZWlidCBkZXIgVXNlciBzZWxic3QgenVzdGFlbmRpZy4KICAg -ICAgICAgICAgWi5hZG1pbi5taWtyb3RlYW1zID0gbWlrcm90ZWFtc0F1c1RhYmVsbGVMZXNlbigp -OwogICAgICAgICAgICBaLmFkbWluLm1pa3JvdGVhbXMucHVzaCh7IGlkOiAndF9ORVVfJyArIERh -dGUubm93KCkudG9TdHJpbmcoMzYpLCBuYW1lOiAnJywgc3RhbmRvcnQ6ICcnLCBncnVwcGU6ICcn -LCBwZXJzb25JZHM6IFtdIH0pOwogICAgICAgICAgICBtaWtyb3RlYW1zUmVuZGVybigpOwogICAg -ICAgIH0pOwogICAgICAgIHZhciBidG5NdFNwZWljaGVybiA9IGRvY3VtZW50LmdldEVsZW1lbnRC -eUlkKCdidG4tbWlrcm90ZWFtcy1zcGVpY2hlcm4nKTsKICAgICAgICBpZiAoYnRuTXRTcGVpY2hl -cm4pIGJ0bk10U3BlaWNoZXJuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKSB7 -CiAgICAgICAgICAgIHZhciBsaXN0ZSA9IG1pa3JvdGVhbXNBdXNUYWJlbGxlTGVzZW4oKTsKICAg -ICAgICAgICAgWi5hZG1pbi5taWtyb3RlYW1zID0gbGlzdGU7CiAgICAgICAgICAgIGFwaVB1dCgn -L2FwaS9hZG1pbicsIFouYWRtaW4pLnRoZW4oZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICBt -aWtyb3RlYW1zUmVuZGVybigpOwogICAgICAgICAgICAgICAgdG9hc3QobGlzdGUubGVuZ3RoICsg -JyBNaWtyb3RlYW1zIGdlc3BlaWNoZXJ0JywgJ2VyZm9sZycpOwogICAgICAgICAgICB9KS5jYXRj -aChmdW5jdGlvbihlKSB7IHRvYXN0KCdGZWhsZXI6ICcgKyBlLm1lc3NhZ2UsICdmZWhsZXInKTsg -fSk7CiAgICAgICAgfSk7CgogICAgICAgIC8vIFRhYmVsbGVuLUV2ZW50LURlbGVnYXRpb246IFVw -L0Rvd24vTG9lc2NoZW4vUGVyc29uZW4tTW9kYWwKICAgICAgICB2YXIgbXRUYWIgPSBkb2N1bWVu -dC5nZXRFbGVtZW50QnlJZCgnYWRtaW4tdGFiLW1pa3JvdGVhbXMnKTsKICAgICAgICBpZiAobXRU -YWIpIG10VGFiLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oZSkgewogICAgICAg -ICAgICB2YXIgYnRuID0gZS50YXJnZXQuY2xvc2VzdCgnYnV0dG9uW2RhdGEtYWt0aW9uXScpOwog -ICAgICAgICAgICBpZiAoIWJ0bikgcmV0dXJuOwogICAgICAgICAgICB2YXIgYWt0aW9uID0gYnRu -LmdldEF0dHJpYnV0ZSgnZGF0YS1ha3Rpb24nKTsKICAgICAgICAgICAgdmFyIGlkeCAgICA9IHBh -cnNlSW50KGJ0bi5nZXRBdHRyaWJ1dGUoJ2RhdGEtaWR4JyksIDEwKTsKICAgICAgICAgICAgaWYg -KGlzTmFOKGlkeCkpIHJldHVybjsKICAgICAgICAgICAgaWYgKGFrdGlvbiA9PT0gJ210LXBlcnNv -bmVuJykgewogICAgICAgICAgICAgICAgbWlrcm90ZWFtUGVyc29uZW5EaWFsb2coaWR4KTsKICAg -ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICAvLyBTdHJ1a3R1 -cmFlbmRlcnVuZ2VuIOKAlCB2b3JoZXIgZGllIElucHV0cyBlaW5zYW1tZWxuLgogICAgICAgICAg -ICBaLmFkbWluLm1pa3JvdGVhbXMgPSBtaWtyb3RlYW1zQXVzVGFiZWxsZUxlc2VuKCk7CiAgICAg -ICAgICAgIHZhciBsID0gWi5hZG1pbi5taWtyb3RlYW1zOwogICAgICAgICAgICBpZiAoYWt0aW9u -ID09PSAnbXQtdXAnICYmIGlkeCA+IDApIHsKICAgICAgICAgICAgICAgIHZhciB0ID0gbFtpZHgt -MV07IGxbaWR4LTFdID0gbFtpZHhdOyBsW2lkeF0gPSB0OwogICAgICAgICAgICB9IGVsc2UgaWYg -KGFrdGlvbiA9PT0gJ210LWRvd24nICYmIGlkeCA8IGwubGVuZ3RoIC0gMSkgewogICAgICAgICAg -ICAgICAgdmFyIHQyID0gbFtpZHgrMV07IGxbaWR4KzFdID0gbFtpZHhdOyBsW2lkeF0gPSB0MjsK -ICAgICAgICAgICAgfSBlbHNlIGlmIChha3Rpb24gPT09ICdtdC1sb2VzY2hlbicpIHsKICAgICAg -ICAgICAgICAgIGwuc3BsaWNlKGlkeCwgMSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbWlr -cm90ZWFtc1JlbmRlcm4oKTsKICAgICAgICB9KTsKCiAgICAgICAgLy8gRS1NYWlsLVZvcmxhZ2Vu -IOKAlCBLYXJ0ZW4tTGF5b3V0IChGaW5kaW5nIEMuNyAvIFNwZWMgRi4xKQogICAgICAgIC8vIEts -aWNrIGF1ZiBlaW5lIEthcnRlIG9lZmZuZXQgZW1haWxWb3JsYWdlQmVhcmJlaXRlbk1vZGFsKCk7 -IFNhdmUKICAgICAgICAvLyBlcmZvbGd0IGF1cyBkZW0gTW9kYWwgaGVyYXVzLiBEZXIgZnJ1ZWhl -ciB6ZW50cmFsZSAiVm9ybGFnZW4KICAgICAgICAvLyBzcGVpY2hlcm4iLUJ1dHRvbiBpc3Qgd2Vn -LCB3ZWlsIFNhdmUgamV0enQgcHJvIFZvcmxhZ2Ugc3RhdHRmaW5kZXQuCiAgICAgICAgdmFyIGVt -YWlsS2FydGVuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VtYWlsdm9ybGFnZW4taW5oYWx0 -Jyk7CiAgICAgICAgaWYgKGVtYWlsS2FydGVuKSBlbWFpbEthcnRlbi5hZGRFdmVudExpc3RlbmVy -KCdjbGljaycsIGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgLy8gSGlkZSAvIFNob3cgdG9nZ2xl -OiBWb3JsYWdlIGF1cyBkZXIgUHJpbWFlcmFuc2ljaHQgYXVzYmxlbmRlbgogICAgICAgICAgICAv -LyBiencuIHdpZWRlciBlaW5ibGVuZGVuLiBQZXJzaXN0aWVydW5nIGFscwogICAgICAgICAgICAv -LyBhZG1pbi5lbWFpbFZvcmxhZ2VuW2tleV0udmVyc3RlY2t0ID0gYm9vbCwgZ2VzcGVpY2hlcnQg -dWViZXIKICAgICAgICAgICAgLy8gL2FwaS9hZG1pbi4gRGllIEhpZGUtS2xpY2tzIGJyYXVjaGVu -IHN0b3BQcm9wYWdhdGlvbiwgc29uc3QKICAgICAgICAgICAgLy8gd3VlcmRlIGRlciBLYXJ0ZW4t -Q2xpY2stSGFuZGxlciBkYXJ1bnRlciBkYXMgQmVhcmJlaXRlbi1Nb2RhbAogICAgICAgICAgICAv -LyBvZWZmbmVuLgogICAgICAgICAgICB2YXIgaGlkZUJ0biA9IGUudGFyZ2V0LmNsb3Nlc3QoJ1tk -YXRhLWFrdGlvbj0iZXYtaGlkZSJdLCBbZGF0YS1ha3Rpb249ImV2LXNob3ciXScpOwogICAgICAg -ICAgICBpZiAoaGlkZUJ0bikgewogICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTsK -ICAgICAgICAgICAgICAgIHZhciBrZXkgPSBoaWRlQnRuLmdldEF0dHJpYnV0ZSgnZGF0YS12b3Js -YWdlJyk7CiAgICAgICAgICAgICAgICB2YXIgdmVyc3RlY2t0ID0gaGlkZUJ0bi5nZXRBdHRyaWJ1 -dGUoJ2RhdGEtYWt0aW9uJykgPT09ICdldi1oaWRlJzsKICAgICAgICAgICAgICAgIGlmICghWi5h -ZG1pbi5lbWFpbFZvcmxhZ2VuKSBaLmFkbWluLmVtYWlsVm9ybGFnZW4gPSB7fTsKICAgICAgICAg -ICAgICAgIGlmICghWi5hZG1pbi5lbWFpbFZvcmxhZ2VuW2tleV0pIFouYWRtaW4uZW1haWxWb3Js -YWdlbltrZXldID0ge307CiAgICAgICAgICAgICAgICBaLmFkbWluLmVtYWlsVm9ybGFnZW5ba2V5 -XS52ZXJzdGVja3QgPSB2ZXJzdGVja3Q7CiAgICAgICAgICAgICAgICBhcGlQdXQoJy9hcGkvYWRt -aW4nLCBaLmFkbWluKS50aGVuKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgIGVtYWls -Vm9ybGFnZW5SZW5kZXJuKCk7CiAgICAgICAgICAgICAgICAgICAgdG9hc3QodmVyc3RlY2t0ID8g -J1ZvcmxhZ2UgYXVzZ2VibGVuZGV0JyA6ICdWb3JsYWdlIGVpbmdlYmxlbmRldCcsICdlcmZvbGcn -KTsKICAgICAgICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGVycikgeyB0b2FzdCgnRmVobGVy -OiAnICsgZXJyLm1lc3NhZ2UsICdmZWhsZXInKTsgfSk7CiAgICAgICAgICAgICAgICByZXR1cm47 -CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIGthcnRlID0gZS50YXJnZXQuY2xvc2VzdCgn -LmVtYWlsdm9ybGFnZS1rYXJ0ZScpOwogICAgICAgICAgICBpZiAoa2FydGUpIGVtYWlsVm9ybGFn -ZUJlYXJiZWl0ZW5Nb2RhbChrYXJ0ZS5nZXRBdHRyaWJ1dGUoJ2RhdGEtdm9ybGFnZScpKTsKICAg -ICAgICB9KTsKICAgICAgICAvLyBUYXN0YXR1ci1Ba3RpdmllcnVuZyBkZXIgS2FydGVuIChyb2xl -PWJ1dHRvbiwga2VpbiBuYXRpdmVzIDxidXR0b24+CiAgICAgICAgLy8gbWVociDigJQgRW50ZXIv -U3BhY2UgbXVlc3NlbiB3aXIgc2VsYnN0IGJlaGFuZGVsbikuCiAgICAgICAgaWYgKGVtYWlsS2Fy -dGVuKSBlbWFpbEthcnRlbi5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgZnVuY3Rpb24oZSkg -ewogICAgICAgICAgICBpZiAoZS5rZXkgIT09ICdFbnRlcicgJiYgZS5rZXkgIT09ICcgJyAmJiBl -LmtleSAhPT0gJ1NwYWNlYmFyJykgcmV0dXJuOwogICAgICAgICAgICB2YXIga2FydGUgPSBlLnRh -cmdldC5jbG9zZXN0KCcuZW1haWx2b3JsYWdlLWthcnRlJyk7CiAgICAgICAgICAgIGlmICgha2Fy -dGUgfHwgZS50YXJnZXQuY2xvc2VzdCgnLmV2ay1oaWRlLWJ0bicpKSByZXR1cm47CiAgICAgICAg -ICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgICAgICAgZW1haWxWb3JsYWdlQmVhcmJlaXRl -bk1vZGFsKGthcnRlLmdldEF0dHJpYnV0ZSgnZGF0YS12b3JsYWdlJykpOwogICAgICAgIH0pOwoK -ICAgICAgICAvLyBFaW5zdGVsbHVuZ2VuIOKAlCBKYWhyICsgSW5ha3Rpdml0YWV0ICsgUGFwaWVy -a29yYi1BdWZiZXdhaHJ1bmcgKyBFLU1haWwtCiAgICAgICAgLy8gRG9tYWluIChJbmZvdGV4dGUg -c2luZCBpbSBUYWIgIkluZm9ybWF0aW9uICYgSGlsZmUiKS4KICAgICAgICAvLyBLb25maWd1cmF0 -aW9uOiBlaW56ZWxuZSwgYXRvbWFyZSArIHZhbGlkaWVydGUgRmVsZGVyLiBEZXIgRW5kcG9pbnQK -ICAgICAgICAvLyAvYXBpL2FkbWluL2VpbnN0ZWxsdW5nZW4gaXN0IFBhcnRpYWwtTWVyZ2UtZsOk -aGlnIChrZWluIFZvbGwtT3ZlcndyaXRlKSwKICAgICAgICAvLyBkYWhlciBpc3QgZmVsZHdlaXNl -cyBBVVRPLVNQRUlDSEVSTiBoaWVyIHNpY2hlcjogamVkZSDDhG5kZXJ1bmcgd2lyZAogICAgICAg -IC8vIG5hY2gga3VyemVyIFRpcHAtUGF1c2UgYXV0b21hdGlzY2ggcGVyc2lzdGllcnQuIERlciDi -gJ5TcGVpY2hlcm4iLUJ1dHRvbgogICAgICAgIC8vIGJsZWlidCBhbHMgZXhwbGl6aXRlciBGYWxs -YmFjayBlcmhhbHRlbi4KICAgICAgICBmdW5jdGlvbiBlaW5zdGVsbHVuZ2VuTGVzZW4oKSB7CiAg -ICAgICAgICAgIHZhciBwYXBpZXJrb3JiRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWlu -cy1wYXBpZXJrb3JiLXRhZ2UnKTsKICAgICAgICAgICAgdmFyIGVtYWlsRG9tYWluRWwgPSBkb2N1 -bWVudC5nZXRFbGVtZW50QnlJZCgnZWlucy1lbWFpbC1kb21haW4nKTsKICAgICAgICAgICAgdmFy -IGF2YXRhckdyb2Vzc2VFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlaW5zLWF2YXRhci1n -cm9lc3NlJyk7CiAgICAgICAgICAgIC8vIEF2YXRhci1Hcm9lc3NlIHp3aXNjaGVuIDEwMCB1bmQg -NjAwIGNsYW1wZW4sIGRhbWl0IGJlbGllYmlnIGdyb3NzZQogICAgICAgICAgICAvLyBCaWxkZXIg -ZGVuIERhdGFEaXIgbmljaHQgdWViZXJyYXNjaGVuZCBtaXQgTUItRmlsZXMgZnVlbGxlbi4KICAg -ICAgICAgICAgdmFyIGF2YXRhckdyID0gYXZhdGFyR3JvZXNzZUVsID8gcGFyc2VJbnQoYXZhdGFy -R3JvZXNzZUVsLnZhbHVlLCAxMCkgOiAyMDA7CiAgICAgICAgICAgIGlmIChpc05hTihhdmF0YXJH -cikgfHwgYXZhdGFyR3IgPCAxMDApIGF2YXRhckdyID0gMTAwOwogICAgICAgICAgICBlbHNlIGlm -IChhdmF0YXJHciA+IDYwMCkgYXZhdGFyR3IgPSA2MDA7CiAgICAgICAgICAgIHZhciBlZGl0b3JU -cmlnZ2VyRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWlucy1lZGl0b3ItdHJpZ2dlcicp -OwogICAgICAgICAgICB2YXIgZWRpdG9yVHJpZ2dlcldlcnQgPSBlZGl0b3JUcmlnZ2VyRWwgPyBl -ZGl0b3JUcmlnZ2VyRWwudmFsdWUgOiAncmVjaHRzJzsKICAgICAgICAgICAgaWYgKFsncmVjaHRz -JywgJ2xpbmtzJywgJ21pdHRlJywgJ2RvcHBlbCddLmluZGV4T2YoZWRpdG9yVHJpZ2dlcldlcnQp -IDwgMCkgZWRpdG9yVHJpZ2dlcldlcnQgPSAncmVjaHRzJzsKICAgICAgICAgICAgLy8gSGlud2Vp -czogYGphaHJgIGlzdCBoaWVyIEJFV1VTU1QgbmljaHQgZW50aGFsdGVuLiBEYXMgUGxhbnVuZ3Nq -YWhyCiAgICAgICAgICAgIC8vIHdpcmQgYXVzc2NobGllc3NsaWNoIHVlYmVyIGRlbiBkZWRpemll -cnRlbiDigJ5KYWhyIHdlY2hzZWxuIi1CdXR0b24KICAgICAgICAgICAgLy8gZ2VhZW5kZXJ0ICht -aXQgQmVzdGFldGlndW5nICsgUmVsb2FkKSwgZGFtaXQgU3RhdHVzIHVuZCBBbnNpY2h0CiAgICAg -ICAgICAgIC8vIG5pZSBhdXNlaW5hbmRlcmxhdWZlbi4gRGFzIGVpbnMtamFoci1GZWxkIGlzdCBu -dXIgZGllIFppZWxhdXN3YWhsLgogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAg -cGFwaWVya29yYlRhZ2VBdWZiZXdhaHJ1bmc6IHBhcGllcmtvcmJFbCA/IChwYXJzZUludChwYXBp -ZXJrb3JiRWwudmFsdWUsIDEwKSB8fCAwKSA6IDMwLAogICAgICAgICAgICAgICAgZW1haWxBdXRv -RG9tYWluOiBlbWFpbERvbWFpbkVsID8gZW1haWxEb21haW5FbC52YWx1ZSA6ICdAcG9saXplaS5u -cncuZGUnLAogICAgICAgICAgICAgICAgYXZhdGFyR3JvZXNzZTogYXZhdGFyR3IsCiAgICAgICAg -ICAgICAgICBlZGl0b3JUcmlnZ2VyOiBlZGl0b3JUcmlnZ2VyV2VydAogICAgICAgICAgICB9Owog -ICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBlaW5zdGVsbHVuZ2VuU3BlaWNoZXJuKGF1dG8pIHsK -ICAgICAgICAgICAgdmFyIGRhdGVuID0gZWluc3RlbGx1bmdlbkxlc2VuKCk7CiAgICAgICAgICAg -IHJldHVybiBhcGlQdXQoJy9hcGkvYWRtaW4vZWluc3RlbGx1bmdlbicsIGRhdGVuKS50aGVuKGZ1 -bmN0aW9uKCkgewogICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihaLmFkbWluLCBkYXRlbik7 -CiAgICAgICAgICAgICAgICBkaXJ0eVNldHplbignZWluc3RlbGx1bmdlbicsIGZhbHNlKTsKICAg -ICAgICAgICAgICAgIHRvYXN0KGF1dG8gPyAnR2VzcGVpY2hlcnQnIDogJ0VpbnN0ZWxsdW5nZW4g -Z2VzcGVpY2hlcnQnLCAnZXJmb2xnJyk7CiAgICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGUp -IHsgdG9hc3QoJ0ZlaGxlcjogJyArIGUubWVzc2FnZSwgJ2ZlaGxlcicpOyB9KTsKICAgICAgICB9 -CiAgICAgICAgdmFyIGJ0bkVpbnNTcGVpY2hlcm4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn -YnRuLWVpbnN0ZWxsdW5nZW4tc3BlaWNoZXJuJyk7CiAgICAgICAgaWYgKGJ0bkVpbnNTcGVpY2hl -cm4pIGJ0bkVpbnNTcGVpY2hlcm4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigp -IHsgZWluc3RlbGx1bmdlblNwZWljaGVybihmYWxzZSk7IH0pOwogICAgICAgIC8vIEF1dG8tU2F2 -ZTogw4RuZGVydW5nIGFuIGVpbmVtIEtvbmZpZy1GZWxkIOKGkiBuYWNoIDcwMCBtcyBUaXBwLVBh -dXNlCiAgICAgICAgLy8gYXV0b21hdGlzY2ggc3BlaWNoZXJuIChkZWJvdW5jZWQsIGVpbiBUb2Fz -dCBwcm8gUnVoZXBoYXNlKS4KICAgICAgICB2YXIgX2VpbnNBdXRvVGltZXIgPSBudWxsOwogICAg -ICAgIFsnZWlucy1wYXBpZXJrb3JiLXRhZ2UnLCAnZWlucy1lbWFpbC1kb21haW4nLCAnZWlucy1h -dmF0YXItZ3JvZXNzZScsICdlaW5zLWVkaXRvci10cmlnZ2VyJ10uZm9yRWFjaChmdW5jdGlvbihp -ZCkgewogICAgICAgICAgICB2YXIgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7CiAg -ICAgICAgICAgIGlmICghZWwpIHJldHVybjsKICAgICAgICAgICAgZWwuYWRkRXZlbnRMaXN0ZW5l -cignY2hhbmdlJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICBpZiAoX2VpbnNBdXRvVGlt -ZXIpIGNsZWFyVGltZW91dChfZWluc0F1dG9UaW1lcik7CiAgICAgICAgICAgICAgICBfZWluc0F1 -dG9UaW1lciA9IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IGVpbnN0ZWxsdW5nZW5TcGVpY2hlcm4o -dHJ1ZSk7IH0sIDcwMCk7CiAgICAgICAgICAgIH0pOwogICAgICAgIH0pOwoKICAgICAgICAvLyBJ -bmZvcm1hdGlvbiAmIEhpbGZlIOKAlCBSaWNoLVRleHQtRWRpdG9yZW4gKyBTY2hsaWXDn2luZm8K -ICAgICAgICB2YXIgYnRuSWhTcGVpY2hlcm4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnRu -LWluZm9oaWxmZS1zcGVpY2hlcm4nKTsKICAgICAgICBpZiAoYnRuSWhTcGVpY2hlcm4pIGJ0bklo -U3BlaWNoZXJuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKSB7CiAgICAgICAg -ICAgIHZhciBkYXRlbiA9IGluZm9IaWxmZUF1c0ZlbGRlcm5MZXNlbigpOwogICAgICAgICAgICBh -cGlQdXQoJy9hcGkvYWRtaW4vZWluc3RlbGx1bmdlbicsIGRhdGVuKS50aGVuKGZ1bmN0aW9uKCkg -ewogICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihaLmFkbWluLCBkYXRlbik7CiAgICAgICAg -ICAgICAgICBkaXJ0eVNldHplbignaW5mb2hpbGZlJywgZmFsc2UpOwogICAgICAgICAgICAgICAg -dG9hc3QoJ0luZm9ybWF0aW9uICYgSGlsZmUgZ2VzcGVpY2hlcnQnLCAnZXJmb2xnJyk7CiAgICAg +aGxlcicpOyB9KTsKICAgICAgICB9KTsKICAgICAgICB2YXIgYnRuQmV6UmVzZXQgPSBkb2N1bWVu +dC5nZXRFbGVtZW50QnlJZCgnYnRuLWJlemVpY2hudW5nZW4tcmVzZXQnKTsKICAgICAgICBpZiAo +YnRuQmV6UmVzZXQpIGJ0bkJlelJlc2V0LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rp +b24oKSB7CiAgICAgICAgICAgIGJlc3RhZXRpZ2VuKCdBbGxlIGVpZ2VuZW4gQmV6ZWljaG51bmdl +biBsw7ZzY2hlbiB1bmQgYXVmIERlZmF1bHRzIHp1csO8Y2tzZXR6ZW4/JywgZnVuY3Rpb24oKSB7 +CiAgICAgICAgICAgICAgICBhcGlQdXQoJy9hcGkvYWRtaW4vYmV6ZWljaG51bmdlbicsIHt9KS50 +aGVuKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgIFouYWRtaW4uYmV6ZWljaG51bmdl +biA9IHt9OwogICAgICAgICAgICAgICAgICAgIGJlemVpY2hudW5nZW5SZW5kZXJuKCk7CiAgICAg +ICAgICAgICAgICAgICAgYmV6ZWljaG51bmdlbkFud2VuZGVuKCk7CiAgICAgICAgICAgICAgICAg +ICAgdG9hc3QoJ0JlemVpY2hudW5nZW4genVyw7xja2dlc2V0enQnLCAnZXJmb2xnJyk7CiAgICAg +ICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlKSB7IHRvYXN0KCdGZWhsZXI6ICcgKyBlLm1l +c3NhZ2UsICdmZWhsZXInKTsgfSk7CiAgICAgICAgICAgIH0sIHsgdGl0ZWw6ICdCZXplaWNobnVu +Z2VuIHp1csO8Y2tzZXR6ZW4nLCBqYVRleHQ6ICdadXLDvGNrc2V0emVuJywgamFEYW5nZXI6IHRy +dWUgfSk7CiAgICAgICAgfSk7CgogICAgICAgIC8vIEJlemVpY2hudW5nZW4gJiBMaXN0ZW4g4oCU +IERpZW5zdGdyYWRlICsgRnVua3Rpb25lbiBlZGl0aWVyYmFyCiAgICAgICAgLy8gKFBoYXNlIDEg +LyAyMDI2LTA1LTE5KS4gQmVpZGUgTGlzdGVuIHdlcmRlbiBhbHMgVGVpbCB2b24KICAgICAgICAv +LyBaLmFkbWluIHZpYSAvYXBpL2FkbWluIGdlc3BlaWNoZXJ0IChrZWluIGVpZ2VuZXIgRW5kcG9p +bnQsIHdlaWwKICAgICAgICAvLyBiZWlkZXMgcmVpbmUgQXJyYXktRmVsZGVyIHNpbmQgdW5kIGRl +ciBMZXNlLVBmYWQgb2huZWhpbiBhbGxlcwogICAgICAgIC8vIGF1ZiBlaW5tYWwgaG9sdCkuCiAg +ICAgICAgdmFyIGJ0bkRncmROZXUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnRuLWRpZW5z +dGdyYWQtbmV1Jyk7CiAgICAgICAgaWYgKGJ0bkRncmROZXUpIGJ0bkRncmROZXUuYWRkRXZlbnRM +aXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgaWYgKCFaLmFkbWluLmRp +ZW5zdGdyYWRlKSBaLmFkbWluLmRpZW5zdGdyYWRlID0gW107CiAgICAgICAgICAgIFouYWRtaW4u +ZGllbnN0Z3JhZGUucHVzaCgnJyk7CiAgICAgICAgICAgIGxpc3RlbkRpZW5zdGdyYWRlUmVuZGVy +bigpOwogICAgICAgICAgICAvLyBGb2t1cyBhdWZzIG5ldWUgSW5wdXRmZWxkCiAgICAgICAgICAg +IHZhciBpbnB1dHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuZGdyYWQtaW5wdXQnKTsK +ICAgICAgICAgICAgaWYgKGlucHV0cy5sZW5ndGgpIGlucHV0c1tpbnB1dHMubGVuZ3RoIC0gMV0u +Zm9jdXMoKTsKICAgICAgICB9KTsKICAgICAgICB2YXIgYnRuRGdyZFNwZWljaGVybiA9IGRvY3Vt +ZW50LmdldEVsZW1lbnRCeUlkKCdidG4tZGllbnN0Z3JhZGUtc3BlaWNoZXJuJyk7CiAgICAgICAg +aWYgKGJ0bkRncmRTcGVpY2hlcm4pIGJ0bkRncmRTcGVpY2hlcm4uYWRkRXZlbnRMaXN0ZW5lcign +Y2xpY2snLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgdmFyIGxpc3RlID0gZGllbnN0Z3JhZGVB +dXNUYWJlbGxlTGVzZW4oKTsKICAgICAgICAgICAgWi5hZG1pbi5kaWVuc3RncmFkZSA9IGxpc3Rl +OwogICAgICAgICAgICBhcGlQdXQoJy9hcGkvYWRtaW4nLCBaLmFkbWluKS50aGVuKGZ1bmN0aW9u +KCkgewogICAgICAgICAgICAgICAgbGlzdGVuRGllbnN0Z3JhZGVSZW5kZXJuKCk7CiAgICAgICAg +ICAgICAgICB0b2FzdCgnRGllbnN0Z3JhZGUgZ2VzcGVpY2hlcnQnLCAnZXJmb2xnJyk7CiAgICAg ICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGUpIHsgdG9hc3QoJ0ZlaGxlcjogJyArIGUubWVzc2Fn -ZSwgJ2ZlaGxlcicpOyB9KTsKICAgICAgICB9KTsKCiAgICAgICAgLy8gU3VwcG9ydC1NYWlsLVZv -cmxhZ2UgKG51ciBQaGlsaXBwIFJvZXNnZW4pLiBTYXZlIC8gRGVmYXVsdCAvIFZvcnNjaGF1Lgog -ICAgICAgIHZhciBzbVRleHRhcmVhID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N1cHBvcnRt -YWlsLXRleHQnKTsKICAgICAgICB2YXIgc21EaXJ0eSAgICA9IGRvY3VtZW50LmdldEVsZW1lbnRC -eUlkKCdzdXBwb3J0bWFpbC1kaXJ0eS1oaW53ZWlzJyk7CiAgICAgICAgaWYgKHNtVGV4dGFyZWEg -JiYgc21EaXJ0eSkgewogICAgICAgICAgICBzbVRleHRhcmVhLmFkZEV2ZW50TGlzdGVuZXIoJ2lu -cHV0JywgZnVuY3Rpb24oKSB7IHNtRGlydHkuc3R5bGUuZGlzcGxheSA9ICcnOyB9KTsKICAgICAg -ICB9CiAgICAgICAgdmFyIGJ0blNtU3BlaWNoZXJuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo -J2J0bi1zdXBwb3J0bWFpbC1zcGVpY2hlcm4nKTsKICAgICAgICBpZiAoYnRuU21TcGVpY2hlcm4p -IGJ0blNtU3BlaWNoZXJuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKSB7CiAg -ICAgICAgICAgIHZhciB0YSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdXBwb3J0bWFpbC10 -ZXh0Jyk7CiAgICAgICAgICAgIGlmICghdGEpIHJldHVybjsKICAgICAgICAgICAgdmFyIGRhdGVu -ID0geyBzdXBwb3J0TWFpbFRleHQ6IHRhLnZhbHVlIH07CiAgICAgICAgICAgIGFwaVB1dCgnL2Fw -aS9hZG1pbi9laW5zdGVsbHVuZ2VuJywgZGF0ZW4pLnRoZW4oZnVuY3Rpb24oKSB7CiAgICAgICAg -ICAgICAgICBaLmFkbWluLnN1cHBvcnRNYWlsVGV4dCA9IGRhdGVuLnN1cHBvcnRNYWlsVGV4dDsK -ICAgICAgICAgICAgICAgIGlmIChzbURpcnR5KSBzbURpcnR5LnN0eWxlLmRpc3BsYXkgPSAnbm9u -ZSc7CiAgICAgICAgICAgICAgICB0b2FzdCgnU3VwcG9ydC1NYWlsLVZvcmxhZ2UgZ2VzcGVpY2hl -cnQnLCAnZXJmb2xnJyk7CiAgICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGUpIHsgdG9hc3Qo -J0ZlaGxlcjogJyArIGUubWVzc2FnZSwgJ2ZlaGxlcicpOyB9KTsKICAgICAgICB9KTsKICAgICAg -ICB2YXIgYnRuU21EZWZhdWx0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2J0bi1zdXBwb3J0 -bWFpbC1kZWZhdWx0Jyk7CiAgICAgICAgaWYgKGJ0blNtRGVmYXVsdCkgYnRuU21EZWZhdWx0LmFk -ZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGJlc3RhZXRp -Z2VuKCdWb3JsYWdlIGtvbXBsZXR0IGF1ZiBkZW4gZWluZ2ViYXV0ZW4gRGVmYXVsdCB6dXLDvGNr -c2V0emVuP1xuXG5EZWluZSBha3R1ZWxsZW4gw4RuZGVydW5nZW4gZ2VoZW4gdmVybG9yZW4uJywg -ZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICBhcGlQdXQoJy9hcGkvYWRtaW4vZWluc3RlbGx1 -bmdlbicsIHsgc3VwcG9ydE1haWxUZXh0OiAnJyB9KS50aGVuKGZ1bmN0aW9uKCkgewogICAgICAg -ICAgICAgICAgICAgIFouYWRtaW4uc3VwcG9ydE1haWxUZXh0ID0gJyc7CiAgICAgICAgICAgICAg -ICAgICAgdmFyIHRhID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N1cHBvcnRtYWlsLXRleHQn -KTsKICAgICAgICAgICAgICAgICAgICBpZiAodGEpIHRhLnZhbHVlID0gJyc7CiAgICAgICAgICAg -ICAgICAgICAgaWYgKHNtRGlydHkpIHNtRGlydHkuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICAg -ICAgICAgICAgICAgICAgICB0b2FzdCgnQXVmIERlZmF1bHQgenVyw7xja2dlc2V0enQnLCAnZXJm -b2xnJyk7CiAgICAgICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlKSB7IHRvYXN0KCdGZWhs -ZXI6ICcgKyBlLm1lc3NhZ2UsICdmZWhsZXInKTsgfSk7CiAgICAgICAgICAgIH0sIHsgdGl0ZWw6 -ICdEZWZhdWx0LVZvcmxhZ2Ugd2llZGVyaGVyc3RlbGxlbicsIGphVGV4dDogJ1p1csO8Y2tzZXR6 -ZW4nLCBqYURhbmdlcjogdHJ1ZSB9KTsKICAgICAgICB9KTsKICAgICAgICB2YXIgYnRuU21Wb3Jz -Y2hhdSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdidG4tc3VwcG9ydG1haWwtdm9yc2NoYXUn -KTsKICAgICAgICBpZiAoYnRuU21Wb3JzY2hhdSkgYnRuU21Wb3JzY2hhdS5hZGRFdmVudExpc3Rl -bmVyKCdjbGljaycsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAvLyBBa3R1ZWxsZSBFaW5nYWJl -IHRlbXBvcmFlciBhbHMgVm9ybGFnZSBiZW51dHplbiDigJQgYXVjaCB3ZW5uCiAgICAgICAgICAg -IC8vIG5vY2ggbmljaHQgZ2VzcGVpY2hlcnQ7IHNwYXJ0IGRhcyAiZXJzdCBzcGVpY2hlcm4sIGRh -bm4KICAgICAgICAgICAgLy8gdGVzdGVuIi1IaW4tdW5kLUhlci4KICAgICAgICAgICAgdmFyIHRh -ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N1cHBvcnRtYWlsLXRleHQnKTsKICAgICAgICAg -ICAgdmFyIGFsdCA9IFouYWRtaW4uc3VwcG9ydE1haWxUZXh0OwogICAgICAgICAgICBpZiAodGEg -JiYgdGEudmFsdWUudHJpbSgpKSBaLmFkbWluLnN1cHBvcnRNYWlsVGV4dCA9IHRhLnZhbHVlOwog -ICAgICAgICAgICB2YXIgbWFpbHRvID0gJ21haWx0bzpwaGlsaXBwLnJvZXNnZW5AcG9saXplaS5u -cncuZGUnCiAgICAgICAgICAgICAgICArICc/c3ViamVjdD0nICsgZW5jb2RlVVJJQ29tcG9uZW50 -KCdWSTMgREdMIFBsYW51bmcgLSBEb3J0bXVuZCcpCiAgICAgICAgICAgICAgICArICcmYm9keT0n -ICsgZW5jb2RlVVJJQ29tcG9uZW50KHN1cHBvcnRNYWlsQm9keUJhdWVuKCkpOwogICAgICAgICAg -ICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IG1haWx0bzsKICAgICAgICAgICAgLy8gU3RhdGUgenVy -dWVja3JvbGxlbiwgZGFtaXQgVm9yc2NoYXUgbmljaHQgdmVyc2VoZW50bGljaCBwZXJzaXN0aWVy -dAogICAgICAgICAgICBaLmFkbWluLnN1cHBvcnRNYWlsVGV4dCA9IGFsdDsKICAgICAgICB9KTsK -CiAgICAgICAgLy8gSmFociB3ZWNoc2VsbjogUGxhbnVuZ3NqYWhyIGF1ZiBkYXMgaW0gRmVsZCBH -RVfDhEhMVEUgSmFociBzZXR6ZW4g4oCUIHZvcgogICAgICAgIC8vIE9ERVIgenVyw7xjay4gRGF0 -ZW4gbmV1IGxhZGVuLCBhbGxlIFZpZXdzIHJlbmRlcm4uIEVpbnRyYWVnZSBibGVpYmVuCiAgICAg -ICAgLy8gdW50ZXIgaWhyZW4gYWJzb2x1dGVuIERhdHVtc3NjaGx1ZXNzZWxuIGVyaGFsdGVuIChr -ZWluIERhdGVudmVybHVzdCk7CiAgICAgICAgLy8gZGVyIEJ1ZmZlci1KYW51YXIgZGVzIEZvbGdl -amFocmVzIHdpcmQgaW4gZGVyIG5ldWVuIEFuc2ljaHQgc2ljaHRiYXIuCiAgICAgICAgLy8gKEZy -dWVoZXI6IGhhcnRlcyBhbHQrMSDigJQgaWdub3JpZXJ0ZSBkaWUgQXVzd2FobCB1bmQgc3ByYW5n -IHouQi4gdm9uCiAgICAgICAgLy8gIDIwMjcgdHJvdHogRWluZ2FiZSAyMDI2IGF1ZiAyMDI4LiBK -ZXR6dCB6aWVsZ2VuYXUuKQogICAgICAgIHZhciBidG5KYWhyZXN3ZWNoc2VsID0gZG9jdW1lbnQu -Z2V0RWxlbWVudEJ5SWQoJ2J0bi1qYWhyZXN3ZWNoc2VsJyk7CiAgICAgICAgaWYgKGJ0bkphaHJl -c3dlY2hzZWwpIGJ0bkphaHJlc3dlY2hzZWwuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5j -dGlvbigpIHsKICAgICAgICAgICAgdmFyIGFsdCA9IFouYWRtaW4uamFociB8fCBuZXcgRGF0ZSgp -LmdldEZ1bGxZZWFyKCk7CiAgICAgICAgICAgIHZhciBmZWxkID0gZG9jdW1lbnQuZ2V0RWxlbWVu -dEJ5SWQoJ2VpbnMtamFocicpOwogICAgICAgICAgICB2YXIgbmV1ID0gcGFyc2VJbnQoZmVsZCA/ -IGZlbGQudmFsdWUgOiAnJywgMTApOwogICAgICAgICAgICBpZiAoIW5ldSB8fCBuZXUgPCAyMDIw -IHx8IG5ldSA+IDIwOTkpIHsKICAgICAgICAgICAgICAgIHRvYXN0KCdCaXR0ZSBlaW4gZ8O8bHRp -Z2VzIEphaHIgendpc2NoZW4gMjAyMCB1bmQgMjA5OSB3w6RobGVuJywgJ3dhcm51bmcnKTsKICAg -ICAgICAgICAgICAgIGlmIChmZWxkKSBmZWxkLnZhbHVlID0gYWx0OwogICAgICAgICAgICAgICAg -cmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChuZXUgPT09IGFsdCkgewogICAg -ICAgICAgICAgICAgdG9hc3QoJ0RhcyBQbGFudW5nc2phaHIgaXN0IGJlcmVpdHMgJyArIGFsdCAr -ICcuJywgJ2luZm8nKTsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAg -ICAgICAgICB2YXIgcmljaHR1bmcgPSBuZXUgPiBhbHQgPyAndm9yJyA6ICd6dXLDvGNrJzsKICAg -ICAgICAgICAgYmVzdGFldGlnZW4oJ1BsYW51bmdzamFociB2b24gJyArIGFsdCArICcgYXVmICcg -KyBuZXUgKyAnIHdlY2hzZWxuICgnICsgcmljaHR1bmcgKyAnKT9cblxuJyArCiAgICAgICAgICAg -ICAgICAnRGllIFBsYW51bmdzYW5zaWNodCB6ZWlndCBkYW5hY2ggSmFudWFyICcgKyBuZXUgKyAn -IGJpcyBKYW51YXIgJyArIChuZXUgKyAxKSArICcuXG4nICsKICAgICAgICAgICAgICAgICdLZWlu -IERhdGVudmVybHVzdCDigJQgYWxsZSBFaW50csOkZ2UgYmxlaWJlbiB1bnRlciBpaHJlbSBEYXR1 -bSBlcmhhbHRlbi4nLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgIGFwaVB1dCgnL2FwaS9h -ZG1pbi9laW5zdGVsbHVuZ2VuJywgeyBqYWhyOiBuZXUgfSkudGhlbihmdW5jdGlvbigpIHsKICAg -ICAgICAgICAgICAgICAgICB0b2FzdCgnUGxhbnVuZ3NqYWhyICcgKyBuZXUgKyAnIOKAlCBTZWl0 -ZSB3aXJkIG5ldSBnZWxhZGVuJywgJ2VyZm9sZycpOwogICAgICAgICAgICAgICAgICAgIHNldFRp -bWVvdXQoZnVuY3Rpb24oKSB7IHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTsgfSwgODAwKTsKICAg -ICAgICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGUpIHsgdG9hc3QoJ0ZlaGxlcjogJyArIGUu -bWVzc2FnZSwgJ2ZlaGxlcicpOyB9KTsKICAgICAgICAgICAgfSwgeyB0aXRlbDogJ0phaHIgd2Vj -aHNlbG4nLCBqYVRleHQ6ICdXZWNoc2VsbicgfSk7CiAgICAgICAgfSk7CgogICAgICAgIC8vIEZl -aWVydGFnZQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdidG4tZmVpZXJ0YWctbmV1 -JykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgWi5h -ZG1pbi5mZWllcnRhZ2UgPSBaLmFkbWluLmZlaWVydGFnZSB8fCBbXTsKICAgICAgICAgICAgLy8g -RXJzdCBha3R1ZWxsIHNpY2h0YmFyZSBFaW5nYWJlbiBpbnMgTW9kZWxsIHp1cnVlY2tzcGllbGVu -LCBkYW1pdAogICAgICAgICAgICAvLyB1bmJla2FubnRlIEVkaXRzIGJlaW0gUmUtUmVuZGVyIG5p -Y2h0IHZlcmxvcmVuIGdlaGVuLgogICAgICAgICAgICB2YXIgYWt0dWVsbCA9IGZlaWVydGFnZUF1 -c1RhYmVsbGVMZXNlbigpOwogICAgICAgICAgICBpZiAoYWt0dWVsbC5sZW5ndGgpIFouYWRtaW4u -ZmVpZXJ0YWdlID0gYWt0dWVsbDsKICAgICAgICAgICAgLy8gRGVmYXVsdC1LYXRlZ29yaWUgYXVz -IGRlbSBha3R1ZWxsZW4gRmlsdGVyIChmYWxscyBlaW5lIGJlc3RpbW10ZQogICAgICAgICAgICAv -LyBLYXRlZ29yaWUgZ2VmaWx0ZXJ0IGlzdCksIHNvbnN0IGdlc2V0emxpY2guCiAgICAgICAgICAg -IHZhciBrYXRGaWx0ZXIgPSAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZlaWVydGFnZS1maWx0 -ZXIta2F0ZWdvcmllJykgfHwge30pLnZhbHVlOwogICAgICAgICAgICB2YXIga2F0TmV1ID0gKGth -dEZpbHRlciAmJiBrYXRGaWx0ZXIgIT09ICdhbGxlJykgPyBrYXRGaWx0ZXIgOiAnZ2VzZXR6bGlj -aCc7CiAgICAgICAgICAgIFouYWRtaW4uZmVpZXJ0YWdlLnB1c2goewogICAgICAgICAgICAgICAg -ZGF0dW06ICcnLAogICAgICAgICAgICAgICAgYmV6ZWljaG51bmc6ICcnLAogICAgICAgICAgICAg -ICAga2F0ZWdvcmllOiBrYXROZXUsCiAgICAgICAgICAgICAgICBha3RpdjogdHJ1ZSwKICAgICAg -ICAgICAgICAgIHdpY2h0aWc6IGZhbHNlLAogICAgICAgICAgICAgICAgaWNvbjogJycsCiAgICAg -ICAgICAgICAgICBrdXJ6YmVzY2hyZWlidW5nOiAnJywKICAgICAgICAgICAgICAgIGluZm9Vcmw6 -ICcnCiAgICAgICAgICAgIH0pOwogICAgICAgICAgICBmZWllcnRhZ2VUYWJlbGxlUmVuZGVybigp -OwogICAgICAgIH0pOwogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmZWllcnRhZ2Ut -dGJvZHknKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKGUpIHsKICAgICAgICAg -ICAgLy8gSWNvbi1QaWNrZXIgKGFuYWxvZyB6dSBTb25kZXJ0ZXJtaW5lbikuIFNldHp0IGRhcyBo -aWRkZW4gZmllbGQKICAgICAgICAgICAgLy8gJ2ljb24nIHVuZCBha3R1YWxpc2llcnQgZGVuIEJ1 -dHRvbi1UZXh0LiBSZXNldCBhdWYgS2F0ZWdvcmllLURlZmF1bHQKICAgICAgICAgICAgLy8gZXJm -b2xndCwgaW5kZW0gZGVyIFVzZXIgaW0gUGlja2VyIGRhcyBSZXNldC1TeW1ib2wgd2FlaGx0IOKA -lCBkYQogICAgICAgICAgICAvLyBlbW9qaVBpY2tlclplaWdlbiBkYXMgbmljaHQgZGlyZWt0IGFu -YmlldGV0LCBrYW5uIGRlciBVc2VyIGF1Y2gKICAgICAgICAgICAgLy8gZGFzIGFrdHVlbGxlIElj -b24tRmVsZCBtYW51ZWxsIGxlZXJlbiB1ZWJlciBEZXZUb29sczsgZWluZmFjaHN0ZQogICAgICAg -ICAgICAvLyBQcmF4aXMtTG9lc3VuZzogZWluZmFjaCBlaW4gYW5kZXJlcyBJY29uIHdhZWhsZW4u -CiAgICAgICAgICAgIHZhciBpY29uQnRuID0gZS50YXJnZXQuY2xvc2VzdCgnLmZlaWVydGFnLWlj -b24tYnRuJyk7CiAgICAgICAgICAgIGlmIChpY29uQnRuKSB7CiAgICAgICAgICAgICAgICBlLnN0 -b3BQcm9wYWdhdGlvbigpOwogICAgICAgICAgICAgICAgZW1vamlQaWNrZXJaZWlnZW4oaWNvbkJ0 -biwgZnVuY3Rpb24odikgewogICAgICAgICAgICAgICAgICAgIHZhciBpZHggPSBpY29uQnRuLmdl -dEF0dHJpYnV0ZSgnZGF0YS1pZHgnKTsKICAgICAgICAgICAgICAgICAgICB2YXIgaGlkZGVuID0g -ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmZlaWVydGFnLWlucHV0W2RhdGEtZmVsZD0iaWNvbiJd -W2RhdGEtaWR4PSInICsgaWR4ICsgJyJdJyk7CiAgICAgICAgICAgICAgICAgICAgaWYgKGhpZGRl -bikgewogICAgICAgICAgICAgICAgICAgICAgICBoaWRkZW4udmFsdWUgPSB2IHx8ICcnOwogICAg -ICAgICAgICAgICAgICAgICAgICBoaWRkZW4uZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2NoYW5n -ZScsIHsgYnViYmxlczogdHJ1ZSB9KSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg -ICAgICAgICAgIGljb25CdG4udGV4dENvbnRlbnQgPSB2IHx8ICfigJQnOwogICAgICAgICAgICAg -ICAgfSk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgICAg -dmFyIGluZm9CdG4gPSBlLnRhcmdldC5jbG9zZXN0KCcuZmVpZXJ0YWctaW5mby1idG4nKTsKICAg -ICAgICAgICAgaWYgKGluZm9CdG4pIHsKICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9u -KCk7CiAgICAgICAgICAgICAgICBmZWllcnRhZ2VJbmZvTW9kYWxaZWlnZW4oaW5mb0J0bi5nZXRB -dHRyaWJ1dGUoJ2RhdGEtaWR4JykpOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAg -ICB9CiAgICAgICAgICAgIHZhciBidG4gPSBlLnRhcmdldC5jbG9zZXN0KCdbZGF0YS1ha3Rpb249 -ImZlaWVydGFnLWxvZXNjaGVuIl0nKTsKICAgICAgICAgICAgaWYgKGJ0bikgeyBaLmFkbWluLmZl -aWVydGFnZS5zcGxpY2UocGFyc2VJbnQoYnRuLmdldEF0dHJpYnV0ZSgnZGF0YS1pZHgnKSksIDEp -OyBmZWllcnRhZ2VUYWJlbGxlUmVuZGVybigpOyB9CiAgICAgICAgfSk7CiAgICAgICAgLy8gRmls -dGVyIChLYXRlZ29yaWUgLyBKYWhyIC8gbnVyIGFrdGl2ZSkKICAgICAgICBbJ2ZlaWVydGFnZS1m -aWx0ZXIta2F0ZWdvcmllJywgJ2ZlaWVydGFnZS1maWx0ZXItamFocicsICdmZWllcnRhZ2UtZmls -dGVyLW51ci1ha3RpdiddLmZvckVhY2goZnVuY3Rpb24oaWQpIHsKICAgICAgICAgICAgdmFyIGVs -ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOwogICAgICAgICAgICBpZiAoZWwpIGVsLmFk -ZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIGZlaWVydGFnZUZpbHRlckFud2VuZGVuKTsKICAgICAg -ICB9KTsKICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnRuLWZlaWVydGFnZS1zcGVp -Y2hlcm4nKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCkgewogICAgICAgICAg -ICB2YXIgZGF0ZW4gPSBmZWllcnRhZ2VBdXNUYWJlbGxlTGVzZW4oKTsKICAgICAgICAgICAgYXBp -UHV0KCcvYXBpL2FkbWluL2ZlaWVydGFnZScsIGRhdGVuKS50aGVuKGZ1bmN0aW9uKCkgewogICAg -ICAgICAgICAgICAgWi5hZG1pbi5mZWllcnRhZ2UgPSBkYXRlbjsKICAgICAgICAgICAgICAgIHRh -Z0luZm9zQmVyZWNobmVuKCk7CiAgICAgICAgICAgICAgICBrb3BmUmVuZGVybigpOyAgICAgICAg -Ly8gRmVpZXJ0YWdzLUhpZ2hsaWdodCBpbiBkZXIgSGF1cHRwbGFudW5ncy1IZWFkZXItWmVpbGUg -YXVmZnJpc2NoZW4KICAgICAgICAgICAgICAgIGRpcnR5U2V0emVuKCdmZWllcnRhZ2UnLCBmYWxz -ZSk7CiAgICAgICAgICAgICAgICAvLyAiTnVyIGFrdGl2ZSB6ZWlnZW4iLUZpbHRlciB6dXJ1ZWNr -c2V0emVuIOKAlCBzb25zdCBzaWVodCBkZXIgVXNlcgogICAgICAgICAgICAgICAgLy8gZ2VyYWRl -IGhpbnp1Z2VmdWVndGUgKGluYWt0aXZlKSBGZWllcnRhZ2UgbmFjaCBkZW0gU2F2ZSBuaWNodAog -ICAgICAgICAgICAgICAgLy8gdW5kIGdsYXVidCwgZGllIExpc3RlIHNlaSB2ZXJzY2h3dW5kZW4u -CiAgICAgICAgICAgICAgICB2YXIgbnVyQWt0aXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn -ZmVpZXJ0YWdlLWZpbHRlci1udXItYWt0aXYnKTsKICAgICAgICAgICAgICAgIGlmIChudXJBa3Rp -diAmJiBudXJBa3Rpdi5jaGVja2VkKSB7CiAgICAgICAgICAgICAgICAgICAgbnVyQWt0aXYuY2hl -Y2tlZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgIGZlaWVydGFnZUZpbHRlckFud2VuZGVu -KCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB0b2FzdCgnRmVpZXJ0YWdlIGdl -c3BlaWNoZXJ0JywgJ2VyZm9sZycpOwogICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlKSB7 -IHRvYXN0KCdGZWhsZXI6ICcgKyBlLm1lc3NhZ2UsICdmZWhsZXInKTsgfSk7CiAgICAgICAgfSk7 -CgogICAgICAgIC8vIEZlcmllbgogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdidG4t -ZmVyaWVuLW5ldScpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKSB7CiAgICAg -ICAgICAgIFouYWRtaW4uZmVyaWVuID0gWi5hZG1pbi5mZXJpZW4gfHwgW107CiAgICAgICAgICAg -IFouYWRtaW4uZmVyaWVuLnB1c2goeyB2b246ICcnLCBiaXM6ICcnLCBuYW1lOiAnJyB9KTsKICAg -ICAgICAgICAgZmVyaWVuVGFiZWxsZVJlbmRlcm4oKTsKICAgICAgICB9KTsKICAgICAgICBkb2N1 -bWVudC5nZXRFbGVtZW50QnlJZCgnZmVyaWVuLXRib2R5JykuYWRkRXZlbnRMaXN0ZW5lcignY2xp -Y2snLCBmdW5jdGlvbihlKSB7CiAgICAgICAgICAgIHZhciBidG4gPSBlLnRhcmdldC5jbG9zZXN0 -KCdbZGF0YS1ha3Rpb249ImZlcmllbi1sb2VzY2hlbiJdJyk7CiAgICAgICAgICAgIGlmIChidG4p -IHsgWi5hZG1pbi5mZXJpZW4uc3BsaWNlKHBhcnNlSW50KGJ0bi5nZXRBdHRyaWJ1dGUoJ2RhdGEt -aWR4JykpLCAxKTsgZmVyaWVuVGFiZWxsZVJlbmRlcm4oKTsgfQogICAgICAgIH0pOwogICAgICAg -IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdidG4tZmVyaWVuLXNwZWljaGVybicpLmFkZEV2ZW50 -TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHZhciBkYXRlbiA9IGZl -cmllbkF1c1RhYmVsbGVMZXNlbigpOwogICAgICAgICAgICBhcGlQdXQoJy9hcGkvYWRtaW4vZmVy -aWVuJywgZGF0ZW4pLnRoZW4oZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICBaLmFkbWluLmZl -cmllbiA9IGRhdGVuOwogICAgICAgICAgICAgICAgdGFnSW5mb3NCZXJlY2huZW4oKTsKICAgICAg -ICAgICAgICAgIGtvcGZSZW5kZXJuKCk7ICAgICAgICAvLyBGZXJpZW4tTWFya2llcnVuZyBpbiBk -ZXIgSGF1cHRwbGFudW5ncy1IZWFkZXItWmVpbGUgYXVmZnJpc2NoZW4KICAgICAgICAgICAgICAg -IGRpcnR5U2V0emVuKCdmZXJpZW4nLCBmYWxzZSk7CiAgICAgICAgICAgICAgICB0YWJEcmFmdExv -ZXNjaGVuKCdmZXJpZW4nKTsKICAgICAgICAgICAgICAgIHRvYXN0KCdGZXJpZW4gZ2VzcGVpY2hl -cnQnLCAnZXJmb2xnJyk7CiAgICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGUpIHsgdG9hc3Qo -J0ZlaGxlcjogJyArIGUubWVzc2FnZSwgJ2ZlaGxlcicpOyB9KTsKICAgICAgICB9KTsKCiAgICAg -ICAgLy8gU29uZGVydGVybWluZSDigJQgTmV1YW5sYWdlIMO2ZmZuZXQgTW9kYWwKICAgICAgICBk -b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnRuLXNvbmRlcnRlcm1pbi1uZXUnKS5hZGRFdmVudExp -c3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICBzb25kZXJFZGl0TW9kYWxa -ZWlnZW4oJycpOwogICAgICAgIH0pOwogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdz -b25kZXJ0ZXJtaW5lLXRib2R5JykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbihl -KSB7CiAgICAgICAgICAgIHZhciBiZWFyYiA9IGUudGFyZ2V0LmNsb3Nlc3QoJ1tkYXRhLWFrdGlv -bj0ic29uZGVyLWJlYXJiZWl0ZW4iXScpOwogICAgICAgICAgICBpZiAoYmVhcmIpIHsgc29uZGVy -RWRpdE1vZGFsWmVpZ2VuKGJlYXJiLmdldEF0dHJpYnV0ZSgnZGF0YS1pZCcpKTsgcmV0dXJuOyB9 -CiAgICAgICAgICAgIHZhciBsb2VzY2ggPSBlLnRhcmdldC5jbG9zZXN0KCdbZGF0YS1ha3Rpb249 -InNvbmRlci1sb2VzY2hlbiJdJyk7CiAgICAgICAgICAgIGlmIChsb2VzY2gpIHsKICAgICAgICAg -ICAgICAgIHZhciBpZCA9IGxvZXNjaC5nZXRBdHRyaWJ1dGUoJ2RhdGEtaWQnKTsKICAgICAgICAg -ICAgICAgIHZhciBzID0gc29uZGVyQnlJZChpZCk7CiAgICAgICAgICAgICAgICBpZiAoIXMpIHJl -dHVybjsKICAgICAgICAgICAgICAgIHZhciBzTGFiZWwgPSBzLnRpdGVsIHx8IHNvbmRlclRpdGVs -QXVzVGV4dChzLnRleHQpIHx8ICcob2huZSBUaXRlbCknOwogICAgICAgICAgICAgICAgYmVzdGFl -dGlnZW4oJ0hpbndlaXMg4oCeJyArIHNMYWJlbCArICciICgnICsgc29uZGVyRGF0dW1MYWJlbChz -KSArICcpIHdpcmtsaWNoIGzDtnNjaGVuPycsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAg -ICAgIHZhciBsaXN0ZSA9IChaLmFkbWluLnNvbmRlcnRlcm1pbmUgfHwgW10pLmZpbHRlcihmdW5j -dGlvbih4KSB7IHJldHVybiB4LmlkICE9PSBpZDsgfSk7CiAgICAgICAgICAgICAgICAgICAgYXBp -UHV0KCcvYXBpL2FkbWluL3NvbmRlcnRlcm1pbmUnLCBsaXN0ZSkudGhlbihmdW5jdGlvbigpIHsK -ICAgICAgICAgICAgICAgICAgICAgICAgWi5hZG1pbi5zb25kZXJ0ZXJtaW5lID0gbGlzdGU7CiAg -ICAgICAgICAgICAgICAgICAgICAgIHRhZ0luZm9zQmVyZWNobmVuKCk7CiAgICAgICAgICAgICAg -ICAgICAgICAgIGtvcGZSZW5kZXJuKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIHNvbmRlcnRl -cm1pbmVSZW5kZXJuKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIHRvYXN0KCdIaW53ZWlzIGdl -bMO2c2NodCcsICdlcmZvbGcnKTsKICAgICAgICAgICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlv +ZSwgJ2ZlaGxlcicpOyB9KTsKICAgICAgICB9KTsKCiAgICAgICAgdmFyIGJ0bkZ1bmtOZXUgPSBk +b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnRuLWZ1bmt0aW9uLW5ldScpOwogICAgICAgIGlmIChi +dG5GdW5rTmV1KSBidG5GdW5rTmV1LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24o +KSB7CiAgICAgICAgICAgIGlmICghWi5hZG1pbi5mdW5rdGlvbmVuKSBaLmFkbWluLmZ1bmt0aW9u +ZW4gPSBbXTsKICAgICAgICAgICAgWi5hZG1pbi5mdW5rdGlvbmVuLnB1c2goeyBjb2RlOiAnJywg +cmFuZzogOTkgfSk7CiAgICAgICAgICAgIGxpc3RlbkZ1bmt0aW9uZW5SZW5kZXJuKCk7CiAgICAg +ICAgICAgIHZhciBpbnB1dHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuZnVuay1pbnB1 +dC1jb2RlJyk7CiAgICAgICAgICAgIGlmIChpbnB1dHMubGVuZ3RoKSBpbnB1dHNbaW5wdXRzLmxl +bmd0aCAtIDFdLmZvY3VzKCk7CiAgICAgICAgfSk7CiAgICAgICAgdmFyIGJ0bkZ1bmtTcGVpY2hl +cm4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnRuLWZ1bmt0aW9uZW4tc3BlaWNoZXJuJyk7 +CiAgICAgICAgaWYgKGJ0bkZ1bmtTcGVpY2hlcm4pIGJ0bkZ1bmtTcGVpY2hlcm4uYWRkRXZlbnRM +aXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgdmFyIGxpc3RlID0gZnVu +a3Rpb25lbkF1c1RhYmVsbGVMZXNlbigpOwogICAgICAgICAgICBaLmFkbWluLmZ1bmt0aW9uZW4g +PSBsaXN0ZTsKICAgICAgICAgICAgYXBpUHV0KCcvYXBpL2FkbWluJywgWi5hZG1pbikudGhlbihm +dW5jdGlvbigpIHsKICAgICAgICAgICAgICAgIGxpc3RlbkZ1bmt0aW9uZW5SZW5kZXJuKCk7CiAg +ICAgICAgICAgICAgICB0b2FzdCgnRnVua3Rpb25lbiBnZXNwZWljaGVydCcsICdlcmZvbGcnKTsK +ICAgICAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oZSkgeyB0b2FzdCgnRmVobGVyOiAnICsgZS5t +ZXNzYWdlLCAnZmVobGVyJyk7IH0pOwogICAgICAgIH0pOwoKICAgICAgICAvLyBSZWloZW5mb2xn +ZSAvIExvZXNjaGVuIOKAlCBFdmVudC1EZWxlZ2F0aW9uIGF1ZiBiZWlkZSBUYWJlbGxlbiwKICAg +ICAgICAvLyBkaWVzZWxiZSBMb2dpayBmdWVyIERncmFkIHVuZCBGdW5rdGlvbmVuLCBudXIgdW50 +ZXJzY2hpZWRsaWNoZXIKICAgICAgICAvLyBTdGF0ZS1TbG90IGluIFouYWRtaW4uCiAgICAgICAg +dmFyIGxpc3RlblRhYiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZG1pbi10YWItbGlzdGVu +Jyk7CiAgICAgICAgaWYgKGxpc3RlblRhYikgbGlzdGVuVGFiLmFkZEV2ZW50TGlzdGVuZXIoJ2Ns +aWNrJywgZnVuY3Rpb24oZSkgewogICAgICAgICAgICB2YXIgYnRuID0gZS50YXJnZXQuY2xvc2Vz +dCgnYnV0dG9uW2RhdGEtYWt0aW9uXScpOwogICAgICAgICAgICBpZiAoIWJ0bikgcmV0dXJuOwog +ICAgICAgICAgICB2YXIgYWt0aW9uID0gYnRuLmdldEF0dHJpYnV0ZSgnZGF0YS1ha3Rpb24nKTsK +ICAgICAgICAgICAgdmFyIGlkeCAgICA9IHBhcnNlSW50KGJ0bi5nZXRBdHRyaWJ1dGUoJ2RhdGEt +aWR4JyksIDEwKTsKICAgICAgICAgICAgLy8gRGllbnN0Z3JhZGUtQWt0aW9uZW4KICAgICAgICAg +ICAgaWYgKGFrdGlvbiA9PT0gJ2RncmFkLXVwJyB8fCBha3Rpb24gPT09ICdkZ3JhZC1kb3duJyB8 +fCBha3Rpb24gPT09ICdkZ3JhZC1sb2VzY2hlbicpIHsKICAgICAgICAgICAgICAgIC8vIFZvciBq +ZWRlciBTdHJ1a3R1cmFlbmRlcnVuZzogYWt0dWVsbGUgSW5wdXQtV2VydGUgZWluc2FtbWVsbiwK +ICAgICAgICAgICAgICAgIC8vIGRhbWl0IG5pY2h0LWdlc3BlaWNoZXJ0ZSBFZGl0aWVydW5nZW4g +ZXJoYWx0ZW4gYmxlaWJlbi4KICAgICAgICAgICAgICAgIFouYWRtaW4uZGllbnN0Z3JhZGUgPSBk +aWVuc3RncmFkZUF1c1RhYmVsbGVMZXNlbigpOwogICAgICAgICAgICAgICAgaWYgKGFrdGlvbiA9 +PT0gJ2RncmFkLXVwJyAmJiBpZHggPiAwKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIHRtcCA9 +IFouYWRtaW4uZGllbnN0Z3JhZGVbaWR4LTFdOwogICAgICAgICAgICAgICAgICAgIFouYWRtaW4u +ZGllbnN0Z3JhZGVbaWR4LTFdID0gWi5hZG1pbi5kaWVuc3RncmFkZVtpZHhdOwogICAgICAgICAg +ICAgICAgICAgIFouYWRtaW4uZGllbnN0Z3JhZGVbaWR4XSAgID0gdG1wOwogICAgICAgICAgICAg +ICAgfSBlbHNlIGlmIChha3Rpb24gPT09ICdkZ3JhZC1kb3duJyAmJiBpZHggPCBaLmFkbWluLmRp +ZW5zdGdyYWRlLmxlbmd0aCAtIDEpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgdG1wMiA9IFou +YWRtaW4uZGllbnN0Z3JhZGVbaWR4KzFdOwogICAgICAgICAgICAgICAgICAgIFouYWRtaW4uZGll +bnN0Z3JhZGVbaWR4KzFdID0gWi5hZG1pbi5kaWVuc3RncmFkZVtpZHhdOwogICAgICAgICAgICAg +ICAgICAgIFouYWRtaW4uZGllbnN0Z3JhZGVbaWR4XSAgID0gdG1wMjsKICAgICAgICAgICAgICAg +IH0gZWxzZSBpZiAoYWt0aW9uID09PSAnZGdyYWQtbG9lc2NoZW4nKSB7CiAgICAgICAgICAgICAg +ICAgICAgWi5hZG1pbi5kaWVuc3RncmFkZS5zcGxpY2UoaWR4LCAxKTsKICAgICAgICAgICAgICAg +IH0KICAgICAgICAgICAgICAgIGxpc3RlbkRpZW5zdGdyYWRlUmVuZGVybigpOwogICAgICAgICAg +ICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIEZ1bmt0aW9uZW4tQWt0 +aW9uZW4KICAgICAgICAgICAgaWYgKGFrdGlvbiA9PT0gJ2Z1bmstdXAnIHx8IGFrdGlvbiA9PT0g +J2Z1bmstZG93bicgfHwgYWt0aW9uID09PSAnZnVuay1sb2VzY2hlbicpIHsKICAgICAgICAgICAg +ICAgIFouYWRtaW4uZnVua3Rpb25lbiA9IGZ1bmt0aW9uZW5BdXNUYWJlbGxlTGVzZW4oKTsKICAg +ICAgICAgICAgICAgIGlmIChha3Rpb24gPT09ICdmdW5rLXVwJyAmJiBpZHggPiAwKSB7CiAgICAg +ICAgICAgICAgICAgICAgdmFyIHQgPSBaLmFkbWluLmZ1bmt0aW9uZW5baWR4LTFdOwogICAgICAg +ICAgICAgICAgICAgIFouYWRtaW4uZnVua3Rpb25lbltpZHgtMV0gPSBaLmFkbWluLmZ1bmt0aW9u +ZW5baWR4XTsKICAgICAgICAgICAgICAgICAgICBaLmFkbWluLmZ1bmt0aW9uZW5baWR4XSAgID0g +dDsKICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYWt0aW9uID09PSAnZnVuay1kb3duJyAmJiBp +ZHggPCBaLmFkbWluLmZ1bmt0aW9uZW4ubGVuZ3RoIC0gMSkgewogICAgICAgICAgICAgICAgICAg +IHZhciB0MiA9IFouYWRtaW4uZnVua3Rpb25lbltpZHgrMV07CiAgICAgICAgICAgICAgICAgICAg +Wi5hZG1pbi5mdW5rdGlvbmVuW2lkeCsxXSA9IFouYWRtaW4uZnVua3Rpb25lbltpZHhdOwogICAg +ICAgICAgICAgICAgICAgIFouYWRtaW4uZnVua3Rpb25lbltpZHhdICAgPSB0MjsKICAgICAgICAg +ICAgICAgIH0gZWxzZSBpZiAoYWt0aW9uID09PSAnZnVuay1sb2VzY2hlbicpIHsKICAgICAgICAg +ICAgICAgICAgICBaLmFkbWluLmZ1bmt0aW9uZW4uc3BsaWNlKGlkeCwgMSk7CiAgICAgICAgICAg +ICAgICB9CiAgICAgICAgICAgICAgICBsaXN0ZW5GdW5rdGlvbmVuUmVuZGVybigpOwogICAgICAg +ICAgICB9CiAgICAgICAgfSk7CgogICAgICAgIC8vIE1pa3JvdGVhbXMtRWRpdG9yIOKAlCBQaGFz +ZSAyICgyMDI2LTA1LTE5KS4gWi5hZG1pbi5taWtyb3RlYW1zIGFscwogICAgICAgIC8vIGdlcGZs +ZWd0ZSBMaXN0ZS4gUGVyc29uZW4gcHJvIFRlYW0gdmlhIE1vZGFsIChtaWtyb3RlYW1QZXJzb25l +bkRpYWxvZykuCiAgICAgICAgdmFyIGJ0bk10TmV1ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo +J2J0bi1taWtyb3RlYW0tbmV1Jyk7CiAgICAgICAgaWYgKGJ0bk10TmV1KSBidG5NdE5ldS5hZGRF +dmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICBpZiAoIVouYWRt +aW4ubWlrcm90ZWFtcykgWi5hZG1pbi5taWtyb3RlYW1zID0gW107CiAgICAgICAgICAgIC8vIFN0 +cnVrdHVyaWVydGUgSUQtVm9yc2NobGFnOiB0XzxTdGFuZG9ydD5fPEdydXBwZT47IGJlaSBsZWVy +ZW4KICAgICAgICAgICAgLy8gU3RhbW0tRmVsZGVybiBibGVpYnQgZGVyIFVzZXIgc2VsYnN0IHp1 +c3RhZW5kaWcuCiAgICAgICAgICAgIFouYWRtaW4ubWlrcm90ZWFtcyA9IG1pa3JvdGVhbXNBdXNU +YWJlbGxlTGVzZW4oKTsKICAgICAgICAgICAgWi5hZG1pbi5taWtyb3RlYW1zLnB1c2goeyBpZDog +J3RfTkVVXycgKyBEYXRlLm5vdygpLnRvU3RyaW5nKDM2KSwgbmFtZTogJycsIHN0YW5kb3J0OiAn +JywgZ3J1cHBlOiAnJywgcGVyc29uSWRzOiBbXSB9KTsKICAgICAgICAgICAgbWlrcm90ZWFtc1Jl +bmRlcm4oKTsKICAgICAgICB9KTsKICAgICAgICB2YXIgYnRuTXRTcGVpY2hlcm4gPSBkb2N1bWVu +dC5nZXRFbGVtZW50QnlJZCgnYnRuLW1pa3JvdGVhbXMtc3BlaWNoZXJuJyk7CiAgICAgICAgaWYg +KGJ0bk10U3BlaWNoZXJuKSBidG5NdFNwZWljaGVybi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycs +IGZ1bmN0aW9uKCkgewogICAgICAgICAgICB2YXIgbGlzdGUgPSBtaWtyb3RlYW1zQXVzVGFiZWxs +ZUxlc2VuKCk7CiAgICAgICAgICAgIFouYWRtaW4ubWlrcm90ZWFtcyA9IGxpc3RlOwogICAgICAg +ICAgICBhcGlQdXQoJy9hcGkvYWRtaW4nLCBaLmFkbWluKS50aGVuKGZ1bmN0aW9uKCkgewogICAg +ICAgICAgICAgICAgbWlrcm90ZWFtc1JlbmRlcm4oKTsKICAgICAgICAgICAgICAgIHRvYXN0KGxp +c3RlLmxlbmd0aCArICcgTWlrcm90ZWFtcyBnZXNwZWljaGVydCcsICdlcmZvbGcnKTsKICAgICAg +ICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oZSkgeyB0b2FzdCgnRmVobGVyOiAnICsgZS5tZXNzYWdl +LCAnZmVobGVyJyk7IH0pOwogICAgICAgIH0pOwoKICAgICAgICAvLyBUYWJlbGxlbi1FdmVudC1E +ZWxlZ2F0aW9uOiBVcC9Eb3duL0xvZXNjaGVuL1BlcnNvbmVuLU1vZGFsCiAgICAgICAgdmFyIG10 +VGFiID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FkbWluLXRhYi1taWtyb3RlYW1zJyk7CiAg +ICAgICAgaWYgKG10VGFiKSBtdFRhYi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9u +KGUpIHsKICAgICAgICAgICAgdmFyIGJ0biA9IGUudGFyZ2V0LmNsb3Nlc3QoJ2J1dHRvbltkYXRh +LWFrdGlvbl0nKTsKICAgICAgICAgICAgaWYgKCFidG4pIHJldHVybjsKICAgICAgICAgICAgdmFy +IGFrdGlvbiA9IGJ0bi5nZXRBdHRyaWJ1dGUoJ2RhdGEtYWt0aW9uJyk7CiAgICAgICAgICAgIHZh +ciBpZHggICAgPSBwYXJzZUludChidG4uZ2V0QXR0cmlidXRlKCdkYXRhLWlkeCcpLCAxMCk7CiAg +ICAgICAgICAgIGlmIChpc05hTihpZHgpKSByZXR1cm47CiAgICAgICAgICAgIGlmIChha3Rpb24g +PT09ICdtdC1wZXJzb25lbicpIHsKICAgICAgICAgICAgICAgIG1pa3JvdGVhbVBlcnNvbmVuRGlh +bG9nKGlkeCk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAg +ICAgLy8gU3RydWt0dXJhZW5kZXJ1bmdlbiDigJQgdm9yaGVyIGRpZSBJbnB1dHMgZWluc2FtbWVs +bi4KICAgICAgICAgICAgWi5hZG1pbi5taWtyb3RlYW1zID0gbWlrcm90ZWFtc0F1c1RhYmVsbGVM +ZXNlbigpOwogICAgICAgICAgICB2YXIgbCA9IFouYWRtaW4ubWlrcm90ZWFtczsKICAgICAgICAg +ICAgaWYgKGFrdGlvbiA9PT0gJ210LXVwJyAmJiBpZHggPiAwKSB7CiAgICAgICAgICAgICAgICB2 +YXIgdCA9IGxbaWR4LTFdOyBsW2lkeC0xXSA9IGxbaWR4XTsgbFtpZHhdID0gdDsKICAgICAgICAg +ICAgfSBlbHNlIGlmIChha3Rpb24gPT09ICdtdC1kb3duJyAmJiBpZHggPCBsLmxlbmd0aCAtIDEp +IHsKICAgICAgICAgICAgICAgIHZhciB0MiA9IGxbaWR4KzFdOyBsW2lkeCsxXSA9IGxbaWR4XTsg +bFtpZHhdID0gdDI7CiAgICAgICAgICAgIH0gZWxzZSBpZiAoYWt0aW9uID09PSAnbXQtbG9lc2No +ZW4nKSB7CiAgICAgICAgICAgICAgICBsLnNwbGljZShpZHgsIDEpOwogICAgICAgICAgICB9CiAg +ICAgICAgICAgIG1pa3JvdGVhbXNSZW5kZXJuKCk7CiAgICAgICAgfSk7CgogICAgICAgIC8vIEUt +TWFpbC1Wb3JsYWdlbiDigJQgS2FydGVuLUxheW91dCAoRmluZGluZyBDLjcgLyBTcGVjIEYuMSkK +ICAgICAgICAvLyBLbGljayBhdWYgZWluZSBLYXJ0ZSBvZWZmbmV0IGVtYWlsVm9ybGFnZUJlYXJi +ZWl0ZW5Nb2RhbCgpOyBTYXZlCiAgICAgICAgLy8gZXJmb2xndCBhdXMgZGVtIE1vZGFsIGhlcmF1 +cy4gRGVyIGZydWVoZXIgemVudHJhbGUgIlZvcmxhZ2VuCiAgICAgICAgLy8gc3BlaWNoZXJuIi1C +dXR0b24gaXN0IHdlZywgd2VpbCBTYXZlIGpldHp0IHBybyBWb3JsYWdlIHN0YXR0ZmluZGV0Lgog +ICAgICAgIHZhciBlbWFpbEthcnRlbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlbWFpbHZv +cmxhZ2VuLWluaGFsdCcpOwogICAgICAgIGlmIChlbWFpbEthcnRlbikgZW1haWxLYXJ0ZW4uYWRk +RXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbihlKSB7CiAgICAgICAgICAgIC8vIEhpZGUg +LyBTaG93IHRvZ2dsZTogVm9ybGFnZSBhdXMgZGVyIFByaW1hZXJhbnNpY2h0IGF1c2JsZW5kZW4K +ICAgICAgICAgICAgLy8gYnp3LiB3aWVkZXIgZWluYmxlbmRlbi4gUGVyc2lzdGllcnVuZyBhbHMK +ICAgICAgICAgICAgLy8gYWRtaW4uZW1haWxWb3JsYWdlbltrZXldLnZlcnN0ZWNrdCA9IGJvb2ws +IGdlc3BlaWNoZXJ0IHVlYmVyCiAgICAgICAgICAgIC8vIC9hcGkvYWRtaW4uIERpZSBIaWRlLUts +aWNrcyBicmF1Y2hlbiBzdG9wUHJvcGFnYXRpb24sIHNvbnN0CiAgICAgICAgICAgIC8vIHd1ZXJk +ZSBkZXIgS2FydGVuLUNsaWNrLUhhbmRsZXIgZGFydW50ZXIgZGFzIEJlYXJiZWl0ZW4tTW9kYWwK +ICAgICAgICAgICAgLy8gb2VmZm5lbi4KICAgICAgICAgICAgdmFyIGhpZGVCdG4gPSBlLnRhcmdl +dC5jbG9zZXN0KCdbZGF0YS1ha3Rpb249ImV2LWhpZGUiXSwgW2RhdGEtYWt0aW9uPSJldi1zaG93 +Il0nKTsKICAgICAgICAgICAgaWYgKGhpZGVCdG4pIHsKICAgICAgICAgICAgICAgIGUuc3RvcFBy +b3BhZ2F0aW9uKCk7CiAgICAgICAgICAgICAgICB2YXIga2V5ID0gaGlkZUJ0bi5nZXRBdHRyaWJ1 +dGUoJ2RhdGEtdm9ybGFnZScpOwogICAgICAgICAgICAgICAgdmFyIHZlcnN0ZWNrdCA9IGhpZGVC +dG4uZ2V0QXR0cmlidXRlKCdkYXRhLWFrdGlvbicpID09PSAnZXYtaGlkZSc7CiAgICAgICAgICAg +ICAgICBpZiAoIVouYWRtaW4uZW1haWxWb3JsYWdlbikgWi5hZG1pbi5lbWFpbFZvcmxhZ2VuID0g +e307CiAgICAgICAgICAgICAgICBpZiAoIVouYWRtaW4uZW1haWxWb3JsYWdlbltrZXldKSBaLmFk +bWluLmVtYWlsVm9ybGFnZW5ba2V5XSA9IHt9OwogICAgICAgICAgICAgICAgWi5hZG1pbi5lbWFp +bFZvcmxhZ2VuW2tleV0udmVyc3RlY2t0ID0gdmVyc3RlY2t0OwogICAgICAgICAgICAgICAgYXBp +UHV0KCcvYXBpL2FkbWluJywgWi5hZG1pbikudGhlbihmdW5jdGlvbigpIHsKICAgICAgICAgICAg +ICAgICAgICBlbWFpbFZvcmxhZ2VuUmVuZGVybigpOwogICAgICAgICAgICAgICAgICAgIHRvYXN0 +KHZlcnN0ZWNrdCA/ICdWb3JsYWdlIGF1c2dlYmxlbmRldCcgOiAnVm9ybGFnZSBlaW5nZWJsZW5k +ZXQnLCAnZXJmb2xnJyk7CiAgICAgICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlcnIpIHsg +dG9hc3QoJ0ZlaGxlcjogJyArIGVyci5tZXNzYWdlLCAnZmVobGVyJyk7IH0pOwogICAgICAgICAg +ICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciBrYXJ0ZSA9IGUudGFy +Z2V0LmNsb3Nlc3QoJy5lbWFpbHZvcmxhZ2Uta2FydGUnKTsKICAgICAgICAgICAgaWYgKGthcnRl +KSBlbWFpbFZvcmxhZ2VCZWFyYmVpdGVuTW9kYWwoa2FydGUuZ2V0QXR0cmlidXRlKCdkYXRhLXZv +cmxhZ2UnKSk7CiAgICAgICAgfSk7CiAgICAgICAgLy8gVGFzdGF0dXItQWt0aXZpZXJ1bmcgZGVy +IEthcnRlbiAocm9sZT1idXR0b24sIGtlaW4gbmF0aXZlcyA8YnV0dG9uPgogICAgICAgIC8vIG1l +aHIg4oCUIEVudGVyL1NwYWNlIG11ZXNzZW4gd2lyIHNlbGJzdCBiZWhhbmRlbG4pLgogICAgICAg +IGlmIChlbWFpbEthcnRlbikgZW1haWxLYXJ0ZW4uYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bics +IGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgaWYgKGUua2V5ICE9PSAnRW50ZXInICYmIGUua2V5 +ICE9PSAnICcgJiYgZS5rZXkgIT09ICdTcGFjZWJhcicpIHJldHVybjsKICAgICAgICAgICAgdmFy +IGthcnRlID0gZS50YXJnZXQuY2xvc2VzdCgnLmVtYWlsdm9ybGFnZS1rYXJ0ZScpOwogICAgICAg +ICAgICBpZiAoIWthcnRlIHx8IGUudGFyZ2V0LmNsb3Nlc3QoJy5ldmstaGlkZS1idG4nKSkgcmV0 +dXJuOwogICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgICAgIGVtYWlsVm9y +bGFnZUJlYXJiZWl0ZW5Nb2RhbChrYXJ0ZS5nZXRBdHRyaWJ1dGUoJ2RhdGEtdm9ybGFnZScpKTsK +ICAgICAgICB9KTsKCiAgICAgICAgLy8gRWluc3RlbGx1bmdlbiDigJQgSmFociArIEluYWt0aXZp +dGFldCArIFBhcGllcmtvcmItQXVmYmV3YWhydW5nICsgRS1NYWlsLQogICAgICAgIC8vIERvbWFp +biAoSW5mb3RleHRlIHNpbmQgaW0gVGFiICJJbmZvcm1hdGlvbiAmIEhpbGZlIikuCiAgICAgICAg +Ly8gS29uZmlndXJhdGlvbjogZWluemVsbmUsIGF0b21hcmUgKyB2YWxpZGllcnRlIEZlbGRlci4g +RGVyIEVuZHBvaW50CiAgICAgICAgLy8gL2FwaS9hZG1pbi9laW5zdGVsbHVuZ2VuIGlzdCBQYXJ0 +aWFsLU1lcmdlLWbDpGhpZyAoa2VpbiBWb2xsLU92ZXJ3cml0ZSksCiAgICAgICAgLy8gZGFoZXIg +aXN0IGZlbGR3ZWlzZXMgQVVUTy1TUEVJQ0hFUk4gaGllciBzaWNoZXI6IGplZGUgw4RuZGVydW5n +IHdpcmQKICAgICAgICAvLyBuYWNoIGt1cnplciBUaXBwLVBhdXNlIGF1dG9tYXRpc2NoIHBlcnNp +c3RpZXJ0LiBEZXIg4oCeU3BlaWNoZXJuIi1CdXR0b24KICAgICAgICAvLyBibGVpYnQgYWxzIGV4 +cGxpeml0ZXIgRmFsbGJhY2sgZXJoYWx0ZW4uCiAgICAgICAgZnVuY3Rpb24gZWluc3RlbGx1bmdl +bkxlc2VuKCkgewogICAgICAgICAgICB2YXIgcGFwaWVya29yYkVsID0gZG9jdW1lbnQuZ2V0RWxl +bWVudEJ5SWQoJ2VpbnMtcGFwaWVya29yYi10YWdlJyk7CiAgICAgICAgICAgIHZhciBlbWFpbERv +bWFpbkVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VpbnMtZW1haWwtZG9tYWluJyk7CiAg +ICAgICAgICAgIHZhciBhdmF0YXJHcm9lc3NlRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn +ZWlucy1hdmF0YXItZ3JvZXNzZScpOwogICAgICAgICAgICAvLyBBdmF0YXItR3JvZXNzZSB6d2lz +Y2hlbiAxMDAgdW5kIDYwMCBjbGFtcGVuLCBkYW1pdCBiZWxpZWJpZyBncm9zc2UKICAgICAgICAg +ICAgLy8gQmlsZGVyIGRlbiBEYXRhRGlyIG5pY2h0IHVlYmVycmFzY2hlbmQgbWl0IE1CLUZpbGVz +IGZ1ZWxsZW4uCiAgICAgICAgICAgIHZhciBhdmF0YXJHciA9IGF2YXRhckdyb2Vzc2VFbCA/IHBh +cnNlSW50KGF2YXRhckdyb2Vzc2VFbC52YWx1ZSwgMTApIDogMjAwOwogICAgICAgICAgICBpZiAo +aXNOYU4oYXZhdGFyR3IpIHx8IGF2YXRhckdyIDwgMTAwKSBhdmF0YXJHciA9IDEwMDsKICAgICAg +ICAgICAgZWxzZSBpZiAoYXZhdGFyR3IgPiA2MDApIGF2YXRhckdyID0gNjAwOwogICAgICAgICAg +ICB2YXIgZWRpdG9yVHJpZ2dlckVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VpbnMtZWRp +dG9yLXRyaWdnZXInKTsKICAgICAgICAgICAgdmFyIGVkaXRvclRyaWdnZXJXZXJ0ID0gZWRpdG9y +VHJpZ2dlckVsID8gZWRpdG9yVHJpZ2dlckVsLnZhbHVlIDogJ3JlY2h0cyc7CiAgICAgICAgICAg +IGlmIChbJ3JlY2h0cycsICdsaW5rcycsICdtaXR0ZScsICdkb3BwZWwnXS5pbmRleE9mKGVkaXRv +clRyaWdnZXJXZXJ0KSA8IDApIGVkaXRvclRyaWdnZXJXZXJ0ID0gJ3JlY2h0cyc7CiAgICAgICAg +ICAgIC8vIEhpbndlaXM6IGBqYWhyYCBpc3QgaGllciBCRVdVU1NUIG5pY2h0IGVudGhhbHRlbi4g +RGFzIFBsYW51bmdzamFocgogICAgICAgICAgICAvLyB3aXJkIGF1c3NjaGxpZXNzbGljaCB1ZWJl +ciBkZW4gZGVkaXppZXJ0ZW4g4oCeSmFociB3ZWNoc2VsbiItQnV0dG9uCiAgICAgICAgICAgIC8v +IGdlYWVuZGVydCAobWl0IEJlc3RhZXRpZ3VuZyArIFJlbG9hZCksIGRhbWl0IFN0YXR1cyB1bmQg +QW5zaWNodAogICAgICAgICAgICAvLyBuaWUgYXVzZWluYW5kZXJsYXVmZW4uIERhcyBlaW5zLWph +aHItRmVsZCBpc3QgbnVyIGRpZSBaaWVsYXVzd2FobC4KICAgICAgICAgICAgcmV0dXJuIHsKICAg +ICAgICAgICAgICAgIHBhcGllcmtvcmJUYWdlQXVmYmV3YWhydW5nOiBwYXBpZXJrb3JiRWwgPyAo +cGFyc2VJbnQocGFwaWVya29yYkVsLnZhbHVlLCAxMCkgfHwgMCkgOiAzMCwKICAgICAgICAgICAg +ICAgIGVtYWlsQXV0b0RvbWFpbjogZW1haWxEb21haW5FbCA/IGVtYWlsRG9tYWluRWwudmFsdWUg +OiAnQHBvbGl6ZWkubnJ3LmRlJywKICAgICAgICAgICAgICAgIGF2YXRhckdyb2Vzc2U6IGF2YXRh +ckdyLAogICAgICAgICAgICAgICAgZWRpdG9yVHJpZ2dlcjogZWRpdG9yVHJpZ2dlcldlcnQKICAg +ICAgICAgICAgfTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gZWluc3RlbGx1bmdlblNwZWlj +aGVybihhdXRvKSB7CiAgICAgICAgICAgIHZhciBkYXRlbiA9IGVpbnN0ZWxsdW5nZW5MZXNlbigp +OwogICAgICAgICAgICByZXR1cm4gYXBpUHV0KCcvYXBpL2FkbWluL2VpbnN0ZWxsdW5nZW4nLCBk +YXRlbikudGhlbihmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oWi5h +ZG1pbiwgZGF0ZW4pOwogICAgICAgICAgICAgICAgZGlydHlTZXR6ZW4oJ2VpbnN0ZWxsdW5nZW4n +LCBmYWxzZSk7CiAgICAgICAgICAgICAgICB0b2FzdChhdXRvID8gJ0dlc3BlaWNoZXJ0JyA6ICdF +aW5zdGVsbHVuZ2VuIGdlc3BlaWNoZXJ0JywgJ2VyZm9sZycpOwogICAgICAgICAgICB9KS5jYXRj +aChmdW5jdGlvbihlKSB7IHRvYXN0KCdGZWhsZXI6ICcgKyBlLm1lc3NhZ2UsICdmZWhsZXInKTsg +fSk7CiAgICAgICAgfQogICAgICAgIHZhciBidG5FaW5zU3BlaWNoZXJuID0gZG9jdW1lbnQuZ2V0 +RWxlbWVudEJ5SWQoJ2J0bi1laW5zdGVsbHVuZ2VuLXNwZWljaGVybicpOwogICAgICAgIGlmIChi +dG5FaW5zU3BlaWNoZXJuKSBidG5FaW5zU3BlaWNoZXJuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNr +JywgZnVuY3Rpb24oKSB7IGVpbnN0ZWxsdW5nZW5TcGVpY2hlcm4oZmFsc2UpOyB9KTsKICAgICAg +ICAvLyBBdXRvLVNhdmU6IMOEbmRlcnVuZyBhbiBlaW5lbSBLb25maWctRmVsZCDihpIgbmFjaCA3 +MDAgbXMgVGlwcC1QYXVzZQogICAgICAgIC8vIGF1dG9tYXRpc2NoIHNwZWljaGVybiAoZGVib3Vu +Y2VkLCBlaW4gVG9hc3QgcHJvIFJ1aGVwaGFzZSkuCiAgICAgICAgdmFyIF9laW5zQXV0b1RpbWVy +ID0gbnVsbDsKICAgICAgICBbJ2VpbnMtcGFwaWVya29yYi10YWdlJywgJ2VpbnMtZW1haWwtZG9t +YWluJywgJ2VpbnMtYXZhdGFyLWdyb2Vzc2UnLCAnZWlucy1lZGl0b3ItdHJpZ2dlciddLmZvckVh +Y2goZnVuY3Rpb24oaWQpIHsKICAgICAgICAgICAgdmFyIGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVu +dEJ5SWQoaWQpOwogICAgICAgICAgICBpZiAoIWVsKSByZXR1cm47CiAgICAgICAgICAgIGVsLmFk +ZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgaWYg +KF9laW5zQXV0b1RpbWVyKSBjbGVhclRpbWVvdXQoX2VpbnNBdXRvVGltZXIpOwogICAgICAgICAg +ICAgICAgX2VpbnNBdXRvVGltZXIgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyBlaW5zdGVsbHVu +Z2VuU3BlaWNoZXJuKHRydWUpOyB9LCA3MDApOwogICAgICAgICAgICB9KTsKICAgICAgICB9KTsK +CiAgICAgICAgLy8gSW5mb3JtYXRpb24gJiBIaWxmZSDigJQgUmljaC1UZXh0LUVkaXRvcmVuICsg +U2NobGllw59pbmZvCiAgICAgICAgdmFyIGJ0bkloU3BlaWNoZXJuID0gZG9jdW1lbnQuZ2V0RWxl +bWVudEJ5SWQoJ2J0bi1pbmZvaGlsZmUtc3BlaWNoZXJuJyk7CiAgICAgICAgaWYgKGJ0bkloU3Bl +aWNoZXJuKSBidG5JaFNwZWljaGVybi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9u +KCkgewogICAgICAgICAgICB2YXIgZGF0ZW4gPSBpbmZvSGlsZmVBdXNGZWxkZXJuTGVzZW4oKTsK +ICAgICAgICAgICAgYXBpUHV0KCcvYXBpL2FkbWluL2VpbnN0ZWxsdW5nZW4nLCBkYXRlbikudGhl +bihmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oWi5hZG1pbiwgZGF0 +ZW4pOwogICAgICAgICAgICAgICAgZGlydHlTZXR6ZW4oJ2luZm9oaWxmZScsIGZhbHNlKTsKICAg +ICAgICAgICAgICAgIHRvYXN0KCdJbmZvcm1hdGlvbiAmIEhpbGZlIGdlc3BlaWNoZXJ0JywgJ2Vy +Zm9sZycpOwogICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlKSB7IHRvYXN0KCdGZWhsZXI6 +ICcgKyBlLm1lc3NhZ2UsICdmZWhsZXInKTsgfSk7CiAgICAgICAgfSk7CgogICAgICAgIC8vIFN1 +cHBvcnQtTWFpbC1Wb3JsYWdlIChudXIgUGhpbGlwcCBSb2VzZ2VuKS4gU2F2ZSAvIERlZmF1bHQg +LyBWb3JzY2hhdS4KICAgICAgICB2YXIgc21UZXh0YXJlYSA9IGRvY3VtZW50LmdldEVsZW1lbnRC +eUlkKCdzdXBwb3J0bWFpbC10ZXh0Jyk7CiAgICAgICAgdmFyIHNtRGlydHkgICAgPSBkb2N1bWVu +dC5nZXRFbGVtZW50QnlJZCgnc3VwcG9ydG1haWwtZGlydHktaGlud2VpcycpOwogICAgICAgIGlm +IChzbVRleHRhcmVhICYmIHNtRGlydHkpIHsKICAgICAgICAgICAgc21UZXh0YXJlYS5hZGRFdmVu +dExpc3RlbmVyKCdpbnB1dCcsIGZ1bmN0aW9uKCkgeyBzbURpcnR5LnN0eWxlLmRpc3BsYXkgPSAn +JzsgfSk7CiAgICAgICAgfQogICAgICAgIHZhciBidG5TbVNwZWljaGVybiA9IGRvY3VtZW50Lmdl +dEVsZW1lbnRCeUlkKCdidG4tc3VwcG9ydG1haWwtc3BlaWNoZXJuJyk7CiAgICAgICAgaWYgKGJ0 +blNtU3BlaWNoZXJuKSBidG5TbVNwZWljaGVybi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1 +bmN0aW9uKCkgewogICAgICAgICAgICB2YXIgdGEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn +c3VwcG9ydG1haWwtdGV4dCcpOwogICAgICAgICAgICBpZiAoIXRhKSByZXR1cm47CiAgICAgICAg +ICAgIHZhciBkYXRlbiA9IHsgc3VwcG9ydE1haWxUZXh0OiB0YS52YWx1ZSB9OwogICAgICAgICAg +ICBhcGlQdXQoJy9hcGkvYWRtaW4vZWluc3RlbGx1bmdlbicsIGRhdGVuKS50aGVuKGZ1bmN0aW9u +KCkgewogICAgICAgICAgICAgICAgWi5hZG1pbi5zdXBwb3J0TWFpbFRleHQgPSBkYXRlbi5zdXBw +b3J0TWFpbFRleHQ7CiAgICAgICAgICAgICAgICBpZiAoc21EaXJ0eSkgc21EaXJ0eS5zdHlsZS5k +aXNwbGF5ID0gJ25vbmUnOwogICAgICAgICAgICAgICAgdG9hc3QoJ1N1cHBvcnQtTWFpbC1Wb3Js +YWdlIGdlc3BlaWNoZXJ0JywgJ2VyZm9sZycpOwogICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlv bihlKSB7IHRvYXN0KCdGZWhsZXI6ICcgKyBlLm1lc3NhZ2UsICdmZWhsZXInKTsgfSk7CiAgICAg -ICAgICAgICAgICB9LCB7IHRpdGVsOiAnSGlud2VpcyBsw7ZzY2hlbicsIGphRGFuZ2VyOiB0cnVl -IH0pOwogICAgICAgICAgICB9CiAgICAgICAgfSk7CgogICAgICAgIC8vIEJhY2t1cHMKICAgICAg -ICB2YXIgYnRuQmtOZXUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnRuLWJhY2t1cC1uZXUn -KTsKICAgICAgICBpZiAoYnRuQmtOZXUpIGJ0bkJrTmV1LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNr -JywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGFwaVBvc3QoJy9hcGkvcGxhbnVuZy9iYWNrdXAn -LCB7fSkudGhlbihmdW5jdGlvbihyKSB7CiAgICAgICAgICAgICAgICB0b2FzdCgnQmFja3VwIGVy -c3RlbGx0OiAnICsgci5kYXRlaW5hbWUsICdlcmZvbGcnKTsKICAgICAgICAgICAgICAgIGJhY2t1 -cFRhYmVsbGVMYWRlbigpOwogICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlKSB7IHRvYXN0 -KCdGZWhsZXI6ICcgKyBlLm1lc3NhZ2UsICdmZWhsZXInKTsgfSk7CiAgICAgICAgfSk7CiAgICAg -ICAgdmFyIGJrVGJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFja3VwLXRib2R5Jyk7 -CiAgICAgICAgaWYgKGJrVGJvZHkpIGJrVGJvZHkuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBm -dW5jdGlvbihlKSB7CiAgICAgICAgICAgIHZhciBidG4gPSBlLnRhcmdldC5jbG9zZXN0KCdbZGF0 -YS1ha3Rpb25dJyk7CiAgICAgICAgICAgIGlmICghYnRuKSByZXR1cm47CiAgICAgICAgICAgIHZh -ciBkYXRlaSA9IGJ0bi5nZXRBdHRyaWJ1dGUoJ2RhdGEtZGF0ZWknKTsKICAgICAgICAgICAgdmFy -IGFrdGlvbiA9IGJ0bi5nZXRBdHRyaWJ1dGUoJ2RhdGEtYWt0aW9uJyk7CiAgICAgICAgICAgIGlm -IChha3Rpb24gPT09ICdiYWNrdXAtZG93bmxvYWQnKSB7CiAgICAgICAgICAgICAgICB3aW5kb3cu -b3BlbignL2FwaS9wbGFudW5nL2JhY2t1cC9kb3dubG9hZC8nICsgZW5jb2RlVVJJQ29tcG9uZW50 -KGRhdGVpKSwgJ19ibGFuaycpOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9 -CiAgICAgICAgICAgIGlmIChha3Rpb24gPT09ICdiYWNrdXAtbG9lc2NoZW4nKSB7CiAgICAgICAg -ICAgICAgICBiZXN0YWV0aWdlbignQmFja3VwIOKAnicgKyBkYXRlaSArICciIGVuZGfDvGx0aWcg -bMO2c2NoZW4/XG5cbkRpZXNlIEFrdGlvbiBrYW5uIG5pY2h0IHLDvGNrZ8OkbmdpZyBnZW1hY2h0 -IHdlcmRlbi4nLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICBhcGlQb3N0KCcvYXBp -L3BsYW51bmcvYmFja3VwL2xvZXNjaGVuJywgeyBkYXRlaW5hbWU6IGRhdGVpIH0pLnRoZW4oZnVu -Y3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHRvYXN0KCdCYWNrdXAgZ2Vsw7ZzY2h0 -JywgJ2VyZm9sZycpOwogICAgICAgICAgICAgICAgICAgICAgICBiYWNrdXBUYWJlbGxlTGFkZW4o -KTsKICAgICAgICAgICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlcnIpIHsgdG9hc3QoJ0Zl -aGxlcjogJyArIGVyci5tZXNzYWdlLCAnZmVobGVyJyk7IH0pOwogICAgICAgICAgICAgICAgfSwg -eyB0aXRlbDogJ0JhY2t1cCBsw7ZzY2hlbicsIGphRGFuZ2VyOiB0cnVlIH0pOwogICAgICAgICAg -ICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChha3Rpb24gPT09ICdi -YWNrdXAtd2llZGVyaGVyc3RlbGxlbicpIHsKICAgICAgICAgICAgICAgIGJlc3RhZXRpZ2VuKCdB -a3R1ZWxsZSBQbGFudW5nIGR1cmNoIEJhY2t1cCDigJ4nICsgZGF0ZWkgKyAnIiBlcnNldHplbj9c -blxuRXMgd2lyZCB2b3JoZXIgYXV0b21hdGlzY2ggZWluIFNpY2hlcmhlaXRzLUJhY2t1cCBkZXIg -YWt0dWVsbGVuIFBsYW51bmcgZXJzdGVsbHQuXG5cbk5hY2ggZGVtIFdpZWRlcmhlcnN0ZWxsZW4g -d2lyZCBkaWUgU2VpdGUgbmV1IGdlbGFkZW4uJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAg -ICAgICAgYXBpUG9zdCgnL2FwaS9wbGFudW5nL2JhY2t1cC93aWVkZXJoZXJzdGVsbGVuJywgeyBk -YXRlaW5hbWU6IGRhdGVpIH0pLnRoZW4oZnVuY3Rpb24ocikgewogICAgICAgICAgICAgICAgICAg -ICAgICB0b2FzdCgnV2llZGVyaGVyZ2VzdGVsbHQuIFNpY2hlcnVuZzogJyArIHIuc2ljaGVydW5n -LCAnZXJmb2xnJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEJhY2t1cC1SZXN0b3JlIGVy -emV1Z3Qgc2VpdCBQaGFzZSA0ICgyMDI2LTA1LTIwKSBlaW5lbgogICAgICAgICAgICAgICAgICAg -ICAgICAvLyBTZXJ2ZXItc2VpdGlnZW4gSW4tQXBwLUhpbndlaXMgc3RhdHQgbWFpbHRvLgogICAg -ICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyB3aW5kb3cubG9jYXRp -b24ucmVsb2FkKCk7IH0sIDEyMDApOwogICAgICAgICAgICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0 -aW9uKGVycikgeyB0b2FzdCgnRmVobGVyOiAnICsgZXJyLm1lc3NhZ2UsICdmZWhsZXInKTsgfSk7 -CiAgICAgICAgICAgICAgICB9LCB7IHRpdGVsOiAnQmFja3VwIHdpZWRlcmhlcnN0ZWxsZW4nLCBq -YVRleHQ6ICdXaWVkZXJoZXJzdGVsbGVuJywgamFEYW5nZXI6IHRydWUgfSk7CiAgICAgICAgICAg -IH0KICAgICAgICB9KTsKCiAgICAgICAgLy8gU2NoaWNodGNvZGVzCiAgICAgICAgdmFyIGJ0blNj -TmV1ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2J0bi1zY2hpY2h0Y29kZS1uZXUnKTsKICAg -ICAgICBpZiAoYnRuU2NOZXUpIGJ0blNjTmV1LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVu -Y3Rpb24oKSB7IHNjaGljaHRjb2RlRWRpdE1vZGFsWmVpZ2VuKG51bGwpOyB9KTsKICAgICAgICB2 -YXIgc2NWb3JzY2hhdSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzY2hpY2h0Y29kZS12b3Jz -Y2hhdScpOwogICAgICAgIGlmIChzY1ZvcnNjaGF1KSBzY1ZvcnNjaGF1LmFkZEV2ZW50TGlzdGVu -ZXIoJ2NsaWNrJywgZnVuY3Rpb24oZSkgewogICAgICAgICAgICB2YXIgZWRpdCA9IGUudGFyZ2V0 -LmNsb3Nlc3QoJ1tkYXRhLWFrdGlvbj0ic2NoaWNodGNvZGUtYmVhcmJlaXRlbiJdJyk7CiAgICAg -ICAgICAgIGlmIChlZGl0KSB7IHNjaGljaHRjb2RlRWRpdE1vZGFsWmVpZ2VuKGVkaXQuZ2V0QXR0 -cmlidXRlKCdkYXRhLWNvZGUnKSk7IHJldHVybjsgfQogICAgICAgICAgICB2YXIgdG9nID0gZS50 -YXJnZXQuY2xvc2VzdCgnW2RhdGEtYWt0aW9uPSJzY2hpY2h0Y29kZS10b2dnbGUiXScpOwogICAg -ICAgICAgICBpZiAodG9nKSBzY2hpY2h0Y29kZVRvZ2dsZUFrdGl2KHRvZy5nZXRBdHRyaWJ1dGUo -J2RhdGEtY29kZScpKTsKICAgICAgICB9KTsKCiAgICAgICAgLy8gU29uZGVydGVybWluLUtsaWNr -cyBsYXVmZW4gc2VpdCBNYWkgMjAyNiB1ZWJlciBkZW4gQW5sYXNzLVplaWxlbi0KICAgICAgICAv -LyBIYW5kbGVyIChzaWVoZSBvYmVuKSwgd2VpbCBkaWUgZWhlbWFscyBzZXBhcmF0ZSBFdmVudHMt -WmVpbGUgaW4KICAgICAgICAvLyBkaWUgQW5sYXNzLVplaWxlIHp1c2FtbWVuZ2VmdWVocnQgd3Vy -ZGUuCgogICAgICAgIC8vIEVyc2NoZWludW5nc2JpbGQtRWRpdG9yOiBiZWkgamVkZW0gSW5wdXQg -bGl2ZSBhbndlbmRlbiAobnVyIFouYWRtaW4ubWFya2llcnVuZ2VuCiAgICAgICAgLy8gaW4tbWVt -b3J5LCBwZXJzaXN0aWVydCB3aXJkIGVyc3QgYmVpbSBTcGVpY2hlcm4tS2xpY2spLgogICAgICAg -IC8vIFJhbmdlICsgTnVtYmVyLUlucHV0IGZ1ZXIgZGFzc2VsYmUgRmVsZCB3ZXJkZW4gaGllciBz -eW5jaHJvbmlzaWVydC4KICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdpbnB1dCcs -IGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgaWYgKCFlLnRhcmdldC5jbGFzc0xpc3QgfHwgIWUu -dGFyZ2V0LmNsYXNzTGlzdC5jb250YWlucygnZXJzY2hlaW51bmctaW5wdXQnKSkgcmV0dXJuOwog -ICAgICAgICAgICAvLyBSYW5nZSA8LT4gTnVtYmVyOiBQYXJ0bmVyLUlucHV0IG1pdCBnbGVpY2hl -bSBkYXRhLWtleS9kYXRhLWZlbGQKICAgICAgICAgICAgLy8gYXVmIGRlbiBnbGVpY2hlbiBXZXJ0 -IHNldHplbiAoZ2xlaWNoZXIgQ29udGFpbmVyKS4KICAgICAgICAgICAgaWYgKGUudGFyZ2V0LmNs -YXNzTGlzdC5jb250YWlucygnZXJzY2hlaW51bmctaW5wdXQtcmFuZ2UnKSB8fAogICAgICAgICAg -ICAgICAgZS50YXJnZXQuY2xhc3NMaXN0LmNvbnRhaW5zKCdlcnNjaGVpbnVuZy1pbnB1dC1udW0n -KSkgewogICAgICAgICAgICAgICAgdmFyIGsgPSBlLnRhcmdldC5nZXRBdHRyaWJ1dGUoJ2RhdGEt -a2V5Jyk7CiAgICAgICAgICAgICAgICB2YXIgZiA9IGUudGFyZ2V0LmdldEF0dHJpYnV0ZSgnZGF0 -YS1mZWxkJyk7CiAgICAgICAgICAgICAgICB2YXIgd3JhcCA9IGUudGFyZ2V0LmNsb3Nlc3QoJy5l -cnNjaGVpbnVuZy1zbGlkZXItd3JhcCcpOwogICAgICAgICAgICAgICAgaWYgKHdyYXApIHsKICAg -ICAgICAgICAgICAgICAgICB3cmFwLnF1ZXJ5U2VsZWN0b3JBbGwoJ1tkYXRhLWtleT0iJyArIGsg -KyAnIl1bZGF0YS1mZWxkPSInICsgZiArICciXScpLmZvckVhY2goZnVuY3Rpb24oaW5wKSB7CiAg -ICAgICAgICAgICAgICAgICAgICAgIGlmIChpbnAgIT09IGUudGFyZ2V0ICYmIGlucC52YWx1ZSAh -PT0gZS50YXJnZXQudmFsdWUpIGlucC52YWx1ZSA9IGUudGFyZ2V0LnZhbHVlOwogICAgICAgICAg -ICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAg -IHZvcnNjaGF1QWt0dWFsaXNpZXJlbigpOwogICAgICAgIH0pOwogICAgICAgIGRvY3VtZW50LmFk -ZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgaWYgKCFl -LnRhcmdldC5jbGFzc0xpc3QpIHJldHVybjsKICAgICAgICAgICAgaWYgKGUudGFyZ2V0LmNsYXNz -TGlzdC5jb250YWlucygnZXJzY2hlaW51bmctaW5wdXQnKSkgewogICAgICAgICAgICAgICAgdm9y -c2NoYXVBa3R1YWxpc2llcmVuKCk7CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgICBk -b2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKGUpIHsKICAgICAgICAg -ICAgaWYgKCFlLnRhcmdldCkgcmV0dXJuOwogICAgICAgICAgICB2YXIgZWwgPSBlLnRhcmdldDsK -ICAgICAgICAgICAgaWYgKGVsLmlkID09PSAnZXJzY2hlaW51bmctc3BlaWNoZXJuJykgeyBlcnNj -aGVpbnVuZ3NiaWxkU3BlaWNoZXJuKCk7IHJldHVybjsgfQogICAgICAgICAgICBpZiAoZWwuaWQg -PT09ICdlcnNjaGVpbnVuZy16dXJ1ZWNrc2V0emVuJykgeyBlcnNjaGVpbnVuZ3NiaWxkWnVydWVj -a3NldHplbigpOyByZXR1cm47IH0KICAgICAgICAgICAgaWYgKGVsLmNsYXNzTGlzdCAmJiBlbC5j -bGFzc0xpc3QuY29udGFpbnMoJ2Vyc2NoZWludW5nLWZsYXNoLXRlc3QnKSkgeyBzeW5jRmxhc2hW -b3JzY2hhdSgpOyByZXR1cm47IH0KICAgICAgICAgICAgLy8gVGFiLVdlY2hzZWwgaW0gbmV1ZW4g -TGF5b3V0IChLbGljayBhdWYgVGFiLUJ1dHRvbiBvZGVyIHNlaW5lbiBJbmhhbHQpCiAgICAgICAg -ICAgIHZhciB0YWJCdG4gPSBlbC5jbG9zZXN0ICYmIGVsLmNsb3Nlc3QoJ1tkYXRhLWVyc2NoZWlu -dW5nLXRhYl0nKTsKICAgICAgICAgICAgaWYgKHRhYkJ0bikgeyBlcnNjaGVpbnVuZ3NUYWJXZWNo -c2Vsbih0YWJCdG4uZ2V0QXR0cmlidXRlKCdkYXRhLWVyc2NoZWludW5nLXRhYicpKTsgcmV0dXJu -OyB9CiAgICAgICAgICAgIC8vIEtsaWNrIGF1ZiBlaW5lIFZvcnNjaGF1LVplaWxlIHdlY2hzZWx0 -IGViZW5mYWxscyBkZW4gRWRpdG9yLVRhYgogICAgICAgICAgICB2YXIgdm9yc2NoYXVaZWlsZSA9 -IGVsLmNsb3Nlc3QgJiYgZWwuY2xvc2VzdCgnLmVyc2NoZWludW5nLXZvcnNjaGF1LXplaWxlJyk7 -CiAgICAgICAgICAgIGlmICh2b3JzY2hhdVplaWxlICYmIHZvcnNjaGF1WmVpbGUuZ2V0QXR0cmli -dXRlKCdkYXRhLXR5cCcpKSB7CiAgICAgICAgICAgICAgICBlcnNjaGVpbnVuZ3NUYWJXZWNoc2Vs -bih2b3JzY2hhdVplaWxlLmdldEF0dHJpYnV0ZSgnZGF0YS10eXAnKSk7CiAgICAgICAgICAgICAg -ICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8gRmFyYi1YIChUb2dnbGUgbGVl -ci9TdGFuZGFyZCkKICAgICAgICAgICAgaWYgKGVsLmNsYXNzTGlzdCAmJiBlbC5jbGFzc0xpc3Qu -Y29udGFpbnMoJ2Vyc2NoZWludW5nLWZhcmIteCcpKSB7CiAgICAgICAgICAgICAgICBlcnNjaGVp -bnVuZ0ZhcmJlVG9nZ2xlKGVsLmdldEF0dHJpYnV0ZSgnZGF0YS1rZXknKSwgZWwuZ2V0QXR0cmli -dXRlKCdkYXRhLWZlbGQnKSk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0K -ICAgICAgICAgICAgLy8gVHlwLVJlc2V0IChwcm8gYWt0aXZlbSBCbG9jaykKICAgICAgICAgICAg -aWYgKGVsLmNsYXNzTGlzdCAmJiBlbC5jbGFzc0xpc3QuY29udGFpbnMoJ2Vyc2NoZWludW5nLXR5 -cC1yZXNldCcpKSB7CiAgICAgICAgICAgICAgICBlcnNjaGVpbnVuZ3NUeXBadXJ1ZWNrc2V0emVu -KGVsLmdldEF0dHJpYnV0ZSgnZGF0YS10eXAnKSk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAg -ICAgICAgICAgIH0KICAgICAgICB9KTsKCiAgICAgICAgLy8gRmVhdHVyZS1Ub2dnbGVzCiAgICAg -ICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgZnVuY3Rpb24oZSkgewogICAg -ICAgICAgICBpZiAoIWUudGFyZ2V0LmNsYXNzTGlzdC5jb250YWlucygnZmVhdHVyZS1jaGVja2Jv -eCcpKSByZXR1cm47CiAgICAgICAgICAgIHZhciBrZXkgPSBlLnRhcmdldC5nZXRBdHRyaWJ1dGUo -J2RhdGEtZmVhdHVyZScpOwogICAgICAgICAgICBpZiAoIVouYWRtaW4uZmVhdHVyZXMpIFouYWRt -aW4uZmVhdHVyZXMgPSB7fTsKICAgICAgICAgICAgWi5hZG1pbi5mZWF0dXJlc1trZXldID0gZS50 -YXJnZXQuY2hlY2tlZDsKICAgICAgICAgICAgYXBpUHV0KCcvYXBpL2FkbWluJywgWi5hZG1pbiku -dGhlbihmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgIHRvYXN0KGZlYXR1cmVMYWJlbHNba2V5 -XS5sYWJlbCArIChlLnRhcmdldC5jaGVja2VkID8gJyBha3RpdmllcnQnIDogJyBkZWFrdGl2aWVy -dCcpLCAnZXJmb2xnJyk7CiAgICAgICAgICAgICAgICBmZWF0dXJlc1JlbmRlcm4oKTsKICAgICAg -ICAgICAgICAgIGlmICh0eXBlb2Yga29wZlJlbmRlcm4gPT09ICdmdW5jdGlvbicpIGtvcGZSZW5k -ZXJuKCk7CiAgICAgICAgICAgICAgICBpZiAoWi5zdGF0aXN0aWspIHN0YXRpc3Rpa1JlbmRlcm4o -KTsKICAgICAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oZXJyKSB7IHRvYXN0KCdGZWhsZXI6ICcg -KyBlcnIubWVzc2FnZSwgJ2ZlaGxlcicpOyB9KTsKICAgICAgICB9KTsKCiAgICAgICAgLy8gR2xv -YmFsZSAiU2ljaHRiYXJrZWl0IGZ1ZXIgcmVndWxhZXJlIEFkbWlucyItVG9nZ2xlcyB3dXJkZW4K -ICAgICAgICAvLyAyMDI2LTA1LTIzIGVudGZlcm50IOKAlCBzaWVoZSBhZG1pbi5qcyBTdHViLUtv -bW1lbnRhci4KCiAgICAgICAgLy8gVGVzdGRhdGVuIOKAlCBhbmltaWVydGUgRm9ydHNjaHJpdHRz -LUJveCAoU3Bpbm5lciArIHVuYmVzdGltbXRlciBCYWxrZW4pCiAgICAgICAgLy8gc3RhdHQgc3Rh -dGlzY2hlbSBUZXh0LCBkYSBSZXNldC9EdW1teWRhdGVuIGplIG5hY2ggUEMgMS0yIHMgZGF1ZXJu -LgogICAgICAgIGZ1bmN0aW9uIHRlc3RkYXRlbkZvcnRzY2hyaXR0WmVpZ2VuKGVyZywgdGV4dCkg -ewogICAgICAgICAgICBlcmcuY2xhc3NOYW1lID0gJ2dlbi1wcm9ncmVzcy13cmFwJzsKICAgICAg -ICAgICAgZXJnLmlubmVySFRNTCA9ICc8ZGl2IGNsYXNzPSJnZW4tcHJvZ3Jlc3MtbGFiZWwiPicg -KyBlc2NhcGVIVE1MKHRleHQpICsgJzwvZGl2PicgKwogICAgICAgICAgICAgICAgICAgICAgICAg -ICAgJzxkaXYgY2xhc3M9Imdlbi1wcm9ncmVzcy1iYXIiPjxzcGFuPjwvc3Bhbj48L2Rpdj4nOwog -ICAgICAgICAgICBlcmcuY2xhc3NMaXN0LnJlbW92ZSgndmVyc3RlY2t0Jyk7CiAgICAgICAgfQog -ICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdidG4tZHVtbXlkYXRlbicpLmFkZEV2ZW50 -TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGJlc3RhZXRpZ2VuKAog -ICAgICAgICAgICAgICAgJ0R1bW15ZGF0ZW4gZWluc3BpZWxlbj9cblxuRGllcyDDvGJlcnNjaHJl -aWJ0IGFsbGUgYmVzdGVoZW5kZW4gRWludHLDpGdlIChKYW7igJNBcHIgMjAyNikuXG5FaW4gQmFj -a3VwIHdpcmQgYXV0b21hdGlzY2ggZXJzdGVsbHQuJywKICAgICAgICAgICAgICAgIGZ1bmN0aW9u -KCkgewogICAgICAgICAgICAgICAgICAgIHZhciBlcmcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ -ZCgndGVzdGRhdGVuLWVyZ2VibmlzJyk7CiAgICAgICAgICAgICAgICAgICAgdGVzdGRhdGVuRm9y -dHNjaHJpdHRaZWlnZW4oZXJnLCAnRHVtbXlkYXRlbiB3ZXJkZW4gZ2VuZXJpZXJ0IOKApicpOwog -ICAgICAgICAgICAgICAgICAgIGFwaVBvc3QoJy9hcGkvcGxhbnVuZy9kdW1teWRhdGVuJywge30p -LnRoZW4oZnVuY3Rpb24ocikgewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgbGJsID0gZXJn -LnF1ZXJ5U2VsZWN0b3IoJy5nZW4tcHJvZ3Jlc3MtbGFiZWwnKTsKICAgICAgICAgICAgICAgICAg -ICAgICAgaWYgKGxibCkgbGJsLnRleHRDb250ZW50ID0gJ0RhdGVuIGVyemV1Z3Qg4oCUIEFuc2lj -aHQgd2lyZCBha3R1YWxpc2llcnQg4oCmJzsKICAgICAgICAgICAgICAgICAgICAgICAgLy8gRGly -ZWt0IG5ldSByZW5kZXJuIHN0YXR0IHNldFRpbWVvdXQrRjU6IGRhdGVuTGFkZW4gaG9sdCBkaWUK -ICAgICAgICAgICAgICAgICAgICAgICAgLy8gZnJpc2NoZW4gRGF0ZW4sIGdyaWRSZW5kZXJuIGJh -dXQgZGllIFRhZmVsIGtvbXBsZXR0IG5ldSBhdWYuCiAgICAgICAgICAgICAgICAgICAgICAgIHJl -dHVybiBkYXRlbkxhZGVuKCkudGhlbihmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICAg -ICAgICAgIGdyaWRSZW5kZXJuKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcmcuY2xh -c3NOYW1lID0gJ2dlbi1lcmZvbGcnOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJnLnRl -eHRDb250ZW50ID0gKHIgJiYgci5laW50cmFlZ2UgIT0gbnVsbCA/IHIuZWludHJhZWdlICsgJyBF -aW50csOkZ2UgZ2VuZXJpZXJ0LiAnIDogJ0R1bW15ZGF0ZW4gZ2VuZXJpZXJ0LiAnKSArCiAgICAg -ICAgICAgICAgICAgICAgICAgICAgICAgICAgKHIgJiYgci5iYWNrdXAgPyAnQmFja3VwIGdlc2lj -aGVydDogJyArIHIuYmFja3VwICsgJy4nIDogJ0VpbiBCYWNrdXAgd3VyZGUgZ2VzaWNoZXJ0Licp -OwogICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICB9KS5jYXRj -aChmdW5jdGlvbihlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGVyZy5jbGFzc05hbWUgPSAn -Z2VuLWZlaGxlcic7CiAgICAgICAgICAgICAgICAgICAgICAgIGVyZy50ZXh0Q29udGVudCA9ICdG -ZWhsZXI6ICcgKyAoZSAmJiBlLm1lc3NhZ2UgPyBlLm1lc3NhZ2UgOiBlKTsKICAgICAgICAgICAg -ICAgICAgICB9KTsKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7IHRpdGVsOiAn -RHVtbXlkYXRlbiBlaW5zcGllbGVuJywgamFUZXh0OiAnRWluc3BpZWxlbicsIGphRGFuZ2VyOiB0 -cnVlIH0KICAgICAgICAgICAgKTsKICAgICAgICB9KTsKICAgICAgICBkb2N1bWVudC5nZXRFbGVt -ZW50QnlJZCgnYnRuLXJlc2V0JykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigp -IHsKICAgICAgICAgICAgYmVzdGFldGlnZW4oCiAgICAgICAgICAgICAgICAnUGxhbnVuZyB3aXJr -bGljaCB6dXLDvGNrc2V0emVuP1xuXG5BTExFIEVpbnRyw6RnZSB1bmQgS29tbWVudGFyZSB3ZXJk -ZW4gZ2Vsw7ZzY2h0IVxuUGVyc29uZW4gdW5kIEVpbnN0ZWxsdW5nZW4gYmxlaWJlbiBlcmhhbHRl -bi5cbkVpbiBCYWNrdXAgd2lyZCBhdXRvbWF0aXNjaCBlcnN0ZWxsdC4nLAogICAgICAgICAgICAg -ICAgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIGVyZyA9IGRvY3VtZW50Lmdl -dEVsZW1lbnRCeUlkKCd0ZXN0ZGF0ZW4tZXJnZWJuaXMnKTsKICAgICAgICAgICAgICAgICAgICB0 -ZXN0ZGF0ZW5Gb3J0c2Nocml0dFplaWdlbihlcmcsICdQbGFudW5nIHdpcmQgenVyw7xja2dlc2V0 -enQg4oCmJyk7CiAgICAgICAgICAgICAgICAgICAgYXBpUG9zdCgnL2FwaS9wbGFudW5nL3Jlc2V0 -Jywge30pLnRoZW4oZnVuY3Rpb24ocikgewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgbGJs -ID0gZXJnLnF1ZXJ5U2VsZWN0b3IoJy5nZW4tcHJvZ3Jlc3MtbGFiZWwnKTsKICAgICAgICAgICAg -ICAgICAgICAgICAgaWYgKGxibCkgbGJsLnRleHRDb250ZW50ID0gJ0dlbGVlcnQg4oCUIEFuc2lj -aHQgd2lyZCBha3R1YWxpc2llcnQg4oCmJzsKICAgICAgICAgICAgICAgICAgICAgICAgLy8gUGxh -bnVuZy1SZXNldCBlcnpldWd0IHNlaXQgUGhhc2UgNCAoMjAyNi0wNS0yMCkgZWluZW4KICAgICAg +ICAgfSk7CiAgICAgICAgdmFyIGJ0blNtRGVmYXVsdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk +KCdidG4tc3VwcG9ydG1haWwtZGVmYXVsdCcpOwogICAgICAgIGlmIChidG5TbURlZmF1bHQpIGJ0 +blNtRGVmYXVsdC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCkgewogICAgICAg +ICAgICBiZXN0YWV0aWdlbignVm9ybGFnZSBrb21wbGV0dCBhdWYgZGVuIGVpbmdlYmF1dGVuIERl +ZmF1bHQgenVyw7xja3NldHplbj9cblxuRGVpbmUgYWt0dWVsbGVuIMOEbmRlcnVuZ2VuIGdlaGVu +IHZlcmxvcmVuLicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgYXBpUHV0KCcvYXBpL2Fk +bWluL2VpbnN0ZWxsdW5nZW4nLCB7IHN1cHBvcnRNYWlsVGV4dDogJycgfSkudGhlbihmdW5jdGlv +bigpIHsKICAgICAgICAgICAgICAgICAgICBaLmFkbWluLnN1cHBvcnRNYWlsVGV4dCA9ICcnOwog +ICAgICAgICAgICAgICAgICAgIHZhciB0YSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdXBw +b3J0bWFpbC10ZXh0Jyk7CiAgICAgICAgICAgICAgICAgICAgaWYgKHRhKSB0YS52YWx1ZSA9ICcn +OwogICAgICAgICAgICAgICAgICAgIGlmIChzbURpcnR5KSBzbURpcnR5LnN0eWxlLmRpc3BsYXkg +PSAnbm9uZSc7CiAgICAgICAgICAgICAgICAgICAgdG9hc3QoJ0F1ZiBEZWZhdWx0IHp1csO8Y2tn +ZXNldHp0JywgJ2VyZm9sZycpOwogICAgICAgICAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oZSkg +eyB0b2FzdCgnRmVobGVyOiAnICsgZS5tZXNzYWdlLCAnZmVobGVyJyk7IH0pOwogICAgICAgICAg +ICB9LCB7IHRpdGVsOiAnRGVmYXVsdC1Wb3JsYWdlIHdpZWRlcmhlcnN0ZWxsZW4nLCBqYVRleHQ6 +ICdadXLDvGNrc2V0emVuJywgamFEYW5nZXI6IHRydWUgfSk7CiAgICAgICAgfSk7CiAgICAgICAg +dmFyIGJ0blNtVm9yc2NoYXUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnRuLXN1cHBvcnRt +YWlsLXZvcnNjaGF1Jyk7CiAgICAgICAgaWYgKGJ0blNtVm9yc2NoYXUpIGJ0blNtVm9yc2NoYXUu +YWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgLy8gQWt0 +dWVsbGUgRWluZ2FiZSB0ZW1wb3JhZXIgYWxzIFZvcmxhZ2UgYmVudXR6ZW4g4oCUIGF1Y2ggd2Vu +bgogICAgICAgICAgICAvLyBub2NoIG5pY2h0IGdlc3BlaWNoZXJ0OyBzcGFydCBkYXMgImVyc3Qg +c3BlaWNoZXJuLCBkYW5uCiAgICAgICAgICAgIC8vIHRlc3RlbiItSGluLXVuZC1IZXIuCiAgICAg +ICAgICAgIHZhciB0YSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdXBwb3J0bWFpbC10ZXh0 +Jyk7CiAgICAgICAgICAgIHZhciBhbHQgPSBaLmFkbWluLnN1cHBvcnRNYWlsVGV4dDsKICAgICAg +ICAgICAgaWYgKHRhICYmIHRhLnZhbHVlLnRyaW0oKSkgWi5hZG1pbi5zdXBwb3J0TWFpbFRleHQg +PSB0YS52YWx1ZTsKICAgICAgICAgICAgdmFyIG1haWx0byA9ICdtYWlsdG86cGhpbGlwcC5yb2Vz +Z2VuQHBvbGl6ZWkubnJ3LmRlJwogICAgICAgICAgICAgICAgKyAnP3N1YmplY3Q9JyArIGVuY29k +ZVVSSUNvbXBvbmVudCgnVkkzIERHTCBQbGFudW5nIC0gRG9ydG11bmQnKQogICAgICAgICAgICAg +ICAgKyAnJmJvZHk9JyArIGVuY29kZVVSSUNvbXBvbmVudChzdXBwb3J0TWFpbEJvZHlCYXVlbigp +KTsKICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBtYWlsdG87CiAgICAgICAgICAg +IC8vIFN0YXRlIHp1cnVlY2tyb2xsZW4sIGRhbWl0IFZvcnNjaGF1IG5pY2h0IHZlcnNlaGVudGxp +Y2ggcGVyc2lzdGllcnQKICAgICAgICAgICAgWi5hZG1pbi5zdXBwb3J0TWFpbFRleHQgPSBhbHQ7 +CiAgICAgICAgfSk7CgogICAgICAgIC8vIEphaHIgd2VjaHNlbG46IFBsYW51bmdzamFociBhdWYg +ZGFzIGltIEZlbGQgR0VXw4RITFRFIEphaHIgc2V0emVuIOKAlCB2b3IKICAgICAgICAvLyBPREVS +IHp1csO8Y2suIERhdGVuIG5ldSBsYWRlbiwgYWxsZSBWaWV3cyByZW5kZXJuLiBFaW50cmFlZ2Ug +YmxlaWJlbgogICAgICAgIC8vIHVudGVyIGlocmVuIGFic29sdXRlbiBEYXR1bXNzY2hsdWVzc2Vs +biBlcmhhbHRlbiAoa2VpbiBEYXRlbnZlcmx1c3QpOwogICAgICAgIC8vIGRlciBCdWZmZXItSmFu +dWFyIGRlcyBGb2xnZWphaHJlcyB3aXJkIGluIGRlciBuZXVlbiBBbnNpY2h0IHNpY2h0YmFyLgog +ICAgICAgIC8vIChGcnVlaGVyOiBoYXJ0ZXMgYWx0KzEg4oCUIGlnbm9yaWVydGUgZGllIEF1c3dh +aGwgdW5kIHNwcmFuZyB6LkIuIHZvbgogICAgICAgIC8vICAyMDI3IHRyb3R6IEVpbmdhYmUgMjAy +NiBhdWYgMjAyOC4gSmV0enQgemllbGdlbmF1LikKICAgICAgICB2YXIgYnRuSmFocmVzd2VjaHNl +bCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdidG4tamFocmVzd2VjaHNlbCcpOwogICAgICAg +IGlmIChidG5KYWhyZXN3ZWNoc2VsKSBidG5KYWhyZXN3ZWNoc2VsLmFkZEV2ZW50TGlzdGVuZXIo +J2NsaWNrJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHZhciBhbHQgPSBaLmFkbWluLmphaHIg +fHwgbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpOwogICAgICAgICAgICB2YXIgZmVsZCA9IGRvY3Vt +ZW50LmdldEVsZW1lbnRCeUlkKCdlaW5zLWphaHInKTsKICAgICAgICAgICAgdmFyIG5ldSA9IHBh +cnNlSW50KGZlbGQgPyBmZWxkLnZhbHVlIDogJycsIDEwKTsKICAgICAgICAgICAgaWYgKCFuZXUg +fHwgbmV1IDwgMjAyMCB8fCBuZXUgPiAyMDk5KSB7CiAgICAgICAgICAgICAgICB0b2FzdCgnQml0 +dGUgZWluIGfDvGx0aWdlcyBKYWhyIHp3aXNjaGVuIDIwMjAgdW5kIDIwOTkgd8OkaGxlbicsICd3 +YXJudW5nJyk7CiAgICAgICAgICAgICAgICBpZiAoZmVsZCkgZmVsZC52YWx1ZSA9IGFsdDsKICAg +ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAobmV1ID09 +PSBhbHQpIHsKICAgICAgICAgICAgICAgIHRvYXN0KCdEYXMgUGxhbnVuZ3NqYWhyIGlzdCBiZXJl +aXRzICcgKyBhbHQgKyAnLicsICdpbmZvJyk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAg +ICAgICAgIH0KICAgICAgICAgICAgdmFyIHJpY2h0dW5nID0gbmV1ID4gYWx0ID8gJ3ZvcicgOiAn +enVyw7xjayc7CiAgICAgICAgICAgIGJlc3RhZXRpZ2VuKCdQbGFudW5nc2phaHIgdm9uICcgKyBh +bHQgKyAnIGF1ZiAnICsgbmV1ICsgJyB3ZWNoc2VsbiAoJyArIHJpY2h0dW5nICsgJyk/XG5cbicg +KwogICAgICAgICAgICAgICAgJ0RpZSBQbGFudW5nc2Fuc2ljaHQgemVpZ3QgZGFuYWNoIEphbnVh +ciAnICsgbmV1ICsgJyBiaXMgSmFudWFyICcgKyAobmV1ICsgMSkgKyAnLlxuJyArCiAgICAgICAg +ICAgICAgICAnS2VpbiBEYXRlbnZlcmx1c3Qg4oCUIGFsbGUgRWludHLDpGdlIGJsZWliZW4gdW50 +ZXIgaWhyZW0gRGF0dW0gZXJoYWx0ZW4uJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICBh +cGlQdXQoJy9hcGkvYWRtaW4vZWluc3RlbGx1bmdlbicsIHsgamFocjogbmV1IH0pLnRoZW4oZnVu +Y3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAgdG9hc3QoJ1BsYW51bmdzamFociAnICsgbmV1 +ICsgJyDigJQgU2VpdGUgd2lyZCBuZXUgZ2VsYWRlbicsICdlcmZvbGcnKTsKICAgICAgICAgICAg +ICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7 +IH0sIDgwMCk7CiAgICAgICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlKSB7IHRvYXN0KCdG +ZWhsZXI6ICcgKyBlLm1lc3NhZ2UsICdmZWhsZXInKTsgfSk7CiAgICAgICAgICAgIH0sIHsgdGl0 +ZWw6ICdKYWhyIHdlY2hzZWxuJywgamFUZXh0OiAnV2VjaHNlbG4nIH0pOwogICAgICAgIH0pOwoK +ICAgICAgICAvLyBGZWllcnRhZ2UKICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnRu +LWZlaWVydGFnLW5ldScpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKSB7CiAg +ICAgICAgICAgIFouYWRtaW4uZmVpZXJ0YWdlID0gWi5hZG1pbi5mZWllcnRhZ2UgfHwgW107CiAg +ICAgICAgICAgIC8vIEVyc3QgYWt0dWVsbCBzaWNodGJhcmUgRWluZ2FiZW4gaW5zIE1vZGVsbCB6 +dXJ1ZWNrc3BpZWxlbiwgZGFtaXQKICAgICAgICAgICAgLy8gdW5iZWthbm50ZSBFZGl0cyBiZWlt +IFJlLVJlbmRlciBuaWNodCB2ZXJsb3JlbiBnZWhlbi4KICAgICAgICAgICAgdmFyIGFrdHVlbGwg +PSBmZWllcnRhZ2VBdXNUYWJlbGxlTGVzZW4oKTsKICAgICAgICAgICAgaWYgKGFrdHVlbGwubGVu +Z3RoKSBaLmFkbWluLmZlaWVydGFnZSA9IGFrdHVlbGw7CiAgICAgICAgICAgIC8vIERlZmF1bHQt +S2F0ZWdvcmllIGF1cyBkZW0gYWt0dWVsbGVuIEZpbHRlciAoZmFsbHMgZWluZSBiZXN0aW1tdGUK +ICAgICAgICAgICAgLy8gS2F0ZWdvcmllIGdlZmlsdGVydCBpc3QpLCBzb25zdCBnZXNldHpsaWNo +LgogICAgICAgICAgICB2YXIga2F0RmlsdGVyID0gKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdm +ZWllcnRhZ2UtZmlsdGVyLWthdGVnb3JpZScpIHx8IHt9KS52YWx1ZTsKICAgICAgICAgICAgdmFy +IGthdE5ldSA9IChrYXRGaWx0ZXIgJiYga2F0RmlsdGVyICE9PSAnYWxsZScpID8ga2F0RmlsdGVy +IDogJ2dlc2V0emxpY2gnOwogICAgICAgICAgICBaLmFkbWluLmZlaWVydGFnZS5wdXNoKHsKICAg +ICAgICAgICAgICAgIGRhdHVtOiAnJywKICAgICAgICAgICAgICAgIGJlemVpY2hudW5nOiAnJywK +ICAgICAgICAgICAgICAgIGthdGVnb3JpZToga2F0TmV1LAogICAgICAgICAgICAgICAgYWt0aXY6 +IHRydWUsCiAgICAgICAgICAgICAgICB3aWNodGlnOiBmYWxzZSwKICAgICAgICAgICAgICAgIGlj +b246ICcnLAogICAgICAgICAgICAgICAga3VyemJlc2NocmVpYnVuZzogJycsCiAgICAgICAgICAg +ICAgICBpbmZvVXJsOiAnJwogICAgICAgICAgICB9KTsKICAgICAgICAgICAgZmVpZXJ0YWdlVGFi +ZWxsZVJlbmRlcm4oKTsKICAgICAgICB9KTsKICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ +ZCgnZmVpZXJ0YWdlLXRib2R5JykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbihl +KSB7CiAgICAgICAgICAgIC8vIEljb24tUGlja2VyIChhbmFsb2cgenUgU29uZGVydGVybWluZW4p +LiBTZXR6dCBkYXMgaGlkZGVuIGZpZWxkCiAgICAgICAgICAgIC8vICdpY29uJyB1bmQgYWt0dWFs +aXNpZXJ0IGRlbiBCdXR0b24tVGV4dC4gUmVzZXQgYXVmIEthdGVnb3JpZS1EZWZhdWx0CiAgICAg +ICAgICAgIC8vIGVyZm9sZ3QsIGluZGVtIGRlciBVc2VyIGltIFBpY2tlciBkYXMgUmVzZXQtU3lt +Ym9sIHdhZWhsdCDigJQgZGEKICAgICAgICAgICAgLy8gZW1vamlQaWNrZXJaZWlnZW4gZGFzIG5p +Y2h0IGRpcmVrdCBhbmJpZXRldCwga2FubiBkZXIgVXNlciBhdWNoCiAgICAgICAgICAgIC8vIGRh +cyBha3R1ZWxsZSBJY29uLUZlbGQgbWFudWVsbCBsZWVyZW4gdWViZXIgRGV2VG9vbHM7IGVpbmZh +Y2hzdGUKICAgICAgICAgICAgLy8gUHJheGlzLUxvZXN1bmc6IGVpbmZhY2ggZWluIGFuZGVyZXMg +SWNvbiB3YWVobGVuLgogICAgICAgICAgICB2YXIgaWNvbkJ0biA9IGUudGFyZ2V0LmNsb3Nlc3Qo +Jy5mZWllcnRhZy1pY29uLWJ0bicpOwogICAgICAgICAgICBpZiAoaWNvbkJ0bikgewogICAgICAg +ICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTsKICAgICAgICAgICAgICAgIGVtb2ppUGlja2Vy +WmVpZ2VuKGljb25CdG4sIGZ1bmN0aW9uKHYpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgaWR4 +ID0gaWNvbkJ0bi5nZXRBdHRyaWJ1dGUoJ2RhdGEtaWR4Jyk7CiAgICAgICAgICAgICAgICAgICAg +dmFyIGhpZGRlbiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5mZWllcnRhZy1pbnB1dFtkYXRh +LWZlbGQ9Imljb24iXVtkYXRhLWlkeD0iJyArIGlkeCArICciXScpOwogICAgICAgICAgICAgICAg +ICAgIGlmIChoaWRkZW4pIHsKICAgICAgICAgICAgICAgICAgICAgICAgaGlkZGVuLnZhbHVlID0g +diB8fCAnJzsKICAgICAgICAgICAgICAgICAgICAgICAgaGlkZGVuLmRpc3BhdGNoRXZlbnQobmV3 +IEV2ZW50KCdjaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUgfSkpOwogICAgICAgICAgICAgICAgICAg +IH0KICAgICAgICAgICAgICAgICAgICBpY29uQnRuLnRleHRDb250ZW50ID0gdiB8fCAn4oCUJzsK +ICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9 +CiAgICAgICAgICAgIHZhciBpbmZvQnRuID0gZS50YXJnZXQuY2xvc2VzdCgnLmZlaWVydGFnLWlu +Zm8tYnRuJyk7CiAgICAgICAgICAgIGlmIChpbmZvQnRuKSB7CiAgICAgICAgICAgICAgICBlLnN0 +b3BQcm9wYWdhdGlvbigpOwogICAgICAgICAgICAgICAgZmVpZXJ0YWdlSW5mb01vZGFsWmVpZ2Vu +KGluZm9CdG4uZ2V0QXR0cmlidXRlKCdkYXRhLWlkeCcpKTsKICAgICAgICAgICAgICAgIHJldHVy +bjsKICAgICAgICAgICAgfQogICAgICAgICAgICB2YXIgYnRuID0gZS50YXJnZXQuY2xvc2VzdCgn +W2RhdGEtYWt0aW9uPSJmZWllcnRhZy1sb2VzY2hlbiJdJyk7CiAgICAgICAgICAgIGlmIChidG4p +IHsgWi5hZG1pbi5mZWllcnRhZ2Uuc3BsaWNlKHBhcnNlSW50KGJ0bi5nZXRBdHRyaWJ1dGUoJ2Rh +dGEtaWR4JykpLCAxKTsgZmVpZXJ0YWdlVGFiZWxsZVJlbmRlcm4oKTsgfQogICAgICAgIH0pOwog +ICAgICAgIC8vIEZpbHRlciAoS2F0ZWdvcmllIC8gSmFociAvIG51ciBha3RpdmUpCiAgICAgICAg +WydmZWllcnRhZ2UtZmlsdGVyLWthdGVnb3JpZScsICdmZWllcnRhZ2UtZmlsdGVyLWphaHInLCAn +ZmVpZXJ0YWdlLWZpbHRlci1udXItYWt0aXYnXS5mb3JFYWNoKGZ1bmN0aW9uKGlkKSB7CiAgICAg +ICAgICAgIHZhciBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTsKICAgICAgICAgICAg +aWYgKGVsKSBlbC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBmZWllcnRhZ2VGaWx0ZXJBbndl +bmRlbik7CiAgICAgICAgfSk7CiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2J0bi1m +ZWllcnRhZ2Utc3BlaWNoZXJuJykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigp +IHsKICAgICAgICAgICAgdmFyIGRhdGVuID0gZmVpZXJ0YWdlQXVzVGFiZWxsZUxlc2VuKCk7CiAg +ICAgICAgICAgIGFwaVB1dCgnL2FwaS9hZG1pbi9mZWllcnRhZ2UnLCBkYXRlbikudGhlbihmdW5j +dGlvbigpIHsKICAgICAgICAgICAgICAgIFouYWRtaW4uZmVpZXJ0YWdlID0gZGF0ZW47CiAgICAg +ICAgICAgICAgICB0YWdJbmZvc0JlcmVjaG5lbigpOwogICAgICAgICAgICAgICAga29wZlJlbmRl +cm4oKTsgICAgICAgIC8vIEZlaWVydGFncy1IaWdobGlnaHQgaW4gZGVyIEhhdXB0cGxhbnVuZ3Mt +SGVhZGVyLVplaWxlIGF1ZmZyaXNjaGVuCiAgICAgICAgICAgICAgICBkaXJ0eVNldHplbignZmVp +ZXJ0YWdlJywgZmFsc2UpOwogICAgICAgICAgICAgICAgLy8gIk51ciBha3RpdmUgemVpZ2VuIi1G +aWx0ZXIgenVydWVja3NldHplbiDigJQgc29uc3Qgc2llaHQgZGVyIFVzZXIKICAgICAgICAgICAg +ICAgIC8vIGdlcmFkZSBoaW56dWdlZnVlZ3RlIChpbmFrdGl2ZSkgRmVpZXJ0YWdlIG5hY2ggZGVt +IFNhdmUgbmljaHQKICAgICAgICAgICAgICAgIC8vIHVuZCBnbGF1YnQsIGRpZSBMaXN0ZSBzZWkg +dmVyc2Nod3VuZGVuLgogICAgICAgICAgICAgICAgdmFyIG51ckFrdGl2ID0gZG9jdW1lbnQuZ2V0 +RWxlbWVudEJ5SWQoJ2ZlaWVydGFnZS1maWx0ZXItbnVyLWFrdGl2Jyk7CiAgICAgICAgICAgICAg +ICBpZiAobnVyQWt0aXYgJiYgbnVyQWt0aXYuY2hlY2tlZCkgewogICAgICAgICAgICAgICAgICAg +IG51ckFrdGl2LmNoZWNrZWQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICBmZWllcnRhZ2VG +aWx0ZXJBbndlbmRlbigpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdG9hc3Qo +J0ZlaWVydGFnZSBnZXNwZWljaGVydCcsICdlcmZvbGcnKTsKICAgICAgICAgICAgfSkuY2F0Y2go +ZnVuY3Rpb24oZSkgeyB0b2FzdCgnRmVobGVyOiAnICsgZS5tZXNzYWdlLCAnZmVobGVyJyk7IH0p +OwogICAgICAgIH0pOwoKICAgICAgICAvLyBGZXJpZW4KICAgICAgICBkb2N1bWVudC5nZXRFbGVt +ZW50QnlJZCgnYnRuLWZlcmllbi1uZXUnKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0 +aW9uKCkgewogICAgICAgICAgICBaLmFkbWluLmZlcmllbiA9IFouYWRtaW4uZmVyaWVuIHx8IFtd +OwogICAgICAgICAgICBaLmFkbWluLmZlcmllbi5wdXNoKHsgdm9uOiAnJywgYmlzOiAnJywgbmFt +ZTogJycgfSk7CiAgICAgICAgICAgIGZlcmllblRhYmVsbGVSZW5kZXJuKCk7CiAgICAgICAgfSk7 +CiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Zlcmllbi10Ym9keScpLmFkZEV2ZW50 +TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oZSkgewogICAgICAgICAgICB2YXIgYnRuID0gZS50 +YXJnZXQuY2xvc2VzdCgnW2RhdGEtYWt0aW9uPSJmZXJpZW4tbG9lc2NoZW4iXScpOwogICAgICAg +ICAgICBpZiAoYnRuKSB7IFouYWRtaW4uZmVyaWVuLnNwbGljZShwYXJzZUludChidG4uZ2V0QXR0 +cmlidXRlKCdkYXRhLWlkeCcpKSwgMSk7IGZlcmllblRhYmVsbGVSZW5kZXJuKCk7IH0KICAgICAg +ICB9KTsKICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnRuLWZlcmllbi1zcGVpY2hl +cm4nKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICB2 +YXIgZGF0ZW4gPSBmZXJpZW5BdXNUYWJlbGxlTGVzZW4oKTsKICAgICAgICAgICAgYXBpUHV0KCcv +YXBpL2FkbWluL2ZlcmllbicsIGRhdGVuKS50aGVuKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAg +ICAgWi5hZG1pbi5mZXJpZW4gPSBkYXRlbjsKICAgICAgICAgICAgICAgIHRhZ0luZm9zQmVyZWNo +bmVuKCk7CiAgICAgICAgICAgICAgICBrb3BmUmVuZGVybigpOyAgICAgICAgLy8gRmVyaWVuLU1h +cmtpZXJ1bmcgaW4gZGVyIEhhdXB0cGxhbnVuZ3MtSGVhZGVyLVplaWxlIGF1ZmZyaXNjaGVuCiAg +ICAgICAgICAgICAgICBkaXJ0eVNldHplbignZmVyaWVuJywgZmFsc2UpOwogICAgICAgICAgICAg +ICAgdGFiRHJhZnRMb2VzY2hlbignZmVyaWVuJyk7CiAgICAgICAgICAgICAgICB0b2FzdCgnRmVy +aWVuIGdlc3BlaWNoZXJ0JywgJ2VyZm9sZycpOwogICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlv +bihlKSB7IHRvYXN0KCdGZWhsZXI6ICcgKyBlLm1lc3NhZ2UsICdmZWhsZXInKTsgfSk7CiAgICAg +ICAgfSk7CgogICAgICAgIC8vIFNvbmRlcnRlcm1pbmUg4oCUIE5ldWFubGFnZSDDtmZmbmV0IE1v +ZGFsCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2J0bi1zb25kZXJ0ZXJtaW4tbmV1 +JykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgc29u +ZGVyRWRpdE1vZGFsWmVpZ2VuKCcnKTsKICAgICAgICB9KTsKICAgICAgICBkb2N1bWVudC5nZXRF +bGVtZW50QnlJZCgnc29uZGVydGVybWluZS10Ym9keScpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNr +JywgZnVuY3Rpb24oZSkgewogICAgICAgICAgICB2YXIgYmVhcmIgPSBlLnRhcmdldC5jbG9zZXN0 +KCdbZGF0YS1ha3Rpb249InNvbmRlci1iZWFyYmVpdGVuIl0nKTsKICAgICAgICAgICAgaWYgKGJl +YXJiKSB7IHNvbmRlckVkaXRNb2RhbFplaWdlbihiZWFyYi5nZXRBdHRyaWJ1dGUoJ2RhdGEtaWQn +KSk7IHJldHVybjsgfQogICAgICAgICAgICB2YXIgbG9lc2NoID0gZS50YXJnZXQuY2xvc2VzdCgn +W2RhdGEtYWt0aW9uPSJzb25kZXItbG9lc2NoZW4iXScpOwogICAgICAgICAgICBpZiAobG9lc2No +KSB7CiAgICAgICAgICAgICAgICB2YXIgaWQgPSBsb2VzY2guZ2V0QXR0cmlidXRlKCdkYXRhLWlk +Jyk7CiAgICAgICAgICAgICAgICB2YXIgcyA9IHNvbmRlckJ5SWQoaWQpOwogICAgICAgICAgICAg +ICAgaWYgKCFzKSByZXR1cm47CiAgICAgICAgICAgICAgICB2YXIgc0xhYmVsID0gcy50aXRlbCB8 +fCBzb25kZXJUaXRlbEF1c1RleHQocy50ZXh0KSB8fCAnKG9obmUgVGl0ZWwpJzsKICAgICAgICAg +ICAgICAgIGJlc3RhZXRpZ2VuKCdIaW53ZWlzIOKAnicgKyBzTGFiZWwgKyAnIiAoJyArIHNvbmRl +ckRhdHVtTGFiZWwocykgKyAnKSB3aXJrbGljaCBsw7ZzY2hlbj8nLCBmdW5jdGlvbigpIHsKICAg +ICAgICAgICAgICAgICAgICB2YXIgbGlzdGUgPSAoWi5hZG1pbi5zb25kZXJ0ZXJtaW5lIHx8IFtd +KS5maWx0ZXIoZnVuY3Rpb24oeCkgeyByZXR1cm4geC5pZCAhPT0gaWQ7IH0pOwogICAgICAgICAg +ICAgICAgICAgIGFwaVB1dCgnL2FwaS9hZG1pbi9zb25kZXJ0ZXJtaW5lJywgbGlzdGUpLnRoZW4o +ZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIFouYWRtaW4uc29uZGVydGVybWlu +ZSA9IGxpc3RlOwogICAgICAgICAgICAgICAgICAgICAgICB0YWdJbmZvc0JlcmVjaG5lbigpOwog +ICAgICAgICAgICAgICAgICAgICAgICBrb3BmUmVuZGVybigpOwogICAgICAgICAgICAgICAgICAg +ICAgICBzb25kZXJ0ZXJtaW5lUmVuZGVybigpOwogICAgICAgICAgICAgICAgICAgICAgICB0b2Fz +dCgnSGlud2VpcyBnZWzDtnNjaHQnLCAnZXJmb2xnJyk7CiAgICAgICAgICAgICAgICAgICAgfSku +Y2F0Y2goZnVuY3Rpb24oZSkgeyB0b2FzdCgnRmVobGVyOiAnICsgZS5tZXNzYWdlLCAnZmVobGVy +Jyk7IH0pOwogICAgICAgICAgICAgICAgfSwgeyB0aXRlbDogJ0hpbndlaXMgbMO2c2NoZW4nLCBq +YURhbmdlcjogdHJ1ZSB9KTsKICAgICAgICAgICAgfQogICAgICAgIH0pOwoKICAgICAgICAvLyBC +YWNrdXBzCiAgICAgICAgdmFyIGJ0bkJrTmV1ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2J0 +bi1iYWNrdXAtbmV1Jyk7CiAgICAgICAgaWYgKGJ0bkJrTmV1KSBidG5Ca05ldS5hZGRFdmVudExp +c3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICBhcGlQb3N0KCcvYXBpL3Bs +YW51bmcvYmFja3VwJywge30pLnRoZW4oZnVuY3Rpb24ocikgewogICAgICAgICAgICAgICAgdG9h +c3QoJ0JhY2t1cCBlcnN0ZWxsdDogJyArIHIuZGF0ZWluYW1lLCAnZXJmb2xnJyk7CiAgICAgICAg +ICAgICAgICBiYWNrdXBUYWJlbGxlTGFkZW4oKTsKICAgICAgICAgICAgfSkuY2F0Y2goZnVuY3Rp +b24oZSkgeyB0b2FzdCgnRmVobGVyOiAnICsgZS5tZXNzYWdlLCAnZmVobGVyJyk7IH0pOwogICAg +ICAgIH0pOwogICAgICAgIHZhciBia1Rib2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Jh +Y2t1cC10Ym9keScpOwogICAgICAgIGlmIChia1Rib2R5KSBia1Rib2R5LmFkZEV2ZW50TGlzdGVu +ZXIoJ2NsaWNrJywgZnVuY3Rpb24oZSkgewogICAgICAgICAgICB2YXIgYnRuID0gZS50YXJnZXQu +Y2xvc2VzdCgnW2RhdGEtYWt0aW9uXScpOwogICAgICAgICAgICBpZiAoIWJ0bikgcmV0dXJuOwog +ICAgICAgICAgICB2YXIgZGF0ZWkgPSBidG4uZ2V0QXR0cmlidXRlKCdkYXRhLWRhdGVpJyk7CiAg +ICAgICAgICAgIHZhciBha3Rpb24gPSBidG4uZ2V0QXR0cmlidXRlKCdkYXRhLWFrdGlvbicpOwog +ICAgICAgICAgICBpZiAoYWt0aW9uID09PSAnYmFja3VwLWRvd25sb2FkJykgewogICAgICAgICAg +ICAgICAgd2luZG93Lm9wZW4oJy9hcGkvcGxhbnVuZy9iYWNrdXAvZG93bmxvYWQvJyArIGVuY29k +ZVVSSUNvbXBvbmVudChkYXRlaSksICdfYmxhbmsnKTsKICAgICAgICAgICAgICAgIHJldHVybjsK +ICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoYWt0aW9uID09PSAnYmFja3VwLWxvZXNjaGVu +JykgewogICAgICAgICAgICAgICAgYmVzdGFldGlnZW4oJ0JhY2t1cCDigJ4nICsgZGF0ZWkgKyAn +IiBlbmRnw7xsdGlnIGzDtnNjaGVuP1xuXG5EaWVzZSBBa3Rpb24ga2FubiBuaWNodCByw7xja2fD +pG5naWcgZ2VtYWNodCB3ZXJkZW4uJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAg +YXBpUG9zdCgnL2FwaS9wbGFudW5nL2JhY2t1cC9sb2VzY2hlbicsIHsgZGF0ZWluYW1lOiBkYXRl +aSB9KS50aGVuKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgICAgICB0b2FzdCgnQmFj +a3VwIGdlbMO2c2NodCcsICdlcmZvbGcnKTsKICAgICAgICAgICAgICAgICAgICAgICAgYmFja3Vw +VGFiZWxsZUxhZGVuKCk7CiAgICAgICAgICAgICAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oZXJy +KSB7IHRvYXN0KCdGZWhsZXI6ICcgKyBlcnIubWVzc2FnZSwgJ2ZlaGxlcicpOyB9KTsKICAgICAg +ICAgICAgICAgIH0sIHsgdGl0ZWw6ICdCYWNrdXAgbMO2c2NoZW4nLCBqYURhbmdlcjogdHJ1ZSB9 +KTsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAo +YWt0aW9uID09PSAnYmFja3VwLXdpZWRlcmhlcnN0ZWxsZW4nKSB7CiAgICAgICAgICAgICAgICBi +ZXN0YWV0aWdlbignQWt0dWVsbGUgUGxhbnVuZyBkdXJjaCBCYWNrdXAg4oCeJyArIGRhdGVpICsg +JyIgZXJzZXR6ZW4/XG5cbkVzIHdpcmQgdm9yaGVyIGF1dG9tYXRpc2NoIGVpbiBTaWNoZXJoZWl0 +cy1CYWNrdXAgZGVyIGFrdHVlbGxlbiBQbGFudW5nIGVyc3RlbGx0LlxuXG5OYWNoIGRlbSBXaWVk +ZXJoZXJzdGVsbGVuIHdpcmQgZGllIFNlaXRlIG5ldSBnZWxhZGVuLicsIGZ1bmN0aW9uKCkgewog +ICAgICAgICAgICAgICAgICAgIGFwaVBvc3QoJy9hcGkvcGxhbnVuZy9iYWNrdXAvd2llZGVyaGVy +c3RlbGxlbicsIHsgZGF0ZWluYW1lOiBkYXRlaSB9KS50aGVuKGZ1bmN0aW9uKHIpIHsKICAgICAg +ICAgICAgICAgICAgICAgICAgdG9hc3QoJ1dpZWRlcmhlcmdlc3RlbGx0LiBTaWNoZXJ1bmc6ICcg +KyByLnNpY2hlcnVuZywgJ2VyZm9sZycpOwogICAgICAgICAgICAgICAgICAgICAgICAvLyBCYWNr +dXAtUmVzdG9yZSBlcnpldWd0IHNlaXQgUGhhc2UgNCAoMjAyNi0wNS0yMCkgZWluZW4KICAgICAg ICAgICAgICAgICAgICAgICAgLy8gU2VydmVyLXNlaXRpZ2VuIEluLUFwcC1IaW53ZWlzIHN0YXR0 -IG1haWx0by4KICAgICAgICAgICAgICAgICAgICAgICAgLy8gRGlyZWt0IG5ldSByZW5kZXJuIHN0 -YXR0IHNldFRpbWVvdXQrRjU6IHNvbnN0IGJsaWViZW4gZGllCiAgICAgICAgICAgICAgICAgICAg -ICAgIC8vIGFsdGVuIFplbGxlbiBzaWNodGJhciBiaXMgenVtIG1hbnVlbGxlbiBSZWxvYWQuCiAg -ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBkYXRlbkxhZGVuKCkudGhlbihmdW5jdGlvbigp -IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWRSZW5kZXJuKCk7CiAgICAgICAgICAg -ICAgICAgICAgICAgICAgICBlcmcuY2xhc3NOYW1lID0gJ2dlbi1lcmZvbGcnOwogICAgICAgICAg -ICAgICAgICAgICAgICAgICAgZXJnLnRleHRDb250ZW50ID0gJ1BsYW51bmcgenVyw7xja2dlc2V0 -enQg4oCUIGFsbGUgRWludHLDpGdlIHVuZCBLb21tZW50YXJlIGdlbMO2c2NodC4nICsKICAgICAg -ICAgICAgICAgICAgICAgICAgICAgICAgICAociAmJiByLmJhY2t1cCA/ICcgQmFja3VwIGdlc2lj -aGVydDogJyArIHIuYmFja3VwICsgJy4nIDogJyBFaW4gQmFja3VwIHd1cmRlIGF1dG9tYXRpc2No +IG1haWx0by4KICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsg +d2luZG93LmxvY2F0aW9uLnJlbG9hZCgpOyB9LCAxMjAwKTsKICAgICAgICAgICAgICAgICAgICB9 +KS5jYXRjaChmdW5jdGlvbihlcnIpIHsgdG9hc3QoJ0ZlaGxlcjogJyArIGVyci5tZXNzYWdlLCAn +ZmVobGVyJyk7IH0pOwogICAgICAgICAgICAgICAgfSwgeyB0aXRlbDogJ0JhY2t1cCB3aWVkZXJo +ZXJzdGVsbGVuJywgamFUZXh0OiAnV2llZGVyaGVyc3RlbGxlbicsIGphRGFuZ2VyOiB0cnVlIH0p +OwogICAgICAgICAgICB9CiAgICAgICAgfSk7CgogICAgICAgIC8vIFNjaGljaHRjb2RlcwogICAg +ICAgIHZhciBidG5TY05ldSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdidG4tc2NoaWNodGNv +ZGUtbmV1Jyk7CiAgICAgICAgaWYgKGJ0blNjTmV1KSBidG5TY05ldS5hZGRFdmVudExpc3RlbmVy +KCdjbGljaycsIGZ1bmN0aW9uKCkgeyBzY2hpY2h0Y29kZUVkaXRNb2RhbFplaWdlbihudWxsKTsg +fSk7CiAgICAgICAgdmFyIHNjVm9yc2NoYXUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2No +aWNodGNvZGUtdm9yc2NoYXUnKTsKICAgICAgICBpZiAoc2NWb3JzY2hhdSkgc2NWb3JzY2hhdS5h +ZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgdmFyIGVk +aXQgPSBlLnRhcmdldC5jbG9zZXN0KCdbZGF0YS1ha3Rpb249InNjaGljaHRjb2RlLWJlYXJiZWl0 +ZW4iXScpOwogICAgICAgICAgICBpZiAoZWRpdCkgeyBzY2hpY2h0Y29kZUVkaXRNb2RhbFplaWdl +bihlZGl0LmdldEF0dHJpYnV0ZSgnZGF0YS1jb2RlJykpOyByZXR1cm47IH0KICAgICAgICAgICAg +dmFyIHRvZyA9IGUudGFyZ2V0LmNsb3Nlc3QoJ1tkYXRhLWFrdGlvbj0ic2NoaWNodGNvZGUtdG9n +Z2xlIl0nKTsKICAgICAgICAgICAgaWYgKHRvZykgc2NoaWNodGNvZGVUb2dnbGVBa3Rpdih0b2cu +Z2V0QXR0cmlidXRlKCdkYXRhLWNvZGUnKSk7CiAgICAgICAgfSk7CgogICAgICAgIC8vIFNvbmRl +cnRlcm1pbi1LbGlja3MgbGF1ZmVuIHNlaXQgTWFpIDIwMjYgdWViZXIgZGVuIEFubGFzcy1aZWls +ZW4tCiAgICAgICAgLy8gSGFuZGxlciAoc2llaGUgb2JlbiksIHdlaWwgZGllIGVoZW1hbHMgc2Vw +YXJhdGUgRXZlbnRzLVplaWxlIGluCiAgICAgICAgLy8gZGllIEFubGFzcy1aZWlsZSB6dXNhbW1l +bmdlZnVlaHJ0IHd1cmRlLgoKICAgICAgICAvLyBFcnNjaGVpbnVuZ3NiaWxkLUVkaXRvcjogYmVp +IGplZGVtIElucHV0IGxpdmUgYW53ZW5kZW4gKG51ciBaLmFkbWluLm1hcmtpZXJ1bmdlbgogICAg +ICAgIC8vIGluLW1lbW9yeSwgcGVyc2lzdGllcnQgd2lyZCBlcnN0IGJlaW0gU3BlaWNoZXJuLUts +aWNrKS4KICAgICAgICAvLyBSYW5nZSArIE51bWJlci1JbnB1dCBmdWVyIGRhc3NlbGJlIEZlbGQg +d2VyZGVuIGhpZXIgc3luY2hyb25pc2llcnQuCiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0 +ZW5lcignaW5wdXQnLCBmdW5jdGlvbihlKSB7CiAgICAgICAgICAgIGlmICghZS50YXJnZXQuY2xh +c3NMaXN0IHx8ICFlLnRhcmdldC5jbGFzc0xpc3QuY29udGFpbnMoJ2Vyc2NoZWludW5nLWlucHV0 +JykpIHJldHVybjsKICAgICAgICAgICAgLy8gUmFuZ2UgPC0+IE51bWJlcjogUGFydG5lci1JbnB1 +dCBtaXQgZ2xlaWNoZW0gZGF0YS1rZXkvZGF0YS1mZWxkCiAgICAgICAgICAgIC8vIGF1ZiBkZW4g +Z2xlaWNoZW4gV2VydCBzZXR6ZW4gKGdsZWljaGVyIENvbnRhaW5lcikuCiAgICAgICAgICAgIGlm +IChlLnRhcmdldC5jbGFzc0xpc3QuY29udGFpbnMoJ2Vyc2NoZWludW5nLWlucHV0LXJhbmdlJykg +fHwKICAgICAgICAgICAgICAgIGUudGFyZ2V0LmNsYXNzTGlzdC5jb250YWlucygnZXJzY2hlaW51 +bmctaW5wdXQtbnVtJykpIHsKICAgICAgICAgICAgICAgIHZhciBrID0gZS50YXJnZXQuZ2V0QXR0 +cmlidXRlKCdkYXRhLWtleScpOwogICAgICAgICAgICAgICAgdmFyIGYgPSBlLnRhcmdldC5nZXRB +dHRyaWJ1dGUoJ2RhdGEtZmVsZCcpOwogICAgICAgICAgICAgICAgdmFyIHdyYXAgPSBlLnRhcmdl +dC5jbG9zZXN0KCcuZXJzY2hlaW51bmctc2xpZGVyLXdyYXAnKTsKICAgICAgICAgICAgICAgIGlm +ICh3cmFwKSB7CiAgICAgICAgICAgICAgICAgICAgd3JhcC5xdWVyeVNlbGVjdG9yQWxsKCdbZGF0 +YS1rZXk9IicgKyBrICsgJyJdW2RhdGEtZmVsZD0iJyArIGYgKyAnIl0nKS5mb3JFYWNoKGZ1bmN0 +aW9uKGlucCkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoaW5wICE9PSBlLnRhcmdldCAm +JiBpbnAudmFsdWUgIT09IGUudGFyZ2V0LnZhbHVlKSBpbnAudmFsdWUgPSBlLnRhcmdldC52YWx1 +ZTsKICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg +fQogICAgICAgICAgICB2b3JzY2hhdUFrdHVhbGlzaWVyZW4oKTsKICAgICAgICB9KTsKICAgICAg +ICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBmdW5jdGlvbihlKSB7CiAgICAg +ICAgICAgIGlmICghZS50YXJnZXQuY2xhc3NMaXN0KSByZXR1cm47CiAgICAgICAgICAgIGlmIChl +LnRhcmdldC5jbGFzc0xpc3QuY29udGFpbnMoJ2Vyc2NoZWludW5nLWlucHV0JykpIHsKICAgICAg +ICAgICAgICAgIHZvcnNjaGF1QWt0dWFsaXNpZXJlbigpOwogICAgICAgICAgICB9CiAgICAgICAg +fSk7CiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbihl +KSB7CiAgICAgICAgICAgIGlmICghZS50YXJnZXQpIHJldHVybjsKICAgICAgICAgICAgdmFyIGVs +ID0gZS50YXJnZXQ7CiAgICAgICAgICAgIGlmIChlbC5pZCA9PT0gJ2Vyc2NoZWludW5nLXNwZWlj +aGVybicpIHsgZXJzY2hlaW51bmdzYmlsZFNwZWljaGVybigpOyByZXR1cm47IH0KICAgICAgICAg +ICAgaWYgKGVsLmlkID09PSAnZXJzY2hlaW51bmctenVydWVja3NldHplbicpIHsgZXJzY2hlaW51 +bmdzYmlsZFp1cnVlY2tzZXR6ZW4oKTsgcmV0dXJuOyB9CiAgICAgICAgICAgIGlmIChlbC5jbGFz +c0xpc3QgJiYgZWwuY2xhc3NMaXN0LmNvbnRhaW5zKCdlcnNjaGVpbnVuZy1mbGFzaC10ZXN0Jykp +IHsgc3luY0ZsYXNoVm9yc2NoYXUoKTsgcmV0dXJuOyB9CiAgICAgICAgICAgIC8vIFRhYi1XZWNo +c2VsIGltIG5ldWVuIExheW91dCAoS2xpY2sgYXVmIFRhYi1CdXR0b24gb2RlciBzZWluZW4gSW5o +YWx0KQogICAgICAgICAgICB2YXIgdGFiQnRuID0gZWwuY2xvc2VzdCAmJiBlbC5jbG9zZXN0KCdb +ZGF0YS1lcnNjaGVpbnVuZy10YWJdJyk7CiAgICAgICAgICAgIGlmICh0YWJCdG4pIHsgZXJzY2hl +aW51bmdzVGFiV2VjaHNlbG4odGFiQnRuLmdldEF0dHJpYnV0ZSgnZGF0YS1lcnNjaGVpbnVuZy10 +YWInKSk7IHJldHVybjsgfQogICAgICAgICAgICAvLyBLbGljayBhdWYgZWluZSBWb3JzY2hhdS1a +ZWlsZSB3ZWNoc2VsdCBlYmVuZmFsbHMgZGVuIEVkaXRvci1UYWIKICAgICAgICAgICAgdmFyIHZv +cnNjaGF1WmVpbGUgPSBlbC5jbG9zZXN0ICYmIGVsLmNsb3Nlc3QoJy5lcnNjaGVpbnVuZy12b3Jz +Y2hhdS16ZWlsZScpOwogICAgICAgICAgICBpZiAodm9yc2NoYXVaZWlsZSAmJiB2b3JzY2hhdVpl +aWxlLmdldEF0dHJpYnV0ZSgnZGF0YS10eXAnKSkgewogICAgICAgICAgICAgICAgZXJzY2hlaW51 +bmdzVGFiV2VjaHNlbG4odm9yc2NoYXVaZWlsZS5nZXRBdHRyaWJ1dGUoJ2RhdGEtdHlwJykpOwog +ICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIEZhcmIt +WCAoVG9nZ2xlIGxlZXIvU3RhbmRhcmQpCiAgICAgICAgICAgIGlmIChlbC5jbGFzc0xpc3QgJiYg +ZWwuY2xhc3NMaXN0LmNvbnRhaW5zKCdlcnNjaGVpbnVuZy1mYXJiLXgnKSkgewogICAgICAgICAg +ICAgICAgZXJzY2hlaW51bmdGYXJiZVRvZ2dsZShlbC5nZXRBdHRyaWJ1dGUoJ2RhdGEta2V5Jyks +IGVsLmdldEF0dHJpYnV0ZSgnZGF0YS1mZWxkJykpOwogICAgICAgICAgICAgICAgcmV0dXJuOwog +ICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIFR5cC1SZXNldCAocHJvIGFrdGl2ZW0gQmxvY2sp +CiAgICAgICAgICAgIGlmIChlbC5jbGFzc0xpc3QgJiYgZWwuY2xhc3NMaXN0LmNvbnRhaW5zKCdl +cnNjaGVpbnVuZy10eXAtcmVzZXQnKSkgewogICAgICAgICAgICAgICAgZXJzY2hlaW51bmdzVHlw +WnVydWVja3NldHplbihlbC5nZXRBdHRyaWJ1dGUoJ2RhdGEtdHlwJykpOwogICAgICAgICAgICAg +ICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgfSk7CgogICAgICAgIC8vIEZlYXR1cmUt +VG9nZ2xlcwogICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIGZ1bmN0 +aW9uKGUpIHsKICAgICAgICAgICAgaWYgKCFlLnRhcmdldC5jbGFzc0xpc3QuY29udGFpbnMoJ2Zl +YXR1cmUtY2hlY2tib3gnKSkgcmV0dXJuOwogICAgICAgICAgICB2YXIga2V5ID0gZS50YXJnZXQu +Z2V0QXR0cmlidXRlKCdkYXRhLWZlYXR1cmUnKTsKICAgICAgICAgICAgaWYgKCFaLmFkbWluLmZl +YXR1cmVzKSBaLmFkbWluLmZlYXR1cmVzID0ge307CiAgICAgICAgICAgIFouYWRtaW4uZmVhdHVy +ZXNba2V5XSA9IGUudGFyZ2V0LmNoZWNrZWQ7CiAgICAgICAgICAgIGFwaVB1dCgnL2FwaS9hZG1p +bicsIFouYWRtaW4pLnRoZW4oZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICB0b2FzdChmZWF0 +dXJlTGFiZWxzW2tleV0ubGFiZWwgKyAoZS50YXJnZXQuY2hlY2tlZCA/ICcgYWt0aXZpZXJ0JyA6 +ICcgZGVha3RpdmllcnQnKSwgJ2VyZm9sZycpOwogICAgICAgICAgICAgICAgZmVhdHVyZXNSZW5k +ZXJuKCk7CiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGtvcGZSZW5kZXJuID09PSAnZnVuY3Rp +b24nKSBrb3BmUmVuZGVybigpOwogICAgICAgICAgICAgICAgaWYgKFouc3RhdGlzdGlrKSBzdGF0 +aXN0aWtSZW5kZXJuKCk7CiAgICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGVycikgeyB0b2Fz +dCgnRmVobGVyOiAnICsgZXJyLm1lc3NhZ2UsICdmZWhsZXInKTsgfSk7CiAgICAgICAgfSk7Cgog +ICAgICAgIC8vIEdsb2JhbGUgIlNpY2h0YmFya2VpdCBmdWVyIHJlZ3VsYWVyZSBBZG1pbnMiLVRv +Z2dsZXMgd3VyZGVuCiAgICAgICAgLy8gMjAyNi0wNS0yMyBlbnRmZXJudCDigJQgc2llaGUgYWRt +aW4uanMgU3R1Yi1Lb21tZW50YXIuCgogICAgICAgIC8vIFRlc3RkYXRlbiDigJQgYW5pbWllcnRl +IEZvcnRzY2hyaXR0cy1Cb3ggKFNwaW5uZXIgKyB1bmJlc3RpbW10ZXIgQmFsa2VuKQogICAgICAg +IC8vIHN0YXR0IHN0YXRpc2NoZW0gVGV4dCwgZGEgUmVzZXQvRHVtbXlkYXRlbiBqZSBuYWNoIFBD +IDEtMiBzIGRhdWVybi4KICAgICAgICBmdW5jdGlvbiB0ZXN0ZGF0ZW5Gb3J0c2Nocml0dFplaWdl +bihlcmcsIHRleHQpIHsKICAgICAgICAgICAgZXJnLmNsYXNzTmFtZSA9ICdnZW4tcHJvZ3Jlc3Mt +d3JhcCc7CiAgICAgICAgICAgIGVyZy5pbm5lckhUTUwgPSAnPGRpdiBjbGFzcz0iZ2VuLXByb2dy +ZXNzLWxhYmVsIj4nICsgZXNjYXBlSFRNTCh0ZXh0KSArICc8L2Rpdj4nICsKICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJnZW4tcHJvZ3Jlc3MtYmFyIj48c3Bhbj48L3Nw +YW4+PC9kaXY+JzsKICAgICAgICAgICAgZXJnLmNsYXNzTGlzdC5yZW1vdmUoJ3ZlcnN0ZWNrdCcp +OwogICAgICAgIH0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnRuLWR1bW15ZGF0 +ZW4nKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICBi +ZXN0YWV0aWdlbigKICAgICAgICAgICAgICAgICdEdW1teWRhdGVuIGVpbnNwaWVsZW4/XG5cbkRp +ZXMgw7xiZXJzY2hyZWlidCBhbGxlIGJlc3RlaGVuZGVuIEVpbnRyw6RnZSAoSmFu4oCTQXByIDIw +MjYpLlxuRWluIEJhY2t1cCB3aXJkIGF1dG9tYXRpc2NoIGVyc3RlbGx0LicsCiAgICAgICAgICAg +ICAgICBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgZXJnID0gZG9jdW1lbnQu +Z2V0RWxlbWVudEJ5SWQoJ3Rlc3RkYXRlbi1lcmdlYm5pcycpOwogICAgICAgICAgICAgICAgICAg +IHRlc3RkYXRlbkZvcnRzY2hyaXR0WmVpZ2VuKGVyZywgJ0R1bW15ZGF0ZW4gd2VyZGVuIGdlbmVy +aWVydCDigKYnKTsKICAgICAgICAgICAgICAgICAgICBhcGlQb3N0KCcvYXBpL3BsYW51bmcvZHVt +bXlkYXRlbicsIHt9KS50aGVuKGZ1bmN0aW9uKHIpIHsKICAgICAgICAgICAgICAgICAgICAgICAg +dmFyIGxibCA9IGVyZy5xdWVyeVNlbGVjdG9yKCcuZ2VuLXByb2dyZXNzLWxhYmVsJyk7CiAgICAg +ICAgICAgICAgICAgICAgICAgIGlmIChsYmwpIGxibC50ZXh0Q29udGVudCA9ICdEYXRlbiBlcnpl +dWd0IOKAlCBBbnNpY2h0IHdpcmQgYWt0dWFsaXNpZXJ0IOKApic7CiAgICAgICAgICAgICAgICAg +ICAgICAgIC8vIERpcmVrdCBuZXUgcmVuZGVybiBzdGF0dCBzZXRUaW1lb3V0K0Y1OiBkYXRlbkxh +ZGVuIGhvbHQgZGllCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZyaXNjaGVuIERhdGVuLCBn +cmlkUmVuZGVybiBiYXV0IGRpZSBUYWZlbCBrb21wbGV0dCBuZXUgYXVmLgogICAgICAgICAgICAg +ICAgICAgICAgICByZXR1cm4gZGF0ZW5MYWRlbigpLnRoZW4oZnVuY3Rpb24oKSB7CiAgICAgICAg +ICAgICAgICAgICAgICAgICAgICBncmlkUmVuZGVybigpOwogICAgICAgICAgICAgICAgICAgICAg +ICAgICAgZXJnLmNsYXNzTmFtZSA9ICdnZW4tZXJmb2xnJzsKICAgICAgICAgICAgICAgICAgICAg +ICAgICAgIGVyZy50ZXh0Q29udGVudCA9IChyICYmIHIuZWludHJhZWdlICE9IG51bGwgPyByLmVp +bnRyYWVnZSArICcgRWludHLDpGdlIGdlbmVyaWVydC4gJyA6ICdEdW1teWRhdGVuIGdlbmVyaWVy +dC4gJykgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyICYmIHIuYmFja3VwID8g +J0JhY2t1cCBnZXNpY2hlcnQ6ICcgKyByLmJhY2t1cCArICcuJyA6ICdFaW4gQmFja3VwIHd1cmRl IGdlc2ljaGVydC4nKTsKICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAg ICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oZSkgewogICAgICAgICAgICAgICAgICAgICAgICBlcmcu Y2xhc3NOYW1lID0gJ2dlbi1mZWhsZXInOwogICAgICAgICAgICAgICAgICAgICAgICBlcmcudGV4 dENvbnRlbnQgPSAnRmVobGVyOiAnICsgKGUgJiYgZS5tZXNzYWdlID8gZS5tZXNzYWdlIDogZSk7 CiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAg -ICAgeyB0aXRlbDogJ1BsYW51bmcgenVyw7xja3NldHplbicsIGphVGV4dDogJ1p1csO8Y2tzZXR6 +ICAgeyB0aXRlbDogJ0R1bW15ZGF0ZW4gZWluc3BpZWxlbicsIGphVGV4dDogJ0VpbnNwaWVsZW4n +LCBqYURhbmdlcjogdHJ1ZSB9CiAgICAgICAgICAgICk7CiAgICAgICAgfSk7CiAgICAgICAgZG9j +dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2J0bi1yZXNldCcpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNr +JywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGJlc3RhZXRpZ2VuKAogICAgICAgICAgICAgICAg +J1BsYW51bmcgd2lya2xpY2ggenVyw7xja3NldHplbj9cblxuQUxMRSBFaW50csOkZ2UgdW5kIEtv +bW1lbnRhcmUgd2VyZGVuIGdlbMO2c2NodCFcblBlcnNvbmVuIHVuZCBFaW5zdGVsbHVuZ2VuIGJs +ZWliZW4gZXJoYWx0ZW4uXG5FaW4gQmFja3VwIHdpcmQgYXV0b21hdGlzY2ggZXJzdGVsbHQuJywK +ICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgIHZhciBlcmcg +PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdGRhdGVuLWVyZ2VibmlzJyk7CiAgICAgICAg +ICAgICAgICAgICAgdGVzdGRhdGVuRm9ydHNjaHJpdHRaZWlnZW4oZXJnLCAnUGxhbnVuZyB3aXJk +IHp1csO8Y2tnZXNldHp0IOKApicpOwogICAgICAgICAgICAgICAgICAgIGFwaVBvc3QoJy9hcGkv +cGxhbnVuZy9yZXNldCcsIHt9KS50aGVuKGZ1bmN0aW9uKHIpIHsKICAgICAgICAgICAgICAgICAg +ICAgICAgdmFyIGxibCA9IGVyZy5xdWVyeVNlbGVjdG9yKCcuZ2VuLXByb2dyZXNzLWxhYmVsJyk7 +CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsYmwpIGxibC50ZXh0Q29udGVudCA9ICdHZWxl +ZXJ0IOKAlCBBbnNpY2h0IHdpcmQgYWt0dWFsaXNpZXJ0IOKApic7CiAgICAgICAgICAgICAgICAg +ICAgICAgIC8vIFBsYW51bmctUmVzZXQgZXJ6ZXVndCBzZWl0IFBoYXNlIDQgKDIwMjYtMDUtMjAp +IGVpbmVuCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNlcnZlci1zZWl0aWdlbiBJbi1BcHAt +SGlud2VpcyBzdGF0dCBtYWlsdG8uCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIERpcmVrdCBu +ZXUgcmVuZGVybiBzdGF0dCBzZXRUaW1lb3V0K0Y1OiBzb25zdCBibGllYmVuIGRpZQogICAgICAg +ICAgICAgICAgICAgICAgICAvLyBhbHRlbiBaZWxsZW4gc2ljaHRiYXIgYmlzIHp1bSBtYW51ZWxs +ZW4gUmVsb2FkLgogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZGF0ZW5MYWRlbigpLnRo +ZW4oZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkUmVuZGVybigp +OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJnLmNsYXNzTmFtZSA9ICdnZW4tZXJmb2xn +JzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVyZy50ZXh0Q29udGVudCA9ICdQbGFudW5n +IHp1csO8Y2tnZXNldHp0IOKAlCBhbGxlIEVpbnRyw6RnZSB1bmQgS29tbWVudGFyZSBnZWzDtnNj +aHQuJyArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHIgJiYgci5iYWNrdXAgPyAn +IEJhY2t1cCBnZXNpY2hlcnQ6ICcgKyByLmJhY2t1cCArICcuJyA6ICcgRWluIEJhY2t1cCB3dXJk +ZSBhdXRvbWF0aXNjaCBnZXNpY2hlcnQuJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0pOwog +ICAgICAgICAgICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgICAg +ICAgICAgICAgZXJnLmNsYXNzTmFtZSA9ICdnZW4tZmVobGVyJzsKICAgICAgICAgICAgICAgICAg +ICAgICAgZXJnLnRleHRDb250ZW50ID0gJ0ZlaGxlcjogJyArIChlICYmIGUubWVzc2FnZSA/IGUu +bWVzc2FnZSA6IGUpOwogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgfSwK +ICAgICAgICAgICAgICAgIHsgdGl0ZWw6ICdQbGFudW5nIHp1csO8Y2tzZXR6ZW4nLCBqYVRleHQ6 +ICdadXLDvGNrc2V0emVuJywgamFEYW5nZXI6IHRydWUgfQogICAgICAgICAgICApOwogICAgICAg +IH0pOwoKICAgICAgICAvLyBQcm90b2tvbGwgbG9lc2NoZW4gKExvZ2J1Y2ggKyBBUEktTG9nKS4g +RGVzdHJ1a3Rpdi4KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnRuLXByb3Rva29s +bC1sb2VzY2hlbicpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKSB7CiAgICAg +ICAgICAgIGJlc3RhZXRpZ2VuKAogICAgICAgICAgICAgICAgJ1Byb3Rva29sbCB3aXJrbGljaCBs +w7ZzY2hlbj9cblxuTG9nYnVjaCB3aXJkIGF1ZiAwIEVpbnRyw6RnZSB6dXLDvGNrZ2VzZXR6dCwg +ZGllIEFQSS1Mb2ctRGF0ZWkgd2lyZCBnZWzDtnNjaHQuXG5EaWVzZSBBa3Rpb24gaXN0IG5pY2h0 +IHLDvGNrZ8OkbmdpZyBtYWNoYmFyLicsCiAgICAgICAgICAgICAgICBmdW5jdGlvbigpIHsKICAg +ICAgICAgICAgICAgICAgICB2YXIgZXJnID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Rk +YXRlbi1lcmdlYm5pcycpOwogICAgICAgICAgICAgICAgICAgIGVyZy5jbGFzc05hbWUgPSAnZ2Vu +LWluZm8nOwogICAgICAgICAgICAgICAgICAgIGVyZy50ZXh0Q29udGVudCA9ICdQcm90b2tvbGwg +d2lyZCBnZWzDtnNjaHQuLi4nOwogICAgICAgICAgICAgICAgICAgIGVyZy5jbGFzc0xpc3QucmVt +b3ZlKCd2ZXJzdGVja3QnKTsKICAgICAgICAgICAgICAgICAgICBhcGlQb3N0KCcvYXBpL2FkbWlu +L3Byb3Rva29sbC1sb2VzY2hlbicsIHt9KS50aGVuKGZ1bmN0aW9uKHIpIHsKICAgICAgICAgICAg +ICAgICAgICAgICAgZXJnLmNsYXNzTmFtZSA9ICdnZW4tZXJmb2xnJzsKICAgICAgICAgICAgICAg +ICAgICAgICAgdmFyIGJ5dGVzID0gKHIuYXBpTG9nQnl0ZXMgPj0gMCkgPyAoci5hcGlMb2dCeXRl +cyArICcgQnl0ZXMnKSA6ICdEYXRlaSB3YXIgZ2VzcGVycnQnOwogICAgICAgICAgICAgICAgICAg +ICAgICBlcmcudGV4dENvbnRlbnQgPSAnUHJvdG9rb2xsIGdlbMO2c2NodC4gTG9nYnVjaC1FaW50 +csOkZ2Ugdm9yaGVyOiAnICsgci5sb2didWNoRWludHJhZWdlVm9yaGVyICsgJy4gQVBJLUxvZzog +JyArIGJ5dGVzICsgJy4nOwogICAgICAgICAgICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGUp +IHsKICAgICAgICAgICAgICAgICAgICAgICAgZXJnLmNsYXNzTmFtZSA9ICdnZW4tZmVobGVyJzsK +ICAgICAgICAgICAgICAgICAgICAgICAgZXJnLnRleHRDb250ZW50ID0gJ0ZlaGxlcjogJyArIGUu +bWVzc2FnZTsKICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIH0sCiAgICAg +ICAgICAgICAgICB7IHRpdGVsOiAnUHJvdG9rb2xsIGzDtnNjaGVuJywgamFUZXh0OiAnTMO2c2No ZW4nLCBqYURhbmdlcjogdHJ1ZSB9CiAgICAgICAgICAgICk7CiAgICAgICAgfSk7CgogICAgICAg -IC8vIFByb3Rva29sbCBsb2VzY2hlbiAoTG9nYnVjaCArIEFQSS1Mb2cpLiBEZXN0cnVrdGl2Lgog -ICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdidG4tcHJvdG9rb2xsLWxvZXNjaGVuJyku -YWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgYmVzdGFl -dGlnZW4oCiAgICAgICAgICAgICAgICAnUHJvdG9rb2xsIHdpcmtsaWNoIGzDtnNjaGVuP1xuXG5M -b2didWNoIHdpcmQgYXVmIDAgRWludHLDpGdlIHp1csO8Y2tnZXNldHp0LCBkaWUgQVBJLUxvZy1E -YXRlaSB3aXJkIGdlbMO2c2NodC5cbkRpZXNlIEFrdGlvbiBpc3QgbmljaHQgcsO8Y2tnw6RuZ2ln -IG1hY2hiYXIuJywKICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAg -ICAgIHZhciBlcmcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdGRhdGVuLWVyZ2Vibmlz -Jyk7CiAgICAgICAgICAgICAgICAgICAgZXJnLmNsYXNzTmFtZSA9ICdnZW4taW5mbyc7CiAgICAg -ICAgICAgICAgICAgICAgZXJnLnRleHRDb250ZW50ID0gJ1Byb3Rva29sbCB3aXJkIGdlbMO2c2No -dC4uLic7CiAgICAgICAgICAgICAgICAgICAgZXJnLmNsYXNzTGlzdC5yZW1vdmUoJ3ZlcnN0ZWNr -dCcpOwogICAgICAgICAgICAgICAgICAgIGFwaVBvc3QoJy9hcGkvYWRtaW4vcHJvdG9rb2xsLWxv -ZXNjaGVuJywge30pLnRoZW4oZnVuY3Rpb24ocikgewogICAgICAgICAgICAgICAgICAgICAgICBl -cmcuY2xhc3NOYW1lID0gJ2dlbi1lcmZvbGcnOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIg -Ynl0ZXMgPSAoci5hcGlMb2dCeXRlcyA+PSAwKSA/IChyLmFwaUxvZ0J5dGVzICsgJyBCeXRlcycp -IDogJ0RhdGVpIHdhciBnZXNwZXJydCc7CiAgICAgICAgICAgICAgICAgICAgICAgIGVyZy50ZXh0 -Q29udGVudCA9ICdQcm90b2tvbGwgZ2Vsw7ZzY2h0LiBMb2didWNoLUVpbnRyw6RnZSB2b3JoZXI6 -ICcgKyByLmxvZ2J1Y2hFaW50cmFlZ2VWb3JoZXIgKyAnLiBBUEktTG9nOiAnICsgYnl0ZXMgKyAn -Lic7CiAgICAgICAgICAgICAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oZSkgewogICAgICAgICAg -ICAgICAgICAgICAgICBlcmcuY2xhc3NOYW1lID0gJ2dlbi1mZWhsZXInOwogICAgICAgICAgICAg -ICAgICAgICAgICBlcmcudGV4dENvbnRlbnQgPSAnRmVobGVyOiAnICsgZS5tZXNzYWdlOwogICAg -ICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsg -dGl0ZWw6ICdQcm90b2tvbGwgbMO2c2NoZW4nLCBqYVRleHQ6ICdMw7ZzY2hlbicsIGphRGFuZ2Vy -OiB0cnVlIH0KICAgICAgICAgICAgKTsKICAgICAgICB9KTsKCiAgICAgICAgLy8gTWl0dGVpbHVu -Z2VuIChTcHJpbnQgRC0zYywgMjAyNi0wNS0yOSk6ICIrIE5ldWUgTWl0dGVpbHVuZyItQnV0dG9u -CiAgICAgICAgdmFyIGJ0bk1pdE5ldSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdidG4tbWl0 -dGVpbHVuZy1uZXUnKTsKICAgICAgICBpZiAoYnRuTWl0TmV1KSBidG5NaXROZXUuYWRkRXZlbnRM -aXN0ZW5lcignY2xpY2snLCBtaXR0ZWlsdW5nTmV1T2VmZm5lbik7CgogICAgICAgIC8vIFN1cGVy -VXNlcgogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdidG4tc3VwZXJ1c2VyLW5ldScp -LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIFouYWRt -aW4uc3VwZXJVc2VyID0gWi5hZG1pbi5zdXBlclVzZXIgfHwgW107CiAgICAgICAgICAgIFouYWRt -aW4uc3VwZXJVc2VyLnB1c2goeyBuYW1lOiAnJywgbndLZW5udW5nOiAnJyB9KTsKICAgICAgICAg -ICAgc3VwZXJVc2VyUmVuZGVybigpOwogICAgICAgIH0pOwogICAgICAgIGRvY3VtZW50LmdldEVs -ZW1lbnRCeUlkKCdzdXBlcnVzZXItdGJvZHknKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1 -bmN0aW9uKGUpIHsKICAgICAgICAgICAgdmFyIGJ0biA9IGUudGFyZ2V0LmNsb3Nlc3QoJ1tkYXRh -LWFrdGlvbj0ic3VwZXJ1c2VyLWxvZXNjaGVuIl0nKTsKICAgICAgICAgICAgaWYgKGJ0bikgewog -ICAgICAgICAgICAgICAgdmFyIGlkeCA9IHBhcnNlSW50KGJ0bi5nZXRBdHRyaWJ1dGUoJ2RhdGEt -aWR4JykpOwogICAgICAgICAgICAgICAgWi5hZG1pbi5zdXBlclVzZXIuc3BsaWNlKGlkeCwgMSk7 -CiAgICAgICAgICAgICAgICBzdXBlclVzZXJSZW5kZXJuKCk7CiAgICAgICAgICAgIH0KICAgICAg -ICB9KTsKICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnRuLXN1cGVydXNlci1zcGVp -Y2hlcm4nKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCkgewogICAgICAgICAg -ICB2YXIgZGF0ZW4gPSBzdXBlclVzZXJBdXNUYWJlbGxlTGVzZW4oKTsKICAgICAgICAgICAgaWYg -KGRhdGVuLmxlbmd0aCA9PT0gMCkgewogICAgICAgICAgICAgICAgdG9hc3QoJ01pbmRlc3RlbnMg -ZWluIFN1cGVyVXNlciBtdXNzIGV4aXN0aWVyZW4nLCAnd2FybnVuZycpOwogICAgICAgICAgICAg -ICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGFwaVB1dCgnL2FwaS9hZG1pbi9z -dXBlcnVzZXInLCBkYXRlbikudGhlbihmdW5jdGlvbihyKSB7CiAgICAgICAgICAgICAgICBaLmFk -bWluLnN1cGVyVXNlciA9IGRhdGVuOwogICAgICAgICAgICAgICAgZGlydHlTZXR6ZW4oJ3N1cGVy -dXNlcicsIGZhbHNlKTsKICAgICAgICAgICAgICAgIHRvYXN0KCdTdXBlclVzZXIgZ2VzcGVpY2hl -cnQnLCAnZXJmb2xnJyk7CiAgICAgICAgICAgICAgICAvLyBTZXJ2ZXIgbGllZmVydCBiZWkgU1Ut -UmVpbi9SYXVzIF9icmF1Y2h0X21haWx0byBpbSBSZXNwb25zZS4KICAgICAgICAgICAgICAgIC8v -IFZlcmFudHdvcnR1bmdzLVVlYmVyZ2FuZ3MtTWFpbHRvIHdpcmQgaGllciBnZW9lZmZuZXQgKFBo -YXNlIDUpLgogICAgICAgICAgICAgICAgaWYgKHIgJiYgci5fYnJhdWNodF9tYWlsdG8pIHZlcmFu -dHdvcnR1bmdzTWFpbHRvRmV1ZXJuKHIuX2JyYXVjaHRfbWFpbHRvKTsKICAgICAgICAgICAgfSku -Y2F0Y2goZnVuY3Rpb24oZSkgeyB0b2FzdCgnRmVobGVyOiAnICsgZS5tZXNzYWdlLCAnZmVobGVy -Jyk7IH0pOwogICAgICAgIH0pOwoKICAgICAgICAvLyBGYWNoYXVmc2ljaHQg4oCUICJOZXUiLUJ1 -dHRvbiBvZWZmbmV0IE1vZGFsIG1pdCBEcm9wZG93bi1BdXN3YWhsCiAgICAgICAgLy8gKFdhY2hs -ZWl0dW5nZW4pIG9kZXIgbWFudWVsbGVyIEFubGFnZSAoUGVyc29uIGVyc2NoZWludCBOSUNIVCBp -bgogICAgICAgIC8vIGRlciBQbGFudW5nKS4gVm9yaGVyOiBsZWVyZSBSZWloZW4gd3VyZGVuIGRp -cmVrdCBpbiBkaWUgVGFiZWxsZQogICAgICAgIC8vIGdlcHVzaHQg4oCUIHdhcyB6dSBEb3BwZWwt -UmVpaGVuIGJlaSB2ZXJzZWhlbnRsaWNoZW0gRG9wcGVsLUtsaWNrCiAgICAgICAgLy8gdW5kIHp1 -ciBMb2VzY2gtQXBva2FseXBzZSBmdWVocnRlIChzaWVoZSBmYWNoYXVmc2ljaHRBdXNUYWJlbGxl -TGVzZW4pLgogICAgICAgIHZhciBidG5GQU5ldSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdi -dG4tZmFjaGF1ZnNpY2h0LW5ldScpOwogICAgICAgIGlmIChidG5GQU5ldSkgYnRuRkFOZXUuYWRk -RXZlbnRMaXN0ZW5lcignY2xpY2snLCBmYWNoYXVmc2ljaHROZXVNb2RhbCk7CiAgICAgICAgdmFy -IGZhVGJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmFjaGF1ZnNpY2h0LXRib2R5Jyk7 -CiAgICAgICAgLy8gTGl2ZS1VcGRhdGUgZGVyIFN1Yi1TaWNodC1CdXR0b24tTGFiZWxzICsgZGlz -YWJsZWQtU3RhdGUsIHdlbm4gZGVyCiAgICAgICAgLy8gVXNlciBkaWUgQWRtaW4tIGJ6dy4gU3Rh -dGlzdGlrLUNoZWNrYm94IGluIGRlciBaZWlsZSB1bXNjaGFsdGV0LgogICAgICAgIC8vIFNvbnN0 -IHplaWd0IGRlciBTdWItU2ljaHQtQnV0dG9uIHdlaXRlciAiQWxsZSBBZG1pbi1UYWJzIiBvYndv -aGwKICAgICAgICAvLyBkZXIgVGFiIGdlcmFkZSBlYmVuIGdlc3BlcnJ0IHd1cmRlICh1bmQgdW1n -ZWtlaHJ0KS4KICAgICAgICBpZiAoZmFUYm9keSkgZmFUYm9keS5hZGRFdmVudExpc3RlbmVyKCdj -aGFuZ2UnLCBmdW5jdGlvbihlKSB7CiAgICAgICAgICAgIGlmICghZS50YXJnZXQuY2xhc3NMaXN0 -IHx8ICFlLnRhcmdldC5jbGFzc0xpc3QuY29udGFpbnMoJ2ZhY2hhdWZzaWNodC1jaGsnKSkgcmV0 -dXJuOwogICAgICAgICAgICB2YXIgZmVsZCA9IGUudGFyZ2V0LmdldEF0dHJpYnV0ZSgnZGF0YS1m -ZWxkJyk7CiAgICAgICAgICAgIGlmIChmZWxkICE9PSAnYWRtaW5pc3RyYXRpb24nICYmIGZlbGQg -IT09ICdzdGF0aXN0aWsnKSByZXR1cm47CiAgICAgICAgICAgIHZhciBpZHggPSBwYXJzZUludChl -LnRhcmdldC5nZXRBdHRyaWJ1dGUoJ2RhdGEtaWR4JykpOwogICAgICAgICAgICB2YXIgZnJlaWdl -Z2ViZW4gPSBlLnRhcmdldC5jaGVja2VkOwogICAgICAgICAgICB2YXIgYWt0aW9uID0gZmVsZCA9 -PT0gJ2FkbWluaXN0cmF0aW9uJyA/ICdmYWNoYXVmc2ljaHQtc3Vic2ljaHQnIDogJ2ZhY2hhdWZz -aWNodC1zdGF0c2ljaHQnOwogICAgICAgICAgICB2YXIgYnRuID0gZmFUYm9keS5xdWVyeVNlbGVj -dG9yKCdbZGF0YS1ha3Rpb249IicgKyBha3Rpb24gKyAnIl1bZGF0YS1pZHg9IicgKyBpZHggKyAn -Il0nKTsKICAgICAgICAgICAgaWYgKCFidG4pIHJldHVybjsKICAgICAgICAgICAgdmFyIHR5cCA9 -IGZlbGQgPT09ICdhZG1pbmlzdHJhdGlvbicgPyAnYWRtaW4nIDogJ3N0YXQnOwogICAgICAgICAg -ICB2YXIgZmEgPSAoWi5hZG1pbi5mYWNoYXVmc2ljaHQgfHwgW10pW2lkeF0gfHwge307CiAgICAg -ICAgICAgIHZhciBtYXAgPSB0eXAgPT09ICdhZG1pbicgPyBmYS5hZG1pblNpY2h0YmFya2VpdCA6 -IGZhLnN0YXRpc3Rpa1NpY2h0YmFya2VpdDsKICAgICAgICAgICAgYnRuLnRleHRDb250ZW50ID0g -ZmFjaGF1ZnNpY2h0U3ViU2ljaHRMYWJlbCh0eXAsIG1hcCwgZnJlaWdlZ2ViZW4pOwogICAgICAg -ICAgICBidG4uZGlzYWJsZWQgPSAhZnJlaWdlZ2ViZW47CiAgICAgICAgICAgIGJ0bi50aXRsZSA9 -IGZyZWlnZWdlYmVuCiAgICAgICAgICAgICAgICA/ICh0eXAgPT09ICdhZG1pbicgPyAnV2VsY2hl -IEFkbWluLVN1Yi1UYWJzIGRhcmYgZGllc2UgRmFjaGF1ZnNpY2h0IHNlaGVuPycgOiAnV2VsY2hl -IFN0YXRpc3Rpay1CZXJlaWNoZSBkYXJmIGRpZXNlIEZhY2hhdWZzaWNodCBzZWhlbj8nKQogICAg -ICAgICAgICAgICAgOiAoJ0Vyc3QgIicgKyAodHlwID09PSAnYWRtaW4nID8gJ0FkbWluJyA6ICdT -dGF0aXN0aWsnKSArICciLUjDpGtjaGVuIG9iZW4gc2V0emVuJyk7CiAgICAgICAgfSk7CiAgICAg -ICAgaWYgKGZhVGJvZHkpIGZhVGJvZHkuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlv -bihlKSB7CiAgICAgICAgICAgIHZhciBkZWxCdG4gPSBlLnRhcmdldC5jbG9zZXN0KCdbZGF0YS1h -a3Rpb249ImZhY2hhdWZzaWNodC1sb2VzY2hlbiJdJyk7CiAgICAgICAgICAgIGlmIChkZWxCdG4p -IHsKICAgICAgICAgICAgICAgIHZhciBpZHggPSBwYXJzZUludChkZWxCdG4uZ2V0QXR0cmlidXRl -KCdkYXRhLWlkeCcpKTsKICAgICAgICAgICAgICAgIC8vIFRleHRmZWxkLVp3aXNjaGVuc3RhbmQg -dWViZXJuZWhtZW4sIGRhbm4gRWludHJhZyBlbnRmZXJuZW4KICAgICAgICAgICAgICAgIHZhciB6 -dyA9IGZhY2hhdWZzaWNodEF1c1RhYmVsbGVMZXNlbigpOwogICAgICAgICAgICAgICAgWi5hZG1p -bi5mYWNoYXVmc2ljaHQgPSB6dzsKICAgICAgICAgICAgICAgIFouYWRtaW4uZmFjaGF1ZnNpY2h0 -LnNwbGljZShpZHgsIDEpOwogICAgICAgICAgICAgICAgZmFjaGF1ZnNpY2h0UmVuZGVybigpOwog -ICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciBkZXRC -dG4gPSBlLnRhcmdldC5jbG9zZXN0KCdbZGF0YS1ha3Rpb249ImZhY2hhdWZzaWNodC1kZXRhaWxz -Il0nKTsKICAgICAgICAgICAgaWYgKGRldEJ0bikgewogICAgICAgICAgICAgICAgZmFjaGF1ZnNp -Y2h0RGV0YWlsTW9kYWwocGFyc2VJbnQoZGV0QnRuLmdldEF0dHJpYnV0ZSgnZGF0YS1pZHgnKSkp -OwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIEdy -YW51bGFyZSBTdWItU2ljaHQtQnV0dG9ucyAoU3BlYyBGLjIpCiAgICAgICAgICAgIHZhciBzdWJB -ZG1pbiA9IGUudGFyZ2V0LmNsb3Nlc3QoJ1tkYXRhLWFrdGlvbj0iZmFjaGF1ZnNpY2h0LXN1YnNp -Y2h0Il0nKTsKICAgICAgICAgICAgaWYgKHN1YkFkbWluKSB7CiAgICAgICAgICAgICAgICBmYWNo -YXVmc2ljaHRTdWJTaWNodE1vZGFsKHBhcnNlSW50KHN1YkFkbWluLmdldEF0dHJpYnV0ZSgnZGF0 -YS1pZHgnKSksICdhZG1pbicpOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9 -CiAgICAgICAgICAgIHZhciBzdWJTdGF0ID0gZS50YXJnZXQuY2xvc2VzdCgnW2RhdGEtYWt0aW9u -PSJmYWNoYXVmc2ljaHQtc3RhdHNpY2h0Il0nKTsKICAgICAgICAgICAgaWYgKHN1YlN0YXQpIHsK -ICAgICAgICAgICAgICAgIGZhY2hhdWZzaWNodFN1YlNpY2h0TW9kYWwocGFyc2VJbnQoc3ViU3Rh -dC5nZXRBdHRyaWJ1dGUoJ2RhdGEtaWR4JykpLCAnc3RhdCcpOwogICAgICAgICAgICAgICAgcmV0 -dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIEltcGVyc29uYXRpb246IFRlc3RhbnNp -Y2h0IGFscyBkaWVzZSBGYWNoYXVmc2ljaHQKICAgICAgICAgICAgdmFyIHRlc3RCdG4gPSBlLnRh -cmdldC5jbG9zZXN0KCdbZGF0YS1ha3Rpb249ImZhY2hhdWZzaWNodC10ZXN0ZW4iXScpOwogICAg -ICAgICAgICBpZiAodGVzdEJ0bikgewogICAgICAgICAgICAgICAgaW1wZXJzb25hdGVTdGFydChw -YXJzZUludCh0ZXN0QnRuLmdldEF0dHJpYnV0ZSgnZGF0YS1pZHgnKSkpOwogICAgICAgICAgICAg -ICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgfSk7CgogICAgICAgIC8vIC0tLS0tIERp -cmVrdGlvbnNsZWl0dW5nICsgRnVlaHJ1bmdzc3RlbGxlIC0tLS0tCiAgICAgICAgLy8gSWRlbnRp -c2NoZSBIYW5kbGVyLVN0cnVrdHVyIHdpZSBGYWNoYXVmc2ljaHQsIGR1cmNoIEV2ZW50LURlbGUt -CiAgICAgICAgLy8gZ2F0aW9uIG1pdCBkYXRhLXR5cC1BdHRyaWJ1dCB6d2lzY2hlbiBkZW4gYmVp -ZGVuIG5ldWVuIExpc3RlbgogICAgICAgIC8vIHVudGVyc2NoZWlkYmFyLgogICAgICAgIGRvY3Vt -ZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oZSkgewogICAgICAgICAgICB2 -YXIgZWw7CiAgICAgICAgICAgIGVsID0gZS50YXJnZXQuY2xvc2VzdCgnW2RhdGEtYWt0aW9uPSJy -b2xsZS1sb2VzY2hlbiJdJyk7CiAgICAgICAgICAgIGlmIChlbCkgeyByb2xsZW5FaW50cmFnTG9l -c2NoZW4oZWwuZ2V0QXR0cmlidXRlKCdkYXRhLXR5cCcpLCBwYXJzZUludChlbC5nZXRBdHRyaWJ1 -dGUoJ2RhdGEtaWR4JyksIDEwKSk7IHJldHVybjsgfQogICAgICAgICAgICBlbCA9IGUudGFyZ2V0 -LmNsb3Nlc3QoJ1tkYXRhLWFrdGlvbj0icm9sbGUtZGV0YWlscyJdJyk7CiAgICAgICAgICAgIGlm -IChlbCkgeyByb2xsZW5QbGFuUmVjaHRlTW9kYWwoZWwuZ2V0QXR0cmlidXRlKCdkYXRhLXR5cCcp -LCBwYXJzZUludChlbC5nZXRBdHRyaWJ1dGUoJ2RhdGEtaWR4JyksIDEwKSk7IHJldHVybjsgfQog -ICAgICAgICAgICBlbCA9IGUudGFyZ2V0LmNsb3Nlc3QoJ1tkYXRhLWFrdGlvbj0icm9sbGUtc3Vi -c2ljaHQiXScpOwogICAgICAgICAgICBpZiAoZWwpIHsgcm9sbGVuU3ViU2ljaHRNb2RhbChlbC5n -ZXRBdHRyaWJ1dGUoJ2RhdGEtdHlwJyksIHBhcnNlSW50KGVsLmdldEF0dHJpYnV0ZSgnZGF0YS1p -ZHgnKSwgMTApLCAnYWRtaW4nKTsgcmV0dXJuOyB9CiAgICAgICAgICAgIGVsID0gZS50YXJnZXQu -Y2xvc2VzdCgnW2RhdGEtYWt0aW9uPSJyb2xsZS1zdGF0c2ljaHQiXScpOwogICAgICAgICAgICBp -ZiAoZWwpIHsgcm9sbGVuU3ViU2ljaHRNb2RhbChlbC5nZXRBdHRyaWJ1dGUoJ2RhdGEtdHlwJyks -IHBhcnNlSW50KGVsLmdldEF0dHJpYnV0ZSgnZGF0YS1pZHgnKSwgMTApLCAnc3RhdCcpOyByZXR1 -cm47IH0KICAgICAgICB9KTsKICAgICAgICAvLyAiTmV1ZXIgRWludHJhZyItQnV0dG9ucwogICAg -ICAgIFsnZGlyZWt0aW9uc2xlaXR1bmcnLCAnZnVlaHJ1bmdzc3RlbGxlJ10uZm9yRWFjaChmdW5j -dGlvbih0eXApIHsKICAgICAgICAgICAgdmFyIGJ0bk5ldSA9IGRvY3VtZW50LmdldEVsZW1lbnRC -eUlkKCdidG4tJyArIHR5cCArICctbmV1Jyk7CiAgICAgICAgICAgIGlmIChidG5OZXUpIGJ0bk5l -dS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCkgeyByb2xsZW5OZXVFaW50cmFn -KHR5cCk7IH0pOwogICAgICAgICAgICB2YXIgYnRuU2F2ZSA9IGRvY3VtZW50LmdldEVsZW1lbnRC -eUlkKCdidG4tJyArIHR5cCArICctc3BlaWNoZXJuJyk7CiAgICAgICAgICAgIGlmIChidG5TYXZl -KSBidG5TYXZlLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKSB7IHJvbGxlblNw -ZWljaGVybih0eXApOyB9KTsKICAgICAgICAgICAgLy8gRGlydHktTWFya2llcnVuZyBiZWkgamVk -ZXIgRWluZ2FiZSBpbiBkZXIgamV3ZWlsaWdlbiBUYWJlbGxlLgogICAgICAgICAgICB2YXIgdGJv -ZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0eXAgKyAnLXRib2R5Jyk7CiAgICAgICAgICAg -IGlmICh0Ym9keSkgewogICAgICAgICAgICAgICAgdGJvZHkuYWRkRXZlbnRMaXN0ZW5lcignY2hh -bmdlJywgZnVuY3Rpb24oKSB7IHJvbGxlbkRpcnR5U2V0emVuKHR5cCwgdHJ1ZSk7IH0pOwogICAg -ICAgICAgICAgICAgdGJvZHkuYWRkRXZlbnRMaXN0ZW5lcignaW5wdXQnLCBmdW5jdGlvbigpIHsg -cm9sbGVuRGlydHlTZXR6ZW4odHlwLCB0cnVlKTsgfSk7CiAgICAgICAgICAgIH0KICAgICAgICB9 -KTsKCiAgICAgICAgLy8gR2xvYmFsZXIgVGVzdGVuLUJ1dHRvbjogYWxzIHJlZ3VsYWVyZXIgRW5k -YW53ZW5kZXIgYW5zZWhlbgogICAgICAgIHZhciBidG5UZXN0UmVndWxhZXIgPSBkb2N1bWVudC5n -ZXRFbGVtZW50QnlJZCgnYnRuLXRlc3QtcmVndWxhZXInKTsKICAgICAgICBpZiAoYnRuVGVzdFJl -Z3VsYWVyKSBidG5UZXN0UmVndWxhZXIuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBpbXBlcnNv -bmF0ZVJlZ3VsYWVyKTsKICAgICAgICB2YXIgYnRuRkFTYXZlID0gZG9jdW1lbnQuZ2V0RWxlbWVu -dEJ5SWQoJ2J0bi1mYWNoYXVmc2ljaHQtc3BlaWNoZXJuJyk7CiAgICAgICAgaWYgKGJ0bkZBU2F2 -ZSkgYnRuRkFTYXZlLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKSB7CiAgICAg -ICAgICAgIC8vIEJlaW0gU2F2ZTogbGVlcmUgUmVpaGVuIChrb21wbGV0dCBvaG5lIE5hbWUgVU5E -IG9obmUgTlctS2VubnVuZykKICAgICAgICAgICAgLy8gd2VyZGVuIGdlZmlsdGVydC4gQW5kZXJl -IEF1ZnJ1ZmUgKExvZXNjaGVuLCBNb2RhbC1TcHJ1bmcpIGxhc3NlbgogICAgICAgICAgICAvLyBk -aWUgTGlzdGUgdW52ZXJhZW5kZXJ0IChzaWVoZSBmYWNoYXVmc2ljaHRBdXNUYWJlbGxlTGVzZW4p -LgogICAgICAgICAgICB2YXIgZGF0ZW4gPSBmYWNoYXVmc2ljaHRBdXNUYWJlbGxlTGVzZW4odHJ1 -ZSk7CiAgICAgICAgICAgIGFwaVB1dCgnL2FwaS9hZG1pbi9mYWNoYXVmc2ljaHQnLCBkYXRlbiku -dGhlbihmdW5jdGlvbihyKSB7CiAgICAgICAgICAgICAgICBaLmFkbWluLmZhY2hhdWZzaWNodCA9 -IGRhdGVuOwogICAgICAgICAgICAgICAgZmFjaGF1ZnNpY2h0UmVuZGVybigpOwogICAgICAgICAg -ICAgICAgZmFjaGF1ZnNpY2h0RGlydHlTZXR6ZW4oZmFsc2UpOwogICAgICAgICAgICAgICAgdG9h -c3QoJ0ZhY2hhdWZzaWNodCBnZXNwZWljaGVydCAoJyArIGRhdGVuLmxlbmd0aCArICcgRWludHLD -pGdlKScsICdlcmZvbGcnKTsKICAgICAgICAgICAgICAgIC8vIFNlcnZlci1SZXNwb25zZTogX2Jy -YXVjaHRfbWFpbHRvIG51ciBiZWkgR2VzYW10dmVyYW50d29ydGxpY2gtCiAgICAgICAgICAgICAg -ICAvLyBXZWNoc2VsOyBGQS1TZWhlbi1GbGFnLURpZmZzIHNpbmQgSW4tQXBwLUhpbndlaXNlLgog -ICAgICAgICAgICAgICAgaWYgKHIgJiYgci5fYnJhdWNodF9tYWlsdG8pIHZlcmFudHdvcnR1bmdz -TWFpbHRvRmV1ZXJuKHIuX2JyYXVjaHRfbWFpbHRvKTsKICAgICAgICAgICAgfSkuY2F0Y2goZnVu -Y3Rpb24oZSkgeyB0b2FzdCgnRmVobGVyOiAnICsgZS5tZXNzYWdlLCAnZmVobGVyJyk7IH0pOwog -ICAgICAgIH0pOwogICAgICAgIC8vIERpcnR5LU1hcmtlcjogamVkZSBUYWJlbGxlbi1FaW5nYWJl -IHNldHp0IGRhcyBGbGFnLiBEZWxlZ2F0aW9uIGFtCiAgICAgICAgLy8gdGJvZHkgcmVpY2h0IOKA -lCBnaWx0IGF1Y2ggZnVlciBzcGFldGVyIGR5bmFtaXNjaCBnZXJlbmRlcnRlIFJvd3MuCiAgICAg -ICAgdmFyIGZhVGJvZHlEaXJ0eSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmYWNoYXVmc2lj -aHQtdGJvZHknKTsKICAgICAgICBpZiAoZmFUYm9keURpcnR5KSB7CiAgICAgICAgICAgIGZhVGJv -ZHlEaXJ0eS5hZGRFdmVudExpc3RlbmVyKCdpbnB1dCcsIGZ1bmN0aW9uKGUpIHsKICAgICAgICAg -ICAgICAgIGlmIChlLnRhcmdldC5jbGFzc0xpc3QgJiYgKGUudGFyZ2V0LmNsYXNzTGlzdC5jb250 -YWlucygnZmFjaGF1ZnNpY2h0LWlucHV0JykgfHwgZS50YXJnZXQuY2xhc3NMaXN0LmNvbnRhaW5z -KCdmYWNoYXVmc2ljaHQtY2hrJykgfHwgZS50YXJnZXQuY2xhc3NMaXN0LmNvbnRhaW5zKCdmYWNo -YXVmc2ljaHQtZ2VzYW10LWNoaycpKSkgewogICAgICAgICAgICAgICAgICAgIGZhY2hhdWZzaWNo -dERpcnR5U2V0emVuKHRydWUpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAg -ICAgICAgICAgZmFUYm9keURpcnR5LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIGZ1bmN0aW9u -KGUpIHsKICAgICAgICAgICAgICAgIGlmIChlLnRhcmdldC5jbGFzc0xpc3QgJiYgKGUudGFyZ2V0 -LmNsYXNzTGlzdC5jb250YWlucygnZmFjaGF1ZnNpY2h0LWNoaycpIHx8IGUudGFyZ2V0LmNsYXNz -TGlzdC5jb250YWlucygnZmFjaGF1ZnNpY2h0LWdlc2FtdC1jaGsnKSkpIHsKICAgICAgICAgICAg -ICAgICAgICBmYWNoYXVmc2ljaHREaXJ0eVNldHplbih0cnVlKTsKICAgICAgICAgICAgICAgIH0K -ICAgICAgICAgICAgfSk7CiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIHJlc3RMaXN0ZW5l -ckVpbnJpY2h0ZW4oKSB7CiAgICAgICAgLy8gV29jaGVucGxhbgogICAgICAgIGRvY3VtZW50Lmdl -dEVsZW1lbnRCeUlkKCd3cC12b3J3b2NoZScpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgd3BW -b3J3b2NoZSk7CiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3dwLW5hZWNoc3RlLXdv -Y2hlJykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB3cE5hZWNoc3RlV29jaGUpOwogICAgICAg -IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd3cC1ha3R1ZWxsZS13b2NoZScpLmFkZEV2ZW50TGlz -dGVuZXIoJ2NsaWNrJywgd3BBa3R1ZWxsZVdvY2hlKTsKICAgICAgICB2YXIgYnRuV3BEcnVjayA9 -IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd3cC1kcnVja2VuJyk7CiAgICAgICAgaWYgKGJ0bldw -RHJ1Y2spIGJ0bldwRHJ1Y2suYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpIHsK -ICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKCdkcnVja2VuLXdvY2hlbnBs -YW4nKTsKICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAg -IHdpbmRvdy5wcmludCgpOwogICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsg -ZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCdkcnVja2VuLXdvY2hlbnBsYW4nKTsgfSwg -NTAwKTsKICAgICAgICAgICAgfSwgNTApOwogICAgICAgIH0pOwoKICAgICAgICAvLyBTdGF0aXN0 -aWsgKyBMb2didWNoOiBMaXN0ZW5lciB2aWEgRXZlbnQtRGVsZWdhdGlvbiwgd2VpbCBkaWUKICAg -ICAgICAvLyBNYXJrdXAtQmxvZWNrZSBmdWVyIFVuYmVyZWNodGlndGUgendhciBpbSBET00gc3Rl -aGVuLCBkaWUKICAgICAgICAvLyBLbGljay1aaWVsZSBhYmVyIG51ciBmdWVyIEJlcmVjaHRpZ3Rl -IHNpY2h0YmFyIHdlcmRlbi4KICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGlj -aycsIGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgaWYgKGUudGFyZ2V0ICYmIGUudGFyZ2V0Lmlk -ID09PSAnYnRuLXN0YXRzLWxhZGVuJykgewogICAgICAgICAgICAgICAgc3RhdGlzdGlrTGFkZW4o -KTsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICB2YXIg -aW5mbyA9IGUudGFyZ2V0LmNsb3Nlc3QgJiYgZS50YXJnZXQuY2xvc2VzdCgnLnN0YXRzLWluZm8t -YnRuJyk7CiAgICAgICAgICAgIGlmIChpbmZvKSBzdGF0SW5mb1plaWdlbihpbmZvLmdldEF0dHJp -YnV0ZSgnZGF0YS1zdGF0cy1pbmZvJykpOwogICAgICAgIH0pOwogICAgICAgIGRvY3VtZW50LmFk -ZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgaWYgKGUu -dGFyZ2V0ICYmIGUudGFyZ2V0LmlkID09PSAnc3RhdHMtZ3J1cHBlbi1maWx0ZXInKSB7CiAgICAg -ICAgICAgICAgICBzdGF0RmlsdGVyU2V0emVuKGUudGFyZ2V0LnZhbHVlKTsKICAgICAgICAgICAg -ICAgIGlmIChaLnN0YXRpc3Rpaykgc3RhdGlzdGlrUmVuZGVybigpOwogICAgICAgICAgICB9CiAg -ICAgICAgfSk7CiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignaW5wdXQnLCBmdW5j -dGlvbihlKSB7CiAgICAgICAgICAgIGlmIChlLnRhcmdldCAmJiBlLnRhcmdldC5pZCA9PT0gJ2xv -Zy1zdWNoZScpIGxvZ2J1Y2hGaWx0ZXJuKCk7CiAgICAgICAgfSk7CiAgICB9CgogICAgLy8gPT09 -PT0gSW5pdCA9PT09PQoKICAgIGZ1bmN0aW9uIGluaXQoKSB7CiAgICAgICAgdGhlbWVXaWVkZXJo -ZXJzdGVsbGVuKCk7CiAgICAgICAgaGVhcnRiZWF0U3RhcnRlbigpOwogICAgICAgIGVudHd1cmZB -dXRvQ2xlYW51cCgpOyAgICAvLyBTcGVjIEYuNDogYWx0ZSBNb2RhbC1FbnR3dWVyZmUgKD4xNCBU -YWdlKSBsb2VzY2hlbgoKICAgICAgICBkYXRlbkxhZGVuKCkudGhlbihmdW5jdGlvbigpIHsKICAg -ICAgICAgICAgZ3JpZFJlbmRlcm4oKTsKICAgICAgICAgICAgc2Nyb2xsU3luYygpOwogICAgICAg -ICAgICBldmVudExpc3RlbmVyRWlucmljaHRlbigpOwogICAgICAgICAgICB6dW1IZXV0aWdlbkRh -dHVtKCk7CiAgICAgICAgICAgIC8vIFp1bGV0enQgYWt0aXZlIEFuc2ljaHQgd2llZGVyaGVyc3Rl -bGxlbiwgZGFtaXQgZWluIEJyb3dzZXItUmVmcmVzaAogICAgICAgICAgICAvLyAoRjUpIGRlbiBV -c2VyIG5pY2h0IGF1cyBTdGF0aXN0aWsvTG9nYnVjaC9BZG1pbiBpbiBkaWUgUGxhbnVuZ3MtCiAg -ICAgICAgICAgIC8vIGFuc2ljaHQgenVydWVja3dpcmZ0LiBMaWVndCBpbSBzZXNzaW9uU3RvcmFn -ZSDigJQgYmVpbSBTdGFydCB1ZWJlcgogICAgICAgICAgICAvLyBkZ2wuYmF0ICg9IG5ldWVyIFRh -YiwgbGVlcmVzIHNlc3Npb25TdG9yYWdlKSBibGVpYnQgZXMgYmVpCiAgICAgICAgICAgIC8vICdw -bGFudW5nJzsgbnVyIEluLVRhYi1SZWZyZXNoIGhhZWx0IGRpZSBsZXR6dGUgQW5zaWNodC4KICAg -ICAgICAgICAgLy8gYW5zaWNodFdlY2hzZWxuKCkgcHJ1ZWZ0IGRpZSBSZWNodGUgc2VsYnN0IHVu -ZCBmYWVsbHQgbm90ZmFsbHMKICAgICAgICAgICAgLy8gYXVmICdwbGFudW5nJyB6dXJ1ZWNrLgog -ICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgdmFyIGxldHp0ZUFuc2ljaHQgPSBzZXNz -aW9uU3RvcmFnZS5nZXRJdGVtKCd2aTMuYWt0aXZlQW5zaWNodCcpOwogICAgICAgICAgICAgICAg -aWYgKGxldHp0ZUFuc2ljaHQgJiYgbGV0enRlQW5zaWNodCAhPT0gJ3BsYW51bmcnKSB7CiAgICAg -ICAgICAgICAgICAgICAgYW5zaWNodFdlY2hzZWxuKGxldHp0ZUFuc2ljaHQpOwogICAgICAgICAg -ICAgICAgfQogICAgICAgICAgICB9IGNhdGNoIChlKSB7IC8qIGlnbm9yZSAqLyB9CiAgICAgICAg -ICAgIC8vIEZhbGxzIG5vY2ggYWx0ZSBsb2NhbFN0b3JhZ2UtRWludHJhZWdlIHJ1bWxpZWdlbiAo -TWlncmF0aW9uKToKICAgICAgICAgICAgLy8gZWlubWFsaWcgYXVmcmFldW1lbiwgZGFtaXQgbmlj -aHQgdmVyc2VoZW50bGljaCBkZXIgV2VydAogICAgICAgICAgICAvLyB3aWVkZXIgcmVpbmtvbW10 -LCBmYWxscyBpY2ggYXVzIFZlcnNlaGVuIGRhcmF1ZiBncmVpZmUuCiAgICAgICAgICAgIHRyeSB7 -IGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCd2aTMuYWt0aXZlQW5zaWNodCcpOyB9IGNhdGNoIChl -KSB7IC8qIGlnbm9yZSAqLyB9CiAgICAgICAgICAgIC8vIFRvcGJhci1BdmF0YXIgZnVlciBkaWUg -ZWlnZW5lIFBlcnNvbiBzZXR6ZW4gKHNpY2h0YmFyIG51ciwKICAgICAgICAgICAgLy8gd2VubiBl -aW5lIFBlcnNvbklkIHp1Z2VvcmRuZXQgaXN0IOKAlCBzb25zdCBibGVpYnQgZGVyIFNsb3QgbGVl -cikuCiAgICAgICAgICAgIG1laW5BdmF0YXJUb3BiYXJBa3R1YWxpc2llcmVuKCk7CiAgICAgICAg -ICAgIC8vIExpdmUtU3luYyBzdGFydGVuOiBwb2xsdCAvYXBpL3BsYW51bmcvY2hhbmdlcyArIC9h -cGkvbG9jay96ZWxsZW4KICAgICAgICAgICAgLy8gYWxsZSAzcywgYmxlbmRldCBmcmVtZGUgTG9j -ay1JbmRpa2F0b3JlbiBlaW4gdW5kIGxhZXNzdCByZW1vdGUKICAgICAgICAgICAgLy8gZ2VhZW5k -ZXJ0ZSBaZWxsZW4ga3VyeiBhdWZsZXVjaHRlbi4KICAgICAgICAgICAgc3luY1dvcmtlclN0YXJ0 -ZW4oKTsKICAgICAgICAgICAgZnVlbGxJbml0KCk7ICAgLy8gRXhjZWwtYWVobmxpY2hlciBGdWVs -bC1HcmlmZjogZ2xvYmFsZSBMaXN0ZW5lcgogICAgICAgICAgICAvLyBIaW53ZWlzLVN5c3RlbTog -ZWlubWFsIGluaXRpYWwgbGFkZW4sIGRhbm4gcG9sbGVkIGRlciBTeW5jLVdvcmtlci4KICAgICAg -ICAgICAgLy8gU2ljaHRiYXIgbnVyIGZ1ZXIgU1UgKyBHZXNhbXR2ZXJhbnR3b3J0bGljaGUgKGhp -bndlaXNlLmpzIHBydWVmdCBzZWxic3QpLgogICAgICAgICAgICBoaW53ZWlzZUxhZGVuKCkudGhl -bihoaW53ZWlzZUFuemVpZ2VBa3R1YWxpc2llcmVuKTsKICAgICAgICAgICAgdG9hc3QoJ1ZJMyBE -R0wtUGxhbnVuZyBnZWxhZGVuIOKAlCAnICsgWi5wZXJzb25lbi5sZW5ndGggKyAnIFBlcnNvbmVu -JywgJ2luZm8nKTsKICAgICAgICAgICAgLy8gVW50ZXJiZXNldHp1bmdzLVdhcm51bmcgZnVlciBX -YWNobGVpdHVuZy9TVSAobGVpY2h0IHZlcnpvZWdlcnQsCiAgICAgICAgICAgIC8vIGRhbWl0IGRl -ciBCZWdydWVzc3VuZ3MtVG9hc3Qgdm9yaGVyIHNpY2h0YmFyIGlzdCkKICAgICAgICAgICAgc2V0 -VGltZW91dCh1bnRlcmJlc2V0enVuZ1dhcm51bmdaZWlnZW4sIDE1MDApOwogICAgICAgIH0pLmNh -dGNoKGZ1bmN0aW9uKGVycikgewogICAgICAgICAgICB0b2FzdCgnRmVobGVyIGJlaW0gTGFkZW46 -ICcgKyBlcnIubWVzc2FnZSwgJ2ZlaGxlcicpOwogICAgICAgICAgICBjb25zb2xlLmVycm9yKCdM -YWRlZmVobGVyOicsIGVycik7CiAgICAgICAgfSk7CgogICAgICAgIC8vIEJlaW0gU2NobGllc3Nl -bjogZWlnZW5lcyBFZGl0LUxvY2sgbm9jaCBmcmVpZ2ViZW4sIGRhbWl0IGtlaW4KICAgICAgICAv -LyB2ZXJ3YWlzdGVyIExvY2sgaW0gRmlsZXN5c3RlbSB6dXJ1ZWNrYmxlaWJ0LgogICAgICAgIHdp -bmRvdy5hZGRFdmVudExpc3RlbmVyKCdiZWZvcmV1bmxvYWQnLCBhbGxlRWlnZW5lbkxvY2tzRnJl -aWdlYmVuQmVhY29uKTsKICAgIH0KCiAgICBpZiAoZG9jdW1lbnQucmVhZHlTdGF0ZSA9PT0gJ2xv -YWRpbmcnKSBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgaW5p -dCk7CiAgICBlbHNlIGluaXQoKTsKCn0pKCk7Cg== +IC8vIE1pdHRlaWx1bmdlbiAoU3ByaW50IEQtM2MsIDIwMjYtMDUtMjkpOiAiKyBOZXVlIE1pdHRl +aWx1bmciLUJ1dHRvbgogICAgICAgIHZhciBidG5NaXROZXUgPSBkb2N1bWVudC5nZXRFbGVtZW50 +QnlJZCgnYnRuLW1pdHRlaWx1bmctbmV1Jyk7CiAgICAgICAgaWYgKGJ0bk1pdE5ldSkgYnRuTWl0 +TmV1LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgbWl0dGVpbHVuZ05ldU9lZmZuZW4pOwoKICAg +ICAgICAvLyBTdXBlclVzZXIKICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnRuLXN1 +cGVydXNlci1uZXUnKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCkgewogICAg +ICAgICAgICBaLmFkbWluLnN1cGVyVXNlciA9IFouYWRtaW4uc3VwZXJVc2VyIHx8IFtdOwogICAg +ICAgICAgICBaLmFkbWluLnN1cGVyVXNlci5wdXNoKHsgbmFtZTogJycsIG53S2VubnVuZzogJycg +fSk7CiAgICAgICAgICAgIHN1cGVyVXNlclJlbmRlcm4oKTsKICAgICAgICB9KTsKICAgICAgICBk +b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3VwZXJ1c2VyLXRib2R5JykuYWRkRXZlbnRMaXN0ZW5l +cignY2xpY2snLCBmdW5jdGlvbihlKSB7CiAgICAgICAgICAgIHZhciBidG4gPSBlLnRhcmdldC5j +bG9zZXN0KCdbZGF0YS1ha3Rpb249InN1cGVydXNlci1sb2VzY2hlbiJdJyk7CiAgICAgICAgICAg +IGlmIChidG4pIHsKICAgICAgICAgICAgICAgIHZhciBpZHggPSBwYXJzZUludChidG4uZ2V0QXR0 +cmlidXRlKCdkYXRhLWlkeCcpKTsKICAgICAgICAgICAgICAgIFouYWRtaW4uc3VwZXJVc2VyLnNw +bGljZShpZHgsIDEpOwogICAgICAgICAgICAgICAgc3VwZXJVc2VyUmVuZGVybigpOwogICAgICAg +ICAgICB9CiAgICAgICAgfSk7CiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2J0bi1z +dXBlcnVzZXItc3BlaWNoZXJuJykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigp +IHsKICAgICAgICAgICAgdmFyIGRhdGVuID0gc3VwZXJVc2VyQXVzVGFiZWxsZUxlc2VuKCk7CiAg +ICAgICAgICAgIGlmIChkYXRlbi5sZW5ndGggPT09IDApIHsKICAgICAgICAgICAgICAgIHRvYXN0 +KCdNaW5kZXN0ZW5zIGVpbiBTdXBlclVzZXIgbXVzcyBleGlzdGllcmVuJywgJ3dhcm51bmcnKTsK +ICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICBhcGlQdXQo +Jy9hcGkvYWRtaW4vc3VwZXJ1c2VyJywgZGF0ZW4pLnRoZW4oZnVuY3Rpb24ocikgewogICAgICAg +ICAgICAgICAgWi5hZG1pbi5zdXBlclVzZXIgPSBkYXRlbjsKICAgICAgICAgICAgICAgIGRpcnR5 +U2V0emVuKCdzdXBlcnVzZXInLCBmYWxzZSk7CiAgICAgICAgICAgICAgICB0b2FzdCgnU3VwZXJV +c2VyIGdlc3BlaWNoZXJ0JywgJ2VyZm9sZycpOwogICAgICAgICAgICAgICAgLy8gU2VydmVyIGxp +ZWZlcnQgYmVpIFNVLVJlaW4vUmF1cyBfYnJhdWNodF9tYWlsdG8gaW0gUmVzcG9uc2UuCiAgICAg +ICAgICAgICAgICAvLyBWZXJhbnR3b3J0dW5ncy1VZWJlcmdhbmdzLU1haWx0byB3aXJkIGhpZXIg +Z2VvZWZmbmV0IChQaGFzZSA1KS4KICAgICAgICAgICAgICAgIGlmIChyICYmIHIuX2JyYXVjaHRf +bWFpbHRvKSB2ZXJhbnR3b3J0dW5nc01haWx0b0ZldWVybihyLl9icmF1Y2h0X21haWx0byk7CiAg +ICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGUpIHsgdG9hc3QoJ0ZlaGxlcjogJyArIGUubWVz +c2FnZSwgJ2ZlaGxlcicpOyB9KTsKICAgICAgICB9KTsKCiAgICAgICAgLy8gRmFjaGF1ZnNpY2h0 +IOKAlCAiTmV1Ii1CdXR0b24gb2VmZm5ldCBNb2RhbCBtaXQgRHJvcGRvd24tQXVzd2FobAogICAg +ICAgIC8vIChXYWNobGVpdHVuZ2VuKSBvZGVyIG1hbnVlbGxlciBBbmxhZ2UgKFBlcnNvbiBlcnNj +aGVpbnQgTklDSFQgaW4KICAgICAgICAvLyBkZXIgUGxhbnVuZykuIFZvcmhlcjogbGVlcmUgUmVp +aGVuIHd1cmRlbiBkaXJla3QgaW4gZGllIFRhYmVsbGUKICAgICAgICAvLyBnZXB1c2h0IOKAlCB3 +YXMgenUgRG9wcGVsLVJlaWhlbiBiZWkgdmVyc2VoZW50bGljaGVtIERvcHBlbC1LbGljawogICAg +ICAgIC8vIHVuZCB6dXIgTG9lc2NoLUFwb2thbHlwc2UgZnVlaHJ0ZSAoc2llaGUgZmFjaGF1ZnNp +Y2h0QXVzVGFiZWxsZUxlc2VuKS4KICAgICAgICB2YXIgYnRuRkFOZXUgPSBkb2N1bWVudC5nZXRF +bGVtZW50QnlJZCgnYnRuLWZhY2hhdWZzaWNodC1uZXUnKTsKICAgICAgICBpZiAoYnRuRkFOZXUp +IGJ0bkZBTmV1LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZmFjaGF1ZnNpY2h0TmV1TW9kYWwp +OwogICAgICAgIHZhciBmYVRib2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZhY2hhdWZz +aWNodC10Ym9keScpOwogICAgICAgIC8vIExpdmUtVXBkYXRlIGRlciBTdWItU2ljaHQtQnV0dG9u +LUxhYmVscyArIGRpc2FibGVkLVN0YXRlLCB3ZW5uIGRlcgogICAgICAgIC8vIFVzZXIgZGllIEFk +bWluLSBiencuIFN0YXRpc3Rpay1DaGVja2JveCBpbiBkZXIgWmVpbGUgdW1zY2hhbHRldC4KICAg +ICAgICAvLyBTb25zdCB6ZWlndCBkZXIgU3ViLVNpY2h0LUJ1dHRvbiB3ZWl0ZXIgIkFsbGUgQWRt +aW4tVGFicyIgb2J3b2hsCiAgICAgICAgLy8gZGVyIFRhYiBnZXJhZGUgZWJlbiBnZXNwZXJydCB3 +dXJkZSAodW5kIHVtZ2VrZWhydCkuCiAgICAgICAgaWYgKGZhVGJvZHkpIGZhVGJvZHkuYWRkRXZl +bnRMaXN0ZW5lcignY2hhbmdlJywgZnVuY3Rpb24oZSkgewogICAgICAgICAgICBpZiAoIWUudGFy +Z2V0LmNsYXNzTGlzdCB8fCAhZS50YXJnZXQuY2xhc3NMaXN0LmNvbnRhaW5zKCdmYWNoYXVmc2lj +aHQtY2hrJykpIHJldHVybjsKICAgICAgICAgICAgdmFyIGZlbGQgPSBlLnRhcmdldC5nZXRBdHRy +aWJ1dGUoJ2RhdGEtZmVsZCcpOwogICAgICAgICAgICBpZiAoZmVsZCAhPT0gJ2FkbWluaXN0cmF0 +aW9uJyAmJiBmZWxkICE9PSAnc3RhdGlzdGlrJykgcmV0dXJuOwogICAgICAgICAgICB2YXIgaWR4 +ID0gcGFyc2VJbnQoZS50YXJnZXQuZ2V0QXR0cmlidXRlKCdkYXRhLWlkeCcpKTsKICAgICAgICAg +ICAgdmFyIGZyZWlnZWdlYmVuID0gZS50YXJnZXQuY2hlY2tlZDsKICAgICAgICAgICAgdmFyIGFr +dGlvbiA9IGZlbGQgPT09ICdhZG1pbmlzdHJhdGlvbicgPyAnZmFjaGF1ZnNpY2h0LXN1YnNpY2h0 +JyA6ICdmYWNoYXVmc2ljaHQtc3RhdHNpY2h0JzsKICAgICAgICAgICAgdmFyIGJ0biA9IGZhVGJv +ZHkucXVlcnlTZWxlY3RvcignW2RhdGEtYWt0aW9uPSInICsgYWt0aW9uICsgJyJdW2RhdGEtaWR4 +PSInICsgaWR4ICsgJyJdJyk7CiAgICAgICAgICAgIGlmICghYnRuKSByZXR1cm47CiAgICAgICAg +ICAgIHZhciB0eXAgPSBmZWxkID09PSAnYWRtaW5pc3RyYXRpb24nID8gJ2FkbWluJyA6ICdzdGF0 +JzsKICAgICAgICAgICAgdmFyIGZhID0gKFouYWRtaW4uZmFjaGF1ZnNpY2h0IHx8IFtdKVtpZHhd +IHx8IHt9OwogICAgICAgICAgICB2YXIgbWFwID0gdHlwID09PSAnYWRtaW4nID8gZmEuYWRtaW5T +aWNodGJhcmtlaXQgOiBmYS5zdGF0aXN0aWtTaWNodGJhcmtlaXQ7CiAgICAgICAgICAgIGJ0bi50 +ZXh0Q29udGVudCA9IGZhY2hhdWZzaWNodFN1YlNpY2h0TGFiZWwodHlwLCBtYXAsIGZyZWlnZWdl +YmVuKTsKICAgICAgICAgICAgYnRuLmRpc2FibGVkID0gIWZyZWlnZWdlYmVuOwogICAgICAgICAg +ICBidG4udGl0bGUgPSBmcmVpZ2VnZWJlbgogICAgICAgICAgICAgICAgPyAodHlwID09PSAnYWRt +aW4nID8gJ1dlbGNoZSBBZG1pbi1TdWItVGFicyBkYXJmIGRpZXNlIEZhY2hhdWZzaWNodCBzZWhl +bj8nIDogJ1dlbGNoZSBTdGF0aXN0aWstQmVyZWljaGUgZGFyZiBkaWVzZSBGYWNoYXVmc2ljaHQg +c2VoZW4/JykKICAgICAgICAgICAgICAgIDogKCdFcnN0ICInICsgKHR5cCA9PT0gJ2FkbWluJyA/ +ICdBZG1pbicgOiAnU3RhdGlzdGlrJykgKyAnIi1Iw6RrY2hlbiBvYmVuIHNldHplbicpOwogICAg +ICAgIH0pOwogICAgICAgIGlmIChmYVRib2R5KSBmYVRib2R5LmFkZEV2ZW50TGlzdGVuZXIoJ2Ns +aWNrJywgZnVuY3Rpb24oZSkgewogICAgICAgICAgICB2YXIgZGVsQnRuID0gZS50YXJnZXQuY2xv +c2VzdCgnW2RhdGEtYWt0aW9uPSJmYWNoYXVmc2ljaHQtbG9lc2NoZW4iXScpOwogICAgICAgICAg +ICBpZiAoZGVsQnRuKSB7CiAgICAgICAgICAgICAgICB2YXIgaWR4ID0gcGFyc2VJbnQoZGVsQnRu +LmdldEF0dHJpYnV0ZSgnZGF0YS1pZHgnKSk7CiAgICAgICAgICAgICAgICAvLyBUZXh0ZmVsZC1a +d2lzY2hlbnN0YW5kIHVlYmVybmVobWVuLCBkYW5uIEVpbnRyYWcgZW50ZmVybmVuCiAgICAgICAg +ICAgICAgICB2YXIgencgPSBmYWNoYXVmc2ljaHRBdXNUYWJlbGxlTGVzZW4oKTsKICAgICAgICAg +ICAgICAgIFouYWRtaW4uZmFjaGF1ZnNpY2h0ID0genc7CiAgICAgICAgICAgICAgICBaLmFkbWlu +LmZhY2hhdWZzaWNodC5zcGxpY2UoaWR4LCAxKTsKICAgICAgICAgICAgICAgIGZhY2hhdWZzaWNo +dFJlbmRlcm4oKTsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAg +ICAgICB2YXIgZGV0QnRuID0gZS50YXJnZXQuY2xvc2VzdCgnW2RhdGEtYWt0aW9uPSJmYWNoYXVm +c2ljaHQtZGV0YWlscyJdJyk7CiAgICAgICAgICAgIGlmIChkZXRCdG4pIHsKICAgICAgICAgICAg +ICAgIGZhY2hhdWZzaWNodERldGFpbE1vZGFsKHBhcnNlSW50KGRldEJ0bi5nZXRBdHRyaWJ1dGUo +J2RhdGEtaWR4JykpKTsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAg +ICAgICAgICAvLyBHcmFudWxhcmUgU3ViLVNpY2h0LUJ1dHRvbnMgKFNwZWMgRi4yKQogICAgICAg +ICAgICB2YXIgc3ViQWRtaW4gPSBlLnRhcmdldC5jbG9zZXN0KCdbZGF0YS1ha3Rpb249ImZhY2hh +dWZzaWNodC1zdWJzaWNodCJdJyk7CiAgICAgICAgICAgIGlmIChzdWJBZG1pbikgewogICAgICAg +ICAgICAgICAgZmFjaGF1ZnNpY2h0U3ViU2ljaHRNb2RhbChwYXJzZUludChzdWJBZG1pbi5nZXRB +dHRyaWJ1dGUoJ2RhdGEtaWR4JykpLCAnYWRtaW4nKTsKICAgICAgICAgICAgICAgIHJldHVybjsK +ICAgICAgICAgICAgfQogICAgICAgICAgICB2YXIgc3ViU3RhdCA9IGUudGFyZ2V0LmNsb3Nlc3Qo +J1tkYXRhLWFrdGlvbj0iZmFjaGF1ZnNpY2h0LXN0YXRzaWNodCJdJyk7CiAgICAgICAgICAgIGlm +IChzdWJTdGF0KSB7CiAgICAgICAgICAgICAgICBmYWNoYXVmc2ljaHRTdWJTaWNodE1vZGFsKHBh +cnNlSW50KHN1YlN0YXQuZ2V0QXR0cmlidXRlKCdkYXRhLWlkeCcpKSwgJ3N0YXQnKTsKICAgICAg +ICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICAvLyBJbXBlcnNvbmF0 +aW9uOiBUZXN0YW5zaWNodCBhbHMgZGllc2UgRmFjaGF1ZnNpY2h0CiAgICAgICAgICAgIHZhciB0 +ZXN0QnRuID0gZS50YXJnZXQuY2xvc2VzdCgnW2RhdGEtYWt0aW9uPSJmYWNoYXVmc2ljaHQtdGVz +dGVuIl0nKTsKICAgICAgICAgICAgaWYgKHRlc3RCdG4pIHsKICAgICAgICAgICAgICAgIGltcGVy +c29uYXRlU3RhcnQocGFyc2VJbnQodGVzdEJ0bi5nZXRBdHRyaWJ1dGUoJ2RhdGEtaWR4JykpKTsK +ICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgIH0pOwoKICAgICAg +ICAvLyAtLS0tLSBEaXJla3Rpb25zbGVpdHVuZyArIEZ1ZWhydW5nc3N0ZWxsZSAtLS0tLQogICAg +ICAgIC8vIElkZW50aXNjaGUgSGFuZGxlci1TdHJ1a3R1ciB3aWUgRmFjaGF1ZnNpY2h0LCBkdXJj +aCBFdmVudC1EZWxlLQogICAgICAgIC8vIGdhdGlvbiBtaXQgZGF0YS10eXAtQXR0cmlidXQgendp +c2NoZW4gZGVuIGJlaWRlbiBuZXVlbiBMaXN0ZW4KICAgICAgICAvLyB1bnRlcnNjaGVpZGJhci4K +ICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKGUpIHsK +ICAgICAgICAgICAgdmFyIGVsOwogICAgICAgICAgICBlbCA9IGUudGFyZ2V0LmNsb3Nlc3QoJ1tk +YXRhLWFrdGlvbj0icm9sbGUtbG9lc2NoZW4iXScpOwogICAgICAgICAgICBpZiAoZWwpIHsgcm9s +bGVuRWludHJhZ0xvZXNjaGVuKGVsLmdldEF0dHJpYnV0ZSgnZGF0YS10eXAnKSwgcGFyc2VJbnQo +ZWwuZ2V0QXR0cmlidXRlKCdkYXRhLWlkeCcpLCAxMCkpOyByZXR1cm47IH0KICAgICAgICAgICAg +ZWwgPSBlLnRhcmdldC5jbG9zZXN0KCdbZGF0YS1ha3Rpb249InJvbGxlLWRldGFpbHMiXScpOwog +ICAgICAgICAgICBpZiAoZWwpIHsgcm9sbGVuUGxhblJlY2h0ZU1vZGFsKGVsLmdldEF0dHJpYnV0 +ZSgnZGF0YS10eXAnKSwgcGFyc2VJbnQoZWwuZ2V0QXR0cmlidXRlKCdkYXRhLWlkeCcpLCAxMCkp +OyByZXR1cm47IH0KICAgICAgICAgICAgZWwgPSBlLnRhcmdldC5jbG9zZXN0KCdbZGF0YS1ha3Rp +b249InJvbGxlLXN1YnNpY2h0Il0nKTsKICAgICAgICAgICAgaWYgKGVsKSB7IHJvbGxlblN1YlNp +Y2h0TW9kYWwoZWwuZ2V0QXR0cmlidXRlKCdkYXRhLXR5cCcpLCBwYXJzZUludChlbC5nZXRBdHRy +aWJ1dGUoJ2RhdGEtaWR4JyksIDEwKSwgJ2FkbWluJyk7IHJldHVybjsgfQogICAgICAgICAgICBl +bCA9IGUudGFyZ2V0LmNsb3Nlc3QoJ1tkYXRhLWFrdGlvbj0icm9sbGUtc3RhdHNpY2h0Il0nKTsK +ICAgICAgICAgICAgaWYgKGVsKSB7IHJvbGxlblN1YlNpY2h0TW9kYWwoZWwuZ2V0QXR0cmlidXRl +KCdkYXRhLXR5cCcpLCBwYXJzZUludChlbC5nZXRBdHRyaWJ1dGUoJ2RhdGEtaWR4JyksIDEwKSwg +J3N0YXQnKTsgcmV0dXJuOyB9CiAgICAgICAgfSk7CiAgICAgICAgLy8gIk5ldWVyIEVpbnRyYWci +LUJ1dHRvbnMKICAgICAgICBbJ2RpcmVrdGlvbnNsZWl0dW5nJywgJ2Z1ZWhydW5nc3N0ZWxsZSdd +LmZvckVhY2goZnVuY3Rpb24odHlwKSB7CiAgICAgICAgICAgIHZhciBidG5OZXUgPSBkb2N1bWVu +dC5nZXRFbGVtZW50QnlJZCgnYnRuLScgKyB0eXAgKyAnLW5ldScpOwogICAgICAgICAgICBpZiAo +YnRuTmV1KSBidG5OZXUuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpIHsgcm9s +bGVuTmV1RWludHJhZyh0eXApOyB9KTsKICAgICAgICAgICAgdmFyIGJ0blNhdmUgPSBkb2N1bWVu +dC5nZXRFbGVtZW50QnlJZCgnYnRuLScgKyB0eXAgKyAnLXNwZWljaGVybicpOwogICAgICAgICAg +ICBpZiAoYnRuU2F2ZSkgYnRuU2F2ZS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9u +KCkgeyByb2xsZW5TcGVpY2hlcm4odHlwKTsgfSk7CiAgICAgICAgICAgIC8vIERpcnR5LU1hcmtp +ZXJ1bmcgYmVpIGplZGVyIEVpbmdhYmUgaW4gZGVyIGpld2VpbGlnZW4gVGFiZWxsZS4KICAgICAg +ICAgICAgdmFyIHRib2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodHlwICsgJy10Ym9keScp +OwogICAgICAgICAgICBpZiAodGJvZHkpIHsKICAgICAgICAgICAgICAgIHRib2R5LmFkZEV2ZW50 +TGlzdGVuZXIoJ2NoYW5nZScsIGZ1bmN0aW9uKCkgeyByb2xsZW5EaXJ0eVNldHplbih0eXAsIHRy +dWUpOyB9KTsKICAgICAgICAgICAgICAgIHRib2R5LmFkZEV2ZW50TGlzdGVuZXIoJ2lucHV0Jywg +ZnVuY3Rpb24oKSB7IHJvbGxlbkRpcnR5U2V0emVuKHR5cCwgdHJ1ZSk7IH0pOwogICAgICAgICAg +ICB9CiAgICAgICAgfSk7CgogICAgICAgIC8vIEdsb2JhbGVyIFRlc3Rlbi1CdXR0b246IGFscyBy +ZWd1bGFlcmVyIEVuZGFud2VuZGVyIGFuc2VoZW4KICAgICAgICB2YXIgYnRuVGVzdFJlZ3VsYWVy +ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2J0bi10ZXN0LXJlZ3VsYWVyJyk7CiAgICAgICAg +aWYgKGJ0blRlc3RSZWd1bGFlcikgYnRuVGVzdFJlZ3VsYWVyLmFkZEV2ZW50TGlzdGVuZXIoJ2Ns +aWNrJywgaW1wZXJzb25hdGVSZWd1bGFlcik7CiAgICAgICAgdmFyIGJ0bkZBU2F2ZSA9IGRvY3Vt +ZW50LmdldEVsZW1lbnRCeUlkKCdidG4tZmFjaGF1ZnNpY2h0LXNwZWljaGVybicpOwogICAgICAg +IGlmIChidG5GQVNhdmUpIGJ0bkZBU2F2ZS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0 +aW9uKCkgewogICAgICAgICAgICAvLyBCZWltIFNhdmU6IGxlZXJlIFJlaWhlbiAoa29tcGxldHQg +b2huZSBOYW1lIFVORCBvaG5lIE5XLUtlbm51bmcpCiAgICAgICAgICAgIC8vIHdlcmRlbiBnZWZp +bHRlcnQuIEFuZGVyZSBBdWZydWZlIChMb2VzY2hlbiwgTW9kYWwtU3BydW5nKSBsYXNzZW4KICAg +ICAgICAgICAgLy8gZGllIExpc3RlIHVudmVyYWVuZGVydCAoc2llaGUgZmFjaGF1ZnNpY2h0QXVz +VGFiZWxsZUxlc2VuKS4KICAgICAgICAgICAgdmFyIGRhdGVuID0gZmFjaGF1ZnNpY2h0QXVzVGFi +ZWxsZUxlc2VuKHRydWUpOwogICAgICAgICAgICBhcGlQdXQoJy9hcGkvYWRtaW4vZmFjaGF1ZnNp +Y2h0JywgZGF0ZW4pLnRoZW4oZnVuY3Rpb24ocikgewogICAgICAgICAgICAgICAgWi5hZG1pbi5m +YWNoYXVmc2ljaHQgPSBkYXRlbjsKICAgICAgICAgICAgICAgIGZhY2hhdWZzaWNodFJlbmRlcm4o +KTsKICAgICAgICAgICAgICAgIGZhY2hhdWZzaWNodERpcnR5U2V0emVuKGZhbHNlKTsKICAgICAg +ICAgICAgICAgIHRvYXN0KCdGYWNoYXVmc2ljaHQgZ2VzcGVpY2hlcnQgKCcgKyBkYXRlbi5sZW5n +dGggKyAnIEVpbnRyw6RnZSknLCAnZXJmb2xnJyk7CiAgICAgICAgICAgICAgICAvLyBTZXJ2ZXIt +UmVzcG9uc2U6IF9icmF1Y2h0X21haWx0byBudXIgYmVpIEdlc2FtdHZlcmFudHdvcnRsaWNoLQog +ICAgICAgICAgICAgICAgLy8gV2VjaHNlbDsgRkEtU2VoZW4tRmxhZy1EaWZmcyBzaW5kIEluLUFw +cC1IaW53ZWlzZS4KICAgICAgICAgICAgICAgIGlmIChyICYmIHIuX2JyYXVjaHRfbWFpbHRvKSB2 +ZXJhbnR3b3J0dW5nc01haWx0b0ZldWVybihyLl9icmF1Y2h0X21haWx0byk7CiAgICAgICAgICAg +IH0pLmNhdGNoKGZ1bmN0aW9uKGUpIHsgdG9hc3QoJ0ZlaGxlcjogJyArIGUubWVzc2FnZSwgJ2Zl +aGxlcicpOyB9KTsKICAgICAgICB9KTsKICAgICAgICAvLyBEaXJ0eS1NYXJrZXI6IGplZGUgVGFi +ZWxsZW4tRWluZ2FiZSBzZXR6dCBkYXMgRmxhZy4gRGVsZWdhdGlvbiBhbQogICAgICAgIC8vIHRi +b2R5IHJlaWNodCDigJQgZ2lsdCBhdWNoIGZ1ZXIgc3BhZXRlciBkeW5hbWlzY2ggZ2VyZW5kZXJ0 +ZSBSb3dzLgogICAgICAgIHZhciBmYVRib2R5RGlydHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ +ZCgnZmFjaGF1ZnNpY2h0LXRib2R5Jyk7CiAgICAgICAgaWYgKGZhVGJvZHlEaXJ0eSkgewogICAg +ICAgICAgICBmYVRib2R5RGlydHkuYWRkRXZlbnRMaXN0ZW5lcignaW5wdXQnLCBmdW5jdGlvbihl +KSB7CiAgICAgICAgICAgICAgICBpZiAoZS50YXJnZXQuY2xhc3NMaXN0ICYmIChlLnRhcmdldC5j +bGFzc0xpc3QuY29udGFpbnMoJ2ZhY2hhdWZzaWNodC1pbnB1dCcpIHx8IGUudGFyZ2V0LmNsYXNz +TGlzdC5jb250YWlucygnZmFjaGF1ZnNpY2h0LWNoaycpIHx8IGUudGFyZ2V0LmNsYXNzTGlzdC5j +b250YWlucygnZmFjaGF1ZnNpY2h0LWdlc2FtdC1jaGsnKSkpIHsKICAgICAgICAgICAgICAgICAg +ICBmYWNoYXVmc2ljaHREaXJ0eVNldHplbih0cnVlKTsKICAgICAgICAgICAgICAgIH0KICAgICAg +ICAgICAgfSk7CiAgICAgICAgICAgIGZhVGJvZHlEaXJ0eS5hZGRFdmVudExpc3RlbmVyKCdjaGFu +Z2UnLCBmdW5jdGlvbihlKSB7CiAgICAgICAgICAgICAgICBpZiAoZS50YXJnZXQuY2xhc3NMaXN0 +ICYmIChlLnRhcmdldC5jbGFzc0xpc3QuY29udGFpbnMoJ2ZhY2hhdWZzaWNodC1jaGsnKSB8fCBl +LnRhcmdldC5jbGFzc0xpc3QuY29udGFpbnMoJ2ZhY2hhdWZzaWNodC1nZXNhbXQtY2hrJykpKSB7 +CiAgICAgICAgICAgICAgICAgICAgZmFjaGF1ZnNpY2h0RGlydHlTZXR6ZW4odHJ1ZSk7CiAgICAg +ICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlv +biByZXN0TGlzdGVuZXJFaW5yaWNodGVuKCkgewogICAgICAgIC8vIFdvY2hlbnBsYW4KICAgICAg +ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnd3Atdm9yd29jaGUnKS5hZGRFdmVudExpc3RlbmVy +KCdjbGljaycsIHdwVm9yd29jaGUpOwogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd3 +cC1uYWVjaHN0ZS13b2NoZScpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgd3BOYWVjaHN0ZVdv +Y2hlKTsKICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnd3AtYWt0dWVsbGUtd29jaGUn +KS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHdwQWt0dWVsbGVXb2NoZSk7CiAgICAgICAgdmFy +IGJ0bldwRHJ1Y2sgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnd3AtZHJ1Y2tlbicpOwogICAg +ICAgIGlmIChidG5XcERydWNrKSBidG5XcERydWNrLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywg +ZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCgnZHJ1 +Y2tlbi13b2NoZW5wbGFuJyk7CiAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAg +ICAgICAgICAgICAgICB3aW5kb3cucHJpbnQoKTsKICAgICAgICAgICAgICAgIHNldFRpbWVvdXQo +ZnVuY3Rpb24oKSB7IGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZSgnZHJ1Y2tlbi13b2No +ZW5wbGFuJyk7IH0sIDUwMCk7CiAgICAgICAgICAgIH0sIDUwKTsKICAgICAgICB9KTsKCiAgICAg +ICAgLy8gU3RhdGlzdGlrICsgTG9nYnVjaDogTGlzdGVuZXIgdmlhIEV2ZW50LURlbGVnYXRpb24s +IHdlaWwgZGllCiAgICAgICAgLy8gTWFya3VwLUJsb2Vja2UgZnVlciBVbmJlcmVjaHRpZ3RlIHp3 +YXIgaW0gRE9NIHN0ZWhlbiwgZGllCiAgICAgICAgLy8gS2xpY2stWmllbGUgYWJlciBudXIgZnVl +ciBCZXJlY2h0aWd0ZSBzaWNodGJhciB3ZXJkZW4uCiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRM +aXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbihlKSB7CiAgICAgICAgICAgIGlmIChlLnRhcmdldCAm +JiBlLnRhcmdldC5pZCA9PT0gJ2J0bi1zdGF0cy1sYWRlbicpIHsKICAgICAgICAgICAgICAgIHN0 +YXRpc3Rpa0xhZGVuKCk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAg +ICAgICAgICAgdmFyIGluZm8gPSBlLnRhcmdldC5jbG9zZXN0ICYmIGUudGFyZ2V0LmNsb3Nlc3Qo +Jy5zdGF0cy1pbmZvLWJ0bicpOwogICAgICAgICAgICBpZiAoaW5mbykgc3RhdEluZm9aZWlnZW4o +aW5mby5nZXRBdHRyaWJ1dGUoJ2RhdGEtc3RhdHMtaW5mbycpKTsKICAgICAgICB9KTsKICAgICAg +ICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBmdW5jdGlvbihlKSB7CiAgICAg +ICAgICAgIGlmIChlLnRhcmdldCAmJiBlLnRhcmdldC5pZCA9PT0gJ3N0YXRzLWdydXBwZW4tZmls +dGVyJykgewogICAgICAgICAgICAgICAgc3RhdEZpbHRlclNldHplbihlLnRhcmdldC52YWx1ZSk7 +CiAgICAgICAgICAgICAgICBpZiAoWi5zdGF0aXN0aWspIHN0YXRpc3Rpa1JlbmRlcm4oKTsKICAg +ICAgICAgICAgfQogICAgICAgIH0pOwogICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIo +J2lucHV0JywgZnVuY3Rpb24oZSkgewogICAgICAgICAgICBpZiAoZS50YXJnZXQgJiYgZS50YXJn +ZXQuaWQgPT09ICdsb2ctc3VjaGUnKSBsb2didWNoRmlsdGVybigpOwogICAgICAgIH0pOwogICAg +fQoKICAgIC8vID09PT09IEluaXQgPT09PT0KCiAgICBmdW5jdGlvbiBpbml0KCkgewogICAgICAg +IHRoZW1lV2llZGVyaGVyc3RlbGxlbigpOwogICAgICAgIGhlYXJ0YmVhdFN0YXJ0ZW4oKTsKICAg +ICAgICBlbnR3dXJmQXV0b0NsZWFudXAoKTsgICAgLy8gU3BlYyBGLjQ6IGFsdGUgTW9kYWwtRW50 +d3VlcmZlICg+MTQgVGFnZSkgbG9lc2NoZW4KCiAgICAgICAgZGF0ZW5MYWRlbigpLnRoZW4oZnVu +Y3Rpb24oKSB7CiAgICAgICAgICAgIGdyaWRSZW5kZXJuKCk7CiAgICAgICAgICAgIHNjcm9sbFN5 +bmMoKTsKICAgICAgICAgICAgZXZlbnRMaXN0ZW5lckVpbnJpY2h0ZW4oKTsKICAgICAgICAgICAg +enVtSGV1dGlnZW5EYXR1bSgpOwogICAgICAgICAgICAvLyBadWxldHp0IGFrdGl2ZSBBbnNpY2h0 +IHdpZWRlcmhlcnN0ZWxsZW4sIGRhbWl0IGVpbiBCcm93c2VyLVJlZnJlc2gKICAgICAgICAgICAg +Ly8gKEY1KSBkZW4gVXNlciBuaWNodCBhdXMgU3RhdGlzdGlrL0xvZ2J1Y2gvQWRtaW4gaW4gZGll +IFBsYW51bmdzLQogICAgICAgICAgICAvLyBhbnNpY2h0IHp1cnVlY2t3aXJmdC4gTGllZ3QgaW0g +c2Vzc2lvblN0b3JhZ2Ug4oCUIGJlaW0gU3RhcnQgdWViZXIKICAgICAgICAgICAgLy8gZGdsLmJh +dCAoPSBuZXVlciBUYWIsIGxlZXJlcyBzZXNzaW9uU3RvcmFnZSkgYmxlaWJ0IGVzIGJlaQogICAg +ICAgICAgICAvLyAncGxhbnVuZyc7IG51ciBJbi1UYWItUmVmcmVzaCBoYWVsdCBkaWUgbGV0enRl +IEFuc2ljaHQuCiAgICAgICAgICAgIC8vIGFuc2ljaHRXZWNoc2VsbigpIHBydWVmdCBkaWUgUmVj +aHRlIHNlbGJzdCB1bmQgZmFlbGx0IG5vdGZhbGxzCiAgICAgICAgICAgIC8vIGF1ZiAncGxhbnVu +ZycgenVydWVjay4KICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgIHZhciBsZXR6dGVB +bnNpY2h0ID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgndmkzLmFrdGl2ZUFuc2ljaHQnKTsKICAg +ICAgICAgICAgICAgIGlmIChsZXR6dGVBbnNpY2h0ICYmIGxldHp0ZUFuc2ljaHQgIT09ICdwbGFu +dW5nJykgewogICAgICAgICAgICAgICAgICAgIGFuc2ljaHRXZWNoc2VsbihsZXR6dGVBbnNpY2h0 +KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBjYXRjaCAoZSkgeyAvKiBpZ25vcmUg +Ki8gfQogICAgICAgICAgICAvLyBGYWxscyBub2NoIGFsdGUgbG9jYWxTdG9yYWdlLUVpbnRyYWVn +ZSBydW1saWVnZW4gKE1pZ3JhdGlvbik6CiAgICAgICAgICAgIC8vIGVpbm1hbGlnIGF1ZnJhZXVt +ZW4sIGRhbWl0IG5pY2h0IHZlcnNlaGVudGxpY2ggZGVyIFdlcnQKICAgICAgICAgICAgLy8gd2ll +ZGVyIHJlaW5rb21tdCwgZmFsbHMgaWNoIGF1cyBWZXJzZWhlbiBkYXJhdWYgZ3JlaWZlLgogICAg +ICAgICAgICB0cnkgeyBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgndmkzLmFrdGl2ZUFuc2ljaHQn +KTsgfSBjYXRjaCAoZSkgeyAvKiBpZ25vcmUgKi8gfQogICAgICAgICAgICAvLyBUb3BiYXItQXZh +dGFyIGZ1ZXIgZGllIGVpZ2VuZSBQZXJzb24gc2V0emVuIChzaWNodGJhciBudXIsCiAgICAgICAg +ICAgIC8vIHdlbm4gZWluZSBQZXJzb25JZCB6dWdlb3JkbmV0IGlzdCDigJQgc29uc3QgYmxlaWJ0 +IGRlciBTbG90IGxlZXIpLgogICAgICAgICAgICBtZWluQXZhdGFyVG9wYmFyQWt0dWFsaXNpZXJl +bigpOwogICAgICAgICAgICAvLyBMaXZlLVN5bmMgc3RhcnRlbjogcG9sbHQgL2FwaS9wbGFudW5n +L2NoYW5nZXMgKyAvYXBpL2xvY2svemVsbGVuCiAgICAgICAgICAgIC8vIGFsbGUgM3MsIGJsZW5k +ZXQgZnJlbWRlIExvY2stSW5kaWthdG9yZW4gZWluIHVuZCBsYWVzc3QgcmVtb3RlCiAgICAgICAg +ICAgIC8vIGdlYWVuZGVydGUgWmVsbGVuIGt1cnogYXVmbGV1Y2h0ZW4uCiAgICAgICAgICAgIHN5 +bmNXb3JrZXJTdGFydGVuKCk7CiAgICAgICAgICAgIGZ1ZWxsSW5pdCgpOyAgIC8vIEV4Y2VsLWFl +aG5saWNoZXIgRnVlbGwtR3JpZmY6IGdsb2JhbGUgTGlzdGVuZXIKICAgICAgICAgICAgLy8gSGlu +d2Vpcy1TeXN0ZW06IGVpbm1hbCBpbml0aWFsIGxhZGVuLCBkYW5uIHBvbGxlZCBkZXIgU3luYy1X +b3JrZXIuCiAgICAgICAgICAgIC8vIFNpY2h0YmFyIG51ciBmdWVyIFNVICsgR2VzYW10dmVyYW50 +d29ydGxpY2hlIChoaW53ZWlzZS5qcyBwcnVlZnQgc2VsYnN0KS4KICAgICAgICAgICAgaGlud2Vp +c2VMYWRlbigpLnRoZW4oaGlud2Vpc2VBbnplaWdlQWt0dWFsaXNpZXJlbik7CiAgICAgICAgICAg +IHRvYXN0KCdWSTMgREdMLVBsYW51bmcgZ2VsYWRlbiDigJQgJyArIFoucGVyc29uZW4ubGVuZ3Ro +ICsgJyBQZXJzb25lbicsICdpbmZvJyk7CiAgICAgICAgICAgIC8vIFVudGVyYmVzZXR6dW5ncy1X +YXJudW5nIGZ1ZXIgV2FjaGxlaXR1bmcvU1UgKGxlaWNodCB2ZXJ6b2VnZXJ0LAogICAgICAgICAg +ICAvLyBkYW1pdCBkZXIgQmVncnVlc3N1bmdzLVRvYXN0IHZvcmhlciBzaWNodGJhciBpc3QpCiAg +ICAgICAgICAgIHNldFRpbWVvdXQodW50ZXJiZXNldHp1bmdXYXJudW5nWmVpZ2VuLCAxNTAwKTsK +ICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlcnIpIHsKICAgICAgICAgICAgdG9hc3QoJ0ZlaGxl +ciBiZWltIExhZGVuOiAnICsgZXJyLm1lc3NhZ2UsICdmZWhsZXInKTsKICAgICAgICAgICAgY29u +c29sZS5lcnJvcignTGFkZWZlaGxlcjonLCBlcnIpOwogICAgICAgIH0pOwoKICAgICAgICAvLyBC +ZWltIFNjaGxpZXNzZW46IGVpZ2VuZXMgRWRpdC1Mb2NrIG5vY2ggZnJlaWdlYmVuLCBkYW1pdCBr +ZWluCiAgICAgICAgLy8gdmVyd2Fpc3RlciBMb2NrIGltIEZpbGVzeXN0ZW0genVydWVja2JsZWli +dC4KICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignYmVmb3JldW5sb2FkJywgYWxsZUVp +Z2VuZW5Mb2Nrc0ZyZWlnZWJlbkJlYWNvbik7CiAgICB9CgogICAgaWYgKGRvY3VtZW50LnJlYWR5 +U3RhdGUgPT09ICdsb2FkaW5nJykgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVu +dExvYWRlZCcsIGluaXQpOwogICAgZWxzZSBpbml0KCk7Cgp9KSgpOwo= ### FILE: data/mainframe.html | 7724 PGRpdiBpZD0iYW5zaWNodC1zdGF0aXN0aWsiIGNsYXNzPSJhbnNpY2h0IHZlcnN0ZWNrdCI+CiAg ICA8ZGl2IGNsYXNzPSJsYXlvdXQtc3RhdGlzdGlrIj4KICAgICAgICA8ZGl2IGNsYXNzPSJhZG1p diff --git a/VI3DGL/sync-bundle-02.txt b/VI3DGL/sync-bundle-02.txt index fb85e5d..71dd547 100644 --- a/VI3DGL/sync-bundle-02.txt +++ b/VI3DGL/sync-bundle-02.txt @@ -1,6 +1,6 @@ ### SYNC-TRANSFER 2/5 -- mit sync-entpacken.bat entpacken ### Base64 - NICHT von Hand bearbeiten. -### FILE: index.html | 129211 +### FILE: index.html | 133481 PCFET0NUWVBFIGh0bWw+CjwhLS0gU3RhbmQ6IDIwMjYtMDUtMTQgLS0+CjxodG1sIGxhbmc9ImRl Ij4KPGhlYWQ+CiAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CiAgICA8bWV0YSBuYW1lPSJ2aWV3 cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCI+CiAg @@ -299,1975 +299,2050 @@ PSJuYXYtaW1wb3J0Ij5FeGNlbC1JbXBvcnQ8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICA8 YnV0dG9uIGNsYXNzPSJhZG1pbi1uYXYtYnRuIiBkYXRhLWFkbWluLXRhYj0iZXhwb3J0IiBpZD0i bmF2LWV4cG9ydCI+RXhjZWwtRXhwb3J0PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgPGJ1 dHRvbiBjbGFzcz0iYWRtaW4tbmF2LWJ0biIgZGF0YS1hZG1pbi10YWI9InRlc3RkYXRlbiI+VGVz -dGRhdGVuPC9idXR0b24+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9hc2lk -ZT4KCiAgICAgICAgICAgIDwhLS0gQWRtaW4tSW5oYWx0IC0tPgogICAgICAgICAgICA8bWFpbiBj -bGFzcz0iYWRtaW4taW5oYWx0Ij4KCiAgICAgICAgICAgICAgICA8IS0tIFJlYWQtb25seS1CYW5u -ZXI6IGVyc2NoZWludCwgd2VubiBkZXIgZWluZ2Vsb2dndGUgQmVudXR6ZXIKICAgICAgICAgICAg -ICAgICAgICAgZGVuIEFkbWluLUJlcmVpY2ggbnVyIGxlc2VuZCBzZWhlbiBkYXJmIChhbGxlIFJv -bGxlbgogICAgICAgICAgICAgICAgICAgICBhdXNzZXIgU3VwZXJVc2VyKS4gV2lyZCB2b24gYWRt -aW5CYW5uZXJBa3R1YWxpc2llcmVuKCkKICAgICAgICAgICAgICAgICAgICAgaW4gYWRtaW4uanMg -ZWluLS9hdXNnZWJsZW5kZXQgdW5kIG1pdCBSb2xsZSBiZWZ1ZWxsdC4gLS0+CiAgICAgICAgICAg -ICAgICA8ZGl2IGlkPSJhZG1pbi1yZWFkb25seS1iYW5uZXIiIGNsYXNzPSJhZG1pbi1iYW5uZXIg -YWRtaW4tYmFubmVyLWluZm8gdmVyc3RlY2t0IiByb2xlPSJzdGF0dXMiIGFyaWEtbGl2ZT0icG9s -aXRlIj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYWRtaW4tYmFubmVyLWljb24i -IGFyaWEtaGlkZGVuPSJ0cnVlIj4mIzk0MzI7PC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxk -aXYgY2xhc3M9ImFkbWluLWJhbm5lci10ZXh0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGRp -diBjbGFzcz0iYWRtaW4tYmFubmVyLXRpdGVsIj5OdXItTGVzZS1Nb2R1czwvZGl2PgogICAgICAg -ICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1pbi1iYW5uZXItYm9keSIgaWQ9ImFkbWlu -LXJlYWRvbmx5LWJhbm5lci10ZXh0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIER1IHNp -ZWhzdCBkaWVzZW4gQmVyZWljaCBudXIgbGVzZW5kLiAmQXVtbDtuZGVydW5nZW4gc2luZCBkZW0g -U3VwZXJVc2VyIHZvcmJlaGFsdGVuLgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAg -ICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAg -ICAgICAgIDwhLS0gRHJhZnQtUmVzdG9yZS1CYW5uZXI6IGVyc2NoZWludCwgd2VubiBiZWltIFRh -Yi1XZWNoc2VsIGVpbgogICAgICAgICAgICAgICAgICAgICB1bmdlc2ljaGVydGVyIEF1dG8tU2F2 -ZS1EcmFmdCBpbSBsb2NhbFN0b3JhZ2UgZ2VmdW5kZW4gd3VyZGUKICAgICAgICAgICAgICAgICAg -ICAgKEJyb3dzZXItQ3Jhc2gsIEY1LVJlbG9hZCwgdmVyc2VoZW50bGljaGVzIFNjaGxpZXNzZW4p -LgogICAgICAgICAgICAgICAgICAgICBhZG1pbkRyYWZ0QmFubmVyQW5iaWV0ZW4oKSBpbiBhZG1p -bi5qcyBiZXN0dWVja3QgVGV4dCArIEJ1dHRvbnMuIC0tPgogICAgICAgICAgICAgICAgPGRpdiBp -ZD0iYWRtaW4tZHJhZnQtYmFubmVyIiBjbGFzcz0iYWRtaW4tYmFubmVyIGFkbWluLWJhbm5lci13 -YXJuIHZlcnN0ZWNrdCIgcm9sZT0ic3RhdHVzIiBhcmlhLWxpdmU9InBvbGl0ZSI+CiAgICAgICAg -ICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImFkbWluLWJhbm5lci1pY29uIiBhcmlhLWhpZGRlbj0i -dHJ1ZSI+JiM5MjAxOzwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1p -bi1iYW5uZXItdGV4dCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFkbWlu -LWJhbm5lci10aXRlbCI+VW5nZXNpY2hlcnRlICZBdW1sO25kZXJ1bmdlbiB3aWVkZXJoZXJzdGVs -bGVuPzwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1pbi1iYW5u -ZXItYm9keSIgaWQ9ImFkbWluLWRyYWZ0LWJhbm5lci10ZXh0Ij4KICAgICAgICAgICAgICAgICAg -ICAgICAgICAgIER1IGhhc3QgaW4gZGllc2VtIFRhYiAmQXVtbDtuZGVydW5nZW4sIGRpZSBub2No -IG5pY2h0IGdlc3BlaWNoZXJ0IHNpbmQuCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pgog -ICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOjhweDtkaXNwbGF5 -OmZsZXg7Z2FwOjhweCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9 -ImJ1dHRvbiIgaWQ9ImFkbWluLWRyYWZ0LXJlc3RvcmUiIGNsYXNzPSJidG4gYnRuLXByaW1hZXIg -YnRuLWtsZWluIj5XaWVkZXJoZXJzdGVsbGVuPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAg -ICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgaWQ9ImFkbWluLWRyYWZ0LXZlcndlcmZlbiIg -Y2xhc3M9ImJ0biBidG4tc2VrIGJ0bi1rbGVpbiI+VmVyd2VyZmVuPC9idXR0b24+CiAgICAgICAg -ICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAg -ICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgPCEtLSBUYWI6IFBlcnNvbmFsIC0tPgog -ICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4tdGFiIiBpZD0iYWRtaW4tdGFiLXBlcnNv -bmFsIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1pbi1rb3BmIj4KICAgICAg -ICAgICAgICAgICAgICAgICAgPGgyPlBlcnNvbmFsdmVyd2FsdHVuZzwvaDI+CiAgICAgICAgICAg -ICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6ZmxleDtnYXA6MTJweDthbGlnbi1pdGVt -czpjZW50ZXI7ZmxleC13cmFwOndyYXAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxh -YmVsIHN0eWxlPSJkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHg7Zm9udC1z -aXplOjEzcHg7Y3Vyc29yOnBvaW50ZXIiIHRpdGxlPSJVbWdlc2V0enRlIGluIGRpZXNlciBUYWJl -bGxlIGFuemVpZ2VuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlw -ZT0iY2hlY2tib3giIGlkPSJhZG1pbi1wZXJzb25hbC1maWx0ZXIiPiBVbWdlc2V0enRlIGVpbmJs -ZW5kZW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgICAgICAg -ICAgICAgICAgICAgICA8bGFiZWwgc3R5bGU9ImRpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50 -ZXI7Z2FwOjZweDtmb250LXNpemU6MTNweDtjdXJzb3I6cG9pbnRlciIgdGl0bGU9IlVtZ2VzZXR6 -dGUgYXVjaCBpbiBkZXIgUGxhbnVuZ3MtQW5zaWNodCBlaW5ibGVuZGVuIChuaWNodCBlZGl0aWVy -YmFyLCBudXIgenVyIFJlY2hlcmNoZSkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg -IDxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9ImNoay11bWdlc2V0enRlLWVpbmJsZW5kZW4iPiBJ -biBQbGFudW5ncy1BbnNpY2h0IGVpbmJsZW5kZW4KICAgICAgICAgICAgICAgICAgICAgICAgICAg -IDwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgaWQ9InBhcGllcmtv -cmItZmlsdGVyLXplaWxlIiBjbGFzcz0idmVyc3RlY2t0IiBzdHlsZT0iZGlzcGxheTpmbGV4O2Fs -aWduLWl0ZW1zOmNlbnRlcjtnYXA6NnB4O2ZvbnQtc2l6ZToxM3B4O2N1cnNvcjpwb2ludGVyIiB0 -aXRsZT0iU29mdC1nZWzDtnNjaHRlIFBlcnNvbmVuIGltIFBhcGllcmtvcmIgYW56ZWlnZW4gKG51 -ciBiZWkgYWt0aXZlbSBGZWF0dXJlKSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg -PGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iYWRtaW4tcGFwaWVya29yYi1maWx0ZXIiPiBQYXBp -ZXJrb3JiIGVpbmJsZW5kZW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+CiAg -ICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tbWFudWVsbGUtc29ydGll -cnVuZyIgY2xhc3M9ImJ0biBidG4tc2VrIiB0aXRsZT0iRsO8aHJ1bmdza3LDpGZ0ZSAoQeKAk0Mg -dW5kIFdEKSBwZXIgRHJhZyAmYW1wOyBEcm9wIGluIG5ldWUgUmVpaGVuZm9sZ2UgYnJpbmdlbiI+ -TWFudWVsbGUgU29ydGllcnVuZzwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAg -PGJ1dHRvbiBpZD0iYnRuLXBlcnNvbi1uZXUiIGNsYXNzPSJidG4gYnRuLWVyZm9sZyI+TmV1ZSBQ -ZXJzb248L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAg -ICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPCEtLSBOZXVpbXBvcnQtQmxvY2s6 -IGVyc2NoZWludCwgd2VubiBQZXJzb25lbiBtaXQgaW1wb3J0TmV1QW0tTWFya2VyCiAgICAgICAg -ICAgICAgICAgICAgICAgICB2b3JoYW5kZW4gc2luZCAoRXhjZWwtSW1wb3J0ICJuZXUgYW5sZWdl -biIpLiBVc2VyIGthbm4gZGllIFBlcnNvbmVuCiAgICAgICAgICAgICAgICAgICAgICAgICBoaWVy -IGRpcmVrdCBuYWNocGZsZWdlbiB1bmQgZWluemVsbiBhdWYgIkVybGVkaWd0IiBzZXR6ZW4uCiAg -ICAgICAgICAgICAgICAgICAgICAgICBCbG9jayB2ZXJzY2h3aW5kZXQgYXV0b21hdGlzY2gsIHNv -YmFsZCBhbGxlIE1hcmtlciB3ZWcgc2luZC4gLS0+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBp -ZD0icGVyc29uYWwtbmV1aW1wb3J0LWJsb2NrIiBjbGFzcz0idmVyc3RlY2t0Ij48L2Rpdj4KICAg -ICAgICAgICAgICAgICAgICA8ZGV0YWlscyBjbGFzcz0iYWRtaW4taW5mbyIgZGF0YS1pbmZvLWtl -eT0icGVyc29uYWwiIG9wZW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzdW1tYXJ5PjxzcGFu -IGNsYXNzPSJhZG1pbi1pbmZvLWNoZXYiPuKWuDwvc3Bhbj5IaW53ZWlzZSB6dXIgUGVyc29uYWx2 -ZXJ3YWx0dW5nPHNwYW4gY2xhc3M9ImFkbWluLWluZm8tYmFkZ2UiPkF1ZmtsYXBwZW4gLyBadWts -YXBwZW48L3NwYW4+PC9zdW1tYXJ5PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNz -PSJhZG1pbi1pbmZvLWJvZHkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9u -Zz5ad2Vjazo8L3N0cm9uZz4gWmVudHJhbGUgVmVyd2FsdHVuZyBhbGxlciBNaXRhcmJlaXRlciwg -ZGllIGluIGRlciBEaWVuc3RwbGFudW5nIGVyc2NoZWluZW4uIEplZGUgUGVyc29uIGJla29tbXQg -U3RhbW1kYXRlbiAoTmFtZSwgRGllbnN0Z3JhZCwgVGVsZWZvbiwgTlctS2VubnVuZywgRGllbnN0 -Z3J1cHBlLCBTdGFuZG9ydCkgc293aWUgZWluZW4gYWt0aXZlbiBvZGVyIHVtZ2VzZXR6dGVuIFN0 -YXR1cy48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPlJhbmdmb2xn -ZTo8L3N0cm9uZz4gRGllIFJhbmctU3BhbHRlIHplaWd0IGRlbiByb2hlbiBQb3NpdGlvbnMtV2Vy -dCAoei5CLiA8Y29kZT4xMTE8L2NvZGU+IOKAlCDDvGJlcm5vbW1lbiBhdXMgZGVtIEV4Y2VsLUlt -cG9ydCkuIFp1bSBVbXNvcnRpZXJlbiBudXR6ZSBkZW4gQnV0dG9uIDxlbT5NYW51ZWxsZSBTb3J0 -aWVydW5nPC9lbT4gb2JlbiDigJQgZG9ydCBrw7ZubmVuIEbDvGhydW5nc2tyw6RmdGUgKEHigJND -IHVuZCBXRCkgcGVyIERyYWcgJmFtcDsgRHJvcCBuZXUgYW5nZW9yZG5ldCB3ZXJkZW4uPC9wPgog -ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5EaWVuc3RncmFkOjwvc3Ryb25n -PiBPcHRpb25hbCDigJQgei4gQi4gUEhLLCBQT0ssIFBLLiBXaXJkIGluIGRlciBOYW1lbnNzcGFs -dGUgYWxzIFByw6RmaXggdm9yIGRlbSBOYWNobmFtZW4gYW5nZXplaWd0LjwvcD4KICAgICAgICAg -ICAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+RGllbnN0Z3J1cHBlIChBL0IvQy9XRC9XTCk6 -PC9zdHJvbmc+IEJlc3RpbW10IGRpZSBSb3RhdGlvbiBhbiBkZW4gU3RhbmRvcnRlbi4gQS9CL0Mg -cm90aWVyZW4gaW4gQUJDLS9CQ0EtL0NBQi1TY2hpY2h0Zm9sZ2UgZHVyY2ggRnLDvGgvU3DDpHQv -TmFjaHQuIFdEIChXYWNoZGllbnN0KSB1bmQgV0wgKFdhY2hsZWl0dW5nKSBzaW5kIGZlc3RlIFNv -bmRlcmdydXBwZW4gb2huZSBSb3RhdGlvbi4gS8O8cnplbCB1bmQgQmV6ZWljaG51bmdlbiBsYXNz -ZW4gc2ljaCBpbSBUYWIgPGI+RGllbnN0Z3J1cHBlbjwvYj4gYW5wYXNzZW4g4oCUIFVtYmVuZW5u -dW5nIGthc2thZGllcnQgYXV0b21hdGlzY2ggYXVmIGFsbGUgUGVyc29uZW4uPC9wPgogICAgICAg -ICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OVy1LZW5udW5nOjwvc3Ryb25nPiBEaWUg -TmV0endlcmstS2VubnVuZyAoei5CLiA8Y29kZT5ET01BSU5cbWF4Lm11c3Rlcm1hbm48L2NvZGU+ -KSB3aXJkIGF1dG9tYXRpc2NoIGRlbSBhbmdlbWVsZGV0ZW4gV2luZG93cy1CZW51dHplciB6dWdl -b3JkbmV0LiBPaG5lIEtlbm51bmcgZXJrZW5udCBkYXMgU3lzdGVtIGRpZSBQZXJzb24gbmljaHQg -4oCUIEZ1bmt0aW9uZW4gd2llIOKAnkZyZW1kLcOEbmRlcnVuZyBXYXJudW5nIiBvZGVyIHBlcnPD -tm5saWNoZXIgUGxhbiBmdW5rdGlvbmllcmVuIGRhbm4gbmljaHQuPC9wPgogICAgICAgICAgICAg -ICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5FLU1haWw6PC9zdHJvbmc+IE9wdGlvbmFsLiBXaXJk -IHZlcndlbmRldCwgd2VubiBkaWUgQmVuYWNocmljaHRpZ3VuZ3NmdW5rdGlvbiBha3RpdmllcnQg -aXN0IChUYWIgPGI+RWluc3RlbGx1bmdlbjwvYj4pLjwvcD4KICAgICAgICAgICAgICAgICAgICAg -ICAgICAgIDxwPjxzdHJvbmc+VW1nZXNldHp0Ojwvc3Ryb25nPiBQZXJzb25lbiBtaXQgU3RhdHVz -IOKAnlVtZ2VzZXR6dCIgd2VyZGVuIGF1cyBkZXIgbGF1ZmVuZGVuIFBsYW51bmcgZW50ZmVybnQs -IGlocmUgSGlzdG9yaWUgYmxlaWJ0IGFiZXIgZXJoYWx0ZW4gKHp1ciBSZWNoZXJjaGUpLiBFaW50 -csOkZ2Uga8O2bm5lbiB3ZWl0ZXJoaW4gYW5nZXplaWd0IHdlcmRlbiwgc2luZCBhYmVyIG5pY2h0 -IG1laHIgZWRpdGllcmJhci4gRGllIENoZWNrYm94IG9iZW4gcmVjaHRzIGJsZW5kZXQgc2llIGJl -aSBCZWRhcmYgZWluLjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+ -TMO2c2NoZW4gdnMuIFVtc2V0emVuOjwvc3Ryb25nPiBOdXIgYXVzbmFobXN3ZWlzZSBsw7ZzY2hl -biDigJQgdmVybG9yZW5lIEhpc3RvcmllLiBJbSBSZWdlbGZhbGwg4oCeVW1zZXR6ZW4iIChkZWFr -dGl2aWVyZW4pIGJldm9yenVnZW4uPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4K -ICAgICAgICAgICAgICAgICAgICA8L2RldGFpbHM+CiAgICAgICAgICAgICAgICAgICAgPHRhYmxl -IGlkPSJwZXJzb25hbC10YWJlbGxlIiBjbGFzcz0iYWRtaW4tdGFiZWxsZSI+CiAgICAgICAgICAg -ICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAg -ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+TmFtZTwvdGg+CiAgICAgICAgICAgICAg -ICAgICAgICAgICAgICAgICAgPHRoPlZvcm5hbWU8L3RoPgogICAgICAgICAgICAgICAgICAgICAg -ICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6MTIwcHgiIHRpdGxlPSJTdGFtbS1GdW5rdGlvbiAo -REdML0RHTGluL1dERi9XREZpbi8zLiBNYW5uLzMuIEZyYXUvV2FjaGxlaXR1bmcvR3J1cHBlbmbD -vGhydW5nKS4gQmVzdGltbXQgZGllIFZlcmFudHdvcnR1bmdzLVJlaWhlbmZvbGdlIGluIGRlciBT -Y2hpY2h0LiI+RnVua3Rpb248L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0 -aCBzdHlsZT0id2lkdGg6ODVweCIgdGl0bGU9IkRpZW5zdGdyYWQgKGbDvHIgU3VwZXJVc2VyIHBl -ciBLbGljayBlZGl0aWVyYmFyKSI+RGllbnN0Z3JhZDwvdGg+CiAgICAgICAgICAgICAgICAgICAg -ICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDo2NXB4IiB0aXRsZT0iRGllbnN0cmFuZyDigJQg -cm9oZSBQb3NpdGlvbiAoYXVzIEV4Y2VsLUltcG9ydCkuIFVtc29ydGllcmVuIHZpYSDigJ5NYW51 -ZWxsZSBTb3J0aWVydW5nIiBvYmVuLiI+RGllbnN0cmFuZzwvdGg+CiAgICAgICAgICAgICAgICAg -ICAgICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDo1MHB4IiB0aXRsZT0iT3JnYW5pc2F0aW9u -c2VpbmhlaXQgKFN0YW5kb3J0LUt1ZXJ6ZWwgYXVzIGRlbSBUYWIg4oCeU3RhbmRvcnRlIiDigJQg -ei5CLiBLQSwgSEEsIEJPKS4iPk9FPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg -ICA8dGggc3R5bGU9IndpZHRoOjYwcHgiIHRpdGxlPSJUZWxlZm9uLUR1cmNod2FobCAoaW50ZXJu -KS4iPlRlbC48L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0i -d2lkdGg6MTE1cHgiIHRpdGxlPSJOVy1LZW5udW5nIOKAlCBpLmQuUi4gOCBaZWljaGVuLCBsYW5n -ZSBET01BSU4tUHJhZWZpeGUgd2VyZGVuIGdnZi4gYWJnZXNjaG5pdHRlbiI+TlctS2VubnVuZzwv -dGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDo0OHB4 -IiB0aXRsZT0iSGV1dGlnZSBTY2hpY2h0cm90YXRpb24gKEZydWVoZGllbnN0IC8gU3BhZXRkaWVu -c3QgLyBOYWNodGRpZW5zdCkuIFdpcmQgYXVzIGRlciBTdGFuZG9ydC1TY2hpY2h0Zm9sZ2UgdW5k -IGRlciBEaWVuc3RncnVwcGUgZGVyIFBlcnNvbiBhYmdlbGVpdGV0LiBIb3ZlciB6ZWlndCBkZW4g -bmFlY2hzdGVuIFdlY2hzZWx0YWcuIj5Sb3RhPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAg -ICAgICAgICA8dGggc3R5bGU9IndpZHRoOjkwcHgiPkUtTWFpbDwvdGg+CiAgICAgICAgICAgICAg -ICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDo5NXB4Ij5HZWJ1cnRzdGFnPC90aD4K -ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9IndpZHRoOjcwcHgiIHRp -dGxlPSJRdWFsaWZpa2F0aW9uIGFscyBEaWVuc3RncnVwcGVuLUxlaXRlciAoREdMKSBiencuIOKA -njMuIE1hbm4vRnJhdSIgZGVyIFZlcmtlaHJzaW5zcGVrdGlvbiAzLiBNYXJraWVydCBkaWUgUGVy -c29uIGFscyB1ZWJlcmJlc2V0enVuZ3MtZmFlaGlnIGZ1ZXIgbGVlcmUgU2NoaWNodGVuIGluIGlo -cmVyIERpZW5zdGdydXBwZS4iPlZJMyBER0w8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAg -ICAgICAgIDx0aCBzdHlsZT0id2lkdGg6OTBweCIgdGl0bGU9IkFuc3ByZWNocGFydG5lciBpbSBJ -bmZvLUZlbnN0ZXIg4oCUIG51ciBmw7xyIExlaXR1bmdzLUZ1bmt0aW9uZW4gYWt0aXZpZXJiYXIg -KEZ1bmt0aW9uZW4gbWl0IOKAnkluIFBsYW51bmcgc2ljaHRiYXIgPSBuZWluIikiPkFuc3ByZWNo -LcKtcGFydG5lcjwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxl -PSJ3aWR0aDo2NHB4IiB0aXRsZT0iRGllc2UgUGVyc29uIGVpbnplbG4gYXVzIGRlciBQbGFudW5n -c2Fuc2ljaHQgLyBXb2NoZW5wbGFuIC8gUGVycy4gUGxhbiBhdXNibGVuZGVuIChncsO8biA9IHNp -Y2h0YmFyLCByb3QgPSBhdXNnZWJsZW5kZXQpLiBTdXBlclVzZXItb25seS4iPkluIFBsYW51bmc8 -L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6ODBw -eCI+U3RhdHVzPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9 -IndpZHRoOjIxMHB4Ij5Ba3Rpb25lbjwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8 -L3RyPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAg -ICAgICA8dGJvZHkgaWQ9InBlcnNvbmFsLXRib2R5Ij48L3Rib2R5PgogICAgICAgICAgICAgICAg -ICAgIDwvdGFibGU+CiAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICA8IS0t -IFRhYjogRmVpZXJ0YWdlIC0tPgogICAgICAgICAgICAgICAgPCEtLSBUYWI6IERpZW5zdGdydXBw -ZW4gLS0+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1pbi10YWIgdmVyc3RlY2t0IiBp -ZD0iYWRtaW4tdGFiLWdydXBwZW4iPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFk -bWluLWtvcGYiPgogICAgICAgICAgICAgICAgICAgICAgICA8aDI+RGllbnN0Z3J1cHBlbjwvaDI+ -CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRldGFpbHMg -Y2xhc3M9ImFkbWluLWluZm8iIGRhdGEtaW5mby1rZXk9ImdydXBwZW4iIG9wZW4+CiAgICAgICAg -ICAgICAgICAgICAgICAgIDxzdW1tYXJ5PjxzcGFuIGNsYXNzPSJhZG1pbi1pbmZvLWNoZXYiPuKW -uDwvc3Bhbj5IaW53ZWlzZSB6dSBEaWVuc3RncnVwcGVuPHNwYW4gY2xhc3M9ImFkbWluLWluZm8t -YmFkZ2UiPkF1ZmtsYXBwZW4gLyBadWtsYXBwZW48L3NwYW4+PC9zdW1tYXJ5PgogICAgICAgICAg -ICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1pbi1pbmZvLWJvZHkiPgogICAgICAgICAgICAg -ICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5XYXMgc2luZCBEaWVuc3RncnVwcGVuPzwvc3Ryb25n -PiBEaWVuc3RncnVwcGVuIGLDvG5kZWxuIE1pdGFyYmVpdGVyIG1pdCBkZW1zZWxiZW4gUm90YXRp -b25zcmh5dGhtdXMuIEJlaSBkZXIgVkkzIHNpbmQgZGFzIGRpZSBrbGFzc2lzY2hlbiA8Yj5BIC8g -QiAvIEM8L2I+IChXZWNoc2VsZGllbnN0LVJvdGF0aW9uKSwgcGx1cyBTb25kZXJncnVwcGVuIHdp -ZSA8Yj5LPC9iPiAoV2FjaGRpZW5zdCkgdW5kIDxiPkw8L2I+IChXYWNobGVpdHVuZykuPC9wPgog -ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5Lw7xyemVsIHZzLiBCZXplaWNo -bnVuZzo8L3N0cm9uZz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWw+CiAgICAg -ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5EYXMgPGI+S8O8cnplbDwvYj4gKHou -Qi4gPGNvZGU+QTwvY29kZT4sIDxjb2RlPldEPC9jb2RlPikgaXN0IGRpZSB0ZWNobmlzY2hlIEtl -bm51bmcgaW4gZGVuIERhdGVuIHVuZCB3aXJkIGluIGRlciBQZXJzb25lbi1aZWlsZSBhbmdlemVp -Z3QuIFdlbm4gZHUgZXMgw6RuZGVyc3QsIHdlcmRlbiBhdXRvbWF0aXNjaCBhbGxlIFBlcnNvbmVu -IGRlciBHcnVwcGUgYXVmIGRhcyBuZXVlIEvDvHJ6ZWwgbWlncmllcnQgKGthc2thZGllcnRlcyBV -cGRhdGUgaW4gPGNvZGU+cGxhbnVuZy5qc29uPC9jb2RlPikuPC9saT4KICAgICAgICAgICAgICAg -ICAgICAgICAgICAgICAgICAgICAgPGxpPkRpZSA8Yj5CZXplaWNobnVuZzwvYj4gKHouQi4g4oCe -V2FjaGRpZW5zdCIsIOKAnldhY2hsZWl0dW5nIikgZXJzY2hlaW50IGFscyBUcmVubmVyIGluIGRl -ciBOYW1lbnNsaXN0ZSBkZXIgUGxhbnVuZy4gRGllc2Uga2FubnN0IGR1IGZyZWkgYW5wYXNzZW4s -IG9obmUgRGF0ZW4genUgdmVybGllcmVuLjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAg -ICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAg -ICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+RmFyYmVuOjwvc3Ryb25nPiBIaW50ZXJncnVuZCB1 -bmQgU2NocmlmdGZhcmJlIHBybyBHcnVwcGUgZGlyZWt0IGVkaXRpZXJiYXIuIEVpbmUgTGl2ZS1W -b3JzY2hhdSB6ZWlndCBkYXMgcmVzdWx0aWVyZW5kZSBCYWRnZS4gRGllIEZhcmJlbiB3ZXJkZW4g -w7xiZXJhbGwgaW0gU3lzdGVtIHZlcndlbmRldCAoUGVyc29uZW4tQmFkZ2VzLCBHcnVwcGVuLVRy -ZW5uZXIgaW4gZGVyIFBlcnNvbmFsdmVyd2FsdHVuZywgR3J1cHBlbi1MYWJlbCBpbiBkZXIgUGxh -bnVuZ3MtWmVpbGUpLjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+ -TmV1ZSBHcnVwcGUgYW5sZWdlbjo8L3N0cm9uZz4gQnV0dG9uIDxlbT7igJ5OZXVlIERpZW5zdGdy -dXBwZSI8L2VtPiDDtmZmbmV0IGVpbmUgRWluZ2FiZXplaWxlLiBQZmxpY2h0ZmVsZGVyIHNpbmQg -S8O8cnplbCB1bmQgQmV6ZWljaG51bmc7IEZhcmJlbiBrw7ZubmVuIHp1bsOkY2hzdCDDvGJlcm5v -bW1lbiB3ZXJkZW4gdW5kIHNww6R0ZXIgYW5nZXBhc3N0IHdlcmRlbi48L3A+CiAgICAgICAgICAg -ICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPkdydXBwZSBsw7ZzY2hlbjo8L3N0cm9uZz4gTnVy -IG3DtmdsaWNoLCB3ZW5uIGtlaW5lIGFrdGl2ZSBQZXJzb24gbWVociBpbiBkZXIgR3J1cHBlIGlz -dC4gU2luZCBub2NoIFBlcnNvbmVuIHp1Z2V3aWVzZW4sIHplaWd0IGRlciBEaWFsb2cgZGllIEFu -emFobCB1bmQgYnJpY2h0IGFiIOKAlCBkYW5uIGVyc3QgZGllIFBlcnNvbmVuIGF1ZiBlaW5lIGFu -ZGVyZSBHcnVwcGUgdW1zZXR6ZW4gb2RlciB1bWdydXBwaWVyZW4uPC9wPgogICAgICAgICAgICAg -ICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5TcGVpY2hlcm46PC9zdHJvbmc+IE5hY2ggw4RuZGVy -dW5nZW4gYXVmIOKAnkRpZW5zdGdydXBwZW4gc3BlaWNoZXJuIiBrbGlja2VuLiBCZWkgZ2XDpG5k -ZXJ0ZW4gS8O8cnplbG4gd2VyZGVuIGFsbGUgdmVya27DvHBmdGVuIFBlcnNvbmVuIGF1dG9tYXRp -c2NoIGF1ZiBkYXMgbmV1ZSBLw7xyemVsIHVtZ2VzY2hyaWViZW4gKGtlaW4gRGF0ZW52ZXJsdXN0 -KS48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAg -IDwvZGV0YWlscz4KICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9ImFkbWluLXRhYmVs -bGUiIGlkPSJncnVwcGVuLXRhYmVsbGUiIHN0eWxlPSJtYXgtd2lkdGg6MTA0MHB4Ij4KICAgICAg -ICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRy -PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6OTBweCI+ -S8O8cnplbDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPkJlemVpY2hu -dW5nPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9IndpZHRo -OjcwcHgiPkhpbnRlcmdydW5kPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8 -dGggc3R5bGU9IndpZHRoOjcwcHgiPlNjaHJpZnQ8L3RoPgogICAgICAgICAgICAgICAgICAgICAg -ICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6ODBweCI+Vm9yc2NoYXU8L3RoPgogICAgICAgICAg -ICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6NzBweCI+UGVyc29uZW48L3Ro -PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6MTIwcHg7 -dGV4dC1hbGlnbjpjZW50ZXIiIHRpdGxlPSJXZW5uIGRlYWt0aXZpZXJ0LCB3ZXJkZW4gUGVyc29u -ZW4gZGllc2VyIEdydXBwZSBOSUNIVCBpbiBkZXIgUGxhbnVuZ3NhbnNpY2h0LCBpbSBXb2NoZW5w -bGFuIHVuZCBpbSBQZXJzLiBQbGFuIGFuZ2V6ZWlndCDigJQgYmxlaWJlbiBhYmVyIGluIGRlciBQ -ZXJzb25hbHZlcndhbHR1bmcgcGZsZWdiYXIuIj5JbiBQbGFudW5nIHNpY2h0YmFyPC90aD4KICAg -ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9IndpZHRoOjEzMHB4O3RleHQt -YWxpZ246Y2VudGVyIiB0aXRsZT0iV2VubiBha3RpdmllcnQsIGTDvHJmZW4gUGVyc29uZW4gZGll -c2VyIEdydXBwZSBpbSBQZXJzb25hbC1UYWIgYWxzIEFuc3ByZWNocGFydG5lciBtYXJraWVydCB3 -ZXJkZW4gKGdpbHQgenVzw6R0emxpY2ggenVyIEZ1bmt0aW9ucy1CZWRpbmd1bmcpLiBNYXJraWVy -dGUgUGVyc29uZW4gZXJzY2hlaW5lbiBtaXQgTWFpbC1CdXR0b24gaW0gSW5mby1GZW5zdGVyLiI+ -QW5zcHJlY2hwYXJ0bmVyIG3DtmdsaWNoPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAg -ICAgICA8dGggc3R5bGU9IndpZHRoOjcwcHg7dGV4dC1hbGlnbjpjZW50ZXIiIHRpdGxlPSJSZWlo -ZW5mb2xnZSBpbiBkZXIgUGxhbnVuZ3NhbnNpY2h0IMOkbmRlcm4iPlJlaWhlbmZvbGdlPC90aD4K -ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9IndpZHRoOjYwcHgiPjwv -dGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAg -ICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICA8dGJvZHkgaWQ9ImdydXBwZW4t -dGJvZHkiPjwvdGJvZHk+CiAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAg -ICAgICAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOjE2cHg7ZGlzcGxheTpmbGV4O2dhcDoxMHB4 -Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLWdydXBwZW4tbmV1IiBj -bGFzcz0iYnRuIGJ0bi1lcmZvbGciPk5ldWUgRGllbnN0Z3J1cHBlPC9idXR0b24+CiAgICAgICAg -ICAgICAgICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1ncnVwcGVuLXNwZWljaGVybiIgY2xhc3M9 -ImJ0biBidG4tcHJpbWFlciI+RGllbnN0Z3J1cHBlbiBzcGVpY2hlcm48L2J1dHRvbj4KICAgICAg -ICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAg -ICAgIDwhLS0gVGFiOiBGZWllcnRhZ2UgJiBGZXJpZW4gKE1lcmdlIFBoYXNlIDEg4oCUIGJlaWRl -IEthbGVuZGVyLUJsb2NrZXIgYW4gZWluZW0gT3J0KSAtLT4KICAgICAgICAgICAgICAgIDxkaXYg -Y2xhc3M9ImFkbWluLXRhYiB2ZXJzdGVja3QiIGlkPSJhZG1pbi10YWItZmVpZXJ0YWdlIj4KICAg -ICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1pbi1rb3BmIj4KICAgICAgICAgICAgICAg -ICAgICAgICAgPGgyPkthbGVuZGVyIOKAlCBGZWllcnRhZ2UgJmFtcDsgRmVyaWVuPC9oMj4KICAg -ICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgPCEtLSBTdWItVGFi -LUxlaXN0ZTogdHJlbm50IGRpZSB6d2VpIGxvZ2lzY2ggZGlzanVua3RlbgogICAgICAgICAgICAg -ICAgICAgICAgICAgVGhlbWVuIHZpc3VlbGwuIERlZmF1bHQ6IEZlaWVydGFnZSBha3Rpdi4gLS0+ -CiAgICAgICAgICAgICAgICAgICAgPG5hdiBjbGFzcz0iYWRtaW4tc3VibmF2IiBhcmlhLWxhYmVs -PSJLYWxlbmRlci1TdWItTmF2aWdhdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0 -b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iYWRtaW4tc3VibmF2LWJ0biBha3RpdiIgZGF0YS1zdWJ0 -YWI9ImZlaWVydGFnZSI+RmVpZXJ0YWdlPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAg -IDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iYWRtaW4tc3VibmF2LWJ0biIgZGF0YS1zdWJ0 -YWI9ImZlcmllbiI+U2NodWxmZXJpZW48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICA8L25h -dj4KCiAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9ImFkbWluLXNla3Rpb24iIGlk -PSJhZG1pbi1zZWt0aW9uLWZlaWVydGFnZSIgZGF0YS1zdWJ0YWItc2VrdGlvbj0iZmVpZXJ0YWdl -Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4tc2VrdGlvbi1rb3Bm -Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMz5GZWllcnRhZ2U8L2gzPgogICAgICAg -ICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLWZlaWVydGFnLW5ldSIgY2xhc3M9 -ImJ0biBidG4tZXJmb2xnIj5OZXVlciBGZWllcnRhZzwvYnV0dG9uPgogICAgICAgICAgICAgICAg -ICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRldGFpbHMgY2xhc3M9ImFk -bWluLWluZm8iIGRhdGEtaW5mby1rZXk9ImZlaWVydGFnZSIgb3Blbj4KICAgICAgICAgICAgICAg -ICAgICAgICAgICAgIDxzdW1tYXJ5PjxzcGFuIGNsYXNzPSJhZG1pbi1pbmZvLWNoZXYiPuKWuDwv -c3Bhbj5IaW53ZWlzZSB6dSBGZWllcnRhZ2VuPHNwYW4gY2xhc3M9ImFkbWluLWluZm8tYmFkZ2Ui -PkF1ZmtsYXBwZW4gLyBadWtsYXBwZW48L3NwYW4+PC9zdW1tYXJ5PgogICAgICAgICAgICAgICAg -ICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4taW5mby1ib2R5Ij4KICAgICAgICAgICAgICAg -ICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPldhcyBwYXNzaWVydCBtaXQgRmVpZXJ0YWdlbj88 -L3N0cm9uZz4gQW4gYWt0aXZlbiBGZWllcnRhZ2VuIHdpcmQgZGllIGVudHNwcmVjaGVuZGUgRGF0 -dW1zLVNwYWx0ZSBpbSBQbGFudW5nc3Jhc3RlciBmYXJibGljaCBoZXJ2b3JnZWhvYmVuIHVuZCBp -biBkZXIgQW5sYXNzLVplaWxlIG1pdCBkZXIgQmV6ZWljaG51bmcgZGVzIEZlaWVydGFncyB2ZXJz -ZWhlbi4gRGllIFN0YXRpc3Rpay1BdXN3ZXJ0dW5nIOKAnkZlaWVydGFncy1EaWVuc3RlIiBiZXLD -vGNrc2ljaHRpZ3QgbnVyIFRhZ2UgYXVzIGRpZXNlciBMaXN0ZSwgZGVyZW4gPGVtPkFrdGl2PC9l -bT4tSMOka2NoZW4gZ2VzZXR6dCBpc3QuPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAg -ICAgIDxwPjxzdHJvbmc+S2F0ZWdvcmllbjo8L3N0cm9uZz4gTmViZW4gZGVuIGdlc2V0emxpY2hl -biBGZWllcnRhZ2VuIChTdGFuZGFyZCwgTlJXKSBzaW5kIGrDvGRpc2NoZSwgbXVzbGltaXNjaGUg -dW5kIHTDvHJraXNjaGUgRmVpZXJ0YWdlIGFscyBEYXRlbmJhc2lzIGJlcmVpdHMgaGludGVybGVn -dCDigJQgZsO8ciAyMDI2IGJpcyAyMDM1LiBEaWVzZSBzaW5kIHBlciBEZWZhdWx0IGRlYWt0aXZp -ZXJ0OyBwZXIgPGVtPkFrdGl2PC9lbT4tSMOka2NoZW4gbGFzc2VuIHNpZSBzaWNoIGVpbnplbG4g -ZWluYmxlbmRlbi4gSmVkZSBLYXRlZ29yaWUgYmVrb21tdCBpbiBkZXIgQW5sYXNzLVplaWxlIGVp -bmUgZWlnZW5lIEZhcmJlIChnZXNldHpsaWNoID0gYmxhdSwgasO8ZGlzY2ggPSBsaWxhLCBtdXNs -aW1pc2NoID0gZ3LDvG4sIHTDvHJraXNjaCA9IHJvdCkuPC9wPgogICAgICAgICAgICAgICAgICAg -ICAgICAgICAgICAgIDxwPjxzdHJvbmc+RmlsdGVyOjwvc3Ryb25nPiDDnGJlciBkZXIgVGFiZWxs -ZSBuYWNoIEthdGVnb3JpZSwgSmFociBvZGVyIOKAnm51ciBha3RpdmUiIGZpbHRlcm4g4oCUIGRp -ZSB2b2xsZSBMaXN0ZSB1bWZhc3N0IHJ1bmQgMzEyIEVpbnRyw6RnZS48L3A+CiAgICAgICAgICAg -ICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5XaWNodGlnIChIZXJ2b3JoZWJ1bmcpOjwv -c3Ryb25nPiBEaWUgQ2hlY2tib3ggaW4gZGVyIFNwYWx0ZSDigJ5XaWNodGlnIiBtYXJraWVydCBi -ZXNvbmRlcnMgaGVydm9yenVoZWJlbmRlIEZlaWVydGFnZSAoei5CLiBIZWlsaWdhYmVuZCwgU2ls -dmVzdGVyLCBXZWlobmFjaHRlbikuIFNvbGNoZSBUYWdlIGJla29tbWVuIGltIFBsYW51bmdzLUhl -YWRlciBlaW5lIHZlcnN0w6Rya3RlIEVpbmbDpHJidW5nIChyb3QgbWl0IGdvbGRlbmVtIFJhaG1l -bikgdW5kIMO8YmVybGFnZXJuIGRpZSBLYXRlZ29yaWUtRmFyYmUuIERpZSBUYWJlbGxlbnplaWxl -IGltIEFkbWluIGVyaMOkbHQgZWluZSByw7Z0bGljaGUgVMO2bnVuZy48L3A+CiAgICAgICAgICAg -ICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5XZWNoc2Vsd2lya3VuZyBtaXQgU29uZGVy -dGVybWluZTo8L3N0cm9uZz4gTGllZ3QgenVzw6R0emxpY2ggZWluIFNvbmRlcnRlcm1pbiBhbiBl -aW5lbSBGZWllcnRhZywgYmxlaWJ0IGRlciBGZWllcnRhZ3MtSGlud2VpcyBzaWNodGJhciwgZGll -IFplbGxlIGlzdCBhYmVyIGtsaWNrYmFyIHVuZCB6ZWlndCBIaW53ZWlzLVRleHQga29tYmluaWVy -dCBhbi48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAg -ICAgICAgICAgICAgPC9kZXRhaWxzPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJm -ZWllcnRhZ2UtZmlsdGVyIiBjbGFzcz0iZmVpZXJ0YWdlLWZpbHRlciI+CiAgICAgICAgICAgICAg -ICAgICAgICAgICAgICA8bGFiZWw+S2F0ZWdvcmllOgogICAgICAgICAgICAgICAgICAgICAgICAg -ICAgICAgIDxzZWxlY3QgaWQ9ImZlaWVydGFnZS1maWx0ZXIta2F0ZWdvcmllIj4KICAgICAgICAg -ICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iYWxsZSI+QWxsZTwvb3B0 -aW9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJn -ZXNldHpsaWNoIj5HZXNldHpsaWNoIChOUlcpPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAg -ICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9Imp1ZWRpc2NoIj5Kw7xkaXNjaDwvb3B0aW9u -PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJtdXNs -aW1pc2NoIj5NdXNsaW1pc2NoPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg -ICAgICAgIDxvcHRpb24gdmFsdWU9InR1ZXJraXNjaCI+VMO8cmtpc2NoPC9vcHRpb24+CiAgICAg -ICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+CiAgICAgICAgICAgICAgICAgICAg -ICAgICAgICA8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPkphaHI6 -CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBpZD0iZmVpZXJ0YWdlLWZp -bHRlci1qYWhyIj48L3NlbGVjdD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+ -CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgc3R5bGU9Im1hcmdpbi1sZWZ0OmF1 -dG87ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweCI+CiAgICAg -ICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iZmVp -ZXJ0YWdlLWZpbHRlci1udXItYWt0aXYiPiBudXIgYWt0aXZlIHplaWdlbgogICAgICAgICAgICAg -ICAgICAgICAgICAgICAgPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAg -ICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iYWRtaW4tdGFiZWxsZSIgaWQ9ImZl -aWVydGFnZS10YWJlbGxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aGVhZD48dHI+ -CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDoxMzBweCI+ -RGF0dW08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0ibWF4 -LXdpZHRoOjI2MHB4Ij5CZXplaWNobnVuZzwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAg -ICAgICAgPHRoIHN0eWxlPSJ3aWR0aDo2MHB4O3RleHQtYWxpZ246Y2VudGVyIiB0aXRsZT0iUHJv -IEVpbnRyYWcgd8OkaGxiYXI7IGxlZXIgPSBLYXRlZ29yaWUtRGVmYXVsdCI+SWNvbjwvdGg+CiAg -ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDoxNzBweCI+S2F0 -ZWdvcmllPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9Indp -ZHRoOjgwcHg7dGV4dC1hbGlnbjpjZW50ZXIiPkFrdGl2PC90aD4KICAgICAgICAgICAgICAgICAg -ICAgICAgICAgICAgICA8dGggc3R5bGU9IndpZHRoOjE0MHB4O3RleHQtYWxpZ246Y2VudGVyIj5X -aWNodGlnPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9Indp -ZHRoOjE2MHB4Ij5Ba3Rpb25lbjwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3Ry -PjwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGJvZHkgaWQ9ImZlaWVydGFn -ZS10Ym9keSI+PC90Ym9keT4KICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAg -ICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLWZlaWVydGFnZS1zcGVpY2hlcm4iIGNs -YXNzPSJidG4gYnRuLXByaW1hZXIiIHN0eWxlPSJtYXJnaW4tdG9wOjEycHgiPkZlaWVydGFnZSBz -cGVpY2hlcm48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+CgogICAgICAg -ICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJhZG1pbi1zZWt0aW9uIHZlcnN0ZWNrdCIgaWQ9 -ImFkbWluLXNla3Rpb24tZmVyaWVuIiBkYXRhLXN1YnRhYi1zZWt0aW9uPSJmZXJpZW4iPgogICAg -ICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1pbi1zZWt0aW9uLWtvcGYiPgogICAg -ICAgICAgICAgICAgICAgICAgICAgICAgPGgzPlNjaHVsZmVyaWVuPC9oMz4KICAgICAgICAgICAg -ICAgICAgICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1mZXJpZW4tbmV1IiBjbGFzcz0iYnRuIGJ0 -bi1lcmZvbGciPk5ldWVyIEZlcmllbnplaXRyYXVtPC9idXR0b24+CiAgICAgICAgICAgICAgICAg -ICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGV0YWlscyBjbGFzcz0iYWRt -aW4taW5mbyIgZGF0YS1pbmZvLWtleT0iZmVyaWVuIiBvcGVuPgogICAgICAgICAgICAgICAgICAg -ICAgICAgICAgPHN1bW1hcnk+PHNwYW4gY2xhc3M9ImFkbWluLWluZm8tY2hldiI+4pa4PC9zcGFu -PkhpbndlaXNlIHp1IEZlcmllbjxzcGFuIGNsYXNzPSJhZG1pbi1pbmZvLWJhZGdlIj5BdWZrbGFw -cGVuIC8gWnVrbGFwcGVuPC9zcGFuPjwvc3VtbWFyeT4KICAgICAgICAgICAgICAgICAgICAgICAg -ICAgIDxkaXYgY2xhc3M9ImFkbWluLWluZm8tYm9keSI+CiAgICAgICAgICAgICAgICAgICAgICAg -ICAgICAgICAgPHA+PHN0cm9uZz5XYXJ1bSBGZXJpZW4gZXJmYXNzZW4/PC9zdHJvbmc+IE5SVy1T -Y2h1bGZlcmllbiB3ZXJkZW4gaW0gV29jaGVucGxhbiBtaXQgZGVtIFN5bWJvbCDwn4+W77iPIHVu -ZCBkZXIgQmV6ZWljaG51bmcgbWFya2llcnQ7IGluIGRlciBQbGFudW5nc2Fuc2ljaHQgbGVndCBz -aWNoIGVpbmUgZHVyY2hnZWhlbmRlIGdyw7xuZSBCYXIgw7xiZXIgZGVuIFplaXRyYXVtLiBEYXMg -aGlsZnQgYmVpIGRlciBVcmxhdWJzdmVyZ2FiZSB1bmQgQmVzZXR6dW5nc3BsYW51bmcsIGJlc29u -ZGVycyBiZWkgUGVyc29uYWwgbWl0IHNjaHVscGZsaWNodGlnZW4gS2luZGVybi48L3A+CiAgICAg -ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5aZWl0cmF1bS1FaW50csOkZ2U6 -PC9zdHJvbmc+IEZlcmllbiB3ZXJkZW4gbWl0IDxiPlZvbjwvYj4tIHVuZCA8Yj5CaXM8L2I+LURh -dHVtIGVyZmFzc3QgKGlua2x1c2l2ZSBiZWlkZXIgVGFnZSkuIEJlaXNwaWVsOiBPc3RlcmZlcmll -biAzMC4wMy7igJMxMS4wNC4gRGllIDxiPkJlemVpY2hudW5nPC9iPiB3aXJkIGltIFRvb2x0aXAg -dW5kIGluIGRlciBXb2NoZW5wbGFuLU1hcmtpZXJ1bmcgYW5nZXplaWd0LjwvcD4KICAgICAgICAg -ICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPlBmbGVnZTo8L3N0cm9uZz4gRWlubWFs -IHBybyBKYWhyIGFrdHVhbGlzaWVyZW4uIERpZSBvZmZpemllbGxlbiBOUlctRmVyaWVudGVybWlu -ZSBzaW5kIGJlaW0gU2NodWxtaW5pc3Rlcml1bSBOUlcgenUgZmluZGVuLiDDnGJlcmxhcHBlbmRl -IEVpbnRyw6RnZSB3ZXJkZW4gdm9tIFN5c3RlbSBha3plcHRpZXJ0OyBQcmlvcml0w6R0OiBGZWll -cnRhZyA+IEZlcmllbiA+IFdvY2hlbmVuZGUgPiBOb3JtYWwuPC9wPgogICAgICAgICAgICAgICAg -ICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGV0YWlscz4KICAg -ICAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJhZG1pbi10YWJlbGxlIiBpZD0iZmVy -aWVuLXRhYmVsbGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoZWFkPjx0cj48dGg+ -Vm9uPC90aD48dGg+QmlzPC90aD48dGg+QmV6ZWljaG51bmc8L3RoPjx0aCBzdHlsZT0id2lkdGg6 -ODBweCI+QWt0aW9uZW48L3RoPjwvdHI+PC90aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAg -ICAgIDx0Ym9keSBpZD0iZmVyaWVuLXRib2R5Ij48L3Rib2R5PgogICAgICAgICAgICAgICAgICAg -ICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tZmVy -aWVuLXNwZWljaGVybiIgY2xhc3M9ImJ0biBidG4tcHJpbWFlciIgc3R5bGU9Im1hcmdpbi10b3A6 -MTJweCI+RmVyaWVuIHNwZWljaGVybjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgIDwvc2Vj -dGlvbj4KICAgICAgICAgICAgICAgIDwvZGl2PgoKCiAgICAgICAgICAgICAgICA8IS0tIFRhYjog -U29uZGVydGVybWluZSAtLT4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFkbWluLXRhYiB2 -ZXJzdGVja3QiIGlkPSJhZG1pbi10YWItc29uZGVydGVybWluZSI+CiAgICAgICAgICAgICAgICAg -ICAgPGRpdiBjbGFzcz0iYWRtaW4ta29wZiI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxoMj5T -b25kZXJ0ZXJtaW5lICZhbXA7IEhpbndlaXNlPC9oMj4KICAgICAgICAgICAgICAgICAgICAgICAg -PGJ1dHRvbiBpZD0iYnRuLXNvbmRlcnRlcm1pbi1uZXUiIGNsYXNzPSJidG4gYnRuLWVyZm9sZyI+ -TmV1ZXIgSGlud2VpczwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAg -ICAgICAgICAgICAgICA8ZGV0YWlscyBjbGFzcz0iYWRtaW4taW5mbyIgZGF0YS1pbmZvLWtleT0i -c29uZGVydGVybWluZSIgb3Blbj4KICAgICAgICAgICAgICAgICAgICAgICAgPHN1bW1hcnk+PHNw -YW4gY2xhc3M9ImFkbWluLWluZm8tY2hldiI+4pa4PC9zcGFuPkhpbndlaXNlIHp1IFNvbmRlcnRl -cm1pbmVuPHNwYW4gY2xhc3M9ImFkbWluLWluZm8tYmFkZ2UiPkF1ZmtsYXBwZW4gLyBadWtsYXBw -ZW48L3NwYW4+PC9zdW1tYXJ5PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJh -ZG1pbi1pbmZvLWJvZHkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5X -YXMgaXN0IGRhcz88L3N0cm9uZz4gU29uZGVydGVybWluZSBzaW5kIEhpbndlaXNlIG9kZXIgV2Fy -bnVuZ2VuLCBkaWUgYW4gZWluZW0gYmVzdGltbXRlbiBUYWcgKG9kZXIgWmVpdHJhdW0pIGbDvHIg -YWxsZSBOdXR6ZXIgc2ljaHRiYXIgd2VyZGVuIOKAlCB6LkIuIFZlcmFuc3RhbHR1bmdlbiwgZXJo -w7ZodGVyIFBlcnNvbmFsYmVkYXJmLCB3aWNodGlnZSBGcmlzdGVuLCBTcGVycnRlcm1pbmUsIEZl -aWVybiBvZGVyIEVyaW5uZXJ1bmdlbi48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8 -cD48c3Ryb25nPldpZSBzZWhlbiBkaWUgTnV0emVyIGRhcz88L3N0cm9uZz48L3A+CiAgICAgICAg -ICAgICAgICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg -PGxpPjxiPkltIFBsYW51bmdzLUhlYWRlcjwvYj4gZXJzY2hlaW50IGluIGRlciBIaW53ZWlzLVpl -aWxlICh1bnRlciBkZW0gV29jaGVudGFnKSBkYXMgZ2V3w6RobHRlIEljb24gb2RlciBkZXIgRmFs -bGJhY2sgKDxjb2RlPuKEuTwvY29kZT4gZsO8ciBIaW53ZWlzLCA8Y29kZT4hISE8L2NvZGU+IGbD -vHIgV2FybnVuZykuIEhvdmVyIHplaWd0IGRlbiBUaXRlbCBhbHMgVG9vbHRpcC48L2xpPgogICAg -ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48Yj5LbGljayBhdWYgZGllIFplbGxlPC9i -PiDDtmZmbmV0IGVpbiBBbnNpY2h0cy1Nb2RhbCBtaXQgSWNvbiwgVGl0ZWwsIGZvcm1hdGllcnRl -bSBUZXh0IHVuZCBEYXR1bS4gU3VwZXJVc2VyIGvDtm5uZW4gZGlyZWt0IGJlYXJiZWl0ZW4gb2Rl -ciBuZXVlIEhpbndlaXNlIGbDvHIgamVkZXMgRGF0dW0gYW5sZWdlbi48L2xpPgogICAgICAgICAg -ICAgICAgICAgICAgICAgICAgICAgIDxsaT48Yj5CZWltIFBsYW5lbi9VbXBsYW5lbiBlaW5lciBT -Y2hpY2h0PC9iPiBhbiBlaW5lbSBUYWcgbWl0IEhpbndlaXMgZXJzY2hlaW50IOKAlCBqZSBuYWNo -IFdhcm5tb2R1cyDigJQgZWluIFdhcm4tTW9kYWwsIGRhcyB2b3IgZGVyIEVpbmdhYmUgYmVzdMOk -dGlndCB3ZXJkZW4gbXVzcy48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4K -ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+RmVsZGVyIGltIERldGFpbDo8 -L3N0cm9uZz48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAg -ICAgICAgICAgICAgICAgICAgICAgPGxpPjxiPkRhdHVtIChWb24pPC9iPiDigJQgUGZsaWNodGZl -bGQuIFN0YXJ0IGRlcyBHw7xsdGlna2VpdHNiZXJlaWNocy48L2xpPgogICAgICAgICAgICAgICAg -ICAgICAgICAgICAgICAgIDxsaT48Yj5EYXR1bSAoQmlzKTwvYj4g4oCUIG9wdGlvbmFsLiBMZWVy -IGxhc3NlbiA9IGdpbHQgbnVyIGbDvHIgZGVuIFN0YXJ0LVRhZy4gR2VzZXR6dCA9IFplaXRyYXVt -IChWb24gYmlzIEJpcyBpbmtsdXNpdmUpLiBKZWRlciBUYWcgaW0gWmVpdHJhdW0gemVpZ3QgZGVu -IEhpbndlaXMuPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGI+VGl0 -ZWw8L2I+IOKAlCBrdXJ6ZSBCZXplaWNobnVuZyAobWF4LiAxMDAgWmVpY2hlbiksIGVyc2NoZWlu -dCBpbSBUb29sdGlwIHVuZCBhbHMgw5xiZXJzY2hyaWZ0IGltIE1vZGFsLiBJc3Qga2VpbiBUaXRl -bCBnZXNldHp0LCB3aXJkIGRlciBBbmZhbmcgZGVzIFRleHRzIHZlcndlbmRldC48L2xpPgogICAg -ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48Yj5UZXh0PC9iPiDigJQgYXVzZsO8aHJs -aWNoZXIgSW5oYWx0IG1pdCBtaW5pbWFsZW0gUmljaC1UZXh0LUVkaXRvci4gVW50ZXJzdMO8dHp0 -IDxiPmZldHQ8L2I+LCA8aT5rdXJzaXY8L2k+LCA8dT51bnRlcnN0cmljaGVuPC91PiwgQXVmesOk -aGx1bmdlbiAo4oCiIC8gMS4pIHVuZCBFbnRmZXJuZW4gZGVyIEZvcm1hdGllcnVuZy4gRWluZsO8 -Z2VuIGF1cyBhbmRlcmVuIFF1ZWxsZW4gKFdvcmQsIE1haWwpIGZ1bmt0aW9uaWVydCDigJQgRm9y -bWF0aWVydW5nIHdpcmQgYXVmIGRhcyBadWzDpHNzaWdlIGJlcmVpbmlndC48L2xpPgogICAgICAg -ICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48Yj5JY29uPC9iPiDigJQgRW1vamkgYXVzIGRl -bSBQaWNrZXIgKDUgR3J1cHBlbikgb2RlciDigJ5rZWlucyIuIEVyc2V0enQgaW0gSGVhZGVyLUJh -ZGdlIGRhcyBnZW5lcmlzY2hlIFN5bWJvbC48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAg -ICAgICAgIDxsaT48Yj5UeXA8L2I+IOKAlCA8aT5IaW53ZWlzPC9pPiAobmV1dHJhbCwgYmxhdSkg -b2RlciA8aT5XYXJudW5nPC9pPiAocm90LW9yYW5nZSwgZsO8ciB3aWNodGlnZSBUaGVtZW4pLjwv -bGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxiPldhcm5tb2R1czwvYj4g -4oCUIHN0ZXVlcnQsIHdhbm4gZGFzIFdhcm4tTW9kYWwgYmVpbSBQbGFuZW4gZXJzY2hlaW50Ogog -ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICAg -ICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGI+SW1tZXI8L2I+IOKAlCBiZWkgamVkZXIgUGxh -bnVuZyBpbSBaZWl0cmF1bSBlcnNjaGVpbnQgZGFzIE1vZGFsIGVybmV1dC48L2xpPgogICAgICAg -ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxiPkVpbm1hbGlnIHBybyBVc2Vy -PC9iPiDigJQgZXJzY2hlaW50IG51ciBiZWltIGVyc3RlbiBLbGljayBwcm8gTnV0emVyIHVuZCBU -ZXJtaW4gKFNwZWljaGVydW5nIGxva2FsIGltIEJyb3dzZXIsIHBybyBUZXJtaW4tSUQpLjwvbGk+ -CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGI+QXVzPC9iPiDi -gJQgbnVyIGFscyBIZWFkZXItSWNvbiBzaWNodGJhciwga2VpbiBNb2RhbCBiZWltIFBsYW5lbi48 -L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAg -ICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8 -L3VsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5UaXBwOjwvc3Ryb25n -PiBGw7xyIHdpZWRlcmtlaHJlbmRlIEdyb8OfdmVyYW5zdGFsdHVuZ2VuIGVpbmZhY2ggbWl0IFpl -aXRyYXVtIGFubGVnZW4gKHouQi4gS2FybmV2YWxzd29jaGUgTW9udGFn4oCTRnJlaXRhZykuIERl -ciBIaW53ZWlzIGVyc2NoZWludCBkYW5uIGF1ZiBhbGxlbiBUYWdlbjsgZGFzIFdhcm4tTW9kYWwg -ZXJzY2hlaW50IGltIE1vZHVzIOKAnkVpbm1hbGlnIiBudXIgZWlubWFsIHBybyBOdXR6ZXIgdW5k -IFRlcm1pbiwgbmljaHQgZsO8ciBqZWRlbiBUYWcgbmV1LjwvcD4KICAgICAgICAgICAgICAgICAg -ICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kZXRhaWxzPgoKICAgICAgICAgICAg -ICAgICAgICA8dGFibGUgY2xhc3M9ImFkbWluLXRhYmVsbGUiIGlkPSJzb25kZXJ0ZXJtaW5lLXRh -YmVsbGUiPgogICAgICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+PHRyPjx0aCBzdHlsZT0id2lk -dGg6NTJweCI+SWNvbjwvdGg+PHRoIHN0eWxlPSJ3aWR0aDoxODBweCI+RGF0dW0gLyBaZWl0cmF1 -bTwvdGg+PHRoPlRpdGVsPC90aD48dGggc3R5bGU9IndpZHRoOjExMHB4Ij5UeXA8L3RoPjx0aCBz -dHlsZT0id2lkdGg6MTYwcHgiPldhcm5tb2R1czwvdGg+PHRoIHN0eWxlPSJ3aWR0aDoxNzBweCI+ -QWt0aW9uZW48L3RoPjwvdHI+PC90aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRib2R5 -IGlkPSJzb25kZXJ0ZXJtaW5lLXRib2R5Ij48L3Rib2R5PgogICAgICAgICAgICAgICAgICAgIDwv -dGFibGU+CiAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICA8IS0tIFRhYjog -U2NoaWNodGNvZGVzICYgRmFyYmNvZGllcnVuZyAtLT4KICAgICAgICAgICAgICAgIDxkaXYgY2xh -c3M9ImFkbWluLXRhYiB2ZXJzdGVja3QiIGlkPSJhZG1pbi10YWItc2NoaWNodGNvZGVzIj4KICAg -ICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1pbi1rb3BmIj4KICAgICAgICAgICAgICAg -ICAgICAgICAgPGgyPlNjaGljaHRjb2RlcyAmYW1wOyBGYXJiY29kaWVydW5nPC9oMj4KICAgICAg -ICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLXNjaGljaHRjb2RlLW5ldSIgY2xhc3M9 -ImJ0biBidG4tZXJmb2xnIj5OZXVlciBTY2hpY2h0Y29kZTwvYnV0dG9uPgogICAgICAgICAgICAg -ICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkZXRhaWxzIGNsYXNzPSJhZG1pbi1p -bmZvIiBkYXRhLWluZm8ta2V5PSJzY2hpY2h0Y29kZXMiIG9wZW4+CiAgICAgICAgICAgICAgICAg -ICAgICAgIDxzdW1tYXJ5PjxzcGFuIGNsYXNzPSJhZG1pbi1pbmZvLWNoZXYiPuKWuDwvc3Bhbj5I -aW53ZWlzZSB6dSBTY2hpY2h0Y29kZXMgJmFtcDsgRmFyYmNvZGllcnVuZzxzcGFuIGNsYXNzPSJh -ZG1pbi1pbmZvLWJhZGdlIj5BdWZrbGFwcGVuIC8gWnVrbGFwcGVuPC9zcGFuPjwvc3VtbWFyeT4K -ICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4taW5mby1ib2R5Ij4KICAg -ICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+V2FzIGlzdCBlaW4gU2NoaWNodGNv -ZGU/PC9zdHJvbmc+IEVpbiBTY2hpY2h0Y29kZSBpc3QgZWluIEvDvHJ6ZWwsIGRhcyBlaW5lbiBi -ZXN0aW1tdGVuIERpZW5zdCwgZWluZSBBYndlc2VuaGVpdCBvZGVyIGVpbmVuIGJlc29uZGVyZW4g -U3RhdHVzIGVpbmVzIE1pdGFyYmVpdGVycyBhbiBlaW5lbSBUYWcgYmVzY2hyZWlidC4gSmVkZXIg -Q29kZSBoYXQgZWluZSA8Yj5GYXJiY29kaWVydW5nPC9iPiAoSGludGVyZ3J1bmQgKyBTY2hyaWZ0 -ZmFyYmUpLCBkaWUgaW0gUGxhbnVuZ3NyYXN0ZXIgZGlyZWt0IGFibGVzYmFyIGlzdC48L3A+CiAg -ICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPlNwYWx0ZW4gaW4gZGVyIMOcYmVy -c2ljaHQ6PC9zdHJvbmc+PC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsPgogICAg -ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48Yj5GYXJiZmVsZDwvYj4g4oCUIFZvcnNj -aGF1IGRlciBoaW50ZXJsZWd0ZW4gSGludGVyZ3J1bmRmYXJiZS48L2xpPgogICAgICAgICAgICAg -ICAgICAgICAgICAgICAgICAgIDxsaT48Yj5Db2RlPC9iPiDigJQgZGVyIHRlY2huaXNjaGUgU2No -bMO8c3NlbCBpbiBkZXIgRGF0ZW5oYWx0dW5nICh6LkIuIDxjb2RlPkYtREdMPC9jb2RlPiwgPGNv -ZGU+a3I8L2NvZGU+LCA8Y29kZT5Vcmw8L2NvZGU+KS48L2xpPgogICAgICAgICAgICAgICAgICAg -ICAgICAgICAgICAgIDxsaT48Yj5Lw7xyemVsPC9iPiDigJQgZGllIEt1cnpmb3JtLCBkaWUgaW0g -UGxhbnVuZ3NyYXN0ZXIgaW4gZGVyIFplbGxlIGFuZ2V6ZWlndCB3aXJkICh6LkIuIDxjb2RlPkY8 -L2NvZGU+LCA8Y29kZT5rcjwvY29kZT4pLiBLYW5uIG1pdCBkZW0gQ29kZSBpZGVudGlzY2ggc2Vp -bi48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48Yj5CZXplaWNobnVu -ZzwvYj4g4oCUIGRlciBMYW5nbmFtZSB6dXIgRXJsw6R1dGVydW5nICh6LkIuIOKAnkZyw7xoZGll -bnN0IERHTCIpLjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAg -ICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5HcnVwcGllcnVuZzo8L3N0cm9uZz4gTWl0 -IGRlbSBBdXN3YWhsbWVuw7wgb2JlbiBrYW5uc3QgZHUgendpc2NoZW4gdmVyc2NoaWVkZW5lbiBE -YXJzdGVsbHVuZ2VuIHdlY2hzZWxuOjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1 -bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGI+TmFjaCBTY2hpY2h0dHlw -PC9iPiAoU3RhbmRhcmQpIOKAlCDDvGJlcnNpY2h0bGljaCBncnVwcGllcnQgbmFjaCBGcsO8aC0v -U3DDpHQtL05hY2h0ZGllbnN0LCBGcmVpLCBVcmxhdWIsIEtyYW5raGVpdC9BdXNmYWxsLCBGb3J0 -YmlsZHVuZywgRGllbnN0ZS9FaW5zw6R0emUsIFNvbmRlcmZvcm1lbi4gRGllIFp1b3JkbnVuZyBl -cmZvbGd0IGF1dG9tYXRpc2NoIGFuaGFuZCBkZXMgQ29kZS1NdXN0ZXJzLjwvbGk+CiAgICAgICAg -ICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxiPkFscGhhYmV0aXNjaCAoQ29kZSk8L2I+IOKA -lCBhbGxlIENvZGVzIGluIGVpbmVyIExpc3RlIG5hY2ggS8O8cnplbCBzb3J0aWVydC48L2xpPgog -ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48Yj5BbHBoYWJldGlzY2ggKEJlemVp -Y2hudW5nKTwvYj4g4oCUIGFsbGUgQ29kZXMgbmFjaCBMYW5nbmFtZSBzb3J0aWVydCAoaGlsZnJl -aWNoIHdlbm4gbWFuIG51ciBkZW4gTmFtZW4gZXJpbm5lcnQsIG5pY2h0IGRhcyBLw7xyemVsKS48 -L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48Yj5LZWluZSBHcnVwcGll -cnVuZzwvYj4g4oCUIHVuc29ydGllcnRlIE9yaWdpbmFscmVpaGVuZm9sZ2Ugd2llIGluIGRlciBE -YXRlaS48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAg -ICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+UGZsZWdlIGltIFVJOjwvc3Ryb25nPiBNaXQgPGI+ -4oCeTmV1ZXIgU2NoaWNodGNvZGUiPC9iPiBsZWdzdCBkdSBlaW5lbiBuZXVlbiBDb2RlIGFuLiBB -dWYgamVkZSBLYXJ0ZSBrbGlja3N0IGR1IGRhcyA8Yj5CZWFyYmVpdGVuLVN5bWJvbCAo4pyOKTwv -Yj4sIHVtIEvDvHJ6ZWwsIEJlemVpY2hudW5nLCBIaW50ZXJncnVuZC0gdW5kIFNjaHJpZnRmYXJi -ZSB6dSDDpG5kZXJuLiBFaW5lIExpdmUtVm9yc2NoYXUgemVpZ3QgZGlyZWt0IGRhcyBFcmdlYm5p -cy4gR2Vsw7ZzY2h0IHdpcmQgw7xiZXIgZGVuIEzDtnNjaGVuLUJ1dHRvbiBpbSBFZGl0LURpYWxv -ZyDigJQgYmVzdGVoZW5kZSBFaW50csOkZ2UgaW4gZGVyIFBsYW51bmcgbWl0IGRpZXNlbSBDb2Rl -IGJsZWliZW4gZXJoYWx0ZW4sIHdlcmRlbiBhYmVyIG9obmUgRmFyYmUgZGFyZ2VzdGVsbHQuPC9w -PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5Db2RlIC8gdGVjaG5pc2No -ZXIgU2NobMO8c3NlbDo8L3N0cm9uZz4gRGVyIENvZGUgaXN0IGRlciBJZGVudGlmaWVyIGluIGRl -ciBEYXRlbmhhbHR1bmcgdW5kIG1pdCBhbGxlbiBQbGFudW5ncy1FaW50csOkZ2VuIHZlcmtuw7xw -ZnQuIEJlaW0gTmV1YW5sZWdlbiBmcmVpIHfDpGhsYmFyLCBiZWltIHNww6R0ZXJlbiBCZWFyYmVp -dGVuIHNjaHJlaWJnZXNjaMO8dHp0IOKAlCBlaW5lIMOEbmRlcnVuZyB3w7xyZGUgYWxsZSBiZXN0 -ZWhlbmRlbiBFaW50csOkZ2UgaW5rb25zaXN0ZW50IG1hY2hlbi4gV2VubiBkZXIgQ29kZSB1bWJl -bmFubnQgd2VyZGVuIG11c3M6IG5ldSBhbmxlZ2VuLCBhbHRlIEVpbnRyw6RnZSBtYW51ZWxsIMOk -bmRlcm4sIGFsdGVuIENvZGUgbMO2c2NoZW4uPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAg -ICAgPHA+PHN0cm9uZz5UaXBwOjwvc3Ryb25nPiBGYXJiZmFtaWxpZW4ga29uc2lzdGVudCBlaW5z -ZXR6ZW46IHJvdCA9IEZyw7xoZGllbnN0LCBibGF1ID0gU3DDpHRkaWVuc3QsIGdyw7xuID0gTmFj -aHRkaWVuc3QsIGdyYXUgPSBGcmVpL0hPLCByb3PDqSA9IEtyYW5raGVpdCwgbGlsYSA9IExlaHJn -YW5nLiBTbyBlcmtlbm50IGRhcyBBdWdlIG9obmUgTGVzZW4gZGllIFNjaGljaHQuPC9wPgogICAg -ICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2RldGFpbHM+ -CiAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0ic2NoaWNodGNvZGUtdm9yc2NoYXUiPjwvZGl2 -PgogICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgPCEtLSBUYWI6IE1pa3Jv -dGVhbXMg4oCUIFBlcnNvbmVuLUdydXBwZW4gcHJvIFN0YW5kb3J0K0RpZW5zdGdydXBwZSAtLT4K -ICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFkbWluLXRhYiB2ZXJzdGVja3QiIGlkPSJhZG1p -bi10YWItbWlrcm90ZWFtcyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4t -a29wZiI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxoMj5NaWtyb3RlYW1zPC9oMj4KICAgICAg -ICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGV0YWlscyBjbGFzcz0i -YWRtaW4taW5mbyIgZGF0YS1pbmZvLWtleT0ibWlrcm90ZWFtcyI+CiAgICAgICAgICAgICAgICAg -ICAgICAgIDxzdW1tYXJ5PjxzcGFuIGNsYXNzPSJhZG1pbi1pbmZvLWNoZXYiPuKWuDwvc3Bhbj5X -b3p1IE1pa3JvdGVhbXM/PHNwYW4gY2xhc3M9ImFkbWluLWluZm8tYmFkZ2UiPkF1ZmtsYXBwZW4g -LyBadWtsYXBwZW48L3NwYW4+PC9zdW1tYXJ5PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2 -IGNsYXNzPSJhZG1pbi1pbmZvLWJvZHkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+ -PHN0cm9uZz5XYXMgc2luZCBNaWtyb3RlYW1zPzwvc3Ryb25nPiBFaW5lIE1pa3JvdGVhbS1EZWZp -bml0aW9uIGZhc3N0IGRpZSBQZXJzb25lbiB6dXNhbW1lbiwgZGllIGFuIGVpbmVtIFN0YW5kb3J0 -IGdlbWVpbnNhbSBlaW5lIERpZW5zdGdydXBwZSBiaWxkZW4gKHouQi4g4oCeS2FtZW4tQSIgPSBk -aWUgREdMLVZlcmFudHdvcnRsaWNoZW4gZGVyIEdydXBwZSBBIGFtIFN0YW5kb3J0IEthbWVuKS4g -RGllIFN0YXRpc3RpayAoSGVhdG1hcCArIFRhZ2VzLUFudGVpbGUgcHJvIFRlYW0pIHdlcnRldCBk -YW1pdCBhdXMsIHdpZSBvZnQgZGllIGVpbnplbG5lbiBUZWFtcyBnZW1laW5zYW0gaW0gRGllbnN0 -IHNpbmQuPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5QZmxlZ2U6 -PC9zdHJvbmc+IFBybyBFaW50cmFnIE5hbWUsIFN0YW5kb3J0LUvDvHJ6ZWwgKDIgQnVjaHN0YWJl -biBhdXMgZGVyIFN0YW5kb3J0ZS1MaXN0ZSwgei5CLiBLQS9IQS9CTyksIERpZW5zdGdydXBwZW4t -S8O8cnplbCAoQS9CL0MvV0QpIHVuZCBkaWUgenVnZXdpZXNlbmVuIFBlcnNvbmVuLiBSZWloZW5m -b2xnZSBpbiBkZXIgVGFiZWxsZSB3aXJrdCBzaWNoIGF1ZiBkaWUgU3RhdGlzdGlrLURhcnN0ZWxs -dW5nIGF1cy48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPkRlZmF1 -bHQtUmVpaGVuZm9sZ2UgbmFjaCBTdGFuZG9ydDo8L3N0cm9uZz4gSGF1cHR3YWNoZW4gb2JlbiAo -S0EsIEhBKSwgZGFubiBkaWUgYW5kZXJlbi4gRGllIElEIGlzdCB0ZWNobmlzY2ggdW5kIHNvbGx0 -ZSBzcHJlY2hlbmQgYmxlaWJlbiAoei5CLiA8Y29kZT50X0tBX0E8L2NvZGU+KS48L3A+CiAgICAg -ICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGV0YWlscz4K -CiAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9ImFkbWluLXNla3Rpb24iIGlkPSJh -ZG1pbi1zZWt0aW9uLW1pa3JvdGVhbXMiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNs -YXNzPSJhZG1pbi1zZWt0aW9uLWtvcGYiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgz -Pk1pa3JvdGVhbS1MaXN0ZTwvaDM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9u -IGlkPSJidG4tbWlrcm90ZWFtLW5ldSIgY2xhc3M9ImJ0biBidG4tZXJmb2xnIj5OZXVlcyBNaWty -b3RlYW08L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAg -ICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iYWRtaW4tdGFiZWxsZSIgaWQ9Im1pa3JvdGVhbXMt -dGFiZWxsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAg -ICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg -ICAgICA8dGggc3R5bGU9IndpZHRoOjUwcHgiPlBvczwvdGg+CiAgICAgICAgICAgICAgICAgICAg -ICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6MTMwcHgiPklEPC90aD4KICAgICAgICAg -ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPk5hbWU8L3RoPgogICAgICAgICAgICAgICAg -ICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9IndpZHRoOjkwcHgiIHRpdGxlPSJTdGFuZG9y -dC1Lw7xyemVsIGF1cyBkZXIgU3RhbmRvcnRlLUxpc3RlIChLQS9IQS9CTy8uLi4pIj5TdGFuZG9y -dDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lk -dGg6OTBweCIgdGl0bGU9IkRpZW5zdGdydXBwZW4tS8O8cnplbCAoQS9CL0MvV0QvLi4uKSI+R3J1 -cHBlPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPSJ3 -aWR0aDo5MHB4IiB0aXRsZT0iQW56YWhsIHp1Z2V3aWVzZW5lIFBlcnNvbmVuIj5QZXJzb25lbjwv -dGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6 -MjAwcHgiPkFrdGlvbmVuPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3Ry -PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgICAg -ICAgICAgICAgIDx0Ym9keSBpZD0ibWlrcm90ZWFtcy10Ym9keSI+PC90Ym9keT4KICAgICAgICAg -ICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBp -ZD0iYnRuLW1pa3JvdGVhbXMtc3BlaWNoZXJuIiBjbGFzcz0iYnRuIGJ0bi1wcmltYWVyIiBzdHls -ZT0ibWFyZ2luLXRvcDoxMnB4Ij5NaWtyb3RlYW1zIHNwZWljaGVybjwvYnV0dG9uPgogICAgICAg -ICAgICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAg -ICAgICAgIDwhLS0gVGFiOiBTdGFuZG9ydGUgJiBTY2hpY2h0Zm9sZ2UgLS0+CiAgICAgICAgICAg -ICAgICA8ZGl2IGNsYXNzPSJhZG1pbi10YWIgdmVyc3RlY2t0IiBpZD0iYWRtaW4tdGFiLXN0YW5k -b3J0ZSI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4ta29wZiI+CiAgICAg -ICAgICAgICAgICAgICAgICAgIDxoMj5TdGFuZG9ydGUgJmFtcDsgU2NoaWNodGZvbGdlPC9oMj4K -ICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLXN0YW5kb3J0LW5ldSIgY2xh -c3M9ImJ0biBidG4tZXJmb2xnIj5OZXVlciBTdGFuZG9ydDwvYnV0dG9uPgogICAgICAgICAgICAg -ICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkZXRhaWxzIGNsYXNzPSJhZG1pbi1p -bmZvIiBkYXRhLWluZm8ta2V5PSJzdGFuZG9ydGUiIG9wZW4+CiAgICAgICAgICAgICAgICAgICAg -ICAgIDxzdW1tYXJ5PjxzcGFuIGNsYXNzPSJhZG1pbi1pbmZvLWNoZXYiPuKWuDwvc3Bhbj5IaW53 -ZWlzZSB6dSBTdGFuZG9ydGVuICZhbXA7IFNjaGljaHRmb2xnZTxzcGFuIGNsYXNzPSJhZG1pbi1p -bmZvLWJhZGdlIj5BdWZrbGFwcGVuIC8gWnVrbGFwcGVuPC9zcGFuPjwvc3VtbWFyeT4KICAgICAg -ICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4taW5mby1ib2R5Ij4KICAgICAgICAg -ICAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+U3RhbmRvcnRlPC9zdHJvbmc+IHNpbmQgZGll -IEFyYmVpdHNvcnRlIGRlciBWSTMgKEFybnNiZXJnLCBCb2NodW0sIERvcnRtdW5kIOKApikuIEpl -ZGVyIFN0YW5kb3J0IGhhdCBlaW5lIGVpZ2VuZSBTY2hpY2h0cm90YXRpb24gZsO8ciBkaWUgRGll -bnN0Z3J1cHBlbiBBL0IvQywgZGllIGltIEhlYWRlciBkZXIgUGxhbnVuZyBhbHMg4oCeU2NoaWNo -dGZvbGdlIi1aZWlsZSBhbmdlemVpZ3Qgd2lyZCAoc29mZXJuIGRpZSBBbnplaWdlIGltIFRhYiA8 -Yj5GdW5rdGlvbmVuPC9iPiBha3RpdmllcnQgaXN0KS48L3A+CiAgICAgICAgICAgICAgICAgICAg -ICAgICAgICA8cD48c3Ryb25nPlJvdGF0aW9ucy1NdXN0ZXI6PC9zdHJvbmc+PC9wPgogICAgICAg -ICAgICAgICAgICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg -IDxsaT48Yj5BQkM8L2I+ID0gQS1GcsO8aCAvIEItU3DDpHQgLyBDLU5hY2h0PC9saT4KICAgICAg -ICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGI+QkNBPC9iPiA9IEItRnLDvGggLyBDLVNw -w6R0IC8gQS1OYWNodDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxi -PkNBQjwvYj4gPSBDLUZyw7xoIC8gQS1TcMOkdCAvIEItTmFjaHQ8L2xpPgogICAgICAgICAgICAg -ICAgICAgICAgICAgICAgICAgIDxsaT48Yj5Qb29sPC9iPiA9IGluZGl2aWR1ZWxsZSBFaW50ZWls -dW5nLCBrZWluZSBmZXN0ZSBSb3RhdGlvbiAoZsO8ciBmbGV4aWJsZSBFaW5zYXR6cG9vbHMpPC9s -aT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAg -ICAgICAgICA8cD48c3Ryb25nPlJoeXRobXVzIHBmbGVnZW46PC9zdHJvbmc+IERlciBrb25rcmV0 -ZSBaeWtsdXMgKHouQi4gd8O2Y2hlbnRsaWNoIHdlY2hzZWxuZCBvZGVyIDMtVGFnZS1SaHl0aG11 -cykgd2lyZCDDvGJlciBkZW4gUmh5dGhtdXMtR2VuZXJhdG9yIHBybyBTdGFuZG9ydCBlaW5nZXN0 -ZWxsdC4gRGVyIEdlbmVyYXRvciBzY2hyZWlidCBmw7xyIGplZGVzIERhdHVtIGVpbmUgU2NoaWNo -dGZvbGdlIGluIGRpZSBKU09OIOKAlCBkaWUgQW56ZWlnZSBpbSBIZWFkZXIgemllaHQgZGFubiBm -w7xyIGplZGVuIFRhZyBkZW4gaGludGVybGVndGVuIFdlcnQuPC9wPgogICAgICAgICAgICAgICAg -ICAgICAgICAgICAgPHA+PHN0cm9uZz5TcGFsdGVuOjwvc3Ryb25nPjwvcD4KICAgICAgICAgICAg -ICAgICAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+ -PGI+TmFtZTwvYj4g4oCUIHZvbGxlciBTdGFuZG9ydC1OYW1lICh6LkIuIOKAnkFybnNiZXJnIiku -PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGI+S8O8cnplbDwvYj4g -4oCUIEt1cnpmb3JtIGbDvHIgZGllIE9FLVp1b3JkbnVuZyBpbiBkZXIgUGVyc29uYWwtTGlzdGUg -KHouQi4g4oCeQVIiKS48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48 -Yj5Qb29sPC9iPiDigJQgQ2hlY2tib3g7IHNjaGFsdGV0IGRpZSBmZXN0ZSBSb3RhdGlvbiBhdXMu -PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGI+U2NoaWNodGZvbGdl -ICgxNCBUYWdlKTwvYj4g4oCUIFZvcnNjaGF1IGRlciBuw6RjaHN0ZW4gMTQgVGFnZSwgZmFyYmxp -Y2ggY29kaWVydC48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48Yj5B -a3Rpb25lbjwvYj4g4oCUIFJoeXRobXVzLUdlbmVyYXRvciDDtmZmbmVuIG9kZXIgU3RhbmRvcnQg -bMO2c2NoZW4uPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAg -ICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPkhpbndlaXM6PC9zdHJvbmc+IERpZSBSZWlo -ZW5mb2xnZSBkZXIgU3RhbmRvcnRlIGluIGRlciBUYWJlbGxlIGJlc3RpbW10IGF1Y2ggZGllIFJl -aWhlbmZvbGdlIGRlciBaZWlsZW4gaW0gSGVhZGVyIChvYmVuID0gZXJzdGUgWmVpbGUpLjwvcD4K -ICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kZXRh -aWxzPgogICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iYWRtaW4tdGFiZWxsZSIgaWQ9 -InN0YW5kb3J0ZS10YWJlbGxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAg -ICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAg -ICAgIDx0aD5OYW1lPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5 -bGU9IndpZHRoOjYwcHgiPkvDvHJ6ZWw8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAg -ICAgIDx0aCBzdHlsZT0id2lkdGg6NzBweCI+UG9vbDwvdGg+CiAgICAgICAgICAgICAgICAgICAg -ICAgICAgICAgICAgPHRoPlNjaGljaHRmb2xnZSAoZXJzdGUgMTQgVGFnZSBhYiBoZXV0ZSk8L3Ro -PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6MTYwcHgi -PkFrdGlvbmVuPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAg -ICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keSBp -ZD0ic3RhbmRvcnRlLXRib2R5Ij48L3Rib2R5PgogICAgICAgICAgICAgICAgICAgIDwvdGFibGU+ -CiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLXN0YW5kb3J0ZS1zcGVpY2hlcm4i -IGNsYXNzPSJidG4gYnRuLXByaW1hZXIiIHN0eWxlPSJtYXJnaW4tdG9wOjE2cHgiPlN0YW5kb3J0 -ZSBzcGVpY2hlcm48L2J1dHRvbj4KICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAg -ICAgIDwhLS0gVGFiOiBFcnNjaGVpbnVuZ3NiaWxkIOKAlCBNYXJraWVydW5ncy1FZGl0b3IgbWl0 -IExpdmUtVm9yc2NoYXUgLS0+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1pbi10YWIg -dmVyc3RlY2t0IiBpZD0iYWRtaW4tdGFiLWVyc2NoZWludW5nc2JpbGQiPgogICAgICAgICAgICAg -ICAgICAgIDxkaXYgY2xhc3M9ImFkbWluLWtvcGYiPgogICAgICAgICAgICAgICAgICAgICAgICA8 -aDI+RXJzY2hlaW51bmdzYmlsZDwvaDI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIHN0eWxl -PSJtYXJnaW46NnB4IDAgMCAwO2ZvbnQtc2l6ZToxMnB4O2NvbG9yOnZhcigtLXRleHQtbXV0ZWQp -Ij5WaXN1ZWxsZSBNYXJraWVydW5nZW4gaW0gUGxhbnRhZmVsLUtvcGYgdW5kIGJlaW0gTGl2ZS1T -eW5jIGluZGl2aWR1ZWxsIGFucGFzc2VuLiDDhG5kZXJ1bmdlbiBzaW5kIHNvZm9ydCBzaWNodGJh -cjsgc2llIHdlcmRlbiBlcnN0IGJlaW0gS2xpY2sgYXVmIOKAnlNwZWljaGVybiIgcGVyc2lzdGll -cnQuPC9wPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxk -aXYgaWQ9ImVyc2NoZWludW5nc2JpbGQtaW5oYWx0Ij48L2Rpdj4KICAgICAgICAgICAgICAgIDwv -ZGl2PgoKICAgICAgICAgICAgICAgIDwhLS0gVGFiOiBTdGF0aXN0aWstTGF5b3V0IChTVS1vbmx5 -KSDigJQgUmVpaGVuZm9sZ2UvQnJlaXRlL1NpY2h0YmFya2VpdAogICAgICAgICAgICAgICAgICAg -ICBhbGxlciBTdGF0aXN0aWstS2FjaGVsbiBpbSB2aXN1ZWxsZW4gNi1TcGFsdGVuLVJhc3Rlci4g -LS0+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1pbi10YWIgdmVyc3RlY2t0IiBpZD0i -YWRtaW4tdGFiLXN0YXRpc3Rpay1sYXlvdXQiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xh -c3M9ImFkbWluLWtvcGYiPgogICAgICAgICAgICAgICAgICAgICAgICA8aDI+U3RhdGlzdGlrLUxh -eW91dDwvaDI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIHN0eWxlPSJtYXJnaW46NnB4IDAg -MCAwO2ZvbnQtc2l6ZToxMnB4O2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpIj5CcmVpdGUgKDE6MSB2 -b2xsIMK3IDE6MiBoYWxiIMK3IDE6MyBkcml0dGVsKSB1bmQgUmVpaGVuZm9sZ2UgZGVyIFN0YXRp -c3Rpay1LYWNoZWxuIGbDvHIgPHN0cm9uZz5hbGxlPC9zdHJvbmc+IGZlc3RsZWdlbi4gS2xpY2sg -YXVmIGVpbmUgS2FjaGVsIHdlY2hzZWx0IGRpZSBCcmVpdGUsIFppZWhlbiDDpG5kZXJ0IGRpZSBS -ZWloZW5mb2xnZSwgZGFzIEF1Z2Ugc2NoYWx0ZXQgc2llIHNpY2h0YmFyL3Vuc2ljaHRiYXIuIFNj -aHdlcmUgUGFuZWxzIChIZWF0bWFwcywgRGV0YWlsYW5hbHlzZSkgYmxlaWJlbiBhdWYgdm9sbGVy -IEJyZWl0ZS48L3A+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAg -ICAgPGRpdiBpZD0ic3RhdGlzdGlrLWxheW91dC1pbmhhbHQiPjwvZGl2PgogICAgICAgICAgICAg -ICAgPC9kaXY+CgogICAgICAgICAgICAgICAgPCEtLSBUYWI6IFN0YXRpc3Rpay1CdWlsZGVyIOKA -lCBtZWhyZGltZW5zaW9uYWxlciBOb0NvZGUtWnVzYW1tZW5iYXUKICAgICAgICAgICAgICAgICAg -ICAgZWlnZW5lciBBdXN3ZXJ0dW5nZW4gKEZpbHRlciAtPiBEaW1lbnNpb25lbiAtPiBLZW5uemFo -bCAtPgogICAgICAgICAgICAgICAgICAgICBEaWFncmFtbXR5cCkgbWl0IExpdmUtRmx1c3NkaWFn -cmFtbSwgVGVzdGVuLVZvcnNjaGF1IHVuZAogICAgICAgICAgICAgICAgICAgICBTcGVpY2hlcm4g -YWxzIEthY2hlbC4gLS0+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1pbi10YWIgdmVy -c3RlY2t0IiBpZD0iYWRtaW4tdGFiLXN0YXRpc3Rpay1idWlsZGVyIj4KICAgICAgICAgICAgICAg -ICAgICA8ZGl2IGNsYXNzPSJhZG1pbi1rb3BmIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGgy -PlN0YXRpc3Rpay1CdWlsZGVyPC9oMj4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgc3R5bGU9 -Im1hcmdpbjo2cHggMCAwIDA7Zm9udC1zaXplOjEycHg7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCki -PkVpZ2VuZSBBdXN3ZXJ0dW5nZW4genVzYW1tZW5rbGlja2VuOiBEYXRlbiBmaWx0ZXJuLCBEaW1l -bnNpb25lbiB3w6RobGVuLCBLZW5uemFobCArIERpYWdyYW1tdHlwIGJlc3RpbW1lbi4gRGFzIEZs -dXNzZGlhZ3JhbW0gemVpZ3QgZGllIExvZ2lrIGxpdmUsIOKAnlRlc3RlbiIgYmF1dCBkaWUgU3Rh -dGlzdGlrIHNvZm9ydC4g4oCeQWxzIEthY2hlbCBzcGVpY2hlcm4iIG1hY2h0IHNpZSBmw7xyIGFs -bGUgaW0gU3RhdGlzdGlrLVRhYiBzaWNodGJhciAoQW5vcmRudW5nIGltIFN0YXRpc3Rpay1MYXlv -dXQpLjwvcD4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8 -ZGl2IGlkPSJzdGF0aXN0aWstYnVpbGRlci1pbmhhbHQiPjwvZGl2PgogICAgICAgICAgICAgICAg -PC9kaXY+CgogICAgICAgICAgICAgICAgPCEtLSBUYWI6IEtvbmZpZ3VyYXRpb24gKyBGdW5rdGlv -bmVuIChwZXIgU3ViLU5hdiB1bXNjaGFsdGJhcikgLS0+CiAgICAgICAgICAgICAgICA8ZGl2IGNs -YXNzPSJhZG1pbi10YWIgdmVyc3RlY2t0IiBpZD0iYWRtaW4tdGFiLWVpbnN0ZWxsdW5nZW4iPgog -ICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFkbWluLWtvcGYiPgogICAgICAgICAgICAg -ICAgICAgICAgICA8aDI+S29uZmlndXJhdGlvbiAmYW1wOyBGdW5rdGlvbmVuPC9oMj4KICAgICAg -ICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgPG5hdiBjbGFzcz0iYWRt -aW4tc3VibmF2IiBhcmlhLWxhYmVsPSJTeXN0ZW0tS29uZmlndXJhdGlvbi1TdWItTmF2aWdhdGlv -biI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0i -YWRtaW4tc3VibmF2LWJ0biBha3RpdiIgZGF0YS1zdWJ0YWI9ImVpbnN0ZWxsdW5nZW4iPkdsb2Jh -bGUgRWluc3RlbGx1bmdlbjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9u -IHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImFkbWluLXN1Ym5hdi1idG4iIGRhdGEtc3VidGFiPSJmZWF0 -dXJlcyI+RnVua3Rpb25lbiBlaW4tL2F1c2JsZW5kZW48L2J1dHRvbj4KICAgICAgICAgICAgICAg -ICAgICA8L25hdj4KCiAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9ImFkbWluLXNl -a3Rpb24iIGlkPSJhZG1pbi1zZWt0aW9uLWVpbnN0ZWxsdW5nZW4iIGRhdGEtc3VidGFiLXNla3Rp -b249ImVpbnN0ZWxsdW5nZW4iPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJh -ZG1pbi1zZWt0aW9uLWtvcGYiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzPkdsb2Jh -bGUgRWluc3RlbGx1bmdlbjwvaDM+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAg -ICAgICAgICAgICAgICAgICAgICA8ZGV0YWlscyBjbGFzcz0iYWRtaW4taW5mbyIgZGF0YS1pbmZv -LWtleT0iZWluc3RlbGx1bmdlbiIgb3Blbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxz -dW1tYXJ5PjxzcGFuIGNsYXNzPSJhZG1pbi1pbmZvLWNoZXYiPuKWuDwvc3Bhbj5IaW53ZWlzZSB6 -dSBkZW4gZ2xvYmFsZW4gRWluc3RlbGx1bmdlbjxzcGFuIGNsYXNzPSJhZG1pbi1pbmZvLWJhZGdl -Ij5BdWZrbGFwcGVuIC8gWnVrbGFwcGVuPC9zcGFuPjwvc3VtbWFyeT4KICAgICAgICAgICAgICAg -ICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFkbWluLWluZm8tYm9keSI+CiAgICAgICAgICAgICAg -ICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5QbGFudW5nc2phaHI6PC9zdHJvbmc+IERhcyBK -YWhyLCBmw7xyIGRhcyBkaWUgUGxhbnVuZyBha3R1ZWxsIGdlcGZsZWd0IHdpcmQuIEJlZWluZmx1 -c3N0IGRpZSBHZWJ1cnRzdGFnLUFuemVpZ2UgKHJlY2huZXQgQWx0ZXIgYmFzaWVyZW5kIGF1ZiBk -aWVzZW0gSmFocikgdW5kIGRpZSBWb3JzY2hsw6RnZSBiZWltIEFubGVnZW4gdm9uIEZlaWVydGFn -ZW4vRmVyaWVuLiBadW0gSmFocmVzd2VjaHNlbCBoaWVyIGFrdHVhbGlzaWVyZW4uPC9wPgogICAg -ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+SW5mb3RleHQ6PC9zdHJvbmc+ -IEt1cnplciBIaW53ZWlzdGV4dCAoei5CLiDigJ5SZWloZW5mb2xnZSBhdWYgV3Vuc2NoIGRlciBG -w7xzdCBhbmdlcGFzc3QuIC9XaXQiKSwgZGVyIGltIEluZm9ybWF0aW9uc2ZlbnN0ZXIgb2JlbiBw -cm9taW5lbnQgZXJzY2hlaW50LiBHdXQgZ2VlaWduZXQgZsO8ciBrdXJ6ZSDigJ5CcmVha2luZyBO -ZXdzIiBhbiBkaWUgTnV0emVyLjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8 -cD48c3Ryb25nPlN1cHBvcnRpbmZvOjwvc3Ryb25nPiBBbnNwcmVjaHBhcnRuZXIgYmVpIGZhY2hs -aWNoZW4gb2RlciB0ZWNobmlzY2hlbiBGcmFnZW4uIEVyc2NoZWludCBpbSBJbmZvcm1hdGlvbnNm -ZW5zdGVyIGRhcnVudGVyLiBIaWVyIFRlbGVmb25udW1tZXJuLCBNYWlsYWRyZXNzZW4gdW5kIGRp -ZSBmYWNobGljaGUgVmVyYW50d29ydHVuZyBhbmdlYmVuLjwvcD4KICAgICAgICAgICAgICAgICAg -ICAgICAgICAgICAgICA8cD48c3Ryb25nPlNjaGxpZcOfaW5mbzo8L3N0cm9uZz4gSGlud2VpcyB6 -dW0gQXV0by1TaHV0ZG93bi1WZXJoYWx0ZW4sIGRlciBpbSBJbmZvcm1hdGlvbnNmZW5zdGVyIGFu -Z2V6ZWlndCB3aXJkLiBQbGF0emhhbHRlciA8Y29kZT57bWludXRlbn08L2NvZGU+IHdpcmQgYXV0 -b21hdGlzY2ggZXJzZXR6dC48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+ -PHN0cm9uZz5TcGVpY2hlcm46PC9zdHJvbmc+IMOEbmRlcnVuZ2VuIHdlcmRlbiBudXIgZHVyY2gg -ZGVuIFNwZWljaGVybi1CdXR0b24gw7xiZXJub21tZW4uIEVpbiBSZWxvYWQgZGVyIFNlaXRlIGlz -dCBkYW5hY2ggbmljaHQgbsO2dGlnLjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwv -ZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2RldGFpbHM+CiAgICAgICAgICAgICAgICAg -ICAgICAgIDxkaXYgY2xhc3M9ImVpbnN0ZWxsdW5nZW4tZm9ybSI+CiAgICAgICAgICAgICAgICAg -ICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdydXBwZSI+CiAgICAgICAgICAgICAgICAgICAg -ICAgICAgICAgICAgPGxhYmVsIGZvcj0iZWlucy1qYWhyIj5QbGFudW5nc2phaHI8L2xhYmVsPgog -ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6ZmxleDtn -YXA6MTJweDthbGlnbi1pdGVtczpjZW50ZXI7ZmxleC13cmFwOndyYXAiPgogICAgICAgICAgICAg -ICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0ibnVtYmVyIiBpZD0iZWlucy1qYWhy -IiBjbGFzcz0iZm9ybS1pbnB1dCIgbWluPSIyMDIwIiBtYXg9IjIwOTkiIHN0eWxlPSJ3aWR0aDox -MjBweCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gaWQ9ImJ0 -bi1qYWhyZXN3ZWNoc2VsIiBjbGFzcz0iYnRuIGJ0bi1zZWsiIHR5cGU9ImJ1dHRvbiIgdGl0bGU9 -IldlY2hzZWx0IGRhcyBQbGFudW5nc2phaHIgYXVmIGRhcyBsaW5rcyBlaW5nZXN0ZWxsdGUgSmFo -ciDigJQgdm9yIG9kZXIgenVyw7xjay4gQmVzdMOkdGlndW5nICsgUmVsb2FkLCBrZWluIERhdGVu -dmVybHVzdC4iPkF1ZiBlaW5nZXN0ZWxsdGVzIEphaHIgd2VjaHNlbG48L2J1dHRvbj4KICAgICAg -ICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAg -ICAgICAgICA8c21hbGwgc3R5bGU9ImRpc3BsYXk6YmxvY2s7Y29sb3I6dmFyKC0tdGV4dC1tdXRl -ZCk7bWFyZ2luLXRvcDo2cHgiPkdld8O8bnNjaHRlcyBKYWhyIGxpbmtzIGVpbnN0ZWxsZW4gdW5k -IGF1ZiDigJ5BdWYgZWluZ2VzdGVsbHRlcyBKYWhyIHdlY2hzZWxuIiBrbGlja2VuIOKAlCBkaWUg -QW5zaWNodCBzcHJpbmd0IGF1ZiBkYXMgZ2V3w6RobHRlIEphaHIgKDxiPnZvciBvZGVyIHp1csO8 -Y2s8L2I+KSB1bmQgd2lyZCBuZXUgZ2VsYWRlbi4gRGFzIGJsb8OfZSDDhG5kZXJuIGRlcyBGZWxk -ZXMgc3BlaWNoZXJ0IG5vY2ggbmljaHRzOyBlcnN0IGRlciBCdXR0b24gd2VjaHNlbHQuIERpZSBQ -bGFudW5nc2Fuc2ljaHQgemVpZ3QgenVzw6R0emxpY2ggZGVuIEphbnVhciBkZXMgRm9sZ2VqYWhy -ZXMgYWxzIFZvcnBsYW51bmdzYmVyZWljaDsgYmVyZWl0cyBkb3J0IGdlcGxhbnRlIERpZW5zdGUg -YmxlaWJlbiB1bnRlciBpaHJlbSBEYXR1bSBlcmhhbHRlbi4gS2VpbiBEYXRlbnZlcmx1c3QuPC9z -bWFsbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAg -ICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncnVwcGUiPgogICAgICAgICAgICAgICAgICAg -ICAgICAgICAgICAgIDxsYWJlbCBmb3I9ImVpbnMtcGFwaWVya29yYi10YWdlIj5QYXBpZXJrb3Ji -LUF1ZmJld2FocnVuZyAoVGFnZSk8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAg -ICAgIDxpbnB1dCB0eXBlPSJudW1iZXIiIGlkPSJlaW5zLXBhcGllcmtvcmItdGFnZSIgY2xhc3M9 -ImZvcm0taW5wdXQiIG1pbj0iMCIgbWF4PSIzNjUiIHN0eWxlPSJ3aWR0aDoxMjBweCI+CiAgICAg -ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNtYWxsIHN0eWxlPSJkaXNwbGF5OmJsb2NrO2Nv -bG9yOnZhcigtLXRleHQtbXV0ZWQpO21hcmdpbi10b3A6NHB4Ij5XaWUgdmllbGUgVGFnZSBzb2Z0 -LWdlbMO2c2NodGUgUGVyc29uZW4gaW0gUGFwaWVya29yYiB2ZXJibGVpYmVuLCBiZXZvciBzaWUg -YmVpbSBuw6RjaHN0ZW4gTMO2c2NoLVZvcmdhbmcgZW5kZ8O8bHRpZyBlbnRmZXJudCB3ZXJkZW4u -IDxjb2RlPjA8L2NvZGU+ID0gc29mb3J0IGJlaW0gbsOkY2hzdGVuIEzDtnNjaC1Wb3JnYW5nIGF1 -ZnLDpHVtZW4uPC9zbWFsbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAg -ICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncnVwcGUiPgogICAgICAg -ICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9ImVpbnMtZW1haWwtZG9tYWluIj5F -LU1haWwgQXV0by1TdWZmaXggRG9tYWluPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAg -ICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImVpbnMtZW1haWwtZG9tYWluIiBjbGFzcz0i -Zm9ybS1pbnB1dCIgcGxhY2Vob2xkZXI9IkBwb2xpemVpLm5ydy5kZSIgc3R5bGU9IndpZHRoOjI0 -MHB4Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c21hbGwgc3R5bGU9ImRpc3Bs -YXk6YmxvY2s7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7bWFyZ2luLXRvcDo0cHgiPkRpZXNlIERv -bWFpbiB3aXJkIGF1dG9tYXRpc2NoIGFuZ2Vow6RuZ3QsIHdlbm4gYmVpbSBCZWFyYmVpdGVuIGVp -bmVyIFBlcnNvbmVuLUUtTWFpbCBudXIgZGVyIGxva2FsZSBUZWlsIGVpbmdlZ2ViZW4gd2lyZCAo -ei4gQi4gPGVtPk11ZWxsZXI8L2VtPiDihpIgPGVtPk11ZWxsZXJAcG9saXplaS5ucncuZGU8L2Vt -PikuIFdpcmt0IG51ciwgd2VubiBkYXMgRmVhdHVyZSA8ZW0+4oCeRS1NYWlsOiBBdXRvLVN1ZmZp -eCI8L2VtPiBha3RpdiBpc3QuPC9zbWFsbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwv -ZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncnVwcGUi -PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9ImVpbnMtYXZhdGFy -LWdyb2Vzc2UiPlByb2ZpbGJpbGQtWmllbGdyw7bDn2UgKFBpeGVsLCBxdWFkcmF0aXNjaCk8L2xh -YmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJudW1iZXIi -IGlkPSJlaW5zLWF2YXRhci1ncm9lc3NlIiBjbGFzcz0iZm9ybS1pbnB1dCIgbWluPSIxMDAiIG1h -eD0iNjAwIiBzdGVwPSIyMCIgc3R5bGU9IndpZHRoOjEyMHB4Ij4KICAgICAgICAgICAgICAgICAg -ICAgICAgICAgICAgICA8c21hbGwgc3R5bGU9ImRpc3BsYXk6YmxvY2s7Y29sb3I6dmFyKC0tdGV4 -dC1tdXRlZCk7bWFyZ2luLXRvcDo0cHgiPkJlaW0gVXBsb2FkIHdpcmQgZGFzIGhvY2hnZWxhZGVu -ZSBCaWxkIGF1ZiBkaWVzZSBLYW50ZW5sw6RuZ2UgaGVydW50ZXJnZXJlY2huZXQgdW5kIGFscyBK -UEVHIGdlc3BlaWNoZXJ0LiBHcsO2w59lciA9IHNjaMOkcmZlciwgYWJlciBtZWhyIFNwZWljaGVy -IHBybyBCaWxkLiBTdGFuZGFyZDogPGNvZGU+MjAwPC9jb2RlPiAofjEw4oCTMjUmbmJzcDtLQiBw -cm8gRGF0ZWkpLiBXZXJ0ZSB6d2lzY2hlbiAxMDAgdW5kIDYwMCBlcmxhdWJ0Ljwvc21hbGw+CiAg -ICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAg -ICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3J1cHBlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAg -ICAgICA8bGFiZWwgZm9yPSJlaW5zLWVkaXRvci10cmlnZ2VyIj5TY2hpY2h0LUVkaXRvciDDtmZm -bmVuIG1pdDwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBp -ZD0iZWlucy1lZGl0b3ItdHJpZ2dlciIgY2xhc3M9ImZvcm0taW5wdXQiIHN0eWxlPSJ3aWR0aDoy -NDBweCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9 -InJlY2h0cyI+UmVjaHRza2xpY2sgKFN0YW5kYXJkKTwvb3B0aW9uPgogICAgICAgICAgICAgICAg -ICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJsaW5rcyI+TGlua3NrbGljazwvb3B0 -aW9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJt -aXR0ZSI+TWF1c3JhZC1LbGljayAoTWl0dGUpPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAg -ICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9ImRvcHBlbCI+RG9wcGVsa2xpY2s8L29wdGlv -bj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD4KICAgICAgICAgICAg -ICAgICAgICAgICAgICAgICAgICA8c21hbGwgc3R5bGU9ImRpc3BsYXk6YmxvY2s7Y29sb3I6dmFy -KC0tdGV4dC1tdXRlZCk7bWFyZ2luLXRvcDo0cHgiPkxlZ3QgZmVzdCwgd2VsY2hlIE1hdXMtQWt0 -aW9uIGluIGRlciBQbGFudGFmZWwgZGFzIERyb3Bkb3duIHp1ciBTY2hpY2h0YXVzd2FobCDDtmZm -bmV0LiBFaW4gZWluZmFjaGVyIDxzdHJvbmc+TGlua3NrbGljayBtYXJraWVydDwvc3Ryb25nPiBk -aWUgWmVsbGUgaW1tZXIgbnVyIChhdcOfZXIg4oCeTGlua3NrbGljayIgaXN0IGhpZXIgZ2V3w6Ro -bHQpLiBXaXJrdCBmw7xyIGFsbGUgTnV0emVyOyBncmVpZnQgbmFjaCBkZW0gbsOkY2hzdGVuIE5l -dWxhZGVuIGRlciBTZWl0ZS48L3NtYWxsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9k -aXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdydXBwZSIg -c3R5bGU9InBhZGRpbmc6MTJweCAxNHB4O2JhY2tncm91bmQ6dmFyKC0tYmctY2FyZCk7Ym9yZGVy -OjFweCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpO2JvcmRlci1yYWRpdXM6NnB4Ij4KICAgICAg -ICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPkluZm8tL1N1cHBvcnR0ZXh0ZSB1bmQg -QmVkaWVudW5ncy1IaW53ZWlzZTwvc3Ryb25nPiB3ZXJkZW4gaW0gVGFiIDxlbT7igJ5CZXNjaHJp -ZnR1bmdlbiAmYW1wOyBUZXh0ZSI8L2VtPiBnZXBmbGVndCAobWl0IEZvcm1hdGllcnVuZ3MtRWRp -dG9yKS4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAg -ICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLWVpbnN0ZWxsdW5nZW4tc3BlaWNoZXJuIiBjbGFz -cz0iYnRuIGJ0bi1wcmltYWVyIiBzdHlsZT0ibWFyZ2luLXRvcDoxMnB4Ij5FaW5zdGVsbHVuZ2Vu -IHNwZWljaGVybjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAg -ICAgICAgICAgICAgICA8L3NlY3Rpb24+CgogICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNs -YXNzPSJhZG1pbi1zZWt0aW9uIHZlcnN0ZWNrdCIgaWQ9ImFkbWluLXNla3Rpb24tZmVhdHVyZXMi -IGRhdGEtc3VidGFiLXNla3Rpb249ImZlYXR1cmVzIj4KICAgICAgICAgICAgICAgICAgICAgICAg -PGRpdiBjbGFzcz0iYWRtaW4tc2VrdGlvbi1rb3BmIj4KICAgICAgICAgICAgICAgICAgICAgICAg -ICAgIDxoMz5GdW5rdGlvbmVuIGVpbi0vYXVzYmxlbmRlbjwvaDM+CiAgICAgICAgICAgICAgICAg -ICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGV0YWlscyBjbGFzcz0iYWRt -aW4taW5mbyIgZGF0YS1pbmZvLWtleT0iZmVhdHVyZXMiIG9wZW4+CiAgICAgICAgICAgICAgICAg -ICAgICAgICAgICA8c3VtbWFyeT48c3BhbiBjbGFzcz0iYWRtaW4taW5mby1jaGV2Ij7ilrg8L3Nw -YW4+SGlud2Vpc2UgenUgZGVuIEZ1bmt0aW9uZW48c3BhbiBjbGFzcz0iYWRtaW4taW5mby1iYWRn -ZSI+QXVma2xhcHBlbiAvIFp1a2xhcHBlbjwvc3Bhbj48L3N1bW1hcnk+CiAgICAgICAgICAgICAg -ICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1pbi1pbmZvLWJvZHkiPgogICAgICAgICAgICAg -ICAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+WndlY2s6PC9zdHJvbmc+IEhpZXIga8O2bm5l -biBlaW56ZWxuZSwga29tcGxleGVyZSBGdW5rdGlvbmVuIGRlciBBbndlbmR1bmcgZWluLSBvZGVy -IGF1c2dlc2NoYWx0ZXQgd2VyZGVuLiBEYXMgaGlsZnQsIGRpZSBVSSBqZSBuYWNoIEFud2VuZHVu -Z3NiZWRhcmYgenUgZW50c2NobGFja2VuIOKAlCB3YXMgbmljaHQgZ2VicmF1Y2h0IHdpcmQsIHdp -cmQgYXVzZ2VibGVuZGV0LjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48 -c3Ryb25nPlZlcmbDvGdiYXJlIFNjaGFsdGVyOjwvc3Ryb25nPjwvcD4KICAgICAgICAgICAgICAg -ICAgICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg -IDxsaT48Yj5TY2hpY2h0Zm9sZ2VuLUFuemVpZ2U8L2I+IOKAlCB6ZWlndCBpbSBIZWFkZXIgcHJv -IFN0YW5kb3J0IGRpZSBBQkMvQkNBL0NBQi1Sb3RhdGlvbi4gV2VyIGRpZSBSb3RhdGlvbiBuaWNo -dCBha3RpdiBwZmxlZ3QsIGthbm4gZGFzIGF1c2JsZW5kZW4uPC9saT4KICAgICAgICAgICAgICAg -ICAgICAgICAgICAgICAgICAgICAgPGxpPjxiPlN0w6Rya2UtQW56ZWlnZTwvYj4g4oCUIEZ8U3xO -LUJlc2V0enVuZ3N6YWhsIHBybyBUYWcgaW0gSGVhZGVyLiBLZXJuLUZlYXR1cmUgZsO8ciBkaWUg -QmVzZXR6dW5nc3BsYW51bmcuPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg -ICAgPGxpPjxiPlJ1aGV6ZWl0LVByw7xmdW5nPC9iPiDigJQgd2FybnQgYmVpICZsdDsgMTFoIFJ1 -aGV6ZWl0IHp3aXNjaGVuIHp3ZWkgU2NoaWNodGVuIGRlcnNlbGJlbiBQZXJzb24uIEF1cyBBcmJa -Ry1TaWNodCB3aWNodGlnLjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg -IDxsaT48Yj5GcmVtZC3DhG5kZXJ1bmcgV2FybnVuZzwvYj4g4oCUIEJlc3TDpHRpZ3VuZywgd2Vu -biBtYW4gZGllIFNjaGljaHQgZWluZXIgYW5kZXJlbiBQZXJzb24gw6RuZGVydC4gU2Now7x0enQg -dm9yIHZlcnNlaGVudGxpY2hlbiDDhG5kZXJ1bmdlbi48L2xpPgogICAgICAgICAgICAgICAgICAg -ICAgICAgICAgICAgICAgICA8bGk+PGI+RmFpcm5lc3MtQW56ZWlnZTwvYj4g4oCUIHplaWd0IHBy -byBQZXJzb24gZGFzIFZlcmjDpGx0bmlzIHZvbiBXb2NoZW5lbmQtL0ZlaWVydGFnc2RpZW5zdGVu -IGluIGRlciBTdGF0aXN0aWstQXVzd2VydHVuZy48L2xpPgogICAgICAgICAgICAgICAgICAgICAg -ICAgICAgICAgICAgICA8bGk+PGI+TXVzdGVyLUFuYWx5c2U8L2I+IOKAlCBlcmtlbm50IEF1ZmbD -pGxsaWdrZWl0ZW4gKHouQi4gd2llZGVyaG9sdGUgRnLDvGgtbmFjaC1OYWNodC1Gb2xnZW4sIHVu -Z2xlaWNoZSBWZXJ0ZWlsdW5nKS48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg -ICAgICA8bGk+PGI+QWJ3ZXNlbmhlaXRzLUthY2hlbG48L2I+IOKAlCB6ZWlndCBwcm8gUGVyc29u -IGVpbmUga29tcGFrdGUgQWJ3ZXNlbmhlaXRzLcOcYmVyc2ljaHQgKEtyYW5rL1VybGF1Yi9MRy9B -WkEpLjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48Yj5EZXRh -aWwtVGFiZWxsZTwvYj4g4oCUIGF1c2tsYXBwYmFyZSBTdGF0aXN0aWstVGFiZWxsZSBtaXQgYWxs -ZW4gRWluemVsd2VydGVuLjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91 -bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPlNvZm9ydC1XaXJr -dW5nOjwvc3Ryb25nPiDDhG5kZXJ1bmdlbiB3ZXJkZW4gc29mb3J0IGdlc3BlaWNoZXJ0IHVuZCBn -cmVpZmVuIGRpcmVrdCAob2huZSBTZWl0ZW4tUmVsb2FkKSDigJQgZGVyIGVudHNwcmVjaGVuZGUg -QmVyZWljaCBlcnNjaGVpbnQvdmVyc2Nod2luZGV0IHVtZ2VoZW5kLjwvcD4KICAgICAgICAgICAg -ICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2RldGFpbHM+ -CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9ImZlYXR1cmVzLWluaGFsdCI+PC9kaXY+ -CiAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPgogICAgICAgICAgICAgICAgPC9kaXY+CgoK -CiAgICAgICAgICAgICAgICA8IS0tIFRhYjogQmFja3VwcyAtLT4KICAgICAgICAgICAgICAgIDxk -aXYgY2xhc3M9ImFkbWluLXRhYiB2ZXJzdGVja3QiIGlkPSJhZG1pbi10YWItYmFja3VwcyI+CiAg -ICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4ta29wZiI+CiAgICAgICAgICAgICAg -ICAgICAgICAgIDxoMj5CYWNrdXBzICZhbXA7IFdpZWRlcmhlcnN0ZWxsdW5nPC9oMj4KICAgICAg -ICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLWJhY2t1cC1uZXUiIGNsYXNzPSJidG4g -YnRuLWVyZm9sZyI+TmV1ZXMgQmFja3VwIGpldHp0IGVyc3RlbGxlbjwvYnV0dG9uPgogICAgICAg -ICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkZXRhaWxzIGNsYXNzPSJh -ZG1pbi1pbmZvIiBkYXRhLWluZm8ta2V5PSJiYWNrdXBzIiBvcGVuPgogICAgICAgICAgICAgICAg -ICAgICAgICA8c3VtbWFyeT48c3BhbiBjbGFzcz0iYWRtaW4taW5mby1jaGV2Ij7ilrg8L3NwYW4+ -SGlud2Vpc2UgenUgQmFja3VwczxzcGFuIGNsYXNzPSJhZG1pbi1pbmZvLWJhZGdlIj5BdWZrbGFw -cGVuIC8gWnVrbGFwcGVuPC9zcGFuPjwvc3VtbWFyeT4KICAgICAgICAgICAgICAgICAgICAgICAg -PGRpdiBjbGFzcz0iYWRtaW4taW5mby1ib2R5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAg -IDxwPjxzdHJvbmc+V2FzIGlzdCBpbiBlaW5lbSBCYWNrdXA/PC9zdHJvbmc+IEVpbmUgMToxLUtv -cGllIGRlciBEYXRlaSA8Y29kZT5wbGFudW5nLmpzb248L2NvZGU+IOKAlCBhbHNvIGFsbGUgU2No -aWNodC1FaW50csOkZ2UgdW5kIEtvbW1lbnRhcmUgenVtIFplaXRwdW5rdCBkZXMgQmFja3Vwcy4g -UGVyc29uZW5saXN0ZSwgRmVpZXJ0YWdlLCBGZXJpZW4gdW5kIGFuZGVyZSBBZG1pbi1Lb25maWd1 -cmF0aW9uIHNpbmQgPGVtPm5pY2h0PC9lbT4gVGVpbCBkZXMgQmFja3VwcyAoZGllIGxpZWdlbiBp -biA8Y29kZT5hZG1pbi5qc29uPC9jb2RlPikuPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAg -ICAgPHA+PHN0cm9uZz5XYW5uIHdlcmRlbiBCYWNrdXBzIGVyc3RlbGx0Pzwvc3Ryb25nPjwvcD4K -ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgICAgICAgICAg -ICAgICAgICA8bGk+PGI+TWFudWVsbDwvYj4g4oCUIEtsaWNrIGF1ZiDigJ5OZXVlcyBCYWNrdXAg -amV0enQgZXJzdGVsbGVuIiBvZGVyIGF1ZiBkYXMgQmFja3VwLVN5bWJvbCBpbiBkZXIgSGF1cHQt -VG9vbGJhci48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48Yj5Wb3Ig -RHVtbXlkYXRlbjwvYj4g4oCUIGF1dG9tYXRpc2NoIHZvciBkZW0gRWluc3BpZWxlbiB2b24gVGVz -dGRhdGVuLjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxiPlZvciBS -ZXNldDwvYj4g4oCUIGF1dG9tYXRpc2NoIHZvciBkZW0g4oCeUGxhbnVuZyB6dXLDvGNrc2V0emVu -Ii48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48Yj5Wb3IgV2llZGVy -aGVyc3RlbGx1bmc8L2I+IOKAlCBhdXRvbWF0aXNjaCBiZXZvciBlaW4gQmFja3VwIGVpbmdlc3Bp -ZWx0IHdpcmQgKFNpY2hlcmhlaXRza29waWUgZGVyIGFrdHVlbGxlbiBQbGFudW5nKS48L2xpPgog -ICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAg -ICAgIDxwPjxzdHJvbmc+U3BlaWNoZXJvcnQ6PC9zdHJvbmc+IDxjb2RlPlZJMy9kYXRhL3BsYW51 -bmdfYmFja3VwXyouanNvbjwvY29kZT4gKGJlaW0gV2luZG93cy1EZXBsb3ltZW50OiA8Y29kZT4l -TldfSE9NRSVcVkkzX0RHTF9TZXJ2ZXJcZGF0YVw8L2NvZGU+KS4gRGllIEJhY2t1cHMgbGllZ2Vu -IG51ciBsb2thbCBpbSBEYXRlbm9yZG5lciB1bmQgd2VyZGVuIG5pY2h0IGluIGdlbWVpbnNhbWVu -IEFibGFnZW4gbWl0Z2Vmw7xocnQuPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+ -PHN0cm9uZz5Ba3Rpb25lbiBwcm8gQmFja3VwOjwvc3Ryb25nPjwvcD4KICAgICAgICAgICAgICAg -ICAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGI+ -V2llZGVyaGVyc3RlbGxlbjwvYj4g4oCUIGVyc2V0enQgZGllIGFrdHVlbGxlIFBsYW51bmcgZHVy -Y2ggZGFzIEJhY2t1cC4gVm9yaGVyIHdpcmQgZWluZSBTaWNoZXJoZWl0c2tvcGllIGRlciBqZXR6 -aWdlbiBQbGFudW5nIGVyc3RlbGx0ICg8Y29kZT5wbGFudW5nX2JhY2t1cF92b3Jfd2llZGVyaGVy -c3RlbGx1bmdf4oCmPC9jb2RlPiksIGZhbGxzIGR1IHZlcnNlaGVudGxpY2ggZGFzIGZhbHNjaGUg -QmFja3VwIGVpbmdlc3BpZWx0IGhhc3QuPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAg -ICAgICA8bGk+PGI+SGVydW50ZXJsYWRlbjwvYj4g4oCUIGzDpGR0IGRpZSBKU09OLURhdGVpIGFs -cyBEb3dubG9hZC4gTsO8dHpsaWNoIGbDvHIgQXJjaGl2aWVydW5nIG9kZXIgV2VpdGVyZ2FiZS48 -L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48Yj5Mw7ZzY2hlbjwvYj4g -4oCUIGVudGZlcm50IGRpZSBCYWNrdXAtRGF0ZWkgcGVybWFuZW50LjwvbGk+CiAgICAgICAgICAg -ICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0 -cm9uZz5XaWNodGlnIHZvciBkZW0gV2llZGVyaGVyc3RlbGxlbjo8L3N0cm9uZz4gQW0gYmVzdGVu -IHZvcmhlciBhbGxlIEJlYXJiZWl0ZXIgaW5mb3JtaWVyZW4uIEVpbmUgV2llZGVyaGVyc3RlbGx1 -bmcgw7xiZXJzY2hyZWlidCBkaWUgYWt0aXZlIFBsYW51bmcgc29mb3J0IOKAlCDDhG5kZXJ1bmdl -biwgZGllIG5hY2ggZGVtIFplaXRwdW5rdCBkZXMgQmFja3VwcyBnZW1hY2h0IHd1cmRlbiwgc2lu -ZCBkYW5uIGluIGRlciBTaWNoZXJoZWl0c2tvcGllIGFicnVmYmFyLCBhYmVyIG5pY2h0IG1laHIg -aW4gZGVyIGFrdGl2ZW4gUGxhbnVuZy48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2 -PgogICAgICAgICAgICAgICAgICAgIDwvZGV0YWlscz4KICAgICAgICAgICAgICAgICAgICA8ZGl2 -IGlkPSJiYWNrdXAtbGlzdGUtZXJnZWJuaXMiIGNsYXNzPSJnZW4taW5mbyB2ZXJzdGVja3QiIHN0 -eWxlPSJtYXJnaW4tYm90dG9tOjEycHgiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDx0YWJs -ZSBjbGFzcz0iYWRtaW4tdGFiZWxsZSIgaWQ9ImJhY2t1cC10YWJlbGxlIj4KICAgICAgICAgICAg -ICAgICAgICAgICAgPHRoZWFkPjx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBz -dHlsZT0id2lkdGg6MTgwcHgiPkVyc3RlbGx0IGFtPC90aD4KICAgICAgICAgICAgICAgICAgICAg -ICAgICAgIDx0aCBzdHlsZT0id2lkdGg6MTMwcHgiPlR5cDwvdGg+CiAgICAgICAgICAgICAgICAg -ICAgICAgICAgICA8dGggc3R5bGU9IndpZHRoOjIwMHB4Ij5JbmhhbHQ8L3RoPgogICAgICAgICAg -ICAgICAgICAgICAgICAgICAgPHRoPkRhdGVpbmFtZTwvdGg+CiAgICAgICAgICAgICAgICAgICAg -ICAgICAgICA8dGggc3R5bGU9IndpZHRoOjkwcHg7dGV4dC1hbGlnbjpyaWdodCI+R3LDtsOfZTwv -dGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9IndpZHRoOjMwMHB4Ij5B -a3Rpb25lbjwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+PC90aGVhZD4KICAgICAg -ICAgICAgICAgICAgICAgICAgPHRib2R5IGlkPSJiYWNrdXAtdGJvZHkiPjwvdGJvZHk+CiAgICAg -ICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAg -ICAgICAgIDwhLS0gVGFiOiBIaW53ZWlzZS1Qcm90b2tvbGwgKG51ciBTdXBlclVzZXIpIC0tPgog -ICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4tdGFiIHZlcnN0ZWNrdCIgaWQ9ImFkbWlu -LXRhYi1oaW53ZWlzZS1wcm90b2tvbGwiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9 -ImFkbWluLWtvcGYiPgogICAgICAgICAgICAgICAgICAgICAgICA8aDI+SGlud2Vpc2UtUHJvdG9r -b2xsPC9oMj4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9ImFkbWluLWtvcGYtc3Vi -Ij5BbGxlIGFrdGl2ZW4gSW4tQXBwLUhpbndlaXNlIG1pdCBFbXBmw6RuZ2VyLUxpc3RlIHVuZCBM -ZXNlLVN0YXR1cy4gTnVyIHNpY2h0YmFyIGbDvHIgU3VwZXJVc2VyLiDDhGx0ZXJlIEhpbndlaXNl -ICgmZ3Q7IDMwIFRhZ2UgVU5EIHZvbiBhbGxlbiBFbXBmw6RuZ2VybiBnZWxlc2VuKSB3ZXJkZW4g -YXV0b21hdGlzY2ggYXVzZ2Vyw6R1bXQuPC9wPgogICAgICAgICAgICAgICAgICAgIDwvZGl2Pgog -ICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhpbndlaXNlLXByb3Rva29sbC10b29sYmFy -Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlR5cDoKICAgICAgICAgICAgICAgICAg -ICAgICAgICAgIDxzZWxlY3QgaWQ9ImhwLWZpbHRlci10eXAiIGNsYXNzPSJmb3JtLWlucHV0IiBz -dHlsZT0id2lkdGg6MjAwcHgiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRp -b24gdmFsdWU9IiI+4oCUIGFsbGUg4oCUPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAg -ICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iaWRlbnRpdGFldF9nZWFlbmRlcnQiPklkZW50aXTDpHQg -Z2XDpG5kZXJ0PC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlv -biB2YWx1ZT0icm9sbGVfZ2VhZW5kZXJ0Ij5Sb2xsZSBnZcOkbmRlcnQ8L29wdGlvbj4KICAgICAg -ICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJiYWNrdXBfd2llZGVyaGVy -Z2VzdGVsbHQiPkJhY2t1cCB3aWVkZXJoZXJnZXN0ZWxsdDwvb3B0aW9uPgogICAgICAgICAgICAg -ICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9InBsYW51bmdfcmVzZXQiPlBsYW51bmcg -enVyw7xja2dlc2V0enQ8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8 -b3B0aW9uIHZhbHVlPSJrcmFua21lbGR1bmciPktyYW5rbWVsZHVuZzwvb3B0aW9uPgogICAgICAg -ICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+CiAgICAgICAgICAgICAgICAgICAgICAgIDwv -bGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5BYjogICAgPGlucHV0IHR5cGU9 -ImRhdGUiIGlkPSJocC1maWx0ZXItdm9uIiBjbGFzcz0iZm9ybS1pbnB1dCIgc3R5bGU9IndpZHRo -OjE0MHB4Ij48L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+QmlzOiAgIDxp -bnB1dCB0eXBlPSJkYXRlIiBpZD0iaHAtZmlsdGVyLWJpcyIgY2xhc3M9ImZvcm0taW5wdXQiIHN0 -eWxlPSJ3aWR0aDoxNDBweCI+PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRv -biB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRuLXNlayBidG4ta2xlaW4iIGlkPSJocC1ha3R1 -YWxpc2llcmVuIj5Ba3R1YWxpc2llcmVuPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgPC9k -aXY+CiAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJhZG1pbi10YWJlbGxlIGhpbndl -aXNlLXByb3Rva29sbC10YWJlbGxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoZWFkPjx0 -cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6MTIwcHgiPldh -bm48L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDoxNTBw -eCI+VHlwPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6 -MTIwcHgiPkF1c2dlbMO2c3Qgdm9uPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0 -aD5Lb250ZXh0PC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lk -dGg6MzAwcHgiPkVtcGbDpG5nZXIgJmFtcDsgTGVzZXN0YXR1czwvdGg+CiAgICAgICAgICAgICAg -ICAgICAgICAgIDwvdHI+PC90aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRib2R5IGlk -PSJoaW53ZWlzZS1wcm90b2tvbGwtdGJvZHkiPjwvdGJvZHk+CiAgICAgICAgICAgICAgICAgICAg -PC90YWJsZT4KICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgIDwhLS0gVGFi -OiBJbXBvcnQgKEV4Y2VsKSAtLT4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFkbWluLXRh -YiB2ZXJzdGVja3QiIGlkPSJhZG1pbi10YWItaW1wb3J0Ij4KICAgICAgICAgICAgICAgICAgICA8 -ZGl2IGNsYXNzPSJhZG1pbi1rb3BmIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGgyPkV4Y2Vs -LUltcG9ydDwvaDI+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAg -ICAgPGRldGFpbHMgY2xhc3M9ImFkbWluLWluZm8iIGRhdGEtaW5mby1rZXk9ImltcG9ydCIgb3Bl -bj4KICAgICAgICAgICAgICAgICAgICAgICAgPHN1bW1hcnk+PHNwYW4gY2xhc3M9ImFkbWluLWlu -Zm8tY2hldiI+4pa4PC9zcGFuPkhpbndlaXNlIHp1bSBFeGNlbC1JbXBvcnQ8c3BhbiBjbGFzcz0i +dGRhdGVuPC9idXR0b24+CiAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICA8 +ZGl2IGNsYXNzPSJhZG1pbi1uYXYtZ3J1cHBlIj4KICAgICAgICAgICAgICAgICAgICA8aDMgY2xh +c3M9ImFkbWluLW5hdi10aXRlbCI+QWt0dWFsaXNpZXJ1bmc8L2gzPgogICAgICAgICAgICAgICAg +ICAgIDxidXR0b24gY2xhc3M9ImFkbWluLW5hdi1idG4iIGRhdGEtYWRtaW4tdGFiPSJ1cGRhdGUi +IGlkPSJuYXYtdXBkYXRlIj5VcGRhdGVzICZhbXA7IFNlbGJzdHRlc3Q8L2J1dHRvbj4KICAgICAg +ICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2FzaWRlPgoKICAgICAgICAgICAgPCEtLSBB +ZG1pbi1JbmhhbHQgLS0+CiAgICAgICAgICAgIDxtYWluIGNsYXNzPSJhZG1pbi1pbmhhbHQiPgoK +ICAgICAgICAgICAgICAgIDwhLS0gUmVhZC1vbmx5LUJhbm5lcjogZXJzY2hlaW50LCB3ZW5uIGRl +ciBlaW5nZWxvZ2d0ZSBCZW51dHplcgogICAgICAgICAgICAgICAgICAgICBkZW4gQWRtaW4tQmVy +ZWljaCBudXIgbGVzZW5kIHNlaGVuIGRhcmYgKGFsbGUgUm9sbGVuCiAgICAgICAgICAgICAgICAg +ICAgIGF1c3NlciBTdXBlclVzZXIpLiBXaXJkIHZvbiBhZG1pbkJhbm5lckFrdHVhbGlzaWVyZW4o +KQogICAgICAgICAgICAgICAgICAgICBpbiBhZG1pbi5qcyBlaW4tL2F1c2dlYmxlbmRldCB1bmQg +bWl0IFJvbGxlIGJlZnVlbGx0LiAtLT4KICAgICAgICAgICAgICAgIDxkaXYgaWQ9ImFkbWluLXJl +YWRvbmx5LWJhbm5lciIgY2xhc3M9ImFkbWluLWJhbm5lciBhZG1pbi1iYW5uZXItaW5mbyB2ZXJz +dGVja3QiIHJvbGU9InN0YXR1cyIgYXJpYS1saXZlPSJwb2xpdGUiPgogICAgICAgICAgICAgICAg +ICAgIDxzcGFuIGNsYXNzPSJhZG1pbi1iYW5uZXItaWNvbiIgYXJpYS1oaWRkZW49InRydWUiPiYj +OTQzMjs8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4tYmFubmVy +LXRleHQiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1pbi1iYW5uZXIt +dGl0ZWwiPk51ci1MZXNlLU1vZHVzPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYg +Y2xhc3M9ImFkbWluLWJhbm5lci1ib2R5IiBpZD0iYWRtaW4tcmVhZG9ubHktYmFubmVyLXRleHQi +PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgRHUgc2llaHN0IGRpZXNlbiBCZXJlaWNoIG51 +ciBsZXNlbmQuICZBdW1sO25kZXJ1bmdlbiBzaW5kIGRlbSBTdXBlclVzZXIgdm9yYmVoYWx0ZW4u +CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2 +PgogICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgPCEtLSBEcmFmdC1SZXN0 +b3JlLUJhbm5lcjogZXJzY2hlaW50LCB3ZW5uIGJlaW0gVGFiLVdlY2hzZWwgZWluCiAgICAgICAg +ICAgICAgICAgICAgIHVuZ2VzaWNoZXJ0ZXIgQXV0by1TYXZlLURyYWZ0IGltIGxvY2FsU3RvcmFn +ZSBnZWZ1bmRlbiB3dXJkZQogICAgICAgICAgICAgICAgICAgICAoQnJvd3Nlci1DcmFzaCwgRjUt +UmVsb2FkLCB2ZXJzZWhlbnRsaWNoZXMgU2NobGllc3NlbikuCiAgICAgICAgICAgICAgICAgICAg +IGFkbWluRHJhZnRCYW5uZXJBbmJpZXRlbigpIGluIGFkbWluLmpzIGJlc3R1ZWNrdCBUZXh0ICsg +QnV0dG9ucy4gLS0+CiAgICAgICAgICAgICAgICA8ZGl2IGlkPSJhZG1pbi1kcmFmdC1iYW5uZXIi +IGNsYXNzPSJhZG1pbi1iYW5uZXIgYWRtaW4tYmFubmVyLXdhcm4gdmVyc3RlY2t0IiByb2xlPSJz +dGF0dXMiIGFyaWEtbGl2ZT0icG9saXRlIj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFz +cz0iYWRtaW4tYmFubmVyLWljb24iIGFyaWEtaGlkZGVuPSJ0cnVlIj4mIzkyMDE7PC9zcGFuPgog +ICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFkbWluLWJhbm5lci10ZXh0Ij4KICAgICAg +ICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4tYmFubmVyLXRpdGVsIj5Vbmdlc2lj +aGVydGUgJkF1bWw7bmRlcnVuZ2VuIHdpZWRlcmhlcnN0ZWxsZW4/PC9kaXY+CiAgICAgICAgICAg +ICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFkbWluLWJhbm5lci1ib2R5IiBpZD0iYWRtaW4tZHJh +ZnQtYmFubmVyLXRleHQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgRHUgaGFzdCBpbiBk +aWVzZW0gVGFiICZBdW1sO25kZXJ1bmdlbiwgZGllIG5vY2ggbmljaHQgZ2VzcGVpY2hlcnQgc2lu +ZC4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAg +IDxkaXYgc3R5bGU9Im1hcmdpbi10b3A6OHB4O2Rpc3BsYXk6ZmxleDtnYXA6OHB4Ij4KICAgICAg +ICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBpZD0iYWRtaW4tZHJh +ZnQtcmVzdG9yZSIgY2xhc3M9ImJ0biBidG4tcHJpbWFlciBidG4ta2xlaW4iPldpZWRlcmhlcnN0 +ZWxsZW48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0i +YnV0dG9uIiBpZD0iYWRtaW4tZHJhZnQtdmVyd2VyZmVuIiBjbGFzcz0iYnRuIGJ0bi1zZWsgYnRu +LWtsZWluIj5WZXJ3ZXJmZW48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ +CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAg +ICAgICAgICAgICA8IS0tIFRhYjogUGVyc29uYWwgLS0+CiAgICAgICAgICAgICAgICA8ZGl2IGNs +YXNzPSJhZG1pbi10YWIiIGlkPSJhZG1pbi10YWItcGVyc29uYWwiPgogICAgICAgICAgICAgICAg +ICAgIDxkaXYgY2xhc3M9ImFkbWluLWtvcGYiPgogICAgICAgICAgICAgICAgICAgICAgICA8aDI+ +UGVyc29uYWx2ZXJ3YWx0dW5nPC9oMj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHls +ZT0iZGlzcGxheTpmbGV4O2dhcDoxMnB4O2FsaWduLWl0ZW1zOmNlbnRlcjtmbGV4LXdyYXA6d3Jh +cCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgc3R5bGU9ImRpc3BsYXk6Zmxl +eDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweDtmb250LXNpemU6MTNweDtjdXJzb3I6cG9pbnRl +ciIgdGl0bGU9IlVtZ2VzZXR6dGUgaW4gZGllc2VyIFRhYmVsbGUgYW56ZWlnZW4iPgogICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9ImFkbWlu +LXBlcnNvbmFsLWZpbHRlciI+IFVtZ2VzZXR6dGUgZWluYmxlbmRlbgogICAgICAgICAgICAgICAg +ICAgICAgICAgICAgPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBz +dHlsZT0iZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NnB4O2ZvbnQtc2l6ZTox +M3B4O2N1cnNvcjpwb2ludGVyIiB0aXRsZT0iVW1nZXNldHp0ZSBhdWNoIGluIGRlciBQbGFudW5n +cy1BbnNpY2h0IGVpbmJsZW5kZW4gKG5pY2h0IGVkaXRpZXJiYXIsIG51ciB6dXIgUmVjaGVyY2hl +KSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImNoZWNrYm94 +IiBpZD0iY2hrLXVtZ2VzZXR6dGUtZWluYmxlbmRlbiI+IEluIFBsYW51bmdzLUFuc2ljaHQgZWlu +YmxlbmRlbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD4KICAgICAgICAgICAg +ICAgICAgICAgICAgICAgIDxsYWJlbCBpZD0icGFwaWVya29yYi1maWx0ZXItemVpbGUiIGNsYXNz +PSJ2ZXJzdGVja3QiIHN0eWxlPSJkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2 +cHg7Zm9udC1zaXplOjEzcHg7Y3Vyc29yOnBvaW50ZXIiIHRpdGxlPSJTb2Z0LWdlbMO2c2NodGUg +UGVyc29uZW4gaW0gUGFwaWVya29yYiBhbnplaWdlbiAobnVyIGJlaSBha3RpdmVtIEZlYXR1cmUp +Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3gi +IGlkPSJhZG1pbi1wYXBpZXJrb3JiLWZpbHRlciI+IFBhcGllcmtvcmIgZWluYmxlbmRlbgogICAg +ICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAg +ICAgIDxidXR0b24gaWQ9ImJ0bi1tYW51ZWxsZS1zb3J0aWVydW5nIiBjbGFzcz0iYnRuIGJ0bi1z +ZWsiIHRpdGxlPSJGw7xocnVuZ3NrcsOkZnRlIChB4oCTQyB1bmQgV0QpIHBlciBEcmFnICZhbXA7 +IERyb3AgaW4gbmV1ZSBSZWloZW5mb2xnZSBicmluZ2VuIj5NYW51ZWxsZSBTb3J0aWVydW5nPC9i +dXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tcGVyc29u +LW5ldSIgY2xhc3M9ImJ0biBidG4tZXJmb2xnIj5OZXVlIFBlcnNvbjwvYnV0dG9uPgogICAgICAg +ICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAg +ICAgICAgICAgICAgICA8IS0tIE5ldWltcG9ydC1CbG9jazogZXJzY2hlaW50LCB3ZW5uIFBlcnNv +bmVuIG1pdCBpbXBvcnROZXVBbS1NYXJrZXIKICAgICAgICAgICAgICAgICAgICAgICAgIHZvcmhh +bmRlbiBzaW5kIChFeGNlbC1JbXBvcnQgIm5ldSBhbmxlZ2VuIikuIFVzZXIga2FubiBkaWUgUGVy +c29uZW4KICAgICAgICAgICAgICAgICAgICAgICAgIGhpZXIgZGlyZWt0IG5hY2hwZmxlZ2VuIHVu +ZCBlaW56ZWxuIGF1ZiAiRXJsZWRpZ3QiIHNldHplbi4KICAgICAgICAgICAgICAgICAgICAgICAg +IEJsb2NrIHZlcnNjaHdpbmRldCBhdXRvbWF0aXNjaCwgc29iYWxkIGFsbGUgTWFya2VyIHdlZyBz +aW5kLiAtLT4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJwZXJzb25hbC1uZXVpbXBvcnQt +YmxvY2siIGNsYXNzPSJ2ZXJzdGVja3QiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkZXRh +aWxzIGNsYXNzPSJhZG1pbi1pbmZvIiBkYXRhLWluZm8ta2V5PSJwZXJzb25hbCIgb3Blbj4KICAg +ICAgICAgICAgICAgICAgICAgICAgPHN1bW1hcnk+PHNwYW4gY2xhc3M9ImFkbWluLWluZm8tY2hl +diI+4pa4PC9zcGFuPkhpbndlaXNlIHp1ciBQZXJzb25hbHZlcndhbHR1bmc8c3BhbiBjbGFzcz0i YWRtaW4taW5mby1iYWRnZSI+QXVma2xhcHBlbiAvIFp1a2xhcHBlbjwvc3Bhbj48L3N1bW1hcnk+ CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFkbWluLWluZm8tYm9keSI+CiAg -ICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPldhcyB3aXJkIGltcG9ydGllcnQ/ -PC9zdHJvbmc+IFNjaGljaHRlaW50csOkZ2UgdW5kIEtvbW1lbnRhcmUgYXVzIGVpbmVyIEV4Y2Vs -LURhdGVpIGltIEZvcm1hdCBkZXIgYmlzaGVyaWdlbiA8Y29kZT4yMDI2LVZJMy1ER0wtUGxhbnVu -Zy54bHNtPC9jb2RlPi4gRGllIERhdGVpIHdpcmQgaW0gQnJvd3NlciBnZWxlc2VuIOKAlCBlcyB3 -ZXJkZW4ga2VpbmUgRGF0ZW4gYW4gZWluZW4gZXh0ZXJuZW4gU2VydmVyIGdlc2VuZGV0LjwvcD4K -ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+RXJ3YXJ0ZXRlcyBTaGVldC1M -YXlvdXQ6PC9zdHJvbmc+PC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsPgogICAg -ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5TaGVldCBtaXQgTmFtZW4gPGI+4oCeUGxh -bnVuZyI8L2I+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+RGF0dW1z -LVNwYWx0ZW4gYWIgU3BhbHRlIDxiPko8L2I+IChFeGNlbC1TZXJpYWwtRGF0ZXMgaW4gWmVpbGUg -MSk8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5QZXJzb25lbi1aZWls -ZW4gYWIgWmVpbGUgPGI+MjE8L2I+LCA8Yj5OYWNobmFtZSBpbiBTcGFsdGUgQzwvYj48L2xpPgog -ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5aZWxsd2VydGUgPSBTY2hpY2h0Y29k -ZXMgKDxjb2RlPkYtREdMPC9jb2RlPiwgPGNvZGU+VXJsPC9jb2RlPiwg4oCmKTwvbGk+CiAgICAg -ICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlplbGwtS29tbWVudGFyZSAoRXhjZWwtS29t -bWVudGFyZSkgd2VyZGVuIGFscyBLb21tZW50YXIgw7xiZXJub21tZW48L2xpPgogICAgICAgICAg -ICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxz -dHJvbmc+QWJnbGVpY2g6PC9zdHJvbmc+PC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAg -PHVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48Yj5QZXJzb25lbjwvYj4g -d2VyZGVuIMO8YmVyIGRlbiA8Yj5OYWNobmFtZW48L2I+IGdlbWF0Y2h0LiBVbmJla2FubnRlIFBl -cnNvbmVuIG9kZXIgTmFtZW4gbWl0IG1laHJlcmVuIFRyZWZmZXJuIG3DvHNzZW4gbWFudWVsbCB6 -dWdlb3JkbmV0IG9kZXIgaWdub3JpZXJ0IHdlcmRlbi48L2xpPgogICAgICAgICAgICAgICAgICAg -ICAgICAgICAgICAgIDxsaT48Yj5TY2hpY2h0Y29kZXM8L2I+IHdlcmRlbiBnZWdlbiBkaWUgYWt0 -aXZlbiBDb2RlcyBhYmdlZ2xpY2hlbi4gQmVrYW5udGUgPGNvZGU+aW1wb3J0QWxpYXNlPC9jb2Rl -PiAoei5CLiA8Y29kZT5GV0RGPC9jb2RlPiDihpIgPGNvZGU+Ri1XREY8L2NvZGU+KSB3ZXJkZW4g -YXV0b21hdGlzY2ggZXJzZXR6dC4gVW5iZWthbm50ZSBDb2RlcyB6ZWlndCBkZXIgRGlhbG9nIG1p -dCBlaW5lbSBEcm9wZG93biB6dW0gTWFwcGluZyBvZGVyIOKAnmlnbm9yaWVyZW4iLjwvbGk+CiAg -ICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICAg -ICAgPHA+PHN0cm9uZz5Nb2R1czo8L3N0cm9uZz4gRGVyIEltcG9ydCBlcnNldHp0IDxiPmFsbGU8 -L2I+IEVpbnRyw6RnZSB1bmQgS29tbWVudGFyZSBpbSBnZXfDpGhsdGVuIFplaXRyYXVtIGtvbXBs -ZXR0LiBWb3IgZGVtIFNjaHJlaWJlbiB3aXJkIGF1dG9tYXRpc2NoIGVpbiBCYWNrdXAgZGVyIDxj -b2RlPnBsYW51bmcuanNvbjwvY29kZT4gZXJzdGVsbHQuPC9wPgogICAgICAgICAgICAgICAgICAg -ICAgICAgICAgPHA+PHN0cm9uZz5BYmxhdWY6PC9zdHJvbmc+IDxlbT5EYXRlaSBhdXN3w6RobGVu -IOKGkiBBbmFseXNlIGzDpHVmdCDihpIgTWFwcGluZy1EaWFsb2cg4oaSIEltcG9ydCBzdGFydGVu -LjwvZW0+PC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAg -ICAgICA8L2RldGFpbHM+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW1wLXVwbG9h -ZC1ib3giPgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJpbXAtZGF0ZWkiIGNs -YXNzPSJidG4gYnRuLXByaW1hZXIiIHN0eWxlPSJkaXNwbGF5OmlubGluZS1ibG9jayI+CiAgICAg -ICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iZmlsZSIgaWQ9ImltcC1kYXRlaSIg -YWNjZXB0PSIueGxzeCwueGxzbSwueGxzIiBzdHlsZT0iZGlzcGxheTpub25lIj4KICAgICAgICAg -ICAgICAgICAgICAgICAgICAgIEV4Y2VsLURhdGVpIHfDpGhsZW4KICAgICAgICAgICAgICAgICAg -ICAgICAgPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gaWQ9ImltcC1kYXRl -aS1uYW1lIiBzdHlsZT0ibWFyZ2luLWxlZnQ6MTJweDtmb250LXNpemU6MTNweDtjb2xvcjp2YXIo -LS10ZXh0LW11dGVkKSI+4oCUIG5vY2gga2VpbmUgRGF0ZWkgZ2V3w6RobHQg4oCUPC9zcGFuPgog -ICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImhpbGZl -LWljb24iIGFyaWEtbGFiZWw9IkhpbGZlIEV4Y2VsLUZvcm1hdCBhbnplaWdlbiIgdGl0bGU9IkVy -d2FydGV0IGRpZSBWSTMtREdMLUV4Y2VsLVZvcmxhZ2UiIGRhdGEtaGlsZmU9IkVyd2FydGV0IGRp -ZSBWSTMtREdMLUV4Y2VsLVZvcmxhZ2U6IFBlcnNvbmVuIGFiIFplaWxlIDIxIChOYWNobmFtZSBp -biBTcGFsdGUgQyksIERhdHVtc2FuZ2FiZW4gaW4gWmVpbGUgMSAoYWIgU3BhbHRlIEopLiBTcHJl -Y2hibGFzZW4tS29tbWVudGFyZSB3ZXJkZW4gYWxzIFRhZy1Lb21tZW50YXJlIHVlYmVybm9tbWVu -LiBGb3JtYXQgLnhsc3gvLnhsc20vLnhscy4iPj88L2J1dHRvbj4KICAgICAgICAgICAgICAgICAg -ICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJpbXAtc3RhdHVzIiBzdHlsZT0i -bWFyZ2luLXRvcDoyMHB4Ij48L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAg -ICAgICAgIDwhLS0gVGFiOiBFeHBvcnQgKEV4Y2VsL0NTVikgLS0+CiAgICAgICAgICAgICAgICA8 -ZGl2IGNsYXNzPSJhZG1pbi10YWIgdmVyc3RlY2t0IiBpZD0iYWRtaW4tdGFiLWV4cG9ydCI+CiAg -ICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4ta29wZiI+CiAgICAgICAgICAgICAg -ICAgICAgICAgIDxoMj5FeGNlbC1FeHBvcnQ8L2gyPgogICAgICAgICAgICAgICAgICAgIDwvZGl2 -PgogICAgICAgICAgICAgICAgICAgIDxkZXRhaWxzIGNsYXNzPSJhZG1pbi1pbmZvIiBkYXRhLWlu -Zm8ta2V5PSJleHBvcnQiIG9wZW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzdW1tYXJ5Pjxz -cGFuIGNsYXNzPSJhZG1pbi1pbmZvLWNoZXYiPuKWuDwvc3Bhbj5IaW53ZWlzZSB6dW0gRXhwb3J0 -PHNwYW4gY2xhc3M9ImFkbWluLWluZm8tYmFkZ2UiPkF1ZmtsYXBwZW4gLyBadWtsYXBwZW48L3Nw -YW4+PC9zdW1tYXJ5PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1pbi1p -bmZvLWJvZHkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5XYXMgd2ly -ZCBleHBvcnRpZXJ0Pzwvc3Ryb25nPiBQcm8gUGVyc29uIHVuZCBUYWcgbWl0IEVpbnRyYWcgZWlu -ZSBaZWlsZSBtaXQgPGI+TmFtZSwgRGllbnN0Z3J1cHBlLCBEYXR1bSwgTW9uYXQsIFRhZywgV29j -aGVudGFnLCBLVywgU2NoaWNodDwvYj4gKENvZGUpIHVuZCA8Yj5TY2hpY2h0LUtsYXJ0ZXh0PC9i -Pi4gRXMgd2VyZGVuIG51ciBUYWdlIG1pdCBoaW50ZXJsZWd0ZXIgU2NoaWNodCBhdXNnZWdlYmVu -LjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+SW5mb2JveCB1bnRl -cmhhbGI6PC9zdHJvbmc+IE9wdGlvbmFsIGZvbGd0IHVudGVyIGRlciBUYWJlbGxlIGVpbiB6d2Vp -dGVyIEJsb2NrIOKAnkhpbndlaXNlIHp1IFRhZ2VuIG1pdCBCZXNvbmRlcmhlaXRlbiIg4oCUIGRp -ZSBpbSBQbGFuLUhlYWRlciBlcmthbm50ZW4gPGI+RmVpZXJ0YWdlLCBGZXJpZW4gdW5kIFNvbmRl -cnRlcm1pbmU8L2I+IGRlcyBleHBvcnRpZXJ0ZW4gWmVpdHJhdW1zIChEYXR1bSwgVHlwLCBCZXpl -aWNobnVuZywgQmVzY2hyZWlidW5nKS48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8 -cD48c3Ryb25nPlVtZmFuZzo8L3N0cm9uZz4gR2FuemVzIFBsYW51bmdzamFociwgZWluemVsbmUv -bWVocmVyZSBLYWxlbmRlcndvY2hlbiAodm9u4oCTYmlzKSBvZGVyIGVpbiBmcmVpZXIgRGF0dW1z -YmVyZWljaC4gPHN0cm9uZz5QZXJzb25lbmtyZWlzOjwvc3Ryb25nPiBhbGxlLCBiZXN0aW1tdGUg -RGllbnN0Z3J1cHBlbiBvZGVyIGVpbnplbG5lIFBlcnNvbmVuICg9IGluZGl2aWR1ZWxsZXIgRXhw -b3J0KS48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPkZvcm1hdDo8 -L3N0cm9uZz4gRm9ybWF0aWVydGVzIDxiPlhMU1g8L2I+IChwYXNzZW5kZSBTcGFsdGVuYnJlaXRl -biwgVGl0ZWx6ZWlsZSwgQXV0by1GaWx0ZXIgw7xiZXIgZGVyIFRhYmVsbGUpIG9kZXIgPGI+Q1NW -PC9iPiAoVVRGLTggbWl0IEJPTSwgU2VtaWtvbG9uLWdldHJlbm50IOKAlCBkaXJla3QgaW4gRXhj -ZWwtREUgbGVzYmFyKS4gQWxsZXMgbMOkdWZ0IGltIEJyb3dzZXI7IGVzIHdlcmRlbiBrZWluZSBE -YXRlbiBhbiBlaW5lbiBleHRlcm5lbiBTZXJ2ZXIgZ2VzZW5kZXQuPC9wPgogICAgICAgICAgICAg -ICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2RldGFpbHM+CiAgICAgICAg -ICAgICAgICAgICAgPGRpdiBpZD0iZXhwb3J0LWluaGFsdCI+PC9kaXY+CiAgICAgICAgICAgICAg -ICA8L2Rpdj4KCiAgICAgICAgICAgICAgICA8IS0tIFRhYjogVGVzdGRhdGVuIC0tPgogICAgICAg -ICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4tdGFiIHZlcnN0ZWNrdCIgaWQ9ImFkbWluLXRhYi10 -ZXN0ZGF0ZW4iPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFkbWluLWtvcGYiPgog -ICAgICAgICAgICAgICAgICAgICAgICA8aDI+VGVzdGRhdGVuIC8gRHVtbXlkYXRlbjwvaDI+CiAg -ICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRldGFpbHMgY2xh -c3M9ImFkbWluLWluZm8iIGRhdGEtaW5mby1rZXk9InRlc3RkYXRlbiIgb3Blbj4KICAgICAgICAg -ICAgICAgICAgICAgICAgPHN1bW1hcnk+PHNwYW4gY2xhc3M9ImFkbWluLWluZm8tY2hldiI+4pa4 -PC9zcGFuPkhpbndlaXNlIHp1IFRlc3RkYXRlbiAvIFJlc2V0PHNwYW4gY2xhc3M9ImFkbWluLWlu -Zm8tYmFkZ2UiPkF1ZmtsYXBwZW4gLyBadWtsYXBwZW48L3NwYW4+PC9zdW1tYXJ5PgogICAgICAg -ICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1pbi1pbmZvLWJvZHkiPgogICAgICAgICAg -ICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5Xb2bDvHI/PC9zdHJvbmc+IERpZXNlIEZ1bmt0 -aW9uZW4gc2luZCBhdXNzY2hsaWXDn2xpY2ggZsO8ciBUZXN0LSwgRGVtby0gdW5kIEVpbmFyYmVp -dHVuZ3N6d2Vja2UgZ2VkYWNodC4gQmVpZGUgZXJzdGVsbGVuIDxiPmF1dG9tYXRpc2NoIGVpbiBC -YWNrdXA8L2I+IGRlciBha3R1ZWxsZW4gUGxhbnVuZywgYmV2b3Igc2llIGF1c2dlZsO8aHJ0IHdl -cmRlbiDigJQgZGllIEJhY2t1cHMgbGllZ2VuIGluIDxjb2RlPlZJMy9kYXRhL3BsYW51bmdfYmFj -a3VwX3Zvcl8qLmpzb248L2NvZGU+LjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxw -PjxzdHJvbmc+RHVtbXlkYXRlbiBlaW5zcGllbGVuOjwvc3Ryb25nPiBGw7xsbHQgZGVuIFplaXRy -YXVtIChha3R1ZWxsIEphbnVhciBiaXMgQXByaWwgMjAyNikgbWl0IHJlYWxpc3Rpc2NoZW4gU2No -aWNodHBsw6RuZW4sIFVybGF1YiwgS3JhbmtoZWl0LCBMZWhyZ8OkbmdlbiwgRWluc2F0enRyYWlu -aW5nIHVuZCBBWi1BdXNnbGVpY2guIERpZSBHcnVwcGVuIEEvQi9DIHJvdGllcmVuIHfDtmNoZW50 -bGljaCBkdXJjaCBGcsO8aC0vU3DDpHQtL05hY2h0ZGllbnN0LiBQZXJzb25lbmxpc3RlLCBHcnVw -cGVuYmV6ZWljaG51bmdlbiB1bmQgRWluc3RlbGx1bmdlbiBibGVpYmVuIHVudmVyw6RuZGVydC48 -L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPlBsYW51bmcgenVyw7xj -a3NldHplbjo8L3N0cm9uZz4gTMO2c2NodCA8Yj5hbGxlPC9iPiBTY2hpY2h0LUVpbnRyw6RnZSB1 -bmQgS29tbWVudGFyZS4gRGllIFBlcnNvbmVubGlzdGUsIEdydXBwZW4sIEZlaWVydGFnZSB1bmQg -YWxsZSBhbmRlcmVuIEVpbnN0ZWxsdW5nZW4gYmxlaWJlbiBlcmhhbHRlbi4gQmFja3VwIHdpcmQg -dm9yaGVyIGVyc3RlbGx0LjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxzdHJv -bmc+V2llZGVyaGVyc3RlbGx1bmc6PC9zdHJvbmc+IEF1cyBCYWNrdXAtRGF0ZWllbiBrYW5uIGFr -dHVlbGwgbnVyIHBlciBEYXRlaW1hbmlwdWxhdGlvbiAoPGNvZGU+cGxhbnVuZ19iYWNrdXBfLi4u -PC9jb2RlPiB1bWJlbmVubmVuIHp1IDxjb2RlPnBsYW51bmcuanNvbjwvY29kZT4pIHdpZWRlcmhl -cmdlc3RlbGx0IHdlcmRlbi4gQmFja3VwcyB3ZXJkZW4gbnVyIGltIERhdGVub3JkbmVyIGxva2Fs -IGdlaGFsdGVuLjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Vm9y -c2ljaHQgaW0gUHJvZHVrdGl2YmV0cmllYjo8L3N0cm9uZz4gSW0gbGF1ZmVuZGVuIFBsYW51bmdz -YmV0cmllYiBkaWVzZSBCdXR0b25zIG51ciBtaXQgQWJzcHJhY2hlIG51dHplbiEgQXVjaCB3ZW5u -IEJhY2t1cHMgZXJzdGVsbHQgd2VyZGVuIOKAlCBiZWkgYWt0aXZlbiBCZWFyYmVpdGVybiBlbnRz -dGVoZW4gS29uZmxpa3RlLjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAg -ICAgICAgICAgICAgICAgPC9kZXRhaWxzPgogICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9 -ImRpc3BsYXk6ZmxleDsgZ2FwOjE2cHg7IGZsZXgtd3JhcDp3cmFwOyBtYXJnaW4tdG9wOjE2cHgi -PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJmbGV4OjE7IG1pbi13aWR0aDoy -ODBweDsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1yYWhtZW4pOyBib3JkZXItcmFkaXVzOjhweDsg -cGFkZGluZzoyMHB4Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBzdHlsZT0ibWFy -Z2luOjAgMCA4cHggMCI+RHVtbXlkYXRlbiBlaW5zcGllbGVuPC9oMz4KICAgICAgICAgICAgICAg -ICAgICAgICAgICAgIDxwIHN0eWxlPSJjb2xvcjp2YXIoLS10ZXh0LWdlZGltbXQpOyBtYXJnaW46 -MCAwIDE2cHggMCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRsO8bGx0IEphbnVh -ciBiaXMgQXByaWwgMjAyNiBtaXQgcmVhbGlzdGlzY2hlbiBTY2hpY2h0cGzDpG5lbiwgVXJsYXVi -LCBLcmFua2hlaXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGVocmfDpG5nZW4s -IEVpbnNhdHp0cmFpbmluZyB1bmQgQVotQXVzZ2xlaWNoLiBHcnVwcGVuIEEvQi9DIHJvdGllcmVu -IHfDtmNoZW50bGljaAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGR1cmNoIEZyw7xo -LS9TcMOkdC0vTmFjaHRkaWVuc3QuIERpZSBiZXN0ZWhlbmRlbiBQZXJzb25lbiB1bmQgQmV6ZWlj -aG51bmdlbiBibGVpYmVuIGVyaGFsdGVuLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9w -PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLWR1bW15ZGF0ZW4i -IGNsYXNzPSJidG4gYnRuLXByaW1hZXIiPkR1bW15ZGF0ZW4gZWluc3BpZWxlbjwvYnV0dG9uPgog -ICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRp -diBzdHlsZT0iZmxleDoxOyBtaW4td2lkdGg6MjgwcHg7IGJvcmRlcjoxcHggc29saWQgdmFyKC0t -cmFobWVuKTsgYm9yZGVyLXJhZGl1czo4cHg7IHBhZGRpbmc6MjBweCI+CiAgICAgICAgICAgICAg -ICAgICAgICAgICAgICA8aDMgc3R5bGU9Im1hcmdpbjowIDAgOHB4IDAiPlBsYW51bmcgenVyw7xj -a3NldHplbjwvaDM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBzdHlsZT0iY29sb3I6 -dmFyKC0tdGV4dC1nZWRpbW10KTsgbWFyZ2luOjAgMCAxNnB4IDAiPgogICAgICAgICAgICAgICAg -ICAgICAgICAgICAgICAgIEzDtnNjaHQgPHN0cm9uZz5hbGxlPC9zdHJvbmc+IEVpbnRyw6RnZSB1 -bmQgS29tbWVudGFyZS4gRGllIFBlcnNvbmVubGlzdGUsIEdydXBwZW4sCiAgICAgICAgICAgICAg -ICAgICAgICAgICAgICAgICAgRmVpZXJ0YWdlIHVuZCBhbGxlIGFuZGVyZW4gRWluc3RlbGx1bmdl -biBibGVpYmVuIGVyaGFsdGVuLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAg -ICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLXJlc2V0IiBjbGFzcz0iYnRu -IGJ0bi1nZWZhaHIiPlBsYW51bmcgenVyw7xja3NldHplbjwvYnV0dG9uPgogICAgICAgICAgICAg -ICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iZmxl -eDoxOyBtaW4td2lkdGg6MjgwcHg7IGJvcmRlcjoxcHggc29saWQgdmFyKC0tcmFobWVuKTsgYm9y -ZGVyLXJhZGl1czo4cHg7IHBhZGRpbmc6MjBweCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAg -ICA8aDMgc3R5bGU9Im1hcmdpbjowIDAgOHB4IDAiPlByb3Rva29sbCBsw7ZzY2hlbjwvaDM+CiAg -ICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBzdHlsZT0iY29sb3I6dmFyKC0tdGV4dC1nZWRp -bW10KTsgbWFyZ2luOjAgMCAxNnB4IDAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg -IExlZXJ0IGRhcyA8c3Ryb25nPkxvZ2J1Y2g8L3N0cm9uZz4gdW5kIGRpZSA8c3Ryb25nPkFQSS1M -b2ctRGF0ZWk8L3N0cm9uZz4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2lubnZv -bGwgdm9yIGRlbSBMaXZlLUdhbmcgb2RlciBuYWNoIFRlc3RzLCB1bSBEaWFnbm9zZS1TcHVyZW4g -enUgZW50ZmVybmVuLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVpbiBlaW56ZWxu -ZXIgTG9nYnVjaC1FaW50cmFnIDxjb2RlPnByb3Rva29sbC5nZWxvZXNjaHQ8L2NvZGU+IGJsZWli -dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVyaGFsdGVuLCBkYW1pdCBkYXMgRXJl -aWduaXMgc2VsYnN0IG5hY2h2b2xsemllaGJhciBibGVpYnQuCiAgICAgICAgICAgICAgICAgICAg -ICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJidG4t -cHJvdG9rb2xsLWxvZXNjaGVuIiBjbGFzcz0iYnRuIGJ0bi1nZWZhaHIiPlByb3Rva29sbCBsw7Zz -Y2hlbjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAg -ICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJ0ZXN0ZGF0ZW4tZXJn -ZWJuaXMiIGNsYXNzPSJ2ZXJzdGVja3QiIHN0eWxlPSJtYXJnaW4tdG9wOjE2cHgiPjwvZGl2Pgog -ICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgPCEtLSBUYWI6IEJlc2Nocmlm -dHVuZ2VuICYgVGV4dGUgKE1lcmdlIOKAlCBCZXplaWNobnVuZ2VuICsgSW5mb3JtYXRpb24gJiBI -aWxmZSkgLS0+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1pbi10YWIgdmVyc3RlY2t0 -IiBpZD0iYWRtaW4tdGFiLWJlemVpY2hudW5nZW4iPgogICAgICAgICAgICAgICAgICAgIDxkaXYg -Y2xhc3M9ImFkbWluLWtvcGYiPgogICAgICAgICAgICAgICAgICAgICAgICA8aDI+QmVzY2hyaWZ0 -dW5nZW4gJmFtcDsgVGV4dGU8L2gyPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAg -ICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0iYWRtaW4tc2VrdGlvbiIgaWQ9ImFkbWluLXNl -a3Rpb24tYmV6ZWljaG51bmdlbiI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9 -ImFkbWluLXNla3Rpb24ta29wZiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDM+VUkt -QmV6ZWljaG51bmdlbjwvaDM+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAg -ICAgICAgICAgICAgICAgICA8ZGV0YWlscyBjbGFzcz0iYWRtaW4taW5mbyIgZGF0YS1pbmZvLWtl -eT0iYmV6ZWljaG51bmdlbiIgb3Blbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdW1t -YXJ5PjxzcGFuIGNsYXNzPSJhZG1pbi1pbmZvLWNoZXYiPuKWuDwvc3Bhbj5IaW53ZWlzZSB6dSBC -ZXplaWNobnVuZ2VuPHNwYW4gY2xhc3M9ImFkbWluLWluZm8tYmFkZ2UiPkF1ZmtsYXBwZW4gLyBa -dWtsYXBwZW48L3NwYW4+PC9zdW1tYXJ5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRp -diBjbGFzcz0iYWRtaW4taW5mby1ib2R5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg -ICA8cD48c3Ryb25nPldhcyBpc3QgZGFzPzwvc3Ryb25nPiBBbGxlIGhhcnQgaW0gQ29kZSBoaW50 -ZXJsZWd0ZW4gVUktTGFiZWxzIChUaXRlbCBkZXIgQXBwLCBOYW1lbiBkZXIgUmVpdGVyIGltIEhl -YWRlciwg4oCmKSBsYXNzZW4gc2ljaCBoaWVyIGluZGl2aWR1ZWxsIGJlbmVubmVuLiBOw7x0emxp -Y2gsIHdlbm4gaW50ZXJuIGFuZGVyZSBCZWdyaWZmZSDDvGJsaWNoIHNpbmQgb2RlciBlaW4gVGFi -IHVtYmVuYW5udCB3ZXJkZW4gc29sbC48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg -ICAgPHA+PHN0cm9uZz5GdW5rdGlvbjo8L3N0cm9uZz4gTGVlcmUgRmVsZGVyIGZhbGxlbiB6dXLD -vGNrIGF1ZiBkZW4gRGVmYXVsdC1XZXJ0LiA8ZW0+U3BlaWNoZXJuPC9lbT4gbGVndCBkaWUgV2Vy -dGUgaW4gPGNvZGU+YWRtaW4uanNvbi5iZXplaWNobnVuZ2VuPC9jb2RlPiBhYiDigJQgc2ljaHRi -YXIgd2lyZCBkaWUgw4RuZGVydW5nIG5hY2ggZWluZW0gU2VpdGVuLVJlbG9hZCAoRjUpIGbDvHIg -YWxsZSBOdXR6ZXIuPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxzdHJv -bmc+WnVyw7xja3NldHplbjwvc3Ryb25nPiBsw7ZzY2h0IGFsbGUgaW5kaXZpZHVlbGxlbiBXZXJ0 -ZSB1bmQgc3RlbGx0IGRpZSBEZWZhdWx0cyB3aWVkZXIgaGVyLjwvcD4KICAgICAgICAgICAgICAg -ICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2RldGFpbHM+CiAg -ICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iYWRtaW4tdGFiZWxsZSIgaWQ9ImJl -emVpY2hudW5nZW4tdGFiZWxsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+ -CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAg -ICAgICAgICAgICAgICAgICA8dGggc3R5bGU9IndpZHRoOjE4MHB4Ij5TY2hsw7xzc2VsPC90aD4K -ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDoyMjBw -eCI+RGVmYXVsdDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5F -aWdlbmUgQmV6ZWljaG51bmc8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwv -dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAg -ICAgICAgICAgICAgPHRib2R5IGlkPSJiZXplaWNobnVuZ2VuLXRib2R5Ij48L3Rib2R5PgogICAg -ICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2 -IHN0eWxlPSJkaXNwbGF5OmZsZXg7Z2FwOjhweDttYXJnaW4tdG9wOjEycHgiPgogICAgICAgICAg -ICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLWJlemVpY2hudW5nZW4tcmVzZXQiIGNs -YXNzPSJidG4gYnRuLXNlayIgdGl0bGU9IkFsbGUgV2VydGUgYXVmIGRlbiBEZWZhdWx0IHp1csO8 -Y2tzZXR6ZW4iPlp1csO8Y2tzZXR6ZW48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAg -ICAgIDxidXR0b24gaWQ9ImJ0bi1iZXplaWNobnVuZ2VuLXNwZWljaGVybiIgY2xhc3M9ImJ0biBi -dG4tcHJpbWFlciI+QmV6ZWljaG51bmdlbiBzcGVpY2hlcm48L2J1dHRvbj4KICAgICAgICAgICAg -ICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPgoKICAgICAg -ICAgICAgICAgICAgICA8aHIgY2xhc3M9ImFkbWluLXNla3Rpb24tdHJlbm5lciI+CgogICAgICAg -ICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJhZG1pbi1zZWt0aW9uIiBpZD0iYWRtaW4tc2Vr -dGlvbi1pbmZvaGlsZmUiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1p -bi1zZWt0aW9uLWtvcGYiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzPkluZm9ybWF0 -aW9uICZhbXA7IEhpbGZlPC9oMz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAg -ICAgICAgICAgICAgICAgICAgIDxkZXRhaWxzIGNsYXNzPSJhZG1pbi1pbmZvIiBkYXRhLWluZm8t -a2V5PSJpbmZvaGlsZmUiIG9wZW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3VtbWFy -eT48c3BhbiBjbGFzcz0iYWRtaW4taW5mby1jaGV2Ij7ilrg8L3NwYW4+SGlud2Vpc2UgenUgSW5m -b3JtYXRpb24gJmFtcDsgSGlsZmU8c3BhbiBjbGFzcz0iYWRtaW4taW5mby1iYWRnZSI+QXVma2xh -cHBlbiAvIFp1a2xhcHBlbjwvc3Bhbj48L3N1bW1hcnk+CiAgICAgICAgICAgICAgICAgICAgICAg -ICAgICA8ZGl2IGNsYXNzPSJhZG1pbi1pbmZvLWJvZHkiPgogICAgICAgICAgICAgICAgICAgICAg -ICAgICAgICAgIDxwPjxzdHJvbmc+V2FzIHdpcmQgaGllciBnZXBmbGVndD88L3N0cm9uZz4gQWxs -ZSBUZXh0ZSwgZGllIGltIEluZm8tRmVuc3RlciBlcnNjaGVpbmVuIChLbGljayBhdWYg4oCeSW5m -byIgb2JlbiByZWNodHMgaW4gZGVyIEtvcGZsZWlzdGUpLiBEaWUgRWRpdG9yZW4gdW50ZXJzdMO8 -dHplbiBlaW5mYWNoZSBGb3JtYXRpZXJ1bmcgw7xiZXIgZGllIFRvb2xiYXI6IDxiPkZldHQ8L2I+ -LCA8ZW0+S3Vyc2l2PC9lbT4sIDx1PlVudGVyc3RyaWNoZW48L3U+LCBBdWZ6w6RobHVuZ2VuLCBF -aW5yw7xja2VuL0F1c3LDvGNrZW4uPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg -IDxwPjxzdHJvbmc+UmVpaGVuZm9sZ2UgaW0gSW5mby1GZW5zdGVyOjwvc3Ryb25nPiBJbmZvdGV4 -dCDihpIgU3VwcG9ydC1JbmZvIOKGkiBTdXBlclVzZXItTGlzdGUg4oaSIEFsbGdlbWVpbmUgSGls -ZmUg4oaSIEJlZGllbnVuZ3MtSGlud2Vpc2Ug4oaSIFNjaGljaHRjb2RlLUxlZ2VuZGUgKGF1dG9t -YXRpc2NoIGdlbmVyaWVydCkuPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxw -PjxzdHJvbmc+QmVkaWVudW5ncy1IaW53ZWlzZTo8L3N0cm9uZz4gSmVkZXIgTGlzdGVuZWludHJh -ZyB3aXJkIGFscyBlaWdlbmVyIEJ1bGxldCBnZXJlbmRlcnQuIEZvcm1hdCA8Y29kZT5UaXRlbDog -QmVzY2hyZWlidW5nPC9jb2RlPiAoZWluIERvcHBlbHB1bmt0IHp3aXNjaGVuIFRpdGVsIHVuZCBF -cmtsw6RydW5nKSBsw6Rzc3QgZGVuIFRpdGVsIGF1dG9tYXRpc2NoIGZldHQgd2VyZGVuLjwvcD4K -ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPlNjaGxpZcOfLUluZm86 -PC9zdHJvbmc+IFdpcmQgaW0gSW5mby1GZW5zdGVyIDxiPm5pY2h0PC9iPiBhbmdlemVpZ3QsIHNv -bmRlcm4gYmVpbSBhdXRvbWF0aXNjaGVuIFNlcnZlci1TdG9wIG5hY2ggSW5ha3Rpdml0w6R0LiBQ -bGF0emhhbHRlciA8Y29kZT57bWludXRlbn08L2NvZGU+IHdpcmQgZHVyY2ggZGllIGtvbmZpZ3Vy -aWVydGUgU2NobGllw596ZWl0IGVyc2V0enQuPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAg -ICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGV0YWlscz4KCiAgICAgICAgICAg -ICAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtn -YXA6MThweDttYXgtd2lkdGg6OTAwcHgiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2Pgog -ICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIHN0eWxlPSJkaXNwbGF5OmJsb2NrO2Zv -bnQtd2VpZ2h0OjYwMDttYXJnaW4tYm90dG9tOjZweCI+SW5mb3RleHQgKGVyc2NoZWludCBpbSBJ -bmZvLUZlbnN0ZXIpPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xh -c3M9InJ0ZS10b29sYmFyIiBkYXRhLXJ0ZS1mb3I9ImloLWluZm90ZXh0Ij4KICAgICAgICAgICAg -ICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InJ0ZS1idG4i -IGRhdGEtY21kPSJib2xkIiB0aXRsZT0iRmV0dCAoQ3RybCtCKSI+PHN0cm9uZz5CPC9zdHJvbmc+ -PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJi -dXR0b24iIGNsYXNzPSJydGUtYnRuIiBkYXRhLWNtZD0iaXRhbGljIiB0aXRsZT0iS3Vyc2l2IChD -dHJsK0kpIj48ZW0+STwvZW0+PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg -ICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJydGUtYnRuIiBkYXRhLWNtZD0idW5kZXJs -aW5lIiB0aXRsZT0iVW50ZXJzdHJpY2hlbiAoQ3RybCtVKSI+PHU+VTwvdT48L2J1dHRvbj4KICAg -ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icnRlLXNlcCI+PC9zcGFu -PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBj -bGFzcz0icnRlLWJ0biIgZGF0YS1jbWQ9Imluc2VydFVub3JkZXJlZExpc3QiIHRpdGxlPSJBdWZ6 -w6RobHVuZyI+4oCiPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1 -dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJydGUtYnRuIiBkYXRhLWNtZD0iaW5zZXJ0T3JkZXJl -ZExpc3QiIHRpdGxlPSJOdW1tZXJpZXJ0Ij4xLjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAg -ICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJydGUtc2VwIj48L3NwYW4+CiAgICAgICAgICAgICAg -ICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJydGUtYnRuIiBk -YXRhLWNtZD0ib3V0ZGVudCIgdGl0bGU9IkF1c3LDvGNrZW4iPuKHpDwvYnV0dG9uPgogICAgICAg -ICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0icnRl -LWJ0biIgZGF0YS1jbWQ9ImluZGVudCIgdGl0bGU9IkVpbnLDvGNrZW4iPuKHpTwvYnV0dG9uPgog -ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJydGUtc2VwIj48L3Nw -YW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24i -IGNsYXNzPSJydGUtYnRuIiBkYXRhLWNtZD0icmVtb3ZlRm9ybWF0IiB0aXRsZT0iRm9ybWF0aWVy -dW5nIGVudGZlcm5lbiI+4pyVPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8 -L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9ImloLWluZm90ZXh0IiBj -bGFzcz0icnRlLWVkaXRvciIgY29udGVudGVkaXRhYmxlPSJ0cnVlIiBzcGVsbGNoZWNrPSJ0cnVl -IiBzdHlsZT0ibWluLWhlaWdodDo4MHB4Ij48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAg -PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgICAg -ICAgICAgICA8bGFiZWwgc3R5bGU9ImRpc3BsYXk6YmxvY2s7Zm9udC13ZWlnaHQ6NjAwO21hcmdp -bi1ib3R0b206NnB4Ij5TdXBwb3J0LUluZm8gKEFuc3ByZWNocGFydG5lciBiZWkgRnJhZ2VuKTwv -bGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJydGUtdG9vbGJh -ciIgZGF0YS1ydGUtZm9yPSJpaC1zdXBwb3J0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAg -ICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InJ0ZS1idG4iIGRhdGEtY21kPSJib2xk -IiB0aXRsZT0iRmV0dCAoQ3RybCtCKSI+PHN0cm9uZz5CPC9zdHJvbmc+PC9idXR0b24+CiAgICAg -ICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJy -dGUtYnRuIiBkYXRhLWNtZD0iaXRhbGljIiB0aXRsZT0iS3Vyc2l2IChDdHJsK0kpIj48ZW0+STwv -ZW0+PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBl -PSJidXR0b24iIGNsYXNzPSJydGUtYnRuIiBkYXRhLWNtZD0idW5kZXJsaW5lIiB0aXRsZT0iVW50 -ZXJzdHJpY2hlbiAoQ3RybCtVKSI+PHU+VTwvdT48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAg -ICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icnRlLXNlcCI+PC9zcGFuPgogICAgICAgICAgICAg -ICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0icnRlLWJ0biIg -ZGF0YS1jbWQ9Imluc2VydFVub3JkZXJlZExpc3QiIHRpdGxlPSJBdWZ6w6RobHVuZyI+4oCiPC9i -dXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0 -b24iIGNsYXNzPSJydGUtYnRuIiBkYXRhLWNtZD0iaW5zZXJ0T3JkZXJlZExpc3QiIHRpdGxlPSJO -dW1tZXJpZXJ0Ij4xLjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxz -cGFuIGNsYXNzPSJydGUtc2VwIj48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg -ICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJydGUtYnRuIiBkYXRhLWNtZD0ib3V0ZGVu -dCIgdGl0bGU9IkF1c3LDvGNrZW4iPuKHpDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAg -ICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0icnRlLWJ0biIgZGF0YS1jbWQ9 -ImluZGVudCIgdGl0bGU9IkVpbnLDvGNrZW4iPuKHpTwvYnV0dG9uPgogICAgICAgICAgICAgICAg -ICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJydGUtc2VwIj48L3NwYW4+CiAgICAgICAgICAg -ICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJydGUtYnRu -IiBkYXRhLWNtZD0icmVtb3ZlRm9ybWF0IiB0aXRsZT0iRm9ybWF0aWVydW5nIGVudGZlcm5lbiI+ -4pyVPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAg -ICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9ImloLXN1cHBvcnQiIGNsYXNzPSJydGUtZWRpdG9y -IiBjb250ZW50ZWRpdGFibGU9InRydWUiIHNwZWxsY2hlY2s9InRydWUiIHN0eWxlPSJtaW4taGVp -Z2h0OjEwMHB4Ij48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAg -ICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwg -c3R5bGU9ImRpc3BsYXk6YmxvY2s7Zm9udC13ZWlnaHQ6NjAwO21hcmdpbi1ib3R0b206NnB4Ij5B -bGxnZW1laW5lIEhpbGZlIChmcmVpZXIgVGV4dCk8L2xhYmVsPgogICAgICAgICAgICAgICAgICAg -ICAgICAgICAgPGRpdiBjbGFzcz0icnRlLXRvb2xiYXIiIGRhdGEtcnRlLWZvcj0iaWgtaGlsZmUi -PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBj -bGFzcz0icnRlLWJ0biIgZGF0YS1jbWQ9ImJvbGQiIHRpdGxlPSJGZXR0IChDdHJsK0IpIj48c3Ry -b25nPkI8L3N0cm9uZz48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8 -YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InJ0ZS1idG4iIGRhdGEtY21kPSJpdGFsaWMiIHRp -dGxlPSJLdXJzaXYgKEN0cmwrSSkiPjxlbT5JPC9lbT48L2J1dHRvbj4KICAgICAgICAgICAgICAg -ICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InJ0ZS1idG4iIGRh -dGEtY21kPSJ1bmRlcmxpbmUiIHRpdGxlPSJVbnRlcnN0cmljaGVuIChDdHJsK1UpIj48dT5VPC91 -PjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJy -dGUtc2VwIj48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0 -eXBlPSJidXR0b24iIGNsYXNzPSJydGUtYnRuIiBkYXRhLWNtZD0iaW5zZXJ0VW5vcmRlcmVkTGlz -dCIgdGl0bGU9IkF1ZnrDpGhsdW5nIj7igKI8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAg -ICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InJ0ZS1idG4iIGRhdGEtY21k -PSJpbnNlcnRPcmRlcmVkTGlzdCIgdGl0bGU9Ik51bW1lcmllcnQiPjEuPC9idXR0b24+CiAgICAg -ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InJ0ZS1zZXAiPjwvc3Bhbj4K -ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xh -c3M9InJ0ZS1idG4iIGRhdGEtY21kPSJvdXRkZW50IiB0aXRsZT0iQXVzcsO8Y2tlbiI+4oekPC9i -dXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0 -b24iIGNsYXNzPSJydGUtYnRuIiBkYXRhLWNtZD0iaW5kZW50IiB0aXRsZT0iRWlucsO8Y2tlbiI+ -4oelPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9 -InJ0ZS1zZXAiPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9u -IHR5cGU9ImJ1dHRvbiIgY2xhc3M9InJ0ZS1idG4iIGRhdGEtY21kPSJyZW1vdmVGb3JtYXQiIHRp -dGxlPSJGb3JtYXRpZXJ1bmcgZW50ZmVybmVuIj7inJU8L2J1dHRvbj4KICAgICAgICAgICAgICAg -ICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0i -aWgtaGlsZmUiIGNsYXNzPSJydGUtZWRpdG9yIiBjb250ZW50ZWRpdGFibGU9InRydWUiIHNwZWxs -Y2hlY2s9InRydWUiIHN0eWxlPSJtaW4taGVpZ2h0OjEyMHB4Ij48L2Rpdj4KICAgICAgICAgICAg -ICAgICAgICAgICAgICAgIDxzbWFsbCBzdHlsZT0iZGlzcGxheTpibG9jaztjb2xvcjp2YXIoLS10 -ZXh0LW11dGVkKTttYXJnaW4tdG9wOjRweCI+UGxhdHogZsO8ciBnZW5lcmVsbGUgSGlsZmV0ZXh0 -ZSwgRkFRcywgVmVyd2Vpc2UuIEVyc2NoZWludCBpbSBJbmZvLUZlbnN0ZXIgw7xiZXIgZGVuIEJl -ZGllbnVuZ3MtSGlud2Vpc2VuLjwvc21hbGw+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2 -PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAg -ICAgPGxhYmVsIHN0eWxlPSJkaXNwbGF5OmJsb2NrO2ZvbnQtd2VpZ2h0OjYwMDttYXJnaW4tYm90 -dG9tOjZweCI+QmVkaWVudW5ncy1IaW53ZWlzZSAoamVkZXIgQnVsbGV0ID0gZWluZSBaZWlsZSAv -IGVpbiBMaXN0ZW5wdW5rdCk8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRp -diBjbGFzcz0icnRlLXRvb2xiYXIiIGRhdGEtcnRlLWZvcj0iaWgtYmVkaWVudW5nIj4KICAgICAg -ICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InJ0 -ZS1idG4iIGRhdGEtY21kPSJib2xkIiB0aXRsZT0iRmV0dCAoQ3RybCtCKSI+PHN0cm9uZz5CPC9z -dHJvbmc+PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0 -eXBlPSJidXR0b24iIGNsYXNzPSJydGUtYnRuIiBkYXRhLWNtZD0iaXRhbGljIiB0aXRsZT0iS3Vy -c2l2IChDdHJsK0kpIj48ZW0+STwvZW0+PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAg -ICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJydGUtYnRuIiBkYXRhLWNtZD0i -dW5kZXJsaW5lIiB0aXRsZT0iVW50ZXJzdHJpY2hlbiAoQ3RybCtVKSI+PHU+VTwvdT48L2J1dHRv -bj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icnRlLXNlcCI+ -PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0 -dG9uIiBjbGFzcz0icnRlLWJ0biIgZGF0YS1jbWQ9Imluc2VydFVub3JkZXJlZExpc3QiIHRpdGxl -PSJBdWZ6w6RobHVuZyI+4oCiPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg -ICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJydGUtYnRuIiBkYXRhLWNtZD0iaW5zZXJ0 -T3JkZXJlZExpc3QiIHRpdGxlPSJOdW1tZXJpZXJ0Ij4xLjwvYnV0dG9uPgogICAgICAgICAgICAg -ICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJydGUtc2VwIj48L3NwYW4+CiAgICAgICAg -ICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJydGUt -YnRuIiBkYXRhLWNtZD0ib3V0ZGVudCIgdGl0bGU9IkF1c3LDvGNrZW4iPuKHpDwvYnV0dG9uPgog -ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFz -cz0icnRlLWJ0biIgZGF0YS1jbWQ9ImluZGVudCIgdGl0bGU9IkVpbnLDvGNrZW4iPuKHpTwvYnV0 -dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJydGUtc2Vw -Ij48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJi -dXR0b24iIGNsYXNzPSJydGUtYnRuIiBkYXRhLWNtZD0icmVtb3ZlRm9ybWF0IiB0aXRsZT0iRm9y -bWF0aWVydW5nIGVudGZlcm5lbiI+4pyVPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAg -ICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9ImloLWJlZGll -bnVuZyIgY2xhc3M9InJ0ZS1lZGl0b3IiIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSIgc3BlbGxjaGVj -az0idHJ1ZSIgc3R5bGU9Im1pbi1oZWlnaHQ6MTYwcHgiPjwvZGl2PgogICAgICAgICAgICAgICAg -ICAgICAgICAgICAgPHNtYWxsIHN0eWxlPSJkaXNwbGF5OmJsb2NrO2NvbG9yOnZhcigtLXRleHQt -bXV0ZWQpO21hcmdpbi10b3A6NHB4Ij5adXLDvGNrc2V0emVuIGF1ZiBEZWZhdWx0OiBFZGl0b3Ig -bGVlcmVuIHVuZCBzcGVpY2hlcm4g4oCUIGRlciBJbmZvLUJsb2NrIHplaWd0IGRhbm4gZGllIGVp -bmdlYmF1dGVuIERlZmF1bHQtSGlud2Vpc2UuPC9zbWFsbD4KICAgICAgICAgICAgICAgICAgICAg -ICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAg -ICAgICAgICAgICA8bGFiZWwgc3R5bGU9ImRpc3BsYXk6YmxvY2s7Zm9udC13ZWlnaHQ6NjAwO21h -cmdpbi1ib3R0b206NnB4Ij5TY2hsaWXDny1JbmZvIChIaW53ZWlzIGJlaW0gQXV0by1TaHV0ZG93 -bik8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRleHRhcmVhIGlkPSJpaC1z -Y2hsaWVzc2luZm8iIGNsYXNzPSJmb3JtLWlucHV0IiByb3dzPSIzIiBzdHlsZT0id2lkdGg6MTAw -JSIgcGxhY2Vob2xkZXI9InouQi4gJ0RpZXNlIEFud2VuZHVuZyBzY2hsaWXDn3QgbmFjaCB7bWlu -dXRlbn0gTWludXRlbiBJbmFrdGl2aXTDpHQgYXV0b21hdGlzY2guJyI+PC90ZXh0YXJlYT4KICAg -ICAgICAgICAgICAgICAgICAgICAgICAgIDxzbWFsbCBzdHlsZT0iZGlzcGxheTpibG9jaztjb2xv -cjp2YXIoLS10ZXh0LW11dGVkKTttYXJnaW4tdG9wOjRweCI+UGxhdHpoYWx0ZXIgPGNvZGU+e21p -bnV0ZW59PC9jb2RlPiB3aXJkIGR1cmNoIGRpZSBTY2hsaWXDn3plaXQgZXJzZXR6dC4gS2VpbiBS -aWNoLVRleHQg4oCUIHdpcmQgYWxzIHJlaW5lciBUZXh0IHZlcndlbmRldC48L3NtYWxsPgogICAg -ICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj4K -ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBzdHlsZT0iZGlzcGxheTpibG9jaztm -b250LXdlaWdodDo2MDA7bWFyZ2luLWJvdHRvbTo2cHgiPkltcHJlc3N1bSAoZXJzY2hlaW50IMO8 -YmVyIGRlbiBCdXR0b24g4oCeSW1wcmVzc3VtIiBpbSBJbmZvLUZlbnN0ZXIpPC9sYWJlbD4KICAg -ICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJ0ZS10b29sYmFyIiBkYXRhLXJ0 -ZS1mb3I9ImloLWltcHJlc3N1bSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1 -dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJydGUtYnRuIiBkYXRhLWNtZD0iYm9sZCIgdGl0bGU9 -IkZldHQgKEN0cmwrQikiPjxzdHJvbmc+Qjwvc3Ryb25nPjwvYnV0dG9uPgogICAgICAgICAgICAg -ICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0icnRlLWJ0biIg -ZGF0YS1jbWQ9Iml0YWxpYyIgdGl0bGU9Ikt1cnNpdiAoQ3RybCtJKSI+PGVtPkk8L2VtPjwvYnV0 -dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9u -IiBjbGFzcz0icnRlLWJ0biIgZGF0YS1jbWQ9InVuZGVybGluZSIgdGl0bGU9IlVudGVyc3RyaWNo -ZW4gKEN0cmwrVSkiPjx1PlU8L3U+PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAg -ICAgICAgPHNwYW4gY2xhc3M9InJ0ZS1zZXAiPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAg -ICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InJ0ZS1idG4iIGRhdGEtY21k -PSJpbnNlcnRVbm9yZGVyZWRMaXN0IiB0aXRsZT0iQXVmesOkaGx1bmciPuKAojwvYnV0dG9uPgog -ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFz -cz0icnRlLWJ0biIgZGF0YS1jbWQ9Imluc2VydE9yZGVyZWRMaXN0IiB0aXRsZT0iTnVtbWVyaWVy -dCI+MS48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFz -cz0icnRlLXNlcCI+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0 -b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0icnRlLWJ0biIgZGF0YS1jbWQ9Im91dGRlbnQiIHRpdGxl -PSJBdXNyw7xja2VuIj7ih6Q8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg -ICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InJ0ZS1idG4iIGRhdGEtY21kPSJpbmRlbnQi -IHRpdGxlPSJFaW5yw7xja2VuIj7ih6U8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAg -ICAgICAgICA8c3BhbiBjbGFzcz0icnRlLXNlcCI+PC9zcGFuPgogICAgICAgICAgICAgICAgICAg -ICAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0icnRlLWJ0biIgZGF0YS1j -bWQ9InJlbW92ZUZvcm1hdCIgdGl0bGU9IkZvcm1hdGllcnVuZyBlbnRmZXJuZW4iPuKclTwvYnV0 -dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAg -ICAgICAgICAgICA8ZGl2IGlkPSJpaC1pbXByZXNzdW0iIGNsYXNzPSJydGUtZWRpdG9yIiBjb250 -ZW50ZWRpdGFibGU9InRydWUiIHNwZWxsY2hlY2s9InRydWUiIHN0eWxlPSJtaW4taGVpZ2h0OjE4 -MHB4Ij48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzbWFsbCBzdHlsZT0iZGlz -cGxheTpibG9jaztjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTttYXJnaW4tdG9wOjRweCI+SW5pdGlh -bCBtaXQgZWluZW0gc2lubnZvbGxlbiBEZWZhdWx0IGJlZsO8bGx0IChQb2xpemVpcHLDpHNpZGl1 -bSBEb3J0bXVuZCAvIFZJIDMgLyB0ZWNobmlzY2hlIEtvbnplcHRpb24gLyBMaXplbnpoaW53ZWlz -ZSAvIEhhZnR1bmdzYXVzc2NobHVzcykuIEJpdHRlIEFuc2NocmlmdCBlcmfDpG56ZW4gdW5kIGdn -Zi4gYW4gZGllIHRhdHPDpGNobGljaGUgRGllbnN0c3RlbGxlIGFucGFzc2VuLiA8c3Ryb25nPk5p -Y2h0IGdlbMO2c2NodDwvc3Ryb25nPiB3aXJkIGRlciBOb3RmYWxsLUhpbndlaXMgYXVmIFBISyBS -b2VzZ2VuIOKAlCBkZXIgaXN0IGltIEltcHJlc3N1bXMtTW9kYWwgZmVzdCB1bnRlbiB2ZXJhbmtl -cnQgdW5kIGthbm4gaGllciBuaWNodCBlbnRmZXJudCB3ZXJkZW4uPC9zbWFsbD4KICAgICAgICAg -ICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAg -ICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLWluZm9oaWxmZS1zcGVpY2hlcm4iIGNsYXNzPSJi -dG4gYnRuLXByaW1hZXIiIHN0eWxlPSJtYXJnaW4tdG9wOjEycHgiPkluZm9ybWF0aW9uICZhbXA7 -IEhpbGZlIHNwZWljaGVybjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4K -ICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgIDwhLS0gVGFiOiBCZXplaWNo -bnVuZ2VuICYgTGlzdGVuIOKAlCBlZGl0aWVyYmFyZSBTdGFtbWRhdGVuLUxpc3RlbgogICAgICAg -ICAgICAgICAgICAgICAoRGllbnN0Z3JhZGUsIEZ1bmt0aW9uZW4pIHN0YXR0IGhhcnRjb2RpZXJ0 -ZSBDb2RlLUtvbnN0YW50ZW4uIC0tPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4t -dGFiIHZlcnN0ZWNrdCIgaWQ9ImFkbWluLXRhYi1saXN0ZW4iPgogICAgICAgICAgICAgICAgICAg -IDxkaXYgY2xhc3M9ImFkbWluLWtvcGYiPgogICAgICAgICAgICAgICAgICAgICAgICA8aDI+QmV6 -ZWljaG51bmdlbiAmYW1wOyBMaXN0ZW48L2gyPgogICAgICAgICAgICAgICAgICAgIDwvZGl2Pgog -ICAgICAgICAgICAgICAgICAgIDxkZXRhaWxzIGNsYXNzPSJhZG1pbi1pbmZvIiBkYXRhLWluZm8t -a2V5PSJsaXN0ZW4iPgogICAgICAgICAgICAgICAgICAgICAgICA8c3VtbWFyeT48c3BhbiBjbGFz -cz0iYWRtaW4taW5mby1jaGV2Ij7ilrg8L3NwYW4+V2FzIHdpcmQgaGllciBnZXBmbGVndD88c3Bh -biBjbGFzcz0iYWRtaW4taW5mby1iYWRnZSI+QXVma2xhcHBlbiAvIFp1a2xhcHBlbjwvc3Bhbj48 -L3N1bW1hcnk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFkbWluLWluZm8t -Ym9keSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPkRpZW5zdGdyYWRl -PC9zdHJvbmc+IOKAlCBkaWUgRGllbnN0Z3JhZC1BdXN3YWhsIGluIGRlciBQZXJzb25hbHZlcndh -bHR1bmcgKHouQi4gUE9LLCBQSEssIEVQSEspLiBSZWloZW5mb2xnZSBiZXN0aW1tdCBkaWUgU29y -dGllcnVuZyBpbSBEcm9wZG93bjogPGVtPm9iZW4gPSBow7ZoZXIgZ2VzdGVsbHQ8L2VtPi4gVmVy -d2VuZGUgZGVuIFN0ZXJuIDxjb2RlPio8L2NvZGU+IGbDvHIgWndpc2NoZW5zdHVmZW4gd2llIDxj -b2RlPlBISyo8L2NvZGU+IChBMTIgendpc2NoZW4gUEhLIEExMSB1bmQgRVBISyBBMTMpLjwvcD4K -ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+RnVua3Rpb25lbjwvc3Ryb25n -PiDigJQgU3RhbW0tRnVua3Rpb24gZWluZXIgUGVyc29uIChER0wsIFdERiwgV2FjaGxlaXR1bmcs -IC4uLikuIERlciA8c3Ryb25nPlJhbmc8L3N0cm9uZz4gYmVzdGltbXQgZGllIFZlcmFudHdvcnR1 -bmdzLVJlaWhlbmZvbGdlIGluIGRlciBTY2hpY2h0ICgwID0gaMO2Y2hzdGUgVmVyYW50d29ydHVu -ZykuIFBlcnNvbmVuIG1pdCBnbGVpY2hlbSBSYW5nIHdlcmRlbiDDvGJlciBpaHJlIHJvaGUgUG9z -aXRpb25zLVphaGwgc29ydGllcnQuPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+ -PHN0cm9uZz5Wb3JzaWNodCBiZWltIEzDtnNjaGVuOjwvc3Ryb25nPiBQZXJzb25lbiwgZGllIGVp -bmVuIGVudGZlcm50ZW4gRGllbnN0Z3JhZCBvZGVyIGVpbmUgZW50ZmVybnRlIEZ1bmt0aW9uIHRy -YWdlbiwgYmVoYWx0ZW4gZGVuIGFsdGVuIFdlcnQsIGvDtm5uZW4gaWhuIGFiZXIgbmljaHQgbWVo -ciBuZXUgYXVzd8OkaGxlbiwgYmlzIGVyIHdpZWRlciBpbiBkZXIgTGlzdGUgc3RlaHQuPC9wPgog -ICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2RldGFp -bHM+CgogICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJhZG1pbi1zZWt0aW9uIiBp -ZD0iYWRtaW4tc2VrdGlvbi1saXN0ZW4tZGllbnN0Z3JhZGUiPgogICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPlp3ZWNrOjwvc3Ryb25nPiBaZW50 +cmFsZSBWZXJ3YWx0dW5nIGFsbGVyIE1pdGFyYmVpdGVyLCBkaWUgaW4gZGVyIERpZW5zdHBsYW51 +bmcgZXJzY2hlaW5lbi4gSmVkZSBQZXJzb24gYmVrb21tdCBTdGFtbWRhdGVuIChOYW1lLCBEaWVu +c3RncmFkLCBUZWxlZm9uLCBOVy1LZW5udW5nLCBEaWVuc3RncnVwcGUsIFN0YW5kb3J0KSBzb3dp +ZSBlaW5lbiBha3RpdmVuIG9kZXIgdW1nZXNldHp0ZW4gU3RhdHVzLjwvcD4KICAgICAgICAgICAg +ICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+UmFuZ2ZvbGdlOjwvc3Ryb25nPiBEaWUgUmFuZy1T +cGFsdGUgemVpZ3QgZGVuIHJvaGVuIFBvc2l0aW9ucy1XZXJ0ICh6LkIuIDxjb2RlPjExMTwvY29k +ZT4g4oCUIMO8YmVybm9tbWVuIGF1cyBkZW0gRXhjZWwtSW1wb3J0KS4gWnVtIFVtc29ydGllcmVu +IG51dHplIGRlbiBCdXR0b24gPGVtPk1hbnVlbGxlIFNvcnRpZXJ1bmc8L2VtPiBvYmVuIOKAlCBk +b3J0IGvDtm5uZW4gRsO8aHJ1bmdza3LDpGZ0ZSAoQeKAk0MgdW5kIFdEKSBwZXIgRHJhZyAmYW1w +OyBEcm9wIG5ldSBhbmdlb3JkbmV0IHdlcmRlbi48L3A+CiAgICAgICAgICAgICAgICAgICAgICAg +ICAgICA8cD48c3Ryb25nPkRpZW5zdGdyYWQ6PC9zdHJvbmc+IE9wdGlvbmFsIOKAlCB6LiBCLiBQ +SEssIFBPSywgUEsuIFdpcmQgaW4gZGVyIE5hbWVuc3NwYWx0ZSBhbHMgUHLDpGZpeCB2b3IgZGVt +IE5hY2huYW1lbiBhbmdlemVpZ3QuPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+ +PHN0cm9uZz5EaWVuc3RncnVwcGUgKEEvQi9DL1dEL1dMKTo8L3N0cm9uZz4gQmVzdGltbXQgZGll +IFJvdGF0aW9uIGFuIGRlbiBTdGFuZG9ydGVuLiBBL0IvQyByb3RpZXJlbiBpbiBBQkMtL0JDQS0v +Q0FCLVNjaGljaHRmb2xnZSBkdXJjaCBGcsO8aC9TcMOkdC9OYWNodC4gV0QgKFdhY2hkaWVuc3Qp +IHVuZCBXTCAoV2FjaGxlaXR1bmcpIHNpbmQgZmVzdGUgU29uZGVyZ3J1cHBlbiBvaG5lIFJvdGF0 +aW9uLiBLw7xyemVsIHVuZCBCZXplaWNobnVuZ2VuIGxhc3NlbiBzaWNoIGltIFRhYiA8Yj5EaWVu +c3RncnVwcGVuPC9iPiBhbnBhc3NlbiDigJQgVW1iZW5lbm51bmcga2Fza2FkaWVydCBhdXRvbWF0 +aXNjaCBhdWYgYWxsZSBQZXJzb25lbi48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8 +cD48c3Ryb25nPk5XLUtlbm51bmc6PC9zdHJvbmc+IERpZSBOZXR6d2Vyay1LZW5udW5nICh6LkIu +IDxjb2RlPkRPTUFJTlxtYXgubXVzdGVybWFubjwvY29kZT4pIHdpcmQgYXV0b21hdGlzY2ggZGVt +IGFuZ2VtZWxkZXRlbiBXaW5kb3dzLUJlbnV0emVyIHp1Z2VvcmRuZXQuIE9obmUgS2VubnVuZyBl +cmtlbm50IGRhcyBTeXN0ZW0gZGllIFBlcnNvbiBuaWNodCDigJQgRnVua3Rpb25lbiB3aWUg4oCe +RnJlbWQtw4RuZGVydW5nIFdhcm51bmciIG9kZXIgcGVyc8O2bmxpY2hlciBQbGFuIGZ1bmt0aW9u +aWVyZW4gZGFubiBuaWNodC48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ry +b25nPkUtTWFpbDo8L3N0cm9uZz4gT3B0aW9uYWwuIFdpcmQgdmVyd2VuZGV0LCB3ZW5uIGRpZSBC +ZW5hY2hyaWNodGlndW5nc2Z1bmt0aW9uIGFrdGl2aWVydCBpc3QgKFRhYiA8Yj5FaW5zdGVsbHVu +Z2VuPC9iPikuPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5VbWdl +c2V0enQ6PC9zdHJvbmc+IFBlcnNvbmVuIG1pdCBTdGF0dXMg4oCeVW1nZXNldHp0IiB3ZXJkZW4g +YXVzIGRlciBsYXVmZW5kZW4gUGxhbnVuZyBlbnRmZXJudCwgaWhyZSBIaXN0b3JpZSBibGVpYnQg +YWJlciBlcmhhbHRlbiAoenVyIFJlY2hlcmNoZSkuIEVpbnRyw6RnZSBrw7ZubmVuIHdlaXRlcmhp +biBhbmdlemVpZ3Qgd2VyZGVuLCBzaW5kIGFiZXIgbmljaHQgbWVociBlZGl0aWVyYmFyLiBEaWUg +Q2hlY2tib3ggb2JlbiByZWNodHMgYmxlbmRldCBzaWUgYmVpIEJlZGFyZiBlaW4uPC9wPgogICAg +ICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5Mw7ZzY2hlbiB2cy4gVW1zZXR6ZW46 +PC9zdHJvbmc+IE51ciBhdXNuYWhtc3dlaXNlIGzDtnNjaGVuIOKAlCB2ZXJsb3JlbmUgSGlzdG9y +aWUuIEltIFJlZ2VsZmFsbCDigJ5VbXNldHplbiIgKGRlYWt0aXZpZXJlbikgYmV2b3J6dWdlbi48 +L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwv +ZGV0YWlscz4KICAgICAgICAgICAgICAgICAgICA8dGFibGUgaWQ9InBlcnNvbmFsLXRhYmVsbGUi +IGNsYXNzPSJhZG1pbi10YWJlbGxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgog +ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgIDx0aD5OYW1lPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+ +Vm9ybmFtZTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPSJ3 +aWR0aDoxMjBweCIgdGl0bGU9IlN0YW1tLUZ1bmt0aW9uIChER0wvREdMaW4vV0RGL1dERmluLzMu +IE1hbm4vMy4gRnJhdS9XYWNobGVpdHVuZy9HcnVwcGVuZsO8aHJ1bmcpLiBCZXN0aW1tdCBkaWUg +VmVyYW50d29ydHVuZ3MtUmVpaGVuZm9sZ2UgaW4gZGVyIFNjaGljaHQuIj5GdW5rdGlvbjwvdGg+ +CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDo4NXB4IiB0 +aXRsZT0iRGllbnN0Z3JhZCAoZsO8ciBTdXBlclVzZXIgcGVyIEtsaWNrIGVkaXRpZXJiYXIpIj5E +aWVuc3RncmFkPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9 +IndpZHRoOjY1cHgiIHRpdGxlPSJEaWVuc3RyYW5nIOKAlCByb2hlIFBvc2l0aW9uIChhdXMgRXhj +ZWwtSW1wb3J0KS4gVW1zb3J0aWVyZW4gdmlhIOKAnk1hbnVlbGxlIFNvcnRpZXJ1bmciIG9iZW4u +Ij5EaWVuc3RyYW5nPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5 +bGU9IndpZHRoOjUwcHgiIHRpdGxlPSJPcmdhbmlzYXRpb25zZWluaGVpdCAoU3RhbmRvcnQtS3Vl +cnplbCBhdXMgZGVtIFRhYiDigJ5TdGFuZG9ydGUiIOKAlCB6LkIuIEtBLCBIQSwgQk8pLiI+T0U8 +L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6NjBw +eCIgdGl0bGU9IlRlbGVmb24tRHVyY2h3YWhsIChpbnRlcm4pLiI+VGVsLjwvdGg+CiAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDoxMTVweCIgdGl0bGU9Ik5X +LUtlbm51bmcg4oCUIGkuZC5SLiA4IFplaWNoZW4sIGxhbmdlIERPTUFJTi1QcmFlZml4ZSB3ZXJk +ZW4gZ2dmLiBhYmdlc2Nobml0dGVuIj5OVy1LZW5udW5nPC90aD4KICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICA8dGggc3R5bGU9IndpZHRoOjQ4cHgiIHRpdGxlPSJIZXV0aWdlIFNjaGlj +aHRyb3RhdGlvbiAoRnJ1ZWhkaWVuc3QgLyBTcGFldGRpZW5zdCAvIE5hY2h0ZGllbnN0KS4gV2ly +ZCBhdXMgZGVyIFN0YW5kb3J0LVNjaGljaHRmb2xnZSB1bmQgZGVyIERpZW5zdGdydXBwZSBkZXIg +UGVyc29uIGFiZ2VsZWl0ZXQuIEhvdmVyIHplaWd0IGRlbiBuYWVjaHN0ZW4gV2VjaHNlbHRhZy4i +PlJvdGE8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lk +dGg6OTBweCI+RS1NYWlsPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGgg +c3R5bGU9IndpZHRoOjk1cHgiPkdlYnVydHN0YWc8L3RoPgogICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6NzBweCIgdGl0bGU9IlF1YWxpZmlrYXRpb24gYWxz +IERpZW5zdGdydXBwZW4tTGVpdGVyIChER0wpIGJ6dy4g4oCeMy4gTWFubi9GcmF1IiBkZXIgVmVy +a2VocnNpbnNwZWt0aW9uIDMuIE1hcmtpZXJ0IGRpZSBQZXJzb24gYWxzIHVlYmVyYmVzZXR6dW5n +cy1mYWVoaWcgZnVlciBsZWVyZSBTY2hpY2h0ZW4gaW4gaWhyZXIgRGllbnN0Z3J1cHBlLiI+Vkkz +IERHTDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0 +aDo5MHB4IiB0aXRsZT0iQW5zcHJlY2hwYXJ0bmVyIGltIEluZm8tRmVuc3RlciDigJQgbnVyIGbD +vHIgTGVpdHVuZ3MtRnVua3Rpb25lbiBha3RpdmllcmJhciAoRnVua3Rpb25lbiBtaXQg4oCeSW4g +UGxhbnVuZyBzaWNodGJhciA9IG5laW4iKSI+QW5zcHJlY2gtwq1wYXJ0bmVyPC90aD4KICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9IndpZHRoOjY0cHgiIHRpdGxlPSJE +aWVzZSBQZXJzb24gZWluemVsbiBhdXMgZGVyIFBsYW51bmdzYW5zaWNodCAvIFdvY2hlbnBsYW4g +LyBQZXJzLiBQbGFuIGF1c2JsZW5kZW4gKGdyw7xuID0gc2ljaHRiYXIsIHJvdCA9IGF1c2dlYmxl +bmRldCkuIFN1cGVyVXNlci1vbmx5LiI+SW4gUGxhbnVuZzwvdGg+CiAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDo4MHB4Ij5TdGF0dXM8L3RoPgogICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6MjEwcHgiPkFrdGlvbmVu +PC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAg +ICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keSBpZD0icGVyc29u +YWwtdGJvZHkiPjwvdGJvZHk+CiAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAg +ICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgIDwhLS0gVGFiOiBGZWllcnRhZ2UgLS0+CiAg +ICAgICAgICAgICAgICA8IS0tIFRhYjogRGllbnN0Z3J1cHBlbiAtLT4KICAgICAgICAgICAgICAg +IDxkaXYgY2xhc3M9ImFkbWluLXRhYiB2ZXJzdGVja3QiIGlkPSJhZG1pbi10YWItZ3J1cHBlbiI+ +CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4ta29wZiI+CiAgICAgICAgICAg +ICAgICAgICAgICAgIDxoMj5EaWVuc3RncnVwcGVuPC9oMj4KICAgICAgICAgICAgICAgICAgICA8 +L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGV0YWlscyBjbGFzcz0iYWRtaW4taW5mbyIgZGF0 +YS1pbmZvLWtleT0iZ3J1cHBlbiIgb3Blbj4KICAgICAgICAgICAgICAgICAgICAgICAgPHN1bW1h +cnk+PHNwYW4gY2xhc3M9ImFkbWluLWluZm8tY2hldiI+4pa4PC9zcGFuPkhpbndlaXNlIHp1IERp +ZW5zdGdydXBwZW48c3BhbiBjbGFzcz0iYWRtaW4taW5mby1iYWRnZSI+QXVma2xhcHBlbiAvIFp1 +a2xhcHBlbjwvc3Bhbj48L3N1bW1hcnk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xh +c3M9ImFkbWluLWluZm8tYm9keSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ry +b25nPldhcyBzaW5kIERpZW5zdGdydXBwZW4/PC9zdHJvbmc+IERpZW5zdGdydXBwZW4gYsO8bmRl +bG4gTWl0YXJiZWl0ZXIgbWl0IGRlbXNlbGJlbiBSb3RhdGlvbnNyaHl0aG11cy4gQmVpIGRlciBW +STMgc2luZCBkYXMgZGllIGtsYXNzaXNjaGVuIDxiPkEgLyBCIC8gQzwvYj4gKFdlY2hzZWxkaWVu +c3QtUm90YXRpb24pLCBwbHVzIFNvbmRlcmdydXBwZW4gd2llIDxiPks8L2I+IChXYWNoZGllbnN0 +KSB1bmQgPGI+TDwvYj4gKFdhY2hsZWl0dW5nKS48L3A+CiAgICAgICAgICAgICAgICAgICAgICAg +ICAgICA8cD48c3Ryb25nPkvDvHJ6ZWwgdnMuIEJlemVpY2hudW5nOjwvc3Ryb25nPgogICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgPGxpPkRhcyA8Yj5Lw7xyemVsPC9iPiAoei5CLiA8Y29kZT5BPC9jb2RlPiwgPGNv +ZGU+V0Q8L2NvZGU+KSBpc3QgZGllIHRlY2huaXNjaGUgS2VubnVuZyBpbiBkZW4gRGF0ZW4gdW5k +IHdpcmQgaW4gZGVyIFBlcnNvbmVuLVplaWxlIGFuZ2V6ZWlndC4gV2VubiBkdSBlcyDDpG5kZXJz +dCwgd2VyZGVuIGF1dG9tYXRpc2NoIGFsbGUgUGVyc29uZW4gZGVyIEdydXBwZSBhdWYgZGFzIG5l +dWUgS8O8cnplbCBtaWdyaWVydCAoa2Fza2FkaWVydGVzIFVwZGF0ZSBpbiA8Y29kZT5wbGFudW5n +Lmpzb248L2NvZGU+KS48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8 +bGk+RGllIDxiPkJlemVpY2hudW5nPC9iPiAoei5CLiDigJ5XYWNoZGllbnN0Iiwg4oCeV2FjaGxl +aXR1bmciKSBlcnNjaGVpbnQgYWxzIFRyZW5uZXIgaW4gZGVyIE5hbWVuc2xpc3RlIGRlciBQbGFu +dW5nLiBEaWVzZSBrYW5uc3QgZHUgZnJlaSBhbnBhc3Nlbiwgb2huZSBEYXRlbiB6dSB2ZXJsaWVy +ZW4uPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAg +ICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0 +cm9uZz5GYXJiZW46PC9zdHJvbmc+IEhpbnRlcmdydW5kIHVuZCBTY2hyaWZ0ZmFyYmUgcHJvIEdy +dXBwZSBkaXJla3QgZWRpdGllcmJhci4gRWluZSBMaXZlLVZvcnNjaGF1IHplaWd0IGRhcyByZXN1 +bHRpZXJlbmRlIEJhZGdlLiBEaWUgRmFyYmVuIHdlcmRlbiDDvGJlcmFsbCBpbSBTeXN0ZW0gdmVy +d2VuZGV0IChQZXJzb25lbi1CYWRnZXMsIEdydXBwZW4tVHJlbm5lciBpbiBkZXIgUGVyc29uYWx2 +ZXJ3YWx0dW5nLCBHcnVwcGVuLUxhYmVsIGluIGRlciBQbGFudW5ncy1aZWlsZSkuPC9wPgogICAg +ICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OZXVlIEdydXBwZSBhbmxlZ2VuOjwv +c3Ryb25nPiBCdXR0b24gPGVtPuKAnk5ldWUgRGllbnN0Z3J1cHBlIjwvZW0+IMO2ZmZuZXQgZWlu +ZSBFaW5nYWJlemVpbGUuIFBmbGljaHRmZWxkZXIgc2luZCBLw7xyemVsIHVuZCBCZXplaWNobnVu +ZzsgRmFyYmVuIGvDtm5uZW4genVuw6RjaHN0IMO8YmVybm9tbWVuIHdlcmRlbiB1bmQgc3DDpHRl +ciBhbmdlcGFzc3Qgd2VyZGVuLjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxz +dHJvbmc+R3J1cHBlIGzDtnNjaGVuOjwvc3Ryb25nPiBOdXIgbcO2Z2xpY2gsIHdlbm4ga2VpbmUg +YWt0aXZlIFBlcnNvbiBtZWhyIGluIGRlciBHcnVwcGUgaXN0LiBTaW5kIG5vY2ggUGVyc29uZW4g +enVnZXdpZXNlbiwgemVpZ3QgZGVyIERpYWxvZyBkaWUgQW56YWhsIHVuZCBicmljaHQgYWIg4oCU +IGRhbm4gZXJzdCBkaWUgUGVyc29uZW4gYXVmIGVpbmUgYW5kZXJlIEdydXBwZSB1bXNldHplbiBv +ZGVyIHVtZ3J1cHBpZXJlbi48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ry +b25nPlNwZWljaGVybjo8L3N0cm9uZz4gTmFjaCDDhG5kZXJ1bmdlbiBhdWYg4oCeRGllbnN0Z3J1 +cHBlbiBzcGVpY2hlcm4iIGtsaWNrZW4uIEJlaSBnZcOkbmRlcnRlbiBLw7xyemVsbiB3ZXJkZW4g +YWxsZSB2ZXJrbsO8cGZ0ZW4gUGVyc29uZW4gYXV0b21hdGlzY2ggYXVmIGRhcyBuZXVlIEvDvHJ6 +ZWwgdW1nZXNjaHJpZWJlbiAoa2VpbiBEYXRlbnZlcmx1c3QpLjwvcD4KICAgICAgICAgICAgICAg +ICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kZXRhaWxzPgogICAgICAgICAg +ICAgICAgICAgIDx0YWJsZSBjbGFzcz0iYWRtaW4tdGFiZWxsZSIgaWQ9ImdydXBwZW4tdGFiZWxs +ZSIgc3R5bGU9Im1heC13aWR0aDoxMDQwcHgiPgogICAgICAgICAgICAgICAgICAgICAgICA8dGhl +YWQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDo5MHB4Ij5Lw7xyemVsPC90aD4KICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICA8dGg+QmV6ZWljaG51bmc8L3RoPgogICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6NzBweCI+SGludGVyZ3J1bmQ8L3Ro +PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6NzBweCI+ +U2NocmlmdDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPSJ3 +aWR0aDo4MHB4Ij5Wb3JzY2hhdTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +PHRoIHN0eWxlPSJ3aWR0aDo3MHB4Ij5QZXJzb25lbjwvdGg+CiAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDoxMjBweDt0ZXh0LWFsaWduOmNlbnRlciIgdGl0 +bGU9Ildlbm4gZGVha3RpdmllcnQsIHdlcmRlbiBQZXJzb25lbiBkaWVzZXIgR3J1cHBlIE5JQ0hU +IGluIGRlciBQbGFudW5nc2Fuc2ljaHQsIGltIFdvY2hlbnBsYW4gdW5kIGltIFBlcnMuIFBsYW4g +YW5nZXplaWd0IOKAlCBibGVpYmVuIGFiZXIgaW4gZGVyIFBlcnNvbmFsdmVyd2FsdHVuZyBwZmxl +Z2Jhci4iPkluIFBsYW51bmcgc2ljaHRiYXI8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgIDx0aCBzdHlsZT0id2lkdGg6MTMwcHg7dGV4dC1hbGlnbjpjZW50ZXIiIHRpdGxlPSJX +ZW5uIGFrdGl2aWVydCwgZMO8cmZlbiBQZXJzb25lbiBkaWVzZXIgR3J1cHBlIGltIFBlcnNvbmFs +LVRhYiBhbHMgQW5zcHJlY2hwYXJ0bmVyIG1hcmtpZXJ0IHdlcmRlbiAoZ2lsdCB6dXPDpHR6bGlj +aCB6dXIgRnVua3Rpb25zLUJlZGluZ3VuZykuIE1hcmtpZXJ0ZSBQZXJzb25lbiBlcnNjaGVpbmVu +IG1pdCBNYWlsLUJ1dHRvbiBpbSBJbmZvLUZlbnN0ZXIuIj5BbnNwcmVjaHBhcnRuZXIgbcO2Z2xp +Y2g8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6 +NzBweDt0ZXh0LWFsaWduOmNlbnRlciIgdGl0bGU9IlJlaWhlbmZvbGdlIGluIGRlciBQbGFudW5n +c2Fuc2ljaHQgw6RuZGVybiI+UmVpaGVuZm9sZ2U8L3RoPgogICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6NjBweCI+PC90aD4KICAgICAgICAgICAgICAgICAg +ICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAg +ICAgICAgICAgICAgICAgIDx0Ym9keSBpZD0iZ3J1cHBlbi10Ym9keSI+PC90Ym9keT4KICAgICAg +ICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9Im1h +cmdpbi10b3A6MTZweDtkaXNwbGF5OmZsZXg7Z2FwOjEwcHgiPgogICAgICAgICAgICAgICAgICAg +ICAgICA8YnV0dG9uIGlkPSJidG4tZ3J1cHBlbi1uZXUiIGNsYXNzPSJidG4gYnRuLWVyZm9sZyI+ +TmV1ZSBEaWVuc3RncnVwcGU8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRv +biBpZD0iYnRuLWdydXBwZW4tc3BlaWNoZXJuIiBjbGFzcz0iYnRuIGJ0bi1wcmltYWVyIj5EaWVu +c3RncnVwcGVuIHNwZWljaGVybjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgIDwvZGl2Pgog +ICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgPCEtLSBUYWI6IEZlaWVydGFn +ZSAmIEZlcmllbiAoTWVyZ2UgUGhhc2UgMSDigJQgYmVpZGUgS2FsZW5kZXItQmxvY2tlciBhbiBl +aW5lbSBPcnQpIC0tPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4tdGFiIHZlcnN0 +ZWNrdCIgaWQ9ImFkbWluLXRhYi1mZWllcnRhZ2UiPgogICAgICAgICAgICAgICAgICAgIDxkaXYg +Y2xhc3M9ImFkbWluLWtvcGYiPgogICAgICAgICAgICAgICAgICAgICAgICA8aDI+S2FsZW5kZXIg +4oCUIEZlaWVydGFnZSAmYW1wOyBGZXJpZW48L2gyPgogICAgICAgICAgICAgICAgICAgIDwvZGl2 +PgoKICAgICAgICAgICAgICAgICAgICA8IS0tIFN1Yi1UYWItTGVpc3RlOiB0cmVubnQgZGllIHp3 +ZWkgbG9naXNjaCBkaXNqdW5rdGVuCiAgICAgICAgICAgICAgICAgICAgICAgICBUaGVtZW4gdmlz +dWVsbC4gRGVmYXVsdDogRmVpZXJ0YWdlIGFrdGl2LiAtLT4KICAgICAgICAgICAgICAgICAgICA8 +bmF2IGNsYXNzPSJhZG1pbi1zdWJuYXYiIGFyaWEtbGFiZWw9IkthbGVuZGVyLVN1Yi1OYXZpZ2F0 +aW9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNz +PSJhZG1pbi1zdWJuYXYtYnRuIGFrdGl2IiBkYXRhLXN1YnRhYj0iZmVpZXJ0YWdlIj5GZWllcnRh +Z2U8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24i +IGNsYXNzPSJhZG1pbi1zdWJuYXYtYnRuIiBkYXRhLXN1YnRhYj0iZmVyaWVuIj5TY2h1bGZlcmll +bjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgIDwvbmF2PgoKICAgICAgICAgICAgICAgICAg +ICA8c2VjdGlvbiBjbGFzcz0iYWRtaW4tc2VrdGlvbiIgaWQ9ImFkbWluLXNla3Rpb24tZmVpZXJ0 +YWdlIiBkYXRhLXN1YnRhYi1zZWt0aW9uPSJmZWllcnRhZ2UiPgogICAgICAgICAgICAgICAgICAg ICAgICA8ZGl2IGNsYXNzPSJhZG1pbi1zZWt0aW9uLWtvcGYiPgogICAgICAgICAgICAgICAgICAg -ICAgICAgICAgPGgzPkRpZW5zdGdyYWRlPC9oMz4KICAgICAgICAgICAgICAgICAgICAgICAgICAg -IDxidXR0b24gaWQ9ImJ0bi1kaWVuc3RncmFkLW5ldSIgY2xhc3M9ImJ0biBidG4tZXJmb2xnIj5O -ZXVlciBEaWVuc3RncmFkPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pgog -ICAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9ImFkbWluLXRhYmVsbGUiIGlkPSJk -aWVuc3RncmFkZS10YWJlbGxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aGVhZD4K -ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAg -ICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6NjBweCI+UmFuZzwvdGg+CiAgICAgICAg -ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5CZXplaWNobnVuZzwvdGg+CiAgICAgICAg -ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6MTMwcHgiPkFrdGlv -bmVuPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAg -ICAgICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0 -Ym9keSBpZD0iZGllbnN0Z3JhZGUtdGJvZHkiPjwvdGJvZHk+CiAgICAgICAgICAgICAgICAgICAg -ICAgIDwvdGFibGU+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJhZG1pbi1oaW53 -ZWlzIj48ZW0+UmVpaGVuZm9sZ2UgcGVyIOKGkSDihpMgw6RuZGVybi4gSG9lY2hzdGVyIERpZW5z -dGdyYWQgenVlcnN0LjwvZW0+PC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGlk -PSJidG4tZGllbnN0Z3JhZGUtc3BlaWNoZXJuIiBjbGFzcz0iYnRuIGJ0bi1wcmltYWVyIiBzdHls -ZT0ibWFyZ2luLXRvcDoxMnB4Ij5EaWVuc3RncmFkZSBzcGVpY2hlcm48L2J1dHRvbj4KICAgICAg -ICAgICAgICAgICAgICA8L3NlY3Rpb24+CgogICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNs -YXNzPSJhZG1pbi1zZWt0aW9uIiBpZD0iYWRtaW4tc2VrdGlvbi1saXN0ZW4tZnVua3Rpb25lbiI+ -CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFkbWluLXNla3Rpb24ta29wZiI+ -CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDM+RnVua3Rpb25lbjwvaDM+CiAgICAgICAg -ICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tZnVua3Rpb24tbmV1IiBjbGFzcz0i -YnRuIGJ0bi1lcmZvbGciPk5ldWUgRnVua3Rpb248L2J1dHRvbj4KICAgICAgICAgICAgICAgICAg -ICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iYWRtaW4t -dGFiZWxsZSIgaWQ9ImZ1bmt0aW9uZW4tdGFiZWxsZSI+CiAgICAgICAgICAgICAgICAgICAgICAg -ICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAg -ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9IndpZHRoOjYwcHgiPlBvczwv -dGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5CZXplaWNobnVuZzwv -dGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6 -ODBweCIgdGl0bGU9IjAgPSBob2VjaHN0ZSBWZXJhbnR3b3J0dW5nLCA5OSA9IHVucmVsZXZhbnQu -IFBlcnNvbmVuIG1pdCBnbGVpY2hlbSBSYW5nIHdlcmRlbiBkdXJjaCBkaWUgcm9oZSBQb3NpdGlv -bnMtWmFobCBzb3J0aWVydC4iPlJhbmc8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAg -ICAgICAgICA8dGggc3R5bGU9IndpZHRoOjE0MHB4O3RleHQtYWxpZ246Y2VudGVyIiB0aXRsZT0i -V2VubiBkZWFrdGl2aWVydCwgd2VyZGVuIFBlcnNvbmVuIG1pdCBkaWVzZXIgRnVua3Rpb24gTklD -SFQgaW4gZGVyIFBsYW51bmdzYW5zaWNodCwgaW0gV29jaGVucGxhbiB1bmQgaW0gUGVycy4gUGxh -biBhbmdlemVpZ3Qg4oCUIGJsZWliZW4gYWJlciBpbiBkZXIgUGVyc29uYWx2ZXJ3YWx0dW5nIHBm -bGVnYmFyLiI+SW4gUGxhbnVuZyBzaWNodGJhcjwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAg -ICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6MTMwcHgiPkFrdGlvbmVuPC90aD4KICAgICAg -ICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAg -ICAgPC90aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keSBpZD0iZnVua3Rp -b25lbi10Ym9keSI+PC90Ym9keT4KICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAg -ICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9ImFkbWluLWhpbndlaXMiPjxlbT5SZWloZW5m -b2xnZSBwZXIg4oaRIOKGkyDDpG5kZXJuLjwvZW0+PC9wPgogICAgICAgICAgICAgICAgICAgICAg -ICA8YnV0dG9uIGlkPSJidG4tZnVua3Rpb25lbi1zcGVpY2hlcm4iIGNsYXNzPSJidG4gYnRuLXBy -aW1hZXIiIHN0eWxlPSJtYXJnaW4tdG9wOjEycHgiPkZ1bmt0aW9uZW4gc3BlaWNoZXJuPC9idXR0 -b24+CiAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPgogICAgICAgICAgICAgICAgPC9kaXY+ -CgoKICAgICAgICAgICAgICAgIDwhLS0gVGFiOiBFLU1haWwtVm9ybGFnZW4g4oCUIEthcnRlbi1M -YXlvdXQgKEZpbmRpbmcgQy43IC8gU3BlYyBGLjEpIC0tPgogICAgICAgICAgICAgICAgPGRpdiBj -bGFzcz0iYWRtaW4tdGFiIHZlcnN0ZWNrdCIgaWQ9ImFkbWluLXRhYi1lbWFpbHZvcmxhZ2VuIj4K -ICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1pbi1rb3BmIj4KICAgICAgICAgICAg -ICAgICAgICAgICAgPGgyPkUtTWFpbC1Wb3JsYWdlbjwvaDI+CiAgICAgICAgICAgICAgICAgICAg -PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRldGFpbHMgY2xhc3M9ImFkbWluLWluZm8iIGRh -dGEtaW5mby1rZXk9ImVtYWlsdm9ybGFnZW4iIG9wZW4+CiAgICAgICAgICAgICAgICAgICAgICAg -IDxzdW1tYXJ5PjxzcGFuIGNsYXNzPSJhZG1pbi1pbmZvLWNoZXYiPuKWuDwvc3Bhbj5Xb3p1IGRp -ZXNlIFZvcmxhZ2VuPzxzcGFuIGNsYXNzPSJhZG1pbi1pbmZvLWJhZGdlIj5BdWZrbGFwcGVuIC8g -WnVrbGFwcGVuPC9zcGFuPjwvc3VtbWFyeT4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBj -bGFzcz0iYWRtaW4taW5mby1ib2R5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPkhp -ZXIgd2VyZGVuIEJldHJlZmYgdW5kIFRleHQgYWxsZXIgRS1NYWlsLVZvcmxhZ2VuIGdlcGZsZWd0 -LiBWYXJpYWJsZW4gd2llIDxjb2RlPntkYXR1bX08L2NvZGU+IG9kZXIgPGNvZGU+e3BlcnNvbl9u -YW1lfTwvY29kZT4gd2VyZGVuIGJlaW0gw5ZmZm5lbiBkZXIgTWFpbCBhdXRvbWF0aXNjaCBkdXJj -aCBrb25rcmV0ZSBXZXJ0ZSBlcnNldHp0LjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAg -IDxwPjxzdHJvbmc+VmVyc2FuZCBhdXNzY2hsaWXDn2xpY2ggw7xiZXIgZGFzIFN0YW5kYXJkLU1h -aWxwcm9ncmFtbSAoT3V0bG9vayk8L3N0cm9uZz4g4oCUIGJlaW0gYXVzbMO2c2VuZGVuIEVyZWln -bmlzICh6LkIuIEVpbnRyYWcgZWluZXIgS3JhbmttZWxkdW5nKSDDtmZmbmV0IHNpY2ggZWluZSB2 -b3JhdXNnZWbDvGxsdGUgTWFpbCBtaXQgRW1wZsOkbmdlcm4sIEJldHJlZmYgdW5kIFRleHQuIER1 -IHByw7xmc3QgZGllIE1haWwgdW5kIHZlcnNjaGlja3N0IHNpZSBtYW51ZWxsIHBlciBLbGljayBh -dWYg4oCeU2VuZGVuIi4gS2VpbiBhdXRvbWF0aXNjaGVyIFZlcnNhbmQuPC9wPgogICAgICAgICAg -ICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5BdXRvLVRyaWdnZXIgYWt0aXZpZXJlbjwvc3Ry -b25nPiDigJQgaW0gRWRpdG9yLU1vZGFsIGVpbmVyIFZvcmxhZ2UgcHJvIFRyaWdnZXIgZWluc3Rl -bGxiYXIgKEFrdGl2aWVyZW4gKyBFbXBmw6RuZ2VyIHfDpGhsZW4pLiBTb2xhbmdlIGVpbiBUcmln -Z2VyIGRlYWt0aXZpZXJ0IGlzdCwgw7ZmZm5ldCBzaWNoIGJlaW0gRXJlaWduaXMga2VpbiBQb3B1 -cC48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPkRlZml6aXQtQnJp -ZWZpbmc8L3N0cm9uZz4g4oCUIHdpcmQgbWFudWVsbCBwZXIgQnV0dG9uIGltIFRhYiA8ZW0+UHLD -vGZ1bmc8L2VtPiBhdXNnZWzDtnN0IChrZWluIFNjaGVkdWxlcikuIERlciBCdXR0b24gw7ZmZm5l -dCBPdXRsb29rIG1pdCBlaW5lciDDnGJlcnNpY2h0IGFsbGVyIFVudGVyYmVzZXR6dW5nZW4gZGVy -IG7DpGNoc3RlbiA0IFdvY2hlbi48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pgog -ICAgICAgICAgICAgICAgICAgIDwvZGV0YWlscz4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGlk -PSJlbWFpbHZvcmxhZ2VuLWluaGFsdCI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgIDwhLS0g -U3VwcG9ydC1NYWlsLVZvcmxhZ2U6IG51ciBmdWVyIFBoaWxpcHAgUm9lc2dlbiBzaWNodGJhci4K -ICAgICAgICAgICAgICAgICAgICAgICAgIFdpcmQgcGVyIEpTIGluIGFwcC5qcyAvIGFkbWluLmpz -IGVpbmdlYmxlbmRldCwKICAgICAgICAgICAgICAgICAgICAgICAgIHdlbm4gWi5iZW51dHplciBt -aXQgTlcwNTM2MDkgbWF0Y2hlZC4gLS0+CiAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xh -c3M9ImFkbWluLXNla3Rpb24gdmVyc3RlY2t0IiBpZD0iYWRtaW4tc2VrdGlvbi1zdXBwb3J0bWFp -bCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFkbWluLXNla3Rpb24ta29w -ZiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDM+U3VwcG9ydC1NYWlsLVZvcmxhZ2Ug -KEltcHJlc3N1bXMtTW9kYWwpPC9oMz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFu -IGNsYXNzPSJyZWNodGUtZGlydHktaGlud2VpcyIgc3R5bGU9ImZvbnQtc3R5bGU6aXRhbGljIj5O -dXIgZsO8ciBQSEsgUm9lc2dlbiBzaWNodGJhcjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAg -ICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkZXRhaWxzIGNsYXNzPSJhZG1pbi1p -bmZvIiBkYXRhLWluZm8ta2V5PSJzdXBwb3J0bWFpbCI+CiAgICAgICAgICAgICAgICAgICAgICAg -ICAgICA8c3VtbWFyeT48c3BhbiBjbGFzcz0iYWRtaW4taW5mby1jaGV2Ij7ilrg8L3NwYW4+V2Fz -IGlzdCBkYXM/PHNwYW4gY2xhc3M9ImFkbWluLWluZm8tYmFkZ2UiPkF1ZmtsYXBwZW4gLyBadWts -YXBwZW48L3NwYW4+PC9zdW1tYXJ5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBj -bGFzcz0iYWRtaW4taW5mby1ib2R5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8 -cD5IaWVyIGthbm5zdCBkdSBkZW4gQm9keSBkZXIgU3VwcG9ydC1NYWlsIGFucGFzc2VuLCBkaWUg -YmVpbSBLbGljayBhdWYgPGVtPuKAnlN1cHBvcnQtQW5mcmFnZSBwZXIgRS1NYWlsIjwvZW0+IGlt -IEltcHJlc3N1bXMtTW9kYWwgdm9yYXVzZ2Vmw7xsbHQgd2lyZC4gUGxhaW4tVGV4dCwga2VpbiBI -VE1MIOKAlCBPdXRsb29rIMO8YmVybmltbXQncyAxOjEuPC9wPgogICAgICAgICAgICAgICAgICAg -ICAgICAgICAgICAgIDxwPjxzdHJvbmc+UGxhdHpoYWx0ZXI8L3N0cm9uZz4gKHdlcmRlbiBiZWlt -IFNlbmRlbiBhdXRvbWF0aXNjaCBlcnNldHp0KTo8L3A+CiAgICAgICAgICAgICAgICAgICAgICAg -ICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGNv -ZGU+e253X2tlbm51bmd9PC9jb2RlPiDigJQgV2luZG93cy1Vc2VyIGRlcyBBYnNlbmRlcnMgKHou -Jm5ic3A7Qi4gPGNvZGU+UE9MSVpFSVxOVzA1NTgwMTwvY29kZT4pPC9saT4KICAgICAgICAgICAg -ICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxjb2RlPntha3R1ZWxsZV9hbnNpY2h0fTwvY29k -ZT4g4oCUIFRhYiwgZGVuIGRlciBVc2VyIHp1bGV0enQgb2ZmZW4gaGF0dGU8L2xpPgogICAgICAg -ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGNvZGU+e2RhdHVtfTwvY29kZT4g4oCU -IGhldXRlLCA8Y29kZT5kZC5tbS5qampqPC9jb2RlPjwvbGk+CiAgICAgICAgICAgICAgICAgICAg -ICAgICAgICAgICAgICAgIDxsaT48Y29kZT57dWhyemVpdH08L2NvZGU+IOKAlCBqZXR6dCwgPGNv -ZGU+aGg6bW08L2NvZGU+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg -PGxpPjxjb2RlPnthdWZsb2VzdW5nfTwvY29kZT4g4oCUIFZpZXdwb3J0LCB6LiZuYnNwO0IuIDxj -b2RlPjE5MjB4MTA4MDwvY29kZT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg -ICAgICA8bGk+PGNvZGU+e2FwcF9qYWhyfTwvY29kZT4g4oCUIFdlcnQgYXVzIGFkbWluLmpzb248 -L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGNvZGU+e2Jyb3dz -ZXJ9PC9jb2RlPiDigJQgQnJvd3Nlci1Vc2VyLUFnZW50IChtYXggMTIwIFplaWNoZW4pPC9saT4K -ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAg -ICAgICAgICAgICAgIDxwPjxzdHJvbmc+RW1wZsOkbmdlciB1bmQgQmV0cmVmZjwvc3Ryb25nPiBz -aW5kIGhhcnRjb2RpZXJ0ICg8Y29kZT5waGlsaXBwLnJvZXNnZW5AcG9saXplaS5ucncuZGU8L2Nv -ZGU+IC8gPGNvZGU+VkkzIERHTCBQbGFudW5nIC0gRG9ydG11bmQ8L2NvZGU+KSDigJQgbmljaHQg -w7xiZXIgZGllc2VuIEVkaXRvciDDpG5kZXJiYXIuPC9wPgogICAgICAgICAgICAgICAgICAgICAg -ICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGV0YWlscz4KICAgICAgICAg -ICAgICAgICAgICAgICAgPHRleHRhcmVhIGlkPSJzdXBwb3J0bWFpbC10ZXh0IiBjbGFzcz0iZm9y -bS1pbnB1dCIgcm93cz0iMjIiIHN0eWxlPSJ3aWR0aDoxMDAlO2ZvbnQtZmFtaWx5OnVpLW1vbm9z -cGFjZSxTRk1vbm8tUmVndWxhcixNZW5sbyxDb25zb2xhcyxtb25vc3BhY2U7Zm9udC1zaXplOjEy -cHg7bGluZS1oZWlnaHQ6MS41IiBwbGFjZWhvbGRlcj0iKGxlZXIgPSBlaW5nZWJhdXRlciBEZWZh -dWx0IHdpcmQgdmVyd2VuZGV0KSI+PC90ZXh0YXJlYT4KICAgICAgICAgICAgICAgICAgICAgICAg -PGRpdiBzdHlsZT0ibWFyZ2luLXRvcDoxMHB4O2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50 -ZXI7Z2FwOjEwcHg7ZmxleC13cmFwOndyYXAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAg -PGJ1dHRvbiBpZD0iYnRuLXN1cHBvcnRtYWlsLXNwZWljaGVybiIgY2xhc3M9ImJ0biBidG4tcHJp -bWFlciI+Vm9ybGFnZSBzcGVpY2hlcm48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAg -ICAgIDxidXR0b24gaWQ9ImJ0bi1zdXBwb3J0bWFpbC1kZWZhdWx0IiBjbGFzcz0iYnRuIGJ0bi1z -ZWsgYnRuLWtsZWluIj5BdWYgRGVmYXVsdCB6dXLDvGNrc2V0emVuPC9idXR0b24+CiAgICAgICAg -ICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tc3VwcG9ydG1haWwtdm9yc2NoYXUi -IGNsYXNzPSJidG4gYnRuLXNlayBidG4ta2xlaW4iIHRpdGxlPSJPdXRsb29rIG1pdCBha3R1ZWxs -ZXIgVm9ybGFnZSArIExpdmUtV2VydGVuIMO2ZmZuZW4iPk91dGxvb2stVm9yc2NoYXUgw7ZmZm5l -bjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gaWQ9InN1cHBvcnRt -YWlsLWRpcnR5LWhpbndlaXMiIGNsYXNzPSJyZWNodGUtZGlydHktaGlud2VpcyIgc3R5bGU9ImRp -c3BsYXk6bm9uZSI+4pePIFVuZ2VzcGVpY2hlcnRlIMOEbmRlcnVuZ2VuPC9zcGFuPgogICAgICAg -ICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+CiAg -ICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICA8IS0tIFRhYjogTWl0dGVpbHVu -Z2VuIChTcHJpbnQgRC0zYywgMjAyNi0wNS0yOSkg4oCUIFNVLW9ubHkuCiAgICAgICAgICAgICAg -ICAgICAgIFZvbSBTdXBlclVzZXIgZ2VwZmxlZ3RlIE1vZGFsZS1IaW53ZWlzZSBhbiBQZXJzb25l -bi8KICAgICAgICAgICAgICAgICAgICAgR3J1cHBlbi9Sb2xsZW4gbWl0IFRyaWdnZXIgKyBBbmhh -ZW5nZW4uIEtvbXBsZXR0ZSBVSQogICAgICAgICAgICAgICAgICAgICB3aXJkIHp1ciBMYXVmemVp -dCBhdXMganMvYWRtaW5fbWl0dGVpbHVuZ2VuLmpzIGdlcmVuZGVydC4gLS0+CiAgICAgICAgICAg -ICAgICA8ZGl2IGNsYXNzPSJhZG1pbi10YWIgdmVyc3RlY2t0IiBpZD0iYWRtaW4tdGFiLW1pdHRl -aWx1bmdlbiI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4ta29wZiI+CiAg -ICAgICAgICAgICAgICAgICAgICAgIDxoMj5NaXR0ZWlsdW5nZW48L2gyPgogICAgICAgICAgICAg -ICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkZXRhaWxzIGNsYXNzPSJhZG1pbi1p -bmZvIiBkYXRhLWluZm8ta2V5PSJtaXR0ZWlsdW5nZW4iPgogICAgICAgICAgICAgICAgICAgICAg -ICA8c3VtbWFyeT48c3BhbiBjbGFzcz0iYWRtaW4taW5mby1jaGV2Ij7ilrg8L3NwYW4+V2FzIHNp -bmQgTWl0dGVpbHVuZ2VuPzxzcGFuIGNsYXNzPSJhZG1pbi1pbmZvLWJhZGdlIj5BdWZrbGFwcGVu -IC8gWnVrbGFwcGVuPC9zcGFuPjwvc3VtbWFyeT4KICAgICAgICAgICAgICAgICAgICAgICAgPGRp -diBjbGFzcz0iYWRtaW4taW5mby1ib2R5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxw -PjxzdHJvbmc+V296dT88L3N0cm9uZz4gU3VwZXJVc2VyIGvDtm5uZW4gaGllciBIaW53ZWlzZSBm -w7xyIGF1c2dld8OkaGx0ZSBQZXJzb25lbiwgR3J1cHBlbiBvZGVyIFJvbGxlbiBhbmxlZ2VuLiBE -aWVzZSBlcnNjaGVpbmVuIGJlaW0gbsOkY2hzdGVuIEFwcC1TdGFydCBhbHMgTW9kYWwtU3RhY2sg -KG9iZW4gZHVyY2hnZWhlbmQsIG9kZXIgZWlubWFsIHBybyBUYWcg4oCUIGplIG5hY2ggVHJpZ2dl -cikuPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5FbXBmw6RuZ2Vy -PC9zdHJvbmc+IHNpbmQga29tYmluaWVyYmFyOiBlaW56ZWxuZSBQZXJzb25lbiwgZ2FuemUgRGll -bnN0Z3J1cHBlbiwgUm9sbGVuIChER0wvV0RGL+KApiwgU1UsIEdlc2FtdHZlcmFudHdvcnRsaWNo -KSBvZGVyIOKAnkFsbGUiIChqZWRlciBlaW5nZWxvZ2d0ZSBVc2VyKS48L3A+CiAgICAgICAgICAg -ICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPlRyaWdnZXI6PC9zdHJvbmc+IDxlbT5laW5tYWw8 -L2VtPiA9IFVzZXIgc2llaHQgZGllIE1pdHRlaWx1bmcgZ2VuYXUgZWluIE1hbCB1bmQgbmllIHdp -ZWRlci4gPGVtPmplZGVzIE1hbDwvZW0+ID0gYmVpIGplZGVtIExvZ2luIChtYXguIDHDlyBwcm8g -S2FsZW5kZXJ0YWcpLiA8ZW0+YmlzIERhdHVtPC9lbT4gPSB0w6RnbGljaCBiaXMgenVtIFN0aWNo -dGFnLCBkYW5hY2ggbmllIHdpZWRlci48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8 -cD48c3Ryb25nPkFuaMOkbmdlOjwvc3Ryb25nPiBlaW4gVGh1bWJuYWlsLUJpbGQgKG1heC4gMiBN -QiwgSlBHL1BORy9XZWJQKSB1bmQvb2RlciBlaW4gUERGIChtYXguIDEwIE1CKSBrw7ZubmVuIGJl -aWdlZsO8Z3Qgd2VyZGVuLiBLbGljayBhdWYgZGVuIEFuaGFuZyDDtmZmbmV0IGlobiBpbSBWb2xs -YmlsZC1TdWItTW9kYWwuPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9u -Zz5XYXMncyBuZXUgbWFjaHQ6PC9zdHJvbmc+IGVpbmUgZ2xvYmFsZSBNaXR0ZWlsdW5nIG1pdCBF -bXBmw6RuZ2VyIOKAnkFsbGUiIHVuZCBUcmlnZ2VyIOKAnmVpbm1hbCIgaXN0IGVmZmVrdGl2IGVp -biDigJ5XaGF0J3MgTmV3Ii1FaW50cmFnLjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9k -aXY+CiAgICAgICAgICAgICAgICAgICAgPC9kZXRhaWxzPgogICAgICAgICAgICAgICAgICAgIDxk -aXYgY2xhc3M9ImFkbWluLWtvcGYiIHN0eWxlPSJtYXJnaW4tdG9wOjhweDtqdXN0aWZ5LWNvbnRl -bnQ6ZmxleC1lbmQiPgogICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tbWl0 -dGVpbHVuZy1uZXUiIGNsYXNzPSJidG4gYnRuLWVyZm9sZyI+KyBOZXVlIE1pdHRlaWx1bmc8L2J1 -dHRvbj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2 -IGlkPSJtaXR0ZWlsdW5nZW4taW5oYWx0Ij48L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgoK -ICAgICAgICAgICAgICAgIDwhLS0gVGFiOiBSZWNodGUgJiBTaWNodGJhcmtlaXQgKE1lcmdlIOKA -lCBTdXBlclVzZXIgKyBGYWNoYXVmc2ljaHQgKyBTaWNodGJhcmtlaXQpIC0tPgogICAgICAgICAg -ICAgICAgPGRpdiBjbGFzcz0iYWRtaW4tdGFiIHZlcnN0ZWNrdCIgaWQ9ImFkbWluLXRhYi1zdXBl -cnVzZXIiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFkbWluLWtvcGYiPgogICAg -ICAgICAgICAgICAgICAgICAgICA8aDI+UmVjaHRlICZhbXA7IFNpY2h0YmFya2VpdDwvaDI+CiAg -ICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJyZWNodGUtdGFiLXN1YiI+Um9sbGVuLVNs -b3RzIG1pdCBrb25maWd1cmllcmJhcmVyIFNlaGVuLS9CZWFyYmVpdGVuLVNpY2h0YmFya2VpdC4g -U3VwZXJVc2VyIHN0aWNodCBhbGxlIGFuZGVyZW4g4oCUIHNpZSBzZWhlbiB1bmQga8O2bm5lbiBp -bW1lciBhbGxlcy4gV2VyIGluIGtlaW5lciBkaWVzZXIgTGlzdGVuIHN0ZWh0LCBzaWVodCB3ZWRl -ciBTdGF0aXN0aWsgbm9jaCBMb2didWNoIG5vY2ggQWRtaW5pc3RyYXRpb24uPC9wPgogICAgICAg -ICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0i -YWRtaW4tc2VrdGlvbiByZWNodGUtY2FyZCByZWNodGUtY2FyZC1zdSIgaWQ9ImFkbWluLXNla3Rp -b24tc3VwZXJ1c2VyIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRldGFpbHMgY2xhc3M9InJl -Y2h0ZS1yb2xsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzdW1tYXJ5IGNsYXNzPSJyZWNo -dGUtcm9sbGUtc3VtbWFyeSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFz -cz0icmVjaHRlLWNhcmQtaWNvbiIgYXJpYS1oaWRkZW49InRydWUiPvCfm6E8L3NwYW4+CiAgICAg -ICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icmVjaHRlLXJvbGxlLXRpdGVsIj48 -c3Ryb25nPlN1cGVyVXNlcjwvc3Ryb25nPjxzcGFuIGNsYXNzPSJyZWNodGUtY2FyZC1zdWIiPlZv -bGx6dWdyaWZmIGF1ZiBhbGxlIEZ1bmt0aW9uZW4uIFZlcndhbHRldCBhbmRlcmUgUm9sbGVuLjwv -c3Bhbj48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icmVj -aHRlLXJvbGxlLWNoZXYiIGFyaWEtaGlkZGVuPSJ0cnVlIj7ilrg8L3NwYW4+CiAgICAgICAgICAg -ICAgICAgICAgICAgIDwvc3VtbWFyeT4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFz -cz0icmVjaHRlLXJvbGxlLWJvZHkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBj -bGFzcz0icmVjaHRlLXJvbGxlLWFrdGlvbiI+PGJ1dHRvbiBpZD0iYnRuLXN1cGVydXNlci1uZXUi -IGNsYXNzPSJidG4gYnRuLWVyZm9sZyI+TmV1ZXIgU3VwZXJVc2VyPC9idXR0b24+PC9kaXY+CiAg -ICAgICAgICAgICAgICAgICAgICAgIDxkZXRhaWxzIGNsYXNzPSJhZG1pbi1pbmZvIiBkYXRhLWlu -Zm8ta2V5PSJzdXBlcnVzZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN1bW1hcnk+ -PHNwYW4gY2xhc3M9ImFkbWluLWluZm8tY2hldiI+4pa4PC9zcGFuPkhpbndlaXNlIHp1IFN1cGVy -VXNlcm48c3BhbiBjbGFzcz0iYWRtaW4taW5mby1iYWRnZSI+QXVma2xhcHBlbiAvIFp1a2xhcHBl +ICAgICAgICAgPGgzPkZlaWVydGFnZTwvaDM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8 +YnV0dG9uIGlkPSJidG4tZmVpZXJ0YWctbmV1IiBjbGFzcz0iYnRuIGJ0bi1lcmZvbGciPk5ldWVy +IEZlaWVydGFnPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAg +ICAgICAgICAgICAgICAgICA8ZGV0YWlscyBjbGFzcz0iYWRtaW4taW5mbyIgZGF0YS1pbmZvLWtl +eT0iZmVpZXJ0YWdlIiBvcGVuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN1bW1hcnk+ +PHNwYW4gY2xhc3M9ImFkbWluLWluZm8tY2hldiI+4pa4PC9zcGFuPkhpbndlaXNlIHp1IEZlaWVy +dGFnZW48c3BhbiBjbGFzcz0iYWRtaW4taW5mby1iYWRnZSI+QXVma2xhcHBlbiAvIFp1a2xhcHBl bjwvc3Bhbj48L3N1bW1hcnk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNz PSJhZG1pbi1pbmZvLWJvZHkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxz -dHJvbmc+V2FzIGlzdCBlaW4gU3VwZXJVc2VyPzwvc3Ryb25nPiBTdXBlclVzZXIgaGFiZW4gdW5l -aW5nZXNjaHLDpG5rdGVuIFp1Z3JpZmYgYXVmIGFsbGUgQWRtaW5pc3RyYXRpb25zZnVua3Rpb25l -biwgZWluc2NobGllw59saWNoIGRlciBWZXJ3YWx0dW5nIGFuZGVyZXIgU3VwZXJVc2VyLCBkZW0g -U2V0emVuIHZvbiBTb25kZXJ0ZXJtaW5lLUhpbndlaXNlbiBkaXJla3QgaW4gZGVyIFBsYW51bmcg -dW5kIGRlciBQZmxlZ2UgZGVyIGdsb2JhbGVuIEVpbnN0ZWxsdW5nZW4uPC9wPgogICAgICAgICAg -ICAgICAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+U2ljaGVyaGVpdHNoaW53ZWlzOjwvc3Ry -b25nPiBOdXIgYmVzdGVoZW5kZSBTdXBlclVzZXIga8O2bm5lbiBkaWVzZSBMaXN0ZSBiZWFyYmVp -dGVuLiBEYW1pdCB3aXJkIHZlcmhpbmRlcnQsIGRhc3MgQWRtaW4tUmVjaHRlIHZlcmxvcmVuIGdl -aGVuIG9kZXIgdW5iZXJlY2h0aWd0IGVyd2VpdGVydCB3ZXJkZW4uIDxiPk1pbmRlc3RlbnMgZWlu -IFN1cGVyVXNlciBtdXNzIGltbWVyIGVpbmdldHJhZ2VuIHNlaW48L2I+IOKAlCBzb25zdCBpc3Qg -bmllbWFuZCBtZWhyIGluIGRlciBMYWdlLCBhZG1pbmlzdHJhdGl2ZSDDhG5kZXJ1bmdlbiB2b3J6 -dW5laG1lbi48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5G -ZWxkZXI6PC9zdHJvbmc+IE5hbWUgKEtsYXJ0ZXh0IHp1ciBJZGVudGlmaWthdGlvbiksIE5XLUtl -bm51bmcgKFdpbmRvd3MtQmVudXR6ZXJuYW1lLCB3aXJkIGF1dG9tYXRpc2NoIGJlaW0gTG9naW4g -YWJnZWdsaWNoZW4pLCBPRSAoT3JnYW5pc2F0aW9uc2VpbmhlaXQpLCBUZWxlZm9uL0R1cmNod2Fo -bC48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5BbnplaWdl -IGltIEluZm8tRmVuc3Rlcjo8L3N0cm9uZz4gQWxsZSBTdXBlclVzZXIgd2VyZGVuIGltIEluZm9y -bWF0aW9uc2ZlbnN0ZXIgKEJ1dHRvbiDigJ7ihLkiIG9iZW4gcmVjaHRzKSBhbHMgQW5zcHJlY2hw -YXJ0bmVyIGF1ZmdlZsO8aHJ0LjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2 -PgogICAgICAgICAgICAgICAgICAgICAgICA8L2RldGFpbHM+CiAgICAgICAgICAgICAgICAgICAg -ICAgIDxkaXYgY2xhc3M9ImluZm8tYm94IHJlY2h0ZS1ub3RmYWxsLWJveCI+CiAgICAgICAgICAg -ICAgICAgICAgICAgICAgICA8c3Ryb25nPk5vdGZhbGwtUsO8Y2tmYWxsZWJlbmU6PC9zdHJvbmc+ -IERpZSBOVy1LZW5udW5nIDxjb2RlPk5XMDUzNjA5PC9jb2RlPiAoUEhLIFJvZXNnZW4pIGlzdCBp -bSBTZXJ2ZXIgaGFydCBhbHMgU3VwZXJVc2VyIGhpbnRlcmxlZ3QgdW5kIGdpbHQgYXVjaCBkYW5u -LCB3ZW5uIGRpZSBTdXBlclVzZXItTGlzdGUgbGVlciBvZGVyIHVubGVzYmFyIGlzdC4KICAgICAg -ICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSBj -bGFzcz0iYWRtaW4tdGFiZWxsZSIgaWQ9InN1cGVydXNlci10YWJlbGxlIj4KICAgICAgICAgICAg +dHJvbmc+V2FzIHBhc3NpZXJ0IG1pdCBGZWllcnRhZ2VuPzwvc3Ryb25nPiBBbiBha3RpdmVuIEZl +aWVydGFnZW4gd2lyZCBkaWUgZW50c3ByZWNoZW5kZSBEYXR1bXMtU3BhbHRlIGltIFBsYW51bmdz +cmFzdGVyIGZhcmJsaWNoIGhlcnZvcmdlaG9iZW4gdW5kIGluIGRlciBBbmxhc3MtWmVpbGUgbWl0 +IGRlciBCZXplaWNobnVuZyBkZXMgRmVpZXJ0YWdzIHZlcnNlaGVuLiBEaWUgU3RhdGlzdGlrLUF1 +c3dlcnR1bmcg4oCeRmVpZXJ0YWdzLURpZW5zdGUiIGJlcsO8Y2tzaWNodGlndCBudXIgVGFnZSBh +dXMgZGllc2VyIExpc3RlLCBkZXJlbiA8ZW0+QWt0aXY8L2VtPi1Iw6RrY2hlbiBnZXNldHp0IGlz +dC48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5LYXRlZ29y +aWVuOjwvc3Ryb25nPiBOZWJlbiBkZW4gZ2VzZXR6bGljaGVuIEZlaWVydGFnZW4gKFN0YW5kYXJk +LCBOUlcpIHNpbmQgasO8ZGlzY2hlLCBtdXNsaW1pc2NoZSB1bmQgdMO8cmtpc2NoZSBGZWllcnRh +Z2UgYWxzIERhdGVuYmFzaXMgYmVyZWl0cyBoaW50ZXJsZWd0IOKAlCBmw7xyIDIwMjYgYmlzIDIw +MzUuIERpZXNlIHNpbmQgcGVyIERlZmF1bHQgZGVha3RpdmllcnQ7IHBlciA8ZW0+QWt0aXY8L2Vt +Pi1Iw6RrY2hlbiBsYXNzZW4gc2llIHNpY2ggZWluemVsbiBlaW5ibGVuZGVuLiBKZWRlIEthdGVn +b3JpZSBiZWtvbW10IGluIGRlciBBbmxhc3MtWmVpbGUgZWluZSBlaWdlbmUgRmFyYmUgKGdlc2V0 +emxpY2ggPSBibGF1LCBqw7xkaXNjaCA9IGxpbGEsIG11c2xpbWlzY2ggPSBncsO8biwgdMO8cmtp +c2NoID0gcm90KS48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9u +Zz5GaWx0ZXI6PC9zdHJvbmc+IMOcYmVyIGRlciBUYWJlbGxlIG5hY2ggS2F0ZWdvcmllLCBKYWhy +IG9kZXIg4oCebnVyIGFrdGl2ZSIgZmlsdGVybiDigJQgZGllIHZvbGxlIExpc3RlIHVtZmFzc3Qg +cnVuZCAzMTIgRWludHLDpGdlLjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8 +cD48c3Ryb25nPldpY2h0aWcgKEhlcnZvcmhlYnVuZyk6PC9zdHJvbmc+IERpZSBDaGVja2JveCBp +biBkZXIgU3BhbHRlIOKAnldpY2h0aWciIG1hcmtpZXJ0IGJlc29uZGVycyBoZXJ2b3J6dWhlYmVu +ZGUgRmVpZXJ0YWdlICh6LkIuIEhlaWxpZ2FiZW5kLCBTaWx2ZXN0ZXIsIFdlaWhuYWNodGVuKS4g +U29sY2hlIFRhZ2UgYmVrb21tZW4gaW0gUGxhbnVuZ3MtSGVhZGVyIGVpbmUgdmVyc3TDpHJrdGUg +RWluZsOkcmJ1bmcgKHJvdCBtaXQgZ29sZGVuZW0gUmFobWVuKSB1bmQgw7xiZXJsYWdlcm4gZGll +IEthdGVnb3JpZS1GYXJiZS4gRGllIFRhYmVsbGVuemVpbGUgaW0gQWRtaW4gZXJow6RsdCBlaW5l +IHLDtnRsaWNoZSBUw7ZudW5nLjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8 +cD48c3Ryb25nPldlY2hzZWx3aXJrdW5nIG1pdCBTb25kZXJ0ZXJtaW5lOjwvc3Ryb25nPiBMaWVn +dCB6dXPDpHR6bGljaCBlaW4gU29uZGVydGVybWluIGFuIGVpbmVtIEZlaWVydGFnLCBibGVpYnQg +ZGVyIEZlaWVydGFncy1IaW53ZWlzIHNpY2h0YmFyLCBkaWUgWmVsbGUgaXN0IGFiZXIga2xpY2ti +YXIgdW5kIHplaWd0IEhpbndlaXMtVGV4dCBrb21iaW5pZXJ0IGFuLjwvcD4KICAgICAgICAgICAg +ICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2RldGFpbHM+ +CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9ImZlaWVydGFnZS1maWx0ZXIiIGNsYXNz +PSJmZWllcnRhZ2UtZmlsdGVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5L +YXRlZ29yaWU6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBpZD0iZmVp +ZXJ0YWdlLWZpbHRlci1rYXRlZ29yaWUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICA8b3B0aW9uIHZhbHVlPSJhbGxlIj5BbGxlPC9vcHRpb24+CiAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9Imdlc2V0emxpY2giPkdlc2V0emxpY2gg +KE5SVyk8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlv +biB2YWx1ZT0ianVlZGlzY2giPkrDvGRpc2NoPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9Im11c2xpbWlzY2giPk11c2xpbWlzY2g8L29w +dGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0i +dHVlcmtpc2NoIj5Uw7xya2lzY2g8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICA8L3NlbGVjdD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+CiAgICAg +ICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+SmFocjoKICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICA8c2VsZWN0IGlkPSJmZWllcnRhZ2UtZmlsdGVyLWphaHIiPjwvc2VsZWN0Pgog +ICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAg +ICAgICAgIDxsYWJlbCBzdHlsZT0ibWFyZ2luLWxlZnQ6YXV0bztkaXNwbGF5OmlubGluZS1mbGV4 +O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NnB4Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJmZWllcnRhZ2UtZmlsdGVyLW51ci1ha3Rp +diI+IG51ciBha3RpdmUgemVpZ2VuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVs +PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAg +PHRhYmxlIGNsYXNzPSJhZG1pbi10YWJlbGxlIiBpZD0iZmVpZXJ0YWdlLXRhYmVsbGUiPgogICAg +ICAgICAgICAgICAgICAgICAgICAgICAgPHRoZWFkPjx0cj4KICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICA8dGggc3R5bGU9IndpZHRoOjEzMHB4Ij5EYXR1bTwvdGg+CiAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPSJtYXgtd2lkdGg6MjYwcHgiPkJlemVpY2hu +dW5nPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9IndpZHRo +OjYwcHg7dGV4dC1hbGlnbjpjZW50ZXIiIHRpdGxlPSJQcm8gRWludHJhZyB3w6RobGJhcjsgbGVl +ciA9IEthdGVnb3JpZS1EZWZhdWx0Ij5JY29uPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICA8dGggc3R5bGU9IndpZHRoOjE3MHB4Ij5LYXRlZ29yaWU8L3RoPgogICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6ODBweDt0ZXh0LWFsaWduOmNl +bnRlciI+QWt0aXY8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHls +ZT0id2lkdGg6MTQwcHg7dGV4dC1hbGlnbjpjZW50ZXIiPldpY2h0aWc8L3RoPgogICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6MTYwcHgiPkFrdGlvbmVuPC90 +aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+PC90aGVhZD4KICAgICAgICAgICAg +ICAgICAgICAgICAgICAgIDx0Ym9keSBpZD0iZmVpZXJ0YWdlLXRib2R5Ij48L3Rib2R5PgogICAg +ICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgICAgICAgICA8YnV0 +dG9uIGlkPSJidG4tZmVpZXJ0YWdlLXNwZWljaGVybiIgY2xhc3M9ImJ0biBidG4tcHJpbWFlciIg +c3R5bGU9Im1hcmdpbi10b3A6MTJweCI+RmVpZXJ0YWdlIHNwZWljaGVybjwvYnV0dG9uPgogICAg +ICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4KCiAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24g +Y2xhc3M9ImFkbWluLXNla3Rpb24gdmVyc3RlY2t0IiBpZD0iYWRtaW4tc2VrdGlvbi1mZXJpZW4i +IGRhdGEtc3VidGFiLXNla3Rpb249ImZlcmllbiI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxk +aXYgY2xhc3M9ImFkbWluLXNla3Rpb24ta29wZiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAg +ICA8aDM+U2NodWxmZXJpZW48L2gzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRv +biBpZD0iYnRuLWZlcmllbi1uZXUiIGNsYXNzPSJidG4gYnRuLWVyZm9sZyI+TmV1ZXIgRmVyaWVu +emVpdHJhdW08L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAg +ICAgICAgICAgICAgICAgIDxkZXRhaWxzIGNsYXNzPSJhZG1pbi1pbmZvIiBkYXRhLWluZm8ta2V5 +PSJmZXJpZW4iIG9wZW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3VtbWFyeT48c3Bh +biBjbGFzcz0iYWRtaW4taW5mby1jaGV2Ij7ilrg8L3NwYW4+SGlud2Vpc2UgenUgRmVyaWVuPHNw +YW4gY2xhc3M9ImFkbWluLWluZm8tYmFkZ2UiPkF1ZmtsYXBwZW4gLyBadWtsYXBwZW48L3NwYW4+ +PC9zdW1tYXJ5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4t +aW5mby1ib2R5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPldh +cnVtIEZlcmllbiBlcmZhc3Nlbj88L3N0cm9uZz4gTlJXLVNjaHVsZmVyaWVuIHdlcmRlbiBpbSBX +b2NoZW5wbGFuIG1pdCBkZW0gU3ltYm9sIPCfj5bvuI8gdW5kIGRlciBCZXplaWNobnVuZyBtYXJr +aWVydDsgaW4gZGVyIFBsYW51bmdzYW5zaWNodCBsZWd0IHNpY2ggZWluZSBkdXJjaGdlaGVuZGUg +Z3LDvG5lIEJhciDDvGJlciBkZW4gWmVpdHJhdW0uIERhcyBoaWxmdCBiZWkgZGVyIFVybGF1YnN2 +ZXJnYWJlIHVuZCBCZXNldHp1bmdzcGxhbnVuZywgYmVzb25kZXJzIGJlaSBQZXJzb25hbCBtaXQg +c2NodWxwZmxpY2h0aWdlbiBLaW5kZXJuLjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICA8cD48c3Ryb25nPlplaXRyYXVtLUVpbnRyw6RnZTo8L3N0cm9uZz4gRmVyaWVuIHdlcmRl +biBtaXQgPGI+Vm9uPC9iPi0gdW5kIDxiPkJpczwvYj4tRGF0dW0gZXJmYXNzdCAoaW5rbHVzaXZl +IGJlaWRlciBUYWdlKS4gQmVpc3BpZWw6IE9zdGVyZmVyaWVuIDMwLjAzLuKAkzExLjA0LiBEaWUg +PGI+QmV6ZWljaG51bmc8L2I+IHdpcmQgaW0gVG9vbHRpcCB1bmQgaW4gZGVyIFdvY2hlbnBsYW4t +TWFya2llcnVuZyBhbmdlemVpZ3QuPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +IDxwPjxzdHJvbmc+UGZsZWdlOjwvc3Ryb25nPiBFaW5tYWwgcHJvIEphaHIgYWt0dWFsaXNpZXJl +bi4gRGllIG9mZml6aWVsbGVuIE5SVy1GZXJpZW50ZXJtaW5lIHNpbmQgYmVpbSBTY2h1bG1pbmlz +dGVyaXVtIE5SVyB6dSBmaW5kZW4uIMOcYmVybGFwcGVuZGUgRWludHLDpGdlIHdlcmRlbiB2b20g +U3lzdGVtIGFremVwdGllcnQ7IFByaW9yaXTDpHQ6IEZlaWVydGFnID4gRmVyaWVuID4gV29jaGVu +ZW5kZSA+IE5vcm1hbC48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAg +ICAgICAgICAgICAgICAgICAgICAgPC9kZXRhaWxzPgogICAgICAgICAgICAgICAgICAgICAgICA8 +dGFibGUgY2xhc3M9ImFkbWluLXRhYmVsbGUiIGlkPSJmZXJpZW4tdGFiZWxsZSI+CiAgICAgICAg +ICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+PHRyPjx0aD5Wb248L3RoPjx0aD5CaXM8L3RoPjx0 +aD5CZXplaWNobnVuZzwvdGg+PHRoIHN0eWxlPSJ3aWR0aDo4MHB4Ij5Ba3Rpb25lbjwvdGg+PC90 +cj48L3RoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRib2R5IGlkPSJmZXJpZW4t +dGJvZHkiPjwvdGJvZHk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAg +ICAgICAgICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1mZXJpZW4tc3BlaWNoZXJuIiBjbGFzcz0i +YnRuIGJ0bi1wcmltYWVyIiBzdHlsZT0ibWFyZ2luLXRvcDoxMnB4Ij5GZXJpZW4gc3BlaWNoZXJu +PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPgogICAgICAgICAgICAgICAg +PC9kaXY+CgoKICAgICAgICAgICAgICAgIDwhLS0gVGFiOiBTb25kZXJ0ZXJtaW5lIC0tPgogICAg +ICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4tdGFiIHZlcnN0ZWNrdCIgaWQ9ImFkbWluLXRh +Yi1zb25kZXJ0ZXJtaW5lIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1pbi1r +b3BmIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGgyPlNvbmRlcnRlcm1pbmUgJmFtcDsgSGlu +d2Vpc2U8L2gyPgogICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tc29uZGVy +dGVybWluLW5ldSIgY2xhc3M9ImJ0biBidG4tZXJmb2xnIj5OZXVlciBIaW53ZWlzPC9idXR0b24+ +CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgIDxkZXRhaWxz +IGNsYXNzPSJhZG1pbi1pbmZvIiBkYXRhLWluZm8ta2V5PSJzb25kZXJ0ZXJtaW5lIiBvcGVuPgog +ICAgICAgICAgICAgICAgICAgICAgICA8c3VtbWFyeT48c3BhbiBjbGFzcz0iYWRtaW4taW5mby1j +aGV2Ij7ilrg8L3NwYW4+SGlud2Vpc2UgenUgU29uZGVydGVybWluZW48c3BhbiBjbGFzcz0iYWRt +aW4taW5mby1iYWRnZSI+QXVma2xhcHBlbiAvIFp1a2xhcHBlbjwvc3Bhbj48L3N1bW1hcnk+CiAg +ICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFkbWluLWluZm8tYm9keSI+CiAgICAg +ICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPldhcyBpc3QgZGFzPzwvc3Ryb25nPiBT +b25kZXJ0ZXJtaW5lIHNpbmQgSGlud2Vpc2Ugb2RlciBXYXJudW5nZW4sIGRpZSBhbiBlaW5lbSBi +ZXN0aW1tdGVuIFRhZyAob2RlciBaZWl0cmF1bSkgZsO8ciBhbGxlIE51dHplciBzaWNodGJhciB3 +ZXJkZW4g4oCUIHouQi4gVmVyYW5zdGFsdHVuZ2VuLCBlcmjDtmh0ZXIgUGVyc29uYWxiZWRhcmYs +IHdpY2h0aWdlIEZyaXN0ZW4sIFNwZXJydGVybWluZSwgRmVpZXJuIG9kZXIgRXJpbm5lcnVuZ2Vu +LjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+V2llIHNlaGVuIGRp +ZSBOdXR6ZXIgZGFzPzwvc3Ryb25nPjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1 +bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGI+SW0gUGxhbnVuZ3MtSGVh +ZGVyPC9iPiBlcnNjaGVpbnQgaW4gZGVyIEhpbndlaXMtWmVpbGUgKHVudGVyIGRlbSBXb2NoZW50 +YWcpIGRhcyBnZXfDpGhsdGUgSWNvbiBvZGVyIGRlciBGYWxsYmFjayAoPGNvZGU+4oS5PC9jb2Rl +PiBmw7xyIEhpbndlaXMsIDxjb2RlPiEhITwvY29kZT4gZsO8ciBXYXJudW5nKS4gSG92ZXIgemVp +Z3QgZGVuIFRpdGVsIGFscyBUb29sdGlwLjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgPGxpPjxiPktsaWNrIGF1ZiBkaWUgWmVsbGU8L2I+IMO2ZmZuZXQgZWluIEFuc2ljaHRz +LU1vZGFsIG1pdCBJY29uLCBUaXRlbCwgZm9ybWF0aWVydGVtIFRleHQgdW5kIERhdHVtLiBTdXBl +clVzZXIga8O2bm5lbiBkaXJla3QgYmVhcmJlaXRlbiBvZGVyIG5ldWUgSGlud2Vpc2UgZsO8ciBq +ZWRlcyBEYXR1bSBhbmxlZ2VuLjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +PGxpPjxiPkJlaW0gUGxhbmVuL1VtcGxhbmVuIGVpbmVyIFNjaGljaHQ8L2I+IGFuIGVpbmVtIFRh +ZyBtaXQgSGlud2VpcyBlcnNjaGVpbnQg4oCUIGplIG5hY2ggV2Fybm1vZHVzIOKAlCBlaW4gV2Fy +bi1Nb2RhbCwgZGFzIHZvciBkZXIgRWluZ2FiZSBiZXN0w6R0aWd0IHdlcmRlbiBtdXNzLjwvbGk+ +CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAg +ICAgICAgPHA+PHN0cm9uZz5GZWxkZXIgaW0gRGV0YWlsOjwvc3Ryb25nPjwvcD4KICAgICAgICAg +ICAgICAgICAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8 +bGk+PGI+RGF0dW0gKFZvbik8L2I+IOKAlCBQZmxpY2h0ZmVsZC4gU3RhcnQgZGVzIEfDvGx0aWdr +ZWl0c2JlcmVpY2hzLjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxi +PkRhdHVtIChCaXMpPC9iPiDigJQgb3B0aW9uYWwuIExlZXIgbGFzc2VuID0gZ2lsdCBudXIgZsO8 +ciBkZW4gU3RhcnQtVGFnLiBHZXNldHp0ID0gWmVpdHJhdW0gKFZvbiBiaXMgQmlzIGlua2x1c2l2 +ZSkuIEplZGVyIFRhZyBpbSBaZWl0cmF1bSB6ZWlndCBkZW4gSGlud2Vpcy48L2xpPgogICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48Yj5UaXRlbDwvYj4g4oCUIGt1cnplIEJlemVp +Y2hudW5nIChtYXguIDEwMCBaZWljaGVuKSwgZXJzY2hlaW50IGltIFRvb2x0aXAgdW5kIGFscyDD +nGJlcnNjaHJpZnQgaW0gTW9kYWwuIElzdCBrZWluIFRpdGVsIGdlc2V0enQsIHdpcmQgZGVyIEFu +ZmFuZyBkZXMgVGV4dHMgdmVyd2VuZGV0LjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgPGxpPjxiPlRleHQ8L2I+IOKAlCBhdXNmw7xocmxpY2hlciBJbmhhbHQgbWl0IG1pbmlt +YWxlbSBSaWNoLVRleHQtRWRpdG9yLiBVbnRlcnN0w7x0enQgPGI+ZmV0dDwvYj4sIDxpPmt1cnNp +djwvaT4sIDx1PnVudGVyc3RyaWNoZW48L3U+LCBBdWZ6w6RobHVuZ2VuICjigKIgLyAxLikgdW5k +IEVudGZlcm5lbiBkZXIgRm9ybWF0aWVydW5nLiBFaW5mw7xnZW4gYXVzIGFuZGVyZW4gUXVlbGxl +biAoV29yZCwgTWFpbCkgZnVua3Rpb25pZXJ0IOKAlCBGb3JtYXRpZXJ1bmcgd2lyZCBhdWYgZGFz +IFp1bMOkc3NpZ2UgYmVyZWluaWd0LjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgPGxpPjxiPkljb248L2I+IOKAlCBFbW9qaSBhdXMgZGVtIFBpY2tlciAoNSBHcnVwcGVuKSBv +ZGVyIOKAnmtlaW5zIi4gRXJzZXR6dCBpbSBIZWFkZXItQmFkZ2UgZGFzIGdlbmVyaXNjaGUgU3lt +Ym9sLjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxiPlR5cDwvYj4g +4oCUIDxpPkhpbndlaXM8L2k+IChuZXV0cmFsLCBibGF1KSBvZGVyIDxpPldhcm51bmc8L2k+IChy +b3Qtb3JhbmdlLCBmw7xyIHdpY2h0aWdlIFRoZW1lbikuPC9saT4KICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICA8bGk+PGI+V2Fybm1vZHVzPC9iPiDigJQgc3RldWVydCwgd2FubiBkYXMg +V2Fybi1Nb2RhbCBiZWltIFBsYW5lbiBlcnNjaGVpbnQ6CiAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +IDxsaT48Yj5JbW1lcjwvYj4g4oCUIGJlaSBqZWRlciBQbGFudW5nIGltIFplaXRyYXVtIGVyc2No +ZWludCBkYXMgTW9kYWwgZXJuZXV0LjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICA8bGk+PGI+RWlubWFsaWcgcHJvIFVzZXI8L2I+IOKAlCBlcnNjaGVpbnQgbnVy +IGJlaW0gZXJzdGVuIEtsaWNrIHBybyBOdXR6ZXIgdW5kIFRlcm1pbiAoU3BlaWNoZXJ1bmcgbG9r +YWwgaW0gQnJvd3NlciwgcHJvIFRlcm1pbi1JRCkuPC9saT4KICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgIDxsaT48Yj5BdXM8L2I+IOKAlCBudXIgYWxzIEhlYWRlci1JY29u +IHNpY2h0YmFyLCBrZWluIE1vZGFsIGJlaW0gUGxhbmVuLjwvbGk+CiAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAg +ICAgICAgICAgICA8cD48c3Ryb25nPlRpcHA6PC9zdHJvbmc+IEbDvHIgd2llZGVya2VocmVuZGUg +R3Jvw592ZXJhbnN0YWx0dW5nZW4gZWluZmFjaCBtaXQgWmVpdHJhdW0gYW5sZWdlbiAoei5CLiBL +YXJuZXZhbHN3b2NoZSBNb250YWfigJNGcmVpdGFnKS4gRGVyIEhpbndlaXMgZXJzY2hlaW50IGRh +bm4gYXVmIGFsbGVuIFRhZ2VuOyBkYXMgV2Fybi1Nb2RhbCBlcnNjaGVpbnQgaW0gTW9kdXMg4oCe +RWlubWFsaWciIG51ciBlaW5tYWwgcHJvIE51dHplciB1bmQgVGVybWluLCBuaWNodCBmw7xyIGpl +ZGVuIFRhZyBuZXUuPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAg +ICAgICAgICAgICA8L2RldGFpbHM+CgogICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0i +YWRtaW4tdGFiZWxsZSIgaWQ9InNvbmRlcnRlcm1pbmUtdGFiZWxsZSI+CiAgICAgICAgICAgICAg +ICAgICAgICAgIDx0aGVhZD48dHI+PHRoIHN0eWxlPSJ3aWR0aDo1MnB4Ij5JY29uPC90aD48dGgg +c3R5bGU9IndpZHRoOjE4MHB4Ij5EYXR1bSAvIFplaXRyYXVtPC90aD48dGg+VGl0ZWw8L3RoPjx0 +aCBzdHlsZT0id2lkdGg6MTEwcHgiPlR5cDwvdGg+PHRoIHN0eWxlPSJ3aWR0aDoxNjBweCI+V2Fy +bm1vZHVzPC90aD48dGggc3R5bGU9IndpZHRoOjE3MHB4Ij5Ba3Rpb25lbjwvdGg+PC90cj48L3Ro +ZWFkPgogICAgICAgICAgICAgICAgICAgICAgICA8dGJvZHkgaWQ9InNvbmRlcnRlcm1pbmUtdGJv +ZHkiPjwvdGJvZHk+CiAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgICAg +IDwvZGl2PgoKICAgICAgICAgICAgICAgIDwhLS0gVGFiOiBTY2hpY2h0Y29kZXMgJiBGYXJiY29k +aWVydW5nIC0tPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4tdGFiIHZlcnN0ZWNr +dCIgaWQ9ImFkbWluLXRhYi1zY2hpY2h0Y29kZXMiPgogICAgICAgICAgICAgICAgICAgIDxkaXYg +Y2xhc3M9ImFkbWluLWtvcGYiPgogICAgICAgICAgICAgICAgICAgICAgICA8aDI+U2NoaWNodGNv +ZGVzICZhbXA7IEZhcmJjb2RpZXJ1bmc8L2gyPgogICAgICAgICAgICAgICAgICAgICAgICA8YnV0 +dG9uIGlkPSJidG4tc2NoaWNodGNvZGUtbmV1IiBjbGFzcz0iYnRuIGJ0bi1lcmZvbGciPk5ldWVy +IFNjaGljaHRjb2RlPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAg +ICAgICAgICAgICAgPGRldGFpbHMgY2xhc3M9ImFkbWluLWluZm8iIGRhdGEtaW5mby1rZXk9InNj +aGljaHRjb2RlcyIgb3Blbj4KICAgICAgICAgICAgICAgICAgICAgICAgPHN1bW1hcnk+PHNwYW4g +Y2xhc3M9ImFkbWluLWluZm8tY2hldiI+4pa4PC9zcGFuPkhpbndlaXNlIHp1IFNjaGljaHRjb2Rl +cyAmYW1wOyBGYXJiY29kaWVydW5nPHNwYW4gY2xhc3M9ImFkbWluLWluZm8tYmFkZ2UiPkF1Zmts +YXBwZW4gLyBadWtsYXBwZW48L3NwYW4+PC9zdW1tYXJ5PgogICAgICAgICAgICAgICAgICAgICAg +ICA8ZGl2IGNsYXNzPSJhZG1pbi1pbmZvLWJvZHkiPgogICAgICAgICAgICAgICAgICAgICAgICAg +ICAgPHA+PHN0cm9uZz5XYXMgaXN0IGVpbiBTY2hpY2h0Y29kZT88L3N0cm9uZz4gRWluIFNjaGlj +aHRjb2RlIGlzdCBlaW4gS8O8cnplbCwgZGFzIGVpbmVuIGJlc3RpbW10ZW4gRGllbnN0LCBlaW5l +IEFid2VzZW5oZWl0IG9kZXIgZWluZW4gYmVzb25kZXJlbiBTdGF0dXMgZWluZXMgTWl0YXJiZWl0 +ZXJzIGFuIGVpbmVtIFRhZyBiZXNjaHJlaWJ0LiBKZWRlciBDb2RlIGhhdCBlaW5lIDxiPkZhcmJj +b2RpZXJ1bmc8L2I+IChIaW50ZXJncnVuZCArIFNjaHJpZnRmYXJiZSksIGRpZSBpbSBQbGFudW5n +c3Jhc3RlciBkaXJla3QgYWJsZXNiYXIgaXN0LjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAg +ICAgIDxwPjxzdHJvbmc+U3BhbHRlbiBpbiBkZXIgw5xiZXJzaWNodDo8L3N0cm9uZz48L3A+CiAg +ICAgICAgICAgICAgICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgPGxpPjxiPkZhcmJmZWxkPC9iPiDigJQgVm9yc2NoYXUgZGVyIGhpbnRlcmxlZ3RlbiBI +aW50ZXJncnVuZGZhcmJlLjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxp +PjxiPkNvZGU8L2I+IOKAlCBkZXIgdGVjaG5pc2NoZSBTY2hsw7xzc2VsIGluIGRlciBEYXRlbmhh +bHR1bmcgKHouQi4gPGNvZGU+Ri1ER0w8L2NvZGU+LCA8Y29kZT5rcjwvY29kZT4sIDxjb2RlPlVy +bDwvY29kZT4pLjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxiPkvD +vHJ6ZWw8L2I+IOKAlCBkaWUgS3VyemZvcm0sIGRpZSBpbSBQbGFudW5nc3Jhc3RlciBpbiBkZXIg +WmVsbGUgYW5nZXplaWd0IHdpcmQgKHouQi4gPGNvZGU+RjwvY29kZT4sIDxjb2RlPmtyPC9jb2Rl +PikuIEthbm4gbWl0IGRlbSBDb2RlIGlkZW50aXNjaCBzZWluLjwvbGk+CiAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgPGxpPjxiPkJlemVpY2hudW5nPC9iPiDigJQgZGVyIExhbmduYW1l +IHp1ciBFcmzDpHV0ZXJ1bmcgKHouQi4g4oCeRnLDvGhkaWVuc3QgREdMIikuPC9saT4KICAgICAg +ICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8 +cD48c3Ryb25nPkdydXBwaWVydW5nOjwvc3Ryb25nPiBNaXQgZGVtIEF1c3dhaGxtZW7DvCBvYmVu +IGthbm5zdCBkdSB6d2lzY2hlbiB2ZXJzY2hpZWRlbmVuIERhcnN0ZWxsdW5nZW4gd2VjaHNlbG46 +PC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgIDxsaT48Yj5OYWNoIFNjaGljaHR0eXA8L2I+IChTdGFuZGFyZCkg4oCUIMO8 +YmVyc2ljaHRsaWNoIGdydXBwaWVydCBuYWNoIEZyw7xoLS9TcMOkdC0vTmFjaHRkaWVuc3QsIEZy +ZWksIFVybGF1YiwgS3JhbmtoZWl0L0F1c2ZhbGwsIEZvcnRiaWxkdW5nLCBEaWVuc3RlL0VpbnPD +pHR6ZSwgU29uZGVyZm9ybWVuLiBEaWUgWnVvcmRudW5nIGVyZm9sZ3QgYXV0b21hdGlzY2ggYW5o +YW5kIGRlcyBDb2RlLU11c3RlcnMuPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICA8bGk+PGI+QWxwaGFiZXRpc2NoIChDb2RlKTwvYj4g4oCUIGFsbGUgQ29kZXMgaW4gZWluZXIg +TGlzdGUgbmFjaCBLw7xyemVsIHNvcnRpZXJ0LjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgPGxpPjxiPkFscGhhYmV0aXNjaCAoQmV6ZWljaG51bmcpPC9iPiDigJQgYWxsZSBD +b2RlcyBuYWNoIExhbmduYW1lIHNvcnRpZXJ0IChoaWxmcmVpY2ggd2VubiBtYW4gbnVyIGRlbiBO +YW1lbiBlcmlubmVydCwgbmljaHQgZGFzIEvDvHJ6ZWwpLjwvbGk+CiAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgPGxpPjxiPktlaW5lIEdydXBwaWVydW5nPC9iPiDigJQgdW5zb3J0aWVy +dGUgT3JpZ2luYWxyZWloZW5mb2xnZSB3aWUgaW4gZGVyIERhdGVpLjwvbGk+CiAgICAgICAgICAg +ICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0 +cm9uZz5QZmxlZ2UgaW0gVUk6PC9zdHJvbmc+IE1pdCA8Yj7igJ5OZXVlciBTY2hpY2h0Y29kZSI8 +L2I+IGxlZ3N0IGR1IGVpbmVuIG5ldWVuIENvZGUgYW4uIEF1ZiBqZWRlIEthcnRlIGtsaWNrc3Qg +ZHUgZGFzIDxiPkJlYXJiZWl0ZW4tU3ltYm9sICjinI4pPC9iPiwgdW0gS8O8cnplbCwgQmV6ZWlj +aG51bmcsIEhpbnRlcmdydW5kLSB1bmQgU2NocmlmdGZhcmJlIHp1IMOkbmRlcm4uIEVpbmUgTGl2 +ZS1Wb3JzY2hhdSB6ZWlndCBkaXJla3QgZGFzIEVyZ2VibmlzLiBHZWzDtnNjaHQgd2lyZCDDvGJl +ciBkZW4gTMO2c2NoZW4tQnV0dG9uIGltIEVkaXQtRGlhbG9nIOKAlCBiZXN0ZWhlbmRlIEVpbnRy +w6RnZSBpbiBkZXIgUGxhbnVuZyBtaXQgZGllc2VtIENvZGUgYmxlaWJlbiBlcmhhbHRlbiwgd2Vy +ZGVuIGFiZXIgb2huZSBGYXJiZSBkYXJnZXN0ZWxsdC48L3A+CiAgICAgICAgICAgICAgICAgICAg +ICAgICAgICA8cD48c3Ryb25nPkNvZGUgLyB0ZWNobmlzY2hlciBTY2hsw7xzc2VsOjwvc3Ryb25n +PiBEZXIgQ29kZSBpc3QgZGVyIElkZW50aWZpZXIgaW4gZGVyIERhdGVuaGFsdHVuZyB1bmQgbWl0 +IGFsbGVuIFBsYW51bmdzLUVpbnRyw6RnZW4gdmVya27DvHBmdC4gQmVpbSBOZXVhbmxlZ2VuIGZy +ZWkgd8OkaGxiYXIsIGJlaW0gc3DDpHRlcmVuIEJlYXJiZWl0ZW4gc2NocmVpYmdlc2Now7x0enQg +4oCUIGVpbmUgw4RuZGVydW5nIHfDvHJkZSBhbGxlIGJlc3RlaGVuZGVuIEVpbnRyw6RnZSBpbmtv +bnNpc3RlbnQgbWFjaGVuLiBXZW5uIGRlciBDb2RlIHVtYmVuYW5udCB3ZXJkZW4gbXVzczogbmV1 +IGFubGVnZW4sIGFsdGUgRWludHLDpGdlIG1hbnVlbGwgw6RuZGVybiwgYWx0ZW4gQ29kZSBsw7Zz +Y2hlbi48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPlRpcHA6PC9z +dHJvbmc+IEZhcmJmYW1pbGllbiBrb25zaXN0ZW50IGVpbnNldHplbjogcm90ID0gRnLDvGhkaWVu +c3QsIGJsYXUgPSBTcMOkdGRpZW5zdCwgZ3LDvG4gPSBOYWNodGRpZW5zdCwgZ3JhdSA9IEZyZWkv +SE8sIHJvc8OpID0gS3JhbmtoZWl0LCBsaWxhID0gTGVocmdhbmcuIFNvIGVya2VubnQgZGFzIEF1 +Z2Ugb2huZSBMZXNlbiBkaWUgU2NoaWNodC48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDwv +ZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGV0YWlscz4KICAgICAgICAgICAgICAgICAgICA8 +ZGl2IGlkPSJzY2hpY2h0Y29kZS12b3JzY2hhdSI+PC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rp +dj4KCiAgICAgICAgICAgICAgICA8IS0tIFRhYjogTWlrcm90ZWFtcyDigJQgUGVyc29uZW4tR3J1 +cHBlbiBwcm8gU3RhbmRvcnQrRGllbnN0Z3J1cHBlIC0tPgogICAgICAgICAgICAgICAgPGRpdiBj +bGFzcz0iYWRtaW4tdGFiIHZlcnN0ZWNrdCIgaWQ9ImFkbWluLXRhYi1taWtyb3RlYW1zIj4KICAg +ICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1pbi1rb3BmIj4KICAgICAgICAgICAgICAg +ICAgICAgICAgPGgyPk1pa3JvdGVhbXM8L2gyPgogICAgICAgICAgICAgICAgICAgIDwvZGl2Pgog +ICAgICAgICAgICAgICAgICAgIDxkZXRhaWxzIGNsYXNzPSJhZG1pbi1pbmZvIiBkYXRhLWluZm8t +a2V5PSJtaWtyb3RlYW1zIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHN1bW1hcnk+PHNwYW4g +Y2xhc3M9ImFkbWluLWluZm8tY2hldiI+4pa4PC9zcGFuPldvenUgTWlrcm90ZWFtcz88c3BhbiBj +bGFzcz0iYWRtaW4taW5mby1iYWRnZSI+QXVma2xhcHBlbiAvIFp1a2xhcHBlbjwvc3Bhbj48L3N1 +bW1hcnk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFkbWluLWluZm8tYm9k +eSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPldhcyBzaW5kIE1pa3Jv +dGVhbXM/PC9zdHJvbmc+IEVpbmUgTWlrcm90ZWFtLURlZmluaXRpb24gZmFzc3QgZGllIFBlcnNv +bmVuIHp1c2FtbWVuLCBkaWUgYW4gZWluZW0gU3RhbmRvcnQgZ2VtZWluc2FtIGVpbmUgRGllbnN0 +Z3J1cHBlIGJpbGRlbiAoei5CLiDigJ5LYW1lbi1BIiA9IGRpZSBER0wtVmVyYW50d29ydGxpY2hl +biBkZXIgR3J1cHBlIEEgYW0gU3RhbmRvcnQgS2FtZW4pLiBEaWUgU3RhdGlzdGlrIChIZWF0bWFw +ICsgVGFnZXMtQW50ZWlsZSBwcm8gVGVhbSkgd2VydGV0IGRhbWl0IGF1cywgd2llIG9mdCBkaWUg +ZWluemVsbmVuIFRlYW1zIGdlbWVpbnNhbSBpbSBEaWVuc3Qgc2luZC48L3A+CiAgICAgICAgICAg +ICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPlBmbGVnZTo8L3N0cm9uZz4gUHJvIEVpbnRyYWcg +TmFtZSwgU3RhbmRvcnQtS8O8cnplbCAoMiBCdWNoc3RhYmVuIGF1cyBkZXIgU3RhbmRvcnRlLUxp +c3RlLCB6LkIuIEtBL0hBL0JPKSwgRGllbnN0Z3J1cHBlbi1Lw7xyemVsIChBL0IvQy9XRCkgdW5k +IGRpZSB6dWdld2llc2VuZW4gUGVyc29uZW4uIFJlaWhlbmZvbGdlIGluIGRlciBUYWJlbGxlIHdp +cmt0IHNpY2ggYXVmIGRpZSBTdGF0aXN0aWstRGFyc3RlbGx1bmcgYXVzLjwvcD4KICAgICAgICAg +ICAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+RGVmYXVsdC1SZWloZW5mb2xnZSBuYWNoIFN0 +YW5kb3J0Ojwvc3Ryb25nPiBIYXVwdHdhY2hlbiBvYmVuIChLQSwgSEEpLCBkYW5uIGRpZSBhbmRl +cmVuLiBEaWUgSUQgaXN0IHRlY2huaXNjaCB1bmQgc29sbHRlIHNwcmVjaGVuZCBibGVpYmVuICh6 +LkIuIDxjb2RlPnRfS0FfQTwvY29kZT4pLjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9k +aXY+CiAgICAgICAgICAgICAgICAgICAgPC9kZXRhaWxzPgoKICAgICAgICAgICAgICAgICAgICA8 +c2VjdGlvbiBjbGFzcz0iYWRtaW4tc2VrdGlvbiIgaWQ9ImFkbWluLXNla3Rpb24tbWlrcm90ZWFt +cyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFkbWluLXNla3Rpb24ta29w +ZiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDM+TWlrcm90ZWFtLUxpc3RlPC9oMz4K +ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1taWtyb3RlYW0tbmV1 +IiBjbGFzcz0iYnRuIGJ0bi1lcmZvbGciPk5ldWVzIE1pa3JvdGVhbTwvYnV0dG9uPgogICAgICAg +ICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNs +YXNzPSJhZG1pbi10YWJlbGxlIiBpZD0ibWlrcm90ZWFtcy10YWJlbGxlIj4KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8 -dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5OYW1lPC90aD4KICAg -ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPk5XLUtlbm51bmc8L3RoPgogICAg -ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+T3JnYW5pc2F0aW9uc2VpbmhlaXQ8 -L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9IndpZHRo -OjE1MHB4Ij5UZWxlZm9uIC8gRHVyY2h3YWhsPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAg -ICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDo4MHB4Ij5Ba3Rpb25lbjwvdGg+CiAgICAgICAg -ICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAg -IDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGJvZHkgaWQ9InN1cGVydXNl -ci10Ym9keSI+PC90Ym9keT4KICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAg -ICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icmVjaHRlLWNhcmQtZnVzcyI+CiAgICAgICAg -ICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tc3VwZXJ1c2VyLXNwZWljaGVybiIg -Y2xhc3M9ImJ0biBidG4tcHJpbWFlciI+U3VwZXJVc2VyIHNwZWljaGVybjwvYnV0dG9uPgogICAg -ICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBp -ZD0ic3VwZXJ1c2VyLWtlaW4tcmVjaHQiIGNsYXNzPSJ2ZXJzdGVja3QgcmVjaHRlLWtlaW4tcmVj -aHQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5mby1ib3giIHN0 -eWxlPSJib3JkZXItbGVmdC1jb2xvcjp2YXIoLS1mYXJiZS1mZWhsZXIpIj4KICAgICAgICAgICAg -ICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPktlaW4gWnVncmlmZjo8L3N0cm9uZz4gTnVyIGJl -c3RlaGVuZGUgU3VwZXJVc2VyIGvDtm5uZW4gZGllc2UgTGlzdGUgYmVhcmJlaXRlbi4KICAgICAg -ICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rp -dj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PC9kZXRhaWxzPgogICAgICAgICAgICAg -ICAgICAgIDwvc2VjdGlvbj4KCiAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9ImFk -bWluLXNla3Rpb24gcmVjaHRlLWNhcmQgcmVjaHRlLWNhcmQtZmEiIGlkPSJhZG1pbi1zZWt0aW9u -LWZhY2hhdWZzaWNodCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkZXRhaWxzIGNsYXNzPSJy -ZWNodGUtcm9sbGUiPgogICAgICAgICAgICAgICAgICAgICAgICA8c3VtbWFyeSBjbGFzcz0icmVj -aHRlLXJvbGxlLXN1bW1hcnkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xh -c3M9InJlY2h0ZS1jYXJkLWljb24iIGFyaWEtaGlkZGVuPSJ0cnVlIj7wn5GBPC9zcGFuPgogICAg -ICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InJlY2h0ZS1yb2xsZS10aXRlbCI+ -PHN0cm9uZz5GYWNoYXVmc2ljaHQ8L3N0cm9uZz48c3BhbiBjbGFzcz0icmVjaHRlLWNhcmQtc3Vi -Ij5LbGFzc2lzY2hlIEF1ZnNpY2h0cy1Sb2xsZSBtaXQgZ3JhbnVsYXJlbiBTZWhlbi0gdW5kIFBs -YW51bmdzLVJlY2h0ZW4uIE9wdGlvbmFsIOKAnkdlc2FtdHZlcmFudHdvcnRsaWNoIiBmw7xyIFNj -aGljaHRiZXNldHp1bmcuPC9zcGFuPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAg -IDxzcGFuIGNsYXNzPSJyZWNodGUtcm9sbGUtY2hldiIgYXJpYS1oaWRkZW49InRydWUiPuKWuDwv -c3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9zdW1tYXJ5PgogICAgICAgICAgICAgICAg -ICAgICAgICA8ZGl2IGNsYXNzPSJyZWNodGUtcm9sbGUtYm9keSI+CiAgICAgICAgICAgICAgICAg -ICAgICAgICAgICA8ZGl2IGNsYXNzPSJyZWNodGUtcm9sbGUtYWt0aW9uIj48YnV0dG9uIGlkPSJi -dG4tZmFjaGF1ZnNpY2h0LW5ldSIgY2xhc3M9ImJ0biBidG4tZXJmb2xnIj5OZXVlciBGYWNoYXVm -c2ljaHQtRWludHJhZzwvYnV0dG9uPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGV0 -YWlscyBjbGFzcz0iYWRtaW4taW5mbyIgZGF0YS1pbmZvLWtleT0iZmFjaGF1ZnNpY2h0Ij4KICAg -ICAgICAgICAgICAgICAgICAgICAgICAgIDxzdW1tYXJ5PjxzcGFuIGNsYXNzPSJhZG1pbi1pbmZv -LWNoZXYiPuKWuDwvc3Bhbj5IaW53ZWlzZSB6dXIgRmFjaGF1ZnNpY2h0PHNwYW4gY2xhc3M9ImFk -bWluLWluZm8tYmFkZ2UiPkF1ZmtsYXBwZW4gLyBadWtsYXBwZW48L3NwYW4+PC9zdW1tYXJ5Pgog -ICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4taW5mby1ib2R5Ij4K -ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPlJvbGxlbi1IaWVyYXJj -aGllOjwvc3Ryb25nPiA8Y29kZT5TdXBlclVzZXIg4oaSIEZhY2hhdWZzaWNodCAvIERpcmVrdGlv -bnNsZWl0dW5nIC8gRsO8aHJ1bmdzc3RlbGxlIOKGkiBVc2VyPC9jb2RlPi4gU3VwZXJVc2VyIHN0 -aWNodCBhbGxlcy4gV2VyIGluIGtlaW5lciBSb2xsZW4tTGlzdGUgc3RlaHQsIHNpZWh0IHdlZGVy -IFN0YXRpc3RpayBub2NoIExvZ2J1Y2ggbm9jaCBBZG1pbmlzdHJhdGlvbi48L3A+CiAgICAgICAg -ICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5TZWhlbi1CZXJlaWNoZTwvc3Ryb25n -PiAoSGFrZW4gPSBUYWIgaXN0IGbDvHIgZGllc2UgUGVyc29uIHNpY2h0YmFyKTo8L3A+CiAgICAg -ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgICAgICAgICAg -ICAgICAgICAgICA8bGk+PGI+QWRtaW5pc3RyYXRpb248L2I+IOKAlCBrb21wbGV0dGVyIEFkbWlu -LVRhYi4gPGI+QXVzZ2Vub21tZW46PC9iPiBTdXBlclVzZXItIHVuZCBSb2xsZW4tTGlzdGVuIChi -bGVpYmVuIFN1cGVyVXNlci1vbmx5KS48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAg -ICAgICAgICA8bGk+PGI+U3RhdGlzdGlrPC9iPiwgPGI+TG9nYnVjaDwvYj4sIDxiPkJhY2t1cHM8 -L2I+IOKAlCBqZXdlaWxzIGRlciBnYW56ZSBUYWIuPC9saT4KICAgICAgICAgICAgICAgICAgICAg -ICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxzdHJv -bmc+UGxhbnVuZzo8L3N0cm9uZz4gUHJvIEZhY2hhdWZzaWNodCBmZXN0bGVnYmFyLCB3ZWxjaGUg -UGVyc29uZW4vR3J1cHBlbi9TdGFuZG9ydGUgZWRpdGllcnQgd2VyZGVuIGTDvHJmZW4g4oCUIGRp -ZSBlaWdlbmUgWmVpbGUgaXN0IGltbWVyIGltcGxpeml0IGVybGF1YnQuPC9wPgogICAgICAgICAg -ICAgICAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+R2VzYW10dmVyYW50d29ydHVuZzo8L3N0 -cm9uZz4gQmVrb21tdCBkZW4gSGVhZGVyLVRhYiA8ZW0+UHLDvGZ1bmc8L2VtPiBtaXQgNC1Xb2No -ZW4tw5xiZXJzaWNodCBpbmtsLiB2b3JnZWZlcnRpZ3RlciBFLU1haWwgYW4gYmV0cm9mZmVuZSBQ -ZXJzb25lbi48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAg -ICAgICAgICAgICAgICAgPC9kZXRhaWxzPgogICAgICAgICAgICAgICAgICAgICAgICA8dGFibGUg -Y2xhc3M9ImFkbWluLXRhYmVsbGUiIGlkPSJmYWNoYXVmc2ljaHQtdGFiZWxsZSI+CiAgICAgICAg -ICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg -ICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+TmFtZTwvdGg+ -CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5OVy1LZW5udW5nPC90aD4K -ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDo2MHB4 -O3RleHQtYWxpZ246Y2VudGVyIiB0aXRsZT0iQWRtaW4tVGFiIHNlaGVuIj5BZG1pbjwvdGg+CiAg -ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6NzBweDt0 -ZXh0LWFsaWduOmNlbnRlciIgdGl0bGU9IkJlcmVpY2gtQS1UYWIgc2VoZW4iIGRhdGEtYmV6PSJm -YS5zcGFsdGVBIj5BdXN3ZXJ0dW5nPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg -ICAgICAgPHRoIHN0eWxlPSJ3aWR0aDo3MHB4O3RleHQtYWxpZ246Y2VudGVyIiB0aXRsZT0iQmVy -ZWljaC1CLVRhYiBzZWhlbiIgZGF0YS1iZXo9ImZhLnNwYWx0ZUIiPlByb3Rva29sbDwvdGg+CiAg -ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6NzBweDt0 -ZXh0LWFsaWduOmNlbnRlciIgdGl0bGU9IkJhY2t1cC1UYWIgc2VoZW4iPkJhY2t1cHM8L3RoPgog -ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9IndpZHRoOjkwcHg7 -dGV4dC1hbGlnbjpjZW50ZXIiIHRpdGxlPSJHZXNhbXR2ZXJhbnR3b3J0bGljaCBmw7xyIGRpZSBC -ZXNldHp1bmcgYWxsZXIgRGllbnN0ZSI+R2VzYW10dmVyYW50dy48L3RoPgogICAgICAgICAgICAg -ICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9IndpZHRoOjIyMHB4IiB0aXRsZT0iR3Jh -bnVsYXJlIFNpY2h0YmFya2VpdCBwcm8gU3ViLVRhYiBkZXMgQWRtaW4tQmVyZWljaHMgKyBwcm8g -QmVyZWljaC1BIj5TdWItU2ljaHQ8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg -ICAgICA8dGggc3R5bGU9IndpZHRoOjIwMHB4Ij5QbGFudW5nPC90aD4KICAgICAgICAgICAgICAg -ICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDo4MHB4Ij5Ba3Rpb25lbjwvdGg+ +dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6 +NTBweCI+UG9zPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHN0 +eWxlPSJ3aWR0aDoxMzBweCI+SUQ8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICA8dGg+TmFtZTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0 +aCBzdHlsZT0id2lkdGg6OTBweCIgdGl0bGU9IlN0YW5kb3J0LUvDvHJ6ZWwgYXVzIGRlciBTdGFu +ZG9ydGUtTGlzdGUgKEtBL0hBL0JPLy4uLikiPlN0YW5kb3J0PC90aD4KICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDo5MHB4IiB0aXRsZT0iRGllbnN0 +Z3J1cHBlbi1Lw7xyemVsIChBL0IvQy9XRC8uLi4pIj5HcnVwcGU8L3RoPgogICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9IndpZHRoOjkwcHgiIHRpdGxlPSJBbnph +aGwgenVnZXdpZXNlbmUgUGVyc29uZW4iPlBlcnNvbmVuPC90aD4KICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDoyMDBweCI+QWt0aW9uZW48L3RoPgog +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAg +ICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRib2R5IGlkPSJt +aWtyb3RlYW1zLXRib2R5Ij48L3Rib2R5PgogICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxl +PgogICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tbWlrcm90ZWFtcy1zcGVp +Y2hlcm4iIGNsYXNzPSJidG4gYnRuLXByaW1hZXIiIHN0eWxlPSJtYXJnaW4tdG9wOjEycHgiPk1p +a3JvdGVhbXMgc3BlaWNoZXJuPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9u +PgogICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgPCEtLSBUYWI6IFN0YW5k +b3J0ZSAmIFNjaGljaHRmb2xnZSAtLT4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFkbWlu +LXRhYiB2ZXJzdGVja3QiIGlkPSJhZG1pbi10YWItc3RhbmRvcnRlIj4KICAgICAgICAgICAgICAg +ICAgICA8ZGl2IGNsYXNzPSJhZG1pbi1rb3BmIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGgy +PlN0YW5kb3J0ZSAmYW1wOyBTY2hpY2h0Zm9sZ2U8L2gyPgogICAgICAgICAgICAgICAgICAgICAg +ICA8YnV0dG9uIGlkPSJidG4tc3RhbmRvcnQtbmV1IiBjbGFzcz0iYnRuIGJ0bi1lcmZvbGciPk5l +dWVyIFN0YW5kb3J0PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAg +ICAgICAgICAgICAgPGRldGFpbHMgY2xhc3M9ImFkbWluLWluZm8iIGRhdGEtaW5mby1rZXk9InN0 +YW5kb3J0ZSIgb3Blbj4KICAgICAgICAgICAgICAgICAgICAgICAgPHN1bW1hcnk+PHNwYW4gY2xh +c3M9ImFkbWluLWluZm8tY2hldiI+4pa4PC9zcGFuPkhpbndlaXNlIHp1IFN0YW5kb3J0ZW4gJmFt +cDsgU2NoaWNodGZvbGdlPHNwYW4gY2xhc3M9ImFkbWluLWluZm8tYmFkZ2UiPkF1ZmtsYXBwZW4g +LyBadWtsYXBwZW48L3NwYW4+PC9zdW1tYXJ5PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2 +IGNsYXNzPSJhZG1pbi1pbmZvLWJvZHkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+ +PHN0cm9uZz5TdGFuZG9ydGU8L3N0cm9uZz4gc2luZCBkaWUgQXJiZWl0c29ydGUgZGVyIFZJMyAo +QXJuc2JlcmcsIEJvY2h1bSwgRG9ydG11bmQg4oCmKS4gSmVkZXIgU3RhbmRvcnQgaGF0IGVpbmUg +ZWlnZW5lIFNjaGljaHRyb3RhdGlvbiBmw7xyIGRpZSBEaWVuc3RncnVwcGVuIEEvQi9DLCBkaWUg +aW0gSGVhZGVyIGRlciBQbGFudW5nIGFscyDigJ5TY2hpY2h0Zm9sZ2UiLVplaWxlIGFuZ2V6ZWln +dCB3aXJkIChzb2Zlcm4gZGllIEFuemVpZ2UgaW0gVGFiIDxiPkZ1bmt0aW9uZW48L2I+IGFrdGl2 +aWVydCBpc3QpLjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Um90 +YXRpb25zLU11c3Rlcjo8L3N0cm9uZz48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8 +dWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxiPkFCQzwvYj4gPSBBLUZy +w7xoIC8gQi1TcMOkdCAvIEMtTmFjaHQ8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgIDxsaT48Yj5CQ0E8L2I+ID0gQi1GcsO8aCAvIEMtU3DDpHQgLyBBLU5hY2h0PC9saT4KICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGI+Q0FCPC9iPiA9IEMtRnLDvGggLyBB +LVNww6R0IC8gQi1OYWNodDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxp +PjxiPlBvb2w8L2I+ID0gaW5kaXZpZHVlbGxlIEVpbnRlaWx1bmcsIGtlaW5lIGZlc3RlIFJvdGF0 +aW9uIChmw7xyIGZsZXhpYmxlIEVpbnNhdHpwb29scyk8L2xpPgogICAgICAgICAgICAgICAgICAg +ICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Umh5 +dGhtdXMgcGZsZWdlbjo8L3N0cm9uZz4gRGVyIGtvbmtyZXRlIFp5a2x1cyAoei5CLiB3w7ZjaGVu +dGxpY2ggd2VjaHNlbG5kIG9kZXIgMy1UYWdlLVJoeXRobXVzKSB3aXJkIMO8YmVyIGRlbiBSaHl0 +aG11cy1HZW5lcmF0b3IgcHJvIFN0YW5kb3J0IGVpbmdlc3RlbGx0LiBEZXIgR2VuZXJhdG9yIHNj +aHJlaWJ0IGbDvHIgamVkZXMgRGF0dW0gZWluZSBTY2hpY2h0Zm9sZ2UgaW4gZGllIEpTT04g4oCU +IGRpZSBBbnplaWdlIGltIEhlYWRlciB6aWVodCBkYW5uIGbDvHIgamVkZW4gVGFnIGRlbiBoaW50 +ZXJsZWd0ZW4gV2VydC48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25n +PlNwYWx0ZW46PC9zdHJvbmc+PC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsPgog +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48Yj5OYW1lPC9iPiDigJQgdm9sbGVy +IFN0YW5kb3J0LU5hbWUgKHouQi4g4oCeQXJuc2JlcmciKS48L2xpPgogICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgIDxsaT48Yj5Lw7xyemVsPC9iPiDigJQgS3VyemZvcm0gZsO8ciBkaWUg +T0UtWnVvcmRudW5nIGluIGRlciBQZXJzb25hbC1MaXN0ZSAoei5CLiDigJ5BUiIpLjwvbGk+CiAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxiPlBvb2w8L2I+IOKAlCBDaGVja2Jv +eDsgc2NoYWx0ZXQgZGllIGZlc3RlIFJvdGF0aW9uIGF1cy48L2xpPgogICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgIDxsaT48Yj5TY2hpY2h0Zm9sZ2UgKDE0IFRhZ2UpPC9iPiDigJQgVm9y +c2NoYXUgZGVyIG7DpGNoc3RlbiAxNCBUYWdlLCBmYXJibGljaCBjb2RpZXJ0LjwvbGk+CiAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxiPkFrdGlvbmVuPC9iPiDigJQgUmh5dGht +dXMtR2VuZXJhdG9yIMO2ZmZuZW4gb2RlciBTdGFuZG9ydCBsw7ZzY2hlbi48L2xpPgogICAgICAg +ICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxw +PjxzdHJvbmc+SGlud2Vpczo8L3N0cm9uZz4gRGllIFJlaWhlbmZvbGdlIGRlciBTdGFuZG9ydGUg +aW4gZGVyIFRhYmVsbGUgYmVzdGltbXQgYXVjaCBkaWUgUmVpaGVuZm9sZ2UgZGVyIFplaWxlbiBp +bSBIZWFkZXIgKG9iZW4gPSBlcnN0ZSBaZWlsZSkuPC9wPgogICAgICAgICAgICAgICAgICAgICAg +ICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2RldGFpbHM+CiAgICAgICAgICAgICAgICAg +ICAgPHRhYmxlIGNsYXNzPSJhZG1pbi10YWJlbGxlIiBpZD0ic3RhbmRvcnRlLXRhYmVsbGUiPgog +ICAgICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAg +ICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPk5hbWU8L3RoPgogICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6NjBweCI+S8O8cnpl +bDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDo3 +MHB4Ij5Qb29sPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+U2NoaWNo +dGZvbGdlIChlcnN0ZSAxNCBUYWdlIGFiIGhldXRlKTwvdGg+CiAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDoxNjBweCI+QWt0aW9uZW48L3RoPgogICAgICAg +ICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgPC90aGVh +ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRib2R5IGlkPSJzdGFuZG9ydGUtdGJvZHkiPjwv +dGJvZHk+CiAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgICAgICAgICA8 +YnV0dG9uIGlkPSJidG4tc3RhbmRvcnRlLXNwZWljaGVybiIgY2xhc3M9ImJ0biBidG4tcHJpbWFl +ciIgc3R5bGU9Im1hcmdpbi10b3A6MTZweCI+U3RhbmRvcnRlIHNwZWljaGVybjwvYnV0dG9uPgog +ICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgPCEtLSBUYWI6IEVyc2NoZWlu +dW5nc2JpbGQg4oCUIE1hcmtpZXJ1bmdzLUVkaXRvciBtaXQgTGl2ZS1Wb3JzY2hhdSAtLT4KICAg +ICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFkbWluLXRhYiB2ZXJzdGVja3QiIGlkPSJhZG1pbi10 +YWItZXJzY2hlaW51bmdzYmlsZCI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRt +aW4ta29wZiI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxoMj5FcnNjaGVpbnVuZ3NiaWxkPC9o +Mj4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgc3R5bGU9Im1hcmdpbjo2cHggMCAwIDA7Zm9u +dC1zaXplOjEycHg7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCkiPlZpc3VlbGxlIE1hcmtpZXJ1bmdl +biBpbSBQbGFudGFmZWwtS29wZiB1bmQgYmVpbSBMaXZlLVN5bmMgaW5kaXZpZHVlbGwgYW5wYXNz +ZW4uIMOEbmRlcnVuZ2VuIHNpbmQgc29mb3J0IHNpY2h0YmFyOyBzaWUgd2VyZGVuIGVyc3QgYmVp +bSBLbGljayBhdWYg4oCeU3BlaWNoZXJuIiBwZXJzaXN0aWVydC48L3A+CiAgICAgICAgICAgICAg +ICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iZXJzY2hlaW51bmdzYmls +ZC1pbmhhbHQiPjwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAg +PCEtLSBUYWI6IFN0YXRpc3Rpay1MYXlvdXQgKFNVLW9ubHkpIOKAlCBSZWloZW5mb2xnZS9CcmVp +dGUvU2ljaHRiYXJrZWl0CiAgICAgICAgICAgICAgICAgICAgIGFsbGVyIFN0YXRpc3Rpay1LYWNo +ZWxuIGltIHZpc3VlbGxlbiA2LVNwYWx0ZW4tUmFzdGVyLiAtLT4KICAgICAgICAgICAgICAgIDxk +aXYgY2xhc3M9ImFkbWluLXRhYiB2ZXJzdGVja3QiIGlkPSJhZG1pbi10YWItc3RhdGlzdGlrLWxh +eW91dCI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4ta29wZiI+CiAgICAg +ICAgICAgICAgICAgICAgICAgIDxoMj5TdGF0aXN0aWstTGF5b3V0PC9oMj4KICAgICAgICAgICAg +ICAgICAgICAgICAgPHAgc3R5bGU9Im1hcmdpbjo2cHggMCAwIDA7Zm9udC1zaXplOjEycHg7Y29s +b3I6dmFyKC0tdGV4dC1tdXRlZCkiPkJyZWl0ZSAoMToxIHZvbGwgwrcgMToyIGhhbGIgwrcgMToz +IGRyaXR0ZWwpIHVuZCBSZWloZW5mb2xnZSBkZXIgU3RhdGlzdGlrLUthY2hlbG4gZsO8ciA8c3Ry +b25nPmFsbGU8L3N0cm9uZz4gZmVzdGxlZ2VuLiBLbGljayBhdWYgZWluZSBLYWNoZWwgd2VjaHNl +bHQgZGllIEJyZWl0ZSwgWmllaGVuIMOkbmRlcnQgZGllIFJlaWhlbmZvbGdlLCBkYXMgQXVnZSBz +Y2hhbHRldCBzaWUgc2ljaHRiYXIvdW5zaWNodGJhci4gU2Nod2VyZSBQYW5lbHMgKEhlYXRtYXBz +LCBEZXRhaWxhbmFseXNlKSBibGVpYmVuIGF1ZiB2b2xsZXIgQnJlaXRlLjwvcD4KICAgICAgICAg +ICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJzdGF0aXN0aWst +bGF5b3V0LWluaGFsdCI+PC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAg +ICAgICA8IS0tIFRhYjogU3RhdGlzdGlrLUJ1aWxkZXIg4oCUIG1laHJkaW1lbnNpb25hbGVyIE5v +Q29kZS1adXNhbW1lbmJhdQogICAgICAgICAgICAgICAgICAgICBlaWdlbmVyIEF1c3dlcnR1bmdl +biAoRmlsdGVyIC0+IERpbWVuc2lvbmVuIC0+IEtlbm56YWhsIC0+CiAgICAgICAgICAgICAgICAg +ICAgIERpYWdyYW1tdHlwKSBtaXQgTGl2ZS1GbHVzc2RpYWdyYW1tLCBUZXN0ZW4tVm9yc2NoYXUg +dW5kCiAgICAgICAgICAgICAgICAgICAgIFNwZWljaGVybiBhbHMgS2FjaGVsLiAtLT4KICAgICAg +ICAgICAgICAgIDxkaXYgY2xhc3M9ImFkbWluLXRhYiB2ZXJzdGVja3QiIGlkPSJhZG1pbi10YWIt +c3RhdGlzdGlrLWJ1aWxkZXIiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFkbWlu +LWtvcGYiPgogICAgICAgICAgICAgICAgICAgICAgICA8aDI+U3RhdGlzdGlrLUJ1aWxkZXI8L2gy +PgogICAgICAgICAgICAgICAgICAgICAgICA8cCBzdHlsZT0ibWFyZ2luOjZweCAwIDAgMDtmb250 +LXNpemU6MTJweDtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKSI+RWlnZW5lIEF1c3dlcnR1bmdlbiB6 +dXNhbW1lbmtsaWNrZW46IERhdGVuIGZpbHRlcm4sIERpbWVuc2lvbmVuIHfDpGhsZW4sIEtlbm56 +YWhsICsgRGlhZ3JhbW10eXAgYmVzdGltbWVuLiBEYXMgRmx1c3NkaWFncmFtbSB6ZWlndCBkaWUg +TG9naWsgbGl2ZSwg4oCeVGVzdGVuIiBiYXV0IGRpZSBTdGF0aXN0aWsgc29mb3J0LiDigJ5BbHMg +S2FjaGVsIHNwZWljaGVybiIgbWFjaHQgc2llIGbDvHIgYWxsZSBpbSBTdGF0aXN0aWstVGFiIHNp +Y2h0YmFyIChBbm9yZG51bmcgaW0gU3RhdGlzdGlrLUxheW91dCkuPC9wPgogICAgICAgICAgICAg +ICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9InN0YXRpc3Rpay1idWls +ZGVyLWluaGFsdCI+PC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAg +ICA8IS0tIFRhYjogS29uZmlndXJhdGlvbiArIEZ1bmt0aW9uZW4gKHBlciBTdWItTmF2IHVtc2No +YWx0YmFyKSAtLT4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFkbWluLXRhYiB2ZXJzdGVj +a3QiIGlkPSJhZG1pbi10YWItZWluc3RlbGx1bmdlbiI+CiAgICAgICAgICAgICAgICAgICAgPGRp +diBjbGFzcz0iYWRtaW4ta29wZiI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxoMj5Lb25maWd1 +cmF0aW9uICZhbXA7IEZ1bmt0aW9uZW48L2gyPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgoK +ICAgICAgICAgICAgICAgICAgICA8bmF2IGNsYXNzPSJhZG1pbi1zdWJuYXYiIGFyaWEtbGFiZWw9 +IlN5c3RlbS1Lb25maWd1cmF0aW9uLVN1Yi1OYXZpZ2F0aW9uIj4KICAgICAgICAgICAgICAgICAg +ICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJhZG1pbi1zdWJuYXYtYnRuIGFrdGl2 +IiBkYXRhLXN1YnRhYj0iZWluc3RlbGx1bmdlbiI+R2xvYmFsZSBFaW5zdGVsbHVuZ2VuPC9idXR0 +b24+CiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0i +YWRtaW4tc3VibmF2LWJ0biIgZGF0YS1zdWJ0YWI9ImZlYXR1cmVzIj5GdW5rdGlvbmVuIGVpbi0v +YXVzYmxlbmRlbjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgIDwvbmF2PgoKICAgICAgICAg +ICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0iYWRtaW4tc2VrdGlvbiIgaWQ9ImFkbWluLXNla3Rp +b24tZWluc3RlbGx1bmdlbiIgZGF0YS1zdWJ0YWItc2VrdGlvbj0iZWluc3RlbGx1bmdlbiI+CiAg +ICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFkbWluLXNla3Rpb24ta29wZiI+CiAg +ICAgICAgICAgICAgICAgICAgICAgICAgICA8aDM+R2xvYmFsZSBFaW5zdGVsbHVuZ2VuPC9oMz4K +ICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxk +ZXRhaWxzIGNsYXNzPSJhZG1pbi1pbmZvIiBkYXRhLWluZm8ta2V5PSJlaW5zdGVsbHVuZ2VuIiBv +cGVuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN1bW1hcnk+PHNwYW4gY2xhc3M9ImFk +bWluLWluZm8tY2hldiI+4pa4PC9zcGFuPkhpbndlaXNlIHp1IGRlbiBnbG9iYWxlbiBFaW5zdGVs +bHVuZ2VuPHNwYW4gY2xhc3M9ImFkbWluLWluZm8tYmFkZ2UiPkF1ZmtsYXBwZW4gLyBadWtsYXBw +ZW48L3NwYW4+PC9zdW1tYXJ5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFz +cz0iYWRtaW4taW5mby1ib2R5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48 +c3Ryb25nPlBsYW51bmdzamFocjo8L3N0cm9uZz4gRGFzIEphaHIsIGbDvHIgZGFzIGRpZSBQbGFu +dW5nIGFrdHVlbGwgZ2VwZmxlZ3Qgd2lyZC4gQmVlaW5mbHVzc3QgZGllIEdlYnVydHN0YWctQW56 +ZWlnZSAocmVjaG5ldCBBbHRlciBiYXNpZXJlbmQgYXVmIGRpZXNlbSBKYWhyKSB1bmQgZGllIFZv +cnNjaGzDpGdlIGJlaW0gQW5sZWdlbiB2b24gRmVpZXJ0YWdlbi9GZXJpZW4uIFp1bSBKYWhyZXN3 +ZWNoc2VsIGhpZXIgYWt0dWFsaXNpZXJlbi48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgPHA+PHN0cm9uZz5JbmZvdGV4dDo8L3N0cm9uZz4gS3VyemVyIEhpbndlaXN0ZXh0ICh6 +LkIuIOKAnlJlaWhlbmZvbGdlIGF1ZiBXdW5zY2ggZGVyIEbDvHN0IGFuZ2VwYXNzdC4gL1dpdCIp +LCBkZXIgaW0gSW5mb3JtYXRpb25zZmVuc3RlciBvYmVuIHByb21pbmVudCBlcnNjaGVpbnQuIEd1 +dCBnZWVpZ25ldCBmw7xyIGt1cnplIOKAnkJyZWFraW5nIE5ld3MiIGFuIGRpZSBOdXR6ZXIuPC9w +PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+U3VwcG9ydGluZm86 +PC9zdHJvbmc+IEFuc3ByZWNocGFydG5lciBiZWkgZmFjaGxpY2hlbiBvZGVyIHRlY2huaXNjaGVu +IEZyYWdlbi4gRXJzY2hlaW50IGltIEluZm9ybWF0aW9uc2ZlbnN0ZXIgZGFydW50ZXIuIEhpZXIg +VGVsZWZvbm51bW1lcm4sIE1haWxhZHJlc3NlbiB1bmQgZGllIGZhY2hsaWNoZSBWZXJhbnR3b3J0 +dW5nIGFuZ2ViZW4uPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxzdHJv +bmc+U2NobGllw59pbmZvOjwvc3Ryb25nPiBIaW53ZWlzIHp1bSBBdXRvLVNodXRkb3duLVZlcmhh +bHRlbiwgZGVyIGltIEluZm9ybWF0aW9uc2ZlbnN0ZXIgYW5nZXplaWd0IHdpcmQuIFBsYXR6aGFs +dGVyIDxjb2RlPnttaW51dGVufTwvY29kZT4gd2lyZCBhdXRvbWF0aXNjaCBlcnNldHp0LjwvcD4K +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPlNwZWljaGVybjo8L3N0 +cm9uZz4gw4RuZGVydW5nZW4gd2VyZGVuIG51ciBkdXJjaCBkZW4gU3BlaWNoZXJuLUJ1dHRvbiDD +vGJlcm5vbW1lbi4gRWluIFJlbG9hZCBkZXIgU2VpdGUgaXN0IGRhbmFjaCBuaWNodCBuw7Z0aWcu +PC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAg +ICAgICAgIDwvZGV0YWlscz4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZWlu +c3RlbGx1bmdlbi1mb3JtIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9 +ImZvcm0tZ3J1cHBlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9y +PSJlaW5zLWphaHIiPlBsYW51bmdzamFocjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTpmbGV4O2dhcDoxMnB4O2FsaWduLWl0ZW1zOmNl +bnRlcjtmbGV4LXdyYXA6d3JhcCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +IDxpbnB1dCB0eXBlPSJudW1iZXIiIGlkPSJlaW5zLWphaHIiIGNsYXNzPSJmb3JtLWlucHV0IiBt +aW49IjIwMjAiIG1heD0iMjA5OSIgc3R5bGU9IndpZHRoOjEyMHB4Ij4KICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLWphaHJlc3dlY2hzZWwiIGNsYXNz +PSJidG4gYnRuLXNlayIgdHlwZT0iYnV0dG9uIiB0aXRsZT0iV2VjaHNlbHQgZGFzIFBsYW51bmdz +amFociBhdWYgZGFzIGxpbmtzIGVpbmdlc3RlbGx0ZSBKYWhyIOKAlCB2b3Igb2RlciB6dXLDvGNr +LiBCZXN0w6R0aWd1bmcgKyBSZWxvYWQsIGtlaW4gRGF0ZW52ZXJsdXN0LiI+QXVmIGVpbmdlc3Rl +bGx0ZXMgSmFociB3ZWNoc2VsbjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzbWFsbCBzdHlsZT0i +ZGlzcGxheTpibG9jaztjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTttYXJnaW4tdG9wOjZweCI+R2V3 +w7xuc2NodGVzIEphaHIgbGlua3MgZWluc3RlbGxlbiB1bmQgYXVmIOKAnkF1ZiBlaW5nZXN0ZWxs +dGVzIEphaHIgd2VjaHNlbG4iIGtsaWNrZW4g4oCUIGRpZSBBbnNpY2h0IHNwcmluZ3QgYXVmIGRh +cyBnZXfDpGhsdGUgSmFociAoPGI+dm9yIG9kZXIgenVyw7xjazwvYj4pIHVuZCB3aXJkIG5ldSBn +ZWxhZGVuLiBEYXMgYmxvw59lIMOEbmRlcm4gZGVzIEZlbGRlcyBzcGVpY2hlcnQgbm9jaCBuaWNo +dHM7IGVyc3QgZGVyIEJ1dHRvbiB3ZWNoc2VsdC4gRGllIFBsYW51bmdzYW5zaWNodCB6ZWlndCB6 +dXPDpHR6bGljaCBkZW4gSmFudWFyIGRlcyBGb2xnZWphaHJlcyBhbHMgVm9ycGxhbnVuZ3NiZXJl +aWNoOyBiZXJlaXRzIGRvcnQgZ2VwbGFudGUgRGllbnN0ZSBibGVpYmVuIHVudGVyIGlocmVtIERh +dHVtIGVyaGFsdGVuLiBLZWluIERhdGVudmVybHVzdC48L3NtYWxsPgogICAgICAgICAgICAgICAg +ICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNz +PSJmb3JtLWdydXBwZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZv +cj0iZWlucy1wYXBpZXJrb3JiLXRhZ2UiPlBhcGllcmtvcmItQXVmYmV3YWhydW5nIChUYWdlKTwv +bGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9Im51bWJl +ciIgaWQ9ImVpbnMtcGFwaWVya29yYi10YWdlIiBjbGFzcz0iZm9ybS1pbnB1dCIgbWluPSIwIiBt +YXg9IjM2NSIgc3R5bGU9IndpZHRoOjEyMHB4Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICA8c21hbGwgc3R5bGU9ImRpc3BsYXk6YmxvY2s7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7 +bWFyZ2luLXRvcDo0cHgiPldpZSB2aWVsZSBUYWdlIHNvZnQtZ2Vsw7ZzY2h0ZSBQZXJzb25lbiBp +bSBQYXBpZXJrb3JiIHZlcmJsZWliZW4sIGJldm9yIHNpZSBiZWltIG7DpGNoc3RlbiBMw7ZzY2gt +Vm9yZ2FuZyBlbmRnw7xsdGlnIGVudGZlcm50IHdlcmRlbi4gPGNvZGU+MDwvY29kZT4gPSBzb2Zv +cnQgYmVpbSBuw6RjaHN0ZW4gTMO2c2NoLVZvcmdhbmcgYXVmcsOkdW1lbi48L3NtYWxsPgogICAg +ICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAg +ICA8ZGl2IGNsYXNzPSJmb3JtLWdydXBwZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgPGxhYmVsIGZvcj0iZWlucy1lbWFpbC1kb21haW4iPkUtTWFpbCBBdXRvLVN1ZmZpeCBEb21h +aW48L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0 +ZXh0IiBpZD0iZWlucy1lbWFpbC1kb21haW4iIGNsYXNzPSJmb3JtLWlucHV0IiBwbGFjZWhvbGRl +cj0iQHBvbGl6ZWkubnJ3LmRlIiBzdHlsZT0id2lkdGg6MjQwcHgiPgogICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgIDxzbWFsbCBzdHlsZT0iZGlzcGxheTpibG9jaztjb2xvcjp2YXIoLS10 +ZXh0LW11dGVkKTttYXJnaW4tdG9wOjRweCI+RGllc2UgRG9tYWluIHdpcmQgYXV0b21hdGlzY2gg +YW5nZWjDpG5ndCwgd2VubiBiZWltIEJlYXJiZWl0ZW4gZWluZXIgUGVyc29uZW4tRS1NYWlsIG51 +ciBkZXIgbG9rYWxlIFRlaWwgZWluZ2VnZWJlbiB3aXJkICh6LiBCLiA8ZW0+TXVlbGxlcjwvZW0+ +IOKGkiA8ZW0+TXVlbGxlckBwb2xpemVpLm5ydy5kZTwvZW0+KS4gV2lya3QgbnVyLCB3ZW5uIGRh +cyBGZWF0dXJlIDxlbT7igJ5FLU1haWw6IEF1dG8tU3VmZml4IjwvZW0+IGFrdGl2IGlzdC48L3Nt +YWxsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAg +ICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdydXBwZSI+CiAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgPGxhYmVsIGZvcj0iZWlucy1hdmF0YXItZ3JvZXNzZSI+UHJvZmlsYmlsZC1a +aWVsZ3LDtsOfZSAoUGl4ZWwsIHF1YWRyYXRpc2NoKTwvbGFiZWw+CiAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9Im51bWJlciIgaWQ9ImVpbnMtYXZhdGFyLWdyb2Vz +c2UiIGNsYXNzPSJmb3JtLWlucHV0IiBtaW49IjEwMCIgbWF4PSI2MDAiIHN0ZXA9IjIwIiBzdHls +ZT0id2lkdGg6MTIwcHgiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzbWFsbCBz +dHlsZT0iZGlzcGxheTpibG9jaztjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTttYXJnaW4tdG9wOjRw +eCI+QmVpbSBVcGxvYWQgd2lyZCBkYXMgaG9jaGdlbGFkZW5lIEJpbGQgYXVmIGRpZXNlIEthbnRl +bmzDpG5nZSBoZXJ1bnRlcmdlcmVjaG5ldCB1bmQgYWxzIEpQRUcgZ2VzcGVpY2hlcnQuIEdyw7bD +n2VyID0gc2Now6RyZmVyLCBhYmVyIG1laHIgU3BlaWNoZXIgcHJvIEJpbGQuIFN0YW5kYXJkOiA8 +Y29kZT4yMDA8L2NvZGU+ICh+MTDigJMyNSZuYnNwO0tCIHBybyBEYXRlaSkuIFdlcnRlIHp3aXNj +aGVuIDEwMCB1bmQgNjAwIGVybGF1YnQuPC9zbWFsbD4KICAgICAgICAgICAgICAgICAgICAgICAg +ICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1n +cnVwcGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9ImVpbnMt +ZWRpdG9yLXRyaWdnZXIiPlNjaGljaHQtRWRpdG9yIMO2ZmZuZW4gbWl0PC9sYWJlbD4KICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGlkPSJlaW5zLWVkaXRvci10cmlnZ2Vy +IiBjbGFzcz0iZm9ybS1pbnB1dCIgc3R5bGU9IndpZHRoOjI0MHB4Ij4KICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0icmVjaHRzIj5SZWNodHNrbGljayAo +U3RhbmRhcmQpPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxv +cHRpb24gdmFsdWU9ImxpbmtzIj5MaW5rc2tsaWNrPC9vcHRpb24+CiAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9Im1pdHRlIj5NYXVzcmFkLUtsaWNrIChN +aXR0ZSk8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlv +biB2YWx1ZT0iZG9wcGVsIj5Eb3BwZWxrbGljazwvb3B0aW9uPgogICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgIDwvc2VsZWN0PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxz +bWFsbCBzdHlsZT0iZGlzcGxheTpibG9jaztjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTttYXJnaW4t +dG9wOjRweCI+TGVndCBmZXN0LCB3ZWxjaGUgTWF1cy1Ba3Rpb24gaW4gZGVyIFBsYW50YWZlbCBk +YXMgRHJvcGRvd24genVyIFNjaGljaHRhdXN3YWhsIMO2ZmZuZXQuIEVpbiBlaW5mYWNoZXIgPHN0 +cm9uZz5MaW5rc2tsaWNrIG1hcmtpZXJ0PC9zdHJvbmc+IGRpZSBaZWxsZSBpbW1lciBudXIgKGF1 +w59lciDigJ5MaW5rc2tsaWNrIiBpc3QgaGllciBnZXfDpGhsdCkuIFdpcmt0IGbDvHIgYWxsZSBO +dXR6ZXI7IGdyZWlmdCBuYWNoIGRlbSBuw6RjaHN0ZW4gTmV1bGFkZW4gZGVyIFNlaXRlLjwvc21h +bGw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAg +ICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3J1cHBlIiBzdHlsZT0icGFkZGluZzoxMnB4IDE0 +cHg7YmFja2dyb3VuZDp2YXIoLS1iZy1jYXJkKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRl +ci1saWdodCk7Ym9yZGVyLXJhZGl1czo2cHgiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgIDxzdHJvbmc+SW5mby0vU3VwcG9ydHRleHRlIHVuZCBCZWRpZW51bmdzLUhpbndlaXNlPC9z +dHJvbmc+IHdlcmRlbiBpbSBUYWIgPGVtPuKAnkJlc2NocmlmdHVuZ2VuICZhbXA7IFRleHRlIjwv +ZW0+IGdlcGZsZWd0IChtaXQgRm9ybWF0aWVydW5ncy1FZGl0b3IpLgogICAgICAgICAgICAgICAg +ICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGlk +PSJidG4tZWluc3RlbGx1bmdlbi1zcGVpY2hlcm4iIGNsYXNzPSJidG4gYnRuLXByaW1hZXIiIHN0 +eWxlPSJtYXJnaW4tdG9wOjEycHgiPkVpbnN0ZWxsdW5nZW4gc3BlaWNoZXJuPC9idXR0b24+CiAg +ICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvc2VjdGlv +bj4KCiAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9ImFkbWluLXNla3Rpb24gdmVy +c3RlY2t0IiBpZD0iYWRtaW4tc2VrdGlvbi1mZWF0dXJlcyIgZGF0YS1zdWJ0YWItc2VrdGlvbj0i +ZmVhdHVyZXMiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1pbi1zZWt0 +aW9uLWtvcGYiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzPkZ1bmt0aW9uZW4gZWlu +LS9hdXNibGVuZGVuPC9oMz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAg +ICAgICAgICAgICAgICAgIDxkZXRhaWxzIGNsYXNzPSJhZG1pbi1pbmZvIiBkYXRhLWluZm8ta2V5 +PSJmZWF0dXJlcyIgb3Blbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdW1tYXJ5Pjxz +cGFuIGNsYXNzPSJhZG1pbi1pbmZvLWNoZXYiPuKWuDwvc3Bhbj5IaW53ZWlzZSB6dSBkZW4gRnVu +a3Rpb25lbjxzcGFuIGNsYXNzPSJhZG1pbi1pbmZvLWJhZGdlIj5BdWZrbGFwcGVuIC8gWnVrbGFw +cGVuPC9zcGFuPjwvc3VtbWFyeT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xh +c3M9ImFkbWluLWluZm8tYm9keSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+ +PHN0cm9uZz5ad2Vjazo8L3N0cm9uZz4gSGllciBrw7ZubmVuIGVpbnplbG5lLCBrb21wbGV4ZXJl +IEZ1bmt0aW9uZW4gZGVyIEFud2VuZHVuZyBlaW4tIG9kZXIgYXVzZ2VzY2hhbHRldCB3ZXJkZW4u +IERhcyBoaWxmdCwgZGllIFVJIGplIG5hY2ggQW53ZW5kdW5nc2JlZGFyZiB6dSBlbnRzY2hsYWNr +ZW4g4oCUIHdhcyBuaWNodCBnZWJyYXVjaHQgd2lyZCwgd2lyZCBhdXNnZWJsZW5kZXQuPC9wPgog +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+VmVyZsO8Z2JhcmUgU2No +YWx0ZXI6PC9zdHJvbmc+PC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bD4K +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxiPlNjaGljaHRmb2xnZW4t +QW56ZWlnZTwvYj4g4oCUIHplaWd0IGltIEhlYWRlciBwcm8gU3RhbmRvcnQgZGllIEFCQy9CQ0Ev +Q0FCLVJvdGF0aW9uLiBXZXIgZGllIFJvdGF0aW9uIG5pY2h0IGFrdGl2IHBmbGVndCwga2FubiBk +YXMgYXVzYmxlbmRlbi48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8 +bGk+PGI+U3TDpHJrZS1BbnplaWdlPC9iPiDigJQgRnxTfE4tQmVzZXR6dW5nc3phaGwgcHJvIFRh +ZyBpbSBIZWFkZXIuIEtlcm4tRmVhdHVyZSBmw7xyIGRpZSBCZXNldHp1bmdzcGxhbnVuZy48L2xp +PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGI+UnVoZXplaXQtUHLD +vGZ1bmc8L2I+IOKAlCB3YXJudCBiZWkgJmx0OyAxMWggUnVoZXplaXQgendpc2NoZW4gendlaSBT +Y2hpY2h0ZW4gZGVyc2VsYmVuIFBlcnNvbi4gQXVzIEFyYlpHLVNpY2h0IHdpY2h0aWcuPC9saT4K +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxiPkZyZW1kLcOEbmRlcnVu +ZyBXYXJudW5nPC9iPiDigJQgQmVzdMOkdGlndW5nLCB3ZW5uIG1hbiBkaWUgU2NoaWNodCBlaW5l +ciBhbmRlcmVuIFBlcnNvbiDDpG5kZXJ0LiBTY2jDvHR6dCB2b3IgdmVyc2VoZW50bGljaGVuIMOE +bmRlcnVuZ2VuLjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48 +Yj5GYWlybmVzcy1BbnplaWdlPC9iPiDigJQgemVpZ3QgcHJvIFBlcnNvbiBkYXMgVmVyaMOkbHRu +aXMgdm9uIFdvY2hlbmVuZC0vRmVpZXJ0YWdzZGllbnN0ZW4gaW4gZGVyIFN0YXRpc3Rpay1BdXN3 +ZXJ0dW5nLjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48Yj5N +dXN0ZXItQW5hbHlzZTwvYj4g4oCUIGVya2VubnQgQXVmZsOkbGxpZ2tlaXRlbiAoei5CLiB3aWVk +ZXJob2x0ZSBGcsO8aC1uYWNoLU5hY2h0LUZvbGdlbiwgdW5nbGVpY2hlIFZlcnRlaWx1bmcpLjwv +bGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48Yj5BYndlc2VuaGVp +dHMtS2FjaGVsbjwvYj4g4oCUIHplaWd0IHBybyBQZXJzb24gZWluZSBrb21wYWt0ZSBBYndlc2Vu +aGVpdHMtw5xiZXJzaWNodCAoS3JhbmsvVXJsYXViL0xHL0FaQSkuPC9saT4KICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxiPkRldGFpbC1UYWJlbGxlPC9iPiDigJQgYXVz +a2xhcHBiYXJlIFN0YXRpc3Rpay1UYWJlbGxlIG1pdCBhbGxlbiBFaW56ZWx3ZXJ0ZW4uPC9saT4K +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgIDxwPjxzdHJvbmc+U29mb3J0LVdpcmt1bmc6PC9zdHJvbmc+IMOEbmRlcnVu +Z2VuIHdlcmRlbiBzb2ZvcnQgZ2VzcGVpY2hlcnQgdW5kIGdyZWlmZW4gZGlyZWt0IChvaG5lIFNl +aXRlbi1SZWxvYWQpIOKAlCBkZXIgZW50c3ByZWNoZW5kZSBCZXJlaWNoIGVyc2NoZWludC92ZXJz +Y2h3aW5kZXQgdW1nZWhlbmQuPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ +CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGV0YWlscz4KICAgICAgICAgICAgICAgICAgICAg +ICAgPGRpdiBpZD0iZmVhdHVyZXMtaW5oYWx0Ij48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8 +L3NlY3Rpb24+CiAgICAgICAgICAgICAgICA8L2Rpdj4KCgoKICAgICAgICAgICAgICAgIDwhLS0g +VGFiOiBCYWNrdXBzIC0tPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4tdGFiIHZl +cnN0ZWNrdCIgaWQ9ImFkbWluLXRhYi1iYWNrdXBzIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2 +IGNsYXNzPSJhZG1pbi1rb3BmIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGgyPkJhY2t1cHMg +JmFtcDsgV2llZGVyaGVyc3RlbGx1bmc8L2gyPgogICAgICAgICAgICAgICAgICAgICAgICA8YnV0 +dG9uIGlkPSJidG4tYmFja3VwLW5ldSIgY2xhc3M9ImJ0biBidG4tZXJmb2xnIj5OZXVlcyBCYWNr +dXAgamV0enQgZXJzdGVsbGVuPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAg +ICAgICAgICAgICAgICAgICAgPGRldGFpbHMgY2xhc3M9ImFkbWluLWluZm8iIGRhdGEtaW5mby1r +ZXk9ImJhY2t1cHMiIG9wZW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzdW1tYXJ5PjxzcGFu +IGNsYXNzPSJhZG1pbi1pbmZvLWNoZXYiPuKWuDwvc3Bhbj5IaW53ZWlzZSB6dSBCYWNrdXBzPHNw +YW4gY2xhc3M9ImFkbWluLWluZm8tYmFkZ2UiPkF1ZmtsYXBwZW4gLyBadWtsYXBwZW48L3NwYW4+ +PC9zdW1tYXJ5PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1pbi1pbmZv +LWJvZHkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5XYXMgaXN0IGlu +IGVpbmVtIEJhY2t1cD88L3N0cm9uZz4gRWluZSAxOjEtS29waWUgZGVyIERhdGVpIDxjb2RlPnBs +YW51bmcuanNvbjwvY29kZT4g4oCUIGFsc28gYWxsZSBTY2hpY2h0LUVpbnRyw6RnZSB1bmQgS29t +bWVudGFyZSB6dW0gWmVpdHB1bmt0IGRlcyBCYWNrdXBzLiBQZXJzb25lbmxpc3RlLCBGZWllcnRh +Z2UsIEZlcmllbiB1bmQgYW5kZXJlIEFkbWluLUtvbmZpZ3VyYXRpb24gc2luZCA8ZW0+bmljaHQ8 +L2VtPiBUZWlsIGRlcyBCYWNrdXBzIChkaWUgbGllZ2VuIGluIDxjb2RlPmFkbWluLmpzb248L2Nv +ZGU+KS48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPldhbm4gd2Vy +ZGVuIEJhY2t1cHMgZXJzdGVsbHQ/PC9zdHJvbmc+PC9wPgogICAgICAgICAgICAgICAgICAgICAg +ICAgICAgPHVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48Yj5NYW51ZWxs +PC9iPiDigJQgS2xpY2sgYXVmIOKAnk5ldWVzIEJhY2t1cCBqZXR6dCBlcnN0ZWxsZW4iIG9kZXIg +YXVmIGRhcyBCYWNrdXAtU3ltYm9sIGluIGRlciBIYXVwdC1Ub29sYmFyLjwvbGk+CiAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxiPlZvciBEdW1teWRhdGVuPC9iPiDigJQgYXV0 +b21hdGlzY2ggdm9yIGRlbSBFaW5zcGllbGVuIHZvbiBUZXN0ZGF0ZW4uPC9saT4KICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGI+Vm9yIFJlc2V0PC9iPiDigJQgYXV0b21hdGlz +Y2ggdm9yIGRlbSDigJ5QbGFudW5nIHp1csO8Y2tzZXR6ZW4iLjwvbGk+CiAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgPGxpPjxiPlZvciBXaWVkZXJoZXJzdGVsbHVuZzwvYj4g4oCUIGF1 +dG9tYXRpc2NoIGJldm9yIGVpbiBCYWNrdXAgZWluZ2VzcGllbHQgd2lyZCAoU2ljaGVyaGVpdHNr +b3BpZSBkZXIgYWt0dWVsbGVuIFBsYW51bmcpLjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAg +ICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5TcGVpY2hl +cm9ydDo8L3N0cm9uZz4gPGNvZGU+VkkzL2RhdGEvcGxhbnVuZ19iYWNrdXBfKi5qc29uPC9jb2Rl +PiAoYmVpbSBXaW5kb3dzLURlcGxveW1lbnQ6IDxjb2RlPiVOV19IT01FJVxWSTNfREdMX1NlcnZl +clxkYXRhXDwvY29kZT4pLiBEaWUgQmFja3VwcyBsaWVnZW4gbnVyIGxva2FsIGltIERhdGVub3Jk +bmVyIHVuZCB3ZXJkZW4gbmljaHQgaW4gZ2VtZWluc2FtZW4gQWJsYWdlbiBtaXRnZWbDvGhydC48 +L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPkFrdGlvbmVuIHBybyBC +YWNrdXA6PC9zdHJvbmc+PC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsPgogICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48Yj5XaWVkZXJoZXJzdGVsbGVuPC9iPiDi +gJQgZXJzZXR6dCBkaWUgYWt0dWVsbGUgUGxhbnVuZyBkdXJjaCBkYXMgQmFja3VwLiBWb3JoZXIg +d2lyZCBlaW5lIFNpY2hlcmhlaXRza29waWUgZGVyIGpldHppZ2VuIFBsYW51bmcgZXJzdGVsbHQg +KDxjb2RlPnBsYW51bmdfYmFja3VwX3Zvcl93aWVkZXJoZXJzdGVsbHVuZ1/igKY8L2NvZGU+KSwg +ZmFsbHMgZHUgdmVyc2VoZW50bGljaCBkYXMgZmFsc2NoZSBCYWNrdXAgZWluZ2VzcGllbHQgaGFz +dC48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48Yj5IZXJ1bnRlcmxh +ZGVuPC9iPiDigJQgbMOkZHQgZGllIEpTT04tRGF0ZWkgYWxzIERvd25sb2FkLiBOw7x0emxpY2gg +ZsO8ciBBcmNoaXZpZXJ1bmcgb2RlciBXZWl0ZXJnYWJlLjwvbGk+CiAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgPGxpPjxiPkzDtnNjaGVuPC9iPiDigJQgZW50ZmVybnQgZGllIEJhY2t1 +cC1EYXRlaSBwZXJtYW5lbnQuPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+ +CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPldpY2h0aWcgdm9yIGRlbSBX +aWVkZXJoZXJzdGVsbGVuOjwvc3Ryb25nPiBBbSBiZXN0ZW4gdm9yaGVyIGFsbGUgQmVhcmJlaXRl +ciBpbmZvcm1pZXJlbi4gRWluZSBXaWVkZXJoZXJzdGVsbHVuZyDDvGJlcnNjaHJlaWJ0IGRpZSBh +a3RpdmUgUGxhbnVuZyBzb2ZvcnQg4oCUIMOEbmRlcnVuZ2VuLCBkaWUgbmFjaCBkZW0gWmVpdHB1 +bmt0IGRlcyBCYWNrdXBzIGdlbWFjaHQgd3VyZGVuLCBzaW5kIGRhbm4gaW4gZGVyIFNpY2hlcmhl +aXRza29waWUgYWJydWZiYXIsIGFiZXIgbmljaHQgbWVociBpbiBkZXIgYWt0aXZlbiBQbGFudW5n +LjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAg +PC9kZXRhaWxzPgogICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9ImJhY2t1cC1saXN0ZS1lcmdl +Ym5pcyIgY2xhc3M9Imdlbi1pbmZvIHZlcnN0ZWNrdCIgc3R5bGU9Im1hcmdpbi1ib3R0b206MTJw +eCI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJhZG1pbi10YWJlbGxl +IiBpZD0iYmFja3VwLXRhYmVsbGUiPgogICAgICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+PHRy +PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDoxODBweCI+RXJz +dGVsbHQgYW08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0 +aDoxMzBweCI+VHlwPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0i +d2lkdGg6MjAwcHgiPkluaGFsdDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+ +RGF0ZWluYW1lPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lk +dGg6OTBweDt0ZXh0LWFsaWduOnJpZ2h0Ij5HcsO2w59lPC90aD4KICAgICAgICAgICAgICAgICAg +ICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6MzAwcHgiPkFrdGlvbmVuPC90aD4KICAgICAgICAg +ICAgICAgICAgICAgICAgPC90cj48L3RoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICA8dGJv +ZHkgaWQ9ImJhY2t1cC10Ym9keSI+PC90Ym9keT4KICAgICAgICAgICAgICAgICAgICA8L3RhYmxl +PgogICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgPCEtLSBUYWI6IEhpbndl +aXNlLVByb3Rva29sbCAobnVyIFN1cGVyVXNlcikgLS0+CiAgICAgICAgICAgICAgICA8ZGl2IGNs +YXNzPSJhZG1pbi10YWIgdmVyc3RlY2t0IiBpZD0iYWRtaW4tdGFiLWhpbndlaXNlLXByb3Rva29s +bCI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4ta29wZiI+CiAgICAgICAg +ICAgICAgICAgICAgICAgIDxoMj5IaW53ZWlzZS1Qcm90b2tvbGw8L2gyPgogICAgICAgICAgICAg +ICAgICAgICAgICA8cCBjbGFzcz0iYWRtaW4ta29wZi1zdWIiPkFsbGUgYWt0aXZlbiBJbi1BcHAt +SGlud2Vpc2UgbWl0IEVtcGbDpG5nZXItTGlzdGUgdW5kIExlc2UtU3RhdHVzLiBOdXIgc2ljaHRi +YXIgZsO8ciBTdXBlclVzZXIuIMOEbHRlcmUgSGlud2Vpc2UgKCZndDsgMzAgVGFnZSBVTkQgdm9u +IGFsbGVuIEVtcGbDpG5nZXJuIGdlbGVzZW4pIHdlcmRlbiBhdXRvbWF0aXNjaCBhdXNnZXLDpHVt +dC48L3A+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRp +diBjbGFzcz0iaGlud2Vpc2UtcHJvdG9rb2xsLXRvb2xiYXIiPgogICAgICAgICAgICAgICAgICAg +ICAgICA8bGFiZWw+VHlwOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBpZD0i +aHAtZmlsdGVyLXR5cCIgY2xhc3M9ImZvcm0taW5wdXQiIHN0eWxlPSJ3aWR0aDoyMDBweCI+CiAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iIj7igJQgYWxsZSDi +gJQ8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVl +PSJpZGVudGl0YWV0X2dlYWVuZGVydCI+SWRlbnRpdMOkdCBnZcOkbmRlcnQ8L29wdGlvbj4KICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJyb2xsZV9nZWFlbmRl +cnQiPlJvbGxlIGdlw6RuZGVydDwvb3B0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgIDxvcHRpb24gdmFsdWU9ImJhY2t1cF93aWVkZXJoZXJnZXN0ZWxsdCI+QmFja3VwIHdpZWRl +cmhlcmdlc3RlbGx0PC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9w +dGlvbiB2YWx1ZT0icGxhbnVuZ19yZXNldCI+UGxhbnVuZyB6dXLDvGNrZ2VzZXR6dDwvb3B0aW9u +PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9ImtyYW5rbWVs +ZHVuZyI+S3JhbmttZWxkdW5nPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8 +L3NlbGVjdD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD4KICAgICAgICAgICAgICAg +ICAgICAgICAgPGxhYmVsPkFiOiAgICA8aW5wdXQgdHlwZT0iZGF0ZSIgaWQ9ImhwLWZpbHRlci12 +b24iIGNsYXNzPSJmb3JtLWlucHV0IiBzdHlsZT0id2lkdGg6MTQwcHgiPjwvbGFiZWw+CiAgICAg +ICAgICAgICAgICAgICAgICAgIDxsYWJlbD5CaXM6ICAgPGlucHV0IHR5cGU9ImRhdGUiIGlkPSJo +cC1maWx0ZXItYmlzIiBjbGFzcz0iZm9ybS1pbnB1dCIgc3R5bGU9IndpZHRoOjE0MHB4Ij48L2xh +YmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9 +ImJ0biBidG4tc2VrIGJ0bi1rbGVpbiIgaWQ9ImhwLWFrdHVhbGlzaWVyZW4iPkFrdHVhbGlzaWVy +ZW48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAg +ICA8dGFibGUgY2xhc3M9ImFkbWluLXRhYmVsbGUgaGlud2Vpc2UtcHJvdG9rb2xsLXRhYmVsbGUi +PgogICAgICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+PHRyPgogICAgICAgICAgICAgICAgICAg +ICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDoxMjBweCI+V2FubjwvdGg+CiAgICAgICAgICAgICAg +ICAgICAgICAgICAgICA8dGggc3R5bGU9IndpZHRoOjE1MHB4Ij5UeXA8L3RoPgogICAgICAgICAg +ICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDoxMjBweCI+QXVzZ2Vsw7ZzdCB2b248 +L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPktvbnRleHQ8L3RoPgogICAgICAg +ICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDozMDBweCI+RW1wZsOkbmdlciAm +YW1wOyBMZXNlc3RhdHVzPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj48L3RoZWFk +PgogICAgICAgICAgICAgICAgICAgICAgICA8dGJvZHkgaWQ9ImhpbndlaXNlLXByb3Rva29sbC10 +Ym9keSI+PC90Ym9keT4KICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAg +ICAgPC9kaXY+CgogICAgICAgICAgICAgICAgPCEtLSBUYWI6IEltcG9ydCAoRXhjZWwpIC0tPgog +ICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4tdGFiIHZlcnN0ZWNrdCIgaWQ9ImFkbWlu +LXRhYi1pbXBvcnQiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFkbWluLWtvcGYi +PgogICAgICAgICAgICAgICAgICAgICAgICA8aDI+RXhjZWwtSW1wb3J0PC9oMj4KICAgICAgICAg +ICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGV0YWlscyBjbGFzcz0iYWRt +aW4taW5mbyIgZGF0YS1pbmZvLWtleT0iaW1wb3J0IiBvcGVuPgogICAgICAgICAgICAgICAgICAg +ICAgICA8c3VtbWFyeT48c3BhbiBjbGFzcz0iYWRtaW4taW5mby1jaGV2Ij7ilrg8L3NwYW4+SGlu +d2Vpc2UgenVtIEV4Y2VsLUltcG9ydDxzcGFuIGNsYXNzPSJhZG1pbi1pbmZvLWJhZGdlIj5BdWZr +bGFwcGVuIC8gWnVrbGFwcGVuPC9zcGFuPjwvc3VtbWFyeT4KICAgICAgICAgICAgICAgICAgICAg +ICAgPGRpdiBjbGFzcz0iYWRtaW4taW5mby1ib2R5Ij4KICAgICAgICAgICAgICAgICAgICAgICAg +ICAgIDxwPjxzdHJvbmc+V2FzIHdpcmQgaW1wb3J0aWVydD88L3N0cm9uZz4gU2NoaWNodGVpbnRy +w6RnZSB1bmQgS29tbWVudGFyZSBhdXMgZWluZXIgRXhjZWwtRGF0ZWkgaW0gRm9ybWF0IGRlciBi +aXNoZXJpZ2VuIDxjb2RlPjIwMjYtVkkzLURHTC1QbGFudW5nLnhsc208L2NvZGU+LiBEaWUgRGF0 +ZWkgd2lyZCBpbSBCcm93c2VyIGdlbGVzZW4g4oCUIGVzIHdlcmRlbiBrZWluZSBEYXRlbiBhbiBl +aW5lbiBleHRlcm5lbiBTZXJ2ZXIgZ2VzZW5kZXQuPC9wPgogICAgICAgICAgICAgICAgICAgICAg +ICAgICAgPHA+PHN0cm9uZz5FcndhcnRldGVzIFNoZWV0LUxheW91dDo8L3N0cm9uZz48L3A+CiAg +ICAgICAgICAgICAgICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgPGxpPlNoZWV0IG1pdCBOYW1lbiA8Yj7igJ5QbGFudW5nIjwvYj48L2xpPgogICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5EYXR1bXMtU3BhbHRlbiBhYiBTcGFsdGUgPGI+ +SjwvYj4gKEV4Y2VsLVNlcmlhbC1EYXRlcyBpbiBaZWlsZSAxKTwvbGk+CiAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgPGxpPlBlcnNvbmVuLVplaWxlbiBhYiBaZWlsZSA8Yj4yMTwvYj4s +IDxiPk5hY2huYW1lIGluIFNwYWx0ZSBDPC9iPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgPGxpPlplbGx3ZXJ0ZSA9IFNjaGljaHRjb2RlcyAoPGNvZGU+Ri1ER0w8L2NvZGU+ +LCA8Y29kZT5Vcmw8L2NvZGU+LCDigKYpPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICA8bGk+WmVsbC1Lb21tZW50YXJlIChFeGNlbC1Lb21tZW50YXJlKSB3ZXJkZW4gYWxzIEtv +bW1lbnRhciDDvGJlcm5vbW1lbjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3Vs +PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5BYmdsZWljaDo8L3N0cm9u +Zz48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgPGxpPjxiPlBlcnNvbmVuPC9iPiB3ZXJkZW4gw7xiZXIgZGVuIDxiPk5h +Y2huYW1lbjwvYj4gZ2VtYXRjaHQuIFVuYmVrYW5udGUgUGVyc29uZW4gb2RlciBOYW1lbiBtaXQg +bWVocmVyZW4gVHJlZmZlcm4gbcO8c3NlbiBtYW51ZWxsIHp1Z2VvcmRuZXQgb2RlciBpZ25vcmll +cnQgd2VyZGVuLjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxiPlNj +aGljaHRjb2RlczwvYj4gd2VyZGVuIGdlZ2VuIGRpZSBha3RpdmVuIENvZGVzIGFiZ2VnbGljaGVu +LiBCZWthbm50ZSA8Y29kZT5pbXBvcnRBbGlhc2U8L2NvZGU+ICh6LkIuIDxjb2RlPkZXREY8L2Nv +ZGU+IOKGkiA8Y29kZT5GLVdERjwvY29kZT4pIHdlcmRlbiBhdXRvbWF0aXNjaCBlcnNldHp0LiBV +bmJla2FubnRlIENvZGVzIHplaWd0IGRlciBEaWFsb2cgbWl0IGVpbmVtIERyb3Bkb3duIHp1bSBN +YXBwaW5nIG9kZXIg4oCeaWdub3JpZXJlbiIuPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAg +ICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk1vZHVzOjwv +c3Ryb25nPiBEZXIgSW1wb3J0IGVyc2V0enQgPGI+YWxsZTwvYj4gRWludHLDpGdlIHVuZCBLb21t +ZW50YXJlIGltIGdld8OkaGx0ZW4gWmVpdHJhdW0ga29tcGxldHQuIFZvciBkZW0gU2NocmVpYmVu +IHdpcmQgYXV0b21hdGlzY2ggZWluIEJhY2t1cCBkZXIgPGNvZGU+cGxhbnVuZy5qc29uPC9jb2Rl +PiBlcnN0ZWxsdC48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPkFi +bGF1Zjo8L3N0cm9uZz4gPGVtPkRhdGVpIGF1c3fDpGhsZW4g4oaSIEFuYWx5c2UgbMOkdWZ0IOKG +kiBNYXBwaW5nLURpYWxvZyDihpIgSW1wb3J0IHN0YXJ0ZW4uPC9lbT48L3A+CiAgICAgICAgICAg +ICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGV0YWlscz4KICAgICAg +ICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbXAtdXBsb2FkLWJveCI+CiAgICAgICAgICAgICAg +ICAgICAgICAgIDxsYWJlbCBmb3I9ImltcC1kYXRlaSIgY2xhc3M9ImJ0biBidG4tcHJpbWFlciIg +c3R5bGU9ImRpc3BsYXk6aW5saW5lLWJsb2NrIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAg +IDxpbnB1dCB0eXBlPSJmaWxlIiBpZD0iaW1wLWRhdGVpIiBhY2NlcHQ9Ii54bHN4LC54bHNtLC54 +bHMiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgRXhj +ZWwtRGF0ZWkgd8OkaGxlbgogICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPgogICAgICAg +ICAgICAgICAgICAgICAgICA8c3BhbiBpZD0iaW1wLWRhdGVpLW5hbWUiIHN0eWxlPSJtYXJnaW4t +bGVmdDoxMnB4O2ZvbnQtc2l6ZToxM3B4O2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpIj7igJQgbm9j +aCBrZWluZSBEYXRlaSBnZXfDpGhsdCDigJQ8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAg +IDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iaGlsZmUtaWNvbiIgYXJpYS1sYWJlbD0iSGls +ZmUgRXhjZWwtRm9ybWF0IGFuemVpZ2VuIiB0aXRsZT0iRXJ3YXJ0ZXQgZGllIFZJMy1ER0wtRXhj +ZWwtVm9ybGFnZSIgZGF0YS1oaWxmZT0iRXJ3YXJ0ZXQgZGllIFZJMy1ER0wtRXhjZWwtVm9ybGFn +ZTogUGVyc29uZW4gYWIgWmVpbGUgMjEgKE5hY2huYW1lIGluIFNwYWx0ZSBDKSwgRGF0dW1zYW5n +YWJlbiBpbiBaZWlsZSAxIChhYiBTcGFsdGUgSikuIFNwcmVjaGJsYXNlbi1Lb21tZW50YXJlIHdl +cmRlbiBhbHMgVGFnLUtvbW1lbnRhcmUgdWViZXJub21tZW4uIEZvcm1hdCAueGxzeC8ueGxzbS8u +eGxzLiI+PzwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAg +ICAgICAgIDxkaXYgaWQ9ImltcC1zdGF0dXMiIHN0eWxlPSJtYXJnaW4tdG9wOjIwcHgiPjwvZGl2 +PgogICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgPCEtLSBUYWI6IEV4cG9y +dCAoRXhjZWwvQ1NWKSAtLT4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFkbWluLXRhYiB2 +ZXJzdGVja3QiIGlkPSJhZG1pbi10YWItZXhwb3J0Ij4KICAgICAgICAgICAgICAgICAgICA8ZGl2 +IGNsYXNzPSJhZG1pbi1rb3BmIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGgyPkV4Y2VsLUV4 +cG9ydDwvaDI+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAg +PGRldGFpbHMgY2xhc3M9ImFkbWluLWluZm8iIGRhdGEtaW5mby1rZXk9ImV4cG9ydCIgb3Blbj4K +ICAgICAgICAgICAgICAgICAgICAgICAgPHN1bW1hcnk+PHNwYW4gY2xhc3M9ImFkbWluLWluZm8t +Y2hldiI+4pa4PC9zcGFuPkhpbndlaXNlIHp1bSBFeHBvcnQ8c3BhbiBjbGFzcz0iYWRtaW4taW5m +by1iYWRnZSI+QXVma2xhcHBlbiAvIFp1a2xhcHBlbjwvc3Bhbj48L3N1bW1hcnk+CiAgICAgICAg +ICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFkbWluLWluZm8tYm9keSI+CiAgICAgICAgICAg +ICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPldhcyB3aXJkIGV4cG9ydGllcnQ/PC9zdHJvbmc+ +IFBybyBQZXJzb24gdW5kIFRhZyBtaXQgRWludHJhZyBlaW5lIFplaWxlIG1pdCA8Yj5OYW1lLCBE +aWVuc3RncnVwcGUsIERhdHVtLCBNb25hdCwgVGFnLCBXb2NoZW50YWcsIEtXLCBTY2hpY2h0PC9i +PiAoQ29kZSkgdW5kIDxiPlNjaGljaHQtS2xhcnRleHQ8L2I+LiBFcyB3ZXJkZW4gbnVyIFRhZ2Ug +bWl0IGhpbnRlcmxlZ3RlciBTY2hpY2h0IGF1c2dlZ2ViZW4uPC9wPgogICAgICAgICAgICAgICAg +ICAgICAgICAgICAgPHA+PHN0cm9uZz5JbmZvYm94IHVudGVyaGFsYjo8L3N0cm9uZz4gT3B0aW9u +YWwgZm9sZ3QgdW50ZXIgZGVyIFRhYmVsbGUgZWluIHp3ZWl0ZXIgQmxvY2sg4oCeSGlud2Vpc2Ug +enUgVGFnZW4gbWl0IEJlc29uZGVyaGVpdGVuIiDigJQgZGllIGltIFBsYW4tSGVhZGVyIGVya2Fu +bnRlbiA8Yj5GZWllcnRhZ2UsIEZlcmllbiB1bmQgU29uZGVydGVybWluZTwvYj4gZGVzIGV4cG9y +dGllcnRlbiBaZWl0cmF1bXMgKERhdHVtLCBUeXAsIEJlemVpY2hudW5nLCBCZXNjaHJlaWJ1bmcp +LjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+VW1mYW5nOjwvc3Ry +b25nPiBHYW56ZXMgUGxhbnVuZ3NqYWhyLCBlaW56ZWxuZS9tZWhyZXJlIEthbGVuZGVyd29jaGVu +ICh2b27igJNiaXMpIG9kZXIgZWluIGZyZWllciBEYXR1bXNiZXJlaWNoLiA8c3Ryb25nPlBlcnNv +bmVua3JlaXM6PC9zdHJvbmc+IGFsbGUsIGJlc3RpbW10ZSBEaWVuc3RncnVwcGVuIG9kZXIgZWlu +emVsbmUgUGVyc29uZW4gKD0gaW5kaXZpZHVlbGxlciBFeHBvcnQpLjwvcD4KICAgICAgICAgICAg +ICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Rm9ybWF0Ojwvc3Ryb25nPiBGb3JtYXRpZXJ0ZXMg +PGI+WExTWDwvYj4gKHBhc3NlbmRlIFNwYWx0ZW5icmVpdGVuLCBUaXRlbHplaWxlLCBBdXRvLUZp +bHRlciDDvGJlciBkZXIgVGFiZWxsZSkgb2RlciA8Yj5DU1Y8L2I+IChVVEYtOCBtaXQgQk9NLCBT +ZW1pa29sb24tZ2V0cmVubnQg4oCUIGRpcmVrdCBpbiBFeGNlbC1ERSBsZXNiYXIpLiBBbGxlcyBs +w6R1ZnQgaW0gQnJvd3NlcjsgZXMgd2VyZGVuIGtlaW5lIERhdGVuIGFuIGVpbmVuIGV4dGVybmVu +IFNlcnZlciBnZXNlbmRldC48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAg +ICAgICAgICAgICAgICAgIDwvZGV0YWlscz4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJl +eHBvcnQtaW5oYWx0Ij48L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAg +ICAgIDwhLS0gVGFiOiBUZXN0ZGF0ZW4gLS0+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJh +ZG1pbi10YWIgdmVyc3RlY2t0IiBpZD0iYWRtaW4tdGFiLXRlc3RkYXRlbiI+CiAgICAgICAgICAg +ICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4ta29wZiI+CiAgICAgICAgICAgICAgICAgICAgICAg +IDxoMj5UZXN0ZGF0ZW4gLyBEdW1teWRhdGVuPC9oMj4KICAgICAgICAgICAgICAgICAgICA8L2Rp +dj4KICAgICAgICAgICAgICAgICAgICA8ZGV0YWlscyBjbGFzcz0iYWRtaW4taW5mbyIgZGF0YS1p +bmZvLWtleT0idGVzdGRhdGVuIiBvcGVuPgogICAgICAgICAgICAgICAgICAgICAgICA8c3VtbWFy +eT48c3BhbiBjbGFzcz0iYWRtaW4taW5mby1jaGV2Ij7ilrg8L3NwYW4+SGlud2Vpc2UgenUgVGVz +dGRhdGVuIC8gUmVzZXQ8c3BhbiBjbGFzcz0iYWRtaW4taW5mby1iYWRnZSI+QXVma2xhcHBlbiAv +IFp1a2xhcHBlbjwvc3Bhbj48L3N1bW1hcnk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYg +Y2xhc3M9ImFkbWluLWluZm8tYm9keSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48 +c3Ryb25nPldvZsO8cj88L3N0cm9uZz4gRGllc2UgRnVua3Rpb25lbiBzaW5kIGF1c3NjaGxpZcOf +bGljaCBmw7xyIFRlc3QtLCBEZW1vLSB1bmQgRWluYXJiZWl0dW5nc3p3ZWNrZSBnZWRhY2h0LiBC +ZWlkZSBlcnN0ZWxsZW4gPGI+YXV0b21hdGlzY2ggZWluIEJhY2t1cDwvYj4gZGVyIGFrdHVlbGxl +biBQbGFudW5nLCBiZXZvciBzaWUgYXVzZ2Vmw7xocnQgd2VyZGVuIOKAlCBkaWUgQmFja3VwcyBs +aWVnZW4gaW4gPGNvZGU+VkkzL2RhdGEvcGxhbnVuZ19iYWNrdXBfdm9yXyouanNvbjwvY29kZT4u +PC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5EdW1teWRhdGVuIGVp +bnNwaWVsZW46PC9zdHJvbmc+IEbDvGxsdCBkZW4gWmVpdHJhdW0gKGFrdHVlbGwgSmFudWFyIGJp +cyBBcHJpbCAyMDI2KSBtaXQgcmVhbGlzdGlzY2hlbiBTY2hpY2h0cGzDpG5lbiwgVXJsYXViLCBL +cmFua2hlaXQsIExlaHJnw6RuZ2VuLCBFaW5zYXR6dHJhaW5pbmcgdW5kIEFaLUF1c2dsZWljaC4g +RGllIEdydXBwZW4gQS9CL0Mgcm90aWVyZW4gd8O2Y2hlbnRsaWNoIGR1cmNoIEZyw7xoLS9TcMOk +dC0vTmFjaHRkaWVuc3QuIFBlcnNvbmVubGlzdGUsIEdydXBwZW5iZXplaWNobnVuZ2VuIHVuZCBF +aW5zdGVsbHVuZ2VuIGJsZWliZW4gdW52ZXLDpG5kZXJ0LjwvcD4KICAgICAgICAgICAgICAgICAg +ICAgICAgICAgIDxwPjxzdHJvbmc+UGxhbnVuZyB6dXLDvGNrc2V0emVuOjwvc3Ryb25nPiBMw7Zz +Y2h0IDxiPmFsbGU8L2I+IFNjaGljaHQtRWludHLDpGdlIHVuZCBLb21tZW50YXJlLiBEaWUgUGVy +c29uZW5saXN0ZSwgR3J1cHBlbiwgRmVpZXJ0YWdlIHVuZCBhbGxlIGFuZGVyZW4gRWluc3RlbGx1 +bmdlbiBibGVpYmVuIGVyaGFsdGVuLiBCYWNrdXAgd2lyZCB2b3JoZXIgZXJzdGVsbHQuPC9wPgog +ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5XaWVkZXJoZXJzdGVsbHVuZzo8 +L3N0cm9uZz4gQXVzIEJhY2t1cC1EYXRlaWVuIGthbm4gYWt0dWVsbCBudXIgcGVyIERhdGVpbWFu +aXB1bGF0aW9uICg8Y29kZT5wbGFudW5nX2JhY2t1cF8uLi48L2NvZGU+IHVtYmVuZW5uZW4genUg +PGNvZGU+cGxhbnVuZy5qc29uPC9jb2RlPikgd2llZGVyaGVyZ2VzdGVsbHQgd2VyZGVuLiBCYWNr +dXBzIHdlcmRlbiBudXIgaW0gRGF0ZW5vcmRuZXIgbG9rYWwgZ2VoYWx0ZW4uPC9wPgogICAgICAg +ICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5Wb3JzaWNodCBpbSBQcm9kdWt0aXZiZXRy +aWViOjwvc3Ryb25nPiBJbSBsYXVmZW5kZW4gUGxhbnVuZ3NiZXRyaWViIGRpZXNlIEJ1dHRvbnMg +bnVyIG1pdCBBYnNwcmFjaGUgbnV0emVuISBBdWNoIHdlbm4gQmFja3VwcyBlcnN0ZWxsdCB3ZXJk +ZW4g4oCUIGJlaSBha3RpdmVuIEJlYXJiZWl0ZXJuIGVudHN0ZWhlbiBLb25mbGlrdGUuPC9wPgog +ICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2RldGFp +bHM+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTpmbGV4OyBnYXA6MTZw +eDsgZmxleC13cmFwOndyYXA7IG1hcmdpbi10b3A6MTZweCI+CiAgICAgICAgICAgICAgICAgICAg +ICAgIDxkaXYgc3R5bGU9ImZsZXg6MTsgbWluLXdpZHRoOjI4MHB4OyBib3JkZXI6MXB4IHNvbGlk +IHZhcigtLXJhaG1lbik7IGJvcmRlci1yYWRpdXM6OHB4OyBwYWRkaW5nOjIwcHgiPgogICAgICAg +ICAgICAgICAgICAgICAgICAgICAgPGgzIHN0eWxlPSJtYXJnaW46MCAwIDhweCAwIj5EdW1teWRh +dGVuIGVpbnNwaWVsZW48L2gzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgc3R5bGU9 +ImNvbG9yOnZhcigtLXRleHQtZ2VkaW1tdCk7IG1hcmdpbjowIDAgMTZweCAwIj4KICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICBGw7xsbHQgSmFudWFyIGJpcyBBcHJpbCAyMDI2IG1pdCBy +ZWFsaXN0aXNjaGVuIFNjaGljaHRwbMOkbmVuLCBVcmxhdWIsIEtyYW5raGVpdCwKICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICBMZWhyZ8OkbmdlbiwgRWluc2F0enRyYWluaW5nIHVuZCBB +Wi1BdXNnbGVpY2guIEdydXBwZW4gQS9CL0Mgcm90aWVyZW4gd8O2Y2hlbnRsaWNoCiAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgZHVyY2ggRnLDvGgtL1Nww6R0LS9OYWNodGRpZW5zdC4g +RGllIGJlc3RlaGVuZGVuIFBlcnNvbmVuIHVuZCBCZXplaWNobnVuZ2VuIGJsZWliZW4gZXJoYWx0 +ZW4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAg +ICAgICAgICA8YnV0dG9uIGlkPSJidG4tZHVtbXlkYXRlbiIgY2xhc3M9ImJ0biBidG4tcHJpbWFl +ciI+RHVtbXlkYXRlbiBlaW5zcGllbGVuPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAg +IDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJmbGV4OjE7IG1pbi13 +aWR0aDoyODBweDsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1yYWhtZW4pOyBib3JkZXItcmFkaXVz +OjhweDsgcGFkZGluZzoyMHB4Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBzdHls +ZT0ibWFyZ2luOjAgMCA4cHggMCI+UGxhbnVuZyB6dXLDvGNrc2V0emVuPC9oMz4KICAgICAgICAg +ICAgICAgICAgICAgICAgICAgIDxwIHN0eWxlPSJjb2xvcjp2YXIoLS10ZXh0LWdlZGltbXQpOyBt +YXJnaW46MCAwIDE2cHggMCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTMO2c2No +dCA8c3Ryb25nPmFsbGU8L3N0cm9uZz4gRWludHLDpGdlIHVuZCBLb21tZW50YXJlLiBEaWUgUGVy +c29uZW5saXN0ZSwgR3J1cHBlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGZWll +cnRhZ2UgdW5kIGFsbGUgYW5kZXJlbiBFaW5zdGVsbHVuZ2VuIGJsZWliZW4gZXJoYWx0ZW4uCiAg +ICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAg +ICA8YnV0dG9uIGlkPSJidG4tcmVzZXQiIGNsYXNzPSJidG4gYnRuLWdlZmFociI+UGxhbnVuZyB6 +dXLDvGNrc2V0emVuPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAg +ICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJmbGV4OjE7IG1pbi13aWR0aDoyODBweDsg +Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1yYWhtZW4pOyBib3JkZXItcmFkaXVzOjhweDsgcGFkZGlu +ZzoyMHB4Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBzdHlsZT0ibWFyZ2luOjAg +MCA4cHggMCI+UHJvdG9rb2xsIGzDtnNjaGVuPC9oMz4KICAgICAgICAgICAgICAgICAgICAgICAg +ICAgIDxwIHN0eWxlPSJjb2xvcjp2YXIoLS10ZXh0LWdlZGltbXQpOyBtYXJnaW46MCAwIDE2cHgg +MCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGVlcnQgZGFzIDxzdHJvbmc+TG9n +YnVjaDwvc3Ryb25nPiB1bmQgZGllIDxzdHJvbmc+QVBJLUxvZy1EYXRlaTwvc3Ryb25nPi4KICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTaW5udm9sbCB2b3IgZGVtIExpdmUtR2FuZyBv +ZGVyIG5hY2ggVGVzdHMsIHVtIERpYWdub3NlLVNwdXJlbiB6dSBlbnRmZXJuZW4uCiAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgRWluIGVpbnplbG5lciBMb2didWNoLUVpbnRyYWcgPGNv +ZGU+cHJvdG9rb2xsLmdlbG9lc2NodDwvY29kZT4gYmxlaWJ0CiAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgZXJoYWx0ZW4sIGRhbWl0IGRhcyBFcmVpZ25pcyBzZWxic3QgbmFjaHZvbGx6 +aWVoYmFyIGJsZWlidC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAg +ICAgICAgICAgICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1wcm90b2tvbGwtbG9lc2NoZW4iIGNs +YXNzPSJidG4gYnRuLWdlZmFociI+UHJvdG9rb2xsIGzDtnNjaGVuPC9idXR0b24+CiAgICAgICAg +ICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAg +ICAgICAgICAgICAgIDxkaXYgaWQ9InRlc3RkYXRlbi1lcmdlYm5pcyIgY2xhc3M9InZlcnN0ZWNr +dCIgc3R5bGU9Im1hcmdpbi10b3A6MTZweCI+PC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4K +CiAgICAgICAgICAgICAgICA8IS0tIFRhYjogQmVzY2hyaWZ0dW5nZW4gJiBUZXh0ZSAoTWVyZ2Ug +4oCUIEJlemVpY2hudW5nZW4gKyBJbmZvcm1hdGlvbiAmIEhpbGZlKSAtLT4KICAgICAgICAgICAg +ICAgIDxkaXYgY2xhc3M9ImFkbWluLXRhYiB2ZXJzdGVja3QiIGlkPSJhZG1pbi10YWItYmV6ZWlj +aG51bmdlbiI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4ta29wZiI+CiAg +ICAgICAgICAgICAgICAgICAgICAgIDxoMj5CZXNjaHJpZnR1bmdlbiAmYW1wOyBUZXh0ZTwvaDI+ +CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgIDxzZWN0aW9u +IGNsYXNzPSJhZG1pbi1zZWt0aW9uIiBpZD0iYWRtaW4tc2VrdGlvbi1iZXplaWNobnVuZ2VuIj4K +ICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4tc2VrdGlvbi1rb3BmIj4K +ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMz5VSS1CZXplaWNobnVuZ2VuPC9oMz4KICAg +ICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkZXRh +aWxzIGNsYXNzPSJhZG1pbi1pbmZvIiBkYXRhLWluZm8ta2V5PSJiZXplaWNobnVuZ2VuIiBvcGVu +PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN1bW1hcnk+PHNwYW4gY2xhc3M9ImFkbWlu +LWluZm8tY2hldiI+4pa4PC9zcGFuPkhpbndlaXNlIHp1IEJlemVpY2hudW5nZW48c3BhbiBjbGFz +cz0iYWRtaW4taW5mby1iYWRnZSI+QXVma2xhcHBlbiAvIFp1a2xhcHBlbjwvc3Bhbj48L3N1bW1h +cnk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1pbi1pbmZvLWJv +ZHkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+V2FzIGlzdCBk +YXM/PC9zdHJvbmc+IEFsbGUgaGFydCBpbSBDb2RlIGhpbnRlcmxlZ3RlbiBVSS1MYWJlbHMgKFRp +dGVsIGRlciBBcHAsIE5hbWVuIGRlciBSZWl0ZXIgaW0gSGVhZGVyLCDigKYpIGxhc3NlbiBzaWNo +IGhpZXIgaW5kaXZpZHVlbGwgYmVuZW5uZW4uIE7DvHR6bGljaCwgd2VubiBpbnRlcm4gYW5kZXJl +IEJlZ3JpZmZlIMO8YmxpY2ggc2luZCBvZGVyIGVpbiBUYWIgdW1iZW5hbm50IHdlcmRlbiBzb2xs +LjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPkZ1bmt0aW9u +Ojwvc3Ryb25nPiBMZWVyZSBGZWxkZXIgZmFsbGVuIHp1csO8Y2sgYXVmIGRlbiBEZWZhdWx0LVdl +cnQuIDxlbT5TcGVpY2hlcm48L2VtPiBsZWd0IGRpZSBXZXJ0ZSBpbiA8Y29kZT5hZG1pbi5qc29u +LmJlemVpY2hudW5nZW48L2NvZGU+IGFiIOKAlCBzaWNodGJhciB3aXJkIGRpZSDDhG5kZXJ1bmcg +bmFjaCBlaW5lbSBTZWl0ZW4tUmVsb2FkIChGNSkgZsO8ciBhbGxlIE51dHplci48L3A+CiAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5adXLDvGNrc2V0emVuPC9zdHJv +bmc+IGzDtnNjaHQgYWxsZSBpbmRpdmlkdWVsbGVuIFdlcnRlIHVuZCBzdGVsbHQgZGllIERlZmF1 +bHRzIHdpZWRlciBoZXIuPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAg +ICAgICAgICAgICAgICAgICAgICAgIDwvZGV0YWlscz4KICAgICAgICAgICAgICAgICAgICAgICAg +PHRhYmxlIGNsYXNzPSJhZG1pbi10YWJlbGxlIiBpZD0iYmV6ZWljaG51bmdlbi10YWJlbGxlIj4K +ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBz +dHlsZT0id2lkdGg6MTgwcHgiPlNjaGzDvHNzZWw8L3RoPgogICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICA8dGggc3R5bGU9IndpZHRoOjIyMHB4Ij5EZWZhdWx0PC90aD4KICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPkVpZ2VuZSBCZXplaWNobnVuZzwvdGg+ CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGJvZHkgaWQ9 -ImZhY2hhdWZzaWNodC10Ym9keSI+PC90Ym9keT4KICAgICAgICAgICAgICAgICAgICAgICAgPC90 -YWJsZT4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icmVjaHRlLWNhcmQtZnVz -cyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tZmFjaGF1ZnNp -Y2h0LXNwZWljaGVybiIgY2xhc3M9ImJ0biBidG4tcHJpbWFlciI+RmFjaGF1ZnNpY2h0IHNwZWlj -aGVybjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gaWQ9ImZhY2hh -dWZzaWNodC1kaXJ0eS1oaW53ZWlzIiBjbGFzcz0icmVjaHRlLWRpcnR5LWhpbndlaXMiIHN0eWxl -PSJkaXNwbGF5Om5vbmUiPuKXjyBVbmdlc3BlaWNoZXJ0ZSDDhG5kZXJ1bmdlbjwvc3Bhbj4KICAg -ICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi10ZXN0LXJlZ3VsYWVyIiBj -bGFzcz0iYnRuIGJ0bi1zZWsgYnRuLWtsZWluIiBzdHlsZT0ibWFyZ2luLWxlZnQ6YXV0byIgdGl0 -bGU9Ik9iZXJmbMOkY2hlIGF1cyBTaWNodCBlaW5lcyBVc2VycyBvaG5lIFJvbGxlIHRlc3RlbiAo -a2VpbiBTVSwga2VpbmUgRmFjaGF1ZnNpY2h0L0RpcmVrdGlvbnNsZWl0dW5nL0bDvGhydW5nc3N0 -ZWxsZSkiPkFscyBVc2VyIG9obmUgUm9sbGUgdGVzdGVuPC9idXR0b24+CiAgICAgICAgICAgICAg -ICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJmYWNoYXVm -c2ljaHQta2Vpbi1yZWNodCIgY2xhc3M9InZlcnN0ZWNrdCByZWNodGUta2Vpbi1yZWNodCI+CiAg -ICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvLWJveCIgc3R5bGU9ImJv -cmRlci1sZWZ0LWNvbG9yOnZhcigtLWZhcmJlLWZlaGxlcikiPgogICAgICAgICAgICAgICAgICAg -ICAgICAgICAgICAgIDxzdHJvbmc+S2VpbiBadWdyaWZmOjwvc3Ryb25nPiBOdXIgU3VwZXJVc2Vy -IGvDtm5uZW4gRmFjaGF1ZnNpY2h0LUVpbnRyw6RnZSBiZWFyYmVpdGVuLgogICAgICAgICAgICAg -ICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAg -ICAgICAgICAgICAgICAgICAgICA8L2Rpdj48L2RldGFpbHM+CiAgICAgICAgICAgICAgICAgICAg -PC9zZWN0aW9uPgoKICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0iYWRtaW4tc2Vr -dGlvbiByZWNodGUtY2FyZCByZWNodGUtY2FyZC1kbCIgaWQ9ImFkbWluLXNla3Rpb24tZGlyZWt0 -aW9uc2xlaXR1bmciPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGV0YWlscyBjbGFzcz0icmVj -aHRlLXJvbGxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHN1bW1hcnkgY2xhc3M9InJlY2h0 -ZS1yb2xsZS1zdW1tYXJ5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNz -PSJyZWNodGUtY2FyZC1pY29uIiBhcmlhLWhpZGRlbj0idHJ1ZSI+4piFPC9zcGFuPgogICAgICAg -ICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InJlY2h0ZS1yb2xsZS10aXRlbCI+PHN0 -cm9uZz5EaXJla3Rpb25zbGVpdHVuZzwvc3Ryb25nPjxzcGFuIGNsYXNzPSJyZWNodGUtY2FyZC1z -dWIiPk1pdGdsaWVkZXIgZGVyIERpcmVrdGlvbnNsZWl0dW5nICh6LiBCLiBML0RpclYsIExQRGlu -KSDigJQgZ2xlaWNoZSBHcmFudWxhcml0w6R0IHdpZSBGYWNoYXVmc2ljaHQuPC9zcGFuPjwvc3Bh -bj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJyZWNodGUtcm9sbGUt -Y2hldiIgYXJpYS1oaWRkZW49InRydWUiPuKWuDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAg -ICAgPC9zdW1tYXJ5PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyZWNodGUt -cm9sbGUtYm9keSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyZWNo -dGUtcm9sbGUtYWt0aW9uIj48YnV0dG9uIGlkPSJidG4tZGlyZWt0aW9uc2xlaXR1bmctbmV1IiBj -bGFzcz0iYnRuIGJ0bi1lcmZvbGciPk5ldWVyIERpcmVrdGlvbnNsZWl0dW5nLUVpbnRyYWc8L2J1 -dHRvbj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRldGFpbHMgY2xhc3M9ImFkbWlu -LWluZm8iIGRhdGEtaW5mby1rZXk9ImRpcmVrdGlvbnNsZWl0dW5nIj4KICAgICAgICAgICAgICAg -ICAgICAgICAgICAgIDxzdW1tYXJ5PjxzcGFuIGNsYXNzPSJhZG1pbi1pbmZvLWNoZXYiPuKWuDwv -c3Bhbj5IaW53ZWlzZSB6dXIgRGlyZWt0aW9uc2xlaXR1bmc8c3BhbiBjbGFzcz0iYWRtaW4taW5m -by1iYWRnZSI+QXVma2xhcHBlbiAvIFp1a2xhcHBlbjwvc3Bhbj48L3N1bW1hcnk+CiAgICAgICAg -ICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1pbi1pbmZvLWJvZHkiPgogICAgICAg -ICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlBlcnNvbmVuIHdlcmRlbiDDvGJlciBkYXMgRHJv -cGRvd24gPGVtPlBlcnNvbjwvZW0+IGRpcmVrdCBhdXMgZGVyIFBlcnNvbmFsdmVyd2FsdHVuZyBn -ZXfDpGhsdCDigJQgTmFtZSB1bmQgTlctS2VubnVuZyB3ZXJkZW4gYXV0b21hdGlzY2ggw7xiZXJu -b21tZW4uIFN1Yi1TaWNodC0gdW5kIFBsYW51bmdzLVJlY2h0ZSBmdW5rdGlvbmllcmVuIHdpZSBi -ZWkgZGVyIEZhY2hhdWZzaWNodC48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rp -dj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kZXRhaWxzPgogICAgICAgICAgICAgICAgICAg -ICAgICA8dGFibGUgY2xhc3M9ImFkbWluLXRhYmVsbGUgcm9sbGVuLXRhYmVsbGUiIGlkPSJkaXJl -a3Rpb25zbGVpdHVuZy10YWJlbGxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aGVh -ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAg -ICAgICAgICAgICAgICAgICAgIDx0aD5QZXJzb248L3RoPgogICAgICAgICAgICAgICAgICAgICAg +ImJlemVpY2hudW5nZW4tdGJvZHkiPjwvdGJvZHk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwv +dGFibGU+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6ZmxleDtn +YXA6OHB4O21hcmdpbi10b3A6MTJweCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0 +dG9uIGlkPSJidG4tYmV6ZWljaG51bmdlbi1yZXNldCIgY2xhc3M9ImJ0biBidG4tc2VrIiB0aXRs +ZT0iQWxsZSBXZXJ0ZSBhdWYgZGVuIERlZmF1bHQgenVyw7xja3NldHplbiI+WnVyw7xja3NldHpl +bjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLWJl +emVpY2hudW5nZW4tc3BlaWNoZXJuIiBjbGFzcz0iYnRuIGJ0bi1wcmltYWVyIj5CZXplaWNobnVu +Z2VuIHNwZWljaGVybjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAg +ICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+CgogICAgICAgICAgICAgICAgICAgIDxociBjbGFz +cz0iYWRtaW4tc2VrdGlvbi10cmVubmVyIj4KCiAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24g +Y2xhc3M9ImFkbWluLXNla3Rpb24iIGlkPSJhZG1pbi1zZWt0aW9uLWluZm9oaWxmZSI+CiAgICAg +ICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFkbWluLXNla3Rpb24ta29wZiI+CiAgICAg +ICAgICAgICAgICAgICAgICAgICAgICA8aDM+SW5mb3JtYXRpb24gJmFtcDsgSGlsZmU8L2gzPgog +ICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRl +dGFpbHMgY2xhc3M9ImFkbWluLWluZm8iIGRhdGEtaW5mby1rZXk9ImluZm9oaWxmZSIgb3Blbj4K +ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdW1tYXJ5PjxzcGFuIGNsYXNzPSJhZG1pbi1p +bmZvLWNoZXYiPuKWuDwvc3Bhbj5IaW53ZWlzZSB6dSBJbmZvcm1hdGlvbiAmYW1wOyBIaWxmZTxz +cGFuIGNsYXNzPSJhZG1pbi1pbmZvLWJhZGdlIj5BdWZrbGFwcGVuIC8gWnVrbGFwcGVuPC9zcGFu +Pjwvc3VtbWFyeT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFkbWlu +LWluZm8tYm9keSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5X +YXMgd2lyZCBoaWVyIGdlcGZsZWd0Pzwvc3Ryb25nPiBBbGxlIFRleHRlLCBkaWUgaW0gSW5mby1G +ZW5zdGVyIGVyc2NoZWluZW4gKEtsaWNrIGF1ZiDigJ5JbmZvIiBvYmVuIHJlY2h0cyBpbiBkZXIg +S29wZmxlaXN0ZSkuIERpZSBFZGl0b3JlbiB1bnRlcnN0w7x0emVuIGVpbmZhY2hlIEZvcm1hdGll +cnVuZyDDvGJlciBkaWUgVG9vbGJhcjogPGI+RmV0dDwvYj4sIDxlbT5LdXJzaXY8L2VtPiwgPHU+ +VW50ZXJzdHJpY2hlbjwvdT4sIEF1ZnrDpGhsdW5nZW4sIEVpbnLDvGNrZW4vQXVzcsO8Y2tlbi48 +L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5SZWloZW5mb2xn +ZSBpbSBJbmZvLUZlbnN0ZXI6PC9zdHJvbmc+IEluZm90ZXh0IOKGkiBTdXBwb3J0LUluZm8g4oaS +IFN1cGVyVXNlci1MaXN0ZSDihpIgQWxsZ2VtZWluZSBIaWxmZSDihpIgQmVkaWVudW5ncy1IaW53 +ZWlzZSDihpIgU2NoaWNodGNvZGUtTGVnZW5kZSAoYXV0b21hdGlzY2ggZ2VuZXJpZXJ0KS48L3A+ +CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5CZWRpZW51bmdzLUhp +bndlaXNlOjwvc3Ryb25nPiBKZWRlciBMaXN0ZW5laW50cmFnIHdpcmQgYWxzIGVpZ2VuZXIgQnVs +bGV0IGdlcmVuZGVydC4gRm9ybWF0IDxjb2RlPlRpdGVsOiBCZXNjaHJlaWJ1bmc8L2NvZGU+IChl +aW4gRG9wcGVscHVua3Qgendpc2NoZW4gVGl0ZWwgdW5kIEVya2zDpHJ1bmcpIGzDpHNzdCBkZW4g +VGl0ZWwgYXV0b21hdGlzY2ggZmV0dCB3ZXJkZW4uPC9wPgogICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgIDxwPjxzdHJvbmc+U2NobGllw58tSW5mbzo8L3N0cm9uZz4gV2lyZCBpbSBJbmZv +LUZlbnN0ZXIgPGI+bmljaHQ8L2I+IGFuZ2V6ZWlndCwgc29uZGVybiBiZWltIGF1dG9tYXRpc2No +ZW4gU2VydmVyLVN0b3AgbmFjaCBJbmFrdGl2aXTDpHQuIFBsYXR6aGFsdGVyIDxjb2RlPnttaW51 +dGVufTwvY29kZT4gd2lyZCBkdXJjaCBkaWUga29uZmlndXJpZXJ0ZSBTY2hsaWXDn3plaXQgZXJz +ZXR6dC48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAg +ICAgICAgICAgICAgPC9kZXRhaWxzPgoKICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJk +aXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoxOHB4O21heC13aWR0aDo5MDBw +eCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgICAgICAg +ICAgICA8bGFiZWwgc3R5bGU9ImRpc3BsYXk6YmxvY2s7Zm9udC13ZWlnaHQ6NjAwO21hcmdpbi1i +b3R0b206NnB4Ij5JbmZvdGV4dCAoZXJzY2hlaW50IGltIEluZm8tRmVuc3Rlcik8L2xhYmVsPgog +ICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icnRlLXRvb2xiYXIiIGRhdGEt +cnRlLWZvcj0iaWgtaW5mb3RleHQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxi +dXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0icnRlLWJ0biIgZGF0YS1jbWQ9ImJvbGQiIHRpdGxl +PSJGZXR0IChDdHJsK0IpIj48c3Ryb25nPkI8L3N0cm9uZz48L2J1dHRvbj4KICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InJ0ZS1idG4i +IGRhdGEtY21kPSJpdGFsaWMiIHRpdGxlPSJLdXJzaXYgKEN0cmwrSSkiPjxlbT5JPC9lbT48L2J1 +dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRv +biIgY2xhc3M9InJ0ZS1idG4iIGRhdGEtY21kPSJ1bmRlcmxpbmUiIHRpdGxlPSJVbnRlcnN0cmlj +aGVuIChDdHJsK1UpIj48dT5VPC91PjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgIDxzcGFuIGNsYXNzPSJydGUtc2VwIj48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJydGUtYnRuIiBkYXRhLWNt +ZD0iaW5zZXJ0VW5vcmRlcmVkTGlzdCIgdGl0bGU9IkF1ZnrDpGhsdW5nIj7igKI8L2J1dHRvbj4K +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xh +c3M9InJ0ZS1idG4iIGRhdGEtY21kPSJpbnNlcnRPcmRlcmVkTGlzdCIgdGl0bGU9Ik51bW1lcmll +cnQiPjEuPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xh +c3M9InJ0ZS1zZXAiPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0 +dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InJ0ZS1idG4iIGRhdGEtY21kPSJvdXRkZW50IiB0aXRs +ZT0iQXVzcsO8Y2tlbiI+4oekPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJydGUtYnRuIiBkYXRhLWNtZD0iaW5kZW50 +IiB0aXRsZT0iRWlucsO8Y2tlbiI+4oelPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgPHNwYW4gY2xhc3M9InJ0ZS1zZXAiPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InJ0ZS1idG4iIGRhdGEt +Y21kPSJyZW1vdmVGb3JtYXQiIHRpdGxlPSJGb3JtYXRpZXJ1bmcgZW50ZmVybmVuIj7inJU8L2J1 +dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAg +ICAgICAgICAgICAgPGRpdiBpZD0iaWgtaW5mb3RleHQiIGNsYXNzPSJydGUtZWRpdG9yIiBjb250 +ZW50ZWRpdGFibGU9InRydWUiIHNwZWxsY2hlY2s9InRydWUiIHN0eWxlPSJtaW4taGVpZ2h0Ojgw +cHgiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAg +ICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBzdHlsZT0i +ZGlzcGxheTpibG9jaztmb250LXdlaWdodDo2MDA7bWFyZ2luLWJvdHRvbTo2cHgiPlN1cHBvcnQt +SW5mbyAoQW5zcHJlY2hwYXJ0bmVyIGJlaSBGcmFnZW4pPC9sYWJlbD4KICAgICAgICAgICAgICAg +ICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJ0ZS10b29sYmFyIiBkYXRhLXJ0ZS1mb3I9ImloLXN1 +cHBvcnQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0 +dG9uIiBjbGFzcz0icnRlLWJ0biIgZGF0YS1jbWQ9ImJvbGQiIHRpdGxlPSJGZXR0IChDdHJsK0Ip +Ij48c3Ryb25nPkI8L3N0cm9uZz48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InJ0ZS1idG4iIGRhdGEtY21kPSJpdGFs +aWMiIHRpdGxlPSJLdXJzaXYgKEN0cmwrSSkiPjxlbT5JPC9lbT48L2J1dHRvbj4KICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InJ0ZS1i +dG4iIGRhdGEtY21kPSJ1bmRlcmxpbmUiIHRpdGxlPSJVbnRlcnN0cmljaGVuIChDdHJsK1UpIj48 +dT5VPC91PjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNs +YXNzPSJydGUtc2VwIj48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1 +dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJydGUtYnRuIiBkYXRhLWNtZD0iaW5zZXJ0VW5vcmRl +cmVkTGlzdCIgdGl0bGU9IkF1ZnrDpGhsdW5nIj7igKI8L2J1dHRvbj4KICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InJ0ZS1idG4iIGRh +dGEtY21kPSJpbnNlcnRPcmRlcmVkTGlzdCIgdGl0bGU9Ik51bW1lcmllcnQiPjEuPC9idXR0b24+ +CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InJ0ZS1zZXAiPjwv +c3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRv +biIgY2xhc3M9InJ0ZS1idG4iIGRhdGEtY21kPSJvdXRkZW50IiB0aXRsZT0iQXVzcsO8Y2tlbiI+ +4oekPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBl +PSJidXR0b24iIGNsYXNzPSJydGUtYnRuIiBkYXRhLWNtZD0iaW5kZW50IiB0aXRsZT0iRWlucsO8 +Y2tlbiI+4oelPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4g +Y2xhc3M9InJ0ZS1zZXAiPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8 +YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InJ0ZS1idG4iIGRhdGEtY21kPSJyZW1vdmVGb3Jt +YXQiIHRpdGxlPSJGb3JtYXRpZXJ1bmcgZW50ZmVybmVuIj7inJU8L2J1dHRvbj4KICAgICAgICAg +ICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRp +diBpZD0iaWgtc3VwcG9ydCIgY2xhc3M9InJ0ZS1lZGl0b3IiIGNvbnRlbnRlZGl0YWJsZT0idHJ1 +ZSIgc3BlbGxjaGVjaz0idHJ1ZSIgc3R5bGU9Im1pbi1oZWlnaHQ6MTAwcHgiPjwvZGl2PgogICAg +ICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj4K +ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBzdHlsZT0iZGlzcGxheTpibG9jaztm +b250LXdlaWdodDo2MDA7bWFyZ2luLWJvdHRvbTo2cHgiPkFsbGdlbWVpbmUgSGlsZmUgKGZyZWll +ciBUZXh0KTwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJy +dGUtdG9vbGJhciIgZGF0YS1ydGUtZm9yPSJpaC1oaWxmZSI+CiAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJydGUtYnRuIiBkYXRhLWNt +ZD0iYm9sZCIgdGl0bGU9IkZldHQgKEN0cmwrQikiPjxzdHJvbmc+Qjwvc3Ryb25nPjwvYnV0dG9u +PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBj +bGFzcz0icnRlLWJ0biIgZGF0YS1jbWQ9Iml0YWxpYyIgdGl0bGU9Ikt1cnNpdiAoQ3RybCtJKSI+ +PGVtPkk8L2VtPjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0 +b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0icnRlLWJ0biIgZGF0YS1jbWQ9InVuZGVybGluZSIgdGl0 +bGU9IlVudGVyc3RyaWNoZW4gKEN0cmwrVSkiPjx1PlU8L3U+PC9idXR0b24+CiAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InJ0ZS1zZXAiPjwvc3Bhbj4KICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InJ0 +ZS1idG4iIGRhdGEtY21kPSJpbnNlcnRVbm9yZGVyZWRMaXN0IiB0aXRsZT0iQXVmesOkaGx1bmci +PuKAojwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlw +ZT0iYnV0dG9uIiBjbGFzcz0icnRlLWJ0biIgZGF0YS1jbWQ9Imluc2VydE9yZGVyZWRMaXN0IiB0 +aXRsZT0iTnVtbWVyaWVydCI+MS48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICA8c3BhbiBjbGFzcz0icnRlLXNlcCI+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0icnRlLWJ0biIgZGF0YS1jbWQ9 +Im91dGRlbnQiIHRpdGxlPSJBdXNyw7xja2VuIj7ih6Q8L2J1dHRvbj4KICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InJ0ZS1idG4iIGRh +dGEtY21kPSJpbmRlbnQiIHRpdGxlPSJFaW5yw7xja2VuIj7ih6U8L2J1dHRvbj4KICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icnRlLXNlcCI+PC9zcGFuPgogICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0i +cnRlLWJ0biIgZGF0YS1jbWQ9InJlbW92ZUZvcm1hdCIgdGl0bGU9IkZvcm1hdGllcnVuZyBlbnRm +ZXJuZW4iPuKclTwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAg +ICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJpaC1oaWxmZSIgY2xhc3M9InJ0ZS1l +ZGl0b3IiIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSIgc3BlbGxjaGVjaz0idHJ1ZSIgc3R5bGU9Im1p +bi1oZWlnaHQ6MTIwcHgiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNtYWxs +IHN0eWxlPSJkaXNwbGF5OmJsb2NrO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO21hcmdpbi10b3A6 +NHB4Ij5QbGF0eiBmw7xyIGdlbmVyZWxsZSBIaWxmZXRleHRlLCBGQVFzLCBWZXJ3ZWlzZS4gRXJz +Y2hlaW50IGltIEluZm8tRmVuc3RlciDDvGJlciBkZW4gQmVkaWVudW5ncy1IaW53ZWlzZW4uPC9z +bWFsbD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAg +ICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgc3R5bGU9ImRpc3Bs +YXk6YmxvY2s7Zm9udC13ZWlnaHQ6NjAwO21hcmdpbi1ib3R0b206NnB4Ij5CZWRpZW51bmdzLUhp +bndlaXNlIChqZWRlciBCdWxsZXQgPSBlaW5lIFplaWxlIC8gZWluIExpc3RlbnB1bmt0KTwvbGFi +ZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJydGUtdG9vbGJhciIg +ZGF0YS1ydGUtZm9yPSJpaC1iZWRpZW51bmciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0icnRlLWJ0biIgZGF0YS1jbWQ9ImJvbGQi +IHRpdGxlPSJGZXR0IChDdHJsK0IpIj48c3Ryb25nPkI8L3N0cm9uZz48L2J1dHRvbj4KICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InJ0 +ZS1idG4iIGRhdGEtY21kPSJpdGFsaWMiIHRpdGxlPSJLdXJzaXYgKEN0cmwrSSkiPjxlbT5JPC9l +bT48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9 +ImJ1dHRvbiIgY2xhc3M9InJ0ZS1idG4iIGRhdGEtY21kPSJ1bmRlcmxpbmUiIHRpdGxlPSJVbnRl +cnN0cmljaGVuIChDdHJsK1UpIj48dT5VPC91PjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJydGUtc2VwIj48L3NwYW4+CiAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJydGUtYnRuIiBk +YXRhLWNtZD0iaW5zZXJ0VW5vcmRlcmVkTGlzdCIgdGl0bGU9IkF1ZnrDpGhsdW5nIj7igKI8L2J1 +dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRv +biIgY2xhc3M9InJ0ZS1idG4iIGRhdGEtY21kPSJpbnNlcnRPcmRlcmVkTGlzdCIgdGl0bGU9Ik51 +bW1lcmllcnQiPjEuPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNw +YW4gY2xhc3M9InJ0ZS1zZXAiPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InJ0ZS1idG4iIGRhdGEtY21kPSJvdXRkZW50 +IiB0aXRsZT0iQXVzcsO8Y2tlbiI+4oekPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJydGUtYnRuIiBkYXRhLWNtZD0i +aW5kZW50IiB0aXRsZT0iRWlucsO8Y2tlbiI+4oelPC9idXR0b24+CiAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InJ0ZS1zZXAiPjwvc3Bhbj4KICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InJ0ZS1idG4i +IGRhdGEtY21kPSJyZW1vdmVGb3JtYXQiIHRpdGxlPSJGb3JtYXRpZXJ1bmcgZW50ZmVybmVuIj7i +nJU8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAg +ICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iaWgtYmVkaWVudW5nIiBjbGFzcz0icnRlLWVkaXRv +ciIgY29udGVudGVkaXRhYmxlPSJ0cnVlIiBzcGVsbGNoZWNrPSJ0cnVlIiBzdHlsZT0ibWluLWhl +aWdodDoxNjBweCI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c21hbGwgc3R5 +bGU9ImRpc3BsYXk6YmxvY2s7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7bWFyZ2luLXRvcDo0cHgi +Plp1csO8Y2tzZXR6ZW4gYXVmIERlZmF1bHQ6IEVkaXRvciBsZWVyZW4gdW5kIHNwZWljaGVybiDi +gJQgZGVyIEluZm8tQmxvY2sgemVpZ3QgZGFubiBkaWUgZWluZ2ViYXV0ZW4gRGVmYXVsdC1IaW53 +ZWlzZS48L3NtYWxsPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAg +ICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBzdHls +ZT0iZGlzcGxheTpibG9jaztmb250LXdlaWdodDo2MDA7bWFyZ2luLWJvdHRvbTo2cHgiPlNjaGxp +ZcOfLUluZm8gKEhpbndlaXMgYmVpbSBBdXRvLVNodXRkb3duKTwvbGFiZWw+CiAgICAgICAgICAg +ICAgICAgICAgICAgICAgICA8dGV4dGFyZWEgaWQ9ImloLXNjaGxpZXNzaW5mbyIgY2xhc3M9ImZv +cm0taW5wdXQiIHJvd3M9IjMiIHN0eWxlPSJ3aWR0aDoxMDAlIiBwbGFjZWhvbGRlcj0iei5CLiAn +RGllc2UgQW53ZW5kdW5nIHNjaGxpZcOfdCBuYWNoIHttaW51dGVufSBNaW51dGVuIEluYWt0aXZp +dMOkdCBhdXRvbWF0aXNjaC4nIj48L3RleHRhcmVhPgogICAgICAgICAgICAgICAgICAgICAgICAg +ICAgPHNtYWxsIHN0eWxlPSJkaXNwbGF5OmJsb2NrO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO21h +cmdpbi10b3A6NHB4Ij5QbGF0emhhbHRlciA8Y29kZT57bWludXRlbn08L2NvZGU+IHdpcmQgZHVy +Y2ggZGllIFNjaGxpZcOfemVpdCBlcnNldHp0LiBLZWluIFJpY2gtVGV4dCDigJQgd2lyZCBhbHMg +cmVpbmVyIFRleHQgdmVyd2VuZGV0Ljwvc21hbGw+CiAgICAgICAgICAgICAgICAgICAgICAgIDwv +ZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICAgICAg +ICAgICAgPGxhYmVsIHN0eWxlPSJkaXNwbGF5OmJsb2NrO2ZvbnQtd2VpZ2h0OjYwMDttYXJnaW4t +Ym90dG9tOjZweCI+SW1wcmVzc3VtIChlcnNjaGVpbnQgw7xiZXIgZGVuIEJ1dHRvbiDigJ5JbXBy +ZXNzdW0iIGltIEluZm8tRmVuc3Rlcik8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAg +ICAgPGRpdiBjbGFzcz0icnRlLXRvb2xiYXIiIGRhdGEtcnRlLWZvcj0iaWgtaW1wcmVzc3VtIj4K +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xh +c3M9InJ0ZS1idG4iIGRhdGEtY21kPSJib2xkIiB0aXRsZT0iRmV0dCAoQ3RybCtCKSI+PHN0cm9u +Zz5CPC9zdHJvbmc+PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1 +dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJydGUtYnRuIiBkYXRhLWNtZD0iaXRhbGljIiB0aXRs +ZT0iS3Vyc2l2IChDdHJsK0kpIj48ZW0+STwvZW0+PC9idXR0b24+CiAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJydGUtYnRuIiBkYXRh +LWNtZD0idW5kZXJsaW5lIiB0aXRsZT0iVW50ZXJzdHJpY2hlbiAoQ3RybCtVKSI+PHU+VTwvdT48 +L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icnRl +LXNlcCI+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlw +ZT0iYnV0dG9uIiBjbGFzcz0icnRlLWJ0biIgZGF0YS1jbWQ9Imluc2VydFVub3JkZXJlZExpc3Qi +IHRpdGxlPSJBdWZ6w6RobHVuZyI+4oCiPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJydGUtYnRuIiBkYXRhLWNtZD0i +aW5zZXJ0T3JkZXJlZExpc3QiIHRpdGxlPSJOdW1tZXJpZXJ0Ij4xLjwvYnV0dG9uPgogICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJydGUtc2VwIj48L3NwYW4+CiAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNz +PSJydGUtYnRuIiBkYXRhLWNtZD0ib3V0ZGVudCIgdGl0bGU9IkF1c3LDvGNrZW4iPuKHpDwvYnV0 +dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9u +IiBjbGFzcz0icnRlLWJ0biIgZGF0YS1jbWQ9ImluZGVudCIgdGl0bGU9IkVpbnLDvGNrZW4iPuKH +pTwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJy +dGUtc2VwIj48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0 +eXBlPSJidXR0b24iIGNsYXNzPSJydGUtYnRuIiBkYXRhLWNtZD0icmVtb3ZlRm9ybWF0IiB0aXRs +ZT0iRm9ybWF0aWVydW5nIGVudGZlcm5lbiI+4pyVPC9idXR0b24+CiAgICAgICAgICAgICAgICAg +ICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9Imlo +LWltcHJlc3N1bSIgY2xhc3M9InJ0ZS1lZGl0b3IiIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSIgc3Bl +bGxjaGVjaz0idHJ1ZSIgc3R5bGU9Im1pbi1oZWlnaHQ6MTgwcHgiPjwvZGl2PgogICAgICAgICAg +ICAgICAgICAgICAgICAgICAgPHNtYWxsIHN0eWxlPSJkaXNwbGF5OmJsb2NrO2NvbG9yOnZhcigt +LXRleHQtbXV0ZWQpO21hcmdpbi10b3A6NHB4Ij5Jbml0aWFsIG1pdCBlaW5lbSBzaW5udm9sbGVu +IERlZmF1bHQgYmVmw7xsbHQgKFBvbGl6ZWlwcsOkc2lkaXVtIERvcnRtdW5kIC8gVkkgMyAvIHRl +Y2huaXNjaGUgS29uemVwdGlvbiAvIExpemVuemhpbndlaXNlIC8gSGFmdHVuZ3NhdXNzY2hsdXNz +KS4gQml0dGUgQW5zY2hyaWZ0IGVyZ8OkbnplbiB1bmQgZ2dmLiBhbiBkaWUgdGF0c8OkY2hsaWNo +ZSBEaWVuc3RzdGVsbGUgYW5wYXNzZW4uIDxzdHJvbmc+TmljaHQgZ2Vsw7ZzY2h0PC9zdHJvbmc+ +IHdpcmQgZGVyIE5vdGZhbGwtSGlud2VpcyBhdWYgUEhLIFJvZXNnZW4g4oCUIGRlciBpc3QgaW0g +SW1wcmVzc3Vtcy1Nb2RhbCBmZXN0IHVudGVuIHZlcmFua2VydCB1bmQga2FubiBoaWVyIG5pY2h0 +IGVudGZlcm50IHdlcmRlbi48L3NtYWxsPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4K +ICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGlk +PSJidG4taW5mb2hpbGZlLXNwZWljaGVybiIgY2xhc3M9ImJ0biBidG4tcHJpbWFlciIgc3R5bGU9 +Im1hcmdpbi10b3A6MTJweCI+SW5mb3JtYXRpb24gJmFtcDsgSGlsZmUgc3BlaWNoZXJuPC9idXR0 +b24+CiAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPgogICAgICAgICAgICAgICAgPC9kaXY+ +CgogICAgICAgICAgICAgICAgPCEtLSBUYWI6IEJlemVpY2hudW5nZW4gJiBMaXN0ZW4g4oCUIGVk +aXRpZXJiYXJlIFN0YW1tZGF0ZW4tTGlzdGVuCiAgICAgICAgICAgICAgICAgICAgIChEaWVuc3Rn +cmFkZSwgRnVua3Rpb25lbikgc3RhdHQgaGFydGNvZGllcnRlIENvZGUtS29uc3RhbnRlbi4gLS0+ +CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1pbi10YWIgdmVyc3RlY2t0IiBpZD0iYWRt +aW4tdGFiLWxpc3RlbiI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4ta29w +ZiI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxoMj5CZXplaWNobnVuZ2VuICZhbXA7IExpc3Rl +bjwvaDI+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRl +dGFpbHMgY2xhc3M9ImFkbWluLWluZm8iIGRhdGEtaW5mby1rZXk9Imxpc3RlbiI+CiAgICAgICAg +ICAgICAgICAgICAgICAgIDxzdW1tYXJ5PjxzcGFuIGNsYXNzPSJhZG1pbi1pbmZvLWNoZXYiPuKW +uDwvc3Bhbj5XYXMgd2lyZCBoaWVyIGdlcGZsZWd0PzxzcGFuIGNsYXNzPSJhZG1pbi1pbmZvLWJh +ZGdlIj5BdWZrbGFwcGVuIC8gWnVrbGFwcGVuPC9zcGFuPjwvc3VtbWFyeT4KICAgICAgICAgICAg +ICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4taW5mby1ib2R5Ij4KICAgICAgICAgICAgICAg +ICAgICAgICAgICAgIDxwPjxzdHJvbmc+RGllbnN0Z3JhZGU8L3N0cm9uZz4g4oCUIGRpZSBEaWVu +c3RncmFkLUF1c3dhaGwgaW4gZGVyIFBlcnNvbmFsdmVyd2FsdHVuZyAoei5CLiBQT0ssIFBISywg +RVBISykuIFJlaWhlbmZvbGdlIGJlc3RpbW10IGRpZSBTb3J0aWVydW5nIGltIERyb3Bkb3duOiA8 +ZW0+b2JlbiA9IGjDtmhlciBnZXN0ZWxsdDwvZW0+LiBWZXJ3ZW5kZSBkZW4gU3Rlcm4gPGNvZGU+ +KjwvY29kZT4gZsO8ciBad2lzY2hlbnN0dWZlbiB3aWUgPGNvZGU+UEhLKjwvY29kZT4gKEExMiB6 +d2lzY2hlbiBQSEsgQTExIHVuZCBFUEhLIEExMykuPC9wPgogICAgICAgICAgICAgICAgICAgICAg +ICAgICAgPHA+PHN0cm9uZz5GdW5rdGlvbmVuPC9zdHJvbmc+IOKAlCBTdGFtbS1GdW5rdGlvbiBl +aW5lciBQZXJzb24gKERHTCwgV0RGLCBXYWNobGVpdHVuZywgLi4uKS4gRGVyIDxzdHJvbmc+UmFu +Zzwvc3Ryb25nPiBiZXN0aW1tdCBkaWUgVmVyYW50d29ydHVuZ3MtUmVpaGVuZm9sZ2UgaW4gZGVy +IFNjaGljaHQgKDAgPSBow7ZjaHN0ZSBWZXJhbnR3b3J0dW5nKS4gUGVyc29uZW4gbWl0IGdsZWlj +aGVtIFJhbmcgd2VyZGVuIMO8YmVyIGlocmUgcm9oZSBQb3NpdGlvbnMtWmFobCBzb3J0aWVydC48 +L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPlZvcnNpY2h0IGJlaW0g +TMO2c2NoZW46PC9zdHJvbmc+IFBlcnNvbmVuLCBkaWUgZWluZW4gZW50ZmVybnRlbiBEaWVuc3Rn +cmFkIG9kZXIgZWluZSBlbnRmZXJudGUgRnVua3Rpb24gdHJhZ2VuLCBiZWhhbHRlbiBkZW4gYWx0 +ZW4gV2VydCwga8O2bm5lbiBpaG4gYWJlciBuaWNodCBtZWhyIG5ldSBhdXN3w6RobGVuLCBiaXMg +ZXIgd2llZGVyIGluIGRlciBMaXN0ZSBzdGVodC48L3A+CiAgICAgICAgICAgICAgICAgICAgICAg +IDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGV0YWlscz4KCiAgICAgICAgICAgICAgICAg +ICAgPHNlY3Rpb24gY2xhc3M9ImFkbWluLXNla3Rpb24iIGlkPSJhZG1pbi1zZWt0aW9uLWxpc3Rl +bi1kaWVuc3RncmFkZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFkbWlu +LXNla3Rpb24ta29wZiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDM+RGllbnN0Z3Jh +ZGU8L2gzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLWRpZW5z +dGdyYWQtbmV1IiBjbGFzcz0iYnRuIGJ0bi1lcmZvbGciPk5ldWVyIERpZW5zdGdyYWQ8L2J1dHRv +bj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAg +IDx0YWJsZSBjbGFzcz0iYWRtaW4tdGFiZWxsZSIgaWQ9ImRpZW5zdGdyYWRlLXRhYmVsbGUiPgog +ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHN0 +eWxlPSJ3aWR0aDo2MHB4Ij5SYW5nPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgPHRoPkJlemVpY2hudW5nPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgPHRoIHN0eWxlPSJ3aWR0aDoxMzBweCI+QWt0aW9uZW48L3RoPgogICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3Ro +ZWFkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRib2R5IGlkPSJkaWVuc3RncmFkZS10 +Ym9keSI+PC90Ym9keT4KICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAg +ICAgICAgICAgICAgICAgPHAgY2xhc3M9ImFkbWluLWhpbndlaXMiPjxlbT5SZWloZW5mb2xnZSBw +ZXIg4oaRIOKGkyDDpG5kZXJuLiBIb2VjaHN0ZXIgRGllbnN0Z3JhZCB6dWVyc3QuPC9lbT48L3A+ +CiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1kaWVuc3RncmFkZS1zcGVp +Y2hlcm4iIGNsYXNzPSJidG4gYnRuLXByaW1hZXIiIHN0eWxlPSJtYXJnaW4tdG9wOjEycHgiPkRp +ZW5zdGdyYWRlIHNwZWljaGVybjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgIDwvc2VjdGlv +bj4KCiAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9ImFkbWluLXNla3Rpb24iIGlk +PSJhZG1pbi1zZWt0aW9uLWxpc3Rlbi1mdW5rdGlvbmVuIj4KICAgICAgICAgICAgICAgICAgICAg +ICAgPGRpdiBjbGFzcz0iYWRtaW4tc2VrdGlvbi1rb3BmIj4KICAgICAgICAgICAgICAgICAgICAg +ICAgICAgIDxoMz5GdW5rdGlvbmVuPC9oMz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxi +dXR0b24gaWQ9ImJ0bi1mdW5rdGlvbi1uZXUiIGNsYXNzPSJidG4gYnRuLWVyZm9sZyI+TmV1ZSBG +dW5rdGlvbjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAg +ICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJhZG1pbi10YWJlbGxlIiBpZD0iZnVua3Rpb25l +bi10YWJlbGxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgIDx0aCBzdHlsZT0id2lkdGg6NjBweCI+UG9zPC90aD4KICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgPHRoPkJlemVpY2hudW5nPC90aD4KICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDo4MHB4IiB0aXRsZT0iMCA9IGhvZWNo +c3RlIFZlcmFudHdvcnR1bmcsIDk5ID0gdW5yZWxldmFudC4gUGVyc29uZW4gbWl0IGdsZWljaGVt +IFJhbmcgd2VyZGVuIGR1cmNoIGRpZSByb2hlIFBvc2l0aW9ucy1aYWhsIHNvcnRpZXJ0LiI+UmFu +ZzwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lk +dGg6MTQwcHg7dGV4dC1hbGlnbjpjZW50ZXIiIHRpdGxlPSJXZW5uIGRlYWt0aXZpZXJ0LCB3ZXJk +ZW4gUGVyc29uZW4gbWl0IGRpZXNlciBGdW5rdGlvbiBOSUNIVCBpbiBkZXIgUGxhbnVuZ3NhbnNp +Y2h0LCBpbSBXb2NoZW5wbGFuIHVuZCBpbSBQZXJzLiBQbGFuIGFuZ2V6ZWlndCDigJQgYmxlaWJl +biBhYmVyIGluIGRlciBQZXJzb25hbHZlcndhbHR1bmcgcGZsZWdiYXIuIj5JbiBQbGFudW5nIHNp +Y2h0YmFyPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxl +PSJ3aWR0aDoxMzBweCI+QWt0aW9uZW48L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAg +ICAgICAgICAgICAgICAgICAgPHRib2R5IGlkPSJmdW5rdGlvbmVuLXRib2R5Ij48L3Rib2R5Pgog +ICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgICAgICAgICA8 +cCBjbGFzcz0iYWRtaW4taGlud2VpcyI+PGVtPlJlaWhlbmZvbGdlIHBlciDihpEg4oaTIMOkbmRl +cm4uPC9lbT48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1mdW5r +dGlvbmVuLXNwZWljaGVybiIgY2xhc3M9ImJ0biBidG4tcHJpbWFlciIgc3R5bGU9Im1hcmdpbi10 +b3A6MTJweCI+RnVua3Rpb25lbiBzcGVpY2hlcm48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAg +ICA8L3NlY3Rpb24+CiAgICAgICAgICAgICAgICA8L2Rpdj4KCgogICAgICAgICAgICAgICAgPCEt +LSBUYWI6IEUtTWFpbC1Wb3JsYWdlbiDigJQgS2FydGVuLUxheW91dCAoRmluZGluZyBDLjcgLyBT +cGVjIEYuMSkgLS0+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1pbi10YWIgdmVyc3Rl +Y2t0IiBpZD0iYWRtaW4tdGFiLWVtYWlsdm9ybGFnZW4iPgogICAgICAgICAgICAgICAgICAgIDxk +aXYgY2xhc3M9ImFkbWluLWtvcGYiPgogICAgICAgICAgICAgICAgICAgICAgICA8aDI+RS1NYWls +LVZvcmxhZ2VuPC9oMj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAg +ICAgICA8ZGV0YWlscyBjbGFzcz0iYWRtaW4taW5mbyIgZGF0YS1pbmZvLWtleT0iZW1haWx2b3Js +YWdlbiIgb3Blbj4KICAgICAgICAgICAgICAgICAgICAgICAgPHN1bW1hcnk+PHNwYW4gY2xhc3M9 +ImFkbWluLWluZm8tY2hldiI+4pa4PC9zcGFuPldvenUgZGllc2UgVm9ybGFnZW4/PHNwYW4gY2xh +c3M9ImFkbWluLWluZm8tYmFkZ2UiPkF1ZmtsYXBwZW4gLyBadWtsYXBwZW48L3NwYW4+PC9zdW1t +YXJ5PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1pbi1pbmZvLWJvZHki +PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+SGllciB3ZXJkZW4gQmV0cmVmZiB1bmQg +VGV4dCBhbGxlciBFLU1haWwtVm9ybGFnZW4gZ2VwZmxlZ3QuIFZhcmlhYmxlbiB3aWUgPGNvZGU+ +e2RhdHVtfTwvY29kZT4gb2RlciA8Y29kZT57cGVyc29uX25hbWV9PC9jb2RlPiB3ZXJkZW4gYmVp +bSDDlmZmbmVuIGRlciBNYWlsIGF1dG9tYXRpc2NoIGR1cmNoIGtvbmtyZXRlIFdlcnRlIGVyc2V0 +enQuPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5WZXJzYW5kIGF1 +c3NjaGxpZcOfbGljaCDDvGJlciBkYXMgU3RhbmRhcmQtTWFpbHByb2dyYW1tIChPdXRsb29rKTwv +c3Ryb25nPiDigJQgYmVpbSBhdXNsw7ZzZW5kZW4gRXJlaWduaXMgKHouQi4gRWludHJhZyBlaW5l +ciBLcmFua21lbGR1bmcpIMO2ZmZuZXQgc2ljaCBlaW5lIHZvcmF1c2dlZsO8bGx0ZSBNYWlsIG1p +dCBFbXBmw6RuZ2VybiwgQmV0cmVmZiB1bmQgVGV4dC4gRHUgcHLDvGZzdCBkaWUgTWFpbCB1bmQg +dmVyc2NoaWNrc3Qgc2llIG1hbnVlbGwgcGVyIEtsaWNrIGF1ZiDigJ5TZW5kZW4iLiBLZWluIGF1 +dG9tYXRpc2NoZXIgVmVyc2FuZC48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48 +c3Ryb25nPkF1dG8tVHJpZ2dlciBha3RpdmllcmVuPC9zdHJvbmc+IOKAlCBpbSBFZGl0b3ItTW9k +YWwgZWluZXIgVm9ybGFnZSBwcm8gVHJpZ2dlciBlaW5zdGVsbGJhciAoQWt0aXZpZXJlbiArIEVt +cGbDpG5nZXIgd8OkaGxlbikuIFNvbGFuZ2UgZWluIFRyaWdnZXIgZGVha3RpdmllcnQgaXN0LCDD +tmZmbmV0IHNpY2ggYmVpbSBFcmVpZ25pcyBrZWluIFBvcHVwLjwvcD4KICAgICAgICAgICAgICAg +ICAgICAgICAgICAgIDxwPjxzdHJvbmc+RGVmaXppdC1CcmllZmluZzwvc3Ryb25nPiDigJQgd2ly +ZCBtYW51ZWxsIHBlciBCdXR0b24gaW0gVGFiIDxlbT5QcsO8ZnVuZzwvZW0+IGF1c2dlbMO2c3Qg +KGtlaW4gU2NoZWR1bGVyKS4gRGVyIEJ1dHRvbiDDtmZmbmV0IE91dGxvb2sgbWl0IGVpbmVyIMOc +YmVyc2ljaHQgYWxsZXIgVW50ZXJiZXNldHp1bmdlbiBkZXIgbsOkY2hzdGVuIDQgV29jaGVuLjwv +cD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9k +ZXRhaWxzPgogICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9ImVtYWlsdm9ybGFnZW4taW5oYWx0 +Ij48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgPCEtLSBTdXBwb3J0LU1haWwtVm9ybGFnZTog +bnVyIGZ1ZXIgUGhpbGlwcCBSb2VzZ2VuIHNpY2h0YmFyLgogICAgICAgICAgICAgICAgICAgICAg +ICAgV2lyZCBwZXIgSlMgaW4gYXBwLmpzIC8gYWRtaW4uanMgZWluZ2VibGVuZGV0LAogICAgICAg +ICAgICAgICAgICAgICAgICAgd2VubiBaLmJlbnV0emVyIG1pdCBOVzA1MzYwOSBtYXRjaGVkLiAt +LT4KICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0iYWRtaW4tc2VrdGlvbiB2ZXJz +dGVja3QiIGlkPSJhZG1pbi1zZWt0aW9uLXN1cHBvcnRtYWlsIj4KICAgICAgICAgICAgICAgICAg +ICAgICAgPGRpdiBjbGFzcz0iYWRtaW4tc2VrdGlvbi1rb3BmIj4KICAgICAgICAgICAgICAgICAg +ICAgICAgICAgIDxoMz5TdXBwb3J0LU1haWwtVm9ybGFnZSAoSW1wcmVzc3Vtcy1Nb2RhbCk8L2gz +PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InJlY2h0ZS1kaXJ0eS1o +aW53ZWlzIiBzdHlsZT0iZm9udC1zdHlsZTppdGFsaWMiPk51ciBmw7xyIFBISyBSb2VzZ2VuIHNp +Y2h0YmFyPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAg +ICAgICAgICAgICAgPGRldGFpbHMgY2xhc3M9ImFkbWluLWluZm8iIGRhdGEtaW5mby1rZXk9InN1 +cHBvcnRtYWlsIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdW1tYXJ5PjxzcGFuIGNs +YXNzPSJhZG1pbi1pbmZvLWNoZXYiPuKWuDwvc3Bhbj5XYXMgaXN0IGRhcz88c3BhbiBjbGFzcz0i +YWRtaW4taW5mby1iYWRnZSI+QXVma2xhcHBlbiAvIFp1a2xhcHBlbjwvc3Bhbj48L3N1bW1hcnk+ +CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1pbi1pbmZvLWJvZHki +PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPkhpZXIga2FubnN0IGR1IGRlbiBC +b2R5IGRlciBTdXBwb3J0LU1haWwgYW5wYXNzZW4sIGRpZSBiZWltIEtsaWNrIGF1ZiA8ZW0+4oCe +U3VwcG9ydC1BbmZyYWdlIHBlciBFLU1haWwiPC9lbT4gaW0gSW1wcmVzc3Vtcy1Nb2RhbCB2b3Jh +dXNnZWbDvGxsdCB3aXJkLiBQbGFpbi1UZXh0LCBrZWluIEhUTUwg4oCUIE91dGxvb2sgw7xiZXJu +aW1tdCdzIDE6MS48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9u +Zz5QbGF0emhhbHRlcjwvc3Ryb25nPiAod2VyZGVuIGJlaW0gU2VuZGVuIGF1dG9tYXRpc2NoIGVy +c2V0enQpOjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWw+CiAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48Y29kZT57bndfa2VubnVuZ308L2NvZGU+ +IOKAlCBXaW5kb3dzLVVzZXIgZGVzIEFic2VuZGVycyAoei4mbmJzcDtCLiA8Y29kZT5QT0xJWkVJ +XE5XMDU1ODAxPC9jb2RlPik8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICA8bGk+PGNvZGU+e2FrdHVlbGxlX2Fuc2ljaHR9PC9jb2RlPiDigJQgVGFiLCBkZW4gZGVyIFVz +ZXIgenVsZXR6dCBvZmZlbiBoYXR0ZTwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgIDxsaT48Y29kZT57ZGF0dW19PC9jb2RlPiDigJQgaGV1dGUsIDxjb2RlPmRkLm1tLmpq +amo8L2NvZGU+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxj +b2RlPnt1aHJ6ZWl0fTwvY29kZT4g4oCUIGpldHp0LCA8Y29kZT5oaDptbTwvY29kZT48L2xpPgog +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGNvZGU+e2F1ZmxvZXN1bmd9 +PC9jb2RlPiDigJQgVmlld3BvcnQsIHouJm5ic3A7Qi4gPGNvZGU+MTkyMHgxMDgwPC9jb2RlPjwv +bGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48Y29kZT57YXBwX2ph +aHJ9PC9jb2RlPiDigJQgV2VydCBhdXMgYWRtaW4uanNvbjwvbGk+CiAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgIDxsaT48Y29kZT57YnJvd3Nlcn08L2NvZGU+IOKAlCBCcm93c2Vy +LVVzZXItQWdlbnQgKG1heCAxMjAgWmVpY2hlbik8L2xpPgogICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9u +Zz5FbXBmw6RuZ2VyIHVuZCBCZXRyZWZmPC9zdHJvbmc+IHNpbmQgaGFydGNvZGllcnQgKDxjb2Rl +PnBoaWxpcHAucm9lc2dlbkBwb2xpemVpLm5ydy5kZTwvY29kZT4gLyA8Y29kZT5WSTMgREdMIFBs +YW51bmcgLSBEb3J0bXVuZDwvY29kZT4pIOKAlCBuaWNodCDDvGJlciBkaWVzZW4gRWRpdG9yIMOk +bmRlcmJhci48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAg +ICAgICAgICAgICAgICAgPC9kZXRhaWxzPgogICAgICAgICAgICAgICAgICAgICAgICA8dGV4dGFy +ZWEgaWQ9InN1cHBvcnRtYWlsLXRleHQiIGNsYXNzPSJmb3JtLWlucHV0IiByb3dzPSIyMiIgc3R5 +bGU9IndpZHRoOjEwMCU7Zm9udC1mYW1pbHk6dWktbW9ub3NwYWNlLFNGTW9uby1SZWd1bGFyLE1l +bmxvLENvbnNvbGFzLG1vbm9zcGFjZTtmb250LXNpemU6MTJweDtsaW5lLWhlaWdodDoxLjUiIHBs +YWNlaG9sZGVyPSIobGVlciA9IGVpbmdlYmF1dGVyIERlZmF1bHQgd2lyZCB2ZXJ3ZW5kZXQpIj48 +L3RleHRhcmVhPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tdG9w +OjEwcHg7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTBweDtmbGV4LXdyYXA6 +d3JhcCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tc3VwcG9y +dG1haWwtc3BlaWNoZXJuIiBjbGFzcz0iYnRuIGJ0bi1wcmltYWVyIj5Wb3JsYWdlIHNwZWljaGVy +bjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLXN1 +cHBvcnRtYWlsLWRlZmF1bHQiIGNsYXNzPSJidG4gYnRuLXNlayBidG4ta2xlaW4iPkF1ZiBEZWZh +dWx0IHp1csO8Y2tzZXR6ZW48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxi +dXR0b24gaWQ9ImJ0bi1zdXBwb3J0bWFpbC12b3JzY2hhdSIgY2xhc3M9ImJ0biBidG4tc2VrIGJ0 +bi1rbGVpbiIgdGl0bGU9Ik91dGxvb2sgbWl0IGFrdHVlbGxlciBWb3JsYWdlICsgTGl2ZS1XZXJ0 +ZW4gw7ZmZm5lbiI+T3V0bG9vay1Wb3JzY2hhdSDDtmZmbmVuPC9idXR0b24+CiAgICAgICAgICAg +ICAgICAgICAgICAgICAgICA8c3BhbiBpZD0ic3VwcG9ydG1haWwtZGlydHktaGlud2VpcyIgY2xh +c3M9InJlY2h0ZS1kaXJ0eS1oaW53ZWlzIiBzdHlsZT0iZGlzcGxheTpub25lIj7il48gVW5nZXNw +ZWljaGVydGUgw4RuZGVydW5nZW48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2 +PgogICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAgICAgICAgIDwvZGl2PgoK +ICAgICAgICAgICAgICAgIDwhLS0gVGFiOiBNaXR0ZWlsdW5nZW4gKFNwcmludCBELTNjLCAyMDI2 +LTA1LTI5KSDigJQgU1Utb25seS4KICAgICAgICAgICAgICAgICAgICAgVm9tIFN1cGVyVXNlciBn +ZXBmbGVndGUgTW9kYWxlLUhpbndlaXNlIGFuIFBlcnNvbmVuLwogICAgICAgICAgICAgICAgICAg +ICBHcnVwcGVuL1JvbGxlbiBtaXQgVHJpZ2dlciArIEFuaGFlbmdlbi4gS29tcGxldHRlIFVJCiAg +ICAgICAgICAgICAgICAgICAgIHdpcmQgenVyIExhdWZ6ZWl0IGF1cyBqcy9hZG1pbl9taXR0ZWls +dW5nZW4uanMgZ2VyZW5kZXJ0LiAtLT4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFkbWlu +LXRhYiB2ZXJzdGVja3QiIGlkPSJhZG1pbi10YWItbWl0dGVpbHVuZ2VuIj4KICAgICAgICAgICAg +ICAgICAgICA8ZGl2IGNsYXNzPSJhZG1pbi1rb3BmIj4KICAgICAgICAgICAgICAgICAgICAgICAg +PGgyPk1pdHRlaWx1bmdlbjwvaDI+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAg +ICAgICAgICAgICAgPGRldGFpbHMgY2xhc3M9ImFkbWluLWluZm8iIGRhdGEtaW5mby1rZXk9Im1p +dHRlaWx1bmdlbiI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzdW1tYXJ5PjxzcGFuIGNsYXNz +PSJhZG1pbi1pbmZvLWNoZXYiPuKWuDwvc3Bhbj5XYXMgc2luZCBNaXR0ZWlsdW5nZW4/PHNwYW4g +Y2xhc3M9ImFkbWluLWluZm8tYmFkZ2UiPkF1ZmtsYXBwZW4gLyBadWtsYXBwZW48L3NwYW4+PC9z +dW1tYXJ5PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1pbi1pbmZvLWJv +ZHkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5Xb3p1Pzwvc3Ryb25n +PiBTdXBlclVzZXIga8O2bm5lbiBoaWVyIEhpbndlaXNlIGbDvHIgYXVzZ2V3w6RobHRlIFBlcnNv +bmVuLCBHcnVwcGVuIG9kZXIgUm9sbGVuIGFubGVnZW4uIERpZXNlIGVyc2NoZWluZW4gYmVpbSBu +w6RjaHN0ZW4gQXBwLVN0YXJ0IGFscyBNb2RhbC1TdGFjayAob2JlbiBkdXJjaGdlaGVuZCwgb2Rl +ciBlaW5tYWwgcHJvIFRhZyDigJQgamUgbmFjaCBUcmlnZ2VyKS48L3A+CiAgICAgICAgICAgICAg +ICAgICAgICAgICAgICA8cD48c3Ryb25nPkVtcGbDpG5nZXI8L3N0cm9uZz4gc2luZCBrb21iaW5p +ZXJiYXI6IGVpbnplbG5lIFBlcnNvbmVuLCBnYW56ZSBEaWVuc3RncnVwcGVuLCBSb2xsZW4gKERH +TC9XREYv4oCmLCBTVSwgR2VzYW10dmVyYW50d29ydGxpY2gpIG9kZXIg4oCeQWxsZSIgKGplZGVy +IGVpbmdlbG9nZ3RlIFVzZXIpLjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxz +dHJvbmc+VHJpZ2dlcjo8L3N0cm9uZz4gPGVtPmVpbm1hbDwvZW0+ID0gVXNlciBzaWVodCBkaWUg +TWl0dGVpbHVuZyBnZW5hdSBlaW4gTWFsIHVuZCBuaWUgd2llZGVyLiA8ZW0+amVkZXMgTWFsPC9l +bT4gPSBiZWkgamVkZW0gTG9naW4gKG1heC4gMcOXIHBybyBLYWxlbmRlcnRhZykuIDxlbT5iaXMg +RGF0dW08L2VtPiA9IHTDpGdsaWNoIGJpcyB6dW0gU3RpY2h0YWcsIGRhbmFjaCBuaWUgd2llZGVy +LjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+QW5ow6RuZ2U6PC9z +dHJvbmc+IGVpbiBUaHVtYm5haWwtQmlsZCAobWF4LiAyIE1CLCBKUEcvUE5HL1dlYlApIHVuZC9v +ZGVyIGVpbiBQREYgKG1heC4gMTAgTUIpIGvDtm5uZW4gYmVpZ2Vmw7xndCB3ZXJkZW4uIEtsaWNr +IGF1ZiBkZW4gQW5oYW5nIMO2ZmZuZXQgaWhuIGltIFZvbGxiaWxkLVN1Yi1Nb2RhbC48L3A+CiAg +ICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPldhcydzIG5ldSBtYWNodDo8L3N0 +cm9uZz4gZWluZSBnbG9iYWxlIE1pdHRlaWx1bmcgbWl0IEVtcGbDpG5nZXIg4oCeQWxsZSIgdW5k +IFRyaWdnZXIg4oCeZWlubWFsIiBpc3QgZWZmZWt0aXYgZWluIOKAnldoYXQncyBOZXciLUVpbnRy +YWcuPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAg +ICA8L2RldGFpbHM+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4ta29wZiIg +c3R5bGU9Im1hcmdpbi10b3A6OHB4O2p1c3RpZnktY29udGVudDpmbGV4LWVuZCI+CiAgICAgICAg +ICAgICAgICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1taXR0ZWlsdW5nLW5ldSIgY2xhc3M9ImJ0 +biBidG4tZXJmb2xnIj4rIE5ldWUgTWl0dGVpbHVuZzwvYnV0dG9uPgogICAgICAgICAgICAgICAg +ICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9Im1pdHRlaWx1bmdlbi1pbmhh +bHQiPjwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgPCEtLSBU +YWI6IFJlY2h0ZSAmIFNpY2h0YmFya2VpdCAoTWVyZ2Ug4oCUIFN1cGVyVXNlciArIEZhY2hhdWZz +aWNodCArIFNpY2h0YmFya2VpdCkgLS0+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1p +bi10YWIgdmVyc3RlY2t0IiBpZD0iYWRtaW4tdGFiLXN1cGVydXNlciI+CiAgICAgICAgICAgICAg +ICAgICAgPGRpdiBjbGFzcz0iYWRtaW4ta29wZiI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxo +Mj5SZWNodGUgJmFtcDsgU2ljaHRiYXJrZWl0PC9oMj4KICAgICAgICAgICAgICAgICAgICAgICAg +PHAgY2xhc3M9InJlY2h0ZS10YWItc3ViIj5Sb2xsZW4tU2xvdHMgbWl0IGtvbmZpZ3VyaWVyYmFy +ZXIgU2VoZW4tL0JlYXJiZWl0ZW4tU2ljaHRiYXJrZWl0LiBTdXBlclVzZXIgc3RpY2h0IGFsbGUg +YW5kZXJlbiDigJQgc2llIHNlaGVuIHVuZCBrw7ZubmVuIGltbWVyIGFsbGVzLiBXZXIgaW4ga2Vp +bmVyIGRpZXNlciBMaXN0ZW4gc3RlaHQsIHNpZWh0IHdlZGVyIFN0YXRpc3RpayBub2NoIExvZ2J1 +Y2ggbm9jaCBBZG1pbmlzdHJhdGlvbi48L3A+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+Cgog +ICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJhZG1pbi1zZWt0aW9uIHJlY2h0ZS1j +YXJkIHJlY2h0ZS1jYXJkLXN1IiBpZD0iYWRtaW4tc2VrdGlvbi1zdXBlcnVzZXIiPgogICAgICAg +ICAgICAgICAgICAgICAgICA8ZGV0YWlscyBjbGFzcz0icmVjaHRlLXJvbGxlIj4KICAgICAgICAg +ICAgICAgICAgICAgICAgPHN1bW1hcnkgY2xhc3M9InJlY2h0ZS1yb2xsZS1zdW1tYXJ5Ij4KICAg +ICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJyZWNodGUtY2FyZC1pY29uIiBh +cmlhLWhpZGRlbj0idHJ1ZSI+8J+boTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAg +IDxzcGFuIGNsYXNzPSJyZWNodGUtcm9sbGUtdGl0ZWwiPjxzdHJvbmc+U3VwZXJVc2VyPC9zdHJv +bmc+PHNwYW4gY2xhc3M9InJlY2h0ZS1jYXJkLXN1YiI+Vm9sbHp1Z3JpZmYgYXVmIGFsbGUgRnVu +a3Rpb25lbi4gVmVyd2FsdGV0IGFuZGVyZSBSb2xsZW4uPC9zcGFuPjwvc3Bhbj4KICAgICAgICAg +ICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJyZWNodGUtcm9sbGUtY2hldiIgYXJpYS1o +aWRkZW49InRydWUiPuKWuDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9zdW1tYXJ5 +PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyZWNodGUtcm9sbGUtYm9keSI+ +CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyZWNodGUtcm9sbGUtYWt0 +aW9uIj48YnV0dG9uIGlkPSJidG4tc3VwZXJ1c2VyLW5ldSIgY2xhc3M9ImJ0biBidG4tZXJmb2xn +Ij5OZXVlciBTdXBlclVzZXI8L2J1dHRvbj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAg +PGRldGFpbHMgY2xhc3M9ImFkbWluLWluZm8iIGRhdGEtaW5mby1rZXk9InN1cGVydXNlciI+CiAg +ICAgICAgICAgICAgICAgICAgICAgICAgICA8c3VtbWFyeT48c3BhbiBjbGFzcz0iYWRtaW4taW5m +by1jaGV2Ij7ilrg8L3NwYW4+SGlud2Vpc2UgenUgU3VwZXJVc2VybjxzcGFuIGNsYXNzPSJhZG1p +bi1pbmZvLWJhZGdlIj5BdWZrbGFwcGVuIC8gWnVrbGFwcGVuPC9zcGFuPjwvc3VtbWFyeT4KICAg +ICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFkbWluLWluZm8tYm9keSI+CiAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5XYXMgaXN0IGVpbiBTdXBl +clVzZXI/PC9zdHJvbmc+IFN1cGVyVXNlciBoYWJlbiB1bmVpbmdlc2NocsOkbmt0ZW4gWnVncmlm +ZiBhdWYgYWxsZSBBZG1pbmlzdHJhdGlvbnNmdW5rdGlvbmVuLCBlaW5zY2hsaWXDn2xpY2ggZGVy +IFZlcndhbHR1bmcgYW5kZXJlciBTdXBlclVzZXIsIGRlbSBTZXR6ZW4gdm9uIFNvbmRlcnRlcm1p +bmUtSGlud2Vpc2VuIGRpcmVrdCBpbiBkZXIgUGxhbnVuZyB1bmQgZGVyIFBmbGVnZSBkZXIgZ2xv +YmFsZW4gRWluc3RlbGx1bmdlbi48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +PHA+PHN0cm9uZz5TaWNoZXJoZWl0c2hpbndlaXM6PC9zdHJvbmc+IE51ciBiZXN0ZWhlbmRlIFN1 +cGVyVXNlciBrw7ZubmVuIGRpZXNlIExpc3RlIGJlYXJiZWl0ZW4uIERhbWl0IHdpcmQgdmVyaGlu +ZGVydCwgZGFzcyBBZG1pbi1SZWNodGUgdmVybG9yZW4gZ2VoZW4gb2RlciB1bmJlcmVjaHRpZ3Qg +ZXJ3ZWl0ZXJ0IHdlcmRlbi4gPGI+TWluZGVzdGVucyBlaW4gU3VwZXJVc2VyIG11c3MgaW1tZXIg +ZWluZ2V0cmFnZW4gc2VpbjwvYj4g4oCUIHNvbnN0IGlzdCBuaWVtYW5kIG1laHIgaW4gZGVyIExh +Z2UsIGFkbWluaXN0cmF0aXZlIMOEbmRlcnVuZ2VuIHZvcnp1bmVobWVuLjwvcD4KICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPkZlbGRlcjo8L3N0cm9uZz4gTmFtZSAo +S2xhcnRleHQgenVyIElkZW50aWZpa2F0aW9uKSwgTlctS2VubnVuZyAoV2luZG93cy1CZW51dHpl +cm5hbWUsIHdpcmQgYXV0b21hdGlzY2ggYmVpbSBMb2dpbiBhYmdlZ2xpY2hlbiksIE9FIChPcmdh +bmlzYXRpb25zZWluaGVpdCksIFRlbGVmb24vRHVyY2h3YWhsLjwvcD4KICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPkFuemVpZ2UgaW0gSW5mby1GZW5zdGVyOjwvc3Ry +b25nPiBBbGxlIFN1cGVyVXNlciB3ZXJkZW4gaW0gSW5mb3JtYXRpb25zZmVuc3RlciAoQnV0dG9u +IOKAnuKEuSIgb2JlbiByZWNodHMpIGFscyBBbnNwcmVjaHBhcnRuZXIgYXVmZ2Vmw7xocnQuPC9w +PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAg +ICAgIDwvZGV0YWlscz4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5mby1i +b3ggcmVjaHRlLW5vdGZhbGwtYm94Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJv +bmc+Tm90ZmFsbC1Sw7xja2ZhbGxlYmVuZTo8L3N0cm9uZz4gRGllIE5XLUtlbm51bmcgPGNvZGU+ +TlcwNTM2MDk8L2NvZGU+IChQSEsgUm9lc2dlbikgaXN0IGltIFNlcnZlciBoYXJ0IGFscyBTdXBl +clVzZXIgaGludGVybGVndCB1bmQgZ2lsdCBhdWNoIGRhbm4sIHdlbm4gZGllIFN1cGVyVXNlci1M +aXN0ZSBsZWVyIG9kZXIgdW5sZXNiYXIgaXN0LgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rp +dj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJhZG1pbi10YWJlbGxlIiBp +ZD0ic3VwZXJ1c2VyLXRhYmVsbGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoZWFk +PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgPHRoPk5hbWU8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICA8dGg+TlctS2VubnVuZzwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgIDx0aD5PcmdhbmlzYXRpb25zZWluaGVpdDwvdGg+CiAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6MTUwcHgiPlRlbGVmb24gLyBEdXJj +aHdhaGw8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9 +IndpZHRoOjgwcHgiPkFrdGlvbmVuPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAg +ICAgICAgICAgICAgICAgIDx0Ym9keSBpZD0ic3VwZXJ1c2VyLXRib2R5Ij48L3Rib2R5PgogICAg +ICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2 +IGNsYXNzPSJyZWNodGUtY2FyZC1mdXNzIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxi +dXR0b24gaWQ9ImJ0bi1zdXBlcnVzZXItc3BlaWNoZXJuIiBjbGFzcz0iYnRuIGJ0bi1wcmltYWVy +Ij5TdXBlclVzZXIgc3BlaWNoZXJuPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIDwv +ZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJzdXBlcnVzZXIta2Vpbi1yZWNo +dCIgY2xhc3M9InZlcnN0ZWNrdCByZWNodGUta2Vpbi1yZWNodCI+CiAgICAgICAgICAgICAgICAg +ICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvLWJveCIgc3R5bGU9ImJvcmRlci1sZWZ0LWNvbG9y +OnZhcigtLWZhcmJlLWZlaGxlcikiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxz +dHJvbmc+S2VpbiBadWdyaWZmOjwvc3Ryb25nPiBOdXIgYmVzdGVoZW5kZSBTdXBlclVzZXIga8O2 +bm5lbiBkaWVzZSBMaXN0ZSBiZWFyYmVpdGVuLgogICAgICAgICAgICAgICAgICAgICAgICAgICAg +PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAg +ICAgICA8L2Rpdj48L2RldGFpbHM+CiAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPgoKICAg +ICAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0iYWRtaW4tc2VrdGlvbiByZWNodGUtY2Fy +ZCByZWNodGUtY2FyZC1mYSIgaWQ9ImFkbWluLXNla3Rpb24tZmFjaGF1ZnNpY2h0Ij4KICAgICAg +ICAgICAgICAgICAgICAgICAgPGRldGFpbHMgY2xhc3M9InJlY2h0ZS1yb2xsZSI+CiAgICAgICAg +ICAgICAgICAgICAgICAgIDxzdW1tYXJ5IGNsYXNzPSJyZWNodGUtcm9sbGUtc3VtbWFyeSI+CiAg +ICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icmVjaHRlLWNhcmQtaWNvbiIg +YXJpYS1oaWRkZW49InRydWUiPvCfkYE8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAg +ICA8c3BhbiBjbGFzcz0icmVjaHRlLXJvbGxlLXRpdGVsIj48c3Ryb25nPkZhY2hhdWZzaWNodDwv +c3Ryb25nPjxzcGFuIGNsYXNzPSJyZWNodGUtY2FyZC1zdWIiPktsYXNzaXNjaGUgQXVmc2ljaHRz +LVJvbGxlIG1pdCBncmFudWxhcmVuIFNlaGVuLSB1bmQgUGxhbnVuZ3MtUmVjaHRlbi4gT3B0aW9u +YWwg4oCeR2VzYW10dmVyYW50d29ydGxpY2giIGbDvHIgU2NoaWNodGJlc2V0enVuZy48L3NwYW4+ +PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InJlY2h0ZS1y +b2xsZS1jaGV2IiBhcmlhLWhpZGRlbj0idHJ1ZSI+4pa4PC9zcGFuPgogICAgICAgICAgICAgICAg +ICAgICAgICA8L3N1bW1hcnk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJl +Y2h0ZS1yb2xsZS1ib2R5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9 +InJlY2h0ZS1yb2xsZS1ha3Rpb24iPjxidXR0b24gaWQ9ImJ0bi1mYWNoYXVmc2ljaHQtbmV1IiBj +bGFzcz0iYnRuIGJ0bi1lcmZvbGciPk5ldWVyIEZhY2hhdWZzaWNodC1FaW50cmFnPC9idXR0b24+ +PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkZXRhaWxzIGNsYXNzPSJhZG1pbi1pbmZv +IiBkYXRhLWluZm8ta2V5PSJmYWNoYXVmc2ljaHQiPgogICAgICAgICAgICAgICAgICAgICAgICAg +ICAgPHN1bW1hcnk+PHNwYW4gY2xhc3M9ImFkbWluLWluZm8tY2hldiI+4pa4PC9zcGFuPkhpbndl +aXNlIHp1ciBGYWNoYXVmc2ljaHQ8c3BhbiBjbGFzcz0iYWRtaW4taW5mby1iYWRnZSI+QXVma2xh +cHBlbiAvIFp1a2xhcHBlbjwvc3Bhbj48L3N1bW1hcnk+CiAgICAgICAgICAgICAgICAgICAgICAg +ICAgICA8ZGl2IGNsYXNzPSJhZG1pbi1pbmZvLWJvZHkiPgogICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgIDxwPjxzdHJvbmc+Um9sbGVuLUhpZXJhcmNoaWU6PC9zdHJvbmc+IDxjb2RlPlN1 +cGVyVXNlciDihpIgRmFjaGF1ZnNpY2h0IC8gRGlyZWt0aW9uc2xlaXR1bmcgLyBGw7xocnVuZ3Nz +dGVsbGUg4oaSIFVzZXI8L2NvZGU+LiBTdXBlclVzZXIgc3RpY2h0IGFsbGVzLiBXZXIgaW4ga2Vp +bmVyIFJvbGxlbi1MaXN0ZSBzdGVodCwgc2llaHQgd2VkZXIgU3RhdGlzdGlrIG5vY2ggTG9nYnVj +aCBub2NoIEFkbWluaXN0cmF0aW9uLjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICA8cD48c3Ryb25nPlNlaGVuLUJlcmVpY2hlPC9zdHJvbmc+IChIYWtlbiA9IFRhYiBpc3QgZsO8 +ciBkaWVzZSBQZXJzb24gc2ljaHRiYXIpOjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICA8dWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48Yj5BZG1p +bmlzdHJhdGlvbjwvYj4g4oCUIGtvbXBsZXR0ZXIgQWRtaW4tVGFiLiA8Yj5BdXNnZW5vbW1lbjo8 +L2I+IFN1cGVyVXNlci0gdW5kIFJvbGxlbi1MaXN0ZW4gKGJsZWliZW4gU3VwZXJVc2VyLW9ubHkp +LjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48Yj5TdGF0aXN0 +aWs8L2I+LCA8Yj5Mb2didWNoPC9iPiwgPGI+QmFja3VwczwvYj4g4oCUIGpld2VpbHMgZGVyIGdh +bnplIFRhYi48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5QbGFudW5nOjwvc3Ryb25nPiBQ +cm8gRmFjaGF1ZnNpY2h0IGZlc3RsZWdiYXIsIHdlbGNoZSBQZXJzb25lbi9HcnVwcGVuL1N0YW5k +b3J0ZSBlZGl0aWVydCB3ZXJkZW4gZMO8cmZlbiDigJQgZGllIGVpZ2VuZSBaZWlsZSBpc3QgaW1t +ZXIgaW1wbGl6aXQgZXJsYXVidC48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +PHA+PHN0cm9uZz5HZXNhbXR2ZXJhbnR3b3J0dW5nOjwvc3Ryb25nPiBCZWtvbW10IGRlbiBIZWFk +ZXItVGFiIDxlbT5QcsO8ZnVuZzwvZW0+IG1pdCA0LVdvY2hlbi3DnGJlcnNpY2h0IGlua2wuIHZv +cmdlZmVydGlndGVyIEUtTWFpbCBhbiBiZXRyb2ZmZW5lIFBlcnNvbmVuLjwvcD4KICAgICAgICAg +ICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2RldGFp +bHM+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iYWRtaW4tdGFiZWxsZSIg +aWQ9ImZhY2hhdWZzaWNodC10YWJlbGxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0 +aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgIDx0aD5OYW1lPC90aD4KICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgPHRoPk5XLUtlbm51bmc8L3RoPgogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICA8dGggc3R5bGU9IndpZHRoOjYwcHg7dGV4dC1hbGlnbjpjZW50ZXIiIHRp dGxlPSJBZG1pbi1UYWIgc2VoZW4iPkFkbWluPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDo3MHB4O3RleHQtYWxpZ246Y2VudGVyIiB0aXRs -ZT0iU3RhdGlzdGlrLVRhYiBzZWhlbiI+U3RhdGlzdGlrPC90aD4KICAgICAgICAgICAgICAgICAg -ICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDo3MHB4O3RleHQtYWxpZ246Y2VudGVy -IiB0aXRsZT0iTG9nYnVjaC1UYWIgc2VoZW4iPkxvZ2J1Y2g8L3RoPgogICAgICAgICAgICAgICAg -ICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9IndpZHRoOjcwcHg7dGV4dC1hbGlnbjpjZW50 -ZXIiIHRpdGxlPSJCYWNrdXAtVGFiIHNlaGVuIj5CYWNrdXBzPC90aD4KICAgICAgICAgICAgICAg -ICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDoyMjBweCIgdGl0bGU9IkdyYW51 -bGFyZSBTaWNodGJhcmtlaXQgcHJvIFN1Yi1UYWIiPlN1Yi1TaWNodDwvdGg+CiAgICAgICAgICAg -ICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6MjAwcHgiPlBsYW51bmc8 +ZT0iQmVyZWljaC1BLVRhYiBzZWhlbiIgZGF0YS1iZXo9ImZhLnNwYWx0ZUEiPkF1c3dlcnR1bmc8 L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9IndpZHRo -OjgwcHgiPkFrdGlvbmVuPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3Ry -PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgICAg -ICAgICAgICAgIDx0Ym9keSBpZD0iZGlyZWt0aW9uc2xlaXR1bmctdGJvZHkiPjwvdGJvZHk+CiAg -ICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgICAgICAgICAgICAgIDxk -aXYgY2xhc3M9InJlY2h0ZS1jYXJkLWZ1c3MiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAg -PGJ1dHRvbiBpZD0iYnRuLWRpcmVrdGlvbnNsZWl0dW5nLXNwZWljaGVybiIgY2xhc3M9ImJ0biBi -dG4tcHJpbWFlciI+RGlyZWt0aW9uc2xlaXR1bmcgc3BlaWNoZXJuPC9idXR0b24+CiAgICAgICAg -ICAgICAgICAgICAgICAgICAgICA8c3BhbiBpZD0iZGlyZWt0aW9uc2xlaXR1bmctZGlydHktaGlu -d2VpcyIgY2xhc3M9InJlY2h0ZS1kaXJ0eS1oaW53ZWlzIiBzdHlsZT0iZGlzcGxheTpub25lIj7i -l48gVW5nZXNwZWljaGVydGUgw4RuZGVydW5nZW48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAg -ICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJkaXJla3Rpb25zbGVp -dHVuZy1rZWluLXJlY2h0IiBjbGFzcz0idmVyc3RlY2t0IHJlY2h0ZS1rZWluLXJlY2h0Ij4KICAg -ICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImluZm8tYm94IiBzdHlsZT0iYm9y -ZGVyLWxlZnQtY29sb3I6dmFyKC0tZmFyYmUtZmVobGVyKSI+CiAgICAgICAgICAgICAgICAgICAg -ICAgICAgICAgICAgPHN0cm9uZz5LZWluIFp1Z3JpZmY6PC9zdHJvbmc+IE51ciBTdXBlclVzZXIg -a8O2bm5lbiBEaXJla3Rpb25zbGVpdHVuZ3MtRWludHLDpGdlIGJlYXJiZWl0ZW4uCiAgICAgICAg -ICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ -CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvZGV0YWlscz4KICAgICAgICAgICAgICAg -ICAgICA8L3NlY3Rpb24+CgogICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJhZG1p -bi1zZWt0aW9uIHJlY2h0ZS1jYXJkIHJlY2h0ZS1jYXJkLWZzIiBpZD0iYWRtaW4tc2VrdGlvbi1m -dWVocnVuZ3NzdGVsbGUiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGV0YWlscyBjbGFzcz0i -cmVjaHRlLXJvbGxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHN1bW1hcnkgY2xhc3M9InJl -Y2h0ZS1yb2xsZS1zdW1tYXJ5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNs -YXNzPSJyZWNodGUtY2FyZC1pY29uIiBhcmlhLWhpZGRlbj0idHJ1ZSI+4peGPC9zcGFuPgogICAg -ICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InJlY2h0ZS1yb2xsZS10aXRlbCI+ -PHN0cm9uZz5Gw7xocnVuZ3NzdGVsbGU8L3N0cm9uZz48c3BhbiBjbGFzcz0icmVjaHRlLWNhcmQt -c3ViIj5NaXRhcmJlaXRlbmRlIGRlciBGw7xocnVuZ3NzdGVsbGUgKHouIEIuIEwvVkkzIHVuZCBT -dGFiKSDigJQgZ2xlaWNoZSBHcmFudWxhcml0w6R0IHdpZSBGYWNoYXVmc2ljaHQuPC9zcGFuPjwv -c3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJyZWNodGUtcm9s -bGUtY2hldiIgYXJpYS1oaWRkZW49InRydWUiPuKWuDwvc3Bhbj4KICAgICAgICAgICAgICAgICAg -ICAgICAgPC9zdW1tYXJ5PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyZWNo -dGUtcm9sbGUtYm9keSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJy -ZWNodGUtcm9sbGUtYWt0aW9uIj48YnV0dG9uIGlkPSJidG4tZnVlaHJ1bmdzc3RlbGxlLW5ldSIg -Y2xhc3M9ImJ0biBidG4tZXJmb2xnIj5OZXVlciBGw7xocnVuZ3NzdGVsbGUtRWludHJhZzwvYnV0 -dG9uPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGV0YWlscyBjbGFzcz0iYWRtaW4t -aW5mbyIgZGF0YS1pbmZvLWtleT0iZnVlaHJ1bmdzc3RlbGxlIj4KICAgICAgICAgICAgICAgICAg -ICAgICAgICAgIDxzdW1tYXJ5PjxzcGFuIGNsYXNzPSJhZG1pbi1pbmZvLWNoZXYiPuKWuDwvc3Bh -bj5IaW53ZWlzZSB6dXIgRsO8aHJ1bmdzc3RlbGxlPHNwYW4gY2xhc3M9ImFkbWluLWluZm8tYmFk -Z2UiPkF1ZmtsYXBwZW4gLyBadWtsYXBwZW48L3NwYW4+PC9zdW1tYXJ5PgogICAgICAgICAgICAg -ICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4taW5mby1ib2R5Ij4KICAgICAgICAgICAg -ICAgICAgICAgICAgICAgICAgICA8cD5QZXJzb25lbiB3ZXJkZW4gw7xiZXIgZGFzIERyb3Bkb3du -IDxlbT5QZXJzb248L2VtPiBkaXJla3QgYXVzIGRlciBQZXJzb25hbHZlcndhbHR1bmcgZ2V3w6Ro -bHQuIFNjaGVtYSB1bmQgR3JhbnVsYXJpdMOkdCBhbmFsb2cgenVyIERpcmVrdGlvbnNsZWl0dW5n -LjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAg -ICAgICAgICA8L2RldGFpbHM+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0i -YWRtaW4tdGFiZWxsZSByb2xsZW4tdGFiZWxsZSIgaWQ9ImZ1ZWhydW5nc3N0ZWxsZS10YWJlbGxl -Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAg -ICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0 -aD5QZXJzb248L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5 -bGU9IndpZHRoOjYwcHg7dGV4dC1hbGlnbjpjZW50ZXIiIHRpdGxlPSJBZG1pbi1UYWIgc2VoZW4i -PkFkbWluPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxl -PSJ3aWR0aDo3MHB4O3RleHQtYWxpZ246Y2VudGVyIiB0aXRsZT0iU3RhdGlzdGlrLVRhYiBzZWhl -biI+U3RhdGlzdGlrPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRo -IHN0eWxlPSJ3aWR0aDo3MHB4O3RleHQtYWxpZ246Y2VudGVyIiB0aXRsZT0iTG9nYnVjaC1UYWIg -c2VoZW4iPkxvZ2J1Y2g8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8 -dGggc3R5bGU9IndpZHRoOjcwcHg7dGV4dC1hbGlnbjpjZW50ZXIiIHRpdGxlPSJCYWNrdXAtVGFi -IHNlaGVuIj5CYWNrdXBzPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg -PHRoIHN0eWxlPSJ3aWR0aDoyMjBweCIgdGl0bGU9IkdyYW51bGFyZSBTaWNodGJhcmtlaXQgcHJv -IFN1Yi1UYWIiPlN1Yi1TaWNodDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg -ICAgIDx0aCBzdHlsZT0id2lkdGg6MjAwcHgiPlBsYW51bmc8L3RoPgogICAgICAgICAgICAgICAg -ICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9IndpZHRoOjgwcHgiPkFrdGlvbmVuPC90aD4K -ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAg -ICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keSBpZD0i -ZnVlaHJ1bmdzc3RlbGxlLXRib2R5Ij48L3Rib2R5PgogICAgICAgICAgICAgICAgICAgICAgICA8 -L3RhYmxlPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyZWNodGUtY2FyZC1m -dXNzIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1mdWVocnVu -Z3NzdGVsbGUtc3BlaWNoZXJuIiBjbGFzcz0iYnRuIGJ0bi1wcmltYWVyIj5Gw7xocnVuZ3NzdGVs -bGUgc3BlaWNoZXJuPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBp -ZD0iZnVlaHJ1bmdzc3RlbGxlLWRpcnR5LWhpbndlaXMiIGNsYXNzPSJyZWNodGUtZGlydHktaGlu -d2VpcyIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+4pePIFVuZ2VzcGVpY2hlcnRlIMOEbmRlcnVuZ2Vu -PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAg -ICAgICAgPGRpdiBpZD0iZnVlaHJ1bmdzc3RlbGxlLWtlaW4tcmVjaHQiIGNsYXNzPSJ2ZXJzdGVj -a3QgcmVjaHRlLWtlaW4tcmVjaHQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBj -bGFzcz0iaW5mby1ib3giIHN0eWxlPSJib3JkZXItbGVmdC1jb2xvcjp2YXIoLS1mYXJiZS1mZWhs -ZXIpIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPktlaW4gWnVncmlm -Zjo8L3N0cm9uZz4gTnVyIFN1cGVyVXNlciBrw7ZubmVuIEbDvGhydW5nc3N0ZWxsZW4tRWludHLD -pGdlIGJlYXJiZWl0ZW4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAg -ICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pjwv -ZGV0YWlscz4KICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+CgogICAgICAgICAgICAgICAg -PC9kaXY+CgogICAgICAgICAgICAgICAgPCEtLSBUYWI6IFN0YW5kYXJkcmVjaHRlIHJlZ3VsYWVy -ZXIgVXNlciAoU1Utb25seSkg4oCUIGdydW5kc2FldHpsaWNoZQogICAgICAgICAgICAgICAgICAg -ICBQbGFudW5nc3JlY2h0ZSBmdWVyIGFsbGUgb2huZSBSb2xsZSAoZ2VnZW5zZWl0aWdlIFBsYW51 -bmcgamUKICAgICAgICAgICAgICAgICAgICAgRGllbnN0Z3J1cHBlL1N0YW5kb3J0KSArIExpc3Rl -IGRlciBVc2VyIG1pdCBadXNhdHpyZWNodGVuLiAtLT4KICAgICAgICAgICAgICAgIDxkaXYgY2xh -c3M9ImFkbWluLXRhYiB2ZXJzdGVja3QiIGlkPSJhZG1pbi10YWItc3RhbmRhcmRyZWNodGUiPgog -ICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFkbWluLWtvcGYiPgogICAgICAgICAgICAg -ICAgICAgICAgICA8aDI+U3RhbmRhcmRyZWNodGUgcmVndWzDpHJlciBVc2VyPC9oMj4KICAgICAg -ICAgICAgICAgICAgICAgICAgPHAgc3R5bGU9Im1hcmdpbjo2cHggMCAwIDA7Zm9udC1zaXplOjEy -cHg7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCkiPkdydW5kcmVnZWxuLCBkaWUgZsO8ciA8c3Ryb25n -PmFsbGU8L3N0cm9uZz4gTWl0YXJiZWl0ZW5kZW4gb2huZSBlaWdlbmUgUm9sbGUgZ2VsdGVuIOKA -lCB6LkIuIOKAnmFsbGUgZWluZXIgRGllbnN0Z3J1cHBlIHBsYW5lbiBzaWNoIGdlZ2Vuc2VpdGln -IiBvZGVyIOKAnmFsbGUgZWluZXMgU3RhbmRvcnRzIHBsYW5lbiBzaWNoIGdlZ2Vuc2VpdGlnIi4g -RGFydW50ZXI6IMOcYmVyc2ljaHQgYWxsZXIgVXNlciwgZGllIGluIGRlciBQZXJzb25hbHZlcndh -bHR1bmcgPHN0cm9uZz56dXPDpHR6bGljaGU8L3N0cm9uZz4gaW5kaXZpZHVlbGxlIFJlY2h0ZSBi -ZWtvbW1lbiBoYWJlbi48L3A+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAg -ICAgICAgICAgPGRpdiBpZD0ic3RhbmRhcmRyZWNodGUtaW5oYWx0Ij48L2Rpdj4KICAgICAgICAg -ICAgICAgIDwvZGl2PgoKCiAgICAgICAgICAgIDwvbWFpbj4KICAgICAgICA8L2Rpdj4KICAgIDwv -ZGl2PgoKICAgIDwhLS0gPT09PT09PT09PSBNb2RhbGVyIERpYWxvZyAod2llZGVydmVyd2VuZGJh -cikgPT09PT09PT09PSAtLT4KICAgIDwhLS0gYTExeSAoU3ByaW50IDZhIDIwMjYtMDUtMjkpOiBy -b2xlPWRpYWxvZyArIGFyaWEtbW9kYWwgKyBsYWJlbGxlZGJ5CiAgICAgICAgIG1hY2h0IGRlbiBN -b2RhbC1Lb250ZXh0IGZ1ZXIgU2NyZWVucmVhZGVyIGV4cGxpeml0LiBhcmlhLWhpZGRlbiB3aXJk -CiAgICAgICAgIHZvbSBtb2RhbFplaWdlbigpLUNvZGUgYmVpbSBPcGVuL0Nsb3NlIGdlc2V0enQu -IC0tPgogICAgPGRpdiBpZD0ibW9kYWwtb3ZlcmxheSIgY2xhc3M9Im1vZGFsIHZlcnN0ZWNrdCIg -cm9sZT0iZGlhbG9nIiBhcmlhLW1vZGFsPSJ0cnVlIiBhcmlhLWxhYmVsbGVkYnk9Im1vZGFsLXRp -dGVsIiBhcmlhLWhpZGRlbj0idHJ1ZSI+CiAgICAgICAgPGRpdiBjbGFzcz0ibW9kYWwtaW5oYWx0 -IiBpZD0ibW9kYWwtYm94Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibW9kYWwta29wZiI+CiAg -ICAgICAgICAgICAgICA8aDIgaWQ9Im1vZGFsLXRpdGVsIj48L2gyPgogICAgICAgICAgICAgICAg -PGJ1dHRvbiBjbGFzcz0ibW9kYWwtc2NobGllc3NlbiIgaWQ9Im1vZGFsLXNjaGxpZXNzZW4tYnRu -IiBhcmlhLWxhYmVsPSJTY2hsaWXDn2VuIj4mdGltZXM7PC9idXR0b24+CiAgICAgICAgICAgIDwv -ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1rb2VycGVyIiBpZD0ibW9kYWwta29l -cnBlciI+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWZ1c3MiIGlkPSJtb2Rh -bC1mdXNzIj48L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDwhLS0gQ29uZmly -bS1PdmVybGF5IChTcHJpbnQgNSDigJQgTW9kYWwtU3RhY2sgMjAyNi0wNS0yOSk6CiAgICAgICAg -IEVpZ2VuZXIgQ29udGFpbmVyIG1pdCBob2VoZXJlbSB6LWluZGV4LCBkYW1pdCBiZXN0YWV0aWdl -bigpLURpYWxvZ2UKICAgICAgICAgSU5ORVJIQUxCIGVpbmVzIGdlb2VmZm5ldGVuIEhhdXB0bW9k -YWxzIGVyc2NoZWluZW4ga29lbm5lbiwgb2huZQogICAgICAgICBkZXNzZW4gSW5oYWx0IHp1IHVl -YmVyc2NocmVpYmVuLiBWb3JoZXIgaGFiZW4gQ29uZmlybS1BdWZydWZlCiAgICAgICAgICh6LkIu -ICJXaXJrbGljaCBsb2VzY2hlbj8iIGJlaW0gUGVyc29uLUJlYXJiZWl0ZW4pIGRhcyB1bWdlYmVu -ZGUKICAgICAgICAgTW9kYWwgemVyc3RvZXJ0OyBuYWNoICJBYmJyZWNoZW4iIHdhciBkaWUgQmVh -cmJlaXR1bmcgd2VnLiAtLT4KICAgIDxkaXYgaWQ9ImNvbmZpcm0tb3ZlcmxheSIgY2xhc3M9Im1v -ZGFsIHZlcnN0ZWNrdCIgcm9sZT0iZGlhbG9nIiBhcmlhLW1vZGFsPSJ0cnVlIiBhcmlhLWxhYmVs -bGVkYnk9ImNvbmZpcm0tdGl0ZWwiIGFyaWEtaGlkZGVuPSJ0cnVlIiBzdHlsZT0iei1pbmRleDpj -YWxjKHZhcigtLXotb3ZlcmxheSkgKyAxMCkiPgogICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWlu -aGFsdCIgaWQ9ImNvbmZpcm0tYm94IiBzdHlsZT0ibWF4LXdpZHRoOjQ4MHB4Ij4KICAgICAgICAg -ICAgPGRpdiBjbGFzcz0ibW9kYWwta29wZiI+CiAgICAgICAgICAgICAgICA8aDIgaWQ9ImNvbmZp -cm0tdGl0ZWwiPkJlc3TDpHRpZ3VuZzwvaDI+CiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNz -PSJtb2RhbC1zY2hsaWVzc2VuIiBpZD0iY29uZmlybS1zY2hsaWVzc2VuLWJ0biIgYXJpYS1sYWJl -bD0iU2NobGllw59lbiI+JnRpbWVzOzwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAg -ICAgICAgPGRpdiBjbGFzcz0ibW9kYWwta29lcnBlciIgaWQ9ImNvbmZpcm0ta29lcnBlciI+PC9k -aXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWZ1c3MiIGlkPSJjb25maXJtLWZ1c3Mi -PjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPCEtLSBUb2FzdC1Db250YWlu -ZXIgLS0+CiAgICA8ZGl2IGlkPSJ0b2FzdC1jb250YWluZXIiIHJvbGU9InN0YXR1cyIgYXJpYS1s -aXZlPSJwb2xpdGUiIGFyaWEtYXRvbWljPSJmYWxzZSI+PC9kaXY+CgogICAgPHNjcmlwdCB0eXBl -PSJtb2R1bGUiIHNyYz0iYXBwLmpzIj48L3NjcmlwdD4KPC9ib2R5Pgo8L2h0bWw+Cg== +OjcwcHg7dGV4dC1hbGlnbjpjZW50ZXIiIHRpdGxlPSJCZXJlaWNoLUItVGFiIHNlaGVuIiBkYXRh +LWJlej0iZmEuc3BhbHRlQiI+UHJvdG9rb2xsPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDo3MHB4O3RleHQtYWxpZ246Y2VudGVyIiB0aXRs +ZT0iQmFja3VwLVRhYiBzZWhlbiI+QmFja3VwczwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6OTBweDt0ZXh0LWFsaWduOmNlbnRlciIgdGl0 +bGU9Ikdlc2FtdHZlcmFudHdvcnRsaWNoIGbDvHIgZGllIEJlc2V0enVuZyBhbGxlciBEaWVuc3Rl +Ij5HZXNhbXR2ZXJhbnR3LjwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +IDx0aCBzdHlsZT0id2lkdGg6MjIwcHgiIHRpdGxlPSJHcmFudWxhcmUgU2ljaHRiYXJrZWl0IHBy +byBTdWItVGFiIGRlcyBBZG1pbi1CZXJlaWNocyArIHBybyBCZXJlaWNoLUEiPlN1Yi1TaWNodDwv +dGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6 +MjAwcHgiPlBsYW51bmc8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8 +dGggc3R5bGU9IndpZHRoOjgwcHgiPkFrdGlvbmVuPC90aD4KICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aGVhZD4KICAg +ICAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keSBpZD0iZmFjaGF1ZnNpY2h0LXRib2R5Ij48 +L3Rib2R5PgogICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAg +ICAgICAgICA8ZGl2IGNsYXNzPSJyZWNodGUtY2FyZC1mdXNzIj4KICAgICAgICAgICAgICAgICAg +ICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1mYWNoYXVmc2ljaHQtc3BlaWNoZXJuIiBjbGFzcz0i +YnRuIGJ0bi1wcmltYWVyIj5GYWNoYXVmc2ljaHQgc3BlaWNoZXJuPC9idXR0b24+CiAgICAgICAg +ICAgICAgICAgICAgICAgICAgICA8c3BhbiBpZD0iZmFjaGF1ZnNpY2h0LWRpcnR5LWhpbndlaXMi +IGNsYXNzPSJyZWNodGUtZGlydHktaGlud2VpcyIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+4pePIFVu +Z2VzcGVpY2hlcnRlIMOEbmRlcnVuZ2VuPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAg +ICAgPGJ1dHRvbiBpZD0iYnRuLXRlc3QtcmVndWxhZXIiIGNsYXNzPSJidG4gYnRuLXNlayBidG4t +a2xlaW4iIHN0eWxlPSJtYXJnaW4tbGVmdDphdXRvIiB0aXRsZT0iT2JlcmZsw6RjaGUgYXVzIFNp +Y2h0IGVpbmVzIFVzZXJzIG9obmUgUm9sbGUgdGVzdGVuIChrZWluIFNVLCBrZWluZSBGYWNoYXVm +c2ljaHQvRGlyZWt0aW9uc2xlaXR1bmcvRsO8aHJ1bmdzc3RlbGxlKSI+QWxzIFVzZXIgb2huZSBS +b2xsZSB0ZXN0ZW48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAg +ICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9ImZhY2hhdWZzaWNodC1rZWluLXJlY2h0IiBjbGFz +cz0idmVyc3RlY2t0IHJlY2h0ZS1rZWluLXJlY2h0Ij4KICAgICAgICAgICAgICAgICAgICAgICAg +ICAgIDxkaXYgY2xhc3M9ImluZm8tYm94IiBzdHlsZT0iYm9yZGVyLWxlZnQtY29sb3I6dmFyKC0t +ZmFyYmUtZmVobGVyKSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz5L +ZWluIFp1Z3JpZmY6PC9zdHJvbmc+IE51ciBTdXBlclVzZXIga8O2bm5lbiBGYWNoYXVmc2ljaHQt +RWludHLDpGdlIGJlYXJiZWl0ZW4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4K +ICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwv +ZGl2PjwvZGV0YWlscz4KICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+CgogICAgICAgICAg +ICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJhZG1pbi1zZWt0aW9uIHJlY2h0ZS1jYXJkIHJlY2h0 +ZS1jYXJkLWRsIiBpZD0iYWRtaW4tc2VrdGlvbi1kaXJla3Rpb25zbGVpdHVuZyI+CiAgICAgICAg +ICAgICAgICAgICAgICAgIDxkZXRhaWxzIGNsYXNzPSJyZWNodGUtcm9sbGUiPgogICAgICAgICAg +ICAgICAgICAgICAgICA8c3VtbWFyeSBjbGFzcz0icmVjaHRlLXJvbGxlLXN1bW1hcnkiPgogICAg +ICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InJlY2h0ZS1jYXJkLWljb24iIGFy +aWEtaGlkZGVuPSJ0cnVlIj7imIU8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8 +c3BhbiBjbGFzcz0icmVjaHRlLXJvbGxlLXRpdGVsIj48c3Ryb25nPkRpcmVrdGlvbnNsZWl0dW5n +PC9zdHJvbmc+PHNwYW4gY2xhc3M9InJlY2h0ZS1jYXJkLXN1YiI+TWl0Z2xpZWRlciBkZXIgRGly +ZWt0aW9uc2xlaXR1bmcgKHouIEIuIEwvRGlyViwgTFBEaW4pIOKAlCBnbGVpY2hlIEdyYW51bGFy +aXTDpHQgd2llIEZhY2hhdWZzaWNodC48L3NwYW4+PC9zcGFuPgogICAgICAgICAgICAgICAgICAg +ICAgICAgICAgPHNwYW4gY2xhc3M9InJlY2h0ZS1yb2xsZS1jaGV2IiBhcmlhLWhpZGRlbj0idHJ1 +ZSI+4pa4PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICA8L3N1bW1hcnk+CiAgICAgICAg +ICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJlY2h0ZS1yb2xsZS1ib2R5Ij4KICAgICAgICAg +ICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJlY2h0ZS1yb2xsZS1ha3Rpb24iPjxidXR0 +b24gaWQ9ImJ0bi1kaXJla3Rpb25zbGVpdHVuZy1uZXUiIGNsYXNzPSJidG4gYnRuLWVyZm9sZyI+ +TmV1ZXIgRGlyZWt0aW9uc2xlaXR1bmctRWludHJhZzwvYnV0dG9uPjwvZGl2PgogICAgICAgICAg +ICAgICAgICAgICAgICA8ZGV0YWlscyBjbGFzcz0iYWRtaW4taW5mbyIgZGF0YS1pbmZvLWtleT0i +ZGlyZWt0aW9uc2xlaXR1bmciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN1bW1hcnk+ +PHNwYW4gY2xhc3M9ImFkbWluLWluZm8tY2hldiI+4pa4PC9zcGFuPkhpbndlaXNlIHp1ciBEaXJl +a3Rpb25zbGVpdHVuZzxzcGFuIGNsYXNzPSJhZG1pbi1pbmZvLWJhZGdlIj5BdWZrbGFwcGVuIC8g +WnVrbGFwcGVuPC9zcGFuPjwvc3VtbWFyeT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxk +aXYgY2xhc3M9ImFkbWluLWluZm8tYm9keSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgPHA+UGVyc29uZW4gd2VyZGVuIMO8YmVyIGRhcyBEcm9wZG93biA8ZW0+UGVyc29uPC9lbT4g +ZGlyZWt0IGF1cyBkZXIgUGVyc29uYWx2ZXJ3YWx0dW5nIGdld8OkaGx0IOKAlCBOYW1lIHVuZCBO +Vy1LZW5udW5nIHdlcmRlbiBhdXRvbWF0aXNjaCDDvGJlcm5vbW1lbi4gU3ViLVNpY2h0LSB1bmQg +UGxhbnVuZ3MtUmVjaHRlIGZ1bmt0aW9uaWVyZW4gd2llIGJlaSBkZXIgRmFjaGF1ZnNpY2h0Ljwv +cD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAg +ICAgICA8L2RldGFpbHM+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iYWRt +aW4tdGFiZWxsZSByb2xsZW4tdGFiZWxsZSIgaWQ9ImRpcmVrdGlvbnNsZWl0dW5nLXRhYmVsbGUi +PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRo +PlBlcnNvbjwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHls +ZT0id2lkdGg6NjBweDt0ZXh0LWFsaWduOmNlbnRlciIgdGl0bGU9IkFkbWluLVRhYiBzZWhlbiI+ +QWRtaW48L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9 +IndpZHRoOjcwcHg7dGV4dC1hbGlnbjpjZW50ZXIiIHRpdGxlPSJTdGF0aXN0aWstVGFiIHNlaGVu +Ij5TdGF0aXN0aWs8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGgg +c3R5bGU9IndpZHRoOjcwcHg7dGV4dC1hbGlnbjpjZW50ZXIiIHRpdGxlPSJMb2didWNoLVRhYiBz +ZWhlbiI+TG9nYnVjaDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0 +aCBzdHlsZT0id2lkdGg6NzBweDt0ZXh0LWFsaWduOmNlbnRlciIgdGl0bGU9IkJhY2t1cC1UYWIg +c2VoZW4iPkJhY2t1cHM8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8 +dGggc3R5bGU9IndpZHRoOjIyMHB4IiB0aXRsZT0iR3JhbnVsYXJlIFNpY2h0YmFya2VpdCBwcm8g +U3ViLVRhYiI+U3ViLVNpY2h0PC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgPHRoIHN0eWxlPSJ3aWR0aDoyMDBweCI+UGxhbnVuZzwvdGg+CiAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6ODBweCI+QWt0aW9uZW48L3RoPgog +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAg +ICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRib2R5IGlkPSJk +aXJla3Rpb25zbGVpdHVuZy10Ym9keSI+PC90Ym9keT4KICAgICAgICAgICAgICAgICAgICAgICAg +PC90YWJsZT4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icmVjaHRlLWNhcmQt +ZnVzcyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tZGlyZWt0 +aW9uc2xlaXR1bmctc3BlaWNoZXJuIiBjbGFzcz0iYnRuIGJ0bi1wcmltYWVyIj5EaXJla3Rpb25z +bGVpdHVuZyBzcGVpY2hlcm48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxz +cGFuIGlkPSJkaXJla3Rpb25zbGVpdHVuZy1kaXJ0eS1oaW53ZWlzIiBjbGFzcz0icmVjaHRlLWRp +cnR5LWhpbndlaXMiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPuKXjyBVbmdlc3BlaWNoZXJ0ZSDDhG5k +ZXJ1bmdlbjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAg +ICAgICAgICAgICAgIDxkaXYgaWQ9ImRpcmVrdGlvbnNsZWl0dW5nLWtlaW4tcmVjaHQiIGNsYXNz +PSJ2ZXJzdGVja3QgcmVjaHRlLWtlaW4tcmVjaHQiPgogICAgICAgICAgICAgICAgICAgICAgICAg +ICAgPGRpdiBjbGFzcz0iaW5mby1ib3giIHN0eWxlPSJib3JkZXItbGVmdC1jb2xvcjp2YXIoLS1m +YXJiZS1mZWhsZXIpIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPktl +aW4gWnVncmlmZjo8L3N0cm9uZz4gTnVyIFN1cGVyVXNlciBrw7ZubmVuIERpcmVrdGlvbnNsZWl0 +dW5ncy1FaW50csOkZ2UgYmVhcmJlaXRlbi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwv +ZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAg +ICAgPC9kaXY+PC9kZXRhaWxzPgogICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4KCiAgICAg +ICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9ImFkbWluLXNla3Rpb24gcmVjaHRlLWNhcmQg +cmVjaHRlLWNhcmQtZnMiIGlkPSJhZG1pbi1zZWt0aW9uLWZ1ZWhydW5nc3N0ZWxsZSI+CiAgICAg +ICAgICAgICAgICAgICAgICAgIDxkZXRhaWxzIGNsYXNzPSJyZWNodGUtcm9sbGUiPgogICAgICAg +ICAgICAgICAgICAgICAgICA8c3VtbWFyeSBjbGFzcz0icmVjaHRlLXJvbGxlLXN1bW1hcnkiPgog +ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InJlY2h0ZS1jYXJkLWljb24i +IGFyaWEtaGlkZGVuPSJ0cnVlIj7il4Y8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAg +ICA8c3BhbiBjbGFzcz0icmVjaHRlLXJvbGxlLXRpdGVsIj48c3Ryb25nPkbDvGhydW5nc3N0ZWxs +ZTwvc3Ryb25nPjxzcGFuIGNsYXNzPSJyZWNodGUtY2FyZC1zdWIiPk1pdGFyYmVpdGVuZGUgZGVy +IEbDvGhydW5nc3N0ZWxsZSAoei4gQi4gTC9WSTMgdW5kIFN0YWIpIOKAlCBnbGVpY2hlIEdyYW51 +bGFyaXTDpHQgd2llIEZhY2hhdWZzaWNodC48L3NwYW4+PC9zcGFuPgogICAgICAgICAgICAgICAg +ICAgICAgICAgICAgPHNwYW4gY2xhc3M9InJlY2h0ZS1yb2xsZS1jaGV2IiBhcmlhLWhpZGRlbj0i +dHJ1ZSI+4pa4PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICA8L3N1bW1hcnk+CiAgICAg +ICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJlY2h0ZS1yb2xsZS1ib2R5Ij4KICAgICAg +ICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJlY2h0ZS1yb2xsZS1ha3Rpb24iPjxi +dXR0b24gaWQ9ImJ0bi1mdWVocnVuZ3NzdGVsbGUtbmV1IiBjbGFzcz0iYnRuIGJ0bi1lcmZvbGci +Pk5ldWVyIEbDvGhydW5nc3N0ZWxsZS1FaW50cmFnPC9idXR0b24+PC9kaXY+CiAgICAgICAgICAg +ICAgICAgICAgICAgIDxkZXRhaWxzIGNsYXNzPSJhZG1pbi1pbmZvIiBkYXRhLWluZm8ta2V5PSJm +dWVocnVuZ3NzdGVsbGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN1bW1hcnk+PHNw +YW4gY2xhc3M9ImFkbWluLWluZm8tY2hldiI+4pa4PC9zcGFuPkhpbndlaXNlIHp1ciBGw7xocnVu +Z3NzdGVsbGU8c3BhbiBjbGFzcz0iYWRtaW4taW5mby1iYWRnZSI+QXVma2xhcHBlbiAvIFp1a2xh +cHBlbjwvc3Bhbj48L3N1bW1hcnk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNs +YXNzPSJhZG1pbi1pbmZvLWJvZHkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxw +PlBlcnNvbmVuIHdlcmRlbiDDvGJlciBkYXMgRHJvcGRvd24gPGVtPlBlcnNvbjwvZW0+IGRpcmVr +dCBhdXMgZGVyIFBlcnNvbmFsdmVyd2FsdHVuZyBnZXfDpGhsdC4gU2NoZW1hIHVuZCBHcmFudWxh +cml0w6R0IGFuYWxvZyB6dXIgRGlyZWt0aW9uc2xlaXR1bmcuPC9wPgogICAgICAgICAgICAgICAg +ICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGV0YWlscz4KICAg +ICAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJhZG1pbi10YWJlbGxlIHJvbGxlbi10 +YWJlbGxlIiBpZD0iZnVlaHJ1bmdzc3RlbGxlLXRhYmVsbGUiPgogICAgICAgICAgICAgICAgICAg +ICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlBlcnNvbjwvdGg+CiAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6NjBweDt0ZXh0LWFs +aWduOmNlbnRlciIgdGl0bGU9IkFkbWluLVRhYiBzZWhlbiI+QWRtaW48L3RoPgogICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9IndpZHRoOjcwcHg7dGV4dC1hbGln +bjpjZW50ZXIiIHRpdGxlPSJTdGF0aXN0aWstVGFiIHNlaGVuIj5TdGF0aXN0aWs8L3RoPgogICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9IndpZHRoOjcwcHg7dGV4 +dC1hbGlnbjpjZW50ZXIiIHRpdGxlPSJMb2didWNoLVRhYiBzZWhlbiI+TG9nYnVjaDwvdGg+CiAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6NzBweDt0 +ZXh0LWFsaWduOmNlbnRlciIgdGl0bGU9IkJhY2t1cC1UYWIgc2VoZW4iPkJhY2t1cHM8L3RoPgog +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9IndpZHRoOjIyMHB4 +IiB0aXRsZT0iR3JhbnVsYXJlIFNpY2h0YmFya2VpdCBwcm8gU3ViLVRhYiI+U3ViLVNpY2h0PC90 +aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDoy +MDBweCI+UGxhbnVuZzwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0 +aCBzdHlsZT0id2lkdGg6ODBweCI+QWt0aW9uZW48L3RoPgogICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAg +ICAgICAgICAgICAgICAgICAgICAgICAgPHRib2R5IGlkPSJmdWVocnVuZ3NzdGVsbGUtdGJvZHki +PjwvdGJvZHk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgICAg +ICAgICAgICAgIDxkaXYgY2xhc3M9InJlY2h0ZS1jYXJkLWZ1c3MiPgogICAgICAgICAgICAgICAg +ICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLWZ1ZWhydW5nc3N0ZWxsZS1zcGVpY2hlcm4iIGNs +YXNzPSJidG4gYnRuLXByaW1hZXIiPkbDvGhydW5nc3N0ZWxsZSBzcGVpY2hlcm48L2J1dHRvbj4K +ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGlkPSJmdWVocnVuZ3NzdGVsbGUtZGly +dHktaGlud2VpcyIgY2xhc3M9InJlY2h0ZS1kaXJ0eS1oaW53ZWlzIiBzdHlsZT0iZGlzcGxheTpu +b25lIj7il48gVW5nZXNwZWljaGVydGUgw4RuZGVydW5nZW48L3NwYW4+CiAgICAgICAgICAgICAg +ICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJmdWVocnVu +Z3NzdGVsbGUta2Vpbi1yZWNodCIgY2xhc3M9InZlcnN0ZWNrdCByZWNodGUta2Vpbi1yZWNodCI+ +CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvLWJveCIgc3R5bGU9 +ImJvcmRlci1sZWZ0LWNvbG9yOnZhcigtLWZhcmJlLWZlaGxlcikiPgogICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgIDxzdHJvbmc+S2VpbiBadWdyaWZmOjwvc3Ryb25nPiBOdXIgU3VwZXJV +c2VyIGvDtm5uZW4gRsO8aHJ1bmdzc3RlbGxlbi1FaW50csOkZ2UgYmVhcmJlaXRlbi4KICAgICAg +ICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rp +dj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PC9kZXRhaWxzPgogICAgICAgICAgICAg +ICAgICAgIDwvc2VjdGlvbj4KCiAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAg +ICA8IS0tIFRhYjogU3RhbmRhcmRyZWNodGUgcmVndWxhZXJlciBVc2VyIChTVS1vbmx5KSDigJQg +Z3J1bmRzYWV0emxpY2hlCiAgICAgICAgICAgICAgICAgICAgIFBsYW51bmdzcmVjaHRlIGZ1ZXIg +YWxsZSBvaG5lIFJvbGxlIChnZWdlbnNlaXRpZ2UgUGxhbnVuZyBqZQogICAgICAgICAgICAgICAg +ICAgICBEaWVuc3RncnVwcGUvU3RhbmRvcnQpICsgTGlzdGUgZGVyIFVzZXIgbWl0IFp1c2F0enJl +Y2h0ZW4uIC0tPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4tdGFiIHZlcnN0ZWNr +dCIgaWQ9ImFkbWluLXRhYi11cGRhdGUiPgogICAgICAgICAgICAgICAgICAgIDxzdHlsZT4KICAg +ICAgICAgICAgICAgICAgICAgICAgI2FkbWluLXRhYi11cGRhdGUgLnVwZGF0ZS1ib3ggeyBwYWRk +aW5nOjE0cHggMTZweDsgYm9yZGVyLXJhZGl1czo4cHg7IGZvbnQtc2l6ZToxNXB4OyBtYXJnaW46 +OHB4IDAgMTRweDsgYm9yZGVyOjFweCBzb2xpZCAjZGRkOyBiYWNrZ3JvdW5kOiNmN2Y3Zjc7IH0K +ICAgICAgICAgICAgICAgICAgICAgICAgI2FkbWluLXRhYi11cGRhdGUgLnVwZGF0ZS1ib3gtb2sg +eyBiYWNrZ3JvdW5kOiNlOGY1ZTk7IGJvcmRlci1jb2xvcjojYTVkNmE3OyBjb2xvcjojMWI1ZTIw +OyB9CiAgICAgICAgICAgICAgICAgICAgICAgICNhZG1pbi10YWItdXBkYXRlIC51cGRhdGUtYm94 +LXdhcm4geyBiYWNrZ3JvdW5kOiNmZmY4ZTE7IGJvcmRlci1jb2xvcjojZmZlMDgyOyBjb2xvcjoj +N2M1ODAwOyB9CiAgICAgICAgICAgICAgICAgICAgICAgICNhZG1pbi10YWItdXBkYXRlIC51cGRh +dGUtYm94LWVyciB7IGJhY2tncm91bmQ6I2ZkZWNlYTsgYm9yZGVyLWNvbG9yOiNmNWM2Y2I7IGNv +bG9yOiNhMzE1MTU7IH0KICAgICAgICAgICAgICAgICAgICAgICAgI2FkbWluLXRhYi11cGRhdGUg +LnVwZGF0ZS1jaGFuZ2Vsb2cgeyBiYWNrZ3JvdW5kOiNmYWZhZmE7IGJvcmRlcjoxcHggc29saWQg +I2VlZTsgYm9yZGVyLXJhZGl1czo4cHg7IHBhZGRpbmc6NnB4IDE2cHg7IG1hcmdpbi1ib3R0b206 +MTRweDsgbWF4LWhlaWdodDoyODBweDsgb3ZlcmZsb3c6YXV0bzsgfQogICAgICAgICAgICAgICAg +ICAgICAgICAjYWRtaW4tdGFiLXVwZGF0ZSAudXBkYXRlLWZpbGVsaXN0IHsgY29sdW1uczoyOyBm +b250LWZhbWlseTptb25vc3BhY2U7IGZvbnQtc2l6ZToxM3B4OyB9CiAgICAgICAgICAgICAgICAg +ICAgICAgICNhZG1pbi10YWItdXBkYXRlICNidG4tdXBkYXRlLXN0YXJ0IHsgYmFja2dyb3VuZDoj +MWE3M2U4OyBjb2xvcjojZmZmOyBib3JkZXI6MDsgcGFkZGluZzoxMHB4IDE4cHg7IGJvcmRlci1y +YWRpdXM6NnB4OyBmb250LXNpemU6MTVweDsgY3Vyc29yOnBvaW50ZXI7IH0KICAgICAgICAgICAg +ICAgICAgICAgICAgI2FkbWluLXRhYi11cGRhdGUgI2J0bi11cGRhdGUtc3RhcnQ6aG92ZXIgeyBi +YWNrZ3JvdW5kOiMxNjY2ZDA7IH0KICAgICAgICAgICAgICAgICAgICAgICAgI2FkbWluLXRhYi11 +cGRhdGUgLnVwZGF0ZS1ha3Rpb24taGlud2VpcyB7IG1hcmdpbi1sZWZ0OjEycHg7IGNvbG9yOiM2 +NjY7IGZvbnQtc2l6ZToxM3B4OyB9CiAgICAgICAgICAgICAgICAgICAgICAgICNhZG1pbi10YWIt +dXBkYXRlIC51cGRhdGUtcHJvZ3Jlc3MtcmFpbCB7IGJhY2tncm91bmQ6I2UwZTBlMDsgYm9yZGVy +LXJhZGl1czo2cHg7IGhlaWdodDoyMHB4OyBvdmVyZmxvdzpoaWRkZW47IG1hcmdpbjoxMnB4IDAg +NnB4OyB9CiAgICAgICAgICAgICAgICAgICAgICAgICNhZG1pbi10YWItdXBkYXRlIC51cGRhdGUt +cHJvZ3Jlc3MtYmFyIHsgYmFja2dyb3VuZDojMWE3M2U4OyBoZWlnaHQ6MTAwJTsgd2lkdGg6MDsg +dHJhbnNpdGlvbjp3aWR0aCAuNHMgZWFzZTsgfQogICAgICAgICAgICAgICAgICAgICAgICAjYWRt +aW4tdGFiLXVwZGF0ZSAudXBkYXRlLXByb2dyZXNzLWRvbmUgeyBiYWNrZ3JvdW5kOiMyZTdkMzI7 +IH0KICAgICAgICAgICAgICAgICAgICAgICAgI2FkbWluLXRhYi11cGRhdGUgLnVwZGF0ZS1wcm9n +cmVzcy1mYWlsIHsgYmFja2dyb3VuZDojYzYyODI4OyB9CiAgICAgICAgICAgICAgICAgICAgICAg +ICNhZG1pbi10YWItdXBkYXRlIC51cGRhdGUtcHJvZ3Jlc3MtdGV4dCB7IGZvbnQtc2l6ZToxNHB4 +OyBtYXJnaW4tYm90dG9tOjEwcHg7IGZvbnQtd2VpZ2h0OjYwMDsgfQogICAgICAgICAgICAgICAg +ICAgICAgICAjYWRtaW4tdGFiLXVwZGF0ZSAudXBkYXRlLWxvZyB7IGJhY2tncm91bmQ6IzFlMWUx +ZTsgY29sb3I6I2Q0ZDRkNDsgZm9udC1zaXplOjEycHg7IHBhZGRpbmc6MTBweDsgYm9yZGVyLXJh +ZGl1czo2cHg7IG1heC1oZWlnaHQ6MjIwcHg7IG92ZXJmbG93OmF1dG87IHdoaXRlLXNwYWNlOnBy +ZS13cmFwOyB9CiAgICAgICAgICAgICAgICAgICAgICAgICNhZG1pbi10YWItdXBkYXRlIC51cGRh +dGUtc2VsZnRlc3QgeyBtYXJnaW46MTJweCAwOyB9CiAgICAgICAgICAgICAgICAgICAgICAgICNh +ZG1pbi10YWItdXBkYXRlIC5zdC1yb3cgeyBwYWRkaW5nOjRweCA4cHg7IGJvcmRlci1yYWRpdXM6 +NHB4OyBtYXJnaW46M3B4IDA7IGZvbnQtc2l6ZToxNHB4OyB9CiAgICAgICAgICAgICAgICAgICAg +ICAgICNhZG1pbi10YWItdXBkYXRlIC5zdC1vayB7IGJhY2tncm91bmQ6I2U4ZjVlOTsgY29sb3I6 +IzFiNWUyMDsgfQogICAgICAgICAgICAgICAgICAgICAgICAjYWRtaW4tdGFiLXVwZGF0ZSAuc3Qt +ZmFpbCB7IGJhY2tncm91bmQ6I2ZkZWNlYTsgY29sb3I6I2EzMTUxNTsgfQogICAgICAgICAgICAg +ICAgICAgICAgICAjYWRtaW4tdGFiLXVwZGF0ZSAuc3QtZGV0YWlsIHsgY29sb3I6Izc3NzsgZm9u +dC1zaXplOjEycHg7IH0KICAgICAgICAgICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAg +ICAgICAgIDxoMj5VcGRhdGVzICZhbXA7IFNlbGJzdHRlc3Q8L2gyPgogICAgICAgICAgICAgICAg +ICAgIDxwIHN0eWxlPSJjb2xvcjojNTU1OyBtYXgtd2lkdGg6NzgwcHg7Ij5QcsO8ZnQgZGFzIHpl +bnRyYWxlIFJlcG9zaXRvcnkgYXVmIGVpbmUgbmV1ZSBWZXJzaW9uLiBWb3IgZGVtIEVpbnNwaWVs +ZW4gd2lyZCBhdXRvbWF0aXNjaCBlaW5lIHZvbGxzdMOkbmRpZ2UgU2ljaGVydW5nIGVyc3RlbGx0 +OyBkYW5hY2ggbMOkdWZ0IGVpbiBTZWxic3R0ZXN0IGFsbGVyIEtlcm5mdW5rdGlvbmVuLCBiZXZv +ciBkYXMgU3lzdGVtIHdpZWRlciBmcmVpZ2VnZWJlbiB3aXJkLiBTY2hsw6RndCBlaW4gVGVzdCBm +ZWhsLCB3aXJkIGF1dG9tYXRpc2NoIGF1ZiBkZW4gdm9yaGVyaWdlbiBTdGFuZCB6dXLDvGNrZ2Vy +b2xsdC48L3A+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0idXBkYXRlLXN0YXR1cy1ib3gi +IGNsYXNzPSJ1cGRhdGUtYm94Ij5TdGF0dXMgd2lyZCBnZWxhZGVuIOKApjwvZGl2PgogICAgICAg +ICAgICAgICAgICAgIDxkaXYgaWQ9InVwZGF0ZS1jaGFuZ2Vsb2ciIGNsYXNzPSJ1cGRhdGUtY2hh +bmdlbG9nIHZlcnN0ZWNrdCI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0idXBk +YXRlLWFrdGlvbiIgY2xhc3M9InZlcnN0ZWNrdCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxi +dXR0b24gaWQ9ImJ0bi11cGRhdGUtc3RhcnQiIHR5cGU9ImJ1dHRvbiI+VXBkYXRlIGpldHp0IGlu +c3RhbGxpZXJlbjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0i +dXBkYXRlLWFrdGlvbi1oaW53ZWlzIj5JbmtsLiBhdXRvbWF0aXNjaGVyIFZvbGxzaWNoZXJ1bmcg +JmFtcDsgU2VsYnN0dGVzdC48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAg +ICAgICAgICAgICAgICAgPGRpdiBpZD0idXBkYXRlLWZvcnRzY2hyaXR0IiBjbGFzcz0idmVyc3Rl +Y2t0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idXBkYXRlLXByb2dyZXNz +LXJhaWwiPjxkaXYgaWQ9InVwZGF0ZS1wcm9ncmVzcy1iYXIiIGNsYXNzPSJ1cGRhdGUtcHJvZ3Jl +c3MtYmFyIj48L2Rpdj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0idXBk +YXRlLXByb2dyZXNzLXRleHQiIGNsYXNzPSJ1cGRhdGUtcHJvZ3Jlc3MtdGV4dCI+PC9kaXY+CiAg +ICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9InVwZGF0ZS1zZWxmdGVzdCIgY2xhc3M9InVw +ZGF0ZS1zZWxmdGVzdCI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwcmUgaWQ9InVw +ZGF0ZS1sb2ciIGNsYXNzPSJ1cGRhdGUtbG9nIj48L3ByZT4KICAgICAgICAgICAgICAgICAgICA8 +L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9 +ImFkbWluLXRhYiB2ZXJzdGVja3QiIGlkPSJhZG1pbi10YWItc3RhbmRhcmRyZWNodGUiPgogICAg +ICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFkbWluLWtvcGYiPgogICAgICAgICAgICAgICAg +ICAgICAgICA8aDI+U3RhbmRhcmRyZWNodGUgcmVndWzDpHJlciBVc2VyPC9oMj4KICAgICAgICAg +ICAgICAgICAgICAgICAgPHAgc3R5bGU9Im1hcmdpbjo2cHggMCAwIDA7Zm9udC1zaXplOjEycHg7 +Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCkiPkdydW5kcmVnZWxuLCBkaWUgZsO8ciA8c3Ryb25nPmFs +bGU8L3N0cm9uZz4gTWl0YXJiZWl0ZW5kZW4gb2huZSBlaWdlbmUgUm9sbGUgZ2VsdGVuIOKAlCB6 +LkIuIOKAnmFsbGUgZWluZXIgRGllbnN0Z3J1cHBlIHBsYW5lbiBzaWNoIGdlZ2Vuc2VpdGlnIiBv +ZGVyIOKAnmFsbGUgZWluZXMgU3RhbmRvcnRzIHBsYW5lbiBzaWNoIGdlZ2Vuc2VpdGlnIi4gRGFy +dW50ZXI6IMOcYmVyc2ljaHQgYWxsZXIgVXNlciwgZGllIGluIGRlciBQZXJzb25hbHZlcndhbHR1 +bmcgPHN0cm9uZz56dXPDpHR6bGljaGU8L3N0cm9uZz4gaW5kaXZpZHVlbGxlIFJlY2h0ZSBiZWtv +bW1lbiBoYWJlbi48L3A+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAg +ICAgICAgPGRpdiBpZD0ic3RhbmRhcmRyZWNodGUtaW5oYWx0Ij48L2Rpdj4KICAgICAgICAgICAg +ICAgIDwvZGl2PgoKCiAgICAgICAgICAgIDwvbWFpbj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2 +PgoKICAgIDwhLS0gPT09PT09PT09PSBNb2RhbGVyIERpYWxvZyAod2llZGVydmVyd2VuZGJhcikg +PT09PT09PT09PSAtLT4KICAgIDwhLS0gYTExeSAoU3ByaW50IDZhIDIwMjYtMDUtMjkpOiByb2xl +PWRpYWxvZyArIGFyaWEtbW9kYWwgKyBsYWJlbGxlZGJ5CiAgICAgICAgIG1hY2h0IGRlbiBNb2Rh +bC1Lb250ZXh0IGZ1ZXIgU2NyZWVucmVhZGVyIGV4cGxpeml0LiBhcmlhLWhpZGRlbiB3aXJkCiAg +ICAgICAgIHZvbSBtb2RhbFplaWdlbigpLUNvZGUgYmVpbSBPcGVuL0Nsb3NlIGdlc2V0enQuIC0t +PgogICAgPGRpdiBpZD0ibW9kYWwtb3ZlcmxheSIgY2xhc3M9Im1vZGFsIHZlcnN0ZWNrdCIgcm9s +ZT0iZGlhbG9nIiBhcmlhLW1vZGFsPSJ0cnVlIiBhcmlhLWxhYmVsbGVkYnk9Im1vZGFsLXRpdGVs +IiBhcmlhLWhpZGRlbj0idHJ1ZSI+CiAgICAgICAgPGRpdiBjbGFzcz0ibW9kYWwtaW5oYWx0IiBp +ZD0ibW9kYWwtYm94Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibW9kYWwta29wZiI+CiAgICAg +ICAgICAgICAgICA8aDIgaWQ9Im1vZGFsLXRpdGVsIj48L2gyPgogICAgICAgICAgICAgICAgPGJ1 +dHRvbiBjbGFzcz0ibW9kYWwtc2NobGllc3NlbiIgaWQ9Im1vZGFsLXNjaGxpZXNzZW4tYnRuIiBh +cmlhLWxhYmVsPSJTY2hsaWXDn2VuIj4mdGltZXM7PC9idXR0b24+CiAgICAgICAgICAgIDwvZGl2 +PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1rb2VycGVyIiBpZD0ibW9kYWwta29lcnBl +ciI+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWZ1c3MiIGlkPSJtb2RhbC1m +dXNzIj48L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDwhLS0gQ29uZmlybS1P +dmVybGF5IChTcHJpbnQgNSDigJQgTW9kYWwtU3RhY2sgMjAyNi0wNS0yOSk6CiAgICAgICAgIEVp +Z2VuZXIgQ29udGFpbmVyIG1pdCBob2VoZXJlbSB6LWluZGV4LCBkYW1pdCBiZXN0YWV0aWdlbigp +LURpYWxvZ2UKICAgICAgICAgSU5ORVJIQUxCIGVpbmVzIGdlb2VmZm5ldGVuIEhhdXB0bW9kYWxz +IGVyc2NoZWluZW4ga29lbm5lbiwgb2huZQogICAgICAgICBkZXNzZW4gSW5oYWx0IHp1IHVlYmVy +c2NocmVpYmVuLiBWb3JoZXIgaGFiZW4gQ29uZmlybS1BdWZydWZlCiAgICAgICAgICh6LkIuICJX +aXJrbGljaCBsb2VzY2hlbj8iIGJlaW0gUGVyc29uLUJlYXJiZWl0ZW4pIGRhcyB1bWdlYmVuZGUK +ICAgICAgICAgTW9kYWwgemVyc3RvZXJ0OyBuYWNoICJBYmJyZWNoZW4iIHdhciBkaWUgQmVhcmJl +aXR1bmcgd2VnLiAtLT4KICAgIDxkaXYgaWQ9ImNvbmZpcm0tb3ZlcmxheSIgY2xhc3M9Im1vZGFs +IHZlcnN0ZWNrdCIgcm9sZT0iZGlhbG9nIiBhcmlhLW1vZGFsPSJ0cnVlIiBhcmlhLWxhYmVsbGVk +Ynk9ImNvbmZpcm0tdGl0ZWwiIGFyaWEtaGlkZGVuPSJ0cnVlIiBzdHlsZT0iei1pbmRleDpjYWxj +KHZhcigtLXotbW9kYWwpICsgMTApIj4KICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1pbmhhbHQi +IGlkPSJjb25maXJtLWJveCIgc3R5bGU9Im1heC13aWR0aDo0ODBweCI+CiAgICAgICAgICAgIDxk +aXYgY2xhc3M9Im1vZGFsLWtvcGYiPgogICAgICAgICAgICAgICAgPGgyIGlkPSJjb25maXJtLXRp +dGVsIj5CZXN0w6R0aWd1bmc8L2gyPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0ibW9k +YWwtc2NobGllc3NlbiIgaWQ9ImNvbmZpcm0tc2NobGllc3Nlbi1idG4iIGFyaWEtbGFiZWw9IlNj +aGxpZcOfZW4iPiZ0aW1lczs8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAg +IDxkaXYgY2xhc3M9Im1vZGFsLWtvZXJwZXIiIGlkPSJjb25maXJtLWtvZXJwZXIiPjwvZGl2Pgog +ICAgICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1mdXNzIiBpZD0iY29uZmlybS1mdXNzIj48L2Rp +dj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDwhLS0gVG9hc3QtQ29udGFpbmVyIC0t +PgogICAgPGRpdiBpZD0idG9hc3QtY29udGFpbmVyIiByb2xlPSJzdGF0dXMiIGFyaWEtbGl2ZT0i +cG9saXRlIiBhcmlhLWF0b21pYz0iZmFsc2UiPjwvZGl2PgoKICAgIDxzY3JpcHQgdHlwZT0ibW9k +dWxlIiBzcmM9ImFwcC5qcyI+PC9zY3JpcHQ+CjwvYm9keT4KPC9odG1sPgo= ### FILE: info.html | 12765 PCFkb2N0eXBlIGh0bWw+CjxodG1sIGxhbmc9ImRlIj4KPGhlYWQ+CjxtZXRhIGNoYXJzZXQ9InV0 Zi04Ij4KPHRpdGxlPlZJMyBER0wtUGxhbnVuZyDigJQgS3VyemluZm9ybWF0aW9uPC90aXRsZT4K