LyoKICogUHJvZ3JhbSBNYW5hZ2VyIChEdXRjaCByZXNvdXJjZXMpCiAqCiAqIENvcHlyaWdodCAyMDAzIEhhbnMgTGVpZGVra2VyCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQogKi8KCi8qIE1lbnUgKi8KCk1BSU5fTUVOVSBNRU5VIExBTkdVQUdFIExBTkdfRFVUQ0gsIFNVQkxBTkdfREVGQVVMVAp7CiBQT1BVUCAiJkJlc3RhbmQiIHsKICAgTUVOVUlURU0gIiZOaWV1dy4uLiIsICAgICAgICAgICAgICAgICAgICBQTV9ORVcKICAgTUVOVUlURU0gIiZPcGVuZW5cdEVudGVyIiwgICAgICAgICAgICAgICBQTV9PUEVOCiAgIE1FTlVJVEVNICJWZSZycGxhYXRzZW4uLi5cdEY3IiwgICAgICAgICAgUE1fTU9WRSwgICAgICBHUkFZRUQKICAgTUVOVUlURU0gIiZLb3Bp63Jlbi4uLlx0RjgiLCAgICAgICAgICAgICBQTV9DT1BZLCAgICAgIEdSQVlFRAogICBNRU5VSVRFTSAiJlZlcndpamRlcmVuXHRFbnRmIiwgICAgICAgICAgIFBNX0RFTEVURQogICBNRU5VSVRFTSAiJkVpZ2Vuc2NoYXBwZW4uLi5cdEFsdCtFbnRlciIsIFBNX0FUVFJJQlVURVMKICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgIE1FTlVJVEVNICImVWl0dm9lcmVuLi4uIiwgICAgICAgICAgICAgICAgUE1fRVhFQ1VURQogICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgTUVOVUlURU0gIiZBZnNsdWl0ZW4uLi4iLCAgICAgICAgICAgICAgICBQTV9FWElUCiB9CiBQT1BVUCAiJk9wdGllcyIgewogICBNRU5VSVRFTSAiJkF1dG9tYXRpc2NoIHJhbmdzY2hpa2tlbiIsICAgICAgICAgICBQTV9BVVRPX0FSUkFOR0UKICAgTUVOVUlURU0gIiZHZW1pbmltYWxpc2VlcmQgdWl0dm9lcmVuIiwgICAgICAgICAgUE1fTUlOX09OX1JVTgogICBNRU5VSVRFTSAiJkluc3RlbGxpbmdlbiBvcHNsYWFuIGJpaiBhZnNsdWl0ZW4iLCBQTV9TQVZFX1NFVFRJTkdTCiB9CiBQT1BVUCAiJlZlbnN0ZXIiIHsKICAgTUVOVUlURU0gIiZUcmFwc2dld2lqc1x0U2hpZnQrRjUiLCAgUE1fT1ZFUkxBUAogICBNRU5VSVRFTSAiJk5hYXN0IGVsa2Fhclx0U2hpZnQrRjQiLCBQTV9TSURFX0JZX1NJREUKICAgTUVOVUlURU0gIiZQaWN0b2dyYW1tZW4gc2NoaWtrZW4iLCAgUE1fQVJSQU5HRQogfQogClBPUFVQICImSGVscCIgewogICBNRU5VSVRFTSAiSGVscC0mb25kZXJ3ZXJwZW4iLCBQTV9DT05URU5UUwogICBNRU5VSVRFTSAiJlpvZWtlbi4uLiIsICAgICAgICBQTV9TRUFSQ0gKICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgIE1FTlVJVEVNICImSHVscCBiaWogSGVscCIsICAgIFBNX0hFTFBPTkhFTFAKICAgTUVOVUlURU0gIiZJbnN0cnVjdGllIiwgICAgICAgUE1fVFVUT1JJQUwKICAgTUVOVUlURU0gU0VQQVJBVE9SCgogICBQT1BVUCAiJkluZm8uLi4iIHsKICAgICBNRU5VSVRFTSAiJkxpY2VudGllIiwgICAgICBQTV9MSUNFTlNFCiAgICAgTUVOVUlURU0gIiZHRUVOIEdBUkFOVElFIiwgUE1fTk9fV0FSUkFOVFkKICAgICBNRU5VSVRFTSAiJk92ZXIgV0lORSIsICAgICBQTV9BQk9VVF9XSU5FCiAgIH0KIH0KfQoKLyogRGlhbG9nIGBOZXcnICovCgpESUFMT0dfTkVXIERJQUxPRyAwLCAwLCAxNzAsIDY1CkxBTkdVQUdFIExBTkdfRFVUQ0gsIFNVQkxBTkdfREVGQVVMVApTVFlMRSBEU19NT0RBTEZSQU1FCkNBUFRJT04gIk5pZXV3Igp7ClJBRElPQlVUVE9OICAgIiIsICAgICAgICAgICAgICAgIFBNX05FV19HUk9VUCwgICAgMTAsIDE1LCAgMTAsIDE1CkxURVhUICAgICAgICAgIlByJm9ncmFtbWFncm9lcCIsIFBNX05FV19HUk9VUCwgICAgMjAsIDE4LCAgODAsIDE1ClJBRElPQlVUVE9OICAgIiIsICAgICAgICAgICAgICAgIFBNX05FV19QUk9HUkFNLCAgMTAsIDM1LCAgMTAsIDE1CkxURVhUICAgICAgICAgIiZQcm9ncmFtbWEiLCAgICAgIFBNX05FV19QUk9HUkFNLCAgMjAsIDM4LCAgODAsIDE1CkRFRlBVU0hCVVRUT04gIk9LIiwgICAgICAgICAgICAgIElET0ssICAgICAgICAgICAxMDUsICA1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIkFubnVsZXJlbiIsICAgICAgIElEQ0FOQ0VMLCAgICAgICAxMDUsIDI1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIiZIZWxwIiwgICAgICAgICAgIFBNX0hFTFAsICAgICAgICAxMDUsIDQ1LCAgNjAsIDE1LCBXU19UQUJTVE9QCn0KCi8qIERpYWxvZyBgTW92ZScgKi8KCkRJQUxPR19NT1ZFIERJQUxPRyAwLCAwLCAyNTAsIDY1CkxBTkdVQUdFIExBTkdfRFVUQ0gsIFNVQkxBTkdfREVGQVVMVApTVFlMRSBEU19NT0RBTEZSQU1FCkNBUFRJT04gIlByb2dyYW1tYSB2ZXJwbGFhdHNlbiIKewpMVEVYVCAgICAgICAgICJWZXJwbGFhdHMgcHJvZ3JhbW1hOiIsIElESUdOT1JFLCAgICAgICAgICAgIDUsICA1LCAgOTAsIDE1CkxURVhUICAgICAgICAgIiIsICAgICAgICAgICAgICAgICAgICAgUE1fUFJPR1JBTSwgICAgICAgICA5NSwgIDUsICA5MCwgMTUKTFRFWFQgICAgICAgICAiVmFuIGdyb2VwOiIsICAgICAgICAgICBJRElHTk9SRSwgICAgICAgICAgICA1LCAxMywgIDkwLCAxNQpMVEVYVCAgICAgICAgICIiLCAgICAgICAgICAgICAgICAgICAgIFBNX0ZST01fR1JPVVAsICAgICAgOTUsIDEzLCAgOTAsIDE1CkxURVhUICAgICAgICAgIiZOYWFyIGdyb2VwOiIsICAgICAgICAgUE1fVE9fR1JPVVBfVFhULCAgICAgNSwgMjgsIDE0MCwgMTUKQ09NQk9CT1ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTV9UT19HUk9VUCwgICAgICAgICA1LCAzOCwgMTQwLCA1MCwgV1NfVEFCU1RPUCB8IENCU19EUk9QRE9XTkxJU1QKREVGUFVTSEJVVFRPTiAiT0siLCAgICAgICAgICAgICAgICAgICBJRE9LLCAgICAgICAgICAgICAgMTg1LCAgNSwgIDYwLCAxNSwgV1NfVEFCU1RPUApQVVNIQlVUVE9OICAgICJBbm51bGVyZW4iLCAgICAgICAgICAgIElEQ0FOQ0VMLCAgICAgICAgICAxODUsIDI1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIiZIZWxwIiwgICAgICAgICAgICAgICAgUE1fSEVMUCwgICAgICAgICAgIDE4NSwgNDUsICA2MCwgMTUsIFdTX1RBQlNUT1AKfQoKLyogRGlhbG9nIGBDb3B5JyAqLwoKRElBTE9HX0NPUFkgRElBTE9HIDAsIDAsIDI1MCwgNjUKTEFOR1VBR0UgTEFOR19EVVRDSCwgU1VCTEFOR19ERUZBVUxUClNUWUxFIERTX01PREFMRlJBTUUKQ0FQVElPTiAiUHJvZ3JhbW1hIGtvcGnrcmVuIgp7CkxURVhUICAgICAgICAgIktvcGnrZXIgcHJvZ3JhbW1hOiIsICAgIElESUdOT1JFLCAgICAgICAgICAgIDUsICA1LCAgOTAsIDE1CkxURVhUICAgICAgICAgIiIsICAgICAgICAgICAgICAgICAgICAgIFBNX1BST0dSQU0sICAgICAgICAgOTUsICA1LCAgOTAsIDE1CkxURVhUICAgICAgICAgIlZhbiBwcm9ncmFtbWFncm9lcDoiLCAgIElESUdOT1JFLCAgICAgICAgICAgIDUsIDEzLCAgOTAsIDE1CkxURVhUICAgICAgICAgIiIsICAgICAgICAgICAgICAgICAgICAgIFBNX0ZST01fR1JPVVAsICAgICAgOTUsIDEzLCAgOTAsIDE1CkxURVhUICAgICAgICAgIiZOYWFyIHByb2dyYW1tYWdyb2VwOiIsIFBNX1RPX0dST1VQX1RYVCwgICAgIDUsIDI4LCAxNDAsIDE1CkNPTUJPQk9YICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBNX1RPX0dST1VQLCAgICAgICAgIDUsIDM4LCAxNDAsIDUwLCBXU19UQUJTVE9QIHwgQ0JTX0RST1BET1dOTElTVApERUZQVVNIQlVUVE9OICJPSyIsICAgICAgICAgICAgICAgICAgICBJRE9LLCAgICAgICAgICAgICAgMTg1LCAgNSwgIDYwLCAxNSwgV1NfVEFCU1RPUApQVVNIQlVUVE9OICAgICJBbm51bGVyZW4iLCAgICAgICAgICAgICBJRENBTkNFTCwgICAgICAgICAgMTg1LCAyNSwgIDYwLCAxNSwgV1NfVEFCU1RPUApQVVNIQlVUVE9OICAgICImSGVscCIsICAgICAgICAgICAgICAgICBQTV9IRUxQLCAgICAgICAgICAgMTg1LCA0NSwgIDYwLCAxNSwgV1NfVEFCU1RPUAp9CgovKiBEaWFsb2cgYEdyb3VwIGF0dHJpYnV0ZXMnICovCgpESUFMT0dfR1JPVVAgRElBTE9HIDAsIDAsIDIzMCwgNjUKTEFOR1VBR0UgTEFOR19EVVRDSCwgU1VCTEFOR19ERUZBVUxUClNUWUxFIERTX01PREFMRlJBTUUKQ0FQVElPTiAiRWlnZW5zY2hhcHBlbiB2YW4gZGUgcHJvZ3JhbW1hZ3JvZXAiCnsKTFRFWFQgICAgICJCJmVzY2hyaWp2aW5nOiIsIFBNX0RFU0NSSVBUSU9OX1RYVCwgICAwNSwgMTgsICA1MCwgMTAKRURJVFRFWFQgICAgICAgICAgICAgICAgICAgIFBNX0RFU0NSSVBUSU9OLCAgICAgICA2MCwgMTgsICA5MCwgMTUsIFdTX1RBQlNUT1AKTFRFWFQgICAgICImR3JvZXBiZXN0YW5kOiIsIFBNX0ZJTEVfVFhULCAgICAgICAgICAwNSwgMzgsICA1MCwgMTAKRURJVFRFWFQgICAgICAgICAgICAgICAgICAgIFBNX0ZJTEUsICAgICAgICAgICAgICA2MCwgMzgsICA5MCwgMTUsIFdTX1RBQlNUT1AKREVGUFVTSEJVVFRPTiAiT0siLCAgICAgICAgIElET0ssICAgICAgICAgICAgICAgIDE1NSwgIDUsICA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAiQW5udWxlcmVuIiwgIElEQ0FOQ0VMLCAgICAgICAgICAgIDE1NSwgMjUsICA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAiJkhlbHAiLCAgICAgIFBNX0hFTFAsICAgICAgICAgICAgIDE1NSwgNDUsICA2MCwgMTUsIFdTX1RBQlNUT1AKfQoKLyogRGlhbG9nIGBQcm9ncmFtIGF0dHJpYnV0ZXMnICovCgpESUFMT0dfUFJPR1JBTSBESUFMT0cgMCwgMCwgMjUwLCAxMDUKTEFOR1VBR0UgTEFOR19EVVRDSCwgU1VCTEFOR19ERUZBVUxUClNUWUxFIERTX01PREFMRlJBTUUKQ0FQVElPTiAiUHJvZ3JhbW1hLWVpZ2Vuc2NoYXBwZW4iCnsKTFRFWFQgICAgICAgICAiQiZlc2NocmlqdmluZzoiLCAgICAgICAgICAgICBQTV9ERVNDUklQVElPTl9UWFQsICAgMDUsIDEwLCAgNjAsIDEwCkVESVRURVhUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUE1fREVTQ1JJUFRJT04sICAgICAgIDgwLCAxMCwgIDkwLCAxNSwgV1NfVEFCU1RPUApMVEVYVCAgICAgICAgICImT3BkcmFjaHRyZWdlbDoiLCAgICAgICAgICAgIFBNX0NPTU1BTkRfTElORV9UWFQsICAwNSwgMjUsICA2MCwgMTAKRURJVFRFWFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTV9DT01NQU5EX0xJTkUsICAgICAgODAsIDI1LCAgOTAsIDE1LCBXU19UQUJTVE9QCkxURVhUICAgICAgICAgIldlcmsmbWFwOiIsICAgICAgICAgICAgICAgICAgUE1fRElSRUNUT1JZX1RYVCwgICAgIDA1LCA0MCwgIDYwLCAxMApFRElUVEVYVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBNX0RJUkVDVE9SWSwgICAgICAgICA4MCwgNDAsICA5MCwgMTUsIFdTX1RBQlNUT1AKTFRFWFQgICAgICAgICAiJlNuZWx0b2V0czoiLCAgICAgICAgICAgICAgICBQTV9IT1RfS0VZX1RYVCwgICAgICAgMDUsIDU1LCAgNjAsIDEwCkVESVRURVhUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUE1fSE9UX0tFWSwgICAgICAgICAgIDgwLCA1NSwgIDkwLCAxNSwgV1NfVEFCU1RPUApJQ09OICAgICAgICAgICIiLCAgICAgICAgICAgICAgICAgICAgICAgICAgIFBNX0lDT04sICAgICAgICAgICAgICAyMCwgNzAKQ0hFQ0tCT1ggICAgICAiIiwgICAgICAgICAgICAgICAgICAgICAgICAgICBQTV9TWU1CT0wsICAgICAgICAgICAgODAsIDc1LCAgMTAsIDEwLCBXU19UQUJTVE9QCkxURVhUICAgICAgICAgIiZHZW1pbmltYWxpc2VlcmQgdWl0dm9lcmVuIiwgSURJR05PUkUsICAgICAgICAgICAgIDk1LCA3NSwgIDc1LCAxMApERUZQVVNIQlVUVE9OICJPSyIsICAgICAgICAgICAgICAgICAgICAgICAgIElET0ssICAgICAgICAgICAgICAgIDE4NSwgIDUsICA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAiQW5udWxlcmVuIiwgICAgICAgICAgICAgICAgICBJRENBTkNFTCwgICAgICAgICAgICAxODUsIDI1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIiZCbGFkZXJlbi4uLiIsICAgICAgICAgICAgICAgUE1fQlJPV1NFLCAgICAgICAgICAgMTg1LCA0NSwgIDYwLCAxNSwgV1NfVEFCU1RPUApQVVNIQlVUVE9OICAgICJQaWN0b2dyYW0gJndpanppZ2VuLi4uIiwgICAgIFBNX09USEVSX1NZTUJPTCwgICAgIDE4NSwgNjUsICA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAiJkhlbHAiLCAgICAgICAgICAgICAgICAgICAgICBQTV9IRUxQLCAgICAgICAgICAgICAxODUsIDg1LCAgNjAsIDE1LCBXU19UQUJTVE9QCn0KCi8qIERpYWxvZyBgU3ltYm9sJyAqLwoKRElBTE9HX1NZTUJPTCBESUFMT0cgMCwgMCwgMjAwLCA4NQpMQU5HVUFHRSBMQU5HX0RVVENILCBTVUJMQU5HX0RFRkFVTFQKU1RZTEUgRFNfTU9EQUxGUkFNRQpDQVBUSU9OICJQaWN0b2dyYW0gd2lqemlnZW4iCnsKTFRFWFQgICAgICJCZXN0YW5kcyZuYWFtOiIsICAgICBQTV9JQ09OX0ZJTEVfVFhULCAgICA1LCAxNSwgIDQwLCAxMApFRElUVEVYVCAgICAgICAgICAgICAgICAgICAgICAgIFBNX0lDT05fRklMRSwgICAgICAgNDUsIDE1LCAgODUsIDE1LCBXU19UQUJTVE9QCkxURVhUICAgICAiSHVpJmRpZyBwaWN0b2dyYW06IiwgUE1fU1lNQk9MX0xJU1RfVFhULCAgNSwgMzAsIDEyNSwgMTAKQ09NQk9CT1ggICAgICAgICAgICAgICAgICAgICAgICBQTV9TWU1CT0xfTElTVCwgICAgICA1LCA0MCwgMTI1LCA1MCwKICAgQ0JTX0RST1BET1dOTElTVCB8IENCU19BVVRPSFNDUk9MTCB8IENCU19PV05FUkRSQVdGSVhFRCB8IFdTX1RBQlNUT1AKREVGUFVTSEJVVFRPTiAiT0siLCAgICAgICAgICAgICAgSURPSywgICAgICAgICAgICAgIDEzNSwgIDUsICA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAiQW5udWxlcmVuIiwgICAgICAgSURDQU5DRUwsICAgICAgICAgIDEzNSwgMjUsICA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAiJkJsYWRlcmVuLi4uIiwgICAgUE1fQlJPV1NFLCAgICAgICAgIDEzNSwgNDUsICA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAiJkhlbHAiLCAgICAgICAgICAgUE1fSEVMUCwgICAgICAgICAgIDEzNSwgNjUsICA2MCwgMTUsIFdTX1RBQlNUT1AKfQoKLyogRGlhbG9nIGBFeGVjdXRlJyAqLwoKRElBTE9HX0VYRUNVVEUgRElBTE9HIDAsIDAsIDIwMCwgODUKTEFOR1VBR0UgTEFOR19EVVRDSCwgU1VCTEFOR19ERUZBVUxUClNUWUxFIERTX01PREFMRlJBTUUKQ0FQVElPTiAiUHJvZ3JhbW1hIHVpdHZvZXJlbiIKewpMVEVYVCAgICAgICAgICImT3BkcmFjaHRyZWdlbDoiLCAgICAgICAgICAgICAgICBJRElHTk9SRSwgICAwNSwgMTUsIDEyMCwgMTAKRURJVFRFWFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUE1fQ09NTUFORCwgMDUsIDI1LCAxMjAsIDE1LCBXU19UQUJTVE9QCkNIRUNLQk9YICAgICAgIiIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBNX1NZTUJPTCwgIDA1LCA0NSwgIDEwLCAxMCwgV1NfVEFCU1RPUApMVEVYVCAgICAgICAgICImTWluaW1hbGlzZXJlbiBiaWogaGV0IHN0YXJ0ZW4iLCBJRElHTk9SRSwgICAyMCwgNDUsIDEyMCwgMTAKREVGUFVTSEJVVFRPTiAiT0siLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSURPSywgICAgICAxMzUsICA1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIkFubnVsZXJlbiIsICAgICAgICAgICAgICAgICAgICAgIElEQ0FOQ0VMLCAgMTM1LCAyNSwgIDYwLCAxNSwgV1NfVEFCU1RPUApQVVNIQlVUVE9OICAgICImQmxhZGVyZW4uLi4iLCAgICAgICAgICAgICAgICAgICBQTV9CUk9XU0UsIDEzNSwgNDUsICA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAiJkhlbHAiLCAgICAgICAgICAgICAgICAgICAgICAgICAgUE1fSEVMUCwgICAxMzUsIDY1LCAgNjAsIDE1LCBXU19UQUJTVE9QCn0KCi8qIFN0cmluZ3MgKi8KClNUUklOR1RBQkxFIERJU0NBUkRBQkxFIExBTkdVQUdFIExBTkdfRFVUQ0gsIFNVQkxBTkdfREVGQVVMVAp7CklEU19QUk9HUkFNX01BTkFHRVIsCQkiUHJvZ3JhbW1hYmVoZWVyIgpJRFNfRVJST1IsCQkJIkZPVVQiCklEU19XQVJOSU5HLAkJCSJXQUFSU0NIVVdJTkciCklEU19JTkZPLAkJCSJJbmZvcm1hdGllIgpJRFNfREVMRVRFLAkJCSJWZXJ3aWpkZXJlbiIKSURTX0RFTEVURV9HUk9VUF9zLAkJIldpbHQgdSBncm9lcCBgJXMnIHZlcndpamRlcmVuPyIKSURTX0RFTEVURV9QUk9HUkFNX3MsCQkiV2lsdCB1IHByb2dyYW1tYSBgJXMnIHZlcndpamRlcmVuPyIKSURTX05PVF9JTVBMRU1FTlRFRCwJCSJOaWV0IGdl721wbGVtZW50ZWVyZCIKSURTX0ZJTEVfUkVBRF9FUlJPUl9zLAkJIkZvdXQgYmlqIGhldCBsZXplbiB2YW4gYCVzJy4iCklEU19GSUxFX1dSSVRFX0VSUk9SX3MsCQkiRm91dCBiaWogaGV0IHNjaHJpanZlbiB2YW4gYCVzJy4iCklEU19HUlBGSUxFX1JFQURfRVJST1JfcywJIlwKSGV0IGdyb2Vwc2Jlc3RhbmQgYCVzJyBrYW4gbmlldCB3b3JkZW4gZ2VvcGVuZC5cblwKV2lsdCB1IGhldCBub2dtYWFscyBwcm9iZXJlbj8iCklEU19PVVRfT0ZfTUVNT1JZLAkJIkdlZW4gZ2VoZXVnZW4gYmVzY2hpa2JhYXIuIgpJRFNfV0lOSEVMUF9FUlJPUiwJCSJIZWxwIGlzIG5pZXQgYmVzY2hpa2JhYXIuIgpJRFNfVU5LTk9XTl9GRUFUVVJFX3MsCQkiT25iZWtlbmRlIGVpZ2Vuc2NoYXAgaW4gJXMiCklEU19GSUxFX05PVF9PVkVSV1JJVFRFTl9zLAkiSGV0IGJlc3RhbmQgYCVzJyBiZXN0YWF0IHJlZWRzLiBIZXQgaXMgbmlldCBvdmVyc2NocmV2ZW4uIgpJRFNfU0FWRV9HUk9VUF9BU19zLAkJIkdyb2VwIG9wc2xhYW4gYWxzIGAlcyBvbSBoZXQgb3ZlcnNjaHJpanZlbiB2YW4gb3JpZ2luZWxlIGJlc3RhbmRlbiB0ZSB2b29ya29tZW4uIgpJRFNfTk9fSE9UX0tFWSwJCQkiR2VlbiIKSURTX0FMTF9GSUxFUywJCQkiQWxsZSBiZXN0YW5kZW4gKCouKikiCklEU19QUk9HUkFNUywJCQkiUHJvZ3JhbW1hJ3MiCklEU19MSUJSQVJJRVNfRExMLAkJIlByb2dyYW1tYWJpYmxpb3RoZWVrYmVzdGFuZGVuICgqLmRsbCkiCklEU19TWU1CT0xfRklMRVMsCQkiUGljdG9ncmFtYmVzdGFuZGVuIgpJRFNfU1lNQk9MU19JQ08sCQkiUGljdG9ncmFtbWVuICgqLmljbykiCn0K