LyoKICogV2luZSBjb21tYW5kIHByb21wdAogKiBEYW5pc2ggTGFuZ3VhZ2UgU3VwcG9ydAogKgogKiBDb3B5cmlnaHQgKEMpIDIwMDggSmVucyBBbGJyZXRzZW48amVuc0BhbGJyZXRzZW4uZGs+CiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQQogKi8KCkxBTkdVQUdFIExBTkdfREFOSVNILCBTVUJMQU5HX0RFRkFVTFQKClNUUklOR1RBQkxFCnsKICBXQ01EX0FUVFJJQiwgIkhq5mxwIHRpbCBBVFRSSUJcbiIKICBXQ01EX0NBTEwsICKrQ0FMTCA8YmF0Y2hmaWxuYXZuPrsgYnJ1Z2VzIGkgZW4gYmF0Y2ggZmlsIGZvciBhdCB1ZGb4cmUga29tbWFuZG9lclxuXApmcmEgZW4gYW5kZW4gYmF0Y2hmaWwuIE7lciBkZW4gYmF0Y2hmaWwgYWZzbHV0dGVyLCByZXR1cm5lcmVzXG5cCmtvbnRyb2xsZW4gdGlsIGZpbGVuIHNvbSBrYWx0ZSBkZW4uIENBTEwta29tbWFuZG9lbiBrYW4gZ2l2ZSBwYXJhbWV0ZXJlXG5cCnRpbCBkZW4ga2FsZHRlIHByb2NlZHVyZS5cblwKXG5cCuZuZHJpbmdlciBpIHN0YW5kYXJka2F0YWxvZ2VuLCBtaWxq+HZhcmlhYmxlciBldGMuIGxhdmV0IGFmIGRlbiBrYWxkdGVcblwKcHJvY2VkdXJlbiBhcnZlcyBhZiBrYWxkZXJlbi5cbiIKCiAgV0NNRF9DRCwgICAgICJIauZscCB0aWwgQ0RcbiIKICBXQ01EX0NIRElSLCAgIkhq5mxwIHRpbCBDSERJUlxuIgoKICBXQ01EX0NMUywgICAgIkNMUyBzbGV0dGVyIGtvbnNvbHNr5nJtZW5cbiIKCiAgV0NNRF9DT1BZLCAgICJIauZscCB0aWwgQ09QWVxuIgogIFdDTURfQ1RUWSwgICAiSGrmbHAgdGlsIENUVFlcbiIKICBXQ01EX0RBVEUsICAgIkhq5mxwIHRpbCBEQVRFXG4iCiAgV0NNRF9ERUwsICAgICJIauZscCB0aWwgREVMXG4iCiAgV0NNRF9ESVIsICAgICJIauZscCB0aWwgRElSXG4iCgogIFdDTURfRUNITywgICAgIqtFQ0hPIDxzdHJlbmc+IHZpc2VyIDxzdHJlbmc+uyBw5SBkZW4gZ+ZsZGVuZGUgdGVybWluYWxlbmhlZC5cblwKXG5cCqtFQ0hPIE9OuyBmb3LlcnNhZ2VyIGF0IGFsbGUga29tbWFuZG9lciBpIGVuIGJhdGNoZmlsIHZpc2VzIHDlXG5cCnRlcm1pbmFsZW5oZWRlbiBm+HIgZGUga/hyZXMuXG5cClxuXAqrRUNITyBPRka7IG9tdmVuZGVyIGVmZmVrdGVuIGFmIGVuIHRpZGxpZ2VyZSCrRUNITyBPTrsgKEVDSE8gZXIgT0ZGIHNvbVxuXApzdGFuZGFyZCkuIKtFQ0hPIE9GRrsta29tbWFuZG9lbiBrYW4gaGluZHJlcyBmcmEgYXQgdmlzZXMgdmVkIGF0IHBsYWRzZXJlXG5cCmV0IEAtdGVnbiBmb3JhbiBkZW4uXG4iCgogIFdDTURfRVJBU0UsICAiSGrmbHAgdGlsIEVSQVNFXG4iCgogIFdDTURfRk9SLCAgICAiRk9SLWtvbW1hbmRvZW4gYnJ1Z2VzIHRpbCBhdCBr+HJlIGVuIGtvbW1hbmRvIGZvciBodmVyIGZpbCBpIGV0IHPmdCBmaWxlci5cblwKXG5cClN5bnRha3M6IEZPUiAldmFyaWFiZWwgSU4gKHPmdCkgRE8ga29tbWFuZG9cblwKXG5cCktyYXZldCBvbSB0byAlLXRlZ24gbuVyIEZPUiBicnVnZXMgaSBlbiBiYXRjaGZpbCBmaW5kZXMgaWtrZSBpIFdpbmVzIENNRC5cbiIKCiAgV0NNRF9HT1RPLCAgICJHT1RPLWtvbW1hbmRvZW4gZmx5dHRlciBr+HJzbGVuIHRpbCBldCBhbmRldCBzdGVkIGkgZW4gYmF0Y2hmaWwuXG5cClxuXApMYWJlbGVuIHNvbSBlciBkZXN0aW5hdGlvbiB0aWwgR09UTyBrYW4gduZyZSBvcCB0aWwgMjU1IHRlZ24gbGFuZ3QsIG1lbiBt5VxuXAppa2tlIGluZGVob2xkZSBtZWxsZW1ydW0gKGRldHRlIGVyIGZvcnNrZWxsaWd0IGZyYSBhbmRyZSBvcGVyYXRpdnN5c3RlbWVyKS5cblwKSHZpcyBkZXIgZmluZGVzIHRvIGVsbGVyIGZsZXJlIGlkZW50aXNrZSBsYWJlbGVyIGkgZW4gYmF0Y2hmaWwsIGv4cmVzIGRlblxuXApm+HJzdGUgYWx0aWQuIEh2aXMgZW4gR09UTyBwZWdlciBw5SBlbiBpa2tlIGVrc2lzdGVyZW5kZSBsYWJlbCBhZmJyeWRlcnNcblwKa/hyc2xlbiBhZiBkZW4gYmF0Y2hmaWwuXG5cClxuXApHT1RPIGhhciBpbmdlbiBlZmZla3QgbuVyIGRlbiBicnVnZXMgaW50ZXJha3RpdnQuXG4iCgogIFdDTURfSEVMUCwgICAiSGrmbHAgdGlsIEhFTFBcbiIKCiAgV0NNRF9JRiwgICAgICJJRiBicnVnZXMgdGlsIGF0IGv4cmUgZW4ga29tbWFuZG8gcOUgYmV0aW5nZWxzZXIuXG5cClxuXApCcnVnOglJRiBbTk9UXSBFWElTVCBmaWxuYXZuIGtvbW1hbmRvXG5cCglJRiBbTk9UXSBzdHJlbmcxPT1zdHJlbmcyIGtvbW1hbmRvXG5cCglJRiBbTk9UXSBFUlJPUkxFVkVMIG51bW1lciBrb21tYW5kb1xuXApcblwKSSBrb21tYW5kbyBmb3JtIG51bW1lciB0byBza2FsIHN0cmVuZzEgb2cgc3RyZW5nMiBvbXNsdXR0ZXMgYWYgZG9iYmVsdGVcblwgYW5m+HJzZWxzdGVnbi4gRGVyIHNrZWxkbmVzIGlra2UgbWVsbGVtIHN0b3JlIG9nIHNt5SBib2dzdGF2ZXIuXG4iCgogIFdDTURfTEFCRUwsICAiTEFCRUwgYnJ1Z2VzIHRpbCBhdCBuYXZuZ2l2ZSBldCBkcmV2LlxuXApcblwKU3ludGFrczogTEFCRUwgW2RyZXY6XVxuXApLb21tYW5kb2VuIHZpbCBiZWRlIG9tIGRldCBueWUgdm9sdW1lbmF2biBmb3IgZHJldmV0LlxuXApEdSBrYW4gdmlzZSBldCBkcmV2cyB2b2x1bWVuYXZuIG1lZCBWT0wta29tbWFuZG9lbi5cbiIKCiAgV0NNRF9NRCwgICAgICJIauZscCB0aWwgTURcbiIKICBXQ01EX01LRElSLCAgIkhq5mxwIHRpbCBNS0RJUlxuIgogIFdDTURfTU9WRSwgICAiTU9WRSBmbHl0dGVyIGVuIGZpbCBlbGxlciBrYXRhbG9nIHRpbCBldCBueXQgc3RlZCBpbmRlbmZvclxuXApmaWxzeXN0ZW1ldC5cblwKXG5cCkh2aXMgZWxlbWVudGV0IHNvbSBmbHl0dGVzIGVyIGVuIGthdGFsb2csIHPlIGZseXR0ZXMgZmlsZXJuZSBvZ1xuXAp1bmRlcmthdGFsb2dlbmUgb2dz5SBpIGRlbi5cblwKXG5cCk1PVkUgZmVqbGVyIGh2aXMgZGVuIGdhbWxlIG9nIG55ZSBwbGFkc2VyaW5nIGhhciBmb3Jza2VsbGlnZVxuXApkcmV2Ym9nc3RhdmVyLlxuIgoKICBXQ01EX1BBVEgsICAgIlBBVEggdmlzZXIgZWxsZXIg5m5kcmVyIENNRHMgc/hnZXN0aS5cblwKXG5cClBBVEggdmlzZXIgZGVuIGfmbGRlbmRlIFBBVEgtaW5kc3RpbGxpbmdlbiAoZGV0dGUgZXJcblwKaSBiZWd5bmRlbHNlbiB25nJkaWVuIG9wZ2l2ZXQgaSBmaWxlbiCrd2luZS5jb25muykuIFBBVEgtXG5cCmtvbW1hbmRvZW4gZWZ0ZXJm+GxnZXMgbWVkIGV0IG55dCBuYXZuIGZvciBhdCDmbmRyZSBpbmRzdGlsbGluZ2VuLlxuXApcblwKRGV0IGVyIG9nc+UgbXVsaWd0IGF0IOZuZHJlIFBBVEggdmVkIGF0IGJydWdlIG1pbGr4dmFyaWFibGVuIFBBVEgsIGZvclxuXApla3NlbXBlbDpcblwKCQlQQVRIICVQQVRIJTtjOlxcdGVtcFxuIgoKICBXQ01EX1BBVVNFLCAgIlBBVVNFIHZpc2VyIG1lbGRpbmdlbiAnVHJ5ayBFbnRlciBmb3IgYXQgZm9ydHPmdHRlJywgb2cgdmVudGVyIHDlIGF0XG5cIGJydWdlcmVuIHRyeWtrZXIgRW50ZXIuIERldHRlIGVyIGhvdmVkc2FnZWxpZ3Qgbnl0dGlndCBpIGJhdGNoZmlsZXIsXG5cCmZvciBhdCBsYWRlIGJydWdlcmVuIGzmc2UgdWRkYXRhIGZyYSBlbiB0aWRsaWdlcmUga29tbWFuZG8gZvhyIGRlbiBmb3JzdmluZGVyIHVkXG5cCnbmayBmcmEgc2vmcm1lbi4uXG4iCgogIFdDTURfUFJPTVBULCAiUFJPTVBUIHPmdHRlciBrb21tYW5kb2xpbmplLXRla3N0c3RyZW5nZXQuXG5cClxuXApTdHJlbmdlbiBzb20gZWZ0ZXJm+GxnZXIgUFJPTVBULWtvbW1hbmRvZW4gKG9nIG1lbGxlbXJ1bW1ldCBsaWdlIGVmdGVyKVxuXAp2aXNlcyBpIGJlZ3luZGVsc2VuIGFmIGxpbmllbiBu5XIgY21kIHZlbnRlciBw5SBpbmRkYXRhLlxuXApcblwKRvhsZ2VuZGUgdGVrc3RzdHJlbmdlIGhhciBkZW4gc3BlY2llbGxlIGJldHlkbmluZzpcblwKXG5cCiQkICAgRG9sbGFyIHRlZ24gICAgICAgJF8gICBOeSBMaW5pZSAgICAgICAgICAgICRiICAgUGlwZSB0ZWduICh8KVxuXAokZCAgIEfmbGRlbmRlIGRhdG8gICAgICRlICAgRXNjYXBlICAgICAgICAgICAgICAkZyAgID4gdGVnblxuXAokbCAgIDwgdGVnbiAgICAgICAgICAgICRuICAgR+ZsZGVuZGUgZHJldiAgICAgICAkcCAgIEfmbGRlbmRlIHN0aVxuXAokcSAgID0gdGVnbiAgICAgICAgICAgICR0ICAgR+ZsZGVuZGUgdGlkICAgICAgICAkdiAgIENNRCB2ZXJzaW9uXG5cClxuXApCZW3mcmsgYXQgYnJ1Z2UgUFJPTVBULWtvbW1hbmRvZW4gdWRlbiBlbiB0ZWtzdHN0cmVuZ2UgdGlsYmFnZXN0aWxsZXJcblwKa2xhcnRlZ25ldCB0aWwgc3RhbmRhcmR25nJkaWVuLCBzb20gZXIgYXJiZWpkc2thdGFsb2dlbiAoaW5rbHVkZXJldFxuXApkcmV2KSBlZnRlcmZ1bGd0IGFmIGV0IHN0+HJyZSBlbmQgKD4pIHRlZ24uXG5cCihTb20gZW4ga29tbWFuZG8gUFJPTVBUICRwJGcuKVxuXApcblwKS2xhcnRlZ25ldCBrYW4gb2dz5SDmbmRyZXMgdmVkIOZuZHJlIG1pbGr4dmFyaWFibGVuIFBST01QVCwgc+VcblwKa29tbWFuZG9lbiCrU0VUIFBST01QVD10ZWtzdLsgaGFyIHNhbW1lIGVmZmVrdCBzb20gq1BST01QVCB0ZWtzdLsuXG4iCgogIFdDTURfUkVNLCAgICAiRW4ga29tbWFuZG9saW5pZSBzb20gYmVneW5uZXIgbWVkIFJFTSAoZWZ0ZXJmdWxndCBhZiBldCBtZWxsZW1ydW0pXG5cCnVkZvhyZXIgaW5nZW4gaGFuZGxpbmcsIG9nIGthbiBkZXJmb3IgYnJ1Z2VzIHNvbSBrb21tZW50YXIgaSBlbiBiYXRjaFxuXApmaWwuXG4iCgogIFdDTURfUkVOLCAgICAiSGrmbHAgdGlsIFJFTlxuIgogIFdDTURfUkVOQU1FLCAiSGrmbHAgdGlsIFJFTkFNRVxuIgogIFdDTURfUkQsICAgICAiSGrmbHAgdGlsIFJEXG4iCiAgV0NNRF9STURJUiwgICJIauZscCB0aWwgUk1ESVJcbiIKCiAgV0NNRF9TRVQsICAgICJTRVQgdmlzZXIgZWxsZXIg5m5kcmVyIG1pbGr4dmFyaWFibGVuZSBpIENNRC5cblwKXG5cClNFVCB1ZGVuIHBhcmFtZXRlcmUgdmlzZXIgYWxsZSBn5mxkZW5kZSBtaWxq+HZhcmlhYmxlci5cblwKXG5cClN5bnRha3NlbiBmb3IgYXQgb3ByZXR0ZSBlbGxlciDmbmRyZSBlbiBtaWxq+HZhcmlhYmVsIGVyOlxuXApcblwKICAgICAgU0VUIDx2YXJpYWJlbD49PHbmcmRpPlxuXApcblwKPHZhcmlhYmVsPiBvZyA8duZyZGk+IGVyIHRla3N0c3RyZW5nZXIuIERlciBt5SBpa2tlIHbmcmUgbWVsbGVtcnVtXG5cCmb4ciBsaWdoZWRzdGVnbmV0LCBvZyB2YXJpYWJlbG5hdm5ldCBrYW4gaGVsbGVyIGlra2UgaGF2ZSBpbmRieWdnZWRlXG5cCm1lbGxlbXJ1bS5cblwKXG5cCkkgV2luZSBlciBtaWxq+HZhcmlhYmxlbmUgaSBkZXQgdW5kZXJsaWdnZW5kZSBvcGVyYXRpdnN5c3RlbWV0XG5cIGlua2x1ZGVydCBpIFdpbjMyLW1pbGr4ZXQsIG9nIGRlciBlciBkZXJmb3IgbWFuZ2UgZmxlcmVcblwKduZyZGllciBlbmQgaSBldCBub3JtYWx0IFdpbjMyLW1pbGr4LiBW5nIgb3Bt5nJrc29tIHDlIGF0IG1hbiBpa2tlIGthblxuXArmbmRyZSBtaWxq+GV0IGkgZGV0IHVuZGVybGlnZ2VuZGUgb3BlcmF0aXZzeXN0ZW1ldCBmcmEgQ01ELlxuIgoKICBXQ01EX1NISUZULCAgIlNISUZUIGJydWdlcyBpIGVuIGJhdGNoZmlsIGZvciBhdCBmamVybmUgZGVuIGb4cnN0ZSBwYXJhbWV0ZXIgaSBlblxuXApsaXN0ZSwgc+VkYW4gYXQgcGFyYW1ldGVyIDIgYmxpciBwYXJhbWV0ZXIgMSBvZyBz5SB2aWRlcmUuIERlbiBoYXIgaW5nZW5cblwKZWZmZWt0IGh2aXMgZGV0IGJydWdlcyBmcmEga29tbWFuZG9saW5pZW4uXG4iCgogIFdDTURfVElNRSwgICAiSGrmbHAgdGlsIFRJTUVcbiIKCiAgV0NNRF9USVRMRSwgICJBbmdpdiB0aXRlbGVuIGZvciBDTUQtdmluZHVldCwgc3ludGFrc2VuIGVyXG5cCiAgVElUTEUgW3N0cmVuZ11cbiIKCiAgV0NNRF9UWVBFLCAgICKrVFlQRSA8ZmlsbmF2bj67IGtvcGllcmVyIDxmaWxuYXZuPiB0aWwga29uc29sZW5oZWRlbiAoZWxsZXIgZXQgYW5kZXRcblwKc3RlZCBodmlzIGRldCBvbWRpcmlnZXJlcykuIERldCBrb250cm9sbGVyZXMgaWtrZSBvbSBmaWxlbiBlciBs5nNlbGlnIHRla3N0LlxuIgoKICBXQ01EX1ZFUklGWSwgIlZFUklGWSBicnVnZXMgdGlsIGF0IGFrdGl2ZXJlLCBkZWFrdGl2ZXJlIGVsbGVyIHRlc3RlIKt2ZXJpZnm7LWZsYWdnZXQuXG5cIEd5bGRpZ2UgbeVkZXIgZXI6XG5cClxuXApWRVJJRlkgT04JQWt0aXZlcmVyIGZsYWdnZXRcblwKVkVSSUZZIE9GRglEZWFrdGl2ZXJlciBmbGFnZ2V0XG5cClZFUklGWQkJVmlzZXIgT04gaHZpcyBw5SBlbGxlcnMgT0ZGLlxuXApcblwKq1ZlcmlmebstZmxhZ2dldCBoYXIgaW5nZW4gZnVua3Npb24gaSBXaW5lLlxuIgoKICBXQ01EX1ZFUiwgICAgIlZFUiB2aXNlciBDTUQncyB2ZXJzaW9ubnVtbWVyXG4iCgogIFdDTURfVk9MLCAgICAiSGrmbHAgdGlsIFZPTFxuIgoKICBXQ01EX1BVU0hELCAgIlBVU0hEIDxrYXRhbG9nbmF2bj4gbGFncmVyIGFyYmVqZHNrYXRhbG9nZXQgcOUgZW4gc3RhayBvZyDmbmRyZXIgZGVyZWZ0ZXJcblwKYXJiZWpkc2thdGFsb2dldCB0aWwgZGVuIHNvbSBlciBvcGdpdmVuLlxuIgoKICBXQ01EX1BPUEQsICAgIlBPUEQg5m5kcmVyIGFyYmVqZHNrYXRhbG9nIHRpbCBkZXQgc29tIHNpZHN0IGJsZXYgYnJ1Z3QgbWVkIFBVU0hELlxuIgoKICBXQ01EX01PUkUsICAgIk1PUkUgbGFkZXIgZGlnIGJsYWRyZSBnZW5uZW0gaW5kaG9sZGV0IGFmIGZpbGVyIGVsbGVyIGluZGRhdGEgZnJhIGVuIHBpcGUuXG4iCgogIFdDTURfRVhJVCwgICAiRVhJVCBhZnNsdXR0ZXIgZ+ZsZGVuZGUgQ01EIG9nIHJldHVybmVyZXIgdGlsIG9wZXJhdGl2c3lzdGVtZXQgZWxsZXIgZGV0XG5cCnByb2dyYW0gQ01EIGJsZXYgc3RhcnRldCBhZi5cbiIKCiAgV0NNRF9BTExIRUxQLCAiSW5kYnlnZ2VkZSBrb21tYW5kb2VyIGkgQ01EOlxuXApBVFRSSUJcdFx0VmlzZXIgZWxsZXIg5m5kcmVyIERPUy1maWxhdHRyaWJ1dHRlclxuXApDQUxMXHRcdEthbGQgZW4gYmF0Y2hmaWwgaW5kZSBpIGVuIGFuZGVuXG5cCkNEIChDSERJUilcdFNraWZ0ZXIgYXJiZWpkc2thdGFsb2dcblwKQ0xTXHRcdFNsZXR0ZXIga29uc29sbHNr5nJtZW5cblwKQ09QWVx0XHRLb3BpZXJlciBmaWxlclxuXApDVFRZXHRcdMZuZHJlciBpbmQvdWQtZW5oZWRcblwKREFURVx0XHRWaXNlciBlbGxlciDmbmRyZXIgc3lzdGVtZGF0b2VuXG5cCkRFTCAoRVJBU0UpXHRTbGV0dGVyIGVuIGVsbGVyIGZsZXJlIGZpbGVyXG5cCkRJUlx0XHRWaXNlciBpbmRob2xkZXQgaSBldCBrYXRhbGdvXG5cCkVDSE9cdFx0S29waWVyZXIgdGVrc3QgZGlyZWt0ZSB0aWwga29uc29sLXVkZGF0YWVuXG5cCkhFTFBcdFx0VmlzZXIgZW4ga29ydCBoauZscGViZXNrcml2ZWxzZSBvbSBldCBlbW5lXG5cCk1EIChNS0RJUilcdExhZ2VyIGVuIHVuZGVya2F0YWxvZ1xuXApNT1JFXHRcdERpc3BsYXkgb3V0cHV0IGluIHBhZ2VzXG5cCk1PVkVcdFx0Rmx5dHRlciBlbiBlbGxlciBmbGVyZSBmaWxlciwgZWxsZXIgZW4ga2F0YWxvZ3Ry5lxuXApQQVRIXHRcdMZuZHJlciBlbGxlciB2aXNlciBz+Gdlc3RpZW5cblwKUE9QRFx0XHTGbmRyZXIgYXJiZWpkc2thdGFsb2dldCB0aWwgZGVuIHNpZHN0IGxhZ3JlZGUgbWVkIFBVU0hEXG5cClBST01QVFx0XHTGbmRyZXIga29tbWFuZG8tdGVrc3RzdHJlZ25lblxuXApQVVNIRFx0XHTGbmRyZXIgYXJiZWpkc2thdGFsb2cgb2cgbGFncmVyIGRlbiBn5mxkZW5kZVxuXApSRU4gKFJFTkFNRSlcdE9tZPhiZXIgZmlsXG5cClJEIChSTURJUilcdFNsZXR0ZXIgZXQgdW5kZXJrYXRhbG9nXG5cClNFVFx0XHRT5nR0ZXIgZWxsZXIgdmlzZXIgbWlsavh2YXJpYWJsZXJcblwKVElNRVx0XHRT5nR0ZXIgZWxsZXIgdmlzZXIgZ+ZsZGVuZGUgc3lzdGVtdGlkXG5cClRJVExFXHRcdFPmdHRlciB2aW5kdWVzdGl0ZWxlbiBmb3IgQ01ELfhrdGVuXG5cClRZUEVcdFx0VmlzZXIgaW5kaG9sZGV0IGkgZW4gZmlsXG5cClZFUlx0XHRWaXNlciBDTUQncyB2ZXJzaW9ubnVtbWVyXG5cClZPTFx0XHRWaXNlciB2b2x1bWVuYXZuZXQgZm9yIGV0IGRyZXZcblwKRVhJVFx0XHRBZnNsdXR0ZXIgQ01EXG5cblwKU2tyaXYgq0hFTFAgPGtvbW1hbmRvPrsgZm9yIG1lcmUgaW5mb3JtYXRpb24gb20ga29tbWFuZG9lcm5lIG92ZW5vdmVyXG4iCgogIFdDTURfQ09ORklSTSwgIkVyIGR1IHNpa2tlciIKICBXQ01EX1lFUywgIkoiCiAgV0NNRF9OTywgIk4iCiAgV0NNRF9OT0FTU09DLCAiTWFuZ2xlbmRlIGZpbHRpbGtueXRuaW5nIGZvciBlZnRlcm5hdm5ldCAlc1xuIgogIFdDTURfTk9GVFlQRSwgIkluZ2VuIOVibmVrb21tYW5kbyBlciB0aWxrbnl0dGV0IGZpbHR5cGVuZSAnJXMnXG4iCiAgV0NNRF9PVkVSV1JJVEUsICJPdmVyc2tyaXYgJXMiCiAgV0NNRF9NT1JFU1RSLCAiTWVyZS4uLiIKICBXQ01EX1RSVU5DQVRFRExJTkUsICJMaW5pZSBpIGJhdGNoZmlsIG11bGlndmlzIGZvcmtvcnRldC4gVXNpbmc6XG4iCiAgV0NNRF9OWUksICJJa2tlIGltcGxlbWVudGVyZXQgZW5kbnVcblxuIgogIFdDTURfTk9BUkcsICJBcmd1bWVudCBtYW5nbGVyXG4iCiAgV0NNRF9TWU5UQVhFUlIsICJTeW50YWtzIGZlamxcbiIKICBXQ01EX0ZJTEVOT1RGT1VORCwgIiVzIDogRmlsZW4gaWtrZSBmdW5kZXRcbiIKICBXQ01EX05PQ01ESEVMUCwgIkluZ2VuIGhq5mxwIHRpbGfmbmdlbGlnIGZvciAlc1xuIgogIFdDTURfTk9UQVJHRVQsICJHT1RPIERlc3RpbmF0aW9uIGlra2UgZnVuZGV0XG4iCiAgV0NNRF9DVVJSRU5UREFURSwgIk51duZyZW5kZSBEYXRvIGVyICVzXG4iCiAgV0NNRF9DVVJSRU5UVElNRSwgIk51duZyZW5kZSBUaWQgZXIgJXNcbiIKICBXQ01EX05FV0RBVEUsICJTa3JpdiBueSBkYXRvOiAiCiAgV0NNRF9ORVdUSU1FLCAiU2tyaXYgbnkgdGlkOiAiCiAgV0NNRF9NSVNTSU5HRU5WLCAiTWlsavh2YXJpYWJsZSAlcyBpa2tlIGRlZmluZXJldFxuIgogIFdDTURfUkVBREZBSUwsICJLdW5uZSBpa2tlIOVibmUgJyVzJ1xuIgogIFdDTURfQ0FMTElOU0NSSVBULCAiS3VubiBpa2tlIGthbGRlIGJhdGNoIGxhYmVsIHVkZWZyYSBiYXRjaHNrcmlwdGV0XG4iCiAgV0NNRF9BTEwsICJBIgogIFdDTURfREVMUFJPTVBULCAiJXMsIFNsZXQiCiAgV0NNRF9FQ0hPUFJPTVBULCAiRWNobyBlciAlc1xuIgogIFdDTURfVkVSSUZZUFJPTVBULCAiVmVyaWZ5IGVyICVzXG4iCiAgV0NNRF9WRVJJRllFUlIsICJWZXJpZnkgc2thbCB25nJlIE9OIGVsbGVyIE9GRlxuIjsKICBXQ01EX0FSR0VSUiwgIlBhcmFtZXRlciBmZWpsXG4iCiAgV0NNRF9WT0xVTUVERVRBSUwsICJWb2x1bWVuIGkgZHJldmV0ICVjIGVyICVzXG5Wb2x1bWUgU2VyaWVsIE51bW1lciBpcyAlMDR4LSUwNHhcblxuIgogIFdDTURfVk9MVU1FUFJPTVBULCAiVm9sdW1lbidzIGxhYmVsICgxMSBrYXJha3RlcmUsIEVOVEVSIGZvciBpbmdlbik/IgogIFdDTURfTk9QQVRILCAiUEFUSCBpa2tlIGZ1bmRldFxuIgogIFdDTURfQU5ZS0VZLCJUcnlrIFJldHVybiBmb3IgYXQgZm9ydHPmdHRlOiAiCiAgV0NNRF9DT05TVElUTEUsIldpbmUgQ29tbWFuZCBQcm9tcHQiCiAgV0NNRF9WRVJTSU9OLCJDTUQgVmVyc2lvbiAlc1xuXG4iCiAgV0NNRF9NT1JFUFJPTVBULCAiTWVyZT8gIgogIFdDTURfTElORVRPT0xPTkcsICJUaGUgaW5wdXQgbGluZSBpcyB0b28gbG9uZy5cbiIKfQo=