<?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>103920</bug_id>
          
          <creation_ts>2012-12-03 13:33:30 -0800</creation_ts>
          <short_desc>IndexedDB: Pass metadata in to IDBOpenDBRequest.onUpgradeNeeded/onSuccess</short_desc>
          <delta_ts>2013-01-29 12:34:27 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</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>
          <dependson>103763</dependson>
    
    <dependson>108151</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joshua Bell">jsbell</reporter>
          <assigned_to name="Alec Flett">alecflett</assigned_to>
          <cc>abarth</cc>
    
    <cc>alecflett</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dgrogan</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>jsbell</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>781824</commentid>
    <comment_count>0</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-12-03 13:33:30 -0800</bug_when>
    <thetext>Currently the front-end needs to query the back-end for metadata during these two handlers. In multi-process ports (like Chromium) that may be a synchronous IPC call.

Since the data will be needed anyway, the back-end should just supply it along with the other data in the (async) callbacks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>815805</commentid>
    <comment_count>1</comment_count>
      <attachid>184573</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2013-01-24 13:58:16 -0800</bug_when>
    <thetext>Created attachment 184573
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>815807</commentid>
    <comment_count>2</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2013-01-24 13:58:52 -0800</bug_when>
    <thetext>jsbell@ - r?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>815843</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-24 14:38:00 -0800</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>815847</commentid>
    <comment_count>4</comment_count>
      <attachid>184573</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2013-01-24 14:43:56 -0800</bug_when>
    <thetext>Comment on attachment 184573
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=184573&amp;action=review

lgtm, knowing that there will be a cleanup pass that removes all the duplicate methods

&gt; Source/WebKit/chromium/src/IDBCallbacksProxy.cpp:185
&gt; +    m_callbacks-&gt;onUpgradeNeeded(oldVersion, 0, new WebIDBDatabaseImpl(database, m_databaseCallbacks));

Question for reviewers: 0 is still preferred over nullptr, correct?

&gt; Source/WebKit/chromium/src/WebIDBCallbacksImpl.cpp:82
&gt; +    m_callbacks-&gt;onSuccess(localDatabaseProxy, localDatabaseProxy-&gt;metadata());

Nit: can use localDatabaseProxy.release() to avoid refcount churn

&gt; Source/WebKit/chromium/src/WebIDBCallbacksImpl.cpp:92
&gt; +    m_callbacks-&gt;onSuccess(localDatabaseProxy, metadata);

Nit: can use localDatabaseProxy.release() to avoid refcount churn</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>815861</commentid>
    <comment_count>5</comment_count>
      <attachid>184587</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2013-01-24 14:52:18 -0800</bug_when>
    <thetext>Created attachment 184587
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>815862</commentid>
    <comment_count>6</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2013-01-24 14:52:58 -0800</bug_when>
    <thetext>dglazkov - r? (mostly webkit API refactoring)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818483</commentid>
    <comment_count>7</comment_count>
      <attachid>184587</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2013-01-28 21:34:21 -0800</bug_when>
    <thetext>Comment on attachment 184587
Patch

optimistically landing now that the smoke has cleared from the earlier test failures.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818492</commentid>
    <comment_count>8</comment_count>
      <attachid>184587</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-28 21:41:43 -0800</bug_when>
    <thetext>Comment on attachment 184587
Patch

Clearing flags on attachment: 184587

Committed r141049: &lt;http://trac.webkit.org/changeset/141049&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818493</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-28 21:41:47 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818556</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-28 22:44:26 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 108151</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818634</commentid>
    <comment_count>11</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2013-01-28 23:55:43 -0800</bug_when>
    <thetext>Link to failing tests?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>819075</commentid>
    <comment_count>12</comment_count>
      <attachid>185261</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2013-01-29 10:32:58 -0800</bug_when>
    <thetext>Created attachment 185261
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>819082</commentid>
    <comment_count>13</comment_count>
      <attachid>185261</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-29 10:35:12 -0800</bug_when>
    <thetext>Comment on attachment 185261
Patch for landing

Rejecting attachment 185261 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=gce-cq-04&apos;, &apos;apply-attachment&apos;, &apos;--no-update&apos;, &apos;--non-interactive&apos;, 185261, &apos;--port=chromium-xvfb&apos;]&quot; exit_code: 2 cwd: /mnt/git/webkit-commit-queue

Last 500 characters of output:

patching file Source/WebKit/chromium/src/WebIDBCallbacksImpl.cpp
Hunk #2 succeeded at 128 (offset -5 lines).
patching file Source/WebKit/chromium/src/WebIDBCallbacksImpl.h
Hunk #2 succeeded at 59 with fuzz 1 (offset -1 lines).
patching file Source/WebKit/chromium/tests/IDBAbortOnCorruptTest.cpp
patching file Source/WebKit/chromium/tests/IDBDatabaseBackendTest.cpp

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;]&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue

Full output: http://queues.webkit.org/results/16022335</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>819130</commentid>
    <comment_count>14</comment_count>
      <attachid>185274</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2013-01-29 11:28:48 -0800</bug_when>
    <thetext>Created attachment 185274
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>819207</commentid>
    <comment_count>15</comment_count>
      <attachid>185274</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-29 12:34:23 -0800</bug_when>
    <thetext>Comment on attachment 185274
Patch for landing

Clearing flags on attachment: 185274

Committed r141142: &lt;http://trac.webkit.org/changeset/141142&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>819208</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-29 12:34:27 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184573</attachid>
            <date>2013-01-24 13:58:16 -0800</date>
            <delta_ts>2013-01-24 14:52:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103920-20130124135508.patch</filename>
            <type>text/plain</type>
            <size>23006</size>
            <attacher name="Alec Flett">alecflett</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwNTQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDUyYTIzNWYwOTA1NDI2
NzllMDEwNGIzNTAxZDhiMDM0NmJiZWE4MC4uZjk0MzZlYTI4OTRiNjMyZDJmZTMwODRjYzYwMjc1
NDIyYzNkZGUyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEzLTAxLTI0ICBBbGVj
IEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IFBh
c3MgbWV0YWRhdGEgaW4gdG8gSURCT3BlbkRCUmVxdWVzdC5vblVwZ3JhZGVOZWVkZWQvb25TdWNj
ZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM5
MjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRh
dGUgSURCQ2FsbGJhY2tzOjpvblN1Y2Nlc3MgYW5kIElEQkNhbGxiYWNrczo6b25VcGdyYWRlTmVl
ZGVkIHRvCisgICAgICAgIHBhc3MgdGhyb3VnaCBhIG1ldGFkYXRhIHBhcmFtZXRlci4gV2hpbGUg
dGhlcmUsIHJlbW92ZSB0aGUgdW51c2VkCisgICAgICAgIElEQlRyYW5zYWN0aW9uQmFja2VuZElu
dGVyZmFjZSBwYXJhbWV0ZXIgdG8gb25VcGdyYWRlTmVlZGVkLgorCisgICAgICAgIEFzIHRoaXMg
aXMgYW5vdGhlciBzdGVwIGluIHRoZSBJREIgcmVmYWN0b3IsIEkndmUgc2ltcGxpZmllZCBmdXR1
cmUgY2xlYW51cAorICAgICAgICB3b3JrIGJ5IG1ha2luZyB0aGUgV2ViS2l0IEFQSSBjb2RlIHN0
aWxsIHVzZSB0aGUgb2xkIEFQSS4gVGhpcworICAgICAgICB3aWxsIG1ha2UgaXQgcG9zc2libGUg
dG8gb3V0cmlnaHQgcmVtb3ZlIGNvZGUgb24gdGhlIGNocm9taXVtIHNpZGUgcmF0aGVyCisgICAg
ICAgIHRoYW4gYW5vdGhlciB0aHJlZS1zdGVwIGNoZWNraW4uCisKKyAgICAgICAgTm8gbmV3IHRl
c3RzLCBhcyB0aGlzIGlzIG1vcmUgcmVmYWN0b3JpbmcuCisKKyAgICAgICAgKiBNb2R1bGVzL2lu
ZGV4ZWRkYi9JREJDYWxsYmFja3MuaDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkNhbGxiYWNrczo6
b25VcGdyYWRlTmVlZGVkKTogbmV3IG1ldGhvZCBzaWduYXR1cmUuCisgICAgICAgIChXZWJDb3Jl
OjpJREJDYWxsYmFja3M6Om9uU3VjY2Vzcyk6IG5ldyBtZXRob2Qgc2lnbmF0dXJlLgorICAgICAg
ICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6VmVyc2lvbkNoYW5nZU9wZXJhdGlv
bjo6cGVyZm9ybSk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpw
cm9jZXNzUGVuZGluZ0NhbGxzKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2Vu
ZEltcGw6Om9wZW5Db25uZWN0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJP
cGVuREJSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQk9wZW5EQlJlcXVlc3Q6Om9u
VXBncmFkZU5lZWRlZCk6IHVzZSBwYXNzZWQtaW4gbWV0YWRhdGEuCisgICAgICAgIChXZWJDb3Jl
OjpJREJPcGVuREJSZXF1ZXN0OjpvblN1Y2Nlc3MpOiB1c2UgcGFzc2VkLWluIG1ldGFkYXRhLgor
ICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuaDoKKyAgICAgICAg
KElEQk9wZW5EQlJlcXVlc3QpOgorCiAyMDEzLTAxLTIzICBOb2FtIFJvc2VudGhhbCAgPG5vYW1A
d2Via2l0Lm9yZz4KIAogICAgICAgICBSRUdSRVNTSU9OKHIxNDA1MTgpOiBCcm9rZSBDaHJvbWl1
bSBXaW4gYnVpbGQgKGd5cCBmaWxlIG5vdCB1cGRhdGVkKSAoUmVxdWVzdGVkIGJ5IGFydiBvbiAj
d2Via2l0KS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMDdiZTJhY2E5MWUzNzBhNDZm
ODcxZDg2MDBiYTA2ODY4ZTIxNTY5Ni4uNjllZDdmZTk3NDUyMDkwYzk1ZDA3NmFmMjRmMTQwZjcz
NGRiMGYwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAx
My0wMS0yNCAgQWxlYyBGbGV0dCAgPGFsZWNmbGV0dEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
SW5kZXhlZERCOiBQYXNzIG1ldGFkYXRhIGluIHRvIElEQk9wZW5EQlJlcXVlc3Qub25VcGdyYWRl
TmVlZGVkL29uU3VjY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTAzOTIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgU3VwcG9ydCB0aGUgbmV3IElEQkNhbGxiYWNrczo6b25TdWNjZXNzIGFuZCBJREJD
YWxsYmFja3M6Om9uVXBncmFkZU5lZWRlZAorICAgICAgICB3aGlsZSBtYWludGFpbmluZyBjaHJv
bWl1bSBjb21wYXRpYmlsaXR5IGJ5IHNoaW1taW5nIGluIHRoZSBvbGQgQVBJCisgICAgICAgIGlu
IHRoZSBXZWJLaXQgc2lkZS4gRnV0dXJlIGNvZGUgd2lsbCBjbGVhbiB0aGlzIHVwIHNvIHRoYXQg
aXQgaXMganVzdCBhCisgICAgICAgIHBhc3MtdGhyb3VnaCBhcyBpdCB3YXMgYmVmb3JlLgorCisg
ICAgICAgICogcHVibGljL1dlYklEQkNhbGxiYWNrcy5oOgorICAgICAgICAoV2ViS2l0KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViSURCQ2FsbGJhY2tzOjpvblN1Y2Nlc3MpOiBuZXcgbWV0aG9kIHNp
Z25hdHVyZS4KKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ2FsbGJhY2tzOjpvblVwZ3JhZGVOZWVk
ZWQpOiBuZXcgbWV0aG9kIHNpZ25hdHVyZS4KKyAgICAgICAgKiBzcmMvSURCQ2FsbGJhY2tzUHJv
eHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpJREJDYWxsYmFja3NQcm94eTo6b25TdWNjZXNzKTog
Y2FsbCBvbiBuZXcgbWV0aG9kIHNpZ25hdHVyZSBwcm94aWVzIHRocm91Z2ggb2xkIEFQSS4KKyAg
ICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OklEQkNhbGxiYWNrc1Byb3h5OjpvblVw
Z3JhZGVOZWVkZWQpOiBjYWxsIG9uIG5ldyBtZXRob2Qgc2lnbmF0dXJlIHByb3hpZXMgdGhyb3Vn
aCBvbGQgQVBJLgorICAgICAgICAqIHNyYy9JREJDYWxsYmFja3NQcm94eS5oOgorICAgICAgICAo
SURCQ2FsbGJhY2tzUHJveHkpOgorICAgICAgICAqIHNyYy9XZWJJREJDYWxsYmFja3NJbXBsLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ2FsbGJhY2tzSW1wbDo6b25TdWNjZXNzKTogY2Fs
bCBvbiBvbGQgV2ViS2l0IHByb3h5IHNpZ25hdHVyZSBjYWxscyBuZXcgQVBJLgorICAgICAgICAo
V2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ2FsbGJhY2tzSW1wbDo6b25VcGdyYWRl
TmVlZGVkKTogY2FsbCBvbiBvbGQgV2ViS2l0IHByb3h5IHNpZ25hdHVyZSBjYWxscyBuZXcgQVBJ
LgorICAgICAgICAqIHNyYy9XZWJJREJDYWxsYmFja3NJbXBsLmg6CisgICAgICAgIChXZWJJREJD
YWxsYmFja3NJbXBsKToKKyAgICAgICAgKiB0ZXN0cy9JREJBYm9ydE9uQ29ycnVwdFRlc3QuY3Bw
OiBuZXcgbWV0aG9kIHNpZ25hdHVyZS4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tJREJDYWxsYmFj
a3M6Om9uU3VjY2Vzcyk6CisgICAgICAgICogdGVzdHMvSURCRGF0YWJhc2VCYWNrZW5kVGVzdC5j
cHA6IG5ldyBtZXRob2Qgc2lnbmF0dXJlLgorCiAyMDEzLTAxLTIzICBEbWl0cnkgR296bWFuICA8
ZGdvem1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQWRkZWQgY2hhbmdlQXR0YWNoZWRXaW5k
b3dIZWlnaHQgbWV0aG9kIHRvIGluc3BlY3RvciBmcm9udGVuZCBBUEksIHdoaWNoCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDYWxsYmFja3MuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkNhbGxiYWNrcy5oCmluZGV4IGY4ZDNj
ZTQ4Y2Q4Mzc0ZmYxZWQ2Yjk4Mjg4ZTY0OGZkYWI2ZTVhYWMuLmM4YTUyNGM3Y2I4YWMwN2Q5ZTg2
ZTBiZDEwZjAxOTc3ZWY5ZWNlYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkNhbGxiYWNrcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkNhbGxiYWNrcy5oCkBAIC03Miw4ICs3Miw4IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgb25CbG9ja2VkKCkgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAgIHZpcnR1
YWwgdm9pZCBvbkJsb2NrZWQoaW50NjRfdCBleGlzdGluZ1ZlcnNpb24pIHsgQVNTRVJUX05PVF9S
RUFDSEVEKCk7IH0KICAgICAvLyBGcm9tIElEQkZhY3Rvcnkub3BlbigpCi0gICAgdmlydHVhbCB2
b2lkIG9uVXBncmFkZU5lZWRlZChpbnQ2NF90IG9sZFZlcnNpb24sIFBhc3NSZWZQdHI8SURCVHJh
bnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJ
bnRlcmZhY2U+KSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9Ci0gICAgdmlydHVhbCB2b2lkIG9u
U3VjY2VzcyhQYXNzUmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZT4pIHsgQVNTRVJU
X05PVF9SRUFDSEVEKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgb25VcGdyYWRlTmVlZGVkKGludDY0
X3Qgb2xkVmVyc2lvbiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+LCBj
b25zdCBJREJEYXRhYmFzZU1ldGFkYXRhJikgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorICAg
IHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbnRl
cmZhY2U+LCBjb25zdCBJREJEYXRhYmFzZU1ldGFkYXRhJikgeyBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcApp
bmRleCAzZjgzNDhjNWQ3NjA3NTFiMTVjNzQwZjgzZjliYjI5MWRjYTRkNjY0Li5lZDNhMmYwNTgx
YWY5NDY1MTYxNjJlOWY3ZTk1ZDYwMDFlODJlNzM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcApA
QCAtMTA2Niw3ICsxMDY2LDcgQEAgdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpWZXJzaW9u
Q2hhbmdlT3BlcmF0aW9uOjpwZXJmb3JtKElEQlRyYW5zYWN0aW9uQmFja2UKICAgICB9CiAgICAg
QVNTRVJUKCFtX2RhdGFiYXNlLT5tX3BlbmRpbmdTZWNvbmRIYWxmT3Blbik7CiAgICAgbV9kYXRh
YmFzZS0+bV9wZW5kaW5nU2Vjb25kSGFsZk9wZW4gPSBQZW5kaW5nT3BlbkNhbGw6OmNyZWF0ZSht
X2NhbGxiYWNrcywgbV9kYXRhYmFzZUNhbGxiYWNrcywgbV90cmFuc2FjdGlvbklkLCBtX3ZlcnNp
b24pOwotICAgIG1fY2FsbGJhY2tzLT5vblVwZ3JhZGVOZWVkZWQob2xkVmVyc2lvbiwgdHJhbnNh
Y3Rpb24sIG1fZGF0YWJhc2UpOworICAgIG1fY2FsbGJhY2tzLT5vblVwZ3JhZGVOZWVkZWQob2xk
VmVyc2lvbiwgbV9kYXRhYmFzZSwgbV9kYXRhYmFzZS0+bWV0YWRhdGEoKSk7CiB9CiAKIHZvaWQg
SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6dHJhbnNhY3Rpb25TdGFydGVkKFBhc3NSZWZQdHI8SURC
VHJhbnNhY3Rpb25CYWNrZW5kSW1wbD4gcHJwVHJhbnNhY3Rpb24pCkBAIC0xMTIzLDcgKzExMjMs
NyBAQCB2b2lkIElEQkRhdGFiYXNlQmFja2VuZEltcGw6OnByb2Nlc3NQZW5kaW5nQ2FsbHMoKQog
ICAgIGlmIChtX3BlbmRpbmdTZWNvbmRIYWxmT3BlbikgewogICAgICAgICBBU1NFUlQobV9wZW5k
aW5nU2Vjb25kSGFsZk9wZW4tPnZlcnNpb24oKSA9PSBtX21ldGFkYXRhLmludFZlcnNpb24pOwog
ICAgICAgICBBU1NFUlQobV9tZXRhZGF0YS5pZCAhPSBJbnZhbGlkSWQpOwotICAgICAgICBtX3Bl
bmRpbmdTZWNvbmRIYWxmT3Blbi0+Y2FsbGJhY2tzKCktPm9uU3VjY2Vzcyh0aGlzKTsKKyAgICAg
ICAgbV9wZW5kaW5nU2Vjb25kSGFsZk9wZW4tPmNhbGxiYWNrcygpLT5vblN1Y2Nlc3ModGhpcywg
dGhpcy0+bWV0YWRhdGEoKSk7CiAgICAgICAgIG1fcGVuZGluZ1NlY29uZEhhbGZPcGVuLnJlbGVh
c2UoKTsKICAgICAgICAgLy8gRmFsbCB0aHJvdWdoIHdoZW4gY29tcGxldGUsIGFzIHBlbmRpbmcg
ZGVsZXRlcyBtYXkgYmUgKHBhcnRpYWxseSkgdW5ibG9ja2VkLgogICAgIH0KQEAgLTEyMDQsMTQg
KzEyMDQsMTQgQEAgdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpvcGVuQ29ubmVjdGlvbihQ
YXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gcHJwQ2FsbGJhY2sKICAgICAgICAgLy8gRm9yIHVuaXQg
dGVzdHMgb25seSAtIHNraXAgdXBncmFkZSBzdGVwcy4gQ2FsbGluZyBmcm9tIHNjcmlwdCB3aXRo
IERlZmF1bHRJbnRWZXJzaW9uIHRocm93cyBleGNlcHRpb24uCiAgICAgICAgIEFTU0VSVChpc05l
d0RhdGFiYXNlKTsKICAgICAgICAgbV9kYXRhYmFzZUNhbGxiYWNrc1NldC5hZGQoZGF0YWJhc2VD
YWxsYmFja3MpOwotICAgICAgICBjYWxsYmFja3MtPm9uU3VjY2Vzcyh0aGlzKTsKKyAgICAgICAg
Y2FsbGJhY2tzLT5vblN1Y2Nlc3ModGhpcywgdGhpcy0+bWV0YWRhdGEoKSk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKICAgICBpZiAodmVyc2lvbiA9PSBJREJEYXRhYmFzZU1ldGFkYXRhOjpO
b0ludFZlcnNpb24pIHsKICAgICAgICAgaWYgKCFpc05ld0RhdGFiYXNlKSB7CiAgICAgICAgICAg
ICBtX2RhdGFiYXNlQ2FsbGJhY2tzU2V0LmFkZChSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+
KGRhdGFiYXNlQ2FsbGJhY2tzKSk7Ci0gICAgICAgICAgICBjYWxsYmFja3MtPm9uU3VjY2Vzcyh0
aGlzKTsKKyAgICAgICAgICAgIGNhbGxiYWNrcy0+b25TdWNjZXNzKHRoaXMsIHRoaXMtPm1ldGFk
YXRhKCkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIC8vIFNwZWMg
c2F5czogSWYgbm8gdmVyc2lvbiBpcyBzcGVjaWZpZWQgYW5kIG5vIGRhdGFiYXNlIGV4aXN0cywg
c2V0IGRhdGFiYXNlIHZlcnNpb24gdG8gMS4KQEAgLTEyMjgsNyArMTIyOCw3IEBAIHZvaWQgSURC
RGF0YWJhc2VCYWNrZW5kSW1wbDo6b3BlbkNvbm5lY3Rpb24oUGFzc1JlZlB0cjxJREJDYWxsYmFj
a3M+IHBycENhbGxiYWNrCiAgICAgfQogICAgIEFTU0VSVCh2ZXJzaW9uID09IG1fbWV0YWRhdGEu
aW50VmVyc2lvbik7CiAgICAgbV9kYXRhYmFzZUNhbGxiYWNrc1NldC5hZGQoZGF0YWJhc2VDYWxs
YmFja3MpOwotICAgIGNhbGxiYWNrcy0+b25TdWNjZXNzKHRoaXMpOworICAgIGNhbGxiYWNrcy0+
b25TdWNjZXNzKHRoaXMsIHRoaXMtPm1ldGFkYXRhKCkpOwogfQogCiB2b2lkIElEQkRhdGFiYXNl
QmFja2VuZEltcGw6OnJ1bkludFZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbihQYXNzUmVmUHRyPElE
QkNhbGxiYWNrcz4gcHJwQ2FsbGJhY2tzLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tz
PiBwcnBEYXRhYmFzZUNhbGxiYWNrcywgaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IHJl
cXVlc3RlZFZlcnNpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQk9wZW5EQlJlcXVlc3QuY3BwCmluZGV4IDUyODcyNmM5YTQzN2MyYTAwYmVlYmU0MWVl
ZTJjN2EwOGQxNGJlMGEuLmI2YmUwNDIyNTEwYzU1MzQyMDc0YzFiNjUwMWRjZmE1OTQwM2EzNjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJl
cXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5E
QlJlcXVlc3QuY3BwCkBAIC02OSw3ICs2OSw3IEBAIHZvaWQgSURCT3BlbkRCUmVxdWVzdDo6b25C
bG9ja2VkKGludDY0X3Qgb2xkVmVyc2lvbikKICAgICBlbnF1ZXVlRXZlbnQoSURCVXBncmFkZU5l
ZWRlZEV2ZW50OjpjcmVhdGUob2xkVmVyc2lvbiwgbV92ZXJzaW9uLCBldmVudE5hbWVzKCkuYmxv
Y2tlZEV2ZW50KSk7CiB9CiAKLXZvaWQgSURCT3BlbkRCUmVxdWVzdDo6b25VcGdyYWRlTmVlZGVk
KGludDY0X3Qgb2xkVmVyc2lvbiwgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRl
cmZhY2U+LCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZT4gcHJwRGF0YWJh
c2VCYWNrZW5kKQordm9pZCBJREJPcGVuREJSZXF1ZXN0OjpvblVwZ3JhZGVOZWVkZWQoaW50NjRf
dCBvbGRWZXJzaW9uLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZT4gcHJw
RGF0YWJhc2VCYWNrZW5kLCBjb25zdCBJREJEYXRhYmFzZU1ldGFkYXRhJiBtZXRhZGF0YSkKIHsK
ICAgICBJREJfVFJBQ0UoIklEQk9wZW5EQlJlcXVlc3Q6Om9uVXBncmFkZU5lZWRlZCgpIik7CiAg
ICAgaWYgKG1fY29udGV4dFN0b3BwZWQgfHwgIXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkgewpA
QCAtODQsOSArODQsNiBAQCB2b2lkIElEQk9wZW5EQlJlcXVlc3Q6Om9uVXBncmFkZU5lZWRlZChp
bnQ2NF90IG9sZFZlcnNpb24sIFBhc3NSZWZQdHI8SURCVHJhbnNhYwogICAgIEFTU0VSVChtX2Rh
dGFiYXNlQ2FsbGJhY2tzKTsKIAogICAgIFJlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZh
Y2U+IGRhdGFiYXNlQmFja2VuZCA9IHBycERhdGFiYXNlQmFja2VuZDsKLSAgICAvLyBGSVhNRTog
VGhpcyBwb3RlbnRpYWxseSBleHBlbnNpdmUgKHN5bmNocm9ub3VzKSBjYWxsIGludG8gdGhlIGJh
Y2tlbmQgY291bGQgYmUgcmVtb3ZlZCBpZiB0aGUgbWV0YWRhdGEKLSAgICAvLyB3ZXJlIHBhc3Nl
ZCBpbiBkdXJpbmcgdGhlIChhc3luY2hyb25vdXMpIG9uVXBncmFkZU5lZWRlZCBjYWxsIGZyb20g
dGhlIGJhY2tlbmQuIGh0dHA6Ly93a2J1Zy5jb20vMTAzOTIwCi0gICAgSURCRGF0YWJhc2VNZXRh
ZGF0YSBtZXRhZGF0YSA9IGRhdGFiYXNlQmFja2VuZC0+bWV0YWRhdGEoKTsKIAogICAgIFJlZlB0
cjxJREJEYXRhYmFzZT4gaWRiRGF0YWJhc2UgPSBJREJEYXRhYmFzZTo6Y3JlYXRlKHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSwgZGF0YWJhc2VCYWNrZW5kLCBtX2RhdGFiYXNlQ2FsbGJhY2tzKTsK
ICAgICBpZGJEYXRhYmFzZS0+c2V0TWV0YWRhdGEobWV0YWRhdGEpOwpAQCAtOTcsOSArOTQsMTAg
QEAgdm9pZCBJREJPcGVuREJSZXF1ZXN0OjpvblVwZ3JhZGVOZWVkZWQoaW50NjRfdCBvbGRWZXJz
aW9uLCBQYXNzUmVmUHRyPElEQlRyYW5zYWMKICAgICAgICAgLy8gVGhpcyBkYXRhYmFzZSBoYXNu
J3QgaGFkIGFuIGludGVnZXIgdmVyc2lvbiBiZWZvcmUuCiAgICAgICAgIG9sZFZlcnNpb24gPSBJ
REJEYXRhYmFzZU1ldGFkYXRhOjpEZWZhdWx0SW50VmVyc2lvbjsKICAgICB9Ci0gICAgbWV0YWRh
dGEuaW50VmVyc2lvbiA9IG9sZFZlcnNpb247CisgICAgSURCRGF0YWJhc2VNZXRhZGF0YSBvbGRN
ZXRhZGF0YShtZXRhZGF0YSk7CisgICAgb2xkTWV0YWRhdGEuaW50VmVyc2lvbiA9IG9sZFZlcnNp
b247CiAKLSAgICBtX3RyYW5zYWN0aW9uID0gSURCVHJhbnNhY3Rpb246OmNyZWF0ZShzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCksIG1fdHJhbnNhY3Rpb25JZCwgaWRiRGF0YWJhc2UuZ2V0KCksIHRo
aXMsIG1ldGFkYXRhKTsKKyAgICBtX3RyYW5zYWN0aW9uID0gSURCVHJhbnNhY3Rpb246OmNyZWF0
ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIG1fdHJhbnNhY3Rpb25JZCwgaWRiRGF0YWJhc2Uu
Z2V0KCksIHRoaXMsIG9sZE1ldGFkYXRhKTsKICAgICBtX3Jlc3VsdCA9IElEQkFueTo6Y3JlYXRl
KGlkYkRhdGFiYXNlLnJlbGVhc2UoKSk7CiAKICAgICBpZiAobV92ZXJzaW9uID09IElEQkRhdGFi
YXNlTWV0YWRhdGE6Ok5vSW50VmVyc2lvbikKQEAgLTEwNywxNiArMTA1LDEzIEBAIHZvaWQgSURC
T3BlbkRCUmVxdWVzdDo6b25VcGdyYWRlTmVlZGVkKGludDY0X3Qgb2xkVmVyc2lvbiwgUGFzc1Jl
ZlB0cjxJREJUcmFuc2FjCiAgICAgZW5xdWV1ZUV2ZW50KElEQlVwZ3JhZGVOZWVkZWRFdmVudDo6
Y3JlYXRlKG9sZFZlcnNpb24sIG1fdmVyc2lvbiwgZXZlbnROYW1lcygpLnVwZ3JhZGVuZWVkZWRF
dmVudCkpOwogfQogCi12b2lkIElEQk9wZW5EQlJlcXVlc3Q6Om9uU3VjY2VzcyhQYXNzUmVmUHRy
PElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZT4gcHJwQmFja2VuZCkKK3ZvaWQgSURCT3BlbkRC
UmVxdWVzdDo6b25TdWNjZXNzKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNl
PiBwcnBCYWNrZW5kLCBjb25zdCBJREJEYXRhYmFzZU1ldGFkYXRhJiBtZXRhZGF0YSkKIHsKICAg
ICBJREJfVFJBQ0UoIklEQk9wZW5EQlJlcXVlc3Q6Om9uU3VjY2VzcygpIik7CiAgICAgaWYgKCFz
aG91bGRFbnF1ZXVlRXZlbnQoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgUmVmUHRyPElEQkRh
dGFiYXNlQmFja2VuZEludGVyZmFjZT4gYmFja2VuZCA9IHBycEJhY2tlbmQ7Ci0gICAgLy8gRklY
TUU6IFRoaXMgcG90ZW50aWFsbHkgZXhwZW5zaXZlIChzeW5jaHJvbm91cykgY2FsbCBpbnRvIHRo
ZSBiYWNrZW5kIGNvdWxkIGJlIHJlbW92ZWQgaWYgdGhlIG1ldGFkYXRhCi0gICAgLy8gd2VyZSBw
YXNzZWQgaW4gZHVyaW5nIHRoZSAoYXN5bmNocm9ub3VzKSBvblN1Y2Nlc3MgY2FsbCBmcm9tIHRo
ZSBiYWNrZW5kLiBodHRwOi8vd2tidWcuY29tLzEwMzkyMAotICAgIElEQkRhdGFiYXNlTWV0YWRh
dGEgbWV0YWRhdGEgPSBiYWNrZW5kLT5tZXRhZGF0YSgpOwogICAgIFJlZlB0cjxJREJEYXRhYmFz
ZT4gaWRiRGF0YWJhc2U7CiAgICAgaWYgKG1fcmVzdWx0KSB7CiAgICAgICAgIGlkYkRhdGFiYXNl
ID0gbV9yZXN1bHQtPmlkYkRhdGFiYXNlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmgKaW5kZXggNDA0ZjkxNDIxNjAxM2ZjNTg2
ZTJmZDVhZDk4MjhmY2QxMWEyZmI3Yi4uMzE2MmI2ODBjN2RiYzE2YmY0MGZjZTM1ZGZmZjhlYTk0
YTczNzllNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
T3BlbkRCUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
Qk9wZW5EQlJlcXVlc3QuaApAQCAtNDIsOCArNDIsOCBAQCBwdWJsaWM6CiAgICAgdXNpbmcgSURC
UmVxdWVzdDo6b25TdWNjZXNzOwogCiAgICAgdmlydHVhbCB2b2lkIG9uQmxvY2tlZChpbnQ2NF90
IGV4aXN0aW5nVmVyc2lvbikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIG9uVXBncmFkZU5l
ZWRlZChpbnQ2NF90IG9sZFZlcnNpb24sIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5k
SW50ZXJmYWNlPiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+KSBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VC
YWNrZW5kSW50ZXJmYWNlPikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIG9uVXBncmFkZU5l
ZWRlZChpbnQ2NF90IG9sZFZlcnNpb24sIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kSW50
ZXJmYWNlPiwgY29uc3QgSURCRGF0YWJhc2VNZXRhZGF0YSYpIE9WRVJSSURFOworICAgIHZpcnR1
YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+
LCBjb25zdCBJREJEYXRhYmFzZU1ldGFkYXRhJikgT1ZFUlJJREU7CiAKICAgICAvLyBFdmVudFRh
cmdldAogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBpbnRlcmZhY2VOYW1lKCkgY29u
c3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJDYWxs
YmFja3MuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkNhbGxiYWNrcy5o
CmluZGV4IDU0OTFiOTZhODgyY2RjZGVlNzQ4YjQxM2RkZDc2ZmVlMDliNGM1NjUuLmM0MWM3ZTQ2
MDhkMDkyOTVmYjIxZWExNjY1ZTU0ZmNkMWFmYmZkYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYklEQkNhbGxiYWNrcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYklEQkNhbGxiYWNrcy5oCkBAIC00MCw2ICs0MCw3IEBAIGNsYXNz
IFdlYklEQktleVBhdGg7CiBjbGFzcyBXZWJJREJJbmRleDsKIGNsYXNzIFdlYklEQlRyYW5zYWN0
aW9uOwogY2xhc3MgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlOworc3RydWN0IFdlYklEQk1ldGFk
YXRhOwogCiBjbGFzcyBXZWJJREJDYWxsYmFja3MgewogcHVibGljOgpAQCAtNTEsNiArNTIsNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzcyhjb25zdCBXZWJET01TdHJpbmdM
aXN0JikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQg
b25TdWNjZXNzKFdlYklEQkN1cnNvciosIGNvbnN0IFdlYklEQktleSYga2V5LCBjb25zdCBXZWJJ
REJLZXkmIHByaW1hcnlLZXksIGNvbnN0IFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSYpIHsgV0VC
S0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhX
ZWJJREJEYXRhYmFzZSopIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisgICAgdmly
dHVhbCB2b2lkIG9uU3VjY2VzcyhXZWJJREJEYXRhYmFzZSosIGNvbnN0IFdlYklEQk1ldGFkYXRh
JikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgb25T
dWNjZXNzKGNvbnN0IFdlYklEQktleSYpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9
CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzcyhjb25zdCBXZWJTZXJpYWxpemVkU2NyaXB0VmFs
dWUmKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBv
blN1Y2Nlc3MoY29uc3QgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlJiwgY29uc3QgV2ViSURCS2V5
JiwgY29uc3QgV2ViSURCS2V5UGF0aCYpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9
CkBAIC02MSw2ICs2Myw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgb25CbG9ja2VkKGxv
bmcgbG9uZyBvbGRWZXJzaW9uKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAg
IHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3NXaXRoUHJlZmV0Y2goY29uc3QgV2ViVmVjdG9yPFdlYklE
QktleT4mIGtleXMsIGNvbnN0IFdlYlZlY3RvcjxXZWJJREJLZXk+JiBwcmltYXJ5S2V5cywgY29u
c3QgV2ViVmVjdG9yPFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mIHZhbHVlcykgeyBXRUJLSVRf
QVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgb25VcGdyYWRlTmVlZGVk
KGxvbmcgbG9uZyBvbGRWZXJzaW9uLCBXZWJJREJUcmFuc2FjdGlvbiosIFdlYklEQkRhdGFiYXNl
KikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgb25V
cGdyYWRlTmVlZGVkKGxvbmcgbG9uZyBvbGRWZXJzaW9uLCBXZWJJREJEYXRhYmFzZSosIGNvbnN0
IFdlYklEQk1ldGFkYXRhJikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvSURCQ2FsbGJhY2tzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
SURCQ2FsbGJhY2tzUHJveHkuY3BwCmluZGV4IDA5MmJmYjdhMTQ5YTQyOGFhMGJhN2VlYmY3NjI5
MWZiMDQxNDA2MTAuLjFkMTkzMDE0MmMxMTExZWJlYjk0YTFkZmRlZTZmYzg3MGQ2OGQxZmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNhbGxiYWNrc1Byb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5jcHAK
QEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJJREJEYXRhYmFzZUJhY2tlbmRQcm94eS5oIgog
I2luY2x1ZGUgIklEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHkuaCIKICNpbmNsdWRlICJJREJEYXRh
YmFzZUVycm9yLmgiCisjaW5jbHVkZSAiSURCTWV0YWRhdGEuaCIKICNpbmNsdWRlICJJREJUcmFu
c2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UuaCIKICNpbmNsdWRlICJXZWJJREJDYWxsYmFja3MuaCIK
ICNpbmNsdWRlICJXZWJJREJDdXJzb3JJbXBsLmgiCkBAIC05MSw2ICs5MiwxNCBAQCB2b2lkIElE
QkNhbGxiYWNrc1Byb3h5OjpvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJ
bnRlcmZhY2U+IGJhY2tlbgogICAgIG1fY2FsbGJhY2tzLT5vblN1Y2Nlc3MoaW1wbCk7CiB9CiAK
K3ZvaWQgSURCQ2FsbGJhY2tzUHJveHk6Om9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkRhdGFiYXNl
QmFja2VuZEludGVyZmFjZT4gYmFja2VuZCwgY29uc3QgSURCRGF0YWJhc2VNZXRhZGF0YSYpCit7
CisgICAgQVNTRVJUKG1fZGF0YWJhc2VDYWxsYmFja3MuZ2V0KCkpOworICAgIG1fZGlkQ29tcGxl
dGUgPSB0cnVlOworICAgIFdlYklEQkRhdGFiYXNlSW1wbCogaW1wbCA9IG1fZGlkQ3JlYXRlUHJv
eHkgPyAwIDogbmV3IFdlYklEQkRhdGFiYXNlSW1wbChiYWNrZW5kLCBtX2RhdGFiYXNlQ2FsbGJh
Y2tzLnJlbGVhc2UoKSk7CisgICAgbV9jYWxsYmFja3MtPm9uU3VjY2VzcyhpbXBsKTsKK30KKwog
dm9pZCBJREJDYWxsYmFja3NQcm94eTo6b25TdWNjZXNzKFBhc3NSZWZQdHI8SURCS2V5PiBpZGJL
ZXkpCiB7CiAgICAgbV9kaWRDb21wbGV0ZSA9IHRydWU7CkBAIC0xNjQsOCArMTczLDE2IEBAIHZv
aWQgSURCQ2FsbGJhY2tzUHJveHk6Om9uQmxvY2tlZChpbnQ2NF90IGV4aXN0aW5nVmVyc2lvbikK
IHZvaWQgSURCQ2FsbGJhY2tzUHJveHk6Om9uVXBncmFkZU5lZWRlZChpbnQ2NF90IG9sZFZlcnNp
b24sIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiB0cmFuc2FjdGlv
biwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+IGRhdGFiYXNlKQogewog
ICAgIEFTU0VSVChtX2RhdGFiYXNlQ2FsbGJhY2tzKTsKKyAgICBBU1NFUlQoIXRyYW5zYWN0aW9u
KTsKKyAgICBtX2RpZENyZWF0ZVByb3h5ID0gdHJ1ZTsKKyAgICBtX2NhbGxiYWNrcy0+b25VcGdy
YWRlTmVlZGVkKG9sZFZlcnNpb24sIDAsIG5ldyBXZWJJREJEYXRhYmFzZUltcGwoZGF0YWJhc2Us
IG1fZGF0YWJhc2VDYWxsYmFja3MpKTsKK30KKwordm9pZCBJREJDYWxsYmFja3NQcm94eTo6b25V
cGdyYWRlTmVlZGVkKGludDY0X3Qgb2xkVmVyc2lvbiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJh
Y2tlbmRJbnRlcmZhY2U+IGRhdGFiYXNlLCBjb25zdCBJREJEYXRhYmFzZU1ldGFkYXRhJikKK3sK
KyAgICBBU1NFUlQobV9kYXRhYmFzZUNhbGxiYWNrcyk7CiAgICAgbV9kaWRDcmVhdGVQcm94eSA9
IHRydWU7Ci0gICAgbV9jYWxsYmFja3MtPm9uVXBncmFkZU5lZWRlZChvbGRWZXJzaW9uLCBuZXcg
V2ViSURCVHJhbnNhY3Rpb25JbXBsKHRyYW5zYWN0aW9uKSwgbmV3IFdlYklEQkRhdGFiYXNlSW1w
bChkYXRhYmFzZSwgbV9kYXRhYmFzZUNhbGxiYWNrcykpOworICAgIG1fY2FsbGJhY2tzLT5vblVw
Z3JhZGVOZWVkZWQob2xkVmVyc2lvbiwgMCwgbmV3IFdlYklEQkRhdGFiYXNlSW1wbChkYXRhYmFz
ZSwgbV9kYXRhYmFzZUNhbGxiYWNrcykpOwogfQogCiB2b2lkIElEQkNhbGxiYWNrc1Byb3h5Ojpz
ZXREYXRhYmFzZUNhbGxiYWNrcyhQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHk+
IGRhdGFiYXNlQ2FsbGJhY2tzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvSURCQ2FsbGJhY2tzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNh
bGxiYWNrc1Byb3h5LmgKaW5kZXggZTY5ZDU5NzEwYTc0ODYxZmRhMTVjNGU4YTkyNDhiZTQzMGVi
NmNjZi4uNGNmYTE3ZTlmNGUwZTk3MGFiZTJiODhiOWUwNjI2M2ZlNDkxY2RiMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5oCkBAIC01MCw2ICs1
MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8V2Vi
Q29yZTo6RE9NU3RyaW5nTGlzdD4pOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1Jl
ZlB0cjxXZWJDb3JlOjpJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlPiwgUGFzc1JlZlB0cjxXZWJD
b3JlOjpJREJLZXk+LCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQktleT4gcHJpbWFyeUtleSwgUGFz
c1JlZlB0cjxXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU+KTsKICAgICB2aXJ0dWFsIHZv
aWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJm
YWNlPik7CisgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPFdlYkNvcmU6OklE
QkRhdGFiYXNlQmFja2VuZEludGVyZmFjZT4sIGNvbnN0IFdlYkNvcmU6OklEQkRhdGFiYXNlTWV0
YWRhdGEmKTsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8V2ViQ29yZTo6
SURCS2V5Pik7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPFdlYkNvcmU6
OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4pOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFz
c1JlZlB0cjxXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU+LCBQYXNzUmVmUHRyPFdlYkNv
cmU6OklEQktleT4sIGNvbnN0IFdlYkNvcmU6OklEQktleVBhdGgmKTsKQEAgLTYwLDYgKzYxLDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBvbkJsb2NrZWQoKTsKICAgICB2aXJ0dWFsIHZv
aWQgb25CbG9ja2VkKGludDY0X3QgZXhpc3RpbmdWZXJzaW9uKTsKICAgICB2aXJ0dWFsIHZvaWQg
b25VcGdyYWRlTmVlZGVkKGludDY0X3Qgb2xkVmVyc2lvbiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJ
REJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+LCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkRh
dGFiYXNlQmFja2VuZEludGVyZmFjZT4pOworICAgIHZpcnR1YWwgdm9pZCBvblVwZ3JhZGVOZWVk
ZWQoaW50NjRfdCBvbGRWZXJzaW9uLCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkRhdGFiYXNlQmFj
a2VuZEludGVyZmFjZT4sIGNvbnN0IFdlYkNvcmU6OklEQkRhdGFiYXNlTWV0YWRhdGEmKTsKIAog
ICAgIHZvaWQgc2V0RGF0YWJhc2VDYWxsYmFja3MoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxi
YWNrc1Byb3h5Pik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YklEQkNhbGxiYWNrc0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURC
Q2FsbGJhY2tzSW1wbC5jcHAKaW5kZXggNTdjMDMxOWQ0OTJhZDQ1YjEzMjRlYjY3ODBiNmFlZDJm
Mjc0NjIwMC4uNDhlZDE0NTU2NDNiMDc1Y2YzZWFiNTczZTljM2ExOTk0MDZkMWQ1YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5jcHAK
QEAgLTc0LDEwICs3NCwyMiBAQCB2b2lkIFdlYklEQkNhbGxiYWNrc0ltcGw6Om9uU3VjY2VzcyhX
ZWJJREJDdXJzb3IqIGN1cnNvciwgY29uc3QgV2ViSURCS2V5JiBrZXksCiB2b2lkIFdlYklEQkNh
bGxiYWNrc0ltcGw6Om9uU3VjY2VzcyhXZWJJREJEYXRhYmFzZSogd2ViS2l0SW5zdGFuY2UpCiB7
CiAgICAgaWYgKG1fZGF0YWJhc2VQcm94eSkgewotICAgICAgICBtX2NhbGxiYWNrcy0+b25TdWNj
ZXNzKG1fZGF0YWJhc2VQcm94eS5yZWxlYXNlKCkpOworICAgICAgICBJREJEYXRhYmFzZU1ldGFk
YXRhIG1ldGFkYXRhID0gbV9kYXRhYmFzZVByb3h5LT5tZXRhZGF0YSgpOworICAgICAgICBtX2Nh
bGxiYWNrcy0+b25TdWNjZXNzKG1fZGF0YWJhc2VQcm94eS5yZWxlYXNlKCksIG1ldGFkYXRhKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBtX2NhbGxiYWNrcy0+b25TdWNjZXNzKElEQkRh
dGFiYXNlQmFja2VuZFByb3h5OjpjcmVhdGUoYWRvcHRQdHIod2ViS2l0SW5zdGFuY2UpKSk7Cisg
ICAgUmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZT4gbG9jYWxEYXRhYmFzZVByb3h5
ID0gSURCRGF0YWJhc2VCYWNrZW5kUHJveHk6OmNyZWF0ZShhZG9wdFB0cih3ZWJLaXRJbnN0YW5j
ZSkpOworICAgIG1fY2FsbGJhY2tzLT5vblN1Y2Nlc3MobG9jYWxEYXRhYmFzZVByb3h5LCBsb2Nh
bERhdGFiYXNlUHJveHktPm1ldGFkYXRhKCkpOworfQorCit2b2lkIFdlYklEQkNhbGxiYWNrc0lt
cGw6Om9uU3VjY2VzcyhXZWJJREJEYXRhYmFzZSogd2ViS2l0SW5zdGFuY2UsIGNvbnN0IFdlYklE
Qk1ldGFkYXRhJiBtZXRhZGF0YSkKK3sKKyAgICBpZiAobV9kYXRhYmFzZVByb3h5KSB7CisgICAg
ICAgIG1fY2FsbGJhY2tzLT5vblN1Y2Nlc3MobV9kYXRhYmFzZVByb3h5LnJlbGVhc2UoKSwgbWV0
YWRhdGEpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIFJlZlB0cjxJREJEYXRhYmFzZUJh
Y2tlbmRJbnRlcmZhY2U+IGxvY2FsRGF0YWJhc2VQcm94eSA9IElEQkRhdGFiYXNlQmFja2VuZFBy
b3h5OjpjcmVhdGUoYWRvcHRQdHIod2ViS2l0SW5zdGFuY2UpKTsKKyAgICBtX2NhbGxiYWNrcy0+
b25TdWNjZXNzKGxvY2FsRGF0YWJhc2VQcm94eSwgbWV0YWRhdGEpOwogfQogCiB2b2lkIFdlYklE
QkNhbGxiYWNrc0ltcGw6Om9uU3VjY2Vzcyhjb25zdCBXZWJJREJLZXkmIGtleSkKQEAgLTEyMCwx
MCArMTMyLDE2IEBAIHZvaWQgV2ViSURCQ2FsbGJhY2tzSW1wbDo6b25CbG9ja2VkKGxvbmcgbG9u
ZyBvbGRWZXJzaW9uKQogICAgIG1fY2FsbGJhY2tzLT5vbkJsb2NrZWQob2xkVmVyc2lvbik7CiB9
CiAKLXZvaWQgV2ViSURCQ2FsbGJhY2tzSW1wbDo6b25VcGdyYWRlTmVlZGVkKGxvbmcgbG9uZyBv
bGRWZXJzaW9uLCBXZWJJREJUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIFdlYklEQkRhdGFiYXNl
KiBkYXRhYmFzZSkKK3ZvaWQgV2ViSURCQ2FsbGJhY2tzSW1wbDo6b25VcGdyYWRlTmVlZGVkKGxv
bmcgbG9uZyBvbGRWZXJzaW9uLCBXZWJJREJUcmFuc2FjdGlvbiosIFdlYklEQkRhdGFiYXNlKiBk
YXRhYmFzZSkKK3sKKyAgICBtX2RhdGFiYXNlUHJveHkgPSBJREJEYXRhYmFzZUJhY2tlbmRQcm94
eTo6Y3JlYXRlKGFkb3B0UHRyKGRhdGFiYXNlKSk7CisgICAgbV9jYWxsYmFja3MtPm9uVXBncmFk
ZU5lZWRlZChvbGRWZXJzaW9uLCBtX2RhdGFiYXNlUHJveHksIG1fZGF0YWJhc2VQcm94eS0+bWV0
YWRhdGEoKSk7Cit9CisKK3ZvaWQgV2ViSURCQ2FsbGJhY2tzSW1wbDo6b25VcGdyYWRlTmVlZGVk
KGxvbmcgbG9uZyBvbGRWZXJzaW9uLCBXZWJJREJEYXRhYmFzZSogZGF0YWJhc2UsIGNvbnN0IFdl
YklEQk1ldGFkYXRhJiBtZXRhZGF0YSkKIHsKICAgICBtX2RhdGFiYXNlUHJveHkgPSBJREJEYXRh
YmFzZUJhY2tlbmRQcm94eTo6Y3JlYXRlKGFkb3B0UHRyKGRhdGFiYXNlKSk7Ci0gICAgbV9jYWxs
YmFja3MtPm9uVXBncmFkZU5lZWRlZChvbGRWZXJzaW9uLCBJREJUcmFuc2FjdGlvbkJhY2tlbmRQ
cm94eTo6Y3JlYXRlKGFkb3B0UHRyKHRyYW5zYWN0aW9uKSksIG1fZGF0YWJhc2VQcm94eSk7Cisg
ICAgbV9jYWxsYmFja3MtPm9uVXBncmFkZU5lZWRlZChvbGRWZXJzaW9uLCBtX2RhdGFiYXNlUHJv
eHksIG1ldGFkYXRhKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmggYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmgKaW5kZXggNGIxMDY0OTFk
ZWUyNWE1YTc4OGM4OTE5MzcyMzEzOTk0NGRiYjdhYi4uNTFjZDQ2MGZkOWFlMDU0NjFmZThjZmRj
MTNjMTRjZmM2YzllYzljZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViSURCQ2FsbGJhY2tzSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YklEQkNhbGxiYWNrc0ltcGwuaApAQCAtNTAsNiArNTAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIG9uU3VjY2Vzcyhjb25zdCBXZWJET01TdHJpbmdMaXN0Jik7CiAgICAgdmlydHVhbCB2
b2lkIG9uU3VjY2VzcyhXZWJJREJDdXJzb3IqLCBjb25zdCBXZWJJREJLZXkmLCBjb25zdCBXZWJJ
REJLZXkmIHByaW1hcnlLZXksIGNvbnN0IFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSYpOwogICAg
IHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoV2ViSURCRGF0YWJhc2UqKTsKKyAgICB2aXJ0dWFsIHZv
aWQgb25TdWNjZXNzKFdlYklEQkRhdGFiYXNlKiwgY29uc3QgV2ViSURCTWV0YWRhdGEmKTsKICAg
ICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKGNvbnN0IFdlYklEQktleSYpOwogICAgIHZpcnR1YWwg
dm9pZCBvblN1Y2Nlc3MoY29uc3QgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlJik7CiAgICAgdmly
dHVhbCB2b2lkIG9uU3VjY2Vzcyhjb25zdCBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUmLCBjb25z
dCBXZWJJREJLZXkmLCBjb25zdCBXZWJJREJLZXlQYXRoJik7CkBAIC01OSw2ICs2MCw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgb25CbG9ja2VkKCk7CiAgICAgdmlydHVhbCB2b2lkIG9u
QmxvY2tlZChsb25nIGxvbmcgb2xkVmVyc2lvbik7CiAgICAgdmlydHVhbCB2b2lkIG9uVXBncmFk
ZU5lZWRlZChsb25nIGxvbmcgb2xkVmVyc2lvbiwgV2ViSURCVHJhbnNhY3Rpb24qLCBXZWJJREJE
YXRhYmFzZSopOworICAgIHZpcnR1YWwgdm9pZCBvblVwZ3JhZGVOZWVkZWQobG9uZyBsb25nIG9s
ZFZlcnNpb24sIFdlYklEQkRhdGFiYXNlKiwgY29uc3QgV2ViSURCTWV0YWRhdGEmKTsKIAogcHJp
dmF0ZToKICAgICBSZWZQdHI8V2ViQ29yZTo6SURCQ2FsbGJhY2tzPiBtX2NhbGxiYWNrczsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCQWJvcnRPbkNvcnJ1cHRU
ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCQWJvcnRPbkNvcnJ1cHRU
ZXN0LmNwcAppbmRleCBkYTdjNmZhMTg2ZDMzZDAyYmViYmNiOGQ2NzdkYzA0MzMyMDE2ZjNkLi4x
MGYxZDVmMzdhOTRkMzI4YjdjMDViZmY0ZDMzYmIxOTYzNzVjOTMxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkFib3J0T25Db3JydXB0VGVzdC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJBYm9ydE9uQ29ycnVwdFRlc3QuY3BwCkBA
IC01Nyw3ICs1Nyw3IEBAIHB1YmxpYzoKICAgICB9CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vz
cyhQYXNzUmVmUHRyPERPTVN0cmluZ0xpc3Q+KSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgb25TdWNj
ZXNzKFBhc3NSZWZQdHI8SURCQ3Vyc29yQmFja2VuZEludGVyZmFjZT4sIFBhc3NSZWZQdHI8SURC
S2V5PiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZT4pIHsgfQotICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJEYXRhYmFz
ZUJhY2tlbmRJbnRlcmZhY2U+KQorICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0
cjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+LCBjb25zdCBJREJEYXRhYmFzZU1ldGFkYXRh
JikKICAgICB7CiAgICAgICAgIEVYUEVDVF9UUlVFKGZhbHNlKTsKICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkRhdGFiYXNlQmFja2VuZFRlc3QuY3Bw
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJEYXRhYmFzZUJhY2tlbmRUZXN0LmNw
cAppbmRleCAzNWE1ZDUwYWYzZTllMjNlMmJhNDUzNzIyYmJlYjhhOGVlZWUxODU3Li5iMmU0Nzg5
MTc0NjQxYjlmMDNmZjVmM2VmMjAyNmFjMTE3YzA4YTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3Rlc3RzL0lEQkRhdGFiYXNlQmFja2VuZFRlc3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCRGF0YWJhc2VCYWNrZW5kVGVzdC5jcHAKQEAgLTY5
LDcgKzY5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBvbkVycm9yKFBhc3NSZWZQdHI8
SURCRGF0YWJhc2VFcnJvcj4pIE9WRVJSSURFIHsgfQogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nl
c3MoUGFzc1JlZlB0cjxET01TdHJpbmdMaXN0PikgT1ZFUlJJREUgeyB9CiAgICAgdmlydHVhbCB2
b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U+LCBQYXNz
UmVmUHRyPElEQktleT4sIFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxTZXJpYWxpemVk
U2NyaXB0VmFsdWU+KSBPVkVSUklERSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBh
c3NSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlPikgT1ZFUlJJREUKKyAgICB2aXJ0
dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNl
PiwgY29uc3QgSURCRGF0YWJhc2VNZXRhZGF0YSYpIE9WRVJSSURFCiAgICAgewogICAgICAgICBt
X3dhc1N1Y2Nlc3NEQkNhbGxlZCA9IHRydWU7CiAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184587</attachid>
            <date>2013-01-24 14:52:18 -0800</date>
            <delta_ts>2013-01-29 10:32:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103920-20130124144910.patch</filename>
            <type>text/plain</type>
            <size>23026</size>
            <attacher name="Alec Flett">alecflett</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwNTQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDUyYTIzNWYwOTA1NDI2
NzllMDEwNGIzNTAxZDhiMDM0NmJiZWE4MC4uZjk0MzZlYTI4OTRiNjMyZDJmZTMwODRjYzYwMjc1
NDIyYzNkZGUyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEzLTAxLTI0ICBBbGVj
IEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IFBh
c3MgbWV0YWRhdGEgaW4gdG8gSURCT3BlbkRCUmVxdWVzdC5vblVwZ3JhZGVOZWVkZWQvb25TdWNj
ZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM5
MjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRh
dGUgSURCQ2FsbGJhY2tzOjpvblN1Y2Nlc3MgYW5kIElEQkNhbGxiYWNrczo6b25VcGdyYWRlTmVl
ZGVkIHRvCisgICAgICAgIHBhc3MgdGhyb3VnaCBhIG1ldGFkYXRhIHBhcmFtZXRlci4gV2hpbGUg
dGhlcmUsIHJlbW92ZSB0aGUgdW51c2VkCisgICAgICAgIElEQlRyYW5zYWN0aW9uQmFja2VuZElu
dGVyZmFjZSBwYXJhbWV0ZXIgdG8gb25VcGdyYWRlTmVlZGVkLgorCisgICAgICAgIEFzIHRoaXMg
aXMgYW5vdGhlciBzdGVwIGluIHRoZSBJREIgcmVmYWN0b3IsIEkndmUgc2ltcGxpZmllZCBmdXR1
cmUgY2xlYW51cAorICAgICAgICB3b3JrIGJ5IG1ha2luZyB0aGUgV2ViS2l0IEFQSSBjb2RlIHN0
aWxsIHVzZSB0aGUgb2xkIEFQSS4gVGhpcworICAgICAgICB3aWxsIG1ha2UgaXQgcG9zc2libGUg
dG8gb3V0cmlnaHQgcmVtb3ZlIGNvZGUgb24gdGhlIGNocm9taXVtIHNpZGUgcmF0aGVyCisgICAg
ICAgIHRoYW4gYW5vdGhlciB0aHJlZS1zdGVwIGNoZWNraW4uCisKKyAgICAgICAgTm8gbmV3IHRl
c3RzLCBhcyB0aGlzIGlzIG1vcmUgcmVmYWN0b3JpbmcuCisKKyAgICAgICAgKiBNb2R1bGVzL2lu
ZGV4ZWRkYi9JREJDYWxsYmFja3MuaDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkNhbGxiYWNrczo6
b25VcGdyYWRlTmVlZGVkKTogbmV3IG1ldGhvZCBzaWduYXR1cmUuCisgICAgICAgIChXZWJDb3Jl
OjpJREJDYWxsYmFja3M6Om9uU3VjY2Vzcyk6IG5ldyBtZXRob2Qgc2lnbmF0dXJlLgorICAgICAg
ICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6VmVyc2lvbkNoYW5nZU9wZXJhdGlv
bjo6cGVyZm9ybSk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpw
cm9jZXNzUGVuZGluZ0NhbGxzKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2Vu
ZEltcGw6Om9wZW5Db25uZWN0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJP
cGVuREJSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQk9wZW5EQlJlcXVlc3Q6Om9u
VXBncmFkZU5lZWRlZCk6IHVzZSBwYXNzZWQtaW4gbWV0YWRhdGEuCisgICAgICAgIChXZWJDb3Jl
OjpJREJPcGVuREJSZXF1ZXN0OjpvblN1Y2Nlc3MpOiB1c2UgcGFzc2VkLWluIG1ldGFkYXRhLgor
ICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuaDoKKyAgICAgICAg
KElEQk9wZW5EQlJlcXVlc3QpOgorCiAyMDEzLTAxLTIzICBOb2FtIFJvc2VudGhhbCAgPG5vYW1A
d2Via2l0Lm9yZz4KIAogICAgICAgICBSRUdSRVNTSU9OKHIxNDA1MTgpOiBCcm9rZSBDaHJvbWl1
bSBXaW4gYnVpbGQgKGd5cCBmaWxlIG5vdCB1cGRhdGVkKSAoUmVxdWVzdGVkIGJ5IGFydiBvbiAj
d2Via2l0KS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMDdiZTJhY2E5MWUzNzBhNDZm
ODcxZDg2MDBiYTA2ODY4ZTIxNTY5Ni4uNjllZDdmZTk3NDUyMDkwYzk1ZDA3NmFmMjRmMTQwZjcz
NGRiMGYwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAx
My0wMS0yNCAgQWxlYyBGbGV0dCAgPGFsZWNmbGV0dEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
SW5kZXhlZERCOiBQYXNzIG1ldGFkYXRhIGluIHRvIElEQk9wZW5EQlJlcXVlc3Qub25VcGdyYWRl
TmVlZGVkL29uU3VjY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTAzOTIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgU3VwcG9ydCB0aGUgbmV3IElEQkNhbGxiYWNrczo6b25TdWNjZXNzIGFuZCBJREJD
YWxsYmFja3M6Om9uVXBncmFkZU5lZWRlZAorICAgICAgICB3aGlsZSBtYWludGFpbmluZyBjaHJv
bWl1bSBjb21wYXRpYmlsaXR5IGJ5IHNoaW1taW5nIGluIHRoZSBvbGQgQVBJCisgICAgICAgIGlu
IHRoZSBXZWJLaXQgc2lkZS4gRnV0dXJlIGNvZGUgd2lsbCBjbGVhbiB0aGlzIHVwIHNvIHRoYXQg
aXQgaXMganVzdCBhCisgICAgICAgIHBhc3MtdGhyb3VnaCBhcyBpdCB3YXMgYmVmb3JlLgorCisg
ICAgICAgICogcHVibGljL1dlYklEQkNhbGxiYWNrcy5oOgorICAgICAgICAoV2ViS2l0KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViSURCQ2FsbGJhY2tzOjpvblN1Y2Nlc3MpOiBuZXcgbWV0aG9kIHNp
Z25hdHVyZS4KKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ2FsbGJhY2tzOjpvblVwZ3JhZGVOZWVk
ZWQpOiBuZXcgbWV0aG9kIHNpZ25hdHVyZS4KKyAgICAgICAgKiBzcmMvSURCQ2FsbGJhY2tzUHJv
eHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpJREJDYWxsYmFja3NQcm94eTo6b25TdWNjZXNzKTog
Y2FsbCBvbiBuZXcgbWV0aG9kIHNpZ25hdHVyZSBwcm94aWVzIHRocm91Z2ggb2xkIEFQSS4KKyAg
ICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OklEQkNhbGxiYWNrc1Byb3h5OjpvblVw
Z3JhZGVOZWVkZWQpOiBjYWxsIG9uIG5ldyBtZXRob2Qgc2lnbmF0dXJlIHByb3hpZXMgdGhyb3Vn
aCBvbGQgQVBJLgorICAgICAgICAqIHNyYy9JREJDYWxsYmFja3NQcm94eS5oOgorICAgICAgICAo
SURCQ2FsbGJhY2tzUHJveHkpOgorICAgICAgICAqIHNyYy9XZWJJREJDYWxsYmFja3NJbXBsLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ2FsbGJhY2tzSW1wbDo6b25TdWNjZXNzKTogY2Fs
bCBvbiBvbGQgV2ViS2l0IHByb3h5IHNpZ25hdHVyZSBjYWxscyBuZXcgQVBJLgorICAgICAgICAo
V2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ2FsbGJhY2tzSW1wbDo6b25VcGdyYWRl
TmVlZGVkKTogY2FsbCBvbiBvbGQgV2ViS2l0IHByb3h5IHNpZ25hdHVyZSBjYWxscyBuZXcgQVBJ
LgorICAgICAgICAqIHNyYy9XZWJJREJDYWxsYmFja3NJbXBsLmg6CisgICAgICAgIChXZWJJREJD
YWxsYmFja3NJbXBsKToKKyAgICAgICAgKiB0ZXN0cy9JREJBYm9ydE9uQ29ycnVwdFRlc3QuY3Bw
OiBuZXcgbWV0aG9kIHNpZ25hdHVyZS4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tJREJDYWxsYmFj
a3M6Om9uU3VjY2Vzcyk6CisgICAgICAgICogdGVzdHMvSURCRGF0YWJhc2VCYWNrZW5kVGVzdC5j
cHA6IG5ldyBtZXRob2Qgc2lnbmF0dXJlLgorCiAyMDEzLTAxLTIzICBEbWl0cnkgR296bWFuICA8
ZGdvem1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQWRkZWQgY2hhbmdlQXR0YWNoZWRXaW5k
b3dIZWlnaHQgbWV0aG9kIHRvIGluc3BlY3RvciBmcm9udGVuZCBBUEksIHdoaWNoCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDYWxsYmFja3MuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkNhbGxiYWNrcy5oCmluZGV4IGY4ZDNj
ZTQ4Y2Q4Mzc0ZmYxZWQ2Yjk4Mjg4ZTY0OGZkYWI2ZTVhYWMuLmM4YTUyNGM3Y2I4YWMwN2Q5ZTg2
ZTBiZDEwZjAxOTc3ZWY5ZWNlYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkNhbGxiYWNrcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkNhbGxiYWNrcy5oCkBAIC03Miw4ICs3Miw4IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgb25CbG9ja2VkKCkgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAgIHZpcnR1
YWwgdm9pZCBvbkJsb2NrZWQoaW50NjRfdCBleGlzdGluZ1ZlcnNpb24pIHsgQVNTRVJUX05PVF9S
RUFDSEVEKCk7IH0KICAgICAvLyBGcm9tIElEQkZhY3Rvcnkub3BlbigpCi0gICAgdmlydHVhbCB2
b2lkIG9uVXBncmFkZU5lZWRlZChpbnQ2NF90IG9sZFZlcnNpb24sIFBhc3NSZWZQdHI8SURCVHJh
bnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJ
bnRlcmZhY2U+KSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9Ci0gICAgdmlydHVhbCB2b2lkIG9u
U3VjY2VzcyhQYXNzUmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZT4pIHsgQVNTRVJU
X05PVF9SRUFDSEVEKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgb25VcGdyYWRlTmVlZGVkKGludDY0
X3Qgb2xkVmVyc2lvbiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+LCBj
b25zdCBJREJEYXRhYmFzZU1ldGFkYXRhJikgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorICAg
IHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbnRl
cmZhY2U+LCBjb25zdCBJREJEYXRhYmFzZU1ldGFkYXRhJikgeyBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcApp
bmRleCAzZjgzNDhjNWQ3NjA3NTFiMTVjNzQwZjgzZjliYjI5MWRjYTRkNjY0Li5lZDNhMmYwNTgx
YWY5NDY1MTYxNjJlOWY3ZTk1ZDYwMDFlODJlNzM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcApA
QCAtMTA2Niw3ICsxMDY2LDcgQEAgdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpWZXJzaW9u
Q2hhbmdlT3BlcmF0aW9uOjpwZXJmb3JtKElEQlRyYW5zYWN0aW9uQmFja2UKICAgICB9CiAgICAg
QVNTRVJUKCFtX2RhdGFiYXNlLT5tX3BlbmRpbmdTZWNvbmRIYWxmT3Blbik7CiAgICAgbV9kYXRh
YmFzZS0+bV9wZW5kaW5nU2Vjb25kSGFsZk9wZW4gPSBQZW5kaW5nT3BlbkNhbGw6OmNyZWF0ZSht
X2NhbGxiYWNrcywgbV9kYXRhYmFzZUNhbGxiYWNrcywgbV90cmFuc2FjdGlvbklkLCBtX3ZlcnNp
b24pOwotICAgIG1fY2FsbGJhY2tzLT5vblVwZ3JhZGVOZWVkZWQob2xkVmVyc2lvbiwgdHJhbnNh
Y3Rpb24sIG1fZGF0YWJhc2UpOworICAgIG1fY2FsbGJhY2tzLT5vblVwZ3JhZGVOZWVkZWQob2xk
VmVyc2lvbiwgbV9kYXRhYmFzZSwgbV9kYXRhYmFzZS0+bWV0YWRhdGEoKSk7CiB9CiAKIHZvaWQg
SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6dHJhbnNhY3Rpb25TdGFydGVkKFBhc3NSZWZQdHI8SURC
VHJhbnNhY3Rpb25CYWNrZW5kSW1wbD4gcHJwVHJhbnNhY3Rpb24pCkBAIC0xMTIzLDcgKzExMjMs
NyBAQCB2b2lkIElEQkRhdGFiYXNlQmFja2VuZEltcGw6OnByb2Nlc3NQZW5kaW5nQ2FsbHMoKQog
ICAgIGlmIChtX3BlbmRpbmdTZWNvbmRIYWxmT3BlbikgewogICAgICAgICBBU1NFUlQobV9wZW5k
aW5nU2Vjb25kSGFsZk9wZW4tPnZlcnNpb24oKSA9PSBtX21ldGFkYXRhLmludFZlcnNpb24pOwog
ICAgICAgICBBU1NFUlQobV9tZXRhZGF0YS5pZCAhPSBJbnZhbGlkSWQpOwotICAgICAgICBtX3Bl
bmRpbmdTZWNvbmRIYWxmT3Blbi0+Y2FsbGJhY2tzKCktPm9uU3VjY2Vzcyh0aGlzKTsKKyAgICAg
ICAgbV9wZW5kaW5nU2Vjb25kSGFsZk9wZW4tPmNhbGxiYWNrcygpLT5vblN1Y2Nlc3ModGhpcywg
dGhpcy0+bWV0YWRhdGEoKSk7CiAgICAgICAgIG1fcGVuZGluZ1NlY29uZEhhbGZPcGVuLnJlbGVh
c2UoKTsKICAgICAgICAgLy8gRmFsbCB0aHJvdWdoIHdoZW4gY29tcGxldGUsIGFzIHBlbmRpbmcg
ZGVsZXRlcyBtYXkgYmUgKHBhcnRpYWxseSkgdW5ibG9ja2VkLgogICAgIH0KQEAgLTEyMDQsMTQg
KzEyMDQsMTQgQEAgdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpvcGVuQ29ubmVjdGlvbihQ
YXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gcHJwQ2FsbGJhY2sKICAgICAgICAgLy8gRm9yIHVuaXQg
dGVzdHMgb25seSAtIHNraXAgdXBncmFkZSBzdGVwcy4gQ2FsbGluZyBmcm9tIHNjcmlwdCB3aXRo
IERlZmF1bHRJbnRWZXJzaW9uIHRocm93cyBleGNlcHRpb24uCiAgICAgICAgIEFTU0VSVChpc05l
d0RhdGFiYXNlKTsKICAgICAgICAgbV9kYXRhYmFzZUNhbGxiYWNrc1NldC5hZGQoZGF0YWJhc2VD
YWxsYmFja3MpOwotICAgICAgICBjYWxsYmFja3MtPm9uU3VjY2Vzcyh0aGlzKTsKKyAgICAgICAg
Y2FsbGJhY2tzLT5vblN1Y2Nlc3ModGhpcywgdGhpcy0+bWV0YWRhdGEoKSk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKICAgICBpZiAodmVyc2lvbiA9PSBJREJEYXRhYmFzZU1ldGFkYXRhOjpO
b0ludFZlcnNpb24pIHsKICAgICAgICAgaWYgKCFpc05ld0RhdGFiYXNlKSB7CiAgICAgICAgICAg
ICBtX2RhdGFiYXNlQ2FsbGJhY2tzU2V0LmFkZChSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+
KGRhdGFiYXNlQ2FsbGJhY2tzKSk7Ci0gICAgICAgICAgICBjYWxsYmFja3MtPm9uU3VjY2Vzcyh0
aGlzKTsKKyAgICAgICAgICAgIGNhbGxiYWNrcy0+b25TdWNjZXNzKHRoaXMsIHRoaXMtPm1ldGFk
YXRhKCkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIC8vIFNwZWMg
c2F5czogSWYgbm8gdmVyc2lvbiBpcyBzcGVjaWZpZWQgYW5kIG5vIGRhdGFiYXNlIGV4aXN0cywg
c2V0IGRhdGFiYXNlIHZlcnNpb24gdG8gMS4KQEAgLTEyMjgsNyArMTIyOCw3IEBAIHZvaWQgSURC
RGF0YWJhc2VCYWNrZW5kSW1wbDo6b3BlbkNvbm5lY3Rpb24oUGFzc1JlZlB0cjxJREJDYWxsYmFj
a3M+IHBycENhbGxiYWNrCiAgICAgfQogICAgIEFTU0VSVCh2ZXJzaW9uID09IG1fbWV0YWRhdGEu
aW50VmVyc2lvbik7CiAgICAgbV9kYXRhYmFzZUNhbGxiYWNrc1NldC5hZGQoZGF0YWJhc2VDYWxs
YmFja3MpOwotICAgIGNhbGxiYWNrcy0+b25TdWNjZXNzKHRoaXMpOworICAgIGNhbGxiYWNrcy0+
b25TdWNjZXNzKHRoaXMsIHRoaXMtPm1ldGFkYXRhKCkpOwogfQogCiB2b2lkIElEQkRhdGFiYXNl
QmFja2VuZEltcGw6OnJ1bkludFZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbihQYXNzUmVmUHRyPElE
QkNhbGxiYWNrcz4gcHJwQ2FsbGJhY2tzLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tz
PiBwcnBEYXRhYmFzZUNhbGxiYWNrcywgaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IHJl
cXVlc3RlZFZlcnNpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQk9wZW5EQlJlcXVlc3QuY3BwCmluZGV4IDUyODcyNmM5YTQzN2MyYTAwYmVlYmU0MWVl
ZTJjN2EwOGQxNGJlMGEuLmI2YmUwNDIyNTEwYzU1MzQyMDc0YzFiNjUwMWRjZmE1OTQwM2EzNjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJl
cXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5E
QlJlcXVlc3QuY3BwCkBAIC02OSw3ICs2OSw3IEBAIHZvaWQgSURCT3BlbkRCUmVxdWVzdDo6b25C
bG9ja2VkKGludDY0X3Qgb2xkVmVyc2lvbikKICAgICBlbnF1ZXVlRXZlbnQoSURCVXBncmFkZU5l
ZWRlZEV2ZW50OjpjcmVhdGUob2xkVmVyc2lvbiwgbV92ZXJzaW9uLCBldmVudE5hbWVzKCkuYmxv
Y2tlZEV2ZW50KSk7CiB9CiAKLXZvaWQgSURCT3BlbkRCUmVxdWVzdDo6b25VcGdyYWRlTmVlZGVk
KGludDY0X3Qgb2xkVmVyc2lvbiwgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRl
cmZhY2U+LCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZT4gcHJwRGF0YWJh
c2VCYWNrZW5kKQordm9pZCBJREJPcGVuREJSZXF1ZXN0OjpvblVwZ3JhZGVOZWVkZWQoaW50NjRf
dCBvbGRWZXJzaW9uLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZT4gcHJw
RGF0YWJhc2VCYWNrZW5kLCBjb25zdCBJREJEYXRhYmFzZU1ldGFkYXRhJiBtZXRhZGF0YSkKIHsK
ICAgICBJREJfVFJBQ0UoIklEQk9wZW5EQlJlcXVlc3Q6Om9uVXBncmFkZU5lZWRlZCgpIik7CiAg
ICAgaWYgKG1fY29udGV4dFN0b3BwZWQgfHwgIXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkgewpA
QCAtODQsOSArODQsNiBAQCB2b2lkIElEQk9wZW5EQlJlcXVlc3Q6Om9uVXBncmFkZU5lZWRlZChp
bnQ2NF90IG9sZFZlcnNpb24sIFBhc3NSZWZQdHI8SURCVHJhbnNhYwogICAgIEFTU0VSVChtX2Rh
dGFiYXNlQ2FsbGJhY2tzKTsKIAogICAgIFJlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZh
Y2U+IGRhdGFiYXNlQmFja2VuZCA9IHBycERhdGFiYXNlQmFja2VuZDsKLSAgICAvLyBGSVhNRTog
VGhpcyBwb3RlbnRpYWxseSBleHBlbnNpdmUgKHN5bmNocm9ub3VzKSBjYWxsIGludG8gdGhlIGJh
Y2tlbmQgY291bGQgYmUgcmVtb3ZlZCBpZiB0aGUgbWV0YWRhdGEKLSAgICAvLyB3ZXJlIHBhc3Nl
ZCBpbiBkdXJpbmcgdGhlIChhc3luY2hyb25vdXMpIG9uVXBncmFkZU5lZWRlZCBjYWxsIGZyb20g
dGhlIGJhY2tlbmQuIGh0dHA6Ly93a2J1Zy5jb20vMTAzOTIwCi0gICAgSURCRGF0YWJhc2VNZXRh
ZGF0YSBtZXRhZGF0YSA9IGRhdGFiYXNlQmFja2VuZC0+bWV0YWRhdGEoKTsKIAogICAgIFJlZlB0
cjxJREJEYXRhYmFzZT4gaWRiRGF0YWJhc2UgPSBJREJEYXRhYmFzZTo6Y3JlYXRlKHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSwgZGF0YWJhc2VCYWNrZW5kLCBtX2RhdGFiYXNlQ2FsbGJhY2tzKTsK
ICAgICBpZGJEYXRhYmFzZS0+c2V0TWV0YWRhdGEobWV0YWRhdGEpOwpAQCAtOTcsOSArOTQsMTAg
QEAgdm9pZCBJREJPcGVuREJSZXF1ZXN0OjpvblVwZ3JhZGVOZWVkZWQoaW50NjRfdCBvbGRWZXJz
aW9uLCBQYXNzUmVmUHRyPElEQlRyYW5zYWMKICAgICAgICAgLy8gVGhpcyBkYXRhYmFzZSBoYXNu
J3QgaGFkIGFuIGludGVnZXIgdmVyc2lvbiBiZWZvcmUuCiAgICAgICAgIG9sZFZlcnNpb24gPSBJ
REJEYXRhYmFzZU1ldGFkYXRhOjpEZWZhdWx0SW50VmVyc2lvbjsKICAgICB9Ci0gICAgbWV0YWRh
dGEuaW50VmVyc2lvbiA9IG9sZFZlcnNpb247CisgICAgSURCRGF0YWJhc2VNZXRhZGF0YSBvbGRN
ZXRhZGF0YShtZXRhZGF0YSk7CisgICAgb2xkTWV0YWRhdGEuaW50VmVyc2lvbiA9IG9sZFZlcnNp
b247CiAKLSAgICBtX3RyYW5zYWN0aW9uID0gSURCVHJhbnNhY3Rpb246OmNyZWF0ZShzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCksIG1fdHJhbnNhY3Rpb25JZCwgaWRiRGF0YWJhc2UuZ2V0KCksIHRo
aXMsIG1ldGFkYXRhKTsKKyAgICBtX3RyYW5zYWN0aW9uID0gSURCVHJhbnNhY3Rpb246OmNyZWF0
ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIG1fdHJhbnNhY3Rpb25JZCwgaWRiRGF0YWJhc2Uu
Z2V0KCksIHRoaXMsIG9sZE1ldGFkYXRhKTsKICAgICBtX3Jlc3VsdCA9IElEQkFueTo6Y3JlYXRl
KGlkYkRhdGFiYXNlLnJlbGVhc2UoKSk7CiAKICAgICBpZiAobV92ZXJzaW9uID09IElEQkRhdGFi
YXNlTWV0YWRhdGE6Ok5vSW50VmVyc2lvbikKQEAgLTEwNywxNiArMTA1LDEzIEBAIHZvaWQgSURC
T3BlbkRCUmVxdWVzdDo6b25VcGdyYWRlTmVlZGVkKGludDY0X3Qgb2xkVmVyc2lvbiwgUGFzc1Jl
ZlB0cjxJREJUcmFuc2FjCiAgICAgZW5xdWV1ZUV2ZW50KElEQlVwZ3JhZGVOZWVkZWRFdmVudDo6
Y3JlYXRlKG9sZFZlcnNpb24sIG1fdmVyc2lvbiwgZXZlbnROYW1lcygpLnVwZ3JhZGVuZWVkZWRF
dmVudCkpOwogfQogCi12b2lkIElEQk9wZW5EQlJlcXVlc3Q6Om9uU3VjY2VzcyhQYXNzUmVmUHRy
PElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZT4gcHJwQmFja2VuZCkKK3ZvaWQgSURCT3BlbkRC
UmVxdWVzdDo6b25TdWNjZXNzKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNl
PiBwcnBCYWNrZW5kLCBjb25zdCBJREJEYXRhYmFzZU1ldGFkYXRhJiBtZXRhZGF0YSkKIHsKICAg
ICBJREJfVFJBQ0UoIklEQk9wZW5EQlJlcXVlc3Q6Om9uU3VjY2VzcygpIik7CiAgICAgaWYgKCFz
aG91bGRFbnF1ZXVlRXZlbnQoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgUmVmUHRyPElEQkRh
dGFiYXNlQmFja2VuZEludGVyZmFjZT4gYmFja2VuZCA9IHBycEJhY2tlbmQ7Ci0gICAgLy8gRklY
TUU6IFRoaXMgcG90ZW50aWFsbHkgZXhwZW5zaXZlIChzeW5jaHJvbm91cykgY2FsbCBpbnRvIHRo
ZSBiYWNrZW5kIGNvdWxkIGJlIHJlbW92ZWQgaWYgdGhlIG1ldGFkYXRhCi0gICAgLy8gd2VyZSBw
YXNzZWQgaW4gZHVyaW5nIHRoZSAoYXN5bmNocm9ub3VzKSBvblN1Y2Nlc3MgY2FsbCBmcm9tIHRo
ZSBiYWNrZW5kLiBodHRwOi8vd2tidWcuY29tLzEwMzkyMAotICAgIElEQkRhdGFiYXNlTWV0YWRh
dGEgbWV0YWRhdGEgPSBiYWNrZW5kLT5tZXRhZGF0YSgpOwogICAgIFJlZlB0cjxJREJEYXRhYmFz
ZT4gaWRiRGF0YWJhc2U7CiAgICAgaWYgKG1fcmVzdWx0KSB7CiAgICAgICAgIGlkYkRhdGFiYXNl
ID0gbV9yZXN1bHQtPmlkYkRhdGFiYXNlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmgKaW5kZXggNDA0ZjkxNDIxNjAxM2ZjNTg2
ZTJmZDVhZDk4MjhmY2QxMWEyZmI3Yi4uMzE2MmI2ODBjN2RiYzE2YmY0MGZjZTM1ZGZmZjhlYTk0
YTczNzllNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
T3BlbkRCUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
Qk9wZW5EQlJlcXVlc3QuaApAQCAtNDIsOCArNDIsOCBAQCBwdWJsaWM6CiAgICAgdXNpbmcgSURC
UmVxdWVzdDo6b25TdWNjZXNzOwogCiAgICAgdmlydHVhbCB2b2lkIG9uQmxvY2tlZChpbnQ2NF90
IGV4aXN0aW5nVmVyc2lvbikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIG9uVXBncmFkZU5l
ZWRlZChpbnQ2NF90IG9sZFZlcnNpb24sIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5k
SW50ZXJmYWNlPiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+KSBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VC
YWNrZW5kSW50ZXJmYWNlPikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIG9uVXBncmFkZU5l
ZWRlZChpbnQ2NF90IG9sZFZlcnNpb24sIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kSW50
ZXJmYWNlPiwgY29uc3QgSURCRGF0YWJhc2VNZXRhZGF0YSYpIE9WRVJSSURFOworICAgIHZpcnR1
YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+
LCBjb25zdCBJREJEYXRhYmFzZU1ldGFkYXRhJikgT1ZFUlJJREU7CiAKICAgICAvLyBFdmVudFRh
cmdldAogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBpbnRlcmZhY2VOYW1lKCkgY29u
c3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJDYWxs
YmFja3MuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkNhbGxiYWNrcy5o
CmluZGV4IDU0OTFiOTZhODgyY2RjZGVlNzQ4YjQxM2RkZDc2ZmVlMDliNGM1NjUuLmM0MWM3ZTQ2
MDhkMDkyOTVmYjIxZWExNjY1ZTU0ZmNkMWFmYmZkYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYklEQkNhbGxiYWNrcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYklEQkNhbGxiYWNrcy5oCkBAIC00MCw2ICs0MCw3IEBAIGNsYXNz
IFdlYklEQktleVBhdGg7CiBjbGFzcyBXZWJJREJJbmRleDsKIGNsYXNzIFdlYklEQlRyYW5zYWN0
aW9uOwogY2xhc3MgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlOworc3RydWN0IFdlYklEQk1ldGFk
YXRhOwogCiBjbGFzcyBXZWJJREJDYWxsYmFja3MgewogcHVibGljOgpAQCAtNTEsNiArNTIsNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzcyhjb25zdCBXZWJET01TdHJpbmdM
aXN0JikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQg
b25TdWNjZXNzKFdlYklEQkN1cnNvciosIGNvbnN0IFdlYklEQktleSYga2V5LCBjb25zdCBXZWJJ
REJLZXkmIHByaW1hcnlLZXksIGNvbnN0IFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSYpIHsgV0VC
S0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhX
ZWJJREJEYXRhYmFzZSopIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisgICAgdmly
dHVhbCB2b2lkIG9uU3VjY2VzcyhXZWJJREJEYXRhYmFzZSosIGNvbnN0IFdlYklEQk1ldGFkYXRh
JikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgb25T
dWNjZXNzKGNvbnN0IFdlYklEQktleSYpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9
CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzcyhjb25zdCBXZWJTZXJpYWxpemVkU2NyaXB0VmFs
dWUmKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBv
blN1Y2Nlc3MoY29uc3QgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlJiwgY29uc3QgV2ViSURCS2V5
JiwgY29uc3QgV2ViSURCS2V5UGF0aCYpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9
CkBAIC02MSw2ICs2Myw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgb25CbG9ja2VkKGxv
bmcgbG9uZyBvbGRWZXJzaW9uKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAg
IHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3NXaXRoUHJlZmV0Y2goY29uc3QgV2ViVmVjdG9yPFdlYklE
QktleT4mIGtleXMsIGNvbnN0IFdlYlZlY3RvcjxXZWJJREJLZXk+JiBwcmltYXJ5S2V5cywgY29u
c3QgV2ViVmVjdG9yPFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mIHZhbHVlcykgeyBXRUJLSVRf
QVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgb25VcGdyYWRlTmVlZGVk
KGxvbmcgbG9uZyBvbGRWZXJzaW9uLCBXZWJJREJUcmFuc2FjdGlvbiosIFdlYklEQkRhdGFiYXNl
KikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgb25V
cGdyYWRlTmVlZGVkKGxvbmcgbG9uZyBvbGRWZXJzaW9uLCBXZWJJREJEYXRhYmFzZSosIGNvbnN0
IFdlYklEQk1ldGFkYXRhJikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvSURCQ2FsbGJhY2tzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
SURCQ2FsbGJhY2tzUHJveHkuY3BwCmluZGV4IDA5MmJmYjdhMTQ5YTQyOGFhMGJhN2VlYmY3NjI5
MWZiMDQxNDA2MTAuLjFkMTkzMDE0MmMxMTExZWJlYjk0YTFkZmRlZTZmYzg3MGQ2OGQxZmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNhbGxiYWNrc1Byb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5jcHAK
QEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJJREJEYXRhYmFzZUJhY2tlbmRQcm94eS5oIgog
I2luY2x1ZGUgIklEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHkuaCIKICNpbmNsdWRlICJJREJEYXRh
YmFzZUVycm9yLmgiCisjaW5jbHVkZSAiSURCTWV0YWRhdGEuaCIKICNpbmNsdWRlICJJREJUcmFu
c2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UuaCIKICNpbmNsdWRlICJXZWJJREJDYWxsYmFja3MuaCIK
ICNpbmNsdWRlICJXZWJJREJDdXJzb3JJbXBsLmgiCkBAIC05MSw2ICs5MiwxNCBAQCB2b2lkIElE
QkNhbGxiYWNrc1Byb3h5OjpvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJ
bnRlcmZhY2U+IGJhY2tlbgogICAgIG1fY2FsbGJhY2tzLT5vblN1Y2Nlc3MoaW1wbCk7CiB9CiAK
K3ZvaWQgSURCQ2FsbGJhY2tzUHJveHk6Om9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkRhdGFiYXNl
QmFja2VuZEludGVyZmFjZT4gYmFja2VuZCwgY29uc3QgSURCRGF0YWJhc2VNZXRhZGF0YSYpCit7
CisgICAgQVNTRVJUKG1fZGF0YWJhc2VDYWxsYmFja3MuZ2V0KCkpOworICAgIG1fZGlkQ29tcGxl
dGUgPSB0cnVlOworICAgIFdlYklEQkRhdGFiYXNlSW1wbCogaW1wbCA9IG1fZGlkQ3JlYXRlUHJv
eHkgPyAwIDogbmV3IFdlYklEQkRhdGFiYXNlSW1wbChiYWNrZW5kLCBtX2RhdGFiYXNlQ2FsbGJh
Y2tzLnJlbGVhc2UoKSk7CisgICAgbV9jYWxsYmFja3MtPm9uU3VjY2VzcyhpbXBsKTsKK30KKwog
dm9pZCBJREJDYWxsYmFja3NQcm94eTo6b25TdWNjZXNzKFBhc3NSZWZQdHI8SURCS2V5PiBpZGJL
ZXkpCiB7CiAgICAgbV9kaWRDb21wbGV0ZSA9IHRydWU7CkBAIC0xNjQsOCArMTczLDE2IEBAIHZv
aWQgSURCQ2FsbGJhY2tzUHJveHk6Om9uQmxvY2tlZChpbnQ2NF90IGV4aXN0aW5nVmVyc2lvbikK
IHZvaWQgSURCQ2FsbGJhY2tzUHJveHk6Om9uVXBncmFkZU5lZWRlZChpbnQ2NF90IG9sZFZlcnNp
b24sIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiB0cmFuc2FjdGlv
biwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+IGRhdGFiYXNlKQogewog
ICAgIEFTU0VSVChtX2RhdGFiYXNlQ2FsbGJhY2tzKTsKKyAgICBBU1NFUlQoIXRyYW5zYWN0aW9u
KTsKKyAgICBtX2RpZENyZWF0ZVByb3h5ID0gdHJ1ZTsKKyAgICBtX2NhbGxiYWNrcy0+b25VcGdy
YWRlTmVlZGVkKG9sZFZlcnNpb24sIDAsIG5ldyBXZWJJREJEYXRhYmFzZUltcGwoZGF0YWJhc2Us
IG1fZGF0YWJhc2VDYWxsYmFja3MpKTsKK30KKwordm9pZCBJREJDYWxsYmFja3NQcm94eTo6b25V
cGdyYWRlTmVlZGVkKGludDY0X3Qgb2xkVmVyc2lvbiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJh
Y2tlbmRJbnRlcmZhY2U+IGRhdGFiYXNlLCBjb25zdCBJREJEYXRhYmFzZU1ldGFkYXRhJikKK3sK
KyAgICBBU1NFUlQobV9kYXRhYmFzZUNhbGxiYWNrcyk7CiAgICAgbV9kaWRDcmVhdGVQcm94eSA9
IHRydWU7Ci0gICAgbV9jYWxsYmFja3MtPm9uVXBncmFkZU5lZWRlZChvbGRWZXJzaW9uLCBuZXcg
V2ViSURCVHJhbnNhY3Rpb25JbXBsKHRyYW5zYWN0aW9uKSwgbmV3IFdlYklEQkRhdGFiYXNlSW1w
bChkYXRhYmFzZSwgbV9kYXRhYmFzZUNhbGxiYWNrcykpOworICAgIG1fY2FsbGJhY2tzLT5vblVw
Z3JhZGVOZWVkZWQob2xkVmVyc2lvbiwgMCwgbmV3IFdlYklEQkRhdGFiYXNlSW1wbChkYXRhYmFz
ZSwgbV9kYXRhYmFzZUNhbGxiYWNrcykpOwogfQogCiB2b2lkIElEQkNhbGxiYWNrc1Byb3h5Ojpz
ZXREYXRhYmFzZUNhbGxiYWNrcyhQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHk+
IGRhdGFiYXNlQ2FsbGJhY2tzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvSURCQ2FsbGJhY2tzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNh
bGxiYWNrc1Byb3h5LmgKaW5kZXggZTY5ZDU5NzEwYTc0ODYxZmRhMTVjNGU4YTkyNDhiZTQzMGVi
NmNjZi4uNGNmYTE3ZTlmNGUwZTk3MGFiZTJiODhiOWUwNjI2M2ZlNDkxY2RiMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5oCkBAIC01MCw2ICs1
MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8V2Vi
Q29yZTo6RE9NU3RyaW5nTGlzdD4pOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1Jl
ZlB0cjxXZWJDb3JlOjpJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlPiwgUGFzc1JlZlB0cjxXZWJD
b3JlOjpJREJLZXk+LCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQktleT4gcHJpbWFyeUtleSwgUGFz
c1JlZlB0cjxXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU+KTsKICAgICB2aXJ0dWFsIHZv
aWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJm
YWNlPik7CisgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPFdlYkNvcmU6OklE
QkRhdGFiYXNlQmFja2VuZEludGVyZmFjZT4sIGNvbnN0IFdlYkNvcmU6OklEQkRhdGFiYXNlTWV0
YWRhdGEmKTsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8V2ViQ29yZTo6
SURCS2V5Pik7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPFdlYkNvcmU6
OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4pOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFz
c1JlZlB0cjxXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU+LCBQYXNzUmVmUHRyPFdlYkNv
cmU6OklEQktleT4sIGNvbnN0IFdlYkNvcmU6OklEQktleVBhdGgmKTsKQEAgLTYwLDYgKzYxLDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBvbkJsb2NrZWQoKTsKICAgICB2aXJ0dWFsIHZv
aWQgb25CbG9ja2VkKGludDY0X3QgZXhpc3RpbmdWZXJzaW9uKTsKICAgICB2aXJ0dWFsIHZvaWQg
b25VcGdyYWRlTmVlZGVkKGludDY0X3Qgb2xkVmVyc2lvbiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJ
REJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+LCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkRh
dGFiYXNlQmFja2VuZEludGVyZmFjZT4pOworICAgIHZpcnR1YWwgdm9pZCBvblVwZ3JhZGVOZWVk
ZWQoaW50NjRfdCBvbGRWZXJzaW9uLCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkRhdGFiYXNlQmFj
a2VuZEludGVyZmFjZT4sIGNvbnN0IFdlYkNvcmU6OklEQkRhdGFiYXNlTWV0YWRhdGEmKTsKIAog
ICAgIHZvaWQgc2V0RGF0YWJhc2VDYWxsYmFja3MoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxi
YWNrc1Byb3h5Pik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YklEQkNhbGxiYWNrc0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURC
Q2FsbGJhY2tzSW1wbC5jcHAKaW5kZXggNTdjMDMxOWQ0OTJhZDQ1YjEzMjRlYjY3ODBiNmFlZDJm
Mjc0NjIwMC4uOTkzMTMwODk1OGRlNTY3YzllN2Q3MjVjN2IzZjQxOWNhOWEwNzI2YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5jcHAK
QEAgLTc0LDEwICs3NCwyMiBAQCB2b2lkIFdlYklEQkNhbGxiYWNrc0ltcGw6Om9uU3VjY2VzcyhX
ZWJJREJDdXJzb3IqIGN1cnNvciwgY29uc3QgV2ViSURCS2V5JiBrZXksCiB2b2lkIFdlYklEQkNh
bGxiYWNrc0ltcGw6Om9uU3VjY2VzcyhXZWJJREJEYXRhYmFzZSogd2ViS2l0SW5zdGFuY2UpCiB7
CiAgICAgaWYgKG1fZGF0YWJhc2VQcm94eSkgewotICAgICAgICBtX2NhbGxiYWNrcy0+b25TdWNj
ZXNzKG1fZGF0YWJhc2VQcm94eS5yZWxlYXNlKCkpOworICAgICAgICBJREJEYXRhYmFzZU1ldGFk
YXRhIG1ldGFkYXRhID0gbV9kYXRhYmFzZVByb3h5LT5tZXRhZGF0YSgpOworICAgICAgICBtX2Nh
bGxiYWNrcy0+b25TdWNjZXNzKG1fZGF0YWJhc2VQcm94eS5yZWxlYXNlKCksIG1ldGFkYXRhKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBtX2NhbGxiYWNrcy0+b25TdWNjZXNzKElEQkRh
dGFiYXNlQmFja2VuZFByb3h5OjpjcmVhdGUoYWRvcHRQdHIod2ViS2l0SW5zdGFuY2UpKSk7Cisg
ICAgUmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZT4gbG9jYWxEYXRhYmFzZVByb3h5
ID0gSURCRGF0YWJhc2VCYWNrZW5kUHJveHk6OmNyZWF0ZShhZG9wdFB0cih3ZWJLaXRJbnN0YW5j
ZSkpOworICAgIG1fY2FsbGJhY2tzLT5vblN1Y2Nlc3MobG9jYWxEYXRhYmFzZVByb3h5LnJlbGVh
c2UoKSwgbG9jYWxEYXRhYmFzZVByb3h5LT5tZXRhZGF0YSgpKTsKK30KKwordm9pZCBXZWJJREJD
YWxsYmFja3NJbXBsOjpvblN1Y2Nlc3MoV2ViSURCRGF0YWJhc2UqIHdlYktpdEluc3RhbmNlLCBj
b25zdCBXZWJJREJNZXRhZGF0YSYgbWV0YWRhdGEpCit7CisgICAgaWYgKG1fZGF0YWJhc2VQcm94
eSkgeworICAgICAgICBtX2NhbGxiYWNrcy0+b25TdWNjZXNzKG1fZGF0YWJhc2VQcm94eS5yZWxl
YXNlKCksIG1ldGFkYXRhKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBSZWZQdHI8SURC
RGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlPiBsb2NhbERhdGFiYXNlUHJveHkgPSBJREJEYXRhYmFz
ZUJhY2tlbmRQcm94eTo6Y3JlYXRlKGFkb3B0UHRyKHdlYktpdEluc3RhbmNlKSk7CisgICAgbV9j
YWxsYmFja3MtPm9uU3VjY2Vzcyhsb2NhbERhdGFiYXNlUHJveHkucmVsZWFzZSgpLCBtZXRhZGF0
YSk7CiB9CiAKIHZvaWQgV2ViSURCQ2FsbGJhY2tzSW1wbDo6b25TdWNjZXNzKGNvbnN0IFdlYklE
QktleSYga2V5KQpAQCAtMTIwLDEwICsxMzIsMTYgQEAgdm9pZCBXZWJJREJDYWxsYmFja3NJbXBs
OjpvbkJsb2NrZWQobG9uZyBsb25nIG9sZFZlcnNpb24pCiAgICAgbV9jYWxsYmFja3MtPm9uQmxv
Y2tlZChvbGRWZXJzaW9uKTsKIH0KIAotdm9pZCBXZWJJREJDYWxsYmFja3NJbXBsOjpvblVwZ3Jh
ZGVOZWVkZWQobG9uZyBsb25nIG9sZFZlcnNpb24sIFdlYklEQlRyYW5zYWN0aW9uKiB0cmFuc2Fj
dGlvbiwgV2ViSURCRGF0YWJhc2UqIGRhdGFiYXNlKQordm9pZCBXZWJJREJDYWxsYmFja3NJbXBs
OjpvblVwZ3JhZGVOZWVkZWQobG9uZyBsb25nIG9sZFZlcnNpb24sIFdlYklEQlRyYW5zYWN0aW9u
KiwgV2ViSURCRGF0YWJhc2UqIGRhdGFiYXNlKQoreworICAgIG1fZGF0YWJhc2VQcm94eSA9IElE
QkRhdGFiYXNlQmFja2VuZFByb3h5OjpjcmVhdGUoYWRvcHRQdHIoZGF0YWJhc2UpKTsKKyAgICBt
X2NhbGxiYWNrcy0+b25VcGdyYWRlTmVlZGVkKG9sZFZlcnNpb24sIG1fZGF0YWJhc2VQcm94eSwg
bV9kYXRhYmFzZVByb3h5LT5tZXRhZGF0YSgpKTsKK30KKwordm9pZCBXZWJJREJDYWxsYmFja3NJ
bXBsOjpvblVwZ3JhZGVOZWVkZWQobG9uZyBsb25nIG9sZFZlcnNpb24sIFdlYklEQkRhdGFiYXNl
KiBkYXRhYmFzZSwgY29uc3QgV2ViSURCTWV0YWRhdGEmIG1ldGFkYXRhKQogewogICAgIG1fZGF0
YWJhc2VQcm94eSA9IElEQkRhdGFiYXNlQmFja2VuZFByb3h5OjpjcmVhdGUoYWRvcHRQdHIoZGF0
YWJhc2UpKTsKLSAgICBtX2NhbGxiYWNrcy0+b25VcGdyYWRlTmVlZGVkKG9sZFZlcnNpb24sIElE
QlRyYW5zYWN0aW9uQmFja2VuZFByb3h5OjpjcmVhdGUoYWRvcHRQdHIodHJhbnNhY3Rpb24pKSwg
bV9kYXRhYmFzZVByb3h5KTsKKyAgICBtX2NhbGxiYWNrcy0+b25VcGdyYWRlTmVlZGVkKG9sZFZl
cnNpb24sIG1fZGF0YWJhc2VQcm94eSwgbWV0YWRhdGEpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkNhbGxi
YWNrc0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkNhbGxiYWNrc0lt
cGwuaAppbmRleCA0YjEwNjQ5MWRlZTI1YTVhNzg4Yzg5MTkzNzIzMTM5OTQ0ZGJiN2FiLi41MWNk
NDYwZmQ5YWUwNTQ2MWZlOGNmZGMxM2MxNGNmYzZjOWVjOWNlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmgKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5oCkBAIC01MCw2ICs1MCw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKGNvbnN0IFdlYkRPTVN0cmluZ0xp
c3QmKTsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFdlYklEQkN1cnNvciosIGNvbnN0IFdl
YklEQktleSYsIGNvbnN0IFdlYklEQktleSYgcHJpbWFyeUtleSwgY29uc3QgV2ViU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlJik7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhXZWJJREJEYXRhYmFz
ZSopOworICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoV2ViSURCRGF0YWJhc2UqLCBjb25zdCBX
ZWJJREJNZXRhZGF0YSYpOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoY29uc3QgV2ViSURC
S2V5Jik7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzcyhjb25zdCBXZWJTZXJpYWxpemVkU2Ny
aXB0VmFsdWUmKTsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKGNvbnN0IFdlYlNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZSYsIGNvbnN0IFdlYklEQktleSYsIGNvbnN0IFdlYklEQktleVBhdGgmKTsK
QEAgLTU5LDYgKzYwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBvbkJsb2NrZWQoKTsK
ICAgICB2aXJ0dWFsIHZvaWQgb25CbG9ja2VkKGxvbmcgbG9uZyBvbGRWZXJzaW9uKTsKICAgICB2
aXJ0dWFsIHZvaWQgb25VcGdyYWRlTmVlZGVkKGxvbmcgbG9uZyBvbGRWZXJzaW9uLCBXZWJJREJU
cmFuc2FjdGlvbiosIFdlYklEQkRhdGFiYXNlKik7CisgICAgdmlydHVhbCB2b2lkIG9uVXBncmFk
ZU5lZWRlZChsb25nIGxvbmcgb2xkVmVyc2lvbiwgV2ViSURCRGF0YWJhc2UqLCBjb25zdCBXZWJJ
REJNZXRhZGF0YSYpOwogCiBwcml2YXRlOgogICAgIFJlZlB0cjxXZWJDb3JlOjpJREJDYWxsYmFj
a3M+IG1fY2FsbGJhY2tzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0
cy9JREJBYm9ydE9uQ29ycnVwdFRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0
cy9JREJBYm9ydE9uQ29ycnVwdFRlc3QuY3BwCmluZGV4IGRhN2M2ZmExODZkMzNkMDJiZWJiY2I4
ZDY3N2RjMDQzMzIwMTZmM2QuLjEwZjFkNWYzN2E5NGQzMjhiN2MwNWJmZjRkMzNiYjE5NjM3NWM5
MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCQWJvcnRPbkNv
cnJ1cHRUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkFib3J0
T25Db3JydXB0VGVzdC5jcHAKQEAgLTU3LDcgKzU3LDcgQEAgcHVibGljOgogICAgIH0KICAgICB2
aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8RE9NU3RyaW5nTGlzdD4pIHsgfQogICAg
IHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJDdXJzb3JCYWNrZW5kSW50ZXJm
YWNlPiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPElEQktleT4sIFBhc3NSZWZQdHI8
U2VyaWFsaXplZFNjcmlwdFZhbHVlPikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQ
YXNzUmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZT4pCisgICAgdmlydHVhbCB2b2lk
IG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZT4sIGNvbnN0
IElEQkRhdGFiYXNlTWV0YWRhdGEmKQogICAgIHsKICAgICAgICAgRVhQRUNUX1RSVUUoZmFsc2Up
OwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCRGF0
YWJhc2VCYWNrZW5kVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkRh
dGFiYXNlQmFja2VuZFRlc3QuY3BwCmluZGV4IDM1YTVkNTBhZjNlOWUyM2UyYmE0NTM3MjJiYmVi
OGE4ZWVlZTE4NTcuLmIyZTQ3ODkxNzQ2NDFiOWYwM2ZmNWYzZWYyMDI2YWMxMTdjMDhhMzkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCRGF0YWJhc2VCYWNrZW5k
VGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJEYXRhYmFzZUJh
Y2tlbmRUZXN0LmNwcApAQCAtNjksNyArNjksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IG9uRXJyb3IoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPikgT1ZFUlJJREUgeyB9CiAgICAg
dmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPERPTVN0cmluZ0xpc3Q+KSBPVkVSUklE
RSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCQ3Vyc29yQmFj
a2VuZEludGVyZmFjZT4sIFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQ
YXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4pIE9WRVJSSURFIHsgfQotICAgIHZpcnR1
YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+
KSBPVkVSUklERQorICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJEYXRh
YmFzZUJhY2tlbmRJbnRlcmZhY2U+LCBjb25zdCBJREJEYXRhYmFzZU1ldGFkYXRhJikgT1ZFUlJJ
REUKICAgICB7CiAgICAgICAgIG1fd2FzU3VjY2Vzc0RCQ2FsbGVkID0gdHJ1ZTsKICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185261</attachid>
            <date>2013-01-29 10:32:58 -0800</date>
            <delta_ts>2013-01-29 11:28:45 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-103920-20130129102944.patch</filename>
            <type>text/plain</type>
            <size>23822</size>
            <attacher name="Alec Flett">alecflett</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwOTU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmE3ODExNzE5NDQ4ZWMw
YzIzYzcwZjdlZThmMTUzZTJlMjg0ZjljYS4uN2JkYTRmNjZlNjM0YzViYTNhYmUyMTc3YjExMDA5
NjY1MzdiNjFhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEzLTAxLTI4ICBBbGVj
IEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IFBh
c3MgbWV0YWRhdGEgaW4gdG8gSURCT3BlbkRCUmVxdWVzdC5vblVwZ3JhZGVOZWVkZWQvb25TdWNj
ZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM5
MjAKKworICAgICAgICBSZXZpZXdlZCBieSBEaW1pdHJpIEdsYXprb3YuCisKKyAgICAgICAgVXBk
YXRlIElEQkNhbGxiYWNrczo6b25TdWNjZXNzIGFuZCBJREJDYWxsYmFja3M6Om9uVXBncmFkZU5l
ZWRlZCB0bworICAgICAgICBwYXNzIHRocm91Z2ggYSBtZXRhZGF0YSBwYXJhbWV0ZXIuIFdoaWxl
IHRoZXJlLCByZW1vdmUgdGhlIHVudXNlZAorICAgICAgICBJREJUcmFuc2FjdGlvbkJhY2tlbmRJ
bnRlcmZhY2UgcGFyYW1ldGVyIHRvIG9uVXBncmFkZU5lZWRlZC4KKworICAgICAgICBBcyB0aGlz
IGlzIGFub3RoZXIgc3RlcCBpbiB0aGUgSURCIHJlZmFjdG9yLCBJJ3ZlIHNpbXBsaWZpZWQgZnV0
dXJlIGNsZWFudXAKKyAgICAgICAgd29yayBieSBtYWtpbmcgdGhlIFdlYktpdCBBUEkgY29kZSBz
dGlsbCB1c2UgdGhlIG9sZCBBUEkuIFRoaXMKKyAgICAgICAgd2lsbCBtYWtlIGl0IHBvc3NpYmxl
IHRvIG91dHJpZ2h0IHJlbW92ZSBjb2RlIG9uIHRoZSBjaHJvbWl1bSBzaWRlIHJhdGhlcgorICAg
ICAgICB0aGFuIGFub3RoZXIgdGhyZWUtc3RlcCBjaGVja2luLgorCisgICAgICAgIE5vIG5ldyB0
ZXN0cywgYXMgdGhpcyBpcyBtb3JlIHJlZmFjdG9yaW5nLgorCisgICAgICAgICogTW9kdWxlcy9p
bmRleGVkZGIvSURCQ2FsbGJhY2tzLmg6CisgICAgICAgIChXZWJDb3JlOjpJREJDYWxsYmFja3M6
Om9uVXBncmFkZU5lZWRlZCk6IG5ldyBtZXRob2Qgc2lnbmF0dXJlLgorICAgICAgICAoV2ViQ29y
ZTo6SURCQ2FsbGJhY2tzOjpvblN1Y2Nlc3MpOiBuZXcgbWV0aG9kIHNpZ25hdHVyZS4KKyAgICAg
ICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZEltcGw6OlZlcnNpb25DaGFuZ2VPcGVyYXRp
b246OnBlcmZvcm0pOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6
cHJvY2Vzc1BlbmRpbmdDYWxscyk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tl
bmRJbXBsOjpvcGVuQ29ubmVjdGlvbik6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURC
T3BlbkRCUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJPcGVuREJSZXF1ZXN0Ojpv
blVwZ3JhZGVOZWVkZWQpOiB1c2UgcGFzc2VkLWluIG1ldGFkYXRhLgorICAgICAgICAoV2ViQ29y
ZTo6SURCT3BlbkRCUmVxdWVzdDo6b25TdWNjZXNzKTogdXNlIHBhc3NlZC1pbiBtZXRhZGF0YS4K
KyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0Lmg6CisgICAgICAg
IChJREJPcGVuREJSZXF1ZXN0KToKKwogMjAxMy0wMS0yNSAgQWxlYyBGbGV0dCAgPGFsZWNmbGV0
dEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgSW5kZXhlZERCOiBNb3ZlIFRhc2tUeXBlIGVudW0g
dG8gSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmlu
ZGV4IGM2MzBkYzUyNzMwNTU3YTFiMTUxZWVlNmQ3YjFjN2Y2YTM2ODNlMWYuLmVlYTNiZTQ0NTkx
MzZjYzRlZTgyMTU5NjAyODk4MGM1OGJmZGM3YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMzUgQEAKKzIwMTMtMDEtMjggIEFsZWMgRmxldHQgIDxhbGVjZmxldHRAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIEluZGV4ZWREQjogUGFzcyBtZXRhZGF0YSBpbiB0byBJREJP
cGVuREJSZXF1ZXN0Lm9uVXBncmFkZU5lZWRlZC9vblN1Y2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzkyMAorCisgICAgICAgIFJldmlld2Vk
IGJ5IERpbWl0cmkgR2xhemtvdi4KKworICAgICAgICBTdXBwb3J0IHRoZSBuZXcgSURCQ2FsbGJh
Y2tzOjpvblN1Y2Nlc3MgYW5kIElEQkNhbGxiYWNrczo6b25VcGdyYWRlTmVlZGVkCisgICAgICAg
IHdoaWxlIG1haW50YWluaW5nIGNocm9taXVtIGNvbXBhdGliaWxpdHkgYnkgc2hpbW1pbmcgaW4g
dGhlIG9sZCBBUEkKKyAgICAgICAgaW4gdGhlIFdlYktpdCBzaWRlLiBGdXR1cmUgY29kZSB3aWxs
IGNsZWFuIHRoaXMgdXAgc28gdGhhdCBpdCBpcyBqdXN0IGEKKyAgICAgICAgcGFzcy10aHJvdWdo
IGFzIGl0IHdhcyBiZWZvcmUuCisKKyAgICAgICAgKiBwdWJsaWMvV2ViSURCQ2FsbGJhY2tzLmg6
CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDYWxsYmFja3M6Om9u
U3VjY2Vzcyk6IG5ldyBtZXRob2Qgc2lnbmF0dXJlLgorICAgICAgICAoV2ViS2l0OjpXZWJJREJD
YWxsYmFja3M6Om9uVXBncmFkZU5lZWRlZCk6IG5ldyBtZXRob2Qgc2lnbmF0dXJlLgorICAgICAg
ICAqIHNyYy9JREJDYWxsYmFja3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OklEQkNhbGxi
YWNrc1Byb3h5OjpvblN1Y2Nlc3MpOiBjYWxsIG9uIG5ldyBtZXRob2Qgc2lnbmF0dXJlIHByb3hp
ZXMgdGhyb3VnaCBvbGQgQVBJLgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6
SURCQ2FsbGJhY2tzUHJveHk6Om9uVXBncmFkZU5lZWRlZCk6IGNhbGwgb24gbmV3IG1ldGhvZCBz
aWduYXR1cmUgcHJveGllcyB0aHJvdWdoIG9sZCBBUEkuCisgICAgICAgICogc3JjL0lEQkNhbGxi
YWNrc1Byb3h5Lmg6CisgICAgICAgIChJREJDYWxsYmFja3NQcm94eSk6CisgICAgICAgICogc3Jj
L1dlYklEQkNhbGxiYWNrc0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDYWxsYmFj
a3NJbXBsOjpvblN1Y2Nlc3MpOiBjYWxsIG9uIG9sZCBXZWJLaXQgcHJveHkgc2lnbmF0dXJlIGNh
bGxzIG5ldyBBUEkuCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJD
YWxsYmFja3NJbXBsOjpvblVwZ3JhZGVOZWVkZWQpOiBjYWxsIG9uIG9sZCBXZWJLaXQgcHJveHkg
c2lnbmF0dXJlIGNhbGxzIG5ldyBBUEkuCisgICAgICAgICogc3JjL1dlYklEQkNhbGxiYWNrc0lt
cGwuaDoKKyAgICAgICAgKFdlYklEQkNhbGxiYWNrc0ltcGwpOgorICAgICAgICAqIHRlc3RzL0lE
QkFib3J0T25Db3JydXB0VGVzdC5jcHA6IG5ldyBtZXRob2Qgc2lnbmF0dXJlLgorICAgICAgICAo
V2ViQ29yZTo6TW9ja0lEQkNhbGxiYWNrczo6b25TdWNjZXNzKToKKyAgICAgICAgKiB0ZXN0cy9J
REJEYXRhYmFzZUJhY2tlbmRUZXN0LmNwcDogbmV3IG1ldGhvZCBzaWduYXR1cmUuCisKIDIwMTMt
MDEtMjUgIEFsZWMgRmxldHQgIDxhbGVjZmxldHRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIElu
ZGV4ZWREQjogTW92ZSBUYXNrVHlwZSBlbnVtIHRvIElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFj
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ2FsbGJh
Y2tzLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDYWxsYmFja3MuaApp
bmRleCBmOGQzY2U0OGNkODM3NGZmMWVkNmI5ODI4OGU2NDhmZGFiNmU1YWFjLi5jOGE1MjRjN2Ni
OGFjMDdkOWU4NmUwYmQxMGYwMTk3N2VmOWVjZWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDYWxsYmFja3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJDYWxsYmFja3MuaApAQCAtNzIsOCArNzIsOCBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIG9uQmxvY2tlZCgpIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgb25CbG9ja2VkKGludDY0X3QgZXhpc3RpbmdWZXJzaW9uKSB7IEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgLy8gRnJvbSBJREJGYWN0b3J5Lm9wZW4oKQotICAg
IHZpcnR1YWwgdm9pZCBvblVwZ3JhZGVOZWVkZWQoaW50NjRfdCBvbGRWZXJzaW9uLCBQYXNzUmVm
UHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4sIFBhc3NSZWZQdHI8SURCRGF0YWJh
c2VCYWNrZW5kSW50ZXJmYWNlPikgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQotICAgIHZpcnR1
YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+
KSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisgICAgdmlydHVhbCB2b2lkIG9uVXBncmFkZU5l
ZWRlZChpbnQ2NF90IG9sZFZlcnNpb24sIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kSW50
ZXJmYWNlPiwgY29uc3QgSURCRGF0YWJhc2VNZXRhZGF0YSYpIHsgQVNTRVJUX05PVF9SRUFDSEVE
KCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VC
YWNrZW5kSW50ZXJmYWNlPiwgY29uc3QgSURCRGF0YWJhc2VNZXRhZGF0YSYpIHsgQVNTRVJUX05P
VF9SRUFDSEVEKCk7IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5k
SW1wbC5jcHAKaW5kZXggM2ExOTViMjZkZjFhODE5NDdlZTczNTEzOTE5NjI3MWQwODZkMTYxMC4u
MGNkMjcwOWQxOTU0NjNmZjFlNDhiNzFkODM2NDgyM2IxMDcxZGE1MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5k
SW1wbC5jcHAKQEAgLTEwNjYsNyArMTA2Niw3IEBAIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kSW1w
bDo6VmVyc2lvbkNoYW5nZU9wZXJhdGlvbjo6cGVyZm9ybShJREJUcmFuc2FjdGlvbkJhY2tlCiAg
ICAgfQogICAgIEFTU0VSVCghbV9kYXRhYmFzZS0+bV9wZW5kaW5nU2Vjb25kSGFsZk9wZW4pOwog
ICAgIG1fZGF0YWJhc2UtPm1fcGVuZGluZ1NlY29uZEhhbGZPcGVuID0gUGVuZGluZ09wZW5DYWxs
OjpjcmVhdGUobV9jYWxsYmFja3MsIG1fZGF0YWJhc2VDYWxsYmFja3MsIG1fdHJhbnNhY3Rpb25J
ZCwgbV92ZXJzaW9uKTsKLSAgICBtX2NhbGxiYWNrcy0+b25VcGdyYWRlTmVlZGVkKG9sZFZlcnNp
b24sIHRyYW5zYWN0aW9uLCBtX2RhdGFiYXNlKTsKKyAgICBtX2NhbGxiYWNrcy0+b25VcGdyYWRl
TmVlZGVkKG9sZFZlcnNpb24sIG1fZGF0YWJhc2UsIG1fZGF0YWJhc2UtPm1ldGFkYXRhKCkpOwog
fQogCiB2b2lkIElEQkRhdGFiYXNlQmFja2VuZEltcGw6OnRyYW5zYWN0aW9uU3RhcnRlZChQYXNz
UmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGw+IHBycFRyYW5zYWN0aW9uKQpAQCAtMTEy
Myw3ICsxMTIzLDcgQEAgdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpwcm9jZXNzUGVuZGlu
Z0NhbGxzKCkKICAgICBpZiAobV9wZW5kaW5nU2Vjb25kSGFsZk9wZW4pIHsKICAgICAgICAgQVNT
RVJUKG1fcGVuZGluZ1NlY29uZEhhbGZPcGVuLT52ZXJzaW9uKCkgPT0gbV9tZXRhZGF0YS5pbnRW
ZXJzaW9uKTsKICAgICAgICAgQVNTRVJUKG1fbWV0YWRhdGEuaWQgIT0gSW52YWxpZElkKTsKLSAg
ICAgICAgbV9wZW5kaW5nU2Vjb25kSGFsZk9wZW4tPmNhbGxiYWNrcygpLT5vblN1Y2Nlc3ModGhp
cyk7CisgICAgICAgIG1fcGVuZGluZ1NlY29uZEhhbGZPcGVuLT5jYWxsYmFja3MoKS0+b25TdWNj
ZXNzKHRoaXMsIHRoaXMtPm1ldGFkYXRhKCkpOwogICAgICAgICBtX3BlbmRpbmdTZWNvbmRIYWxm
T3Blbi5yZWxlYXNlKCk7CiAgICAgICAgIC8vIEZhbGwgdGhyb3VnaCB3aGVuIGNvbXBsZXRlLCBh
cyBwZW5kaW5nIGRlbGV0ZXMgbWF5IGJlIChwYXJ0aWFsbHkpIHVuYmxvY2tlZC4KICAgICB9CkBA
IC0xMjA0LDE0ICsxMjA0LDE0IEBAIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6b3BlbkNv
bm5lY3Rpb24oUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IHBycENhbGxiYWNrCiAgICAgICAgIC8v
IEZvciB1bml0IHRlc3RzIG9ubHkgLSBza2lwIHVwZ3JhZGUgc3RlcHMuIENhbGxpbmcgZnJvbSBz
Y3JpcHQgd2l0aCBEZWZhdWx0SW50VmVyc2lvbiB0aHJvd3MgZXhjZXB0aW9uLgogICAgICAgICBB
U1NFUlQoaXNOZXdEYXRhYmFzZSk7CiAgICAgICAgIG1fZGF0YWJhc2VDYWxsYmFja3NTZXQuYWRk
KGRhdGFiYXNlQ2FsbGJhY2tzKTsKLSAgICAgICAgY2FsbGJhY2tzLT5vblN1Y2Nlc3ModGhpcyk7
CisgICAgICAgIGNhbGxiYWNrcy0+b25TdWNjZXNzKHRoaXMsIHRoaXMtPm1ldGFkYXRhKCkpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgaWYgKHZlcnNpb24gPT0gSURCRGF0YWJhc2VN
ZXRhZGF0YTo6Tm9JbnRWZXJzaW9uKSB7CiAgICAgICAgIGlmICghaXNOZXdEYXRhYmFzZSkgewog
ICAgICAgICAgICAgbV9kYXRhYmFzZUNhbGxiYWNrc1NldC5hZGQoUmVmUHRyPElEQkRhdGFiYXNl
Q2FsbGJhY2tzPihkYXRhYmFzZUNhbGxiYWNrcykpOwotICAgICAgICAgICAgY2FsbGJhY2tzLT5v
blN1Y2Nlc3ModGhpcyk7CisgICAgICAgICAgICBjYWxsYmFja3MtPm9uU3VjY2Vzcyh0aGlzLCB0
aGlzLT5tZXRhZGF0YSgpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAg
ICAvLyBTcGVjIHNheXM6IElmIG5vIHZlcnNpb24gaXMgc3BlY2lmaWVkIGFuZCBubyBkYXRhYmFz
ZSBleGlzdHMsIHNldCBkYXRhYmFzZSB2ZXJzaW9uIHRvIDEuCkBAIC0xMjI4LDcgKzEyMjgsNyBA
QCB2b2lkIElEQkRhdGFiYXNlQmFja2VuZEltcGw6Om9wZW5Db25uZWN0aW9uKFBhc3NSZWZQdHI8
SURCQ2FsbGJhY2tzPiBwcnBDYWxsYmFjawogICAgIH0KICAgICBBU1NFUlQodmVyc2lvbiA9PSBt
X21ldGFkYXRhLmludFZlcnNpb24pOwogICAgIG1fZGF0YWJhc2VDYWxsYmFja3NTZXQuYWRkKGRh
dGFiYXNlQ2FsbGJhY2tzKTsKLSAgICBjYWxsYmFja3MtPm9uU3VjY2Vzcyh0aGlzKTsKKyAgICBj
YWxsYmFja3MtPm9uU3VjY2Vzcyh0aGlzLCB0aGlzLT5tZXRhZGF0YSgpKTsKIH0KIAogdm9pZCBJ
REJEYXRhYmFzZUJhY2tlbmRJbXBsOjpydW5JbnRWZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24oUGFz
c1JlZlB0cjxJREJDYWxsYmFja3M+IHBycENhbGxiYWNrcywgUGFzc1JlZlB0cjxJREJEYXRhYmFz
ZUNhbGxiYWNrcz4gcHJwRGF0YWJhc2VDYWxsYmFja3MsIGludDY0X3QgdHJhbnNhY3Rpb25JZCwg
aW50NjRfdCByZXF1ZXN0ZWRWZXJzaW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmNwcAppbmRleCBhMzJiYTQ3NTdiMDNlYjUy
YjkzZTgzMGU2NWZkYmIyZDM5MGJkNTc2Li5jYzE5N2YwZWM5Mjg5YTRkMTExMTNmOTk5Mzg4YTc2
NDdjYmRiOGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJPcGVuREJSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJPcGVuREJSZXF1ZXN0LmNwcApAQCAtNjksNyArNjksNyBAQCB2b2lkIElEQk9wZW5EQlJl
cXVlc3Q6Om9uQmxvY2tlZChpbnQ2NF90IG9sZFZlcnNpb24pCiAgICAgZW5xdWV1ZUV2ZW50KElE
QlVwZ3JhZGVOZWVkZWRFdmVudDo6Y3JlYXRlKG9sZFZlcnNpb24sIG1fdmVyc2lvbiwgZXZlbnRO
YW1lcygpLmJsb2NrZWRFdmVudCkpOwogfQogCi12b2lkIElEQk9wZW5EQlJlcXVlc3Q6Om9uVXBn
cmFkZU5lZWRlZChpbnQ2NF90IG9sZFZlcnNpb24sIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25C
YWNrZW5kSW50ZXJmYWNlPiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+
IHBycERhdGFiYXNlQmFja2VuZCkKK3ZvaWQgSURCT3BlbkRCUmVxdWVzdDo6b25VcGdyYWRlTmVl
ZGVkKGludDY0X3Qgb2xkVmVyc2lvbiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbnRl
cmZhY2U+IHBycERhdGFiYXNlQmFja2VuZCwgY29uc3QgSURCRGF0YWJhc2VNZXRhZGF0YSYgbWV0
YWRhdGEpCiB7CiAgICAgSURCX1RSQUNFKCJJREJPcGVuREJSZXF1ZXN0OjpvblVwZ3JhZGVOZWVk
ZWQoKSIpOwogICAgIGlmIChtX2NvbnRleHRTdG9wcGVkIHx8ICFzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkpIHsKQEAgLTg0LDkgKzg0LDYgQEAgdm9pZCBJREJPcGVuREJSZXF1ZXN0OjpvblVwZ3Jh
ZGVOZWVkZWQoaW50NjRfdCBvbGRWZXJzaW9uLCBQYXNzUmVmUHRyPElEQlRyYW5zYWMKICAgICBB
U1NFUlQobV9kYXRhYmFzZUNhbGxiYWNrcyk7CiAKICAgICBSZWZQdHI8SURCRGF0YWJhc2VCYWNr
ZW5kSW50ZXJmYWNlPiBkYXRhYmFzZUJhY2tlbmQgPSBwcnBEYXRhYmFzZUJhY2tlbmQ7Ci0gICAg
Ly8gRklYTUU6IFRoaXMgcG90ZW50aWFsbHkgZXhwZW5zaXZlIChzeW5jaHJvbm91cykgY2FsbCBp
bnRvIHRoZSBiYWNrZW5kIGNvdWxkIGJlIHJlbW92ZWQgaWYgdGhlIG1ldGFkYXRhCi0gICAgLy8g
d2VyZSBwYXNzZWQgaW4gZHVyaW5nIHRoZSAoYXN5bmNocm9ub3VzKSBvblVwZ3JhZGVOZWVkZWQg
Y2FsbCBmcm9tIHRoZSBiYWNrZW5kLiBodHRwOi8vd2tidWcuY29tLzEwMzkyMAotICAgIElEQkRh
dGFiYXNlTWV0YWRhdGEgbWV0YWRhdGEgPSBkYXRhYmFzZUJhY2tlbmQtPm1ldGFkYXRhKCk7CiAK
ICAgICBSZWZQdHI8SURCRGF0YWJhc2U+IGlkYkRhdGFiYXNlID0gSURCRGF0YWJhc2U6OmNyZWF0
ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIGRhdGFiYXNlQmFja2VuZCwgbV9kYXRhYmFzZUNh
bGxiYWNrcyk7CiAgICAgaWRiRGF0YWJhc2UtPnNldE1ldGFkYXRhKG1ldGFkYXRhKTsKQEAgLTk3
LDkgKzk0LDEwIEBAIHZvaWQgSURCT3BlbkRCUmVxdWVzdDo6b25VcGdyYWRlTmVlZGVkKGludDY0
X3Qgb2xkVmVyc2lvbiwgUGFzc1JlZlB0cjxJREJUcmFuc2FjCiAgICAgICAgIC8vIFRoaXMgZGF0
YWJhc2UgaGFzbid0IGhhZCBhbiBpbnRlZ2VyIHZlcnNpb24gYmVmb3JlLgogICAgICAgICBvbGRW
ZXJzaW9uID0gSURCRGF0YWJhc2VNZXRhZGF0YTo6RGVmYXVsdEludFZlcnNpb247CiAgICAgfQot
ICAgIG1ldGFkYXRhLmludFZlcnNpb24gPSBvbGRWZXJzaW9uOworICAgIElEQkRhdGFiYXNlTWV0
YWRhdGEgb2xkTWV0YWRhdGEobWV0YWRhdGEpOworICAgIG9sZE1ldGFkYXRhLmludFZlcnNpb24g
PSBvbGRWZXJzaW9uOwogCi0gICAgbV90cmFuc2FjdGlvbiA9IElEQlRyYW5zYWN0aW9uOjpjcmVh
dGUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBtX3RyYW5zYWN0aW9uSWQsIGlkYkRhdGFiYXNl
LmdldCgpLCB0aGlzLCBtZXRhZGF0YSk7CisgICAgbV90cmFuc2FjdGlvbiA9IElEQlRyYW5zYWN0
aW9uOjpjcmVhdGUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBtX3RyYW5zYWN0aW9uSWQsIGlk
YkRhdGFiYXNlLmdldCgpLCB0aGlzLCBvbGRNZXRhZGF0YSk7CiAgICAgbV9yZXN1bHQgPSBJREJB
bnk6OmNyZWF0ZShpZGJEYXRhYmFzZS5yZWxlYXNlKCkpOwogCiAgICAgaWYgKG1fdmVyc2lvbiA9
PSBJREJEYXRhYmFzZU1ldGFkYXRhOjpOb0ludFZlcnNpb24pCkBAIC0xMDcsMTYgKzEwNSwxMyBA
QCB2b2lkIElEQk9wZW5EQlJlcXVlc3Q6Om9uVXBncmFkZU5lZWRlZChpbnQ2NF90IG9sZFZlcnNp
b24sIFBhc3NSZWZQdHI8SURCVHJhbnNhYwogICAgIGVucXVldWVFdmVudChJREJVcGdyYWRlTmVl
ZGVkRXZlbnQ6OmNyZWF0ZShvbGRWZXJzaW9uLCBtX3ZlcnNpb24sIGV2ZW50TmFtZXMoKS51cGdy
YWRlbmVlZGVkRXZlbnQpKTsKIH0KIAotdm9pZCBJREJPcGVuREJSZXF1ZXN0OjpvblN1Y2Nlc3Mo
UGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+IHBycEJhY2tlbmQpCit2b2lk
IElEQk9wZW5EQlJlcXVlc3Q6Om9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkRhdGFiYXNlQmFja2Vu
ZEludGVyZmFjZT4gcHJwQmFja2VuZCwgY29uc3QgSURCRGF0YWJhc2VNZXRhZGF0YSYgbWV0YWRh
dGEpCiB7CiAgICAgSURCX1RSQUNFKCJJREJPcGVuREJSZXF1ZXN0OjpvblN1Y2Nlc3MoKSIpOwog
ICAgIGlmICghc2hvdWxkRW5xdWV1ZUV2ZW50KCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIFJl
ZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+IGJhY2tlbmQgPSBwcnBCYWNrZW5kOwot
ICAgIC8vIEZJWE1FOiBUaGlzIHBvdGVudGlhbGx5IGV4cGVuc2l2ZSAoc3luY2hyb25vdXMpIGNh
bGwgaW50byB0aGUgYmFja2VuZCBjb3VsZCBiZSByZW1vdmVkIGlmIHRoZSBtZXRhZGF0YQotICAg
IC8vIHdlcmUgcGFzc2VkIGluIGR1cmluZyB0aGUgKGFzeW5jaHJvbm91cykgb25TdWNjZXNzIGNh
bGwgZnJvbSB0aGUgYmFja2VuZC4gaHR0cDovL3drYnVnLmNvbS8xMDM5MjAKLSAgICBJREJEYXRh
YmFzZU1ldGFkYXRhIG1ldGFkYXRhID0gYmFja2VuZC0+bWV0YWRhdGEoKTsKICAgICBSZWZQdHI8
SURCRGF0YWJhc2U+IGlkYkRhdGFiYXNlOwogICAgIGlmIChtX3Jlc3VsdCkgewogICAgICAgICBp
ZGJEYXRhYmFzZSA9IG1fcmVzdWx0LT5pZGJEYXRhYmFzZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5oCmluZGV4IDQwNGY5MTQy
MTYwMTNmYzU4NmUyZmQ1YWQ5ODI4ZmNkMTFhMmZiN2IuLjMxNjJiNjgwYzdkYmMxNmJmNDBmY2Uz
NWRmZmY4ZWE5NGE3Mzc5ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmgKQEAgLTQyLDggKzQyLDggQEAgcHVibGljOgogICAg
IHVzaW5nIElEQlJlcXVlc3Q6Om9uU3VjY2VzczsKIAogICAgIHZpcnR1YWwgdm9pZCBvbkJsb2Nr
ZWQoaW50NjRfdCBleGlzdGluZ1ZlcnNpb24pIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBv
blVwZ3JhZGVOZWVkZWQoaW50NjRfdCBvbGRWZXJzaW9uLCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0
aW9uQmFja2VuZEludGVyZmFjZT4sIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJm
YWNlPikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPElE
QkRhdGFiYXNlQmFja2VuZEludGVyZmFjZT4pIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBv
blVwZ3JhZGVOZWVkZWQoaW50NjRfdCBvbGRWZXJzaW9uLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNl
QmFja2VuZEludGVyZmFjZT4sIGNvbnN0IElEQkRhdGFiYXNlTWV0YWRhdGEmKSBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5k
SW50ZXJmYWNlPiwgY29uc3QgSURCRGF0YWJhc2VNZXRhZGF0YSYpIE9WRVJSSURFOwogCiAgICAg
Ly8gRXZlbnRUYXJnZXQKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgaW50ZXJmYWNl
TmFtZSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCVmVyc2lvbkNoYW5nZVJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCVmVyc2lvbkNoYW5nZVJlcXVlc3QuY3BwCmluZGV4IDkyZjRlZjEyM2FhNDAy
N2Y0ZDZiMmJhZTk4ZTYwMTlhNmY2MWFhZTIuLmZiN2QzNjE1MDlhNzg0NGYyMWE1NDA5MWQ3MjYz
ODRmOGJmNDRhNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQlZlcnNpb25DaGFuZ2VSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJWZXJzaW9uQ2hhbmdlUmVxdWVzdC5jcHAKQEAgLTQyLDcgKzQyLDcgQEAg
UGFzc1JlZlB0cjxJREJWZXJzaW9uQ2hhbmdlUmVxdWVzdD4gSURCVmVyc2lvbkNoYW5nZVJlcXVl
c3Q6OmNyZWF0ZShTY3JpcHRFeGVjdXQKIH0KIAogSURCVmVyc2lvbkNoYW5nZVJlcXVlc3Q6OklE
QlZlcnNpb25DaGFuZ2VSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBh
c3NSZWZQdHI8SURCQW55PiBzb3VyY2UsIGNvbnN0IFN0cmluZyYgdmVyc2lvbikKLSAgICA6IElE
QlJlcXVlc3QoY29udGV4dCwgc291cmNlLCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U6
Ok5vcm1hbFRhc2ssIDApCisgICAgOiBJREJSZXF1ZXN0KGNvbnRleHQsIHNvdXJjZSwgSURCRGF0
YWJhc2VCYWNrZW5kSW50ZXJmYWNlOjpOb3JtYWxUYXNrLCAwKQogICAgICwgbV92ZXJzaW9uKHZl
cnNpb24pCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJJREJDYWxsYmFja3MuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkNh
bGxiYWNrcy5oCmluZGV4IDQ0ZGQ0NDFhMTdjZmNjYzg4NjcyMjU5M2EwNTVlNDc1ZDAxN2M1ZWIu
LmE1YWZmNjM3YjY0MDI3NmZjMGNiYzA4YjIxZjdjYjA5ZmQ0NjZmYzggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkNhbGxiYWNrcy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkNhbGxiYWNrcy5oCkBAIC00MCw2ICs0MCw3
IEBAIGNsYXNzIFdlYklEQktleVBhdGg7CiBjbGFzcyBXZWJJREJJbmRleDsKIGNsYXNzIFdlYklE
QlRyYW5zYWN0aW9uOwogY2xhc3MgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlOworc3RydWN0IFdl
YklEQk1ldGFkYXRhOwogCiBjbGFzcyBXZWJJREJDYWxsYmFja3MgewogcHVibGljOgpAQCAtNTEs
NiArNTIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzcyhjb25zdCBXZWJE
T01TdHJpbmdMaXN0JikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICB2aXJ0
dWFsIHZvaWQgb25TdWNjZXNzKFdlYklEQkN1cnNvciosIGNvbnN0IFdlYklEQktleSYga2V5LCBj
b25zdCBXZWJJREJLZXkmIHByaW1hcnlLZXksIGNvbnN0IFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZSYpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgdmlydHVhbCB2b2lkIG9u
U3VjY2VzcyhXZWJJREJEYXRhYmFzZSopIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9
CisgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhXZWJJREJEYXRhYmFzZSosIGNvbnN0IFdlYklE
Qk1ldGFkYXRhJikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICB2aXJ0dWFs
IHZvaWQgb25TdWNjZXNzKGNvbnN0IFdlYklEQktleSYpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVB
Q0hFRCgpOyB9CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzcyhjb25zdCBXZWJTZXJpYWxpemVk
U2NyaXB0VmFsdWUmKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAgIHZpcnR1
YWwgdm9pZCBvblN1Y2Nlc3MoY29uc3QgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlJiwgY29uc3Qg
V2ViSURCS2V5JiwgY29uc3QgV2ViSURCS2V5UGF0aCYpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVB
Q0hFRCgpOyB9CkBAIC02MSw2ICs2Myw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgb25C
bG9ja2VkKGxvbmcgbG9uZyBvbGRWZXJzaW9uKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQo
KTsgfQogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3NXaXRoUHJlZmV0Y2goY29uc3QgV2ViVmVj
dG9yPFdlYklEQktleT4mIGtleXMsIGNvbnN0IFdlYlZlY3RvcjxXZWJJREJLZXk+JiBwcmltYXJ5
S2V5cywgY29uc3QgV2ViVmVjdG9yPFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mIHZhbHVlcykg
eyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgb25VcGdy
YWRlTmVlZGVkKGxvbmcgbG9uZyBvbGRWZXJzaW9uLCBXZWJJREJUcmFuc2FjdGlvbiosIFdlYklE
QkRhdGFiYXNlKikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKyAgICB2aXJ0dWFs
IHZvaWQgb25VcGdyYWRlTmVlZGVkKGxvbmcgbG9uZyBvbGRWZXJzaW9uLCBXZWJJREJEYXRhYmFz
ZSosIGNvbnN0IFdlYklEQk1ldGFkYXRhJikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7
IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJveHkuY3BwCmluZGV4IDRhNjc2OWNhYTlhN2NmMTE2OWI4
MmE0Yzg3YjM0OWMzMTdmODFmZjEuLjc3NmFmOGM1MDNiODA2NWI5NjBmOTZjZDlmMmUzNzQ3MmQx
M2QyMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNhbGxiYWNr
c1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQ
cm94eS5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJJREJEYXRhYmFzZUJhY2tlbmRQ
cm94eS5oIgogI2luY2x1ZGUgIklEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHkuaCIKICNpbmNsdWRl
ICJJREJEYXRhYmFzZUVycm9yLmgiCisjaW5jbHVkZSAiSURCTWV0YWRhdGEuaCIKICNpbmNsdWRl
ICJJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UuaCIKICNpbmNsdWRlICJXZWJJREJDYWxs
YmFja3MuaCIKICNpbmNsdWRlICJXZWJJREJDdXJzb3JJbXBsLmgiCkBAIC05MSw2ICs5MiwxNCBA
QCB2b2lkIElEQkNhbGxiYWNrc1Byb3h5OjpvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJEYXRhYmFz
ZUJhY2tlbmRJbnRlcmZhY2U+IGJhY2tlbgogICAgIG1fY2FsbGJhY2tzLT5vblN1Y2Nlc3MoaW1w
bCk7CiB9CiAKK3ZvaWQgSURCQ2FsbGJhY2tzUHJveHk6Om9uU3VjY2VzcyhQYXNzUmVmUHRyPElE
QkRhdGFiYXNlQmFja2VuZEludGVyZmFjZT4gYmFja2VuZCwgY29uc3QgSURCRGF0YWJhc2VNZXRh
ZGF0YSYpCit7CisgICAgQVNTRVJUKG1fZGF0YWJhc2VDYWxsYmFja3MuZ2V0KCkpOworICAgIG1f
ZGlkQ29tcGxldGUgPSB0cnVlOworICAgIFdlYklEQkRhdGFiYXNlSW1wbCogaW1wbCA9IG1fZGlk
Q3JlYXRlUHJveHkgPyAwIDogbmV3IFdlYklEQkRhdGFiYXNlSW1wbChiYWNrZW5kLCBtX2RhdGFi
YXNlQ2FsbGJhY2tzLnJlbGVhc2UoKSk7CisgICAgbV9jYWxsYmFja3MtPm9uU3VjY2VzcyhpbXBs
KTsKK30KKwogdm9pZCBJREJDYWxsYmFja3NQcm94eTo6b25TdWNjZXNzKFBhc3NSZWZQdHI8SURC
S2V5PiBpZGJLZXkpCiB7CiAgICAgbV9kaWRDb21wbGV0ZSA9IHRydWU7CkBAIC0xNjQsOCArMTcz
LDE2IEBAIHZvaWQgSURCQ2FsbGJhY2tzUHJveHk6Om9uQmxvY2tlZChpbnQ2NF90IGV4aXN0aW5n
VmVyc2lvbikKIHZvaWQgSURCQ2FsbGJhY2tzUHJveHk6Om9uVXBncmFkZU5lZWRlZChpbnQ2NF90
IG9sZFZlcnNpb24sIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiB0
cmFuc2FjdGlvbiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+IGRhdGFi
YXNlKQogewogICAgIEFTU0VSVChtX2RhdGFiYXNlQ2FsbGJhY2tzKTsKKyAgICBBU1NFUlQoIXRy
YW5zYWN0aW9uKTsKKyAgICBtX2RpZENyZWF0ZVByb3h5ID0gdHJ1ZTsKKyAgICBtX2NhbGxiYWNr
cy0+b25VcGdyYWRlTmVlZGVkKG9sZFZlcnNpb24sIDAsIG5ldyBXZWJJREJEYXRhYmFzZUltcGwo
ZGF0YWJhc2UsIG1fZGF0YWJhc2VDYWxsYmFja3MpKTsKK30KKwordm9pZCBJREJDYWxsYmFja3NQ
cm94eTo6b25VcGdyYWRlTmVlZGVkKGludDY0X3Qgb2xkVmVyc2lvbiwgUGFzc1JlZlB0cjxJREJE
YXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+IGRhdGFiYXNlLCBjb25zdCBJREJEYXRhYmFzZU1ldGFk
YXRhJikKK3sKKyAgICBBU1NFUlQobV9kYXRhYmFzZUNhbGxiYWNrcyk7CiAgICAgbV9kaWRDcmVh
dGVQcm94eSA9IHRydWU7Ci0gICAgbV9jYWxsYmFja3MtPm9uVXBncmFkZU5lZWRlZChvbGRWZXJz
aW9uLCBuZXcgV2ViSURCVHJhbnNhY3Rpb25JbXBsKHRyYW5zYWN0aW9uKSwgbmV3IFdlYklEQkRh
dGFiYXNlSW1wbChkYXRhYmFzZSwgbV9kYXRhYmFzZUNhbGxiYWNrcykpOworICAgIG1fY2FsbGJh
Y2tzLT5vblVwZ3JhZGVOZWVkZWQob2xkVmVyc2lvbiwgMCwgbmV3IFdlYklEQkRhdGFiYXNlSW1w
bChkYXRhYmFzZSwgbV9kYXRhYmFzZUNhbGxiYWNrcykpOwogfQogCiB2b2lkIElEQkNhbGxiYWNr
c1Byb3h5OjpzZXREYXRhYmFzZUNhbGxiYWNrcyhQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJh
Y2tzUHJveHk+IGRhdGFiYXNlQ2FsbGJhY2tzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0lEQkNhbGxiYWNrc1Byb3h5LmgKaW5kZXggZTY5ZDU5NzEwYTc0ODYxZmRhMTVjNGU4YTky
NDhiZTQzMGViNmNjZi4uNGNmYTE3ZTlmNGUwZTk3MGFiZTJiODhiOWUwNjI2M2ZlNDkxY2RiMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5oCkBA
IC01MCw2ICs1MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NS
ZWZQdHI8V2ViQ29yZTo6RE9NU3RyaW5nTGlzdD4pOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nl
c3MoUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlPiwgUGFzc1Jl
ZlB0cjxXZWJDb3JlOjpJREJLZXk+LCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQktleT4gcHJpbWFy
eUtleSwgUGFzc1JlZlB0cjxXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU+KTsKICAgICB2
aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCRGF0YWJhc2VCYWNr
ZW5kSW50ZXJmYWNlPik7CisgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPFdl
YkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZT4sIGNvbnN0IFdlYkNvcmU6OklEQkRh
dGFiYXNlTWV0YWRhdGEmKTsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8
V2ViQ29yZTo6SURCS2V5Pik7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRy
PFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4pOwogICAgIHZpcnR1YWwgdm9pZCBvblN1
Y2Nlc3MoUGFzc1JlZlB0cjxXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU+LCBQYXNzUmVm
UHRyPFdlYkNvcmU6OklEQktleT4sIGNvbnN0IFdlYkNvcmU6OklEQktleVBhdGgmKTsKQEAgLTYw
LDYgKzYxLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBvbkJsb2NrZWQoKTsKICAgICB2
aXJ0dWFsIHZvaWQgb25CbG9ja2VkKGludDY0X3QgZXhpc3RpbmdWZXJzaW9uKTsKICAgICB2aXJ0
dWFsIHZvaWQgb25VcGdyYWRlTmVlZGVkKGludDY0X3Qgb2xkVmVyc2lvbiwgUGFzc1JlZlB0cjxX
ZWJDb3JlOjpJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+LCBQYXNzUmVmUHRyPFdlYkNv
cmU6OklEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZT4pOworICAgIHZpcnR1YWwgdm9pZCBvblVw
Z3JhZGVOZWVkZWQoaW50NjRfdCBvbGRWZXJzaW9uLCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkRh
dGFiYXNlQmFja2VuZEludGVyZmFjZT4sIGNvbnN0IFdlYkNvcmU6OklEQkRhdGFiYXNlTWV0YWRh
dGEmKTsKIAogICAgIHZvaWQgc2V0RGF0YWJhc2VDYWxsYmFja3MoUGFzc1JlZlB0cjxJREJEYXRh
YmFzZUNhbGxiYWNrc1Byb3h5Pik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5jcHAKaW5kZXggYTI2ZDkwYTk0NzU2YzAyOTU1N2I5ZTdk
OGE5Y2Y4ZmJiYjdhYTM1My4uY2NhNWMyYjIwNjgxNDRlYTkwZDBiZjhmMWI1NmNhYWU0NWRkY2M5
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tz
SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tz
SW1wbC5jcHAKQEAgLTc0LDEwICs3NCwyMyBAQCB2b2lkIFdlYklEQkNhbGxiYWNrc0ltcGw6Om9u
U3VjY2VzcyhXZWJJREJDdXJzb3IqIGN1cnNvciwgY29uc3QgV2ViSURCS2V5JiBrZXksCiB2b2lk
IFdlYklEQkNhbGxiYWNrc0ltcGw6Om9uU3VjY2VzcyhXZWJJREJEYXRhYmFzZSogd2ViS2l0SW5z
dGFuY2UpCiB7CiAgICAgaWYgKG1fZGF0YWJhc2VQcm94eSkgewotICAgICAgICBtX2NhbGxiYWNr
cy0+b25TdWNjZXNzKG1fZGF0YWJhc2VQcm94eS5yZWxlYXNlKCkpOworICAgICAgICBJREJEYXRh
YmFzZU1ldGFkYXRhIG1ldGFkYXRhID0gbV9kYXRhYmFzZVByb3h5LT5tZXRhZGF0YSgpOworICAg
ICAgICBtX2NhbGxiYWNrcy0+b25TdWNjZXNzKG1fZGF0YWJhc2VQcm94eS5yZWxlYXNlKCksIG1l
dGFkYXRhKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBtX2NhbGxiYWNrcy0+b25TdWNj
ZXNzKElEQkRhdGFiYXNlQmFja2VuZFByb3h5OjpjcmVhdGUoYWRvcHRQdHIod2ViS2l0SW5zdGFu
Y2UpKSk7CisgICAgUmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZT4gbG9jYWxEYXRh
YmFzZVByb3h5ID0gSURCRGF0YWJhc2VCYWNrZW5kUHJveHk6OmNyZWF0ZShhZG9wdFB0cih3ZWJL
aXRJbnN0YW5jZSkpOworICAgIElEQkRhdGFiYXNlTWV0YWRhdGEgbWV0YWRhdGEgPSBsb2NhbERh
dGFiYXNlUHJveHktPm1ldGFkYXRhKCk7CisgICAgbV9jYWxsYmFja3MtPm9uU3VjY2Vzcyhsb2Nh
bERhdGFiYXNlUHJveHkucmVsZWFzZSgpLCBtZXRhZGF0YSk7Cit9CisKK3ZvaWQgV2ViSURCQ2Fs
bGJhY2tzSW1wbDo6b25TdWNjZXNzKFdlYklEQkRhdGFiYXNlKiB3ZWJLaXRJbnN0YW5jZSwgY29u
c3QgV2ViSURCTWV0YWRhdGEmIG1ldGFkYXRhKQoreworICAgIGlmIChtX2RhdGFiYXNlUHJveHkp
IHsKKyAgICAgICAgbV9jYWxsYmFja3MtPm9uU3VjY2VzcyhtX2RhdGFiYXNlUHJveHkucmVsZWFz
ZSgpLCBtZXRhZGF0YSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgUmVmUHRyPElEQkRh
dGFiYXNlQmFja2VuZEludGVyZmFjZT4gbG9jYWxEYXRhYmFzZVByb3h5ID0gSURCRGF0YWJhc2VC
YWNrZW5kUHJveHk6OmNyZWF0ZShhZG9wdFB0cih3ZWJLaXRJbnN0YW5jZSkpOworICAgIG1fY2Fs
bGJhY2tzLT5vblN1Y2Nlc3MobG9jYWxEYXRhYmFzZVByb3h5LnJlbGVhc2UoKSwgbWV0YWRhdGEp
OwogfQogCiB2b2lkIFdlYklEQkNhbGxiYWNrc0ltcGw6Om9uU3VjY2Vzcyhjb25zdCBXZWJJREJL
ZXkmIGtleSkKQEAgLTEyMCwxMCArMTMzLDE2IEBAIHZvaWQgV2ViSURCQ2FsbGJhY2tzSW1wbDo6
b25CbG9ja2VkKGxvbmcgbG9uZyBvbGRWZXJzaW9uKQogICAgIG1fY2FsbGJhY2tzLT5vbkJsb2Nr
ZWQob2xkVmVyc2lvbik7CiB9CiAKLXZvaWQgV2ViSURCQ2FsbGJhY2tzSW1wbDo6b25VcGdyYWRl
TmVlZGVkKGxvbmcgbG9uZyBvbGRWZXJzaW9uLCBXZWJJREJUcmFuc2FjdGlvbiogdHJhbnNhY3Rp
b24sIFdlYklEQkRhdGFiYXNlKiBkYXRhYmFzZSkKK3ZvaWQgV2ViSURCQ2FsbGJhY2tzSW1wbDo6
b25VcGdyYWRlTmVlZGVkKGxvbmcgbG9uZyBvbGRWZXJzaW9uLCBXZWJJREJUcmFuc2FjdGlvbios
IFdlYklEQkRhdGFiYXNlKiBkYXRhYmFzZSkKK3sKKyAgICBtX2RhdGFiYXNlUHJveHkgPSBJREJE
YXRhYmFzZUJhY2tlbmRQcm94eTo6Y3JlYXRlKGFkb3B0UHRyKGRhdGFiYXNlKSk7CisgICAgbV9j
YWxsYmFja3MtPm9uVXBncmFkZU5lZWRlZChvbGRWZXJzaW9uLCBtX2RhdGFiYXNlUHJveHksIG1f
ZGF0YWJhc2VQcm94eS0+bWV0YWRhdGEoKSk7Cit9CisKK3ZvaWQgV2ViSURCQ2FsbGJhY2tzSW1w
bDo6b25VcGdyYWRlTmVlZGVkKGxvbmcgbG9uZyBvbGRWZXJzaW9uLCBXZWJJREJEYXRhYmFzZSog
ZGF0YWJhc2UsIGNvbnN0IFdlYklEQk1ldGFkYXRhJiBtZXRhZGF0YSkKIHsKICAgICBtX2RhdGFi
YXNlUHJveHkgPSBJREJEYXRhYmFzZUJhY2tlbmRQcm94eTo6Y3JlYXRlKGFkb3B0UHRyKGRhdGFi
YXNlKSk7Ci0gICAgbV9jYWxsYmFja3MtPm9uVXBncmFkZU5lZWRlZChvbGRWZXJzaW9uLCBJREJU
cmFuc2FjdGlvbkJhY2tlbmRQcm94eTo6Y3JlYXRlKGFkb3B0UHRyKHRyYW5zYWN0aW9uKSksIG1f
ZGF0YWJhc2VQcm94eSk7CisgICAgbV9jYWxsYmFja3MtPm9uVXBncmFkZU5lZWRlZChvbGRWZXJz
aW9uLCBtX2RhdGFiYXNlUHJveHksIG1ldGFkYXRhKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxsYmFj
a3NJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxsYmFja3NJbXBs
LmgKaW5kZXggNGIxMDY0OTFkZWUyNWE1YTc4OGM4OTE5MzcyMzEzOTk0NGRiYjdhYi4uNTFjZDQ2
MGZkOWFlMDU0NjFmZThjZmRjMTNjMTRjZmM2YzllYzljZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuaApAQCAtNTAsNiArNTAsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzcyhjb25zdCBXZWJET01TdHJpbmdMaXN0
Jik7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhXZWJJREJDdXJzb3IqLCBjb25zdCBXZWJJ
REJLZXkmLCBjb25zdCBXZWJJREJLZXkmIHByaW1hcnlLZXksIGNvbnN0IFdlYlNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZSYpOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoV2ViSURCRGF0YWJhc2Uq
KTsKKyAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFdlYklEQkRhdGFiYXNlKiwgY29uc3QgV2Vi
SURCTWV0YWRhdGEmKTsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKGNvbnN0IFdlYklEQktl
eSYpOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoY29uc3QgV2ViU2VyaWFsaXplZFNjcmlw
dFZhbHVlJik7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzcyhjb25zdCBXZWJTZXJpYWxpemVk
U2NyaXB0VmFsdWUmLCBjb25zdCBXZWJJREJLZXkmLCBjb25zdCBXZWJJREJLZXlQYXRoJik7CkBA
IC01OSw2ICs2MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgb25CbG9ja2VkKCk7CiAg
ICAgdmlydHVhbCB2b2lkIG9uQmxvY2tlZChsb25nIGxvbmcgb2xkVmVyc2lvbik7CiAgICAgdmly
dHVhbCB2b2lkIG9uVXBncmFkZU5lZWRlZChsb25nIGxvbmcgb2xkVmVyc2lvbiwgV2ViSURCVHJh
bnNhY3Rpb24qLCBXZWJJREJEYXRhYmFzZSopOworICAgIHZpcnR1YWwgdm9pZCBvblVwZ3JhZGVO
ZWVkZWQobG9uZyBsb25nIG9sZFZlcnNpb24sIFdlYklEQkRhdGFiYXNlKiwgY29uc3QgV2ViSURC
TWV0YWRhdGEmKTsKIAogcHJpdmF0ZToKICAgICBSZWZQdHI8V2ViQ29yZTo6SURCQ2FsbGJhY2tz
PiBtX2NhbGxiYWNrczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMv
SURCQWJvcnRPbkNvcnJ1cHRUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMv
SURCQWJvcnRPbkNvcnJ1cHRUZXN0LmNwcAppbmRleCBkYTdjNmZhMTg2ZDMzZDAyYmViYmNiOGQ2
NzdkYzA0MzMyMDE2ZjNkLi4xMGYxZDVmMzdhOTRkMzI4YjdjMDViZmY0ZDMzYmIxOTYzNzVjOTMx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkFib3J0T25Db3Jy
dXB0VGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJBYm9ydE9u
Q29ycnVwdFRlc3QuY3BwCkBAIC01Nyw3ICs1Nyw3IEBAIHB1YmxpYzoKICAgICB9CiAgICAgdmly
dHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPERPTVN0cmluZ0xpc3Q+KSB7IH0KICAgICB2
aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCQ3Vyc29yQmFja2VuZEludGVyZmFj
ZT4sIFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZT4pIHsgfQotICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFz
c1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+KQorICAgIHZpcnR1YWwgdm9pZCBv
blN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+LCBjb25zdCBJ
REJEYXRhYmFzZU1ldGFkYXRhJikKICAgICB7CiAgICAgICAgIEVYUEVDVF9UUlVFKGZhbHNlKTsK
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkRhdGFi
YXNlQmFja2VuZFRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJEYXRh
YmFzZUJhY2tlbmRUZXN0LmNwcAppbmRleCAzNWE1ZDUwYWYzZTllMjNlMmJhNDUzNzIyYmJlYjhh
OGVlZWUxODU3Li5iMmU0Nzg5MTc0NjQxYjlmMDNmZjVmM2VmMjAyNmFjMTE3YzA4YTM5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkRhdGFiYXNlQmFja2VuZFRl
c3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCRGF0YWJhc2VCYWNr
ZW5kVGVzdC5jcHAKQEAgLTY5LDcgKzY5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBv
bkVycm9yKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4pIE9WRVJSSURFIHsgfQogICAgIHZp
cnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxET01TdHJpbmdMaXN0PikgT1ZFUlJJREUg
eyB9CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkN1cnNvckJhY2tl
bmRJbnRlcmZhY2U+LCBQYXNzUmVmUHRyPElEQktleT4sIFBhc3NSZWZQdHI8SURCS2V5PiwgUGFz
c1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+KSBPVkVSUklERSB7IH0KLSAgICB2aXJ0dWFs
IHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlPikg
T1ZFUlJJREUKKyAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCRGF0YWJh
c2VCYWNrZW5kSW50ZXJmYWNlPiwgY29uc3QgSURCRGF0YWJhc2VNZXRhZGF0YSYpIE9WRVJSSURF
CiAgICAgewogICAgICAgICBtX3dhc1N1Y2Nlc3NEQkNhbGxlZCA9IHRydWU7CiAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185274</attachid>
            <date>2013-01-29 11:28:48 -0800</date>
            <delta_ts>2013-01-29 12:34:23 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-103920-20130129112534.patch</filename>
            <type>text/plain</type>
            <size>23256</size>
            <attacher name="Alec Flett">alecflett</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxMDQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGMyNGQ4OGM0OGE2Yzdm
Zjc3MzFmY2Q3MzVjMDgxYWU0NTA2NzczOS4uZDk5YmU0ZjcyMjlkMzhlMjBkZDM0YzIxNjM2YTA1
ZWNlOWFjOGY1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEzLTAxLTI4ICBBbGVj
IEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IFBh
c3MgbWV0YWRhdGEgaW4gdG8gSURCT3BlbkRCUmVxdWVzdC5vblVwZ3JhZGVOZWVkZWQvb25TdWNj
ZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM5
MjAKKworICAgICAgICBSZXZpZXdlZCBieSBEaW1pdHJpIEdsYXprb3YuCisKKyAgICAgICAgVXBk
YXRlIElEQkNhbGxiYWNrczo6b25TdWNjZXNzIGFuZCBJREJDYWxsYmFja3M6Om9uVXBncmFkZU5l
ZWRlZCB0bworICAgICAgICBwYXNzIHRocm91Z2ggYSBtZXRhZGF0YSBwYXJhbWV0ZXIuIFdoaWxl
IHRoZXJlLCByZW1vdmUgdGhlIHVudXNlZAorICAgICAgICBJREJUcmFuc2FjdGlvbkJhY2tlbmRJ
bnRlcmZhY2UgcGFyYW1ldGVyIHRvIG9uVXBncmFkZU5lZWRlZC4KKworICAgICAgICBBcyB0aGlz
IGlzIGFub3RoZXIgc3RlcCBpbiB0aGUgSURCIHJlZmFjdG9yLCBJJ3ZlIHNpbXBsaWZpZWQgZnV0
dXJlIGNsZWFudXAKKyAgICAgICAgd29yayBieSBtYWtpbmcgdGhlIFdlYktpdCBBUEkgY29kZSBz
dGlsbCB1c2UgdGhlIG9sZCBBUEkuIFRoaXMKKyAgICAgICAgd2lsbCBtYWtlIGl0IHBvc3NpYmxl
IHRvIG91dHJpZ2h0IHJlbW92ZSBjb2RlIG9uIHRoZSBjaHJvbWl1bSBzaWRlIHJhdGhlcgorICAg
ICAgICB0aGFuIGFub3RoZXIgdGhyZWUtc3RlcCBjaGVja2luLgorCisgICAgICAgIE5vIG5ldyB0
ZXN0cywgYXMgdGhpcyBpcyBtb3JlIHJlZmFjdG9yaW5nLgorCisgICAgICAgICogTW9kdWxlcy9p
bmRleGVkZGIvSURCQ2FsbGJhY2tzLmg6CisgICAgICAgIChXZWJDb3JlOjpJREJDYWxsYmFja3M6
Om9uVXBncmFkZU5lZWRlZCk6IG5ldyBtZXRob2Qgc2lnbmF0dXJlLgorICAgICAgICAoV2ViQ29y
ZTo6SURCQ2FsbGJhY2tzOjpvblN1Y2Nlc3MpOiBuZXcgbWV0aG9kIHNpZ25hdHVyZS4KKyAgICAg
ICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZEltcGw6OlZlcnNpb25DaGFuZ2VPcGVyYXRp
b246OnBlcmZvcm0pOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6
cHJvY2Vzc1BlbmRpbmdDYWxscyk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tl
bmRJbXBsOjpvcGVuQ29ubmVjdGlvbik6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURC
T3BlbkRCUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJPcGVuREJSZXF1ZXN0Ojpv
blVwZ3JhZGVOZWVkZWQpOiB1c2UgcGFzc2VkLWluIG1ldGFkYXRhLgorICAgICAgICAoV2ViQ29y
ZTo6SURCT3BlbkRCUmVxdWVzdDo6b25TdWNjZXNzKTogdXNlIHBhc3NlZC1pbiBtZXRhZGF0YS4K
KyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0Lmg6CisgICAgICAg
IChJREJPcGVuREJSZXF1ZXN0KToKKwogMjAxMy0wMS0yOCAgU2ltb24gRnJhc2VyICA8c2ltb24u
ZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBwb3NpdGlvbjpmaXhlZCB0aGF0IGRvZXNuJ3Qg
cmVuZGVyIGFueSBjb250ZW50IHNob3VsZCBub3QgZm9yY2UgY29tcG9zaXRpbmcKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKaW5kZXggMGVjMzgyMzQzYTE2ZWQ4YzYxM2FlMzk2M2M3NWZiNGJiM2Zm
NTk5MC4uYWZlMTJiNDE4NzZkZTlhY2Y1Mzg1NWEwYmFhOTg4ZTkxNDUxYmExZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAxMy0wMS0yOCAgQWxlYyBGbGV0
dCAgPGFsZWNmbGV0dEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBQYXNzIG1l
dGFkYXRhIGluIHRvIElEQk9wZW5EQlJlcXVlc3Qub25VcGdyYWRlTmVlZGVkL29uU3VjY2Vzcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzOTIwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgRGltaXRyaSBHbGF6a292LgorCisgICAgICAgIFN1cHBvcnQg
dGhlIG5ldyBJREJDYWxsYmFja3M6Om9uU3VjY2VzcyBhbmQgSURCQ2FsbGJhY2tzOjpvblVwZ3Jh
ZGVOZWVkZWQKKyAgICAgICAgd2hpbGUgbWFpbnRhaW5pbmcgY2hyb21pdW0gY29tcGF0aWJpbGl0
eSBieSBzaGltbWluZyBpbiB0aGUgb2xkIEFQSQorICAgICAgICBpbiB0aGUgV2ViS2l0IHNpZGUu
IEZ1dHVyZSBjb2RlIHdpbGwgY2xlYW4gdGhpcyB1cCBzbyB0aGF0IGl0IGlzIGp1c3QgYQorICAg
ICAgICBwYXNzLXRocm91Z2ggYXMgaXQgd2FzIGJlZm9yZS4KKworICAgICAgICAqIHB1YmxpYy9X
ZWJJREJDYWxsYmFja3MuaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YklEQkNhbGxiYWNrczo6b25TdWNjZXNzKTogbmV3IG1ldGhvZCBzaWduYXR1cmUuCisgICAgICAg
IChXZWJLaXQ6OldlYklEQkNhbGxiYWNrczo6b25VcGdyYWRlTmVlZGVkKTogbmV3IG1ldGhvZCBz
aWduYXR1cmUuCisgICAgICAgICogc3JjL0lEQkNhbGxiYWNrc1Byb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6SURCQ2FsbGJhY2tzUHJveHk6Om9uU3VjY2Vzcyk6IGNhbGwgb24gbmV3IG1ldGhv
ZCBzaWduYXR1cmUgcHJveGllcyB0aHJvdWdoIG9sZCBBUEkuCisgICAgICAgIChXZWJLaXQpOgor
ICAgICAgICAoV2ViS2l0OjpJREJDYWxsYmFja3NQcm94eTo6b25VcGdyYWRlTmVlZGVkKTogY2Fs
bCBvbiBuZXcgbWV0aG9kIHNpZ25hdHVyZSBwcm94aWVzIHRocm91Z2ggb2xkIEFQSS4KKyAgICAg
ICAgKiBzcmMvSURCQ2FsbGJhY2tzUHJveHkuaDoKKyAgICAgICAgKElEQkNhbGxiYWNrc1Byb3h5
KToKKyAgICAgICAgKiBzcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYklEQkNhbGxiYWNrc0ltcGw6Om9uU3VjY2Vzcyk6IGNhbGwgb24gb2xkIFdlYktpdCBw
cm94eSBzaWduYXR1cmUgY2FsbHMgbmV3IEFQSS4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAg
IChXZWJLaXQ6OldlYklEQkNhbGxiYWNrc0ltcGw6Om9uVXBncmFkZU5lZWRlZCk6IGNhbGwgb24g
b2xkIFdlYktpdCBwcm94eSBzaWduYXR1cmUgY2FsbHMgbmV3IEFQSS4KKyAgICAgICAgKiBzcmMv
V2ViSURCQ2FsbGJhY2tzSW1wbC5oOgorICAgICAgICAoV2ViSURCQ2FsbGJhY2tzSW1wbCk6Cisg
ICAgICAgICogdGVzdHMvSURCQWJvcnRPbkNvcnJ1cHRUZXN0LmNwcDogbmV3IG1ldGhvZCBzaWdu
YXR1cmUuCisgICAgICAgIChXZWJDb3JlOjpNb2NrSURCQ2FsbGJhY2tzOjpvblN1Y2Nlc3MpOgor
ICAgICAgICAqIHRlc3RzL0lEQkRhdGFiYXNlQmFja2VuZFRlc3QuY3BwOiBuZXcgbWV0aG9kIHNp
Z25hdHVyZS4KKwogMjAxMy0wMS0yOCAgVG9tIFNlcGV6ICA8dHNlcGV6QGNocm9taXVtLm9yZz4K
IAogICAgICAgICBbdjhdIFNlY3VyaXR5IGZlYXR1cmU6IEphdmFTY3JpcHQgQmluZGluZ3MgaGFy
ZGVuaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJD
YWxsYmFja3MuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkNhbGxiYWNr
cy5oCmluZGV4IDViMzg2MGI4M2QzN2I0Y2M2MmQ0YWMxZjVmNGY3ZWVlYTExZDhlNTIuLmQ1ZDQ3
YzI0YWQ4N2I5YTQ4MmIyNjlmMjljMTUwN2M3YzM4MjE0NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkNhbGxiYWNrcy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkNhbGxiYWNrcy5oCkBAIC03MSw4ICs3MSw4IEBAIHB1
YmxpYzoKICAgICAvLyBGcm9tIElEQkZhY3Rvcnkub3BlbigpL2RlbGV0ZURhdGFiYXNlKCkKICAg
ICB2aXJ0dWFsIHZvaWQgb25CbG9ja2VkKGludDY0X3QgZXhpc3RpbmdWZXJzaW9uKSB7IEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgLy8gRnJvbSBJREJGYWN0b3J5Lm9wZW4oKQotICAgIHZp
cnR1YWwgdm9pZCBvblVwZ3JhZGVOZWVkZWQoaW50NjRfdCBvbGRWZXJzaW9uLCBQYXNzUmVmUHRy
PElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4sIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VC
YWNrZW5kSW50ZXJmYWNlPikgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQotICAgIHZpcnR1YWwg
dm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+KSB7
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisgICAgdmlydHVhbCB2b2lkIG9uVXBncmFkZU5lZWRl
ZChpbnQ2NF90IG9sZFZlcnNpb24sIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJm
YWNlPiwgY29uc3QgSURCRGF0YWJhc2VNZXRhZGF0YSYpIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7
IH0KKyAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VCYWNr
ZW5kSW50ZXJmYWNlPiwgY29uc3QgSURCRGF0YWJhc2VNZXRhZGF0YSYpIHsgQVNTRVJUX05PVF9S
RUFDSEVEKCk7IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1w
bC5jcHAKaW5kZXggZWUwZTZmOGQxYjg4YWM1MzA5YWY2YTRlM2FiNjcwNTQ2MTI2OWRkMy4uMzJk
ODA0YzAxZDcxN2JjNDM3NTRiNTNmMjgyNTFiZmE5MzhhZDExNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1w
bC5jcHAKQEAgLTEwNjYsNyArMTA2Niw3IEBAIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6
VmVyc2lvbkNoYW5nZU9wZXJhdGlvbjo6cGVyZm9ybShJREJUcmFuc2FjdGlvbkJhY2tlCiAgICAg
fQogICAgIEFTU0VSVCghbV9kYXRhYmFzZS0+bV9wZW5kaW5nU2Vjb25kSGFsZk9wZW4pOwogICAg
IG1fZGF0YWJhc2UtPm1fcGVuZGluZ1NlY29uZEhhbGZPcGVuID0gUGVuZGluZ09wZW5DYWxsOjpj
cmVhdGUobV9jYWxsYmFja3MsIG1fZGF0YWJhc2VDYWxsYmFja3MsIG1fdHJhbnNhY3Rpb25JZCwg
bV92ZXJzaW9uKTsKLSAgICBtX2NhbGxiYWNrcy0+b25VcGdyYWRlTmVlZGVkKG9sZFZlcnNpb24s
IHRyYW5zYWN0aW9uLCBtX2RhdGFiYXNlKTsKKyAgICBtX2NhbGxiYWNrcy0+b25VcGdyYWRlTmVl
ZGVkKG9sZFZlcnNpb24sIG1fZGF0YWJhc2UsIG1fZGF0YWJhc2UtPm1ldGFkYXRhKCkpOwogfQog
CiB2b2lkIElEQkRhdGFiYXNlQmFja2VuZEltcGw6OnRyYW5zYWN0aW9uU3RhcnRlZChQYXNzUmVm
UHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGw+IHBycFRyYW5zYWN0aW9uKQpAQCAtMTEyMyw3
ICsxMTIzLDcgQEAgdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpwcm9jZXNzUGVuZGluZ0Nh
bGxzKCkKICAgICBpZiAobV9wZW5kaW5nU2Vjb25kSGFsZk9wZW4pIHsKICAgICAgICAgQVNTRVJU
KG1fcGVuZGluZ1NlY29uZEhhbGZPcGVuLT52ZXJzaW9uKCkgPT0gbV9tZXRhZGF0YS5pbnRWZXJz
aW9uKTsKICAgICAgICAgQVNTRVJUKG1fbWV0YWRhdGEuaWQgIT0gSW52YWxpZElkKTsKLSAgICAg
ICAgbV9wZW5kaW5nU2Vjb25kSGFsZk9wZW4tPmNhbGxiYWNrcygpLT5vblN1Y2Nlc3ModGhpcyk7
CisgICAgICAgIG1fcGVuZGluZ1NlY29uZEhhbGZPcGVuLT5jYWxsYmFja3MoKS0+b25TdWNjZXNz
KHRoaXMsIHRoaXMtPm1ldGFkYXRhKCkpOwogICAgICAgICBtX3BlbmRpbmdTZWNvbmRIYWxmT3Bl
bi5yZWxlYXNlKCk7CiAgICAgICAgIC8vIEZhbGwgdGhyb3VnaCB3aGVuIGNvbXBsZXRlLCBhcyBw
ZW5kaW5nIGRlbGV0ZXMgbWF5IGJlIChwYXJ0aWFsbHkpIHVuYmxvY2tlZC4KICAgICB9CkBAIC0x
MjA0LDE0ICsxMjA0LDE0IEBAIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6b3BlbkNvbm5l
Y3Rpb24oUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IHBycENhbGxiYWNrCiAgICAgICAgIC8vIEZv
ciB1bml0IHRlc3RzIG9ubHkgLSBza2lwIHVwZ3JhZGUgc3RlcHMuIENhbGxpbmcgZnJvbSBzY3Jp
cHQgd2l0aCBEZWZhdWx0SW50VmVyc2lvbiB0aHJvd3MgZXhjZXB0aW9uLgogICAgICAgICBBU1NF
UlQoaXNOZXdEYXRhYmFzZSk7CiAgICAgICAgIG1fZGF0YWJhc2VDYWxsYmFja3NTZXQuYWRkKGRh
dGFiYXNlQ2FsbGJhY2tzKTsKLSAgICAgICAgY2FsbGJhY2tzLT5vblN1Y2Nlc3ModGhpcyk7Cisg
ICAgICAgIGNhbGxiYWNrcy0+b25TdWNjZXNzKHRoaXMsIHRoaXMtPm1ldGFkYXRhKCkpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCiAgICAgaWYgKHZlcnNpb24gPT0gSURCRGF0YWJhc2VNZXRh
ZGF0YTo6Tm9JbnRWZXJzaW9uKSB7CiAgICAgICAgIGlmICghaXNOZXdEYXRhYmFzZSkgewogICAg
ICAgICAgICAgbV9kYXRhYmFzZUNhbGxiYWNrc1NldC5hZGQoUmVmUHRyPElEQkRhdGFiYXNlQ2Fs
bGJhY2tzPihkYXRhYmFzZUNhbGxiYWNrcykpOwotICAgICAgICAgICAgY2FsbGJhY2tzLT5vblN1
Y2Nlc3ModGhpcyk7CisgICAgICAgICAgICBjYWxsYmFja3MtPm9uU3VjY2Vzcyh0aGlzLCB0aGlz
LT5tZXRhZGF0YSgpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICAv
LyBTcGVjIHNheXM6IElmIG5vIHZlcnNpb24gaXMgc3BlY2lmaWVkIGFuZCBubyBkYXRhYmFzZSBl
eGlzdHMsIHNldCBkYXRhYmFzZSB2ZXJzaW9uIHRvIDEuCkBAIC0xMjI4LDcgKzEyMjgsNyBAQCB2
b2lkIElEQkRhdGFiYXNlQmFja2VuZEltcGw6Om9wZW5Db25uZWN0aW9uKFBhc3NSZWZQdHI8SURC
Q2FsbGJhY2tzPiBwcnBDYWxsYmFjawogICAgIH0KICAgICBBU1NFUlQodmVyc2lvbiA9PSBtX21l
dGFkYXRhLmludFZlcnNpb24pOwogICAgIG1fZGF0YWJhc2VDYWxsYmFja3NTZXQuYWRkKGRhdGFi
YXNlQ2FsbGJhY2tzKTsKLSAgICBjYWxsYmFja3MtPm9uU3VjY2Vzcyh0aGlzKTsKKyAgICBjYWxs
YmFja3MtPm9uU3VjY2Vzcyh0aGlzLCB0aGlzLT5tZXRhZGF0YSgpKTsKIH0KIAogdm9pZCBJREJE
YXRhYmFzZUJhY2tlbmRJbXBsOjpydW5JbnRWZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24oUGFzc1Jl
ZlB0cjxJREJDYWxsYmFja3M+IHBycENhbGxiYWNrcywgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNh
bGxiYWNrcz4gcHJwRGF0YWJhc2VDYWxsYmFja3MsIGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50
NjRfdCByZXF1ZXN0ZWRWZXJzaW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmNwcAppbmRleCAxODZkZWNhODFkYzhmYzJhOGUz
MjA4M2JjYzE3OTlhOWFlYzczYWI2Li45MGY3YWM2ZDZlNmM2MWM3ODQwZmU3YzNkNzg2MzlhN2Zm
MjZiZjFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJP
cGVuREJSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJPcGVuREJSZXF1ZXN0LmNwcApAQCAtNzAsNyArNzAsNyBAQCB2b2lkIElEQk9wZW5EQlJlcXVl
c3Q6Om9uQmxvY2tlZChpbnQ2NF90IG9sZFZlcnNpb24pCiAgICAgZW5xdWV1ZUV2ZW50KElEQlZl
cnNpb25DaGFuZ2VFdmVudDo6Y3JlYXRlKElEQkFueTo6Y3JlYXRlKG9sZFZlcnNpb24pLCBuZXdW
ZXJzaW9uQW55LnJlbGVhc2UoKSwgZXZlbnROYW1lcygpLmJsb2NrZWRFdmVudCkpOwogfQogCi12
b2lkIElEQk9wZW5EQlJlcXVlc3Q6Om9uVXBncmFkZU5lZWRlZChpbnQ2NF90IG9sZFZlcnNpb24s
IFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiwgUGFzc1JlZlB0cjxJ
REJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+IHBycERhdGFiYXNlQmFja2VuZCkKK3ZvaWQgSURC
T3BlbkRCUmVxdWVzdDo6b25VcGdyYWRlTmVlZGVkKGludDY0X3Qgb2xkVmVyc2lvbiwgUGFzc1Jl
ZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+IHBycERhdGFiYXNlQmFja2VuZCwgY29u
c3QgSURCRGF0YWJhc2VNZXRhZGF0YSYgbWV0YWRhdGEpCiB7CiAgICAgSURCX1RSQUNFKCJJREJP
cGVuREJSZXF1ZXN0OjpvblVwZ3JhZGVOZWVkZWQoKSIpOwogICAgIGlmIChtX2NvbnRleHRTdG9w
cGVkIHx8ICFzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpIHsKQEAgLTg1LDkgKzg1LDYgQEAgdm9p
ZCBJREJPcGVuREJSZXF1ZXN0OjpvblVwZ3JhZGVOZWVkZWQoaW50NjRfdCBvbGRWZXJzaW9uLCBQ
YXNzUmVmUHRyPElEQlRyYW5zYWMKICAgICBBU1NFUlQobV9kYXRhYmFzZUNhbGxiYWNrcyk7CiAK
ICAgICBSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlPiBkYXRhYmFzZUJhY2tlbmQg
PSBwcnBEYXRhYmFzZUJhY2tlbmQ7Ci0gICAgLy8gRklYTUU6IFRoaXMgcG90ZW50aWFsbHkgZXhw
ZW5zaXZlIChzeW5jaHJvbm91cykgY2FsbCBpbnRvIHRoZSBiYWNrZW5kIGNvdWxkIGJlIHJlbW92
ZWQgaWYgdGhlIG1ldGFkYXRhCi0gICAgLy8gd2VyZSBwYXNzZWQgaW4gZHVyaW5nIHRoZSAoYXN5
bmNocm9ub3VzKSBvblVwZ3JhZGVOZWVkZWQgY2FsbCBmcm9tIHRoZSBiYWNrZW5kLiBodHRwOi8v
d2tidWcuY29tLzEwMzkyMAotICAgIElEQkRhdGFiYXNlTWV0YWRhdGEgbWV0YWRhdGEgPSBkYXRh
YmFzZUJhY2tlbmQtPm1ldGFkYXRhKCk7CiAKICAgICBSZWZQdHI8SURCRGF0YWJhc2U+IGlkYkRh
dGFiYXNlID0gSURCRGF0YWJhc2U6OmNyZWF0ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIGRh
dGFiYXNlQmFja2VuZCwgbV9kYXRhYmFzZUNhbGxiYWNrcyk7CiAgICAgaWRiRGF0YWJhc2UtPnNl
dE1ldGFkYXRhKG1ldGFkYXRhKTsKQEAgLTk4LDkgKzk1LDEwIEBAIHZvaWQgSURCT3BlbkRCUmVx
dWVzdDo6b25VcGdyYWRlTmVlZGVkKGludDY0X3Qgb2xkVmVyc2lvbiwgUGFzc1JlZlB0cjxJREJU
cmFuc2FjCiAgICAgICAgIC8vIFRoaXMgZGF0YWJhc2UgaGFzbid0IGhhZCBhbiBpbnRlZ2VyIHZl
cnNpb24gYmVmb3JlLgogICAgICAgICBvbGRWZXJzaW9uID0gSURCRGF0YWJhc2VNZXRhZGF0YTo6
RGVmYXVsdEludFZlcnNpb247CiAgICAgfQotICAgIG1ldGFkYXRhLmludFZlcnNpb24gPSBvbGRW
ZXJzaW9uOworICAgIElEQkRhdGFiYXNlTWV0YWRhdGEgb2xkTWV0YWRhdGEobWV0YWRhdGEpOwor
ICAgIG9sZE1ldGFkYXRhLmludFZlcnNpb24gPSBvbGRWZXJzaW9uOwogCi0gICAgbV90cmFuc2Fj
dGlvbiA9IElEQlRyYW5zYWN0aW9uOjpjcmVhdGUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBt
X3RyYW5zYWN0aW9uSWQsIGlkYkRhdGFiYXNlLmdldCgpLCB0aGlzLCBtZXRhZGF0YSk7CisgICAg
bV90cmFuc2FjdGlvbiA9IElEQlRyYW5zYWN0aW9uOjpjcmVhdGUoc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpLCBtX3RyYW5zYWN0aW9uSWQsIGlkYkRhdGFiYXNlLmdldCgpLCB0aGlzLCBvbGRNZXRh
ZGF0YSk7CiAgICAgbV9yZXN1bHQgPSBJREJBbnk6OmNyZWF0ZShpZGJEYXRhYmFzZS5yZWxlYXNl
KCkpOwogCiAgICAgaWYgKG1fdmVyc2lvbiA9PSBJREJEYXRhYmFzZU1ldGFkYXRhOjpOb0ludFZl
cnNpb24pCkBAIC0xMDgsMTYgKzEwNiwxMyBAQCB2b2lkIElEQk9wZW5EQlJlcXVlc3Q6Om9uVXBn
cmFkZU5lZWRlZChpbnQ2NF90IG9sZFZlcnNpb24sIFBhc3NSZWZQdHI8SURCVHJhbnNhYwogICAg
IGVucXVldWVFdmVudChJREJWZXJzaW9uQ2hhbmdlRXZlbnQ6OmNyZWF0ZShJREJBbnk6OmNyZWF0
ZShvbGRWZXJzaW9uKSwgSURCQW55OjpjcmVhdGUobV92ZXJzaW9uKSwgZXZlbnROYW1lcygpLnVw
Z3JhZGVuZWVkZWRFdmVudCkpOwogfQogCi12b2lkIElEQk9wZW5EQlJlcXVlc3Q6Om9uU3VjY2Vz
cyhQYXNzUmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZT4gcHJwQmFja2VuZCkKK3Zv
aWQgSURCT3BlbkRCUmVxdWVzdDo6b25TdWNjZXNzKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VCYWNr
ZW5kSW50ZXJmYWNlPiBwcnBCYWNrZW5kLCBjb25zdCBJREJEYXRhYmFzZU1ldGFkYXRhJiBtZXRh
ZGF0YSkKIHsKICAgICBJREJfVFJBQ0UoIklEQk9wZW5EQlJlcXVlc3Q6Om9uU3VjY2VzcygpIik7
CiAgICAgaWYgKCFzaG91bGRFbnF1ZXVlRXZlbnQoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAg
UmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZT4gYmFja2VuZCA9IHBycEJhY2tlbmQ7
Ci0gICAgLy8gRklYTUU6IFRoaXMgcG90ZW50aWFsbHkgZXhwZW5zaXZlIChzeW5jaHJvbm91cykg
Y2FsbCBpbnRvIHRoZSBiYWNrZW5kIGNvdWxkIGJlIHJlbW92ZWQgaWYgdGhlIG1ldGFkYXRhCi0g
ICAgLy8gd2VyZSBwYXNzZWQgaW4gZHVyaW5nIHRoZSAoYXN5bmNocm9ub3VzKSBvblN1Y2Nlc3Mg
Y2FsbCBmcm9tIHRoZSBiYWNrZW5kLiBodHRwOi8vd2tidWcuY29tLzEwMzkyMAotICAgIElEQkRh
dGFiYXNlTWV0YWRhdGEgbWV0YWRhdGEgPSBiYWNrZW5kLT5tZXRhZGF0YSgpOwogICAgIFJlZlB0
cjxJREJEYXRhYmFzZT4gaWRiRGF0YWJhc2U7CiAgICAgaWYgKG1fcmVzdWx0KSB7CiAgICAgICAg
IGlkYkRhdGFiYXNlID0gbV9yZXN1bHQtPmlkYkRhdGFiYXNlKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmgKaW5kZXggOGJjMDg5
NmJiMzc4MWUxNjRjYjliOTg4OThjYTEzMjNkYWFiMWQ2OS4uMmUyYmViOGUwMTE3YTdlMWU2YjVi
ZmM3MTNjOGNjZGQxNjExMmI0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuaApAQCAtNDIsOCArNDIsOCBAQCBwdWJsaWM6CiAg
ICAgdXNpbmcgSURCUmVxdWVzdDo6b25TdWNjZXNzOwogCiAgICAgdmlydHVhbCB2b2lkIG9uQmxv
Y2tlZChpbnQ2NF90IGV4aXN0aW5nVmVyc2lvbikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lk
IG9uVXBncmFkZU5lZWRlZChpbnQ2NF90IG9sZFZlcnNpb24sIFBhc3NSZWZQdHI8SURCVHJhbnNh
Y3Rpb25CYWNrZW5kSW50ZXJmYWNlPiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbnRl
cmZhY2U+KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8
SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlPikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lk
IG9uVXBncmFkZU5lZWRlZChpbnQ2NF90IG9sZFZlcnNpb24sIFBhc3NSZWZQdHI8SURCRGF0YWJh
c2VCYWNrZW5kSW50ZXJmYWNlPiwgY29uc3QgSURCRGF0YWJhc2VNZXRhZGF0YSYpIE9WRVJSSURF
OworICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tl
bmRJbnRlcmZhY2U+LCBjb25zdCBJREJEYXRhYmFzZU1ldGFkYXRhJikgT1ZFUlJJREU7CiAKICAg
ICAvLyBFdmVudFRhcmdldAogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBpbnRlcmZh
Y2VOYW1lKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJJREJDYWxsYmFja3MuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklE
QkNhbGxiYWNrcy5oCmluZGV4IDA3YzJiODUyYzI5MTNiMzUyYTljYWQ2ODljNzllY2I1NmRiYmQ4
OTIuLjExZDcxNmQzOWU2YTViYjY0MmUzODkzMTg5NjU5NmJlYTJiODRmMjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkNhbGxiYWNrcy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkNhbGxiYWNrcy5oCkBAIC00MCw2ICs0
MCw3IEBAIGNsYXNzIFdlYklEQktleVBhdGg7CiBjbGFzcyBXZWJJREJJbmRleDsKIGNsYXNzIFdl
YklEQlRyYW5zYWN0aW9uOwogY2xhc3MgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlOworc3RydWN0
IFdlYklEQk1ldGFkYXRhOwogCiBjbGFzcyBXZWJJREJDYWxsYmFja3MgewogcHVibGljOgpAQCAt
NTEsNiArNTIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzcyhjb25zdCBX
ZWJET01TdHJpbmdMaXN0JikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICB2
aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFdlYklEQkN1cnNvciosIGNvbnN0IFdlYklEQktleSYga2V5
LCBjb25zdCBXZWJJREJLZXkmIHByaW1hcnlLZXksIGNvbnN0IFdlYlNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZSYpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgdmlydHVhbCB2b2lk
IG9uU3VjY2VzcyhXZWJJREJEYXRhYmFzZSopIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgp
OyB9CisgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhXZWJJREJEYXRhYmFzZSosIGNvbnN0IFdl
YklEQk1ldGFkYXRhJikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICB2aXJ0
dWFsIHZvaWQgb25TdWNjZXNzKGNvbnN0IFdlYklEQktleSYpIHsgV0VCS0lUX0FTU0VSVF9OT1Rf
UkVBQ0hFRCgpOyB9CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzcyhjb25zdCBXZWJTZXJpYWxp
emVkU2NyaXB0VmFsdWUmKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAgIHZp
cnR1YWwgdm9pZCBvblN1Y2Nlc3MoY29uc3QgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlJiwgY29u
c3QgV2ViSURCS2V5JiwgY29uc3QgV2ViSURCS2V5UGF0aCYpIHsgV0VCS0lUX0FTU0VSVF9OT1Rf
UkVBQ0hFRCgpOyB9CkBAIC02Miw2ICs2NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
b25CbG9ja2VkKGxvbmcgbG9uZyBvbGRWZXJzaW9uKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNI
RUQoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3NXaXRoUHJlZmV0Y2goY29uc3QgV2Vi
VmVjdG9yPFdlYklEQktleT4mIGtleXMsIGNvbnN0IFdlYlZlY3RvcjxXZWJJREJLZXk+JiBwcmlt
YXJ5S2V5cywgY29uc3QgV2ViVmVjdG9yPFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mIHZhbHVl
cykgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgb25V
cGdyYWRlTmVlZGVkKGxvbmcgbG9uZyBvbGRWZXJzaW9uLCBXZWJJREJUcmFuc2FjdGlvbiosIFdl
YklEQkRhdGFiYXNlKikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgb25VcGdyYWRlTmVlZGVkKGxvbmcgbG9uZyBvbGRWZXJzaW9uLCBXZWJJREJEYXRh
YmFzZSosIGNvbnN0IFdlYklEQk1ldGFkYXRhJikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVE
KCk7IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJveHkuY3BwCmluZGV4IGY4YTI0NTExMTIwNWVkYzM4
MmNhMTYzMDI0ZTQ1ZTAzYTg1MzA0YWIuLmZhOWExNTYxNGVjYWZiNmVmMWI4ZjZhYzg5YzAxNTBl
N2JhY2VkOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNhbGxi
YWNrc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFj
a3NQcm94eS5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJJREJEYXRhYmFzZUJhY2tl
bmRQcm94eS5oIgogI2luY2x1ZGUgIklEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHkuaCIKICNpbmNs
dWRlICJJREJEYXRhYmFzZUVycm9yLmgiCisjaW5jbHVkZSAiSURCTWV0YWRhdGEuaCIKICNpbmNs
dWRlICJJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UuaCIKICNpbmNsdWRlICJXZWJJREJD
YWxsYmFja3MuaCIKICNpbmNsdWRlICJXZWJJREJDdXJzb3JJbXBsLmgiCkBAIC05MSw2ICs5Miwx
NCBAQCB2b2lkIElEQkNhbGxiYWNrc1Byb3h5OjpvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJEYXRh
YmFzZUJhY2tlbmRJbnRlcmZhY2U+IGJhY2tlbgogICAgIG1fY2FsbGJhY2tzLT5vblN1Y2Nlc3Mo
aW1wbCk7CiB9CiAKK3ZvaWQgSURCQ2FsbGJhY2tzUHJveHk6Om9uU3VjY2VzcyhQYXNzUmVmUHRy
PElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZT4gYmFja2VuZCwgY29uc3QgSURCRGF0YWJhc2VN
ZXRhZGF0YSYpCit7CisgICAgQVNTRVJUKG1fZGF0YWJhc2VDYWxsYmFja3MuZ2V0KCkpOworICAg
IG1fZGlkQ29tcGxldGUgPSB0cnVlOworICAgIFdlYklEQkRhdGFiYXNlSW1wbCogaW1wbCA9IG1f
ZGlkQ3JlYXRlUHJveHkgPyAwIDogbmV3IFdlYklEQkRhdGFiYXNlSW1wbChiYWNrZW5kLCBtX2Rh
dGFiYXNlQ2FsbGJhY2tzLnJlbGVhc2UoKSk7CisgICAgbV9jYWxsYmFja3MtPm9uU3VjY2Vzcyhp
bXBsKTsKK30KKwogdm9pZCBJREJDYWxsYmFja3NQcm94eTo6b25TdWNjZXNzKFBhc3NSZWZQdHI8
SURCS2V5PiBpZGJLZXkpCiB7CiAgICAgbV9kaWRDb21wbGV0ZSA9IHRydWU7CkBAIC0xNTksOCAr
MTY4LDE2IEBAIHZvaWQgSURCQ2FsbGJhY2tzUHJveHk6Om9uQmxvY2tlZChpbnQ2NF90IGV4aXN0
aW5nVmVyc2lvbikKIHZvaWQgSURCQ2FsbGJhY2tzUHJveHk6Om9uVXBncmFkZU5lZWRlZChpbnQ2
NF90IG9sZFZlcnNpb24sIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNl
PiB0cmFuc2FjdGlvbiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+IGRh
dGFiYXNlKQogewogICAgIEFTU0VSVChtX2RhdGFiYXNlQ2FsbGJhY2tzKTsKKyAgICBBU1NFUlQo
IXRyYW5zYWN0aW9uKTsKKyAgICBtX2RpZENyZWF0ZVByb3h5ID0gdHJ1ZTsKKyAgICBtX2NhbGxi
YWNrcy0+b25VcGdyYWRlTmVlZGVkKG9sZFZlcnNpb24sIDAsIG5ldyBXZWJJREJEYXRhYmFzZUlt
cGwoZGF0YWJhc2UsIG1fZGF0YWJhc2VDYWxsYmFja3MpKTsKK30KKwordm9pZCBJREJDYWxsYmFj
a3NQcm94eTo6b25VcGdyYWRlTmVlZGVkKGludDY0X3Qgb2xkVmVyc2lvbiwgUGFzc1JlZlB0cjxJ
REJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+IGRhdGFiYXNlLCBjb25zdCBJREJEYXRhYmFzZU1l
dGFkYXRhJikKK3sKKyAgICBBU1NFUlQobV9kYXRhYmFzZUNhbGxiYWNrcyk7CiAgICAgbV9kaWRD
cmVhdGVQcm94eSA9IHRydWU7Ci0gICAgbV9jYWxsYmFja3MtPm9uVXBncmFkZU5lZWRlZChvbGRW
ZXJzaW9uLCBuZXcgV2ViSURCVHJhbnNhY3Rpb25JbXBsKHRyYW5zYWN0aW9uKSwgbmV3IFdlYklE
QkRhdGFiYXNlSW1wbChkYXRhYmFzZSwgbV9kYXRhYmFzZUNhbGxiYWNrcykpOworICAgIG1fY2Fs
bGJhY2tzLT5vblVwZ3JhZGVOZWVkZWQob2xkVmVyc2lvbiwgMCwgbmV3IFdlYklEQkRhdGFiYXNl
SW1wbChkYXRhYmFzZSwgbV9kYXRhYmFzZUNhbGxiYWNrcykpOwogfQogCiB2b2lkIElEQkNhbGxi
YWNrc1Byb3h5OjpzZXREYXRhYmFzZUNhbGxiYWNrcyhQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2Fs
bGJhY2tzUHJveHk+IGRhdGFiYXNlQ2FsbGJhY2tzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL0lEQkNhbGxiYWNrc1Byb3h5LmgKaW5kZXggYTA1ZTE0Yzk3ZmE2YzU5NzliODZiNjlj
OWYwNmU1YWU5ODNmNDM4MS4uZTQ4MjRhNTA2ODU3MDc1YjM3ZmRhZTFmNmE5NDY0NzdiN2Q2NmY5
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJv
eHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5o
CkBAIC01MCw2ICs1MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBh
c3NSZWZQdHI8V2ViQ29yZTo6RE9NU3RyaW5nTGlzdD4pOwogICAgIHZpcnR1YWwgdm9pZCBvblN1
Y2Nlc3MoUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlPiwgUGFz
c1JlZlB0cjxXZWJDb3JlOjpJREJLZXk+LCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQktleT4gcHJp
bWFyeUtleSwgUGFzc1JlZlB0cjxXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU+KTsKICAg
ICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCRGF0YWJhc2VC
YWNrZW5kSW50ZXJmYWNlPik7CisgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRy
PFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZT4sIGNvbnN0IFdlYkNvcmU6OklE
QkRhdGFiYXNlTWV0YWRhdGEmKTsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQ
dHI8V2ViQ29yZTo6SURCS2V5Pik7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVm
UHRyPFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4pOwogICAgIHZpcnR1YWwgdm9pZCBv
blN1Y2Nlc3MoUGFzc1JlZlB0cjxXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU+LCBQYXNz
UmVmUHRyPFdlYkNvcmU6OklEQktleT4sIGNvbnN0IFdlYkNvcmU6OklEQktleVBhdGgmKTsKQEAg
LTU5LDYgKzYwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3NXaXRoUHJl
ZmV0Y2goY29uc3QgVmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpJREJLZXk+ID4mIGtleXMsIGNvbnN0
IFZlY3RvcjxSZWZQdHI8V2ViQ29yZTo6SURCS2V5PiA+JiBwcmltYXJ5S2V5cywgY29uc3QgVmVj
dG9yPFJlZlB0cjxXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU+ID4mIHZhbHVlcyk7CiAg
ICAgdmlydHVhbCB2b2lkIG9uQmxvY2tlZChpbnQ2NF90IGV4aXN0aW5nVmVyc2lvbik7CiAgICAg
dmlydHVhbCB2b2lkIG9uVXBncmFkZU5lZWRlZChpbnQ2NF90IG9sZFZlcnNpb24sIFBhc3NSZWZQ
dHI8V2ViQ29yZTo6SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiwgUGFzc1JlZlB0cjxX
ZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+KTsKKyAgICB2aXJ0dWFsIHZvaWQg
b25VcGdyYWRlTmVlZGVkKGludDY0X3Qgb2xkVmVyc2lvbiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJ
REJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+LCBjb25zdCBXZWJDb3JlOjpJREJEYXRhYmFzZU1l
dGFkYXRhJik7CiAKICAgICB2b2lkIHNldERhdGFiYXNlQ2FsbGJhY2tzKFBhc3NSZWZQdHI8SURC
RGF0YWJhc2VDYWxsYmFja3NQcm94eT4pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuY3BwCmluZGV4IGExNGVmODk2OTQ1MzdmYThmM2Ni
NDc5YjdiNDRlZmJlM2U4MDJmNjYuLmM0ODU3NGQwZmY0ZTNiOTY2M2VjOGRhZDIzM2YwYzk2ZGFl
YjkyYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkNhbGxi
YWNrc0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkNhbGxi
YWNrc0ltcGwuY3BwCkBAIC03NCwxMCArNzQsMjMgQEAgdm9pZCBXZWJJREJDYWxsYmFja3NJbXBs
OjpvblN1Y2Nlc3MoV2ViSURCQ3Vyc29yKiBjdXJzb3IsIGNvbnN0IFdlYklEQktleSYga2V5LAog
dm9pZCBXZWJJREJDYWxsYmFja3NJbXBsOjpvblN1Y2Nlc3MoV2ViSURCRGF0YWJhc2UqIHdlYktp
dEluc3RhbmNlKQogewogICAgIGlmIChtX2RhdGFiYXNlUHJveHkpIHsKLSAgICAgICAgbV9jYWxs
YmFja3MtPm9uU3VjY2VzcyhtX2RhdGFiYXNlUHJveHkucmVsZWFzZSgpKTsKKyAgICAgICAgSURC
RGF0YWJhc2VNZXRhZGF0YSBtZXRhZGF0YSA9IG1fZGF0YWJhc2VQcm94eS0+bWV0YWRhdGEoKTsK
KyAgICAgICAgbV9jYWxsYmFja3MtPm9uU3VjY2VzcyhtX2RhdGFiYXNlUHJveHkucmVsZWFzZSgp
LCBtZXRhZGF0YSk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgbV9jYWxsYmFja3MtPm9u
U3VjY2VzcyhJREJEYXRhYmFzZUJhY2tlbmRQcm94eTo6Y3JlYXRlKGFkb3B0UHRyKHdlYktpdElu
c3RhbmNlKSkpOworICAgIFJlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+IGxvY2Fs
RGF0YWJhc2VQcm94eSA9IElEQkRhdGFiYXNlQmFja2VuZFByb3h5OjpjcmVhdGUoYWRvcHRQdHIo
d2ViS2l0SW5zdGFuY2UpKTsKKyAgICBJREJEYXRhYmFzZU1ldGFkYXRhIG1ldGFkYXRhID0gbG9j
YWxEYXRhYmFzZVByb3h5LT5tZXRhZGF0YSgpOworICAgIG1fY2FsbGJhY2tzLT5vblN1Y2Nlc3Mo
bG9jYWxEYXRhYmFzZVByb3h5LnJlbGVhc2UoKSwgbWV0YWRhdGEpOworfQorCit2b2lkIFdlYklE
QkNhbGxiYWNrc0ltcGw6Om9uU3VjY2VzcyhXZWJJREJEYXRhYmFzZSogd2ViS2l0SW5zdGFuY2Us
IGNvbnN0IFdlYklEQk1ldGFkYXRhJiBtZXRhZGF0YSkKK3sKKyAgICBpZiAobV9kYXRhYmFzZVBy
b3h5KSB7CisgICAgICAgIG1fY2FsbGJhY2tzLT5vblN1Y2Nlc3MobV9kYXRhYmFzZVByb3h5LnJl
bGVhc2UoKSwgbWV0YWRhdGEpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIFJlZlB0cjxJ
REJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+IGxvY2FsRGF0YWJhc2VQcm94eSA9IElEQkRhdGFi
YXNlQmFja2VuZFByb3h5OjpjcmVhdGUoYWRvcHRQdHIod2ViS2l0SW5zdGFuY2UpKTsKKyAgICBt
X2NhbGxiYWNrcy0+b25TdWNjZXNzKGxvY2FsRGF0YWJhc2VQcm94eS5yZWxlYXNlKCksIG1ldGFk
YXRhKTsKIH0KIAogdm9pZCBXZWJJREJDYWxsYmFja3NJbXBsOjpvblN1Y2Nlc3MoY29uc3QgV2Vi
SURCS2V5JiBrZXkpCkBAIC0xMTUsMTAgKzEyOCwxNiBAQCB2b2lkIFdlYklEQkNhbGxiYWNrc0lt
cGw6Om9uQmxvY2tlZChsb25nIGxvbmcgb2xkVmVyc2lvbikKICAgICBtX2NhbGxiYWNrcy0+b25C
bG9ja2VkKG9sZFZlcnNpb24pOwogfQogCi12b2lkIFdlYklEQkNhbGxiYWNrc0ltcGw6Om9uVXBn
cmFkZU5lZWRlZChsb25nIGxvbmcgb2xkVmVyc2lvbiwgV2ViSURCVHJhbnNhY3Rpb24qIHRyYW5z
YWN0aW9uLCBXZWJJREJEYXRhYmFzZSogZGF0YWJhc2UpCit2b2lkIFdlYklEQkNhbGxiYWNrc0lt
cGw6Om9uVXBncmFkZU5lZWRlZChsb25nIGxvbmcgb2xkVmVyc2lvbiwgV2ViSURCVHJhbnNhY3Rp
b24qLCBXZWJJREJEYXRhYmFzZSogZGF0YWJhc2UpCit7CisgICAgbV9kYXRhYmFzZVByb3h5ID0g
SURCRGF0YWJhc2VCYWNrZW5kUHJveHk6OmNyZWF0ZShhZG9wdFB0cihkYXRhYmFzZSkpOworICAg
IG1fY2FsbGJhY2tzLT5vblVwZ3JhZGVOZWVkZWQob2xkVmVyc2lvbiwgbV9kYXRhYmFzZVByb3h5
LCBtX2RhdGFiYXNlUHJveHktPm1ldGFkYXRhKCkpOworfQorCit2b2lkIFdlYklEQkNhbGxiYWNr
c0ltcGw6Om9uVXBncmFkZU5lZWRlZChsb25nIGxvbmcgb2xkVmVyc2lvbiwgV2ViSURCRGF0YWJh
c2UqIGRhdGFiYXNlLCBjb25zdCBXZWJJREJNZXRhZGF0YSYgbWV0YWRhdGEpCiB7CiAgICAgbV9k
YXRhYmFzZVByb3h5ID0gSURCRGF0YWJhc2VCYWNrZW5kUHJveHk6OmNyZWF0ZShhZG9wdFB0cihk
YXRhYmFzZSkpOwotICAgIG1fY2FsbGJhY2tzLT5vblVwZ3JhZGVOZWVkZWQob2xkVmVyc2lvbiwg
SURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHk6OmNyZWF0ZShhZG9wdFB0cih0cmFuc2FjdGlvbikp
LCBtX2RhdGFiYXNlUHJveHkpOworICAgIG1fY2FsbGJhY2tzLT5vblVwZ3JhZGVOZWVkZWQob2xk
VmVyc2lvbiwgbV9kYXRhYmFzZVByb3h5LCBtZXRhZGF0YSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ2Fs
bGJhY2tzSW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tz
SW1wbC5oCmluZGV4IDRiOWYwZjg1NjhiOGI0ZmVkYTVhOGM1ZGE4YmMxYzY4MDIwZmRmNDAuLjBh
YWM1ZWJkNjJhNDU2Y2ZiZmMxMjdmNDg3OWQxOTQwOWEzODVjMzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmgKQEAgLTUwLDYgKzUwLDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoY29uc3QgV2ViRE9NU3RyaW5n
TGlzdCYpOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoV2ViSURCQ3Vyc29yKiwgY29uc3Qg
V2ViSURCS2V5JiwgY29uc3QgV2ViSURCS2V5JiBwcmltYXJ5S2V5LCBjb25zdCBXZWJTZXJpYWxp
emVkU2NyaXB0VmFsdWUmKTsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFdlYklEQkRhdGFi
YXNlKik7CisgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhXZWJJREJEYXRhYmFzZSosIGNvbnN0
IFdlYklEQk1ldGFkYXRhJik7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzcyhjb25zdCBXZWJJ
REJLZXkmKTsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKGNvbnN0IFdlYlNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZSYpOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoY29uc3QgV2ViU2VyaWFs
aXplZFNjcmlwdFZhbHVlJiwgY29uc3QgV2ViSURCS2V5JiwgY29uc3QgV2ViSURCS2V5UGF0aCYp
OwpAQCAtNTgsNiArNTksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzcygp
OwogICAgIHZpcnR1YWwgdm9pZCBvbkJsb2NrZWQobG9uZyBsb25nIG9sZFZlcnNpb24pOwogICAg
IHZpcnR1YWwgdm9pZCBvblVwZ3JhZGVOZWVkZWQobG9uZyBsb25nIG9sZFZlcnNpb24sIFdlYklE
QlRyYW5zYWN0aW9uKiwgV2ViSURCRGF0YWJhc2UqKTsKKyAgICB2aXJ0dWFsIHZvaWQgb25VcGdy
YWRlTmVlZGVkKGxvbmcgbG9uZyBvbGRWZXJzaW9uLCBXZWJJREJEYXRhYmFzZSosIGNvbnN0IFdl
YklEQk1ldGFkYXRhJik7CiAKIHByaXZhdGU6CiAgICAgUmVmUHRyPFdlYkNvcmU6OklEQkNhbGxi
YWNrcz4gbV9jYWxsYmFja3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL0lEQkFib3J0T25Db3JydXB0VGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL0lEQkFib3J0T25Db3JydXB0VGVzdC5jcHAKaW5kZXggMGYzNThlZjk0NTUxY2JiNGU2YWE2
OTcxZTdjZjE0YzNkNDdhZWRhOS4uNzE1NzRhY2EzYWY4ZTg5OGVjNDZjNmVmZGQ2ZjI3YWZkODRj
ZTg3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJBYm9ydE9u
Q29ycnVwdFRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCQWJv
cnRPbkNvcnJ1cHRUZXN0LmNwcApAQCAtNTcsNyArNTcsNyBAQCBwdWJsaWM6CiAgICAgfQogICAg
IHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxET01TdHJpbmdMaXN0PikgeyB9CiAg
ICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkN1cnNvckJhY2tlbmRJbnRl
cmZhY2U+LCBQYXNzUmVmUHRyPElEQktleT4sIFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0
cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+KSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNz
KFBhc3NSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlPikKKyAgICB2aXJ0dWFsIHZv
aWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlPiwgY29u
c3QgSURCRGF0YWJhc2VNZXRhZGF0YSYpCiAgICAgewogICAgICAgICBFWFBFQ1RfVFJVRShmYWxz
ZSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJE
YXRhYmFzZUJhY2tlbmRUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURC
RGF0YWJhc2VCYWNrZW5kVGVzdC5jcHAKaW5kZXggNWEyZjhmZjU0NDE4N2UwNWM0ZTc1MGRiYjVk
ZWFlMjFlZTI2YzgyMi4uOWE3MDc3M2QyM2MyYzE1NTQ0NTc5ZDAxOGY0YmFhYjdkODgxODgzMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJEYXRhYmFzZUJhY2tl
bmRUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkRhdGFiYXNl
QmFja2VuZFRlc3QuY3BwCkBAIC02OSw3ICs2OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgb25FcnJvcihQYXNzUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+KSBPVkVSUklERSB7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8RE9NU3RyaW5nTGlzdD4pIE9WRVJS
SURFIHsgfQogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJDdXJzb3JC
YWNrZW5kSW50ZXJmYWNlPiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPElEQktleT4s
IFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPikgT1ZFUlJJREUgeyB9Ci0gICAgdmly
dHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFj
ZT4pIE9WRVJSSURFCisgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkRh
dGFiYXNlQmFja2VuZEludGVyZmFjZT4sIGNvbnN0IElEQkRhdGFiYXNlTWV0YWRhdGEmKSBPVkVS
UklERQogICAgIHsKICAgICAgICAgbV93YXNTdWNjZXNzREJDYWxsZWQgPSB0cnVlOwogICAgIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>