LyoKICogQ29weXJpZ2h0IDIwMDkgo3VrYXN6IFdvam5ps293aWN6CiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQQogKi8KClNUUklOR1RBQkxFIExBTkdVQUdFIExBTkdfUE9MSVNILCBTVUJMQU5HX05FVVRSQUwKQkVHSU4KCi8qIE1NU1lTIGVycm9ycyAqLwpNTVNZU0VSUl9OT0VSUk9SLCAJCSJXeWtvbmFubyBwb2RhbmUgcG9sZWNlbmllLiIKTU1TWVNFUlJfRVJST1IsIAkJIk5pZXpkZWZpbmlvd2FueSB6ZXdu6nRyem55IGKzuWQuIgpNTVNZU0VSUl9CQURERVZJQ0VJRCwgCQkiWm9zdGGzIHW/eXR5IGlkZW50eWZpa2F0b3IgdXJ6uWR6ZW5pYSwga3TzcnkgamVzdCBwb3phIHpha3Jlc2VtIHR3b2plZ28gc3lzdGVtdS4iCk1NU1lTRVJSX05PVEVOQUJMRUQsIAkJIlN0ZXJvd25payBuaWUgem9zdGGzIHezuWN6b255LiIKTU1TWVNFUlJfQUxMT0NBVEVELCAJCSJQb2RhbmUgdXJ6uWR6ZW5pZSBqZXN0IGp1vyB3IHW/eWNpdS4gUG9jemVrYWosIGG/IHNp6iB6d29sbmkgaSBzcHLzYnVqIHBvbm93bmllLiIKTU1TWVNFUlJfSU5WQUxIQU5ETEUsIAkJIlVjaHd5dCBwb2RhbmVnbyB1cnq5ZHplbmlhIGplc3QgbmllcG9wcmF3bnkuIgpNTVNZU0VSUl9OT0RSSVZFUiwgCQkiTmEgdHdvaW0gc3lzdGVtaWUgbmllIG1hIHphaW5zdGFsb3dhbmVnbyBzdGVyb3duaWthICFcbiIKTU1TWVNFUlJfTk9NRU0sIAkJIk1hc3ogemJ5dCBtYbNvIGRvc3TqcG5laiBwYW1p6mNpIGRvIHRlZ28gemFkYW5pYS5cbiBaYWtv8WN6IGplZG65IGx1YiB3aepjZWogYXBsaWthY2ppLCBhYnkgendp6mtzennmIHJvem1pYXIgZG9zdOpwbmVqIHBhbWnqY2kgaSBzcHLzYnVqIHBvbm93bmllLiIKTU1TWVNFUlJfTk9UU1VQUE9SVEVELCAJCSJUYSBmdW5rY2phIG5pZSBqZXN0IHdzcGllcmFuYS4gVb95aiBmdW5rY2ppICdDYXBhYmlsaXRpZXMnIGFieSBva3JlnGxp5iwga3TzcmUgZnVua2NqZSBpIHdpYWRvbW+cY2kgc7kgd3NwaWVyYW5lIHByemV6IHN0ZXJvd25pay4iCk1NU1lTRVJSX0JBREVSUk5VTSwgCQkiT2tyZZxsb25vIG51bWVyIGKz6mR1LCBrdPNyeSBuaWUgamVzdCB6ZGVmaW5pb3dhbnkgdyBzeXN0ZW1pZS4iCk1NU1lTRVJSX0lOVkFMRkxBRywgCQkiUHJ6ZWthemFubyBuaWVwb3ByYXduuSBmbGFn6iBkbyBmdW5rY2ppIHN5c3RlbW93ZWouIgpNTVNZU0VSUl9JTlZBTFBBUkFNLCAJCSJQcnpla2F6YW5vIG5pZXBvcHJhd255IHBhcmFtZXRyIGRvIGZ1bmtjamkgc3lzdGVtb3dlai4iCgovKiBXQVZFIGVycm9ycyAqLwpXQVZFUlJfQkFERk9STUFULCAJCSJPa3JlnGxvbnkgZm9ybWF0IG5pZSBqZXN0IHdzcGllcmFueSBsdWIgbmllIG1vv2UgYnnmIHByemV0s3VtYWN6b255LiBVv3lqIGZ1bmtjamkgJ0NhcGFiaWxpdGllcycgYWJ5IG9rcmWcbGnmIHdzcGllcmFuZSBmb3JtYXR5IgpXQVZFUlJfU1RJTExQTEFZSU5HLCAJCSJOaWUgbW+/bmEgd3lrb25h5iB0ZWogb3BlcmFjamkgdyBjemFzaWUgZ2R5IGRhbmUgeiBub5xuaWthIG5hZGFsIHO5IG9kdHdhcnphbmUuIFpyZXNldHVqIHVyerlkemVuaWUgbHViIHBvY3pla2FqLCBhvyBkYW5lIHNrb/FjerkgYnnmIG9kdHdhcnphbmUuIgpXQVZFUlJfVU5QUkVQQVJFRCwgCQkiTmFns/N3ZWsgd2F2J3UgbmllIGplc3QgcHJ6eWdvdG93YW55LiBVv3lqIGZ1bmtjamkgJ1ByZXBhcmUnIGFieSBwcnp5Z290b3dh5iBuYWez83dlayBpIHNwcvNidWogcG9ub3duaWUuIgpXQVZFUlJfU1lOQywgCQkJIk5pZSBtb79uYSBvdHdvcnp55iB1cnq5ZHplbmlhIGJleiB1v3ljaWEgZmxhZ2kgV0FWRV9BTExPV1NZTkMuIFW/eWogdGVqIGZsYWdpIGkgc3By82J1aiBwb25vd25pZS4iCgovKiBNSURJIGVycm9ycyAqLwpNSURJRVJSX1VOUFJFUEFSRUQsIAkJIk5hZ7Pzd2VrIE1JREkgbmllIGplc3QgcHJ6eWdvdG93YW55LiBVv3lqIGZ1bmtjamkgJ1ByZXBhcmUnIGFieSBwcnp5Z290b3dh5iBuYWez83dlayBpIHNwcvNidWogcG9ub3duaWUuIgpNSURJRVJSX1NUSUxMUExBWUlORywgCQkiTmllIG1vv25hIHd5a29uYeYgdGVqIG9wZXJhY2ppIHcgY3phc2llIGdkeSBkYW5lIHogbm+cbmlrYSBuYWRhbCBzuSBvZHR3YXJ6YW5lLiBacmVzZXR1aiB1cnq5ZHplbmllIGx1YiBwb2N6ZWthaiwgYb8gZGFuZSBza2/xY3q5IGJ55iBvZHR3YXJ6YW5lLiIKTUlESUVSUl9OT01BUCwgCQkJIk1hcCBNSURJIG5pZSB6bmFsZXppb25lLiBQcm9ibGVtIG1vv2UgYnnmIHplIHN0ZXJvd25pa2llbSBsdWIgemVwc3V0eW0gYWxibyBicmFrdWq5Y3ltIHBsaWtpZW0gTUlESU1BUC5DRkcuIgpNSURJRVJSX05PVFJFQURZLCAJCSJQb3J0IHByemVzebNhIGRhbmUgZG8gdXJ6uWR6ZW5pYS4gUG9jemVrYWosIGG/IGRhbmUgem9zdGFuuSBwcnplc7NhbmUgaSBzcHLzYnVqIHBvbm93bmllLiIKTUlESUVSUl9OT0RFVklDRSwgCQkiQWt0dWFsbmUgdXN0YXdpZW5pZSBNSURJIE1hcGVyYSBvZG5vc2kgc2nqIGRvIHVyerlkemVuaWEgTUlESSBrdPNyZSBuaWUgamVzdCB6YWluc3RhbG93YW5lIHcgc3lzdGVtaWUuIFW/eWogTUlESSBNYXBlcmEgZG8gZWR5Y2ppIHVzdGF3aWXxLiIKTUlESUVSUl9JTlZBTElEU0VUVVAsIAkJIkFrdHVhbG5lIHVzdGF3aWVuaWEgTUlESSBzuSB1c3prb2R6b25lLiBTa29waXVqIG9yeWdpbmFsbnkgcGxpayBNSURJTUFQLkNGRyBkbyBXaW5kb3dzb3dlZ28gZm9sZGVydSBTWVNURU0gaSB3dGVkeSBzcHLzYnVqIHBvbm93bmllLiIKCi8qIE1DSSBlcnJvcnMgKi8KTUNJRVJSX0lOVkFMSURfREVWSUNFX0lELCAJIk5pZXBvcHJhd255IGlkZW50eWZpa2F0b3IgdXJ6uWR6ZW5pYSBNQ0kuIFW/eWogaWRlbnR5ZmlrYXRvcmEgendy82NvbmVnbyBwb2RjemFzIG90d2llcmFuaWEgdXJ6uWR6ZW5pYSBNQ0kuIgpNQ0lFUlJfVU5SRUNPR05JWkVEX0tFWVdPUkQsIAkiU3Rlcm93bmlrIG5pZSBtb79lIHJvenBvem5h5iBwb2RhbmVnbyBwYXJhbWV0cnUgdyBwb2xlY2VuaXUuIgpNQ0lFUlJfVU5SRUNPR05JWkVEX0NPTU1BTkQsCSJTdGVyb3duaWsgbmllIG1vv2Ugcm96cG96bmHmIHBvZGFuZWdvIHBvbGVjZW5pYS4iCk1DSUVSUl9IQVJEV0FSRSwgCQkiV3lzdLlwabMgcHJvYmxlbSB6IHR3b2ltIHVyerlkemVuaWVtIG11bHRpbWVkaWFsbnltLiBVcGV3bmlqIHNp6iwgv2UgZHppYbNhIHBvcHJhd25pZSBsdWIgc2tvbnRha3R1aiBzaeogeiBwcm9kdWNlbnRlbSB1cnq5ZHplbmlhLiIKTUNJRVJSX0lOVkFMSURfREVWSUNFX05BTUUsIAkiUG9kYW5lIHVyerlkemVuaWUgbmllIGplc3Qgb3R3YXJ0ZSBsdWIgbmllIGplc3Qgcm96cG96bmF3YW5lIHByemV6IE1DSS4iCk1DSUVSUl9PVVRfT0ZfTUVNT1JZLCAJCSJNYXN6IHpieXQgbWGzbyBkb3N06nBuZWogcGFtaepjaSBkbyB0ZWdvIHphZGFuaWEuXG4gWmFrb/FjeiBqZWRuuSBsdWIgd2nqY2VqIGFwbGlrYWNqaSBhYnkgendp6mtzennmIHJvem1pYXIgZG9zdOpwbmVqIHBhbWnqY2kgaSB3dGVkeSBzcHLzYnVqIHBvbm93bmllLiIKTUNJRVJSX0RFVklDRV9PUEVOLCAJCSJOYXp3YSB1cnq5ZHplbmlhIHpvc3Rhs2EganW/IHW/eXRhIHByemV6IHS5IGFwbGlrYWNq6iBqYWtvIHBzZXVkby4gVb95aiB1bmlrYWxuZWdvIHBzZXVkby4iCk1DSUVSUl9DQU5OT1RfTE9BRF9EUklWRVIsIAkiV3lzdLlwabMgbmlld3lrcnl3YWxueSBwcm9ibGVtIHBvZGN6YXMgs2Fkb3dhbmlhIHBvZGFuZWdvIHN0ZXJvd25pa2EgdXJ6uWR6ZW5pYS4iCk1DSUVSUl9NSVNTSU5HX0NPTU1BTkRfU1RSSU5HLCAJIkJyYWsgcG9kYW5lZ28gcG9sZWNlbmlhLiIKTUNJRVJSX1BBUkFNX09WRVJGTE9XLCAJCSKjYfFjdWNoIHpuYWvzdyB3eWqcY2lvd3ljaCBiebMgemJ5dCBks3VnaSwgYWJ5IHptaWWcY2nmIHNp6iBkbyB6d3JhY2FuZWdvIGJ1Zm9yYS4gWndp6mtzeiByb3ptaWFyIGJ1Zm9yYS4iCk1DSUVSUl9NSVNTSU5HX1NUUklOR19BUkdVTUVOVCwgIlBvZGFuZSBwb2xlY2VuaWUgd3ltYWdhIHpuYWt1L7Nh8WN1Y2hhIHpuYWvzdyBqYWtvIHBhcmFtZXRydS4gUHJvc3rqIHBvZGHmIGplZG5vIHogdHljaC4iCk1DSUVSUl9CQURfSU5URUdFUiwgCQkiT2tyZZxsb25hIGxpY3piYSBjYbNrb3dpdGEgamVzdCBuaWVwb3ByYXduYSBkbGEgdGVnbyBwb2xlY2VuaWEuIgpNQ0lFUlJfUEFSU0VSX0lOVEVSTkFMLCAJIlN0ZXJvd25payB1cnq5ZHplbmlhIHp3cvNjabMgbmllcG9wcmF3bnkgdHlwIHp3cmFjYW55LiBTcHJhd2SfIGN6eSBtb79lc3ogcG9icmHmIG5vd3kgc3Rlcm93bmlrIHUgcHJvZHVjZW50YSB1cnq5ZHplbmlhLiIKTUNJRVJSX0RSSVZFUl9JTlRFUk5BTCwgCSJXeXN0uXBpsyBwcm9ibGVtIHplIHN0ZXJvd25pa2llbSB1cnq5ZHplbmlhLiBTcHJhd2SfIGN6eSBtb79lc3ogcG9icmHmIG5vd3kgc3Rlcm93bmlrIHUgcHJvZHVjZW50YSB1cnq5ZHplbmlhLiIKTUNJRVJSX01JU1NJTkdfUEFSQU1FVEVSLCAJIlBvZGFuZSBwb2xlY2VuaWUgd3ltYWdhIHBhcmFtZXRydS4gUHJvc3rqIHBvZGHmIGpha2mcLiIKTUNJRVJSX1VOU1VQUE9SVEVEX0ZVTkNUSU9OLCAJIlVyerlkemVuaWUgTUNJLCBrdPNyZWdvIHW/eXdhc3ogbmllIHdzcGllcmEgcG9kYW5lZ28gcG9sZWNlbmlhLiIKTUNJRVJSX0ZJTEVfTk9UX0ZPVU5ELCAJCSJOaWUgbW+/bmEgem5hbGWf5iBwb2RhbmVnbyBwbGlrdS4gVXBld25paiBzaeosIL9lIJxjaWW/a2EgaSBuYXp3YSBwbGlrdSBzuSBwcmF3aWSzb3dlLiIKTUNJRVJSX0RFVklDRV9OT1RfUkVBRFksIAkiU3Rlcm93bmlrIHVyerlkemVuaWEgbmllIGplc3QgZ290b3d5LiIKTUNJRVJSX0lOVEVSTkFMLCAJCSJXeXN0uXBpsyBwcm9ibGVtIHBvZGN6YXMgaW5pY2phbGl6YWNqaSBNQ0kuIFNwcvNidWogdXJ1Y2hvbWnmIHBvbm93bmllIFdpbmRvd3NhLiIKTUNJRVJSX0RSSVZFUiwgCQkJIld5c3S5cGmzIHByb2JsZW0gemUgc3Rlcm93bmlraWVtIHVyerlkemVuaWEuIFN0ZXJvd25payB6YWtv8WN6ebMuIEKzuWQgbmllbW+/bm+cY2kgZG9zdOpwdS4iCk1DSUVSUl9DQU5OT1RfVVNFX0FMTCwgCQkiTmllIG1vv25hIHW/eeYgJ2FsbCcgamFrbyBuYXp3eSB1cnq5ZHplbmlhIHogb2tyZZxsb255bSBwb2xlY2VuaWVtLiIKTUNJRVJSX01VTFRJUExFLCAJCSJXeXN0uXBps3kgYrPqZHkgdyB3aepjZWogbmm/IGplZG55bSB1cnq5ZHplbml1LiBQb2RhaiBvZGR6aWVsbmllIGthv2RlIHBvbGVjZW5pZSBpIHVyerlkemVuaWUsIGFieSBva3JlnGxp5iwga3TzcmUgdXJ6uWR6ZW5pYSB3eXdvs3VquSBis7lkIgpNQ0lFUlJfRVhURU5TSU9OX05PVF9GT1VORCwgCSJOaWUgbW+/bmEgb2tyZZxsaeYgdHlwdSB1cnq5ZHplbmlhIHogcG9kYW5lZ28gcm96c3plcnplbmlhIHBsaWt1LiIKTUNJRVJSX09VVE9GUkFOR0UsIAkJIk9rcmWcbG9ueSBwYXJhbWV0ciBqZXN0IHNwb3phIHpha3Jlc3UgZGxhIHBvZGFuZWdvIHBvbGVjZW5pYS4iCk1DSUVSUl9GTEFHU19OT1RfQ09NUEFUSUJMRSwgCSJQb2RhbmUgcGFyYW1ldHJ5IG5pZSBtb2e5IGJ55iB1v3l0ZSByYXplbS4iCk1DSUVSUl9GSUxFX05PVF9TQVZFRCwgCQkiTmllIG1vv25hIHphcGlzYeYgcG9kYW5lZ28gcGxpa3UuIFVwZXduaWogc2nqLCC/ZSBtYXN6IHd5c3RhcmN6YWq5Y28gbWllanNjYSBuYSBkeXNrdSBsdWIgY3p5IGplc3RlnCBqZXN6Y3plIHBvZLO5Y3pvbnltIGRvIHNpZWNpLiIKTUNJRVJSX0RFVklDRV9UWVBFX1JFUVVJUkVELCAJIk5pZSBtb79uYSB6bmFsZZ/mIHBvZGFuZWdvIHVyerlkemVuaWEuIFVwZXduaWogc2nqLCC/ZSBqZXN0IHphaW5zdGFsb3dhbmUgbHViLCC/ZSBuYXp3YSBqZXN0IHdwaXNhbmEgcHJhd2lks293by4iCk1DSUVSUl9ERVZJQ0VfTE9DS0VELCAJCSJQb2RhbmUgdXJ6uWR6ZW5pZSBqZXN0IHcgdGVqIGNod2lsaSB6YW15a2FuZS4gUG9jemVrYWoga2lsa2Egc2VrdW5kIGkgd3RlZHkgc3By82J1aiBwb25vd25pZS4iCk1DSUVSUl9EVVBMSUNBVEVfQUxJQVMsIAkiUG9kYW5lIHBzZXVkbyBqZXN0IHcgdGVqIGNod2lsaSB1v3l3YW5lIHcgdGVqIGFwbGlrYWNqaS4gVb95aiB1bmlrYWxuZWdvIHBzZXVkby4iCk1DSUVSUl9CQURfQ09OU1RBTlQsIAkJIlBvZGFueSBwYXJhbWV0ciBqZXN0IG5pZXBvcHJhd255IGRsYSB0ZWdvIHBvbGVjZW5pYS4iCk1DSUVSUl9NVVNUX1VTRV9TSEFSRUFCTEUsIAkiVXJ6uWR6ZW5pZSBqZXN0IGp1vyB3IHW/eWNpdS4gQWJ5IGplIHdzcPOzZHppZWxp5iB1v3lqIHBhcmFtZXRydSAnc2hhcmVhYmxlJyB6IGthv2R5bSBwb2xlY2VuaWVtICdvcGVuJy4iCk1DSUVSUl9NSVNTSU5HX0RFVklDRV9OQU1FLCAJIlBvZGFuZSBwb2xlY2VuaWUgcG90cnplYnVqZSBwc2V1ZG8sIHBsaWt1LCBzdGVyb3duaWthLCBsdWIgbmF6d3kgdXJ6uWR6ZW5pYS4gUHJvc3rqIHBvZGHmIGplZG5vIHogdHljaC4iCk1DSUVSUl9CQURfVElNRV9GT1JNQVQsIAkiUG9kYW5hIHdhcnRvnOYgZGxhIGZvcm1hdHUgY3phc3UgamVzdCBuaWVwb3ByYXduYS4gT2RuaWWcIHNp6iBkbyBkb2t1bWVudGFjamkgTUNJIHcgc3ByYXdpZSBwb3ByYXdueWNoIGZvcm1hdPN3LiIKTUNJRVJSX05PX0NMT1NJTkdfUVVPVEUsIAkiQnJha3VqZSB6YW15a2FquWNlZ28gY3Vkenlzs293dSB3IHdhcnRvnGNpIHBhcmFtZXRydS4gUHJvc3rqIHdwaXN6IGdvLiIKTUNJRVJSX0RVUExJQ0FURV9GTEFHUywgCSJQYXJhbWV0ciBsdWIgd2FydG+c5iBiebNhIHBvZGFuYSBkd3Vrcm90bmllLiBQb2RhaiB0eWxrbyBqZWRub2tyb3RuaWUuIgpNQ0lFUlJfSU5WQUxJRF9GSUxFLCAJCSJQb2RhbnkgcGxpayBuaWUgbW+/ZSBieeYgb2R0d29yem9ueSB3IHBvZGFueW0gdXJ6uWR6ZW5pdSBNQ0kuIFBsaWsgbW+/ZSBieeYgemVwc3V0eSBsdWIgdyBuaWV3s2GcY2l3eW0gZm9ybWFjaWUuIgpNQ0lFUlJfTlVMTF9QQVJBTUVURVJfQkxPQ0ssIAkiWmVyb3d5IGJsb2sgcGFyYW1ldHLzdyB6b3N0YbMgcHJ6ZWthemFueSBvZCBNQ0kuIgpNQ0lFUlJfVU5OQU1FRF9SRVNPVVJDRSwgCSJOaWUgbW+/bmEgemFwaXNh5iBuaWVuYXp3YW5lZ28gcGxpa3UuIFBvZGFqIG5henfqIHBsaWt1LiIKTUNJRVJSX05FV19SRVFVSVJFU19BTElBUywgCSJNdXNpc3ogcG9kYeYgcHNldWRvIHByenkgdb95Y2l1IHBhcmFtZXRydSAnbmV3Jy4iCk1DSUVSUl9OT1RJRllfT05fQVVUT19PUEVOLCAJIk5pZSBtb79uYSB1v3nmIGZsYWdpICdub3RpZnknIHogYXV0b21hdHljem5pZSBvdHdhcnR5bWkgdXJ6uWR6ZW5pYW1pLiIKTUNJRVJSX05PX0VMRU1FTlRfQUxMT1dFRCwgCSJOaWUgbW+/bmEgdb955iBuYXp3eSBwbGlrdSB6IHBvZGFueW0gdXJ6uWR6ZW5pZW0uIgpNQ0lFUlJfTk9OQVBQTElDQUJMRV9GVU5DVElPTiwgCSJOaWUgbW+/bmEgd3lrb25h5iBwb2xlY2XxIHcgcG9kYW5laiBrb2xlam5vnGNpLiBQb3ByYXcgc2Vrd2VuY2rqIHBvbGVjZfEgaSBzcHLzYnVqIHBvbm93bmllLiIKTUNJRVJSX0lMTEVHQUxfRk9SX0FVVE9fT1BFTiwgCSJOaWUgbW+/bmEgd3lrb25h5iBwb2RhbnljaCBwb2xlY2XxIG5hIGF1dG9tYXR5Y3puaWUgb3R3YXJ0eW0gdXJ6uWR6ZW5pdS4gUG9jemVrYWosIGG/IHVyerlkemVuaWUgemFrb/FjenkgaSBzcHLzYnVqIHBvbm93bmllLiIKTUNJRVJSX0ZJTEVOQU1FX1JFUVVJUkVELCAJIk5hendhIHBsaWt1IGplc3QgbmllcG9wcmF3bmEuIFVwZXduaWogc2nqLCC/ZSBuYXp3YSBwbGlrdSBuaWUgbWEgd2nqY2VqIG5pvyA4IHpuYWvzdywgemFrb/Fjem9ueWNoIGtyb3BruSBpIHJvenN6ZXJ6ZW5pZW0uIgpNQ0lFUlJfRVhUUkFfQ0hBUkFDVEVSUywgCSJOaWUgbW+/bmEgcG9kYeYgZG9kYXRrb3d5Y2ggem5ha/N3IHBvIHR5bSBqYWsgs2HxY3VjaCB6bmFr83cgem9zdGGzIHphbWtuaep0eSB3IGN1ZHp5c7Nvd2llLiIKTUNJRVJSX0RFVklDRV9OT1RfSU5TVEFMTEVELCAJIlBvZGFuZSB1cnq5ZHplbmllIG5pZSBqZXN0IHphaW5zdGFsb3dhbmUgdyBzeXN0ZW1pZS4gVb95aiBvcGNqaSAnRHJpdmVycycgdyBQYW5lbHUgU3Rlcm93YW5pYSwgYWJ5IHphaW5zdGFsb3dh5iB1cnq5ZHplbmllLiIKTUNJRVJSX0dFVF9DRCwgCQkJIkJyYWsgZG9zdOpwdSBkbyBwb2RhbmVnbyBwbGlrdSBsdWIgdXJ6uWR6ZW5pYSBNQ0kuIFNwcvNidWogem1pZW5p5iBmb2xkZXJ5IGx1YiB1cnVjaG9tIHBvbm93bmllIGtvbXB1dGVyLiIKTUNJRVJSX1NFVF9DRCwgCQkJIkJyYWsgZG9zdOpwdSBkbyBwb2RhbmVnbyBwbGlrdSBsdWIgdXJ6uWR6ZW5pYSBNQ0ksIHBvbmlld2G/IGFwbGlrYWNqYSBuaWUgbW+/ZSB6bWllbmnmIGZvbGRlcvN3LiIKTUNJRVJSX1NFVF9EUklWRSwgCQkiQnJhayBkb3N06nB1IGRvIHBvZGFuZWdvIHBsaWt1IGx1YiB1cnq5ZHplbmlhIE1DSSwgcG9uaWV3Yb8gYXBsaWthY2phIG5pZSBtb79lIHptaWVuaeYgdXJ6uWR6ZfEuIgpNQ0lFUlJfREVWSUNFX0xFTkdUSCwgCQkiUG9kYWogdXJ6uWR6ZW5pZSBhbGJvIG5henfqIHN0ZXJvd25pa2EgbyBsaWN6YmllIHpuYWvzdyBtbmllanN6ZWogbmm/IDc5LiIKTUNJRVJSX0RFVklDRV9PUkRfTEVOR1RILCAJIlBvZGFqIHVyerlkemVuaWUgYWxibyBuYXp36iBzdGVyb3duaWthIG8gbGljemJpZSB6bmFr83cgbW5pZWpzemVqIG5pvyA2OS4iCk1DSUVSUl9OT19JTlRFR0VSLCAJCSJQb2RhbmUgcG9sZWNlbmllIHd5bWFnYSBsaWN6YnkgY2Gza293aXRlaiBqYWtvIHBhcmFtZXRydS4gUHJvc3rqIHBvZGFqIGpha7mcLiIKTUNJRVJSX1dBVkVfT1VUUFVUU0lOVVNFLCAJIldzenlzdGtpZSB1cnq5ZHplbmlhIHdhdmUga3TzcmUgbW9nuSBvZHR3YXJ6YeYgcGxpa2kgdyBha3R1YWxueW0gZm9ybWFjaWUgc7kgdyB1v3ljaXUuIFBvY3pla2FqLCBhvyB1cnq5ZHplbmllIHdhdmUgem9zdGFuaWUgendvbG5pb25lIGkgc3By82J1aiBwb25vd25pZS4iCk1DSUVSUl9XQVZFX1NFVE9VVFBVVElOVVNFLCAJIk5pZSBtb79uYSB1c3Rhd2nmIGFrdHVhbG5lZ28gdXJ6uWR6ZW5pYSB3YXZlIG5hIG9kdHdhcnphbmllLCBwb25pZXdhvyBqZXN0IHcgdb95Y2l1LiBQb2N6ZWthaiwgYb8gdXJ6uWR6ZW5pZSB6b3N0YW5pZSB6d29sbmlvbmUgaSBzcHLzYnVqIHBvbm93bmllLiIKTUNJRVJSX1dBVkVfSU5QVVRTSU5VU0UsIAkiV3N6eXN0a2llIHVyerlkemVuaWEsIGt083JlIG1vZ7kgbmFncnl3YeYgcGxpa2kgdyBha3R1YWxueW0gZm9ybWFjaWUgc7kgdyB1v3ljaXUuIFBvY3pla2FqLCBhvyB1cnq5ZHplbmllIHdhdmUgem9zdGFuaWUgendvbG5pb25lIGkgc3By82J1aiBwb25vd25pZS4iCk1DSUVSUl9XQVZFX1NFVElOUFVUSU5VU0UsIAkiTmllIG1vv25hIHVzdGF3aeYgYWt0dWFsbmVnbyB1cnq5ZHplbmlhIHdhdmUgbmEgbmFncnl3YW5pZSwgcG9uaWV3Yb8gamVzdCB3IHW/eWNpdS4gUG9jemVrYWosIGG/IHVyerlkemVuaWUgem9zdGFuaWUgendvbG5pb25lIGkgc3By82J1aiBwb25vd25pZS4iCk1DSUVSUl9XQVZFX09VVFBVVFVOU1BFQ0lGSUVELAkiS2G/ZGUgdXJ6uWR6ZW5pZSBrb21wYXR5YmlsbmUgeiBvZHR3YXJ6YW5pZW0gd2F2ZWZvcm0gbW+/ZSBieeYgdb95dGUuIgpNQ0lFUlJfV0FWRV9JTlBVVFVOU1BFQ0lGSUVELCAJIkthv2RlIHVyerlkemVuaWUga29tcGF0eWJpbG5lIHogbmFncnl3YW5pZW0gd2F2ZWZvcm0gbW+/ZSBieeYgdb95dGUuIgpNQ0lFUlJfV0FWRV9PVVRQVVRTVU5TVUlUQUJMRSwgCSJCcmFrIHphaW5zdGFsb3dhbmVnbyB1cnq5ZHplbmlhIHdhdmUsIGt083JlIG1vv2Ugb2R0d2FyemHmIHBsaWtpIHcgYWt0dWFsbnltIGZvcm1hY2llLiBVv3lqIG9wY2ppICdEcml2ZXJzJyBhYnkgemFpbnN0YWxvd2HmIHVyerlkemVuaWUgd2F2ZS4iCk1DSUVSUl9XQVZFX1NFVE9VVFBVVFVOU1VJVEFCTEUsIlVyerlkemVuaWUsIGt083J5bSBwcvNidWplc3ogb2R0d29yennmIG5pZSBtb79lIHJvenBvem5h5iBha3R1YWxuZWdvIGZvcm1hdHUgcGxpa/N3LiIKTUNJRVJSX1dBVkVfSU5QVVRTVU5TVUlUQUJMRSwgCSJCcmFrIHphaW5zdGFsb3dhbmVnbyB1cnq5ZHplbmlhIHdhdmUsIGt083JlIG1vv2UgbmFncnl3YeYgcGxpa2kgdyBha3R1YWxueW0gZm9ybWFjaWUuIFW/eWogb3BjamkgJ0RyaXZlcnMnIGFieSB6YWluc3RhbG93YeYgdXJ6uWR6ZW5pZSB3YXZlLiIKTUNJRVJSX1dBVkVfU0VUSU5QVVRVTlNVSVRBQkxFLCAiVXJ6uWR6ZW5pZSwga3TzcnltIHBy82J1amVzeiBuYWdyYeYgbmllIG1vv2Ugcm96cG96bmHmIGFrdHVhbG5lZ28gZm9ybWF0dSBwbGlr83cuIgpNQ0lFUlJfTk9fV0lORE9XLCAJCSJOaWUgbWEgb2tuYSB3eZx3aWV0bGFquWNlZ28uIgpNQ0lFUlJfQ1JFQVRFV0lORE9XLCAJCSJOaWUgbW+/bmEgc3R3b3J6eeYgbHViIHW/eeYgb2tuYS4iCk1DSUVSUl9GSUxFX1JFQUQsIAkJIk5pZSBtb79uYSBvZGN6eXRh5iBwb2RhbmVnbyBwbGlrdS4gVXBld25paiBzaeosIL9lIHBsaWsgbmFkYWwgaXN0bmllamUgbHViIHNwcmF3ZJ8gdHfzaiBkeXNrIGx1YiBwb7O5Y3plbmllIHNpZWNpb3dlLiIKTUNJRVJSX0ZJTEVfV1JJVEUsIAkJIk5pZSBtb79uYSB6YXBpc2HmIGRvIHBvZGFuZWdvIHBsaWt1LiBVcGV3bmlqIHNp6iC/ZSBtYXN6IHd5c3RhcmN6YWq5Y28gbWllanNjYSBuYSBkeXNrdSBsdWIgY3p5IGplc3RlnCBuYWRhbCBwb2SzuWN6b255IGRvIHNpZWNpLiIKTUNJRVJSX1NFUV9ESVZfSU5DT01QQVRJQkxFLCAJIkZvcm1hdHkgY3phc3UgZGxhICIic29uZyBwb2ludGVyIiIgaSBTTVBURSBzuSB3emFqZW1uaWUgd3lrbHVjemFquWNlIHNp6i4gTmllIG1vv2VzeiB1v3nmIGljaCByYXplbS4iCk1DSUVSUl9TRVFfTk9NSURJUFJFU0VOVCwgCSJVcnq5ZHplbmlhIE1JREkgbmllIHO5IHphaW5zdGFsb3dhbmUgdyBzeXN0ZW1pZS4gVb95aiBvcGNqaSAnRHJpdmVycycgeiBQYW5lbHUgU3Rlcm93YW5pYSwgYWJ5IHphaW5zdGFsb3dh5iBzdGVyb3duaWsgTUlESS4iCk1DSUVSUl9TRVFfUE9SVF9JTlVTRSwgCQkiUG9kYW55IHBvcnQgTUlESSBqZXN0IGp1vyB3IHW/eWNpdS4gUG9jemVrYWosIGG/IHNp6iB6d29sbmkgaSBzcHLzYnVqIHBvbm93bmllLiIKTUNJRVJSX1NFUV9QT1JUX01BUE5PREVWSUNFLCAJIkFrdHVhbG5lIHVzdGF3aWVuaWUgTWFwZXJhIE1JREkgb2Rub3NpIHNp6iBkbyB1cnq5ZHplbmlhIE1JREksIGt083JlIG5pZSBqZXN0IHphaW5zdGFsb3dhbmUgdyBzeXN0ZW1pZS4gVb95aiBvcGNqaSAnTUlESSBNYXBwZXInIHogUGFuZWx1IFN0ZXJvd2FuaWEsIGFieSBlZHl0b3dh5iB1c3Rhd2llbmllLiIKTUNJRVJSX1NFUV9QT1JUX01JU0NFUlJPUiwgCSJXeXN0uXBpsyBis7lkIHogcG9kYW55bSBwb3J0ZW0uIgpNQ0lFUlJfU0VRX1BPUlRfTk9ORVhJU1RFTlQsIAkiUG9kYW5lIHVyerlkemVuaWUgTUlESSBuaWUgamVzdCB6YWluc3RhbG93YW5lIHcgc3lzdGVtaWUuIFW/eWogb3BjamkgJ0RyaXZlcnMnIHogUGFuZWx1IFN0ZXJvd2FuaWEsIGFieSB6YWluc3RhbG93YeYgdXJ6uWR6ZW5pZSBNSURJLiIKTUNJRVJSX1NFUV9QT1JUVU5TUEVDSUZJRUQsIAkiTmllIHBvZGFubyBha3R1YWxuZWdvIHBvcnR1IE1JREkgdyBzeXN0ZW1pZS4iCk1DSUVSUl9TRVFfVElNRVIsIAkJIldzenlzdGtpZSB3eXp3YWxhY3plIG11bHRpbWVkaWFsbmUgc7kgdb95d2FuZSBwcnpleiBpbm5lIGFwbGlrYWNqZS4gWmFta25paiBqZWRuuSB6IHR5Y2ggYXBsaWthY2ppIGkgc3By82J1aiBwb25vd25pZS4iCgpFTkQK