LyoKICogQ29weXJpZ2h0IDE5OTggSnVlcmdlbiBTY2htaWVkCiAqIENvcHlyaWdodCAyMDA4IEplbnMgQWxicmV0c2VuCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQQogKi8KCiNpbmNsdWRlICJzaHJlc2RlZi5oIgoKTEFOR1VBR0UgTEFOR19EQU5JU0gsIFNVQkxBTkdfREVGQVVMVAoKTUVOVV8wMDEgTUVOVSBESVNDQVJEQUJMRQpCRUdJTgogICAgICAgIE1FTlVJVEVNICImU3RvcmUgSWtvbmVyIiwgICAgICAgRkNJRE1fU0hWSUVXX0JJR0lDT04KICAgICAgICBNRU5VSVRFTSAiUyZt5SBJa29uZXIiICwgICAgICAgIEZDSURNX1NIVklFV19TTUFMTElDT04KICAgICAgICBNRU5VSVRFTSAiJkxpc3RlIiwgICAgICAgICAgICAgIEZDSURNX1NIVklFV19MSVNUVklFVwogICAgICAgIE1FTlVJVEVNICImRGV0YWxqZXIiLCAgICAgICAgICAgRkNJRE1fU0hWSUVXX1JFUE9SVFZJRVcKRU5ECgovKgogc2hlbGx2aWV3IGJhY2tncm91bmQgbWVudQoqLwpNRU5VXzAwMiBNRU5VIERJU0NBUkRBQkxFCkJFR0lOCiAgICAgICAgUE9QVVAgIiIKICAgICAgICBCRUdJTgogICAgICAgICAgUE9QVVAgIiZWaWV3IgogICAgICAgICAgQkVHSU4KICAgICAgICAgICAgTUVOVUlURU0gIiZTdG9yZSBJa29uZXIiLCAgIEZDSURNX1NIVklFV19CSUdJQ09OCiAgICAgICAgICAgIE1FTlVJVEVNICJTJm3lIElrb25lciIsICAgICBGQ0lETV9TSFZJRVdfU01BTExJQ09OCiAgICAgICAgICAgIE1FTlVJVEVNICImTGlzdGUiLCAgICAgICAgICBGQ0lETV9TSFZJRVdfTElTVFZJRVcKICAgICAgICAgICAgTUVOVUlURU0gIiZEZXRhbGplciIsICAgICAgIEZDSURNX1NIVklFV19SRVBPUlRWSUVXCiAgICAgICAgICBFTkQKICAgICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgICAgUE9QVVAgIkFycmFuZ+lyICZJa29uZXIiCiAgICAgICAgICBCRUdJTgogICAgICAgICAgICBNRU5VSVRFTSAiZWZ0ZXIgJm5hdm4iLCAgICAgICAgMHgzMCAgICAvKiBjb2x1bW4gMCAqLwogICAgICAgICAgICBNRU5VSVRFTSAiZWZ0ZXIgJnR5cGUiLCAgICAgICAgMHgzMiAgICAvKiBjb2x1bW4gMiAqLwogICAgICAgICAgICBNRU5VSVRFTSAiZWZ0ZXIgJnN0+HJyZWxzZSIsICAgICAgICAweDMxICAgIC8qIC4uLiAqLwogICAgICAgICAgICBNRU5VSVRFTSAiZWZ0ZXIgJmRhdG8iLCAgICAgICAgMHgzMwogICAgICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICAgICAgTUVOVUlURU0gIiZBdXRvYXJyYW5n6XIiLCAgIEZDSURNX1NIVklFV19BVVRPQVJSQU5HRQogICAgICAgICAgRU5ECiAgICAgICAgICBNRU5VSVRFTSAiT3BzdGlsIGlrb25lciIsICAgICBGQ0lETV9TSFZJRVdfU05BUFRPR1JJRAogICAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgICBNRU5VSVRFTSAiT3BkYXRlciIsICAgICAgICAgICBGQ0lETV9TSFZJRVdfUkVGUkVTSAogICAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgICBNRU5VSVRFTSAiSW5kc+Z0IiwgICAgICAgICAgICBGQ0lETV9TSFZJRVdfSU5TRVJUCiAgICAgICAgICBNRU5VSVRFTSAiSW5kc+Z0IHNvbSBnZW52ZWoiLCBGQ0lETV9TSFZJRVdfSU5TRVJUTElOSwogICAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgICBQT1BVUCAiTmV3IgogICAgICAgICAgQkVHSU4KICAgICAgICAgICAgTUVOVUlURU0gIk55ICZmb2xkZXIiLCAgICAgIEZDSURNX1NIVklFV19ORVdGT0xERVIKICAgICAgICAgICAgTUVOVUlURU0gIk55ICZnZW52ZWoiLCAgICAgIEZDSURNX1NIVklFV19ORVdMSU5LCiAgICAgICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgICAgRU5ECiAgICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICAgIE1FTlVJVEVNICJFZ2Vuc2thYmVyIiwgICAgICAgIEZDSURNX1NIVklFV19QUk9QRVJUSUVTCiAgICAgICAgRU5ECkVORAoKLyoKIHNoZWxsdmlldyBpdGVtIG1lbnUKKi8KTUVOVV9TSFZfRklMRSBNRU5VIERJU0NBUkRBQkxFCkJFR0lOCglQT1BVUCAiIgoJQkVHSU4KCSAgTUVOVUlURU0gIiZW5mxnIgkJRkNJRE1fU0hWSUVXX09QRU4KCSAgTUVOVUlURU0gIlUmZGZvcnNrIiwJCUZDSURNX1NIVklFV19FWFBMT1JFCgkgIE1FTlVJVEVNICImxWJlbiIsCQlGQ0lETV9TSFZJRVdfT1BFTgoJICBNRU5VSVRFTSBTRVBBUkFUT1IKCSAgTUVOVUlURU0gIksmbGlwIiwJCUZDSURNX1NIVklFV19DVVQKCSAgTUVOVUlURU0gIiZLb3BpZXIiLAkJRkNJRE1fU0hWSUVXX0NPUFkKCSAgTUVOVUlURU0gU0VQQVJBVE9SCgkgIE1FTlVJVEVNICJPcHJldCAmZ2VudmVqIiwJRkNJRE1fU0hWSUVXX0NSRUFURUxJTksKCSAgTUVOVUlURU0gIiZTbGV0IiwJCUZDSURNX1NIVklFV19ERUxFVEUKCSAgTUVOVUlURU0gIiZPbWT4YiIsCQlGQ0lETV9TSFZJRVdfUkVOQU1FCgkgIE1FTlVJVEVNIFNFUEFSQVRPUgoJICBNRU5VSVRFTSAiJkVnZW5za2FiZXIiLAlGQ0lETV9TSFZJRVdfUFJPUEVSVElFUwoJRU5ECkVORAoKTUVOVV9DUEFORUwgTUVOVQpCRUdJTgogICAgUE9QVVAgIiZGaWxlIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiRSZ4aXQiLCBJRE1fQ1BBTkVMX0VYSVQKICAgIEVORAoKICAgIFBPUFVQICImVmlldyIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIiZTdG9yZSBJa29uZXIiLCBGQ0lETV9TSFZJRVdfQklHSUNPTgogICAgICAgIE1FTlVJVEVNICJTJm3lIElrb25lciIsIEZDSURNX1NIVklFV19TTUFMTElDT04KICAgICAgICBNRU5VSVRFTSAiJkxpc3RlIiwgRkNJRE1fU0hWSUVXX0xJU1RWSUVXCiAgICAgICAgTUVOVUlURU0gIiZEZXRhbGplciIsIEZDSURNX1NIVklFV19SRVBPUlRWSUVXCiAgICBFTkQKCiAgICBQT1BVUCAiJkhlbHAiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICImQWJvdXQgQ29udHJvbCBQYW5lbC4uLiIsIElETV9DUEFORUxfQUJPVVQKICAgIEVORApFTkQKClNIQlJTRk9SRk9MREVSX01TR0JPWCBESUFMT0cgTE9BRE9OQ0FMTCBNT1ZFQUJMRSBESVNDQVJEQUJMRSAxNSwgNDAsIDE4OCwgMTkyClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVSB8IERTX01PREFMRlJBTUUgfCBEU19TRVRGT05UIHwgRFNfM0RMT09LCkNBUFRJT04gIlbmbGcgZm9sZGVyIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCnsKIERFRlBVU0hCVVRUT04gIk9LIiwgMSwgODAsIDE3NiwgNTAsIDEyLCBCU19ERUZQVVNIQlVUVE9OIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICJBbm51bGxlciIsIDIsIDEzNCwgMTc2LCA1MCwgMTIsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogTFRFWFQgIiIsIElERF9USVRMRSwgNCwgNCwgMTgwLCAxMgogTFRFWFQgIiIsIElERF9TVEFUVVMsIDQsIDI1LCAxODAsIDEyCiBDT05UUk9MICIiLCBJRERfVFJFRVZJRVcsICJTeXNUcmVlVmlldzMyIiwKICAgICAgICBUVlNfSEFTQlVUVE9OUyB8IFRWU19IQVNMSU5FUyB8IFRWU19MSU5FU0FUUk9PVCB8CiAgICAgICAgV1NfQk9SREVSIHwgV1NfVEFCU1RPUCwKICAgICAgICA0LCA0MCwgMTgwLCAxMjAKfQoKU0hORVdCUlNGT1JGT0xERVJfTVNHQk9YIERJQUxPRyBMT0FET05DQUxMIE1PVkVBQkxFIERJU0NBUkRBQkxFIDE1LCA0MCwgMjE4LCAxOTYKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VIHwgV1NfU0laRUJPWCB8IERTX01PREFMRlJBTUUgfCBEU19TRVRGT05UIHwgRFNfM0RMT09LCkNBUFRJT04gIlbmbGcgRm9sZGVyIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCnsKIExURVhUICIiLCBJRERfVElUTEUsIDEwLCA4LCAxOTgsIDI0CiBMVEVYVCAiIiwgSUREX1NUQVRVUywgMTAsIDI1LCAxOTgsIDEyCiBMVEVYVCAiRm9sZGVyOiIsIElERF9GT0xERVIsIDEwLCAxNTYsIDQwLCAxMgogQ09OVFJPTCAiIiwgSUREX1RSRUVWSUVXLCAiU3lzVHJlZVZpZXczMiIsCiAgICAgICAgVFZTX0hBU0JVVFRPTlMgfCBUVlNfSEFTTElORVMgfCBUVlNfTElORVNBVFJPT1QgfAogICAgICAgIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AsCiAgICAgICAgMTIsIDM4LCAxOTQsIDEwNQogRURJVFRFWFQgSUREX0ZPTERFUlRFWFQsIDQ2LCAxNTAsIDE2MCwgMTQsIFdTX0JPUkRFUiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiJkxhdiBueSBmb2xkZXIiLCBJRERfTUFLRU5FV0ZPTERFUiwgMTIsIDE3NCwgNzAsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIERFRlBVU0hCVVRUT04gIk9LIiwgSURPSywgMTAyLCAxNzQsIDUwLCAxNCwgQlNfREVGUFVTSEJVVFRPTiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiQW5udWxsZXIiLCBJRENBTkNFTCwgMTU2LCAxNzQsIDUwLCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCn0KClNIRUxMX1lFU1RPQUxMX01TR0JPWCBESUFMT0cgMjAwLCAxMDAsIDI4MCwgOTAKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfVklTSUJMRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIk1lc3NhZ2UiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKewogICAgREVGUFVTSEJVVFRPTiAiJkphIiwgSURZRVMsIDM0LCA2OSwgNTMsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKICAgIFBVU0hCVVRUT04gIkphIHRvICZhbHQiLCBJRERfWUVTVE9BTEwsIDkyLCA2OSwgNjUsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKICAgIFBVU0hCVVRUT04gIiZOZWoiLCBJRE5PLCAxNjIsIDY5LCA1MywgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogICAgUFVTSEJVVFRPTiAiJkFubnVsbGVyIiwgSURDQU5DRUwsIDIyMCwgNjksIDUzLCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiAgICBJQ09OICIiLCBJRERfSUNPTiwgMTAsIDEwLCAxNiwgMTYKICAgIExURVhUICIiLCBJRERfTUVTU0FHRSwgNDAsIDEwLCAyMzgsIDUyLCAwCn0KClNIRUxMX0FCT1VUX01TR0JPWCBESUFMT0cgTE9BRE9OQ0FMTCBNT1ZFQUJMRSBESVNDQVJEQUJMRSAxNSwgNDAsIDIyMCwgMTUyClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX1ZJU0lCTEUgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJPbSAlcyIKRk9OVCAxMCwgIk1TIFNoZWxsIERsZyIKewogREVGUFVTSEJVVFRPTiAiT0siLCBJRE9LLCAxNTMsIDEzMywgNjAsIDEyLCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICJXaW5lICZsaWNlbnMuLi4iLCBJRENfQUJPVVRfTElDRU5TRSwgMTUzLCAxMTMsIDYwLCAxMiwgV1NfVEFCU1RPUAogTElTVEJPWCBJRENfQUJPVVRfTElTVEJPWCwgOCwgNjUsIDEzNywgODIsIExCU19OT1RJRlkgfCBXU19WU0NST0xMIHwgV1NfQk9SREVSCiBJQ09OICIiLCBzdGMxLCAxMCwgMTAsIDMwLCAzMAogTFRFWFQgIiIsIElEQ19BQk9VVF9TVEFUSUNfVEVYVDEsIDQyLCAxMCwgMTcwLCAxMAogTFRFWFQgIiIsIElEQ19BQk9VVF9TVEFUSUNfVEVYVDIsIDQyLCAyMiwgMTcwLCAxMAogTFRFWFQgIkv4cmVyIHDlICVzIiwgSURDX0FCT1VUX1NUQVRJQ19URVhUMywgNDIsIDM0LCAxNzAsIDEwCiBMVEVYVCAiV2luZSBoYXZkZSBpa2tlIHbmcmV0IG11bGlnIHVkZW4gaGrmbHAgZnJhIGRpc3NlIHBlcnNvbmVyOiIsIElEQ19BQk9VVF9XSU5FX1RFWFQsIDgsIDU0LCAyMDQsIDEwCn0KClNIRUxMX1JVTl9ETEcgRElBTE9HIExPQURPTkNBTEwgTU9WRUFCTEUgRElTQ0FSREFCTEUgMCwgMCwgMjI3LCA5NQpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19WSVNJQkxFIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCnsKIElDT04gIiIsIDEyMjk3LCA3LCAxMSwgMTgsIDIwLCBXU19WSVNJQkxFCiBMVEVYVCAiU2tyaXYgbmF2bmV0IHDlIGV0IFByb2dyYW0sIE1hcHBlLCBEb2N1bWVudCBlbGxlciBJbnRlcm5ldCBSZXNzb3VyY2UsIGZvciBhdCBm5SBXaW5lIHRpbCBhdCDlYm5lIGRldC4iLCAxMjI4OSwgMzYsIDExLCAxODIsIDE4CiBMVEVYVCAiJsViZW46IiwgMTIzMDUsIDcsIDM5LCAyNCwgMTAKIENPTlRST0wgIiIsIDEyMjk4LCAiQ09NQk9CT1giLCBXU19UQUJTVE9QIHwgV1NfR1JPVVAgfCBXU19WU0NST0xMIHwgV1NfVklTSUJMRSB8IENCU19ESVNBQkxFTk9TQ1JPTEwgfCBDQlNfQVVUT0hTQ1JPTEwgfCBDQlNfRFJPUERPV04sIDM2LCAzNywgMTgzLCAxMDAKIERFRlBVU0hCVVRUT04gIk9LIiwgSURPSywgNjIsIDYzLCA1MCwgMTQsIFdTX1RBQlNUT1AKIFBVU0hCVVRUT04gIkFubnVsbGVyIiwgSURDQU5DRUwsIDExNiwgNjMsIDUwLCAxNCwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiJkdlbm5lbXNlLi4uIiwgMTIyODgsIDE3MCwgNjMsIDUwLCAxNCwgV1NfVEFCU1RPUAp9CgpTVFJJTkdUQUJMRQp7CiAgICAgICAgLyogY29sdW1ucyBpbiB0aGUgc2hlbGx2aWV3ICovCiAgICAgICAgSURTX1NIVl9DT0xVTU4xICAgICAgICAgIkZpbCIKICAgICAgICBJRFNfU0hWX0NPTFVNTjIgICAgICAgICAiU3T4cnJlbHNlIgogICAgICAgIElEU19TSFZfQ09MVU1OMyAgICAgICAgICJUeXBlIgogICAgICAgIElEU19TSFZfQ09MVU1ONCAgICAgICAgICJNb2RpZmljZXJldCIKICAgICAgICBJRFNfU0hWX0NPTFVNTjUgICAgICAgICAiQXR0cmlidXRlciIKICAgICAgICBJRFNfU0hWX0NPTFVNTjYgICAgICAgICAiU3T4cnJlbHNlIgogICAgICAgIElEU19TSFZfQ09MVU1ONyAgICAgICAgICJTdPhycmVsc2UgbGVkaWciCiAgICAgICAgSURTX1NIVl9DT0xVTU44ICAgICAgICAgIk5hdm4iCiAgICAgICAgSURTX1NIVl9DT0xVTU45ICAgICAgICAgIktvbW1lbnRhcmUiCiAgICAgICAgSURTX1NIVl9DT0xVTU4xMCAgICAgICAgIkVqZXIiCiAgICAgICAgSURTX1NIVl9DT0xVTU4xMSAgICAgICAgIkdydXBwZSIKICAgICAgICBJRFNfU0hWX0NPTFVNTl9ERUxGUk9NICAiT3JpZ2luYWwgc3RlZCIKICAgICAgICBJRFNfU0hWX0NPTFVNTl9ERUxEQVRFICAiRGF0byBzbGV0dGV0IgoKICAgICAgICAvKiBzcGVjaWFsIGZvbGRlcnMgKi8KICAgICAgICBJRFNfREVTS1RPUCAgICAgICAgICAgICAiU2tyaXZlYm9yZCIKICAgICAgICBJRFNfTVlDT01QVVRFUiAgICAgICAgICAiTWluIENvbXB1dGVyIgogICAgICAgIElEU19SRUNZQ0xFQklOX0ZPTERFUl9OQU1FICJTa3JhbGRlc3BhbmQiCglJRFNfQ09OVFJPTFBBTkVMCSJDb250cm9sIFBhbmVsIgoKICAgICAgICAvKiBjb250ZXh0IG1lbnVzICovCiAgICAgICAgSURTX1ZJRVdfTEFSR0UgICAgICAgICAgIlN0b3JlIElrb25lciIKICAgICAgICBJRFNfVklFV19TTUFMTCAgICAgICAgICAiUyZt5SBJa29uZXIiCiAgICAgICAgSURTX1ZJRVdfTElTVCAgICAgICAgICAgIiZMaXN0ZSIKICAgICAgICBJRFNfVklFV19ERVRBSUxTICAgICAgICAiJkRldGFsamVyIgogICAgICAgIElEU19TRUxFQ1QgICAgICAgICAgICAgICJW5mxnIgogICAgICAgIElEU19PUEVOICAgICAgICAgICAgICAgICLFYmVuIgoKICAgICAgICBJRFNfQ1JFQVRFRk9MREVSX0RFTklFRCAiS2FuIGlra2UgbGF2ZSBueSBmb2xkZXI6IEluZ2VuIHJldHRpZ2hlZGVyLiIKICAgICAgICBJRFNfQ1JFQVRFRk9MREVSX0NBUFRJT04gIkVycm9yIGR1cmluZyBjcmVhdGlvbiBvZiBhIG5ldyBmb2xkZXIiCiAgICAgICAgSURTX0RFTEVURUlURU1fQ0FQVElPTiAiQ29uZmlybSBmaWxlIGRlbGV0aW9uIgogICAgICAgIElEU19ERUxFVEVGT0xERVJfQ0FQVElPTiAiQ29uZmlybSBmb2xkZXIgZGVsZXRpb24iCiAgICAgICAgSURTX0RFTEVURUlURU1fVEVYVCAiRXIgZHUgc2lra2VyIHDlIGF0IGR1IHZpbCBzbGV0dGUgJyUxJz8iCiAgICAgICAgSURTX0RFTEVURU1VTFRJUExFX1RFWFQgIkVyIGR1IHNpa2tlciBw5SBhdCBkdSB2aWwgc2xldHRlIGRpc3NlICUxIGZpbGVyPyIKICAgICAgICBJRFNfREVMRVRFU0VMRUNURURfVEVYVCAiRXIgZHUgc2lra2VyIHDlIGF0IGR1IHZpbCBzbGV0dGUgZGUgbWFya2VkZSBmaWxlcj8iCiAgICAgICAgSURTX1RSQVNISVRFTV9URVhUICJFciBkdSBzaWtrZXIgcOUgYXQgZHUgdmlsIHNtaWRlICclMScgaSBza3JhbGRlc3BhbmRlbj8iCiAgICAgICAgSURTX1RSQVNIRk9MREVSX1RFWFQgIkVyIGR1IHNpa2tlciBw5SBhdCBkdSB2aWwgc21pZGUgJyUxJyBvZyBhbCBkZW5zIGluZGhvbGQgbmVkIGkgc2tyYWxkZXNwYW5kZW4/IgogICAgICAgIElEU19UUkFTSE1VTFRJUExFX1RFWFQgIkVyIGR1IHNpa2tlciBw5SBhdCBkdSB2aWwgc21pZGUgZGlzc2UgJTEgZmlsZXIgbmVkIGkgc2tyYWxkZXNwYW5kZW4/IgogICAgICAgIElEU19DQU5UVFJBU0hfVEVYVCAiZmlsZW4gJyUxJyBrYW4gaWtrZSBzbWlkZXMgaSBza3JhbGRlc3BhbmRlbi4gVmlsIGR1IHNsZXR0ZSBkZW4gaXN0ZWRldCBmb3I/IgogICAgICAgIElEU19PVkVSV1JJVEVGSUxFX1RFWFQgIkZvbGRlcmVuIGhhciBhbGxlcmVkZSBlbiBmaWwga2FsZHQgJyUxJy5cblxuVmlsIGR1IG92ZXJza3JpdmUgZGVuPyIKICAgICAgICBJRFNfT1ZFUldSSVRFRklMRV9DQVBUSU9OICJDb25maXJtIGZpbGUgb3ZlcndyaXRlIgogICAgICAgIElEU19PVkVSV1JJVEVGT0xERVJfVEVYVCAiRGVubmUgZm9sZGVyIGhhciBhbGxlcmVkZSBlbiBmb2xkZXIgbWVkIG5hdm5ldCAnJTEnLlxuXG4iXAogICAgICAgICAgICAiSHZpcyBmaWxlcm5lIGkgZGVzdGluYXRpb24gZm9sZGVyZW4gaGFyIGRlIHNhbW1lIG5hdm5lIHNvbSBmaWxlcm5lIGkgZGVuXG4iXAogICAgICAgICAgICAibWFya2VyZWRlIGZvbGRlciB2aWwgZGUgYmxpdmUgb3ZlcnNrcmV2ZXQuIFZpbCBkdSBzdGFkaWcgcnlra2UgZWxsZXIga29waWVyZVxuIlwKICAgICAgICAgICAgImRlbm5lIGZvbGRlcj8iCgogICAgICAgIC8qIG1lc3NhZ2UgYm94IHN0cmluZ3MgKi8KICAgICAgICBJRFNfUkVTVEFSVF9USVRMRSAgICAgICAiR2Vuc3RhcnQiCiAgICAgICAgSURTX1JFU1RBUlRfUFJPTVBUICAgICAgIlZpbCBkdSBzaW11bGVyZSBlbiBnZW5zdGFydCBhZiBXaW5kb3dzPyIKICAgICAgICBJRFNfU0hVVERPV05fVElUTEUgICAgICAiTHVrIG5lZCIKICAgICAgICBJRFNfU0hVVERPV05fUFJPTVBUICAgICAiVmlsIGR1IGx1a2tlIGRpbiBXaW5lIHNlc3Npb24/IgoKICAgICAgICAvKiBzaGVsbCBmb2xkZXIgcGF0aCBkZWZhdWx0IHZhbHVlcyAqLwogICAgICAgIElEU19QUk9HUkFNUyAgICAgICAgICAgICAgICAiU3RhcnQgTWVudVxcUHJvZ3JhbW1lciIKICAgICAgICBJRFNfUEVSU09OQUwgICAgICAgICAgICAgICAgIk1pbmUgRG9rdW1lbnRlciIKICAgICAgICBJRFNfRkFWT1JJVEVTICAgICAgICAgICAgICAgIkZhdm9yaXRlciIKICAgICAgICBJRFNfU1RBUlRVUCAgICAgICAgICAgICAgICAgIlN0YXJ0IE1lbnVcXFByb2dyYW1tZXJcXFN0YXJ0IgogICAgICAgIElEU19SRUNFTlQgICAgICAgICAgICAgICAgICAiUmVjZW50IgogICAgICAgIElEU19TRU5EVE8gICAgICAgICAgICAgICAgICAiU2VuZFRvIgogICAgICAgIElEU19TVEFSVE1FTlUgICAgICAgICAgICAgICAiU3RhcnQgTWVudSIKICAgICAgICBJRFNfTVlNVVNJQyAgICAgICAgICAgICAgICAgIk1pbiBNdXNpayIKICAgICAgICBJRFNfTVlWSURFTyAgICAgICAgICAgICAgICAgIk1pbmUgRmlsbSIKICAgICAgICBJRFNfREVTS1RPUERJUkVDVE9SWSAgICAgICAgIlNrcml2ZWJvcmQiCiAgICAgICAgSURTX05FVEhPT0QgICAgICAgICAgICAgICAgICJOZXRIb29kIgogICAgICAgIElEU19URU1QTEFURVMgICAgICAgICAgICAgICAiU2thYmVsb25lciIKICAgICAgICBJRFNfQVBQREFUQSAgICAgICAgICAgICAgICAgIlByb2dyYW1kYXRhIgogICAgICAgIElEU19QUklOVEhPT0QgICAgICAgICAgICAgICAiUHJpbnRIb29kIgogICAgICAgIElEU19MT0NBTF9BUFBEQVRBICAgICAgICAgICAiTG9rYWxlIGluZHN0aWxsaW5nZXJcXEFwcGxpY2F0aW9uIERhdGEiCiAgICAgICAgSURTX0lOVEVSTkVUX0NBQ0hFICAgICAgICAgICJMb2thbGUgaW5kc3RpbGxpbmdlclxcVGVtcG9yYXJ5IEludGVybmV0IEZpbGVzIgogICAgICAgIElEU19DT09LSUVTICAgICAgICAgICAgICAgICAiQ29va2llcyIKICAgICAgICBJRFNfSElTVE9SWSAgICAgICAgICAgICAgICAgIkxva2FsZSBpbmRzdGlsbGluZ2VyXFxIaXN0b3J5IgogICAgICAgIElEU19QUk9HUkFNX0ZJTEVTICAgICAgICAgICAiUHJvZ3JhbSBGaWxlcyIKICAgICAgICBJRFNfTVlQSUNUVVJFUyAgICAgICAgICAgICAgIk15IFBpY3R1cmVzIgogICAgICAgIElEU19QUk9HUkFNX0ZJTEVTX0NPTU1PTiAgICAiUHJvZ3JhbW1lclxcQ29tbW9uIEZpbGVzIgogICAgICAgIElEU19DT01NT05fRE9DVU1FTlRTICAgICAgICAiRG9jdW1lbnRlciIKICAgICAgICBJRFNfQURNSU5UT09MUyAgICAgICAgICAgICAgIlN0YXJ0IE1lbnVcXFByb2dyYW1zXFxBZG1pbmlzdHJhdGl2ZSBUb29scyIKICAgICAgICBJRFNfQ09NTU9OX01VU0lDICAgICAgICAgICAgIkRva3VtZW50ZXJcXE1pbiBNdXNpayIKICAgICAgICBJRFNfQ09NTU9OX1BJQ1RVUkVTICAgICAgICAgIkRva3VtZW50ZXJcXE1pbmUgQmlsbGVkZXIiCiAgICAgICAgSURTX0NPTU1PTl9WSURFTyAgICAgICAgICAgICJEb2t1bWVudGVyXFxNaW5lIEZpbG0iCiAgICAgICAgSURTX0NEQlVSTl9BUkVBICAgICAgICAgICAgICJMb2thbGUgaW5kc3RpbGxpbmdlclxcQXBwbGljYXRpb24gRGF0YVxcTWljcm9zb2Z0XFxDRCBCdXJuaW5nIgoKICAgICAgICBJRFNfTkVXRk9MREVSICAgICAgICAgICAiTnkgRm9sZGVyIgoKICAgICAgICBJRFNfQ1BBTkVMX1RJVExFICAgICAgICAgICAgIldpbmUgQ29udHJvbCBQYW5lbCIKICAgICAgICBJRFNfQ1BBTkVMX05BTUUgICAgICAgICAgICAgIk5hbWUiCiAgICAgICAgSURTX0NQQU5FTF9ERVNDUklQVElPTiAgICAgICJEZXNjcmlwdGlvbiIKfQoKU1RSSU5HVEFCTEUKewpJRFNfTElDRU5TRV9DQVBUSU9OLCAgICAgICAgICAgICJMaWNlbnNiZXRpbmdlbHNlciIKSURTX0xJQ0VOU0UsCiJXaW5lIGVyIGZyaSBzb2Z0d2FyZTsgZHUgbeUgZGlzdHJpYnVlcmUgZGV0IG9nL2VsbGVyIFwK5m5kcmUgZGV0IGkgaGVuaG9sZCB0aWwgdmlsa+VyZW5lIGkgq0dOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgXApMaWNlbnNluywgdWRnaXZldCBhZiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlbnRlbiBcCnZlcnNpb24gMi4xIGFmIExpY2Vuc2VuLCBlbGxlciAoaHZpcyBkdSD4bnNrZXIgZGV0KSBlbiBueWVyZSB2ZXJzaW9uLlxuXG5cCldpbmUgdWRnaXZlcyBpIGjlYiBvbSBhdCBkZXQgZXIgbnl0dGlndCwgXAptZW4gVURFTiBFTkhWRVIgR0FSQU5USTsgdWRlbiBlbmdhbmcgZGVuIGFudHlkZWRlIGdhcmFudGkgb20gXApIQU5ERUxTRUdORVRIRUQgZWxsZXIgRUdORVRIRUQgRk9SIEVUIFNQRUNJRUxUIEZPUk3FTC4gIFNlIKtHTlUgXApMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZbsgZm9yIGZsZXJlIGRldGFsamVyLlxuXG5cCkR1IHNrYWwgaGF2ZSBtb2R0YWdldCBldCBla3NlbXBsYXIgYWYgq0dOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgXApMaWNlbnNluyBzYW1tZW4gbWVkIGRldHRlIHByb2dyYW07IGh2aXMgaWtrZSwgc2tyaXYgdGlsOiB0aGUgRnJlZSBTb2Z0d2FyZSBcCkZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuIgp9Cg==