Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uz2EQ-00FpG3-Ta for pgsql-hackers@arkaria.postgresql.org; Thu, 18 Sep 2025 00:10:39 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1uz2EP-00CB56-Eu for pgsql-hackers@arkaria.postgresql.org; Thu, 18 Sep 2025 00:10:37 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uz2EO-00CB4y-DU for pgsql-hackers@lists.postgresql.org; Thu, 18 Sep 2025 00:10:37 +0000 Received: from mail-ed1-x52a.google.com ([2a00:1450:4864:20::52a]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1uz2EA-000za0-2A for pgsql-hackers@lists.postgresql.org; Thu, 18 Sep 2025 00:10:35 +0000 Received: by mail-ed1-x52a.google.com with SMTP id 4fb4d7f45d1cf-62f1987d49fso475467a12.2 for ; Wed, 17 Sep 2025 17:10:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1758154221; x=1758759021; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=Q1ZZsJRk7tIiMPDlyXZD8COzfLeni3E8ptk24SHfKec=; b=a7foEFnuQ0vRqdHdJyqM8pSBS1nKrdZGdPAt7XjDOqnWiwTnrfc6kkbWqCLbPThqaw 99BdEazkZ+waMtkNlu7og4iTgOKoQqwe7WxNU2uLVHnKVUhPHHyYS8sLwW9gVKU0AbTB MYYd/OFJhVFZotg2YsnEV6uyURsDJwAQVkBuyUrlUotnD2+W8cYc7MMN+o3nOvydPZjK B/ooWQ7agb6TZmV9b2alnOAn38KO3Vv7bCQMOTSZ5dDXuL0RgjZnqj7kEKm7b6FNLAED W/FVdo08WcvbcmLoQfMVHizV0ZRxX/BS8EINVRupJOSQ0+b+grCFib3ea6qdmgKfQGnW Axvg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758154221; x=1758759021; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=Q1ZZsJRk7tIiMPDlyXZD8COzfLeni3E8ptk24SHfKec=; b=u6hTYu4inN0QVC15fp6pAfIlP4X+Vyl//gu6vHNy0cJP5gQIOpeQht6GYWdAWeq0WE qbkzbDnCgm1J6Q2aE+mRoUyc0zy07DylqG12+rXDKLZanrRAVaoGUBBHb4IaACEymn75 PylDhAoUbF81iOtANb4uOZI+pkZAIqTxBjpbygdv04x8FrQnDeytQH8NHebebYIQ759S l2xvORwocWChU4G7KWHdUkwHDUhMScBjfePfK2yFL5Kb8XSDGjGtf7VrnyhJuXwIG+/p MM0LapJ1NsmoAtyP1/NBKoRi1BR5afhGsMmL1HTxPV1Kz+evjJxraKVIz3ZezPXI9Ok1 bbtQ== X-Forwarded-Encrypted: i=1; AJvYcCWXvrKKLd8kCg68boZoofv74adQUc4UwabEOIDnYFu8292Aaxh/0MDLXPkoWq/kf0HSfdkHk46e4+7PdjN5@lists.postgresql.org X-Gm-Message-State: AOJu0YwPFTkVTc0BrHiGBSaJajH0cwxDRxkD9qboUQxWPjGtA9Gc8tHz 4AAb80YyOWShnNYxPykEN7d8fx6/IW+Lbw/Ln8JF7ZNkjas86fu9bw7ujFKvGwLezOSlBpNi3iO uYLvUH3KWAb+ODMEFx3IwEl8fFO+XyzGCLSdS X-Gm-Gg: ASbGncvOAyRVHFGMHaHe6KLB9zGUTlycxt7CL9vEIfMMH+x/CxP8IFn2p4qBrJkgjD+ TJ8iFjU9pWu3yC7S4qDyKAGa52kidA+oe/+ZVlwCQvh911UCRVAuiMgsvc3JPrbC60tWgQuN23n tTbflnjgUuQnh9kPqsJMlYxc99iPxSHXoYeUv45UIWLVIytPwJGmc2Aik0NOdqrCkEhQBgsC2sF gRIYmocpPbhnG+AD8JadcDrLi5ser5nOgxxSRI2InpPR3Wzg8davV4gTms= X-Google-Smtp-Source: AGHT+IHJ2ONcXWUKkfd9wVb5mHLN8Hu6QlGthKetmH09fZJnF0qyweH1H7E0+Xmp4eik7/0XqYG/fMi9lszk8jMfyeE= X-Received: by 2002:a05:6402:5c8:b0:62b:63f8:cdbb with SMTP id 4fb4d7f45d1cf-62f8444b4ecmr3643228a12.25.1758154221088; Wed, 17 Sep 2025 17:10:21 -0700 (PDT) MIME-Version: 1.0 References: <87DD95AA-274F-4F4F-BAD9-7738E5B1F905@yandex-team.ru> In-Reply-To: From: Melanie Plageman Date: Wed, 17 Sep 2025 20:10:07 -0400 X-Gm-Features: AS18NWCSIPsxOmoSMMYcai2bGDRe4p5cYWZVpEYWPjd0cPPiD0kg4V_wvqE3Zfo Message-ID: Subject: Re: eliminate xl_heap_visible to reduce WAL (and eventually set VM on-access) To: Robert Haas Cc: Andres Freund , Kirill Reshke , Andrey Borodin , PostgreSQL Hackers , Heikki Linnakangas Content-Type: multipart/mixed; boundary="000000000000cf342e063f082d09" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000cf342e063f082d09 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, Sep 10, 2025 at 4:01=E2=80=AFPM Robert Haas = wrote: > > On Tue, Sep 9, 2025 at 7:08=E2=80=AFPM Melanie Plageman > wrote: > > Fair. I've introduced new XLHP flags in attached v13. Hopefully it > > puts an end to the horror. > > I suggest not renumbering all of the existing flags and just adding > these new ones at the end. Less code churn and more likely to break in > an obvious way if you mix up the two sets of flags. Makes sense. In my attached v14, I have not renumbered them. > More on 0002: After an off-list discussion we had about how to make the patches in the set progressively improve the code instead of just mechanically refactoring it, I have made some big changes in the intermediate patches in the set. Before actually including the VM changes in the vacuum/prune WAL records, I first include setting PD_ALL_VISIBLE with the other changes to the heap page so that we can remove the heap page from the VM setting WAL chain. This happens to fix the bug we discussed where if you set an all-visible page all-frozen and checksums/wal_log_hints are enabled, you may end up setting an LSN on a page that was not marked dirty. 0001 is RFC but waiting on one other reviewer 0002 - 0007 is a bit of cleanup I had later in the patch set but moved up because I think it made the intermediate patches better 0008 - 0012 removes the heap page from the XLOG_HEAP2_VISIBLE WAL chain (it makes all callers of visibilitymap_set() set PD_ALL_VISIBLE in the same WAL record as changes to the heap page) 0013 - 0018 finish the job eliminating XLOG_HEAP2_VISIBLE and set VM bits in the same WAL record as the heap changes 0019 - 0024 set the VM on-access > /* > + * Note that the heap relation may have been dropped or truncated, leadi= ng > + * us to skip updating the heap block due to the LSN interlock. However, > + * even in that case, it's still safe to update the visibility map. Any > + * WAL record that clears the visibility map bit does so before checking > + * the page LSN, so any bits that need to be cleared will still be > + * cleared. > + * > + * Note that the lock on the heap page was dropped above. In normal > + * operation this would never be safe because a concurrent query could > + * modify the heap page and clear PD_ALL_VISIBLE -- violating the > + * invariant that PD_ALL_VISIBLE must be set if the corresponding bit in > + * the VM is set. > + * > + * In recovery, we expect no other writers, so writing to the VM page > + * without holding a lock on the heap page is considered safe enough. It > + * is done this way when replaying xl_heap_visible records (see > */ > > How many copies of this comment do you plan to end up with? By the end, one for copy freeze replay and one for prune/freeze/vacuum replay. I felt two wasn't too bad and was easier than meta-explaining what the other comment was explaining. > > > 0004. It is not clear to me why you need to get > > > log_heap_prune_and_freeze to do the work here. Why can't > > > log_newpage_buffer get the job done already? > > > > Well, I need something to emit the changes to the VM. I'm eliminating > > all users of xl_heap_visible. Empty pages are the ones that benefit > > the least from switching from xl_heap_visible -> xl_heap_prune. But, > > if I don't transition them, we have to maintain all the > > xl_heap_visible code (including visibilitymap_set() in its long form). > > > > As for log_newpage_buffer(), I could keep it if you think it is too > > confusing to change log_heap_prune_and_freeze()'s API (by passing > > force_heap_fpi) to handle this case, I can leave log_newpage_buffer() > > there and then call log_heap_prune_and_freeze(). > > > > I just thought it seemed simple to avoid emitting the new page record > > and the VM update record, so why not -- but I don't have strong > > feelings. > > Yeah, I'm not sure what the right thing to do here is. I think I was > again experiencing brain fade by forgetting that there is a heap page > and a VM page and, of course, log_heap_newpage() probably isn't going > to touch the latter. So that makes sense. On the other hand, we could > only have one type of WAL record for every single operation in the > system if we gave it enough flags, and force_heap_fpi seems > suspiciously like a flag that turns this into a whole different kind > of WAL record. I've kept log_heap_newpage() and used log_heap_prune_and_freeze() for setting PD_ALL_VISIBLE and the VM. > > > 0005. It looks a little curious that you delete the > > > identify-corruption logic from the end of the if-nest and add it to > > > the beginning. Ceteris paribus, you'd expect that to be worse, since > > > corruption is a rare case. > > > > On master, the two corruption cases are sandwiched between the normal > > VM set cases. And I actually think doing it this way is brittle. If > > you put the cases which set the VM first, you have to have completely > > bulletproof the if statements guarding them to foreclose any possible > > corruption case from entering because otherwise you will overwrite the > > corruption you then try to detect. > > Hmm. In the current code, we first test (!all_visible_according_to_vm > && presult.all_visible), then (all_visible_according_to_vm && > !PageIsAllVisible(page) && visibilitymap_get_status(vacrel->rel, > blkno, &vmbuffer) !=3D 0), and then (presult.lpdead_items > 0 && > PageIsAllVisible(page)). The first and second can never coexist, > because they require opposite values of all_visible_according_to_vm. > The second and third cannot coexist because they require opposite > values of PageIsAllVisible(page). It is not entirely obvious that the > first and third tests couldn't both pass, but you'd have to have > presult.all_visible and presult.lpdead_items > 0, and it's a bit hard > to see how heap_page_prune_and_freeze() could ever allow that. > Consider: > > if (prstate.all_visible && prstate.lpdead_items =3D=3D 0) > { > presult->all_visible =3D prstate.all_visible; > presult->all_frozen =3D prstate.all_frozen; > } > else > { > presult->all_visible =3D false; > presult->all_frozen =3D false; > } > ... > presult->lpdead_items =3D prstate.lpdead_items; > > So I don't really think I'm persuaded that the current way is brittle. I meant brittle because it has to be so carefully coded for it to work out this way. If you ever wanted to change or enhance it, it's quite hard to know how to make sure all of them are entirely mutually exclusive. > But that having been said, I agree with you that the order of the > checks is kind of random, and I don't think it really matters that > much for performance. What does matter is clarity. I feel like what > I'd ideally like this logic to do is say: do we want the VM bit for > the page to be set to all-frozen, just all-visible, or neither? Then > push the VM bit to the correct state, dragging the page-level bit > along behind. And the current logic sort of does that. It's roughly: > > 1. Should we go from not-all-visible to either all-visible or > all-frozen? If yes, do so. > 2. Should we go from either all-visible or all-frozen to > not-all-visible? If yes, do so. > 3. Should we go from either all-visible or all-frozen to > not-all-visible for a different reason? If yes, do so. > 4. Should we go from all-visible to all-frozen? If yes, do so. I don't necessarily agree that fixing corruption and setting the VM should be together -- they feel like separate things to me. But, I don't feel strongly enough about it to push it. > But what's weird is that all the tests are written differently, and we > have two different reasons for going to not-all-visible, namely > PD_ALL_VISIBLE-not-set and dead-items-on-page, whereas there's only > one test for each of the other state-transitions, because the > decision-making for those cases is fully completed at an earlier > stage. I would kind of like to see this expressed in a way that first > decides which state transition to make (forward-to-all-frozen, > forward-to-all-visible, backward-to-all-visible, > backward-to-not-all-visible, nothing) and then does the corresponding > work. What you're doing instead is splitting half of those functions > off into a helper function while keeping the other half where they are > without cleaning up any of the logic. Now, maybe that's OK: I'm far > from having grokked the whole patch set. But it is not any more clear > than what we have now, IMHO, and perhaps even a bit less so. In terms of my patch set, I do have to change something about this mixture of fixing corruption and setting the VM because I need to set the VM bits in the same critical section as making the other changes to the heap page (pruning, etc) and include the VM set changes in the same WAL record (note that clearing the VM to fix corruption is not WAL-logged). What I've gone with is determining what to set the VM bits to and then fixing the corruption at the same time. Then, later, when making the changes to the heap page, I actually set the VM. This is kind of the opposite of what you suggested above -- determining what to set the bits to altogether -- corruption and non-corruption cases together. I don't think we can do that though, because fixing the corruption is non WAL-logged changes to the page and VM and setting the VM bits is a WAL-logged change. And, you can't clear bits with visibilitymap_set() (there's an assertion about that). So you have to call different functions (not to mention emit distinct error messages). I don't know that I've come up with the ideal solution, though. - Melanie --000000000000cf342e063f082d09 Content-Type: text/x-patch; charset="US-ASCII"; name="v14-0003-Reorder-heap_page_prune_and_freeze-parameters.patch" Content-Disposition: attachment; filename="v14-0003-Reorder-heap_page_prune_and_freeze-parameters.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfonltmr2 RnJvbSBkYTRmMGQxNDFjOGZhNjczYTQ2NTFjNDJlZmQ4YmM0OGNkODhjNDg1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBNb24sIDE1IFNlcCAyMDI1IDEyOjA2OjE5IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTQgMDMvMjRdIFJlb3JkZXIgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUgcGFyYW1l dGVycwoKTW92ZSByZWFkLW9ubHkgcGFyYW1ldGVycyB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBm dW5jdGlvbiwgbWFraW5nIGl0Cm1vcmUgY2xlYXIgd2hpY2ggcGFyYW10ZXJzIGFyZSBpbnB1dHMg YW5kIHdoaWNoIGFyZSBpbnB1dC9vdXRwdXRzIG9yCm91dHB1dHMuIEFsc28gY29uc3QtcXVhbGlm eSBWYWN1dW1DdXRvZmZzLCB3aGljaCBpcyBub3QgbW9kaWZpZWQgaW4KaGVhcF9wYWdlX3BydW5l X2FuZF9mcmVlemUoKS4KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYyAg fCA0MCArKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVh cC92YWN1dW1sYXp5LmMgfCAgNiArKystLQogc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oICAg ICAgICAgIHwgIDYgKystLS0KIDMgZmlsZXMgY2hhbmdlZCwgMjcgaW5zZXJ0aW9ucygrKSwgMjUg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVo ZWFwLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYwppbmRleCBkOGVhMGM3 OGY3Ny4uMjhiZDZhNTY3NDkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3By dW5laGVhcC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jCkBAIC00 Myw3ICs0Myw3IEBAIHR5cGVkZWYgc3RydWN0CiAJYm9vbAkJbWFya191bnVzZWRfbm93OwogCS8q IHdoZXRoZXIgdG8gYXR0ZW1wdCBmcmVlemluZyB0dXBsZXMgKi8KIAlib29sCQlmcmVlemU7Ci0J c3RydWN0IFZhY3V1bUN1dG9mZnMgKmN1dG9mZnM7CisJY29uc3Qgc3RydWN0IFZhY3V1bUN1dG9m ZnMgKmN1dG9mZnM7CiAKIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KIAkgKiBGaWVsZHMgZGVzY3JpYmluZyB3aGF0IHRvIGRvIHRvIHRo ZSBwYWdlCkBAIC0yNjAsOCArMjYwLDggQEAgaGVhcF9wYWdlX3BydW5lX29wdChSZWxhdGlvbiBy ZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlcikKIAkJCSAqIG5vdCB0aGUgcmVsYXRpb24gaGFzIGluZGV4 ZXMsIHNpbmNlIHdlIGNhbm5vdCBzYWZlbHkgZGV0ZXJtaW5lCiAJCQkgKiB0aGF0IGR1cmluZyBv bi1hY2Nlc3MgcHJ1bmluZyB3aXRoIHRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uLgogCQkJICov Ci0JCQloZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZShyZWxhdGlvbiwgYnVmZmVyLCB2aXN0ZXN0 LCAwLAotCQkJCQkJCQkJICAgTlVMTCwgJnByZXN1bHQsIFBSVU5FX09OX0FDQ0VTUywgJmR1bW15 X29mZl9sb2MsIE5VTEwsIE5VTEwpOworCQkJaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUocmVs YXRpb24sIGJ1ZmZlciwgUFJVTkVfT05fQUNDRVNTLCAwLCBOVUxMLAorCQkJCQkJCQkJICAgdmlz dGVzdCwgJnByZXN1bHQsICZkdW1teV9vZmZfbG9jLCBOVUxMLCBOVUxMKTsKIAogCQkJLyoKIAkJ CSAqIFJlcG9ydCB0aGUgbnVtYmVyIG9mIHR1cGxlcyByZWNsYWltZWQgdG8gcGdzdGF0cy4gIFRo aXMgaXMKQEAgLTMwMyw3ICszMDMsMTcgQEAgaGVhcF9wYWdlX3BydW5lX29wdChSZWxhdGlvbiBy ZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlcikKICAqIGFsc28gbmVlZCB0byBhY2NvdW50IGZvciBhIHJl ZHVjdGlvbiBpbiB0aGUgbGVuZ3RoIG9mIHRoZSBsaW5lIHBvaW50ZXIKICAqIGFycmF5IGZvbGxv d2luZyBhcnJheSB0cnVuY2F0aW9uIGJ5IHVzLgogICoKLSAqIElmIHRoZSBIRUFQX1BSVU5FX0ZS RUVaRSBvcHRpb24gaXMgc2V0LCB3ZSB3aWxsIGFsc28gZnJlZXplIHR1cGxlcyBpZiBpdCdzCisg KiByZWFzb24gaW5kaWNhdGVzIHdoeSB0aGUgcHJ1bmluZyBpcyBwZXJmb3JtZWQuICBJdCBpcyBp bmNsdWRlZCBpbiB0aGUgV0FMCisgKiByZWNvcmQgZm9yIGRlYnVnZ2luZyBhbmQgYW5hbHlzaXMg cHVycG9zZXMsIGJ1dCBvdGhlcndpc2UgaGFzIG5vIGVmZmVjdC4KKyAqCisgKiBvcHRpb25zOgor ICogICBNQVJLX1VOVVNFRF9OT1cgaW5kaWNhdGVzIHRoYXQgZGVhZCBpdGVtcyBjYW4gYmUgc2V0 IExQX1VOVVNFRCBkdXJpbmcKKyAqICAgcHJ1bmluZy4KKyAqCisgKiAgIEZSRUVaRSBpbmRpY2F0 ZXMgdGhhdCB3ZSB3aWxsIGFsc28gZnJlZXplIHR1cGxlcywgYW5kIHdpbGwgcmV0dXJuCisgKiAg ICdhbGxfdmlzaWJsZScsICdhbGxfZnJvemVuJyBmbGFncyB0byB0aGUgY2FsbGVyLgorICoKKyAq IElmIHRoZSBIRUFQX1BSVU5FX0ZSRUVaRSBvcHRpb24gaXMgc2V0LCB3ZSB3aWxsIGZyZWV6ZSB0 dXBsZXMgaWYgaXQncwogICogcmVxdWlyZWQgaW4gb3JkZXIgdG8gYWR2YW5jZSByZWxmcm96ZW54 aWQgLyByZWxtaW5teGlkLCBvciBpZiBpdCdzCiAgKiBjb25zaWRlcmVkIGFkdmFudGFnZW91cyBm b3Igb3ZlcmFsbCBzeXN0ZW0gcGVyZm9ybWFuY2UgdG8gZG8gc28gbm93LiAgVGhlCiAgKiAnY3V0 b2ZmcycsICdwcmVzdWx0JywgJ25ld19yZWxmcm96ZW5feGlkJyBhbmQgJ25ld19yZWxtaW5fbXhp ZCcgYXJndW1lbnRzCkBAIC0zMTMsMjkgKzMyMywxOSBAQCBoZWFwX3BhZ2VfcHJ1bmVfb3B0KFJl bGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyKQogICogSEVBUF9QUlVORV9GUkVFWkUgb3B0 aW9uIGlzIG5vdCBzZXQsIGJlY2F1c2UgYXQgdGhlIG1vbWVudCBvbmx5IGNhbGxlcnMKICAqIHRo YXQgYWxzbyBmcmVlemUgbmVlZCB0aGF0IGluZm9ybWF0aW9uLgogICoKLSAqIHZpc3Rlc3QgaXMg dXNlZCB0byBkaXN0aW5ndWlzaCB3aGV0aGVyIHR1cGxlcyBhcmUgREVBRCBvciBSRUNFTlRMWV9E RUFECi0gKiAoc2VlIGhlYXBfcHJ1bmVfc2F0aXNmaWVzX3ZhY3V1bSkuCi0gKgotICogb3B0aW9u czoKLSAqICAgTUFSS19VTlVTRURfTk9XIGluZGljYXRlcyB0aGF0IGRlYWQgaXRlbXMgY2FuIGJl IHNldCBMUF9VTlVTRUQgZHVyaW5nCi0gKiAgIHBydW5pbmcuCi0gKgotICogICBGUkVFWkUgaW5k aWNhdGVzIHRoYXQgd2Ugd2lsbCBhbHNvIGZyZWV6ZSB0dXBsZXMsIGFuZCB3aWxsIHJldHVybgot ICogICAnYWxsX3Zpc2libGUnLCAnYWxsX2Zyb3plbicgZmxhZ3MgdG8gdGhlIGNhbGxlci4KLSAq CiAgKiBjdXRvZmZzIGNvbnRhaW5zIHRoZSBmcmVlemUgY3V0b2ZmcywgZXN0YWJsaXNoZWQgYnkg VkFDVVVNIGF0IHRoZSBiZWdpbm5pbmcKICAqIG9mIHZhY3V1bWluZyB0aGUgcmVsYXRpb24uICBS ZXF1aXJlZCBpZiBIRUFQX1BSVU5FX0ZSRUVaRSBvcHRpb24gaXMgc2V0LgogICogY3V0b2Zmcy0+ T2xkZXN0WG1pbiBpcyBhbHNvIHVzZWQgdG8gZGV0ZXJtaW5lIGlmIGRlYWQgdHVwbGVzIGFyZQog ICogSEVBUFRVUExFX1JFQ0VOVExZX0RFQUQgb3IgSEVBUFRVUExFX0RFQUQuCiAgKgorICogdmlz dGVzdCBpcyB1c2VkIHRvIGRpc3Rpbmd1aXNoIHdoZXRoZXIgdHVwbGVzIGFyZSBERUFEIG9yIFJF Q0VOVExZX0RFQUQKKyAqIChzZWUgaGVhcF9wcnVuZV9zYXRpc2ZpZXNfdmFjdXVtKS4KKyAqCiAg KiBwcmVzdWx0IGNvbnRhaW5zIG91dHB1dCBwYXJhbWV0ZXJzIG5lZWRlZCBieSBjYWxsZXJzLCBz dWNoIGFzIHRoZSBudW1iZXIgb2YKICAqIHR1cGxlcyByZW1vdmVkIGFuZCB0aGUgb2Zmc2V0cyBv ZiBkZWFkIGl0ZW1zIG9uIHRoZSBwYWdlIGFmdGVyIHBydW5pbmcuCiAgKiBoZWFwX3BhZ2VfcHJ1 bmVfYW5kX2ZyZWV6ZSgpIGlzIHJlc3BvbnNpYmxlIGZvciBpbml0aWFsaXppbmcgaXQuICBSZXF1 aXJlZAogICogYnkgYWxsIGNhbGxlcnMuCiAgKgotICogcmVhc29uIGluZGljYXRlcyB3aHkgdGhl IHBydW5pbmcgaXMgcGVyZm9ybWVkLiAgSXQgaXMgaW5jbHVkZWQgaW4gdGhlIFdBTAotICogcmVj b3JkIGZvciBkZWJ1Z2dpbmcgYW5kIGFuYWx5c2lzIHB1cnBvc2VzLCBidXQgb3RoZXJ3aXNlIGhh cyBubyBlZmZlY3QuCi0gKgogICogb2ZmX2xvYyBpcyB0aGUgb2Zmc2V0IGxvY2F0aW9uIHJlcXVp cmVkIGJ5IHRoZSBjYWxsZXIgdG8gdXNlIGluIGVycm9yCiAgKiBjYWxsYmFjay4KICAqCkBAIC0z NDgsMTEgKzM0OCwxMSBAQCBoZWFwX3BhZ2VfcHJ1bmVfb3B0KFJlbGF0aW9uIHJlbGF0aW9uLCBC dWZmZXIgYnVmZmVyKQogICovCiB2b2lkCiBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZShSZWxh dGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKLQkJCQkJCSAgIEdsb2JhbFZpc1N0YXRlICp2 aXN0ZXN0LAorCQkJCQkJICAgUHJ1bmVSZWFzb24gcmVhc29uLAogCQkJCQkJICAgaW50IG9wdGlv bnMsCi0JCQkJCQkgICBzdHJ1Y3QgVmFjdXVtQ3V0b2ZmcyAqY3V0b2ZmcywKKwkJCQkJCSAgIGNv bnN0IHN0cnVjdCBWYWN1dW1DdXRvZmZzICpjdXRvZmZzLAorCQkJCQkJICAgR2xvYmFsVmlzU3Rh dGUgKnZpc3Rlc3QsCiAJCQkJCQkgICBQcnVuZUZyZWV6ZVJlc3VsdCAqcHJlc3VsdCwKLQkJCQkJ CSAgIFBydW5lUmVhc29uIHJlYXNvbiwKIAkJCQkJCSAgIE9mZnNldE51bWJlciAqb2ZmX2xvYywK IAkJCQkJCSAgIFRyYW5zYWN0aW9uSWQgKm5ld19yZWxmcm96ZW5feGlkLAogCQkJCQkJICAgTXVs dGlYYWN0SWQgKm5ld19yZWxtaW5fbXhpZCkKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vz cy9oZWFwL3ZhY3V1bWxhenkuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenku YwppbmRleCA5ODFkOTM4MGE5Mi4uZGRjOTY3NzY5NGMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92 YWN1dW1sYXp5LmMKQEAgLTE5NzQsOCArMTk3NCwxMCBAQCBsYXp5X3NjYW5fcHJ1bmUoTFZSZWxT dGF0ZSAqdmFjcmVsLAogCWlmICh2YWNyZWwtPm5pbmRleGVzID09IDApCiAJCXBydW5lX29wdGlv bnMgfD0gSEVBUF9QQUdFX1BSVU5FX01BUktfVU5VU0VEX05PVzsKIAotCWhlYXBfcGFnZV9wcnVu ZV9hbmRfZnJlZXplKHJlbCwgYnVmLCB2YWNyZWwtPnZpc3Rlc3QsIHBydW5lX29wdGlvbnMsCi0J CQkJCQkJICAgJnZhY3JlbC0+Y3V0b2ZmcywgJnByZXN1bHQsIFBSVU5FX1ZBQ1VVTV9TQ0FOLAor CWhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKHJlbCwgYnVmLCBQUlVORV9WQUNVVU1fU0NBTiwg cHJ1bmVfb3B0aW9ucywKKwkJCQkJCQkgICAmdmFjcmVsLT5jdXRvZmZzLAorCQkJCQkJCSAgIHZh Y3JlbC0+dmlzdGVzdCwKKwkJCQkJCQkgICAmcHJlc3VsdCwKIAkJCQkJCQkgICAmdmFjcmVsLT5v ZmZudW0sCiAJCQkJCQkJICAgJnZhY3JlbC0+TmV3UmVsZnJvemVuWGlkLCAmdmFjcmVsLT5OZXdS ZWxtaW5NeGlkKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oIGIv c3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oCmluZGV4IGEyYmQ1YTg5N2Y4Li4zNDIwNmE2YTdk NSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oCisrKyBiL3NyYy9pbmNs dWRlL2FjY2Vzcy9oZWFwYW0uaApAQCAtMzc0LDExICszNzQsMTEgQEAgZXh0ZXJuIFRyYW5zYWN0 aW9uSWQgaGVhcF9pbmRleF9kZWxldGVfdHVwbGVzKFJlbGF0aW9uIHJlbCwKIHN0cnVjdCBHbG9i YWxWaXNTdGF0ZTsKIGV4dGVybiB2b2lkIGhlYXBfcGFnZV9wcnVuZV9vcHQoUmVsYXRpb24gcmVs YXRpb24sIEJ1ZmZlciBidWZmZXIpOwogZXh0ZXJuIHZvaWQgaGVhcF9wYWdlX3BydW5lX2FuZF9m cmVlemUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCi0JCQkJCQkJCQkgICBzdHJ1 Y3QgR2xvYmFsVmlzU3RhdGUgKnZpc3Rlc3QsCisJCQkJCQkJCQkgICBQcnVuZVJlYXNvbiByZWFz b24sCiAJCQkJCQkJCQkgICBpbnQgb3B0aW9ucywKLQkJCQkJCQkJCSAgIHN0cnVjdCBWYWN1dW1D dXRvZmZzICpjdXRvZmZzLAorCQkJCQkJCQkJICAgY29uc3Qgc3RydWN0IFZhY3V1bUN1dG9mZnMg KmN1dG9mZnMsCisJCQkJCQkJCQkgICBzdHJ1Y3QgR2xvYmFsVmlzU3RhdGUgKnZpc3Rlc3QsCiAJ CQkJCQkJCQkgICBQcnVuZUZyZWV6ZVJlc3VsdCAqcHJlc3VsdCwKLQkJCQkJCQkJCSAgIFBydW5l UmVhc29uIHJlYXNvbiwKIAkJCQkJCQkJCSAgIE9mZnNldE51bWJlciAqb2ZmX2xvYywKIAkJCQkJ CQkJCSAgIFRyYW5zYWN0aW9uSWQgKm5ld19yZWxmcm96ZW5feGlkLAogCQkJCQkJCQkJICAgTXVs dGlYYWN0SWQgKm5ld19yZWxtaW5fbXhpZCk7Ci0tIAoyLjQzLjAKCg== --000000000000cf342e063f082d09 Content-Type: text/x-patch; charset="US-ASCII"; name="v14-0005-Rename-PruneState.freeze-to-attempt_freeze.patch" Content-Disposition: attachment; filename="v14-0005-Rename-PruneState.freeze-to-attempt_freeze.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfonltmv4 RnJvbSA5NGI0ZTk0NmNkNDk4NDcwZTlhMGZhYzBiMTUyOTlmZWFjY2ZlZWZjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUaHUsIDMxIEp1bCAyMDI1IDE0OjA3OjUxIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTQgMDUvMjRdIFJlbmFtZSBQcnVuZVN0YXRlLmZyZWV6ZSB0byBhdHRlbXB0X2ZyZWV6 ZQoKVGhpcyBtYWtlcyBpdCBtb3JlIGNsZWFyIHRoYXQgdGhpcyBpcyB0byBpbmRpY2F0ZSB0aGUg Y2FsbGVyIHdvdWxkIGxpa2UKaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoKSB0byBjb25zaWRl ciBmcmVlemluZyB0dXBsZXMgLS0gbm90IHRoYXQgd2UKdWx0aW1hdGVseSB3aWxsIGVuZCB1cCBm cmVlemluZyB0aGVtLgoKQWxzbyByZW5hbWUgbG9jYWwgdmFyaWFibGUgaGludF9iaXRfZnBpIHRv IGRpZF90dXBsZV9oaW50X2ZwaS4gVGhpcwptYWtlcyBpdCBjbGVhciBpdCBpcyBhYm91dCB0dXBs ZSBoaW50cyBhbmQgbm90IHBhZ2UgaGludHMgYW5kIHRoYXQgaXQKaW5kaWNhdGVzIHNvbWV0aGlu ZyB0aGF0IGhhcHBlbmVkIGFuZCBub3Qgc29tZXRoaW5nIHRoYXQgY291bGQgaGFwcGVuLgoKQW5k IHJlbmFtZSBsb2NhbCB2YXJpYWJsZSBkb19oaW50IHRvIGRvX2hpbnRfcHJ1bmUuIFRoaXMgZGlz dGluZ3Vpc2hlcwp0aGUgcHJ1bmFibGUgYW5kIHBhZ2UgZnVsbCBoaW50cyB1c2VkIHRvIGRlY2lk ZSB3aGV0aGVyIG9yIG5vdCB0bwpvbi1hY2Nlc3MgcHJ1bmUgYSBwYWdlIGZyb20gb3RoZXIgcGFn ZS1sZXZlbCBhbmQgdHVwbGUgaGludCBiaXRzLgotLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFw L3BydW5laGVhcC5jIHwgMjggKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNo YW5nZWQsIDE0IGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hl YXAvcHJ1bmVoZWFwLmMKaW5kZXggZWE4MjE2ZTA2MzIuLjc0MGFhMDdjZDgzIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYworKysgYi9zcmMvYmFja2VuZC9h Y2Nlc3MvaGVhcC9wcnVuZWhlYXAuYwpAQCAtNDIsNyArNDIsNyBAQCB0eXBlZGVmIHN0cnVjdAog CS8qIHdoZXRoZXIgb3Igbm90IGRlYWQgaXRlbXMgY2FuIGJlIHNldCBMUF9VTlVTRUQgZHVyaW5n IHBydW5pbmcgKi8KIAlib29sCQltYXJrX3VudXNlZF9ub3c7CiAJLyogd2hldGhlciB0byBhdHRl bXB0IGZyZWV6aW5nIHR1cGxlcyAqLwotCWJvb2wJCWZyZWV6ZTsKKwlib29sCQlhdHRlbXB0X2Zy ZWV6ZTsKIAljb25zdCBzdHJ1Y3QgVmFjdXVtQ3V0b2ZmcyAqY3V0b2ZmczsKIAogCS8qLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMzYx LDE0ICszNjEsMTQgQEAgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoUmVsYXRpb24gcmVsYXRp b24sIEJ1ZmZlciBidWZmZXIsCiAJSGVhcFR1cGxlRGF0YSB0dXA7CiAJYm9vbAkJZG9fZnJlZXpl OwogCWJvb2wJCWRvX3BydW5lOwotCWJvb2wJCWRvX2hpbnQ7Ci0JYm9vbAkJaGludF9iaXRfZnBp OworCWJvb2wJCWRvX2hpbnRfcHJ1bmU7CisJYm9vbAkJZGlkX3R1cGxlX2hpbnRfZnBpOwogCWlu dDY0CQlmcGlfYmVmb3JlID0gcGdXYWxVc2FnZS53YWxfZnBpOwogCiAJLyogQ29weSBwYXJhbWV0 ZXJzIHRvIHByc3RhdGUgKi8KIAlwcnN0YXRlLnZpc3Rlc3QgPSB2aXN0ZXN0OwogCXByc3RhdGUu bWFya191bnVzZWRfbm93ID0gKG9wdGlvbnMgJiBIRUFQX1BBR0VfUFJVTkVfTUFSS19VTlVTRURf Tk9XKSAhPSAwOwotCXByc3RhdGUuZnJlZXplID0gKG9wdGlvbnMgJiBIRUFQX1BBR0VfUFJVTkVf RlJFRVpFKSAhPSAwOworCXByc3RhdGUuYXR0ZW1wdF9mcmVlemUgPSAob3B0aW9ucyAmIEhFQVBf UEFHRV9QUlVORV9GUkVFWkUpICE9IDA7CiAJcHJzdGF0ZS5jdXRvZmZzID0gY3V0b2ZmczsKIAog CS8qCkBAIC0zOTAsNyArMzkwLDcgQEAgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoUmVsYXRp b24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAKIAkvKiBpbml0aWFsaXplIHBhZ2UgZnJlZXpp bmcgd29ya2luZyBzdGF0ZSAqLwogCXByc3RhdGUucGFnZWZyei5mcmVlemVfcmVxdWlyZWQgPSBm YWxzZTsKLQlpZiAocHJzdGF0ZS5mcmVlemUpCisJaWYgKHByc3RhdGUuYXR0ZW1wdF9mcmVlemUp CiAJewogCQlBc3NlcnQobmV3X3JlbGZyb3plbl94aWQgJiYgbmV3X3JlbG1pbl9teGlkKTsKIAkJ cHJzdGF0ZS5wYWdlZnJ6LkZyZWV6ZVBhZ2VSZWxmcm96ZW5YaWQgPSAqbmV3X3JlbGZyb3plbl94 aWQ7CkBAIC00MzcsNyArNDM3LDcgQEAgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoUmVsYXRp b24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJICogZnVuY3Rpb24sIHdoZW4gd2UgcmV0dXJu IHRoZSB2YWx1ZSB0byB0aGUgY2FsbGVyLCBzbyB0aGF0IHRoZSBjYWxsZXIKIAkgKiBkb2Vzbid0 IHNldCB0aGUgVk0gYml0IGluY29ycmVjdGx5LgogCSAqLwotCWlmIChwcnN0YXRlLmZyZWV6ZSkK KwlpZiAocHJzdGF0ZS5hdHRlbXB0X2ZyZWV6ZSkKIAl7CiAJCXByc3RhdGUuYWxsX3Zpc2libGUg PSB0cnVlOwogCQlwcnN0YXRlLmFsbF9mcm96ZW4gPSB0cnVlOwpAQCAtNTUxLDcgKzU1MSw3IEBA IGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVm ZmVyLAogCSAqIElmIGNoZWNrc3VtcyBhcmUgZW5hYmxlZCwgaGVhcF9wcnVuZV9zYXRpc2ZpZXNf dmFjdXVtKCkgbWF5IGhhdmUgY2F1c2VkCiAJICogYW4gRlBJIHRvIGJlIGVtaXR0ZWQuCiAJICov Ci0JaGludF9iaXRfZnBpID0gZnBpX2JlZm9yZSAhPSBwZ1dhbFVzYWdlLndhbF9mcGk7CisJZGlk X3R1cGxlX2hpbnRfZnBpID0gZnBpX2JlZm9yZSAhPSBwZ1dhbFVzYWdlLndhbF9mcGk7CiAKIAkv KgogCSAqIFByb2Nlc3MgSE9UIGNoYWlucy4KQEAgLTY1OSw3ICs2NTksNyBAQCBoZWFwX3BhZ2Vf cHJ1bmVfYW5kX2ZyZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKIAkgKiBw ZF9wcnVuZV94aWQgZmllbGQgb3IgdGhlIHBhZ2Ugd2FzIG1hcmtlZCBmdWxsLCB3ZSB3aWxsIHVw ZGF0ZSB0aGUgaGludAogCSAqIGJpdC4KIAkgKi8KLQlkb19oaW50ID0gKChQYWdlSGVhZGVyKSBw YWdlKS0+cGRfcHJ1bmVfeGlkICE9IHByc3RhdGUubmV3X3BydW5lX3hpZCB8fAorCWRvX2hpbnRf cHJ1bmUgPSAoKFBhZ2VIZWFkZXIpIHBhZ2UpLT5wZF9wcnVuZV94aWQgIT0gcHJzdGF0ZS5uZXdf cHJ1bmVfeGlkIHx8CiAJCVBhZ2VJc0Z1bGwocGFnZSk7CiAKIAkvKgpAQCAtNjY3LDcgKzY2Nyw3 IEBAIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIg YnVmZmVyLAogCSAqIHBsYW5zIHdlIHByZXBhcmVkLCBvciBub3QuCiAJICovCiAJZG9fZnJlZXpl ID0gZmFsc2U7Ci0JaWYgKHByc3RhdGUuZnJlZXplKQorCWlmIChwcnN0YXRlLmF0dGVtcHRfZnJl ZXplKQogCXsKIAkJaWYgKHByc3RhdGUucGFnZWZyei5mcmVlemVfcmVxdWlyZWQpCiAJCXsKQEAg LTcwMiwxNCArNzAyLDE0IEBAIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJl bGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogCQkJCSAqLwogCQkJCWlmIChSZWxhdGlvbk5lZWRzV0FM KHJlbGF0aW9uKSkKIAkJCQl7Ci0JCQkJCWlmIChoaW50X2JpdF9mcGkpCisJCQkJCWlmIChkaWRf dHVwbGVfaGludF9mcGkpCiAJCQkJCQlkb19mcmVlemUgPSB0cnVlOwogCQkJCQllbHNlIGlmIChk b19wcnVuZSkKIAkJCQkJewogCQkJCQkJaWYgKFhMb2dDaGVja0J1ZmZlck5lZWRzQmFja3VwKGJ1 ZmZlcikpCiAJCQkJCQkJZG9fZnJlZXplID0gdHJ1ZTsKIAkJCQkJfQotCQkJCQllbHNlIGlmIChk b19oaW50KQorCQkJCQllbHNlIGlmIChkb19oaW50X3BydW5lKQogCQkJCQl7CiAJCQkJCQlpZiAo WExvZ0hpbnRCaXRJc05lZWRlZCgpICYmIFhMb2dDaGVja0J1ZmZlck5lZWRzQmFja3VwKGJ1ZmZl cikpCiAJCQkJCQkJZG9fZnJlZXplID0gdHJ1ZTsKQEAgLTc1Miw3ICs3NTIsNyBAQCBoZWFwX3Bh Z2VfcHJ1bmVfYW5kX2ZyZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKIAkv KiBBbnkgZXJyb3Igd2hpbGUgYXBwbHlpbmcgdGhlIGNoYW5nZXMgaXMgY3JpdGljYWwgKi8KIAlT VEFSVF9DUklUX1NFQ1RJT04oKTsKIAotCWlmIChkb19oaW50KQorCWlmIChkb19oaW50X3BydW5l KQogCXsKIAkJLyoKIAkJICogVXBkYXRlIHRoZSBwYWdlJ3MgcGRfcHJ1bmVfeGlkIGZpZWxkIHRv IGVpdGhlciB6ZXJvLCBvciB0aGUgbG93ZXN0CkBAIC04OTMsNyArODkzLDcgQEAgaGVhcF9wYWdl X3BydW5lX2FuZF9mcmVlemUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJcHJl c3VsdC0+bHBkZWFkX2l0ZW1zID0gcHJzdGF0ZS5scGRlYWRfaXRlbXM7CiAJLyogdGhlIHByZXN1 bHQtPmRlYWRvZmZzZXRzIGFycmF5IHdhcyBhbHJlYWR5IGZpbGxlZCBpbiAqLwogCi0JaWYgKHBy c3RhdGUuZnJlZXplKQorCWlmIChwcnN0YXRlLmF0dGVtcHRfZnJlZXplKQogCXsKIAkJaWYgKHBy ZXN1bHQtPm5mcm96ZW4gPiAwKQogCQl7CkBAIC0xNDc1LDcgKzE0NzUsNyBAQCBoZWFwX3BydW5l X3JlY29yZF91bmNoYW5nZWRfbHBfbm9ybWFsKFBhZ2UgcGFnZSwgUHJ1bmVTdGF0ZSAqcHJzdGF0 ZSwgT2Zmc2V0TnVtYgogCX0KIAogCS8qIENvbnNpZGVyIGZyZWV6aW5nIGFueSBub3JtYWwgdHVw bGVzIHdoaWNoIHdpbGwgbm90IGJlIHJlbW92ZWQgKi8KLQlpZiAocHJzdGF0ZS0+ZnJlZXplKQor CWlmIChwcnN0YXRlLT5hdHRlbXB0X2ZyZWV6ZSkKIAl7CiAJCWJvb2wJCXRvdGFsbHlfZnJvemVu OwogCi0tIAoyLjQzLjAKCg== --000000000000cf342e063f082d09 Content-Type: text/x-patch; charset="US-ASCII"; name="v14-0002-Correct-prune-WAL-record-opcode-mention-in-comme.patch" Content-Disposition: attachment; filename="v14-0002-Correct-prune-WAL-record-opcode-mention-in-comme.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfonltmo1 RnJvbSBkODljMzkwNjFkMDA4Y2NmZTMwNmM5YzM5ZTdiNzRmOTU1NWE0YWMyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDE3IFNlcCAyMDI1IDE0OjU0OjQyIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTQgMDIvMjRdIENvcnJlY3QgcHJ1bmUgV0FMIHJlY29yZCBvcGNvZGUgbWVudGlvbiBp biBjb21tZW50CgpmODNkNzA5NzYwZDggaW5jb3JyZWN0bHkgcmVmZXJzIHRvIGEgWExPR19IRUFQ Ml9QUlVORV9GUkVFWkUgV0FMIHJlY29yZApvcGNvZGUuIE5vIHN1Y2ggY29kZSBleGlzdHMuIFRo ZSByZWxldmFudCBvcGNvZGVzIGFyZQpYTE9HX0hFQVAyX1BSVU5FX09OX0FDQ0VTUywgWExPR19I RUFQMl9QUlVORV9WQUNVVU1fU0NBTiwgYW5kClhMT0dfSEVBUDJfUFJVTkVfVkFDVVVNX0NMRUFO VVAuIENvcnJlY3QgaXQuCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMg fCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMgYi9zcmMv YmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYwppbmRleCA3ZWJkMjJmMDBhMy4uZDhlYTBj NzhmNzcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jCisr KyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jCkBAIC03OTQsNyArNzk0LDcg QEAgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBi dWZmZXIsCiAJCU1hcmtCdWZmZXJEaXJ0eShidWZmZXIpOwogCiAJCS8qCi0JCSAqIEVtaXQgYSBX QUwgWExPR19IRUFQMl9QUlVORV9GUkVFWkUgcmVjb3JkIHNob3dpbmcgd2hhdCB3ZSBkaWQKKwkJ ICogRW1pdCBhIFdBTCBYTE9HX0hFQVAyX1BSVU5FKiByZWNvcmQgc2hvd2luZyB3aGF0IHdlIGRp ZAogCQkgKi8KIAkJaWYgKFJlbGF0aW9uTmVlZHNXQUwocmVsYXRpb24pKQogCQl7CkBAIC0yMDI2 LDcgKzIwMjYsNyBAQCBoZWFwX2xvZ19mcmVlemVfcGxhbihIZWFwVHVwbGVGcmVlemUgKnR1cGxl cywgaW50IG50dXBsZXMsCiB9CiAKIC8qCi0gKiBXcml0ZSBhbiBYTE9HX0hFQVAyX1BSVU5FX0ZS RUVaRSBXQUwgcmVjb3JkCisgKiBXcml0ZSBhbiBYTE9HX0hFQVAyX1BSVU5FKiBXQUwgcmVjb3Jk CiAgKgogICogVGhpcyBpcyB1c2VkIGZvciBzZXZlcmFsIGRpZmZlcmVudCBwYWdlIG1haW50ZW5h bmNlIG9wZXJhdGlvbnM6CiAgKgotLSAKMi40My4wCgo= --000000000000cf342e063f082d09 Content-Type: text/x-patch; charset="US-ASCII"; name="v14-0004-Keep-all_frozen-updated-in-heap_page_prune_and_f.patch" Content-Disposition: attachment; filename="v14-0004-Keep-all_frozen-updated-in-heap_page_prune_and_f.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfonltmt3 RnJvbSA1MTcyOTQ4NmRiNzM1OTg5Mzc3ZDE4YmZjODU1ZDBkM2Q3ZjMyMTE0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDIzIEp1bCAyMDI1IDE2OjAxOjI0IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTQgMDQvMjRdIEtlZXAgYWxsX2Zyb3plbiB1cGRhdGVkIGluCiBoZWFwX3BhZ2VfcHJ1 bmVfYW5kX2ZyZWV6ZQoKV2UgcHJldmlvdXNseSByZWxpZWQgb24gb25seSB1c2luZyBhbGwtdmlz aWJsZSBhbmQgYWxsLWZyb3plbiB0b2dldGhlcgpidXQgaXQncyBiZXN0IHRvIGtlZXAgdGhlbSBi b3RoIHVwZGF0ZWQuCgpGdXR1cmUgY29tbWl0cyB3aWxsIHNlcGFyYXRlIHVzYWdlIG9mIHRoZXNl IGZpZWxkcywgc28gaXQgaXMgYmVzdCBub3QgdG8KcmVseSBvbiBhbGxfdmlzaWJsZSBmb3IgYWxs X2Zyb3plbidzIHZhbGlkaXR5LgotLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVh cC5jICB8IDIxICsrKysrKysrKystLS0tLS0tLS0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAv dmFjdXVtbGF6eS5jIHwgIDkgKysrKy0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDE0IGluc2VydGlv bnMoKyksIDE2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9o ZWFwL3BydW5laGVhcC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKaW5k ZXggMjhiZDZhNTY3NDkuLmVhODIxNmUwNjMyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nl c3MvaGVhcC9wcnVuZWhlYXAuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhl YXAuYwpAQCAtMTQyLDEwICsxNDIsNiBAQCB0eXBlZGVmIHN0cnVjdAogCSAqIHdoZXRoZXIgdG8g ZnJlZXplIHRoZSBwYWdlIG9yIG5vdC4gIFRoZSBhbGxfdmlzaWJsZSBhbmQgYWxsX2Zyb3plbgog CSAqIHZhbHVlcyByZXR1cm5lZCB0byB0aGUgY2FsbGVyIGFyZSBhZGp1c3RlZCB0byBpbmNsdWRl IExQX0RFQUQgaXRlbXMgYXQKIAkgKiB0aGUgZW5kLgotCSAqCi0JICogYWxsX2Zyb3plbiBzaG91 bGQgb25seSBiZSBjb25zaWRlcmVkIHZhbGlkIGlmIGFsbF92aXNpYmxlIGlzIGFsc28gc2V0Owot CSAqIHdlIGRvbid0IGJvdGhlciB0byBjbGVhciB0aGUgYWxsX2Zyb3plbiBmbGFnIGV2ZXJ5IHRp bWUgd2UgY2xlYXIgdGhlCi0JICogYWxsX3Zpc2libGUgZmxhZy4KIAkgKi8KIAlib29sCQlhbGxf dmlzaWJsZTsKIAlib29sCQlhbGxfZnJvemVuOwpAQCAtNjk2LDggKzY5MiwxMCBAQCBoZWFwX3Bh Z2VfcHJ1bmVfYW5kX2ZyZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKIAkJ CSAqIHVzZWQgYW55bW9yZS4gIFRoZSBvcHBvcnR1bmlzdGljIGZyZWV6ZSBoZXVyaXN0aWMgbXVz dCBiZQogCQkJICogaW1wcm92ZWQ7IGhvd2V2ZXIsIGZvciBub3csIHRyeSB0byBhcHByb3hpbWF0 ZSB0aGUgb2xkIGxvZ2ljLgogCQkJICovCi0JCQlpZiAocHJzdGF0ZS5hbGxfdmlzaWJsZSAmJiBw cnN0YXRlLmFsbF9mcm96ZW4gJiYgcHJzdGF0ZS5uZnJvemVuID4gMCkKKwkJCWlmIChwcnN0YXRl LmFsbF9mcm96ZW4gJiYgcHJzdGF0ZS5uZnJvemVuID4gMCkKIAkJCXsKKwkJCQlBc3NlcnQocHJz dGF0ZS5hbGxfdmlzaWJsZSk7CisKIAkJCQkvKgogCQkJCSAqIEZyZWV6aW5nIHdvdWxkIG1ha2Ug dGhlIHBhZ2UgYWxsLWZyb3plbi4gIEhhdmUgYWxyZWFkeQogCQkJCSAqIGVtaXR0ZWQgYW4gRlBJ IG9yIHdpbGwgZG8gc28gYW55d2F5PwpAQCAtNzUwLDYgKzc0OCw3IEBAIGhlYXBfcGFnZV9wcnVu ZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogCQkgKi8KIAl9 CiAKKwlBc3NlcnQoIXByc3RhdGUuYWxsX2Zyb3plbiB8fCBwcnN0YXRlLmFsbF92aXNpYmxlKTsK IAkvKiBBbnkgZXJyb3Igd2hpbGUgYXBwbHlpbmcgdGhlIGNoYW5nZXMgaXMgY3JpdGljYWwgKi8K IAlTVEFSVF9DUklUX1NFQ1RJT04oKTsKIApAQCAtODE5LDcgKzgxOCw3IEBAIGhlYXBfcGFnZV9w cnVuZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogCQkJICov CiAJCQlpZiAoZG9fZnJlZXplKQogCQkJewotCQkJCWlmIChwcnN0YXRlLmFsbF92aXNpYmxlICYm IHByc3RhdGUuYWxsX2Zyb3plbikKKwkJCQlpZiAocHJzdGF0ZS5hbGxfZnJvemVuKQogCQkJCQlm cnpfY29uZmxpY3RfaG9yaXpvbiA9IHByc3RhdGUudmlzaWJpbGl0eV9jdXRvZmZfeGlkOwogCQkJ CWVsc2UKIAkJCQl7CkBAIC0xMzgyLDcgKzEzODEsNyBAQCBoZWFwX3BydW5lX3JlY29yZF91bmNo YW5nZWRfbHBfbm9ybWFsKFBhZ2UgcGFnZSwgUHJ1bmVTdGF0ZSAqcHJzdGF0ZSwgT2Zmc2V0TnVt YgogCiAJCQkJaWYgKCFIZWFwVHVwbGVIZWFkZXJYbWluQ29tbWl0dGVkKGh0dXApKQogCQkJCXsK LQkJCQkJcHJzdGF0ZS0+YWxsX3Zpc2libGUgPSBmYWxzZTsKKwkJCQkJcHJzdGF0ZS0+YWxsX3Zp c2libGUgPSBwcnN0YXRlLT5hbGxfZnJvemVuID0gZmFsc2U7CiAJCQkJCWJyZWFrOwogCQkJCX0K IApAQCAtMTQwNCw3ICsxNDAzLDcgQEAgaGVhcF9wcnVuZV9yZWNvcmRfdW5jaGFuZ2VkX2xwX25v cm1hbChQYWdlIHBhZ2UsIFBydW5lU3RhdGUgKnByc3RhdGUsIE9mZnNldE51bWIKIAkJCQlBc3Nl cnQocHJzdGF0ZS0+Y3V0b2Zmcyk7CiAJCQkJaWYgKCFUcmFuc2FjdGlvbklkUHJlY2VkZXMoeG1p biwgcHJzdGF0ZS0+Y3V0b2Zmcy0+T2xkZXN0WG1pbikpCiAJCQkJewotCQkJCQlwcnN0YXRlLT5h bGxfdmlzaWJsZSA9IGZhbHNlOworCQkJCQlwcnN0YXRlLT5hbGxfdmlzaWJsZSA9IHByc3RhdGUt PmFsbF9mcm96ZW4gPSBmYWxzZTsKIAkJCQkJYnJlYWs7CiAJCQkJfQogCkBAIC0xNDE3LDcgKzE0 MTYsNyBAQCBoZWFwX3BydW5lX3JlY29yZF91bmNoYW5nZWRfbHBfbm9ybWFsKFBhZ2UgcGFnZSwg UHJ1bmVTdGF0ZSAqcHJzdGF0ZSwgT2Zmc2V0TnVtYgogCiAJCWNhc2UgSEVBUFRVUExFX1JFQ0VO VExZX0RFQUQ6CiAJCQlwcnN0YXRlLT5yZWNlbnRseV9kZWFkX3R1cGxlcysrOwotCQkJcHJzdGF0 ZS0+YWxsX3Zpc2libGUgPSBmYWxzZTsKKwkJCXByc3RhdGUtPmFsbF92aXNpYmxlID0gcHJzdGF0 ZS0+YWxsX2Zyb3plbiA9IGZhbHNlOwogCiAJCQkvKgogCQkJICogVGhpcyB0dXBsZSB3aWxsIHNv b24gYmVjb21lIERFQUQuICBVcGRhdGUgdGhlIGhpbnQgZmllbGQgc28KQEAgLTE0MzYsNyArMTQz NSw3IEBAIGhlYXBfcHJ1bmVfcmVjb3JkX3VuY2hhbmdlZF9scF9ub3JtYWwoUGFnZSBwYWdlLCBQ cnVuZVN0YXRlICpwcnN0YXRlLCBPZmZzZXROdW1iCiAJCQkgKiBhc3N1bXB0aW9uIGlzIGEgYml0 IHNoYWt5LCBidXQgaXQgaXMgd2hhdCBhY3F1aXJlX3NhbXBsZV9yb3dzKCkKIAkJCSAqIGRvZXMs IHNvIGJlIGNvbnNpc3RlbnQuCiAJCQkgKi8KLQkJCXByc3RhdGUtPmFsbF92aXNpYmxlID0gZmFs c2U7CisJCQlwcnN0YXRlLT5hbGxfdmlzaWJsZSA9IHByc3RhdGUtPmFsbF9mcm96ZW4gPSBmYWxz ZTsKIAogCQkJLyoKIAkJCSAqIElmIHdlIHdhbnRlZCB0byBvcHRpbWl6ZSBmb3IgYWJvcnRzLCB3 ZSBtaWdodCBjb25zaWRlciBtYXJraW5nCkBAIC0xNDU0LDcgKzE0NTMsNyBAQCBoZWFwX3BydW5l X3JlY29yZF91bmNoYW5nZWRfbHBfbm9ybWFsKFBhZ2UgcGFnZSwgUHJ1bmVTdGF0ZSAqcHJzdGF0 ZSwgT2Zmc2V0TnVtYgogCQkJICogd2lsbCBjb21taXQgYW5kIHVwZGF0ZSB0aGUgY291bnRlcnMg YWZ0ZXIgd2UgcmVwb3J0LgogCQkJICovCiAJCQlwcnN0YXRlLT5saXZlX3R1cGxlcysrOwotCQkJ cHJzdGF0ZS0+YWxsX3Zpc2libGUgPSBmYWxzZTsKKwkJCXByc3RhdGUtPmFsbF92aXNpYmxlID0g cHJzdGF0ZS0+YWxsX2Zyb3plbiA9IGZhbHNlOwogCiAJCQkvKgogCQkJICogVGhpcyB0dXBsZSBt YXkgc29vbiBiZWNvbWUgREVBRC4gIFVwZGF0ZSB0aGUgaGludCBmaWVsZCBzbyB0aGF0CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgYi9zcmMvYmFja2Vu ZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKaW5kZXggZGRjOTY3NzY5NGMuLjUwY2M4OTgwODdm IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKKysrIGIv c3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCkBAIC0yMDAzLDcgKzIwMDMsNiBA QCBsYXp5X3NjYW5fcHJ1bmUoTFZSZWxTdGF0ZSAqdmFjcmVsLAogCSAqIGFncmVlbWVudCB3aXRo IGhlYXBfcGFnZV9pc19hbGxfdmlzaWJsZSgpIHVzaW5nIGFuIGFzc2VydGlvbi4KIAkgKi8KICNp ZmRlZiBVU0VfQVNTRVJUX0NIRUNLSU5HCi0JLyogTm90ZSB0aGF0IGFsbF9mcm96ZW4gdmFsdWUg ZG9lcyBub3QgbWF0dGVyIHdoZW4gIWFsbF92aXNpYmxlICovCiAJaWYgKHByZXN1bHQuYWxsX3Zp c2libGUpCiAJewogCQlUcmFuc2FjdGlvbklkIGRlYnVnX2N1dG9mZjsKQEAgLTIwNTYsNiArMjA1 NSw3IEBAIGxhenlfc2Nhbl9wcnVuZShMVlJlbFN0YXRlICp2YWNyZWwsCiAJKmhhc19scGRlYWRf aXRlbXMgPSAocHJlc3VsdC5scGRlYWRfaXRlbXMgPiAwKTsKIAogCUFzc2VydCghcHJlc3VsdC5h bGxfdmlzaWJsZSB8fCAhKCpoYXNfbHBkZWFkX2l0ZW1zKSk7CisJQXNzZXJ0KCFwcmVzdWx0LmFs bF9mcm96ZW4gfHwgcHJlc3VsdC5hbGxfdmlzaWJsZSk7CiAKIAkvKgogCSAqIEhhbmRsZSBzZXR0 aW5nIHZpc2liaWxpdHkgbWFwIGJpdCBiYXNlZCBvbiBpbmZvcm1hdGlvbiBmcm9tIHRoZSBWTSAo YXMKQEAgLTIxNjEsMTEgKzIxNjEsMTAgQEAgbGF6eV9zY2FuX3BydW5lKExWUmVsU3RhdGUgKnZh Y3JlbCwKIAogCS8qCiAJICogSWYgdGhlIGFsbC12aXNpYmxlIHBhZ2UgaXMgYWxsLWZyb3plbiBi dXQgbm90IG1hcmtlZCBhcyBzdWNoIHlldCwgbWFyawotCSAqIGl0IGFzIGFsbC1mcm96ZW4uICBO b3RlIHRoYXQgYWxsX2Zyb3plbiBpcyBvbmx5IHZhbGlkIGlmIGFsbF92aXNpYmxlIGlzCi0JICog dHJ1ZSwgc28gd2UgbXVzdCBjaGVjayBib3RoIGFsbF92aXNpYmxlIGFuZCBhbGxfZnJvemVuLgor CSAqIGl0IGFzIGFsbC1mcm96ZW4uCiAJICovCi0JZWxzZSBpZiAoYWxsX3Zpc2libGVfYWNjb3Jk aW5nX3RvX3ZtICYmIHByZXN1bHQuYWxsX3Zpc2libGUgJiYKLQkJCSBwcmVzdWx0LmFsbF9mcm96 ZW4gJiYgIVZNX0FMTF9GUk9aRU4odmFjcmVsLT5yZWwsIGJsa25vLCAmdm1idWZmZXIpKQorCWVs c2UgaWYgKGFsbF92aXNpYmxlX2FjY29yZGluZ190b192bSAmJiBwcmVzdWx0LmFsbF9mcm96ZW4g JiYKKwkJCSAhVk1fQUxMX0ZST1pFTih2YWNyZWwtPnJlbCwgYmxrbm8sICZ2bWJ1ZmZlcikpCiAJ ewogCQl1aW50OAkJb2xkX3ZtYml0czsKIAotLSAKMi40My4wCgo= --000000000000cf342e063f082d09 Content-Type: text/x-patch; charset="US-ASCII"; name="v14-0001-Eliminate-COPY-FREEZE-use-of-XLOG_HEAP2_VISIBLE.patch" Content-Disposition: attachment; filename="v14-0001-Eliminate-COPY-FREEZE-use-of-XLOG_HEAP2_VISIBLE.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfonltmh0 RnJvbSBjYWNmZjZjOTVlMzhkMzcwYjg3MTQ4YmM0OGNmNmFjNWYwODZlZDA3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUdWUsIDE3IEp1biAyMDI1IDE3OjIyOjEwIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTQgMDEvMjRdIEVsaW1pbmF0ZSBDT1BZIEZSRUVaRSB1c2Ugb2YgWExPR19IRUFQMl9W SVNJQkxFCgpJbnN0ZWFkIG9mIGVtaXR0aW5nIGEgc2VwYXJhdGUgV0FMIFhMT0dfSEVBUDJfVklT SUJMRSByZWNvcmQgZm9yIHNldHRpbmcKYml0cyBpbiB0aGUgVk0sIHNwZWNpZnkgdGhlIGNoYW5n ZXMgdG8gbWFrZSB0byB0aGUgVk0gYmxvY2sgaW4gdGhlClhMT0dfSEVBUDJfTVVMVElfSU5TRVJU IHJlY29yZC4KClRoaXMgaGFsdmVzIHRoZSBudW1iZXIgb2YgV0FMIHJlY29yZHMgZW1pdHRlZCBi eSBDT1BZIEZSRUVaRS4KCkF1dGhvcjogTWVsYW5pZSBQbGFnZW1hbiA8bWVsYW5pZXBsYWdlbWFu QGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IFJvYmVydCBIYWFzIDxyb2JlcnRtaGFhc0BnbWFpbC5j b20+ClJldmlld2VkLWJ5OiBBbmRyZXMgRnJldW5kIDxhbmRyZXNAYW5hcmF6ZWwuZGU+ClJldmll d2VkLWJ5OiBLaXJpbGwgUmVzaGtlIDxyZXNoa2VraXJpbGxAZ21haWwuY29tPgpEaXNjdXNzaW9u OiBodHRwczovL3Bvc3Rnci5lcy9tL2ZsYXQvQ0FBS1J1X1pNdzZOcGRfcW0yS00lMkJGd1EzY01P TXgxRGgzVk1ocDgtVjdTT0x4ZEs5LWclNDBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5k L2FjY2Vzcy9oZWFwL2hlYXBhbS5jICAgICAgICB8IDQ0ICsrKysrKysrKystLS0tLS0KIHNyYy9i YWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV94bG9nLmMgICB8IDU0ICsrKysrKysrKysrKysrKysr KystCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92aXNpYmlsaXR5bWFwLmMgfCA2NyArKysrKysr KysrKysrKysrKysrKysrKystCiBzcmMvYmFja2VuZC9hY2Nlc3Mvcm1ncmRlc2MvaGVhcGRlc2Mu YyAgfCAgNSArKwogc3JjL2luY2x1ZGUvYWNjZXNzL3Zpc2liaWxpdHltYXAuaCAgICAgIHwgIDIg KwogNSBmaWxlcyBjaGFuZ2VkLCAxNTQgaW5zZXJ0aW9ucygrKSwgMTggZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMgYi9zcmMvYmFja2Vu ZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYwppbmRleCA0YzVhZTIwNWE3YS4uYzhjZDlkMjI3MjYgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCisrKyBiL3NyYy9iYWNr ZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCkBAIC0yNDY2LDcgKzI0NjYsMTEgQEAgaGVhcF9tdWx0 aV9pbnNlcnQoUmVsYXRpb24gcmVsYXRpb24sIFR1cGxlVGFibGVTbG90ICoqc2xvdHMsIGludCBu dHVwbGVzLAogCQlzdGFydGluZ193aXRoX2VtcHR5X3BhZ2UgPSBQYWdlR2V0TWF4T2Zmc2V0TnVt YmVyKHBhZ2UpID09IDA7CiAKIAkJaWYgKHN0YXJ0aW5nX3dpdGhfZW1wdHlfcGFnZSAmJiAob3B0 aW9ucyAmIEhFQVBfSU5TRVJUX0ZST1pFTikpCisJCXsKIAkJCWFsbF9mcm96ZW5fc2V0ID0gdHJ1 ZTsKKwkJCS8qIExvY2sgdGhlIHZtYnVmZmVyIGJlZm9yZSBlbnRlcmluZyB0aGUgY3JpdGljYWwg c2VjdGlvbiAqLworCQkJTG9ja0J1ZmZlcih2bWJ1ZmZlciwgQlVGRkVSX0xPQ0tfRVhDTFVTSVZF KTsKKwkJfQogCiAJCS8qIE5PIEVSRVBPUlQoRVJST1IpIGZyb20gaGVyZSB0aWxsIGNoYW5nZXMg YXJlIGxvZ2dlZCAqLwogCQlTVEFSVF9DUklUX1NFQ1RJT04oKTsKQEAgLTI1MDYsNyArMjUxMCw4 IEBAIGhlYXBfbXVsdGlfaW5zZXJ0KFJlbGF0aW9uIHJlbGF0aW9uLCBUdXBsZVRhYmxlU2xvdCAq KnNsb3RzLCBpbnQgbnR1cGxlcywKIAkJICogZ29pbmcgdG8gYWRkIGZ1cnRoZXIgZnJvemVuIHJv d3MgdG8gaXQuCiAJCSAqCiAJCSAqIElmIHdlJ3JlIG9ubHkgYWRkaW5nIGFscmVhZHkgZnJvemVu IHJvd3MgdG8gYSBwcmV2aW91c2x5IGVtcHR5Ci0JCSAqIHBhZ2UsIG1hcmsgaXQgYXMgYWxsLXZp c2libGUuCisJCSAqIHBhZ2UsIG1hcmsgaXQgYXMgYWxsLWZyb3plbiBhbmQgdXBkYXRlIHRoZSB2 aXNpYmlsaXR5IG1hcC4gV2UncmUKKwkJICogYWxyZWFkeSBob2xkaW5nIGEgcGluIG9uIHRoZSB2 bWJ1ZmZlci4KIAkJICovCiAJCWlmIChQYWdlSXNBbGxWaXNpYmxlKHBhZ2UpICYmICEob3B0aW9u cyAmIEhFQVBfSU5TRVJUX0ZST1pFTikpCiAJCXsKQEAgLTI1MTcsNyArMjUyMiwxNCBAQCBoZWFw X211bHRpX2luc2VydChSZWxhdGlvbiByZWxhdGlvbiwgVHVwbGVUYWJsZVNsb3QgKipzbG90cywg aW50IG50dXBsZXMsCiAJCQkJCQkJCXZtYnVmZmVyLCBWSVNJQklMSVRZTUFQX1ZBTElEX0JJVFMp OwogCQl9CiAJCWVsc2UgaWYgKGFsbF9mcm96ZW5fc2V0KQorCQl7CiAJCQlQYWdlU2V0QWxsVmlz aWJsZShwYWdlKTsKKwkJCXZpc2liaWxpdHltYXBfc2V0X3ZtYml0cyhyZWxhdGlvbiwKKwkJCQkJ CQkJCSBCdWZmZXJHZXRCbG9ja051bWJlcihidWZmZXIpLAorCQkJCQkJCQkJIHZtYnVmZmVyLAor CQkJCQkJCQkJIFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEUgfAorCQkJCQkJCQkJIFZJU0lCSUxJ VFlNQVBfQUxMX0ZST1pFTik7CisJCX0KIAogCQkvKgogCQkgKiBYWFggU2hvdWxkIHdlIHNldCBQ YWdlU2V0UHJ1bmFibGUgb24gdGhpcyBwYWdlID8gU2VlIGhlYXBfaW5zZXJ0KCkKQEAgLTI1NjUs NiArMjU3NywxMiBAQCBoZWFwX211bHRpX2luc2VydChSZWxhdGlvbiByZWxhdGlvbiwgVHVwbGVU YWJsZVNsb3QgKipzbG90cywgaW50IG50dXBsZXMsCiAJCQl4bHJlYy0+ZmxhZ3MgPSAwOwogCQkJ aWYgKGFsbF92aXNpYmxlX2NsZWFyZWQpCiAJCQkJeGxyZWMtPmZsYWdzID0gWExIX0lOU0VSVF9B TExfVklTSUJMRV9DTEVBUkVEOworCisJCQkvKgorCQkJICogV2UgZG9uJ3QgaGF2ZSB0byB3b3Jy eSBhYm91dCBpbmNsdWRpbmcgYSBjb25mbGljdCB4aWQgaW4gdGhlCisJCQkgKiBXQUwgcmVjb3Jk IGFzIEhFQVBfSU5TRVJUX0ZST1pFTiBpbnRlbnRpb25hbGx5IHZpb2xhdGVzCisJCQkgKiB2aXNp YmlsaXR5IHJ1bGVzLgorCQkJICovCiAJCQlpZiAoYWxsX2Zyb3plbl9zZXQpCiAJCQkJeGxyZWMt PmZsYWdzID0gWExIX0lOU0VSVF9BTExfRlJPWkVOX1NFVDsKIApAQCAtMjYyNyw3ICsyNjQ1LDEw IEBAIGhlYXBfbXVsdGlfaW5zZXJ0KFJlbGF0aW9uIHJlbGF0aW9uLCBUdXBsZVRhYmxlU2xvdCAq KnNsb3RzLCBpbnQgbnR1cGxlcywKIAogCQkJWExvZ0JlZ2luSW5zZXJ0KCk7CiAJCQlYTG9nUmVn aXN0ZXJEYXRhKHhscmVjLCB0dXBsZWRhdGEgLSBzY3JhdGNoLmRhdGEpOworCiAJCQlYTG9nUmVn aXN0ZXJCdWZmZXIoMCwgYnVmZmVyLCBSRUdCVUZfU1RBTkRBUkQgfCBidWZmbGFncyk7CisJCQlp ZiAoYWxsX2Zyb3plbl9zZXQpCisJCQkJWExvZ1JlZ2lzdGVyQnVmZmVyKDEsIHZtYnVmZmVyLCAw KTsKIAogCQkJWExvZ1JlZ2lzdGVyQnVmRGF0YSgwLCB0dXBsZWRhdGEsIHRvdGFsZGF0YWxlbik7 CiAKQEAgLTI2MzcsMjYgKzI2NTgsMTcgQEAgaGVhcF9tdWx0aV9pbnNlcnQoUmVsYXRpb24gcmVs YXRpb24sIFR1cGxlVGFibGVTbG90ICoqc2xvdHMsIGludCBudHVwbGVzLAogCQkJcmVjcHRyID0g WExvZ0luc2VydChSTV9IRUFQMl9JRCwgaW5mbyk7CiAKIAkJCVBhZ2VTZXRMU04ocGFnZSwgcmVj cHRyKTsKKwkJCWlmIChhbGxfZnJvemVuX3NldCkKKwkJCXsKKwkJCQlBc3NlcnQoQnVmZmVySXNE aXJ0eSh2bWJ1ZmZlcikpOworCQkJCVBhZ2VTZXRMU04oQnVmZmVyR2V0UGFnZSh2bWJ1ZmZlciks IHJlY3B0cik7CisJCQl9CiAJCX0KIAogCQlFTkRfQ1JJVF9TRUNUSU9OKCk7CiAKLQkJLyoKLQkJ ICogSWYgd2UndmUgZnJvemVuIGV2ZXJ5dGhpbmcgb24gdGhlIHBhZ2UsIHVwZGF0ZSB0aGUgdmlz aWJpbGl0eW1hcC4KLQkJICogV2UncmUgYWxyZWFkeSBob2xkaW5nIHBpbiBvbiB0aGUgdm1idWZm ZXIuCi0JCSAqLwogCQlpZiAoYWxsX2Zyb3plbl9zZXQpCi0JCXsKLQkJCS8qCi0JCQkgKiBJdCdz IGZpbmUgdG8gdXNlIEludmFsaWRUcmFuc2FjdGlvbklkIGhlcmUgLSB0aGlzIGlzIG9ubHkgdXNl ZAotCQkJICogd2hlbiBIRUFQX0lOU0VSVF9GUk9aRU4gaXMgc3BlY2lmaWVkLCB3aGljaCBpbnRl bnRpb25hbGx5Ci0JCQkgKiB2aW9sYXRlcyB2aXNpYmlsaXR5IHJ1bGVzLgotCQkJICovCi0JCQl2 aXNpYmlsaXR5bWFwX3NldChyZWxhdGlvbiwgQnVmZmVyR2V0QmxvY2tOdW1iZXIoYnVmZmVyKSwg YnVmZmVyLAotCQkJCQkJCSAgSW52YWxpZFhMb2dSZWNQdHIsIHZtYnVmZmVyLAotCQkJCQkJCSAg SW52YWxpZFRyYW5zYWN0aW9uSWQsCi0JCQkJCQkJICBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxF IHwgVklTSUJJTElUWU1BUF9BTExfRlJPWkVOKTsKLQkJfQorCQkJTG9ja0J1ZmZlcih2bWJ1ZmZl ciwgQlVGRkVSX0xPQ0tfVU5MT0NLKTsKIAogCQlVbmxvY2tSZWxlYXNlQnVmZmVyKGJ1ZmZlcik7 CiAJCW5kb25lICs9IG50aGlzcGFnZTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9o ZWFwL2hlYXBhbV94bG9nLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1feGxvZy5j CmluZGV4IGNmODQzMjc3OTM4Li5mYWE3YzU2MWE4YSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv YWNjZXNzL2hlYXAvaGVhcGFtX3hsb2cuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9o ZWFwYW1feGxvZy5jCkBAIC01NTEsNiArNTUxLDcgQEAgaGVhcF94bG9nX211bHRpX2luc2VydChY TG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAlpbnQJCQlpOwogCWJvb2wJCWlzaW5pdCA9IChYTG9n UmVjR2V0SW5mbyhyZWNvcmQpICYgWExPR19IRUFQX0lOSVRfUEFHRSkgIT0gMDsKIAlYTG9nUmVk b0FjdGlvbiBhY3Rpb247CisJQnVmZmVyCQl2bWJ1ZmZlciA9IEludmFsaWRCdWZmZXI7CiAKIAkv KgogCSAqIEluc2VydGlvbiBkb2Vzbid0IG92ZXJ3cml0ZSBNVkNDIGRhdGEsIHNvIG5vIGNvbmZs aWN0IHByb2Nlc3NpbmcgaXMKQEAgLTU3MSwxMSArNTcyLDExIEBAIGhlYXBfeGxvZ19tdWx0aV9p bnNlcnQoWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAJaWYgKHhscmVjLT5mbGFncyAmIFhMSF9J TlNFUlRfQUxMX1ZJU0lCTEVfQ0xFQVJFRCkKIAl7CiAJCVJlbGF0aW9uCXJlbG4gPSBDcmVhdGVG YWtlUmVsY2FjaGVFbnRyeShybG9jYXRvcik7Ci0JCUJ1ZmZlcgkJdm1idWZmZXIgPSBJbnZhbGlk QnVmZmVyOwogCiAJCXZpc2liaWxpdHltYXBfcGluKHJlbG4sIGJsa25vLCAmdm1idWZmZXIpOwog CQl2aXNpYmlsaXR5bWFwX2NsZWFyKHJlbG4sIGJsa25vLCB2bWJ1ZmZlciwgVklTSUJJTElUWU1B UF9WQUxJRF9CSVRTKTsKIAkJUmVsZWFzZUJ1ZmZlcih2bWJ1ZmZlcik7CisJCXZtYnVmZmVyID0g SW52YWxpZEJ1ZmZlcjsKIAkJRnJlZUZha2VSZWxjYWNoZUVudHJ5KHJlbG4pOwogCX0KIApAQCAt NjYyLDYgKzY2Myw1NyBAQCBoZWFwX3hsb2dfbXVsdGlfaW5zZXJ0KFhMb2dSZWFkZXJTdGF0ZSAq cmVjb3JkKQogCWlmIChCdWZmZXJJc1ZhbGlkKGJ1ZmZlcikpCiAJCVVubG9ja1JlbGVhc2VCdWZm ZXIoYnVmZmVyKTsKIAorCWJ1ZmZlciA9IEludmFsaWRCdWZmZXI7CisKKwkvKgorCSAqIE5vdyBy ZWFkIGFuZCB1cGRhdGUgdGhlIFZNIGJsb2NrLgorCSAqCisJICogTm90ZSB0aGF0IHRoZSBoZWFw IHJlbGF0aW9uIG1heSBoYXZlIGJlZW4gZHJvcHBlZCBvciB0cnVuY2F0ZWQsIGxlYWRpbmcKKwkg KiB1cyB0byBza2lwIHVwZGF0aW5nIHRoZSBoZWFwIGJsb2NrIGR1ZSB0byB0aGUgTFNOIGludGVy bG9jay4gSG93ZXZlciwKKwkgKiBldmVuIGluIHRoYXQgY2FzZSwgaXQncyBzdGlsbCBzYWZlIHRv IHVwZGF0ZSB0aGUgdmlzaWJpbGl0eSBtYXAuIEFueQorCSAqIFdBTCByZWNvcmQgdGhhdCBjbGVh cnMgdGhlIHZpc2liaWxpdHkgbWFwIGJpdCBkb2VzIHNvIGJlZm9yZSBjaGVja2luZworCSAqIHRo ZSBwYWdlIExTTiwgc28gYW55IGJpdHMgdGhhdCBuZWVkIHRvIGJlIGNsZWFyZWQgd2lsbCBzdGls bCBiZQorCSAqIGNsZWFyZWQuCisJICoKKwkgKiBOb3RlIHRoYXQgdGhlIGxvY2sgb24gdGhlIGhl YXAgcGFnZSB3YXMgZHJvcHBlZCBhYm92ZS4gSW4gbm9ybWFsCisJICogb3BlcmF0aW9uIHRoaXMg d291bGQgbmV2ZXIgYmUgc2FmZSBiZWNhdXNlIGEgY29uY3VycmVudCBxdWVyeSBjb3VsZAorCSAq IG1vZGlmeSB0aGUgaGVhcCBwYWdlIGFuZCBjbGVhciBQRF9BTExfVklTSUJMRSAtLSB2aW9sYXRp bmcgdGhlCisJICogaW52YXJpYW50IHRoYXQgUERfQUxMX1ZJU0lCTEUgbXVzdCBiZSBzZXQgaWYg dGhlIGNvcnJlc3BvbmRpbmcgYml0IGluCisJICogdGhlIFZNIGlzIHNldC4KKwkgKgorCSAqIElu IHJlY292ZXJ5LCB3ZSBleHBlY3Qgbm8gb3RoZXIgd3JpdGVycywgc28gd3JpdGluZyB0byB0aGUg Vk0gcGFnZQorCSAqIHdpdGhvdXQgaG9sZGluZyBhIGxvY2sgb24gdGhlIGhlYXAgcGFnZSBpcyBj b25zaWRlcmVkIHNhZmUgZW5vdWdoLiBJdAorCSAqIGlzIGRvbmUgdGhpcyB3YXkgd2hlbiByZXBs YXlpbmcgeGxfaGVhcF92aXNpYmxlIHJlY29yZHMgKHNlZQorCSAqIGhlYXBfeGxvZ192aXNpYmxl KCkpLgorCSAqLworCWlmICh4bHJlYy0+ZmxhZ3MgJiBYTEhfSU5TRVJUX0FMTF9GUk9aRU5fU0VU ICYmCisJCVhMb2dSZWFkQnVmZmVyRm9yUmVkb0V4dGVuZGVkKHJlY29yZCwgMSwgUkJNX1pFUk9f T05fRVJST1IsIGZhbHNlLAorCQkJCQkJCQkJICAmdm1idWZmZXIpID09IEJMS19ORUVEU19SRURP KQorCXsKKwkJUGFnZQkJdm1wYWdlID0gQnVmZmVyR2V0UGFnZSh2bWJ1ZmZlcik7CisJCVJlbGF0 aW9uCXJlbG4gPSBDcmVhdGVGYWtlUmVsY2FjaGVFbnRyeShybG9jYXRvcik7CisKKwkJLyogaW5p dGlhbGl6ZSB0aGUgcGFnZSBpZiBpdCB3YXMgcmVhZCBhcyB6ZXJvcyAqLworCQlpZiAoUGFnZUlz TmV3KHZtcGFnZSkpCisJCQlQYWdlSW5pdCh2bXBhZ2UsIEJMQ0tTWiwgMCk7CisKKwkJdmlzaWJp bGl0eW1hcF9zZXRfdm1iaXRzKHJlbG4sIGJsa25vLAorCQkJCQkJCQkgdm1idWZmZXIsCisJCQkJ CQkJCSBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxFIHwKKwkJCQkJCQkJIFZJU0lCSUxJVFlNQVBf QUxMX0ZST1pFTik7CisKKwkJLyoKKwkJICogSXQgaXMgbm90IHBvc3NpYmxlIHRoYXQgdGhlIFZN IHdhcyBhbHJlYWR5IHNldCBmb3IgdGhpcyBoZWFwIHBhZ2UsCisJCSAqIHNvIHRoZSB2bWJ1ZmZl ciBtdXN0IGhhdmUgYmVlbiBtb2RpZmllZCBhbmQgbWFya2VkIGRpcnR5LgorCQkgKi8KKwkJQXNz ZXJ0KEJ1ZmZlcklzRGlydHkodm1idWZmZXIpKTsKKwkJUGFnZVNldExTTihCdWZmZXJHZXRQYWdl KHZtYnVmZmVyKSwgbHNuKTsKKwkJRnJlZUZha2VSZWxjYWNoZUVudHJ5KHJlbG4pOworCX0KKwor CWlmIChCdWZmZXJJc1ZhbGlkKHZtYnVmZmVyKSkKKwkJVW5sb2NrUmVsZWFzZUJ1ZmZlcih2bWJ1 ZmZlcik7CisKIAkvKgogCSAqIElmIHRoZSBwYWdlIGlzIHJ1bm5pbmcgbG93IG9uIGZyZWUgc3Bh Y2UsIHVwZGF0ZSB0aGUgRlNNIGFzIHdlbGwuCiAJICogQXJiaXRyYXJpbHksIG91ciBkZWZpbml0 aW9uIG9mICJsb3ciIGlzIGxlc3MgdGhhbiAyMCUuIFdlIGNhbid0IGRvIG11Y2gKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Zpc2liaWxpdHltYXAuYyBiL3NyYy9iYWNrZW5k L2FjY2Vzcy9oZWFwL3Zpc2liaWxpdHltYXAuYwppbmRleCA3MzA2YzE2ZjA1Yy4uYWE0OGE0MzYx MDggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Zpc2liaWxpdHltYXAuYwor KysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92aXNpYmlsaXR5bWFwLmMKQEAgLTE0LDcgKzE0 LDggQEAKICAqCQl2aXNpYmlsaXR5bWFwX2NsZWFyICAtIGNsZWFyIGJpdHMgZm9yIG9uZSBwYWdl IGluIHRoZSB2aXNpYmlsaXR5IG1hcAogICoJCXZpc2liaWxpdHltYXBfcGluCSAtIHBpbiBhIG1h cCBwYWdlIGZvciBzZXR0aW5nIGEgYml0CiAgKgkJdmlzaWJpbGl0eW1hcF9waW5fb2sgLSBjaGVj ayB3aGV0aGVyIGNvcnJlY3QgbWFwIHBhZ2UgaXMgYWxyZWFkeSBwaW5uZWQKLSAqCQl2aXNpYmls aXR5bWFwX3NldAkgLSBzZXQgYSBiaXQgaW4gYSBwcmV2aW91c2x5IHBpbm5lZCBwYWdlCisgKgkJ dmlzaWJpbGl0eW1hcF9zZXQJIC0gc2V0IGJpdChzKSBpbiBhIHByZXZpb3VzbHkgcGlubmVkIHBh Z2UgYW5kIGxvZworICoJCXZpc2liaWxpdHltYXBfc2V0X3ZtYml0cyAtIHNldCBiaXQocykgaW4g YSBwaW5uZWQgcGFnZQogICoJCXZpc2liaWxpdHltYXBfZ2V0X3N0YXR1cyAtIGdldCBzdGF0dXMg b2YgYml0cwogICoJCXZpc2liaWxpdHltYXBfY291bnQgIC0gY291bnQgbnVtYmVyIG9mIGJpdHMg c2V0IGluIHZpc2liaWxpdHkgbWFwCiAgKgkJdmlzaWJpbGl0eW1hcF9wcmVwYXJlX3RydW5jYXRl IC0KQEAgLTMyMSw2ICszMjIsNzAgQEAgdmlzaWJpbGl0eW1hcF9zZXQoUmVsYXRpb24gcmVsLCBC bG9ja051bWJlciBoZWFwQmxrLCBCdWZmZXIgaGVhcEJ1ZiwKIAlyZXR1cm4gc3RhdHVzOwogfQog CisvKgorICogU2V0IGZsYWdzIGluIHRoZSBWTSBibG9jayBjb250YWluZWQgaW4gdGhlIHBhc3Nl ZCBpbiB2bUJ1Zi4KKyAqCisgKiBUaGlzIGZ1bmN0aW9uIGlzIGZvciBjYWxsZXJzIHdoaWNoIGlu Y2x1ZGUgdGhlIFZNIGNoYW5nZXMgaW4gdGhlIHNhbWUgV0FMCisgKiByZWNvcmQgYXMgdGhlIG1v ZGlmaWNhdGlvbnMgb2YgdGhlIGhlYXAgcGFnZSB3aGljaCByZW5kZXJlZCBpdCBhbGwtdmlzaWJs ZS4KKyAqIENhbGxlcnMgc2VwYXJhdGVseSBsb2dnaW5nIHRoZSBWTSBjaGFuZ2VzIHNob3VsZCBp bnZva2UgdmlzaWJpbGl0eW1hcF9zZXQoKQorICogaW5zdGVhZC4KKyAqCisgKiBDYWxsZXIgbXVz dCBoYXZlIHBpbm5lZCBhbmQgZXhjbHVzaXZlIGxvY2tlZCB0aGUgY29ycmVjdCBibG9jayBvZiB0 aGUgVk0gaW4KKyAqIHZtQnVmLiBUaGlzIGJsb2NrIHNob3VsZCBjb250YWluIHRoZSBWTSBiaXRz IGZvciB0aGUgZ2l2ZW4gaGVhcEJsay4KKyAqCisgKiBEdXJpbmcgbm9ybWFsIG9wZXJhdGlvbiAo aS5lLiBub3QgcmVjb3ZlcnkpLCB0aGlzIHNob3VsZCBiZSBjYWxsZWQgaW4gYQorICogY3JpdGlj YWwgc2VjdGlvbiB3aGljaCBhbHNvIG1ha2VzIGFueSBuZWNlc3NhcnkgY2hhbmdlcyB0byB0aGUg aGVhcCBwYWdlCisgKiBhbmQsIGlmIHJlbGV2YW50LCBlbWl0cyBXQUwuCisgKgorICogQ2FsbGVy IGlzIHJlc3BvbnNpYmxlIGZvciBXQUwgbG9nZ2luZyB0aGUgY2hhbmdlcyB0byB0aGUgVk0gYnVm ZmVyIGFuZCBmb3IKKyAqIG1ha2luZyBhbnkgY2hhbmdlcyBuZWVkZWQgdG8gdGhlIGFzc29jaWF0 ZWQgaGVhcCBwYWdlLiBUaGlzIGluY2x1ZGVzCisgKiBtYWludGFpbmluZyBhbnkgaW52YXJpYW50 cyBzdWNoIGFzIGVuc3VyaW5nIHRoZSBidWZmZXIgY29udGFpbmluZyBoZWFwQmxrCisgKiBpcyBw aW5uZWQgYW5kIGV4Y2x1c2l2ZSBsb2NrZWQuCisgKi8KK3VpbnQ4Cit2aXNpYmlsaXR5bWFwX3Nl dF92bWJpdHMoUmVsYXRpb24gcmVsLCBCbG9ja051bWJlciBoZWFwQmxrLAorCQkJCQkJIEJ1ZmZl ciB2bUJ1ZiwgdWludDggZmxhZ3MpCit7CisJQmxvY2tOdW1iZXIgbWFwQmxvY2sgPSBIRUFQQkxL X1RPX01BUEJMT0NLKGhlYXBCbGspOworCXVpbnQzMgkJbWFwQnl0ZSA9IEhFQVBCTEtfVE9fTUFQ QllURShoZWFwQmxrKTsKKwl1aW50OAkJbWFwT2Zmc2V0ID0gSEVBUEJMS19UT19PRkZTRVQoaGVh cEJsayk7CisJUGFnZQkJcGFnZTsKKwl1aW50OAkgICAqbWFwOworCXVpbnQ4CQlzdGF0dXM7CisK KyNpZmRlZiBUUkFDRV9WSVNJQklMSVRZTUFQCisJZWxvZyhERUJVRzEsICJ2bV9zZXQgZmxhZ3Mg MHglMDJYIGZvciAlcyAlZCIsCisJCSBmbGFncywgUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVs KSwgaGVhcEJsayk7CisjZW5kaWYKKworCS8qIENhbGwgaW4gc2FtZSBjcml0aWNhbCBzZWN0aW9u IHdoZXJlIFdBTCBpcyBlbWl0dGVkLiAqLworCUFzc2VydChJblJlY292ZXJ5IHx8IENyaXRTZWN0 aW9uQ291bnQgPiAwKTsKKworCS8qIEZsYWdzIHNob3VsZCBiZSB2YWxpZC4gQWxzbyBuZXZlciBj bGVhciBiaXRzIHdpdGggdGhpcyBmdW5jdGlvbiAqLworCUFzc2VydCgoZmxhZ3MgJiBWSVNJQklM SVRZTUFQX1ZBTElEX0JJVFMpID09IGZsYWdzKTsKKworCS8qIE11c3QgbmV2ZXIgc2V0IGFsbF9m cm96ZW4gYml0IHdpdGhvdXQgYWxzbyBzZXR0aW5nIGFsbF92aXNpYmxlIGJpdCAqLworCUFzc2Vy dChmbGFncyAhPSBWSVNJQklMSVRZTUFQX0FMTF9GUk9aRU4pOworCisJLyogQ2hlY2sgdGhhdCB3 ZSBoYXZlIHRoZSByaWdodCBWTSBwYWdlIHBpbm5lZCAqLworCWlmICghQnVmZmVySXNWYWxpZCh2 bUJ1ZikgfHwgQnVmZmVyR2V0QmxvY2tOdW1iZXIodm1CdWYpICE9IG1hcEJsb2NrKQorCQllbG9n KEVSUk9SLCAid3JvbmcgVk0gYnVmZmVyIHBhc3NlZCB0byB2aXNpYmlsaXR5bWFwX3NldCIpOwor CisJQXNzZXJ0KEJ1ZmZlcklzRXhjbHVzaXZlTG9ja2VkKHZtQnVmKSk7CisKKwlwYWdlID0gQnVm ZmVyR2V0UGFnZSh2bUJ1Zik7CisJbWFwID0gKHVpbnQ4ICopIFBhZ2VHZXRDb250ZW50cyhwYWdl KTsKKworCXN0YXR1cyA9IChtYXBbbWFwQnl0ZV0gPj4gbWFwT2Zmc2V0KSAmIFZJU0lCSUxJVFlN QVBfVkFMSURfQklUUzsKKwlpZiAoZmxhZ3MgIT0gc3RhdHVzKQorCXsKKwkJbWFwW21hcEJ5dGVd IHw9IChmbGFncyA8PCBtYXBPZmZzZXQpOworCQlNYXJrQnVmZmVyRGlydHkodm1CdWYpOworCX0K KworCXJldHVybiBzdGF0dXM7Cit9CisKIC8qCiAgKgl2aXNpYmlsaXR5bWFwX2dldF9zdGF0dXMg LSBnZXQgc3RhdHVzIG9mIGJpdHMKICAqCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3Mv cm1ncmRlc2MvaGVhcGRlc2MuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9ybWdyZGVzYy9oZWFwZGVz Yy5jCmluZGV4IDgyYjYyYzk1ZGU1Li5iNDhkN2RjMWQyNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvYWNjZXNzL3JtZ3JkZXNjL2hlYXBkZXNjLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3Jt Z3JkZXNjL2hlYXBkZXNjLmMKQEAgLTE2LDYgKzE2LDcgQEAKIAogI2luY2x1ZGUgImFjY2Vzcy9o ZWFwYW1feGxvZy5oIgogI2luY2x1ZGUgImFjY2Vzcy9ybWdyZGVzY191dGlscy5oIgorI2luY2x1 ZGUgImFjY2Vzcy92aXNpYmlsaXR5bWFwZGVmcy5oIgogI2luY2x1ZGUgInN0b3JhZ2Uvc3RhbmRi eWRlZnMuaCIKIAogLyoKQEAgLTM1NCw2ICszNTUsMTAgQEAgaGVhcDJfZGVzYyhTdHJpbmdJbmZv IGJ1ZiwgWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAJCWFwcGVuZFN0cmluZ0luZm8oYnVmLCAi bnR1cGxlczogJWQsIGZsYWdzOiAweCUwMlgiLCB4bHJlYy0+bnR1cGxlcywKIAkJCQkJCSB4bHJl Yy0+ZmxhZ3MpOwogCisJCWlmICh4bHJlYy0+ZmxhZ3MgJiBYTEhfSU5TRVJUX0FMTF9GUk9aRU5f U0VUKQorCQkJYXBwZW5kU3RyaW5nSW5mbyhidWYsICIsIHZtX2ZsYWdzOiAweCUwMlgiLAorCQkJ CQkJCSBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxFIHwgVklTSUJJTElUWU1BUF9BTExfRlJPWkVO KTsKKwogCQlpZiAoWExvZ1JlY0hhc0Jsb2NrRGF0YShyZWNvcmQsIDApICYmICFpc2luaXQpCiAJ CXsKIAkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCAiLCBvZmZzZXRzOiIpOwpkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL3Zpc2liaWxpdHltYXAuaCBiL3NyYy9pbmNsdWRlL2Fj Y2Vzcy92aXNpYmlsaXR5bWFwLmgKaW5kZXggYmUyMWM2ZGQxYTMuLmZjNzA1NmE5MWVhIDEwMDY0 NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MvdmlzaWJpbGl0eW1hcC5oCisrKyBiL3NyYy9pbmNs dWRlL2FjY2Vzcy92aXNpYmlsaXR5bWFwLmgKQEAgLTM3LDYgKzM3LDggQEAgZXh0ZXJuIHVpbnQ4 IHZpc2liaWxpdHltYXBfc2V0KFJlbGF0aW9uIHJlbCwKIAkJCQkJCQkgICBCdWZmZXIgdm1CdWYs CiAJCQkJCQkJICAgVHJhbnNhY3Rpb25JZCBjdXRvZmZfeGlkLAogCQkJCQkJCSAgIHVpbnQ4IGZs YWdzKTsKK2V4dGVybiB1aW50OCB2aXNpYmlsaXR5bWFwX3NldF92bWJpdHMoUmVsYXRpb24gcmVs LCBCbG9ja051bWJlciBoZWFwQmxrLAorCQkJCQkJCQkJICBCdWZmZXIgdm1CdWYsIHVpbnQ4IGZs YWdzKTsKIGV4dGVybiB1aW50OCB2aXNpYmlsaXR5bWFwX2dldF9zdGF0dXMoUmVsYXRpb24gcmVs LCBCbG9ja051bWJlciBoZWFwQmxrLCBCdWZmZXIgKnZtYnVmKTsKIGV4dGVybiB2b2lkIHZpc2li aWxpdHltYXBfY291bnQoUmVsYXRpb24gcmVsLCBCbG9ja051bWJlciAqYWxsX3Zpc2libGUsIEJs b2NrTnVtYmVyICphbGxfZnJvemVuKTsKIGV4dGVybiBCbG9ja051bWJlciB2aXNpYmlsaXR5bWFw X3ByZXBhcmVfdHJ1bmNhdGUoUmVsYXRpb24gcmVsLAotLSAKMi40My4wCgo= --000000000000cf342e063f082d09 Content-Type: text/x-patch; charset="US-ASCII"; name="v14-0007-Update-PruneState.all_-visible-frozen-sooner-in-.patch" Content-Disposition: attachment; filename="v14-0007-Update-PruneState.all_-visible-frozen-sooner-in-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfonltmz6 RnJvbSBkZTkzZjdlYWZmYjAwOTQzNmNhZTJmODA1NzFiYTAxNDhmOTlkYjdhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBNb24sIDE1IFNlcCAyMDI1IDE2OjI1OjQ0IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTQgMDcvMjRdIFVwZGF0ZSBQcnVuZVN0YXRlLmFsbF9bdmlzaWJsZXxmcm96ZW5dIHNv b25lciBpbgogcHJ1bmluZwoKV2UgZG9uJ3QgY2xlYXIgUHJ1bmVTdGF0ZS5hbGxfdmlzaWJsZSBh bmQgYWxsX2Zyb3plbiBkdXJpbmcgcHJ1bmluZyB3aGVuCndlIHNlZSBMUF9ERUFEIGl0ZW1zIGJl Y2F1c2Ugd2Ugd2FudCB0byBzdGlsbCBvcHBvcnR1bmlzdGljYWxseSBmcmVlemUgYQpwYWdlIGlm IGl0IHdvdWxkIGJlY29tZSBmcm96ZW4gYWZ0ZXIgdmFjdXVtJ3MgdGhpcmQgcGhhc2UuCgpDdXJy ZW50bHksIHRoaXMgaXMgZmluZSBiZWNhdXNlIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKCkg ZG9lc24ndCBzZXQKUERfQUxMX1ZJU0lCTEUgb3Igc2V0IGJpdHMgaW4gdGhlIFZNLiBJZiB3ZSB3 YW50IHRvIGRvIHRoYXQgaW4gdGhlCmZ1dHVyZSwgd2UgbmVlZCBhbGxfdmlzaWJsZSBhbmQgYWxs X2Zyb3plbiB0byBiZSBhY2N1cmF0ZSBlYXJsaWVyIGluCmhlYXBfcGFnZV9wcnVuZV9hbmRfZnJl ZXplKCkuIFRvIGRvIHRoaXMsIHdlIG11c3QgYWxzbyBtb3ZlIHVwCmRldGVybWluYXRpb24gb2Yg dGhlIGZyZWV6ZSBjb25mbGljdCBob3Jpem9uLiBXZSB1c2UgdGhlIHZpc2liaWxpdHkKY3V0b2Zm IHhpZCBldmVuIGlmIHRoZSB3aG9sZSBwYWdlIHdvbid0IGJlIGZyb3plbiB1bnRpbCBhZnRlciB2 YWN1dW0ncwp0aGlyZCBwaGFzZS4KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhl YXAuYyB8IDk1ICsrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwg NDUgaW5zZXJ0aW9ucygrKSwgNTAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVu ZWhlYXAuYwppbmRleCA0ZWQ3NGRlNmYyNy4uNWU1MzZiZDBkNGQgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9o ZWFwL3BydW5laGVhcC5jCkBAIC0yOTYsNyArMjk2LDkgQEAgaGVhcF9wYWdlX3BydW5lX29wdChS ZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlcikKICAqIHByZS1mcmVlemUgY2hlY2tzLgog ICoKICAqIGRvX3BydW5lLCBkb19oaW50X2Z1bGxfb3JfcHJ1bmFibGUsIGFuZCBkaWRfdHVwbGVf aGludF9mcGkgbXVzdCBhbGwgaGF2ZQotICogYmVlbiBkZWNpZGVkIGJlZm9yZSBjYWxsaW5nIHRo aXMgZnVuY3Rpb24uCisgKiBiZWVuIGRlY2lkZWQgYmVmb3JlIGNhbGxpbmcgdGhpcyBmdW5jdGlv bi4gKmZyel9jb25mbGljdF9ob3Jpem9uIGlzIHNldCB0bworICogdGhlIHNuYXBzaG90IGNvbmZs aWN0IGhvcml6b24gd2UgZm9yIHRoZSBXQUwgcmVjb3JkIHNob3VsZCB3ZSBkZWNpZGUgdG8gZnJl ZXplCisgKiB0dXBsZXMuCiAgKgogICogcHJzdGF0ZSBpcyBhbiBpbnB1dC9vdXRwdXQgcGFyYW1l dGVyLgogICoKQEAgLTMwOCw3ICszMTAsOCBAQCBoZWFwX3BhZ2Vfd2lsbF9mcmVlemUoUmVsYXRp b24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJCQkJCSAgYm9vbCBkaWRfdHVwbGVfaGludF9m cGksCiAJCQkJCSAgYm9vbCBkb19wcnVuZSwKIAkJCQkJICBib29sIGRvX2hpbnRfcHJ1bmUsCi0J CQkJCSAgUHJ1bmVTdGF0ZSAqcHJzdGF0ZSkKKwkJCQkJICBQcnVuZVN0YXRlICpwcnN0YXRlLAor CQkJCQkgIFRyYW5zYWN0aW9uSWQgKmZyel9jb25mbGljdF9ob3Jpem9uKQogewogCWJvb2wJCWRv X2ZyZWV6ZSA9IGZhbHNlOwogCkBAIC0zNzgsNiArMzgxLDIyIEBAIGhlYXBfcGFnZV93aWxsX2Zy ZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKIAkJICogY3JpdGljYWwgc2Vj dGlvbi4KIAkJICovCiAJCWhlYXBfcHJlX2ZyZWV6ZV9jaGVja3MoYnVmZmVyLCBwcnN0YXRlLT5m cm96ZW4sIHByc3RhdGUtPm5mcm96ZW4pOworCisJCS8qCisJCSAqIENhbGN1bGF0ZSB3aGF0IHRo ZSBzbmFwc2hvdCBjb25mbGljdCBob3Jpem9uIHNob3VsZCBiZSBmb3IgYSByZWNvcmQKKwkJICog ZnJlZXppbmcgdHVwbGVzLiBXZSBjYW4gdXNlIHRoZSB2aXNpYmlsaXR5X2N1dG9mZl94aWQgYXMg b3VyIGN1dG9mZgorCQkgKiBmb3IgY29uZmxpY3RzIHdoZW4gdGhlIHdob2xlIHBhZ2UgaXMgZWxp Z2libGUgdG8gYmVjb21lIGFsbC1mcm96ZW4KKwkJICogaW4gdGhlIFZNIG9uY2Ugd2UncmUgZG9u ZSB3aXRoIGl0LiAgT3RoZXJ3aXNlIHdlIGdlbmVyYXRlIGEKKwkJICogY29uc2VydmF0aXZlIGN1 dG9mZiBieSBzdGVwcGluZyBiYWNrIGZyb20gT2xkZXN0WG1pbi4KKwkJICovCisJCWlmIChwcnN0 YXRlLT5hbGxfZnJvemVuKQorCQkJKmZyel9jb25mbGljdF9ob3Jpem9uID0gcHJzdGF0ZS0+dmlz aWJpbGl0eV9jdXRvZmZfeGlkOworCQllbHNlCisJCXsKKwkJCS8qIEF2b2lkcyBmYWxzZSBjb25m bGljdHMgd2hlbiBob3Rfc3RhbmRieV9mZWVkYmFjayBpbiB1c2UgKi8KKwkJCSpmcnpfY29uZmxp Y3RfaG9yaXpvbiA9IHByc3RhdGUtPmN1dG9mZnMtPk9sZGVzdFhtaW47CisJCQlUcmFuc2FjdGlv bklkUmV0cmVhdCgqZnJ6X2NvbmZsaWN0X2hvcml6b24pOworCQl9CiAJfQogCWVsc2UgaWYgKHBy c3RhdGUtPm5mcm96ZW4gPiAwKQogCXsKQEAgLTQ3OCw2ICs0OTcsNyBAQCBoZWFwX3BhZ2VfcHJ1 bmVfYW5kX2ZyZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKIAlib29sCQlk b19oaW50X3BydW5lOwogCWJvb2wJCWRpZF90dXBsZV9oaW50X2ZwaTsKIAlpbnQ2NAkJZnBpX2Jl Zm9yZSA9IHBnV2FsVXNhZ2Uud2FsX2ZwaTsKKwlUcmFuc2FjdGlvbklkIGZyel9jb25mbGljdF9o b3Jpem9uID0gSW52YWxpZFRyYW5zYWN0aW9uSWQ7CiAKIAkvKiBDb3B5IHBhcmFtZXRlcnMgdG8g cHJzdGF0ZSAqLwogCXByc3RhdGUudmlzdGVzdCA9IHZpc3Rlc3Q7CkBAIC01NDYsMTAgKzU2Niwx MCBAQCBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVy IGJ1ZmZlciwKIAkgKiBhcmUgdHVwbGVzIHByZXNlbnQgdGhhdCBhcmUgbm90IHZpc2libGUgdG8g ZXZlcnlvbmUgb3IgaWYgdGhlcmUgYXJlCiAJICogZGVhZCB0dXBsZXMgd2hpY2ggYXJlIG5vdCB5 ZXQgcmVtb3ZhYmxlLiAgSG93ZXZlciwgZGVhZCB0dXBsZXMgd2hpY2gKIAkgKiB3aWxsIGJlIHJl bW92ZWQgYnkgdGhlIGVuZCBvZiB2YWN1dW1pbmcgc2hvdWxkIG5vdCBwcmVjbHVkZSB1cyBmcm9t Ci0JICogb3Bwb3J0dW5pc3RpY2FsbHkgZnJlZXppbmcuICBCZWNhdXNlIG9mIHRoYXQsIHdlIGRv IG5vdCBjbGVhcgotCSAqIGFsbF92aXNpYmxlIHdoZW4gd2Ugc2VlIExQX0RFQUQgaXRlbXMuICBX ZSBmaXggdGhhdCBhdCB0aGUgZW5kIG9mIHRoZQotCSAqIGZ1bmN0aW9uLCB3aGVuIHdlIHJldHVy biB0aGUgdmFsdWUgdG8gdGhlIGNhbGxlciwgc28gdGhhdCB0aGUgY2FsbGVyCi0JICogZG9lc24n dCBzZXQgdGhlIFZNIGJpdCBpbmNvcnJlY3RseS4KKwkgKiBvcHBvcnR1bmlzdGljYWxseSBmcmVl emluZy4gIEJlY2F1c2Ugb2YgdGhhdCwgd2UgZG8gbm90IGltbWVkaWF0ZWx5CisJICogY2xlYXIg YWxsX3Zpc2libGUgd2hlbiB3ZSBzZWUgTFBfREVBRCBpdGVtcy4gIFdlIGZpeCB0aGF0IGFmdGVy CisJICogc2Nhbm5pbmcgdGhlIGxpbmUgcG9pbnRlcnMsIGJlZm9yZSB3ZSByZXR1cm4gdGhlIHZh bHVlIHRvIHRoZSBjYWxsZXIsCisJICogc28gdGhhdCB0aGUgY2FsbGVyIGRvZXNuJ3Qgc2V0IHRo ZSBWTSBiaXQgaW5jb3JyZWN0bHkuCiAJICovCiAJaWYgKHByc3RhdGUuYXR0ZW1wdF9mcmVlemUp CiAJewpAQCAtNzg0LDggKzgwNCwyNCBAQCBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZShSZWxh dGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKIAkJCQkJCQkJCSAgZGlkX3R1cGxlX2hpbnRf ZnBpLAogCQkJCQkJCQkJICBkb19wcnVuZSwKIAkJCQkJCQkJCSAgZG9faGludF9wcnVuZSwKLQkJ CQkJCQkJCSAgJnByc3RhdGUpOworCQkJCQkJCQkJICAmcHJzdGF0ZSwKKwkJCQkJCQkJCSAgJmZy el9jb25mbGljdF9ob3Jpem9uKTsKIAorCS8qCisJICogV2hpbGUgc2Nhbm5pbmcgdGhlIGxpbmUg cG9pbnRlcnMsIHdlIGRpZCBub3QgY2xlYXIKKwkgKiBhbGxfdmlzaWJsZS9hbGxfZnJvemVuIHdo ZW4gZW5jb3VudGVyaW5nIExQX0RFQUQgaXRlbXMgYmVjYXVzZSB3ZQorCSAqIHdhbnRlZCB0aGUg ZGVjaXNpb24gd2hldGhlciBvciBub3QgdG8gZnJlZXplIHRoZSBwYWdlIHRvIGJlIHVuYWZmZWN0 ZWQKKwkgKiBieSB0aGUgc2hvcnQtdGVybSBwcmVzZW5jZSBvZiBMUF9ERUFEIGl0ZW1zLiAgVGhl c2UgTFBfREVBRCBpdGVtcyBhcmUKKwkgKiBlZmZlY3RpdmVseSBhc3N1bWVkIHRvIGJlIExQX1VO VVNFRCBpdGVtcyBpbiB0aGUgbWFraW5nLiAgSXQgZG9lc24ndAorCSAqIG1hdHRlciB3aGljaCB2 YWN1dW0gaGVhcCBwYXNzIChpbml0aWFsIHBhc3Mgb3IgZmluYWwgcGFzcykgZW5kcyB1cAorCSAq IHNldHRpbmcgdGhlIHBhZ2UgYWxsLWZyb3plbiwgYXMgbG9uZyBhcyB0aGUgb25nb2luZyBWQUNV VU0gZG9lcyBpdC4KKwkgKgorCSAqIE5vdyB0aGF0IHdlIGZpbmlzaGVkIGRldGVybWluaW5nIHdo ZXRoZXIgb3Igbm90IHRvIGZyZWV6ZSB0aGUgcGFnZSwKKwkgKiB1cGRhdGUgYWxsX3Zpc2libGUg YW5kIGFsbF9mcm96ZW4gc28gdGhhdCB0aGV5IHJlZmxlY3QgdGhlIHRydWUgc3RhdGUKKwkgKiBv ZiB0aGUgcGFnZSBmb3Igc2V0dGluZyBQRF9BTExfVklTSUJMRSBhbmQgVk0gYml0cy4KKwkgKi8K KwlpZiAocHJzdGF0ZS5scGRlYWRfaXRlbXMgPiAwKQorCQlwcnN0YXRlLmFsbF92aXNpYmxlID0g cHJzdGF0ZS5hbGxfZnJvemVuID0gZmFsc2U7CiAKIAlBc3NlcnQoIXByc3RhdGUuYWxsX2Zyb3pl biB8fCBwcnN0YXRlLmFsbF92aXNpYmxlKTsKIAkvKiBBbnkgZXJyb3Igd2hpbGUgYXBwbHlpbmcg dGhlIGNoYW5nZXMgaXMgY3JpdGljYWwgKi8KQEAgLTg0NiwyNyArODgyLDggQEAgaGVhcF9wYWdl X3BydW5lX2FuZF9mcmVlemUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJCQkg KiBvbiB0aGUgc3RhbmRieSB3aXRoIHhpZHMgb2xkZXIgdGhhbiB0aGUgeW91bmdlc3QgdHVwbGUg dGhpcwogCQkJICogcmVjb3JkIHdpbGwgZnJlZXplIHdpbGwgY29uZmxpY3QuCiAJCQkgKi8KLQkJ CVRyYW5zYWN0aW9uSWQgZnJ6X2NvbmZsaWN0X2hvcml6b24gPSBJbnZhbGlkVHJhbnNhY3Rpb25J ZDsKIAkJCVRyYW5zYWN0aW9uSWQgY29uZmxpY3RfeGlkOwogCi0JCQkvKgotCQkJICogV2UgY2Fu IHVzZSB0aGUgdmlzaWJpbGl0eV9jdXRvZmZfeGlkIGFzIG91ciBjdXRvZmYgZm9yCi0JCQkgKiBj b25mbGljdHMgd2hlbiB0aGUgd2hvbGUgcGFnZSBpcyBlbGlnaWJsZSB0byBiZWNvbWUgYWxsLWZy b3plbgotCQkJICogaW4gdGhlIFZNIG9uY2Ugd2UncmUgZG9uZSB3aXRoIGl0LiAgT3RoZXJ3aXNl IHdlIGdlbmVyYXRlIGEKLQkJCSAqIGNvbnNlcnZhdGl2ZSBjdXRvZmYgYnkgc3RlcHBpbmcgYmFj ayBmcm9tIE9sZGVzdFhtaW4uCi0JCQkgKi8KLQkJCWlmIChkb19mcmVlemUpCi0JCQl7Ci0JCQkJ aWYgKHByc3RhdGUuYWxsX2Zyb3plbikKLQkJCQkJZnJ6X2NvbmZsaWN0X2hvcml6b24gPSBwcnN0 YXRlLnZpc2liaWxpdHlfY3V0b2ZmX3hpZDsKLQkJCQllbHNlCi0JCQkJewotCQkJCQkvKiBBdm9p ZHMgZmFsc2UgY29uZmxpY3RzIHdoZW4gaG90X3N0YW5kYnlfZmVlZGJhY2sgaW4gdXNlICovCi0J CQkJCWZyel9jb25mbGljdF9ob3Jpem9uID0gcHJzdGF0ZS5jdXRvZmZzLT5PbGRlc3RYbWluOwot CQkJCQlUcmFuc2FjdGlvbklkUmV0cmVhdChmcnpfY29uZmxpY3RfaG9yaXpvbik7Ci0JCQkJfQot CQkJfQotCiAJCQlpZiAoVHJhbnNhY3Rpb25JZEZvbGxvd3MoZnJ6X2NvbmZsaWN0X2hvcml6b24s IHByc3RhdGUubGF0ZXN0X3hpZF9yZW1vdmVkKSkKIAkJCQljb25mbGljdF94aWQgPSBmcnpfY29u ZmxpY3RfaG9yaXpvbjsKIAkJCWVsc2UKQEAgLTg5MCwzMCArOTA3LDggQEAgaGVhcF9wYWdlX3By dW5lX2FuZF9mcmVlemUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJcHJlc3Vs dC0+bmZyb3plbiA9IHByc3RhdGUubmZyb3plbjsKIAlwcmVzdWx0LT5saXZlX3R1cGxlcyA9IHBy c3RhdGUubGl2ZV90dXBsZXM7CiAJcHJlc3VsdC0+cmVjZW50bHlfZGVhZF90dXBsZXMgPSBwcnN0 YXRlLnJlY2VudGx5X2RlYWRfdHVwbGVzOwotCi0JLyoKLQkgKiBJdCB3YXMgY29udmVuaWVudCB0 byBpZ25vcmUgTFBfREVBRCBpdGVtcyBpbiBhbGxfdmlzaWJsZSBlYXJsaWVyIG9uIHRvCi0JICog bWFrZSB0aGUgY2hvaWNlIG9mIHdoZXRoZXIgb3Igbm90IHRvIGZyZWV6ZSB0aGUgcGFnZSB1bmFm ZmVjdGVkIGJ5IHRoZQotCSAqIHNob3J0LXRlcm0gcHJlc2VuY2Ugb2YgTFBfREVBRCBpdGVtcy4g IFRoZXNlIExQX0RFQUQgaXRlbXMgd2VyZQotCSAqIGVmZmVjdGl2ZWx5IGFzc3VtZWQgdG8gYmUg TFBfVU5VU0VEIGl0ZW1zIGluIHRoZSBtYWtpbmcuICBJdCBkb2Vzbid0Ci0JICogbWF0dGVyIHdo aWNoIHZhY3V1bSBoZWFwIHBhc3MgKGluaXRpYWwgcGFzcyBvciBmaW5hbCBwYXNzKSBlbmRzIHVw Ci0JICogc2V0dGluZyB0aGUgcGFnZSBhbGwtZnJvemVuLCBhcyBsb25nIGFzIHRoZSBvbmdvaW5n IFZBQ1VVTSBkb2VzIGl0LgotCSAqCi0JICogTm93IHRoYXQgZnJlZXppbmcgaGFzIGJlZW4gZmlu YWxpemVkLCB1bnNldCBhbGxfdmlzaWJsZSBpZiB0aGVyZSBhcmUKLQkgKiBhbnkgTFBfREVBRCBp dGVtcyBvbiB0aGUgcGFnZS4gIEl0IG5lZWRzIHRvIHJlZmxlY3QgdGhlIHByZXNlbnQgc3RhdGUK LQkgKiBvZiB0aGUgcGFnZSwgYXMgZXhwZWN0ZWQgYnkgb3VyIGNhbGxlci4KLQkgKi8KLQlpZiAo cHJzdGF0ZS5hbGxfdmlzaWJsZSAmJiBwcnN0YXRlLmxwZGVhZF9pdGVtcyA9PSAwKQotCXsKLQkJ cHJlc3VsdC0+YWxsX3Zpc2libGUgPSBwcnN0YXRlLmFsbF92aXNpYmxlOwotCQlwcmVzdWx0LT5h bGxfZnJvemVuID0gcHJzdGF0ZS5hbGxfZnJvemVuOwotCX0KLQllbHNlCi0JewotCQlwcmVzdWx0 LT5hbGxfdmlzaWJsZSA9IGZhbHNlOwotCQlwcmVzdWx0LT5hbGxfZnJvemVuID0gZmFsc2U7Ci0J fQotCisJcHJlc3VsdC0+YWxsX3Zpc2libGUgPSBwcnN0YXRlLmFsbF92aXNpYmxlOworCXByZXN1 bHQtPmFsbF9mcm96ZW4gPSBwcnN0YXRlLmFsbF9mcm96ZW47CiAJcHJlc3VsdC0+aGFzdHVwID0g cHJzdGF0ZS5oYXN0dXA7CiAKIAkvKgotLSAKMi40My4wCgo= --000000000000cf342e063f082d09 Content-Type: text/x-patch; charset="US-ASCII"; name="v14-0006-Add-helper-for-freeze-determination-to-heap_page.patch" Content-Disposition: attachment; filename="v14-0006-Add-helper-for-freeze-determination-to-heap_page.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfonltmx5 RnJvbSBhZWU5MmVlOGEwN2JlYWRlODFhODIyMDBmYmJmZTYwNWQ0OTlhYzRjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUdWUsIDE2IFNlcCAyMDI1IDE0OjIyOjEwIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTQgMDYvMjRdIEFkZCBoZWxwZXIgZm9yIGZyZWV6ZSBkZXRlcm1pbmF0aW9uIHRvCiBo ZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZQoKQWZ0ZXIgc2Nhbm5pbmcgdGhyb3VnaCB0aGUgbGlu ZSBwb2ludGVycyBvbiB0aGUgaGVhcCBwYWdlIGR1cmluZwp2YWN1dW0ncyBmaXJzdCBwaGFzZSwg d2UgdXNlIHNldmVyYWwgc3RhdHVzZXMgYW5kIGluZm9ybWF0aW9uIHdlCmNvbGxlY3RlZCB0byBk ZXRlcm1pbmUgd2hldGhlciBvciBub3Qgd2Ugd2lsbCB1c2UgdGhlIGZyZWV6ZSBwbGFucyB3ZQph c3NlbWJsZWQuCgpEbyB0aGlzIGluIGEgaGVscGVyIGZvciBiZXR0ZXIgcmVhZGFiaWxpdHkuCi0t LQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMgfCAxOTkgKysrKysrKysrKysr KysrKystLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDExOSBpbnNlcnRpb25zKCspLCA4MCBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhl YXAuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jCmluZGV4IDc0MGFhMDdj ZDgzLi40ZWQ3NGRlNmYyNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1 bmVoZWFwLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKQEAgLTI4 OSw2ICsyODksMTIwIEBAIGhlYXBfcGFnZV9wcnVuZV9vcHQoUmVsYXRpb24gcmVsYXRpb24sIEJ1 ZmZlciBidWZmZXIpCiAJfQogfQogCisvKgorICogRGVjaWRlIGlmIHdlIHdhbnQgdG8gZ28gYWhl YWQgd2l0aCBmcmVlemluZyBhY2NvcmRpbmcgdG8gdGhlIGZyZWV6ZSBwbGFucworICogd2UgcHJl cGFyZWQgZm9yIHRoZSBnaXZlbiBoZWFwIGJ1ZmZlciBvciBub3QuIElmIHRoZSBjYWxsZXIgc3Bl Y2lmaWVkIHdlCisgKiBzaG91bGQgbm90IGZyZWV6ZSB0dXBsZXMsIGl0IGV4aXRzIGVhcmx5LiBP dGhlcndpc2UsIGl0IGRvZXMgYSBmZXcKKyAqIHByZS1mcmVlemUgY2hlY2tzLgorICoKKyAqIGRv X3BydW5lLCBkb19oaW50X2Z1bGxfb3JfcHJ1bmFibGUsIGFuZCBkaWRfdHVwbGVfaGludF9mcGkg bXVzdCBhbGwgaGF2ZQorICogYmVlbiBkZWNpZGVkIGJlZm9yZSBjYWxsaW5nIHRoaXMgZnVuY3Rp b24uCisgKgorICogcHJzdGF0ZSBpcyBhbiBpbnB1dC9vdXRwdXQgcGFyYW1ldGVyLgorICoKKyAq IFJldHVybnMgdHJ1ZSBpZiB3ZSBzaG91bGQgdXNlIG91ciBmcmVlemUgcGxhbnMgYW5kIGZyZWV6 ZSB0dXBsZXMgb24gdGhlIHBhZ2UKKyAqIGFuZCBmYWxzZSBvdGhlcndpc2UuCisgKi8KK3N0YXRp YyBib29sCitoZWFwX3BhZ2Vfd2lsbF9mcmVlemUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBi dWZmZXIsCisJCQkJCSAgYm9vbCBkaWRfdHVwbGVfaGludF9mcGksCisJCQkJCSAgYm9vbCBkb19w cnVuZSwKKwkJCQkJICBib29sIGRvX2hpbnRfcHJ1bmUsCisJCQkJCSAgUHJ1bmVTdGF0ZSAqcHJz dGF0ZSkKK3sKKwlib29sCQlkb19mcmVlemUgPSBmYWxzZTsKKworCS8qCisJICogSWYgdGhlIGNh bGxlciBzcGVjaWZpZWQgd2Ugc2hvdWxkIG5vdCBhdHRlbXB0IHRvIGZyZWV6ZSBhbnkgdHVwbGVz LAorCSAqIHZhbGlkYXRlIHRoYXQgZXZlcnl0aGluZyBpcyBpbiB0aGUgcmlnaHQgc3RhdGUgYW5k IGV4aXQuCisJICovCisJaWYgKCFwcnN0YXRlLT5hdHRlbXB0X2ZyZWV6ZSkKKwl7CisJCUFzc2Vy dCghcHJzdGF0ZS0+YWxsX2Zyb3plbiAmJiBwcnN0YXRlLT5uZnJvemVuID09IDApOworCQlBc3Nl cnQocHJzdGF0ZS0+bHBkZWFkX2l0ZW1zID09IDAgfHwgIXByc3RhdGUtPmFsbF92aXNpYmxlKTsK KwkJcmV0dXJuIGZhbHNlOworCX0KKworCWlmIChwcnN0YXRlLT5wYWdlZnJ6LmZyZWV6ZV9yZXF1 aXJlZCkKKwl7CisJCS8qCisJCSAqIGhlYXBfcHJlcGFyZV9mcmVlemVfdHVwbGUgaW5kaWNhdGVk IHRoYXQgYXQgbGVhc3Qgb25lIFhJRC9NWElEIGZyb20KKwkJICogYmVmb3JlIEZyZWV6ZUxpbWl0 L011bHRpWGFjdEN1dG9mZiBpcyBwcmVzZW50LiAgTXVzdCBmcmVlemUgdG8KKwkJICogYWR2YW5j ZSByZWxmcm96ZW54aWQvcmVsbWlubXhpZC4KKwkJICovCisJCWRvX2ZyZWV6ZSA9IHRydWU7CisJ fQorCWVsc2UKKwl7CisJCS8qCisJCSAqIE9wcG9ydHVuaXN0aWNhbGx5IGZyZWV6ZSB0aGUgcGFn ZSBpZiB3ZSBhcmUgZ2VuZXJhdGluZyBhbiBGUEkKKwkJICogYW55d2F5IGFuZCBpZiBkb2luZyBz byBtZWFucyB0aGF0IHdlIGNhbiBzZXQgdGhlIHBhZ2UgYWxsLWZyb3plbgorCQkgKiBhZnRlcndh cmRzIChtaWdodCBub3QgaGFwcGVuIHVudGlsIFZBQ1VVTSdzIGZpbmFsIGhlYXAgcGFzcykuCisJ CSAqCisJCSAqIFhYWDogUHJldmlvdXNseSwgd2Uga25ldyBpZiBwcnVuaW5nIGVtaXR0ZWQgYW4g RlBJIGJ5IGNoZWNraW5nCisJCSAqIHBnV2FsVXNhZ2Uud2FsX2ZwaSBiZWZvcmUgYW5kIGFmdGVy IHBydW5pbmcuICBPbmNlIHRoZSBmcmVlemUgYW5kCisJCSAqIHBydW5lIHJlY29yZHMgd2VyZSBj b21iaW5lZCwgdGhpcyBoZXVyaXN0aWMgY291bGRuJ3QgYmUgdXNlZAorCQkgKiBhbnltb3JlLiAg VGhlIG9wcG9ydHVuaXN0aWMgZnJlZXplIGhldXJpc3RpYyBtdXN0IGJlIGltcHJvdmVkOworCQkg KiBob3dldmVyLCBmb3Igbm93LCB0cnkgdG8gYXBwcm94aW1hdGUgdGhlIG9sZCBsb2dpYy4KKwkJ ICovCisJCWlmIChwcnN0YXRlLT5hbGxfZnJvemVuICYmIHByc3RhdGUtPm5mcm96ZW4gPiAwKQor CQl7CisJCQlBc3NlcnQocHJzdGF0ZS0+YWxsX3Zpc2libGUpOworCisJCQkvKgorCQkJICogRnJl ZXppbmcgd291bGQgbWFrZSB0aGUgcGFnZSBhbGwtZnJvemVuLiAgSGF2ZSBhbHJlYWR5IGVtaXR0 ZWQKKwkJCSAqIGFuIEZQSSBvciB3aWxsIGRvIHNvIGFueXdheT8KKwkJCSAqLworCQkJaWYgKFJl bGF0aW9uTmVlZHNXQUwocmVsYXRpb24pKQorCQkJeworCQkJCWlmIChkaWRfdHVwbGVfaGludF9m cGkpCisJCQkJCWRvX2ZyZWV6ZSA9IHRydWU7CisJCQkJZWxzZSBpZiAoZG9fcHJ1bmUpCisJCQkJ eworCQkJCQlpZiAoWExvZ0NoZWNrQnVmZmVyTmVlZHNCYWNrdXAoYnVmZmVyKSkKKwkJCQkJCWRv X2ZyZWV6ZSA9IHRydWU7CisJCQkJfQorCQkJCWVsc2UgaWYgKGRvX2hpbnRfcHJ1bmUpCisJCQkJ eworCQkJCQlpZiAoWExvZ0hpbnRCaXRJc05lZWRlZCgpICYmIFhMb2dDaGVja0J1ZmZlck5lZWRz QmFja3VwKGJ1ZmZlcikpCisJCQkJCQlkb19mcmVlemUgPSB0cnVlOworCQkJCX0KKwkJCX0KKwkJ fQorCX0KKworCWlmIChkb19mcmVlemUpCisJeworCQkvKgorCQkgKiBWYWxpZGF0ZSB0aGUgdHVw bGVzIHdlIHdpbGwgYmUgZnJlZXppbmcgYmVmb3JlIGVudGVyaW5nIHRoZQorCQkgKiBjcml0aWNh bCBzZWN0aW9uLgorCQkgKi8KKwkJaGVhcF9wcmVfZnJlZXplX2NoZWNrcyhidWZmZXIsIHByc3Rh dGUtPmZyb3plbiwgcHJzdGF0ZS0+bmZyb3plbik7CisJfQorCWVsc2UgaWYgKHByc3RhdGUtPm5m cm96ZW4gPiAwKQorCXsKKwkJLyoKKwkJICogVGhlIHBhZ2UgY29udGFpbmVkIHNvbWUgdHVwbGVz IHRoYXQgd2VyZSBub3QgYWxyZWFkeSBmcm96ZW4sIGFuZCB3ZQorCQkgKiBjaG9zZSBub3QgdG8g ZnJlZXplIHRoZW0gbm93LiAgVGhlIHBhZ2Ugd29uJ3QgYmUgYWxsLWZyb3plbiB0aGVuLgorCQkg Ki8KKwkJQXNzZXJ0KCFwcnN0YXRlLT5wYWdlZnJ6LmZyZWV6ZV9yZXF1aXJlZCk7CisKKwkJcHJz dGF0ZS0+YWxsX2Zyb3plbiA9IGZhbHNlOworCQlwcnN0YXRlLT5uZnJvemVuID0gMDsJLyogYXZv aWQgbWlzY291bnRzIGluIGluc3RydW1lbnRhdGlvbiAqLworCX0KKwllbHNlCisJeworCQkvKgor CQkgKiBXZSBoYXZlIG5vIGZyZWV6ZSBwbGFucyB0byBleGVjdXRlLiAgVGhlIHBhZ2UgbWlnaHQg YWxyZWFkeSBiZQorCQkgKiBhbGwtZnJvemVuIChwZXJoYXBzIG9ubHkgZm9sbG93aW5nIHBydW5p bmcpLCB0aG91Z2guICBTdWNoIHBhZ2VzCisJCSAqIGNhbiBiZSBtYXJrZWQgYWxsLWZyb3plbiBp biB0aGUgVk0gYnkgb3VyIGNhbGxlciwgZXZlbiB0aG91Z2ggbm9uZQorCQkgKiBvZiBpdHMgdHVw bGVzIHdlcmUgbmV3bHkgZnJvemVuIGhlcmUuCisJCSAqLworCX0KKworCXJldHVybiBkb19mcmVl emU7Cit9CisKIAogLyoKICAqIFBydW5lIGFuZCByZXBhaXIgZnJhZ21lbnRhdGlvbiBhbmQgcG90 ZW50aWFsbHkgZnJlZXplIHR1cGxlcyBvbiB0aGUKQEAgLTY2Niw4NyArNzgwLDEyIEBAIGhlYXBf cGFnZV9wcnVuZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAog CSAqIERlY2lkZSBpZiB3ZSB3YW50IHRvIGdvIGFoZWFkIHdpdGggZnJlZXppbmcgYWNjb3JkaW5n IHRvIHRoZSBmcmVlemUKIAkgKiBwbGFucyB3ZSBwcmVwYXJlZCwgb3Igbm90LgogCSAqLwotCWRv X2ZyZWV6ZSA9IGZhbHNlOwotCWlmIChwcnN0YXRlLmF0dGVtcHRfZnJlZXplKQotCXsKLQkJaWYg KHByc3RhdGUucGFnZWZyei5mcmVlemVfcmVxdWlyZWQpCi0JCXsKLQkJCS8qCi0JCQkgKiBoZWFw X3ByZXBhcmVfZnJlZXplX3R1cGxlIGluZGljYXRlZCB0aGF0IGF0IGxlYXN0IG9uZSBYSUQvTVhJ RAotCQkJICogZnJvbSBiZWZvcmUgRnJlZXplTGltaXQvTXVsdGlYYWN0Q3V0b2ZmIGlzIHByZXNl bnQuICBNdXN0Ci0JCQkgKiBmcmVlemUgdG8gYWR2YW5jZSByZWxmcm96ZW54aWQvcmVsbWlubXhp ZC4KLQkJCSAqLwotCQkJZG9fZnJlZXplID0gdHJ1ZTsKLQkJfQotCQllbHNlCi0JCXsKLQkJCS8q Ci0JCQkgKiBPcHBvcnR1bmlzdGljYWxseSBmcmVlemUgdGhlIHBhZ2UgaWYgd2UgYXJlIGdlbmVy YXRpbmcgYW4gRlBJCi0JCQkgKiBhbnl3YXkgYW5kIGlmIGRvaW5nIHNvIG1lYW5zIHRoYXQgd2Ug Y2FuIHNldCB0aGUgcGFnZQotCQkJICogYWxsLWZyb3plbiBhZnRlcndhcmRzIChtaWdodCBub3Qg aGFwcGVuIHVudGlsIFZBQ1VVTSdzIGZpbmFsCi0JCQkgKiBoZWFwIHBhc3MpLgotCQkJICoKLQkJ CSAqIFhYWDogUHJldmlvdXNseSwgd2Uga25ldyBpZiBwcnVuaW5nIGVtaXR0ZWQgYW4gRlBJIGJ5 IGNoZWNraW5nCi0JCQkgKiBwZ1dhbFVzYWdlLndhbF9mcGkgYmVmb3JlIGFuZCBhZnRlciBwcnVu aW5nLiAgT25jZSB0aGUgZnJlZXplCi0JCQkgKiBhbmQgcHJ1bmUgcmVjb3JkcyB3ZXJlIGNvbWJp bmVkLCB0aGlzIGhldXJpc3RpYyBjb3VsZG4ndCBiZQotCQkJICogdXNlZCBhbnltb3JlLiAgVGhl IG9wcG9ydHVuaXN0aWMgZnJlZXplIGhldXJpc3RpYyBtdXN0IGJlCi0JCQkgKiBpbXByb3ZlZDsg aG93ZXZlciwgZm9yIG5vdywgdHJ5IHRvIGFwcHJveGltYXRlIHRoZSBvbGQgbG9naWMuCi0JCQkg Ki8KLQkJCWlmIChwcnN0YXRlLmFsbF9mcm96ZW4gJiYgcHJzdGF0ZS5uZnJvemVuID4gMCkKLQkJ CXsKLQkJCQlBc3NlcnQocHJzdGF0ZS5hbGxfdmlzaWJsZSk7CisJZG9fZnJlZXplID0gaGVhcF9w YWdlX3dpbGxfZnJlZXplKHJlbGF0aW9uLCBidWZmZXIsCisJCQkJCQkJCQkgIGRpZF90dXBsZV9o aW50X2ZwaSwKKwkJCQkJCQkJCSAgZG9fcHJ1bmUsCisJCQkJCQkJCQkgIGRvX2hpbnRfcHJ1bmUs CisJCQkJCQkJCQkgICZwcnN0YXRlKTsKIAotCQkJCS8qCi0JCQkJICogRnJlZXppbmcgd291bGQg bWFrZSB0aGUgcGFnZSBhbGwtZnJvemVuLiAgSGF2ZSBhbHJlYWR5Ci0JCQkJICogZW1pdHRlZCBh biBGUEkgb3Igd2lsbCBkbyBzbyBhbnl3YXk/Ci0JCQkJICovCi0JCQkJaWYgKFJlbGF0aW9uTmVl ZHNXQUwocmVsYXRpb24pKQotCQkJCXsKLQkJCQkJaWYgKGRpZF90dXBsZV9oaW50X2ZwaSkKLQkJ CQkJCWRvX2ZyZWV6ZSA9IHRydWU7Ci0JCQkJCWVsc2UgaWYgKGRvX3BydW5lKQotCQkJCQl7Ci0J CQkJCQlpZiAoWExvZ0NoZWNrQnVmZmVyTmVlZHNCYWNrdXAoYnVmZmVyKSkKLQkJCQkJCQlkb19m cmVlemUgPSB0cnVlOwotCQkJCQl9Ci0JCQkJCWVsc2UgaWYgKGRvX2hpbnRfcHJ1bmUpCi0JCQkJ CXsKLQkJCQkJCWlmIChYTG9nSGludEJpdElzTmVlZGVkKCkgJiYgWExvZ0NoZWNrQnVmZmVyTmVl ZHNCYWNrdXAoYnVmZmVyKSkKLQkJCQkJCQlkb19mcmVlemUgPSB0cnVlOwotCQkJCQl9Ci0JCQkJ fQotCQkJfQotCQl9Ci0JfQotCi0JaWYgKGRvX2ZyZWV6ZSkKLQl7Ci0JCS8qCi0JCSAqIFZhbGlk YXRlIHRoZSB0dXBsZXMgd2Ugd2lsbCBiZSBmcmVlemluZyBiZWZvcmUgZW50ZXJpbmcgdGhlCi0J CSAqIGNyaXRpY2FsIHNlY3Rpb24uCi0JCSAqLwotCQloZWFwX3ByZV9mcmVlemVfY2hlY2tzKGJ1 ZmZlciwgcHJzdGF0ZS5mcm96ZW4sIHByc3RhdGUubmZyb3plbik7Ci0JfQotCWVsc2UgaWYgKHBy c3RhdGUubmZyb3plbiA+IDApCi0JewotCQkvKgotCQkgKiBUaGUgcGFnZSBjb250YWluZWQgc29t ZSB0dXBsZXMgdGhhdCB3ZXJlIG5vdCBhbHJlYWR5IGZyb3plbiwgYW5kIHdlCi0JCSAqIGNob3Nl IG5vdCB0byBmcmVlemUgdGhlbSBub3cuICBUaGUgcGFnZSB3b24ndCBiZSBhbGwtZnJvemVuIHRo ZW4uCi0JCSAqLwotCQlBc3NlcnQoIXByc3RhdGUucGFnZWZyei5mcmVlemVfcmVxdWlyZWQpOwot Ci0JCXByc3RhdGUuYWxsX2Zyb3plbiA9IGZhbHNlOwotCQlwcnN0YXRlLm5mcm96ZW4gPSAwOwkv KiBhdm9pZCBtaXNjb3VudHMgaW4gaW5zdHJ1bWVudGF0aW9uICovCi0JfQotCWVsc2UKLQl7Ci0J CS8qCi0JCSAqIFdlIGhhdmUgbm8gZnJlZXplIHBsYW5zIHRvIGV4ZWN1dGUuICBUaGUgcGFnZSBt aWdodCBhbHJlYWR5IGJlCi0JCSAqIGFsbC1mcm96ZW4gKHBlcmhhcHMgb25seSBmb2xsb3dpbmcg cHJ1bmluZyksIHRob3VnaC4gIFN1Y2ggcGFnZXMKLQkJICogY2FuIGJlIG1hcmtlZCBhbGwtZnJv emVuIGluIHRoZSBWTSBieSBvdXIgY2FsbGVyLCBldmVuIHRob3VnaCBub25lCi0JCSAqIG9mIGl0 cyB0dXBsZXMgd2VyZSBuZXdseSBmcm96ZW4gaGVyZS4KLQkJICovCi0JfQogCiAJQXNzZXJ0KCFw cnN0YXRlLmFsbF9mcm96ZW4gfHwgcHJzdGF0ZS5hbGxfdmlzaWJsZSk7CiAJLyogQW55IGVycm9y IHdoaWxlIGFwcGx5aW5nIHRoZSBjaGFuZ2VzIGlzIGNyaXRpY2FsICovCi0tIAoyLjQzLjAKCg== --000000000000cf342e063f082d09 Content-Type: text/x-patch; charset="US-ASCII"; name="v14-0008-Set-PD_ALL_VISIBLE-in-heap_page_prune_and_freeze.patch" Content-Disposition: attachment; filename="v14-0008-Set-PD_ALL_VISIBLE-in-heap_page_prune_and_freeze.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfonltn17 RnJvbSA3YWU3ZjlkOWYxYzA1Y2Y2NmQ3ZmVlOTY0ZGI4MDFjYmNmNTJhMzI0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBNb24sIDE1IFNlcCAyMDI1IDE2OjMyOjM1IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTQgMDgvMjRdIFNldCBQRF9BTExfVklTSUJMRSBpbiBoZWFwX3BhZ2VfcHJ1bmVfYW5k X2ZyZWV6ZQoKQWZ0ZXIgcGhhc2UgSSBvZiB2YWN1dW0sIGlmIHRoZSBoZWFwIHBhZ2Ugd2FzIHJl bmRlcmVkIGFsbC12aXNpYmxlLCB3ZQpjYW4gc2V0IGl0IGFzIHN1Y2ggaW4gdGhlIFZNLiBXZSBh bHNvIG11c3Qgc2V0IHRoZSBwYWdlLWxldmVsClBEX0FMTF9WSVNJQkxFIGJpdC4gQnkgc2V0dGlu ZyBQRF9BTExfVklTSUJMRSB3aGlsZSBtYWtpbmcgdGhlIG90aGVyCmNoYW5nZXMgdG8gdGhlIGhl YXAgcGFnZSBpbnN0ZWFkIG9mIHdoaWxlIHVwZGF0aW5nIHRoZSBWTSwgd2UgY2FuIG9taXQKdGhl IGhlYXAgcGFnZSBmcm9tIHRoZSBXQUwgY2hhaW4gZHVyaW5nIHRoZSBWTSB1cGRhdGUuIFRoZSBy ZXN1bHQgaXMKdGhhdCB4bF9oZWFwX3BydW5lIHJlY29yZHMgaW5jbHVkZSB1cGRhdGVzIHRvIFBE X0FMTF9WSVNJQkxFLgoKVGhpcyBjb21taXQgZG9lc24ndCB5ZXQgcmVtb3ZlIHRoZSBoZWFwIHBh Z2UgZnJvbSB0aGUgV0FMIGNoYWluIGJlY2F1c2UKaXQgZG9lcyBub3QgY2hhbmdlIG90aGVyIHVz ZXJzIG9mIHZpc2liaWxpdHltYXBfc2V0KCkuCgpOb3RlIHRoYXQgdGhpcyBpcyBjYXJlZnVsbHkg Y29kZWQgc3VjaCB0aGF0IGlmIHRoZSBvbmx5IG1vZGlmaWNhdGlvbiB0bwp0aGUgcGFnZSBkdXJp bmcgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoKSBpcyBzZXR0aW5nIFBEX0FMTF9WSVNJQkxF CmFuZCBjaGVja3N1bXMvd2FsX2xvZ19oaW50cyBhcmUgZGlzYWJsZWQgd2Ugd2lsbCBuZXZlciBl bWl0IGEgZnVsbCBwYWdlCmltYWdlIG9mIHRoZSBoZWFwIHBhZ2UuCgpUaGlzIGFsc28gZml4ZXMg YSBsb25nc3RhbmRpbmcgaXNzdWUgd2hlcmUsIHdoZW4gY2hlY2tzdW1zL3dhbF9sb2dfaGludHMK YXJlIGVuYWJsZWQsIGFuIGFsbC12aXNpYmxlIHBhZ2UgYmVpbmcgc2V0IGFsbC1mcm96ZW4gbWF5 IG5vdCBtYXJrIHRoZQpidWZmZXIgZGlydHkgYmVmb3JlIHZpc2liaWxpdHltYXBfc2V0KCkgc3Rh bXBzIGl0IHdpdGggdGhlCnhsX2hlYXBfdmlzaWJsZSBMU04uCgpJdCBpcyBub3Rld29ydGh5IHRo YXQgdGhlIGNoZWNrcyBmb3IgcGFnZSBjb3JydXB0aW9uIGFuZCBhbiBpbmNvbnNpc3RlbnQKc3Rh dGUgYmV0d2VlbiB0aGUgaGVhcCBwYWdlIGFuZCB0aGUgVk0gaW4gbGF6eV9zY2FuX3BydW5lKCkg bm93IGhhcHBlbgphZnRlciBoYXZpbmcgc2V0IFBEX0FMTF9WSVNJQkxFLiBUaGF0IGlzIG5vdCBh IGZ1bmN0aW9uYWwgY2hhbmdlIGJlY2F1c2UKdGhlIGNvcnJ1cHRpb24gY2FzZXMgYXJlIG11dHVh bGx5IGV4Y2x1c2l2ZSB3aXRoIGNhc2VzIHdoZXJlIHdlIHdvdWxkCnNldCBQRF9BTExfVklTSUJM RS4KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1feGxvZy5jIHwgNjMgKysrKysr KysrKysrKysrKysrKy0tLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jICAg fCA3MiArKysrKysrKysrKysrKysrKysrKysrKystLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFw L3ZhY3V1bWxhenkuYyAgfCAyOSArLS0tLS0tLS0tLQogc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBh bS5oICAgICAgICAgICB8ICAyICsKIHNyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW1feGxvZy5oICAg ICAgfCAgMiArCiA1IGZpbGVzIGNoYW5nZWQsIDEyNSBpbnNlcnRpb25zKCspLCA0MyBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1feGxvZy5j IGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX3hsb2cuYwppbmRleCBmYWE3YzU2MWE4 YS4uYTU0MjM4ZjJiNTkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBh bV94bG9nLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX3hsb2cuYwpAQCAt OTAsNiArOTAsNyBAQCBoZWFwX3hsb2dfcHJ1bmVfZnJlZXplKFhMb2dSZWFkZXJTdGF0ZSAqcmVj b3JkKQogCQl4bGhwX2ZyZWV6ZV9wbGFuICpwbGFuczsKIAkJT2Zmc2V0TnVtYmVyICpmcnpfb2Zm c2V0czsKIAkJY2hhcgkgICAqZGF0YXB0ciA9IFhMb2dSZWNHZXRCbG9ja0RhdGEocmVjb3JkLCAw LCAmZGF0YWxlbik7CisJCWJvb2wJCWRvX3BydW5lOwogCiAJCWhlYXBfeGxvZ19kZXNlcmlhbGl6 ZV9wcnVuZV9hbmRfZnJlZXplKGRhdGFwdHIsIHhscmVjLmZsYWdzLAogCQkJCQkJCQkJCQkgICAm bnBsYW5zLCAmcGxhbnMsICZmcnpfb2Zmc2V0cywKQEAgLTk3LDExICs5OCwxMyBAQCBoZWFwX3hs b2dfcHJ1bmVfZnJlZXplKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCQkJCQkJCQkJCQkgICAm bmRlYWQsICZub3dkZWFkLAogCQkJCQkJCQkJCQkgICAmbnVudXNlZCwgJm5vd3VudXNlZCk7CiAK KwkJZG9fcHJ1bmUgPSBucmVkaXJlY3RlZCA+IDAgfHwgbmRlYWQgPiAwIHx8IG51bnVzZWQgPiAw OworCiAJCS8qCiAJCSAqIFVwZGF0ZSBhbGwgbGluZSBwb2ludGVycyBwZXIgdGhlIHJlY29yZCwg YW5kIHJlcGFpciBmcmFnbWVudGF0aW9uCiAJCSAqIGlmIG5lZWRlZC4KIAkJICovCi0JCWlmIChu cmVkaXJlY3RlZCA+IDAgfHwgbmRlYWQgPiAwIHx8IG51bnVzZWQgPiAwKQorCQlpZiAoZG9fcHJ1 bmUpCiAJCQloZWFwX3BhZ2VfcHJ1bmVfZXhlY3V0ZShidWZmZXIsCiAJCQkJCQkJCQkoeGxyZWMu ZmxhZ3MgJiBYTEhQX0NMRUFOVVBfTE9DSykgPT0gMCwKIAkJCQkJCQkJCXJlZGlyZWN0ZWQsIG5y ZWRpcmVjdGVkLApAQCAtMTM4LDE3ICsxNDEsNTIgQEAgaGVhcF94bG9nX3BydW5lX2ZyZWV6ZShY TG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAkJLyogVGhlcmUgc2hvdWxkIGJlIG5vIG1vcmUgZGF0 YSAqLwogCQlBc3NlcnQoKGNoYXIgKikgZnJ6X29mZnNldHMgPT0gZGF0YXB0ciArIGRhdGFsZW4p OwogCisJCS8qCisJCSAqIFRoZSBjcml0aWNhbCBpbnRlZ3JpdHkgcmVxdWlyZW1lbnQgaGVyZSBp cyB0aGF0IHdlIG11c3QgbmV2ZXIgZW5kCisJCSAqIHVwIHdpdGggYSBzaXR1YXRpb24gd2hlcmUg dGhlIHZpc2liaWxpdHkgbWFwIGJpdCBpcyBzZXQsIGFuZCB0aGUKKwkJICogcGFnZS1sZXZlbCBQ RF9BTExfVklTSUJMRSBiaXQgaXMgY2xlYXIuICBJZiB0aGF0IHdlcmUgdG8gb2NjdXIsCisJCSAq IHRoZW4gYSBzdWJzZXF1ZW50IHBhZ2UgbW9kaWZpY2F0aW9uIHdvdWxkIGZhaWwgdG8gY2xlYXIg dGhlCisJCSAqIHZpc2liaWxpdHkgbWFwIGJpdC4KKwkJICovCisJCWlmICh4bHJlYy5mbGFncyAm IFhMSFBfU0VUX1BEX0FMTF9WSVMpCisJCQlQYWdlU2V0QWxsVmlzaWJsZShwYWdlKTsKKwogCQkv KgogCQkgKiBOb3RlOiB3ZSBkb24ndCB3b3JyeSBhYm91dCB1cGRhdGluZyB0aGUgcGFnZSdzIHBy dW5hYmlsaXR5IGhpbnRzLgogCQkgKiBBdCB3b3JzdCB0aGlzIHdpbGwgY2F1c2UgYW4gZXh0cmEg cHJ1bmUgY3ljbGUgdG8gb2NjdXIgc29vbi4KIAkJICovCi0KLQkJUGFnZVNldExTTihwYWdlLCBs c24pOwogCQlNYXJrQnVmZmVyRGlydHkoYnVmZmVyKTsKKworCQkvKgorCQkgKiBXZSBhbHdheXMg ZW1pdCBhIFdBTCByZWNvcmQgd2hlbiBzZXR0aW5nIFBEX0FMTF9WSVNJQkxFLCBidXQgd2UgYXJl CisJCSAqIGNhcmVmdWwgbm90IHRvIGVtaXQgYSBmdWxsIHBhZ2UgaW1hZ2UgdW5sZXNzCisJCSAq IGNoZWNrc3Vtcy93YWxfbG9nX2hpbnRzIGFyZSBlbmFibGVkLiBXZSBvbmx5IHNldCB0aGUgaGVh cCBwYWdlIExTTgorCQkgKiBpZiBmdWxsIHBhZ2UgaW1hZ2VzIHdlcmUgYW4gb3B0aW9uIHdoZW4g ZW1pdHRpbmcgV0FMLiBPdGhlcndpc2UsCisJCSAqIHN1YnNlcXVlbnQgbW9kaWZpY2F0aW9ucyBv ZiB0aGUgcGFnZSBtYXkgaW5jb3JyZWN0bHkgc2tpcCBlbWl0dGluZworCQkgKiBhIGZ1bGwgcGFn ZSBpbWFnZS4KKwkJICovCisJCWlmIChkb19wcnVuZSB8fCBucGxhbnMgPiAwIHx8CisJCQkoeGxy ZWMuZmxhZ3MgJiBYTEhQX1NFVF9QRF9BTExfVklTICYmIFhMb2dIaW50Qml0SXNOZWVkZWQoKSkp CisJCQlQYWdlU2V0TFNOKHBhZ2UsIGxzbik7CiAJfQogCiAJLyoKLQkgKiBJZiB3ZSByZWxlYXNl ZCBhbnkgc3BhY2Ugb3IgbGluZSBwb2ludGVycywgdXBkYXRlIHRoZSBmcmVlIHNwYWNlIG1hcC4K KwkgKiBJZiB3ZSByZWxlYXNlZCBhbnkgc3BhY2Ugb3IgbGluZSBwb2ludGVycyBvciBzZXQgUERf QUxMX1ZJU0lCTEUgdXBkYXRlCisJICogdGhlIGZyZWVzcGFjZSBtYXAuCisJICoKKwkgKiBFdmVu IGlmIHdlIGFyZSBqdXN0IHNldHRpbmcgUERfQUxMX1ZJU0lCTEUgKGFuZCB0aHVzIG5vdCBmcmVl aW5nIHVwIGFueQorCSAqIHNwYWNlKSwgd2UnbGwgc3RpbGwgdXBkYXRlIHRoZSBGU00gZm9yIHRo aXMgcGFnZS4gU2luY2UgdGhlIEZTTSBpcyBub3QKKwkgKiBXQUwtbG9nZ2VkIGFuZCBvbmx5IHVw ZGF0ZWQgaGV1cmlzdGljYWxseSwgaXQgZWFzaWx5IGJlY29tZXMgc3RhbGUgaW4KKwkgKiBzdGFu ZGJ5cy4gIElmIHRoZSBzdGFuZGJ5IGlzIGxhdGVyIHByb21vdGVkIGFuZCBydW5zIFZBQ1VVTSwg aXQgd2lsbAorCSAqIHNraXAgdXBkYXRpbmcgaW5kaXZpZHVhbCBmcmVlIHNwYWNlIGZpZ3VyZXMg Zm9yIHBhZ2VzIHRoYXQgYmVjYW1lCisJICogYWxsLXZpc2libGUgKG9yIGFsbC1mcm96ZW4sIGRl cGVuZGluZyBvbiB0aGUgdmFjdXVtIG1vZGUsKSB3aGljaCBpcworCSAqIHRyb3VibGVzb21lIHdo ZW4gRnJlZVNwYWNlTWFwVmFjdXVtIHByb3BhZ2F0ZXMgdG9vIG9wdGltaXN0aWMgZnJlZQorCSAq IHNwYWNlIHZhbHVlcyB0byB1cHBlciBGU00gbGF5ZXJzOyBsYXRlciBpbnNlcnRlcnMgdHJ5IHRv IHVzZSBzdWNoIHBhZ2VzCisJICogb25seSB0byBmaW5kIG91dCB0aGF0IHRoZXkgYXJlIHVudXNh YmxlLiAgVGhpcyBjYW4gY2F1c2UgbG9uZyBzdGFsbHMKKwkgKiB3aGVuIHRoZXJlIGFyZSBtYW55 IHN1Y2ggcGFnZXMuCisJICoKKwkgKiBGb3Jlc3RhbGwgdGhvc2UgcHJvYmxlbXMgYnkgdXBkYXRp bmcgRlNNJ3MgaWRlYSBhYm91dCBhIHBhZ2UgdGhhdCBpcworCSAqIGJlY29taW5nIGFsbC12aXNp YmxlIG9yIGFsbC1mcm96ZW4uCiAJICoKIAkgKiBEbyB0aGlzIHJlZ2FyZGxlc3Mgb2YgYSBmdWxs LXBhZ2UgaW1hZ2UgYmVpbmcgYXBwbGllZCwgc2luY2UgdGhlIEZTTQogCSAqIGRhdGEgaXMgbm90 IGluIHRoZSBwYWdlIGFueXdheS4KQEAgLTE1NywxMCArMTk1LDE2IEBAIGhlYXBfeGxvZ19wcnVu ZV9mcmVlemUoWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAJewogCQlpZiAoeGxyZWMuZmxhZ3Mg JiAoWExIUF9IQVNfUkVESVJFQ1RJT05TIHwKIAkJCQkJCSAgIFhMSFBfSEFTX0RFQURfSVRFTVMg fAotCQkJCQkJICAgWExIUF9IQVNfTk9XX1VOVVNFRF9JVEVNUykpCisJCQkJCQkgICBYTEhQX0hB U19OT1dfVU5VU0VEX0lURU1TIHwKKwkJCQkJCSAgIFhMSFBfU0VUX1BEX0FMTF9WSVMpKQogCQl7 CiAJCQlTaXplCQlmcmVlc3BhY2UgPSBQYWdlR2V0SGVhcEZyZWVTcGFjZShCdWZmZXJHZXRQYWdl KGJ1ZmZlcikpOwogCisJCQkvKgorCQkJICogV2Ugd2FudCB0byBhdm9pZCBob2xkaW5nIGFuIGV4 Y2x1c2l2ZSBsb2NrIG9uIHRoZSBoZWFwIGJ1ZmZlcgorCQkJICogd2hpbGUgZG9pbmcgSU8sIHNv IHdlJ2xsIHJlbGVhc2UgdGhlIGxvY2sgb24gdGhlIGhlYXAgYnVmZmVyCisJCQkgKiBmaXJzdC4K KwkJCSAqLwogCQkJVW5sb2NrUmVsZWFzZUJ1ZmZlcihidWZmZXIpOwogCiAJCQlYTG9nUmVjb3Jk UGFnZVdpdGhGcmVlU3BhY2UocmxvY2F0b3IsIGJsa25vLCBmcmVlc3BhY2UpOwpAQCAtMTczLDEw ICsyMTcsMTEgQEAgaGVhcF94bG9nX3BydW5lX2ZyZWV6ZShYTG9nUmVhZGVyU3RhdGUgKnJlY29y ZCkKIC8qCiAgKiBSZXBsYXkgWExPR19IRUFQMl9WSVNJQkxFIHJlY29yZHMuCiAgKgotICogVGhl IGNyaXRpY2FsIGludGVncml0eSByZXF1aXJlbWVudCBoZXJlIGlzIHRoYXQgd2UgbXVzdCBuZXZl ciBlbmQgdXAgd2l0aAotICogYSBzaXR1YXRpb24gd2hlcmUgdGhlIHZpc2liaWxpdHkgbWFwIGJp dCBpcyBzZXQsIGFuZCB0aGUgcGFnZS1sZXZlbAotICogUERfQUxMX1ZJU0lCTEUgYml0IGlzIGNs ZWFyLiAgSWYgdGhhdCB3ZXJlIHRvIG9jY3VyLCB0aGVuIGEgc3Vic2VxdWVudAotICogcGFnZSBt b2RpZmljYXRpb24gd291bGQgZmFpbCB0byBjbGVhciB0aGUgdmlzaWJpbGl0eSBtYXAgYml0Lgor ICogSXQgaXMgaW1wZXJhdGl2ZSB0aGF0IHRoZSBwcmV2aW91c2x5IGVtaXR0ZWQgcmVjb3JkIHNl dCBQRF9BTExfVklTSUJMRSBvbgorICogdGhlIGhlYXAgcGFnZS4gV2UgbXVzdCBuZXZlciBlbmQg dXAgd2l0aCBhIHNpdHVhdGlvbiB3aGVyZSB0aGUgdmlzaWJpbGl0eQorICogbWFwIGJpdCBpcyBz ZXQsIGFuZCB0aGUgcGFnZS1sZXZlbCBQRF9BTExfVklTSUJMRSBiaXQgaXMgY2xlYXIuICBJZiB0 aGF0CisgKiB3ZXJlIHRvIG9jY3VyLCB0aGVuIGEgc3Vic2VxdWVudCBwYWdlIG1vZGlmaWNhdGlv biB3b3VsZCBmYWlsIHRvIGNsZWFyIHRoZQorICogdmlzaWJpbGl0eSBtYXAgYml0LgogICovCiBz dGF0aWMgdm9pZAogaGVhcF94bG9nX3Zpc2libGUoWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYyBiL3NyYy9iYWNr ZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jCmluZGV4IDVlNTM2YmQwZDRkLi45YjI1MTMxNTQz YiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKKysrIGIv c3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKQEAgLTQ5NSw2ICs0OTUsNyBAQCBo ZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZl ciwKIAlib29sCQlkb19mcmVlemU7CiAJYm9vbAkJZG9fcHJ1bmU7CiAJYm9vbAkJZG9faGludF9w cnVuZTsKKwlib29sCQlkb19zZXRfcGRfdmlzOwogCWJvb2wJCWRpZF90dXBsZV9oaW50X2ZwaTsK IAlpbnQ2NAkJZnBpX2JlZm9yZSA9IHBnV2FsVXNhZ2Uud2FsX2ZwaTsKIAlUcmFuc2FjdGlvbklk IGZyel9jb25mbGljdF9ob3Jpem9uID0gSW52YWxpZFRyYW5zYWN0aW9uSWQ7CkBAIC04MjQsNiAr ODI1LDIyIEBAIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBC dWZmZXIgYnVmZmVyLAogCQlwcnN0YXRlLmFsbF92aXNpYmxlID0gcHJzdGF0ZS5hbGxfZnJvemVu ID0gZmFsc2U7CiAKIAlBc3NlcnQoIXByc3RhdGUuYWxsX2Zyb3plbiB8fCBwcnN0YXRlLmFsbF92 aXNpYmxlKTsKKworCS8qCisJICogVGhvdWdoIGNhbGxlcnMgc2hvdWxkIHNldCB0aGUgVk0gaWYg UERfQUxMX1ZJU0lCTEUgaXMgc2V0IGhlcmUsIGl0IGlzCisJICogYWxsb3dlZCBmb3IgdGhlIHBh Z2UtbGV2ZWwgYml0IHRvIGJlIHNldCBhbmQgdGhlIFZNIHRvIGJlIGNsZWFyLgorCSAqIFNldHRp bmcgUERfQUxMX1ZJU0lCTEUgd2hlbiB3ZSBhcmUgbWFraW5nIHRoZSBjaGFuZ2VzIHRvIHRoZSBw YWdlIHRoYXQKKwkgKiByZW5kZXIgaXQgYWxsLXZpc2libGUgYWxsb3dzIHVzIHRvIG9taXQgdGhl IGhlYXAgcGFnZSBmcm9tIHRoZSBXQUwKKwkgKiBjaGFpbiB3aGVuIGxhdGVyIHVwZGF0aW5nIHRo ZSBWTSAtLSBldmVuIHdoZW4gY2hlY2tzdW1zL3dhbF9sb2dfaGludHMKKwkgKiBhcmUgZW5hYmxl ZC4KKwkgKi8KKwlkb19zZXRfcGRfdmlzID0gZmFsc2U7CisJaWYgKChvcHRpb25zICYgSEVBUF9Q QUdFX1BSVU5FX1VQREFURV9WSVMpICE9IDApCisJeworCQlpZiAocHJzdGF0ZS5hbGxfdmlzaWJs ZSAmJiAhUGFnZUlzQWxsVmlzaWJsZShwYWdlKSkKKwkJCWRvX3NldF9wZF92aXMgPSB0cnVlOwor CX0KKwogCS8qIEFueSBlcnJvciB3aGlsZSBhcHBseWluZyB0aGUgY2hhbmdlcyBpcyBjcml0aWNh bCAqLwogCVNUQVJUX0NSSVRfU0VDVElPTigpOwogCkBAIC04NDQsMTQgKzg2MSwxNyBAQCBoZWFw X3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwK IAogCQkvKgogCQkgKiBJZiB0aGF0J3MgYWxsIHdlIGhhZCB0byBkbyB0byB0aGUgcGFnZSwgdGhp cyBpcyBhIG5vbi1XQUwtbG9nZ2VkCi0JCSAqIGhpbnQuICBJZiB3ZSBhcmUgZ29pbmcgdG8gZnJl ZXplIG9yIHBydW5lIHRoZSBwYWdlLCB3ZSB3aWxsIG1hcmsKLQkJICogdGhlIGJ1ZmZlciBkaXJ0 eSBiZWxvdy4KKwkJICogaGludC4gIElmIHdlIGFyZSBnb2luZyB0byBmcmVlemUgb3IgcHJ1bmUg dGhlIHBhZ2Ugb3Igc2V0CisJCSAqIFBEX0FMTF9WSVNJQkxFLCB3ZSB3aWxsIG1hcmsgdGhlIGJ1 ZmZlciBkaXJ0eSBiZWxvdy4KKwkJICoKKwkJICogU2V0dGluZyBQRF9BTExfVklTSUJMRSBpcyBm dWxseSBXQUwtbG9nZ2VkIGJlY2F1c2UgaXQgaXMgZm9yYmlkZGVuCisJCSAqIGZvciB0aGUgVk0g dG8gYmUgc2V0IGFuZCBQRF9BTExfVklTSUJMRSB0byBiZSBjbGVhci4KIAkJICovCi0JCWlmICgh ZG9fZnJlZXplICYmICFkb19wcnVuZSkKKwkJaWYgKCFkb19mcmVlemUgJiYgIWRvX3BydW5lICYm ICFkb19zZXRfcGRfdmlzKQogCQkJTWFya0J1ZmZlckRpcnR5SGludChidWZmZXIsIHRydWUpOwog CX0KIAotCWlmIChkb19wcnVuZSB8fCBkb19mcmVlemUpCisJaWYgKGRvX3BydW5lIHx8IGRvX2Zy ZWV6ZSB8fCBkb19zZXRfcGRfdmlzKQogCXsKIAkJLyogQXBwbHkgdGhlIHBsYW5uZWQgaXRlbSBj aGFuZ2VzIGFuZCByZXBhaXIgcGFnZSBmcmFnbWVudGF0aW9uLiAqLwogCQlpZiAoZG9fcHJ1bmUp CkBAIC04NjUsNiArODg1LDkgQEAgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoUmVsYXRpb24g cmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJCWlmIChkb19mcmVlemUpCiAJCQloZWFwX2ZyZWV6 ZV9wcmVwYXJlZF90dXBsZXMoYnVmZmVyLCBwcnN0YXRlLmZyb3plbiwgcHJzdGF0ZS5uZnJvemVu KTsKIAorCQlpZiAoZG9fc2V0X3BkX3ZpcykKKwkJCVBhZ2VTZXRBbGxWaXNpYmxlKHBhZ2UpOwor CiAJCU1hcmtCdWZmZXJEaXJ0eShidWZmZXIpOwogCiAJCS8qCkBAIC04OTEsNyArOTE0LDkgQEAg aGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZm ZXIsCiAKIAkJCWxvZ19oZWFwX3BydW5lX2FuZF9mcmVlemUocmVsYXRpb24sIGJ1ZmZlciwKIAkJ CQkJCQkJCSAgY29uZmxpY3RfeGlkLAotCQkJCQkJCQkJICB0cnVlLCByZWFzb24sCisJCQkJCQkJ CQkgIHRydWUsCisJCQkJCQkJCQkgIGRvX3NldF9wZF92aXMsCisJCQkJCQkJCQkgIHJlYXNvbiwK IAkJCQkJCQkJCSAgcHJzdGF0ZS5mcm96ZW4sIHByc3RhdGUubmZyb3plbiwKIAkJCQkJCQkJCSAg cHJzdGF0ZS5yZWRpcmVjdGVkLCBwcnN0YXRlLm5yZWRpcmVjdGVkLAogCQkJCQkJCQkJICBwcnN0 YXRlLm5vd2RlYWQsIHByc3RhdGUubmRlYWQsCkBAIC0yMDc4LDYgKzIxMDMsMTAgQEAgaGVhcF9s b2dfZnJlZXplX3BsYW4oSGVhcFR1cGxlRnJlZXplICp0dXBsZXMsIGludCBudHVwbGVzLAogICog cmVwbGF5aW5nICd1bnVzZWQnIGl0ZW1zIGRlcGVuZHMgb24gd2hldGhlciB0aGV5IHdlcmUgYWxs IHByZXZpb3VzbHkgbWFya2VkCiAgKiBhcyBkZWFkLgogICoKKyAqIHNldF9wZF9hbGxfdmlzIGlu ZGljYXRlcyB0aGF0IHdlIHNldCBQRF9BTExfVklTSUJMRSBhbmQgdGh1cyBzaG91bGQgdXBkYXRl CisgKiB0aGUgcGFnZSBMU04gd2hlbiBjaGVja3N1bXMvd2FsX2xvZ19oaW50cyBhcmUgZW5hYmxl ZCBldmVuIGlmIHdlIGRpZCBub3QKKyAqIHBydW5lIG9yIGZyZWV6ZSB0dXBsZXMgb24gdGhlIHBh Z2UuCisgKgogICogTm90ZTogVGhpcyBmdW5jdGlvbiBzY3JpYmJsZXMgb24gdGhlICdmcm96ZW4n IGFycmF5LgogICoKICAqIE5vdGU6IFRoaXMgaXMgY2FsbGVkIGluIGEgY3JpdGljYWwgc2VjdGlv biwgc28gY2FyZWZ1bCB3aGF0IHlvdSBkbyBoZXJlLgpAQCAtMjA4Niw2ICsyMTE1LDcgQEAgdm9p ZAogbG9nX2hlYXBfcHJ1bmVfYW5kX2ZyZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1 ZmZlciwKIAkJCQkJCSAgVHJhbnNhY3Rpb25JZCBjb25mbGljdF94aWQsCiAJCQkJCQkgIGJvb2wg Y2xlYW51cF9sb2NrLAorCQkJCQkJICBib29sIHNldF9wZF9hbGxfdmlzLAogCQkJCQkJICBQcnVu ZVJlYXNvbiByZWFzb24sCiAJCQkJCQkgIEhlYXBUdXBsZUZyZWV6ZSAqZnJvemVuLCBpbnQgbmZy b3plbiwKIAkJCQkJCSAgT2Zmc2V0TnVtYmVyICpyZWRpcmVjdGVkLCBpbnQgbnJlZGlyZWN0ZWQs CkBAIC0yMDk1LDYgKzIxMjUsNyBAQCBsb2dfaGVhcF9wcnVuZV9hbmRfZnJlZXplKFJlbGF0aW9u IHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogCXhsX2hlYXBfcHJ1bmUgeGxyZWM7CiAJWExvZ1Jl Y1B0cglyZWNwdHI7CiAJdWludDgJCWluZm87CisJdWludDgJCXJlZ2J1Zl9mbGFnczsKIAogCS8q IFRoZSBmb2xsb3dpbmcgbG9jYWwgdmFyaWFibGVzIGhvbGQgZGF0YSByZWdpc3RlcmVkIGluIHRo ZSBXQUwgcmVjb3JkOiAqLwogCXhsaHBfZnJlZXplX3BsYW4gcGxhbnNbTWF4SGVhcFR1cGxlc1Bl clBhZ2VdOwpAQCAtMjEwMyw4ICsyMTM0LDIxIEBAIGxvZ19oZWFwX3BydW5lX2FuZF9mcmVlemUo UmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJeGxocF9wcnVuZV9pdGVtcyBkZWFk X2l0ZW1zOwogCXhsaHBfcHJ1bmVfaXRlbXMgdW51c2VkX2l0ZW1zOwogCU9mZnNldE51bWJlciBm cnpfb2Zmc2V0c1tNYXhIZWFwVHVwbGVzUGVyUGFnZV07CisJYm9vbAkJZG9fcHJ1bmUgPSBucmVk aXJlY3RlZCA+IDAgfHwgbmRlYWQgPiAwIHx8IG51bnVzZWQgPiAwOwogCiAJeGxyZWMuZmxhZ3Mg PSAwOworCXJlZ2J1Zl9mbGFncyA9IFJFR0JVRl9TVEFOREFSRDsKKworCS8qCisJICogV2UgY2Fu IGF2b2lkIGFuIEZQSSBpZiB0aGUgb25seSBtb2RpZmljYXRpb24gd2UgYXJlIG1ha2luZyB0byB0 aGUgaGVhcAorCSAqIHBhZ2UgaXMgdG8gc2V0IFBEX0FMTF9WSVNJQkxFIGFuZCBjaGVja3N1bXMv d2FsX2xvZ19oaW50cyBhcmUgZGlzYWJsZWQuCisJICogTm90ZSB0aGF0IGlmIHdlIGV4cGxpY2l0 bHkgc2tpcCBhbiBGUEksIHdlIG11c3Qgbm90IHNldCB0aGUgaGVhcCBwYWdlCisJICogTFNOIGxh dGVyLgorCSAqLworCWlmICghZG9fcHJ1bmUgJiYKKwkJbmZyb3plbiA9PSAwICYmCisJCSghc2V0 X3BkX2FsbF92aXMgfHwgIVhMb2dIaW50Qml0SXNOZWVkZWQoKSkpCisJCXJlZ2J1Zl9mbGFncyB8 PSBSRUdCVUZfTk9fSU1BR0U7CiAKIAkvKgogCSAqIFByZXBhcmUgZGF0YSBmb3IgdGhlIGJ1ZmZl ci4gIFRoZSBhcnJheXMgYXJlIG5vdCBhY3R1YWxseSBpbiB0aGUKQEAgLTIxMTIsNyArMjE1Niw3 IEBAIGxvZ19oZWFwX3BydW5lX2FuZF9mcmVlemUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBi dWZmZXIsCiAJICogcGFnZSBpbWFnZSwgdGhlIGFycmF5cyBjYW4gYmUgb21pdHRlZC4KIAkgKi8K IAlYTG9nQmVnaW5JbnNlcnQoKTsKLQlYTG9nUmVnaXN0ZXJCdWZmZXIoMCwgYnVmZmVyLCBSRUdC VUZfU1RBTkRBUkQpOworCVhMb2dSZWdpc3RlckJ1ZmZlcigwLCBidWZmZXIsIHJlZ2J1Zl9mbGFn cyk7CiAJaWYgKG5mcm96ZW4gPiAwKQogCXsKIAkJaW50CQkJbnBsYW5zOwpAQCAtMjE2OSw2ICsy MjEzLDggQEAgbG9nX2hlYXBfcHJ1bmVfYW5kX2ZyZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwgQnVm ZmVyIGJ1ZmZlciwKIAkgKiBQcmVwYXJlIHRoZSBtYWluIHhsX2hlYXBfcHJ1bmUgcmVjb3JkLiAg V2UgYWxyZWFkeSBzZXQgdGhlIFhMSFBfSEFTXyoKIAkgKiBmbGFnIGFib3ZlLgogCSAqLworCWlm IChzZXRfcGRfYWxsX3ZpcykKKwkJeGxyZWMuZmxhZ3MgfD0gWExIUF9TRVRfUERfQUxMX1ZJUzsK IAlpZiAoUmVsYXRpb25Jc0FjY2Vzc2libGVJbkxvZ2ljYWxEZWNvZGluZyhyZWxhdGlvbikpCiAJ CXhscmVjLmZsYWdzIHw9IFhMSFBfSVNfQ0FUQUxPR19SRUw7CiAJaWYgKFRyYW5zYWN0aW9uSWRJ c1ZhbGlkKGNvbmZsaWN0X3hpZCkpCkBAIC0yMjAxLDUgKzIyNDcsMTcgQEAgbG9nX2hlYXBfcHJ1 bmVfYW5kX2ZyZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKIAl9CiAJcmVj cHRyID0gWExvZ0luc2VydChSTV9IRUFQMl9JRCwgaW5mbyk7CiAKLQlQYWdlU2V0TFNOKEJ1ZmZl ckdldFBhZ2UoYnVmZmVyKSwgcmVjcHRyKTsKKwkvKgorCSAqIFdlIG11c3QgYnVtcCB0aGUgcGFn ZSBMU04gaWYgcHJ1bmluZyBvciBmcmVlemluZy4gSWYgd2UgYXJlIG9ubHkKKwkgKiB1cGRhdGlu ZyBQRF9BTExfVklTSUJMRSwgdGhvdWdoLCB3ZSBjYW4gc2tpcCBkb2luZyB0aGlzIHVubGVzcwor CSAqIHdhbF9sb2dfaGludHMvY2hlY2tzdW1zIGFyZSBlbmFibGVkLiBUb3JuIHBhZ2VzIGFyZSBw b3NzaWJsZSBpZiB3ZQorCSAqIHVwZGF0ZSBQRF9BTExfVklTSUJMRSB3aXRob3V0IGJ1bXBpbmcg dGhlIExTTiwgYnV0IHRoaXMgaXMgZGVlbWVkIG9rYXkKKwkgKiBmb3IgcGFnZSBoaW50IHVwZGF0 ZXMuCisJICovCisJaWYgKGRvX3BydW5lIHx8IG5mcm96ZW4gPiAwIHx8CisJCShzZXRfcGRfYWxs X3ZpcyAmJiBYTG9nSGludEJpdElzTmVlZGVkKCkpKQorCXsKKwkJQXNzZXJ0KEJ1ZmZlcklzRGly dHkoYnVmZmVyKSk7CisJCVBhZ2VTZXRMU04oQnVmZmVyR2V0UGFnZShidWZmZXIpLCByZWNwdHIp OworCX0KIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenku YyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwppbmRleCA1MGNjODk4MDg3 Zi4uMzA4YWJmZjE2Y2EgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1 bWxhenkuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKQEAgLTE5 NzAsNyArMTk3MCw3IEBAIGxhenlfc2Nhbl9wcnVuZShMVlJlbFN0YXRlICp2YWNyZWwsCiAJICog dHVwbGVzLiBQcnVuaW5nIHdpbGwgaGF2ZSBkZXRlcm1pbmVkIHdoZXRoZXIgb3Igbm90IHRoZSBw YWdlIGlzCiAJICogYWxsLXZpc2libGUuCiAJICovCi0JcHJ1bmVfb3B0aW9ucyA9IEhFQVBfUEFH RV9QUlVORV9GUkVFWkU7CisJcHJ1bmVfb3B0aW9ucyA9IEhFQVBfUEFHRV9QUlVORV9GUkVFWkUg fCBIRUFQX1BBR0VfUFJVTkVfVVBEQVRFX1ZJUzsKIAlpZiAodmFjcmVsLT5uaW5kZXhlcyA9PSAw KQogCQlwcnVuZV9vcHRpb25zIHw9IEhFQVBfUEFHRV9QUlVORV9NQVJLX1VOVVNFRF9OT1c7CiAK QEAgLTIwNzMsMjEgKzIwNzMsNiBAQCBsYXp5X3NjYW5fcHJ1bmUoTFZSZWxTdGF0ZSAqdmFjcmVs LAogCQkJZmxhZ3MgfD0gVklTSUJJTElUWU1BUF9BTExfRlJPWkVOOwogCQl9CiAKLQkJLyoKLQkJ ICogSXQgc2hvdWxkIG5ldmVyIGJlIHRoZSBjYXNlIHRoYXQgdGhlIHZpc2liaWxpdHkgbWFwIHBh Z2UgaXMgc2V0Ci0JCSAqIHdoaWxlIHRoZSBwYWdlLWxldmVsIGJpdCBpcyBjbGVhciwgYnV0IHRo ZSByZXZlcnNlIGlzIGFsbG93ZWQgKGlmCi0JCSAqIGNoZWNrc3VtcyBhcmUgbm90IGVuYWJsZWQp LiAgUmVnYXJkbGVzcywgc2V0IGJvdGggYml0cyBzbyB0aGF0IHdlCi0JCSAqIGdldCBiYWNrIGlu IHN5bmMuCi0JCSAqCi0JCSAqIE5COiBJZiB0aGUgaGVhcCBwYWdlIGlzIGFsbC12aXNpYmxlIGJ1 dCB0aGUgVk0gYml0IGlzIG5vdCBzZXQsIHdlCi0JCSAqIGRvbid0IG5lZWQgdG8gZGlydHkgdGhl IGhlYXAgcGFnZS4gIEhvd2V2ZXIsIGlmIGNoZWNrc3VtcyBhcmUKLQkJICogZW5hYmxlZCwgd2Ug ZG8gbmVlZCB0byBtYWtlIHN1cmUgdGhhdCB0aGUgaGVhcCBwYWdlIGlzIGRpcnRpZWQKLQkJICog YmVmb3JlIHBhc3NpbmcgaXQgdG8gdmlzaWJpbGl0eW1hcF9zZXQoKSwgYmVjYXVzZSBpdCBtYXkg YmUgbG9nZ2VkLgotCQkgKiBHaXZlbiB0aGF0IHRoaXMgc2l0dWF0aW9uIHNob3VsZCBvbmx5IGhh cHBlbiBpbiByYXJlIGNhc2VzIGFmdGVyIGEKLQkJICogY3Jhc2gsIGl0IGlzIG5vdCB3b3J0aCBv cHRpbWl6aW5nLgotCQkgKi8KLQkJUGFnZVNldEFsbFZpc2libGUocGFnZSk7Ci0JCU1hcmtCdWZm ZXJEaXJ0eShidWYpOwogCQlvbGRfdm1iaXRzID0gdmlzaWJpbGl0eW1hcF9zZXQodmFjcmVsLT5y ZWwsIGJsa25vLCBidWYsCiAJCQkJCQkJCQkgICBJbnZhbGlkWExvZ1JlY1B0ciwKIAkJCQkJCQkJ CSAgIHZtYnVmZmVyLCBwcmVzdWx0LnZtX2NvbmZsaWN0X2hvcml6b24sCkBAIC0yMTY4LDE3ICsy MTUzLDYgQEAgbGF6eV9zY2FuX3BydW5lKExWUmVsU3RhdGUgKnZhY3JlbCwKIAl7CiAJCXVpbnQ4 CQlvbGRfdm1iaXRzOwogCi0JCS8qCi0JCSAqIEF2b2lkIHJlbHlpbmcgb24gYWxsX3Zpc2libGVf YWNjb3JkaW5nX3RvX3ZtIGFzIGEgcHJveHkgZm9yIHRoZQotCQkgKiBwYWdlLWxldmVsIFBEX0FM TF9WSVNJQkxFIGJpdCBiZWluZyBzZXQsIHNpbmNlIGl0IG1pZ2h0IGhhdmUgYmVjb21lCi0JCSAq IHN0YWxlIC0tIGV2ZW4gd2hlbiBhbGxfdmlzaWJsZSBpcyBzZXQKLQkJICovCi0JCWlmICghUGFn ZUlzQWxsVmlzaWJsZShwYWdlKSkKLQkJewotCQkJUGFnZVNldEFsbFZpc2libGUocGFnZSk7Ci0J CQlNYXJrQnVmZmVyRGlydHkoYnVmKTsKLQkJfQotCiAJCS8qCiAJCSAqIFNldCB0aGUgcGFnZSBh bGwtZnJvemVuIChhbmQgYWxsLXZpc2libGUpIGluIHRoZSBWTS4KIAkJICoKQEAgLTI4OTEsNiAr Mjg2NSw3IEBAIGxhenlfdmFjdXVtX2hlYXBfcGFnZShMVlJlbFN0YXRlICp2YWNyZWwsIEJsb2Nr TnVtYmVyIGJsa25vLCBCdWZmZXIgYnVmZmVyLAogCQlsb2dfaGVhcF9wcnVuZV9hbmRfZnJlZXpl KHZhY3JlbC0+cmVsLCBidWZmZXIsCiAJCQkJCQkJCSAgSW52YWxpZFRyYW5zYWN0aW9uSWQsCiAJ CQkJCQkJCSAgZmFsc2UsCS8qIG5vIGNsZWFudXAgbG9jayByZXF1aXJlZCAqLworCQkJCQkJCQkg IGZhbHNlLAogCQkJCQkJCQkgIFBSVU5FX1ZBQ1VVTV9DTEVBTlVQLAogCQkJCQkJCQkgIE5VTEws IDAsCS8qIGZyb3plbiAqLwogCQkJCQkJCQkgIE5VTEwsIDAsCS8qIHJlZGlyZWN0ZWQgKi8KZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaCBiL3NyYy9pbmNsdWRlL2FjY2Vz cy9oZWFwYW0uaAppbmRleCAzNDIwNmE2YTdkNS4uMmY3N2Q4ZGJjZDYgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFt LmgKQEAgLTQyLDYgKzQyLDcgQEAKIC8qICJvcHRpb25zIiBmbGFnIGJpdHMgZm9yIGhlYXBfcGFn ZV9wcnVuZV9hbmRfZnJlZXplICovCiAjZGVmaW5lIEhFQVBfUEFHRV9QUlVORV9NQVJLX1VOVVNF RF9OT1cJCSgxIDw8IDApCiAjZGVmaW5lIEhFQVBfUEFHRV9QUlVORV9GUkVFWkUJCQkJKDEgPDwg MSkKKyNkZWZpbmUgSEVBUF9QQUdFX1BSVU5FX1VQREFURV9WSVMJCQkoMSA8PCAyKQogCiB0eXBl ZGVmIHN0cnVjdCBCdWxrSW5zZXJ0U3RhdGVEYXRhICpCdWxrSW5zZXJ0U3RhdGU7CiBzdHJ1Y3Qg VHVwbGVUYWJsZVNsb3Q7CkBAIC0zOTAsNiArMzkxLDcgQEAgZXh0ZXJuIHZvaWQgaGVhcF9nZXRf cm9vdF90dXBsZXMoUGFnZSBwYWdlLCBPZmZzZXROdW1iZXIgKnJvb3Rfb2Zmc2V0cyk7CiBleHRl cm4gdm9pZCBsb2dfaGVhcF9wcnVuZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZm ZXIgYnVmZmVyLAogCQkJCQkJCQkJICBUcmFuc2FjdGlvbklkIGNvbmZsaWN0X3hpZCwKIAkJCQkJ CQkJCSAgYm9vbCBjbGVhbnVwX2xvY2ssCisJCQkJCQkJCQkgIGJvb2wgc2V0X3BkX2FsbF92aXMs CiAJCQkJCQkJCQkgIFBydW5lUmVhc29uIHJlYXNvbiwKIAkJCQkJCQkJCSAgSGVhcFR1cGxlRnJl ZXplICpmcm96ZW4sIGludCBuZnJvemVuLAogCQkJCQkJCQkJICBPZmZzZXROdW1iZXIgKnJlZGly ZWN0ZWQsIGludCBucmVkaXJlY3RlZCwKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9o ZWFwYW1feGxvZy5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbV94bG9nLmgKaW5kZXggZDRj MDYyNWI2MzIuLjdkM2ZiNzVkZGE3IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVh cGFtX3hsb2cuaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtX3hsb2cuaApAQCAtMjk0 LDYgKzI5NCw4IEBAIHR5cGVkZWYgc3RydWN0IHhsX2hlYXBfcHJ1bmUKIAogI2RlZmluZSBTaXpl T2ZIZWFwUHJ1bmUgKG9mZnNldG9mKHhsX2hlYXBfcHJ1bmUsIGZsYWdzKSArIHNpemVvZih1aW50 OCkpCiAKKyNkZWZpbmUJCVhMSFBfU0VUX1BEX0FMTF9WSVMJCQkoMSA8PCAwKQorCiAvKiB0byBo YW5kbGUgcmVjb3ZlcnkgY29uZmxpY3QgZHVyaW5nIGxvZ2ljYWwgZGVjb2Rpbmcgb24gc3RhbmRi eSAqLwogI2RlZmluZQkJWExIUF9JU19DQVRBTE9HX1JFTAkJCSgxIDw8IDEpCiAKLS0gCjIuNDMu MAoK --000000000000cf342e063f082d09 Content-Type: text/x-patch; charset="US-ASCII"; name="v14-0009-Combine-vacuum-phase-I-VM-update-cases.patch" Content-Disposition: attachment; filename="v14-0009-Combine-vacuum-phase-I-VM-update-cases.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfonltn38 RnJvbSBhODhhN2Y4ODA5Nzc1NWQ0MzBkMDMwNzUzYzQwODBhYTQwOTJlZjdiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBNb24sIDE1IFNlcCAyMDI1IDE3OjQ4OjM4IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTQgMDkvMjRdIENvbWJpbmUgdmFjdXVtIHBoYXNlIEkgVk0gdXBkYXRlIGNhc2VzCgpX ZSB1cGRhdGUgdGhlIFZNIGFmdGVyIHBoYXNlIEkgb2YgdmFjdXVtIC0tIGVpdGhlciBzZXR0aW5n IGJvdGggdGhlIFZNCmJpdHMgd2hlbiBhbGwgYml0cyBhcmUgY3VycmVudGx5IHVuc2V0IG9yIHNl dHRpbmcganVzdCB0aGUgZnJvemVuIGJpdAp3aGVuIHRoZSBhbGwtdmlzaWJsZSBiaXQgaXMgYWxy ZWFkeSBzZXQuCgpUaG9zZSB0d28gY2FzZXMgc2hhcmVkIG11Y2ggb2YgdGhlIHNhbWUgY29kZSAt LSBsZWFkaW5nIHRvIHVubmVjZXNzYXJ5CmR1cGxpY2F0aW9uLiBUaGlzIGNvbW1pdCBjb21iaW5l cyB0aGVtLCB3aGljaCBpcyBzaW1wbGVyIGFuZCBlYXNpZXIgdG8KdW5kZXJzdGFuZC4KLS0tCiBz cmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgfCA2OCArKysrKysrKy0tLS0tLS0t LS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTggaW5zZXJ0aW9ucygrKSwgNTAgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5j IGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCmluZGV4IDMwOGFiZmYxNmNh Li41YTZiYmJkOTdmMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVt bGF6eS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwpAQCAtMjA1 OCwxNSArMjA1OCwyMiBAQCBsYXp5X3NjYW5fcHJ1bmUoTFZSZWxTdGF0ZSAqdmFjcmVsLAogCUFz c2VydCghcHJlc3VsdC5hbGxfZnJvemVuIHx8IHByZXN1bHQuYWxsX3Zpc2libGUpOwogCiAJLyoK LQkgKiBIYW5kbGUgc2V0dGluZyB2aXNpYmlsaXR5IG1hcCBiaXQgYmFzZWQgb24gaW5mb3JtYXRp b24gZnJvbSB0aGUgVk0gKGFzCisJICogSGFuZGxlIHNldHRpbmcgdmlzaWJpbGl0eSBtYXAgYml0 cyBiYXNlZCBvbiBpbmZvcm1hdGlvbiBmcm9tIHRoZSBWTSAoYXMKIAkgKiBvZiBsYXN0IGhlYXBf dmFjX3NjYW5fbmV4dF9ibG9jaygpIGNhbGwpLCBhbmQgZnJvbSBhbGxfdmlzaWJsZSBhbmQKLQkg KiBhbGxfZnJvemVuIHZhcmlhYmxlcworCSAqIGFsbF9mcm96ZW4gdmFyaWFibGVzLgogCSAqLwot CWlmICghYWxsX3Zpc2libGVfYWNjb3JkaW5nX3RvX3ZtICYmIHByZXN1bHQuYWxsX3Zpc2libGUp CisJaWYgKChwcmVzdWx0LmFsbF92aXNpYmxlICYmICFhbGxfdmlzaWJsZV9hY2NvcmRpbmdfdG9f dm0pIHx8CisJCShwcmVzdWx0LmFsbF9mcm96ZW4gJiYgIVZNX0FMTF9GUk9aRU4odmFjcmVsLT5y ZWwsIGJsa25vLCAmdm1idWZmZXIpKSkKIAl7CiAJCXVpbnQ4CQlvbGRfdm1iaXRzOwogCQl1aW50 OAkJZmxhZ3MgPSBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxFOwogCisJCS8qCisJCSAqIElmIHRo ZSBwYWdlIGlzIGFsbC1mcm96ZW4sIHdlIGNhbiBwYXNzIEludmFsaWRUcmFuc2FjdGlvbklkIGFz IG91cgorCQkgKiBjdXRvZmZfeGlkLCBzaW5jZSBhIHNuYXBzaG90Q29uZmxpY3RIb3Jpem9uIHN1 ZmZpY2llbnQgdG8gbWFrZQorCQkgKiBldmVyeXRoaW5nIHNhZmUgZm9yIFJFRE8gd2FzIGxvZ2dl ZCB3aGVuIHRoZSBwYWdlJ3MgdHVwbGVzIHdlcmUKKwkJICogZnJvemVuLgorCQkgKi8KIAkJaWYg KHByZXN1bHQuYWxsX2Zyb3plbikKIAkJewogCQkJQXNzZXJ0KCFUcmFuc2FjdGlvbklkSXNWYWxp ZChwcmVzdWx0LnZtX2NvbmZsaWN0X2hvcml6b24pKTsKQEAgLTIwNzksNiArMjA4NiwxMiBAQCBs YXp5X3NjYW5fcHJ1bmUoTFZSZWxTdGF0ZSAqdmFjcmVsLAogCQkJCQkJCQkJICAgZmxhZ3MpOwog CiAJCS8qCisJCSAqIEV2ZW4gaWYgd2UgYXJlIG9ubHkgc2V0dGluZyB0aGUgYWxsLWZyb3plbiBi aXQsIHRoZXJlIGlzIGEgc21hbGwKKwkJICogY2hhbmNlIHRoYXQgdGhlIFZNIHdhcyBtb2RpZmll ZCBzb21ldGltZSBiZXR3ZWVuIHNldHRpbmcKKwkJICogYWxsX3Zpc2libGVfYWNjb3JkaW5nX3Rv X3ZtIGFuZCBjaGVja2luZyB0aGUgdmlzaWJpbGl0eSBkdXJpbmcKKwkJICogcHJ1bmluZy4gQ2hl Y2sgdGhlIHJldHVybiB2YWx1ZSBvZiBvbGRfdm1iaXRzIHRvIGVuc3VyZSB0aGUKKwkJICogdmlz aWJpbGl0eSBtYXAgY291bnRlcnMgdXNlZCBmb3IgbG9nZ2luZyBhcmUgYWNjdXJhdGUuCisJCSAq CiAJCSAqIElmIHRoZSBwYWdlIHdhc24ndCBhbHJlYWR5IHNldCBhbGwtdmlzaWJsZSBhbmQvb3Ig YWxsLWZyb3plbiBpbiB0aGUKIAkJICogVk0sIGNvdW50IGl0IGFzIG5ld2x5IHNldCBmb3IgbG9n Z2luZy4KIAkJICovCkBAIC0yMTAwLDYgKzIxMTMsOCBAQCBsYXp5X3NjYW5fcHJ1bmUoTFZSZWxT dGF0ZSAqdmFjcmVsLAogCX0KIAogCS8qCisJICogTm93IGhhbmRsZSB0d28gcG90ZW50aWFsIGNv cnJ1cHRpb24gY2FzZXM6CisJICoKIAkgKiBBcyBvZiBQb3N0Z3JlU1FMIDkuMiwgdGhlIHZpc2li aWxpdHkgbWFwIGJpdCBzaG91bGQgbmV2ZXIgYmUgc2V0IGlmIHRoZQogCSAqIHBhZ2UtbGV2ZWwg Yml0IGlzIGNsZWFyLiAgSG93ZXZlciwgaXQncyBwb3NzaWJsZSB0aGF0IHRoZSBiaXQgZ290CiAJ ICogY2xlYXJlZCBhZnRlciBoZWFwX3ZhY19zY2FuX25leHRfYmxvY2soKSB3YXMgY2FsbGVkLCBz byB3ZSBtdXN0IHJlY2hlY2sKQEAgLTIxNDQsNTMgKzIxNTksNiBAQCBsYXp5X3NjYW5fcHJ1bmUo TFZSZWxTdGF0ZSAqdmFjcmVsLAogCQkJCQkJCVZJU0lCSUxJVFlNQVBfVkFMSURfQklUUyk7CiAJ fQogCi0JLyoKLQkgKiBJZiB0aGUgYWxsLXZpc2libGUgcGFnZSBpcyBhbGwtZnJvemVuIGJ1dCBu b3QgbWFya2VkIGFzIHN1Y2ggeWV0LCBtYXJrCi0JICogaXQgYXMgYWxsLWZyb3plbi4KLQkgKi8K LQllbHNlIGlmIChhbGxfdmlzaWJsZV9hY2NvcmRpbmdfdG9fdm0gJiYgcHJlc3VsdC5hbGxfZnJv emVuICYmCi0JCQkgIVZNX0FMTF9GUk9aRU4odmFjcmVsLT5yZWwsIGJsa25vLCAmdm1idWZmZXIp KQotCXsKLQkJdWludDgJCW9sZF92bWJpdHM7Ci0KLQkJLyoKLQkJICogU2V0IHRoZSBwYWdlIGFs bC1mcm96ZW4gKGFuZCBhbGwtdmlzaWJsZSkgaW4gdGhlIFZNLgotCQkgKgotCQkgKiBXZSBjYW4g cGFzcyBJbnZhbGlkVHJhbnNhY3Rpb25JZCBhcyBvdXIgY3V0b2ZmX3hpZCwgc2luY2UgYQotCQkg KiBzbmFwc2hvdENvbmZsaWN0SG9yaXpvbiBzdWZmaWNpZW50IHRvIG1ha2UgZXZlcnl0aGluZyBz YWZlIGZvciBSRURPCi0JCSAqIHdhcyBsb2dnZWQgd2hlbiB0aGUgcGFnZSdzIHR1cGxlcyB3ZXJl IGZyb3plbi4KLQkJICovCi0JCUFzc2VydCghVHJhbnNhY3Rpb25JZElzVmFsaWQocHJlc3VsdC52 bV9jb25mbGljdF9ob3Jpem9uKSk7Ci0JCW9sZF92bWJpdHMgPSB2aXNpYmlsaXR5bWFwX3NldCh2 YWNyZWwtPnJlbCwgYmxrbm8sIGJ1ZiwKLQkJCQkJCQkJCSAgIEludmFsaWRYTG9nUmVjUHRyLAot CQkJCQkJCQkJICAgdm1idWZmZXIsIEludmFsaWRUcmFuc2FjdGlvbklkLAotCQkJCQkJCQkJICAg VklTSUJJTElUWU1BUF9BTExfVklTSUJMRSB8Ci0JCQkJCQkJCQkgICBWSVNJQklMSVRZTUFQX0FM TF9GUk9aRU4pOwotCi0JCS8qCi0JCSAqIFRoZSBwYWdlIHdhcyBsaWtlbHkgYWxyZWFkeSBzZXQg YWxsLXZpc2libGUgaW4gdGhlIFZNLiBIb3dldmVyLAotCQkgKiB0aGVyZSBpcyBhIHNtYWxsIGNo YW5jZSB0aGF0IGl0IHdhcyBtb2RpZmllZCBzb21ldGltZSBiZXR3ZWVuCi0JCSAqIHNldHRpbmcg YWxsX3Zpc2libGVfYWNjb3JkaW5nX3RvX3ZtIGFuZCBjaGVja2luZyB0aGUgdmlzaWJpbGl0eQot CQkgKiBkdXJpbmcgcHJ1bmluZy4gQ2hlY2sgdGhlIHJldHVybiB2YWx1ZSBvZiBvbGRfdm1iaXRz IGFueXdheSB0bwotCQkgKiBlbnN1cmUgdGhlIHZpc2liaWxpdHkgbWFwIGNvdW50ZXJzIHVzZWQg Zm9yIGxvZ2dpbmcgYXJlIGFjY3VyYXRlLgotCQkgKi8KLQkJaWYgKChvbGRfdm1iaXRzICYgVklT SUJJTElUWU1BUF9BTExfVklTSUJMRSkgPT0gMCkKLQkJewotCQkJdmFjcmVsLT52bV9uZXdfdmlz aWJsZV9wYWdlcysrOwotCQkJdmFjcmVsLT52bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXMrKzsK LQkJCSp2bV9wYWdlX2Zyb3plbiA9IHRydWU7Ci0JCX0KLQotCQkvKgotCQkgKiBXZSBhbHJlYWR5 IGNoZWNrZWQgdGhhdCB0aGUgcGFnZSB3YXMgbm90IHNldCBhbGwtZnJvemVuIGluIHRoZSBWTQot CQkgKiBhYm92ZSwgc28gd2UgZG9uJ3QgbmVlZCB0byB0ZXN0IHRoZSB2YWx1ZSBvZiBvbGRfdm1i aXRzLgotCQkgKi8KLQkJZWxzZQotCQl7Ci0JCQl2YWNyZWwtPnZtX25ld19mcm96ZW5fcGFnZXMr KzsKLQkJCSp2bV9wYWdlX2Zyb3plbiA9IHRydWU7Ci0JCX0KLQl9CiAKIAlyZXR1cm4gcHJlc3Vs dC5uZGVsZXRlZDsKIH0KLS0gCjIuNDMuMAoK --000000000000cf342e063f082d09 Content-Type: text/x-patch; charset="US-ASCII"; name="v14-0010-Vacuum-phase-III-set-PD_ALL_VISIBLE-in-vacuum-WA.patch" Content-Disposition: attachment; filename="v14-0010-Vacuum-phase-III-set-PD_ALL_VISIBLE-in-vacuum-WA.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfonltn59 RnJvbSBhYWZkMGIxODM0MWEwM2Q0YjQ4NTc0ZjI4Njk0ZDA0ODkxNTU1YzVlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUdWUsIDE2IFNlcCAyMDI1IDEwOjM5OjMxIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTQgMTAvMjRdIFZhY3V1bSBwaGFzZSBJSUkgc2V0IFBEX0FMTF9WSVNJQkxFIGluIHZh Y3V1bSBXQUwKIHJlY29yZAoKSW5zdGVhZCBvZiBzZXR0aW5nIFBEX0FMTF9WSVNJQkxFIG9uIHRo ZSBoZWFwIHBhZ2Ugd2hlbiBzZXR0aW5nIGJpdHMgaW4KdGhlIFZNLCBzZXQgaXQgd2hlbiBmbGlw cGluZyB0aGUgbGluZSBwb2ludGVycyBvbiB0aGUgcGFnZSB0byBMUF9VTlVTRUQuClRoaXMgd2ls bCBhbGxvdyB1cyB0byBvbWl0IHRoZSBoZWFwIHBhZ2UgZnJvbSB0aGUgVk0gV0FMIGNoYWluLgoK VG8gZG8gdGhpcywgd2UgbXVzdCBjaGVjayBpZiB0aGUgcGFnZSB3aWxsIGJlIGFsbC12aXNpYmxl IG9uY2Ugd2UgZmxpcAp0aGUgbGluZSBwb2ludGVycyBiZWZvcmUgd2UgYWN0dWFsbHkgZG8gc28u CgpPbmUgZnVuY3Rpb25hbCBjaGFuZ2UgaXMgdGhhdCBhIHNpbmdsZSBjcml0aWNhbCBzZWN0aW9u IHN1cnJvdW5kcyBib3RoCnRoZSBWTSB1cGRhdGUgYW5kIHRoZSBoZWFwIHVwZGF0ZS4gUHJldmlv dXNseSB0aGV5IHdlcmUgZWFjaCBpbiBhCmNyaXRpY2FsIHNlY3Rpb24sIHNvIHdlIGNvdWxkIGNy YXNoIGFuZCBoYXZlIHNldCBQRF9BTExfVklTSUJMRSBidXQgbm90CnNldCBiaXRzIGluIHRoZSBW TS4KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgfCAxNDAgKysrKysr KysrKysrKysrKysrKystLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTA1IGluc2VydGlvbnMoKyks IDM1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Zh Y3V1bWxhenkuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwppbmRleCA1 YTZiYmJkOTdmMi4uOWJmY2Q2N2E2MWIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9o ZWFwL3ZhY3V1bWxhenkuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5 LmMKQEAgLTQ2NSw2ICs0NjUsMTEgQEAgc3RhdGljIHZvaWQgZGVhZF9pdGVtc19yZXNldChMVlJl bFN0YXRlICp2YWNyZWwpOwogc3RhdGljIHZvaWQgZGVhZF9pdGVtc19jbGVhbnVwKExWUmVsU3Rh dGUgKnZhY3JlbCk7CiBzdGF0aWMgYm9vbCBoZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGUoTFZSZWxT dGF0ZSAqdmFjcmVsLCBCdWZmZXIgYnVmLAogCQkJCQkJCQkJIFRyYW5zYWN0aW9uSWQgKnZpc2li aWxpdHlfY3V0b2ZmX3hpZCwgYm9vbCAqYWxsX2Zyb3plbik7CitzdGF0aWMgYm9vbCBoZWFwX3Bh Z2Vfd291bGRfYmVfYWxsX3Zpc2libGUoTFZSZWxTdGF0ZSAqdmFjcmVsLCBCdWZmZXIgYnVmLAor CQkJCQkJCQkJCSAgIE9mZnNldE51bWJlciAqZGVhZG9mZnNldHMsCisJCQkJCQkJCQkJICAgaW50 IG5kZWFkb2Zmc2V0cywKKwkJCQkJCQkJCQkgICBib29sICphbGxfZnJvemVuLAorCQkJCQkJCQkJ CSAgIFRyYW5zYWN0aW9uSWQgKnZpc2liaWxpdHlfY3V0b2ZmX3hpZCk7CiBzdGF0aWMgdm9pZCB1 cGRhdGVfcmVsc3RhdHNfYWxsX2luZGV4ZXMoTFZSZWxTdGF0ZSAqdmFjcmVsKTsKIHN0YXRpYyB2 b2lkIHZhY3V1bV9lcnJvcl9jYWxsYmFjayh2b2lkICphcmcpOwogc3RhdGljIHZvaWQgdXBkYXRl X3ZhY3V1bV9lcnJvcl9pbmZvKExWUmVsU3RhdGUgKnZhY3JlbCwKQEAgLTI3OTMsNiArMjc5OCw3 IEBAIGxhenlfdmFjdXVtX2hlYXBfcGFnZShMVlJlbFN0YXRlICp2YWNyZWwsIEJsb2NrTnVtYmVy IGJsa25vLCBCdWZmZXIgYnVmZmVyLAogCVRyYW5zYWN0aW9uSWQgdmlzaWJpbGl0eV9jdXRvZmZf eGlkOwogCWJvb2wJCWFsbF9mcm96ZW47CiAJTFZTYXZlZEVyckluZm8gc2F2ZWRfZXJyX2luZm87 CisJdWludDgJCXZtZmxhZ3MgPSAwOwogCiAJQXNzZXJ0KHZhY3JlbC0+ZG9faW5kZXhfdmFjdXVt aW5nKTsKIApAQCAtMjgwMyw2ICsyODA5LDE4IEBAIGxhenlfdmFjdXVtX2hlYXBfcGFnZShMVlJl bFN0YXRlICp2YWNyZWwsIEJsb2NrTnVtYmVyIGJsa25vLCBCdWZmZXIgYnVmZmVyLAogCQkJCQkJ CSBWQUNVVU1fRVJSQ0JfUEhBU0VfVkFDVVVNX0hFQVAsIGJsa25vLAogCQkJCQkJCSBJbnZhbGlk T2Zmc2V0TnVtYmVyKTsKIAorCWlmIChoZWFwX3BhZ2Vfd291bGRfYmVfYWxsX3Zpc2libGUodmFj cmVsLCBidWZmZXIsCisJCQkJCQkJCQkgICBkZWFkb2Zmc2V0cywgbnVtX29mZnNldHMsCisJCQkJ CQkJCQkgICAmYWxsX2Zyb3plbiwgJnZpc2liaWxpdHlfY3V0b2ZmX3hpZCkpCisJeworCQl2bWZs YWdzIHw9IFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEU7CisJCWlmIChhbGxfZnJvemVuKQorCQl7 CisJCQl2bWZsYWdzIHw9IFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTjsKKwkJCUFzc2VydCghVHJh bnNhY3Rpb25JZElzVmFsaWQodmlzaWJpbGl0eV9jdXRvZmZfeGlkKSk7CisJCX0KKwl9CisKIAlT VEFSVF9DUklUX1NFQ1RJT04oKTsKIAogCWZvciAoaW50IGkgPSAwOyBpIDwgbnVtX29mZnNldHM7 IGkrKykKQEAgLTI4MjIsNiArMjg0MCwxMyBAQCBsYXp5X3ZhY3V1bV9oZWFwX3BhZ2UoTFZSZWxT dGF0ZSAqdmFjcmVsLCBCbG9ja051bWJlciBibGtubywgQnVmZmVyIGJ1ZmZlciwKIAkvKiBBdHRl bXB0IHRvIHRydW5jYXRlIGxpbmUgcG9pbnRlciBhcnJheSBub3cgKi8KIAlQYWdlVHJ1bmNhdGVM aW5lUG9pbnRlckFycmF5KHBhZ2UpOwogCisJLyoKKwkgKiBUaGUgcGFnZSB3aWxsIG5ldmVyIGhh dmUgUERfQUxMX1ZJU0lCTEUgYWxyZWFkeSBzZXQsIHNvIGlmIHdlIGFyZQorCSAqIHNldHRpbmcg dGhlIFZNLCB3ZSBtdXN0IHNldCBQRF9BTExfVklTSUJMRSBhcyB3ZWxsLgorCSAqLworCWlmICgo dm1mbGFncyAmIFZJU0lCSUxJVFlNQVBfVkFMSURfQklUUykgIT0gMCkKKwkJUGFnZVNldEFsbFZp c2libGUocGFnZSk7CisKIAkvKgogCSAqIE1hcmsgYnVmZmVyIGRpcnR5IGJlZm9yZSB3ZSB3cml0 ZSBXQUwuCiAJICovCkBAIC0yODMzLDcgKzI4NTgsNyBAQCBsYXp5X3ZhY3V1bV9oZWFwX3BhZ2Uo TFZSZWxTdGF0ZSAqdmFjcmVsLCBCbG9ja051bWJlciBibGtubywgQnVmZmVyIGJ1ZmZlciwKIAkJ bG9nX2hlYXBfcHJ1bmVfYW5kX2ZyZWV6ZSh2YWNyZWwtPnJlbCwgYnVmZmVyLAogCQkJCQkJCQkg IEludmFsaWRUcmFuc2FjdGlvbklkLAogCQkJCQkJCQkgIGZhbHNlLAkvKiBubyBjbGVhbnVwIGxv Y2sgcmVxdWlyZWQgKi8KLQkJCQkJCQkJICBmYWxzZSwKKwkJCQkJCQkJICAodm1mbGFncyAmIFZJ U0lCSUxJVFlNQVBfVkFMSURfQklUUykgIT0gMCwKIAkJCQkJCQkJICBQUlVORV9WQUNVVU1fQ0xF QU5VUCwKIAkJCQkJCQkJICBOVUxMLCAwLAkvKiBmcm96ZW4gKi8KIAkJCQkJCQkJICBOVUxMLCAw LAkvKiByZWRpcmVjdGVkICovCkBAIC0yODQyLDM2ICsyODY3LDI2IEBAIGxhenlfdmFjdXVtX2hl YXBfcGFnZShMVlJlbFN0YXRlICp2YWNyZWwsIEJsb2NrTnVtYmVyIGJsa25vLCBCdWZmZXIgYnVm ZmVyLAogCX0KIAogCS8qCi0JICogRW5kIGNyaXRpY2FsIHNlY3Rpb24sIHNvIHdlIHNhZmVseSBj YW4gZG8gdmlzaWJpbGl0eSB0ZXN0cyAod2hpY2gKLQkgKiBwb3NzaWJseSBuZWVkIHRvIHBlcmZv cm0gSU8gYW5kIGFsbG9jYXRlIG1lbW9yeSEpLiBJZiB3ZSBjcmFzaCBub3cgdGhlCi0JICogcGFn ZSAoaW5jbHVkaW5nIHRoZSBjb3JyZXNwb25kaW5nIHZtIGJpdCkgbWlnaHQgbm90IGJlIG1hcmtl ZCBhbGwKLQkgKiB2aXNpYmxlLCBidXQgdGhhdCdzIGZpbmUuIEEgbGF0ZXIgdmFjdXVtIHdpbGwg Zml4IHRoYXQuCisJICogTm90ZSB0aGF0IHdlIGRvbid0IGVuZCB0aGUgY3JpdGljYWwgc2VjdGlv biB1bnRpbCBhZnRlciBlbWl0dGluZyB0aGUgVk0KKwkgKiByZWNvcmQuIFRoaXMgZW5zdXJlcyBi b3RoIFBEX0FMTF9WSVNJQkxFIGFuZCB0aGUgVk0gYml0cyBhcmUgc2V0IG9yCisJICogdW5zZXQg aW4gdGhlIGV2ZW50IG9mIGEgY3Jhc2guIFdoaWxlIGl0IGlzIGNvcnJlY3QgZm9yIFBEX0FMTF9W SVNJQkxFCisJICogdG8gYmUgc2V0IGFuZCB0aGUgVk0gdG8gYmUgY2xlYXIsIHdlIHNob3VsZCBk byBvdXIgYmVzdCB0byBrZWVwIHRoZXNlCisJICogaW4gc3luYy4gVGhpcyBkb2VzIG1lYW4gdGhh dCB3ZSB3aWxsIHRha2UgYSBsb2NrIG9uIHRoZSBWTSBidWZmZXIKKwkgKiBpbnNpZGUgb2YgYSBj cml0aWNhbCBzZWN0aW9uLCB3aGljaCBpcyBnZW5lcmFsbHkgZGlzY291cmFnZWQuIFRoZXJlIGlz CisJICogcHJlY2VkZW50IGZvciB0aGlzIGluIG90aGVyIGNhbGxlcnMgb2YgdmlzaWJpbGl0eW1h cF9zZXQoKSwgdGhvdWdoLgogCSAqLwotCUVORF9DUklUX1NFQ1RJT04oKTsKIAogCS8qCi0JICog Tm93IHRoYXQgd2UgaGF2ZSByZW1vdmVkIHRoZSBMUF9ERUFEIGl0ZW1zIGZyb20gdGhlIHBhZ2Us IG9uY2UgYWdhaW4KLQkgKiBjaGVjayBpZiB0aGUgcGFnZSBoYXMgYmVjb21lIGFsbC12aXNpYmxl LiAgVGhlIHBhZ2UgaXMgYWxyZWFkeSBtYXJrZWQKLQkgKiBkaXJ0eSwgZXhjbHVzaXZlbHkgbG9j a2VkLCBhbmQsIGlmIG5lZWRlZCwgYSBmdWxsIHBhZ2UgaW1hZ2UgaGFzIGJlZW4KLQkgKiBlbWl0 dGVkLgorCSAqIE5vdyB0aGF0IHdlIGhhdmUgcmVtb3ZlZCB0aGUgTFBfREVBRCBpdGVtcyBmcm9t IHRoZSBwYWdlLCBzZXQgdGhlCisJICogdmlzaWJpbGl0eSBtYXAgaWYgdGhlIHBhZ2UgYmVjYW1l IGFsbC12aXNpYmxlL2FsbC1mcm96ZW4uIENoYW5nZXMgdG8KKwkgKiB0aGUgaGVhcCBwYWdlIGhh dmUgYWxyZWFkeSBiZWVuIGxvZ2dlZC4KIAkgKi8KLQlBc3NlcnQoIVBhZ2VJc0FsbFZpc2libGUo cGFnZSkpOwotCWlmIChoZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGUodmFjcmVsLCBidWZmZXIsICZ2 aXNpYmlsaXR5X2N1dG9mZl94aWQsCi0JCQkJCQkJCSAmYWxsX2Zyb3plbikpCisJaWYgKCh2bWZs YWdzICYgVklTSUJJTElUWU1BUF9BTExfVklTSUJMRSkgIT0gMCkKIAl7Ci0JCXVpbnQ4CQlmbGFn cyA9IFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEU7Ci0KLQkJaWYgKGFsbF9mcm96ZW4pCi0JCXsK LQkJCUFzc2VydCghVHJhbnNhY3Rpb25JZElzVmFsaWQodmlzaWJpbGl0eV9jdXRvZmZfeGlkKSk7 Ci0JCQlmbGFncyB8PSBWSVNJQklMSVRZTUFQX0FMTF9GUk9aRU47Ci0JCX0KLQotCQlQYWdlU2V0 QWxsVmlzaWJsZShwYWdlKTsKIAkJdmlzaWJpbGl0eW1hcF9zZXQodmFjcmVsLT5yZWwsIGJsa25v LCBidWZmZXIsCiAJCQkJCQkgIEludmFsaWRYTG9nUmVjUHRyLAogCQkJCQkJICB2bWJ1ZmZlciwg dmlzaWJpbGl0eV9jdXRvZmZfeGlkLAotCQkJCQkJICBmbGFncyk7CisJCQkJCQkgIHZtZmxhZ3Mp OwogCiAJCS8qIENvdW50IHRoZSBuZXdseSBzZXQgVk0gcGFnZSBmb3IgbG9nZ2luZyAqLwogCQl2 YWNyZWwtPnZtX25ld192aXNpYmxlX3BhZ2VzKys7CkBAIC0yODc5LDYgKzI4OTQsOCBAQCBsYXp5 X3ZhY3V1bV9oZWFwX3BhZ2UoTFZSZWxTdGF0ZSAqdmFjcmVsLCBCbG9ja051bWJlciBibGtubywg QnVmZmVyIGJ1ZmZlciwKIAkJCXZhY3JlbC0+dm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzKys7 CiAJfQogCisJRU5EX0NSSVRfU0VDVElPTigpOworCiAJLyogUmV2ZXJ0IHRvIHRoZSBwcmV2aW91 cyBwaGFzZSBpbmZvcm1hdGlvbiBmb3IgZXJyb3IgdHJhY2ViYWNrICovCiAJcmVzdG9yZV92YWN1 dW1fZXJyb3JfaW5mbyh2YWNyZWwsICZzYXZlZF9lcnJfaW5mbyk7CiB9CkBAIC0zNTQwLDMwICsz NTU3LDc3IEBAIGRlYWRfaXRlbXNfY2xlYW51cChMVlJlbFN0YXRlICp2YWNyZWwpCiB9CiAKIC8q Ci0gKiBDaGVjayBpZiBldmVyeSB0dXBsZSBpbiB0aGUgZ2l2ZW4gcGFnZSBpcyB2aXNpYmxlIHRv IGFsbCBjdXJyZW50IGFuZCBmdXR1cmUKLSAqIHRyYW5zYWN0aW9ucy4gQWxzbyByZXR1cm4gdGhl IHZpc2liaWxpdHlfY3V0b2ZmX3hpZCB3aGljaCBpcyB0aGUgaGlnaGVzdAotICogeG1pbiBhbW9u Z3N0IHRoZSB2aXNpYmxlIHR1cGxlcy4gIFNldCAqYWxsX2Zyb3plbiB0byB0cnVlIGlmIGV2ZXJ5 IHR1cGxlCi0gKiBvbiB0aGlzIHBhZ2UgaXMgZnJvemVuLgotICoKLSAqIFRoaXMgaXMgYSBzdHJp cHBlZCBkb3duIHZlcnNpb24gb2YgbGF6eV9zY2FuX3BydW5lKCkuICBJZiB5b3UgY2hhbmdlCi0g KiBhbnl0aGluZyBoZXJlLCBtYWtlIHN1cmUgdGhhdCBldmVyeXRoaW5nIHN0YXlzIGluIHN5bmMu ICBOb3RlIHRoYXQgYW4KLSAqIGFzc2VydGlvbiBjYWxscyB1cyB0byB2ZXJpZnkgdGhhdCBldmVy eWJvZHkgc3RpbGwgYWdyZWVzLiAgQmUgc3VyZSB0byBhdm9pZAotICogaW50cm9kdWNpbmcgbmV3 IHNpZGUtZWZmZWN0cyBoZXJlLgorICogV3JhcHBlciBmb3IgaGVhcF9wYWdlX3dvdWxkX2JlX2Fs bF92aXNpYmxlKCkgd2hpY2ggY2FuIGJlIHVzZWQgZm9yCisgKiBjYWxsZXJzIHRoYXQgZXhwZWN0 IG5vIExQX0RFQUQgb24gdGhlIHBhZ2UuCiAgKi8KIHN0YXRpYyBib29sCiBoZWFwX3BhZ2VfaXNf YWxsX3Zpc2libGUoTFZSZWxTdGF0ZSAqdmFjcmVsLCBCdWZmZXIgYnVmLAogCQkJCQkJIFRyYW5z YWN0aW9uSWQgKnZpc2liaWxpdHlfY3V0b2ZmX3hpZCwKIAkJCQkJCSBib29sICphbGxfZnJvemVu KQogeworCisJcmV0dXJuIGhlYXBfcGFnZV93b3VsZF9iZV9hbGxfdmlzaWJsZSh2YWNyZWwsIGJ1 ZiwKKwkJCQkJCQkJCQkgIE5VTEwsIDAsCisJCQkJCQkJCQkJICBhbGxfZnJvemVuLAorCQkJCQkJ CQkJCSAgdmlzaWJpbGl0eV9jdXRvZmZfeGlkKTsKK30KKworLyoKKyAqIERldGVybWluZXMgd2hl dGhlciBvciBub3QgdGhlIGhlYXAgcGFnZSBpbiBidWYgaXMgYWxsLXZpc2libGUgb3RoZXIgdGhh bgorICogdGhlIGRlYWQgbGluZSBwb2ludGVycyByZWZlcnJlZCB0byBieSB0aGUgcHJvdmlkZWQg ZGVhZG9mZnNldHMgYXJyYXkuCisgKgorICogZGVhZG9mZnNldHMgYXJlIHRoZSBvZmZzZXRzIHRo ZSBjYWxsZXIga25vd3MgYWJvdXQgYW5kIGFscmVhZHkgcmVtb3ZlZAorICogYXNzb2NpYXRlZCBp bmRleCBlbnRyaWVzLiBWYWN1dW0gd2lsbCBjYWxsIHRoaXMgYmVmb3JlIHNldHRpbmcgdGhvc2Ug bGluZQorICogcG9pbnRlcnMgTFBfVU5VU0VELiBTbywgaWYgdGhlcmUgYXJlIG5vIG5ldyBMUF9E RUFEIGl0ZW1zLCB0aGVuIHRoZSBwYWdlCisgKiBjYW4gYmUgc2V0IGFsbC12aXNpYmxlIGluIHRo ZSBWTSBieSB0aGUgY2FsbGVyLgorICoKKyAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgcGFnZSBpcyBh bGwtdmlzaWJsZSBvdGhlciB0aGFuIHRoZSBwcm92aWRlZAorICogZGVhZG9mZnNldHMgYW5kIGZh bHNlIG90aGVyd2lzZS4KKyAqCisgKiB2YWNyZWwtPmN1dG9mZnMuT2xkZXN0WG1pbiBpcyB1c2Vk IHRvIGRldGVybWluZSB2aXNpYmlsaXR5LgorICoKKyAqICphbGxfZnJvemVuIGlzIGFuIG91dHB1 dCBwYXJhbWV0ZXIgaW5kaWNhdGluZyB0byB0aGUgY2FsbGVyIGlmIGV2ZXJ5IHR1cGxlCisgKiBv biB0aGUgcGFnZSBpcyBmcm96ZW4uCisgKgorICogKnZpc2liaWxpdHlfY3V0b2ZmX3hpZCBpcyBh biBvdXRwdXQgcGFyYW1ldGVyIHdpdGggdGhlIGhpZ2hlc3QgeG1pbiBhbW9uZ3N0IHRoZQorICog dmlzaWJsZSB0dXBsZXMuIEl0IGlzIG9ubHkgdmFsaWQgaWYgdGhlIHBhZ2UgaXMgYWxsLXZpc2li bGUuCisgKgorICogQ2FsbGVycyBsb29raW5nIHRvIHZlcmlmeSB0aGF0IHRoZSBwYWdlIGlzIGFs cmVhZHkgYWxsLXZpc2libGUgY2FuIGNhbGwKKyAqIGhlYXBfcGFnZV9pc19hbGxfdmlzaWJsZSgp LgorICoKKyAqIFRoaXMgaXMgc2ltaWxhciBsb2dpYyB0byB0aGF0IGluIGhlYXBfcHJ1bmVfcmVj b3JkX3VuY2hhbmdlZF9scF9ub3JtYWwoKSBJZgorICogeW91IGNoYW5nZSBhbnl0aGluZyBoZXJl LCBtYWtlIHN1cmUgdGhhdCBldmVyeXRoaW5nIHN0YXlzIGluIHN5bmMuICBOb3RlCisgKiB0aGF0 IGFuIGFzc2VydGlvbiBjYWxscyB1cyB0byB2ZXJpZnkgdGhhdCBldmVyeWJvZHkgc3RpbGwgYWdy ZWVzLiAgQmUgc3VyZQorICogdG8gYXZvaWQgaW50cm9kdWNpbmcgbmV3IHNpZGUtZWZmZWN0cyBo ZXJlLgorICovCitzdGF0aWMgYm9vbAoraGVhcF9wYWdlX3dvdWxkX2JlX2FsbF92aXNpYmxlKExW UmVsU3RhdGUgKnZhY3JlbCwgQnVmZmVyIGJ1ZiwKKwkJCQkJCQkgICBPZmZzZXROdW1iZXIgKmRl YWRvZmZzZXRzLAorCQkJCQkJCSAgIGludCBuZGVhZG9mZnNldHMsCisJCQkJCQkJICAgYm9vbCAq YWxsX2Zyb3plbiwKKwkJCQkJCQkgICBUcmFuc2FjdGlvbklkICp2aXNpYmlsaXR5X2N1dG9mZl94 aWQpCit7CiAJUGFnZQkJcGFnZSA9IEJ1ZmZlckdldFBhZ2UoYnVmKTsKIAlCbG9ja051bWJlciBi bG9ja25vID0gQnVmZmVyR2V0QmxvY2tOdW1iZXIoYnVmKTsKIAlPZmZzZXROdW1iZXIgb2ZmbnVt LAogCQkJCW1heG9mZjsKIAlib29sCQlhbGxfdmlzaWJsZSA9IHRydWU7CisJaW50CQkJbWF0Y2hl ZF9kZWFkX2NvdW50ID0gMDsKIAogCSp2aXNpYmlsaXR5X2N1dG9mZl94aWQgPSBJbnZhbGlkVHJh bnNhY3Rpb25JZDsKIAkqYWxsX2Zyb3plbiA9IHRydWU7CiAKKwlBc3NlcnQobmRlYWRvZmZzZXRz ID09IDAgfHwgZGVhZG9mZnNldHMpOworCisjaWZkZWYgVVNFX0FTU0VSVF9DSEVDS0lORworCS8q IENvbmZpcm0gaW5wdXQgZGVhZG9mZnNldHNbXSBpcyBzdHJpY3RseSBzb3J0ZWQgKi8KKwlpZiAo bmRlYWRvZmZzZXRzID4gMSkKKwl7CisJCWZvciAoaW50IGkgPSAxOyBpIDwgbmRlYWRvZmZzZXRz OyBpKyspCisJCQlBc3NlcnQoZGVhZG9mZnNldHNbaSAtIDFdIDwgZGVhZG9mZnNldHNbaV0pOwor CX0KKyNlbmRpZgorCiAJbWF4b2ZmID0gUGFnZUdldE1heE9mZnNldE51bWJlcihwYWdlKTsKIAlm b3IgKG9mZm51bSA9IEZpcnN0T2Zmc2V0TnVtYmVyOwogCQkgb2ZmbnVtIDw9IG1heG9mZiAmJiBh bGxfdmlzaWJsZTsKQEAgLTM1OTEsOSArMzY1NSwxNSBAQCBoZWFwX3BhZ2VfaXNfYWxsX3Zpc2li bGUoTFZSZWxTdGF0ZSAqdmFjcmVsLCBCdWZmZXIgYnVmLAogCQkgKi8KIAkJaWYgKEl0ZW1JZElz RGVhZChpdGVtaWQpKQogCQl7Ci0JCQlhbGxfdmlzaWJsZSA9IGZhbHNlOwotCQkJKmFsbF9mcm96 ZW4gPSBmYWxzZTsKLQkJCWJyZWFrOworCQkJaWYgKCFkZWFkb2Zmc2V0cyB8fAorCQkJCW1hdGNo ZWRfZGVhZF9jb3VudCA+PSBuZGVhZG9mZnNldHMgfHwKKwkJCQlkZWFkb2Zmc2V0c1ttYXRjaGVk X2RlYWRfY291bnRdICE9IG9mZm51bSkKKwkJCXsKKwkJCQkqYWxsX2Zyb3plbiA9IGFsbF92aXNp YmxlID0gZmFsc2U7CisJCQkJYnJlYWs7CisJCQl9CisJCQltYXRjaGVkX2RlYWRfY291bnQrKzsK KwkJCWNvbnRpbnVlOwogCQl9CiAKIAkJQXNzZXJ0KEl0ZW1JZElzTm9ybWFsKGl0ZW1pZCkpOwot LSAKMi40My4wCgo= --000000000000cf342e063f082d09 Content-Type: text/x-patch; charset="US-ASCII"; name="v14-0011-Log-setting-empty-pages-PD_ALL_VISIBLE-with-XLOG.patch" Content-Disposition: attachment; filename="v14-0011-Log-setting-empty-pages-PD_ALL_VISIBLE-with-XLOG.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfonltn610 RnJvbSBkNzc0YjgwMjg4MDQyZDlhMzFjYmM2NDc3YzJmMDE1MWYxYzlkYzJlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDE3IFNlcCAyMDI1IDE4OjExOjQ5IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTQgMTEvMjRdIExvZyBzZXR0aW5nIGVtcHR5IHBhZ2VzIFBEX0FMTF9WSVNJQkxFIHdp dGgKIFhMT0dfSEVBUDJfVkFDVVVNX1NDQU4KClRob3VnaCBub3QgYSBiaWcgd2luIGZvciB0aGlz IHBhcnRpY3VsYXIgY2FzZSwgaWYgd2UgdXNlIHRoZQpYTE9HX0hFQVAyX1ZBQ1VVTV9TQ0FOIHJl Y29yZCB0byBsb2cgc2V0dGluZyBQRF9BTExfVklTSUJMRSBvbiB0aGUgaGVhcApwYWdlIHdlIGNh biBvbWl0IHRoZSBoZWFwIHBhZ2UgZnJvbSB0aGUgV0FMIGNoYWluIHdoZW4gc2V0dGluZyB0aGUK dmlzaWJpbGl0eSBtYXAuIEEgZm9sbG93LW9uIGNvbW1pdCB3aWxsIGFjdHVhbGx5IHJlbW92ZSB0 aGUgaGVhcCBwYWdlCmZyb20gdGhlIFZNIHNldCBXQUwgY2hhaW4uCi0tLQogc3JjL2JhY2tlbmQv YWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jIHwgNDMgKysrKysrKysrKysrKysrKysrKy0tLS0tLS0t LQogMSBmaWxlIGNoYW5nZWQsIDI5IGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyBiL3NyYy9iYWNr ZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwppbmRleCA5YmZjZDY3YTYxYi4uYzAxNmY4Zjdj MjUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYworKysg Yi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKQEAgLTE4NzksMjMgKzE4Nzks MzggQEAgbGF6eV9zY2FuX25ld19vcl9lbXB0eShMVlJlbFN0YXRlICp2YWNyZWwsIEJ1ZmZlciBi dWYsIEJsb2NrTnVtYmVyIGJsa25vLAogCQl7CiAJCQlTVEFSVF9DUklUX1NFQ1RJT04oKTsKIAot CQkJLyogbWFyayBidWZmZXIgZGlydHkgYmVmb3JlIHdyaXRpbmcgYSBXQUwgcmVjb3JkICovCisJ CQlQYWdlU2V0QWxsVmlzaWJsZShwYWdlKTsKIAkJCU1hcmtCdWZmZXJEaXJ0eShidWYpOwogCi0J CQkvKgotCQkJICogSXQncyBwb3NzaWJsZSB0aGF0IGFub3RoZXIgYmFja2VuZCBoYXMgZXh0ZW5k ZWQgdGhlIGhlYXAsCi0JCQkgKiBpbml0aWFsaXplZCB0aGUgcGFnZSwgYW5kIHRoZW4gZmFpbGVk IHRvIFdBTC1sb2cgdGhlIHBhZ2UgZHVlCi0JCQkgKiB0byBhbiBFUlJPUi4gIFNpbmNlIGhlYXAg ZXh0ZW5zaW9uIGlzIG5vdCBXQUwtbG9nZ2VkLCByZWNvdmVyeQotCQkJICogbWlnaHQgdHJ5IHRv IHJlcGxheSBvdXIgcmVjb3JkIHNldHRpbmcgdGhlIHBhZ2UgYWxsLXZpc2libGUgYW5kCi0JCQkg KiBmaW5kIHRoYXQgdGhlIHBhZ2UgaXNuJ3QgaW5pdGlhbGl6ZWQsIHdoaWNoIHdpbGwgY2F1c2Ug YSBQQU5JQy4KLQkJCSAqIFRvIHByZXZlbnQgdGhhdCwgY2hlY2sgd2hldGhlciB0aGUgcGFnZSBo YXMgYmVlbiBwcmV2aW91c2x5Ci0JCQkgKiBXQUwtbG9nZ2VkLCBhbmQgaWYgbm90LCBkbyB0aGF0 IG5vdy4KLQkJCSAqLwotCQkJaWYgKFJlbGF0aW9uTmVlZHNXQUwodmFjcmVsLT5yZWwpICYmCi0J CQkJUGFnZUdldExTTihwYWdlKSA9PSBJbnZhbGlkWExvZ1JlY1B0cikKLQkJCQlsb2dfbmV3cGFn ZV9idWZmZXIoYnVmLCB0cnVlKTsKKwkJCWlmIChSZWxhdGlvbk5lZWRzV0FMKHZhY3JlbC0+cmVs KSkKKwkJCXsKKwkJCQkvKgorCQkJCSAqIEl0J3MgcG9zc2libGUgdGhhdCBhbm90aGVyIGJhY2tl bmQgaGFzIGV4dGVuZGVkIHRoZSBoZWFwLAorCQkJCSAqIGluaXRpYWxpemVkIHRoZSBwYWdlLCBh bmQgdGhlbiBmYWlsZWQgdG8gV0FMLWxvZyB0aGUgcGFnZQorCQkJCSAqIGR1ZSB0byBhbiBFUlJP Ui4gIFNpbmNlIGhlYXAgZXh0ZW5zaW9uIGlzIG5vdCBXQUwtbG9nZ2VkLAorCQkJCSAqIHJlY292 ZXJ5IG1pZ2h0IHRyeSB0byByZXBsYXkgb3VyIHJlY29yZCBzZXR0aW5nIHRoZSBwYWdlCisJCQkJ ICogYWxsLXZpc2libGUgYW5kIGZpbmQgdGhhdCB0aGUgcGFnZSBpc24ndCBpbml0aWFsaXplZCwg d2hpY2gKKwkJCQkgKiB3aWxsIGNhdXNlIGEgUEFOSUMuIFRvIHByZXZlbnQgdGhhdCwgY2hlY2sg d2hldGhlciB0aGUgcGFnZQorCQkJCSAqIGhhcyBiZWVuIHByZXZpb3VzbHkgV0FMLWxvZ2dlZCwg YW5kIGlmIG5vdCwgZG8gdGhhdCBub3cuCisJCQkJICoKKwkJCQkgKiBPdGhlcndpc2UsIGp1c3Qg ZW1pdCBXQUwgZm9yIHNldHRpbmcgUERfQUxMX1ZJU0lCTEUgb24gdGhlCisJCQkJICogaGVhcCBw YWdlLiBEb2luZyB0aGlzIGluIGEgc2VwYXJhdGUgcmVjb3JkIGZyb20gc2V0dGluZyB0aGUKKwkJ CQkgKiBWTSBhbGxvd3MgdXMgdG8gb21pdCB0aGUgaGVhcCBwYWdlIGZyb20gdGhlIFZNIFdBTCBj aGFpbi4KKwkJCQkgKi8KKwkJCQlpZiAoUGFnZUdldExTTihwYWdlKSA9PSBJbnZhbGlkWExvZ1Jl Y1B0cikKKwkJCQkJbG9nX25ld3BhZ2VfYnVmZmVyKGJ1ZiwgdHJ1ZSk7CisJCQkJZWxzZQorCQkJ CQlsb2dfaGVhcF9wcnVuZV9hbmRfZnJlZXplKHZhY3JlbC0+cmVsLCBidWYsCisJCQkJCQkJCQkJ CSAgSW52YWxpZFRyYW5zYWN0aW9uSWQsIC8qIGNvbmZsaWN0IHhpZCAqLworCQkJCQkJCQkJCQkg IGZhbHNlLAkvKiBjbGVhbnVwIGxvY2sgKi8KKwkJCQkJCQkJCQkJICB0cnVlLCAvKiBzZXRfcGRf YWxsX3ZpcyAqLworCQkJCQkJCQkJCQkgIFBSVU5FX1ZBQ1VVTV9TQ0FOLAkvKiByZWFzb24gKi8K KwkJCQkJCQkJCQkJICBOVUxMLCAwLAorCQkJCQkJCQkJCQkgIE5VTEwsIDAsCisJCQkJCQkJCQkJ CSAgTlVMTCwgMCwKKwkJCQkJCQkJCQkJICBOVUxMLCAwKTsKKwkJCX0KIAotCQkJUGFnZVNldEFs bFZpc2libGUocGFnZSk7CiAJCQl2aXNpYmlsaXR5bWFwX3NldCh2YWNyZWwtPnJlbCwgYmxrbm8s IGJ1ZiwKIAkJCQkJCQkgIEludmFsaWRYTG9nUmVjUHRyLAogCQkJCQkJCSAgdm1idWZmZXIsIElu dmFsaWRUcmFuc2FjdGlvbklkLAotLSAKMi40My4wCgo= --000000000000cf342e063f082d09 Content-Type: text/x-patch; charset="US-ASCII"; name="v14-0012-Remove-heap-buffer-from-XLOG_HEAP2_VISIBLE-WAL-c.patch" Content-Disposition: attachment; filename="v14-0012-Remove-heap-buffer-from-XLOG_HEAP2_VISIBLE-WAL-c.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfonltn911 RnJvbSBhNjNlZWQ4MWZmNzMyMTdhMTJjYmI4NGIyYTdmNGRlZjMzNjY4NzFhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUdWUsIDE2IFNlcCAyMDI1IDExOjA1OjMwIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTQgMTIvMjRdIFJlbW92ZSBoZWFwIGJ1ZmZlciBmcm9tIFhMT0dfSEVBUDJfVklTSUJM RSBXQUwKIGNoYWluCgpOb3cgdGhhdCBhbGwgdXNlcnMgb2YgdmlzaWJpbGl0eW1hcF9zZXQoKSBp bmNsdWRlIHNldHRpbmcgUERfQUxMX1ZJU0lCTEUKaW4gdGhlIFdBTCByZWNvcmQgY2FwdHVyaW5n IG90aGVyIGNoYW5nZXMgdG8gdGhlIGhlYXAgcGFnZSwgd2Ugbm8gbG9uZ2VyCm5lZWQgdG8gaW5j bHVkZSB0aGUgaGVhcCBidWZmZXIgaW4gdGhlIFdBTCBjaGFpbiBmb3Igc2V0dGluZyB0aGUgVk0u Ci0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMgICAgICAgIHwgMTYgKy0tLS0t CiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1feGxvZy5jICAgfCA3NiArKystLS0tLS0t LS0tLS0tLS0tLS0tLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgICAg fCAgNiArLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmlzaWJpbGl0eW1hcC5jIHwgMzEgKy0t LS0tLS0tLQogc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbV94bG9nLmggICAgICAgIHwgIDMgKy0K IHNyYy9pbmNsdWRlL2FjY2Vzcy92aXNpYmlsaXR5bWFwLmggICAgICB8ICAyICstCiA2IGZpbGVz IGNoYW5nZWQsIDE2IGluc2VydGlvbnMoKyksIDExOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9o ZWFwL2hlYXBhbS5jCmluZGV4IGM4Y2Q5ZDIyNzI2Li4wMzIzZTJkZjQwOSAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNz L2hlYXAvaGVhcGFtLmMKQEAgLTg4MDcsMjEgKzg4MDcsMTQgQEAgYm90dG9tdXBfc29ydF9hbmRf c2hyaW5rKFRNX0luZGV4RGVsZXRlT3AgKmRlbHN0YXRlKQogICoKICAqIHNuYXBzaG90Q29uZmxp Y3RIb3Jpem9uIGNvbWVzIGZyb20gdGhlIGxhcmdlc3QgeG1pbiBvbiB0aGUgcGFnZSBiZWluZwog ICogbWFya2VkIGFsbC12aXNpYmxlLiAgUkVETyByb3V0aW5lIHVzZXMgaXQgdG8gZ2VuZXJhdGUg cmVjb3ZlcnkgY29uZmxpY3RzLgotICoKLSAqIElmIGNoZWNrc3VtcyBvciB3YWxfbG9nX2hpbnRz IGFyZSBlbmFibGVkLCB3ZSBtYXkgYWxzbyBnZW5lcmF0ZSBhIGZ1bGwtcGFnZQotICogaW1hZ2Ug b2YgaGVhcF9idWZmZXIuIE90aGVyd2lzZSwgd2Ugb3B0aW1pemUgYXdheSB0aGUgRlBJIChieSBz cGVjaWZ5aW5nCi0gKiBSRUdCVUZfTk9fSU1BR0UgZm9yIHRoZSBoZWFwIGJ1ZmZlciksIGluIHdo aWNoIGNhc2UgdGhlIGNhbGxlciBzaG91bGQgKm5vdCoKLSAqIHVwZGF0ZSB0aGUgaGVhcCBwYWdl J3MgTFNOLgogICovCiBYTG9nUmVjUHRyCi1sb2dfaGVhcF92aXNpYmxlKFJlbGF0aW9uIHJlbCwg QnVmZmVyIGhlYXBfYnVmZmVyLCBCdWZmZXIgdm1fYnVmZmVyLAorbG9nX2hlYXBfdmlzaWJsZShS ZWxhdGlvbiByZWwsIEJ1ZmZlciB2bV9idWZmZXIsCiAJCQkJIFRyYW5zYWN0aW9uSWQgc25hcHNo b3RDb25mbGljdEhvcml6b24sIHVpbnQ4IHZtZmxhZ3MpCiB7CiAJeGxfaGVhcF92aXNpYmxlIHhs cmVjOwogCVhMb2dSZWNQdHIJcmVjcHRyOwotCXVpbnQ4CQlmbGFnczsKIAotCUFzc2VydChCdWZm ZXJJc1ZhbGlkKGhlYXBfYnVmZmVyKSk7CiAJQXNzZXJ0KEJ1ZmZlcklzVmFsaWQodm1fYnVmZmVy KSk7CiAKIAl4bHJlYy5zbmFwc2hvdENvbmZsaWN0SG9yaXpvbiA9IHNuYXBzaG90Q29uZmxpY3RI b3Jpem9uOwpAQCAtODgzMCwxNCArODgyMyw3IEBAIGxvZ19oZWFwX3Zpc2libGUoUmVsYXRpb24g cmVsLCBCdWZmZXIgaGVhcF9idWZmZXIsIEJ1ZmZlciB2bV9idWZmZXIsCiAJCXhscmVjLmZsYWdz IHw9IFZJU0lCSUxJVFlNQVBfWExPR19DQVRBTE9HX1JFTDsKIAlYTG9nQmVnaW5JbnNlcnQoKTsK IAlYTG9nUmVnaXN0ZXJEYXRhKCZ4bHJlYywgU2l6ZU9mSGVhcFZpc2libGUpOwotCiAJWExvZ1Jl Z2lzdGVyQnVmZmVyKDAsIHZtX2J1ZmZlciwgMCk7Ci0KLQlmbGFncyA9IFJFR0JVRl9TVEFOREFS RDsKLQlpZiAoIVhMb2dIaW50Qml0SXNOZWVkZWQoKSkKLQkJZmxhZ3MgfD0gUkVHQlVGX05PX0lN QUdFOwotCVhMb2dSZWdpc3RlckJ1ZmZlcigxLCBoZWFwX2J1ZmZlciwgZmxhZ3MpOwotCiAJcmVj cHRyID0gWExvZ0luc2VydChSTV9IRUFQMl9JRCwgWExPR19IRUFQMl9WSVNJQkxFKTsKIAogCXJl dHVybiByZWNwdHI7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1f eGxvZy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX3hsb2cuYwppbmRleCBhNTQy MzhmMmI1OS4uNjhiNDFmMzllNjkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFw L2hlYXBhbV94bG9nLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX3hsb2cu YwpAQCAtMjI5LDE1ICsyMjksMTIgQEAgaGVhcF94bG9nX3Zpc2libGUoWExvZ1JlYWRlclN0YXRl ICpyZWNvcmQpCiAJWExvZ1JlY1B0cglsc24gPSByZWNvcmQtPkVuZFJlY1B0cjsKIAl4bF9oZWFw X3Zpc2libGUgKnhscmVjID0gKHhsX2hlYXBfdmlzaWJsZSAqKSBYTG9nUmVjR2V0RGF0YShyZWNv cmQpOwogCUJ1ZmZlcgkJdm1idWZmZXIgPSBJbnZhbGlkQnVmZmVyOwotCUJ1ZmZlcgkJYnVmZmVy OwotCVBhZ2UJCXBhZ2U7CiAJUmVsRmlsZUxvY2F0b3IgcmxvY2F0b3I7CiAJQmxvY2tOdW1iZXIg Ymxrbm87Ci0JWExvZ1JlZG9BY3Rpb24gYWN0aW9uOwogCiAJQXNzZXJ0KCh4bHJlYy0+ZmxhZ3Mg JiBWSVNJQklMSVRZTUFQX1hMT0dfVkFMSURfQklUUykgPT0geGxyZWMtPmZsYWdzKTsKIAotCVhM b2dSZWNHZXRCbG9ja1RhZyhyZWNvcmQsIDEsICZybG9jYXRvciwgTlVMTCwgJmJsa25vKTsKKwlY TG9nUmVjR2V0QmxvY2tUYWcocmVjb3JkLCAwLCAmcmxvY2F0b3IsIE5VTEwsICZibGtubyk7CiAK IAkvKgogCSAqIElmIHRoZXJlIGFyZSBhbnkgSG90IFN0YW5kYnkgdHJhbnNhY3Rpb25zIHJ1bm5p bmcgdGhhdCBoYXZlIGFuIHhtaW4KQEAgLTI1NCw3MCArMjUxLDExIEBAIGhlYXBfeGxvZ192aXNp YmxlKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCQkJCQkJCQkJCQlybG9jYXRvcik7CiAKIAkv KgotCSAqIFJlYWQgdGhlIGhlYXAgcGFnZSwgaWYgaXQgc3RpbGwgZXhpc3RzLiBJZiB0aGUgaGVh cCBmaWxlIGhhcyBkcm9wcGVkIG9yCi0JICogdHJ1bmNhdGVkIGxhdGVyIGluIHJlY292ZXJ5LCB3 ZSBkb24ndCBuZWVkIHRvIHVwZGF0ZSB0aGUgcGFnZSwgYnV0IHdlJ2QKLQkgKiBiZXR0ZXIgc3Rp bGwgdXBkYXRlIHRoZSB2aXNpYmlsaXR5IG1hcC4KLQkgKi8KLQlhY3Rpb24gPSBYTG9nUmVhZEJ1 ZmZlckZvclJlZG8ocmVjb3JkLCAxLCAmYnVmZmVyKTsKLQlpZiAoYWN0aW9uID09IEJMS19ORUVE U19SRURPKQotCXsKLQkJLyoKLQkJICogV2UgZG9uJ3QgYnVtcCB0aGUgTFNOIG9mIHRoZSBoZWFw IHBhZ2Ugd2hlbiBzZXR0aW5nIHRoZSB2aXNpYmlsaXR5Ci0JCSAqIG1hcCBiaXQgKHVubGVzcyBj aGVja3N1bXMgb3Igd2FsX2hpbnRfYml0cyBpcyBlbmFibGVkLCBpbiB3aGljaAotCQkgKiBjYXNl IHdlIG11c3QpLiBUaGlzIGV4cG9zZXMgdXMgdG8gdG9ybiBwYWdlIGhhemFyZHMsIGJ1dCBzaW5j ZQotCQkgKiB3ZSdyZSBub3QgaW5zcGVjdGluZyB0aGUgZXhpc3RpbmcgcGFnZSBjb250ZW50cyBp biBhbnkgd2F5LCB3ZQotCQkgKiBkb24ndCBjYXJlLgotCQkgKi8KLQkJcGFnZSA9IEJ1ZmZlckdl dFBhZ2UoYnVmZmVyKTsKLQotCQlQYWdlU2V0QWxsVmlzaWJsZShwYWdlKTsKLQotCQlpZiAoWExv Z0hpbnRCaXRJc05lZWRlZCgpKQotCQkJUGFnZVNldExTTihwYWdlLCBsc24pOwotCi0JCU1hcmtC dWZmZXJEaXJ0eShidWZmZXIpOwotCX0KLQllbHNlIGlmIChhY3Rpb24gPT0gQkxLX1JFU1RPUkVE KQotCXsKLQkJLyoKLQkJICogSWYgaGVhcCBibG9jayB3YXMgYmFja2VkIHVwLCB3ZSBhbHJlYWR5 IHJlc3RvcmVkIGl0IGFuZCB0aGVyZSdzCi0JCSAqIG5vdGhpbmcgbW9yZSB0byBkby4gKFRoaXMg Y2FuIG9ubHkgaGFwcGVuIHdpdGggY2hlY2tzdW1zIG9yCi0JCSAqIHdhbF9sb2dfaGludHMgZW5h YmxlZC4pCi0JCSAqLwotCX0KLQotCWlmIChCdWZmZXJJc1ZhbGlkKGJ1ZmZlcikpCi0JewotCQlT aXplCQlzcGFjZSA9IFBhZ2VHZXRGcmVlU3BhY2UoQnVmZmVyR2V0UGFnZShidWZmZXIpKTsKLQot CQlVbmxvY2tSZWxlYXNlQnVmZmVyKGJ1ZmZlcik7Ci0KLQkJLyoKLQkJICogU2luY2UgRlNNIGlz IG5vdCBXQUwtbG9nZ2VkIGFuZCBvbmx5IHVwZGF0ZWQgaGV1cmlzdGljYWxseSwgaXQKLQkJICog ZWFzaWx5IGJlY29tZXMgc3RhbGUgaW4gc3RhbmRieXMuICBJZiB0aGUgc3RhbmRieSBpcyBsYXRl ciBwcm9tb3RlZAotCQkgKiBhbmQgcnVucyBWQUNVVU0sIGl0IHdpbGwgc2tpcCB1cGRhdGluZyBp bmRpdmlkdWFsIGZyZWUgc3BhY2UKLQkJICogZmlndXJlcyBmb3IgcGFnZXMgdGhhdCBiZWNhbWUg YWxsLXZpc2libGUgKG9yIGFsbC1mcm96ZW4sIGRlcGVuZGluZwotCQkgKiBvbiB0aGUgdmFjdXVt IG1vZGUsKSB3aGljaCBpcyB0cm91Ymxlc29tZSB3aGVuIEZyZWVTcGFjZU1hcFZhY3V1bQotCQkg KiBwcm9wYWdhdGVzIHRvbyBvcHRpbWlzdGljIGZyZWUgc3BhY2UgdmFsdWVzIHRvIHVwcGVyIEZT TSBsYXllcnM7Ci0JCSAqIGxhdGVyIGluc2VydGVycyB0cnkgdG8gdXNlIHN1Y2ggcGFnZXMgb25s eSB0byBmaW5kIG91dCB0aGF0IHRoZXkKLQkJICogYXJlIHVudXNhYmxlLiAgVGhpcyBjYW4gY2F1 c2UgbG9uZyBzdGFsbHMgd2hlbiB0aGVyZSBhcmUgbWFueSBzdWNoCi0JCSAqIHBhZ2VzLgotCQkg KgotCQkgKiBGb3Jlc3RhbGwgdGhvc2UgcHJvYmxlbXMgYnkgdXBkYXRpbmcgRlNNJ3MgaWRlYSBh Ym91dCBhIHBhZ2UgdGhhdAotCQkgKiBpcyBiZWNvbWluZyBhbGwtdmlzaWJsZSBvciBhbGwtZnJv emVuLgotCQkgKgotCQkgKiBEbyB0aGlzIHJlZ2FyZGxlc3Mgb2YgYSBmdWxsLXBhZ2UgaW1hZ2Ug YmVpbmcgYXBwbGllZCwgc2luY2UgdGhlCi0JCSAqIEZTTSBkYXRhIGlzIG5vdCBpbiB0aGUgcGFn ZSBhbnl3YXkuCi0JCSAqLwotCQlpZiAoeGxyZWMtPmZsYWdzICYgVklTSUJJTElUWU1BUF9WQUxJ RF9CSVRTKQotCQkJWExvZ1JlY29yZFBhZ2VXaXRoRnJlZVNwYWNlKHJsb2NhdG9yLCBibGtubywg c3BhY2UpOwotCX0KLQotCS8qCi0JICogRXZlbiBpZiB3ZSBza2lwcGVkIHRoZSBoZWFwIHBhZ2Ug dXBkYXRlIGR1ZSB0byB0aGUgTFNOIGludGVybG9jaywgaXQncwotCSAqIHN0aWxsIHNhZmUgdG8g dXBkYXRlIHRoZSB2aXNpYmlsaXR5IG1hcC4gIEFueSBXQUwgcmVjb3JkIHRoYXQgY2xlYXJzCi0J ICogdGhlIHZpc2liaWxpdHkgbWFwIGJpdCBkb2VzIHNvIGJlZm9yZSBjaGVja2luZyB0aGUgcGFn ZSBMU04sIHNvIGFueQotCSAqIGJpdHMgdGhhdCBuZWVkIHRvIGJlIGNsZWFyZWQgd2lsbCBzdGls bCBiZSBjbGVhcmVkLgorCSAqIEV2ZW4gaWYgdGhlIGhlYXAgcmVsYXRpb24gd2FzIGRyb3BwZWQg b3IgdHJ1bmNhdGVkIGFuZCB0aGUgcHJldmlvdXNseQorCSAqIGVtaXR0ZWQgcmVjb3JkIHNraXBw ZWQgdGhlIGhlYXAgcGFnZSB1cGRhdGUgZHVlIHRvIHRoaXMgTFNOIGludGVybG9jaywKKwkgKiBp dCdzIHN0aWxsIHNhZmUgdG8gdXBkYXRlIHRoZSB2aXNpYmlsaXR5IG1hcC4gIEFueSBXQUwgcmVj b3JkIHRoYXQKKwkgKiBjbGVhcnMgdGhlIHZpc2liaWxpdHkgbWFwIGJpdCBkb2VzIHNvIGJlZm9y ZSBjaGVja2luZyB0aGUgcGFnZSBMU04sIHNvCisJICogYW55IGJpdHMgdGhhdCBuZWVkIHRvIGJl IGNsZWFyZWQgd2lsbCBzdGlsbCBiZSBjbGVhcmVkLgogCSAqLwogCWlmIChYTG9nUmVhZEJ1ZmZl ckZvclJlZG9FeHRlbmRlZChyZWNvcmQsIDAsIFJCTV9aRVJPX09OX0VSUk9SLCBmYWxzZSwKIAkJ CQkJCQkJCSAgJnZtYnVmZmVyKSA9PSBCTEtfTkVFRFNfUkVETykKQEAgLTM0MSw3ICsyNzksNyBA QCBoZWFwX3hsb2dfdmlzaWJsZShYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAogCQlyZWxuID0g Q3JlYXRlRmFrZVJlbGNhY2hlRW50cnkocmxvY2F0b3IpOwogCi0JCXZpc2liaWxpdHltYXBfc2V0 KHJlbG4sIGJsa25vLCBJbnZhbGlkQnVmZmVyLCBsc24sIHZtYnVmZmVyLAorCQl2aXNpYmlsaXR5 bWFwX3NldChyZWxuLCBibGtubywgbHNuLCB2bWJ1ZmZlciwKIAkJCQkJCSAgeGxyZWMtPnNuYXBz aG90Q29uZmxpY3RIb3Jpem9uLCB2bWJpdHMpOwogCiAJCVJlbGVhc2VCdWZmZXIodm1idWZmZXIp OwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jIGIvc3Jj L2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCmluZGV4IGMwMTZmOGY3YzI1Li43MzVm MWU3NTAxZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5j CisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwpAQCAtMTkxMSw3ICsx OTExLDcgQEAgbGF6eV9zY2FuX25ld19vcl9lbXB0eShMVlJlbFN0YXRlICp2YWNyZWwsIEJ1ZmZl ciBidWYsIEJsb2NrTnVtYmVyIGJsa25vLAogCQkJCQkJCQkJCQkgIE5VTEwsIDApOwogCQkJfQog Ci0JCQl2aXNpYmlsaXR5bWFwX3NldCh2YWNyZWwtPnJlbCwgYmxrbm8sIGJ1ZiwKKwkJCXZpc2li aWxpdHltYXBfc2V0KHZhY3JlbC0+cmVsLCBibGtubywKIAkJCQkJCQkgIEludmFsaWRYTG9nUmVj UHRyLAogCQkJCQkJCSAgdm1idWZmZXIsIEludmFsaWRUcmFuc2FjdGlvbklkLAogCQkJCQkJCSAg VklTSUJJTElUWU1BUF9BTExfVklTSUJMRSB8CkBAIC0yMTAwLDcgKzIxMDAsNyBAQCBsYXp5X3Nj YW5fcHJ1bmUoTFZSZWxTdGF0ZSAqdmFjcmVsLAogCQkJZmxhZ3MgfD0gVklTSUJJTElUWU1BUF9B TExfRlJPWkVOOwogCQl9CiAKLQkJb2xkX3ZtYml0cyA9IHZpc2liaWxpdHltYXBfc2V0KHZhY3Jl bC0+cmVsLCBibGtubywgYnVmLAorCQlvbGRfdm1iaXRzID0gdmlzaWJpbGl0eW1hcF9zZXQodmFj cmVsLT5yZWwsIGJsa25vLAogCQkJCQkJCQkJICAgSW52YWxpZFhMb2dSZWNQdHIsCiAJCQkJCQkJ CQkgICB2bWJ1ZmZlciwgcHJlc3VsdC52bV9jb25mbGljdF9ob3Jpem9uLAogCQkJCQkJCQkJICAg ZmxhZ3MpOwpAQCAtMjg5OCw3ICsyODk4LDcgQEAgbGF6eV92YWN1dW1faGVhcF9wYWdlKExWUmVs U3RhdGUgKnZhY3JlbCwgQmxvY2tOdW1iZXIgYmxrbm8sIEJ1ZmZlciBidWZmZXIsCiAJICovCiAJ aWYgKCh2bWZsYWdzICYgVklTSUJJTElUWU1BUF9BTExfVklTSUJMRSkgIT0gMCkKIAl7Ci0JCXZp c2liaWxpdHltYXBfc2V0KHZhY3JlbC0+cmVsLCBibGtubywgYnVmZmVyLAorCQl2aXNpYmlsaXR5 bWFwX3NldCh2YWNyZWwtPnJlbCwgYmxrbm8sCiAJCQkJCQkgIEludmFsaWRYTG9nUmVjUHRyLAog CQkJCQkJICB2bWJ1ZmZlciwgdmlzaWJpbGl0eV9jdXRvZmZfeGlkLAogCQkJCQkJICB2bWZsYWdz KTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Zpc2liaWxpdHltYXAuYyBi L3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Zpc2liaWxpdHltYXAuYwppbmRleCBhYTQ4YTQzNjEw OC4uNzVmY2IzZjA2N2EgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Zpc2li aWxpdHltYXAuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92aXNpYmlsaXR5bWFwLmMK QEAgLTIzMyw5ICsyMzMsNyBAQCB2aXNpYmlsaXR5bWFwX3Bpbl9vayhCbG9ja051bWJlciBoZWFw QmxrLCBCdWZmZXIgdm1idWYpCiAgKiB3aGVuIGEgcGFnZSB0aGF0IGlzIGFscmVhZHkgYWxsLXZp c2libGUgaXMgYmVpbmcgbWFya2VkIGFsbC1mcm96ZW4uCiAgKgogICogQ2FsbGVyIGlzIGV4cGVj dGVkIHRvIHNldCB0aGUgaGVhcCBwYWdlJ3MgUERfQUxMX1ZJU0lCTEUgYml0IGJlZm9yZSBjYWxs aW5nCi0gKiB0aGlzIGZ1bmN0aW9uLiBFeGNlcHQgaW4gcmVjb3ZlcnksIGNhbGxlciBzaG91bGQg YWxzbyBwYXNzIHRoZSBoZWFwCi0gKiBidWZmZXIuIFdoZW4gY2hlY2tzdW1zIGFyZSBlbmFibGVk IGFuZCB3ZSdyZSBub3QgaW4gcmVjb3ZlcnksIHdlIG11c3QgYWRkCi0gKiB0aGUgaGVhcCBidWZm ZXIgdG8gdGhlIFdBTCBjaGFpbiB0byBwcm90ZWN0IGl0IGZyb20gYmVpbmcgdG9ybi4KKyAqIHRo aXMgZnVuY3Rpb24uCiAgKgogICogWW91IG11c3QgcGFzcyBhIGJ1ZmZlciBjb250YWluaW5nIHRo ZSBjb3JyZWN0IG1hcCBwYWdlIHRvIHRoaXMgZnVuY3Rpb24uCiAgKiBDYWxsIHZpc2liaWxpdHlt YXBfcGluIGZpcnN0IHRvIHBpbiB0aGUgcmlnaHQgb25lLiBUaGlzIGZ1bmN0aW9uIGRvZXNuJ3Qg ZG8KQEAgLTI0NCw3ICsyNDIsNyBAQCB2aXNpYmlsaXR5bWFwX3Bpbl9vayhCbG9ja051bWJlciBo ZWFwQmxrLCBCdWZmZXIgdm1idWYpCiAgKiBSZXR1cm5zIHRoZSBzdGF0ZSBvZiB0aGUgcGFnZSdz IFZNIGJpdHMgYmVmb3JlIHNldHRpbmcgZmxhZ3MuCiAgKi8KIHVpbnQ4Ci12aXNpYmlsaXR5bWFw X3NldChSZWxhdGlvbiByZWwsIEJsb2NrTnVtYmVyIGhlYXBCbGssIEJ1ZmZlciBoZWFwQnVmLAor dmlzaWJpbGl0eW1hcF9zZXQoUmVsYXRpb24gcmVsLCBCbG9ja051bWJlciBoZWFwQmxrLAogCQkJ CSAgWExvZ1JlY1B0ciByZWNwdHIsIEJ1ZmZlciB2bUJ1ZiwgVHJhbnNhY3Rpb25JZCBjdXRvZmZf eGlkLAogCQkJCSAgdWludDggZmxhZ3MpCiB7CkBAIC0yNjEsMTggKzI1OSwxMSBAQCB2aXNpYmls aXR5bWFwX3NldChSZWxhdGlvbiByZWwsIEJsb2NrTnVtYmVyIGhlYXBCbGssIEJ1ZmZlciBoZWFw QnVmLAogI2VuZGlmCiAKIAlBc3NlcnQoSW5SZWNvdmVyeSB8fCBYTG9nUmVjUHRySXNJbnZhbGlk KHJlY3B0cikpOwotCUFzc2VydChJblJlY292ZXJ5IHx8IFBhZ2VJc0FsbFZpc2libGUoQnVmZmVy R2V0UGFnZShoZWFwQnVmKSkpOwogCUFzc2VydCgoZmxhZ3MgJiBWSVNJQklMSVRZTUFQX1ZBTElE X0JJVFMpID09IGZsYWdzKTsKIAogCS8qIE11c3QgbmV2ZXIgc2V0IGFsbF9mcm96ZW4gYml0IHdp dGhvdXQgYWxzbyBzZXR0aW5nIGFsbF92aXNpYmxlIGJpdCAqLwogCUFzc2VydChmbGFncyAhPSBW SVNJQklMSVRZTUFQX0FMTF9GUk9aRU4pOwogCi0JLyogQ2hlY2sgdGhhdCB3ZSBoYXZlIHRoZSBy aWdodCBoZWFwIHBhZ2UgcGlubmVkLCBpZiBwcmVzZW50ICovCi0JaWYgKEJ1ZmZlcklzVmFsaWQo aGVhcEJ1ZikgJiYgQnVmZmVyR2V0QmxvY2tOdW1iZXIoaGVhcEJ1ZikgIT0gaGVhcEJsaykKLQkJ ZWxvZyhFUlJPUiwgIndyb25nIGhlYXAgYnVmZmVyIHBhc3NlZCB0byB2aXNpYmlsaXR5bWFwX3Nl dCIpOwotCi0JQXNzZXJ0KCFCdWZmZXJJc1ZhbGlkKGhlYXBCdWYpIHx8IEJ1ZmZlcklzRXhjbHVz aXZlTG9ja2VkKGhlYXBCdWYpKTsKLQogCS8qIENoZWNrIHRoYXQgd2UgaGF2ZSB0aGUgcmlnaHQg Vk0gcGFnZSBwaW5uZWQgKi8KIAlpZiAoIUJ1ZmZlcklzVmFsaWQodm1CdWYpIHx8IEJ1ZmZlckdl dEJsb2NrTnVtYmVyKHZtQnVmKSAhPSBtYXBCbG9jaykKIAkJZWxvZyhFUlJPUiwgIndyb25nIFZN IGJ1ZmZlciBwYXNzZWQgdG8gdmlzaWJpbGl0eW1hcF9zZXQiKTsKQEAgLTI5NCwyMyArMjg1LDcg QEAgdmlzaWJpbGl0eW1hcF9zZXQoUmVsYXRpb24gcmVsLCBCbG9ja051bWJlciBoZWFwQmxrLCBC dWZmZXIgaGVhcEJ1ZiwKIAkJCWlmIChYTG9nUmVjUHRySXNJbnZhbGlkKHJlY3B0cikpCiAJCQl7 CiAJCQkJQXNzZXJ0KCFJblJlY292ZXJ5KTsKLQkJCQlyZWNwdHIgPSBsb2dfaGVhcF92aXNpYmxl KHJlbCwgaGVhcEJ1Ziwgdm1CdWYsIGN1dG9mZl94aWQsIGZsYWdzKTsKLQotCQkJCS8qCi0JCQkJ ICogSWYgZGF0YSBjaGVja3N1bXMgYXJlIGVuYWJsZWQgKG9yIHdhbF9sb2dfaGludHM9b24pLCB3 ZQotCQkJCSAqIG5lZWQgdG8gcHJvdGVjdCB0aGUgaGVhcCBwYWdlIGZyb20gYmVpbmcgdG9ybi4K LQkJCQkgKgotCQkJCSAqIElmIG5vdCwgdGhlbiB3ZSBtdXN0ICpub3QqIHVwZGF0ZSB0aGUgaGVh cCBwYWdlJ3MgTFNOLiBJbgotCQkJCSAqIHRoaXMgY2FzZSwgdGhlIEZQSSBmb3IgdGhlIGhlYXAg cGFnZSB3YXMgb21pdHRlZCBmcm9tIHRoZQotCQkJCSAqIFdBTCByZWNvcmQgaW5zZXJ0ZWQgYWJv dmUsIHNvIGl0IHdvdWxkIGJlIGluY29ycmVjdCB0bwotCQkJCSAqIHVwZGF0ZSB0aGUgaGVhcCBw YWdlJ3MgTFNOLgotCQkJCSAqLwotCQkJCWlmIChYTG9nSGludEJpdElzTmVlZGVkKCkpCi0JCQkJ ewotCQkJCQlQYWdlCQloZWFwUGFnZSA9IEJ1ZmZlckdldFBhZ2UoaGVhcEJ1Zik7Ci0KLQkJCQkJ UGFnZVNldExTTihoZWFwUGFnZSwgcmVjcHRyKTsKLQkJCQl9CisJCQkJcmVjcHRyID0gbG9nX2hl YXBfdmlzaWJsZShyZWwsIHZtQnVmLCBjdXRvZmZfeGlkLCBmbGFncyk7CiAJCQl9CiAJCQlQYWdl U2V0TFNOKHBhZ2UsIHJlY3B0cik7CiAJCX0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vz cy9oZWFwYW1feGxvZy5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbV94bG9nLmgKaW5kZXgg N2QzZmI3NWRkYTcuLjgyYjhmN2YyYmJjIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3Mv aGVhcGFtX3hsb2cuaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtX3hsb2cuaApAQCAt NDQwLDcgKzQ0MCw2IEBAIHR5cGVkZWYgc3RydWN0IHhsX2hlYXBfaW5wbGFjZQogICogVGhpcyBp cyB3aGF0IHdlIG5lZWQgdG8ga25vdyBhYm91dCBzZXR0aW5nIGEgdmlzaWJpbGl0eSBtYXAgYml0 CiAgKgogICogQmFja3VwIGJsayAwOiB2aXNpYmlsaXR5IG1hcCBidWZmZXIKLSAqIEJhY2t1cCBi bGsgMTogaGVhcCBidWZmZXIKICAqLwogdHlwZWRlZiBzdHJ1Y3QgeGxfaGVhcF92aXNpYmxlCiB7 CkBAIC00OTMsNyArNDkyLDcgQEAgZXh0ZXJuIHZvaWQgaGVhcDJfZGVzYyhTdHJpbmdJbmZvIGJ1 ZiwgWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpOwogZXh0ZXJuIGNvbnN0IGNoYXIgKmhlYXAyX2lk ZW50aWZ5KHVpbnQ4IGluZm8pOwogZXh0ZXJuIHZvaWQgaGVhcF94bG9nX2xvZ2ljYWxfcmV3cml0 ZShYTG9nUmVhZGVyU3RhdGUgKnIpOwogCi1leHRlcm4gWExvZ1JlY1B0ciBsb2dfaGVhcF92aXNp YmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGhlYXBfYnVmZmVyLAorZXh0ZXJuIFhMb2dSZWNQdHIg bG9nX2hlYXBfdmlzaWJsZShSZWxhdGlvbiByZWwsCiAJCQkJCQkJCSAgIEJ1ZmZlciB2bV9idWZm ZXIsCiAJCQkJCQkJCSAgIFRyYW5zYWN0aW9uSWQgc25hcHNob3RDb25mbGljdEhvcml6b24sCiAJ CQkJCQkJCSAgIHVpbnQ4IHZtZmxhZ3MpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNz L3Zpc2liaWxpdHltYXAuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy92aXNpYmlsaXR5bWFwLmgKaW5k ZXggZmM3MDU2YTkxZWEuLjMwMmFkZjQ4NTZhIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nl c3MvdmlzaWJpbGl0eW1hcC5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy92aXNpYmlsaXR5bWFw LmgKQEAgLTMyLDcgKzMyLDcgQEAgZXh0ZXJuIHZvaWQgdmlzaWJpbGl0eW1hcF9waW4oUmVsYXRp b24gcmVsLCBCbG9ja051bWJlciBoZWFwQmxrLAogCQkJCQkJCSAgQnVmZmVyICp2bWJ1Zik7CiBl eHRlcm4gYm9vbCB2aXNpYmlsaXR5bWFwX3Bpbl9vayhCbG9ja051bWJlciBoZWFwQmxrLCBCdWZm ZXIgdm1idWYpOwogZXh0ZXJuIHVpbnQ4IHZpc2liaWxpdHltYXBfc2V0KFJlbGF0aW9uIHJlbCwK LQkJCQkJCQkgICBCbG9ja051bWJlciBoZWFwQmxrLCBCdWZmZXIgaGVhcEJ1ZiwKKwkJCQkJCQkg ICBCbG9ja051bWJlciBoZWFwQmxrLAogCQkJCQkJCSAgIFhMb2dSZWNQdHIgcmVjcHRyLAogCQkJ CQkJCSAgIEJ1ZmZlciB2bUJ1ZiwKIAkJCQkJCQkgICBUcmFuc2FjdGlvbklkIGN1dG9mZl94aWQs Ci0tIAoyLjQzLjAKCg== --000000000000cf342e063f082d09 Content-Type: text/x-patch; charset="US-ASCII"; name="v14-0014-Eliminate-XLOG_HEAP2_VISIBLE-from-vacuum-phase-I.patch" Content-Disposition: attachment; filename="v14-0014-Eliminate-XLOG_HEAP2_VISIBLE-from-vacuum-phase-I.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfonltnd13 RnJvbSAxZmMxYTMzOGU1ZDY2MjFmODlkZjQ2ZmUyOWQwOGM3OTkyNjdiMzlkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDE3IFNlcCAyMDI1IDE1OjUyOjE4IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTQgMTQvMjRdIEVsaW1pbmF0ZSBYTE9HX0hFQVAyX1ZJU0lCTEUgZnJvbSB2YWN1dW0g cGhhc2UgSUlJCgpJbnN0ZWFkIG9mIGVtaXR0aW5nIGEgc2VwYXJhdGUgWExPR19IRUFQMl9WSVNJ QkxFIHJlY29yZCBmb3IgZWFjaCBwYWdlCnRoYXQgaXMgcmVuZGVyZWQgYWxsLXZpc2libGUgYnkg dmFjdXVtJ3MgdGhpcmQgcGhhc2UsIGluY2x1ZGUgdGhlCnVwZGF0ZXMgdG8gdGhlIFZNIGluIHRo ZSBhbHJlYWR5IGVtaXR0ZWQgWExPR19IRUFQMl9QUlVORV9WQUNVVU1fQ0xFQU5VUApyZWNvcmQu CgpUaGUgdmlzaWJpbGl0eW1hcCBiaXRzIGFyZSBzdG9yZWQgaW4gdGhlIGZsYWdzIG1lbWJlciBv ZiB0aGUKeGxfaGVhcF9wcnVuZSBzdHJ1Y3QuCgpUaGlzIGNhbiBkZWNyZWFzZSB0aGUgbnVtYmVy IG9mIG9mIFdBTCByZWNvcmRzIHZhY3V1bSBwaGFzZSBJSUkgZW1pdHMgYnkKYXMgbXVjaCBhcyBo YWxmLgoKQXV0aG9yOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21haWwuY29t PgpSZXZpZXdlZC1ieTogS2lyaWxsIFJlc2hrZSA8cmVzaGtla2lyaWxsQGdtYWlsLmNvbT4KUmV2 aWV3ZWQtYnk6IEFuZHJlcyBGcmV1bmQgPGFuZHJlc0BhbmFyYXplbC5kZT4KRGlzY3Vzc2lvbjog aHR0cHM6Ly9wb3N0Z3IuZXMvbS9mbGF0L0NBQUtSdV9aTXc2TnBkX3FtMktNJTJCRndRM2NNT014 MURoM1ZNaHA4LVY3U09MeGRLOS1nJTQwbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC9h Y2Nlc3MvaGVhcC9oZWFwYW1feGxvZy5jICB8IDE0NyArKysrKysrKysrKysrKysrKystLS0tLS0t CiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYyAgICB8ICAzNyArKysrKystCiBz cmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgICB8ICAzOCArKystLS0tCiBzcmMv YmFja2VuZC9hY2Nlc3Mvcm1ncmRlc2MvaGVhcGRlc2MuYyB8ICAxMSArLQogc3JjL2luY2x1ZGUv YWNjZXNzL2hlYXBhbS5oICAgICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvYWNjZXNzL2hl YXBhbV94bG9nLmggICAgICAgfCAgMjUgKysrKy0KIDYgZmlsZXMgY2hhbmdlZCwgMTkwIGluc2Vy dGlvbnMoKyksIDY5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vz cy9oZWFwL2hlYXBhbV94bG9nLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1feGxv Zy5jCmluZGV4IDY4YjQxZjM5ZTY5Li5jMWYzMzJmN2E5YSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvYWNjZXNzL2hlYXAvaGVhcGFtX3hsb2cuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVh cC9oZWFwYW1feGxvZy5jCkBAIC0zNSw3ICszNSw5IEBAIGhlYXBfeGxvZ19wcnVuZV9mcmVlemUo WExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAJQnVmZmVyCQlidWZmZXI7CiAJUmVsRmlsZUxvY2F0 b3IgcmxvY2F0b3I7CiAJQmxvY2tOdW1iZXIgYmxrbm87Ci0JWExvZ1JlZG9BY3Rpb24gYWN0aW9u OworCUJ1ZmZlcgkJdm1idWZmZXIgPSBJbnZhbGlkQnVmZmVyOworCXVpbnQ4CQl2bWZsYWdzID0g MDsKKwlTaXplCQlmcmVlc3BhY2UgPSAwOwogCiAJWExvZ1JlY0dldEJsb2NrVGFnKHJlY29yZCwg MCwgJnJsb2NhdG9yLCBOVUxMLCAmYmxrbm8pOwogCW1lbWNweSgmeGxyZWMsIG1haW5kYXRhcHRy LCBTaXplT2ZIZWFwUHJ1bmUpOwpAQCAtNTAsMTEgKzUyLDIyIEBAIGhlYXBfeGxvZ19wcnVuZV9m cmVlemUoWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAJQXNzZXJ0KCh4bHJlYy5mbGFncyAmIFhM SFBfQ0xFQU5VUF9MT0NLKSAhPSAwIHx8CiAJCSAgICh4bHJlYy5mbGFncyAmIChYTEhQX0hBU19S RURJUkVDVElPTlMgfCBYTEhQX0hBU19ERUFEX0lURU1TKSkgPT0gMCk7CiAKKwlpZiAoeGxyZWMu ZmxhZ3MgJiBYTEhQX1ZNX0FMTF9WSVNJQkxFKQorCXsKKwkJdm1mbGFncyA9IFZJU0lCSUxJVFlN QVBfQUxMX1ZJU0lCTEU7CisJCWlmICh4bHJlYy5mbGFncyAmIFhMSFBfVk1fQUxMX0ZST1pFTikK KwkJCXZtZmxhZ3MgfD0gVklTSUJJTElUWU1BUF9BTExfRlJPWkVOOworCX0KKwogCS8qCi0JICog V2UgYXJlIGFib3V0IHRvIHJlbW92ZSBhbmQvb3IgZnJlZXplIHR1cGxlcy4gIEluIEhvdCBTdGFu ZGJ5IG1vZGUsCi0JICogZW5zdXJlIHRoYXQgdGhlcmUgYXJlIG5vIHF1ZXJpZXMgcnVubmluZyBm b3Igd2hpY2ggdGhlIHJlbW92ZWQgdHVwbGVzCi0JICogYXJlIHN0aWxsIHZpc2libGUgb3Igd2hp Y2ggc3RpbGwgY29uc2lkZXIgdGhlIGZyb3plbiB4aWRzIGFzIHJ1bm5pbmcuCi0JICogVGhlIGNv bmZsaWN0IGhvcml6b24gWElEIGNvbWVzIGFmdGVyIHhsX2hlYXBfcHJ1bmUuCisJICogQWZ0ZXIg eGxfaGVhcF9wcnVuZSBpcyB0aGUgb3B0aW9uYWwgc25hcHNob3QgY29uZmxpY3QgaG9yaXpvbi4K KwkgKgorCSAqIEluIEhvdCBTdGFuZGJ5IG1vZGUsIHdlIG11c3QgZW5zdXJlIHRoYXQgdGhlcmUg YXJlIG5vIHJ1bm5pbmcgcXVlcmllcworCSAqIHdoaWNoIHdvdWxkIGNvbmZsaWN0IHdpdGggdGhl IGNoYW5nZXMgaW4gdGhpcyByZWNvcmQuIFRoYXQgbWVhbnMgd2UKKwkgKiBjYW4ndCByZXBsYXkg dGhpcyByZWNvcmQgaWYgaXQgcmVtb3ZlcyB0dXBsZXMgdGhhdCBhcmUgc3RpbGwgdmlzaWJsZSB0 bworCSAqIHRyYW5zYWN0aW9ucyBvbiB0aGUgc3RhbmRieSwgZnJlZXplIHR1cGxlcyB3aXRoIHhp ZHMgdGhhdCBhcmUgc3RpbGwKKwkgKiBjb25zaWRlcmVkIHJ1bm5pbmcgb24gdGhlIHN0YW5kYnks IG9yIHNldCBhIHBhZ2UgYXMgYWxsLXZpc2libGUgaW4gdGhlCisJICogVk0gaWYgaXQgaXNuJ3Qg YWxsLXZpc2libGUgdG8gYWxsIHRyYW5zYWN0aW9ucyBvbiB0aGUgc3RhbmRieS4KIAkgKi8KIAlp ZiAoKHhscmVjLmZsYWdzICYgWExIUF9IQVNfQ09ORkxJQ1RfSE9SSVpPTikgIT0gMCkKIAl7CkBA IC03MSwxMiArODQsMTIgQEAgaGVhcF94bG9nX3BydW5lX2ZyZWV6ZShYTG9nUmVhZGVyU3RhdGUg KnJlY29yZCkKIAl9CiAKIAkvKgotCSAqIElmIHdlIGhhdmUgYSBmdWxsLXBhZ2UgaW1hZ2UsIHJl c3RvcmUgaXQgYW5kIHdlJ3JlIGRvbmUuCisJICogSWYgd2UgaGF2ZSBhIGZ1bGwtcGFnZSBpbWFn ZSBvZiB0aGUgaGVhcCBibG9jaywgcmVzdG9yZSBpdCBhbmQgd2UncmUKKwkgKiBkb25lIHdpdGgg dGhlIGhlYXAgYmxvY2suCiAJICovCi0JYWN0aW9uID0gWExvZ1JlYWRCdWZmZXJGb3JSZWRvRXh0 ZW5kZWQocmVjb3JkLCAwLCBSQk1fTk9STUFMLAotCQkJCQkJCQkJCSAgICh4bHJlYy5mbGFncyAm IFhMSFBfQ0xFQU5VUF9MT0NLKSAhPSAwLAotCQkJCQkJCQkJCSAgICZidWZmZXIpOwotCWlmIChh Y3Rpb24gPT0gQkxLX05FRURTX1JFRE8pCisJaWYgKFhMb2dSZWFkQnVmZmVyRm9yUmVkb0V4dGVu ZGVkKHJlY29yZCwgMCwgUkJNX05PUk1BTCwKKwkJCQkJCQkJCSAgKHhscmVjLmZsYWdzICYgWExI UF9DTEVBTlVQX0xPQ0spICE9IDAsCisJCQkJCQkJCQkgICZidWZmZXIpID09IEJMS19ORUVEU19S RURPKQogCXsKIAkJUGFnZQkJcGFnZSA9IEJ1ZmZlckdldFBhZ2UoYnVmZmVyKTsKIAkJT2Zmc2V0 TnVtYmVyICpyZWRpcmVjdGVkOwpAQCAtMTAwLDYgKzExMywxMSBAQCBoZWFwX3hsb2dfcHJ1bmVf ZnJlZXplKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCiAJCWRvX3BydW5lID0gbnJlZGlyZWN0 ZWQgPiAwIHx8IG5kZWFkID4gMCB8fCBudW51c2VkID4gMDsKIAorCQkvKiBFbnN1cmUgdGhlIHJl Y29yZCBkb2VzIHNvbWV0aGluZyAqLworCQlBc3NlcnQoZG9fcHJ1bmUgfHwgbnBsYW5zID4gMCB8 fAorCQkJICAgdm1mbGFncyAmIFZJU0lCSUxJVFlNQVBfVkFMSURfQklUUyB8fAorCQkJICAgeGxy ZWMuZmxhZ3MgJiBYTEhQX1NFVF9QRF9BTExfVklTKTsKKwogCQkvKgogCQkgKiBVcGRhdGUgYWxs IGxpbmUgcG9pbnRlcnMgcGVyIHRoZSByZWNvcmQsIGFuZCByZXBhaXIgZnJhZ21lbnRhdGlvbgog CQkgKiBpZiBuZWVkZWQuCkBAIC0xNDcsMTUgKzE2NSwyMyBAQCBoZWFwX3hsb2dfcHJ1bmVfZnJl ZXplKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCQkgKiBwYWdlLWxldmVsIFBEX0FMTF9WSVNJ QkxFIGJpdCBpcyBjbGVhci4gIElmIHRoYXQgd2VyZSB0byBvY2N1ciwKIAkJICogdGhlbiBhIHN1 YnNlcXVlbnQgcGFnZSBtb2RpZmljYXRpb24gd291bGQgZmFpbCB0byBjbGVhciB0aGUKIAkJICog dmlzaWJpbGl0eSBtYXAgYml0LgorCQkgKgorCQkgKiBOb3RlOiB3ZSBkb24ndCB3b3JyeSBhYm91 dCB1cGRhdGluZyB0aGUgcGFnZSdzIHBydW5hYmlsaXR5IGhpbnRzLgorCQkgKiBBdCB3b3JzdCB0 aGlzIHdpbGwgY2F1c2UgYW4gZXh0cmEgcHJ1bmUgY3ljbGUgdG8gb2NjdXIgc29vbi4KIAkJICov CiAJCWlmICh4bHJlYy5mbGFncyAmIFhMSFBfU0VUX1BEX0FMTF9WSVMpCiAJCQlQYWdlU2V0QWxs VmlzaWJsZShwYWdlKTsKIAogCQkvKgotCQkgKiBOb3RlOiB3ZSBkb24ndCB3b3JyeSBhYm91dCB1 cGRhdGluZyB0aGUgcGFnZSdzIHBydW5hYmlsaXR5IGhpbnRzLgotCQkgKiBBdCB3b3JzdCB0aGlz IHdpbGwgY2F1c2UgYW4gZXh0cmEgcHJ1bmUgY3ljbGUgdG8gb2NjdXIgc29vbi4KKwkJICogV2Ug bXVzdCBuZXZlciBlbmQgdXAgd2l0aCB0aGUgVk0gYml0IHNldCBhbmQgdGhlIHBhZ2UtbGV2ZWwK KwkJICogUERfQUxMX1ZJU0lCTEUgYml0IGNsZWFyLiBJZiB0aGF0IHdlcmUgdG8gb2NjdXIsIGEg c3Vic2VxdWVudCBwYWdlCisJCSAqIG1vZGlmaWNhdGlvbiB3b3VsZCBmYWlsIHRvIGNsZWFyIHRo ZSBWTSBiaXQuCiAJCSAqLwotCQlNYXJrQnVmZmVyRGlydHkoYnVmZmVyKTsKKwkJQXNzZXJ0KCEo dm1mbGFncyAmIFZJU0lCSUxJVFlNQVBfVkFMSURfQklUUykgfHwgUGFnZUlzQWxsVmlzaWJsZShw YWdlKSk7CisKKwkJLyogSWYgdGhpcyByZWNvcmQgb25seSBzZXRzIHRoZSBWTSwgbm8gbmVlZCB0 byBkaXJ0eSB0aGUgaGVhcCBwYWdlICovCisJCWlmIChkb19wcnVuZSB8fCBucGxhbnMgPiAwIHx8 IHhscmVjLmZsYWdzICYgWExIUF9TRVRfUERfQUxMX1ZJUykKKwkJCU1hcmtCdWZmZXJEaXJ0eShi dWZmZXIpOwogCiAJCS8qCiAJCSAqIFdlIGFsd2F5cyBlbWl0IGEgV0FMIHJlY29yZCB3aGVuIHNl dHRpbmcgUERfQUxMX1ZJU0lCTEUsIGJ1dCB3ZSBhcmUKQEAgLTE3MSw0NyArMTk3LDk0IEBAIGhl YXBfeGxvZ19wcnVuZV9mcmVlemUoWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAJfQogCiAJLyoK LQkgKiBJZiB3ZSByZWxlYXNlZCBhbnkgc3BhY2Ugb3IgbGluZSBwb2ludGVycyBvciBzZXQgUERf QUxMX1ZJU0lCTEUgdXBkYXRlCi0JICogdGhlIGZyZWVzcGFjZSBtYXAuCisJICogSWYgd2UgcmVs ZWFzZWQgYW55IHNwYWNlIG9yIGxpbmUgcG9pbnRlcnMgb3Igc2V0IFBEX0FMTF9WSVNJQkxFIG9y IHRoZQorCSAqIFZNLCB1cGRhdGUgdGhlIGZyZWVzcGFjZSBtYXAuCiAJICoKLQkgKiBFdmVuIGlm IHdlIGFyZSBqdXN0IHNldHRpbmcgUERfQUxMX1ZJU0lCTEUgKGFuZCB0aHVzIG5vdCBmcmVlaW5n IHVwIGFueQotCSAqIHNwYWNlKSwgd2UnbGwgc3RpbGwgdXBkYXRlIHRoZSBGU00gZm9yIHRoaXMg cGFnZS4gU2luY2UgdGhlIEZTTSBpcyBub3QKLQkgKiBXQUwtbG9nZ2VkIGFuZCBvbmx5IHVwZGF0 ZWQgaGV1cmlzdGljYWxseSwgaXQgZWFzaWx5IGJlY29tZXMgc3RhbGUgaW4KLQkgKiBzdGFuZGJ5 cy4gIElmIHRoZSBzdGFuZGJ5IGlzIGxhdGVyIHByb21vdGVkIGFuZCBydW5zIFZBQ1VVTSwgaXQg d2lsbAotCSAqIHNraXAgdXBkYXRpbmcgaW5kaXZpZHVhbCBmcmVlIHNwYWNlIGZpZ3VyZXMgZm9y IHBhZ2VzIHRoYXQgYmVjYW1lCi0JICogYWxsLXZpc2libGUgKG9yIGFsbC1mcm96ZW4sIGRlcGVu ZGluZyBvbiB0aGUgdmFjdXVtIG1vZGUsKSB3aGljaCBpcwotCSAqIHRyb3VibGVzb21lIHdoZW4g RnJlZVNwYWNlTWFwVmFjdXVtIHByb3BhZ2F0ZXMgdG9vIG9wdGltaXN0aWMgZnJlZQotCSAqIHNw YWNlIHZhbHVlcyB0byB1cHBlciBGU00gbGF5ZXJzOyBsYXRlciBpbnNlcnRlcnMgdHJ5IHRvIHVz ZSBzdWNoIHBhZ2VzCi0JICogb25seSB0byBmaW5kIG91dCB0aGF0IHRoZXkgYXJlIHVudXNhYmxl LiAgVGhpcyBjYW4gY2F1c2UgbG9uZyBzdGFsbHMKLQkgKiB3aGVuIHRoZXJlIGFyZSBtYW55IHN1 Y2ggcGFnZXMuCisJICogRXZlbiBpZiB3ZSBhcmUganVzdCBzZXR0aW5nIFBEX0FMTF9WSVNJQkxF IG9yIHVwZGF0aW5nIHRoZSBWTSAoYW5kIHRodXMKKwkgKiBub3QgZnJlZWluZyB1cCBhbnkgc3Bh Y2UpLCB3ZSdsbCBzdGlsbCB1cGRhdGUgdGhlIEZTTSBmb3IgdGhpcyBwYWdlLgorCSAqIFNpbmNl IHRoZSBGU00gaXMgbm90IFdBTC1sb2dnZWQgYW5kIG9ubHkgdXBkYXRlZCBoZXVyaXN0aWNhbGx5 LCBpdAorCSAqIGVhc2lseSBiZWNvbWVzIHN0YWxlIGluIHN0YW5kYnlzLiAgSWYgdGhlIHN0YW5k YnkgaXMgbGF0ZXIgcHJvbW90ZWQgYW5kCisJICogcnVucyBWQUNVVU0sIGl0IHdpbGwgc2tpcCB1 cGRhdGluZyBpbmRpdmlkdWFsIGZyZWUgc3BhY2UgZmlndXJlcyBmb3IKKwkgKiBwYWdlcyB0aGF0 IGJlY2FtZSBhbGwtdmlzaWJsZSAob3IgYWxsLWZyb3plbiwgZGVwZW5kaW5nIG9uIHRoZSB2YWN1 dW0KKwkgKiBtb2RlLCkgd2hpY2ggaXMgdHJvdWJsZXNvbWUgd2hlbiBGcmVlU3BhY2VNYXBWYWN1 dW0gcHJvcGFnYXRlcyB0b28KKwkgKiBvcHRpbWlzdGljIGZyZWUgc3BhY2UgdmFsdWVzIHRvIHVw cGVyIEZTTSBsYXllcnM7IGxhdGVyIGluc2VydGVycyB0cnkKKwkgKiB0byB1c2Ugc3VjaCBwYWdl cyBvbmx5IHRvIGZpbmQgb3V0IHRoYXQgdGhleSBhcmUgdW51c2FibGUuICBUaGlzIGNhbgorCSAq IGNhdXNlIGxvbmcgc3RhbGxzIHdoZW4gdGhlcmUgYXJlIG1hbnkgc3VjaCBwYWdlcy4KIAkgKgog CSAqIEZvcmVzdGFsbCB0aG9zZSBwcm9ibGVtcyBieSB1cGRhdGluZyBGU00ncyBpZGVhIGFib3V0 IGEgcGFnZSB0aGF0IGlzCiAJICogYmVjb21pbmcgYWxsLXZpc2libGUgb3IgYWxsLWZyb3plbi4K IAkgKgogCSAqIERvIHRoaXMgcmVnYXJkbGVzcyBvZiBhIGZ1bGwtcGFnZSBpbWFnZSBiZWluZyBh cHBsaWVkLCBzaW5jZSB0aGUgRlNNCiAJICogZGF0YSBpcyBub3QgaW4gdGhlIHBhZ2UgYW55d2F5 LgorCSAqCisJICogV2Ugd2FudCB0byBhdm9pZCBob2xkaW5nIGFuIGV4Y2x1c2l2ZSBsb2NrIG9u IHRoZSBoZWFwIGJ1ZmZlciB3aGlsZQorCSAqIGRvaW5nIElPIChlaXRoZXIgb2YgdGhlIEZTTSBv ciB0aGUgVk0pLCBzbyB3ZSdsbCByZWxlYXNlIHRoZSBsb2NrIG9uCisJICogdGhlIGhlYXAgYnVm ZmVyIGJlZm9yZSBkb2luZyBlaXRoZXIuCiAJICovCiAJaWYgKEJ1ZmZlcklzVmFsaWQoYnVmZmVy KSkKIAl7CiAJCWlmICh4bHJlYy5mbGFncyAmIChYTEhQX0hBU19SRURJUkVDVElPTlMgfAogCQkJ CQkJICAgWExIUF9IQVNfREVBRF9JVEVNUyB8CiAJCQkJCQkgICBYTEhQX0hBU19OT1dfVU5VU0VE X0lURU1TIHwKLQkJCQkJCSAgIFhMSFBfU0VUX1BEX0FMTF9WSVMpKQotCQl7Ci0JCQlTaXplCQlm cmVlc3BhY2UgPSBQYWdlR2V0SGVhcEZyZWVTcGFjZShCdWZmZXJHZXRQYWdlKGJ1ZmZlcikpOwor CQkJCQkJICAgWExIUF9TRVRfUERfQUxMX1ZJUyB8CisJCQkJCQkgICAodm1mbGFncyAmIFZJU0lC SUxJVFlNQVBfVkFMSURfQklUUykpKQorCQkJZnJlZXNwYWNlID0gUGFnZUdldEhlYXBGcmVlU3Bh Y2UoQnVmZmVyR2V0UGFnZShidWZmZXIpKTsKIAotCQkJLyoKLQkJCSAqIFdlIHdhbnQgdG8gYXZv aWQgaG9sZGluZyBhbiBleGNsdXNpdmUgbG9jayBvbiB0aGUgaGVhcCBidWZmZXIKLQkJCSAqIHdo aWxlIGRvaW5nIElPLCBzbyB3ZSdsbCByZWxlYXNlIHRoZSBsb2NrIG9uIHRoZSBoZWFwIGJ1ZmZl cgotCQkJICogZmlyc3QuCi0JCQkgKi8KLQkJCVVubG9ja1JlbGVhc2VCdWZmZXIoYnVmZmVyKTsK KwkJVW5sb2NrUmVsZWFzZUJ1ZmZlcihidWZmZXIpOworCX0KIAotCQkJWExvZ1JlY29yZFBhZ2VX aXRoRnJlZVNwYWNlKHJsb2NhdG9yLCBibGtubywgZnJlZXNwYWNlKTsKKwkvKgorCSAqIE5vdyBy ZWFkIGFuZCB1cGRhdGUgdGhlIFZNIGJsb2NrLgorCSAqCisJICogTm90ZSB0aGF0IHRoZSBoZWFw IHJlbGF0aW9uIG1heSBoYXZlIGJlZW4gZHJvcHBlZCBvciB0cnVuY2F0ZWQsIGxlYWRpbmcKKwkg KiB1cyB0byBza2lwIHVwZGF0aW5nIHRoZSBoZWFwIGJsb2NrIGR1ZSB0byB0aGUgTFNOIGludGVy bG9jay4gSG93ZXZlciwKKwkgKiBldmVuIGluIHRoYXQgY2FzZSwgaXQncyBzdGlsbCBzYWZlIHRv IHVwZGF0ZSB0aGUgdmlzaWJpbGl0eSBtYXAuIEFueQorCSAqIFdBTCByZWNvcmQgdGhhdCBjbGVh cnMgdGhlIHZpc2liaWxpdHkgbWFwIGJpdCBkb2VzIHNvIGJlZm9yZSBjaGVja2luZworCSAqIHRo ZSBwYWdlIExTTiwgc28gYW55IGJpdHMgdGhhdCBuZWVkIHRvIGJlIGNsZWFyZWQgd2lsbCBzdGls bCBiZQorCSAqIGNsZWFyZWQuCisJICoKKwkgKiBOb3RlIHRoYXQgdGhlIGxvY2sgb24gdGhlIGhl YXAgcGFnZSB3YXMgZHJvcHBlZCBhYm92ZS4gSW4gbm9ybWFsCisJICogb3BlcmF0aW9uIHRoaXMg d291bGQgbmV2ZXIgYmUgc2FmZSBiZWNhdXNlIGEgY29uY3VycmVudCBxdWVyeSBjb3VsZAorCSAq IG1vZGlmeSB0aGUgaGVhcCBwYWdlIGFuZCBjbGVhciBQRF9BTExfVklTSUJMRSAtLSB2aW9sYXRp bmcgdGhlCisJICogaW52YXJpYW50IHRoYXQgUERfQUxMX1ZJU0lCTEUgbXVzdCBiZSBzZXQgaWYg dGhlIGNvcnJlc3BvbmRpbmcgYml0IGluCisJICogdGhlIFZNIGlzIHNldC4KKwkgKgorCSAqIElu IHJlY292ZXJ5LCB3ZSBleHBlY3Qgbm8gb3RoZXIgd3JpdGVycywgc28gd3JpdGluZyB0byB0aGUg Vk0gcGFnZQorCSAqIHdpdGhvdXQgaG9sZGluZyBhIGxvY2sgb24gdGhlIGhlYXAgcGFnZSBpcyBj b25zaWRlcmVkIHNhZmUgZW5vdWdoLiBJdAorCSAqIGlzIGRvbmUgdGhpcyB3YXkgd2hlbiByZXBs YXlpbmcgeGxfaGVhcF92aXNpYmxlIHJlY29yZHMgKHNlZQorCSAqIGhlYXBfeGxvZ192aXNpYmxl KCkpLgorCSAqLworCWlmICh2bWZsYWdzICYgVklTSUJJTElUWU1BUF9WQUxJRF9CSVRTICYmCisJ CVhMb2dSZWFkQnVmZmVyRm9yUmVkb0V4dGVuZGVkKHJlY29yZCwgMSwKKwkJCQkJCQkJCSAgUkJN X1pFUk9fT05fRVJST1IsCisJCQkJCQkJCQkgIGZhbHNlLAorCQkJCQkJCQkJICAmdm1idWZmZXIp ID09IEJMS19ORUVEU19SRURPKQorCXsKKwkJUGFnZQkJdm1wYWdlID0gQnVmZmVyR2V0UGFnZSh2 bWJ1ZmZlcik7CisJCXVpbnQ4CQlvbGRfdm1iaXRzID0gMDsKKwkJUmVsYXRpb24JcmVsbiA9IENy ZWF0ZUZha2VSZWxjYWNoZUVudHJ5KHJsb2NhdG9yKTsKKworCQkvKiBpbml0aWFsaXplIHRoZSBw YWdlIGlmIGl0IHdhcyByZWFkIGFzIHplcm9zICovCisJCWlmIChQYWdlSXNOZXcodm1wYWdlKSkK KwkJCVBhZ2VJbml0KHZtcGFnZSwgQkxDS1NaLCAwKTsKKworCQlvbGRfdm1iaXRzID0gdmlzaWJp bGl0eW1hcF9zZXRfdm1iaXRzKHJlbG4sIGJsa25vLCB2bWJ1ZmZlciwgdm1mbGFncyk7CisKKwkJ LyogT25seSBzZXQgVk0gcGFnZSBMU04gaWYgd2UgbW9kaWZpZWQgdGhlIHBhZ2UgKi8KKwkJaWYg KG9sZF92bWJpdHMgIT0gdm1mbGFncykKKwkJeworCQkJQXNzZXJ0KEJ1ZmZlcklzRGlydHkodm1i dWZmZXIpKTsKKwkJCVBhZ2VTZXRMU04oQnVmZmVyR2V0UGFnZSh2bWJ1ZmZlciksIGxzbik7CiAJ CX0KLQkJZWxzZQotCQkJVW5sb2NrUmVsZWFzZUJ1ZmZlcihidWZmZXIpOworCisJCUZyZWVGYWtl UmVsY2FjaGVFbnRyeShyZWxuKTsKIAl9CisKKwlpZiAoQnVmZmVySXNWYWxpZCh2bWJ1ZmZlcikp CisJCVVubG9ja1JlbGVhc2VCdWZmZXIodm1idWZmZXIpOworCisJaWYgKGZyZWVzcGFjZSA+IDAp CisJCVhMb2dSZWNvcmRQYWdlV2l0aEZyZWVTcGFjZShybG9jYXRvciwgYmxrbm8sIGZyZWVzcGFj ZSk7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhl YXAuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jCmluZGV4IDliMjUxMzE1 NDNiLi45ZTAwZmJmM2NkMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1 bmVoZWFwLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKQEAgLTIw LDYgKzIwLDcgQEAKICNpbmNsdWRlICJhY2Nlc3MvbXVsdGl4YWN0LmgiCiAjaW5jbHVkZSAiYWNj ZXNzL3RyYW5zYW0uaCIKICNpbmNsdWRlICJhY2Nlc3MveGxvZy5oIgorI2luY2x1ZGUgImFjY2Vz cy92aXNpYmlsaXR5bWFwZGVmcy5oIgogI2luY2x1ZGUgImFjY2Vzcy94bG9naW5zZXJ0LmgiCiAj aW5jbHVkZSAiY29tbWFuZHMvdmFjdXVtLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvaW5zdHJ1bWVu dC5oIgpAQCAtOTEzLDYgKzkxNCw3IEBAIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKFJlbGF0 aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogCQkJCWNvbmZsaWN0X3hpZCA9IHByc3RhdGUu bGF0ZXN0X3hpZF9yZW1vdmVkOwogCiAJCQlsb2dfaGVhcF9wcnVuZV9hbmRfZnJlZXplKHJlbGF0 aW9uLCBidWZmZXIsCisJCQkJCQkJCQkgIEludmFsaWRCdWZmZXIsIDAsCiAJCQkJCQkJCQkgIGNv bmZsaWN0X3hpZCwKIAkJCQkJCQkJCSAgdHJ1ZSwKIAkJCQkJCQkJCSAgZG9fc2V0X3BkX3ZpcywK QEAgLTIwODgsMTQgKzIwOTAsMTggQEAgaGVhcF9sb2dfZnJlZXplX3BsYW4oSGVhcFR1cGxlRnJl ZXplICp0dXBsZXMsIGludCBudHVwbGVzLAogICoKICAqIFRoaXMgaXMgdXNlZCBmb3Igc2V2ZXJh bCBkaWZmZXJlbnQgcGFnZSBtYWludGVuYW5jZSBvcGVyYXRpb25zOgogICoKLSAqIC0gUGFnZSBw cnVuaW5nLCBpbiBWQUNVVU0ncyAxc3QgcGFzcyBvciBvbiBhY2Nlc3M6IFNvbWUgaXRlbXMgYXJl CisgKiAtIFBhZ2UgcHJ1bmluZywgaW4gdmFjdXVtIHBoYXNlIEkgb3Igb24tYWNjZXNzOiBTb21l IGl0ZW1zIGFyZQogICogICByZWRpcmVjdGVkLCBzb21lIG1hcmtlZCBkZWFkLCBhbmQgc29tZSBy ZW1vdmVkIGFsdG9nZXRoZXIuCiAgKgotICogLSBGcmVlemluZzogSXRlbXMgYXJlIG1hcmtlZCBh cyAnZnJvemVuJy4KKyAqIC0gRnJlZXppbmc6IER1cmluZyB2YWN1dW0gcGhhc2UgSSwgaXRlbXMg YXJlIG1hcmtlZCBhcyAnZnJvemVuJwogICoKLSAqIC0gVmFjdXVtLCAybmQgcGFzczogSXRlbXMg dGhhdCBhcmUgYWxyZWFkeSBMUF9ERUFEIGFyZSBtYXJrZWQgYXMgdW51c2VkLgorICogLSBSZWFw aW5nOiBEdXJpbmcgdmFjdXVtIHBoYXNlIElJSSwgaXRlbXMgdGhhdCBhcmUgYWxyZWFkeSBMUF9E RUFEIGFyZQorICogICBtYXJrZWQgYXMgdW51c2VkLgogICoKLSAqIFRoZXkgaGF2ZSBlbm91Z2gg Y29tbW9uYWxpdGllcyB0aGF0IHdlIHVzZSBhIHNpbmdsZSBXQUwgcmVjb3JkIGZvciB0aGVtCisg KiAtIFZNIHVwZGF0ZXM6IEFmdGVyIHZhY3V1bSBwaGFzZSBJSUksIHRoZSBoZWFwIHBhZ2UgbWF5 IGJlIG1hcmtlZAorICogICBhbGwtdmlzaWJsZSBhbmQgYWxsLWZyb3plbi4KKyAqCisgKiBUaGVz ZSBjaGFuZ2VzIGFsbCBoYXBwZW4gdG9nZXRoZXIsIHNvIHdlIHVzZSBhIHNpbmdsZSBXQUwgcmVj b3JkIGZvciB0aGVtCiAgKiBhbGwuCiAgKgogICogSWYgcmVwbGF5aW5nIHRoZSByZWNvcmQgcmVx dWlyZXMgYSBjbGVhbnVwIGxvY2ssIHBhc3MgY2xlYW51cF9sb2NrID0gdHJ1ZS4KQEAgLTIxMDMs NiArMjEwOSwxMCBAQCBoZWFwX2xvZ19mcmVlemVfcGxhbihIZWFwVHVwbGVGcmVlemUgKnR1cGxl cywgaW50IG50dXBsZXMsCiAgKiByZXBsYXlpbmcgJ3VudXNlZCcgaXRlbXMgZGVwZW5kcyBvbiB3 aGV0aGVyIHRoZXkgd2VyZSBhbGwgcHJldmlvdXNseSBtYXJrZWQKICAqIGFzIGRlYWQuCiAgKgor ICogSWYgdGhlIFZNIGlzIGJlaW5nIHVwZGF0ZWQsIHZtZmxhZ3Mgd2lsbCBjb250YWluIHRoZSBi aXRzIHRvIHNldC4gSW4gdGhpcworICogY2FzZSwgdm1idWZmZXIgc2hvdWxkIGFscmVhZHkgaGF2 ZSBiZWVuIHVwZGF0ZWQgYW5kIG1hcmtlZCBkaXJ0eSBhbmQgc2hvdWxkCisgKiBzdGlsbCBiZSBw aW5uZWQgYW5kIGxvY2tlZC4KKyAqCiAgKiBzZXRfcGRfYWxsX3ZpcyBpbmRpY2F0ZXMgdGhhdCB3 ZSBzZXQgUERfQUxMX1ZJU0lCTEUgYW5kIHRodXMgc2hvdWxkIHVwZGF0ZQogICogdGhlIHBhZ2Ug TFNOIHdoZW4gY2hlY2tzdW1zL3dhbF9sb2dfaGludHMgYXJlIGVuYWJsZWQgZXZlbiBpZiB3ZSBk aWQgbm90CiAgKiBwcnVuZSBvciBmcmVlemUgdHVwbGVzIG9uIHRoZSBwYWdlLgpAQCAtMjExMyw2 ICsyMTIzLDcgQEAgaGVhcF9sb2dfZnJlZXplX3BsYW4oSGVhcFR1cGxlRnJlZXplICp0dXBsZXMs IGludCBudHVwbGVzLAogICovCiB2b2lkCiBsb2dfaGVhcF9wcnVuZV9hbmRfZnJlZXplKFJlbGF0 aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAorCQkJCQkJICBCdWZmZXIgdm1idWZmZXIsIHVp bnQ4IHZtZmxhZ3MsCiAJCQkJCQkgIFRyYW5zYWN0aW9uSWQgY29uZmxpY3RfeGlkLAogCQkJCQkJ ICBib29sIGNsZWFudXBfbG9jaywKIAkJCQkJCSAgYm9vbCBzZXRfcGRfYWxsX3ZpcywKQEAgLTIx MzksNiArMjE1MCw4IEBAIGxvZ19oZWFwX3BydW5lX2FuZF9mcmVlemUoUmVsYXRpb24gcmVsYXRp b24sIEJ1ZmZlciBidWZmZXIsCiAJeGxyZWMuZmxhZ3MgPSAwOwogCXJlZ2J1Zl9mbGFncyA9IFJF R0JVRl9TVEFOREFSRDsKIAorCUFzc2VydCgodm1mbGFncyAmIFZJU0lCSUxJVFlNQVBfVkFMSURf QklUUykgPT0gdm1mbGFncyk7CisKIAkvKgogCSAqIFdlIGNhbiBhdm9pZCBhbiBGUEkgaWYgdGhl IG9ubHkgbW9kaWZpY2F0aW9uIHdlIGFyZSBtYWtpbmcgdG8gdGhlIGhlYXAKIAkgKiBwYWdlIGlz IHRvIHNldCBQRF9BTExfVklTSUJMRSBhbmQgY2hlY2tzdW1zL3dhbF9sb2dfaGludHMgYXJlIGRp c2FibGVkLgpAQCAtMjE1Nyw2ICsyMTcwLDEwIEBAIGxvZ19oZWFwX3BydW5lX2FuZF9mcmVlemUo UmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJICovCiAJWExvZ0JlZ2luSW5zZXJ0 KCk7CiAJWExvZ1JlZ2lzdGVyQnVmZmVyKDAsIGJ1ZmZlciwgcmVnYnVmX2ZsYWdzKTsKKworCWlm ICh2bWZsYWdzICYgVklTSUJJTElUWU1BUF9WQUxJRF9CSVRTKQorCQlYTG9nUmVnaXN0ZXJCdWZm ZXIoMSwgdm1idWZmZXIsIDApOworCiAJaWYgKG5mcm96ZW4gPiAwKQogCXsKIAkJaW50CQkJbnBs YW5zOwpAQCAtMjIxMyw2ICsyMjMwLDEyIEBAIGxvZ19oZWFwX3BydW5lX2FuZF9mcmVlemUoUmVs YXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJICogUHJlcGFyZSB0aGUgbWFpbiB4bF9o ZWFwX3BydW5lIHJlY29yZC4gIFdlIGFscmVhZHkgc2V0IHRoZSBYTEhQX0hBU18qCiAJICogZmxh ZyBhYm92ZS4KIAkgKi8KKwlpZiAodm1mbGFncyAmIFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEUp CisJeworCQl4bHJlYy5mbGFncyB8PSBYTEhQX1ZNX0FMTF9WSVNJQkxFOworCQlpZiAodm1mbGFn cyAmIFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTikKKwkJCXhscmVjLmZsYWdzIHw9IFhMSFBfVk1f QUxMX0ZST1pFTjsKKwl9CiAJaWYgKHNldF9wZF9hbGxfdmlzKQogCQl4bHJlYy5mbGFncyB8PSBY TEhQX1NFVF9QRF9BTExfVklTOwogCWlmIChSZWxhdGlvbklzQWNjZXNzaWJsZUluTG9naWNhbERl Y29kaW5nKHJlbGF0aW9uKSkKQEAgLTIyNDcsNiArMjI3MCwxMiBAQCBsb2dfaGVhcF9wcnVuZV9h bmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogCX0KIAlyZWNwdHIg PSBYTG9nSW5zZXJ0KFJNX0hFQVAyX0lELCBpbmZvKTsKIAorCWlmICh2bWZsYWdzICYgVklTSUJJ TElUWU1BUF9WQUxJRF9CSVRTKQorCXsKKwkJQXNzZXJ0KEJ1ZmZlcklzRGlydHkodm1idWZmZXIp KTsKKwkJUGFnZVNldExTTihCdWZmZXJHZXRQYWdlKHZtYnVmZmVyKSwgcmVjcHRyKTsKKwl9CisK IAkvKgogCSAqIFdlIG11c3QgYnVtcCB0aGUgcGFnZSBMU04gaWYgcHJ1bmluZyBvciBmcmVlemlu Zy4gSWYgd2UgYXJlIG9ubHkKIAkgKiB1cGRhdGluZyBQRF9BTExfVklTSUJMRSwgdGhvdWdoLCB3 ZSBjYW4gc2tpcCBkb2luZyB0aGlzIHVubGVzcwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNj ZXNzL2hlYXAvdmFjdXVtbGF6eS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6 eS5jCmluZGV4IGEwZjM5ODRlMzdmLi5iNmM5NzNjZDExMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFw L3ZhY3V1bWxhenkuYwpAQCAtMTkwNiw2ICsxOTA2LDggQEAgbGF6eV9zY2FuX25ld19vcl9lbXB0 eShMVlJlbFN0YXRlICp2YWNyZWwsIEJ1ZmZlciBidWYsIEJsb2NrTnVtYmVyIGJsa25vLAogCQkJ CQlsb2dfbmV3cGFnZV9idWZmZXIoYnVmLCB0cnVlKTsKIAkJCQllbHNlCiAJCQkJCWxvZ19oZWFw X3BydW5lX2FuZF9mcmVlemUodmFjcmVsLT5yZWwsIGJ1ZiwKKwkJCQkJCQkJCQkJICBJbnZhbGlk QnVmZmVyLAorCQkJCQkJCQkJCQkgIDAsCiAJCQkJCQkJCQkJCSAgSW52YWxpZFRyYW5zYWN0aW9u SWQsIC8qIGNvbmZsaWN0IHhpZCAqLwogCQkJCQkJCQkJCQkgIGZhbHNlLAkvKiBjbGVhbnVwIGxv Y2sgKi8KIAkJCQkJCQkJCQkJICB0cnVlLCAvKiBzZXRfcGRfYWxsX3ZpcyAqLwpAQCAtMjgxNyw2 ICsyODE5LDcgQEAgbGF6eV92YWN1dW1faGVhcF9wYWdlKExWUmVsU3RhdGUgKnZhY3JlbCwgQmxv Y2tOdW1iZXIgYmxrbm8sIEJ1ZmZlciBidWZmZXIsCiAJT2Zmc2V0TnVtYmVyIHVudXNlZFtNYXhI ZWFwVHVwbGVzUGVyUGFnZV07CiAJaW50CQkJbnVudXNlZCA9IDA7CiAJVHJhbnNhY3Rpb25JZCB2 aXNpYmlsaXR5X2N1dG9mZl94aWQ7CisJVHJhbnNhY3Rpb25JZCBjb25mbGljdF94aWQgPSBJbnZh bGlkVHJhbnNhY3Rpb25JZDsKIAlib29sCQlhbGxfZnJvemVuOwogCUxWU2F2ZWRFcnJJbmZvIHNh dmVkX2Vycl9pbmZvOwogCXVpbnQ4CQl2bWZsYWdzID0gMDsKQEAgLTI4NDIsNiArMjg0NSw5IEBA IGxhenlfdmFjdXVtX2hlYXBfcGFnZShMVlJlbFN0YXRlICp2YWNyZWwsIEJsb2NrTnVtYmVyIGJs a25vLCBCdWZmZXIgYnVmZmVyLAogCQkJdm1mbGFncyB8PSBWSVNJQklMSVRZTUFQX0FMTF9GUk9a RU47CiAJCQlBc3NlcnQoIVRyYW5zYWN0aW9uSWRJc1ZhbGlkKHZpc2liaWxpdHlfY3V0b2ZmX3hp ZCkpOwogCQl9CisKKwkJLyogVGFrZSB0aGUgbG9jayBvbiB0aGUgdm1idWZmZXIgYmVmb3JlIGVu dGVyaW5nIGEgY3JpdGljYWwgc2VjdGlvbiAqLworCQlMb2NrQnVmZmVyKHZtYnVmZmVyLCBCVUZG RVJfTE9DS19FWENMVVNJVkUpOwogCX0KIAogCVNUQVJUX0NSSVRfU0VDVElPTigpOwpAQCAtMjg2 OCw3ICsyODc0LDEzIEBAIGxhenlfdmFjdXVtX2hlYXBfcGFnZShMVlJlbFN0YXRlICp2YWNyZWws IEJsb2NrTnVtYmVyIGJsa25vLCBCdWZmZXIgYnVmZmVyLAogCSAqIHNldHRpbmcgdGhlIFZNLCB3 ZSBtdXN0IHNldCBQRF9BTExfVklTSUJMRSBhcyB3ZWxsLgogCSAqLwogCWlmICgodm1mbGFncyAm IFZJU0lCSUxJVFlNQVBfVkFMSURfQklUUykgIT0gMCkKKwl7CiAJCVBhZ2VTZXRBbGxWaXNpYmxl KHBhZ2UpOworCQl2aXNpYmlsaXR5bWFwX3NldF92bWJpdHModmFjcmVsLT5yZWwsCisJCQkJCQkJ CSBibGtubywKKwkJCQkJCQkJIHZtYnVmZmVyLCB2bWZsYWdzKTsKKwkJY29uZmxpY3RfeGlkID0g dmlzaWJpbGl0eV9jdXRvZmZfeGlkOworCX0KIAogCS8qCiAJICogTWFyayBidWZmZXIgZGlydHkg YmVmb3JlIHdlIHdyaXRlIFdBTC4KQEAgLTI4NzksNyArMjg5MSw4IEBAIGxhenlfdmFjdXVtX2hl YXBfcGFnZShMVlJlbFN0YXRlICp2YWNyZWwsIEJsb2NrTnVtYmVyIGJsa25vLCBCdWZmZXIgYnVm ZmVyLAogCWlmIChSZWxhdGlvbk5lZWRzV0FMKHZhY3JlbC0+cmVsKSkKIAl7CiAJCWxvZ19oZWFw X3BydW5lX2FuZF9mcmVlemUodmFjcmVsLT5yZWwsIGJ1ZmZlciwKLQkJCQkJCQkJICBJbnZhbGlk VHJhbnNhY3Rpb25JZCwKKwkJCQkJCQkJICB2bWJ1ZmZlciwgdm1mbGFncywKKwkJCQkJCQkJICBj b25mbGljdF94aWQsCiAJCQkJCQkJCSAgZmFsc2UsCS8qIG5vIGNsZWFudXAgbG9jayByZXF1aXJl ZCAqLwogCQkJCQkJCQkgICh2bWZsYWdzICYgVklTSUJJTElUWU1BUF9WQUxJRF9CSVRTKSAhPSAw LAogCQkJCQkJCQkgIFBSVU5FX1ZBQ1VVTV9DTEVBTlVQLApAQCAtMjg4OSwzNiArMjkwMiwxNyBA QCBsYXp5X3ZhY3V1bV9oZWFwX3BhZ2UoTFZSZWxTdGF0ZSAqdmFjcmVsLCBCbG9ja051bWJlciBi bGtubywgQnVmZmVyIGJ1ZmZlciwKIAkJCQkJCQkJICB1bnVzZWQsIG51bnVzZWQpOwogCX0KIAot CS8qCi0JICogTm90ZSB0aGF0IHdlIGRvbid0IGVuZCB0aGUgY3JpdGljYWwgc2VjdGlvbiB1bnRp bCBhZnRlciBlbWl0dGluZyB0aGUgVk0KLQkgKiByZWNvcmQuIFRoaXMgZW5zdXJlcyBib3RoIFBE X0FMTF9WSVNJQkxFIGFuZCB0aGUgVk0gYml0cyBhcmUgc2V0IG9yCi0JICogdW5zZXQgaW4gdGhl IGV2ZW50IG9mIGEgY3Jhc2guIFdoaWxlIGl0IGlzIGNvcnJlY3QgZm9yIFBEX0FMTF9WSVNJQkxF Ci0JICogdG8gYmUgc2V0IGFuZCB0aGUgVk0gdG8gYmUgY2xlYXIsIHdlIHNob3VsZCBkbyBvdXIg YmVzdCB0byBrZWVwIHRoZXNlCi0JICogaW4gc3luYy4gVGhpcyBkb2VzIG1lYW4gdGhhdCB3ZSB3 aWxsIHRha2UgYSBsb2NrIG9uIHRoZSBWTSBidWZmZXIKLQkgKiBpbnNpZGUgb2YgYSBjcml0aWNh bCBzZWN0aW9uLCB3aGljaCBpcyBnZW5lcmFsbHkgZGlzY291cmFnZWQuIFRoZXJlIGlzCi0JICog cHJlY2VkZW50IGZvciB0aGlzIGluIG90aGVyIGNhbGxlcnMgb2YgdmlzaWJpbGl0eW1hcF9zZXQo KSwgdGhvdWdoLgotCSAqLworCUVORF9DUklUX1NFQ1RJT04oKTsKIAotCS8qCi0JICogTm93IHRo YXQgd2UgaGF2ZSByZW1vdmVkIHRoZSBMUF9ERUFEIGl0ZW1zIGZyb20gdGhlIHBhZ2UsIHNldCB0 aGUKLQkgKiB2aXNpYmlsaXR5IG1hcCBpZiB0aGUgcGFnZSBiZWNhbWUgYWxsLXZpc2libGUvYWxs LWZyb3plbi4gQ2hhbmdlcyB0bwotCSAqIHRoZSBoZWFwIHBhZ2UgaGF2ZSBhbHJlYWR5IGJlZW4g bG9nZ2VkLgotCSAqLwogCWlmICgodm1mbGFncyAmIFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEUp ICE9IDApCiAJewotCQl2aXNpYmlsaXR5bWFwX3NldCh2YWNyZWwtPnJlbCwgYmxrbm8sCi0JCQkJ CQkgIEludmFsaWRYTG9nUmVjUHRyLAotCQkJCQkJICB2bWJ1ZmZlciwgdmlzaWJpbGl0eV9jdXRv ZmZfeGlkLAotCQkJCQkJICB2bWZsYWdzKTsKLQogCQkvKiBDb3VudCB0aGUgbmV3bHkgc2V0IFZN IHBhZ2UgZm9yIGxvZ2dpbmcgKi8KKwkJTG9ja0J1ZmZlcih2bWJ1ZmZlciwgQlVGRkVSX0xPQ0tf VU5MT0NLKTsKIAkJdmFjcmVsLT52bV9uZXdfdmlzaWJsZV9wYWdlcysrOwogCQlpZiAoYWxsX2Zy b3plbikKIAkJCXZhY3JlbC0+dm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzKys7CiAJfQogCi0J RU5EX0NSSVRfU0VDVElPTigpOwotCiAJLyogUmV2ZXJ0IHRvIHRoZSBwcmV2aW91cyBwaGFzZSBp bmZvcm1hdGlvbiBmb3IgZXJyb3IgdHJhY2ViYWNrICovCiAJcmVzdG9yZV92YWN1dW1fZXJyb3Jf aW5mbyh2YWNyZWwsICZzYXZlZF9lcnJfaW5mbyk7CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9hY2Nlc3Mvcm1ncmRlc2MvaGVhcGRlc2MuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9ybWdyZGVz Yy9oZWFwZGVzYy5jCmluZGV4IGI0OGQ3ZGMxZDI0Li4xY2I0NGNhMzJkMyAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvYWNjZXNzL3JtZ3JkZXNjL2hlYXBkZXNjLmMKKysrIGIvc3JjL2JhY2tlbmQv YWNjZXNzL3JtZ3JkZXNjL2hlYXBkZXNjLmMKQEAgLTEwMyw3ICsxMDMsNyBAQCBwbGFuX2VsZW1f ZGVzYyhTdHJpbmdJbmZvIGJ1Ziwgdm9pZCAqcGxhbiwgdm9pZCAqZGF0YSkKICAqIGNvZGUsIHRo ZSBsYXR0ZXIgb2Ygd2hpY2ggaXMgdXNlZCBpbiBmcm9udGVuZCAocGdfd2FsZHVtcCkgY29kZS4K ICAqLwogdm9pZAotaGVhcF94bG9nX2Rlc2VyaWFsaXplX3BydW5lX2FuZF9mcmVlemUoY2hhciAq Y3Vyc29yLCB1aW50OCBmbGFncywKK2hlYXBfeGxvZ19kZXNlcmlhbGl6ZV9wcnVuZV9hbmRfZnJl ZXplKGNoYXIgKmN1cnNvciwgdWludDE2IGZsYWdzLAogCQkJCQkJCQkJICAgaW50ICpucGxhbnMs IHhsaHBfZnJlZXplX3BsYW4gKipwbGFucywKIAkJCQkJCQkJCSAgIE9mZnNldE51bWJlciAqKmZy el9vZmZzZXRzLAogCQkJCQkJCQkJICAgaW50ICpucmVkaXJlY3RlZCwgT2Zmc2V0TnVtYmVyICoq cmVkaXJlY3RlZCwKQEAgLTI4Nyw2ICsyODcsMTUgQEAgaGVhcDJfZGVzYyhTdHJpbmdJbmZvIGJ1 ZiwgWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAJCWFwcGVuZFN0cmluZ0luZm8oYnVmLCAiLCBp c0NhdGFsb2dSZWw6ICVjIiwKIAkJCQkJCSB4bHJlYy0+ZmxhZ3MgJiBYTEhQX0lTX0NBVEFMT0df UkVMID8gJ1QnIDogJ0YnKTsKIAorCQlpZiAoeGxyZWMtPmZsYWdzICYgWExIUF9WTV9BTExfVklT SUJMRSkKKwkJeworCQkJdWludDgJCXZtZmxhZ3MgPSBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxF OworCisJCQlpZiAoeGxyZWMtPmZsYWdzICYgWExIUF9WTV9BTExfRlJPWkVOKQorCQkJCXZtZmxh Z3MgfD0gVklTSUJJTElUWU1BUF9BTExfRlJPWkVOOworCQkJYXBwZW5kU3RyaW5nSW5mbyhidWYs ICIsIHZtX2ZsYWdzOiAweCUwMlgiLCB2bWZsYWdzKTsKKwkJfQorCiAJCWlmIChYTG9nUmVjSGFz QmxvY2tEYXRhKHJlY29yZCwgMCkpCiAJCXsKIAkJCVNpemUJCWRhdGFsZW47CmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFt LmgKaW5kZXggMmY3N2Q4ZGJjZDYuLmJlNjY5NzBjOWYwIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9hY2Nlc3MvaGVhcGFtLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oCkBAIC0z ODksNiArMzg5LDcgQEAgZXh0ZXJuIHZvaWQgaGVhcF9wYWdlX3BydW5lX2V4ZWN1dGUoQnVmZmVy IGJ1ZmZlciwgYm9vbCBscF90cnVuY2F0ZV9vbmx5LAogCQkJCQkJCQkJT2Zmc2V0TnVtYmVyICpu b3d1bnVzZWQsIGludCBudW51c2VkKTsKIGV4dGVybiB2b2lkIGhlYXBfZ2V0X3Jvb3RfdHVwbGVz KFBhZ2UgcGFnZSwgT2Zmc2V0TnVtYmVyICpyb290X29mZnNldHMpOwogZXh0ZXJuIHZvaWQgbG9n X2hlYXBfcHJ1bmVfYW5kX2ZyZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwK KwkJCQkJCQkJCSAgQnVmZmVyIHZtYnVmZmVyLCB1aW50OCB2bWZsYWdzLAogCQkJCQkJCQkJICBU cmFuc2FjdGlvbklkIGNvbmZsaWN0X3hpZCwKIAkJCQkJCQkJCSAgYm9vbCBjbGVhbnVwX2xvY2ss CiAJCQkJCQkJCQkgIGJvb2wgc2V0X3BkX2FsbF92aXMsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9hY2Nlc3MvaGVhcGFtX3hsb2cuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW1feGxvZy5o CmluZGV4IDgyYjhmN2YyYmJjLi44MzMxMTRlMGE2ZSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv YWNjZXNzL2hlYXBhbV94bG9nLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbV94bG9n LmgKQEAgLTI0OSw3ICsyNDksNyBAQCB0eXBlZGVmIHN0cnVjdCB4bF9oZWFwX3VwZGF0ZQogICog TWFpbiBkYXRhIHNlY3Rpb246CiAgKgogICoJeGxfaGVhcF9wcnVuZQotICoJCXVpbnQ4CQkJCWZs YWdzCisgKgkJdWludDE2CQkJCWZsYWdzCiAgKglUcmFuc2FjdGlvbklkCQkJc25hcHNob3RfY29u ZmxpY3RfaG9yaXpvbgogICoKICAqIEJsb2NrIDAgZGF0YSBzZWN0aW9uOgpAQCAtMjg0LDcgKzI4 NCw3IEBAIHR5cGVkZWYgc3RydWN0IHhsX2hlYXBfdXBkYXRlCiAgKi8KIHR5cGVkZWYgc3RydWN0 IHhsX2hlYXBfcHJ1bmUKIHsKLQl1aW50OAkJZmxhZ3M7CisJdWludDE2CQlmbGFnczsKIAogCS8q CiAJICogSWYgWExIUF9IQVNfQ09ORkxJQ1RfSE9SSVpPTiBpcyBzZXQsIHRoZSBjb25mbGljdCBo b3Jpem9uIFhJRCBmb2xsb3dzLApAQCAtMjkyLDExICsyOTIsMTcgQEAgdHlwZWRlZiBzdHJ1Y3Qg eGxfaGVhcF9wcnVuZQogCSAqLwogfSB4bF9oZWFwX3BydW5lOwogCi0jZGVmaW5lIFNpemVPZkhl YXBQcnVuZSAob2Zmc2V0b2YoeGxfaGVhcF9wcnVuZSwgZmxhZ3MpICsgc2l6ZW9mKHVpbnQ4KSkK KyNkZWZpbmUgU2l6ZU9mSGVhcFBydW5lIChvZmZzZXRvZih4bF9oZWFwX3BydW5lLCBmbGFncykg KyBzaXplb2YodWludDE2KSkKIAogI2RlZmluZQkJWExIUF9TRVRfUERfQUxMX1ZJUwkJCSgxIDw8 IDApCiAKLS8qIHRvIGhhbmRsZSByZWNvdmVyeSBjb25mbGljdCBkdXJpbmcgbG9naWNhbCBkZWNv ZGluZyBvbiBzdGFuZGJ5ICovCisvKgorICogVG8gaGFuZGxlIHJlY292ZXJ5IGNvbmZsaWN0IGR1 cmluZyBsb2dpY2FsIGRlY29kaW5nIG9uIHN0YW5kYnksIHdlIG11c3Qga25vdworICogaWYgdGhl IHRhYmxlIGlzIGEgY2F0YWxvZyB0YWJsZS4gTm90ZSB0aGF0IGluIHZpc2liaWxpdHltYXBkZWZz LmgKKyAqIFZJU0lCTElUWU1BUF9YTE9HX0NBVEFMT0dfUkVMIGlzIGFsc28gZGVmaW5lZCBhcyAo MSA8PCAyKS4geGxfaGVhcF9wcnVuZQorICogcmVjb3JkcyBzaG91bGQgdXNlIFhMSFBfSVNfQ0FU QUxPR19SRUwsIG5vdCBWSVNJQklMSVlUTUFQX1hMT0dfQ0FUQUxPR19SRUwgLS0KKyAqIGV2ZW4g aWYgdGhleSBvbmx5IGNvbnRhaW4gdXBkYXRlcyB0byB0aGUgVk0uCisgKi8KICNkZWZpbmUJCVhM SFBfSVNfQ0FUQUxPR19SRUwJCQkoMSA8PCAxKQogCiAvKgpAQCAtMzMyLDYgKzMzOCwxNSBAQCB0 eXBlZGVmIHN0cnVjdCB4bF9oZWFwX3BydW5lCiAjZGVmaW5lCQlYTEhQX0hBU19ERUFEX0lURU1T CSAgICAgICAgKDEgPDwgNikKICNkZWZpbmUJCVhMSFBfSEFTX05PV19VTlVTRURfSVRFTVMgICAo MSA8PCA3KQogCisvKgorICogVGhlIHhsX2hlYXBfcHJ1bmUgcmVjb3JkJ3MgZmxhZ3MgbWF5IGFs c28gY29udGFpbiB3aGljaCBWTSBiaXRzIHRvIHNldC4KKyAqIHhsX2hlYXBfcHJ1bmUgc2hvdWxk IGFsd2F5cyB1c2UgdGhlIFhMSFBfVk1fQUxMX1ZJU0lCTEUgYW5kCisgKiBYTEhQX1ZNX0FMTF9G Uk9aRU4gZmxhZ3MgYW5kIHRyYW5zbGF0ZSB0aGVtIHRvIHRoZWlyIHZpc2liaWxpdHltYXBkZWZz LmgKKyAqIGVxdWl2YWxlbnRzLCBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxFIGFuZCBWSVNJQklM SVRZTUFQX0FMTF9GUk9aRU4uCisgKi8KKyNkZWZpbmUJCVhMSFBfVk1fQUxMX1ZJU0lCTEUJCQko MSA8PCA4KQorI2RlZmluZQkJWExIUF9WTV9BTExfRlJPWkVOCQkJKDEgPDwgOSkKKwogLyoKICAq IHhsaHBfZnJlZXplX3BsYW4gZGVzY3JpYmVzIGhvdyB0byBmcmVlemUgYSBncm91cCBvZiBvbmUg b3IgbW9yZSBoZWFwIHR1cGxlcwogICogKGFwcGVhcnMgaW4geGxfaGVhcF9wcnVuZSdzIHhsaHBf ZnJlZXplX3BsYW5zIHN1Yi1yZWNvcmQpCkBAIC00OTgsNyArNTEzLDcgQEAgZXh0ZXJuIFhMb2dS ZWNQdHIgbG9nX2hlYXBfdmlzaWJsZShSZWxhdGlvbiByZWwsCiAJCQkJCQkJCSAgIHVpbnQ4IHZt ZmxhZ3MpOwogCiAvKiBpbiBoZWFwZGVzYy5jLCBzbyBpdCBjYW4gYmUgc2hhcmVkIGJldHdlZW4g ZnJvbnRlbmQvYmFja2VuZCBjb2RlICovCi1leHRlcm4gdm9pZCBoZWFwX3hsb2dfZGVzZXJpYWxp emVfcHJ1bmVfYW5kX2ZyZWV6ZShjaGFyICpjdXJzb3IsIHVpbnQ4IGZsYWdzLAorZXh0ZXJuIHZv aWQgaGVhcF94bG9nX2Rlc2VyaWFsaXplX3BydW5lX2FuZF9mcmVlemUoY2hhciAqY3Vyc29yLCB1 aW50MTYgZmxhZ3MsCiAJCQkJCQkJCQkJCQkgICBpbnQgKm5wbGFucywgeGxocF9mcmVlemVfcGxh biAqKnBsYW5zLAogCQkJCQkJCQkJCQkJICAgT2Zmc2V0TnVtYmVyICoqZnJ6X29mZnNldHMsCiAJ CQkJCQkJCQkJCQkgICBpbnQgKm5yZWRpcmVjdGVkLCBPZmZzZXROdW1iZXIgKipyZWRpcmVjdGVk LAotLSAKMi40My4wCgo= --000000000000cf342e063f082d09 Content-Type: text/x-patch; charset="US-ASCII"; name="v14-0013-Make-heap_page_is_all_visible-independent-of-LVR.patch" Content-Disposition: attachment; filename="v14-0013-Make-heap_page_is_all_visible-independent-of-LVR.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfonltnb12 RnJvbSAyZjgyMGY5M2JmZTI3M2VkOWI5ODY3ZDNkZGM5ZjRjNjdkZDk0Mjk2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUdWUsIDE2IFNlcCAyMDI1IDE1OjM5OjMxIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTQgMTMvMjRdIE1ha2UgaGVhcF9wYWdlX2lzX2FsbF92aXNpYmxlIGluZGVwZW5kZW50 IG9mCiBMVlJlbFN0YXRlCgpGdXR1cmUgY29tbWl0cyB3aWxsIHVzZSB0aGlzIGZ1bmN0aW9uIGlu c2lkZSBvZiBwcnVuZWhlYXAuYyB3aGVyZSB3ZSBkbwpub3QgaGF2ZSBhY2Nlc3MgdG8gdGhlIExW UmVsU3RhdGUuIFdlIG9ubHkgbmVlZCBhIGZldyBwYXJhbWV0ZXJzIGZyb20KdGhlIExWUmVsU3Rh dGUsIHNvIGp1c3QgcGFzcyB0aG9zZSBpbiBleHBsaWNpdGx5LgoKQXV0aG9yOiBNZWxhbmllIFBs YWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21haWwuY29tPgpSZXZpZXdlZC1ieTogS2lyaWxsIFJl c2hrZSA8cmVzaGtla2lyaWxsQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IFJvYmVydCBIYWFzIDxy b2JlcnRtaGFhc0BnbWFpbC5jb20+CkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vZmxh dC9DQUFLUnVfWk13Nk5wZF9xbTJLTSUyQkZ3UTNjTU9NeDFEaDNWTWhwOC1WN1NPTHhkSzktZyU0 MG1haWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5j IHwgNTcgKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDM3IGlu c2VydGlvbnMoKyksIDIwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxh enkuYwppbmRleCA3MzVmMWU3NTAxZS4uYTBmMzk4NGUzN2YgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVh cC92YWN1dW1sYXp5LmMKQEAgLTQ2MywxMyArNDYzLDE4IEBAIHN0YXRpYyB2b2lkIGRlYWRfaXRl bXNfYWRkKExWUmVsU3RhdGUgKnZhY3JlbCwgQmxvY2tOdW1iZXIgYmxrbm8sIE9mZnNldE51bWJl ciAqCiAJCQkJCQkgICBpbnQgbnVtX29mZnNldHMpOwogc3RhdGljIHZvaWQgZGVhZF9pdGVtc19y ZXNldChMVlJlbFN0YXRlICp2YWNyZWwpOwogc3RhdGljIHZvaWQgZGVhZF9pdGVtc19jbGVhbnVw KExWUmVsU3RhdGUgKnZhY3JlbCk7Ci1zdGF0aWMgYm9vbCBoZWFwX3BhZ2VfaXNfYWxsX3Zpc2li bGUoTFZSZWxTdGF0ZSAqdmFjcmVsLCBCdWZmZXIgYnVmLAotCQkJCQkJCQkJIFRyYW5zYWN0aW9u SWQgKnZpc2liaWxpdHlfY3V0b2ZmX3hpZCwgYm9vbCAqYWxsX2Zyb3plbik7Ci1zdGF0aWMgYm9v bCBoZWFwX3BhZ2Vfd291bGRfYmVfYWxsX3Zpc2libGUoTFZSZWxTdGF0ZSAqdmFjcmVsLCBCdWZm ZXIgYnVmLAorc3RhdGljIGJvb2wgaGVhcF9wYWdlX2lzX2FsbF92aXNpYmxlKFJlbGF0aW9uIHJl bCwgQnVmZmVyIGJ1ZiwKKwkJCQkJCQkJCSBUcmFuc2FjdGlvbklkIE9sZGVzdFhtaW4sCisJCQkJ CQkJCQkgYm9vbCAqYWxsX2Zyb3plbiwKKwkJCQkJCQkJCSBUcmFuc2FjdGlvbklkICp2aXNpYmls aXR5X2N1dG9mZl94aWQsCisJCQkJCQkJCQkgT2Zmc2V0TnVtYmVyICpsb2dnaW5nX29mZm51bSk7 CitzdGF0aWMgYm9vbCBoZWFwX3BhZ2Vfd291bGRfYmVfYWxsX3Zpc2libGUoUmVsYXRpb24gcmVs LCBCdWZmZXIgYnVmLAorCQkJCQkJCQkJCSAgIFRyYW5zYWN0aW9uSWQgT2xkZXN0WG1pbiwKIAkJ CQkJCQkJCQkgICBPZmZzZXROdW1iZXIgKmRlYWRvZmZzZXRzLAogCQkJCQkJCQkJCSAgIGludCBu ZGVhZG9mZnNldHMsCiAJCQkJCQkJCQkJICAgYm9vbCAqYWxsX2Zyb3plbiwKLQkJCQkJCQkJCQkg ICBUcmFuc2FjdGlvbklkICp2aXNpYmlsaXR5X2N1dG9mZl94aWQpOworCQkJCQkJCQkJCSAgIFRy YW5zYWN0aW9uSWQgKnZpc2liaWxpdHlfY3V0b2ZmX3hpZCwKKwkJCQkJCQkJCQkgICBPZmZzZXRO dW1iZXIgKmxvZ2dpbmdfb2ZmbnVtKTsKIHN0YXRpYyB2b2lkIHVwZGF0ZV9yZWxzdGF0c19hbGxf aW5kZXhlcyhMVlJlbFN0YXRlICp2YWNyZWwpOwogc3RhdGljIHZvaWQgdmFjdXVtX2Vycm9yX2Nh bGxiYWNrKHZvaWQgKmFyZyk7CiBzdGF0aWMgdm9pZCB1cGRhdGVfdmFjdXVtX2Vycm9yX2luZm8o TFZSZWxTdGF0ZSAqdmFjcmVsLApAQCAtMjAzMCw4ICsyMDM1LDkgQEAgbGF6eV9zY2FuX3BydW5l KExWUmVsU3RhdGUgKnZhY3JlbCwKIAogCQlBc3NlcnQocHJlc3VsdC5scGRlYWRfaXRlbXMgPT0g MCk7CiAKLQkJaWYgKCFoZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGUodmFjcmVsLCBidWYsCi0JCQkJ CQkJCQkgICZkZWJ1Z19jdXRvZmYsICZkZWJ1Z19hbGxfZnJvemVuKSkKKwkJaWYgKCFoZWFwX3Bh Z2VfaXNfYWxsX3Zpc2libGUodmFjcmVsLT5yZWwsIGJ1ZiwKKwkJCQkJCQkJCSAgdmFjcmVsLT5j dXRvZmZzLk9sZGVzdFhtaW4sICZkZWJ1Z19hbGxfZnJvemVuLAorCQkJCQkJCQkJICAmZGVidWdf Y3V0b2ZmLCAmdmFjcmVsLT5vZmZudW0pKQogCQkJQXNzZXJ0KGZhbHNlKTsKIAogCQlBc3NlcnQo cHJlc3VsdC5hbGxfZnJvemVuID09IGRlYnVnX2FsbF9mcm96ZW4pOwpAQCAtMjgyNCw5ICsyODMw LDExIEBAIGxhenlfdmFjdXVtX2hlYXBfcGFnZShMVlJlbFN0YXRlICp2YWNyZWwsIEJsb2NrTnVt YmVyIGJsa25vLCBCdWZmZXIgYnVmZmVyLAogCQkJCQkJCSBWQUNVVU1fRVJSQ0JfUEhBU0VfVkFD VVVNX0hFQVAsIGJsa25vLAogCQkJCQkJCSBJbnZhbGlkT2Zmc2V0TnVtYmVyKTsKIAotCWlmICho ZWFwX3BhZ2Vfd291bGRfYmVfYWxsX3Zpc2libGUodmFjcmVsLCBidWZmZXIsCisJaWYgKGhlYXBf cGFnZV93b3VsZF9iZV9hbGxfdmlzaWJsZSh2YWNyZWwtPnJlbCwgYnVmZmVyLAorCQkJCQkJCQkJ ICAgdmFjcmVsLT5jdXRvZmZzLk9sZGVzdFhtaW4sCiAJCQkJCQkJCQkgICBkZWFkb2Zmc2V0cywg bnVtX29mZnNldHMsCi0JCQkJCQkJCQkgICAmYWxsX2Zyb3plbiwgJnZpc2liaWxpdHlfY3V0b2Zm X3hpZCkpCisJCQkJCQkJCQkgICAmYWxsX2Zyb3plbiwgJnZpc2liaWxpdHlfY3V0b2ZmX3hpZCwK KwkJCQkJCQkJCSAgICZ2YWNyZWwtPm9mZm51bSkpCiAJewogCQl2bWZsYWdzIHw9IFZJU0lCSUxJ VFlNQVBfQUxMX1ZJU0lCTEU7CiAJCWlmIChhbGxfZnJvemVuKQpAQCAtMzU3NiwxNSArMzU4NCwx OSBAQCBkZWFkX2l0ZW1zX2NsZWFudXAoTFZSZWxTdGF0ZSAqdmFjcmVsKQogICogY2FsbGVycyB0 aGF0IGV4cGVjdCBubyBMUF9ERUFEIG9uIHRoZSBwYWdlLgogICovCiBzdGF0aWMgYm9vbAotaGVh cF9wYWdlX2lzX2FsbF92aXNpYmxlKExWUmVsU3RhdGUgKnZhY3JlbCwgQnVmZmVyIGJ1ZiwKK2hl YXBfcGFnZV9pc19hbGxfdmlzaWJsZShSZWxhdGlvbiByZWwsIEJ1ZmZlciBidWYsCisJCQkJCQkg VHJhbnNhY3Rpb25JZCBPbGRlc3RYbWluLAorCQkJCQkJIGJvb2wgKmFsbF9mcm96ZW4sCiAJCQkJ CQkgVHJhbnNhY3Rpb25JZCAqdmlzaWJpbGl0eV9jdXRvZmZfeGlkLAotCQkJCQkJIGJvb2wgKmFs bF9mcm96ZW4pCisJCQkJCQkgT2Zmc2V0TnVtYmVyICpsb2dnaW5nX29mZm51bSkKIHsKIAotCXJl dHVybiBoZWFwX3BhZ2Vfd291bGRfYmVfYWxsX3Zpc2libGUodmFjcmVsLCBidWYsCisJcmV0dXJu IGhlYXBfcGFnZV93b3VsZF9iZV9hbGxfdmlzaWJsZShyZWwsIGJ1ZiwKKwkJCQkJCQkJCQkgIE9s ZGVzdFhtaW4sCiAJCQkJCQkJCQkJICBOVUxMLCAwLAogCQkJCQkJCQkJCSAgYWxsX2Zyb3plbiwK LQkJCQkJCQkJCQkgIHZpc2liaWxpdHlfY3V0b2ZmX3hpZCk7CisJCQkJCQkJCQkJICB2aXNpYmls aXR5X2N1dG9mZl94aWQsCisJCQkJCQkJCQkJICBsb2dnaW5nX29mZm51bSk7CiB9CiAKIC8qCkBA IC0zNTk5LDcgKzM2MTEsNyBAQCBoZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGUoTFZSZWxTdGF0ZSAq dmFjcmVsLCBCdWZmZXIgYnVmLAogICogUmV0dXJucyB0cnVlIGlmIHRoZSBwYWdlIGlzIGFsbC12 aXNpYmxlIG90aGVyIHRoYW4gdGhlIHByb3ZpZGVkCiAgKiBkZWFkb2Zmc2V0cyBhbmQgZmFsc2Ug b3RoZXJ3aXNlLgogICoKLSAqIHZhY3JlbC0+Y3V0b2Zmcy5PbGRlc3RYbWluIGlzIHVzZWQgdG8g ZGV0ZXJtaW5lIHZpc2liaWxpdHkuCisgKiBPbGRlc3RYbWluIGlzIHVzZWQgdG8gZGV0ZXJtaW5l IHZpc2liaWxpdHkuCiAgKgogICogKmFsbF9mcm96ZW4gaXMgYW4gb3V0cHV0IHBhcmFtZXRlciBp bmRpY2F0aW5nIHRvIHRoZSBjYWxsZXIgaWYgZXZlcnkgdHVwbGUKICAqIG9uIHRoZSBwYWdlIGlz IGZyb3plbi4KQEAgLTM2MDcsNiArMzYxOSw5IEBAIGhlYXBfcGFnZV9pc19hbGxfdmlzaWJsZShM VlJlbFN0YXRlICp2YWNyZWwsIEJ1ZmZlciBidWYsCiAgKiAqdmlzaWJpbGl0eV9jdXRvZmZfeGlk IGlzIGFuIG91dHB1dCBwYXJhbWV0ZXIgd2l0aCB0aGUgaGlnaGVzdCB4bWluIGFtb25nc3QgdGhl CiAgKiB2aXNpYmxlIHR1cGxlcy4gSXQgaXMgb25seSB2YWxpZCBpZiB0aGUgcGFnZSBpcyBhbGwt dmlzaWJsZS4KICAqCisgKiAqbG9nZ2luZ19vZmZudW0gd2lsbCBoYXZlIHRoZSBPZmZzZXROdW1i ZXIgb2YgdGhlIGN1cnJlbnQgdHVwbGUgYmVpbmcKKyAqIHByb2Nlc3NlZCBmb3IgdmFjdXVtJ3Mg ZXJyb3IgY2FsbGJhY2sgc3lzdGVtLgorICoKICAqIENhbGxlcnMgbG9va2luZyB0byB2ZXJpZnkg dGhhdCB0aGUgcGFnZSBpcyBhbHJlYWR5IGFsbC12aXNpYmxlIGNhbiBjYWxsCiAgKiBoZWFwX3Bh Z2VfaXNfYWxsX3Zpc2libGUoKS4KICAqCkBAIC0zNjE2LDExICszNjMxLDEzIEBAIGhlYXBfcGFn ZV9pc19hbGxfdmlzaWJsZShMVlJlbFN0YXRlICp2YWNyZWwsIEJ1ZmZlciBidWYsCiAgKiB0byBh dm9pZCBpbnRyb2R1Y2luZyBuZXcgc2lkZS1lZmZlY3RzIGhlcmUuCiAgKi8KIHN0YXRpYyBib29s Ci1oZWFwX3BhZ2Vfd291bGRfYmVfYWxsX3Zpc2libGUoTFZSZWxTdGF0ZSAqdmFjcmVsLCBCdWZm ZXIgYnVmLAoraGVhcF9wYWdlX3dvdWxkX2JlX2FsbF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVm ZmVyIGJ1ZiwKKwkJCQkJCQkgICBUcmFuc2FjdGlvbklkIE9sZGVzdFhtaW4sCiAJCQkJCQkJICAg T2Zmc2V0TnVtYmVyICpkZWFkb2Zmc2V0cywKIAkJCQkJCQkgICBpbnQgbmRlYWRvZmZzZXRzLAog CQkJCQkJCSAgIGJvb2wgKmFsbF9mcm96ZW4sCi0JCQkJCQkJICAgVHJhbnNhY3Rpb25JZCAqdmlz aWJpbGl0eV9jdXRvZmZfeGlkKQorCQkJCQkJCSAgIFRyYW5zYWN0aW9uSWQgKnZpc2liaWxpdHlf Y3V0b2ZmX3hpZCwKKwkJCQkJCQkgICBPZmZzZXROdW1iZXIgKmxvZ2dpbmdfb2ZmbnVtKQogewog CVBhZ2UJCXBhZ2UgPSBCdWZmZXJHZXRQYWdlKGJ1Zik7CiAJQmxvY2tOdW1iZXIgYmxvY2tubyA9 IEJ1ZmZlckdldEJsb2NrTnVtYmVyKGJ1Zik7CkBAIC0zNjU1LDcgKzM2NzIsNyBAQCBoZWFwX3Bh Z2Vfd291bGRfYmVfYWxsX3Zpc2libGUoTFZSZWxTdGF0ZSAqdmFjcmVsLCBCdWZmZXIgYnVmLAog CQkgKiBTZXQgdGhlIG9mZnNldCBudW1iZXIgc28gdGhhdCB3ZSBjYW4gZGlzcGxheSBpdCBhbG9u ZyB3aXRoIGFueQogCQkgKiBlcnJvciB0aGF0IG9jY3VycmVkIHdoaWxlIHByb2Nlc3NpbmcgdGhp cyB0dXBsZS4KIAkJICovCi0JCXZhY3JlbC0+b2ZmbnVtID0gb2ZmbnVtOworCQkqbG9nZ2luZ19v ZmZudW0gPSBvZmZudW07CiAJCWl0ZW1pZCA9IFBhZ2VHZXRJdGVtSWQocGFnZSwgb2ZmbnVtKTsK IAogCQkvKiBVbnVzZWQgb3IgcmVkaXJlY3QgbGluZSBwb2ludGVycyBhcmUgb2Ygbm8gaW50ZXJl c3QgKi8KQEAgLTM2ODUsOSArMzcwMiw5IEBAIGhlYXBfcGFnZV93b3VsZF9iZV9hbGxfdmlzaWJs ZShMVlJlbFN0YXRlICp2YWNyZWwsIEJ1ZmZlciBidWYsCiAKIAkJdHVwbGUudF9kYXRhID0gKEhl YXBUdXBsZUhlYWRlcikgUGFnZUdldEl0ZW0ocGFnZSwgaXRlbWlkKTsKIAkJdHVwbGUudF9sZW4g PSBJdGVtSWRHZXRMZW5ndGgoaXRlbWlkKTsKLQkJdHVwbGUudF90YWJsZU9pZCA9IFJlbGF0aW9u R2V0UmVsaWQodmFjcmVsLT5yZWwpOworCQl0dXBsZS50X3RhYmxlT2lkID0gUmVsYXRpb25HZXRS ZWxpZChyZWwpOwogCi0JCXN3aXRjaCAoSGVhcFR1cGxlU2F0aXNmaWVzVmFjdXVtKCZ0dXBsZSwg dmFjcmVsLT5jdXRvZmZzLk9sZGVzdFhtaW4sCisJCXN3aXRjaCAoSGVhcFR1cGxlU2F0aXNmaWVz VmFjdXVtKCZ0dXBsZSwgT2xkZXN0WG1pbiwKIAkJCQkJCQkJCQkgYnVmKSkKIAkJewogCQkJY2Fz ZSBIRUFQVFVQTEVfTElWRToKQEAgLTM3MDgsNyArMzcyNSw3IEBAIGhlYXBfcGFnZV93b3VsZF9i ZV9hbGxfdmlzaWJsZShMVlJlbFN0YXRlICp2YWNyZWwsIEJ1ZmZlciBidWYsCiAJCQkJCSAqLwog CQkJCQl4bWluID0gSGVhcFR1cGxlSGVhZGVyR2V0WG1pbih0dXBsZS50X2RhdGEpOwogCQkJCQlp ZiAoIVRyYW5zYWN0aW9uSWRQcmVjZWRlcyh4bWluLAotCQkJCQkJCQkJCQkgICB2YWNyZWwtPmN1 dG9mZnMuT2xkZXN0WG1pbikpCisJCQkJCQkJCQkJCSAgIE9sZGVzdFhtaW4pKQogCQkJCQl7CiAJ CQkJCQlhbGxfdmlzaWJsZSA9IGZhbHNlOwogCQkJCQkJKmFsbF9mcm96ZW4gPSBmYWxzZTsKQEAg LTM3NDMsNyArMzc2MCw3IEBAIGhlYXBfcGFnZV93b3VsZF9iZV9hbGxfdmlzaWJsZShMVlJlbFN0 YXRlICp2YWNyZWwsIEJ1ZmZlciBidWYsCiAJfQkJCQkJCQkvKiBzY2FuIGFsb25nIHBhZ2UgKi8K IAogCS8qIENsZWFyIHRoZSBvZmZzZXQgaW5mb3JtYXRpb24gb25jZSB3ZSBoYXZlIHByb2Nlc3Nl ZCB0aGUgZ2l2ZW4gcGFnZS4gKi8KLQl2YWNyZWwtPm9mZm51bSA9IEludmFsaWRPZmZzZXROdW1i ZXI7CisJKmxvZ2dpbmdfb2ZmbnVtID0gSW52YWxpZE9mZnNldE51bWJlcjsKIAogCXJldHVybiBh bGxfdmlzaWJsZTsKIH0KLS0gCjIuNDMuMAoK --000000000000cf342e063f082d09 Content-Type: text/x-patch; charset="US-ASCII"; name="v14-0015-Set-empty-pages-all-visible-in-XLOG_HEAP2_PRUNE_.patch" Content-Disposition: attachment; filename="v14-0015-Set-empty-pages-all-visible-in-XLOG_HEAP2_PRUNE_.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfonltnf14 RnJvbSBlZDYxZjg4ODEyZjMzY2I5NmNlYmVhYmM1YzljNDNhMTFjZGQ1YTNlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDE3IFNlcCAyMDI1IDE2OjA0OjE4IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTQgMTUvMjRdIFNldCBlbXB0eSBwYWdlcyBhbGwtdmlzaWJsZSBpbgogWExPR19IRUFQ Ml9QUlVORV9WQUNVVU1fU0NBTiByZWNvcmQKCkFzIHBhcnQgb2YgYSBwcm9qZWN0IHRvIGVsaW1p bmF0ZSBYTE9HX0hFQVAyX1ZJU0lCTEUgcmVjb3JkcywgZWxpbWluYXRlCnRoZWlyIHVzYWdlIGlu IHBoYXNlIEkgdmFjdXVtIG9mIGVtcHR5IHBhZ2VzLgotLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9o ZWFwL3ZhY3V1bWxhenkuYyB8IDU1ICsrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0KIDEgZmls ZSBjaGFuZ2VkLCAzNCBpbnNlcnRpb25zKCspLCAyMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgYi9zcmMvYmFja2VuZC9hY2Nl c3MvaGVhcC92YWN1dW1sYXp5LmMKaW5kZXggYjZjOTczY2QxMTEuLmUwMWZjNWJiNTAyIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKKysrIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCkBAIC0xODgyLDExICsxODgyLDIxIEBAIGxh enlfc2Nhbl9uZXdfb3JfZW1wdHkoTFZSZWxTdGF0ZSAqdmFjcmVsLCBCdWZmZXIgYnVmLCBCbG9j a051bWJlciBibGtubywKIAkJICovCiAJCWlmICghUGFnZUlzQWxsVmlzaWJsZShwYWdlKSkKIAkJ eworCQkJYm9vbAkJc2V0X3BkX2FsbF92aXMgPSB0cnVlOworCisJCQkvKiBMb2NrIHZtYnVmZmVy IGJlZm9yZSBlbnRlcmluZyBjcml0aWNhbCBzZWN0aW9uICovCisJCQlMb2NrQnVmZmVyKHZtYnVm ZmVyLCBCVUZGRVJfTE9DS19FWENMVVNJVkUpOworCiAJCQlTVEFSVF9DUklUX1NFQ1RJT04oKTsK IAogCQkJUGFnZVNldEFsbFZpc2libGUocGFnZSk7CiAJCQlNYXJrQnVmZmVyRGlydHkoYnVmKTsK IAorCQkJdmlzaWJpbGl0eW1hcF9zZXRfdm1iaXRzKHZhY3JlbC0+cmVsLCBibGtubywKKwkJCQkJ CQkJCSB2bWJ1ZmZlciwKKwkJCQkJCQkJCSBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxFIHwKKwkJ CQkJCQkJCSBWSVNJQklMSVRZTUFQX0FMTF9GUk9aRU4pOworCiAJCQlpZiAoUmVsYXRpb25OZWVk c1dBTCh2YWNyZWwtPnJlbCkpCiAJCQl7CiAJCQkJLyoKQEAgLTE4OTcsMzQgKzE5MDcsMzcgQEAg bGF6eV9zY2FuX25ld19vcl9lbXB0eShMVlJlbFN0YXRlICp2YWNyZWwsIEJ1ZmZlciBidWYsIEJs b2NrTnVtYmVyIGJsa25vLAogCQkJCSAqIGFsbC12aXNpYmxlIGFuZCBmaW5kIHRoYXQgdGhlIHBh Z2UgaXNuJ3QgaW5pdGlhbGl6ZWQsIHdoaWNoCiAJCQkJICogd2lsbCBjYXVzZSBhIFBBTklDLiBU byBwcmV2ZW50IHRoYXQsIGNoZWNrIHdoZXRoZXIgdGhlIHBhZ2UKIAkJCQkgKiBoYXMgYmVlbiBw cmV2aW91c2x5IFdBTC1sb2dnZWQsIGFuZCBpZiBub3QsIGRvIHRoYXQgbm93LgotCQkJCSAqCi0J CQkJICogT3RoZXJ3aXNlLCBqdXN0IGVtaXQgV0FMIGZvciBzZXR0aW5nIFBEX0FMTF9WSVNJQkxF IG9uIHRoZQotCQkJCSAqIGhlYXAgcGFnZS4gRG9pbmcgdGhpcyBpbiBhIHNlcGFyYXRlIHJlY29y ZCBmcm9tIHNldHRpbmcgdGhlCi0JCQkJICogVk0gYWxsb3dzIHVzIHRvIG9taXQgdGhlIGhlYXAg cGFnZSBmcm9tIHRoZSBWTSBXQUwgY2hhaW4uCiAJCQkJICovCiAJCQkJaWYgKFBhZ2VHZXRMU04o cGFnZSkgPT0gSW52YWxpZFhMb2dSZWNQdHIpCisJCQkJewogCQkJCQlsb2dfbmV3cGFnZV9idWZm ZXIoYnVmLCB0cnVlKTsKLQkJCQllbHNlCi0JCQkJCWxvZ19oZWFwX3BydW5lX2FuZF9mcmVlemUo dmFjcmVsLT5yZWwsIGJ1ZiwKLQkJCQkJCQkJCQkJICBJbnZhbGlkQnVmZmVyLAotCQkJCQkJCQkJ CQkgIDAsCi0JCQkJCQkJCQkJCSAgSW52YWxpZFRyYW5zYWN0aW9uSWQsIC8qIGNvbmZsaWN0IHhp ZCAqLwotCQkJCQkJCQkJCQkgIGZhbHNlLAkvKiBjbGVhbnVwIGxvY2sgKi8KLQkJCQkJCQkJCQkJ ICB0cnVlLCAvKiBzZXRfcGRfYWxsX3ZpcyAqLwotCQkJCQkJCQkJCQkgIFBSVU5FX1ZBQ1VVTV9T Q0FOLAkvKiByZWFzb24gKi8KLQkJCQkJCQkJCQkJICBOVUxMLCAwLAotCQkJCQkJCQkJCQkgIE5V TEwsIDAsCi0JCQkJCQkJCQkJCSAgTlVMTCwgMCwKLQkJCQkJCQkJCQkJICBOVUxMLCAwKTsKKwkJ CQkJc2V0X3BkX2FsbF92aXMgPSBmYWxzZTsKKwkJCQl9CisKKwkJCQkvKgorCQkJCSAqIEVtaXQg V0FMIGZvciBzZXR0aW5nIFBEX0FMTF9WSVNJQkxFIG9uIHRoZSBoZWFwIHBhZ2UgYW5kCisJCQkJ ICogc2V0dGluZyB0aGUgVk0uIElmIHdlIGVtaXR0ZWQgYSBuZXcgcGFnZSByZWNvcmQgZm9yIHRo ZQorCQkJCSAqIHBhZ2UgYWJvdmUsIHNldHRpbmcgUERfQUxMX1ZJU0lCTEUgd2lsbCBhbHJlYWR5 IGhhdmUgYmVlbgorCQkJCSAqIGluY2x1ZGVkIGluIHRoYXQgcmVjb3JkLgorCQkJCSAqLworCQkJ CWxvZ19oZWFwX3BydW5lX2FuZF9mcmVlemUodmFjcmVsLT5yZWwsIGJ1ZiwKKwkJCQkJCQkJCQkg IHZtYnVmZmVyLAorCQkJCQkJCQkJCSAgVklTSUJJTElUWU1BUF9BTExfVklTSUJMRSB8CisJCQkJ CQkJCQkJICBWSVNJQklMSVRZTUFQX0FMTF9GUk9aRU4sCisJCQkJCQkJCQkJICBJbnZhbGlkVHJh bnNhY3Rpb25JZCwgLyogY29uZmxpY3QgeGlkICovCisJCQkJCQkJCQkJICBmYWxzZSwJLyogY2xl YW51cCBsb2NrICovCisJCQkJCQkJCQkJICBzZXRfcGRfYWxsX3ZpcywKKwkJCQkJCQkJCQkgIFBS VU5FX1ZBQ1VVTV9TQ0FOLAkvKiByZWFzb24gKi8KKwkJCQkJCQkJCQkgIE5VTEwsIDAsCisJCQkJ CQkJCQkJICBOVUxMLCAwLAorCQkJCQkJCQkJCSAgTlVMTCwgMCwKKwkJCQkJCQkJCQkgIE5VTEws IDApOwogCQkJfQogCi0JCQl2aXNpYmlsaXR5bWFwX3NldCh2YWNyZWwtPnJlbCwgYmxrbm8sCi0J CQkJCQkJICBJbnZhbGlkWExvZ1JlY1B0ciwKLQkJCQkJCQkgIHZtYnVmZmVyLCBJbnZhbGlkVHJh bnNhY3Rpb25JZCwKLQkJCQkJCQkgIFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEUgfAotCQkJCQkJ CSAgVklTSUJJTElUWU1BUF9BTExfRlJPWkVOKTsKIAkJCUVORF9DUklUX1NFQ1RJT04oKTsKIAor CQkJTG9ja0J1ZmZlcih2bWJ1ZmZlciwgQlVGRkVSX0xPQ0tfVU5MT0NLKTsKKwogCQkJLyogQ291 bnQgdGhlIG5ld2x5IGFsbC1mcm96ZW4gcGFnZXMgZm9yIGxvZ2dpbmcgKi8KIAkJCXZhY3JlbC0+ dm1fbmV3X3Zpc2libGVfcGFnZXMrKzsKIAkJCXZhY3JlbC0+dm1fbmV3X3Zpc2libGVfZnJvemVu X3BhZ2VzKys7Ci0tIAoyLjQzLjAKCg== --000000000000cf342e063f082d09 Content-Type: text/x-patch; charset="US-ASCII"; name="v14-0016-Set-VM-in-heap_page_prune_and_freeze.patch" Content-Disposition: attachment; filename="v14-0016-Set-VM-in-heap_page_prune_and_freeze.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfonltnh15 RnJvbSA2ZDExYTdiZjc3NzA2YmM0ZGRiZGIxNTZmMjVmOWM1M2Q0YjFlNjE1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUdWUsIDE2IFNlcCAyMDI1IDE1OjQ2OjQwIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTQgMTYvMjRdIFNldCBWTSBpbiBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZQoKVGhl IGRldGVybWluYXRpb24gYXMgdG8gd2hldGhlciBvciBub3QgdGhlIHBhZ2UgY2FuIGJlIHNldAph bGwtdmlzaWJsZS9hbGwtZnJvemVuIGhhcyBhbHJlYWR5IGJlZW4gZG9uZSBieSB0aGUgZW5kIG9m CmhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKCkuIFZhY3V1bSB3YWl0ZWQgdW50aWwgaXQgcmV0 dXJucyB0bwpsYXp5X3NjYW5fcHJ1bmUoKSB0byBhY3R1YWxseSBzZXQgdGhlIFZNLCB0aG91Z2gu CgpUaGlzIGNvbW1pdCBtb3ZlcyBzZXR0aW5nIHRoZSBWTSBpbnRvIGhlYXBfcGFnZV9wcnVuZV9h bmRfZnJlZXplKCkuClRoZXJlIGFyZSBzdGlsbCB0d28gc2VwYXJhdGUgV0FMIHJlY29yZHMgLS0g b25lIGZvciB0aGUgY2hhbmdlcyB0byB0aGUKaGVhcCBwYWdlIGFuZCBvbmUgZm9yIHRoZSBjaGFu Z2VzIHRvIHRoZSBWTS4gQnV0LCB0aGlzIGlzIGFuIGluY3JlbWVudGFsCnN0ZXAgdG93YXJkIGxv Z2dpbmcgc2V0dGluZyB0aGUgVk0gaW4gdGhlIHNhbWUgV0FMIHJlY29yZCBhcyBwcnVuaW5nIGFu ZApmcmVlemluZy4KCk5vdGUgdGhhdCB0aGlzIGlzIG5vdCB1c2VkIGJ5IG9uLWFjY2VzcyBwcnVu aW5nLgotLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jICB8IDIyMSArKysr KysrKysrKysrKysrKysrKysrKy0tLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxh enkuYyB8IDE0NiArKy0tLS0tLS0tLS0tLS0tLS0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0u aCAgICAgICAgICB8ICAyNCArLS0KIDMgZmlsZXMgY2hhbmdlZCwgMjIxIGluc2VydGlvbnMoKyks IDE3MCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9w cnVuZWhlYXAuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jCmluZGV4IDll MDBmYmYzY2QxLi5lM2Y5OTY3ZTI2YyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hl YXAvcHJ1bmVoZWFwLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMK QEAgLTE5LDYgKzE5LDcgQEAKICNpbmNsdWRlICJhY2Nlc3MvaHR1cF9kZXRhaWxzLmgiCiAjaW5j bHVkZSAiYWNjZXNzL211bHRpeGFjdC5oIgogI2luY2x1ZGUgImFjY2Vzcy90cmFuc2FtLmgiCisj aW5jbHVkZSAiYWNjZXNzL3Zpc2liaWxpdHltYXAuaCIKICNpbmNsdWRlICJhY2Nlc3MveGxvZy5o IgogI2luY2x1ZGUgImFjY2Vzcy92aXNpYmlsaXR5bWFwZGVmcy5oIgogI2luY2x1ZGUgImFjY2Vz cy94bG9naW5zZXJ0LmgiCkBAIC0yNTcsNyArMjU4LDkgQEAgaGVhcF9wYWdlX3BydW5lX29wdChS ZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlcikKIAkJCSAqIG5vdCB0aGUgcmVsYXRpb24g aGFzIGluZGV4ZXMsIHNpbmNlIHdlIGNhbm5vdCBzYWZlbHkgZGV0ZXJtaW5lCiAJCQkgKiB0aGF0 IGR1cmluZyBvbi1hY2Nlc3MgcHJ1bmluZyB3aXRoIHRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9u LgogCQkJICovCi0JCQloZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZShyZWxhdGlvbiwgYnVmZmVy LCBQUlVORV9PTl9BQ0NFU1MsIDAsIE5VTEwsCisJCQloZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6 ZShyZWxhdGlvbiwgYnVmZmVyLAorCQkJCQkJCQkJICAgSW52YWxpZEJ1ZmZlciwgZmFsc2UsCisJ CQkJCQkJCQkgICBQUlVORV9PTl9BQ0NFU1MsIDAsIE5VTEwsCiAJCQkJCQkJCQkgICB2aXN0ZXN0 LCAmcHJlc3VsdCwgJmR1bW15X29mZl9sb2MsIE5VTEwsIE5VTEwpOwogCiAJCQkvKgpAQCAtNDIz LDE2ICs0MjYsMTE1IEBAIGhlYXBfcGFnZV93aWxsX2ZyZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwg QnVmZmVyIGJ1ZmZlciwKIAlyZXR1cm4gZG9fZnJlZXplOwogfQogCisvKgorICogRGV0ZXJtaW5l IHdoZXRoZXIgdG8gc2V0IHRoZSB2aXNpYmlsaXR5IG1hcCBiaXRzIGJhc2VkIG9uIGluZm9ybWF0 aW9uIGZyb20KKyAqIHRoZSBQcnVuZVN0YXRlIGFuZCBibGtfa25vd25fYXYsIHdoaWNoIHNvbWUg Y2FsbGVycyB3aWxsIHByb3ZpZGUgYWZ0ZXIKKyAqIHByZXZpb3VzbHkgZXhhbWluaW5nIHRoaXMg aGVhcCBwYWdlJ3MgVk0gYml0cyAoZS5nLiB2YWN1dW0gZnJvbSB0aGUgbGFzdAorICogaGVhcF92 YWNfc2Nhbl9uZXh0X2Jsb2NrKCkgY2FsbCkuCisgKgorICogVGhpcyBzaG91bGQgYmUgY2FsbGVk IG9ubHkgYWZ0ZXIgZG9fZnJlZXplIGhhcyBiZWVuIGRlY2lkZWQgKGFuZCBkb19wcnVuZQorICog aGFzIGJlZW4gc2V0KSwgYXMgdGhlc2UgZmFjdG9yIGludG8gb3VyIGhldXJpc3RpYy1iYXNlZCBk ZWNpc2lvbi4KKyAqCisgKiBSZXR1cm5zIHRydWUgaWYgdGhlIGNhbGxlciBzaG91bGQgc2V0IG9u ZSBvciBib3RoIG9mIHRoZSBWTSBiaXRzIGFuZCBmYWxzZQorICogb3RoZXJ3aXNlLgorICovCitz dGF0aWMgYm9vbAoraGVhcF9wYWdlX3dpbGxfc2V0X3ZpcyhSZWxhdGlvbiByZWxhdGlvbiwKKwkJ CQkJICAgQmxvY2tOdW1iZXIgaGVhcF9ibGssCisJCQkJCSAgIEJ1ZmZlciBoZWFwX2J1ZiwKKwkJ CQkJICAgQnVmZmVyIHZtYnVmZmVyLAorCQkJCQkgICBib29sIGJsa19rbm93bl9hdiwKKwkJCQkJ ICAgUHJ1bmVTdGF0ZSAqcHJzdGF0ZSwKKwkJCQkJICAgdWludDggKnZtZmxhZ3MsCisJCQkJCSAg IGJvb2wgKmRvX3NldF9wZF92aXMpCit7CisJUGFnZQkJaGVhcF9wYWdlID0gQnVmZmVyR2V0UGFn ZShoZWFwX2J1Zik7CisJYm9vbAkJZG9fc2V0X3ZtID0gZmFsc2U7CisKKwlpZiAocHJzdGF0ZS0+ YWxsX3Zpc2libGUgJiYgIVBhZ2VJc0FsbFZpc2libGUoaGVhcF9wYWdlKSkKKwkJKmRvX3NldF9w ZF92aXMgPSB0cnVlOworCisJaWYgKChwcnN0YXRlLT5hbGxfdmlzaWJsZSAmJiAhYmxrX2tub3du X2F2KSB8fAorCQkocHJzdGF0ZS0+YWxsX2Zyb3plbiAmJiAhVk1fQUxMX0ZST1pFTihyZWxhdGlv biwgaGVhcF9ibGssICZ2bWJ1ZmZlcikpKQorCXsKKwkJKnZtZmxhZ3MgPSBWSVNJQklMSVRZTUFQ X0FMTF9WSVNJQkxFOworCQlpZiAocHJzdGF0ZS0+YWxsX2Zyb3plbikKKwkJCSp2bWZsYWdzIHw9 IFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTjsKKworCQlkb19zZXRfdm0gPSB0cnVlOworCX0KKwor CS8qCisJICogTm93IGhhbmRsZSB0d28gcG90ZW50aWFsIGNvcnJ1cHRpb24gY2FzZXM6CisJICoK KwkgKiBUaGVzZSBkbyBub3QgbmVlZCB0byBoYXBwZW4gaW4gYSBjcml0aWNhbCBzZWN0aW9uIGFu ZCBhcmUgbm90CisJICogV0FMLWxvZ2dlZC4KKwkgKgorCSAqIEFzIG9mIFBvc3RncmVTUUwgOS4y LCB0aGUgdmlzaWJpbGl0eSBtYXAgYml0IHNob3VsZCBuZXZlciBiZSBzZXQgaWYgdGhlCisJICog cGFnZS1sZXZlbCBiaXQgaXMgY2xlYXIuICBIb3dldmVyLCBpdCdzIHBvc3NpYmxlIHRoYXQgaW4g dmFjdXVtIHRoZSBiaXQKKwkgKiBnb3QgY2xlYXJlZCBhZnRlciBoZWFwX3ZhY19zY2FuX25leHRf YmxvY2soKSB3YXMgY2FsbGVkLCBzbyB3ZSBtdXN0CisJICogcmVjaGVjayB3aXRoIGJ1ZmZlciBs b2NrIGJlZm9yZSBjb25jbHVkaW5nIHRoYXQgdGhlIFZNIGlzIGNvcnJ1cHQuCisJICovCisJZWxz ZSBpZiAoYmxrX2tub3duX2F2ICYmICFQYWdlSXNBbGxWaXNpYmxlKGhlYXBfcGFnZSkgJiYKKwkJ CSB2aXNpYmlsaXR5bWFwX2dldF9zdGF0dXMocmVsYXRpb24sIGhlYXBfYmxrLCAmdm1idWZmZXIp ICE9IDApCisJeworCQllcmVwb3J0KFdBUk5JTkcsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRB X0NPUlJVUFRFRCksCisJCQkJIGVycm1zZygicGFnZSBpcyBub3QgbWFya2VkIGFsbC12aXNpYmxl IGJ1dCB2aXNpYmlsaXR5IG1hcCBiaXQgaXMgc2V0IGluIHJlbGF0aW9uIFwiJXNcIiBwYWdlICV1 IiwKKwkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbGF0aW9uKSwgaGVhcF9ibGspKSk7 CisKKwkJdmlzaWJpbGl0eW1hcF9jbGVhcihyZWxhdGlvbiwgaGVhcF9ibGssIHZtYnVmZmVyLAor CQkJCQkJCVZJU0lCSUxJVFlNQVBfVkFMSURfQklUUyk7CisJfQorCisJLyoKKwkgKiBJdCdzIHBv c3NpYmxlIGZvciB0aGUgdmFsdWUgcmV0dXJuZWQgYnkKKwkgKiBHZXRPbGRlc3ROb25SZW1vdmFi bGVUcmFuc2FjdGlvbklkKCkgdG8gbW92ZSBiYWNrd2FyZHMsIHNvIGl0J3Mgbm90CisJICogd3Jv bmcgZm9yIHVzIHRvIHNlZSB0dXBsZXMgdGhhdCBhcHBlYXIgdG8gbm90IGJlIHZpc2libGUgdG8g ZXZlcnlvbmUKKwkgKiB5ZXQsIHdoaWxlIFBEX0FMTF9WSVNJQkxFIGlzIGFscmVhZHkgc2V0LiBU aGUgcmVhbCBzYWZlIHhtaW4gdmFsdWUKKwkgKiBuZXZlciBtb3ZlcyBiYWNrd2FyZHMsIGJ1dCBH ZXRPbGRlc3ROb25SZW1vdmFibGVUcmFuc2FjdGlvbklkKCkgaXMKKwkgKiBjb25zZXJ2YXRpdmUg YW5kIHNvbWV0aW1lcyByZXR1cm5zIGEgdmFsdWUgdGhhdCdzIHVubmVjZXNzYXJpbHkgc21hbGws CisJICogc28gaWYgd2Ugc2VlIHRoYXQgY29udHJhZGljdGlvbiBpdCBqdXN0IG1lYW5zIHRoYXQg dGhlIHR1cGxlcyB0aGF0IHdlCisJICogdGhpbmsgYXJlIG5vdCB2aXNpYmxlIHRvIGV2ZXJ5b25l IHlldCBhY3R1YWxseSBhcmUsIGFuZCB0aGUKKwkgKiBQRF9BTExfVklTSUJMRSBmbGFnIGlzIGNv cnJlY3QuCisJICoKKwkgKiBUaGVyZSBzaG91bGQgbmV2ZXIgYmUgTFBfREVBRCBpdGVtcyBvbiBh IHBhZ2Ugd2l0aCBQRF9BTExfVklTSUJMRSBzZXQsCisJICogaG93ZXZlci4KKwkgKi8KKwllbHNl IGlmIChwcnN0YXRlLT5scGRlYWRfaXRlbXMgPiAwICYmIFBhZ2VJc0FsbFZpc2libGUoaGVhcF9w YWdlKSkKKwl7CisJCWVyZXBvcnQoV0FSTklORywKKwkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFf Q09SUlVQVEVEKSwKKwkJCQkgZXJybXNnKCJwYWdlIGNvbnRhaW5pbmcgTFBfREVBRCBpdGVtcyBp cyBtYXJrZWQgYXMgYWxsLXZpc2libGUgaW4gcmVsYXRpb24gXCIlc1wiIHBhZ2UgJXUiLAorCQkJ CQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsYXRpb24pLCBoZWFwX2JsaykpKTsKKworCQlQ YWdlQ2xlYXJBbGxWaXNpYmxlKGhlYXBfcGFnZSk7CisJCU1hcmtCdWZmZXJEaXJ0eShoZWFwX2J1 Zik7CisJCXZpc2liaWxpdHltYXBfY2xlYXIocmVsYXRpb24sIGhlYXBfYmxrLCB2bWJ1ZmZlciwK KwkJCQkJCQlWSVNJQklMSVRZTUFQX1ZBTElEX0JJVFMpOworCX0KKworCS8qIFdlIHNob3VsZCBv bmx5IHNldCB0aGUgVk0gaWYgUERfQUxMX1ZJU0lCTEUgaXMgc2V0IG9yIHdpbGwgYmUgKi8KKwlB c3NlcnQoIWRvX3NldF92bSB8fCBQYWdlSXNBbGxWaXNpYmxlKGhlYXBfcGFnZSkgfHwgKmRvX3Nl dF9wZF92aXMpOworCisJcmV0dXJuIGRvX3NldF92bTsKK30KIAogLyoKICAqIFBydW5lIGFuZCBy ZXBhaXIgZnJhZ21lbnRhdGlvbiBhbmQgcG90ZW50aWFsbHkgZnJlZXplIHR1cGxlcyBvbiB0aGUK LSAqIHNwZWNpZmllZCBwYWdlLgorICogc3BlY2lmaWVkIHBhZ2UuIElmIHRoZSBwYWdlJ3Mgdmlz aWJpbGl0eSBzdGF0dXMgaGFzIGNoYW5nZWQsIHVwZGF0ZSBpdCBpbgorICogdGhlIFZNLgogICoK ICAqIENhbGxlciBtdXN0IGhhdmUgcGluIGFuZCBidWZmZXIgY2xlYW51cCBsb2NrIG9uIHRoZSBw YWdlLiAgTm90ZSB0aGF0IHdlCiAgKiBkb24ndCB1cGRhdGUgdGhlIEZTTSBpbmZvcm1hdGlvbiBm b3IgcGFnZSBvbiBjYWxsZXIncyBiZWhhbGYuICBDYWxsZXIgbWlnaHQKICAqIGFsc28gbmVlZCB0 byBhY2NvdW50IGZvciBhIHJlZHVjdGlvbiBpbiB0aGUgbGVuZ3RoIG9mIHRoZSBsaW5lIHBvaW50 ZXIKICAqIGFycmF5IGZvbGxvd2luZyBhcnJheSB0cnVuY2F0aW9uIGJ5IHVzLgogICoKKyAqIHZt YnVmZmVyIGlzIHRoZSBidWZmZXIgdGhhdCBtdXN0IGFscmVhZHkgY29udGFpbiBjb250YWluIHRo ZSByZXF1aXJlZCBibG9jaworICogb2YgdGhlIHZpc2liaWxpdHkgbWFwIGlmIHdlIGFyZSB0byB1 cGRhdGUgaXQuIGJsa19rbm93bl9hdiBpcyB0aGUKKyAqIHZpc2liaWxpdHkgc3RhdHVzIG9mIHRo ZSBoZWFwIGJsb2NrIGFzIG9mIHRoZSBsYXN0IGNhbGwgdG8KKyAqIGZpbmRfbmV4dF91bnNraXBw YWJsZV9ibG9jaygpLgorICoKICAqIHJlYXNvbiBpbmRpY2F0ZXMgd2h5IHRoZSBwcnVuaW5nIGlz IHBlcmZvcm1lZC4gIEl0IGlzIGluY2x1ZGVkIGluIHRoZSBXQUwKICAqIHJlY29yZCBmb3IgZGVi dWdnaW5nIGFuZCBhbmFseXNpcyBwdXJwb3NlcywgYnV0IG90aGVyd2lzZSBoYXMgbm8gZWZmZWN0 LgogICoKQEAgLTQ0MywxNSArNTQ1LDIwIEBAIGhlYXBfcGFnZV93aWxsX2ZyZWV6ZShSZWxhdGlv biByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKICAqICAgRlJFRVpFIGluZGljYXRlcyB0aGF0IHdl IHdpbGwgYWxzbyBmcmVlemUgdHVwbGVzLCBhbmQgd2lsbCByZXR1cm4KICAqICAgJ2FsbF92aXNp YmxlJywgJ2FsbF9mcm96ZW4nIGZsYWdzIHRvIHRoZSBjYWxsZXIuCiAgKgotICogSWYgdGhlIEhF QVBfUFJVTkVfRlJFRVpFIG9wdGlvbiBpcyBzZXQsIHdlIHdpbGwgZnJlZXplIHR1cGxlcyBpZiBp dCdzCisgKiAgIFVQREFURV9WSVMgaW5kaWNhdGVzIHRoYXQgd2Ugd2lsbCBzZXQgdGhlIHBhZ2Un cyBzdGF0dXMgaW4gdGhlIFZNLgorICoKKyAqIElmIHRoZSBIRUFQX1BSVU5FX0ZSRUVaRSBvcHRp b24gaXMgc2V0LCB3ZSB3aWxsIGFsc28gZnJlZXplIHR1cGxlcyBpZiBpdCdzCiAgKiByZXF1aXJl ZCBpbiBvcmRlciB0byBhZHZhbmNlIHJlbGZyb3plbnhpZCAvIHJlbG1pbm14aWQsIG9yIGlmIGl0 J3MKICAqIGNvbnNpZGVyZWQgYWR2YW50YWdlb3VzIGZvciBvdmVyYWxsIHN5c3RlbSBwZXJmb3Jt YW5jZSB0byBkbyBzbyBub3cuICBUaGUKICAqICdjdXRvZmZzJywgJ3ByZXN1bHQnLCAnbmV3X3Jl bGZyb3plbl94aWQnIGFuZCAnbmV3X3JlbG1pbl9teGlkJyBhcmd1bWVudHMKLSAqIGFyZSByZXF1 aXJlZCB3aGVuIGZyZWV6aW5nLiAgV2hlbiBIRUFQX1BSVU5FX0ZSRUVaRSBvcHRpb24gaXMgc2V0 LCB3ZSBhbHNvCi0gKiBzZXQgcHJlc3VsdC0+YWxsX3Zpc2libGUgYW5kIHByZXN1bHQtPmFsbF9m cm96ZW4gb24gZXhpdCwgdG8gaW5kaWNhdGUgaWYKLSAqIHRoZSBWTSBiaXRzIGNhbiBiZSBzZXQu ICBUaGV5IGFyZSBhbHdheXMgc2V0IHRvIGZhbHNlIHdoZW4gdGhlCi0gKiBIRUFQX1BSVU5FX0ZS RUVaRSBvcHRpb24gaXMgbm90IHNldCwgYmVjYXVzZSBhdCB0aGUgbW9tZW50IG9ubHkgY2FsbGVy cwotICogdGhhdCBhbHNvIGZyZWV6ZSBuZWVkIHRoYXQgaW5mb3JtYXRpb24uCisgKiBhcmUgcmVx dWlyZWQgd2hlbiBmcmVlemluZy4KKyAqCisgKiBJZiBIRUFQX1BBR0VfUFJVTkVfVVBEQVRFX1ZJ UyBpcyBzZXQgYW5kIHRoZSB2aXNpYmlsaXR5IHN0YXR1cyBvZiB0aGUgcGFnZQorICogaGFzIGNo YW5nZWQsIHdlIHdpbGwgdXBkYXRlIHRoZSBWTSBhdCB0aGUgc2FtZSB0aW1lIGFzIHBydW5pbmcg YW5kIGZyZWV6aW5nCisgKiB0aGUgaGVhcCBwYWdlLiBXZSB3aWxsIGFsc28gdXBkYXRlIHByZXN1 bHQtPm9sZF92bWJpdHMgYW5kCisgKiBwcmVzdWx0LT5uZXdfdm1iaXRzIHdpdGggdGhlIHN0YXRl IG9mIHRoZSBWTSBiZWZvcmUgYW5kIGFmdGVyIHVwZGF0aW5nIGl0CisgKiBmb3IgdGhlIGNhbGxl ciB0byB1c2UgaW4gYm9va2tlZXBpbmcuCisgKgogICoKICAqIGN1dG9mZnMgY29udGFpbnMgdGhl IGZyZWV6ZSBjdXRvZmZzLCBlc3RhYmxpc2hlZCBieSBWQUNVVU0gYXQgdGhlIGJlZ2lubmluZwog ICogb2YgdmFjdXVtaW5nIHRoZSByZWxhdGlvbi4gIFJlcXVpcmVkIGlmIEhFQVBfUFJVTkVfRlJF RVpFIG9wdGlvbiBpcyBzZXQuCkBAIC00NzgsNiArNTg1LDcgQEAgaGVhcF9wYWdlX3dpbGxfZnJl ZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogICovCiB2b2lkCiBoZWFwX3Bh Z2VfcHJ1bmVfYW5kX2ZyZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKKwkJ CQkJCSAgIEJ1ZmZlciB2bWJ1ZmZlciwgYm9vbCBibGtfa25vd25fYXYsCiAJCQkJCQkgICBQcnVu ZVJlYXNvbiByZWFzb24sCiAJCQkJCQkgICBpbnQgb3B0aW9ucywKIAkJCQkJCSAgIGNvbnN0IHN0 cnVjdCBWYWN1dW1DdXRvZmZzICpjdXRvZmZzLApAQCAtNDk2LDEwICs2MDQsMTMgQEAgaGVhcF9w YWdlX3BydW5lX2FuZF9mcmVlemUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJ Ym9vbAkJZG9fZnJlZXplOwogCWJvb2wJCWRvX3BydW5lOwogCWJvb2wJCWRvX2hpbnRfcHJ1bmU7 CisJYm9vbAkJZG9fc2V0X3ZtOwogCWJvb2wJCWRvX3NldF9wZF92aXM7CiAJYm9vbAkJZGlkX3R1 cGxlX2hpbnRfZnBpOwogCWludDY0CQlmcGlfYmVmb3JlID0gcGdXYWxVc2FnZS53YWxfZnBpOwog CVRyYW5zYWN0aW9uSWQgZnJ6X2NvbmZsaWN0X2hvcml6b24gPSBJbnZhbGlkVHJhbnNhY3Rpb25J ZDsKKwl1aW50OAkJbmV3X3ZtYml0cyA9IDA7CisJdWludDgJCW9sZF92bWJpdHMgPSAwOwogCiAJ LyogQ29weSBwYXJhbWV0ZXJzIHRvIHByc3RhdGUgKi8KIAlwcnN0YXRlLnZpc3Rlc3QgPSB2aXN0 ZXN0OwpAQCAtODI4LDE5ICs5MzksMjcgQEAgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoUmVs YXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJQXNzZXJ0KCFwcnN0YXRlLmFsbF9mcm96 ZW4gfHwgcHJzdGF0ZS5hbGxfdmlzaWJsZSk7CiAKIAkvKgotCSAqIFRob3VnaCBjYWxsZXJzIHNo b3VsZCBzZXQgdGhlIFZNIGlmIFBEX0FMTF9WSVNJQkxFIGlzIHNldCBoZXJlLCBpdCBpcwotCSAq IGFsbG93ZWQgZm9yIHRoZSBwYWdlLWxldmVsIGJpdCB0byBiZSBzZXQgYW5kIHRoZSBWTSB0byBi ZSBjbGVhci4KKwkgKiBEZXRlcm1pbmUgd2hldGhlciBvciBub3QgdG8gc2V0IHRoZSBwYWdlIGxl dmVsIFBEX0FMTF9WSVNJQkxFIGFuZCB0aGUKKwkgKiB2aXNpYmlsaXR5IG1hcCBiaXRzIGJhc2Vk IG9uIGluZm9ybWF0aW9uIGZyb20gdGhlIFZNIGFuZCBmcm9tCisJICogYWxsX3Zpc2libGUgYW5k IGFsbF9mcm96ZW4gdmFyaWFibGVzLgorCSAqCisJICogVGhvdWdoIGNhbGxlcnMgc2hvdWxkIHNl dCB0aGUgVk0gaWYgUERfQUxMX1ZJU0lCTEUgaXMgc2V0LCBpdCBpcworCSAqIGFsbG93ZWQgZm9y IHRoZSBwYWdlLWxldmVsIGJpdCB0byBiZSBzZXQgYW5kIHRoZSBWTSB0byBiZSBjbGVhci4gV2Ug bG9nCisJICogc2V0dGluZyBQRF9BTExfVklTSUJMRSBvbiB0aGUgaGVhcCBwYWdlIGluIGEKKwkg KiBYTE9HX0hFQVAyX1BSVU5FX1ZBQ1VVTV9TQ0FOIHJlY29yZCBhbmQgc2V0dGluZyB0aGUgVk0g Yml0cyBpbiBhIGxhdGVyCisJICogZW1pdHRlZCBYTE9HX0hFQVAyX1ZJU0lCTEUgcmVjb3JkLgor CSAqCiAJICogU2V0dGluZyBQRF9BTExfVklTSUJMRSB3aGVuIHdlIGFyZSBtYWtpbmcgdGhlIGNo YW5nZXMgdG8gdGhlIHBhZ2UgdGhhdAogCSAqIHJlbmRlciBpdCBhbGwtdmlzaWJsZSBhbGxvd3Mg dXMgdG8gb21pdCB0aGUgaGVhcCBwYWdlIGZyb20gdGhlIFdBTAogCSAqIGNoYWluIHdoZW4gbGF0 ZXIgdXBkYXRpbmcgdGhlIFZNIC0tIGV2ZW4gd2hlbiBjaGVja3N1bXMvd2FsX2xvZ19oaW50cwog CSAqIGFyZSBlbmFibGVkLgogCSAqLwogCWRvX3NldF9wZF92aXMgPSBmYWxzZTsKKwlkb19zZXRf dm0gPSBmYWxzZTsKIAlpZiAoKG9wdGlvbnMgJiBIRUFQX1BBR0VfUFJVTkVfVVBEQVRFX1ZJUykg IT0gMCkKLQl7Ci0JCWlmIChwcnN0YXRlLmFsbF92aXNpYmxlICYmICFQYWdlSXNBbGxWaXNpYmxl KHBhZ2UpKQotCQkJZG9fc2V0X3BkX3ZpcyA9IHRydWU7Ci0JfQorCQlkb19zZXRfdm0gPSBoZWFw X3BhZ2Vfd2lsbF9zZXRfdmlzKHJlbGF0aW9uLAorCQkJCQkJCQkJCSAgIGJsb2Nrbm8sIGJ1ZmZl ciwgdm1idWZmZXIsIGJsa19rbm93bl9hdiwKKwkJCQkJCQkJCQkgICAmcHJzdGF0ZSwgJm5ld192 bWJpdHMsICZkb19zZXRfcGRfdmlzKTsKIAogCS8qIEFueSBlcnJvciB3aGlsZSBhcHBseWluZyB0 aGUgY2hhbmdlcyBpcyBjcml0aWNhbCAqLwogCVNUQVJUX0NSSVRfU0VDVElPTigpOwpAQCAtOTI4 LDI4ICsxMDQ3LDcyIEBAIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0 aW9uLCBCdWZmZXIgYnVmZmVyLAogCiAJRU5EX0NSSVRfU0VDVElPTigpOwogCisJQXNzZXJ0KCFw cnN0YXRlLmFsbF92aXNpYmxlIHx8IChwcnN0YXRlLmxwZGVhZF9pdGVtcyA9PSAwKSk7CisKKwkv KgorCSAqIFZBQ1VVTSB3aWxsIGNhbGwgaGVhcF9wYWdlX3dvdWxkX2JlX2FsbF92aXNpYmxlKCkg ZHVyaW5nIHRoZSBzZWNvbmQKKwkgKiBwYXNzIG92ZXIgdGhlIGhlYXAgdG8gZGV0ZXJtaW5lIGFs bF92aXNpYmxlIGFuZCBhbGxfZnJvemVuIGZvciB0aGUgcGFnZQorCSAqIC0tIHRoaXMgaXMgYSBz cGVjaWFsaXplZCB2ZXJzaW9uIG9mIHRoYXQgbG9naWMuIE5vdyB0aGF0IHdlJ3ZlIGZpbmlzaGVk CisJICogcHJ1bmluZyBhbmQgZnJlZXppbmcsIG1ha2Ugc3VyZSB0aGF0IHdlJ3JlIGluIHRvdGFs IGFncmVlbWVudCB3aXRoCisJICogaGVhcF9wYWdlX3dvdWxkX2JlX2FsbF92aXNpYmxlKCkgdXNp bmcgYW4gYXNzZXJ0aW9uLgorCSAqLworI2lmZGVmIFVTRV9BU1NFUlRfQ0hFQ0tJTkcKKwlpZiAo cHJzdGF0ZS5hbGxfdmlzaWJsZSkKKwl7CisJCVRyYW5zYWN0aW9uSWQgZGVidWdfY3V0b2ZmOwor CQlib29sCQlkZWJ1Z19hbGxfZnJvemVuOworCisJCUFzc2VydChwcnN0YXRlLmxwZGVhZF9pdGVt cyA9PSAwKTsKKwkJQXNzZXJ0KHByc3RhdGUuY3V0b2Zmcyk7CisKKwkJaWYgKCFoZWFwX3BhZ2Vf aXNfYWxsX3Zpc2libGUocmVsYXRpb24sIGJ1ZmZlciwKKwkJCQkJCQkJCSAgcHJzdGF0ZS5jdXRv ZmZzLT5PbGRlc3RYbWluLAorCQkJCQkJCQkJICAmZGVidWdfYWxsX2Zyb3plbiwKKwkJCQkJCQkJ CSAgJmRlYnVnX2N1dG9mZiwgb2ZmX2xvYykpCisJCQlBc3NlcnQoZmFsc2UpOworCisJCUFzc2Vy dChwcnN0YXRlLmFsbF9mcm96ZW4gPT0gZGVidWdfYWxsX2Zyb3plbik7CisKKwkJQXNzZXJ0KCFU cmFuc2FjdGlvbklkSXNWYWxpZChkZWJ1Z19jdXRvZmYpIHx8CisJCQkgICBkZWJ1Z19jdXRvZmYg PT0gcHJzdGF0ZS52aXNpYmlsaXR5X2N1dG9mZl94aWQpOworCX0KKyNlbmRpZgorCisJLyogTm93 IHNldCB0aGUgVk0gKi8KKwlpZiAoZG9fc2V0X3ZtKQorCXsKKwkJVHJhbnNhY3Rpb25JZCB2bV9j b25mbGljdF9ob3Jpem9uOworCisJCUFzc2VydCgobmV3X3ZtYml0cyAmIFZJU0lCSUxJVFlNQVBf VkFMSURfQklUUykgIT0gMCk7CisKKwkJLyoKKwkJICogVGhlIGNvbmZsaWN0IGhvcml6b24gZm9y IHRoYXQgcmVjb3JkIG11c3QgYmUgdGhlIG5ld2VzdCB4bWluIG9uIHRoZQorCQkgKiBwYWdlLiAg SG93ZXZlciwgaWYgdGhlIHBhZ2UgaXMgY29tcGxldGVseSBmcm96ZW4sIHRoZXJlIGNhbiBiZSBu bworCQkgKiBjb25mbGljdCBhbmQgdGhlIHZtX2NvbmZsaWN0X2hvcml6b24gc2hvdWxkIHJlbWFp bgorCQkgKiBJbnZhbGlkVHJhbnNhY3Rpb25JZC4gIFRoaXMgaW5jbHVkZXMgdGhlIGNhc2UgdGhh dCB3ZSBqdXN0IGZyb3plCisJCSAqIGFsbCB0aGUgdHVwbGVzOyB0aGUgcHJ1bmUtZnJlZXplIHJl Y29yZCBpbmNsdWRlZCB0aGUgY29uZmxpY3QgWElECisJCSAqIGFscmVhZHkgc28gYSBzbmFwc2hv dENvbmZsaWN0SG9yaXpvbiBzdWZmaWNpZW50IHRvIG1ha2UgZXZlcnl0aGluZworCQkgKiBzYWZl IGZvciBSRURPIHdhcyBsb2dnZWQgd2hlbiB0aGUgcGFnZSdzIHR1cGxlcyB3ZXJlIGZyb3plbi4K KwkJICovCisJCWlmIChwcnN0YXRlLmFsbF9mcm96ZW4pCisJCQl2bV9jb25mbGljdF9ob3Jpem9u ID0gSW52YWxpZFRyYW5zYWN0aW9uSWQ7CisJCWVsc2UKKwkJCXZtX2NvbmZsaWN0X2hvcml6b24g PSBwcnN0YXRlLnZpc2liaWxpdHlfY3V0b2ZmX3hpZDsKKwkJb2xkX3ZtYml0cyA9IHZpc2liaWxp dHltYXBfc2V0KHJlbGF0aW9uLCBibG9ja25vLAorCQkJCQkJCQkJICAgSW52YWxpZFhMb2dSZWNQ dHIsCisJCQkJCQkJCQkgICB2bWJ1ZmZlciwgdm1fY29uZmxpY3RfaG9yaXpvbiwKKwkJCQkJCQkJ CSAgIG5ld192bWJpdHMpOworCX0KKwogCS8qIENvcHkgaW5mb3JtYXRpb24gYmFjayBmb3IgY2Fs bGVyICovCiAJcHJlc3VsdC0+bmRlbGV0ZWQgPSBwcnN0YXRlLm5kZWxldGVkOwogCXByZXN1bHQt Pm5uZXdscGRlYWQgPSBwcnN0YXRlLm5kZWFkOwogCXByZXN1bHQtPm5mcm96ZW4gPSBwcnN0YXRl Lm5mcm96ZW47CiAJcHJlc3VsdC0+bGl2ZV90dXBsZXMgPSBwcnN0YXRlLmxpdmVfdHVwbGVzOwog CXByZXN1bHQtPnJlY2VudGx5X2RlYWRfdHVwbGVzID0gcHJzdGF0ZS5yZWNlbnRseV9kZWFkX3R1 cGxlczsKLQlwcmVzdWx0LT5hbGxfdmlzaWJsZSA9IHByc3RhdGUuYWxsX3Zpc2libGU7Ci0JcHJl c3VsdC0+YWxsX2Zyb3plbiA9IHByc3RhdGUuYWxsX2Zyb3plbjsKIAlwcmVzdWx0LT5oYXN0dXAg PSBwcnN0YXRlLmhhc3R1cDsKLQotCS8qCi0JICogRm9yIGNhbGxlcnMgcGxhbm5pbmcgdG8gdXBk YXRlIHRoZSB2aXNpYmlsaXR5IG1hcCwgdGhlIGNvbmZsaWN0IGhvcml6b24KLQkgKiBmb3IgdGhh dCByZWNvcmQgbXVzdCBiZSB0aGUgbmV3ZXN0IHhtaW4gb24gdGhlIHBhZ2UuICBIb3dldmVyLCBp ZiB0aGUKLQkgKiBwYWdlIGlzIGNvbXBsZXRlbHkgZnJvemVuLCB0aGVyZSBjYW4gYmUgbm8gY29u ZmxpY3QgYW5kIHRoZQotCSAqIHZtX2NvbmZsaWN0X2hvcml6b24gc2hvdWxkIHJlbWFpbiBJbnZh bGlkVHJhbnNhY3Rpb25JZC4gIFRoaXMgaW5jbHVkZXMKLQkgKiB0aGUgY2FzZSB0aGF0IHdlIGp1 c3QgZnJvemUgYWxsIHRoZSB0dXBsZXM7IHRoZSBwcnVuZS1mcmVlemUgcmVjb3JkCi0JICogaW5j bHVkZWQgdGhlIGNvbmZsaWN0IFhJRCBhbHJlYWR5IHNvIHRoZSBjYWxsZXIgZG9lc24ndCBuZWVk IGl0LgotCSAqLwotCWlmIChwcmVzdWx0LT5hbGxfZnJvemVuKQotCQlwcmVzdWx0LT52bV9jb25m bGljdF9ob3Jpem9uID0gSW52YWxpZFRyYW5zYWN0aW9uSWQ7Ci0JZWxzZQotCQlwcmVzdWx0LT52 bV9jb25mbGljdF9ob3Jpem9uID0gcHJzdGF0ZS52aXNpYmlsaXR5X2N1dG9mZl94aWQ7CisJcHJl c3VsdC0+bmV3X3ZtYml0cyA9IG5ld192bWJpdHM7CisJcHJlc3VsdC0+b2xkX3ZtYml0cyA9IG9s ZF92bWJpdHM7CiAKIAlwcmVzdWx0LT5scGRlYWRfaXRlbXMgPSBwcnN0YXRlLmxwZGVhZF9pdGVt czsKIAkvKiB0aGUgcHJlc3VsdC0+ZGVhZG9mZnNldHMgYXJyYXkgd2FzIGFscmVhZHkgZmlsbGVk IGluICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMg Yi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKaW5kZXggZTAxZmM1YmI1MDIu LjhlYzA0NzZhMGQ0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1s YXp5LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCkBAIC00NjMs MTEgKzQ2Myw2IEBAIHN0YXRpYyB2b2lkIGRlYWRfaXRlbXNfYWRkKExWUmVsU3RhdGUgKnZhY3Jl bCwgQmxvY2tOdW1iZXIgYmxrbm8sIE9mZnNldE51bWJlciAqCiAJCQkJCQkgICBpbnQgbnVtX29m ZnNldHMpOwogc3RhdGljIHZvaWQgZGVhZF9pdGVtc19yZXNldChMVlJlbFN0YXRlICp2YWNyZWwp Owogc3RhdGljIHZvaWQgZGVhZF9pdGVtc19jbGVhbnVwKExWUmVsU3RhdGUgKnZhY3JlbCk7Ci1z dGF0aWMgYm9vbCBoZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGUoUmVsYXRpb24gcmVsLCBCdWZmZXIg YnVmLAotCQkJCQkJCQkJIFRyYW5zYWN0aW9uSWQgT2xkZXN0WG1pbiwKLQkJCQkJCQkJCSBib29s ICphbGxfZnJvemVuLAotCQkJCQkJCQkJIFRyYW5zYWN0aW9uSWQgKnZpc2liaWxpdHlfY3V0b2Zm X3hpZCwKLQkJCQkJCQkJCSBPZmZzZXROdW1iZXIgKmxvZ2dpbmdfb2ZmbnVtKTsKIHN0YXRpYyBi b29sIGhlYXBfcGFnZV93b3VsZF9iZV9hbGxfdmlzaWJsZShSZWxhdGlvbiByZWwsIEJ1ZmZlciBi dWYsCiAJCQkJCQkJCQkJICAgVHJhbnNhY3Rpb25JZCBPbGRlc3RYbWluLAogCQkJCQkJCQkJCSAg IE9mZnNldE51bWJlciAqZGVhZG9mZnNldHMsCkBAIC0yMDE0LDcgKzIwMDksOSBAQCBsYXp5X3Nj YW5fcHJ1bmUoTFZSZWxTdGF0ZSAqdmFjcmVsLAogCWlmICh2YWNyZWwtPm5pbmRleGVzID09IDAp CiAJCXBydW5lX29wdGlvbnMgfD0gSEVBUF9QQUdFX1BSVU5FX01BUktfVU5VU0VEX05PVzsKIAot CWhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKHJlbCwgYnVmLCBQUlVORV9WQUNVVU1fU0NBTiwg cHJ1bmVfb3B0aW9ucywKKwloZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZShyZWwsIGJ1ZiwKKwkJ CQkJCQkgICB2bWJ1ZmZlciwgYWxsX3Zpc2libGVfYWNjb3JkaW5nX3RvX3ZtLAorCQkJCQkJCSAg IFBSVU5FX1ZBQ1VVTV9TQ0FOLCBwcnVuZV9vcHRpb25zLAogCQkJCQkJCSAgICZ2YWNyZWwtPmN1 dG9mZnMsCiAJCQkJCQkJICAgdmFjcmVsLT52aXN0ZXN0LAogCQkJCQkJCSAgICZwcmVzdWx0LApA QCAtMjAzNSwzMyArMjAzMiw2IEBAIGxhenlfc2Nhbl9wcnVuZShMVlJlbFN0YXRlICp2YWNyZWws CiAJCXZhY3JlbC0+bmV3X2Zyb3plbl90dXBsZV9wYWdlcysrOwogCX0KIAotCS8qCi0JICogVkFD VVVNIHdpbGwgY2FsbCBoZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGUoKSBkdXJpbmcgdGhlIHNlY29u ZCBwYXNzIG92ZXIKLQkgKiB0aGUgaGVhcCB0byBkZXRlcm1pbmUgYWxsX3Zpc2libGUgYW5kIGFs bF9mcm96ZW4gZm9yIHRoZSBwYWdlIC0tIHRoaXMKLQkgKiBpcyBhIHNwZWNpYWxpemVkIHZlcnNp b24gb2YgdGhlIGxvZ2ljIGZyb20gdGhpcyBmdW5jdGlvbi4gIE5vdyB0aGF0Ci0JICogd2UndmUg ZmluaXNoZWQgcHJ1bmluZyBhbmQgZnJlZXppbmcsIG1ha2Ugc3VyZSB0aGF0IHdlJ3JlIGluIHRv dGFsCi0JICogYWdyZWVtZW50IHdpdGggaGVhcF9wYWdlX2lzX2FsbF92aXNpYmxlKCkgdXNpbmcg YW4gYXNzZXJ0aW9uLgotCSAqLwotI2lmZGVmIFVTRV9BU1NFUlRfQ0hFQ0tJTkcKLQlpZiAocHJl c3VsdC5hbGxfdmlzaWJsZSkKLQl7Ci0JCVRyYW5zYWN0aW9uSWQgZGVidWdfY3V0b2ZmOwotCQli b29sCQlkZWJ1Z19hbGxfZnJvemVuOwotCi0JCUFzc2VydChwcmVzdWx0LmxwZGVhZF9pdGVtcyA9 PSAwKTsKLQotCQlpZiAoIWhlYXBfcGFnZV9pc19hbGxfdmlzaWJsZSh2YWNyZWwtPnJlbCwgYnVm LAotCQkJCQkJCQkJICB2YWNyZWwtPmN1dG9mZnMuT2xkZXN0WG1pbiwgJmRlYnVnX2FsbF9mcm96 ZW4sCi0JCQkJCQkJCQkgICZkZWJ1Z19jdXRvZmYsICZ2YWNyZWwtPm9mZm51bSkpCi0JCQlBc3Nl cnQoZmFsc2UpOwotCi0JCUFzc2VydChwcmVzdWx0LmFsbF9mcm96ZW4gPT0gZGVidWdfYWxsX2Zy b3plbik7Ci0KLQkJQXNzZXJ0KCFUcmFuc2FjdGlvbklkSXNWYWxpZChkZWJ1Z19jdXRvZmYpIHx8 Ci0JCQkgICBkZWJ1Z19jdXRvZmYgPT0gcHJlc3VsdC52bV9jb25mbGljdF9ob3Jpem9uKTsKLQl9 Ci0jZW5kaWYKLQogCS8qCiAJICogTm93IHNhdmUgZGV0YWlscyBvZiB0aGUgTFBfREVBRCBpdGVt cyBmcm9tIHRoZSBwYWdlIGluIHZhY3JlbAogCSAqLwpAQCAtMjA5NSwxMTIgKzIwNjUsMjggQEAg bGF6eV9zY2FuX3BydW5lKExWUmVsU3RhdGUgKnZhY3JlbCwKIAkvKiBEaWQgd2UgZmluZCBMUF9E RUFEIGl0ZW1zPyAqLwogCSpoYXNfbHBkZWFkX2l0ZW1zID0gKHByZXN1bHQubHBkZWFkX2l0ZW1z ID4gMCk7CiAKLQlBc3NlcnQoIXByZXN1bHQuYWxsX3Zpc2libGUgfHwgISgqaGFzX2xwZGVhZF9p dGVtcykpOwotCUFzc2VydCghcHJlc3VsdC5hbGxfZnJvemVuIHx8IHByZXN1bHQuYWxsX3Zpc2li bGUpOwotCiAJLyoKLQkgKiBIYW5kbGUgc2V0dGluZyB2aXNpYmlsaXR5IG1hcCBiaXRzIGJhc2Vk IG9uIGluZm9ybWF0aW9uIGZyb20gdGhlIFZNIChhcwotCSAqIG9mIGxhc3QgaGVhcF92YWNfc2Nh bl9uZXh0X2Jsb2NrKCkgY2FsbCksIGFuZCBmcm9tIGFsbF92aXNpYmxlIGFuZAotCSAqIGFsbF9m cm96ZW4gdmFyaWFibGVzLgorCSAqIEZvciB0aGUgcHVycG9zZXMgb2YgbG9nZ2luZywgY291bnQg d2hldGhlciBvciBub3QgdGhlIHBhZ2Ugd2FzIG5ld2x5CisJICogc2V0IGFsbC12aXNpYmxlIGFu ZCwgcG90ZW50aWFsbHksIGFsbC1mcm96ZW4uCiAJICovCi0JaWYgKChwcmVzdWx0LmFsbF92aXNp YmxlICYmICFhbGxfdmlzaWJsZV9hY2NvcmRpbmdfdG9fdm0pIHx8Ci0JCShwcmVzdWx0LmFsbF9m cm96ZW4gJiYgIVZNX0FMTF9GUk9aRU4odmFjcmVsLT5yZWwsIGJsa25vLCAmdm1idWZmZXIpKSkK KwlpZiAoKHByZXN1bHQub2xkX3ZtYml0cyAmIFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEUpID09 IDAgJiYKKwkJKHByZXN1bHQubmV3X3ZtYml0cyAmIFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEUp ICE9IDApCiAJewotCQl1aW50OAkJb2xkX3ZtYml0czsKLQkJdWludDgJCWZsYWdzID0gVklTSUJJ TElUWU1BUF9BTExfVklTSUJMRTsKLQotCQkvKgotCQkgKiBJZiB0aGUgcGFnZSBpcyBhbGwtZnJv emVuLCB3ZSBjYW4gcGFzcyBJbnZhbGlkVHJhbnNhY3Rpb25JZCBhcyBvdXIKLQkJICogY3V0b2Zm X3hpZCwgc2luY2UgYSBzbmFwc2hvdENvbmZsaWN0SG9yaXpvbiBzdWZmaWNpZW50IHRvIG1ha2UK LQkJICogZXZlcnl0aGluZyBzYWZlIGZvciBSRURPIHdhcyBsb2dnZWQgd2hlbiB0aGUgcGFnZSdz IHR1cGxlcyB3ZXJlCi0JCSAqIGZyb3plbi4KLQkJICovCi0JCWlmIChwcmVzdWx0LmFsbF9mcm96 ZW4pCi0JCXsKLQkJCUFzc2VydCghVHJhbnNhY3Rpb25JZElzVmFsaWQocHJlc3VsdC52bV9jb25m bGljdF9ob3Jpem9uKSk7Ci0JCQlmbGFncyB8PSBWSVNJQklMSVRZTUFQX0FMTF9GUk9aRU47Ci0J CX0KLQotCQlvbGRfdm1iaXRzID0gdmlzaWJpbGl0eW1hcF9zZXQodmFjcmVsLT5yZWwsIGJsa25v LAotCQkJCQkJCQkJICAgSW52YWxpZFhMb2dSZWNQdHIsCi0JCQkJCQkJCQkgICB2bWJ1ZmZlciwg cHJlc3VsdC52bV9jb25mbGljdF9ob3Jpem9uLAotCQkJCQkJCQkJICAgZmxhZ3MpOwotCi0JCS8q Ci0JCSAqIEV2ZW4gaWYgd2UgYXJlIG9ubHkgc2V0dGluZyB0aGUgYWxsLWZyb3plbiBiaXQsIHRo ZXJlIGlzIGEgc21hbGwKLQkJICogY2hhbmNlIHRoYXQgdGhlIFZNIHdhcyBtb2RpZmllZCBzb21l dGltZSBiZXR3ZWVuIHNldHRpbmcKLQkJICogYWxsX3Zpc2libGVfYWNjb3JkaW5nX3RvX3ZtIGFu ZCBjaGVja2luZyB0aGUgdmlzaWJpbGl0eSBkdXJpbmcKLQkJICogcHJ1bmluZy4gQ2hlY2sgdGhl IHJldHVybiB2YWx1ZSBvZiBvbGRfdm1iaXRzIHRvIGVuc3VyZSB0aGUKLQkJICogdmlzaWJpbGl0 eSBtYXAgY291bnRlcnMgdXNlZCBmb3IgbG9nZ2luZyBhcmUgYWNjdXJhdGUuCi0JCSAqCi0JCSAq IElmIHRoZSBwYWdlIHdhc24ndCBhbHJlYWR5IHNldCBhbGwtdmlzaWJsZSBhbmQvb3IgYWxsLWZy b3plbiBpbiB0aGUKLQkJICogVk0sIGNvdW50IGl0IGFzIG5ld2x5IHNldCBmb3IgbG9nZ2luZy4K LQkJICovCi0JCWlmICgob2xkX3ZtYml0cyAmIFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEUpID09 IDApCi0JCXsKLQkJCXZhY3JlbC0+dm1fbmV3X3Zpc2libGVfcGFnZXMrKzsKLQkJCWlmIChwcmVz dWx0LmFsbF9mcm96ZW4pCi0JCQl7Ci0JCQkJdmFjcmVsLT52bV9uZXdfdmlzaWJsZV9mcm96ZW5f cGFnZXMrKzsKLQkJCQkqdm1fcGFnZV9mcm96ZW4gPSB0cnVlOwotCQkJfQotCQl9Ci0JCWVsc2Ug aWYgKChvbGRfdm1iaXRzICYgVklTSUJJTElUWU1BUF9BTExfRlJPWkVOKSA9PSAwICYmCi0JCQkJ IHByZXN1bHQuYWxsX2Zyb3plbikKKwkJdmFjcmVsLT52bV9uZXdfdmlzaWJsZV9wYWdlcysrOwor CQlpZiAoKHByZXN1bHQubmV3X3ZtYml0cyAmIFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTikgIT0g MCkKIAkJewotCQkJdmFjcmVsLT52bV9uZXdfZnJvemVuX3BhZ2VzKys7CisJCQl2YWNyZWwtPnZt X25ld192aXNpYmxlX2Zyb3plbl9wYWdlcysrOwogCQkJKnZtX3BhZ2VfZnJvemVuID0gdHJ1ZTsK IAkJfQogCX0KLQotCS8qCi0JICogTm93IGhhbmRsZSB0d28gcG90ZW50aWFsIGNvcnJ1cHRpb24g Y2FzZXM6Ci0JICoKLQkgKiBBcyBvZiBQb3N0Z3JlU1FMIDkuMiwgdGhlIHZpc2liaWxpdHkgbWFw IGJpdCBzaG91bGQgbmV2ZXIgYmUgc2V0IGlmIHRoZQotCSAqIHBhZ2UtbGV2ZWwgYml0IGlzIGNs ZWFyLiAgSG93ZXZlciwgaXQncyBwb3NzaWJsZSB0aGF0IHRoZSBiaXQgZ290Ci0JICogY2xlYXJl ZCBhZnRlciBoZWFwX3ZhY19zY2FuX25leHRfYmxvY2soKSB3YXMgY2FsbGVkLCBzbyB3ZSBtdXN0 IHJlY2hlY2sKLQkgKiB3aXRoIGJ1ZmZlciBsb2NrIGJlZm9yZSBjb25jbHVkaW5nIHRoYXQgdGhl IFZNIGlzIGNvcnJ1cHQuCi0JICovCi0JZWxzZSBpZiAoYWxsX3Zpc2libGVfYWNjb3JkaW5nX3Rv X3ZtICYmICFQYWdlSXNBbGxWaXNpYmxlKHBhZ2UpICYmCi0JCQkgdmlzaWJpbGl0eW1hcF9nZXRf c3RhdHVzKHZhY3JlbC0+cmVsLCBibGtubywgJnZtYnVmZmVyKSAhPSAwKQotCXsKLQkJZXJlcG9y dChXQVJOSU5HLAotCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQV9DT1JSVVBURUQpLAotCQkJCSBl cnJtc2coInBhZ2UgaXMgbm90IG1hcmtlZCBhbGwtdmlzaWJsZSBidXQgdmlzaWJpbGl0eSBtYXAg Yml0IGlzIHNldCBpbiByZWxhdGlvbiBcIiVzXCIgcGFnZSAldSIsCi0JCQkJCQl2YWNyZWwtPnJl bG5hbWUsIGJsa25vKSkpOwotCi0JCXZpc2liaWxpdHltYXBfY2xlYXIodmFjcmVsLT5yZWwsIGJs a25vLCB2bWJ1ZmZlciwKLQkJCQkJCQlWSVNJQklMSVRZTUFQX1ZBTElEX0JJVFMpOwotCX0KLQot CS8qCi0JICogSXQncyBwb3NzaWJsZSBmb3IgdGhlIHZhbHVlIHJldHVybmVkIGJ5Ci0JICogR2V0 T2xkZXN0Tm9uUmVtb3ZhYmxlVHJhbnNhY3Rpb25JZCgpIHRvIG1vdmUgYmFja3dhcmRzLCBzbyBp dCdzIG5vdAotCSAqIHdyb25nIGZvciB1cyB0byBzZWUgdHVwbGVzIHRoYXQgYXBwZWFyIHRvIG5v dCBiZSB2aXNpYmxlIHRvIGV2ZXJ5b25lCi0JICogeWV0LCB3aGlsZSBQRF9BTExfVklTSUJMRSBp cyBhbHJlYWR5IHNldC4gVGhlIHJlYWwgc2FmZSB4bWluIHZhbHVlCi0JICogbmV2ZXIgbW92ZXMg YmFja3dhcmRzLCBidXQgR2V0T2xkZXN0Tm9uUmVtb3ZhYmxlVHJhbnNhY3Rpb25JZCgpIGlzCi0J ICogY29uc2VydmF0aXZlIGFuZCBzb21ldGltZXMgcmV0dXJucyBhIHZhbHVlIHRoYXQncyB1bm5l Y2Vzc2FyaWx5IHNtYWxsLAotCSAqIHNvIGlmIHdlIHNlZSB0aGF0IGNvbnRyYWRpY3Rpb24gaXQg anVzdCBtZWFucyB0aGF0IHRoZSB0dXBsZXMgdGhhdCB3ZQotCSAqIHRoaW5rIGFyZSBub3Qgdmlz aWJsZSB0byBldmVyeW9uZSB5ZXQgYWN0dWFsbHkgYXJlLCBhbmQgdGhlCi0JICogUERfQUxMX1ZJ U0lCTEUgZmxhZyBpcyBjb3JyZWN0LgotCSAqCi0JICogVGhlcmUgc2hvdWxkIG5ldmVyIGJlIExQ X0RFQUQgaXRlbXMgb24gYSBwYWdlIHdpdGggUERfQUxMX1ZJU0lCTEUgc2V0LAotCSAqIGhvd2V2 ZXIuCi0JICovCi0JZWxzZSBpZiAocHJlc3VsdC5scGRlYWRfaXRlbXMgPiAwICYmIFBhZ2VJc0Fs bFZpc2libGUocGFnZSkpCisJZWxzZSBpZiAoKHByZXN1bHQub2xkX3ZtYml0cyAmIFZJU0lCSUxJ VFlNQVBfQUxMX0ZST1pFTikgPT0gMCAmJgorCQkJIChwcmVzdWx0Lm5ld192bWJpdHMgJiBWSVNJ QklMSVRZTUFQX0FMTF9GUk9aRU4pICE9IDApCiAJewotCQllcmVwb3J0KFdBUk5JTkcsCi0JCQkJ KGVycmNvZGUoRVJSQ09ERV9EQVRBX0NPUlJVUFRFRCksCi0JCQkJIGVycm1zZygicGFnZSBjb250 YWluaW5nIExQX0RFQUQgaXRlbXMgaXMgbWFya2VkIGFzIGFsbC12aXNpYmxlIGluIHJlbGF0aW9u IFwiJXNcIiBwYWdlICV1IiwKLQkJCQkJCXZhY3JlbC0+cmVsbmFtZSwgYmxrbm8pKSk7Ci0KLQkJ UGFnZUNsZWFyQWxsVmlzaWJsZShwYWdlKTsKLQkJTWFya0J1ZmZlckRpcnR5KGJ1Zik7Ci0JCXZp c2liaWxpdHltYXBfY2xlYXIodmFjcmVsLT5yZWwsIGJsa25vLCB2bWJ1ZmZlciwKLQkJCQkJCQlW SVNJQklMSVRZTUFQX1ZBTElEX0JJVFMpOworCQlBc3NlcnQoKHByZXN1bHQubmV3X3ZtYml0cyAm IFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEUpICE9IDApOworCQl2YWNyZWwtPnZtX25ld19mcm96 ZW5fcGFnZXMrKzsKKwkJKnZtX3BhZ2VfZnJvemVuID0gdHJ1ZTsKIAl9CiAKLQogCXJldHVybiBw cmVzdWx0Lm5kZWxldGVkOwogfQogCkBAIC0zNTkwLDcgKzM0NzYsNyBAQCBkZWFkX2l0ZW1zX2Ns ZWFudXAoTFZSZWxTdGF0ZSAqdmFjcmVsKQogICogV3JhcHBlciBmb3IgaGVhcF9wYWdlX3dvdWxk X2JlX2FsbF92aXNpYmxlKCkgd2hpY2ggY2FuIGJlIHVzZWQgZm9yCiAgKiBjYWxsZXJzIHRoYXQg ZXhwZWN0IG5vIExQX0RFQUQgb24gdGhlIHBhZ2UuCiAgKi8KLXN0YXRpYyBib29sCitib29sCiBo ZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGUoUmVsYXRpb24gcmVsLCBCdWZmZXIgYnVmLAogCQkJCQkJ IFRyYW5zYWN0aW9uSWQgT2xkZXN0WG1pbiwKIAkJCQkJCSBib29sICphbGxfZnJvemVuLApkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oIGIvc3JjL2luY2x1ZGUvYWNjZXNz L2hlYXBhbS5oCmluZGV4IGJlNjY5NzBjOWYwLi43OTdjZDUxMTQ1ZCAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0u aApAQCAtMjM1LDE5ICsyMzUsMTQgQEAgdHlwZWRlZiBzdHJ1Y3QgUHJ1bmVGcmVlemVSZXN1bHQK IAlpbnQJCQlyZWNlbnRseV9kZWFkX3R1cGxlczsKIAogCS8qCi0JICogYWxsX3Zpc2libGUgYW5k IGFsbF9mcm96ZW4gaW5kaWNhdGUgaWYgdGhlIGFsbC12aXNpYmxlIGFuZCBhbGwtZnJvemVuCi0J ICogYml0cyBpbiB0aGUgdmlzaWJpbGl0eSBtYXAgY2FuIGJlIHNldCBmb3IgdGhpcyBwYWdlLCBh ZnRlciBwcnVuaW5nLgorCSAqIG9sZF92bWJpdHMgYXJlIHRoZSBzdGF0ZSBvZiB0aGUgYWxsLXZp c2libGUgYW5kIGFsbC1mcm96ZW4gYml0cyBpbiB0aGUKKwkgKiB2aXNpYmlsaXR5IG1hcCBiZWZv cmUgdXBkYXRpbmcgaXQgZHVyaW5nIHBoYXNlIEkgb2YgdmFjdXVtaW5nLgorCSAqIG5ld192bWJp dHMgYXJlIHRoZSBzdGF0ZSBvZiB0aG9zZSBiaXRzIGFmdGVyIHBoYXNlIEkgb2YgdmFjdXVtaW5n LgogCSAqCi0JICogdm1fY29uZmxpY3RfaG9yaXpvbiBpcyB0aGUgbmV3ZXN0IHhtaW4gb2YgbGl2 ZSB0dXBsZXMgb24gdGhlIHBhZ2UuICBUaGUKLQkgKiBjYWxsZXIgY2FuIHVzZSBpdCBhcyB0aGUg Y29uZmxpY3QgaG9yaXpvbiB3aGVuIHNldHRpbmcgdGhlIFZNIGJpdHMuICBJdAotCSAqIGlzIG9u bHkgdmFsaWQgaWYgd2UgZnJvemUgc29tZSB0dXBsZXMgKG5mcm96ZW4gPiAwKSwgYW5kIGFsbF9m cm96ZW4gaXMKLQkgKiB0cnVlLgotCSAqCi0JICogVGhlc2UgYXJlIG9ubHkgc2V0IGlmIHRoZSBI RUFQX1BSVU5FX0ZSRUVaRSBvcHRpb24gaXMgc2V0LgorCSAqIFRoZXNlIGFyZSBvbmx5IHNldCBp ZiB0aGUgSEVBUF9QQUdFX1BSVU5FX1VQREFURV9WSVMgb3B0aW9uIGlzIHNldC4KIAkgKi8KLQli b29sCQlhbGxfdmlzaWJsZTsKLQlib29sCQlhbGxfZnJvemVuOwotCVRyYW5zYWN0aW9uSWQgdm1f Y29uZmxpY3RfaG9yaXpvbjsKKwl1aW50OAkJbmV3X3ZtYml0czsKKwl1aW50OAkJb2xkX3ZtYml0 czsKIAogCS8qCiAJICogV2hldGhlciBvciBub3QgdGhlIHBhZ2UgbWFrZXMgcmVsIHRydW5jYXRp b24gdW5zYWZlLiAgVGhpcyBpcyBzZXQgdG8KQEAgLTM3NSw2ICszNzAsNyBAQCBleHRlcm4gVHJh bnNhY3Rpb25JZCBoZWFwX2luZGV4X2RlbGV0ZV90dXBsZXMoUmVsYXRpb24gcmVsLAogc3RydWN0 IEdsb2JhbFZpc1N0YXRlOwogZXh0ZXJuIHZvaWQgaGVhcF9wYWdlX3BydW5lX29wdChSZWxhdGlv biByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlcik7CiBleHRlcm4gdm9pZCBoZWFwX3BhZ2VfcHJ1bmVf YW5kX2ZyZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKKwkJCQkJCQkJCSAg IEJ1ZmZlciB2bWJ1ZmZlciwgYm9vbCBibGtfa25vd25fYXYsCiAJCQkJCQkJCQkgICBQcnVuZVJl YXNvbiByZWFzb24sCiAJCQkJCQkJCQkgICBpbnQgb3B0aW9ucywKIAkJCQkJCQkJCSAgIGNvbnN0 IHN0cnVjdCBWYWN1dW1DdXRvZmZzICpjdXRvZmZzLApAQCAtNDAzLDYgKzM5OSwxMiBAQCBleHRl cm4gdm9pZCBsb2dfaGVhcF9wcnVuZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZm ZXIgYnVmZmVyLAogZXh0ZXJuIHZvaWQgaGVhcF92YWN1dW1fcmVsKFJlbGF0aW9uIHJlbCwKIAkJ CQkJCQljb25zdCBWYWN1dW1QYXJhbXMgcGFyYW1zLCBCdWZmZXJBY2Nlc3NTdHJhdGVneSBic3Ry YXRlZ3kpOwogCitleHRlcm4gYm9vbCBoZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGUoUmVsYXRpb24g cmVsLCBCdWZmZXIgYnVmLAorCQkJCQkJCQkJIFRyYW5zYWN0aW9uSWQgT2xkZXN0WG1pbiwKKwkJ CQkJCQkJCSBib29sICphbGxfZnJvemVuLAorCQkJCQkJCQkJIFRyYW5zYWN0aW9uSWQgKnZpc2li aWxpdHlfY3V0b2ZmX3hpZCwKKwkJCQkJCQkJCSBPZmZzZXROdW1iZXIgKmxvZ2dpbmdfb2ZmbnVt KTsKKwogLyogaW4gaGVhcC9oZWFwYW1fdmlzaWJpbGl0eS5jICovCiBleHRlcm4gYm9vbCBIZWFw VHVwbGVTYXRpc2ZpZXNWaXNpYmlsaXR5KEhlYXBUdXBsZSBodHVwLCBTbmFwc2hvdCBzbmFwc2hv dCwKIAkJCQkJCQkJCQkgQnVmZmVyIGJ1ZmZlcik7Ci0tIAoyLjQzLjAKCg== --000000000000cf342e063f082d09 Content-Type: text/x-patch; charset="US-ASCII"; name="v14-0017-Eliminate-XLOG_HEAP2_VISIBLE-from-vacuum-phase-I.patch" Content-Disposition: attachment; filename="v14-0017-Eliminate-XLOG_HEAP2_VISIBLE-from-vacuum-phase-I.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfonltni16 RnJvbSA5OTA0ZjgyNzg0NmJiMjY2MGRiYzlmZjBlY2IxZDI0ZGJlOWRjM2JjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDE3IFNlcCAyMDI1IDE3OjI5OjU5IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTQgMTcvMjRdIEVsaW1pbmF0ZSBYTE9HX0hFQVAyX1ZJU0lCTEUgZnJvbSB2YWN1dW0g cGhhc2UgSQogcHJ1bmUvZnJlZXplCgpJbnN0ZWFkIG9mIGVtaXR0aW5nIGEgc2VwYXJhdGUgV0FM IHJlY29yZCBmb3IgZXZlcnkgYmxvY2sgcmVuZGVyZWQKYWxsLXZpc2libGUvZnJvemVuIGJ5IHZh Y3V1bSdzIHBoYXNlIEksIGluY2x1ZGUgdGhlIGNoYW5nZXMgdG8gdGhlIFZNIGluCnRoZSBYTE9H X0hFQVAyX1BSVU5FX1ZBQ1VVTV9TQ0FOIHJlY29yZCBhbHJlYWR5IGVtaXR0ZWQuCgpUaGlzIGlz IG9ubHkgZW5hYmxlZCBmb3IgdmFjdXVtJ3MgcHJ1bmUvZnJlZXplIHdvcmssIG5vdCBmb3Igb24t YWNjZXNzCnBydW5pbmcuCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMg fCAxODMgKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLQogc3JjL2luY2x1ZGUvYWNjZXNzL2hl YXBhbS5oICAgICAgICAgfCAgIDMgKy0KIDIgZmlsZXMgY2hhbmdlZCwgMTEyIGluc2VydGlvbnMo KyksIDc0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFw L3BydW5laGVhcC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKaW5kZXgg ZTNmOTk2N2UyNmMuLmExNGM3OTNkYTdlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3Mv aGVhcC9wcnVuZWhlYXAuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAu YwpAQCAtNjYyLDUwICs2NjIsNTggQEAgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoUmVsYXRp b24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJcHJzdGF0ZS5kZWFkb2Zmc2V0cyA9IHByZXN1 bHQtPmRlYWRvZmZzZXRzOwogCiAJLyoKLQkgKiBDYWxsZXIgbWF5IHVwZGF0ZSB0aGUgVk0gYWZ0 ZXIgd2UncmUgZG9uZS4gIFdlIGNhbiBrZWVwIHRyYWNrIG9mCi0JICogd2hldGhlciB0aGUgcGFn ZSB3aWxsIGJlIGFsbC12aXNpYmxlIGFuZCBhbGwtZnJvemVuIGFmdGVyIHBydW5pbmcgYW5kCi0J ICogZnJlZXppbmcgdG8gaGVscCB0aGUgY2FsbGVyIHRvIGRvIHRoYXQuCisJICogS2VlcCB0cmFj ayBvZiB3aGV0aGVyIG9yIG5vdCB0aGUgcGFnZSB3aWxsIGJlIGFsbC12aXNpYmxlIGFuZAorCSAq IGFsbC1mcm96ZW4gZm9yIHVzZSBpbiBvcHBvcnR1bmlzdGljIGZyZWV6aW5nIGFuZCB0byB1cGRh dGUgdGhlIFZNIGlmCisJICogdGhlIGNhbGxlciByZXF1ZXN0cyBpdC4KIAkgKgotCSAqIEN1cnJl bnRseSwgb25seSBWQUNVVU0gc2V0cyB0aGUgVk0gYml0cy4gIFRvIHNhdmUgdGhlIGVmZm9ydCwg b25seSBkbwotCSAqIHRoZSBib29ra2VlcGluZyBpZiB0aGUgY2FsbGVyIG5lZWRzIGl0LiAgQ3Vy cmVudGx5LCB0aGF0J3MgdGllZCB0bwotCSAqIEhFQVBfUEFHRV9QUlVORV9GUkVFWkUsIGJ1dCBp dCBjb3VsZCBiZSBhIHNlcGFyYXRlIGZsYWcgaWYgeW91IHdhbnRlZAotCSAqIHRvIHVwZGF0ZSB0 aGUgVk0gYml0cyB3aXRob3V0IGFsc28gZnJlZXppbmcgb3IgZnJlZXplIHdpdGhvdXQgYWxzbwot CSAqIHNldHRpbmcgdGhlIFZNIGJpdHMuCisJICogQ3VycmVudGx5LCBvbmx5IFZBQ1VVTSBhdHRl bXB0cyBmcmVlemluZy4gQnV0IG90aGVyIGNhbGxlcnMgY291bGQuIFRoZQorCSAqIHZpc2liaWxp dHkgYm9va2tlZXBpbmcgaXMgcmVxdWlyZWQgZm9yIG9wcG9ydHVuaXN0aWMgZnJlZXppbmcgKGlu CisJICogYWRkaXRpb24gdG8gc2V0dGluZyB0aGUgVk0gYml0cykgYmVjYXVzZSB3ZSBvbmx5IGNv bnNpZGVyCisJICogb3Bwb3J0dW5pc3RpY2FsbHkgZnJlZXppbmcgdHVwbGVzIGlmIHRoZSB3aG9s ZSBwYWdlIHdvdWxkIGJlY29tZQorCSAqIGFsbC1mcm96ZW4gb3IgaWYgdGhlIHdob2xlIHBhZ2Ug d2lsbCBiZSBmcm96ZW4gZXhjZXB0IGZvciBkZWFkIHR1cGxlcworCSAqIHRoYXQgd2lsbCBiZSBy ZW1vdmVkIGJ5IHZhY3V1bS4gQnV0IGlmIGNvbnNpZGVyX3VwZGF0ZV92bSBpcyBmYWxzZSwKKwkg KiB3ZSdsbCBub3Qgc2V0IHRoZSBWTSBldmVuIGlmIHRoZSBwYWdlIGlzIGRpc2NvdmVyZWQgdG8g YmUgYWxsLXZpc2libGUuCiAJICoKLQkgKiBJbiBhZGRpdGlvbiB0byB0ZWxsaW5nIHRoZSBjYWxs ZXIgd2hldGhlciBpdCBjYW4gc2V0IHRoZSBWTSBiaXQsIHdlCi0JICogYWxzbyB1c2UgJ2FsbF92 aXNpYmxlJyBhbmQgJ2FsbF9mcm96ZW4nIGZvciBvdXIgb3duIGRlY2lzaW9uLW1ha2luZy4gSWYK LQkgKiB0aGUgd2hvbGUgcGFnZSB3b3VsZCBiZWNvbWUgZnJvemVuLCB3ZSBjb25zaWRlciBvcHBv cnR1bmlzdGljYWxseQotCSAqIGZyZWV6aW5nIHR1cGxlcy4gIFdlIHdpbGwgbm90IGJlIGFibGUg dG8gZnJlZXplIHRoZSB3aG9sZSBwYWdlIGlmIHRoZXJlCi0JICogYXJlIHR1cGxlcyBwcmVzZW50 IHRoYXQgYXJlIG5vdCB2aXNpYmxlIHRvIGV2ZXJ5b25lIG9yIGlmIHRoZXJlIGFyZQotCSAqIGRl YWQgdHVwbGVzIHdoaWNoIGFyZSBub3QgeWV0IHJlbW92YWJsZS4gIEhvd2V2ZXIsIGRlYWQgdHVw bGVzIHdoaWNoCi0JICogd2lsbCBiZSByZW1vdmVkIGJ5IHRoZSBlbmQgb2YgdmFjdXVtaW5nIHNo b3VsZCBub3QgcHJlY2x1ZGUgdXMgZnJvbQotCSAqIG9wcG9ydHVuaXN0aWNhbGx5IGZyZWV6aW5n LiAgQmVjYXVzZSBvZiB0aGF0LCB3ZSBkbyBub3QgaW1tZWRpYXRlbHkKLQkgKiBjbGVhciBhbGxf dmlzaWJsZSB3aGVuIHdlIHNlZSBMUF9ERUFEIGl0ZW1zLiAgV2UgZml4IHRoYXQgYWZ0ZXIKLQkg KiBzY2FubmluZyB0aGUgbGluZSBwb2ludGVycywgYmVmb3JlIHdlIHJldHVybiB0aGUgdmFsdWUg dG8gdGhlIGNhbGxlciwKLQkgKiBzbyB0aGF0IHRoZSBjYWxsZXIgZG9lc24ndCBzZXQgdGhlIFZN IGJpdCBpbmNvcnJlY3RseS4KKwkgKiBJZiBvbmx5IEhFQVBfUEFHRV9QUlVORV9VUERBVEVfVmlT IGlzIHBhc3NlZCBhbmQgbm90CisJICogSEVBUF9QQUdFX1BSVU5FX0ZSRUVaRSwgcHJzdGF0ZS5h bGxfZnJvemVuIG11c3QgYmUgaW5pdGlhbGl6ZWQgdG8gZmFsc2UKKwkgKiBiZWNhdXNlIHdlIHdp bGwgbm90IGNhbGwgaGVhcF9wcmVwYXJlX2ZyZWV6ZV90dXBsZSgpIG9uIGVhY2ggdHVwbGUuCisJ ICoKKwkgKiBEZWFkIHR1cGxlcyB3aGljaCB3aWxsIGJlIHJlbW92ZWQgYnkgdGhlIGVuZCBvZiB2 YWN1dW1pbmcgc2hvdWxkIG5vdAorCSAqIHByZWNsdWRlIHVzIGZyb20gb3Bwb3J0dW5pc3RpY2Fs bHkgZnJlZXppbmcsIHNvIHdlIGRvIG5vdCBjbGVhcgorCSAqIGFsbF92aXNpYmxlIHdoZW4gd2Ug c2VlIExQX0RFQUQgaXRlbXMuIFdlIGZpeCB0aGF0IGFmdGVyIGRldGVybWluaW5nCisJICogd2hl dGhlciBvciBub3QgdG8gZnJlZXplIGJ1dCBiZWZvcmUgZGVjaWRpbmcgd2hldGhlciBvciBub3Qg dG8gdXBkYXRlCisJICogdGhlIFZNIHNvIHRoYXQgd2UgZG9uJ3Qgc2V0IHRoZSBWTSBiaXQgaW5j b3JyZWN0bHkuCisJICoKKwkgKiBJZiBub3QgZnJlZXppbmcgYW5kIG5vdCB1cGRhdGluZyB0aGUg Vk0sIHdlIGF2b2lkIHRoZSBleHRyYQorCSAqIGJvb2trZWVwaW5nLiBJbml0aWFsaXppbmcgYWxs X3Zpc2libGUgdG8gZmFsc2UgYWxsb3dzIHNraXBwaW5nIHRoZSB3b3JrCisJICogdG8gdXBkYXRl IHRoZW0gaW4gaGVhcF9wcnVuZV9yZWNvcmRfdW5jaGFuZ2VkX2xwX25vcm1hbCgpLgogCSAqLwog CWlmIChwcnN0YXRlLmF0dGVtcHRfZnJlZXplKQogCXsKIAkJcHJzdGF0ZS5hbGxfdmlzaWJsZSA9 IHRydWU7CiAJCXByc3RhdGUuYWxsX2Zyb3plbiA9IHRydWU7CiAJfQorCWVsc2UgaWYgKChvcHRp b25zICYgSEVBUF9QQUdFX1BSVU5FX1VQREFURV9WSVMpICE9IDApCisJeworCQlwcnN0YXRlLmFs bF92aXNpYmxlID0gdHJ1ZTsKKwkJcHJzdGF0ZS5hbGxfZnJvemVuID0gZmFsc2U7CisJfQogCWVs c2UKIAl7Ci0JCS8qCi0JCSAqIEluaXRpYWxpemluZyB0byBmYWxzZSBhbGxvd3Mgc2tpcHBpbmcg dGhlIHdvcmsgdG8gdXBkYXRlIHRoZW0gaW4KLQkJICogaGVhcF9wcnVuZV9yZWNvcmRfdW5jaGFu Z2VkX2xwX25vcm1hbCgpLgotCQkgKi8KIAkJcHJzdGF0ZS5hbGxfdmlzaWJsZSA9IGZhbHNlOwog CQlwcnN0YXRlLmFsbF9mcm96ZW4gPSBmYWxzZTsKIAl9CiAKIAkvKgotCSAqIFRoZSB2aXNpYmls aXR5IGN1dG9mZiB4aWQgaXMgdGhlIG5ld2VzdCB4bWluIG9mIGxpdmUgdHVwbGVzIG9uIHRoZQot CSAqIHBhZ2UuICBJbiB0aGUgY29tbW9uIGNhc2UsIHRoaXMgd2lsbCBiZSBzZXQgYXMgdGhlIGNv bmZsaWN0IGhvcml6b24gdGhlCi0JICogY2FsbGVyIGNhbiB1c2UgZm9yIHVwZGF0aW5nIHRoZSBW TS4gIElmLCBhdCB0aGUgZW5kIG9mIGZyZWV6aW5nIGFuZAotCSAqIHBydW5pbmcsIHRoZSBwYWdl IGlzIGFsbC1mcm96ZW4sIHRoZXJlIGlzIG5vIHBvc3NpYmlsaXR5IHRoYXQgYW55Ci0JICogcnVu bmluZyB0cmFuc2FjdGlvbiBvbiB0aGUgc3RhbmRieSBkb2VzIG5vdCBzZWUgdHVwbGVzIG9uIHRo ZSBwYWdlIGFzCi0JICogYWxsLXZpc2libGUsIHNvIHRoZSBjb25mbGljdCBob3Jpem9uIHJlbWFp bnMgSW52YWxpZFRyYW5zYWN0aW9uSWQuCisJICogVGhlIHZpc2liaWxpdHkgY3V0b2ZmIHhpZCBp cyB0aGUgbmV3ZXN0IHhtaW4gb2YgbGl2ZSwgY29tbWl0dGVkIHR1cGxlcworCSAqIG9sZGVyIHRo YW4gT2xkZXN0WG1pbiBvbiB0aGUgcGFnZS4gVGhpcyBmaWVsZCBpcyBvbmx5IGtlcHQgdXAtdG8t ZGF0ZQorCSAqIGlmIHRoZSBwYWdlIGlzIGFsbC12aXNpYmxlLiBBcyBzb29uIGFzIGEgdHVwbGUg aXMgZW5jb3VudGVyZWQgdGhhdCBpcworCSAqIG5vdCB2aXNpYmxlIHRvIGFsbCwgdGhpcyBmaWVs ZCBpcyB1bm1haW50YWluZWQuIEFzIGxvbmcgYXMgaXQgaXMKKwkgKiBtYWludGFpbmVkLCBpdCBj YW4gYmUgdXNlZCB0byBjYWxjdWxhdGUgdGhlIHNuYXBzaG90IGNvbmZsaWN0IGhvcml6b24uCisJ ICogVGhpcyBpcyBtb3N0IGxpa2VseSB0byBoYXBwZW4gd2hlbiB1cGRhdGluZyB0aGUgVk0gYW5k L29yIGZyZWV6aW5nIGFsbAorCSAqIGxpdmUgdHVwbGVzIG9uIHRoZSBwYWdlLiBJdCBpcyB1cGRh dGVkIGJlZm9yZSByZXR1cm5pbmcgdG8gdGhlIGNhbGxlcgorCSAqIGJlY2F1c2UgdmFjdXVtIGRv ZXMgYXNzZXJ0LWJ1aWxkIG9ubHkgdmFsaWRhdGlvbiBvbiB0aGUgcGFnZSB1c2luZyB0aGlzCisJ ICogZmllbGQuCiAJICovCiAJcHJzdGF0ZS52aXNpYmlsaXR5X2N1dG9mZl94aWQgPSBJbnZhbGlk VHJhbnNhY3Rpb25JZDsKIApAQCAtOTQzLDE2ICs5NTEsMTUgQEAgaGVhcF9wYWdlX3BydW5lX2Fu ZF9mcmVlemUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJICogdmlzaWJpbGl0 eSBtYXAgYml0cyBiYXNlZCBvbiBpbmZvcm1hdGlvbiBmcm9tIHRoZSBWTSBhbmQgZnJvbQogCSAq IGFsbF92aXNpYmxlIGFuZCBhbGxfZnJvemVuIHZhcmlhYmxlcy4KIAkgKgotCSAqIFRob3VnaCBj YWxsZXJzIHNob3VsZCBzZXQgdGhlIFZNIGlmIFBEX0FMTF9WSVNJQkxFIGlzIHNldCwgaXQgaXMK LQkgKiBhbGxvd2VkIGZvciB0aGUgcGFnZS1sZXZlbCBiaXQgdG8gYmUgc2V0IGFuZCB0aGUgVk0g dG8gYmUgY2xlYXIuIFdlIGxvZwotCSAqIHNldHRpbmcgUERfQUxMX1ZJU0lCTEUgb24gdGhlIGhl YXAgcGFnZSBpbiBhCi0JICogWExPR19IRUFQMl9QUlVORV9WQUNVVU1fU0NBTiByZWNvcmQgYW5k IHNldHRpbmcgdGhlIFZNIGJpdHMgaW4gYSBsYXRlcgotCSAqIGVtaXR0ZWQgWExPR19IRUFQMl9W SVNJQkxFIHJlY29yZC4KKwkgKiBJdCBpcyBhbGxvd2VkIGZvciB0aGUgcGFnZS1sZXZlbCBiaXQg dG8gYmUgc2V0IGFuZCB0aGUgVk0gdG8gYmUgY2xlYXIsCisJICogaG93ZXZlciwgd2UgaGF2ZSBh IHN0cm9uZyBwcmVmZXJlbmNlIGZvciBrZWVwaW5nIHRoZW0gaW4gc3luYy4KIAkgKgotCSAqIFNl dHRpbmcgUERfQUxMX1ZJU0lCTEUgd2hlbiB3ZSBhcmUgbWFraW5nIHRoZSBjaGFuZ2VzIHRvIHRo ZSBwYWdlIHRoYXQKLQkgKiByZW5kZXIgaXQgYWxsLXZpc2libGUgYWxsb3dzIHVzIHRvIG9taXQg dGhlIGhlYXAgcGFnZSBmcm9tIHRoZSBXQUwKLQkgKiBjaGFpbiB3aGVuIGxhdGVyIHVwZGF0aW5n IHRoZSBWTSAtLSBldmVuIHdoZW4gY2hlY2tzdW1zL3dhbF9sb2dfaGludHMKLQkgKiBhcmUgZW5h YmxlZC4KKwkgKiBQcmlvciB0byBQb3N0Z3JlcyAxOSwgaXQgd2FzIHBvc3NpYmxlIGZvciB0aGUg cGFnZS1sZXZlbCBiaXQgdG8gYmUgc2V0CisJICogYW5kIHRoZSBWTSBiaXQgdG8gYmUgY2xlYXIu IFRoaXMgY291bGQgaGFwcGVuIGlmIHdlIGNyYXNoZWQgYWZ0ZXIKKwkgKiBzZXR0aW5nIFBEX0FM TF9WSVNJQkxFIGJ1dCBiZWZvcmUgc2V0dGluZyBiaXRzIGluIHRoZSBWTS4KKwkgKgorCSAqIEFz IHN1Y2gsIGl0IGlzIHBvc3NpYmxlIHRvIG9ubHkgdXBkYXRlIHRoZSBWTSB3aGVuIFBEX0FMTF9W SVNJQkxFIGlzCisJICogYWxyZWFkeSBzZXQuCiAJICovCiAJZG9fc2V0X3BkX3ZpcyA9IGZhbHNl OwogCWRvX3NldF92bSA9IGZhbHNlOwpAQCAtOTYxLDYgKzk2OCwxMCBAQCBoZWFwX3BhZ2VfcHJ1 bmVfYW5kX2ZyZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKIAkJCQkJCQkJ CQkgICBibG9ja25vLCBidWZmZXIsIHZtYnVmZmVyLCBibGtfa25vd25fYXYsCiAJCQkJCQkJCQkJ ICAgJnByc3RhdGUsICZuZXdfdm1iaXRzLCAmZG9fc2V0X3BkX3Zpcyk7CiAKKwkvKiBMb2NrIHZt YnVmZmVyIGJlZm9yZSBlbnRlcmluZyBhIGNyaXRpY2FsIHNlY3Rpb24gKi8KKwlpZiAoZG9fc2V0 X3ZtKQorCQlMb2NrQnVmZmVyKHZtYnVmZmVyLCBCVUZGRVJfTE9DS19FWENMVVNJVkUpOworCiAJ LyogQW55IGVycm9yIHdoaWxlIGFwcGx5aW5nIHRoZSBjaGFuZ2VzIGlzIGNyaXRpY2FsICovCiAJ U1RBUlRfQ1JJVF9TRUNUSU9OKCk7CiAKQEAgLTk5MSw3ICsxMDAyLDcgQEAgaGVhcF9wYWdlX3By dW5lX2FuZF9mcmVlemUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJCQlNYXJr QnVmZmVyRGlydHlIaW50KGJ1ZmZlciwgdHJ1ZSk7CiAJfQogCi0JaWYgKGRvX3BydW5lIHx8IGRv X2ZyZWV6ZSB8fCBkb19zZXRfcGRfdmlzKQorCWlmIChkb19wcnVuZSB8fCBkb19mcmVlemUgfHwg ZG9fc2V0X3BkX3ZpcyB8fCBkb19zZXRfdm0pCiAJewogCQkvKiBBcHBseSB0aGUgcGxhbm5lZCBp dGVtIGNoYW5nZXMgYW5kIHJlcGFpciBwYWdlIGZyYWdtZW50YXRpb24uICovCiAJCWlmIChkb19w cnVuZSkKQEAgLTEwMDgsMTIgKzEwMTksMzEgQEAgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUo UmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJCWlmIChkb19zZXRfcGRfdmlzKQog CQkJUGFnZVNldEFsbFZpc2libGUocGFnZSk7CiAKLQkJTWFya0J1ZmZlckRpcnR5KGJ1ZmZlcik7 CisJCWlmIChkb19wcnVuZSB8fCBkb19mcmVlemUgfHwgZG9fc2V0X3BkX3ZpcykKKwkJCU1hcmtC dWZmZXJEaXJ0eShidWZmZXIpOworCisJCWlmIChkb19zZXRfdm0pCisJCXsKKwkJCUFzc2VydChQ YWdlSXNBbGxWaXNpYmxlKHBhZ2UpKTsKKworCQkJb2xkX3ZtYml0cyA9IHZpc2liaWxpdHltYXBf c2V0X3ZtYml0cyhyZWxhdGlvbiwgYmxvY2tubywKKwkJCQkJCQkJCQkJCSAgdm1idWZmZXIsIG5l d192bWJpdHMpOworCQkJaWYgKG9sZF92bWJpdHMgPT0gbmV3X3ZtYml0cykKKwkJCXsKKwkJCQlM b2NrQnVmZmVyKHZtYnVmZmVyLCBCVUZGRVJfTE9DS19VTkxPQ0spOworCQkJCS8qIFVuc2V0IHNv IHdlIGRvbid0IGVtaXQgV0FMIHNpbmNlIG5vIGNoYW5nZSBvY2N1cnJlZCAqLworCQkJCWRvX3Nl dF92bSA9IGZhbHNlOworCQkJfQorCQl9CiAKIAkJLyoKLQkJICogRW1pdCBhIFdBTCBYTE9HX0hF QVAyX1BSVU5FKiByZWNvcmQgc2hvd2luZyB3aGF0IHdlIGRpZAorCQkgKiBFbWl0IGEgV0FMIFhM T0dfSEVBUDJfUFJVTkUqIHJlY29yZCBzaG93aW5nIHdoYXQgd2UgZGlkIElmIHdlIHdlcmUKKwkJ ICogb25seSB1cGRhdGluZyB0aGUgVk0gYW5kIGl0IHR1cm5zIG91dCBpdCB3YXMgYWxyZWFkeSBz ZXQsIHdlIHdpbGwKKwkJICogaGF2ZSB1bnNldCBkb19zZXRfdm0gZWFybGllci4gQXMgc3VjaCwg Y2hlY2sgaXQgYWdhaW4gYmVmb3JlCisJCSAqIGVtaXR0aW5nIHRoZSByZWNvcmQuCiAJCSAqLwot CQlpZiAoUmVsYXRpb25OZWVkc1dBTChyZWxhdGlvbikpCisJCWlmIChSZWxhdGlvbk5lZWRzV0FM KHJlbGF0aW9uKSAmJgorCQkJKGRvX3BydW5lIHx8IGRvX2ZyZWV6ZSB8fCBkb19zZXRfcGRfdmlz IHx8IGRvX3NldF92bSkpCiAJCXsKIAkJCS8qCiAJCQkgKiBUaGUgc25hcHNob3RDb25mbGljdEhv cml6b24gZm9yIHRoZSB3aG9sZSByZWNvcmQgc2hvdWxkIGJlIHRoZQpAQCAtMTAyNSwxNSArMTA1 NSw0NSBAQCBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwgQnVm ZmVyIGJ1ZmZlciwKIAkJCSAqIG9uIHRoZSBzdGFuZGJ5IHdpdGggeGlkcyBvbGRlciB0aGFuIHRo ZSB5b3VuZ2VzdCB0dXBsZSB0aGlzCiAJCQkgKiByZWNvcmQgd2lsbCBmcmVlemUgd2lsbCBjb25m bGljdC4KIAkJCSAqLwotCQkJVHJhbnNhY3Rpb25JZCBjb25mbGljdF94aWQ7CisJCQlUcmFuc2Fj dGlvbklkIGNvbmZsaWN0X3hpZCA9IEludmFsaWRUcmFuc2FjdGlvbklkOwogCi0JCQlpZiAoVHJh bnNhY3Rpb25JZEZvbGxvd3MoZnJ6X2NvbmZsaWN0X2hvcml6b24sIHByc3RhdGUubGF0ZXN0X3hp ZF9yZW1vdmVkKSkKKwkJCS8qCisJCQkgKiBJZiB3ZSBhcmUgdXBkYXRpbmcgdGhlIFZNLCB0aGUg Y29uZmxpY3QgaG9yaXpvbiBpcyBhbG1vc3QKKwkJCSAqIGFsd2F5cyB0aGUgdmlzaWJpbGl0eSBj dXRvZmYgWElELgorCQkJICoKKwkJCSAqIFNlcGFyYXRlbHksIGlmIHdlIGFyZSBmcmVlemluZyBh bnkgdHVwbGVzLCBhcyBhbiBvcHRpbWl6YXRpb24sCisJCQkgKiB3ZSBjYW4gdXNlIHRoZSB2aXNp YmlsaXR5X2N1dG9mZl94aWQgYXMgdGhlIGNvbmZsaWN0IGhvcml6b24gaWYKKwkJCSAqIHRoZSBw YWdlIHdpbGwgYmUgYWxsLWZyb3plbi4gVGhpcyBpcyB0cnVlIGV2ZW4gaWYgdGhlcmUgYXJlCisJ CQkgKiBMUF9ERUFEIGxpbmUgcG9pbnRlcnMgYmVjYXVzZSB3ZSBpZ25vcmVkIHRob3NlIHdoZW4g bWFpbnRhaW5pbmcKKwkJCSAqIHRoZSB2aXNpYmlsaXR5X2N1dG9mZl94aWQuIFRoaXMgd2lsbCBo YXZlIGJlZW4gY2FsY3VsYXRlZAorCQkJICogZWFybGllciBhcyB0aGUgZnJ6X2NvbmZsaWN0X2hv cml6b24gd2hlbiB3ZSBkZXRlcm1pbmVkIHdlIHdvdWxkCisJCQkgKiBmcmVlemUuCisJCQkgKi8K KwkJCWlmIChkb19zZXRfdm0pCisJCQkJY29uZmxpY3RfeGlkID0gcHJzdGF0ZS52aXNpYmlsaXR5 X2N1dG9mZl94aWQ7CisJCQllbHNlIGlmIChkb19mcmVlemUpCiAJCQkJY29uZmxpY3RfeGlkID0g ZnJ6X2NvbmZsaWN0X2hvcml6b247Ci0JCQllbHNlCisKKwkJCS8qCisJCQkgKiBJZiB3ZSBhcmUg cmVtb3ZpbmcgdHVwbGVzIHdpdGggYSB5b3VuZ2VyIHhtYXggdGhhbiBvdXIgc28gZmFyCisJCQkg KiBjYWxjdWxhdGVkIGNvbmZsaWN0X3hpZCwgd2UgbXVzdCB1c2UgdGhpcyBhcyBvdXIgaG9yaXpv bi4KKwkJCSAqLworCQkJaWYgKFRyYW5zYWN0aW9uSWRGb2xsb3dzKHByc3RhdGUubGF0ZXN0X3hp ZF9yZW1vdmVkLCBjb25mbGljdF94aWQpKQogCQkJCWNvbmZsaWN0X3hpZCA9IHByc3RhdGUubGF0 ZXN0X3hpZF9yZW1vdmVkOwogCisJCQkvKgorCQkJICogV2UgY2FuIG9taXQgdGhlIHNuYXBzaG90 IGNvbmZsaWN0IGhvcml6b24gaWYgd2UgYXJlIG5vdCBwcnVuaW5nCisJCQkgKiBvciBmcmVlemlu ZyBhbnkgdHVwbGVzIGFuZCBhcmUgc2V0dGluZyBhbiBhbHJlYWR5IGFsbC12aXNpYmxlCisJCQkg KiBwYWdlIGFsbC1mcm96ZW4gaW4gdGhlIFZNLiBJbiB0aGlzIGNhc2UsIGFsbCBvZiB0aGUgdHVw bGVzIG9uCisJCQkgKiB0aGUgcGFnZSBtdXN0IGFscmVhZHkgYmUgdmlzaWJsZSB0byBhbGwgTVZD QyBzbmFwc2hvdHMgb24gdGhlCisJCQkgKiBzdGFuZGJ5LgorCQkJICovCisJCQlpZiAoIWRvX3By dW5lICYmICFkb19mcmVlemUgJiYgZG9fc2V0X3ZtICYmCisJCQkJYmxrX2tub3duX2F2ICYmIChu ZXdfdm1iaXRzICYgVklTSUJJTElUWU1BUF9BTExfRlJPWkVOKSkKKwkJCQljb25mbGljdF94aWQg PSBJbnZhbGlkVHJhbnNhY3Rpb25JZDsKKwogCQkJbG9nX2hlYXBfcHJ1bmVfYW5kX2ZyZWV6ZShy ZWxhdGlvbiwgYnVmZmVyLAotCQkJCQkJCQkJICBJbnZhbGlkQnVmZmVyLCAwLAorCQkJCQkJCQkJ ICB2bWJ1ZmZlciwgbmV3X3ZtYml0cywKIAkJCQkJCQkJCSAgY29uZmxpY3RfeGlkLAogCQkJCQkJ CQkJICB0cnVlLAogCQkJCQkJCQkJICBkb19zZXRfcGRfdmlzLApAQCAtMTA0Nyw2ICsxMTA3LDkg QEAgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBi dWZmZXIsCiAKIAlFTkRfQ1JJVF9TRUNUSU9OKCk7CiAKKwlpZiAoZG9fc2V0X3ZtKQorCQlMb2Nr QnVmZmVyKHZtYnVmZmVyLCBCVUZGRVJfTE9DS19VTkxPQ0spOworCiAJQXNzZXJ0KCFwcnN0YXRl LmFsbF92aXNpYmxlIHx8IChwcnN0YXRlLmxwZGVhZF9pdGVtcyA9PSAwKSk7CiAKIAkvKgpAQCAt MTA3OCwzMiArMTE0MSw2IEBAIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJl bGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogCX0KICNlbmRpZgogCi0JLyogTm93IHNldCB0aGUgVk0g Ki8KLQlpZiAoZG9fc2V0X3ZtKQotCXsKLQkJVHJhbnNhY3Rpb25JZCB2bV9jb25mbGljdF9ob3Jp em9uOwotCi0JCUFzc2VydCgobmV3X3ZtYml0cyAmIFZJU0lCSUxJVFlNQVBfVkFMSURfQklUUykg IT0gMCk7Ci0KLQkJLyoKLQkJICogVGhlIGNvbmZsaWN0IGhvcml6b24gZm9yIHRoYXQgcmVjb3Jk IG11c3QgYmUgdGhlIG5ld2VzdCB4bWluIG9uIHRoZQotCQkgKiBwYWdlLiAgSG93ZXZlciwgaWYg dGhlIHBhZ2UgaXMgY29tcGxldGVseSBmcm96ZW4sIHRoZXJlIGNhbiBiZSBubwotCQkgKiBjb25m bGljdCBhbmQgdGhlIHZtX2NvbmZsaWN0X2hvcml6b24gc2hvdWxkIHJlbWFpbgotCQkgKiBJbnZh bGlkVHJhbnNhY3Rpb25JZC4gIFRoaXMgaW5jbHVkZXMgdGhlIGNhc2UgdGhhdCB3ZSBqdXN0IGZy b3plCi0JCSAqIGFsbCB0aGUgdHVwbGVzOyB0aGUgcHJ1bmUtZnJlZXplIHJlY29yZCBpbmNsdWRl ZCB0aGUgY29uZmxpY3QgWElECi0JCSAqIGFscmVhZHkgc28gYSBzbmFwc2hvdENvbmZsaWN0SG9y aXpvbiBzdWZmaWNpZW50IHRvIG1ha2UgZXZlcnl0aGluZwotCQkgKiBzYWZlIGZvciBSRURPIHdh cyBsb2dnZWQgd2hlbiB0aGUgcGFnZSdzIHR1cGxlcyB3ZXJlIGZyb3plbi4KLQkJICovCi0JCWlm IChwcnN0YXRlLmFsbF9mcm96ZW4pCi0JCQl2bV9jb25mbGljdF9ob3Jpem9uID0gSW52YWxpZFRy YW5zYWN0aW9uSWQ7Ci0JCWVsc2UKLQkJCXZtX2NvbmZsaWN0X2hvcml6b24gPSBwcnN0YXRlLnZp c2liaWxpdHlfY3V0b2ZmX3hpZDsKLQkJb2xkX3ZtYml0cyA9IHZpc2liaWxpdHltYXBfc2V0KHJl bGF0aW9uLCBibG9ja25vLAotCQkJCQkJCQkJICAgSW52YWxpZFhMb2dSZWNQdHIsCi0JCQkJCQkJ CQkgICB2bWJ1ZmZlciwgdm1fY29uZmxpY3RfaG9yaXpvbiwKLQkJCQkJCQkJCSAgIG5ld192bWJp dHMpOwotCX0KLQogCS8qIENvcHkgaW5mb3JtYXRpb24gYmFjayBmb3IgY2FsbGVyICovCiAJcHJl c3VsdC0+bmRlbGV0ZWQgPSBwcnN0YXRlLm5kZWxldGVkOwogCXByZXN1bHQtPm5uZXdscGRlYWQg PSBwcnN0YXRlLm5kZWFkOwpAQCAtMjI2MSw3ICsyMjk4LDcgQEAgaGVhcF9sb2dfZnJlZXplX3Bs YW4oSGVhcFR1cGxlRnJlZXplICp0dXBsZXMsIGludCBudHVwbGVzLAogICogLSBSZWFwaW5nOiBE dXJpbmcgdmFjdXVtIHBoYXNlIElJSSwgaXRlbXMgdGhhdCBhcmUgYWxyZWFkeSBMUF9ERUFEIGFy ZQogICogICBtYXJrZWQgYXMgdW51c2VkLgogICoKLSAqIC0gVk0gdXBkYXRlczogQWZ0ZXIgdmFj dXVtIHBoYXNlIElJSSwgdGhlIGhlYXAgcGFnZSBtYXkgYmUgbWFya2VkCisgKiAtIFZNIHVwZGF0 ZXM6IEFmdGVyIHZhY3V1bSBwaGFzZXMgSSBhbmQgSUlJLCB0aGUgaGVhcCBwYWdlIG1heSBiZSBt YXJrZWQKICAqICAgYWxsLXZpc2libGUgYW5kIGFsbC1mcm96ZW4uCiAgKgogICogVGhlc2UgY2hh bmdlcyBhbGwgaGFwcGVuIHRvZ2V0aGVyLCBzbyB3ZSB1c2UgYSBzaW5nbGUgV0FMIHJlY29yZCBm b3IgdGhlbQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oIGIvc3JjL2lu Y2x1ZGUvYWNjZXNzL2hlYXBhbS5oCmluZGV4IDc5N2NkNTExNDVkLi5jYWM3YTRjMjg5OSAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oCisrKyBiL3NyYy9pbmNsdWRlL2Fj Y2Vzcy9oZWFwYW0uaApAQCAtMjM5LDcgKzIzOSw4IEBAIHR5cGVkZWYgc3RydWN0IFBydW5lRnJl ZXplUmVzdWx0CiAJICogdmlzaWJpbGl0eSBtYXAgYmVmb3JlIHVwZGF0aW5nIGl0IGR1cmluZyBw aGFzZSBJIG9mIHZhY3V1bWluZy4KIAkgKiBuZXdfdm1iaXRzIGFyZSB0aGUgc3RhdGUgb2YgdGhv c2UgYml0cyBhZnRlciBwaGFzZSBJIG9mIHZhY3V1bWluZy4KIAkgKgotCSAqIFRoZXNlIGFyZSBv bmx5IHNldCBpZiB0aGUgSEVBUF9QQUdFX1BSVU5FX1VQREFURV9WSVMgb3B0aW9uIGlzIHNldC4K KwkgKiBUaGVzZSBhcmUgb25seSBzZXQgaWYgdGhlIEhFQVBfUEFHRV9QUlVORV9VUERBVEVfVklT IG9wdGlvbiBpcyBzZXQgYW5kCisJICogd2UgaGF2ZSBhY3R1YWxseSB1cGRhdGVkIHRoZSBWTS4K IAkgKi8KIAl1aW50OAkJbmV3X3ZtYml0czsKIAl1aW50OAkJb2xkX3ZtYml0czsKLS0gCjIuNDMu MAoK --000000000000cf342e063f082d09 Content-Type: text/x-patch; charset="US-ASCII"; name="v14-0018-Remove-XLOG_HEAP2_VISIBLE-entirely.patch" Content-Disposition: attachment; filename="v14-0018-Remove-XLOG_HEAP2_VISIBLE-entirely.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfonltnk17 RnJvbSA2Zjk0OTA4YjA2NDk5NTZlMWQxYWJiYmQ1YzM2MmE1NzI4MmMyYzI2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDE3IFNlcCAyMDI1IDE3OjQyOjU0IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTQgMTgvMjRdIFJlbW92ZSBYTE9HX0hFQVAyX1ZJU0lCTEUgZW50aXJlbHkKClRoZXJl IGFyZSBub3cgbm8gdXNlcnMgb2YgdGhpcywgc28gZWxpbWluYXRlIGl0IGVudGlyZWx5LgpUaGlz IGluY2x1ZGVzIHRoZSB4bF9oZWFwX3Zpc2libGUgc3RydWN0IGFzIHdlbGwgYXMgYWxsIG9mIHRo ZSBmdW5jdGlvbnMKdXNlZCB0byBlbWl0IGFuZCByZXBsYXkgWExPR19IRUFQMl9WSVNJQkxFIHJl Y29yZHMuCgpjaS1vcy1vbmx5OgotLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vYnVmbWFz ay5jICAgICAgfCAgNCArLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMgICAgICAg ICB8IDQwICsrLS0tLS0tLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV94bG9nLmMg ICAgfCA5NiArKystLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFw L3BydW5laGVhcC5jICAgICAgfCAgNCArLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVt bGF6eS5jICAgICB8IDE0ICsrLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Zpc2liaWxpdHlt YXAuYyAgfCA4MyArLS0tLS0tLS0tLS0tLS0tLS0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL3JtZ3Jk ZXNjL2hlYXBkZXNjLmMgICB8IDEwIC0tLQogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNh bC9kZWNvZGUuYyB8ICAxIC0KIHNyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3N0YW5kYnkuYyAgICAg ICAgfCAxMiArLS0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW1feGxvZy5oICAgICAgICAgfCAx OSAtLS0tLQogc3JjL2luY2x1ZGUvYWNjZXNzL3Zpc2liaWxpdHltYXAuaCAgICAgICB8IDExICst LQogc3JjL2luY2x1ZGUvYWNjZXNzL3Zpc2liaWxpdHltYXBkZWZzLmggICB8ICA5IC0tLQogc3Jj L3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgICAgICAgICB8ICAxIC0KIDEzIGZpbGVzIGNo YW5nZWQsIDM2IGluc2VydGlvbnMoKyksIDI2OCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL2J1Zm1hc2suYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9j b21tb24vYnVmbWFzay5jCmluZGV4IGJiMjYwY2ZmYTY4Li41ZjA3ZjE3OTQxNSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9idWZtYXNrLmMKKysrIGIvc3JjL2JhY2tlbmQv YWNjZXNzL2NvbW1vbi9idWZtYXNrLmMKQEAgLTU2LDggKzU2LDggQEAgbWFza19wYWdlX2hpbnRf Yml0cyhQYWdlIHBhZ2UpCiAKIAkvKgogCSAqIER1cmluZyByZXBsYXksIGlmIHRoZSBwYWdlIExT TiBoYXMgYWR2YW5jZWQgcGFzdCBvdXIgWExPRyByZWNvcmQncyBMU04sCi0JICogd2UgZG9uJ3Qg bWFyayB0aGUgcGFnZSBhbGwtdmlzaWJsZS4gU2VlIGhlYXBfeGxvZ192aXNpYmxlKCkgZm9yCi0J ICogZGV0YWlscy4KKwkgKiB3ZSBkb24ndCBtYXJrIHRoZSBwYWdlIGFsbC12aXNpYmxlLiBTZWUg aGVhcF94bG9nX3BydW5lX2FuZF9mcmVlemUoKQorCSAqIGZvciBtb3JlIGRldGFpbHMuCiAJICov CiAJUGFnZUNsZWFyQWxsVmlzaWJsZShwYWdlKTsKIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2FjY2Vzcy9oZWFwL2hlYXBhbS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMK aW5kZXggMDMyM2UyZGY0MDkuLmFiNTE0Y2U2NWVjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9h Y2Nlc3MvaGVhcC9oZWFwYW0uYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0u YwpAQCAtMjUyNCwxMSArMjUyNCwxMSBAQCBoZWFwX211bHRpX2luc2VydChSZWxhdGlvbiByZWxh dGlvbiwgVHVwbGVUYWJsZVNsb3QgKipzbG90cywgaW50IG50dXBsZXMsCiAJCWVsc2UgaWYgKGFs bF9mcm96ZW5fc2V0KQogCQl7CiAJCQlQYWdlU2V0QWxsVmlzaWJsZShwYWdlKTsKLQkJCXZpc2li aWxpdHltYXBfc2V0X3ZtYml0cyhyZWxhdGlvbiwKLQkJCQkJCQkJCSBCdWZmZXJHZXRCbG9ja051 bWJlcihidWZmZXIpLAotCQkJCQkJCQkJIHZtYnVmZmVyLAotCQkJCQkJCQkJIFZJU0lCSUxJVFlN QVBfQUxMX1ZJU0lCTEUgfAotCQkJCQkJCQkJIFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTik7CisJ CQl2aXNpYmlsaXR5bWFwX3NldChyZWxhdGlvbiwKKwkJCQkJCQkgIEJ1ZmZlckdldEJsb2NrTnVt YmVyKGJ1ZmZlciksCisJCQkJCQkJICB2bWJ1ZmZlciwKKwkJCQkJCQkgIFZJU0lCSUxJVFlNQVBf QUxMX1ZJU0lCTEUgfAorCQkJCQkJCSAgVklTSUJJTElUWU1BUF9BTExfRlJPWkVOKTsKIAkJfQog CiAJCS8qCkBAIC04Nzk5LDM2ICs4Nzk5LDYgQEAgYm90dG9tdXBfc29ydF9hbmRfc2hyaW5rKFRN X0luZGV4RGVsZXRlT3AgKmRlbHN0YXRlKQogCXJldHVybiBuYmxvY2tzZmF2b3JhYmxlOwogfQog Ci0vKgotICogUGVyZm9ybSBYTG9nSW5zZXJ0IGZvciBhIGhlYXAtdmlzaWJsZSBvcGVyYXRpb24u ICAnYmxvY2snIGlzIHRoZSBibG9jawotICogYmVpbmcgbWFya2VkIGFsbC12aXNpYmxlLCBhbmQg dm1fYnVmZmVyIGlzIHRoZSBidWZmZXIgY29udGFpbmluZyB0aGUKLSAqIGNvcnJlc3BvbmRpbmcg dmlzaWJpbGl0eSBtYXAgYmxvY2suICBCb3RoIHNob3VsZCBoYXZlIGFscmVhZHkgYmVlbiBtb2Rp ZmllZAotICogYW5kIGRpcnRpZWQuCi0gKgotICogc25hcHNob3RDb25mbGljdEhvcml6b24gY29t ZXMgZnJvbSB0aGUgbGFyZ2VzdCB4bWluIG9uIHRoZSBwYWdlIGJlaW5nCi0gKiBtYXJrZWQgYWxs LXZpc2libGUuICBSRURPIHJvdXRpbmUgdXNlcyBpdCB0byBnZW5lcmF0ZSByZWNvdmVyeSBjb25m bGljdHMuCi0gKi8KLVhMb2dSZWNQdHIKLWxvZ19oZWFwX3Zpc2libGUoUmVsYXRpb24gcmVsLCBC dWZmZXIgdm1fYnVmZmVyLAotCQkJCSBUcmFuc2FjdGlvbklkIHNuYXBzaG90Q29uZmxpY3RIb3Jp em9uLCB1aW50OCB2bWZsYWdzKQotewotCXhsX2hlYXBfdmlzaWJsZSB4bHJlYzsKLQlYTG9nUmVj UHRyCXJlY3B0cjsKLQotCUFzc2VydChCdWZmZXJJc1ZhbGlkKHZtX2J1ZmZlcikpOwotCi0JeGxy ZWMuc25hcHNob3RDb25mbGljdEhvcml6b24gPSBzbmFwc2hvdENvbmZsaWN0SG9yaXpvbjsKLQl4 bHJlYy5mbGFncyA9IHZtZmxhZ3M7Ci0JaWYgKFJlbGF0aW9uSXNBY2Nlc3NpYmxlSW5Mb2dpY2Fs RGVjb2RpbmcocmVsKSkKLQkJeGxyZWMuZmxhZ3MgfD0gVklTSUJJTElUWU1BUF9YTE9HX0NBVEFM T0dfUkVMOwotCVhMb2dCZWdpbkluc2VydCgpOwotCVhMb2dSZWdpc3RlckRhdGEoJnhscmVjLCBT aXplT2ZIZWFwVmlzaWJsZSk7Ci0JWExvZ1JlZ2lzdGVyQnVmZmVyKDAsIHZtX2J1ZmZlciwgMCk7 Ci0JcmVjcHRyID0gWExvZ0luc2VydChSTV9IRUFQMl9JRCwgWExPR19IRUFQMl9WSVNJQkxFKTsK LQotCXJldHVybiByZWNwdHI7Ci19Ci0KIC8qCiAgKiBQZXJmb3JtIFhMb2dJbnNlcnQgZm9yIGEg aGVhcC11cGRhdGUgb3BlcmF0aW9uLiAgQ2FsbGVyIG11c3QgYWxyZWFkeQogICogaGF2ZSBtb2Rp ZmllZCB0aGUgYnVmZmVyKHMpIGFuZCBtYXJrZWQgdGhlbSBkaXJ0eS4KZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV94bG9nLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3Mv aGVhcC9oZWFwYW1feGxvZy5jCmluZGV4IGMxZjMzMmY3YTlhLi5hODkwODM3MzA2NyAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX3hsb2cuYworKysgYi9zcmMvYmFj a2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1feGxvZy5jCkBAIC0yNTEsOCArMjUxLDggQEAgaGVhcF94 bG9nX3BydW5lX2ZyZWV6ZShYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAkgKgogCSAqIEluIHJl Y292ZXJ5LCB3ZSBleHBlY3Qgbm8gb3RoZXIgd3JpdGVycywgc28gd3JpdGluZyB0byB0aGUgVk0g cGFnZQogCSAqIHdpdGhvdXQgaG9sZGluZyBhIGxvY2sgb24gdGhlIGhlYXAgcGFnZSBpcyBjb25z aWRlcmVkIHNhZmUgZW5vdWdoLiBJdAotCSAqIGlzIGRvbmUgdGhpcyB3YXkgd2hlbiByZXBsYXlp bmcgeGxfaGVhcF92aXNpYmxlIHJlY29yZHMgKHNlZQotCSAqIGhlYXBfeGxvZ192aXNpYmxlKCkp LgorCSAqIGlzIGFsc28gZG9uZSB0aGlzIHdheSB3aGVuIHJlcGxheWluZyBDT1BZIEZSRUVaRSBy ZWNvcmRzIChzZWUKKwkgKiBoZWFwX3hsb2dfbXVsdGlfaW5zZXJ0KCkpLgogCSAqLwogCWlmICh2 bWZsYWdzICYgVklTSUJJTElUWU1BUF9WQUxJRF9CSVRTICYmCiAJCVhMb2dSZWFkQnVmZmVyRm9y UmVkb0V4dGVuZGVkKHJlY29yZCwgMSwKQEAgLTI2OCw3ICsyNjgsNyBAQCBoZWFwX3hsb2dfcHJ1 bmVfZnJlZXplKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCQlpZiAoUGFnZUlzTmV3KHZtcGFn ZSkpCiAJCQlQYWdlSW5pdCh2bXBhZ2UsIEJMQ0tTWiwgMCk7CiAKLQkJb2xkX3ZtYml0cyA9IHZp c2liaWxpdHltYXBfc2V0X3ZtYml0cyhyZWxuLCBibGtubywgdm1idWZmZXIsIHZtZmxhZ3MpOwor CQlvbGRfdm1iaXRzID0gdmlzaWJpbGl0eW1hcF9zZXQocmVsbiwgYmxrbm8sIHZtYnVmZmVyLCB2 bWZsYWdzKTsKIAogCQkvKiBPbmx5IHNldCBWTSBwYWdlIExTTiBpZiB3ZSBtb2RpZmllZCB0aGUg cGFnZSAqLwogCQlpZiAob2xkX3ZtYml0cyAhPSB2bWZsYWdzKQpAQCAtMjg3LDgxICsyODcsNiBA QCBoZWFwX3hsb2dfcHJ1bmVfZnJlZXplKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCQlYTG9n UmVjb3JkUGFnZVdpdGhGcmVlU3BhY2UocmxvY2F0b3IsIGJsa25vLCBmcmVlc3BhY2UpOwogfQog Ci0vKgotICogUmVwbGF5IFhMT0dfSEVBUDJfVklTSUJMRSByZWNvcmRzLgotICoKLSAqIEl0IGlz IGltcGVyYXRpdmUgdGhhdCB0aGUgcHJldmlvdXNseSBlbWl0dGVkIHJlY29yZCBzZXQgUERfQUxM X1ZJU0lCTEUgb24KLSAqIHRoZSBoZWFwIHBhZ2UuIFdlIG11c3QgbmV2ZXIgZW5kIHVwIHdpdGgg YSBzaXR1YXRpb24gd2hlcmUgdGhlIHZpc2liaWxpdHkKLSAqIG1hcCBiaXQgaXMgc2V0LCBhbmQg dGhlIHBhZ2UtbGV2ZWwgUERfQUxMX1ZJU0lCTEUgYml0IGlzIGNsZWFyLiAgSWYgdGhhdAotICog d2VyZSB0byBvY2N1ciwgdGhlbiBhIHN1YnNlcXVlbnQgcGFnZSBtb2RpZmljYXRpb24gd291bGQg ZmFpbCB0byBjbGVhciB0aGUKLSAqIHZpc2liaWxpdHkgbWFwIGJpdC4KLSAqLwotc3RhdGljIHZv aWQKLWhlYXBfeGxvZ192aXNpYmxlKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQotewotCVhMb2dS ZWNQdHIJbHNuID0gcmVjb3JkLT5FbmRSZWNQdHI7Ci0JeGxfaGVhcF92aXNpYmxlICp4bHJlYyA9 ICh4bF9oZWFwX3Zpc2libGUgKikgWExvZ1JlY0dldERhdGEocmVjb3JkKTsKLQlCdWZmZXIJCXZt YnVmZmVyID0gSW52YWxpZEJ1ZmZlcjsKLQlSZWxGaWxlTG9jYXRvciBybG9jYXRvcjsKLQlCbG9j a051bWJlciBibGtubzsKLQotCUFzc2VydCgoeGxyZWMtPmZsYWdzICYgVklTSUJJTElUWU1BUF9Y TE9HX1ZBTElEX0JJVFMpID09IHhscmVjLT5mbGFncyk7Ci0KLQlYTG9nUmVjR2V0QmxvY2tUYWco cmVjb3JkLCAwLCAmcmxvY2F0b3IsIE5VTEwsICZibGtubyk7Ci0KLQkvKgotCSAqIElmIHRoZXJl IGFyZSBhbnkgSG90IFN0YW5kYnkgdHJhbnNhY3Rpb25zIHJ1bm5pbmcgdGhhdCBoYXZlIGFuIHht aW4KLQkgKiBob3Jpem9uIG9sZCBlbm91Z2ggdGhhdCB0aGlzIHBhZ2UgaXNuJ3QgYWxsLXZpc2li bGUgZm9yIHRoZW0sIHRoZXkKLQkgKiBtaWdodCBpbmNvcnJlY3RseSBkZWNpZGUgdGhhdCBhbiBp bmRleC1vbmx5IHNjYW4gY2FuIHNraXAgYSBoZWFwIGZldGNoLgotCSAqCi0JICogTkI6IEl0IG1p Z2h0IGJlIGJldHRlciB0byB0aHJvdyBzb21lIGtpbmQgb2YgInNvZnQiIGNvbmZsaWN0IGhlcmUg dGhhdAotCSAqIGZvcmNlcyBhbnkgaW5kZXgtb25seSBzY2FuIHRoYXQgaXMgaW4gZmxpZ2h0IHRv IHBlcmZvcm0gaGVhcCBmZXRjaGVzLAotCSAqIHJhdGhlciB0aGFuIGtpbGxpbmcgdGhlIHRyYW5z YWN0aW9uIG91dHJpZ2h0LgotCSAqLwotCWlmIChJbkhvdFN0YW5kYnkpCi0JCVJlc29sdmVSZWNv dmVyeUNvbmZsaWN0V2l0aFNuYXBzaG90KHhscmVjLT5zbmFwc2hvdENvbmZsaWN0SG9yaXpvbiwK LQkJCQkJCQkJCQkJeGxyZWMtPmZsYWdzICYgVklTSUJJTElUWU1BUF9YTE9HX0NBVEFMT0dfUkVM LAotCQkJCQkJCQkJCQlybG9jYXRvcik7Ci0KLQkvKgotCSAqIEV2ZW4gaWYgdGhlIGhlYXAgcmVs YXRpb24gd2FzIGRyb3BwZWQgb3IgdHJ1bmNhdGVkIGFuZCB0aGUgcHJldmlvdXNseQotCSAqIGVt aXR0ZWQgcmVjb3JkIHNraXBwZWQgdGhlIGhlYXAgcGFnZSB1cGRhdGUgZHVlIHRvIHRoaXMgTFNO IGludGVybG9jaywKLQkgKiBpdCdzIHN0aWxsIHNhZmUgdG8gdXBkYXRlIHRoZSB2aXNpYmlsaXR5 IG1hcC4gIEFueSBXQUwgcmVjb3JkIHRoYXQKLQkgKiBjbGVhcnMgdGhlIHZpc2liaWxpdHkgbWFw IGJpdCBkb2VzIHNvIGJlZm9yZSBjaGVja2luZyB0aGUgcGFnZSBMU04sIHNvCi0JICogYW55IGJp dHMgdGhhdCBuZWVkIHRvIGJlIGNsZWFyZWQgd2lsbCBzdGlsbCBiZSBjbGVhcmVkLgotCSAqLwot CWlmIChYTG9nUmVhZEJ1ZmZlckZvclJlZG9FeHRlbmRlZChyZWNvcmQsIDAsIFJCTV9aRVJPX09O X0VSUk9SLCBmYWxzZSwKLQkJCQkJCQkJCSAgJnZtYnVmZmVyKSA9PSBCTEtfTkVFRFNfUkVETykK LQl7Ci0JCVBhZ2UJCXZtcGFnZSA9IEJ1ZmZlckdldFBhZ2Uodm1idWZmZXIpOwotCQlSZWxhdGlv bglyZWxuOwotCQl1aW50OAkJdm1iaXRzOwotCi0JCS8qIGluaXRpYWxpemUgdGhlIHBhZ2UgaWYg aXQgd2FzIHJlYWQgYXMgemVyb3MgKi8KLQkJaWYgKFBhZ2VJc05ldyh2bXBhZ2UpKQotCQkJUGFn ZUluaXQodm1wYWdlLCBCTENLU1osIDApOwotCi0JCS8qIHJlbW92ZSBWSVNJQklMSVRZTUFQX1hM T0dfKiAqLwotCQl2bWJpdHMgPSB4bHJlYy0+ZmxhZ3MgJiBWSVNJQklMSVRZTUFQX1ZBTElEX0JJ VFM7Ci0KLQkJLyoKLQkJICogWExvZ1JlYWRCdWZmZXJGb3JSZWRvRXh0ZW5kZWQgbG9ja2VkIHRo ZSBidWZmZXIuIEJ1dAotCQkgKiB2aXNpYmlsaXR5bWFwX3NldCB3aWxsIGhhbmRsZSBsb2NraW5n IGl0c2VsZi4KLQkJICovCi0JCUxvY2tCdWZmZXIodm1idWZmZXIsIEJVRkZFUl9MT0NLX1VOTE9D Syk7Ci0KLQkJcmVsbiA9IENyZWF0ZUZha2VSZWxjYWNoZUVudHJ5KHJsb2NhdG9yKTsKLQotCQl2 aXNpYmlsaXR5bWFwX3NldChyZWxuLCBibGtubywgbHNuLCB2bWJ1ZmZlciwKLQkJCQkJCSAgeGxy ZWMtPnNuYXBzaG90Q29uZmxpY3RIb3Jpem9uLCB2bWJpdHMpOwotCi0JCVJlbGVhc2VCdWZmZXIo dm1idWZmZXIpOwotCQlGcmVlRmFrZVJlbGNhY2hlRW50cnkocmVsbik7Ci0JfQotCWVsc2UgaWYg KEJ1ZmZlcklzVmFsaWQodm1idWZmZXIpKQotCQlVbmxvY2tSZWxlYXNlQnVmZmVyKHZtYnVmZmVy KTsKLX0KLQogLyoKICAqIEdpdmVuIGFuICJpbmZvYml0cyIgZmllbGQgZnJvbSBhbiBYTG9nIHJl Y29yZCwgc2V0IHRoZSBjb3JyZWN0IGJpdHMgaW4gdGhlCiAgKiBnaXZlbiBpbmZvbWFzayBhbmQg aW5mb21hc2syIGZvciB0aGUgdHVwbGUgdG91Y2hlZCBieSB0aGUgcmVjb3JkLgpAQCAtNzM5LDgg KzY2NCw4IEBAIGhlYXBfeGxvZ19tdWx0aV9pbnNlcnQoWExvZ1JlYWRlclN0YXRlICpyZWNvcmQp CiAJICoKIAkgKiBJbiByZWNvdmVyeSwgd2UgZXhwZWN0IG5vIG90aGVyIHdyaXRlcnMsIHNvIHdy aXRpbmcgdG8gdGhlIFZNIHBhZ2UKIAkgKiB3aXRob3V0IGhvbGRpbmcgYSBsb2NrIG9uIHRoZSBo ZWFwIHBhZ2UgaXMgY29uc2lkZXJlZCBzYWZlIGVub3VnaC4gSXQKLQkgKiBpcyBkb25lIHRoaXMg d2F5IHdoZW4gcmVwbGF5aW5nIHhsX2hlYXBfdmlzaWJsZSByZWNvcmRzIChzZWUKLQkgKiBoZWFw X3hsb2dfdmlzaWJsZSgpKS4KKwkgKiBpcyBkb25lIHRoaXMgd2F5IHdoZW4gcmVwbGF5aW5nIHhs X2hlYXBfcHJ1bmUgcmVjb3JkcyAoc2VlCisJICogaGVhcF94bG9nX3BydW5lX2FuZF9mcmVlemUo KSkuCiAJICovCiAJaWYgKHhscmVjLT5mbGFncyAmIFhMSF9JTlNFUlRfQUxMX0ZST1pFTl9TRVQg JiYKIAkJWExvZ1JlYWRCdWZmZXJGb3JSZWRvRXh0ZW5kZWQocmVjb3JkLCAxLCBSQk1fWkVST19P Tl9FUlJPUiwgZmFsc2UsCkBAIC03NTMsMTAgKzY3OCwxMCBAQCBoZWFwX3hsb2dfbXVsdGlfaW5z ZXJ0KFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCQlpZiAoUGFnZUlzTmV3KHZtcGFnZSkpCiAJ CQlQYWdlSW5pdCh2bXBhZ2UsIEJMQ0tTWiwgMCk7CiAKLQkJdmlzaWJpbGl0eW1hcF9zZXRfdm1i aXRzKHJlbG4sIGJsa25vLAotCQkJCQkJCQkgdm1idWZmZXIsCi0JCQkJCQkJCSBWSVNJQklMSVRZ TUFQX0FMTF9WSVNJQkxFIHwKLQkJCQkJCQkJIFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTik7CisJ CXZpc2liaWxpdHltYXBfc2V0KHJlbG4sIGJsa25vLAorCQkJCQkJICB2bWJ1ZmZlciwKKwkJCQkJ CSAgVklTSUJJTElUWU1BUF9BTExfVklTSUJMRSB8CisJCQkJCQkgIFZJU0lCSUxJVFlNQVBfQUxM X0ZST1pFTik7CiAKIAkJLyoKIAkJICogSXQgaXMgbm90IHBvc3NpYmxlIHRoYXQgdGhlIFZNIHdh cyBhbHJlYWR5IHNldCBmb3IgdGhpcyBoZWFwIHBhZ2UsCkBAIC0xMzQyLDkgKzEyNjcsNiBAQCBo ZWFwMl9yZWRvKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCQljYXNlIFhMT0dfSEVBUDJfUFJV TkVfVkFDVVVNX0NMRUFOVVA6CiAJCQloZWFwX3hsb2dfcHJ1bmVfZnJlZXplKHJlY29yZCk7CiAJ CQlicmVhazsKLQkJY2FzZSBYTE9HX0hFQVAyX1ZJU0lCTEU6Ci0JCQloZWFwX3hsb2dfdmlzaWJs ZShyZWNvcmQpOwotCQkJYnJlYWs7CiAJCWNhc2UgWExPR19IRUFQMl9NVUxUSV9JTlNFUlQ6CiAJ CQloZWFwX3hsb2dfbXVsdGlfaW5zZXJ0KHJlY29yZCk7CiAJCQlicmVhazsKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNz L2hlYXAvcHJ1bmVoZWFwLmMKaW5kZXggYTE0Yzc5M2RhN2UuLjM5ZDU5YTQzZmY3IDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYworKysgYi9zcmMvYmFja2Vu ZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYwpAQCAtMTAyNiw4ICsxMDI2LDggQEAgaGVhcF9wYWdl X3BydW5lX2FuZF9mcmVlemUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJCXsK IAkJCUFzc2VydChQYWdlSXNBbGxWaXNpYmxlKHBhZ2UpKTsKIAotCQkJb2xkX3ZtYml0cyA9IHZp c2liaWxpdHltYXBfc2V0X3ZtYml0cyhyZWxhdGlvbiwgYmxvY2tubywKLQkJCQkJCQkJCQkJCSAg dm1idWZmZXIsIG5ld192bWJpdHMpOworCQkJb2xkX3ZtYml0cyA9IHZpc2liaWxpdHltYXBfc2V0 KHJlbGF0aW9uLCBibG9ja25vLAorCQkJCQkJCQkJCSAgIHZtYnVmZmVyLCBuZXdfdm1iaXRzKTsK IAkJCWlmIChvbGRfdm1iaXRzID09IG5ld192bWJpdHMpCiAJCQl7CiAJCQkJTG9ja0J1ZmZlcih2 bWJ1ZmZlciwgQlVGRkVSX0xPQ0tfVU5MT0NLKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxh enkuYwppbmRleCA4ZWMwNDc2YTBkNC4uMjg0MzYzODlkNjMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVh cC92YWN1dW1sYXp5LmMKQEAgLTE4ODcsMTAgKzE4ODcsMTAgQEAgbGF6eV9zY2FuX25ld19vcl9l bXB0eShMVlJlbFN0YXRlICp2YWNyZWwsIEJ1ZmZlciBidWYsIEJsb2NrTnVtYmVyIGJsa25vLAog CQkJUGFnZVNldEFsbFZpc2libGUocGFnZSk7CiAJCQlNYXJrQnVmZmVyRGlydHkoYnVmKTsKIAot CQkJdmlzaWJpbGl0eW1hcF9zZXRfdm1iaXRzKHZhY3JlbC0+cmVsLCBibGtubywKLQkJCQkJCQkJ CSB2bWJ1ZmZlciwKLQkJCQkJCQkJCSBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxFIHwKLQkJCQkJ CQkJCSBWSVNJQklMSVRZTUFQX0FMTF9GUk9aRU4pOworCQkJdmlzaWJpbGl0eW1hcF9zZXQodmFj cmVsLT5yZWwsIGJsa25vLAorCQkJCQkJCSAgdm1idWZmZXIsCisJCQkJCQkJICBWSVNJQklMSVRZ TUFQX0FMTF9WSVNJQkxFIHwKKwkJCQkJCQkgIFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTik7CiAK IAkJCWlmIChSZWxhdGlvbk5lZWRzV0FMKHZhY3JlbC0+cmVsKSkKIAkJCXsKQEAgLTI3NzUsOSAr Mjc3NSw5IEBAIGxhenlfdmFjdXVtX2hlYXBfcGFnZShMVlJlbFN0YXRlICp2YWNyZWwsIEJsb2Nr TnVtYmVyIGJsa25vLCBCdWZmZXIgYnVmZmVyLAogCWlmICgodm1mbGFncyAmIFZJU0lCSUxJVFlN QVBfVkFMSURfQklUUykgIT0gMCkKIAl7CiAJCVBhZ2VTZXRBbGxWaXNpYmxlKHBhZ2UpOwotCQl2 aXNpYmlsaXR5bWFwX3NldF92bWJpdHModmFjcmVsLT5yZWwsCi0JCQkJCQkJCSBibGtubywKLQkJ CQkJCQkJIHZtYnVmZmVyLCB2bWZsYWdzKTsKKwkJdmlzaWJpbGl0eW1hcF9zZXQodmFjcmVsLT5y ZWwsCisJCQkJCQkgIGJsa25vLAorCQkJCQkJICB2bWJ1ZmZlciwgdm1mbGFncyk7CiAJCWNvbmZs aWN0X3hpZCA9IHZpc2liaWxpdHlfY3V0b2ZmX3hpZDsKIAl9CiAKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2FjY2Vzcy9oZWFwL3Zpc2liaWxpdHltYXAuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9o ZWFwL3Zpc2liaWxpdHltYXAuYwppbmRleCA3NWZjYjNmMDY3YS4uMzhkMzEzMWU1NmIgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Zpc2liaWxpdHltYXAuYworKysgYi9zcmMv YmFja2VuZC9hY2Nlc3MvaGVhcC92aXNpYmlsaXR5bWFwLmMKQEAgLTE0LDggKzE0LDcgQEAKICAq CQl2aXNpYmlsaXR5bWFwX2NsZWFyICAtIGNsZWFyIGJpdHMgZm9yIG9uZSBwYWdlIGluIHRoZSB2 aXNpYmlsaXR5IG1hcAogICoJCXZpc2liaWxpdHltYXBfcGluCSAtIHBpbiBhIG1hcCBwYWdlIGZv ciBzZXR0aW5nIGEgYml0CiAgKgkJdmlzaWJpbGl0eW1hcF9waW5fb2sgLSBjaGVjayB3aGV0aGVy IGNvcnJlY3QgbWFwIHBhZ2UgaXMgYWxyZWFkeSBwaW5uZWQKLSAqCQl2aXNpYmlsaXR5bWFwX3Nl dAkgLSBzZXQgYml0KHMpIGluIGEgcHJldmlvdXNseSBwaW5uZWQgcGFnZSBhbmQgbG9nCi0gKgkJ dmlzaWJpbGl0eW1hcF9zZXRfdm1iaXRzIC0gc2V0IGJpdChzKSBpbiBhIHBpbm5lZCBwYWdlCisg KgkJdmlzaWJpbGl0eW1hcF9zZXQJIC0gc2V0IGJpdChzKSBpbiBhIHByZXZpb3VzbHkgcGlubmVk IHBhZ2UKICAqCQl2aXNpYmlsaXR5bWFwX2dldF9zdGF0dXMgLSBnZXQgc3RhdHVzIG9mIGJpdHMK ICAqCQl2aXNpYmlsaXR5bWFwX2NvdW50ICAtIGNvdW50IG51bWJlciBvZiBiaXRzIHNldCBpbiB2 aXNpYmlsaXR5IG1hcAogICoJCXZpc2liaWxpdHltYXBfcHJlcGFyZV90cnVuY2F0ZSAtCkBAIC0y MjAsODIgKzIxOSw2IEBAIHZpc2liaWxpdHltYXBfcGluX29rKEJsb2NrTnVtYmVyIGhlYXBCbGss IEJ1ZmZlciB2bWJ1ZikKIAlyZXR1cm4gQnVmZmVySXNWYWxpZCh2bWJ1ZikgJiYgQnVmZmVyR2V0 QmxvY2tOdW1iZXIodm1idWYpID09IG1hcEJsb2NrOwogfQogCi0vKgotICoJdmlzaWJpbGl0eW1h cF9zZXQgLSBzZXQgYml0KHMpIG9uIGEgcHJldmlvdXNseSBwaW5uZWQgcGFnZQotICoKLSAqIHJl Y3B0ciBpcyB0aGUgTFNOIG9mIHRoZSBYTE9HIHJlY29yZCB3ZSdyZSByZXBsYXlpbmcsIGlmIHdl J3JlIGluIHJlY292ZXJ5LAotICogb3IgSW52YWxpZFhMb2dSZWNQdHIgaW4gbm9ybWFsIHJ1bm5p bmcuICBUaGUgVk0gcGFnZSBMU04gaXMgYWR2YW5jZWQgdG8gdGhlCi0gKiBvbmUgcHJvdmlkZWQ7 IGluIG5vcm1hbCBydW5uaW5nLCB3ZSBnZW5lcmF0ZSBhIG5ldyBYTE9HIHJlY29yZCBhbmQgc2V0 IHRoZQotICogcGFnZSBMU04gdG8gdGhhdCB2YWx1ZSAodGhvdWdoIHRoZSBoZWFwIHBhZ2UncyBM U04gbWF5ICpub3QqIGJlIHVwZGF0ZWQ7Ci0gKiBzZWUgYmVsb3cpLiAgY3V0b2ZmX3hpZCBpcyB0 aGUgbGFyZ2VzdCB4bWluIG9uIHRoZSBwYWdlIGJlaW5nIG1hcmtlZAotICogYWxsLXZpc2libGU7 IGl0IGlzIG5lZWRlZCBmb3IgSG90IFN0YW5kYnksIGFuZCBjYW4gYmUgSW52YWxpZFRyYW5zYWN0 aW9uSWQKLSAqIGlmIHRoZSBwYWdlIGNvbnRhaW5zIG5vIHR1cGxlcy4gIEl0IGNhbiBhbHNvIGJl IHNldCB0byBJbnZhbGlkVHJhbnNhY3Rpb25JZAotICogd2hlbiBhIHBhZ2UgdGhhdCBpcyBhbHJl YWR5IGFsbC12aXNpYmxlIGlzIGJlaW5nIG1hcmtlZCBhbGwtZnJvemVuLgotICoKLSAqIENhbGxl ciBpcyBleHBlY3RlZCB0byBzZXQgdGhlIGhlYXAgcGFnZSdzIFBEX0FMTF9WSVNJQkxFIGJpdCBi ZWZvcmUgY2FsbGluZwotICogdGhpcyBmdW5jdGlvbi4KLSAqCi0gKiBZb3UgbXVzdCBwYXNzIGEg YnVmZmVyIGNvbnRhaW5pbmcgdGhlIGNvcnJlY3QgbWFwIHBhZ2UgdG8gdGhpcyBmdW5jdGlvbi4K LSAqIENhbGwgdmlzaWJpbGl0eW1hcF9waW4gZmlyc3QgdG8gcGluIHRoZSByaWdodCBvbmUuIFRo aXMgZnVuY3Rpb24gZG9lc24ndCBkbwotICogYW55IEkvTy4KLSAqCi0gKiBSZXR1cm5zIHRoZSBz dGF0ZSBvZiB0aGUgcGFnZSdzIFZNIGJpdHMgYmVmb3JlIHNldHRpbmcgZmxhZ3MuCi0gKi8KLXVp bnQ4Ci12aXNpYmlsaXR5bWFwX3NldChSZWxhdGlvbiByZWwsIEJsb2NrTnVtYmVyIGhlYXBCbGss Ci0JCQkJICBYTG9nUmVjUHRyIHJlY3B0ciwgQnVmZmVyIHZtQnVmLCBUcmFuc2FjdGlvbklkIGN1 dG9mZl94aWQsCi0JCQkJICB1aW50OCBmbGFncykKLXsKLQlCbG9ja051bWJlciBtYXBCbG9jayA9 IEhFQVBCTEtfVE9fTUFQQkxPQ0soaGVhcEJsayk7Ci0JdWludDMyCQltYXBCeXRlID0gSEVBUEJM S19UT19NQVBCWVRFKGhlYXBCbGspOwotCXVpbnQ4CQltYXBPZmZzZXQgPSBIRUFQQkxLX1RPX09G RlNFVChoZWFwQmxrKTsKLQlQYWdlCQlwYWdlOwotCXVpbnQ4CSAgICptYXA7Ci0JdWludDgJCXN0 YXR1czsKLQotI2lmZGVmIFRSQUNFX1ZJU0lCSUxJVFlNQVAKLQllbG9nKERFQlVHMSwgInZtX3Nl dCBmbGFncyAweCUwMlggZm9yICVzICVkIiwKLQkJIGZsYWdzLCBSZWxhdGlvbkdldFJlbGF0aW9u TmFtZShyZWwpLCBoZWFwQmxrKTsKLSNlbmRpZgotCi0JQXNzZXJ0KEluUmVjb3ZlcnkgfHwgWExv Z1JlY1B0cklzSW52YWxpZChyZWNwdHIpKTsKLQlBc3NlcnQoKGZsYWdzICYgVklTSUJJTElUWU1B UF9WQUxJRF9CSVRTKSA9PSBmbGFncyk7Ci0KLQkvKiBNdXN0IG5ldmVyIHNldCBhbGxfZnJvemVu IGJpdCB3aXRob3V0IGFsc28gc2V0dGluZyBhbGxfdmlzaWJsZSBiaXQgKi8KLQlBc3NlcnQoZmxh Z3MgIT0gVklTSUJJTElUWU1BUF9BTExfRlJPWkVOKTsKLQotCS8qIENoZWNrIHRoYXQgd2UgaGF2 ZSB0aGUgcmlnaHQgVk0gcGFnZSBwaW5uZWQgKi8KLQlpZiAoIUJ1ZmZlcklzVmFsaWQodm1CdWYp IHx8IEJ1ZmZlckdldEJsb2NrTnVtYmVyKHZtQnVmKSAhPSBtYXBCbG9jaykKLQkJZWxvZyhFUlJP UiwgIndyb25nIFZNIGJ1ZmZlciBwYXNzZWQgdG8gdmlzaWJpbGl0eW1hcF9zZXQiKTsKLQotCXBh Z2UgPSBCdWZmZXJHZXRQYWdlKHZtQnVmKTsKLQltYXAgPSAodWludDggKikgUGFnZUdldENvbnRl bnRzKHBhZ2UpOwotCUxvY2tCdWZmZXIodm1CdWYsIEJVRkZFUl9MT0NLX0VYQ0xVU0lWRSk7Ci0K LQlzdGF0dXMgPSAobWFwW21hcEJ5dGVdID4+IG1hcE9mZnNldCkgJiBWSVNJQklMSVRZTUFQX1ZB TElEX0JJVFM7Ci0JaWYgKGZsYWdzICE9IHN0YXR1cykKLQl7Ci0JCVNUQVJUX0NSSVRfU0VDVElP TigpOwotCi0JCW1hcFttYXBCeXRlXSB8PSAoZmxhZ3MgPDwgbWFwT2Zmc2V0KTsKLQkJTWFya0J1 ZmZlckRpcnR5KHZtQnVmKTsKLQotCQlpZiAoUmVsYXRpb25OZWVkc1dBTChyZWwpKQotCQl7Ci0J CQlpZiAoWExvZ1JlY1B0cklzSW52YWxpZChyZWNwdHIpKQotCQkJewotCQkJCUFzc2VydCghSW5S ZWNvdmVyeSk7Ci0JCQkJcmVjcHRyID0gbG9nX2hlYXBfdmlzaWJsZShyZWwsIHZtQnVmLCBjdXRv ZmZfeGlkLCBmbGFncyk7Ci0JCQl9Ci0JCQlQYWdlU2V0TFNOKHBhZ2UsIHJlY3B0cik7Ci0JCX0K LQotCQlFTkRfQ1JJVF9TRUNUSU9OKCk7Ci0JfQotCi0JTG9ja0J1ZmZlcih2bUJ1ZiwgQlVGRkVS X0xPQ0tfVU5MT0NLKTsKLQlyZXR1cm4gc3RhdHVzOwotfQogCiAvKgogICogU2V0IGZsYWdzIGlu IHRoZSBWTSBibG9jayBjb250YWluZWQgaW4gdGhlIHBhc3NlZCBpbiB2bUJ1Zi4KQEAgLTMxOCw4 ICsyNDEsOCBAQCB2aXNpYmlsaXR5bWFwX3NldChSZWxhdGlvbiByZWwsIEJsb2NrTnVtYmVyIGhl YXBCbGssCiAgKiBpcyBwaW5uZWQgYW5kIGV4Y2x1c2l2ZSBsb2NrZWQuCiAgKi8KIHVpbnQ4Ci12 aXNpYmlsaXR5bWFwX3NldF92bWJpdHMoUmVsYXRpb24gcmVsLCBCbG9ja051bWJlciBoZWFwQmxr LAotCQkJCQkJIEJ1ZmZlciB2bUJ1ZiwgdWludDggZmxhZ3MpCit2aXNpYmlsaXR5bWFwX3NldChS ZWxhdGlvbiByZWwsIEJsb2NrTnVtYmVyIGhlYXBCbGssCisJCQkJICBCdWZmZXIgdm1CdWYsIHVp bnQ4IGZsYWdzKQogewogCUJsb2NrTnVtYmVyIG1hcEJsb2NrID0gSEVBUEJMS19UT19NQVBCTE9D SyhoZWFwQmxrKTsKIAl1aW50MzIJCW1hcEJ5dGUgPSBIRUFQQkxLX1RPX01BUEJZVEUoaGVhcEJs ayk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3Mvcm1ncmRlc2MvaGVhcGRlc2MuYyBi L3NyYy9iYWNrZW5kL2FjY2Vzcy9ybWdyZGVzYy9oZWFwZGVzYy5jCmluZGV4IDFjYjQ0Y2EzMmQz Li45MzUwNWNiOGM1NiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3JtZ3JkZXNjL2hl YXBkZXNjLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3JtZ3JkZXNjL2hlYXBkZXNjLmMKQEAg LTM0OSwxMyArMzQ5LDYgQEAgaGVhcDJfZGVzYyhTdHJpbmdJbmZvIGJ1ZiwgWExvZ1JlYWRlclN0 YXRlICpyZWNvcmQpCiAJCQl9CiAJCX0KIAl9Ci0JZWxzZSBpZiAoaW5mbyA9PSBYTE9HX0hFQVAy X1ZJU0lCTEUpCi0JewotCQl4bF9oZWFwX3Zpc2libGUgKnhscmVjID0gKHhsX2hlYXBfdmlzaWJs ZSAqKSByZWM7Ci0KLQkJYXBwZW5kU3RyaW5nSW5mbyhidWYsICJzbmFwc2hvdENvbmZsaWN0SG9y aXpvbjogJXUsIGZsYWdzOiAweCUwMlgiLAotCQkJCQkJIHhscmVjLT5zbmFwc2hvdENvbmZsaWN0 SG9yaXpvbiwgeGxyZWMtPmZsYWdzKTsKLQl9CiAJZWxzZSBpZiAoaW5mbyA9PSBYTE9HX0hFQVAy X01VTFRJX0lOU0VSVCkKIAl7CiAJCXhsX2hlYXBfbXVsdGlfaW5zZXJ0ICp4bHJlYyA9ICh4bF9o ZWFwX211bHRpX2luc2VydCAqKSByZWM7CkBAIC00NjAsOSArNDUzLDYgQEAgaGVhcDJfaWRlbnRp ZnkodWludDggaW5mbykKIAkJY2FzZSBYTE9HX0hFQVAyX1BSVU5FX1ZBQ1VVTV9DTEVBTlVQOgog CQkJaWQgPSAiUFJVTkVfVkFDVVVNX0NMRUFOVVAiOwogCQkJYnJlYWs7Ci0JCWNhc2UgWExPR19I RUFQMl9WSVNJQkxFOgotCQkJaWQgPSAiVklTSUJMRSI7Ci0JCQlicmVhazsKIAkJY2FzZSBYTE9H X0hFQVAyX01VTFRJX0lOU0VSVDoKIAkJCWlkID0gIk1VTFRJX0lOU0VSVCI7CiAJCQlicmVhazsK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvZGVjb2RlLmMgYi9z cmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2RlY29kZS5jCmluZGV4IGNjMDNmMDcwNmU5 Li4yZmRkNGFmOTBhOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNh bC9kZWNvZGUuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2RlY29kZS5j CkBAIC00NTQsNyArNDU0LDYgQEAgaGVhcDJfZGVjb2RlKExvZ2ljYWxEZWNvZGluZ0NvbnRleHQg KmN0eCwgWExvZ1JlY29yZEJ1ZmZlciAqYnVmKQogCQljYXNlIFhMT0dfSEVBUDJfUFJVTkVfT05f QUNDRVNTOgogCQljYXNlIFhMT0dfSEVBUDJfUFJVTkVfVkFDVVVNX1NDQU46CiAJCWNhc2UgWExP R19IRUFQMl9QUlVORV9WQUNVVU1fQ0xFQU5VUDoKLQkJY2FzZSBYTE9HX0hFQVAyX1ZJU0lCTEU6 CiAJCWNhc2UgWExPR19IRUFQMl9MT0NLX1VQREFURUQ6CiAJCQlicmVhazsKIAkJZGVmYXVsdDoK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3N0YW5kYnkuYyBiL3NyYy9iYWNr ZW5kL3N0b3JhZ2UvaXBjL3N0YW5kYnkuYwppbmRleCA0MjIyYmRhYjA3OC4uYzYxOTY0M2UxMjEg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3N0YW5kYnkuYworKysgYi9zcmMv YmFja2VuZC9zdG9yYWdlL2lwYy9zdGFuZGJ5LmMKQEAgLTQ3NSwxMiArNDc1LDEyIEBAIFJlc29s dmVSZWNvdmVyeUNvbmZsaWN0V2l0aFNuYXBzaG90KFRyYW5zYWN0aW9uSWQgc25hcHNob3RDb25m bGljdEhvcml6b24sCiAJICogSWYgd2UgZ2V0IHBhc3NlZCBJbnZhbGlkVHJhbnNhY3Rpb25JZCB0 aGVuIHdlIGRvIG5vdGhpbmcgKG5vIGNvbmZsaWN0KS4KIAkgKgogCSAqIFRoaXMgY2FuIGhhcHBl biB3aGVuIHJlcGxheWluZyBhbHJlYWR5LWFwcGxpZWQgV0FMIHJlY29yZHMgYWZ0ZXIgYQotCSAq IHN0YW5kYnkgY3Jhc2ggb3IgcmVzdGFydCwgb3Igd2hlbiByZXBsYXlpbmcgYW4gWExPR19IRUFQ Ml9WSVNJQkxFCi0JICogcmVjb3JkIHRoYXQgbWFya3MgYXMgZnJvemVuIGEgcGFnZSB3aGljaCB3 YXMgYWxyZWFkeSBhbGwtdmlzaWJsZS4gIEl0J3MKLQkgKiBhbHNvIHF1aXRlIGNvbW1vbiB3aXRo IHJlY29yZHMgZ2VuZXJhdGVkIGR1cmluZyBpbmRleCBkZWxldGlvbgotCSAqIChvcmlnaW5hbCBl eGVjdXRpb24gb2YgdGhlIGRlbGV0aW9uIGNhbiByZWFzb24gdGhhdCBhIHJlY292ZXJ5IGNvbmZs aWN0Ci0JICogd2hpY2ggaXMgc3VmZmljaWVudCBmb3IgdGhlIGRlbGV0aW9uIG9wZXJhdGlvbiBt dXN0IHRha2UgcGxhY2UgYmVmb3JlCi0JICogcmVwbGF5IG9mIHRoZSBkZWxldGlvbiByZWNvcmQg aXRzZWxmKS4KKwkgKiBzdGFuZGJ5IGNyYXNoIG9yIHJlc3RhcnQsIG9yIHdoZW4gcmVwbGF5aW5n IGEgcmVjb3JkIHRoYXQgbWFya3MgYXMKKwkgKiBmcm96ZW4gYSBwYWdlIHdoaWNoIHdhcyBhbHJl YWR5IG1hcmtlZCBhbGwtdmlzaWJsZSBpbiB0aGUgdmlzaWJpbGl0eQorCSAqIG1hcC4gIEl0J3Mg YWxzbyBxdWl0ZSBjb21tb24gd2l0aCByZWNvcmRzIGdlbmVyYXRlZCBkdXJpbmcgaW5kZXgKKwkg KiBkZWxldGlvbiAob3JpZ2luYWwgZXhlY3V0aW9uIG9mIHRoZSBkZWxldGlvbiBjYW4gcmVhc29u IHRoYXQgYSByZWNvdmVyeQorCSAqIGNvbmZsaWN0IHdoaWNoIGlzIHN1ZmZpY2llbnQgZm9yIHRo ZSBkZWxldGlvbiBvcGVyYXRpb24gbXVzdCB0YWtlIHBsYWNlCisJICogYmVmb3JlIHJlcGxheSBv ZiB0aGUgZGVsZXRpb24gcmVjb3JkIGl0c2VsZikuCiAJICovCiAJaWYgKCFUcmFuc2FjdGlvbklk SXNWYWxpZChzbmFwc2hvdENvbmZsaWN0SG9yaXpvbikpCiAJCXJldHVybjsKZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW1feGxvZy5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hl YXBhbV94bG9nLmgKaW5kZXggODMzMTE0ZTBhNmUuLjYxY2VhZjJhOThiIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtX3hsb2cuaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3Mv aGVhcGFtX3hsb2cuaApAQCAtNjAsNyArNjAsNiBAQAogI2RlZmluZSBYTE9HX0hFQVAyX1BSVU5F X09OX0FDQ0VTUwkJMHgxMAogI2RlZmluZSBYTE9HX0hFQVAyX1BSVU5FX1ZBQ1VVTV9TQ0FOCTB4 MjAKICNkZWZpbmUgWExPR19IRUFQMl9QUlVORV9WQUNVVU1fQ0xFQU5VUAkweDMwCi0jZGVmaW5l IFhMT0dfSEVBUDJfVklTSUJMRQkJMHg0MAogI2RlZmluZSBYTE9HX0hFQVAyX01VTFRJX0lOU0VS VCAweDUwCiAjZGVmaW5lIFhMT0dfSEVBUDJfTE9DS19VUERBVEVEIDB4NjAKICNkZWZpbmUgWExP R19IRUFQMl9ORVdfQ0lECQkweDcwCkBAIC00NTEsMTkgKzQ1MCw2IEBAIHR5cGVkZWYgc3RydWN0 IHhsX2hlYXBfaW5wbGFjZQogCiAjZGVmaW5lIE1pblNpemVPZkhlYXBJbnBsYWNlCShvZmZzZXRv Zih4bF9oZWFwX2lucGxhY2UsIG5tc2dzKSArIHNpemVvZihpbnQpKQogCi0vKgotICogVGhpcyBp cyB3aGF0IHdlIG5lZWQgdG8ga25vdyBhYm91dCBzZXR0aW5nIGEgdmlzaWJpbGl0eSBtYXAgYml0 Ci0gKgotICogQmFja3VwIGJsayAwOiB2aXNpYmlsaXR5IG1hcCBidWZmZXIKLSAqLwotdHlwZWRl ZiBzdHJ1Y3QgeGxfaGVhcF92aXNpYmxlCi17Ci0JVHJhbnNhY3Rpb25JZCBzbmFwc2hvdENvbmZs aWN0SG9yaXpvbjsKLQl1aW50OAkJZmxhZ3M7Ci19IHhsX2hlYXBfdmlzaWJsZTsKLQotI2RlZmlu ZSBTaXplT2ZIZWFwVmlzaWJsZSAob2Zmc2V0b2YoeGxfaGVhcF92aXNpYmxlLCBmbGFncykgKyBz aXplb2YodWludDgpKQotCiB0eXBlZGVmIHN0cnVjdCB4bF9oZWFwX25ld19jaWQKIHsKIAkvKgpA QCAtNTA3LDExICs0OTMsNiBAQCBleHRlcm4gdm9pZCBoZWFwMl9kZXNjKFN0cmluZ0luZm8gYnVm LCBYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCk7CiBleHRlcm4gY29uc3QgY2hhciAqaGVhcDJfaWRl bnRpZnkodWludDggaW5mbyk7CiBleHRlcm4gdm9pZCBoZWFwX3hsb2dfbG9naWNhbF9yZXdyaXRl KFhMb2dSZWFkZXJTdGF0ZSAqcik7CiAKLWV4dGVybiBYTG9nUmVjUHRyIGxvZ19oZWFwX3Zpc2li bGUoUmVsYXRpb24gcmVsLAotCQkJCQkJCQkgICBCdWZmZXIgdm1fYnVmZmVyLAotCQkJCQkJCQkg ICBUcmFuc2FjdGlvbklkIHNuYXBzaG90Q29uZmxpY3RIb3Jpem9uLAotCQkJCQkJCQkgICB1aW50 OCB2bWZsYWdzKTsKLQogLyogaW4gaGVhcGRlc2MuYywgc28gaXQgY2FuIGJlIHNoYXJlZCBiZXR3 ZWVuIGZyb250ZW5kL2JhY2tlbmQgY29kZSAqLwogZXh0ZXJuIHZvaWQgaGVhcF94bG9nX2Rlc2Vy aWFsaXplX3BydW5lX2FuZF9mcmVlemUoY2hhciAqY3Vyc29yLCB1aW50MTYgZmxhZ3MsCiAJCQkJ CQkJCQkJCQkgICBpbnQgKm5wbGFucywgeGxocF9mcmVlemVfcGxhbiAqKnBsYW5zLApkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL3Zpc2liaWxpdHltYXAuaCBiL3NyYy9pbmNsdWRlL2Fj Y2Vzcy92aXNpYmlsaXR5bWFwLmgKaW5kZXggMzAyYWRmNDg1NmEuLmM1YjFlMWY3YWRiIDEwMDY0 NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MvdmlzaWJpbGl0eW1hcC5oCisrKyBiL3NyYy9pbmNs dWRlL2FjY2Vzcy92aXNpYmlsaXR5bWFwLmgKQEAgLTE1LDcgKzE1LDYgQEAKICNkZWZpbmUgVklT SUJJTElUWU1BUF9ICiAKICNpbmNsdWRlICJhY2Nlc3MvdmlzaWJpbGl0eW1hcGRlZnMuaCIKLSNp bmNsdWRlICJhY2Nlc3MveGxvZ2RlZnMuaCIKICNpbmNsdWRlICJzdG9yYWdlL2Jsb2NrLmgiCiAj aW5jbHVkZSAic3RvcmFnZS9idWYuaCIKICNpbmNsdWRlICJ1dGlscy9yZWxjYWNoZS5oIgpAQCAt MzEsMTQgKzMwLDggQEAgZXh0ZXJuIGJvb2wgdmlzaWJpbGl0eW1hcF9jbGVhcihSZWxhdGlvbiBy ZWwsIEJsb2NrTnVtYmVyIGhlYXBCbGssCiBleHRlcm4gdm9pZCB2aXNpYmlsaXR5bWFwX3BpbihS ZWxhdGlvbiByZWwsIEJsb2NrTnVtYmVyIGhlYXBCbGssCiAJCQkJCQkJICBCdWZmZXIgKnZtYnVm KTsKIGV4dGVybiBib29sIHZpc2liaWxpdHltYXBfcGluX29rKEJsb2NrTnVtYmVyIGhlYXBCbGss IEJ1ZmZlciB2bWJ1Zik7Ci1leHRlcm4gdWludDggdmlzaWJpbGl0eW1hcF9zZXQoUmVsYXRpb24g cmVsLAotCQkJCQkJCSAgIEJsb2NrTnVtYmVyIGhlYXBCbGssCi0JCQkJCQkJICAgWExvZ1JlY1B0 ciByZWNwdHIsCi0JCQkJCQkJICAgQnVmZmVyIHZtQnVmLAotCQkJCQkJCSAgIFRyYW5zYWN0aW9u SWQgY3V0b2ZmX3hpZCwKLQkJCQkJCQkgICB1aW50OCBmbGFncyk7Ci1leHRlcm4gdWludDggdmlz aWJpbGl0eW1hcF9zZXRfdm1iaXRzKFJlbGF0aW9uIHJlbCwgQmxvY2tOdW1iZXIgaGVhcEJsaywK LQkJCQkJCQkJCSAgQnVmZmVyIHZtQnVmLCB1aW50OCBmbGFncyk7CitleHRlcm4gdWludDggdmlz aWJpbGl0eW1hcF9zZXQoUmVsYXRpb24gcmVsLCBCbG9ja051bWJlciBoZWFwQmxrLAorCQkJCQkJ CSAgIEJ1ZmZlciB2bUJ1ZiwgdWludDggZmxhZ3MpOwogZXh0ZXJuIHVpbnQ4IHZpc2liaWxpdHlt YXBfZ2V0X3N0YXR1cyhSZWxhdGlvbiByZWwsIEJsb2NrTnVtYmVyIGhlYXBCbGssIEJ1ZmZlciAq dm1idWYpOwogZXh0ZXJuIHZvaWQgdmlzaWJpbGl0eW1hcF9jb3VudChSZWxhdGlvbiByZWwsIEJs b2NrTnVtYmVyICphbGxfdmlzaWJsZSwgQmxvY2tOdW1iZXIgKmFsbF9mcm96ZW4pOwogZXh0ZXJu IEJsb2NrTnVtYmVyIHZpc2liaWxpdHltYXBfcHJlcGFyZV90cnVuY2F0ZShSZWxhdGlvbiByZWws CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvdmlzaWJpbGl0eW1hcGRlZnMuaCBiL3Ny Yy9pbmNsdWRlL2FjY2Vzcy92aXNpYmlsaXR5bWFwZGVmcy5oCmluZGV4IDVhZDVjMDIwODc3Li5l MDFiY2U0Yzk5ZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL3Zpc2liaWxpdHltYXBk ZWZzLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3Zpc2liaWxpdHltYXBkZWZzLmgKQEAgLTIx LDE0ICsyMSw1IEBACiAjZGVmaW5lIFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTgkweDAyCiAjZGVm aW5lIFZJU0lCSUxJVFlNQVBfVkFMSURfQklUUwkweDAzCS8qIE9SIG9mIGFsbCB2YWxpZCB2aXNp YmlsaXR5bWFwCiAJCQkJCQkJCQkJCSAqIGZsYWdzIGJpdHMgKi8KLS8qCi0gKiBUbyBkZXRlY3Qg cmVjb3ZlcnkgY29uZmxpY3RzIGR1cmluZyBsb2dpY2FsIGRlY29kaW5nIG9uIGEgc3RhbmRieSwg d2UgbmVlZAotICogdG8ga25vdyBpZiBhIHRhYmxlIGlzIGEgdXNlciBjYXRhbG9nIHRhYmxlLiBG b3IgdGhhdCB3ZSBhZGQgYW4gYWRkaXRpb25hbAotICogYml0IGludG8geGxfaGVhcF92aXNpYmxl LmZsYWdzLCBpbiBhZGRpdGlvbiB0byB0aGUgYWJvdmUuCi0gKgotICogTkI6IFZJU0lCSUxJVFlN QVBfWExPR18qIG1heSBub3QgYmUgcGFzc2VkIHRvIHZpc2liaWxpdHltYXBfc2V0KCkuCi0gKi8K LSNkZWZpbmUgVklTSUJJTElUWU1BUF9YTE9HX0NBVEFMT0dfUkVMCTB4MDQKLSNkZWZpbmUgVklT SUJJTElUWU1BUF9YTE9HX1ZBTElEX0JJVFMJKFZJU0lCSUxJVFlNQVBfVkFMSURfQklUUyB8IFZJ U0lCSUxJVFlNQVBfWExPR19DQVRBTE9HX1JFTCkKIAogI2VuZGlmCQkJCQkJCS8qIFZJU0lCSUxJ VFlNQVBERUZTX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5s aXN0IGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKaW5kZXggZTkwYWY1YjJhZDMu LjMyYzBmNDcxOWMzIDEwMDY0NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlz dAorKysgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApAQCAtNDI2OCw3ICs0MjY4 LDYgQEAgeGxfaGVhcF9wcnVuZQogeGxfaGVhcF9yZXdyaXRlX21hcHBpbmcKIHhsX2hlYXBfdHJ1 bmNhdGUKIHhsX2hlYXBfdXBkYXRlCi14bF9oZWFwX3Zpc2libGUKIHhsX2ludmFsaWRfcGFnZQog eGxfaW52YWxpZF9wYWdlX2tleQogeGxfaW52YWxpZGF0aW9ucwotLSAKMi40My4wCgo= --000000000000cf342e063f082d09 Content-Type: text/x-patch; charset="US-ASCII"; name="v14-0019-Rename-GlobalVisTestIsRemovableXid-to-GlobalVisX.patch" Content-Disposition: attachment; filename="v14-0019-Rename-GlobalVisTestIsRemovableXid-to-GlobalVisX.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfonltnn18 RnJvbSBjYmZiNWVlOGE0MTI2NTFjNjA0MzA3Y2QwYmQ2MTFmMTg3ZWQzNDhhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBGcmksIDE4IEp1bCAyMDI1IDE2OjMwOjA0IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTQgMTkvMjRdIFJlbmFtZSBHbG9iYWxWaXNUZXN0SXNSZW1vdmFibGVYaWQoKSB0bwog R2xvYmFsVmlzWGlkVmlzaWJsZVRvQWxsKCkKCkN1cnJlbnRseSwgd2Ugb25seSB1c2UgR2xvYmFs VmlzVGVzdElzUmVtb3ZhYmxlWGlkKCkgdG8gY2hlY2sgaWYgYQp0dXBsZSdzIHhtYXggaXMgdmlz aWJsZSB0byBhbGwsIG1lYW5pbmcgd2UgY2FuIHJlbW92ZSBpdC4gQnV0IGZ1dHVyZQpjb21taXRz IHdpbGwgdXNlIEdsb2JhbFZpc1Rlc3RJc1JlbW92YWJsZVhpZCgpIHRvIHRlc3QgaWYgYSB0dXBs ZSdzIHhtaW4KaXMgdmlzaWJsZSB0byBhbGwgZm9yIHRoZSBwdXJwb3NlcyBvZiBkZXRlcm1pbmlu ZyBpZiBzZXR0aW5nIHRoZSBwYWdlCmFsbC12aXNpYmxlIGluIHRoZSBWTS4gSW4gdGhhdCBjYXNl LCBpdCBtYWtlcyBtb3JlIHNlbnNlIHRvIGNhbGwgdGhlCmZ1bmN0aW9uIEdsb2JhbFZpc1hpZFZp c2libGVUb0FsbCgpLgoKUmV2aWV3ZWQtYnk6IEtpcmlsbCBSZXNoa2UgPHJlc2hrZWtpcmlsbEBn bWFpbC5jb20+Ci0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX3Zpc2liaWxpdHku YyB8ICA2ICsrKy0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMgICAgICAg ICB8IDE0ICsrKysrKystLS0tLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0L3NwZ3ZhY3V1 bS5jICAgICAgIHwgIDIgKy0KIHNyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3Byb2NhcnJheS5jICAg ICAgICAgfCAxMyArKysrKystLS0tLS0tCiBzcmMvaW5jbHVkZS91dGlscy9zbmFwbWdyLmggICAg ICAgICAgICAgICAgIHwgIDQgKystLQogNSBmaWxlcyBjaGFuZ2VkLCAxOSBpbnNlcnRpb25zKCsp LCAyMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9o ZWFwYW1fdmlzaWJpbGl0eS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX3Zpc2li aWxpdHkuYwppbmRleCAwNWY2OTQ2ZmU2MC4uNGViYzhhYmRiZWIgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV92aXNpYmlsaXR5LmMKKysrIGIvc3JjL2JhY2tlbmQv YWNjZXNzL2hlYXAvaGVhcGFtX3Zpc2liaWxpdHkuYwpAQCAtMTQ0Nyw3ICsxNDQ3LDcgQEAgSGVh cFR1cGxlU2F0aXNmaWVzTm9uVmFjdXVtYWJsZShIZWFwVHVwbGUgaHR1cCwgU25hcHNob3Qgc25h cHNob3QsCiAJewogCQlBc3NlcnQoVHJhbnNhY3Rpb25JZElzVmFsaWQoZGVhZF9hZnRlcikpOwog Ci0JCWlmIChHbG9iYWxWaXNUZXN0SXNSZW1vdmFibGVYaWQoc25hcHNob3QtPnZpc3Rlc3QsIGRl YWRfYWZ0ZXIpKQorCQlpZiAoR2xvYmFsVmlzWGlkVmlzaWJsZVRvQWxsKHNuYXBzaG90LT52aXN0 ZXN0LCBkZWFkX2FmdGVyKSkKIAkJCXJlcyA9IEhFQVBUVVBMRV9ERUFEOwogCX0KIAllbHNlCkBA IC0xNTEyLDggKzE1MTIsOCBAQCBIZWFwVHVwbGVJc1N1cmVseURlYWQoSGVhcFR1cGxlIGh0dXAs IEdsb2JhbFZpc1N0YXRlICp2aXN0ZXN0KQogCQlyZXR1cm4gZmFsc2U7CiAKIAkvKiBEZWxldGVy IGNvbW1pdHRlZCwgc28gdHVwbGUgaXMgZGVhZCBpZiB0aGUgWElEIGlzIG9sZCBlbm91Z2guICov Ci0JcmV0dXJuIEdsb2JhbFZpc1Rlc3RJc1JlbW92YWJsZVhpZCh2aXN0ZXN0LAotCQkJCQkJCQkJ ICAgSGVhcFR1cGxlSGVhZGVyR2V0UmF3WG1heCh0dXBsZSkpOworCXJldHVybiBHbG9iYWxWaXNY aWRWaXNpYmxlVG9BbGwodmlzdGVzdCwKKwkJCQkJCQkJCUhlYXBUdXBsZUhlYWRlckdldFJhd1ht YXgodHVwbGUpKTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFw L3BydW5laGVhcC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKaW5kZXgg MzlkNTlhNDNmZjcuLjQ3MTE1MWZhZTJlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3Mv aGVhcC9wcnVuZWhlYXAuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAu YwpAQCAtMjE4LDcgKzIxOCw3IEBAIGhlYXBfcGFnZV9wcnVuZV9vcHQoUmVsYXRpb24gcmVsYXRp b24sIEJ1ZmZlciBidWZmZXIpCiAJICovCiAJdmlzdGVzdCA9IEdsb2JhbFZpc1Rlc3RGb3IocmVs YXRpb24pOwogCi0JaWYgKCFHbG9iYWxWaXNUZXN0SXNSZW1vdmFibGVYaWQodmlzdGVzdCwgcHJ1 bmVfeGlkKSkKKwlpZiAoIUdsb2JhbFZpc1hpZFZpc2libGVUb0FsbCh2aXN0ZXN0LCBwcnVuZV94 aWQpKQogCQlyZXR1cm47CiAKIAkvKgpAQCAtNzI3LDkgKzcyNyw5IEBAIGhlYXBfcGFnZV9wcnVu ZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogCSAqIERldGVy bWluaW5nIEhUU1Ygb25seSBvbmNlIGZvciBlYWNoIHR1cGxlIGlzIHJlcXVpcmVkIGZvciBjb3Jy ZWN0bmVzcywKIAkgKiB0byBkZWFsIHdpdGggY2FzZXMgd2hlcmUgcnVubmluZyBIVFNWIHR3aWNl IGNvdWxkIHJlc3VsdCBpbiBkaWZmZXJlbnQKIAkgKiByZXN1bHRzLiAgRm9yIGV4YW1wbGUsIFJF Q0VOVExZX0RFQUQgY2FuIHR1cm4gdG8gREVBRCBpZiBhbm90aGVyCi0JICogY2hlY2tlZCBpdGVt IGNhdXNlcyBHbG9iYWxWaXNUZXN0SXNSZW1vdmFibGVGdWxsWGlkKCkgdG8gdXBkYXRlIHRoZQot CSAqIGhvcml6b24sIG9yIElOU0VSVF9JTl9QUk9HUkVTUyBjYW4gY2hhbmdlIHRvIERFQUQgaWYg dGhlIGluc2VydGluZwotCSAqIHRyYW5zYWN0aW9uIGFib3J0cy4KKwkgKiBjaGVja2VkIGl0ZW0g Y2F1c2VzIEdsb2JhbFZpc1hpZFZpc2libGVUb0FsbCgpIHRvIHVwZGF0ZSB0aGUgaG9yaXpvbiwK KwkgKiBvciBJTlNFUlRfSU5fUFJPR1JFU1MgY2FuIGNoYW5nZSB0byBERUFEIGlmIHRoZSBpbnNl cnRpbmcgdHJhbnNhY3Rpb24KKwkgKiBhYm9ydHMuCiAJICoKIAkgKiBJdCdzIGFsc28gZ29vZCBm b3IgcGVyZm9ybWFuY2UuIE1vc3QgY29tbW9ubHkgdHVwbGVzIHdpdGhpbiBhIHBhZ2UgYXJlCiAJ ICogc3RvcmVkIGF0IGRlY3JlYXNpbmcgb2Zmc2V0cyAod2hpbGUgdGhlIGl0ZW1zIGFyZSBzdG9y ZWQgYXQgaW5jcmVhc2luZwpAQCAtMTE5OSwxMSArMTE5OSwxMSBAQCBoZWFwX3BydW5lX3NhdGlz Zmllc192YWN1dW0oUHJ1bmVTdGF0ZSAqcHJzdGF0ZSwgSGVhcFR1cGxlIHR1cCwgQnVmZmVyIGJ1 ZmZlcikKIAkgKiBEZXRlcm1pbmUgd2hldGhlciBvciBub3QgdGhlIHR1cGxlIGlzIGNvbnNpZGVy ZWQgZGVhZCB3aGVuIGNvbXBhcmVkCiAJICogd2l0aCB0aGUgcHJvdmlkZWQgR2xvYmFsVmlzU3Rh dGUuIE9uLWFjY2VzcyBwcnVuaW5nIGRvZXMgbm90IHByb3ZpZGUKIAkgKiBWYWN1dW1DdXRvZmZz LiBBbmQgZm9yIHZhY3V1bSwgZXZlbiBpZiB0aGUgdHVwbGUncyB4bWF4IGlzIG5vdCBvbGRlcgot CSAqIHRoYW4gT2xkZXN0WG1pbiwgR2xvYmFsVmlzVGVzdElzUmVtb3ZhYmxlWGlkKCkgY291bGQg ZmluZCB0aGUgcm93IGRlYWQKLQkgKiBpZiB0aGUgR2xvYmFsVmlzU3RhdGUgaGFzIGJlZW4gdXBk YXRlZCBzaW5jZSB0aGUgYmVnaW5uaW5nIG9mIHZhY3V1bWluZworCSAqIHRoYW4gT2xkZXN0WG1p biwgR2xvYmFsVmlzWGlkVmlzaWJsZVRvQWxsKCkgY291bGQgZmluZCB0aGUgcm93IGRlYWQgaWYK KwkgKiB0aGUgR2xvYmFsVmlzU3RhdGUgaGFzIGJlZW4gdXBkYXRlZCBzaW5jZSB0aGUgYmVnaW5u aW5nIG9mIHZhY3V1bWluZwogCSAqIHRoZSByZWxhdGlvbi4KIAkgKi8KLQlpZiAoR2xvYmFsVmlz VGVzdElzUmVtb3ZhYmxlWGlkKHByc3RhdGUtPnZpc3Rlc3QsIGRlYWRfYWZ0ZXIpKQorCWlmIChH bG9iYWxWaXNYaWRWaXNpYmxlVG9BbGwocHJzdGF0ZS0+dmlzdGVzdCwgZGVhZF9hZnRlcikpCiAJ CXJldHVybiBIRUFQVFVQTEVfREVBRDsKIAogCXJldHVybiByZXM7CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9hY2Nlc3Mvc3BnaXN0L3NwZ3ZhY3V1bS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3Nw Z2lzdC9zcGd2YWN1dW0uYwppbmRleCA4ZjhhMWFkNzc5Ni4uNDk2Y2NhNjk0MTAgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9zcGdpc3Qvc3BndmFjdXVtLmMKKysrIGIvc3JjL2JhY2tl bmQvYWNjZXNzL3NwZ2lzdC9zcGd2YWN1dW0uYwpAQCAtNTM2LDcgKzUzNiw3IEBAIHZhY3V1bVJl ZGlyZWN0QW5kUGxhY2Vob2xkZXIoUmVsYXRpb24gaW5kZXgsIFJlbGF0aW9uIGhlYXByZWwsIEJ1 ZmZlciBidWZmZXIpCiAJCSAqLwogCQlpZiAoZHQtPnR1cHN0YXRlID09IFNQR0lTVF9SRURJUkVD VCAmJgogCQkJKCFUcmFuc2FjdGlvbklkSXNWYWxpZChkdC0+eGlkKSB8fAotCQkJIEdsb2JhbFZp c1Rlc3RJc1JlbW92YWJsZVhpZCh2aXN0ZXN0LCBkdC0+eGlkKSkpCisJCQkgR2xvYmFsVmlzWGlk VmlzaWJsZVRvQWxsKHZpc3Rlc3QsIGR0LT54aWQpKSkKIAkJewogCQkJZHQtPnR1cHN0YXRlID0g U1BHSVNUX1BMQUNFSE9MREVSOwogCQkJQXNzZXJ0KG9wYXF1ZS0+blJlZGlyZWN0aW9uID4gMCk7 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9wcm9jYXJyYXkuYyBiL3NyYy9i YWNrZW5kL3N0b3JhZ2UvaXBjL3Byb2NhcnJheS5jCmluZGV4IDIwMGY3MmM2ZTI1Li5mNjdmMDFj MTdjMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY2FycmF5LmMKKysr IGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY2FycmF5LmMKQEAgLTQxODEsOCArNDE4MSw3 IEBAIEdsb2JhbFZpc1VwZGF0ZSh2b2lkKQogICogU2VlIGNvbW1lbnQgZm9yIEdsb2JhbFZpc1N0 YXRlIGZvciBkZXRhaWxzLgogICovCiBib29sCi1HbG9iYWxWaXNUZXN0SXNSZW1vdmFibGVGdWxs WGlkKEdsb2JhbFZpc1N0YXRlICpzdGF0ZSwKLQkJCQkJCQkJRnVsbFRyYW5zYWN0aW9uSWQgZnhp ZCkKK0dsb2JhbFZpc0Z1bGxYaWRWaXNpYmxlVG9BbGwoR2xvYmFsVmlzU3RhdGUgKnN0YXRlLCBG dWxsVHJhbnNhY3Rpb25JZCBmeGlkKQogewogCS8qCiAJICogSWYgZnhpZCBpcyBvbGRlciB0aGFu IG1heWJlX25lZWRlZCBib3VuZCwgaXQgZGVmaW5pdGVseSBpcyB2aXNpYmxlIHRvCkBAIC00MjIz LDcgKzQyMjIsNyBAQCBHbG9iYWxWaXNUZXN0SXNSZW1vdmFibGVGdWxsWGlkKEdsb2JhbFZpc1N0 YXRlICpzdGF0ZSwKICAqIHJlbGZyb3plbnhpZCkuCiAgKi8KIGJvb2wKLUdsb2JhbFZpc1Rlc3RJ c1JlbW92YWJsZVhpZChHbG9iYWxWaXNTdGF0ZSAqc3RhdGUsIFRyYW5zYWN0aW9uSWQgeGlkKQor R2xvYmFsVmlzWGlkVmlzaWJsZVRvQWxsKEdsb2JhbFZpc1N0YXRlICpzdGF0ZSwgVHJhbnNhY3Rp b25JZCB4aWQpCiB7CiAJRnVsbFRyYW5zYWN0aW9uSWQgZnhpZDsKIApAQCAtNDIzNyw3ICs0MjM2 LDcgQEAgR2xvYmFsVmlzVGVzdElzUmVtb3ZhYmxlWGlkKEdsb2JhbFZpc1N0YXRlICpzdGF0ZSwg VHJhbnNhY3Rpb25JZCB4aWQpCiAJICovCiAJZnhpZCA9IEZ1bGxYaWRSZWxhdGl2ZVRvKHN0YXRl LT5kZWZpbml0ZWx5X25lZWRlZCwgeGlkKTsKIAotCXJldHVybiBHbG9iYWxWaXNUZXN0SXNSZW1v dmFibGVGdWxsWGlkKHN0YXRlLCBmeGlkKTsKKwlyZXR1cm4gR2xvYmFsVmlzRnVsbFhpZFZpc2li bGVUb0FsbChzdGF0ZSwgZnhpZCk7CiB9CiAKIC8qCkBAIC00MjUxLDEyICs0MjUwLDEyIEBAIEds b2JhbFZpc0NoZWNrUmVtb3ZhYmxlRnVsbFhpZChSZWxhdGlvbiByZWwsIEZ1bGxUcmFuc2FjdGlv bklkIGZ4aWQpCiAKIAlzdGF0ZSA9IEdsb2JhbFZpc1Rlc3RGb3IocmVsKTsKIAotCXJldHVybiBH bG9iYWxWaXNUZXN0SXNSZW1vdmFibGVGdWxsWGlkKHN0YXRlLCBmeGlkKTsKKwlyZXR1cm4gR2xv YmFsVmlzRnVsbFhpZFZpc2libGVUb0FsbChzdGF0ZSwgZnhpZCk7CiB9CiAKIC8qCiAgKiBDb252 ZW5pZW5jZSB3cmFwcGVyIGFyb3VuZCBHbG9iYWxWaXNUZXN0Rm9yKCkgYW5kCi0gKiBHbG9iYWxW aXNUZXN0SXNSZW1vdmFibGVYaWQoKSwgc2VlIHRoZWlyIGNvbW1lbnRzLgorICogR2xvYmFsVmlz VGVzdElzVmlzaWJsZVhpZCgpLCBzZWUgdGhlaXIgY29tbWVudHMuCiAgKi8KIGJvb2wKIEdsb2Jh bFZpc0NoZWNrUmVtb3ZhYmxlWGlkKFJlbGF0aW9uIHJlbCwgVHJhbnNhY3Rpb25JZCB4aWQpCkBA IC00MjY1LDcgKzQyNjQsNyBAQCBHbG9iYWxWaXNDaGVja1JlbW92YWJsZVhpZChSZWxhdGlvbiBy ZWwsIFRyYW5zYWN0aW9uSWQgeGlkKQogCiAJc3RhdGUgPSBHbG9iYWxWaXNUZXN0Rm9yKHJlbCk7 CiAKLQlyZXR1cm4gR2xvYmFsVmlzVGVzdElzUmVtb3ZhYmxlWGlkKHN0YXRlLCB4aWQpOworCXJl dHVybiBHbG9iYWxWaXNYaWRWaXNpYmxlVG9BbGwoc3RhdGUsIHhpZCk7CiB9CiAKIC8qCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9zbmFwbWdyLmggYi9zcmMvaW5jbHVkZS91dGlscy9z bmFwbWdyLmgKaW5kZXggNjA0YzFmOTAyMTYuLmEwZWEyY2ZjZWEyIDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS91dGlscy9zbmFwbWdyLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvc25hcG1nci5o CkBAIC0xMDAsOCArMTAwLDggQEAgZXh0ZXJuIGNoYXIgKkV4cG9ydFNuYXBzaG90KFNuYXBzaG90 IHNuYXBzaG90KTsKICAqLwogdHlwZWRlZiBzdHJ1Y3QgR2xvYmFsVmlzU3RhdGUgR2xvYmFsVmlz U3RhdGU7CiBleHRlcm4gR2xvYmFsVmlzU3RhdGUgKkdsb2JhbFZpc1Rlc3RGb3IoUmVsYXRpb24g cmVsKTsKLWV4dGVybiBib29sIEdsb2JhbFZpc1Rlc3RJc1JlbW92YWJsZVhpZChHbG9iYWxWaXNT dGF0ZSAqc3RhdGUsIFRyYW5zYWN0aW9uSWQgeGlkKTsKLWV4dGVybiBib29sIEdsb2JhbFZpc1Rl c3RJc1JlbW92YWJsZUZ1bGxYaWQoR2xvYmFsVmlzU3RhdGUgKnN0YXRlLCBGdWxsVHJhbnNhY3Rp b25JZCBmeGlkKTsKK2V4dGVybiBib29sIEdsb2JhbFZpc1hpZFZpc2libGVUb0FsbChHbG9iYWxW aXNTdGF0ZSAqc3RhdGUsIFRyYW5zYWN0aW9uSWQgeGlkKTsKK2V4dGVybiBib29sIEdsb2JhbFZp c0Z1bGxYaWRWaXNpYmxlVG9BbGwoR2xvYmFsVmlzU3RhdGUgKnN0YXRlLCBGdWxsVHJhbnNhY3Rp b25JZCBmeGlkKTsKIGV4dGVybiBib29sIEdsb2JhbFZpc0NoZWNrUmVtb3ZhYmxlWGlkKFJlbGF0 aW9uIHJlbCwgVHJhbnNhY3Rpb25JZCB4aWQpOwogZXh0ZXJuIGJvb2wgR2xvYmFsVmlzQ2hlY2tS ZW1vdmFibGVGdWxsWGlkKFJlbGF0aW9uIHJlbCwgRnVsbFRyYW5zYWN0aW9uSWQgZnhpZCk7CiAK LS0gCjIuNDMuMAoK --000000000000cf342e063f082d09 Content-Type: text/x-patch; charset="US-ASCII"; name="v14-0020-Use-GlobalVisState-to-determine-page-level-visib.patch" Content-Disposition: attachment; filename="v14-0020-Use-GlobalVisState-to-determine-page-level-visib.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfonltnp19 RnJvbSBhZWIwYzdlZDU0NTY2ZGZkOGI2N2Q0YWQ1MGQ0NjkzOGIxY2NmOTVkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUdWUsIDI5IEp1bCAyMDI1IDE0OjM4OjI0IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTQgMjAvMjRdIFVzZSBHbG9iYWxWaXNTdGF0ZSB0byBkZXRlcm1pbmUgcGFnZSBsZXZl bAogdmlzaWJpbGl0eQoKRHVyaW5nIHBydW5pbmcgYW5kIGR1cmluZyB2YWN1dW0ncyB0aGlyZCBw aGFzZSwgd2UgdHJ5IHRvIGRldGVybWluZSBpZgp0aGUgd2hvbGUgcGFnZSBjYW4gYmUgc2V0IGFs bC12aXNpYmxlIGluIHRoZSB2aXNpYmlsaXR5IG1hcC4gSW5zdGVhZCBvZgp1c2luZyBPbGRlc3RY bWluIHRvIGRldGVybWluZSBpZiBhbGwgdGhlIHR1cGxlcyBvbiBhIHBhZ2UgYXJlIHZpc2libGUg dG8KZXZlcnlvbmUsIHVzZSB0aGUgR2xvYmFsVmlzU3RhdGUuIFRoaXMgYWxsb3dzIHVzIHRvIHN0 YXJ0IHNldHRpbmcgdGhlIFZNCmR1cmluZyBvbi1hY2Nlc3MgcHJ1bmluZyBpbiBhIGZ1dHVyZSBj b21taXQuCgpJdCBpcyBwb3NzaWJsZSBmb3IgdGhlIEdsb2JhbFZpc1N0YXRlIHRvIGNoYW5nZSBk dXJpbmcgdGhlIGNvdXJzZSBvZiBhCnZhY3V1bS4gSW4gYWxsIGJ1dCBleHRyYW9yZGluYXJ5IGNh c2VzLCBpdCBtb3ZlcyBmb3J3YXJkLCBtZWFuaW5nIG1vcmUKcGFnZXMgY291bGQgcG90ZW50aWFs bHkgYmUgc2V0IGluIHRoZSBWTS4KCkJlY2F1c2UgY29tcGFyaW5nIGEgdHJhbnNhY3Rpb24gSUQg dG8gdGhlIEdsb2JhbFZpc1N0YXRlIHJlcXVpcmVzIG1vcmUKb3BlcmF0aW9ucyB0aGFuIGNvbXBh cmluZyBpdCB0byBhbm90aGVyIHNpbmdsZSB0cmFuc2FjdGlvbiBJRCwgd2Ugbm93CndhaXQgdW50 aWwgYWZ0ZXIgZXhhbWluaW5nIGFsbCB0aGUgdHVwbGVzIG9uIHRoZSBwYWdlIGFuZCBpZiB3ZSBo YXZlCm1haW50YWluZWQgdGhlIHZpc2liaWxpdHlfY3V0b2ZmX3hpZCwgd2UgY29tcGFyZSB0aGF0 IHRvIHRoZQpHbG9iYWxWaXNTdGF0ZSBqdXN0IG9uY2UgcGVyIHBhZ2UuIFRoaXMgd29ya3MgYmVj YXVzZSBpZiB0aGUgcGFnZSBpcwphbGwtdmlzaWJsZSBhbmQgaGFzIGxpdmUsIGNvbW1pdHRlZCB0 dXBsZXMgb24gaXQsIHRoZQp2aXNpYmlsaXR5X2N1dG9mZl94aWQgd2lsbCBjb250YWluIHRoZSBu ZXdlc3QgeG1pbiBvbiB0aGUgcGFnZS4gSWYKZXZlcnlvbmUgY2FuIHNlZSBpdCwgdGhlIHBhZ2Ug aXMgdHJ1bHkgYWxsLXZpc2libGUuCgpEb2luZyB0aGlzIG1heSBtZWFuIHdlIGV4YW1pbmUgbW9y ZSB0dXBsZXMnIHhtaW5zIHRoYW4gYmVmb3JlLCBhcyB3ZSBtYXkKaGF2ZSBzZXQgYWxsX3Zpc2li bGUgdG8gZmFsc2Ugc29vbmVyIHdoZW4gZW5jb3VudGVyaW5nIGEgbGl2ZSB0dXBsZQpuZXdlciB0 aGFuIE9sZGVzdFhtaW4uIEhvd2V2ZXIsIHRoZXNlIGV4dHJhIGNvbXBhcmlzb25zIHdlcmUgZm91 bmQgbm90CnRvIGJlIHNpZ25pZmljYW50IGluIGEgcHJvZmlsZS4KLS0tCiBzcmMvYmFja2VuZC9h Y2Nlc3MvaGVhcC9oZWFwYW1fdmlzaWJpbGl0eS5jIHwgMjggKysrKysrKysrKysrKwogc3JjL2Jh Y2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMgICAgICAgICB8IDQ2ICsrKysrKysrKy0tLS0t LS0tLS0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jICAgICAgICB8IDIw ICsrKystLS0tLQogc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oICAgICAgICAgICAgICAgICB8 ICA0ICstCiA0IGZpbGVzIGNoYW5nZWQsIDYwIGluc2VydGlvbnMoKyksIDM4IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV92aXNpYmlsaXR5 LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1fdmlzaWJpbGl0eS5jCmluZGV4IDRl YmM4YWJkYmViLi5lZGQ1MjlkYzNjMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hl YXAvaGVhcGFtX3Zpc2liaWxpdHkuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFw YW1fdmlzaWJpbGl0eS5jCkBAIC0xMTg5LDYgKzExODksMzQgQEAgSGVhcFR1cGxlU2F0aXNmaWVz VmFjdXVtKEhlYXBUdXBsZSBodHVwLCBUcmFuc2FjdGlvbklkIE9sZGVzdFhtaW4sCiAJcmV0dXJu IHJlczsKIH0KIAorLyoKKyAqIE5lYXJseSB0aGUgc2FtZSBhcyBIZWFwVHVwbGVTYXRpc2ZpZXNW YWN1dW0sIGJ1dCB1c2VzIGEgR2xvYmFsVmlzU3RhdGUgdG8KKyAqIGRldGVybWluZSB3aGV0aGVy IG9yIG5vdCBhIHR1cGxlIGlzIEhFQVBUVVBMRV9ERUFEIE9yCisgKiBIRUFQVFVQTEVfUkVDRU5U TFlfREVBRC4gSXQgc2VydmVzIHRoZSBzYW1lIHB1cnBvc2UgYnV0IGNhbiBiZSB1c2VkIGJ5Cisg KiBjYWxsZXJzIHRoYXQgaGF2ZSBub3QgY2FsY3VsYXRlZCBhIHNpbmdsZSBPbGRlc3RYbWluIHZh bHVlLgorICovCitIVFNWX1Jlc3VsdAorSGVhcFR1cGxlU2F0aXNmaWVzVmFjdXVtR2xvYmFsVmlz KEhlYXBUdXBsZSBodHVwLCBHbG9iYWxWaXNTdGF0ZSAqdmlzdGVzdCwKKwkJCQkJCQkJICBCdWZm ZXIgYnVmZmVyKQoreworCVRyYW5zYWN0aW9uSWQgZGVhZF9hZnRlciA9IEludmFsaWRUcmFuc2Fj dGlvbklkOworCUhUU1ZfUmVzdWx0IHJlczsKKworCXJlcyA9IEhlYXBUdXBsZVNhdGlzZmllc1Zh Y3V1bUhvcml6b24oaHR1cCwgYnVmZmVyLCAmZGVhZF9hZnRlcik7CisKKwlpZiAocmVzID09IEhF QVBUVVBMRV9SRUNFTlRMWV9ERUFEKQorCXsKKwkJQXNzZXJ0KFRyYW5zYWN0aW9uSWRJc1ZhbGlk KGRlYWRfYWZ0ZXIpKTsKKworCQlpZiAoR2xvYmFsVmlzWGlkVmlzaWJsZVRvQWxsKHZpc3Rlc3Qs IGRlYWRfYWZ0ZXIpKQorCQkJcmVzID0gSEVBUFRVUExFX0RFQUQ7CisJfQorCWVsc2UKKwkJQXNz ZXJ0KCFUcmFuc2FjdGlvbklkSXNWYWxpZChkZWFkX2FmdGVyKSk7CisKKwlyZXR1cm4gcmVzOwor fQorCiAvKgogICogV29yayBob3JzZSBmb3IgSGVhcFR1cGxlU2F0aXNmaWVzVmFjdXVtIGFuZCBz aW1pbGFyIHJvdXRpbmVzLgogICoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFw L3BydW5laGVhcC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKaW5kZXgg NDcxMTUxZmFlMmUuLmJiN2ExMzU3YTg5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3Mv aGVhcC9wcnVuZWhlYXAuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAu YwpAQCAtMTM0LDEwICsxMzQsOSBAQCB0eXBlZGVmIHN0cnVjdAogCSAqIGFsbF92aXNpYmxlIGFu ZCBhbGxfZnJvemVuIGluZGljYXRlIGlmIHRoZSBhbGwtdmlzaWJsZSBhbmQgYWxsLWZyb3plbgog CSAqIGJpdHMgaW4gdGhlIHZpc2liaWxpdHkgbWFwIGNhbiBiZSBzZXQgZm9yIHRoaXMgcGFnZSBh ZnRlciBwcnVuaW5nLgogCSAqCi0JICogdmlzaWJpbGl0eV9jdXRvZmZfeGlkIGlzIHRoZSBuZXdl c3QgeG1pbiBvZiBsaXZlIHR1cGxlcyBvbiB0aGUgcGFnZS4KLQkgKiBUaGUgY2FsbGVyIGNhbiB1 c2UgaXQgYXMgdGhlIGNvbmZsaWN0IGhvcml6b24sIHdoZW4gc2V0dGluZyB0aGUgVk0KLQkgKiBi aXRzLiAgSXQgaXMgb25seSB2YWxpZCBpZiB3ZSBmcm96ZSBzb21lIHR1cGxlcywgYW5kIGFsbF9m cm96ZW4gaXMKLQkgKiB0cnVlLgorCSAqIHZpc2liaWxpdHlfY3V0b2ZmX3hpZCBpcyB0aGUgbmV3 ZXN0IHhtaW4gb2YgbGl2ZSB0dXBsZXMgb24gdGhlIHBhZ2UuIEl0CisJICogY2FuIGJlIHVzZWQg YXMgdGhlIGNvbmZsaWN0IGhvcml6b24sIHdoZW4gc2V0dGluZyB0aGUgVk0gb3Igd2hlbgorCSAq IGZyZWV6aW5nIGFsbCB0aGUgbGl2ZSB0dXBsZXMgb24gdGhlIHBhZ2UuCiAJICoKIAkgKiBOT1RF OiBhbGxfdmlzaWJsZSBhbmQgYWxsX2Zyb3plbiBkb24ndCBpbmNsdWRlIExQX0RFQUQgaXRlbXMu ICBUaGF0J3MKIAkgKiBjb252ZW5pZW50IGZvciBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZSgp LCB0byB1c2UgdGhlbSB0byBkZWNpZGUKQEAgLTcwNiwxNCArNzA1LDEyIEBAIGhlYXBfcGFnZV9w cnVuZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogCiAJLyoK IAkgKiBUaGUgdmlzaWJpbGl0eSBjdXRvZmYgeGlkIGlzIHRoZSBuZXdlc3QgeG1pbiBvZiBsaXZl LCBjb21taXR0ZWQgdHVwbGVzCi0JICogb2xkZXIgdGhhbiBPbGRlc3RYbWluIG9uIHRoZSBwYWdl LiBUaGlzIGZpZWxkIGlzIG9ubHkga2VwdCB1cC10by1kYXRlCi0JICogaWYgdGhlIHBhZ2UgaXMg YWxsLXZpc2libGUuIEFzIHNvb24gYXMgYSB0dXBsZSBpcyBlbmNvdW50ZXJlZCB0aGF0IGlzCi0J ICogbm90IHZpc2libGUgdG8gYWxsLCB0aGlzIGZpZWxkIGlzIHVubWFpbnRhaW5lZC4gQXMgbG9u ZyBhcyBpdCBpcwotCSAqIG1haW50YWluZWQsIGl0IGNhbiBiZSB1c2VkIHRvIGNhbGN1bGF0ZSB0 aGUgc25hcHNob3QgY29uZmxpY3QgaG9yaXpvbi4KLQkgKiBUaGlzIGlzIG1vc3QgbGlrZWx5IHRv IGhhcHBlbiB3aGVuIHVwZGF0aW5nIHRoZSBWTSBhbmQvb3IgZnJlZXppbmcgYWxsCi0JICogbGl2 ZSB0dXBsZXMgb24gdGhlIHBhZ2UuIEl0IGlzIHVwZGF0ZWQgYmVmb3JlIHJldHVybmluZyB0byB0 aGUgY2FsbGVyCi0JICogYmVjYXVzZSB2YWN1dW0gZG9lcyBhc3NlcnQtYnVpbGQgb25seSB2YWxp ZGF0aW9uIG9uIHRoZSBwYWdlIHVzaW5nIHRoaXMKLQkgKiBmaWVsZC4KKwkgKiBvbiB0aGUgcGFn ZSBvbGRlciB0aGFuIHRoZSB2aXNpYmlsaXR5IGhvcml6b24gcmVwcmVzZW50ZWQgaW4gdGhlCisJ ICogR2xvYmFsVmlzU3RhdGUuCisJICoKKwkgKiBJZiB3ZSBlbmNvdW50ZXIgYW4gdW5jb21taXR0 ZWQgdHVwbGUsIHRoaXMgZmllbGQgaXMgdW5tYWludGFpbmVkLiBJZgorCSAqIHRoZSBwYWdlIGlz IGJlaW5nIHNldCBhbGwtdmlzaWJsZSBvciB3aGVuIGZyZWV6aW5nIGFsbCBsaXZlIHR1cGxlcyBv bgorCSAqIHRoZSBwYWdlLCBpdCBpcyB1c2VkIHRvIGNhbGN1bGF0ZSB0aGUgc25hcHNob3QgY29u ZmxpY3QgaG9yaXpvbi4KIAkgKi8KIAlwcnN0YXRlLnZpc2liaWxpdHlfY3V0b2ZmX3hpZCA9IElu dmFsaWRUcmFuc2FjdGlvbklkOwogCkBAIC05MDksNiArOTA2LDE2IEBAIGhlYXBfcGFnZV9wcnVu ZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogCQlwcnN0YXRl Lm5kZWFkID4gMCB8fAogCQlwcnN0YXRlLm51bnVzZWQgPiAwOwogCisJLyoKKwkgKiBBZnRlciBw cm9jZXNzaW5nIGFsbCB0aGUgbGl2ZSB0dXBsZXMgb24gdGhlIHBhZ2UsIGlmIHRoZSBuZXdlc3Qg eG1pbgorCSAqIGFtb25nc3QgdGhlbSBpcyBub3QgdmlzaWJsZSB0byBldmVyeW9uZSwgdGhlIHBh Z2UgY2Fubm90IGJlCisJICogYWxsLXZpc2libGUuCisJICovCisJaWYgKHByc3RhdGUuYWxsX3Zp c2libGUgJiYKKwkJVHJhbnNhY3Rpb25JZElzTm9ybWFsKHByc3RhdGUudmlzaWJpbGl0eV9jdXRv ZmZfeGlkKSAmJgorCQkhR2xvYmFsVmlzWGlkVmlzaWJsZVRvQWxsKHByc3RhdGUudmlzdGVzdCwg cHJzdGF0ZS52aXNpYmlsaXR5X2N1dG9mZl94aWQpKQorCQlwcnN0YXRlLmFsbF92aXNpYmxlID0g cHJzdGF0ZS5hbGxfZnJvemVuID0gZmFsc2U7CisKIAkvKgogCSAqIEV2ZW4gaWYgd2UgZG9uJ3Qg cHJ1bmUgYW55dGhpbmcsIGlmIHdlIGZvdW5kIGEgbmV3IHZhbHVlIGZvciB0aGUKIAkgKiBwZF9w cnVuZV94aWQgZmllbGQgb3IgdGhlIHBhZ2Ugd2FzIG1hcmtlZCBmdWxsLCB3ZSB3aWxsIHVwZGF0 ZSB0aGUgaGludApAQCAtMTEyOSw3ICsxMTM2LDcgQEAgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVl emUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJCUFzc2VydChwcnN0YXRlLmN1 dG9mZnMpOwogCiAJCWlmICghaGVhcF9wYWdlX2lzX2FsbF92aXNpYmxlKHJlbGF0aW9uLCBidWZm ZXIsCi0JCQkJCQkJCQkgIHByc3RhdGUuY3V0b2Zmcy0+T2xkZXN0WG1pbiwKKwkJCQkJCQkJCSAg cHJzdGF0ZS52aXN0ZXN0LAogCQkJCQkJCQkJICAmZGVidWdfYWxsX2Zyb3plbiwKIAkJCQkJCQkJ CSAgJmRlYnVnX2N1dG9mZiwgb2ZmX2xvYykpCiAJCQlBc3NlcnQoZmFsc2UpOwpAQCAtMTY1NSwx OSArMTY2Miw2IEBAIGhlYXBfcHJ1bmVfcmVjb3JkX3VuY2hhbmdlZF9scF9ub3JtYWwoUGFnZSBw YWdlLCBQcnVuZVN0YXRlICpwcnN0YXRlLCBPZmZzZXROdW1iCiAJCQkJICovCiAJCQkJeG1pbiA9 IEhlYXBUdXBsZUhlYWRlckdldFhtaW4oaHR1cCk7CiAKLQkJCQkvKgotCQkJCSAqIEZvciBub3cg YWx3YXlzIHVzZSBwcnN0YXRlLT5jdXRvZmZzIGZvciB0aGlzIHRlc3QsIGJlY2F1c2UKLQkJCQkg KiB3ZSBvbmx5IHVwZGF0ZSAnYWxsX3Zpc2libGUnIHdoZW4gZnJlZXppbmcgaXMgcmVxdWVzdGVk LiBXZQotCQkJCSAqIGNvdWxkIHVzZSBHbG9iYWxWaXNUZXN0SXNSZW1vdmFibGVYaWQgaW5zdGVh ZCwgaWYgYQotCQkJCSAqIG5vbi1mcmVlemluZyBjYWxsZXIgd2FudGVkIHRvIHNldCB0aGUgVk0g Yml0LgotCQkJCSAqLwotCQkJCUFzc2VydChwcnN0YXRlLT5jdXRvZmZzKTsKLQkJCQlpZiAoIVRy YW5zYWN0aW9uSWRQcmVjZWRlcyh4bWluLCBwcnN0YXRlLT5jdXRvZmZzLT5PbGRlc3RYbWluKSkK LQkJCQl7Ci0JCQkJCXByc3RhdGUtPmFsbF92aXNpYmxlID0gcHJzdGF0ZS0+YWxsX2Zyb3plbiA9 IGZhbHNlOwotCQkJCQlicmVhazsKLQkJCQl9Ci0KIAkJCQkvKiBUcmFjayBuZXdlc3QgeG1pbiBv biBwYWdlLiAqLwogCQkJCWlmIChUcmFuc2FjdGlvbklkRm9sbG93cyh4bWluLCBwcnN0YXRlLT52 aXNpYmlsaXR5X2N1dG9mZl94aWQpICYmCiAJCQkJCVRyYW5zYWN0aW9uSWRJc05vcm1hbCh4bWlu KSkKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwppbmRleCAyODQzNjM4OWQ2My4uMzQx MTE1ZGJiYmUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenku YworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKQEAgLTQ2NCw3ICs0 NjQsNyBAQCBzdGF0aWMgdm9pZCBkZWFkX2l0ZW1zX2FkZChMVlJlbFN0YXRlICp2YWNyZWwsIEJs b2NrTnVtYmVyIGJsa25vLCBPZmZzZXROdW1iZXIgKgogc3RhdGljIHZvaWQgZGVhZF9pdGVtc19y ZXNldChMVlJlbFN0YXRlICp2YWNyZWwpOwogc3RhdGljIHZvaWQgZGVhZF9pdGVtc19jbGVhbnVw KExWUmVsU3RhdGUgKnZhY3JlbCk7CiBzdGF0aWMgYm9vbCBoZWFwX3BhZ2Vfd291bGRfYmVfYWxs X3Zpc2libGUoUmVsYXRpb24gcmVsLCBCdWZmZXIgYnVmLAotCQkJCQkJCQkJCSAgIFRyYW5zYWN0 aW9uSWQgT2xkZXN0WG1pbiwKKwkJCQkJCQkJCQkgICBHbG9iYWxWaXNTdGF0ZSAqdmlzdGVzdCwK IAkJCQkJCQkJCQkgICBPZmZzZXROdW1iZXIgKmRlYWRvZmZzZXRzLAogCQkJCQkJCQkJCSAgIGlu dCBuZGVhZG9mZnNldHMsCiAJCQkJCQkJCQkJICAgYm9vbCAqYWxsX2Zyb3plbiwKQEAgLTI3MzMs NyArMjczMyw3IEBAIGxhenlfdmFjdXVtX2hlYXBfcGFnZShMVlJlbFN0YXRlICp2YWNyZWwsIEJs b2NrTnVtYmVyIGJsa25vLCBCdWZmZXIgYnVmZmVyLAogCQkJCQkJCSBJbnZhbGlkT2Zmc2V0TnVt YmVyKTsKIAogCWlmIChoZWFwX3BhZ2Vfd291bGRfYmVfYWxsX3Zpc2libGUodmFjcmVsLT5yZWws IGJ1ZmZlciwKLQkJCQkJCQkJCSAgIHZhY3JlbC0+Y3V0b2Zmcy5PbGRlc3RYbWluLAorCQkJCQkJ CQkJICAgdmFjcmVsLT52aXN0ZXN0LAogCQkJCQkJCQkJICAgZGVhZG9mZnNldHMsIG51bV9vZmZz ZXRzLAogCQkJCQkJCQkJICAgJmFsbF9mcm96ZW4sICZ2aXNpYmlsaXR5X2N1dG9mZl94aWQsCiAJ CQkJCQkJCQkgICAmdmFjcmVsLT5vZmZudW0pKQpAQCAtMzQ3OCwxNCArMzQ3OCwxMyBAQCBkZWFk X2l0ZW1zX2NsZWFudXAoTFZSZWxTdGF0ZSAqdmFjcmVsKQogICovCiBib29sCiBoZWFwX3BhZ2Vf aXNfYWxsX3Zpc2libGUoUmVsYXRpb24gcmVsLCBCdWZmZXIgYnVmLAotCQkJCQkJIFRyYW5zYWN0 aW9uSWQgT2xkZXN0WG1pbiwKKwkJCQkJCSBHbG9iYWxWaXNTdGF0ZSAqdmlzdGVzdCwKIAkJCQkJ CSBib29sICphbGxfZnJvemVuLAogCQkJCQkJIFRyYW5zYWN0aW9uSWQgKnZpc2liaWxpdHlfY3V0 b2ZmX3hpZCwKIAkJCQkJCSBPZmZzZXROdW1iZXIgKmxvZ2dpbmdfb2ZmbnVtKQogewogCi0JcmV0 dXJuIGhlYXBfcGFnZV93b3VsZF9iZV9hbGxfdmlzaWJsZShyZWwsIGJ1ZiwKLQkJCQkJCQkJCQkg IE9sZGVzdFhtaW4sCisJcmV0dXJuIGhlYXBfcGFnZV93b3VsZF9iZV9hbGxfdmlzaWJsZShyZWws IGJ1ZiwgdmlzdGVzdCwKIAkJCQkJCQkJCQkgIE5VTEwsIDAsCiAJCQkJCQkJCQkJICBhbGxfZnJv emVuLAogCQkJCQkJCQkJCSAgdmlzaWJpbGl0eV9jdXRvZmZfeGlkLApAQCAtMzUwNCw3ICszNTAz LDcgQEAgaGVhcF9wYWdlX2lzX2FsbF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1ZiwK ICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgcGFnZSBpcyBhbGwtdmlzaWJsZSBvdGhlciB0aGFuIHRo ZSBwcm92aWRlZAogICogZGVhZG9mZnNldHMgYW5kIGZhbHNlIG90aGVyd2lzZS4KICAqCi0gKiBP bGRlc3RYbWluIGlzIHVzZWQgdG8gZGV0ZXJtaW5lIHZpc2liaWxpdHkuCisgKiB2aXN0ZXN0IGlz IHVzZWQgdG8gZGV0ZXJtaW5lIHZpc2liaWxpdHkuCiAgKgogICogKmFsbF9mcm96ZW4gaXMgYW4g b3V0cHV0IHBhcmFtZXRlciBpbmRpY2F0aW5nIHRvIHRoZSBjYWxsZXIgaWYgZXZlcnkgdHVwbGUK ICAqIG9uIHRoZSBwYWdlIGlzIGZyb3plbi4KQEAgLTM1MjUsNyArMzUyNCw3IEBAIGhlYXBfcGFn ZV9pc19hbGxfdmlzaWJsZShSZWxhdGlvbiByZWwsIEJ1ZmZlciBidWYsCiAgKi8KIHN0YXRpYyBi b29sCiBoZWFwX3BhZ2Vfd291bGRfYmVfYWxsX3Zpc2libGUoUmVsYXRpb24gcmVsLCBCdWZmZXIg YnVmLAotCQkJCQkJCSAgIFRyYW5zYWN0aW9uSWQgT2xkZXN0WG1pbiwKKwkJCQkJCQkgICBHbG9i YWxWaXNTdGF0ZSAqdmlzdGVzdCwKIAkJCQkJCQkgICBPZmZzZXROdW1iZXIgKmRlYWRvZmZzZXRz LAogCQkJCQkJCSAgIGludCBuZGVhZG9mZnNldHMsCiAJCQkJCQkJICAgYm9vbCAqYWxsX2Zyb3pl biwKQEAgLTM1OTcsOCArMzU5Niw4IEBAIGhlYXBfcGFnZV93b3VsZF9iZV9hbGxfdmlzaWJsZShS ZWxhdGlvbiByZWwsIEJ1ZmZlciBidWYsCiAJCXR1cGxlLnRfbGVuID0gSXRlbUlkR2V0TGVuZ3Ro KGl0ZW1pZCk7CiAJCXR1cGxlLnRfdGFibGVPaWQgPSBSZWxhdGlvbkdldFJlbGlkKHJlbCk7CiAK LQkJc3dpdGNoIChIZWFwVHVwbGVTYXRpc2ZpZXNWYWN1dW0oJnR1cGxlLCBPbGRlc3RYbWluLAot CQkJCQkJCQkJCSBidWYpKQorCQlzd2l0Y2ggKEhlYXBUdXBsZVNhdGlzZmllc1ZhY3V1bUdsb2Jh bFZpcygmdHVwbGUsIHZpc3Rlc3QsCisJCQkJCQkJCQkJCQkgIGJ1ZikpCiAJCXsKIAkJCWNhc2Ug SEVBUFRVUExFX0xJVkU6CiAJCQkJewpAQCAtMzYxNyw4ICszNjE2LDcgQEAgaGVhcF9wYWdlX3dv dWxkX2JlX2FsbF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1ZiwKIAkJCQkJICogdGhh dCBldmVyeW9uZSBzZWVzIGl0IGFzIGNvbW1pdHRlZD8KIAkJCQkJICovCiAJCQkJCXhtaW4gPSBI ZWFwVHVwbGVIZWFkZXJHZXRYbWluKHR1cGxlLnRfZGF0YSk7Ci0JCQkJCWlmICghVHJhbnNhY3Rp b25JZFByZWNlZGVzKHhtaW4sCi0JCQkJCQkJCQkJCSAgIE9sZGVzdFhtaW4pKQorCQkJCQlpZiAo IUdsb2JhbFZpc1hpZFZpc2libGVUb0FsbCh2aXN0ZXN0LCB4bWluKSkKIAkJCQkJewogCQkJCQkJ YWxsX3Zpc2libGUgPSBmYWxzZTsKIAkJCQkJCSphbGxfZnJvemVuID0gZmFsc2U7CmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVh cGFtLmgKaW5kZXggY2FjN2E0YzI4OTkuLjM1YTI1Y2YwYjA0IDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9hY2Nlc3MvaGVhcGFtLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oCkBA IC00MDEsNyArNDAxLDcgQEAgZXh0ZXJuIHZvaWQgaGVhcF92YWN1dW1fcmVsKFJlbGF0aW9uIHJl bCwKIAkJCQkJCQljb25zdCBWYWN1dW1QYXJhbXMgcGFyYW1zLCBCdWZmZXJBY2Nlc3NTdHJhdGVn eSBic3RyYXRlZ3kpOwogCiBleHRlcm4gYm9vbCBoZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGUoUmVs YXRpb24gcmVsLCBCdWZmZXIgYnVmLAotCQkJCQkJCQkJIFRyYW5zYWN0aW9uSWQgT2xkZXN0WG1p biwKKwkJCQkJCQkJCSBHbG9iYWxWaXNTdGF0ZSAqdmlzdGVzdCwKIAkJCQkJCQkJCSBib29sICph bGxfZnJvemVuLAogCQkJCQkJCQkJIFRyYW5zYWN0aW9uSWQgKnZpc2liaWxpdHlfY3V0b2ZmX3hp ZCwKIAkJCQkJCQkJCSBPZmZzZXROdW1iZXIgKmxvZ2dpbmdfb2ZmbnVtKTsKQEAgLTQxMyw2ICs0 MTMsOCBAQCBleHRlcm4gVE1fUmVzdWx0IEhlYXBUdXBsZVNhdGlzZmllc1VwZGF0ZShIZWFwVHVw bGUgaHR1cCwgQ29tbWFuZElkIGN1cmNpZCwKIAkJCQkJCQkJCQkgIEJ1ZmZlciBidWZmZXIpOwog ZXh0ZXJuIEhUU1ZfUmVzdWx0IEhlYXBUdXBsZVNhdGlzZmllc1ZhY3V1bShIZWFwVHVwbGUgaHR1 cCwgVHJhbnNhY3Rpb25JZCBPbGRlc3RYbWluLAogCQkJCQkJCQkJCQlCdWZmZXIgYnVmZmVyKTsK K2V4dGVybiBIVFNWX1Jlc3VsdCBIZWFwVHVwbGVTYXRpc2ZpZXNWYWN1dW1HbG9iYWxWaXMoSGVh cFR1cGxlIGh0dXAsCisJCQkJCQkJCQkJCQkJIEdsb2JhbFZpc1N0YXRlICp2aXN0ZXN0LCBCdWZm ZXIgYnVmZmVyKTsKIGV4dGVybiBIVFNWX1Jlc3VsdCBIZWFwVHVwbGVTYXRpc2ZpZXNWYWN1dW1I b3Jpem9uKEhlYXBUdXBsZSBodHVwLCBCdWZmZXIgYnVmZmVyLAogCQkJCQkJCQkJCQkJICAgVHJh bnNhY3Rpb25JZCAqZGVhZF9hZnRlcik7CiBleHRlcm4gdm9pZCBIZWFwVHVwbGVTZXRIaW50Qml0 cyhIZWFwVHVwbGVIZWFkZXIgdHVwbGUsIEJ1ZmZlciBidWZmZXIsCi0tIAoyLjQzLjAKCg== --000000000000cf342e063f082d09 Content-Type: text/x-patch; charset="US-ASCII"; name="v14-0021-Inline-TransactionIdFollows-Precedes.patch" Content-Disposition: attachment; filename="v14-0021-Inline-TransactionIdFollows-Precedes.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfonltnq20 RnJvbSA3ZWEyNjcyNWM2OWFiYTZmMjY5NjkyMzg3YTZlOTIzNjE0MTgxY2M0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUdWUsIDI5IEp1bCAyMDI1IDA5OjU3OjEzIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTQgMjEvMjRdIElubGluZSBUcmFuc2FjdGlvbklkRm9sbG93cy9QcmVjZWRlcygpCgpD YWxsaW5nIHRoZXNlIGZyb20gb24tYWNjZXNzIHBydW5pbmcgY29kZSBoYWQgbm90aWNlYWJsZSBv dmVyaGVhZCBpbiBhCnByb2ZpbGUuIFRoZXJlIGRvZXMgbm90IHNlZW0gdG8gYmUgYSByZWFzb24g bm90IHRvIGlubGluZSB0aGVtLgoKUmV2aWV3ZWQtYnk6IEtpcmlsbCBSZXNoa2UgPHJlc2hrZWtp cmlsbEBnbWFpbC5jb20+Ci0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vdHJhbnNhbS5j IHwgNjQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogc3JjL2luY2x1ZGUvYWNjZXNzL3RyYW5z YW0uaCAgICAgICAgIHwgNzAgKysrKysrKysrKysrKysrKysrKysrKysrKystLQogMiBmaWxlcyBj aGFuZ2VkLCA2NiBpbnNlcnRpb25zKCspLCA2OCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS90cmFuc2FtLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3Mv dHJhbnNhbS90cmFuc2FtLmMKaW5kZXggOWEzOTQ1MWEyOWEuLjU1M2Q2NzU2Y2IzIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS90cmFuc2FtLmMKKysrIGIvc3JjL2JhY2tl bmQvYWNjZXNzL3RyYW5zYW0vdHJhbnNhbS5jCkBAIC0yNzMsNzAgKzI3Myw2IEBAIFRyYW5zYWN0 aW9uSWRBYm9ydFRyZWUoVHJhbnNhY3Rpb25JZCB4aWQsIGludCBueGlkcywgVHJhbnNhY3Rpb25J ZCAqeGlkcykKIAkJCQkJCQkgICBUUkFOU0FDVElPTl9TVEFUVVNfQUJPUlRFRCwgSW52YWxpZFhM b2dSZWNQdHIpOwogfQogCi0vKgotICogVHJhbnNhY3Rpb25JZFByZWNlZGVzIC0tLSBpcyBpZDEg bG9naWNhbGx5IDwgaWQyPwotICovCi1ib29sCi1UcmFuc2FjdGlvbklkUHJlY2VkZXMoVHJhbnNh Y3Rpb25JZCBpZDEsIFRyYW5zYWN0aW9uSWQgaWQyKQotewotCS8qCi0JICogSWYgZWl0aGVyIElE IGlzIGEgcGVybWFuZW50IFhJRCB0aGVuIHdlIGNhbiBqdXN0IGRvIHVuc2lnbmVkCi0JICogY29t cGFyaXNvbi4gIElmIGJvdGggYXJlIG5vcm1hbCwgZG8gYSBtb2R1bG8tMl4zMiBjb21wYXJpc29u LgotCSAqLwotCWludDMyCQlkaWZmOwotCi0JaWYgKCFUcmFuc2FjdGlvbklkSXNOb3JtYWwoaWQx KSB8fCAhVHJhbnNhY3Rpb25JZElzTm9ybWFsKGlkMikpCi0JCXJldHVybiAoaWQxIDwgaWQyKTsK LQotCWRpZmYgPSAoaW50MzIpIChpZDEgLSBpZDIpOwotCXJldHVybiAoZGlmZiA8IDApOwotfQot Ci0vKgotICogVHJhbnNhY3Rpb25JZFByZWNlZGVzT3JFcXVhbHMgLS0tIGlzIGlkMSBsb2dpY2Fs bHkgPD0gaWQyPwotICovCi1ib29sCi1UcmFuc2FjdGlvbklkUHJlY2VkZXNPckVxdWFscyhUcmFu c2FjdGlvbklkIGlkMSwgVHJhbnNhY3Rpb25JZCBpZDIpCi17Ci0JaW50MzIJCWRpZmY7Ci0KLQlp ZiAoIVRyYW5zYWN0aW9uSWRJc05vcm1hbChpZDEpIHx8ICFUcmFuc2FjdGlvbklkSXNOb3JtYWwo aWQyKSkKLQkJcmV0dXJuIChpZDEgPD0gaWQyKTsKLQotCWRpZmYgPSAoaW50MzIpIChpZDEgLSBp ZDIpOwotCXJldHVybiAoZGlmZiA8PSAwKTsKLX0KLQotLyoKLSAqIFRyYW5zYWN0aW9uSWRGb2xs b3dzIC0tLSBpcyBpZDEgbG9naWNhbGx5ID4gaWQyPwotICovCi1ib29sCi1UcmFuc2FjdGlvbklk Rm9sbG93cyhUcmFuc2FjdGlvbklkIGlkMSwgVHJhbnNhY3Rpb25JZCBpZDIpCi17Ci0JaW50MzIJ CWRpZmY7Ci0KLQlpZiAoIVRyYW5zYWN0aW9uSWRJc05vcm1hbChpZDEpIHx8ICFUcmFuc2FjdGlv bklkSXNOb3JtYWwoaWQyKSkKLQkJcmV0dXJuIChpZDEgPiBpZDIpOwotCi0JZGlmZiA9IChpbnQz MikgKGlkMSAtIGlkMik7Ci0JcmV0dXJuIChkaWZmID4gMCk7Ci19Ci0KLS8qCi0gKiBUcmFuc2Fj dGlvbklkRm9sbG93c09yRXF1YWxzIC0tLSBpcyBpZDEgbG9naWNhbGx5ID49IGlkMj8KLSAqLwot Ym9vbAotVHJhbnNhY3Rpb25JZEZvbGxvd3NPckVxdWFscyhUcmFuc2FjdGlvbklkIGlkMSwgVHJh bnNhY3Rpb25JZCBpZDIpCi17Ci0JaW50MzIJCWRpZmY7Ci0KLQlpZiAoIVRyYW5zYWN0aW9uSWRJ c05vcm1hbChpZDEpIHx8ICFUcmFuc2FjdGlvbklkSXNOb3JtYWwoaWQyKSkKLQkJcmV0dXJuIChp ZDEgPj0gaWQyKTsKLQotCWRpZmYgPSAoaW50MzIpIChpZDEgLSBpZDIpOwotCXJldHVybiAoZGlm ZiA+PSAwKTsKLX0KLQogCiAvKgogICogVHJhbnNhY3Rpb25JZExhdGVzdCAtLS0gZ2V0IGxhdGVz dCBYSUQgYW1vbmcgYSBtYWluIHhhY3QgYW5kIGl0cyBjaGlsZHJlbgpkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvYWNjZXNzL3RyYW5zYW0uaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy90cmFuc2FtLmgK aW5kZXggN2Q4MmNkMmViNTYuLmM5ZTIwNDE4Mjc1IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9h Y2Nlc3MvdHJhbnNhbS5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy90cmFuc2FtLmgKQEAgLTI1 NSw2ICsyNTUsNzIgQEAgdHlwZWRlZiBzdHJ1Y3QgVHJhbnNhbVZhcmlhYmxlc0RhdGEKIH0gVHJh bnNhbVZhcmlhYmxlc0RhdGE7CiAKIAorCisvKgorICogVHJhbnNhY3Rpb25JZFByZWNlZGVzIC0t LSBpcyBpZDEgbG9naWNhbGx5IDwgaWQyPworICovCitzdGF0aWMgaW5saW5lIGJvb2wKK1RyYW5z YWN0aW9uSWRQcmVjZWRlcyhUcmFuc2FjdGlvbklkIGlkMSwgVHJhbnNhY3Rpb25JZCBpZDIpCit7 CisJLyoKKwkgKiBJZiBlaXRoZXIgSUQgaXMgYSBwZXJtYW5lbnQgWElEIHRoZW4gd2UgY2FuIGp1 c3QgZG8gdW5zaWduZWQKKwkgKiBjb21wYXJpc29uLiAgSWYgYm90aCBhcmUgbm9ybWFsLCBkbyBh IG1vZHVsby0yXjMyIGNvbXBhcmlzb24uCisJICovCisJaW50MzIJCWRpZmY7CisKKwlpZiAoIVRy YW5zYWN0aW9uSWRJc05vcm1hbChpZDEpIHx8ICFUcmFuc2FjdGlvbklkSXNOb3JtYWwoaWQyKSkK KwkJcmV0dXJuIChpZDEgPCBpZDIpOworCisJZGlmZiA9IChpbnQzMikgKGlkMSAtIGlkMik7CisJ cmV0dXJuIChkaWZmIDwgMCk7Cit9CisKKy8qCisgKiBUcmFuc2FjdGlvbklkUHJlY2VkZXNPckVx dWFscyAtLS0gaXMgaWQxIGxvZ2ljYWxseSA8PSBpZDI/CisgKi8KK3N0YXRpYyBpbmxpbmUgYm9v bAorVHJhbnNhY3Rpb25JZFByZWNlZGVzT3JFcXVhbHMoVHJhbnNhY3Rpb25JZCBpZDEsIFRyYW5z YWN0aW9uSWQgaWQyKQoreworCWludDMyCQlkaWZmOworCisJaWYgKCFUcmFuc2FjdGlvbklkSXNO b3JtYWwoaWQxKSB8fCAhVHJhbnNhY3Rpb25JZElzTm9ybWFsKGlkMikpCisJCXJldHVybiAoaWQx IDw9IGlkMik7CisKKwlkaWZmID0gKGludDMyKSAoaWQxIC0gaWQyKTsKKwlyZXR1cm4gKGRpZmYg PD0gMCk7Cit9CisKKy8qCisgKiBUcmFuc2FjdGlvbklkRm9sbG93cyAtLS0gaXMgaWQxIGxvZ2lj YWxseSA+IGlkMj8KKyAqLworc3RhdGljIGlubGluZSBib29sCitUcmFuc2FjdGlvbklkRm9sbG93 cyhUcmFuc2FjdGlvbklkIGlkMSwgVHJhbnNhY3Rpb25JZCBpZDIpCit7CisJaW50MzIJCWRpZmY7 CisKKwlpZiAoIVRyYW5zYWN0aW9uSWRJc05vcm1hbChpZDEpIHx8ICFUcmFuc2FjdGlvbklkSXNO b3JtYWwoaWQyKSkKKwkJcmV0dXJuIChpZDEgPiBpZDIpOworCisJZGlmZiA9IChpbnQzMikgKGlk MSAtIGlkMik7CisJcmV0dXJuIChkaWZmID4gMCk7Cit9CisKKy8qCisgKiBUcmFuc2FjdGlvbklk Rm9sbG93c09yRXF1YWxzIC0tLSBpcyBpZDEgbG9naWNhbGx5ID49IGlkMj8KKyAqLworc3RhdGlj IGlubGluZSBib29sCitUcmFuc2FjdGlvbklkRm9sbG93c09yRXF1YWxzKFRyYW5zYWN0aW9uSWQg aWQxLCBUcmFuc2FjdGlvbklkIGlkMikKK3sKKwlpbnQzMgkJZGlmZjsKKworCWlmICghVHJhbnNh Y3Rpb25JZElzTm9ybWFsKGlkMSkgfHwgIVRyYW5zYWN0aW9uSWRJc05vcm1hbChpZDIpKQorCQly ZXR1cm4gKGlkMSA+PSBpZDIpOworCisJZGlmZiA9IChpbnQzMikgKGlkMSAtIGlkMik7CisJcmV0 dXJuIChkaWZmID49IDApOworfQorCisKIC8qIC0tLS0tLS0tLS0tLS0tLS0KICAqCQlleHRlcm4g ZGVjbGFyYXRpb25zCiAgKiAtLS0tLS0tLS0tLS0tLS0tCkBAIC0yNzQsMTAgKzM0MCw2IEBAIGV4 dGVybiBib29sIFRyYW5zYWN0aW9uSWREaWRBYm9ydChUcmFuc2FjdGlvbklkIHRyYW5zYWN0aW9u SWQpOwogZXh0ZXJuIHZvaWQgVHJhbnNhY3Rpb25JZENvbW1pdFRyZWUoVHJhbnNhY3Rpb25JZCB4 aWQsIGludCBueGlkcywgVHJhbnNhY3Rpb25JZCAqeGlkcyk7CiBleHRlcm4gdm9pZCBUcmFuc2Fj dGlvbklkQXN5bmNDb21taXRUcmVlKFRyYW5zYWN0aW9uSWQgeGlkLCBpbnQgbnhpZHMsIFRyYW5z YWN0aW9uSWQgKnhpZHMsIFhMb2dSZWNQdHIgbHNuKTsKIGV4dGVybiB2b2lkIFRyYW5zYWN0aW9u SWRBYm9ydFRyZWUoVHJhbnNhY3Rpb25JZCB4aWQsIGludCBueGlkcywgVHJhbnNhY3Rpb25JZCAq eGlkcyk7Ci1leHRlcm4gYm9vbCBUcmFuc2FjdGlvbklkUHJlY2VkZXMoVHJhbnNhY3Rpb25JZCBp ZDEsIFRyYW5zYWN0aW9uSWQgaWQyKTsKLWV4dGVybiBib29sIFRyYW5zYWN0aW9uSWRQcmVjZWRl c09yRXF1YWxzKFRyYW5zYWN0aW9uSWQgaWQxLCBUcmFuc2FjdGlvbklkIGlkMik7Ci1leHRlcm4g Ym9vbCBUcmFuc2FjdGlvbklkRm9sbG93cyhUcmFuc2FjdGlvbklkIGlkMSwgVHJhbnNhY3Rpb25J ZCBpZDIpOwotZXh0ZXJuIGJvb2wgVHJhbnNhY3Rpb25JZEZvbGxvd3NPckVxdWFscyhUcmFuc2Fj dGlvbklkIGlkMSwgVHJhbnNhY3Rpb25JZCBpZDIpOwogZXh0ZXJuIFRyYW5zYWN0aW9uSWQgVHJh bnNhY3Rpb25JZExhdGVzdChUcmFuc2FjdGlvbklkIG1haW54aWQsCiAJCQkJCQkJCQkJIGludCBu eGlkcywgY29uc3QgVHJhbnNhY3Rpb25JZCAqeGlkcyk7CiBleHRlcm4gWExvZ1JlY1B0ciBUcmFu c2FjdGlvbklkR2V0Q29tbWl0TFNOKFRyYW5zYWN0aW9uSWQgeGlkKTsKLS0gCjIuNDMuMAoK --000000000000cf342e063f082d09 Content-Type: text/x-patch; charset="US-ASCII"; name="v14-0022-Unset-all-visible-sooner-if-not-freezing.patch" Content-Disposition: attachment; filename="v14-0022-Unset-all-visible-sooner-if-not-freezing.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfonltnr21 RnJvbSBlZWEzZGYzZjA2NjBmODY4ZGY1NmZhMDA0M2MxODJiMmZiM2MwMjU4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUdWUsIDI5IEp1bCAyMDI1IDE0OjM1OjEzIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTQgMjIvMjRdIFVuc2V0IGFsbC12aXNpYmxlIHNvb25lciBpZiBub3QgZnJlZXppbmcK CkluIHBydW5lL2ZyZWV6ZSBjb2RlLCB3ZSBkZWxheSB1bnNldHRpbmcgYWxsLXZpc2libGUvYWxs LWZyb3plbiBpbiB0aGUKcHJlc2VuY2Ugb2YgZGVhZCBpdGVtcyB0byBhbGxvdyBvcHBvcnR1bmlz dGljYWxseSBmcmVlemluZyB0dXBsZXMgaWYgdGhlCndob2xlIHBhZ2Ugd291bGQgYmUgZnJvemVu IGV4Y2VwdCBmb3IgdGhvc2UgZGVhZCBpdGVtcyAtLSB3aGljaCBhcmUKcmVtb3ZlZCBsYXRlciBp biB2YWN1dW0ncyB0aGlyZCBwaGFzZS4KCkZ1dHVyZSBjb21taXRzIHdpbGwgYWxsb3cgb24tYWNj ZXNzIHBydW5pbmcgdG8gc2V0IHRoZSBWTSwgd2hpY2ggbWVhbnMKYWxsLXZpc2libGUgd2lsbCBi ZSBpbml0aWFsaXplZCB0byB0cnVlIGluc3RlYWQgb2YgZmFsc2UgYW5kIHdlIHdpbGwgZG8KZXh0 cmEgYm9va2tlZXBpbmcgaW4gaGVhcF9wcnVuZV91bmNoYW5nZWRfbHBfbm9ybWFsKCkgdG8ga2Vl cCB0cmFjayBvZgp3aGV0aGVyIG9yIG5vdCB0aGUgcGFnZSBpcyBhbGwtdmlzaWJsZS4KCkJlY2F1 c2Ugb24tYWNjZXNzIHBydW5pbmcgd2lsbCBub3QgZnJlZXplIHR1cGxlcywgaXQgbWFrZXMgc2Vu c2UgdG8KdW5zZXQgYWxsLXZpc2libGUgYXMgc29vbiBhcyB3ZSBlbmNvdW50ZXIgYW4gTFBfREVB RCBpdGVtIGFuZAphdm9pZCBjb250aW51ZWQgYm9va2tlZXBpbmcgc2luY2Ugd2Uga25vdyB0aGUg cGFnZSBpcyBub3QgYWxsLXZpc2libGUKYW5kIHdlIHdvbid0IGJlIGFibGUgdG8gcmVtb3ZlIHRo b3NlIGRlYWQgaXRlbXMuCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMg fCAxMCArKysrKysrKy0tCiAxIGZpbGUgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCAyIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5j IGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKaW5kZXggYmI3YTEzNTdhODku LmMyOWY0N2FiMTUxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhl YXAuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYwpAQCAtMTUyMiw4 ICsxNTIyLDExIEBAIGhlYXBfcHJ1bmVfcmVjb3JkX2RlYWQoUHJ1bmVTdGF0ZSAqcHJzdGF0ZSwg T2Zmc2V0TnVtYmVyIG9mZm51bSwKIAogCS8qCiAJICogRGVsaWJlcmF0ZWx5IGRlbGF5IHVuc2V0 dGluZyBhbGxfdmlzaWJsZSB1bnRpbCBsYXRlciBkdXJpbmcgcHJ1bmluZy4KLQkgKiBSZW1vdmFi bGUgZGVhZCB0dXBsZXMgc2hvdWxkbid0IHByZWNsdWRlIGZyZWV6aW5nIHRoZSBwYWdlLgorCSAq IFJlbW92YWJsZSBkZWFkIHR1cGxlcyBzaG91bGRuJ3QgcHJlY2x1ZGUgZnJlZXppbmcgdGhlIHBh Z2UuIElmIHdlIHdvbid0CisJICogYXR0ZW1wdCBmcmVlemluZywganVzdCB1bnNldCBhbGwtdmlz aWJsZSBub3csIHRob3VnaC4KIAkgKi8KKwlpZiAoIXByc3RhdGUtPmF0dGVtcHRfZnJlZXplKQor CQlwcnN0YXRlLT5hbGxfdmlzaWJsZSA9IHByc3RhdGUtPmFsbF9mcm96ZW4gPSBmYWxzZTsKIAog CS8qIFJlY29yZCB0aGUgZGVhZCBvZmZzZXQgZm9yIHZhY3V1bSAqLwogCXByc3RhdGUtPmRlYWRv ZmZzZXRzW3Byc3RhdGUtPmxwZGVhZF9pdGVtcysrXSA9IG9mZm51bTsKQEAgLTE3NzYsOCArMTc3 OSwxMSBAQCBoZWFwX3BydW5lX3JlY29yZF91bmNoYW5nZWRfbHBfZGVhZChQYWdlIHBhZ2UsIFBy dW5lU3RhdGUgKnByc3RhdGUsIE9mZnNldE51bWJlcgogCSAqIFNpbWlsYXJseSwgZG9uJ3QgdW5z ZXQgYWxsX3Zpc2libGUgdW50aWwgbGF0ZXIsIGF0IHRoZSBlbmQgb2YKIAkgKiBoZWFwX3BhZ2Vf cHJ1bmVfYW5kX2ZyZWV6ZSgpLiAgVGhpcyB3aWxsIGFsbG93IHVzIHRvIGF0dGVtcHQgdG8gZnJl ZXplCiAJICogdGhlIHBhZ2UgYWZ0ZXIgcHJ1bmluZy4gIEFzIGxvbmcgYXMgd2UgdW5zZXQgaXQg YmVmb3JlIHVwZGF0aW5nIHRoZQotCSAqIHZpc2liaWxpdHkgbWFwLCB0aGlzIHdpbGwgYmUgY29y cmVjdC4KKwkgKiB2aXNpYmlsaXR5IG1hcCwgdGhpcyB3aWxsIGJlIGNvcnJlY3QuIElmIHdlIHdv bid0IGF0dGVtcHQgZnJlZXppbmcsCisJICogdGhvdWdoLCBqdXN0IHVuc2V0IGFsbC12aXNpYmxl IG5vdy4KIAkgKi8KKwlpZiAoIXByc3RhdGUtPmF0dGVtcHRfZnJlZXplKQorCQlwcnN0YXRlLT5h bGxfdmlzaWJsZSA9IHByc3RhdGUtPmFsbF9mcm96ZW4gPSBmYWxzZTsKIAogCS8qIFJlY29yZCB0 aGUgZGVhZCBvZmZzZXQgZm9yIHZhY3V1bSAqLwogCXByc3RhdGUtPmRlYWRvZmZzZXRzW3Byc3Rh dGUtPmxwZGVhZF9pdGVtcysrXSA9IG9mZm51bTsKLS0gCjIuNDMuMAoK --000000000000cf342e063f082d09 Content-Type: text/x-patch; charset="US-ASCII"; name="v14-0024-Set-pd_prune_xid-on-insert.patch" Content-Disposition: attachment; filename="v14-0024-Set-pd_prune_xid-on-insert.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfonltnv23 RnJvbSAwMTM0Y2E3MDdmNGM2NDYyMGZmMjZjNjlkNzAzYjc5ZWM0MjFhYzkxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUdWUsIDI5IEp1bCAyMDI1IDE2OjEyOjU2IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTQgMjQvMjRdIFNldCBwZF9wcnVuZV94aWQgb24gaW5zZXJ0CgpOb3cgdGhhdCB3ZSBj YW4gc2V0IHRoZSBWTSBkdXJpbmcgcmVhZC1vbmx5IHF1ZXJpZXMsIGl0IG1ha2VzIHNlbnNlIHRv CnN0YXJ0IHNldHRpbmcgdGhlIHBhZ2UgcHJ1bmFibGUgaGludCBvbiBpbnNlcnQuIFRoaXMgd2ls bCBhbGxvdwpoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZSgpIHRvIGJlIGNhbGxlZCB3aGVuIHRo ZSBwYWdlIGlzIGZ1bGwgb3IKbW9zdGx5IGZ1bGwuCgpGb3IgeWVhcnMgdGhlcmUgaGFzIGJlZW4g YSBub3RlIGluIGhlYXBfaW5zZXJ0KCkgYW5kIGhlYXBfbXVsdGlfaW5zZXJ0KCkKcG9pbnRpbmcg b3V0IHRoYXQgc2V0dGluZyBwZF9wcnVuZV94aWQgd291bGQgaGVscCBjbGVhbiB1cCBhYm9ydGVk Cmluc2VydGVkIHR1cGxlcyB0aGF0IHdvdWxkIG90aGVyd2lzZSBub3QgYmUgY2xlYW5lZCB1cCB1 bnRpbCB2YWN1dW0uClNvLCB0aGF0J3MgYW5vdGhlciBiZW5lZml0IG9mIHNldHRpbmcgaXQuCgpT ZXR0aW5nIHBkX3BydW5lX3hpZCBvbiBpbnNlcnQgY2F1c2VzIGEgcGFnZSB0byBiZSBwcnVuZWQg YW5kIHRoZW4Kd3JpdHRlbiBvdXQgd2hpY2ggdGhlbiBhZmZlY3RzIHRoZSByZXBvcnRlZCBudW1i ZXIgb2YgaGl0cyBpbiB0aGUKaW5kZXgta2lsbHR1cGxlcyBpc29sYXRpb24gdGVzdC4gVGhpcyBp cyBhIHF1aXJrIG9mIGhvdyBoaXRzIGFyZSB0cmFja2VkCndoaWNoIHNvbWV0aW1lcyBsZWFkcyB0 aGVtIHRvIGJlIGRvdWJsZSBjb3VudGVkLiBUaGlzIHNob3VsZCBwcm9iYWJseSBiZQpmaXhlZCBv ciBjaGFuZ2VkIGluZGVwZW5kZW50bHkuCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVh cGFtLmMgICAgICAgICAgICAgIHwgMjUgKysrKysrKysrKysrKy0tLS0tLQogc3JjL2JhY2tlbmQv YWNjZXNzL2hlYXAvaGVhcGFtX3hsb2cuYyAgICAgICAgIHwgMTUgKysrKysrKysrKy0KIC4uLi9p c29sYXRpb24vZXhwZWN0ZWQvaW5kZXgta2lsbHR1cGxlcy5vdXQgICB8ICA2ICsrLS0tCiAzIGZp bGVzIGNoYW5nZWQsIDM0IGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNz L2hlYXAvaGVhcGFtLmMKaW5kZXggOTRkNjczZDkyYzAuLjQ3YWE5NjM4NzI0IDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYworKysgYi9zcmMvYmFja2VuZC9hY2Nl c3MvaGVhcC9oZWFwYW0uYwpAQCAtMjEwNCw2ICsyMTA0LDcgQEAgaGVhcF9pbnNlcnQoUmVsYXRp b24gcmVsYXRpb24sIEhlYXBUdXBsZSB0dXAsIENvbW1hbmRJZCBjaWQsCiAJVHJhbnNhY3Rpb25J ZCB4aWQgPSBHZXRDdXJyZW50VHJhbnNhY3Rpb25JZCgpOwogCUhlYXBUdXBsZQloZWFwdHVwOwog CUJ1ZmZlcgkJYnVmZmVyOworCVBhZ2UJCXBhZ2U7CiAJQnVmZmVyCQl2bWJ1ZmZlciA9IEludmFs aWRCdWZmZXI7CiAJYm9vbAkJYWxsX3Zpc2libGVfY2xlYXJlZCA9IGZhbHNlOwogCkBAIC0yMTYz LDE1ICsyMTY0LDE5IEBAIGhlYXBfaW5zZXJ0KFJlbGF0aW9uIHJlbGF0aW9uLCBIZWFwVHVwbGUg dHVwLCBDb21tYW5kSWQgY2lkLAogCX0KIAogCS8qCi0JICogWFhYIFNob3VsZCB3ZSBzZXQgUGFn ZVNldFBydW5hYmxlIG9uIHRoaXMgcGFnZSA/CisJICogU2V0IHBkX3BydW5lX3hpZCB0byB0cmln Z2VyIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKCkgb25jZSB0aGUgcGFnZQorCSAqIGlzIGZ1 bGwgc28gdGhhdCB3ZSBjYW4gc2V0IHRoZSBwYWdlIGFsbC12aXNpYmxlIGluIHRoZSBWTS4KIAkg KgotCSAqIFRoZSBpbnNlcnRpbmcgdHJhbnNhY3Rpb24gbWF5IGV2ZW50dWFsbHkgYWJvcnQgdGh1 cyBtYWtpbmcgdGhpcyB0dXBsZQotCSAqIERFQUQgYW5kIGhlbmNlIGF2YWlsYWJsZSBmb3IgcHJ1 bmluZy4gVGhvdWdoIHdlIGRvbid0IHdhbnQgdG8gb3B0aW1pemUKLQkgKiBmb3IgYWJvcnRzLCBp ZiBubyBvdGhlciB0dXBsZSBpbiB0aGlzIHBhZ2UgaXMgVVBEQVRFZC9ERUxFVEVkLCB0aGUKLQkg KiBhYm9ydGVkIHR1cGxlIHdpbGwgbmV2ZXIgYmUgcHJ1bmVkIHVudGlsIG5leHQgdmFjdXVtIGlz IHRyaWdnZXJlZC4KKwkgKiBTZXR0aW5nIHBkX3BydW5lX3hpZCBpcyBhbHNvIGhhbmR5IGlmIHRo ZSBpbnNlcnRpbmcgdHJhbnNhY3Rpb24KKwkgKiBldmVudHVhbGx5IGFib3J0cyBtYWtpbmcgdGhp cyB0dXBsZSBERUFEIGFuZCBoZW5jZSBhdmFpbGFibGUgZm9yCisJICogcHJ1bmluZy4gSWYgbm8g b3RoZXIgdHVwbGUgaW4gdGhpcyBwYWdlIGlzIFVQREFURWQvREVMRVRFZCwgdGhlIGFib3J0ZWQK KwkgKiB0dXBsZSB3b3VsZCBuZXZlciBvdGhlcndpc2UgYmUgcHJ1bmVkIHVudGlsIG5leHQgdmFj dXVtIGlzIHRyaWdnZXJlZC4KIAkgKgotCSAqIElmIHlvdSBkbyBhZGQgUGFnZVNldFBydW5hYmxl IGhlcmUsIGFkZCBpdCBpbiBoZWFwX3hsb2dfaW5zZXJ0IHRvby4KKwkgKiBEb24ndCBzZXQgaXQg aWYgd2UgYXJlIGluIGJvb3RzdHJhcCBtb2RlLCB0aG91Z2guCiAJICovCisJcGFnZSA9IEJ1ZmZl ckdldFBhZ2UoYnVmZmVyKTsKKwlpZiAoVHJhbnNhY3Rpb25JZElzTm9ybWFsKHhpZCkpCisJCVBh Z2VTZXRQcnVuYWJsZShwYWdlLCB4aWQpOwogCiAJTWFya0J1ZmZlckRpcnR5KGJ1ZmZlcik7CiAK QEAgLTIxODEsNyArMjE4Niw2IEBAIGhlYXBfaW5zZXJ0KFJlbGF0aW9uIHJlbGF0aW9uLCBIZWFw VHVwbGUgdHVwLCBDb21tYW5kSWQgY2lkLAogCQl4bF9oZWFwX2luc2VydCB4bHJlYzsKIAkJeGxf aGVhcF9oZWFkZXIgeGxoZHI7CiAJCVhMb2dSZWNQdHIJcmVjcHRyOwotCQlQYWdlCQlwYWdlID0g QnVmZmVyR2V0UGFnZShidWZmZXIpOwogCQl1aW50OAkJaW5mbyA9IFhMT0dfSEVBUF9JTlNFUlQ7 CiAJCWludAkJCWJ1ZmZsYWdzID0gMDsKIApAQCAtMjU0NSw4ICsyNTQ5LDEzIEBAIGhlYXBfbXVs dGlfaW5zZXJ0KFJlbGF0aW9uIHJlbGF0aW9uLCBUdXBsZVRhYmxlU2xvdCAqKnNsb3RzLCBpbnQg bnR1cGxlcywKIAkJfQogCiAJCS8qCi0JCSAqIFhYWCBTaG91bGQgd2Ugc2V0IFBhZ2VTZXRQcnVu YWJsZSBvbiB0aGlzIHBhZ2UgPyBTZWUgaGVhcF9pbnNlcnQoKQorCQkgKiBTZXQgcGRfcHJ1bmVf eGlkLiBTZWUgaGVhcF9pbnNlcnQoKSBmb3IgbW9yZSBvbiB3aHkgd2UgZG8gdGhpcyB3aGVuCisJ CSAqIGluc2VydGluZyB0dXBsZXMuIFRoaXMgb25seSBtYWtlcyBzZW5zZSBpZiB3ZSBhcmVuJ3Qg YWxyZWFkeQorCQkgKiBzZXR0aW5nIHRoZSBwYWdlIGZyb3plbiBpbiB0aGUgVk0uIFdlIGFsc28g ZG9uJ3Qgc2V0IGl0IGluCisJCSAqIGJvb3RzdHJhcCBtb2RlLgogCQkgKi8KKwkJaWYgKCFhbGxf ZnJvemVuX3NldCAmJiBUcmFuc2FjdGlvbklkSXNOb3JtYWwoeGlkKSkKKwkJCVBhZ2VTZXRQcnVu YWJsZShwYWdlLCB4aWQpOwogCiAJCU1hcmtCdWZmZXJEaXJ0eShidWZmZXIpOwogCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1feGxvZy5jIGIvc3JjL2JhY2tlbmQv YWNjZXNzL2hlYXAvaGVhcGFtX3hsb2cuYwppbmRleCBhODkwODM3MzA2Ny4uYTJjNGU0ZjQ3ZmUg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV94bG9nLmMKKysrIGIv c3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX3hsb2cuYwpAQCAtNDg2LDYgKzQ4NiwxMiBA QCBoZWFwX3hsb2dfaW5zZXJ0KFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCiAJCWZyZWVzcGFj ZSA9IFBhZ2VHZXRIZWFwRnJlZVNwYWNlKHBhZ2UpOyAvKiBuZWVkZWQgdG8gdXBkYXRlIEZTTSBi ZWxvdyAqLwogCisJCS8qCisJCSAqIFNldCB0aGUgcGFnZSBwcnVuYWJsZSB0byB0cmlnZ2VyIG9u LWFjY2VzcyBwcnVuaW5nIGxhdGVyIHdoaWNoIG1heQorCQkgKiBzZXQgdGhlIHBhZ2UgYWxsLXZp c2libGUgaW4gdGhlIFZNLgorCQkgKi8KKwkJUGFnZVNldFBydW5hYmxlKHBhZ2UsIFhMb2dSZWNH ZXRYaWQocmVjb3JkKSk7CisKIAkJUGFnZVNldExTTihwYWdlLCBsc24pOwogCiAJCWlmICh4bHJl Yy0+ZmxhZ3MgJiBYTEhfSU5TRVJUX0FMTF9WSVNJQkxFX0NMRUFSRUQpCkBAIC02MzUsOSArNjQx LDE2IEBAIGhlYXBfeGxvZ19tdWx0aV9pbnNlcnQoWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAJ CWlmICh4bHJlYy0+ZmxhZ3MgJiBYTEhfSU5TRVJUX0FMTF9WSVNJQkxFX0NMRUFSRUQpCiAJCQlQ YWdlQ2xlYXJBbGxWaXNpYmxlKHBhZ2UpOwogCi0JCS8qIFhMSF9JTlNFUlRfQUxMX0ZST1pFTl9T RVQgaW1wbGllcyB0aGF0IGFsbCB0dXBsZXMgYXJlIHZpc2libGUgKi8KKwkJLyoKKwkJICogWExI X0lOU0VSVF9BTExfRlJPWkVOX1NFVCBpbXBsaWVzIHRoYXQgYWxsIHR1cGxlcyBhcmUgdmlzaWJs ZS4gSWYKKwkJICogd2UgYXJlIG5vdCBzZXR0aW5nIHRoZSBwYWdlIGZyb3plbiwgdGhlbiBzZXQg dGhlIHBhZ2UncyBwcnVuYWJsZQorCQkgKiBoaW50IHNvIHRoYXQgd2UgdHJpZ2dlciBvbi1hY2Nl c3MgcHJ1bmluZyBsYXRlciB3aGljaCBtYXkgc2V0IHRoZQorCQkgKiBwYWdlIGFsbC12aXNpYmxl IGluIHRoZSBWTS4KKwkJICovCiAJCWlmICh4bHJlYy0+ZmxhZ3MgJiBYTEhfSU5TRVJUX0FMTF9G Uk9aRU5fU0VUKQogCQkJUGFnZVNldEFsbFZpc2libGUocGFnZSk7CisJCWVsc2UKKwkJCVBhZ2VT ZXRQcnVuYWJsZShwYWdlLCBYTG9nUmVjR2V0WGlkKHJlY29yZCkpOwogCiAJCU1hcmtCdWZmZXJE aXJ0eShidWZmZXIpOwogCX0KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3Rl ZC9pbmRleC1raWxsdHVwbGVzLm91dCBiL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9pbmRl eC1raWxsdHVwbGVzLm91dAppbmRleCBiZTdkZGQ3NTZlZi4uYjI5ZjI0MzRiMDAgMTAwNjQ0Ci0t LSBhL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9pbmRleC1raWxsdHVwbGVzLm91dAorKysg Yi9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvaW5kZXgta2lsbHR1cGxlcy5vdXQKQEAgLTU0 LDcgKzU0LDcgQEAgc3RlcCBmbHVzaDogU0VMRUNUIEZST00gcGdfc3RhdF9mb3JjZV9uZXh0X2Zs dXNoKCk7CiBzdGVwIHJlc3VsdDogU0VMRUNUIGhlYXBfYmxrc19yZWFkICsgaGVhcF9ibGtzX2hp dCAtIGNvdW50ZXIuaGVhcF9hY2Nlc3NlcyBBUyBuZXdfaGVhcF9hY2Nlc3NlcyBGUk9NIGNvdW50 ZXIsIHBnX3N0YXRpb19hbGxfdGFibGVzIFdIRVJFIHJlbG5hbWUgPSAna2lsbF9wcmlvcl90dXBs ZSc7CiBuZXdfaGVhcF9hY2Nlc3NlcwogLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgICAgICAgICAg ICAxCisgICAgICAgICAgICAgICAgMgogKDEgcm93KQogCiBzdGVwIG1lYXN1cmU6IFVQREFURSBj b3VudGVyIFNFVCBoZWFwX2FjY2Vzc2VzID0gKFNFTEVDVCBoZWFwX2Jsa3NfcmVhZCArIGhlYXBf Ymxrc19oaXQgRlJPTSBwZ19zdGF0aW9fYWxsX3RhYmxlcyBXSEVSRSByZWxuYW1lID0gJ2tpbGxf cHJpb3JfdHVwbGUnKTsKQEAgLTEzMCw3ICsxMzAsNyBAQCBzdGVwIGZsdXNoOiBTRUxFQ1QgRlJP TSBwZ19zdGF0X2ZvcmNlX25leHRfZmx1c2goKTsKIHN0ZXAgcmVzdWx0OiBTRUxFQ1QgaGVhcF9i bGtzX3JlYWQgKyBoZWFwX2Jsa3NfaGl0IC0gY291bnRlci5oZWFwX2FjY2Vzc2VzIEFTIG5ld19o ZWFwX2FjY2Vzc2VzIEZST00gY291bnRlciwgcGdfc3RhdGlvX2FsbF90YWJsZXMgV0hFUkUgcmVs bmFtZSA9ICdraWxsX3ByaW9yX3R1cGxlJzsKIG5ld19oZWFwX2FjY2Vzc2VzCiAtLS0tLS0tLS0t LS0tLS0tLQotICAgICAgICAgICAgICAgIDEKKyAgICAgICAgICAgICAgICAyCiAoMSByb3cpCiAK IHN0ZXAgbWVhc3VyZTogVVBEQVRFIGNvdW50ZXIgU0VUIGhlYXBfYWNjZXNzZXMgPSAoU0VMRUNU IGhlYXBfYmxrc19yZWFkICsgaGVhcF9ibGtzX2hpdCBGUk9NIHBnX3N0YXRpb19hbGxfdGFibGVz IFdIRVJFIHJlbG5hbWUgPSAna2lsbF9wcmlvcl90dXBsZScpOwpAQCAtMjgzLDcgKzI4Myw3IEBA IHN0ZXAgZmx1c2g6IFNFTEVDVCBGUk9NIHBnX3N0YXRfZm9yY2VfbmV4dF9mbHVzaCgpOwogc3Rl cCByZXN1bHQ6IFNFTEVDVCBoZWFwX2Jsa3NfcmVhZCArIGhlYXBfYmxrc19oaXQgLSBjb3VudGVy LmhlYXBfYWNjZXNzZXMgQVMgbmV3X2hlYXBfYWNjZXNzZXMgRlJPTSBjb3VudGVyLCBwZ19zdGF0 aW9fYWxsX3RhYmxlcyBXSEVSRSByZWxuYW1lID0gJ2tpbGxfcHJpb3JfdHVwbGUnOwogbmV3X2hl YXBfYWNjZXNzZXMKIC0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAgICAgICAgICAgMQorICAgICAg ICAgICAgICAgIDIKICgxIHJvdykKIAogc3RlcCBtZWFzdXJlOiBVUERBVEUgY291bnRlciBTRVQg aGVhcF9hY2Nlc3NlcyA9IChTRUxFQ1QgaGVhcF9ibGtzX3JlYWQgKyBoZWFwX2Jsa3NfaGl0IEZS T00gcGdfc3RhdGlvX2FsbF90YWJsZXMgV0hFUkUgcmVsbmFtZSA9ICdraWxsX3ByaW9yX3R1cGxl Jyk7Ci0tIAoyLjQzLjAKCg== --000000000000cf342e063f082d09 Content-Type: text/x-patch; charset="US-ASCII"; name="v14-0023-Allow-on-access-pruning-to-set-pages-all-visible.patch" Content-Disposition: attachment; filename="v14-0023-Allow-on-access-pruning-to-set-pages-all-visible.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfonltnt22 RnJvbSBmZWVkZjJhZjdjNmUwZjAyNWQ0YzBiMzVkN2Y3Y2I5ZGY3MWUxOGE5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUdWUsIDI5IEp1bCAyMDI1IDE0OjM0OjMwIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTQgMjMvMjRdIEFsbG93IG9uLWFjY2VzcyBwcnVuaW5nIHRvIHNldCBwYWdlcyBhbGwt dmlzaWJsZQoKTWFueSBxdWVyaWVzIGRvIG5vdCBtb2RpZnkgdGhlIHVuZGVybHlpbmcgcmVsYXRp b24uIEZvciBzdWNoIHF1ZXJpZXMsIGlmCm9uLWFjY2VzcyBwcnVuaW5nIG9jY3VycyBkdXJpbmcg dGhlIHNjYW4sIHdlIGNhbiBjaGVjayB3aGV0aGVyIHRoZSBwYWdlCmhhcyBiZWNvbWUgYWxsLXZp c2libGUgYW5kIHVwZGF0ZSB0aGUgdmlzaWJpbGl0eSBtYXAgYWNjb3JkaW5nbHkuClByZXZpb3Vz bHksIG9ubHkgdmFjdXVtIG1hcmtlZCBwYWdlcyBhcyBhbGwtdmlzaWJsZSBvciBhbGwtZnJvemVu LgoKU3VwcG9ydGluZyB0aGlzIHJlcXVpcmVzIHBhc3NpbmcgaW5mb3JtYXRpb24gYWJvdXQgd2hl dGhlciB0aGUgcmVsYXRpb24KaXMgbW9kaWZpZWQgZnJvbSB0aGUgZXhlY3V0b3IgZG93biB0byB0 aGUgc2NhbiBkZXNjcmlwdG9yLgoKVGhpcyBjb21taXQgaW1wbGVtZW50cyBvbi1hY2Nlc3MgVk0g c2V0dGluZyBmb3Igc2VxdWVudGlhbCBzY2FucyBhcyB3ZWxsCmFzIGZvciB0aGUgdW5kZXJseWlu ZyBoZWFwIHJlbGF0aW9uIGluIGluZGV4IHNjYW5zIGFuZCBiaXRtYXAgaGVhcApzY2Fucy4KLS0t CiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYyAgICAgICAgICAgICAgfCAxNSArKyst CiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1faGFuZGxlci5jICAgICAgfCAxNSArKyst CiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYyAgICAgICAgICAgfCA3MyArKysr KysrKysrKysrKystLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaW5kZXgvaW5kZXhhbS5jICAgICAg ICAgICAgfCA0NiArKysrKysrKysrKysKIHNyYy9iYWNrZW5kL2FjY2Vzcy90YWJsZS90YWJsZWFt LmMgICAgICAgICAgICB8IDM5ICsrKysrKysrKy0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNN YWluLmMgICAgICAgICAgICAgICB8ICA0ICsKIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNVdGls cy5jICAgICAgICAgICAgICB8ICAyICsKIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVCaXRtYXBI ZWFwc2Nhbi5jICAgICB8ICA3ICstCiBzcmMvYmFja2VuZC9leGVjdXRvci9ub2RlSW5kZXhzY2Fu LmMgICAgICAgICAgfCAxOCArKystLQogc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVNlcXNjYW4u YyAgICAgICAgICAgIHwgMjQgKysrKy0tCiBzcmMvaW5jbHVkZS9hY2Nlc3MvZ2VuYW0uaCAgICAg ICAgICAgICAgICAgICAgfCAxMSArKysKIHNyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaCAgICAg ICAgICAgICAgICAgICB8IDI0ICsrKysrLQogc3JjL2luY2x1ZGUvYWNjZXNzL3JlbHNjYW4uaCAg ICAgICAgICAgICAgICAgIHwgIDYgKysKIHNyYy9pbmNsdWRlL2FjY2Vzcy90YWJsZWFtLmggICAg ICAgICAgICAgICAgICB8IDMwICsrKysrKystCiBzcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMu aCAgICAgICAgICAgICAgICAgfCAgNiArKwogLi4uL3QvMDM1X3N0YW5kYnlfbG9naWNhbF9kZWNv ZGluZy5wbCAgICAgICAgIHwgIDMgKy0KIDE2IGZpbGVzIGNoYW5nZWQsIDI4NSBpbnNlcnRpb25z KCspLCAzOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVh cC9oZWFwYW0uYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCmluZGV4IGFiNTE0 Y2U2NWVjLi45NGQ2NzNkOTJjMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAv aGVhcGFtLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMKQEAgLTU1NSw2 ICs1NTUsNyBAQCBoZWFwX3ByZXBhcmVfcGFnZXNjYW4oVGFibGVTY2FuRGVzYyBzc2NhbikKIAlC dWZmZXIJCWJ1ZmZlciA9IHNjYW4tPnJzX2NidWY7CiAJQmxvY2tOdW1iZXIgYmxvY2sgPSBzY2Fu LT5yc19jYmxvY2s7CiAJU25hcHNob3QJc25hcHNob3Q7CisJQnVmZmVyCSAgICp2bWJ1ZmZlciA9 IE5VTEw7CiAJUGFnZQkJcGFnZTsKIAlpbnQJCQlsaW5lczsKIAlib29sCQlhbGxfdmlzaWJsZTsK QEAgLTU2OSw3ICs1NzAsOSBAQCBoZWFwX3ByZXBhcmVfcGFnZXNjYW4oVGFibGVTY2FuRGVzYyBz c2NhbikKIAkvKgogCSAqIFBydW5lIGFuZCByZXBhaXIgZnJhZ21lbnRhdGlvbiBmb3IgdGhlIHdo b2xlIHBhZ2UsIGlmIHBvc3NpYmxlLgogCSAqLwotCWhlYXBfcGFnZV9wcnVuZV9vcHQoc2Nhbi0+ cnNfYmFzZS5yc19yZCwgYnVmZmVyKTsKKwlpZiAoc3NjYW4tPnJzX2ZsYWdzICYgU09fQUxMT1df Vk1fU0VUKQorCQl2bWJ1ZmZlciA9ICZzY2FuLT5yc192bWJ1ZmZlcjsKKwloZWFwX3BhZ2VfcHJ1 bmVfb3B0KHNjYW4tPnJzX2Jhc2UucnNfcmQsIGJ1ZmZlciwgdm1idWZmZXIpOwogCiAJLyoKIAkg KiBXZSBtdXN0IGhvbGQgc2hhcmUgbG9jayBvbiB0aGUgYnVmZmVyIGNvbnRlbnQgd2hpbGUgZXhh bWluaW5nIHR1cGxlCkBAIC0xMjQ2LDYgKzEyNDksNyBAQCBoZWFwX2JlZ2luc2NhbihSZWxhdGlv biByZWxhdGlvbiwgU25hcHNob3Qgc25hcHNob3QsCiAJCQkJCQkJCQkJCQkJCSAgc2l6ZW9mKFRC TUl0ZXJhdGVSZXN1bHQpKTsKIAl9CiAKKwlzY2FuLT5yc192bWJ1ZmZlciA9IEludmFsaWRCdWZm ZXI7CiAKIAlyZXR1cm4gKFRhYmxlU2NhbkRlc2MpIHNjYW47CiB9CkBAIC0xMjg0LDYgKzEyODgs MTIgQEAgaGVhcF9yZXNjYW4oVGFibGVTY2FuRGVzYyBzc2NhbiwgU2NhbktleSBrZXksIGJvb2wg c2V0X3BhcmFtcywKIAkJc2Nhbi0+cnNfY2J1ZiA9IEludmFsaWRCdWZmZXI7CiAJfQogCisJaWYg KEJ1ZmZlcklzVmFsaWQoc2Nhbi0+cnNfdm1idWZmZXIpKQorCXsKKwkJUmVsZWFzZUJ1ZmZlcihz Y2FuLT5yc192bWJ1ZmZlcik7CisJCXNjYW4tPnJzX3ZtYnVmZmVyID0gSW52YWxpZEJ1ZmZlcjsK Kwl9CisKIAkvKgogCSAqIFNPX1RZUEVfQklUTUFQU0NBTiB3b3VsZCBiZSBjbGVhbmVkIHVwIGhl cmUsIGJ1dCBpdCBkb2VzIG5vdCBob2xkIGFueQogCSAqIGFkZGl0aW9uYWwgZGF0YSB2cyBhIG5v cm1hbCBIZWFwU2NhbgpAQCAtMTMxNiw2ICsxMzI2LDkgQEAgaGVhcF9lbmRzY2FuKFRhYmxlU2Nh bkRlc2Mgc3NjYW4pCiAJaWYgKEJ1ZmZlcklzVmFsaWQoc2Nhbi0+cnNfY2J1ZikpCiAJCVJlbGVh c2VCdWZmZXIoc2Nhbi0+cnNfY2J1Zik7CiAKKwlpZiAoQnVmZmVySXNWYWxpZChzY2FuLT5yc192 bWJ1ZmZlcikpCisJCVJlbGVhc2VCdWZmZXIoc2Nhbi0+cnNfdm1idWZmZXIpOworCiAJLyoKIAkg KiBNdXN0IGZyZWUgdGhlIHJlYWQgc3RyZWFtIGJlZm9yZSBmcmVlaW5nIHRoZSBCdWZmZXJBY2Nl c3NTdHJhdGVneS4KIAkgKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hl YXBhbV9oYW5kbGVyLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1faGFuZGxlci5j CmluZGV4IGJjYmFjODQ0YmI2Li5mMDViOWU0OTY4ZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv YWNjZXNzL2hlYXAvaGVhcGFtX2hhbmRsZXIuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVh cC9oZWFwYW1faGFuZGxlci5jCkBAIC04NSw2ICs4NSw3IEBAIGhlYXBhbV9pbmRleF9mZXRjaF9i ZWdpbihSZWxhdGlvbiByZWwpCiAKIAloc2Nhbi0+eHNfYmFzZS5yZWwgPSByZWw7CiAJaHNjYW4t PnhzX2NidWYgPSBJbnZhbGlkQnVmZmVyOworCWhzY2FuLT54c192bWJ1ZmZlciA9IEludmFsaWRC dWZmZXI7CiAKIAlyZXR1cm4gJmhzY2FuLT54c19iYXNlOwogfQpAQCAtOTksNiArMTAwLDEyIEBA IGhlYXBhbV9pbmRleF9mZXRjaF9yZXNldChJbmRleEZldGNoVGFibGVEYXRhICpzY2FuKQogCQlS ZWxlYXNlQnVmZmVyKGhzY2FuLT54c19jYnVmKTsKIAkJaHNjYW4tPnhzX2NidWYgPSBJbnZhbGlk QnVmZmVyOwogCX0KKworCWlmIChCdWZmZXJJc1ZhbGlkKGhzY2FuLT54c192bWJ1ZmZlcikpCisJ eworCQlSZWxlYXNlQnVmZmVyKGhzY2FuLT54c192bWJ1ZmZlcik7CisJCWhzY2FuLT54c192bWJ1 ZmZlciA9IEludmFsaWRCdWZmZXI7CisJfQogfQogCiBzdGF0aWMgdm9pZApAQCAtMTM4LDcgKzE0 NSw4IEBAIGhlYXBhbV9pbmRleF9mZXRjaF90dXBsZShzdHJ1Y3QgSW5kZXhGZXRjaFRhYmxlRGF0 YSAqc2NhbiwKIAkJICogUHJ1bmUgcGFnZSwgYnV0IG9ubHkgaWYgd2Ugd2VyZW4ndCBhbHJlYWR5 IG9uIHRoaXMgcGFnZQogCQkgKi8KIAkJaWYgKHByZXZfYnVmICE9IGhzY2FuLT54c19jYnVmKQot CQkJaGVhcF9wYWdlX3BydW5lX29wdChoc2Nhbi0+eHNfYmFzZS5yZWwsIGhzY2FuLT54c19jYnVm KTsKKwkJCWhlYXBfcGFnZV9wcnVuZV9vcHQoaHNjYW4tPnhzX2Jhc2UucmVsLCBoc2Nhbi0+eHNf Y2J1ZiwKKwkJCQkJCQkJc2Nhbi0+bW9kaWZpZXNfYmFzZV9yZWwgPyBOVUxMIDogJmhzY2FuLT54 c192bWJ1ZmZlcik7CiAJfQogCiAJLyogT2J0YWluIHNoYXJlLWxvY2sgb24gdGhlIGJ1ZmZlciBz byB3ZSBjYW4gZXhhbWluZSB2aXNpYmlsaXR5ICovCkBAIC0yNDcxLDYgKzI0NzksNyBAQCBCaXRt YXBIZWFwU2Nhbk5leHRCbG9jayhUYWJsZVNjYW5EZXNjIHNjYW4sCiAJVEJNSXRlcmF0ZVJlc3Vs dCAqdGJtcmVzOwogCU9mZnNldE51bWJlciBvZmZzZXRzW1RCTV9NQVhfVFVQTEVTX1BFUl9QQUdF XTsKIAlpbnQJCQlub2Zmc2V0cyA9IC0xOworCUJ1ZmZlcgkgICAqdm1idWZmZXIgPSBOVUxMOwog CiAJQXNzZXJ0KHNjYW4tPnJzX2ZsYWdzICYgU09fVFlQRV9CSVRNQVBTQ0FOKTsKIAlBc3NlcnQo aHNjYW4tPnJzX3JlYWRfc3RyZWFtKTsKQEAgLTI1MTcsNyArMjUyNiw5IEBAIEJpdG1hcEhlYXBT Y2FuTmV4dEJsb2NrKFRhYmxlU2NhbkRlc2Mgc2NhbiwKIAkvKgogCSAqIFBydW5lIGFuZCByZXBh aXIgZnJhZ21lbnRhdGlvbiBmb3IgdGhlIHdob2xlIHBhZ2UsIGlmIHBvc3NpYmxlLgogCSAqLwot CWhlYXBfcGFnZV9wcnVuZV9vcHQoc2Nhbi0+cnNfcmQsIGJ1ZmZlcik7CisJaWYgKHNjYW4tPnJz X2ZsYWdzICYgU09fQUxMT1dfVk1fU0VUKQorCQl2bWJ1ZmZlciA9ICZoc2Nhbi0+cnNfdm1idWZm ZXI7CisJaGVhcF9wYWdlX3BydW5lX29wdChzY2FuLT5yc19yZCwgYnVmZmVyLCB2bWJ1ZmZlcik7 CiAKIAkvKgogCSAqIFdlIG11c3QgaG9sZCBzaGFyZSBsb2NrIG9uIHRoZSBidWZmZXIgY29udGVu dCB3aGlsZSBleGFtaW5pbmcgdHVwbGUKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9o ZWFwL3BydW5laGVhcC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKaW5k ZXggYzI5ZjQ3YWIxNTEuLjNlYWVlMzk4NzM1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nl c3MvaGVhcC9wcnVuZWhlYXAuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhl YXAuYwpAQCAtNDUsNiArNDUsOCBAQCB0eXBlZGVmIHN0cnVjdAogCWJvb2wJCW1hcmtfdW51c2Vk X25vdzsKIAkvKiB3aGV0aGVyIHRvIGF0dGVtcHQgZnJlZXppbmcgdHVwbGVzICovCiAJYm9vbAkJ YXR0ZW1wdF9mcmVlemU7CisJLyogd2hldGhlciBvciBub3QgdG8gYXR0ZW1wdCB1cGRhdGluZyB0 aGUgVk0gKi8KKwlib29sCQlhdHRlbXB0X3VwZGF0ZV92bTsKIAljb25zdCBzdHJ1Y3QgVmFjdXVt Q3V0b2ZmcyAqY3V0b2ZmczsKIAogCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTg1LDkgKzE4NywxMyBAQCBzdGF0aWMgdm9pZCBw YWdlX3ZlcmlmeV9yZWRpcmVjdHMoUGFnZSBwYWdlKTsKICAqIGlmIHRoZXJlJ3Mgbm90IGFueSB1 c2UgaW4gcHJ1bmluZy4KICAqCiAgKiBDYWxsZXIgbXVzdCBoYXZlIHBpbiBvbiB0aGUgYnVmZmVy LCBhbmQgbXVzdCAqbm90KiBoYXZlIGEgbG9jayBvbiBpdC4KKyAqCisgKiBJZiB2bWJ1ZmZlciBp cyBub3QgTlVMTCwgaXQgaXMgb2theSBmb3IgcHJ1bmluZyB0byBzZXQgdGhlIHZpc2liaWxpdHkg bWFwIGlmCisgKiB0aGUgcGFnZSBpcyBhbGwgdmlzaWJsZS4gV2Ugd2lsbCB0YWtlIGNhcmUgb2Yg cGlubmluZyBhbmQsIGlmIG5lZWRlZCwKKyAqIHJlYWRpbmcgaW4gdGhlIHBhZ2Ugb2YgdGhlIHZp c2liaWxpdHkgbWFwLgogICovCiB2b2lkCi1oZWFwX3BhZ2VfcHJ1bmVfb3B0KFJlbGF0aW9uIHJl bGF0aW9uLCBCdWZmZXIgYnVmZmVyKQoraGVhcF9wYWdlX3BydW5lX29wdChSZWxhdGlvbiByZWxh dGlvbiwgQnVmZmVyIGJ1ZmZlciwgQnVmZmVyICp2bWJ1ZmZlcikKIHsKIAlQYWdlCQlwYWdlID0g QnVmZmVyR2V0UGFnZShidWZmZXIpOwogCVRyYW5zYWN0aW9uSWQgcHJ1bmVfeGlkOwpAQCAtMjUx LDYgKzI1NywxMyBAQCBoZWFwX3BhZ2VfcHJ1bmVfb3B0KFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZm ZXIgYnVmZmVyKQogCQl7CiAJCQlPZmZzZXROdW1iZXIgZHVtbXlfb2ZmX2xvYzsKIAkJCVBydW5l RnJlZXplUmVzdWx0IHByZXN1bHQ7CisJCQlpbnQJCQlvcHRpb25zID0gMDsKKworCQkJaWYgKHZt YnVmZmVyKQorCQkJeworCQkJCXZpc2liaWxpdHltYXBfcGluKHJlbGF0aW9uLCBCdWZmZXJHZXRC bG9ja051bWJlcihidWZmZXIpLCB2bWJ1ZmZlcik7CisJCQkJb3B0aW9ucyA9IEhFQVBfUEFHRV9Q UlVORV9VUERBVEVfVklTOworCQkJfQogCiAJCQkvKgogCQkJICogRm9yIG5vdywgcGFzcyBtYXJr X3VudXNlZF9ub3cgYXMgZmFsc2UgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIG9yCkBAIC0yNTgsOCAr MjcxLDkgQEAgaGVhcF9wYWdlX3BydW5lX29wdChSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1 ZmZlcikKIAkJCSAqIHRoYXQgZHVyaW5nIG9uLWFjY2VzcyBwcnVuaW5nIHdpdGggdGhlIGN1cnJl bnQgaW1wbGVtZW50YXRpb24uCiAJCQkgKi8KIAkJCWhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXpl KHJlbGF0aW9uLCBidWZmZXIsCi0JCQkJCQkJCQkgICBJbnZhbGlkQnVmZmVyLCBmYWxzZSwKLQkJ CQkJCQkJCSAgIFBSVU5FX09OX0FDQ0VTUywgMCwgTlVMTCwKKwkJCQkJCQkJCSAgIHZtYnVmZmVy ID8gKnZtYnVmZmVyIDogSW52YWxpZEJ1ZmZlciwKKwkJCQkJCQkJCSAgIGZhbHNlLAkvKiBibGtf a25vd25fYXYgKi8KKwkJCQkJCQkJCSAgIFBSVU5FX09OX0FDQ0VTUywgb3B0aW9ucywgTlVMTCwK IAkJCQkJCQkJCSAgIHZpc3Rlc3QsICZwcmVzdWx0LCAmZHVtbXlfb2ZmX2xvYywgTlVMTCwgTlVM TCk7CiAKIAkJCS8qCkBAIC00NDMsNiArNDU3LDggQEAgaGVhcF9wYWdlX3dpbGxfc2V0X3ZpcyhS ZWxhdGlvbiByZWxhdGlvbiwKIAkJCQkJICAgQnVmZmVyIGhlYXBfYnVmLAogCQkJCQkgICBCdWZm ZXIgdm1idWZmZXIsCiAJCQkJCSAgIGJvb2wgYmxrX2tub3duX2F2LAorCQkJCQkgICBQcnVuZVJl YXNvbiByZWFzb24sCisJCQkJCSAgIGJvb2wgZG9fcHJ1bmUsIGJvb2wgZG9fZnJlZXplLAogCQkJ CQkgICBQcnVuZVN0YXRlICpwcnN0YXRlLAogCQkJCQkgICB1aW50OCAqdm1mbGFncywKIAkJCQkJ ICAgYm9vbCAqZG9fc2V0X3BkX3ZpcykKQEAgLTQ1MCw2ICs0NjYsMzIgQEAgaGVhcF9wYWdlX3dp bGxfc2V0X3ZpcyhSZWxhdGlvbiByZWxhdGlvbiwKIAlQYWdlCQloZWFwX3BhZ2UgPSBCdWZmZXJH ZXRQYWdlKGhlYXBfYnVmKTsKIAlib29sCQlkb19zZXRfdm0gPSBmYWxzZTsKIAorCSpkb19zZXRf cGRfdmlzID0gZmFsc2U7CisKKwlpZiAoIXByc3RhdGUtPmF0dGVtcHRfdXBkYXRlX3ZtKQorCXsK KwkJQXNzZXJ0KCFwcnN0YXRlLT5hbGxfdmlzaWJsZSAmJiAhcHJzdGF0ZS0+YWxsX2Zyb3plbik7 CisJCUFzc2VydCgqdm1mbGFncyA9PSAwKTsKKwkJcmV0dXJuIGZhbHNlOworCX0KKworCS8qCisJ ICogSWYgdGhpcyBpcyBhbiBvbi1hY2Nlc3MgY2FsbCBhbmQgd2UncmUgbm90IGFjdHVhbGx5IHBy dW5pbmcsIGF2b2lkCisJICogc2V0dGluZyB0aGUgdmlzaWJpbGl0eSBtYXAgaWYgaXQgd291bGQg bmV3bHkgZGlydHkgdGhlIGhlYXAgcGFnZSBvciwgaWYKKwkgKiB0aGUgcGFnZSBpcyBhbHJlYWR5 IGRpcnR5LCBpZiBkb2luZyBzbyB3b3VsZCByZXF1aXJlIGluY2x1ZGluZyBhCisJICogZnVsbC1w YWdlIGltYWdlIChGUEkpIG9mIHRoZSBoZWFwIHBhZ2UgaW4gdGhlIFdBTC4gVGhpcyBzaXR1YXRp b24KKwkgKiBzaG91bGQgYmUgcmFyZSwgYXMgb24tYWNjZXNzIHBydW5pbmcgaXMgb25seSBhdHRl bXB0ZWQgd2hlbgorCSAqIHBkX3BydW5lX3hpZCBpcyB2YWxpZC4KKwkgKi8KKwlpZiAocmVhc29u ID09IFBSVU5FX09OX0FDQ0VTUyAmJgorCQlwcnN0YXRlLT5hbGxfdmlzaWJsZSAmJgorCQkhZG9f cHJ1bmUgJiYgIWRvX2ZyZWV6ZSAmJgorCQkoIUJ1ZmZlcklzRGlydHkoaGVhcF9idWYpIHx8IFhM b2dDaGVja0J1ZmZlck5lZWRzQmFja3VwKGhlYXBfYnVmKSkpCisJeworCQlwcnN0YXRlLT5hbGxf dmlzaWJsZSA9IHByc3RhdGUtPmFsbF9mcm96ZW4gPSBmYWxzZTsKKwkJcmV0dXJuIGZhbHNlOwor CX0KKwogCWlmIChwcnN0YXRlLT5hbGxfdmlzaWJsZSAmJiAhUGFnZUlzQWxsVmlzaWJsZShoZWFw X3BhZ2UpKQogCQkqZG9fc2V0X3BkX3ZpcyA9IHRydWU7CiAKQEAgLTQ3Myw2ICs1MTUsOSBAQCBo ZWFwX3BhZ2Vfd2lsbF9zZXRfdmlzKFJlbGF0aW9uIHJlbGF0aW9uLAogCSAqIHBhZ2UtbGV2ZWwg Yml0IGlzIGNsZWFyLiAgSG93ZXZlciwgaXQncyBwb3NzaWJsZSB0aGF0IGluIHZhY3V1bSB0aGUg Yml0CiAJICogZ290IGNsZWFyZWQgYWZ0ZXIgaGVhcF92YWNfc2Nhbl9uZXh0X2Jsb2NrKCkgd2Fz IGNhbGxlZCwgc28gd2UgbXVzdAogCSAqIHJlY2hlY2sgd2l0aCBidWZmZXIgbG9jayBiZWZvcmUg Y29uY2x1ZGluZyB0aGF0IHRoZSBWTSBpcyBjb3JydXB0LgorCSAqCisJICogWFhYOiBUaGlzIHdp bGwgbmV2ZXIgdHJpZ2dlciBmb3Igb24tYWNjZXNzIHBydW5pbmcgYmVjYXVzZSBpdCBwYXNzZXMK KwkgKiBibGtfa25vd25fYXYgYXMgZmFsc2UuIFNob3VsZCB3ZSByZW1vdmUgdGhhdCBjb25kaXRp b24gaGVyZT8KIAkgKi8KIAllbHNlIGlmIChibGtfa25vd25fYXYgJiYgIVBhZ2VJc0FsbFZpc2li bGUoaGVhcF9wYWdlKSAmJgogCQkJIHZpc2liaWxpdHltYXBfZ2V0X3N0YXR1cyhyZWxhdGlvbiwg aGVhcF9ibGssICZ2bWJ1ZmZlcikgIT0gMCkKQEAgLTYxNSw2ICs2NjAsNyBAQCBoZWFwX3BhZ2Vf cHJ1bmVfYW5kX2ZyZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKIAlwcnN0 YXRlLnZpc3Rlc3QgPSB2aXN0ZXN0OwogCXByc3RhdGUubWFya191bnVzZWRfbm93ID0gKG9wdGlv bnMgJiBIRUFQX1BBR0VfUFJVTkVfTUFSS19VTlVTRURfTk9XKSAhPSAwOwogCXByc3RhdGUuYXR0 ZW1wdF9mcmVlemUgPSAob3B0aW9ucyAmIEhFQVBfUEFHRV9QUlVORV9GUkVFWkUpICE9IDA7CisJ cHJzdGF0ZS5hdHRlbXB0X3VwZGF0ZV92bSA9IChvcHRpb25zICYgSEVBUF9QQUdFX1BSVU5FX1VQ REFURV9WSVMpICE9IDA7CiAJcHJzdGF0ZS5jdXRvZmZzID0gY3V0b2ZmczsKIAogCS8qCkBAIC02 OTIsNyArNzM4LDcgQEAgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoUmVsYXRpb24gcmVsYXRp b24sIEJ1ZmZlciBidWZmZXIsCiAJCXByc3RhdGUuYWxsX3Zpc2libGUgPSB0cnVlOwogCQlwcnN0 YXRlLmFsbF9mcm96ZW4gPSB0cnVlOwogCX0KLQllbHNlIGlmICgob3B0aW9ucyAmIEhFQVBfUEFH RV9QUlVORV9VUERBVEVfVklTKSAhPSAwKQorCWVsc2UgaWYgKHByc3RhdGUuYXR0ZW1wdF91cGRh dGVfdm0pCiAJewogCQlwcnN0YXRlLmFsbF92aXNpYmxlID0gdHJ1ZTsKIAkJcHJzdGF0ZS5hbGxf ZnJvemVuID0gZmFsc2U7CkBAIC05NTEsNyArOTk3LDcgQEAgaGVhcF9wYWdlX3BydW5lX2FuZF9m cmVlemUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJaWYgKHByc3RhdGUubHBk ZWFkX2l0ZW1zID4gMCkKIAkJcHJzdGF0ZS5hbGxfdmlzaWJsZSA9IHByc3RhdGUuYWxsX2Zyb3pl biA9IGZhbHNlOwogCi0JQXNzZXJ0KCFwcnN0YXRlLmFsbF9mcm96ZW4gfHwgcHJzdGF0ZS5hbGxf dmlzaWJsZSk7CisKIAogCS8qCiAJICogRGV0ZXJtaW5lIHdoZXRoZXIgb3Igbm90IHRvIHNldCB0 aGUgcGFnZSBsZXZlbCBQRF9BTExfVklTSUJMRSBhbmQgdGhlCkBAIC05NjgsMTIgKzEwMTQsMTIg QEAgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBi dWZmZXIsCiAJICogQXMgc3VjaCwgaXQgaXMgcG9zc2libGUgdG8gb25seSB1cGRhdGUgdGhlIFZN IHdoZW4gUERfQUxMX1ZJU0lCTEUgaXMKIAkgKiBhbHJlYWR5IHNldC4KIAkgKi8KLQlkb19zZXRf cGRfdmlzID0gZmFsc2U7Ci0JZG9fc2V0X3ZtID0gZmFsc2U7Ci0JaWYgKChvcHRpb25zICYgSEVB UF9QQUdFX1BSVU5FX1VQREFURV9WSVMpICE9IDApCi0JCWRvX3NldF92bSA9IGhlYXBfcGFnZV93 aWxsX3NldF92aXMocmVsYXRpb24sCi0JCQkJCQkJCQkJICAgYmxvY2tubywgYnVmZmVyLCB2bWJ1 ZmZlciwgYmxrX2tub3duX2F2LAotCQkJCQkJCQkJCSAgICZwcnN0YXRlLCAmbmV3X3ZtYml0cywg JmRvX3NldF9wZF92aXMpOworCWRvX3NldF92bSA9IGhlYXBfcGFnZV93aWxsX3NldF92aXMocmVs YXRpb24sCisJCQkJCQkJCQkgICBibG9ja25vLCBidWZmZXIsIHZtYnVmZmVyLCBibGtfa25vd25f YXYsCisJCQkJCQkJCQkgICByZWFzb24sIGRvX3BydW5lLCBkb19mcmVlemUsCisJCQkJCQkJCQkg ICAmcHJzdGF0ZSwgJm5ld192bWJpdHMsICZkb19zZXRfcGRfdmlzKTsKKworCUFzc2VydCghcHJz dGF0ZS5hbGxfZnJvemVuIHx8IHByc3RhdGUuYWxsX3Zpc2libGUpOwogCiAJLyogTG9jayB2bWJ1 ZmZlciBiZWZvcmUgZW50ZXJpbmcgYSBjcml0aWNhbCBzZWN0aW9uICovCiAJaWYgKGRvX3NldF92 bSkKQEAgLTExMzMsNyArMTE3OSw2IEBAIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKFJlbGF0 aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogCQlib29sCQlkZWJ1Z19hbGxfZnJvemVuOwog CiAJCUFzc2VydChwcnN0YXRlLmxwZGVhZF9pdGVtcyA9PSAwKTsKLQkJQXNzZXJ0KHByc3RhdGUu Y3V0b2Zmcyk7CiAKIAkJaWYgKCFoZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGUocmVsYXRpb24sIGJ1 ZmZlciwKIAkJCQkJCQkJCSAgcHJzdGF0ZS52aXN0ZXN0LApAQCAtMjI5OCw4ICsyMzQzLDggQEAg aGVhcF9sb2dfZnJlZXplX3BsYW4oSGVhcFR1cGxlRnJlZXplICp0dXBsZXMsIGludCBudHVwbGVz LAogICogLSBSZWFwaW5nOiBEdXJpbmcgdmFjdXVtIHBoYXNlIElJSSwgaXRlbXMgdGhhdCBhcmUg YWxyZWFkeSBMUF9ERUFEIGFyZQogICogICBtYXJrZWQgYXMgdW51c2VkLgogICoKLSAqIC0gVk0g dXBkYXRlczogQWZ0ZXIgdmFjdXVtIHBoYXNlcyBJIGFuZCBJSUksIHRoZSBoZWFwIHBhZ2UgbWF5 IGJlIG1hcmtlZAotICogICBhbGwtdmlzaWJsZSBhbmQgYWxsLWZyb3plbi4KKyAqIC0gVk0gdXBk YXRlczogQWZ0ZXIgdmFjdXVtIHBoYXNlcyBJIGFuZCBJSUkgYW5kIG9uLWFjY2VzcywgdGhlIGhl YXAgcGFnZQorICogICBtYXkgYmUgbWFya2VkIGFsbC12aXNpYmxlIGFuZCBhbGwtZnJvemVuLgog ICoKICAqIFRoZXNlIGNoYW5nZXMgYWxsIGhhcHBlbiB0b2dldGhlciwgc28gd2UgdXNlIGEgc2lu Z2xlIFdBTCByZWNvcmQgZm9yIHRoZW0KICAqIGFsbC4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2FjY2Vzcy9pbmRleC9pbmRleGFtLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaW5kZXgvaW5kZXhh bS5jCmluZGV4IDg2ZDExZjRlYzc5Li40NjAzZWNlMDliZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvYWNjZXNzL2luZGV4L2luZGV4YW0uYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaW5kZXgv aW5kZXhhbS5jCkBAIC0yODksNiArMjg5LDMyIEBAIGluZGV4X2JlZ2luc2NhbihSZWxhdGlvbiBo ZWFwUmVsYXRpb24sCiAJcmV0dXJuIHNjYW47CiB9CiAKKy8qCisgKiBTaW1pbGFyIHRvIGluZGV4 X2JlZ2luc2NhbigpLCBidXQgYWxsb3dzIHRoZSBjYWxsZXIgdG8gaW5kaWNhdGUgd2hldGhlciB0 aGUKKyAqIHF1ZXJ5IG1vZGlmaWVzIHRoZSB1bmRlcmx5aW5nIGJhc2UgcmVsYXRpb24uIFRoaXMg aXMgdXNlZCB3aGVuIHRoZSBjYWxsZXIKKyAqIHdhbnRzIHRvIGF0dGVtcHQgbWFya2luZyBwYWdl cyBpbiB0aGUgYmFzZSByZWxhdGlvbiBhcyBhbGwtdmlzaWJsZSBpbiB0aGUKKyAqIHZpc2liaWxp dHkgbWFwIGR1cmluZyBvbi1hY2Nlc3MgcHJ1bmluZy4KKyAqLworSW5kZXhTY2FuRGVzYworaW5k ZXhfYmVnaW5zY2FuX3Ztc2V0KFJlbGF0aW9uIGhlYXBSZWxhdGlvbiwKKwkJCQkJICBSZWxhdGlv biBpbmRleFJlbGF0aW9uLAorCQkJCQkgIFNuYXBzaG90IHNuYXBzaG90LAorCQkJCQkgIEluZGV4 U2Nhbkluc3RydW1lbnRhdGlvbiAqaW5zdHJ1bWVudCwKKwkJCQkJICBpbnQgbmtleXMsIGludCBu b3JkZXJieXMsIGJvb2wgbW9kaWZpZXNfYmFzZV9yZWwpCit7CisJSW5kZXhTY2FuRGVzYyBzY2Fu OworCisJc2NhbiA9IGluZGV4X2JlZ2luc2NhbihoZWFwUmVsYXRpb24sCisJCQkJCQkgICBpbmRl eFJlbGF0aW9uLAorCQkJCQkJICAgc25hcHNob3QsCisJCQkJCQkgICBpbnN0cnVtZW50LAorCQkJ CQkJICAgbmtleXMsIG5vcmRlcmJ5cyk7CisKKwlzY2FuLT54c19oZWFwZmV0Y2gtPm1vZGlmaWVz X2Jhc2VfcmVsID0gbW9kaWZpZXNfYmFzZV9yZWw7CisKKwlyZXR1cm4gc2NhbjsKK30KKwogLyoK ICAqIGluZGV4X2JlZ2luc2Nhbl9iaXRtYXAgLSBzdGFydCBhIHNjYW4gb2YgYW4gaW5kZXggd2l0 aCBhbWdldGJpdG1hcAogICoKQEAgLTYyMCw2ICs2NDYsMjYgQEAgaW5kZXhfYmVnaW5zY2FuX3Bh cmFsbGVsKFJlbGF0aW9uIGhlYXByZWwsIFJlbGF0aW9uIGluZGV4cmVsLAogCXJldHVybiBzY2Fu OwogfQogCisvKgorICogUGFyYWxsZWwgdmVyc2lvbiBvZiBpbmRleF9iZWdpbnNjYW5fdm1zZXQo KQorICovCitJbmRleFNjYW5EZXNjCitpbmRleF9iZWdpbnNjYW5fcGFyYWxsZWxfdm1zZXQoUmVs YXRpb24gaGVhcHJlbCwgUmVsYXRpb24gaW5kZXhyZWwsCisJCQkJCQkJICAgSW5kZXhTY2FuSW5z dHJ1bWVudGF0aW9uICppbnN0cnVtZW50LAorCQkJCQkJCSAgIGludCBua2V5cywgaW50IG5vcmRl cmJ5cywKKwkJCQkJCQkgICBQYXJhbGxlbEluZGV4U2NhbkRlc2MgcHNjYW4sCisJCQkJCQkJICAg Ym9vbCBtb2RpZmllc19iYXNlX3JlbCkKK3sKKwlJbmRleFNjYW5EZXNjIHNjYW47CisKKwlzY2Fu ID0gaW5kZXhfYmVnaW5zY2FuX3BhcmFsbGVsKGhlYXByZWwsIGluZGV4cmVsLAorCQkJCQkJCQkJ aW5zdHJ1bWVudCwKKwkJCQkJCQkJCW5rZXlzLCBub3JkZXJieXMsCisJCQkJCQkJCQlwc2Nhbik7 CisJc2Nhbi0+eHNfaGVhcGZldGNoLT5tb2RpZmllc19iYXNlX3JlbCA9IG1vZGlmaWVzX2Jhc2Vf cmVsOworCXJldHVybiBzY2FuOworfQorCiAvKiAtLS0tLS0tLS0tLS0tLS0tCiAgKiBpbmRleF9n ZXRuZXh0X3RpZCAtIGdldCB0aGUgbmV4dCBUSUQgZnJvbSBhIHNjYW4KICAqCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9hY2Nlc3MvdGFibGUvdGFibGVhbS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNz L3RhYmxlL3RhYmxlYW0uYwppbmRleCBhNTZjNWVjZWIxNC4uNjdkYmY5OWY1YjUgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90YWJsZS90YWJsZWFtLmMKKysrIGIvc3JjL2JhY2tlbmQv YWNjZXNzL3RhYmxlL3RhYmxlYW0uYwpAQCAtNDksNiArNDksMTAgQEAKIGNoYXIJICAgKmRlZmF1 bHRfdGFibGVfYWNjZXNzX21ldGhvZCA9IERFRkFVTFRfVEFCTEVfQUNDRVNTX01FVEhPRDsKIGJv b2wJCXN5bmNocm9uaXplX3NlcXNjYW5zID0gdHJ1ZTsKIAorLyogSGVscGVyIGZvciB0YWJsZV9i ZWdpbnNjYW5fcGFyYWxsZWwoKSBhbmQgdGFibGVfYmVnaW5zY2FuX3BhcmFsbGVsX3Ztc2V0KCkg Ki8KK3N0YXRpYyBUYWJsZVNjYW5EZXNjIHRhYmxlX2JlZ2luc2Nhbl9wYXJhbGxlbF9jb21tb24o UmVsYXRpb24gcmVsYXRpb24sIFBhcmFsbGVsVGFibGVTY2FuRGVzYyBwc2NhbiwKKwkJCQkJCQkJ CQkJCQkgdWludDMyIGZsYWdzKTsKKwogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTbG90 IGZ1bmN0aW9ucy4KQEAgLTE2MiwxMiArMTY2LDE0IEBAIHRhYmxlX3BhcmFsbGVsc2Nhbl9pbml0 aWFsaXplKFJlbGF0aW9uIHJlbCwgUGFyYWxsZWxUYWJsZVNjYW5EZXNjIHBzY2FuLAogCX0KIH0K IAotVGFibGVTY2FuRGVzYwotdGFibGVfYmVnaW5zY2FuX3BhcmFsbGVsKFJlbGF0aW9uIHJlbGF0 aW9uLCBQYXJhbGxlbFRhYmxlU2NhbkRlc2MgcHNjYW4pCisvKgorICogQ29tbW9uIGhlbHBlciBm b3IgdGFibGVfYmVnaW5zY2FuX3BhcmFsbGVsKCkgYW5kIHRhYmxlX2JlZ2luc2Nhbl9wYXJhbGxl bF92bXNldCgpCisgKi8KK3N0YXRpYyBUYWJsZVNjYW5EZXNjCit0YWJsZV9iZWdpbnNjYW5fcGFy YWxsZWxfY29tbW9uKFJlbGF0aW9uIHJlbGF0aW9uLCBQYXJhbGxlbFRhYmxlU2NhbkRlc2MgcHNj YW4sCisJCQkJCQkJCXVpbnQzMiBmbGFncykKIHsKIAlTbmFwc2hvdAlzbmFwc2hvdDsKLQl1aW50 MzIJCWZsYWdzID0gU09fVFlQRV9TRVFTQ0FOIHwKLQkJU09fQUxMT1dfU1RSQVQgfCBTT19BTExP V19TWU5DIHwgU09fQUxMT1dfUEFHRU1PREU7CiAKIAlBc3NlcnQoUmVsRmlsZUxvY2F0b3JFcXVh bHMocmVsYXRpb24tPnJkX2xvY2F0b3IsIHBzY2FuLT5waHNfbG9jYXRvcikpOwogCkBAIC0xODgs NiArMTk0LDMxIEBAIHRhYmxlX2JlZ2luc2Nhbl9wYXJhbGxlbChSZWxhdGlvbiByZWxhdGlvbiwg UGFyYWxsZWxUYWJsZVNjYW5EZXNjIHBzY2FuKQogCQkJCQkJCQkJCQlwc2NhbiwgZmxhZ3MpOwog fQogCitUYWJsZVNjYW5EZXNjCit0YWJsZV9iZWdpbnNjYW5fcGFyYWxsZWwoUmVsYXRpb24gcmVs YXRpb24sIFBhcmFsbGVsVGFibGVTY2FuRGVzYyBwc2NhbikKK3sKKwl1aW50MzIJCWZsYWdzID0g U09fVFlQRV9TRVFTQ0FOIHwKKwkJU09fQUxMT1dfU1RSQVQgfCBTT19BTExPV19TWU5DIHwgU09f QUxMT1dfUEFHRU1PREU7CisKKwlyZXR1cm4gdGFibGVfYmVnaW5zY2FuX3BhcmFsbGVsX2NvbW1v bihyZWxhdGlvbiwgcHNjYW4sIGZsYWdzKTsKK30KKworLyoKKyAqIFBhcmFsbGVsIHZlcnNpb24g b2YgdGFibGVfYmVnaW5zY2FuX3Ztc2V0KCkKKyAqLworVGFibGVTY2FuRGVzYwordGFibGVfYmVn aW5zY2FuX3BhcmFsbGVsX3Ztc2V0KFJlbGF0aW9uIHJlbGF0aW9uLCBQYXJhbGxlbFRhYmxlU2Nh bkRlc2MgcHNjYW4sCisJCQkJCQkJICAgYm9vbCBtb2RpZmllc19yZWwpCit7CisJdWludDMyCQlm bGFncyA9IFNPX1RZUEVfU0VRU0NBTiB8CisJCVNPX0FMTE9XX1NUUkFUIHwgU09fQUxMT1dfU1lO QyB8IFNPX0FMTE9XX1BBR0VNT0RFOworCisJaWYgKCFtb2RpZmllc19yZWwpCisJCWZsYWdzIHw9 IFNPX0FMTE9XX1ZNX1NFVDsKKworCXJldHVybiB0YWJsZV9iZWdpbnNjYW5fcGFyYWxsZWxfY29t bW9uKHJlbGF0aW9uLCBwc2NhbiwgZmxhZ3MpOworfQorCiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KICAqIEluZGV4IHNjYW4gcmVsYXRlZCBmdW5jdGlvbnMuCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9leGVjdXRvci9leGVjTWFpbi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4u YwppbmRleCBmZjEyZTJlMTM2NC4uMmUwNDc0Yzk0OGEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2V4ZWN1dG9yL2V4ZWNNYWluLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4u YwpAQCAtOTE2LDYgKzkxNiwxMCBAQCBJbml0UGxhbihRdWVyeURlc2MgKnF1ZXJ5RGVzYywgaW50 IGVmbGFncykKIAkJCQkJYnJlYWs7CiAJCQl9CiAKKwkJCS8qIElmIGl0IGhhcyBhIHJvd21hcmss IHRoZSByZWxhdGlvbiBpcyBtb2RpZmllZCAqLworCQkJZXN0YXRlLT5lc19tb2RpZmllZF9yZWxp ZHMgPSBibXNfYWRkX21lbWJlcihlc3RhdGUtPmVzX21vZGlmaWVkX3JlbGlkcywKKwkJCQkJCQkJ CQkJCQkJcmMtPnJ0aSk7CisKIAkJCS8qIENoZWNrIHRoYXQgcmVsYXRpb24gaXMgYSBsZWdhbCB0 YXJnZXQgZm9yIG1hcmtpbmcgKi8KIAkJCWlmIChyZWxhdGlvbikKIAkJCQlDaGVja1ZhbGlkUm93 TWFya1JlbChyZWxhdGlvbiwgcmMtPm1hcmtUeXBlKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2V4ZWN1dG9yL2V4ZWNVdGlscy5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1V0aWxzLmMK aW5kZXggZmRjNjVjMmI0MmIuLjI4YTA2ZGNkMjQ0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9l eGVjdXRvci9leGVjVXRpbHMuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjVXRpbHMu YwpAQCAtODkzLDYgKzg5Myw4IEBAIEV4ZWNJbml0UmVzdWx0UmVsYXRpb24oRVN0YXRlICplc3Rh dGUsIFJlc3VsdFJlbEluZm8gKnJlc3VsdFJlbEluZm8sCiAJCWVzdGF0ZS0+ZXNfcmVzdWx0X3Jl bGF0aW9ucyA9IChSZXN1bHRSZWxJbmZvICoqKQogCQkJcGFsbG9jMChlc3RhdGUtPmVzX3Jhbmdl X3RhYmxlX3NpemUgKiBzaXplb2YoUmVzdWx0UmVsSW5mbyAqKSk7CiAJZXN0YXRlLT5lc19yZXN1 bHRfcmVsYXRpb25zW3J0aSAtIDFdID0gcmVzdWx0UmVsSW5mbzsKKwllc3RhdGUtPmVzX21vZGlm aWVkX3JlbGlkcyA9IGJtc19hZGRfbWVtYmVyKGVzdGF0ZS0+ZXNfbW9kaWZpZWRfcmVsaWRzLAor CQkJCQkJCQkJCQkJcnRpKTsKIAogCS8qCiAJICogU2F2aW5nIGluIHRoZSBsaXN0IGFsbG93cyB0 byBhdm9pZCBuZWVkbGVzc2x5IHRyYXZlcnNpbmcgdGhlIHdob2xlCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9leGVjdXRvci9ub2RlQml0bWFwSGVhcHNjYW4uYyBiL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL25vZGVCaXRtYXBIZWFwc2Nhbi5jCmluZGV4IGJmMjRmM2Q3ZmUwLi5hZjZkYjlmNzkxOSAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUJpdG1hcEhlYXBzY2FuLmMKKysr IGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUJpdG1hcEhlYXBzY2FuLmMKQEAgLTEwNSwxMSAr MTA1LDE2IEBAIEJpdG1hcFRhYmxlU2NhblNldHVwKEJpdG1hcEhlYXBTY2FuU3RhdGUgKm5vZGUp CiAJICovCiAJaWYgKCFub2RlLT5zcy5zc19jdXJyZW50U2NhbkRlc2MpCiAJeworCQlib29sCQlt b2RpZmllc19yZWwgPQorCQkJYm1zX2lzX21lbWJlcigoKFNjYW4gKikgbm9kZS0+c3MucHMucGxh biktPnNjYW5yZWxpZCwKKwkJCQkJCSAgbm9kZS0+c3MucHMuc3RhdGUtPmVzX21vZGlmaWVkX3Jl bGlkcyk7CisKIAkJbm9kZS0+c3Muc3NfY3VycmVudFNjYW5EZXNjID0KIAkJCXRhYmxlX2JlZ2lu c2Nhbl9ibShub2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb24sCiAJCQkJCQkJICAgbm9kZS0+c3Mu cHMuc3RhdGUtPmVzX3NuYXBzaG90LAogCQkJCQkJCSAgIDAsCi0JCQkJCQkJICAgTlVMTCk7CisJ CQkJCQkJICAgTlVMTCwKKwkJCQkJCQkgICBtb2RpZmllc19yZWwpOwogCX0KIAogCW5vZGUtPnNz LnNzX2N1cnJlbnRTY2FuRGVzYy0+c3QucnNfdGJtaXRlcmF0b3IgPSB0Ym1pdGVyYXRvcjsKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVJbmRleHNjYW4uYyBiL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL25vZGVJbmRleHNjYW4uYwppbmRleCA3ZmNhYTM3ZmU2Mi4uYzJmZmJkM2Iw OGUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVJbmRleHNjYW4uYworKysg Yi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlSW5kZXhzY2FuLmMKQEAgLTEwMiwxNiArMTAyLDIy IEBAIEluZGV4TmV4dChJbmRleFNjYW5TdGF0ZSAqbm9kZSkKIAogCWlmIChzY2FuZGVzYyA9PSBO VUxMKQogCXsKKworCQlib29sCQltb2RpZmllc19iYXNlX3JlbCA9CisJCQlibXNfaXNfbWVtYmVy KCgoU2NhbiAqKSBub2RlLT5zcy5wcy5wbGFuKS0+c2NhbnJlbGlkLAorCQkJCQkJICBlc3RhdGUt PmVzX21vZGlmaWVkX3JlbGlkcyk7CisKIAkJLyoKIAkJICogV2UgcmVhY2ggaGVyZSBpZiB0aGUg aW5kZXggc2NhbiBpcyBub3QgcGFyYWxsZWwsIG9yIGlmIHdlJ3JlCiAJCSAqIHNlcmlhbGx5IGV4 ZWN1dGluZyBhbiBpbmRleCBzY2FuIHRoYXQgd2FzIHBsYW5uZWQgdG8gYmUgcGFyYWxsZWwuCiAJ CSAqLwotCQlzY2FuZGVzYyA9IGluZGV4X2JlZ2luc2Nhbihub2RlLT5zcy5zc19jdXJyZW50UmVs YXRpb24sCi0JCQkJCQkJCSAgIG5vZGUtPmlzc19SZWxhdGlvbkRlc2MsCi0JCQkJCQkJCSAgIGVz dGF0ZS0+ZXNfc25hcHNob3QsCi0JCQkJCQkJCSAgICZub2RlLT5pc3NfSW5zdHJ1bWVudCwKLQkJ CQkJCQkJICAgbm9kZS0+aXNzX051bVNjYW5LZXlzLAotCQkJCQkJCQkgICBub2RlLT5pc3NfTnVt T3JkZXJCeUtleXMpOworCQlzY2FuZGVzYyA9IGluZGV4X2JlZ2luc2Nhbl92bXNldChub2RlLT5z cy5zc19jdXJyZW50UmVsYXRpb24sCisJCQkJCQkJCQkJIG5vZGUtPmlzc19SZWxhdGlvbkRlc2Ms CisJCQkJCQkJCQkJIGVzdGF0ZS0+ZXNfc25hcHNob3QsCisJCQkJCQkJCQkJICZub2RlLT5pc3Nf SW5zdHJ1bWVudCwKKwkJCQkJCQkJCQkgbm9kZS0+aXNzX051bVNjYW5LZXlzLAorCQkJCQkJCQkJ CSBub2RlLT5pc3NfTnVtT3JkZXJCeUtleXMsCisJCQkJCQkJCQkJIG1vZGlmaWVzX2Jhc2VfcmVs KTsKIAogCQlub2RlLT5pc3NfU2NhbkRlc2MgPSBzY2FuZGVzYzsKIApkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVNlcXNjYW4uYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25v ZGVTZXFzY2FuLmMKaW5kZXggOTQwNDdkMjk0MzAuLmZkNjkyNzVjMTgxIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9leGVjdXRvci9ub2RlU2Vxc2Nhbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL25vZGVTZXFzY2FuLmMKQEAgLTY1LDEzICs2NSwxOCBAQCBTZXFOZXh0KFNlcVNjYW5TdGF0 ZSAqbm9kZSkKIAogCWlmIChzY2FuZGVzYyA9PSBOVUxMKQogCXsKKwkJYm9vbAkJbW9kaWZpZXNf cmVsID0KKwkJCWJtc19pc19tZW1iZXIoKChTY2FuICopIG5vZGUtPnNzLnBzLnBsYW4pLT5zY2Fu cmVsaWQsCisJCQkJCQkgIGVzdGF0ZS0+ZXNfbW9kaWZpZWRfcmVsaWRzKTsKKwogCQkvKgogCQkg KiBXZSByZWFjaCBoZXJlIGlmIHRoZSBzY2FuIGlzIG5vdCBwYXJhbGxlbCwgb3IgaWYgd2UncmUg c2VyaWFsbHkKIAkJICogZXhlY3V0aW5nIGEgc2NhbiB0aGF0IHdhcyBwbGFubmVkIHRvIGJlIHBh cmFsbGVsLgogCQkgKi8KLQkJc2NhbmRlc2MgPSB0YWJsZV9iZWdpbnNjYW4obm9kZS0+c3Muc3Nf Y3VycmVudFJlbGF0aW9uLAotCQkJCQkJCQkgICBlc3RhdGUtPmVzX3NuYXBzaG90LAotCQkJCQkJ CQkgICAwLCBOVUxMKTsKKwkJc2NhbmRlc2MgPSB0YWJsZV9iZWdpbnNjYW5fdm1zZXQobm9kZS0+ c3Muc3NfY3VycmVudFJlbGF0aW9uLAorCQkJCQkJCQkJCSBlc3RhdGUtPmVzX3NuYXBzaG90LAor CQkJCQkJCQkJCSAwLCBOVUxMLCBtb2RpZmllc19yZWwpOworCiAJCW5vZGUtPnNzLnNzX2N1cnJl bnRTY2FuRGVzYyA9IHNjYW5kZXNjOwogCX0KIApAQCAtMzY2LDYgKzM3MSw3IEBAIEV4ZWNTZXFT Y2FuSW5pdGlhbGl6ZURTTShTZXFTY2FuU3RhdGUgKm5vZGUsCiAJCQkJCQkgUGFyYWxsZWxDb250 ZXh0ICpwY3h0KQogewogCUVTdGF0ZQkgICAqZXN0YXRlID0gbm9kZS0+c3MucHMuc3RhdGU7CisJ Ym9vbAkJbW9kaWZpZXNfcmVsOwogCVBhcmFsbGVsVGFibGVTY2FuRGVzYyBwc2NhbjsKIAogCXBz Y2FuID0gc2htX3RvY19hbGxvY2F0ZShwY3h0LT50b2MsIG5vZGUtPnBzY2FuX2xlbik7CkBAIC0z NzMsOCArMzc5LDExIEBAIEV4ZWNTZXFTY2FuSW5pdGlhbGl6ZURTTShTZXFTY2FuU3RhdGUgKm5v ZGUsCiAJCQkJCQkJCSAgcHNjYW4sCiAJCQkJCQkJCSAgZXN0YXRlLT5lc19zbmFwc2hvdCk7CiAJ c2htX3RvY19pbnNlcnQocGN4dC0+dG9jLCBub2RlLT5zcy5wcy5wbGFuLT5wbGFuX25vZGVfaWQs IHBzY2FuKTsKKwltb2RpZmllc19yZWwgPSBibXNfaXNfbWVtYmVyKCgoU2NhbiAqKSBub2RlLT5z cy5wcy5wbGFuKS0+c2NhbnJlbGlkLAorCQkJCQkJCQkgZXN0YXRlLT5lc19tb2RpZmllZF9yZWxp ZHMpOwogCW5vZGUtPnNzLnNzX2N1cnJlbnRTY2FuRGVzYyA9Ci0JCXRhYmxlX2JlZ2luc2Nhbl9w YXJhbGxlbChub2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb24sIHBzY2FuKTsKKwkJdGFibGVfYmVn aW5zY2FuX3BhcmFsbGVsX3Ztc2V0KG5vZGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlvbiwgcHNjYW4s CisJCQkJCQkJCQkgICBtb2RpZmllc19yZWwpOwogfQogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC00MDQsOCAr NDEzLDEzIEBAIEV4ZWNTZXFTY2FuSW5pdGlhbGl6ZVdvcmtlcihTZXFTY2FuU3RhdGUgKm5vZGUs CiAJCQkJCQkJUGFyYWxsZWxXb3JrZXJDb250ZXh0ICpwd2N4dCkKIHsKIAlQYXJhbGxlbFRhYmxl U2NhbkRlc2MgcHNjYW47CisJYm9vbAkJbW9kaWZpZXNfcmVsID0KKwkJYm1zX2lzX21lbWJlcigo KFNjYW4gKikgbm9kZS0+c3MucHMucGxhbiktPnNjYW5yZWxpZCwKKwkJCQkJICBub2RlLT5zcy5w cy5zdGF0ZS0+ZXNfbW9kaWZpZWRfcmVsaWRzKTsKIAogCXBzY2FuID0gc2htX3RvY19sb29rdXAo cHdjeHQtPnRvYywgbm9kZS0+c3MucHMucGxhbi0+cGxhbl9ub2RlX2lkLCBmYWxzZSk7CiAJbm9k ZS0+c3Muc3NfY3VycmVudFNjYW5EZXNjID0KLQkJdGFibGVfYmVnaW5zY2FuX3BhcmFsbGVsKG5v ZGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlvbiwgcHNjYW4pOworCQl0YWJsZV9iZWdpbnNjYW5fcGFy YWxsZWxfdm1zZXQobm9kZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLAorCQkJCQkJCQkJICAgcHNj YW4sCisJCQkJCQkJCQkgICBtb2RpZmllc19yZWwpOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvYWNjZXNzL2dlbmFtLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MvZ2VuYW0uaAppbmRleCA1YjJh YjE4MWI1Zi4uYmYyNzJjMmMzN2YgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9nZW5h bS5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9nZW5hbS5oCkBAIC0xODAsNiArMTgwLDExIEBA IGV4dGVybiBJbmRleFNjYW5EZXNjIGluZGV4X2JlZ2luc2NhbihSZWxhdGlvbiBoZWFwUmVsYXRp b24sCiAJCQkJCQkJCQkgU25hcHNob3Qgc25hcHNob3QsCiAJCQkJCQkJCQkgSW5kZXhTY2FuSW5z dHJ1bWVudGF0aW9uICppbnN0cnVtZW50LAogCQkJCQkJCQkJIGludCBua2V5cywgaW50IG5vcmRl cmJ5cyk7CitleHRlcm4gSW5kZXhTY2FuRGVzYyBpbmRleF9iZWdpbnNjYW5fdm1zZXQoUmVsYXRp b24gaGVhcFJlbGF0aW9uLAorCQkJCQkJCQkJCSAgIFJlbGF0aW9uIGluZGV4UmVsYXRpb24sCisJ CQkJCQkJCQkJICAgU25hcHNob3Qgc25hcHNob3QsCisJCQkJCQkJCQkJICAgSW5kZXhTY2FuSW5z dHJ1bWVudGF0aW9uICppbnN0cnVtZW50LAorCQkJCQkJCQkJCSAgIGludCBua2V5cywgaW50IG5v cmRlcmJ5cywgYm9vbCBtb2RpZmllc19oZWFwX3JlbCk7CiBleHRlcm4gSW5kZXhTY2FuRGVzYyBp bmRleF9iZWdpbnNjYW5fYml0bWFwKFJlbGF0aW9uIGluZGV4UmVsYXRpb24sCiAJCQkJCQkJCQkJ CVNuYXBzaG90IHNuYXBzaG90LAogCQkJCQkJCQkJCQlJbmRleFNjYW5JbnN0cnVtZW50YXRpb24g Kmluc3RydW1lbnQsCkBAIC0yMDYsNiArMjExLDEyIEBAIGV4dGVybiBJbmRleFNjYW5EZXNjIGlu ZGV4X2JlZ2luc2Nhbl9wYXJhbGxlbChSZWxhdGlvbiBoZWFwcmVsLAogCQkJCQkJCQkJCQkgIElu ZGV4U2Nhbkluc3RydW1lbnRhdGlvbiAqaW5zdHJ1bWVudCwKIAkJCQkJCQkJCQkJICBpbnQgbmtl eXMsIGludCBub3JkZXJieXMsCiAJCQkJCQkJCQkJCSAgUGFyYWxsZWxJbmRleFNjYW5EZXNjIHBz Y2FuKTsKKworZXh0ZXJuIEluZGV4U2NhbkRlc2MgaW5kZXhfYmVnaW5zY2FuX3BhcmFsbGVsX3Zt c2V0KFJlbGF0aW9uIGhlYXByZWwsIFJlbGF0aW9uIGluZGV4cmVsLAorCQkJCQkJCQkJCQkJCUlu ZGV4U2Nhbkluc3RydW1lbnRhdGlvbiAqaW5zdHJ1bWVudCwKKwkJCQkJCQkJCQkJCQlpbnQgbmtl eXMsIGludCBub3JkZXJieXMsCisJCQkJCQkJCQkJCQkJUGFyYWxsZWxJbmRleFNjYW5EZXNjIHBz Y2FuLAorCQkJCQkJCQkJCQkJCWJvb2wgbW9kaWZpZXNfcmVsKTsKIGV4dGVybiBJdGVtUG9pbnRl ciBpbmRleF9nZXRuZXh0X3RpZChJbmRleFNjYW5EZXNjIHNjYW4sCiAJCQkJCQkJCQkgU2NhbkRp cmVjdGlvbiBkaXJlY3Rpb24pOwogc3RydWN0IFR1cGxlVGFibGVTbG90OwpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5o CmluZGV4IDM1YTI1Y2YwYjA0Li40ZGE2MjkwNjdkMSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv YWNjZXNzL2hlYXBhbS5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaApAQCAtOTQs NiArOTQsMTMgQEAgdHlwZWRlZiBzdHJ1Y3QgSGVhcFNjYW5EZXNjRGF0YQogCSAqLwogCVBhcmFs bGVsQmxvY2tUYWJsZVNjYW5Xb3JrZXJEYXRhICpyc19wYXJhbGxlbHdvcmtlcmRhdGE7CiAKKwkv KgorCSAqIEZvciBzZXF1ZW50aWFsIHNjYW5zIGFuZCBiaXRtYXAgaGVhcCBzY2Fucy4gSWYgdGhl IHJlbGF0aW9uIGlzIG5vdAorCSAqIGJlaW5nIG1vZGlmaWVkLCBvbi1hY2Nlc3MgcHJ1bmluZyBt YXkgcmVhZCBpbiB0aGUgY3VycmVudCBoZWFwIHBhZ2UncworCSAqIGNvcnJlc3BvbmRpbmcgVk0g YmxvY2sgdG8gdGhpcyBidWZmZXIuCisJICovCisJQnVmZmVyCQlyc192bWJ1ZmZlcjsKKwogCS8q IHRoZXNlIGZpZWxkcyBvbmx5IHVzZWQgaW4gcGFnZS1hdC1hLXRpbWUgbW9kZSBhbmQgZm9yIGJp dG1hcCBzY2FucyAqLwogCXVpbnQzMgkJcnNfY2luZGV4OwkJLyogY3VycmVudCB0dXBsZSdzIGlu ZGV4IGluIHZpc3R1cGxlcyAqLwogCXVpbnQzMgkJcnNfbnR1cGxlczsJCS8qIG51bWJlciBvZiB2 aXNpYmxlIHR1cGxlcyBvbiBwYWdlICovCkBAIC0xMTYsOCArMTIzLDE4IEBAIHR5cGVkZWYgc3Ry dWN0IEluZGV4RmV0Y2hIZWFwRGF0YQogewogCUluZGV4RmV0Y2hUYWJsZURhdGEgeHNfYmFzZTsJ LyogQU0gaW5kZXBlbmRlbnQgcGFydCBvZiB0aGUgZGVzY3JpcHRvciAqLwogCi0JQnVmZmVyCQl4 c19jYnVmOwkJLyogY3VycmVudCBoZWFwIGJ1ZmZlciBpbiBzY2FuLCBpZiBhbnkgKi8KLQkvKiBO QjogaWYgeHNfY2J1ZiBpcyBub3QgSW52YWxpZEJ1ZmZlciwgd2UgaG9sZCBhIHBpbiBvbiB0aGF0 IGJ1ZmZlciAqLworCS8qCisJICogQ3VycmVudCBoZWFwIGJ1ZmZlciBpbiBzY2FuLCBpZiBhbnku IE5COiBpZiB4c19jYnVmIGlzIG5vdAorCSAqIEludmFsaWRCdWZmZXIsIHdlIGhvbGQgYSBwaW4g b24gdGhhdCBidWZmZXIuCisJICovCisJQnVmZmVyCQl4c19jYnVmOworCisJLyoKKwkgKiBGb3Ig aW5kZXggc2NhbnMgdGhhdCBkbyBub3QgbW9kaWZ5IHRoZSB1bmRlcmx5aW5nIGhlYXAgdGFibGUs IG9uLWFjY2VzcworCSAqIHBydW5pbmcgbWF5IHJlYWQgaW4gdGhlIGN1cnJlbnQgaGVhcCBwYWdl J3MgY29ycmVzcG9uZGluZyBWTSBibG9jayB0bworCSAqIHRoaXMgYnVmZmVyLgorCSAqLworCUJ1 ZmZlcgkJeHNfdm1idWZmZXI7CiB9IEluZGV4RmV0Y2hIZWFwRGF0YTsKIAogLyogUmVzdWx0IGNv ZGVzIGZvciBIZWFwVHVwbGVTYXRpc2ZpZXNWYWN1dW0gKi8KQEAgLTM2OSw3ICszODYsOCBAQCBl eHRlcm4gVHJhbnNhY3Rpb25JZCBoZWFwX2luZGV4X2RlbGV0ZV90dXBsZXMoUmVsYXRpb24gcmVs LAogCiAvKiBpbiBoZWFwL3BydW5laGVhcC5jICovCiBzdHJ1Y3QgR2xvYmFsVmlzU3RhdGU7Ci1l eHRlcm4gdm9pZCBoZWFwX3BhZ2VfcHJ1bmVfb3B0KFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIg YnVmZmVyKTsKK2V4dGVybiB2b2lkIGhlYXBfcGFnZV9wcnVuZV9vcHQoUmVsYXRpb24gcmVsYXRp b24sIEJ1ZmZlciBidWZmZXIsCisJCQkJCQkJCUJ1ZmZlciAqdm1idWZmZXIpOwogZXh0ZXJuIHZv aWQgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBi dWZmZXIsCiAJCQkJCQkJCQkgICBCdWZmZXIgdm1idWZmZXIsIGJvb2wgYmxrX2tub3duX2F2LAog CQkJCQkJCQkJICAgUHJ1bmVSZWFzb24gcmVhc29uLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv YWNjZXNzL3JlbHNjYW4uaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9yZWxzY2FuLmgKaW5kZXggYjVl MGZiMzg2YzAuLmY0OTZlMGI0OTM5IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MvcmVs c2Nhbi5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9yZWxzY2FuLmgKQEAgLTEyMSw2ICsxMjEs MTIgQEAgdHlwZWRlZiBzdHJ1Y3QgUGFyYWxsZWxCbG9ja1RhYmxlU2NhbldvcmtlckRhdGEgKlBh cmFsbGVsQmxvY2tUYWJsZVNjYW5Xb3JrZXI7CiB0eXBlZGVmIHN0cnVjdCBJbmRleEZldGNoVGFi bGVEYXRhCiB7CiAJUmVsYXRpb24JcmVsOworCisJLyoKKwkgKiBTb21lIG9wdGltaXphdGlvbnMg Y2FuIG9ubHkgYmUgcGVyZm9ybWVkIGlmIHRoZSBxdWVyeSBkb2VzIG5vdCBtb2RpZnkKKwkgKiB0 aGUgdW5kZXJseWluZyByZWxhdGlvbi4gVHJhY2sgdGhhdCBoZXJlLgorCSAqLworCWJvb2wJCW1v ZGlmaWVzX2Jhc2VfcmVsOwogfSBJbmRleEZldGNoVGFibGVEYXRhOwogCiBzdHJ1Y3QgSW5kZXhT Y2FuSW5zdHJ1bWVudGF0aW9uOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL3RhYmxl YW0uaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy90YWJsZWFtLmgKaW5kZXggYjJjZTM1ZTJhMzQuLmUz MWMyMWNmOGViIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MvdGFibGVhbS5oCisrKyBi L3NyYy9pbmNsdWRlL2FjY2Vzcy90YWJsZWFtLmgKQEAgLTYyLDYgKzYyLDggQEAgdHlwZWRlZiBl bnVtIFNjYW5PcHRpb25zCiAKIAkvKiB1bnJlZ2lzdGVyIHNuYXBzaG90IGF0IHNjYW4gZW5kPyAq LwogCVNPX1RFTVBfU05BUFNIT1QgPSAxIDw8IDksCisJLyogd2hldGhlciBvciBub3Qgc2NhbiBz aG91bGQgYXR0ZW1wdCB0byBzZXQgdGhlIFZNICovCisJU09fQUxMT1dfVk1fU0VUID0gMSA8PCAx MCwKIH0JCQlTY2FuT3B0aW9uczsKIAogLyoKQEAgLTg4MSw2ICs4ODMsMjUgQEAgdGFibGVfYmVn aW5zY2FuKFJlbGF0aW9uIHJlbCwgU25hcHNob3Qgc25hcHNob3QsCiAJcmV0dXJuIHJlbC0+cmRf dGFibGVhbS0+c2Nhbl9iZWdpbihyZWwsIHNuYXBzaG90LCBua2V5cywga2V5LCBOVUxMLCBmbGFn cyk7CiB9CiAKKy8qCisgKiBTaW1pbGFyIHRvIHRhYmxlX2JlZ2luc2NhbigpLCBidXQgYWxsb3dz IHRoZSBjYWxsZXIgdG8gaW5kaWNhdGUgd2hldGhlciB0aGUKKyAqIHF1ZXJ5IG1vZGlmaWVzIHRo ZSByZWxhdGlvbi4gVGhpcyBpcyB1c2VkIHdoZW4gdGhlIGNhbGxlciB3YW50cyB0byBhdHRlbXB0 CisgKiBtYXJraW5nIHBhZ2VzIGluIHRoZSByZWxhdGlvbiBhcyBhbGwtdmlzaWJsZSBpbiB0aGUg dmlzaWJpbGl0eSBtYXAgZHVyaW5nCisgKiBvbi1hY2Nlc3MgcHJ1bmluZy4KKyAqLworc3RhdGlj IGlubGluZSBUYWJsZVNjYW5EZXNjCit0YWJsZV9iZWdpbnNjYW5fdm1zZXQoUmVsYXRpb24gcmVs LCBTbmFwc2hvdCBzbmFwc2hvdCwKKwkJCQkJICBpbnQgbmtleXMsIHN0cnVjdCBTY2FuS2V5RGF0 YSAqa2V5LCBib29sIG1vZGlmaWVzX3JlbCkKK3sKKwl1aW50MzIJCWZsYWdzID0gU09fVFlQRV9T RVFTQ0FOIHwKKwkJU09fQUxMT1dfU1RSQVQgfCBTT19BTExPV19TWU5DIHwgU09fQUxMT1dfUEFH RU1PREU7CisKKwlpZiAoIW1vZGlmaWVzX3JlbCkKKwkJZmxhZ3MgfD0gU09fQUxMT1dfVk1fU0VU OworCisJcmV0dXJuIHJlbC0+cmRfdGFibGVhbS0+c2Nhbl9iZWdpbihyZWwsIHNuYXBzaG90LCBu a2V5cywga2V5LCBOVUxMLCBmbGFncyk7Cit9CisKIC8qCiAgKiBMaWtlIHRhYmxlX2JlZ2luc2Nh bigpLCBidXQgZm9yIHNjYW5uaW5nIGNhdGFsb2cuIEl0J2xsIGF1dG9tYXRpY2FsbHkgdXNlIGEK ICAqIHNuYXBzaG90IGFwcHJvcHJpYXRlIGZvciBzY2FubmluZyBjYXRhbG9nIHJlbGF0aW9ucy4K QEAgLTkxOCwxMCArOTM5LDEzIEBAIHRhYmxlX2JlZ2luc2Nhbl9zdHJhdChSZWxhdGlvbiByZWws IFNuYXBzaG90IHNuYXBzaG90LAogICovCiBzdGF0aWMgaW5saW5lIFRhYmxlU2NhbkRlc2MKIHRh YmxlX2JlZ2luc2Nhbl9ibShSZWxhdGlvbiByZWwsIFNuYXBzaG90IHNuYXBzaG90LAotCQkJCSAg IGludCBua2V5cywgc3RydWN0IFNjYW5LZXlEYXRhICprZXkpCisJCQkJICAgaW50IG5rZXlzLCBz dHJ1Y3QgU2NhbktleURhdGEgKmtleSwgYm9vbCBtb2RpZmllc19yZWwpCiB7CiAJdWludDMyCQlm bGFncyA9IFNPX1RZUEVfQklUTUFQU0NBTiB8IFNPX0FMTE9XX1BBR0VNT0RFOwogCisJaWYgKCFt b2RpZmllc19yZWwpCisJCWZsYWdzIHw9IFNPX0FMTE9XX1ZNX1NFVDsKKwogCXJldHVybiByZWwt PnJkX3RhYmxlYW0tPnNjYW5fYmVnaW4ocmVsLCBzbmFwc2hvdCwgbmtleXMsIGtleSwKIAkJCQkJ CQkJCSAgIE5VTEwsIGZsYWdzKTsKIH0KQEAgLTExMzAsNiArMTE1NCwxMCBAQCBleHRlcm4gdm9p ZCB0YWJsZV9wYXJhbGxlbHNjYW5faW5pdGlhbGl6ZShSZWxhdGlvbiByZWwsCiBleHRlcm4gVGFi bGVTY2FuRGVzYyB0YWJsZV9iZWdpbnNjYW5fcGFyYWxsZWwoUmVsYXRpb24gcmVsYXRpb24sCiAJ CQkJCQkJCQkJCSAgUGFyYWxsZWxUYWJsZVNjYW5EZXNjIHBzY2FuKTsKIAorZXh0ZXJuIFRhYmxl U2NhbkRlc2MgdGFibGVfYmVnaW5zY2FuX3BhcmFsbGVsX3Ztc2V0KFJlbGF0aW9uIHJlbGF0aW9u LAorCQkJCQkJCQkJCQkJCVBhcmFsbGVsVGFibGVTY2FuRGVzYyBwc2NhbiwKKwkJCQkJCQkJCQkJ CQlib29sIG1vZGlmaWVzX3JlbCk7CisKIC8qCiAgKiBSZXN0YXJ0IGEgcGFyYWxsZWwgc2Nhbi4g IENhbGwgdGhpcyBpbiB0aGUgbGVhZGVyIHByb2Nlc3MuICBDYWxsZXIgaXMKICAqIHJlc3BvbnNp YmxlIGZvciBtYWtpbmcgc3VyZSB0aGF0IGFsbCB3b3JrZXJzIGhhdmUgZmluaXNoZWQgdGhlIHNj YW4KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oIGIvc3JjL2luY2x1 ZGUvbm9kZXMvZXhlY25vZGVzLmgKaW5kZXggM2E5MjBjYzdkMTcuLmM4NTRiZTkzNDM2IDEwMDY0 NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9u b2Rlcy9leGVjbm9kZXMuaApAQCAtNjc2LDYgKzY3NiwxMiBAQCB0eXBlZGVmIHN0cnVjdCBFU3Rh dGUKIAkJCQkJCQkJCSAqIEV4ZWNEb0luaXRpYWxQcnVuaW5nKCkgKi8KIAljb25zdCBjaGFyICpl c19zb3VyY2VUZXh0OwkvKiBTb3VyY2UgdGV4dCBmcm9tIFF1ZXJ5RGVzYyAqLwogCisJLyoKKwkg KiBSVCBpbmRleGVzIG9mIHJlbGF0aW9ucyBtb2RpZmllZCBieSB0aGUgcXVlcnkgZWl0aGVyIHRo cm91Z2gKKwkgKiBVUERBVEUvREVMRVRFL0lOU0VSVC9NRVJHRSBvciBTRUxFQ1QgRk9SIFVQREFU RQorCSAqLworCUJpdG1hcHNldCAgKmVzX21vZGlmaWVkX3JlbGlkczsKKwogCUp1bmtGaWx0ZXIg KmVzX2p1bmtGaWx0ZXI7CS8qIHRvcC1sZXZlbCBqdW5rIGZpbHRlciwgaWYgYW55ICovCiAKIAkv KiBJZiBxdWVyeSBjYW4gaW5zZXJ0L2RlbGV0ZSB0dXBsZXMsIHRoZSBjb21tYW5kIElEIHRvIG1h cmsgdGhlbSB3aXRoICovCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWNvdmVyeS90LzAzNV9zdGFu ZGJ5X2xvZ2ljYWxfZGVjb2RpbmcucGwgYi9zcmMvdGVzdC9yZWNvdmVyeS90LzAzNV9zdGFuZGJ5 X2xvZ2ljYWxfZGVjb2RpbmcucGwKaW5kZXggYzljMTgyODkyY2YuLmY1YzBjNjViMjYwIDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9yZWNvdmVyeS90LzAzNV9zdGFuZGJ5X2xvZ2ljYWxfZGVjb2Rpbmcu cGwKKysrIGIvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMzVfc3RhbmRieV9sb2dpY2FsX2RlY29kaW5n LnBsCkBAIC0yOTYsNiArMjk2LDcgQEAgd2FsX2xldmVsID0gJ2xvZ2ljYWwnCiBtYXhfcmVwbGlj YXRpb25fc2xvdHMgPSA0CiBtYXhfd2FsX3NlbmRlcnMgPSA0CiBhdXRvdmFjdXVtID0gb2ZmCito b3Rfc3RhbmRieV9mZWVkYmFjayA9IG9uCiB9KTsKICRub2RlX3ByaW1hcnktPmR1bXBfaW5mbzsK ICRub2RlX3ByaW1hcnktPnN0YXJ0OwpAQCAtNzQ1LDcgKzc0Niw3IEBAIGNoZWNrX3BnX3JlY3Zs b2dpY2FsX3N0ZGVycigkaGFuZGxlLAogJGxvZ3N0YXJ0ID0gLXMgJG5vZGVfc3RhbmRieS0+bG9n ZmlsZTsKIAogcmVhY3RpdmVfc2xvdHNfY2hhbmdlX2hmc19hbmRfd2FpdF9mb3JfeG1pbnMoJ3No YXJlZF9yb3dfcmVtb3ZhbF8nLAotCSdub19jb25mbGljdF8nLCAwLCAxKTsKKwknbm9fY29uZmxp Y3RfJywgMSwgMCk7CiAKICMgVGhpcyBzaG91bGQgbm90IHRyaWdnZXIgYSBjb25mbGljdAogd2Fp dF91bnRpbF92YWN1dW1fY2FuX3JlbW92ZSgKLS0gCjIuNDMuMAoK --000000000000cf342e063f082d09--