LyoKICogV2luZSBjb21tYW5kIHByb21wdAogKiBHZXJtYW4gTGFuZ3VhZ2UgU3VwcG9ydAogKgogKiBDb3B5cmlnaHQgMjAwNCBIZW5uaW5nIEdlcmhhcmR0CiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQQogKi8KCkxBTkdVQUdFIExBTkdfR0VSTUFOLCBTVUJMQU5HX05FVVRSQUwKClNUUklOR1RBQkxFCnsKICBXQ01EX0FUVFJJQiwgIkhpbGZlIGb8ciBBVFRSSUJcbiIKICBXQ01EX0NBTEwsCiJDQUxMIDxCYXRjaGRhdGVpbmFtZT4gd2lyZCBpbiBlaW5lciBCYXRjaGRhdGVpIGdlbnV0enQsIHVtIEJlZmVobGUgYXVzXG5cCmVpbmVyIGFuZGVyZW4gQmF0Y2hkYXRlaSBhdXN6dWb8aHJlbi4gV2VubiBkaWUgQmF0Y2hkYXRlaSBleGlzaWVydCwga2VocnRcblwKZGllIEtvbnRyb2xsZSB6dSBkZXIgRGF0ZWkgenVy/GNrLCBkaWUgc2llIGdlcnVmZW4gaGF0LiBEZXIgQ0FMTCBCZWZlaGwga2FublxuXApQYXJhbWV0ZXIgenUgZGVyIHJ1ZmVuZGVuIFByb3plZHVyZSD8YmVydHJhZ2VuLlxuXApcblwKxG5kZXJ1bmdlbiBm/HIgZGFzIGFrdHVlbGxlIFZlcnplaWNobmlzLCBVbWdlYnVuZ3N2YXJpYWJsZW4gdXN3LiB3ZXJkZW4gaW5cblwKZGVyIGdlcnVmZW5lbiBQcm96ZWR1ciBnZW1hY2h0LCBkaWUgc2llIHZvbiBkZXIgYXVmZ2VydWZlbmVuIGdlZXJidCBoYXQuXG4iCgogIFdDTURfQ0QsICAgICAiSGlsZmUgZvxyIENEXG4iCiAgV0NNRF9DSERJUiwgICJIaWxmZSBm/HIgQ0hESVJcbiIKCiAgV0NNRF9DTFMsICAgICJDTFMgbPZzY2h0IGRlbiBJbmhhbHQgZGVyIEtvbnNvbGVcbiIKCiAgV0NNRF9DT1BZLCAgICJIaWxmZSBm/HIgQ09QWVxuIgogIFdDTURfQ1RUWSwgICAiSGlsZmUgZvxyIENUVFlcbiIKICBXQ01EX0RBVEUsICAgIkhpbGZlIGb8ciBEQVRFXG4iCiAgV0NNRF9ERUwsICAgICJIaWxmZSBm/HIgREVMXG4iCiAgV0NNRF9ESVIsICAgICJIaWxmZSBm/HIgRElSXG4iCgogIFdDTURfRUNITywKIkVDSE8gPFplaWNoZW5rZXR0ZT4gemVpZ3QgZGllIDxaZWljaGVua2V0dGU+IGF1ZiBkZW0gYWt0dWVsbGVuIFRlcm1pbmFsZ2Vy5HQuXG5cClxuXApFQ0hPIE9OIGJld2lya3QsIGRhc3MgYWxsZSBuYWNoZm9sZ2VuZGVuIEJlZmVobGUgaW4gZWluZXIgQmF0Y2hkYXRlaSB6dWVyc3RcblwKYXVmIGRlbSBUZXJtaW5hbGdlcuR0IGFuZ2V6ZWlndCB1bmQgZGFuYWNoIGF1c2dlZvxocnQgd2VyZGVuLlxuXApcblwKRUNITyBPRkYga2VocnQgZGVuIEVmZmVrdCBkZXMgdm9yaGVyaWdlbiBFQ0hPIE9OIChFQ0hPIGlzdCBzdGFuZGFyZG3kc3NpZ1xuXAphdWYgT0ZGKSB1bS4gVW0gZGVuIEVDSE8gT0ZGIEJlZmVobCBuaWNodCBhbnplaWdlbiB6dSBsYXNzZW4sIGthbm4gdm9yIGRlc3NlblxuXAplaW4gQCBaZWljaGVuIGdlc2V0enQgd2VyZGVuLlxuIgoKICBXQ01EX0VSQVNFLCAgIkhpbGZlIGb8ciBFUkFTRVxuIgoKICBXQ01EX0ZPUiwKIkRlciBGT1IgQmVmZWhsIHdpcmQgZ2VudXR6dCwgdW0gZWluZW4gQmVmZWhsIGb8ciBlaW5lIE1lbmdlIHZvbiBEYXRlaWVuXG5cCmVpbnplbG4gYXVzenVm/GhyZW4uXG5cClxuXApTeW50YXg6IEZPUiAlVmFyaWFibGUgSU4gKHNldCkgRE8gQmVmZWhsXG5cClxuXApEaWUgQW5mb3JkZXJ1bmcgZGFzICUgWmVpY2hlbiB6dSB2ZXJkb3BwZWxuLCBzb2JhbGQgRk9SIGluIGVpbmVyIEJhdGNoZGF0ZWlcblwKYmVudXR6dCB3aXJkLCBleGlzdGllcnQgaW0gQ01EIG5pY2h0LlxuIgoKICBXQ01EX0dPVE8sCiJEZXIgR09UTyBCZWZlaGwgdHJhbnNmZXJpZXJ0IGRpZSBBdXNm/GhydW5nIHp1IGVpbmVyIGFuZGVyZW4gU3RlbGxlIGluIGVpbmVyXG5cCkJhdGNoZGF0ZWkuXG5cClxuXApEaWUgQmV6ZWljaG51bmcsIGRpZSBkYXMgWmllbCBlaW5lcyBHT1RPJ3MgaXN0LCBrYW5uIGJpcyB6dSAyNTUgWmVpY2hlbiBsYW5nXG5cCnNlaW4sIGRhcmYgYWJlciBrZWluZSBMZWVyemVpY2hlbiBlbnRoYWt0ZW4gKGRpZXMgaXN0IGRlciBVbnRlcnNjaGllZCB6dVxuXAphbmRlcmVuIEJldHJpZWJzc3lzdGVtZW4pLiBXZW5uIHp3ZWkgb2RlciBtZWhyIGlkZW50aXNjaGUgQmV6ZWljaG51bmdlbiBpblxuXAplaW5lciBCYXRjaGRhdGVpIGV4aXN0aWVyZW4sIGRhbm4gd2lyZCBpbW1lciB6dSBkZXIgZXJzdGVuIEJlemVpY2hudW5nXG5cCmdlc3BydW5nZW4uIFZlcnN1Y2h0IEdPVE8genUgZWluZXIgbmljaHQgdm9yaGFuZGVuIEJlemVpY2hudW5nIHp1IHNwcmluZ2VuLFxuXApiZWVuZGV0IHNpY2ggZGllIEF1c2b8aHJ1bmcgZGVyIEJhdGNoZGF0ZWkuXG5cClxuXApHT1RPIGhhdCBrZWluZSBBdXN3aXJrdW5nZW4sIHdlbm4gZXMgaW50ZXJha3RpdiBnZW51dHp0IHdpcmQuXG4iCgogIFdDTURfSEVMUCwgICAiSGlsZmUgZvxyIEhFTFBcbiIKCiAgV0NNRF9JRiwKIklGIHdpcmQgYmVudXR6dCwgdW0gZWluZW4gQmVmZWhsIGJlZGluZ3QgYXVzenVm/GhyZW4uXG5cClxuXApTeW50YXg6CUlGIFtOT1RdIEVYSVNUIERhdGVpbmFtZSBCZWZlaGxcblwKCUlGIFtOT1RdIFplaWNoZW5rZXR0ZTE9PVplaWNoZW5rZXR0ZTIgQmVmZWhsXG5cCglJRiBbTk9UXSBFUlJPUkxFVkVMIE51bW1lciBCZWZlaGxcblwKXG5cCkluIGRlciB6d2VpdGVuIEZvcm0gZGVzIEJlZmVobHMsIG38c3NlbiBkaWUgYmVpZGVuIFplaWNoZW5rZXR0ZW4gaW4gZG9wcGVsdGVuXG5cCkFuZvxocnVuZ3N6ZWljaGVuIHN0ZWhlbi4gRGVyIFZlcmdsZWljaCBhY2h0ZXQgbmljaHQgYXVmIGRpZSBHcm/fLSB1bmRcblwKS2xlaW5zY2hyZWlidW5nLlxuIgoKICBXQ01EX0xBQkVMLCAgCiJMQUJFTCB3aXJkIGJlbnV0enQsIHVtIGRpZSBMYXVmd2Vya3NiZXplaWNobnVuZyBmZXN0enVsZWdlbi5cblwKXG5cClN5bnRheDogTEFCRUwgW0xhdWZ3ZXJrOl1cblwKXG5cCkRlciBCZWZlaGwgd2FydGV0IGF1ZiBkaWUgRWluZ2FiZSBlaW5lciBuZXVlbiBCZXplaWNobnVuZyBm/HIgZGFzIGFuZ2VnZWJlbmVcblwKTGF1ZndlcmsuIFNpZSBr9m5uZW4gc2ljaCBhdWNoIGRpZSBMYXVmd2Vya3NiZXplaWNudW5nIG1pdCBkZW0gVk9MIC0gQmVmZWhsXG5cCmFuemVpZ2VuIGxhc3Nlbi5cbiIKCiAgV0NNRF9NRCwgICAgICJIaWxmZSBm/HIgTURcbiIKICBXQ01EX01LRElSLCAgIkhpbGZlIGb8ciBNS0RJUlxuIgogIFdDTURfTU9WRSwKIk1PVkUgdmVyc2NoaWVidCBlaW5lIERhdGVpIG9kZXIgZWluIFZlcnplaWNobmlzIHp1IGVpbmVtIG5ldWVuIFB1bmt0IGltXG5cCkRhdGVpc3lzdGVtLlxuXApcblwKSXN0IGRhcyB6dSB2ZXJzY2hpZWJlbmRlIE9iamVrdCBlaW4gVmVyemVpY2huaXMsIGRhbm4gd2VyZGVuIGFsbGUgRGF0ZWllbiB1bmRcblwKVW50ZXJ2ZXJ6ZWljaG5pc3NlIHVudGVyaGFsYiBkZXMgT2JqZWt0ZXMgZ2VuYXVzbyB2ZXJzY2hvYmVuLlxuXApcblwKTU9WRSBzY2hs5Gd0IGZlaGwsIHdlbm4gZGllIGFsdGUgdW5kIGRpZSBuZXVlIFBvc2l0aW9uIGF1ZiB2ZXJzY2hpZWRlbmVuIERPU1xuXApMYXVmd2Vya2VuIHNpbmQuXG4iCgogIFdDTURfUEFUSCwKIlBBVEgg5G5kZXJ0IG9kZXIgemVpZ3QgZGVuIENNRCBTdWNocGZhZCBhbi5cblwKXG5cCk5hY2ggZGVyIEVpbmdhYmUgdm9uIFBBVEgsIHdpcmQgZGllIGFrdHVlbGxlIFBBVEggRWluc3RlbGx1bmcgYW5nZXplaWd0XG5cCihuYWNoIGRlbSBTdGFydCB3aXJkIGRlciBXZXJ0IGF1cyBkZXIgd2luZS5jb25mIERhdGVpIGdlbm9tbWVuKS4gVW0gZGllXG5cCkVpbnN0ZWxsdW5nZW4genUg5G5kZXJuLCBtdXNzIG5hY2ggZGVtIFBBVEggQmVmZWhsIGRlciBuZXVlIFdlcnQgYW5nZWdlYmVuXG5cCndlcmRlblxuXApcblwKRXMgaXN0IGF1Y2ggbfZnbGljaCBkZW4gUEFUSCBtaXQgSGlsZmUgZGVyIFBBVEggVW1nZWJ1bmdzdmFyaWFibGUgenVcblwKbW9kaWZpemllcmVuLiBadW0gQmVpc3BpZWw6XG5cCgkJUEFUSCAlUEFUSCU7YzpcXHRlbXAgXG4iCgogIFdDTURfUEFVU0UsCiJQQVVTRSBs5HNzdCBlaW5lIE1lbGR1bmcgYXVmIGRlbSBCaWxkc2NoaXJtIGVyc2NoZWluZW5cblwKJ1ByZXNzIFJldHVybiBrZXkgdG8gY29udGludWUnIHVuZCB3YXJ0ZXQgZGFyYXVmLCBkYXNzIGRlciBOdXR6ZXIgZGllXG5cClJldHVybi9FbnRlci1UYXN0ZSBkcvxja3QuIEVzIHdpcmQgaGF1cHRz5GNobGljaCBpbiBCYXRjaGRhdGVpZW4gZ2VudXR6dCxcblwKdW0gZGVtIE51dHplciB6dSBlcmxhdWJlbiwgZGllIEF1c2dhYmUgZWluZXMgdm9yaGVyaWdlbiBCZWZlaGxzIHp1IGxlc2VuLFxuXApiZXZvciBlcyBkdXJjaCBTY3JvbGxlbiB2b20gQmlsZHNjaGlybSB2ZXJzY2h3aW5kZXQuXG4iCgogIFdDTURfUFJPTVBULAoiUFJPTVBUIHNldHp0IGRlbiBCZWZlaGxzemVpbGVucHJvbXB0LlxuXApcblwKRGllIFplaWNoZW5rZXR0ZSwgZGllIGRlbSBQUk9NUFQgQmVmZWhsIGZvbGd0ICh1bmQgZGVtIExlZXJ6ZWljaGVuXG5cCnVubWl0dGVsYmFyIGRhbmFjaCksIGVyc2NoZWludCBhbSBaZWlsZW5hbmZhbmcsIHdlbm4gQ01EIGF1ZiBkaWUgRWluZ2FiZVxuXAp3YXJ0ZXQuXG5cClxuXApEaWUgbmFjaGZvbGdlbmRlbiBaZWljaGVuIGhhYmVuIGVpbmUgYmVzb25kZXJlIEJlZGV1dHVuZzpcblwKXG5cCiQkICAgIERvbGxhcnplaWNoZW4gICAgICAgJF8gICAgWmVpbGVudm9yc2NodWIgICAgICAkYiAgICBQaXBlIFplaWNoZW4gKHwpXG5cCiRkICAgIGFrdHVlbGxlcyBEYXR1bSAgICAgJGUgICAgRXNjYXBlICAgICAgICAgICAgICAkZyAgICA+IFplaWNoZW5cblwKJGwgICAgPCBaZWljaGVuICAgICAgICAgICAkbiAgICBha3V0ZWxsZXMgTGF1ZndlcmsgICRwICAgIGFrdHVlbGxlciBQZmFkXG5cCiRxICAgIEdsZWljaGhlaXRzemVpY2hlbiAgJHQgICAgYWt0dWVsbGUgWmVpdCAgICAgICAkdiAgICBjbWQgVmVyc2lvblxuXApcblwKSGlud2VpczogRGllIEVpbmdhYmUgZGVzIFBST01QVCBCZWZlaGxzIG9obmUgZWluZSBQcm9tcHQtWmVpY2hlbmtldHRlLCBzZXR6dFxuXApkZW4gUHJvbXB0IHp1IGRlbiBTdGFuZGFyZHdlcnQgenVy/GNrLCB3YXMgZGFzIGFrdHVlbGxlIFZlcnplaWNobmlzIChpbmtsdXNpdmVcblwKZGVtIGFrdHVlbGxlbiBMYXVmd2Vya3NidWNoc3RhYmVuKSBnZWZvbGd0IHZvbiBlaW5lbiBHcvbfZXJ6ZWljaGVuICg+KVxuXAooZ2VuYXUgd2llIGRlciBQUk9NUFQgJHAkZyBCZWZlaGwpLlxuXApcblwKRGVyIFByb21wdCBrYW5uIGF1Y2ggZ2XkbmRlcnQgd2VyZGVuIGR1cmNoIGRhcyDEbmRlcm4gZGVyIFBST01QVFxuXApVbWdlYnVuZ3N2YXJpYWJsZSwgc28gaGF0IGRlciBCZWZlaGwgJ1NFVCBQUk9NUFQ9dGV4dCcgZGllIGdsZWljaGUgQXVzd2lya3VuZ1xuXAp3aWUgJ1BST01QVCB0ZXh0Jy5cbiIKCiAgV0NNRF9SRU0sCiJCZWdpbm50IGVpbmUgQmVmZWhsc3plaWxlIG1pdCBSRU0gKGdlZm9sZ3Qgdm9uIGVpbmVtIExlZXJ6ZWljaGVuKSwgd2lyZFxuXAprZWluZSBBa3Rpb24gYXVzZ2Vm/GhydCB1bmQga2FubiBkZXNoYWxiIGF1Y2ggYWxzIEtvbW1lbnRhciBpbiBlaW5lclxuXApCYXRjaGRhdGVpIGdlbnV0enQgd2VyZGVuLlxuIgoKICBXQ01EX1JFTiwgICAgIkhpbGZlIGb8ciBSRU5cbiIKICBXQ01EX1JFTkFNRSwgIkhpbGZlIGb8ciBSRU5BTUVcbiIKICBXQ01EX1JELCAgICAgIkhpbGZlIGb8ciBSRFxuIgogIFdDTURfUk1ESVIsICAiSGlsZmUgZvxyIFJNRElSXG4iCgogIFdDTURfU0VULAoiU0VUIORuZGVydCBvZGVyIHplaWd0IGRpZSBDTUQgVW1nZWJ1bmdzdmFyaWFibGVuIGFuLlxuXApcblwKU0VUIG9obmUgUGFyYW1ldGVyIHplaWd0IGFsbGUgYWt0dWVsbGVuIFVtZ2VidW5nc3ZhcmlhYmxlbiBhbi5cblwKXG5cClVtIGVpbmUgVW1nZWJ1bmdzdmFyaWFibGUgenUgZXJzY2hhZmZlbiBvZGVyIHp1IORuZGVybiwgaXN0IGRlciBTeW50YXggbvZ0aWc6XG5cClxuXAogICAgICBTRVQgPFZhcmlhYmxlPj08V2VydD5cblwKXG5cCldvYmVpIDxWYXJpYWJsZT4gdW5kIDxXZXJ0PiBaZWljaGVua2V0dGUgc2luZC4gRXMgbfxzc2VuIGtlaW5lIExlZXJ6ZWljaGVuIHZvclxuXApkZW0gR2xlaWNoaGVpdHN6ZWljaGVuIHNlaW4sIG5vY2ggbXVzcyBkZXIgVmFyaWFibGVubmFtZSBpbiBBbmb8aHJ1bmdzemVpY2hlblxuXAplaW5nZXNjaGxvc3NlbiBzZWluLlxuXApcblwKSW4gV2luZSB3ZXJkZW4gZGllIFVtZ2VidW5nc3ZhcmlhYmxlbiBkZXMgZGFydW50ZXJsaWVnZW5kZW4gQmV0cmllYnNzeXN0ZW1zXG5cCm1pdCBpbiBkaWUgV2luMzIgVW1nZWJ1bmcgZWluZ2VidW5kZW4sIGRlc2hhbGIgZ2lidCBlcyBnZXf2aG5saWNoIG1laHIgV2VydGVcblwKYWxzIGVzIHNpZSBpbiBlaW5lciB1cnNwcvxuZ2xpY2hlbiBXaW4zMiBSZWFsaXNpZXJ1bmcgZ+RiZS4gQW5tZXJrdW5nOiBFcyBpc3RcblwKbmljaHQgbfZnbGljaCBkaWUgVW1nZWJ1bmdzdmFyaWFibGVuIGRlcyBCZXRyaWVic3N5c3RlbXMgdm9tIENNRCBhdXMgenVcblwKYmVlaW5mbHVzc2VuLlxuIgoKICBXQ01EX1NISUZULAoiU0hJRlQgd2lyZCBpbiBlaW5lciBCYXRjaGRhdGVpIGdlbnV0enQsIHVtIGVpbmVuIFBhcmFtZXRlciB2b20gQW5mYW5nIGRlclxuXApMaXN0ZSB6dSBlbnRmZXJuZW4sIHNvIGRhcyBkZXIgUGFyYW1ldGVyIDIgenUgUGFyYW1ldGVyIDEgd2lyZCB1bmQgc28gd2VpdGVyLlxuXApFcyBoYXQga2VpbmUgQXVzd2lya3VuZ2VuLCB3ZW5uIGVzIHZvbiBkZXIgQmVmZWhsc3plaWxlIGdlcnVmZW4gd2lyZC5cbiIKCiAgV0NNRF9USU1FLCAgICJIaWxmZSBm/HIgVElNRVxuIgoKICBXQ01EX1RJVExFLAoiU2V0enQgZGVuIEZlbnN0ZXJ0aXRlbCBm/HIgZGFzIENNRCAtIEZlbnN0ZXIuXG5cClxuXApTeW50YXg6IFRJVExFIFtaZWljaGVua2V0dGVdXG4iCgogIFdDTURfVFlQRSwKIlRZUEUgPERhdGVpPiBrb3BpZXJ0IDxEYXRlaT4genUgZGVtIEtvbnNvbGVuZ2Vy5HQgKG9kZXIgZG9ydGhpbiwgd29oaW5cblwKZGllcyB1bWdlbGVpdGV0IHd1cmRlKS4gRXMgd2lyZCBrZWluZSDcYmVycHL8ZnVuZyB2b3JnZW5vbW1lbiwgb2IgZGllXG5cCkRhdGVpIGxlc2JhcmVyIFRleHQgaXN0LlxuIgoKICBXQ01EX1ZFUklGWSwKIlZFUklGWSB3aXJkIGJlbnV0enQsIHVtIGRhcyBWZXJpZnkgRmxhZyB6dSBzZXR6ZW4sIHp1IGz2c2NoZW4gb2RlciB6dVxuXAp0ZXN0ZW4uIEf8bHRpZ2UgRWluZ2FiZW4gc2luZDpcblwKXG5cClZFUklGWSBPTglTZXR6dCBkYXMgRmxhZ1xuXApWRVJJRlkgT0ZGCUz2c2NodCBkYXMgRmxhZ1xuXApWRVJJRlkJCVplaWd0IGFuLCBvYiBPTiBvZGVyIE9GRiB2ZXJ3ZW5kZXQgd2lyZC5cblwKXG5cCkRhcyBWZXJpZnkgRmxhZyBoYXQga2VpbmUgRnVua3Rpb24gaW4gV2luZS5cbiIKCiAgV0NNRF9WRVIsCiJWRVIgemVpZ3QgZGllIGFrdHVlbGxlIFZlcnNpb24gdm9uIENNRCBhbi5cbiIKCiAgV0NNRF9WT0wsICAgICJIaWxmZSBm/HIgVk9MXG4iCgogIFdDTURfUFVTSEQsICAiUFVTSEQgPFZlcnplaWNobmlzbmFtZT4gc3BlaWNoZXJ0IGRhcyBha3R1ZWxsZVxuXApWZXJ6ZWljaG5pcyBhdWYgZWluZW0gU3RhY2sgdW5kIHdlY2hlc2VsdCBkYXMgQXJiZWl0c3ZlcnplaWNobmlzXG5cCnp1IGRlbSBhbmdlZ2ViZW5lbi5cbiIKCiAgV0NNRF9QT1BELCAgICJQT1BEIHdlY2hzZWx0IGRhcyBBcmJlaXRzdmVyemVpY2huaXMgenUgZGVtIHp1bGV0enRcblwKbWl0IFBVU0hEIGdlc3BlaWNoZXJ0ZW4uXG4iCgogIFdDTURfTU9SRSwgICAiTU9SRSBkaXNwbGF5cyBvdXRwdXQgb2YgZmlsZXMgb3IgcGlwZWQgaW5wdXQgaW4gcGFnZXMuXG4iCgogIFdDTURfRVhJVCwKIkVYSVQgYmVlbmRldCBkaWUgYWt0dWVsbGUgQmVmZWhsc3NpdHp1bmcgdW5kIGtlaHJ0IHp1bVxuXApCZXRyaWVic3N5c3RlbSBvZGVyIGRlciBTaGVsbCB6dXL8Y2ssIHZvbiBkZXIgQ01EIGdlc3RhcnQgd3VyZGUuXG4iCgoKICBXQ01EX0FMTEhFTFAsICJDTUQgZWluZ2ViYXV0ZW4gQmVmZWhsZSBzaW5kOlxuXApBVFRSSUJcdFx0WmVpZ3QgYW4gb2RlciDkbmRlcnQgZGllIERPUyBEYXRlaWVpZ2Vuc2NoYWZ0ZW5cblwKQ0FMTFx0XHRSdWZ0IGVpbmUgQmF0Y2gtRGF0ZWkgaW5uZXJoYWxiIGVpbmVyIGFuZGVyZW4gYXVmXG5cCkNEIChDSERJUilcdFdlY2hzZWx0IGluIGRhcyBWZXJ6ZWljaG5pc1xuXApDTFNcdFx0TPZzY2h0IGRlbiBJbmhhbHQgZGVyIEtvbnNvbGVcblwKQ09QWVx0XHRLb3BpZXJ0IGVpbmUgRGF0ZWlcblwKQ1RUWVx0XHTEbmRlcnQgZGFzIEVpbmdhYmUvQXVzZ2FiZSAtIEdlcuR0XG5cCkRBVEVcdFx0WmVpZ3QgYW4gb2RlciDkbmRlcnQgZGFzIFN5c3RlbWRhdHVtXG5cCkRFTCAoRVJBU0UpXHRM9nNjaHQgZWluZSBvZGVyIG1laHJlcmUgRGF0ZWllblxuXApESVJcdFx0TGlzdGV0IGRlbiBJbmhhbHQgZWluZXMgVmVyemVpY2huaXNzZXNcblwKRUNIT1x0XHRLb3BpZXJ0IGRlbiBUZXh0IGRpcmVrdCB6dXIgS29uc29sZW5hdXNnYWJlXG5cCkhFTFBcdFx0WmVpZ3QgZGV0YWxpZXJ0ZSBJbmZvcm1hdGlvbmVuIHp1IGVpbmVuIFRoZW1hXG5cCk1EIChNS0RJUilcdEVyemV1Z3QgZWluIFVudGVydmVyemVpY2huaXNcblwKTU9SRVx0XHREaXNwbGF5IG91dHB1dCBpbiBwYWdlc1xuXApNT1ZFXHRcdEJld2VndCBlaW5lIG9kZXIgbWVocmVyZSBEYXRlaWVuIG9kZXIgZWluZW4gVmVyemVpY2huaXNiYXVtXG5cClBBVEhcdFx0U2V0enQgb2RlciB6ZWlndCBkZW4gU3VjaHBmYWQgYW5cblwKUFJPTVBUXHRcdMRuZGVydCBkZW4gQmVmZWhsc3plaWxlbnByb21wdFxuXApSRU4gKFJFTkFNRSlcdEJlbmVubnQgZWluZSBEYXRlaSB1bVxuXApSRCAoUk1ESVIpXHRM9nNjaHQgZWluIFVudGVydmVyemVpY2huaXNcblwKU0VUXHRcdFNldHp0IG9kZXIgemVpZ3QgZGllIFVtZ2VidW5nc3ZhcmlhYmxlbiBhblxuXApUSU1FXHRcdFNldHp0IG9kZXIgemVpZ3QgZGllIGFrdHVlbGxlIFN5c3RlbXplaXQgYW5cblwKVElUTEVcdFx0U2V0enQgZGVuIEZlbnN0ZXJ0aXRlbCBm/HIgZGllIENNRCAtIFNpdHp1bmdcblwKVFlQRVx0XHRHaWJ0IGRlbiBJbmhhbHQgZWluZXIgVGV4dGRhdGVpIGF1c1xuXApWRVJcdFx0WmVpZ3QgZGllIGFrdHVlbGxlIFZlcnNpb24gdm9uIENNRCBhblxuXApWT0xcdFx0WmVpZ3QgZGllIEJlemVpY2hudW5nIGVpbmVzIExhdWZ3ZXJrZXMgYW5cblwKRVhJVFx0XHRCZWVuZGV0IGRlbiBDTURcblxuXApHZWJlbiBTaWUgSEVMUCA8QmVmZWhsPiBlaW4sIGRhbWl0IFNpZSB3ZWl0ZXJlIEluZm9ybWF0aW9uZW4gZvxyIGVpbmVuIGRlclxuXApvYmlnZW4gQmVmZWhsZSBlcmhhbHRlbi5cbiIKCiAgV0NNRF9DT05GSVJNLCAiU2luZCBzaWUgc2ljaGVyIgogIFdDTURfWUVTLCAiSiIKICBXQ01EX05PLCAiTiIKICBXQ01EX05PQVNTT0MsICJWZXJrbvxwZnVuZyBm/HIgRGF0ZWllbmR1bmcgJXMgZmVobHRcbiIKICBXQ01EX05PRlRZUEUsICJLZWluIEJlZmVobCB6dW0g1mZmbmVuIGb8ciBEYXRlaXR5cCAnJXMnXG4iCiAgV0NNRF9PVkVSV1JJVEUsICJPdmVyd3JpdGUgJXMiCiAgV0NNRF9NT1JFU1RSLCAiTW9yZS4uLiIKICBXQ01EX1RSVU5DQVRFRExJTkUsICJMaW5lIGluIEJhdGNoIHByb2Nlc3NpbmcgcG9zc2libHkgdHJ1bmNhdGVkLiBVc2luZzpcbiIKICBXQ01EX05ZSSwgIk5vdCBZZXQgSW1wbGVtZW50ZWRcblxuIgogIFdDTURfTk9BUkcsICJBcmd1bWVudCBtaXNzaW5nXG4iCiAgV0NNRF9TWU5UQVhFUlIsICJTeW50YXggZXJyb3JcbiIKICBXQ01EX0ZJTEVOT1RGT1VORCwgIiVzIDogRmlsZSBOb3QgRm91bmRcbiIKICBXQ01EX05PQ01ESEVMUCwgIk5vIGhlbHAgYXZhaWxhYmxlIGZvciAlc1xuIgogIFdDTURfTk9UQVJHRVQsICJUYXJnZXQgdG8gR09UTyBub3QgZm91bmRcbiIKICBXQ01EX0NVUlJFTlREQVRFLCAiQ3VycmVudCBEYXRlIGlzICVzXG4iCiAgV0NNRF9DVVJSRU5UVElNRSwgIkN1cnJlbnQgVGltZSBpcyAlc1xuIgogIFdDTURfTkVXREFURSwgIkVudGVyIG5ldyBkYXRlOiAiCiAgV0NNRF9ORVdUSU1FLCAiRW50ZXIgbmV3IHRpbWU6ICIKICBXQ01EX01JU1NJTkdFTlYsICJFbnZpcm9ubWVudCB2YXJpYWJsZSAlcyBub3QgZGVmaW5lZFxuIgogIFdDTURfUkVBREZBSUwsICJGYWlsZWQgdG8gb3BlbiAnJXMnXG4iCiAgV0NNRF9DQUxMSU5TQ1JJUFQsICJDYW5ub3QgY2FsbCBiYXRjaCBsYWJlbCBvdXRzaWRlIG9mIGEgYmF0Y2ggc2NyaXB0XG4iCiAgV0NNRF9BTEwsICJBIgogIFdDTURfREVMUFJPTVBULCAiJXMsIERlbGV0ZSIKICBXQ01EX0VDSE9QUk9NUFQsICJFY2hvIGlzICVzXG4iCiAgV0NNRF9WRVJJRllQUk9NUFQsICJWZXJpZnkgaXMgJXNcbiIKICBXQ01EX1ZFUklGWUVSUiwgIlZlcmlmeSBtdXN0IGJlIE9OIG9yIE9GRlxuIjsKICBXQ01EX0FSR0VSUiwgIlBhcmFtZXRlciBlcnJvclxuIgogIFdDTURfVk9MVU1FREVUQUlMLCAiVm9sdW1lIGluIGRyaXZlICVjIGlzICVzXG5Wb2x1bWUgU2VyaWFsIE51bWJlciBpcyAlMDR4LSUwNHhcblxuIgogIFdDTURfVk9MVU1FUFJPTVBULCAiVm9sdW1lIGxhYmVsICgxMSBjaGFyYWN0ZXJzLCBFTlRFUiBmb3Igbm9uZSk/IgogIFdDTURfTk9QQVRILCAiUEFUSCBub3QgZm91bmRcbiIKICBXQ01EX0FOWUtFWSwiUHJlc3MgUmV0dXJuIGtleSB0byBjb250aW51ZTogIgogIFdDTURfQ09OU1RJVExFLCJXaW5lIENvbW1hbmQgUHJvbXB0IgogIFdDTURfVkVSU0lPTiwiQ01EIFZlcnNpb24gJXNcblxuIgogIFdDTURfTU9SRVBST01QVCwgIk1vcmU/ICIKfQo=