From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from out30-112.freemail.mail.aliyun.com (out30-112.freemail.mail.aliyun.com [115.124.30.112]) by sourceware.org (Postfix) with ESMTPS id 5369C3857C5E for ; Thu, 11 Jan 2024 09:26:24 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 5369C3857C5E Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=linux.alibaba.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=linux.alibaba.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 5369C3857C5E Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=115.124.30.112 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1704965196; cv=none; b=k3VBUzX7gvLZqo6JwUYeuww40CPGP4avh6TOtbB9z/fk82ORNe8PCniWhZq9RLtU37KPv46SRlPysP0Nrv/tu8RdHPhrkQiwPe3lkGWLgYqVvtVxX7zNYUPSHV0cgkM4ROl6icDWmdQHhmnQZIkPcGS1JZpL5WNvhAQl7W5bwOI= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1704965196; c=relaxed/simple; bh=xuT1xOEE4AfNbd6rOrK5+QatkZiVaqvMoh35DL+eR5c=; h=Date:From:To:Message-ID:Subject:MIME-Version; b=xzmK6eqeAUMRzbJ4dIAcYBCPhCPzYynPIDGlftapfjPhA++ZOTaOJSl7mYuMuJAqZofo0AmpPBVLDd4nOnvp6p+gOaFk48a/MNT3FXuQukUlL0dgN9kDyBoesPATd2+4GvxBSkD0K2PEMfkcuJxjmXJ4NMMxNfNVoV0/zvVsrpo= ARC-Authentication-Results: i=1; server2.sourceware.org X-Alimail-AntiSpam:AC=PASS;BC=-1|-1;BR=01201311R551e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=ay29a033018046049;MF=cooper.joshua@linux.alibaba.com;NM=1;PH=DW;RN=10;SR=0;TI=W4_0.2.3_v5ForWebDing_211285CC_1704965180336_o7001c54h; Received: from WS-web (cooper.joshua@linux.alibaba.com[W4_0.2.3_v5ForWebDing_211285CC_1704965180336_o7001c54h]) at Thu, 11 Jan 2024 17:26:20 +0800 Date: Thu, 11 Jan 2024 17:26:20 +0800 From: "joshua" To: "juzhe.zhong@rivai.ai" , "gcc-patches" Cc: "Jim Wilson" , "palmer" , "andrew" , "philipp.tomsich" , "jeffreyalaw" , "christoph.muellner" , "jinma" , "cooper.qu" Reply-To: "joshua" Message-ID: Subject: =?UTF-8?B?UmXvvJpSZe+8mltQQVRDSCB2NV0gUklTQy1WOiBBZGQgc3VwcG9ydCBmb3IgeHRoZWFkdmVj?= =?UTF-8?B?dG9yLXNwZWNpZmljIGludHJpbnNpY3Mu?= X-Mailer: [Alimail-Mailagent revision 79][W4_0.2.3][v5ForWebDing][Chrome] MIME-Version: 1.0 x-aliyun-im-through: {"mailThroughImNew":true} References: <0DCA10082832D0E1+202401111717242848100@rivai.ai> x-aliyun-mail-creator: W4_0.2.3_v5ForWebDing_SFRTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzEyMC4wLjAuMCBTYWZhcmkvNTM3LjM2IEVkZy8xMjAuMC4wLjA=Ch In-Reply-To: <0DCA10082832D0E1+202401111717242848100@rivai.ai> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 X-Spam-Status: No, score=-18.2 required=5.0 tests=BAYES_00,BODY_8BITS,ENV_AND_HDR_SPF_MATCH,GIT_PATCH_0,KAM_ASCII_DIVIDERS,KAM_DMARC_STATUS,KAM_SHORT,RCVD_IN_DNSWL_NONE,SCC_5_SHORT_WORD_LINES,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE,UNPARSEABLE_RELAY,USER_IN_DEF_SPF_WL autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: TWF5YmUgdGhlIG9wdGltaXphdGlvbiBjYW5ub3QgYmUgZG9uZSBpbiBzaW1wbGUgY2FzZXMuIFdl IHJ1biBzb21lIGNvbXBsZXggY2FzZXMKaW4gTzIgYW5kIGRzaWNvdmVyZWQgaXQuCgoKCgoKCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQrlj5Hku7bkurrvvJpqdXpoZS56aG9uZ0ByaXZhaS5haSA8anV6aGUuemhvbmdAcml2 YWkuYWk+CuWPkemAgeaXtumXtO+8mjIwMjTlubQx5pyIMTHml6Uo5pif5pyf5ZubKSAxNzoxNwrm lLbku7bkurrvvJoiY29vcGVyLmpvc2h1YSI8Y29vcGVyLmpvc2h1YUBsaW51eC5hbGliYWJhLmNv bT47ICJnY2MtcGF0Y2hlcyI8Z2NjLXBhdGNoZXNAZ2NjLmdudS5vcmc+CuaKhOOAgOmAge+8mkpp bSBXaWxzb248amltLndpbHNvbi5nY2NAZ21haWwuY29tPjsgcGFsbWVyPHBhbG1lckBkYWJiZWx0 LmNvbT47IGFuZHJldzxhbmRyZXdAc2lmaXZlLmNvbT47ICJwaGlsaXBwLnRvbXNpY2giPHBoaWxp cHAudG9tc2ljaEB2cnVsbC5ldT47IGplZmZyZXlhbGF3PGplZmZyZXlhbGF3QGdtYWlsLmNvbT47 ICJjaHJpc3RvcGgubXVlbGxuZXIiPGNocmlzdG9waC5tdWVsbG5lckB2cnVsbC5ldT47IGppbm1h PGppbm1hQGxpbnV4LmFsaWJhYmEuY29tPjsgImNvb3Blci5xdSI8Y29vcGVyLnF1QGxpbnV4LmFs aWJhYmEuY29tPgrkuLvjgIDpopjvvJpSZTogUmXvvJpbUEFUQ0ggdjVdIFJJU0MtVjogQWRkIHN1 cHBvcnQgZm9yIHh0aGVhZHZlY3Rvci1zcGVjaWZpYyBpbnRyaW5zaWNzLgoKCllvdSBtZWFuIHdo aWNoIHBhdHRlcm4gb3B0aW1pemVkIHNleHQvdnpleHQgcGF0dGVybj8KCgpJIGRpZG4ndCBzZWUg dGhlYWR2ZWN0b3Itc3BlY2lmaWMgZXh0ZW5zaW9uIHBhdHRlcm5zLiBDb3VsZCB5b3Ugc2hvdyBt ZT8KCgoKCmp1emhlLnpob25nQHJpdmFpLmFpCgrCoArlj5Hku7bkurrvvJrCoGpvc2h1YQrlj5Hp gIHml7bpl7TvvJrCoDIwMjQtMDEtMTHCoDE3OjE0CuaUtuS7tuS6uu+8msKganV6aGUuemhvbmdA cml2YWkuYWk7IGdjYy1wYXRjaGVzCuaKhOmAge+8msKgSmltIFdpbHNvbjsgcGFsbWVyOyBhbmRy ZXc7IHBoaWxpcHAudG9tc2ljaDsgamVmZnJleWFsYXc7IGNocmlzdG9waC5tdWVsbG5lcjsgamlu bWE7IGNvb3Blci5xdQrkuLvpopjvvJrCoFJl77yaW1BBVENIIHY1XSBSSVNDLVY6IEFkZCBzdXBw b3J0IGZvciB4dGhlYWR2ZWN0b3Itc3BlY2lmaWMgaW50cmluc2ljcy4KClRvIGJlIHNwZWNpZmlj LMKgaW4gQ1NFIHBhc3MsIHRoZSBpbml0aWFsIHBhdHRlcm4gd2lsbCBiZSBvcHRpbWl6ZWQgaW50 byB0aGUgc2V4dC96ZXh0IHBhdHRlcm4uCsKgCsKgCsKgCsKgCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQrlj5Hku7bkurrv vJpqb3NodWEgPGNvb3Blci5qb3NodWFAbGludXguYWxpYmFiYS5jb20+CuWPkemAgeaXtumXtO+8 mjIwMjTlubQx5pyIMTHml6Uo5pif5pyf5ZubKSAxNzoxMQrmlLbku7bkurrvvJoianV6aGUuemhv bmdAcml2YWkuYWkiPGp1emhlLnpob25nQHJpdmFpLmFpPjsgImdjYy1wYXRjaGVzIjxnY2MtcGF0 Y2hlc0BnY2MuZ251Lm9yZz4K5oqE44CA6YCB77yaSmltIFdpbHNvbjxqaW0ud2lsc29uLmdjY0Bn bWFpbC5jb20+OyBwYWxtZXI8cGFsbWVyQGRhYmJlbHQuY29tPjsgYW5kcmV3PGFuZHJld0BzaWZp dmUuY29tPjsgInBoaWxpcHAudG9tc2ljaCI8cGhpbGlwcC50b21zaWNoQHZydWxsLmV1PjsgamVm ZnJleWFsYXc8amVmZnJleWFsYXdAZ21haWwuY29tPjsgImNocmlzdG9waC5tdWVsbG5lciI8Y2hy aXN0b3BoLm11ZWxsbmVyQHZydWxsLmV1PjsgamlubWE8amlubWFAbGludXguYWxpYmFiYS5jb20+ OyAiY29vcGVyLnF1Ijxjb29wZXIucXVAbGludXguYWxpYmFiYS5jb20+CuS4u+OAgOmimO+8mlJl 77yaW1BBVENIIHY1XSBSSVNDLVY6IEFkZCBzdXBwb3J0IGZvciB4dGhlYWR2ZWN0b3Itc3BlY2lm aWMgaW50cmluc2ljcy4KwqAKwqAKc2V4dC96ZXh0IHdpbGwgYmUgZ2VuZXJhdGVkIGluIE8yIGV2 ZW4gd2l0aG91dCBjb3JyZXNwb25kaW5nIGludHJpbnNpY3MuCsKgCsKgCsKgCsKgCsKgCsKgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQrlj5Hku7bkurrvvJpqdXpoZS56aG9uZ0ByaXZhaS5haSA8anV6aGUuemhvbmdAcml2 YWkuYWk+CuWPkemAgeaXtumXtO+8mjIwMjTlubQx5pyIMTHml6Uo5pif5pyf5ZubKSAxNzowNwrm lLbku7bkurrvvJoiY29vcGVyLmpvc2h1YSI8Y29vcGVyLmpvc2h1YUBsaW51eC5hbGliYWJhLmNv bT47ICJnY2MtcGF0Y2hlcyI8Z2NjLXBhdGNoZXNAZ2NjLmdudS5vcmc+CuaKhCDpgIHvvJpKaW0g V2lsc29uPGppbS53aWxzb24uZ2NjQGdtYWlsLmNvbT47IHBhbG1lcjxwYWxtZXJAZGFiYmVsdC5j b20+OyBhbmRyZXc8YW5kcmV3QHNpZml2ZS5jb20+OyAicGhpbGlwcC50b21zaWNoIjxwaGlsaXBw LnRvbXNpY2hAdnJ1bGwuZXU+OyBqZWZmcmV5YWxhdzxqZWZmcmV5YWxhd0BnbWFpbC5jb20+OyAi Y2hyaXN0b3BoLm11ZWxsbmVyIjxjaHJpc3RvcGgubXVlbGxuZXJAdnJ1bGwuZXU+OyAiY29vcGVy Lmpvc2h1YSI8Y29vcGVyLmpvc2h1YUBsaW51eC5hbGliYWJhLmNvbT47IGppbm1hPGppbm1hQGxp bnV4LmFsaWJhYmEuY29tPjsgImNvb3Blci5xdSI8Y29vcGVyLnF1QGxpbnV4LmFsaWJhYmEuY29t PgrkuLsg6aKY77yaUmU6IFtQQVRDSCB2NV0gUklTQy1WOiBBZGQgc3VwcG9ydCBmb3IgeHRoZWFk dmVjdG9yLXNwZWNpZmljIGludHJpbnNpY3MuCsKgCsKgCmVudW0gcmVxdWlyZWRfZXh0CnsKIMKg IFZFQ1RPUl9FWFQsIMKgIC8qIFZlY3RvciBleHRlbnNpb24gKi8KK8KgIFhUSEVBRFZFQ1RPUl9F WFQsIMKgIC8qIFhUaGVhZFZlY3RvciBleHRlbnNpb24gKi8KIMKgIFpWQkJfRVhULMKgIMKgIC8q IENyeXRvIHZlY3RvciBadmJiIHN1Yi1leHQgKi8KIMKgIFpWQkJfT1JfWlZLQl9FWFQsIC8qIENy eXRvIHZlY3RvciBadmJiIG9yIHp2a2Igc3ViLWV4dCAqLwogwqAgWlZCQ19FWFQswqAgwqAgLyog Q3J5cHRvIHZlY3RvciBadmJjIHN1Yi1leHQgKi8KwqAKwqAKwqAKQWRkIHRoZWFkdmVjdG9yIHRv IHRoZSBlbmQgb2YgdGhlIGVudW0uCsKgCsKgCivCoCDCoCDCoCBjYXNlIFhUSEVBRFZFQ1RPUl9F WFQ6CisgcmV0dXJuIFRBUkdFVF9YVEhFQURWRUNUT1I7CsKgCsKgCsKgClNhbWUuCsKgCsKgCivC oCAiJiYgcmVnaXN0ZXJfb3BlcmFuZCAob3BlcmFuZHNbMF0sIDxNT0RFPm1vZGUpCisgwqAgJiYg cmVnaXN0ZXJfb3BlcmFuZCAob3BlcmFuZHNbM10sIDxNT0RFPm1vZGUpCisgwqAgJiYgc2F0aXNm aWVzX2NvbnN0cmFpbnRfdnUgKG9wZXJhbmRzWzJdKQorIMKgICYmIElOVFZBTCAob3BlcmFuZHNb N10pID09IHJpc2N2X3ZlY3Rvcjo6VkxNQVgiCsKgCsKgCsKgCllvdSBjYW4gdXNlIHdob2xlX3Jl Z190b19yZWdfbW92ZV9wCsKgCsKgCsKgCsKgCkJ0dywgSSByZXZpZXcgYWdhaW4gOiDCoCBSSVND LVY6IEhhbmRsZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIFhUaGVhZHZlY3RvciBhbmQgVmVjdG9yCsKg CsKgCsKgIMKgIChhbnlfZXh0ZW5kOlZXRVhUScKgIMKgIMKgIChtYXRjaF9vcGVyYW5kOjxWX0RP VUJMRV9UUlVOQz4gMyAicmVnaXN0ZXJfb3BlcmFuZCIgwqAgIlcyMSxXMjEsVzIxLFcyMSxXNDIs VzQyLFc0MixXNDIsVzg0LFc4NCxXODQsVzg0LCDCoCB2ciwgwqAgdnIiKSnCoCDCoCAobWF0Y2hf b3BlcmFuZDpWV0VYVEkgMiAidmVjdG9yX21lcmdlX29wZXJhbmQiIMKgIMKgIMKgIMKgIMKgICIg dnUsIHZ1LMKgIDAswqAgMCwgdnUsIHZ1LMKgIDAswqAgMCwgdnUsIHZ1LMKgIDAswqAgMCwgwqAg dnUswqAgwqAgMCIpKSldLcKgICJUQVJHRVRfVkVDVE9SIivCoCAiVEFSR0VUX1ZFQ1RPUiAmJiAh VEFSR0VUX1hUSEVBRFZFQ1RPUiIgwqAgInY8c3o+ZXh0LnZmMlx0JTAsJTMlcDEiIMKgIFsoc2V0 X2F0dHIgInR5cGUiICJ2ZXh0IinCoCDCoCAoc2V0X2F0dHIgIm1vZGUiICI8TU9ERT4iKUBAIC0z NzEzLDcgKzM3NDQsNyBAQMKgIMKgIChhbnlfZXh0ZW5kOlZRRVhUScKgIMKgIMKgIChtYXRjaF9v cGVyYW5kOjxWX1FVQURfVFJVTkM+IDMgInJlZ2lzdGVyX29wZXJhbmQiIMKgICJXNDMsVzQzLFc0 MyxXNDMsVzg2LFc4NixXODYsVzg2LCDCoCB2ciwgwqAgdnIiKSnCoCDCoCAobWF0Y2hfb3BlcmFu ZDpWUUVYVEkgMiAidmVjdG9yX21lcmdlX29wZXJhbmQiIMKgIMKgIMKgIMKgICIgdnUsIHZ1LMKg IDAswqAgMCwgdnUsIHZ1LMKgIDAswqAgMCwgwqAgdnUswqAgwqAgMCIpKSldLcKgICJUQVJHRVRf VkVDVE9SIivCoCAiVEFSR0VUX1ZFQ1RPUiAmJiAhVEFSR0VUX1hUSEVBRFZFQ1RPUiIgwqAgInY8 c3o+ZXh0LnZmNFx0JTAsJTMlcDEiIMKgIFsoc2V0X2F0dHIgInR5cGUiICJ2ZXh0IinCoCDCoCAo c2V0X2F0dHIgIm1vZGUiICI8TU9ERT4iKUBAIC0zNzM0LDcgKzM3NjUsNyBAQMKgIMKgIChhbnlf ZXh0ZW5kOlZPRVhUScKgIMKgIMKgIChtYXRjaF9vcGVyYW5kOjxWX09DVF9UUlVOQz4gMyAicmVn aXN0ZXJfb3BlcmFuZCIgwqAgIlc4NyxXODcsVzg3LFc4NywgwqAgdnIsIMKgIHZyIikpwqAgwqAg KG1hdGNoX29wZXJhbmQ6Vk9FWFRJIDIgInZlY3Rvcl9tZXJnZV9vcGVyYW5kIsKgIMKgIMKgIMKg ICIgdnUsIHZ1LMKgIDAswqAgMCwgwqAgdnUswqAgwqAgMCIpKSldLcKgICJUQVJHRVRfVkVDVE9S IivCoCAiVEFSR0VUX1ZFQ1RPUiAmJiAhVEFSR0VUX1hUSEVBRFZFQ1RPUiIgwqAgInY8c3o+ZXh0 LnZmOFx0JTAsJTMlcDEiIMKgIFsoc2V0X2F0dHIgInR5cGUiICJ2ZXh0IinCoCDCoCAoc2V0X2F0 dHIgIm1vZGUiICI8TU9ERT4iKQpXaHkgZG8geW91IGFkZCB0aGVzZSAhVEFSR0VSVF9YVEhFQURW RUNSVE9SID8KwqAKwqAKanV6aGUuemhvbmdAcml2YWkuYWkKwqAKIApGcm9tOiBKdW4gU2hhIChK b3NodWEpCkRhdGU6IDIwMjQtMDEtMTEgMTY6NDYKVG86IGdjYy1wYXRjaGVzCkNDOiBqaW0ud2ls c29uLmdjYzsgcGFsbWVyOyBhbmRyZXc7IHBoaWxpcHAudG9tc2ljaDsgamVmZnJleWFsYXc7IGNo cmlzdG9waC5tdWVsbG5lcjsganV6aGUuemhvbmc7IEp1biBTaGEgKEpvc2h1YSk7IEppbiBNYTsg WGlhbm1pYW8gUXUKU3ViamVjdDogW1BBVENIIHY1XSBSSVNDLVY6IEFkZCBzdXBwb3J0IGZvciB4 dGhlYWR2ZWN0b3Itc3BlY2lmaWMgaW50cmluc2ljcy4KwqAKVGhpcyBwYXRjaCBvbmx5IGludm9s dmVzIHRoZSBnZW5lcmF0aW9uIG9mIHh0aGVhZHZlY3RvcgpzcGVjaWFsIGxvYWQvc3RvcmUgaW5z dHJ1Y3Rpb25zIGFuZCB2ZXh0IGluc3RydWN0aW9ucy4KIApnY2MvQ2hhbmdlTG9nOgogCiAqIGNv bmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtYmFzZXMuY2MKIChjbGFzcyB0aF9sb2Fk c3RvcmVfd2lkdGgpOiBEZWZpbmUgbmV3IGJ1aWx0aW4gYmFzZXMuCiAoY2xhc3MgdGhfZXh0cmFj dCk6IERlZmluZSBuZXcgYnVpbHRpbiBiYXNlcy4KIChCQVNFKTogRGVmaW5lIG5ldyBidWlsdGlu IGJhc2VzLgogKiBjb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWJhc2VzLmg6CiBE ZWZpbmUgbmV3IGJ1aWx0aW4gY2xhc3MuCiAqIGNvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVp bHRpbnMtc2hhcGVzLmNjCiAoc3RydWN0IHRoX2xvYWRzdG9yZV93aWR0aF9kZWYpOiBEZWZpbmUg bmV3IGJ1aWx0aW4gc2hhcGVzLgogKHN0cnVjdCB0aF9pbmRleGVkX2xvYWRzdG9yZV93aWR0aF9k ZWYpOgogRGVmaW5lIG5ldyBidWlsdGluIHNoYXBlcy4KIChzdHJ1Y3QgdGhfZXh0cmFjdF9kZWYp OiBEZWZpbmUgbmV3IGJ1aWx0aW4gc2hhcGVzLgogKFNIQVBFKTogRGVmaW5lIG5ldyBidWlsdGlu IHNoYXBlcy4KICogY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1zaGFwZXMuaDoK IERlZmluZSBuZXcgYnVpbHRpbiBzaGFwZXMuCiAqIGNvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3It YnVpbHRpbnMuY2MgKERFRl9SVlZfRlVOQ1RJT04pOgogKiBjb25maWcvcmlzY3YvcmlzY3YtdmVj dG9yLWJ1aWx0aW5zLmggKGVudW0gcmVxdWlyZWRfZXh0KToKIChzdHJ1Y3QgZnVuY3Rpb25fZ3Jv dXBfaW5mbyk6CiAqIGNvbmZpZy9yaXNjdi90LXJpc2N2OiBBZGQgdGhlYWQtdmVjdG9yLWJ1aWx0 aW5zLWZ1bmN0aW9ucy5kZWYKICogY29uZmlnL3Jpc2N2L3RoZWFkLXZlY3Rvci5tZAogKEBwcmVk X21vdl93aWR0aDx2bG1lbV9vcF9hdHRyPjxtb2RlPik6IEFkZCBuZXcgcGF0dGVybnMuCiAoKnBy ZWRfbW92X3dpZHRoPHZsbWVtX29wX2F0dHI+PG1vZGU+KTogTGlrZXdpc2UuCiAoQHByZWRfc3Rv cmVfd2lkdGg8dmxtZW1fb3BfYXR0cj48bW9kZT4pOiBMaWtld2lzZS4KIChAcHJlZF9zdHJpZGVk X2xvYWRfd2lkdGg8dmxtZW1fb3BfYXR0cj48bW9kZT4pOiBMaWtld2lzZS4KIChAcHJlZF9zdHJp ZGVkX3N0b3JlX3dpZHRoPHZsbWVtX29wX2F0dHI+PG1vZGU+KTogTGlrZXdpc2UuCiAoQHByZWRf aW5kZXhlZF9sb2FkX3dpZHRoPHZsbWVtX29wX2F0dHI+PG1vZGU+KTogTGlrZXdpc2UuCiAoQHBy ZWRfaW5kZXhlZF88dmxtZW1fb3JkZXJfYXR0cj5zdG9yZV93aWR0aDx2bG1lbV9vcF9hdHRyPjxt b2RlPik6CiAoQHByZWRfdGhfZXh0cmFjdDxtb2RlPik6IExpa2V3aXNlLgogKCpwcmVkX3RoX2V4 dHJhY3Q8bW9kZT4pOiBMaWtld2lzZS4KICogY29uZmlnL3Jpc2N2L3RoZWFkLXZlY3Rvci1idWls dGlucy1mdW5jdGlvbnMuZGVmOiBOZXcgZmlsZS4KIApnY2MvdGVzdHN1aXRlL0NoYW5nZUxvZzoK IAogKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3IvdmxiLXZzYi5jOiBOZXcgdGVz dC4KICogZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3ZsYnUtdnNiLmM6IE5ldyB0 ZXN0LgogKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3IvdmxoLXZzaC5jOiBOZXcg dGVzdC4KICogZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3ZsaHUtdnNoLmM6IE5l dyB0ZXN0LgogKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3Ivdmx3LXZzdy5jOiBO ZXcgdGVzdC4KICogZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3Zsd3UtdnN3LmM6 IE5ldyB0ZXN0LgogCkNvLWF1dGhvcmVkLWJ5OiBKaW4gTWEgPGppbm1hQGxpbnV4LmFsaWJhYmEu Y29tPgpDby1hdXRob3JlZC1ieTogWGlhbm1pYW8gUXUgPGNvb3Blci5xdUBsaW51eC5hbGliYWJh LmNvbT4KQ28tYXV0aG9yZWQtYnk6IENocmlzdG9waCBNw7xsbG5lciA8Y2hyaXN0b3BoLm11ZWxs bmVyQHZydWxsLmV1PgotLS0KIC4uLi9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtYmFzZXMu Y2PCoCDCoCDCoCB8IDEzOSArKysrKysrKysrCiAuLi4vcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0 aW5zLWJhc2VzLmggwqAgwqAgwqAgfMKgIDMxICsrKwogLi4uL3Jpc2N2L3Jpc2N2LXZlY3Rvci1i dWlsdGlucy1zaGFwZXMuY2MgwqAgwqAgfCAxNjAgKysrKysrKysrKysKIC4uLi9yaXNjdi9yaXNj di12ZWN0b3ItYnVpbHRpbnMtc2hhcGVzLmjCoCDCoCDCoCB8IMKgIDMgKwogZ2NjL2NvbmZpZy9y aXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMuY2MgwqAgwqAgfMKgIDcwICsrKysrCiBnY2MvY29u ZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5owqAgwqAgwqAgfCDCoCAzICsKIGdjYy9j b25maWcvcmlzY3YvdC1yaXNjdsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHwgwqAg MSArCiAuLi4vcmlzY3YvdGhlYWQtdmVjdG9yLWJ1aWx0aW5zLWZ1bmN0aW9ucy5kZWYgfMKgIDM5 ICsrKwogZ2NjL2NvbmZpZy9yaXNjdi90aGVhZC12ZWN0b3IubWTCoCDCoCDCoCDCoCDCoCDCoCDC oCB8IDI1MyArKysrKysrKysrKysrKysrKysKIC4uLi9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3Zs Yi12c2IuY8KgIMKgIMKgIMKgIMKgIHzCoCA2OCArKysrKwogLi4uL3Jpc2N2L3J2di94dGhlYWR2 ZWN0b3IvdmxidS12c2IuYyDCoCDCoCDCoCDCoCB8wqAgNjggKysrKysKIC4uLi9yaXNjdi9ydnYv eHRoZWFkdmVjdG9yL3ZsaC12c2guY8KgIMKgIMKgIMKgIMKgIHzCoCA2OCArKysrKwogLi4uL3Jp c2N2L3J2di94dGhlYWR2ZWN0b3IvdmxodS12c2guYyDCoCDCoCDCoCDCoCB8wqAgNjggKysrKysK IC4uLi9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3Zsdy12c3cuY8KgIMKgIMKgIMKgIMKgIHzCoCA2 OCArKysrKwogLi4uL3Jpc2N2L3J2di94dGhlYWR2ZWN0b3Ivdmx3dS12c3cuYyDCoCDCoCDCoCDC oCB8wqAgNjggKysrKysKIDE1IGZpbGVzIGNoYW5nZWQsIDExMDcgaW5zZXJ0aW9ucygrKQogY3Jl YXRlIG1vZGUgMTAwNjQ0IGdjYy9jb25maWcvcmlzY3YvdGhlYWQtdmVjdG9yLWJ1aWx0aW5zLWZ1 bmN0aW9ucy5kZWYKIGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv cmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bGItdnNiLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bGJ1LXZzYi5jCiBj cmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhl YWR2ZWN0b3IvdmxoLXZzaC5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3IvdmxodS12c2guYwogY3JlYXRlIG1vZGUgMTAw NjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3Zsdy12 c3cuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9y dnYveHRoZWFkdmVjdG9yL3Zsd3UtdnN3LmMKIApkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNj di9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtYmFzZXMuY2MgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2 LXZlY3Rvci1idWlsdGlucy1iYXNlcy5jYwppbmRleCA0NmYxYTFkYTMzZS4uM2ViYTc5NDM3NTcg MTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWJhc2Vz LmNjCisrKyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWJhc2VzLmNj CkBAIC0yMTI1LDYgKzIxMjUsODMgQEAgcHVibGljOgogwqAgfQogfTsKIAorLyogSW1wbGVtZW50 cworICogdGgudmwoYi9oL3cpW3VdLnYvdGgudnMoYi9oL3cpW3VdLnYvdGgudmxzKGIvaC93KVt1 XS52L3RoLnZzcyhiL2gvdylbdV0udi8KKyAqIHRoLnZseChiL2gvdylbdV0udi90aC52c1t1XXgo Yi9oL3cpLnYKKyAqIGNvZGVnZW4uwqAgKi8KK3RlbXBsYXRlPGJvb2wgU1RPUkVfUCwgbHN0X3R5 cGUgTFNUX1RZUEUsIGludCBVTlNQRUM+CitjbGFzcyB0aF9sb2Fkc3RvcmVfd2lkdGggOiBwdWJs aWMgZnVuY3Rpb25fYmFzZQoreworcHVibGljOgorwqAgYm9vbCBhcHBseV90YWlsX3BvbGljeV9w ICgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICFTVE9SRV9QOyB9CivCoCBib29sIGFwcGx5X21h c2tfcG9saWN5X3AgKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIVNUT1JFX1A7IH0KKworwqAg dW5zaWduZWQgaW50IGNhbGxfcHJvcGVydGllcyAoY29uc3QgZnVuY3Rpb25faW5zdGFuY2UgJikg Y29uc3Qgb3ZlcnJpZGUKK8KgIHsKK8KgIMKgIGlmIChTVE9SRV9QKQorwqAgwqAgwqAgcmV0dXJu IENQX1dSSVRFX01FTU9SWTsKK8KgIMKgIGVsc2UKK8KgIMKgIMKgIHJldHVybiBDUF9SRUFEX01F TU9SWTsKK8KgIH0KKworwqAgYm9vbCBjYW5fYmVfb3ZlcmxvYWRlZF9wIChlbnVtIHByZWRpY2F0 aW9uX3R5cGVfaW5kZXggcHJlZCkgY29uc3Qgb3ZlcnJpZGUKK8KgIHsKK8KgIMKgIGlmIChTVE9S RV9QIHx8IExTVF9UWVBFID09IExTVF9JTkRFWEVEKQorwqAgwqAgwqAgcmV0dXJuIHRydWU7CivC oCDCoCByZXR1cm4gcHJlZCAhPSBQUkVEX1RZUEVfbm9uZTsKK8KgIH0KKworwqAgcnR4IGV4cGFu ZCAoZnVuY3Rpb25fZXhwYW5kZXIgJmUpIGNvbnN0IG92ZXJyaWRlCivCoCB7CivCoCDCoCBnY2Nf YXNzZXJ0IChUQVJHRVRfWFRIRUFEVkVDVE9SKTsKK8KgIMKgIGlmIChMU1RfVFlQRSA9PSBMU1Rf SU5ERVhFRCkKK8KgIMKgIMKgIHsKKyBpZiAoU1RPUkVfUCkKKyDCoCByZXR1cm4gZS51c2VfZXhh Y3RfaW5zbiAoCisgwqAgwqAgY29kZV9mb3JfcHJlZF9pbmRleGVkX3N0b3JlX3dpZHRoIChVTlNQ RUMsIFVOU1BFQywKK8KgIMKgIMKgIMKgIMKgIMKgIGUudmVjdG9yX21vZGUgKCkpKTsKKyBlbHNl CisgwqAgcmV0dXJuIGUudXNlX2V4YWN0X2luc24gKAorIMKgIMKgIGNvZGVfZm9yX3ByZWRfaW5k ZXhlZF9sb2FkX3dpZHRoIChVTlNQRUMsIGUudmVjdG9yX21vZGUgKCkpKTsKK8KgIMKgIMKgIH0K K8KgIMKgIGVsc2UgaWYgKExTVF9UWVBFID09IExTVF9TVFJJREVEKQorwqAgwqAgwqAgeworIGlm IChTVE9SRV9QKQorIMKgIHJldHVybiBlLnVzZV9jb250aWd1b3VzX3N0b3JlX2luc24gKAorIMKg IMKgIGNvZGVfZm9yX3ByZWRfc3RyaWRlZF9zdG9yZV93aWR0aCAoVU5TUEVDLCBlLnZlY3Rvcl9t b2RlICgpKSk7CisgZWxzZQorIMKgIHJldHVybiBlLnVzZV9jb250aWd1b3VzX2xvYWRfaW5zbiAo CisgwqAgwqAgY29kZV9mb3JfcHJlZF9zdHJpZGVkX2xvYWRfd2lkdGggKFVOU1BFQywgZS52ZWN0 b3JfbW9kZSAoKSkpOworwqAgwqAgwqAgfQorwqAgwqAgZWxzZQorwqAgwqAgwqAgeworIGlmIChT VE9SRV9QKQorIMKgIHJldHVybiBlLnVzZV9jb250aWd1b3VzX3N0b3JlX2luc24gKAorIMKgIMKg IGNvZGVfZm9yX3ByZWRfc3RvcmVfd2lkdGggKFVOU1BFQywgZS52ZWN0b3JfbW9kZSAoKSkpOwor IGVsc2UKKyDCoCByZXR1cm4gZS51c2VfY29udGlndW91c19sb2FkX2luc24gKAorIMKgIMKgIGNv ZGVfZm9yX3ByZWRfbW92X3dpZHRoIChVTlNQRUMsIGUudmVjdG9yX21vZGUgKCkpKTsKK8KgIMKg IMKgIH0KK8KgIH0KK307CisKKy8qIEltcGxlbWVudHMgdmV4dC54LnYuwqAgKi8KK2NsYXNzIHRo X2V4dHJhY3QgOiBwdWJsaWMgZnVuY3Rpb25fYmFzZQoreworcHVibGljOgorwqAgYm9vbCBhcHBs eV92bF9wICgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CivCoCBib29sIGFwcGx5 X3RhaWxfcG9saWN5X3AgKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KK8KgIGJv b2wgYXBwbHlfbWFza19wb2xpY3lfcCAoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsg fQorwqAgYm9vbCB1c2VfbWFza19wcmVkaWNhdGlvbl9wICgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0 dXJuIGZhbHNlOyB9CivCoCBib29sIGhhc19tZXJnZV9vcGVyYW5kX3AgKCkgY29uc3Qgb3ZlcnJp ZGUgeyByZXR1cm4gZmFsc2U7IH0KKworwqAgcnR4IGV4cGFuZCAoZnVuY3Rpb25fZXhwYW5kZXIg JmUpIGNvbnN0IG92ZXJyaWRlCivCoCB7CivCoCDCoCBnY2NfYXNzZXJ0IChUQVJHRVRfWFRIRUFE VkVDVE9SKTsKK8KgIMKgIHJldHVybiBlLnVzZV9leGFjdF9pbnNuIChjb2RlX2Zvcl9wcmVkX3Ro X2V4dHJhY3QgKGUudmVjdG9yX21vZGUgKCkpKTsKK8KgIH0KK307CisKIC8qIEJlbG93IGltcGxl bWVudHMgYXJlIHZlY3RvciBjcnlwdG8gKi8KIC8qIEltcGxlbWVudHMgdmFuZG4uW3Z2LHZ4XSAq LwogY2xhc3MgdmFuZG4gOiBwdWJsaWMgZnVuY3Rpb25fYmFzZQpAQCAtMjU4Nyw2ICsyNjY0LDM3 IEBAIHN0YXRpYyBDT05TVEVYUFIgY29uc3Qgc2VnX2luZGV4ZWRfbG9hZDxVTlNQRUNfT1JERVJF RD4gdmxveHNlZ19vYmo7CiBzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHNlZ19pbmRleGVkX3N0b3Jl PFVOU1BFQ19VTk9SREVSRUQ+IHZzdXhzZWdfb2JqOwogc3RhdGljIENPTlNURVhQUiBjb25zdCBz ZWdfaW5kZXhlZF9zdG9yZTxVTlNQRUNfT1JERVJFRD4gdnNveHNlZ19vYmo7CiBzdGF0aWMgQ09O U1RFWFBSIGNvbnN0IHZsc2VnZmYgdmxzZWdmZl9vYmo7CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0 IHRoX2xvYWRzdG9yZV93aWR0aDxmYWxzZSwgTFNUX1VOSVRfU1RSSURFLCBVTlNQRUNfVEhfVkxC PiB2bGJfb2JqOworc3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8ZmFs c2UsIExTVF9VTklUX1NUUklERSwgVU5TUEVDX1RIX1ZMQlU+IHZsYnVfb2JqOworc3RhdGljIENP TlNURVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8ZmFsc2UsIExTVF9VTklUX1NUUklERSwg VU5TUEVDX1RIX1ZMSD4gdmxoX29iajsKK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0 b3JlX3dpZHRoPGZhbHNlLCBMU1RfVU5JVF9TVFJJREUsIFVOU1BFQ19USF9WTEhVPiB2bGh1X29i ajsKK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1Rf VU5JVF9TVFJJREUsIFVOU1BFQ19USF9WTFc+IHZsd19vYmo7CitzdGF0aWMgQ09OU1RFWFBSIGNv bnN0IHRoX2xvYWRzdG9yZV93aWR0aDxmYWxzZSwgTFNUX1VOSVRfU1RSSURFLCBVTlNQRUNfVEhf VkxXVT4gdmx3dV9vYmo7CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0 aDx0cnVlLCBMU1RfVU5JVF9TVFJJREUsIFVOU1BFQ19USF9WTEI+IHZzYl9vYmo7CitzdGF0aWMg Q09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDx0cnVlLCBMU1RfVU5JVF9TVFJJREUs IFVOU1BFQ19USF9WTEg+IHZzaF9vYmo7CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRz dG9yZV93aWR0aDx0cnVlLCBMU1RfVU5JVF9TVFJJREUsIFVOU1BFQ19USF9WTFc+IHZzd19vYmo7 CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDxmYWxzZSwgTFNUX1NU UklERUQsIFVOU1BFQ19USF9WTFNCPiB2bHNiX29iajsKK3N0YXRpYyBDT05TVEVYUFIgY29uc3Qg dGhfbG9hZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1RfU1RSSURFRCwgVU5TUEVDX1RIX1ZMU0JVPiB2 bHNidV9vYmo7CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDxmYWxz ZSwgTFNUX1NUUklERUQsIFVOU1BFQ19USF9WTFNIPiB2bHNoX29iajsKK3N0YXRpYyBDT05TVEVY UFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1RfU1RSSURFRCwgVU5TUEVDX1RI X1ZMU0hVPiB2bHNodV9vYmo7CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93 aWR0aDxmYWxzZSwgTFNUX1NUUklERUQsIFVOU1BFQ19USF9WTFNXPiB2bHN3X29iajsKK3N0YXRp YyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1RfU1RSSURFRCwg VU5TUEVDX1RIX1ZMU1dVPiB2bHN3dV9vYmo7CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xv YWRzdG9yZV93aWR0aDx0cnVlLCBMU1RfU1RSSURFRCwgVU5TUEVDX1RIX1ZMU0I+IHZzc2Jfb2Jq Oworc3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8dHJ1ZSwgTFNUX1NU UklERUQsIFVOU1BFQ19USF9WTFNIPiB2c3NoX29iajsKK3N0YXRpYyBDT05TVEVYUFIgY29uc3Qg dGhfbG9hZHN0b3JlX3dpZHRoPHRydWUsIExTVF9TVFJJREVELCBVTlNQRUNfVEhfVkxTVz4gdnNz d19vYmo7CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDxmYWxzZSwg TFNUX0lOREVYRUQsIFVOU1BFQ19USF9WTFhCPiB2bHhiX29iajsKK3N0YXRpYyBDT05TVEVYUFIg Y29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1RfSU5ERVhFRCwgVU5TUEVDX1RIX1ZM WEJVPiB2bHhidV9vYmo7CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0 aDxmYWxzZSwgTFNUX0lOREVYRUQsIFVOU1BFQ19USF9WTFhIPiB2bHhoX29iajsKK3N0YXRpYyBD T05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1RfSU5ERVhFRCwgVU5T UEVDX1RIX1ZMWEhVPiB2bHhodV9vYmo7CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRz dG9yZV93aWR0aDxmYWxzZSwgTFNUX0lOREVYRUQsIFVOU1BFQ19USF9WTFhXPiB2bHh3X29iajsK K3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1RfSU5E RVhFRCwgVU5TUEVDX1RIX1ZMWFdVPiB2bHh3dV9vYmo7CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0 IHRoX2xvYWRzdG9yZV93aWR0aDx0cnVlLCBMU1RfSU5ERVhFRCwgVU5TUEVDX1RIX1ZMWEI+IHZz eGJfb2JqOworc3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8dHJ1ZSwg TFNUX0lOREVYRUQsIFVOU1BFQ19USF9WTFhIPiB2c3hoX29iajsKK3N0YXRpYyBDT05TVEVYUFIg Y29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPHRydWUsIExTVF9JTkRFWEVELCBVTlNQRUNfVEhfVkxY Vz4gdnN4d19vYmo7CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDx0 cnVlLCBMU1RfSU5ERVhFRCwgVU5TUEVDX1RIX1ZTVVhCPiB2c3V4Yl9vYmo7CitzdGF0aWMgQ09O U1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDx0cnVlLCBMU1RfSU5ERVhFRCwgVU5TUEVD X1RIX1ZTVVhIPiB2c3V4aF9vYmo7CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9y ZV93aWR0aDx0cnVlLCBMU1RfSU5ERVhFRCwgVU5TUEVDX1RIX1ZTVVhXPiB2c3V4d19vYmo7Citz dGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2V4dHJhY3QgdmV4dF94X3Zfb2JqOwogCiAvKiBDcnlw dG8gVmVjdG9yICovCiBzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHZhbmRuIHZhbmRuX29iajsKQEAg LTI4NzgsNiArMjk4NiwzNyBAQCBCQVNFICh2bG94c2VnKQogQkFTRSAodnN1eHNlZykKIEJBU0Ug KHZzb3hzZWcpCiBCQVNFICh2bHNlZ2ZmKQorQkFTRSAodmxiKQorQkFTRSAodmxoKQorQkFTRSAo dmx3KQorQkFTRSAodmxidSkKK0JBU0UgKHZsaHUpCitCQVNFICh2bHd1KQorQkFTRSAodnNiKQor QkFTRSAodnNoKQorQkFTRSAodnN3KQorQkFTRSAodmxzYikKK0JBU0UgKHZsc2gpCitCQVNFICh2 bHN3KQorQkFTRSAodmxzYnUpCitCQVNFICh2bHNodSkKK0JBU0UgKHZsc3d1KQorQkFTRSAodnNz YikKK0JBU0UgKHZzc2gpCitCQVNFICh2c3N3KQorQkFTRSAodmx4YikKK0JBU0UgKHZseGgpCitC QVNFICh2bHh3KQorQkFTRSAodmx4YnUpCitCQVNFICh2bHhodSkKK0JBU0UgKHZseHd1KQorQkFT RSAodnN4YikKK0JBU0UgKHZzeGgpCitCQVNFICh2c3h3KQorQkFTRSAodnN1eGIpCitCQVNFICh2 c3V4aCkKK0JBU0UgKHZzdXh3KQorQkFTRSAodmV4dF94X3YpCiAvKiBDcnlwdG8gdmVjdG9yICov CiBCQVNFICh2YW5kbikKIEJBU0UgKHZicmV2KQpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNj di9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtYmFzZXMuaCBiL2djYy9jb25maWcvcmlzY3YvcmlzY3Yt dmVjdG9yLWJ1aWx0aW5zLWJhc2VzLmgKaW5kZXggMTEyMmUzODAxYTcuLjU2NWEwMzExZDJiIDEw MDY0NAotLS0gYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1iYXNlcy5o CisrKyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWJhc2VzLmgKQEAg LTI5OSw2ICsyOTksMzcgQEAgZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZsb3hz ZWc7CiBleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdnN1eHNlZzsKIGV4dGVybiBj b25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2c294c2VnOwogZXh0ZXJuIGNvbnN0IGZ1bmN0aW9u X2Jhc2UgKmNvbnN0IHZsc2VnZmY7CitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3Qg dmxiOworZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZsaDsKK2V4dGVybiBjb25z dCBmdW5jdGlvbl9iYXNlICpjb25zdCB2bHc7CitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAq Y29uc3QgdmxidTsKK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2bGh1OworZXh0 ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZsd3U7CitleHRlcm4gY29uc3QgZnVuY3Rp b25fYmFzZSAqY29uc3QgdnNiOworZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZz aDsKK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2c3c7CitleHRlcm4gY29uc3Qg ZnVuY3Rpb25fYmFzZSAqY29uc3QgdmxzYjsKK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpj b25zdCB2bHNoOworZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZsc3c7CitleHRl cm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdmxzYnU7CitleHRlcm4gY29uc3QgZnVuY3Rp b25fYmFzZSAqY29uc3QgdmxzaHU7CitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3Qg dmxzd3U7CitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdnNzYjsKK2V4dGVybiBj b25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2c3NoOworZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jh c2UgKmNvbnN0IHZzc3c7CitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3Qgdmx4YjsK K2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2bHhoOworZXh0ZXJuIGNvbnN0IGZ1 bmN0aW9uX2Jhc2UgKmNvbnN0IHZseHc7CitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29u c3Qgdmx4YnU7CitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3Qgdmx4aHU7CitleHRl cm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3Qgdmx4d3U7CitleHRlcm4gY29uc3QgZnVuY3Rp b25fYmFzZSAqY29uc3QgdnN4YjsKK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2 c3hoOworZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZzeHc7CitleHRlcm4gY29u c3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdnN1eGI7CitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFz ZSAqY29uc3QgdnN1eGg7CitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdnN1eHc7 CitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdmV4dF94X3Y7CiAvKiBCZWxvdyBm dW5jdGlvbl9iYXNlIGFyZSBWZWN0cm8gQ3J5cHRvKi8KIGV4dGVybiBjb25zdCBmdW5jdGlvbl9i YXNlICpjb25zdCB2YW5kbjsKIGV4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2YnJl djsKZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXNo YXBlcy5jYyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXNoYXBlcy5j YwppbmRleCAxZTRmNGQ1M2RlNi4uOGU5MGIxN2E5NGIgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcv cmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXNoYXBlcy5jYworKysgYi9nY2MvY29uZmlnL3Jp c2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1zaGFwZXMuY2MKQEAgLTIxMSw2ICsyMTEsMTQ2IEBA IHN0cnVjdCBpbmRleGVkX2xvYWRzdG9yZV9kZWYgOiBwdWJsaWMgZnVuY3Rpb25fc2hhcGUKIMKg IH0KIH07CiAKKy8qIEFkZCBvbmUgZnVuY3Rpb24gaW5zdGFuY2UgZm9yIEdST1VQLCB1c2luZyBv cGVyYW5kIHN1ZmZpeCBhdCBpbmRleCBPSSwKKyDCoCBtb2RlIHN1ZmZpeCBhdCBpbmRleCBQQUlS ICYmIGJpIGFuZCBwcmVkaWNhdGlvbiBzdWZmaXggYXQgaW5kZXggcHJlZF9pZHguwqAgKi8KK3N0 YXRpYyB2b2lkCitidWlsZF90aF9sb2Fkc3RvcmUgKGZ1bmN0aW9uX2J1aWxkZXIgJmIsIGNvbnN0 IGZ1bmN0aW9uX2dyb3VwX2luZm8gJmdyb3VwLAorwqAgwqAgwqAgdW5zaWduZWQgaW50IHByZWRf aWR4LCB1bnNpZ25lZCBpbnQgdmVjX3R5cGVfaWR4KQoreworwqAgYXV0b192ZWM8dHJlZSwgNT4g YXJndW1lbnRfdHlwZXM7CivCoCBmdW5jdGlvbl9pbnN0YW5jZSBmdW5jdGlvbl9pbnN0YW5jZSAo Z3JvdXAuYmFzZV9uYW1lLCAqZ3JvdXAuYmFzZSwKKyDCoCDCoCDCoCDCoCDCoCAqZ3JvdXAuc2hh cGUsCisgwqAgwqAgwqAgwqAgwqAgZ3JvdXAub3BzX2luZm9zLnR5cGVzW3ZlY190eXBlX2lkeF0s CisgwqAgwqAgwqAgwqAgwqAgZ3JvdXAucHJlZHNbcHJlZF9pZHhdLCAmZ3JvdXAub3BzX2luZm9z KTsKK8KgIHRyZWUgcmV0dXJuX3R5cGUgPSBncm91cC5vcHNfaW5mb3MucmV0LmdldF90cmVlX3R5 cGUgKAorwqAgwqAgZ3JvdXAub3BzX2luZm9zLnR5cGVzW3ZlY190eXBlX2lkeF0uaW5kZXgpOwor wqAgYi5hbGxvY2F0ZV9hcmd1bWVudF90eXBlcyAoZnVuY3Rpb25faW5zdGFuY2UsIGFyZ3VtZW50 X3R5cGVzKTsKK8KgIGIuYXBwbHlfcHJlZGljYXRpb24gKGZ1bmN0aW9uX2luc3RhbmNlLCByZXR1 cm5fdHlwZSwgYXJndW1lbnRfdHlwZXMpOworCivCoCBpZiAoVEFSR0VUX1hUSEVBRFZFQ1RPUiAm JiAhY2hlY2tfdHlwZSAocmV0dXJuX3R5cGUsIGFyZ3VtZW50X3R5cGVzKSkKK8KgIMKgIHJldHVy bjsKKworwqAgdHJlZSB0eXBlID0gYnVpbHRpbl90eXBlc1tncm91cC5vcHNfaW5mb3MudHlwZXNb dmVjX3R5cGVfaWR4XS5pbmRleF0udmVjdG9yOworwqAgaWYgKHN0cnN0ciAoZ3JvdXAuYmFzZV9u YW1lLCAibCIpCivCoCDCoCDCoCAmJiBzdHJzdHIgKGdyb3VwLmJhc2VfbmFtZSwgInUiKQorwqAg wqAgwqAgJiYgIVRZUEVfVU5TSUdORUQgKFRSRUVfVFlQRSAodHlwZSkpKQorwqAgwqAgcmV0dXJu OworCivCoCBpZiAoc3Ryc3RyIChncm91cC5iYXNlX25hbWUsICJsIikKK8KgIMKgIMKgICYmICFz dHJzdHIgKGdyb3VwLmJhc2VfbmFtZSwgInUiKQorwqAgwqAgwqAgJiYgVFlQRV9VTlNJR05FRCAo VFJFRV9UWVBFICh0eXBlKSkpCivCoCDCoCByZXR1cm47CisKK8KgIG1hY2hpbmVfbW9kZSBtb2Rl ID0gVFlQRV9NT0RFICh0eXBlKTsKK8KgIGludCBzZXcgPSBHRVRfTU9ERV9CSVRTSVpFIChHRVRf TU9ERV9JTk5FUiAobW9kZSkpOworwqAgaWYgKHN0cnN0ciAoZ3JvdXAuYmFzZV9uYW1lLCAiaCIp ICYmIHNldyA9PSA4KQorwqAgwqAgcmV0dXJuOworCivCoCBpZiAoc3Ryc3RyIChncm91cC5iYXNl X25hbWUsICJ3IikgJiYgKHNldyA9PSA4IHx8IHNldyA9PTE2KSkKK8KgIMKgIHJldHVybjsKKwor wqAgYi5hZGRfb3ZlcmxvYWRlZF9mdW5jdGlvbiAoZnVuY3Rpb25faW5zdGFuY2UsICpncm91cC5z aGFwZSk7CivCoCBiLmFkZF91bmlxdWVfZnVuY3Rpb24gKGZ1bmN0aW9uX2luc3RhbmNlLCAoKmdy b3VwLnNoYXBlKSwgcmV0dXJuX3R5cGUsCivCoCDCoCBhcmd1bWVudF90eXBlcyk7Cit9CisKKy8q IHRoX2xvYWRzdG9yZV93aWR0aF9kZWYgY2xhc3MuwqAgKi8KK3N0cnVjdCB0aF9sb2Fkc3RvcmVf d2lkdGhfZGVmIDogcHVibGljIGJ1aWxkX2Jhc2UKK3sKKyDCoCB2b2lkIGJ1aWxkIChmdW5jdGlv bl9idWlsZGVyICZiLAorIMKgIMKgIMKgIGNvbnN0IGZ1bmN0aW9uX2dyb3VwX2luZm8gJmdyb3Vw KSBjb25zdCBvdmVycmlkZQorwqAgeworwqAgwqAgZm9yICh1bnNpZ25lZCBpbnQgcHJlZF9pZHgg PSAwOyBncm91cC5wcmVkc1twcmVkX2lkeF0gIT0gTlVNX1BSRURfVFlQRVM7CisgwqAgwqAgwqAg KytwcmVkX2lkeCkKK8KgIMKgIMKgIHsKKyBmb3IgKHVuc2lnbmVkIGludCB2ZWNfdHlwZV9pZHgg PSAwOworwqAgwqAgwqAgZ3JvdXAub3BzX2luZm9zLnR5cGVzW3ZlY190eXBlX2lkeF0uaW5kZXgg IT0gTlVNX1ZFQ1RPUl9UWVBFUzsKK8KgIMKgIMKgICsrdmVjX3R5cGVfaWR4KQorIMKgIHsKKyDC oCDCoCBidWlsZF90aF9sb2Fkc3RvcmUgKGIsIGdyb3VwLCBwcmVkX2lkeCwgdmVjX3R5cGVfaWR4 KTsKKyDCoCB9CivCoCDCoCDCoCB9CivCoCB9CisKK8KgIGNoYXIgKmdldF9uYW1lIChmdW5jdGlv bl9idWlsZGVyICZiLCBjb25zdCBmdW5jdGlvbl9pbnN0YW5jZSAmaW5zdGFuY2UsCivCoCDCoCBi b29sIG92ZXJsb2FkZWRfcCkgY29uc3Qgb3ZlcnJpZGUKK8KgIHsKK8KgIMKgIC8qIFJldHVybiBu dWxscHRyIGlmIGl0IGNhbiBub3QgYmUgb3ZlcmxvYWRlZC7CoCAqLworwqAgwqAgaWYgKG92ZXJs b2FkZWRfcCAmJiAhaW5zdGFuY2UuYmFzZS0+Y2FuX2JlX292ZXJsb2FkZWRfcCAoaW5zdGFuY2Uu cHJlZCkpCivCoCDCoCDCoCByZXR1cm4gbnVsbHB0cjsKKworwqAgwqAgYi5hcHBlbmRfbmFtZSAo Il9fcmlzY3ZfdGhfIik7CivCoCDCoCBiLmFwcGVuZF9uYW1lIChpbnN0YW5jZS5iYXNlX25hbWUp OworCivCoCDCoCAvKiB2b3BfdiAtLT4gdm9wX3ZfPHR5cGU+LsKgICovCivCoCDCoCBpZiAoIW92 ZXJsb2FkZWRfcCkKK8KgIMKgIMKgIHsKKyAvKiB2b3AgLS0+IHZvcF92LsKgICovCisgYi5hcHBl bmRfbmFtZSAob3BlcmFuZF9zdWZmaXhlc1tpbnN0YW5jZS5vcF9pbmZvLT5vcF0pOworIC8qIHZv cF92IC0tPiB2b3Bfdl88dHlwZT4uwqAgKi8KKyBiLmFwcGVuZF9uYW1lICh0eXBlX3N1ZmZpeGVz W2luc3RhbmNlLnR5cGUuaW5kZXhdLnZlY3Rvcik7CivCoCDCoCDCoCB9CisKK8KgIMKgIC8qIEFj Y29yZGluZyB0byBydnYtaW50cmluc2ljLWRvYywgaXQgZG9lcyBub3QgYWRkICJfbSIgc3VmZml4 CisgwqAgwqAgwqAgZm9yIHZvcF9tIEMrKyBvdmVybG9hZGVkIEFQSS7CoCAqLworwqAgwqAgaWYg KG92ZXJsb2FkZWRfcCAmJiBpbnN0YW5jZS5wcmVkID09IFBSRURfVFlQRV9tKQorwqAgwqAgwqAg cmV0dXJuIGIuZmluaXNoX25hbWUgKCk7CivCoCDCoCBiLmFwcGVuZF9uYW1lIChwcmVkaWNhdGlv bl9zdWZmaXhlc1tpbnN0YW5jZS5wcmVkXSk7CivCoCDCoCByZXR1cm4gYi5maW5pc2hfbmFtZSAo KTsKK8KgIH0KK307CisKKworLyogdGhfaW5kZXhlZF9sb2Fkc3RvcmVfd2lkdGhfZGVmIGNsYXNz LsKgICovCitzdHJ1Y3QgdGhfaW5kZXhlZF9sb2Fkc3RvcmVfd2lkdGhfZGVmIDogcHVibGljIGZ1 bmN0aW9uX3NoYXBlCit7CivCoCB2b2lkIGJ1aWxkIChmdW5jdGlvbl9idWlsZGVyICZiLAorIMKg IMKgIMKgIGNvbnN0IGZ1bmN0aW9uX2dyb3VwX2luZm8gJmdyb3VwKSBjb25zdCBvdmVycmlkZQor wqAgeworwqAgwqAgZm9yICh1bnNpZ25lZCBpbnQgcHJlZF9pZHggPSAwOyBncm91cC5wcmVkc1tw cmVkX2lkeF0gIT0gTlVNX1BSRURfVFlQRVM7CivCoCArK3ByZWRfaWR4KQorwqAgwqAgwqAgewor IGZvciAodW5zaWduZWQgaW50IHZlY190eXBlX2lkeCA9IDA7CivCoCDCoCDCoCBncm91cC5vcHNf aW5mb3MudHlwZXNbdmVjX3R5cGVfaWR4XS5pbmRleCAhPSBOVU1fVkVDVE9SX1RZUEVTOworwqAg wqAgwqAgKyt2ZWNfdHlwZV9pZHgpCisgwqAgeworwqAgwqAgdHJlZSBpbmRleF90eXBlID0gZ3Jv dXAub3BzX2luZm9zLmFyZ3NbMV0uZ2V0X3RyZWVfdHlwZSAoCisgwqAgwqAgwqAgZ3JvdXAub3Bz X2luZm9zLnR5cGVzW3ZlY190eXBlX2lkeF0uaW5kZXgpOworwqAgwqAgaWYgKCFpbmRleF90eXBl KQorIMKgIMKgIMKgIGNvbnRpbnVlOworwqAgwqAgYnVpbGRfdGhfbG9hZHN0b3JlIChiLCBncm91 cCwgcHJlZF9pZHgsIHZlY190eXBlX2lkeCk7CisgwqAgfQorwqAgwqAgwqAgfQorwqAgfQorCivC oCBjaGFyICpnZXRfbmFtZSAoZnVuY3Rpb25fYnVpbGRlciAmYiwgY29uc3QgZnVuY3Rpb25faW5z dGFuY2UgJmluc3RhbmNlLAorwqAgwqAgYm9vbCBvdmVybG9hZGVkX3ApIGNvbnN0IG92ZXJyaWRl CivCoCB7CisKK8KgIMKgIC8qIFJldHVybiBudWxscHRyIGlmIGl0IGNhbiBub3QgYmUgb3Zlcmxv YWRlZC7CoCAqLworwqAgwqAgaWYgKG92ZXJsb2FkZWRfcCAmJiAhaW5zdGFuY2UuYmFzZS0+Y2Fu X2JlX292ZXJsb2FkZWRfcCAoaW5zdGFuY2UucHJlZCkpCivCoCDCoCDCoCByZXR1cm4gbnVsbHB0 cjsKKworwqAgwqAgYi5hcHBlbmRfbmFtZSAoIl9fcmlzY3ZfdGhfIik7CivCoCDCoCBiLmFwcGVu ZF9uYW1lIChpbnN0YW5jZS5iYXNlX25hbWUpOworwqAgwqAgLyogdm9wX3YgLS0+IHZvcF92Xzx0 eXBlPi7CoCAqLworwqAgwqAgaWYgKCFvdmVybG9hZGVkX3ApCivCoCDCoCDCoCB7CisgLyogdm9w IC0tPiB2b3Bfdi7CoCAqLworIGIuYXBwZW5kX25hbWUgKG9wZXJhbmRfc3VmZml4ZXNbaW5zdGFu Y2Uub3BfaW5mby0+b3BdKTsKKyAvKiB2b3BfdiAtLT4gdm9wX3ZfPHR5cGU+LsKgICovCisgYi5h cHBlbmRfbmFtZSAodHlwZV9zdWZmaXhlc1tpbnN0YW5jZS50eXBlLmluZGV4XS52ZWN0b3IpOwor wqAgwqAgwqAgfQorCivCoCDCoCAvKiBBY2NvcmRpbmcgdG8gcnZ2LWludHJpbnNpYy1kb2MsIGl0 IGRvZXMgbm90IGFkZCAiX20iIHN1ZmZpeAorIMKgIMKgIMKgIGZvciB2b3BfbSBDKysgb3Zlcmxv YWRlZCBBUEkuwqAgKi8KK8KgIMKgIGlmIChvdmVybG9hZGVkX3AgJiYgaW5zdGFuY2UucHJlZCA9 PSBQUkVEX1RZUEVfbSkKK8KgIMKgIMKgIHJldHVybiBiLmZpbmlzaF9uYW1lICgpOworwqAgwqAg Yi5hcHBlbmRfbmFtZSAocHJlZGljYXRpb25fc3VmZml4ZXNbaW5zdGFuY2UucHJlZF0pOworwqAg wqAgcmV0dXJuIGIuZmluaXNoX25hbWUgKCk7CivCoCB9Cit9OworCiAvKiBhbHVfZGVmIGNsYXNz LsKgICovCiBzdHJ1Y3QgYWx1X2RlZiA6IHB1YmxpYyBidWlsZF9iYXNlCiB7CkBAIC02MzIsNiAr NzcyLDIzIEBAIHN0cnVjdCByZWR1Y19hbHVfZGVmIDogcHVibGljIGJ1aWxkX2Jhc2UKIMKgIH0K IH07CiAKKy8qIHRoX2V4dHJhY3RfZGVmIGNsYXNzLsKgICovCitzdHJ1Y3QgdGhfZXh0cmFjdF9k ZWYgOiBwdWJsaWMgYnVpbGRfYmFzZQoreworwqAgY2hhciAqZ2V0X25hbWUgKGZ1bmN0aW9uX2J1 aWxkZXIgJmIsIGNvbnN0IGZ1bmN0aW9uX2luc3RhbmNlICZpbnN0YW5jZSwKK8KgIMKgIMKgIGJv b2wgb3ZlcmxvYWRlZF9wKSBjb25zdCBvdmVycmlkZQorwqAgeworwqAgwqAgYi5hcHBlbmRfbmFt ZSAoIl9fcmlzY3ZfdGhfIik7CivCoCDCoCBiLmFwcGVuZF9uYW1lIChpbnN0YW5jZS5iYXNlX25h bWUpOworCivCoCDCoCBpZiAob3ZlcmxvYWRlZF9wKQorwqAgwqAgwqAgcmV0dXJuIGIuZmluaXNo X25hbWUgKCk7CivCoCDCoCBiLmFwcGVuZF9uYW1lICh0eXBlX3N1ZmZpeGVzW2luc3RhbmNlLnR5 cGUuaW5kZXhdLnZlY3Rvcik7CivCoCDCoCBiLmFwcGVuZF9uYW1lICh0eXBlX3N1ZmZpeGVzW2lu c3RhbmNlLnR5cGUuaW5kZXhdLnNjYWxhcik7CivCoCDCoCByZXR1cm4gYi5maW5pc2hfbmFtZSAo KTsKK8KgIH0KK307CisKIC8qIHNjYWxhcl9tb3ZlX2RlZiBjbGFzcy7CoCAqLwogc3RydWN0IHNj YWxhcl9tb3ZlX2RlZiA6IHB1YmxpYyBidWlsZF9iYXNlCiB7CkBAIC0xMDk0LDYgKzEyNTEsOCBA QCBTSEFQRSh2c2V0dmwsIHZzZXR2bCkKIFNIQVBFKHZzZXR2bCwgdnNldHZsbWF4KQogU0hBUEUo bG9hZHN0b3JlLCBsb2Fkc3RvcmUpCiBTSEFQRShpbmRleGVkX2xvYWRzdG9yZSwgaW5kZXhlZF9s b2Fkc3RvcmUpCitTSEFQRSh0aF9sb2Fkc3RvcmVfd2lkdGgsIHRoX2xvYWRzdG9yZV93aWR0aCkK K1NIQVBFKHRoX2luZGV4ZWRfbG9hZHN0b3JlX3dpZHRoLCB0aF9pbmRleGVkX2xvYWRzdG9yZV93 aWR0aCkKIFNIQVBFKGFsdSwgYWx1KQogU0hBUEUoYWx1X2ZybSwgYWx1X2ZybSkKIFNIQVBFKHdp ZGVuX2FsdSwgd2lkZW5fYWx1KQpAQCAtMTEwNiw2ICsxMjY1LDcgQEAgU0hBUEUobW92ZSwgbW92 ZSkKIFNIQVBFKG1hc2tfYWx1LCBtYXNrX2FsdSkKIFNIQVBFKHJlZHVjX2FsdSwgcmVkdWNfYWx1 KQogU0hBUEUocmVkdWNfYWx1X2ZybSwgcmVkdWNfYWx1X2ZybSkKK1NIQVBFKHRoX2V4dHJhY3Qs IHRoX2V4dHJhY3QpCiBTSEFQRShzY2FsYXJfbW92ZSwgc2NhbGFyX21vdmUpCiBTSEFQRSh2dW5k ZWZpbmVkLCB2dW5kZWZpbmVkKQogU0hBUEUobWlzYywgbWlzYykKZGlmZiAtLWdpdCBhL2djYy9j b25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXNoYXBlcy5oIGIvZ2NjL2NvbmZpZy9y aXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtc2hhcGVzLmgKaW5kZXggYWMyYTI4Y2UwMTcuLmE3 NjI0ZDBmYWJkIDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWls dGlucy1zaGFwZXMuaAorKysgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlu cy1zaGFwZXMuaApAQCAtMjgsNiArMjgsOCBAQCBleHRlcm4gY29uc3QgZnVuY3Rpb25fc2hhcGUg KmNvbnN0IHZzZXR2bDsKIGV4dGVybiBjb25zdCBmdW5jdGlvbl9zaGFwZSAqY29uc3QgdnNldHZs bWF4OwogZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpjb25zdCBsb2Fkc3RvcmU7CiBleHRl cm4gY29uc3QgZnVuY3Rpb25fc2hhcGUgKmNvbnN0IGluZGV4ZWRfbG9hZHN0b3JlOworZXh0ZXJu IGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpjb25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg7CitleHRlcm4g Y29uc3QgZnVuY3Rpb25fc2hhcGUgKmNvbnN0IHRoX2luZGV4ZWRfbG9hZHN0b3JlX3dpZHRoOwog ZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpjb25zdCBhbHU7CiBleHRlcm4gY29uc3QgZnVu Y3Rpb25fc2hhcGUgKmNvbnN0IGFsdV9mcm07CiBleHRlcm4gY29uc3QgZnVuY3Rpb25fc2hhcGUg KmNvbnN0IHdpZGVuX2FsdTsKQEAgLTQxLDYgKzQzLDcgQEAgZXh0ZXJuIGNvbnN0IGZ1bmN0aW9u X3NoYXBlICpjb25zdCBtYXNrX2FsdTsKIGV4dGVybiBjb25zdCBmdW5jdGlvbl9zaGFwZSAqY29u c3QgcmVkdWNfYWx1OwogZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpjb25zdCByZWR1Y19h bHVfZnJtOwogZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpjb25zdCBzY2FsYXJfbW92ZTsK K2V4dGVybiBjb25zdCBmdW5jdGlvbl9zaGFwZSAqY29uc3QgdGhfZXh0cmFjdDsKIGV4dGVybiBj b25zdCBmdW5jdGlvbl9zaGFwZSAqY29uc3QgdnVuZGVmaW5lZDsKIGV4dGVybiBjb25zdCBmdW5j dGlvbl9zaGFwZSAqY29uc3QgbWlzYzsKIGV4dGVybiBjb25zdCBmdW5jdGlvbl9zaGFwZSAqY29u c3QgdnNldDsKZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0 aW5zLmNjIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMuY2MKaW5kZXgg MjVlMGI2ZTU2ZGUuLjQ0YjlmZWMxODk4IDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL3Jpc2N2L3Jp c2N2LXZlY3Rvci1idWlsdGlucy5jYworKysgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rv ci1idWlsdGlucy5jYwpAQCAtOTM0LDYgKzkzNCwzMiBAQCBzdGF0aWMgQ09OU1RFWFBSIGNvbnN0 IHJ2dl9hcmdfdHlwZV9pbmZvIGV4dF92Y3JlYXRlX2FyZ3NbXQogwqAgPSB7cnZ2X2FyZ190eXBl X2luZm8gKFJWVl9CQVNFX3ZlY3RvciksCsKgIMKgIMKgIHJ2dl9hcmdfdHlwZV9pbmZvX2VuZH07 CiAKKy8qIEEgbGlzdCBvZiBhcmdzIGZvciB2ZWN0b3JfdHlwZSBmdW5jIChjb25zdCBzY2FsYXJf dHlwZSAqLCBzaXplX3QpCisgKiBmdW5jdGlvbi7CoCAqLworc3RhdGljIENPTlNURVhQUiBjb25z dCBydnZfYXJnX3R5cGVfaW5mbyBzY2FsYXJfY29uc3RfcHRyX3NpemVfYXJnc1tdCivCoCA9IHty dnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0Vfc2NhbGFyX2NvbnN0X3B0ciksCisgwqAgwqAgcnZ2 X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3NpemUpLCBydnZfYXJnX3R5cGVfaW5mb19lbmR9Owor CisvKiBBIGxpc3Qgb2YgYXJncyBmb3IgdmVjdG9yX3R5cGUgZnVuYyAoY29uc3Qgc2NhbGFyX3R5 cGUgKiwgZWV3OF9pbmRleF90eXBlKQorICogZnVuY3Rpb24uwqAgKi8KK3N0YXRpYyBDT05TVEVY UFIgY29uc3QgcnZ2X2FyZ190eXBlX2luZm8gc2NhbGFyX2NvbnN0X3B0cl9pbmRleF9hcmdzW10K K8KgID0ge3J2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV9zY2FsYXJfY29uc3RfcHRyKSwKKyDC oCDCoCBydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0VfdW5zaWduZWRfdmVjdG9yKSwgcnZ2X2Fy Z190eXBlX2luZm9fZW5kfTsKKworLyogQSBsaXN0IG9mIGFyZ3MgZm9yIHZvaWQgZnVuYyAoc2Nh bGFyX3R5cGUgKiwgZWV3OF9pbmRleF90eXBlLCB2ZWN0b3JfdHlwZSkKKyAqIGZ1bmN0aW9uLsKg ICovCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9hcmdfdHlwZV9pbmZvIHNjYWxhcl9wdHJf aW5kZXhfYXJnc1tdCivCoCA9IHtydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0Vfc2NhbGFyX3B0 ciksCisgwqAgwqAgcnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3Vuc2lnbmVkX3ZlY3Rvciks CisgwqAgwqAgcnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3ZlY3RvciksIHJ2dl9hcmdfdHlw ZV9pbmZvX2VuZH07CisKKy8qIEEgbGlzdCBvZiBhcmdzIGZvciB2b2lkIGZ1bmMgKHNjYWxhcl90 eXBlICosIHNpemVfdCwgdmVjdG9yX3R5cGUpCisgKiBmdW5jdGlvbi7CoCAqLworc3RhdGljIENP TlNURVhQUiBjb25zdCBydnZfYXJnX3R5cGVfaW5mbyBzY2FsYXJfcHRyX3NpemVfYXJnc1tdCivC oCA9IHtydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0Vfc2NhbGFyX3B0ciksCisgwqAgwqAgcnZ2 X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3NpemUpLCBydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JB U0VfdmVjdG9yKSwKKyDCoCDCoCBydnZfYXJnX3R5cGVfaW5mb19lbmR9OworCiAvKiBBIGxpc3Qg b2Ygbm9uZSBwcmVkcyB0aGF0IHdpbGwgYmUgcmVnaXN0ZXJlZCBmb3IgaW50cmluc2ljIGZ1bmN0 aW9ucy7CoCAqLwogc3RhdGljIENPTlNURVhQUiBjb25zdCBwcmVkaWNhdGlvbl90eXBlX2luZGV4 IG5vbmVfcHJlZHNbXQogwqAgPSB7UFJFRF9UWVBFX25vbmUsIE5VTV9QUkVEX1RZUEVTfTsKQEAg LTE0NTUsNiArMTQ4MSwxNCBAQCBzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9vcF9pbmZvIGl1 X3NoaWZ0X3Z2dl9vcHMKwqAgwqAgwqAgcnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3ZlY3Rv ciksIC8qIFJldHVybiB0eXBlICovCsKgIMKgIMKgIHNoaWZ0X3Z2X2FyZ3MgLyogQXJncyAqL307 CiAKKy8qIEEgc3RhdGljIG9wZXJhbmQgaW5mb3JtYXRpb24gZm9yIHNjYWxhcl90eXBlIGZ1bmMg KHZlY3Rvcl90eXBlLCBzaXplX3QpCisgKiBmdW5jdGlvbiByZWdpc3RyYXRpb24uICovCitzdGF0 aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9vcF9pbmZvIGl1X3hfc191X29wcworwqAgPSB7aXVfb3Bz LMKgIMKgIMKgIMKgIMKgIC8qIFR5cGVzICovCisgwqAgwqAgT1BfVFlQRV92eCzCoCDCoCDCoCDC oCAvKiBTdWZmaXggKi8KKyDCoCDCoCBydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0Vfc2NhbGFy KSwgLyogUmV0dXJuIHR5cGUgKi8KKyDCoCDCoCB2X3NpemVfYXJncyAvKiBBcmdzICovfTsKKwog LyogQSBzdGF0aWMgb3BlcmFuZCBpbmZvcm1hdGlvbiBmb3IgdmVjdG9yX3R5cGUgZnVuYyAodmVj dG9yX3R5cGUsIHNpemVfdCkKwqAgKiBmdW5jdGlvbiByZWdpc3RyYXRpb24uICovCiBzdGF0aWMg Q09OU1RFWFBSIGNvbnN0IHJ2dl9vcF9pbmZvIGl1X3NoaWZ0X3Z2eF9vcHMKQEAgLTI2MzgsNiAr MjY3MiwzOCBAQCBzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9vcF9pbmZvIGFsbF92X3ZjcmVh dGVfbG11bDRfeDJfb3BzCsKgIMKgIMKgIHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV92bG11 bF9leHRfeDIpLCAvKiBSZXR1cm4gdHlwZSAqLwrCoCDCoCDCoCBleHRfdmNyZWF0ZV9hcmdzIC8q IEFyZ3MgKi99OwogCisvKiBBIHN0YXRpYyBvcGVyYW5kIGluZm9ybWF0aW9uIGZvciB2ZWN0b3Jf dHlwZSBmdW5jIChjb25zdCBzY2FsYXJfdHlwZSAqLAorICogc2l6ZV90KSBmdW5jdGlvbiByZWdp c3RyYXRpb24uwqAgKi8KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2X29wX2luZm8gYWxsX3Zf c2NhbGFyX2NvbnN0X3B0cl9zaXplX29wcworwqAgPSB7YWxsX29wcyzCoCDCoCDCoCAvKiBUeXBl c8KgICovCisgwqAgwqAgT1BfVFlQRV92LMKgIMKgIMKgIC8qIFN1ZmZpeMKgICovCisgwqAgwqAg cnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3ZlY3RvciksIC8qIFJldHVybiB0eXBlwqAgKi8K KyDCoCDCoCBzY2FsYXJfY29uc3RfcHRyX3NpemVfYXJncyAvKiBBcmdzICovfTsKKworLyogQSBz dGF0aWMgb3BlcmFuZCBpbmZvcm1hdGlvbiBmb3Igdm9pZCBmdW5jIChzY2FsYXJfdHlwZSAqLCBz aXplX3QsCisgKiB2ZWN0b3JfdHlwZSkgZnVuY3Rpb24gcmVnaXN0cmF0aW9uLsKgICovCitzdGF0 aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9vcF9pbmZvIGFsbF92X3NjYWxhcl9wdHJfc2l6ZV9vcHMK K8KgID0ge2FsbF9vcHMswqAgwqAgLyogVHlwZXPCoCAqLworIMKgIMKgIE9QX1RZUEVfdizCoCDC oCAvKiBTdWZmaXjCoCAqLworIMKgIMKgIHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV92b2lk KSwgLyogUmV0dXJuIHR5cGXCoCAqLworIMKgIMKgIHNjYWxhcl9wdHJfc2l6ZV9hcmdzIC8qIEFy Z3MgKi99OworCisvKiBBIHN0YXRpYyBvcGVyYW5kIGluZm9ybWF0aW9uIGZvciB2ZWN0b3JfdHlw ZSBmdW5jIChjb25zdCBzY2FsYXJfdHlwZSAqLAorICogaW5kZXhfdHlwZSkgZnVuY3Rpb24gcmVn aXN0cmF0aW9uLsKgICovCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9vcF9pbmZvIGFsbF92 X3NjYWxhcl9jb25zdF9wdHJfaW5kZXhfb3BzCivCoCA9IHthbGxfb3BzLMKgIMKgIMKgIC8qIFR5 cGVzwqAgKi8KKyDCoCDCoCBPUF9UWVBFX3YswqAgwqAgwqAgLyogU3VmZml4wqAgKi8KKyDCoCDC oCBydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0VfdmVjdG9yKSwgLyogUmV0dXJuIHR5cGXCoCAq LworIMKgIMKgIHNjYWxhcl9jb25zdF9wdHJfaW5kZXhfYXJncyAvKiBBcmdzICovfTsKKworLyog QSBzdGF0aWMgb3BlcmFuZCBpbmZvcm1hdGlvbiBmb3Igdm9pZCBmdW5jIChzY2FsYXJfdHlwZSAq LCBpbmRleF90eXBlLAorICogdmVjdG9yX3R5cGUpIGZ1bmN0aW9uIHJlZ2lzdHJhdGlvbi7CoCAq Lworc3RhdGljIENPTlNURVhQUiBjb25zdCBydnZfb3BfaW5mbyBhbGxfdl9zY2FsYXJfcHRyX2lu ZGV4X29wcworwqAgPSB7YWxsX29wcyzCoCDCoCAvKiBUeXBlc8KgICovCisgwqAgwqAgT1BfVFlQ RV92LMKgIMKgIC8qIFN1ZmZpeMKgICovCisgwqAgwqAgcnZ2X2FyZ190eXBlX2luZm8gKFJWVl9C QVNFX3ZvaWQpLCAvKiBSZXR1cm4gdHlwZcKgICovCisgwqAgwqAgc2NhbGFyX3B0cl9pbmRleF9h cmdzIC8qIEFyZ3MgKi99OworCiAvKiBBIHN0YXRpYyBvcGVyYW5kIGluZm9ybWF0aW9uIGZvciB2 ZWN0b3JfdHlwZSBmdW5jICh2ZWN0b3JfdHlwZSkuCsKgIMKgIFNvbWUgaW5zIGp1c3Qgc3VwcG9y dHMgU0VXPTMyLCBzdWNoIGFzIGNyeXB0byB2ZWN0b2wgWnZrZyBleHRlbnNpb24uCsKgICogZnVu Y3Rpb24gcmVnaXN0cmF0aW9uLsKgICovCkBAIC0yODE2LDYgKzI4ODIsMTAgQEAgc3RhdGljIGZ1 bmN0aW9uX2dyb3VwX2luZm8gZnVuY3Rpb25fZ3JvdXBzW10gPSB7CiAjZGVmaW5lIERFRl9SVlZf RlVOQ1RJT04oTkFNRSwgU0hBUEUsIFBSRURTLCBPUFNfSU5GTykgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgXAogwqAgeyNOQU1FLCAmYmFzZXM6Ok5BTUUsICZzaGFwZXM6OlNI QVBFLCBQUkVEUywgT1BTX0lORk8sIFJFUVVJUkVEX0VYVEVOU0lPTlN9LAogI2luY2x1ZGUgInJp c2N2LXZlY3Rvci1idWlsdGlucy1mdW5jdGlvbnMuZGVmIgorI3VuZGVmIERFRl9SVlZfRlVOQ1RJ T04KKyNkZWZpbmUgREVGX1JWVl9GVU5DVElPTihOQU1FLCBTSEFQRSwgUFJFRFMsIE9QU19JTkZP KSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBcCivCoCB7I05BTUUsICZiYXNl czo6TkFNRSwgJnNoYXBlczo6U0hBUEUsIFBSRURTLCBPUFNfSU5GTywgUkVRVUlSRURfRVhURU5T SU9OU30sCisjaW5jbHVkZSAidGhlYWQtdmVjdG9yLWJ1aWx0aW5zLWZ1bmN0aW9ucy5kZWYiCiB9 OwogCiAvKiBUaGUgUlZWIHR5cGVzLCB3aXRoIHRoZWlyIGJ1aWx0LWluCmRpZmYgLS1naXQgYS9n Y2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5oIGIvZ2NjL2NvbmZpZy9yaXNj di9yaXNjdi12ZWN0b3ItYnVpbHRpbnMuaAppbmRleCA1NGM4ODI0ZmY5Mi4uYThlZTM5YTNjYjIg MTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLmgKKysr IGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMuaApAQCAtMTE0LDYgKzEx NCw3IEBAIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgQ1BfV1JJVEVfQ1NSID0gMVUgPDwgNTsK IGVudW0gcmVxdWlyZWRfZXh0CiB7CiDCoCBWRUNUT1JfRVhULCDCoCAvKiBWZWN0b3IgZXh0ZW5z aW9uICovCivCoCBYVEhFQURWRUNUT1JfRVhULCDCoCAvKiBYVGhlYWRWZWN0b3IgZXh0ZW5zaW9u ICovCiDCoCBaVkJCX0VYVCzCoCDCoCAvKiBDcnl0byB2ZWN0b3IgWnZiYiBzdWItZXh0ICovCiDC oCBaVkJCX09SX1pWS0JfRVhULCAvKiBDcnl0byB2ZWN0b3IgWnZiYiBvciB6dmtiIHN1Yi1leHQg Ki8KIMKgIFpWQkNfRVhULMKgIMKgIC8qIENyeXB0byB2ZWN0b3IgWnZiYyBzdWItZXh0ICovCkBA IC0yMzQsNiArMjM1LDggQEAgc3RydWN0IGZ1bmN0aW9uX2dyb3VwX2luZm8KIMKgIMKgIHsKIMKg IMKgIMKgIGNhc2UgVkVDVE9SX0VYVDoKIMKgIMKgIMKgIMKgIHJldHVybiBUQVJHRVRfVkVDVE9S OworwqAgwqAgwqAgY2FzZSBYVEhFQURWRUNUT1JfRVhUOgorIHJldHVybiBUQVJHRVRfWFRIRUFE VkVDVE9SOwogwqAgwqAgwqAgY2FzZSBaVkJCX0VYVDoKIMKgIMKgIMKgIMKgIHJldHVybiBUQVJH RVRfWlZCQjsKIMKgIMKgIMKgIGNhc2UgWlZCQl9PUl9aVktCX0VYVDoKZGlmZiAtLWdpdCBhL2dj Yy9jb25maWcvcmlzY3YvdC1yaXNjdiBiL2djYy9jb25maWcvcmlzY3YvdC1yaXNjdgppbmRleCAz MmRlNmI4NTFjMS4uMzg0OTQzMjBkOGIgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvcmlzY3YvdC1y aXNjdgorKysgYi9nY2MvY29uZmlnL3Jpc2N2L3QtcmlzY3YKQEAgLTEsNiArMSw3IEBACiBSSVND Vl9CVUlMVElOU19IID0gJChzcmNkaXIpL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRp bnMuaCBcCsKgIMKgIMKgICQoc3JjZGlyKS9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0 aW5zLmRlZiBcCsKgIMKgIMKgICQoc3JjZGlyKS9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1 aWx0aW5zLWZ1bmN0aW9ucy5kZWYgXAorIMKgIMKgIMKgICQoc3JjZGlyKS9jb25maWcvcmlzY3Yv dGhlYWQtdmVjdG9yLWJ1aWx0aW5zLWZ1bmN0aW9ucy5kZWYgXArCoCDCoCDCoCByaXNjdi12ZWN0 b3ItdHlwZS1pbmRleGVyLmdlbi5kZWYKIAogcmlzY3YtYnVpbHRpbnMubzogJChzcmNkaXIpL2Nv bmZpZy9yaXNjdi9yaXNjdi1idWlsdGlucy5jYyAkKENPTkZJR19IKSBcCmRpZmYgLS1naXQgYS9n Y2MvY29uZmlnL3Jpc2N2L3RoZWFkLXZlY3Rvci1idWlsdGlucy1mdW5jdGlvbnMuZGVmIGIvZ2Nj L2NvbmZpZy9yaXNjdi90aGVhZC12ZWN0b3ItYnVpbHRpbnMtZnVuY3Rpb25zLmRlZgpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZmQzYmEyOWJhZTkKLS0tIC9kZXYvbnVs bAorKysgYi9nY2MvY29uZmlnL3Jpc2N2L3RoZWFkLXZlY3Rvci1idWlsdGlucy1mdW5jdGlvbnMu ZGVmCkBAIC0wLDAgKzEsMzkgQEAKKyNpZm5kZWYgREVGX1JWVl9GVU5DVElPTgorI2RlZmluZSBE RUZfUlZWX0ZVTkNUSU9OKE5BTUUsIFNIQVBFLCBQUkVEUywgT1BTX0lORk8pCisjZW5kaWYKKwor I2RlZmluZSBSRVFVSVJFRF9FWFRFTlNJT05TIFhUSEVBRFZFQ1RPUl9FWFQKK0RFRl9SVlZfRlVO Q1RJT04gKHZsYiwgdGhfbG9hZHN0b3JlX3dpZHRoLCBmdWxsX3ByZWRzLCBhbGxfdl9zY2FsYXJf Y29uc3RfcHRyX29wcykKK0RFRl9SVlZfRlVOQ1RJT04gKHZsaCwgdGhfbG9hZHN0b3JlX3dpZHRo LCBmdWxsX3ByZWRzLCBhbGxfdl9zY2FsYXJfY29uc3RfcHRyX29wcykKK0RFRl9SVlZfRlVOQ1RJ T04gKHZsdywgdGhfbG9hZHN0b3JlX3dpZHRoLCBmdWxsX3ByZWRzLCBhbGxfdl9zY2FsYXJfY29u c3RfcHRyX29wcykKK0RFRl9SVlZfRlVOQ1RJT04gKHZsYnUsIHRoX2xvYWRzdG9yZV93aWR0aCwg ZnVsbF9wcmVkcywgYWxsX3Zfc2NhbGFyX2NvbnN0X3B0cl9vcHMpCitERUZfUlZWX0ZVTkNUSU9O ICh2bGh1LCB0aF9sb2Fkc3RvcmVfd2lkdGgsIGZ1bGxfcHJlZHMsIGFsbF92X3NjYWxhcl9jb25z dF9wdHJfb3BzKQorREVGX1JWVl9GVU5DVElPTiAodmx3dSwgdGhfbG9hZHN0b3JlX3dpZHRoLCBm dWxsX3ByZWRzLCBhbGxfdl9zY2FsYXJfY29uc3RfcHRyX29wcykKK0RFRl9SVlZfRlVOQ1RJT04g KHZzYiwgdGhfbG9hZHN0b3JlX3dpZHRoLCBub25lX21fcHJlZHMsIGFsbF92X3NjYWxhcl9wdHJf b3BzKQorREVGX1JWVl9GVU5DVElPTiAodnNoLCB0aF9sb2Fkc3RvcmVfd2lkdGgsIG5vbmVfbV9w cmVkcywgYWxsX3Zfc2NhbGFyX3B0cl9vcHMpCitERUZfUlZWX0ZVTkNUSU9OICh2c3csIHRoX2xv YWRzdG9yZV93aWR0aCwgbm9uZV9tX3ByZWRzLCBhbGxfdl9zY2FsYXJfcHRyX29wcykKK0RFRl9S VlZfRlVOQ1RJT04gKHZsc2IsIHRoX2xvYWRzdG9yZV93aWR0aCwgZnVsbF9wcmVkcywgYWxsX3Zf c2NhbGFyX2NvbnN0X3B0cl9zaXplX29wcykKK0RFRl9SVlZfRlVOQ1RJT04gKHZsc2gsIHRoX2xv YWRzdG9yZV93aWR0aCwgZnVsbF9wcmVkcywgYWxsX3Zfc2NhbGFyX2NvbnN0X3B0cl9zaXplX29w cykKK0RFRl9SVlZfRlVOQ1RJT04gKHZsc3csIHRoX2xvYWRzdG9yZV93aWR0aCwgZnVsbF9wcmVk cywgYWxsX3Zfc2NhbGFyX2NvbnN0X3B0cl9zaXplX29wcykKK0RFRl9SVlZfRlVOQ1RJT04gKHZs c2J1LCB0aF9sb2Fkc3RvcmVfd2lkdGgsIGZ1bGxfcHJlZHMsIGFsbF92X3NjYWxhcl9jb25zdF9w dHJfc2l6ZV9vcHMpCitERUZfUlZWX0ZVTkNUSU9OICh2bHNodSwgdGhfbG9hZHN0b3JlX3dpZHRo LCBmdWxsX3ByZWRzLCBhbGxfdl9zY2FsYXJfY29uc3RfcHRyX3NpemVfb3BzKQorREVGX1JWVl9G VU5DVElPTiAodmxzd3UsIHRoX2xvYWRzdG9yZV93aWR0aCwgZnVsbF9wcmVkcywgYWxsX3Zfc2Nh bGFyX2NvbnN0X3B0cl9zaXplX29wcykKK0RFRl9SVlZfRlVOQ1RJT04gKHZzc2IsIHRoX2xvYWRz dG9yZV93aWR0aCwgbm9uZV9tX3ByZWRzLCBhbGxfdl9zY2FsYXJfcHRyX3NpemVfb3BzKQorREVG X1JWVl9GVU5DVElPTiAodnNzaCwgdGhfbG9hZHN0b3JlX3dpZHRoLCBub25lX21fcHJlZHMsIGFs bF92X3NjYWxhcl9wdHJfc2l6ZV9vcHMpCitERUZfUlZWX0ZVTkNUSU9OICh2c3N3LCB0aF9sb2Fk c3RvcmVfd2lkdGgsIG5vbmVfbV9wcmVkcywgYWxsX3Zfc2NhbGFyX3B0cl9zaXplX29wcykKK0RF Rl9SVlZfRlVOQ1RJT04gKHZseGIsIHRoX2luZGV4ZWRfbG9hZHN0b3JlX3dpZHRoLCBmdWxsX3By ZWRzLCBhbGxfdl9zY2FsYXJfY29uc3RfcHRyX2luZGV4X29wcykKK0RFRl9SVlZfRlVOQ1RJT04g KHZseGgsIHRoX2luZGV4ZWRfbG9hZHN0b3JlX3dpZHRoLCBmdWxsX3ByZWRzLCBhbGxfdl9zY2Fs YXJfY29uc3RfcHRyX2luZGV4X29wcykKK0RFRl9SVlZfRlVOQ1RJT04gKHZseHcsIHRoX2luZGV4 ZWRfbG9hZHN0b3JlX3dpZHRoLCBmdWxsX3ByZWRzLCBhbGxfdl9zY2FsYXJfY29uc3RfcHRyX2lu ZGV4X29wcykKK0RFRl9SVlZfRlVOQ1RJT04gKHZseGJ1LCB0aF9pbmRleGVkX2xvYWRzdG9yZV93 aWR0aCwgZnVsbF9wcmVkcywgYWxsX3Zfc2NhbGFyX2NvbnN0X3B0cl9pbmRleF9vcHMpCitERUZf UlZWX0ZVTkNUSU9OICh2bHhodSwgdGhfaW5kZXhlZF9sb2Fkc3RvcmVfd2lkdGgsIGZ1bGxfcHJl ZHMsIGFsbF92X3NjYWxhcl9jb25zdF9wdHJfaW5kZXhfb3BzKQorREVGX1JWVl9GVU5DVElPTiAo dmx4d3UsIHRoX2luZGV4ZWRfbG9hZHN0b3JlX3dpZHRoLCBmdWxsX3ByZWRzLCBhbGxfdl9zY2Fs YXJfY29uc3RfcHRyX2luZGV4X29wcykKK0RFRl9SVlZfRlVOQ1RJT04gKHZzeGIsIHRoX2luZGV4 ZWRfbG9hZHN0b3JlX3dpZHRoLCBub25lX21fcHJlZHMsIGFsbF92X3NjYWxhcl9wdHJfaW5kZXhf b3BzKQorREVGX1JWVl9GVU5DVElPTiAodnN4aCwgdGhfaW5kZXhlZF9sb2Fkc3RvcmVfd2lkdGgs IG5vbmVfbV9wcmVkcywgYWxsX3Zfc2NhbGFyX3B0cl9pbmRleF9vcHMpCitERUZfUlZWX0ZVTkNU SU9OICh2c3h3LCB0aF9pbmRleGVkX2xvYWRzdG9yZV93aWR0aCwgbm9uZV9tX3ByZWRzLCBhbGxf dl9zY2FsYXJfcHRyX2luZGV4X29wcykKK0RFRl9SVlZfRlVOQ1RJT04gKHZzdXhiLCB0aF9pbmRl eGVkX2xvYWRzdG9yZV93aWR0aCwgbm9uZV9tX3ByZWRzLCBhbGxfdl9zY2FsYXJfcHRyX2luZGV4 X29wcykKK0RFRl9SVlZfRlVOQ1RJT04gKHZzdXhoLCB0aF9pbmRleGVkX2xvYWRzdG9yZV93aWR0 aCwgbm9uZV9tX3ByZWRzLCBhbGxfdl9zY2FsYXJfcHRyX2luZGV4X29wcykKK0RFRl9SVlZfRlVO Q1RJT04gKHZzdXh3LCB0aF9pbmRleGVkX2xvYWRzdG9yZV93aWR0aCwgbm9uZV9tX3ByZWRzLCBh bGxfdl9zY2FsYXJfcHRyX2luZGV4X29wcykKK0RFRl9SVlZfRlVOQ1RJT04gKHZleHRfeF92LCB0 aF9leHRyYWN0LCBub25lX3ByZWRzLCBpdV94X3NfdV9vcHMpCisjdW5kZWYgUkVRVUlSRURfRVhU RU5TSU9OUworCisjdW5kZWYgREVGX1JWVl9GVU5DVElPTgpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZp Zy9yaXNjdi90aGVhZC12ZWN0b3IubWQgYi9nY2MvY29uZmlnL3Jpc2N2L3RoZWFkLXZlY3Rvci5t ZAppbmRleCA2OTZiODE1MjUyZC4uMGYzNzAwZDkyNjkgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcv cmlzY3YvdGhlYWQtdmVjdG9yLm1kCisrKyBiL2djYy9jb25maWcvcmlzY3YvdGhlYWQtdmVjdG9y Lm1kCkBAIC0xLDcgKzEsOTUgQEAKIChkZWZpbmVfY19lbnVtICJ1bnNwZWMiIFsKK8KgIFVOU1BF Q19USF9WTEIKK8KgIFVOU1BFQ19USF9WTEJVCivCoCBVTlNQRUNfVEhfVkxICivCoCBVTlNQRUNf VEhfVkxIVQorwqAgVU5TUEVDX1RIX1ZMVworwqAgVU5TUEVDX1RIX1ZMV1UKKworwqAgVU5TUEVD X1RIX1ZMU0IKK8KgIFVOU1BFQ19USF9WTFNCVQorwqAgVU5TUEVDX1RIX1ZMU0gKK8KgIFVOU1BF Q19USF9WTFNIVQorwqAgVU5TUEVDX1RIX1ZMU1cKK8KgIFVOU1BFQ19USF9WTFNXVQorCivCoCBV TlNQRUNfVEhfVkxYQgorwqAgVU5TUEVDX1RIX1ZMWEJVCivCoCBVTlNQRUNfVEhfVkxYSAorwqAg VU5TUEVDX1RIX1ZMWEhVCivCoCBVTlNQRUNfVEhfVkxYVworwqAgVU5TUEVDX1RIX1ZMWFdVCisK K8KgIFVOU1BFQ19USF9WU1VYQgorwqAgVU5TUEVDX1RIX1ZTVVhICivCoCBVTlNQRUNfVEhfVlNV WFcKKwogwqAgVU5TUEVDX1RIX1ZXTERTVAogXSkKIAorKGRlZmluZV9pbnRfaXRlcmF0b3IgVU5T UEVDX1RIX1ZMTUVNX09QIFsKK8KgIFVOU1BFQ19USF9WTEIgVU5TUEVDX1RIX1ZMQlUKK8KgIFVO U1BFQ19USF9WTEggVU5TUEVDX1RIX1ZMSFUKK8KgIFVOU1BFQ19USF9WTFcgVU5TUEVDX1RIX1ZM V1UKK10pCisKKyhkZWZpbmVfaW50X2l0ZXJhdG9yIFVOU1BFQ19USF9WTFNNRU1fT1AgWworwqAg VU5TUEVDX1RIX1ZMU0IgVU5TUEVDX1RIX1ZMU0JVCivCoCBVTlNQRUNfVEhfVkxTSCBVTlNQRUNf VEhfVkxTSFUKK8KgIFVOU1BFQ19USF9WTFNXIFVOU1BFQ19USF9WTFNXVQorXSkKKworKGRlZmlu ZV9pbnRfaXRlcmF0b3IgVU5TUEVDX1RIX1ZMWE1FTV9PUCBbCivCoCBVTlNQRUNfVEhfVkxYQiBV TlNQRUNfVEhfVkxYQlUKK8KgIFVOU1BFQ19USF9WTFhIIFVOU1BFQ19USF9WTFhIVQorwqAgVU5T UEVDX1RIX1ZMWFcgVU5TUEVDX1RIX1ZMWFdVCitdKQorCisoZGVmaW5lX2ludF9hdHRyIHZsbWVt X29wX2F0dHIgWworwqAgKFVOU1BFQ19USF9WTEIgImIiKSAoVU5TUEVDX1RIX1ZMQlUgImJ1IikK K8KgIChVTlNQRUNfVEhfVkxIICJoIikgKFVOU1BFQ19USF9WTEhVICJodSIpCivCoCAoVU5TUEVD X1RIX1ZMVyAidyIpIChVTlNQRUNfVEhfVkxXVSAid3UiKQorwqAgKFVOU1BFQ19USF9WTFNCICJi IikgKFVOU1BFQ19USF9WTFNCVSAiYnUiKQorwqAgKFVOU1BFQ19USF9WTFNIICJoIikgKFVOU1BF Q19USF9WTFNIVSAiaHUiKQorwqAgKFVOU1BFQ19USF9WTFNXICJ3IikgKFVOU1BFQ19USF9WTFNX VSAid3UiKQorwqAgKFVOU1BFQ19USF9WTFhCICJiIikgKFVOU1BFQ19USF9WTFhCVSAiYnUiKQor wqAgKFVOU1BFQ19USF9WTFhIICJoIikgKFVOU1BFQ19USF9WTFhIVSAiaHUiKQorwqAgKFVOU1BF Q19USF9WTFhXICJ3IikgKFVOU1BFQ19USF9WTFhXVSAid3UiKQorwqAgKFVOU1BFQ19USF9WU1VY QiAiYiIpCivCoCAoVU5TUEVDX1RIX1ZTVVhIICJoIikKK8KgIChVTlNQRUNfVEhfVlNVWFcgInci KQorXSkKKworKGRlZmluZV9pbnRfYXR0ciB2bG1lbV9vcmRlcl9hdHRyIFsKK8KgIChVTlNQRUNf VEhfVkxYQiAiIikKK8KgIChVTlNQRUNfVEhfVkxYSCAiIikKK8KgIChVTlNQRUNfVEhfVkxYVyAi IikKK8KgIChVTlNQRUNfVEhfVlNVWEIgInUiKQorwqAgKFVOU1BFQ19USF9WU1VYSCAidSIpCivC oCAoVU5TUEVDX1RIX1ZTVVhXICJ1IikKK10pCisKKyhkZWZpbmVfaW50X2l0ZXJhdG9yIFVOU1BF Q19USF9WU01FTV9PUCBbCivCoCBVTlNQRUNfVEhfVkxCCivCoCBVTlNQRUNfVEhfVkxICivCoCBV TlNQRUNfVEhfVkxXCitdKQorCisoZGVmaW5lX2ludF9pdGVyYXRvciBVTlNQRUNfVEhfVlNTTUVN X09QIFsKK8KgIFVOU1BFQ19USF9WTFNCCivCoCBVTlNQRUNfVEhfVkxTSAorwqAgVU5TUEVDX1RI X1ZMU1cKK10pCisKKyhkZWZpbmVfaW50X2l0ZXJhdG9yIFVOU1BFQ19USF9WU1hNRU1fT1AgWwor wqAgVU5TUEVDX1RIX1ZMWEIKK8KgIFVOU1BFQ19USF9WTFhICivCoCBVTlNQRUNfVEhfVkxYVwor wqAgVU5TUEVDX1RIX1ZTVVhCCivCoCBVTlNQRUNfVEhfVlNVWEgKK8KgIFVOU1BFQ19USF9WU1VY VworXSkKKwogKGRlZmluZV9tb2RlX2l0ZXJhdG9yIFZfVkxTX1ZUIFtWIFZMUyBWVF0pCiAoZGVm aW5lX21vZGVfaXRlcmF0b3IgVl9WQl9WTFNfVlQgW1YgVkIgVkxTIFZUXSkKIApAQCAtMTAwLDMg KzE4OCwxNjggQEAKIMKgIH0KIMKgIFsoc2V0X2F0dHIgInR5cGUiICJ2bGRtLHZzdG0sdm1hbHUs dm1hbHUsdm1hbHUiKQrCoCDCoCAoc2V0X2F0dHIgIm1vZGUiICI8TU9ERT4iKV0pCisKKyhkZWZp bmVfZXhwYW5kICJAcHJlZF9tb3Zfd2lkdGg8dmxtZW1fb3BfYXR0cj48bW9kZT4iCivCoCBbKHNl dCAobWF0Y2hfb3BlcmFuZDpWX1ZMUyAwICJub25pbW1lZGlhdGVfb3BlcmFuZCIpCivCoCDCoCAo aWZfdGhlbl9lbHNlOlZfVkxTCivCoCDCoCDCoCAodW5zcGVjOjxWTT4KKyBbKG1hdGNoX29wZXJh bmQ6PFZNPiAxICJ2ZWN0b3JfbWFza19vcGVyYW5kIikKK8KgIChtYXRjaF9vcGVyYW5kIDQgInZl Y3Rvcl9sZW5ndGhfb3BlcmFuZCIpCivCoCAobWF0Y2hfb3BlcmFuZCA1ICJjb25zdF9pbnRfb3Bl cmFuZCIpCivCoCAobWF0Y2hfb3BlcmFuZCA2ICJjb25zdF9pbnRfb3BlcmFuZCIpCivCoCAobWF0 Y2hfb3BlcmFuZCA3ICJjb25zdF9pbnRfb3BlcmFuZCIpCivCoCAocmVnOlNJIFZMX1JFR05VTSkK K8KgIChyZWc6U0kgVlRZUEVfUkVHTlVNKV0gVU5TUEVDX1RIX1ZMTUVNX09QKQorwqAgwqAgwqAg KG1hdGNoX29wZXJhbmQ6Vl9WTFMgMyAidmVjdG9yX21vdmVfb3BlcmFuZCIpCivCoCDCoCDCoCAo bWF0Y2hfb3BlcmFuZDpWX1ZMUyAyICJ2ZWN0b3JfbWVyZ2Vfb3BlcmFuZCIpKSldCivCoCAiVEFS R0VUX1hUSEVBRFZFQ1RPUiIKK8KgIHt9KQorCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICIqcHJl ZF9tb3Zfd2lkdGg8dmxtZW1fb3BfYXR0cj48bW9kZT4iCivCoCBbKHNldCAobWF0Y2hfb3BlcmFu ZDpWX1ZMUyAwICJub25pbW1lZGlhdGVfb3BlcmFuZCIgwqAgwqAgIj12cizCoCDCoCB2cizCoCDC oCB2ZCwgwqAgwqAgbSzCoCDCoCB2cizCoCDCoCB2ciIpCivCoCDCoCAoaWZfdGhlbl9lbHNlOlZf VkxTCivCoCDCoCDCoCAodW5zcGVjOjxWTT4KKyBbKG1hdGNoX29wZXJhbmQ6PFZNPiAxICJ2ZWN0 b3JfbWFza19vcGVyYW5kIsKgIMKgICJ2bVdjMSwgwqAgV2MxLMKgIMKgIHZtLCB2bVdjMSwgwqAg V2MxLCDCoCBXYzEiKQorwqAgKG1hdGNoX29wZXJhbmQgNCAidmVjdG9yX2xlbmd0aF9vcGVyYW5k IiDCoCDCoCDCoCAiIMKgIHJLLMKgIMKgIHJLLMKgIMKgIHJLLMKgIMKgIHJLLMKgIMKgIHJLLMKg IMKgIHJLIikKK8KgIChtYXRjaF9vcGVyYW5kIDUgImNvbnN0X2ludF9vcGVyYW5kIsKgIMKgICLC oCDCoCBpLCDCoCDCoCBpLCDCoCDCoCBpLCDCoCDCoCBpLCDCoCDCoCBpLCDCoCDCoCBpIikKK8Kg IChtYXRjaF9vcGVyYW5kIDYgImNvbnN0X2ludF9vcGVyYW5kIsKgIMKgICLCoCDCoCBpLCDCoCDC oCBpLCDCoCDCoCBpLCDCoCDCoCBpLCDCoCDCoCBpLCDCoCDCoCBpIikKK8KgIChtYXRjaF9vcGVy YW5kIDcgImNvbnN0X2ludF9vcGVyYW5kIsKgIMKgICLCoCDCoCBpLCDCoCDCoCBpLCDCoCDCoCBp LCDCoCDCoCBpLCDCoCDCoCBpLCDCoCDCoCBpIikKK8KgIChyZWc6U0kgVkxfUkVHTlVNKQorwqAg KHJlZzpTSSBWVFlQRV9SRUdOVU0pXSBVTlNQRUNfVEhfVkxNRU1fT1ApCivCoCDCoCDCoCAobWF0 Y2hfb3BlcmFuZDpWX1ZMUyAzICJyZWdfb3JfbWVtX29wZXJhbmQiIMKgIMKgIMKgICLCoCDCoCBt LCDCoCDCoCBtLCDCoCDCoCBtLMKgIMKgIHZyLMKgIMKgIHZyLMKgIMKgIHZyIikKK8KgIMKgIMKg IChtYXRjaF9vcGVyYW5kOlZfVkxTIDIgInZlY3Rvcl9tZXJnZV9vcGVyYW5kIiDCoCDCoCAiwqAg wqAgMCzCoCDCoCB2dSzCoCDCoCB2dSzCoCDCoCB2dSzCoCDCoCB2dSwgwqAgwqAgMCIpKSldCivC oCAiKFRBUkdFVF9YVEhFQURWRUNUT1IKK8KgIMKgICYmIChyZWdpc3Rlcl9vcGVyYW5kIChvcGVy YW5kc1swXSwgPE1PREU+bW9kZSkKKyB8fCByZWdpc3Rlcl9vcGVyYW5kIChvcGVyYW5kc1szXSwg PE1PREU+bW9kZSkpKSIKK8KgICJACisgwqAgdmw8dmxtZW1fb3BfYXR0cj4udlx0JTAsJTMlcDEK KyDCoCB2bDx2bG1lbV9vcF9hdHRyPi52XHQlMCwlMworIMKgIHZsPHZsbWVtX29wX2F0dHI+LnZc dCUwLCUzLCUxLnQKKyDCoCB2czx2bG1lbV9vcF9hdHRyPi52XHQlMywlMCVwMQorIMKgIHZtdi52 LnZcdCUwLCUzCisgwqAgdm12LnYudlx0JTAsJTMiCivCoCAiJiYgcmVnaXN0ZXJfb3BlcmFuZCAo b3BlcmFuZHNbMF0sIDxNT0RFPm1vZGUpCisgwqAgJiYgcmVnaXN0ZXJfb3BlcmFuZCAob3BlcmFu ZHNbM10sIDxNT0RFPm1vZGUpCisgwqAgJiYgc2F0aXNmaWVzX2NvbnN0cmFpbnRfdnUgKG9wZXJh bmRzWzJdKQorIMKgICYmIElOVFZBTCAob3BlcmFuZHNbN10pID09IHJpc2N2X3ZlY3Rvcjo6VkxN QVgiCivCoCBbKHNldCAobWF0Y2hfZHVwIDApIChtYXRjaF9kdXAgMykpXQorwqAgIiIKK8KgIFso c2V0X2F0dHIgInR5cGUiICJ2bGRlLHZsZGUsdmxkZSx2c3RlLHZpbW92LHZpbW92IikKKyDCoCAo c2V0X2F0dHIgIm1vZGUiICI8TU9ERT4iKV0pCisKKyhkZWZpbmVfaW5zbiAiQHByZWRfc3RvcmVf d2lkdGg8dmxtZW1fb3BfYXR0cj48bW9kZT4iCivCoCBbKHNldCAobWF0Y2hfb3BlcmFuZDpWSSAw ICJtZW1vcnlfb3BlcmFuZCIgwqAgIittIikKKyAoaWZfdGhlbl9lbHNlOlZJCisgwqAgKHVuc3Bl Yzo8Vk0+CisgwqAgwqAgWyhtYXRjaF9vcGVyYW5kOjxWTT4gMSAidmVjdG9yX21hc2tfb3BlcmFu ZCIgInZtV2MxIikKK8KgIMKgIMKgIChtYXRjaF9vcGVyYW5kIDMgInZlY3Rvcl9sZW5ndGhfb3Bl cmFuZCLCoCDCoCAiIMKgIHJLIikKK8KgIMKgIMKgIChtYXRjaF9vcGVyYW5kIDQgImNvbnN0X2lu dF9vcGVyYW5kIiAiwqAgwqAgaSIpCivCoCDCoCDCoCAocmVnOlNJIFZMX1JFR05VTSkKK8KgIMKg IMKgIChyZWc6U0kgVlRZUEVfUkVHTlVNKV0gVU5TUEVDX1RIX1ZTTUVNX09QKQorIMKgIChtYXRj aF9vcGVyYW5kOlZJIDIgInJlZ2lzdGVyX29wZXJhbmQiwqAgIsKgIMKgIHZyIikKKyDCoCAobWF0 Y2hfZHVwIDApKSldCivCoCAiVEFSR0VUX1hUSEVBRFZFQ1RPUiIKK8KgICJ2czx2bG1lbV9vcF9h dHRyPi52XHQlMiwlMCVwMSIKK8KgIFsoc2V0X2F0dHIgInR5cGUiICJ2c3RlIikKKyDCoCAoc2V0 X2F0dHIgIm1vZGUiICI8TU9ERT4iKQorIMKgIChzZXQgKGF0dHIgImF2bF90eXBlX2lkeCIpIChj b25zdF9pbnQgNCkpCisgwqAgKHNldF9hdHRyICJ2bF9vcF9pZHgiICIzIildKQorCisoZGVmaW5l X2luc24gIkBwcmVkX3N0cmlkZWRfbG9hZF93aWR0aDx2bG1lbV9vcF9hdHRyPjxtb2RlPiIKK8Kg IFsoc2V0IChtYXRjaF9vcGVyYW5kOlZJIDAgInJlZ2lzdGVyX29wZXJhbmQiIMKgIMKgIMKgICI9 dnIswqAgwqAgdnIswqAgwqAgdmQiKQorIChpZl90aGVuX2Vsc2U6VkkKKyDCoCAodW5zcGVjOjxW TT4KKyDCoCDCoCBbKG1hdGNoX29wZXJhbmQ6PFZNPiAxICJ2ZWN0b3JfbWFza19vcGVyYW5kIiAi dm1XYzEsIMKgIFdjMSzCoCDCoCB2bSIpCivCoCDCoCDCoCAobWF0Y2hfb3BlcmFuZCA1ICJ2ZWN0 b3JfbGVuZ3RoX29wZXJhbmQiwqAgwqAgIiDCoCBySyzCoCDCoCBySyzCoCDCoCBySyIpCivCoCDC oCDCoCAobWF0Y2hfb3BlcmFuZCA2ICJjb25zdF9pbnRfb3BlcmFuZCIgIsKgIMKgIGksIMKgIMKg IGksIMKgIMKgIGkiKQorwqAgwqAgwqAgKG1hdGNoX29wZXJhbmQgNyAiY29uc3RfaW50X29wZXJh bmQiICLCoCDCoCBpLCDCoCDCoCBpLCDCoCDCoCBpIikKK8KgIMKgIMKgIChtYXRjaF9vcGVyYW5k IDggImNvbnN0X2ludF9vcGVyYW5kIiAiwqAgwqAgaSwgwqAgwqAgaSwgwqAgwqAgaSIpCivCoCDC oCDCoCAocmVnOlNJIFZMX1JFR05VTSkKK8KgIMKgIMKgIChyZWc6U0kgVlRZUEVfUkVHTlVNKV0g VU5TUEVDX1RIX1ZMU01FTV9PUCkKKyDCoCAodW5zcGVjOlZJCisgwqAgwqAgWyhtYXRjaF9vcGVy YW5kOlZJIDMgIm1lbW9yeV9vcGVyYW5kIsKgICLCoCDCoCBtLCDCoCDCoCBtLCDCoCDCoCBtIikK K8KgIMKgIMKgIChtYXRjaF9vcGVyYW5kIDQgInBtb2RlX3JlZ19vcl8wX29wZXJhbmQiIMKgICIg wqAgckoswqAgwqAgckoswqAgwqAgckoiKV0gVU5TUEVDX1RIX1ZMU01FTV9PUCkKKyDCoCAobWF0 Y2hfb3BlcmFuZDpWSSAyICJ2ZWN0b3JfbWVyZ2Vfb3BlcmFuZCLCoCDCoCDCoCAiwqAgwqAgMCzC oCDCoCB2dSzCoCDCoCB2dSIpKSldCivCoCAiVEFSR0VUX1hUSEVBRFZFQ1RPUiIKK8KgICJ2bHM8 dmxtZW1fb3BfYXR0cj4udlx0JTAsJTMsJXo0JXAxIgorwqAgWyhzZXRfYXR0ciAidHlwZSIgInZs ZHMiKQorIMKgIChzZXRfYXR0ciAibW9kZSIgIjxNT0RFPiIpXSkKKworKGRlZmluZV9pbnNuICJA cHJlZF9zdHJpZGVkX3N0b3JlX3dpZHRoPHZsbWVtX29wX2F0dHI+PG1vZGU+IgorwqAgWyhzZXQg KG1hdGNoX29wZXJhbmQ6VkkgMCAibWVtb3J5X29wZXJhbmQiIMKgICIrbSIpCisgKGlmX3RoZW5f ZWxzZTpWSQorIMKgICh1bnNwZWM6PFZNPgorIMKgIMKgIFsobWF0Y2hfb3BlcmFuZDo8Vk0+IDEg InZlY3Rvcl9tYXNrX29wZXJhbmQiICJ2bVdjMSIpCivCoCDCoCDCoCAobWF0Y2hfb3BlcmFuZCA0 ICJ2ZWN0b3JfbGVuZ3RoX29wZXJhbmQiwqAgwqAgIiDCoCBySyIpCivCoCDCoCDCoCAobWF0Y2hf b3BlcmFuZCA1ICJjb25zdF9pbnRfb3BlcmFuZCIgIsKgIMKgIGkiKQorwqAgwqAgwqAgKHJlZzpT SSBWTF9SRUdOVU0pCivCoCDCoCDCoCAocmVnOlNJIFZUWVBFX1JFR05VTSldIFVOU1BFQ19USF9W U1NNRU1fT1ApCisgwqAgKHVuc3BlYzpWSQorIMKgIMKgIFsobWF0Y2hfb3BlcmFuZCAyICJwbW9k ZV9yZWdfb3JfMF9vcGVyYW5kIiDCoCAiIMKgIHJKIikKK8KgIMKgIMKgIChtYXRjaF9vcGVyYW5k OlZJIDMgInJlZ2lzdGVyX29wZXJhbmQiIMKgIMKgIMKgICIgwqAgdnIiKV0gVU5TUEVDX1RIX1ZT U01FTV9PUCkKKyDCoCAobWF0Y2hfZHVwIDApKSldCivCoCAiVEFSR0VUX1hUSEVBRFZFQ1RPUiIK K8KgICJ2c3M8dmxtZW1fb3BfYXR0cj4udlx0JTMsJTAsJXoyJXAxIgorwqAgWyhzZXRfYXR0ciAi dHlwZSIgInZzdHMiKQorIMKgIChzZXRfYXR0ciAibW9kZSIgIjxNT0RFPiIpCisgwqAgKHNldCAo YXR0ciAiYXZsX3R5cGVfaWR4IikgKGNvbnN0X2ludCA1KSldKQorCisoZGVmaW5lX2luc24gIkBw cmVkX2luZGV4ZWRfbG9hZF93aWR0aDx2bG1lbV9vcF9hdHRyPjxtb2RlPiIKK8KgIFsoc2V0ICht YXRjaF9vcGVyYW5kOlZJIDAgInJlZ2lzdGVyX29wZXJhbmQiwqAgwqAgwqAgIj12ZCwgdnIsdmQs IHZyIikKKyAoaWZfdGhlbl9lbHNlOlZJCisgwqAgKHVuc3BlYzo8Vk0+CisgwqAgwqAgWyhtYXRj aF9vcGVyYW5kOjxWTT4gMSAidmVjdG9yX21hc2tfb3BlcmFuZCLCoCAiIHZtLFdjMSx2bSxXYzEi KQorwqAgwqAgwqAgKG1hdGNoX29wZXJhbmQgNSAidmVjdG9yX2xlbmd0aF9vcGVyYW5kIiDCoCDC oCAiIHJLLCBySyxySywgcksiKQorwqAgwqAgwqAgKG1hdGNoX29wZXJhbmQgNiAiY29uc3RfaW50 X29wZXJhbmQiwqAgIsKgIGkswqAgaSwgaSzCoCBpIikKK8KgIMKgIMKgIChtYXRjaF9vcGVyYW5k IDcgImNvbnN0X2ludF9vcGVyYW5kIsKgICLCoCBpLMKgIGksIGkswqAgaSIpCivCoCDCoCDCoCAo bWF0Y2hfb3BlcmFuZCA4ICJjb25zdF9pbnRfb3BlcmFuZCLCoCAiwqAgaSzCoCBpLCBpLMKgIGki KQorwqAgwqAgwqAgKHJlZzpTSSBWTF9SRUdOVU0pCivCoCDCoCDCoCAocmVnOlNJIFZUWVBFX1JF R05VTSldIFVOU1BFQ19USF9WTFhNRU1fT1ApCisgwqAgKHVuc3BlYzpWSQorIMKgIMKgIFsobWF0 Y2hfb3BlcmFuZCAzICJwbW9kZV9yZWdfb3JfMF9vcGVyYW5kIsKgIMKgICIgckosIHJKLHJKLCBy SiIpCivCoCDCoCDCoCAobWVtOkJMSyAoc2NyYXRjaCkpCivCoCDCoCDCoCAobWF0Y2hfb3BlcmFu ZDpWSSA0ICJyZWdpc3Rlcl9vcGVyYW5kIiAiIHZyLCB2cix2ciwgdnIiKV0gVU5TUEVDX1RIX1ZM WE1FTV9PUCkKKyDCoCAobWF0Y2hfb3BlcmFuZDpWSSAyICJ2ZWN0b3JfbWVyZ2Vfb3BlcmFuZCIg wqAgwqAgwqAgIiB2dSwgdnUsIDAswqAgMCIpKSldCivCoCAiVEFSR0VUX1hUSEVBRFZFQ1RPUiIK K8KgICJ2bHg8dmxtZW1fb3BfYXR0cj4udlx0JTAsKCV6MyksJTQlcDEiCivCoCBbKHNldF9hdHRy ICJ0eXBlIiAidmxkdXgiKQorIMKgIChzZXRfYXR0ciAibW9kZSIgIjxNT0RFPiIpXSkKKworKGRl ZmluZV9pbnNuICJAcHJlZF9pbmRleGVkXzx2bG1lbV9vcmRlcl9hdHRyPnN0b3JlX3dpZHRoPHZs bWVtX29wX2F0dHI+PG1vZGU+IgorwqAgWyhzZXQgKG1lbTpCTEsgKHNjcmF0Y2gpKQorICh1bnNw ZWM6QkxLCisgwqAgWyh1bnNwZWM6PFZNPgorIMKgIMKgIFsobWF0Y2hfb3BlcmFuZDo8Vk0+IDAg InZlY3Rvcl9tYXNrX29wZXJhbmQiICJ2bVdjMSIpCivCoCDCoCDCoCAobWF0Y2hfb3BlcmFuZCA0 ICJ2ZWN0b3JfbGVuZ3RoX29wZXJhbmQiwqAgwqAgIiDCoCBySyIpCivCoCDCoCDCoCAobWF0Y2hf b3BlcmFuZCA1ICJjb25zdF9pbnRfb3BlcmFuZCIgIsKgIMKgIGkiKQorwqAgwqAgwqAgKHJlZzpT SSBWTF9SRUdOVU0pCivCoCDCoCDCoCAocmVnOlNJIFZUWVBFX1JFR05VTSldIFVOU1BFQ19USF9W U1hNRU1fT1ApCivCoCDCoCAobWF0Y2hfb3BlcmFuZCAxICJwbW9kZV9yZWdfb3JfMF9vcGVyYW5k IsKgIMKgIMKgICLCoCBySiIpCivCoCDCoCAobWF0Y2hfb3BlcmFuZDpWSSAyICJyZWdpc3Rlcl9v cGVyYW5kIiAiwqAgdnIiKQorwqAgwqAgKG1hdGNoX29wZXJhbmQ6VkkgMyAicmVnaXN0ZXJfb3Bl cmFuZCLCoCAiwqAgdnIiKV0gVU5TUEVDX1RIX1ZTWE1FTV9PUCkpXQorwqAgIlRBUkdFVF9YVEhF QURWRUNUT1IiCivCoCAidnM8dmxtZW1fb3JkZXJfYXR0cj54PHZsbWVtX29wX2F0dHI+LnZcdCUz LCglejEpLCUyJXAwIgorwqAgWyhzZXRfYXR0ciAidHlwZSIgInZzdHV4IikKKyDCoCAoc2V0X2F0 dHIgIm1vZGUiICI8TU9ERT4iKV0pCisKKyhkZWZpbmVfZXhwYW5kICJAcHJlZF90aF9leHRyYWN0 PG1vZGU+IgorwqAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6PFZFTD4gMCAicmVnaXN0ZXJfb3BlcmFu ZCIpCisgKHVuc3BlYzo8VkVMPgorIMKgIFsodmVjX3NlbGVjdDo8VkVMPgorwqAgwqAgwqAgKG1h dGNoX29wZXJhbmQ6Vl9WTFNJIDEgInJlZ2lzdGVyX29wZXJhbmQiKQorwqAgwqAgwqAgKHBhcmFs bGVsIFsobWF0Y2hfb3BlcmFuZDpESSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIpXSkpCivCoCDC oCAocmVnOlNJIFZUWVBFX1JFR05VTSldIFVOU1BFQ19WUFJFRElDQVRFKSldCivCoCAiVEFSR0VU X1hUSEVBRFZFQ1RPUiIKK3t9KQorCisoZGVmaW5lX2luc24gIipwcmVkX3RoX2V4dHJhY3Q8bW9k ZT4iCivCoCBbKHNldCAobWF0Y2hfb3BlcmFuZDo8VkVMPiAwICJyZWdpc3Rlcl9vcGVyYW5kIiDC oCAiPXIiKQorwqAgKHVuc3BlYzo8VkVMPgorwqAgwqAgWyh2ZWNfc2VsZWN0OjxWRUw+CisgwqAg wqAgwqAgKG1hdGNoX29wZXJhbmQ6Vl9WTFNJIDEgInJlZ2lzdGVyX29wZXJhbmQiICJ2ciIpCisg wqAgwqAgwqAgKHBhcmFsbGVsIFsobWF0Y2hfb3BlcmFuZDpESSAyICJyZWdpc3Rlcl9vcGVyYW5k IiAiciIpXSkpCisgwqAgwqAgKHJlZzpTSSBWVFlQRV9SRUdOVU0pXSBVTlNQRUNfVlBSRURJQ0FU RSkpXQorwqAgIlRBUkdFVF9YVEhFQURWRUNUT1IiCivCoCAidmV4dC54LnZcdCUwLCUxLCUyIgor wqAgWyhzZXRfYXR0ciAidHlwZSIgInZpbW92dngiKQorIMKgIChzZXRfYXR0ciAibW9kZSIgIjxN T0RFPiIpXSkKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYv eHRoZWFkdmVjdG9yL3ZsYi12c2IuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9y dnYveHRoZWFkdmVjdG9yL3ZsYi12c2IuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMC4uM2MxMmMxMjQ1OTcKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bGItdnNiLmMKQEAgLTAsMCArMSw2OCBA QAorLyogeyBkZy1kbyBjb21waWxlIH0gKi8KKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2MzJn Y3h0aGVhZHZlY3RvciAtbWFiaT1pbHAzMmQgLU8zIiB9ICovCisvKiB7IGRnLWZpbmFsIHsgY2hl Y2stZnVuY3Rpb24tYm9kaWVzICIqKiIgIiIgfSB9ICovCisjaW5jbHVkZSAicmlzY3ZfdGhfdmVj dG9yLmgiCisKKy8qCisqKiBmMToKKyoqIHRoLnZzZXRpdmxpXHR6ZXJvLDQsZTMyLG0xLHR1LG1h CisqKiB0aC52bGJcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkKKyoqIHRoLnZsYlwudlx0dlsw LTldKywwXChbYS14MC05XStcKQorKiogdGgudmFkZFwudnZcdHZbMC05XSssXHMqdlswLTldKyxc cyp2WzAtOV0rCisqKiB0aC52YWRkXC52dlx0dlswLTldKyxccyp2WzAtOV0rLFxzKnZbMC05XSsK KyoqIHRoLnZzYlwudlx0dlswLTldKywwXChbYS14MC05XStcKQorKiogcmV0CisqLwordm9pZCBm MSAodm9pZCAqIGluLCB2b2lkICpvdXQpCit7CivCoCDCoCB2aW50MzJtMV90IHYgPSBfX3Jpc2N2 X3RoX3ZsYl92X2kzMm0xIChpbiwgNCk7CivCoCDCoCB2aW50MzJtMV90IHYyID0gX19yaXNjdl90 aF92bGJfdl9pMzJtMV90dSAodiwgaW4sIDQpOworwqAgwqAgdmludDMybTFfdCB2MyA9IF9fcmlz Y3ZfdmFkZF92dl9pMzJtMSAodjIsIHYyLCA0KTsKK8KgIMKgIHZpbnQzMm0xX3QgdjQgPSBfX3Jp c2N2X3ZhZGRfdnZfaTMybTFfdHUgKHYzLCB2MiwgdjIsIDQpOworwqAgwqAgX19yaXNjdl90aF92 c2Jfdl9pMzJtMSAob3V0LCB2NCwgNCk7Cit9CisKKy8qCisqKiBmMjoKKyoqIHRoLnZzZXR2bGlc dFthLXgwLTldKyx6ZXJvLGU4LG1mNCx0YSxtYQorKiogdGgudmxtLnZcdHZbMC05XSssMFwoW2Et eDAtOV0rXCkKKyoqIHRoLnZzZXRpdmxpXHR6ZXJvLDQsZTMyLG0xLHRhLG1hCisqKiB0aC52bGIu dlx0dlswLTldKywwXChbYS14MC05XStcKSx2MC50CisqKiB0aC52YWRkXC52dlx0dlswLTldKyxc cyp2WzAtOV0rLFxzKnZbMC05XSsKKyoqIHRoLnZhZGRcLnZ2XHR2WzEtOV1bMC05XT8sXHMqdlsw LTldKyxccyp2WzAtOV0rLFxzKnYwLnQKKyoqIHRoLnZzYi52XHR2WzAtOV0rLDBcKFthLXgwLTld K1wpCisqKiByZXQKKyovCit2b2lkIGYyICh2b2lkICogaW4sIHZvaWQgKm91dCkKK3sKK8KgIMKg IHZib29sMzJfdCBtYXNrID0gKih2Ym9vbDMyX3QqKWluOworwqAgwqAgYXNtIHZvbGF0aWxlICgi Ijo6OiJtZW1vcnkiKTsKK8KgIMKgIHZpbnQzMm0xX3QgdiA9IF9fcmlzY3ZfdGhfdmxiX3ZfaTMy bTEgKGluLCA0KTsKK8KgIMKgIHZpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3ZsYl92X2kzMm0x X20gKG1hc2ssIGluLCA0KTsKK8KgIMKgIHZpbnQzMm0xX3QgdjMgPSBfX3Jpc2N2X3ZhZGRfdnZf aTMybTEgKHYyLCB2MiwgNCk7CivCoCDCoCB2aW50MzJtMV90IHY0ID0gX19yaXNjdl92YWRkX3Z2 X2kzMm0xX20gKG1hc2ssIHYzLCB2MywgNCk7CivCoCDCoCBfX3Jpc2N2X3RoX3ZzYl92X2kzMm0x IChvdXQsIHY0LCA0KTsKK30KKworLyoKKyoqIGYzOgorKiogdGgudnNldHZsaVx0W2EteDAtOV0r LHplcm8sZTgsbWY0LHRhLG1hCisqKiB0aC52bG0udlx0dlswLTldKywwXChbYS14MC05XStcKQor KiogdGgudnNldGl2bGlcdHplcm8sNCxlMzIsbTEsdHUsbXUKKyoqIHRoLnZsYlwudlx0dlswLTld KywwXChbYS14MC05XStcKQorKiogdGgudmxiLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCksdjAu dAorKiogdGgudmFkZFwudnZcdHZbMC05XSssXHMqdlswLTldKyxccyp2WzAtOV0rCisqKiB0aC52 YWRkXC52dlx0dlsxLTldWzAtOV0/LFxzKnZbMC05XSssXHMqdlswLTldKyxccyp2MC50CisqKiB0 aC52c2Iudlx0dlswLTldKywwXChbYS14MC05XStcKQorKiogcmV0CisqLwordm9pZCBmMyAodm9p ZCAqIGluLCB2b2lkICpvdXQpCit7CivCoCDCoCB2Ym9vbDMyX3QgbWFzayA9ICoodmJvb2wzMl90 KilpbjsKK8KgIMKgIGFzbSB2b2xhdGlsZSAoIiI6OjoibWVtb3J5Iik7CivCoCDCoCB2aW50MzJt MV90IHYgPSBfX3Jpc2N2X3RoX3ZsYl92X2kzMm0xIChpbiwgNCk7CivCoCDCoCB2aW50MzJtMV90 IHYyID0gX19yaXNjdl90aF92bGJfdl9pMzJtMV90dW11IChtYXNrLCB2LCBpbiwgNCk7CivCoCDC oCB2aW50MzJtMV90IHYzID0gX19yaXNjdl92YWRkX3Z2X2kzMm0xICh2MiwgdjIsIDQpOworwqAg wqAgdmludDMybTFfdCB2NCA9IF9fcmlzY3ZfdmFkZF92dl9pMzJtMV90dW11IChtYXNrLCB2Mywg djIsIHYyLCA0KTsKK8KgIMKgIF9fcmlzY3ZfdGhfdnNiX3ZfaTMybTEgKG91dCwgdjQsIDQpOwor fQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2 ZWN0b3IvdmxidS12c2IuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRo ZWFkdmVjdG9yL3ZsYnUtdnNiLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAuLjMwYmVmMzY5Mzc1Ci0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3IvdmxidS12c2IuYwpAQCAtMCwwICsxLDY4IEBACisv KiB7IGRnLWRvIGNvbXBpbGUgfSAqLworLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnYzMmdjeHRo ZWFkdmVjdG9yIC1tYWJpPWlscDMyZCAtTzMiIH0gKi8KKy8qIHsgZGctZmluYWwgeyBjaGVjay1m dW5jdGlvbi1ib2RpZXMgIioqIiAiIiB9IH0gKi8KKyNpbmNsdWRlICJyaXNjdl90aF92ZWN0b3Iu aCIKKworLyoKKyoqIGYxOgorKiogdGgudnNldGl2bGlcdHplcm8sNCxlMzIsbTEsdHUsbWEKKyoq IHRoLnZsYnVcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkKKyoqIHRoLnZsYnVcLnZcdHZbMC05 XSssMFwoW2EteDAtOV0rXCkKKyoqIHRoLnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05XSssXHMq LTE2CisqKiB0aC52YWRkXC52aVx0dlswLTldKyxccyp2WzAtOV0rLFxzKi0xNgorKiogdGgudnNi XC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiByZXQKKyovCit2b2lkIGYxICh2b2lkICog aW4sIHZvaWQgKm91dCwgdWludDMyX3QgeCkKK3sKK8KgIMKgIHZ1aW50MzJtMV90IHYgPSBfX3Jp c2N2X3RoX3ZsYnVfdl91MzJtMSAoaW4sIDQpOworwqAgwqAgdnVpbnQzMm0xX3QgdjIgPSBfX3Jp c2N2X3RoX3ZsYnVfdl91MzJtMV90dSAodiwgaW4sIDQpOworwqAgwqAgdnVpbnQzMm0xX3QgdjMg PSBfX3Jpc2N2X3ZhZGRfdnhfdTMybTEgKHYyLCAtMTYsIDQpOworwqAgwqAgdnVpbnQzMm0xX3Qg djQgPSBfX3Jpc2N2X3ZhZGRfdnhfdTMybTFfdHUgKHYzLCB2MiwgLTE2LCA0KTsKK8KgIMKgIF9f cmlzY3ZfdGhfdnNiX3ZfdTMybTEgKG91dCwgdjQsIDQpOworfQorCisvKgorKiogZjI6CisqKiB0 aC52c2V0dmxpXHRbYS14MC05XSssemVybyxlOCxtZjQsdGEsbWEKKyoqIHRoLnZsbS52XHR2WzAt OV0rLDBcKFthLXgwLTldK1wpCisqKiB0aC52c2V0aXZsaVx0emVybyw0LGUzMixtMSx0YSxtYQor KiogdGgudmxidS52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpLHYwLnQKKyoqIHRoLnZhZGRcLnZp XHR2WzAtOV0rLFxzKnZbMC05XSssXHMqLTE2CisqKiB0aC52YWRkXC52aVx0dlsxLTldWzAtOV0/ LFxzKnZbMC05XSssXHMqLTE2LFxzKnYwLnQKKyoqIHRoLnZzYi52XHR2WzAtOV0rLDBcKFthLXgw LTldK1wpCisqKiByZXQKKyovCit2b2lkIGYyICh2b2lkICogaW4sIHZvaWQgKm91dCwgdWludDMy X3QgeCkKK3sKK8KgIMKgIHZib29sMzJfdCBtYXNrID0gKih2Ym9vbDMyX3QqKWluOworwqAgwqAg YXNtIHZvbGF0aWxlICgiIjo6OiJtZW1vcnkiKTsKK8KgIMKgIHZ1aW50MzJtMV90IHYgPSBfX3Jp c2N2X3RoX3ZsYnVfdl91MzJtMSAoaW4sIDQpOworwqAgwqAgdnVpbnQzMm0xX3QgdjIgPSBfX3Jp c2N2X3RoX3ZsYnVfdl91MzJtMV9tIChtYXNrLCBpbiwgNCk7CivCoCDCoCB2dWludDMybTFfdCB2 MyA9IF9fcmlzY3ZfdmFkZF92eF91MzJtMSAodjIsIC0xNiwgNCk7CivCoCDCoCB2dWludDMybTFf dCB2NCA9IF9fcmlzY3ZfdmFkZF92eF91MzJtMV9tIChtYXNrLCB2MywgLTE2LCA0KTsKK8KgIMKg IF9fcmlzY3ZfdGhfdnNiX3ZfdTMybTEgKG91dCwgdjQsIDQpOworfQorCisvKgorKiogZjM6Cisq KiB0aC52c2V0dmxpXHRbYS14MC05XSssemVybyxlOCxtZjQsdGEsbWEKKyoqIHRoLnZsbS52XHR2 WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiB0aC52c2V0aXZsaVx0emVybyw0LGUzMixtMSx0dSxt dQorKiogdGgudmxidVwudlx0dlswLTldKywwXChbYS14MC05XStcKQorKiogdGgudmxidS52XHR2 WzAtOV0rLDBcKFthLXgwLTldK1wpLHYwLnQKKyoqIHRoLnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZb MC05XSssXHMqLTE2CisqKiB0aC52YWRkXC52aVx0dlsxLTldWzAtOV0/LFxzKnZbMC05XSssXHMq LTE2LFxzKnYwLnQKKyoqIHRoLnZzYi52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiByZXQK KyovCit2b2lkIGYzICh2b2lkICogaW4sIHZvaWQgKm91dCwgdWludDMyX3QgeCkKK3sKK8KgIMKg IHZib29sMzJfdCBtYXNrID0gKih2Ym9vbDMyX3QqKWluOworwqAgwqAgYXNtIHZvbGF0aWxlICgi Ijo6OiJtZW1vcnkiKTsKK8KgIMKgIHZ1aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3ZsYnVfdl91 MzJtMSAoaW4sIDQpOworwqAgwqAgdnVpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3ZsYnVfdl91 MzJtMV90dW11IChtYXNrLCB2LCBpbiwgNCk7CivCoCDCoCB2dWludDMybTFfdCB2MyA9IF9fcmlz Y3ZfdmFkZF92eF91MzJtMSAodjIsIC0xNiwgNCk7CivCoCDCoCB2dWludDMybTFfdCB2NCA9IF9f cmlzY3ZfdmFkZF92eF91MzJtMV90dW11IChtYXNrLCB2MywgdjIsIC0xNiwgNCk7CivCoCDCoCBf X3Jpc2N2X3RoX3ZzYl92X3UzMm0xIChvdXQsIHY0LCA0KTsKK30KZGlmZiAtLWdpdCBhL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3ZsaC12c2guYyBiL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3ZsaC12c2guYwpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2M4YjVjY2MxNmIKLS0tIC9k ZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZl Y3Rvci92bGgtdnNoLmMKQEAgLTAsMCArMSw2OCBAQAorLyogeyBkZy1kbyBjb21waWxlIH0gKi8K Ky8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2MzJnY3h0aGVhZHZlY3RvciAtbWFiaT1pbHAzMmQg LU8zIiB9ICovCisvKiB7IGRnLWZpbmFsIHsgY2hlY2stZnVuY3Rpb24tYm9kaWVzICIqKiIgIiIg fSB9ICovCisjaW5jbHVkZSAicmlzY3ZfdGhfdmVjdG9yLmgiCisKKy8qCisqKiBmMToKKyoqIHRo LnZzZXRpdmxpXHR6ZXJvLDQsZTMyLG0xLHR1LG1hCisqKiB0aC52bGhcLnZcdHZbMC05XSssMFwo W2EteDAtOV0rXCkKKyoqIHRoLnZsaFwudlx0dlswLTldKywwXChbYS14MC05XStcKQorKiogdGgu dmFkZFwudmlcdHZbMC05XSssXHMqdlswLTldKyxccyotMTYKKyoqIHRoLnZhZGRcLnZpXHR2WzAt OV0rLFxzKnZbMC05XSssXHMqLTE2CisqKiB0aC52c2hcLnZcdHZbMC05XSssMFwoW2EteDAtOV0r XCkKKyoqIHJldAorKi8KK3ZvaWQgZjEgKHZvaWQgKiBpbiwgdm9pZCAqb3V0LCBpbnQzMl90IHgp Cit7CivCoCDCoCB2aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3ZsaF92X2kzMm0xIChpbiwgNCk7 CivCoCDCoCB2aW50MzJtMV90IHYyID0gX19yaXNjdl90aF92bGhfdl9pMzJtMV90dSAodiwgaW4s IDQpOworwqAgwqAgdmludDMybTFfdCB2MyA9IF9fcmlzY3ZfdmFkZF92eF9pMzJtMSAodjIsIC0x NiwgNCk7CivCoCDCoCB2aW50MzJtMV90IHY0ID0gX19yaXNjdl92YWRkX3Z4X2kzMm0xX3R1ICh2 MywgdjIsIC0xNiwgNCk7CivCoCDCoCBfX3Jpc2N2X3RoX3ZzaF92X2kzMm0xIChvdXQsIHY0LCA0 KTsKK30KKworLyoKKyoqIGYyOgorKiogdGgudnNldHZsaVx0W2EteDAtOV0rLHplcm8sZTgsbWY0 LHRhLG1hCisqKiB0aC52bG0udlx0dlswLTldKywwXChbYS14MC05XStcKQorKiogdGgudnNldGl2 bGlcdHplcm8sNCxlMzIsbTEsdGEsbWEKKyoqIHRoLnZsaC52XHR2WzAtOV0rLDBcKFthLXgwLTld K1wpLHYwLnQKKyoqIHRoLnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05XSssXHMqLTE2CisqKiB0 aC52YWRkXC52aVx0dlsxLTldWzAtOV0/LFxzKnZbMC05XSssXHMqLTE2LFxzKnYwLnQKKyoqIHRo LnZzaC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiByZXQKKyovCit2b2lkIGYyICh2b2lk ICogaW4sIHZvaWQgKm91dCwgaW50MzJfdCB4KQoreworwqAgwqAgdmJvb2wzMl90IG1hc2sgPSAq KHZib29sMzJfdCopaW47CivCoCDCoCBhc20gdm9sYXRpbGUgKCIiOjo6Im1lbW9yeSIpOworwqAg wqAgdmludDMybTFfdCB2ID0gX19yaXNjdl90aF92bGhfdl9pMzJtMSAoaW4sIDQpOworwqAgwqAg dmludDMybTFfdCB2MiA9IF9fcmlzY3ZfdGhfdmxoX3ZfaTMybTFfbSAobWFzaywgaW4sIDQpOwor wqAgwqAgdmludDMybTFfdCB2MyA9IF9fcmlzY3ZfdmFkZF92eF9pMzJtMSAodjIsIC0xNiwgNCk7 CivCoCDCoCB2aW50MzJtMV90IHY0ID0gX19yaXNjdl92YWRkX3Z4X2kzMm0xX20gKG1hc2ssIHYz LCAtMTYsIDQpOworwqAgwqAgX19yaXNjdl90aF92c2hfdl9pMzJtMSAob3V0LCB2NCwgNCk7Cit9 CisKKy8qCisqKiBmMzoKKyoqIHRoLnZzZXR2bGlcdFthLXgwLTldKyx6ZXJvLGU4LG1mNCx0YSxt YQorKiogdGgudmxtLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkKKyoqIHRoLnZzZXRpdmxpXHR6 ZXJvLDQsZTMyLG0xLHR1LG11CisqKiB0aC52bGhcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkK KyoqIHRoLnZsaC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpLHYwLnQKKyoqIHRoLnZhZGRcLnZp XHR2WzAtOV0rLFxzKnZbMC05XSssXHMqLTE2CisqKiB0aC52YWRkXC52aVx0dlsxLTldWzAtOV0/ LFxzKnZbMC05XSssXHMqLTE2LFxzKnYwLnQKKyoqIHRoLnZzaC52XHR2WzAtOV0rLDBcKFthLXgw LTldK1wpCisqKiByZXQKKyovCit2b2lkIGYzICh2b2lkICogaW4sIHZvaWQgKm91dCwgaW50MzJf dCB4KQoreworwqAgwqAgdmJvb2wzMl90IG1hc2sgPSAqKHZib29sMzJfdCopaW47CivCoCDCoCBh c20gdm9sYXRpbGUgKCIiOjo6Im1lbW9yeSIpOworwqAgwqAgdmludDMybTFfdCB2ID0gX19yaXNj dl90aF92bGhfdl9pMzJtMSAoaW4sIDQpOworwqAgwqAgdmludDMybTFfdCB2MiA9IF9fcmlzY3Zf dGhfdmxoX3ZfaTMybTFfdHVtdSAobWFzaywgdiwgaW4sIDQpOworwqAgwqAgdmludDMybTFfdCB2 MyA9IF9fcmlzY3ZfdmFkZF92eF9pMzJtMSAodjIsIC0xNiwgNCk7CivCoCDCoCB2aW50MzJtMV90 IHY0ID0gX19yaXNjdl92YWRkX3Z4X2kzMm0xX3R1bXUgKG1hc2ssIHYzLCB2MiwgLTE2LCA0KTsK K8KgIMKgIF9fcmlzY3ZfdGhfdnNoX3ZfaTMybTEgKG91dCwgdjQsIDQpOworfQpkaWZmIC0tZ2l0 IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3IvdmxodS12 c2guYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3Zs aHUtdnNoLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmI3YzAwNDA0 ZjE4Ci0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2 di94dGhlYWR2ZWN0b3IvdmxodS12c2guYwpAQCAtMCwwICsxLDY4IEBACisvKiB7IGRnLWRvIGNv bXBpbGUgfSAqLworLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnYzMmdjeHRoZWFkdmVjdG9yIC1t YWJpPWlscDMyZCAtTzMiIH0gKi8KKy8qIHsgZGctZmluYWwgeyBjaGVjay1mdW5jdGlvbi1ib2Rp ZXMgIioqIiAiIiB9IH0gKi8KKyNpbmNsdWRlICJyaXNjdl90aF92ZWN0b3IuaCIKKworLyoKKyoq IGYxOgorKiogdGgudnNldGl2bGlcdHplcm8sNCxlMzIsbTEsdHUsbWEKKyoqIHRoLnZsaHVcLnZc dHZbMC05XSssMFwoW2EteDAtOV0rXCkKKyoqIHRoLnZsaHVcLnZcdHZbMC05XSssMFwoW2EteDAt OV0rXCkKKyoqIHRoLnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05XSssXHMqLTE2CisqKiB0aC52 YWRkXC52aVx0dlswLTldKyxccyp2WzAtOV0rLFxzKi0xNgorKiogdGgudnNoXC52XHR2WzAtOV0r LDBcKFthLXgwLTldK1wpCisqKiByZXQKKyovCit2b2lkIGYxICh2b2lkICogaW4sIHZvaWQgKm91 dCwgdWludDMyX3QgeCkKK3sKK8KgIMKgIHZ1aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3ZsaHVf dl91MzJtMSAoaW4sIDQpOworwqAgwqAgdnVpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3ZsaHVf dl91MzJtMV90dSAodiwgaW4sIDQpOworwqAgwqAgdnVpbnQzMm0xX3QgdjMgPSBfX3Jpc2N2X3Zh ZGRfdnhfdTMybTEgKHYyLCAtMTYsIDQpOworwqAgwqAgdnVpbnQzMm0xX3QgdjQgPSBfX3Jpc2N2 X3ZhZGRfdnhfdTMybTFfdHUgKHYzLCB2MiwgLTE2LCA0KTsKK8KgIMKgIF9fcmlzY3ZfdGhfdnNo X3ZfdTMybTEgKG91dCwgdjQsIDQpOworfQorCisvKgorKiogZjI6CisqKiB0aC52c2V0dmxpXHRb YS14MC05XSssemVybyxlOCxtZjQsdGEsbWEKKyoqIHRoLnZsbS52XHR2WzAtOV0rLDBcKFthLXgw LTldK1wpCisqKiB0aC52c2V0aXZsaVx0emVybyw0LGUzMixtMSx0YSxtYQorKiogdGgudmxodS52 XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpLHYwLnQKKyoqIHRoLnZhZGRcLnZpXHR2WzAtOV0rLFxz KnZbMC05XSssXHMqLTE2CisqKiB0aC52YWRkXC52aVx0dlsxLTldWzAtOV0/LFxzKnZbMC05XSss XHMqLTE2LFxzKnYwLnQKKyoqIHRoLnZzaC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiBy ZXQKKyovCit2b2lkIGYyICh2b2lkICogaW4sIHZvaWQgKm91dCwgdWludDMyX3QgeCkKK3sKK8Kg IMKgIHZib29sMzJfdCBtYXNrID0gKih2Ym9vbDMyX3QqKWluOworwqAgwqAgYXNtIHZvbGF0aWxl ICgiIjo6OiJtZW1vcnkiKTsKK8KgIMKgIHZ1aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3ZsaHVf dl91MzJtMSAoaW4sIDQpOworwqAgwqAgdnVpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3ZsaHVf dl91MzJtMV9tIChtYXNrLCBpbiwgNCk7CivCoCDCoCB2dWludDMybTFfdCB2MyA9IF9fcmlzY3Zf dmFkZF92eF91MzJtMSAodjIsIC0xNiwgNCk7CivCoCDCoCB2dWludDMybTFfdCB2NCA9IF9fcmlz Y3ZfdmFkZF92eF91MzJtMV9tIChtYXNrLCB2MywgLTE2LCA0KTsKK8KgIMKgIF9fcmlzY3ZfdGhf dnNoX3ZfdTMybTEgKG91dCwgdjQsIDQpOworfQorCisvKgorKiogZjM6CisqKiB0aC52c2V0dmxp XHRbYS14MC05XSssemVybyxlOCxtZjQsdGEsbWEKKyoqIHRoLnZsbS52XHR2WzAtOV0rLDBcKFth LXgwLTldK1wpCisqKiB0aC52c2V0aXZsaVx0emVybyw0LGUzMixtMSx0dSxtdQorKiogdGgudmxo dVwudlx0dlswLTldKywwXChbYS14MC05XStcKQorKiogdGgudmxodS52XHR2WzAtOV0rLDBcKFth LXgwLTldK1wpLHYwLnQKKyoqIHRoLnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05XSssXHMqLTE2 CisqKiB0aC52YWRkXC52aVx0dlsxLTldWzAtOV0/LFxzKnZbMC05XSssXHMqLTE2LFxzKnYwLnQK KyoqIHRoLnZzaC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiByZXQKKyovCit2b2lkIGYz ICh2b2lkICogaW4sIHZvaWQgKm91dCwgdWludDMyX3QgeCkKK3sKK8KgIMKgIHZib29sMzJfdCBt YXNrID0gKih2Ym9vbDMyX3QqKWluOworwqAgwqAgYXNtIHZvbGF0aWxlICgiIjo6OiJtZW1vcnki KTsKK8KgIMKgIHZ1aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3ZsaHVfdl91MzJtMSAoaW4sIDQp OworwqAgwqAgdnVpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3ZsaHVfdl91MzJtMV90dW11ICht YXNrLCB2LCBpbiwgNCk7CivCoCDCoCB2dWludDMybTFfdCB2MyA9IF9fcmlzY3ZfdmFkZF92eF91 MzJtMSAodjIsIC0xNiwgNCk7CivCoCDCoCB2dWludDMybTFfdCB2NCA9IF9fcmlzY3ZfdmFkZF92 eF91MzJtMV90dW11IChtYXNrLCB2MywgdjIsIC0xNiwgNCk7CivCoCDCoCBfX3Jpc2N2X3RoX3Zz aF92X3UzMm0xIChvdXQsIHY0LCA0KTsKK30KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3Zsdy12c3cuYyBiL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3Zsdy12c3cuYwpuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMTdhNTMwMTJhY2YKLS0tIC9kZXYvbnVsbAorKysg Yi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bHctdnN3 LmMKQEAgLTAsMCArMSw2OCBAQAorLyogeyBkZy1kbyBjb21waWxlIH0gKi8KKy8qIHsgZGctb3B0 aW9ucyAiLW1hcmNoPXJ2MzJnY3h0aGVhZHZlY3RvciAtbWFiaT1pbHAzMmQgLU8zIiB9ICovCisv KiB7IGRnLWZpbmFsIHsgY2hlY2stZnVuY3Rpb24tYm9kaWVzICIqKiIgIiIgfSB9ICovCisjaW5j bHVkZSAicmlzY3ZfdGhfdmVjdG9yLmgiCisKKy8qCisqKiBmMToKKyoqIHRoLnZzZXRpdmxpXHR6 ZXJvLDQsZTMyLG0xLHR1LG1hCisqKiB0aC52bHdcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkK KyoqIHRoLnZsd1wudlx0dlswLTldKywwXChbYS14MC05XStcKQorKiogdGgudmFkZFwudnhcdHZb MC05XSssXHMqdlswLTldKyxccypbYS14MC05XSsKKyoqIHRoLnZhZGRcLnZ4XHR2WzAtOV0rLFxz KnZbMC05XSssXHMqW2EteDAtOV0rCisqKiB0aC52c3dcLnZcdHZbMC05XSssMFwoW2EteDAtOV0r XCkKKyoqIHJldAorKi8KK3ZvaWQgZjEgKHZvaWQgKiBpbiwgdm9pZCAqb3V0LCBpbnQzMl90IHgp Cit7CivCoCDCoCB2aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3Zsd192X2kzMm0xIChpbiwgNCk7 CivCoCDCoCB2aW50MzJtMV90IHYyID0gX19yaXNjdl90aF92bHdfdl9pMzJtMV90dSAodiwgaW4s IDQpOworwqAgwqAgdmludDMybTFfdCB2MyA9IF9fcmlzY3ZfdmFkZF92eF9pMzJtMSAodjIsIHgs IDQpOworwqAgwqAgdmludDMybTFfdCB2NCA9IF9fcmlzY3ZfdmFkZF92eF9pMzJtMV90dSAodjMs IHYyLCB4LCA0KTsKK8KgIMKgIF9fcmlzY3ZfdGhfdnN3X3ZfaTMybTEgKG91dCwgdjQsIDQpOwor fQorCisvKgorKiogZjI6CisqKiB0aC52c2V0dmxpXHRbYS14MC05XSssemVybyxlOCxtZjQsdGEs bWEKKyoqIHRoLnZsbS52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiB0aC52c2V0aXZsaVx0 emVybyw0LGUzMixtMSx0YSxtYQorKiogdGgudmx3LnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCks djAudAorKiogdGgudmFkZFwudnhcdHZbMC05XSssXHMqdlswLTldKyxccypbYS14MC05XSsKKyoq IHRoLnZhZGRcLnZ4XHR2WzEtOV1bMC05XT8sXHMqdlswLTldKyxccypbYS14MC05XSssXHMqdjAu dAorKiogdGgudnN3LnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkKKyoqIHJldAorKi8KK3ZvaWQg ZjIgKHZvaWQgKiBpbiwgdm9pZCAqb3V0LCBpbnQzMl90IHgpCit7CivCoCDCoCB2Ym9vbDMyX3Qg bWFzayA9ICoodmJvb2wzMl90KilpbjsKK8KgIMKgIGFzbSB2b2xhdGlsZSAoIiI6OjoibWVtb3J5 Iik7CivCoCDCoCB2aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3Zsd192X2kzMm0xIChpbiwgNCk7 CivCoCDCoCB2aW50MzJtMV90IHYyID0gX19yaXNjdl90aF92bHdfdl9pMzJtMV9tIChtYXNrLCBp biwgNCk7CivCoCDCoCB2aW50MzJtMV90IHYzID0gX19yaXNjdl92YWRkX3Z4X2kzMm0xICh2Miwg eCwgNCk7CivCoCDCoCB2aW50MzJtMV90IHY0ID0gX19yaXNjdl92YWRkX3Z4X2kzMm0xX20gKG1h c2ssIHYzLCB4LCA0KTsKK8KgIMKgIF9fcmlzY3ZfdGhfdnN3X3ZfaTMybTEgKG91dCwgdjQsIDQp OworfQorCisvKgorKiogZjM6CisqKiB0aC52c2V0dmxpXHRbYS14MC05XSssemVybyxlOCxtZjQs dGEsbWEKKyoqIHRoLnZsbS52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiB0aC52c2V0aXZs aVx0emVybyw0LGUzMixtMSx0dSxtdQorKiogdGgudmx3XC52XHR2WzAtOV0rLDBcKFthLXgwLTld K1wpCisqKiB0aC52bHcudlx0dlswLTldKywwXChbYS14MC05XStcKSx2MC50CisqKiB0aC52YWRk XC52eFx0dlswLTldKyxccyp2WzAtOV0rLFxzKlthLXgwLTldKworKiogdGgudmFkZFwudnhcdHZb MS05XVswLTldPyxccyp2WzAtOV0rLFxzKlthLXgwLTldKyxccyp2MC50CisqKiB0aC52c3cudlx0 dlswLTldKywwXChbYS14MC05XStcKQorKiogcmV0CisqLwordm9pZCBmMyAodm9pZCAqIGluLCB2 b2lkICpvdXQsIGludDMyX3QgeCkKK3sKK8KgIMKgIHZib29sMzJfdCBtYXNrID0gKih2Ym9vbDMy X3QqKWluOworwqAgwqAgYXNtIHZvbGF0aWxlICgiIjo6OiJtZW1vcnkiKTsKK8KgIMKgIHZpbnQz Mm0xX3QgdiA9IF9fcmlzY3ZfdGhfdmx3X3ZfaTMybTEgKGluLCA0KTsKK8KgIMKgIHZpbnQzMm0x X3QgdjIgPSBfX3Jpc2N2X3RoX3Zsd192X2kzMm0xX3R1bXUgKG1hc2ssIHYsIGluLCA0KTsKK8Kg IMKgIHZpbnQzMm0xX3QgdjMgPSBfX3Jpc2N2X3ZhZGRfdnhfaTMybTEgKHYyLCB4LCA0KTsKK8Kg IMKgIHZpbnQzMm0xX3QgdjQgPSBfX3Jpc2N2X3ZhZGRfdnhfaTMybTFfdHVtdSAobWFzaywgdjMs IHYyLCB4LCA0KTsKK8KgIMKgIF9fcmlzY3ZfdGhfdnN3X3ZfaTMybTEgKG91dCwgdjQsIDQpOwor fQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2 ZWN0b3Ivdmx3dS12c3cuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRo ZWFkdmVjdG9yL3Zsd3UtdnN3LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAuLmIxODdjZmM4NTJiCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3Ivdmx3dS12c3cuYwpAQCAtMCwwICsxLDY4IEBACisv KiB7IGRnLWRvIGNvbXBpbGUgfSAqLworLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnYzMmdjeHRo ZWFkdmVjdG9yIC1tYWJpPWlscDMyZCAtTzMiIH0gKi8KKy8qIHsgZGctZmluYWwgeyBjaGVjay1m dW5jdGlvbi1ib2RpZXMgIioqIiAiIiB9IH0gKi8KKyNpbmNsdWRlICJyaXNjdl90aF92ZWN0b3Iu aCIKKworLyoKKyoqIGYxOgorKiogdGgudnNldGl2bGlcdHplcm8sNCxlMzIsbTEsdHUsbWEKKyoq IHRoLnZsd3VcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkKKyoqIHRoLnZsd3VcLnZcdHZbMC05 XSssMFwoW2EteDAtOV0rXCkKKyoqIHRoLnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05XSssXHMq LTE2CisqKiB0aC52YWRkXC52aVx0dlswLTldKyxccyp2WzAtOV0rLFxzKi0xNgorKiogdGgudnN3 XC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiByZXQKKyovCit2b2lkIGYxICh2b2lkICog aW4sIHZvaWQgKm91dCwgdWludDMyX3QgeCkKK3sKK8KgIMKgIHZ1aW50MzJtMV90IHYgPSBfX3Jp c2N2X3RoX3Zsd3Vfdl91MzJtMSAoaW4sIDQpOworwqAgwqAgdnVpbnQzMm0xX3QgdjIgPSBfX3Jp c2N2X3RoX3Zsd3Vfdl91MzJtMV90dSAodiwgaW4sIDQpOworwqAgwqAgdnVpbnQzMm0xX3QgdjMg PSBfX3Jpc2N2X3ZhZGRfdnhfdTMybTEgKHYyLCAtMTYsIDQpOworwqAgwqAgdnVpbnQzMm0xX3Qg djQgPSBfX3Jpc2N2X3ZhZGRfdnhfdTMybTFfdHUgKHYzLCB2MiwgLTE2LCA0KTsKK8KgIMKgIF9f cmlzY3ZfdGhfdnN3X3ZfdTMybTEgKG91dCwgdjQsIDQpOworfQorCisvKgorKiogZjI6CisqKiB0 aC52c2V0dmxpXHRbYS14MC05XSssemVybyxlOCxtZjQsdGEsbWEKKyoqIHRoLnZsbS52XHR2WzAt OV0rLDBcKFthLXgwLTldK1wpCisqKiB0aC52c2V0aXZsaVx0emVybyw0LGUzMixtMSx0YSxtYQor KiogdGgudmx3dS52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpLHYwLnQKKyoqIHRoLnZhZGRcLnZp XHR2WzAtOV0rLFxzKnZbMC05XSssXHMqLTE2CisqKiB0aC52YWRkXC52aVx0dlsxLTldWzAtOV0/ LFxzKnZbMC05XSssXHMqLTE2LFxzKnYwLnQKKyoqIHRoLnZzdy52XHR2WzAtOV0rLDBcKFthLXgw LTldK1wpCisqKiByZXQKKyovCit2b2lkIGYyICh2b2lkICogaW4sIHZvaWQgKm91dCwgdWludDMy X3QgeCkKK3sKK8KgIMKgIHZib29sMzJfdCBtYXNrID0gKih2Ym9vbDMyX3QqKWluOworwqAgwqAg YXNtIHZvbGF0aWxlICgiIjo6OiJtZW1vcnkiKTsKK8KgIMKgIHZ1aW50MzJtMV90IHYgPSBfX3Jp c2N2X3RoX3Zsd3Vfdl91MzJtMSAoaW4sIDQpOworwqAgwqAgdnVpbnQzMm0xX3QgdjIgPSBfX3Jp c2N2X3RoX3Zsd3Vfdl91MzJtMV9tIChtYXNrLCBpbiwgNCk7CivCoCDCoCB2dWludDMybTFfdCB2 MyA9IF9fcmlzY3ZfdmFkZF92eF91MzJtMSAodjIsIC0xNiwgNCk7CivCoCDCoCB2dWludDMybTFf dCB2NCA9IF9fcmlzY3ZfdmFkZF92eF91MzJtMV9tIChtYXNrLCB2MywgLTE2LCA0KTsKK8KgIMKg IF9fcmlzY3ZfdGhfdnN3X3ZfdTMybTEgKG91dCwgdjQsIDQpOworfQorCisvKgorKiogZjM6Cisq KiB0aC52c2V0dmxpXHRbYS14MC05XSssemVybyxlOCxtZjQsdGEsbWEKKyoqIHRoLnZsbS52XHR2 WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiB0aC52c2V0aXZsaVx0emVybyw0LGUzMixtMSx0dSxt dQorKiogdGgudmx3dVwudlx0dlswLTldKywwXChbYS14MC05XStcKQorKiogdGgudmx3dS52XHR2 WzAtOV0rLDBcKFthLXgwLTldK1wpLHYwLnQKKyoqIHRoLnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZb MC05XSssXHMqLTE2CisqKiB0aC52YWRkXC52aVx0dlsxLTldWzAtOV0/LFxzKnZbMC05XSssXHMq LTE2LFxzKnYwLnQKKyoqIHRoLnZzdy52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiByZXQK KyovCit2b2lkIGYzICh2b2lkICogaW4sIHZvaWQgKm91dCwgdWludDMyX3QgeCkKK3sKK8KgIMKg IHZib29sMzJfdCBtYXNrID0gKih2Ym9vbDMyX3QqKWluOworwqAgwqAgYXNtIHZvbGF0aWxlICgi Ijo6OiJtZW1vcnkiKTsKK8KgIMKgIHZ1aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3Zsd3Vfdl91 MzJtMSAoaW4sIDQpOworwqAgwqAgdnVpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3Zsd3Vfdl91 MzJtMV90dW11IChtYXNrLCB2LCBpbiwgNCk7CivCoCDCoCB2dWludDMybTFfdCB2MyA9IF9fcmlz Y3ZfdmFkZF92eF91MzJtMSAodjIsIC0xNiwgNCk7CivCoCDCoCB2dWludDMybTFfdCB2NCA9IF9f cmlzY3ZfdmFkZF92eF91MzJtMV90dW11IChtYXNrLCB2MywgdjIsIC0xNiwgNCk7CivCoCDCoCBf X3Jpc2N2X3RoX3Zzd192X3UzMm0xIChvdXQsIHY0LCA0KTsKK30KLS0gCjIuMTcuMQogCiAKwqAK wqAKCgo=