LyoKICogQ29weXJpZ2h0IDIwMDkgo3VrYXN6IFdvam5ps293aWN6CiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQQogKi8KCiNpbmNsdWRlICJ3aW5kZWYuaCIKI2luY2x1ZGUgIm1tZGRrLmgiCgpMQU5HVUFHRSBMQU5HX1BPTElTSCwgU1VCTEFOR19ORVVUUkFMCgpTVFJJTkdUQUJMRQpCRUdJTgoKLyogTU1TWVMgZXJyb3JzICovCk1NU1lTRVJSX05PRVJST1IsIAkJIld5a29uYW5vIHBvZGFuZSBwb2xlY2VuaWUuIgpNTVNZU0VSUl9FUlJPUiwgCQkiTmllemRlZmluaW93YW55IHpld27qdHJ6bnkgYrO5ZC4iCk1NU1lTRVJSX0JBRERFVklDRUlELCAJCSJab3N0YbMgdb95dHkgaWRlbnR5ZmlrYXRvciB1cnq5ZHplbmlhLCBrdPNyeSBqZXN0IHBvemEgemFrcmVzZW0gdHdvamVnbyBzeXN0ZW11LiIKTU1TWVNFUlJfTk9URU5BQkxFRCwgCQkiU3Rlcm93bmlrIG5pZSB6b3N0YbMgd7O5Y3pvbnkuIgpNTVNZU0VSUl9BTExPQ0FURUQsIAkJIlBvZGFuZSB1cnq5ZHplbmllIGplc3QganW/IHcgdb95Y2l1LiBQb2N6ZWthaiwgYb8gc2nqIHp3b2xuaSBpIHNwcvNidWogcG9ub3duaWUuIgpNTVNZU0VSUl9JTlZBTEhBTkRMRSwgCQkiVWNod3l0IHBvZGFuZWdvIHVyerlkemVuaWEgamVzdCBuaWVwb3ByYXdueS4iCk1NU1lTRVJSX05PRFJJVkVSLCAJCSJOYSB0d29pbSBzeXN0ZW1pZSBuaWUgbWEgemFpbnN0YWxvd2FuZWdvIHN0ZXJvd25pa2EgIVxuIgpNTVNZU0VSUl9OT01FTSwgCQkiTWFzeiB6Ynl0IG1hs28gZG9zdOpwbmVqIHBhbWnqY2kgZG8gdGVnbyB6YWRhbmlhLlxuIFpha2/xY3ogamVkbrkgbHViIHdp6mNlaiBhcGxpa2FjamksIGFieSB6d2nqa3N6eeYgcm96bWlhciBkb3N06nBuZWogcGFtaepjaSBpIHNwcvNidWogcG9ub3duaWUuIgpNTVNZU0VSUl9OT1RTVVBQT1JURUQsIAkJIlRhIGZ1bmtjamEgbmllIGplc3Qgd3NwaWVyYW5hLiBVv3lqIGZ1bmtjamkgJ0NhcGFiaWxpdGllcycgYWJ5IG9rcmWcbGnmLCBrdPNyZSBmdW5rY2plIGkgd2lhZG9tb5xjaSBzuSB3c3BpZXJhbmUgcHJ6ZXogc3Rlcm93bmlrLiIKTU1TWVNFUlJfQkFERVJSTlVNLCAJCSJPa3JlnGxvbm8gbnVtZXIgYrPqZHUsIGt083J5IG5pZSBqZXN0IHpkZWZpbmlvd2FueSB3IHN5c3RlbWllLiIKTU1TWVNFUlJfSU5WQUxGTEFHLCAJCSJQcnpla2F6YW5vIG5pZXBvcHJhd265IGZsYWfqIGRvIGZ1bmtjamkgc3lzdGVtb3dlai4iCk1NU1lTRVJSX0lOVkFMUEFSQU0sIAkJIlByemVrYXphbm8gbmllcG9wcmF3bnkgcGFyYW1ldHIgZG8gZnVua2NqaSBzeXN0ZW1vd2VqLiIKCi8qIFdBVkUgZXJyb3JzICovCldBVkVSUl9CQURGT1JNQVQsIAkJIk9rcmWcbG9ueSBmb3JtYXQgbmllIGplc3Qgd3NwaWVyYW55IGx1YiBuaWUgbW+/ZSBieeYgcHJ6ZXSzdW1hY3pvbnkuIFW/eWogZnVua2NqaSAnQ2FwYWJpbGl0aWVzJyBhYnkgb2tyZZxsaeYgd3NwaWVyYW5lIGZvcm1hdHkiCldBVkVSUl9TVElMTFBMQVlJTkcsIAkJIk5pZSBtb79uYSB3eWtvbmHmIHRlaiBvcGVyYWNqaSB3IGN6YXNpZSBnZHkgZGFuZSB6IG5vnG5pa2EgbmFkYWwgc7kgb2R0d2FyemFuZS4gWnJlc2V0dWogdXJ6uWR6ZW5pZSBsdWIgcG9jemVrYWosIGG/IGRhbmUgc2tv8WN6uSBieeYgb2R0d2FyemFuZS4iCldBVkVSUl9VTlBSRVBBUkVELCAJCSJOYWez83dlayB3YXYndSBuaWUgamVzdCBwcnp5Z290b3dhbnkuIFW/eWogZnVua2NqaSAnUHJlcGFyZScgYWJ5IHByenlnb3Rvd2HmIG5hZ7Pzd2VrIGkgc3By82J1aiBwb25vd25pZS4iCldBVkVSUl9TWU5DLCAJCQkiTmllIG1vv25hIG90d29yennmIHVyerlkemVuaWEgYmV6IHW/eWNpYSBmbGFnaSBXQVZFX0FMTE9XU1lOQy4gVb95aiB0ZWogZmxhZ2kgaSBzcHLzYnVqIHBvbm93bmllLiIKCi8qIE1JREkgZXJyb3JzICovCk1JRElFUlJfVU5QUkVQQVJFRCwgCQkiTmFns/N3ZWsgTUlESSBuaWUgamVzdCBwcnp5Z290b3dhbnkuIFW/eWogZnVua2NqaSAnUHJlcGFyZScgYWJ5IHByenlnb3Rvd2HmIG5hZ7Pzd2VrIGkgc3By82J1aiBwb25vd25pZS4iCk1JRElFUlJfU1RJTExQTEFZSU5HLCAJCSJOaWUgbW+/bmEgd3lrb25h5iB0ZWogb3BlcmFjamkgdyBjemFzaWUgZ2R5IGRhbmUgeiBub5xuaWthIG5hZGFsIHO5IG9kdHdhcnphbmUuIFpyZXNldHVqIHVyerlkemVuaWUgbHViIHBvY3pla2FqLCBhvyBkYW5lIHNrb/FjerkgYnnmIG9kdHdhcnphbmUuIgpNSURJRVJSX05PTUFQLCAJCQkiTWFwIE1JREkgbmllIHpuYWxlemlvbmUuIFByb2JsZW0gbW+/ZSBieeYgemUgc3Rlcm93bmlraWVtIGx1YiB6ZXBzdXR5bSBhbGJvIGJyYWt1arljeW0gcGxpa2llbSBNSURJTUFQLkNGRy4iCk1JRElFUlJfTk9UUkVBRFksIAkJIlBvcnQgcHJ6ZXN5s2EgZGFuZSBkbyB1cnq5ZHplbmlhLiBQb2N6ZWthaiwgYb8gZGFuZSB6b3N0YW65IHByemVzs2FuZSBpIHNwcvNidWogcG9ub3duaWUuIgpNSURJRVJSX05PREVWSUNFLCAJCSJBa3R1YWxuZSB1c3Rhd2llbmllIE1JREkgTWFwZXJhIG9kbm9zaSBzaeogZG8gdXJ6uWR6ZW5pYSBNSURJIGt083JlIG5pZSBqZXN0IHphaW5zdGFsb3dhbmUgdyBzeXN0ZW1pZS4gVb95aiBNSURJIE1hcGVyYSBkbyBlZHljamkgdXN0YXdpZfEuIgpNSURJRVJSX0lOVkFMSURTRVRVUCwgCQkiQWt0dWFsbmUgdXN0YXdpZW5pYSBNSURJIHO5IHVzemtvZHpvbmUuIFNrb3BpdWogb3J5Z2luYWxueSBwbGlrIE1JRElNQVAuQ0ZHIGRvIFdpbmRvd3Nvd2VnbyBmb2xkZXJ1IFNZU1RFTSBpIHd0ZWR5IHNwcvNidWogcG9ub3duaWUuIgoKLyogTUNJIGVycm9ycyAqLwpNQ0lFUlJfSU5WQUxJRF9ERVZJQ0VfSUQsIAkiTmllcG9wcmF3bnkgaWRlbnR5ZmlrYXRvciB1cnq5ZHplbmlhIE1DSS4gVb95aiBpZGVudHlmaWthdG9yYSB6d3LzY29uZWdvIHBvZGN6YXMgb3R3aWVyYW5pYSB1cnq5ZHplbmlhIE1DSS4iCk1DSUVSUl9VTlJFQ09HTklaRURfS0VZV09SRCwgCSJTdGVyb3duaWsgbmllIG1vv2Ugcm96cG96bmHmIHBvZGFuZWdvIHBhcmFtZXRydSB3IHBvbGVjZW5pdS4iCk1DSUVSUl9VTlJFQ09HTklaRURfQ09NTUFORCwJIlN0ZXJvd25payBuaWUgbW+/ZSByb3pwb3puYeYgcG9kYW5lZ28gcG9sZWNlbmlhLiIKTUNJRVJSX0hBUkRXQVJFLCAJCSJXeXN0uXBpsyBwcm9ibGVtIHogdHdvaW0gdXJ6uWR6ZW5pZW0gbXVsdGltZWRpYWxueW0uIFVwZXduaWogc2nqLCC/ZSBkemlhs2EgcG9wcmF3bmllIGx1YiBza29udGFrdHVqIHNp6iB6IHByb2R1Y2VudGVtIHVyerlkemVuaWEuIgpNQ0lFUlJfSU5WQUxJRF9ERVZJQ0VfTkFNRSwgCSJQb2RhbmUgdXJ6uWR6ZW5pZSBuaWUgamVzdCBvdHdhcnRlIGx1YiBuaWUgamVzdCByb3pwb3puYXdhbmUgcHJ6ZXogTUNJLiIKTUNJRVJSX09VVF9PRl9NRU1PUlksIAkJIk1hc3ogemJ5dCBtYbNvIGRvc3TqcG5laiBwYW1p6mNpIGRvIHRlZ28gemFkYW5pYS5cbiBaYWtv8WN6IGplZG65IGx1YiB3aepjZWogYXBsaWthY2ppIGFieSB6d2nqa3N6eeYgcm96bWlhciBkb3N06nBuZWogcGFtaepjaSBpIHd0ZWR5IHNwcvNidWogcG9ub3duaWUuIgpNQ0lFUlJfREVWSUNFX09QRU4sIAkJIk5hendhIHVyerlkemVuaWEgem9zdGGzYSBqdb8gdb95dGEgcHJ6ZXogdLkgYXBsaWthY2rqIGpha28gcHNldWRvLiBVv3lqIHVuaWthbG5lZ28gcHNldWRvLiIKTUNJRVJSX0NBTk5PVF9MT0FEX0RSSVZFUiwgCSJXeXN0uXBpsyBuaWV3eWtyeXdhbG55IHByb2JsZW0gcG9kY3phcyCzYWRvd2FuaWEgcG9kYW5lZ28gc3Rlcm93bmlrYSB1cnq5ZHplbmlhLiIKTUNJRVJSX01JU1NJTkdfQ09NTUFORF9TVFJJTkcsIAkiQnJhayBwb2RhbmVnbyBwb2xlY2VuaWEuIgpNQ0lFUlJfUEFSQU1fT1ZFUkZMT1csIAkJIqNh8WN1Y2ggem5ha/N3IHd5apxjaW93eWNoIGJ5syB6Ynl0IGSzdWdpLCBhYnkgem1pZZxjaeYgc2nqIGRvIHp3cmFjYW5lZ28gYnVmb3JhLiBad2nqa3N6IHJvem1pYXIgYnVmb3JhLiIKTUNJRVJSX01JU1NJTkdfU1RSSU5HX0FSR1VNRU5ULCAiUG9kYW5lIHBvbGVjZW5pZSB3eW1hZ2Egem5ha3Uvs2HxY3VjaGEgem5ha/N3IGpha28gcGFyYW1ldHJ1LiBQcm9zeuogcG9kYeYgamVkbm8geiB0eWNoLiIKTUNJRVJSX0JBRF9JTlRFR0VSLCAJCSJPa3JlnGxvbmEgbGljemJhIGNhs2tvd2l0YSBqZXN0IG5pZXBvcHJhd25hIGRsYSB0ZWdvIHBvbGVjZW5pYS4iCk1DSUVSUl9QQVJTRVJfSU5URVJOQUwsIAkiU3Rlcm93bmlrIHVyerlkemVuaWEgendy82NpsyBuaWVwb3ByYXdueSB0eXAgendyYWNhbnkuIFNwcmF3ZJ8gY3p5IG1vv2VzeiBwb2JyYeYgbm93eSBzdGVyb3duaWsgdSBwcm9kdWNlbnRhIHVyerlkemVuaWEuIgpNQ0lFUlJfRFJJVkVSX0lOVEVSTkFMLCAJIld5c3S5cGmzIHByb2JsZW0gemUgc3Rlcm93bmlraWVtIHVyerlkemVuaWEuIFNwcmF3ZJ8gY3p5IG1vv2VzeiBwb2JyYeYgbm93eSBzdGVyb3duaWsgdSBwcm9kdWNlbnRhIHVyerlkemVuaWEuIgpNQ0lFUlJfTUlTU0lOR19QQVJBTUVURVIsIAkiUG9kYW5lIHBvbGVjZW5pZSB3eW1hZ2EgcGFyYW1ldHJ1LiBQcm9zeuogcG9kYeYgamFraZwuIgpNQ0lFUlJfVU5TVVBQT1JURURfRlVOQ1RJT04sIAkiVXJ6uWR6ZW5pZSBNQ0ksIGt083JlZ28gdb95d2FzeiBuaWUgd3NwaWVyYSBwb2RhbmVnbyBwb2xlY2VuaWEuIgpNQ0lFUlJfRklMRV9OT1RfRk9VTkQsIAkJIk5pZSBtb79uYSB6bmFsZZ/mIHBvZGFuZWdvIHBsaWt1LiBVcGV3bmlqIHNp6iwgv2UgnGNpZb9rYSBpIG5hendhIHBsaWt1IHO5IHByYXdpZLNvd2UuIgpNQ0lFUlJfREVWSUNFX05PVF9SRUFEWSwgCSJTdGVyb3duaWsgdXJ6uWR6ZW5pYSBuaWUgamVzdCBnb3Rvd3kuIgpNQ0lFUlJfSU5URVJOQUwsIAkJIld5c3S5cGmzIHByb2JsZW0gcG9kY3phcyBpbmljamFsaXphY2ppIE1DSS4gU3By82J1aiB1cnVjaG9taeYgcG9ub3duaWUgV2luZG93c2EuIgpNQ0lFUlJfRFJJVkVSLCAJCQkiV3lzdLlwabMgcHJvYmxlbSB6ZSBzdGVyb3duaWtpZW0gdXJ6uWR6ZW5pYS4gU3Rlcm93bmlrIHpha2/xY3p5sy4gQrO5ZCBuaWVtb79ub5xjaSBkb3N06nB1LiIKTUNJRVJSX0NBTk5PVF9VU0VfQUxMLCAJCSJOaWUgbW+/bmEgdb955iAnYWxsJyBqYWtvIG5hend5IHVyerlkemVuaWEgeiBva3JlnGxvbnltIHBvbGVjZW5pZW0uIgpNQ0lFUlJfTVVMVElQTEUsIAkJIld5c3S5cGmzeSBis+pkeSB3IHdp6mNlaiBuab8gamVkbnltIHVyerlkemVuaXUuIFBvZGFqIG9kZHppZWxuaWUga2G/ZGUgcG9sZWNlbmllIGkgdXJ6uWR6ZW5pZSwgYWJ5IG9rcmWcbGnmLCBrdPNyZSB1cnq5ZHplbmlhIHd5d2+zdWq5IGKzuWQiCk1DSUVSUl9FWFRFTlNJT05fTk9UX0ZPVU5ELCAJIk5pZSBtb79uYSBva3JlnGxp5iB0eXB1IHVyerlkemVuaWEgeiBwb2RhbmVnbyByb3pzemVyemVuaWEgcGxpa3UuIgpNQ0lFUlJfT1VUT0ZSQU5HRSwgCQkiT2tyZZxsb255IHBhcmFtZXRyIGplc3Qgc3BvemEgemFrcmVzdSBkbGEgcG9kYW5lZ28gcG9sZWNlbmlhLiIKTUNJRVJSX0ZMQUdTX05PVF9DT01QQVRJQkxFLCAJIlBvZGFuZSBwYXJhbWV0cnkgbmllIG1vZ7kgYnnmIHW/eXRlIHJhemVtLiIKTUNJRVJSX0ZJTEVfTk9UX1NBVkVELCAJCSJOaWUgbW+/bmEgemFwaXNh5iBwb2RhbmVnbyBwbGlrdS4gVXBld25paiBzaeosIL9lIG1hc3ogd3lzdGFyY3pharljbyBtaWVqc2NhIG5hIGR5c2t1IGx1YiBjenkgamVzdGWcIGplc3pjemUgcG9ks7ljem9ueW0gZG8gc2llY2kuIgpNQ0lFUlJfREVWSUNFX1RZUEVfUkVRVUlSRUQsIAkiTmllIG1vv25hIHpuYWxln+YgcG9kYW5lZ28gdXJ6uWR6ZW5pYS4gVXBld25paiBzaeosIL9lIGplc3QgemFpbnN0YWxvd2FuZSBsdWIsIL9lIG5hendhIGplc3Qgd3Bpc2FuYSBwcmF3aWSzb3dvLiIKTUNJRVJSX0RFVklDRV9MT0NLRUQsIAkJIlBvZGFuZSB1cnq5ZHplbmllIGplc3QgdyB0ZWogY2h3aWxpIHphbXlrYW5lLiBQb2N6ZWthaiBraWxrYSBzZWt1bmQgaSB3dGVkeSBzcHLzYnVqIHBvbm93bmllLiIKTUNJRVJSX0RVUExJQ0FURV9BTElBUywgCSJQb2RhbmUgcHNldWRvIGplc3QgdyB0ZWogY2h3aWxpIHW/eXdhbmUgdyB0ZWogYXBsaWthY2ppLiBVv3lqIHVuaWthbG5lZ28gcHNldWRvLiIKTUNJRVJSX0JBRF9DT05TVEFOVCwgCQkiUG9kYW55IHBhcmFtZXRyIGplc3QgbmllcG9wcmF3bnkgZGxhIHRlZ28gcG9sZWNlbmlhLiIKTUNJRVJSX01VU1RfVVNFX1NIQVJFQUJMRSwgCSJVcnq5ZHplbmllIGplc3QganW/IHcgdb95Y2l1LiBBYnkgamUgd3Nw87NkemllbGnmIHW/eWogcGFyYW1ldHJ1ICdzaGFyZWFibGUnIHoga2G/ZHltIHBvbGVjZW5pZW0gJ29wZW4nLiIKTUNJRVJSX01JU1NJTkdfREVWSUNFX05BTUUsIAkiUG9kYW5lIHBvbGVjZW5pZSBwb3RyemVidWplIHBzZXVkbywgcGxpa3UsIHN0ZXJvd25pa2EsIGx1YiBuYXp3eSB1cnq5ZHplbmlhLiBQcm9zeuogcG9kYeYgamVkbm8geiB0eWNoLiIKTUNJRVJSX0JBRF9USU1FX0ZPUk1BVCwgCSJQb2RhbmEgd2FydG+c5iBkbGEgZm9ybWF0dSBjemFzdSBqZXN0IG5pZXBvcHJhd25hLiBPZG5pZZwgc2nqIGRvIGRva3VtZW50YWNqaSBNQ0kgdyBzcHJhd2llIHBvcHJhd255Y2ggZm9ybWF083cuIgpNQ0lFUlJfTk9fQ0xPU0lOR19RVU9URSwgCSJCcmFrdWplIHphbXlrYWq5Y2VnbyBjdWR6eXOzb3d1IHcgd2FydG+cY2kgcGFyYW1ldHJ1LiBQcm9zeuogd3Bpc3ogZ28uIgpNQ0lFUlJfRFVQTElDQVRFX0ZMQUdTLCAJIlBhcmFtZXRyIGx1YiB3YXJ0b5zmIGJ5s2EgcG9kYW5hIGR3dWtyb3RuaWUuIFBvZGFqIHR5bGtvIGplZG5va3JvdG5pZS4iCk1DSUVSUl9JTlZBTElEX0ZJTEUsIAkJIlBvZGFueSBwbGlrIG5pZSBtb79lIGJ55iBvZHR3b3J6b255IHcgcG9kYW55bSB1cnq5ZHplbml1IE1DSS4gUGxpayBtb79lIGJ55iB6ZXBzdXR5IGx1YiB3IG5pZXezYZxjaXd5bSBmb3JtYWNpZS4iCk1DSUVSUl9OVUxMX1BBUkFNRVRFUl9CTE9DSywgCSJaZXJvd3kgYmxvayBwYXJhbWV0cvN3IHpvc3RhsyBwcnpla2F6YW55IG9kIE1DSS4iCk1DSUVSUl9VTk5BTUVEX1JFU09VUkNFLCAJIk5pZSBtb79uYSB6YXBpc2HmIG5pZW5hendhbmVnbyBwbGlrdS4gUG9kYWogbmF6d+ogcGxpa3UuIgpNQ0lFUlJfTkVXX1JFUVVJUkVTX0FMSUFTLCAJIk11c2lzeiBwb2Rh5iBwc2V1ZG8gcHJ6eSB1v3ljaXUgcGFyYW1ldHJ1ICduZXcnLiIKTUNJRVJSX05PVElGWV9PTl9BVVRPX09QRU4sIAkiTmllIG1vv25hIHW/eeYgZmxhZ2kgJ25vdGlmeScgeiBhdXRvbWF0eWN6bmllIG90d2FydHltaSB1cnq5ZHplbmlhbWkuIgpNQ0lFUlJfTk9fRUxFTUVOVF9BTExPV0VELCAJIk5pZSBtb79uYSB1v3nmIG5hend5IHBsaWt1IHogcG9kYW55bSB1cnq5ZHplbmllbS4iCk1DSUVSUl9OT05BUFBMSUNBQkxFX0ZVTkNUSU9OLCAJIk5pZSBtb79uYSB3eWtvbmHmIHBvbGVjZfEgdyBwb2RhbmVqIGtvbGVqbm+cY2kuIFBvcHJhdyBzZWt3ZW5jauogcG9sZWNl8SBpIHNwcvNidWogcG9ub3duaWUuIgpNQ0lFUlJfSUxMRUdBTF9GT1JfQVVUT19PUEVOLCAJIk5pZSBtb79uYSB3eWtvbmHmIHBvZGFueWNoIHBvbGVjZfEgbmEgYXV0b21hdHljem5pZSBvdHdhcnR5bSB1cnq5ZHplbml1LiBQb2N6ZWthaiwgYb8gdXJ6uWR6ZW5pZSB6YWtv8WN6eSBpIHNwcvNidWogcG9ub3duaWUuIgpNQ0lFUlJfRklMRU5BTUVfUkVRVUlSRUQsIAkiTmF6d2EgcGxpa3UgamVzdCBuaWVwb3ByYXduYS4gVXBld25paiBzaeosIL9lIG5hendhIHBsaWt1IG5pZSBtYSB3aepjZWogbmm/IDggem5ha/N3LCB6YWtv8WN6b255Y2gga3JvcGu5IGkgcm96c3plcnplbmllbS4iCk1DSUVSUl9FWFRSQV9DSEFSQUNURVJTLCAJIk5pZSBtb79uYSBwb2Rh5iBkb2RhdGtvd3ljaCB6bmFr83cgcG8gdHltIGphayCzYfFjdWNoIHpuYWvzdyB6b3N0YbMgemFta25p6nR5IHcgY3Vkenlzs293aWUuIgpNQ0lFUlJfREVWSUNFX05PVF9JTlNUQUxMRUQsIAkiUG9kYW5lIHVyerlkemVuaWUgbmllIGplc3QgemFpbnN0YWxvd2FuZSB3IHN5c3RlbWllLiBVv3lqIG9wY2ppICdEcml2ZXJzJyB3IFBhbmVsdSBTdGVyb3dhbmlhLCBhYnkgemFpbnN0YWxvd2HmIHVyerlkemVuaWUuIgpNQ0lFUlJfR0VUX0NELCAJCQkiQnJhayBkb3N06nB1IGRvIHBvZGFuZWdvIHBsaWt1IGx1YiB1cnq5ZHplbmlhIE1DSS4gU3By82J1aiB6bWllbmnmIGZvbGRlcnkgbHViIHVydWNob20gcG9ub3duaWUga29tcHV0ZXIuIgpNQ0lFUlJfU0VUX0NELCAJCQkiQnJhayBkb3N06nB1IGRvIHBvZGFuZWdvIHBsaWt1IGx1YiB1cnq5ZHplbmlhIE1DSSwgcG9uaWV3Yb8gYXBsaWthY2phIG5pZSBtb79lIHptaWVuaeYgZm9sZGVy83cuIgpNQ0lFUlJfU0VUX0RSSVZFLCAJCSJCcmFrIGRvc3TqcHUgZG8gcG9kYW5lZ28gcGxpa3UgbHViIHVyerlkemVuaWEgTUNJLCBwb25pZXdhvyBhcGxpa2FjamEgbmllIG1vv2Ugem1pZW5p5iB1cnq5ZHpl8S4iCk1DSUVSUl9ERVZJQ0VfTEVOR1RILCAJCSJQb2RhaiB1cnq5ZHplbmllIGFsYm8gbmF6d+ogc3Rlcm93bmlrYSBvIGxpY3piaWUgem5ha/N3IG1uaWVqc3plaiBuab8gNzkuIgpNQ0lFUlJfREVWSUNFX09SRF9MRU5HVEgsIAkiUG9kYWogdXJ6uWR6ZW5pZSBhbGJvIG5henfqIHN0ZXJvd25pa2EgbyBsaWN6YmllIHpuYWvzdyBtbmllanN6ZWogbmm/IDY5LiIKTUNJRVJSX05PX0lOVEVHRVIsIAkJIlBvZGFuZSBwb2xlY2VuaWUgd3ltYWdhIGxpY3pieSBjYbNrb3dpdGVqIGpha28gcGFyYW1ldHJ1LiBQcm9zeuogcG9kYWogamFruZwuIgpNQ0lFUlJfV0FWRV9PVVRQVVRTSU5VU0UsIAkiV3N6eXN0a2llIHVyerlkemVuaWEgd2F2ZSBrdPNyZSBtb2e5IG9kdHdhcnph5iBwbGlraSB3IGFrdHVhbG55bSBmb3JtYWNpZSBzuSB3IHW/eWNpdS4gUG9jemVrYWosIGG/IHVyerlkemVuaWUgd2F2ZSB6b3N0YW5pZSB6d29sbmlvbmUgaSBzcHLzYnVqIHBvbm93bmllLiIKTUNJRVJSX1dBVkVfU0VUT1VUUFVUSU5VU0UsIAkiTmllIG1vv25hIHVzdGF3aeYgYWt0dWFsbmVnbyB1cnq5ZHplbmlhIHdhdmUgbmEgb2R0d2FyemFuaWUsIHBvbmlld2G/IGplc3QgdyB1v3ljaXUuIFBvY3pla2FqLCBhvyB1cnq5ZHplbmllIHpvc3RhbmllIHp3b2xuaW9uZSBpIHNwcvNidWogcG9ub3duaWUuIgpNQ0lFUlJfV0FWRV9JTlBVVFNJTlVTRSwgCSJXc3p5c3RraWUgdXJ6uWR6ZW5pYSwga3TzcmUgbW9nuSBuYWdyeXdh5iBwbGlraSB3IGFrdHVhbG55bSBmb3JtYWNpZSBzuSB3IHW/eWNpdS4gUG9jemVrYWosIGG/IHVyerlkemVuaWUgd2F2ZSB6b3N0YW5pZSB6d29sbmlvbmUgaSBzcHLzYnVqIHBvbm93bmllLiIKTUNJRVJSX1dBVkVfU0VUSU5QVVRJTlVTRSwgCSJOaWUgbW+/bmEgdXN0YXdp5iBha3R1YWxuZWdvIHVyerlkemVuaWEgd2F2ZSBuYSBuYWdyeXdhbmllLCBwb25pZXdhvyBqZXN0IHcgdb95Y2l1LiBQb2N6ZWthaiwgYb8gdXJ6uWR6ZW5pZSB6b3N0YW5pZSB6d29sbmlvbmUgaSBzcHLzYnVqIHBvbm93bmllLiIKTUNJRVJSX1dBVkVfT1VUUFVUVU5TUEVDSUZJRUQsCSJLYb9kZSB1cnq5ZHplbmllIGtvbXBhdHliaWxuZSB6IG9kdHdhcnphbmllbSB3YXZlZm9ybSBtb79lIGJ55iB1v3l0ZS4iCk1DSUVSUl9XQVZFX0lOUFVUVU5TUEVDSUZJRUQsIAkiS2G/ZGUgdXJ6uWR6ZW5pZSBrb21wYXR5YmlsbmUgeiBuYWdyeXdhbmllbSB3YXZlZm9ybSBtb79lIGJ55iB1v3l0ZS4iCk1DSUVSUl9XQVZFX09VVFBVVFNVTlNVSVRBQkxFLCAJIkJyYWsgemFpbnN0YWxvd2FuZWdvIHVyerlkemVuaWEgd2F2ZSwga3TzcmUgbW+/ZSBvZHR3YXJ6YeYgcGxpa2kgdyBha3R1YWxueW0gZm9ybWFjaWUuIFW/eWogb3BjamkgJ0RyaXZlcnMnIGFieSB6YWluc3RhbG93YeYgdXJ6uWR6ZW5pZSB3YXZlLiIKTUNJRVJSX1dBVkVfU0VUT1VUUFVUVU5TVUlUQUJMRSwiVXJ6uWR6ZW5pZSwga3TzcnltIHBy82J1amVzeiBvZHR3b3J6eeYgbmllIG1vv2Ugcm96cG96bmHmIGFrdHVhbG5lZ28gZm9ybWF0dSBwbGlr83cuIgpNQ0lFUlJfV0FWRV9JTlBVVFNVTlNVSVRBQkxFLCAJIkJyYWsgemFpbnN0YWxvd2FuZWdvIHVyerlkemVuaWEgd2F2ZSwga3TzcmUgbW+/ZSBuYWdyeXdh5iBwbGlraSB3IGFrdHVhbG55bSBmb3JtYWNpZS4gVb95aiBvcGNqaSAnRHJpdmVycycgYWJ5IHphaW5zdGFsb3dh5iB1cnq5ZHplbmllIHdhdmUuIgpNQ0lFUlJfV0FWRV9TRVRJTlBVVFVOU1VJVEFCTEUsICJVcnq5ZHplbmllLCBrdPNyeW0gcHLzYnVqZXN6IG5hZ3Jh5iBuaWUgbW+/ZSByb3pwb3puYeYgYWt0dWFsbmVnbyBmb3JtYXR1IHBsaWvzdy4iCk1DSUVSUl9OT19XSU5ET1csIAkJIk5pZSBtYSBva25hIHd5nHdpZXRsYWq5Y2Vnby4iCk1DSUVSUl9DUkVBVEVXSU5ET1csIAkJIk5pZSBtb79uYSBzdHdvcnp55iBsdWIgdb955iBva25hLiIKTUNJRVJSX0ZJTEVfUkVBRCwgCQkiTmllIG1vv25hIG9kY3p5dGHmIHBvZGFuZWdvIHBsaWt1LiBVcGV3bmlqIHNp6iwgv2UgcGxpayBuYWRhbCBpc3RuaWVqZSBsdWIgc3ByYXdknyB0d/NqIGR5c2sgbHViIHBvs7ljemVuaWUgc2llY2lvd2UuIgpNQ0lFUlJfRklMRV9XUklURSwgCQkiTmllIG1vv25hIHphcGlzYeYgZG8gcG9kYW5lZ28gcGxpa3UuIFVwZXduaWogc2nqIL9lIG1hc3ogd3lzdGFyY3pharljbyBtaWVqc2NhIG5hIGR5c2t1IGx1YiBjenkgamVzdGWcIG5hZGFsIHBvZLO5Y3pvbnkgZG8gc2llY2kuIgpNQ0lFUlJfU0VRX0RJVl9JTkNPTVBBVElCTEUsIAkiRm9ybWF0eSBjemFzdSBkbGEgIiJzb25nIHBvaW50ZXIiIiBpIFNNUFRFIHO5IHd6YWplbW5pZSB3eWtsdWN6YWq5Y2Ugc2nqLiBOaWUgbW+/ZXN6IHW/eeYgaWNoIHJhemVtLiIKTUNJRVJSX1NFUV9OT01JRElQUkVTRU5ULCAJIlVyerlkemVuaWEgTUlESSBuaWUgc7kgemFpbnN0YWxvd2FuZSB3IHN5c3RlbWllLiBVv3lqIG9wY2ppICdEcml2ZXJzJyB6IFBhbmVsdSBTdGVyb3dhbmlhLCBhYnkgemFpbnN0YWxvd2HmIHN0ZXJvd25payBNSURJLiIKTUNJRVJSX1NFUV9QT1JUX0lOVVNFLCAJCSJQb2RhbnkgcG9ydCBNSURJIGplc3QganW/IHcgdb95Y2l1LiBQb2N6ZWthaiwgYb8gc2nqIHp3b2xuaSBpIHNwcvNidWogcG9ub3duaWUuIgpNQ0lFUlJfU0VRX1BPUlRfTUFQTk9ERVZJQ0UsIAkiQWt0dWFsbmUgdXN0YXdpZW5pZSBNYXBlcmEgTUlESSBvZG5vc2kgc2nqIGRvIHVyerlkemVuaWEgTUlESSwga3TzcmUgbmllIGplc3QgemFpbnN0YWxvd2FuZSB3IHN5c3RlbWllLiBVv3lqIG9wY2ppICdNSURJIE1hcHBlcicgeiBQYW5lbHUgU3Rlcm93YW5pYSwgYWJ5IGVkeXRvd2HmIHVzdGF3aWVuaWUuIgpNQ0lFUlJfU0VRX1BPUlRfTUlTQ0VSUk9SLCAJIld5c3S5cGmzIGKzuWQgeiBwb2RhbnltIHBvcnRlbS4iCk1DSUVSUl9TRVFfUE9SVF9OT05FWElTVEVOVCwgCSJQb2RhbmUgdXJ6uWR6ZW5pZSBNSURJIG5pZSBqZXN0IHphaW5zdGFsb3dhbmUgdyBzeXN0ZW1pZS4gVb95aiBvcGNqaSAnRHJpdmVycycgeiBQYW5lbHUgU3Rlcm93YW5pYSwgYWJ5IHphaW5zdGFsb3dh5iB1cnq5ZHplbmllIE1JREkuIgpNQ0lFUlJfU0VRX1BPUlRVTlNQRUNJRklFRCwgCSJOaWUgcG9kYW5vIGFrdHVhbG5lZ28gcG9ydHUgTUlESSB3IHN5c3RlbWllLiIKTUNJRVJSX1NFUV9USU1FUiwgCQkiV3N6eXN0a2llIHd5endhbGFjemUgbXVsdGltZWRpYWxuZSBzuSB1v3l3YW5lIHByemV6IGlubmUgYXBsaWthY2plLiBaYW1rbmlqIGplZG65IHogdHljaCBhcGxpa2FjamkgaSBzcHLzYnVqIHBvbm93bmllLiIKCkVORAo=