LyoKICogV2luZUNmZyByZXNvdXJjZXMKICogUnVzc2lhbiBMYW5ndWFnZSBTdXBwb3J0CiAqCiAqIENvcHlyaWdodCAyMDAzIElnb3IgU3RlcGluCiAqIENvcHlyaWdodCAyMDA2IFZpdGFsaXkgTWFyZ29sZW4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBCiAqCiAqLwoKTEFOR1VBR0UgTEFOR19SVVNTSUFOLCBTVUJMQU5HX0RFRkFVTFQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKSURSX1dJTkVDRkcgTUVOVSBESVNDQVJEQUJMRQpCRUdJTgogICAgUE9QVVAgIiIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIkNvbmZpZ3VyZSIsIElEQ19BVURJT19DT05GSUdVUkUKICAgIEVORApFTkQKCklERF9BQk9VVENGRyBESUFMT0dFWCAwLCAwLCAyNjAsIDI3MApTVFlMRSBXU19DSElMRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBMVEVYVCAgICAgICAgICAgUEFDS0FHRV9TVFJJTkcsSURDX1NUQVRJQywxMTksMTcsMTIwLDgKICAgIENPTlRST0wgICAgICAgICBJREJfV0lORSxJRENfU1RBVElDLCJTdGF0aWMiLFNTX0JJVE1BUCAsMTUsMTcsMTU3LDExMQogICAgTFRFWFQgICAgICAgICAgICJodHRwOi8vd3d3LndpbmVocS5vcmcvIixJRENfU1RBVElDLDExOSwzMSwxMDYsOAovKgogICAgTFRFWFQgICAgICAgICAgICLd8uAg4ejh6+ju8uXq4CD/4uv/5fLx/yDx4u7h7uTt++wg7/Du4/Dg7Ozt++wg7uHl8e/l9+Xt6OXsOyDi+yDs7ubl8uUg8ODx7/Du8fLw4O3/8vwg5bgg6C/o6+gg7O7k6PTo9ujw7uLg8vwg8e7j6+Dx7e4g8/Hr7uLo/+wg6+j25e3n6OggR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCDu7/Ph6+jq7uLg7e3u6SBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IOLl8PHo6CAyLjEg6+j25e3n6Ogg6OvoICjt4CDi4PjlIPPx7O7y8OXt6OUpIOv+4e7pIOHu6+XlIO/u5+Tt5ekuIiwKKi8KICAgIExURVhUICAgICAgICAgICAiVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4iLAogICAgICAgICAgICAgICAgICAgIElEQ19TVEFUSUMsMTE5LDQ0LDEyNCw3MgpFTkQKCklERF9BUFBDRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiIM3g8fLw7unq4CDv8Ojr7ubl7ejpICIsSURDX1NUQVRJQywgOCw0LDI0NCwyNDAKICAgIExURVhUICAgICAgICAgICAiV2luZSDs7ubl8iDo7Ojy6PDu4uDy/CDr/uHz/iDi5fDx6P4gV2luZG93cyDk6/8g6uDm5O7j7iDv8Ojr7ubl7ej/LiDd8uAg4urr4OTq4CDx4v/n4O3gIPEg4urr4OTq4OzoIMHo4evo7vLl6ugg6CDD8OD06OrgLCD38u4g7+7n4u7r/+XyIOjn7OXt5e3o5SDt4PHy8O7l6iDiIP3y6PUg4urr4OTq4PUg6uDqIOTr/yDu7/Dl5OXruO3t7uPuIO/w6Ovu5uXt6P8sIPLg6iDoIOPr7uHg6/zt7i4iLAogICAgICAgICAgICAgICAgICAgIElEQ19TVEFUSUMsMTUsMjAsMjI3LDYwCiAgICBDT05UUk9MICAgICAgICAgIs/w6Ovu5uXt6P8iLElEQ19BUFBfTElTVFZJRVcsIlN5c0xpc3RWaWV3MzIiLFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AgfCBMVlNfTElTVCB8IExWU19TSU5HTEVTRUwgfCBMVlNfU0hPV1NFTEFMV0FZUywKICAgICAgICAgICAgICAgICAgICAxNSw2NSwyMzAsMTM0CiAgICBQVVNIQlVUVE9OCSAgICAiJsTu4eDi6PL8IO/w6Ovu5uXt6OUuLi4iLElEQ19BUFBfQUREQVBQLCA2OCwyMDQsOTQsMTQKICAgIFBVU0hCVVRUT04JICAgICIm0+Tg6+jy/CDv8Ojr7ubl7ejlIixJRENfQVBQX1JFTU9WRUFQUCwgMTY0LDIwNCw3OCwxNAogICAgTFRFWFQgICAgICAgICAgICImwuXw8ej/IFdpbmRvd3M6IixJRENfU1RBVElDLDE3LDIyNiw1OCw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX1dJTlZFUiw4MywyMjQsMTYzLDU2LENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUCAgICAKRU5ECgpJRERfR1JBUEhDRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiIM3g8fLw7unq6CDu6u3gICIsSURDX1NUQVRJQyw4LDQsMjQ0LDE4MAoKICAgIENPTlRST0wJICAgICLQ4Ofw5fjo8vwg7/Do6+7m5e3o/iBEaXJlY3RYIPPk5fDm6OLg8vwg7Pv4/CDiIPHi7rjsIO7q7eUiLElEQ19EWF9NT1VTRV9HUkFCLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsMTQsMjM1LDgKICAgIENPTlRST0wJICAgICLQ4Ofw5fjo8vwg7OXt5eTm5fDzIO7q7u0g8+/w4OLr//L8IO7q7eDs6CBXaW5lIixJRENfRU5BQkxFX01BTkFHRUQsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNSwzNCwyMzAsOAoKICAgIExURVhUICAgICAgICAgICAixfHr6CDi6uv+9+jy/CD97PPr//bo/iDw4OHu9+Xj7iDx8u7r4Cwg8u4g4vHlIO7q7eAg4fPk8/Ig7vLu4fDg5uDy/PH/IOIg7uTt7uwgJ+Lo8PLz4Ov87e7sIP3q8ODt5Scg5+Dk4O3t7uPuIPDg5+zl8OAuIMjt4PflIO7q7eAg8ODn7OX54P7y8f8sIOrg6iDu4fv37e4sIO3gIPHy4O3k4PDy7e7sIPDg4e735ewg8fLu6+UuIiwKICAgICAgICAgICAgICAgICAgICBJRENfU1RBVElDLDE1LDExNywyMjgsMzYKICAgIExURVhUICAgICAgICAgICAi0ODn7OXwIPDg4e735ePuIPHy7uvgOiIsSURDX0RFU0tUT1BfU0laRSwxNSwxNjcsNDQsOCxXU19ESVNBQkxFRAogICAgTFRFWFQgICAgICAgICAgICJYIixJRENfREVTS1RPUF9CWSwxMDgsMTY3LDgsOCxXU19ESVNBQkxFRAogICAgQ09OVFJPTCAgICAgICAgICLd7PPr6PDu4uDy/CDi6PDy8+Dr/O376SDw4OHu9+jpIPHy7usiLElEQ19FTkFCTEVfREVTS1RPUCwiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE1LDE1MiwyMzAsMTAKCiAgICBFRElUVEVYVCAgICAgICAgSURDX0RFU0tUT1BfV0lEVEgsNjQsMTY3LDQwLDEyLEVTX0FVVE9IU0NST0xMIHwgRVNfTlVNQkVSIHwgV1NfRElTQUJMRUQKICAgIEVESVRURVhUICAgICAgICBJRENfREVTS1RPUF9IRUlHSFQsMTE3LDE2Nyw0MCwxMixFU19BVVRPSFNDUk9MTCB8IEVTX05VTUJFUiB8IFdTX0RJU0FCTEVECgogICAgR1JPVVBCT1ggICAgICAgICIgRGlyZWN0M0QgIixJRENfU1RBVElDLDgsMTg5LDI0NCw0NQoKICAgIExURVhUCSAgICAiwuXw+Ojt7fvlIPjl6eTl8Ps6ICIsSURDX1NUQVRJQywxNSwxOTksMTIwLDMwCiAgICBDT01CT0JPWAkgICAgSURDX0QzRF9WU0hBREVSX01PREUsMTIwLDE5NywxMjUsNzAsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCgogICAgQ09OVFJPTCAgICAgICAgICLC6uv+9+jy/CBQaXhlbCBTaGFkZXIgKOXx6+gg7+7k5OXw5uji4OXy8f8g7uHu8PPk7uLg7ejl7CkiLElEQ19EM0RfUFNIQURFUl9NT0RFLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsMjE2LDIzMCwxMAogICAgR1JPVVBCT1ggICAgICAgICIg0ODn8OX45e3o5SD96vDg7eAgIixJRENfU1RBVElDLDgsMjQyLDI0NCwyNQogICAgQ09OVFJPTCAgICAgICAgICIiLCBJRENfUkVTX1RSQUNLQkFSLCAibXNjdGxzX3RyYWNrYmFyMzIiLFdTX1RBQlNUT1AsMTIsMjUwLDE4NywxNQogICAgRURJVFRFWFQgICAgICAgIElEQ19SRVNfRFBJRURJVCwyMDQsMjUwLDIzLDEzLEVTX05VTUJFUnxXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgImRwaSIsSURDX1NUQVRJQywyMzUsMjUyLDEwLDgKRU5ECgpJRERfRExMQ0ZHIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIiDH4Ozl+eXt6P8gRExMICIsSURDX1NUQVRJQyw4LDQsMjQ0LDI0MAogICAgTFRFWFQgICAgICAgICAgICLH5OXx/CDz6uDn++Lg5fLx/ywg6uDq8/4g5Ojt4Ozo9+Xx6ugg7+7k6uv+9+Dl7PP+IOHo4evo7vLl6vMgKERMTCkg6PHv7uv85+7i4PL8OiDi8fLw7uXt7fP+IOIgV2luZSDo6+gg8fLu8O7t7f7+ICjo5yBXaW5kb3dzKS4iCiAgICAgICAgICAgICAgICAgICAgLElEQ19TVEFUSUMsMTYsMTYsMjIwLDMyCiAgICBMVEVYVCAgICAgICAgICAgIs3u4u7lIOfg7OX55e3o5SDk6/8g4ejh6+ju8uXq6DoiLElEQ19TVEFUSUMsMTYsNTgsMTYwLDgKICAgIENPTUJPQk9YICAgICAgICBJRENfRExMQ09NQk8sMTYsNjgsMTQwLDE0LENCU19EUk9QRE9XTiB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QIHwgQ0JTX1NPUlQgfCBDQlNfTE9XRVJDQVNFCiAgICBQVVNIQlVUVE9OICAgICAgIibE7uHg4ujy/CIsSURDX0RMTFNfQURERExMLCAxNjQsNjgsODIsMTMsQlNfREVGUFVTSEJVVFRPTiAKICAgIExURVhUICAgICAgICAgICAi0fP55fHy4vP++ejlIOfg7OX55e3o/zoiLElEQ19TVEFUSUMsMTYsODYsMTAwLDgKICAgIExJU1RCT1ggICAgICAgICBJRENfRExMU19MSVNULDE2LDk2LDE0MCwxNDAsV1NfQk9SREVSIHwgV1NfVEFCU1RPUCB8IFdTX1ZTQ1JPTEwKICAgIFBVU0hCVVRUT04gICAgICAiJtDl5ODq8ujw7uLg8vwiLElEQ19ETExTX0VESVRETEwsMTY0LDk2LDgyLDE0CiAgICBQVVNIQlVUVE9OICAgICAgIibT5ODr6PL8IixJRENfRExMU19SRU1PVkVETEwsMTY0LDExNCw4MiwxNCAKRU5ECgpJRERfTE9BRE9SREVSIERJQUxPRyBESVNDQVJEQUJMRSA4MCwgOTAsIDE1MCwgOTIKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gItDl5ODq8ujw7uLg8vwg5+Ds5fnl7ejlIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIiDP7vD/5O7qIOfg4/Dz5+roICIsSURDX1NUQVRJQyw4LDQsMTM1LDY2CiAgICBDT05UUk9MICAgICAgICAgIibC8fLw7uXt7eD/IChXaW5lKSIsSURDX1JBRF9CVUlMVElOLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04gfCBXU19HUk9VUCwxNiwxNCwxMDUsMTAKICAgIENPTlRST0wgICAgICAgICAi0Sby7vDu7e3//yAoV2luZG93cykiLElEQ19SQURfTkFUSVZFLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04sMTYsMjQsMTA1LDEwCiAgICBDT05UUk9MICAgICAgICAgIsIm8fLw7uXt7eD/LCDn4PLl7CDx8u7w7u3t//8iLElEQ19SQURfQlVJTFRJTl9OQVRJVkUsIkJ1dHRvbiIsIEJTX0FVVE9SQURJT0JVVFRPTiwxNiwzNCwxMTUsMTAKICAgIENPTlRST0wgICAgICAgICAi0fIm7vDu7e3//ywg5+Dy5ewg4vHy8O7l7e3g/yIsSURDX1JBRF9OQVRJVkVfQlVJTFRJTiwiQnV0dG9uIiwgQlNfQVVUT1JBRElPQlVUVE9OLDE2LDQ0LDExNSwxMAogICAgQ09OVFJPTCAgICAgICAgICImwevu6ujw7uLg8vwiLElEQ19SQURfRElTQUJMRSwiQnV0dG9uIiwgQlNfQVVUT1JBRElPQlVUVE9OLDE2LDU0LDEwNSwxMAogICAgREVGUFVTSEJVVFRPTiAgICJPSyIsSURPSyw4LDc0LDQ1LDE0LFdTX0dST1VQCiAgICBQVVNIQlVUVE9OICAgICAgIs7y7OXt4CIsSURDQU5DRUwsNTcsNzQsNDUsMTQsV1NfR1JPVVAKRU5ECgpJRERfRFJJVkVDRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiIM3g8fLw7unq4CDk6PHq7uIgIixJRENfU1RBVElDLDgsNCwyNDQsMjQwCiAgICBDT05UUk9MICAgICAgICAgIkxpc3R2aWV3IixJRENfTElTVF9EUklWRVMsIlN5c0xpc3RWaWV3MzIiLExWU19SRVBPUlQgfCBMVlNfQVVUT0FSUkFOR0UgfCBMVlNfQUxJR05MRUZUIHwKICAgICAgICAgICAgICAgICAgICBMVlNfU0lOR0xFU0VMIHwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUCwgMTUsMTgsMjMyLDc2CiAgICBQVVNIQlVUVE9OICAgICAgIibE7uHg4ujy/C4uLiIsSURDX0JVVFRPTl9BREQsMTUsOTgsNDUsMTQKICAgIFBVU0hCVVRUT04gICAgICAiJtPk4Ovo8vwiLElEQ19CVVRUT05fUkVNT1ZFLDY2LDk4LDQ3LDE0CiAgICBQVVNIQlVUVE9OICAgICAgIibA4vLu7u/w5eTl6+Xt6OUuLi4iLElEQ19CVVRUT05fQVVUT0RFVEVDVCwxNjUsOTgsODAsMTQKCiAgICAvKiBlZGl0aW5nIGRyaXZlIGRldGFpbHMgKi8KICAgIExURVhUICAgICAgICAgICAiJs/z8vw6IixJRENfU1RBVElDLDE1LDEyMywyMCw5ICAgIAogICAgRURJVFRFWFQgICAgICAgIElEQ19FRElUX1BBVEgsNDEsMTIwLDE2MCwxMyxFU19BVVRPSFNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIFBVU0hCVVRUT04gICAgICAiJs7h5+7wLi4uIixJRENfQlVUVE9OX0JST1dTRV9QQVRILDIwNiwxMjAsNDAsMTMKICAgIAogICAgTFRFWFQgICAgICAgICAgICIm0ujvOiIsSURDX1NUQVRJQ19UWVBFLDE1LDEzOCwyMSwxMAogICAgQ09NQk9CT1ggICAgICAgIElEQ19DT01CT19UWVBFLDQxLDEzNSw3Nyw2MCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIAogICAgTFRFWFQgICAgICAgICAgICLM5fLq4CDoIPHl8Ojp7fvpIO3u7OXwIixJRENfTEFCRUxTRVJJQUxfU1RBVElDLDE1LDE1NSw5NSwxMAogICAgCiAgICBQVVNIQlVUVE9OICAgICAgIsTu7+7r7ejy5ev87e4uLi4iLElEQ19CVVRUT05fU0hPV19ISURFX0FEVkFOQ0VELDE1MCwxMzYsOTYsMTMKICAgIENPTlRST0wgICAgICAgICAiwOLy7u7v8OXk5evo8vwgJmMg8/Hy8O7p8fLi4DoiLElEQ19SQURJT19BVVRPREVURUNULCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9SQURJT0JVVFRPTiwxNSwxNjYsMTUwLDEwCiAgICBFRElUVEVYVCAgICAgICAgSURDX0VESVRfREVWSUNFLDI3LDE3NiwxNzQsMTMsRVNfQVVUT0hTQ1JPTEwKICAgIFBVU0hCVVRUT04gICAgICAizuEm5+7wLi4uIixJRENfQlVUVE9OX0JST1dTRV9ERVZJQ0UsMjA2LDE3Niw0MCwxMwogICAgQ09OVFJPTCAgICAgICAgICImzeDn7eD36PL8IOLw8/ft8/46IixJRENfUkFESU9fQVNTSUdOLCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9SQURJT0JVVFRPTiwxNSwxOTUsMTAwLDEwCgogICAgTFRFWFQgICAgICAgICAgICImzOXy6uA6IixJRENfU1RBVElDX0xBQkVMLDMzLDIwOCwyOSwxMgogICAgRURJVFRFWFQgICAgICAgIElEQ19FRElUX0xBQkVMLDEwMywyMDUsMTE4LDEzLEVTX0FVVE9IU0NST0xMIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICLR5fDo6e376SDt7uzl8DoiLElEQ19TVEFUSUNfU0VSSUFMLDMzLDIyNSw4MCwxMgogICAgRURJVFRFWFQgICAgICAgIElEQ19FRElUX1NFUklBTCwxMDMsMjIxLDExOCwxMyxFU19BVVRPSFNDUk9MTCB8IFdTX1RBQlNUT1AKCiAgICBDT05UUk9MICAgICAgICAgIs/u6uDn++Lg8vwg9ODp6/ssIO3g9+jt4P756OXx/yDxIPLu9+roIixJRENfU0hPV19ET1RfRklMRVMsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCw4LDI2MCwyMzAsOApFTkQKCklERF9BVURJT0NGRyBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI2MCwgMjUwClNUWUxFIFdTX0NISUxEIHwgV1NfRElTQUJMRUQKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICIgwvvh7vAg5PDg6eLl8OAgIixJRENfU1RBVElDLDgsNCwyNDQsMTk1CiAgICBMVEVYVAkgICAgIsfi8+ru4u7pIOTw4Oni5fA6ICIsSURDX1NUQVRJQywxNSwyMCwyMjcsMzAKICAgIENPTlRST0wgICAgICAgICAiRGV2aWNlcyIsSURDX0FVRElPX1RSRUUsIlN5c1RyZWVWaWV3MzIiLFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AsMTUsNTAsMTQwLDE0MAogICAgUFVTSEJVVFRPTiAgICAgICImz/Du4uXw6PL8IOfi8+oiLElEQ19BVURJT19URVNULDE3MCw1MCw1OSwxNAogICAgUFVTSEJVVFRPTgkgICAgIs/g7eXr/CDz7/Dg4uvl7ej/IixJRENfQVVESU9fQ09OVFJPTF9QQU5FTCwxNzAsNzAsODAsMTQKICAgIEdST1VQQk9YICAgICAgICAiIERpcmVjdFNvdW5kICIsSURDX1NUQVRJQyw4LDIwNSwyNDQsNjAKICAgIExURVhUCSAgICAiwO/v4PDg8u3u5SDz8eru8OXt6OU6ICIsSURDX1NUQVRJQywxNSwyMTUsOTAsMTAKICAgIENPTUJPQk9YCSAgICBJRENfRFNPVU5EX0hXX0FDQ0VMLDEwMCwyMTMsMTQ1LDcwLENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICLX4PHy7vLgICjj5fD2KToiLElEQ19TVEFUSUMsMTUsMjMyLDcwLDgKICAgIENPTUJPQk9YICAgICAgICBJRENfRFNPVU5EX1JBVEVTLDEwMCwyMzAsNDIsNzYsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIsru5Ojw7uLg7ejlICjh6PIpOiIsSURDX1NUQVRJQywxNDQsMjMyLDgwLDgKICAgIENPTUJPQk9YICAgICAgICBJRENfRFNPVU5EX0JJVFMsMjE2LDIzMCwzMCw1MixDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIENPTlRST0wgICAgICAgICAi3ezz6//26P8g5PDg6eLl8OAiLElEQ19EU09VTkRfRFJWX0VNVUwsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNSwyNTAsMjMwLDEwCkVORAoKSUREX0RFU0tUT1BfSU5URUdSQVRJT04gRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiIMLt5fjt6Okg4ujkICIsSURDX1NUQVRJQyw4LDQsMjQ0LDEwNgogICAgTFRFWFQgICAgICAgICAgICLS5ezgOiIsSURDX1NUQVRJQywxNSwxNiwxMzAsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19USEVNRV9USEVNRUNPTUJPLDE1LDI0LDEzMCwxNCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIFBVU0hCVVRUT04gICAgICAi0/Hy4O3u4ujy/CDy5ezzLi4uIixJRENfVEhFTUVfSU5TVEFMTCwxNTIsMjMsOTMsMTQKICAgIExURVhUICAgICAgICAgICAi1uLl8joiLElEQ19USEVNRV9DT0xPUlRFWFQsMTUsNDAsMTEyLDgKICAgIENPTUJPQk9YICAgICAgICBJRENfVEhFTUVfQ09MT1JDT01CTywxNSw0OCwxMTIsMTQsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgItDg5+zl8DoiLElEQ19USEVNRV9TSVpFVEVYVCwxMzUsNDAsMTEwLDgKICAgIENPTUJPQk9YICAgICAgICBJRENfVEhFTUVfU0laRUNPTUJPLDEzNSw0OCwxMTAsMTQsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIt3r5ezl7fI6IixJRENfU1RBVElDLDE1LDY0LDExMiw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX1NZU1BBUkFNX0NPTUJPLDE1LDc0LDExMiwxMjAsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QIHwgQ0JTX1NPUlQKICAgIExURVhUICAgICAgICAgICAi1uLl8joiLElEQ19TWVNQQVJBTV9DT0xPUl9URVhULDEzNSw2NCwyNSw4LFdTX0RJU0FCTEVECiAgICBQVVNIQlVUVE9OICAgICAgIiIsSURDX1NZU1BBUkFNX0NPTE9SLDEzNSw3NCwyNSwxMyxXU19ESVNBQkxFRCB8IEJTX09XTkVSRFJBVwogICAgTFRFWFQgICAgICAgICAgICLQ4Ofs5fA6IixJRENfU1lTUEFSQU1fU0laRV9URVhULDE2Niw2NCwzMCw4LFdTX0RJU0FCTEVECiAgICBFRElUVEVYVCAgICAgICAgSURDX1NZU1BBUkFNX1NJWkUsMTY2LDc0LDIzLDEzLEVTX0FVVE9IU0NST0xMIHwgV1NfVEFCU1RPUCB8IFdTX0RJU0FCTEVECiAgICBDT05UUk9MICAgICAgICAgIiIsSURDX1NZU1BBUkFNX1NJWkVfVUQsVVBET1dOX0NMQVNTLFVEU19TRVRCVUREWUlOVCB8IFdTX0RJU0FCTEVELDE4Nyw3NCwxNSwxMwogICAgUFVTSEJVVFRPTiAgICAgICLY8Oj08iIsSURDX1NZU1BBUkFNX0ZPTlQsMjA4LDc0LDM3LDEzLFdTX0RJU0FCTEVECiAgICBHUk9VUEJPWCAgICAgICAgIiDR8uDt5ODw8u375SDv4O/q6CAiLElEQ19TVEFUSUMsOCwxMTQsMjQ0LDEwMAogICAgQ09OVFJPTCAgICAgICAgICJMaXN0dmlldyIsSURDX0xJU1RfU0ZQQVRIUywiU3lzTGlzdFZpZXczMiIsTFZTX1JFUE9SVCB8IExWU19BVVRPQVJSQU5HRSB8IExWU19BTElHTkxFRlQgfAogICAgICAgICAgICAgICAgICAgICBMVlNfU0lOR0xFU0VMIHwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUCwgMTUsMTI2LDIzMCw2NAogICAgQ09OVFJPTCAgICAgICAgICLN4O/w4OLo8vwg4joiLElEQ19MSU5LX1NGUEFUSCwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1h8V1NfVEFCU1RPUHxXU19ESVNBQkxFRCwxNSwxOTUsNTAsMTMKICAgIEVESVRURVhUICAgICAgICAgSURDX0VESVRfU0ZQQVRILDY1LDE5NSwxNDUsMTMsRVNfQVVUT0hTQ1JPTEx8V1NfVEFCU1RPUHxXU19ESVNBQkxFRAogICAgUFVTSEJVVFRPTiAgICAgICLC++Hw4PL8IixJRENfQlJPV1NFX1NGUEFUSCwyMTUsMTk1LDMwLDEzLFdTX0RJU0FCTEVECkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEU19XSU5FX1ZFUlNJT04gICAgICAgICJDVlMiCiAgICBJRFNfVEFCX0FQUExJQ0FUSU9OUyAgICAiz/Do6+7m5e3o/yIKICAgIElEU19UQUJfRExMUyAgICAgICAgICAgICLB6OHr6O7y5eroIgogICAgSURTX1RBQl9EUklWRVMgICAgICAgICAgIsTo8eroIgogICAgSURTX0NIT09TRV9QQVRIICAgICAgICAgIsL74eXw6PLlIPbl6+Xi7ukg6uDy4Ovu4yDiIPHo8fLl7OU6IgogICAgSURTX0hJREVfQURWQU5DRUQgICAgICAgItHq8Pvy/CDk7u/u6+3o8uXr/O375SIKICAgIElEU19TSE9XX0FEVkFOQ0VEICAgICAgICLP7urg5+Dy/CDk7u/u6+3o8uXr/O375SIKICAgIElEU19OT1RIRU1FICAgICAgICAgICAgICIo4eXnIPLl7PspIgogICAgSURTX1RBQl9HUkFQSElDUyAgICAgICAgIsPw4PTo6uAiCiAgICBJRFNfVEFCX0RFU0tUT1BfSU5URUdSQVRJT04gIsLo5CDoIOjt8uXj8OD26P8iCiAgICBJRFNfVEFCX0FVRElPICAgICAgICAgICAiwPPk6O4iCiAgICBJRFNfVEFCX0FCT1VUICAgICAgICAgICAiziDv8O7j8ODs7OUiCiAgICBJRFNfV0lORUNGR19USVRMRSAgICAgICAizeDx8vDu6ergIFdpbmUiCiAgICBJRFNfV0lORUNGR19USVRMRV9BUFAgICAizeDx8vDu6ergIFdpbmUg5Ov/ICVzIgogICAgSURTX1RIRU1FRklMRSAgICAgICAgICAgItTg6ev7IPLl7CIKICAgIElEU19USEVNRUZJTEVfU0VMRUNUICAgICLC++Hl8Ojy5SD04OnrIPEg8uXs7ukiCiAgICBJRFNfQVVESU9fTUlTU0lORyAgICAgICAiyu7t9Ojj8/Dg9uj/IOfi8+ru4u7j7iDk8ODp4uXw4CDt5SDt4Onk5e3gLlxuXG7C++Hw4O0g5PDg6eLl8CDv7iDz7O7r9+Dt6P4uIM/w6CDt5e7h9e7k6Ozu8fLoIOzu5u3uIOL74fDg8vwg5PDz4+7pIOTw4Oni5fAg6Ocg8e/o8ergIOTu8fLz7+379S5cblxuxOv/IPHu9fDg7eXt6P8g6Ofs5e3l7ejpIO3g5uzo8uUg6u3u7+rzIM/w6Ozl7ejy/C4iCiAgICBJRFNfU0hFTExfRk9MREVSICAgICAgICAi0fLg7eTg8PLt++Ug7+Dv6ugiCiAgICBJRFNfTElOS1NfVE8gICAgICAgICAgICAi0eL/5+Dt7iDxIgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRFNfRExMX1dBUk5JTkcgICAgICAgICAgICAgIsjn7OXt5e3o5SDv7vD/5OrgIOfg4/Dz5+roIP3y7ukg4ejh6+ju8uXq6CDt5SDw5eru7OXt5PPl8vH/Llxuwvsg5OXp8fLi6PLl6/zt7iD17vLo8uUg6Ofs5e3o8vwg7+7w/+Tu6j8iCiAgICBJRFNfRExMX1dBUk5JTkdfQ0FQVElPTiAgICAgIsLt6Ozg7ejlOiDx6PHy5ezt4P8g4ejh6+ju8uXq4CIKICAgIElEU19ETExfTkFUSVZFICAgICAgICAgICAgICAi8fLu8O7t7f//IgogICAgSURTX0RMTF9CVUlMVElOICAgICAgICAgICAgICLi8fLw7uXt7eD/IgogICAgSURTX0RMTF9OQVRJVkVfQlVJTFRJTiAgICAgICLx8u7w7u3t//8sIOLx8vDu5e3t4P8iCiAgICBJRFNfRExMX0JVSUxUSU5fTkFUSVZFICAgICAgIuLx8vDu5e3t4P8sIPHy7vDu7e3//yIKICAgIElEU19ETExfRElTQUJMRUQgICAgICAgICAgICAi7vLq6/735e3gIgogICAgSURTX0RFRkFVTFRfU0VUVElOR1MgICAgICAgICLT8fLg7e7i6ugg7+4g8+zu6/fg7ej+IgogICAgSURTX0VYRUNVVEFCTEVfRklMVEVSICAgICAgICLP8O7j8ODs7PsgV2luZSAoKi5leGUsKi5leGUuc28pXDAqLmV4ZTsqLmV4ZS5zb1wwIgogICAgSURTX1VTRV9HTE9CQUxfU0VUVElOR1MgICAgICLI8e/u6/zn7uLg8vwg7+4g8+zu6/fg7ej+IgogICAgSURTX1NFTEVDVF9FWEVDVVRBQkxFICAgICAgICLC++Hl8Ojy5SDo8e/u6+3/5ez76SD04OnrIgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRFNfU0hBREVSX01PREVfSEFSRFdBUkUgICAgIsLq6/735e37IgogICAgSURTX1NIQURFUl9NT0RFX05PTkUgICAgICAgICLC++rr/vfl7fsiCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEU19EUklWRV9VTktOT1dOICAgICAgICAgICAiwOLy7u7v8OXk5evl7ejlIgogICAgSURTX0RSSVZFX0ZJWEVEICAgICAgICAgICAgICLGuPHy6ujpIOTo8eoiCiAgICBJRFNfRFJJVkVfUkVNT1RFICAgICAgICAgICAgItHl8uXi7ukg5Ojx6iIKICAgIElEU19EUklWRV9SRU1PVkFCTEUgICAgICAgICAixOjx6u7i7uQiCiAgICBJRFNfRFJJVkVfQ0RST00gICAgICAgICAgICAgIkNELVJPTSIKICAgIElEU19EUklWRV9MRVRURVJTX0VYQ0VFREVEICAizeXi7ufs7ubt7iDx7ufk4PL8IO3u4vvpIOTo8eouXG5cbtMg6uDm5O7j7iDk6PHq4CDk7uvm7eAg4fvy/CDh8+ri4CAtIO7yIEEg5O4gWiwg6CDzIMLg8SDz5uUgMjYg5Ojx6u7iLiIKICAgIElEU19TWVNURU1fRFJJVkVfTEFCRUwgICAgICAi0ejx8uXs7fvpIOTo8eoiCiAgICBJRFNfQ09ORklSTV9ERUxFVEVfQyAgICAgICAgIsTl6fHy4ujy5ev87e4g8+Tg6+jy/CDk6PHqIEM/XG5cbsHu6/z46O3x8uLuIFdpbmRvd3Mt7/Du4/Dg7Owg7+Xw5fHy4O3z8iDw4OHu8uDy/CDh5ecg5Ojx6uAgQy4gxfHr6CDC+yDi8bgg5uUg8OX46OvoIPPk4Ovo8vwg5Ojx6iwg7eUg5+Dh8+T88uUg8e7n5ODy/CDt7uL76SEiCiAgICBJRFNfQ09MX0RSSVZFTEVUVEVSICAgICAgICAgIsTo8eoiCiAgICBJRFNfQ09MX0RSSVZFTUFQUElORyAgICAgICAgIs/z8vwiCiAgICBJRFNfTk9fRFJJVkVfQyAgICAgICAgICAgICAgIsL7IO3lIO3g5+3g9+jr6CDk6PHqIEMuXG5cbs3lIOfg4fPk/PLlIOXj7iDx7ufk4PL8IVxuIgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRFNfQUNDRUxfRlVMTCAgICAgICAgICAgICAgIs/u6+3u5SIKICAgIElEU19BQ0NFTF9TVEFOREFSRCAgICAgICAgICAi0fLg7eTg8PLt7uUiCiAgICBJRFNfQUNDRUxfQkFTSUMgICAgICAgICAgICAgIszo7ejs4Ov87e7lIgogICAgSURTX0FDQ0VMX0VNVUxBVElPTiAgICAgICAgICLd7PPr//bo/yIKICAgIElEU19EUklWRVJfQUxTQSAgICAgICAgICAgICAiQUxTQSDk8ODp4uXwIgogICAgSURTX0RSSVZFUl9FU09VTkQgICAgICAgICAgICJFc291bkQg5PDg6eLl8CIKICAgIElEU19EUklWRVJfT1NTICAgICAgICAgICAgICAiT1NTIOTw4Oni5fAiCiAgICBJRFNfRFJJVkVSX0pBQ0sgICAgICAgICAgICAgIkpBQ0sg5PDg6eLl8CIKICAgIElEU19EUklWRVJfTkFTICAgICAgICAgICAgICAiTkFTIOTw4Oni5fAiCiAgICBJRFNfRFJJVkVSX0FVRElPSU8gICAgICAgICAgIkF1ZGlvIElPIChTb2xhcmlzKSDk8ODp4uXwIgogICAgSURTX0RSSVZFUl9DT1JFQVVESU8gICAgICAgICJDb3JlQXVkaW8g5PDg6eLl8CIKICAgIElEU19PUEVOX0RSSVZFUl9FUlJPUiAgICAgICAizeXi7ufs7ubt7iDu8urw+/L8ICVzISIKICAgIElEU19TT1VORERSSVZFUlMgICAgICAgICAgICAiwPPk6O4g5PDg6eLl8OAiCiAgICBJRFNfREVWSUNFU19XQVZFT1VUICAgICAgICAgItPx8vDu6fHy4u4g4vvi7uTgIOfi8+rgIgogICAgSURTX0RFVklDRVNfV0FWRUlOICAgICAgICAgICLT8fLw7unx8uLuIOLi7uTgIOfi8+rgIgogICAgSURTX0RFVklDRVNfTUlESU9VVCAgICAgICAgICLT8fLw7unx8uLuIOL74u7k4CBNSURJIgogICAgSURTX0RFVklDRVNfTUlESUlOICAgICAgICAgICLT8fLw7unx8uLuIOLi7uTgIE1JREkiCiAgICBJRFNfREVWSUNFU19BVVggICAgICAgICAgICAgIsTu7+7r7ejy5ev87e7lIPPx8vDu6fHy4u4iCiAgICBJRFNfREVWSUNFU19NSVhFUiAgICAgICAgICAgItPx8vDu6fHy4u4g7Ojq+Ojw7uLg7ej/IgogICAgSURTX1VOQVZBSUxBQkxFX0RSSVZFUiAgICAgICLE8ODp4uXwLCDz6uDn4O3t++kg4iDw5eXx8vDlLCDt5SDt4Onk5e0hXG5cbtPk4Ovo8vwgXCIlc1wiIOjnIPDl5fHy8OA/IgogICAgSURTX1dBUk5JTkcgICAgICAgICAgICAgICAgICLC7ejs4O3o5SIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURDX1NZU1BBUkFNU19CVVRUT04gICAgICAgICAgICAi3evl7OXt8vsg8+/w4OLr5e3o/yAtIPTu7SIKICAgIElEQ19TWVNQQVJBTVNfQlVUVE9OX1RFWFQgICAgICAgIt3r5ezl7fL7IPPv8ODi6+Xt6P8gLSDy5erx8iIKICAgIElEQ19TWVNQQVJBTVNfREVTS1RPUCAgICAgICAgICAgItHy7usiCiAgICBJRENfU1lTUEFSQU1TX01FTlUgICAgICAgICAgICAgICLM5e3+IC0g9O7tIgogICAgSURDX1NZU1BBUkFNU19NRU5VX1RFWFQgICAgICAgICAizOXt/iAtIPLl6vHyIgogICAgSURDX1NZU1BBUkFNU19TQ1JPTExCQVIgICAgICAgICAiz+7r7vHgIO/w7urw8/Lq6CIKICAgIElEQ19TWVNQQVJBTVNfU0VMRUNUSU9OICAgICAgICAgIsL75OXr5e3o5SAtIPTu7SIKICAgIElEQ19TWVNQQVJBTVNfU0VMRUNUSU9OX1RFWFQgICAgIsL75OXr5e3o5SAtIPLl6vHyIgogICAgSURDX1NZU1BBUkFNU19UT09MVElQICAgICAgICAgICAiz+7k8erg5+rgIC0g9O7tIgogICAgSURDX1NZU1BBUkFNU19UT09MVElQX1RFWFQgICAgICAiz+7k8erg5+rgIC0g8uXq8fIiCiAgICBJRENfU1lTUEFSQU1TX1dJTkRPVyAgICAgICAgICAgICLR7uTl8Obo7O7lIO7q7eAgLSD07u0iCiAgICBJRENfU1lTUEFSQU1TX1dJTkRPV19URVhUICAgICAgICLR7uTl8Obo7O7lIO7q7eAgLSDy5erx8iIKICAgIElEQ19TWVNQQVJBTVNfQUNUSVZFX1RJVExFICAgICAgIsDq8uji7e7lIO7q7e4iCiAgICBJRENfU1lTUEFSQU1TX0FDVElWRV9USVRMRV9URVhUICLA6vLo4u3u5SDu6u3uIC0g8uXq8fIiCiAgICBJRENfU1lTUEFSQU1TX0lOQUNUSVZFX1RJVExFICAgICLP4PHx6OLt7uUg7urt7iIKICAgIElEQ19TWVNQQVJBTVNfSU5BQ1RJVkVfVElUTEVfVEVYVCAiz+Dx8eji7e7lIO7q7e4gLSDy5erx8iIKICAgIElEQ19TWVNQQVJBTVNfTVNHQk9YX1RFWFQgICAgICAgIs7q7e4g8e7u4fnl7ej/IC0g8uXq8fIiCkVORAo=