<?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>146710</bug_id>
          
          <creation_ts>2015-07-07 22:34:53 -0700</creation_ts>
          <short_desc>Move PingLoaders to the NetworkingProcess</short_desc>
          <delta_ts>2015-07-09 08:20:54 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>146754</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>ap</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>japhet</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1107674</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-07-07 22:34:53 -0700</bug_when>
    <thetext>Move PingLoaders to the NetworkingProcess

&lt;rdar://problem/18860263&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107839</commentid>
    <comment_count>1</comment_count>
      <attachid>256395</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-07-08 12:29:00 -0700</bug_when>
    <thetext>Created attachment 256395
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107877</commentid>
    <comment_count>2</comment_count>
      <attachid>256403</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-07-08 13:59:14 -0700</bug_when>
    <thetext>Created attachment 256403
Patch v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107880</commentid>
    <comment_count>3</comment_count>
      <attachid>256403</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-07-08 14:08:33 -0700</bug_when>
    <thetext>Comment on attachment 256403
Patch v2

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

&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:262
&gt; +    WebFrame* webFrame = webFrameLoaderClient ? webFrameLoaderClient-&gt;webFrame() : 0;

nullptr!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107890</commentid>
    <comment_count>4</comment_count>
      <attachid>256407</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-07-08 14:47:09 -0700</bug_when>
    <thetext>Created attachment 256407
Patch for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107891</commentid>
    <comment_count>5</comment_count>
      <attachid>256407</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2015-07-08 14:52:46 -0700</bug_when>
    <thetext>Comment on attachment 256407
Patch for landing.

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

&gt; Source/WebCore/platform/network/PingHandle.h:65
&gt; +    virtual bool usesAsyncCallbacks() { return m_usesAsyncCallbacks == UsesAsyncCallbacks::Yes; }

This needs to be marked override or it will cause a compiler error since we compile with -Winconsistent-missing-override.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107893</commentid>
    <comment_count>6</comment_count>
      <attachid>256408</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2015-07-08 15:00:22 -0700</bug_when>
    <thetext>Created attachment 256408
Patch for landing

Added keyword override to the declaration of PingHandle::usesAsyncCallbacks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107894</commentid>
    <comment_count>7</comment_count>
      <attachid>256409</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-07-08 15:04:22 -0700</bug_when>
    <thetext>Created attachment 256409
Patch for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107895</commentid>
    <comment_count>8</comment_count>
      <attachid>256408</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-07-08 15:07:19 -0700</bug_when>
    <thetext>Comment on attachment 256408
Patch for landing

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

Finally! :)

&gt; Source/WebCore/ChangeLog:9
&gt; +        There&apos;s no current solution for communicating back to a page that a ping load has reached its target.

We could have the ping target change some global state (usually it&apos;s a file on disk), and then another document could poll the state.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107896</commentid>
    <comment_count>9</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2015-07-08 15:10:55 -0700</bug_when>
    <thetext>&lt;rdar://problem/18860263&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107900</commentid>
    <comment_count>10</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-07-08 15:38:21 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Comment on attachment 256408 [details]
&gt; Patch for landing
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=256408&amp;action=review
&gt; 
&gt; Finally! :)
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:9
&gt; &gt; +        There&apos;s no current solution for communicating back to a page that a ping load has reached its target.
&gt; 
&gt; We could have the ping target change some global state (usually it&apos;s a file
&gt; on disk), and then another document could poll the state.

That was my first idea, but then I realized that:
- Tests that rely on files on disk on the httpd side are often fragile
- Tests that rely on polling are... gross

I actually played around with running two php scripts and IPC&apos;ing between them, and I think that will actually work, but there&apos;s a steep learning curve incompatible with getting this frick&apos;in bug fix in!

I will revisit it soon - it&apos;s on my white board :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107901</commentid>
    <comment_count>11</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-07-08 15:39:21 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; &lt;rdar://problem/18860263&gt;

That was in comment 1 ;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107910</commentid>
    <comment_count>12</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-07-08 15:47:57 -0700</bug_when>
    <thetext>*** Bug 138688 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107914</commentid>
    <comment_count>13</comment_count>
      <attachid>256409</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-07-08 15:54:47 -0700</bug_when>
    <thetext>Comment on attachment 256409
Patch for landing.

Clearing flags on attachment: 256409

Committed r186530: &lt;http://trac.webkit.org/changeset/186530&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1108194</commentid>
    <comment_count>14</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-07-09 08:05:20 -0700</bug_when>
    <thetext>&gt; - Tests that rely on files on disk on the httpd side are often fragile

They actually aren&apos;t any more, as long as written carefully. We now make sure to have unique names (usually by using a sanitized test path name as temporary file name), and that works pretty reliably, even in most stress testing scenarios.

Some CGI scripts get the name implicitly (from Referer header field), others get it explicitly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1108195</commentid>
    <comment_count>15</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-07-09 08:20:54 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; &gt; - Tests that rely on files on disk on the httpd side are often fragile
&gt; 
&gt; They actually aren&apos;t any more, as long as written carefully. We now make
&gt; sure to have unique names (usually by using a sanitized test path name as
&gt; temporary file name), and that works pretty reliably, even in most stress
&gt; testing scenarios.
&gt; 
&gt; Some CGI scripts get the name implicitly (from Referer header field), others
&gt; get it explicitly.

Good to know.

I could be able to use that plus a script that polls for the file before responding. That way the test itself won&apos;t have to poll the server - it can just wait for the response.

But as long as I&apos;m polling for a file in php to do adhoc IPC between scripts, I could just use one of the &quot;real&quot; PHP IPC mechanisms.

Will revisit soon.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256395</attachid>
            <date>2015-07-08 12:29:00 -0700</date>
            <delta_ts>2015-07-08 13:59:14 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>27038</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA1YWUzM2E1Li40ZGY1ZmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEg
QEAKKzIwMTUtMDctMDggIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIE1vdmUgUGluZ0xvYWRlcnMgdG8gdGhlIE5ldHdvcmtpbmdQcm9jZXNzLgorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMTg4NjAyNjM+IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTQ2NzEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLgorICAgICAgICBUaGVyZSdzIG5vIGN1cnJlbnQgc29s
dXRpb24gZm9yIGNvbW11bmljYXRpbmcgYmFjayB0byBhIHBhZ2UgdGhhdCBhIHBpbmcgbG9hZCBo
YXMgcmVhY2hlZCBpdHMgdGFyZ2V0LgorICAgICAgICBVbnRpbCB3ZSBoYXZlIHN1Y2ggYSBzb2x1
dGlvbiwgYW55IGF0dGVtcHQgYXQgYSBsYXlvdXQgdGVzdCB3aWxsIGJlIGZyYWdpbGUgYXQgYmVz
dC4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgCisgICAgICAgICogbG9hZGVyL0xvYWRlclN0cmF0ZWd5LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkxvYWRlclN0cmF0ZWd5OjpjcmVhdGVQaW5nSGFuZGxlKTogRGVmYXVsdCBpbXBsZW1lbnRh
dGlvbiBpcyBjcmVhdGUgdGhlIFBpbmdIYW5kbGUgZGlyZWN0bHkuCisgICAgICAgICogbG9hZGVy
L0xvYWRlclN0cmF0ZWd5Lmg6CisKKyAgICAgICAgUGluZ0xvYWRlciBiZWNvbWVzIGEgc3RhdGlj
IGNsYXNzIGZvciBub3cgdGhhdCBjcmFmdHMgdGhlIFJlc291cmNlUmVxdWVzdCB0aGVuIHBhc3Nl
cyBpdCBvZmYKKyAgICAgICAgdG8gdGhlIExvYWRlclN0cmF0ZWd5OiAgICAgICAgCisgICAgICAg
ICogbG9hZGVyL1BpbmdMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGluZ0xvYWRlcjo6
bG9hZEltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlBpbmdMb2FkZXI6OnNlbmRQaW5nKToKKyAg
ICAgICAgKFdlYkNvcmU6OlBpbmdMb2FkZXI6OnNlbmRWaW9sYXRpb25SZXBvcnQpOgorICAgICAg
ICAoV2ViQ29yZTo6UGluZ0xvYWRlcjo6c3RhcnRQaW5nTG9hZCk6CisgICAgICAgIChXZWJDb3Jl
OjpQaW5nTG9hZGVyOjpjcmVhdGVQaW5nTG9hZGVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlBpbmdMb2FkZXI6OlBpbmdMb2FkZXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
UGluZ0xvYWRlcjo6flBpbmdMb2FkZXIpOiBEZWxldGVkLgorICAgICAgICAqIGxvYWRlci9QaW5n
TG9hZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpQaW5nTG9hZGVyOjp0aW1lb3V0VGltZXJGaXJl
ZCk6IERlbGV0ZWQuCisKKyAgICAgICAgUGluZ0hhbmRsZSBkb2VzIHdoYXQgUGluZ0xvYWRlciB1
c2VkIHRvIC0gSXQncyBhIGJhc2ljIFJlc291cmNlSGFuZGxlQ2xpZW50IHRoYXQgc2ltcGx5IHdh
aXRzCisgICAgICAgIGZvciBhbnkgcmVzcG9uc2UvY29tcGxldGlvbi9mYWlsdXJlIGFuZCB0aGVu
IGRlbGV0ZXMgaXRzZWxmLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUGluZ0hhbmRsZS5o
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBpbmdIYW5kbGU6OlBpbmdIYW5kbGUpOgorICAg
ICAgICAoV2ViQ29yZTo6UGluZ0hhbmRsZTo6dXNlc0FzeW5jQ2FsbGJhY2tzKToKKyAgICAgICAg
KFdlYkNvcmU6OlBpbmdIYW5kbGU6OnRpbWVvdXRUaW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNv
cmU6OlBpbmdIYW5kbGU6On5QaW5nSGFuZGxlKToKKwogMjAxNS0wNy0wOCAgRXJpYyBDYXJsc29u
ICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBbTWFjXSBUd28gY2xpY2tzIHJl
cXVpcmVkIHRvIGVuYWJsZSBBaXJQbGF5IGF0IHlvdXR1YmUuY29tCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNmQ0ZGRjOS4uMWM4
NWE3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMjAxMyw2ICsyMDEzLDcgQEAKIAkJNTFBRjUwMzYxNkYxMDBGNjAwOTVCMkU4
IC8qIFJlc291cmNlTG9hZGVyVHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUxQUY1MDM1MTZGMTAwRjYwMDk1QjJFOCAvKiBSZXNvdXJjZUxvYWRl
clR5cGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJNTFCMDdBNDQxODIzMjQ4QjAwQUE4RDFBIC8qIElEQlBlbmRpbmdEZWxldGVDYWxsLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUIwN0E0MzE4MjMy
NDhCMDBBQThEMUEgLyogSURCUGVuZGluZ0RlbGV0ZUNhbGwuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MUIyNDE3QjBEOTMxRjNGMDBFODNGNUMg
LyogTGVnYWN5V2ViQXJjaGl2ZU1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUxQjI0MTdBMEQ5MzFGM0YwMEU4M0Y1QyAvKiBMZWdhY3lXZWJBcmNo
aXZlTWFjLm1tICovOyB9OworCQk1MUI0NTRFQTFCNERBRTdEMDA4NUVBQTYgLyogUGluZ0hhbmRs
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFCNDU0
RTkxQjREQUU3RDAwODVFQUE2IC8qIFBpbmdIYW5kbGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MUI0NUQyMDFBQjhEMUUyMDAxMTdDRDIgLyog
Q29udGVudEV4dGVuc2lvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MUI0NUQxRTFBQjhEMUUyMDAxMTdDRDIgLyogQ29udGVudEV4dGVuc2lvbi5j
cHAgKi87IH07CiAJCTUxQjQ1RDIxMUFCOEQxRTIwMDExN0NEMiAvKiBDb250ZW50RXh0ZW5zaW9u
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUI0NUQx
RjFBQjhEMUUyMDAxMTdDRDIgLyogQ29udGVudEV4dGVuc2lvbi5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxQjU4RkQ0MTk1QTk2NEQwMDI5OTBC
MCAvKiBQbGF0Zm9ybUdhbWVwYWQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUxNUU1RkVGMTk1MTAxNDcwMDg2Q0E1RSAvKiBQbGF0Zm9ybUdhbWVwYWQu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtOTI1
MCw2ICs5MjUxLDcgQEAKIAkJNTFBRjUwMzUxNkYxMDBGNjAwOTVCMkU4IC8qIFJlc291cmNlTG9h
ZGVyVHlwZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVzb3VyY2VMb2Fk
ZXJUeXBlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUIwN0E0MzE4MjMyNDhC
MDBBQThEMUEgLyogSURCUGVuZGluZ0RlbGV0ZUNhbGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSURCUGVuZGluZ0RlbGV0ZUNhbGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTFCMjQxN0EwRDkzMUYzRjAwRTgzRjVDIC8qIExlZ2FjeVdlYkFyY2hpdmVNYWMu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBMZWdhY3lXZWJBcmNo
aXZlTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MUI0NTRFOTFCNERBRTdE
MDA4NUVBQTYgLyogUGluZ0hhbmRsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBQaW5nSGFuZGxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxQjQ1RDFFMUFC
OEQxRTIwMDExN0NEMiAvKiBDb250ZW50RXh0ZW5zaW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IENvbnRlbnRFeHRlbnNpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1MUI0NUQxRjFBQjhEMUUyMDAxMTdDRDIgLyogQ29udGVudEV4dGVuc2lv
bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb250ZW50RXh0ZW5zaW9uLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxQkUzN0RFMERBRUUwMEUwMDEwODVGQyAv
KiBTdG9yYWdlQXJlYS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdG9yYWdl
QXJlYS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTY3OTcsNiArMTY3OTksNyBA
QAogCQkJCUUxM0VGMzQyMTY4NEVDRjQwMDM0QzgzRiAvKiBOZXR3b3JrU3RvcmFnZVNlc3Npb24u
aCAqLywKIAkJCQk0NDc5NTgwMjE2NDNCNDdCMDAxRTBBN0YgLyogUGFyc2VkQ29udGVudFR5cGUu
Y3BwICovLAogCQkJCTQ0Nzk1ODAzMTY0M0I0N0IwMDFFMEE3RiAvKiBQYXJzZWRDb250ZW50VHlw
ZS5oICovLAorCQkJCTUxQjQ1NEU5MUI0REFFN0QwMDg1RUFBNiAvKiBQaW5nSGFuZGxlLmggKi8s
CiAJCQkJRTE0MjRDODkxNjRCM0I0RTAwRjMyRDQwIC8qIFBsYXRmb3JtQ29va2llSmFyLmggKi8s
CiAJCQkJMzdCQUFFNTcxOTgwRDFERDAwNURGRTcxIC8qIFByb3RlY3Rpb25TcGFjZS5oICovLAog
CQkJCTUxNEM3NjVGMENFOTIzQTEwMDdFRjNDRCAvKiBQcm90ZWN0aW9uU3BhY2VCYXNlLmNwcCAq
LywKQEAgLTIyNzE1LDggKzIyNzE4LDYgQEAKIAkJCQk4QUE2MUNGRDE0NEQ1OTVCMDBGMzczNTAg
LyogV2ViS2l0Q1NTUmVnaW9uUnVsZS5jcHAgKi8sCiAJCQkJOEFBNjFDRkUxNDRENTk1QjAwRjM3
MzUwIC8qIFdlYktpdENTU1JlZ2lvblJ1bGUuaCAqLywKIAkJCQk4QUQwQTU1NjE0Qzg3NDI1MDAw
RDgzQzUgLyogV2ViS2l0Q1NTUmVnaW9uUnVsZS5pZGwgKi8sCi0JCQkJNkM2Q0NBQUUxOURDNDJC
OTAwNDNENURCIC8qIFdlYktpdENTU1Jlc291cmNlVmFsdWUuY3BwICovLAotCQkJCTZDNkNDQUFG
MTlEQzQyQjkwMDQzRDVEQiAvKiBXZWJLaXRDU1NSZXNvdXJjZVZhbHVlLmggKi8sCiAJCQkJQkM5
QUREN0YwQ0M0MDkyMjAwMDk4QzRDIC8qIFdlYktpdENTU1RyYW5zZm9ybVZhbHVlLmNwcCAqLywK
IAkJCQlCQzlBREQyMjBDQzQwMzI2MDAwOThDNEMgLyogV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUu
aCAqLywKIAkJCQkzMTYxMUU1NDBFMUM0RDRBMDBGNkE1NzkgLyogV2ViS2l0Q1NTVHJhbnNmb3Jt
VmFsdWUuaWRsICovLApAQCAtMjUyMjQsNiArMjUyMjUsNyBAQAogCQkJCUZERjdFOUM0MTNBQzIx
REIwMEE1MUVBQyAvKiBKU0F1ZGlvQnVmZmVyQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJ
CUZEQTE1RUEwMTJCMDNFRTEwMDNBNTgzQSAvKiBKU0F1ZGlvQnVmZmVyU291cmNlTm9kZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRkRBMTVFQTYxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9Db250
ZXh0LmggaW4gSGVhZGVycyAqLywKKwkJCQk1MUI0NTRFQTFCNERBRTdEMDA4NUVBQTYgLyogUGlu
Z0hhbmRsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkRBMTVFQTgxMkIwM0VFMTAwM0E1ODNBIC8q
IEpTQXVkaW9EZXN0aW5hdGlvbk5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEQTE1RUFFMTJC
MDNFRTEwMDNBNTgzQSAvKiBKU0F1ZGlvTGlzdGVuZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUZE
QTE1RUIwMTJCMDNFRTEwMDNBNTgzQSAvKiBKU0F1ZGlvTm9kZS5oIGluIEhlYWRlcnMgKi8sCkBA
IC0yNTg2NSw3ICsyNTg2Nyw2IEBACiAJCQkJOTMzMDlERjgwOTlFNjQ5MjAwNTZFNTgxIC8qIG1h
cmt1cC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTcyOEMzMTQxMjY4RTQzOTAwNDFFODlCIC8qIE1h
cmt1cEFjY3VtdWxhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkwMEM2MEUzRjEzRDc2RDdFMDA5
MkEyNzUgLyogTWFya3VwVG9rZW5pemVySW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNkM1
NjhDQjExOURBRkVBMDAwNDMwQ0EyIC8qIE1hc2tJbWFnZU9wZXJhdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRkFCRTcyRjUxMDU5QzFFQjAwRDk5OUREIC8qIE1hdGhNTEVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTQ0QTI4QUFDMTJERkI4QUMwMEFFOTIzQiAvKiBNYXRoTUxFbGVtZW50
RmFjdG9yeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkFCRTcyRjcxMDU5QzFFQjAwRDk5OUREIC8q
IE1hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjYyODMs
NyArMjYyODQsNiBAQAogCQkJCTBGNTgwQ0ZGMEYxMkRFOUIwMDUxRDY4OSAvKiBSZW5kZXJMYXll
ckJhY2tpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNTgwQ0ZEMEYxMkRFOUIwMDUxRDY4OSAv
KiBSZW5kZXJMYXllckNvbXBvc2l0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTUwRDEwRDlBMTU0
NUY1NzYwMDk2RDI4OCAvKiBSZW5kZXJMYXllckZpbHRlckluZm8uaCBpbiBIZWFkZXJzICovLAot
CQkJCTZDQkZFNEE1MTlFQkYyRDQwMENBMkY5RCAvKiBSZW5kZXJMYXllck1hc2tJbWFnZUluZm8u
aCBpbiBIZWFkZXJzICovLAogCQkJCTNDMjQ0RkVBQTM3NUFDNjMzRjg4QkU2RiAvKiBSZW5kZXJM
YXllck1vZGVsT2JqZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQkwQkUwMzBBMjBGMzExMkZCMDAz
QzFBNDYgLyogUmVuZGVyTGluZUJveExpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRUE0ODY0
MDk3RDkzMDIwMDk0QzlFNCAvKiBSZW5kZXJMaW5lQnJlYWsuaCBpbiBIZWFkZXJzICovLApAQCAt
MjcyMzQsNyArMjcyMzQsNiBAQAogCQkJCTMxMDYwMzcwMTQzMjdEMkUwMEFCRjRCQSAvKiBXZWJL
aXRDU1NGaWx0ZXJWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDk4MzkxNTkwRjFFNzc2OTAw
QzIzNzgyIC8qIFdlYktpdENTU01hdHJpeC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOEFBNjFEMDAx
NDRENTk1QjAwRjM3MzUwIC8qIFdlYktpdENTU1JlZ2lvblJ1bGUuaCBpbiBIZWFkZXJzICovLAot
CQkJCTZDNkNDQUIxMTlEQzQyQjkwMDQzRDVEQiAvKiBXZWJLaXRDU1NSZXNvdXJjZVZhbHVlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCQzlBREQyMzBDQzQwMzI2MDAwOThDNEMgLyogV2ViS2l0Q1NT
VHJhbnNmb3JtVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTNGRkZGOUE5MTU5RDlBNTUwMDIw
QkJENSAvKiBXZWJLaXRDU1NWaWV3cG9ydFJ1bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDNDhB
NkQxMTkxQzlENjUwMDAyNjY3NCAvKiBXZWJLaXROYW1lc3BhY2UuaCBpbiBIZWFkZXJzICovLApA
QCAtMjk0NjgsNyArMjk0NjcsNiBAQAogCQkJCTFBOEY2QkM1MERCNTVDREMwMDFEQjc5NCAvKiBN
YW5pZmVzdFBhcnNlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzMwOURGNzA5OUU2NDkyMDA1
NkU1ODEgLyogbWFya3VwLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3MjhDMzEzMTI2OEU0Mzkw
MDQxRTg5QiAvKiBNYXJrdXBBY2N1bXVsYXRvci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk2QzU2
OENCMDE5REFGRUEwMDA0MzBDQTIgLyogTWFza0ltYWdlT3BlcmF0aW9uLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUZBQkU3MkY0MTA1OUMxRUIwMEQ5OTlERCAvKiBNYXRoTUxFbGVtZW50LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUZBQkU3MkZEMTA1OUMyMTEwMEQ5OTlERCAvKiBNYXRoTUxFbGVt
ZW50RmFjdG9yeS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGQUJFNzJGNjEwNTlDMUVCMDBEOTk5
REQgLyogTWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKQEAg
LTMwNTUwLDcgKzMwNTQ4LDYgQEAKIAkJCQkzMTA2MDM2RjE0MzI3RDJFMDBBQkY0QkEgLyogV2Vi
S2l0Q1NTRmlsdGVyVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDk4MzkxNTgwRjFFNzc2
OTAwQzIzNzgyIC8qIFdlYktpdENTU01hdHJpeC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4QUE2
MUNGRjE0NEQ1OTVCMDBGMzczNTAgLyogV2ViS2l0Q1NTUmVnaW9uUnVsZS5jcHAgaW4gU291cmNl
cyAqLywKLQkJCQk2QzZDQ0FCMDE5REM0MkI5MDA0M0Q1REIgLyogV2ViS2l0Q1NTUmVzb3VyY2VW
YWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzlBREQ4MDBDQzQwOTIyMDAwOThDNEMgLyog
V2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJM0ZGRkY5QTgx
NTlEOUE1NTAwMjBCQkQ1IC8qIFdlYktpdENTU1ZpZXdwb3J0UnVsZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkxQTE0MTRCNTEzQTBGMDUwMDAxOTk5NkMgLyogV2ViS2l0Rm9udEZhbWlseU5hbWVz
LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xv
YWRlclN0cmF0ZWd5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Mb2FkZXJTdHJhdGVneS5j
cHAKaW5kZXggODk5ZmQ1Mi4uNGJiODljOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0xvYWRlclN0cmF0ZWd5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTG9hZGVy
U3RyYXRlZ3kuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiTG9hZGVyU3RyYXRlZ3ku
aCIKIAogI2luY2x1ZGUgIkJsb2JSZWdpc3RyeUltcGwuaCIKKyNpbmNsdWRlICJQaW5nSGFuZGxl
LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRT
Y2hlZHVsZXIuaCIKIApAQCAtNDcsNCArNDgsMTAgQEAgQmxvYlJlZ2lzdHJ5KiBMb2FkZXJTdHJh
dGVneTo6Y3JlYXRlQmxvYlJlZ2lzdHJ5KCkKICAgICByZXR1cm4gbmV3IEJsb2JSZWdpc3RyeUlt
cGw7CiB9CiAKK3ZvaWQgTG9hZGVyU3RyYXRlZ3k6OmNyZWF0ZVBpbmdIYW5kbGUoTmV0d29ya2lu
Z0NvbnRleHQqIG5ldHdvcmtpbmdDb250ZXh0LCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJv
b2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UpCit7CisgICAgLy8gUGluZ0hhbmRsZSBtYW5h
Z2VzIGl0cyBvd24gbGlmZXRpbWUsIGRlbGV0aW5nIGl0c2VsZiB3aGVuIGl0cyBwdXJwb3NlIGhh
cyBiZWVuIGZ1bGZpbGxlZC4KKyAgICBuZXcgUGluZ0hhbmRsZShuZXR3b3JraW5nQ29udGV4dCwg
cmVxdWVzdCwgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsIFBpbmdIYW5kbGU6OlVzZXNBc3lu
Y0NhbGxiYWNrczo6Tm8pOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTG9hZGVyU3RyYXRlZ3kuaCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9Mb2FkZXJTdHJhdGVneS5oCmluZGV4IDRiN2UxZmEuLmUxNjUzYTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Mb2FkZXJTdHJhdGVneS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Mb2FkZXJTdHJhdGVneS5oCkBAIC0zMiw2ICszMiw3IEBACiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIEJsb2JSZWdpc3RyeTsKK2NsYXNzIEZyYW1lOwogY2xhc3Mg
TmV0d29ya2luZ0NvbnRleHQ7CiBjbGFzcyBSZXNvdXJjZUVycm9yOwogY2xhc3MgUmVzb3VyY2VM
b2FkU2NoZWR1bGVyOwpAQCAtNDYsNiArNDcsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIEJs
b2JSZWdpc3RyeSogY3JlYXRlQmxvYlJlZ2lzdHJ5KCk7CiAKKyAgICB2aXJ0dWFsIHZvaWQgY3Jl
YXRlUGluZ0hhbmRsZShOZXR3b3JraW5nQ29udGV4dCosIFJlc291cmNlUmVxdWVzdCYsIGJvb2wg
c2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UpOworCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB+
TG9hZGVyU3RyYXRlZ3koKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9QaW5nTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmNwcApp
bmRleCAwNGE2OGIxLi41ODljODQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
UGluZ0xvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuY3Bw
CkBAIC0zOSw3ICszOSw5IEBACiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKICNpbmNs
dWRlICJIVFRQSGVhZGVyTmFtZXMuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b24uaCIKKyNpbmNsdWRlICJMb2FkZXJTdHJhdGVneS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKKyNp
bmNsdWRlICJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCIKICNpbmNsdWRlICJQcm9ncmVzc1RyYWNrZXIu
aCIKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVz
dC5oIgpAQCAtNjQsNyArNjYsNyBAQCB2b2lkIFBpbmdMb2FkZXI6OmxvYWRJbWFnZShGcmFtZSYg
ZnJhbWUsIGNvbnN0IFVSTCYgdXJsKQogICAgICAgICByZXF1ZXN0LnNldEhUVFBSZWZlcnJlcihy
ZWZlcnJlcik7CiAgICAgZnJhbWUubG9hZGVyKCkuYWRkRXh0cmFGaWVsZHNUb1N1YnJlc291cmNl
UmVxdWVzdChyZXF1ZXN0KTsKIAotICAgIGNyZWF0ZVBpbmdMb2FkZXIoZnJhbWUsIHJlcXVlc3Qp
OworICAgIHN0YXJ0UGluZ0xvYWQoZnJhbWUsIHJlcXVlc3QpOwogfQogCiAvLyBodHRwOi8vd3d3
LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211bHRpcGFnZS9saW5rcy5o
dG1sI2h5cGVybGluay1hdWRpdGluZwpAQCAtOTAsNyArOTIsNyBAQCB2b2lkIFBpbmdMb2FkZXI6
OnNlbmRQaW5nKEZyYW1lJiBmcmFtZSwgY29uc3QgVVJMJiBwaW5nVVJMLCBjb25zdCBVUkwmIGRl
c3RpbmF0aQogICAgICAgICB9CiAgICAgfQogCi0gICAgY3JlYXRlUGluZ0xvYWRlcihmcmFtZSwg
cmVxdWVzdCk7CisgICAgc3RhcnRQaW5nTG9hZChmcmFtZSwgcmVxdWVzdCk7CiB9CiAKIHZvaWQg
UGluZ0xvYWRlcjo6c2VuZFZpb2xhdGlvblJlcG9ydChGcmFtZSYgZnJhbWUsIGNvbnN0IFVSTCYg
cmVwb3J0VVJMLCBQYXNzUmVmUHRyPEZvcm1EYXRhPiByZXBvcnQpCkBAIC0xMDUsMTcgKzEwNywx
MCBAQCB2b2lkIFBpbmdMb2FkZXI6OnNlbmRWaW9sYXRpb25SZXBvcnQoRnJhbWUmIGZyYW1lLCBj
b25zdCBVUkwmIHJlcG9ydFVSTCwgUGFzc1JlZgogICAgIGlmICghcmVmZXJyZXIuaXNFbXB0eSgp
KQogICAgICAgICByZXF1ZXN0LnNldEhUVFBSZWZlcnJlcihyZWZlcnJlcik7CiAKLSAgICBjcmVh
dGVQaW5nTG9hZGVyKGZyYW1lLCByZXF1ZXN0KTsKKyAgICBzdGFydFBpbmdMb2FkKGZyYW1lLCBy
ZXF1ZXN0KTsKIH0KIAotdm9pZCBQaW5nTG9hZGVyOjpjcmVhdGVQaW5nTG9hZGVyKEZyYW1lJiBm
cmFtZSwgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIC8vIE5vIG5lZWQgdG8gZnJl
ZSB0aGUgUGluZ0xvYWRlciBvYmplY3Qgb3IgbWFuYWdlIGl0IHZpYSBhIHNtYXJ0IHBvaW50ZXIg
LSBpdCB3aWxsIGtpbGwgaXRzZWxmIGFzIHNvb24gYXMgaXQgcmVjZWl2ZXMgYSByZXNwb25zZS4K
LSAgICBuZXcgUGluZ0xvYWRlcihmcmFtZSwgcmVxdWVzdCk7Ci19Ci0KLVBpbmdMb2FkZXI6OlBp
bmdMb2FkZXIoRnJhbWUmIGZyYW1lLCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi0gICAgOiBt
X3RpbWVvdXQoKnRoaXMsICZQaW5nTG9hZGVyOjp0aW1lb3V0VGltZXJGaXJlZCkKK3ZvaWQgUGlu
Z0xvYWRlcjo6c3RhcnRQaW5nTG9hZChGcmFtZSYgZnJhbWUsIFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCkKIHsKICAgICB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIgPSBmcmFtZS5wYWdlKCktPnBy
b2dyZXNzKCkuY3JlYXRlVW5pcXVlSWRlbnRpZmllcigpOwogICAgIC8vIEZJWE1FOiBXaHkgYWN0
aXZlRG9jdW1lbnRMb2FkZXI/IEkgd291bGQgaGF2ZSBleHBlY3RlZCBkb2N1bWVudExvYWRlcigp
LgpAQCAtMTIzLDIwICsxMTgsMTEgQEAgUGluZ0xvYWRlcjo6UGluZ0xvYWRlcihGcmFtZSYgZnJh
bWUsIFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKICAgICAvLyBEb2N1bWVudCBpbiB0aGUgRnJh
bWUsIGJ1dCB0aGUgYWN0aXZlRG9jdW1lbnRMb2FkZXIgd2lsbCBiZSBhc3NvY2lhdGVkCiAgICAg
Ly8gd2l0aCB0aGUgcHJvdmlzaW9uYWwgRG9jdW1lbnRMb2FkZXIgaWYgdGhlcmUgaXMgYSBwcm92
aXNpb25hbAogICAgIC8vIERvY3VtZW50TG9hZGVyLgotICAgIG1fc2hvdWxkVXNlQ3JlZGVudGlh
bFN0b3JhZ2UgPSBmcmFtZS5sb2FkZXIoKS5jbGllbnQoKS5zaG91bGRVc2VDcmVkZW50aWFsU3Rv
cmFnZShmcmFtZS5sb2FkZXIoKS5hY3RpdmVEb2N1bWVudExvYWRlcigpLCBpZGVudGlmaWVyKTsK
LSAgICBtX2hhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUoZnJhbWUubG9hZGVyKCkubmV0
d29ya2luZ0NvbnRleHQoKSwgcmVxdWVzdCwgdGhpcywgZmFsc2UsIGZhbHNlKTsKKyAgICBib29s
IHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlID0gZnJhbWUubG9hZGVyKCkuY2xpZW50KCkuc2hv
dWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UoZnJhbWUubG9hZGVyKCkuYWN0aXZlRG9jdW1lbnRMb2Fk
ZXIoKSwgaWRlbnRpZmllcik7CiAKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmNvbnRp
bnVlQWZ0ZXJQaW5nTG9hZGVyKGZyYW1lLCBpZGVudGlmaWVyLCBmcmFtZS5sb2FkZXIoKS5hY3Rp
dmVEb2N1bWVudExvYWRlcigpLCByZXF1ZXN0LCBSZXNvdXJjZVJlc3BvbnNlKCkpOwogCi0gICAg
Ly8gSWYgdGhlIHNlcnZlciBuZXZlciByZXNwb25kcywgRnJhbWVMb2FkZXIgd29uJ3QgYmUgYWJs
ZSB0byBjYW5jZWwgdGhpcyBsb2FkIGFuZAotICAgIC8vIHdlJ2xsIHNpdCBoZXJlIHdhaXRpbmcg
Zm9yZXZlci4gU2V0IGEgdmVyeSBnZW5lcm91cyB0aW1lb3V0LCBqdXN0IGluIGNhc2UuCi0gICAg
bV90aW1lb3V0LnN0YXJ0T25lU2hvdCg2MDAwMCk7Ci19Ci0KLVBpbmdMb2FkZXI6On5QaW5nTG9h
ZGVyKCkKLXsKLSAgICBpZiAobV9oYW5kbGUpCi0gICAgICAgIG1faGFuZGxlLT5jYW5jZWwoKTsK
KyAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bG9hZGVyU3RyYXRlZ3koKS0+Y3JlYXRlUGluZ0hh
bmRsZShmcmFtZS5sb2FkZXIoKS5uZXR3b3JraW5nQ29udGV4dCgpLCByZXF1ZXN0LCBzaG91bGRV
c2VDcmVkZW50aWFsU3RvcmFnZSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9QaW5nTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRlci5o
CmluZGV4IDUxNWQ5N2QuLjhmNmJkYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9QaW5nTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuaApA
QCAtMzIsNDggKzMyLDIxIEBACiAjaWZuZGVmIFBpbmdMb2FkZXJfaAogI2RlZmluZSBQaW5nTG9h
ZGVyX2gKIAotI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlQ2xpZW50LmgiCi0jaW5jbHVkZSAiVGlt
ZXIuaCIKLSNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRy
Lmg+Ci0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRm9ybURhdGE7CiBjbGFzcyBGcmFt
ZTsKIGNsYXNzIFVSTDsKLWNsYXNzIFJlc291cmNlRXJyb3I7Ci1jbGFzcyBSZXNvdXJjZUhhbmRs
ZTsKLWNsYXNzIFJlc291cmNlUmVzcG9uc2U7CitjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CiAKLS8v
IFRoaXMgY2xhc3MgdHJpZ2dlcnMgYXN5bmNocm9ub3VzIGxvYWRzIGluZGVwZW5kZW50IG9mIEZy
YW1lIHN0YXlpbmcgYWxpdmUgKGkuZS4sIGF1ZGl0aW5nIHBpbmdiYWNrcykuCi0vLyBTaW5jZSBu
b3RoaW5nIGRlcGVuZHMgb24gcmVzb3VyY2VzIGxvYWRlZCB0aHJvdWdoIHRoaXMgY2xhc3MsIHdl
IGp1c3Qgd2FudAotLy8gdG8gYWxsb3cgdGhlIGxvYWQgdG8gbGl2ZSBsb25nIGVub3VnaCB0byBl
bnN1cmUgdGhlIG1lc3NhZ2Ugd2FzIGFjdHVhbGx5IHNlbnQuCi0vLyBUaGVyZWZvcmUsIGFzIHNv
b24gYXMgYSBjYWxsYmFjayBpcyByZWNlaXZlZCBmcm9tIHRoZSBSZXNvdXJjZUhhbmRsZSwgdGhp
cyBjbGFzcyAKLS8vIHdpbGwgY2FuY2VsIHRoZSBsb2FkIGFuZCBkZWxldGUgaXRzZWxmLgotY2xh
c3MgUGluZ0xvYWRlciA6IHByaXZhdGUgUmVzb3VyY2VIYW5kbGVDbGllbnQgewotICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKFBpbmdMb2FkZXIpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK2Ns
YXNzIFBpbmdMb2FkZXIgewogcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGxvYWRJbWFnZShGcmFt
ZSYsIGNvbnN0IFVSTCYpOwogICAgIHN0YXRpYyB2b2lkIHNlbmRQaW5nKEZyYW1lJiwgY29uc3Qg
VVJMJiBwaW5nVVJMLCBjb25zdCBVUkwmIGRlc3RpbmF0aW9uVVJMKTsKICAgICBzdGF0aWMgdm9p
ZCBzZW5kVmlvbGF0aW9uUmVwb3J0KEZyYW1lJiwgY29uc3QgVVJMJiByZXBvcnRVUkwsIFBhc3NS
ZWZQdHI8Rm9ybURhdGE+IHJlcG9ydCk7CiAKLSAgICB2aXJ0dWFsIH5QaW5nTG9hZGVyKCk7Ci0K
IHByaXZhdGU6Ci0gICAgc3RhdGljIHZvaWQgY3JlYXRlUGluZ0xvYWRlcihGcmFtZSYsIFJlc291
cmNlUmVxdWVzdCYpOwotICAgIFBpbmdMb2FkZXIoRnJhbWUmLCBSZXNvdXJjZVJlcXVlc3QmKTsK
LQotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJikgb3ZlcnJpZGUgeyBkZWxldGUgdGhpczsgfQotICAgIHZp
cnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqLCB1
bnNpZ25lZCwgaW50KSBvdmVycmlkZSB7IGRlbGV0ZSB0aGlzOyB9Ci0gICAgdmlydHVhbCB2b2lk
IGRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBkb3VibGUpIG92ZXJyaWRlIHsgZGVs
ZXRlIHRoaXM7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChSZXNvdXJjZUhhbmRsZSosIGNv
bnN0IFJlc291cmNlRXJyb3ImKSBvdmVycmlkZSB7IGRlbGV0ZSB0aGlzOyB9Ci0gICAgdmlydHVh
bCBib29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKFJlc291cmNlSGFuZGxlKikgIG92ZXJy
aWRlIHsgcmV0dXJuIG1fc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2U7IH0KLSAgICB2b2lkIHRp
bWVvdXRUaW1lckZpcmVkKCkgeyBkZWxldGUgdGhpczsgfQotCi0gICAgUmVmUHRyPFJlc291cmNl
SGFuZGxlPiBtX2hhbmRsZTsKLSAgICBUaW1lciBtX3RpbWVvdXQ7Ci0gICAgYm9vbCBtX3Nob3Vs
ZFVzZUNyZWRlbnRpYWxTdG9yYWdlOworICAgIHN0YXRpYyB2b2lkIHN0YXJ0UGluZ0xvYWQoRnJh
bWUmLCBSZXNvdXJjZVJlcXVlc3QmKTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvUGluZ0hhbmRsZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9QaW5nSGFuZGxlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uNTE4ZjVlOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvUGluZ0hhbmRsZS5oCkBAIC0wLDAgKzEsODIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFBpbmdIYW5kbGVfaAorI2RlZmluZSBQ
aW5nSGFuZGxlX2gKKworI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlLmgiCisjaW5jbHVkZSAiUmVz
b3VyY2VIYW5kbGVDbGllbnQuaCIKKyNpbmNsdWRlICJUaW1lci5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKKy8vIFRoaXMgY2xhc3MgdHJpZ2dlcnMgYXN5bmNocm9ub3VzIGxvYWRzIGluZGVw
ZW5kZW50IG9mIHRoZSBuZXR3b3JraW5nIGNvbnRleHQgc3RheWluZyBhbGl2ZSAoaS5lLiwgYXVk
aXRpbmcgcGluZ2JhY2tzKS4KKy8vIFRoZSBvYmplY3QganVzdCBuZWVkcyB0byBsaXZlIGxvbmcg
ZW5vdWdoIHRvIGVuc3VyZSB0aGUgbWVzc2FnZSB3YXMgYWN0dWFsbHkgc2VudC4KKy8vIEFzIHNv
b24gYXMgYW55IGNhbGxiYWNrIGlzIHJlY2VpdmVkIGZyb20gdGhlIFJlc291cmNlSGFuZGxlLCB0
aGlzIGNsYXNzIHdpbGwgY2FuY2VsIHRoZSBsb2FkIGFuZCBkZWxldGUgaXRzZWxmLgorCitjbGFz
cyBQaW5nSGFuZGxlIDogcHJpdmF0ZSBSZXNvdXJjZUhhbmRsZUNsaWVudCB7CisgICAgV1RGX01B
S0VfTk9OQ09QWUFCTEUoUGluZ0hhbmRsZSk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVi
bGljOgorICAgIGVudW0gY2xhc3MgVXNlc0FzeW5jQ2FsbGJhY2tzIHsKKyAgICAgICAgWWVzLAor
ICAgICAgICBObywKKyAgICB9OworICAgIAorICAgIFBpbmdIYW5kbGUoTmV0d29ya2luZ0NvbnRl
eHQqIG5ldHdvcmtpbmdDb250ZXh0LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJv
b2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsIFVzZXNBc3luY0NhbGxiYWNrcyB1c2VBc3lu
Y0NhbGxiYWNrcykKKyAgICAgICAgOiBtX3RpbWVvdXRUaW1lcigqdGhpcywgJlBpbmdIYW5kbGU6
OnRpbWVvdXRUaW1lckZpcmVkKQorICAgICAgICAsIG1fc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3Jh
Z2Uoc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UpCisgICAgICAgICwgbV91c2VzQXN5bmNDYWxs
YmFja3ModXNlQXN5bmNDYWxsYmFja3MpCisgICAgeworICAgICAgICBtX2hhbmRsZSA9IFJlc291
cmNlSGFuZGxlOjpjcmVhdGUobmV0d29ya2luZ0NvbnRleHQsIHJlcXVlc3QsIHRoaXMsIGZhbHNl
LCBmYWxzZSk7CisKKyAgICAgICAgLy8gSWYgdGhlIHNlcnZlciBuZXZlciByZXNwb25kcywgdGhp
cyBvYmplY3Qgd2lsbCBoYW5nIGFyb3VuZCBmb3JldmVyLgorICAgICAgICAvLyBTZXQgYSB2ZXJ5
IGdlbmVyb3VzIHRpbWVvdXQsIGp1c3QgaW4gY2FzZS4KKyAgICAgICAgbV90aW1lb3V0VGltZXIu
c3RhcnRPbmVTaG90KDYwMDAwKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCB2b2lk
IGRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmKSBvdmVycmlkZSB7IGRlbGV0ZSB0aGlzOyB9CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciosIHVuc2lnbmVkLCBpbnQpIG92ZXJy
aWRlIHsgZGVsZXRlIHRoaXM7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhS
ZXNvdXJjZUhhbmRsZSosIGRvdWJsZSkgb3ZlcnJpZGUgeyBkZWxldGUgdGhpczsgfQorICAgIHZp
cnR1YWwgdm9pZCBkaWRGYWlsKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJvciYp
IG92ZXJyaWRlIHsgZGVsZXRlIHRoaXM7IH0KKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVXNlQ3Jl
ZGVudGlhbFN0b3JhZ2UoUmVzb3VyY2VIYW5kbGUqKSAgb3ZlcnJpZGUgeyByZXR1cm4gbV9zaG91
bGRVc2VDcmVkZW50aWFsU3RvcmFnZTsgfQorICAgIHZpcnR1YWwgYm9vbCB1c2VzQXN5bmNDYWxs
YmFja3MoKSB7IHJldHVybiBtX3VzZXNBc3luY0NhbGxiYWNrcyA9PSBVc2VzQXN5bmNDYWxsYmFj
a3M6OlllczsgfQorICAgIHZvaWQgdGltZW91dFRpbWVyRmlyZWQoKSB7IGRlbGV0ZSB0aGlzOyB9
CisKKyAgICB2aXJ0dWFsIH5QaW5nSGFuZGxlKCkKKyAgICB7CisgICAgICAgIGlmIChtX2hhbmRs
ZSkKKyAgICAgICAgICAgIG1faGFuZGxlLT5jYW5jZWwoKTsKKyAgICB9CisKKyAgICBSZWZQdHI8
UmVzb3VyY2VIYW5kbGU+IG1faGFuZGxlOworICAgIFRpbWVyIG1fdGltZW91dFRpbWVyOworICAg
IGJvb2wgbV9zaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZTsKKyAgICBVc2VzQXN5bmNDYWxsYmFj
a3MgbV91c2VzQXN5bmNDYWxsYmFja3M7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZiAvLyBQaW5nSGFuZGxlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAzNzM3Y2EwLi5iMzcwZDAxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTUtMDctMDggIEJyYWR5IEVpZHNvbiAgPGJl
aWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIE1vdmUgUGluZ0xvYWRlcnMgdG8gdGhlIE5ldHdv
cmtpbmdQcm9jZXNzLgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTg4NjAyNjM+IGFuZCBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2NzEwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpsb2FkUGluZyk6IENyZWF0ZSBhIFBpbmdIYW5kbGUgYW5k
IHRoZW4gcmV0dXJuLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgIAorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVQaW5nSGFuZGxlKTogSWYgdGhlIE5l
dHdvcmsgcHJvY2VzcyBpcyBlbmFibGVkLAorICAgICAgICAgIGNvbXBpbGUgdGhlIGFwcHJvcHJp
YXRlIGxvYWQgcGFyYW1ldGVycyBhbmQgdGhlbiBtZXNzYWdlIHRvIGl0LgorICAgICAgICAgIE90
aGVyd2lzZSwgdXNlIHRoZSBkZWZhdWx0IGluLXByb2Nlc3MgUGluZ0hhbmRsZS4KKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oOgorCiAy
MDE1LTA3LTA4ICBCZXRoIERha2luICA8YmRha2luQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQg
YWN0aW9ucyB0byBpbWFnZSBwcmV2aWV3cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmlu
ZGV4IDU0ZGUzYzQuLjY1YmEyZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAg
LTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJOZXR3b3JrUmVzb3VyY2VMb2FkZXJNZXNzYWdlcy5o
IgogI2luY2x1ZGUgIlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiU2Vzc2lv
blRyYWNrZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1BpbmdIYW5kbGUuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1BsYXRmb3JtQ29va2llSmFyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUxv
YWRlck9wdGlvbnMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgpAQCAt
MTI2LDYgKzEyNywxNCBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpwZXJm
b3JtU3luY2hyb25vdXNMb2FkKGNvbnN0IE5ldHdvcmtSZXNvdXJjZQogICAgIGxvYWRlci0+c3Rh
cnQoKTsKIH0KIAordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6bG9hZFBpbmco
Y29uc3QgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmIGxvYWRQYXJhbWV0ZXJzKQorewor
ICAgIFJlZlB0cjxOZXR3b3JraW5nQ29udGV4dD4gY29udGV4dCA9IFJlbW90ZU5ldHdvcmtpbmdD
b250ZXh0OjpjcmVhdGUobG9hZFBhcmFtZXRlcnMuc2Vzc2lvbklELCBsb2FkUGFyYW1ldGVycy5z
aG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KTsKKworICAgIC8vIFBpbmdI
YW5kbGUgbWFuYWdlcyBpdHMgb3duIGxpZmV0aW1lLCBkZWxldGluZyBpdHNlbGYgd2hlbiBpdHMg
cHVycG9zZSBoYXMgYmVlbiBmdWxmaWxsZWQuCisgICAgbmV3IFBpbmdIYW5kbGUoY29udGV4dC5n
ZXQoKSwgbG9hZFBhcmFtZXRlcnMucmVxdWVzdCwgbG9hZFBhcmFtZXRlcnMuYWxsb3dTdG9yZWRD
cmVkZW50aWFscyA9PSBBbGxvd1N0b3JlZENyZWRlbnRpYWxzLCBQaW5nSGFuZGxlOjpVc2VzQXN5
bmNDYWxsYmFja3M6Olllcyk7Cit9CisKIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OnJlbW92ZUxvYWRJZGVudGlmaWVyKFJlc291cmNlTG9hZElkZW50aWZpZXIgaWRlbnRpZmll
cikKIHsKICAgICBSZWZQdHI8TmV0d29ya1Jlc291cmNlTG9hZGVyPiBsb2FkZXIgPSBtX25ldHdv
cmtSZXNvdXJjZUxvYWRlcnMuZ2V0KGlkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBiL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmgKaW5kZXggMzJhMzEwNS4uODIyZGU1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBA
IC03Miw2ICs3Miw3IEBAIHByaXZhdGU6CiAgICAgCiAgICAgdm9pZCBzY2hlZHVsZVJlc291cmNl
TG9hZChjb25zdCBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyYpOwogICAgIHZvaWQgcGVy
Zm9ybVN5bmNocm9ub3VzTG9hZChjb25zdCBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyYs
IFBhc3NSZWZQdHI8TWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpQZXJm
b3JtU3luY2hyb25vdXNMb2FkOjpEZWxheWVkUmVwbHk+KTsKKyAgICB2b2lkIGxvYWRQaW5nKGNv
bnN0IE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJik7CiAKICAgICB2b2lkIHJlbW92ZUxv
YWRJZGVudGlmaWVyKFJlc291cmNlTG9hZElkZW50aWZpZXIpOwogICAgIHZvaWQgc2V0RGVmZXJz
TG9hZGluZyhSZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBib29sKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1l
c3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggMDNiM2RkNC4uNGMwYTdhZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTI2LDYgKzI2LDcg
QEAgbWVzc2FnZXMgLT4gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgTGVnYWN5UmVjZWl2
ZXIgewogCiAgICAgU2NoZWR1bGVSZXNvdXJjZUxvYWQoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VM
b2FkUGFyYW1ldGVycyByZXNvdXJjZUxvYWRQYXJhbWV0ZXJzKQogICAgIFBlcmZvcm1TeW5jaHJv
bm91c0xvYWQoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyByZXNvdXJjZUxv
YWRQYXJhbWV0ZXJzKSAtPiAoV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvciwgV2ViQ29yZTo6
UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwgVmVjdG9yPGNoYXI+IGRhdGEpIERlbGF5ZWQKKyAg
ICBMb2FkUGluZyhXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIHJlc291cmNl
TG9hZFBhcmFtZXRlcnMpCiAgICAgUmVtb3ZlTG9hZElkZW50aWZpZXIodWludDY0X3QgcmVzb3Vy
Y2VMb2FkSWRlbnRpZmllcikKICAgICBTZXREZWZlcnNMb2FkaW5nKHVpbnQ2NF90IHJlc291cmNl
TG9hZElkZW50aWZpZXIsIGJvb2wgZGVmZXJzKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRl
Z2llcy5jcHAKaW5kZXggMDQxMzkzMC4uZWJlMDEwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1T
dHJhdGVnaWVzLmNwcApAQCAtNTUsNiArNTUsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUdy
b3VwLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUNvb2tpZUphci5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvUGxhdGZvcm1QYXN0ZWJvYXJkLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Qcm9ncmVz
c1RyYWNrZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU3RvcmFnZU5hbWVzcGFj
ZS5oPgpAQCAtMjQ4LDYgKzI0OSwyOCBAQCB2b2lkIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6bG9h
ZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCogY29udGV4dAogICAgIH0K
IH0KIAordm9pZCBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZVBpbmdIYW5kbGUoTmV0d29y
a2luZ0NvbnRleHQqIG5ldHdvcmtpbmdDb250ZXh0LCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
IGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UpCit7CisgICAgYXV0byYgd2ViUHJvY2Vz
cyA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpOworICAgIGlmICghd2ViUHJvY2Vzcy51c2VzTmV0
d29ya1Byb2Nlc3MoKSkgeworICAgICAgICBMb2FkZXJTdHJhdGVneTo6Y3JlYXRlUGluZ0hhbmRs
ZShuZXR3b3JraW5nQ29udGV4dCwgcmVxdWVzdCwgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2Up
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dCogd2ViQ29udGV4dCA9IHN0YXRpY19jYXN0PFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQqPihu
ZXR3b3JraW5nQ29udGV4dCk7CisgICAgV2ViRnJhbWVMb2FkZXJDbGllbnQqIHdlYkZyYW1lTG9h
ZGVyQ2xpZW50ID0gd2ViQ29udGV4dC0+d2ViRnJhbWVMb2FkZXJDbGllbnQoKTsKKyAgICBXZWJG
cmFtZSogd2ViRnJhbWUgPSB3ZWJGcmFtZUxvYWRlckNsaWVudCA/IHdlYkZyYW1lTG9hZGVyQ2xp
ZW50LT53ZWJGcmFtZSgpIDogMDsKKyAgICBXZWJQYWdlKiB3ZWJQYWdlID0gd2ViRnJhbWUgPyB3
ZWJGcmFtZS0+cGFnZSgpIDogMDsKKyAgICAKKyAgICBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1l
dGVycyBsb2FkUGFyYW1ldGVyczsKKyAgICBsb2FkUGFyYW1ldGVycy5yZXF1ZXN0ID0gcmVxdWVz
dDsKKyAgICBsb2FkUGFyYW1ldGVycy5zZXNzaW9uSUQgPSB3ZWJQYWdlID8gd2ViUGFnZS0+c2Vz
c2lvbklEKCkgOiBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKTsKKyAgICBsb2FkUGFyYW1l
dGVycy5hbGxvd1N0b3JlZENyZWRlbnRpYWxzID0gc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2Ug
PyBBbGxvd1N0b3JlZENyZWRlbnRpYWxzIDogRG9Ob3RBbGxvd1N0b3JlZENyZWRlbnRpYWxzOwor
ICAgIGxvYWRQYXJhbWV0ZXJzLnNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJl
Y3QgPSBuZXR3b3JraW5nQ29udGV4dC0+c2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBS
ZWRpcmVjdCgpOworCisgICAgd2ViUHJvY2Vzcy5uZXR3b3JrQ29ubmVjdGlvbigpLT5jb25uZWN0
aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpMb2Fk
UGluZyhsb2FkUGFyYW1ldGVycyksIDApOworfQorCiBCbG9iUmVnaXN0cnkqIFdlYlBsYXRmb3Jt
U3RyYXRlZ2llczo6Y3JlYXRlQmxvYlJlZ2lzdHJ5KCkKIHsKICAgICBpZiAoIVdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLnVzZXNOZXR3b3JrUHJvY2VzcygpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJh
dGVnaWVzLmgKaW5kZXggM2IyZmNiMS4uYzU4NDFhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3Ry
YXRlZ2llcy5oCkBAIC02Myw2ICs2Myw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBXZWJDb3Jl
OjpSZXNvdXJjZUxvYWRTY2hlZHVsZXIqIHJlc291cmNlTG9hZFNjaGVkdWxlcigpIG92ZXJyaWRl
OwogICAgIHZpcnR1YWwgdm9pZCBsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KFdlYkNvcmU6Ok5l
dHdvcmtpbmdDb250ZXh0KiwgdW5zaWduZWQgbG9uZyByZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFs
cywgV2ViQ29yZTo6Q2xpZW50Q3JlZGVudGlhbFBvbGljeSwgV2ViQ29yZTo6UmVzb3VyY2VFcnJv
ciYsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBWZWN0b3I8Y2hhcj4mIGRhdGEpIG92ZXJy
aWRlOwogICAgIHZpcnR1YWwgV2ViQ29yZTo6QmxvYlJlZ2lzdHJ5KiBjcmVhdGVCbG9iUmVnaXN0
cnkoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlUGluZ0hhbmRsZShXZWJDb3Jl
OjpOZXR3b3JraW5nQ29udGV4dCosIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGJvb2wgc2hv
dWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UpIG92ZXJyaWRlOwogI2VuZGlmCiAKICAgICAvLyBXZWJD
b3JlOjpQbHVnaW5TdHJhdGVneQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256403</attachid>
            <date>2015-07-08 13:59:14 -0700</date>
            <delta_ts>2015-07-08 14:08:33 -0700</delta_ts>
            <desc>Patch v2</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>27067</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA1YWUzM2E1Li40ZGY1ZmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEg
QEAKKzIwMTUtMDctMDggIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIE1vdmUgUGluZ0xvYWRlcnMgdG8gdGhlIE5ldHdvcmtpbmdQcm9jZXNzLgorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMTg4NjAyNjM+IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTQ2NzEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLgorICAgICAgICBUaGVyZSdzIG5vIGN1cnJlbnQgc29s
dXRpb24gZm9yIGNvbW11bmljYXRpbmcgYmFjayB0byBhIHBhZ2UgdGhhdCBhIHBpbmcgbG9hZCBo
YXMgcmVhY2hlZCBpdHMgdGFyZ2V0LgorICAgICAgICBVbnRpbCB3ZSBoYXZlIHN1Y2ggYSBzb2x1
dGlvbiwgYW55IGF0dGVtcHQgYXQgYSBsYXlvdXQgdGVzdCB3aWxsIGJlIGZyYWdpbGUgYXQgYmVz
dC4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgCisgICAgICAgICogbG9hZGVyL0xvYWRlclN0cmF0ZWd5LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkxvYWRlclN0cmF0ZWd5OjpjcmVhdGVQaW5nSGFuZGxlKTogRGVmYXVsdCBpbXBsZW1lbnRh
dGlvbiBpcyBjcmVhdGUgdGhlIFBpbmdIYW5kbGUgZGlyZWN0bHkuCisgICAgICAgICogbG9hZGVy
L0xvYWRlclN0cmF0ZWd5Lmg6CisKKyAgICAgICAgUGluZ0xvYWRlciBiZWNvbWVzIGEgc3RhdGlj
IGNsYXNzIGZvciBub3cgdGhhdCBjcmFmdHMgdGhlIFJlc291cmNlUmVxdWVzdCB0aGVuIHBhc3Nl
cyBpdCBvZmYKKyAgICAgICAgdG8gdGhlIExvYWRlclN0cmF0ZWd5OiAgICAgICAgCisgICAgICAg
ICogbG9hZGVyL1BpbmdMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGluZ0xvYWRlcjo6
bG9hZEltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlBpbmdMb2FkZXI6OnNlbmRQaW5nKToKKyAg
ICAgICAgKFdlYkNvcmU6OlBpbmdMb2FkZXI6OnNlbmRWaW9sYXRpb25SZXBvcnQpOgorICAgICAg
ICAoV2ViQ29yZTo6UGluZ0xvYWRlcjo6c3RhcnRQaW5nTG9hZCk6CisgICAgICAgIChXZWJDb3Jl
OjpQaW5nTG9hZGVyOjpjcmVhdGVQaW5nTG9hZGVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlBpbmdMb2FkZXI6OlBpbmdMb2FkZXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
UGluZ0xvYWRlcjo6flBpbmdMb2FkZXIpOiBEZWxldGVkLgorICAgICAgICAqIGxvYWRlci9QaW5n
TG9hZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpQaW5nTG9hZGVyOjp0aW1lb3V0VGltZXJGaXJl
ZCk6IERlbGV0ZWQuCisKKyAgICAgICAgUGluZ0hhbmRsZSBkb2VzIHdoYXQgUGluZ0xvYWRlciB1
c2VkIHRvIC0gSXQncyBhIGJhc2ljIFJlc291cmNlSGFuZGxlQ2xpZW50IHRoYXQgc2ltcGx5IHdh
aXRzCisgICAgICAgIGZvciBhbnkgcmVzcG9uc2UvY29tcGxldGlvbi9mYWlsdXJlIGFuZCB0aGVu
IGRlbGV0ZXMgaXRzZWxmLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUGluZ0hhbmRsZS5o
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBpbmdIYW5kbGU6OlBpbmdIYW5kbGUpOgorICAg
ICAgICAoV2ViQ29yZTo6UGluZ0hhbmRsZTo6dXNlc0FzeW5jQ2FsbGJhY2tzKToKKyAgICAgICAg
KFdlYkNvcmU6OlBpbmdIYW5kbGU6OnRpbWVvdXRUaW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNv
cmU6OlBpbmdIYW5kbGU6On5QaW5nSGFuZGxlKToKKwogMjAxNS0wNy0wOCAgRXJpYyBDYXJsc29u
ICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBbTWFjXSBUd28gY2xpY2tzIHJl
cXVpcmVkIHRvIGVuYWJsZSBBaXJQbGF5IGF0IHlvdXR1YmUuY29tCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNmQ0ZGRjOS4uMWM4
NWE3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMjAxMyw2ICsyMDEzLDcgQEAKIAkJNTFBRjUwMzYxNkYxMDBGNjAwOTVCMkU4
IC8qIFJlc291cmNlTG9hZGVyVHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUxQUY1MDM1MTZGMTAwRjYwMDk1QjJFOCAvKiBSZXNvdXJjZUxvYWRl
clR5cGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJNTFCMDdBNDQxODIzMjQ4QjAwQUE4RDFBIC8qIElEQlBlbmRpbmdEZWxldGVDYWxsLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUIwN0E0MzE4MjMy
NDhCMDBBQThEMUEgLyogSURCUGVuZGluZ0RlbGV0ZUNhbGwuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MUIyNDE3QjBEOTMxRjNGMDBFODNGNUMg
LyogTGVnYWN5V2ViQXJjaGl2ZU1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUxQjI0MTdBMEQ5MzFGM0YwMEU4M0Y1QyAvKiBMZWdhY3lXZWJBcmNo
aXZlTWFjLm1tICovOyB9OworCQk1MUI0NTRFQTFCNERBRTdEMDA4NUVBQTYgLyogUGluZ0hhbmRs
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFCNDU0
RTkxQjREQUU3RDAwODVFQUE2IC8qIFBpbmdIYW5kbGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MUI0NUQyMDFBQjhEMUUyMDAxMTdDRDIgLyog
Q29udGVudEV4dGVuc2lvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MUI0NUQxRTFBQjhEMUUyMDAxMTdDRDIgLyogQ29udGVudEV4dGVuc2lvbi5j
cHAgKi87IH07CiAJCTUxQjQ1RDIxMUFCOEQxRTIwMDExN0NEMiAvKiBDb250ZW50RXh0ZW5zaW9u
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUI0NUQx
RjFBQjhEMUUyMDAxMTdDRDIgLyogQ29udGVudEV4dGVuc2lvbi5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxQjU4RkQ0MTk1QTk2NEQwMDI5OTBC
MCAvKiBQbGF0Zm9ybUdhbWVwYWQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUxNUU1RkVGMTk1MTAxNDcwMDg2Q0E1RSAvKiBQbGF0Zm9ybUdhbWVwYWQu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtOTI1
MCw2ICs5MjUxLDcgQEAKIAkJNTFBRjUwMzUxNkYxMDBGNjAwOTVCMkU4IC8qIFJlc291cmNlTG9h
ZGVyVHlwZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVzb3VyY2VMb2Fk
ZXJUeXBlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUIwN0E0MzE4MjMyNDhC
MDBBQThEMUEgLyogSURCUGVuZGluZ0RlbGV0ZUNhbGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSURCUGVuZGluZ0RlbGV0ZUNhbGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTFCMjQxN0EwRDkzMUYzRjAwRTgzRjVDIC8qIExlZ2FjeVdlYkFyY2hpdmVNYWMu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBMZWdhY3lXZWJBcmNo
aXZlTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MUI0NTRFOTFCNERBRTdE
MDA4NUVBQTYgLyogUGluZ0hhbmRsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBQaW5nSGFuZGxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxQjQ1RDFFMUFC
OEQxRTIwMDExN0NEMiAvKiBDb250ZW50RXh0ZW5zaW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IENvbnRlbnRFeHRlbnNpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1MUI0NUQxRjFBQjhEMUUyMDAxMTdDRDIgLyogQ29udGVudEV4dGVuc2lv
bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb250ZW50RXh0ZW5zaW9uLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxQkUzN0RFMERBRUUwMEUwMDEwODVGQyAv
KiBTdG9yYWdlQXJlYS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdG9yYWdl
QXJlYS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTY3OTcsNiArMTY3OTksNyBA
QAogCQkJCUUxM0VGMzQyMTY4NEVDRjQwMDM0QzgzRiAvKiBOZXR3b3JrU3RvcmFnZVNlc3Npb24u
aCAqLywKIAkJCQk0NDc5NTgwMjE2NDNCNDdCMDAxRTBBN0YgLyogUGFyc2VkQ29udGVudFR5cGUu
Y3BwICovLAogCQkJCTQ0Nzk1ODAzMTY0M0I0N0IwMDFFMEE3RiAvKiBQYXJzZWRDb250ZW50VHlw
ZS5oICovLAorCQkJCTUxQjQ1NEU5MUI0REFFN0QwMDg1RUFBNiAvKiBQaW5nSGFuZGxlLmggKi8s
CiAJCQkJRTE0MjRDODkxNjRCM0I0RTAwRjMyRDQwIC8qIFBsYXRmb3JtQ29va2llSmFyLmggKi8s
CiAJCQkJMzdCQUFFNTcxOTgwRDFERDAwNURGRTcxIC8qIFByb3RlY3Rpb25TcGFjZS5oICovLAog
CQkJCTUxNEM3NjVGMENFOTIzQTEwMDdFRjNDRCAvKiBQcm90ZWN0aW9uU3BhY2VCYXNlLmNwcCAq
LywKQEAgLTIyNzE1LDggKzIyNzE4LDYgQEAKIAkJCQk4QUE2MUNGRDE0NEQ1OTVCMDBGMzczNTAg
LyogV2ViS2l0Q1NTUmVnaW9uUnVsZS5jcHAgKi8sCiAJCQkJOEFBNjFDRkUxNDRENTk1QjAwRjM3
MzUwIC8qIFdlYktpdENTU1JlZ2lvblJ1bGUuaCAqLywKIAkJCQk4QUQwQTU1NjE0Qzg3NDI1MDAw
RDgzQzUgLyogV2ViS2l0Q1NTUmVnaW9uUnVsZS5pZGwgKi8sCi0JCQkJNkM2Q0NBQUUxOURDNDJC
OTAwNDNENURCIC8qIFdlYktpdENTU1Jlc291cmNlVmFsdWUuY3BwICovLAotCQkJCTZDNkNDQUFG
MTlEQzQyQjkwMDQzRDVEQiAvKiBXZWJLaXRDU1NSZXNvdXJjZVZhbHVlLmggKi8sCiAJCQkJQkM5
QUREN0YwQ0M0MDkyMjAwMDk4QzRDIC8qIFdlYktpdENTU1RyYW5zZm9ybVZhbHVlLmNwcCAqLywK
IAkJCQlCQzlBREQyMjBDQzQwMzI2MDAwOThDNEMgLyogV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUu
aCAqLywKIAkJCQkzMTYxMUU1NDBFMUM0RDRBMDBGNkE1NzkgLyogV2ViS2l0Q1NTVHJhbnNmb3Jt
VmFsdWUuaWRsICovLApAQCAtMjUyMjQsNiArMjUyMjUsNyBAQAogCQkJCUZERjdFOUM0MTNBQzIx
REIwMEE1MUVBQyAvKiBKU0F1ZGlvQnVmZmVyQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJ
CUZEQTE1RUEwMTJCMDNFRTEwMDNBNTgzQSAvKiBKU0F1ZGlvQnVmZmVyU291cmNlTm9kZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRkRBMTVFQTYxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9Db250
ZXh0LmggaW4gSGVhZGVycyAqLywKKwkJCQk1MUI0NTRFQTFCNERBRTdEMDA4NUVBQTYgLyogUGlu
Z0hhbmRsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkRBMTVFQTgxMkIwM0VFMTAwM0E1ODNBIC8q
IEpTQXVkaW9EZXN0aW5hdGlvbk5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEQTE1RUFFMTJC
MDNFRTEwMDNBNTgzQSAvKiBKU0F1ZGlvTGlzdGVuZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUZE
QTE1RUIwMTJCMDNFRTEwMDNBNTgzQSAvKiBKU0F1ZGlvTm9kZS5oIGluIEhlYWRlcnMgKi8sCkBA
IC0yNTg2NSw3ICsyNTg2Nyw2IEBACiAJCQkJOTMzMDlERjgwOTlFNjQ5MjAwNTZFNTgxIC8qIG1h
cmt1cC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTcyOEMzMTQxMjY4RTQzOTAwNDFFODlCIC8qIE1h
cmt1cEFjY3VtdWxhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkwMEM2MEUzRjEzRDc2RDdFMDA5
MkEyNzUgLyogTWFya3VwVG9rZW5pemVySW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNkM1
NjhDQjExOURBRkVBMDAwNDMwQ0EyIC8qIE1hc2tJbWFnZU9wZXJhdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRkFCRTcyRjUxMDU5QzFFQjAwRDk5OUREIC8qIE1hdGhNTEVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTQ0QTI4QUFDMTJERkI4QUMwMEFFOTIzQiAvKiBNYXRoTUxFbGVtZW50
RmFjdG9yeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkFCRTcyRjcxMDU5QzFFQjAwRDk5OUREIC8q
IE1hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjYyODMs
NyArMjYyODQsNiBAQAogCQkJCTBGNTgwQ0ZGMEYxMkRFOUIwMDUxRDY4OSAvKiBSZW5kZXJMYXll
ckJhY2tpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNTgwQ0ZEMEYxMkRFOUIwMDUxRDY4OSAv
KiBSZW5kZXJMYXllckNvbXBvc2l0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTUwRDEwRDlBMTU0
NUY1NzYwMDk2RDI4OCAvKiBSZW5kZXJMYXllckZpbHRlckluZm8uaCBpbiBIZWFkZXJzICovLAot
CQkJCTZDQkZFNEE1MTlFQkYyRDQwMENBMkY5RCAvKiBSZW5kZXJMYXllck1hc2tJbWFnZUluZm8u
aCBpbiBIZWFkZXJzICovLAogCQkJCTNDMjQ0RkVBQTM3NUFDNjMzRjg4QkU2RiAvKiBSZW5kZXJM
YXllck1vZGVsT2JqZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQkwQkUwMzBBMjBGMzExMkZCMDAz
QzFBNDYgLyogUmVuZGVyTGluZUJveExpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRUE0ODY0
MDk3RDkzMDIwMDk0QzlFNCAvKiBSZW5kZXJMaW5lQnJlYWsuaCBpbiBIZWFkZXJzICovLApAQCAt
MjcyMzQsNyArMjcyMzQsNiBAQAogCQkJCTMxMDYwMzcwMTQzMjdEMkUwMEFCRjRCQSAvKiBXZWJL
aXRDU1NGaWx0ZXJWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDk4MzkxNTkwRjFFNzc2OTAw
QzIzNzgyIC8qIFdlYktpdENTU01hdHJpeC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOEFBNjFEMDAx
NDRENTk1QjAwRjM3MzUwIC8qIFdlYktpdENTU1JlZ2lvblJ1bGUuaCBpbiBIZWFkZXJzICovLAot
CQkJCTZDNkNDQUIxMTlEQzQyQjkwMDQzRDVEQiAvKiBXZWJLaXRDU1NSZXNvdXJjZVZhbHVlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCQzlBREQyMzBDQzQwMzI2MDAwOThDNEMgLyogV2ViS2l0Q1NT
VHJhbnNmb3JtVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTNGRkZGOUE5MTU5RDlBNTUwMDIw
QkJENSAvKiBXZWJLaXRDU1NWaWV3cG9ydFJ1bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDNDhB
NkQxMTkxQzlENjUwMDAyNjY3NCAvKiBXZWJLaXROYW1lc3BhY2UuaCBpbiBIZWFkZXJzICovLApA
QCAtMjk0NjgsNyArMjk0NjcsNiBAQAogCQkJCTFBOEY2QkM1MERCNTVDREMwMDFEQjc5NCAvKiBN
YW5pZmVzdFBhcnNlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzMwOURGNzA5OUU2NDkyMDA1
NkU1ODEgLyogbWFya3VwLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3MjhDMzEzMTI2OEU0Mzkw
MDQxRTg5QiAvKiBNYXJrdXBBY2N1bXVsYXRvci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk2QzU2
OENCMDE5REFGRUEwMDA0MzBDQTIgLyogTWFza0ltYWdlT3BlcmF0aW9uLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUZBQkU3MkY0MTA1OUMxRUIwMEQ5OTlERCAvKiBNYXRoTUxFbGVtZW50LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUZBQkU3MkZEMTA1OUMyMTEwMEQ5OTlERCAvKiBNYXRoTUxFbGVt
ZW50RmFjdG9yeS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGQUJFNzJGNjEwNTlDMUVCMDBEOTk5
REQgLyogTWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKQEAg
LTMwNTUwLDcgKzMwNTQ4LDYgQEAKIAkJCQkzMTA2MDM2RjE0MzI3RDJFMDBBQkY0QkEgLyogV2Vi
S2l0Q1NTRmlsdGVyVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDk4MzkxNTgwRjFFNzc2
OTAwQzIzNzgyIC8qIFdlYktpdENTU01hdHJpeC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4QUE2
MUNGRjE0NEQ1OTVCMDBGMzczNTAgLyogV2ViS2l0Q1NTUmVnaW9uUnVsZS5jcHAgaW4gU291cmNl
cyAqLywKLQkJCQk2QzZDQ0FCMDE5REM0MkI5MDA0M0Q1REIgLyogV2ViS2l0Q1NTUmVzb3VyY2VW
YWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzlBREQ4MDBDQzQwOTIyMDAwOThDNEMgLyog
V2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJM0ZGRkY5QTgx
NTlEOUE1NTAwMjBCQkQ1IC8qIFdlYktpdENTU1ZpZXdwb3J0UnVsZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkxQTE0MTRCNTEzQTBGMDUwMDAxOTk5NkMgLyogV2ViS2l0Rm9udEZhbWlseU5hbWVz
LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xv
YWRlclN0cmF0ZWd5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Mb2FkZXJTdHJhdGVneS5j
cHAKaW5kZXggODk5ZmQ1Mi4uNGJiODljOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0xvYWRlclN0cmF0ZWd5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTG9hZGVy
U3RyYXRlZ3kuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiTG9hZGVyU3RyYXRlZ3ku
aCIKIAogI2luY2x1ZGUgIkJsb2JSZWdpc3RyeUltcGwuaCIKKyNpbmNsdWRlICJQaW5nSGFuZGxl
LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRT
Y2hlZHVsZXIuaCIKIApAQCAtNDcsNCArNDgsMTAgQEAgQmxvYlJlZ2lzdHJ5KiBMb2FkZXJTdHJh
dGVneTo6Y3JlYXRlQmxvYlJlZ2lzdHJ5KCkKICAgICByZXR1cm4gbmV3IEJsb2JSZWdpc3RyeUlt
cGw7CiB9CiAKK3ZvaWQgTG9hZGVyU3RyYXRlZ3k6OmNyZWF0ZVBpbmdIYW5kbGUoTmV0d29ya2lu
Z0NvbnRleHQqIG5ldHdvcmtpbmdDb250ZXh0LCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJv
b2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UpCit7CisgICAgLy8gUGluZ0hhbmRsZSBtYW5h
Z2VzIGl0cyBvd24gbGlmZXRpbWUsIGRlbGV0aW5nIGl0c2VsZiB3aGVuIGl0cyBwdXJwb3NlIGhh
cyBiZWVuIGZ1bGZpbGxlZC4KKyAgICBuZXcgUGluZ0hhbmRsZShuZXR3b3JraW5nQ29udGV4dCwg
cmVxdWVzdCwgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsIFBpbmdIYW5kbGU6OlVzZXNBc3lu
Y0NhbGxiYWNrczo6Tm8pOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTG9hZGVyU3RyYXRlZ3kuaCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9Mb2FkZXJTdHJhdGVneS5oCmluZGV4IDRiN2UxZmEuLmUxNjUzYTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Mb2FkZXJTdHJhdGVneS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Mb2FkZXJTdHJhdGVneS5oCkBAIC0zMiw2ICszMiw3IEBACiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIEJsb2JSZWdpc3RyeTsKK2NsYXNzIEZyYW1lOwogY2xhc3Mg
TmV0d29ya2luZ0NvbnRleHQ7CiBjbGFzcyBSZXNvdXJjZUVycm9yOwogY2xhc3MgUmVzb3VyY2VM
b2FkU2NoZWR1bGVyOwpAQCAtNDYsNiArNDcsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIEJs
b2JSZWdpc3RyeSogY3JlYXRlQmxvYlJlZ2lzdHJ5KCk7CiAKKyAgICB2aXJ0dWFsIHZvaWQgY3Jl
YXRlUGluZ0hhbmRsZShOZXR3b3JraW5nQ29udGV4dCosIFJlc291cmNlUmVxdWVzdCYsIGJvb2wg
c2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UpOworCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB+
TG9hZGVyU3RyYXRlZ3koKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9QaW5nTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmNwcApp
bmRleCAwNGE2OGIxLi41ODljODQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
UGluZ0xvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuY3Bw
CkBAIC0zOSw3ICszOSw5IEBACiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKICNpbmNs
dWRlICJIVFRQSGVhZGVyTmFtZXMuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b24uaCIKKyNpbmNsdWRlICJMb2FkZXJTdHJhdGVneS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKKyNp
bmNsdWRlICJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCIKICNpbmNsdWRlICJQcm9ncmVzc1RyYWNrZXIu
aCIKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVz
dC5oIgpAQCAtNjQsNyArNjYsNyBAQCB2b2lkIFBpbmdMb2FkZXI6OmxvYWRJbWFnZShGcmFtZSYg
ZnJhbWUsIGNvbnN0IFVSTCYgdXJsKQogICAgICAgICByZXF1ZXN0LnNldEhUVFBSZWZlcnJlcihy
ZWZlcnJlcik7CiAgICAgZnJhbWUubG9hZGVyKCkuYWRkRXh0cmFGaWVsZHNUb1N1YnJlc291cmNl
UmVxdWVzdChyZXF1ZXN0KTsKIAotICAgIGNyZWF0ZVBpbmdMb2FkZXIoZnJhbWUsIHJlcXVlc3Qp
OworICAgIHN0YXJ0UGluZ0xvYWQoZnJhbWUsIHJlcXVlc3QpOwogfQogCiAvLyBodHRwOi8vd3d3
LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211bHRpcGFnZS9saW5rcy5o
dG1sI2h5cGVybGluay1hdWRpdGluZwpAQCAtOTAsNyArOTIsNyBAQCB2b2lkIFBpbmdMb2FkZXI6
OnNlbmRQaW5nKEZyYW1lJiBmcmFtZSwgY29uc3QgVVJMJiBwaW5nVVJMLCBjb25zdCBVUkwmIGRl
c3RpbmF0aQogICAgICAgICB9CiAgICAgfQogCi0gICAgY3JlYXRlUGluZ0xvYWRlcihmcmFtZSwg
cmVxdWVzdCk7CisgICAgc3RhcnRQaW5nTG9hZChmcmFtZSwgcmVxdWVzdCk7CiB9CiAKIHZvaWQg
UGluZ0xvYWRlcjo6c2VuZFZpb2xhdGlvblJlcG9ydChGcmFtZSYgZnJhbWUsIGNvbnN0IFVSTCYg
cmVwb3J0VVJMLCBQYXNzUmVmUHRyPEZvcm1EYXRhPiByZXBvcnQpCkBAIC0xMDUsMTcgKzEwNywx
MCBAQCB2b2lkIFBpbmdMb2FkZXI6OnNlbmRWaW9sYXRpb25SZXBvcnQoRnJhbWUmIGZyYW1lLCBj
b25zdCBVUkwmIHJlcG9ydFVSTCwgUGFzc1JlZgogICAgIGlmICghcmVmZXJyZXIuaXNFbXB0eSgp
KQogICAgICAgICByZXF1ZXN0LnNldEhUVFBSZWZlcnJlcihyZWZlcnJlcik7CiAKLSAgICBjcmVh
dGVQaW5nTG9hZGVyKGZyYW1lLCByZXF1ZXN0KTsKKyAgICBzdGFydFBpbmdMb2FkKGZyYW1lLCBy
ZXF1ZXN0KTsKIH0KIAotdm9pZCBQaW5nTG9hZGVyOjpjcmVhdGVQaW5nTG9hZGVyKEZyYW1lJiBm
cmFtZSwgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIC8vIE5vIG5lZWQgdG8gZnJl
ZSB0aGUgUGluZ0xvYWRlciBvYmplY3Qgb3IgbWFuYWdlIGl0IHZpYSBhIHNtYXJ0IHBvaW50ZXIg
LSBpdCB3aWxsIGtpbGwgaXRzZWxmIGFzIHNvb24gYXMgaXQgcmVjZWl2ZXMgYSByZXNwb25zZS4K
LSAgICBuZXcgUGluZ0xvYWRlcihmcmFtZSwgcmVxdWVzdCk7Ci19Ci0KLVBpbmdMb2FkZXI6OlBp
bmdMb2FkZXIoRnJhbWUmIGZyYW1lLCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi0gICAgOiBt
X3RpbWVvdXQoKnRoaXMsICZQaW5nTG9hZGVyOjp0aW1lb3V0VGltZXJGaXJlZCkKK3ZvaWQgUGlu
Z0xvYWRlcjo6c3RhcnRQaW5nTG9hZChGcmFtZSYgZnJhbWUsIFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCkKIHsKICAgICB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIgPSBmcmFtZS5wYWdlKCktPnBy
b2dyZXNzKCkuY3JlYXRlVW5pcXVlSWRlbnRpZmllcigpOwogICAgIC8vIEZJWE1FOiBXaHkgYWN0
aXZlRG9jdW1lbnRMb2FkZXI/IEkgd291bGQgaGF2ZSBleHBlY3RlZCBkb2N1bWVudExvYWRlcigp
LgpAQCAtMTIzLDIwICsxMTgsMTEgQEAgUGluZ0xvYWRlcjo6UGluZ0xvYWRlcihGcmFtZSYgZnJh
bWUsIFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKICAgICAvLyBEb2N1bWVudCBpbiB0aGUgRnJh
bWUsIGJ1dCB0aGUgYWN0aXZlRG9jdW1lbnRMb2FkZXIgd2lsbCBiZSBhc3NvY2lhdGVkCiAgICAg
Ly8gd2l0aCB0aGUgcHJvdmlzaW9uYWwgRG9jdW1lbnRMb2FkZXIgaWYgdGhlcmUgaXMgYSBwcm92
aXNpb25hbAogICAgIC8vIERvY3VtZW50TG9hZGVyLgotICAgIG1fc2hvdWxkVXNlQ3JlZGVudGlh
bFN0b3JhZ2UgPSBmcmFtZS5sb2FkZXIoKS5jbGllbnQoKS5zaG91bGRVc2VDcmVkZW50aWFsU3Rv
cmFnZShmcmFtZS5sb2FkZXIoKS5hY3RpdmVEb2N1bWVudExvYWRlcigpLCBpZGVudGlmaWVyKTsK
LSAgICBtX2hhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUoZnJhbWUubG9hZGVyKCkubmV0
d29ya2luZ0NvbnRleHQoKSwgcmVxdWVzdCwgdGhpcywgZmFsc2UsIGZhbHNlKTsKKyAgICBib29s
IHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlID0gZnJhbWUubG9hZGVyKCkuY2xpZW50KCkuc2hv
dWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UoZnJhbWUubG9hZGVyKCkuYWN0aXZlRG9jdW1lbnRMb2Fk
ZXIoKSwgaWRlbnRpZmllcik7CiAKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmNvbnRp
bnVlQWZ0ZXJQaW5nTG9hZGVyKGZyYW1lLCBpZGVudGlmaWVyLCBmcmFtZS5sb2FkZXIoKS5hY3Rp
dmVEb2N1bWVudExvYWRlcigpLCByZXF1ZXN0LCBSZXNvdXJjZVJlc3BvbnNlKCkpOwogCi0gICAg
Ly8gSWYgdGhlIHNlcnZlciBuZXZlciByZXNwb25kcywgRnJhbWVMb2FkZXIgd29uJ3QgYmUgYWJs
ZSB0byBjYW5jZWwgdGhpcyBsb2FkIGFuZAotICAgIC8vIHdlJ2xsIHNpdCBoZXJlIHdhaXRpbmcg
Zm9yZXZlci4gU2V0IGEgdmVyeSBnZW5lcm91cyB0aW1lb3V0LCBqdXN0IGluIGNhc2UuCi0gICAg
bV90aW1lb3V0LnN0YXJ0T25lU2hvdCg2MDAwMCk7Ci19Ci0KLVBpbmdMb2FkZXI6On5QaW5nTG9h
ZGVyKCkKLXsKLSAgICBpZiAobV9oYW5kbGUpCi0gICAgICAgIG1faGFuZGxlLT5jYW5jZWwoKTsK
KyAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bG9hZGVyU3RyYXRlZ3koKS0+Y3JlYXRlUGluZ0hh
bmRsZShmcmFtZS5sb2FkZXIoKS5uZXR3b3JraW5nQ29udGV4dCgpLCByZXF1ZXN0LCBzaG91bGRV
c2VDcmVkZW50aWFsU3RvcmFnZSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9QaW5nTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRlci5o
CmluZGV4IDUxNWQ5N2QuLjA0NWRlMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9QaW5nTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuaApA
QCAtMzIsNDggKzMyLDIzIEBACiAjaWZuZGVmIFBpbmdMb2FkZXJfaAogI2RlZmluZSBQaW5nTG9h
ZGVyX2gKIAotI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlQ2xpZW50LmgiCi0jaW5jbHVkZSAiVGlt
ZXIuaCIKLSNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRy
Lmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBGb3JtRGF0YTsKIGNsYXNzIEZyYW1lOwogY2xhc3MgVVJMOwotY2xhc3MgUmVzb3Vy
Y2VFcnJvcjsKLWNsYXNzIFJlc291cmNlSGFuZGxlOwotY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsK
K2NsYXNzIFJlc291cmNlUmVxdWVzdDsKIAotLy8gVGhpcyBjbGFzcyB0cmlnZ2VycyBhc3luY2hy
b25vdXMgbG9hZHMgaW5kZXBlbmRlbnQgb2YgRnJhbWUgc3RheWluZyBhbGl2ZSAoaS5lLiwgYXVk
aXRpbmcgcGluZ2JhY2tzKS4KLS8vIFNpbmNlIG5vdGhpbmcgZGVwZW5kcyBvbiByZXNvdXJjZXMg
bG9hZGVkIHRocm91Z2ggdGhpcyBjbGFzcywgd2UganVzdCB3YW50Ci0vLyB0byBhbGxvdyB0aGUg
bG9hZCB0byBsaXZlIGxvbmcgZW5vdWdoIHRvIGVuc3VyZSB0aGUgbWVzc2FnZSB3YXMgYWN0dWFs
bHkgc2VudC4KLS8vIFRoZXJlZm9yZSwgYXMgc29vbiBhcyBhIGNhbGxiYWNrIGlzIHJlY2VpdmVk
IGZyb20gdGhlIFJlc291cmNlSGFuZGxlLCB0aGlzIGNsYXNzIAotLy8gd2lsbCBjYW5jZWwgdGhl
IGxvYWQgYW5kIGRlbGV0ZSBpdHNlbGYuCi1jbGFzcyBQaW5nTG9hZGVyIDogcHJpdmF0ZSBSZXNv
dXJjZUhhbmRsZUNsaWVudCB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUGluZ0xvYWRlcik7
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworY2xhc3MgUGluZ0xvYWRlciB7CiBwdWJsaWM6CiAg
ICAgc3RhdGljIHZvaWQgbG9hZEltYWdlKEZyYW1lJiwgY29uc3QgVVJMJik7CiAgICAgc3RhdGlj
IHZvaWQgc2VuZFBpbmcoRnJhbWUmLCBjb25zdCBVUkwmIHBpbmdVUkwsIGNvbnN0IFVSTCYgZGVz
dGluYXRpb25VUkwpOwogICAgIHN0YXRpYyB2b2lkIHNlbmRWaW9sYXRpb25SZXBvcnQoRnJhbWUm
LCBjb25zdCBVUkwmIHJlcG9ydFVSTCwgUGFzc1JlZlB0cjxGb3JtRGF0YT4gcmVwb3J0KTsKIAot
ICAgIHZpcnR1YWwgflBpbmdMb2FkZXIoKTsKLQogcHJpdmF0ZToKLSAgICBzdGF0aWMgdm9pZCBj
cmVhdGVQaW5nTG9hZGVyKEZyYW1lJiwgUmVzb3VyY2VSZXF1ZXN0Jik7Ci0gICAgUGluZ0xvYWRl
cihGcmFtZSYsIFJlc291cmNlUmVxdWVzdCYpOwotCi0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSBvdmVy
cmlkZSB7IGRlbGV0ZSB0aGlzOyB9Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKFJl
c291cmNlSGFuZGxlKiwgY29uc3QgY2hhciosIHVuc2lnbmVkLCBpbnQpIG92ZXJyaWRlIHsgZGVs
ZXRlIHRoaXM7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhh
bmRsZSosIGRvdWJsZSkgb3ZlcnJpZGUgeyBkZWxldGUgdGhpczsgfQotICAgIHZpcnR1YWwgdm9p
ZCBkaWRGYWlsKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpIG92ZXJyaWRl
IHsgZGVsZXRlIHRoaXM7IH0KLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0
b3JhZ2UoUmVzb3VyY2VIYW5kbGUqKSAgb3ZlcnJpZGUgeyByZXR1cm4gbV9zaG91bGRVc2VDcmVk
ZW50aWFsU3RvcmFnZTsgfQotICAgIHZvaWQgdGltZW91dFRpbWVyRmlyZWQoKSB7IGRlbGV0ZSB0
aGlzOyB9Ci0KLSAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IG1faGFuZGxlOwotICAgIFRpbWVy
IG1fdGltZW91dDsKLSAgICBib29sIG1fc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2U7CisgICAg
c3RhdGljIHZvaWQgc3RhcnRQaW5nTG9hZChGcmFtZSYsIFJlc291cmNlUmVxdWVzdCYpOwogfTsK
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9QaW5nSGFu
ZGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1BpbmdIYW5kbGUuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MThmNWU4Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9QaW5nSGFuZGxlLmgKQEAgLTAsMCAr
MSw4MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
Zm5kZWYgUGluZ0hhbmRsZV9oCisjZGVmaW5lIFBpbmdIYW5kbGVfaAorCisjaW5jbHVkZSAiUmVz
b3VyY2VIYW5kbGUuaCIKKyNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZUNsaWVudC5oIgorI2luY2x1
ZGUgIlRpbWVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworLy8gVGhpcyBjbGFzcyB0cmln
Z2VycyBhc3luY2hyb25vdXMgbG9hZHMgaW5kZXBlbmRlbnQgb2YgdGhlIG5ldHdvcmtpbmcgY29u
dGV4dCBzdGF5aW5nIGFsaXZlIChpLmUuLCBhdWRpdGluZyBwaW5nYmFja3MpLgorLy8gVGhlIG9i
amVjdCBqdXN0IG5lZWRzIHRvIGxpdmUgbG9uZyBlbm91Z2ggdG8gZW5zdXJlIHRoZSBtZXNzYWdl
IHdhcyBhY3R1YWxseSBzZW50LgorLy8gQXMgc29vbiBhcyBhbnkgY2FsbGJhY2sgaXMgcmVjZWl2
ZWQgZnJvbSB0aGUgUmVzb3VyY2VIYW5kbGUsIHRoaXMgY2xhc3Mgd2lsbCBjYW5jZWwgdGhlIGxv
YWQgYW5kIGRlbGV0ZSBpdHNlbGYuCisKK2NsYXNzIFBpbmdIYW5kbGUgOiBwcml2YXRlIFJlc291
cmNlSGFuZGxlQ2xpZW50IHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShQaW5nSGFuZGxlKTsg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgZW51bSBjbGFzcyBVc2VzQXN5
bmNDYWxsYmFja3MgeworICAgICAgICBZZXMsCisgICAgICAgIE5vLAorICAgIH07CisgICAgCisg
ICAgUGluZ0hhbmRsZShOZXR3b3JraW5nQ29udGV4dCogbmV0d29ya2luZ0NvbnRleHQsIGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFn
ZSwgVXNlc0FzeW5jQ2FsbGJhY2tzIHVzZUFzeW5jQ2FsbGJhY2tzKQorICAgICAgICA6IG1fdGlt
ZW91dFRpbWVyKCp0aGlzLCAmUGluZ0hhbmRsZTo6dGltZW91dFRpbWVyRmlyZWQpCisgICAgICAg
ICwgbV9zaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZShzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFn
ZSkKKyAgICAgICAgLCBtX3VzZXNBc3luY0NhbGxiYWNrcyh1c2VBc3luY0NhbGxiYWNrcykKKyAg
ICB7CisgICAgICAgIG1faGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShuZXR3b3JraW5n
Q29udGV4dCwgcmVxdWVzdCwgdGhpcywgZmFsc2UsIGZhbHNlKTsKKworICAgICAgICAvLyBJZiB0
aGUgc2VydmVyIG5ldmVyIHJlc3BvbmRzLCB0aGlzIG9iamVjdCB3aWxsIGhhbmcgYXJvdW5kIGZv
cmV2ZXIuCisgICAgICAgIC8vIFNldCBhIHZlcnkgZ2VuZXJvdXMgdGltZW91dCwganVzdCBpbiBj
YXNlLgorICAgICAgICBtX3RpbWVvdXRUaW1lci5zdGFydE9uZVNob3QoNjAwMDApOworICAgIH0K
KworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNl
SGFuZGxlKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIG92ZXJyaWRlIHsgZGVsZXRlIHRoaXM7
IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25z
dCBjaGFyKiwgdW5zaWduZWQsIGludCkgb3ZlcnJpZGUgeyBkZWxldGUgdGhpczsgfQorICAgIHZp
cnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKiwgZG91YmxlKSBvdmVy
cmlkZSB7IGRlbGV0ZSB0aGlzOyB9CisgICAgdmlydHVhbCB2b2lkIGRpZEZhaWwoUmVzb3VyY2VI
YW5kbGUqLCBjb25zdCBSZXNvdXJjZUVycm9yJikgb3ZlcnJpZGUgeyBkZWxldGUgdGhpczsgfQor
ICAgIHZpcnR1YWwgYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZShSZXNvdXJjZUhhbmRs
ZSopICBvdmVycmlkZSB7IHJldHVybiBtX3Nob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlOyB9Cisg
ICAgdmlydHVhbCBib29sIHVzZXNBc3luY0NhbGxiYWNrcygpIHsgcmV0dXJuIG1fdXNlc0FzeW5j
Q2FsbGJhY2tzID09IFVzZXNBc3luY0NhbGxiYWNrczo6WWVzOyB9CisgICAgdm9pZCB0aW1lb3V0
VGltZXJGaXJlZCgpIHsgZGVsZXRlIHRoaXM7IH0KKworICAgIHZpcnR1YWwgflBpbmdIYW5kbGUo
KQorICAgIHsKKyAgICAgICAgaWYgKG1faGFuZGxlKQorICAgICAgICAgICAgbV9oYW5kbGUtPmNh
bmNlbCgpOworICAgIH0KKworICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gbV9oYW5kbGU7Cisg
ICAgVGltZXIgbV90aW1lb3V0VGltZXI7CisgICAgYm9vbCBtX3Nob3VsZFVzZUNyZWRlbnRpYWxT
dG9yYWdlOworICAgIFVzZXNBc3luY0NhbGxiYWNrcyBtX3VzZXNBc3luY0NhbGxiYWNrczsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFBpbmdIYW5kbGVfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCmluZGV4IDM3MzdjYTAuLmIzNzBkMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAor
MjAxNS0wNy0wOCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAg
TW92ZSBQaW5nTG9hZGVycyB0byB0aGUgTmV0d29ya2luZ1Byb2Nlc3MuCisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS8xODg2MDI2Mz4gYW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNDY3MTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmxvYWRQ
aW5nKTogQ3JlYXRlIGEgUGluZ0hhbmRsZSBhbmQgdGhlbiByZXR1cm4uCisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbjoK
KyAgICAgICAgCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9y
bVN0cmF0ZWdpZXMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6
OmNyZWF0ZVBpbmdIYW5kbGUpOiBJZiB0aGUgTmV0d29yayBwcm9jZXNzIGlzIGVuYWJsZWQsCisg
ICAgICAgICAgY29tcGlsZSB0aGUgYXBwcm9wcmlhdGUgbG9hZCBwYXJhbWV0ZXJzIGFuZCB0aGVu
IG1lc3NhZ2UgdG8gaXQuCisgICAgICAgICAgT3RoZXJ3aXNlLCB1c2UgdGhlIGRlZmF1bHQgaW4t
cHJvY2VzcyBQaW5nSGFuZGxlLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViUGxhdGZvcm1TdHJhdGVnaWVzLmg6CisKIDIwMTUtMDctMDggIEJldGggRGFraW4gIDxiZGFr
aW5AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBhY3Rpb25zIHRvIGltYWdlIHByZXZpZXdzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggNTRkZTNjNC4uNjViYTJlNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIk5l
dHdvcmtSZXNvdXJjZUxvYWRlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlTmV0d29ya2lu
Z0NvbnRleHQuaCIKICNpbmNsdWRlICJTZXNzaW9uVHJhY2tlci5oIgorI2luY2x1ZGUgPFdlYkNv
cmUvUGluZ0hhbmRsZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1Db29raWVKYXIuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlTG9hZGVyT3B0aW9ucy5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CkBAIC0xMjYsNiArMTI3LDE0IEBAIHZvaWQgTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnBlcmZvcm1TeW5jaHJvbm91c0xvYWQoY29uc3QgTmV0
d29ya1Jlc291cmNlCiAgICAgbG9hZGVyLT5zdGFydCgpOwogfQogCit2b2lkIE5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpsb2FkUGluZyhjb25zdCBOZXR3b3JrUmVzb3VyY2VMb2FkUGFy
YW1ldGVycyYgbG9hZFBhcmFtZXRlcnMpCit7CisgICAgUmVmUHRyPE5ldHdvcmtpbmdDb250ZXh0
PiBjb250ZXh0ID0gUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZShsb2FkUGFyYW1ldGVy
cy5zZXNzaW9uSUQsIGxvYWRQYXJhbWV0ZXJzLnNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9I
VFRQUmVkaXJlY3QpOworCisgICAgLy8gUGluZ0hhbmRsZSBtYW5hZ2VzIGl0cyBvd24gbGlmZXRp
bWUsIGRlbGV0aW5nIGl0c2VsZiB3aGVuIGl0cyBwdXJwb3NlIGhhcyBiZWVuIGZ1bGZpbGxlZC4K
KyAgICBuZXcgUGluZ0hhbmRsZShjb250ZXh0LmdldCgpLCBsb2FkUGFyYW1ldGVycy5yZXF1ZXN0
LCBsb2FkUGFyYW1ldGVycy5hbGxvd1N0b3JlZENyZWRlbnRpYWxzID09IEFsbG93U3RvcmVkQ3Jl
ZGVudGlhbHMsIFBpbmdIYW5kbGU6OlVzZXNBc3luY0NhbGxiYWNrczo6WWVzKTsKK30KKwogdm9p
ZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVtb3ZlTG9hZElkZW50aWZpZXIoUmVz
b3VyY2VMb2FkSWRlbnRpZmllciBpZGVudGlmaWVyKQogewogICAgIFJlZlB0cjxOZXR3b3JrUmVz
b3VyY2VMb2FkZXI+IGxvYWRlciA9IG1fbmV0d29ya1Jlc291cmNlTG9hZGVycy5nZXQoaWRlbnRp
Zmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRleCAzMmEzMTA1Li44MjJkZTU4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKQEAgLTcyLDYgKzcyLDcgQEAgcHJpdmF0ZToKICAg
ICAKICAgICB2b2lkIHNjaGVkdWxlUmVzb3VyY2VMb2FkKGNvbnN0IE5ldHdvcmtSZXNvdXJjZUxv
YWRQYXJhbWV0ZXJzJik7CiAgICAgdm9pZCBwZXJmb3JtU3luY2hyb25vdXNMb2FkKGNvbnN0IE5l
dHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiwgUGFzc1JlZlB0cjxNZXNzYWdlczo6TmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlBlcmZvcm1TeW5jaHJvbm91c0xvYWQ6OkRlbGF5ZWRS
ZXBseT4pOworICAgIHZvaWQgbG9hZFBpbmcoY29uc3QgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFt
ZXRlcnMmKTsKIAogICAgIHZvaWQgcmVtb3ZlTG9hZElkZW50aWZpZXIoUmVzb3VyY2VMb2FkSWRl
bnRpZmllcik7CiAgICAgdm9pZCBzZXREZWZlcnNMb2FkaW5nKFJlc291cmNlTG9hZElkZW50aWZp
ZXIsIGJvb2wpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgpp
bmRleCAwM2IzZGQ0Li40YzBhN2FkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5tZXNzYWdlcy5pbgpAQCAtMjYsNiArMjYsNyBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAKICAgICBTY2hlZHVsZVJlc291cmNl
TG9hZChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIHJlc291cmNlTG9hZFBh
cmFtZXRlcnMpCiAgICAgUGVyZm9ybVN5bmNocm9ub3VzTG9hZChXZWJLaXQ6Ok5ldHdvcmtSZXNv
dXJjZUxvYWRQYXJhbWV0ZXJzIHJlc291cmNlTG9hZFBhcmFtZXRlcnMpIC0+IChXZWJDb3JlOjpS
ZXNvdXJjZUVycm9yIGVycm9yLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlLCBW
ZWN0b3I8Y2hhcj4gZGF0YSkgRGVsYXllZAorICAgIExvYWRQaW5nKFdlYktpdDo6TmV0d29ya1Jl
c291cmNlTG9hZFBhcmFtZXRlcnMgcmVzb3VyY2VMb2FkUGFyYW1ldGVycykKICAgICBSZW1vdmVM
b2FkSWRlbnRpZmllcih1aW50NjRfdCByZXNvdXJjZUxvYWRJZGVudGlmaWVyKQogICAgIFNldERl
ZmVyc0xvYWRpbmcodWludDY0X3QgcmVzb3VyY2VMb2FkSWRlbnRpZmllciwgYm9vbCBkZWZlcnMp
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAppbmRleCAwNDEzOTMwLi5lYmUw
MTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCkBAIC01NSw2ICs1NSw3
IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlR3JvdXAuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Bs
YXRmb3JtQ29va2llSmFyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybVBhc3RlYm9hcmQu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Byb2dyZXNzVHJhY2tlci5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUmVzb3VyY2VFcnJvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9TdG9yYWdlTmFtZXNwYWNlLmg+CkBAIC0yNDgsNiArMjQ5LDI4IEBAIHZv
aWQgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdv
cmtpbmdDb250ZXh0KiBjb250ZXh0CiAgICAgfQogfQogCit2b2lkIFdlYlBsYXRmb3JtU3RyYXRl
Z2llczo6Y3JlYXRlUGluZ0hhbmRsZShOZXR3b3JraW5nQ29udGV4dCogbmV0d29ya2luZ0NvbnRl
eHQsIFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3Rv
cmFnZSkKK3sKKyAgICBhdXRvJiB3ZWJQcm9jZXNzID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCk7
CisgICAgaWYgKCF3ZWJQcm9jZXNzLnVzZXNOZXR3b3JrUHJvY2VzcygpKSB7CisgICAgICAgIExv
YWRlclN0cmF0ZWd5OjpjcmVhdGVQaW5nSGFuZGxlKG5ldHdvcmtpbmdDb250ZXh0LCByZXF1ZXN0
LCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0KiB3ZWJDb250ZXh0ID0gc3RhdGljX2Nhc3Q8
V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dCo+KG5ldHdvcmtpbmdDb250ZXh0KTsKKyAgICBXZWJG
cmFtZUxvYWRlckNsaWVudCogd2ViRnJhbWVMb2FkZXJDbGllbnQgPSB3ZWJDb250ZXh0LT53ZWJG
cmFtZUxvYWRlckNsaWVudCgpOworICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IHdlYkZyYW1lTG9h
ZGVyQ2xpZW50ID8gd2ViRnJhbWVMb2FkZXJDbGllbnQtPndlYkZyYW1lKCkgOiAwOworICAgIFdl
YlBhZ2UqIHdlYlBhZ2UgPSB3ZWJGcmFtZSA/IHdlYkZyYW1lLT5wYWdlKCkgOiAwOworICAgIAor
ICAgIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIGxvYWRQYXJhbWV0ZXJzOworICAgIGxv
YWRQYXJhbWV0ZXJzLnJlcXVlc3QgPSByZXF1ZXN0OworICAgIGxvYWRQYXJhbWV0ZXJzLnNlc3Np
b25JRCA9IHdlYlBhZ2UgPyB3ZWJQYWdlLT5zZXNzaW9uSUQoKSA6IFNlc3Npb25JRDo6ZGVmYXVs
dFNlc3Npb25JRCgpOworICAgIGxvYWRQYXJhbWV0ZXJzLmFsbG93U3RvcmVkQ3JlZGVudGlhbHMg
PSBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSA/IEFsbG93U3RvcmVkQ3JlZGVudGlhbHMgOiBE
b05vdEFsbG93U3RvcmVkQ3JlZGVudGlhbHM7CisgICAgbG9hZFBhcmFtZXRlcnMuc2hvdWxkQ2xl
YXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCA9IG5ldHdvcmtpbmdDb250ZXh0LT5zaG91
bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KCk7CisKKyAgICB3ZWJQcm9jZXNz
Lm5ldHdvcmtDb25uZWN0aW9uKCktPmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6TmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkxvYWRQaW5nKGxvYWRQYXJhbWV0ZXJzKSwgMCk7Cit9
CisKIEJsb2JSZWdpc3RyeSogV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVCbG9iUmVnaXN0
cnkoKQogewogICAgIGlmICghV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkudXNlc05ldHdvcmtQcm9j
ZXNzKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAppbmRleCAzYjJmY2IxLi5jNTg0
MWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKQEAgLTYzLDYgKzYzLDcgQEAg
cHJpdmF0ZToKICAgICB2aXJ0dWFsIFdlYkNvcmU6OlJlc291cmNlTG9hZFNjaGVkdWxlciogcmVz
b3VyY2VMb2FkU2NoZWR1bGVyKCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGxvYWRSZXNv
dXJjZVN5bmNocm9ub3VzbHkoV2ViQ29yZTo6TmV0d29ya2luZ0NvbnRleHQqLCB1bnNpZ25lZCBs
b25nIHJlc291cmNlTG9hZElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzLCBXZWJDb3JlOjpDbGllbnRDcmVkZW50aWFs
UG9saWN5LCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSYsIFZlY3RvcjxjaGFyPiYgZGF0YSkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBXZWJDb3JlOjpC
bG9iUmVnaXN0cnkqIGNyZWF0ZUJsb2JSZWdpc3RyeSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBjcmVhdGVQaW5nSGFuZGxlKFdlYkNvcmU6Ok5ldHdvcmtpbmdDb250ZXh0KiwgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSkgb3Zl
cnJpZGU7CiAjZW5kaWYKIAogICAgIC8vIFdlYkNvcmU6OlBsdWdpblN0cmF0ZWd5Cg==
</data>
<flag name="review"
          id="281473"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256407</attachid>
            <date>2015-07-08 14:47:09 -0700</date>
            <delta_ts>2015-07-08 15:00:22 -0700</delta_ts>
            <desc>Patch for landing.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>27071</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA1YWUzM2E1Li44MzhiZGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEg
QEAKKzIwMTUtMDctMDggIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIE1vdmUgUGluZ0xvYWRlcnMgdG8gdGhlIE5ldHdvcmtpbmdQcm9jZXNzLgorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMTg4NjAyNjM+IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTQ2NzEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKwor
ICAgICAgICBObyBuZXcgdGVzdHMuCisgICAgICAgIFRoZXJlJ3Mgbm8gY3VycmVudCBzb2x1dGlv
biBmb3IgY29tbXVuaWNhdGluZyBiYWNrIHRvIGEgcGFnZSB0aGF0IGEgcGluZyBsb2FkIGhhcyBy
ZWFjaGVkIGl0cyB0YXJnZXQuCisgICAgICAgIFVudGlsIHdlIGhhdmUgc3VjaCBhIHNvbHV0aW9u
LCBhbnkgYXR0ZW1wdCBhdCBhIGxheW91dCB0ZXN0IHdpbGwgYmUgZnJhZ2lsZSBhdCBiZXN0Lgor
CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAK
KyAgICAgICAgKiBsb2FkZXIvTG9hZGVyU3RyYXRlZ3kuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TG9hZGVyU3RyYXRlZ3k6OmNyZWF0ZVBpbmdIYW5kbGUpOiBEZWZhdWx0IGltcGxlbWVudGF0aW9u
IGlzIGNyZWF0ZSB0aGUgUGluZ0hhbmRsZSBkaXJlY3RseS4KKyAgICAgICAgKiBsb2FkZXIvTG9h
ZGVyU3RyYXRlZ3kuaDoKKworICAgICAgICBQaW5nTG9hZGVyIGJlY29tZXMgYSBzdGF0aWMgY2xh
c3MgZm9yIG5vdyB0aGF0IGNyYWZ0cyB0aGUgUmVzb3VyY2VSZXF1ZXN0IHRoZW4gcGFzc2VzIGl0
IG9mZgorICAgICAgICB0byB0aGUgTG9hZGVyU3RyYXRlZ3k6ICAgICAgICAKKyAgICAgICAgKiBs
b2FkZXIvUGluZ0xvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQaW5nTG9hZGVyOjpsb2Fk
SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6UGluZ0xvYWRlcjo6c2VuZFBpbmcpOgorICAgICAg
ICAoV2ViQ29yZTo6UGluZ0xvYWRlcjo6c2VuZFZpb2xhdGlvblJlcG9ydCk6CisgICAgICAgIChX
ZWJDb3JlOjpQaW5nTG9hZGVyOjpzdGFydFBpbmdMb2FkKToKKyAgICAgICAgKFdlYkNvcmU6OlBp
bmdMb2FkZXI6OmNyZWF0ZVBpbmdMb2FkZXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
UGluZ0xvYWRlcjo6UGluZ0xvYWRlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQaW5n
TG9hZGVyOjp+UGluZ0xvYWRlcik6IERlbGV0ZWQuCisgICAgICAgICogbG9hZGVyL1BpbmdMb2Fk
ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBpbmdMb2FkZXI6OnRpbWVvdXRUaW1lckZpcmVkKTog
RGVsZXRlZC4KKworICAgICAgICBQaW5nSGFuZGxlIGRvZXMgd2hhdCBQaW5nTG9hZGVyIHVzZWQg
dG8gLSBJdCdzIGEgYmFzaWMgUmVzb3VyY2VIYW5kbGVDbGllbnQgdGhhdCBzaW1wbHkgd2FpdHMK
KyAgICAgICAgZm9yIGFueSByZXNwb25zZS9jb21wbGV0aW9uL2ZhaWx1cmUgYW5kIHRoZW4gZGVs
ZXRlcyBpdHNlbGYuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9QaW5nSGFuZGxlLmg6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6UGluZ0hhbmRsZTo6UGluZ0hhbmRsZSk6CisgICAgICAg
IChXZWJDb3JlOjpQaW5nSGFuZGxlOjp1c2VzQXN5bmNDYWxsYmFja3MpOgorICAgICAgICAoV2Vi
Q29yZTo6UGluZ0hhbmRsZTo6dGltZW91dFRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6
UGluZ0hhbmRsZTo6flBpbmdIYW5kbGUpOgorCiAyMDE1LTA3LTA4ICBFcmljIENhcmxzb24gIDxl
cmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFtNYWNdIFR3byBjbGlja3MgcmVxdWly
ZWQgdG8gZW5hYmxlIEFpclBsYXkgYXQgeW91dHViZS5jb20KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2ZDRkZGM5Li4xYzg1YTdh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0yMDEzLDYgKzIwMTMsNyBAQAogCQk1MUFGNTAzNjE2RjEwMEY2MDA5NUIyRTggLyog
UmVzb3VyY2VMb2FkZXJUeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTFBRjUwMzUxNkYxMDBGNjAwOTVCMkU4IC8qIFJlc291cmNlTG9hZGVyVHlw
ZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1
MUIwN0E0NDE4MjMyNDhCMDBBQThEMUEgLyogSURCUGVuZGluZ0RlbGV0ZUNhbGwuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQjA3QTQzMTgyMzI0OEIw
MEFBOEQxQSAvKiBJREJQZW5kaW5nRGVsZXRlQ2FsbC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxQjI0MTdCMEQ5MzFGM0YwMEU4M0Y1QyAvKiBM
ZWdhY3lXZWJBcmNoaXZlTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTFCMjQxN0EwRDkzMUYzRjAwRTgzRjVDIC8qIExlZ2FjeVdlYkFyY2hpdmVN
YWMubW0gKi87IH07CisJCTUxQjQ1NEVBMUI0REFFN0QwMDg1RUFBNiAvKiBQaW5nSGFuZGxlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUI0NTRFOTFC
NERBRTdEMDA4NUVBQTYgLyogUGluZ0hhbmRsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxQjQ1RDIwMUFCOEQxRTIwMDExN0NEMiAvKiBDb250
ZW50RXh0ZW5zaW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUxQjQ1RDFFMUFCOEQxRTIwMDExN0NEMiAvKiBDb250ZW50RXh0ZW5zaW9uLmNwcCAq
LzsgfTsKIAkJNTFCNDVEMjExQUI4RDFFMjAwMTE3Q0QyIC8qIENvbnRlbnRFeHRlbnNpb24uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQjQ1RDFGMUFC
OEQxRTIwMDExN0NEMiAvKiBDb250ZW50RXh0ZW5zaW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTFCNThGRDQxOTVBOTY0RDAwMjk5MEIwIC8q
IFBsYXRmb3JtR2FtZXBhZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTE1RTVGRUYxOTUxMDE0NzAwODZDQTVFIC8qIFBsYXRmb3JtR2FtZXBhZC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC05MjUwLDYg
KzkyNTEsNyBAQAogCQk1MUFGNTAzNTE2RjEwMEY2MDA5NUIyRTggLyogUmVzb3VyY2VMb2FkZXJU
eXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZXNvdXJjZUxvYWRlclR5
cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxQjA3QTQzMTgyMzI0OEIwMEFB
OEQxQSAvKiBJREJQZW5kaW5nRGVsZXRlQ2FsbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBJREJQZW5kaW5nRGVsZXRlQ2FsbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1MUIyNDE3QTBEOTMxRjNGMDBFODNGNUMgLyogTGVnYWN5V2ViQXJjaGl2ZU1hYy5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExlZ2FjeVdlYkFyY2hpdmVN
YWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxQjQ1NEU5MUI0REFFN0QwMDg1
RUFBNiAvKiBQaW5nSGFuZGxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBp
bmdIYW5kbGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFCNDVEMUUxQUI4RDFF
MjAwMTE3Q0QyIC8qIENvbnRlbnRFeHRlbnNpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gQ29udGVudEV4dGVuc2lvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUxQjQ1RDFGMUFCOEQxRTIwMDExN0NEMiAvKiBDb250ZW50RXh0ZW5zaW9uLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvbnRlbnRFeHRlbnNpb24uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFCRTM3REUwREFFRTAwRTAwMTA4NUZDIC8qIFN0
b3JhZ2VBcmVhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0b3JhZ2VBcmVh
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjc5Nyw2ICsxNjc5OSw3IEBACiAJ
CQkJRTEzRUYzNDIxNjg0RUNGNDAwMzRDODNGIC8qIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oICov
LAogCQkJCTQ0Nzk1ODAyMTY0M0I0N0IwMDFFMEE3RiAvKiBQYXJzZWRDb250ZW50VHlwZS5jcHAg
Ki8sCiAJCQkJNDQ3OTU4MDMxNjQzQjQ3QjAwMUUwQTdGIC8qIFBhcnNlZENvbnRlbnRUeXBlLmgg
Ki8sCisJCQkJNTFCNDU0RTkxQjREQUU3RDAwODVFQUE2IC8qIFBpbmdIYW5kbGUuaCAqLywKIAkJ
CQlFMTQyNEM4OTE2NEIzQjRFMDBGMzJENDAgLyogUGxhdGZvcm1Db29raWVKYXIuaCAqLywKIAkJ
CQkzN0JBQUU1NzE5ODBEMUREMDA1REZFNzEgLyogUHJvdGVjdGlvblNwYWNlLmggKi8sCiAJCQkJ
NTE0Qzc2NUYwQ0U5MjNBMTAwN0VGM0NEIC8qIFByb3RlY3Rpb25TcGFjZUJhc2UuY3BwICovLApA
QCAtMjI3MTUsOCArMjI3MTgsNiBAQAogCQkJCThBQTYxQ0ZEMTQ0RDU5NUIwMEYzNzM1MCAvKiBX
ZWJLaXRDU1NSZWdpb25SdWxlLmNwcCAqLywKIAkJCQk4QUE2MUNGRTE0NEQ1OTVCMDBGMzczNTAg
LyogV2ViS2l0Q1NTUmVnaW9uUnVsZS5oICovLAogCQkJCThBRDBBNTU2MTRDODc0MjUwMDBEODND
NSAvKiBXZWJLaXRDU1NSZWdpb25SdWxlLmlkbCAqLywKLQkJCQk2QzZDQ0FBRTE5REM0MkI5MDA0
M0Q1REIgLyogV2ViS2l0Q1NTUmVzb3VyY2VWYWx1ZS5jcHAgKi8sCi0JCQkJNkM2Q0NBQUYxOURD
NDJCOTAwNDNENURCIC8qIFdlYktpdENTU1Jlc291cmNlVmFsdWUuaCAqLywKIAkJCQlCQzlBREQ3
RjBDQzQwOTIyMDAwOThDNEMgLyogV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuY3BwICovLAogCQkJ
CUJDOUFERDIyMENDNDAzMjYwMDA5OEM0QyAvKiBXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5oICov
LAogCQkJCTMxNjExRTU0MEUxQzRENEEwMEY2QTU3OSAvKiBXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1
ZS5pZGwgKi8sCkBAIC0yNTIyNCw2ICsyNTIyNSw3IEBACiAJCQkJRkRGN0U5QzQxM0FDMjFEQjAw
QTUxRUFDIC8qIEpTQXVkaW9CdWZmZXJDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkRB
MTVFQTAxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlGREExNUVBNjEyQjAzRUUxMDAzQTU4M0EgLyogSlNBdWRpb0NvbnRleHQu
aCBpbiBIZWFkZXJzICovLAorCQkJCTUxQjQ1NEVBMUI0REFFN0QwMDg1RUFBNiAvKiBQaW5nSGFu
ZGxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGREExNUVBODEyQjAzRUUxMDAzQTU4M0EgLyogSlNB
dWRpb0Rlc3RpbmF0aW9uTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkRBMTVFQUUxMkIwM0VF
MTAwM0E1ODNBIC8qIEpTQXVkaW9MaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkRBMTVF
QjAxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9Ob2RlLmggaW4gSGVhZGVycyAqLywKQEAgLTI1
ODY1LDcgKzI1ODY3LDYgQEAKIAkJCQk5MzMwOURGODA5OUU2NDkyMDA1NkU1ODEgLyogbWFya3Vw
LmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzI4QzMxNDEyNjhFNDM5MDA0MUU4OUIgLyogTWFya3Vw
QWNjdW11bGF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTAwQzYwRTNGMTNENzZEN0UwMDkyQTI3
NSAvKiBNYXJrdXBUb2tlbml6ZXJJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKLQkJCQk2QzU2OENC
MTE5REFGRUEwMDA0MzBDQTIgLyogTWFza0ltYWdlT3BlcmF0aW9uLmggaW4gSGVhZGVycyAqLywK
IAkJCQlGQUJFNzJGNTEwNTlDMUVCMDBEOTk5REQgLyogTWF0aE1MRWxlbWVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNDRBMjhBQUMxMkRGQjhBQzAwQUU5MjNCIC8qIE1hdGhNTEVsZW1lbnRGYWN0
b3J5LmggaW4gSGVhZGVycyAqLywKIAkJCQlGQUJFNzJGNzEwNTlDMUVCMDBEOTk5REQgLyogTWF0
aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjI4Myw3ICsy
NjI4NCw2IEBACiAJCQkJMEY1ODBDRkYwRjEyREU5QjAwNTFENjg5IC8qIFJlbmRlckxheWVyQmFj
a2luZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1ODBDRkQwRjEyREU5QjAwNTFENjg5IC8qIFJl
bmRlckxheWVyQ29tcG9zaXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTBEMTBEOUExNTQ1RjU3
NjAwOTZEMjg4IC8qIFJlbmRlckxheWVyRmlsdGVySW5mby5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
NkNCRkU0QTUxOUVCRjJENDAwQ0EyRjlEIC8qIFJlbmRlckxheWVyTWFza0ltYWdlSW5mby5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJM0MyNDRGRUFBMzc1QUM2MzNGODhCRTZGIC8qIFJlbmRlckxheWVy
TW9kZWxPYmplY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTBCRTAzMEEyMEYzMTEyRkIwMDNDMUE0
NiAvKiBSZW5kZXJMaW5lQm94TGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFQTQ4NjQwOTdE
OTMwMjAwOTRDOUU0IC8qIFJlbmRlckxpbmVCcmVhay5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzIz
NCw3ICsyNzIzNCw2IEBACiAJCQkJMzEwNjAzNzAxNDMyN0QyRTAwQUJGNEJBIC8qIFdlYktpdENT
U0ZpbHRlclZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0OTgzOTE1OTBGMUU3NzY5MDBDMjM3
ODIgLyogV2ViS2l0Q1NTTWF0cml4LmggaW4gSGVhZGVycyAqLywKIAkJCQk4QUE2MUQwMDE0NEQ1
OTVCMDBGMzczNTAgLyogV2ViS2l0Q1NTUmVnaW9uUnVsZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
NkM2Q0NBQjExOURDNDJCOTAwNDNENURCIC8qIFdlYktpdENTU1Jlc291cmNlVmFsdWUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDOUFERDIzMENDNDAzMjYwMDA5OEM0QyAvKiBXZWJLaXRDU1NUcmFu
c2Zvcm1WYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJM0ZGRkY5QTkxNTlEOUE1NTAwMjBCQkQ1
IC8qIFdlYktpdENTU1ZpZXdwb3J0UnVsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0M0OEE2RDEx
OTFDOUQ2NTAwMDI2Njc0IC8qIFdlYktpdE5hbWVzcGFjZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0y
OTQ2OCw3ICsyOTQ2Nyw2IEBACiAJCQkJMUE4RjZCQzUwREI1NUNEQzAwMURCNzk0IC8qIE1hbmlm
ZXN0UGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzMzA5REY3MDk5RTY0OTIwMDU2RTU4
MSAvKiBtYXJrdXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTcyOEMzMTMxMjY4RTQzOTAwNDFF
ODlCIC8qIE1hcmt1cEFjY3VtdWxhdG9yLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTZDNTY4Q0Iw
MTlEQUZFQTAwMDQzMENBMiAvKiBNYXNrSW1hZ2VPcGVyYXRpb24uY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJRkFCRTcyRjQxMDU5QzFFQjAwRDk5OUREIC8qIE1hdGhNTEVsZW1lbnQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJRkFCRTcyRkQxMDU5QzIxMTAwRDk5OUREIC8qIE1hdGhNTEVsZW1lbnRG
YWN0b3J5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZBQkU3MkY2MTA1OUMxRUIwMEQ5OTlERCAv
KiBNYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMzA1
NTAsNyArMzA1NDgsNiBAQAogCQkJCTMxMDYwMzZGMTQzMjdEMkUwMEFCRjRCQSAvKiBXZWJLaXRD
U1NGaWx0ZXJWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0OTgzOTE1ODBGMUU3NzY5MDBD
MjM3ODIgLyogV2ViS2l0Q1NTTWF0cml4LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCThBQTYxQ0ZG
MTQ0RDU5NUIwMEYzNzM1MCAvKiBXZWJLaXRDU1NSZWdpb25SdWxlLmNwcCBpbiBTb3VyY2VzICov
LAotCQkJCTZDNkNDQUIwMTlEQzQyQjkwMDQzRDVEQiAvKiBXZWJLaXRDU1NSZXNvdXJjZVZhbHVl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDOUFERDgwMENDNDA5MjIwMDA5OEM0QyAvKiBXZWJL
aXRDU1NUcmFuc2Zvcm1WYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzRkZGRjlBODE1OUQ5
QTU1MDAyMEJCRDUgLyogV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTFBMTQxNEI1MTNBMEYwNTAwMDE5OTk2QyAvKiBXZWJLaXRGb250RmFtaWx5TmFtZXMuY3Bw
IGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTG9hZGVy
U3RyYXRlZ3kuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xvYWRlclN0cmF0ZWd5LmNwcApp
bmRleCA4OTlmZDUyLi40YmI4OWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
TG9hZGVyU3RyYXRlZ3kuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Mb2FkZXJTdHJh
dGVneS5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJMb2FkZXJTdHJhdGVneS5oIgog
CiAjaW5jbHVkZSAiQmxvYlJlZ2lzdHJ5SW1wbC5oIgorI2luY2x1ZGUgIlBpbmdIYW5kbGUuaCIK
ICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgogI2luY2x1ZGUgIlJlc291cmNlTG9hZFNjaGVk
dWxlci5oIgogCkBAIC00Nyw0ICs0OCwxMCBAQCBCbG9iUmVnaXN0cnkqIExvYWRlclN0cmF0ZWd5
OjpjcmVhdGVCbG9iUmVnaXN0cnkoKQogICAgIHJldHVybiBuZXcgQmxvYlJlZ2lzdHJ5SW1wbDsK
IH0KIAordm9pZCBMb2FkZXJTdHJhdGVneTo6Y3JlYXRlUGluZ0hhbmRsZShOZXR3b3JraW5nQ29u
dGV4dCogbmV0d29ya2luZ0NvbnRleHQsIFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBz
aG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSkKK3sKKyAgICAvLyBQaW5nSGFuZGxlIG1hbmFnZXMg
aXRzIG93biBsaWZldGltZSwgZGVsZXRpbmcgaXRzZWxmIHdoZW4gaXRzIHB1cnBvc2UgaGFzIGJl
ZW4gZnVsZmlsbGVkLgorICAgIG5ldyBQaW5nSGFuZGxlKG5ldHdvcmtpbmdDb250ZXh0LCByZXF1
ZXN0LCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSwgUGluZ0hhbmRsZTo6VXNlc0FzeW5jQ2Fs
bGJhY2tzOjpObyk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9Mb2FkZXJTdHJhdGVneS5oIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0xvYWRlclN0cmF0ZWd5LmgKaW5kZXggNGI3ZTFmYS4uZTE2NTNhOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0xvYWRlclN0cmF0ZWd5LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0xvYWRlclN0cmF0ZWd5LmgKQEAgLTMyLDYgKzMyLDcgQEAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgQmxvYlJlZ2lzdHJ5OworY2xhc3MgRnJhbWU7CiBjbGFzcyBOZXR3
b3JraW5nQ29udGV4dDsKIGNsYXNzIFJlc291cmNlRXJyb3I7CiBjbGFzcyBSZXNvdXJjZUxvYWRT
Y2hlZHVsZXI7CkBAIC00Niw2ICs0Nyw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgQmxvYlJl
Z2lzdHJ5KiBjcmVhdGVCbG9iUmVnaXN0cnkoKTsKIAorICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVQ
aW5nSGFuZGxlKE5ldHdvcmtpbmdDb250ZXh0KiwgUmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBzaG91
bGRVc2VDcmVkZW50aWFsU3RvcmFnZSk7CisKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIH5Mb2Fk
ZXJTdHJhdGVneSgpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Bp
bmdMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuY3BwCmluZGV4
IDA0YTY4YjEuLjU4OWM4NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QaW5n
TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRlci5jcHAKQEAg
LTM5LDcgKzM5LDkgQEAKICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgogI2luY2x1ZGUg
IkhUVFBIZWFkZXJOYW1lcy5oIgogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5o
IgorI2luY2x1ZGUgIkxvYWRlclN0cmF0ZWd5LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1
ZGUgIlBsYXRmb3JtU3RyYXRlZ2llcy5oIgogI2luY2x1ZGUgIlByb2dyZXNzVHJhY2tlci5oIgog
I2luY2x1ZGUgIlJlc291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0Lmgi
CkBAIC02NCw3ICs2Niw3IEBAIHZvaWQgUGluZ0xvYWRlcjo6bG9hZEltYWdlKEZyYW1lJiBmcmFt
ZSwgY29uc3QgVVJMJiB1cmwpCiAgICAgICAgIHJlcXVlc3Quc2V0SFRUUFJlZmVycmVyKHJlZmVy
cmVyKTsKICAgICBmcmFtZS5sb2FkZXIoKS5hZGRFeHRyYUZpZWxkc1RvU3VicmVzb3VyY2VSZXF1
ZXN0KHJlcXVlc3QpOwogCi0gICAgY3JlYXRlUGluZ0xvYWRlcihmcmFtZSwgcmVxdWVzdCk7Cisg
ICAgc3RhcnRQaW5nTG9hZChmcmFtZSwgcmVxdWVzdCk7CiB9CiAKIC8vIGh0dHA6Ly93d3cud2hh
dHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVsdGlwYWdlL2xpbmtzLmh0bWwj
aHlwZXJsaW5rLWF1ZGl0aW5nCkBAIC05MCw3ICs5Miw3IEBAIHZvaWQgUGluZ0xvYWRlcjo6c2Vu
ZFBpbmcoRnJhbWUmIGZyYW1lLCBjb25zdCBVUkwmIHBpbmdVUkwsIGNvbnN0IFVSTCYgZGVzdGlu
YXRpCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBjcmVhdGVQaW5nTG9hZGVyKGZyYW1lLCByZXF1
ZXN0KTsKKyAgICBzdGFydFBpbmdMb2FkKGZyYW1lLCByZXF1ZXN0KTsKIH0KIAogdm9pZCBQaW5n
TG9hZGVyOjpzZW5kVmlvbGF0aW9uUmVwb3J0KEZyYW1lJiBmcmFtZSwgY29uc3QgVVJMJiByZXBv
cnRVUkwsIFBhc3NSZWZQdHI8Rm9ybURhdGE+IHJlcG9ydCkKQEAgLTEwNSwxNyArMTA3LDEwIEBA
IHZvaWQgUGluZ0xvYWRlcjo6c2VuZFZpb2xhdGlvblJlcG9ydChGcmFtZSYgZnJhbWUsIGNvbnN0
IFVSTCYgcmVwb3J0VVJMLCBQYXNzUmVmCiAgICAgaWYgKCFyZWZlcnJlci5pc0VtcHR5KCkpCiAg
ICAgICAgIHJlcXVlc3Quc2V0SFRUUFJlZmVycmVyKHJlZmVycmVyKTsKIAotICAgIGNyZWF0ZVBp
bmdMb2FkZXIoZnJhbWUsIHJlcXVlc3QpOworICAgIHN0YXJ0UGluZ0xvYWQoZnJhbWUsIHJlcXVl
c3QpOwogfQogCi12b2lkIFBpbmdMb2FkZXI6OmNyZWF0ZVBpbmdMb2FkZXIoRnJhbWUmIGZyYW1l
LCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgLy8gTm8gbmVlZCB0byBmcmVlIHRo
ZSBQaW5nTG9hZGVyIG9iamVjdCBvciBtYW5hZ2UgaXQgdmlhIGEgc21hcnQgcG9pbnRlciAtIGl0
IHdpbGwga2lsbCBpdHNlbGYgYXMgc29vbiBhcyBpdCByZWNlaXZlcyBhIHJlc3BvbnNlLgotICAg
IG5ldyBQaW5nTG9hZGVyKGZyYW1lLCByZXF1ZXN0KTsKLX0KLQotUGluZ0xvYWRlcjo6UGluZ0xv
YWRlcihGcmFtZSYgZnJhbWUsIFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKLSAgICA6IG1fdGlt
ZW91dCgqdGhpcywgJlBpbmdMb2FkZXI6OnRpbWVvdXRUaW1lckZpcmVkKQordm9pZCBQaW5nTG9h
ZGVyOjpzdGFydFBpbmdMb2FkKEZyYW1lJiBmcmFtZSwgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
KQogewogICAgIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciA9IGZyYW1lLnBhZ2UoKS0+cHJvZ3Jl
c3MoKS5jcmVhdGVVbmlxdWVJZGVudGlmaWVyKCk7CiAgICAgLy8gRklYTUU6IFdoeSBhY3RpdmVE
b2N1bWVudExvYWRlcj8gSSB3b3VsZCBoYXZlIGV4cGVjdGVkIGRvY3VtZW50TG9hZGVyKCkuCkBA
IC0xMjMsMjAgKzExOCwxMSBAQCBQaW5nTG9hZGVyOjpQaW5nTG9hZGVyKEZyYW1lJiBmcmFtZSwg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogICAgIC8vIERvY3VtZW50IGluIHRoZSBGcmFtZSwg
YnV0IHRoZSBhY3RpdmVEb2N1bWVudExvYWRlciB3aWxsIGJlIGFzc29jaWF0ZWQKICAgICAvLyB3
aXRoIHRoZSBwcm92aXNpb25hbCBEb2N1bWVudExvYWRlciBpZiB0aGVyZSBpcyBhIHByb3Zpc2lv
bmFsCiAgICAgLy8gRG9jdW1lbnRMb2FkZXIuCi0gICAgbV9zaG91bGRVc2VDcmVkZW50aWFsU3Rv
cmFnZSA9IGZyYW1lLmxvYWRlcigpLmNsaWVudCgpLnNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdl
KGZyYW1lLmxvYWRlcigpLmFjdGl2ZURvY3VtZW50TG9hZGVyKCksIGlkZW50aWZpZXIpOwotICAg
IG1faGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShmcmFtZS5sb2FkZXIoKS5uZXR3b3Jr
aW5nQ29udGV4dCgpLCByZXF1ZXN0LCB0aGlzLCBmYWxzZSwgZmFsc2UpOworICAgIGJvb2wgc2hv
dWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UgPSBmcmFtZS5sb2FkZXIoKS5jbGllbnQoKS5zaG91bGRV
c2VDcmVkZW50aWFsU3RvcmFnZShmcmFtZS5sb2FkZXIoKS5hY3RpdmVEb2N1bWVudExvYWRlcigp
LCBpZGVudGlmaWVyKTsKIAogICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Y29udGludWVB
ZnRlclBpbmdMb2FkZXIoZnJhbWUsIGlkZW50aWZpZXIsIGZyYW1lLmxvYWRlcigpLmFjdGl2ZURv
Y3VtZW50TG9hZGVyKCksIHJlcXVlc3QsIFJlc291cmNlUmVzcG9uc2UoKSk7CiAKLSAgICAvLyBJ
ZiB0aGUgc2VydmVyIG5ldmVyIHJlc3BvbmRzLCBGcmFtZUxvYWRlciB3b24ndCBiZSBhYmxlIHRv
IGNhbmNlbCB0aGlzIGxvYWQgYW5kCi0gICAgLy8gd2UnbGwgc2l0IGhlcmUgd2FpdGluZyBmb3Jl
dmVyLiBTZXQgYSB2ZXJ5IGdlbmVyb3VzIHRpbWVvdXQsIGp1c3QgaW4gY2FzZS4KLSAgICBtX3Rp
bWVvdXQuc3RhcnRPbmVTaG90KDYwMDAwKTsKLX0KLQotUGluZ0xvYWRlcjo6flBpbmdMb2FkZXIo
KQotewotICAgIGlmIChtX2hhbmRsZSkKLSAgICAgICAgbV9oYW5kbGUtPmNhbmNlbCgpOworICAg
IHBsYXRmb3JtU3RyYXRlZ2llcygpLT5sb2FkZXJTdHJhdGVneSgpLT5jcmVhdGVQaW5nSGFuZGxl
KGZyYW1lLmxvYWRlcigpLm5ldHdvcmtpbmdDb250ZXh0KCksIHJlcXVlc3QsIHNob3VsZFVzZUNy
ZWRlbnRpYWxTdG9yYWdlKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1BpbmdMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmgKaW5k
ZXggNTE1ZDk3ZC4uMDQ1ZGUxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Bp
bmdMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRlci5oCkBAIC0z
Miw0OCArMzIsMjMgQEAKICNpZm5kZWYgUGluZ0xvYWRlcl9oCiAjZGVmaW5lIFBpbmdMb2FkZXJf
aAogCi0jaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGVDbGllbnQuaCIKLSNpbmNsdWRlICJUaW1lci5o
IgotI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4K
KyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIEZvcm1EYXRhOwogY2xhc3MgRnJhbWU7CiBjbGFzcyBVUkw7Ci1jbGFzcyBSZXNvdXJjZUVy
cm9yOwotY2xhc3MgUmVzb3VyY2VIYW5kbGU7Ci1jbGFzcyBSZXNvdXJjZVJlc3BvbnNlOworY2xh
c3MgUmVzb3VyY2VSZXF1ZXN0OwogCi0vLyBUaGlzIGNsYXNzIHRyaWdnZXJzIGFzeW5jaHJvbm91
cyBsb2FkcyBpbmRlcGVuZGVudCBvZiBGcmFtZSBzdGF5aW5nIGFsaXZlIChpLmUuLCBhdWRpdGlu
ZyBwaW5nYmFja3MpLgotLy8gU2luY2Ugbm90aGluZyBkZXBlbmRzIG9uIHJlc291cmNlcyBsb2Fk
ZWQgdGhyb3VnaCB0aGlzIGNsYXNzLCB3ZSBqdXN0IHdhbnQKLS8vIHRvIGFsbG93IHRoZSBsb2Fk
IHRvIGxpdmUgbG9uZyBlbm91Z2ggdG8gZW5zdXJlIHRoZSBtZXNzYWdlIHdhcyBhY3R1YWxseSBz
ZW50LgotLy8gVGhlcmVmb3JlLCBhcyBzb29uIGFzIGEgY2FsbGJhY2sgaXMgcmVjZWl2ZWQgZnJv
bSB0aGUgUmVzb3VyY2VIYW5kbGUsIHRoaXMgY2xhc3MgCi0vLyB3aWxsIGNhbmNlbCB0aGUgbG9h
ZCBhbmQgZGVsZXRlIGl0c2VsZi4KLWNsYXNzIFBpbmdMb2FkZXIgOiBwcml2YXRlIFJlc291cmNl
SGFuZGxlQ2xpZW50IHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShQaW5nTG9hZGVyKTsgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CitjbGFzcyBQaW5nTG9hZGVyIHsKIHB1YmxpYzoKICAgICBz
dGF0aWMgdm9pZCBsb2FkSW1hZ2UoRnJhbWUmLCBjb25zdCBVUkwmKTsKICAgICBzdGF0aWMgdm9p
ZCBzZW5kUGluZyhGcmFtZSYsIGNvbnN0IFVSTCYgcGluZ1VSTCwgY29uc3QgVVJMJiBkZXN0aW5h
dGlvblVSTCk7CiAgICAgc3RhdGljIHZvaWQgc2VuZFZpb2xhdGlvblJlcG9ydChGcmFtZSYsIGNv
bnN0IFVSTCYgcmVwb3J0VVJMLCBQYXNzUmVmUHRyPEZvcm1EYXRhPiByZXBvcnQpOwogCi0gICAg
dmlydHVhbCB+UGluZ0xvYWRlcigpOwotCiBwcml2YXRlOgotICAgIHN0YXRpYyB2b2lkIGNyZWF0
ZVBpbmdMb2FkZXIoRnJhbWUmLCBSZXNvdXJjZVJlcXVlc3QmKTsKLSAgICBQaW5nTG9hZGVyKEZy
YW1lJiwgUmVzb3VyY2VSZXF1ZXN0Jik7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJl
c3BvbnNlKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIG92ZXJyaWRl
IHsgZGVsZXRlIHRoaXM7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVzb3Vy
Y2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgdW5zaWduZWQsIGludCkgb3ZlcnJpZGUgeyBkZWxldGUg
dGhpczsgfQotICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxl
KiwgZG91YmxlKSBvdmVycmlkZSB7IGRlbGV0ZSB0aGlzOyB9Ci0gICAgdmlydHVhbCB2b2lkIGRp
ZEZhaWwoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZUVycm9yJikgb3ZlcnJpZGUgeyBk
ZWxldGUgdGhpczsgfQotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFn
ZShSZXNvdXJjZUhhbmRsZSopICBvdmVycmlkZSB7IHJldHVybiBtX3Nob3VsZFVzZUNyZWRlbnRp
YWxTdG9yYWdlOyB9Ci0gICAgdm9pZCB0aW1lb3V0VGltZXJGaXJlZCgpIHsgZGVsZXRlIHRoaXM7
IH0KLQotICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gbV9oYW5kbGU7Ci0gICAgVGltZXIgbV90
aW1lb3V0OwotICAgIGJvb2wgbV9zaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZTsKKyAgICBzdGF0
aWMgdm9pZCBzdGFydFBpbmdMb2FkKEZyYW1lJiwgUmVzb3VyY2VSZXF1ZXN0Jik7CiB9OwogCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1BpbmdIYW5kbGUu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUGluZ0hhbmRsZS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUxOGY1ZTgKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1BpbmdIYW5kbGUuaApAQCAtMCwwICsxLDgy
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiBQaW5nSGFuZGxlX2gKKyNkZWZpbmUgUGluZ0hhbmRsZV9oCisKKyNpbmNsdWRlICJSZXNvdXJj
ZUhhbmRsZS5oIgorI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlQ2xpZW50LmgiCisjaW5jbHVkZSAi
VGltZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisvLyBUaGlzIGNsYXNzIHRyaWdnZXJz
IGFzeW5jaHJvbm91cyBsb2FkcyBpbmRlcGVuZGVudCBvZiB0aGUgbmV0d29ya2luZyBjb250ZXh0
IHN0YXlpbmcgYWxpdmUgKGkuZS4sIGF1ZGl0aW5nIHBpbmdiYWNrcykuCisvLyBUaGUgb2JqZWN0
IGp1c3QgbmVlZHMgdG8gbGl2ZSBsb25nIGVub3VnaCB0byBlbnN1cmUgdGhlIG1lc3NhZ2Ugd2Fz
IGFjdHVhbGx5IHNlbnQuCisvLyBBcyBzb29uIGFzIGFueSBjYWxsYmFjayBpcyByZWNlaXZlZCBm
cm9tIHRoZSBSZXNvdXJjZUhhbmRsZSwgdGhpcyBjbGFzcyB3aWxsIGNhbmNlbCB0aGUgbG9hZCBh
bmQgZGVsZXRlIGl0c2VsZi4KKworY2xhc3MgUGluZ0hhbmRsZSA6IHByaXZhdGUgUmVzb3VyY2VI
YW5kbGVDbGllbnQgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFBpbmdIYW5kbGUpOyBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBlbnVtIGNsYXNzIFVzZXNBc3luY0Nh
bGxiYWNrcyB7CisgICAgICAgIFllcywKKyAgICAgICAgTm8sCisgICAgfTsKKyAgICAKKyAgICBQ
aW5nSGFuZGxlKE5ldHdvcmtpbmdDb250ZXh0KiBuZXR3b3JraW5nQ29udGV4dCwgY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBib29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLCBV
c2VzQXN5bmNDYWxsYmFja3MgdXNlQXN5bmNDYWxsYmFja3MpCisgICAgICAgIDogbV90aW1lb3V0
VGltZXIoKnRoaXMsICZQaW5nSGFuZGxlOjp0aW1lb3V0VGltZXJGaXJlZCkKKyAgICAgICAgLCBt
X3Nob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKQor
ICAgICAgICAsIG1fdXNlc0FzeW5jQ2FsbGJhY2tzKHVzZUFzeW5jQ2FsbGJhY2tzKQorICAgIHsK
KyAgICAgICAgbV9oYW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKG5ldHdvcmtpbmdDb250
ZXh0LCByZXF1ZXN0LCB0aGlzLCBmYWxzZSwgZmFsc2UpOworCisgICAgICAgIC8vIElmIHRoZSBz
ZXJ2ZXIgbmV2ZXIgcmVzcG9uZHMsIHRoaXMgb2JqZWN0IHdpbGwgaGFuZyBhcm91bmQgZm9yZXZl
ci4KKyAgICAgICAgLy8gU2V0IGEgdmVyeSBnZW5lcm91cyB0aW1lb3V0LCBqdXN0IGluIGNhc2Uu
CisgICAgICAgIG1fdGltZW91dFRpbWVyLnN0YXJ0T25lU2hvdCg2MDAwMCk7CisgICAgfQorCitw
cml2YXRlOgorICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5k
bGUqLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgb3ZlcnJpZGUgeyBkZWxldGUgdGhpczsgfQor
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNo
YXIqLCB1bnNpZ25lZCwgaW50KSBvdmVycmlkZSB7IGRlbGV0ZSB0aGlzOyB9CisgICAgdmlydHVh
bCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBkb3VibGUpIG92ZXJyaWRl
IHsgZGVsZXRlIHRoaXM7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChSZXNvdXJjZUhhbmRs
ZSosIGNvbnN0IFJlc291cmNlRXJyb3ImKSBvdmVycmlkZSB7IGRlbGV0ZSB0aGlzOyB9CisgICAg
dmlydHVhbCBib29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKFJlc291cmNlSGFuZGxlKikg
IG92ZXJyaWRlIHsgcmV0dXJuIG1fc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2U7IH0KKyAgICB2
aXJ0dWFsIGJvb2wgdXNlc0FzeW5jQ2FsbGJhY2tzKCkgeyByZXR1cm4gbV91c2VzQXN5bmNDYWxs
YmFja3MgPT0gVXNlc0FzeW5jQ2FsbGJhY2tzOjpZZXM7IH0KKyAgICB2b2lkIHRpbWVvdXRUaW1l
ckZpcmVkKCkgeyBkZWxldGUgdGhpczsgfQorCisgICAgdmlydHVhbCB+UGluZ0hhbmRsZSgpCisg
ICAgeworICAgICAgICBpZiAobV9oYW5kbGUpCisgICAgICAgICAgICBtX2hhbmRsZS0+Y2FuY2Vs
KCk7CisgICAgfQorCisgICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBtX2hhbmRsZTsKKyAgICBU
aW1lciBtX3RpbWVvdXRUaW1lcjsKKyAgICBib29sIG1fc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3Jh
Z2U7CisgICAgVXNlc0FzeW5jQ2FsbGJhY2tzIG1fdXNlc0FzeW5jQ2FsbGJhY2tzOworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUGluZ0hhbmRsZV9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
aW5kZXggMzczN2NhMC4uNGYyYTgzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE1
LTA3LTA4ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBNb3Zl
IFBpbmdMb2FkZXJzIHRvIHRoZSBOZXR3b3JraW5nUHJvY2Vzcy4KKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzE4ODYwMjYzPiBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE0NjcxMAorCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpsb2FkUGluZyk6IENy
ZWF0ZSBhIFBpbmdIYW5kbGUgYW5kIHRoZW4gcmV0dXJuLgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAg
IAorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVn
aWVzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVQ
aW5nSGFuZGxlKTogSWYgdGhlIE5ldHdvcmsgcHJvY2VzcyBpcyBlbmFibGVkLAorICAgICAgICAg
IGNvbXBpbGUgdGhlIGFwcHJvcHJpYXRlIGxvYWQgcGFyYW1ldGVycyBhbmQgdGhlbiBtZXNzYWdl
IHRvIGl0LgorICAgICAgICAgIE90aGVyd2lzZSwgdXNlIHRoZSBkZWZhdWx0IGluLXByb2Nlc3Mg
UGluZ0hhbmRsZS4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRm
b3JtU3RyYXRlZ2llcy5oOgorCiAyMDE1LTA3LTA4ICBCZXRoIERha2luICA8YmRha2luQGFwcGxl
LmNvbT4KIAogICAgICAgICBBZGQgYWN0aW9ucyB0byBpbWFnZSBwcmV2aWV3cwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IDU0ZGUzYzQuLjY1YmEyZTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJOZXR3b3JrUmVz
b3VyY2VMb2FkZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0
LmgiCiAjaW5jbHVkZSAiU2Vzc2lvblRyYWNrZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1BpbmdI
YW5kbGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtQ29va2llSmFyLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9SZXNvdXJjZUxvYWRlck9wdGlvbnMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jl
c291cmNlUmVxdWVzdC5oPgpAQCAtMTI2LDYgKzEyNywxNCBAQCB2b2lkIE5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpwZXJmb3JtU3luY2hyb25vdXNMb2FkKGNvbnN0IE5ldHdvcmtSZXNv
dXJjZQogICAgIGxvYWRlci0+c3RhcnQoKTsKIH0KIAordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6bG9hZFBpbmcoY29uc3QgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMm
IGxvYWRQYXJhbWV0ZXJzKQoreworICAgIFJlZlB0cjxOZXR3b3JraW5nQ29udGV4dD4gY29udGV4
dCA9IFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpjcmVhdGUobG9hZFBhcmFtZXRlcnMuc2Vzc2lv
bklELCBsb2FkUGFyYW1ldGVycy5zaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGly
ZWN0KTsKKworICAgIC8vIFBpbmdIYW5kbGUgbWFuYWdlcyBpdHMgb3duIGxpZmV0aW1lLCBkZWxl
dGluZyBpdHNlbGYgd2hlbiBpdHMgcHVycG9zZSBoYXMgYmVlbiBmdWxmaWxsZWQuCisgICAgbmV3
IFBpbmdIYW5kbGUoY29udGV4dC5nZXQoKSwgbG9hZFBhcmFtZXRlcnMucmVxdWVzdCwgbG9hZFBh
cmFtZXRlcnMuYWxsb3dTdG9yZWRDcmVkZW50aWFscyA9PSBBbGxvd1N0b3JlZENyZWRlbnRpYWxz
LCBQaW5nSGFuZGxlOjpVc2VzQXN5bmNDYWxsYmFja3M6Olllcyk7Cit9CisKIHZvaWQgTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlbW92ZUxvYWRJZGVudGlmaWVyKFJlc291cmNlTG9h
ZElkZW50aWZpZXIgaWRlbnRpZmllcikKIHsKICAgICBSZWZQdHI8TmV0d29ya1Jlc291cmNlTG9h
ZGVyPiBsb2FkZXIgPSBtX25ldHdvcmtSZXNvdXJjZUxvYWRlcnMuZ2V0KGlkZW50aWZpZXIpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5kZXggMzJhMzEwNS4uODIyZGU1OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5oCkBAIC03Miw2ICs3Miw3IEBAIHByaXZhdGU6CiAgICAgCiAgICAg
dm9pZCBzY2hlZHVsZVJlc291cmNlTG9hZChjb25zdCBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1l
dGVycyYpOwogICAgIHZvaWQgcGVyZm9ybVN5bmNocm9ub3VzTG9hZChjb25zdCBOZXR3b3JrUmVz
b3VyY2VMb2FkUGFyYW1ldGVycyYsIFBhc3NSZWZQdHI8TWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpQZXJmb3JtU3luY2hyb25vdXNMb2FkOjpEZWxheWVkUmVwbHk+KTsK
KyAgICB2b2lkIGxvYWRQaW5nKGNvbnN0IE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJik7
CiAKICAgICB2b2lkIHJlbW92ZUxvYWRJZGVudGlmaWVyKFJlc291cmNlTG9hZElkZW50aWZpZXIp
OwogICAgIHZvaWQgc2V0RGVmZXJzTG9hZGluZyhSZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBib29s
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggMDNi
M2RkNC4uNGMwYTdhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2Fn
ZXMuaW4KQEAgLTI2LDYgKzI2LDcgQEAgbWVzc2FnZXMgLT4gTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogCiAgICAgU2NoZWR1bGVSZXNvdXJjZUxvYWQoV2Vi
S2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyByZXNvdXJjZUxvYWRQYXJhbWV0ZXJz
KQogICAgIFBlcmZvcm1TeW5jaHJvbm91c0xvYWQoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2Fk
UGFyYW1ldGVycyByZXNvdXJjZUxvYWRQYXJhbWV0ZXJzKSAtPiAoV2ViQ29yZTo6UmVzb3VyY2VF
cnJvciBlcnJvciwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwgVmVjdG9yPGNo
YXI+IGRhdGEpIERlbGF5ZWQKKyAgICBMb2FkUGluZyhXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxv
YWRQYXJhbWV0ZXJzIHJlc291cmNlTG9hZFBhcmFtZXRlcnMpCiAgICAgUmVtb3ZlTG9hZElkZW50
aWZpZXIodWludDY0X3QgcmVzb3VyY2VMb2FkSWRlbnRpZmllcikKICAgICBTZXREZWZlcnNMb2Fk
aW5nKHVpbnQ2NF90IHJlc291cmNlTG9hZElkZW50aWZpZXIsIGJvb2wgZGVmZXJzKQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRm
b3JtU3RyYXRlZ2llcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKaW5kZXggMDQxMzkzMC4uYWU0YjY1NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0
Zm9ybVN0cmF0ZWdpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcApAQCAtNTUsNiArNTUsNyBAQAogI2lu
Y2x1ZGUgPFdlYkNvcmUvUGFnZUdyb3VwLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUNv
b2tpZUphci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1QYXN0ZWJvYXJkLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9Qcm9ncmVzc1RyYWNrZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291
cmNlRXJyb3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvU3RvcmFnZU5hbWVzcGFjZS5oPgpAQCAtMjQ4LDYgKzI0OSwyOCBAQCB2b2lkIFdlYlBs
YXRmb3JtU3RyYXRlZ2llczo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29u
dGV4dCogY29udGV4dAogICAgIH0KIH0KIAordm9pZCBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNy
ZWF0ZVBpbmdIYW5kbGUoTmV0d29ya2luZ0NvbnRleHQqIG5ldHdvcmtpbmdDb250ZXh0LCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UpCit7
CisgICAgYXV0byYgd2ViUHJvY2VzcyA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpOworICAgIGlm
ICghd2ViUHJvY2Vzcy51c2VzTmV0d29ya1Byb2Nlc3MoKSkgeworICAgICAgICBMb2FkZXJTdHJh
dGVneTo6Y3JlYXRlUGluZ0hhbmRsZShuZXR3b3JraW5nQ29udGV4dCwgcmVxdWVzdCwgc2hvdWxk
VXNlQ3JlZGVudGlhbFN0b3JhZ2UpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgV2Vi
RnJhbWVOZXR3b3JraW5nQ29udGV4dCogd2ViQ29udGV4dCA9IHN0YXRpY19jYXN0PFdlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQqPihuZXR3b3JraW5nQ29udGV4dCk7CisgICAgV2ViRnJhbWVMb2Fk
ZXJDbGllbnQqIHdlYkZyYW1lTG9hZGVyQ2xpZW50ID0gd2ViQ29udGV4dC0+d2ViRnJhbWVMb2Fk
ZXJDbGllbnQoKTsKKyAgICBXZWJGcmFtZSogd2ViRnJhbWUgPSB3ZWJGcmFtZUxvYWRlckNsaWVu
dCA/IHdlYkZyYW1lTG9hZGVyQ2xpZW50LT53ZWJGcmFtZSgpIDogbnVsbHB0cjsKKyAgICBXZWJQ
YWdlKiB3ZWJQYWdlID0gd2ViRnJhbWUgPyB3ZWJGcmFtZS0+cGFnZSgpIDogbnVsbHB0cjsKKyAg
ICAKKyAgICBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyBsb2FkUGFyYW1ldGVyczsKKyAg
ICBsb2FkUGFyYW1ldGVycy5yZXF1ZXN0ID0gcmVxdWVzdDsKKyAgICBsb2FkUGFyYW1ldGVycy5z
ZXNzaW9uSUQgPSB3ZWJQYWdlID8gd2ViUGFnZS0+c2Vzc2lvbklEKCkgOiBTZXNzaW9uSUQ6OmRl
ZmF1bHRTZXNzaW9uSUQoKTsKKyAgICBsb2FkUGFyYW1ldGVycy5hbGxvd1N0b3JlZENyZWRlbnRp
YWxzID0gc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UgPyBBbGxvd1N0b3JlZENyZWRlbnRpYWxz
IDogRG9Ob3RBbGxvd1N0b3JlZENyZWRlbnRpYWxzOworICAgIGxvYWRQYXJhbWV0ZXJzLnNob3Vs
ZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QgPSBuZXR3b3JraW5nQ29udGV4dC0+
c2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCgpOworCisgICAgd2ViUHJv
Y2Vzcy5uZXR3b3JrQ29ubmVjdGlvbigpLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpMb2FkUGluZyhsb2FkUGFyYW1ldGVycyksIDAp
OworfQorCiBCbG9iUmVnaXN0cnkqIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlQmxvYlJl
Z2lzdHJ5KCkKIHsKICAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnVzZXNOZXR3b3Jr
UHJvY2VzcygpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKaW5kZXggM2IyZmNiMS4u
YzU4NDFhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCkBAIC02Myw2ICs2Myw3
IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBXZWJDb3JlOjpSZXNvdXJjZUxvYWRTY2hlZHVsZXIq
IHJlc291cmNlTG9hZFNjaGVkdWxlcigpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBsb2Fk
UmVzb3VyY2VTeW5jaHJvbm91c2x5KFdlYkNvcmU6Ok5ldHdvcmtpbmdDb250ZXh0KiwgdW5zaWdu
ZWQgbG9uZyByZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmLCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFscywgV2ViQ29yZTo6Q2xpZW50Q3JlZGVu
dGlhbFBvbGljeSwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UmLCBWZWN0b3I8Y2hhcj4mIGRhdGEpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgV2ViQ29y
ZTo6QmxvYlJlZ2lzdHJ5KiBjcmVhdGVCbG9iUmVnaXN0cnkoKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIHZvaWQgY3JlYXRlUGluZ0hhbmRsZShXZWJDb3JlOjpOZXR3b3JraW5nQ29udGV4dCosIFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2Up
IG92ZXJyaWRlOwogI2VuZGlmCiAKICAgICAvLyBXZWJDb3JlOjpQbHVnaW5TdHJhdGVneQo=
</data>
<flag name="commit-queue"
          id="281479"
          type_id="3"
          status="-"
          setter="dbates"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256408</attachid>
            <date>2015-07-08 15:00:22 -0700</date>
            <delta_ts>2015-07-08 15:08:28 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>Bug146710.patch</filename>
            <type>text/plain</type>
            <size>30307</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">RnJvbSA3NDM2MGQ3YzJhMGYwOGNhMWI3NTVhODM1ZTQ2Y2Y1ZmY4MTM4YWQ2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgQmF0ZXMgPGRhYmF0ZXNAYXBwbGUuY29tPgpEYXRl
OiBXZWQsIDggSnVsIDIwMTUgMTQ6NTc6NTQgLTA3MDAKU3ViamVjdDogW1BBVENIXSBNb3ZlIFBp
bmdMb2FkZXJzIHRvIHRoZSBOZXR3b3JraW5nUHJvY2Vzcy4KIDxyZGFyOi8vcHJvYmxlbS8xODg2
MDI2Mz4gYW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDY3MTAK
ClBhdGNoIGJ5IEJyYWR5IEVpZHNvbiA8YmVpZHNvbkBhcHBsZS5jb20+IG9uIDIwMTUtMDctMDgK
UmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KClNvdXJjZS9XZWJDb3JlOgoKTm8gbmV3IHRlc3RzLgpU
aGVyZSdzIG5vIGN1cnJlbnQgc29sdXRpb24gZm9yIGNvbW11bmljYXRpbmcgYmFjayB0byBhIHBh
Z2UgdGhhdCBhIHBpbmcgbG9hZCBoYXMgcmVhY2hlZCBpdHMgdGFyZ2V0LgpVbnRpbCB3ZSBoYXZl
IHN1Y2ggYSBzb2x1dGlvbiwgYW55IGF0dGVtcHQgYXQgYSBsYXlvdXQgdGVzdCB3aWxsIGJlIGZy
YWdpbGUgYXQgYmVzdC4KCiogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgoKKiBs
b2FkZXIvTG9hZGVyU3RyYXRlZ3kuY3BwOgooV2ViQ29yZTo6TG9hZGVyU3RyYXRlZ3k6OmNyZWF0
ZVBpbmdIYW5kbGUpOiBEZWZhdWx0IGltcGxlbWVudGF0aW9uIGlzIGNyZWF0ZSB0aGUgUGluZ0hh
bmRsZSBkaXJlY3RseS4KKiBsb2FkZXIvTG9hZGVyU3RyYXRlZ3kuaDoKClBpbmdMb2FkZXIgYmVj
b21lcyBhIHN0YXRpYyBjbGFzcyBmb3Igbm93IHRoYXQgY3JhZnRzIHRoZSBSZXNvdXJjZVJlcXVl
c3QgdGhlbiBwYXNzZXMgaXQgb2ZmCnRvIHRoZSBMb2FkZXJTdHJhdGVneToKKiBsb2FkZXIvUGlu
Z0xvYWRlci5jcHA6CihXZWJDb3JlOjpQaW5nTG9hZGVyOjpsb2FkSW1hZ2UpOgooV2ViQ29yZTo6
UGluZ0xvYWRlcjo6c2VuZFBpbmcpOgooV2ViQ29yZTo6UGluZ0xvYWRlcjo6c2VuZFZpb2xhdGlv
blJlcG9ydCk6CihXZWJDb3JlOjpQaW5nTG9hZGVyOjpzdGFydFBpbmdMb2FkKToKKFdlYkNvcmU6
OlBpbmdMb2FkZXI6OmNyZWF0ZVBpbmdMb2FkZXIpOiBEZWxldGVkLgooV2ViQ29yZTo6UGluZ0xv
YWRlcjo6UGluZ0xvYWRlcik6IERlbGV0ZWQuCihXZWJDb3JlOjpQaW5nTG9hZGVyOjp+UGluZ0xv
YWRlcik6IERlbGV0ZWQuCiogbG9hZGVyL1BpbmdMb2FkZXIuaDoKKFdlYkNvcmU6OlBpbmdMb2Fk
ZXI6OnRpbWVvdXRUaW1lckZpcmVkKTogRGVsZXRlZC4KClBpbmdIYW5kbGUgZG9lcyB3aGF0IFBp
bmdMb2FkZXIgdXNlZCB0byAtIEl0J3MgYSBiYXNpYyBSZXNvdXJjZUhhbmRsZUNsaWVudCB0aGF0
IHNpbXBseSB3YWl0cwpmb3IgYW55IHJlc3BvbnNlL2NvbXBsZXRpb24vZmFpbHVyZSBhbmQgdGhl
biBkZWxldGVzIGl0c2VsZi4KKiBwbGF0Zm9ybS9uZXR3b3JrL1BpbmdIYW5kbGUuaDogQWRkZWQu
CihXZWJDb3JlOjpQaW5nSGFuZGxlOjpQaW5nSGFuZGxlKToKKFdlYkNvcmU6OlBpbmdIYW5kbGU6
OnVzZXNBc3luY0NhbGxiYWNrcyk6CihXZWJDb3JlOjpQaW5nSGFuZGxlOjp0aW1lb3V0VGltZXJG
aXJlZCk6CihXZWJDb3JlOjpQaW5nSGFuZGxlOjp+UGluZ0hhbmRsZSk6CgpTb3VyY2UvV2ViS2l0
MjoKCiogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgoo
V2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6bG9hZFBpbmcpOiBDcmVhdGUg
YSBQaW5nSGFuZGxlIGFuZCB0aGVuIHJldHVybi4KKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5oOgoqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluOgoKKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YlBsYXRmb3JtU3RyYXRlZ2llcy5jcHA6CihXZWJLaXQ6OldlYlBsYXRmb3JtU3RyYXRlZ2llczo6
Y3JlYXRlUGluZ0hhbmRsZSk6IElmIHRoZSBOZXR3b3JrIHByb2Nlc3MgaXMgZW5hYmxlZCwKICBj
b21waWxlIHRoZSBhcHByb3ByaWF0ZSBsb2FkIHBhcmFtZXRlcnMgYW5kIHRoZW4gbWVzc2FnZSB0
byBpdC4KICBPdGhlcndpc2UsIHVzZSB0aGUgZGVmYXVsdCBpbi1wcm9jZXNzIFBpbmdIYW5kbGUu
CiogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaDoKLS0t
CiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDM4
ICsrKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiAgIHwgMTEgKystCiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvTG9hZGVyU3RyYXRlZ3kuY3Bw
ICAgICAgICAgICB8ICA3ICsrCiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvTG9hZGVyU3RyYXRlZ3ku
aCAgICAgICAgICAgICB8ICAzICsKIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmNw
cCAgICAgICAgICAgICAgIHwgMzAgKysrLS0tLS0KIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9QaW5n
TG9hZGVyLmggICAgICAgICAgICAgICAgIHwgMzMgKystLS0tLS0tCiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL1BpbmdIYW5kbGUuaCAgICAgICB8IDgyICsrKysrKysrKysrKysrKysr
KysrKysKIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAg
IHwgMTggKysrKysKIC4uLi9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgICAgICAg
ICAgICAgIHwgIDkgKysrCiAuLi4vTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuaCB8ICAxICsKIC4uLi9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNz
YWdlcy5pbiAgICAgIHwgIDEgKwogLi4uL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRl
Z2llcy5jcHAgICAgICAgfCAyMyArKysrKysKIC4uLi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9y
bVN0cmF0ZWdpZXMuaCAgICAgICAgIHwgIDEgKwogMTMgZmlsZXMgY2hhbmdlZCwgMTk5IGluc2Vy
dGlvbnMoKyksIDU4IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvUGluZ0hhbmRsZS5oCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDM1YzE0ZmEu
LmE1ZmY0ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MSBAQAorMjAxNS0wNy0wOCAgQnJhZHkg
RWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgTW92ZSBQaW5nTG9hZGVycyB0
byB0aGUgTmV0d29ya2luZ1Byb2Nlc3MuCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xODg2MDI2
Mz4gYW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDY3MTAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4K
KyAgICAgICAgVGhlcmUncyBubyBjdXJyZW50IHNvbHV0aW9uIGZvciBjb21tdW5pY2F0aW5nIGJh
Y2sgdG8gYSBwYWdlIHRoYXQgYSBwaW5nIGxvYWQgaGFzIHJlYWNoZWQgaXRzIHRhcmdldC4KKyAg
ICAgICAgVW50aWwgd2UgaGF2ZSBzdWNoIGEgc29sdXRpb24sIGFueSBhdHRlbXB0IGF0IGEgbGF5
b3V0IHRlc3Qgd2lsbCBiZSBmcmFnaWxlIGF0IGJlc3QuCisKKyAgICAgICAgKiBXZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgIAorICAgICAgICAqIGxvYWRlci9Mb2Fk
ZXJTdHJhdGVneS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMb2FkZXJTdHJhdGVneTo6Y3JlYXRl
UGluZ0hhbmRsZSk6IERlZmF1bHQgaW1wbGVtZW50YXRpb24gaXMgY3JlYXRlIHRoZSBQaW5nSGFu
ZGxlIGRpcmVjdGx5LgorICAgICAgICAqIGxvYWRlci9Mb2FkZXJTdHJhdGVneS5oOgorCisgICAg
ICAgIFBpbmdMb2FkZXIgYmVjb21lcyBhIHN0YXRpYyBjbGFzcyBmb3Igbm93IHRoYXQgY3JhZnRz
IHRoZSBSZXNvdXJjZVJlcXVlc3QgdGhlbiBwYXNzZXMgaXQgb2ZmCisgICAgICAgIHRvIHRoZSBM
b2FkZXJTdHJhdGVneTogICAgICAgIAorICAgICAgICAqIGxvYWRlci9QaW5nTG9hZGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlBpbmdMb2FkZXI6OmxvYWRJbWFnZSk6CisgICAgICAgIChXZWJD
b3JlOjpQaW5nTG9hZGVyOjpzZW5kUGluZyk6CisgICAgICAgIChXZWJDb3JlOjpQaW5nTG9hZGVy
OjpzZW5kVmlvbGF0aW9uUmVwb3J0KToKKyAgICAgICAgKFdlYkNvcmU6OlBpbmdMb2FkZXI6OnN0
YXJ0UGluZ0xvYWQpOgorICAgICAgICAoV2ViQ29yZTo6UGluZ0xvYWRlcjo6Y3JlYXRlUGluZ0xv
YWRlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQaW5nTG9hZGVyOjpQaW5nTG9hZGVy
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBpbmdMb2FkZXI6On5QaW5nTG9hZGVyKTog
RGVsZXRlZC4KKyAgICAgICAgKiBsb2FkZXIvUGluZ0xvYWRlci5oOgorICAgICAgICAoV2ViQ29y
ZTo6UGluZ0xvYWRlcjo6dGltZW91dFRpbWVyRmlyZWQpOiBEZWxldGVkLgorCisgICAgICAgIFBp
bmdIYW5kbGUgZG9lcyB3aGF0IFBpbmdMb2FkZXIgdXNlZCB0byAtIEl0J3MgYSBiYXNpYyBSZXNv
dXJjZUhhbmRsZUNsaWVudCB0aGF0IHNpbXBseSB3YWl0cworICAgICAgICBmb3IgYW55IHJlc3Bv
bnNlL2NvbXBsZXRpb24vZmFpbHVyZSBhbmQgdGhlbiBkZWxldGVzIGl0c2VsZi4KKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL1BpbmdIYW5kbGUuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpQaW5nSGFuZGxlOjpQaW5nSGFuZGxlKToKKyAgICAgICAgKFdlYkNvcmU6OlBpbmdIYW5kbGU6
OnVzZXNBc3luY0NhbGxiYWNrcyk6CisgICAgICAgIChXZWJDb3JlOjpQaW5nSGFuZGxlOjp0aW1l
b3V0VGltZXJGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpQaW5nSGFuZGxlOjp+UGluZ0hhbmRs
ZSk6CisKIDIwMTUtMDctMDggIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4K
IAogICAgICAgICBBZGQgbmV3IHNvdXJjZXMgdG8gU3R5bGVBbGxJbk9uZS5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2ZDRk
ZGM5Li4xYzg1YTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC0yMDEzLDYgKzIwMTMsNyBAQAogCQk1MUFGNTAzNjE2RjEwMEY2
MDA5NUIyRTggLyogUmVzb3VyY2VMb2FkZXJUeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFBRjUwMzUxNkYxMDBGNjAwOTVCMkU4IC8qIFJlc291
cmNlTG9hZGVyVHlwZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk1MUIwN0E0NDE4MjMyNDhCMDBBQThEMUEgLyogSURCUGVuZGluZ0RlbGV0ZUNh
bGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQjA3
QTQzMTgyMzI0OEIwMEFBOEQxQSAvKiBJREJQZW5kaW5nRGVsZXRlQ2FsbC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxQjI0MTdCMEQ5MzFGM0Yw
MEU4M0Y1QyAvKiBMZWdhY3lXZWJBcmNoaXZlTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFCMjQxN0EwRDkzMUYzRjAwRTgzRjVDIC8qIExlZ2Fj
eVdlYkFyY2hpdmVNYWMubW0gKi87IH07CisJCTUxQjQ1NEVBMUI0REFFN0QwMDg1RUFBNiAvKiBQ
aW5nSGFuZGxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MUI0NTRFOTFCNERBRTdEMDA4NUVBQTYgLyogUGluZ0hhbmRsZS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxQjQ1RDIwMUFCOEQxRTIwMDEx
N0NEMiAvKiBDb250ZW50RXh0ZW5zaW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxQjQ1RDFFMUFCOEQxRTIwMDExN0NEMiAvKiBDb250ZW50RXh0
ZW5zaW9uLmNwcCAqLzsgfTsKIAkJNTFCNDVEMjExQUI4RDFFMjAwMTE3Q0QyIC8qIENvbnRlbnRF
eHRlbnNpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxQjQ1RDFGMUFCOEQxRTIwMDExN0NEMiAvKiBDb250ZW50RXh0ZW5zaW9uLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTFCNThGRDQxOTVBOTY0
RDAwMjk5MEIwIC8qIFBsYXRmb3JtR2FtZXBhZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTE1RTVGRUYxOTUxMDE0NzAwODZDQTVFIC8qIFBsYXRmb3Jt
R2FtZXBhZC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CkBAIC05MjUwLDYgKzkyNTEsNyBAQAogCQk1MUFGNTAzNTE2RjEwMEY2MDA5NUIyRTggLyogUmVz
b3VyY2VMb2FkZXJUeXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZXNv
dXJjZUxvYWRlclR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxQjA3QTQz
MTgyMzI0OEIwMEFBOEQxQSAvKiBJREJQZW5kaW5nRGVsZXRlQ2FsbC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBJREJQZW5kaW5nRGVsZXRlQ2FsbC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1MUIyNDE3QTBEOTMxRjNGMDBFODNGNUMgLyogTGVnYWN5V2ViQXJj
aGl2ZU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExlZ2Fj
eVdlYkFyY2hpdmVNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxQjQ1NEU5
MUI0REFFN0QwMDg1RUFBNiAvKiBQaW5nSGFuZGxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFBpbmdIYW5kbGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFC
NDVEMUUxQUI4RDFFMjAwMTE3Q0QyIC8qIENvbnRlbnRFeHRlbnNpb24uY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29udGVudEV4dGVuc2lvbi5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxQjQ1RDFGMUFCOEQxRTIwMDExN0NEMiAvKiBDb250ZW50
RXh0ZW5zaW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvbnRlbnRFeHRl
bnNpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFCRTM3REUwREFFRTAwRTAw
MTA4NUZDIC8qIFN0b3JhZ2VBcmVhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFN0b3JhZ2VBcmVhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjc5Nyw2ICsx
Njc5OSw3IEBACiAJCQkJRTEzRUYzNDIxNjg0RUNGNDAwMzRDODNGIC8qIE5ldHdvcmtTdG9yYWdl
U2Vzc2lvbi5oICovLAogCQkJCTQ0Nzk1ODAyMTY0M0I0N0IwMDFFMEE3RiAvKiBQYXJzZWRDb250
ZW50VHlwZS5jcHAgKi8sCiAJCQkJNDQ3OTU4MDMxNjQzQjQ3QjAwMUUwQTdGIC8qIFBhcnNlZENv
bnRlbnRUeXBlLmggKi8sCisJCQkJNTFCNDU0RTkxQjREQUU3RDAwODVFQUE2IC8qIFBpbmdIYW5k
bGUuaCAqLywKIAkJCQlFMTQyNEM4OTE2NEIzQjRFMDBGMzJENDAgLyogUGxhdGZvcm1Db29raWVK
YXIuaCAqLywKIAkJCQkzN0JBQUU1NzE5ODBEMUREMDA1REZFNzEgLyogUHJvdGVjdGlvblNwYWNl
LmggKi8sCiAJCQkJNTE0Qzc2NUYwQ0U5MjNBMTAwN0VGM0NEIC8qIFByb3RlY3Rpb25TcGFjZUJh
c2UuY3BwICovLApAQCAtMjI3MTUsOCArMjI3MTgsNiBAQAogCQkJCThBQTYxQ0ZEMTQ0RDU5NUIw
MEYzNzM1MCAvKiBXZWJLaXRDU1NSZWdpb25SdWxlLmNwcCAqLywKIAkJCQk4QUE2MUNGRTE0NEQ1
OTVCMDBGMzczNTAgLyogV2ViS2l0Q1NTUmVnaW9uUnVsZS5oICovLAogCQkJCThBRDBBNTU2MTRD
ODc0MjUwMDBEODNDNSAvKiBXZWJLaXRDU1NSZWdpb25SdWxlLmlkbCAqLywKLQkJCQk2QzZDQ0FB
RTE5REM0MkI5MDA0M0Q1REIgLyogV2ViS2l0Q1NTUmVzb3VyY2VWYWx1ZS5jcHAgKi8sCi0JCQkJ
NkM2Q0NBQUYxOURDNDJCOTAwNDNENURCIC8qIFdlYktpdENTU1Jlc291cmNlVmFsdWUuaCAqLywK
IAkJCQlCQzlBREQ3RjBDQzQwOTIyMDAwOThDNEMgLyogV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUu
Y3BwICovLAogCQkJCUJDOUFERDIyMENDNDAzMjYwMDA5OEM0QyAvKiBXZWJLaXRDU1NUcmFuc2Zv
cm1WYWx1ZS5oICovLAogCQkJCTMxNjExRTU0MEUxQzRENEEwMEY2QTU3OSAvKiBXZWJLaXRDU1NU
cmFuc2Zvcm1WYWx1ZS5pZGwgKi8sCkBAIC0yNTIyNCw2ICsyNTIyNSw3IEBACiAJCQkJRkRGN0U5
QzQxM0FDMjFEQjAwQTUxRUFDIC8qIEpTQXVkaW9CdWZmZXJDYWxsYmFjay5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRkRBMTVFQTAxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9CdWZmZXJTb3VyY2VO
b2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGREExNUVBNjEyQjAzRUUxMDAzQTU4M0EgLyogSlNB
dWRpb0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAorCQkJCTUxQjQ1NEVBMUI0REFFN0QwMDg1RUFB
NiAvKiBQaW5nSGFuZGxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGREExNUVBODEyQjAzRUUxMDAz
QTU4M0EgLyogSlNBdWRpb0Rlc3RpbmF0aW9uTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkRB
MTVFQUUxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9MaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRkRBMTVFQjAxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9Ob2RlLmggaW4gSGVhZGVy
cyAqLywKQEAgLTI1ODY1LDcgKzI1ODY3LDYgQEAKIAkJCQk5MzMwOURGODA5OUU2NDkyMDA1NkU1
ODEgLyogbWFya3VwLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzI4QzMxNDEyNjhFNDM5MDA0MUU4
OUIgLyogTWFya3VwQWNjdW11bGF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTAwQzYwRTNGMTNE
NzZEN0UwMDkyQTI3NSAvKiBNYXJrdXBUb2tlbml6ZXJJbmxpbmVzLmggaW4gSGVhZGVycyAqLywK
LQkJCQk2QzU2OENCMTE5REFGRUEwMDA0MzBDQTIgLyogTWFza0ltYWdlT3BlcmF0aW9uLmggaW4g
SGVhZGVycyAqLywKIAkJCQlGQUJFNzJGNTEwNTlDMUVCMDBEOTk5REQgLyogTWF0aE1MRWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDRBMjhBQUMxMkRGQjhBQzAwQUU5MjNCIC8qIE1hdGhN
TEVsZW1lbnRGYWN0b3J5LmggaW4gSGVhZGVycyAqLywKIAkJCQlGQUJFNzJGNzEwNTlDMUVCMDBE
OTk5REQgLyogTWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCkBA
IC0yNjI4Myw3ICsyNjI4NCw2IEBACiAJCQkJMEY1ODBDRkYwRjEyREU5QjAwNTFENjg5IC8qIFJl
bmRlckxheWVyQmFja2luZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1ODBDRkQwRjEyREU5QjAw
NTFENjg5IC8qIFJlbmRlckxheWVyQ29tcG9zaXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTBE
MTBEOUExNTQ1RjU3NjAwOTZEMjg4IC8qIFJlbmRlckxheWVyRmlsdGVySW5mby5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJNkNCRkU0QTUxOUVCRjJENDAwQ0EyRjlEIC8qIFJlbmRlckxheWVyTWFza0lt
YWdlSW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJM0MyNDRGRUFBMzc1QUM2MzNGODhCRTZGIC8q
IFJlbmRlckxheWVyTW9kZWxPYmplY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTBCRTAzMEEyMEYz
MTEyRkIwMDNDMUE0NiAvKiBSZW5kZXJMaW5lQm94TGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkNFQTQ4NjQwOTdEOTMwMjAwOTRDOUU0IC8qIFJlbmRlckxpbmVCcmVhay5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0yNzIzNCw3ICsyNzIzNCw2IEBACiAJCQkJMzEwNjAzNzAxNDMyN0QyRTAwQUJGNEJB
IC8qIFdlYktpdENTU0ZpbHRlclZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0OTgzOTE1OTBG
MUU3NzY5MDBDMjM3ODIgLyogV2ViS2l0Q1NTTWF0cml4LmggaW4gSGVhZGVycyAqLywKIAkJCQk4
QUE2MUQwMDE0NEQ1OTVCMDBGMzczNTAgLyogV2ViS2l0Q1NTUmVnaW9uUnVsZS5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJNkM2Q0NBQjExOURDNDJCOTAwNDNENURCIC8qIFdlYktpdENTU1Jlc291cmNl
VmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDOUFERDIzMENDNDAzMjYwMDA5OEM0QyAvKiBX
ZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJM0ZGRkY5QTkxNTlE
OUE1NTAwMjBCQkQ1IC8qIFdlYktpdENTU1ZpZXdwb3J0UnVsZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJN0M0OEE2RDExOTFDOUQ2NTAwMDI2Njc0IC8qIFdlYktpdE5hbWVzcGFjZS5oIGluIEhlYWRl
cnMgKi8sCkBAIC0yOTQ2OCw3ICsyOTQ2Nyw2IEBACiAJCQkJMUE4RjZCQzUwREI1NUNEQzAwMURC
Nzk0IC8qIE1hbmlmZXN0UGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzMzA5REY3MDk5
RTY0OTIwMDU2RTU4MSAvKiBtYXJrdXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTcyOEMzMTMx
MjY4RTQzOTAwNDFFODlCIC8qIE1hcmt1cEFjY3VtdWxhdG9yLmNwcCBpbiBTb3VyY2VzICovLAot
CQkJCTZDNTY4Q0IwMTlEQUZFQTAwMDQzMENBMiAvKiBNYXNrSW1hZ2VPcGVyYXRpb24uY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJRkFCRTcyRjQxMDU5QzFFQjAwRDk5OUREIC8qIE1hdGhNTEVsZW1l
bnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkFCRTcyRkQxMDU5QzIxMTAwRDk5OUREIC8qIE1h
dGhNTEVsZW1lbnRGYWN0b3J5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZBQkU3MkY2MTA1OUMx
RUIwMEQ5OTlERCAvKiBNYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50LmNwcCBpbiBTb3VyY2Vz
ICovLApAQCAtMzA1NTAsNyArMzA1NDgsNiBAQAogCQkJCTMxMDYwMzZGMTQzMjdEMkUwMEFCRjRC
QSAvKiBXZWJLaXRDU1NGaWx0ZXJWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0OTgzOTE1
ODBGMUU3NzY5MDBDMjM3ODIgLyogV2ViS2l0Q1NTTWF0cml4LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCThBQTYxQ0ZGMTQ0RDU5NUIwMEYzNzM1MCAvKiBXZWJLaXRDU1NSZWdpb25SdWxlLmNwcCBp
biBTb3VyY2VzICovLAotCQkJCTZDNkNDQUIwMTlEQzQyQjkwMDQzRDVEQiAvKiBXZWJLaXRDU1NS
ZXNvdXJjZVZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDOUFERDgwMENDNDA5MjIwMDA5
OEM0QyAvKiBXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkz
RkZGRjlBODE1OUQ5QTU1MDAyMEJCRDUgLyogV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTFBMTQxNEI1MTNBMEYwNTAwMDE5OTk2QyAvKiBXZWJLaXRGb250RmFt
aWx5TmFtZXMuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvTG9hZGVyU3RyYXRlZ3kuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xvYWRlclN0
cmF0ZWd5LmNwcAppbmRleCA4OTlmZDUyLi40YmI4OWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvTG9hZGVyU3RyYXRlZ3kuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Mb2FkZXJTdHJhdGVneS5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJMb2FkZXJT
dHJhdGVneS5oIgogCiAjaW5jbHVkZSAiQmxvYlJlZ2lzdHJ5SW1wbC5oIgorI2luY2x1ZGUgIlBp
bmdIYW5kbGUuaCIKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgogI2luY2x1ZGUgIlJlc291
cmNlTG9hZFNjaGVkdWxlci5oIgogCkBAIC00Nyw0ICs0OCwxMCBAQCBCbG9iUmVnaXN0cnkqIExv
YWRlclN0cmF0ZWd5OjpjcmVhdGVCbG9iUmVnaXN0cnkoKQogICAgIHJldHVybiBuZXcgQmxvYlJl
Z2lzdHJ5SW1wbDsKIH0KIAordm9pZCBMb2FkZXJTdHJhdGVneTo6Y3JlYXRlUGluZ0hhbmRsZShO
ZXR3b3JraW5nQ29udGV4dCogbmV0d29ya2luZ0NvbnRleHQsIFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCwgYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSkKK3sKKyAgICAvLyBQaW5nSGFu
ZGxlIG1hbmFnZXMgaXRzIG93biBsaWZldGltZSwgZGVsZXRpbmcgaXRzZWxmIHdoZW4gaXRzIHB1
cnBvc2UgaGFzIGJlZW4gZnVsZmlsbGVkLgorICAgIG5ldyBQaW5nSGFuZGxlKG5ldHdvcmtpbmdD
b250ZXh0LCByZXF1ZXN0LCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSwgUGluZ0hhbmRsZTo6
VXNlc0FzeW5jQ2FsbGJhY2tzOjpObyk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Mb2FkZXJTdHJhdGVneS5oIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0xvYWRlclN0cmF0ZWd5LmgKaW5kZXggNGI3ZTFmYS4uZTE2NTNhOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xvYWRlclN0cmF0ZWd5LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0xvYWRlclN0cmF0ZWd5LmgKQEAgLTMyLDYgKzMyLDcgQEAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQmxvYlJlZ2lzdHJ5OworY2xhc3MgRnJhbWU7
CiBjbGFzcyBOZXR3b3JraW5nQ29udGV4dDsKIGNsYXNzIFJlc291cmNlRXJyb3I7CiBjbGFzcyBS
ZXNvdXJjZUxvYWRTY2hlZHVsZXI7CkBAIC00Niw2ICs0Nyw4IEBAIHB1YmxpYzoKIAogICAgIHZp
cnR1YWwgQmxvYlJlZ2lzdHJ5KiBjcmVhdGVCbG9iUmVnaXN0cnkoKTsKIAorICAgIHZpcnR1YWwg
dm9pZCBjcmVhdGVQaW5nSGFuZGxlKE5ldHdvcmtpbmdDb250ZXh0KiwgUmVzb3VyY2VSZXF1ZXN0
JiwgYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSk7CisKIHByb3RlY3RlZDoKICAgICB2
aXJ0dWFsIH5Mb2FkZXJTdHJhdGVneSgpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1BpbmdMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2Fk
ZXIuY3BwCmluZGV4IDA0YTY4YjEuLjU4OWM4NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9QaW5nTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xv
YWRlci5jcHAKQEAgLTM5LDcgKzM5LDkgQEAKICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5o
IgogI2luY2x1ZGUgIkhUVFBIZWFkZXJOYW1lcy5oIgogI2luY2x1ZGUgIkluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbi5oIgorI2luY2x1ZGUgIkxvYWRlclN0cmF0ZWd5LmgiCiAjaW5jbHVkZSAiUGFn
ZS5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyYXRlZ2llcy5oIgogI2luY2x1ZGUgIlByb2dyZXNz
VHJhY2tlci5oIgogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAiUmVzb3Vy
Y2VSZXF1ZXN0LmgiCkBAIC02NCw3ICs2Niw3IEBAIHZvaWQgUGluZ0xvYWRlcjo6bG9hZEltYWdl
KEZyYW1lJiBmcmFtZSwgY29uc3QgVVJMJiB1cmwpCiAgICAgICAgIHJlcXVlc3Quc2V0SFRUUFJl
ZmVycmVyKHJlZmVycmVyKTsKICAgICBmcmFtZS5sb2FkZXIoKS5hZGRFeHRyYUZpZWxkc1RvU3Vi
cmVzb3VyY2VSZXF1ZXN0KHJlcXVlc3QpOwogCi0gICAgY3JlYXRlUGluZ0xvYWRlcihmcmFtZSwg
cmVxdWVzdCk7CisgICAgc3RhcnRQaW5nTG9hZChmcmFtZSwgcmVxdWVzdCk7CiB9CiAKIC8vIGh0
dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVsdGlwYWdl
L2xpbmtzLmh0bWwjaHlwZXJsaW5rLWF1ZGl0aW5nCkBAIC05MCw3ICs5Miw3IEBAIHZvaWQgUGlu
Z0xvYWRlcjo6c2VuZFBpbmcoRnJhbWUmIGZyYW1lLCBjb25zdCBVUkwmIHBpbmdVUkwsIGNvbnN0
IFVSTCYgZGVzdGluYXRpCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBjcmVhdGVQaW5nTG9hZGVy
KGZyYW1lLCByZXF1ZXN0KTsKKyAgICBzdGFydFBpbmdMb2FkKGZyYW1lLCByZXF1ZXN0KTsKIH0K
IAogdm9pZCBQaW5nTG9hZGVyOjpzZW5kVmlvbGF0aW9uUmVwb3J0KEZyYW1lJiBmcmFtZSwgY29u
c3QgVVJMJiByZXBvcnRVUkwsIFBhc3NSZWZQdHI8Rm9ybURhdGE+IHJlcG9ydCkKQEAgLTEwNSwx
NyArMTA3LDEwIEBAIHZvaWQgUGluZ0xvYWRlcjo6c2VuZFZpb2xhdGlvblJlcG9ydChGcmFtZSYg
ZnJhbWUsIGNvbnN0IFVSTCYgcmVwb3J0VVJMLCBQYXNzUmVmCiAgICAgaWYgKCFyZWZlcnJlci5p
c0VtcHR5KCkpCiAgICAgICAgIHJlcXVlc3Quc2V0SFRUUFJlZmVycmVyKHJlZmVycmVyKTsKIAot
ICAgIGNyZWF0ZVBpbmdMb2FkZXIoZnJhbWUsIHJlcXVlc3QpOworICAgIHN0YXJ0UGluZ0xvYWQo
ZnJhbWUsIHJlcXVlc3QpOwogfQogCi12b2lkIFBpbmdMb2FkZXI6OmNyZWF0ZVBpbmdMb2FkZXIo
RnJhbWUmIGZyYW1lLCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgLy8gTm8gbmVl
ZCB0byBmcmVlIHRoZSBQaW5nTG9hZGVyIG9iamVjdCBvciBtYW5hZ2UgaXQgdmlhIGEgc21hcnQg
cG9pbnRlciAtIGl0IHdpbGwga2lsbCBpdHNlbGYgYXMgc29vbiBhcyBpdCByZWNlaXZlcyBhIHJl
c3BvbnNlLgotICAgIG5ldyBQaW5nTG9hZGVyKGZyYW1lLCByZXF1ZXN0KTsKLX0KLQotUGluZ0xv
YWRlcjo6UGluZ0xvYWRlcihGcmFtZSYgZnJhbWUsIFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkK
LSAgICA6IG1fdGltZW91dCgqdGhpcywgJlBpbmdMb2FkZXI6OnRpbWVvdXRUaW1lckZpcmVkKQor
dm9pZCBQaW5nTG9hZGVyOjpzdGFydFBpbmdMb2FkKEZyYW1lJiBmcmFtZSwgUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0KQogewogICAgIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciA9IGZyYW1lLnBh
Z2UoKS0+cHJvZ3Jlc3MoKS5jcmVhdGVVbmlxdWVJZGVudGlmaWVyKCk7CiAgICAgLy8gRklYTUU6
IFdoeSBhY3RpdmVEb2N1bWVudExvYWRlcj8gSSB3b3VsZCBoYXZlIGV4cGVjdGVkIGRvY3VtZW50
TG9hZGVyKCkuCkBAIC0xMjMsMjAgKzExOCwxMSBAQCBQaW5nTG9hZGVyOjpQaW5nTG9hZGVyKEZy
YW1lJiBmcmFtZSwgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogICAgIC8vIERvY3VtZW50IGlu
IHRoZSBGcmFtZSwgYnV0IHRoZSBhY3RpdmVEb2N1bWVudExvYWRlciB3aWxsIGJlIGFzc29jaWF0
ZWQKICAgICAvLyB3aXRoIHRoZSBwcm92aXNpb25hbCBEb2N1bWVudExvYWRlciBpZiB0aGVyZSBp
cyBhIHByb3Zpc2lvbmFsCiAgICAgLy8gRG9jdW1lbnRMb2FkZXIuCi0gICAgbV9zaG91bGRVc2VD
cmVkZW50aWFsU3RvcmFnZSA9IGZyYW1lLmxvYWRlcigpLmNsaWVudCgpLnNob3VsZFVzZUNyZWRl
bnRpYWxTdG9yYWdlKGZyYW1lLmxvYWRlcigpLmFjdGl2ZURvY3VtZW50TG9hZGVyKCksIGlkZW50
aWZpZXIpOwotICAgIG1faGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShmcmFtZS5sb2Fk
ZXIoKS5uZXR3b3JraW5nQ29udGV4dCgpLCByZXF1ZXN0LCB0aGlzLCBmYWxzZSwgZmFsc2UpOwor
ICAgIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UgPSBmcmFtZS5sb2FkZXIoKS5jbGll
bnQoKS5zaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZShmcmFtZS5sb2FkZXIoKS5hY3RpdmVEb2N1
bWVudExvYWRlcigpLCBpZGVudGlmaWVyKTsKIAogICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6Y29udGludWVBZnRlclBpbmdMb2FkZXIoZnJhbWUsIGlkZW50aWZpZXIsIGZyYW1lLmxvYWRl
cigpLmFjdGl2ZURvY3VtZW50TG9hZGVyKCksIHJlcXVlc3QsIFJlc291cmNlUmVzcG9uc2UoKSk7
CiAKLSAgICAvLyBJZiB0aGUgc2VydmVyIG5ldmVyIHJlc3BvbmRzLCBGcmFtZUxvYWRlciB3b24n
dCBiZSBhYmxlIHRvIGNhbmNlbCB0aGlzIGxvYWQgYW5kCi0gICAgLy8gd2UnbGwgc2l0IGhlcmUg
d2FpdGluZyBmb3JldmVyLiBTZXQgYSB2ZXJ5IGdlbmVyb3VzIHRpbWVvdXQsIGp1c3QgaW4gY2Fz
ZS4KLSAgICBtX3RpbWVvdXQuc3RhcnRPbmVTaG90KDYwMDAwKTsKLX0KLQotUGluZ0xvYWRlcjo6
flBpbmdMb2FkZXIoKQotewotICAgIGlmIChtX2hhbmRsZSkKLSAgICAgICAgbV9oYW5kbGUtPmNh
bmNlbCgpOworICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5sb2FkZXJTdHJhdGVneSgpLT5jcmVh
dGVQaW5nSGFuZGxlKGZyYW1lLmxvYWRlcigpLm5ldHdvcmtpbmdDb250ZXh0KCksIHJlcXVlc3Qs
IHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QaW5n
TG9hZGVyLmgKaW5kZXggNTE1ZDk3ZC4uMDQ1ZGUxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1BpbmdMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xv
YWRlci5oCkBAIC0zMiw0OCArMzIsMjMgQEAKICNpZm5kZWYgUGluZ0xvYWRlcl9oCiAjZGVmaW5l
IFBpbmdMb2FkZXJfaAogCi0jaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGVDbGllbnQuaCIKLSNpbmNs
dWRlICJUaW1lci5oIgotI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgotI2luY2x1ZGUgPHd0
Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIEZvcm1EYXRhOwogY2xhc3MgRnJhbWU7CiBjbGFzcyBVUkw7Ci1jbGFz
cyBSZXNvdXJjZUVycm9yOwotY2xhc3MgUmVzb3VyY2VIYW5kbGU7Ci1jbGFzcyBSZXNvdXJjZVJl
c3BvbnNlOworY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogCi0vLyBUaGlzIGNsYXNzIHRyaWdnZXJz
IGFzeW5jaHJvbm91cyBsb2FkcyBpbmRlcGVuZGVudCBvZiBGcmFtZSBzdGF5aW5nIGFsaXZlIChp
LmUuLCBhdWRpdGluZyBwaW5nYmFja3MpLgotLy8gU2luY2Ugbm90aGluZyBkZXBlbmRzIG9uIHJl
c291cmNlcyBsb2FkZWQgdGhyb3VnaCB0aGlzIGNsYXNzLCB3ZSBqdXN0IHdhbnQKLS8vIHRvIGFs
bG93IHRoZSBsb2FkIHRvIGxpdmUgbG9uZyBlbm91Z2ggdG8gZW5zdXJlIHRoZSBtZXNzYWdlIHdh
cyBhY3R1YWxseSBzZW50LgotLy8gVGhlcmVmb3JlLCBhcyBzb29uIGFzIGEgY2FsbGJhY2sgaXMg
cmVjZWl2ZWQgZnJvbSB0aGUgUmVzb3VyY2VIYW5kbGUsIHRoaXMgY2xhc3MgCi0vLyB3aWxsIGNh
bmNlbCB0aGUgbG9hZCBhbmQgZGVsZXRlIGl0c2VsZi4KLWNsYXNzIFBpbmdMb2FkZXIgOiBwcml2
YXRlIFJlc291cmNlSGFuZGxlQ2xpZW50IHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShQaW5n
TG9hZGVyKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitjbGFzcyBQaW5nTG9hZGVyIHsKIHB1
YmxpYzoKICAgICBzdGF0aWMgdm9pZCBsb2FkSW1hZ2UoRnJhbWUmLCBjb25zdCBVUkwmKTsKICAg
ICBzdGF0aWMgdm9pZCBzZW5kUGluZyhGcmFtZSYsIGNvbnN0IFVSTCYgcGluZ1VSTCwgY29uc3Qg
VVJMJiBkZXN0aW5hdGlvblVSTCk7CiAgICAgc3RhdGljIHZvaWQgc2VuZFZpb2xhdGlvblJlcG9y
dChGcmFtZSYsIGNvbnN0IFVSTCYgcmVwb3J0VVJMLCBQYXNzUmVmUHRyPEZvcm1EYXRhPiByZXBv
cnQpOwogCi0gICAgdmlydHVhbCB+UGluZ0xvYWRlcigpOwotCiBwcml2YXRlOgotICAgIHN0YXRp
YyB2b2lkIGNyZWF0ZVBpbmdMb2FkZXIoRnJhbWUmLCBSZXNvdXJjZVJlcXVlc3QmKTsKLSAgICBQ
aW5nTG9hZGVyKEZyYW1lJiwgUmVzb3VyY2VSZXF1ZXN0Jik7Ci0KLSAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYpIG92ZXJyaWRlIHsgZGVsZXRlIHRoaXM7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2
ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgdW5zaWduZWQsIGludCkgb3ZlcnJp
ZGUgeyBkZWxldGUgdGhpczsgfQotICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKFJl
c291cmNlSGFuZGxlKiwgZG91YmxlKSBvdmVycmlkZSB7IGRlbGV0ZSB0aGlzOyB9Ci0gICAgdmly
dHVhbCB2b2lkIGRpZEZhaWwoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZUVycm9yJikg
b3ZlcnJpZGUgeyBkZWxldGUgdGhpczsgfQotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRVc2VDcmVk
ZW50aWFsU3RvcmFnZShSZXNvdXJjZUhhbmRsZSopICBvdmVycmlkZSB7IHJldHVybiBtX3Nob3Vs
ZFVzZUNyZWRlbnRpYWxTdG9yYWdlOyB9Ci0gICAgdm9pZCB0aW1lb3V0VGltZXJGaXJlZCgpIHsg
ZGVsZXRlIHRoaXM7IH0KLQotICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gbV9oYW5kbGU7Ci0g
ICAgVGltZXIgbV90aW1lb3V0OwotICAgIGJvb2wgbV9zaG91bGRVc2VDcmVkZW50aWFsU3RvcmFn
ZTsKKyAgICBzdGF0aWMgdm9pZCBzdGFydFBpbmdMb2FkKEZyYW1lJiwgUmVzb3VyY2VSZXF1ZXN0
Jik7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L1BpbmdIYW5kbGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUGluZ0hhbmRs
ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMyZDAwYWEKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1BpbmdIYW5kbGUuaApA
QCAtMCwwICsxLDgyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2lmbmRlZiBQaW5nSGFuZGxlX2gKKyNkZWZpbmUgUGluZ0hhbmRsZV9oCisKKyNpbmNs
dWRlICJSZXNvdXJjZUhhbmRsZS5oIgorI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlQ2xpZW50Lmgi
CisjaW5jbHVkZSAiVGltZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisvLyBUaGlzIGNs
YXNzIHRyaWdnZXJzIGFzeW5jaHJvbm91cyBsb2FkcyBpbmRlcGVuZGVudCBvZiB0aGUgbmV0d29y
a2luZyBjb250ZXh0IHN0YXlpbmcgYWxpdmUgKGkuZS4sIGF1ZGl0aW5nIHBpbmdiYWNrcykuCisv
LyBUaGUgb2JqZWN0IGp1c3QgbmVlZHMgdG8gbGl2ZSBsb25nIGVub3VnaCB0byBlbnN1cmUgdGhl
IG1lc3NhZ2Ugd2FzIGFjdHVhbGx5IHNlbnQuCisvLyBBcyBzb29uIGFzIGFueSBjYWxsYmFjayBp
cyByZWNlaXZlZCBmcm9tIHRoZSBSZXNvdXJjZUhhbmRsZSwgdGhpcyBjbGFzcyB3aWxsIGNhbmNl
bCB0aGUgbG9hZCBhbmQgZGVsZXRlIGl0c2VsZi4KKworY2xhc3MgUGluZ0hhbmRsZSA6IHByaXZh
dGUgUmVzb3VyY2VIYW5kbGVDbGllbnQgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFBpbmdI
YW5kbGUpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBlbnVtIGNsYXNz
IFVzZXNBc3luY0NhbGxiYWNrcyB7CisgICAgICAgIFllcywKKyAgICAgICAgTm8sCisgICAgfTsK
KyAgICAKKyAgICBQaW5nSGFuZGxlKE5ldHdvcmtpbmdDb250ZXh0KiBuZXR3b3JraW5nQ29udGV4
dCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBib29sIHNob3VsZFVzZUNyZWRlbnRp
YWxTdG9yYWdlLCBVc2VzQXN5bmNDYWxsYmFja3MgdXNlQXN5bmNDYWxsYmFja3MpCisgICAgICAg
IDogbV90aW1lb3V0VGltZXIoKnRoaXMsICZQaW5nSGFuZGxlOjp0aW1lb3V0VGltZXJGaXJlZCkK
KyAgICAgICAgLCBtX3Nob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKHNob3VsZFVzZUNyZWRlbnRp
YWxTdG9yYWdlKQorICAgICAgICAsIG1fdXNlc0FzeW5jQ2FsbGJhY2tzKHVzZUFzeW5jQ2FsbGJh
Y2tzKQorICAgIHsKKyAgICAgICAgbV9oYW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKG5l
dHdvcmtpbmdDb250ZXh0LCByZXF1ZXN0LCB0aGlzLCBmYWxzZSwgZmFsc2UpOworCisgICAgICAg
IC8vIElmIHRoZSBzZXJ2ZXIgbmV2ZXIgcmVzcG9uZHMsIHRoaXMgb2JqZWN0IHdpbGwgaGFuZyBh
cm91bmQgZm9yZXZlci4KKyAgICAgICAgLy8gU2V0IGEgdmVyeSBnZW5lcm91cyB0aW1lb3V0LCBq
dXN0IGluIGNhc2UuCisgICAgICAgIG1fdGltZW91dFRpbWVyLnN0YXJ0T25lU2hvdCg2MDAwMCk7
CisgICAgfQorCitwcml2YXRlOgorICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2Uo
UmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgb3ZlcnJpZGUgeyBkZWxl
dGUgdGhpczsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRs
ZSosIGNvbnN0IGNoYXIqLCB1bnNpZ25lZCwgaW50KSBvdmVycmlkZSB7IGRlbGV0ZSB0aGlzOyB9
CisgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBkb3Vi
bGUpIG92ZXJyaWRlIHsgZGVsZXRlIHRoaXM7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChS
ZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNlRXJyb3ImKSBvdmVycmlkZSB7IGRlbGV0ZSB0
aGlzOyB9CisgICAgdmlydHVhbCBib29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKFJlc291
cmNlSGFuZGxlKikgIG92ZXJyaWRlIHsgcmV0dXJuIG1fc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3Jh
Z2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgdXNlc0FzeW5jQ2FsbGJhY2tzKCkgb3ZlcnJpZGUgeyBy
ZXR1cm4gbV91c2VzQXN5bmNDYWxsYmFja3MgPT0gVXNlc0FzeW5jQ2FsbGJhY2tzOjpZZXM7IH0K
KyAgICB2b2lkIHRpbWVvdXRUaW1lckZpcmVkKCkgeyBkZWxldGUgdGhpczsgfQorCisgICAgdmly
dHVhbCB+UGluZ0hhbmRsZSgpCisgICAgeworICAgICAgICBpZiAobV9oYW5kbGUpCisgICAgICAg
ICAgICBtX2hhbmRsZS0+Y2FuY2VsKCk7CisgICAgfQorCisgICAgUmVmUHRyPFJlc291cmNlSGFu
ZGxlPiBtX2hhbmRsZTsKKyAgICBUaW1lciBtX3RpbWVvdXRUaW1lcjsKKyAgICBib29sIG1fc2hv
dWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2U7CisgICAgVXNlc0FzeW5jQ2FsbGJhY2tzIG1fdXNlc0Fz
eW5jQ2FsbGJhY2tzOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
UGluZ0hhbmRsZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZjY0YTc5MC4uYWI2YTQ1MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIxIEBACisyMDE1LTA3LTA4ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxl
LmNvbT4KKworICAgICAgICBNb3ZlIFBpbmdMb2FkZXJzIHRvIHRoZSBOZXR3b3JraW5nUHJvY2Vz
cy4KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE4ODYwMjYzPiBhbmQgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NjcxMAorCisgICAgICAgIFJldmlld2VkIGJ5IFRp
bSBIb3J0b24uCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpsb2FkUGluZyk6IENyZWF0ZSBhIFBpbmdIYW5kbGUgYW5kIHRoZW4gcmV0dXJuLgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
bWVzc2FnZXMuaW46CisgICAgICAgIAorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZv
cm1TdHJhdGVnaWVzOjpjcmVhdGVQaW5nSGFuZGxlKTogSWYgdGhlIE5ldHdvcmsgcHJvY2VzcyBp
cyBlbmFibGVkLAorICAgICAgICAgIGNvbXBpbGUgdGhlIGFwcHJvcHJpYXRlIGxvYWQgcGFyYW1l
dGVycyBhbmQgdGhlbiBtZXNzYWdlIHRvIGl0LgorICAgICAgICAgIE90aGVyd2lzZSwgdXNlIHRo
ZSBkZWZhdWx0IGluLXByb2Nlc3MgUGluZ0hhbmRsZS4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oOgorCiAyMDE1LTA3LTA4ICBCZXRo
IERha2luICA8YmRha2luQGFwcGxlLmNvbT4KIAogICAgICAgICBPbmx5IHN1cHBvcnQgaW1hZ2Ug
cHJldmlld3MgZm9yIGNsaWVudHMgdGhhdCBpbXBsZW1lbnQgY29tbWl0UHJldmlld2VkSW1hZ2VX
aXRoVVJMIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IDU0ZGUzYzQuLjY1YmEy
ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNp
bmNsdWRlICJOZXR3b3JrUmVzb3VyY2VMb2FkZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90
ZU5ldHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiU2Vzc2lvblRyYWNrZXIuaCIKKyNpbmNs
dWRlIDxXZWJDb3JlL1BpbmdIYW5kbGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtQ29v
a2llSmFyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUxvYWRlck9wdGlvbnMuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgpAQCAtMTI2LDYgKzEyNywxNCBAQCB2
b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpwZXJmb3JtU3luY2hyb25vdXNMb2Fk
KGNvbnN0IE5ldHdvcmtSZXNvdXJjZQogICAgIGxvYWRlci0+c3RhcnQoKTsKIH0KIAordm9pZCBO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6bG9hZFBpbmcoY29uc3QgTmV0d29ya1Jlc291
cmNlTG9hZFBhcmFtZXRlcnMmIGxvYWRQYXJhbWV0ZXJzKQoreworICAgIFJlZlB0cjxOZXR3b3Jr
aW5nQ29udGV4dD4gY29udGV4dCA9IFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpjcmVhdGUobG9h
ZFBhcmFtZXRlcnMuc2Vzc2lvbklELCBsb2FkUGFyYW1ldGVycy5zaG91bGRDbGVhclJlZmVycmVy
T25IVFRQU1RvSFRUUFJlZGlyZWN0KTsKKworICAgIC8vIFBpbmdIYW5kbGUgbWFuYWdlcyBpdHMg
b3duIGxpZmV0aW1lLCBkZWxldGluZyBpdHNlbGYgd2hlbiBpdHMgcHVycG9zZSBoYXMgYmVlbiBm
dWxmaWxsZWQuCisgICAgbmV3IFBpbmdIYW5kbGUoY29udGV4dC5nZXQoKSwgbG9hZFBhcmFtZXRl
cnMucmVxdWVzdCwgbG9hZFBhcmFtZXRlcnMuYWxsb3dTdG9yZWRDcmVkZW50aWFscyA9PSBBbGxv
d1N0b3JlZENyZWRlbnRpYWxzLCBQaW5nSGFuZGxlOjpVc2VzQXN5bmNDYWxsYmFja3M6Olllcyk7
Cit9CisKIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlbW92ZUxvYWRJZGVu
dGlmaWVyKFJlc291cmNlTG9hZElkZW50aWZpZXIgaWRlbnRpZmllcikKIHsKICAgICBSZWZQdHI8
TmV0d29ya1Jlc291cmNlTG9hZGVyPiBsb2FkZXIgPSBtX25ldHdvcmtSZXNvdXJjZUxvYWRlcnMu
Z2V0KGlkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5kZXggMzJhMzEwNS4u
ODIyZGU1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC03Miw2ICs3Miw3IEBAIHBy
aXZhdGU6CiAgICAgCiAgICAgdm9pZCBzY2hlZHVsZVJlc291cmNlTG9hZChjb25zdCBOZXR3b3Jr
UmVzb3VyY2VMb2FkUGFyYW1ldGVycyYpOwogICAgIHZvaWQgcGVyZm9ybVN5bmNocm9ub3VzTG9h
ZChjb25zdCBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyYsIFBhc3NSZWZQdHI8TWVzc2Fn
ZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpQZXJmb3JtU3luY2hyb25vdXNMb2Fk
OjpEZWxheWVkUmVwbHk+KTsKKyAgICB2b2lkIGxvYWRQaW5nKGNvbnN0IE5ldHdvcmtSZXNvdXJj
ZUxvYWRQYXJhbWV0ZXJzJik7CiAKICAgICB2b2lkIHJlbW92ZUxvYWRJZGVudGlmaWVyKFJlc291
cmNlTG9hZElkZW50aWZpZXIpOwogICAgIHZvaWQgc2V0RGVmZXJzTG9hZGluZyhSZXNvdXJjZUxv
YWRJZGVudGlmaWVyLCBib29sKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNl
L1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVz
c2FnZXMuaW4KaW5kZXggMDNiM2RkNC4uNGMwYTdhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMu
aW4KKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTI2LDYgKzI2LDcgQEAgbWVzc2FnZXMgLT4gTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogCiAgICAgU2NoZWR1
bGVSZXNvdXJjZUxvYWQoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyByZXNv
dXJjZUxvYWRQYXJhbWV0ZXJzKQogICAgIFBlcmZvcm1TeW5jaHJvbm91c0xvYWQoV2ViS2l0OjpO
ZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyByZXNvdXJjZUxvYWRQYXJhbWV0ZXJzKSAtPiAo
V2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvciwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSBy
ZXNwb25zZSwgVmVjdG9yPGNoYXI+IGRhdGEpIERlbGF5ZWQKKyAgICBMb2FkUGluZyhXZWJLaXQ6
Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIHJlc291cmNlTG9hZFBhcmFtZXRlcnMpCiAg
ICAgUmVtb3ZlTG9hZElkZW50aWZpZXIodWludDY0X3QgcmVzb3VyY2VMb2FkSWRlbnRpZmllcikK
ICAgICBTZXREZWZlcnNMb2FkaW5nKHVpbnQ2NF90IHJlc291cmNlTG9hZElkZW50aWZpZXIsIGJv
b2wgZGVmZXJzKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKaW5kZXggMDQx
MzkzMC4uYWU0YjY1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcApAQCAt
NTUsNiArNTUsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUdyb3VwLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9QbGF0Zm9ybUNvb2tpZUphci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1Q
YXN0ZWJvYXJkLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Qcm9ncmVzc1RyYWNrZXIuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25J
RC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU3RvcmFnZU5hbWVzcGFjZS5oPgpAQCAtMjQ4LDYgKzI0
OSwyOCBAQCB2b2lkIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6bG9hZFJlc291cmNlU3luY2hyb25v
dXNseShOZXR3b3JraW5nQ29udGV4dCogY29udGV4dAogICAgIH0KIH0KIAordm9pZCBXZWJQbGF0
Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZVBpbmdIYW5kbGUoTmV0d29ya2luZ0NvbnRleHQqIG5ldHdv
cmtpbmdDb250ZXh0LCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wgc2hvdWxkVXNlQ3Jl
ZGVudGlhbFN0b3JhZ2UpCit7CisgICAgYXV0byYgd2ViUHJvY2VzcyA9IFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpOworICAgIGlmICghd2ViUHJvY2Vzcy51c2VzTmV0d29ya1Byb2Nlc3MoKSkgewor
ICAgICAgICBMb2FkZXJTdHJhdGVneTo6Y3JlYXRlUGluZ0hhbmRsZShuZXR3b3JraW5nQ29udGV4
dCwgcmVxdWVzdCwgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UpOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dCogd2ViQ29udGV4dCA9IHN0
YXRpY19jYXN0PFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQqPihuZXR3b3JraW5nQ29udGV4dCk7
CisgICAgV2ViRnJhbWVMb2FkZXJDbGllbnQqIHdlYkZyYW1lTG9hZGVyQ2xpZW50ID0gd2ViQ29u
dGV4dC0+d2ViRnJhbWVMb2FkZXJDbGllbnQoKTsKKyAgICBXZWJGcmFtZSogd2ViRnJhbWUgPSB3
ZWJGcmFtZUxvYWRlckNsaWVudCA/IHdlYkZyYW1lTG9hZGVyQ2xpZW50LT53ZWJGcmFtZSgpIDog
bnVsbHB0cjsKKyAgICBXZWJQYWdlKiB3ZWJQYWdlID0gd2ViRnJhbWUgPyB3ZWJGcmFtZS0+cGFn
ZSgpIDogbnVsbHB0cjsKKyAgICAKKyAgICBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyBs
b2FkUGFyYW1ldGVyczsKKyAgICBsb2FkUGFyYW1ldGVycy5yZXF1ZXN0ID0gcmVxdWVzdDsKKyAg
ICBsb2FkUGFyYW1ldGVycy5zZXNzaW9uSUQgPSB3ZWJQYWdlID8gd2ViUGFnZS0+c2Vzc2lvbklE
KCkgOiBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKTsKKyAgICBsb2FkUGFyYW1ldGVycy5h
bGxvd1N0b3JlZENyZWRlbnRpYWxzID0gc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UgPyBBbGxv
d1N0b3JlZENyZWRlbnRpYWxzIDogRG9Ob3RBbGxvd1N0b3JlZENyZWRlbnRpYWxzOworICAgIGxv
YWRQYXJhbWV0ZXJzLnNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QgPSBu
ZXR3b3JraW5nQ29udGV4dC0+c2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVj
dCgpOworCisgICAgd2ViUHJvY2Vzcy5uZXR3b3JrQ29ubmVjdGlvbigpLT5jb25uZWN0aW9uKCkt
PnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpMb2FkUGluZyhs
b2FkUGFyYW1ldGVycyksIDApOworfQorCiBCbG9iUmVnaXN0cnkqIFdlYlBsYXRmb3JtU3RyYXRl
Z2llczo6Y3JlYXRlQmxvYlJlZ2lzdHJ5KCkKIHsKICAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLnVzZXNOZXR3b3JrUHJvY2VzcygpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVz
LmgKaW5kZXggM2IyZmNiMS4uYzU4NDFhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2ll
cy5oCkBAIC02Myw2ICs2Myw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBXZWJDb3JlOjpSZXNv
dXJjZUxvYWRTY2hlZHVsZXIqIHJlc291cmNlTG9hZFNjaGVkdWxlcigpIG92ZXJyaWRlOwogICAg
IHZpcnR1YWwgdm9pZCBsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KFdlYkNvcmU6Ok5ldHdvcmtp
bmdDb250ZXh0KiwgdW5zaWduZWQgbG9uZyByZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFscywgV2Vi
Q29yZTo6Q2xpZW50Q3JlZGVudGlhbFBvbGljeSwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBWZWN0b3I8Y2hhcj4mIGRhdGEpIG92ZXJyaWRlOwog
ICAgIHZpcnR1YWwgV2ViQ29yZTo6QmxvYlJlZ2lzdHJ5KiBjcmVhdGVCbG9iUmVnaXN0cnkoKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlUGluZ0hhbmRsZShXZWJDb3JlOjpOZXR3
b3JraW5nQ29udGV4dCosIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGJvb2wgc2hvdWxkVXNl
Q3JlZGVudGlhbFN0b3JhZ2UpIG92ZXJyaWRlOwogI2VuZGlmCiAKICAgICAvLyBXZWJDb3JlOjpQ
bHVnaW5TdHJhdGVneQotLSAKMi4zLjggKEFwcGxlIEdpdC01OCkKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256409</attachid>
            <date>2015-07-08 15:04:22 -0700</date>
            <delta_ts>2015-07-08 15:54:47 -0700</delta_ts>
            <desc>Patch for landing.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>27080</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA1YWUzM2E1Li44MzhiZGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEg
QEAKKzIwMTUtMDctMDggIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIE1vdmUgUGluZ0xvYWRlcnMgdG8gdGhlIE5ldHdvcmtpbmdQcm9jZXNzLgorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMTg4NjAyNjM+IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTQ2NzEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKwor
ICAgICAgICBObyBuZXcgdGVzdHMuCisgICAgICAgIFRoZXJlJ3Mgbm8gY3VycmVudCBzb2x1dGlv
biBmb3IgY29tbXVuaWNhdGluZyBiYWNrIHRvIGEgcGFnZSB0aGF0IGEgcGluZyBsb2FkIGhhcyBy
ZWFjaGVkIGl0cyB0YXJnZXQuCisgICAgICAgIFVudGlsIHdlIGhhdmUgc3VjaCBhIHNvbHV0aW9u
LCBhbnkgYXR0ZW1wdCBhdCBhIGxheW91dCB0ZXN0IHdpbGwgYmUgZnJhZ2lsZSBhdCBiZXN0Lgor
CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAK
KyAgICAgICAgKiBsb2FkZXIvTG9hZGVyU3RyYXRlZ3kuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TG9hZGVyU3RyYXRlZ3k6OmNyZWF0ZVBpbmdIYW5kbGUpOiBEZWZhdWx0IGltcGxlbWVudGF0aW9u
IGlzIGNyZWF0ZSB0aGUgUGluZ0hhbmRsZSBkaXJlY3RseS4KKyAgICAgICAgKiBsb2FkZXIvTG9h
ZGVyU3RyYXRlZ3kuaDoKKworICAgICAgICBQaW5nTG9hZGVyIGJlY29tZXMgYSBzdGF0aWMgY2xh
c3MgZm9yIG5vdyB0aGF0IGNyYWZ0cyB0aGUgUmVzb3VyY2VSZXF1ZXN0IHRoZW4gcGFzc2VzIGl0
IG9mZgorICAgICAgICB0byB0aGUgTG9hZGVyU3RyYXRlZ3k6ICAgICAgICAKKyAgICAgICAgKiBs
b2FkZXIvUGluZ0xvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQaW5nTG9hZGVyOjpsb2Fk
SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6UGluZ0xvYWRlcjo6c2VuZFBpbmcpOgorICAgICAg
ICAoV2ViQ29yZTo6UGluZ0xvYWRlcjo6c2VuZFZpb2xhdGlvblJlcG9ydCk6CisgICAgICAgIChX
ZWJDb3JlOjpQaW5nTG9hZGVyOjpzdGFydFBpbmdMb2FkKToKKyAgICAgICAgKFdlYkNvcmU6OlBp
bmdMb2FkZXI6OmNyZWF0ZVBpbmdMb2FkZXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
UGluZ0xvYWRlcjo6UGluZ0xvYWRlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQaW5n
TG9hZGVyOjp+UGluZ0xvYWRlcik6IERlbGV0ZWQuCisgICAgICAgICogbG9hZGVyL1BpbmdMb2Fk
ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBpbmdMb2FkZXI6OnRpbWVvdXRUaW1lckZpcmVkKTog
RGVsZXRlZC4KKworICAgICAgICBQaW5nSGFuZGxlIGRvZXMgd2hhdCBQaW5nTG9hZGVyIHVzZWQg
dG8gLSBJdCdzIGEgYmFzaWMgUmVzb3VyY2VIYW5kbGVDbGllbnQgdGhhdCBzaW1wbHkgd2FpdHMK
KyAgICAgICAgZm9yIGFueSByZXNwb25zZS9jb21wbGV0aW9uL2ZhaWx1cmUgYW5kIHRoZW4gZGVs
ZXRlcyBpdHNlbGYuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9QaW5nSGFuZGxlLmg6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6UGluZ0hhbmRsZTo6UGluZ0hhbmRsZSk6CisgICAgICAg
IChXZWJDb3JlOjpQaW5nSGFuZGxlOjp1c2VzQXN5bmNDYWxsYmFja3MpOgorICAgICAgICAoV2Vi
Q29yZTo6UGluZ0hhbmRsZTo6dGltZW91dFRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6
UGluZ0hhbmRsZTo6flBpbmdIYW5kbGUpOgorCiAyMDE1LTA3LTA4ICBFcmljIENhcmxzb24gIDxl
cmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFtNYWNdIFR3byBjbGlja3MgcmVxdWly
ZWQgdG8gZW5hYmxlIEFpclBsYXkgYXQgeW91dHViZS5jb20KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2ZDRkZGM5Li4xYzg1YTdh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0yMDEzLDYgKzIwMTMsNyBAQAogCQk1MUFGNTAzNjE2RjEwMEY2MDA5NUIyRTggLyog
UmVzb3VyY2VMb2FkZXJUeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTFBRjUwMzUxNkYxMDBGNjAwOTVCMkU4IC8qIFJlc291cmNlTG9hZGVyVHlw
ZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1
MUIwN0E0NDE4MjMyNDhCMDBBQThEMUEgLyogSURCUGVuZGluZ0RlbGV0ZUNhbGwuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQjA3QTQzMTgyMzI0OEIw
MEFBOEQxQSAvKiBJREJQZW5kaW5nRGVsZXRlQ2FsbC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxQjI0MTdCMEQ5MzFGM0YwMEU4M0Y1QyAvKiBM
ZWdhY3lXZWJBcmNoaXZlTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTFCMjQxN0EwRDkzMUYzRjAwRTgzRjVDIC8qIExlZ2FjeVdlYkFyY2hpdmVN
YWMubW0gKi87IH07CisJCTUxQjQ1NEVBMUI0REFFN0QwMDg1RUFBNiAvKiBQaW5nSGFuZGxlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUI0NTRFOTFC
NERBRTdEMDA4NUVBQTYgLyogUGluZ0hhbmRsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxQjQ1RDIwMUFCOEQxRTIwMDExN0NEMiAvKiBDb250
ZW50RXh0ZW5zaW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUxQjQ1RDFFMUFCOEQxRTIwMDExN0NEMiAvKiBDb250ZW50RXh0ZW5zaW9uLmNwcCAq
LzsgfTsKIAkJNTFCNDVEMjExQUI4RDFFMjAwMTE3Q0QyIC8qIENvbnRlbnRFeHRlbnNpb24uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQjQ1RDFGMUFC
OEQxRTIwMDExN0NEMiAvKiBDb250ZW50RXh0ZW5zaW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTFCNThGRDQxOTVBOTY0RDAwMjk5MEIwIC8q
IFBsYXRmb3JtR2FtZXBhZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTE1RTVGRUYxOTUxMDE0NzAwODZDQTVFIC8qIFBsYXRmb3JtR2FtZXBhZC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC05MjUwLDYg
KzkyNTEsNyBAQAogCQk1MUFGNTAzNTE2RjEwMEY2MDA5NUIyRTggLyogUmVzb3VyY2VMb2FkZXJU
eXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZXNvdXJjZUxvYWRlclR5
cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxQjA3QTQzMTgyMzI0OEIwMEFB
OEQxQSAvKiBJREJQZW5kaW5nRGVsZXRlQ2FsbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBJREJQZW5kaW5nRGVsZXRlQ2FsbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1MUIyNDE3QTBEOTMxRjNGMDBFODNGNUMgLyogTGVnYWN5V2ViQXJjaGl2ZU1hYy5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExlZ2FjeVdlYkFyY2hpdmVN
YWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxQjQ1NEU5MUI0REFFN0QwMDg1
RUFBNiAvKiBQaW5nSGFuZGxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBp
bmdIYW5kbGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFCNDVEMUUxQUI4RDFF
MjAwMTE3Q0QyIC8qIENvbnRlbnRFeHRlbnNpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gQ29udGVudEV4dGVuc2lvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUxQjQ1RDFGMUFCOEQxRTIwMDExN0NEMiAvKiBDb250ZW50RXh0ZW5zaW9uLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvbnRlbnRFeHRlbnNpb24uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFCRTM3REUwREFFRTAwRTAwMTA4NUZDIC8qIFN0
b3JhZ2VBcmVhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0b3JhZ2VBcmVh
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjc5Nyw2ICsxNjc5OSw3IEBACiAJ
CQkJRTEzRUYzNDIxNjg0RUNGNDAwMzRDODNGIC8qIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oICov
LAogCQkJCTQ0Nzk1ODAyMTY0M0I0N0IwMDFFMEE3RiAvKiBQYXJzZWRDb250ZW50VHlwZS5jcHAg
Ki8sCiAJCQkJNDQ3OTU4MDMxNjQzQjQ3QjAwMUUwQTdGIC8qIFBhcnNlZENvbnRlbnRUeXBlLmgg
Ki8sCisJCQkJNTFCNDU0RTkxQjREQUU3RDAwODVFQUE2IC8qIFBpbmdIYW5kbGUuaCAqLywKIAkJ
CQlFMTQyNEM4OTE2NEIzQjRFMDBGMzJENDAgLyogUGxhdGZvcm1Db29raWVKYXIuaCAqLywKIAkJ
CQkzN0JBQUU1NzE5ODBEMUREMDA1REZFNzEgLyogUHJvdGVjdGlvblNwYWNlLmggKi8sCiAJCQkJ
NTE0Qzc2NUYwQ0U5MjNBMTAwN0VGM0NEIC8qIFByb3RlY3Rpb25TcGFjZUJhc2UuY3BwICovLApA
QCAtMjI3MTUsOCArMjI3MTgsNiBAQAogCQkJCThBQTYxQ0ZEMTQ0RDU5NUIwMEYzNzM1MCAvKiBX
ZWJLaXRDU1NSZWdpb25SdWxlLmNwcCAqLywKIAkJCQk4QUE2MUNGRTE0NEQ1OTVCMDBGMzczNTAg
LyogV2ViS2l0Q1NTUmVnaW9uUnVsZS5oICovLAogCQkJCThBRDBBNTU2MTRDODc0MjUwMDBEODND
NSAvKiBXZWJLaXRDU1NSZWdpb25SdWxlLmlkbCAqLywKLQkJCQk2QzZDQ0FBRTE5REM0MkI5MDA0
M0Q1REIgLyogV2ViS2l0Q1NTUmVzb3VyY2VWYWx1ZS5jcHAgKi8sCi0JCQkJNkM2Q0NBQUYxOURD
NDJCOTAwNDNENURCIC8qIFdlYktpdENTU1Jlc291cmNlVmFsdWUuaCAqLywKIAkJCQlCQzlBREQ3
RjBDQzQwOTIyMDAwOThDNEMgLyogV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuY3BwICovLAogCQkJ
CUJDOUFERDIyMENDNDAzMjYwMDA5OEM0QyAvKiBXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5oICov
LAogCQkJCTMxNjExRTU0MEUxQzRENEEwMEY2QTU3OSAvKiBXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1
ZS5pZGwgKi8sCkBAIC0yNTIyNCw2ICsyNTIyNSw3IEBACiAJCQkJRkRGN0U5QzQxM0FDMjFEQjAw
QTUxRUFDIC8qIEpTQXVkaW9CdWZmZXJDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkRB
MTVFQTAxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlGREExNUVBNjEyQjAzRUUxMDAzQTU4M0EgLyogSlNBdWRpb0NvbnRleHQu
aCBpbiBIZWFkZXJzICovLAorCQkJCTUxQjQ1NEVBMUI0REFFN0QwMDg1RUFBNiAvKiBQaW5nSGFu
ZGxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGREExNUVBODEyQjAzRUUxMDAzQTU4M0EgLyogSlNB
dWRpb0Rlc3RpbmF0aW9uTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkRBMTVFQUUxMkIwM0VF
MTAwM0E1ODNBIC8qIEpTQXVkaW9MaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkRBMTVF
QjAxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9Ob2RlLmggaW4gSGVhZGVycyAqLywKQEAgLTI1
ODY1LDcgKzI1ODY3LDYgQEAKIAkJCQk5MzMwOURGODA5OUU2NDkyMDA1NkU1ODEgLyogbWFya3Vw
LmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzI4QzMxNDEyNjhFNDM5MDA0MUU4OUIgLyogTWFya3Vw
QWNjdW11bGF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTAwQzYwRTNGMTNENzZEN0UwMDkyQTI3
NSAvKiBNYXJrdXBUb2tlbml6ZXJJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKLQkJCQk2QzU2OENC
MTE5REFGRUEwMDA0MzBDQTIgLyogTWFza0ltYWdlT3BlcmF0aW9uLmggaW4gSGVhZGVycyAqLywK
IAkJCQlGQUJFNzJGNTEwNTlDMUVCMDBEOTk5REQgLyogTWF0aE1MRWxlbWVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNDRBMjhBQUMxMkRGQjhBQzAwQUU5MjNCIC8qIE1hdGhNTEVsZW1lbnRGYWN0
b3J5LmggaW4gSGVhZGVycyAqLywKIAkJCQlGQUJFNzJGNzEwNTlDMUVCMDBEOTk5REQgLyogTWF0
aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjI4Myw3ICsy
NjI4NCw2IEBACiAJCQkJMEY1ODBDRkYwRjEyREU5QjAwNTFENjg5IC8qIFJlbmRlckxheWVyQmFj
a2luZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1ODBDRkQwRjEyREU5QjAwNTFENjg5IC8qIFJl
bmRlckxheWVyQ29tcG9zaXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTBEMTBEOUExNTQ1RjU3
NjAwOTZEMjg4IC8qIFJlbmRlckxheWVyRmlsdGVySW5mby5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
NkNCRkU0QTUxOUVCRjJENDAwQ0EyRjlEIC8qIFJlbmRlckxheWVyTWFza0ltYWdlSW5mby5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJM0MyNDRGRUFBMzc1QUM2MzNGODhCRTZGIC8qIFJlbmRlckxheWVy
TW9kZWxPYmplY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTBCRTAzMEEyMEYzMTEyRkIwMDNDMUE0
NiAvKiBSZW5kZXJMaW5lQm94TGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFQTQ4NjQwOTdE
OTMwMjAwOTRDOUU0IC8qIFJlbmRlckxpbmVCcmVhay5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzIz
NCw3ICsyNzIzNCw2IEBACiAJCQkJMzEwNjAzNzAxNDMyN0QyRTAwQUJGNEJBIC8qIFdlYktpdENT
U0ZpbHRlclZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0OTgzOTE1OTBGMUU3NzY5MDBDMjM3
ODIgLyogV2ViS2l0Q1NTTWF0cml4LmggaW4gSGVhZGVycyAqLywKIAkJCQk4QUE2MUQwMDE0NEQ1
OTVCMDBGMzczNTAgLyogV2ViS2l0Q1NTUmVnaW9uUnVsZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
NkM2Q0NBQjExOURDNDJCOTAwNDNENURCIC8qIFdlYktpdENTU1Jlc291cmNlVmFsdWUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDOUFERDIzMENDNDAzMjYwMDA5OEM0QyAvKiBXZWJLaXRDU1NUcmFu
c2Zvcm1WYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJM0ZGRkY5QTkxNTlEOUE1NTAwMjBCQkQ1
IC8qIFdlYktpdENTU1ZpZXdwb3J0UnVsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0M0OEE2RDEx
OTFDOUQ2NTAwMDI2Njc0IC8qIFdlYktpdE5hbWVzcGFjZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0y
OTQ2OCw3ICsyOTQ2Nyw2IEBACiAJCQkJMUE4RjZCQzUwREI1NUNEQzAwMURCNzk0IC8qIE1hbmlm
ZXN0UGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzMzA5REY3MDk5RTY0OTIwMDU2RTU4
MSAvKiBtYXJrdXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTcyOEMzMTMxMjY4RTQzOTAwNDFF
ODlCIC8qIE1hcmt1cEFjY3VtdWxhdG9yLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTZDNTY4Q0Iw
MTlEQUZFQTAwMDQzMENBMiAvKiBNYXNrSW1hZ2VPcGVyYXRpb24uY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJRkFCRTcyRjQxMDU5QzFFQjAwRDk5OUREIC8qIE1hdGhNTEVsZW1lbnQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJRkFCRTcyRkQxMDU5QzIxMTAwRDk5OUREIC8qIE1hdGhNTEVsZW1lbnRG
YWN0b3J5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZBQkU3MkY2MTA1OUMxRUIwMEQ5OTlERCAv
KiBNYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMzA1
NTAsNyArMzA1NDgsNiBAQAogCQkJCTMxMDYwMzZGMTQzMjdEMkUwMEFCRjRCQSAvKiBXZWJLaXRD
U1NGaWx0ZXJWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0OTgzOTE1ODBGMUU3NzY5MDBD
MjM3ODIgLyogV2ViS2l0Q1NTTWF0cml4LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCThBQTYxQ0ZG
MTQ0RDU5NUIwMEYzNzM1MCAvKiBXZWJLaXRDU1NSZWdpb25SdWxlLmNwcCBpbiBTb3VyY2VzICov
LAotCQkJCTZDNkNDQUIwMTlEQzQyQjkwMDQzRDVEQiAvKiBXZWJLaXRDU1NSZXNvdXJjZVZhbHVl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDOUFERDgwMENDNDA5MjIwMDA5OEM0QyAvKiBXZWJL
aXRDU1NUcmFuc2Zvcm1WYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzRkZGRjlBODE1OUQ5
QTU1MDAyMEJCRDUgLyogV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTFBMTQxNEI1MTNBMEYwNTAwMDE5OTk2QyAvKiBXZWJLaXRGb250RmFtaWx5TmFtZXMuY3Bw
IGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTG9hZGVy
U3RyYXRlZ3kuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xvYWRlclN0cmF0ZWd5LmNwcApp
bmRleCA4OTlmZDUyLi40YmI4OWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
TG9hZGVyU3RyYXRlZ3kuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Mb2FkZXJTdHJh
dGVneS5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJMb2FkZXJTdHJhdGVneS5oIgog
CiAjaW5jbHVkZSAiQmxvYlJlZ2lzdHJ5SW1wbC5oIgorI2luY2x1ZGUgIlBpbmdIYW5kbGUuaCIK
ICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgogI2luY2x1ZGUgIlJlc291cmNlTG9hZFNjaGVk
dWxlci5oIgogCkBAIC00Nyw0ICs0OCwxMCBAQCBCbG9iUmVnaXN0cnkqIExvYWRlclN0cmF0ZWd5
OjpjcmVhdGVCbG9iUmVnaXN0cnkoKQogICAgIHJldHVybiBuZXcgQmxvYlJlZ2lzdHJ5SW1wbDsK
IH0KIAordm9pZCBMb2FkZXJTdHJhdGVneTo6Y3JlYXRlUGluZ0hhbmRsZShOZXR3b3JraW5nQ29u
dGV4dCogbmV0d29ya2luZ0NvbnRleHQsIFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBz
aG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSkKK3sKKyAgICAvLyBQaW5nSGFuZGxlIG1hbmFnZXMg
aXRzIG93biBsaWZldGltZSwgZGVsZXRpbmcgaXRzZWxmIHdoZW4gaXRzIHB1cnBvc2UgaGFzIGJl
ZW4gZnVsZmlsbGVkLgorICAgIG5ldyBQaW5nSGFuZGxlKG5ldHdvcmtpbmdDb250ZXh0LCByZXF1
ZXN0LCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSwgUGluZ0hhbmRsZTo6VXNlc0FzeW5jQ2Fs
bGJhY2tzOjpObyk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9Mb2FkZXJTdHJhdGVneS5oIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0xvYWRlclN0cmF0ZWd5LmgKaW5kZXggNGI3ZTFmYS4uZTE2NTNhOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0xvYWRlclN0cmF0ZWd5LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0xvYWRlclN0cmF0ZWd5LmgKQEAgLTMyLDYgKzMyLDcgQEAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgQmxvYlJlZ2lzdHJ5OworY2xhc3MgRnJhbWU7CiBjbGFzcyBOZXR3
b3JraW5nQ29udGV4dDsKIGNsYXNzIFJlc291cmNlRXJyb3I7CiBjbGFzcyBSZXNvdXJjZUxvYWRT
Y2hlZHVsZXI7CkBAIC00Niw2ICs0Nyw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgQmxvYlJl
Z2lzdHJ5KiBjcmVhdGVCbG9iUmVnaXN0cnkoKTsKIAorICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVQ
aW5nSGFuZGxlKE5ldHdvcmtpbmdDb250ZXh0KiwgUmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBzaG91
bGRVc2VDcmVkZW50aWFsU3RvcmFnZSk7CisKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIH5Mb2Fk
ZXJTdHJhdGVneSgpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Bp
bmdMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuY3BwCmluZGV4
IDA0YTY4YjEuLjU4OWM4NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QaW5n
TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRlci5jcHAKQEAg
LTM5LDcgKzM5LDkgQEAKICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgogI2luY2x1ZGUg
IkhUVFBIZWFkZXJOYW1lcy5oIgogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5o
IgorI2luY2x1ZGUgIkxvYWRlclN0cmF0ZWd5LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1
ZGUgIlBsYXRmb3JtU3RyYXRlZ2llcy5oIgogI2luY2x1ZGUgIlByb2dyZXNzVHJhY2tlci5oIgog
I2luY2x1ZGUgIlJlc291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0Lmgi
CkBAIC02NCw3ICs2Niw3IEBAIHZvaWQgUGluZ0xvYWRlcjo6bG9hZEltYWdlKEZyYW1lJiBmcmFt
ZSwgY29uc3QgVVJMJiB1cmwpCiAgICAgICAgIHJlcXVlc3Quc2V0SFRUUFJlZmVycmVyKHJlZmVy
cmVyKTsKICAgICBmcmFtZS5sb2FkZXIoKS5hZGRFeHRyYUZpZWxkc1RvU3VicmVzb3VyY2VSZXF1
ZXN0KHJlcXVlc3QpOwogCi0gICAgY3JlYXRlUGluZ0xvYWRlcihmcmFtZSwgcmVxdWVzdCk7Cisg
ICAgc3RhcnRQaW5nTG9hZChmcmFtZSwgcmVxdWVzdCk7CiB9CiAKIC8vIGh0dHA6Ly93d3cud2hh
dHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVsdGlwYWdlL2xpbmtzLmh0bWwj
aHlwZXJsaW5rLWF1ZGl0aW5nCkBAIC05MCw3ICs5Miw3IEBAIHZvaWQgUGluZ0xvYWRlcjo6c2Vu
ZFBpbmcoRnJhbWUmIGZyYW1lLCBjb25zdCBVUkwmIHBpbmdVUkwsIGNvbnN0IFVSTCYgZGVzdGlu
YXRpCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBjcmVhdGVQaW5nTG9hZGVyKGZyYW1lLCByZXF1
ZXN0KTsKKyAgICBzdGFydFBpbmdMb2FkKGZyYW1lLCByZXF1ZXN0KTsKIH0KIAogdm9pZCBQaW5n
TG9hZGVyOjpzZW5kVmlvbGF0aW9uUmVwb3J0KEZyYW1lJiBmcmFtZSwgY29uc3QgVVJMJiByZXBv
cnRVUkwsIFBhc3NSZWZQdHI8Rm9ybURhdGE+IHJlcG9ydCkKQEAgLTEwNSwxNyArMTA3LDEwIEBA
IHZvaWQgUGluZ0xvYWRlcjo6c2VuZFZpb2xhdGlvblJlcG9ydChGcmFtZSYgZnJhbWUsIGNvbnN0
IFVSTCYgcmVwb3J0VVJMLCBQYXNzUmVmCiAgICAgaWYgKCFyZWZlcnJlci5pc0VtcHR5KCkpCiAg
ICAgICAgIHJlcXVlc3Quc2V0SFRUUFJlZmVycmVyKHJlZmVycmVyKTsKIAotICAgIGNyZWF0ZVBp
bmdMb2FkZXIoZnJhbWUsIHJlcXVlc3QpOworICAgIHN0YXJ0UGluZ0xvYWQoZnJhbWUsIHJlcXVl
c3QpOwogfQogCi12b2lkIFBpbmdMb2FkZXI6OmNyZWF0ZVBpbmdMb2FkZXIoRnJhbWUmIGZyYW1l
LCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgLy8gTm8gbmVlZCB0byBmcmVlIHRo
ZSBQaW5nTG9hZGVyIG9iamVjdCBvciBtYW5hZ2UgaXQgdmlhIGEgc21hcnQgcG9pbnRlciAtIGl0
IHdpbGwga2lsbCBpdHNlbGYgYXMgc29vbiBhcyBpdCByZWNlaXZlcyBhIHJlc3BvbnNlLgotICAg
IG5ldyBQaW5nTG9hZGVyKGZyYW1lLCByZXF1ZXN0KTsKLX0KLQotUGluZ0xvYWRlcjo6UGluZ0xv
YWRlcihGcmFtZSYgZnJhbWUsIFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKLSAgICA6IG1fdGlt
ZW91dCgqdGhpcywgJlBpbmdMb2FkZXI6OnRpbWVvdXRUaW1lckZpcmVkKQordm9pZCBQaW5nTG9h
ZGVyOjpzdGFydFBpbmdMb2FkKEZyYW1lJiBmcmFtZSwgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
KQogewogICAgIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciA9IGZyYW1lLnBhZ2UoKS0+cHJvZ3Jl
c3MoKS5jcmVhdGVVbmlxdWVJZGVudGlmaWVyKCk7CiAgICAgLy8gRklYTUU6IFdoeSBhY3RpdmVE
b2N1bWVudExvYWRlcj8gSSB3b3VsZCBoYXZlIGV4cGVjdGVkIGRvY3VtZW50TG9hZGVyKCkuCkBA
IC0xMjMsMjAgKzExOCwxMSBAQCBQaW5nTG9hZGVyOjpQaW5nTG9hZGVyKEZyYW1lJiBmcmFtZSwg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogICAgIC8vIERvY3VtZW50IGluIHRoZSBGcmFtZSwg
YnV0IHRoZSBhY3RpdmVEb2N1bWVudExvYWRlciB3aWxsIGJlIGFzc29jaWF0ZWQKICAgICAvLyB3
aXRoIHRoZSBwcm92aXNpb25hbCBEb2N1bWVudExvYWRlciBpZiB0aGVyZSBpcyBhIHByb3Zpc2lv
bmFsCiAgICAgLy8gRG9jdW1lbnRMb2FkZXIuCi0gICAgbV9zaG91bGRVc2VDcmVkZW50aWFsU3Rv
cmFnZSA9IGZyYW1lLmxvYWRlcigpLmNsaWVudCgpLnNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdl
KGZyYW1lLmxvYWRlcigpLmFjdGl2ZURvY3VtZW50TG9hZGVyKCksIGlkZW50aWZpZXIpOwotICAg
IG1faGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShmcmFtZS5sb2FkZXIoKS5uZXR3b3Jr
aW5nQ29udGV4dCgpLCByZXF1ZXN0LCB0aGlzLCBmYWxzZSwgZmFsc2UpOworICAgIGJvb2wgc2hv
dWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UgPSBmcmFtZS5sb2FkZXIoKS5jbGllbnQoKS5zaG91bGRV
c2VDcmVkZW50aWFsU3RvcmFnZShmcmFtZS5sb2FkZXIoKS5hY3RpdmVEb2N1bWVudExvYWRlcigp
LCBpZGVudGlmaWVyKTsKIAogICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Y29udGludWVB
ZnRlclBpbmdMb2FkZXIoZnJhbWUsIGlkZW50aWZpZXIsIGZyYW1lLmxvYWRlcigpLmFjdGl2ZURv
Y3VtZW50TG9hZGVyKCksIHJlcXVlc3QsIFJlc291cmNlUmVzcG9uc2UoKSk7CiAKLSAgICAvLyBJ
ZiB0aGUgc2VydmVyIG5ldmVyIHJlc3BvbmRzLCBGcmFtZUxvYWRlciB3b24ndCBiZSBhYmxlIHRv
IGNhbmNlbCB0aGlzIGxvYWQgYW5kCi0gICAgLy8gd2UnbGwgc2l0IGhlcmUgd2FpdGluZyBmb3Jl
dmVyLiBTZXQgYSB2ZXJ5IGdlbmVyb3VzIHRpbWVvdXQsIGp1c3QgaW4gY2FzZS4KLSAgICBtX3Rp
bWVvdXQuc3RhcnRPbmVTaG90KDYwMDAwKTsKLX0KLQotUGluZ0xvYWRlcjo6flBpbmdMb2FkZXIo
KQotewotICAgIGlmIChtX2hhbmRsZSkKLSAgICAgICAgbV9oYW5kbGUtPmNhbmNlbCgpOworICAg
IHBsYXRmb3JtU3RyYXRlZ2llcygpLT5sb2FkZXJTdHJhdGVneSgpLT5jcmVhdGVQaW5nSGFuZGxl
KGZyYW1lLmxvYWRlcigpLm5ldHdvcmtpbmdDb250ZXh0KCksIHJlcXVlc3QsIHNob3VsZFVzZUNy
ZWRlbnRpYWxTdG9yYWdlKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1BpbmdMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmgKaW5k
ZXggNTE1ZDk3ZC4uMDQ1ZGUxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Bp
bmdMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRlci5oCkBAIC0z
Miw0OCArMzIsMjMgQEAKICNpZm5kZWYgUGluZ0xvYWRlcl9oCiAjZGVmaW5lIFBpbmdMb2FkZXJf
aAogCi0jaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGVDbGllbnQuaCIKLSNpbmNsdWRlICJUaW1lci5o
IgotI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4K
KyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIEZvcm1EYXRhOwogY2xhc3MgRnJhbWU7CiBjbGFzcyBVUkw7Ci1jbGFzcyBSZXNvdXJjZUVy
cm9yOwotY2xhc3MgUmVzb3VyY2VIYW5kbGU7Ci1jbGFzcyBSZXNvdXJjZVJlc3BvbnNlOworY2xh
c3MgUmVzb3VyY2VSZXF1ZXN0OwogCi0vLyBUaGlzIGNsYXNzIHRyaWdnZXJzIGFzeW5jaHJvbm91
cyBsb2FkcyBpbmRlcGVuZGVudCBvZiBGcmFtZSBzdGF5aW5nIGFsaXZlIChpLmUuLCBhdWRpdGlu
ZyBwaW5nYmFja3MpLgotLy8gU2luY2Ugbm90aGluZyBkZXBlbmRzIG9uIHJlc291cmNlcyBsb2Fk
ZWQgdGhyb3VnaCB0aGlzIGNsYXNzLCB3ZSBqdXN0IHdhbnQKLS8vIHRvIGFsbG93IHRoZSBsb2Fk
IHRvIGxpdmUgbG9uZyBlbm91Z2ggdG8gZW5zdXJlIHRoZSBtZXNzYWdlIHdhcyBhY3R1YWxseSBz
ZW50LgotLy8gVGhlcmVmb3JlLCBhcyBzb29uIGFzIGEgY2FsbGJhY2sgaXMgcmVjZWl2ZWQgZnJv
bSB0aGUgUmVzb3VyY2VIYW5kbGUsIHRoaXMgY2xhc3MgCi0vLyB3aWxsIGNhbmNlbCB0aGUgbG9h
ZCBhbmQgZGVsZXRlIGl0c2VsZi4KLWNsYXNzIFBpbmdMb2FkZXIgOiBwcml2YXRlIFJlc291cmNl
SGFuZGxlQ2xpZW50IHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShQaW5nTG9hZGVyKTsgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CitjbGFzcyBQaW5nTG9hZGVyIHsKIHB1YmxpYzoKICAgICBz
dGF0aWMgdm9pZCBsb2FkSW1hZ2UoRnJhbWUmLCBjb25zdCBVUkwmKTsKICAgICBzdGF0aWMgdm9p
ZCBzZW5kUGluZyhGcmFtZSYsIGNvbnN0IFVSTCYgcGluZ1VSTCwgY29uc3QgVVJMJiBkZXN0aW5h
dGlvblVSTCk7CiAgICAgc3RhdGljIHZvaWQgc2VuZFZpb2xhdGlvblJlcG9ydChGcmFtZSYsIGNv
bnN0IFVSTCYgcmVwb3J0VVJMLCBQYXNzUmVmUHRyPEZvcm1EYXRhPiByZXBvcnQpOwogCi0gICAg
dmlydHVhbCB+UGluZ0xvYWRlcigpOwotCiBwcml2YXRlOgotICAgIHN0YXRpYyB2b2lkIGNyZWF0
ZVBpbmdMb2FkZXIoRnJhbWUmLCBSZXNvdXJjZVJlcXVlc3QmKTsKLSAgICBQaW5nTG9hZGVyKEZy
YW1lJiwgUmVzb3VyY2VSZXF1ZXN0Jik7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJl
c3BvbnNlKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIG92ZXJyaWRl
IHsgZGVsZXRlIHRoaXM7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVzb3Vy
Y2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgdW5zaWduZWQsIGludCkgb3ZlcnJpZGUgeyBkZWxldGUg
dGhpczsgfQotICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxl
KiwgZG91YmxlKSBvdmVycmlkZSB7IGRlbGV0ZSB0aGlzOyB9Ci0gICAgdmlydHVhbCB2b2lkIGRp
ZEZhaWwoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZUVycm9yJikgb3ZlcnJpZGUgeyBk
ZWxldGUgdGhpczsgfQotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFn
ZShSZXNvdXJjZUhhbmRsZSopICBvdmVycmlkZSB7IHJldHVybiBtX3Nob3VsZFVzZUNyZWRlbnRp
YWxTdG9yYWdlOyB9Ci0gICAgdm9pZCB0aW1lb3V0VGltZXJGaXJlZCgpIHsgZGVsZXRlIHRoaXM7
IH0KLQotICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gbV9oYW5kbGU7Ci0gICAgVGltZXIgbV90
aW1lb3V0OwotICAgIGJvb2wgbV9zaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZTsKKyAgICBzdGF0
aWMgdm9pZCBzdGFydFBpbmdMb2FkKEZyYW1lJiwgUmVzb3VyY2VSZXF1ZXN0Jik7CiB9OwogCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1BpbmdIYW5kbGUu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUGluZ0hhbmRsZS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMyZDAwYWEKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1BpbmdIYW5kbGUuaApAQCAtMCwwICsxLDgy
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiBQaW5nSGFuZGxlX2gKKyNkZWZpbmUgUGluZ0hhbmRsZV9oCisKKyNpbmNsdWRlICJSZXNvdXJj
ZUhhbmRsZS5oIgorI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlQ2xpZW50LmgiCisjaW5jbHVkZSAi
VGltZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisvLyBUaGlzIGNsYXNzIHRyaWdnZXJz
IGFzeW5jaHJvbm91cyBsb2FkcyBpbmRlcGVuZGVudCBvZiB0aGUgbmV0d29ya2luZyBjb250ZXh0
IHN0YXlpbmcgYWxpdmUgKGkuZS4sIGF1ZGl0aW5nIHBpbmdiYWNrcykuCisvLyBUaGUgb2JqZWN0
IGp1c3QgbmVlZHMgdG8gbGl2ZSBsb25nIGVub3VnaCB0byBlbnN1cmUgdGhlIG1lc3NhZ2Ugd2Fz
IGFjdHVhbGx5IHNlbnQuCisvLyBBcyBzb29uIGFzIGFueSBjYWxsYmFjayBpcyByZWNlaXZlZCBm
cm9tIHRoZSBSZXNvdXJjZUhhbmRsZSwgdGhpcyBjbGFzcyB3aWxsIGNhbmNlbCB0aGUgbG9hZCBh
bmQgZGVsZXRlIGl0c2VsZi4KKworY2xhc3MgUGluZ0hhbmRsZSA6IHByaXZhdGUgUmVzb3VyY2VI
YW5kbGVDbGllbnQgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFBpbmdIYW5kbGUpOyBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBlbnVtIGNsYXNzIFVzZXNBc3luY0Nh
bGxiYWNrcyB7CisgICAgICAgIFllcywKKyAgICAgICAgTm8sCisgICAgfTsKKyAgICAKKyAgICBQ
aW5nSGFuZGxlKE5ldHdvcmtpbmdDb250ZXh0KiBuZXR3b3JraW5nQ29udGV4dCwgY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBib29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLCBV
c2VzQXN5bmNDYWxsYmFja3MgdXNlQXN5bmNDYWxsYmFja3MpCisgICAgICAgIDogbV90aW1lb3V0
VGltZXIoKnRoaXMsICZQaW5nSGFuZGxlOjp0aW1lb3V0VGltZXJGaXJlZCkKKyAgICAgICAgLCBt
X3Nob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKQor
ICAgICAgICAsIG1fdXNlc0FzeW5jQ2FsbGJhY2tzKHVzZUFzeW5jQ2FsbGJhY2tzKQorICAgIHsK
KyAgICAgICAgbV9oYW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKG5ldHdvcmtpbmdDb250
ZXh0LCByZXF1ZXN0LCB0aGlzLCBmYWxzZSwgZmFsc2UpOworCisgICAgICAgIC8vIElmIHRoZSBz
ZXJ2ZXIgbmV2ZXIgcmVzcG9uZHMsIHRoaXMgb2JqZWN0IHdpbGwgaGFuZyBhcm91bmQgZm9yZXZl
ci4KKyAgICAgICAgLy8gU2V0IGEgdmVyeSBnZW5lcm91cyB0aW1lb3V0LCBqdXN0IGluIGNhc2Uu
CisgICAgICAgIG1fdGltZW91dFRpbWVyLnN0YXJ0T25lU2hvdCg2MDAwMCk7CisgICAgfQorCitw
cml2YXRlOgorICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5k
bGUqLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgb3ZlcnJpZGUgeyBkZWxldGUgdGhpczsgfQor
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNo
YXIqLCB1bnNpZ25lZCwgaW50KSBvdmVycmlkZSB7IGRlbGV0ZSB0aGlzOyB9CisgICAgdmlydHVh
bCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBkb3VibGUpIG92ZXJyaWRl
IHsgZGVsZXRlIHRoaXM7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChSZXNvdXJjZUhhbmRs
ZSosIGNvbnN0IFJlc291cmNlRXJyb3ImKSBvdmVycmlkZSB7IGRlbGV0ZSB0aGlzOyB9CisgICAg
dmlydHVhbCBib29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKFJlc291cmNlSGFuZGxlKikg
IG92ZXJyaWRlIHsgcmV0dXJuIG1fc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2U7IH0KKyAgICB2
aXJ0dWFsIGJvb2wgdXNlc0FzeW5jQ2FsbGJhY2tzKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV91c2Vz
QXN5bmNDYWxsYmFja3MgPT0gVXNlc0FzeW5jQ2FsbGJhY2tzOjpZZXM7IH0KKyAgICB2b2lkIHRp
bWVvdXRUaW1lckZpcmVkKCkgeyBkZWxldGUgdGhpczsgfQorCisgICAgdmlydHVhbCB+UGluZ0hh
bmRsZSgpCisgICAgeworICAgICAgICBpZiAobV9oYW5kbGUpCisgICAgICAgICAgICBtX2hhbmRs
ZS0+Y2FuY2VsKCk7CisgICAgfQorCisgICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBtX2hhbmRs
ZTsKKyAgICBUaW1lciBtX3RpbWVvdXRUaW1lcjsKKyAgICBib29sIG1fc2hvdWxkVXNlQ3JlZGVu
dGlhbFN0b3JhZ2U7CisgICAgVXNlc0FzeW5jQ2FsbGJhY2tzIG1fdXNlc0FzeW5jQ2FsbGJhY2tz
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUGluZ0hhbmRsZV9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKaW5kZXggMzczN2NhMC4uNGYyYTgzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIx
IEBACisyMDE1LTA3LTA4ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAg
ICAgICBNb3ZlIFBpbmdMb2FkZXJzIHRvIHRoZSBOZXR3b3JraW5nUHJvY2Vzcy4KKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzE4ODYwMjYzPiBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE0NjcxMAorCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5j
cHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpsb2Fk
UGluZyk6IENyZWF0ZSBhIFBpbmdIYW5kbGUgYW5kIHRoZW4gcmV0dXJuLgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW46
CisgICAgICAgIAorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZv
cm1TdHJhdGVnaWVzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1TdHJhdGVnaWVz
OjpjcmVhdGVQaW5nSGFuZGxlKTogSWYgdGhlIE5ldHdvcmsgcHJvY2VzcyBpcyBlbmFibGVkLAor
ICAgICAgICAgIGNvbXBpbGUgdGhlIGFwcHJvcHJpYXRlIGxvYWQgcGFyYW1ldGVycyBhbmQgdGhl
biBtZXNzYWdlIHRvIGl0LgorICAgICAgICAgIE90aGVyd2lzZSwgdXNlIHRoZSBkZWZhdWx0IGlu
LXByb2Nlc3MgUGluZ0hhbmRsZS4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oOgorCiAyMDE1LTA3LTA4ICBCZXRoIERha2luICA8YmRh
a2luQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYWN0aW9ucyB0byBpbWFnZSBwcmV2aWV3cwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IDU0ZGUzYzQuLjY1YmEyZTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJO
ZXR3b3JrUmVzb3VyY2VMb2FkZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZU5ldHdvcmtp
bmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiU2Vzc2lvblRyYWNrZXIuaCIKKyNpbmNsdWRlIDxXZWJD
b3JlL1BpbmdIYW5kbGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtQ29va2llSmFyLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUxvYWRlck9wdGlvbnMuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgpAQCAtMTI2LDYgKzEyNywxNCBAQCB2b2lkIE5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpwZXJmb3JtU3luY2hyb25vdXNMb2FkKGNvbnN0IE5l
dHdvcmtSZXNvdXJjZQogICAgIGxvYWRlci0+c3RhcnQoKTsKIH0KIAordm9pZCBOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6bG9hZFBpbmcoY29uc3QgTmV0d29ya1Jlc291cmNlTG9hZFBh
cmFtZXRlcnMmIGxvYWRQYXJhbWV0ZXJzKQoreworICAgIFJlZlB0cjxOZXR3b3JraW5nQ29udGV4
dD4gY29udGV4dCA9IFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpjcmVhdGUobG9hZFBhcmFtZXRl
cnMuc2Vzc2lvbklELCBsb2FkUGFyYW1ldGVycy5zaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1Rv
SFRUUFJlZGlyZWN0KTsKKworICAgIC8vIFBpbmdIYW5kbGUgbWFuYWdlcyBpdHMgb3duIGxpZmV0
aW1lLCBkZWxldGluZyBpdHNlbGYgd2hlbiBpdHMgcHVycG9zZSBoYXMgYmVlbiBmdWxmaWxsZWQu
CisgICAgbmV3IFBpbmdIYW5kbGUoY29udGV4dC5nZXQoKSwgbG9hZFBhcmFtZXRlcnMucmVxdWVz
dCwgbG9hZFBhcmFtZXRlcnMuYWxsb3dTdG9yZWRDcmVkZW50aWFscyA9PSBBbGxvd1N0b3JlZENy
ZWRlbnRpYWxzLCBQaW5nSGFuZGxlOjpVc2VzQXN5bmNDYWxsYmFja3M6Olllcyk7Cit9CisKIHZv
aWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlbW92ZUxvYWRJZGVudGlmaWVyKFJl
c291cmNlTG9hZElkZW50aWZpZXIgaWRlbnRpZmllcikKIHsKICAgICBSZWZQdHI8TmV0d29ya1Jl
c291cmNlTG9hZGVyPiBsb2FkZXIgPSBtX25ldHdvcmtSZXNvdXJjZUxvYWRlcnMuZ2V0KGlkZW50
aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5kZXggMzJhMzEwNS4uODIyZGU1OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC03Miw2ICs3Miw3IEBAIHByaXZhdGU6CiAg
ICAgCiAgICAgdm9pZCBzY2hlZHVsZVJlc291cmNlTG9hZChjb25zdCBOZXR3b3JrUmVzb3VyY2VM
b2FkUGFyYW1ldGVycyYpOwogICAgIHZvaWQgcGVyZm9ybVN5bmNocm9ub3VzTG9hZChjb25zdCBO
ZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyYsIFBhc3NSZWZQdHI8TWVzc2FnZXM6Ok5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpQZXJmb3JtU3luY2hyb25vdXNMb2FkOjpEZWxheWVk
UmVwbHk+KTsKKyAgICB2b2lkIGxvYWRQaW5nKGNvbnN0IE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJh
bWV0ZXJzJik7CiAKICAgICB2b2lkIHJlbW92ZUxvYWRJZGVudGlmaWVyKFJlc291cmNlTG9hZElk
ZW50aWZpZXIpOwogICAgIHZvaWQgc2V0RGVmZXJzTG9hZGluZyhSZXNvdXJjZUxvYWRJZGVudGlm
aWVyLCBib29sKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4K
aW5kZXggMDNiM2RkNC4uNGMwYTdhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIv
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MubWVzc2FnZXMuaW4KQEAgLTI2LDYgKzI2LDcgQEAgbWVzc2FnZXMgLT4gTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogCiAgICAgU2NoZWR1bGVSZXNvdXJj
ZUxvYWQoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyByZXNvdXJjZUxvYWRQ
YXJhbWV0ZXJzKQogICAgIFBlcmZvcm1TeW5jaHJvbm91c0xvYWQoV2ViS2l0OjpOZXR3b3JrUmVz
b3VyY2VMb2FkUGFyYW1ldGVycyByZXNvdXJjZUxvYWRQYXJhbWV0ZXJzKSAtPiAoV2ViQ29yZTo6
UmVzb3VyY2VFcnJvciBlcnJvciwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwg
VmVjdG9yPGNoYXI+IGRhdGEpIERlbGF5ZWQKKyAgICBMb2FkUGluZyhXZWJLaXQ6Ok5ldHdvcmtS
ZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIHJlc291cmNlTG9hZFBhcmFtZXRlcnMpCiAgICAgUmVtb3Zl
TG9hZElkZW50aWZpZXIodWludDY0X3QgcmVzb3VyY2VMb2FkSWRlbnRpZmllcikKICAgICBTZXRE
ZWZlcnNMb2FkaW5nKHVpbnQ2NF90IHJlc291cmNlTG9hZElkZW50aWZpZXIsIGJvb2wgZGVmZXJz
KQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKaW5kZXggMDQxMzkzMC4uYWU0
YjY1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcApAQCAtNTUsNiArNTUs
NyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUdyb3VwLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Q
bGF0Zm9ybUNvb2tpZUphci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1QYXN0ZWJvYXJk
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Qcm9ncmVzc1RyYWNrZXIuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1Jlc291cmNlRXJyb3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvU3RvcmFnZU5hbWVzcGFjZS5oPgpAQCAtMjQ4LDYgKzI0OSwyOCBAQCB2
b2lkIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3
b3JraW5nQ29udGV4dCogY29udGV4dAogICAgIH0KIH0KIAordm9pZCBXZWJQbGF0Zm9ybVN0cmF0
ZWdpZXM6OmNyZWF0ZVBpbmdIYW5kbGUoTmV0d29ya2luZ0NvbnRleHQqIG5ldHdvcmtpbmdDb250
ZXh0LCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0
b3JhZ2UpCit7CisgICAgYXV0byYgd2ViUHJvY2VzcyA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
OworICAgIGlmICghd2ViUHJvY2Vzcy51c2VzTmV0d29ya1Byb2Nlc3MoKSkgeworICAgICAgICBM
b2FkZXJTdHJhdGVneTo6Y3JlYXRlUGluZ0hhbmRsZShuZXR3b3JraW5nQ29udGV4dCwgcmVxdWVz
dCwgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dCogd2ViQ29udGV4dCA9IHN0YXRpY19jYXN0
PFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQqPihuZXR3b3JraW5nQ29udGV4dCk7CisgICAgV2Vi
RnJhbWVMb2FkZXJDbGllbnQqIHdlYkZyYW1lTG9hZGVyQ2xpZW50ID0gd2ViQ29udGV4dC0+d2Vi
RnJhbWVMb2FkZXJDbGllbnQoKTsKKyAgICBXZWJGcmFtZSogd2ViRnJhbWUgPSB3ZWJGcmFtZUxv
YWRlckNsaWVudCA/IHdlYkZyYW1lTG9hZGVyQ2xpZW50LT53ZWJGcmFtZSgpIDogbnVsbHB0cjsK
KyAgICBXZWJQYWdlKiB3ZWJQYWdlID0gd2ViRnJhbWUgPyB3ZWJGcmFtZS0+cGFnZSgpIDogbnVs
bHB0cjsKKyAgICAKKyAgICBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyBsb2FkUGFyYW1l
dGVyczsKKyAgICBsb2FkUGFyYW1ldGVycy5yZXF1ZXN0ID0gcmVxdWVzdDsKKyAgICBsb2FkUGFy
YW1ldGVycy5zZXNzaW9uSUQgPSB3ZWJQYWdlID8gd2ViUGFnZS0+c2Vzc2lvbklEKCkgOiBTZXNz
aW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKTsKKyAgICBsb2FkUGFyYW1ldGVycy5hbGxvd1N0b3Jl
ZENyZWRlbnRpYWxzID0gc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UgPyBBbGxvd1N0b3JlZENy
ZWRlbnRpYWxzIDogRG9Ob3RBbGxvd1N0b3JlZENyZWRlbnRpYWxzOworICAgIGxvYWRQYXJhbWV0
ZXJzLnNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QgPSBuZXR3b3JraW5n
Q29udGV4dC0+c2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCgpOworCisg
ICAgd2ViUHJvY2Vzcy5uZXR3b3JrQ29ubmVjdGlvbigpLT5jb25uZWN0aW9uKCktPnNlbmQoTWVz
c2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpMb2FkUGluZyhsb2FkUGFyYW1l
dGVycyksIDApOworfQorCiBCbG9iUmVnaXN0cnkqIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y3Jl
YXRlQmxvYlJlZ2lzdHJ5KCkKIHsKICAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnVz
ZXNOZXR3b3JrUHJvY2VzcygpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKaW5kZXgg
M2IyZmNiMS4uYzU4NDFhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCkBAIC02
Myw2ICs2Myw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBXZWJDb3JlOjpSZXNvdXJjZUxvYWRT
Y2hlZHVsZXIqIHJlc291cmNlTG9hZFNjaGVkdWxlcigpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwg
dm9pZCBsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KFdlYkNvcmU6Ok5ldHdvcmtpbmdDb250ZXh0
KiwgdW5zaWduZWQgbG9uZyByZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFscywgV2ViQ29yZTo6Q2xp
ZW50Q3JlZGVudGlhbFBvbGljeSwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UmLCBWZWN0b3I8Y2hhcj4mIGRhdGEpIG92ZXJyaWRlOwogICAgIHZpcnR1
YWwgV2ViQ29yZTo6QmxvYlJlZ2lzdHJ5KiBjcmVhdGVCbG9iUmVnaXN0cnkoKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlUGluZ0hhbmRsZShXZWJDb3JlOjpOZXR3b3JraW5nQ29u
dGV4dCosIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlh
bFN0b3JhZ2UpIG92ZXJyaWRlOwogI2VuZGlmCiAKICAgICAvLyBXZWJDb3JlOjpQbHVnaW5TdHJh
dGVneQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>