LyoKICogV2luZUNmZyByZXNvdXJjZXMKICogS29yZWFuIExhbmd1YWdlIFN1cHBvcnQKICoKICogQ29weXJpZ2h0IDIwMDIgSmFjbyBHcmVlZmYKICogQ29weXJpZ2h0IDIwMDMgRGltaXRyaWUgTy4gUGF1bgogKiBDb3B5cmlnaHQgMjAwMy0yMDA0IE1pa2UgSGVhcm4KICogQ29weXJpZ2h0IDIwMDUsMjAwNiwyMDA3IFl1blNvbmcgSHdhbmcKICoKICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBCiAqCiAqLwoKTEFOR1VBR0UgTEFOR19LT1JFQU4sIFNVQkxBTkdfREVGQVVMVAoKSURSX1dJTkVDRkcgTUVOVSBESVNDQVJEQUJMRQpCRUdJTgogICAgUE9QVVAgIiIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIryzwaQiLCBJRENfQVVESU9fQ09ORklHVVJFCiAgICBFTkQKRU5ECgpJRERfQUJPVVRDRkcgRElBTE9HRVggMCwgMCwgMjYwLCAyNzAKU1RZTEUgV1NfQ0hJTEQKRk9OVCA5LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgTFRFWFQgICAgICAgICAgIFBBQ0tBR0VfU1RSSU5HLElEQ19TVEFUSUMsMTE5LDE3LDEyMCw4CiAgICBDT05UUk9MICAgICAgICAgSURCX1dJTkUsSURDX1NUQVRJQywiU3RhdGljIixTU19CSVRNQVAgLDE1LDE3LDE1NywxMTEKICAgIExURVhUICAgICAgICAgICAiaHR0cDovL3d3dy53aW5laHEub3JnLyIsSURDX1NUQVRJQywxMTksMzEsMTA2LDgKICAgIExURVhUICAgICAgICAgICAiwMwgtvPAzLrqt6+4rrTCIMDawK8gvNLHwcauv/6+7sDUtM+02S4gtOe9xcC6IMDawK8gvNLHwcauv/6+7iDA57TcKEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbim/obytILi4tecgR05VIExHUEwoTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UpIL7Gt6G/obytIMDMIMfBt86x17elwLsgwOe56Mb3ILbHtMIgvPbBpMfSILz2IMDWvcC0z7TZLiC288DMvL69usDHILn2wPzAuiAyLjEgtse0wiAovLHFw8D7wLi3zikgsdcgwMzIxCC59sD8wLsgtfu4o7jpILXLtM+02S4iLAogICAgICAgICAgICAgICAgICAgIElEQ19TVEFUSUMsMTE5LDQ0LDEyNCw3MgpFTkQKCklERF9BUFBDRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOSwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiIMfBt86x17elILyzwaQgIixJRENfU1RBVElDLCA4LDQsMjQ0LDI0MAogICAgTFRFWFQgICAgICAgICAgICJXaW5lwLogsKKwosDHIMfBt86x17elv6EgtOvH2LytILTZuKUgufbA/MDHIMCptbW/7MHuuKYgyOSzu7O+ILz2IMDWvcC0z7TZLiDAzCDFx8C6ILbzwMy66revuK4gxccsILHXt6HHyCDFx7D6IL+ssOG1x77uIMDWvu68rSwgwMy16SDFx8C7IMDMv+vHz7+pIL3DvbrF2yDA/MO8ILbHtMIgx8G3zrHXt6W6sLfOILyzwaTAzCCwobTJx9W0z7TZLiIsCiAgICAgICAgICAgICAgICAgICAgSURDX1NUQVRJQywxNSwyMCwyMjcsMzAKICAgIENPTlRST0wgICAgICAgICAix8G3zrHXt6UiLElEQ19BUFBfTElTVFZJRVcsIlN5c0xpc3RWaWV3MzIiLFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AgfCBMVlNfTElTVCB8IExWU19TSU5HTEVTRUwgfCBMVlNfU0hPV1NFTEFMV0FZUywKICAgICAgICAgICAgICAgICAgICAxNSw1MCwyMzAsMTUwCiAgICBQVVNIQlVUVE9OICAgICAgIsfBt86x17elIMPfsKEoJkEpLi4uIixJRENfQVBQX0FEREFQUCwgOTAsMjA0LDc1LDE0CiAgICBQVVNIQlVUVE9OICAgICAgIsfBt86x17elIMGmsMUoJlIpIixJRENfQVBQX1JFTU9WRUFQUCwgMTcwLDIwNCw3NSwxNAogICAgTFRFWFQgICAgICAgICAgICLAqbW1v+zB7iC59sGvKCZXKToiLElEQ19TVEFUSUMsMTYsMjI3LDc1LDE0CiAgICBDT01CT0JPWCAgICAgICAgSURDX1dJTlZFUiw4MywyMjQsMTYzLDU2LENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUCAgICAKRU5ECgpJRERfR1JBUEhDRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOSwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICIgw6IgvLPBpCAiLElEQ19TVEFUSUMsOCw0LDI0NCw4NAogICAgQ09OVFJPTCAgICAgIri2v+y9uiDEv7ytuKYgRGlyZWN0WCDHwbfOsde3pSDDor7Iv6EgwOK+xrXOseIoJk0pIixJRENfRFhfTU9VU0VfR1JBQiwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE1LDIwLDIzMCw4CiAgICBDT05UUk9MICAgICAiw6Kw/LiuwNqwoSBXaW5lw6LAuyCy2bnMtbW3zyDH1CgmRCkiLElEQ19FTkFCTEVfREVDT1JBVEVELCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsMzIsMjMwLDgKICAgIENPTlRST0wgICAgICLDorD8uK7A2rChIFdpbmXDosC7ILD8uK7Hz7W1t88gx9QoJlcpIixJRENfRU5BQkxFX01BTkFHRUQsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNSw0NCwyMzAsOAogICAgQ09OVFJPTCAgICAgIrChu/MgtaW9usWpxb4gyOSzu7O7seIoJkQpIixJRENfRU5BQkxFX0RFU0tUT1AsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE1LDU2LDIzMCw4CiAgICBMVEVYVCAgICAgICAitaW9usWpxb4gxamx4igmUyk6IixJRENfREVTS1RPUF9TSVpFLDE1LDcwLDQ0LDgsV1NfRElTQUJMRUQKICAgIExURVhUICAgICAgICJYIixJRENfREVTS1RPUF9CWSwxMDksNzAsOCw4LFdTX0RJU0FCTEVECiAgICBFRElUVEVYVCAgICBJRENfREVTS1RPUF9XSURUSCw2NCw2OCw0MCwxMixFU19BVVRPSFNDUk9MTCB8IEVTX05VTUJFUiB8IFdTX0RJU0FCTEVECiAgICBFRElUVEVYVCAgICBJRENfREVTS1RPUF9IRUlHSFQsMTE3LDY4LDQwLDEyLEVTX0FVVE9IU0NST0xMIHwgRVNfTlVNQkVSIHwgV1NfRElTQUJMRUQKCiAgICBHUk9VUEJPWCAgICAiILTZwMy3usauIDNEICIsSURDX1NUQVRJQyw4LDk1LDI0NCw0OQogICAgTFRFWFQgICAgICAgIrn2xdi9uiC9psDMtPUgwfa/+CgmVik6ICIsSURDX1NUQVRJQywxNSwxMTAsODAsMzIKICAgIENPTUJPQk9YICAgIElEQ19EM0RfVlNIQURFUl9NT0RFLDEwMCwxMDgsMTQ1LDcwLENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgQ09OVFJPTCAgICAgIsfPteW//r7uv6G8rSDB9r/4x9IgsOa/7Cwgx8i8vyC9psDMtPUgx+O/6ygmUCkiLElEQ19EM0RfUFNIQURFUl9NT0RFLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsMTI2LDIzMCwxMAoKICAgIEdST1VQQk9YICAgICIgyK246SDH2LvztbUoJlIpICIsSURDX1NUQVRJQyw4LDE1MSwyNDQsOTMKICAgIENPTlRST0wgICAgICIiLCBJRENfUkVTX1RSQUNLQkFSLCAibXNjdGxzX3RyYWNrYmFyMzIiLFdTX1RBQlNUT1AsMTIsMTYxLDE4NywxNQogICAgRURJVFRFWFQgICAgSURDX1JFU19EUElFRElULDIwNCwxNjEsMjMsMTMsRVNfTlVNQkVSfFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICJkcGkiLElEQ19TVEFUSUMsMjM1LDE2MywxMCw4CiAgICBMVEVYVCAgICAgICAiVGhpcyBpcyBhIHNhbXBsZSB0ZXh0IHVzaW5nIDEwIHBvaW50IFRhaG9tYSIsSURDX1JFU19GT05UX1BSRVZJRVcsMTUsMTgxLDIzMCw1NQpFTkQKCklERF9ETExDRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOSwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiIERMTCC/wLn2tvPAzLXlICIsSURDX1NUQVRJQyw4LDQsMjQ0LDI0MAogICAgTFRFWFQgICAgICAgICAgICK1v8D7ILi1xakgtvPAzLrqt6+4rrTCILCzurDA+8C4t84gs7vA5ShXaW5lv6EgwMfH2CDBprD4KcDMs6ogs9fAzMa8uuoowKm1tb/swe6zqiDHwbfOsde3pb+hIMDHx9ggwaaw+CnAuLfOIMH2waS1ybz2IMDWvcC0z7TZLiIKICAgICAgICAgICAgICAgICAgICAsSURDX1NUQVRJQywxNiwxNiwyMjAsMzIKICAgIExURVhUICAgICAgICAgICAiu/W3ziC/wLn2tvPAzLXlx9IgtvPAzLrqt6+4rigmTik6IixJRENfU1RBVElDLDE2LDU4LDEwOCw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX0RMTENPTUJPLDE2LDY4LDE0MCwxNCxDQlNfRFJPUERPV04gfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUCB8IENCU19TT1JUIHwgQ0JTX0xPV0VSQ0FTRQogICAgUFVTSEJVVFRPTiAgICAgICK09cfPseIoJkEpIixJRENfRExMU19BRERETEwsIDE2NCw2OCw4MiwxMyxCU19ERUZQVVNIQlVUVE9OIAogICAgTFRFWFQgICAgICAgICAgICLH9sDnIL/Aufa288DMteUguPG3zygmTyk6IixJRENfU1RBVElDLDE2LDg2LDEwMCw4CiAgICBMSVNUQk9YICAgICAgICAgSURDX0RMTFNfTElTVCwxNiw5NiwxNDAsMTQwLFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AgfCBXU19WU0NST0xMCiAgICBQVVNIQlVUVE9OICAgICAgIrDtxKGx4igmRSkiLElEQ19ETExTX0VESVRETEwsMTY0LDk2LDgyLDE0CiAgICBQVVNIQlVUVE9OICAgICAgIsH2v+yx4igmUikiLElEQ19ETExTX1JFTU9WRURMTCwxNjQsMTE0LDgyLDE0IApFTkQKCklERF9MT0FET1JERVIgRElBTE9HIERJU0NBUkRBQkxFIDgwLCA5MCwgMTEwLCA5MgpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiv8C59rbzwMy15SC89sGkIgpGT05UIDksICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIiC3zrXlILz4vK0gIixJRENfU1RBVElDLDgsNCw5NCw2NgogICAgQ09OVFJPTCAgICAgICAgICKzu8DlKCZCKShXaW5lKSIsSURDX1JBRF9CVUlMVElOLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04gfCBXU19HUk9VUCwxNiwxNCw3NSwxMAogICAgQ09OVFJPTCAgICAgICAgICKz18DMxry66igmTikoV2luKSIsSURDX1JBRF9OQVRJVkUsIkJ1dHRvbiIsIEJTX0FVVE9SQURJT0JVVFRPTiwxNiwyNCw3NSwxMAogICAgQ09OVFJPTCAgICAgICAgICKzu8DlLCCz18DMxry66igmTCkiLElEQ19SQURfQlVJTFRJTl9OQVRJVkUsIkJ1dHRvbiIsIEJTX0FVVE9SQURJT0JVVFRPTiwxNiwzNCw3NSwxMAogICAgQ09OVFJPTCAgICAgICAgICKz18DMxry66iwgs7vA5SgmVikiLElEQ19SQURfTkFUSVZFX0JVSUxUSU4sIkJ1dHRvbiIsIEJTX0FVVE9SQURJT0JVVFRPTiwxNiw0NCw3NSwxMAogICAgQ09OVFJPTCAgICAgICAgICK757/rx8/B9iC+ysC9KCZEKSIsSURDX1JBRF9ESVNBQkxFLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04sMTYsNTQsNzUsMTAKICAgIERFRlBVU0hCVVRUT04gICAiyK7AziIsSURPSyw4LDc0LDQ1LDE0LFdTX0dST1VQCiAgICBQVVNIQlVUVE9OICAgICAgIsPrvNIiLElEQ0FOQ0VMLDU3LDc0LDQ1LDE0LFdTX0dST1VQCkVORAoKSUREX0RSSVZFQ0ZHIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDksICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIiC15bbzwMy66iC/rLDhKCZNKSAiLElEQ19TVEFUSUMsOCw0LDI0NCwyNDAKICAgIENPTlRST0wgICAgICAgICAiuPG3z7q4seIiLElEQ19MSVNUX0RSSVZFUywiU3lzTGlzdFZpZXczMiIsTFZTX1JFUE9SVCB8IExWU19BVVRPQVJSQU5HRSB8IExWU19BTElHTkxFRlQgfAogICAgICAgICAgICAgICAgICAgIExWU19TSU5HTEVTRUwgfCBXU19CT1JERVIgfCBXU19UQUJTVE9QLCAxNSwxOCwyMzIsNzYKICAgIFBVU0hCVVRUT04gICAgICAiw9+woSgmQSkuLi4iLElEQ19CVVRUT05fQURELDE1LDk4LDM3LDE0CiAgICBQVVNIQlVUVE9OICAgICAgIsGmsMUoJlIpIixJRENfQlVUVE9OX1JFTU9WRSw1Niw5OCwzNywxNAogICAgUFVTSEJVVFRPTiAgICAgICLA2rW/IMOjseIoJkQpLi4uIixJRENfQlVUVE9OX0FVVE9ERVRFQ1QsMTk1LDk4LDUxLDE0CgogICAgLyogZWRpdGluZyBkcml2ZSBkZXRhaWxzICovCiAgICBMVEVYVCAgICAgICAgICAgIrDmt84oJlApOiIsSURDX1NUQVRJQywxNSwxMjMsMzAsMTAgICAKICAgIEVESVRURVhUICAgICAgICBJRENfRURJVF9QQVRILDUwLDEyMCwxNDAsMTMsRVNfQVVUT0hTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBQVVNIQlVUVE9OICAgICAgIsOjvsa6uLHiKCZCKS4uLiIsSURDX0JVVFRPTl9CUk9XU0VfUEFUSCwxOTUsMTIwLDUxLDEzCiAgICAKICAgIExURVhUICAgICAgICAgICAiwb63+SgmVCk6IixJRENfU1RBVElDX1RZUEUsMTUsMTM4LDMwLDEwCiAgICBDT01CT0JPWCAgICAgICAgSURDX0NPTUJPX1RZUEUsNTAsMTM1LDcwLDYwLENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgCiAgICBMVEVYVCAgICAgICAgICAgIrbzuqew+iC9w7iuvvMgufjIoyIsSURDX0xBQkVMU0VSSUFMX1NUQVRJQywxNSwxNTUsOTUsMTAKICAgIAogICAgUFVTSEJVVFRPTiAgICAgICLD37Chv8m8xyC6uMDMseIoJkEpIixJRENfQlVUVE9OX1NIT1dfSElERV9BRFZBTkNFRCwxNzUsMTM2LDcxLDEzCiAgICBDT05UUk9MICAgICAgICAgIsDlxKG3zrrOxc0gwNq1v7DLw+IoJkYpOiIsSURDX1JBRElPX0FVVE9ERVRFQ1QsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT1JBRElPQlVUVE9OLDE1LDE2Niw5MywxMAogICAgRURJVFRFWFQgICAgICAgIElEQ19FRElUX0RFVklDRSwyNywxNzYsMTYzLDEzLEVTX0FVVE9IU0NST0xMCiAgICBQVVNIQlVUVE9OICAgICAgIsOjvsa6uLHiKCZXKS4uLiIsSURDX0JVVFRPTl9CUk9XU0VfREVWSUNFLDE5NSwxNzYsNTEsMTMKICAgIENPTlRST0wgICAgICAgICAivPa1v8C4t84gwfbBpCgmTSk6IixJRENfUkFESU9fQVNTSUdOLCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9SQURJT0JVVFRPTiwxNSwxOTUsNjksMTAKCiAgICBMVEVYVCAgICAgICAgICAgIrbzuqcoJkwpOiIsSURDX1NUQVRJQ19MQUJFTCwyNywyMDgsMzUsMTIKICAgIEVESVRURVhUICAgICAgICBJRENfRURJVF9MQUJFTCw2MywyMDUsNzgsMTMsRVNfQVVUT0hTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIr3DuK6+8ygmRSk6IixJRENfU1RBVElDX1NFUklBTCwyNywyMjUsMzUsMTIKICAgIEVESVRURVhUICAgICAgICBJRENfRURJVF9TRVJJQUwsNjMsMjIxLDc4LDEzLEVTX0FVVE9IU0NST0xMIHwgV1NfVEFCU1RPUAoKICAgIENPTlRST0wgICAgICAgICAivPux6CDGxMDPKC7AuLfOIL3DwNvHz7TCIMbEwM8pILq4v6nB1rHiKCZEKSIsSURDX1NIT1dfRE9UX0ZJTEVTLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsOCwyNjAsMjMwLDgKRU5ECgpJRERfQVVESU9DRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOSwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiILXltvPAzLn2ILyxxcMgIixJRENfU1RBVElDLDgsNCwyNDQsMTk1CiAgICBMVEVYVCAgICAgICAgICAgIr/4x8+0wiC15bbzwMy59sDHILnavbq4piDDvMWpx8+/qSC757/uteUgteW288DMufa4piC8scXDx9W0z7TZLiC+7rayILXltvPAzLn2tbUgvLHFw8fPwfYgvsrAuLjpILvnv+615bChIMfYwaa1y7TPtNkuIL+pt68gteW288DMufa4piC8scXDx8+0wiCwzcC6IMPfw7XHz8H2IL7KvcC0z7TZLiC15bbzwMy59iDAp7+hvK0guLa/7L26IL/AuKXCyiC59sawIMWsuK/Hz7+pILXltvPAzLn2uKYgvLPBpMfVtM+02S4iLElEQ19TVEFUSUMsMTUsMjAsMjI3LDMzCiAgICBDT05UUk9MICAgICAgICAgIsDlxKEiLElEQ19BVURJT19UUkVFLCJTeXNUcmVlVmlldzMyIixXU19CT1JERVIgfCBXU19UQUJTVE9QLDE1LDU2LDE0MCwxMzQKICAgIFBVU0hCVVRUT04gICAgICAivNK4riDF1726xq4oJlQpIixJRENfQVVESU9fVEVTVCwxNzAsNTcsNTksMTQKICAgIFBVU0hCVVRUT04gICAgICAiwaa+7sbHKCZDKSIsSURDX0FVRElPX0NPTlRST0xfUEFORUwsMTcwLDc3LDU5LDE0CiAgICBHUk9VUEJPWCAgICAgICAgIiC02cDMt7rGriC757/uteUgIixJRENfU1RBVElDLDgsMjA1LDI0NCw2MAogICAgTFRFWFQgICAgICAgICAgICLHz7Xlv/6+7iCwobzTKCZIKTogIixJRENfU1RBVElDLDE1LDIxNSw5MCwxMAogICAgQ09NQk9CT1ggICAgICAgIElEQ19EU09VTkRfSFdfQUNDRUwsMTAwLDIxMywxNDYsNzAsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIrHiursgu/nHwy/DyigmUyk6IixJRENfU1RBVElDLDE1LDIzMiw3MCw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX0RTT1VORF9SQVRFUyw5MCwyMzAsNDIsNzYsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIrHiursguvHGri+7+cfDKCZCKToiLElEQ19TVEFUSUMsMTM3LDIzMiw4MCw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX0RTT1VORF9CSVRTLDIyMCwyMzAsMjYsNTYsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBDT05UUk9MICAgICAgICAgIrXltvPAzLn2IMjks7uzu7HiKCZFKSIsSURDX0RTT1VORF9EUlZfRU1VTCwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE1LDI1MCwyMzAsMTAKRU5ECgpJRERfREVTS1RPUF9JTlRFR1JBVElPTiBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI2MCwgMjUwClNUWUxFIFdTX0NISUxEIHwgV1NfRElTQUJMRUQKRk9OVCA5LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICIgv9yw/CAiLElEQ19TVEFUSUMsOCw0LDI0NCwxMDYKICAgIExURVhUICAgICAgICAgICAixde4tigmVCk6IixJRENfU1RBVElDLDE1LDE2LDEzMCw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX1RIRU1FX1RIRU1FQ09NQk8sMTUsMjQsMTMwLDE0LENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgUFVTSEJVVFRPTiAgICAgICLF17i2ILyzxKEoJkkpLi4uIixJRENfVEhFTUVfSU5TVEFMTCwxNTIsMjMsOTMsMTQKICAgIExURVhUICAgICAgICAgICAiu/a78ygmQyk6IixJRENfVEhFTUVfQ09MT1JURVhULDE1LDQwLDExMiw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX1RIRU1FX0NPTE9SQ09NQk8sMTUsNDgsMTEyLDE0LENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICLFqbHiKCZTKToiLElEQ19USEVNRV9TSVpFVEVYVCwxMzUsNDAsMTEwLDgKICAgIENPTUJPQk9YICAgICAgICBJRENfVEhFTUVfU0laRUNPTUJPLDEzNSw0OCwxMTAsMTQsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIrjxt88oJkUpOiIsSURDX1NUQVRJQywxNSw2NCwxMTIsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19TWVNQQVJBTV9DT01CTywxNSw3NCwxMTIsMTIwLENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUCB8IENCU19TT1JUCiAgICBMVEVYVCAgICAgICAgICAgIrv2u/MoJk8pOiIsSURDX1NZU1BBUkFNX0NPTE9SX1RFWFQsMTM1LDY0LDI1LDgsV1NfRElTQUJMRUQKICAgIFBVU0hCVVRUT04gICAgICAiIixJRENfU1lTUEFSQU1fQ09MT1IsMTM1LDc0LDI1LDEzLFdTX0RJU0FCTEVEIHwgQlNfT1dORVJEUkFXCiAgICBMVEVYVCAgICAgICAgICAgIsWpseIoJlopOiIsSURDX1NZU1BBUkFNX1NJWkVfVEVYVCwxNjYsNjQsMzAsOCxXU19ESVNBQkxFRAogICAgRURJVFRFWFQgICAgICAgIElEQ19TWVNQQVJBTV9TSVpFLDE2Niw3NCwyMywxMyxFU19BVVRPSFNDUk9MTCB8IFdTX1RBQlNUT1AgfCBXU19ESVNBQkxFRAogICAgQ09OVFJPTCAgICAgICAgICIiLElEQ19TWVNQQVJBTV9TSVpFX1VELFVQRE9XTl9DTEFTUyxVRFNfU0VUQlVERFlJTlQgfCBXU19ESVNBQkxFRCwxODcsNzQsMTUsMTMKICAgIFBVU0hCVVRUT04gICAgICAisduywygmRikiLElEQ19TWVNQQVJBTV9GT05ULDIwOCw3NCwzNywxMyxXU19ESVNBQkxFRAogICAgR1JPVVBCT1ggICAgICAgICIgvakgxvq09SgmSCkgIixJRENfU1RBVElDLDgsMTE0LDI0NCwxMDAKICAgIENPTlRST0wgICAgICAgICAiuPG3z7q4seIiLElEQ19MSVNUX1NGUEFUSFMsIlN5c0xpc3RWaWV3MzIiLExWU19SRVBPUlQgfCBMVlNfQVVUT0FSUkFOR0UgfCBMVlNfQUxJR05MRUZUIHwKICAgICAgICAgICAgICAgICAgICAgTFZTX1NJTkdMRVNFTCB8IFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AsIDE1LDEyNiwyMzAsNjQKICAgIENPTlRST0wgICAgICAgICAiv6yw4SDAp8ShKCZMKToiLElEQ19MSU5LX1NGUEFUSCwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1h8V1NfVEFCU1RPUHxXU19ESVNBQkxFRCwxNSwxOTUsNTUsMTMKICAgIEVESVRURVhUICAgICAgICAgSURDX0VESVRfU0ZQQVRILDc1LDE5NSwxMzUsMTMsRVNfQVVUT0hTQ1JPTEx8V1NfVEFCU1RPUHxXU19ESVNBQkxFRAogICAgUFVTSEJVVFRPTiAgICAgICLDo7HiKCZSKSIsSURDX0JST1dTRV9TRlBBVEgsMjE1LDE5NSwzMCwxMyxXU19ESVNBQkxFRApFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRFNfVEFCX0FQUExJQ0FUSU9OUyAgICAix8G3zrHXt6UiCiAgICBJRFNfVEFCX0RMTFMgICAgICAgICAgICAitvPAzLrqt6+4riIKICAgIElEU19UQUJfRFJJVkVTICAgICAgICAgICK15bbzwMy66iIKICAgIElEU19DSE9PU0VfUEFUSCAgICAgICAgICLAr7TQvboguPHA+yDG+rT1uKYgvLHFw8fPvcq9w7/ALiIKICAgIElEU19ISURFX0FEVkFOQ0VEICAgICAgICLD37Chv8m8xyC8+7HiseIoJkEpIgogICAgSURTX1NIT1dfQURWQU5DRUQgICAgICAgIsPfsKG/ybzHILq4wMyx4igmQSkiCiAgICBJRFNfTk9USEVNRSAgICAgICAgICAgICAiKMXXuLYgvvjAvSkiCiAgICBJRFNfVEFCX0dSQVBISUNTICAgICAgICAisde3ocfIIgogICAgSURTX1RBQl9ERVNLVE9QX0lOVEVHUkFUSU9OICK1pb26xanFviC8s8GkIgogICAgSURTX1RBQl9BVURJTyAgICAgICAgICAgIr/AtfC/wCIKICAgIElEU19UQUJfQUJPVVQgICAgICAgICAgICLBpLq4IgogICAgSURTX1dJTkVDRkdfVElUTEUgICAgICAgIldpbmUgvLPBpCIKICAgIElEU19XSU5FQ0ZHX1RJVExFX0FQUCAgICIlc7imIMCnx9EgV2luZSC8s8GkIgogICAgSURTX1RIRU1FRklMRSAgICAgICAgICAgIsXXuLYgxsTAzyIKICAgIElEU19USEVNRUZJTEVfU0VMRUNUICAgICLF17i2IMbEwM8gvLHFwyIKICAgIElEU19BVURJT19NSVNTSU5HICAgICAgICLH9sDnILe5wfa9usauuK6/oSC/wLXwv8AgteW288DMufawoSDB9sGktce+7iDA1sH2IL7KvcC0z7TZLlxuXG7D38O1ILXltvPAzLn2sKEgvLHFw776vcC0z7TZLlxuwMwgteW288DMufa4piC757/rx8+wxbOqILChtMnH0SC02bilILXltvPAzLn2uKYgvLHFw8fSILz2IMDWvcC0z7TZLlxuXG68scXDILvnx9fAzCDIv7D6uKYgs6rFuLO7seIgwKfH2LyttMIgwPu/6yC59sawwLsgtK23r77fIMfVtM+02S4iCiAgICBJRFNfU0hFTExfRk9MREVSICAgICAgICAivakgxvq09SIKICAgIElEU19MSU5LU19UTyAgICAgICAgICAgICK/rLDhIMCnxKEiCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEU19ETExfV0FSTklORyAgICAgICAgICLAzCC288DMuuq3r7iuwMcgt8615SC8+LytuKYgudmy2bTCILDNwLsgw9/DtcfPwfYgvsq9wLTPtNkuLlxuwaS4u7fOILnZstm9w7DavcC0z7HuPyIKICAgIElEU19ETExfV0FSTklOR19DQVBUSU9OICKw5rDtOiC9w726xdsgtvPAzLrqt6+4riIKICAgIElEU19ETExfTkFUSVZFICAgICAgICAgICKz18DMxry66iIKICAgIElEU19ETExfQlVJTFRJTiAgICAgICAgICKzu8DlIgogICAgSURTX0RMTF9OQVRJVkVfQlVJTFRJTiAgIrPXwMzGvLrqLCCzu8DlIgogICAgSURTX0RMTF9CVUlMVElOX05BVElWRSAgIrO7wOUsILPXwMzGvLrqIgogICAgSURTX0RMTF9ESVNBQkxFRCAgICAgICAgIrvnv+vHz8H2IL7KwL0iCiAgICBJRFNfREVGQVVMVF9TRVRUSU5HUyAgICAiseK6uyC8s8GkIgogICAgSURTX0VYRUNVVEFCTEVfRklMVEVSICAgIldpbmUgx8G3zrHXt6UgKCouZXhlLCouZXhlLnNvKVwwKi5leGU7Ki5leGUuc29cMCIKICAgIElEU19VU0VfR0xPQkFMX1NFVFRJTkdTICLA/MO8ILyzwaQgu+e/6yIKICAgIElEU19TRUxFQ1RfRVhFQ1VUQUJMRSAgICK9x8fgIMbEwM8gvLHFwyIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURTX1NIQURFUl9NT0RFX0hBUkRXQVJFICAgICLHz7Xlv/6+7iIKICAgIElEU19TSEFERVJfTU9ERV9OT05FICAgICAgICAivvjAvSIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICBJRFNfRFJJVkVfVU5LTk9XTiAgICAgICAgICAgIsDatb/AuLfOIMOjseIiCiAgIElEU19EUklWRV9GSVhFRCAgICAgICAgICAgICAiv6yw4bXIIMfPteUgtfC9usWpIgogICBJRFNfRFJJVkVfUkVNT1RFICAgICAgICAgICAgIrPXxq6/9sWpILD4wK8iCiAgIElEU19EUklWRV9SRU1PVkFCTEUgICAgICAgICAix8O3zsfHILXwvbrFqSIKICAgSURTX0RSSVZFX0NEUk9NICAgICAgICAgICAgICJDRC1ST00iCiAgIElEU19EUklWRV9MRVRURVJTX0VYQ0VFREVEICAitOe9xcC6ILT1IMDMu/MgteW288DMuuq4piDD37Chx9IgvPYgvvi9wLTPtNkuXG5cbrCiILXltvPAzLrqtMIgud215b3DIEF+WrHuwfbAxyC5rsDauKYgsKHB/bTPtNksILHXt6G8rSC0573FwLogMjaws7q4tNkgtPUguLnAzCDD37Chx9IgvPYgvvi9wLTPtNkiCiAgIElEU19TWVNURU1fRFJJVkVfTEFCRUwgICAgICAivcO9usXbILXltvPAzLrqIgogICBJRFNfQ09ORklSTV9ERUxFVEVfQyAgICAgICAgIrTnvcXAuiDHz7XlILXltvPAzLrqICBDuKYgwfa/7LHiuKYgv/jH1bTPse4/XG5cbrTrus660MDHIMCptbW/7CDHwbfOsde3pcC6IEO15bbzwMy66rChIMDWtNmw7SC/ubvzx8+w7SwgIL74wLi46SC02b/utcmwzcDUtM+02S4guLi+4CC0573FwMwgsOi80yDB+Mfgx8+x4rimIL/4x9G02bjpILndteW9wyC02b3DILi4teW9yr3Dv8AhIgogICBJRFNfQ09MX0RSSVZFTEVUVEVSICAgICAgICAgIrmuwNoiCiAgIElEU19DT0xfRFJJVkVNQVBQSU5HICAgICAgICAiteW288DMuuogx9K05yIKICAgSURTX05PX0RSSVZFX0MgICAgICAgICAgICAgICK0573FwLogIEO15bbzwMy66rimILChwfaw7SDA1sH2IL7KvcC0z7TZLiDAzLDNwLogwcHAuiDAz8DMIL7GtNW0z7TZLlxuXG615bbzwMy66iDFx7+hvK0gW8PfsKFduKYgxay4r8fYvK0guLi15bTCILDNwLsgwNjB9iC4tr3KvcO/wCFcbiIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICBJRFNfQUNDRUxfRlVMTCAgICAgICAgICAgICAgIsD8w7wiCiAgIElEU19BQ0NFTF9TVEFOREFSRCAgICAgICAgICAix6XB2CIKICAgSURTX0FDQ0VMX0JBU0lDICAgICAgICAgICAgICKx4rq7IgogICBJRFNfQUNDRUxfRU1VTEFUSU9OICAgICAgICAgIr7WucS3ucDMvMciCiAgIElEU19EUklWRVJfQUxTQSAgICAgICAgICAgICAiQUxTQSC15bbzwMy59iIKICAgSURTX0RSSVZFUl9FU09VTkQgICAgICAgICAgICJFc291bkQgteW288DMufYiCiAgIElEU19EUklWRVJfT1NTICAgICAgICAgICAgICAiT1NTILXltvPAzLn2IgogICBJRFNfRFJJVkVSX0pBQ0sgICAgICAgICAgICAgIkpBQ0sgteW288DMufYiCiAgIElEU19EUklWRVJfTkFTICAgICAgICAgICAgICAiTkFTILXltvPAzLn2IgogICBJRFNfRFJJVkVSX0FVRElPSU8gICAgICAgICAgIkF1ZGlvIElPIChTb2xhcmlzKSC15bbzwMy59iIKICAgSURTX0RSSVZFUl9DT1JFQVVESU8gICAgICAgICJDb3JlQXVkaW8gteW288DMufYiCiAgIElEU19PUEVOX0RSSVZFUl9FUlJPUiAgICAgICAiJXO4piC/rSC89iC++L3AtM+02SEiCiAgIElEU19TT1VORERSSVZFUlMgICAgICAgICAgICAiu+e/7rXlILXltvPAzLn2IgogICBJRFNfREVWSUNFU19XQVZFT1VUICAgICAgICAgIldhdmUgw+K3wiDA5cShIgogICBJRFNfREVWSUNFU19XQVZFSU4gICAgICAgICAgIldhdmUgwNS3wiDA5cShIgogICBJRFNfREVWSUNFU19NSURJT1VUICAgICAgICAgIk1JREkgw+K3wiDA5cShIgogICBJRFNfREVWSUNFU19NSURJSU4gICAgICAgICAgIk1JREkgwNS3wiDA5cShIgogICBJRFNfREVWSUNFU19BVVggICAgICAgICAgICAgIkF1eCDA5cShIgogICBJRFNfREVWSUNFU19NSVhFUiAgICAgICAgICAgIk1peGVyIMDlxKEiCiAgIElEU19VTkFWQUlMQUJMRV9EUklWRVIgICAgICAit7nB9r26xq64rr+hvK0gsKG0ycfPwfYgvsrAuiC15bbzwMy59rChILnfsN+1x776vcC0z7TZIVxuXG4gJXO4piC3ucH2vbrGrriuv6G8rSDB9r/ssNq9wLTPse4/IgogICBJRFNfV0FSTklORyAgICAgICAgICAgICAgICAgIrDmsO0iCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgSURDX1NZU1BBUkFNU19CVVRUT04gICAgICAgICAgICAixMHGrrfRILnosOYiCiAgIElEQ19TWVNQQVJBTVNfQlVUVE9OX1RFWFQgICAgICAgIsTBxq630SC5rsDaIgogICBJRENfU1lTUEFSQU1TX0RFU0tUT1AgICAgICAgICAgICK52cXByK246SIKICAgSURDX1NZU1BBUkFNU19NRU5VICAgICAgICAgICAgICAiuN60uiC56LDmIgogICBJRENfU1lTUEFSQU1TX01FTlVfVEVYVCAgICAgICAgICK43rS6ILmuwNoiCiAgIElEQ19TWVNQQVJBTVNfU0NST0xMQkFSICAgICAgICAgIrjxt8+52SIKICAgSURDX1NZU1BBUkFNU19TRUxFQ1RJT04gICAgICAgICAivLHFw7XIILnosOYiCiAgIElEQ19TWVNQQVJBTVNfU0VMRUNUSU9OX1RFWFQgICAgIryxxcO1yCC5rsDaIgogICBJRENfU1lTUEFSQU1TX1RPT0xUSVAgICAgICAgICAgICK1tbG4xsEgueiw5iIKICAgSURDX1NZU1BBUkFNU19UT09MVElQX1RFWFQgICAgICAitbWxuMbBILmuwNoiCiAgIElEQ19TWVNQQVJBTVNfV0lORE9XICAgICAgICAgICAgIsOiILnosOYiCiAgIElEQ19TWVNQQVJBTVNfV0lORE9XX1RFWFQgICAgICAgIsOiILmuwNoiCiAgIElEQ19TWVNQQVJBTVNfQUNUSVZFX1RJVExFICAgICAgIsiwvLq1yCDBprjxILi3tOsiCiAgIElEQ19TWVNQQVJBTVNfQUNUSVZFX1RJVExFX1RFWFQgIsiwvLq1yCDBprjxILmuwNoiCiAgIElEQ19TWVNQQVJBTVNfSU5BQ1RJVkVfVElUTEUgICAgIrrxyLC8urXIIMGmuPEguLe06yIKICAgSURDX1NZU1BBUkFNU19JTkFDVElWRV9USVRMRV9URVhUICK68ciwvLq1yCDBprjxILmuwNoiCiAgIElEQ19TWVNQQVJBTVNfTVNHQk9YX1RFWFQgICAgICAgIrjevLzB9iC788DaIMXYvbrGriIKICAgSURDX1NZU1BBUkFNU19BUFBXT1JLU1BBQ0UgICAgICAivu7Hw7iuxMnAzLzHIMDbvvew+LCjIgogICBJRENfU1lTUEFSQU1TX1dJTkRPV19GUkFNRSAgICAgICLDoiDHwbe5wNMiCiAgIElEQ19TWVNQQVJBTVNfQUNUSVZFX0JPUkRFUiAgICAgIsiwvLrIrbXIIMOixrIiCiAgIElEQ19TWVNQQVJBTVNfSU5BQ1RJVkVfQk9SREVSICAgIrrxIMiwvLrIrbXIIMOixrIiCiAgIElEQ19TWVNQQVJBTVNfQlVUVE9OX1NIQURPVyAgICAgIsTBxq630SCx18fUwfYiCiAgIElEQ19TWVNQQVJBTVNfR1JBWV9URVhUICAgICAgICAgIsi4u/Ygua7A2iIKICAgSURDX1NZU1BBUkFNU19CVVRUT05fSElMSUdIVCAgICAixMHGrrfRIMfPwMy288DMxq4iCiAgIElEQ19TWVNQQVJBTVNfQlVUVE9OX0RBUktfU0hBRE9XICLEwcaut9Egvu61zr/uILHXuLLA2iIKICAgSURDX1NZU1BBUkFNU19CVVRUT05fTElHSFQgICAgICAixMHGrrfRILngwL0iCiAgIElEQ19TWVNQQVJBTVNfQlVUVE9OX0FMVEVSTkFURSAgIsTBxq630SC52bLwtqcgueiw5iIKICAgSURDX1NZU1BBUkFNU19IT1RfVFJBQ0tJTkcgICAgICAix9Ygxq63orXIIL7GwMzF2yIKICAgSURDX1NZU1BBUkFNU19BQ1RJVkVfVElUTEVfR1JBRElFTlQgIsiwvLrIrbXIICDBprjxILnZICC79rHyILqvyK0iCiAgIElEQ19TWVNQQVJBTVNfSU5BQ1RJVkVfVElUTEVfR1JBRElFTlQgIrrxyLC8usittcggwaa48bnZILv2sfIguq/IrSIKICAgSURDX1NZU1BBUkFNU19NRU5VX0hJTElHSFQgICAgICAiuN60uiDHz8DMtvPAzMauIgogICBJRENfU1lTUEFSQU1TX01FTlVCQVIgICAgICAgICAgICK43rS6udkiCkVORAo=