LyoKICogUHJvZ3JhbSBNYW5hZ2VyCiAqCiAqIENvcHlyaWdodCAyMDA4IEplbnMgQWxicmV0c2VuIDxqZW5zQGFsYnJldHNlbi5kaz4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBCiAqLwoKTEFOR1VBR0UgTEFOR19EQU5JU0gsIFNVQkxBTkdfREVGQVVMVAoKLyogTWVudSAqLwoKTUFJTl9NRU5VIE1FTlUKewogUE9QVVAgIiZGaWwiIHsKICAgTUVOVUlURU0gIiZOeS4uLiIsICAgICAgICAgICAgICAgICAgUE1fTkVXCiAgIE1FTlVJVEVNICLFYmVuXHRFbnRlciIsICAgICAgICAgICAgIFBNX09QRU4KICAgTUVOVUlURU0gIiZGbHl0Li4uXHRGNyIsICAgICAgICAgICAgUE1fTU9WRSwgICAgICBHUkFZRUQKICAgTUVOVUlURU0gIiZLb3BpZXIuLi5cdEY4IiwgICAgICAgICAgUE1fQ09QWSwgICAgICBHUkFZRUQKICAgTUVOVUlURU0gIiZTbGV0XHRFbnRmIiwgICAgICAgICAgIFBNX0RFTEVURQogICBNRU5VSVRFTSAiJkF0dHJpYnV0dGVyLi4uXHRBbHQrRW50ZXIiLCBQTV9BVFRSSUJVVEVTCiAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICBNRU5VSVRFTSAiSyb4ci4uLiIsICAgICAgICAgICAgICAgICBQTV9FWEVDVVRFCiAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICBNRU5VSVRFTSAiQSZmc2x1dCBXaW5lLi4uIiwgICAgICAgICBQTV9FWElUCiB9CiBQT1BVUCAiJkluZHN0aWxsaW5nZXIiIHsKICAgTUVOVUlURU0gIiZBdXRvIGFycmFuZ+lyIiwgIFBNX0FVVE9fQVJSQU5HRQogICBNRU5VSVRFTSAiJk1pbmlt6XIgdmVkIG9wc3RhcnQiLCAgICBQTV9NSU5fT05fUlVOCiAgIE1FTlVJVEVNICJHZW0g5m5kcmluZ2VyIHZlZCBhZiZzbHV0dGluZyIsIFBNX1NBVkVfU0VUVElOR1MKIH0KIFBPUFVQICImVmluZHVlciIgewogICBNRU5VSVRFTSAiJk92ZXJsYXBwZXRcdFNoaWZ0K0Y1IiwgICAgICAgUE1fT1ZFUkxBUAogICBNRU5VSVRFTSAiJlNpZGUgdmVkIHNpZGVcdFNoaWZ0K0Y0IiwgIFBNX1NJREVfQllfU0lERQogICBNRU5VSVRFTSAiQXJyYW5n6XIgJmlrb25lciIsICAgICAgIFBNX0FSUkFOR0UKIH0KClBPUFVQICImSGrmbHAiIHsKICAgTUVOVUlURU0gIiZJbmRob2xkIiwgICAgICAgICBQTV9DT05URU5UUwogICBNRU5VSVRFTSAiJlP4Zy4uLiIsICAgICAgICAgIFBNX1NFQVJDSAogICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgTUVOVUlURU0gIiZIauZscCB0aWwgaGrmbHAiLCAgICAgUE1fSEVMUE9OSEVMUAogICBNRU5VSVRFTSAiJlZlamxlZG5pbmciLCAgICAgICAgIFBNX1RVVE9SSUFMCiAgIE1FTlVJVEVNIFNFUEFSQVRPUgoKICAgUE9QVVAgIiZJbmZvcm1hdGlvbi4uLiIgewogICAgIE1FTlVJVEVNICImTGljZW5zIiwgICAgICAgIFBNX0xJQ0VOU0UKICAgICBNRU5VSVRFTSAiSSZuZ2VuIEdhcmFudGkiLCAgICBQTV9OT19XQVJSQU5UWQogICAgIE1FTlVJVEVNICImT20gV0lORSIsICAgICBQTV9BQk9VVF9XSU5FCiAgIH0KIH0KfQoKLyogRGlhbG9nIGBOZXcnICovCgpESUFMT0dfTkVXIERJQUxPRyAwLCAwLCAxNzAsIDY1ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIk55Igp7ClJBRElPQlVUVE9OICAgIiIsICAgICAgICAgICAgICAgICBQTV9ORVdfR1JPVVAsICAgIDEwLCAxNSwgIDEwLCAxNQpMVEVYVCAgICAgICAgICJQcm9ncmFtJmdydXBwZSIsICAgUE1fTkVXX0dST1VQLCAgICAyMCwgMTgsICA4MCwgMTUKUkFESU9CVVRUT04gICAiIiwgICAgICAgICAgICAgICAgIFBNX05FV19QUk9HUkFNLCAgMTAsIDM1LCAgMTAsIDE1CkxURVhUICAgICAgICAgIiZQcm9ncmFtIiwgUE1fTkVXX1BST0dSQU0sICAyMCwgMzgsICA4MCwgMTUKREVGUFVTSEJVVFRPTiAiT0siLCAgICAgICAgICBJRE9LLCAgICAgICAgICAgMTA1LCAgNSwgIDYwLCAxNSwgV1NfVEFCU1RPUApQVVNIQlVUVE9OICAgICJBbm51bGxlciIsICAgICAgSURDQU5DRUwsICAgICAgIDEwNSwgMjUsICA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAiJkhq5mxwIiwgICAgICAgIFBNX0hFTFAsICAgICAgICAxMDUsIDQ1LCAgNjAsIDE1LCBXU19UQUJTVE9QCn0KCi8qIERpYWxvZyBgTW92ZScgKi8KCkRJQUxPR19NT1ZFIERJQUxPRyAwLCAwLCAyNTAsIDY1ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIkZseXQgcHJvZ3JhbSIKewpMVEVYVCAgICAgICAgICJGbHl0IHByb2dyYW06IiwgICAgSURJR05PUkUsICAgICAgICAgICAgNSwgIDUsICA5MCwgMTUKTFRFWFQgICAgICAgICAiIiwgICAgICAgICAgICAgICAgICAgICBQTV9QUk9HUkFNLCAgICAgICAgIDk1LCAgNSwgIDkwLCAxNQpMVEVYVCAgICAgICAgICJGcmEgZ3J1cHBlOiIsIElESUdOT1JFLCAgICAgICAgICAgIDUsIDEzLCAgOTAsIDE1CkxURVhUICAgICAgICAgIiIsICAgICAgICAgICAgICAgICAgICAgUE1fRlJPTV9HUk9VUCwgICAgICA5NSwgMTMsICA5MCwgMTUKTFRFWFQgICAgICAgICAiJlRpbCBncnVwcGU6IiwgICBQTV9UT19HUk9VUF9UWFQsICAgICA1LCAyOCwgMTQwLCAxNQpDT01CT0JPWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBNX1RPX0dST1VQLCAgICAgICAgIDUsIDM4LCAxNDAsIDUwLCBXU19UQUJTVE9QIHwgQ0JTX0RST1BET1dOTElTVApERUZQVVNIQlVUVE9OICJPSyIsICAgICAgICAgICAgICBJRE9LLCAgICAgICAgICAgICAgMTg1LCAgNSwgIDYwLCAxNSwgV1NfVEFCU1RPUApQVVNIQlVUVE9OICAgICJBbm51bGxlciIsICAgICAgICAgIElEQ0FOQ0VMLCAgICAgICAgICAxODUsIDI1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIiZIauZscCIsICAgICAgICAgICAgUE1fSEVMUCwgICAgICAgICAgIDE4NSwgNDUsICA2MCwgMTUsIFdTX1RBQlNUT1AKfQoKLyogRGlhbG9nIGBDb3B5JyAqLwoKRElBTE9HX0NPUFkgRElBTE9HIDAsIDAsIDI1MCwgNjUKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiS29waWVyIHByb2dyYW0iCnsKTFRFWFQgICAgICAgICAiS29waWVyIHByb2dyYW06IiwgICAgSURJR05PUkUsICAgICAgICAgICAgNSwgIDUsICA5MCwgMTUKTFRFWFQgICAgICAgICAiIiwgICAgICAgICAgICAgICAgICAgICBQTV9QUk9HUkFNLCAgICAgICAgIDk1LCAgNSwgIDkwLCAxNQpMVEVYVCAgICAgICAgICJGcmEgZ3J1cHBlOiIsIElESUdOT1JFLCAgICAgICAgICAgIDUsIDEzLCAgOTAsIDE1CkxURVhUICAgICAgICAgIiIsICAgICAgICAgICAgICAgICAgICAgUE1fRlJPTV9HUk9VUCwgICAgICA5NSwgMTMsICA5MCwgMTUKTFRFWFQgICAgICAgICAiJlRpbCBncnVwcGU6IiwgICBQTV9UT19HUk9VUF9UWFQsICAgICA1LCAyOCwgMTQwLCAxNQpDT01CT0JPWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBNX1RPX0dST1VQLCAgICAgICAgIDUsIDM4LCAxNDAsIDUwLCBXU19UQUJTVE9QIHwgQ0JTX0RST1BET1dOTElTVApERUZQVVNIQlVUVE9OICJPSyIsICAgICAgICAgICAgICBJRE9LLCAgICAgICAgICAgICAgMTg1LCAgNSwgIDYwLCAxNSwgV1NfVEFCU1RPUApQVVNIQlVUVE9OICAgICJBbm51bGxlciIsICAgICAgICAgIElEQ0FOQ0VMLCAgICAgICAgICAxODUsIDI1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIiZIauZscCIsICAgICAgICAgICAgUE1fSEVMUCwgICAgICAgICAgIDE4NSwgNDUsICA2MCwgMTUsIFdTX1RBQlNUT1AKfQoKLyogRGlhbG9nIGBHcm91cCBhdHRyaWJ1dGVzJyAqLwoKRElBTE9HX0dST1VQIERJQUxPRyAwLCAwLCAyMzAsIDY1ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIlByb2dyYW1ncnVwcGVhdHRyaWJ1dHRlciIKewpMVEVYVCAgICAgIiZCZXNrcml2ZWxzZToiLCBQTV9ERVNDUklQVElPTl9UWFQsICAgMDUsIDE4LCAgNTAsIDEwCkVESVRURVhUICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBNX0RFU0NSSVBUSU9OLCAgICAgICA2MCwgMTgsICA5MCwgMTUsIFdTX1RBQlNUT1AKTFRFWFQgICAgICImR3J1cHBlZmlsOiIsICAgICAgICBQTV9GSUxFX1RYVCwgICAgICAgICAgMDUsIDM4LCAgNTAsIDEwCkVESVRURVhUICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBNX0ZJTEUsICAgICAgICAgICAgICA2MCwgMzgsICA5MCwgMTUsIFdTX1RBQlNUT1AKREVGUFVTSEJVVFRPTiAiT0siLCAgICAgICAgICAgIElET0ssICAgICAgICAgICAgICAgIDE1NSwgIDUsICA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAiQW5udWxsZXIiLCAgICAgICAgSURDQU5DRUwsICAgICAgICAgICAgMTU1LCAyNSwgIDYwLCAxNSwgV1NfVEFCU1RPUApQVVNIQlVUVE9OICAgICImSGrmbHAiLCAgICAgICAgICBQTV9IRUxQLCAgICAgICAgICAgICAxNTUsIDQ1LCAgNjAsIDE1LCBXU19UQUJTVE9QCn0KCi8qIERpYWxvZyBgUHJvZ3JhbSBhdHRyaWJ1dGVzJyAqLwoKRElBTE9HX1BST0dSQU0gRElBTE9HIDAsIDAsIDI1MCwgMTA1ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIlByb2dyYW1hdHRyaWJ1dHRlciIKewpMVEVYVCAgICAgICAgICImQmVza3JpdmVsc2U6IiwgIFBNX0RFU0NSSVBUSU9OX1RYVCwgICAwNSwgMTAsICA2MCwgMTAKRURJVFRFWFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBNX0RFU0NSSVBUSU9OLCAgICAgICA4MCwgMTAsICA5MCwgMTUsIFdTX1RBQlNUT1AKTFRFWFQgICAgICAgICAiJktvbW1hbmRvbGluaWU6IiwgUE1fQ09NTUFORF9MSU5FX1RYVCwgIDA1LCAyNSwgIDYwLCAxMApFRElUVEVYVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUE1fQ09NTUFORF9MSU5FLCAgICAgIDgwLCAyNSwgIDkwLCAxNSwgV1NfVEFCU1RPUApMVEVYVCAgICAgICAgICImQXJiZWpkc2thdGFsb2c6IiwgICAgUE1fRElSRUNUT1JZX1RYVCwgICAgIDA1LCA0MCwgIDYwLCAxMApFRElUVEVYVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUE1fRElSRUNUT1JZLCAgICAgICAgIDgwLCA0MCwgIDkwLCAxNSwgV1NfVEFCU1RPUApMVEVYVCAgICAgICAgICJUYXN0ZSBrb21iaW5hdGlvbjoiLCAgICAgIFBNX0hPVF9LRVlfVFhULCAgICAgICAwNSwgNTUsICA2MCwgMTAKRURJVFRFWFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBNX0hPVF9LRVksICAgICAgICAgICA4MCwgNTUsICA5MCwgMTUsIFdTX1RBQlNUT1AKSUNPTiAgICAgICAgICAiIiwgICAgICAgICAgICAgICAgICAgICAgICAgIFBNX0lDT04sICAgICAgICAgICAgICAyMCwgNzAKQ0hFQ0tCT1ggICAgICAiIiwgICAgICAgICAgICAgICAgICAgICAgICAgIFBNX1NZTUJPTCwgICAgICAgICAgICA4MCwgNzUsICAxMCwgMTAsIFdTX1RBQlNUT1AKTFRFWFQgICAgICAgICAiJk1pbmlt6XIgdmVkIG9wc3RhcnQiLCAgICAgICBJRElHTk9SRSwgICAgICAgICAgICAgOTUsIDc1LCAgNzUsIDEwCkRFRlBVU0hCVVRUT04gIk9LIiwgICAgICAgICAgICAgICAgICAgSURPSywgICAgICAgICAgICAgICAgMTg1LCAgNSwgIDYwLCAxNSwgV1NfVEFCU1RPUApQVVNIQlVUVE9OICAgICJBbm51bGxlciIsICAgICAgICAgICAgICAgSURDQU5DRUwsICAgICAgICAgICAgMTg1LCAyNSwgIDYwLCAxNSwgV1NfVEFCU1RPUApQVVNIQlVUVE9OICAgICImR2VubmVtc2UuLi4iLCAgICAgICAgICAgICAgIFBNX0JST1dTRSwgICAgICAgICAgIDE4NSwgNDUsICA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAixm5kcmUgJmlrb24uLi4iLCBQTV9PVEhFUl9TWU1CT0wsICAgICAxODUsIDY1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIiZIauZscCIsICAgICAgICAgICAgICAgICBQTV9IRUxQLCAgICAgICAgICAgICAxODUsIDg1LCAgNjAsIDE1LCBXU19UQUJTVE9QCn0KCi8qIERpYWxvZyBgU3ltYm9sJyAqLwoKRElBTE9HX1NZTUJPTCBESUFMT0cgMCwgMCwgMjAwLCA4NQpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICLGbmRyZSBpa29uIgp7CkxURVhUICAgICAiJkZpbG5hdm46IiwgICAgUE1fSUNPTl9GSUxFX1RYVCwgICAgNSwgMTUsICA0MCwgMTAKRURJVFRFWFQgICAgICAgICAgICAgICAgICAgICAgICAgUE1fSUNPTl9GSUxFLCAgICAgICA0NSwgMTUsICA4NSwgMTUsIFdTX1RBQlNUT1AKTFRFWFQgICAgICJH5mxkZW5kZSAmaWtvbjoiLCBQTV9TWU1CT0xfTElTVF9UWFQsICA1LCAzMCwgMTI1LCAxMApDT01CT0JPWCAgICAgICAgICAgICAgICAgICAgICAgICBQTV9TWU1CT0xfTElTVCwgICAgICA1LCA0MCwgMTI1LCA1MCwKICAgQ0JTX0RST1BET1dOTElTVCB8IENCU19BVVRPSFNDUk9MTCB8IENCU19PV05FUkRSQVdGSVhFRCB8IFdTX1RBQlNUT1AKREVGUFVTSEJVVFRPTiAiT0siLCAgICAgICAgIElET0ssICAgICAgICAgICAgICAxMzUsICA1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIkFubnVsbGVyIiwgICAgIElEQ0FOQ0VMLCAgICAgICAgICAxMzUsIDI1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIiZHZW5uZW1zZS4uLiIsICAgIFBNX0JST1dTRSwgICAgICAgICAxMzUsIDQ1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIiZIauZscCIsICAgICAgIFBNX0hFTFAsICAgICAgICAgICAxMzUsIDY1LCAgNjAsIDE1LCBXU19UQUJTVE9QCn0KCi8qIERpYWxvZyBgRXhlY3V0ZScgKi8KCkRJQUxPR19FWEVDVVRFIERJQUxPRyAwLCAwLCAyMDAsIDg1ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIkv4ciBwcm9ncmFtIgp7CkxURVhUICAgICAiJktvbW1hbmRvbGluaWU6IiwgSURJR05PUkUsICAgMDUsIDE1LCAxMjAsIDEwCkVESVRURVhUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBNX0NPTU1BTkQsIDA1LCAyNSwgMTIwLCAxNSwgV1NfVEFCU1RPUApDSEVDS0JPWCAgICAgICIiLCAgICAgICAgICAgICAgICAgICAgICBQTV9TWU1CT0wsICAwNSwgNDUsICAxMCwgMTAsIFdTX1RBQlNUT1AKTFRFWFQgICAgICAgICAiJk1pbmlt6XIgdmVkIG9wc3RhcnQiLCAgIElESUdOT1JFLCAgIDIwLCA0NSwgMTIwLCAxMApERUZQVVNIQlVUVE9OICJPSyIsICAgICAgICAgICAgICAgSURPSywgICAgICAxMzUsICA1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIkFubnVsbGVyIiwgICAgICAgICAgIElEQ0FOQ0VMLCAgMTM1LCAyNSwgIDYwLCAxNSwgV1NfVEFCU1RPUApQVVNIQlVUVE9OICAgICImR2VubmVtc2UuLi4iLCAgICAgICAgICBQTV9CUk9XU0UsIDEzNSwgNDUsICA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAiJkhq5mxwIiwgICAgICAgICAgICAgUE1fSEVMUCwgICAxMzUsIDY1LCAgNjAsIDE1LCBXU19UQUJTVE9QCn0KCi8qIFN0cmluZ3MgKi8KClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCnsKSURTX1BST0dSQU1fTUFOQUdFUiwJCSJQcm9ncmFtYmVoYW5kbGluZyIKSURTX0VSUk9SLAkJCSJGRUlMIgpJRFNfV0FSTklORywJCQkiQURWQVJTRUwiCklEU19JTkZPLAkJCSJJbmZvcm1hdGlvbiIKSURTX0RFTEVURSwJCQkiU2xldCIKSURTX0RFTEVURV9HUk9VUF9zLAkJIlNsZXQgZ3J1cHBlbiAnJXMnPyIKSURTX0RFTEVURV9QUk9HUkFNX3MsCQkiU2xldCBwcm9ncmFtbWV0ICclcyc/IgpJRFNfTk9UX0lNUExFTUVOVEVELAkJIklra2UgaW1wbGVtZW50ZXJldCIKSURTX0ZJTEVfUkVBRF9FUlJPUl9zLAkJIkZlamwgdmVkIGzmc2luZyBhZiAnJXMnLiIKSURTX0ZJTEVfV1JJVEVfRVJST1JfcywJCSJGZWpsIHZlZCBza3Jpdm5pbmcgdGlsICclcycuIgpJRFNfR1JQRklMRV9SRUFEX0VSUk9SX3MsCSJcCkt1bm5lIGlra2UgP3BuZSBncnVwcGVmaWxlbiAnJXMnLlxuXApWaWwgZHUgcHI/dmUgbWVyPyIKSURTX09VVF9PRl9NRU1PUlksCQkiSWtrZSBub2sgaHVrb21tZWxzZS4iCklEU19XSU5IRUxQX0VSUk9SLAkJImhq5mxwIGVyIGlra2UgdGlsZ2plbmdlbGlnLiIKSURTX1VOS05PV05fRkVBVFVSRV9zLAkJIlVrZW5kdCBmZWF0dXJlIGkgJyVzJyIKSURTX0ZJTEVfTk9UX09WRVJXUklUVEVOX3MsCSJGaWxlbiAnJXMnIGZhbmR0ZXMgYWxsZXJlZGUsIG9nIGJsZXYgaWtrZSBvdmVyc2tyZXZldC4iCklEU19TQVZFX0dST1VQX0FTX3MsCQkiR2VtIGdydXBwZW4gc29tICclcycgZm9yIGF0IHVuZGflIGF0IG92ZXJza3JpdmUgZGUgb3JpZ2luYWxlIGZpbGVyLiIKSURTX05PX0hPVF9LRVksCQkJIkluZ2VuIgpJRFNfQUxMX0ZJTEVTLAkJCSJBbGxlIGZpbGVyICgqLiopIgpJRFNfUFJPR1JBTVMsCQkJIlByb2dyYW1tZXIiCklEU19MSUJSQVJJRVNfRExMLAkJIkJpYmxpb3Rla2VyICgqLmRsbCkiCklEU19TWU1CT0xfRklMRVMsCQkiSWtvbiBmaWxlciIKSURTX1NZTUJPTFNfSUNPLAkJIklrb25lciAoKi5pY28pIgp9CgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQp7CklEU19MSUNFTlNFX0NBUFRJT04sICAgICAgICAgICAgIkxJQ0VOUyIKSURTX0xJQ0VOU0UsCiJEZXR0ZSBiaWJsaW90ZWtldCBlciBmcmkgc29mdHdhcmU7IGR1IGthbiByZWRpc3RyaWJ1ZXJlIGRldCAgXApvZy9lbGxlciDmbmRyZSBkZXQgdW5kZXIgdmlsa+VyZW5lIGkgq0dOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgXApMaWNlbnNluywgdWRnaXZldCBhZiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlbnRlbiBcCnZlcnNpb24gMi4xIGFmIExpY2Vuc2VuLCBlbGxlciAoaHZpcyBkdSD4bnNrZXIgZGV0KSBlbiBueWVyZSB2ZXJzaW9uLlxuXApEZXR0ZSBiaWJsaW90ZWsgZGlzdHJpYnVlcmVzIGkgaOViIG9tIGF0IGRldCBlciBueXR0aWcsIFwKbWVuIFVERU4gRU5IVkVSIEdBUkFOVEk7IGlra2UgZW5nYW5nIGVuIHVkdHJ5a3QgZ2FyYW50aSBmb3IgXApIQU5ERUxTRFlHVElHSEVEIGVsbGVyIEVHTkVUSEVEIEZPUiBFVCBTUEVDSUVMVCBGT1JNxUwuIFNlIKtHTlUgXApMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZbsgZm9yIGZsZXJlIGRldGFsamVyLlxuXApEdSBza2FsIGhhdmUgbW9kdGFnZXQgZXQgZWtzZW1wbGFyIGFmIKtHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIFwKTGljZW5zZbsgc2FtbWVuIG1lZCBkZXR0ZSBiaWJsaW90ZWs7IGh2aXMgaWtrZSwgc2tyaXYgdGlsOiB0aGUgRnJlZSBTb2Z0d2FyZSBcCkZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EiCgpJRFNfV0FSUkFOVFlfQ0FQVElPTiwgIklOR0VOIEdBUkFOVEkiCklEU19XQVJSQU5UWSwKIkRldHRlIGJpYmxpb3Rla2V0IGRpc3RyaWJ1ZXJlcyBpIGRldCBo5WIgYXQgZGV0IGVyIG55dHRpZywgXAptZW4gVURFTiBFTkhWRVIgR0FSQU5USTsgaWtrZSBlbmdhbmcgZW4gdWR0cnlrdCBnYXJhbnRpZW4gZm9yIFwKSEFOREVMU0RZR1RJR0hFRCBlbGxlciBFR05FVEhFRCBGT1IgRVQgU1BFQ0lFTFQgRk9STcVMLiBTZSCrR05VIFwKTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2W7IGZvciBmbGVyZSBkZXRhbGplci4iCn0K