<?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>69697</bug_id>
          
          <creation_ts>2011-10-08 01:47:22 -0700</creation_ts>
          <short_desc>REGRESSION(r96996): It broke all tests on the Qt bot (Requested by Ossy_night on #webkit).</short_desc>
          <delta_ts>2011-10-08 01:54:09 -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>69186</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="WebKit Review Bot">webkit.review.bot</assigned_to>
          <cc>ggaren</cc>
    
    <cc>mhahnenberg</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>480527</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-08 01:47:22 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/96996 broke the build:
It broke all tests on the Qt bot (Requested by Ossy_night 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>480528</commentid>
    <comment_count>1</comment_count>
      <attachid>110266</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-08 01:47:51 -0700</bug_when>
    <thetext>Created attachment 110266
ROLLOUT of r96996

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>480530</commentid>
    <comment_count>2</comment_count>
      <attachid>110266</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-08 01:54:05 -0700</bug_when>
    <thetext>Comment on attachment 110266
ROLLOUT of r96996

Clearing flags on attachment: 110266

Committed r97006: &lt;http://trac.webkit.org/changeset/97006&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480531</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-08 01:54:09 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110266</attachid>
            <date>2011-10-08 01:47:51 -0700</date>
            <delta_ts>2011-10-08 01:54:05 -0700</delta_ts>
            <desc>ROLLOUT of r96996</desc>
            <filename>bug-69697-20111008084538.patch</filename>
            <type>text/plain</type>
            <size>82571</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTcwMDUKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDYWxsYmFja0Z1bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvSlNDYWxsYmFja0Z1bmN0aW9uLmNwcAppbmRleCBhZDAyZjE5ZTZjZTJmNGE0NDk0NmNlYWU0
ZTBlNWVlNjA3YzE4MzhjLi5mYzA3NGZlNTFjNGE3MWQ0NjM0MWRkODcxNGQwNTNhNzg0ZDAwOTM2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tGdW5jdGlv
bi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrRnVuY3Rpb24u
Y3BwCkBAIC03OCw2ICs3OCwxMSBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NhbGxiYWNrRnVuY3Rpb246
OmNhbGwoRXhlY1N0YXRlKiBleGVjKQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodG9KUyhl
eGVjLCByZXN1bHQpKTsKIH0KIAorQ2FsbFR5cGUgSlNDYWxsYmFja0Z1bmN0aW9uOjpnZXRDYWxs
RGF0YVZpcnR1YWwoQ2FsbERhdGEmIGNhbGxEYXRhKQoreworICAgIHJldHVybiBnZXRDYWxsRGF0
YSh0aGlzLCBjYWxsRGF0YSk7Cit9CisKIENhbGxUeXBlIEpTQ2FsbGJhY2tGdW5jdGlvbjo6Z2V0
Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRhKQogewogICAgIGNhbGxEYXRhLm5h
dGl2ZS5mdW5jdGlvbiA9IGNhbGw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL0pTQ2FsbGJhY2tGdW5jdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0Nh
bGxiYWNrRnVuY3Rpb24uaAppbmRleCA2YzFiMTBlZjM0NmVlNDg3MzRhMzBjYzkzM2MxMjc4NGEx
YTBjNzk2Li43MjQ5NGRjY2NhODBkM2MwOWZiMWIwODAyOGIzMWI4M2EyNTJhNGY4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tGdW5jdGlvbi5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0Z1bmN0aW9uLmgKQEAgLTU5LDYg
KzU5LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBKU1ZhbHVlUmVmIHZhbHVlT2ZDYWxsYmFjayhK
U0NvbnRleHRSZWYgY3R4LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09i
amVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10s
IEpTVmFsdWVSZWYqIGV4Y2VwdGlvbik7CiAKIHByaXZhdGU6CisgICAgdmlydHVhbCBDYWxsVHlw
ZSBnZXRDYWxsRGF0YVZpcnR1YWwoQ2FsbERhdGEmKTsKICAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0
Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKIAogICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGNhbGwoRXhlY1N0YXRlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvSlNDYWxsYmFja09iamVjdC5oCmluZGV4IDIzOTdlNWUzYTNiZTM2YWYxNjU3OTAwNTE1
YjQ5Yjc4N2Y1NjY2MWUuLmM2ZjYxODI1ZWNlZTk2NTM5YTNjZWU0NTMzNWMxMjEyMTEzMGU0OTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdC5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdC5oCkBAIC0x
OTcsNiArMTk3LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFVTdHJpbmcgdG9TdHJpbmcoRXhl
Y1N0YXRlKikgY29uc3Q7CiAKICAgICB2aXJ0dWFsIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0
RGF0YShDb25zdHJ1Y3REYXRhJik7CisgICAgdmlydHVhbCBDYWxsVHlwZSBnZXRDYWxsRGF0YVZp
cnR1YWwoQ2FsbERhdGEmKTsKICAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxs
KiwgQ2FsbERhdGEmKTsKIAogICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBj
ZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdEZ1bmN0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmgKaW5kZXggNzE0ZDFhODBlN2FhOWQ4
Y2JlYjcyZDA5MzBiMzk5YThmNzE5ZGMyMi4uYjc0YmViN2E3Njg2NjIwM2MzN2U0Y2JlOThjYzhm
MGIzYjA4YjczNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxi
YWNrT2JqZWN0RnVuY3Rpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0Nh
bGxiYWNrT2JqZWN0RnVuY3Rpb25zLmgKQEAgLTM5Miw2ICszOTIsMTIgQEAgYm9vbCBKU0NhbGxi
YWNrT2JqZWN0PFBhcmVudD46Omhhc0luc3RhbmNlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2
YWx1ZSwgSlNWYWwKIH0KIAogdGVtcGxhdGUgPGNsYXNzIFBhcmVudD4KK0NhbGxUeXBlIEpTQ2Fs
bGJhY2tPYmplY3Q8UGFyZW50Pjo6Z2V0Q2FsbERhdGFWaXJ0dWFsKENhbGxEYXRhJiBjYWxsRGF0
YSkKK3sKKyAgICByZXR1cm4gZ2V0Q2FsbERhdGEodGhpcywgY2FsbERhdGEpOworfQorCit0ZW1w
bGF0ZSA8Y2xhc3MgUGFyZW50PgogQ2FsbFR5cGUgSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+Ojpn
ZXRDYWxsRGF0YShKU0NlbGwqIGNlbGwsIENhbGxEYXRhJiBjYWxsRGF0YSkKIHsKICAgICBKU0Nh
bGxiYWNrT2JqZWN0KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNDYWxsYmFja09iamVjdCo+
KGNlbGwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU09iamVjdFJl
Zi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTT2JqZWN0UmVmLmNwcAppbmRleCA0
Y2M2NmE0ZGIzMjU0NTI2NTQ1NmJlZDE4YTE1NTdkZWYxMWNkYmU2Li5mYTY4MmQ4ZmEyZTkwMDhj
MjY4ODIwZmJlODQyOWUxZTAzNjFiOWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQVBJL0pTT2JqZWN0UmVmLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pT
T2JqZWN0UmVmLmNwcApAQCAtNDE2LDggKzQxNiw3IEBAIGJvb2wgSlNPYmplY3REZWxldGVQcml2
YXRlUHJvcGVydHkoSlNDb250ZXh0UmVmIGN0eCwgSlNPYmplY3RSZWYgb2JqZWN0LCBKU1N0cmlu
CiBib29sIEpTT2JqZWN0SXNGdW5jdGlvbihKU0NvbnRleHRSZWYsIEpTT2JqZWN0UmVmIG9iamVj
dCkKIHsKICAgICBDYWxsRGF0YSBjYWxsRGF0YTsKLSAgICBKU0NlbGwqIGNlbGwgPSB0b0pTKG9i
amVjdCk7Ci0gICAgcmV0dXJuIGNlbGwtPm1ldGhvZFRhYmxlKCktPmdldENhbGxEYXRhKGNlbGws
IGNhbGxEYXRhKSAhPSBDYWxsVHlwZU5vbmU7CisgICAgcmV0dXJuIHRvSlMob2JqZWN0KS0+Z2V0
Q2FsbERhdGFWaXJ0dWFsKGNhbGxEYXRhKSAhPSBDYWxsVHlwZU5vbmU7CiB9CiAKIEpTVmFsdWVS
ZWYgSlNPYmplY3RDYWxsQXNGdW5jdGlvbihKU0NvbnRleHRSZWYgY3R4LCBKU09iamVjdFJlZiBv
YmplY3QsIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25z
dCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCkBAIC00MzYs
NyArNDM1LDcgQEAgSlNWYWx1ZVJlZiBKU09iamVjdENhbGxBc0Z1bmN0aW9uKEpTQ29udGV4dFJl
ZiBjdHgsIEpTT2JqZWN0UmVmIG9iamVjdCwgSlNPYmplY3QKICAgICAgICAgYXJnTGlzdC5hcHBl
bmQodG9KUyhleGVjLCBhcmd1bWVudHNbaV0pKTsKIAogICAgIENhbGxEYXRhIGNhbGxEYXRhOwot
ICAgIENhbGxUeXBlIGNhbGxUeXBlID0ganNPYmplY3QtPm1ldGhvZFRhYmxlKCktPmdldENhbGxE
YXRhKGpzT2JqZWN0LCBjYWxsRGF0YSk7CisgICAgQ2FsbFR5cGUgY2FsbFR5cGUgPSBqc09iamVj
dC0+Z2V0Q2FsbERhdGFWaXJ0dWFsKGNhbGxEYXRhKTsKICAgICBpZiAoY2FsbFR5cGUgPT0gQ2Fs
bFR5cGVOb25lKQogICAgICAgICByZXR1cm4gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5k
ZXggOWI2NTBiOWFkMTMxM2VkN2JlNjVlMWM2ZGI4MTc3YmRkYzQ4YzVjMC4uNDJjZWNkNGEyOGIz
MDk1MTBlMDZlY2QzMTkyYzQzNmUyMDVkYjU3YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTAwIEBACisyMDExLTEwLTA4ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcu
Ym90QGdtYWlsLmNvbT4KKworICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByOTY5OTYu
CisgICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0Lzk2OTk2CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTY5NworCisgICAgICAg
IEl0IGJyb2tlIGFsbCB0ZXN0cyBvbiB0aGUgUXQgYm90IChSZXF1ZXN0ZWQgYnkgT3NzeV9uaWdo
dCBvbgorICAgICAgICAjd2Via2l0KS4KKworICAgICAgICAqIEFQSS9KU0NhbGxiYWNrRnVuY3Rp
b24uY3BwOgorICAgICAgICAoSlNDOjpKU0NhbGxiYWNrRnVuY3Rpb246OmdldENhbGxEYXRhVmly
dHVhbCk6CisgICAgICAgICogQVBJL0pTQ2FsbGJhY2tGdW5jdGlvbi5oOgorICAgICAgICAqIEFQ
SS9KU0NhbGxiYWNrT2JqZWN0Lmg6CisgICAgICAgICogQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5j
dGlvbnMuaDoKKyAgICAgICAgKEpTQzo6OjpnZXRDYWxsRGF0YVZpcnR1YWwpOgorICAgICAgICAq
IEFQSS9KU09iamVjdFJlZi5jcHA6CisgICAgICAgIChKU09iamVjdElzRnVuY3Rpb24pOgorICAg
ICAgICAoSlNPYmplY3RDYWxsQXNGdW5jdGlvbik6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUu
ZXhwOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS5kZWY6CisgICAgICAgICogaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwOgor
ICAgICAgICAoSlNDOjpJbnRlcnByZXRlcjo6cHJpdmF0ZUV4ZWN1dGUpOgorICAgICAgICAqIGpp
dC9KSVRTdHVicy5jcHA6CisgICAgICAgIChKU0M6OkRFRklORV9TVFVCX0ZVTkNUSU9OKToKKyAg
ICAgICAgKiBydW50aW1lL0FycmF5Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpBcnJh
eUNvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YVZpcnR1YWwpOgorICAgICAgICAqIHJ1bnRpbWUvQXJy
YXlDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHJ1bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9yLmNw
cDoKKyAgICAgICAgKEpTQzo6Qm9vbGVhbkNvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YVZpcnR1YWwp
OgorICAgICAgICAqIHJ1bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9yLmg6CisgICAgICAgICogcnVu
dGltZS9EYXRlQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpEYXRlQ29uc3RydWN0b3I6
OmdldENhbGxEYXRhVmlydHVhbCk6CisgICAgICAgICogcnVudGltZS9EYXRlQ29uc3RydWN0b3Iu
aDoKKyAgICAgICAgKiBydW50aW1lL0Vycm9yLmNwcDoKKyAgICAgICAgKEpTQzo6U3RyaWN0TW9k
ZVR5cGVFcnJvckZ1bmN0aW9uOjpTdHJpY3RNb2RlVHlwZUVycm9yRnVuY3Rpb24pOgorICAgICAg
ICAoSlNDOjpTdHJpY3RNb2RlVHlwZUVycm9yRnVuY3Rpb246OmNyZWF0ZSk6CisgICAgICAgIChK
U0M6OlN0cmljdE1vZGVUeXBlRXJyb3JGdW5jdGlvbjo6Y29uc3RydWN0VGhyb3dUeXBlRXJyb3Ip
OgorICAgICAgICAoSlNDOjpTdHJpY3RNb2RlVHlwZUVycm9yRnVuY3Rpb246OmdldENvbnN0cnVj
dERhdGEpOgorICAgICAgICAoSlNDOjpTdHJpY3RNb2RlVHlwZUVycm9yRnVuY3Rpb246OmNhbGxU
aHJvd1R5cGVFcnJvcik6CisgICAgICAgIChKU0M6OlN0cmljdE1vZGVUeXBlRXJyb3JGdW5jdGlv
bjo6Z2V0Q2FsbERhdGFWaXJ0dWFsKToKKyAgICAgICAgKEpTQzo6U3RyaWN0TW9kZVR5cGVFcnJv
ckZ1bmN0aW9uOjpnZXRDYWxsRGF0YSk6CisgICAgICAgIChKU0M6OlN0cmljdE1vZGVUeXBlRXJy
b3JGdW5jdGlvbjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6Y3JlYXRlVHlwZUVy
cm9yRnVuY3Rpb24pOgorICAgICAgICAqIHJ1bnRpbWUvRXJyb3IuaDoKKyAgICAgICAgKiBydW50
aW1lL0Vycm9yQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpFcnJvckNvbnN0cnVjdG9y
OjpnZXRDYWxsRGF0YVZpcnR1YWwpOgorICAgICAgICAqIHJ1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rv
ci5oOgorICAgICAgICAqIHJ1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHA6CisgICAgICAg
IChKU0M6OkZ1bmN0aW9uQ29uc3RydWN0b3I6OmdldENhbGxEYXRhVmlydHVhbCk6CisgICAgICAg
ICogcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmg6CisgICAgICAgICogcnVudGltZS9GdW5j
dGlvblByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkZ1bmN0aW9uUHJvdG90eXBlOjpnZXRD
YWxsRGF0YVZpcnR1YWwpOgorICAgICAgICAqIHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaDoK
KyAgICAgICAgKiBydW50aW1lL0ludGVybmFsRnVuY3Rpb24uY3BwOgorICAgICAgICAoSlNDOjpJ
bnRlcm5hbEZ1bmN0aW9uOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogcnVudGltZS9JbnRl
cm5hbEZ1bmN0aW9uLmg6CisgICAgICAgICogcnVudGltZS9KU0NlbGwuY3BwOgorICAgICAgICAo
SlNDOjpKU0NlbGw6OmdldENhbGxEYXRhVmlydHVhbCk6CisgICAgICAgICogcnVudGltZS9KU0Nl
bGwuaDoKKyAgICAgICAgKEpTQzo6Z2V0Q2FsbERhdGEpOgorICAgICAgICAqIHJ1bnRpbWUvSlNG
dW5jdGlvbi5jcHA6CisgICAgICAgIChKU0M6OkpTRnVuY3Rpb246OmdldENhbGxEYXRhVmlydHVh
bCk6CisgICAgICAgICogcnVudGltZS9KU0Z1bmN0aW9uLmg6CisgICAgICAgICogcnVudGltZS9K
U0dsb2JhbE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0OjpyZXNldCk6
CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0Ojp2aXNpdENoaWxkcmVuKToKKyAgICAgICAg
KiBydW50aW1lL0pTR2xvYmFsT2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9KU09OT2JqZWN0
LmNwcDoKKyAgICAgICAgKEpTQzo6U3RyaW5naWZpZXI6OlN0cmluZ2lmaWVyKToKKyAgICAgICAg
KEpTQzo6U3RyaW5naWZpZXI6OnRvSlNPTik6CisgICAgICAgIChKU0M6OlN0cmluZ2lmaWVyOjph
cHBlbmRTdHJpbmdpZmllZFZhbHVlKToKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0LmNwcDoK
KyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OnB1dCk6CisgICAgICAgICogcnVudGltZS9KU09iamVj
dC5oOgorICAgICAgICAqIHJ1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHA6CisgICAg
ICAgIChKU0M6Ok5hdGl2ZUVycm9yQ29uc3RydWN0b3I6OmdldENhbGxEYXRhVmlydHVhbCk6Cisg
ICAgICAgICogcnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmg6CisgICAgICAgICogcnVu
dGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6Ok51bWJlckNvbnN0cnVj
dG9yOjpnZXRDYWxsRGF0YVZpcnR1YWwpOgorICAgICAgICAqIHJ1bnRpbWUvTnVtYmVyQ29uc3Ry
dWN0b3IuaDoKKyAgICAgICAgKiBydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcDoKKyAgICAg
ICAgKEpTQzo6T2JqZWN0Q29uc3RydWN0b3I6OmdldENhbGxEYXRhVmlydHVhbCk6CisgICAgICAg
ICogcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHJ1bnRpbWUvT3BlcmF0
aW9ucy5jcHA6CisgICAgICAgIChKU0M6OmpzVHlwZVN0cmluZ0ZvclZhbHVlKToKKyAgICAgICAg
KEpTQzo6anNJc09iamVjdFR5cGUpOgorICAgICAgICAoSlNDOjpqc0lzRnVuY3Rpb25UeXBlKToK
KyAgICAgICAgKiBydW50aW1lL1Byb3BlcnR5U2xvdC5jcHA6CisgICAgICAgIChKU0M6OlByb3Bl
cnR5U2xvdDo6ZnVuY3Rpb25HZXR0ZXIpOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwQ29uc3Ry
dWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpSZWdFeHBDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGFW
aXJ0dWFsKToKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmg6CisgICAgICAg
ICogcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OlN0cmluZ0Nv
bnN0cnVjdG9yOjpnZXRDYWxsRGF0YVZpcnR1YWwpOgorICAgICAgICAqIHJ1bnRpbWUvU3RyaW5n
Q29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZS5oOgorCiAyMDExLTEw
LTA4ICBZdXFpYW5nIFhpYW4gIDx5dXFpYW5nLnhpYW5AaW50ZWwuY29tPgogCiAgICAgICAgIERG
RyBKSVQgLSBvbmx5IEFycmF5IHByZWRpY3Rpb25zIGNhbiByZXN1bHQgaW4gdW5ib3hlZCBjZWxs
cyBpbiByZWdpc3RlciBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUuZXhwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4
cAppbmRleCA2ZWQ5ZmNmMWU3NTIxMmYzMDQ1YTRmMThhOWJkOWRiZWFmNjVkNGIzLi4xY2IxZGQw
ZjkwOWIxMjMzOTFlYWEzNGJhOWU0NjgwMTQyZjE3YjgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS5leHAKQEAgLTI2MCw2ICsyNjAsNyBAQCBfX1pOM0pTQzZKU0NlbGwx
MWdldENhbGxEYXRhRVBTMF9STlNfOENhbGxEYXRhRQogX19aTjNKU0M2SlNDZWxsMTRkZWxldGVQ
cm9wZXJ0eUVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckUKIF9fWk4zSlNDNkpTQ2Vs
bDE0ZGVsZXRlUHJvcGVydHlFUE5TXzlFeGVjU3RhdGVFagogX19aTjNKU0M2SlNDZWxsMTZnZXRD
b25zdHJ1Y3REYXRhRVJOU18xM0NvbnN0cnVjdERhdGFFCitfX1pOM0pTQzZKU0NlbGwxOGdldENh
bGxEYXRhVmlydHVhbEVSTlNfOENhbGxEYXRhRQogX19aTjNKU0M2SlNDZWxsMThnZXRPd25Qcm9w
ZXJ0eVNsb3RFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFUk5TXzEyUHJvcGVydHlT
bG90RQogX19aTjNKU0M2SlNDZWxsMThnZXRPd25Qcm9wZXJ0eVNsb3RFUE5TXzlFeGVjU3RhdGVF
alJOU18xMlByb3BlcnR5U2xvdEUKIF9fWk4zSlNDNkpTQ2VsbDNwdXRFUE5TXzlFeGVjU3RhdGVF
UktOU18xMElkZW50aWZpZXJFTlNfN0pTVmFsdWVFUk5TXzE1UHV0UHJvcGVydHlTbG90RQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgppbmRl
eCA3Yzc5N2QzYTM4Yjc2NDM4OTA1ZTExZGIyZWQwZmM5YjQ5ZmZiYmZjLi5kNTVjZWIzNzIyNjlk
NDE1NzJmMDBkYzdkOTIxZTczNDA4ODg3NmRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
LmRlZgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgpAQCAtMTkwLDYgKzE5MCw3IEBAIEVYUE9S
VFMKICAgICA/Z2V0QFN0cnVjdHVyZUBKU0NAQFFBRUlBQVZKU0dsb2JhbERhdGFAMkBBQlZJZGVu
dGlmaWVyQDJAQUFJQUFQQVZKU0NlbGxAMkBAWgogICAgID9nZXRAU3RydWN0dXJlQEpTQ0BAUUFF
SUFBVkpTR2xvYmFsRGF0YUAyQFBBVlN0cmluZ0ltcGxAV1RGQEBBQUlBQVBBVkpTQ2VsbEAyQEBa
CiAgICAgP2dldENhbGxEYXRhQEpTQ2VsbEBKU0NAQFNBP0FXNENhbGxUeXBlQDJAUEFWMTJAQUFU
Q2FsbERhdGFAMkBAWgorICAgID9nZXRDYWxsRGF0YVZpcnR1YWxASlNDZWxsQEpTQ0BAVUFFP0FX
NENhbGxUeXBlQDJAQUFUQ2FsbERhdGFAMkBAWgogICAgID9nZXRDb25zdHJ1Y3REYXRhQEpTQ2Vs
bEBKU0NAQFVBRT9BVzRDb25zdHJ1Y3RUeXBlQDJAQUFUQ29uc3RydWN0RGF0YUAyQEBaCiAgICAg
P2dldE9iamVjdEBKU0NlbGxASlNDQEBRQUVQQVZKU09iamVjdEAyQFhaCiAgICAgP2dldE93blBy
b3BlcnR5RGVzY3JpcHRvckBKU0dsb2JhbE9iamVjdEBKU0NAQFVBRV9OUEFWRXhlY1N0YXRlQDJA
QUJWSWRlbnRpZmllckAyQEFBVlByb3BlcnR5RGVzY3JpcHRvckAyQEBaCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAppbmRleCBlMDM3MDcw
NzgyMjQxOTU2OGE0OTU4MzllZmQ4OWNhYjQzZDZiZjdmLi5lYjc3NDYzNjIyZDQ4MzdjNDAzNmM2
MDM2NGViYzk5ZTIxN2Y1YzdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50
ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRl
cnByZXRlci9JbnRlcnByZXRlci5jcHAKQEAgLTI4MjksNyArMjgyOSw3IEBAIEpTVmFsdWUgSW50
ZXJwcmV0ZXI6OnByaXZhdGVFeGVjdXRlKEV4ZWN1dGlvbkZsYWcgZmxhZywgUmVnaXN0ZXJGaWxl
KiByZWdpc3RlckZpCiAgICAgICAgICAgICAgICAgICAgIGlmIChHZXR0ZXJTZXR0ZXIqIGdldHRl
clNldHRlciA9IGFzR2V0dGVyU2V0dGVyKHByb3RvT2JqZWN0LT5nZXREaXJlY3RPZmZzZXQob2Zm
c2V0KS5hc0NlbGwoKSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIEpTT2JqZWN0KiBnZXR0
ZXIgPSBnZXR0ZXJTZXR0ZXItPmdldHRlcigpOwogICAgICAgICAgICAgICAgICAgICAgICAgQ2Fs
bERhdGEgY2FsbERhdGE7Ci0gICAgICAgICAgICAgICAgICAgICAgICBDYWxsVHlwZSBjYWxsVHlw
ZSA9IGdldHRlci0+bWV0aG9kVGFibGUoKS0+Z2V0Q2FsbERhdGEoZ2V0dGVyLCBjYWxsRGF0YSk7
CisgICAgICAgICAgICAgICAgICAgICAgICBDYWxsVHlwZSBjYWxsVHlwZSA9IGdldHRlci0+Z2V0
Q2FsbERhdGFWaXJ0dWFsKGNhbGxEYXRhKTsKICAgICAgICAgICAgICAgICAgICAgICAgIEpTVmFs
dWUgcmVzdWx0ID0gY2FsbChjYWxsRnJhbWUsIGdldHRlciwgY2FsbFR5cGUsIGNhbGxEYXRhLCBh
c09iamVjdChiYXNlQ2VsbCksIEFyZ0xpc3QoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBD
SEVDS19GT1JfRVhDRVBUSU9OKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsRnJhbWUt
PnVuY2hlY2tlZFIoZHN0KSA9IHJlc3VsdDsKQEAgLTI5NjQsNyArMjk2NCw3IEBAIEpTVmFsdWUg
SW50ZXJwcmV0ZXI6OnByaXZhdGVFeGVjdXRlKEV4ZWN1dGlvbkZsYWcgZmxhZywgUmVnaXN0ZXJG
aWxlKiByZWdpc3RlckZpCiAgICAgICAgICAgICAgICAgaWYgKEdldHRlclNldHRlciogZ2V0dGVy
U2V0dGVyID0gYXNHZXR0ZXJTZXR0ZXIoYmFzZU9iamVjdC0+Z2V0RGlyZWN0T2Zmc2V0KG9mZnNl
dCkuYXNDZWxsKCkpKSB7CiAgICAgICAgICAgICAgICAgICAgIEpTT2JqZWN0KiBnZXR0ZXIgPSBn
ZXR0ZXJTZXR0ZXItPmdldHRlcigpOwogICAgICAgICAgICAgICAgICAgICBDYWxsRGF0YSBjYWxs
RGF0YTsKLSAgICAgICAgICAgICAgICAgICAgQ2FsbFR5cGUgY2FsbFR5cGUgPSBnZXR0ZXItPm1l
dGhvZFRhYmxlKCktPmdldENhbGxEYXRhKGdldHRlciwgY2FsbERhdGEpOworICAgICAgICAgICAg
ICAgICAgICBDYWxsVHlwZSBjYWxsVHlwZSA9IGdldHRlci0+Z2V0Q2FsbERhdGFWaXJ0dWFsKGNh
bGxEYXRhKTsKICAgICAgICAgICAgICAgICAgICAgSlNWYWx1ZSByZXN1bHQgPSBjYWxsKGNhbGxG
cmFtZSwgZ2V0dGVyLCBjYWxsVHlwZSwgY2FsbERhdGEsIGJhc2VPYmplY3QsIEFyZ0xpc3QoKSk7
CiAgICAgICAgICAgICAgICAgICAgIENIRUNLX0ZPUl9FWENFUFRJT04oKTsKICAgICAgICAgICAg
ICAgICAgICAgY2FsbEZyYW1lLT51bmNoZWNrZWRSKGRzdCkgPSByZXN1bHQ7CkBAIC0zMDcyLDcg
KzMwNzIsNyBAQCBza2lwX2lkX2N1c3RvbV9zZWxmOgogICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKEdldHRlclNldHRlciogZ2V0dGVyU2V0dGVyID0gYXNHZXR0ZXJTZXR0ZXIoYmFzZU9iamVj
dC0+Z2V0RGlyZWN0T2Zmc2V0KG9mZnNldCkuYXNDZWxsKCkpKSB7CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgSlNPYmplY3QqIGdldHRlciA9IGdldHRlclNldHRlci0+Z2V0dGVyKCk7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsbERhdGEgY2FsbERhdGE7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgQ2FsbFR5cGUgY2FsbFR5cGUgPSBnZXR0ZXItPm1ldGhvZFRhYmxl
KCktPmdldENhbGxEYXRhKGdldHRlciwgY2FsbERhdGEpOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIENhbGxUeXBlIGNhbGxUeXBlID0gZ2V0dGVyLT5nZXRDYWxsRGF0YVZpcnR1YWwoY2Fs
bERhdGEpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIEpTVmFsdWUgcmVzdWx0ID0gY2Fs
bChjYWxsRnJhbWUsIGdldHRlciwgY2FsbFR5cGUsIGNhbGxEYXRhLCBiYXNlVmFsdWUsIEFyZ0xp
c3QoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0hFQ0tfRk9SX0VYQ0VQVElPTigp
OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxGcmFtZS0+dW5jaGVja2VkUihkc3Qp
ID0gcmVzdWx0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVi
cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAppbmRleCBhOTMw
ZjU4MmUwOWRiYWY3MWM3NTFiMjVjNWM0ZTc1YTdkMGE5NjIyLi40ZWM0MzMwNmM3OGUxM2JjMzNh
YjE5Yzk0MGRkMTYwNjBhMmZmZmVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVFN0dWJzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJz
LmNwcApAQCAtMTc1Miw3ICsxNzUyLDcgQEAgREVGSU5FX1NUVUJfRlVOQ1RJT04oRW5jb2RlZEpT
VmFsdWUsIG9wX2dldF9ieV9pZF9nZXR0ZXJfc3R1YikKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBKU09iamVjdCogZ2V0dGVyID0gYXNPYmplY3Qo
Z2V0dGVyU2V0dGVyLT5nZXR0ZXIoKSk7CiAgICAgQ2FsbERhdGEgY2FsbERhdGE7Ci0gICAgQ2Fs
bFR5cGUgY2FsbFR5cGUgPSBnZXR0ZXItPm1ldGhvZFRhYmxlKCktPmdldENhbGxEYXRhKGdldHRl
ciwgY2FsbERhdGEpOworICAgIENhbGxUeXBlIGNhbGxUeXBlID0gZ2V0dGVyLT5nZXRDYWxsRGF0
YVZpcnR1YWwoY2FsbERhdGEpOwogICAgIEpTVmFsdWUgcmVzdWx0ID0gY2FsbChjYWxsRnJhbWUs
IGdldHRlciwgY2FsbFR5cGUsIGNhbGxEYXRhLCBzdGFja0ZyYW1lLmFyZ3NbMV0uanNPYmplY3Qo
KSwgQXJnTGlzdCgpKTsKICAgICBpZiAoY2FsbEZyYW1lLT5oYWRFeGNlcHRpb24oKSkKICAgICAg
ICAgcmV0dXJuVG9UaHJvd1RyYW1wb2xpbmUoJmNhbGxGcmFtZS0+Z2xvYmFsRGF0YSgpLCBzdGFj
a0ZyYW1lLmFyZ3NbMl0ucmV0dXJuQWRkcmVzcygpLCBTVFVCX1JFVFVSTl9BRERSRVNTKTsKQEAg
LTIxNTMsNyArMjE1Myw3IEBAIERFRklORV9TVFVCX0ZVTkNUSU9OKHZvaWQqLCBvcF9jYWxsX2pp
dENvbXBpbGUpCiAKICNpZiAhQVNTRVJUX0RJU0FCTEVECiAgICAgQ2FsbERhdGEgY2FsbERhdGE7
Ci0gICAgQVNTRVJUKHN0YWNrRnJhbWUuY2FsbEZyYW1lLT5jYWxsZWUoKS0+bWV0aG9kVGFibGUo
KS0+Z2V0Q2FsbERhdGEoc3RhY2tGcmFtZS5jYWxsRnJhbWUtPmNhbGxlZSgpLCBjYWxsRGF0YSkg
PT0gQ2FsbFR5cGVKUyk7CisgICAgQVNTRVJUKHN0YWNrRnJhbWUuY2FsbEZyYW1lLT5jYWxsZWUo
KS0+Z2V0Q2FsbERhdGFWaXJ0dWFsKGNhbGxEYXRhKSA9PSBDYWxsVHlwZUpTKTsKICNlbmRpZgog
ICAgIAogICAgIHJldHVybiBqaXRDb21waWxlRm9yKHN0YWNrRnJhbWUsIENvZGVGb3JDYWxsKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5Q29uc3RydWN0
b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5j
cHAKaW5kZXggM2JiMTMzODI2MzY1M2Y1NGJjZTMxMWE2ZTk4YjA0YzUwYzI1YTI2OS4uNDUzOGNi
ODQzOTQ4NDM1YmZjNmQ3ZmJmNjljZGI0YWY1YzRkNDhiOSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5jcHAKQEAgLTEwOSw2ICsxMDks
MTEgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEFycmF5Q29uc3Ry
dWN0b3IoRXhlY1N0YXRlKiBleGVjKQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY29uc3Ry
dWN0QXJyYXlXaXRoU2l6ZVF1aXJrKGV4ZWMsIGFyZ3MpKTsKIH0KIAorQ2FsbFR5cGUgQXJyYXlD
b25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGFWaXJ0dWFsKENhbGxEYXRhJiBjYWxsRGF0YSkKK3sKKyAg
ICByZXR1cm4gZ2V0Q2FsbERhdGEodGhpcywgY2FsbERhdGEpOworfQorCiBDYWxsVHlwZSBBcnJh
eUNvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCiB7
CiAgICAgLy8gZXF1aXZhbGVudCB0byAnbmV3IEFycmF5KC4uLi4pJwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5oCmluZGV4IGY2NGI5YjZjNDdh
ZGIzNjdhYzZjMzg5MjM1YzY2MjkyYTNmZThlNGIuLmM0NmRjYjIzNjMyZGFiNGZjN2I4NjZmOWE3
YzA3NzAzZTM2MWUwMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0FycmF5Q29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9B
cnJheUNvbnN0cnVjdG9yLmgKQEAgLTU1LDYgKzU1LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAg
ICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29u
c3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogCiAgICAgICAgIHZpcnR1YWwg
Q29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKENvbnN0cnVjdERhdGEmKTsKKyAgICAgICAg
dmlydHVhbCBDYWxsVHlwZSBnZXRDYWxsRGF0YVZpcnR1YWwoQ2FsbERhdGEmKTsKICAgICAgICAg
c3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiAgICAgfTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbkNvbnN0
cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Db25zdHJ1
Y3Rvci5jcHAKaW5kZXggZjJhNjJkN2FkZTMwOWQ3MGU0MGZiZTllNzFjNDE5MzgyOTNiYWNjNy4u
N2NiZGViMzY4ZTZlN2ZlMjY3N2FkZWMwZTZjZjUxMGVmMzI2MTEyMCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9yLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuQ29uc3RydWN0b3IuY3BwCkBAIC03
MCw2ICs3MCwxMSBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsQm9v
bGVhbkNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYykKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzQm9vbGVhbihleGVjLT5hcmd1bWVudCgwKS50b0Jvb2xlYW4oZXhlYykpKTsKIH0KIAor
Q2FsbFR5cGUgQm9vbGVhbkNvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YVZpcnR1YWwoQ2FsbERhdGEm
IGNhbGxEYXRhKQoreworICAgIHJldHVybiBnZXRDYWxsRGF0YSh0aGlzLCBjYWxsRGF0YSk7Cit9
CisKIENhbGxUeXBlIEJvb2xlYW5Db25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2Fs
bERhdGEmIGNhbGxEYXRhKQogewogICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNhbGxC
b29sZWFuQ29uc3RydWN0b3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Cb29sZWFuQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0Jvb2xlYW5Db25zdHJ1Y3Rvci5oCmluZGV4IDBlMGEzZTE0MzI3ZTU3MzVjMDBmMDI4MDA1NTE1
ZmJjYzgzOTkwZmQuLmE5ODljMzA3ZTdmNDVjZGYwZDYzZTg2ZWM5OGUyMDBmMjQ5M2NiY2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rv
ci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rv
ci5oCkBAIC01MSw2ICs1MSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHByaXZhdGU6CiAgICAg
ICAgIEJvb2xlYW5Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSopOwogICAg
ICAgICB2aXJ0dWFsIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShDb25zdHJ1Y3REYXRh
Jik7CisgICAgICAgIHZpcnR1YWwgQ2FsbFR5cGUgZ2V0Q2FsbERhdGFWaXJ0dWFsKENhbGxEYXRh
Jik7CiAgICAgICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0
YSYpOwogICAgIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0RhdGVDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRl
Q29uc3RydWN0b3IuY3BwCmluZGV4IGUzN2U2ZjExZDY2N2JhMzdhMWY2YjU3YWE3OGUyZGJiNzhi
ZDljNjMuLjNlYTE2MzdkYmQ1MWNmYjE4ZWYwYzcwZGY4NTI4M2M4ZjM5YjA5NGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmNwcApAQCAt
MTc2LDYgKzE3NiwxMSBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxs
RGF0ZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc01ha2VO
b250cml2aWFsU3RyaW5nKGV4ZWMsIGRhdGUsICIgIiwgdGltZSkpOwogfQogCitDYWxsVHlwZSBE
YXRlQ29uc3RydWN0b3I6OmdldENhbGxEYXRhVmlydHVhbChDYWxsRGF0YSYgY2FsbERhdGEpCit7
CisgICAgcmV0dXJuIGdldENhbGxEYXRhKHRoaXMsIGNhbGxEYXRhKTsKK30KKwogQ2FsbFR5cGUg
RGF0ZUNvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEp
CiB7CiAgICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY2FsbERhdGU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5oCmluZGV4IDQxYmU5MzU0
NDNlYzA4MTE2ZGYzNzRkNDMwYzAzZjhkMTJiYzk5YTAuLjA2ZGM5NGE4YjdiMGMzNGNmMWQwOWFk
MjQ4MjRhMzI3NWY5ZDRiMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0RhdGVDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0RhdGVDb25zdHJ1Y3Rvci5oCkBAIC01Miw2ICs1Miw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAg
IHByaXZhdGU6CiAgICAgICAgIERhdGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCosIFN0cnVj
dHVyZSopOwogICAgICAgICB2aXJ0dWFsIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShD
b25zdHJ1Y3REYXRhJik7CisgICAgICAgIHZpcnR1YWwgQ2FsbFR5cGUgZ2V0Q2FsbERhdGFWaXJ0
dWFsKENhbGxEYXRhJik7CiAgICAgICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0Nl
bGwqLCBDYWxsRGF0YSYpOwogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNs
b3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3IuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3IuY3BwCmluZGV4IDRhMWUxNDgyMDU1ZDlhY2QyNzdl
NTQ1NjFiMzdiZjIxNjkxNmQ2OWIuLjBlZDcwNzU4OTNkMTYyNGM1MGUzYTRkM2U3N2UyODg5YjVl
YWI0MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvci5jcHAKQEAgLTI2LDcg
KzI2LDYgQEAKIAogI2luY2x1ZGUgIkNvbnN0cnVjdERhdGEuaCIKICNpbmNsdWRlICJFcnJvckNv
bnN0cnVjdG9yLmgiCi0jaW5jbHVkZSAiRnVuY3Rpb25Qcm90b3R5cGUuaCIKICNpbmNsdWRlICJK
U0Z1bmN0aW9uLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJKU09i
amVjdC5oIgpAQCAtMTY2LDE0ICsxNjUsNzEgQEAgSlNPYmplY3QqIHRocm93U3ludGF4RXJyb3Io
RXhlY1N0YXRlKiBleGVjKQogICAgIHJldHVybiB0aHJvd0Vycm9yKGV4ZWMsIGNyZWF0ZVN5bnRh
eEVycm9yKGV4ZWMsICJTeW50YXggZXJyb3IiKSk7CiB9CiAKK2NsYXNzIFN0cmljdE1vZGVUeXBl
RXJyb3JGdW5jdGlvbiA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKK3ByaXZhdGU6CisgICAg
U3RyaWN0TW9kZVR5cGVFcnJvckZ1bmN0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25zdCBVU3RyaW5nJiBtZXNzYWdlKQorICAgICAgICA6
IEludGVybmFsRnVuY3Rpb24oZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUpCisgICAgICAgICwgbV9t
ZXNzYWdlKG1lc3NhZ2UpCisgICAgeworICAgIH0KKworcHVibGljOgorICAgIHR5cGVkZWYgSW50
ZXJuYWxGdW5jdGlvbiBCYXNlOworCisgICAgc3RhdGljIFN0cmljdE1vZGVUeXBlRXJyb3JGdW5j
dGlvbiogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IFVTdHJpbmcmIG1lc3NhZ2UpCisgICAgewor
ICAgICAgICBTdHJpY3RNb2RlVHlwZUVycm9yRnVuY3Rpb24qIGZ1bmN0aW9uID0gbmV3IChhbGxv
Y2F0ZUNlbGw8U3RyaWN0TW9kZVR5cGVFcnJvckZ1bmN0aW9uPigqZXhlYy0+aGVhcCgpKSkgU3Ry
aWN0TW9kZVR5cGVFcnJvckZ1bmN0aW9uKGdsb2JhbE9iamVjdCwgc3RydWN0dXJlLCBtZXNzYWdl
KTsKKyAgICAgICAgZnVuY3Rpb24tPmZpbmlzaENyZWF0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSwg
ZXhlYy0+Z2xvYmFsRGF0YSgpLnByb3BlcnR5TmFtZXMtPmVtcHR5SWRlbnRpZmllcik7CisgICAg
ICAgIHJldHVybiBmdW5jdGlvbjsKKyAgICB9CisgICAgCisgICAgc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0VGhyb3dUeXBlRXJyb3IoRXhlY1N0YXRlKiBleGVj
KQorICAgIHsKKyAgICAgICAgdGhyb3dUeXBlRXJyb3IoZXhlYywgc3RhdGljX2Nhc3Q8U3RyaWN0
TW9kZVR5cGVFcnJvckZ1bmN0aW9uKj4oZXhlYy0+Y2FsbGVlKCkpLT5tX21lc3NhZ2UpOworICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVsbCgpKTsKKyAgICB9CisgICAgCisgICAg
Q29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERh
dGEpCisgICAgeworICAgICAgICBjb25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNvbnN0
cnVjdFRocm93VHlwZUVycm9yOworICAgICAgICByZXR1cm4gQ29uc3RydWN0VHlwZUhvc3Q7Cisg
ICAgfQorICAgIAorICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxU
aHJvd1R5cGVFcnJvcihFeGVjU3RhdGUqIGV4ZWMpCisgICAgeworICAgICAgICB0aHJvd1R5cGVF
cnJvcihleGVjLCBzdGF0aWNfY2FzdDxTdHJpY3RNb2RlVHlwZUVycm9yRnVuY3Rpb24qPihleGVj
LT5jYWxsZWUoKSktPm1fbWVzc2FnZSk7CisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNOdWxsKCkpOworICAgIH0KKworICAgIHZpcnR1YWwgQ2FsbFR5cGUgZ2V0Q2FsbERhdGFWaXJ0
dWFsKENhbGxEYXRhJiBjYWxsRGF0YSkKKyAgICB7CisgICAgICAgIHJldHVybiBnZXRDYWxsRGF0
YSh0aGlzLCBjYWxsRGF0YSk7CisgICAgfQorCisgICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxE
YXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKKyAgICB7CisgICAgICAgIGNhbGxEYXRh
Lm5hdGl2ZS5mdW5jdGlvbiA9IGNhbGxUaHJvd1R5cGVFcnJvcjsKKyAgICAgICAgcmV0dXJuIENh
bGxUeXBlSG9zdDsKKyAgICB9CisKKyAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsK
KworICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGds
b2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBl
KSAKKyAgICB7IAorICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwg
Z2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZs
YWdzKSwgJnNfaW5mbyk7IAorICAgIH0KKworcHJpdmF0ZToKKyAgICBVU3RyaW5nIG1fbWVzc2Fn
ZTsKK307CisKIEFTU0VSVF9DTEFTU19GSVRTX0lOX0NFTEwoU3RyaWN0TW9kZVR5cGVFcnJvckZ1
bmN0aW9uKTsKIAogY29uc3QgQ2xhc3NJbmZvIFN0cmljdE1vZGVUeXBlRXJyb3JGdW5jdGlvbjo6
c19pbmZvID0geyAiRnVuY3Rpb24iLCAmQmFzZTo6c19pbmZvLCAwLCAwLCBDUkVBVEVfTUVUSE9E
X1RBQkxFKFN0cmljdE1vZGVUeXBlRXJyb3JGdW5jdGlvbikgfTsKIAogSlNWYWx1ZSBjcmVhdGVU
eXBlRXJyb3JGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFVTdHJpbmcmIG1lc3NhZ2Up
CiB7Ci0gICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGV4ZWMtPmxleGljYWxHbG9i
YWxPYmplY3QoKTsKLSAgICByZXR1cm4gU3RyaWN0TW9kZVR5cGVFcnJvckZ1bmN0aW9uOjpjcmVh
dGUoZXhlYywgZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPnN0cmljdE1vZGVUeXBlRXJyb3JG
dW5jdGlvblN0cnVjdHVyZSgpLCBtZXNzYWdlKTsKKyAgICByZXR1cm4gU3RyaWN0TW9kZVR5cGVF
cnJvckZ1bmN0aW9uOjpjcmVhdGUoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCBl
eGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPmludGVybmFsRnVuY3Rpb25TdHJ1Y3R1cmUoKSwg
bWVzc2FnZSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0Vycm9yLmgKaW5kZXggYzM0MGU2YzIzOTg1NzZhMTg1Mjg1ZWNmNmE5ZjU3NmE5MjZjZTE1
My4uYzBmOWQzMjA5OGIxNjY2YWRmMzliZGI0MGQzZjg0YmYxMDBmN2Q4YyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3IuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9FcnJvci5oCkBAIC0yMyw3ICsyMyw2IEBACiAjaWZuZGVmIEVycm9y
X2gKICNkZWZpbmUgRXJyb3JfaAogCi0jaW5jbHVkZSAiSW50ZXJuYWxGdW5jdGlvbi5oIgogI2lu
Y2x1ZGUgIkpTT2JqZWN0LmgiCiAjaW5jbHVkZSA8c3RkaW50Lmg+CiAKQEAgLTc0LDU5ICs3Myw2
IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgSlNWYWx1ZSBjcmVhdGVUeXBlRXJyb3JGdW5jdGlv
bihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFVTdHJpbmcmIG1lc3NhZ2UpOwogICAgIAotICAgIGNs
YXNzIFN0cmljdE1vZGVUeXBlRXJyb3JGdW5jdGlvbiA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9u
IHsKLSAgICBwcml2YXRlOgotICAgICAgICBTdHJpY3RNb2RlVHlwZUVycm9yRnVuY3Rpb24oSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IFVT
dHJpbmcmIG1lc3NhZ2UpCi0gICAgICAgICAgICA6IEludGVybmFsRnVuY3Rpb24oZ2xvYmFsT2Jq
ZWN0LCBzdHJ1Y3R1cmUpCi0gICAgICAgICAgICAsIG1fbWVzc2FnZShtZXNzYWdlKQotICAgICAg
ICB7Ci0gICAgICAgIH0KLQotICAgIHB1YmxpYzoKLSAgICAgICAgdHlwZWRlZiBJbnRlcm5hbEZ1
bmN0aW9uIEJhc2U7Ci0KLSAgICAgICAgc3RhdGljIFN0cmljdE1vZGVUeXBlRXJyb3JGdW5jdGlv
biogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IFVTdHJpbmcmIG1lc3NhZ2UpCi0gICAgICAgIHsK
LSAgICAgICAgICAgIFN0cmljdE1vZGVUeXBlRXJyb3JGdW5jdGlvbiogZnVuY3Rpb24gPSBuZXcg
KGFsbG9jYXRlQ2VsbDxTdHJpY3RNb2RlVHlwZUVycm9yRnVuY3Rpb24+KCpleGVjLT5oZWFwKCkp
KSBTdHJpY3RNb2RlVHlwZUVycm9yRnVuY3Rpb24oZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIG1l
c3NhZ2UpOwotICAgICAgICAgICAgZnVuY3Rpb24tPmZpbmlzaENyZWF0aW9uKGV4ZWMtPmdsb2Jh
bERhdGEoKSwgZXhlYy0+Z2xvYmFsRGF0YSgpLnByb3BlcnR5TmFtZXMtPmVtcHR5SWRlbnRpZmll
cik7Ci0gICAgICAgICAgICByZXR1cm4gZnVuY3Rpb247Ci0gICAgICAgIH0KLSAgICAKLSAgICAg
ICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0VGhyb3dUeXBl
RXJyb3IoRXhlY1N0YXRlKiBleGVjKQotICAgICAgICB7Ci0gICAgICAgICAgICB0aHJvd1R5cGVF
cnJvcihleGVjLCBzdGF0aWNfY2FzdDxTdHJpY3RNb2RlVHlwZUVycm9yRnVuY3Rpb24qPihleGVj
LT5jYWxsZWUoKSktPm1fbWVzc2FnZSk7Ci0gICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzTnVsbCgpKTsKLSAgICAgICAgfQotICAgIAotICAgICAgICBDb25zdHJ1Y3RUeXBlIGdl
dENvbnN0cnVjdERhdGEoQ29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSkKLSAgICAgICAgewot
ICAgICAgICAgICAgY29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjb25zdHJ1Y3RUaHJv
d1R5cGVFcnJvcjsKLSAgICAgICAgICAgIHJldHVybiBDb25zdHJ1Y3RUeXBlSG9zdDsKLSAgICAg
ICAgfQotICAgIAotICAgICAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBj
YWxsVGhyb3dUeXBlRXJyb3IoRXhlY1N0YXRlKiBleGVjKQotICAgICAgICB7Ci0gICAgICAgICAg
ICB0aHJvd1R5cGVFcnJvcihleGVjLCBzdGF0aWNfY2FzdDxTdHJpY3RNb2RlVHlwZUVycm9yRnVu
Y3Rpb24qPihleGVjLT5jYWxsZWUoKSktPm1fbWVzc2FnZSk7Ci0gICAgICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzTnVsbCgpKTsKLSAgICAgICAgfQotCi0gICAgICAgIHN0YXRpYyBD
YWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCi0gICAgICAg
IHsKLSAgICAgICAgICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNhbGxUaHJvd1R5cGVF
cnJvcjsKLSAgICAgICAgICAgIHJldHVybiBDYWxsVHlwZUhvc3Q7Ci0gICAgICAgIH0KLQotICAg
ICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKLQotICAgICAgICBzdGF0aWMgU3Ry
dWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkgCi0gICAgICAgIHsgCi0g
ICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2Jq
ZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNf
aW5mbyk7IAotICAgICAgICB9Ci0KLSAgICBwcml2YXRlOgotICAgICAgICBVU3RyaW5nIG1fbWVz
c2FnZTsKLSAgICB9OwotCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogI2VuZGlmIC8vIEVycm9yX2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yQ29uc3RydWN0
b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5j
cHAKaW5kZXggMGIzYmE5MWY1NTMxNzMwNmZmMTI1NWZlZjJiNzRkOWY1MDllOThhMi4uN2EwMDJi
YTEzMzdiMDJmYTljMzMwMzMxYWRlZDAzNDkwMmE4YTVlMCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5jcHAKQEAgLTY2LDYgKzY2LDEx
IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxFcnJvckNvbnN0cnVj
dG9yKEV4ZWNTdGF0ZSogZXhlYykKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEVycm9ySW5z
dGFuY2U6OmNyZWF0ZShleGVjLCBlcnJvclN0cnVjdHVyZSwgbWVzc2FnZSkpOwogfQogCitDYWxs
VHlwZSBFcnJvckNvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YVZpcnR1YWwoQ2FsbERhdGEmIGNhbGxE
YXRhKQoreworICAgIHJldHVybiBnZXRDYWxsRGF0YSh0aGlzLCBjYWxsRGF0YSk7Cit9CisKIENh
bGxUeXBlIEVycm9yQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBj
YWxsRGF0YSkKIHsKICAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsRXJyb3JDb25z
dHJ1Y3RvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9y
Q29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yQ29uc3Ry
dWN0b3IuaAppbmRleCAzMWZkM2I2M2MyNTlmZmNkOGI3ZDc5N2I2NDUyMmQyZTY3OGE1YzFlLi5i
N2Q4ODFiM2MyMzc0YjI5MWZmZGNhYjkzN2NiZTdkZDY4M2I3ZmU0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckNvbnN0cnVjdG9yLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5oCkBAIC01Miw2ICs1Miw3
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHByaXZhdGU6CiAgICAgICAgIEVycm9yQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqKTsKICAgICAgICAgdmlydHVhbCBDb25zdHJ1
Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoQ29uc3RydWN0RGF0YSYpOworICAgICAgICB2aXJ0dWFs
IENhbGxUeXBlIGdldENhbGxEYXRhVmlydHVhbChDYWxsRGF0YSYpOwogICAgICAgICBzdGF0aWMg
Q2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKICAgICB9OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9y
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3Iu
Y3BwCmluZGV4IDc3ZjQ3MDU0ZmIyZGIxYjg2OTcyYWMyNWMzMThkMjljNjNkOTY0YmMuLjc2Nzgy
MjQ2NmZhNzE0OTJkNzc5NzE4OTE3NDBiYjc1ODIyZTcyYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwCkBAIC03MSw2
ICs3MSwxMSBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsRnVuY3Rp
b25Db25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMpCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShjb25zdHJ1Y3RGdW5jdGlvbihleGVjLCBhc0ludGVybmFsRnVuY3Rpb24oZXhlYy0+Y2FsbGVl
KCkpLT5nbG9iYWxPYmplY3QoKSwgYXJncykpOwogfQogCitDYWxsVHlwZSBGdW5jdGlvbkNvbnN0
cnVjdG9yOjpnZXRDYWxsRGF0YVZpcnR1YWwoQ2FsbERhdGEmIGNhbGxEYXRhKQoreworICAgIHJl
dHVybiBnZXRDYWxsRGF0YSh0aGlzLCBjYWxsRGF0YSk7Cit9CisKIC8vIEVDTUEgMTUuMy4xIFRo
ZSBGdW5jdGlvbiBDb25zdHJ1Y3RvciBDYWxsZWQgYXMgYSBGdW5jdGlvbgogQ2FsbFR5cGUgRnVu
Y3Rpb25Db25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRh
KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25D
b25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25z
dHJ1Y3Rvci5oCmluZGV4IDhmYjkwYjBhNGQ3YTJjMTI2MWNiNjcwYTVlOTM2MDRlYjdiMmU5YjIu
LjIyYTYwMTZiNzg1M2JkMTY4MjllNjU1MTc2N2RmMzEwYTA2OGVlODEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmgKQEAgLTQ5
LDYgKzQ5LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEZ1bmN0aW9uQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqKTsKICAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlv
bihFeGVjU3RhdGUqLCBGdW5jdGlvblByb3RvdHlwZSopOwogICAgICAgICB2aXJ0dWFsIENvbnN0
cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShDb25zdHJ1Y3REYXRhJik7CisgICAgICAgIHZpcnR1
YWwgQ2FsbFR5cGUgZ2V0Q2FsbERhdGFWaXJ0dWFsKENhbGxEYXRhJik7CiAgICAgICAgIHN0YXRp
YyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwogICAgIH07CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBl
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmNw
cAppbmRleCBiODMxZDVkYzAwYzA1MWMxMTMxYTMxNTUxYTRhNTVmNTQ5YTYyZThlLi5jMDJlNjc1
ZTRmYzY1NzRiOTIwODQ5MmQyYWIzYmE3ZTQ4N2U4NGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwCkBAIC0zNCwxMyArMzQs
MTMgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIEFTU0VSVF9DTEFTU19GSVRTX0lOX0NFTEwoRnVuY3Rp
b25Qcm90b3R5cGUpOwogCi1jb25zdCBDbGFzc0luZm8gRnVuY3Rpb25Qcm90b3R5cGU6OnNfaW5m
byA9IHsgIkZ1bmN0aW9uIiwgJkJhc2U6OnNfaW5mbywgMCwgMCwgQ1JFQVRFX01FVEhPRF9UQUJM
RShGdW5jdGlvblByb3RvdHlwZSkgfTsKLQogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZnVuY3Rpb25Qcm90b0Z1bmNUb1N0cmluZyhFeGVjU3RhdGUqKTsKIHN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uUHJvdG9GdW5jQXBwbHkoRXhlY1N0YXRl
Kik7CiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblByb3RvRnVu
Y0NhbGwoRXhlY1N0YXRlKik7CiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBm
dW5jdGlvblByb3RvRnVuY0JpbmQoRXhlY1N0YXRlKik7CiAKK2NvbnN0IENsYXNzSW5mbyBGdW5j
dGlvblByb3RvdHlwZTo6c19pbmZvID0geyAiRnVuY3Rpb24iLCAmQmFzZTo6c19pbmZvLCAwLCAw
LCBDUkVBVEVfTUVUSE9EX1RBQkxFKEZ1bmN0aW9uUHJvdG90eXBlKSB9OworCiBGdW5jdGlvblBy
b3RvdHlwZTo6RnVuY3Rpb25Qcm90b3R5cGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
U3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBJbnRlcm5hbEZ1bmN0aW9uKGdsb2JhbE9iamVj
dCwgc3RydWN0dXJlKQogewpAQCAtNzIsNiArNzIsMTEgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgY2FsbEZ1bmN0aW9uUHJvdG90eXBlKEV4ZWNTdGF0ZSopCiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAorQ2FsbFR5cGUgRnVuY3Rp
b25Qcm90b3R5cGU6OmdldENhbGxEYXRhVmlydHVhbChDYWxsRGF0YSYgY2FsbERhdGEpCit7Cisg
ICAgcmV0dXJuIGdldENhbGxEYXRhKHRoaXMsIGNhbGxEYXRhKTsKK30KKwogLy8gRUNNQSAxNS4z
LjQKIENhbGxUeXBlIEZ1bmN0aW9uUHJvdG90eXBlOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxs
RGF0YSYgY2FsbERhdGEpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9GdW5jdGlvblByb3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RnVuY3Rpb25Qcm90b3R5cGUuaAppbmRleCA0NWUwOTMzZTE3MzA3NzE5NGQ1MmFjMDQ0MWViNzZl
ZTQ4NzZhNmNiLi43YzE5NjMyMjJmZWQwMDJkMDYxYjEzMGFiNjU5MDMwZjBlNzUzMjJjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmgK
QEAgLTUwLDYgKzUwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBwcml2YXRlOgogICAgICAg
ICBGdW5jdGlvblByb3RvdHlwZShKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSopOworICAgICAg
ICB2aXJ0dWFsIENhbGxUeXBlIGdldENhbGxEYXRhVmlydHVhbChDYWxsRGF0YSYpOwogICAgICAg
ICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKICAgICB9
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1
bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rp
b24uY3BwCmluZGV4IDE3MTQxNjM3NjcxMzliNjAzZGM0NjZkZTM1ZGI5Njg5YjM3YjliM2EuLjE3
YzcyNjVjNzgxN2JkODc2ZWVmOGY5MTNmMDdjOTFjNWEyMGFkNzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uY3BwCkBAIC01MCw3ICs1
MCw2IEBAIHZvaWQgSW50ZXJuYWxGdW5jdGlvbjo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRh
JiBnbG9iYWxEYXRhLCBjb25zdCBJZGVudGlmaWVyCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRp
b24oZ2xvYmFsRGF0YSk7CiAgICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKLSAgICBBU1NF
UlQobWV0aG9kVGFibGUoKS0+Z2V0Q2FsbERhdGEgIT0gSW50ZXJuYWxGdW5jdGlvbjo6c19pbmZv
Lm1ldGhvZFRhYmxlLmdldENhbGxEYXRhKTsKICAgICBwdXREaXJlY3QoZ2xvYmFsRGF0YSwgZ2xv
YmFsRGF0YS5wcm9wZXJ0eU5hbWVzLT5uYW1lLCBqc1N0cmluZygmZ2xvYmFsRGF0YSwgbmFtZS5p
c051bGwoKSA/ICIiIDogbmFtZS51c3RyaW5nKCkpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBE
b250RW51bSk7CiB9CiAKQEAgLTY5LDEyICs2OCw2IEBAIGNvbnN0IFVTdHJpbmcgSW50ZXJuYWxG
dW5jdGlvbjo6ZGlzcGxheU5hbWUoRXhlY1N0YXRlKiBleGVjKQogICAgIHJldHVybiBVU3RyaW5n
KCk7CiB9CiAKLUNhbGxUeXBlIEludGVybmFsRnVuY3Rpb246OmdldENhbGxEYXRhKEpTQ2VsbCos
IENhbGxEYXRhJikKLXsKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gQ2Fs
bFR5cGVOb25lOwotfQotCiBjb25zdCBVU3RyaW5nIEludGVybmFsRnVuY3Rpb246OmNhbGN1bGF0
ZWREaXNwbGF5TmFtZShFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgY29uc3QgVVN0cmluZyBleHBs
aWNpdE5hbWUgPSBkaXNwbGF5TmFtZShleGVjKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uaAppbmRleCA4ZTIxNzhlM2Y2NTk3OGE5YzFhZWFl
OWE0NTVmNjI5YmYxNGNhZjAzLi45Y2E1OWZiNzkwM2Y0Nzk3OTA1ODVkMDgxM2U2MDkxOTNmZDBk
NjZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1
bmN0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5j
dGlvbi5oCkBAIC01Niw5ICs1Niw5IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHZvaWQg
ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiwgY29uc3QgSWRlbnRpZmllciYgbmFtZSk7CiAK
LSAgICAgICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7
Ci0KICAgICBwcml2YXRlOgorICAgICAgICB2aXJ0dWFsIENhbGxUeXBlIGdldENhbGxEYXRhVmly
dHVhbChDYWxsRGF0YSYpID0gMDsKKwogICAgICAgICB2aXJ0dWFsIHZvaWQgdnRhYmxlQW5jaG9y
KCk7CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNDZWxsLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5jcHAKaW5k
ZXggZjVkNWI5YjJkYTU0YzY2MWI0ZTZkNzYzMzFmY2JhYTNkM2Q1NDFiMC4uMzhiZDgxNmYzOWIw
MDRjN2VjMDQwZGZjYTg2OGU4NGI3ODRhYjcxOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNDZWxsLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0NlbGwuY3BwCkBAIC01NCw2ICs1NCwxMSBAQCBjb25zdCBKU09iamVjdCogSlNDZWxs
OjpnZXRPYmplY3QoKSBjb25zdAogICAgIHJldHVybiBpc09iamVjdCgpID8gc3RhdGljX2Nhc3Q8
Y29uc3QgSlNPYmplY3QqPih0aGlzKSA6IDA7CiB9CiAKK0NhbGxUeXBlIEpTQ2VsbDo6Z2V0Q2Fs
bERhdGFWaXJ0dWFsKENhbGxEYXRhJiBjYWxsRGF0YSkKK3sKKyAgICByZXR1cm4gZ2V0Q2FsbERh
dGEodGhpcywgY2FsbERhdGEpOworfQorCiBDYWxsVHlwZSBKU0NlbGw6OmdldENhbGxEYXRhKEpT
Q2VsbCosIENhbGxEYXRhJikKIHsKICAgICByZXR1cm4gQ2FsbFR5cGVOb25lOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAppbmRleCAyNGZlNzlmMzZiOGJjZTMzZmQzODgwMzA4
ZWY2ZDI5MWRhNmI2NGI3Li40MzM0YmNjOGQ0MTgwZjU1NGFiYzM3ODNiNWY2YjQ4NjA0NDY5OTVm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaApAQCAtNzMsNiArNzMsNyBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgSlNPYmplY3QqIGdldE9iamVjdCgpOyAvLyBOVUxM
IGlmIG5vdCBhbiBvYmplY3QKICAgICAgICAgY29uc3QgSlNPYmplY3QqIGdldE9iamVjdCgpIGNv
bnN0OyAvLyBOVUxMIGlmIG5vdCBhbiBvYmplY3QKICAgICAgICAgCisgICAgICAgIHZpcnR1YWwg
Q2FsbFR5cGUgZ2V0Q2FsbERhdGFWaXJ0dWFsKENhbGxEYXRhJik7CiAgICAgICAgIHN0YXRpYyBD
YWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwogICAgICAgICB2aXJ0dWFs
IENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShDb25zdHJ1Y3REYXRhJik7CiAKQEAgLTEz
OSw3ICsxNDAsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgCiAgICAgICAgIFdyaXRlQmFy
cmllcjxTdHJ1Y3R1cmU+IG1fc3RydWN0dXJlOwogICAgIH07Ci0gICAgCisKICAgICBpbmxpbmUg
SlNDZWxsOjpKU0NlbGwoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSkKICAgICAgICAgOiBtX3N0cnVjdHVyZShnbG9iYWxEYXRhLCB0aGlzLCBzdHJ1Y3R1cmUp
CiAgICAgewpAQCAtMjMyLDYgKzIzMywxMyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgcmV0
dXJuIGlzQ2VsbCgpID8gYXNDZWxsKCktPmdldE9iamVjdCgpIDogMDsKICAgICB9CiAKKyAgICBp
bmxpbmUgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNWYWx1ZSB2YWx1ZSwgQ2FsbERhdGEmIGNhbGxE
YXRhKQorICAgIHsKKyAgICAgICAgQ2FsbFR5cGUgcmVzdWx0ID0gdmFsdWUuaXNDZWxsKCkgPyB2
YWx1ZS5hc0NlbGwoKS0+Z2V0Q2FsbERhdGFWaXJ0dWFsKGNhbGxEYXRhKSA6IENhbGxUeXBlTm9u
ZTsKKyAgICAgICAgQVNTRVJUKHJlc3VsdCA9PSBDYWxsVHlwZU5vbmUgfHwgdmFsdWUuaXNWYWxp
ZENhbGxlZSgpKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKICAgICBpbmxpbmUg
Q29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpTVmFsdWUgdmFsdWUsIENvbnN0cnVjdERh
dGEmIGNvbnN0cnVjdERhdGEpCiAgICAgewogICAgICAgICBDb25zdHJ1Y3RUeXBlIHJlc3VsdCA9
IHZhbHVlLmlzQ2VsbCgpID8gdmFsdWUuYXNDZWxsKCktPmdldENvbnN0cnVjdERhdGEoY29uc3Ry
dWN0RGF0YSkgOiBDb25zdHJ1Y3RUeXBlTm9uZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNGdW5jdGlvbi5jcHAKaW5kZXggNDQwM2M4NWNjYmU2NDFmNjMyNTRkZmZjNDBhYTUy
ZmFlMDk3YWUwYi4uZWIyYTI3YjFlNmEwOTAwZGNmMTdlYjU2MGMxODBmMDA4OTQ0MjQ4NCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKQEAgLTE2NCw2
ICsxNjQsMTEgQEAgdm9pZCBKU0Z1bmN0aW9uOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwg
U2xvdFZpc2l0b3ImIHZpc2l0b3IpCiAgICAgICAgIHZpc2l0b3IuYXBwZW5kKCZ0aGlzT2JqZWN0
LT5tX2V4ZWN1dGFibGUpOwogfQogCitDYWxsVHlwZSBKU0Z1bmN0aW9uOjpnZXRDYWxsRGF0YVZp
cnR1YWwoQ2FsbERhdGEmIGNhbGxEYXRhKQoreworICAgIHJldHVybiBnZXRDYWxsRGF0YSh0aGlz
LCBjYWxsRGF0YSk7Cit9CisKIENhbGxUeXBlIEpTRnVuY3Rpb246OmdldENhbGxEYXRhKEpTQ2Vs
bCogY2VsbCwgQ2FsbERhdGEmIGNhbGxEYXRhKQogewogICAgIEpTRnVuY3Rpb24qIHRoaXNPYmpl
Y3QgPSBzdGF0aWNfY2FzdDxKU0Z1bmN0aW9uKj4oY2VsbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0Z1bmN0aW9uLmgKaW5kZXggODg2M2FhMzQ2YTJhMTUzYWU0NjIxNzM3MjA4
NzE5NmZlMjdhOTczNS4uZDg5ZWIyZDk1YWNhN2VlMWU3NGIzMmNkMDNmYzQ5MGY1MWY4MTdhZSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaApAQCAtMTA5LDYg
KzEwOSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBOYXRpdmVGdW5jdGlvbiBuYXRpdmVD
b25zdHJ1Y3RvcigpOwogCiAgICAgICAgIHZpcnR1YWwgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1
Y3REYXRhKENvbnN0cnVjdERhdGEmKTsKKyAgICAgICAgdmlydHVhbCBDYWxsVHlwZSBnZXRDYWxs
RGF0YVZpcnR1YWwoQ2FsbERhdGEmKTsKICAgICAgICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxE
YXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiAKICAgICAgICAgc3RhdGljIGlubGluZSBzaXplX3Qg
b2Zmc2V0T2ZTY29wZUNoYWluKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTR2xvYmFsT2JqZWN0LmNwcAppbmRleCA0MTJjNDA5M2RkOTgzMWI0YWUyMGRkYWZiMjIwMzlj
NDU0YWRjOTg4Li5iNzg0NTJhZjFkOTM5OGRkZDU3YTJkMzVhMDJjMTA3OWMwODVlMjNjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCkBA
IC00Miw3ICs0Miw2IEBACiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiRGF0ZUNv
bnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAiRGF0ZVByb3RvdHlwZS5oIgotI2luY2x1ZGUgIkVycm9y
LmgiCiAjaW5jbHVkZSAiRXJyb3JDb25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIkVycm9yUHJvdG90
eXBlLmgiCiAjaW5jbHVkZSAiRnVuY3Rpb25Db25zdHJ1Y3Rvci5oIgpAQCAtMTk4LDcgKzE5Nyw2
IEBAIHZvaWQgSlNHbG9iYWxPYmplY3Q6OnJlc2V0KEpTVmFsdWUgcHJvdG90eXBlKQogICAgIG1f
Ym91bmRGdW5jdGlvblN0cnVjdHVyZS5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBKU0Jv
dW5kRnVuY3Rpb246OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMsIG1f
ZnVuY3Rpb25Qcm90b3R5cGUuZ2V0KCkpKTsKICAgICBtX25hbWVkRnVuY3Rpb25TdHJ1Y3R1cmUu
c2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgU3RydWN0dXJlOjphZGRQcm9wZXJ0eVRyYW5z
aXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpLCBtX2Z1bmN0aW9uU3RydWN0dXJlLmdldCgpLCBleGVj
LT5nbG9iYWxEYXRhKCkucHJvcGVydHlOYW1lcy0+bmFtZSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5
IHwgRG9udEVudW0sIDAsIG1fZnVuY3Rpb25OYW1lT2Zmc2V0KSk7CiAgICAgbV9pbnRlcm5hbEZ1
bmN0aW9uU3RydWN0dXJlLnNldChleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMsIEludGVybmFsRnVu
Y3Rpb246OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMsIG1fZnVuY3Rp
b25Qcm90b3R5cGUuZ2V0KCkpKTsKLSAgICBtX3N0cmljdE1vZGVUeXBlRXJyb3JGdW5jdGlvblN0
cnVjdHVyZS5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBTdHJpY3RNb2RlVHlwZUVycm9y
RnVuY3Rpb246OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMsIG1fZnVu
Y3Rpb25Qcm90b3R5cGUuZ2V0KCkpKTsKICAgICBKU0Z1bmN0aW9uKiBjYWxsRnVuY3Rpb24gPSAw
OwogICAgIEpTRnVuY3Rpb24qIGFwcGx5RnVuY3Rpb24gPSAwOwogICAgIG1fZnVuY3Rpb25Qcm90
b3R5cGUtPmFkZEZ1bmN0aW9uUHJvcGVydGllcyhleGVjLCB0aGlzLCAmY2FsbEZ1bmN0aW9uLCAm
YXBwbHlGdW5jdGlvbik7CkBAIC0zNjcsNyArMzY1LDYgQEAgdm9pZCBKU0dsb2JhbE9iamVjdDo6
dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogICAgIHZp
c2l0SWZOZWVkZWQodmlzaXRvciwgJnRoaXNPYmplY3QtPm1fcmVnRXhwU3RydWN0dXJlKTsKICAg
ICB2aXNpdElmTmVlZGVkKHZpc2l0b3IsICZ0aGlzT2JqZWN0LT5tX3N0cmluZ09iamVjdFN0cnVj
dHVyZSk7CiAgICAgdmlzaXRJZk5lZWRlZCh2aXNpdG9yLCAmdGhpc09iamVjdC0+bV9pbnRlcm5h
bEZ1bmN0aW9uU3RydWN0dXJlKTsKLSAgICB2aXNpdElmTmVlZGVkKHZpc2l0b3IsICZ0aGlzT2Jq
ZWN0LT5tX3N0cmljdE1vZGVUeXBlRXJyb3JGdW5jdGlvblN0cnVjdHVyZSk7CiAKICAgICBpZiAo
dGhpc09iamVjdC0+bV9yZWdpc3RlckFycmF5KSB7CiAgICAgICAgIC8vIE91dHNpZGUgdGhlIGV4
ZWN1dGlvbiBvZiBnbG9iYWwgY29kZSwgd2hlbiBvdXIgdmFyaWFibGVzIGFyZSB0b3JuIG9mZiwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCmluZGV4
IGZhZDc5ZjIzZjVjYzdhNzAwN2MzZjBmZWRkOGE1ZjlhOGU1ZWUwYmEuLjRmNzMxYzVjMTRiOGI3
ZDdiZDZkNDVlMGM0NjJlMGY0MjY2NjZlOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaApAQCAtMTE5LDcgKzExOSw2IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgICAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX3JlZ0V4cFN0cnVjdHVyZTsK
ICAgICAgICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4gbV9zdHJpbmdPYmplY3RTdHJ1Y3R1cmU7
CiAgICAgICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1faW50ZXJuYWxGdW5jdGlvblN0cnVj
dHVyZTsKLSAgICAgICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4gbV9zdHJpY3RNb2RlVHlwZUVy
cm9yRnVuY3Rpb25TdHJ1Y3R1cmU7CiAKICAgICAgICAgRGVidWdnZXIqIG1fZGVidWdnZXI7CiAK
QEAgLTIzOSw3ICsyMzgsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgc2l6ZV90IGZ1bmN0
aW9uTmFtZU9mZnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fZnVuY3Rpb25OYW1lT2Zmc2V0OyB9CiAg
ICAgICAgIFN0cnVjdHVyZSogbnVtYmVyT2JqZWN0U3RydWN0dXJlKCkgY29uc3QgeyByZXR1cm4g
bV9udW1iZXJPYmplY3RTdHJ1Y3R1cmUuZ2V0KCk7IH0KICAgICAgICAgU3RydWN0dXJlKiBpbnRl
cm5hbEZ1bmN0aW9uU3RydWN0dXJlKCkgY29uc3QgeyByZXR1cm4gbV9pbnRlcm5hbEZ1bmN0aW9u
U3RydWN0dXJlLmdldCgpOyB9Ci0gICAgICAgIFN0cnVjdHVyZSogc3RyaWN0TW9kZVR5cGVFcnJv
ckZ1bmN0aW9uU3RydWN0dXJlKCkgY29uc3QgeyByZXR1cm4gbV9zdHJpY3RNb2RlVHlwZUVycm9y
RnVuY3Rpb25TdHJ1Y3R1cmUuZ2V0KCk7IH0KICAgICAgICAgU3RydWN0dXJlKiByZWdFeHBNYXRj
aGVzQXJyYXlTdHJ1Y3R1cmUoKSBjb25zdCB7IHJldHVybiBtX3JlZ0V4cE1hdGNoZXNBcnJheVN0
cnVjdHVyZS5nZXQoKTsgfQogICAgICAgICBTdHJ1Y3R1cmUqIHJlZ0V4cFN0cnVjdHVyZSgpIGNv
bnN0IHsgcmV0dXJuIG1fcmVnRXhwU3RydWN0dXJlLmdldCgpOyB9CiAgICAgICAgIFN0cnVjdHVy
ZSogc3RyaW5nT2JqZWN0U3RydWN0dXJlKCkgY29uc3QgeyByZXR1cm4gbV9zdHJpbmdPYmplY3RT
dHJ1Y3R1cmUuZ2V0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTT05PYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9i
amVjdC5jcHAKaW5kZXggZDRkY2E2MWE2MWJiYWMwMTkyNmM1OTNlYTczNGM4MzYyM2IyZTU3OC4u
ZjRlOGI4ZTEwYzk3MzU5NjYwMzc1MTcwNGZmMmNmMzhhMWY5YzJjNCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAKQEAgLTI0NSw3ICsyNDUsNyBAQCBT
dHJpbmdpZmllcjo6U3RyaW5naWZpZXIoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBMb2NhbDxVbmtu
b3duPiYgcmVwbGFjZXIsIGNvbnN0CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBtX3Jl
cGxhY2VyQ2FsbFR5cGUgPSBtX3JlcGxhY2VyLmFzT2JqZWN0KCktPm1ldGhvZFRhYmxlKCktPmdl
dENhbGxEYXRhKG1fcmVwbGFjZXIuYXNPYmplY3QoKS5nZXQoKSwgbV9yZXBsYWNlckNhbGxEYXRh
KTsKKyAgICBtX3JlcGxhY2VyQ2FsbFR5cGUgPSBtX3JlcGxhY2VyLmFzT2JqZWN0KCktPmdldENh
bGxEYXRhVmlydHVhbChtX3JlcGxhY2VyQ2FsbERhdGEpOwogfQogCiBMb2NhbDxVbmtub3duPiBT
dHJpbmdpZmllcjo6c3RyaW5naWZ5KEhhbmRsZTxVbmtub3duPiB2YWx1ZSkKQEAgLTMzNiw3ICsz
MzYsNyBAQCBpbmxpbmUgSlNWYWx1ZSBTdHJpbmdpZmllcjo6dG9KU09OKEpTVmFsdWUgdmFsdWUs
IGNvbnN0IFByb3BlcnR5TmFtZUZvckZ1bmN0aW9uQwogCiAgICAgSlNPYmplY3QqIG9iamVjdCA9
IGFzT2JqZWN0KHRvSlNPTkZ1bmN0aW9uKTsKICAgICBDYWxsRGF0YSBjYWxsRGF0YTsKLSAgICBD
YWxsVHlwZSBjYWxsVHlwZSA9IG9iamVjdC0+bWV0aG9kVGFibGUoKS0+Z2V0Q2FsbERhdGEob2Jq
ZWN0LCBjYWxsRGF0YSk7CisgICAgQ2FsbFR5cGUgY2FsbFR5cGUgPSBvYmplY3QtPmdldENhbGxE
YXRhVmlydHVhbChjYWxsRGF0YSk7CiAgICAgaWYgKGNhbGxUeXBlID09IENhbGxUeXBlTm9uZSkK
ICAgICAgICAgcmV0dXJuIHZhbHVlOwogCkBAIC00MDAsNyArNDAwLDcgQEAgU3RyaW5naWZpZXI6
OlN0cmluZ2lmeVJlc3VsdCBTdHJpbmdpZmllcjo6YXBwZW5kU3RyaW5naWZpZWRWYWx1ZShVU3Ry
aW5nQnVpbGRlciYKICAgICBKU09iamVjdCogb2JqZWN0ID0gYXNPYmplY3QodmFsdWUpOwogCiAg
ICAgQ2FsbERhdGEgY2FsbERhdGE7Ci0gICAgaWYgKG9iamVjdC0+bWV0aG9kVGFibGUoKS0+Z2V0
Q2FsbERhdGEob2JqZWN0LCBjYWxsRGF0YSkgIT0gQ2FsbFR5cGVOb25lKSB7CisgICAgaWYgKG9i
amVjdC0+Z2V0Q2FsbERhdGFWaXJ0dWFsKGNhbGxEYXRhKSAhPSBDYWxsVHlwZU5vbmUpIHsKICAg
ICAgICAgaWYgKGhvbGRlci0+aW5oZXJpdHMoJkpTQXJyYXk6OnNfaW5mbykpIHsKICAgICAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKCJudWxsIik7CiAgICAgICAgICAgICByZXR1cm4gU3RyaW5naWZ5
U3VjY2VlZGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNP
YmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCmlu
ZGV4IGM0Mjk2NzRiOGZjZDU1YmVhZDg3MDUyMzg4YTVmNGIzNzg3NDY5MzguLjdkZjhkYWJiYmYy
NWM0MDc5ODgyNDA2N2I1MDhlY2FlNjY2YWYxNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU09iamVjdC5jcHAKQEAgLTE2MSw3ICsxNjEsNyBAQCB2b2lkIEpTT2JqZWN0Ojpw
dXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZQogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg
ICAgICBDYWxsRGF0YSBjYWxsRGF0YTsKLSAgICAgICAgICAgICAgICBDYWxsVHlwZSBjYWxsVHlw
ZSA9IHNldHRlckZ1bmMtPm1ldGhvZFRhYmxlKCktPmdldENhbGxEYXRhKHNldHRlckZ1bmMsIGNh
bGxEYXRhKTsKKyAgICAgICAgICAgICAgICBDYWxsVHlwZSBjYWxsVHlwZSA9IHNldHRlckZ1bmMt
PmdldENhbGxEYXRhVmlydHVhbChjYWxsRGF0YSk7CiAgICAgICAgICAgICAgICAgTWFya2VkQXJn
dW1lbnRCdWZmZXIgYXJnczsKICAgICAgICAgICAgICAgICBhcmdzLmFwcGVuZCh2YWx1ZSk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCmluZGV4IDMwOGNlMmIyYTYy
ODYzOWMwMTM0OTY1ZWQ3MDA4OWM5MGNlMTdmNDAuLjZmYWY5YmVlZWI0OWYwNjgyOGFlNmNhYjdl
YTIwZjA3Zjc2NWI3NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3Qu
aApAQCAtNDExLDEzICs0MTEsNiBAQCBpbmxpbmUgSlNPYmplY3QqIGNvbnN0cnVjdEVtcHR5T2Jq
ZWN0KEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgcmV0dXJuIEpT
RmluYWxPYmplY3Q6OmNyZWF0ZShleGVjLCBzdHJ1Y3R1cmUpOwogfQogCi1pbmxpbmUgQ2FsbFR5
cGUgZ2V0Q2FsbERhdGEoSlNWYWx1ZSB2YWx1ZSwgQ2FsbERhdGEmIGNhbGxEYXRhKQotewotICAg
IENhbGxUeXBlIHJlc3VsdCA9IHZhbHVlLmlzQ2VsbCgpID8gdmFsdWUuYXNDZWxsKCktPm1ldGhv
ZFRhYmxlKCktPmdldENhbGxEYXRhKHZhbHVlLmFzQ2VsbCgpLCBjYWxsRGF0YSkgOiBDYWxsVHlw
ZU5vbmU7Ci0gICAgQVNTRVJUKHJlc3VsdCA9PSBDYWxsVHlwZU5vbmUgfHwgdmFsdWUuaXNWYWxp
ZENhbGxlZSgpKTsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCiBpbmxpbmUgU3RydWN0dXJlKiBj
cmVhdGVFbXB0eU9iamVjdFN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogewogICAgIHJldHVy
biBKU0ZpbmFsT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0
LCBwcm90b3R5cGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
TmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmNwcAppbmRleCAyN2JlNTQxMzEzMmI1MzNmZDUzNzRj
MzdhYjQzY2U2NTEwYzNiNDFjLi5mMmU2YmNjZjcxMDgzZmYyNGYzYWQ1NTk2OGRmOWY5YmM5YjU5
OWRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJv
ckNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRp
dmVFcnJvckNvbnN0cnVjdG9yLmNwcApAQCAtNjksNiArNjksMTEgQEAgc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbE5hdGl2ZUVycm9yQ29uc3RydWN0b3IoRXhlY1N0YXRl
KiBleGVjKQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRl
KGV4ZWMsIGVycm9yU3RydWN0dXJlLCBtZXNzYWdlKSk7CiB9CiAKK0NhbGxUeXBlIE5hdGl2ZUVy
cm9yQ29uc3RydWN0b3I6OmdldENhbGxEYXRhVmlydHVhbChDYWxsRGF0YSYgY2FsbERhdGEpCit7
CisgICAgcmV0dXJuIGdldENhbGxEYXRhKHRoaXMsIGNhbGxEYXRhKTsKK30KKwogQ2FsbFR5cGUg
TmF0aXZlRXJyb3JDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNh
bGxEYXRhKQogewogICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNhbGxOYXRpdmVFcnJv
ckNvbnN0cnVjdG9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
TmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
TmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5oCmluZGV4IDViZDllNjBmODRhMWVlYmM2NjRiYmJiY2Vm
NmU4NmU1MzE4ZjA1NTcuLjY3ZjUyOGQwYWU3MmUzZjliMTM2MTcwYjMzNmUyODQ1ZWRiYThhNzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yQ29u
c3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJv
ckNvbnN0cnVjdG9yLmgKQEAgLTY5LDYgKzY5LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAg
IE5hdGl2ZUVycm9yQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqKTsKICAg
ICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzVmlz
aXRDaGlsZHJlbiB8IEludGVybmFsRnVuY3Rpb246OlN0cnVjdHVyZUZsYWdzOwogICAgICAgICB2
aXJ0dWFsIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShDb25zdHJ1Y3REYXRhJik7Cisg
ICAgICAgIHZpcnR1YWwgQ2FsbFR5cGUgZ2V0Q2FsbERhdGFWaXJ0dWFsKENhbGxEYXRhJik7CiAg
ICAgICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwog
ICAgICAgICBzdGF0aWMgdm9pZCB2aXNpdENoaWxkcmVuKEpTQ2VsbCosIFNsb3RWaXNpdG9yJik7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0
cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVj
dG9yLmNwcAppbmRleCA3MzgwOWQ5MjhhMjQ2MjE5MTljYjczMTBhZGM4Y2IxODA1ZmRmZTUwLi5m
Y2EwMjJiMTRmOTA3NWM5ZTIzMjI0M2ExMzQ4NDA2MzA3NDJjMDk4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuY3BwCkBAIC0xMjcs
NiArMTI3LDExIEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxOdW1i
ZXJDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMpCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc051bWJlcighZXhlYy0+YXJndW1lbnRDb3VudCgpID8gMCA6IGV4ZWMtPmFyZ3VtZW50KDAp
LnRvTnVtYmVyKGV4ZWMpKSk7CiB9CiAKK0NhbGxUeXBlIE51bWJlckNvbnN0cnVjdG9yOjpnZXRD
YWxsRGF0YVZpcnR1YWwoQ2FsbERhdGEmIGNhbGxEYXRhKQoreworICAgIHJldHVybiBnZXRDYWxs
RGF0YSh0aGlzLCBjYWxsRGF0YSk7Cit9CisKIENhbGxUeXBlIE51bWJlckNvbnN0cnVjdG9yOjpn
ZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCiB7CiAgICAgY2FsbERhdGEu
bmF0aXZlLmZ1bmN0aW9uID0gY2FsbE51bWJlckNvbnN0cnVjdG9yOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmgKaW5kZXggOWI5MTAwZTMx
YjEwZDkyZmM1MTU5Mzg0N2VhMGE0NDJkNGE3Yzc1OS4uOGFlYTY5MDdhMzI2ZWJhMDUzNWVmMzFh
YTI0ZGIwYTA2ZTdlY2RlMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvTnVtYmVyQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9OdW1iZXJDb25zdHJ1Y3Rvci5oCkBAIC01OCw2ICs1OCw3IEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgIHByaXZhdGU6CiAgICAgICAgIE51bWJlckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0Kiwg
U3RydWN0dXJlKik7CiAgICAgICAgIHZpcnR1YWwgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3RE
YXRhKENvbnN0cnVjdERhdGEmKTsKKyAgICAgICAgdmlydHVhbCBDYWxsVHlwZSBnZXRDYWxsRGF0
YVZpcnR1YWwoQ2FsbERhdGEmKTsKICAgICAgICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRh
KEpTQ2VsbCosIENhbGxEYXRhJik7CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwCmluZGV4IGE3NDMwZmVkYWRjMTYx
ZDdjZjRiNDYzNTA1NDMxNjMzMzA1NzIyMjEuLjFhMzljMTg5ZGM3YmMyNzY1NWU3OTg5ODQzNjMx
NDc5NDEzNGE1M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09i
amVjdENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9P
YmplY3RDb25zdHJ1Y3Rvci5jcHAKQEAgLTEyNiw2ICsxMjYsMTEgQEAgc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbE9iamVjdENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhl
YykKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNvbnN0cnVjdE9iamVjdChleGVjLCBhc0lu
dGVybmFsRnVuY3Rpb24oZXhlYy0+Y2FsbGVlKCkpLT5nbG9iYWxPYmplY3QoKSwgYXJncykpOwog
fQogCitDYWxsVHlwZSBPYmplY3RDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGFWaXJ0dWFsKENhbGxE
YXRhJiBjYWxsRGF0YSkKK3sKKyAgICByZXR1cm4gZ2V0Q2FsbERhdGEodGhpcywgY2FsbERhdGEp
OworfQorCiBDYWxsVHlwZSBPYmplY3RDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwg
Q2FsbERhdGEmIGNhbGxEYXRhKQogewogICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNh
bGxPYmplY3RDb25zdHJ1Y3RvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL09iamVjdENvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9PYmplY3RDb25zdHJ1Y3Rvci5oCmluZGV4IDU0NzU3M2MxMjJmY2M2NDRlZWFiNmZmZTUyYjQ3
YzJlZGE3MzIxMzMuLmRkZjNjYWY0YzQxMWMyYmE4MGE4NjJkZmUwNzFhMmQ3ZGEzMDA5NTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9y
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3Iu
aApAQCAtNTUsNiArNTUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBwcml2YXRlOgogICAgICAg
ICBPYmplY3RDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSopOwogICAgICAg
ICB2aXJ0dWFsIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShDb25zdHJ1Y3REYXRhJik7
CisgICAgICAgIHZpcnR1YWwgQ2FsbFR5cGUgZ2V0Q2FsbERhdGFWaXJ0dWFsKENhbGxEYXRhJik7
CiAgICAgICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYp
OwogICAgIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09w
ZXJhdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3BlcmF0aW9ucy5j
cHAKaW5kZXggYmZmZDlmZmUxYjUxMDMwOGE0MjVkMmI1YWUxMWE0NGJkMjBmY2Q4ZS4uNTJmNGU5
ZDY1OGZjNGJmOGVkNTZiN2FjZTE5YzFjOGRjYmIwZWQyZiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvT3BlcmF0aW9ucy5jcHAKQEAgLTc0LDggKzc0LDcgQEAgSlNWYWx1ZSBq
c1R5cGVTdHJpbmdGb3JWYWx1ZShDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNWYWx1ZSB2KQogICAg
ICAgICBpZiAoYXNPYmplY3QodiktPnN0cnVjdHVyZSgpLT50eXBlSW5mbygpLm1hc3F1ZXJhZGVz
QXNVbmRlZmluZWQoKSkKICAgICAgICAgICAgIHJldHVybiBqc05vbnRyaXZpYWxTdHJpbmcoY2Fs
bEZyYW1lLCAidW5kZWZpbmVkIik7CiAgICAgICAgIENhbGxEYXRhIGNhbGxEYXRhOwotICAgICAg
ICBKU09iamVjdCogb2JqZWN0ID0gYXNPYmplY3Qodik7Ci0gICAgICAgIGlmIChvYmplY3QtPm1l
dGhvZFRhYmxlKCktPmdldENhbGxEYXRhKG9iamVjdCwgY2FsbERhdGEpICE9IENhbGxUeXBlTm9u
ZSkKKyAgICAgICAgaWYgKGFzT2JqZWN0KHYpLT5nZXRDYWxsRGF0YVZpcnR1YWwoY2FsbERhdGEp
ICE9IENhbGxUeXBlTm9uZSkKICAgICAgICAgICAgIHJldHVybiBqc05vbnRyaXZpYWxTdHJpbmco
Y2FsbEZyYW1lLCAiZnVuY3Rpb24iKTsKICAgICB9CiAgICAgcmV0dXJuIGpzTm9udHJpdmlhbFN0
cmluZyhjYWxsRnJhbWUsICJvYmplY3QiKTsKQEAgLTkzLDggKzkyLDcgQEAgYm9vbCBqc0lzT2Jq
ZWN0VHlwZShKU1ZhbHVlIHYpCiAgICAgICAgIGlmIChhc09iamVjdCh2KS0+c3RydWN0dXJlKCkt
PnR5cGVJbmZvKCkubWFzcXVlcmFkZXNBc1VuZGVmaW5lZCgpKQogICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgICAgICBDYWxsRGF0YSBjYWxsRGF0YTsKLSAgICAgICAgSlNPYmplY3QqIG9i
amVjdCA9IGFzT2JqZWN0KHYpOwotICAgICAgICBpZiAob2JqZWN0LT5tZXRob2RUYWJsZSgpLT5n
ZXRDYWxsRGF0YShvYmplY3QsIGNhbGxEYXRhKSAhPSBDYWxsVHlwZU5vbmUpCisgICAgICAgIGlm
IChhc09iamVjdCh2KS0+Z2V0Q2FsbERhdGFWaXJ0dWFsKGNhbGxEYXRhKSAhPSBDYWxsVHlwZU5v
bmUpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIHJldHVybiB0cnVlOwpA
QCAtMTA0LDggKzEwMiw3IEBAIGJvb2wganNJc0Z1bmN0aW9uVHlwZShKU1ZhbHVlIHYpCiB7CiAg
ICAgaWYgKHYuaXNPYmplY3QoKSkgewogICAgICAgICBDYWxsRGF0YSBjYWxsRGF0YTsKLSAgICAg
ICAgSlNPYmplY3QqIG9iamVjdCA9IGFzT2JqZWN0KHYpOwotICAgICAgICBpZiAob2JqZWN0LT5t
ZXRob2RUYWJsZSgpLT5nZXRDYWxsRGF0YShvYmplY3QsIGNhbGxEYXRhKSAhPSBDYWxsVHlwZU5v
bmUpCisgICAgICAgIGlmIChhc09iamVjdCh2KS0+Z2V0Q2FsbERhdGFWaXJ0dWFsKGNhbGxEYXRh
KSAhPSBDYWxsVHlwZU5vbmUpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAg
cmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
UHJvcGVydHlTbG90LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5
U2xvdC5jcHAKaW5kZXggZWRhYmQ3YTZlZGVmYjllNjM4NTdiNzdjYTZkZTc0NDVlODNhMDliOS4u
MWE4NmVlMzM3YzRkZDBiMWQzYWRmNDZiOTZhZTgxY2YwZmQyYWRiZCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlTbG90LmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eVNsb3QuY3BwCkBAIC0zMyw3ICszMyw3IEBA
IEpTVmFsdWUgUHJvcGVydHlTbG90OjpmdW5jdGlvbkdldHRlcihFeGVjU3RhdGUqIGV4ZWMpIGNv
bnN0CiAgICAgICAgIHJldHVybiBleGVjLT5leGNlcHRpb24oKTsKIAogICAgIENhbGxEYXRhIGNh
bGxEYXRhOwotICAgIENhbGxUeXBlIGNhbGxUeXBlID0gbV9kYXRhLmdldHRlckZ1bmMtPm1ldGhv
ZFRhYmxlKCktPmdldENhbGxEYXRhKG1fZGF0YS5nZXR0ZXJGdW5jLCBjYWxsRGF0YSk7CisgICAg
Q2FsbFR5cGUgY2FsbFR5cGUgPSBtX2RhdGEuZ2V0dGVyRnVuYy0+Z2V0Q2FsbERhdGFWaXJ0dWFs
KGNhbGxEYXRhKTsKICAgICAKICAgICAvLyBPbmx5IG9iamVjdHMgY2FuIGhhdmUgYWNjZXNzb3Ig
cHJvcGVydGllcy4KICAgICAvLyBJZiB0aGUgYmFzZSBpcyBXZWJDb3JlJ3MgZ2xvYmFsIG9iamVj
dCB0aGVuIHdlIG5lZWQgdG8gc3Vic3RpdHV0ZSB0aGUgc2hlbGwuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKaW5kZXggYzA3ZjM5
MDdhYTczZThjZmU1Y2E1NTAyNmNkZTI5OGIzMDhkM2E3NC4uN2Y1YjdlYTY0Mjk1NDhjODI3ODdj
YTlkZDA2MTg5NjE2MGFjNmMwOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcApAQCAtMzYyLDYgKzM2MiwxMSBAQCBzdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsUmVnRXhwQ29uc3RydWN0b3IoRXhlY1N0
YXRlKiBleGVjKQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY29uc3RydWN0UmVnRXhwKGV4
ZWMsIGFzSW50ZXJuYWxGdW5jdGlvbihleGVjLT5jYWxsZWUoKSktPmdsb2JhbE9iamVjdCgpLCBh
cmdzKSk7CiB9CiAKK0NhbGxUeXBlIFJlZ0V4cENvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YVZpcnR1
YWwoQ2FsbERhdGEmIGNhbGxEYXRhKQoreworICAgIHJldHVybiBnZXRDYWxsRGF0YSh0aGlzLCBj
YWxsRGF0YSk7Cit9CisKIENhbGxUeXBlIFJlZ0V4cENvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YShK
U0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCiB7CiAgICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0
aW9uID0gY2FsbFJlZ0V4cENvbnN0cnVjdG9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmgKaW5kZXggZDQ4OGM2NjAyYjc3NWFkYjFmZmM4
MjBiYjBiZWRkNTU2MGVkYzkwYy4uMTg3NjUxYmE4ZDI0NzE4NjZiNzMxYTNjOWNkODc1YTkzMTM0
ZWIxMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29u
c3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25z
dHJ1Y3Rvci5oCkBAIC0xMDAsNiArMTAwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgcHJpdmF0
ZToKICAgICAgICAgUmVnRXhwQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUq
KTsKICAgICAgICAgdmlydHVhbCBDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoQ29uc3Ry
dWN0RGF0YSYpOworICAgICAgICB2aXJ0dWFsIENhbGxUeXBlIGdldENhbGxEYXRhVmlydHVhbChD
YWxsRGF0YSYpOwogICAgICAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwg
Q2FsbERhdGEmKTsKIAogICAgICAgICBPd25QdHI8UmVnRXhwQ29uc3RydWN0b3JQcml2YXRlPiBk
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3Ry
dWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0
b3IuY3BwCmluZGV4IDQzY2E3MDFiYTVkMWQyMTI1MWZkYWUyMzUzMzA5NDI3NmJkOTAwNDkuLmMx
MzdjY2IxZDczYTA3NWRlNjg2M2FkYmJkYTQzMjU2MDRlMzczNWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5jcHAKQEAgLTEwOSw2
ICsxMDksMTEgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbFN0cmlu
Z0NvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYykKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzU3RyaW5nKGV4ZWMsIGV4ZWMtPmFyZ3VtZW50KDApLnRvU3RyaW5nKGV4ZWMpKSk7CiB9CiAK
K0NhbGxUeXBlIFN0cmluZ0NvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YVZpcnR1YWwoQ2FsbERhdGEm
IGNhbGxEYXRhKQoreworICAgIHJldHVybiBnZXRDYWxsRGF0YSh0aGlzLCBjYWxsRGF0YSk7Cit9
CisKIENhbGxUeXBlIFN0cmluZ0NvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxs
RGF0YSYgY2FsbERhdGEpCiB7CiAgICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY2FsbFN0
cmluZ0NvbnN0cnVjdG9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU3RyaW5nQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0
cmluZ0NvbnN0cnVjdG9yLmgKaW5kZXggOWMxNGI5MzlmZGQxODBjNGM5NTViNjgxNjIxOWI2Mzg3
ZTA1MzZhMS4uNzAwZGVhYjVmN2VjODg1N2I0ZjM1NjJiMTI0M2RkMTBhOWUyMzEzNSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5oCkBA
IC01Miw2ICs1Miw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBTdHJpbmdDb25zdHJ1Y3Rv
cihKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSopOwogICAgICAgICB2b2lkIGZpbmlzaENyZWF0
aW9uKEV4ZWNTdGF0ZSosIFN0cmluZ1Byb3RvdHlwZSopOwogICAgICAgICB2aXJ0dWFsIENvbnN0
cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShDb25zdHJ1Y3REYXRhJik7CisgICAgICAgIHZpcnR1
YWwgQ2FsbFR5cGUgZ2V0Q2FsbERhdGFWaXJ0dWFsKENhbGxEYXRhJik7CiAgICAgICAgIHN0YXRp
YyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwogCiAgICAgICAgIHZp
cnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmll
ciYsIFByb3BlcnR5U2xvdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3RydWN0dXJlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1
cmUuaAppbmRleCAwZDJmZmExMDE1ZWRhYjFkZTI1NzhlZWUzMzRmODFmMTBhZDE1ZWQ4Li5mNmQ0
NzgwODA0YmNmOTVlOTU1YjczZTdlMGQwODljZWQwOWYxMjdjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaApAQCAtNDksNiArNDksOCBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICBjbGFzcyBTdHJ1Y3R1cmVDaGFpbjsKICAgICBjbGFzcyBTbG90VmlzaXRvcjsKIAor
ICAgIHN0cnVjdCBDbGFzc0luZm87CisKICAgICBlbnVtIEVudW1lcmF0aW9uTW9kZSB7CiAgICAg
ICAgIEV4Y2x1ZGVEb250RW51bVByb3BlcnRpZXMsCiAgICAgICAgIEluY2x1ZGVEb250RW51bVBy
b3BlcnRpZXMKQEAgLTMwNSw3ICszMDcsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgUHJv
cGVydHlNYXBFbnRyeSogZW50cnkgPSBtX3Byb3BlcnR5VGFibGUtPmZpbmRXaXRoU3RyaW5nKG5h
bWUuaW1wbCgpKS5maXJzdDsKICAgICAgICAgcmV0dXJuIGVudHJ5ID8gZW50cnktPm9mZnNldCA6
IG5vdEZvdW5kOwogICAgIH0KLSAgICAKKwogICAgIGlubGluZSBib29sIEpTQ2VsbDo6aXNPYmpl
Y3QoKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIG1fc3RydWN0dXJlLT5pc09iamVjdCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZyBiL1NvdXJjZS9K
YXZhU2NyaXB0R2x1ZS9DaGFuZ2VMb2cKaW5kZXggNTY3YTU1YTdkMGZlNGIwNjcxMzc3N2UwYjNj
YmMzMTc3OGRjNDEwYi4uNDk4MWJmMTIwY2I4NmRhYzdkODdmZmM5NWVmYTljOGZlNjhhNTMwOCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdEdsdWUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMTAtMDggIFNo
ZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgorCisgICAgICAgIFVucmV2
aWV3ZWQsIHJvbGxpbmcgb3V0IHI5Njk5Ni4KKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9y
Zy9jaGFuZ2VzZXQvOTY5OTYKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTY5Njk3CisKKyAgICAgICAgSXQgYnJva2UgYWxsIHRlc3RzIG9uIHRoZSBRdCBi
b3QgKFJlcXVlc3RlZCBieSBPc3N5X25pZ2h0IG9uCisgICAgICAgICN3ZWJraXQpLgorCisgICAg
ICAgICogSlNWYWx1ZVdyYXBwZXIuY3BwOgorICAgICAgICAoSlNWYWx1ZVdyYXBwZXI6OkpTT2Jq
ZWN0Q2FsbEZ1bmN0aW9uKToKKyAgICAgICAgKiBVc2VyT2JqZWN0SW1wLmNwcDoKKyAgICAgICAg
KFVzZXJPYmplY3RJbXA6OmdldENhbGxEYXRhVmlydHVhbCk6CisgICAgICAgICogVXNlck9iamVj
dEltcC5oOgorCiAyMDExLTEwLTA3ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBs
ZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIGdldENhbGxEYXRhVmlydHVhbCBtZXRob2RzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvSlNWYWx1ZVdyYXBwZXIuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRHbHVlL0pTVmFsdWVXcmFwcGVyLmNwcAppbmRleCBkYzdlZTNmOWIzOTg3YmZi
MTUzMzUyOTcxZTRlYzEzMDBkMTg5YTYyLi4yNzY4M2JmMDg2ZTk5OGY2NDBjZGVlMDgyYmNkODU4
MjQyYjQzNjg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvSlNWYWx1ZVdyYXBw
ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9KU1ZhbHVlV3JhcHBlci5jcHAKQEAg
LTE2NCw3ICsxNjQsNyBAQCBKU09iamVjdFJlZiBKU1ZhbHVlV3JhcHBlcjo6SlNPYmplY3RDYWxs
RnVuY3Rpb24odm9pZCAqZGF0YSwgSlNPYmplY3RSZWYgdGhpc09iagogICAgICAgICB9CiAKICAg
ICAgICAgQ2FsbERhdGEgY2FsbERhdGE7Ci0gICAgICAgIENhbGxUeXBlIGNhbGxUeXBlID0gb2Jq
VmFsdWUtPm1ldGhvZFRhYmxlKCktPmdldENhbGxEYXRhKG9ialZhbHVlLCBjYWxsRGF0YSk7Cisg
ICAgICAgIENhbGxUeXBlIGNhbGxUeXBlID0gb2JqVmFsdWUtPmdldENhbGxEYXRhVmlydHVhbChj
YWxsRGF0YSk7CiAgICAgICAgIGlmIChjYWxsVHlwZSA9PSBDYWxsVHlwZU5vbmUpCiAgICAgICAg
ICAgICByZXR1cm4gMDsKICAgICAgICAgSlNWYWx1ZSAgcmVzdWx0VmFsdWUgPSBjYWxsKGV4ZWMs
IG9ialZhbHVlLCBjYWxsVHlwZSwgY2FsbERhdGEsIGtzalRoaXNPYmosIGxpc3RBcmdzKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmNwcAppbmRleCA5ODZhMzc1ZGQ1YjVlNzAx
ZDQyYzcwZTE5Yjg4ZjczOWFlNDg4Y2E5Li5lYTllODhkYmM0Yzc1MzlkMWU3ZjBhZjFiZDBjODA0
NDJlYjhlNTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdElt
cC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuY3BwCkBAIC00
Niw2ICs0NiwxMSBAQCBVc2VyT2JqZWN0SW1wOjp+VXNlck9iamVjdEltcCgpCiAgICAgICAgIGZK
U1VzZXJPYmplY3QtPlJlbGVhc2UoKTsKIH0KIAorQ2FsbFR5cGUgVXNlck9iamVjdEltcDo6Z2V0
Q2FsbERhdGFWaXJ0dWFsKENhbGxEYXRhJiBjYWxsRGF0YSkKK3sKKyAgICByZXR1cm4gZ2V0Q2Fs
bERhdGEodGhpcywgY2FsbERhdGEpOworfQorCiBDYWxsVHlwZSBVc2VyT2JqZWN0SW1wOjpnZXRD
YWxsRGF0YShKU0NlbGwqIGNlbGwsIENhbGxEYXRhJiBjYWxsRGF0YSkKIHsKICAgICBVc2VyT2Jq
ZWN0SW1wKiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8VXNlck9iamVjdEltcCo+KGNlbGwpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmgKaW5kZXggZmM5YWYwMDdjNjkyYWJkNTg0
ZjM2YmY0ZTE4ZWU3ZjJiNmZmYjg4Zi4uMjhhZmNhNWQ2NmUwNGIwYzFjNmZkYzE4NDM5ZWU0NDQz
ZTNmODMyOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5oCkBAIC00OSw2ICs0
OSw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwogCisg
ICAgdmlydHVhbCBDYWxsVHlwZSBnZXRDYWxsRGF0YVZpcnR1YWwoQ2FsbERhdGEmKTsKICAgICBz
dGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKIAogICAgIHZp
cnR1YWwgdm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFy
cmF5JiwgRW51bWVyYXRpb25Nb2RlIG1vZGUgPSBFeGNsdWRlRG9udEVudW1Qcm9wZXJ0aWVzKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA3NzdmYWQwZmU3N2U4YTAwY2JjNTZmZDZhMTRkYmNlMGI4ODJkYzRkLi5m
YWEyZTY2M2JkNjZmOWZiNDJlODYzZTBiMjc1YjAwNTdmNDQzMjJjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNTEgQEAKKzIwMTEtMTAtMDggIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RA
Z21haWwuY29tPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI5Njk5Ni4KKyAg
ICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvOTY5OTYKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY5Njk3CisKKyAgICAgICAgSXQg
YnJva2UgYWxsIHRlc3RzIG9uIHRoZSBRdCBib3QgKFJlcXVlc3RlZCBieSBPc3N5X25pZ2h0IG9u
CisgICAgICAgICN3ZWJraXQpLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAg
ICogYmluZGluZ3MvanMvSlNDYWxsYmFja0RhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlND
YWxsYmFja0RhdGE6Omludm9rZUNhbGxiYWNrKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0N1
c3RvbVhQYXRoTlNSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0N1c3RvbVhQYXRo
TlNSZXNvbHZlcjo6bG9va3VwTmFtZXNwYWNlVVJJKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9K
U0Vycm9ySGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0Vycm9ySGFuZGxlcjo6aGFu
ZGxlRXZlbnQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpKU0V2ZW50TGlzdGVuZXI6OmhhbmRsZUV2ZW50KToKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU0hUTUxBbGxDb2xsZWN0aW9uQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkpTSFRNTEFsbENvbGxlY3Rpb246OmdldENhbGxEYXRhVmlydHVhbCk6CisgICAgICAg
ICogYmluZGluZ3MvanMvSlNIVE1MQXBwbGV0RWxlbWVudEN1c3RvbS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpKU0hUTUxBcHBsZXRFbGVtZW50OjpnZXRDYWxsRGF0YVZpcnR1YWwpOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTSFRNTEVtYmVkRWxlbWVudEN1c3RvbS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpKU0hUTUxFbWJlZEVsZW1lbnQ6OmdldENhbGxEYXRhVmlydHVhbCk6CisgICAgICAg
ICogYmluZGluZ3MvanMvSlNIVE1MT2JqZWN0RWxlbWVudEN1c3RvbS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpKU0hUTUxPYmplY3RFbGVtZW50OjpnZXRDYWxsRGF0YVZpcnR1YWwpOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTSW5qZWN0ZWRTY3JpcHRIb3N0Q3VzdG9tLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkpTSW5qZWN0ZWRTY3JpcHRIb3N0OjpldmFsdWF0ZSk6CisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OnJ1bnRpbWVPYmplY3RHZXRDYWxsRGF0YSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChHZW5lcmF0ZUhlYWRlcik6CisgICAgICAgICog
YnJpZGdlL29iamMvb2JqY19ydW50aW1lLmg6CisgICAgICAgICogYnJpZGdlL29iamMvb2JqY19y
dW50aW1lLm1tOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6T2JqY0ZhbGxiYWNrT2JqZWN0SW1w
OjpnZXRDYWxsRGF0YVZpcnR1YWwpOgorICAgICAgICAqIGJyaWRnZS9xdC9xdF9ydW50aW1lLmNw
cDoKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OlF0UnVudGltZU1ldGFNZXRob2Q6OmdldENhbGxE
YXRhVmlydHVhbCk6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpRdFJ1bnRpbWVDb25uZWN0aW9u
TWV0aG9kOjpjYWxsKToKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OlF0UnVudGltZUNvbm5lY3Rp
b25NZXRob2Q6OmdldENhbGxEYXRhVmlydHVhbCk6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpp
c0phdmFTY3JpcHRGdW5jdGlvbik6CisgICAgICAgICogYnJpZGdlL3F0L3F0X3J1bnRpbWUuaDoK
KyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9tZXRob2QuY3BwOgorICAgICAgICAoSlNDOjpSdW50
aW1lTWV0aG9kOjpnZXRDYWxsRGF0YVZpcnR1YWwpOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1l
X21ldGhvZC5oOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX29iamVjdC5jcHA6CisgICAgICAg
IChKU0M6OkJpbmRpbmdzOjpSdW50aW1lT2JqZWN0OjpnZXRDYWxsRGF0YVZpcnR1YWwpOgorICAg
ICAgICAqIGJyaWRnZS9ydW50aW1lX29iamVjdC5oOgorCiAyMDExLTEwLTA4ICBSeW9zdWtlIE5p
d2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFNub3cgTGVvcGFyZCBidWlsZCBmaXgg
YWZ0ZXIgcjk2OTc2LiBBcHBhcmVudGx5IHdlIGp1c3QgbmVlZCBhIGZ1bGwgcmVidWlsZC4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5leHAuaW4KaW5kZXggNDI0ZTQyM2NkODkxZGVkOWVkZDdjNzc3MDYzYmRkNDhjNGZl
OTAzYy4uMWRmNGQ3ZmYxMjk1MDBiYzdmNjc2YzBjYjUxNDhlYzk3MmEwOGZmYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5leHAuaW4KQEAgLTE2ODEsNiArMTY4MSw3IEBAIF9fWk43V2ViQ29yZTVGcmFtZTI2c2Vu
ZE9yaWVudGF0aW9uQ2hhbmdlRXZlbnRFaQogI2lmIFVTRShQTFVHSU5fSE9TVF9QUk9DRVNTKQog
X19aTjNKU0MxM1J1bnRpbWVNZXRob2QxMWdldENhbGxEYXRhRVBOU182SlNDZWxsRVJOU184Q2Fs
bERhdGFFCiBfX1pOM0pTQzEzUnVudGltZU1ldGhvZDE0ZmluaXNoQ3JlYXRpb25FUk5TXzEySlNH
bG9iYWxEYXRhRVJLTlNfMTBJZGVudGlmaWVyRQorX19aTjNKU0MxM1J1bnRpbWVNZXRob2QxOGdl
dENhbGxEYXRhVmlydHVhbEVSTlNfOENhbGxEYXRhRQogX19aTjNKU0MxM1J1bnRpbWVNZXRob2Qx
OGdldE93blByb3BlcnR5U2xvdEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVSTlNf
MTJQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzEzUnVudGltZU1ldGhvZDI0Z2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJOU18xOFByb3BlcnR5
RGVzY3JpcHRvckUKIF9fWk4zSlNDMTNSdW50aW1lTWV0aG9kNnNfaW5mb0UKQEAgLTE2OTAsNiAr
MTY5MSw3IEBAIF9fWk4zSlNDOEJpbmRpbmdzMTNSdW50aW1lT2JqZWN0MTFnZXRDYWxsRGF0YUVQ
TlNfNkpTQ2VsbEVSTlNfOENhbGxEYXRhRQogX19aTjNKU0M4QmluZGluZ3MxM1J1bnRpbWVPYmpl
Y3QxNGRlbGV0ZVByb3BlcnR5RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRQogX19a
TjNKU0M4QmluZGluZ3MxM1J1bnRpbWVPYmplY3QxNGZpbmlzaENyZWF0aW9uRVBOU18xNEpTR2xv
YmFsT2JqZWN0RQogX19aTjNKU0M4QmluZGluZ3MxM1J1bnRpbWVPYmplY3QxNmdldENvbnN0cnVj
dERhdGFFUk5TXzEzQ29uc3RydWN0RGF0YUUKK19fWk4zSlNDOEJpbmRpbmdzMTNSdW50aW1lT2Jq
ZWN0MThnZXRDYWxsRGF0YVZpcnR1YWxFUk5TXzhDYWxsRGF0YUUKIF9fWk4zSlNDOEJpbmRpbmdz
MTNSdW50aW1lT2JqZWN0MThnZXRPd25Qcm9wZXJ0eVNsb3RFUE5TXzlFeGVjU3RhdGVFUktOU18x
MElkZW50aWZpZXJFUk5TXzEyUHJvcGVydHlTbG90RQogX19aTjNKU0M4QmluZGluZ3MxM1J1bnRp
bWVPYmplY3QxOWdldE93blByb3BlcnR5TmFtZXNFUE5TXzlFeGVjU3RhdGVFUk5TXzE3UHJvcGVy
dHlOYW1lQXJyYXlFTlNfMTVFbnVtZXJhdGlvbk1vZGVFCiBfX1pOM0pTQzhCaW5kaW5nczEzUnVu
dGltZU9iamVjdDI0Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yRVBOU185RXhlY1N0YXRlRVJLTlNf
MTBJZGVudGlmaWVyRVJOU18xOFByb3BlcnR5RGVzY3JpcHRvckUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ2FsbGJhY2tEYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTQ2FsbGJhY2tEYXRhLmNwcAppbmRleCBhODhiZDY0ZGM2MTEyMTdhODQx
Njk4NzFjMWNmNDNlYTk0YzljMmFkLi4wYjI3MDA4MDdkYjFjMTdkOTRmZTZmZDlhZDE3ZGRkMjQ0
ODBmYzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NhbGxiYWNr
RGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDYWxsYmFja0RhdGEu
Y3BwCkBAIC01Myw3ICs1Myw3IEBAIEpTVmFsdWUgSlNDYWxsYmFja0RhdGE6Omludm9rZUNhbGxi
YWNrKE1hcmtlZEFyZ3VtZW50QnVmZmVyJiBhcmdzLCBib29sKiByYWlzZWRFCiAgICAgQ2FsbERh
dGEgY2FsbERhdGE7CiAgICAgQ2FsbFR5cGUgY2FsbFR5cGUgPSBnZXRDYWxsRGF0YShmdW5jdGlv
biwgY2FsbERhdGEpOwogICAgIGlmIChjYWxsVHlwZSA9PSBDYWxsVHlwZU5vbmUpIHsKLSAgICAg
ICAgY2FsbFR5cGUgPSBjYWxsYmFjaygpLT5tZXRob2RUYWJsZSgpLT5nZXRDYWxsRGF0YShjYWxs
YmFjaygpLCBjYWxsRGF0YSk7CisgICAgICAgIGNhbGxUeXBlID0gY2FsbGJhY2soKS0+Z2V0Q2Fs
bERhdGFWaXJ0dWFsKGNhbGxEYXRhKTsKICAgICAgICAgaWYgKGNhbGxUeXBlID09IENhbGxUeXBl
Tm9uZSkKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlKCk7CiAgICAgICAgIGZ1bmN0aW9uID0g
Y2FsbGJhY2soKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3Vz
dG9tWFBhdGhOU1Jlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3Vz
dG9tWFBhdGhOU1Jlc29sdmVyLmNwcAppbmRleCA5MzA5OTk3NDdjYTFlMmFmMTI1ODBjODU3OWJm
OWExODc3NTM0ZjIzLi4wNjJiYmEwZjc5ZmFlNTMzMDU5Y2UxOWQ5OWI1YWNiOGNlM2RlZDBhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNv
bHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5T
UmVzb2x2ZXIuY3BwCkBAIC03Nyw3ICs3Nyw3IEBAIFN0cmluZyBKU0N1c3RvbVhQYXRoTlNSZXNv
bHZlcjo6bG9va3VwTmFtZXNwYWNlVVJJKGNvbnN0IFN0cmluZyYgcHJlZml4KQogICAgIENhbGxE
YXRhIGNhbGxEYXRhOwogICAgIENhbGxUeXBlIGNhbGxUeXBlID0gZ2V0Q2FsbERhdGEoZnVuY3Rp
b24sIGNhbGxEYXRhKTsKICAgICBpZiAoY2FsbFR5cGUgPT0gQ2FsbFR5cGVOb25lKSB7Ci0gICAg
ICAgIGNhbGxUeXBlID0gbV9jdXN0b21SZXNvbHZlci0+bWV0aG9kVGFibGUoKS0+Z2V0Q2FsbERh
dGEobV9jdXN0b21SZXNvbHZlciwgY2FsbERhdGEpOworICAgICAgICBjYWxsVHlwZSA9IG1fY3Vz
dG9tUmVzb2x2ZXItPmdldENhbGxEYXRhVmlydHVhbChjYWxsRGF0YSk7CiAgICAgICAgIGlmIChj
YWxsVHlwZSA9PSBDYWxsVHlwZU5vbmUpIHsKICAgICAgICAgICAgIC8vIEZJWE1FOiBQYXNzIGFj
dHVhbCBsaW5lIG51bWJlciBhbmQgc291cmNlIFVSTC4KICAgICAgICAgICAgIG1fZ2xvYmFsT2Jq
ZWN0LT5pbXBsKCktPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01l
c3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgIlhQYXRoTlNSZXNvbHZlciBkb2VzIG5vdCBo
YXZlIGEgbG9va3VwTmFtZXNwYWNlVVJJIG1ldGhvZC4iLCAwLCBTdHJpbmcoKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxlci5jcHAKaW5kZXggNzZhNWQ3MTdi
Y2NlNWExNDUxMTllZjYwZDY2M2IyMTgxN2MwZTZiMS4uYTc0MjEwYTcyOGI5YjdlYWIyOTNmZWEw
NWVjNjg4OWI3NjFkYjFiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNFcnJvckhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXJy
b3JIYW5kbGVyLmNwcApAQCAtNzQsNyArNzQsNyBAQCB2b2lkIEpTRXJyb3JIYW5kbGVyOjpoYW5k
bGVFdmVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0LAog
ICAgIEV4ZWNTdGF0ZSogZXhlYyA9IGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpOwogCiAgICAg
Q2FsbERhdGEgY2FsbERhdGE7Ci0gICAgQ2FsbFR5cGUgY2FsbFR5cGUgPSBqc0Z1bmN0aW9uLT5t
ZXRob2RUYWJsZSgpLT5nZXRDYWxsRGF0YShqc0Z1bmN0aW9uLCBjYWxsRGF0YSk7CisgICAgQ2Fs
bFR5cGUgY2FsbFR5cGUgPSBqc0Z1bmN0aW9uLT5nZXRDYWxsRGF0YVZpcnR1YWwoY2FsbERhdGEp
OwogCiAgICAgaWYgKGNhbGxUeXBlICE9IENhbGxUeXBlTm9uZSkgewogICAgICAgICBSZWZQdHI8
SlNFcnJvckhhbmRsZXI+IHByb3RlY3RlZGN0b3IodGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcAppbmRleCBhOTc5ZTA4ZjMyMjYzNDZiMTMy
OWNhNjA1MzkxNTI0MmFmNmJhNDFiLi5kYTUyMDAzZjY5NjQ0YTYyZGEwMWNjNWQ1ZDZhYTc4NWMx
ZmE2NzcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50TGlz
dGVuZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5l
ci5jcHAKQEAgLTEwMSw3ICsxMDEsNyBAQCB2b2lkIEpTRXZlbnRMaXN0ZW5lcjo6aGFuZGxlRXZl
bnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dAogICAgIENh
bGxUeXBlIGNhbGxUeXBlID0gZ2V0Q2FsbERhdGEoaGFuZGxlRXZlbnRGdW5jdGlvbiwgY2FsbERh
dGEpOwogICAgIGlmIChjYWxsVHlwZSA9PSBDYWxsVHlwZU5vbmUpIHsKICAgICAgICAgaGFuZGxl
RXZlbnRGdW5jdGlvbiA9IEpTVmFsdWUoKTsKLSAgICAgICAgY2FsbFR5cGUgPSBqc0Z1bmN0aW9u
LT5tZXRob2RUYWJsZSgpLT5nZXRDYWxsRGF0YShqc0Z1bmN0aW9uLCBjYWxsRGF0YSk7CisgICAg
ICAgIGNhbGxUeXBlID0ganNGdW5jdGlvbi0+Z2V0Q2FsbERhdGFWaXJ0dWFsKGNhbGxEYXRhKTsK
ICAgICB9CiAKICAgICBpZiAoY2FsbFR5cGUgIT0gQ2FsbFR5cGVOb25lKSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxBbGxDb2xsZWN0aW9uQ3VzdG9tLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTEFsbENvbGxlY3Rpb25DdXN0b20u
Y3BwCmluZGV4IGRmN2I0MmM3MGY4ZjMyOGQ5ZDA3ZDVmMDI1NmU2Mzc2OTlhZTQxMzQuLjcwZWI2
ZTE3NWVmMzk4MTRjNmU4YWJjYjIwZDUzN2FmZjM1ZGZjNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTEFsbENvbGxlY3Rpb25DdXN0b20uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTEFsbENvbGxlY3Rpb25DdXN0b20uY3BwCkBA
IC05OSw2ICs5OSwxMSBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxs
SFRNTEFsbENvbGxlY3Rpb24oRXhlY1N0YXRlKiBleGVjKQogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKK0NhbGxUeXBlIEpTSFRNTEFsbENvbGxlY3Rpb246
OmdldENhbGxEYXRhVmlydHVhbChDYWxsRGF0YSYgY2FsbERhdGEpCit7CisgICAgcmV0dXJuIGdl
dENhbGxEYXRhKHRoaXMsIGNhbGxEYXRhKTsKK30KKwogQ2FsbFR5cGUgSlNIVE1MQWxsQ29sbGVj
dGlvbjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRhKQogewogICAgIGNh
bGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNhbGxIVE1MQWxsQ29sbGVjdGlvbjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTEFwcGxldEVsZW1lbnRDdXN0b20u
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MQXBwbGV0RWxlbWVudEN1c3Rv
bS5jcHAKaW5kZXggMzBlMTU3ODEzN2NjY2QyNjAxYmI0OTQ5MWY5YjEzZjczMWY5MjY4MC4uODBk
NTk0ZWY1ODg5NGM1NmRjMTdkYjg0MzU3MGNiZGJhMTdmNDdhNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MQXBwbGV0RWxlbWVudEN1c3RvbS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MQXBwbGV0RWxlbWVudEN1c3RvbS5jcHAK
QEAgLTQ4LDYgKzQ4LDExIEBAIGJvb2wgSlNIVE1MQXBwbGV0RWxlbWVudDo6cHV0RGVsZWdhdGUo
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0CiAgICAgcmV0dXJuIHJ1
bnRpbWVPYmplY3RDdXN0b21QdXQoZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgdGhpcywgc2xv
dCk7CiB9CiAKK0NhbGxUeXBlIEpTSFRNTEFwcGxldEVsZW1lbnQ6OmdldENhbGxEYXRhVmlydHVh
bChDYWxsRGF0YSYgY2FsbERhdGEpCit7CisgICAgcmV0dXJuIGdldENhbGxEYXRhKHRoaXMsIGNh
bGxEYXRhKTsKK30KKwogQ2FsbFR5cGUgSlNIVE1MQXBwbGV0RWxlbWVudDo6Z2V0Q2FsbERhdGEo
SlNDZWxsKiBjZWxsLCBDYWxsRGF0YSYgY2FsbERhdGEpCiB7CiAgICAgcmV0dXJuIHJ1bnRpbWVP
YmplY3RHZXRDYWxsRGF0YShzdGF0aWNfY2FzdDxKU0hUTUxBcHBsZXRFbGVtZW50Kj4oY2VsbCks
IGNhbGxEYXRhKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRN
TEVtYmVkRWxlbWVudEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hU
TUxFbWJlZEVsZW1lbnRDdXN0b20uY3BwCmluZGV4IDViNWM0MTEyYjZkNjg0OTExZTgyMDhiY2Yz
NWZlYTU5YTA1YTI1ZDEuLjVjNGI3MGExYTEyYTI2ZGFjZjQxYTA2OGQ0YjU1MmJhYWVmZTY1ZGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTEVtYmVkRWxlbWVu
dEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MRW1iZWRF
bGVtZW50Q3VzdG9tLmNwcApAQCAtNDgsNiArNDgsMTEgQEAgYm9vbCBKU0hUTUxFbWJlZEVsZW1l
bnQ6OnB1dERlbGVnYXRlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHkKICAgICByZXR1cm4gcnVudGltZU9iamVjdEN1c3RvbVB1dChleGVjLCBwcm9wZXJ0eU5hbWUs
IHZhbHVlLCB0aGlzLCBzbG90KTsKIH0KIAorQ2FsbFR5cGUgSlNIVE1MRW1iZWRFbGVtZW50Ojpn
ZXRDYWxsRGF0YVZpcnR1YWwoQ2FsbERhdGEmIGNhbGxEYXRhKQoreworICAgIHJldHVybiBnZXRD
YWxsRGF0YSh0aGlzLCBjYWxsRGF0YSk7Cit9CisKIENhbGxUeXBlIEpTSFRNTEVtYmVkRWxlbWVu
dDo6Z2V0Q2FsbERhdGEoSlNDZWxsKiBjZWxsLCBDYWxsRGF0YSYgY2FsbERhdGEpCiB7CiAgICAg
cmV0dXJuIHJ1bnRpbWVPYmplY3RHZXRDYWxsRGF0YShzdGF0aWNfY2FzdDxKU0hUTUxFbWJlZEVs
ZW1lbnQqPihjZWxsKSwgY2FsbERhdGEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNIVE1MT2JqZWN0RWxlbWVudEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0hUTUxPYmplY3RFbGVtZW50Q3VzdG9tLmNwcAppbmRleCBhZmJlZTBlYmI5
MzlmYWVmMGQ3Mzk5ZGQ5MzhkMjA2ZjMxZjNkN2QyLi43YjM5MGUzNWQ2NTRlNTc3YzcwOTQ0ZTZi
ODZlNmM4NTdmMDg4ZTQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0hUTUxPYmplY3RFbGVtZW50Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0hUTUxPYmplY3RFbGVtZW50Q3VzdG9tLmNwcApAQCAtNDgsNiArNDgsMTEgQEAgYm9v
bCBKU0hUTUxPYmplY3RFbGVtZW50OjpwdXREZWxlZ2F0ZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnQKICAgICByZXR1cm4gcnVudGltZU9iamVjdEN1c3RvbVB1dChl
eGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCB0aGlzLCBzbG90KTsKIH0KIAorQ2FsbFR5cGUgSlNI
VE1MT2JqZWN0RWxlbWVudDo6Z2V0Q2FsbERhdGFWaXJ0dWFsKENhbGxEYXRhJiBjYWxsRGF0YSkK
K3sKKyAgICByZXR1cm4gZ2V0Q2FsbERhdGEodGhpcywgY2FsbERhdGEpOworfQorCiBDYWxsVHlw
ZSBKU0hUTUxPYmplY3RFbGVtZW50OjpnZXRDYWxsRGF0YShKU0NlbGwqIGNlbGwsIENhbGxEYXRh
JiBjYWxsRGF0YSkKIHsKICAgICByZXR1cm4gcnVudGltZU9iamVjdEdldENhbGxEYXRhKHN0YXRp
Y19jYXN0PEpTSFRNTE9iamVjdEVsZW1lbnQqPihjZWxsKSwgY2FsbERhdGEpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbmplY3RlZFNjcmlwdEhvc3RDdXN0b20u
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbmplY3RlZFNjcmlwdEhvc3RDdXN0
b20uY3BwCmluZGV4IDhjMmMxM2U3YmExMTY5M2M1MDZmMGEwOTRlZmZlMTFjNjRlMjdkZTguLjAz
MWJjMjEyZDYxYzM1MTYzZmQzNGYxZGQzNDBiMzA0ZWNlMmUxNjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW5qZWN0ZWRTY3JpcHRIb3N0Q3VzdG9tLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0luamVjdGVkU2NyaXB0SG9zdEN1c3RvbS5j
cHAKQEAgLTg1LDcgKzg1LDcgQEAgSlNWYWx1ZSBKU0luamVjdGVkU2NyaXB0SG9zdDo6ZXZhbHVh
dGUoRXhlY1N0YXRlKiBleGVjKQogICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBl
eGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCk7CiAgICAgSlNGdW5jdGlvbiogZXZhbEZ1bmN0aW9u
ID0gZ2xvYmFsT2JqZWN0LT5ldmFsRnVuY3Rpb24oKTsKICAgICBDYWxsRGF0YSBjYWxsRGF0YTsK
LSAgICBDYWxsVHlwZSBjYWxsVHlwZSA9IGV2YWxGdW5jdGlvbi0+bWV0aG9kVGFibGUoKS0+Z2V0
Q2FsbERhdGEoZXZhbEZ1bmN0aW9uLCBjYWxsRGF0YSk7CisgICAgQ2FsbFR5cGUgY2FsbFR5cGUg
PSBldmFsRnVuY3Rpb24tPmdldENhbGxEYXRhVmlydHVhbChjYWxsRGF0YSk7CiAgICAgaWYgKGNh
bGxUeXBlID09IENhbGxUeXBlTm9uZSkKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAg
ICAgTWFya2VkQXJndW1lbnRCdWZmZXIgYXJnczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuY3BwCmluZGV4IGEzM2E1Zjg1
M2M2OTgwMzI5NzM0ZjA0OTNkOTA1Y2YzYjZkNTBiZWQuLjE0N2JjMzg2ZTIzYmE5NzA5MTMwNGYy
MDM1ZmVlODY3MzgxMzA1N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmNwcApAQCAtMTc3LDcgKzE3Nyw3IEBAIENh
bGxUeXBlIHJ1bnRpbWVPYmplY3RHZXRDYWxsRGF0YShKU0hUTUxFbGVtZW50KiBlbGVtZW50LCBD
YWxsRGF0YSYgY2FsbERhdGEpCiAgICAgaWYgKEpTT2JqZWN0KiBzY3JpcHRPYmplY3QgPSBwbHVn
aW5TY3JpcHRPYmplY3RGcm9tUGx1Z2luVmlld0Jhc2UoZWxlbWVudCkpIHsKICAgICAgICAgQ2Fs
bERhdGEgc2NyaXB0T2JqZWN0Q2FsbERhdGE7CiAgICAgICAgIAotICAgICAgICBpZiAoc2NyaXB0
T2JqZWN0LT5tZXRob2RUYWJsZSgpLT5nZXRDYWxsRGF0YShzY3JpcHRPYmplY3QsIHNjcmlwdE9i
amVjdENhbGxEYXRhKSA9PSBDYWxsVHlwZU5vbmUpCisgICAgICAgIGlmIChzY3JpcHRPYmplY3Qt
PmdldENhbGxEYXRhVmlydHVhbChzY3JpcHRPYmplY3RDYWxsRGF0YSkgPT0gQ2FsbFR5cGVOb25l
KQogICAgICAgICAgICAgcmV0dXJuIENhbGxUeXBlTm9uZTsKIAogICAgICAgICBjYWxsRGF0YS5u
YXRpdmUuZnVuY3Rpb24gPSBjYWxsUGx1Z2luOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCAyYTVlMmIzODZhNzI1OTQyMjA2
YTc2MGMwNmRlY2IwOTBiNWM0MWQ0Li5hOWEzNjAyODhlNzI2YTliNDc4NjZiMDg0MmM2NzhhZTgy
OTRmMWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JKUy5wbQpAQCAtODE3LDYgKzgxNyw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAg
IHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmlydHVhbCBKU0M6OlNjb3BlQ2hhaW5Ob2RlKiBw
dXNoRXZlbnRIYW5kbGVyU2NvcGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlNjb3BlQ2hhaW5Ob2Rl
KikgY29uc3Q7XG5cbiIpIGlmICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3Rv
bVB1c2hFdmVudEhhbmRsZXJTY29wZSJ9OwogCiAgICAgIyBDdXN0b20gY2FsbCBmdW5jdGlvbnMK
KyAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZpcnR1YWwgSlNDOjpDYWxsVHlwZSBnZXRD
YWxsRGF0YVZpcnR1YWwoSlNDOjpDYWxsRGF0YSYpO1xuXG4iKSBpZiAkZGF0YU5vZGUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJDdXN0b21DYWxsIn07CiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwg
IiAgICBzdGF0aWMgSlNDOjpDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0M6OkpTQ2VsbCosIEpTQzo6
Q2FsbERhdGEmKTtcblxuIikgaWYgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3Vz
dG9tQ2FsbCJ9OwogCiAgICAgIyBDdXN0b20gZGVsZXRlUHJvcGVydHkgZnVuY3Rpb24KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5oIGIvU291cmNl
L1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLmgKaW5kZXggZWM3YWU2ZjdiZjNiOTY2
ODBkYjAzZTA4MDgzNmU4MDZhOGZmZmU2MC4uNDk0ODU0NjFkNWY5Y2Y3NmY1Mjk5Mjk2NzMxMmZl
NTA5ZTAzYWI3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19y
dW50aW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLmgK
QEAgLTEyNyw2ICsxMjcsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVz
Y3JpcHRvciYpOwogICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0
aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKKyAgICB2aXJ0dWFsIENhbGxUeXBl
IGdldENhbGxEYXRhVmlydHVhbChDYWxsRGF0YSYpOwogICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRD
YWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwogICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQcm9w
ZXJ0eShFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpOwogICAgIHN0
YXRpYyBib29sIGRlbGV0ZVByb3BlcnR5KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
b2JqYy9vYmpjX3J1bnRpbWUubW0gYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1
bnRpbWUubW0KaW5kZXggMmZlNDQ2MGJkMzFhZGRhMTk2YjQ1NTQwZTNiZTc4YTMwNGZiMTM0OS4u
YjRkZmMyM2MzNDY5ZmRlZGJkZmFkMTZlZTVjMGQ3ODliOTVlMDA2ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5tbQpAQCAtMjU5LDYgKzI1OSwxMSBAQCBzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsT2JqQ0ZhbGxiYWNrT2JqZWN0KEV4
ZWNTdGF0ZSogZXhlYykKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAK
K0NhbGxUeXBlIE9iamNGYWxsYmFja09iamVjdEltcDo6Z2V0Q2FsbERhdGFWaXJ0dWFsKENhbGxE
YXRhJiBjYWxsRGF0YSkKK3sKKyAgICByZXR1cm4gZ2V0Q2FsbERhdGEodGhpcywgY2FsbERhdGEp
OworfQorCiBDYWxsVHlwZSBPYmpjRmFsbGJhY2tPYmplY3RJbXA6OmdldENhbGxEYXRhKEpTQ2Vs
bCogY2VsbCwgQ2FsbERhdGEmIGNhbGxEYXRhKQogewogICAgIE9iamNGYWxsYmFja09iamVjdElt
cCogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PE9iamNGYWxsYmFja09iamVjdEltcCo+KGNlbGwp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuY3BwIGIv
U291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuY3BwCmluZGV4IGZkMDZhMTNlZjQ5
MTEyMTI4ODhmMDVhYjNmNjQ5MjRhYmIwNzAyOTIuLmQ5NjVlOTRlM2QzMTRlZjg3ODRjMGFmOWE5
MmEzYjU5ZGE5MWY2MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9y
dW50aW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5jcHAK
QEAgLTE0ODgsNiArMTQ4OCwxMSBAQCBFbmNvZGVkSlNWYWx1ZSBRdFJ1bnRpbWVNZXRhTWV0aG9k
OjpjYWxsKEV4ZWNTdGF0ZSogZXhlYykKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5k
ZWZpbmVkKCkpOwogfQogCitDYWxsVHlwZSBRdFJ1bnRpbWVNZXRhTWV0aG9kOjpnZXRDYWxsRGF0
YVZpcnR1YWwoQ2FsbERhdGEmIGNhbGxEYXRhKQoreworICAgIHJldHVybiBnZXRDYWxsRGF0YSh0
aGlzLCBjYWxsRGF0YSk7Cit9CisKIENhbGxUeXBlIFF0UnVudGltZU1ldGFNZXRob2Q6OmdldENh
bGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKIHsKICAgICBjYWxsRGF0YS5uYXRp
dmUuZnVuY3Rpb24gPSBjYWxsOwpAQCAtMTYxOSw3ICsxNjI0LDcgQEAgRW5jb2RlZEpTVmFsdWUg
UXRSdW50aW1lQ29ubmVjdGlvbk1ldGhvZDo6Y2FsbChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAg
ICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpID09IDEpIHsKICAgICAgICAgICAgICAgICBm
dW5jT2JqZWN0ID0gZXhlYy0+YXJndW1lbnQoMCkudG9PYmplY3QoZXhlYyk7CiAgICAgICAgICAg
ICAgICAgQ2FsbERhdGEgY2FsbERhdGE7Ci0gICAgICAgICAgICAgICAgaWYgKGZ1bmNPYmplY3Qt
Pm1ldGhvZFRhYmxlKCktPmdldENhbGxEYXRhKGZ1bmNPYmplY3QsIGNhbGxEYXRhKSA9PSBDYWxs
VHlwZU5vbmUpIHsKKyAgICAgICAgICAgICAgICBpZiAoZnVuY09iamVjdC0+Z2V0Q2FsbERhdGFW
aXJ0dWFsKGNhbGxEYXRhKSA9PSBDYWxsVHlwZU5vbmUpIHsKICAgICAgICAgICAgICAgICAgICAg
aWYgKGQtPm1faXNDb25uZWN0KQogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRocm93
Vk1FcnJvcihleGVjLCBjcmVhdGVUeXBlRXJyb3IoZXhlYywgIlF0TWV0YU1ldGhvZC5jb25uZWN0
OiB0YXJnZXQgaXMgbm90IGEgZnVuY3Rpb24iKSk7CiAgICAgICAgICAgICAgICAgICAgIGVsc2UK
QEAgLTE2MzIsNyArMTYzNyw3IEBAIEVuY29kZWRKU1ZhbHVlIFF0UnVudGltZUNvbm5lY3Rpb25N
ZXRob2Q6OmNhbGwoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICAgICAgICAgICAgICAvLyBHZXQg
dGhlIGFjdHVhbCBmdW5jdGlvbiB0byBjYWxsCiAgICAgICAgICAgICAgICAgICAgIEpTT2JqZWN0
ICphc09iaiA9IGV4ZWMtPmFyZ3VtZW50KDEpLnRvT2JqZWN0KGV4ZWMpOwogICAgICAgICAgICAg
ICAgICAgICBDYWxsRGF0YSBjYWxsRGF0YTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGFzT2Jq
LT5tZXRob2RUYWJsZSgpLT5nZXRDYWxsRGF0YShhc09iaiwgY2FsbERhdGEpICE9IENhbGxUeXBl
Tm9uZSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoYXNPYmotPmdldENhbGxEYXRhVmlydHVh
bChjYWxsRGF0YSkgIT0gQ2FsbFR5cGVOb25lKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAv
LyBGdW5jdGlvbiB2ZXJzaW9uCiAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jT2JqZWN0ID0g
YXNPYmo7CiAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CkBAIC0xNjQ1LDcgKzE2NTAsNyBA
QCBFbmNvZGVkSlNWYWx1ZSBRdFJ1bnRpbWVDb25uZWN0aW9uTWV0aG9kOjpjYWxsKEV4ZWNTdGF0
ZSogZXhlYykKICAgICAgICAgICAgICAgICAgICAgICAgIEpTVmFsdWUgdmFsID0gdGhpc09iamVj
dC0+Z2V0KGV4ZWMsIGZ1bmNJZGVudCk7CiAgICAgICAgICAgICAgICAgICAgICAgICBKU09iamVj
dCogYXNGdW5jT2JqID0gdmFsLnRvT2JqZWN0KGV4ZWMpOwogCi0gICAgICAgICAgICAgICAgICAg
ICAgICBpZiAoYXNGdW5jT2JqLT5tZXRob2RUYWJsZSgpLT5nZXRDYWxsRGF0YShhc0Z1bmNPYmos
IGNhbGxEYXRhKSAhPSBDYWxsVHlwZU5vbmUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlm
IChhc0Z1bmNPYmotPmdldENhbGxEYXRhVmlydHVhbChjYWxsRGF0YSkgIT0gQ2FsbFR5cGVOb25l
KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY09iamVjdCA9IGFzRnVuY09iajsK
ICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKGQtPm1faXNDb25uZWN0KQpAQCAtMTcyOSw2ICsxNzM0LDExIEBAIEVuY29kZWRK
U1ZhbHVlIFF0UnVudGltZUNvbm5lY3Rpb25NZXRob2Q6OmNhbGwoRXhlY1N0YXRlKiBleGVjKQog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKK0NhbGxUeXBl
IFF0UnVudGltZUNvbm5lY3Rpb25NZXRob2Q6OmdldENhbGxEYXRhVmlydHVhbChDYWxsRGF0YSYg
Y2FsbERhdGEpCit7CisgICAgcmV0dXJuIGdldENhbGxEYXRhKHRoaXMsIGNhbGxEYXRhKTsKK30K
KwogQ2FsbFR5cGUgUXRSdW50aW1lQ29ubmVjdGlvbk1ldGhvZDo6Z2V0Q2FsbERhdGEoSlNDZWxs
KiwgQ2FsbERhdGEmIGNhbGxEYXRhKQogewogICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9
IGNhbGw7CkBAIC0xODUyLDggKzE4NjIsNyBAQCBpbnQgUXRDb25uZWN0aW9uT2JqZWN0OjpxdF9t
ZXRhY2FsbChRTWV0YU9iamVjdDo6Q2FsbCBfYywgaW50IF9pZCwgdm9pZCAqKl9hKQogc3RhdGlj
IGJvb2wgaXNKYXZhU2NyaXB0RnVuY3Rpb24oSlNPYmplY3RSZWYgb2JqZWN0KQogewogICAgIENh
bGxEYXRhIGNhbGxEYXRhOwotICAgIEpTT2JqZWN0KiBqc09iamVjdCA9IHRvSlMob2JqZWN0KTsK
LSAgICByZXR1cm4ganNPYmplY3QtPm1ldGhvZFRhYmxlKCktPmdldENhbGxEYXRhKGpzT2JqZWN0
LCBjYWxsRGF0YSkgPT0gQ2FsbFR5cGVKUzsKKyAgICByZXR1cm4gdG9KUyhvYmplY3QpLT5nZXRD
YWxsRGF0YVZpcnR1YWwoY2FsbERhdGEpID09IENhbGxUeXBlSlM7CiB9CiAKIHZvaWQgUXRDb25u
ZWN0aW9uT2JqZWN0OjpleGVjdXRlKHZvaWQqKiBhcmd2KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9x
dF9ydW50aW1lLmgKaW5kZXggY2VmNWEzMjk1NWFjYzlmMjdlYzAwODg5MjU0NDU5Zjk0Y2IyOTVh
Zi4uYWVjMTFjYTZkODE1YTIzOWVhYmUwNzg3NDZiMWQ5YmI5YmMyZDE1NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvcXQvcXRfcnVudGltZS5oCkBAIC0xNjksMTMgKzE2OSw4IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgZ2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5h
bWVBcnJheSYsIEVudW1lcmF0aW9uTW9kZSBtb2RlID0gRXhjbHVkZURvbnRFbnVtUHJvcGVydGll
cyk7CiAKICAgICBzdGF0aWMgdm9pZCB2aXNpdENoaWxkcmVuKEpTQ2VsbCosIFNsb3RWaXNpdG9y
Jik7Ci0gICAgCi0gICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CiAKLSAgICBzdGF0
aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKLSAgICB7Ci0g
ICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3Qs
IHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5m
byk7Ci0gICAgfQorICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwogCiBwcm90ZWN0
ZWQ6CiAgICAgUXRSdW50aW1lTWV0YU1ldGhvZERhdGEqIGRfZnVuYygpIGNvbnN0IHtyZXR1cm4g
cmVpbnRlcnByZXRfY2FzdDxRdFJ1bnRpbWVNZXRhTWV0aG9kRGF0YSo+KGRfcHRyKTt9CkBAIC0x
ODQsNiArMTc5LDcgQEAgcHJpdmF0ZToKICAgICBRdFJ1bnRpbWVNZXRhTWV0aG9kKEV4ZWNTdGF0
ZSosIFN0cnVjdHVyZSosIGNvbnN0IElkZW50aWZpZXImKTsKICAgICB2b2lkIGZpbmlzaENyZWF0
aW9uKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQYXNzUmVmUHRyPFF0SW5zdGFuY2U+
LCBpbnQgaW5kZXgsIGNvbnN0IFFCeXRlQXJyYXkmIHNpZ25hdHVyZSwgYm9vbCBhbGxvd1ByaXZh
dGUpOwogCisgICAgdmlydHVhbCBDYWxsVHlwZSBnZXRDYWxsRGF0YVZpcnR1YWwoQ2FsbERhdGEm
KTsKICAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsK
ICAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsKEV4ZWNTdGF0ZSog
ZXhlYyk7CiAgICAgc3RhdGljIEpTVmFsdWUgbGVuZ3RoR2V0dGVyKEV4ZWNTdGF0ZSosIEpTVmFs
dWUsIGNvbnN0IElkZW50aWZpZXImKTsKQEAgLTIxMCwxMSArMjA2LDYgQEAgcHVibGljOgogIAog
ICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwogCi0gICAgc3RhdGljIFN0cnVjdHVy
ZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCi0gICAgewotICAgICAgICByZXR1
cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUs
IFR5cGVJbmZvKE9iamVjdFR5cGUsICBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwotICAgIH0K
LQogcHJvdGVjdGVkOgogICAgIFF0UnVudGltZUNvbm5lY3Rpb25NZXRob2REYXRhKiBkX2Z1bmMo
KSBjb25zdCB7cmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8UXRSdW50aW1lQ29ubmVjdGlvbk1ldGhv
ZERhdGEqPihkX3B0cik7fQogCkBAIC0yMjIsNiArMjEzLDcgQEAgcHJpdmF0ZToKICAgICBRdFJ1
bnRpbWVDb25uZWN0aW9uTWV0aG9kKEV4ZWNTdGF0ZSosIFN0cnVjdHVyZSosIGNvbnN0IElkZW50
aWZpZXImKTsKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50
aWZpZXImLCBib29sIGlzQ29ubmVjdCwgUGFzc1JlZlB0cjxRdEluc3RhbmNlPiwgaW50IGluZGV4
LCBjb25zdCBRQnl0ZUFycmF5JiBzaWduYXR1cmUpOwogCisgICAgdmlydHVhbCBDYWxsVHlwZSBn
ZXRDYWxsRGF0YVZpcnR1YWwoQ2FsbERhdGEmKTsKICAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2Fs
bERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKICAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBjYWxsKEV4ZWNTdGF0ZSogZXhlYyk7CiAgICAgc3RhdGljIEpTVmFsdWUgbGVu
Z3RoR2V0dGVyKEV4ZWNTdGF0ZSosIEpTVmFsdWUsIGNvbnN0IElkZW50aWZpZXImKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuY3BwCmluZGV4IDA3YjQxN2Q0YzkyNDYyMTY4
NmZhMzQyYmM1NmZjZTE2MzMyMGJjZjkuLjBlNTVjMTY0Y2I0ZDcyZWI1NzM2OWJiOTZlZjhlMTI3
ZTMwYTdlNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhv
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmNwcApAQCAt
MTIzLDYgKzEyMywxMSBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxs
UnVudGltZU1ldGhvZChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShyZXN1bHQpOwogfQogCitDYWxsVHlwZSBSdW50aW1lTWV0aG9kOjpnZXRDYWxsRGF0YVZpcnR1
YWwoQ2FsbERhdGEmIGNhbGxEYXRhKQoreworICAgIHJldHVybiBnZXRDYWxsRGF0YSh0aGlzLCBj
YWxsRGF0YSk7Cit9CisKIENhbGxUeXBlIFJ1bnRpbWVNZXRob2Q6OmdldENhbGxEYXRhKEpTQ2Vs
bCosIENhbGxEYXRhJiBjYWxsRGF0YSkKIHsKICAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24g
PSBjYWxsUnVudGltZU1ldGhvZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9y
dW50aW1lX21ldGhvZC5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmgK
aW5kZXggZjA3NGY1ODEyMTY2MjAzZmMxOTI3ODc1MTQxZmMwNjUwMWU2ZjM0NC4uMzU0YWNmODg2
YTBjMzJlZDlkNzYwYjUyN2VmZTVhNDBlN2Q5MWYxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1
bnRpbWVfbWV0aG9kLmgKQEAgLTYyLDYgKzYyLDcgQEAgcHJvdGVjdGVkOgogICAgIFJ1bnRpbWVN
ZXRob2QoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBCaW5kaW5nczo6TWV0aG9kTGlzdCYp
OwogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiwgY29uc3QgSWRlbnRpZmll
ciYpOwogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRl
c0dldE93blByb3BlcnR5U2xvdCB8IEludGVybmFsRnVuY3Rpb246OlN0cnVjdHVyZUZsYWdzOwor
ICAgIHZpcnR1YWwgQ2FsbFR5cGUgZ2V0Q2FsbERhdGFWaXJ0dWFsKENhbGxEYXRhJik7CiAgICAg
c3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiAKIHByaXZh
dGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcAppbmRleCBiYWNhMzUx
N2Q5NGZkNTkxMGMwOTg1YmE3ODM5YmQ0ZDA2MjdhNGMzLi42MjMzOGQ0Nzc5MmRhYjhkNzljZGI2
YjIwZjdlMDI3MDVjMWRlMWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVu
dGltZV9vYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVj
dC5jcHAKQEAgLTI3MCw2ICsyNzAsMTEgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgY2FsbFJ1bnRpbWVPYmplY3QoRXhlY1N0YXRlKiBleGVjKQogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIAorQ2FsbFR5cGUgUnVudGltZU9iamVjdDo6Z2V0Q2Fs
bERhdGFWaXJ0dWFsKENhbGxEYXRhJiBjYWxsRGF0YSkKK3sKKyAgICByZXR1cm4gZ2V0Q2FsbERh
dGEodGhpcywgY2FsbERhdGEpOworfQorCiBDYWxsVHlwZSBSdW50aW1lT2JqZWN0OjpnZXRDYWxs
RGF0YShKU0NlbGwqIGNlbGwsIENhbGxEYXRhJiBjYWxsRGF0YSkKIHsKICAgICBSdW50aW1lT2Jq
ZWN0KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8UnVudGltZU9iamVjdCo+KGNlbGwpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuaAppbmRleCA4YzQzMTA3YzM2MDRjMWI2ZjZk
NWE2ODFhYjRjYWZkYjhmNDJkMzhkLi43MzEyMmY3YTQ1OTk5NzQwMmEwMTU2MDRlMmI3YWFkZDc1
MGY3NGVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3Qu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuaApAQCAtNTIsNiAr
NTIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CiAgICAgc3RhdGljIGJvb2wgZGVs
ZXRlUHJvcGVydHkoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lKTsKICAgICB2aXJ0dWFsIEpTVmFsdWUgZGVmYXVsdFZhbHVlKEV4ZWNTdGF0ZSosIFBy
ZWZlcnJlZFByaW1pdGl2ZVR5cGUpIGNvbnN0OworICAgIHZpcnR1YWwgQ2FsbFR5cGUgZ2V0Q2Fs
bERhdGFWaXJ0dWFsKENhbGxEYXRhJik7CiAgICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRh
KEpTQ2VsbCosIENhbGxEYXRhJik7CiAgICAgdmlydHVhbCBDb25zdHJ1Y3RUeXBlIGdldENvbnN0
cnVjdERhdGEoQ29uc3RydWN0RGF0YSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggNDE5YWYzZGMw
ZDJkOGJmZWRjZGMzYzA1MjUzMGJkNDk5Y2Q1ZDY4ZS4uZGJjMzM1NmUwMGM0OGFlZjhjNjg4MDdm
ZDVmZTBmZjliNWM3MjY2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEx
LTEwLTA4ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KKworICAg
ICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByOTY5OTYuCisgICAgICAgIGh0dHA6Ly90cmFj
LndlYmtpdC5vcmcvY2hhbmdlc2V0Lzk2OTk2CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD02OTY5NworCisgICAgICAgIEl0IGJyb2tlIGFsbCB0ZXN0cyBv
biB0aGUgUXQgYm90IChSZXF1ZXN0ZWQgYnkgT3NzeV9uaWdodCBvbgorICAgICAgICAjd2Via2l0
KS4KKworICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94
eS5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5OjppbnZv
a2VEZWZhdWx0KToKKwogMjAxMS0xMC0wNyAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdA
YXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBnZXRDYWxsRGF0YVZpcnR1YWwgbWV0aG9kcwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVn
aW5JbnN0YW5jZVByb3h5Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0
c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tCmluZGV4IDY2MjcyMDM3MTg5N2RjOTQ4NmU1NDcw
MGY2ZmQwNjE4NTlhN2I2MjcuLjY5OTBmNzA2ZTViOGJlOWVjN2MzMzM1ZGJhYWZmN2EyOWY1NmY5
NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBl
UGx1Z2luSW5zdGFuY2VQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hv
c3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0KQEAgLTk0Miw3ICs5NDIsNyBAQCBi
b29sIE5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6aW52b2tlRGVmYXVsdCh1aW50MzJfdCBv
YmplY3RJRCwgZGF0YV90IGFyZ3VtZQogICAgIEV4ZWNTdGF0ZSogZXhlYyA9IGZyYW1lLT5zY3Jp
cHQoKS0+Z2xvYmFsT2JqZWN0KHBsdWdpbldvcmxkKCkpLT5nbG9iYWxFeGVjKCk7CiAgICAgSlNM
b2NrIGxvY2soU2lsZW5jZUFzc2VydGlvbnNPbmx5KTsgICAgCiAgICAgQ2FsbERhdGEgY2FsbERh
dGE7Ci0gICAgQ2FsbFR5cGUgY2FsbFR5cGUgPSBvYmplY3QtPm1ldGhvZFRhYmxlKCktPmdldENh
bGxEYXRhKG9iamVjdCwgY2FsbERhdGEpOworICAgIENhbGxUeXBlIGNhbGxUeXBlID0gb2JqZWN0
LT5nZXRDYWxsRGF0YVZpcnR1YWwoY2FsbERhdGEpOwogICAgIGlmIChjYWxsVHlwZSA9PSBDYWxs
VHlwZU5vbmUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDcwZTUzY2Zk
MDY1ZGQ3MTZkMmY3OGRhNDk3ZWY1ODU4ODMwNTU3YTguLjFhZTdjNmNlNTE1ZWQ1MmIwODZiNDZm
Y2NkZDEzNjRhNjhjZjBlODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMS0xMC0w
OCAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CisKKyAgICAgICAg
VW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjk2OTk2LgorICAgICAgICBodHRwOi8vdHJhYy53ZWJr
aXQub3JnL2NoYW5nZXNldC85Njk5NgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Njk2OTcKKworICAgICAgICBJdCBicm9rZSBhbGwgdGVzdHMgb24gdGhl
IFF0IGJvdCAoUmVxdWVzdGVkIGJ5IE9zc3lfbmlnaHQgb24KKyAgICAgICAgI3dlYmtpdCkuCisK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE1ldGhvZC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OkpTTlBNZXRob2Q6OmdldENhbGxEYXRhVmlydHVhbCk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBNZXRob2QuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkpTTlBPYmplY3Q6OmdldENhbGxEYXRhVmlydHVhbCk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuaDoKKwogMjAxMS0xMC0wNyAgSmVmZiBNaWxs
ZXIgIDxqZWZmbUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIFdLUGFnZUNvbnRleHRNZW51Q2xp
ZW50IGNhbGxiYWNrIHdoZW4gY29udGV4dCBtZW51IGlzIGRpc21pc3NlZApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBNZXRob2QuY3Bw
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBNZXRob2Qu
Y3BwCmluZGV4IGQzZDEwMGE4NDk1ZGQwYzkzMmUzY2I4MmZlZmUzN2Q1ZTcwNGI1YWUuLmZhODhm
ZTVlMGM4ZTAxNTRmYzU2YWIxMWE4ODNhYjZiZGUzMDg5YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QTWV0aG9kLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE1ldGhvZC5jcHAK
QEAgLTc3LDYgKzc3LDExIEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNh
bGxNZXRob2QoRXhlY1N0YXRlKiBleGVjKQogICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4
ZWMpOwogfQogCitDYWxsVHlwZSBKU05QTWV0aG9kOjpnZXRDYWxsRGF0YVZpcnR1YWwoQ2FsbERh
dGEmIGNhbGxEYXRhKQoreworICAgIHJldHVybiBnZXRDYWxsRGF0YSh0aGlzLCBjYWxsRGF0YSk7
Cit9CisKIENhbGxUeXBlIEpTTlBNZXRob2Q6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRh
JiBjYWxsRGF0YSkKIHsKICAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsTWV0aG9k
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBl
L0pTTlBNZXRob2QuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2Fw
ZS9KU05QTWV0aG9kLmgKaW5kZXggZmYwOTYxYzM4MTE2MTA0MWM5ODllYjZlOTc1NzVjNmY5YTYw
YmU3MC4uYThmYjYyN2Y1Zjc3MDk0YjU3Zjk5NjUyYjg1M2NhYjFjZmRmYzRlMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBNZXRob2Qu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE1l
dGhvZC5oCkBAIC02Miw2ICs2Miw3IEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiBKU0M6OlN0
cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6
OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsKICAg
ICB9CiAKKyAgICB2aXJ0dWFsIEpTQzo6Q2FsbFR5cGUgZ2V0Q2FsbERhdGFWaXJ0dWFsKEpTQzo6
Q2FsbERhdGEmKTsKICAgICBzdGF0aWMgSlNDOjpDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0M6OkpT
Q2VsbCosIEpTQzo6Q2FsbERhdGEmKTsKICAgICAKICAgICBOUElkZW50aWZpZXIgbV9ucElkZW50
aWZpZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0
c2NhcGUvSlNOUE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
TmV0c2NhcGUvSlNOUE9iamVjdC5jcHAKaW5kZXggNGFmZjk2YjZhMDU4ZmNkZDc0Nzc5YTZmOTQy
NzU1MDMwNmVjMTFmZC4uYWU5YjllODQ1YTJjMTJmMDA5ZmRhNjdiYmY4NTUwOGI3NGMzZDFkMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pT
TlBPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRz
Y2FwZS9KU05QT2JqZWN0LmNwcApAQCAtMjE3LDYgKzIxNywxMSBAQCBzdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsTlBKU09iamVjdChFeGVjU3RhdGUqIGV4ZWMpCiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShzdGF0aWNfY2FzdDxKU05QT2JqZWN0Kj4ob2JqZWN0KS0+
Y2FsbE9iamVjdChleGVjKSk7CiB9CiAKK0NhbGxUeXBlIEpTTlBPYmplY3Q6OmdldENhbGxEYXRh
VmlydHVhbChDYWxsRGF0YSYgY2FsbERhdGEpCit7CisgICAgcmV0dXJuIGdldENhbGxEYXRhKHRo
aXMsIGNhbGxEYXRhKTsKK30KKwogSlNDOjpDYWxsVHlwZSBKU05QT2JqZWN0OjpnZXRDYWxsRGF0
YShKU0M6OkpTQ2VsbCogY2VsbCwgSlNDOjpDYWxsRGF0YSYgY2FsbERhdGEpCiB7CiAgICAgSlNO
UE9iamVjdCogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEpTTlBPYmplY3QqPihjZWxsKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05Q
T2JqZWN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNO
UE9iamVjdC5oCmluZGV4IDlhYWEyZDRiOTk5ZGYzNzNlMjBlYzAxOGVmN2RkYmYyNWFiMThjMTYu
LjI2NGE2MzVjMDE1ZjQ5NjE4NzI2Njc4ZmIxYjNmZTcxM2VmYjlmMzUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmgKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3Qu
aApAQCAtNzksNiArNzksNyBAQCBwcml2YXRlOgogICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1
cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBl
SW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgfQog
CisgICAgdmlydHVhbCBKU0M6OkNhbGxUeXBlIGdldENhbGxEYXRhVmlydHVhbChKU0M6OkNhbGxE
YXRhJik7CiAgICAgc3RhdGljIEpTQzo6Q2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDOjpKU0NlbGwq
LCBKU0M6OkNhbGxEYXRhJik7CiAgICAgdmlydHVhbCBKU0M6OkNvbnN0cnVjdFR5cGUgZ2V0Q29u
c3RydWN0RGF0YShKU0M6OkNvbnN0cnVjdERhdGEmKTsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>