From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 86C0043B15 for ; Tue, 13 Dec 2022 02:43:08 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id A1A7168BE11; Tue, 13 Dec 2022 04:42:42 +0200 (EET) Received: from mail-pl1-f176.google.com (mail-pl1-f176.google.com [209.85.214.176]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5185668BDC5 for ; Tue, 13 Dec 2022 04:42:35 +0200 (EET) Received: by mail-pl1-f176.google.com with SMTP id d3so14120652plr.10 for ; Mon, 12 Dec 2022 18:42:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=SKMsS+Tv3UhamGfH6i7QB+vP1MJv+GSCSlrXaVl3rO0=; b=KrnZfqZyj32iynf56gylfR9hhKCcfFZz3LbCamu//h7bVYPaQELyQ/wGQR4Q6/ogx2 gWHPO8OMV0T2w8dyIOFkfnaDsbNs617i9uNZjcCedAt7e5qhCWHNQsVZE9z5+nKabO1V Z9gpmCBuMHCZGnynKs/prjzYGsJdgyBxNQMdoPDB767lfWeBAfxC2T8lz8jO316+eUDO jx+e280lAb6tNf7f97gCqj0/fXY5Si6R85rIIkQEKHr4UGEbiurCyCekpiPcCKkwcCrW VYmOUEgQZ6H68n/7/FGaQq3sqd/IoqepRVKuY2GOc1ZuqFrhb5Y7ivNq3itNCXEYPfvG HMOQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=SKMsS+Tv3UhamGfH6i7QB+vP1MJv+GSCSlrXaVl3rO0=; b=3UV0H2EM5I2lAZ75kKB7uesK+NCVIGH/aQss3QicWrRHcV0/iz7c0u6h8MXx7oXYbU G/xhvuN/cOOqV1YZvbsFIYPNxzVl5tNT7idydlHt83CfBrDmgble9rRf+yj67mZRacUs 67LHTVK7fGbC+ksP7fjeE5RYzM+6CfKFJsOXywPxQ0s9XC81wNCkPCj6sAVI5ZOQPjdl MibS0BSCMkQafuvGslwO9yROqCFa1J8eyrEkCCd1cdDFHN/kRDLXS0KljrWfzRGPxdDA x6M5kTW2h7ai3nkLqZzdVCHguaxsqqNxqD8IIkB6VtmqL34k8Rl2N9cZWw8LBbAedkMK EEsg== X-Gm-Message-State: ANoB5pmXs2ghAeZcUBPPOVcPmLVzb2bDp4cqkmnQrJVUEOxjhaXBkRqA P0dokgPvvISH301mhFJA8lt4j+Rm9nw= X-Google-Smtp-Source: AA0mqf44OY/x++aN42ylUVBrAO9bXdHgaDad8rtXAM4GkONBCAjVUb7GcXzcVfpaDaECn0uvKwguTg== X-Received: by 2002:a05:6a20:12cc:b0:9d:efbf:8151 with SMTP id v12-20020a056a2012cc00b0009defbf8151mr27826951pzg.26.1670899352969; Mon, 12 Dec 2022 18:42:32 -0800 (PST) Received: from localhost.localdomain (S0106bc4dfba470f3.vc.shawcable.net. [174.7.244.175]) by smtp.gmail.com with ESMTPSA id ju2-20020a170903428200b00186ae20e8dcsm7060105plb.271.2022.12.12.18.42.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 12 Dec 2022 18:42:32 -0800 (PST) From: mindmark@gmail.com To: ffmpeg-devel@ffmpeg.org Date: Mon, 12 Dec 2022 18:42:16 -0800 Message-Id: <20221213024216.259-4-mindmark@gmail.com> X-Mailer: git-send-email 2.31.1.windows.1 In-Reply-To: <20221213024216.259-1-mindmark@gmail.com> References: <20221213024216.259-1-mindmark@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v3 4/4] swscale/bswapdsp: copy over bswapdsp from avcodec X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Mark Reid Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: RnJvbTogTWFyayBSZWlkIDxtaW5kbWFya0BnbWFpbC5jb20+CgpUaGVyZSBhcmUgc29tZSBwbGFj ZXMgaW4gaW5wdXQuYyB0aGF0IGNvdWxkIHVzZSBpdCB0b28KYnV0IHRoZXkgYXJlbid0IGN1cnJl bnRseSBiZWluZyBwYXNzIHRoZSBTd3NDb250ZXh0Ci0tLQogbGlic3dzY2FsZS9NYWtlZmlsZSAg ICAgICAgICAgICAgfCAgIDEgKwogbGlic3dzY2FsZS9ic3dhcGRzcC5jICAgICAgICAgICAgfCAg NTkgKysrKysrKysrKysrCiBsaWJzd3NjYWxlL2Jzd2FwZHNwLmggICAgICAgICAgICB8ICA2NiAr KysrKysrKysrKysrCiBsaWJzd3NjYWxlL291dHB1dC5jICAgICAgICAgICAgICB8ICAzNiArKyst LS0tCiBsaWJzd3NjYWxlL3Jpc2N2L01ha2VmaWxlICAgICAgICB8ICAgNyArLQogbGlic3dzY2Fs ZS9yaXNjdi9ic3dhcGRzcF9pbml0LmMgfCAgNDYgKysrKysrKysrCiBsaWJzd3NjYWxlL3Jpc2N2 L2Jzd2FwZHNwX3J2Yi5TICB8ICA2OCArKysrKysrKysrKysrCiBsaWJzd3NjYWxlL3Jpc2N2L2Jz d2FwZHNwX3J2di5TICB8ICA2MiArKysrKysrKysrKysKIGxpYnN3c2NhbGUvc3dzY2FsZV9pbnRl cm5hbC5oICAgIHwgICAzICsKIGxpYnN3c2NhbGUvc3dzY2FsZV91bnNjYWxlZC5jICAgIHwgIDI2 ICsrLS0tCiBsaWJzd3NjYWxlL3V0aWxzLmMgICAgICAgICAgICAgICB8ICAgMiArCiBsaWJzd3Nj YWxlL3g4Ni9NYWtlZmlsZSAgICAgICAgICB8ICAgNiArLQogbGlic3dzY2FsZS94ODYvYnN3YXBk c3AuYXNtICAgICAgfCAxNTcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogbGlic3dz Y2FsZS94ODYvYnN3YXBkc3BfaW5pdC5jICAgfCAgNDAgKysrKysrKysKIDE0IGZpbGVzIGNoYW5n ZWQsIDUzNyBpbnNlcnRpb25zKCspLCA0MiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBsaWJzd3NjYWxlL2Jzd2FwZHNwLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWJzd3NjYWxlL2Jz d2FwZHNwLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWJzd3NjYWxlL3Jpc2N2L2Jzd2FwZHNwX2lu aXQuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYnN3c2NhbGUvcmlzY3YvYnN3YXBkc3BfcnZiLlMK IGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWJzd3NjYWxlL3Jpc2N2L2Jzd2FwZHNwX3J2di5TCiBjcmVh dGUgbW9kZSAxMDA2NDQgbGlic3dzY2FsZS94ODYvYnN3YXBkc3AuYXNtCiBjcmVhdGUgbW9kZSAx MDA2NDQgbGlic3dzY2FsZS94ODYvYnN3YXBkc3BfaW5pdC5jCgpkaWZmIC0tZ2l0IGEvbGlic3dz Y2FsZS9NYWtlZmlsZSBiL2xpYnN3c2NhbGUvTWFrZWZpbGUKaW5kZXggNzU3OTk3YjQwMS4uNGE5 MTY3MzljMyAxMDA2NDQKLS0tIGEvbGlic3dzY2FsZS9NYWtlZmlsZQorKysgYi9saWJzd3NjYWxl L01ha2VmaWxlCkBAIC02LDYgKzYsNyBAQCBIRUFERVJTID0gc3dzY2FsZS5oICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgdmVy c2lvbl9tYWpvci5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCiAKIE9CSlMgPSBhbHBoYWJsZW5kLm8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAorICAgICAgIGJzd2FwZHNwLm8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcCiAgICAgICAgaHNjYWxlLm8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKICAgICAgICBoc2NhbGVfZmFzdF9iaWxpbmVhci5vICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAogICAgICAgIGdhbW1hLm8gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCmRpZmYgLS1naXQgYS9saWJzd3NjYWxlL2Jzd2FwZHNwLmMgYi9saWJz d3NjYWxlL2Jzd2FwZHNwLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4u YTE2NGQ4OWE3NgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnN3c2NhbGUvYnN3YXBkc3AuYwpAQCAt MCwwICsxLDU5IEBACisvKgorICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgRkZtcGVnLgorICoKKyAq IEZGbXBlZyBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK KyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQ dWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogRkZtcGVnIGlzIGRpc3RyaWJ1dGVk IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkg V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hB TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH TlUKKyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisg KgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBH ZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhbG9uZyB3aXRoIEZGbXBlZzsgaWYgbm90LCB3cml0 ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4g U3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxIFVTQQorICovCisKKyNp bmNsdWRlIDxzdGRpbnQuaD4KKworI2luY2x1ZGUgImxpYmF2dXRpbC9hdHRyaWJ1dGVzLmgiCisj aW5jbHVkZSAibGliYXZ1dGlsL2Jzd2FwLmgiCisjaW5jbHVkZSAiYnN3YXBkc3AuaCIKKworc3Rh dGljIHZvaWQgYnN3YXAzMl9idWYodWludDMyX3QgKmRzdCwgY29uc3QgdWludDMyX3QgKnNyYywg aW50IGxlbikKK3sKKyAgICBpbnQgaTsKKworICAgIGZvciAoaSA9IDA7IGkgKyA4IDw9IGxlbjsg aSArPSA4KSB7CisgICAgICAgIGRzdFtpICsgMF0gPSBhdl9ic3dhcDMyKHNyY1tpICsgMF0pOwor ICAgICAgICBkc3RbaSArIDFdID0gYXZfYnN3YXAzMihzcmNbaSArIDFdKTsKKyAgICAgICAgZHN0 W2kgKyAyXSA9IGF2X2Jzd2FwMzIoc3JjW2kgKyAyXSk7CisgICAgICAgIGRzdFtpICsgM10gPSBh dl9ic3dhcDMyKHNyY1tpICsgM10pOworICAgICAgICBkc3RbaSArIDRdID0gYXZfYnN3YXAzMihz cmNbaSArIDRdKTsKKyAgICAgICAgZHN0W2kgKyA1XSA9IGF2X2Jzd2FwMzIoc3JjW2kgKyA1XSk7 CisgICAgICAgIGRzdFtpICsgNl0gPSBhdl9ic3dhcDMyKHNyY1tpICsgNl0pOworICAgICAgICBk c3RbaSArIDddID0gYXZfYnN3YXAzMihzcmNbaSArIDddKTsKKyAgICB9CisgICAgZm9yICg7IGkg PCBsZW47IGkrKykKKyAgICAgICAgZHN0W2kgKyAwXSA9IGF2X2Jzd2FwMzIoc3JjW2kgKyAwXSk7 Cit9CisKK3N0YXRpYyB2b2lkIGJzd2FwMTZfYnVmKHVpbnQxNl90ICpkc3QsIGNvbnN0IHVpbnQx Nl90ICpzcmMsIGludCBsZW4pCit7CisgICAgd2hpbGUgKGxlbi0tKQorICAgICAgICAqZHN0Kysg PSBhdl9ic3dhcDE2KCpzcmMrKyk7Cit9CisKK2F2X2NvbGQgdm9pZCBmZl9zd3NfYnN3YXBkc3Bf aW5pdChCc3dhcERTUENvbnRleHQgKmMpCit7CisgICAgYy0+YnN3YXAzMl9idWYgPSBic3dhcDMy X2J1ZjsKKyAgICBjLT5ic3dhcDE2X2J1ZiA9IGJzd2FwMTZfYnVmOworCisjaWYgQVJDSF9SSVND VgorICAgIGZmX3N3c19ic3dhcGRzcF9pbml0X3Jpc2N2KGMpOworI2VsaWYgQVJDSF9YODYKKyAg ICBmZl9zd3NfYnN3YXBkc3BfaW5pdF94ODYoYyk7CisjZW5kaWYKK30KZGlmZiAtLWdpdCBhL2xp YnN3c2NhbGUvYnN3YXBkc3AuaCBiL2xpYnN3c2NhbGUvYnN3YXBkc3AuaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5mMmUxMmQxYjhmCi0tLSAvZGV2L251bGwKKysrIGIv bGlic3dzY2FsZS9ic3dhcGRzcC5oCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBUaGlzIGZpbGUg aXMgcGFydCBvZiBGRm1wZWcuCisgKgorICogRkZtcGVnIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv ZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQg YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIuMSBv ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAq CisgKiBGRm1wZWcgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz ZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs aWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg YSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFsb25n IHdpdGggRkZtcGVnOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3Vu ZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1B IDAyMTEwLTEzMDEgVVNBCisgKi8KKworI2lmbmRlZiBTV1NDQUxFX0JTV0FQRFNQX0gKKyNkZWZp bmUgU1dTQ0FMRV9CU1dBUERTUF9ICisKKyNpbmNsdWRlIDxzdGRpbnQuaD4KKworLyoqCisgKiBA ZmlsZQorICogT3B0aW1pemVkIGJ1ZmZlciBieXRlIHN3YXBwaW5nIHJvdXRpbmVzLgorICovCisK K3R5cGVkZWYgc3RydWN0IEJzd2FwRFNQQ29udGV4dCB7CisgICAgLyoqCisgICAgICogQnl0ZSBz d2FwIDMyIGJpdCBlbGVtZW50cyBpbiBhIGJ1ZmZlci4KKworICAgICAqIEBwYXJhbSBkc3QgRGVz dGluYXRpb24gYnVmZmVyLgorICAgICAqIEBwYXJhbSBzcmMgU291cmNlIGJ1ZmZlciwgbWF5IGJl IHRoZSBzYW1lIGFzIGRzdC4KKyAgICAgKiBAcGFyYW0gbGVuIFRoZSBudW1iZXIgb2YgZWxlbWVu dHMgaW4gdGhlIGJ1ZmZlci4KKyAgICAgKgorICAgICAqLworICAgICAvKiogQHsgKi8KKyAgICB2 b2lkICgqYnN3YXAzMl9idWYpKHVpbnQzMl90ICpkc3QsIGNvbnN0IHVpbnQzMl90ICpzcmMsIGlu dCBsZW4pOworICAgIC8qKiBAfSAqLworCisgICAgLyoqCisgICAgICogQnl0ZSBzd2FwIDE2IGJp dCBlbGVtZW50cyBpbiBhIGJ1ZmZlci4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkc3QgRGVzdGlu YXRpb24gYnVmZmVyLgorICAgICAqIEBwYXJhbSBzcmMgU291cmNlIGJ1ZmZlciwgbWF5IGJlIHRo ZSBzYW1lIGFzIGRzdC4KKyAgICAgKiBAcGFyYW0gbGVuIFRoZSBudW1iZXIgb2YgZWxlbWVudHMg aW4gdGhlIGJ1ZmZlci4KKyAgICAgKgorICAgICAqLworICAgIC8qKiBAeyAqLworICAgIHZvaWQg KCpic3dhcDE2X2J1ZikodWludDE2X3QgKmRzdCwgY29uc3QgdWludDE2X3QgKnNyYywgaW50IGxl bik7CisgICAgLyoqIEB9ICovCit9IEJzd2FwRFNQQ29udGV4dDsKKworCisvKioKKyAqIEluaXRp YWxpemUgQnN3YXBEU1BDb250ZXh0IGZ1bmN0aW9uIHBvaW50ZXJzLgorICoKKyAqIEBwYXJhbSBj IHBvaW50ZXIgdG8gQnN3YXBEU1BDb250ZXh0CisgKgorICovCit2b2lkIGZmX3N3c19ic3dhcGRz cF9pbml0KEJzd2FwRFNQQ29udGV4dCAqYyk7Cit2b2lkIGZmX3N3c19ic3dhcGRzcF9pbml0X3Jp c2N2KEJzd2FwRFNQQ29udGV4dCAqYyk7Cit2b2lkIGZmX3N3c19ic3dhcGRzcF9pbml0X3g4NihC c3dhcERTUENvbnRleHQgKmMpOworCisjZW5kaWYgLyogU1dTQ0FMRV9CU1dBUERTUF9IICovCmRp ZmYgLS1naXQgYS9saWJzd3NjYWxlL291dHB1dC5jIGIvbGlic3dzY2FsZS9vdXRwdXQuYwppbmRl eCA1Yzg1YmZmOTcxLi5jZDQ0MDgxZTNkIDEwMDY0NAotLS0gYS9saWJzd3NjYWxlL291dHB1dC5j CisrKyBiL2xpYnN3c2NhbGUvb3V0cHV0LmMKQEAgLTIzMTMsMTMgKzIzMTMsMTEgQEAgeXV2Mmdi cnBfZnVsbF9YX2MoU3dzQ29udGV4dCAqYywgY29uc3QgaW50MTZfdCAqbHVtRmlsdGVyLAogICAg ICAgICB9CiAgICAgfQogICAgIGlmIChTSCAhPSAyMiAmJiAoIWlzQkUoYy0+ZHN0Rm9ybWF0KSkg IT0gKCFIQVZFX0JJR0VORElBTikpIHsKLSAgICAgICAgZm9yIChpID0gMDsgaSA8IGRzdFc7IGkr KykgewotICAgICAgICAgICAgZGVzdDE2WzBdW2ldID0gYXZfYnN3YXAxNihkZXN0MTZbMF1baV0p OwotICAgICAgICAgICAgZGVzdDE2WzFdW2ldID0gYXZfYnN3YXAxNihkZXN0MTZbMV1baV0pOwot ICAgICAgICAgICAgZGVzdDE2WzJdW2ldID0gYXZfYnN3YXAxNihkZXN0MTZbMl1baV0pOwotICAg ICAgICAgICAgaWYgKGhhc0FscGhhKQotICAgICAgICAgICAgICAgIGRlc3QxNlszXVtpXSA9IGF2 X2Jzd2FwMTYoZGVzdDE2WzNdW2ldKTsKLSAgICAgICAgfQorICAgICAgICBjLT5ic2RzcC5ic3dh cDE2X2J1ZihkZXN0MTZbMF0sIGRlc3QxNlswXSwgZHN0Vyk7CisgICAgICAgIGMtPmJzZHNwLmJz d2FwMTZfYnVmKGRlc3QxNlsxXSwgZGVzdDE2WzFdLCBkc3RXKTsKKyAgICAgICAgYy0+YnNkc3Au YnN3YXAxNl9idWYoZGVzdDE2WzJdLCBkZXN0MTZbMl0sIGRzdFcpOworICAgICAgICBpZiAoaGFz QWxwaGEpCisgICAgICAgICAgICBjLT5ic2RzcC5ic3dhcDE2X2J1ZihkZXN0MTZbM10sIGRlc3Qx NlszXSwgZHN0Vyk7CiAgICAgfQogfQogCkBAIC0yMzg1LDEzICsyMzgzLDExIEBAIHl1djJnYnJw MTZfZnVsbF9YX2MoU3dzQ29udGV4dCAqYywgY29uc3QgaW50MTZfdCAqbHVtRmlsdGVyLAogICAg ICAgICAgICAgZGVzdDE2WzNdW2ldID0gYXZfY2xpcF91aW50cDIoQSwgMzApID4+IDE0OwogICAg IH0KICAgICBpZiAoKCFpc0JFKGMtPmRzdEZvcm1hdCkpICE9ICghSEFWRV9CSUdFTkRJQU4pKSB7 Ci0gICAgICAgIGZvciAoaSA9IDA7IGkgPCBkc3RXOyBpKyspIHsKLSAgICAgICAgICAgIGRlc3Qx NlswXVtpXSA9IGF2X2Jzd2FwMTYoZGVzdDE2WzBdW2ldKTsKLSAgICAgICAgICAgIGRlc3QxNlsx XVtpXSA9IGF2X2Jzd2FwMTYoZGVzdDE2WzFdW2ldKTsKLSAgICAgICAgICAgIGRlc3QxNlsyXVtp XSA9IGF2X2Jzd2FwMTYoZGVzdDE2WzJdW2ldKTsKLSAgICAgICAgICAgIGlmIChoYXNBbHBoYSkK LSAgICAgICAgICAgICAgICBkZXN0MTZbM11baV0gPSBhdl9ic3dhcDE2KGRlc3QxNlszXVtpXSk7 Ci0gICAgICAgIH0KKyAgICAgICAgYy0+YnNkc3AuYnN3YXAxNl9idWYoZGVzdDE2WzBdLCBkZXN0 MTZbMF0sIGRzdFcpOworICAgICAgICBjLT5ic2RzcC5ic3dhcDE2X2J1ZihkZXN0MTZbMV0sIGRl c3QxNlsxXSwgZHN0Vyk7CisgICAgICAgIGMtPmJzZHNwLmJzd2FwMTZfYnVmKGRlc3QxNlsyXSwg ZGVzdDE2WzJdLCBkc3RXKTsKKyAgICAgICAgaWYgKGhhc0FscGhhKQorICAgICAgICAgICAgYy0+ YnNkc3AuYnN3YXAxNl9idWYoZGVzdDE2WzNdLCBkZXN0MTZbM10sIGRzdFcpOwogICAgIH0KIH0K IApAQCAtMjQ2MSwxMyArMjQ1NywxMSBAQCB5dXYyZ2JycGYzMl9mdWxsX1hfYyhTd3NDb250ZXh0 ICpjLCBjb25zdCBpbnQxNl90ICpsdW1GaWx0ZXIsCiAgICAgICAgICAgICBkZXN0MzJbM11baV0g PSBhdl9mbG9hdDJpbnQoZmxvYXRfbXVsdCAqIChmbG9hdCkoYXZfY2xpcF91aW50cDIoQSwgMzAp ID4+IDE0KSk7CiAgICAgfQogICAgIGlmICgoIWlzQkUoYy0+ZHN0Rm9ybWF0KSkgIT0gKCFIQVZF X0JJR0VORElBTikpIHsKLSAgICAgICAgZm9yIChpID0gMDsgaSA8IGRzdFc7IGkrKykgewotICAg ICAgICAgICAgZGVzdDMyWzBdW2ldID0gYXZfYnN3YXAzMihkZXN0MzJbMF1baV0pOwotICAgICAg ICAgICAgZGVzdDMyWzFdW2ldID0gYXZfYnN3YXAzMihkZXN0MzJbMV1baV0pOwotICAgICAgICAg ICAgZGVzdDMyWzJdW2ldID0gYXZfYnN3YXAzMihkZXN0MzJbMl1baV0pOwotICAgICAgICAgICAg aWYgKGhhc0FscGhhKQotICAgICAgICAgICAgICAgIGRlc3QzMlszXVtpXSA9IGF2X2Jzd2FwMzIo ZGVzdDMyWzNdW2ldKTsKLSAgICAgICAgfQorICAgICAgICBjLT5ic2RzcC5ic3dhcDMyX2J1Zihk ZXN0MzJbMF0sIGRlc3QzMlswXSwgZHN0Vyk7CisgICAgICAgIGMtPmJzZHNwLmJzd2FwMzJfYnVm KGRlc3QzMlsxXSwgZGVzdDMyWzFdLCBkc3RXKTsKKyAgICAgICAgYy0+YnNkc3AuYnN3YXAzMl9i dWYoZGVzdDMyWzJdLCBkZXN0MzJbMl0sIGRzdFcpOworICAgICAgICBpZiAoaGFzQWxwaGEpCisg ICAgICAgICAgICBjLT5ic2RzcC5ic3dhcDMyX2J1ZihkZXN0MzJbM10sIGRlc3QzMlszXSwgZHN0 Vyk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9saWJzd3NjYWxlL3Jpc2N2L01ha2VmaWxlIGIv bGlic3dzY2FsZS9yaXNjdi9NYWtlZmlsZQppbmRleCAyMTRkODc3YjYyLi5iYjMzZjJiNzA3IDEw MDY0NAotLS0gYS9saWJzd3NjYWxlL3Jpc2N2L01ha2VmaWxlCisrKyBiL2xpYnN3c2NhbGUvcmlz Y3YvTWFrZWZpbGUKQEAgLTEsMiArMSw1IEBACi1PQkpTICs9IHJpc2N2L3JnYjJyZ2IubwotUlZW LU9CSlMgKz0gcmlzY3YvcmdiMnJnYl9ydnYubworT0JKUyArPSByaXNjdi9ic3dhcGRzcF9pbml0 Lm8gXAorCQlyaXNjdi9ic3dhcGRzcF9ydmIubyBcCisgICAgICAgIHJpc2N2L3JnYjJyZ2Iubwor UlZWLU9CSlMgKz0gcmlzY3YvYnN3YXBkc3BfcnZ2Lm8gXAorICAgICAgICAgICAgcmlzY3Yvcmdi MnJnYl9ydnYubwpkaWZmIC0tZ2l0IGEvbGlic3dzY2FsZS9yaXNjdi9ic3dhcGRzcF9pbml0LmMg Yi9saWJzd3NjYWxlL3Jpc2N2L2Jzd2FwZHNwX2luaXQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwLi45ZmVkY2RlM2ZhCi0tLSAvZGV2L251bGwKKysrIGIvbGlic3dzY2Fs ZS9yaXNjdi9ic3dhcGRzcF9pbml0LmMKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdo dCDCqSAyMDIyIFLDqW1pIERlbmlzLUNvdXJtb250LgorICoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0 IG9mIEZGbXBlZy4KKyAqCisgKiBGRm1wZWcgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp c3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH TlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMi4xIG9mIHRoZSBM aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIEZG bXBlZyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor ICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy cmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm b3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg b2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYWxvbmcgd2l0aCBG Rm1wZWc7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24s IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAt MTMwMSBVU0EKKyAqLworCisjaW5jbHVkZSA8c3RkaW50Lmg+CisKKyNpbmNsdWRlICJjb25maWcu aCIKKyNpbmNsdWRlICJsaWJhdnV0aWwvYXR0cmlidXRlcy5oIgorI2luY2x1ZGUgImxpYmF2dXRp bC9jcHUuaCIKKyNpbmNsdWRlICJsaWJzd3NjYWxlL2Jzd2FwZHNwLmgiCisKK3ZvaWQgZmZfc3dz X2Jzd2FwMzJfYnVmX3J2Yih1aW50MzJfdCAqZHN0LCBjb25zdCB1aW50MzJfdCAqc3JjLCBpbnQg bGVuKTsKK3ZvaWQgZmZfc3dzX2Jzd2FwMzJfYnVmX3J2dih1aW50MzJfdCAqZHN0LCBjb25zdCB1 aW50MzJfdCAqc3JjLCBpbnQgbGVuKTsKK3ZvaWQgZmZfc3dzX2Jzd2FwMTZfYnVmX3J2dih1aW50 MTZfdCAqZHN0LCBjb25zdCB1aW50MTZfdCAqc3JjLCBpbnQgbGVuKTsKKworYXZfY29sZCB2b2lk IGZmX3N3c19ic3dhcGRzcF9pbml0X3Jpc2N2KEJzd2FwRFNQQ29udGV4dCAqYykKK3sKKyAgICBp bnQgY3B1X2ZsYWdzID0gYXZfZ2V0X2NwdV9mbGFncygpOworCisjaWYgKF9fcmlzY3ZfeGxlbiA+ PSA2NCkKKyAgICBpZiAoY3B1X2ZsYWdzICYgQVZfQ1BVX0ZMQUdfUlZCX0JBU0lDKQorICAgICAg ICBjLT5ic3dhcDMyX2J1ZiA9IGZmX3N3c19ic3dhcDMyX2J1Zl9ydmI7CisjZW5kaWYKKyNpZiBI QVZFX1JWVgorICAgIGlmIChjcHVfZmxhZ3MgJiBBVl9DUFVfRkxBR19SVlZfSTMyKSB7CisgICAg ICAgIGMtPmJzd2FwMzJfYnVmID0gZmZfc3dzX2Jzd2FwMzJfYnVmX3J2djsKKyAgICAgICAgYy0+ YnN3YXAxNl9idWYgPSBmZl9zd3NfYnN3YXAxNl9idWZfcnZ2OworICAgIH0KKyNlbmRpZgorfQpk aWZmIC0tZ2l0IGEvbGlic3dzY2FsZS9yaXNjdi9ic3dhcGRzcF9ydmIuUyBiL2xpYnN3c2NhbGUv cmlzY3YvYnN3YXBkc3BfcnZiLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MC4uOTJlZGJjZTdjZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnN3c2NhbGUvcmlzY3YvYnN3YXBk c3BfcnZiLlMKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCDCqSAyMDIyIFLDqW1p IERlbmlzLUNvdXJtb250LgorICoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEZGbXBlZy4KKyAq CisgKiBGRm1wZWcgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k L29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVy YWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIEZGbXBlZyBpcyBkaXN0cmli dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQg QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1F UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0 aGUgR05VCisgKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz LgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNz ZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYWxvbmcgd2l0aCBGRm1wZWc7IGlmIG5vdCwg d3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r bGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EKKyAqLwor CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAibGliYXZ1dGlsL3Jpc2N2L2FzbS5TIgor CisjaWYgKF9fcmlzY3ZfeGxlbiA+PSA2NCkKK2Z1bmMgZmZfc3dzX2Jzd2FwMzJfYnVmX3J2Yiwg emJiCisgICAgICAgIGFuZGkgICAgdDAsIGExLCA0CisgICAgICAgIGJlcXogICAgdDAsIDFmCisg ICAgICAgIC8qIEFsaWduIGExIChpbnB1dCkgdG8gNjQtYml0ICovCisgICAgICAgIGx3dSAgICAg dDAsIChhMSkKKyAgICAgICAgYWRkaSAgICBhMCwgYTAsIDQKKyAgICAgICAgcmV2OCAgICB0MCwg dDAKKyAgICAgICAgYWRkaSAgICBhMiwgYTIsIC0xCisgICAgICAgIHNybGkgICAgdDAsIHQwLCBf X3Jpc2N2X3hsZW4gLSAzMgorICAgICAgICBhZGRpICAgIGExLCBhMSwgNAorICAgICAgICBzdyAg ICAgIHQwLCAtNChhMCkKKzE6CisgICAgICAgIGFuZGkgICAgYTMsIGEyLCAtMgorICAgICAgICBz aDJhZGQgIGEyLCBhMiwgYTAKKyAgICAgICAgYmVxeiAgICBhMywgM2YKKyAgICAgICAgc2gyYWRk ICBhMywgYTMsIGEwCisyOiAgICAgIC8qIDIgZWxlbWVudHMgKDY0IGJpdHMpIGF0IGEgdGltZSBv biBhIDY0LWJpdCBib3VuZGFyeSAqLworICAgICAgICBsZCAgICAgIHQwLCAgKGExKQorICAgICAg ICBhZGRpICAgIGEwLCBhMCwgOAorICAgICAgICByZXY4ICAgIHQwLCB0MAorI2lmIChfX3Jpc2N2 X3hsZW4gPT0gNjQpCisgICAgICAgIHNybGkgICAgdDIsIHQwLCAzMgorICAgICAgICBzdyAgICAg IHQwLCAtNChhMCkKKyNlbHNlCisgICAgICAgIHNybGkgICAgdDEsIHQwLCBfX3Jpc2N2X3hsZW4g LSA2NAorICAgICAgICBzcmxpICAgIHQyLCB0MCwgX19yaXNjdl94bGVuIC0gMzIKKyAgICAgICAg c3cgICAgICB0MSwgLTQoYTApCisjZW5kaWYKKyAgICAgICAgYWRkaSAgICBhMSwgYTEsIDgKKyAg ICAgICAgc3cgICAgICB0MiwgLTgoYTApCisgICAgICAgIGJuZSAgICAgYTAsIGEzLCAyYgorMzoK KyAgICAgICAgYmVxICAgICBhMCwgYTIsIDVmCis0OiAgICAgIC8qIFByb2Nlc3MgbGFzdCBlbGVt ZW50ICovCisgICAgICAgIGx3dSAgICAgdDAsIChhMSkKKyAgICAgICAgYWRkaSAgICBhMCwgYTAs IDQKKyAgICAgICAgcmV2OCAgICB0MCwgdDAKKyAgICAgICAgYWRkaSAgICBhMSwgYTEsIDQKKyAg ICAgICAgc3JsaSAgICB0MCwgdDAsIF9fcmlzY3ZfeGxlbiAtIDMyCisgICAgICAgIHN3ICAgICAg dDAsIC00KGEwKQorNToKKyAgICAgICAgcmV0CitlbmRmdW5jCisjZW5kaWYKZGlmZiAtLWdpdCBh L2xpYnN3c2NhbGUvcmlzY3YvYnN3YXBkc3BfcnZ2LlMgYi9saWJzd3NjYWxlL3Jpc2N2L2Jzd2Fw ZHNwX3J2di5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjkyM2NiOWJj OWQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJzd3NjYWxlL3Jpc2N2L2Jzd2FwZHNwX3J2di5TCkBA IC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgwqkgMjAyMiBSw6ltaSBEZW5pcy1Db3Vy bW9udC4KKyAqCisgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBGRm1wZWcuCisgKgorICogRkZtcGVn IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9k aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwor ICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg ZWl0aGVyCisgKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBGRm1wZWcgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJ VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICog TGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZ b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwg UHVibGljCisgKiBMaWNlbnNlIGFsb25nIHdpdGggRkZtcGVnOyBpZiBub3QsIHdyaXRlIHRvIHRo ZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQs IEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEgVVNBCisgKi8KKworI2luY2x1ZGUg ImNvbmZpZy5oIgorI2luY2x1ZGUgImxpYmF2dXRpbC9yaXNjdi9hc20uUyIKKworZnVuYyBmZl9z d3NfYnN3YXAzMl9idWZfcnZ2LCB6dmUzMngKKyAgICAgICAgbGkgICAgICB0NCwgNAorICAgICAg ICBhZGRpICAgIHQxLCBhMCwgMQorICAgICAgICBhZGRpICAgIHQyLCBhMCwgMgorICAgICAgICBh ZGRpICAgIHQzLCBhMCwgMworMToKKyAgICAgICAgdnNldHZsaSAgICB0MCwgYTIsIGU4LCBtMSwg dGEsIG1hCisgICAgICAgIHZsc2VnNGU4LnYgdjgsIChhMSkKKyAgICAgICAgc3ViICAgICAgICBh MiwgYTIsIHQwCisgICAgICAgIHNoMmFkZCAgICAgYTEsIHQwLCBhMQorICAgICAgICB2c3NlOC52 ICAgIHY4LCAodDMpLCB0NAorICAgICAgICBzaDJhZGQgICAgIHQzLCB0MCwgdDMKKyAgICAgICAg dnNzZTgudiAgICB2OSwgKHQyKSwgdDQKKyAgICAgICAgc2gyYWRkICAgICB0MiwgdDAsIHQyCisg ICAgICAgIHZzc2U4LnYgICAgdjEwLCAodDEpLCB0NAorICAgICAgICBzaDJhZGQgICAgIHQxLCB0 MCwgdDEKKyAgICAgICAgdnNzZTgudiAgICB2MTEsIChhMCksIHQ0CisgICAgICAgIHNoMmFkZCAg ICAgYTAsIHQwLCBhMAorICAgICAgICBibmV6ICAgICAgIGEyLCAxYgorCisgICAgICAgIHJldAor ZW5kZnVuYworCitmdW5jIGZmX3N3c19ic3dhcDE2X2J1Zl9ydnYsIHp2ZTMyeAorICAgICAgICBs aSAgICAgIHQyLCAyCisgICAgICAgIGFkZGkgICAgdDEsIGEwLCAxCisxOgorICAgICAgICB2c2V0 dmxpICAgIHQwLCBhMiwgZTgsIG0xLCB0YSwgbWEKKyAgICAgICAgdmxzZWcyZTgudiB2OCwgKGEx KQorICAgICAgICBzdWIgICAgICAgIGEyLCBhMiwgdDAKKyAgICAgICAgc2gxYWRkICAgICBhMSwg dDAsIGExCisgICAgICAgIHZzc2U4LnYgICAgdjgsICh0MSksIHQyCisgICAgICAgIHNoMWFkZCAg ICAgdDEsIHQwLCB0MQorICAgICAgICB2c3NlOC52ICAgIHY5LCAoYTApLCB0MgorICAgICAgICBz aDFhZGQgICAgIGEwLCB0MCwgYTAKKyAgICAgICAgYm5leiAgICAgICBhMiwgMWIKKworICAgICAg ICByZXQKK2VuZGZ1bmMKZGlmZiAtLWdpdCBhL2xpYnN3c2NhbGUvc3dzY2FsZV9pbnRlcm5hbC5o IGIvbGlic3dzY2FsZS9zd3NjYWxlX2ludGVybmFsLmgKaW5kZXggYWJlZWJiYjAwMi4uMzBjZTQ5 MDdjYyAxMDA2NDQKLS0tIGEvbGlic3dzY2FsZS9zd3NjYWxlX2ludGVybmFsLmgKKysrIGIvbGli c3dzY2FsZS9zd3NjYWxlX2ludGVybmFsLmgKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJs aWJhdnV0aWwvc2xpY2V0aHJlYWQuaCIKICNpbmNsdWRlICJsaWJhdnV0aWwvcHBjL3V0aWxfYWx0 aXZlYy5oIgogI2luY2x1ZGUgImxpYmF2dXRpbC9oYWxmMmZsb2F0LmgiCisjaW5jbHVkZSAiYnN3 YXBkc3AuaCIKIAogI2RlZmluZSBTVFIocykgQVZfVE9TVFJJTkcocykgLy8gQVZfU1RSSU5HSUZZ IGlzIHRvbyBsb25nCiAKQEAgLTY4Miw2ICs2ODMsOCBAQCB0eXBlZGVmIHN0cnVjdCBTd3NDb250 ZXh0IHsKICAgICBhdG9taWNfaW50ICAgZGF0YV91bmFsaWduZWRfd2FybmVkOwogCiAgICAgSGFs ZjJGbG9hdFRhYmxlcyAqaDJmX3RhYmxlczsKKworICAgIEJzd2FwRFNQQ29udGV4dCBic2RzcDsK IH0gU3dzQ29udGV4dDsKIC8vRklYTUUgY2hlY2sgaW5pdCAod2hlcmUgMCkKIApkaWZmIC0tZ2l0 IGEvbGlic3dzY2FsZS9zd3NjYWxlX3Vuc2NhbGVkLmMgYi9saWJzd3NjYWxlL3N3c2NhbGVfdW5z Y2FsZWQuYwppbmRleCA5YWYyZTdlY2MzLi4wMDEwYWIyNGQxIDEwMDY0NAotLS0gYS9saWJzd3Nj YWxlL3N3c2NhbGVfdW5zY2FsZWQuYworKysgYi9saWJzd3NjYWxlL3N3c2NhbGVfdW5zY2FsZWQu YwpAQCAtNDY4LDcgKzQ2OCw3IEBAIHN0YXRpYyBpbnQgYnN3YXBfMTZicGMoU3dzQ29udGV4dCAq YywgY29uc3QgdWludDhfdCAqc3JjW10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp bnQgc3JjU3RyaWRlW10sIGludCBzcmNTbGljZVksIGludCBzcmNTbGljZUgsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1aW50OF90ICpkc3RbXSwgaW50IGRzdFN0cmlkZVtdKQogewot ICAgIGludCBpLCBqLCBwOworICAgIGludCBpLCBwOwogCiAgICAgZm9yIChwID0gMDsgcCA8IDQ7 IHArKykgewogICAgICAgICBpbnQgc3Jjc3RyID0gc3JjU3RyaWRlW3BdIC8gMjsKQEAgLTQ4MCw5 ICs0ODAsNyBAQCBzdGF0aWMgaW50IGJzd2FwXzE2YnBjKFN3c0NvbnRleHQgKmMsIGNvbnN0IHVp bnQ4X3QgKnNyY1tdLAogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIGRzdFB0ciArPSAo c3JjU2xpY2VZID4+IGMtPmNockRzdFZTdWJTYW1wbGUpICogZHN0c3RyOwogICAgICAgICBmb3Ig KGkgPSAwOyBpIDwgKHNyY1NsaWNlSCA+PiBjLT5jaHJEc3RWU3ViU2FtcGxlKTsgaSsrKSB7Ci0g ICAgICAgICAgICBmb3IgKGogPSAwOyBqIDwgbWluX3N0cmlkZTsgaisrKSB7Ci0gICAgICAgICAg ICAgICAgZHN0UHRyW2pdID0gYXZfYnN3YXAxNihzcmNQdHJbal0pOwotICAgICAgICAgICAgfQor ICAgICAgICAgICAgYy0+YnNkc3AuYnN3YXAxNl9idWYoZHN0UHRyLCBzcmNQdHIsIG1pbl9zdHJp ZGUpOwogICAgICAgICAgICAgc3JjUHRyICs9IHNyY3N0cjsKICAgICAgICAgICAgIGRzdFB0ciAr PSBkc3RzdHI7CiAgICAgICAgIH0KQEAgLTQ5NSw3ICs0OTMsNyBAQCBzdGF0aWMgaW50IGJzd2Fw XzMyYnBjKFN3c0NvbnRleHQgKmMsIGNvbnN0IHVpbnQ4X3QgKnNyY1tdLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaW50IHNyY1N0cmlkZVtdLCBpbnQgc3JjU2xpY2VZLCBpbnQgc3Jj U2xpY2VILAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCAqZHN0W10sIGlu dCBkc3RTdHJpZGVbXSkKIHsKLSAgICBpbnQgaSwgaiwgcDsKKyAgICBpbnQgaSwgcDsKIAogICAg IGZvciAocCA9IDA7IHAgPCA0OyBwKyspIHsKICAgICAgICAgaW50IHNyY3N0ciA9IHNyY1N0cmlk ZVtwXSAvIDQ7CkBAIC01MDcsOSArNTA1LDcgQEAgc3RhdGljIGludCBic3dhcF8zMmJwYyhTd3ND b250ZXh0ICpjLCBjb25zdCB1aW50OF90ICpzcmNbXSwKICAgICAgICAgICAgIGNvbnRpbnVlOwog ICAgICAgICBkc3RQdHIgKz0gKHNyY1NsaWNlWSA+PiBjLT5jaHJEc3RWU3ViU2FtcGxlKSAqIGRz dHN0cjsKICAgICAgICAgZm9yIChpID0gMDsgaSA8IChzcmNTbGljZUggPj4gYy0+Y2hyRHN0VlN1 YlNhbXBsZSk7IGkrKykgewotICAgICAgICAgICAgZm9yIChqID0gMDsgaiA8IG1pbl9zdHJpZGU7 IGorKykgewotICAgICAgICAgICAgICAgIGRzdFB0cltqXSA9IGF2X2Jzd2FwMzIoc3JjUHRyW2pd KTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGMtPmJzZHNwLmJzd2FwMzJfYnVmKGRzdFB0 ciwgc3JjUHRyLCBtaW5fc3RyaWRlKTsKICAgICAgICAgICAgIHNyY1B0ciArPSBzcmNzdHI7CiAg ICAgICAgICAgICBkc3RQdHIgKz0gZHN0c3RyOwogICAgICAgICB9CkBAIC0xNjE2LDE5ICsxNjEy LDE3IEBAIHN0YXRpYyBpbnQgcmdiVG9SZ2JXcmFwcGVyKFN3c0NvbnRleHQgKmMsIGNvbnN0IHVp bnQ4X3QgKnNyY1tdLCBpbnQgc3JjU3RyaWRlW10sCiAgICAgICAgICAgICBjb252KHNyY1B0ciwg ZHN0UHRyICsgZHN0U3RyaWRlWzBdICogc3JjU2xpY2VZLAogICAgICAgICAgICAgICAgICAoc3Jj U2xpY2VIIC0gMSkgKiBzcmNTdHJpZGVbMF0gKyBjLT5zcmNXICogc3JjQnBwKTsKICAgICAgICAg ZWxzZSB7Ci0gICAgICAgICAgICBpbnQgaSwgajsKKyAgICAgICAgICAgIGludCBpOwogICAgICAg ICAgICAgZHN0UHRyICs9IGRzdFN0cmlkZVswXSAqIHNyY1NsaWNlWTsKIAogICAgICAgICAgICAg Zm9yIChpID0gMDsgaSA8IHNyY1NsaWNlSDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgaWYoc3Jj X2Jzd2FwKSB7Ci0gICAgICAgICAgICAgICAgICAgIGZvcihqPTA7IGo8Yy0+c3JjVzsgaisrKQot ICAgICAgICAgICAgICAgICAgICAgICAgKCh1aW50MTZfdCopYy0+Zm9ybWF0Q29udkJ1ZmZlcilb al0gPSBhdl9ic3dhcDE2KCgodWludDE2X3QqKXNyY1B0cilbal0pOworICAgICAgICAgICAgICAg ICAgICBjLT5ic2RzcC5ic3dhcDE2X2J1ZigodWludDE2X3QqKWMtPmZvcm1hdENvbnZCdWZmZXIs ICh1aW50MTZfdCopc3JjUHRyLCBjLT5zcmNXKTsKICAgICAgICAgICAgICAgICAgICAgY29udihj LT5mb3JtYXRDb252QnVmZmVyLCBkc3RQdHIsIGMtPnNyY1cgKiBzcmNCcHApOwogICAgICAgICAg ICAgICAgIH1lbHNlCiAgICAgICAgICAgICAgICAgICAgIGNvbnYoc3JjUHRyLCBkc3RQdHIsIGMt PnNyY1cgKiBzcmNCcHApOwogICAgICAgICAgICAgICAgIGlmKGRzdF9ic3dhcCkKLSAgICAgICAg ICAgICAgICAgICAgZm9yKGo9MDsgajxjLT5zcmNXOyBqKyspCi0gICAgICAgICAgICAgICAgICAg ICAgICAoKHVpbnQxNl90Kilkc3RQdHIpW2pdID0gYXZfYnN3YXAxNigoKHVpbnQxNl90Kilkc3RQ dHIpW2pdKTsKKyAgICAgICAgICAgICAgICAgICAgYy0+YnNkc3AuYnN3YXAxNl9idWYoKHVpbnQx Nl90Kilkc3RQdHIsICh1aW50MTZfdCopZHN0UHRyLCBjLT5zcmNXKTsKICAgICAgICAgICAgICAg ICBzcmNQdHIgKz0gc3JjU3RyaWRlWzBdOwogICAgICAgICAgICAgICAgIGRzdFB0ciArPSBkc3RT dHJpZGVbMF07CiAgICAgICAgICAgICB9CkBAIC0xOTMyLDE2ICsxOTI2LDE0IEBAIHN0YXRpYyBp bnQgcGxhbmFyQ29weVdyYXBwZXIoU3dzQ29udGV4dCAqYywgY29uc3QgdWludDhfdCAqc3JjW10s CiAgICAgICAgICAgICAgICAgICAgICAgaXNCRShjLT5zcmNGb3JtYXQpICE9IGlzQkUoYy0+ZHN0 Rm9ybWF0KSkgewogCiAgICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IGhlaWdodDsgaSsr KSB7Ci0gICAgICAgICAgICAgICAgICAgIGZvciAoaiA9IDA7IGogPCBsZW5ndGg7IGorKykKLSAg ICAgICAgICAgICAgICAgICAgICAgICgodWludDE2X3QgKikgZHN0UHRyKVtqXSA9IGF2X2Jzd2Fw MTYoKChjb25zdCB1aW50MTZfdCAqKSBzcmNQdHIpW2pdKTsKKyAgICAgICAgICAgICAgICAgICAg Yy0+YnNkc3AuYnN3YXAxNl9idWYoKHVpbnQxNl90ICopZHN0UHRyLCAoY29uc3QgdWludDE2X3Qg KilzcmNQdHIsIGxlbmd0aCk7CiAgICAgICAgICAgICAgICAgICAgIHNyY1B0ciArPSBzcmNTdHJp ZGVbcGxhbmVdOwogICAgICAgICAgICAgICAgICAgICBkc3RQdHIgKz0gZHN0U3RyaWRlW3BsYW5l XTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9IGVsc2UgaWYgKGlzRmxvYXQoYy0+ c3JjRm9ybWF0KSAmJiBpc0Zsb2F0KGMtPmRzdEZvcm1hdCkgJiYKICAgICAgICAgICAgICAgICAg ICAgICAgaXNCRShjLT5zcmNGb3JtYXQpICE9IGlzQkUoYy0+ZHN0Rm9ybWF0KSkgeyAvKiBzd2Fw IGZsb2F0IHBsYW5lICovCiAgICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IGhlaWdodDsg aSsrKSB7Ci0gICAgICAgICAgICAgICAgICAgIGZvciAoaiA9IDA7IGogPCBsZW5ndGg7IGorKykK LSAgICAgICAgICAgICAgICAgICAgICAgICgodWludDMyX3QgKikgZHN0UHRyKVtqXSA9IGF2X2Jz d2FwMzIoKChjb25zdCB1aW50MzJfdCAqKSBzcmNQdHIpW2pdKTsKKyAgICAgICAgICAgICAgICAg ICAgYy0+YnNkc3AuYnN3YXAzMl9idWYoKHVpbnQzMl90ICopZHN0UHRyLCAoY29uc3QgdWludDMy X3QgKilzcmNQdHIsIGxlbmd0aCk7CiAgICAgICAgICAgICAgICAgICAgIHNyY1B0ciArPSBzcmNT dHJpZGVbcGxhbmVdOwogICAgICAgICAgICAgICAgICAgICBkc3RQdHIgKz0gZHN0U3RyaWRlW3Bs YW5lXTsKICAgICAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9saWJzd3NjYWxlL3V0aWxzLmMg Yi9saWJzd3NjYWxlL3V0aWxzLmMKaW5kZXggOTA3MzRmNjZlZi4uM2ZmOGMyZjg0ZiAxMDA2NDQK LS0tIGEvbGlic3dzY2FsZS91dGlscy5jCisrKyBiL2xpYnN3c2NhbGUvdXRpbHMuYwpAQCAtMTky MSw2ICsxOTIxLDggQEAgc3RhdGljIGF2X2NvbGQgaW50IHN3c19pbml0X3NpbmdsZV9jb250ZXh0 KFN3c0NvbnRleHQgKmMsIFN3c0ZpbHRlciAqc3JjRmlsdGVyLAogICAgICAgICByZXR1cm4gMDsK ICAgICB9CiAKKyAgICBmZl9zd3NfYnN3YXBkc3BfaW5pdCgmYy0+YnNkc3ApOworCiAgICAgLyog dW5zY2FsZWQgc3BlY2lhbCBjYXNlcyAqLwogICAgIGlmICh1bnNjYWxlZCAmJiAhdXNlc0hGaWx0 ZXIgJiYgIXVzZXNWRmlsdGVyICYmCiAgICAgICAgIChjLT5zcmNSYW5nZSA9PSBjLT5kc3RSYW5n ZSB8fCBpc0FueVJHQihkc3RGb3JtYXQpIHx8CmRpZmYgLS1naXQgYS9saWJzd3NjYWxlL3g4Ni9N YWtlZmlsZSBiL2xpYnN3c2NhbGUveDg2L01ha2VmaWxlCmluZGV4IDY4MzkxNDk0YmUuLmY3Y2Rk YTVhMjUgMTAwNjQ0Ci0tLSBhL2xpYnN3c2NhbGUveDg2L01ha2VmaWxlCisrKyBiL2xpYnN3c2Nh bGUveDg2L01ha2VmaWxlCkBAIC0xLDYgKzEsNyBAQAogJChTVUJESVIpeDg2L3N3c2NhbGVfbW14 Lm86IENGTEFHUyArPSAkKE5PUkVEWk9ORV9GTEFHUykKIAotT0JKUyAgICAgICAgICAgICAgICAg ICAgICAgICAgICArPSB4ODYvcmdiMnJnYi5vICAgICAgICAgICAgICAgICAgICAgICAgXAorT0JK UyAgICAgICAgICAgICAgICAgICAgICAgICAgICArPSB4ODYvYnN3YXBkc3BfaW5pdC5vICAgICAg ICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4ODYvcmdi MnJnYi5vICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB4ODYvc3dzY2FsZS5vICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4ODYveXV2MnJnYi5vICAgICAgICAgICAgICAg ICAgICAgICAgXAogCkBAIC04LDcgKzksOCBAQCBNTVgtT0JKUyAgICAgICAgICAgICAgICAgICAg ICAgICs9IHg4Ni9oc2NhbGVfZmFzdF9iaWxpbmVhcl9zaW1kLm8gICAgICBcCiAKIE9CSlMtJChD T05GSUdfWE1NX0NMT0JCRVJfVEVTVCkgKz0geDg2L3c2NHhtbXRlc3QubwogCi1YODZBU00tT0JK UyAgICAgICAgICAgICAgICAgICAgICs9IHg4Ni9pbnB1dC5vICAgICAgICAgICAgICAgICAgICAg ICAgICBcCitYODZBU00tT0JKUyAgICAgICAgICAgICAgICAgICAgICs9IHg4Ni9ic3dhcGRzcC5v ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHg4Ni9pbnB1dC5vICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHg4Ni9vdXRwdXQubyAgICAgICAgICAgICAgICAgICAgICAg ICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHg4Ni9zY2FsZS5vICAgICAg ICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHg4Ni9zY2FsZV9hdngyLm8gICAgICAgICAgICAgICAgICAgICAgICAgIFwKZGlmZiAtLWdpdCBh L2xpYnN3c2NhbGUveDg2L2Jzd2FwZHNwLmFzbSBiL2xpYnN3c2NhbGUveDg2L2Jzd2FwZHNwLmFz bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi44NGZjNmZiMDAwCi0tLSAv ZGV2L251bGwKKysrIGIvbGlic3dzY2FsZS94ODYvYnN3YXBkc3AuYXNtCkBAIC0wLDAgKzEsMTU3 IEBACis7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqCis7KiBvcHRpbWl6ZWQgYnN3YXAgYnVmZmVyIGZ1 bmN0aW9ucworOyogQ29weXJpZ2h0IChjKSAyMDA4IExvcmVuIE1lcnJpdHQKKzsqIENvcHlyaWdo dCAoYykgMjAwMy0yMDEzIE1pY2hhZWwgTmllZGVybWF5ZXIKKzsqIENvcHlyaWdodCAoYykgMjAx MyBEYW5pZWwgS2FuZworOyoKKzsqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEZGbXBlZy4KKzsqCis7 KiBGRm1wZWcgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y Cis7KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwg UHVibGljCis7KiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uOyBlaXRoZXIKKzsqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91 ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorOyoKKzsqIEZGbXBlZyBpcyBkaXN0cmlidXRl ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorOyogYnV0IFdJVEhPVVQgQU5Z IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKzsqIE1FUkNI QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg R05VCis7KiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor OyoKKzsqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIg R2VuZXJhbCBQdWJsaWMKKzsqIExpY2Vuc2UgYWxvbmcgd2l0aCBGRm1wZWc7IGlmIG5vdCwgd3Jp dGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKzsqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGlu IFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EKKzsqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioKKworJWluY2x1ZGUgImxpYmF2dXRpbC94ODYveDg2dXRpbC5hc20iCisK K1NFQ1RJT05fUk9EQVRBCitwYl9ic3dhcDMyOiBkYiAzLCAyLCAxLCAwLCA3LCA2LCA1LCA0LCAx MSwgMTAsIDksIDgsIDE1LCAxNCwgMTMsIDEyCisKK1NFQ1RJT04gLnRleHQKKworOyAlMSA9IGFs aWduZWQvdW5hbGlnbmVkCislbWFjcm8gQlNXQVBfTE9PUFMgIDEKKyAgICBtb3YgICAgICByM2Qs IHIyZAorICAgIHNhciAgICAgIHIyZCwgMworICAgIGp6ICAgICAgIC5sZWZ0NF8lMQorJWlmIGNw dWZsYWcoYXZ4MikKKyAgICBzYXIgICAgICByMmQsIDEKKyAgICBqeiAgICAgICAubGVmdDhfJTEK KyVlbmRpZgorLmxvb3A4XyUxOgorICAgIG1vdiUxICAgIG0wLCBbcjEgKyAgMF0KKyAgICBtb3Yl MSAgICBtMSwgW3IxICsgbW1zaXplXQorJWlmIGNwdWZsYWcoc3NzZTMpfHxjcHVmbGFnKGF2eDIp CisgICAgcHNodWZiICAgbTAsIG0yCisgICAgcHNodWZiICAgbTEsIG0yCisgICAgbW92JTEgICAg W3IwICsgIDBdLCBtMAorICAgIG1vdiUxICAgIFtyMCArIG1tc2l6ZV0sIG0xCislZWxzZQorICAg IHBzaHVmbHcgIG0wLCBtMCwgMTAxMTAwMDFiCisgICAgcHNodWZsdyAgbTEsIG0xLCAxMDExMDAw MWIKKyAgICBwc2h1Zmh3ICBtMCwgbTAsIDEwMTEwMDAxYgorICAgIHBzaHVmaHcgIG0xLCBtMSwg MTAxMTAwMDFiCisgICAgbW92YSAgICAgbTIsIG0wCisgICAgbW92YSAgICAgbTMsIG0xCisgICAg cHNsbHcgICAgbTAsIDgKKyAgICBwc2xsdyAgICBtMSwgOAorICAgIHBzcmx3ICAgIG0yLCA4Cisg ICAgcHNybHcgICAgbTMsIDgKKyAgICBwb3IgICAgICBtMiwgbTAKKyAgICBwb3IgICAgICBtMywg bTEKKyAgICBtb3YlMSAgICBbcjAgKyAgMF0sIG0yCisgICAgbW92JTEgICAgW3IwICsgMTZdLCBt MworJWVuZGlmCisgICAgYWRkICAgICAgcjAsIG1tc2l6ZSoyCisgICAgYWRkICAgICAgcjEsIG1t c2l6ZSoyCisgICAgZGVjICAgICAgcjJkCisgICAgam56ICAgICAgLmxvb3A4XyUxCislaWYgY3B1 ZmxhZyhhdngyKQorLmxlZnQ4XyUxOgorICAgIG1vdiAgICAgIHIyZCwgcjNkCisgICAgdGVzdCAg ICAgcjNkLCA4CisgICAganogICAgICAgLmxlZnQ0XyUxCisgICAgbW92JTEgICAgbTAsIFtyMV0K KyAgICBwc2h1ZmIgICBtMCwgbTIKKyAgICBtb3YlMSAgICBbcjAgKyAgMF0sIG0wCisgICAgYWRk IHIxLCBtbXNpemUKKyAgICBhZGQgcjAsIG1tc2l6ZQorJWVuZGlmCisubGVmdDRfJTE6CisgICAg bW92ICAgICAgcjJkLCByM2QKKyAgICB0ZXN0ICAgICByM2QsIDQKKyAgICBqeiAgICAgICAubGVm dAorICAgIG1vdiUxICAgIHhtMCwgW3IxXQorJWlmIGNwdWZsYWcoc3NzZTMpCisgICAgcHNodWZi ICAgeG0wLCB4bTIKKyAgICBtb3YlMSAgICBbcjBdLCB4bTAKKyVlbHNlCisgICAgcHNodWZsdyAg bTAsIG0wLCAxMDExMDAwMWIKKyAgICBwc2h1Zmh3ICBtMCwgbTAsIDEwMTEwMDAxYgorICAgIG1v dmEgICAgIG0yLCBtMAorICAgIHBzbGx3ICAgIG0wLCA4CisgICAgcHNybHcgICAgbTIsIDgKKyAg ICBwb3IgICAgICBtMiwgbTAKKyAgICBtb3YlMSAgICBbcjBdLCBtMgorJWVuZGlmCisgICAgYWRk ICAgICAgcjEsIDE2CisgICAgYWRkICAgICAgcjAsIDE2CislZW5kbWFjcm8KKworOyB2b2lkIGJz d2FwMzJfYnVmKHVpbnQzMl90ICpkc3QsIGNvbnN0IHVpbnQzMl90ICpzcmMsIGludCB3KTsKKyVt YWNybyBCU1dBUDMyX0JVRiAwCislaWYgY3B1ZmxhZyhzc3NlMyl8fGNwdWZsYWcoYXZ4MikKK2Nn bG9iYWwgc3dzX2Jzd2FwMzJfYnVmLCAzLDQsMworICAgIG1vdiAgICAgIHIzLCByMQorICAgIFZC Uk9BRENBU1RJMTI4ICBtMiwgW3BiX2Jzd2FwMzJdCislZWxzZQorY2dsb2JhbCBzd3NfYnN3YXAz Ml9idWYsIDMsNCw1CisgICAgbW92ICAgICAgcjMsIHIxCislZW5kaWYKKyAgICBvciAgICAgICBy MywgcjAKKyAgICB0ZXN0ICAgICByMywgbW1zaXplIC0gMQorICAgIGp6ICAgICAgIC5zdGFydF9h bGlnbgorICAgIEJTV0FQX0xPT1BTICB1CisgICAgam1wICAgICAgLmxlZnQKKy5zdGFydF9hbGln bjoKKyAgICBCU1dBUF9MT09QUyAgYQorLmxlZnQ6CislaWYgY3B1ZmxhZyhzc3NlMykKKyAgICB0 ZXN0ICAgICByMmQsIDIKKyAgICBqeiAgICAgICAubGVmdDEKKyAgICBtb3ZxICAgICB4bTAsIFty MV0KKyAgICBwc2h1ZmIgICB4bTAsIHhtMgorICAgIG1vdnEgICAgIFtyMF0sIHhtMAorICAgIGFk ZCAgICAgIHIxLCA4CisgICAgYWRkICAgICAgcjAsIDgKKy5sZWZ0MToKKyAgICB0ZXN0ICAgICBy MmQsIDEKKyAgICBqeiAgICAgICAuZW5kCisgICAgbW92ICAgICAgcjJkLCBbcjFdCisgICAgYnN3 YXAgICAgcjJkCisgICAgbW92ICAgICAgW3IwXSwgcjJkCislZWxzZQorICAgIGFuZCAgICAgIHIy ZCwgMworICAgIGp6ICAgICAgIC5lbmQKKy5sb29wMjoKKyAgICBtb3YgICAgICByM2QsIFtyMV0K KyAgICBic3dhcCAgICByM2QKKyAgICBtb3YgICAgICBbcjBdLCByM2QKKyAgICBhZGQgICAgICBy MSwgNAorICAgIGFkZCAgICAgIHIwLCA0CisgICAgZGVjICAgICAgcjJkCisgICAgam56ICAgICAg Lmxvb3AyCislZW5kaWYKKy5lbmQ6CisgICAgUkVUCislZW5kbWFjcm8KKworSU5JVF9YTU0gc3Nl MgorQlNXQVAzMl9CVUYKKworSU5JVF9YTU0gc3NzZTMKK0JTV0FQMzJfQlVGCisKKyVpZiBIQVZF X0FWWDJfRVhURVJOQUwKK0lOSVRfWU1NIGF2eDIKK0JTV0FQMzJfQlVGCislZW5kaWYKZGlmZiAt LWdpdCBhL2xpYnN3c2NhbGUveDg2L2Jzd2FwZHNwX2luaXQuYyBiL2xpYnN3c2NhbGUveDg2L2Jz d2FwZHNwX2luaXQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi41N2Yy OTQ0ZGI3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlic3dzY2FsZS94ODYvYnN3YXBkc3BfaW5pdC5j CkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBGRm1wZWcuCisg KgorICogRkZtcGVnIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu ZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5l cmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0 IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBGRm1wZWcgaXMgZGlzdHJp YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VU IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBN RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg dGhlIEdOVQorICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls cy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVz c2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFsb25nIHdpdGggRkZtcGVnOyBpZiBub3Qs IHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFu a2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEgVVNBCisgKi8K KworI2luY2x1ZGUgPHN0ZGludC5oPgorCisjaW5jbHVkZSAibGliYXZ1dGlsL2F0dHJpYnV0ZXMu aCIKKyNpbmNsdWRlICJsaWJhdnV0aWwvY3B1LmgiCisjaW5jbHVkZSAibGliYXZ1dGlsL3g4Ni9j cHUuaCIKKyNpbmNsdWRlICJsaWJzd3NjYWxlL2Jzd2FwZHNwLmgiCisKK3ZvaWQgZmZfc3dzX2Jz d2FwMzJfYnVmX3NzZTIodWludDMyX3QgKmRzdCwgY29uc3QgdWludDMyX3QgKnNyYywgaW50IHcp Owordm9pZCBmZl9zd3NfYnN3YXAzMl9idWZfc3NzZTModWludDMyX3QgKmRzdCwgY29uc3QgdWlu dDMyX3QgKnNyYywgaW50IHcpOwordm9pZCBmZl9zd3NfYnN3YXAzMl9idWZfYXZ4Mih1aW50MzJf dCAqZHN0LCBjb25zdCB1aW50MzJfdCAqc3JjLCBpbnQgdyk7CisKK2F2X2NvbGQgdm9pZCBmZl9z d3NfYnN3YXBkc3BfaW5pdF94ODYoQnN3YXBEU1BDb250ZXh0ICpjKQoreworICAgIGludCBjcHVf ZmxhZ3MgPSBhdl9nZXRfY3B1X2ZsYWdzKCk7CisKKyAgICBpZiAoRVhURVJOQUxfU1NFMihjcHVf ZmxhZ3MpKQorICAgICAgICBjLT5ic3dhcDMyX2J1ZiA9IGZmX3N3c19ic3dhcDMyX2J1Zl9zc2Uy OworICAgIGlmIChFWFRFUk5BTF9TU1NFMyhjcHVfZmxhZ3MpKQorICAgICAgICBjLT5ic3dhcDMy X2J1ZiA9IGZmX3N3c19ic3dhcDMyX2J1Zl9zc3NlMzsKKyAgICBpZiAoRVhURVJOQUxfQVZYMl9G QVNUKGNwdV9mbGFncykpCisgICAgICAgIGMtPmJzd2FwMzJfYnVmID0gZmZfc3dzX2Jzd2FwMzJf YnVmX2F2eDI7Cit9Ci0tIAoyLjMxLjEud2luZG93cy4xCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpmZm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0CmZmbXBl Zy1kZXZlbEBmZm1wZWcub3JnCmh0dHBzOi8vZmZtcGVnLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2Zm bXBlZy1kZXZlbAoKVG8gdW5zdWJzY3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUsIG9yIGVtYWlsCmZm bXBlZy1kZXZlbC1yZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIu Cg==