LyoKICogV2luZUNmZyByZXNvdXJjZXMKICogS29yZWFuIExhbmd1YWdlIFN1cHBvcnQKICoKICogQ29weXJpZ2h0IDIwMDIgSmFjbyBHcmVlZmYKICogQ29weXJpZ2h0IDIwMDMgRGltaXRyaWUgTy4gUGF1bgogKiBDb3B5cmlnaHQgMjAwMy0yMDA0IE1pa2UgSGVhcm4KICogQ29weXJpZ2h0IDIwMDUgWXVuU29uZyBId2FuZwogKgogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKICoKICovCgpMQU5HVUFHRSBMQU5HX0tPUkVBTiwgU1VCTEFOR19ERUZBVUxUCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCklEUl9XSU5FQ0ZHIE1FTlUgRElTQ0FSREFCTEUKQkVHSU4KICAgIFBPUFVQICIiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICK8s8GkIiwgSURDX0FVRElPX0NPTkZJR1VSRQogICAgRU5ECkVORAoKSUREX0FCT1VUQ0ZHIERJQUxPR0VYIDAsIDAsIDI2MCwgMjcwClNUWUxFIFdTX0NISUxECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIExURVhUICAgICAgICAgICBQQUNLQUdFX1NUUklORyxJRENfU1RBVElDLDExOSwxNywxMjAsOAogICAgQ09OVFJPTCAgICAgICAgIElEQl9XSU5FLElEQ19TVEFUSUMsIlN0YXRpYyIsU1NfQklUTUFQICwxNSwxNywxNTcsMTExCiAgICBMVEVYVCAgICAgICAgICAgImh0dHA6Ly93d3cud2luZWhxLm9yZy8iLElEQ19TVEFUSUMsMTE5LDMxLDEwNiw4CiAgICBMVEVYVCAgICAgICAgICAgIsDMILbzwMy66revuK60wiDA2sCvILzSx8HGrr/+vu7A1LTPtNk7ILTnvcXAuiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24gv6G8rSC4uLXnIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSC+xrehv6G8rSC89sGkx8+wxbOqIMDnuejG98fSILz2IMDWvcC0z7TZOyC288DMvL69uiC59sGvIDIuMcDMsMWzqiwgICi0573FwMcgvLHFw7+hILX7uKUpICC02bilIMPWvcUgufbBr7+hILX7tvMgwPu/67XLtM+02S4uIiwKICAgICAgICAgICAgICAgICAgICBJRENfU1RBVElDLDExOSw0NCwxMjQsNzIKRU5ECgpJRERfQVBQQ0ZHIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIseusde4siC8s8GkICIsSURDX1NUQVRJQywgOCw0LDI0NCwyNDAKICAgIExURVhUICAgICAgICAgICAiV2luZcC6ICCworCiwMcgx66x17iyv6EgtOvHz7+pILTZuKUgwKm1tb/swe4gufbBr8C7ILjwuebH0iC89iDA1r3AtM+02S4gtvPAzLrqt6+4rr/NILHXt6HHyCDFx8fPsO0gv6yw4bXHvu4gwNa0wiDAzCDFx8C6ILHXtekgxcew+iC4tsL5sKHB9rfOIL3DvbrF2yDA/L+qwMyzqiCworCiwMcgx66x17iyILyzwaTAuyC52bLcILDNwNS0z7TZLiAuIiwKICAgICAgICAgICAgICAgICAgICBJRENfU1RBVElDLDE1LDIwLDIyNywzMAogICAgQ09OVFJPTCAgICAgICAgICLHrrHXuLIiLElEQ19BUFBfTElTVFZJRVcsIlN5c0xpc3RWaWV3MzIiLFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AgfCBMVlNfTElTVCB8IExWU19TSU5HTEVTRUwgfCBMVlNfU0hPV1NFTEFMV0FZUywKICAgICAgICAgICAgICAgICAgICAxNSw1MCwyMzAsMTUwCiAgICBQVVNIQlVUVE9OCSAgICAix66x17iyILT1x8+x4igmQSkuLi4iLElEQ19BUFBfQUREQVBQLCA5MCwyMDQsNzUsMTQKICAgIFBVU0hCVVRUT04JICAgICLHrrHXuLIgwaawxcfPseIoJlIpIixJRENfQVBQX1JFTU9WRUFQUCwgMTcwLDIwNCw3NSwxNAogICAgTFRFWFQgICAgICAgICAgICLAqbW1v+zB7iC59sGvKCZXKToiLElEQ19TVEFUSUMsMTYsMjI3LDc1LDE0CiAgICBDT01CT0JPWCAgICAgICAgSURDX1dJTlZFUiw4MywyMjQsMTYzLDU2LENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUCAgICAKRU5ECgpJRERfR1JBUEhDRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiIMOiILyzwaQgIixJRENfU1RBVElDLDgsMjUsMjQ0LDE4MAoKICAgIENPTlRST0wJICAgICJEaXJlY3RYIMeusde4ssDMILHXtenAxyDDor+hvK0guLa/7L26sKEguf6+7rOquOkgwaTB9sfPtbW3zyDH47/rIixJRENfRFhfTU9VU0VfR1JBQiwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE1LDM1LDIzMCw4CiAgICBDT05UUk9MCSAgICAitaW9usWpxb4gtPW67SC59sbbuLUgsKG0ySIsSURDX0RPVUJMRV9CVUZGRVIsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNSw0NSwyMzAsOAogICAgCiAgICBMVEVYVCAJICAgICK4uL7gILTnvcXAxyDDorD8uK7A2rChIMOitenAuyDBpr7ux9G02bjpLCAgtOe9xcC6IMelwdggxde1zriuuKYguriw1CC1ySCwzcDMtNksILHXsM216cC6ILTnvcXAxyCwobvzILWlvbrFqcW+v6Egv7XH4sC7ILnMxKGw7SC0573FwMcgw6IguPG3z7+hIFxuILq4v6nB+rDNwMy02S4guLi+4CDAzCDDorXpwMwgsPy4rrXHwfYgvsq0wrTZuOksILHXsM216cC6ILTnvcXAxyDDoiCw/LiuwNrHz7DtIL+ssOHAzCCy977uIMH6ILDNwMy02S4gsdewzcC6IMOitenAzCC0573FwMcgtaW9usWpxb6w+iC50MGix8+w1CC/rLD8tce+7iDA1sH2IL7KtNm0wiCwzcC7IMDHuczH0bTZLCCx17evs6ogv6G5xLe5wMy8x8C6ICC+7rayIMeusde4ssDMILT1IMDfIMDbtb/H0iC89iDA1rW1t88gtbW/zcHZvPYgwNa1tbfPILW1IMGkyK7H2MH6ILDNwMy02S4iLAogICAgCQkgICAgSURDX1NUQVRJQywxNSw1OCwyMjgsODAKICAgIENPTlRST0wJICAgICLDoiCw/LiuwNqwoSDDoiDBpr7ux8+1tbfPIMfjv+siLElEQ19FTkFCTEVfTUFOQUdFRCwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE1LDEzMiwyMzAsOAogICAgLyogRklYTUU6IHRoZSB3b3JkaW5nIG9mIHRoaXMgZXhwbGFuYXRpb24gY291bGQgYmUgYSBsb3QgYmV0dGVyICovCiAgICBMVEVYVCAgICAgICAgICAgIiC0573FwLogwKm1tb/swe4gtaW9usWpxb4gv6G5xMC7ICwguPC15yDDosC7ILChu/MgyK246cC4t84gwabH0cfSILDNwM7B9i4svsa0z7jpILTnvcXAxyDHpcHYILWlvbrFqcW+wMcgw6K16cDMIMCnxKHHz7DUIMfSICCwzcDOwfa4piC8scXDx9K89iDA1rTZLiIsCiAgICAgICAgICAgICAgICAgICAgSURDX1NUQVRJQywxNSw3MywyMjgsMjgKICAgIExURVhUICAgICAgICAgICAitaW9usWpxb4gxamx4joiLElEQ19ERVNLVE9QX1NJWkUsMTUsMTg4LDQ0LDgsV1NfRElTQUJMRUQKICAgIExURVhUICAgICAgICAgICAiWCIsSURDX0RFU0tUT1BfQlksMTA4LDE4OCw4LDgsV1NfRElTQUJMRUQKICAgIENPTlRST0wgICAgICAgICAisKG78yC1pb26xanFviDI5LO7s7ux4iIsSURDX0VOQUJMRV9ERVNLVE9QLCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsMTczLDIzMCwxMAoJCSAgICAKICAgIEVESVRURVhUICAgICAgICBJRENfREVTS1RPUF9XSURUSCw2NCwxODgsNDAsMTIsRVNfQVVUT0hTQ1JPTEwgfCBFU19OVU1CRVIgfCBXU19ESVNBQkxFRAogICAgRURJVFRFWFQgICAgICAgIElEQ19ERVNLVE9QX0hFSUdIVCwxMTcsMTg4LDQwLDEyLEVTX0FVVE9IU0NST0xMIHwgRVNfTlVNQkVSIHwgV1NfRElTQUJMRUQKCiAgICBHUk9VUEJPWCAgICAgICAgIrTZwMy3usauIDNEICIsSURDX1NUQVRJQyw4LDIxMCwyNDQsNTAKCiAgICBMVEVYVAkgICAgIrn2xdi9uiC9psDMtPUgwfa/+DogIixJRENfU1RBVElDLDE1LDIyMCw4MCwzMAogICAgQ09NQk9CT1gJICAgIElEQ19EM0RfVlNIQURFUl9NT0RFLDEwMCwyMTgsMTUwLDcwLENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAoKICAgIENPTlRST0wgICAgICAgICAix8i8vyC9psDMtPUgx+O/6yAox8+15b/+vu6/obytIMH2v/jH0bTZuOkpIixJRENfRDNEX1BTSEFERVJfTU9ERSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE1LDIzNywyMzAsMTAKRU5ECgpJRERfRExMQ0ZHIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIiBETEwgv8C59rbzwMy15SAiLElEQ19TVEFUSUMsOCw0LDI0NCwyNDAKICAgIExURVhUICAgICAgICAgICAitb/A+yC4tcWpILbzwMy66revuK60wiCws7qwwPvAuLfOILO7wOUgKFdpbmW/oSDAx8fYIMGmsPgpwMyzqiCz18DMxry66iAowKm1tb/swe6zqiDHrrHXuLK/oSDAx8fYIMGmsPgpwLi3ziDB9sGktcm89iDA1r3AtM+02S4iCiAgICAgICAgICAgICAgICAgICAgLElEQ19TVEFUSUMsMTYsMTYsMjIwLDMyCiAgICBMVEVYVCAgICAgICAgICAgIrbzwMy66revuK7AxyC79SC/wLn2tvPAzLXlOiIsSURDX1NUQVRJQywxNiw1OCwxMDAsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19ETExDT01CTywxNiw2OCwxNDAsMTQsQ0JTX0RST1BET1dOIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AgfCBDQlNfU09SVCB8IENCU19MT1dFUkNBU0UKICAgIFBVU0hCVVRUT04gICAgICAitPXHz7HiKCZBKSIsSURDX0RMTFNfQURERExMLCAxNjQsNjgsODIsMTMsQlNfREVGUFVTSEJVVFRPTiAKICAgIExURVhUICAgICAgICAgICAiwbjA58fPtMIgv8C59rbzwMy15ToiLElEQ19TVEFUSUMsMTYsODYsMTAwLDgKICAgIExJU1RCT1ggICAgICAgICBJRENfRExMU19MSVNULDE2LDk2LDE0MCwxNDAsV1NfQk9SREVSIHwgV1NfVEFCU1RPUCB8IFdTX1ZTQ1JPTEwKICAgIFBVU0hCVVRUT04gICAgICAisO3EobHiKCZFKSIsSURDX0RMTFNfRURJVERMTCwxNjQsOTYsODIsMTQKICAgIFBVU0hCVVRUT04gICAgICAiwfa/7LHiKCZSKSIsSURDX0RMTFNfUkVNT1ZFRExMLDE2NCwxMTQsODIsMTQgCkVORAoKSUREX0xPQURPUkRFUiBESUFMT0cgRElTQ0FSREFCTEUgODAsIDkwLCAxMTAsIDkyClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICK1pLHiIMbtwf0iCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAit8615SC8+LytICIsSURDX1NUQVRJQyw4LDQsOTQsNjYKICAgIENPTlRST0wgICAgICAgICAis7vA5SgmQikoV2luZSkiLElEQ19SQURfQlVJTFRJTiwiQnV0dG9uIiwgQlNfQVVUT1JBRElPQlVUVE9OIHwgV1NfR1JPVVAsMTYsMTQsNzUsMTAKICAgIENPTlRST0wgICAgICAgICAis9fAzMa8uuooJk4pKFdpbikiLElEQ19SQURfTkFUSVZFLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04sMTYsMjQsNzUsMTAKICAgIENPTlRST0wgICAgICAgICAis7vA5T6z18DMxry66igmbCkiLElEQ19SQURfQlVJTFRJTl9OQVRJVkUsIkJ1dHRvbiIsIEJTX0FVVE9SQURJT0JVVFRPTiwxNiwzNCw3NSwxMAogICAgQ09OVFJPTCAgICAgICAgICKz18DMxry66j6zu8DlKCZ2KSIsSURDX1JBRF9OQVRJVkVfQlVJTFRJTiwiQnV0dG9uIiwgQlNfQVVUT1JBRElPQlVUVE9OLDE2LDQ0LDc1LDEwCiAgICBDT05UUk9MICAgICAgICAgIr7IILvnv+soJkQpIixJRENfUkFEX0RJU0FCTEUsIkJ1dHRvbiIsIEJTX0FVVE9SQURJT0JVVFRPTiwxNiw1NCw3NSwxMAogICAgREVGUFVTSEJVVFRPTiAgICLIrsDOIixJRE9LLDgsNzQsNDUsMTQsV1NfR1JPVVAKICAgIFBVU0hCVVRUT04gICAgICAiw+u80iIsSURDQU5DRUwsNTcsNzQsNDUsMTQsV1NfR1JPVVAKRU5ECgpJRERfRFJJVkVDRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiteW288DMuuogx9K05yAiLElEQ19TVEFUSUMsOCw0LDI0NCwyNDAKICAgIENPTlRST0wgICAgICAgICAiTGlzdHZpZXciLElEQ19MSVNUX0RSSVZFUywiU3lzTGlzdFZpZXczMiIsTFZTX1JFUE9SVCB8IExWU19BVVRPQVJSQU5HRSB8IExWU19BTElHTkxFRlQgfAogICAgICAgICAgICAgICAgICAgIExWU19TSU5HTEVTRUwgfCBXU19CT1JERVIgfCBXU19UQUJTVE9QLCAxNSwxOCwyMzIsNzYKICAgIFBVU0hCVVRUT04gICAgICAitPXHz7HiKCZBKS4uLiIsSURDX0JVVFRPTl9BREQsMTUsOTgsMzcsMTQKICAgIFBVU0hCVVRUT04gICAgICAiwfa/7LHiKCZSKSIsSURDX0JVVFRPTl9SRU1PVkUsNTYsOTgsMzcsMTQKICAgIFBVU0hCVVRUT04gICAgICAiwNq1v7yxxcMoJkQpLi4uIixJRENfQlVUVE9OX0FVVE9ERVRFQ1QsMTk3LDk4LDQ5LDE0CgogICAgLyogZWRpdGluZyBkcml2ZSBkZXRhaWxzICovCiAgICBMVEVYVCAgICAgICAgICAgIrDmt84oJlApOiIsSURDX1NUQVRJQywxNSwxMjMsMjAsOSAgICAKICAgIEVESVRURVhUICAgICAgICBJRENfRURJVF9QQVRILDQxLDEyMCwxNjAsMTMsRVNfQVVUT0hTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBQVVNIQlVUVE9OICAgICAgIsOjseIoJkIpLi4uIixJRENfQlVUVE9OX0JST1dTRV9QQVRILDIwNiwxMjAsNDAsMTMKICAgIAogICAgTFRFWFQgICAgICAgICAgICLFuMDUKCZUKToiLElEQ19TVEFUSUNfVFlQRSwxNSwxMzgsMjEsMTAKICAgIENPTUJPQk9YICAgICAgICBJRENfQ09NQk9fVFlQRSw0MSwxMzUsNzcsNjAsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICAKICAgIExURVhUICAgICAgICAgICAitvO6p7D6IL3DuK6+8yC5+MijIixJRENfTEFCRUxTRVJJQUxfU1RBVElDLDE1LDE1NSw5NSwxMAogICAgCiAgICBQVVNIQlVUVE9OICAgICAgIsPfsKEgv8m8xyC6uLHiKCZTKSIsSURDX0JVVFRPTl9TSE9XX0hJREVfQURWQU5DRUQsMTg2LDEzNiw2MCwxMwogICAgQ09OVFJPTCAgICAgICAgICLA5cSht866zsXNIMDatb8gsMu79igmZik6IixJRENfUkFESU9fQVVUT0RFVEVDVCwiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPUkFESU9CVVRUT04sMTUsMTY2LDkzLDEwCiAgICBFRElUVEVYVCAgICAgICAgSURDX0VESVRfREVWSUNFLDI3LDE3NiwxNzQsMTMsRVNfQVVUT0hTQ1JPTEwKICAgIFBVU0hCVVRUT04gICAgICAiw6Ox4igmdykuLi4iLElEQ19CVVRUT05fQlJPV1NFX0RFVklDRSwyMDYsMTc2LDQwLDEzCiAgICBDT05UUk9MICAgICAgICAgIrz2tb8gx9K05ygmTSk6IixJRENfUkFESU9fQVNTSUdOLCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9SQURJT0JVVFRPTiwxNSwxOTUsNjksMTAKCiAgICBMVEVYVCAgICAgICAgICAgIrbzuqcoJkwpOiIsSURDX1NUQVRJQ19MQUJFTCwzMywyMDgsMjksMTIKICAgIEVESVRURVhUICAgICAgICBJRENfRURJVF9MQUJFTCw2MywyMDUsNzgsMTMsRVNfQVVUT0hTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIr3DuK6+8ygmZSk6IixJRENfU1RBVElDX1NFUklBTCwzMywyMjUsMjksMTIKICAgIEVESVRURVhUICAgICAgICBJRENfRURJVF9TRVJJQUwsNjMsMjIxLDc4LDEzLEVTX0FVVE9IU0NST0xMIHwgV1NfVEFCU1RPUAoKICAgIENPTlRST0wgICAgICAgICAivPvAuiDGxMDPKC7GxMDPKSC6uL+pwdax4iIsSURDX1NIT1dfRE9UX0ZJTEVTLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsOCwyNjAsMjMwLDgKRU5ECgpJRERfQVVESU9DRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiteW288DMufYgvLHFwyAiLElEQ19TVEFUSUMsOCw0LDI0NCwxOTUKICAgIExURVhUICAgICAgICAgICAiv/jHz7TCILXltvPAzLn2ILvzwNq/obytIMO8xanH1MC4t84gu+e/7rXlILXltvPAzLn2ILyxxcMuILyxxcPHz8H2IL7KtMIgteW288DMufa0wiC757/rutKwoS602b7nx9EgteW288DMufYgvLHFw8C6ILrxw9/DtS6/wLilwsogxay4r8C4t84gteW288DMufYgvLHFwy4iLElEQ19TVEFUSUMsMTUsMjAsMjI3LDMwCiAgICBMVEVYVAkgICAgIr/AtfC/wCC15bbzwMy59jogIixJRENfU1RBVElDLDEwLDIwLDIyNywzMAogICAgQ09OVFJPTCAgICAgICAgICLA5cShIixJRENfQVVESU9fVFJFRSwiU3lzVHJlZVZpZXczMiIsV1NfQk9SREVSIHwgV1NfVEFCU1RPUCwxNSw1MCwxNDAsMTQwIAogICAgUFVTSEJVVFRPTgkgICAgIsGmvu7GxyIsSURDX0FVRElPX0NPTlRST0xfUEFORUwsMTcwLDUwLDU5LDE0CiAgICBHUk9VUEJPWCAgICAgICAgIrTZwMy3usauILvnv+615SAiLElEQ19TVEFUSUMsOCwyMDUsMjQ0LDYwCiAgICBMVEVYVAkgICAgIsfPteW//r7uILChvNM6ICIsSURDX1NUQVRJQywxNSwyMTUsOTAsMTAKICAgIENPTUJPQk9YCSAgICBJRENfRFNPVU5EX0hXX0FDQ0VMLDEwMCwyMTMsMTUwLDcwLENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgQ09OVFJPTCAgICAgICAgICK15bbzwMy59iC+1rnEIixJRENfRFNPVU5EX0RSVl9FTVVMLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsMjMwLDIzMCwxMApFTkQKCklERF9ERVNLVE9QX0lOVEVHUkFUSU9OIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIr/cvuciLElEQ19TVEFUSUMsOCw0LDI0NCwxMDYKICAgIExURVhUICAgICAgICAgICAixde4tjoiLElEQ19TVEFUSUMsMTUsMTYsMjMwLDgKICAgIENPTUJPQk9YICAgICAgICBJRENfVEhFTUVfVEhFTUVDT01CTywxNSwyNCwyMzAsMTQsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBQVVNIQlVUVE9OICAgICAgIsXXuLYgvLPEoS4uLiIsSURDX1RIRU1FX0lOU1RBTEwsMTUyLDM4LDkzLDE0CiAgICBMVEVYVCAgICAgICAgICAgIrv2u/M6IixJRENfVEhFTUVfQ09MT1JURVhULDE1LDU0LDIzMCw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX1RIRU1FX0NPTE9SQ09NQk8sMTUsNjIsMjMwLDE0LENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICLFqbHiOiIsSURDX1RIRU1FX1NJWkVURVhULDE1LDgwLDIzMCw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX1RIRU1FX1NJWkVDT01CTywxNSw4OCwyMzAsMTQsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBHUk9VUEJPWCAgICAgICAgIry/IMb6tPUiLElEQ19TVEFUSUMsOCwxMTQsMjQ0LDEwMAogICAgQ09OVFJPTCAgICAgICAgICJMaXN0dmlldyIsSURDX0xJU1RfU0ZQQVRIUywiU3lzTGlzdFZpZXczMiIsTFZTX1JFUE9SVCB8IExWU19BVVRPQVJSQU5HRSB8IExWU19BTElHTkxFRlQgfAogICAgICAgICAgICAgICAgICAgICBMVlNfU0lOR0xFU0VMIHwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUCwgMTUsMTI2LDIzMCw2NAogICAgQ09OVFJPTCAgICAgICAgICK/qbHit84guLXFqToiLElEQ19MSU5LX1NGUEFUSCwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1h8V1NfVEFCU1RPUHxXU19ESVNBQkxFRCwxNSwxOTUsNTAsMTMKICAgIEVESVRURVhUICAgICAgICAgSURDX0VESVRfU0ZQQVRILDY1LDE5NSwxNDUsMTMsRVNfQVVUT0hTQ1JPTEx8V1NfVEFCU1RPUHxXU19ESVNBQkxFRAogICAgUFVTSEJVVFRPTiAgICAgICLDo7HiIixJRENfQlJPV1NFX1NGUEFUSCwyMTUsMTk1LDMwLDEzLFdTX0RJU0FCTEVECkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEU19XSU5FX1ZFUlNJT04gICAgICAgICJDVlMiCiAgICBJRFNfVEFCX0FQUExJQ0FUSU9OUyAgICAix66x17iyIgogICAgSURTX1RBQl9ETExTICAgICAgICAgICAgIrbzwMy66revuK4iCiAgICBJRFNfVEFCX0RSSVZFUyAgICAgICAgICAiteW288DMuuoiCiAgICBJRFNfQ0hPT1NFX1BBVEggICAgICAgICAiwK+00L26ILjxwPsgxvq09bimILyxxcPHz73KvcO/wC4iCiAgICBJRFNfSElERV9BRFZBTkNFRCAgICAgICAiw9+woSC/ybzHILz7seKx4iIKICAgIElEU19TSE9XX0FEVkFOQ0VEICAgICAgICLD37ChIL/JvMcguri/qcHWseIiCiAgICBJRFNfTk9USEVNRSAgICAgICAgICAgICAiKMXXuLYgvvjAvSkiCiAgICBJRFNfVEFCX0dSQVBISUNTICAgICAgICAisde3ocfIIgogICAgSURTX1RBQl9ERVNLVE9QX0lOVEVHUkFUSU9OICK1pb26xanFviC8s8GkIgogICAgSURTX1RBQl9BVURJTyAgICAgICAgICAgIr/AtfC/wCIKICAgIElEU19UQUJfQUJPVVQgICAgICAgICAgICLBpLq4IgogICAgSURTX1dJTkVDRkdfVElUTEUgICAgICAgIldpbmUgvLPBpCIKICAgIElEU19XSU5FQ0ZHX1RJVExFX0FQUCAgICIlc7imIMCnx9Egd2luZSC8s8GkIgogICAgSURTX1RIRU1FRklMRSAgICAgICAgICAgIsXXuLYgxsTAzyIKICAgIElEU19USEVNRUZJTEVfU0VMRUNUICAgICLF17i2IMbEwM8gvLHFwyIKICAgIElEU19BVURJT19NSVNTSU5HICAgICAgICK3ucH2vbrGrriuv6G8rSDB9sGktcggIL7utrIgv8C18L/AILXltvPAzLn2tbUgvvi9wLTPtNkuXG5cbrTnvcXAzCC15bbzwMy59rimILyxxcPHz7HiuKYgw9/DtcfVtM+02S5cbrTnvcXAuiDAzCC15bbzwMy59rOqILChtMnH0SC02bilILXltvPAzLn2uKYgu+e/68fSILz2IMDWvcC0z7TZLlxuXG60573FwLogud215b3DILyxxcPHz7DtIMWsuK/H2L7fILXLtM+02S4iCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEU19ETExfV0FSTklORyAgICAgICAgICLAzCC288DMuuq3r7iuwMcgt8615SC8+MCnuKYgudmy2bTCILDNwLsgw9/DtcfPwfYgvsq9wLTPtNkuLlxutOe9xcC6ICDBpLi7t84gv/jH1bTPse4/IgogICAgSURTX0RMTF9XQVJOSU5HX0NBUFRJT04gIrDmsO06IL3DvbrF2yC288DMuuq3r7iuIgogICAgSURTX0RMTF9OQVRJVkUgICAgICAgICAgIrPXwMzGvLrqIgogICAgSURTX0RMTF9CVUlMVElOICAgICAgICAgIrO7wOUiCiAgICBJRFNfRExMX05BVElWRV9CVUlMVElOICAis9fAzMa8uuosILO7wOUiCiAgICBJRFNfRExMX0JVSUxUSU5fTkFUSVZFICAis7vA5Swgs9fAzMa8uuoiCiAgICBJRFNfRExMX0RJU0FCTEVEICAgICAgICAiutKwobTJIgogICAgSURTX1NIRUxMX0ZPTERFUiAgICAgICAgIry/IMb6tPUiCiAgICBJRFNfTElOS1NfVE8gICAgICAgICAgICAiv6mx4rfOILi1xakiCkVORAo=