LyoKICogQ29weXJpZ2h0IDE5OTggSnVlcmdlbiBTY2htaWVkCiAqIENvcHlyaWdodCAyMDA2IFZpdGFsaXkgTWFyZ29sZW4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBCiAqLwoKI2luY2x1ZGUgInNocmVzZGVmLmgiCgpMQU5HVUFHRSBMQU5HX1JVU1NJQU4sIFNVQkxBTkdfREVGQVVMVAoKTUVOVV8wMDEgTUVOVSBESVNDQVJEQUJMRQpCRUdJTgogICAgTUVOVUlURU0gIibB7uv8+OjlIOft4Pfq6CIsCUZDSURNX1NIVklFV19CSUdJQ09OCiAgICBNRU5VSVRFTSAiJszl6+ro5SDn7eD36ugiLAlGQ0lETV9TSFZJRVdfU01BTExJQ09OCiAgICBNRU5VSVRFTSAiJtHv6PHu6iIsCQlGQ0lETV9TSFZJRVdfTElTVFZJRVcKICAgIE1FTlVJVEVNICImz+7k8O7h7e4iLAlGQ0lETV9TSFZJRVdfUkVQT1JUVklFVwpFTkQKCi8qCiBzaGVsbHZpZXcgYmFja2dyb3VuZCBtZW51CiovCk1FTlVfMDAyIE1FTlUgRElTQ0FSREFCTEUKQkVHSU4KICAgIFBPUFVQICIiCiAgICBCRUdJTgogICAgICAgIFBPUFVQICImz/Du8ezu8vAiCiAgICAgICAgQkVHSU4KICAgICAgICAgICAgTUVOVUlURU0gIibB7uv8+OjlIOft4Pfq6CIsCUZDSURNX1NIVklFV19CSUdJQ09OCiAgICAgICAgICAgIE1FTlVJVEVNICImzOXr6ujlIOft4Pfq6CIsCUZDSURNX1NIVklFV19TTUFMTElDT04KICAgICAgICAgICAgTUVOVUlURU0gIibR7+jx7uoiLAkJRkNJRE1fU0hWSUVXX0xJU1RWSUVXCiAgICAgICAgICAgIE1FTlVJVEVNICImz+7k8O7h7e4iLAlGQ0lETV9TSFZJRVdfUkVQT1JUVklFVwogICAgICAgIEVORAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIFBPUFVQICLT7+7w/+Tu9+jy/CAm5+3g9+roIgogICAgICAgIEJFR0lOCiAgICAgICAgICAgIE1FTlVJVEVNICLP7iAm6Ozl7egiLAkweDMwCS8qIGNvbHVtbiAwICovCiAgICAgICAgICAgIE1FTlVJVEVNICLP7iAm8ujv8yIsCTB4MzIJLyogY29sdW1uIDIgKi8KICAgICAgICAgICAgTUVOVUlURU0gIs/uICbw4Ofs5fDzIiwJMHgzMQkvKiAuLi4gKi8KICAgICAgICAgICAgTUVOVUlURU0gIs/uICbk4PLlIiwJMHgzMwogICAgICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICAgICAgTUVOVUlURU0gIibA4vLu7ODy6Pfl8eroIiwJRkNJRE1fU0hWSUVXX0FVVE9BUlJBTkdFCiAgICAgICAgRU5ECiAgICAgICAgTUVOVUlURU0gIsIm+/Du4u3/8vwg5+3g9+roIiwJRkNJRE1fU0hWSUVXX1NOQVBUT0dSSUQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAizibh7e7i6PL8IiwJCUZDSURNX1NIVklFV19SRUZSRVNICiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIibC8fLg4ujy/CIsCQlGQ0lETV9TSFZJRVdfSU5TRVJUCiAgICAgICAgTUVOVUlURU0gIsLx8uDi6PL8ICb/8Ov76iIsCUZDSURNX1NIVklFV19JTlNFUlRMSU5LCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgUE9QVVAgItHu5+Tg8vwiCiAgICAgICAgQkVHSU4KICAgICAgICAgICAgTUVOVUlURU0gIibP4O/q4CIsCQlGQ0lETV9TSFZJRVdfTkVXRk9MREVSCiAgICAgICAgICAgIE1FTlVJVEVNICIm3/Dr++oiLAkJRkNJRE1fU0hWSUVXX05FV0xJTksKICAgICAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgRU5ECiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gItHi7ibp8fLi4CIsCQlGQ0lETV9TSFZJRVdfUFJPUEVSVElFUwogICAgRU5ECkVORAoKLyoKIHNoZWxsdmlldyBpdGVtIG1lbnUKKi8KTUVOVV9TSFZfRklMRSBNRU5VIERJU0NBUkRBQkxFCkJFR0lOCiAgICBQT1BVUCAiIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAiJsL74fDg8vwiCQlGQ0lETV9TSFZJRVdfT1BFTgogICAgICAgIE1FTlVJVEVNICImz/Du4u7k7ejqIiwJCUZDSURNX1NIVklFV19FWFBMT1JFCiAgICAgICAgTUVOVUlURU0gIibO8urw+/L8IiwJCUZDSURNX1NIVklFV19PUEVOCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIibC+/Dl5+Dy/CIsCQlGQ0lETV9TSFZJRVdfQ1VUCiAgICAgICAgTUVOVUlURU0gIibK7u/o8O7i4PL8IiwJCUZDSURNX1NIVklFV19DT1BZCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gItHu5+Tg8vwgJv/w6/vqIiwJRkNJRE1fU0hWSUVXX0NSRUFURUxJTksKICAgICAgICBNRU5VSVRFTSAiJtPk4Ovo8vwiLAkJRkNJRE1fU0hWSUVXX0RFTEVURQogICAgICAgIE1FTlVJVEVNICLP5fDl6Cbs5e3u4uDy/CIsCUZDSURNX1NIVklFV19SRU5BTUUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAi0eLuJunx8uLgIiwJCUZDSURNX1NIVklFV19QUk9QRVJUSUVTCiAgICBFTkQKRU5ECgpNRU5VX0NQQU5FTCBNRU5VCkJFR0lOCiAgICBQT1BVUCAiJtTg6esiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICLCJvv17uQiLCBJRE1fQ1BBTkVMX0VYSVQKICAgIEVORAoKICAgIFBPUFVQICImwujkIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAiJsHu6/z46OUg5+3g9+roIiwgRkNJRE1fU0hWSUVXX0JJR0lDT04KICAgICAgICBNRU5VSVRFTSAiJszl6+ro5SDn7eD36ugiLCBGQ0lETV9TSFZJRVdfU01BTExJQ09OCiAgICAgICAgTUVOVUlURU0gIibR7+jx7uoiLCBGQ0lETV9TSFZJRVdfTElTVFZJRVcKICAgICAgICBNRU5VSVRFTSAiJs/u5PDu4e3uIiwgRkNJRE1fU0hWSUVXX1JFUE9SVFZJRVcKICAgIEVORAoKICAgIFBPUFVQICIm0e/w4OLq4CIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIibOIM/g7eXr6CDT7/Dg4uvl7ej/Li4uIiwgSURNX0NQQU5FTF9BQk9VVAogICAgRU5ECkVORAoKU0hCUlNGT1JGT0xERVJfTVNHQk9YIERJQUxPRyBMT0FET05DQUxMIE1PVkVBQkxFIERJU0NBUkRBQkxFIDE1LCA0MCwgMTg4LCAxOTIKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VIHwgRFNfTU9EQUxGUkFNRSB8IERTX1NFVEZPTlQgfCBEU18zRExPT0sKQ0FQVElPTiAizuHn7vAiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKewogICAgREVGUFVTSEJVVFRPTiAixOAiLCAxLCA4MCwgMTc2LCA1MCwgMTIsIEJTX0RFRlBVU0hCVVRUT04gfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKICAgIFBVU0hCVVRUT04gIs7y7OXt4CIsIDIsIDEzNCwgMTc2LCA1MCwgMTIsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgIiIsIElERF9USVRMRSwgNCwgNCwgMTgwLCAxMgogICAgTFRFWFQgIiIsIElERF9TVEFUVVMsIDQsIDI1LCAxODAsIDEyCiAgICBDT05UUk9MICIiLCBJRERfVFJFRVZJRVcsICJTeXNUcmVlVmlldzMyIiwKCSAgICAgICAgVFZTX0hBU0JVVFRPTlMgfCBUVlNfSEFTTElORVMgfCBUVlNfTElORVNBVFJPT1QgfAoJICAgICAgICBXU19CT1JERVIgfCBXU19UQUJTVE9QLAoJICAgICAgICA0LCA0MCwgMTgwLCAxMjAKfQoKU0hORVdCUlNGT1JGT0xERVJfTVNHQk9YIERJQUxPRyBMT0FET05DQUxMIE1PVkVBQkxFIERJU0NBUkRBQkxFIDE1LCA0MCwgMjE4LCAxOTYKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VIHwgV1NfU0laRUJPWCB8IERTX01PREFMRlJBTUUgfCBEU19TRVRGT05UIHwgRFNfM0RMT09LCkNBUFRJT04gIs7h5+7wIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCnsKICAgIExURVhUICIiLCBJRERfVElUTEUsIDEwLCA4LCAxOTgsIDI0CiAgICBMVEVYVCAiIiwgSUREX1NUQVRVUywgMTAsIDI1LCAxOTgsIDEyCiAgICBMVEVYVCAiz+Dv6uA6IiwgSUREX0ZPTERFUiwgMTAsIDE1NiwgNDAsIDEyCiAgICBDT05UUk9MICIiLCBJRERfVFJFRVZJRVcsICJTeXNUcmVlVmlldzMyIiwKICAgICAgICAgICAgICAgIFRWU19IQVNCVVRUT05TIHwgVFZTX0hBU0xJTkVTIHwgVFZTX0xJTkVTQVRST09UIHwKICAgICAgICAgICAgICAgIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AsCiAgICAgICAgICAgICAgICAxMiwgMzgsIDE5NCwgMTA1CiAgICBFRElUVEVYVCBJRERfRk9MREVSVEVYVCwgNDYsIDE1MCwgMTYwLCAxNCwgV1NfQk9SREVSIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiAgICBQVVNIQlVUVE9OICLR7ufk4PL8ICbt7uLz/iDv4O/q8yIsIElERF9NQUtFTkVXRk9MREVSLCAxMiwgMTc0LCA3NywgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogICAgREVGUFVTSEJVVFRPTiAiT0siLCBJRE9LLCAxMDIsIDE3NCwgNTAsIDE0LCBCU19ERUZQVVNIQlVUVE9OIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiAgICBQVVNIQlVUVE9OICLO8uzl7eAiLCBJRENBTkNFTCwgMTU2LCAxNzQsIDUwLCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCn0KClNIRUxMX1lFU1RPQUxMX01TR0JPWCBESUFMT0cgMjAwLCAxMDAsIDI4MCwgOTAKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfVklTSUJMRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gItHu7uH55e3o5SIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgp7CiAgICBERUZQVVNIQlVUVE9OICImxOAiLCBJRFlFUywgMzQsIDY5LCA1MywgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogICAgUFVTSEJVVFRPTiAixOAg5Ov/ICbi8eX1IiwgSUREX1lFU1RPQUxMLCA5MiwgNjksIDY1LCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiAgICBQVVNIQlVUVE9OICImzeXyIiwgSUROTywgMTYyLCA2OSwgNTMsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKICAgIFBVU0hCVVRUT04gIibO8uzl7eAiLCBJRENBTkNFTCwgMjIwLCA2OSwgNTMsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKICAgIElDT04gIiIsIElERF9JQ09OLCAxMCwgMTAsIDE2LCAxNgogICAgTFRFWFQgIiIsIElERF9NRVNTQUdFLCA0MCwgMTAsIDIzOCwgNTIsIDAKfQoKU0hFTExfQUJPVVRfTVNHQk9YIERJQUxPRyBMT0FET05DQUxMIE1PVkVBQkxFIERJU0NBUkRBQkxFIDE1LCA0MCwgMjIwLCAxNTIKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfVklTSUJMRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIs4gJXMiCkZPTlQgMTAsICJNUyBTaGVsbCBEbGciCnsKIERFRlBVU0hCVVRUT04gIk9LIiwgSURPSywgMTUzLCAxMzMsIDYwLCAxMiwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiJsvo9uXt5+j/IFdpbmUuLi4iLCBJRENfQUJPVVRfTElDRU5TRSwgMTUzLCAxMTMsIDYwLCAxMiwgV1NfVEFCU1RPUAogTElTVEJPWCBJRENfQUJPVVRfTElTVEJPWCwgOCwgNjUsIDEzNywgODIsIExCU19OT1RJRlkgfCBXU19WU0NST0xMIHwgV1NfQk9SREVSCiBJQ09OICIiLCBzdGMxLCAxMCwgMTAsIDMwLCAzMAogTFRFWFQgIiIsIElEQ19BQk9VVF9TVEFUSUNfVEVYVDEsIDQwLCAxMCwgMTM3LCAxMAogTFRFWFQgIiIsIElEQ19BQk9VVF9TVEFUSUNfVEVYVDIsIDQwLCAyMiwgMTM3LCAxMAogTFRFWFQgIsLl8PHo/yBXaW5lICVzIiwgSURDX0FCT1VUX1NUQVRJQ19URVhUMywgNDIsIDM0LCAxNzAsIDEwCiBMVEVYVCAi0ODn8ODh7vL36OroIFdpbmU6IiwgSURDX0FCT1VUX1dJTkVfVEVYVCwgOCwgNTUsIDEzNywgMTAKfQoKU0hFTExfUlVOX0RMRyBESUFMT0cgTE9BRE9OQ0FMTCBNT1ZFQUJMRSBESVNDQVJEQUJMRSAwLCAwLCAyMjcsIDk1ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX1ZJU0lCTEUgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICIiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKewogSUNPTiAiIiwgMTIyOTcsIDcsIDExLCAxOCwgMjAsIFdTX1ZJU0lCTEUKIExURVhUICLC4uXk6PLlIOjs/yDv8O7j8ODs7PssIO/g7+roLCDk7urz7OXt8uAg6OvoIPDl8fPw8SDI7fLl8O3l8uAsIOggV2luZSDu8urw7uXyIOj1LiIsIDEyMjg5LCAzNiwgMTEsIDE4MiwgMTgKIExURVhUICImzvLq8Pvy/DoiLCAxMjMwNSwgNCwgMzksIDMwLCAxMAogQ09OVFJPTCAiIiwgMTIyOTgsICJDT01CT0JPWCIsIFdTX1RBQlNUT1AgfCBXU19HUk9VUCB8IFdTX1ZTQ1JPTEwgfCBXU19WSVNJQkxFIHwgQ0JTX0RJU0FCTEVOT1NDUk9MTCB8IENCU19BVVRPSFNDUk9MTCB8IENCU19EUk9QRE9XTiwgMzYsIDM3LCAxODMsIDEwMAogREVGUFVTSEJVVFRPTiAiT0siLCBJRE9LLCA2MiwgNjMsIDUwLCAxNCwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAizvLs5e3gIiwgSURDQU5DRUwsIDExNiwgNjMsIDUwLCAxNCwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAizuEm5+7wLi4uIiwgMTIyODgsIDE3MCwgNjMsIDUwLCAxNCwgV1NfVEFCU1RPUAp9CgpTVFJJTkdUQUJMRQp7CiAgICAvKiBjb2x1bW5zIGluIHRoZSBzaGVsbHZpZXcgKi8KICAgIElEU19TSFZfQ09MVU1OMQkJIsjs/yIKICAgIElEU19TSFZfQ09MVU1OMgkJItDg5+zl8CIKICAgIElEU19TSFZfQ09MVU1OMwkJItLo7yIKICAgIElEU19TSFZfQ09MVU1ONAkJIsjn7OXtuO0iCiAgICBJRFNfU0hWX0NPTFVNTjUJCSLA8vDo4fPy+yIKICAgIElEU19TSFZfQ09MVU1ONgkJIs/u6+376SDu4fq47CIKICAgIElEU19TSFZfQ09MVU1ONwkJItHi7uHu5O3uIgogICAgSURTX1NIVl9DT0xVTU44CQkiyOz/IgogICAgSURTX1NIVl9DT0xVTU45CQkiyu7s7OXt8uDw6OkiCiAgICBJRFNfU0hWX0NPTFVNTjEwCQkiwuvg5OXr5fYiCiAgICBJRFNfU0hWX0NPTFVNTjExCQkiw/Dz7+/gIgogICAgSURTX1NIVl9DT0xVTU5fREVMRlJPTQkiyPH17uTt7uUg7OXx8u7t4PXu5OXt6OUiCiAgICBJRFNfU0hWX0NPTFVNTl9ERUxEQVRFCSLC8OXs/yDz5ODr5e3o/yIKCiAgICAvKiBzcGVjaWFsIGZvbGRlcnMgKi8KICAgIElEU19ERVNLVE9QCQkJItDg4e736Okg8fLu6yIKICAgIElEU19NWUNPTVBVVEVSCQkizO7pIOru7O/8/vLl8CIKICAgIElEU19SRUNZQ0xFQklOX0ZPTERFUl9OQU1FICAiyu7w5+jt4CIKICAgIElEU19DT05UUk9MUEFORUwJCSLP4O3l6/wg0+/w4OLr5e3o/yIKCiAgICAvKiBjb250ZXh0IG1lbnVzICovCiAgICBJRFNfVklFV19MQVJHRQkJIibB7uv8+OjlIOft4Pfq6CIKICAgIElEU19WSUVXX1NNQUxMCQkiJszl6+ro5SDn7eD36ugiCiAgICBJRFNfVklFV19MSVNUCQkiJtHv6PHu6iIKICAgIElEU19WSUVXX0RFVEFJTFMJCSImz+7k8O7h7e4iCiAgICBJRFNfU0VMRUNUCQkJIibC++Hw4PL8IgogICAgSURTX09QRU4JCQkiJs7y6vD78vwiCgogICAgSURTX0NSRUFURUZPTERFUl9ERU5JRUQJIs3l4u7n7O7m7e4g8e7n5ODy/CDv4O/q8yAtIO3l8iDv7uvt7uzu9+jpLiIKICAgIElEU19DUkVBVEVGT0xERVJfQ0FQVElPTgkizvjo4ergIOLuIOLw5ez/IPHu5+Tg7ej/IO/g7+roIgogICAgSURTX0RFTEVURUlURU1fQ0FQVElPTgkiz+7k8uLl8Obk5e3o5SDz5ODr5e3o/yD04Onr4CIKICAgIElEU19ERUxFVEVGT0xERVJfQ0FQVElPTgkiz+7k8uLl8Obk5e3o5SDz5ODr5e3o/yDv4O/q6CIKICAgIElEU19ERUxFVEVJVEVNX1RFWFQJCSLT5ODr6PL8ICclMSc/IgogICAgSURTX0RFTEVURU1VTFRJUExFX1RFWFQJItPk4Ovo8vwg/fLoIO7h/OXq8vsgKCUxKT8iCiAgICBJRFNfREVMRVRFU0VMRUNURURfVEVYVCAgICAgItPk4Ovo8vwg4vvh8ODt7fvlIO7h/OXq8vs/IgogICAgSURTX1RSQVNISVRFTV9URVhUICAgICAgICAgICLP5fDl7OXx8ujy/CAnJTEnIOIg6u7w5+jt8z8iCiAgICBJRFNfVFJBU0hGT0xERVJfVEVYVCAgICAgICAgIs/l8OXs5fHy6PL8IO/g7+rzICclMScg6CDi8eUg5eUg8e7k5fDm6Ozu5SDq7vDn6O3zPyIKICAgIElEU19UUkFTSE1VTFRJUExFX1RFWFQgICAgICAiz+Xw5ezl8fLo8vwg7uH85ery+yAlMSDiIOru8Ofo7fM/IgogICAgSURTX0NBTlRUUkFTSF9URVhUICAgICAgICAgICLO4fzl6vIgJyUxJyDt5SDs7ubl8iDh+/L8IO/u8evg7SDiIOru8Ofo7fMuIML7IPXu8ujy5SDl4+4g8+Tg6PL8PyIKICAgIElEU19PVkVSV1JJVEVGSUxFX1RFWFQgICAgICAiz+Dv6uAg8+blIPHu5OXw5ujyIPTg6esgJyUxJy5cblxuwvsg9e7y6PLlIOfg7OXt6PL8IOXj7j8iCiAgICBJRFNfT1ZFUldSSVRFRklMRV9DQVBUSU9OCSLP7uTy4uXw5uTl7ejlIOfg7OXt+yD04Onr4CIKICAgIElEU19PVkVSV1JJVEVGT0xERVJfVEVYVCAi3fLgIO/g7+rgIPPm5SDx7uTl8Obo8iDv4O/q8yAnJTEnLlxuXG4iXAoJICAgICLF8evoIPTg6ev7IOIg6u7t5fft7ukg7+Dv6uUg6Ozl/vIg8uUg5uUg6Ozl7eAsIPfy7iDoIPTg6ev7IOIg4vvh8ODt7e7pXG4iXAoJICAgICLv4O/q5Swg7u3oIOHz5PPyIOfg7OXt5e37LiDC+yDi8bgg5fm4IPXu8ujy5SDv5fDl7OXx8ujy/CDo6+gg8eru7+jw7uLg8vxcbiJcCgkgICAgIu/g7+rzPyIKCiAgICAvKiBtZXNzYWdlIGJveCBzdHJpbmdzICovCiAgICBJRFNfUkVTVEFSVF9USVRMRQkJIs/l8OXn4OPw8+fo8vwiCiAgICBJRFNfUkVTVEFSVF9QUk9NUFQJCSLC+yD17vLo8uUg8ejs8+vo8O7i4PL8IO/l8OXn4O/z8eogV2luZG93cz8iCiAgICBJRFNfU0hVVERPV05fVElUTEUJCSLC++rr/vfo8vwg7+jy4O3o5SIKICAgIElEU19TSFVURE9XTl9QUk9NUFQJCSLH4Oru7ffo8vwg8ODh7vLzIPEgV2luZT8iCgogICAgLyogc2hlbGwgZm9sZGVyIHBhdGggZGVmYXVsdCB2YWx1ZXMgKi8KICAgIElEU19QUk9HUkFNUyAgICAgICAgICAgICAgICAiw+vg4u3u5SDs5e3+XFzP8O7j8ODs7PsiCiAgICBJRFNfUEVSU09OQUwgICAgICAgICAgICAgICAgIszu6CDk7urz7OXt8vsiCiAgICBJRFNfRkFWT1JJVEVTICAgICAgICAgICAgICAgIsjn4fDg7e3u5SIKICAgIElEU19TVEFSVFVQICAgICAgICAgICAgICAgICAiw+vg4u3u5SDs5e3+XFzP8O7j8ODs7PtcXMDi8u7n4OPw8+fq4CIKICAgIElEU19SRUNFTlQgICAgICAgICAgICAgICAgICAizeXk4OLt5eUiCiAgICBJRFNfU0VORFRPICAgICAgICAgICAgICAgICAgIs7y7/Dg4ujy/CIKICAgIElEU19TVEFSVE1FTlUgICAgICAgICAgICAgICAiw+vg4u3u5SDs5e3+IgogICAgSURTX01ZTVVTSUMgICAgICAgICAgICAgICAgICLM7v8g7PPn++rgIgogICAgSURTX01ZVklERU8gICAgICAgICAgICAgICAgICLM7ugg9Ojr/Oz7IgogICAgSURTX0RFU0tUT1BESVJFQ1RPUlkgICAgICAgICLQ4OHu9+jpIPHy7usiCiAgICBJRFNfTkVUSE9PRCAgICAgICAgICAgICAgICAgItHl8uXi7uUg7urw8+bl7ejlIgogICAgSURTX1RFTVBMQVRFUyAgICAgICAgICAgICAgICLY4OHr7u37IgogICAgSURTX0FQUERBVEEgICAgICAgICAgICAgICAgICJBcHBsaWNhdGlvbiBEYXRhIgogICAgSURTX1BSSU5USE9PRCAgICAgICAgICAgICAgICLP8Ojt8uXw+yIKICAgIElEU19MT0NBTF9BUFBEQVRBICAgICAgICAgICAiTG9jYWwgU2V0dGluZ3NcXEFwcGxpY2F0aW9uIERhdGEiCiAgICBJRFNfSU5URVJORVRfQ0FDSEUgICAgICAgICAgIkxvY2FsIFNldHRpbmdzXFxUZW1wb3JhcnkgSW50ZXJuZXQgRmlsZXMiCiAgICBJRFNfQ09PS0lFUyAgICAgICAgICAgICAgICAgIkNvb2tpZXMiCiAgICBJRFNfSElTVE9SWSAgICAgICAgICAgICAgICAgIkxvY2FsIFNldHRpbmdzXFxIaXN0b3J5IgogICAgSURTX1BST0dSQU1fRklMRVMgICAgICAgICAgICJQcm9ncmFtIEZpbGVzIgogICAgSURTX01ZUElDVFVSRVMgICAgICAgICAgICAgICLM7ugg8Ojx8+3q6CIKICAgIElEU19QUk9HUkFNX0ZJTEVTX0NPTU1PTiAgICAiUHJvZ3JhbSBGaWxlc1xcQ29tbW9uIEZpbGVzIgogICAgSURTX0NPTU1PTl9ET0NVTUVOVFMgICAgICAgICLO4fno5SDk7urz7OXt8vsiCiAgICBJRFNfQURNSU5UT09MUyAgICAgICAgICAgICAgIsPr4OLt7uUg7OXt/lxcz/Du4/Dg7Oz7XFxBZG1pbmlzdHJhdGl2ZSBUb29scyIKICAgIElEU19DT01NT05fTVVTSUMgICAgICAgICAgICAizuH56OUg5O7q8+zl7fL7XFzM7v8g7PPn++rgIgogICAgSURTX0NPTU1PTl9QSUNUVVJFUyAgICAgICAgICLO4fno5SDk7urz7OXt8vtcXMzu6CDw6PHz7eroIgogICAgSURTX0NPTU1PTl9WSURFTyAgICAgICAgICAgICLO4fno5SDk7urz7OXt8vtcXMzu6CD06Ov87PsiCiAgICBJRFNfQ0RCVVJOX0FSRUEgICAgICAgICAgICAgIkxvY2FsIFNldHRpbmdzXFxBcHBsaWNhdGlvbiBEYXRhXFxNaWNyb3NvZnRcXENEIEJ1cm5pbmciCgogICAgSURTX05FV0ZPTERFUgkJIs3u4uD/IO/g7+rgIgoKICAgIElEU19DUEFORUxfVElUTEUgICAgICAgICAgICAiz+Dt5ev8INPv8ODi6+Xt6P8gV2luZSIKICAgIElEU19DUEFORUxfTkFNRSAgICAgICAgICAgICAiyOz/IgogICAgSURTX0NQQU5FTF9ERVNDUklQVElPTiAgICAgICLO7+jx4O3o5SIKfQo=