LyoKICogQ29weXJpZ2h0IDIwMDggUmljYXJkbyBGaWxpcGUKICoKICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBCiAqLwoKI2luY2x1ZGUgInNoZG9jbGMuaCIKCkxBTkdVQUdFIExBTkdfUE9SVFVHVUVTRSwgU1VCTEFOR19ORVVUUkFMCgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQp7CiAgICBJRFNfTUVTU0FHRV9CT1hfVElUTEUsICJXaW5lIEludGVybmV0IEV4cGxvcmVyIgp9CgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQp7CiAgICBJRFNfUFJJTlRfSEVBREVSX1RFTVBMQVRFICImdyZiUGFnZSAmcCIgLyogRklYTUU6IHNob3VsZCBiZSAiJncmYlBhZ2UgJnAgb2YgJlAiICovCiAgICBJRFNfUFJJTlRfRk9PVEVSX1RFTVBMQVRFICImdSZiJmQiCn0KCklEUl9CUk9XU0VfQ09OVEVYVF9NRU5VIE1FTlUKewogICAgUE9QVVAgIkRlZmF1bHQiCiAgICB7CiAgICAgICAgTUVOVUlURU0gIiZSZXRyb2NlZGVyIiwgICAgICAgICAgICAgICAgICBJRE1fR09CQUNLV0FSRAogICAgICAgIE1FTlVJVEVNICImQXZhbudhciIsICAgICAgICAgICAgICAgSURNX0dPRk9SV0FSRAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImR3VhcmRhciBmdW5kbyBjb21vLi4uIiwgSURNX1NBVkVCQUNLR1JPVU5ECiAgICAgICAgTUVOVUlURU0gIiZEZWZpbmlyIGNvbW8gZnVuZG8iLCAgICAgSURNX1NFVFdBTExQQVBFUgogICAgICAgIE1FTlVJVEVNICImQ29waWFyIGZ1bmRvIiwgICAgICAgSURNX0NPUFlCQUNLR1JPVU5ECiAgICAgICAgTUVOVUlURU0gIkRlZmluaXIgY29tbyAmSXRlbSBkbyBBbWJpZW50ZSBkZSBUcmFiYWxobyIsICAgSURNX1NFVERFU0tUT1BJVEVNCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZTZWxlY2Npb25hciBUdWRvIiwgICAgICAgICAgICBJRE1fU0VMRUNUQUxMCiAgICAgICAgTUVOVUlURU0gIiZDb2xhciIsICAgICAgICAgICAgICAgICBJRE1fUEFTVEUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiQ3JpYXIgJkF0YWxobyIsICAgICAgIElETV9DUkVBVEVTSE9SVENVVAogICAgICAgIE1FTlVJVEVNICJBZGljaW9uYXIgYW9zICZGYXZvcml0b3MiLCAgICAgSURNX0FEREZBVk9SSVRFUwogICAgICAgIE1FTlVJVEVNICImVmVyIEPzZGlnbyBGb250ZSIsICAgICAgICAgICBJRE1fVklFV1NPVVJDRQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJDJm9kaWZpY2Hn428iLCAgICAgICAgICAgICAgSURNX0xBTkdVQUdFCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZJbXByaW1pciIsICAgICAgICAgICAgICAgICBJRE1fUFJJTlQKICAgICAgICBNRU5VSVRFTSAiJkFjdHVhbGl6YXIiLCAgICAgICAgICAgICAgIF9JRE1fUkVGUkVTSAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImUHJvcHJpZWRhZGVzIiwgICAgICAgICAgICBJRE1fUFJPUEVSVElFUwogICAgfQoKICAgIFBPUFVQICJJbWFnZW0iCiAgICB7CiAgICAgICAgTUVOVUlURU0gIiZBYnJpciBsaWdh5+NvIiwgICAgICAgICAgICAgICBJRE1fRk9MTE9XTElOS0MKICAgICAgICBNRU5VSVRFTSAiQWJyaXIgJmxpZ2Hn428gbnVtYSBub3ZhIGphbmVsYSIsIElETV9GT0xMT1dMSU5LTgogICAgICAgIE1FTlVJVEVNICImR3VhcmRhciBsaWdh5+NvIGNvbW8uLi4iLCAgICAgICBJRE1fU0FWRVRBUkdFVAogICAgICAgIE1FTlVJVEVNICImSW1wcmltaXIgbGlnYefjbyIsICAgICAgICAgICAgSURNX1BSSU5UVEFSR0VUCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZNb3N0cmFyIGltYWdlbSIsICAgICAgICAgICAgSURNX1NIT1dQSUNUVVJFCiAgICAgICAgTUVOVUlURU0gIkcmdWFyZGFyIGltYWdlbSBjb21vLi4uIiwgICAgICBJRE1fU0FWRVBJQ1RVUkUKICAgICAgICBNRU5VSVRFTSAiJkVudmlhciBpbWFnZW0uLi4iLCAgICAgICBJRE1fTVBfRU1BSUxQSUNUVVJFCiAgICAgICAgTUVOVUlURU0gIkkmbXByaW1pciBpbWFnZW0uLi4iLCAgICAgICAgSURNX01QX1BSSU5UUElDVFVSRQogICAgICAgIE1FTlVJVEVNICJJJnIgcGFyYSBNaW5oYXMgSW1hZ2VucyIsICAgICAgIElETV9NUF9NWVBJQ1MKICAgICAgICBNRU5VSVRFTSAiJkRlZmluaXIgY29tbyBmdW5kbyIsICAgICAgIElETV9TRVRXQUxMUEFQRVIKICAgICAgICBNRU5VSVRFTSAiRCZlZmluaXIgY29tbyBpdGVtIGRvIEFtYmllbnRlIGRlIFRyYWJhbGhvLi4uIiwgIElETV9TRVRERVNLVE9QSVRFTQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImQ29ydGFyIiwgICAgICAgICAgICAgICAgICAgICBJRE1fQ1VUCiAgICAgICAgTUVOVUlURU0gIkMmb3BpYXIiLCAgICAgICAgICAgICAgICAgICAgSURNX0NPUFkKICAgICAgICBNRU5VSVRFTSAiQ28mcGlhciBBdGFsaG8iLCAgICAgICAgICAgSURNX0NPUFlTSE9SVENVVAogICAgICAgIE1FTlVJVEVNICJDb2wmYXIiLCAgICAgICAgICAgICAgICAgICBJRE1fUEFTVEUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiQWRpY2lvbmFyIGFvcyAmRmF2b3JpdG9zLi4uIiwgICAgIElETV9BRERGQVZPUklURVMKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJlByb3ByaWVkYWRlcyIsICAgICAgICAgICAgICBJRE1fUFJPUEVSVElFUwogICAgfQoKICAgIFBPUFVQICJDb250cm9sbyIKICAgIHsKICAgICAgICBNRU5VSVRFTSAiJkRlc2ZhemVyIiwgICAgICAgSURNX1VORE8KICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJkNvcnRhciIsICAgICAgICBJRE1fQ1VUCiAgICAgICAgTUVOVUlURU0gIkMmb3BpYXIiLCAgICAgICBJRE1fQ09QWQogICAgICAgIE1FTlVJVEVNICJDbyZsYXIiLCAgICAgIElETV9QQVNURQogICAgICAgIE1FTlVJVEVNICImQXBhZ2FyIiwgICAgIElETV9ERUxFVEUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJlNlbGVjY2lvbmFyIFR1ZG8iLCBJRE1fU0VMRUNUQUxMCiAgICB9CgogICAgUE9QVVAgIlRhYmVsYSIKICAgIHsKICAgICAgICBQT1BVUCAiJlNlbGVjY2lvbmFyIgogICAgICAgIHsKICAgICAgICAgICAgTUVOVUlURU0gIiZD6Wx1bGEiLCAgICAgICAgIElETV9DRUxMU0VMRUNUCiAgICAgICAgICAgIE1FTlVJVEVNICImTGluaGEiLCAgICAgICAgICBJRE1fUk9XU0VMRUNUCiAgICAgICAgICAgIE1FTlVJVEVNICJDJm9sdW5hIiwgICAgICAgSURNX0NPTFVNTlNFTEVDVAogICAgICAgICAgICBNRU5VSVRFTSAiJlRhYmVsYSIsICAgICAgICBJRE1fVEFCTEVTRUxFQ1QKICAgICAgICB9CiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZQcm9wcmllZGFkZXMgZGEgQ+lsdWxhIiwgIElETV9DRUxMUFJPUEVSVElFUwogICAgICAgIE1FTlVJVEVNICImUHJvcHJpZWRhZGVzIGRhIFRhYmVsYSIsIElETV9UQUJMRVBST1BFUlRJRVMKICAgIH0KCiAgICBQT1BVUCAiMURTaXRlIFNlbGVjdCIKICAgIHsKICAgICAgICBNRU5VSVRFTSAiJkNvcnRhciIsICAgICAgICBJRE1fQ1VUCiAgICAgICAgTUVOVUlURU0gIkMmb3BpYXIiLCAgICAgICBJRE1fQ09QWQogICAgICAgIE1FTlVJVEVNICJDbyZsYXIiLCAgICAgIElETV9QQVNURQogICAgICAgIE1FTlVJVEVNICJTZWxlY2Npb25hciBUdWRvIiwgSURNX1NFTEVDVEFMTAogICAgICAgIE1FTlVJVEVNICImSW1wcmltaXIiLCAgICAgIElETV9QUklOVAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgfQoKICAgIFBPUFVQICLCbmNvcmEiCiAgICB7CiAgICAgICAgTUVOVUlURU0gIiZBYnJpciIsICAgICAgICAgICAgICAgIElETV9GT0xMT1dMSU5LQwogICAgICAgIE1FTlVJVEVNICJBJmJyaXIgbnVtYSBub3ZhIGphbmVsYSIsICBJRE1fRk9MTE9XTElOS04KICAgICAgICBNRU5VSVRFTSAiJkd1YXJkYXIgbGlnYefjbyBjb21vLi4uIiwgICBJRE1fU0FWRVRBUkdFVAogICAgICAgIE1FTlVJVEVNICImSW1wcmltaXIgbGlnYefjbyIsICAgICAgICBJRE1fUFJJTlRUQVJHRVQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJkNvcnRhciIsICAgICAgICAgICAgICAgICAgSURNX0NVVAogICAgICAgIE1FTlVJVEVNICJDJm9waWFyIiwgICAgICAgICAgICAgICAgSURNX0NPUFkKICAgICAgICBNRU5VSVRFTSAiQ28mcGlhciBBdGFsaG8iLCAgICAgICBJRE1fQ09QWVNIT1JUQ1VUCiAgICAgICAgTUVOVUlURU0gIiZDb2xhciIsICAgICAgICAgICAgICAgSURNX1BBU1RFCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIkFkaWNpb25hciBhb3MgJkZhdm9yaXRvcy4uLiIsIElETV9BRERGQVZPUklURVMKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJlByb3ByaWVkYWRlcyIsICAgICAgICAgIElETV9QUk9QRVJUSUVTCiAgICB9CgogICAgUE9QVVAgIkNvbnRleHRvIERlc2NvbmhlY2lkbyIKICAgIHsKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgIH0KCiAgICBQT1BVUCAiSW1hZ2VtIERZTlNSQyIKICAgIHsKICAgICAgICBNRU5VSVRFTSAiJkFicmlyIGxpZ2Hn428iLCAgICAgICAgICAgICAgIElETV9GT0xMT1dMSU5LQwogICAgICAgIE1FTlVJVEVNICJBJmJyaXIgbGlnYefjbyBudW1hIG5vdmEgamFuZWxhIiwgSURNX0ZPTExPV0xJTktOCiAgICAgICAgTUVOVUlURU0gIiZHdWFyZGFyIGxpZ2Hn428gY29tby4uLiIsICAgICAgIElETV9TQVZFVEFSR0VUCiAgICAgICAgTUVOVUlURU0gIiZJbXByaW1pciBsaWdh5+NvIiwgICAgICAgICAgICBJRE1fUFJJTlRUQVJHRVQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJk1vc3RyYXIgaW1hZ2VtIiwgICAgICAgICAgICBJRE1fU0hPV1BJQ1RVUkUKICAgICAgICBNRU5VSVRFTSAiRyZ1YXJkYXIgdmlkZW8gY29tby4uLiIsICAgICAgICBJRE1fU0FWRVBJQ1RVUkUKICAgICAgICBNRU5VSVRFTSAiJkRlZmluaXIgY29tbyBmdW5kbyIsICAgICAgIElETV9TRVRXQUxMUEFQRVIKICAgICAgICBNRU5VSVRFTSAiRCZlZmluaXIgY29tbyBpdGVtIGRvIEFtYmllbnRlIGRlIFRyYWJhbGhvLi4uIiwgIElETV9TRVRERVNLVE9QSVRFTQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImQ29ydGFyIiwgICAgICAgICAgICAgICAgICAgICBJRE1fQ1VUCiAgICAgICAgTUVOVUlURU0gIkMmb3BpYXIiLCAgICAgICAgICAgICAgICAgICAgSURNX0NPUFkKICAgICAgICBNRU5VSVRFTSAiQ28mcGlhciBBdGFsaG8iLCAgICAgICAgICAgSURNX0NPUFlTSE9SVENVVAogICAgICAgIE1FTlVJVEVNICJDbyZsYXIiLCAgICAgICAgICAgICAgICAgICBJRE1fUEFTVEUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiQWRpY2lvbmFyIGFvcyAmRmF2b3JpdG9zLi4uIiwgICAgIElETV9BRERGQVZPUklURVMKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiSSZuaWNpYXIiLCAgICAgICAgICAgICAgICAgICAgIElETV9EWU5TUkNQTEFZCiAgICAgICAgTUVOVUlURU0gIlBhJnJhciIsICAgICAgICAgICAgICAgICAgICAgSURNX0RZTlNSQ1NUT1AKICAgICAgICBNRU5VSVRFTSAiJlByb3ByaWVkYWRlcyIsICAgICAgICAgICAgICBJRE1fUFJPUEVSVElFUwogICAgfQoKICAgIFBPUFVQICJJbWFnZW0gQVJUIgogICAgewogICAgICAgIE1FTlVJVEVNICImQWJyaXIgbGlnYefjbyIsICAgICAgICAgICAgICAgSURNX0ZPTExPV0xJTktDCiAgICAgICAgTUVOVUlURU0gIkEmYnJpciBsaWdh5+NvIG51bWEgbm92YSBqYW5lbGEiLCBJRE1fRk9MTE9XTElOS04KICAgICAgICBNRU5VSVRFTSAiJkd1YXJkYXIgbGlnYefjbyBjb21vLi4uIiwgICAgICAgSURNX1NBVkVUQVJHRVQKICAgICAgICBNRU5VSVRFTSAiJkltcHJpbWlyIGxpZ2Hn428iLCAgICAgICAgICAgIElETV9QUklOVFRBUkdFVAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImTW9zdHJhciBpbWFnZW0iLCAgICAgICAgICAgIElETV9TSE9XUElDVFVSRQogICAgICAgIE1FTlVJVEVNICJHJnVhcmRhciB2aWRlbyBjb21vLi4uIiwgICAgICAgIElETV9TQVZFUElDVFVSRQogICAgICAgIE1FTlVJVEVNICImRGVmaW5pciBjb21vIGZ1bmRvIiwgICAgICAgSURNX1NFVFdBTExQQVBFUgogICAgICAgIE1FTlVJVEVNICJEJmVmaW5pciBjb21vIGl0ZW0gZG8gQW1iaWVudGUgZGUgVHJhYmFsaG8uLi4iLCAgSURNX1NFVERFU0tUT1BJVEVNCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZDb3J0YXIiLCAgICAgICAgICAgICAgICAgICAgIElETV9DVVQKICAgICAgICBNRU5VSVRFTSAiQyZvcGlhciIsICAgICAgICAgICAgICAgICAgICBJRE1fQ09QWQogICAgICAgIE1FTlVJVEVNICJDbyZwaWFyIEF0YWxobyIsICAgICAgICAgICBJRE1fQ09QWVNIT1JUQ1VUCiAgICAgICAgTUVOVUlURU0gIkNvJmxhciIsICAgICAgICAgICAgICAgICAgIElETV9QQVNURQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJBZGljaW9uYXIgYW9zICZGYXZvcml0b3MuLi4iLCAgICAgSURNX0FEREZBVk9SSVRFUwogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJJJm5pY2lhciIsICAgICAgICAgICAgICAgICAgICAgSURNX0RZTlNSQ1BMQVkKICAgICAgICBNRU5VSVRFTSAiJlBhcmFyIiwgICAgICAgICAgICAgICAgICAgICBJRE1fRFlOU1JDU1RPUAogICAgICAgIE1FTlVJVEVNICImUmVjb21l52FyIiwgICAgICAgICAgICAgICAgICAgSURNX0lNR0FSVFJFV0lORAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJQcm9wcmllZGFkZSZzIiwgICAgICAgICAgICAgIElETV9QUk9QRVJUSUVTCiAgICB9CgogICAgUE9QVVAgIkRlYnVnIgogICAgewogICAgICAgIE1FTlVJVEVNICJUcmFjZSBUYWdzIiwgICAgICAgICBJRE1fVFJBQ0VUQUdTCiAgICAgICAgTUVOVUlURU0gIlJlc291cmNlIEZhaWx1cmVzIiwgIElETV9SRVNPVVJDRUZBSUxVUkVTCiAgICAgICAgTUVOVUlURU0gIkR1bXAgVHJhY2tpbmcgSW5mbyIsIElETV9EVU1QVFJBQ0tJTkdJTkZPCiAgICAgICAgTUVOVUlURU0gIkRlYnVnIEJyZWFrIiwgICAgICAgIElETV9ERUJVR0JSRUFLCiAgICAgICAgTUVOVUlURU0gIkRlYnVnIFZpZXciLCAgICAgICAgIElETV9ERUJVR1ZJRVcKICAgICAgICBNRU5VSVRFTSAiRHVtcCBUcmVlIiwgICAgICAgICAgSURNX0RVTVBUUkVFCiAgICAgICAgTUVOVUlURU0gIkR1bXAgTGluZXMiLCAgICAgICAgIElETV9EVU1QTElORVMKICAgICAgICBNRU5VSVRFTSAiRHVtcCBEaXNwbGF5VHJlZSIsICAgSURNX0RVTVBESVNQTEFZVFJFRQogICAgICAgIE1FTlVJVEVNICJEdW1wIEZvcm1hdENhY2hlcyIsICBJRE1fRFVNUEZPUk1BVENBQ0hFUwogICAgICAgIE1FTlVJVEVNICJEdW1wIExheW91dFJlY3RzIiwgICBJRE1fRFVNUExBWU9VVFJFQ1RTCiAgICAgICAgTUVOVUlURU0gIk1lbW9yeSBNb25pdG9yIiwgICAgIElETV9NRU1PUllNT05JVE9SCiAgICAgICAgTUVOVUlURU0gIlBlcmZvcm1hbmNlIE1ldGVycyIsIElETV9QRVJGT1JNQU5DRU1FVEVSUwogICAgICAgIE1FTlVJVEVNICJTYXZlIEhUTUwiLCAgICAgICAgICBJRE1fU0FWRUhUTUwKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJkJyb3dzZSBWaWV3IiwgICAgICAgSURNX0JST1dTRU1PREUKICAgICAgICBNRU5VSVRFTSAiJkVkaXQgVmlldyIsICAgICAgICAgSURNX0VESVRNT0RFCiAgICB9CgogICAgUE9QVVAgIlNjcm9sbGJhciBWZXJ0aWNhbCIKICAgIHsKICAgICAgICBNRU5VSVRFTSAiU2Nyb2xsIEFxdWkiLCAgSURNX1NDUk9MTF9IRVJFCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIlRvcG8iLCAgICAgICAgICBJRE1fU0NST0xMX1RPUAogICAgICAgIE1FTlVJVEVNICJGdW5kbyIsICAgICAgIElETV9TQ1JPTExfQk9UVE9NCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIlDhZ2luYSBBY2ltYSIsICAgICAgSURNX1NDUk9MTF9QQUdFVVAKICAgICAgICBNRU5VSVRFTSAiUOFnaW5hIGFiYWl4byIsICAgIElETV9TQ1JPTExfUEFHRURPV04KICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiU2Nyb2xsIENpbWEiLCAgICBJRE1fU0NST0xMX1VQCiAgICAgICAgTUVOVUlURU0gIlNjcm9sbCBCYWl4byIsICBJRE1fU0NST0xMX0RPV04KICAgIH0KCiAgICBQT1BVUCAiSG9yaXpvbnRhbCBTY3JvbGxiYXIiCiAgICB7CiAgICAgICAgTUVOVUlURU0gIlNjcm9sbCBBcXVpIiwgIElETV9TQ1JPTExfSEVSRQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJDYW50byBFc3F1ZXJkbyIsICAgIElETV9TQ1JPTExfTEVGVEVER0UKICAgICAgICBNRU5VSVRFTSAiQ2FudG8gRGlyZWl0byIsICAgSURNX1NDUk9MTF9SSUdIVEVER0UKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiUOFnaW5hIGVzcXVlcmRhIiwgICAgSURNX1NDUk9MTF9QQUdFTEVGVAogICAgICAgIE1FTlVJVEVNICJQ4WdpbmEgZGlyZWl0YSIsICAgSURNX1NDUk9MTF9QQUdFUklHSFQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiU2Nyb2xsIEVzcXVlcmRhIiwgIElETV9TQ1JPTExfTEVGVAogICAgICAgIE1FTlVJVEVNICJTY3JvbGwgRGlyZWl0YSIsIElETV9TQ1JPTExfUklHSFQKICAgIH0KfQo=