LyoKICogS29yZWFuIHJlc291cmNlcyBmb3IgV0xEQVAzMgogKgogKiBDb3B5cmlnaHQgMjAwNSBZdW5Tb25nIEh3YW5nCiAqIAogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EKICovCgpMQU5HVUFHRSBMQU5HX0tPUkVBTiwgU1VCTEFOR19ORVVUUkFMCgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQp7CiAgICAwICK8urD4IgogICAgMSAiwNu+9yC/obevIgogICAgMiAix8G3zsXkxN0gv6G3ryIKICAgIDMgIr3DsKMgwabH0SC1tbTeIgogICAgNCAixamx4iDBpsfRILW1tN4iCiAgICA1ICLA37j4tcgguvGxsyIKICAgIDYgIsDftcgguvGxsyIKICAgIDcgIsDOwfW55rn9wLogwfa/+MfPwfYgvsq9wLTPtNkiCiAgICA4ICKwrbfCx9EgwM7B9cDMIL/ksbi1y7TPtNkiCiAgICA5ICLD38O1ICh2MikiCiAgICAxMCAiw9/DtSIKICAgIDExICKw/LiuIMfRtbW4piCz0b76vcC0z7TZIgogICAgMTIgIsShuO3A+yDIrsDlwLogsKG0ycfPwfYgvsq9wLTPtNkiCiAgICAxMyAiseK50Ly6wMwgv+SxuLXLtM+02SIKICAgIDE0ICIiCiAgICAxNSAiIgogICAgMTYgIr7utrIgvNO8urW1IL74vcC0z7TZIgogICAgMTcgIsGkwMe1x8H2IL7KwLogxbjA1CIKICAgIDE4ICK+7r/vuK7B9iC+yr3AtM+02SIKICAgIDE5ICKwrcGmIMCnud0iCiAgICAyMCAivNO8usDMs6ogsKrAzCDBuMDnx9W0z7TZIgogICAgMjEgIsDfuPi1yCC5rrn9IgogICAgMjIgIiIKICAgIDIzICIiCiAgICAyNCAiIgogICAgMjUgIiIKICAgIDI2ICIiCiAgICAyNyAiIgogICAgMjggIiIKICAgIDI5ICIiCiAgICAzMCAiIgogICAgMzEgIiIKICAgIDMyICK+7rayILC0w7y1tSC++MC9IgogICAgMzMgIkFsaWFzILmuwaYiCiAgICAzNCAiwN+4+LXIIEROILmuuf0iCiAgICAzNSAiwMzB7ihJUykguK7HwShMZWFmKSIKICAgIDM2ICJBbGlhcyC18Le5xtu3sb26ILmuwaYiCiAgICAzNyAiIgogICAgMzggIiIKICAgIDM5ICIiCiAgICA0MCAiIgogICAgNDEgIiIKICAgIDQyICIiCiAgICA0MyAiIgogICAgNDQgIiIKICAgIDQ1ICIiCiAgICA0NiAiIgogICAgNDcgIiIKICAgIDQ4ICK6zsD7wP3H0SDAzsH1IgogICAgNDkgIsDfuPi1yCDB9bjtvK0iCiAgICA1MCAiw+a60MfPwfYgvsrAuiCxx7iuIgogICAgNTEgIrnZu90iCiAgICA1MiAiutKwobTJIgogICAgNTMgIr3Hx+DHz7TCILDNwMwguLbAvb+hILO7xbDB9iC+yr3AtM+02SIKICAgIDU0ICK358fBsKEgud+w37XHvvq9wLTPtNkiCiAgICA1NSAiIgogICAgNTYgIiIKICAgIDU3ICIiCiAgICA1OCAiIgogICAgNTkgIiIKICAgIDYwICLBpLfEIMGmvu6woSC6/MGzvcC0z7TZIgogICAgNjEgIsDOtaa9uiC5/MCnIL+ht68iCiAgICA2MiAiIgogICAgNjMgIiIKICAgIDY0ICK47bjtIMCnud0iCiAgICA2NSAisLTDvCDFrLehvbogwKe53SIKICAgIDY2ICK30C24rsfBuKYgtfu4piC89iC++L3AtM+02SIKICAgIDY3ICJSRE7AuiC1+7imvPYgvvi9wLTPtNkiCiAgICA2OCAiwMy5zCDBuMDnx9W0z7TZIgogICAgNjkgIr7utrIgsLTDvCDFrLehvboguPC15bW1IL74vPy0z7TZIgogICAgNzAgIrDhsPqwoSCzyrmrIMWutM+02SIKICAgIDcxICK02b7nx9EgRFNBc8DMIMDbv+vH1bTPtNkuIgogICAgNzIgIiIKICAgIDczICIiCiAgICA3NCAiIgogICAgNzUgIiIKICAgIDc2ICIiCiAgICA3NyAiIgogICAgNzggIiIKICAgIDc5ICIiCiAgICA4MCAitNm4pSC5rsGmIgogICAgODEgIrytudkgtNm/7iIKICAgIDgyICK3zsTDIL+ht68iCiAgICA4MyAiwM7E2rX5IL+ht68iCiAgICA4NCAitfDE2rX5IL+ht68iCiAgICA4NSAivcOwoyDDyrD6IgogICAgODYgIr7LvPYgvvi0wiDAzsH1IgogICAgODcgIsfKxc0gv6G3ryIKICAgIDg4ICK757/rwNqwoSDD67zSx9QiCiAgICA4OSAiuMWws7qvvPYgv6G3ryIKICAgIDkwICK43rjwuK4gvvjAvSIKICAgIDkxICJMREFQILytufa/oSC/rLDhx9K89iC++L3AtM+02SIKICAgIDkyICIgTERBUCDHwbfOxeTE3cDHIMDMILn2wa/AuiCx1yDA2773wLsgwfa/+MfPwfYgvsq9wLTPtNkiCiAgICA5MyAiwfbBpLXIIMGmvu60wiC43ry8wfa/obytILnfsN/H0iC89iC++L3AtM+02SIKICAgIDk0ICK+7rayILDhsPq1tSC43ry8wfa/oSDBuMDnx8/B9iC+yr3AtM+02SIKICAgIDk1ICK09SC4ucC6ILDhsPqwoSC1ub7Gv9S9wLTPtNkiCiAgICA5NiAiuK7G27eywLsgtNm357TCILW/vsjAxyC358fBIgogICAgOTcgIriuxtu3siDIqSDBpsfRv6EgtbW03sffvcC0z7TZIgp9Cg==