<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>120252</bug_id>
          
          <creation_ts>2013-08-24 12:58:28 -0700</creation_ts>
          <short_desc>REGRESSION(r154545): Broke WebKit2 API tests (Requested by andersca on #webkit).</short_desc>
          <delta_ts>2013-08-25 02:24:24 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>103377</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>andersca</cc>
    
    <cc>cgarcia</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>920631</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-08-24 12:58:28 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/154545 broke the build:
Broke WebKit2 API tests (Requested by andersca on #webkit).

This is an automatic bug report generated by the sheriff-bot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests case pain.

&quot;Only you can prevent forest fires.&quot; -- Smokey the Bear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>920633</commentid>
    <comment_count>1</comment_count>
      <attachid>209552</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-08-24 12:58:51 -0700</bug_when>
    <thetext>Created attachment 209552
ROLLOUT of r154545

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>920635</commentid>
    <comment_count>2</comment_count>
      <attachid>209552</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-08-24 13:03:07 -0700</bug_when>
    <thetext>Comment on attachment 209552
ROLLOUT of r154545

Clearing flags on attachment: 209552

Committed r154551: &lt;http://trac.webkit.org/changeset/154551&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>920636</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-08-24 13:03:10 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>920647</commentid>
    <comment_count>4</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2013-08-24 14:23:59 -0700</bug_when>
    <thetext>I&apos;m seeing unit test regressions in debug AppleMac builds, but due to r154540, not 154545. Could you please double-check?

http://build.webkit.org/builders/Apple%20Lion%20Debug%20WK1%20%28Tests%29?numbuilds=25
http://build.webkit.org/builders/Apple%20Lion%20Debug%20WK2%20%28Tests%29?numbuilds=25
http://build.webkit.org/builders/Apple%20MountainLion%20Debug%20WK1%20%28Tests%29?numbuilds=25
http://build.webkit.org/builders/Apple%20MountainLion%20Debug%20WK2%20%28Tests%29?numbuilds=25</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>920735</commentid>
    <comment_count>5</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-08-25 01:34:12 -0700</bug_when>
    <thetext>I&apos;m very surprised that r154545 affects C API unit tests, because this code is GTK+ specific and only runs from a WebExtension, and no extension is loaded when running C API tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>920736</commentid>
    <comment_count>6</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-08-25 01:36:23 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; I&apos;m seeing unit test regressions in debug AppleMac builds, but due to r154540, not 154545. Could you please double-check?
&gt; 
&gt; http://build.webkit.org/builders/Apple%20Lion%20Debug%20WK1%20%28Tests%29?numbuilds=25
&gt; http://build.webkit.org/builders/Apple%20Lion%20Debug%20WK2%20%28Tests%29?numbuilds=25
&gt; http://build.webkit.org/builders/Apple%20MountainLion%20Debug%20WK1%20%28Tests%29?numbuilds=25
&gt; http://build.webkit.org/builders/Apple%20MountainLion%20Debug%20WK2%20%28Tests%29?numbuilds=25

hmm, r154540 does affect the C API, it only adds a new callback to the page loader client, though. In any case, r154545 depends on r154540, so both would need to be rolled out in case the regression is actually caused by r154540.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>920742</commentid>
    <comment_count>7</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-08-25 02:15:41 -0700</bug_when>
    <thetext>It seems to me that the offsets used in APIClientTraits&lt;WKBundlePageLoaderClient&gt; are wrong, and I also added the wrong offset too in r154540</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>920745</commentid>
    <comment_count>8</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-08-25 02:24:24 -0700</bug_when>
    <thetext>See https://bugs.webkit.org/show_bug.cgi?id=120268</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>209552</attachid>
            <date>2013-08-24 12:58:51 -0700</date>
            <delta_ts>2013-08-24 13:03:07 -0700</delta_ts>
            <desc>ROLLOUT of r154545</desc>
            <filename>bug-120252-20130824125850.patch</filename>
            <type>text/plain</type>
            <size>29859</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU0NTUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNTkzOGNjM2M2Yzc2OTBm
MzIwY2E3NjMwZTM5YjJhN2E2NmFhMmRhZS4uMjliNTk4YjU1ZjNkOWY2NGZlYTEyMmY4ODY4Yjhh
MmY3NjUwYTZjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEzLTA4LTI0ICBDb21t
aXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2Vk
LCByb2xsaW5nIG91dCByMTU0NTQ1LgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2No
YW5nZXNldC8xNTQ1NDUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEyMDI1MgorCisgICAgICAgIEJyb2tlIFdlYktpdDIgQVBJIHRlc3RzIChSZXF1ZXN0
ZWQgYnkgYW5kZXJzY2Egb24gI3dlYmtpdCkuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0
LmFtOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9u
cy50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvVGVzdFdlYkV4dGVuc2lv
bnMuY3BwOgorICAgICAgICAoYmVmb3JlQWxsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0
ay90ZXN0cy9XZWJFeHRlbnNpb25UZXN0LmNwcDoKKyAgICAgICAgKG1ldGhvZENhbGxDYWxsYmFj
ayk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdEZy
YW1lLmNwcDoKKyAgICAgICAgKHdlYmtpdF9mcmFtZV9nZXRfamF2YXNjcmlwdF9nbG9iYWxfY29u
dGV4dCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktp
dEZyYW1lLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dl
YktpdFNjcmlwdFdvcmxkLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0U2NyaXB0V29ybGQuaDogUmVtb3ZlZC4KKyAgICAgICAg
KiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0U2NyaXB0V29ybGRQcml2
YXRlLmg6IFJlbW92ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL1dlYktpdFdlYlBhZ2UuY3BwOgorICAgICAgICAod2Via2l0V2ViUGFnZUNyZWF0ZSk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL3dlYmtpdC13ZWItZXh0
ZW5zaW9uLmg6CisKIDIwMTMtMDgtMjQgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBp
Z2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIEFkZCBXZWJLaXQyIEFQSSBmb3IgaXNvbGF0ZWQg
d29ybGRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtIGIv
U291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBlZDk3Nzg4YmI4MWU4MjRk
ZmFiNmUzZDhjNGIyNmQ5YmQ3N2E2ZGUwLi43OGMzNGFkMzE2OGQ2MTU3ZWExMmZjYWMxN2Q5NGQ5
ODdiZGVhZjUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFt
CisrKyBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTE0MCw3ICsxNDAs
NiBAQCB3ZWJraXQyX3dlYl9leHRlbnNpb25faF9hcGkgKz0gXAogCSQoV2ViS2l0MikvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFdlYkV4dGVuc2lvbi5oIFwKIAkkKFdl
YktpdDIpL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRGcmFtZS5oIFwK
IAkkKFdlYktpdDIpL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRXZWJQ
YWdlLmggXAotCSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dl
YktpdFNjcmlwdFdvcmxkLmggXAogCSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL3dlYmtpdC13ZWItZXh0ZW5zaW9uLmgKIAogd2Via2l0Ml9idWlsdF9zb3VyY2Vz
ICs9IFwKQEAgLTEwNjQsOSArMTA2Myw2IEBAIHdlYmtpdDJfc291cmNlcyArPSBcCiAJU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdEZyYW1lLmNw
cCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dl
YktpdEZyYW1lLmggXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9XZWJLaXRGcmFtZVByaXZhdGUuaCBcCi0JU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFNjcmlwdFdvcmxkLmNwcCBcCi0JU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFNjcmlwdFdv
cmxkLmggXAotCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9XZWJLaXRTY3JpcHRXb3JsZFByaXZhdGUuaCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFdlYkV4dGVuc2lvbi5jcHAgXAogCVNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRXZWJFeHRl
bnNpb24uaCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL1dlYktpdFdlYkV4dGVuc2lvblByaXZhdGUuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0IGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4
dAppbmRleCBlOGJlNjFmZTRlM2E0ZjIxMjYyNzdmZjMyMmUzOTk5NzgzY2RiZTM4Li4yOTA3OGRk
NDEwNzgxMDRhOWNjOWM2YmQ4ZjE0MzNmMTVhMjIyODlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0CisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9u
cy50eHQKQEAgLTEwNjIsNyArMTA2Miw2IEBAIFdlYktpdEZyYW1lCiB3ZWJraXRfZnJhbWVfaXNf
bWFpbl9mcmFtZQogd2Via2l0X2ZyYW1lX2dldF91cmkKIHdlYmtpdF9mcmFtZV9nZXRfamF2YXNj
cmlwdF9nbG9iYWxfY29udGV4dAotd2Via2l0X2ZyYW1lX2dldF9qYXZhc2NyaXB0X2NvbnRleHRf
Zm9yX3NjcmlwdF93b3JsZAogCiA8U1VCU0VDVElPTiBTdGFuZGFyZD4KIFdlYktpdEZyYW1lQ2xh
c3MKQEAgLTEwNzcsMjMgKzEwNzYsMyBAQCBXRUJLSVRfRlJBTUVfR0VUX0NMQVNTCiBXZWJLaXRG
cmFtZVByaXZhdGUKIHdlYmtpdF9mcmFtZV9nZXRfdHlwZQogPC9TRUNUSU9OPgotCi08U0VDVElP
Tj4KLTxGSUxFPldlYktpdFNjcmlwdFdvcmxkPC9GSUxFPgotV2ViS2l0U2NyaXB0V29ybGQKLXdl
YmtpdF9zY3JpcHRfd29ybGRfZ2V0X2RlZmF1bHQKLXdlYmtpdF9zY3JpcHRfd29ybGRfbmV3Ci0K
LTxTVUJTRUNUSU9OIFN0YW5kYXJkPgotV2ViS2l0U2NyaXB0V29ybGRDbGFzcwotV0VCS0lUX1RZ
UEVfU0NSSVBUX1dPUkxECi1XRUJLSVRfU0NSSVBUX1dPUkxECi1XRUJLSVRfSVNfU0NSSVBUX1dP
UkxECi1XRUJLSVRfU0NSSVBUX1dPUkxEX0NMQVNTCi1XRUJLSVRfSVNfU0NSSVBUX1dPUkxEX0NM
QVNTCi1XRUJLSVRfU0NSSVBUX1dPUkxEX0dFVF9DTEFTUwotCi08U1VCU0VDVElPTiBQcml2YXRl
PgotV2ViS2l0U2NyaXB0V29ybGRQcml2YXRlCi13ZWJraXRfc2NyaXB0X3dvcmxkX2dldF90eXBl
Ci08L1NFQ1RJT04+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay90ZXN0cy9UZXN0V2ViRXh0ZW5zaW9ucy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay90ZXN0cy9UZXN0V2ViRXh0ZW5zaW9ucy5jcHAKaW5kZXggOTFjYjdhYWRhMWRjZTQz
ZGU4Yjc4MjZjNzU1OWNhMWU2NTM5MTg4MC4uNTI3Y2M5MzZjNzZlN2IzNDYxYTdlY2M3NWIyZGIx
MDU0ZjZmZWUxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
dGVzdHMvVGVzdFdlYkV4dGVuc2lvbnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL3Rlc3RzL1Rlc3RXZWJFeHRlbnNpb25zLmNwcApAQCAtMTAwLDgxICsxMDAsNiBA
QCBzdGF0aWMgdm9pZCB0ZXN0V2ViS2l0V2ViVmlld1Byb2Nlc3NDcmFzaGVkKFdlYlZpZXdUZXN0
KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQogICAgIGdfbWFpbl9sb29wX3J1bih0ZXN0LT5tX21haW5M
b29wKTsKIH0KIAotc3RhdGljIHZvaWQgdGVzdFdlYkV4dGVuc2lvbldpbmRvd09iamVjdENsZWFy
ZWQoV2ViVmlld1Rlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCi17Ci0gICAgdGVzdC0+bG9hZEh0
bWwoIjxodG1sPjxoZWFkZXI+PC9oZWFkZXI+PGJvZHk+PC9ib2R5PjwvaHRtbD4iLCAwKTsKLSAg
ICB0ZXN0LT53YWl0VW50aWxMb2FkRmluaXNoZWQoKTsKLQotICAgIEdPd25QdHI8R0Vycm9yPiBl
cnJvcjsKLSAgICBXZWJLaXRKYXZhc2NyaXB0UmVzdWx0KiBqYXZhc2NyaXB0UmVzdWx0ID0gdGVz
dC0+cnVuSmF2YVNjcmlwdEFuZFdhaXRVbnRpbEZpbmlzaGVkKCJ3aW5kb3cuZWNobygnRm9vJyk7
IiwgJmVycm9yLm91dFB0cigpKTsKLSAgICBnX2Fzc2VydChqYXZhc2NyaXB0UmVzdWx0KTsKLSAg
ICBnX2Fzc2VydCghZXJyb3IuZ2V0KCkpOwotICAgIEdPd25QdHI8Y2hhcj4gdmFsdWVTdHJpbmco
V2ViVmlld1Rlc3Q6OmphdmFzY3JpcHRSZXN1bHRUb0NTdHJpbmcoamF2YXNjcmlwdFJlc3VsdCkp
OwotICAgIGdfYXNzZXJ0X2NtcHN0cih2YWx1ZVN0cmluZy5nZXQoKSwgPT0sICJGb28iKTsKLX0K
LQotc3RhdGljIGdib29sZWFuIHNjcmlwdERpYWxvZ0NhbGxiYWNrKFdlYktpdFdlYlZpZXcqLCBX
ZWJLaXRTY3JpcHREaWFsb2cqIGRpYWxvZywgY2hhcioqIHJlc3VsdCkKLXsKLSAgICBnX2Fzc2Vy
dF9jbXB1aW50KHdlYmtpdF9zY3JpcHRfZGlhbG9nX2dldF9kaWFsb2dfdHlwZShkaWFsb2cpLCA9
PSwgV0VCS0lUX1NDUklQVF9ESUFMT0dfQUxFUlQpOwotICAgIGdfYXNzZXJ0KCEqcmVzdWx0KTsK
LSAgICAqcmVzdWx0ID0gZ19zdHJkdXAod2Via2l0X3NjcmlwdF9kaWFsb2dfZ2V0X21lc3NhZ2Uo
ZGlhbG9nKSk7Ci0gICAgcmV0dXJuIFRSVUU7Ci19Ci0KLXN0YXRpYyB2b2lkIHJ1bkphdmFTY3Jp
cHRJbklzb2xhdGVkV29ybGRGaW5pc2hlZENhbGxiYWNrKEdEQnVzUHJveHkqIHByb3h5LCBHQXN5
bmNSZXN1bHQqIHJlc3VsdCwgV2ViVmlld1Rlc3QqIHRlc3QpCi17Ci0gICAgZ19kYnVzX3Byb3h5
X2NhbGxfZmluaXNoKHByb3h5LCByZXN1bHQsIDApOwotICAgIGdfbWFpbl9sb29wX3F1aXQodGVz
dC0+bV9tYWluTG9vcCk7Ci19Ci0KLXN0YXRpYyB2b2lkIHRlc3RXZWJFeHRlbnNpb25Jc29sYXRl
ZFdvcmxkKFdlYlZpZXdUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQotewotICAgIHRlc3QtPmxv
YWRIdG1sKCI8aHRtbD48aGVhZGVyPjwvaGVhZGVyPjxib2R5PjxkaXYgaWQ9J2NvbnNvbGUnPjwv
ZGl2PjwvYm9keT48L2h0bWw+IiwgMCk7Ci0gICAgdGVzdC0+d2FpdFVudGlsTG9hZEZpbmlzaGVk
KCk7Ci0KLSAgICBHT3duUHRyPGNoYXI+IHJlc3VsdDsKLSAgICBndWxvbmcgc2NyaXB0RGlhbG9n
SUQgPSBnX3NpZ25hbF9jb25uZWN0KHRlc3QtPm1fd2ViVmlldywgInNjcmlwdC1kaWFsb2ciLCBH
X0NBTExCQUNLKHNjcmlwdERpYWxvZ0NhbGxiYWNrKSwgJnJlc3VsdC5vdXRQdHIoKSk7Ci0KLSAg
ICBzdGF0aWMgY29uc3QgY2hhciAqbWFpbldvcmxkU2NyaXB0ID0KLSAgICAgICAgInRvcC5mb28g
PSAnRm9vJztcbiIKLSAgICAgICAgImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJyku
aW5uZXJIVE1MID0gdG9wLmZvbztcbiIKLSAgICAgICAgIndpbmRvdy5vcGVuID0gZnVuY3Rpb24g
KCkgeyBhbGVydCgnTWFpbiBXb3JsZCcpOyB9XG4iCi0gICAgICAgICJkb2N1bWVudC5vcGVuKDEs
IDIsIDMpOyI7Ci0gICAgdGVzdC0+cnVuSmF2YVNjcmlwdEFuZFdhaXRVbnRpbEZpbmlzaGVkKG1h
aW5Xb3JsZFNjcmlwdCwgMCk7Ci0gICAgZ19hc3NlcnRfY21wc3RyKHJlc3VsdC5nZXQoKSwgPT0s
ICJNYWluIFdvcmxkIik7Ci0gICAgcmVzdWx0LmNsZWFyKCk7Ci0KLSAgICBXZWJLaXRKYXZhc2Ny
aXB0UmVzdWx0KiBqYXZhc2NyaXB0UmVzdWx0ID0gdGVzdC0+cnVuSmF2YVNjcmlwdEFuZFdhaXRV
bnRpbEZpbmlzaGVkKCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmlubmVySFRN
TCIsIDApOwotICAgIGdfYXNzZXJ0KGphdmFzY3JpcHRSZXN1bHQpOwotICAgIEdPd25QdHI8Y2hh
cj4gdmFsdWVTdHJpbmcoV2ViVmlld1Rlc3Q6OmphdmFzY3JpcHRSZXN1bHRUb0NTdHJpbmcoamF2
YXNjcmlwdFJlc3VsdCkpOwotICAgIGdfYXNzZXJ0X2NtcHN0cih2YWx1ZVN0cmluZy5nZXQoKSwg
PT0sICJGb28iKTsKLQotICAgIHN0YXRpYyBjb25zdCBjaGFyICppc29sYXRlZFdvcmxkU2NyaXB0
ID0KLSAgICAgICAgImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuaW5uZXJIVE1M
ID0gdG9wLmZvbztcbiIKLSAgICAgICAgIndpbmRvdy5vcGVuID0gZnVuY3Rpb24gKCkgeyBhbGVy
dCgnSXNvbGF0ZWQgV29ybGQnKTsgfVxuIgotICAgICAgICAiZG9jdW1lbnQub3BlbigxLCAyLCAz
KTsiOwotICAgIEdSZWZQdHI8R0RCdXNQcm94eT4gcHJveHkgPSBhZG9wdEdSZWYoYnVzLT5jcmVh
dGVQcm94eSgib3JnLndlYmtpdC5ndGsuV2ViRXh0ZW5zaW9uVGVzdCIsCi0gICAgICAgICIvb3Jn
L3dlYmtpdC9ndGsvV2ViRXh0ZW5zaW9uVGVzdCIgLCAib3JnLndlYmtpdC5ndGsuV2ViRXh0ZW5z
aW9uVGVzdCIsIHRlc3QtPm1fbWFpbkxvb3ApKTsKLSAgICBnX2RidXNfcHJveHlfY2FsbChwcm94
eS5nZXQoKSwKLSAgICAgICAgIlJ1bkphdmFTY3JpcHRJbklzb2xhdGVkV29ybGQiLAotICAgICAg
ICBnX3ZhcmlhbnRfbmV3KCIodCZzKSIsIHdlYmtpdF93ZWJfdmlld19nZXRfcGFnZV9pZCh0ZXN0
LT5tX3dlYlZpZXcpLCBpc29sYXRlZFdvcmxkU2NyaXB0KSwKLSAgICAgICAgR19EQlVTX0NBTExf
RkxBR1NfTk9ORSwKLSAgICAgICAgLTEsIDAsCi0gICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8R0Fz
eW5jUmVhZHlDYWxsYmFjaz4ocnVuSmF2YVNjcmlwdEluSXNvbGF0ZWRXb3JsZEZpbmlzaGVkQ2Fs
bGJhY2spLAotICAgICAgICB0ZXN0KTsKLSAgICBnX21haW5fbG9vcF9ydW4odGVzdC0+bV9tYWlu
TG9vcCk7Ci0gICAgZ19hc3NlcnRfY21wc3RyKHJlc3VsdC5nZXQoKSwgPT0sICJJc29sYXRlZCBX
b3JsZCIpOwotICAgIHJlc3VsdC5jbGVhcigpOwotCi0gICAgLy8gQ2hlY2sgdGhhdCAndG9wLmZv
bycgZGVmaW5lZCBpbiBtYWluIHdvcmxkIGlzIG5vdCB2aXNpYmxlIGluIGlzb2xhdGVkIHdvcmxk
LgotICAgIGphdmFzY3JpcHRSZXN1bHQgPSB0ZXN0LT5ydW5KYXZhU2NyaXB0QW5kV2FpdFVudGls
RmluaXNoZWQoImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuaW5uZXJIVE1MIiwg
MCk7Ci0gICAgZ19hc3NlcnQoamF2YXNjcmlwdFJlc3VsdCk7Ci0gICAgdmFsdWVTdHJpbmcuc2V0
KFdlYlZpZXdUZXN0OjpqYXZhc2NyaXB0UmVzdWx0VG9DU3RyaW5nKGphdmFzY3JpcHRSZXN1bHQp
KTsKLSAgICBnX2Fzc2VydF9jbXBzdHIodmFsdWVTdHJpbmcuZ2V0KCksID09LCAidW5kZWZpbmVk
Iik7Ci0KLSAgICBnX3NpZ25hbF9oYW5kbGVyX2Rpc2Nvbm5lY3QodGVzdC0+bV93ZWJWaWV3LCBz
Y3JpcHREaWFsb2dJRCk7Ci19Ci0KIHZvaWQgYmVmb3JlQWxsKCkKIHsKICAgICB3ZWJraXRfd2Vi
X2NvbnRleHRfc2V0X3dlYl9leHRlbnNpb25zX2RpcmVjdG9yeSh3ZWJraXRfd2ViX2NvbnRleHRf
Z2V0X2RlZmF1bHQoKSwgV0VCS0lUX1RFU1RfV0VCX0VYVEVOU0lPTlNfRElSKTsKQEAgLTE4NSw4
ICsxMTAsNiBAQCB2b2lkIGJlZm9yZUFsbCgpCiAgICAgV2ViVmlld1Rlc3Q6OmFkZCgiV2ViS2l0
V2ViRXh0ZW5zaW9uIiwgImRvbS1kb2N1bWVudC10aXRsZSIsIHRlc3RXZWJFeHRlbnNpb25HZXRU
aXRsZSk7CiAgICAgV2ViVmlld1Rlc3Q6OmFkZCgiV2ViS2l0V2ViRXh0ZW5zaW9uIiwgImRvY3Vt
ZW50LWxvYWRlZC1zaWduYWwiLCB0ZXN0RG9jdW1lbnRMb2FkZWRTaWduYWwpOwogICAgIFdlYlZp
ZXdUZXN0OjphZGQoIldlYktpdFdlYlZpZXciLCAid2ViLXByb2Nlc3MtY3Jhc2hlZCIsIHRlc3RX
ZWJLaXRXZWJWaWV3UHJvY2Vzc0NyYXNoZWQpOwotICAgIFdlYlZpZXdUZXN0OjphZGQoIldlYktp
dFdlYkV4dGVuc2lvbiIsICJ3aW5kb3ctb2JqZWN0LWNsZWFyZWQiLCB0ZXN0V2ViRXh0ZW5zaW9u
V2luZG93T2JqZWN0Q2xlYXJlZCk7Ci0gICAgV2ViVmlld1Rlc3Q6OmFkZCgiV2ViS2l0V2ViRXh0
ZW5zaW9uIiwgImlzb2xhdGVkLXdvcmxkIiwgdGVzdFdlYkV4dGVuc2lvbklzb2xhdGVkV29ybGQp
OwogfQogCiB2b2lkIGFmdGVyQWxsKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL3Rlc3RzL1dlYkV4dGVuc2lvblRlc3QuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvV2ViRXh0ZW5zaW9uVGVzdC5jcHAKaW5kZXggYWNmZmI0
ZjdhODdkNDUwYjFiZGQ0NDU2ODYxMmE2YTQ4ZWIwZWY2Ni4uNjkyNjYzZTMzNmM4OGJkYmE1MWEx
MDJmYzJkY2MwZjFlNGE0ODliMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9ndGsvdGVzdHMvV2ViRXh0ZW5zaW9uVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvV2ViRXh0ZW5zaW9uVGVzdC5jcHAKQEAgLTE5LDE0ICsx
OSwxMiBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9KU0NvbnRleHRSZWYuaD4KLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU1JldGFpblB0ci5o
PgogI2luY2x1ZGUgPGdpby9naW8uaD4KICNpbmNsdWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlIDxz
dHJpbmcuaD4KKwogI2luY2x1ZGUgPHdlYmtpdDIvd2Via2l0LXdlYi1leHRlbnNpb24uaD4KICNp
bmNsdWRlIDx3dGYvZ29iamVjdC9HT3duUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1Jl
ZlB0ci5oPgogCiBzdGF0aWMgY29uc3QgY2hhciBpbnRyb3NwZWN0aW9uWE1MW10gPQogICAgICI8
bm9kZT4iCkBAIC0zNywxMCArMzUsNiBAQCBzdGF0aWMgY29uc3QgY2hhciBpbnRyb3NwZWN0aW9u
WE1MW10gPQogICAgICIgIDwvbWV0aG9kPiIKICAgICAiICA8bWV0aG9kIG5hbWU9J0Fib3J0UHJv
Y2Vzcyc+IgogICAgICIgIDwvbWV0aG9kPiIKLSAgICAiICA8bWV0aG9kIG5hbWU9J1J1bkphdmFT
Y3JpcHRJbklzb2xhdGVkV29ybGQnPiIKLSAgICAiICAgPGFyZyB0eXBlPSd0JyBuYW1lPSdwYWdl
SUQnIGRpcmVjdGlvbj0naW4nLz4iCi0gICAgIiAgIDxhcmcgdHlwZT0ncycgbmFtZT0nc2NyaXB0
JyBkaXJlY3Rpb249J2luJy8+IgotICAgICIgIDwvbWV0aG9kPiIKICAgICAiICA8c2lnbmFsIG5h
bWU9J0RvY3VtZW50TG9hZGVkJy8+IgogICAgICIgIDxzaWduYWwgbmFtZT0nVVJJQ2hhbmdlZCc+
IgogICAgICIgICA8YXJnIHR5cGU9J3MnIG5hbWU9J3VyaScgZGlyZWN0aW9uPSdvdXQnLz4iCkBA
IC05OSw0MSArOTMsNiBAQCBzdGF0aWMgdm9pZCBwYWdlQ3JlYXRlZENhbGxiYWNrKFdlYktpdFdl
YkV4dGVuc2lvbiosIFdlYktpdFdlYlBhZ2UqIHdlYlBhZ2UsIGdwbwogICAgIGdfc2lnbmFsX2Nv
bm5lY3Qod2ViUGFnZSwgInNlbmQtcmVxdWVzdCIsIEdfQ0FMTEJBQ0soc2VuZFJlcXVlc3RDYWxs
YmFjayksIDApOwogfQogCi1zdGF0aWMgSlNWYWx1ZVJlZiBlY2hvQ2FsbGJhY2soSlNDb250ZXh0
UmVmIGpzQ29udGV4dCwgSlNPYmplY3RSZWYsIEpTT2JqZWN0UmVmLCBzaXplX3QgYXJndW1lbnRD
b3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiopCi17Ci0gICAg
aWYgKGFyZ3VtZW50Q291bnQgPD0gMCkKLSAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZp
bmVkKGpzQ29udGV4dCk7Ci0KLSAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gc3RyaW5nKEFk
b3B0LCBKU1ZhbHVlVG9TdHJpbmdDb3B5KGpzQ29udGV4dCwgYXJndW1lbnRzWzBdLCAwKSk7Ci0g
ICAgcmV0dXJuIEpTVmFsdWVNYWtlU3RyaW5nKGpzQ29udGV4dCwgc3RyaW5nLmdldCgpKTsKLX0K
LQotc3RhdGljIHZvaWQgd2luZG93T2JqZWN0Q2xlYXJlZChXZWJLaXRTY3JpcHRXb3JsZCogd29y
bGQsIFdlYktpdFdlYlBhZ2UqIHBhZ2UsIFdlYktpdEZyYW1lKiBmcmFtZSwgZ3BvaW50ZXIpCi17
Ci0gICAgSlNHbG9iYWxDb250ZXh0UmVmIGpzQ29udGV4dCA9IHdlYmtpdF9mcmFtZV9nZXRfamF2
YXNjcmlwdF9jb250ZXh0X2Zvcl9zY3JpcHRfd29ybGQoZnJhbWUsIHdvcmxkKTsKLSAgICBnX2Fz
c2VydChqc0NvbnRleHQpOwotICAgIEpTT2JqZWN0UmVmIGdsb2JhbE9iamVjdCA9IEpTQ29udGV4
dEdldEdsb2JhbE9iamVjdChqc0NvbnRleHQpOwotICAgIGdfYXNzZXJ0KGdsb2JhbE9iamVjdCk7
Ci0KLSAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gZnVuY3Rpb25OYW1lKEFkb3B0LCBKU1N0
cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiZWNobyIpKTsKLSAgICBKU09iamVjdFJlZiBmdW5j
dGlvbiA9IEpTT2JqZWN0TWFrZUZ1bmN0aW9uV2l0aENhbGxiYWNrKGpzQ29udGV4dCwgZnVuY3Rp
b25OYW1lLmdldCgpLCBlY2hvQ2FsbGJhY2spOwotICAgIEpTT2JqZWN0U2V0UHJvcGVydHkoanND
b250ZXh0LCBnbG9iYWxPYmplY3QsIGZ1bmN0aW9uTmFtZS5nZXQoKSwgZnVuY3Rpb24sIGtKU1By
b3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHks
IDApOwotfQotCi1zdGF0aWMgV2ViS2l0V2ViUGFnZSogZ2V0V2ViUGFnZShXZWJLaXRXZWJFeHRl
bnNpb24qIGV4dGVuc2lvbiwgdWludDY0X3QgcGFnZUlELCBHREJ1c01ldGhvZEludm9jYXRpb24q
IGludm9jYXRpb24pCi17Ci0gICAgV2ViS2l0V2ViUGFnZSogcGFnZSA9IHdlYmtpdF93ZWJfZXh0
ZW5zaW9uX2dldF9wYWdlKGV4dGVuc2lvbiwgcGFnZUlEKTsKLSAgICBpZiAoIXBhZ2UpIHsKLSAg
ICAgICAgZ19kYnVzX21ldGhvZF9pbnZvY2F0aW9uX3JldHVybl9lcnJvcigKLSAgICAgICAgICAg
IGludm9jYXRpb24sIEdfREJVU19FUlJPUiwgR19EQlVTX0VSUk9SX0lOVkFMSURfQVJHUywKLSAg
ICAgICAgICAgICJJbnZhbGlkIHBhZ2UgSUQ6ICUiIEdfR1VJTlQ2NF9GT1JNQVQsIHBhZ2VJRCk7
Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIGdfYXNzZXJ0X2NtcHVpbnQod2Via2l0
X3dlYl9wYWdlX2dldF9pZChwYWdlKSwgPT0sIHBhZ2VJRCk7Ci0gICAgcmV0dXJuIHBhZ2U7Ci19
Ci0KIHN0YXRpYyB2b2lkIG1ldGhvZENhbGxDYWxsYmFjayhHREJ1c0Nvbm5lY3Rpb24qIGNvbm5l
Y3Rpb24sIGNvbnN0IGNoYXIqIHNlbmRlciwgY29uc3QgY2hhciogb2JqZWN0UGF0aCwgY29uc3Qg
Y2hhciogaW50ZXJmYWNlTmFtZSwgY29uc3QgY2hhciogbWV0aG9kTmFtZSwgR1ZhcmlhbnQqIHBh
cmFtZXRlcnMsIEdEQnVzTWV0aG9kSW52b2NhdGlvbiogaW52b2NhdGlvbiwgZ3BvaW50ZXIgdXNl
ckRhdGEpCiB7CiAgICAgaWYgKGdfc3RyY21wMChpbnRlcmZhY2VOYW1lLCAib3JnLndlYmtpdC5n
dGsuV2ViRXh0ZW5zaW9uVGVzdCIpKQpAQCAtMTQyLDI4ICsxMDEsMjAgQEAgc3RhdGljIHZvaWQg
bWV0aG9kQ2FsbENhbGxiYWNrKEdEQnVzQ29ubmVjdGlvbiogY29ubmVjdGlvbiwgY29uc3QgY2hh
ciogc2VuZGVyLAogICAgIGlmICghZ19zdHJjbXAwKG1ldGhvZE5hbWUsICJHZXRUaXRsZSIpKSB7
CiAgICAgICAgIHVpbnQ2NF90IHBhZ2VJRDsKICAgICAgICAgZ192YXJpYW50X2dldChwYXJhbWV0
ZXJzLCAiKHQpIiwgJnBhZ2VJRCk7Ci0gICAgICAgIFdlYktpdFdlYlBhZ2UqIHBhZ2UgPSBnZXRX
ZWJQYWdlKFdFQktJVF9XRUJfRVhURU5TSU9OKHVzZXJEYXRhKSwgcGFnZUlELCBpbnZvY2F0aW9u
KTsKLSAgICAgICAgaWYgKCFwYWdlKQorCisgICAgICAgIFdlYktpdFdlYkV4dGVuc2lvbiogZXh0
ZW5zaW9uID0gV0VCS0lUX1dFQl9FWFRFTlNJT04odXNlckRhdGEpOworICAgICAgICBXZWJLaXRX
ZWJQYWdlKiBwYWdlID0gd2Via2l0X3dlYl9leHRlbnNpb25fZ2V0X3BhZ2UoZXh0ZW5zaW9uLCBw
YWdlSUQpOworICAgICAgICBpZiAoIXBhZ2UpIHsKKyAgICAgICAgICAgIGdfZGJ1c19tZXRob2Rf
aW52b2NhdGlvbl9yZXR1cm5fZXJyb3IoCisgICAgICAgICAgICAgICAgaW52b2NhdGlvbiwgR19E
QlVTX0VSUk9SLCBHX0RCVVNfRVJST1JfSU5WQUxJRF9BUkdTLAorICAgICAgICAgICAgICAgICJJ
bnZhbGlkIHBhZ2UgSUQ6ICUiIEdfR1VJTlQ2NF9GT1JNQVQsIHBhZ2VJRCk7CiAgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgZ19hc3NlcnRfY21wdWludCh3ZWJraXRfd2Vi
X3BhZ2VfZ2V0X2lkKHBhZ2UpLCA9PSwgcGFnZUlEKTsKIAogICAgICAgICBXZWJLaXRET01Eb2N1
bWVudCogZG9jdW1lbnQgPSB3ZWJraXRfd2ViX3BhZ2VfZ2V0X2RvbV9kb2N1bWVudChwYWdlKTsK
ICAgICAgICAgR093blB0cjxjaGFyPiB0aXRsZSh3ZWJraXRfZG9tX2RvY3VtZW50X2dldF90aXRs
ZShkb2N1bWVudCkpOwogICAgICAgICBnX2RidXNfbWV0aG9kX2ludm9jYXRpb25fcmV0dXJuX3Zh
bHVlKGludm9jYXRpb24sIGdfdmFyaWFudF9uZXcoIihzKSIsIHRpdGxlLmdldCgpKSk7Ci0gICAg
fSBlbHNlIGlmICghZ19zdHJjbXAwKG1ldGhvZE5hbWUsICJSdW5KYXZhU2NyaXB0SW5Jc29sYXRl
ZFdvcmxkIikpIHsKLSAgICAgICAgdWludDY0X3QgcGFnZUlEOwotICAgICAgICBjb25zdCBjaGFy
KiBzY3JpcHQ7Ci0gICAgICAgIGdfdmFyaWFudF9nZXQocGFyYW1ldGVycywgIih0JnMpIiwgJnBh
Z2VJRCwgJnNjcmlwdCk7Ci0gICAgICAgIFdlYktpdFdlYlBhZ2UqIHBhZ2UgPSBnZXRXZWJQYWdl
KFdFQktJVF9XRUJfRVhURU5TSU9OKHVzZXJEYXRhKSwgcGFnZUlELCBpbnZvY2F0aW9uKTsKLSAg
ICAgICAgaWYgKCFwYWdlKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIEdSZWZQdHI8
V2ViS2l0U2NyaXB0V29ybGQ+IHdvcmxkID0gYWRvcHRHUmVmKHdlYmtpdF9zY3JpcHRfd29ybGRf
bmV3KCkpOwotICAgICAgICBnX2Fzc2VydCh3ZWJraXRfc2NyaXB0X3dvcmxkX2dldF9kZWZhdWx0
KCkgIT0gd29ybGQuZ2V0KCkpOwotICAgICAgICBXZWJLaXRGcmFtZSogZnJhbWUgPSB3ZWJraXRf
d2ViX3BhZ2VfZ2V0X21haW5fZnJhbWUocGFnZSk7Ci0gICAgICAgIEpTR2xvYmFsQ29udGV4dFJl
ZiBqc0NvbnRleHQgPSB3ZWJraXRfZnJhbWVfZ2V0X2phdmFzY3JpcHRfY29udGV4dF9mb3Jfc2Ny
aXB0X3dvcmxkKGZyYW1lLCB3b3JsZC5nZXQoKSk7Ci0gICAgICAgIEpTUmV0YWluUHRyPEpTU3Ry
aW5nUmVmPiBqc1NjcmlwdChBZG9wdCwgSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoc2Ny
aXB0KSk7Ci0gICAgICAgIEpTRXZhbHVhdGVTY3JpcHQoanNDb250ZXh0LCBqc1NjcmlwdC5nZXQo
KSwgMCwgMCwgMCwgMCk7Ci0gICAgICAgIGdfZGJ1c19tZXRob2RfaW52b2NhdGlvbl9yZXR1cm5f
dmFsdWUoaW52b2NhdGlvbiwgMCk7CiAgICAgfSBlbHNlIGlmICghZ19zdHJjbXAwKG1ldGhvZE5h
bWUsICJBYm9ydFByb2Nlc3MiKSkgewogICAgICAgICBhYm9ydCgpOwogICAgIH0KQEAgLTE5Miw3
ICsxNDMsNiBAQCBzdGF0aWMgdm9pZCBidXNBY3F1aXJlZENhbGxiYWNrKEdEQnVzQ29ubmVjdGlv
biogY29ubmVjdGlvbiwgY29uc3QgY2hhciogbmFtZSwgZwogICAgICAgICBnX3dhcm5pbmcoIkZh
aWxlZCB0byByZWdpc3RlciBvYmplY3Q6ICVzXG4iLCBlcnJvci0+bWVzc2FnZSk7CiAKICAgICBn
X3NpZ25hbF9jb25uZWN0KFdFQktJVF9XRUJfRVhURU5TSU9OKHVzZXJEYXRhKSwgInBhZ2UtY3Jl
YXRlZCIsIEdfQ0FMTEJBQ0socGFnZUNyZWF0ZWRDYWxsYmFjayksIGNvbm5lY3Rpb24pOwotICAg
IGdfc2lnbmFsX2Nvbm5lY3Qod2Via2l0X3NjcmlwdF93b3JsZF9nZXRfZGVmYXVsdCgpLCAid2lu
ZG93LW9iamVjdC1jbGVhcmVkIiwgR19DQUxMQkFDSyh3aW5kb3dPYmplY3RDbGVhcmVkKSwgMCk7
CiB9CiAKIGV4dGVybiAiQyIgdm9pZCB3ZWJraXRfd2ViX2V4dGVuc2lvbl9pbml0aWFsaXplKFdl
YktpdFdlYkV4dGVuc2lvbiogZXh0ZW5zaW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdEZyYW1lLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRGcmFtZS5j
cHAKaW5kZXggMTY5MTU4N2FhMmNjYzE0MjYxY2JiZGQwOGY4MjgwZTYwODNkODkxMi4uYThiMjFm
Nzk3NjQ0ZDI5NDgwOWFlZmUzNTY2ZTAyZDkwMmFmZTdhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdEZyYW1lLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2Vi
S2l0RnJhbWUuY3BwCkBAIC0yMiw3ICsyMiw2IEBACiAKICNpbmNsdWRlICJXZWJLaXRGcmFtZVBy
aXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRQcml2YXRlLmgiCi0jaW5jbHVkZSAiV2ViS2l0U2Ny
aXB0V29ybGRQcml2YXRlLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiB1c2lu
ZyBuYW1lc3BhY2UgV2ViS2l0OwpAQCAtMTAyLDIyICsxMDEsMyBAQCBKU0dsb2JhbENvbnRleHRS
ZWYgd2Via2l0X2ZyYW1lX2dldF9qYXZhc2NyaXB0X2dsb2JhbF9jb250ZXh0KFdlYktpdEZyYW1l
KiBmcmFtZQogCiAgICAgcmV0dXJuIGZyYW1lLT5wcml2LT53ZWJGcmFtZS0+anNDb250ZXh0KCk7
CiB9Ci0KLS8qKgotICogd2Via2l0X2ZyYW1lX2dldF9qYXZhc2NyaXB0X2NvbnRleHRfZm9yX3Nj
cmlwdF93b3JsZDoKLSAqIEBmcmFtZTogYSAjV2ViS2l0RnJhbWUKLSAqIEB3b3JsZDogYSAjV2Vi
S2l0U2NyaXB0V29ybGQKLSAqCi0gKiBHZXRzIHRoZSBKYXZhU2NyaXB0IGV4ZWN1dGlvbiBjb250
ZXh0IG9mIEBmcmFtZSBmb3IgdGhlIGdpdmVuICNXZWJLaXRTY3JpcHRXb3JsZC4KLSAqCi0gKiBS
ZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IHRoZSBKYXZhU2NyaXB0IGNvbnRleHQgb2YgQGZyYW1l
IGZvciBAd29ybGQKLSAqCi0gKiBTaW5jZTogMi4yCi0gKi8KLUpTR2xvYmFsQ29udGV4dFJlZiB3
ZWJraXRfZnJhbWVfZ2V0X2phdmFzY3JpcHRfY29udGV4dF9mb3Jfc2NyaXB0X3dvcmxkKFdlYktp
dEZyYW1lKiBmcmFtZSwgV2ViS2l0U2NyaXB0V29ybGQqIHdvcmxkKQotewotICAgIGdfcmV0dXJu
X3ZhbF9pZl9mYWlsKFdFQktJVF9JU19GUkFNRShmcmFtZSksIDApOwotICAgIGdfcmV0dXJuX3Zh
bF9pZl9mYWlsKFdFQktJVF9JU19TQ1JJUFRfV09STEQod29ybGQpLCAwKTsKLQotICAgIHJldHVy
biBmcmFtZS0+cHJpdi0+d2ViRnJhbWUtPmpzQ29udGV4dEZvcldvcmxkKHdlYmtpdFNjcmlwdFdv
cmxkR2V0SW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZCh3b3JsZCkpOwotfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdEZy
YW1lLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
V2ViS2l0RnJhbWUuaAppbmRleCA1MDU5MzAwZjczYTAzN2Q1OWMzYmQ1YmVmZWI3NzFiOWZhOGE2
ZWVmLi5lMzQ1YzVjMWFjNzQ1OGRlZjVmZGUwMGM0ZWY1MThhMjg3MWVlYTE2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0
RnJhbWUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvV2ViS2l0RnJhbWUuaApAQCAtMjcsNyArMjcsNiBAQAogI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0pTQmFzZS5oPgogI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+CiAjaW5jbHVkZSA8d2Vi
a2l0Mi9XZWJLaXREZWZpbmVzLmg+Ci0jaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRTY3JpcHRXb3Js
ZC5oPgogCiBHX0JFR0lOX0RFQ0xTCiAKQEAgLTUzLDIwICs1MiwxNiBAQCBzdHJ1Y3QgX1dlYktp
dEZyYW1lQ2xhc3MgewogfTsKIAogV0VCS0lUX0FQSSBHVHlwZQotd2Via2l0X2ZyYW1lX2dldF90
eXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCk7Cit3ZWJraXRfZnJhbWVf
Z2V0X3R5cGUgICAgICAgICAgICAgICAgICAgICAgKHZvaWQpOwogCiBXRUJLSVRfQVBJIGdib29s
ZWFuCi13ZWJraXRfZnJhbWVfaXNfbWFpbl9mcmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAg
IChXZWJLaXRGcmFtZSAgICAgICAqZnJhbWUpOword2Via2l0X2ZyYW1lX2lzX21haW5fZnJhbWUg
ICAgICAgICAgICAgICAgIChXZWJLaXRGcmFtZSAqZnJhbWUpOwogCiBXRUJLSVRfQVBJIGNvbnN0
IGdjaGFyICoKLXdlYmtpdF9mcmFtZV9nZXRfdXJpICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKFdlYktpdEZyYW1lICAgICAgICpmcmFtZSk7Cit3ZWJraXRfZnJhbWVfZ2V0X3VyaSAg
ICAgICAgICAgICAgICAgICAgICAgKFdlYktpdEZyYW1lICpmcmFtZSk7CiAKIFdFQktJVF9BUEkg
SlNHbG9iYWxDb250ZXh0UmVmCi13ZWJraXRfZnJhbWVfZ2V0X2phdmFzY3JpcHRfZ2xvYmFsX2Nv
bnRleHQgICAgICAgICAgIChXZWJLaXRGcmFtZSAgICAgICAqZnJhbWUpOwotCi1XRUJLSVRfQVBJ
IEpTR2xvYmFsQ29udGV4dFJlZgotd2Via2l0X2ZyYW1lX2dldF9qYXZhc2NyaXB0X2NvbnRleHRf
Zm9yX3NjcmlwdF93b3JsZCAoV2ViS2l0RnJhbWUgICAgICAgKmZyYW1lLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0U2NyaXB0V29y
bGQgKndvcmxkKTsKK3dlYmtpdF9mcmFtZV9nZXRfamF2YXNjcmlwdF9nbG9iYWxfY29udGV4dCAo
V2ViS2l0RnJhbWUgKmZyYW1lKTsKIAogR19FTkRfREVDTFMKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFNjcmlwdFdv
cmxkLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9XZWJLaXRTY3JpcHRXb3JsZC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRj
MDk1ZTBkN2E5MDBiNGQ2ZmM3OWUxNzVjMmM3ODA5ZjNkZWY2YzEuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFNjcmlwdFdvcmxkLmNwcAorKysgL2Rldi9udWxs
CkBAIC0xLDE1MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIElnYWxpYSBTLkwu
Ci0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExl
c3NlciBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIsMSBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
LSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqLwot
Ci0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV2ViS2l0U2NyaXB0V29ybGQuaCIKLQot
I2luY2x1ZGUgIldlYktpdE1hcnNoYWwuaCIKLSNpbmNsdWRlICJXZWJLaXRQcml2YXRlLmgiCi0j
aW5jbHVkZSAiV2ViS2l0U2NyaXB0V29ybGRQcml2YXRlLmgiCi0jaW5jbHVkZSA8d3RmL0hhc2hN
YXAuaD4KLSNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KLQotdXNpbmcgbmFtZXNwYWNl
IFdlYktpdDsKLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1lbnVtIHsKLSAgICBXSU5ET1df
T0JKRUNUX0NMRUFSRUQsCi0KLSAgICBMQVNUX1NJR05BTAotfTsKLQotdHlwZWRlZiBIYXNoTWFw
PEluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQqLCBXZWJLaXRTY3JpcHRXb3JsZCo+IFNjcmlwdFdv
cmxkTWFwOwotCi1zdGF0aWMgU2NyaXB0V29ybGRNYXAmIHNjcmlwdFdvcmxkcygpCi17Ci0gICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPFNjcmlwdFdvcmxkTWFwPiBtYXA7Ci0gICAgcmV0dXJuIG1h
cDsKLX0KLQotc3RydWN0IF9XZWJLaXRTY3JpcHRXb3JsZFByaXZhdGUgewotICAgIH5fV2ViS2l0
U2NyaXB0V29ybGRQcml2YXRlKCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChzY3JpcHRXb3JsZHMo
KS5jb250YWlucyhzY3JpcHRXb3JsZC5nZXQoKSkpOwotICAgICAgICBzY3JpcHRXb3JsZHMoKS5y
ZW1vdmUoc2NyaXB0V29ybGQuZ2V0KCkpOwotICAgIH0KLQotICAgIFJlZlB0cjxJbmplY3RlZEJ1
bmRsZVNjcmlwdFdvcmxkPiBzY3JpcHRXb3JsZDsKLX07Ci0KLXN0YXRpYyBndWludCBzaWduYWxz
W0xBU1RfU0lHTkFMXSA9IHsgMCwgfTsKLQotV0VCS0lUX0RFRklORV9UWVBFKFdlYktpdFNjcmlw
dFdvcmxkLCB3ZWJraXRfc2NyaXB0X3dvcmxkLCBHX1RZUEVfT0JKRUNUKQotCi1zdGF0aWMgdm9p
ZCB3ZWJraXRfc2NyaXB0X3dvcmxkX2NsYXNzX2luaXQoV2ViS2l0U2NyaXB0V29ybGRDbGFzcyog
a2xhc3MpCi17Ci0gICAgLyoqCi0gICAgICogV2ViS2l0U2NyaXB0V29ybGQ6OndpbmRvdy1vYmpl
Y3QtY2xlYXJlZDoKLSAgICAgKiBAd29ybGQ6IHRoZSAjV2ViS2l0U2NyaXB0V29ybGQgb24gd2hp
Y2ggdGhlIHNpZ25hbCBpcyBlbWl0dGVkCi0gICAgICogQHBhZ2U6IGEgI1dlYktpdFdlYlBhZ2UK
LSAgICAgKiBAZnJhbWU6IHRoZSAjV2ViS2l0RnJhbWUgIHRvIHdoaWNoIEB3b3JsZCBiZWxvbmdz
Ci0gICAgICoKLSAgICAgKiBFbWl0dGVkIHdoZW4gdGhlIEphdmFTY3JpcHQgd2luZG93IG9iamVj
dCBpbiBhICNXZWJLaXRTY3JpcHRXb3JsZCBoYXMgYmVlbgotICAgICAqIGNsZWFyZWQuIFRoaXMg
aXMgdGhlIHByZWZlcnJlZCBwbGFjZSB0byBzZXQgY3VzdG9tIHByb3BlcnRpZXMgb24gdGhlIHdp
bmRvdwotICAgICAqIG9iamVjdCB1c2luZyB0aGUgSmF2YVNjcmlwdENvcmUgQVBJLiBZb3UgY2Fu
IGdldCB0aGUgd2luZG93IG9iamVjdCBvZiBAZnJhbWUKLSAgICAgKiBmcm9tIHRoZSBKYXZhU2Ny
aXB0IGV4ZWN1dGlvbiBjb250ZXh0IG9mIEB3b3JsZCB0aGF0IGlzIHJldHVybmVkIGJ5Ci0gICAg
ICogd2Via2l0X2ZyYW1lX2dldF9qYXZhc2NyaXB0X2NvbnRleHRfZm9yX3NjcmlwdF93b3JsZCgp
LgotICAgICAqCi0gICAgICogU2luY2U6IDIuMgotICAgICAqLwotICAgIHNpZ25hbHNbV0lORE9X
X09CSkVDVF9DTEVBUkVEXSA9IGdfc2lnbmFsX25ldygKLSAgICAgICAgIndpbmRvdy1vYmplY3Qt
Y2xlYXJlZCIsCi0gICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTKGtsYXNzKSwKLSAgICAgICAgR19T
SUdOQUxfUlVOX0xBU1QsCi0gICAgICAgIDAsIDAsIDAsCi0gICAgICAgIHdlYmtpdF9tYXJzaGFs
X1ZPSURfX09CSkVDVF9PQkpFQ1QsCi0gICAgICAgIEdfVFlQRV9OT05FLCAyLAotICAgICAgICBX
RUJLSVRfVFlQRV9XRUJfUEFHRSwKLSAgICAgICAgV0VCS0lUX1RZUEVfRlJBTUUpOwotfQotCi1X
ZWJLaXRTY3JpcHRXb3JsZCogd2Via2l0U2NyaXB0V29ybGRHZXQoSW5qZWN0ZWRCdW5kbGVTY3Jp
cHRXb3JsZCogc2NyaXB0V29ybGQpCi17Ci0gICAgcmV0dXJuIHNjcmlwdFdvcmxkcygpLmdldChz
Y3JpcHRXb3JsZCk7Ci19Ci0KLUluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQqIHdlYmtpdFNjcmlw
dFdvcmxkR2V0SW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZChXZWJLaXRTY3JpcHRXb3JsZCogd29y
bGQpCi17Ci0gICAgcmV0dXJuIHdvcmxkLT5wcml2LT5zY3JpcHRXb3JsZC5nZXQoKTsKLX0KLQot
dm9pZCB3ZWJraXRTY3JpcHRXb3JsZFdpbmRvd09iamVjdENsZWFyZWQoV2ViS2l0U2NyaXB0V29y
bGQqIHdvcmxkLCBXZWJLaXRXZWJQYWdlKiBwYWdlLCBXZWJLaXRGcmFtZSogZnJhbWUpCi17Ci0g
ICAgZ19zaWduYWxfZW1pdCh3b3JsZCwgc2lnbmFsc1tXSU5ET1dfT0JKRUNUX0NMRUFSRURdLCAw
LCBwYWdlLCBmcmFtZSk7Ci19Ci0KLXN0YXRpYyBXZWJLaXRTY3JpcHRXb3JsZCogd2Via2l0U2Ny
aXB0V29ybGRDcmVhdGUoUGFzc1JlZlB0cjxJbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkPiBzY3Jp
cHRXb3JsZCkKLXsKLSAgICBXZWJLaXRTY3JpcHRXb3JsZCogd29ybGQgPSBXRUJLSVRfU0NSSVBU
X1dPUkxEKGdfb2JqZWN0X25ldyhXRUJLSVRfVFlQRV9TQ1JJUFRfV09STEQsIE5VTEwpKTsKLSAg
ICB3b3JsZC0+cHJpdi0+c2NyaXB0V29ybGQgPSBzY3JpcHRXb3JsZDsKLQotICAgIEFTU0VSVCgh
c2NyaXB0V29ybGRzKCkuY29udGFpbnMod29ybGQtPnByaXYtPnNjcmlwdFdvcmxkLmdldCgpKSk7
Ci0gICAgc2NyaXB0V29ybGRzKCkuYWRkKHdvcmxkLT5wcml2LT5zY3JpcHRXb3JsZC5nZXQoKSwg
d29ybGQpOwotCi0gICAgcmV0dXJuIHdvcmxkOwotfQotCi1zdGF0aWMgZ3BvaW50ZXIgY3JlYXRl
RGVmYXVsdFNjcmlwdFdvcmxkKGdwb2ludGVyKQotewotICAgIHJldHVybiB3ZWJraXRTY3JpcHRX
b3JsZENyZWF0ZShJbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkOjpub3JtYWxXb3JsZCgpKTsKLX0K
LQotLyoqCi0gKiB3ZWJraXRfc2NyaXB0X3dvcmxkX2dldF9kZWZhdWx0OgotICoKLSAqIEdldCB0
aGUgZGVmYXVsdCAjV2ViS2l0U2NyaXB0V29ybGQuIFRoaXMgaXMgdGhlIG5vcm1hbCBzY3JpcHQg
d29ybGQKLSAqIHdoZXJlIGFsbCBzY3JpcHRzIGFyZSBleGVjdXRlZCBieSBkZWZhdWx0LgotICog
WW91IGNhbiBnZXQgdGhlIEphdmFTY3JpcHQgZXhlY3V0aW9uIGNvbnRleHQgb2YgYSAjV2ViS2l0
U2NyaXB0V29ybGQKLSAqIGZvciBhIGdpdmVuICNXZWJLaXRGcmFtZSB3aXRoIHdlYmtpdF9mcmFt
ZV9nZXRfamF2YXNjcmlwdF9jb250ZXh0X2Zvcl9zY3JpcHRfd29ybGQoKS4KLSAqCi0gKiBSZXR1
cm5zOiAodHJhbnNmZXIgbm9uZSk6IHRoZSBkZWZhdWx0ICNXZWJLaXRTY3JpcHRXb3JsZAotICoK
LSAqIFNpbmNlOiAyLjIKLSAqLwotV2ViS2l0U2NyaXB0V29ybGQqIHdlYmtpdF9zY3JpcHRfd29y
bGRfZ2V0X2RlZmF1bHQodm9pZCkKLXsKLSAgICBzdGF0aWMgR09uY2Ugb25jZUluaXQgPSBHX09O
Q0VfSU5JVDsKLSAgICByZXR1cm4gV0VCS0lUX1NDUklQVF9XT1JMRChnX29uY2UoJm9uY2VJbml0
LCBjcmVhdGVEZWZhdWx0U2NyaXB0V29ybGQsIDApKTsKLX0KLQotLyoqCi0gKiB3ZWJraXRfc2Ny
aXB0X3dvcmxkX25ldzoKLSAqCi0gKiBDcmVhdGVzIGEgbmV3IGlzb2xhdGVkICNXZWJLaXRTY3Jp
cHRXb3JsZC4gU2NyaXB0cyBleGVjdXRlZCBpbgotICogaXNvbGF0ZWQgd29ybGRzIGhhdmUgYWNj
ZXNzIHRvIHRoZSBET00gYnV0IG5vdCB0byBvdGhlciB2YXJpYWJsZQotICogb3IgZnVuY3Rpb25z
IGNyZWF0ZWQgYnkgdGhlIHBhZ2UuCi0gKiBZb3UgY2FuIGdldCB0aGUgSmF2YVNjcmlwdCBleGVj
dXRpb24gY29udGV4dCBvZiBhICNXZWJLaXRTY3JpcHRXb3JsZAotICogZm9yIGEgZ2l2ZW4gI1dl
YktpdEZyYW1lIHdpdGggd2Via2l0X2ZyYW1lX2dldF9qYXZhc2NyaXB0X2NvbnRleHRfZm9yX3Nj
cmlwdF93b3JsZCgpLgotICoKLSAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogYSBuZXcgaXNv
bGF0ZWQgI1dlYktpdFNjcmlwdFdvcmxkCi0gKgotICogU2luY2U6IDIuMgotICovCi1XZWJLaXRT
Y3JpcHRXb3JsZCogd2Via2l0X3NjcmlwdF93b3JsZF9uZXcodm9pZCkKLXsKLSAgICByZXR1cm4g
d2Via2l0U2NyaXB0V29ybGRDcmVhdGUoSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZDo6Y3JlYXRl
KCkpOwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL1dlYktpdFNjcmlwdFdvcmxkLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0U2NyaXB0V29ybGQuaApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggY2IwNjczZTFkYzNiNzUyZTFiZWI0NWMyNTViMDAxYmVmMjAy
YmMxOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0U2NyaXB0
V29ybGQuaAorKysgL2Rldi9udWxsCkBAIC0xLDY5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTMgSWdhbGlhIFMuTC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNp
b24gMiwxIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcu
TElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIx
MTAtMTMwMSwgVVNBLgotICovCi0KLSNpZiAhZGVmaW5lZChfX1dFQktJVF9XRUJfRVhURU5TSU9O
X0hfSU5TSURFX18pICYmICFkZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJT04pCi0jZXJyb3IgIk9u
bHkgPHdlYmtpdDIvd2Via2l0LXdlYi1leHRlbnNpb24uaD4gY2FuIGJlIGluY2x1ZGVkIGRpcmVj
dGx5LiIKLSNlbmRpZgotCi0jaWZuZGVmIFdlYktpdFNjcmlwdFdvcmxkX2gKLSNkZWZpbmUgV2Vi
S2l0U2NyaXB0V29ybGRfaAotCi0jaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KLSNpbmNsdWRlIDx3
ZWJraXQyL1dlYktpdERlZmluZXMuaD4KLQotR19CRUdJTl9ERUNMUwotCi0jZGVmaW5lIFdFQktJ
VF9UWVBFX1NDUklQVF9XT1JMRCAgICAgICAgICAgICh3ZWJraXRfc2NyaXB0X3dvcmxkX2dldF90
eXBlKCkpCi0jZGVmaW5lIFdFQktJVF9TQ1JJUFRfV09STEQob2JqKSAgICAgICAgICAgIChHX1RZ
UEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCgob2JqKSwgV0VCS0lUX1RZUEVfU0NSSVBUX1dPUkxELCBX
ZWJLaXRTY3JpcHRXb3JsZCkpCi0jZGVmaW5lIFdFQktJVF9JU19TQ1JJUFRfV09STEQob2JqKSAg
ICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwgV0VCS0lUX1RZUEVfU0NS
SVBUX1dPUkxEKSkKLSNkZWZpbmUgV0VCS0lUX1NDUklQVF9XT1JMRF9DTEFTUyhrbGFzcykgICAg
KEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrbGFzcyksICBXRUJLSVRfVFlQRV9TQ1JJUFRfV09S
TEQsIFdlYktpdFNjcmlwdFdvcmxkQ2xhc3MpKQotI2RlZmluZSBXRUJLSVRfSVNfU0NSSVBUX1dP
UkxEX0NMQVNTKGtsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUoKGtsYXNzKSwgIFdFQktJ
VF9UWVBFX1NDUklQVF9XT1JMRCkpCi0jZGVmaW5lIFdFQktJVF9TQ1JJUFRfV09STERfR0VUX0NM
QVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgV0VCS0lUX1RZUEVf
U0NSSVBUX1dPUkxELCBXZWJLaXRTY3JpcHRXb3JsZENsYXNzKSkKLQotdHlwZWRlZiBzdHJ1Y3Qg
X1dlYktpdFNjcmlwdFdvcmxkICAgICAgICBXZWJLaXRTY3JpcHRXb3JsZDsKLXR5cGVkZWYgc3Ry
dWN0IF9XZWJLaXRTY3JpcHRXb3JsZENsYXNzICAgV2ViS2l0U2NyaXB0V29ybGRDbGFzczsKLXR5
cGVkZWYgc3RydWN0IF9XZWJLaXRTY3JpcHRXb3JsZFByaXZhdGUgV2ViS2l0U2NyaXB0V29ybGRQ
cml2YXRlOwotCi1zdHJ1Y3QgX1dlYktpdFNjcmlwdFdvcmxkIHsKLSAgICBHT2JqZWN0IHBhcmVu
dDsKLQotICAgIFdlYktpdFNjcmlwdFdvcmxkUHJpdmF0ZSAqcHJpdjsKLX07Ci0KLXN0cnVjdCBf
V2ViS2l0U2NyaXB0V29ybGRDbGFzcyB7Ci0gICAgR09iamVjdENsYXNzIHBhcmVudF9jbGFzczsK
LQotICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMCkgKHZvaWQpOwotICAgIHZvaWQgKCpfd2Vi
a2l0X3Jlc2VydmVkMSkgKHZvaWQpOwotICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMikgKHZv
aWQpOwotICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMykgKHZvaWQpOwotfTsKLQotV0VCS0lU
X0FQSSBHVHlwZQotd2Via2l0X3NjcmlwdF93b3JsZF9nZXRfdHlwZSAgICAodm9pZCk7Ci0KLVdF
QktJVF9BUEkgV2ViS2l0U2NyaXB0V29ybGQgKgotd2Via2l0X3NjcmlwdF93b3JsZF9nZXRfZGVm
YXVsdCAodm9pZCk7Ci0KLVdFQktJVF9BUEkgV2ViS2l0U2NyaXB0V29ybGQgKgotd2Via2l0X3Nj
cmlwdF93b3JsZF9uZXcgICAgICAgICAodm9pZCk7Ci0KLUdfRU5EX0RFQ0xTCi0KLSNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL1dlYktpdFNjcmlwdFdvcmxkUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFNjcmlwdFdvcmxkUHJpdmF0ZS5oCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZjNjM2ZmNTliN2VjZmY5ZTkzM2MxNjE3NzI3OGIz
N2EwNTY0YmUyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRT
Y3JpcHRXb3JsZFByaXZhdGUuaAorKysgL2Rldi9udWxsCkBAIC0xLDMyICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTMgSWdhbGlhIFMuTC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICog
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAq
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAq
IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZp
bGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9z
dG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKi8KLQotI2lmbmRlZiBXZWJLaXRTY3JpcHRXb3Js
ZFByaXZhdGVfaAotI2RlZmluZSBXZWJLaXRTY3JpcHRXb3JsZFByaXZhdGVfaAotCi0jaW5jbHVk
ZSAiSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZC5oIgotI2luY2x1ZGUgIldlYktpdEZyYW1lLmgi
Ci0jaW5jbHVkZSAiV2ViS2l0U2NyaXB0V29ybGQuaCIKLSNpbmNsdWRlICJXZWJLaXRXZWJQYWdl
LmgiCi0KLVdlYktpdFNjcmlwdFdvcmxkKiB3ZWJraXRTY3JpcHRXb3JsZEdldChXZWJLaXQ6Oklu
amVjdGVkQnVuZGxlU2NyaXB0V29ybGQqKTsKLXZvaWQgd2Via2l0U2NyaXB0V29ybGRXaW5kb3dP
YmplY3RDbGVhcmVkKFdlYktpdFNjcmlwdFdvcmxkKiwgV2ViS2l0V2ViUGFnZSosIFdlYktpdEZy
YW1lKik7Ci1XZWJLaXQ6OkluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQqIHdlYmtpdFNjcmlwdFdv
cmxkR2V0SW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZChXZWJLaXRTY3JpcHRXb3JsZCopOwotCi0j
ZW5kaWYgLy8gV2ViS2l0U2NyaXB0V29ybGRQcml2YXRlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRXZWJQYWdlLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJL
aXRXZWJQYWdlLmNwcAppbmRleCBlOTk4YTIzZTRlMjM5ZTBmODc3MGVjYWI3MWFlYWI2MGQ0ZmIw
OTczLi5kYmVjMmMzZTk5Nzk1YWNjMzA4MmVhNzcxNGNkNTYyY2QxZmRhNjZjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0
V2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL1dlYktpdFdlYlBhZ2UuY3BwCkBAIC0zMCw3ICszMCw2IEBACiAjaW5jbHVkZSAi
V2ViS2l0RnJhbWVQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0TWFyc2hhbC5oIgogI2luY2x1
ZGUgIldlYktpdFByaXZhdGUuaCIKLSNpbmNsdWRlICJXZWJLaXRTY3JpcHRXb3JsZFByaXZhdGUu
aCIKICNpbmNsdWRlICJXZWJLaXRVUklSZXF1ZXN0UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktp
dFVSSVJlc3BvbnNlUHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdFdlYlBhZ2VQcml2YXRlLmgi
CkBAIC0xNDQsMTIgKzE0Myw2IEBAIHN0YXRpYyB2b2lkIHdpbGxEZXN0cm95RnJhbWUoV0tCdW5k
bGVQYWdlUmVmLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBjb25zdCB2b2lkCiAgICAgd2ViRnJh
bWVNYXAoKS5yZW1vdmUodG9JbXBsKGZyYW1lKSk7CiB9CiAKLXN0YXRpYyB2b2lkIGRpZENsZWFy
V2luZG93T2JqZWN0Rm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmLCBXS0J1bmRsZUZyYW1lUmVmIGZy
YW1lLCBXS0J1bmRsZVNjcmlwdFdvcmxkUmVmIHdrV29ybGQsIGNvbnN0IHZvaWQqIGNsaWVudElu
Zm8pCi17Ci0gICAgaWYgKFdlYktpdFNjcmlwdFdvcmxkKiB3b3JsZCA9IHdlYmtpdFNjcmlwdFdv
cmxkR2V0KHRvSW1wbCh3a1dvcmxkKSkpCi0gICAgICAgIHdlYmtpdFNjcmlwdFdvcmxkV2luZG93
T2JqZWN0Q2xlYXJlZCh3b3JsZCwgV0VCS0lUX1dFQl9QQUdFKGNsaWVudEluZm8pLCB3ZWJraXRG
cmFtZUdldE9yQ3JlYXRlKHRvSW1wbChmcmFtZSkpKTsKLX0KLQogc3RhdGljIHZvaWQgZGlkSW5p
dGlhdGVMb2FkRm9yUmVzb3VyY2UoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJhbWVS
ZWYgZnJhbWUsIHVpbnQ2NF90IGlkZW50aWZpZXIsIFdLVVJMUmVxdWVzdFJlZiByZXF1ZXN0LCBi
b29sIHBhZ2VMb2FkSXNQcm92aXNpb25hbCwgY29uc3Qgdm9pZCopCiB7CiAgICAgSW1tdXRhYmxl
RGljdGlvbmFyeTo6TWFwVHlwZSBtZXNzYWdlOwpAQCAtMzI2LDcgKzMxOSw3IEBAIFdlYktpdFdl
YlBhZ2UqIHdlYmtpdFdlYlBhZ2VDcmVhdGUoV2ViUGFnZSogd2ViUGFnZSkKICAgICAgICAgMCwg
Ly8gZGlkUmVtb3ZlRnJhbWVGcm9tSGllcmFyY2h5CiAgICAgICAgIDAsIC8vIGRpZERpc3BsYXlJ
bnNlY3VyZUNvbnRlbnRGb3JGcmFtZQogICAgICAgICAwLCAvLyBkaWRSdW5JbnNlY3VyZUNvbnRl
bnRGb3JGcmFtZQotICAgICAgICBkaWRDbGVhcldpbmRvd09iamVjdEZvckZyYW1lLAorICAgICAg
ICAwLCAvLyBkaWRDbGVhcldpbmRvd09iamVjdEZvckZyYW1lCiAgICAgICAgIDAsIC8vIGRpZENh
bmNlbENsaWVudFJlZGlyZWN0Rm9yRnJhbWUKICAgICAgICAgMCwgLy8gd2lsbFBlcmZvcm1DbGll
bnRSZWRpcmVjdEZvckZyYW1lCiAgICAgICAgIDAsIC8vIGRpZEhhbmRsZU9ubG9hZEV2ZW50c0Zv
ckZyYW1lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvd2Via2l0LXdlYi1leHRlbnNpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay93ZWJraXQtd2ViLWV4dGVuc2lvbi5oCmluZGV4
IGNmMjJlMDliZDE4YWQwOGUxMTgwZDI3ZTBhZWUwNjlmMDFjOWIwZTkuLjFkZTk3NWE1ZDUyMzBk
ZGYzZjM4Y2VlNzU0Njg1ZDQ5YjQyOWNiZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay93ZWJraXQtd2ViLWV4dGVuc2lvbi5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay93ZWJr
aXQtd2ViLWV4dGVuc2lvbi5oCkBAIC0yMyw3ICsyMyw2IEBACiAjZGVmaW5lIF9fV0VCS0lUX1dF
Ql9FWFRFTlNJT05fSF9JTlNJREVfXwogCiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRGcmFtZS5o
PgotI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0U2NyaXB0V29ybGQuaD4KICNpbmNsdWRlIDx3ZWJr
aXQyL1dlYktpdFVSSVJlcXVlc3QuaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdFVSSVJlc3Bv
bnNlLmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRXZWJFeHRlbnNpb24uaD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>