<?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>195053</bug_id>
          
          <creation_ts>2019-02-26 10:20:15 -0800</creation_ts>
          <short_desc>[iOS] Programmatic paste access should be granted when copying and pasting within the same origin</short_desc>
          <delta_ts>2019-03-02 13:50:51 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>HTML Editing</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>bdakin</cc>
    
    <cc>berto</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gustavo</cc>
    
    <cc>japhet</cc>
    
    <cc>kangil.han</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>rniwa</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1510064</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-02-26 10:20:15 -0800</bug_when>
    <thetext>&lt;rdar://problem/48134710&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1510154</commentid>
    <comment_count>1</comment_count>
      <attachid>363009</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-02-26 13:03:09 -0800</bug_when>
    <thetext>Created attachment 363009
First pass</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1510155</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-02-26 13:05:06 -0800</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1510160</commentid>
    <comment_count>3</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-02-26 13:10:04 -0800</bug_when>
    <thetext>(In reply to Build Bot from comment #2)
&gt; Thanks for the patch. If this patch contains new public API please make sure
&gt; it follows the guidelines for new WebKit2 GTK+ API. See
&gt; http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API

Doesn&apos;t seem relevant here, since the method is private.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1511603</commentid>
    <comment_count>4</comment_count>
      <attachid>363009</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-03-01 14:00:54 -0800</bug_when>
    <thetext>Comment on attachment 363009
First pass

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

r=me. Please be sure to fix WPE build failure before landing.

&gt; Source/WebCore/dom/DOMPasteAccess.h:28
&gt; +#import &lt;wtf/Forward.h&gt;

We should be using #include instead. That&apos;s why WPE isn&apos;t happy.

&gt; Source/WebCore/page/Frame.cpp:686
&gt; +        return response != DOMPasteAccessResponse::DeniedForGesture;

I think we should use a switch and explicitly list all values.
Otherwise, we could miss updating this location when we add a new kind of denial.

&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:5032
&gt; +    NSIndexSet *indices = [NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, [pasteboard numberOfItems])];

Use auto?

&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:5033
&gt; +    NSArray&lt;NSData *&gt; *allCustomData = [pasteboard dataForPasteboardType:@(WebCore::PasteboardCustomData::cocoaType()) inItemSet:indices];

Ditto.

&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:5037
&gt; +    BOOL foundAtLeastOneMatchingIdentifier;

Huh, does objective-C always initialize BOOL to NO?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1511641</commentid>
    <comment_count>5</comment_count>
      <attachid>363009</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-03-01 15:24:16 -0800</bug_when>
    <thetext>Comment on attachment 363009
First pass

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

&gt;&gt; Source/WebCore/dom/DOMPasteAccess.h:28
&gt;&gt; +#import &lt;wtf/Forward.h&gt;
&gt; 
&gt; We should be using #include instead. That&apos;s why WPE isn&apos;t happy.

Indeed — fixed.

&gt;&gt; Source/WebCore/page/Frame.cpp:686
&gt;&gt; +        return response != DOMPasteAccessResponse::DeniedForGesture;
&gt; 
&gt; I think we should use a switch and explicitly list all values.
&gt; Otherwise, we could miss updating this location when we add a new kind of denial.

Good idea — changed to use switch case.

&gt;&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:5032
&gt;&gt; +    NSIndexSet *indices = [NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, [pasteboard numberOfItems])];
&gt; 
&gt; Use auto?

👍

&gt;&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:5033
&gt;&gt; +    NSArray&lt;NSData *&gt; *allCustomData = [pasteboard dataForPasteboardType:@(WebCore::PasteboardCustomData::cocoaType()) inItemSet:indices];
&gt; 
&gt; Ditto.

👍

&gt;&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:5037
&gt;&gt; +    BOOL foundAtLeastOneMatchingIdentifier;
&gt; 
&gt; Huh, does objective-C always initialize BOOL to NO?

Good catch — BOOL is only initialized to NO for instance variables! Changed this to be NO.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1511663</commentid>
    <comment_count>6</comment_count>
      <attachid>363387</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-03-01 16:07:16 -0800</bug_when>
    <thetext>Created attachment 363387
Patch for EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1511722</commentid>
    <comment_count>7</comment_count>
      <attachid>363396</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-03-01 18:39:43 -0800</bug_when>
    <thetext>Created attachment 363396
Fix WPE build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1511856</commentid>
    <comment_count>8</comment_count>
      <attachid>363396</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-02 13:50:50 -0800</bug_when>
    <thetext>Comment on attachment 363396
Fix WPE build

Clearing flags on attachment: 363396

Committed r242317: &lt;https://trac.webkit.org/changeset/242317&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1511857</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-02 13:50:51 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363009</attachid>
            <date>2019-02-26 13:03:09 -0800</date>
            <delta_ts>2019-03-01 16:07:14 -0800</delta_ts>
            <desc>First pass</desc>
            <filename>bug-195053-20190226130307.patch</filename>
            <type>text/plain</type>
            <size>68312</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyMDg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWY2YmYyM2MwZjQ3MjZm
NTEyYWVhNjhhYzkwNjI0ZWEwZjFkMDRhYi4uZDBmZDc2MzlkYWFmNGEzMzM0NWRjOTBmZjI1NmE0
YjQ3OGQwNjM5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE5LTAyLTI2ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIFByb2dy
YW1tYXRpYyBwYXN0ZSBhY2Nlc3Mgc2hvdWxkIGJlIGdyYW50ZWQgd2hlbiBjb3B5aW5nIGFuZCBw
YXN0aW5nIHdpdGhpbiB0aGUgc2FtZSBvcmlnaW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTA1MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDgx
MzQ3MTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
UGx1bWIgdGhlIGRvY3VtZW50IHBhc3RlYm9hcmQgaWRlbnRpZmllciB0aHJvdWdoIHRoZSBjbGll
bnQgd2hlbiBtYWtpbmcgYSBET00gcGFzdGUgYWNjZXNzIHJlcXVlc3QuIFNlZSBXZWJLaXQKKyAg
ICAgICAgQ2hhbmdlTG9nIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICAgICAgVGVzdDogZWRpdGlu
Zy9wYXN0ZWJvYXJkL2lvcy9kb20tcGFzdGUtc2FtZS1vcmlnaW4uaHRtbAorCisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9ET01QYXN0
ZUFjY2Vzcy5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvZG9tL0RPTVBhc3RlQWNjZXNz
UG9saWN5LmguCisKKyAgICAgICAgSW50cm9kdWNlIERPTVBhc3RlQWNjZXNzUmVzcG9uc2UsIHdo
aWNoIGlzIGVpdGhlciBEZW5pZWRGb3JHZXN0dXJlLCBHcmFudGVkRm9yQ29tbWFuZCwgb3IgR3Jh
bnRlZEZvckdlc3R1cmUuIEluCisgICAgICAgIHBhcnRpY3VsYXIsIHdoZW4gcGFzdGVib2FyZCBp
ZGVudGlmaWVycyBtYXRjaCwgd2Ugb25seSBncmFudCBhY2Nlc3MgZm9yIHRoZSBjdXJyZW50IHBh
c3RlIGNvbW1hbmQsIHJhdGhlciB0aGFuCisgICAgICAgIHRocm91Z2hvdXQgdGhlIHVzZXIgZ2Vz
dHVyZS4KKworICAgICAgICAqIGRvbS9Vc2VyR2VzdHVyZUluZGljYXRvci5oOgorICAgICAgICAo
V2ViQ29yZTo6VXNlckdlc3R1cmVUb2tlbjo6ZGlkUmVxdWVzdERPTVBhc3RlQWNjZXNzKToKKyAg
ICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKiBwYWdlL0VkaXRvckNs
aWVudC5oOgorICAgICAgICAqIHBhZ2UvRnJhbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWU6OnJlcXVlc3RET01QYXN0ZUFjY2Vzcyk6CisKIDIwMTktMDItMjYgIFBoaWxpcHBlIE5vcm1h
bmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtFR0xdIFJ1bnRpbWUgc3VwcG9y
dCBmb3IgUkdCNTY1IHBpeGVsIGxheW91dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBkYTZiZDViZTE0MWUxZDVkNDcx
YTliNjhlOGI1MzBkM2U1YThiMDFkLi4wNTE0ZmI4YzYwNzk4MGMwOGU3MzZkOGUwODJkODE0YWNm
NDU4OTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDE5LTAyLTI2ICBXZW5zb24gSHNp
ZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIFByb2dyYW1tYXRp
YyBwYXN0ZSBhY2Nlc3Mgc2hvdWxkIGJlIGdyYW50ZWQgd2hlbiBjb3B5aW5nIGFuZCBwYXN0aW5n
IHdpdGhpbiB0aGUgc2FtZSBvcmlnaW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE5NTA1MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDgxMzQ3MTA+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHN1
cHBvcnQgZm9yIGF1dG9tYXRpY2FsbHkgZ3JhbnRpbmcgcHJvZ3JhbW1hdGljIHBhc3RlYm9hcmQg
YWNjZXNzIHdoZW4gdGhlIHBhc3RlYm9hcmQgaWRlbnRpZmllciBvZiB0aGUKKyAgICAgICAgZG9j
dW1lbnQgcmVxdWVzdGluZyBwcm9ncmFtbWF0aWMgcGFzdGUgbWF0Y2hlcyB0aGUgaWRlbnRpZmll
ciBpbiB0aGUgY3VzdG9tIHBhc3RlYm9hcmQgZGF0YSBibG9iIGluIHRoZQorICAgICAgICBVSVBh
c3RlYm9hcmQuIFRvIGRvIHRoaXMsIHdlIHNlbmQgdGhlIHBhc3RlYm9hcmQgaWRlbnRpZmllciBv
ZiB0aGUgZG9jdW1lbnQgcmVxdWVzdGluZyB0aGUgRE9NIHBhc3RlIHRvIHRoZSBVSQorICAgICAg
ICBwcm9jZXNzLCBhbmQgY2hlY2sgdGhpcyBhZ2FpbnN0IHRoZSBwYXN0ZWJvYXJkIGlkZW50aWZp
ZXJzIGZvciBlYWNoIGl0ZW0gb24gdGhlIHBsYXRmb3JtIHBhc3RlYm9hcmQuIElmIGFsbAorICAg
ICAgICBpdGVtcyBpbiB0aGUgcGxhdGZvcm0gcGFzdGVib2FyZCBtYXRjaCB0aGUgZ2l2ZW4gcGFz
dGVib2FyZCBpZGVudGlmaWVyIChzaW5jZSB3ZSBkb24ndCBzdXBwb3J0IHdyaXRpbmcgbXVsdGlw
bGUKKyAgICAgICAgcGFzdGVib2FyZCBpdGVtcyB2aWEgYmluZGluZ3MsIHRoaXMgc2hvdWxkIG9u
bHkgYmUgYSBzaW5nbGUgaXRlbSksIHdlIHNraXAgc2hvd2luZyB0aGUgcGFzdGUgY2FsbG91dCBh
bmQKKyAgICAgICAgaW1tZWRpYXRlbHkgaW52b2tlIHRoZSBwcm9ncmFtbWF0aWMgcGFzdGUgaGFu
ZGxlci4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
UGFnZUNsaWVudEltcGw6OnJlcXVlc3RET01QYXN0ZUFjY2Vzcyk6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dw
ZS9QYWdlQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpy
ZXF1ZXN0RE9NUGFzdGVBY2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VD
bGllbnRJbXBsLmg6CisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpyZXF1ZXN0RE9NUGFzdGVBY2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgor
CisgICAgICAgIEFkZCBwbHVtYmluZyB0byBkZWxpdmVyIHRoZSBwYXN0ZWJvYXJkIGlkZW50aWZp
ZXIgdG8gdGhlIGNsaWVudCB3aGVuIHJlcXVlc3RpbmcgRE9NIHBhc3RlLgorCisgICAgICAgICog
VUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9p
b3MvUGFnZUNsaWVudEltcGxJT1MubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBs
OjpyZXF1ZXN0RE9NUGFzdGVBY2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgY2xlYW51cEludGVy
YWN0aW9uXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgcmVzaWduRmlyc3RSZXNwb25kZXJG
b3JXZWJWaWV3XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX3dlYlRvdWNoRXZlbnRzUmVj
b2duaXplZDpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfd2lsbEhpZGVNZW51Ol0pOgor
ICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHBhc3RlRm9yV2ViVmlldzpdKToKKyAgICAgICAgKC1b
V0tDb250ZW50VmlldyBfaGFuZGxlRE9NUGFzdGVSZXF1ZXN0V2l0aFJlc3VsdDpdKToKKyAgICAg
ICAgKC1bV0tDb250ZW50VmlldyBfd2lsbFBlcmZvcm1BY3Rpb246c2VuZGVyOl0pOgorICAgICAg
ICAoLVtXS0NvbnRlbnRWaWV3IF9kaWRQZXJmb3JtQWN0aW9uOnNlbmRlcjpdKToKKyAgICAgICAg
KC1bV0tDb250ZW50VmlldyBoYW5kbGVLZXlXZWJFdmVudDp3aXRoQ29tcGxldGlvbkhhbmRsZXI6
XSk6CisgICAgICAgIChhbGxQYXN0ZWJvYXJkSXRlbU9yaWdpbnNNYXRjaE9yaWdpbik6CisgICAg
ICAgICgtW1dLQ29udGVudFZpZXcgX3JlcXVlc3RET01QYXN0ZUFjY2Vzc1dpdGhFbGVtZW50UmVj
dDpvcmlnaW5JZGVudGlmaWVyOmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAoLVtXS0Nv
bnRlbnRWaWV3IF9yZXF1ZXN0RE9NUGFzdGVBY2Nlc3NXaXRoRWxlbWVudFJlY3Q6Y29tcGxldGlv
bkhhbmRsZXI6XSk6IERlbGV0ZWQuCisKKyAgICAgICAgQmFpbCBlYXJseSBpbiB0aGUgY2FzZSB3
aGVyZSBhbGwgaXRlbXMnIHBhc3RlYm9hcmQgaWRlbnRpZmllcnMgKHJlYWQgdmlhIGN1c3RvbSBw
YXN0ZWJvYXJkIGRhdGEpIG1hdGNoLiBXaGVuCisgICAgICAgIHRoaXMgaGFwcGVucywgd2Ugb25s
eSBncmFudCBhY2Nlc3MgZm9yIHRoZSBjdXJyZW50IHBhc3RlIGNvbW1hbmQsIHJhdGhlciB0aGFu
IGdyYW50aW5nIGFjY2VzcyBmb3IgdGhlIHVzZXIKKyAgICAgICAgZ2VzdHVyZSB0b2tlbi4KKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3Mvd2luL1BhZ2VDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGFnZUNs
aWVudEltcGw6OnJlcXVlc3RET01QYXN0ZUFjY2Vzcyk6CisgICAgICAgICogVUlQcm9jZXNzL3dp
bi9QYWdlQ2xpZW50SW1wbC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRWRpdG9yQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRWRpdG9yQ2xpZW50Ojpy
ZXF1ZXN0RE9NUGFzdGVBY2Nlc3MpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRWRpdG9yQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpyZXF1ZXN0RE9NUGFzdGVBY2Nlc3Mp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisKIDIwMTktMDItMjYg
IFBoaWxpcHBlIE5vcm1hbmQgPHBub3JtYW5kQGlnYWxpYS5jb20+IGFuZCBDYXJsb3MgR2FyY2lh
IENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbV1BFXSBBZGQgQVBJIGZv
ciB3ZWJ2aWV3IGJhY2tncm91bmQgY29sb3IgY29uZmlndXJhdGlvbgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
Q2hhbmdlTG9nCmluZGV4IDc1ZTc5NTY1MzAxMTA4NGRmMzZkZjc3MDRhYmRkMjI1NjVlN2QxOTMu
LmU0NzQ5ZDQ5MDNkZWYyZTg5Mzk1Y2ZiNDk4YzFmNWExMzcwZTVlN2YgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxOS0wMi0yNiAgV2Vuc29uIEhzaWVo
ICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBQcm9ncmFtbWF0aWMg
cGFzdGUgYWNjZXNzIHNob3VsZCBiZSBncmFudGVkIHdoZW4gY29weWluZyBhbmQgcGFzdGluZyB3
aXRoaW4gdGhlIHNhbWUgb3JpZ2luCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xOTUwNTMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ4MTM0NzEwPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lmg6CisKIDIwMTktMDItMjMgIEtlaXRoIE1pbGxlciAg
PGtlaXRoX21pbGxlckBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIG5ldyBtYWMgdGFyZ2V0IG51
bWJlcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwppbmRleCAxYjYxYjU1NzE0NTI2YWM4ZDVj
NTJiYzU4NjQ3YTZhN2U0NzBmNWQ5Li44MmFmM2NiOGI3ZWM2MDY1NDQzODQwZGI2NGI5MmMwNDdk
ZTBhMmMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIw
MTktMDItMjYgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAg
ICAgW2lPU10gUHJvZ3JhbW1hdGljIHBhc3RlIGFjY2VzcyBzaG91bGQgYmUgZ3JhbnRlZCB3aGVu
IGNvcHlpbmcgYW5kIHBhc3Rpbmcgd2l0aGluIHRoZSBzYW1lIG9yaWdpbgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1MDUzCisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS80ODEzNDcxMD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oOgorCiAyMDE5
LTAyLTI2ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAg
ICBbV1BFXSBBZGQgQVBJIGZvciB3ZWJ2aWV3IGJhY2tncm91bmQgY29sb3IgY29uZmlndXJhdGlv
bgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IGFjOWM5NzY1M2E1MTE4NTE3MmI2YTE3NWU1YTk5MzNkYjRkYjM3NzEuLmQxN2Q5YWZh
ZWZkNzdiYWFjM2JjOTFkODhlOWMyNGI4MWM2OGViODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQ5NTEsNyArNDk1MSw3IEBA
CiAJCUY0OEQyQTdFMjE1NzE4MjYwMEM2NzUyQiAvKiBGb250QXR0cmlidXRlcy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ4RDJBNzEyMTU2REMwQTAw
QzY3NTJCIC8qIEZvbnRBdHRyaWJ1dGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJRjQ4RDJBQTUyMTU5NzQwRDAwQzY3NTJCIC8qIENvbG9yQ29j
b2EuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0OEQy
QUEzMjE1OTc0MEQwMEM2NzUyQiAvKiBDb2xvckNvY29hLmggKi87IH07CiAJCUY0OTc4Njg4MUZG
NDVGQTUwMEUwNjBBQiAvKiBQYXN0ZWJvYXJkSXRlbUluZm8uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0OTc4Njg3MUZGNDVGQTUwMEUwNjBBQiAvKiBQ
YXN0ZWJvYXJkSXRlbUluZm8uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwotCQlGNEI0MjJDNDIyMEMwNTY4MDA5RTFFN0QgLyogRE9NUGFzdGVBY2Nlc3NQ
b2xpY3kuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0
QjQyMkMyMjIwQzAwMDAwMDlFMUU3RCAvKiBET01QYXN0ZUFjY2Vzc1BvbGljeS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUY0QjQyMkM0MjIwQzA1
NjgwMDlFMUU3RCAvKiBET01QYXN0ZUFjY2Vzcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjRCNDIyQzIyMjBDMDAwMDAwOUUxRTdEIC8qIERPTVBhc3Rl
QWNjZXNzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJRjRCRkI5ODUxRTFEREY5QjAwODYyQzI0IC8qIER1bXBFZGl0aW5nSGlzdG9yeS5qcyBpbiBD
b3B5IFNjcmlwdHMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ4Mzg5ODMx
RTFEREYyQjAwNzZCN0VBIC8qIER1bXBFZGl0aW5nSGlzdG9yeS5qcyAqLzsgfTsKIAkJRjRCRkI5
ODYxRTFEREY5QjAwODYyQzI0IC8qIEVkaXRpbmdIaXN0b3J5VXRpbC5qcyBpbiBDb3B5IFNjcmlw
dHMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ4Mzg5ODQxRTFEREYyQjAw
NzZCN0VBIC8qIEVkaXRpbmdIaXN0b3J5VXRpbC5qcyAqLzsgfTsKIAkJRjRENDNENjYyMTg4MDM4
QjAwRUNFQ0FDIC8qIFNlcmlhbGl6ZWRBdHRhY2htZW50RGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRENDNENjQyMTg4MDJFNjAwRUNFQ0FDIC8q
IFNlcmlhbGl6ZWRBdHRhY2htZW50RGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CkBAIC0xNTE4NCw3ICsxNTE4NCw3IEBACiAJCUY0OEQyQUE0MjE1
OTc0MEQwMEM2NzUyQiAvKiBDb2xvckNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ29s
b3JDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ5Nzg2ODcxRkY0NUZB
NTAwRTA2MEFCIC8qIFBhc3RlYm9hcmRJdGVtSW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYXN0ZWJv
YXJkSXRlbUluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ5RTk4RTQyMURF
RTZDMTAwOUFFNTVFIC8qIEVkaXRBY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRWRpdEFj
dGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUY0QjQyMkMyMjIwQzAwMDAw
MDlFMUU3RCAvKiBET01QYXN0ZUFjY2Vzc1BvbGljeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01QYXN0
ZUFjY2Vzc1BvbGljeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNEI0MjJDMjIy
MEMwMDAwMDA5RTFFN0QgLyogRE9NUGFzdGVBY2Nlc3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NUGFz
dGVBY2Nlc3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRENDNENjQyMTg4MDJF
NjAwRUNFQ0FDIC8qIFNlcmlhbGl6ZWRBdHRhY2htZW50RGF0YS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
ZXJpYWxpemVkQXR0YWNobWVudERhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RjREOTgxN0QyMTk1RkJGNjAwODIzMEZDIC8qIENoYW5nZUxpc3RUeXBlQ29tbWFuZC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBDaGFuZ2VMaXN0VHlwZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRjREOTgxN0UyMTk1RkJGNjAwODIzMEZDIC8qIENoYW5nZUxpc3RUeXBlQ29tbWFu
ZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDaGFuZ2VMaXN0VHlwZUNvbW1hbmQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjc1MDQsNyArMjc1MDQsNyBAQAogCQkJCUE4MTg1
RjM2MDk3NjU3NjUwMDU4MjZEOSAvKiBET01JbXBsZW1lbnRhdGlvbi5jcHAgKi8sCiAJCQkJQTgx
ODVGMzMwOTc2NTc2NTAwNTgyNkQ5IC8qIERPTUltcGxlbWVudGF0aW9uLmggKi8sCiAJCQkJOTNF
RUMxRTkwOUMyODc3NzAwQzUxNUQxIC8qIERPTUltcGxlbWVudGF0aW9uLmlkbCAqLywKLQkJCQlG
NEI0MjJDMjIyMEMwMDAwMDA5RTFFN0QgLyogRE9NUGFzdGVBY2Nlc3NQb2xpY3kuaCAqLywKKwkJ
CQlGNEI0MjJDMjIyMEMwMDAwMDA5RTFFN0QgLyogRE9NUGFzdGVBY2Nlc3MuaCAqLywKIAkJCQkw
RjQ5NjY5OTFEQjQwOEMxMDBBMjc0QkIgLyogRE9NUG9pbnQuaCAqLywKIAkJCQkwRjQ5NjY5QTFE
QjQwOEMxMDBBMjc0QkIgLyogRE9NUG9pbnQuaWRsICovLAogCQkJCTBGNDk2NkEyMURCNDA5MTAw
MEEyNzRCQiAvKiBET01Qb2ludEluaXQuaCAqLywKQEAgLTI5MDgwLDcgKzI5MDgwLDcgQEAKIAkJ
CQlBOUM2RTRFNDBENzQ1RTA1MDA2NDQyRTkgLyogRE9NTWltZVR5cGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCUE5QzZFNEU4MEQ3NDVFMTgwMDY0NDJFOSAvKiBET01NaW1lVHlwZUFycmF5LmggaW4g
SGVhZGVycyAqLywKIAkJCQkxQUNFNTNFODBBOEQxOEU3MDAyMjk0N0QgLyogRE9NUGFyc2VyLmgg
aW4gSGVhZGVycyAqLywKLQkJCQlGNEI0MjJDNDIyMEMwNTY4MDA5RTFFN0QgLyogRE9NUGFzdGVB
Y2Nlc3NQb2xpY3kuaCBpbiBIZWFkZXJzICovLAorCQkJCUY0QjQyMkM0MjIwQzA1NjgwMDlFMUU3
RCAvKiBET01QYXN0ZUFjY2Vzcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0E1NDg4MTcxNEU0MzJB
MTAwNkFFMDVBIC8qIERPTVBhdGNoU3VwcG9ydC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTlDNkU0
RUMwRDc0NUUyQjAwNjQ0MkU5IC8qIERPTVBsdWdpbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTlD
NkU0RjAwRDc0NUUzODAwNjQ0MkU5IC8qIERPTVBsdWdpbkFycmF5LmggaW4gSGVhZGVycyAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01QYXN0ZUFjY2Vzcy5oIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RPTVBhc3RlQWNjZXNzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzU1ZmE2YzJkNGY3MTk4
NDM1NTljMjUzMDI5YTJiZmZkNjE2YzlhZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9ET01QYXN0ZUFjY2Vzcy5oCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2ltcG9ydCA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitlbnVtIGNsYXNzIERPTVBhc3RlQWNjZXNzUG9saWN5IDogdWludDhfdCB7CisgICAg
Tm90UmVxdWVzdGVkWWV0LAorICAgIERlbmllZCwKKyAgICBHcmFudGVkCit9OworCitlbnVtIGNs
YXNzIERPTVBhc3RlQWNjZXNzUmVzcG9uc2UgOiB1aW50OF90IHsKKyAgICBEZW5pZWRGb3JHZXN0
dXJlLAorICAgIEdyYW50ZWRGb3JDb21tYW5kLAorICAgIEdyYW50ZWRGb3JHZXN0dXJlCit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+
IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2U+IHsKKyAg
ICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpET01QYXN0ZUFj
Y2Vzc1Jlc3BvbnNlLAorICAgICAgICBXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlOjpE
ZW5pZWRGb3JHZXN0dXJlLAorICAgICAgICBXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNl
OjpHcmFudGVkRm9yQ29tbWFuZCwKKyAgICAgICAgV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNw
b25zZTo6R3JhbnRlZEZvckdlc3R1cmUKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RG
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NUGFzdGVBY2Nlc3NQb2xpY3kuaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9ET01QYXN0ZUFjY2Vzc1BvbGljeS5oCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA4MDAxOGI5MjFjYTI3ZGQ3NmMyY2E5MjkzY2IwMDQzMmJiNTgyNDYz
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9ET01QYXN0ZUFjY2Vzc1BvbGljeS5oCisrKyAvZGV2L251bGwKQEAgLTEsMzYg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
LSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0g
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7
Ci0KLWVudW0gY2xhc3MgRE9NUGFzdGVBY2Nlc3NQb2xpY3kgOiB1aW50OF90IHsKLSAgICBOb3RS
ZXF1ZXN0ZWRZZXQsCi0gICAgRGVuaWVkLAotICAgIEdyYW50ZWQKLX07Ci0KLX0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Vc2VyR2VzdHVyZUluZGljYXRvci5oIGIvU291cmNlL1dl
YkNvcmUvZG9tL1VzZXJHZXN0dXJlSW5kaWNhdG9yLmgKaW5kZXggZGRjYmRkNjQ5MDA2Njg3NWRl
NThkZDQwMDZiNTc1MzRjNjNlMzA4OS4uMTVlYmVkZjQzNjVjN2FiOTc3OTE5NDU2MjMyZjQyOGQz
N2M5NDFjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1VzZXJHZXN0dXJlSW5kaWNh
dG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1VzZXJHZXN0dXJlSW5kaWNhdG9yLmgKQEAg
LTI1LDcgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJET01QYXN0ZUFjY2Vz
c1BvbGljeS5oIgorI2luY2x1ZGUgIkRPTVBhc3RlQWNjZXNzLmgiCiAjaW5jbHVkZSA8d3RmL0Z1
bmN0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL09w
dGlvbmFsLmg+CkBAIC02NSw3ICs2NSwxOSBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgRE9NUGFz
dGVBY2Nlc3NQb2xpY3kgZG9tUGFzdGVBY2Nlc3NQb2xpY3koKSBjb25zdCB7IHJldHVybiBtX2Rv
bVBhc3RlQWNjZXNzUG9saWN5OyB9Ci0gICAgdm9pZCBkaWRSZXF1ZXN0RE9NUGFzdGVBY2Nlc3Mo
Ym9vbCBncmFudGVkKSB7IG1fZG9tUGFzdGVBY2Nlc3NQb2xpY3kgPSBncmFudGVkID8gRE9NUGFz
dGVBY2Nlc3NQb2xpY3k6OkdyYW50ZWQgOiBET01QYXN0ZUFjY2Vzc1BvbGljeTo6RGVuaWVkOyB9
CisgICAgdm9pZCBkaWRSZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoRE9NUGFzdGVBY2Nlc3NSZXNwb25z
ZSByZXNwb25zZSkKKyAgICB7CisgICAgICAgIHN3aXRjaCAocmVzcG9uc2UpIHsKKyAgICAgICAg
Y2FzZSBET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlOjpEZW5pZWRGb3JHZXN0dXJlOgorICAgICAgICAg
ICAgbV9kb21QYXN0ZUFjY2Vzc1BvbGljeSA9IERPTVBhc3RlQWNjZXNzUG9saWN5OjpEZW5pZWQ7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBET01QYXN0ZUFjY2Vzc1Jlc3BvbnNl
OjpHcmFudGVkRm9yQ29tbWFuZDoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIERP
TVBhc3RlQWNjZXNzUmVzcG9uc2U6OkdyYW50ZWRGb3JHZXN0dXJlOgorICAgICAgICAgICAgbV9k
b21QYXN0ZUFjY2Vzc1BvbGljeSA9IERPTVBhc3RlQWNjZXNzUG9saWN5OjpHcmFudGVkOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CiAgICAgdm9pZCByZXNldERPTVBhc3Rl
QWNjZXNzKCkgeyBtX2RvbVBhc3RlQWNjZXNzUG9saWN5ID0gRE9NUGFzdGVBY2Nlc3NQb2xpY3k6
Ok5vdFJlcXVlc3RlZFlldDsgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlD
bGllbnRzLmNwcAppbmRleCBhNDNhMWJiMzZiZjhiZThmNDIzNTFmZGZhNzA5OGY1Y2FjZmJmNDlh
Li4zZWI2NzZlYWEzZDA0MGUyMjI2MmUwNWJhMzVmMWJiMjFjZmY3ZjkzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkNv
bG9yQ2hvb3Nlci5oIgogI2luY2x1ZGUgIkNvbnRleHRNZW51Q2xpZW50LmgiCiAjaW5jbHVkZSAi
Q29va2llSmFyLmgiCisjaW5jbHVkZSAiRE9NUGFzdGVBY2Nlc3MuaCIKICNpbmNsdWRlICJEYXRh
TGlzdFN1Z2dlc3Rpb25QaWNrZXIuaCIKICNpbmNsdWRlICJEYXRhYmFzZVByb3ZpZGVyLmgiCiAj
aW5jbHVkZSAiRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCIKQEAgLTE4OSw3ICsxOTAsNyBAQCBw
cml2YXRlOgogICAgIHZvaWQgcmVnaXN0ZXJSZWRvU3RlcChVbmRvU3RlcCYpIGZpbmFsOwogICAg
IHZvaWQgY2xlYXJVbmRvUmVkb09wZXJhdGlvbnMoKSBmaW5hbCB7IH0KIAotICAgIGJvb2wgcmVx
dWVzdERPTVBhc3RlQWNjZXNzKCkgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBET01QYXN0
ZUFjY2Vzc1Jlc3BvbnNlIHJlcXVlc3RET01QYXN0ZUFjY2Vzcyhjb25zdCBTdHJpbmcmKSBmaW5h
bCB7IHJldHVybiBET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlOjpEZW5pZWRGb3JHZXN0dXJlOyB9CiAK
ICAgICBib29sIGNhbkNvcHlDdXQoRnJhbWUqLCBib29sIGRlZmF1bHRWYWx1ZSkgY29uc3QgZmlu
YWwgeyByZXR1cm4gZGVmYXVsdFZhbHVlOyB9CiAgICAgYm9vbCBjYW5QYXN0ZShGcmFtZSosIGJv
b2wgZGVmYXVsdFZhbHVlKSBjb25zdCBmaW5hbCB7IHJldHVybiBkZWZhdWx0VmFsdWU7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0VkaXRvckNsaWVudC5oCmluZGV4IGJjNjU4NGI1OTMzYmM1NmJmMGMwYzdhMzRl
YjA1OGFhY2VmODgwMzcuLjFkMWM4ZDA0MmI3YzM1ZmVlNWQxZGY1MDEwMDNhMTE5NmU3Y2FmYjgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9FZGl0b3JDbGllbnQuaApAQCAtMzYsNiArMzYsOCBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKK2VudW0gY2xhc3MgRE9NUGFzdGVBY2Nlc3NSZXNwb25zZSA6IHVp
bnQ4X3Q7CisKIGNsYXNzIERvY3VtZW50RnJhZ21lbnQ7CiBjbGFzcyBFbGVtZW50OwogY2xhc3Mg
RnJhbWU7CkBAIC05Nyw3ICs5OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVz
dENhbmRpZGF0ZXNGb3JTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpIHsgfQogICAg
IHZpcnR1YWwgdm9pZCBoYW5kbGVBY2NlcHRlZENhbmRpZGF0ZVdpdGhTb2Z0U3BhY2VzKFRleHRD
aGVja2luZ1Jlc3VsdCkgeyB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgcmVxdWVzdERPTVBhc3RlQWNj
ZXNzKCkgPSAwOworICAgIHZpcnR1YWwgRE9NUGFzdGVBY2Nlc3NSZXNwb25zZSByZXF1ZXN0RE9N
UGFzdGVBY2Nlc3MoY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyKSA9IDA7CiAKICAgICAv
LyBOb3RpZnkgYW4gaW5wdXQgbWV0aG9kIHRoYXQgYSBjb21wb3NpdGlvbiB3YXMgdm9sdW50YXJp
bHkgZGlzY2FyZGVkIGJ5IFdlYkNvcmUsIHNvIHRoYXQgaXQgY291bGQgY2xlYW4gdXAgdG9vLgog
ICAgIC8vIFRoaXMgZnVuY3Rpb24gaXMgbm90IGNhbGxlZCB3aGVuIGEgY29tcG9zaXRpb24gaXMg
Y2xvc2VkIHBlciBhIHJlcXVlc3QgZnJvbSBhbiBpbnB1dCBtZXRob2QuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUu
Y3BwCmluZGV4IDZlNzRlYzdiYjBjZmY4YmRjZGQ1YTk2ZjRlZDZlYmQxYTVlNDQwYjcuLjkzN2Vh
NDZlMjBmMzIzZjNmZWY4ZjUwYWJjN2ZhNDY3ODNhOTc3NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3Bw
CkBAIC02ODEsOSArNjgxLDkgQEAgYm9vbCBGcmFtZTo6cmVxdWVzdERPTVBhc3RlQWNjZXNzKCkK
ICAgICAgICAgaWYgKCFjbGllbnQpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAg
ICAgYm9vbCBncmFudGVkID0gY2xpZW50LT5yZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoKTsKLSAgICAg
ICAgZ2VzdHVyZVRva2VuLT5kaWRSZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoZ3JhbnRlZCk7Ci0gICAg
ICAgIHJldHVybiBncmFudGVkOworICAgICAgICBhdXRvIHJlc3BvbnNlID0gY2xpZW50LT5yZXF1
ZXN0RE9NUGFzdGVBY2Nlc3MobV9kb2MtPm9yaWdpbklkZW50aWZpZXJGb3JQYXN0ZWJvYXJkKCkp
OworICAgICAgICBnZXN0dXJlVG9rZW4tPmRpZFJlcXVlc3RET01QYXN0ZUFjY2VzcyhyZXNwb25z
ZSk7CisgICAgICAgIHJldHVybiByZXNwb25zZSAhPSBET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlOjpE
ZW5pZWRGb3JHZXN0dXJlOwogICAgIH0KICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Vi
a2l0L21lc3NhZ2VzLnB5CmluZGV4IDZmNjE0MTNkZDI1ZGU2NjYxY2Y5Mjk3ZjlmZmQ0ZWU2ZjI5
MjRjYTIuLmI5M2FkMjRmOTQ1MTYzYjhmY2FkNzUyMmQ3ZTBhOWI3YTAxNmIzYjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNl
L1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpAQCAtMzk4LDYgKzM5OCw3IEBAIGRl
ZiBoZWFkZXJzX2Zvcl90eXBlKHR5cGUpOgogICAgICAgICAnU3RyaW5nJzogWyc8d3RmL3RleHQv
V1RGU3RyaW5nLmg+J10sCiAgICAgICAgICdQQUw6OlNlc3Npb25JRCc6IFsnPHBhbC9TZXNzaW9u
SUQuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkF1dG9wbGF5RXZlbnRGbGFncyc6IFsnPFdlYkNv
cmUvQXV0b3BsYXlFdmVudC5oPiddLAorICAgICAgICAnV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NS
ZXNwb25zZSc6IFsnPFdlYkNvcmUvRE9NUGFzdGVBY2Nlc3MuaD4nXSwKICAgICAgICAgJ1dlYkNv
cmU6OkRyYWdIYW5kbGluZ01ldGhvZCc6IFsnPFdlYkNvcmUvRHJhZ0FjdGlvbnMuaD4nXSwKICAg
ICAgICAgJ1dlYkNvcmU6OkV4Y2VwdGlvbkRldGFpbHMnOiBbJzxXZWJDb3JlL0pTRE9NRXhjZXB0
aW9uSGFuZGxpbmcuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkZpbGVDaG9vc2VyU2V0dGluZ3Mn
OiBbJzxXZWJDb3JlL0ZpbGVDaG9vc2VyLmg+J10sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuY3BwCmluZGV4IDcyMWVjMWUzZDA0OThhZDI2
ODhiOTEwYzk4YmZhNWM5OWUxYmU4YjUuLmIzZDYyZGNkYTg2ZDFjZmZhZDBiYWNiOTk0M2VlYWQ0
NTU5MzM5ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvUGFn
ZUNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvUGFn
ZUNsaWVudEltcGwuY3BwCkBAIC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Bv
b2wuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NhaXJvVXRpbGl0aWVzLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9DdXJzb3IuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0RPTVBhc3RlQWNjZXNzLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9FdmVudE5hbWVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9HdGtVdGlsaXRp
ZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CkBAIC01MjQsOSArNTI1
LDkgQEAgYm9vbCBQYWdlQ2xpZW50SW1wbDo6ZGVjaWRlUG9saWN5Rm9ySW5zdGFsbE1pc3NpbmdN
ZWRpYVBsdWdpbnNQZXJtaXNzaW9uUmVxdWVzdCgKIH0KICNlbmRpZgogCi12b2lkIFBhZ2VDbGll
bnRJbXBsOjpyZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoY29uc3QgSW50UmVjdCYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFBhZ2VDbGllbnRJ
bXBsOjpyZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoY29uc3QgSW50UmVjdCYsIGNvbnN0IFN0cmluZyYs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwor
ICAgIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2U6OkRl
bmllZEZvckdlc3R1cmUpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuaAppbmRleCBiOTBhYzVh
YzcwZDNkOTNjNDIzYzE0NTQ0MTQ4NzA4M2ZhYTEzZWY2Li5kMjBkZmI3ZWEzYzBhZWIyOThlNjVm
NzY4YzBlMTdlMzIyMDQ1YmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2d0ay9QYWdlQ2xpZW50SW1wbC5oCkBAIC0zNiw2ICszNiwxMCBAQAogI2luY2x1ZGUgPGd0ay9n
dGsuaD4KICNpbmNsdWRlIDxtZW1vcnk+CiAKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2VudW0gY2xh
c3MgRE9NUGFzdGVBY2Nlc3NQb2xpY3kgOiB1aW50OF90OworfQorCiBuYW1lc3BhY2UgV2ViS2l0
IHsKIAogY2xhc3MgRHJhd2luZ0FyZWFQcm94eTsKQEAgLTE1MCw3ICsxNTQsNyBAQCBwcml2YXRl
OgogCiAgICAgdm9pZCBkaWRGaW5pc2hQcm9jZXNzaW5nQWxsUGVuZGluZ01vdXNlRXZlbnRzKCkg
ZmluYWwgeyB9CiAKLSAgICB2b2lkIHJlcXVlc3RET01QYXN0ZUFjY2Vzcyhjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgZmluYWw7CisgICAg
dm9pZCByZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0
IFN0cmluZyYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NS
ZXNwb25zZSk+JiYpIGZpbmFsOwogCiAjaWYgRU5BQkxFKFZJREVPKSAmJiBVU0UoR1NUUkVBTUVS
KQogICAgIGJvb2wgZGVjaWRlUG9saWN5Rm9ySW5zdGFsbE1pc3NpbmdNZWRpYVBsdWdpbnNQZXJt
aXNzaW9uUmVxdWVzdChJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0
Jikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3Bl
L1BhZ2VDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvUGFn
ZUNsaWVudEltcGwuY3BwCmluZGV4IDJjMWM2ZWU0Njk0NTVjYTJhNzllZWU4ZDE2ZWY0ZjM4OGRl
ZTM3ZTkuLmZjYThiZjU0YWVhZWM3MDYyM2QxZmU3OTc5MjExMTY4MzIyNDFhZmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudEltcGwuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudEltcGwuY3BwCkBA
IC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiV2ViQ29udGV4dE1lbnVQcm94eS5oIgogI2luY2x1
ZGUgIldlYkNvbnRleHRNZW51UHJveHlXUEUuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0FjdGl2aXR5
U3RhdGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0RPTVBhc3RlQWNjZXNzLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTM5OSw5
ICs0MDAsOSBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpiZWdhbkV4aXRGdWxsU2NyZWVuKGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmIC8qIGluaXRpYWxGcmFtZQogCiAjZW5kaWYgLy8gRU5BQkxFKEZV
TExTQ1JFRU5fQVBJKQogCi12b2lkIFBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0RE9NUGFzdGVBY2Nl
c3MoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0RE9NUGFz
dGVBY2Nlc3MoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
V2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7
Ci0gICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKFdl
YkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2U6OkRlbmllZEZvckdlc3R1cmUpOwogfQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS93cGUvUGFnZUNsaWVudEltcGwuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93
cGUvUGFnZUNsaWVudEltcGwuaAppbmRleCA1YWFlMGYyYjFhNDQxMThiNWE4ZGM0ZDMwMmM4MWY2
NDBiNGU0ZWYxLi5mMThiMDU2NTc2ZjM3MjU3NTY2Njk2NTVmNmI2MWMwNjA5MjlkNTM1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5oCkBA
IC0zNCw2ICszNCwxMCBAQCBuYW1lc3BhY2UgV0tXUEUgewogY2xhc3MgVmlldzsKIH0KIAorbmFt
ZXNwYWNlIFdlYkNvcmUgeworZW51bSBjbGFzcyBET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlIDogdWlu
dDhfdDsKK30KKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFNjcm9sbEdlc3R1cmVDb250
cm9sbGVyOwpAQCAtMTQ2LDcgKzE1MCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRGaW5pc2hQ
cm9jZXNzaW5nQWxsUGVuZGluZ01vdXNlRXZlbnRzKCkgZmluYWwgeyB9CiAKICAgICBJUEM6OkF0
dGFjaG1lbnQgaG9zdEZpbGVEZXNjcmlwdG9yKCkgZmluYWw7Ci0gICAgdm9pZCByZXF1ZXN0RE9N
UGFzdGVBY2Nlc3MoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoYm9vbCk+JiYpIGZpbmFsOworICAgIHZvaWQgcmVxdWVzdERPTVBhc3RlQWNjZXNzKGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkRPTVBh
c3RlQWNjZXNzUmVzcG9uc2UpPiYmKSBmaW5hbDsKIAogICAgIFdlYkNvcmU6OlVzZXJJbnRlcmZh
Y2VMYXlvdXREaXJlY3Rpb24gdXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbigpIG92ZXJyaWRl
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKaW5kZXggY2Q3YWMwNWJhN2JiZTQ4
MGUyYTU1NjljZjc3ZWFjM2JmZjI0OWVjNC4uY2RkN2Q2NjUxMTQ4YWFkOGVjMDdjZDMxMjA5MWUx
MTE4NzNmYTA2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaApAQCAtODYsNiAr
ODYsNyBAQCBlbnVtIGNsYXNzIFJvdXRlU2hhcmluZ1BvbGljeSA6IHVpbnQ4X3Q7CiBlbnVtIGNs
YXNzIFNjcm9sbGJhclN0eWxlIDogdWludDhfdDsKIGVudW0gY2xhc3MgVGV4dEluZGljYXRvcldp
bmRvd0xpZmV0aW1lIDogdWludDhfdDsKIGVudW0gY2xhc3MgVGV4dEluZGljYXRvcldpbmRvd0Rp
c21pc3NhbEFuaW1hdGlvbiA6IHVpbnQ4X3Q7CitlbnVtIGNsYXNzIERPTVBhc3RlQWNjZXNzUmVz
cG9uc2UgOiB1aW50OF90OwogCiBzdHJ1Y3QgRGljdGlvbmFyeVBvcHVwSW5mbzsKIHN0cnVjdCBI
aWdobGlnaHQ7CkBAIC05NSwxMyArOTYsMTEgQEAgc3RydWN0IFNoYXJlRGF0YVdpdGhQYXJzZWRV
Ukw7CiAKIHRlbXBsYXRlIDx0eXBlbmFtZT4gY2xhc3MgUmVjdEVkZ2VzOwogdXNpbmcgRmxvYXRC
b3hFeHRlbnQgPSBSZWN0RWRnZXM8ZmxvYXQ+OwotfQogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9S
VCkKLW5hbWVzcGFjZSBXZWJDb3JlIHsKIHN0cnVjdCBEcmFnSXRlbTsKLX0KICNlbmRpZgorfQog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtNDY1LDcgKzQ2NCw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlRHJhZ0NhcmV0UmVjdChjb25zdCBXZWJDb3JlOjpJbnRSZWN0
JiBwcmV2aW91c0NhcmV0UmVjdCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgY2FyZXRSZWN0KSA9
IDA7CiAjZW5kaWYKIAotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYgZWxlbWVudFJlY3QsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Ym9vbCk+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdERPTVBhc3RlQWNjZXNzKGNv
bnN0IFdlYkNvcmU6OkludFJlY3QmIGVsZW1lbnRSZWN0LCBjb25zdCBTdHJpbmcmIG9yaWdpbklk
ZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NS
ZXNwb25zZSk+JiYpID0gMDsKIAogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCiAgICAg
dmlydHVhbCB2b2lkIGRpZEluc2VydEF0dGFjaG1lbnQoQVBJOjpBdHRhY2htZW50JiwgY29uc3Qg
U3RyaW5nJiBzb3VyY2UpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKaW5kZXggNGE2MWNmOTU4M2NkNTFiMmViYjAyYzhkMzdhOGExNjYzNjY4Y2QyZC4uNmFiMjA0
NGEyNWQwMzYxMjBjNTJiY2JhODE2MDc5ZDY2MjhiYzczZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xMzEsNiArMTMxLDcgQEAKICNpbmNsdWRlICJXZWJz
aXRlRGF0YVN0b3JlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9BZENsaWNrQXR0cmlidXRpb24uaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0JpdG1hcEltYWdlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9ET01Q
YXN0ZUFjY2Vzcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdz
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmg+CkBAIC01NTA0LDkgKzU1MDUsOSBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0TmVlZHNQbGFpblRleHRRdWlyayhib29sIG5lZWRzUGxh
aW5UZXh0UXVpcmspCiAgICAgbV9uZWVkc1BsYWluVGV4dFF1aXJrID0gbmVlZHNQbGFpblRleHRR
dWlyazsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RET01QYXN0ZUFjY2Vzcyhjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JiBlbGVtZW50UmVjdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChi
b29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0RE9N
UGFzdGVBY2Nlc3MoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgZWxlbWVudFJlY3QsIGNvbnN0IFN0
cmluZyYgb3JpZ2luSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpE
T01QYXN0ZUFjY2Vzc1Jlc3BvbnNlKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBtX3Bh
Z2VDbGllbnQtPnJlcXVlc3RET01QYXN0ZUFjY2VzcyhlbGVtZW50UmVjdCwgV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcikpOworICAgIG1fcGFnZUNsaWVudC0+cmVxdWVzdERPTVBhc3RlQWNjZXNz
KGVsZW1lbnRSZWN0LCBvcmlnaW5JZGVudGlmaWVyLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSk7CiB9CiAKIC8vIEJhY2tGb3J3YXJkTGlzdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaAppbmRleCA2MzNkMzVjYzdkMDgyYzg0ZDBiZGUwZmQ1ZWU2NzJkOTdlNTRhNDRmLi5k
NDExNmY3ZGQ2OWIyNWQwNjc4YmUzODJlNzljYWRmNmFhMmEzNWY3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTgxLDYgKzE4MSw3IEBAIGNsYXNzIFZhbGlkYXRp
b25CdWJibGU7CiBlbnVtIFNlbGVjdGlvbkRpcmVjdGlvbiA6IHVpbnQ4X3Q7CiAKIGVudW0gY2xh
c3MgQXV0b3BsYXlFdmVudCA6IHVpbnQ4X3Q7CitlbnVtIGNsYXNzIERPTVBhc3RlQWNjZXNzUmVz
cG9uc2UgOiB1aW50OF90OwogZW51bSBjbGFzcyBMb2NrQmFja0ZvcndhcmRMaXN0IDogYm9vbDsK
IGVudW0gY2xhc3MgSGFzSW5zZWN1cmVDb250ZW50IDogYm9vbDsKIGVudW0gY2xhc3MgTm90aWZp
Y2F0aW9uRGlyZWN0aW9uIDogdWludDhfdDsKQEAgLTE2NjYsNyArMTY2Nyw3IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBzZXROZWVkc0hpZGRlbkNvbnRlbnRFZGl0YWJsZVF1aXJrKGJvb2wpOwogICAg
IHZvaWQgc2V0TmVlZHNQbGFpblRleHRRdWlyayhib29sKTsKIAotICAgIHZvaWQgcmVxdWVzdERP
TVBhc3RlQWNjZXNzKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGJvb2wpPiYmKTsKKyAgICB2b2lkIHJlcXVlc3RET01QYXN0ZUFjY2Vzcyhjb25zdCBXZWJD
b3JlOjpJbnRSZWN0JiwgY29uc3QgU3RyaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJD
b3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlKT4mJik7CiAKICAgICAvLyBCYWNrL0ZvcndhcmQg
bGlzdCBtYW5hZ2VtZW50CiAgICAgdm9pZCBiYWNrRm9yd2FyZEFkZEl0ZW0oQmFja0ZvcndhcmRM
aXN0SXRlbVN0YXRlJiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lm1lc3NhZ2VzLmluCmluZGV4IGMxMGE3NWMwNTlkN2YwOTFmNTA0YjRmYzk1YzFhNDM3MmNh
MDUwNWMuLmU4NjRkNGE5NmZiNjdmOWE1M2YxZDYwOWM2OWY3NzY1MjEzODRhMDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTI1
MSw3ICsyNTEsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIFNldEhhc0hhZFNl
bGVjdGlvbkNoYW5nZXNGcm9tVXNlckludGVyYWN0aW9uKGJvb2wgaGFzSGFkVXNlclNlbGVjdGlv
bkNoYW5nZXMpCiAgICAgU2V0TmVlZHNIaWRkZW5Db250ZW50RWRpdGFibGVRdWlyayhib29sIG5l
ZWRzSGlkZGVuQ29udGVudEVkaXRhYmxlUXVpcmspCiAgICAgU2V0TmVlZHNQbGFpblRleHRRdWly
ayhib29sIG5lZWRzUGxhaW5UZXh0UXVpcmspCi0gICAgUmVxdWVzdERPTVBhc3RlQWNjZXNzKFdl
YkNvcmU6OkludFJlY3QgZWxlbWVudFJlY3QpIC0+IChib29sIGdyYW50ZWQpIERlbGF5ZWQKKyAg
ICBSZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoV2ViQ29yZTo6SW50UmVjdCBlbGVtZW50UmVjdCwgU3Ry
aW5nIG9yaWdpbklkZW50aWZpZXIpIC0+IChlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6RE9NUGFzdGVB
Y2Nlc3NSZXNwb25zZSByZXNwb25zZSkgRGVsYXllZAogCiAgICAgIyBGaW5kIG1lc3NhZ2VzCiAg
ICAgRGlkQ291bnRTdHJpbmdNYXRjaGVzKFN0cmluZyBzdHJpbmcsIHVpbnQzMl90IG1hdGNoQ291
bnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudElt
cGxJT1MuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5o
CmluZGV4IGQwZDAzODQ3ZDBlMmUzYjU3Yzc1MzM4MjY3YWFhMjA0YTAyYTMzNjYuLjlmZWRjNjg5
MTAwNTMwMWMxNTExNTMxMjJmM2YxZDQ2ZDVhNzUwMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCkBAIC0zNSw2ICszNSw3IEBAIE9CSkNf
Q0xBU1MgV0tDb250ZW50VmlldzsKIE9CSkNfQ0xBU1MgV0tFZGl0b3JVbmRvVGFyZ2V0OwogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CitlbnVtIGNsYXNzIERPTVBhc3RlQWNjZXNzUmVzcG9uc2UgOiB1
aW50OF90Owogc3RydWN0IFByb21pc2VkQXR0YWNobWVudEluZm87CiB9CiAKQEAgLTIyNCw3ICsy
MjUsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVxdWVzdFBhc3N3b3JkRm9yUXVpY2tMb29rRG9j
dW1lbnQoY29uc3QgU3RyaW5nJiBmaWxlTmFtZSwgV1RGOjpGdW5jdGlvbjx2b2lkKGNvbnN0IFN0
cmluZyYpPiYmKSBvdmVycmlkZTsKICNlbmRpZgogCi0gICAgdm9pZCByZXF1ZXN0RE9NUGFzdGVB
Y2Nlc3MoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgZWxlbWVudFJlY3QsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFsOworICAgIHZvaWQgcmVxdWVzdERPTVBhc3RlQWNjZXNz
KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGVsZW1lbnRSZWN0LCBjb25zdCBTdHJpbmcmLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2UpPiYmKSBm
aW5hbDsKIAogI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQogICAgIHZvaWQgZGlkUGVyZm9y
bURyYWdPcGVyYXRpb24oYm9vbCBoYW5kbGVkKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQppbmRleCA1ZTBhNjkwN2I4MDMz
Njc3ODg1OGZiMDUwZWMwMTBhMGZjOThiMjVjLi5kOTU0ZTc3YWRjM2ZkNzRlYjk5NzZjMDIyMWM1
M2VkMDY2ZTU4MTU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFn
ZUNsaWVudEltcGxJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VD
bGllbnRJbXBsSU9TLm1tCkBAIC01NCw2ICs1NCw3IEBACiAjaW1wb3J0ICJXZWJFZGl0Q29tbWFu
ZFByb3h5LmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzUHJveHkuaCIKICNpbXBvcnQgIl9XS0Rvd25s
b2FkSW50ZXJuYWwuaCIKKyNpbXBvcnQgPFdlYkNvcmUvRE9NUGFzdGVBY2Nlc3MuaD4KICNpbXBv
cnQgPFdlYkNvcmUvRGljdGlvbmFyeUxvb2t1cC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Ob3RJbXBs
ZW1lbnRlZC5oPgogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybVNjcmVlbi5oPgpAQCAtODM3LDkg
KzgzOCw5IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OnJlcXVlc3RQYXNzd29yZEZvclF1aWNrTG9v
a0RvY3VtZW50KGNvbnN0IFN0cmluZyYgZmlsZU5hbWUsCiB9CiAjZW5kaWYKIAotdm9pZCBQYWdl
Q2xpZW50SW1wbDo6cmVxdWVzdERPTVBhc3RlQWNjZXNzKGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
IGVsZW1lbnRSZWN0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdERPTVBhc3RlQWNjZXNzKGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmIGVsZW1lbnRSZWN0LCBjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50
aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNw
b25zZSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgW21fY29udGVudFZpZXcgX3JlcXVl
c3RET01QYXN0ZUFjY2Vzc1dpdGhFbGVtZW50UmVjdDplbGVtZW50UmVjdCBjb21wbGV0aW9uSGFu
ZGxlcjpXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV07CisgICAgW21fY29udGVudFZpZXcgX3Jl
cXVlc3RET01QYXN0ZUFjY2Vzc1dpdGhFbGVtZW50UmVjdDplbGVtZW50UmVjdCBvcmlnaW5JZGVu
dGlmaWVyOm9yaWdpbklkZW50aWZpZXIgY29tcGxldGlvbkhhbmRsZXI6V1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcildOwogfQogCiAjaWYgSEFWRShQRU5DSUxLSVQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKaW5kZXgg
ZWU0MWNlZmE3NzJmMzJmZmYyNTYyOWEwYjA5MzVhNDUwZTk3YzJhMi4uZWVmMzc4Njg0YmZlZTky
OWNjYmMxYjEzYWIxZTFjNjYzMzQ4NjhjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaApAQCAtNzEsMTQgKzcxLDEz
IEBAIGNsYXNzIEludFNpemU7CiBjbGFzcyBTZWxlY3Rpb25SZWN0Owogc3RydWN0IFByb21pc2Vk
QXR0YWNobWVudEluZm87CiBzdHJ1Y3QgU2hhcmVEYXRhV2l0aFBhcnNlZFVSTDsKK2VudW0gY2xh
c3MgRE9NUGFzdGVBY2Nlc3NSZXNwb25zZSA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFJvdXRlU2hh
cmluZ1BvbGljeSA6IHVpbnQ4X3Q7Ci19CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotbmFt
ZXNwYWNlIFdlYkNvcmUgewogc3RydWN0IERyYWdJdGVtOwotfQogI2VuZGlmCit9CiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogY2xhc3MgSW5wdXRWaWV3VXBkYXRlRGVmZXJyZXI7CkBAIC0zMTgsNyAr
MzE3LDcgQEAgc3RydWN0IFdLQXV0b0NvcnJlY3Rpb25EYXRhIHsKICAgICBCT09MIF9mb2N1c1Jl
cXVpcmVzU3Ryb25nUGFzc3dvcmRBc3Npc3RhbmNlOwogCiAgICAgQk9PTCBfaGFzU2V0VXBJbnRl
cmFjdGlvbnM7Ci0gICAgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4gX2RvbVBhc3RlUmVx
dWVzdEhhbmRsZXI7CisgICAgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpET01QYXN0
ZUFjY2Vzc1Jlc3BvbnNlKT4gX2RvbVBhc3RlUmVxdWVzdEhhbmRsZXI7CiAKICNpZiBFTkFCTEUo
REFUQV9JTlRFUkFDVElPTikKICAgICBXZWJLaXQ6OkRyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZSBf
ZHJhZ0Ryb3BJbnRlcmFjdGlvblN0YXRlOwpAQCAtNDQwLDcgKzQzOSw3IEBAIEZPUl9FQUNIX1BS
SVZBVEVfV0tDT05URU5UVklFV19BQ1RJT04oREVDTEFSRV9XS0NPTlRFTlRWSUVXX0FDVElPTl9G
T1JfV0VCX1ZJRVcpCiAtICh2b2lkKV9hY2Nlc3NpYmlsaXR5Q2xlYXJTZWxlY3Rpb247CiAtIChX
S0Zvcm1JbnB1dFNlc3Npb24gKilfZm9ybUlucHV0U2Vzc2lvbjsKIAotLSAodm9pZClfcmVxdWVz
dERPTVBhc3RlQWNjZXNzV2l0aEVsZW1lbnRSZWN0Oihjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jill
bGVtZW50UmVjdCBjb21wbGV0aW9uSGFuZGxlcjooQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29s
KT4mJiljb21wbGV0aW9uSGFuZGxlcjsKKy0gKHZvaWQpX3JlcXVlc3RET01QYXN0ZUFjY2Vzc1dp
dGhFbGVtZW50UmVjdDooY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpZWxlbWVudFJlY3Qgb3JpZ2lu
SWRlbnRpZmllcjooY29uc3QgU3RyaW5nJilvcmlnaW5JZGVudGlmaWVyIGNvbXBsZXRpb25IYW5k
bGVyOihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9u
c2UpPiYmKWNvbXBsZXRpb25IYW5kbGVyOwogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9u
bHkpIFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24gY3VycmVudFBvc2l0
aW9uSW5mb3JtYXRpb247CiAtICh2b2lkKWRvQWZ0ZXJQb3NpdGlvbkluZm9ybWF0aW9uVXBkYXRl
Oih2b2lkICheKShXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uKSlhY3Rp
b24gZm9yUmVxdWVzdDooV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdClyZXF1
ZXN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZp
ZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggOGI4YzcyZDA0NDRlYjhlZTE5YTc0MjFhZGI1ZWVkNmFi
NjA0Mjc3My4uMGEyMzM3ZGRhODliZWE0ZGFmYTdhMGRhMzYwZWM0ZDZlNTk5OTM4YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlv
bi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLm1tCkBAIC03Nyw2ICs3Nyw3IEBACiAjaW1wb3J0IDxDb3JlVGV4dC9DVEZvbnREZXNj
cmlwdG9yLmg+CiAjaW1wb3J0IDxNb2JpbGVDb3JlU2VydmljZXMvVVRDb3JlVHlwZXMuaD4KICNp
bXBvcnQgPFdlYkNvcmUvQ29sb3IuaD4KKyNpbXBvcnQgPFdlYkNvcmUvRE9NUGFzdGVBY2Nlc3Mu
aD4KICNpbXBvcnQgPFdlYkNvcmUvRGF0YURldGVjdGlvbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9G
bG9hdFF1YWQuaD4KICNpbXBvcnQgPFdlYkNvcmUvRm9udEF0dHJpYnV0ZUNoYW5nZXMuaD4KQEAg
LTg5MCw3ICs4OTEsNyBAQCAtICh2b2lkKWNsZWFudXBJbnRlcmFjdGlvbgogI2lmIEVOQUJMRShQ
T0lOVEVSX0VWRU5UUykKICAgICBbc2VsZiBfcmVzZXRQYW5uaW5nUHJldmVudGlvbkZsYWdzXTsK
ICNlbmRpZgotICAgIFtzZWxmIF9oYW5kbGVET01QYXN0ZVJlcXVlc3RXaXRoUmVzdWx0Ok5PXTsK
KyAgICBbc2VsZiBfaGFuZGxlRE9NUGFzdGVSZXF1ZXN0V2l0aFJlc3VsdDpXZWJDb3JlOjpET01Q
YXN0ZUFjY2Vzc1Jlc3BvbnNlOjpEZW5pZWRGb3JHZXN0dXJlXTsKIH0KIAogLSAodm9pZClfcmVt
b3ZlRGVmYXVsdEdlc3R1cmVSZWNvZ25pemVycwpAQCAtMTE3OCw3ICsxMTc5LDcgQEAgLSAoQk9P
TClyZXNpZ25GaXJzdFJlc3BvbmRlckZvcldlYlZpZXcKICAgICBib29sIHN1cGVyRGlkUmVzaWdu
ID0gW3N1cGVyIHJlc2lnbkZpcnN0UmVzcG9uZGVyXTsKIAogICAgIGlmIChzdXBlckRpZFJlc2ln
bikgewotICAgICAgICBbc2VsZiBfaGFuZGxlRE9NUGFzdGVSZXF1ZXN0V2l0aFJlc3VsdDpOT107
CisgICAgICAgIFtzZWxmIF9oYW5kbGVET01QYXN0ZVJlcXVlc3RXaXRoUmVzdWx0OldlYkNvcmU6
OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2U6OkRlbmllZEZvckdlc3R1cmVdOwogICAgICAgICBfcGFn
ZS0+YWN0aXZpdHlTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpJc0ZvY3Vz
ZWQpOwogICAgIH0KIApAQCAtMTIxNCw3ICsxMjE1LDcgQEAgLSAodm9pZClfd2ViVG91Y2hFdmVu
dHNSZWNvZ25pemVkOihVSVdlYlRvdWNoRXZlbnRzR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJl
UmUKIAogICAgIF9sYXN0SW50ZXJhY3Rpb25Mb2NhdGlvbiA9IGxhc3RUb3VjaEV2ZW50LT5sb2Nh
dGlvbkluRG9jdW1lbnRDb29yZGluYXRlczsKICAgICBpZiAobGFzdFRvdWNoRXZlbnQtPnR5cGUg
PT0gVUlXZWJUb3VjaEV2ZW50VG91Y2hCZWdpbikgewotICAgICAgICBbc2VsZiBfaGFuZGxlRE9N
UGFzdGVSZXF1ZXN0V2l0aFJlc3VsdDpOT107CisgICAgICAgIFtzZWxmIF9oYW5kbGVET01QYXN0
ZVJlcXVlc3RXaXRoUmVzdWx0OldlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2U6OkRlbmll
ZEZvckdlc3R1cmVdOwogICAgICAgICBfbGF5ZXJUcmVlVHJhbnNhY3Rpb25JZEF0TGFzdFRvdWNo
U3RhcnQgPSBkb3duY2FzdDxXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk+
KCpfcGFnZS0+ZHJhd2luZ0FyZWEoKSkubGFzdENvbW1pdHRlZExheWVyVHJlZVRyYW5zYWN0aW9u
SUQoKTsKICAgICB9CiAKQEAgLTI4OTgsNyArMjg5OSw3IEBAIC0gKGlkKXRhcmdldEZvckFjdGlv
bkZvcldlYlZpZXc6KFNFTClhY3Rpb24gd2l0aFNlbmRlcjooaWQpc2VuZGVyCiAKIC0gKHZvaWQp
X3dpbGxIaWRlTWVudTooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KIHsKLSAgICBbc2Vs
ZiBfaGFuZGxlRE9NUGFzdGVSZXF1ZXN0V2l0aFJlc3VsdDpOT107CisgICAgW3NlbGYgX2hhbmRs
ZURPTVBhc3RlUmVxdWVzdFdpdGhSZXN1bHQ6V2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25z
ZTo6RGVuaWVkRm9yR2VzdHVyZV07CiB9CiAKIC0gKHZvaWQpX2RpZEhpZGVNZW51OihOU05vdGlm
aWNhdGlvbiAqKW5vdGlmaWNhdGlvbgpAQCAtMjkyNiw3ICsyOTI3LDcgQEAgLSAodm9pZCljdXRG
b3JXZWJWaWV3OihpZClzZW5kZXIKIAogLSAodm9pZClwYXN0ZUZvcldlYlZpZXc6KGlkKXNlbmRl
cgogewotICAgIGlmIChzZW5kZXIgPT0gVUlNZW51Q29udHJvbGxlci5zaGFyZWRNZW51Q29udHJv
bGxlciAmJiBbc2VsZiBfaGFuZGxlRE9NUGFzdGVSZXF1ZXN0V2l0aFJlc3VsdDpZRVNdKQorICAg
IGlmIChzZW5kZXIgPT0gVUlNZW51Q29udHJvbGxlci5zaGFyZWRNZW51Q29udHJvbGxlciAmJiBb
c2VsZiBfaGFuZGxlRE9NUGFzdGVSZXF1ZXN0V2l0aFJlc3VsdDpXZWJDb3JlOjpET01QYXN0ZUFj
Y2Vzc1Jlc3BvbnNlOjpHcmFudGVkRm9yR2VzdHVyZV0pCiAgICAgICAgIHJldHVybjsKIAogICAg
IF9wYWdlLT5leGVjdXRlRWRpdENvbW1hbmQoInBhc3RlIl9zKTsKQEAgLTMwNTgsMTEgKzMwNTks
MTEgQEAgLSAodm9pZClfYWNjZXNzaWJpbGl0eUNsZWFyU2VsZWN0aW9uCiAgICAgX3BhZ2UtPnN0
b3JlU2VsZWN0aW9uRm9yQWNjZXNzaWJpbGl0eShmYWxzZSk7CiB9CiAKLS0gKEJPT0wpX2hhbmRs
ZURPTVBhc3RlUmVxdWVzdFdpdGhSZXN1bHQ6KEJPT0wpYWxsb3dQYXN0ZQorLSAoQk9PTClfaGFu
ZGxlRE9NUGFzdGVSZXF1ZXN0V2l0aFJlc3VsdDooV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNw
b25zZSlyZXNwb25zZQogewogICAgIGlmIChhdXRvIHBhc3RlSGFuZGxlciA9IFdURk1vdmUoX2Rv
bVBhc3RlUmVxdWVzdEhhbmRsZXIpKSB7CiAgICAgICAgIFtzZWxmIGhpZGVHbG9iYWxNZW51Q29u
dHJvbGxlcl07Ci0gICAgICAgIHBhc3RlSGFuZGxlcihhbGxvd1Bhc3RlKTsKKyAgICAgICAgcGFz
dGVIYW5kbGVyKHJlc3BvbnNlKTsKICAgICAgICAgcmV0dXJuIFlFUzsKICAgICB9CiAgICAgcmV0
dXJuIE5POwpAQCAtMzA3MSwxMyArMzA3MiwxMyBAQCAtIChCT09MKV9oYW5kbGVET01QYXN0ZVJl
cXVlc3RXaXRoUmVzdWx0OihCT09MKWFsbG93UGFzdGUKIC0gKHZvaWQpX3dpbGxQZXJmb3JtQWN0
aW9uOihTRUwpYWN0aW9uIHNlbmRlcjooaWQpc2VuZGVyCiB7CiAgICAgaWYgKGFjdGlvbiAhPSBA
c2VsZWN0b3IocGFzdGU6KSkKLSAgICAgICAgW3NlbGYgX2hhbmRsZURPTVBhc3RlUmVxdWVzdFdp
dGhSZXN1bHQ6Tk9dOworICAgICAgICBbc2VsZiBfaGFuZGxlRE9NUGFzdGVSZXF1ZXN0V2l0aFJl
c3VsdDpXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlOjpEZW5pZWRGb3JHZXN0dXJlXTsK
IH0KIAogLSAodm9pZClfZGlkUGVyZm9ybUFjdGlvbjooU0VMKWFjdGlvbiBzZW5kZXI6KGlkKXNl
bmRlcgogewogICAgIGlmIChhY3Rpb24gPT0gQHNlbGVjdG9yKHBhc3RlOikpCi0gICAgICAgIFtz
ZWxmIF9oYW5kbGVET01QYXN0ZVJlcXVlc3RXaXRoUmVzdWx0Ok5PXTsKKyAgICAgICAgW3NlbGYg
X2hhbmRsZURPTVBhc3RlUmVxdWVzdFdpdGhSZXN1bHQ6V2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NS
ZXNwb25zZTo6RGVuaWVkRm9yR2VzdHVyZV07CiB9CiAKIC8vIFVJV0tJbnRlcmFjdGlvblZpZXdQ
cm90b2NvbApAQCAtNDI5NSw3ICs0Mjk2LDcgQEAgLSAodm9pZCloYW5kbGVLZXlXZWJFdmVudDoo
OjpXZWJFdmVudCAqKXRoZUV2ZW50CiAKIC0gKHZvaWQpaGFuZGxlS2V5V2ViRXZlbnQ6KDo6V2Vi
RXZlbnQgKil0aGVFdmVudCB3aXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKDo6V2ViRXZl
bnQgKnRoZUV2ZW50LCBCT09MIHdhc0hhbmRsZWQpKWNvbXBsZXRpb25IYW5kbGVyCiB7Ci0gICAg
W3NlbGYgX2hhbmRsZURPTVBhc3RlUmVxdWVzdFdpdGhSZXN1bHQ6Tk9dOworICAgIFtzZWxmIF9o
YW5kbGVET01QYXN0ZVJlcXVlc3RXaXRoUmVzdWx0OldlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVz
cG9uc2U6OkRlbmllZEZvckdlc3R1cmVdOwogCiAgICAgX2tleVdlYkV2ZW50SGFuZGxlciA9IG1h
a2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcik7CiAgICAgX3BhZ2UtPmhhbmRsZUtleWJvYXJk
RXZlbnQoV2ViS2l0OjpOYXRpdmVXZWJLZXlib2FyZEV2ZW50KHRoZUV2ZW50KSk7CkBAIC01MDIz
LDExICs1MDI0LDQxIEBAIC0gKHZvaWQpaGlkZUdsb2JhbE1lbnVDb250cm9sbGVyCiAjZW5kaWYK
IH0KIAotLSAodm9pZClfcmVxdWVzdERPTVBhc3RlQWNjZXNzV2l0aEVsZW1lbnRSZWN0Oihjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JillbGVtZW50UmVjdCBjb21wbGV0aW9uSGFuZGxlcjooQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiljb21wbGV0aW9uSGFuZGxlcgorc3RhdGljIEJPT0wg
YWxsUGFzdGVib2FyZEl0ZW1PcmlnaW5zTWF0Y2hPcmlnaW4oVUlQYXN0ZWJvYXJkICpwYXN0ZWJv
YXJkLCBjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIpCit7CisgICAgaWYgKG9yaWdpbklk
ZW50aWZpZXIuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gTk87CisKKyAgICBOU0luZGV4U2V0
ICppbmRpY2VzID0gW05TSW5kZXhTZXQgaW5kZXhTZXRXaXRoSW5kZXhlc0luUmFuZ2U6TlNNYWtl
UmFuZ2UoMCwgW3Bhc3RlYm9hcmQgbnVtYmVyT2ZJdGVtc10pXTsKKyAgICBOU0FycmF5PE5TRGF0
YSAqPiAqYWxsQ3VzdG9tRGF0YSA9IFtwYXN0ZWJvYXJkIGRhdGFGb3JQYXN0ZWJvYXJkVHlwZTpA
KFdlYkNvcmU6OlBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKSkgaW5JdGVtU2V0Omlu
ZGljZXNdOworICAgIGlmICghYWxsQ3VzdG9tRGF0YS5jb3VudCkKKyAgICAgICAgcmV0dXJuIE5P
OworCisgICAgQk9PTCBmb3VuZEF0TGVhc3RPbmVNYXRjaGluZ0lkZW50aWZpZXI7CisgICAgZm9y
IChOU0RhdGEgKmRhdGEgaW4gYWxsQ3VzdG9tRGF0YSkgeworICAgICAgICBpZiAoIWRhdGEubGVu
Z3RoKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgYXV0byBidWZmZXIgPSBXZWJD
b3JlOjpTaGFyZWRCdWZmZXI6OmNyZWF0ZShkYXRhKTsKKyAgICAgICAgaWYgKFdlYkNvcmU6OlBh
c3RlYm9hcmRDdXN0b21EYXRhOjpmcm9tU2hhcmVkQnVmZmVyKGJ1ZmZlci5nZXQoKSkub3JpZ2lu
ICE9IG9yaWdpbklkZW50aWZpZXIpCisgICAgICAgICAgICByZXR1cm4gTk87CisKKyAgICAgICAg
Zm91bmRBdExlYXN0T25lTWF0Y2hpbmdJZGVudGlmaWVyID0gWUVTOworICAgIH0KKworICAgIHJl
dHVybiBmb3VuZEF0TGVhc3RPbmVNYXRjaGluZ0lkZW50aWZpZXI7Cit9CisKKy0gKHZvaWQpX3Jl
cXVlc3RET01QYXN0ZUFjY2Vzc1dpdGhFbGVtZW50UmVjdDooY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYpZWxlbWVudFJlY3Qgb3JpZ2luSWRlbnRpZmllcjooY29uc3QgU3RyaW5nJilvcmlnaW5JZGVu
dGlmaWVyIGNvbXBsZXRpb25IYW5kbGVyOihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6
OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2UpPiYmKWNvbXBsZXRpb25IYW5kbGVyCiB7CiAgICAgaWYg
KGF1dG8gZXhpc3RpbmdDb21wbGV0aW9uSGFuZGxlciA9IHN0ZDo6ZXhjaGFuZ2UoX2RvbVBhc3Rl
UmVxdWVzdEhhbmRsZXIsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKSkgewogICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgZXhpc3RpbmdDb21wbGV0aW9uSGFuZGxlcihm
YWxzZSk7CisgICAgICAgIGV4aXN0aW5nQ29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RE9NUGFz
dGVBY2Nlc3NSZXNwb25zZTo6RGVuaWVkRm9yR2VzdHVyZSk7CisgICAgfQorCisgICAgaWYgKGFs
bFBhc3RlYm9hcmRJdGVtT3JpZ2luc01hdGNoT3JpZ2luKFVJUGFzdGVib2FyZC5nZW5lcmFsUGFz
dGVib2FyZCwgb3JpZ2luSWRlbnRpZmllcikpIHsKKyAgICAgICAgW3NlbGYgX2hhbmRsZURPTVBh
c3RlUmVxdWVzdFdpdGhSZXN1bHQ6V2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZTo6R3Jh
bnRlZEZvckNvbW1hbmRdOworICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgV2ViQ29yZTo6
SW50UmVjdCBtZW51Q29udHJvbGxlclJlY3QgPSBlbGVtZW50UmVjdDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmgKaW5kZXggNDIxMDFhYjYxZTBm
NjcyMTMyMmEyYzU0ZDFhNTFiOTk4OTYxMTRjNi4uYzkzZmJjYjFkNTIyY2YwNGY1MGNmOTA5NzZl
NTJkMDRlYWYyYTg0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1Bh
Z2VDbGllbnRJbXBsTWFjLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VD
bGllbnRJbXBsTWFjLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJDb3JyZWN0aW9uUGFu
ZWwuaCIKICNpbmNsdWRlICJQYWdlQ2xpZW50SW1wbENvY29hLmgiCiAjaW5jbHVkZSAiV2ViRnVs
bFNjcmVlbk1hbmFnZXJQcm94eS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRE9NUGFzdGVBY2Nlc3Mu
aD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvUmV0
YWluUHRyLmg+CiAKQEAgLTIxNCw3ICsyMTUsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgd2lsbFJl
Y29yZE5hdmlnYXRpb25TbmFwc2hvdChXZWJCYWNrRm9yd2FyZExpc3RJdGVtJikgb3ZlcnJpZGU7
CiAgICAgdm9pZCBkaWRSZW1vdmVOYXZpZ2F0aW9uR2VzdHVyZVNuYXBzaG90KCkgb3ZlcnJpZGU7
CiAKLSAgICB2b2lkIHJlcXVlc3RET01QYXN0ZUFjY2Vzcyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uKSBmaW5hbCB7IGNv
bXBsZXRpb24oZmFsc2UpOyB9CisgICAgdm9pZCByZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoY29uc3Qg
V2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlKT4mJiBjb21w
bGV0aW9uKSBmaW5hbCB7IGNvbXBsZXRpb24oV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25z
ZTo6RGVuaWVkRm9yR2VzdHVyZSk7IH0KIAogICAgIE5TVmlldyAqYWN0aXZlVmlldygpIGNvbnN0
OwogICAgIE5TV2luZG93ICphY3RpdmVXaW5kb3coKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9QYWdlQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy93aW4vUGFnZUNsaWVudEltcGwuY3BwCmluZGV4IGNhNTAyM2VkNmUwZjlkNWJm
ODdkNzAyZWQ4NjI5YWZjMzMxMmJhZjQuLjI2NGIwMWMyMjI3ZDc3Njk4NmY3OWNmYWFhMmNiYTcz
YzY0OTA4MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9QYWdlQ2xp
ZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1BhZ2VDbGllbnRJ
bXBsLmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgogI2lu
Y2x1ZGUgIldlYlBvcHVwTWVudVByb3h5V2luLmgiCiAjaW5jbHVkZSAiV2ViVmlldy5oIgorI2lu
Y2x1ZGUgPFdlYkNvcmUvRE9NUGFzdGVBY2Nlc3MuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTM2Nyw5ICszNjgsOSBAQCBIV05EIFBhZ2VDbGll
bnRJbXBsOjp2aWV3V2lkZ2V0KCkKICAgICByZXR1cm4gbV92aWV3LndpbmRvdygpOwogfQogCi12
b2lkIFBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoY29uc3QgSW50UmVjdCYs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lk
IFBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoY29uc3QgSW50UmVjdCYsIGNv
bnN0IFN0cmluZyYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RE9NUGFzdGVBY2Nl
c3NSZXNwb25zZSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgY29tcGxldGlvbkhhbmRs
ZXIoZmFsc2UpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNz
UmVzcG9uc2U6OkRlbmllZEZvckdlc3R1cmUpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9QYWdlQ2xpZW50SW1wbC5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1BhZ2VDbGllbnRJbXBsLmgKaW5kZXggNzM5
NmQzOWJjMTJlNGE3NzZkYWMzNTgxYWI1YjQ0NjVmZTRhOWQ1ZS4uMWY5ZGE4NDA0MGE1Y2MwOWE0
YzVlYzkwOTRhYWMzMjE4NjA2MzU0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3Mvd2luL1BhZ2VDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2lu
L1BhZ2VDbGllbnRJbXBsLmgKQEAgLTM0LDYgKzM0LDEwIEBACiAjaW5jbHVkZSAiV2ViUGFnZVBy
b3h5LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRTaXplLmg+CiAKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKK2VudW0gY2xhc3MgRE9NUGFzdGVBY2Nlc3NSZXNwb25zZSA6IHVpbnQ4X3Q7Cit9CisKIG5h
bWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBEcmF3aW5nQXJlYVByb3h5OwpAQCAtMTQ0LDcgKzE0
OCw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGRpZEZpbmlzaFByb2Nlc3NpbmdBbGxQZW5kaW5n
TW91c2VFdmVudHMoKSBmaW5hbCB7IH0KIAotICAgIHZvaWQgcmVxdWVzdERPTVBhc3RlQWNjZXNz
KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYm
KSBmaW5hbDsKKyAgICB2b2lkIHJlcXVlc3RET01QYXN0ZUFjY2Vzcyhjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0JiwgY29uc3QgU3RyaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpE
T01QYXN0ZUFjY2Vzc1Jlc3BvbnNlKT4mJikgZmluYWw7CiAKICAgICAvLyBNZW1iZXJzIG9mIFBh
Z2VDbGllbnRJbXBsIGNsYXNzCiAgICAgRGVmYXVsdFVuZG9Db250cm9sbGVyIG1fdW5kb0NvbnRy
b2xsZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRWRpdG9yQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCmluZGV4IDkzNDA1NzEzYmQ4ZWZmNzRjOGFmYmQx
OWJlNDc0MDNhNTc1MDQ2NmEuLjQ5ZDVlYjUyY2ZmY2M0NjRmMTMzYmU3MDFjNGQ1MjBiZGRjODNi
M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJFZGl0b3JDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAi
V2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgIldlYlVuZG9TdGVwLmgiCiAjaW5jbHVkZSA8V2ViQ29y
ZS9BcmNoaXZlUmVzb3VyY2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0RPTVBhc3RlQWNjZXNzLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudEZyYWdtZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9Gb2N1c0NvbnRyb2xsZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+CkBAIC0zNTQs
OSArMzU1LDkgQEAgdm9pZCBXZWJFZGl0b3JDbGllbnQ6OnJlZG8oKQogICAgIG1fcGFnZS0+c2Vu
ZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RXhlY3V0ZVVuZG9SZWRvKFVuZG9PclJlZG86
OlJlZG8pLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpFeGVjdXRlVW5kb1JlZG86OlJlcGx5KCkp
OwogfQogCi1ib29sIFdlYkVkaXRvckNsaWVudDo6cmVxdWVzdERPTVBhc3RlQWNjZXNzKCkKK1dl
YkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2UgV2ViRWRpdG9yQ2xpZW50OjpyZXF1ZXN0RE9N
UGFzdGVBY2Nlc3MoY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyKQogewotICAgIHJldHVy
biBtX3BhZ2UtPnJlcXVlc3RET01QYXN0ZUFjY2VzcygpOworICAgIHJldHVybiBtX3BhZ2UtPnJl
cXVlc3RET01QYXN0ZUFjY2VzcyhvcmlnaW5JZGVudGlmaWVyKTsKIH0KIAogI2lmIFBMQVRGT1JN
KFdJTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJFZGl0b3JDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJFZGl0b3JDbGllbnQuaAppbmRleCBiMTJiYTYwMmZhZTM4MzU2YWNkYmNhZTk1YTFm
YmFjZjA5NzkzMTc0Li4zMDk4OGVkODBmNWZjMjQyYjVjNDUxZTZiMTZlODg3MTYyMmJhZWU1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRp
dG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkVkaXRvckNsaWVudC5oCkBAIC0yOCw2ICsyOCwxMCBAQAogI2luY2x1ZGUgPFdlYkNvcmUv
RWRpdG9yQ2xpZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UZXh0Q2hlY2tlckNsaWVudC5oPgog
CituYW1lc3BhY2UgV2ViQ29yZSB7CitlbnVtIGNsYXNzIERPTVBhc3RlQWNjZXNzUmVzcG9uc2Ug
OiB1aW50OF90OworfQorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViUGFnZTsKQEAg
LTg4LDcgKzkyLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlZ2lzdGVyUmVkb1N0ZXAoV2ViQ29y
ZTo6VW5kb1N0ZXAmKSBmaW5hbDsKICAgICB2b2lkIGNsZWFyVW5kb1JlZG9PcGVyYXRpb25zKCkg
ZmluYWw7CiAKLSAgICBib29sIHJlcXVlc3RET01QYXN0ZUFjY2VzcygpIGZpbmFsOworICAgIFdl
YkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2UgcmVxdWVzdERPTVBhc3RlQWNjZXNzKGNvbnN0
IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllcikgZmluYWw7CiAKICAgICBib29sIGNhbkNvcHlDdXQo
V2ViQ29yZTo6RnJhbWUqLCBib29sIGRlZmF1bHRWYWx1ZSkgY29uc3QgZmluYWw7CiAgICAgYm9v
bCBjYW5QYXN0ZShXZWJDb3JlOjpGcmFtZSosIGJvb2wgZGVmYXVsdFZhbHVlKSBjb25zdCBmaW5h
bDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXgg
NmFiM2EzMDI3YTQxZmQyZjY4ZjM2NjYwNjM1M2Y4MTY4ZWM3MmY4Yy4uMTE5OWExMWFmMzcxYWJl
NDQ5NDA4NWI0MzZiZTVmMzc2MzZmOGRlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTEzOSw2ICsxMzksNyBAQAogI2luY2x1ZGUgPFdlYkNv
cmUvQ2hyb21lLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Db21tb25WTS5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvQ29udGV4dE1lbnVDb250cm9sbGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9ET01QYXN0
ZUFjY2Vzcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGF0YVRyYW5zZmVyLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9EYXRhYmFzZU1hbmFnZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RlcHJlY2F0ZWRH
bG9iYWxTZXR0aW5ncy5oPgpAQCAtNjQzMywxMyArNjQzNCwxMSBAQCB2b2lkIFdlYlBhZ2U6OmRp
ZENvbXBsZXRlU2hhcmVTaGVldChib29sIHdhc0dyYW50ZWQsIFNoYXJlU2hlZXRDYWxsYmFja0lE
IGNhbGxiYQogICAgIGNhbGxiYWNrKHdhc0dyYW50ZWQpOwogfQogCi1ib29sIFdlYlBhZ2U6OnJl
cXVlc3RET01QYXN0ZUFjY2VzcygpCitXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlIFdl
YlBhZ2U6OnJlcXVlc3RET01QYXN0ZUFjY2Vzcyhjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZp
ZXIpCiB7Ci0gICAgYm9vbCBncmFudGVkID0gZmFsc2U7Ci0gICAgaWYgKCFzZW5kU3luY1dpdGhE
ZWxheWVkUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UmVxdWVzdERPTVBhc3RlQWNjZXNz
KHJlY3RGb3JFbGVtZW50QXRJbnRlcmFjdGlvbkxvY2F0aW9uKCkpLCBNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpSZXF1ZXN0RE9NUGFzdGVBY2Nlc3M6OlJlcGx5KGdyYW50ZWQpKSkKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotCi0gICAgcmV0dXJuIGdyYW50ZWQ7CisgICAgYXV0byByZXNwb25zZSA9
IFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2U6OkRlbmllZEZvckdlc3R1cmU7CisgICAg
c2VuZFN5bmNXaXRoRGVsYXllZFJlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJlcXVlc3RE
T01QYXN0ZUFjY2VzcyhyZWN0Rm9yRWxlbWVudEF0SW50ZXJhY3Rpb25Mb2NhdGlvbigpLCBvcmln
aW5JZGVudGlmaWVyKSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UmVxdWVzdERPTVBhc3RlQWNj
ZXNzOjpSZXBseShyZXNwb25zZSkpOworICAgIHJldHVybiByZXNwb25zZTsKIH0KIAogdm9pZCBX
ZWJQYWdlOjpzaW11bGF0ZURldmljZU9yaWVudGF0aW9uQ2hhbmdlKGRvdWJsZSBhbHBoYSwgZG91
YmxlIGJldGEsIGRvdWJsZSBnYW1tYSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaAppbmRleCA1ODJjMTVmNGEzOGYzMjU1ZTkxYTIxMmFmMjU3ZmJjYTViNzI2ZjU5
Li4yMTcwNDZiOTJlZjZiNmE0NDI5YjAzYWQ0MjAyMmM4ZDVmOGU5MzRiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xNzEsNiArMTcxLDcgQEAgY2xh
c3MgVGV4dENoZWNraW5nUmVxdWVzdDsKIGNsYXNzIFZpc2libGVQb3NpdGlvbjsKIAogZW51bSBT
eW50aGV0aWNDbGlja1R5cGUgOiBpbnQ4X3Q7CitlbnVtIGNsYXNzIERPTVBhc3RlQWNjZXNzUmVz
cG9uc2UgOiB1aW50OF90OwogZW51bSBjbGFzcyBEcmFnSGFuZGxpbmdNZXRob2QgOiB1aW50OF90
OwogZW51bSBjbGFzcyBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgOiBib29sOwogZW51bSBj
bGFzcyBUZXh0SW5kaWNhdG9yUHJlc2VudGF0aW9uVHJhbnNpdGlvbiA6IHVpbnQ4X3Q7CkBAIC0x
MTQ0LDcgKzExNDUsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBzZW5kU3luYyhXVEZNb3Zl
KG1lc3NhZ2UpLCBXVEZNb3ZlKHJlcGx5KSwgbV9wYWdlSUQsIFNlY29uZHM6OmluZmluaXR5KCks
IElQQzo6U2VuZFN5bmNPcHRpb246OkluZm9ybVBsYXRmb3JtUHJvY2Vzc1dpbGxTdXNwZW5kKTsK
ICAgICB9CiAKLSAgICBib29sIHJlcXVlc3RET01QYXN0ZUFjY2VzcygpOworICAgIFdlYkNvcmU6
OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2UgcmVxdWVzdERPTVBhc3RlQWNjZXNzKGNvbnN0IFN0cmlu
ZyYgb3JpZ2luSWRlbnRpZmllcik7CiAgICAgV2ViQ29yZTo6SW50UmVjdCByZWN0Rm9yRWxlbWVu
dEF0SW50ZXJhY3Rpb25Mb2NhdGlvbigpIGNvbnN0OwogCiAgICAgY29uc3QgT3B0aW9uYWw8V2Vi
Q29yZTo6Q29sb3I+JiBiYWNrZ3JvdW5kQ29sb3IoKSBjb25zdCB7IHJldHVybiBtX2JhY2tncm91
bmRDb2xvcjsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAppbmRleCBlNGMyZmQ2Y2Y1ZjhmZTQzOTgyYjI1ZmZk
YTI4ZTc4NmJiZjZmNzdkLi5mNTZjZjJjNGYzNTU1N2VlMzBjNTliODQwNzQ0ODIyNDU2MjlmYjdk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJF
ZGl0b3JDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJFZGl0b3JDbGllbnQuaApAQCAtMjcsNiArMjcsNyBAQAogICogVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwog
CisjaW1wb3J0IDxXZWJDb3JlL0RPTVBhc3RlQWNjZXNzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0Vk
aXRvckNsaWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9UZXh0Q2hlY2tlckNsaWVudC5oPgogI2lt
cG9ydCA8V2ViQ29yZS9WaXNpYmxlU2VsZWN0aW9uLmg+CkBAIC04MCw3ICs4MSw3IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBnZXRDbGllbnRQYXN0ZWJvYXJkRGF0YUZvclJhbmdlKFdlYkNvcmU6OlJh
bmdlKiwgVmVjdG9yPFN0cmluZz4mIHBhc3RlYm9hcmRUeXBlcywgVmVjdG9yPFJlZlB0cjxXZWJD
b3JlOjpTaGFyZWRCdWZmZXI+PiYgcGFzdGVib2FyZERhdGEpIGZpbmFsOwogCiAgICAgdm9pZCBz
ZXRJbnNlcnRpb25QYXN0ZWJvYXJkKGNvbnN0IFN0cmluZyYpIGZpbmFsOwotICAgIGJvb2wgcmVx
dWVzdERPTVBhc3RlQWNjZXNzKCkgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBXZWJDb3Jl
OjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlIHJlcXVlc3RET01QYXN0ZUFjY2Vzcyhjb25zdCBTdHJp
bmcmKSBmaW5hbCB7IHJldHVybiBXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlOjpEZW5p
ZWRGb3JHZXN0dXJlOyB9CiAKICNpZiBVU0UoQVBQS0lUKQogICAgIHZvaWQgdXBwZXJjYXNlV29y
ZCgpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1
cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAppbmRleCBiNzBmN2NiNjY2YjQ5ZmE2NDE4ZTcwMjFh
YWQzNWEyMzJmY2MwYmEzLi5lZWEyNzM1NGE2YTRjOWU0MzJmNzkyNDNjYTZkMWRlMjA3MTg0YTg0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJF
ZGl0b3JDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9y
dC9XZWJFZGl0b3JDbGllbnQuaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNp
bmNsdWRlICJXZWJLaXQuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0RPTVBhc3RlQWNjZXNzLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9FZGl0b3JDbGllbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1RleHRD
aGVja2VyQ2xpZW50Lmg+CiAKQEAgLTExNCw3ICsxMTUsNyBAQCBwcml2YXRlOgogICAgIHZvaWQg
cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6VGV4dENoZWNraW5nUmVxdWVzdCYsIGNv
bnN0IFdlYkNvcmU6OlZpc2libGVTZWxlY3Rpb24mKSBmaW5hbCB7IH0KICAgICBib29sIHBlcmZv
cm1Ud29TdGVwRHJvcChXZWJDb3JlOjpEb2N1bWVudEZyYWdtZW50JiwgV2ViQ29yZTo6UmFuZ2Um
LCBib29sKSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQogCi0gICAgYm9vbCByZXF1ZXN0RE9NUGFz
dGVBY2Nlc3MoKSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQorICAgIFdlYkNvcmU6OkRPTVBhc3Rl
QWNjZXNzUmVzcG9uc2UgcmVxdWVzdERPTVBhc3RlQWNjZXNzKGNvbnN0IFN0cmluZyYpIGZpbmFs
IHsgcmV0dXJuIFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2U6OkRlbmllZEZvckdlc3R1
cmU7IH0KIAogICAgIFdlYkNvcmU6OlRleHRDaGVja2VyQ2xpZW50KiB0ZXh0Q2hlY2tlcigpIGZp
bmFsIHsgcmV0dXJuIHRoaXM7IH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGFhNjJjNTJmYzNhOTUxOTMyMGM2YzlmZTI5
YjVkZDY5YmEzZTkyODguLjRkNTliNDE4MjM3MzZjZGQ4ZWFiOWEyYmYyOTk4NDBjYTA3NzViMDIg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxOS0wMi0yNiAgV2Vuc29uIEhzaWVoICA8d2Vuc29u
X2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBQcm9ncmFtbWF0aWMgcGFzdGUgYWNj
ZXNzIHNob3VsZCBiZSBncmFudGVkIHdoZW4gY29weWluZyBhbmQgcGFzdGluZyB3aXRoaW4gdGhl
IHNhbWUgb3JpZ2luCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xOTUwNTMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ4MTM0NzEwPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkanVzdCBzZXZlcmFsIGV4
aXN0aW5nIERPTSBwYXN0ZSB0ZXN0cyB0byBjb3B5IHRleHQgZnJvbSBhIGNoaWxkIGZyYW1lIHRo
YXQgaGFzIGEgZGlmZmVyZW50IG9yaWdpbiBhcyB0aGUgbWFpbgorICAgICAgICBmcmFtZSwgc3Vj
aCB0aGF0IHdlJ2xsIHRyaWdnZXIgdGhlIHBhc3RlIGNhbGxvdXQgbWVudSB3aGVuIHBlcmZvcm1p
bmcgYSBwcm9ncmFtbWF0aWMgcGFzdGUuIEFsc28gYWRkIGEgbmV3CisgICAgICAgIGxheW91dCB0
ZXN0IHRoYXQgY29waWVzIGFuZCBwcm9ncmFtbWF0aWNhbGx5IHBhc3RlcyB3aXRoaW4gdGhlIHNh
bWUgZG9jdW1lbnQsIHRvIHZlcmlmeSB0aGF0IG5vIHBhc3RlIGNhbGxvdXQgaXMKKyAgICAgICAg
ZGlzcGxheWVkIGFuZCB0aGUgcGFzdGUgaXMgYWxsb3dlZC4KKworICAgICAgICAqIGVkaXRpbmcv
cGFzdGVib2FyZC9pb3MvZG9tLXBhc3RlLWNvbmZpcm1hdGlvbi1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogZWRpdGluZy9wYXN0ZWJvYXJkL2lvcy9kb20tcGFzdGUtY29uZmlybWF0aW9uLmh0bWw6
CisgICAgICAgICogZWRpdGluZy9wYXN0ZWJvYXJkL2lvcy9kb20tcGFzdGUtY29uc2VjdXRpdmUt
Y29uZmlybWF0aW9ucy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZWRpdGluZy9wYXN0ZWJvYXJk
L2lvcy9kb20tcGFzdGUtY29uc2VjdXRpdmUtY29uZmlybWF0aW9ucy5odG1sOgorICAgICAgICAq
IGVkaXRpbmcvcGFzdGVib2FyZC9pb3MvZG9tLXBhc3RlLXJlamVjdGlvbi1leHBlY3RlZC50eHQ6
CisgICAgICAgICogZWRpdGluZy9wYXN0ZWJvYXJkL2lvcy9kb20tcGFzdGUtcmVqZWN0aW9uLmh0
bWw6CisgICAgICAgICogZWRpdGluZy9wYXN0ZWJvYXJkL2lvcy9kb20tcGFzdGUtcmVxdWlyZXMt
dXNlci1nZXN0dXJlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9hcmQv
aW9zL2RvbS1wYXN0ZS1yZXF1aXJlcy11c2VyLWdlc3R1cmUuaHRtbDoKKyAgICAgICAgKiBlZGl0
aW5nL3Bhc3RlYm9hcmQvaW9zL2RvbS1wYXN0ZS1zYW1lLW9yaWdpbi1leHBlY3RlZC50eHQ6IENv
cGllZCBmcm9tIExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9pb3MvZG9tLXBhc3RlLWNv
bmZpcm1hdGlvbi1leHBlY3RlZC50eHQuCisgICAgICAgICogZWRpdGluZy9wYXN0ZWJvYXJkL2lv
cy9kb20tcGFzdGUtc2FtZS1vcmlnaW4uaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvZWRp
dGluZy9wYXN0ZWJvYXJkL2lvcy9kb20tcGFzdGUtY29uZmlybWF0aW9uLmh0bWwuCisKIDIwMTkt
MDItMjYgIEZyZWRlcmljIFdhbmcgIDxmd2FuZ0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFN5bmNo
cm9uaXplIE1hdGhNTCBXUFQgdGVzdHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcv
cGFzdGVib2FyZC9pb3MvZG9tLXBhc3RlLWNvbmZpcm1hdGlvbi1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvaW9zL2RvbS1wYXN0ZS1jb25maXJtYXRpb24tZXhw
ZWN0ZWQudHh0CmluZGV4IDFlNTIyODk4YmY2NzFjM2RkYjUwMDUyYTZhMGRjNzhlMGNjMmM5Njcu
LjM3Yzc4M2EyZTI4OTdiZTk1MjkxYjZhMDRkMGY2ZjlmYTY4ZmUxNGYgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9pb3MvZG9tLXBhc3RlLWNvbmZpcm1hdGlvbi1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2lvcy9kb20t
cGFzdGUtY29uZmlybWF0aW9uLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDYgQEAKIENsaWNrIGhl
cmUgdG8gY29weQogQ2xpY2sgaGVyZSB0byBjb3B5Ci1DbGljayBoZXJlIHRvIGNvcHkKKwogVmVy
aWZpZXMgdGhhdCBhIGNhbGxvdXQgaXMgc2hvd24gd2hlbiB0aGUgcGFnZSBwcm9ncmFtbWF0aWNh
bGx5IHRyaWdnZXJzIHBhc3RlLCBhbmQgdGhhdCB0YXBwaW5nIHRoZSBjYWxsb3V0IGFsbG93cyB0
aGUgcGFzdGUgdG8gaGFwcGVuLiBUbyBtYW51YWxseSB0ZXN0LCB0YXAgdGhlIHRleHQgb24gdGhl
IGJvdHRvbSwgdGFwIHRoZSBlZGl0YWJsZSBhcmVhIGFib3ZlLCBhbmQgdGhlbiBzZWxlY3QgJ1Bh
c3RlJyBpbiB0aGUgcmVzdWx0aW5nIGNhbGxvdXQgbWVudS4gVGhlIHRleHQgJ0NsaWNrIGhlcmUg
dG8gY29weScgc2hvdWxkIGJlIHBhc3RlZCB0d2ljZSBpbiB0aGUgZWRpdGFibGUgYXJlYS4KIAog
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9wYXN0ZWJvYXJkL2lvcy9kb20tcGFzdGUtY29uZmlybWF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0
cy9lZGl0aW5nL3Bhc3RlYm9hcmQvaW9zL2RvbS1wYXN0ZS1jb25maXJtYXRpb24uaHRtbAppbmRl
eCA3NGM1ODlhMWI5NzhiYzg2NmYyNmEyMTgxY2U1YzA5MmE5YzRmODY0Li4wMGMyMzNkNTM2ZTZk
MjE4ZmU4ZWM4YzdlYzk2MzljZTU0YmE4MDkwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0
aW5nL3Bhc3RlYm9hcmQvaW9zL2RvbS1wYXN0ZS1jb25maXJtYXRpb24uaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvaW9zL2RvbS1wYXN0ZS1jb25maXJtYXRpb24uaHRt
bApAQCAtMTAsMTIgKzEwLDcgQEAgYm9keSB7CiAgICAgbWFyZ2luOiAwOwogfQogCi0jY29weSwg
I2VkaXRvciB7Ci0gICAgdGV4dC1hbGlnbjogY2VudGVyOwotfQotCiAjY29weSB7Ci0gICAgZm9u
dC1zaXplOiA0MHB4OwogICAgIHdpZHRoOiAxMDAlOwogICAgIGhlaWdodDogNTBweDsKICAgICBi
b3JkZXI6IDFweCBkYXNoZWQgYmxhY2s7CkBAIC0yNSwyOCArMjAsMjkgQEAgYm9keSB7CiAgICAg
d2lkdGg6IDEwMCU7CiAgICAgaGVpZ2h0OiAxMDBweDsKICAgICBib3JkZXI6IDFweCBkYXNoZWQg
c2lsdmVyOworICAgIHRleHQtYWxpZ246IGNlbnRlcjsKIH0KIDwvc3R5bGU+CiA8L2hlYWQ+CiA8
Ym9keT4KIDxkaXYgaWQ9ImVkaXRvciIgY29udGVudGVkaXRhYmxlPjwvZGl2PgotPGRpdiBpZD0i
Y29weSI+Q2xpY2sgaGVyZSB0byBjb3B5PC9kaXY+Cis8aWZyYW1lIGlkPSJjb3B5IiBzcmM9ImRh
dGE6dGV4dC9odG1sLDxkaXYgaWQ9J2NvcHknIHN0eWxlPSdmb250LXNpemU6IDQwcHg7IHRleHQt
YWxpZ246IGNlbnRlcjsnPkNsaWNrIGhlcmUgdG8gY29weTwvZGl2PgorICAgIDxzY3JpcHQ+Cisg
ICAgY29weS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHsKKyAgICAgICAgZ2V0U2Vs
ZWN0aW9uKCkuc2VsZWN0QWxsQ2hpbGRyZW4oY29weSk7CisgICAgICAgIGRvY3VtZW50LmV4ZWND
b21tYW5kKCdDb3B5Jyk7CisgICAgICAgIGdldFNlbGVjdGlvbigpLnJlbW92ZUFsbFJhbmdlcygp
OworICAgIH0pOworICAgIDwvc2NyaXB0PiI+PC9pZnJhbWU+CiA8ZGl2IGlkPSJkZXNjcmlwdGlv
biI+PC9kaXY+CiA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KIDxzY3JpcHQ+CiBqc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKIAotY29uc3QgY29weSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb3B5
Iik7CiBjb25zdCBlZGl0b3IgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZWRpdG9yIik7CiAK
IGRlc2NyaXB0aW9uKCJWZXJpZmllcyB0aGF0IGEgY2FsbG91dCBpcyBzaG93biB3aGVuIHRoZSBw
YWdlIHByb2dyYW1tYXRpY2FsbHkgdHJpZ2dlcnMgcGFzdGUsIGFuZCB0aGF0IHRhcHBpbmcgdGhl
IGNhbGxvdXQgYWxsb3dzIHRoZSBwYXN0ZSB0byBoYXBwZW4uIFRvIG1hbnVhbGx5IHRlc3QsIHRh
cCB0aGUgdGV4dCBvbiB0aGUgYm90dG9tLCB0YXAgdGhlIGVkaXRhYmxlIGFyZWEgYWJvdmUsIGFu
ZCB0aGVuIHNlbGVjdCAnUGFzdGUnIGluIHRoZSByZXN1bHRpbmcgY2FsbG91dCBtZW51LiBUaGUg
dGV4dCAnQ2xpY2sgaGVyZSB0byBjb3B5JyBzaG91bGQgYmUgcGFzdGVkIDxzdHJvbmc+PGVtPnR3
aWNlPC9lbT48L3N0cm9uZz4gaW4gdGhlIGVkaXRhYmxlIGFyZWEuIik7CiAKLWNvcHkuYWRkRXZl
bnRMaXN0ZW5lcigiY2xpY2siLCAoKSA9PiB7Ci0gICAgZ2V0U2VsZWN0aW9uKCkuc2VsZWN0QWxs
Q2hpbGRyZW4oY29weSk7Ci0gICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoIkNvcHkiKTsKLSAgICBn
ZXRTZWxlY3Rpb24oKS5yZW1vdmVBbGxSYW5nZXMoKTsKLX0pOwotCiBlZGl0b3IuYWRkRXZlbnRM
aXN0ZW5lcigicGFzdGUiLCBldmVudCA9PiBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50LmNs
aXBib2FyZERhdGEuZ2V0RGF0YSgndGV4dC9wbGFpbicpIiwgIkNsaWNrIGhlcmUgdG8gY29weSIp
KTsKIGVkaXRvci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGV2ZW50ID0+IHsKICAgICBnZXRT
ZWxlY3Rpb24oKS5zZXRQb3NpdGlvbihlZGl0b3IpOwpAQCAtNjAsMTQgKzU2LDE0IEBAIGVkaXRv
ci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGV2ZW50ID0+IHsKICAgICBlZGl0b3IuYmx1cigp
OwogfSk7CiAKLShhc3luYyAoKSA9PiB7CithZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgYXN5bmMg
KCkgPT4gewogICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIpCiAgICAgICAgIHJldHVybjsKIAog
ICAgIGF3YWl0IFVJSGVscGVyLmFjdGl2YXRlQXQoMTYwLCAxMjUpOwogICAgIGF3YWl0IHRyaWdn
ZXJQYXN0ZU1lbnVBZnRlclRhcEF0KDE2MCwgNTApOwogICAgIGZpbmlzaEpTVGVzdCgpOwotfSko
KTsKK30pOwogPC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvaW9zL2RvbS1wYXN0ZS1jb25zZWN1dGl2ZS1jb25maXJt
YXRpb25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9pb3Mv
ZG9tLXBhc3RlLWNvbnNlY3V0aXZlLWNvbmZpcm1hdGlvbnMtZXhwZWN0ZWQudHh0CmluZGV4IGFk
MzYyNzNlYmM1MDQ2NGFkMmFmMTE0YmEzMjUwODg0NDNjOWZjMzkuLjA1NmI0ODA1YjAwNDQ0YTAw
Nzc4NGRjZjIxY2IwMzE2NjI0NWJlMWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcv
cGFzdGVib2FyZC9pb3MvZG9tLXBhc3RlLWNvbnNlY3V0aXZlLWNvbmZpcm1hdGlvbnMtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9pb3MvZG9tLXBhc3Rl
LWNvbnNlY3V0aXZlLWNvbmZpcm1hdGlvbnMtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAot
Q2xpY2sgaGVyZSB0byBjb3B5CisKIFZlcmlmaWVzIHRoYXQgbm8gY2FsbG91dCBpcyBzaG93biB3
aGVuIHRoZSBwYWdlIHByb2dyYW1tYXRpY2FsbHkgdHJpZ2dlcnMgcGFzdGUgb24gYSB0aW1lciBh
ZnRlciB1c2VyIGludGVyYWN0aW9uLiBUbyB0ZXN0IG1hbnVhbGx5LCBjbGljayB0aGUgdGV4dCBv
biB0aGUgYm90dG9tIHRvIGNvcHksIGFuZCB0aGVuIGNsaWNrIHRoZSBlZGl0YWJsZSBhcmVhIGFi
b3ZlIHRvIHRyaWdnZXIgdHdvIHByb2dyYW1tYXRpYyBwYXN0ZXMgd2l0aCB0aGUgY2FsbG91dCBi
YXIuIENoZWNrIHRoYXQgcGVybWlzc2lvbnMgZm9yIHRoZSBmaXJzdCBwcm9ncmFtbWF0aWMgcGFz
dGUgZG8gbm90IGFmZmVjdCB0aGUgc2Vjb25kIHByb2dyYW1tYXRpYyBwYXN0ZSwgc2luY2UgaXQg
aXMgcGVyZm9ybWVkIG9uIGEgemVyby1kZWxheSB0aW1lci4KIAogT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2lvcy9k
b20tcGFzdGUtY29uc2VjdXRpdmUtY29uZmlybWF0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvZWRp
dGluZy9wYXN0ZWJvYXJkL2lvcy9kb20tcGFzdGUtY29uc2VjdXRpdmUtY29uZmlybWF0aW9ucy5o
dG1sCmluZGV4IDc5NzFhNTg2ZjAzMmY2ZTkwOThkOTJiMzYxYzZhOTRmNWU4OTdmYTIuLjVjZWVi
YmQ0MzJkNzFhNWQzNzE4YzhkZTY3ZTMxMGEzMjQ2NGNiYTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2VkaXRpbmcvcGFzdGVib2FyZC9pb3MvZG9tLXBhc3RlLWNvbnNlY3V0aXZlLWNvbmZpcm1h
dGlvbnMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvaW9zL2RvbS1w
YXN0ZS1jb25zZWN1dGl2ZS1jb25maXJtYXRpb25zLmh0bWwKQEAgLTEwLDEyICsxMCw3IEBAIGJv
ZHkgewogICAgIG1hcmdpbjogMDsKIH0KIAotI2NvcHksICNlZGl0b3IgewotICAgIHRleHQtYWxp
Z246IGNlbnRlcjsKLX0KLQogI2NvcHkgewotICAgIGZvbnQtc2l6ZTogNDBweDsKICAgICB3aWR0
aDogMTAwJTsKICAgICBoZWlnaHQ6IDUwcHg7CiAgICAgYm9yZGVyOiAxcHggZGFzaGVkIGJsYWNr
OwpAQCAtMjUsMTggKzIwLDI1IEBAIGJvZHkgewogICAgIHdpZHRoOiAxMDAlOwogICAgIGhlaWdo
dDogMTAwcHg7CiAgICAgYm9yZGVyOiAxcHggZGFzaGVkIHNpbHZlcjsKKyAgICB0ZXh0LWFsaWdu
OiBjZW50ZXI7CiB9CiA8L3N0eWxlPgogPC9oZWFkPgogPGJvZHk+CiA8ZGl2IGlkPSJlZGl0b3Ii
IGNvbnRlbnRlZGl0YWJsZT48L2Rpdj4KLTxkaXYgaWQ9ImNvcHkiPkNsaWNrIGhlcmUgdG8gY29w
eTwvZGl2PgorPGlmcmFtZSBpZD0iY29weSIgc3JjPSJkYXRhOnRleHQvaHRtbCw8ZGl2IGlkPSdj
b3B5JyBzdHlsZT0nZm9udC1zaXplOiA0MHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7Jz5DbGljayBo
ZXJlIHRvIGNvcHk8L2Rpdj4KKyAgICA8c2NyaXB0PgorICAgIGNvcHkuYWRkRXZlbnRMaXN0ZW5l
cignY2xpY2snLCAoKSA9PiB7CisgICAgICAgIGdldFNlbGVjdGlvbigpLnNlbGVjdEFsbENoaWxk
cmVuKGNvcHkpOworICAgICAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgnQ29weScpOworICAgICAg
ICBnZXRTZWxlY3Rpb24oKS5yZW1vdmVBbGxSYW5nZXMoKTsKKyAgICB9KTsKKyAgICA8L3Njcmlw
dD4iPjwvaWZyYW1lPgogPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgogPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+CiA8c2NyaXB0PgoganNUZXN0SXNBc3luYyA9IHRydWU7CiAKLWNvbnN0IGNv
cHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29weSIpOwogY29uc3QgZWRpdG9yID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVkaXRvciIpOwogCiBkZXNjcmlwdGlvbigiVmVyaWZpZXMg
dGhhdCBubyBjYWxsb3V0IGlzIHNob3duIHdoZW4gdGhlIHBhZ2UgcHJvZ3JhbW1hdGljYWxseSB0
cmlnZ2VycyBwYXN0ZSBvbiBhIHRpbWVyIGFmdGVyIHVzZXIgaW50ZXJhY3Rpb24uIFRvIHRlc3Qg
bWFudWFsbHksIGNsaWNrIHRoZSB0ZXh0IG9uIHRoZSBib3R0b20gdG8gY29weSwgYW5kIHRoZW4g
Y2xpY2sgdGhlIGVkaXRhYmxlIGFyZWEgYWJvdmUgdG8gdHJpZ2dlciB0d28gcHJvZ3JhbW1hdGlj
IHBhc3RlcyB3aXRoIHRoZSBjYWxsb3V0IGJhci4gQ2hlY2sgdGhhdCBwZXJtaXNzaW9ucyBmb3Ig
dGhlIGZpcnN0IHByb2dyYW1tYXRpYyBwYXN0ZSBkbyBub3QgYWZmZWN0IHRoZSBzZWNvbmQgcHJv
Z3JhbW1hdGljIHBhc3RlLCBzaW5jZSBpdCBpcyBwZXJmb3JtZWQgb24gYSB6ZXJvLWRlbGF5IHRp
bWVyLiIpOwpAQCAtNjAsMTIgKzYyLDYgQEAgYXN5bmMgZnVuY3Rpb24gd2FpdEZvckFuZFRhcFBh
c3RlTWVudVR3aWNlKCkgewogICAgIH0pOwogfQogCi1jb3B5LmFkZEV2ZW50TGlzdGVuZXIoImNs
aWNrIiwgKCkgPT4gewotICAgIGdldFNlbGVjdGlvbigpLnNlbGVjdEFsbENoaWxkcmVuKGNvcHkp
OwotICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJDb3B5Iik7Ci0gICAgZ2V0U2VsZWN0aW9uKCku
cmVtb3ZlQWxsUmFuZ2VzKCk7Ci19KTsKLQogZnVuY3Rpb24gcGFzdGUoKSB7CiAgICAgZ2V0U2Vs
ZWN0aW9uKCkuc2V0UG9zaXRpb24oZWRpdG9yKTsKICAgICBzaG91bGRCZSgiZG9jdW1lbnQuZXhl
Y0NvbW1hbmQoJ1Bhc3RlJykiLCAidHJ1ZSIpOwpAQCAtODAsMTQgKzc2LDE0IEBAIGVkaXRvci5h
ZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGV2ZW50ID0+IHsKICAgICBzZXRUaW1lb3V0KHBhc3Rl
LCAwKTsKIH0pOwogCi0oYXN5bmMgKCkgPT4geworYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGFz
eW5jICgpID0+IHsKICAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyIHx8ICF3aW5kb3cuaW50ZXJu
YWxzKQogICAgICAgICByZXR1cm47CiAKICAgICB3YWl0Rm9yQW5kVGFwUGFzdGVNZW51VHdpY2Uo
KS50aGVuKGZpbmlzaEpTVGVzdCk7CiAgICAgYXdhaXQgVUlIZWxwZXIuYWN0aXZhdGVBdCgxNjAs
IDEyNSk7CiAgICAgYXdhaXQgVUlIZWxwZXIuYWN0aXZhdGVBdCgxNjAsIDUwKTsKLX0pKCk7Cit9
KTsKIDwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZWRpdGluZy9wYXN0ZWJvYXJkL2lvcy9kb20tcGFzdGUtcmVqZWN0aW9uLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9pb3MvZG9tLXBhc3RlLXJlamVjdGlvbi1l
eHBlY3RlZC50eHQKaW5kZXggYmNjYWQxNzMyYjUyYWEzODQwNjU3YWYzOGM3ZmY2OWM4MjMyMGZh
Mi4uYzNhZGFkNzE0YWE3ZGRiNGU1ZWJhMTk4MTNmZDA2MGQ0NTZhYTRmZiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2lvcy9kb20tcGFzdGUtcmVqZWN0aW9uLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvaW9zL2RvbS1w
YXN0ZS1yZWplY3Rpb24tZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAotQ2xpY2sgaGVyZSB0
byBjb3B5CisKIFZlcmlmaWVzIHRoYXQgYSBjYWxsb3V0IGlzIHNob3duIHdoZW4gdGhlIHBhZ2Ug
cHJvZ3JhbW1hdGljYWxseSB0cmlnZ2VycyBwYXN0ZSwgYW5kIHRoYXQgZGlzbWlzc2luZyB0aGUg
Y2FsbG91dCBwcmV2ZW50cyB0aGUgcGFzdGUgZnJvbSBoYXBwZW5pbmcuIFRvIG1hbnVhbGx5IHRl
c3QsIHRhcCB0aGUgdGV4dCBvbiB0aGUgYm90dG9tLCB0YXAgdGhlIGVkaXRhYmxlIGFyZWEgYWJv
dmUsIGFuZCB0aGVuIGRpc21pc3MgdGhlIHJlc3VsdGluZyBjYWxsb3V0IG1lbnUgYnkgc2Nyb2xs
aW5nIG9yIHRhcHBpbmcgZWxzZXdoZXJlLiBUaGUgdGV4dCAnQ2xpY2sgaGVyZSB0byBjb3B5JyBz
aG91bGQgbm90IGJlIHBhc3RlZCwgYW5kIHRoZSBjYWxsb3V0IGJhciBzaG91bGQgZGlzYXBwZWFy
LgogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9l
ZGl0aW5nL3Bhc3RlYm9hcmQvaW9zL2RvbS1wYXN0ZS1yZWplY3Rpb24uaHRtbCBiL0xheW91dFRl
c3RzL2VkaXRpbmcvcGFzdGVib2FyZC9pb3MvZG9tLXBhc3RlLXJlamVjdGlvbi5odG1sCmluZGV4
IDc1MTViYWE4MTdlNTdhODQxMmY2OTRjNmJiNzliYmVjMGRmZmNkOTcuLjczZDJmOGYwNDYyYjAx
NjcyMjMyMzY0ZTk1YWE0OGE5YzI0Mjk2M2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRp
bmcvcGFzdGVib2FyZC9pb3MvZG9tLXBhc3RlLXJlamVjdGlvbi5odG1sCisrKyBiL0xheW91dFRl
c3RzL2VkaXRpbmcvcGFzdGVib2FyZC9pb3MvZG9tLXBhc3RlLXJlamVjdGlvbi5odG1sCkBAIC0x
MCwxMiArMTAsNyBAQCBib2R5IHsKICAgICBtYXJnaW46IDA7CiB9CiAKLSNjb3B5LCAjZWRpdG9y
IHsKLSAgICB0ZXh0LWFsaWduOiBjZW50ZXI7Ci19Ci0KICNjb3B5IHsKLSAgICBmb250LXNpemU6
IDQwcHg7CiAgICAgd2lkdGg6IDEwMCU7CiAgICAgaGVpZ2h0OiA1MHB4OwogICAgIGJvcmRlcjog
MXB4IGRhc2hlZCBibGFjazsKQEAgLTI1LDI4ICsyMCwyOSBAQCBib2R5IHsKICAgICB3aWR0aDog
MTAwJTsKICAgICBoZWlnaHQ6IDEwMHB4OwogICAgIGJvcmRlcjogMXB4IGRhc2hlZCBzaWx2ZXI7
CisgICAgdGV4dC1hbGlnbjogY2VudGVyOwogfQogPC9zdHlsZT4KIDwvaGVhZD4KIDxib2R5Pgog
PGRpdiBpZD0iZWRpdG9yIiBjb250ZW50ZWRpdGFibGU+PC9kaXY+Ci08ZGl2IGlkPSJjb3B5Ij5D
bGljayBoZXJlIHRvIGNvcHk8L2Rpdj4KKzxpZnJhbWUgaWQ9ImNvcHkiIHNyYz0iZGF0YTp0ZXh0
L2h0bWwsPGRpdiBpZD0nY29weScgc3R5bGU9J2ZvbnQtc2l6ZTogNDBweDsgdGV4dC1hbGlnbjog
Y2VudGVyOyc+Q2xpY2sgaGVyZSB0byBjb3B5PC9kaXY+CisgICAgPHNjcmlwdD4KKyAgICBjb3B5
LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4geworICAgICAgICBnZXRTZWxlY3Rpb24o
KS5zZWxlY3RBbGxDaGlsZHJlbihjb3B5KTsKKyAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQo
J0NvcHknKTsKKyAgICAgICAgZ2V0U2VsZWN0aW9uKCkucmVtb3ZlQWxsUmFuZ2VzKCk7CisgICAg
fSk7CisgICAgPC9zY3JpcHQ+Ij48L2lmcmFtZT4KIDxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rp
dj4KIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgogPHNjcmlwdD4KIGpzVGVzdElzQXN5bmMgPSB0
cnVlOwogCi1jb25zdCBjb3B5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvcHkiKTsKIGNv
bnN0IGVkaXRvciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlZGl0b3IiKTsKIAogZGVzY3Jp
cHRpb24oIlZlcmlmaWVzIHRoYXQgYSBjYWxsb3V0IGlzIHNob3duIHdoZW4gdGhlIHBhZ2UgcHJv
Z3JhbW1hdGljYWxseSB0cmlnZ2VycyBwYXN0ZSwgYW5kIHRoYXQgZGlzbWlzc2luZyB0aGUgY2Fs
bG91dCBwcmV2ZW50cyB0aGUgcGFzdGUgZnJvbSBoYXBwZW5pbmcuIFRvIG1hbnVhbGx5IHRlc3Qs
IHRhcCB0aGUgdGV4dCBvbiB0aGUgYm90dG9tLCB0YXAgdGhlIGVkaXRhYmxlIGFyZWEgYWJvdmUs
IGFuZCB0aGVuIGRpc21pc3MgdGhlIHJlc3VsdGluZyBjYWxsb3V0IG1lbnUgYnkgc2Nyb2xsaW5n
IG9yIHRhcHBpbmcgZWxzZXdoZXJlLiBUaGUgdGV4dCAnQ2xpY2sgaGVyZSB0byBjb3B5JyBzaG91
bGQgPHN0cm9uZz5ub3Q8L3N0cm9uZz4gYmUgcGFzdGVkLCBhbmQgdGhlIGNhbGxvdXQgYmFyIHNo
b3VsZCBkaXNhcHBlYXIuIik7CiAKLWNvcHkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCAoKSA9
PiB7Ci0gICAgZ2V0U2VsZWN0aW9uKCkuc2VsZWN0QWxsQ2hpbGRyZW4oY29weSk7Ci0gICAgZG9j
dW1lbnQuZXhlY0NvbW1hbmQoIkNvcHkiKTsKLSAgICBnZXRTZWxlY3Rpb24oKS5yZW1vdmVBbGxS
YW5nZXMoKTsKLX0pOwotCiBlZGl0b3IuYWRkRXZlbnRMaXN0ZW5lcigicGFzdGUiLCBldmVudCA9
PiBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50LmNsaXBib2FyZERhdGEuZ2V0RGF0YSgndGV4
dC9wbGFpbicpIiwgIkNsaWNrIGhlcmUgdG8gY29weSIpKTsKIGVkaXRvci5hZGRFdmVudExpc3Rl
bmVyKCJjbGljayIsIGV2ZW50ID0+IHsKICAgICBnZXRTZWxlY3Rpb24oKS5zZXRQb3NpdGlvbihl
ZGl0b3IpOwpAQCAtNTksMTQgKzU1LDE0IEBAIGVkaXRvci5hZGRFdmVudExpc3RlbmVyKCJjbGlj
ayIsIGV2ZW50ID0+IHsKICAgICBlZGl0b3IuYmx1cigpOwogfSk7CiAKLShhc3luYyAoKSA9PiB7
CithZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgYXN5bmMgKCkgPT4gewogICAgIGlmICghd2luZG93
LnRlc3RSdW5uZXIpCiAgICAgICAgIHJldHVybjsKIAogICAgIGF3YWl0IFVJSGVscGVyLmFjdGl2
YXRlQXQoMTYwLCAxMjUpOwogICAgIGF3YWl0IHRyaWdnZXJQYXN0ZU1lbnVBZnRlclRhcEF0KDE2
MCwgNTAsIGZhbHNlKTsKICAgICBmaW5pc2hKU1Rlc3QoKTsKLX0pKCk7Cit9KTsKIDwvc2NyaXB0
PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0
ZWJvYXJkL2lvcy9kb20tcGFzdGUtcmVxdWlyZXMtdXNlci1nZXN0dXJlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9pb3MvZG9tLXBhc3RlLXJlcXVpcmVzLXVz
ZXItZ2VzdHVyZS1leHBlY3RlZC50eHQKaW5kZXggNjdhYWVjYTMyYWUyNWY4NjYyZDE0Yzk0MGRm
NjEzOWY3ZWViZWJlZC4uZjEwMGJhNmMzMGZkYTlhNGY2OGJhMzkxNTQwZTA1YTFiMjRhMTU4NSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2lvcy9kb20tcGFzdGUt
cmVxdWlyZXMtdXNlci1nZXN0dXJlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9lZGl0
aW5nL3Bhc3RlYm9hcmQvaW9zL2RvbS1wYXN0ZS1yZXF1aXJlcy11c2VyLWdlc3R1cmUtZXhwZWN0
ZWQudHh0CkBAIC0xLDUgKzEsNSBAQAogQ2xpY2sgaGVyZSB0byBjb3B5Ci1DbGljayBoZXJlIHRv
IGNvcHkKKwogVmVyaWZpZXMgdGhhdCBubyBjYWxsb3V0IGlzIHNob3duIHdoZW4gdGhlIHBhZ2Ug
cHJvZ3JhbW1hdGljYWxseSB0cmlnZ2VycyBwYXN0ZSBvdXRzaWRlIHRoZSBzY29wZSBvZiB1c2Vy
IGludGVyYWN0aW9uLiBUaGlzIHRlc3QgcmVxdWlyZXMgV2ViS2l0VGVzdFJ1bm5lci4KIAogT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9w
YXN0ZWJvYXJkL2lvcy9kb20tcGFzdGUtcmVxdWlyZXMtdXNlci1nZXN0dXJlLmh0bWwgYi9MYXlv
dXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvaW9zL2RvbS1wYXN0ZS1yZXF1aXJlcy11c2VyLWdl
c3R1cmUuaHRtbAppbmRleCA1MjIzZjYzZTc1ZmE3YThmNjVlNDQ5OTE5MWJlZGI1NmQ5ZGVjOGEy
Li5iZGY0ODliZjRhZjg4N2ExZDA5Y2NiOThjMTNhZGFjOTBkNDE4YWYzIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvaW9zL2RvbS1wYXN0ZS1yZXF1aXJlcy11c2Vy
LWdlc3R1cmUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvaW9zL2Rv
bS1wYXN0ZS1yZXF1aXJlcy11c2VyLWdlc3R1cmUuaHRtbApAQCAtMTAsMTIgKzEwLDcgQEAgYm9k
eSB7CiAgICAgbWFyZ2luOiAwOwogfQogCi0jY29weSwgI2VkaXRvciB7Ci0gICAgdGV4dC1hbGln
bjogY2VudGVyOwotfQotCiAjY29weSB7Ci0gICAgZm9udC1zaXplOiA0MHB4OwogICAgIHdpZHRo
OiAxMDAlOwogICAgIGhlaWdodDogNTBweDsKICAgICBib3JkZXI6IDFweCBkYXNoZWQgYmxhY2s7
CkBAIC0yNSwzNiArMjAsMzkgQEAgYm9keSB7CiAgICAgd2lkdGg6IDEwMCU7CiAgICAgaGVpZ2h0
OiAxMDBweDsKICAgICBib3JkZXI6IDFweCBkYXNoZWQgc2lsdmVyOworICAgIHRleHQtYWxpZ246
IGNlbnRlcjsKIH0KIDwvc3R5bGU+CiA8L2hlYWQ+CiA8Ym9keT4KIDxkaXYgaWQ9ImVkaXRvciIg
Y29udGVudGVkaXRhYmxlPjwvZGl2PgotPGRpdiBpZD0iY29weSI+Q2xpY2sgaGVyZSB0byBjb3B5
PC9kaXY+Cis8aWZyYW1lIGlkPSJjb3B5IiBzcmM9ImRhdGE6dGV4dC9odG1sLDxkaXYgaWQ9J2Nv
cHknIHN0eWxlPSdmb250LXNpemU6IDQwcHg7IHRleHQtYWxpZ246IGNlbnRlcjsnPkNsaWNrIGhl
cmUgdG8gY29weTwvZGl2PgorICAgIDxzY3JpcHQ+CisgICAgY29weS5hZGRFdmVudExpc3RlbmVy
KCdjbGljaycsICgpID0+IHsKKyAgICAgICAgZ2V0U2VsZWN0aW9uKCkuc2VsZWN0QWxsQ2hpbGRy
ZW4oY29weSk7CisgICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCdDb3B5Jyk7CisgICAgICAg
IGdldFNlbGVjdGlvbigpLnJlbW92ZUFsbFJhbmdlcygpOworICAgIH0pOworICAgIDwvc2NyaXB0
PiI+PC9pZnJhbWU+CiA8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+CiA8ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KIDxzY3JpcHQ+CiBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAotY29uc3QgY29w
eSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb3B5Iik7CiBjb25zdCBlZGl0b3IgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiZWRpdG9yIik7CiAKIGRlc2NyaXB0aW9uKCJWZXJpZmllcyB0
aGF0IG5vIGNhbGxvdXQgaXMgc2hvd24gd2hlbiB0aGUgcGFnZSBwcm9ncmFtbWF0aWNhbGx5IHRy
aWdnZXJzIHBhc3RlIG91dHNpZGUgdGhlIHNjb3BlIG9mIHVzZXIgaW50ZXJhY3Rpb24uIFRoaXMg
dGVzdCByZXF1aXJlcyBXZWJLaXRUZXN0UnVubmVyLiIpOwogCi1jb3B5LmFkZEV2ZW50TGlzdGVu
ZXIoImNsaWNrIiwgKCkgPT4gewotICAgIGdldFNlbGVjdGlvbigpLnNlbGVjdEFsbENoaWxkcmVu
KGNvcHkpOwotICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJDb3B5Iik7Ci0gICAgZ2V0U2VsZWN0
aW9uKCkucmVtb3ZlQWxsUmFuZ2VzKCk7Ci19KTsKLQotVUlIZWxwZXIuYWN0aXZhdGVBdCgxNjAs
IDEyNSkudGhlbigoKSA9PiB7Ci0gICAgZWRpdG9yLmZvY3VzKCk7Ci0gICAgd2FpdEZvclBhc3Rl
TWVudSgpLnRoZW4oZmluaXNoSlNUZXN0KTsKK2FkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBhc3lu
YyAoKSA9PiB7CisgICAgVUlIZWxwZXIuYWN0aXZhdGVBdCgxNjAsIDEyNSkudGhlbigoKSA9PiB7
CisgICAgICAgIGVkaXRvci5mb2N1cygpOworICAgICAgICB3YWl0Rm9yUGFzdGVNZW51KCkudGhl
bihmaW5pc2hKU1Rlc3QpOwogCi0gICAgVUlIZWxwZXIuZW5zdXJlUHJlc2VudGF0aW9uVXBkYXRl
KCkudGhlbigoKSA9PiB7Ci0gICAgICAgIGludGVybmFscy53aXRoVXNlckdlc3R1cmUoKCkgPT4g
c2hvdWxkQmUoImRvY3VtZW50LmV4ZWNDb21tYW5kKCdQYXN0ZScpIiwgInRydWUiKSk7Ci0gICAg
ICAgIHNob3VsZEJlKCJkb2N1bWVudC5leGVjQ29tbWFuZCgnUGFzdGUnKSIsICJmYWxzZSIpOwot
ICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImVkaXRvci50ZXh0Q29udGVudCIsICJDbGlj
ayBoZXJlIHRvIGNvcHkiKTsKKyAgICAgICAgVUlIZWxwZXIuZW5zdXJlUHJlc2VudGF0aW9uVXBk
YXRlKCkudGhlbigoKSA9PiB7CisgICAgICAgICAgICBpbnRlcm5hbHMud2l0aFVzZXJHZXN0dXJl
KCgpID0+IHNob3VsZEJlKCJkb2N1bWVudC5leGVjQ29tbWFuZCgnUGFzdGUnKSIsICJ0cnVlIikp
OworICAgICAgICAgICAgc2hvdWxkQmUoImRvY3VtZW50LmV4ZWNDb21tYW5kKCdQYXN0ZScpIiwg
ImZhbHNlIik7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImVkaXRvci50ZXh0
Q29udGVudCIsICJDbGljayBoZXJlIHRvIGNvcHkiKTsKKyAgICAgICAgfSk7CiAgICAgfSk7CiB9
KTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJk
L2lvcy9kb20tcGFzdGUtc2FtZS1vcmlnaW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRp
dGluZy9wYXN0ZWJvYXJkL2lvcy9kb20tcGFzdGUtc2FtZS1vcmlnaW4tZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjZhYWIxN2IzZWRhNTc2NTQ2ODc3YWM1YjczNGI4NzRmMjk3NDdkYzcKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvaW9zL2RvbS1wYXN0
ZS1zYW1lLW9yaWdpbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxOCBAQAorQ2xpY2sgaGVyZSB0
byBjb3B5CitDbGljayBoZXJlIHRvIGNvcHkKK0NsaWNrIGhlcmUgdG8gY29weQorVmVyaWZpZXMg
dGhhdCBwcm9ncmFtbWF0aWMgcGFzdGUgaXMgYWxsb3dlZCB3aGVuIGNvcGllZCBkYXRhIGlzIGZy
b20gdGhlIHNhbWUgb3JpZ2luLiBUbyBtYW51YWxseSB0ZXN0LCB0YXAgdGhlIHRleHQgb24gdGhl
IGJvdHRvbSB0byBwcm9ncmFtbWF0aWNhbGx5IGNvcHksIGFuZCB0aGVuIHRhcCB0aGUgZWRpdGFi
bGUgYXJlYSBhbmQgY2hlY2sgdGhhdCB0aGUgdGV4dCBpcyBwYXN0ZWQgdHdpY2UuCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworUEFTUyBkb2N1bWVudC5xdWVyeUNvbW1hbmRTdXBwb3J0
ZWQoJ1Bhc3RlJykgaXMgdHJ1ZQorUEFTUyBkb2N1bWVudC5xdWVyeUNvbW1hbmRFbmFibGVkKCdQ
YXN0ZScpIGlzIHRydWUKK1BBU1MgZXZlbnQuY2xpcGJvYXJkRGF0YS5nZXREYXRhKCd0ZXh0L3Bs
YWluJykgaXMgIkNsaWNrIGhlcmUgdG8gY29weSIKK1BBU1MgZG9jdW1lbnQuZXhlY0NvbW1hbmQo
J1Bhc3RlJykgaXMgdHJ1ZQorUEFTUyBldmVudC5jbGlwYm9hcmREYXRhLmdldERhdGEoJ3RleHQv
cGxhaW4nKSBpcyAiQ2xpY2sgaGVyZSB0byBjb3B5IgorUEFTUyBkb2N1bWVudC5leGVjQ29tbWFu
ZCgnUGFzdGUnKSBpcyB0cnVlCitQQVNTIGVkaXRvci50ZXh0Q29udGVudCBpcyAiQ2xpY2sgaGVy
ZSB0byBjb3B5Q2xpY2sgaGVyZSB0byBjb3B5IgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcv
cGFzdGVib2FyZC9pb3MvZG9tLXBhc3RlLXNhbWUtb3JpZ2luLmh0bWwgYi9MYXlvdXRUZXN0cy9l
ZGl0aW5nL3Bhc3RlYm9hcmQvaW9zL2RvbS1wYXN0ZS1zYW1lLW9yaWdpbi5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmU5NmEyMzkzMjAzNjRkN2IyNTAxNGJkYzg5MmY2N2U4MmI1OTcxZWYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvaW9zL2RvbS1wYXN0ZS1zYW1l
LW9yaWdpbi5odG1sCkBAIC0wLDAgKzEsNzEgQEAKKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtp
dC10ZXN0LXJ1bm5lciBbIGRvbVBhc3RlQWxsb3dlZD1mYWxzZSB1c2VGbGV4aWJsZVZpZXdwb3J0
PXRydWUgXSAtLT4KKzxodG1sPgorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRo
PWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KK2JvZHkgewor
ICAgIG1hcmdpbjogMDsKK30KKworI2NvcHksICNlZGl0b3IgeworICAgIHdpZHRoOiAxMDAlOwor
ICAgIHRleHQtYWxpZ246IGNlbnRlcjsKK30KKworI2NvcHkgeworICAgIGhlaWdodDogNTBweDsK
KyAgICBib3JkZXI6IDFweCBkYXNoZWQgYmxhY2s7CisgICAgZm9udC1zaXplOiA0MHB4OworfQor
CisjZWRpdG9yIHsKKyAgICBoZWlnaHQ6IDEwMHB4OworICAgIGJvcmRlcjogMXB4IGRhc2hlZCBz
aWx2ZXI7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJlZGl0b3IiIGNv
bnRlbnRlZGl0YWJsZT48L2Rpdj4KKzxkaXYgaWQ9J2NvcHknIHN0eWxlPScnPkNsaWNrIGhlcmUg
dG8gY29weTwvZGl2PgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+Cis8c2NyaXB0PgoranNUZXN0SXNBc3luYyA9IHRydWU7CisKK2NvbnN0IGNv
cHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29weSIpOworY29uc3QgZWRpdG9yID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVkaXRvciIpOworCitkZXNjcmlwdGlvbigiVmVyaWZpZXMg
dGhhdCBwcm9ncmFtbWF0aWMgcGFzdGUgaXMgYWxsb3dlZCB3aGVuIGNvcGllZCBkYXRhIGlzIGZy
b20gdGhlIHNhbWUgb3JpZ2luLiBUbyBtYW51YWxseSB0ZXN0LCB0YXAgdGhlIHRleHQgb24gdGhl
IGJvdHRvbSB0byBwcm9ncmFtbWF0aWNhbGx5IGNvcHksIGFuZCB0aGVuIHRhcCB0aGUgZWRpdGFi
bGUgYXJlYSBhbmQgY2hlY2sgdGhhdCB0aGUgdGV4dCBpcyBwYXN0ZWQgPGVtPnR3aWNlPC9lbT4u
Iik7CisKK2NvcHkuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7CisgICAgZ2V0U2Vs
ZWN0aW9uKCkuc2VsZWN0QWxsQ2hpbGRyZW4oY29weSk7CisgICAgZG9jdW1lbnQuZXhlY0NvbW1h
bmQoJ0NvcHknKTsKKyAgICBnZXRTZWxlY3Rpb24oKS5yZW1vdmVBbGxSYW5nZXMoKTsKK30pOwor
CitlZGl0b3IuYWRkRXZlbnRMaXN0ZW5lcigicGFzdGUiLCBldmVudCA9PiBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoImV2ZW50LmNsaXBib2FyZERhdGEuZ2V0RGF0YSgndGV4dC9wbGFpbicpIiwgIkNs
aWNrIGhlcmUgdG8gY29weSIpKTsKK2VkaXRvci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGV2
ZW50ID0+IHsKKyAgICBnZXRTZWxlY3Rpb24oKS5zZXRQb3NpdGlvbihlZGl0b3IpOworICAgIHNo
b3VsZEJlKCJkb2N1bWVudC5xdWVyeUNvbW1hbmRTdXBwb3J0ZWQoJ1Bhc3RlJykiLCAidHJ1ZSIp
OworICAgIHNob3VsZEJlKCJkb2N1bWVudC5xdWVyeUNvbW1hbmRFbmFibGVkKCdQYXN0ZScpIiwg
InRydWUiKTsKKyAgICBzaG91bGRCZSgiZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ1Bhc3RlJykiLCAi
dHJ1ZSIpOworICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCdJbnNlcnRQYXJhZ3JhcGgnKTsKKyAg
ICBzaG91bGRCZSgiZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ1Bhc3RlJykiLCAidHJ1ZSIpOworICAg
IHNob3VsZEJlRXF1YWxUb1N0cmluZygiZWRpdG9yLnRleHRDb250ZW50IiwgIkNsaWNrIGhlcmUg
dG8gY29weUNsaWNrIGhlcmUgdG8gY29weSIpOworICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7
CisgICAgZWRpdG9yLmJsdXIoKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30pOworCithZGRFdmVu
dExpc3RlbmVyKCJsb2FkIiwgYXN5bmMgKCkgPT4geworICAgIGlmICghd2luZG93LnRlc3RSdW5u
ZXIpCisgICAgICAgIHJldHVybjsKKworICAgIGF3YWl0IFVJSGVscGVyLmFjdGl2YXRlQXQoMTYw
LCAxMjUpOworICAgIGF3YWl0IFVJSGVscGVyLmFjdGl2YXRlQXQoMTYwLCA1MCk7Cit9KTsKKzwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363387</attachid>
            <date>2019-03-01 16:07:16 -0800</date>
            <delta_ts>2019-03-01 18:39:42 -0800</delta_ts>
            <desc>Patch for EWS</desc>
            <filename>bug-195053-20190301160715.patch</filename>
            <type>text/plain</type>
            <size>68536</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyMjc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGY2ZTc0NmRkYTI0MDMy
NWU5OTY5ZDBhYjJjM2EwNThiMTU2MzM4NS4uM2E5MDliODJjZjQ2YjUxMDg1ODBhMzg5YjUyYzc2
MjU1MDk2NWMwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE5LTAyLTI2ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIFByb2dy
YW1tYXRpYyBwYXN0ZSBhY2Nlc3Mgc2hvdWxkIGJlIGdyYW50ZWQgd2hlbiBjb3B5aW5nIGFuZCBw
YXN0aW5nIHdpdGhpbiB0aGUgc2FtZSBvcmlnaW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTA1MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDgx
MzQ3MTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgorCisgICAgICAgIFBs
dW1iIHRoZSBkb2N1bWVudCBwYXN0ZWJvYXJkIGlkZW50aWZpZXIgdGhyb3VnaCB0aGUgY2xpZW50
IHdoZW4gbWFraW5nIGEgRE9NIHBhc3RlIGFjY2VzcyByZXF1ZXN0LiBTZWUgV2ViS2l0CisgICAg
ICAgIENoYW5nZUxvZyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAgIFRlc3Q6IGVkaXRpbmcv
cGFzdGVib2FyZC9pb3MvZG9tLXBhc3RlLXNhbWUtb3JpZ2luLmh0bWwKKworICAgICAgICAqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vRE9NUGFzdGVB
Y2Nlc3MuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2RvbS9ET01QYXN0ZUFjY2Vzc1Bv
bGljeS5oLgorCisgICAgICAgIEludHJvZHVjZSBET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlLCB3aGlj
aCBpcyBlaXRoZXIgRGVuaWVkRm9yR2VzdHVyZSwgR3JhbnRlZEZvckNvbW1hbmQsIG9yIEdyYW50
ZWRGb3JHZXN0dXJlLiBJbgorICAgICAgICBwYXJ0aWN1bGFyLCB3aGVuIHBhc3RlYm9hcmQgaWRl
bnRpZmllcnMgbWF0Y2gsIHdlIG9ubHkgZ3JhbnQgYWNjZXNzIGZvciB0aGUgY3VycmVudCBwYXN0
ZSBjb21tYW5kLCByYXRoZXIgdGhhbgorICAgICAgICB0aHJvdWdob3V0IHRoZSB1c2VyIGdlc3R1
cmUuCisKKyAgICAgICAgKiBkb20vVXNlckdlc3R1cmVJbmRpY2F0b3IuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlVzZXJHZXN0dXJlVG9rZW46OmRpZFJlcXVlc3RET01QYXN0ZUFjY2Vzcyk6CisgICAg
ICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHA6CisgICAgICAgICogcGFnZS9FZGl0b3JDbGll
bnQuaDoKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
OjpyZXF1ZXN0RE9NUGFzdGVBY2Nlc3MpOgorCiAyMDE5LTAzLTAxICBaYWxhbiBCdWp0YXMgIDx6
YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0NvbnRlbnRDaGFuZ2VPYnNlcnZlcl0gUmVuYW1l
IG1lbWJlcnMgYW5kIG1vdmUgaW1wbGVtZW50YXRpb24gdG8gaGVhZGVyLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA4
MThjNjEwMzc3YjRmNzE2MTYwYmNmY2QxMzc3Y2I0ZWJhOTk3MjM5Li4zNWNkNWU1ZDVjM2FiNTk2
MGNkZTM5ODEyZjZmNDRjOWRkNWIzOTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDE5
LTAyLTI2ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAg
IFtpT1NdIFByb2dyYW1tYXRpYyBwYXN0ZSBhY2Nlc3Mgc2hvdWxkIGJlIGdyYW50ZWQgd2hlbiBj
b3B5aW5nIGFuZCBwYXN0aW5nIHdpdGhpbiB0aGUgc2FtZSBvcmlnaW4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTA1MworICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNDgxMzQ3MTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgor
CisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBhdXRvbWF0aWNhbGx5IGdyYW50aW5nIHByb2dyYW1t
YXRpYyBwYXN0ZWJvYXJkIGFjY2VzcyB3aGVuIHRoZSBwYXN0ZWJvYXJkIGlkZW50aWZpZXIgb2Yg
dGhlCisgICAgICAgIGRvY3VtZW50IHJlcXVlc3RpbmcgcHJvZ3JhbW1hdGljIHBhc3RlIG1hdGNo
ZXMgdGhlIGlkZW50aWZpZXIgaW4gdGhlIGN1c3RvbSBwYXN0ZWJvYXJkIGRhdGEgYmxvYiBpbiB0
aGUKKyAgICAgICAgVUlQYXN0ZWJvYXJkLiBUbyBkbyB0aGlzLCB3ZSBzZW5kIHRoZSBwYXN0ZWJv
YXJkIGlkZW50aWZpZXIgb2YgdGhlIGRvY3VtZW50IHJlcXVlc3RpbmcgdGhlIERPTSBwYXN0ZSB0
byB0aGUgVUkKKyAgICAgICAgcHJvY2VzcywgYW5kIGNoZWNrIHRoaXMgYWdhaW5zdCB0aGUgcGFz
dGVib2FyZCBpZGVudGlmaWVycyBmb3IgZWFjaCBpdGVtIG9uIHRoZSBwbGF0Zm9ybSBwYXN0ZWJv
YXJkLiBJZiBhbGwKKyAgICAgICAgaXRlbXMgaW4gdGhlIHBsYXRmb3JtIHBhc3RlYm9hcmQgbWF0
Y2ggdGhlIGdpdmVuIHBhc3RlYm9hcmQgaWRlbnRpZmllciAoc2luY2Ugd2UgZG9uJ3Qgc3VwcG9y
dCB3cml0aW5nIG11bHRpcGxlCisgICAgICAgIHBhc3RlYm9hcmQgaXRlbXMgdmlhIGJpbmRpbmdz
LCB0aGlzIHNob3VsZCBvbmx5IGJlIGEgc2luZ2xlIGl0ZW0pLCB3ZSBza2lwIHNob3dpbmcgdGhl
IHBhc3RlIGNhbGxvdXQgYW5kCisgICAgICAgIGltbWVkaWF0ZWx5IGludm9rZSB0aGUgcHJvZ3Jh
bW1hdGljIHBhc3RlIGhhbmRsZXIuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNzYWdl
cy5weToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0RE9NUGFzdGVBY2Nlc3MpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpQ
YWdlQ2xpZW50SW1wbDo6cmVxdWVzdERPTVBhc3RlQWNjZXNzKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9QYWdlQ2xp
ZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVzdERPTVBhc3RlQWNjZXNzKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5tZXNzYWdlcy5pbjoKKworICAgICAgICBBZGQgcGx1bWJpbmcgdG8gZGVsaXZlciB0aGUgcGFz
dGVib2FyZCBpZGVudGlmaWVyIHRvIHRoZSBjbGllbnQgd2hlbiByZXF1ZXN0aW5nIERPTSBwYXN0
ZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tOgorICAgICAgICAoV2ViS2l0
OjpQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdERPTVBhc3RlQWNjZXNzKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRW
aWV3IGNsZWFudXBJbnRlcmFjdGlvbl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHJlc2ln
bkZpcnN0UmVzcG9uZGVyRm9yV2ViVmlld10pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF93
ZWJUb3VjaEV2ZW50c1JlY29nbml6ZWQ6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX3dp
bGxIaWRlTWVudTpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBwYXN0ZUZvcldlYlZpZXc6
XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2hhbmRsZURPTVBhc3RlUmVxdWVzdFdpdGhS
ZXN1bHQ6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX3dpbGxQZXJmb3JtQWN0aW9uOnNl
bmRlcjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfZGlkUGVyZm9ybUFjdGlvbjpzZW5k
ZXI6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgaGFuZGxlS2V5V2ViRXZlbnQ6d2l0aENv
bXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAoYWxsUGFzdGVib2FyZEl0ZW1PcmlnaW5zTWF0
Y2hPcmlnaW4pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9yZXF1ZXN0RE9NUGFzdGVBY2Nl
c3NXaXRoRWxlbWVudFJlY3Q6b3JpZ2luSWRlbnRpZmllcjpjb21wbGV0aW9uSGFuZGxlcjpdKToK
KyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfcmVxdWVzdERPTVBhc3RlQWNjZXNzV2l0aEVsZW1l
bnRSZWN0OmNvbXBsZXRpb25IYW5kbGVyOl0pOiBEZWxldGVkLgorCisgICAgICAgIEJhaWwgZWFy
bHkgaW4gdGhlIGNhc2Ugd2hlcmUgYWxsIGl0ZW1zJyBwYXN0ZWJvYXJkIGlkZW50aWZpZXJzIChy
ZWFkIHZpYSBjdXN0b20gcGFzdGVib2FyZCBkYXRhKSBtYXRjaC4gV2hlbgorICAgICAgICB0aGlz
IGhhcHBlbnMsIHdlIG9ubHkgZ3JhbnQgYWNjZXNzIGZvciB0aGUgY3VycmVudCBwYXN0ZSBjb21t
YW5kLCByYXRoZXIgdGhhbiBncmFudGluZyBhY2Nlc3MgZm9yIHRoZSB1c2VyCisgICAgICAgIGdl
c3R1cmUgdG9rZW4uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFj
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL3dpbi9QYWdlQ2xpZW50SW1wbC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0RE9NUGFzdGVBY2Nlc3MpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy93aW4vUGFnZUNsaWVudEltcGwuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YkVkaXRvckNsaWVudDo6cmVxdWVzdERPTVBhc3RlQWNjZXNzKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cmVxdWVz
dERPTVBhc3RlQWNjZXNzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
OgorCiAyMDE5LTAzLTAxICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNv
bT4KIAogICAgICAgICBbVGhyZWFkZWRDb21wb3NpdG9yXSBTaW1wbHkgdGhlIGNvbXBvc2l0aW5n
IHJ1biBsb29wIHdvcmtlciB0aHJlYWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCAy
ZDU0YmFiNzc5NzMyYThkYzhiODYxZGYwNjhhN2YzNDZjODg3OGEzLi45ODFhMzYzNDRkNzc3YjJi
YWU5YzU4NmM0M2UwNWE5MmI1NzI1MjgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTMgQEAKKzIwMTktMDItMjYgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBh
cHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gUHJvZ3JhbW1hdGljIHBhc3RlIGFjY2VzcyBzaG91
bGQgYmUgZ3JhbnRlZCB3aGVuIGNvcHlpbmcgYW5kIHBhc3Rpbmcgd2l0aGluIHRoZSBzYW1lIG9y
aWdpbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1
MDUzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80ODEzNDcxMD4KKworICAgICAgICBSZXZpZXdl
ZCBieSBSeW9zdWtlIE5pd2EuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JD
bGllbnQuaDoKKwogMjAxOS0wMy0wMSAgSnVzdGluIEZhbiAgPGp1c3Rpbl9mYW5AYXBwbGUuY29t
PgogCiAgICAgICAgIFtXZWIgR1BVXSAzMi1iaXQgYnVpbGRzIGJyb2tlbiBieSBhdHRlbXB0IHRv
IGRpc2FibGUgV2ViR1BVIG9uIDMyLWJpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCmluZGV4
IGQ0YTc4MWNiM2I2YTYwYWZiNjU4MjhiZTc3NmJkNmJkZTczZmEwOGIuLmI5Y2MzYWY4ODllMmY3
ZTJmMTkxOTNjNjQwYmNiODI4ZDdkNjBlZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxMyBAQAorMjAxOS0wMi0yNiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVo
QGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBQcm9ncmFtbWF0aWMgcGFzdGUgYWNjZXNzIHNo
b3VsZCBiZSBncmFudGVkIHdoZW4gY29weWluZyBhbmQgcGFzdGluZyB3aXRoaW4gdGhlIHNhbWUg
b3JpZ2luCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTUwNTMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ4MTM0NzEwPgorCisgICAgICAgIFJldmll
d2VkIGJ5IFJ5b3N1a2UgTml3YS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRv
ckNsaWVudC5oOgorCiAyMDE5LTAyLTI3ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBw
bGUuY29tPgogCiAgICAgICAgIFJvbGwgb3V0IHIyNDIwMTQ7IGl0IGNhdXNlZCBjcmFzaGVzIGlu
IGNvbXBvc2l0aW5nIGxvZ2dpbmcgKHdlYmtpdC5vcmcvYi8xOTUxNDEpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMjQ0MTk1OTc3
OWJjMDcwZmE0ZTM0NDFlMzhjYzVmYjUxNzM5ZGIzNi4uNGMwM2NmMDgzYmJkY2M0Y2FlY2FhZmMz
M2QyYTBjNGQ0NmQxOWExZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDk1MCw3ICs0OTUwLDcgQEAKIAkJRjQ4RDJBN0UyMTU3
MTgyNjAwQzY3NTJCIC8qIEZvbnRBdHRyaWJ1dGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDhEMkE3MTIxNTZEQzBBMDBDNjc1MkIgLyogRm9udEF0
dHJpYnV0ZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlGNDhEMkFBNTIxNTk3NDBEMDBDNjc1MkIgLyogQ29sb3JDb2NvYS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ4RDJBQTMyMTU5NzQwRDAwQzY3
NTJCIC8qIENvbG9yQ29jb2EuaCAqLzsgfTsKIAkJRjQ5Nzg2ODgxRkY0NUZBNTAwRTA2MEFCIC8q
IFBhc3RlYm9hcmRJdGVtSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjQ5Nzg2ODcxRkY0NUZBNTAwRTA2MEFCIC8qIFBhc3RlYm9hcmRJdGVtSW5m
by5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUY0
QjQyMkM0MjIwQzA1NjgwMDlFMUU3RCAvKiBET01QYXN0ZUFjY2Vzc1BvbGljeS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRCNDIyQzIyMjBDMDAwMDAw
OUUxRTdEIC8qIERPTVBhc3RlQWNjZXNzUG9saWN5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRjRCNDIyQzQyMjBDMDU2ODAwOUUxRTdEIC8qIERP
TVBhc3RlQWNjZXNzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNEI0MjJDMjIyMEMwMDAwMDA5RTFFN0QgLyogRE9NUGFzdGVBY2Nlc3MuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGNEJGQjk4NTFFMURE
RjlCMDA4NjJDMjQgLyogRHVtcEVkaXRpbmdIaXN0b3J5LmpzIGluIENvcHkgU2NyaXB0cyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDgzODk4MzFFMURERjJCMDA3NkI3RUEg
LyogRHVtcEVkaXRpbmdIaXN0b3J5LmpzICovOyB9OwogCQlGNEJGQjk4NjFFMURERjlCMDA4NjJD
MjQgLyogRWRpdGluZ0hpc3RvcnlVdGlsLmpzIGluIENvcHkgU2NyaXB0cyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDgzODk4NDFFMURERjJCMDA3NkI3RUEgLyogRWRpdGlu
Z0hpc3RvcnlVdGlsLmpzICovOyB9OwogCQlGNEQ0M0Q2NjIxODgwMzhCMDBFQ0VDQUMgLyogU2Vy
aWFsaXplZEF0dGFjaG1lbnREYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNEQ0M0Q2NDIxODgwMkU2MDBFQ0VDQUMgLyogU2VyaWFsaXplZEF0dGFj
aG1lbnREYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKQEAgLTE1MTgzLDcgKzE1MTgzLDcgQEAKIAkJRjQ4RDJBQTQyMTU5NzQwRDAwQzY3NTJCIC8q
IENvbG9yQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDb2xvckNvY29hLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDk3ODY4NzFGRjQ1RkE1MDBFMDYwQUIgLyogUGFz
dGVib2FyZEl0ZW1JbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhc3RlYm9hcmRJdGVtSW5mby5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDlFOThFNDIxREVFNkMxMDA5QUU1NUUgLyog
RWRpdEFjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFZGl0QWN0aW9uLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRjRCNDIyQzIyMjBDMDAwMDAwOUUxRTdEIC8qIERPTVBh
c3RlQWNjZXNzUG9saWN5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVBhc3RlQWNjZXNzUG9saWN5Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0QjQyMkMyMjIwQzAwMDAwMDlFMUU3RCAv
KiBET01QYXN0ZUFjY2Vzcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01QYXN0ZUFjY2Vzcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEQ0M0Q2NDIxODgwMkU2MDBFQ0VDQUMgLyogU2Vy
aWFsaXplZEF0dGFjaG1lbnREYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlcmlhbGl6ZWRBdHRhY2ht
ZW50RGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEQ5ODE3RDIxOTVGQkY2
MDA4MjMwRkMgLyogQ2hhbmdlTGlzdFR5cGVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENoYW5n
ZUxpc3RUeXBlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEQ5ODE3
RTIxOTVGQkY2MDA4MjMwRkMgLyogQ2hhbmdlTGlzdFR5cGVDb21tYW5kLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IENoYW5nZUxpc3RUeXBlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0yNzUwMyw3ICsyNzUwMyw3IEBACiAJCQkJQTgxODVGMzYwOTc2NTc2NTAwNTgy
NkQ5IC8qIERPTUltcGxlbWVudGF0aW9uLmNwcCAqLywKIAkJCQlBODE4NUYzMzA5NzY1NzY1MDA1
ODI2RDkgLyogRE9NSW1wbGVtZW50YXRpb24uaCAqLywKIAkJCQk5M0VFQzFFOTA5QzI4Nzc3MDBD
NTE1RDEgLyogRE9NSW1wbGVtZW50YXRpb24uaWRsICovLAotCQkJCUY0QjQyMkMyMjIwQzAwMDAw
MDlFMUU3RCAvKiBET01QYXN0ZUFjY2Vzc1BvbGljeS5oICovLAorCQkJCUY0QjQyMkMyMjIwQzAw
MDAwMDlFMUU3RCAvKiBET01QYXN0ZUFjY2Vzcy5oICovLAogCQkJCTBGNDk2Njk5MURCNDA4QzEw
MEEyNzRCQiAvKiBET01Qb2ludC5oICovLAogCQkJCTBGNDk2NjlBMURCNDA4QzEwMEEyNzRCQiAv
KiBET01Qb2ludC5pZGwgKi8sCiAJCQkJMEY0OTY2QTIxREI0MDkxMDAwQTI3NEJCIC8qIERPTVBv
aW50SW5pdC5oICovLApAQCAtMjkwNzksNyArMjkwNzksNyBAQAogCQkJCUE5QzZFNEU0MEQ3NDVF
MDUwMDY0NDJFOSAvKiBET01NaW1lVHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTlDNkU0RTgw
RDc0NUUxODAwNjQ0MkU5IC8qIERPTU1pbWVUeXBlQXJyYXkuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTFBQ0U1M0U4MEE4RDE4RTcwMDIyOTQ3RCAvKiBET01QYXJzZXIuaCBpbiBIZWFkZXJzICovLAot
CQkJCUY0QjQyMkM0MjIwQzA1NjgwMDlFMUU3RCAvKiBET01QYXN0ZUFjY2Vzc1BvbGljeS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJRjRCNDIyQzQyMjBDMDU2ODAwOUUxRTdEIC8qIERPTVBhc3RlQWNj
ZXNzLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QTU0ODgxNzE0RTQzMkExMDA2QUUwNUEgLyogRE9N
UGF0Y2hTdXBwb3J0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBOUM2RTRFQzBENzQ1RTJCMDA2NDQy
RTkgLyogRE9NUGx1Z2luLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOUM2RTRGMDBENzQ1RTM4MDA2
NDQyRTkgLyogRE9NUGx1Z2luQXJyYXkuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0RPTVBhc3RlQWNjZXNzLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9N
UGFzdGVBY2Nlc3MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YmZjMTY3YjI0ZTM1ZjA3YjQwYmNiZjc3M2I4MzMy
Yjc3NGM5YTBkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTVBhc3Rl
QWNjZXNzLmgKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNs
YXNzIERPTVBhc3RlQWNjZXNzUG9saWN5IDogdWludDhfdCB7CisgICAgTm90UmVxdWVzdGVkWWV0
LAorICAgIERlbmllZCwKKyAgICBHcmFudGVkCit9OworCitlbnVtIGNsYXNzIERPTVBhc3RlQWNj
ZXNzUmVzcG9uc2UgOiB1aW50OF90IHsKKyAgICBEZW5pZWRGb3JHZXN0dXJlLAorICAgIEdyYW50
ZWRGb3JDb21tYW5kLAorICAgIEdyYW50ZWRGb3JHZXN0dXJlCit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJh
aXRzPFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2U+IHsKKyAgICB1c2luZyB2YWx1ZXMg
PSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlLAor
ICAgICAgICBXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlOjpEZW5pZWRGb3JHZXN0dXJl
LAorICAgICAgICBXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlOjpHcmFudGVkRm9yQ29t
bWFuZCwKKyAgICAgICAgV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZTo6R3JhbnRlZEZv
ckdlc3R1cmUKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRE9NUGFzdGVBY2Nlc3NQb2xpY3kuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9ET01QYXN0ZUFjY2Vzc1BvbGljeS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA4MDAxOGI5MjFjYTI3ZGQ3NmMyY2E5MjkzY2IwMDQzMmJiNTgyNDYzLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01Q
YXN0ZUFjY2Vzc1BvbGljeS5oCisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
Ci0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNwcmFnbWEgb25jZQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWVudW0gY2xhc3Mg
RE9NUGFzdGVBY2Nlc3NQb2xpY3kgOiB1aW50OF90IHsKLSAgICBOb3RSZXF1ZXN0ZWRZZXQsCi0g
ICAgRGVuaWVkLAotICAgIEdyYW50ZWQKLX07Ci0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Vc2VyR2VzdHVyZUluZGljYXRvci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1VzZXJH
ZXN0dXJlSW5kaWNhdG9yLmgKaW5kZXggZGRjYmRkNjQ5MDA2Njg3NWRlNThkZDQwMDZiNTc1MzRj
NjNlMzA4OS4uMTVlYmVkZjQzNjVjN2FiOTc3OTE5NDU2MjMyZjQyOGQzN2M5NDFjNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1VzZXJHZXN0dXJlSW5kaWNhdG9yLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL1VzZXJHZXN0dXJlSW5kaWNhdG9yLmgKQEAgLTI1LDcgKzI1LDcgQEAK
IAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJET01QYXN0ZUFjY2Vzc1BvbGljeS5oIgorI2lu
Y2x1ZGUgIkRPTVBhc3RlQWNjZXNzLmgiCiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAjaW5j
bHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CkBAIC02
NSw3ICs2NSwxOSBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgRE9NUGFzdGVBY2Nlc3NQb2xpY3kg
ZG9tUGFzdGVBY2Nlc3NQb2xpY3koKSBjb25zdCB7IHJldHVybiBtX2RvbVBhc3RlQWNjZXNzUG9s
aWN5OyB9Ci0gICAgdm9pZCBkaWRSZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoYm9vbCBncmFudGVkKSB7
IG1fZG9tUGFzdGVBY2Nlc3NQb2xpY3kgPSBncmFudGVkID8gRE9NUGFzdGVBY2Nlc3NQb2xpY3k6
OkdyYW50ZWQgOiBET01QYXN0ZUFjY2Vzc1BvbGljeTo6RGVuaWVkOyB9CisgICAgdm9pZCBkaWRS
ZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoRE9NUGFzdGVBY2Nlc3NSZXNwb25zZSByZXNwb25zZSkKKyAg
ICB7CisgICAgICAgIHN3aXRjaCAocmVzcG9uc2UpIHsKKyAgICAgICAgY2FzZSBET01QYXN0ZUFj
Y2Vzc1Jlc3BvbnNlOjpEZW5pZWRGb3JHZXN0dXJlOgorICAgICAgICAgICAgbV9kb21QYXN0ZUFj
Y2Vzc1BvbGljeSA9IERPTVBhc3RlQWNjZXNzUG9saWN5OjpEZW5pZWQ7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSBET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlOjpHcmFudGVkRm9yQ29t
bWFuZDoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIERPTVBhc3RlQWNjZXNzUmVz
cG9uc2U6OkdyYW50ZWRGb3JHZXN0dXJlOgorICAgICAgICAgICAgbV9kb21QYXN0ZUFjY2Vzc1Bv
bGljeSA9IERPTVBhc3RlQWNjZXNzUG9saWN5OjpHcmFudGVkOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIH0KKyAgICB9CiAgICAgdm9pZCByZXNldERPTVBhc3RlQWNjZXNzKCkgeyBtX2Rv
bVBhc3RlQWNjZXNzUG9saWN5ID0gRE9NUGFzdGVBY2Nlc3NQb2xpY3k6Ok5vdFJlcXVlc3RlZFll
dDsgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5
Q2xpZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAppbmRl
eCBhNDNhMWJiMzZiZjhiZThmNDIzNTFmZGZhNzA5OGY1Y2FjZmJmNDlhLi4zZWI2NzZlYWEzZDA0
MGUyMjI2MmUwNWJhMzVmMWJiMjFjZmY3ZjkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRW1wdHlDbGllbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlD
bGllbnRzLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkNvbG9yQ2hvb3Nlci5oIgog
I2luY2x1ZGUgIkNvbnRleHRNZW51Q2xpZW50LmgiCiAjaW5jbHVkZSAiQ29va2llSmFyLmgiCisj
aW5jbHVkZSAiRE9NUGFzdGVBY2Nlc3MuaCIKICNpbmNsdWRlICJEYXRhTGlzdFN1Z2dlc3Rpb25Q
aWNrZXIuaCIKICNpbmNsdWRlICJEYXRhYmFzZVByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiRGlhZ25v
c3RpY0xvZ2dpbmdDbGllbnQuaCIKQEAgLTE4OSw3ICsxOTAsNyBAQCBwcml2YXRlOgogICAgIHZv
aWQgcmVnaXN0ZXJSZWRvU3RlcChVbmRvU3RlcCYpIGZpbmFsOwogICAgIHZvaWQgY2xlYXJVbmRv
UmVkb09wZXJhdGlvbnMoKSBmaW5hbCB7IH0KIAotICAgIGJvb2wgcmVxdWVzdERPTVBhc3RlQWNj
ZXNzKCkgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBET01QYXN0ZUFjY2Vzc1Jlc3BvbnNl
IHJlcXVlc3RET01QYXN0ZUFjY2Vzcyhjb25zdCBTdHJpbmcmKSBmaW5hbCB7IHJldHVybiBET01Q
YXN0ZUFjY2Vzc1Jlc3BvbnNlOjpEZW5pZWRGb3JHZXN0dXJlOyB9CiAKICAgICBib29sIGNhbkNv
cHlDdXQoRnJhbWUqLCBib29sIGRlZmF1bHRWYWx1ZSkgY29uc3QgZmluYWwgeyByZXR1cm4gZGVm
YXVsdFZhbHVlOyB9CiAgICAgYm9vbCBjYW5QYXN0ZShGcmFtZSosIGJvb2wgZGVmYXVsdFZhbHVl
KSBjb25zdCBmaW5hbCB7IHJldHVybiBkZWZhdWx0VmFsdWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0VkaXRv
ckNsaWVudC5oCmluZGV4IGJjNjU4NGI1OTMzYmM1NmJmMGMwYzdhMzRlYjA1OGFhY2VmODgwMzcu
LjFkMWM4ZDA0MmI3YzM1ZmVlNWQxZGY1MDEwMDNhMTE5NmU3Y2FmYjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9FZGl0b3JDbGllbnQuaApAQCAtMzYsNiArMzYsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKK2VudW0gY2xhc3MgRE9NUGFzdGVBY2Nlc3NSZXNwb25zZSA6IHVpbnQ4X3Q7CisKIGNsYXNz
IERvY3VtZW50RnJhZ21lbnQ7CiBjbGFzcyBFbGVtZW50OwogY2xhc3MgRnJhbWU7CkBAIC05Nyw3
ICs5OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENhbmRpZGF0ZXNGb3JT
ZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBo
YW5kbGVBY2NlcHRlZENhbmRpZGF0ZVdpdGhTb2Z0U3BhY2VzKFRleHRDaGVja2luZ1Jlc3VsdCkg
eyB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgcmVxdWVzdERPTVBhc3RlQWNjZXNzKCkgPSAwOworICAg
IHZpcnR1YWwgRE9NUGFzdGVBY2Nlc3NSZXNwb25zZSByZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoY29u
c3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyKSA9IDA7CiAKICAgICAvLyBOb3RpZnkgYW4gaW5w
dXQgbWV0aG9kIHRoYXQgYSBjb21wb3NpdGlvbiB3YXMgdm9sdW50YXJpbHkgZGlzY2FyZGVkIGJ5
IFdlYkNvcmUsIHNvIHRoYXQgaXQgY291bGQgY2xlYW4gdXAgdG9vLgogICAgIC8vIFRoaXMgZnVu
Y3Rpb24gaXMgbm90IGNhbGxlZCB3aGVuIGEgY29tcG9zaXRpb24gaXMgY2xvc2VkIHBlciBhIHJl
cXVlc3QgZnJvbSBhbiBpbnB1dCBtZXRob2QuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCmluZGV4IDY3ODQz
ODA1MzJlMGRmMDc4Y2RhZDg4YzI5ZTkwODVkYTJhZTNkYWEuLjRmZTJiYzk2ZjVhYWQyOWE4NjEz
MmU5OTBkNzg3ZDdjNmE1MzA0OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCkBAIC02ODEsOSArNjgx
LDE1IEBAIGJvb2wgRnJhbWU6OnJlcXVlc3RET01QYXN0ZUFjY2VzcygpCiAgICAgICAgIGlmICgh
Y2xpZW50KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgICAgIGJvb2wgZ3JhbnRl
ZCA9IGNsaWVudC0+cmVxdWVzdERPTVBhc3RlQWNjZXNzKCk7Ci0gICAgICAgIGdlc3R1cmVUb2tl
bi0+ZGlkUmVxdWVzdERPTVBhc3RlQWNjZXNzKGdyYW50ZWQpOwotICAgICAgICByZXR1cm4gZ3Jh
bnRlZDsKKyAgICAgICAgYXV0byByZXNwb25zZSA9IGNsaWVudC0+cmVxdWVzdERPTVBhc3RlQWNj
ZXNzKG1fZG9jLT5vcmlnaW5JZGVudGlmaWVyRm9yUGFzdGVib2FyZCgpKTsKKyAgICAgICAgZ2Vz
dHVyZVRva2VuLT5kaWRSZXF1ZXN0RE9NUGFzdGVBY2Nlc3MocmVzcG9uc2UpOworICAgICAgICBz
d2l0Y2ggKHJlc3BvbnNlKSB7CisgICAgICAgIGNhc2UgRE9NUGFzdGVBY2Nlc3NSZXNwb25zZTo6
R3JhbnRlZEZvckNvbW1hbmQ6CisgICAgICAgIGNhc2UgRE9NUGFzdGVBY2Nlc3NSZXNwb25zZTo6
R3JhbnRlZEZvckdlc3R1cmU6CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgY2Fz
ZSBET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlOjpEZW5pZWRGb3JHZXN0dXJlOgorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICB9CiAgICAgfQogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2Ny
aXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggNmY2MTQxM2RkMjVkZTY2NjFjZjkyOTdmOWZm
ZDRlZTZmMjkyNGNhMi4uYjkzYWQyNGY5NDUxNjNiOGZjYWQ3NTIyZDdlMGE5YjdhMDE2YjNiOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC0zOTgsNiArMzk4
LDcgQEAgZGVmIGhlYWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAgICAgICdTdHJpbmcnOiBbJzx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4nXSwKICAgICAgICAgJ1BBTDo6U2Vzc2lvbklEJzogWyc8cGFs
L1Nlc3Npb25JRC5oPiddLAogICAgICAgICAnV2ViQ29yZTo6QXV0b3BsYXlFdmVudEZsYWdzJzog
Wyc8V2ViQ29yZS9BdXRvcGxheUV2ZW50Lmg+J10sCisgICAgICAgICdXZWJDb3JlOjpET01QYXN0
ZUFjY2Vzc1Jlc3BvbnNlJzogWyc8V2ViQ29yZS9ET01QYXN0ZUFjY2Vzcy5oPiddLAogICAgICAg
ICAnV2ViQ29yZTo6RHJhZ0hhbmRsaW5nTWV0aG9kJzogWyc8V2ViQ29yZS9EcmFnQWN0aW9ucy5o
PiddLAogICAgICAgICAnV2ViQ29yZTo6RXhjZXB0aW9uRGV0YWlscyc6IFsnPFdlYkNvcmUvSlNE
T01FeGNlcHRpb25IYW5kbGluZy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6RmlsZUNob29zZXJT
ZXR0aW5ncyc6IFsnPFdlYkNvcmUvRmlsZUNob29zZXIuaD4nXSwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5jcHAKaW5kZXggNzIxZWMxZTNk
MDQ5OGFkMjY4OGI5MTBjOThiZmE1Yzk5ZTFiZThiNS4uYjNkNjJkY2RhODZkMWNmZmFkMGJhY2I5
OTQzZWVhZDQ1NTkzMzk4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2d0ay9QYWdlQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2d0ay9QYWdlQ2xpZW50SW1wbC5jcHAKQEAgLTQ0LDYgKzQ0LDcgQEAKICNpbmNsdWRlICJXZWJQ
cm9jZXNzUG9vbC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ2Fpcm9VdGlsaXRpZXMuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0N1cnNvci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRE9NUGFzdGVBY2Nlc3Mu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0V2ZW50TmFtZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0d0
a1V0aWxpdGllcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KQEAgLTUy
NCw5ICs1MjUsOSBAQCBib29sIFBhZ2VDbGllbnRJbXBsOjpkZWNpZGVQb2xpY3lGb3JJbnN0YWxs
TWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0KAogfQogI2VuZGlmCiAKLXZvaWQg
UGFnZUNsaWVudEltcGw6OnJlcXVlc3RET01QYXN0ZUFjY2Vzcyhjb25zdCBJbnRSZWN0JiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgUGFn
ZUNsaWVudEltcGw6OnJlcXVlc3RET01QYXN0ZUFjY2Vzcyhjb25zdCBJbnRSZWN0JiwgY29uc3Qg
U3RyaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jl
c3BvbnNlKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBjb21wbGV0aW9uSGFuZGxlcihm
YWxzZSk7CisgICAgY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNw
b25zZTo6RGVuaWVkRm9yR2VzdHVyZSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5oCmluZGV4
IGI5MGFjNWFjNzBkM2Q5M2M0MjNjMTQ1NDQxNDg3MDgzZmFhMTNlZjYuLmQyMGRmYjdlYTNjMGFl
YjI5OGU2NWY3NjhjMGUxN2UzMjIwNDViZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmgKQEAgLTM2LDYgKzM2LDEwIEBACiAjaW5jbHVk
ZSA8Z3RrL2d0ay5oPgogI2luY2x1ZGUgPG1lbW9yeT4KIAorbmFtZXNwYWNlIFdlYkNvcmUgewor
ZW51bSBjbGFzcyBET01QYXN0ZUFjY2Vzc1BvbGljeSA6IHVpbnQ4X3Q7Cit9CisKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCiBjbGFzcyBEcmF3aW5nQXJlYVByb3h5OwpAQCAtMTUwLDcgKzE1NCw3IEBA
IHByaXZhdGU6CiAKICAgICB2b2lkIGRpZEZpbmlzaFByb2Nlc3NpbmdBbGxQZW5kaW5nTW91c2VF
dmVudHMoKSBmaW5hbCB7IH0KIAotICAgIHZvaWQgcmVxdWVzdERPTVBhc3RlQWNjZXNzKGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBmaW5h
bDsKKyAgICB2b2lkIHJlcXVlc3RET01QYXN0ZUFjY2Vzcyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0
JiwgY29uc3QgU3RyaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpET01QYXN0
ZUFjY2Vzc1Jlc3BvbnNlKT4mJikgZmluYWw7CiAKICNpZiBFTkFCTEUoVklERU8pICYmIFVTRShH
U1RSRUFNRVIpCiAgICAgYm9vbCBkZWNpZGVQb2xpY3lGb3JJbnN0YWxsTWlzc2luZ01lZGlhUGx1
Z2luc1Blcm1pc3Npb25SZXF1ZXN0KEluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zUGVybWlzc2lv
blJlcXVlc3QmKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS93cGUvUGFnZUNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L3dwZS9QYWdlQ2xpZW50SW1wbC5jcHAKaW5kZXggMmMxYzZlZTQ2OTQ1NWNhMmE3OWVlZThkMTZl
ZjRmMzg4ZGVlMzdlOS4uZmNhOGJmNTRhZWFlYzcwNjIzZDFmZTc5NzkyMTExNjgzMjI0MWFmZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1w
bC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1w
bC5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJXZWJDb250ZXh0TWVudVByb3h5Lmgi
CiAjaW5jbHVkZSAiV2ViQ29udGV4dE1lbnVQcm94eVdQRS5oIgogI2luY2x1ZGUgPFdlYkNvcmUv
QWN0aXZpdHlTdGF0ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRE9NUGFzdGVBY2Nlc3MuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpA
QCAtMzk5LDkgKzQwMCw5IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OmJlZ2FuRXhpdEZ1bGxTY3Jl
ZW4oY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgLyogaW5pdGlhbEZyYW1lCiAKICNlbmRpZiAvLyBF
TkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OnJlcXVlc3RET01Q
YXN0ZUFjY2Vzcyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnJlcXVl
c3RET01QYXN0ZUFjY2Vzcyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKIHsKLSAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7CisgICAgY29tcGxldGlvbkhh
bmRsZXIoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZTo6RGVuaWVkRm9yR2VzdHVyZSk7
CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5oCmluZGV4IDVhYWUwZjJiMWE0NDExOGI1YThkYzRk
MzAyYzgxZjY0MGI0ZTRlZjEuLmYxOGIwNTY1NzZmMzcyNTc1NjY2OTY1NWY2YjYxYzA2MDkyOWQ1
MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVu
dEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJ
bXBsLmgKQEAgLTM0LDYgKzM0LDEwIEBAIG5hbWVzcGFjZSBXS1dQRSB7CiBjbGFzcyBWaWV3Owog
fQogCituYW1lc3BhY2UgV2ViQ29yZSB7CitlbnVtIGNsYXNzIERPTVBhc3RlQWNjZXNzUmVzcG9u
c2UgOiB1aW50OF90OworfQorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgU2Nyb2xsR2Vz
dHVyZUNvbnRyb2xsZXI7CkBAIC0xNDYsNyArMTUwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRp
ZEZpbmlzaFByb2Nlc3NpbmdBbGxQZW5kaW5nTW91c2VFdmVudHMoKSBmaW5hbCB7IH0KIAogICAg
IElQQzo6QXR0YWNobWVudCBob3N0RmlsZURlc2NyaXB0b3IoKSBmaW5hbDsKLSAgICB2b2lkIHJl
cXVlc3RET01QYXN0ZUFjY2Vzcyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChib29sKT4mJikgZmluYWw7CisgICAgdm9pZCByZXF1ZXN0RE9NUGFzdGVBY2Nl
c3MoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29y
ZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSk+JiYpIGZpbmFsOwogCiAgICAgV2ViQ29yZTo6VXNl
ckludGVyZmFjZUxheW91dERpcmVjdGlvbiB1c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uKCkg
b3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGll
bnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAppbmRleCBjZDdhYzA1
YmE3YmJlNDgwZTJhNTU2OWNmNzdlYWMzYmZmMjQ5ZWM0Li5jZGQ3ZDY2NTExNDhhYWQ4ZWMwN2Nk
MzEyMDkxZTExMTg3M2ZhMDYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Q
YWdlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCkBA
IC04Niw2ICs4Niw3IEBAIGVudW0gY2xhc3MgUm91dGVTaGFyaW5nUG9saWN5IDogdWludDhfdDsK
IGVudW0gY2xhc3MgU2Nyb2xsYmFyU3R5bGUgOiB1aW50OF90OwogZW51bSBjbGFzcyBUZXh0SW5k
aWNhdG9yV2luZG93TGlmZXRpbWUgOiB1aW50OF90OwogZW51bSBjbGFzcyBUZXh0SW5kaWNhdG9y
V2luZG93RGlzbWlzc2FsQW5pbWF0aW9uIDogdWludDhfdDsKK2VudW0gY2xhc3MgRE9NUGFzdGVB
Y2Nlc3NSZXNwb25zZSA6IHVpbnQ4X3Q7CiAKIHN0cnVjdCBEaWN0aW9uYXJ5UG9wdXBJbmZvOwog
c3RydWN0IEhpZ2hsaWdodDsKQEAgLTk1LDEzICs5NiwxMSBAQCBzdHJ1Y3QgU2hhcmVEYXRhV2l0
aFBhcnNlZFVSTDsKIAogdGVtcGxhdGUgPHR5cGVuYW1lPiBjbGFzcyBSZWN0RWRnZXM7CiB1c2lu
ZyBGbG9hdEJveEV4dGVudCA9IFJlY3RFZGdlczxmbG9hdD47Ci19CiAKICNpZiBFTkFCTEUoRFJB
R19TVVBQT1JUKQotbmFtZXNwYWNlIFdlYkNvcmUgewogc3RydWN0IERyYWdJdGVtOwotfQogI2Vu
ZGlmCit9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC00NjUsNyArNDY0LDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VEcmFnQ2FyZXRSZWN0KGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmIHByZXZpb3VzQ2FyZXRSZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBjYXJl
dFJlY3QpID0gMDsKICNlbmRpZgogCi0gICAgdmlydHVhbCB2b2lkIHJlcXVlc3RET01QYXN0ZUFj
Y2Vzcyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBlbGVtZW50UmVjdCwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0RE9NUGFzdGVB
Y2Nlc3MoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgZWxlbWVudFJlY3QsIGNvbnN0IFN0cmluZyYg
b3JpZ2luSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpET01QYXN0
ZUFjY2Vzc1Jlc3BvbnNlKT4mJikgPSAwOwogCiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVO
VCkKICAgICB2aXJ0dWFsIHZvaWQgZGlkSW5zZXJ0QXR0YWNobWVudChBUEk6OkF0dGFjaG1lbnQm
LCBjb25zdCBTdHJpbmcmIHNvdXJjZSkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcAppbmRleCA4NzBjMTdlMWM0ODhiNmFhYjVjNThmNDIwMDA1YTkzMmU4YjlhMWZl
Li5kNGM4MjI0NzY1NjNlZTkxMWI3MzllOTdhNWIyYThmYWQ3ODFkODM5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTEzMSw2ICsxMzEsNyBAQAogI2luY2x1
ZGUgIldlYnNpdGVEYXRhU3RvcmUuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0FkQ2xpY2tBdHRyaWJ1
dGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQml0bWFwSW1hZ2UuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL0RPTVBhc3RlQWNjZXNzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EZXByZWNhdGVkR2xvYmFs
U2V0dGluZ3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9EaWFnbm9zdGljTG9nZ2luZ0tleXMuaD4KQEAgLTU1MDUsOSAr
NTUwNiw5IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZXROZWVkc1BsYWluVGV4dFF1aXJrKGJvb2wg
bmVlZHNQbGFpblRleHRRdWlyaykKICAgICBtX25lZWRzUGxhaW5UZXh0UXVpcmsgPSBuZWVkc1Bs
YWluVGV4dFF1aXJrOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdERPTVBhc3RlQWNj
ZXNzKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGVsZW1lbnRSZWN0LCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJQYWdlUHJveHk6OnJl
cXVlc3RET01QYXN0ZUFjY2Vzcyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBlbGVtZW50UmVjdCwg
Y29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdl
YkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2UpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewot
ICAgIG1fcGFnZUNsaWVudC0+cmVxdWVzdERPTVBhc3RlQWNjZXNzKGVsZW1lbnRSZWN0LCBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgbV9wYWdlQ2xpZW50LT5yZXF1ZXN0RE9NUGFz
dGVBY2Nlc3MoZWxlbWVudFJlY3QsIG9yaWdpbklkZW50aWZpZXIsIFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpKTsKIH0KIAogLy8gQmFja0ZvcndhcmRMaXN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCmluZGV4IDJhNTM5ZjU1NGQ2MTFkZGM3ZTI2OTJkZWVlYzU3M2FiYjUx
ZTI4NTYuLmY5ZWQ2ZWU1ZjYwNjc4MGUxYzEwNDcyZjFjZjg1Y2YxZDY2MTkzZmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xODIsNiArMTgyLDcgQEAgY2xhc3Mg
VmFsaWRhdGlvbkJ1YmJsZTsKIGVudW0gU2VsZWN0aW9uRGlyZWN0aW9uIDogdWludDhfdDsKIAog
ZW51bSBjbGFzcyBBdXRvcGxheUV2ZW50IDogdWludDhfdDsKK2VudW0gY2xhc3MgRE9NUGFzdGVB
Y2Nlc3NSZXNwb25zZSA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIExvY2tCYWNrRm9yd2FyZExpc3Qg
OiBib29sOwogZW51bSBjbGFzcyBIYXNJbnNlY3VyZUNvbnRlbnQgOiBib29sOwogZW51bSBjbGFz
cyBOb3RpZmljYXRpb25EaXJlY3Rpb24gOiB1aW50OF90OwpAQCAtMTY2OSw3ICsxNjcwLDcgQEAg
cHJpdmF0ZToKICAgICB2b2lkIHNldE5lZWRzSGlkZGVuQ29udGVudEVkaXRhYmxlUXVpcmsoYm9v
bCk7CiAgICAgdm9pZCBzZXROZWVkc1BsYWluVGV4dFF1aXJrKGJvb2wpOwogCi0gICAgdm9pZCBy
ZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoYm9vbCk+JiYpOworICAgIHZvaWQgcmVxdWVzdERPTVBhc3RlQWNjZXNzKGNv
bnN0IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBTdHJpbmcmLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2UpPiYmKTsKIAogICAgIC8vIEJhY2sv
Rm9yd2FyZCBsaXN0IG1hbmFnZW1lbnQKICAgICB2b2lkIGJhY2tGb3J3YXJkQWRkSXRlbShCYWNr
Rm9yd2FyZExpc3RJdGVtU3RhdGUmJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggYzEwYTc1YzA1OWQ3ZjA5MWY1MDRiNGZjOTVj
MWE0MzcyY2EwNTA1Yy4uZTg2NGQ0YTk2ZmI2N2Y5YTUzZjFkNjA5YzY5Zjc3NjUyMTM4NGEwMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2Vz
LmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5p
bgpAQCAtMjUxLDcgKzI1MSw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgU2V0
SGFzSGFkU2VsZWN0aW9uQ2hhbmdlc0Zyb21Vc2VySW50ZXJhY3Rpb24oYm9vbCBoYXNIYWRVc2Vy
U2VsZWN0aW9uQ2hhbmdlcykKICAgICBTZXROZWVkc0hpZGRlbkNvbnRlbnRFZGl0YWJsZVF1aXJr
KGJvb2wgbmVlZHNIaWRkZW5Db250ZW50RWRpdGFibGVRdWlyaykKICAgICBTZXROZWVkc1BsYWlu
VGV4dFF1aXJrKGJvb2wgbmVlZHNQbGFpblRleHRRdWlyaykKLSAgICBSZXF1ZXN0RE9NUGFzdGVB
Y2Nlc3MoV2ViQ29yZTo6SW50UmVjdCBlbGVtZW50UmVjdCkgLT4gKGJvb2wgZ3JhbnRlZCkgRGVs
YXllZAorICAgIFJlcXVlc3RET01QYXN0ZUFjY2VzcyhXZWJDb3JlOjpJbnRSZWN0IGVsZW1lbnRS
ZWN0LCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllcikgLT4gKGVudW06dWludDhfdCBXZWJDb3JlOjpE
T01QYXN0ZUFjY2Vzc1Jlc3BvbnNlIHJlc3BvbnNlKSBEZWxheWVkCiAKICAgICAjIEZpbmQgbWVz
c2FnZXMKICAgICBEaWRDb3VudFN0cmluZ01hdGNoZXMoU3RyaW5nIHN0cmluZywgdWludDMyX3Qg
bWF0Y2hDb3VudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdl
Q2xpZW50SW1wbElPUy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJ
bXBsSU9TLmgKaW5kZXggZDBkMDM4NDdkMGUyZTNiNTdjNzUzMzgyNjdhYWEyMDRhMDJhMzM2Ni4u
OWZlZGM2ODkxMDA1MzAxYzE1MTE1MzEyMmYzZjFkNDZkNWE3NTAzNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKQEAgLTM1LDYgKzM1LDcg
QEAgT0JKQ19DTEFTUyBXS0NvbnRlbnRWaWV3OwogT0JKQ19DTEFTUyBXS0VkaXRvclVuZG9UYXJn
ZXQ7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKK2VudW0gY2xhc3MgRE9NUGFzdGVBY2Nlc3NSZXNw
b25zZSA6IHVpbnQ4X3Q7CiBzdHJ1Y3QgUHJvbWlzZWRBdHRhY2htZW50SW5mbzsKIH0KIApAQCAt
MjI0LDcgKzIyNSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZXF1ZXN0UGFzc3dvcmRGb3JRdWlj
a0xvb2tEb2N1bWVudChjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCBXVEY6OkZ1bmN0aW9uPHZvaWQo
Y29uc3QgU3RyaW5nJik+JiYpIG92ZXJyaWRlOwogI2VuZGlmCiAKLSAgICB2b2lkIHJlcXVlc3RE
T01QYXN0ZUFjY2Vzcyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBlbGVtZW50UmVjdCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgZmluYWw7CisgICAgdm9pZCByZXF1ZXN0RE9NUGFz
dGVBY2Nlc3MoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgZWxlbWVudFJlY3QsIGNvbnN0IFN0cmlu
ZyYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25z
ZSk+JiYpIGZpbmFsOwogCiAjaWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCiAgICAgdm9pZCBk
aWRQZXJmb3JtRHJhZ09wZXJhdGlvbihib29sIGhhbmRsZWQpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCmluZGV4IDVlMGE2
OTA3YjgwMzM2Nzc4ODU4ZmIwNTBlYzAxMGEwZmM5OGIyNWMuLmQ5NTRlNzdhZGMzZmQ3NGViOTk3
NmMwMjIxYzUzZWQwNjZlNTgxNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvUGFnZUNsaWVudEltcGxJT1MubW0KQEAgLTU0LDYgKzU0LDcgQEAKICNpbXBvcnQgIldlYkVk
aXRDb21tYW5kUHJveHkuaCIKICNpbXBvcnQgIldlYlByb2Nlc3NQcm94eS5oIgogI2ltcG9ydCAi
X1dLRG93bmxvYWRJbnRlcm5hbC5oIgorI2ltcG9ydCA8V2ViQ29yZS9ET01QYXN0ZUFjY2Vzcy5o
PgogI2ltcG9ydCA8V2ViQ29yZS9EaWN0aW9uYXJ5TG9va3VwLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L05vdEltcGxlbWVudGVkLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtU2NyZWVuLmg+CkBA
IC04MzcsOSArODM4LDkgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdFBhc3N3b3JkRm9y
UXVpY2tMb29rRG9jdW1lbnQoY29uc3QgU3RyaW5nJiBmaWxlTmFtZSwKIH0KICNlbmRpZgogCi12
b2lkIFBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYgZWxlbWVudFJlY3QsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0RE9NUGFzdGVBY2Nl
c3MoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgZWxlbWVudFJlY3QsIGNvbnN0IFN0cmluZyYgb3Jp
Z2luSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpET01QYXN0ZUFj
Y2Vzc1Jlc3BvbnNlKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBbbV9jb250ZW50Vmll
dyBfcmVxdWVzdERPTVBhc3RlQWNjZXNzV2l0aEVsZW1lbnRSZWN0OmVsZW1lbnRSZWN0IGNvbXBs
ZXRpb25IYW5kbGVyOldURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXTsKKyAgICBbbV9jb250ZW50
VmlldyBfcmVxdWVzdERPTVBhc3RlQWNjZXNzV2l0aEVsZW1lbnRSZWN0OmVsZW1lbnRSZWN0IG9y
aWdpbklkZW50aWZpZXI6b3JpZ2luSWRlbnRpZmllciBjb21wbGV0aW9uSGFuZGxlcjpXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKV07CiB9CiAKICNpZiBIQVZFKFBFTkNJTEtJVCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24u
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24u
aAppbmRleCAyY2VjYzJjNTZkN2IwNTg4OTc5M2U2ODQwNTk3NWM3M2E0ZmU2ZWM5Li43NzMwNjNh
ODc4MjM3MjcyZjA5MTY3N2IwNTUyMGZkZDY1MjI3MTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCkBAIC03MSwx
NCArNzEsMTMgQEAgY2xhc3MgSW50U2l6ZTsKIGNsYXNzIFNlbGVjdGlvblJlY3Q7CiBzdHJ1Y3Qg
UHJvbWlzZWRBdHRhY2htZW50SW5mbzsKIHN0cnVjdCBTaGFyZURhdGFXaXRoUGFyc2VkVVJMOwor
ZW51bSBjbGFzcyBET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlIDogdWludDhfdDsKIGVudW0gY2xhc3Mg
Um91dGVTaGFyaW5nUG9saWN5IDogdWludDhfdDsKLX0KIAogI2lmIEVOQUJMRShEUkFHX1NVUFBP
UlQpCi1uYW1lc3BhY2UgV2ViQ29yZSB7CiBzdHJ1Y3QgRHJhZ0l0ZW07Ci19CiAjZW5kaWYKK30K
IAogbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBJbnB1dFZpZXdVcGRhdGVEZWZlcnJlcjsKQEAg
LTMxOCw3ICszMTcsNyBAQCBzdHJ1Y3QgV0tBdXRvQ29ycmVjdGlvbkRhdGEgewogICAgIEJPT0wg
X2ZvY3VzUmVxdWlyZXNTdHJvbmdQYXNzd29yZEFzc2lzdGFuY2U7CiAKICAgICBCT09MIF9oYXNT
ZXRVcEludGVyYWN0aW9uczsKLSAgICBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiBfZG9t
UGFzdGVSZXF1ZXN0SGFuZGxlcjsKKyAgICBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6
OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2UpPiBfZG9tUGFzdGVSZXF1ZXN0SGFuZGxlcjsKIAogI2lm
IEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQogICAgIFdlYktpdDo6RHJhZ0Ryb3BJbnRlcmFjdGlv
blN0YXRlIF9kcmFnRHJvcEludGVyYWN0aW9uU3RhdGU7CkBAIC00NDAsNyArNDM5LDcgQEAgRk9S
X0VBQ0hfUFJJVkFURV9XS0NPTlRFTlRWSUVXX0FDVElPTihERUNMQVJFX1dLQ09OVEVOVFZJRVdf
QUNUSU9OX0ZPUl9XRUJfVklFVykKIC0gKHZvaWQpX2FjY2Vzc2liaWxpdHlDbGVhclNlbGVjdGlv
bjsKIC0gKFdLRm9ybUlucHV0U2Vzc2lvbiAqKV9mb3JtSW5wdXRTZXNzaW9uOwogCi0tICh2b2lk
KV9yZXF1ZXN0RE9NUGFzdGVBY2Nlc3NXaXRoRWxlbWVudFJlY3Q6KGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmKWVsZW1lbnRSZWN0IGNvbXBsZXRpb25IYW5kbGVyOihDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGJvb2wpPiYmKWNvbXBsZXRpb25IYW5kbGVyOworLSAodm9pZClfcmVxdWVzdERPTVBhc3Rl
QWNjZXNzV2l0aEVsZW1lbnRSZWN0Oihjb25zdCBXZWJDb3JlOjpJbnRSZWN0JillbGVtZW50UmVj
dCBvcmlnaW5JZGVudGlmaWVyOihjb25zdCBTdHJpbmcmKW9yaWdpbklkZW50aWZpZXIgY29tcGxl
dGlvbkhhbmRsZXI6KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RE9NUGFzdGVBY2Nl
c3NSZXNwb25zZSk+JiYpY29tcGxldGlvbkhhbmRsZXI7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
LCByZWFkb25seSkgV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiBjdXJy
ZW50UG9zaXRpb25JbmZvcm1hdGlvbjsKIC0gKHZvaWQpZG9BZnRlclBvc2l0aW9uSW5mb3JtYXRp
b25VcGRhdGU6KHZvaWQgKF4pKFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRp
b24pKWFjdGlvbiBmb3JSZXF1ZXN0OihXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1
ZXN0KXJlcXVlc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCBkZjdmNzJlOTE2YmZhMzJmNGM0Zjk3YzZi
M2VlOGY5ZWE3ZTYxM2Q4Li4zN2IzNjIwM2M0ZDExMGZiMmI5NTc5YmU1ZTMxZTA5ZDcyNTc4YWIy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24ubW0KQEAgLTc3LDYgKzc3LDcgQEAKICNpbXBvcnQgPENvcmVUZXh0L0NU
Rm9udERlc2NyaXB0b3IuaD4KICNpbXBvcnQgPE1vYmlsZUNvcmVTZXJ2aWNlcy9VVENvcmVUeXBl
cy5oPgogI2ltcG9ydCA8V2ViQ29yZS9Db2xvci5oPgorI2ltcG9ydCA8V2ViQ29yZS9ET01QYXN0
ZUFjY2Vzcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9EYXRhRGV0ZWN0aW9uLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL0Zsb2F0UXVhZC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Gb250QXR0cmlidXRlQ2hhbmdl
cy5oPgpAQCAtODkwLDcgKzg5MSw3IEBAIC0gKHZvaWQpY2xlYW51cEludGVyYWN0aW9uCiAjaWYg
RU5BQkxFKFBPSU5URVJfRVZFTlRTKQogICAgIFtzZWxmIF9yZXNldFBhbm5pbmdQcmV2ZW50aW9u
RmxhZ3NdOwogI2VuZGlmCi0gICAgW3NlbGYgX2hhbmRsZURPTVBhc3RlUmVxdWVzdFdpdGhSZXN1
bHQ6Tk9dOworICAgIFtzZWxmIF9oYW5kbGVET01QYXN0ZVJlcXVlc3RXaXRoUmVzdWx0OldlYkNv
cmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2U6OkRlbmllZEZvckdlc3R1cmVdOwogfQogCiAtICh2
b2lkKV9yZW1vdmVEZWZhdWx0R2VzdHVyZVJlY29nbml6ZXJzCkBAIC0xMTc4LDcgKzExNzksNyBA
QCAtIChCT09MKXJlc2lnbkZpcnN0UmVzcG9uZGVyRm9yV2ViVmlldwogICAgIGJvb2wgc3VwZXJE
aWRSZXNpZ24gPSBbc3VwZXIgcmVzaWduRmlyc3RSZXNwb25kZXJdOwogCiAgICAgaWYgKHN1cGVy
RGlkUmVzaWduKSB7Ci0gICAgICAgIFtzZWxmIF9oYW5kbGVET01QYXN0ZVJlcXVlc3RXaXRoUmVz
dWx0Ok5PXTsKKyAgICAgICAgW3NlbGYgX2hhbmRsZURPTVBhc3RlUmVxdWVzdFdpdGhSZXN1bHQ6
V2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZTo6RGVuaWVkRm9yR2VzdHVyZV07CiAgICAg
ICAgIF9wYWdlLT5hY3Rpdml0eVN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6
OklzRm9jdXNlZCk7CiAgICAgfQogCkBAIC0xMjE0LDcgKzEyMTUsNyBAQCAtICh2b2lkKV93ZWJU
b3VjaEV2ZW50c1JlY29nbml6ZWQ6KFVJV2ViVG91Y2hFdmVudHNHZXN0dXJlUmVjb2duaXplciAq
KWdlc3R1cmVSZQogCiAgICAgX2xhc3RJbnRlcmFjdGlvbkxvY2F0aW9uID0gbGFzdFRvdWNoRXZl
bnQtPmxvY2F0aW9uSW5Eb2N1bWVudENvb3JkaW5hdGVzOwogICAgIGlmIChsYXN0VG91Y2hFdmVu
dC0+dHlwZSA9PSBVSVdlYlRvdWNoRXZlbnRUb3VjaEJlZ2luKSB7Ci0gICAgICAgIFtzZWxmIF9o
YW5kbGVET01QYXN0ZVJlcXVlc3RXaXRoUmVzdWx0Ok5PXTsKKyAgICAgICAgW3NlbGYgX2hhbmRs
ZURPTVBhc3RlUmVxdWVzdFdpdGhSZXN1bHQ6V2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25z
ZTo6RGVuaWVkRm9yR2VzdHVyZV07CiAgICAgICAgIF9sYXllclRyZWVUcmFuc2FjdGlvbklkQXRM
YXN0VG91Y2hTdGFydCA9IGRvd25jYXN0PFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWFQcm94eT4oKl9wYWdlLT5kcmF3aW5nQXJlYSgpKS5sYXN0Q29tbWl0dGVkTGF5ZXJUcmVlVHJh
bnNhY3Rpb25JRCgpOwogICAgIH0KIApAQCAtMjg5OCw3ICsyODk5LDcgQEAgLSAoaWQpdGFyZ2V0
Rm9yQWN0aW9uRm9yV2ViVmlldzooU0VMKWFjdGlvbiB3aXRoU2VuZGVyOihpZClzZW5kZXIKIAog
LSAodm9pZClfd2lsbEhpZGVNZW51OihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgogewot
ICAgIFtzZWxmIF9oYW5kbGVET01QYXN0ZVJlcXVlc3RXaXRoUmVzdWx0Ok5PXTsKKyAgICBbc2Vs
ZiBfaGFuZGxlRE9NUGFzdGVSZXF1ZXN0V2l0aFJlc3VsdDpXZWJDb3JlOjpET01QYXN0ZUFjY2Vz
c1Jlc3BvbnNlOjpEZW5pZWRGb3JHZXN0dXJlXTsKIH0KIAogLSAodm9pZClfZGlkSGlkZU1lbnU6
KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCkBAIC0yOTI2LDcgKzI5MjcsNyBAQCAtICh2
b2lkKWN1dEZvcldlYlZpZXc6KGlkKXNlbmRlcgogCiAtICh2b2lkKXBhc3RlRm9yV2ViVmlldzoo
aWQpc2VuZGVyCiB7Ci0gICAgaWYgKHNlbmRlciA9PSBVSU1lbnVDb250cm9sbGVyLnNoYXJlZE1l
bnVDb250cm9sbGVyICYmIFtzZWxmIF9oYW5kbGVET01QYXN0ZVJlcXVlc3RXaXRoUmVzdWx0OllF
U10pCisgICAgaWYgKHNlbmRlciA9PSBVSU1lbnVDb250cm9sbGVyLnNoYXJlZE1lbnVDb250cm9s
bGVyICYmIFtzZWxmIF9oYW5kbGVET01QYXN0ZVJlcXVlc3RXaXRoUmVzdWx0OldlYkNvcmU6OkRP
TVBhc3RlQWNjZXNzUmVzcG9uc2U6OkdyYW50ZWRGb3JHZXN0dXJlXSkKICAgICAgICAgcmV0dXJu
OwogCiAgICAgX3BhZ2UtPmV4ZWN1dGVFZGl0Q29tbWFuZCgicGFzdGUiX3MpOwpAQCAtMzA1OCwx
MSArMzA1OSwxMSBAQCAtICh2b2lkKV9hY2Nlc3NpYmlsaXR5Q2xlYXJTZWxlY3Rpb24KICAgICBf
cGFnZS0+c3RvcmVTZWxlY3Rpb25Gb3JBY2Nlc3NpYmlsaXR5KGZhbHNlKTsKIH0KIAotLSAoQk9P
TClfaGFuZGxlRE9NUGFzdGVSZXF1ZXN0V2l0aFJlc3VsdDooQk9PTClhbGxvd1Bhc3RlCistIChC
T09MKV9oYW5kbGVET01QYXN0ZVJlcXVlc3RXaXRoUmVzdWx0OihXZWJDb3JlOjpET01QYXN0ZUFj
Y2Vzc1Jlc3BvbnNlKXJlc3BvbnNlCiB7CiAgICAgaWYgKGF1dG8gcGFzdGVIYW5kbGVyID0gV1RG
TW92ZShfZG9tUGFzdGVSZXF1ZXN0SGFuZGxlcikpIHsKICAgICAgICAgW3NlbGYgaGlkZUdsb2Jh
bE1lbnVDb250cm9sbGVyXTsKLSAgICAgICAgcGFzdGVIYW5kbGVyKGFsbG93UGFzdGUpOworICAg
ICAgICBwYXN0ZUhhbmRsZXIocmVzcG9uc2UpOwogICAgICAgICByZXR1cm4gWUVTOwogICAgIH0K
ICAgICByZXR1cm4gTk87CkBAIC0zMDcxLDEzICszMDcyLDEzIEBAIC0gKEJPT0wpX2hhbmRsZURP
TVBhc3RlUmVxdWVzdFdpdGhSZXN1bHQ6KEJPT0wpYWxsb3dQYXN0ZQogLSAodm9pZClfd2lsbFBl
cmZvcm1BY3Rpb246KFNFTClhY3Rpb24gc2VuZGVyOihpZClzZW5kZXIKIHsKICAgICBpZiAoYWN0
aW9uICE9IEBzZWxlY3RvcihwYXN0ZTopKQotICAgICAgICBbc2VsZiBfaGFuZGxlRE9NUGFzdGVS
ZXF1ZXN0V2l0aFJlc3VsdDpOT107CisgICAgICAgIFtzZWxmIF9oYW5kbGVET01QYXN0ZVJlcXVl
c3RXaXRoUmVzdWx0OldlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2U6OkRlbmllZEZvckdl
c3R1cmVdOwogfQogCiAtICh2b2lkKV9kaWRQZXJmb3JtQWN0aW9uOihTRUwpYWN0aW9uIHNlbmRl
cjooaWQpc2VuZGVyCiB7CiAgICAgaWYgKGFjdGlvbiA9PSBAc2VsZWN0b3IocGFzdGU6KSkKLSAg
ICAgICAgW3NlbGYgX2hhbmRsZURPTVBhc3RlUmVxdWVzdFdpdGhSZXN1bHQ6Tk9dOworICAgICAg
ICBbc2VsZiBfaGFuZGxlRE9NUGFzdGVSZXF1ZXN0V2l0aFJlc3VsdDpXZWJDb3JlOjpET01QYXN0
ZUFjY2Vzc1Jlc3BvbnNlOjpEZW5pZWRGb3JHZXN0dXJlXTsKIH0KIAogLy8gVUlXS0ludGVyYWN0
aW9uVmlld1Byb3RvY29sCkBAIC00Mjk1LDcgKzQyOTYsNyBAQCAtICh2b2lkKWhhbmRsZUtleVdl
YkV2ZW50Oig6OldlYkV2ZW50ICopdGhlRXZlbnQKIAogLSAodm9pZCloYW5kbGVLZXlXZWJFdmVu
dDooOjpXZWJFdmVudCAqKXRoZUV2ZW50IHdpdGhDb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXiko
OjpXZWJFdmVudCAqdGhlRXZlbnQsIEJPT0wgd2FzSGFuZGxlZCkpY29tcGxldGlvbkhhbmRsZXIK
IHsKLSAgICBbc2VsZiBfaGFuZGxlRE9NUGFzdGVSZXF1ZXN0V2l0aFJlc3VsdDpOT107CisgICAg
W3NlbGYgX2hhbmRsZURPTVBhc3RlUmVxdWVzdFdpdGhSZXN1bHQ6V2ViQ29yZTo6RE9NUGFzdGVB
Y2Nlc3NSZXNwb25zZTo6RGVuaWVkRm9yR2VzdHVyZV07CiAKICAgICBfa2V5V2ViRXZlbnRIYW5k
bGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKTsKICAgICBfcGFnZS0+aGFuZGxl
S2V5Ym9hcmRFdmVudChXZWJLaXQ6Ok5hdGl2ZVdlYktleWJvYXJkRXZlbnQodGhlRXZlbnQpKTsK
QEAgLTUwMzUsMTEgKzUwMzYsNDEgQEAgLSAodm9pZCloaWRlR2xvYmFsTWVudUNvbnRyb2xsZXIK
ICNlbmRpZgogfQogCi0tICh2b2lkKV9yZXF1ZXN0RE9NUGFzdGVBY2Nlc3NXaXRoRWxlbWVudFJl
Y3Q6KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKWVsZW1lbnRSZWN0IGNvbXBsZXRpb25IYW5kbGVy
OihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKWNvbXBsZXRpb25IYW5kbGVyCitzdGF0
aWMgQk9PTCBhbGxQYXN0ZWJvYXJkSXRlbU9yaWdpbnNNYXRjaE9yaWdpbihVSVBhc3RlYm9hcmQg
KnBhc3RlYm9hcmQsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllcikKK3sKKyAgICBpZiAo
b3JpZ2luSWRlbnRpZmllci5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBOTzsKKworICAgIGF1
dG8gKmluZGljZXMgPSBbTlNJbmRleFNldCBpbmRleFNldFdpdGhJbmRleGVzSW5SYW5nZTpOU01h
a2VSYW5nZSgwLCBbcGFzdGVib2FyZCBudW1iZXJPZkl0ZW1zXSldOworICAgIGF1dG8gKmFsbEN1
c3RvbURhdGEgPSBbcGFzdGVib2FyZCBkYXRhRm9yUGFzdGVib2FyZFR5cGU6QChXZWJDb3JlOjpQ
YXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkpIGluSXRlbVNldDppbmRpY2VzXTsKKyAg
ICBpZiAoIWFsbEN1c3RvbURhdGEuY291bnQpCisgICAgICAgIHJldHVybiBOTzsKKworICAgIEJP
T0wgZm91bmRBdExlYXN0T25lTWF0Y2hpbmdJZGVudGlmaWVyID0gTk87CisgICAgZm9yIChOU0Rh
dGEgKmRhdGEgaW4gYWxsQ3VzdG9tRGF0YSkgeworICAgICAgICBpZiAoIWRhdGEubGVuZ3RoKQor
ICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgYXV0byBidWZmZXIgPSBXZWJDb3JlOjpT
aGFyZWRCdWZmZXI6OmNyZWF0ZShkYXRhKTsKKyAgICAgICAgaWYgKFdlYkNvcmU6OlBhc3RlYm9h
cmRDdXN0b21EYXRhOjpmcm9tU2hhcmVkQnVmZmVyKGJ1ZmZlci5nZXQoKSkub3JpZ2luICE9IG9y
aWdpbklkZW50aWZpZXIpCisgICAgICAgICAgICByZXR1cm4gTk87CisKKyAgICAgICAgZm91bmRB
dExlYXN0T25lTWF0Y2hpbmdJZGVudGlmaWVyID0gWUVTOworICAgIH0KKworICAgIHJldHVybiBm
b3VuZEF0TGVhc3RPbmVNYXRjaGluZ0lkZW50aWZpZXI7Cit9CisKKy0gKHZvaWQpX3JlcXVlc3RE
T01QYXN0ZUFjY2Vzc1dpdGhFbGVtZW50UmVjdDooY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpZWxl
bWVudFJlY3Qgb3JpZ2luSWRlbnRpZmllcjooY29uc3QgU3RyaW5nJilvcmlnaW5JZGVudGlmaWVy
IGNvbXBsZXRpb25IYW5kbGVyOihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkRPTVBh
c3RlQWNjZXNzUmVzcG9uc2UpPiYmKWNvbXBsZXRpb25IYW5kbGVyCiB7CiAgICAgaWYgKGF1dG8g
ZXhpc3RpbmdDb21wbGV0aW9uSGFuZGxlciA9IHN0ZDo6ZXhjaGFuZ2UoX2RvbVBhc3RlUmVxdWVz
dEhhbmRsZXIsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKSkgewogICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKLSAgICAgICAgZXhpc3RpbmdDb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7
CisgICAgICAgIGV4aXN0aW5nQ29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RE9NUGFzdGVBY2Nl
c3NSZXNwb25zZTo6RGVuaWVkRm9yR2VzdHVyZSk7CisgICAgfQorCisgICAgaWYgKGFsbFBhc3Rl
Ym9hcmRJdGVtT3JpZ2luc01hdGNoT3JpZ2luKFVJUGFzdGVib2FyZC5nZW5lcmFsUGFzdGVib2Fy
ZCwgb3JpZ2luSWRlbnRpZmllcikpIHsKKyAgICAgICAgW3NlbGYgX2hhbmRsZURPTVBhc3RlUmVx
dWVzdFdpdGhSZXN1bHQ6V2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZTo6R3JhbnRlZEZv
ckNvbW1hbmRdOworICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgV2ViQ29yZTo6SW50UmVj
dCBtZW51Q29udHJvbGxlclJlY3QgPSBlbGVtZW50UmVjdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmgKaW5kZXggNDIxMDFhYjYxZTBmNjcyMTMy
MmEyYzU0ZDFhNTFiOTk4OTYxMTRjNi4uYzkzZmJjYjFkNTIyY2YwNGY1MGNmOTA5NzZlNTJkMDRl
YWYyYTg0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGll
bnRJbXBsTWFjLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJ
bXBsTWFjLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJDb3JyZWN0aW9uUGFuZWwuaCIK
ICNpbmNsdWRlICJQYWdlQ2xpZW50SW1wbENvY29hLmgiCiAjaW5jbHVkZSAiV2ViRnVsbFNjcmVl
bk1hbmFnZXJQcm94eS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRE9NUGFzdGVBY2Nlc3MuaD4KICNp
bmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRy
Lmg+CiAKQEAgLTIxNCw3ICsyMTUsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgd2lsbFJlY29yZE5h
dmlnYXRpb25TbmFwc2hvdChXZWJCYWNrRm9yd2FyZExpc3RJdGVtJikgb3ZlcnJpZGU7CiAgICAg
dm9pZCBkaWRSZW1vdmVOYXZpZ2F0aW9uR2VzdHVyZVNuYXBzaG90KCkgb3ZlcnJpZGU7CiAKLSAg
ICB2b2lkIHJlcXVlc3RET01QYXN0ZUFjY2Vzcyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uKSBmaW5hbCB7IGNvbXBsZXRp
b24oZmFsc2UpOyB9CisgICAgdm9pZCByZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoY29uc3QgV2ViQ29y
ZTo6SW50UmVjdCYsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlKT4mJiBjb21wbGV0aW9u
KSBmaW5hbCB7IGNvbXBsZXRpb24oV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZTo6RGVu
aWVkRm9yR2VzdHVyZSk7IH0KIAogICAgIE5TVmlldyAqYWN0aXZlVmlldygpIGNvbnN0OwogICAg
IE5TV2luZG93ICphY3RpdmVXaW5kb3coKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL3dpbi9QYWdlQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy93aW4vUGFnZUNsaWVudEltcGwuY3BwCmluZGV4IGNhNTAyM2VkNmUwZjlkNWJmODdkNzAy
ZWQ4NjI5YWZjMzMxMmJhZjQuLjI2NGIwMWMyMjI3ZDc3Njk4NmY3OWNmYWFhMmNiYTczYzY0OTA4
MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9QYWdlQ2xpZW50SW1w
bC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1BhZ2VDbGllbnRJbXBsLmNw
cApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgogI2luY2x1ZGUg
IldlYlBvcHVwTWVudVByb3h5V2luLmgiCiAjaW5jbHVkZSAiV2ViVmlldy5oIgorI2luY2x1ZGUg
PFdlYkNvcmUvRE9NUGFzdGVBY2Nlc3MuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKQEAgLTM2Nyw5ICszNjgsOSBAQCBIV05EIFBhZ2VDbGllbnRJbXBs
Ojp2aWV3V2lkZ2V0KCkKICAgICByZXR1cm4gbV92aWV3LndpbmRvdygpOwogfQogCi12b2lkIFBh
Z2VDbGllbnRJbXBsOjpyZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoY29uc3QgSW50UmVjdCYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFBhZ2VD
bGllbnRJbXBsOjpyZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoY29uc3QgSW50UmVjdCYsIGNvbnN0IFN0
cmluZyYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNw
b25zZSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgY29tcGxldGlvbkhhbmRsZXIoZmFs
c2UpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9u
c2U6OkRlbmllZEZvckdlc3R1cmUpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9QYWdlQ2xpZW50SW1wbC5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1BhZ2VDbGllbnRJbXBsLmgKaW5kZXggNzM5NmQzOWJj
MTJlNGE3NzZkYWMzNTgxYWI1YjQ0NjVmZTRhOWQ1ZS4uMWY5ZGE4NDA0MGE1Y2MwOWE0YzVlYzkw
OTRhYWMzMjE4NjA2MzU0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2lu
L1BhZ2VDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1BhZ2VD
bGllbnRJbXBsLmgKQEAgLTM0LDYgKzM0LDEwIEBACiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5Lmgi
CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRTaXplLmg+CiAKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2Vu
dW0gY2xhc3MgRE9NUGFzdGVBY2Nlc3NSZXNwb25zZSA6IHVpbnQ4X3Q7Cit9CisKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCiBjbGFzcyBEcmF3aW5nQXJlYVByb3h5OwpAQCAtMTQ0LDcgKzE0OCw3IEBA
IHByaXZhdGU6CiAKICAgICB2b2lkIGRpZEZpbmlzaFByb2Nlc3NpbmdBbGxQZW5kaW5nTW91c2VF
dmVudHMoKSBmaW5hbCB7IH0KIAotICAgIHZvaWQgcmVxdWVzdERPTVBhc3RlQWNjZXNzKGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBmaW5h
bDsKKyAgICB2b2lkIHJlcXVlc3RET01QYXN0ZUFjY2Vzcyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0
JiwgY29uc3QgU3RyaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpET01QYXN0
ZUFjY2Vzc1Jlc3BvbnNlKT4mJikgZmluYWw7CiAKICAgICAvLyBNZW1iZXJzIG9mIFBhZ2VDbGll
bnRJbXBsIGNsYXNzCiAgICAgRGVmYXVsdFVuZG9Db250cm9sbGVyIG1fdW5kb0NvbnRyb2xsZXI7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJFZGl0b3JDbGllbnQuY3BwCmluZGV4IDkzNDA1NzEzYmQ4ZWZmNzRjOGFmYmQxOWJlNDc0
MDNhNTc1MDQ2NmEuLjQ5ZDVlYjUyY2ZmY2M0NjRmMTMzYmU3MDFjNGQ1MjBiZGRjODNiM2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0
b3JDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJFZGl0b3JDbGllbnQuY3BwCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiV2ViUHJv
Y2Vzcy5oIgogI2luY2x1ZGUgIldlYlVuZG9TdGVwLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9BcmNo
aXZlUmVzb3VyY2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0RPTVBhc3RlQWNjZXNzLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9Eb2N1bWVudEZyYWdtZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Gb2N1
c0NvbnRyb2xsZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+CkBAIC0zNTQsOSArMzU1
LDkgQEAgdm9pZCBXZWJFZGl0b3JDbGllbnQ6OnJlZG8oKQogICAgIG1fcGFnZS0+c2VuZFN5bmMo
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RXhlY3V0ZVVuZG9SZWRvKFVuZG9PclJlZG86OlJlZG8p
LCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpFeGVjdXRlVW5kb1JlZG86OlJlcGx5KCkpOwogfQog
Ci1ib29sIFdlYkVkaXRvckNsaWVudDo6cmVxdWVzdERPTVBhc3RlQWNjZXNzKCkKK1dlYkNvcmU6
OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2UgV2ViRWRpdG9yQ2xpZW50OjpyZXF1ZXN0RE9NUGFzdGVB
Y2Nlc3MoY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyKQogewotICAgIHJldHVybiBtX3Bh
Z2UtPnJlcXVlc3RET01QYXN0ZUFjY2VzcygpOworICAgIHJldHVybiBtX3BhZ2UtPnJlcXVlc3RE
T01QYXN0ZUFjY2VzcyhvcmlnaW5JZGVudGlmaWVyKTsKIH0KIAogI2lmIFBMQVRGT1JNKFdJTikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJF
ZGl0b3JDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJFZGl0b3JDbGllbnQuaAppbmRleCBiMTJiYTYwMmZhZTM4MzU2YWNkYmNhZTk1YTFmYmFjZjA5
NzkzMTc0Li4zMDk4OGVkODBmNWZjMjQyYjVjNDUxZTZiMTZlODg3MTYyMmJhZWU1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xp
ZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVk
aXRvckNsaWVudC5oCkBAIC0yOCw2ICsyOCwxMCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRWRpdG9y
Q2xpZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UZXh0Q2hlY2tlckNsaWVudC5oPgogCituYW1l
c3BhY2UgV2ViQ29yZSB7CitlbnVtIGNsYXNzIERPTVBhc3RlQWNjZXNzUmVzcG9uc2UgOiB1aW50
OF90OworfQorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViUGFnZTsKQEAgLTg4LDcg
KzkyLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlZ2lzdGVyUmVkb1N0ZXAoV2ViQ29yZTo6VW5k
b1N0ZXAmKSBmaW5hbDsKICAgICB2b2lkIGNsZWFyVW5kb1JlZG9PcGVyYXRpb25zKCkgZmluYWw7
CiAKLSAgICBib29sIHJlcXVlc3RET01QYXN0ZUFjY2VzcygpIGZpbmFsOworICAgIFdlYkNvcmU6
OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2UgcmVxdWVzdERPTVBhc3RlQWNjZXNzKGNvbnN0IFN0cmlu
ZyYgb3JpZ2luSWRlbnRpZmllcikgZmluYWw7CiAKICAgICBib29sIGNhbkNvcHlDdXQoV2ViQ29y
ZTo6RnJhbWUqLCBib29sIGRlZmF1bHRWYWx1ZSkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBjYW5Q
YXN0ZShXZWJDb3JlOjpGcmFtZSosIGJvb2wgZGVmYXVsdFZhbHVlKSBjb25zdCBmaW5hbDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggYjRjNTg1
YzY3NTJlMDYzZmZjZTY1ZDMxYzhmYjU1OGU5MTY0ZTM1Zi4uNTZlYjVmMGZjMTNlN2YzMjk2ODdk
NGU0ZmI4NWUzMjM4Y2Y2YzlkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAKQEAgLTEzOSw2ICsxMzksNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvQ2hy
b21lLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Db21tb25WTS5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
Q29udGV4dE1lbnVDb250cm9sbGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9ET01QYXN0ZUFjY2Vz
cy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGF0YVRyYW5zZmVyLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9EYXRhYmFzZU1hbmFnZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RlcHJlY2F0ZWRHbG9iYWxT
ZXR0aW5ncy5oPgpAQCAtNjQ0MCwxMyArNjQ0MSwxMSBAQCB2b2lkIFdlYlBhZ2U6OmRpZENvbXBs
ZXRlU2hhcmVTaGVldChib29sIHdhc0dyYW50ZWQsIFNoYXJlU2hlZXRDYWxsYmFja0lEIGNhbGxi
YQogICAgIGNhbGxiYWNrKHdhc0dyYW50ZWQpOwogfQogCi1ib29sIFdlYlBhZ2U6OnJlcXVlc3RE
T01QYXN0ZUFjY2VzcygpCitXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlIFdlYlBhZ2U6
OnJlcXVlc3RET01QYXN0ZUFjY2Vzcyhjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIpCiB7
Ci0gICAgYm9vbCBncmFudGVkID0gZmFsc2U7Ci0gICAgaWYgKCFzZW5kU3luY1dpdGhEZWxheWVk
UmVwbHkoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UmVxdWVzdERPTVBhc3RlQWNjZXNzKHJlY3RG
b3JFbGVtZW50QXRJbnRlcmFjdGlvbkxvY2F0aW9uKCkpLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpSZXF1ZXN0RE9NUGFzdGVBY2Nlc3M6OlJlcGx5KGdyYW50ZWQpKSkKLSAgICAgICAgcmV0dXJu
IGZhbHNlOwotCi0gICAgcmV0dXJuIGdyYW50ZWQ7CisgICAgYXV0byByZXNwb25zZSA9IFdlYkNv
cmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2U6OkRlbmllZEZvckdlc3R1cmU7CisgICAgc2VuZFN5
bmNXaXRoRGVsYXllZFJlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJlcXVlc3RET01QYXN0
ZUFjY2VzcyhyZWN0Rm9yRWxlbWVudEF0SW50ZXJhY3Rpb25Mb2NhdGlvbigpLCBvcmlnaW5JZGVu
dGlmaWVyKSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UmVxdWVzdERPTVBhc3RlQWNjZXNzOjpS
ZXBseShyZXNwb25zZSkpOworICAgIHJldHVybiByZXNwb25zZTsKIH0KIAogdm9pZCBXZWJQYWdl
OjpzaW11bGF0ZURldmljZU9yaWVudGF0aW9uQ2hhbmdlKGRvdWJsZSBhbHBoYSwgZG91YmxlIGJl
dGEsIGRvdWJsZSBnYW1tYSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaAppbmRleCA5ZWUwNmZiY2M1NTYyNmU2ZGI5NTA2ODY0NmRjZTFlYzRhOTI0MGFjLi5mYzlm
OWY1YTM4YzczZjhlZjVjNmI3OWE0NDA5ZTQ1ZWVkMzI4NDlmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xNzEsNiArMTcxLDcgQEAgY2xhc3MgVGV4
dENoZWNraW5nUmVxdWVzdDsKIGNsYXNzIFZpc2libGVQb3NpdGlvbjsKIAogZW51bSBTeW50aGV0
aWNDbGlja1R5cGUgOiBpbnQ4X3Q7CitlbnVtIGNsYXNzIERPTVBhc3RlQWNjZXNzUmVzcG9uc2Ug
OiB1aW50OF90OwogZW51bSBjbGFzcyBEcmFnSGFuZGxpbmdNZXRob2QgOiB1aW50OF90OwogZW51
bSBjbGFzcyBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgOiBib29sOwogZW51bSBjbGFzcyBU
ZXh0SW5kaWNhdG9yUHJlc2VudGF0aW9uVHJhbnNpdGlvbiA6IHVpbnQ4X3Q7CkBAIC0xMTQ0LDcg
KzExNDUsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBzZW5kU3luYyhXVEZNb3ZlKG1lc3Nh
Z2UpLCBXVEZNb3ZlKHJlcGx5KSwgbV9wYWdlSUQsIFNlY29uZHM6OmluZmluaXR5KCksIElQQzo6
U2VuZFN5bmNPcHRpb246OkluZm9ybVBsYXRmb3JtUHJvY2Vzc1dpbGxTdXNwZW5kKTsKICAgICB9
CiAKLSAgICBib29sIHJlcXVlc3RET01QYXN0ZUFjY2VzcygpOworICAgIFdlYkNvcmU6OkRPTVBh
c3RlQWNjZXNzUmVzcG9uc2UgcmVxdWVzdERPTVBhc3RlQWNjZXNzKGNvbnN0IFN0cmluZyYgb3Jp
Z2luSWRlbnRpZmllcik7CiAgICAgV2ViQ29yZTo6SW50UmVjdCByZWN0Rm9yRWxlbWVudEF0SW50
ZXJhY3Rpb25Mb2NhdGlvbigpIGNvbnN0OwogCiAgICAgY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6
Q29sb3I+JiBiYWNrZ3JvdW5kQ29sb3IoKSBjb25zdCB7IHJldHVybiBtX2JhY2tncm91bmRDb2xv
cjsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViRWRpdG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJFZGl0b3JDbGllbnQuaAppbmRleCBlNGMyZmQ2Y2Y1ZjhmZTQzOTgyYjI1ZmZkYTI4ZTc4
NmJiZjZmNzdkLi5mNTZjZjJjNGYzNTU1N2VlMzBjNTliODQwNzQ0ODIyNDU2MjlmYjdkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJF
ZGl0b3JDbGllbnQuaApAQCAtMjcsNiArMjcsNyBAQAogICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCisjaW1w
b3J0IDxXZWJDb3JlL0RPTVBhc3RlQWNjZXNzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0VkaXRvckNs
aWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9UZXh0Q2hlY2tlckNsaWVudC5oPgogI2ltcG9ydCA8
V2ViQ29yZS9WaXNpYmxlU2VsZWN0aW9uLmg+CkBAIC04MCw3ICs4MSw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBnZXRDbGllbnRQYXN0ZWJvYXJkRGF0YUZvclJhbmdlKFdlYkNvcmU6OlJhbmdlKiwg
VmVjdG9yPFN0cmluZz4mIHBhc3RlYm9hcmRUeXBlcywgVmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpT
aGFyZWRCdWZmZXI+PiYgcGFzdGVib2FyZERhdGEpIGZpbmFsOwogCiAgICAgdm9pZCBzZXRJbnNl
cnRpb25QYXN0ZWJvYXJkKGNvbnN0IFN0cmluZyYpIGZpbmFsOwotICAgIGJvb2wgcmVxdWVzdERP
TVBhc3RlQWNjZXNzKCkgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBXZWJDb3JlOjpET01Q
YXN0ZUFjY2Vzc1Jlc3BvbnNlIHJlcXVlc3RET01QYXN0ZUFjY2Vzcyhjb25zdCBTdHJpbmcmKSBm
aW5hbCB7IHJldHVybiBXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlOjpEZW5pZWRGb3JH
ZXN0dXJlOyB9CiAKICNpZiBVU0UoQVBQS0lUKQogICAgIHZvaWQgdXBwZXJjYXNlV29yZCgpIGZp
bmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQv
V2ViRWRpdG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9y
dC9XZWJFZGl0b3JDbGllbnQuaAppbmRleCBiNzBmN2NiNjY2YjQ5ZmE2NDE4ZTcwMjFhYWQzNWEy
MzJmY2MwYmEzLi5lZWEyNzM1NGE2YTRjOWU0MzJmNzkyNDNjYTZkMWRlMjA3MTg0YTg0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJF
ZGl0b3JDbGllbnQuaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRl
ICJXZWJLaXQuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0RPTVBhc3RlQWNjZXNzLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9FZGl0b3JDbGllbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1RleHRDaGVja2Vy
Q2xpZW50Lmg+CiAKQEAgLTExNCw3ICsxMTUsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVxdWVz
dENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6VGV4dENoZWNraW5nUmVxdWVzdCYsIGNvbnN0IFdl
YkNvcmU6OlZpc2libGVTZWxlY3Rpb24mKSBmaW5hbCB7IH0KICAgICBib29sIHBlcmZvcm1Ud29T
dGVwRHJvcChXZWJDb3JlOjpEb2N1bWVudEZyYWdtZW50JiwgV2ViQ29yZTo6UmFuZ2UmLCBib29s
KSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQogCi0gICAgYm9vbCByZXF1ZXN0RE9NUGFzdGVBY2Nl
c3MoKSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQorICAgIFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNz
UmVzcG9uc2UgcmVxdWVzdERPTVBhc3RlQWNjZXNzKGNvbnN0IFN0cmluZyYpIGZpbmFsIHsgcmV0
dXJuIFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2U6OkRlbmllZEZvckdlc3R1cmU7IH0K
IAogICAgIFdlYkNvcmU6OlRleHRDaGVja2VyQ2xpZW50KiB0ZXh0Q2hlY2tlcigpIGZpbmFsIHsg
cmV0dXJuIHRoaXM7IH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDk4ZGM1ZjcyODQzMzJkYzNiMjQ1ZDEyMGQzNmYzMzhi
OWEzN2IxYzIuLmVhYTU3NDg2ZTc4NjczZjk3NGRkZDliNWJkMjU4YWMzMTc1NTQ3ZmYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyNyBAQAorMjAxOS0wMi0yNiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVo
QGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBQcm9ncmFtbWF0aWMgcGFzdGUgYWNjZXNzIHNo
b3VsZCBiZSBncmFudGVkIHdoZW4gY29weWluZyBhbmQgcGFzdGluZyB3aXRoaW4gdGhlIHNhbWUg
b3JpZ2luCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTUwNTMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ4MTM0NzEwPgorCisgICAgICAgIFJldmll
d2VkIGJ5IFJ5b3N1a2UgTml3YS4KKworICAgICAgICBBZGp1c3Qgc2V2ZXJhbCBleGlzdGluZyBE
T00gcGFzdGUgdGVzdHMgdG8gY29weSB0ZXh0IGZyb20gYSBjaGlsZCBmcmFtZSB0aGF0IGhhcyBh
IGRpZmZlcmVudCBvcmlnaW4gYXMgdGhlIG1haW4KKyAgICAgICAgZnJhbWUsIHN1Y2ggdGhhdCB3
ZSdsbCB0cmlnZ2VyIHRoZSBwYXN0ZSBjYWxsb3V0IG1lbnUgd2hlbiBwZXJmb3JtaW5nIGEgcHJv
Z3JhbW1hdGljIHBhc3RlLiBBbHNvIGFkZCBhIG5ldworICAgICAgICBsYXlvdXQgdGVzdCB0aGF0
IGNvcGllcyBhbmQgcHJvZ3JhbW1hdGljYWxseSBwYXN0ZXMgd2l0aGluIHRoZSBzYW1lIGRvY3Vt
ZW50LCB0byB2ZXJpZnkgdGhhdCBubyBwYXN0ZSBjYWxsb3V0IGlzCisgICAgICAgIGRpc3BsYXll
ZCBhbmQgdGhlIHBhc3RlIGlzIGFsbG93ZWQuCisKKyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9h
cmQvaW9zL2RvbS1wYXN0ZS1jb25maXJtYXRpb24tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGVk
aXRpbmcvcGFzdGVib2FyZC9pb3MvZG9tLXBhc3RlLWNvbmZpcm1hdGlvbi5odG1sOgorICAgICAg
ICAqIGVkaXRpbmcvcGFzdGVib2FyZC9pb3MvZG9tLXBhc3RlLWNvbnNlY3V0aXZlLWNvbmZpcm1h
dGlvbnMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGVkaXRpbmcvcGFzdGVib2FyZC9pb3MvZG9t
LXBhc3RlLWNvbnNlY3V0aXZlLWNvbmZpcm1hdGlvbnMuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5n
L3Bhc3RlYm9hcmQvaW9zL2RvbS1wYXN0ZS1yZWplY3Rpb24tZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGVkaXRpbmcvcGFzdGVib2FyZC9pb3MvZG9tLXBhc3RlLXJlamVjdGlvbi5odG1sOgorICAg
ICAgICAqIGVkaXRpbmcvcGFzdGVib2FyZC9pb3MvZG9tLXBhc3RlLXJlcXVpcmVzLXVzZXItZ2Vz
dHVyZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogZWRpdGluZy9wYXN0ZWJvYXJkL2lvcy9kb20t
cGFzdGUtcmVxdWlyZXMtdXNlci1nZXN0dXJlLmh0bWw6CisgICAgICAgICogZWRpdGluZy9wYXN0
ZWJvYXJkL2lvcy9kb20tcGFzdGUtc2FtZS1vcmlnaW4tZXhwZWN0ZWQudHh0OiBDb3BpZWQgZnJv
bSBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvaW9zL2RvbS1wYXN0ZS1jb25maXJtYXRp
b24tZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGVkaXRpbmcvcGFzdGVib2FyZC9pb3MvZG9tLXBh
c3RlLXNhbWUtb3JpZ2luLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2VkaXRpbmcvcGFz
dGVib2FyZC9pb3MvZG9tLXBhc3RlLWNvbmZpcm1hdGlvbi5odG1sLgorCiAyMDE5LTAzLTAxICBB
bnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CiAKICAgICAgICAgRW5hYmxlIFdQVCBQ
b2ludGVyIEV2ZW50cyB0ZXN0cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0
ZWJvYXJkL2lvcy9kb20tcGFzdGUtY29uZmlybWF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2VkaXRpbmcvcGFzdGVib2FyZC9pb3MvZG9tLXBhc3RlLWNvbmZpcm1hdGlvbi1leHBlY3Rl
ZC50eHQKaW5kZXggMWU1MjI4OThiZjY3MWMzZGRiNTAwNTJhNmEwZGM3OGUwY2MyYzk2Ny4uMzdj
NzgzYTJlMjg5N2JlOTUyOTFiNmEwNGQwZjZmOWZhNjhmZTE0ZiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2lvcy9kb20tcGFzdGUtY29uZmlybWF0aW9uLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvaW9zL2RvbS1wYXN0
ZS1jb25maXJtYXRpb24tZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsNiBAQAogQ2xpY2sgaGVyZSB0
byBjb3B5CiBDbGljayBoZXJlIHRvIGNvcHkKLUNsaWNrIGhlcmUgdG8gY29weQorCiBWZXJpZmll
cyB0aGF0IGEgY2FsbG91dCBpcyBzaG93biB3aGVuIHRoZSBwYWdlIHByb2dyYW1tYXRpY2FsbHkg
dHJpZ2dlcnMgcGFzdGUsIGFuZCB0aGF0IHRhcHBpbmcgdGhlIGNhbGxvdXQgYWxsb3dzIHRoZSBw
YXN0ZSB0byBoYXBwZW4uIFRvIG1hbnVhbGx5IHRlc3QsIHRhcCB0aGUgdGV4dCBvbiB0aGUgYm90
dG9tLCB0YXAgdGhlIGVkaXRhYmxlIGFyZWEgYWJvdmUsIGFuZCB0aGVuIHNlbGVjdCAnUGFzdGUn
IGluIHRoZSByZXN1bHRpbmcgY2FsbG91dCBtZW51LiBUaGUgdGV4dCAnQ2xpY2sgaGVyZSB0byBj
b3B5JyBzaG91bGQgYmUgcGFzdGVkIHR3aWNlIGluIHRoZSBlZGl0YWJsZSBhcmVhLgogCiBPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bh
c3RlYm9hcmQvaW9zL2RvbS1wYXN0ZS1jb25maXJtYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2Vk
aXRpbmcvcGFzdGVib2FyZC9pb3MvZG9tLXBhc3RlLWNvbmZpcm1hdGlvbi5odG1sCmluZGV4IDc0
YzU4OWExYjk3OGJjODY2ZjI2YTIxODFjZTVjMDkyYTljNGY4NjQuLjAwYzIzM2Q1MzZlNmQyMThm
ZThlYzhjN2VjOTYzOWNlNTRiYTgwOTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcv
cGFzdGVib2FyZC9pb3MvZG9tLXBhc3RlLWNvbmZpcm1hdGlvbi5odG1sCisrKyBiL0xheW91dFRl
c3RzL2VkaXRpbmcvcGFzdGVib2FyZC9pb3MvZG9tLXBhc3RlLWNvbmZpcm1hdGlvbi5odG1sCkBA
IC0xMCwxMiArMTAsNyBAQCBib2R5IHsKICAgICBtYXJnaW46IDA7CiB9CiAKLSNjb3B5LCAjZWRp
dG9yIHsKLSAgICB0ZXh0LWFsaWduOiBjZW50ZXI7Ci19Ci0KICNjb3B5IHsKLSAgICBmb250LXNp
emU6IDQwcHg7CiAgICAgd2lkdGg6IDEwMCU7CiAgICAgaGVpZ2h0OiA1MHB4OwogICAgIGJvcmRl
cjogMXB4IGRhc2hlZCBibGFjazsKQEAgLTI1LDI4ICsyMCwyOSBAQCBib2R5IHsKICAgICB3aWR0
aDogMTAwJTsKICAgICBoZWlnaHQ6IDEwMHB4OwogICAgIGJvcmRlcjogMXB4IGRhc2hlZCBzaWx2
ZXI7CisgICAgdGV4dC1hbGlnbjogY2VudGVyOwogfQogPC9zdHlsZT4KIDwvaGVhZD4KIDxib2R5
PgogPGRpdiBpZD0iZWRpdG9yIiBjb250ZW50ZWRpdGFibGU+PC9kaXY+Ci08ZGl2IGlkPSJjb3B5
Ij5DbGljayBoZXJlIHRvIGNvcHk8L2Rpdj4KKzxpZnJhbWUgaWQ9ImNvcHkiIHNyYz0iZGF0YTp0
ZXh0L2h0bWwsPGRpdiBpZD0nY29weScgc3R5bGU9J2ZvbnQtc2l6ZTogNDBweDsgdGV4dC1hbGln
bjogY2VudGVyOyc+Q2xpY2sgaGVyZSB0byBjb3B5PC9kaXY+CisgICAgPHNjcmlwdD4KKyAgICBj
b3B5LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4geworICAgICAgICBnZXRTZWxlY3Rp
b24oKS5zZWxlY3RBbGxDaGlsZHJlbihjb3B5KTsKKyAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1h
bmQoJ0NvcHknKTsKKyAgICAgICAgZ2V0U2VsZWN0aW9uKCkucmVtb3ZlQWxsUmFuZ2VzKCk7Cisg
ICAgfSk7CisgICAgPC9zY3JpcHQ+Ij48L2lmcmFtZT4KIDxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48
L2Rpdj4KIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgogPHNjcmlwdD4KIGpzVGVzdElzQXN5bmMg
PSB0cnVlOwogCi1jb25zdCBjb3B5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvcHkiKTsK
IGNvbnN0IGVkaXRvciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlZGl0b3IiKTsKIAogZGVz
Y3JpcHRpb24oIlZlcmlmaWVzIHRoYXQgYSBjYWxsb3V0IGlzIHNob3duIHdoZW4gdGhlIHBhZ2Ug
cHJvZ3JhbW1hdGljYWxseSB0cmlnZ2VycyBwYXN0ZSwgYW5kIHRoYXQgdGFwcGluZyB0aGUgY2Fs
bG91dCBhbGxvd3MgdGhlIHBhc3RlIHRvIGhhcHBlbi4gVG8gbWFudWFsbHkgdGVzdCwgdGFwIHRo
ZSB0ZXh0IG9uIHRoZSBib3R0b20sIHRhcCB0aGUgZWRpdGFibGUgYXJlYSBhYm92ZSwgYW5kIHRo
ZW4gc2VsZWN0ICdQYXN0ZScgaW4gdGhlIHJlc3VsdGluZyBjYWxsb3V0IG1lbnUuIFRoZSB0ZXh0
ICdDbGljayBoZXJlIHRvIGNvcHknIHNob3VsZCBiZSBwYXN0ZWQgPHN0cm9uZz48ZW0+dHdpY2U8
L2VtPjwvc3Ryb25nPiBpbiB0aGUgZWRpdGFibGUgYXJlYS4iKTsKIAotY29weS5hZGRFdmVudExp
c3RlbmVyKCJjbGljayIsICgpID0+IHsKLSAgICBnZXRTZWxlY3Rpb24oKS5zZWxlY3RBbGxDaGls
ZHJlbihjb3B5KTsKLSAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgiQ29weSIpOwotICAgIGdldFNl
bGVjdGlvbigpLnJlbW92ZUFsbFJhbmdlcygpOwotfSk7Ci0KIGVkaXRvci5hZGRFdmVudExpc3Rl
bmVyKCJwYXN0ZSIsIGV2ZW50ID0+IHNob3VsZEJlRXF1YWxUb1N0cmluZygiZXZlbnQuY2xpcGJv
YXJkRGF0YS5nZXREYXRhKCd0ZXh0L3BsYWluJykiLCAiQ2xpY2sgaGVyZSB0byBjb3B5IikpOwog
ZWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZXZlbnQgPT4gewogICAgIGdldFNlbGVj
dGlvbigpLnNldFBvc2l0aW9uKGVkaXRvcik7CkBAIC02MCwxNCArNTYsMTQgQEAgZWRpdG9yLmFk
ZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZXZlbnQgPT4gewogICAgIGVkaXRvci5ibHVyKCk7CiB9
KTsKIAotKGFzeW5jICgpID0+IHsKK2FkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBhc3luYyAoKSA9
PiB7CiAgICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lcikKICAgICAgICAgcmV0dXJuOwogCiAgICAg
YXdhaXQgVUlIZWxwZXIuYWN0aXZhdGVBdCgxNjAsIDEyNSk7CiAgICAgYXdhaXQgdHJpZ2dlclBh
c3RlTWVudUFmdGVyVGFwQXQoMTYwLCA1MCk7CiAgICAgZmluaXNoSlNUZXN0KCk7Ci19KSgpOwor
fSk7CiA8L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2VkaXRpbmcvcGFzdGVib2FyZC9pb3MvZG9tLXBhc3RlLWNvbnNlY3V0aXZlLWNvbmZpcm1hdGlv
bnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2lvcy9kb20t
cGFzdGUtY29uc2VjdXRpdmUtY29uZmlybWF0aW9ucy1leHBlY3RlZC50eHQKaW5kZXggYWQzNjI3
M2ViYzUwNDY0YWQyYWYxMTRiYTMyNTA4ODQ0M2M5ZmMzOS4uMDU2YjQ4MDViMDA0NDRhMDA3Nzg0
ZGNmMjFjYjAzMTY2MjQ1YmUxYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0
ZWJvYXJkL2lvcy9kb20tcGFzdGUtY29uc2VjdXRpdmUtY29uZmlybWF0aW9ucy1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2lvcy9kb20tcGFzdGUtY29u
c2VjdXRpdmUtY29uZmlybWF0aW9ucy1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACi1DbGlj
ayBoZXJlIHRvIGNvcHkKKwogVmVyaWZpZXMgdGhhdCBubyBjYWxsb3V0IGlzIHNob3duIHdoZW4g
dGhlIHBhZ2UgcHJvZ3JhbW1hdGljYWxseSB0cmlnZ2VycyBwYXN0ZSBvbiBhIHRpbWVyIGFmdGVy
IHVzZXIgaW50ZXJhY3Rpb24uIFRvIHRlc3QgbWFudWFsbHksIGNsaWNrIHRoZSB0ZXh0IG9uIHRo
ZSBib3R0b20gdG8gY29weSwgYW5kIHRoZW4gY2xpY2sgdGhlIGVkaXRhYmxlIGFyZWEgYWJvdmUg
dG8gdHJpZ2dlciB0d28gcHJvZ3JhbW1hdGljIHBhc3RlcyB3aXRoIHRoZSBjYWxsb3V0IGJhci4g
Q2hlY2sgdGhhdCBwZXJtaXNzaW9ucyBmb3IgdGhlIGZpcnN0IHByb2dyYW1tYXRpYyBwYXN0ZSBk
byBub3QgYWZmZWN0IHRoZSBzZWNvbmQgcHJvZ3JhbW1hdGljIHBhc3RlLCBzaW5jZSBpdCBpcyBw
ZXJmb3JtZWQgb24gYSB6ZXJvLWRlbGF5IHRpbWVyLgogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvaW9zL2RvbS1w
YXN0ZS1jb25zZWN1dGl2ZS1jb25maXJtYXRpb25zLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5n
L3Bhc3RlYm9hcmQvaW9zL2RvbS1wYXN0ZS1jb25zZWN1dGl2ZS1jb25maXJtYXRpb25zLmh0bWwK
aW5kZXggNzk3MWE1ODZmMDMyZjZlOTA5OGQ5MmIzNjFjNmE5NGY1ZTg5N2ZhMi4uNWNlZWJiZDQz
MmQ3MWE1ZDM3MThjOGRlNjdlMzEwYTMyNDY0Y2JhOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZWRpdGluZy9wYXN0ZWJvYXJkL2lvcy9kb20tcGFzdGUtY29uc2VjdXRpdmUtY29uZmlybWF0aW9u
cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9pb3MvZG9tLXBhc3Rl
LWNvbnNlY3V0aXZlLWNvbmZpcm1hdGlvbnMuaHRtbApAQCAtMTAsMTIgKzEwLDcgQEAgYm9keSB7
CiAgICAgbWFyZ2luOiAwOwogfQogCi0jY29weSwgI2VkaXRvciB7Ci0gICAgdGV4dC1hbGlnbjog
Y2VudGVyOwotfQotCiAjY29weSB7Ci0gICAgZm9udC1zaXplOiA0MHB4OwogICAgIHdpZHRoOiAx
MDAlOwogICAgIGhlaWdodDogNTBweDsKICAgICBib3JkZXI6IDFweCBkYXNoZWQgYmxhY2s7CkBA
IC0yNSwxOCArMjAsMjUgQEAgYm9keSB7CiAgICAgd2lkdGg6IDEwMCU7CiAgICAgaGVpZ2h0OiAx
MDBweDsKICAgICBib3JkZXI6IDFweCBkYXNoZWQgc2lsdmVyOworICAgIHRleHQtYWxpZ246IGNl
bnRlcjsKIH0KIDwvc3R5bGU+CiA8L2hlYWQ+CiA8Ym9keT4KIDxkaXYgaWQ9ImVkaXRvciIgY29u
dGVudGVkaXRhYmxlPjwvZGl2PgotPGRpdiBpZD0iY29weSI+Q2xpY2sgaGVyZSB0byBjb3B5PC9k
aXY+Cis8aWZyYW1lIGlkPSJjb3B5IiBzcmM9ImRhdGE6dGV4dC9odG1sLDxkaXYgaWQ9J2NvcHkn
IHN0eWxlPSdmb250LXNpemU6IDQwcHg7IHRleHQtYWxpZ246IGNlbnRlcjsnPkNsaWNrIGhlcmUg
dG8gY29weTwvZGl2PgorICAgIDxzY3JpcHQ+CisgICAgY29weS5hZGRFdmVudExpc3RlbmVyKCdj
bGljaycsICgpID0+IHsKKyAgICAgICAgZ2V0U2VsZWN0aW9uKCkuc2VsZWN0QWxsQ2hpbGRyZW4o
Y29weSk7CisgICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCdDb3B5Jyk7CisgICAgICAgIGdl
dFNlbGVjdGlvbigpLnJlbW92ZUFsbFJhbmdlcygpOworICAgIH0pOworICAgIDwvc2NyaXB0PiI+
PC9pZnJhbWU+CiA8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+CiA8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KIDxzY3JpcHQ+CiBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAotY29uc3QgY29weSA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb3B5Iik7CiBjb25zdCBlZGl0b3IgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiZWRpdG9yIik7CiAKIGRlc2NyaXB0aW9uKCJWZXJpZmllcyB0aGF0
IG5vIGNhbGxvdXQgaXMgc2hvd24gd2hlbiB0aGUgcGFnZSBwcm9ncmFtbWF0aWNhbGx5IHRyaWdn
ZXJzIHBhc3RlIG9uIGEgdGltZXIgYWZ0ZXIgdXNlciBpbnRlcmFjdGlvbi4gVG8gdGVzdCBtYW51
YWxseSwgY2xpY2sgdGhlIHRleHQgb24gdGhlIGJvdHRvbSB0byBjb3B5LCBhbmQgdGhlbiBjbGlj
ayB0aGUgZWRpdGFibGUgYXJlYSBhYm92ZSB0byB0cmlnZ2VyIHR3byBwcm9ncmFtbWF0aWMgcGFz
dGVzIHdpdGggdGhlIGNhbGxvdXQgYmFyLiBDaGVjayB0aGF0IHBlcm1pc3Npb25zIGZvciB0aGUg
Zmlyc3QgcHJvZ3JhbW1hdGljIHBhc3RlIGRvIG5vdCBhZmZlY3QgdGhlIHNlY29uZCBwcm9ncmFt
bWF0aWMgcGFzdGUsIHNpbmNlIGl0IGlzIHBlcmZvcm1lZCBvbiBhIHplcm8tZGVsYXkgdGltZXIu
Iik7CkBAIC02MCwxMiArNjIsNiBAQCBhc3luYyBmdW5jdGlvbiB3YWl0Rm9yQW5kVGFwUGFzdGVN
ZW51VHdpY2UoKSB7CiAgICAgfSk7CiB9CiAKLWNvcHkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2si
LCAoKSA9PiB7Ci0gICAgZ2V0U2VsZWN0aW9uKCkuc2VsZWN0QWxsQ2hpbGRyZW4oY29weSk7Ci0g
ICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoIkNvcHkiKTsKLSAgICBnZXRTZWxlY3Rpb24oKS5yZW1v
dmVBbGxSYW5nZXMoKTsKLX0pOwotCiBmdW5jdGlvbiBwYXN0ZSgpIHsKICAgICBnZXRTZWxlY3Rp
b24oKS5zZXRQb3NpdGlvbihlZGl0b3IpOwogICAgIHNob3VsZEJlKCJkb2N1bWVudC5leGVjQ29t
bWFuZCgnUGFzdGUnKSIsICJ0cnVlIik7CkBAIC04MCwxNCArNzYsMTQgQEAgZWRpdG9yLmFkZEV2
ZW50TGlzdGVuZXIoImNsaWNrIiwgZXZlbnQgPT4gewogICAgIHNldFRpbWVvdXQocGFzdGUsIDAp
OwogfSk7CiAKLShhc3luYyAoKSA9PiB7CithZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgYXN5bmMg
KCkgPT4gewogICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIgfHwgIXdpbmRvdy5pbnRlcm5hbHMp
CiAgICAgICAgIHJldHVybjsKIAogICAgIHdhaXRGb3JBbmRUYXBQYXN0ZU1lbnVUd2ljZSgpLnRo
ZW4oZmluaXNoSlNUZXN0KTsKICAgICBhd2FpdCBVSUhlbHBlci5hY3RpdmF0ZUF0KDE2MCwgMTI1
KTsKICAgICBhd2FpdCBVSUhlbHBlci5hY3RpdmF0ZUF0KDE2MCwgNTApOwotfSkoKTsKK30pOwog
PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0
aW5nL3Bhc3RlYm9hcmQvaW9zL2RvbS1wYXN0ZS1yZWplY3Rpb24tZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2lvcy9kb20tcGFzdGUtcmVqZWN0aW9uLWV4cGVj
dGVkLnR4dAppbmRleCBiY2NhZDE3MzJiNTJhYTM4NDA2NTdhZjM4YzdmZjY5YzgyMzIwZmEyLi5j
M2FkYWQ3MTRhYTdkZGI0ZTVlYmExOTgxM2ZkMDYwZDQ1NmFhNGZmIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvaW9zL2RvbS1wYXN0ZS1yZWplY3Rpb24tZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9pb3MvZG9tLXBhc3Rl
LXJlamVjdGlvbi1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACi1DbGljayBoZXJlIHRvIGNv
cHkKKwogVmVyaWZpZXMgdGhhdCBhIGNhbGxvdXQgaXMgc2hvd24gd2hlbiB0aGUgcGFnZSBwcm9n
cmFtbWF0aWNhbGx5IHRyaWdnZXJzIHBhc3RlLCBhbmQgdGhhdCBkaXNtaXNzaW5nIHRoZSBjYWxs
b3V0IHByZXZlbnRzIHRoZSBwYXN0ZSBmcm9tIGhhcHBlbmluZy4gVG8gbWFudWFsbHkgdGVzdCwg
dGFwIHRoZSB0ZXh0IG9uIHRoZSBib3R0b20sIHRhcCB0aGUgZWRpdGFibGUgYXJlYSBhYm92ZSwg
YW5kIHRoZW4gZGlzbWlzcyB0aGUgcmVzdWx0aW5nIGNhbGxvdXQgbWVudSBieSBzY3JvbGxpbmcg
b3IgdGFwcGluZyBlbHNld2hlcmUuIFRoZSB0ZXh0ICdDbGljayBoZXJlIHRvIGNvcHknIHNob3Vs
ZCBub3QgYmUgcGFzdGVkLCBhbmQgdGhlIGNhbGxvdXQgYmFyIHNob3VsZCBkaXNhcHBlYXIuCiAK
IE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRp
bmcvcGFzdGVib2FyZC9pb3MvZG9tLXBhc3RlLXJlamVjdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMv
ZWRpdGluZy9wYXN0ZWJvYXJkL2lvcy9kb20tcGFzdGUtcmVqZWN0aW9uLmh0bWwKaW5kZXggNzUx
NWJhYTgxN2U1N2E4NDEyZjY5NGM2YmI3OWJiZWMwZGZmY2Q5Ny4uNzNkMmY4ZjA0NjJiMDE2NzIy
MzIzNjRlOTVhYTQ4YTljMjQyOTYzYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9w
YXN0ZWJvYXJkL2lvcy9kb20tcGFzdGUtcmVqZWN0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZWRpdGluZy9wYXN0ZWJvYXJkL2lvcy9kb20tcGFzdGUtcmVqZWN0aW9uLmh0bWwKQEAgLTEwLDEy
ICsxMCw3IEBAIGJvZHkgewogICAgIG1hcmdpbjogMDsKIH0KIAotI2NvcHksICNlZGl0b3Igewot
ICAgIHRleHQtYWxpZ246IGNlbnRlcjsKLX0KLQogI2NvcHkgewotICAgIGZvbnQtc2l6ZTogNDBw
eDsKICAgICB3aWR0aDogMTAwJTsKICAgICBoZWlnaHQ6IDUwcHg7CiAgICAgYm9yZGVyOiAxcHgg
ZGFzaGVkIGJsYWNrOwpAQCAtMjUsMjggKzIwLDI5IEBAIGJvZHkgewogICAgIHdpZHRoOiAxMDAl
OwogICAgIGhlaWdodDogMTAwcHg7CiAgICAgYm9yZGVyOiAxcHggZGFzaGVkIHNpbHZlcjsKKyAg
ICB0ZXh0LWFsaWduOiBjZW50ZXI7CiB9CiA8L3N0eWxlPgogPC9oZWFkPgogPGJvZHk+CiA8ZGl2
IGlkPSJlZGl0b3IiIGNvbnRlbnRlZGl0YWJsZT48L2Rpdj4KLTxkaXYgaWQ9ImNvcHkiPkNsaWNr
IGhlcmUgdG8gY29weTwvZGl2PgorPGlmcmFtZSBpZD0iY29weSIgc3JjPSJkYXRhOnRleHQvaHRt
bCw8ZGl2IGlkPSdjb3B5JyBzdHlsZT0nZm9udC1zaXplOiA0MHB4OyB0ZXh0LWFsaWduOiBjZW50
ZXI7Jz5DbGljayBoZXJlIHRvIGNvcHk8L2Rpdj4KKyAgICA8c2NyaXB0PgorICAgIGNvcHkuYWRk
RXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7CisgICAgICAgIGdldFNlbGVjdGlvbigpLnNl
bGVjdEFsbENoaWxkcmVuKGNvcHkpOworICAgICAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgnQ29w
eScpOworICAgICAgICBnZXRTZWxlY3Rpb24oKS5yZW1vdmVBbGxSYW5nZXMoKTsKKyAgICB9KTsK
KyAgICA8L3NjcmlwdD4iPjwvaWZyYW1lPgogPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2Pgog
PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CiA8c2NyaXB0PgoganNUZXN0SXNBc3luYyA9IHRydWU7
CiAKLWNvbnN0IGNvcHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29weSIpOwogY29uc3Qg
ZWRpdG9yID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVkaXRvciIpOwogCiBkZXNjcmlwdGlv
bigiVmVyaWZpZXMgdGhhdCBhIGNhbGxvdXQgaXMgc2hvd24gd2hlbiB0aGUgcGFnZSBwcm9ncmFt
bWF0aWNhbGx5IHRyaWdnZXJzIHBhc3RlLCBhbmQgdGhhdCBkaXNtaXNzaW5nIHRoZSBjYWxsb3V0
IHByZXZlbnRzIHRoZSBwYXN0ZSBmcm9tIGhhcHBlbmluZy4gVG8gbWFudWFsbHkgdGVzdCwgdGFw
IHRoZSB0ZXh0IG9uIHRoZSBib3R0b20sIHRhcCB0aGUgZWRpdGFibGUgYXJlYSBhYm92ZSwgYW5k
IHRoZW4gZGlzbWlzcyB0aGUgcmVzdWx0aW5nIGNhbGxvdXQgbWVudSBieSBzY3JvbGxpbmcgb3Ig
dGFwcGluZyBlbHNld2hlcmUuIFRoZSB0ZXh0ICdDbGljayBoZXJlIHRvIGNvcHknIHNob3VsZCA8
c3Ryb25nPm5vdDwvc3Ryb25nPiBiZSBwYXN0ZWQsIGFuZCB0aGUgY2FsbG91dCBiYXIgc2hvdWxk
IGRpc2FwcGVhci4iKTsKIAotY29weS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsICgpID0+IHsK
LSAgICBnZXRTZWxlY3Rpb24oKS5zZWxlY3RBbGxDaGlsZHJlbihjb3B5KTsKLSAgICBkb2N1bWVu
dC5leGVjQ29tbWFuZCgiQ29weSIpOwotICAgIGdldFNlbGVjdGlvbigpLnJlbW92ZUFsbFJhbmdl
cygpOwotfSk7Ci0KIGVkaXRvci5hZGRFdmVudExpc3RlbmVyKCJwYXN0ZSIsIGV2ZW50ID0+IHNo
b3VsZEJlRXF1YWxUb1N0cmluZygiZXZlbnQuY2xpcGJvYXJkRGF0YS5nZXREYXRhKCd0ZXh0L3Bs
YWluJykiLCAiQ2xpY2sgaGVyZSB0byBjb3B5IikpOwogZWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIo
ImNsaWNrIiwgZXZlbnQgPT4gewogICAgIGdldFNlbGVjdGlvbigpLnNldFBvc2l0aW9uKGVkaXRv
cik7CkBAIC01OSwxNCArNTUsMTQgQEAgZWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwg
ZXZlbnQgPT4gewogICAgIGVkaXRvci5ibHVyKCk7CiB9KTsKIAotKGFzeW5jICgpID0+IHsKK2Fk
ZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBhc3luYyAoKSA9PiB7CiAgICAgaWYgKCF3aW5kb3cudGVz
dFJ1bm5lcikKICAgICAgICAgcmV0dXJuOwogCiAgICAgYXdhaXQgVUlIZWxwZXIuYWN0aXZhdGVB
dCgxNjAsIDEyNSk7CiAgICAgYXdhaXQgdHJpZ2dlclBhc3RlTWVudUFmdGVyVGFwQXQoMTYwLCA1
MCwgZmFsc2UpOwogICAgIGZpbmlzaEpTVGVzdCgpOwotfSkoKTsKK30pOwogPC9zY3JpcHQ+CiA8
L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9h
cmQvaW9zL2RvbS1wYXN0ZS1yZXF1aXJlcy11c2VyLWdlc3R1cmUtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2lvcy9kb20tcGFzdGUtcmVxdWlyZXMtdXNlci1n
ZXN0dXJlLWV4cGVjdGVkLnR4dAppbmRleCA2N2FhZWNhMzJhZTI1Zjg2NjJkMTRjOTQwZGY2MTM5
ZjdlZWJlYmVkLi5mMTAwYmE2YzMwZmRhOWE0ZjY4YmEzOTE1NDBlMDVhMWIyNGExNTg1IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvaW9zL2RvbS1wYXN0ZS1yZXF1
aXJlcy11c2VyLWdlc3R1cmUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcv
cGFzdGVib2FyZC9pb3MvZG9tLXBhc3RlLXJlcXVpcmVzLXVzZXItZ2VzdHVyZS1leHBlY3RlZC50
eHQKQEAgLTEsNSArMSw1IEBACiBDbGljayBoZXJlIHRvIGNvcHkKLUNsaWNrIGhlcmUgdG8gY29w
eQorCiBWZXJpZmllcyB0aGF0IG5vIGNhbGxvdXQgaXMgc2hvd24gd2hlbiB0aGUgcGFnZSBwcm9n
cmFtbWF0aWNhbGx5IHRyaWdnZXJzIHBhc3RlIG91dHNpZGUgdGhlIHNjb3BlIG9mIHVzZXIgaW50
ZXJhY3Rpb24uIFRoaXMgdGVzdCByZXF1aXJlcyBXZWJLaXRUZXN0UnVubmVyLgogCiBPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3Rl
Ym9hcmQvaW9zL2RvbS1wYXN0ZS1yZXF1aXJlcy11c2VyLWdlc3R1cmUuaHRtbCBiL0xheW91dFRl
c3RzL2VkaXRpbmcvcGFzdGVib2FyZC9pb3MvZG9tLXBhc3RlLXJlcXVpcmVzLXVzZXItZ2VzdHVy
ZS5odG1sCmluZGV4IDUyMjNmNjNlNzVmYTdhOGY2NWU0NDk5MTkxYmVkYjU2ZDlkZWM4YTIuLmJk
ZjQ4OWJmNGFmODg3YTFkMDljY2I5OGMxM2FkYWM5MGQ0MThhZjMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9pb3MvZG9tLXBhc3RlLXJlcXVpcmVzLXVzZXItZ2Vz
dHVyZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9pb3MvZG9tLXBh
c3RlLXJlcXVpcmVzLXVzZXItZ2VzdHVyZS5odG1sCkBAIC0xMCwxMiArMTAsNyBAQCBib2R5IHsK
ICAgICBtYXJnaW46IDA7CiB9CiAKLSNjb3B5LCAjZWRpdG9yIHsKLSAgICB0ZXh0LWFsaWduOiBj
ZW50ZXI7Ci19Ci0KICNjb3B5IHsKLSAgICBmb250LXNpemU6IDQwcHg7CiAgICAgd2lkdGg6IDEw
MCU7CiAgICAgaGVpZ2h0OiA1MHB4OwogICAgIGJvcmRlcjogMXB4IGRhc2hlZCBibGFjazsKQEAg
LTI1LDM2ICsyMCwzOSBAQCBib2R5IHsKICAgICB3aWR0aDogMTAwJTsKICAgICBoZWlnaHQ6IDEw
MHB4OwogICAgIGJvcmRlcjogMXB4IGRhc2hlZCBzaWx2ZXI7CisgICAgdGV4dC1hbGlnbjogY2Vu
dGVyOwogfQogPC9zdHlsZT4KIDwvaGVhZD4KIDxib2R5PgogPGRpdiBpZD0iZWRpdG9yIiBjb250
ZW50ZWRpdGFibGU+PC9kaXY+Ci08ZGl2IGlkPSJjb3B5Ij5DbGljayBoZXJlIHRvIGNvcHk8L2Rp
dj4KKzxpZnJhbWUgaWQ9ImNvcHkiIHNyYz0iZGF0YTp0ZXh0L2h0bWwsPGRpdiBpZD0nY29weScg
c3R5bGU9J2ZvbnQtc2l6ZTogNDBweDsgdGV4dC1hbGlnbjogY2VudGVyOyc+Q2xpY2sgaGVyZSB0
byBjb3B5PC9kaXY+CisgICAgPHNjcmlwdD4KKyAgICBjb3B5LmFkZEV2ZW50TGlzdGVuZXIoJ2Ns
aWNrJywgKCkgPT4geworICAgICAgICBnZXRTZWxlY3Rpb24oKS5zZWxlY3RBbGxDaGlsZHJlbihj
b3B5KTsKKyAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ0NvcHknKTsKKyAgICAgICAgZ2V0
U2VsZWN0aW9uKCkucmVtb3ZlQWxsUmFuZ2VzKCk7CisgICAgfSk7CisgICAgPC9zY3JpcHQ+Ij48
L2lmcmFtZT4KIDxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KIDxkaXYgaWQ9ImNvbnNvbGUi
PjwvZGl2PgogPHNjcmlwdD4KIGpzVGVzdElzQXN5bmMgPSB0cnVlOwogCi1jb25zdCBjb3B5ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvcHkiKTsKIGNvbnN0IGVkaXRvciA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJlZGl0b3IiKTsKIAogZGVzY3JpcHRpb24oIlZlcmlmaWVzIHRoYXQg
bm8gY2FsbG91dCBpcyBzaG93biB3aGVuIHRoZSBwYWdlIHByb2dyYW1tYXRpY2FsbHkgdHJpZ2dl
cnMgcGFzdGUgb3V0c2lkZSB0aGUgc2NvcGUgb2YgdXNlciBpbnRlcmFjdGlvbi4gVGhpcyB0ZXN0
IHJlcXVpcmVzIFdlYktpdFRlc3RSdW5uZXIuIik7CiAKLWNvcHkuYWRkRXZlbnRMaXN0ZW5lcigi
Y2xpY2siLCAoKSA9PiB7Ci0gICAgZ2V0U2VsZWN0aW9uKCkuc2VsZWN0QWxsQ2hpbGRyZW4oY29w
eSk7Ci0gICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoIkNvcHkiKTsKLSAgICBnZXRTZWxlY3Rpb24o
KS5yZW1vdmVBbGxSYW5nZXMoKTsKLX0pOwotCi1VSUhlbHBlci5hY3RpdmF0ZUF0KDE2MCwgMTI1
KS50aGVuKCgpID0+IHsKLSAgICBlZGl0b3IuZm9jdXMoKTsKLSAgICB3YWl0Rm9yUGFzdGVNZW51
KCkudGhlbihmaW5pc2hKU1Rlc3QpOworYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGFzeW5jICgp
ID0+IHsKKyAgICBVSUhlbHBlci5hY3RpdmF0ZUF0KDE2MCwgMTI1KS50aGVuKCgpID0+IHsKKyAg
ICAgICAgZWRpdG9yLmZvY3VzKCk7CisgICAgICAgIHdhaXRGb3JQYXN0ZU1lbnUoKS50aGVuKGZp
bmlzaEpTVGVzdCk7CiAKLSAgICBVSUhlbHBlci5lbnN1cmVQcmVzZW50YXRpb25VcGRhdGUoKS50
aGVuKCgpID0+IHsKLSAgICAgICAgaW50ZXJuYWxzLndpdGhVc2VyR2VzdHVyZSgoKSA9PiBzaG91
bGRCZSgiZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ1Bhc3RlJykiLCAidHJ1ZSIpKTsKLSAgICAgICAg
c2hvdWxkQmUoImRvY3VtZW50LmV4ZWNDb21tYW5kKCdQYXN0ZScpIiwgImZhbHNlIik7Ci0gICAg
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZWRpdG9yLnRleHRDb250ZW50IiwgIkNsaWNrIGhl
cmUgdG8gY29weSIpOworICAgICAgICBVSUhlbHBlci5lbnN1cmVQcmVzZW50YXRpb25VcGRhdGUo
KS50aGVuKCgpID0+IHsKKyAgICAgICAgICAgIGludGVybmFscy53aXRoVXNlckdlc3R1cmUoKCkg
PT4gc2hvdWxkQmUoImRvY3VtZW50LmV4ZWNDb21tYW5kKCdQYXN0ZScpIiwgInRydWUiKSk7Cisg
ICAgICAgICAgICBzaG91bGRCZSgiZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ1Bhc3RlJykiLCAiZmFs
c2UiKTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZWRpdG9yLnRleHRDb250
ZW50IiwgIkNsaWNrIGhlcmUgdG8gY29weSIpOworICAgICAgICB9KTsKICAgICB9KTsKIH0pOwog
PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvaW9z
L2RvbS1wYXN0ZS1zYW1lLW9yaWdpbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0aW5n
L3Bhc3RlYm9hcmQvaW9zL2RvbS1wYXN0ZS1zYW1lLW9yaWdpbi1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNmFhYjE3YjNlZGE1NzY1NDY4NzdhYzViNzM0Yjg3NGYyOTc0N2RjNwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9pb3MvZG9tLXBhc3RlLXNh
bWUtb3JpZ2luLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE4IEBACitDbGljayBoZXJlIHRvIGNv
cHkKK0NsaWNrIGhlcmUgdG8gY29weQorQ2xpY2sgaGVyZSB0byBjb3B5CitWZXJpZmllcyB0aGF0
IHByb2dyYW1tYXRpYyBwYXN0ZSBpcyBhbGxvd2VkIHdoZW4gY29waWVkIGRhdGEgaXMgZnJvbSB0
aGUgc2FtZSBvcmlnaW4uIFRvIG1hbnVhbGx5IHRlc3QsIHRhcCB0aGUgdGV4dCBvbiB0aGUgYm90
dG9tIHRvIHByb2dyYW1tYXRpY2FsbHkgY29weSwgYW5kIHRoZW4gdGFwIHRoZSBlZGl0YWJsZSBh
cmVhIGFuZCBjaGVjayB0aGF0IHRoZSB0ZXh0IGlzIHBhc3RlZCB0d2ljZS4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCitQQVNTIGRvY3VtZW50LnF1ZXJ5Q29tbWFuZFN1cHBvcnRlZCgn
UGFzdGUnKSBpcyB0cnVlCitQQVNTIGRvY3VtZW50LnF1ZXJ5Q29tbWFuZEVuYWJsZWQoJ1Bhc3Rl
JykgaXMgdHJ1ZQorUEFTUyBldmVudC5jbGlwYm9hcmREYXRhLmdldERhdGEoJ3RleHQvcGxhaW4n
KSBpcyAiQ2xpY2sgaGVyZSB0byBjb3B5IgorUEFTUyBkb2N1bWVudC5leGVjQ29tbWFuZCgnUGFz
dGUnKSBpcyB0cnVlCitQQVNTIGV2ZW50LmNsaXBib2FyZERhdGEuZ2V0RGF0YSgndGV4dC9wbGFp
bicpIGlzICJDbGljayBoZXJlIHRvIGNvcHkiCitQQVNTIGRvY3VtZW50LmV4ZWNDb21tYW5kKCdQ
YXN0ZScpIGlzIHRydWUKK1BBU1MgZWRpdG9yLnRleHRDb250ZW50IGlzICJDbGljayBoZXJlIHRv
IGNvcHlDbGljayBoZXJlIHRvIGNvcHkiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0
ZWJvYXJkL2lvcy9kb20tcGFzdGUtc2FtZS1vcmlnaW4uaHRtbCBiL0xheW91dFRlc3RzL2VkaXRp
bmcvcGFzdGVib2FyZC9pb3MvZG9tLXBhc3RlLXNhbWUtb3JpZ2luLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZTk2YTIzOTMyMDM2NGQ3YjI1MDE0YmRjODkyZjY3ZTgyYjU5NzFlZgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9pb3MvZG9tLXBhc3RlLXNhbWUtb3Jp
Z2luLmh0bWwKQEAgLTAsMCArMSw3MSBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRl
c3QtcnVubmVyIFsgZG9tUGFzdGVBbGxvd2VkPWZhbHNlIHVzZUZsZXhpYmxlVmlld3BvcnQ9dHJ1
ZSBdIC0tPgorPGh0bWw+Cis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2
aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorYm9keSB7CisgICAg
bWFyZ2luOiAwOworfQorCisjY29weSwgI2VkaXRvciB7CisgICAgd2lkdGg6IDEwMCU7CisgICAg
dGV4dC1hbGlnbjogY2VudGVyOworfQorCisjY29weSB7CisgICAgaGVpZ2h0OiA1MHB4OworICAg
IGJvcmRlcjogMXB4IGRhc2hlZCBibGFjazsKKyAgICBmb250LXNpemU6IDQwcHg7Cit9CisKKyNl
ZGl0b3IgeworICAgIGhlaWdodDogMTAwcHg7CisgICAgYm9yZGVyOiAxcHggZGFzaGVkIHNpbHZl
cjsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImVkaXRvciIgY29udGVu
dGVkaXRhYmxlPjwvZGl2PgorPGRpdiBpZD0nY29weScgc3R5bGU9Jyc+Q2xpY2sgaGVyZSB0byBj
b3B5PC9kaXY+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KKzxzY3JpcHQ+Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworY29uc3QgY29weSA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb3B5Iik7Citjb25zdCBlZGl0b3IgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiZWRpdG9yIik7CisKK2Rlc2NyaXB0aW9uKCJWZXJpZmllcyB0aGF0
IHByb2dyYW1tYXRpYyBwYXN0ZSBpcyBhbGxvd2VkIHdoZW4gY29waWVkIGRhdGEgaXMgZnJvbSB0
aGUgc2FtZSBvcmlnaW4uIFRvIG1hbnVhbGx5IHRlc3QsIHRhcCB0aGUgdGV4dCBvbiB0aGUgYm90
dG9tIHRvIHByb2dyYW1tYXRpY2FsbHkgY29weSwgYW5kIHRoZW4gdGFwIHRoZSBlZGl0YWJsZSBh
cmVhIGFuZCBjaGVjayB0aGF0IHRoZSB0ZXh0IGlzIHBhc3RlZCA8ZW0+dHdpY2U8L2VtPi4iKTsK
KworY29weS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHsKKyAgICBnZXRTZWxlY3Rp
b24oKS5zZWxlY3RBbGxDaGlsZHJlbihjb3B5KTsKKyAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgn
Q29weScpOworICAgIGdldFNlbGVjdGlvbigpLnJlbW92ZUFsbFJhbmdlcygpOworfSk7CisKK2Vk
aXRvci5hZGRFdmVudExpc3RlbmVyKCJwYXN0ZSIsIGV2ZW50ID0+IHNob3VsZEJlRXF1YWxUb1N0
cmluZygiZXZlbnQuY2xpcGJvYXJkRGF0YS5nZXREYXRhKCd0ZXh0L3BsYWluJykiLCAiQ2xpY2sg
aGVyZSB0byBjb3B5IikpOworZWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZXZlbnQg
PT4geworICAgIGdldFNlbGVjdGlvbigpLnNldFBvc2l0aW9uKGVkaXRvcik7CisgICAgc2hvdWxk
QmUoImRvY3VtZW50LnF1ZXJ5Q29tbWFuZFN1cHBvcnRlZCgnUGFzdGUnKSIsICJ0cnVlIik7Cisg
ICAgc2hvdWxkQmUoImRvY3VtZW50LnF1ZXJ5Q29tbWFuZEVuYWJsZWQoJ1Bhc3RlJykiLCAidHJ1
ZSIpOworICAgIHNob3VsZEJlKCJkb2N1bWVudC5leGVjQ29tbWFuZCgnUGFzdGUnKSIsICJ0cnVl
Iik7CisgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ0luc2VydFBhcmFncmFwaCcpOworICAgIHNo
b3VsZEJlKCJkb2N1bWVudC5leGVjQ29tbWFuZCgnUGFzdGUnKSIsICJ0cnVlIik7CisgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJlZGl0b3IudGV4dENvbnRlbnQiLCAiQ2xpY2sgaGVyZSB0byBj
b3B5Q2xpY2sgaGVyZSB0byBjb3B5Iik7CisgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKKyAg
ICBlZGl0b3IuYmx1cigpOworICAgIGZpbmlzaEpTVGVzdCgpOworfSk7CisKK2FkZEV2ZW50TGlz
dGVuZXIoImxvYWQiLCBhc3luYyAoKSA9PiB7CisgICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lcikK
KyAgICAgICAgcmV0dXJuOworCisgICAgYXdhaXQgVUlIZWxwZXIuYWN0aXZhdGVBdCgxNjAsIDEy
NSk7CisgICAgYXdhaXQgVUlIZWxwZXIuYWN0aXZhdGVBdCgxNjAsIDUwKTsKK30pOworPC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363396</attachid>
            <date>2019-03-01 18:39:43 -0800</date>
            <delta_ts>2019-03-02 13:50:50 -0800</delta_ts>
            <desc>Fix WPE build</desc>
            <filename>bug-195053-20190301183942.patch</filename>
            <type>text/plain</type>
            <size>68566</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyMjc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGY2ZTc0NmRkYTI0MDMy
NWU5OTY5ZDBhYjJjM2EwNThiMTU2MzM4NS4uMzk4NjVmYWY3NGRlNjIyNmRhNTA1ZTczOWMwYzdm
NmY2MjVmNzBmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE5LTAzLTAxICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIFByb2dy
YW1tYXRpYyBwYXN0ZSBhY2Nlc3Mgc2hvdWxkIGJlIGdyYW50ZWQgd2hlbiBjb3B5aW5nIGFuZCBw
YXN0aW5nIHdpdGhpbiB0aGUgc2FtZSBvcmlnaW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTA1MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDgx
MzQ3MTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgorCisgICAgICAgIFBs
dW1iIHRoZSBkb2N1bWVudCBwYXN0ZWJvYXJkIGlkZW50aWZpZXIgdGhyb3VnaCB0aGUgY2xpZW50
IHdoZW4gbWFraW5nIGEgRE9NIHBhc3RlIGFjY2VzcyByZXF1ZXN0LiBTZWUgV2ViS2l0CisgICAg
ICAgIENoYW5nZUxvZyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAgIFRlc3Q6IGVkaXRpbmcv
cGFzdGVib2FyZC9pb3MvZG9tLXBhc3RlLXNhbWUtb3JpZ2luLmh0bWwKKworICAgICAgICAqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vRE9NUGFzdGVB
Y2Nlc3MuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2RvbS9ET01QYXN0ZUFjY2Vzc1Bv
bGljeS5oLgorCisgICAgICAgIEludHJvZHVjZSBET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlLCB3aGlj
aCBpcyBlaXRoZXIgRGVuaWVkRm9yR2VzdHVyZSwgR3JhbnRlZEZvckNvbW1hbmQsIG9yIEdyYW50
ZWRGb3JHZXN0dXJlLiBJbgorICAgICAgICBwYXJ0aWN1bGFyLCB3aGVuIHBhc3RlYm9hcmQgaWRl
bnRpZmllcnMgbWF0Y2gsIHdlIG9ubHkgZ3JhbnQgYWNjZXNzIGZvciB0aGUgY3VycmVudCBwYXN0
ZSBjb21tYW5kLCByYXRoZXIgdGhhbgorICAgICAgICB0aHJvdWdob3V0IHRoZSB1c2VyIGdlc3R1
cmUuCisKKyAgICAgICAgKiBkb20vVXNlckdlc3R1cmVJbmRpY2F0b3IuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlVzZXJHZXN0dXJlVG9rZW46OmRpZFJlcXVlc3RET01QYXN0ZUFjY2Vzcyk6CisgICAg
ICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHA6CisgICAgICAgICogcGFnZS9FZGl0b3JDbGll
bnQuaDoKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
OjpyZXF1ZXN0RE9NUGFzdGVBY2Nlc3MpOgorCiAyMDE5LTAzLTAxICBaYWxhbiBCdWp0YXMgIDx6
YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0NvbnRlbnRDaGFuZ2VPYnNlcnZlcl0gUmVuYW1l
IG1lbWJlcnMgYW5kIG1vdmUgaW1wbGVtZW50YXRpb24gdG8gaGVhZGVyLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA4
MThjNjEwMzc3YjRmNzE2MTYwYmNmY2QxMzc3Y2I0ZWJhOTk3MjM5Li5kZmQwZGY3M2U2YTM4ZWU3
NGM4MGFhMmI3ZGYzMzVkNWVhMzRhODExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDE5
LTAzLTAxICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAg
IFtpT1NdIFByb2dyYW1tYXRpYyBwYXN0ZSBhY2Nlc3Mgc2hvdWxkIGJlIGdyYW50ZWQgd2hlbiBj
b3B5aW5nIGFuZCBwYXN0aW5nIHdpdGhpbiB0aGUgc2FtZSBvcmlnaW4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTA1MworICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNDgxMzQ3MTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgor
CisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBhdXRvbWF0aWNhbGx5IGdyYW50aW5nIHByb2dyYW1t
YXRpYyBwYXN0ZWJvYXJkIGFjY2VzcyB3aGVuIHRoZSBwYXN0ZWJvYXJkIGlkZW50aWZpZXIgb2Yg
dGhlCisgICAgICAgIGRvY3VtZW50IHJlcXVlc3RpbmcgcHJvZ3JhbW1hdGljIHBhc3RlIG1hdGNo
ZXMgdGhlIGlkZW50aWZpZXIgaW4gdGhlIGN1c3RvbSBwYXN0ZWJvYXJkIGRhdGEgYmxvYiBpbiB0
aGUKKyAgICAgICAgVUlQYXN0ZWJvYXJkLiBUbyBkbyB0aGlzLCB3ZSBzZW5kIHRoZSBwYXN0ZWJv
YXJkIGlkZW50aWZpZXIgb2YgdGhlIGRvY3VtZW50IHJlcXVlc3RpbmcgdGhlIERPTSBwYXN0ZSB0
byB0aGUgVUkKKyAgICAgICAgcHJvY2VzcywgYW5kIGNoZWNrIHRoaXMgYWdhaW5zdCB0aGUgcGFz
dGVib2FyZCBpZGVudGlmaWVycyBmb3IgZWFjaCBpdGVtIG9uIHRoZSBwbGF0Zm9ybSBwYXN0ZWJv
YXJkLiBJZiBhbGwKKyAgICAgICAgaXRlbXMgaW4gdGhlIHBsYXRmb3JtIHBhc3RlYm9hcmQgbWF0
Y2ggdGhlIGdpdmVuIHBhc3RlYm9hcmQgaWRlbnRpZmllciAoc2luY2Ugd2UgZG9uJ3Qgc3VwcG9y
dCB3cml0aW5nIG11bHRpcGxlCisgICAgICAgIHBhc3RlYm9hcmQgaXRlbXMgdmlhIGJpbmRpbmdz
LCB0aGlzIHNob3VsZCBvbmx5IGJlIGEgc2luZ2xlIGl0ZW0pLCB3ZSBza2lwIHNob3dpbmcgdGhl
IHBhc3RlIGNhbGxvdXQgYW5kCisgICAgICAgIGltbWVkaWF0ZWx5IGludm9rZSB0aGUgcHJvZ3Jh
bW1hdGljIHBhc3RlIGhhbmRsZXIuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNzYWdl
cy5weToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0RE9NUGFzdGVBY2Nlc3MpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpQ
YWdlQ2xpZW50SW1wbDo6cmVxdWVzdERPTVBhc3RlQWNjZXNzKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9QYWdlQ2xp
ZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVzdERPTVBhc3RlQWNjZXNzKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5tZXNzYWdlcy5pbjoKKworICAgICAgICBBZGQgcGx1bWJpbmcgdG8gZGVsaXZlciB0aGUgcGFz
dGVib2FyZCBpZGVudGlmaWVyIHRvIHRoZSBjbGllbnQgd2hlbiByZXF1ZXN0aW5nIERPTSBwYXN0
ZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tOgorICAgICAgICAoV2ViS2l0
OjpQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdERPTVBhc3RlQWNjZXNzKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRW
aWV3IGNsZWFudXBJbnRlcmFjdGlvbl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHJlc2ln
bkZpcnN0UmVzcG9uZGVyRm9yV2ViVmlld10pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF93
ZWJUb3VjaEV2ZW50c1JlY29nbml6ZWQ6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX3dp
bGxIaWRlTWVudTpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBwYXN0ZUZvcldlYlZpZXc6
XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2hhbmRsZURPTVBhc3RlUmVxdWVzdFdpdGhS
ZXN1bHQ6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX3dpbGxQZXJmb3JtQWN0aW9uOnNl
bmRlcjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfZGlkUGVyZm9ybUFjdGlvbjpzZW5k
ZXI6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgaGFuZGxlS2V5V2ViRXZlbnQ6d2l0aENv
bXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAoYWxsUGFzdGVib2FyZEl0ZW1PcmlnaW5zTWF0
Y2hPcmlnaW4pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9yZXF1ZXN0RE9NUGFzdGVBY2Nl
c3NXaXRoRWxlbWVudFJlY3Q6b3JpZ2luSWRlbnRpZmllcjpjb21wbGV0aW9uSGFuZGxlcjpdKToK
KyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfcmVxdWVzdERPTVBhc3RlQWNjZXNzV2l0aEVsZW1l
bnRSZWN0OmNvbXBsZXRpb25IYW5kbGVyOl0pOiBEZWxldGVkLgorCisgICAgICAgIEJhaWwgZWFy
bHkgaW4gdGhlIGNhc2Ugd2hlcmUgYWxsIGl0ZW1zJyBwYXN0ZWJvYXJkIGlkZW50aWZpZXJzIChy
ZWFkIHZpYSBjdXN0b20gcGFzdGVib2FyZCBkYXRhKSBtYXRjaC4gV2hlbgorICAgICAgICB0aGlz
IGhhcHBlbnMsIHdlIG9ubHkgZ3JhbnQgYWNjZXNzIGZvciB0aGUgY3VycmVudCBwYXN0ZSBjb21t
YW5kLCByYXRoZXIgdGhhbiBncmFudGluZyBhY2Nlc3MgZm9yIHRoZSB1c2VyCisgICAgICAgIGdl
c3R1cmUgdG9rZW4uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFj
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL3dpbi9QYWdlQ2xpZW50SW1wbC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0RE9NUGFzdGVBY2Nlc3MpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy93aW4vUGFnZUNsaWVudEltcGwuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YkVkaXRvckNsaWVudDo6cmVxdWVzdERPTVBhc3RlQWNjZXNzKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cmVxdWVz
dERPTVBhc3RlQWNjZXNzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
OgorCiAyMDE5LTAzLTAxICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNv
bT4KIAogICAgICAgICBbVGhyZWFkZWRDb21wb3NpdG9yXSBTaW1wbHkgdGhlIGNvbXBvc2l0aW5n
IHJ1biBsb29wIHdvcmtlciB0aHJlYWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCAy
ZDU0YmFiNzc5NzMyYThkYzhiODYxZGYwNjhhN2YzNDZjODg3OGEzLi4xOTVmNTZmNDFhOWIwOGVl
MTFmN2ExMzg0ODZkYWM2NDRkNTY3MjVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTMgQEAKKzIwMTktMDMtMDEgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBh
cHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gUHJvZ3JhbW1hdGljIHBhc3RlIGFjY2VzcyBzaG91
bGQgYmUgZ3JhbnRlZCB3aGVuIGNvcHlpbmcgYW5kIHBhc3Rpbmcgd2l0aGluIHRoZSBzYW1lIG9y
aWdpbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1
MDUzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80ODEzNDcxMD4KKworICAgICAgICBSZXZpZXdl
ZCBieSBSeW9zdWtlIE5pd2EuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JD
bGllbnQuaDoKKwogMjAxOS0wMy0wMSAgSnVzdGluIEZhbiAgPGp1c3Rpbl9mYW5AYXBwbGUuY29t
PgogCiAgICAgICAgIFtXZWIgR1BVXSAzMi1iaXQgYnVpbGRzIGJyb2tlbiBieSBhdHRlbXB0IHRv
IGRpc2FibGUgV2ViR1BVIG9uIDMyLWJpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCmluZGV4
IGQ0YTc4MWNiM2I2YTYwYWZiNjU4MjhiZTc3NmJkNmJkZTczZmEwOGIuLjM1OWNjMTUxZDM5YzA1
YzgyNjYwMjU4YTcxOWRjN2Y2Yzk4NmE0MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxMyBAQAorMjAxOS0wMy0wMSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVo
QGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBQcm9ncmFtbWF0aWMgcGFzdGUgYWNjZXNzIHNo
b3VsZCBiZSBncmFudGVkIHdoZW4gY29weWluZyBhbmQgcGFzdGluZyB3aXRoaW4gdGhlIHNhbWUg
b3JpZ2luCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTUwNTMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ4MTM0NzEwPgorCisgICAgICAgIFJldmll
d2VkIGJ5IFJ5b3N1a2UgTml3YS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRv
ckNsaWVudC5oOgorCiAyMDE5LTAyLTI3ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBw
bGUuY29tPgogCiAgICAgICAgIFJvbGwgb3V0IHIyNDIwMTQ7IGl0IGNhdXNlZCBjcmFzaGVzIGlu
IGNvbXBvc2l0aW5nIGxvZ2dpbmcgKHdlYmtpdC5vcmcvYi8xOTUxNDEpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMjQ0MTk1OTc3
OWJjMDcwZmE0ZTM0NDFlMzhjYzVmYjUxNzM5ZGIzNi4uNGMwM2NmMDgzYmJkY2M0Y2FlY2FhZmMz
M2QyYTBjNGQ0NmQxOWExZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDk1MCw3ICs0OTUwLDcgQEAKIAkJRjQ4RDJBN0UyMTU3
MTgyNjAwQzY3NTJCIC8qIEZvbnRBdHRyaWJ1dGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDhEMkE3MTIxNTZEQzBBMDBDNjc1MkIgLyogRm9udEF0
dHJpYnV0ZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlGNDhEMkFBNTIxNTk3NDBEMDBDNjc1MkIgLyogQ29sb3JDb2NvYS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ4RDJBQTMyMTU5NzQwRDAwQzY3
NTJCIC8qIENvbG9yQ29jb2EuaCAqLzsgfTsKIAkJRjQ5Nzg2ODgxRkY0NUZBNTAwRTA2MEFCIC8q
IFBhc3RlYm9hcmRJdGVtSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjQ5Nzg2ODcxRkY0NUZBNTAwRTA2MEFCIC8qIFBhc3RlYm9hcmRJdGVtSW5m
by5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUY0
QjQyMkM0MjIwQzA1NjgwMDlFMUU3RCAvKiBET01QYXN0ZUFjY2Vzc1BvbGljeS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRCNDIyQzIyMjBDMDAwMDAw
OUUxRTdEIC8qIERPTVBhc3RlQWNjZXNzUG9saWN5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRjRCNDIyQzQyMjBDMDU2ODAwOUUxRTdEIC8qIERP
TVBhc3RlQWNjZXNzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNEI0MjJDMjIyMEMwMDAwMDA5RTFFN0QgLyogRE9NUGFzdGVBY2Nlc3MuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGNEJGQjk4NTFFMURE
RjlCMDA4NjJDMjQgLyogRHVtcEVkaXRpbmdIaXN0b3J5LmpzIGluIENvcHkgU2NyaXB0cyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDgzODk4MzFFMURERjJCMDA3NkI3RUEg
LyogRHVtcEVkaXRpbmdIaXN0b3J5LmpzICovOyB9OwogCQlGNEJGQjk4NjFFMURERjlCMDA4NjJD
MjQgLyogRWRpdGluZ0hpc3RvcnlVdGlsLmpzIGluIENvcHkgU2NyaXB0cyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDgzODk4NDFFMURERjJCMDA3NkI3RUEgLyogRWRpdGlu
Z0hpc3RvcnlVdGlsLmpzICovOyB9OwogCQlGNEQ0M0Q2NjIxODgwMzhCMDBFQ0VDQUMgLyogU2Vy
aWFsaXplZEF0dGFjaG1lbnREYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNEQ0M0Q2NDIxODgwMkU2MDBFQ0VDQUMgLyogU2VyaWFsaXplZEF0dGFj
aG1lbnREYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKQEAgLTE1MTgzLDcgKzE1MTgzLDcgQEAKIAkJRjQ4RDJBQTQyMTU5NzQwRDAwQzY3NTJCIC8q
IENvbG9yQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDb2xvckNvY29hLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDk3ODY4NzFGRjQ1RkE1MDBFMDYwQUIgLyogUGFz
dGVib2FyZEl0ZW1JbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhc3RlYm9hcmRJdGVtSW5mby5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDlFOThFNDIxREVFNkMxMDA5QUU1NUUgLyog
RWRpdEFjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFZGl0QWN0aW9uLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRjRCNDIyQzIyMjBDMDAwMDAwOUUxRTdEIC8qIERPTVBh
c3RlQWNjZXNzUG9saWN5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVBhc3RlQWNjZXNzUG9saWN5Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0QjQyMkMyMjIwQzAwMDAwMDlFMUU3RCAv
KiBET01QYXN0ZUFjY2Vzcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01QYXN0ZUFjY2Vzcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEQ0M0Q2NDIxODgwMkU2MDBFQ0VDQUMgLyogU2Vy
aWFsaXplZEF0dGFjaG1lbnREYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlcmlhbGl6ZWRBdHRhY2ht
ZW50RGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEQ5ODE3RDIxOTVGQkY2
MDA4MjMwRkMgLyogQ2hhbmdlTGlzdFR5cGVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENoYW5n
ZUxpc3RUeXBlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEQ5ODE3
RTIxOTVGQkY2MDA4MjMwRkMgLyogQ2hhbmdlTGlzdFR5cGVDb21tYW5kLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IENoYW5nZUxpc3RUeXBlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0yNzUwMyw3ICsyNzUwMyw3IEBACiAJCQkJQTgxODVGMzYwOTc2NTc2NTAwNTgy
NkQ5IC8qIERPTUltcGxlbWVudGF0aW9uLmNwcCAqLywKIAkJCQlBODE4NUYzMzA5NzY1NzY1MDA1
ODI2RDkgLyogRE9NSW1wbGVtZW50YXRpb24uaCAqLywKIAkJCQk5M0VFQzFFOTA5QzI4Nzc3MDBD
NTE1RDEgLyogRE9NSW1wbGVtZW50YXRpb24uaWRsICovLAotCQkJCUY0QjQyMkMyMjIwQzAwMDAw
MDlFMUU3RCAvKiBET01QYXN0ZUFjY2Vzc1BvbGljeS5oICovLAorCQkJCUY0QjQyMkMyMjIwQzAw
MDAwMDlFMUU3RCAvKiBET01QYXN0ZUFjY2Vzcy5oICovLAogCQkJCTBGNDk2Njk5MURCNDA4QzEw
MEEyNzRCQiAvKiBET01Qb2ludC5oICovLAogCQkJCTBGNDk2NjlBMURCNDA4QzEwMEEyNzRCQiAv
KiBET01Qb2ludC5pZGwgKi8sCiAJCQkJMEY0OTY2QTIxREI0MDkxMDAwQTI3NEJCIC8qIERPTVBv
aW50SW5pdC5oICovLApAQCAtMjkwNzksNyArMjkwNzksNyBAQAogCQkJCUE5QzZFNEU0MEQ3NDVF
MDUwMDY0NDJFOSAvKiBET01NaW1lVHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTlDNkU0RTgw
RDc0NUUxODAwNjQ0MkU5IC8qIERPTU1pbWVUeXBlQXJyYXkuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTFBQ0U1M0U4MEE4RDE4RTcwMDIyOTQ3RCAvKiBET01QYXJzZXIuaCBpbiBIZWFkZXJzICovLAot
CQkJCUY0QjQyMkM0MjIwQzA1NjgwMDlFMUU3RCAvKiBET01QYXN0ZUFjY2Vzc1BvbGljeS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJRjRCNDIyQzQyMjBDMDU2ODAwOUUxRTdEIC8qIERPTVBhc3RlQWNj
ZXNzLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QTU0ODgxNzE0RTQzMkExMDA2QUUwNUEgLyogRE9N
UGF0Y2hTdXBwb3J0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBOUM2RTRFQzBENzQ1RTJCMDA2NDQy
RTkgLyogRE9NUGx1Z2luLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOUM2RTRGMDBENzQ1RTM4MDA2
NDQyRTkgLyogRE9NUGx1Z2luQXJyYXkuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0RPTVBhc3RlQWNjZXNzLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9N
UGFzdGVBY2Nlc3MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YmZjMTY3YjI0ZTM1ZjA3YjQwYmNiZjc3M2I4MzMy
Yjc3NGM5YTBkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTVBhc3Rl
QWNjZXNzLmgKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNs
YXNzIERPTVBhc3RlQWNjZXNzUG9saWN5IDogdWludDhfdCB7CisgICAgTm90UmVxdWVzdGVkWWV0
LAorICAgIERlbmllZCwKKyAgICBHcmFudGVkCit9OworCitlbnVtIGNsYXNzIERPTVBhc3RlQWNj
ZXNzUmVzcG9uc2UgOiB1aW50OF90IHsKKyAgICBEZW5pZWRGb3JHZXN0dXJlLAorICAgIEdyYW50
ZWRGb3JDb21tYW5kLAorICAgIEdyYW50ZWRGb3JHZXN0dXJlCit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJh
aXRzPFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2U+IHsKKyAgICB1c2luZyB2YWx1ZXMg
PSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlLAor
ICAgICAgICBXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlOjpEZW5pZWRGb3JHZXN0dXJl
LAorICAgICAgICBXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlOjpHcmFudGVkRm9yQ29t
bWFuZCwKKyAgICAgICAgV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZTo6R3JhbnRlZEZv
ckdlc3R1cmUKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRE9NUGFzdGVBY2Nlc3NQb2xpY3kuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9ET01QYXN0ZUFjY2Vzc1BvbGljeS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA4MDAxOGI5MjFjYTI3ZGQ3NmMyY2E5MjkzY2IwMDQzMmJiNTgyNDYzLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01Q
YXN0ZUFjY2Vzc1BvbGljeS5oCisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
Ci0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNwcmFnbWEgb25jZQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWVudW0gY2xhc3Mg
RE9NUGFzdGVBY2Nlc3NQb2xpY3kgOiB1aW50OF90IHsKLSAgICBOb3RSZXF1ZXN0ZWRZZXQsCi0g
ICAgRGVuaWVkLAotICAgIEdyYW50ZWQKLX07Ci0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Vc2VyR2VzdHVyZUluZGljYXRvci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1VzZXJH
ZXN0dXJlSW5kaWNhdG9yLmgKaW5kZXggZGRjYmRkNjQ5MDA2Njg3NWRlNThkZDQwMDZiNTc1MzRj
NjNlMzA4OS4uMTVlYmVkZjQzNjVjN2FiOTc3OTE5NDU2MjMyZjQyOGQzN2M5NDFjNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1VzZXJHZXN0dXJlSW5kaWNhdG9yLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL1VzZXJHZXN0dXJlSW5kaWNhdG9yLmgKQEAgLTI1LDcgKzI1LDcgQEAK
IAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJET01QYXN0ZUFjY2Vzc1BvbGljeS5oIgorI2lu
Y2x1ZGUgIkRPTVBhc3RlQWNjZXNzLmgiCiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAjaW5j
bHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CkBAIC02
NSw3ICs2NSwxOSBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgRE9NUGFzdGVBY2Nlc3NQb2xpY3kg
ZG9tUGFzdGVBY2Nlc3NQb2xpY3koKSBjb25zdCB7IHJldHVybiBtX2RvbVBhc3RlQWNjZXNzUG9s
aWN5OyB9Ci0gICAgdm9pZCBkaWRSZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoYm9vbCBncmFudGVkKSB7
IG1fZG9tUGFzdGVBY2Nlc3NQb2xpY3kgPSBncmFudGVkID8gRE9NUGFzdGVBY2Nlc3NQb2xpY3k6
OkdyYW50ZWQgOiBET01QYXN0ZUFjY2Vzc1BvbGljeTo6RGVuaWVkOyB9CisgICAgdm9pZCBkaWRS
ZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoRE9NUGFzdGVBY2Nlc3NSZXNwb25zZSByZXNwb25zZSkKKyAg
ICB7CisgICAgICAgIHN3aXRjaCAocmVzcG9uc2UpIHsKKyAgICAgICAgY2FzZSBET01QYXN0ZUFj
Y2Vzc1Jlc3BvbnNlOjpEZW5pZWRGb3JHZXN0dXJlOgorICAgICAgICAgICAgbV9kb21QYXN0ZUFj
Y2Vzc1BvbGljeSA9IERPTVBhc3RlQWNjZXNzUG9saWN5OjpEZW5pZWQ7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSBET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlOjpHcmFudGVkRm9yQ29t
bWFuZDoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIERPTVBhc3RlQWNjZXNzUmVz
cG9uc2U6OkdyYW50ZWRGb3JHZXN0dXJlOgorICAgICAgICAgICAgbV9kb21QYXN0ZUFjY2Vzc1Bv
bGljeSA9IERPTVBhc3RlQWNjZXNzUG9saWN5OjpHcmFudGVkOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIH0KKyAgICB9CiAgICAgdm9pZCByZXNldERPTVBhc3RlQWNjZXNzKCkgeyBtX2Rv
bVBhc3RlQWNjZXNzUG9saWN5ID0gRE9NUGFzdGVBY2Nlc3NQb2xpY3k6Ok5vdFJlcXVlc3RlZFll
dDsgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5
Q2xpZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAppbmRl
eCBhNDNhMWJiMzZiZjhiZThmNDIzNTFmZGZhNzA5OGY1Y2FjZmJmNDlhLi4zZWI2NzZlYWEzZDA0
MGUyMjI2MmUwNWJhMzVmMWJiMjFjZmY3ZjkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRW1wdHlDbGllbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlD
bGllbnRzLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkNvbG9yQ2hvb3Nlci5oIgog
I2luY2x1ZGUgIkNvbnRleHRNZW51Q2xpZW50LmgiCiAjaW5jbHVkZSAiQ29va2llSmFyLmgiCisj
aW5jbHVkZSAiRE9NUGFzdGVBY2Nlc3MuaCIKICNpbmNsdWRlICJEYXRhTGlzdFN1Z2dlc3Rpb25Q
aWNrZXIuaCIKICNpbmNsdWRlICJEYXRhYmFzZVByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiRGlhZ25v
c3RpY0xvZ2dpbmdDbGllbnQuaCIKQEAgLTE4OSw3ICsxOTAsNyBAQCBwcml2YXRlOgogICAgIHZv
aWQgcmVnaXN0ZXJSZWRvU3RlcChVbmRvU3RlcCYpIGZpbmFsOwogICAgIHZvaWQgY2xlYXJVbmRv
UmVkb09wZXJhdGlvbnMoKSBmaW5hbCB7IH0KIAotICAgIGJvb2wgcmVxdWVzdERPTVBhc3RlQWNj
ZXNzKCkgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBET01QYXN0ZUFjY2Vzc1Jlc3BvbnNl
IHJlcXVlc3RET01QYXN0ZUFjY2Vzcyhjb25zdCBTdHJpbmcmKSBmaW5hbCB7IHJldHVybiBET01Q
YXN0ZUFjY2Vzc1Jlc3BvbnNlOjpEZW5pZWRGb3JHZXN0dXJlOyB9CiAKICAgICBib29sIGNhbkNv
cHlDdXQoRnJhbWUqLCBib29sIGRlZmF1bHRWYWx1ZSkgY29uc3QgZmluYWwgeyByZXR1cm4gZGVm
YXVsdFZhbHVlOyB9CiAgICAgYm9vbCBjYW5QYXN0ZShGcmFtZSosIGJvb2wgZGVmYXVsdFZhbHVl
KSBjb25zdCBmaW5hbCB7IHJldHVybiBkZWZhdWx0VmFsdWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0VkaXRv
ckNsaWVudC5oCmluZGV4IGJjNjU4NGI1OTMzYmM1NmJmMGMwYzdhMzRlYjA1OGFhY2VmODgwMzcu
LjFkMWM4ZDA0MmI3YzM1ZmVlNWQxZGY1MDEwMDNhMTE5NmU3Y2FmYjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9FZGl0b3JDbGllbnQuaApAQCAtMzYsNiArMzYsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKK2VudW0gY2xhc3MgRE9NUGFzdGVBY2Nlc3NSZXNwb25zZSA6IHVpbnQ4X3Q7CisKIGNsYXNz
IERvY3VtZW50RnJhZ21lbnQ7CiBjbGFzcyBFbGVtZW50OwogY2xhc3MgRnJhbWU7CkBAIC05Nyw3
ICs5OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENhbmRpZGF0ZXNGb3JT
ZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBo
YW5kbGVBY2NlcHRlZENhbmRpZGF0ZVdpdGhTb2Z0U3BhY2VzKFRleHRDaGVja2luZ1Jlc3VsdCkg
eyB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgcmVxdWVzdERPTVBhc3RlQWNjZXNzKCkgPSAwOworICAg
IHZpcnR1YWwgRE9NUGFzdGVBY2Nlc3NSZXNwb25zZSByZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoY29u
c3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyKSA9IDA7CiAKICAgICAvLyBOb3RpZnkgYW4gaW5w
dXQgbWV0aG9kIHRoYXQgYSBjb21wb3NpdGlvbiB3YXMgdm9sdW50YXJpbHkgZGlzY2FyZGVkIGJ5
IFdlYkNvcmUsIHNvIHRoYXQgaXQgY291bGQgY2xlYW4gdXAgdG9vLgogICAgIC8vIFRoaXMgZnVu
Y3Rpb24gaXMgbm90IGNhbGxlZCB3aGVuIGEgY29tcG9zaXRpb24gaXMgY2xvc2VkIHBlciBhIHJl
cXVlc3QgZnJvbSBhbiBpbnB1dCBtZXRob2QuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCmluZGV4IDY3ODQz
ODA1MzJlMGRmMDc4Y2RhZDg4YzI5ZTkwODVkYTJhZTNkYWEuLjRmZTJiYzk2ZjVhYWQyOWE4NjEz
MmU5OTBkNzg3ZDdjNmE1MzA0OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCkBAIC02ODEsOSArNjgx
LDE1IEBAIGJvb2wgRnJhbWU6OnJlcXVlc3RET01QYXN0ZUFjY2VzcygpCiAgICAgICAgIGlmICgh
Y2xpZW50KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgICAgIGJvb2wgZ3JhbnRl
ZCA9IGNsaWVudC0+cmVxdWVzdERPTVBhc3RlQWNjZXNzKCk7Ci0gICAgICAgIGdlc3R1cmVUb2tl
bi0+ZGlkUmVxdWVzdERPTVBhc3RlQWNjZXNzKGdyYW50ZWQpOwotICAgICAgICByZXR1cm4gZ3Jh
bnRlZDsKKyAgICAgICAgYXV0byByZXNwb25zZSA9IGNsaWVudC0+cmVxdWVzdERPTVBhc3RlQWNj
ZXNzKG1fZG9jLT5vcmlnaW5JZGVudGlmaWVyRm9yUGFzdGVib2FyZCgpKTsKKyAgICAgICAgZ2Vz
dHVyZVRva2VuLT5kaWRSZXF1ZXN0RE9NUGFzdGVBY2Nlc3MocmVzcG9uc2UpOworICAgICAgICBz
d2l0Y2ggKHJlc3BvbnNlKSB7CisgICAgICAgIGNhc2UgRE9NUGFzdGVBY2Nlc3NSZXNwb25zZTo6
R3JhbnRlZEZvckNvbW1hbmQ6CisgICAgICAgIGNhc2UgRE9NUGFzdGVBY2Nlc3NSZXNwb25zZTo6
R3JhbnRlZEZvckdlc3R1cmU6CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgY2Fz
ZSBET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlOjpEZW5pZWRGb3JHZXN0dXJlOgorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICB9CiAgICAgfQogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2Ny
aXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggNmY2MTQxM2RkMjVkZTY2NjFjZjkyOTdmOWZm
ZDRlZTZmMjkyNGNhMi4uYjkzYWQyNGY5NDUxNjNiOGZjYWQ3NTIyZDdlMGE5YjdhMDE2YjNiOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC0zOTgsNiArMzk4
LDcgQEAgZGVmIGhlYWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAgICAgICdTdHJpbmcnOiBbJzx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4nXSwKICAgICAgICAgJ1BBTDo6U2Vzc2lvbklEJzogWyc8cGFs
L1Nlc3Npb25JRC5oPiddLAogICAgICAgICAnV2ViQ29yZTo6QXV0b3BsYXlFdmVudEZsYWdzJzog
Wyc8V2ViQ29yZS9BdXRvcGxheUV2ZW50Lmg+J10sCisgICAgICAgICdXZWJDb3JlOjpET01QYXN0
ZUFjY2Vzc1Jlc3BvbnNlJzogWyc8V2ViQ29yZS9ET01QYXN0ZUFjY2Vzcy5oPiddLAogICAgICAg
ICAnV2ViQ29yZTo6RHJhZ0hhbmRsaW5nTWV0aG9kJzogWyc8V2ViQ29yZS9EcmFnQWN0aW9ucy5o
PiddLAogICAgICAgICAnV2ViQ29yZTo6RXhjZXB0aW9uRGV0YWlscyc6IFsnPFdlYkNvcmUvSlNE
T01FeGNlcHRpb25IYW5kbGluZy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6RmlsZUNob29zZXJT
ZXR0aW5ncyc6IFsnPFdlYkNvcmUvRmlsZUNob29zZXIuaD4nXSwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5jcHAKaW5kZXggNzIxZWMxZTNk
MDQ5OGFkMjY4OGI5MTBjOThiZmE1Yzk5ZTFiZThiNS4uYjNkNjJkY2RhODZkMWNmZmFkMGJhY2I5
OTQzZWVhZDQ1NTkzMzk4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2d0ay9QYWdlQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2d0ay9QYWdlQ2xpZW50SW1wbC5jcHAKQEAgLTQ0LDYgKzQ0LDcgQEAKICNpbmNsdWRlICJXZWJQ
cm9jZXNzUG9vbC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ2Fpcm9VdGlsaXRpZXMuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0N1cnNvci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRE9NUGFzdGVBY2Nlc3Mu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0V2ZW50TmFtZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0d0
a1V0aWxpdGllcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KQEAgLTUy
NCw5ICs1MjUsOSBAQCBib29sIFBhZ2VDbGllbnRJbXBsOjpkZWNpZGVQb2xpY3lGb3JJbnN0YWxs
TWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0KAogfQogI2VuZGlmCiAKLXZvaWQg
UGFnZUNsaWVudEltcGw6OnJlcXVlc3RET01QYXN0ZUFjY2Vzcyhjb25zdCBJbnRSZWN0JiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgUGFn
ZUNsaWVudEltcGw6OnJlcXVlc3RET01QYXN0ZUFjY2Vzcyhjb25zdCBJbnRSZWN0JiwgY29uc3Qg
U3RyaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jl
c3BvbnNlKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBjb21wbGV0aW9uSGFuZGxlcihm
YWxzZSk7CisgICAgY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNw
b25zZTo6RGVuaWVkRm9yR2VzdHVyZSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5oCmluZGV4
IGI5MGFjNWFjNzBkM2Q5M2M0MjNjMTQ1NDQxNDg3MDgzZmFhMTNlZjYuLmQyMGRmYjdlYTNjMGFl
YjI5OGU2NWY3NjhjMGUxN2UzMjIwNDViZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmgKQEAgLTM2LDYgKzM2LDEwIEBACiAjaW5jbHVk
ZSA8Z3RrL2d0ay5oPgogI2luY2x1ZGUgPG1lbW9yeT4KIAorbmFtZXNwYWNlIFdlYkNvcmUgewor
ZW51bSBjbGFzcyBET01QYXN0ZUFjY2Vzc1BvbGljeSA6IHVpbnQ4X3Q7Cit9CisKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCiBjbGFzcyBEcmF3aW5nQXJlYVByb3h5OwpAQCAtMTUwLDcgKzE1NCw3IEBA
IHByaXZhdGU6CiAKICAgICB2b2lkIGRpZEZpbmlzaFByb2Nlc3NpbmdBbGxQZW5kaW5nTW91c2VF
dmVudHMoKSBmaW5hbCB7IH0KIAotICAgIHZvaWQgcmVxdWVzdERPTVBhc3RlQWNjZXNzKGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBmaW5h
bDsKKyAgICB2b2lkIHJlcXVlc3RET01QYXN0ZUFjY2Vzcyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0
JiwgY29uc3QgU3RyaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpET01QYXN0
ZUFjY2Vzc1Jlc3BvbnNlKT4mJikgZmluYWw7CiAKICNpZiBFTkFCTEUoVklERU8pICYmIFVTRShH
U1RSRUFNRVIpCiAgICAgYm9vbCBkZWNpZGVQb2xpY3lGb3JJbnN0YWxsTWlzc2luZ01lZGlhUGx1
Z2luc1Blcm1pc3Npb25SZXF1ZXN0KEluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zUGVybWlzc2lv
blJlcXVlc3QmKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS93cGUvUGFnZUNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L3dwZS9QYWdlQ2xpZW50SW1wbC5jcHAKaW5kZXggMmMxYzZlZTQ2OTQ1NWNhMmE3OWVlZThkMTZl
ZjRmMzg4ZGVlMzdlOS4uMjYwZDQ2OWVkYjgwM2VmZWM4MDE1ZmM5NjE2Zjk5ZmQzZTU3NTlmZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1w
bC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1w
bC5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJXZWJDb250ZXh0TWVudVByb3h5Lmgi
CiAjaW5jbHVkZSAiV2ViQ29udGV4dE1lbnVQcm94eVdQRS5oIgogI2luY2x1ZGUgPFdlYkNvcmUv
QWN0aXZpdHlTdGF0ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRE9NUGFzdGVBY2Nlc3MuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpA
QCAtMzk5LDkgKzQwMCw5IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OmJlZ2FuRXhpdEZ1bGxTY3Jl
ZW4oY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgLyogaW5pdGlhbEZyYW1lCiAKICNlbmRpZiAvLyBF
TkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OnJlcXVlc3RET01Q
YXN0ZUFjY2Vzcyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnJlcXVl
c3RET01QYXN0ZUFjY2Vzcyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgY29uc3QgU3RyaW5nJiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7Cisg
ICAgY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZTo6RGVu
aWVkRm9yR2VzdHVyZSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5oCmluZGV4IDVhYWUwZjJi
MWE0NDExOGI1YThkYzRkMzAyYzgxZjY0MGI0ZTRlZjEuLjBkOGQwNDBmYzdiNTA3ZTk4NmZkMGZj
Y2Y5YzZkNTZkZTUwMjE4MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS93cGUvUGFnZUNsaWVudEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
d3BlL1BhZ2VDbGllbnRJbXBsLmgKQEAgLTM0LDYgKzM0LDEwIEBAIG5hbWVzcGFjZSBXS1dQRSB7
CiBjbGFzcyBWaWV3OwogfQogCituYW1lc3BhY2UgV2ViQ29yZSB7CitlbnVtIGNsYXNzIERPTVBh
c3RlQWNjZXNzUmVzcG9uc2UgOiB1aW50OF90OworfQorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAog
Y2xhc3MgU2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXI7CkBAIC0xNDYsNyArMTUwLDcgQEAgcHJpdmF0
ZToKICAgICB2b2lkIGRpZEZpbmlzaFByb2Nlc3NpbmdBbGxQZW5kaW5nTW91c2VFdmVudHMoKSBm
aW5hbCB7IH0KIAogICAgIElQQzo6QXR0YWNobWVudCBob3N0RmlsZURlc2NyaXB0b3IoKSBmaW5h
bDsKLSAgICB2b2lkIHJlcXVlc3RET01QYXN0ZUFjY2Vzcyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgZmluYWw7CisgICAgdm9pZCByZXF1
ZXN0RE9NUGFzdGVBY2Nlc3MoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFN0cmluZyYs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSk+
JiYpIGZpbmFsOwogCiAgICAgV2ViQ29yZTo6VXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbiB1
c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uKCkgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1BhZ2VDbGllbnQuaAppbmRleCBjZDdhYzA1YmE3YmJlNDgwZTJhNTU2OWNmNzdlYWMzYmZm
MjQ5ZWM0Li5jZGQ3ZDY2NTExNDhhYWQ4ZWMwN2NkMzEyMDkxZTExMTg3M2ZhMDYzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCkBAIC04Niw2ICs4Niw3IEBAIGVudW0gY2xhc3Mg
Um91dGVTaGFyaW5nUG9saWN5IDogdWludDhfdDsKIGVudW0gY2xhc3MgU2Nyb2xsYmFyU3R5bGUg
OiB1aW50OF90OwogZW51bSBjbGFzcyBUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWUgOiB1aW50
OF90OwogZW51bSBjbGFzcyBUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uIDog
dWludDhfdDsKK2VudW0gY2xhc3MgRE9NUGFzdGVBY2Nlc3NSZXNwb25zZSA6IHVpbnQ4X3Q7CiAK
IHN0cnVjdCBEaWN0aW9uYXJ5UG9wdXBJbmZvOwogc3RydWN0IEhpZ2hsaWdodDsKQEAgLTk1LDEz
ICs5NiwxMSBAQCBzdHJ1Y3QgU2hhcmVEYXRhV2l0aFBhcnNlZFVSTDsKIAogdGVtcGxhdGUgPHR5
cGVuYW1lPiBjbGFzcyBSZWN0RWRnZXM7CiB1c2luZyBGbG9hdEJveEV4dGVudCA9IFJlY3RFZGdl
czxmbG9hdD47Ci19CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotbmFtZXNwYWNlIFdlYkNv
cmUgewogc3RydWN0IERyYWdJdGVtOwotfQogI2VuZGlmCit9CiAKIG5hbWVzcGFjZSBXZWJLaXQg
ewogCkBAIC00NjUsNyArNDY0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFu
Z2VEcmFnQ2FyZXRSZWN0KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHByZXZpb3VzQ2FyZXRSZWN0
LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBjYXJldFJlY3QpID0gMDsKICNlbmRpZgogCi0gICAg
dmlydHVhbCB2b2lkIHJlcXVlc3RET01QYXN0ZUFjY2Vzcyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0
JiBlbGVtZW50UmVjdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgPSAwOworICAg
IHZpcnR1YWwgdm9pZCByZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYgZWxlbWVudFJlY3QsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlKT4mJikgPSAwOwog
CiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKICAgICB2aXJ0dWFsIHZvaWQgZGlkSW5z
ZXJ0QXR0YWNobWVudChBUEk6OkF0dGFjaG1lbnQmLCBjb25zdCBTdHJpbmcmIHNvdXJjZSkgeyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA4NzBjMTdlMWM0
ODhiNmFhYjVjNThmNDIwMDA1YTkzMmU4YjlhMWZlLi5kNGM4MjI0NzY1NjNlZTkxMWI3MzllOTdh
NWIyYThmYWQ3ODFkODM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKQEAgLTEzMSw2ICsxMzEsNyBAQAogI2luY2x1ZGUgIldlYnNpdGVEYXRhU3RvcmUuaCIKICNp
bmNsdWRlIDxXZWJDb3JlL0FkQ2xpY2tBdHRyaWJ1dGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
Qml0bWFwSW1hZ2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0RPTVBhc3RlQWNjZXNzLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9EZXByZWNhdGVkR2xvYmFsU2V0dGluZ3MuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0RpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EaWFnbm9z
dGljTG9nZ2luZ0tleXMuaD4KQEAgLTU1MDUsOSArNTUwNiw5IEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpzZXROZWVkc1BsYWluVGV4dFF1aXJrKGJvb2wgbmVlZHNQbGFpblRleHRRdWlyaykKICAgICBt
X25lZWRzUGxhaW5UZXh0UXVpcmsgPSBuZWVkc1BsYWluVGV4dFF1aXJrOwogfQogCi12b2lkIFdl
YlBhZ2VQcm94eTo6cmVxdWVzdERPTVBhc3RlQWNjZXNzKGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
IGVsZW1lbnRSZWN0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQordm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RET01QYXN0ZUFjY2Vzcyhjb25zdCBX
ZWJDb3JlOjpJbnRSZWN0JiBlbGVtZW50UmVjdCwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlm
aWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9u
c2UpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIG1fcGFnZUNsaWVudC0+cmVxdWVzdERP
TVBhc3RlQWNjZXNzKGVsZW1lbnRSZWN0LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cisg
ICAgbV9wYWdlQ2xpZW50LT5yZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoZWxlbWVudFJlY3QsIG9yaWdp
bklkZW50aWZpZXIsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAogLy8gQmFja0Zv
cndhcmRMaXN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDJhNTM5
ZjU1NGQ2MTFkZGM3ZTI2OTJkZWVlYzU3M2FiYjUxZTI4NTYuLmY5ZWQ2ZWU1ZjYwNjc4MGUxYzEw
NDcyZjFjZjg1Y2YxZDY2MTkzZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCkBAIC0xODIsNiArMTgyLDcgQEAgY2xhc3MgVmFsaWRhdGlvbkJ1YmJsZTsKIGVudW0gU2Vs
ZWN0aW9uRGlyZWN0aW9uIDogdWludDhfdDsKIAogZW51bSBjbGFzcyBBdXRvcGxheUV2ZW50IDog
dWludDhfdDsKK2VudW0gY2xhc3MgRE9NUGFzdGVBY2Nlc3NSZXNwb25zZSA6IHVpbnQ4X3Q7CiBl
bnVtIGNsYXNzIExvY2tCYWNrRm9yd2FyZExpc3QgOiBib29sOwogZW51bSBjbGFzcyBIYXNJbnNl
Y3VyZUNvbnRlbnQgOiBib29sOwogZW51bSBjbGFzcyBOb3RpZmljYXRpb25EaXJlY3Rpb24gOiB1
aW50OF90OwpAQCAtMTY2OSw3ICsxNjcwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldE5lZWRz
SGlkZGVuQ29udGVudEVkaXRhYmxlUXVpcmsoYm9vbCk7CiAgICAgdm9pZCBzZXROZWVkc1BsYWlu
VGV4dFF1aXJrKGJvb2wpOwogCi0gICAgdm9pZCByZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoY29uc3Qg
V2ViQ29yZTo6SW50UmVjdCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOworICAg
IHZvaWQgcmVxdWVzdERPTVBhc3RlQWNjZXNzKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBjb25z
dCBTdHJpbmcmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNz
UmVzcG9uc2UpPiYmKTsKIAogICAgIC8vIEJhY2svRm9yd2FyZCBsaXN0IG1hbmFnZW1lbnQKICAg
ICB2b2lkIGJhY2tGb3J3YXJkQWRkSXRlbShCYWNrRm9yd2FyZExpc3RJdGVtU3RhdGUmJik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5k
ZXggYzEwYTc1YzA1OWQ3ZjA5MWY1MDRiNGZjOTVjMWE0MzcyY2EwNTA1Yy4uZTg2NGQ0YTk2ZmI2
N2Y5YTUzZjFkNjA5YzY5Zjc3NjUyMTM4NGEwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjUxLDcgKzI1MSw3IEBAIG1lc3Nh
Z2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgU2V0SGFzSGFkU2VsZWN0aW9uQ2hhbmdlc0Zyb21V
c2VySW50ZXJhY3Rpb24oYm9vbCBoYXNIYWRVc2VyU2VsZWN0aW9uQ2hhbmdlcykKICAgICBTZXRO
ZWVkc0hpZGRlbkNvbnRlbnRFZGl0YWJsZVF1aXJrKGJvb2wgbmVlZHNIaWRkZW5Db250ZW50RWRp
dGFibGVRdWlyaykKICAgICBTZXROZWVkc1BsYWluVGV4dFF1aXJrKGJvb2wgbmVlZHNQbGFpblRl
eHRRdWlyaykKLSAgICBSZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoV2ViQ29yZTo6SW50UmVjdCBlbGVt
ZW50UmVjdCkgLT4gKGJvb2wgZ3JhbnRlZCkgRGVsYXllZAorICAgIFJlcXVlc3RET01QYXN0ZUFj
Y2VzcyhXZWJDb3JlOjpJbnRSZWN0IGVsZW1lbnRSZWN0LCBTdHJpbmcgb3JpZ2luSWRlbnRpZmll
cikgLT4gKGVudW06dWludDhfdCBXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlIHJlc3Bv
bnNlKSBEZWxheWVkCiAKICAgICAjIEZpbmQgbWVzc2FnZXMKICAgICBEaWRDb3VudFN0cmluZ01h
dGNoZXMoU3RyaW5nIHN0cmluZywgdWludDMyX3QgbWF0Y2hDb3VudCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKaW5kZXggZDBkMDM4NDdkMGUy
ZTNiNTdjNzUzMzgyNjdhYWEyMDRhMDJhMzM2Ni4uOWZlZGM2ODkxMDA1MzAxYzE1MTE1MzEyMmYz
ZjFkNDZkNWE3NTAzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1Bh
Z2VDbGllbnRJbXBsSU9TLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VD
bGllbnRJbXBsSU9TLmgKQEAgLTM1LDYgKzM1LDcgQEAgT0JKQ19DTEFTUyBXS0NvbnRlbnRWaWV3
OwogT0JKQ19DTEFTUyBXS0VkaXRvclVuZG9UYXJnZXQ7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
K2VudW0gY2xhc3MgRE9NUGFzdGVBY2Nlc3NSZXNwb25zZSA6IHVpbnQ4X3Q7CiBzdHJ1Y3QgUHJv
bWlzZWRBdHRhY2htZW50SW5mbzsKIH0KIApAQCAtMjI0LDcgKzIyNSw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCByZXF1ZXN0UGFzc3dvcmRGb3JRdWlja0xvb2tEb2N1bWVudChjb25zdCBTdHJpbmcm
IGZpbGVOYW1lLCBXVEY6OkZ1bmN0aW9uPHZvaWQoY29uc3QgU3RyaW5nJik+JiYpIG92ZXJyaWRl
OwogI2VuZGlmCiAKLSAgICB2b2lkIHJlcXVlc3RET01QYXN0ZUFjY2Vzcyhjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JiBlbGVtZW50UmVjdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikg
ZmluYWw7CisgICAgdm9pZCByZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoY29uc3QgV2ViQ29yZTo6SW50
UmVjdCYgZWxlbWVudFJlY3QsIGNvbnN0IFN0cmluZyYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
V2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSk+JiYpIGZpbmFsOwogCiAjaWYgRU5BQkxF
KERBVEFfSU5URVJBQ1RJT04pCiAgICAgdm9pZCBkaWRQZXJmb3JtRHJhZ09wZXJhdGlvbihib29s
IGhhbmRsZWQpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1Bh
Z2VDbGllbnRJbXBsSU9TLm1tCmluZGV4IDVlMGE2OTA3YjgwMzM2Nzc4ODU4ZmIwNTBlYzAxMGEw
ZmM5OGIyNWMuLmQ5NTRlNzdhZGMzZmQ3NGViOTk3NmMwMjIxYzUzZWQwNjZlNTgxNTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KQEAg
LTU0LDYgKzU0LDcgQEAKICNpbXBvcnQgIldlYkVkaXRDb21tYW5kUHJveHkuaCIKICNpbXBvcnQg
IldlYlByb2Nlc3NQcm94eS5oIgogI2ltcG9ydCAiX1dLRG93bmxvYWRJbnRlcm5hbC5oIgorI2lt
cG9ydCA8V2ViQ29yZS9ET01QYXN0ZUFjY2Vzcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9EaWN0aW9u
YXJ5TG9va3VwLmg+CiAjaW1wb3J0IDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL1BsYXRmb3JtU2NyZWVuLmg+CkBAIC04MzcsOSArODM4LDkgQEAgdm9pZCBQYWdl
Q2xpZW50SW1wbDo6cmVxdWVzdFBhc3N3b3JkRm9yUXVpY2tMb29rRG9jdW1lbnQoY29uc3QgU3Ry
aW5nJiBmaWxlTmFtZSwKIH0KICNlbmRpZgogCi12b2lkIFBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0
RE9NUGFzdGVBY2Nlc3MoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgZWxlbWVudFJlY3QsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFBhZ2VD
bGllbnRJbXBsOjpyZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYg
ZWxlbWVudFJlY3QsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKIHsKLSAgICBbbV9jb250ZW50VmlldyBfcmVxdWVzdERPTVBhc3RlQWNjZXNzV2l0
aEVsZW1lbnRSZWN0OmVsZW1lbnRSZWN0IGNvbXBsZXRpb25IYW5kbGVyOldURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpXTsKKyAgICBbbV9jb250ZW50VmlldyBfcmVxdWVzdERPTVBhc3RlQWNjZXNz
V2l0aEVsZW1lbnRSZWN0OmVsZW1lbnRSZWN0IG9yaWdpbklkZW50aWZpZXI6b3JpZ2luSWRlbnRp
ZmllciBjb21wbGV0aW9uSGFuZGxlcjpXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV07CiB9CiAK
ICNpZiBIQVZFKFBFTkNJTEtJVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAppbmRleCAyY2VjYzJjNTZkN2IwNTg4OTc5
M2U2ODQwNTk3NWM3M2E0ZmU2ZWM5Li43NzMwNjNhODc4MjM3MjcyZjA5MTY3N2IwNTUyMGZkZDY1
MjI3MTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50
Vmlld0ludGVyYWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29u
dGVudFZpZXdJbnRlcmFjdGlvbi5oCkBAIC03MSwxNCArNzEsMTMgQEAgY2xhc3MgSW50U2l6ZTsK
IGNsYXNzIFNlbGVjdGlvblJlY3Q7CiBzdHJ1Y3QgUHJvbWlzZWRBdHRhY2htZW50SW5mbzsKIHN0
cnVjdCBTaGFyZURhdGFXaXRoUGFyc2VkVVJMOworZW51bSBjbGFzcyBET01QYXN0ZUFjY2Vzc1Jl
c3BvbnNlIDogdWludDhfdDsKIGVudW0gY2xhc3MgUm91dGVTaGFyaW5nUG9saWN5IDogdWludDhf
dDsKLX0KIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi1uYW1lc3BhY2UgV2ViQ29yZSB7CiBz
dHJ1Y3QgRHJhZ0l0ZW07Ci19CiAjZW5kaWYKK30KIAogbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFz
cyBJbnB1dFZpZXdVcGRhdGVEZWZlcnJlcjsKQEAgLTMxOCw3ICszMTcsNyBAQCBzdHJ1Y3QgV0tB
dXRvQ29ycmVjdGlvbkRhdGEgewogICAgIEJPT0wgX2ZvY3VzUmVxdWlyZXNTdHJvbmdQYXNzd29y
ZEFzc2lzdGFuY2U7CiAKICAgICBCT09MIF9oYXNTZXRVcEludGVyYWN0aW9uczsKLSAgICBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiBfZG9tUGFzdGVSZXF1ZXN0SGFuZGxlcjsKKyAgICBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2UpPiBf
ZG9tUGFzdGVSZXF1ZXN0SGFuZGxlcjsKIAogI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQog
ICAgIFdlYktpdDo6RHJhZ0Ryb3BJbnRlcmFjdGlvblN0YXRlIF9kcmFnRHJvcEludGVyYWN0aW9u
U3RhdGU7CkBAIC00NDAsNyArNDM5LDcgQEAgRk9SX0VBQ0hfUFJJVkFURV9XS0NPTlRFTlRWSUVX
X0FDVElPTihERUNMQVJFX1dLQ09OVEVOVFZJRVdfQUNUSU9OX0ZPUl9XRUJfVklFVykKIC0gKHZv
aWQpX2FjY2Vzc2liaWxpdHlDbGVhclNlbGVjdGlvbjsKIC0gKFdLRm9ybUlucHV0U2Vzc2lvbiAq
KV9mb3JtSW5wdXRTZXNzaW9uOwogCi0tICh2b2lkKV9yZXF1ZXN0RE9NUGFzdGVBY2Nlc3NXaXRo
RWxlbWVudFJlY3Q6KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKWVsZW1lbnRSZWN0IGNvbXBsZXRp
b25IYW5kbGVyOihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKWNvbXBsZXRpb25IYW5k
bGVyOworLSAodm9pZClfcmVxdWVzdERPTVBhc3RlQWNjZXNzV2l0aEVsZW1lbnRSZWN0Oihjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JillbGVtZW50UmVjdCBvcmlnaW5JZGVudGlmaWVyOihjb25zdCBT
dHJpbmcmKW9yaWdpbklkZW50aWZpZXIgY29tcGxldGlvbkhhbmRsZXI6KENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSk+JiYpY29tcGxldGlvbkhh
bmRsZXI7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgV2ViS2l0OjpJbnRlcmFj
dGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiBjdXJyZW50UG9zaXRpb25JbmZvcm1hdGlvbjsKIC0g
KHZvaWQpZG9BZnRlclBvc2l0aW9uSW5mb3JtYXRpb25VcGRhdGU6KHZvaWQgKF4pKFdlYktpdDo6
SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24pKWFjdGlvbiBmb3JSZXF1ZXN0OihXZWJL
aXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0KXJlcXVlc3Q7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpp
bmRleCBkZjdmNzJlOTE2YmZhMzJmNGM0Zjk3YzZiM2VlOGY5ZWE3ZTYxM2Q4Li4zN2IzNjIwM2M0
ZDExMGZiMmI5NTc5YmU1ZTMxZTA5ZDcyNTc4YWIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTc3LDYg
Kzc3LDcgQEAKICNpbXBvcnQgPENvcmVUZXh0L0NURm9udERlc2NyaXB0b3IuaD4KICNpbXBvcnQg
PE1vYmlsZUNvcmVTZXJ2aWNlcy9VVENvcmVUeXBlcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9Db2xv
ci5oPgorI2ltcG9ydCA8V2ViQ29yZS9ET01QYXN0ZUFjY2Vzcy5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9EYXRhRGV0ZWN0aW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0Zsb2F0UXVhZC5oPgogI2ltcG9y
dCA8V2ViQ29yZS9Gb250QXR0cmlidXRlQ2hhbmdlcy5oPgpAQCAtODkwLDcgKzg5MSw3IEBAIC0g
KHZvaWQpY2xlYW51cEludGVyYWN0aW9uCiAjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQogICAg
IFtzZWxmIF9yZXNldFBhbm5pbmdQcmV2ZW50aW9uRmxhZ3NdOwogI2VuZGlmCi0gICAgW3NlbGYg
X2hhbmRsZURPTVBhc3RlUmVxdWVzdFdpdGhSZXN1bHQ6Tk9dOworICAgIFtzZWxmIF9oYW5kbGVE
T01QYXN0ZVJlcXVlc3RXaXRoUmVzdWx0OldlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2U6
OkRlbmllZEZvckdlc3R1cmVdOwogfQogCiAtICh2b2lkKV9yZW1vdmVEZWZhdWx0R2VzdHVyZVJl
Y29nbml6ZXJzCkBAIC0xMTc4LDcgKzExNzksNyBAQCAtIChCT09MKXJlc2lnbkZpcnN0UmVzcG9u
ZGVyRm9yV2ViVmlldwogICAgIGJvb2wgc3VwZXJEaWRSZXNpZ24gPSBbc3VwZXIgcmVzaWduRmly
c3RSZXNwb25kZXJdOwogCiAgICAgaWYgKHN1cGVyRGlkUmVzaWduKSB7Ci0gICAgICAgIFtzZWxm
IF9oYW5kbGVET01QYXN0ZVJlcXVlc3RXaXRoUmVzdWx0Ok5PXTsKKyAgICAgICAgW3NlbGYgX2hh
bmRsZURPTVBhc3RlUmVxdWVzdFdpdGhSZXN1bHQ6V2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNw
b25zZTo6RGVuaWVkRm9yR2VzdHVyZV07CiAgICAgICAgIF9wYWdlLT5hY3Rpdml0eVN0YXRlRGlk
Q2hhbmdlKFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OklzRm9jdXNlZCk7CiAgICAgfQogCkBAIC0x
MjE0LDcgKzEyMTUsNyBAQCAtICh2b2lkKV93ZWJUb3VjaEV2ZW50c1JlY29nbml6ZWQ6KFVJV2Vi
VG91Y2hFdmVudHNHZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmVSZQogCiAgICAgX2xhc3RJbnRl
cmFjdGlvbkxvY2F0aW9uID0gbGFzdFRvdWNoRXZlbnQtPmxvY2F0aW9uSW5Eb2N1bWVudENvb3Jk
aW5hdGVzOwogICAgIGlmIChsYXN0VG91Y2hFdmVudC0+dHlwZSA9PSBVSVdlYlRvdWNoRXZlbnRU
b3VjaEJlZ2luKSB7Ci0gICAgICAgIFtzZWxmIF9oYW5kbGVET01QYXN0ZVJlcXVlc3RXaXRoUmVz
dWx0Ok5PXTsKKyAgICAgICAgW3NlbGYgX2hhbmRsZURPTVBhc3RlUmVxdWVzdFdpdGhSZXN1bHQ6
V2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZTo6RGVuaWVkRm9yR2VzdHVyZV07CiAgICAg
ICAgIF9sYXllclRyZWVUcmFuc2FjdGlvbklkQXRMYXN0VG91Y2hTdGFydCA9IGRvd25jYXN0PFdl
YktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eT4oKl9wYWdlLT5kcmF3aW5nQXJl
YSgpKS5sYXN0Q29tbWl0dGVkTGF5ZXJUcmVlVHJhbnNhY3Rpb25JRCgpOwogICAgIH0KIApAQCAt
Mjg5OCw3ICsyODk5LDcgQEAgLSAoaWQpdGFyZ2V0Rm9yQWN0aW9uRm9yV2ViVmlldzooU0VMKWFj
dGlvbiB3aXRoU2VuZGVyOihpZClzZW5kZXIKIAogLSAodm9pZClfd2lsbEhpZGVNZW51OihOU05v
dGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgogewotICAgIFtzZWxmIF9oYW5kbGVET01QYXN0ZVJl
cXVlc3RXaXRoUmVzdWx0Ok5PXTsKKyAgICBbc2VsZiBfaGFuZGxlRE9NUGFzdGVSZXF1ZXN0V2l0
aFJlc3VsdDpXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlOjpEZW5pZWRGb3JHZXN0dXJl
XTsKIH0KIAogLSAodm9pZClfZGlkSGlkZU1lbnU6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0
aW9uCkBAIC0yOTI2LDcgKzI5MjcsNyBAQCAtICh2b2lkKWN1dEZvcldlYlZpZXc6KGlkKXNlbmRl
cgogCiAtICh2b2lkKXBhc3RlRm9yV2ViVmlldzooaWQpc2VuZGVyCiB7Ci0gICAgaWYgKHNlbmRl
ciA9PSBVSU1lbnVDb250cm9sbGVyLnNoYXJlZE1lbnVDb250cm9sbGVyICYmIFtzZWxmIF9oYW5k
bGVET01QYXN0ZVJlcXVlc3RXaXRoUmVzdWx0OllFU10pCisgICAgaWYgKHNlbmRlciA9PSBVSU1l
bnVDb250cm9sbGVyLnNoYXJlZE1lbnVDb250cm9sbGVyICYmIFtzZWxmIF9oYW5kbGVET01QYXN0
ZVJlcXVlc3RXaXRoUmVzdWx0OldlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2U6OkdyYW50
ZWRGb3JHZXN0dXJlXSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgX3BhZ2UtPmV4ZWN1dGVFZGl0
Q29tbWFuZCgicGFzdGUiX3MpOwpAQCAtMzA1OCwxMSArMzA1OSwxMSBAQCAtICh2b2lkKV9hY2Nl
c3NpYmlsaXR5Q2xlYXJTZWxlY3Rpb24KICAgICBfcGFnZS0+c3RvcmVTZWxlY3Rpb25Gb3JBY2Nl
c3NpYmlsaXR5KGZhbHNlKTsKIH0KIAotLSAoQk9PTClfaGFuZGxlRE9NUGFzdGVSZXF1ZXN0V2l0
aFJlc3VsdDooQk9PTClhbGxvd1Bhc3RlCistIChCT09MKV9oYW5kbGVET01QYXN0ZVJlcXVlc3RX
aXRoUmVzdWx0OihXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlKXJlc3BvbnNlCiB7CiAg
ICAgaWYgKGF1dG8gcGFzdGVIYW5kbGVyID0gV1RGTW92ZShfZG9tUGFzdGVSZXF1ZXN0SGFuZGxl
cikpIHsKICAgICAgICAgW3NlbGYgaGlkZUdsb2JhbE1lbnVDb250cm9sbGVyXTsKLSAgICAgICAg
cGFzdGVIYW5kbGVyKGFsbG93UGFzdGUpOworICAgICAgICBwYXN0ZUhhbmRsZXIocmVzcG9uc2Up
OwogICAgICAgICByZXR1cm4gWUVTOwogICAgIH0KICAgICByZXR1cm4gTk87CkBAIC0zMDcxLDEz
ICszMDcyLDEzIEBAIC0gKEJPT0wpX2hhbmRsZURPTVBhc3RlUmVxdWVzdFdpdGhSZXN1bHQ6KEJP
T0wpYWxsb3dQYXN0ZQogLSAodm9pZClfd2lsbFBlcmZvcm1BY3Rpb246KFNFTClhY3Rpb24gc2Vu
ZGVyOihpZClzZW5kZXIKIHsKICAgICBpZiAoYWN0aW9uICE9IEBzZWxlY3RvcihwYXN0ZTopKQot
ICAgICAgICBbc2VsZiBfaGFuZGxlRE9NUGFzdGVSZXF1ZXN0V2l0aFJlc3VsdDpOT107CisgICAg
ICAgIFtzZWxmIF9oYW5kbGVET01QYXN0ZVJlcXVlc3RXaXRoUmVzdWx0OldlYkNvcmU6OkRPTVBh
c3RlQWNjZXNzUmVzcG9uc2U6OkRlbmllZEZvckdlc3R1cmVdOwogfQogCiAtICh2b2lkKV9kaWRQ
ZXJmb3JtQWN0aW9uOihTRUwpYWN0aW9uIHNlbmRlcjooaWQpc2VuZGVyCiB7CiAgICAgaWYgKGFj
dGlvbiA9PSBAc2VsZWN0b3IocGFzdGU6KSkKLSAgICAgICAgW3NlbGYgX2hhbmRsZURPTVBhc3Rl
UmVxdWVzdFdpdGhSZXN1bHQ6Tk9dOworICAgICAgICBbc2VsZiBfaGFuZGxlRE9NUGFzdGVSZXF1
ZXN0V2l0aFJlc3VsdDpXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlOjpEZW5pZWRGb3JH
ZXN0dXJlXTsKIH0KIAogLy8gVUlXS0ludGVyYWN0aW9uVmlld1Byb3RvY29sCkBAIC00Mjk1LDcg
KzQyOTYsNyBAQCAtICh2b2lkKWhhbmRsZUtleVdlYkV2ZW50Oig6OldlYkV2ZW50ICopdGhlRXZl
bnQKIAogLSAodm9pZCloYW5kbGVLZXlXZWJFdmVudDooOjpXZWJFdmVudCAqKXRoZUV2ZW50IHdp
dGhDb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoOjpXZWJFdmVudCAqdGhlRXZlbnQsIEJPT0wg
d2FzSGFuZGxlZCkpY29tcGxldGlvbkhhbmRsZXIKIHsKLSAgICBbc2VsZiBfaGFuZGxlRE9NUGFz
dGVSZXF1ZXN0V2l0aFJlc3VsdDpOT107CisgICAgW3NlbGYgX2hhbmRsZURPTVBhc3RlUmVxdWVz
dFdpdGhSZXN1bHQ6V2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZTo6RGVuaWVkRm9yR2Vz
dHVyZV07CiAKICAgICBfa2V5V2ViRXZlbnRIYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRp
b25IYW5kbGVyKTsKICAgICBfcGFnZS0+aGFuZGxlS2V5Ym9hcmRFdmVudChXZWJLaXQ6Ok5hdGl2
ZVdlYktleWJvYXJkRXZlbnQodGhlRXZlbnQpKTsKQEAgLTUwMzUsMTEgKzUwMzYsNDEgQEAgLSAo
dm9pZCloaWRlR2xvYmFsTWVudUNvbnRyb2xsZXIKICNlbmRpZgogfQogCi0tICh2b2lkKV9yZXF1
ZXN0RE9NUGFzdGVBY2Nlc3NXaXRoRWxlbWVudFJlY3Q6KGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
KWVsZW1lbnRSZWN0IGNvbXBsZXRpb25IYW5kbGVyOihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJv
b2wpPiYmKWNvbXBsZXRpb25IYW5kbGVyCitzdGF0aWMgQk9PTCBhbGxQYXN0ZWJvYXJkSXRlbU9y
aWdpbnNNYXRjaE9yaWdpbihVSVBhc3RlYm9hcmQgKnBhc3RlYm9hcmQsIGNvbnN0IFN0cmluZyYg
b3JpZ2luSWRlbnRpZmllcikKK3sKKyAgICBpZiAob3JpZ2luSWRlbnRpZmllci5pc0VtcHR5KCkp
CisgICAgICAgIHJldHVybiBOTzsKKworICAgIGF1dG8gKmluZGljZXMgPSBbTlNJbmRleFNldCBp
bmRleFNldFdpdGhJbmRleGVzSW5SYW5nZTpOU01ha2VSYW5nZSgwLCBbcGFzdGVib2FyZCBudW1i
ZXJPZkl0ZW1zXSldOworICAgIGF1dG8gKmFsbEN1c3RvbURhdGEgPSBbcGFzdGVib2FyZCBkYXRh
Rm9yUGFzdGVib2FyZFR5cGU6QChXZWJDb3JlOjpQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FU
eXBlKCkpIGluSXRlbVNldDppbmRpY2VzXTsKKyAgICBpZiAoIWFsbEN1c3RvbURhdGEuY291bnQp
CisgICAgICAgIHJldHVybiBOTzsKKworICAgIEJPT0wgZm91bmRBdExlYXN0T25lTWF0Y2hpbmdJ
ZGVudGlmaWVyID0gTk87CisgICAgZm9yIChOU0RhdGEgKmRhdGEgaW4gYWxsQ3VzdG9tRGF0YSkg
eworICAgICAgICBpZiAoIWRhdGEubGVuZ3RoKQorICAgICAgICAgICAgY29udGludWU7CisKKyAg
ICAgICAgYXV0byBidWZmZXIgPSBXZWJDb3JlOjpTaGFyZWRCdWZmZXI6OmNyZWF0ZShkYXRhKTsK
KyAgICAgICAgaWYgKFdlYkNvcmU6OlBhc3RlYm9hcmRDdXN0b21EYXRhOjpmcm9tU2hhcmVkQnVm
ZmVyKGJ1ZmZlci5nZXQoKSkub3JpZ2luICE9IG9yaWdpbklkZW50aWZpZXIpCisgICAgICAgICAg
ICByZXR1cm4gTk87CisKKyAgICAgICAgZm91bmRBdExlYXN0T25lTWF0Y2hpbmdJZGVudGlmaWVy
ID0gWUVTOworICAgIH0KKworICAgIHJldHVybiBmb3VuZEF0TGVhc3RPbmVNYXRjaGluZ0lkZW50
aWZpZXI7Cit9CisKKy0gKHZvaWQpX3JlcXVlc3RET01QYXN0ZUFjY2Vzc1dpdGhFbGVtZW50UmVj
dDooY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpZWxlbWVudFJlY3Qgb3JpZ2luSWRlbnRpZmllcjoo
Y29uc3QgU3RyaW5nJilvcmlnaW5JZGVudGlmaWVyIGNvbXBsZXRpb25IYW5kbGVyOihDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2UpPiYmKWNvbXBs
ZXRpb25IYW5kbGVyCiB7CiAgICAgaWYgKGF1dG8gZXhpc3RpbmdDb21wbGV0aW9uSGFuZGxlciA9
IHN0ZDo6ZXhjaGFuZ2UoX2RvbVBhc3RlUmVxdWVzdEhhbmRsZXIsIFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpKSkgewogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgZXhp
c3RpbmdDb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7CisgICAgICAgIGV4aXN0aW5nQ29tcGxldGlv
bkhhbmRsZXIoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZTo6RGVuaWVkRm9yR2VzdHVy
ZSk7CisgICAgfQorCisgICAgaWYgKGFsbFBhc3RlYm9hcmRJdGVtT3JpZ2luc01hdGNoT3JpZ2lu
KFVJUGFzdGVib2FyZC5nZW5lcmFsUGFzdGVib2FyZCwgb3JpZ2luSWRlbnRpZmllcikpIHsKKyAg
ICAgICAgW3NlbGYgX2hhbmRsZURPTVBhc3RlUmVxdWVzdFdpdGhSZXN1bHQ6V2ViQ29yZTo6RE9N
UGFzdGVBY2Nlc3NSZXNwb25zZTo6R3JhbnRlZEZvckNvbW1hbmRdOworICAgICAgICByZXR1cm47
CiAgICAgfQogCiAgICAgV2ViQ29yZTo6SW50UmVjdCBtZW51Q29udHJvbGxlclJlY3QgPSBlbGVt
ZW50UmVjdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xp
ZW50SW1wbE1hYy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBs
TWFjLmgKaW5kZXggNDIxMDFhYjYxZTBmNjcyMTMyMmEyYzU0ZDFhNTFiOTk4OTYxMTRjNi4uYzkz
ZmJjYjFkNTIyY2YwNGY1MGNmOTA5NzZlNTJkMDRlYWYyYTg0ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmgKQEAgLTMwLDYgKzMwLDcgQEAK
ICNpbmNsdWRlICJDb3JyZWN0aW9uUGFuZWwuaCIKICNpbmNsdWRlICJQYWdlQ2xpZW50SW1wbENv
Y29hLmgiCiAjaW5jbHVkZSAiV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5oIgorI2luY2x1ZGUg
PFdlYkNvcmUvRE9NUGFzdGVBY2Nlc3MuaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRs
ZXIuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKQEAgLTIxNCw3ICsyMTUsNyBAQCBw
cml2YXRlOgogICAgIHZvaWQgd2lsbFJlY29yZE5hdmlnYXRpb25TbmFwc2hvdChXZWJCYWNrRm9y
d2FyZExpc3RJdGVtJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRSZW1vdmVOYXZpZ2F0aW9uR2Vz
dHVyZVNuYXBzaG90KCkgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIHJlcXVlc3RET01QYXN0ZUFjY2Vz
cyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
JiBjb21wbGV0aW9uKSBmaW5hbCB7IGNvbXBsZXRpb24oZmFsc2UpOyB9CisgICAgdm9pZCByZXF1
ZXN0RE9NUGFzdGVBY2Nlc3MoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFN0cmluZyYg
b3JpZ2luSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpET01QYXN0
ZUFjY2Vzc1Jlc3BvbnNlKT4mJiBjb21wbGV0aW9uKSBmaW5hbCB7IGNvbXBsZXRpb24oV2ViQ29y
ZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZTo6RGVuaWVkRm9yR2VzdHVyZSk7IH0KIAogICAgIE5T
VmlldyAqYWN0aXZlVmlldygpIGNvbnN0OwogICAgIE5TV2luZG93ICphY3RpdmVXaW5kb3coKSBj
b25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9QYWdlQ2xpZW50
SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93aW4vUGFnZUNsaWVudEltcGwuY3Bw
CmluZGV4IGNhNTAyM2VkNmUwZjlkNWJmODdkNzAyZWQ4NjI5YWZjMzMxMmJhZjQuLjI2NGIwMWMy
MjI3ZDc3Njk4NmY3OWNmYWFhMmNiYTczYzY0OTA4MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL3dpbi9QYWdlQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3Mvd2luL1BhZ2VDbGllbnRJbXBsLmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1
ZGUgIldlYlBhZ2VQcm94eS5oIgogI2luY2x1ZGUgIldlYlBvcHVwTWVudVByb3h5V2luLmgiCiAj
aW5jbHVkZSAiV2ViVmlldy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRE9NUGFzdGVBY2Nlc3MuaD4K
IAogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTM2Nyw5
ICszNjgsOSBAQCBIV05EIFBhZ2VDbGllbnRJbXBsOjp2aWV3V2lkZ2V0KCkKICAgICByZXR1cm4g
bV92aWV3LndpbmRvdygpOwogfQogCi12b2lkIFBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0RE9NUGFz
dGVBY2Nlc3MoY29uc3QgSW50UmVjdCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0RE9NUGFzdGVB
Y2Nlc3MoY29uc3QgSW50UmVjdCYsIGNvbnN0IFN0cmluZyYsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSk+JiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7Ci0gICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOworICAgIGNvbXBsZXRpb25IYW5kbGVy
KFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2U6OkRlbmllZEZvckdlc3R1cmUpOwogfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL3dpbi9QYWdlQ2xpZW50SW1wbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1Bh
Z2VDbGllbnRJbXBsLmgKaW5kZXggNzM5NmQzOWJjMTJlNGE3NzZkYWMzNTgxYWI1YjQ0NjVmZTRh
OWQ1ZS4uMWY5ZGE4NDA0MGE1Y2MwOWE0YzVlYzkwOTRhYWMzMjE4NjA2MzU0ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1BhZ2VDbGllbnRJbXBsLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1BhZ2VDbGllbnRJbXBsLmgKQEAgLTM0LDYgKzM0LDEw
IEBACiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRTaXpl
Lmg+CiAKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2VudW0gY2xhc3MgRE9NUGFzdGVBY2Nlc3NSZXNw
b25zZSA6IHVpbnQ4X3Q7Cit9CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBEcmF3aW5n
QXJlYVByb3h5OwpAQCAtMTQ0LDcgKzE0OCw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGRpZEZp
bmlzaFByb2Nlc3NpbmdBbGxQZW5kaW5nTW91c2VFdmVudHMoKSBmaW5hbCB7IH0KIAotICAgIHZv
aWQgcmVxdWVzdERPTVBhc3RlQWNjZXNzKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBmaW5hbDsKKyAgICB2b2lkIHJlcXVlc3RET01QYXN0
ZUFjY2Vzcyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgY29uc3QgU3RyaW5nJiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlKT4mJikgZmluYWw7
CiAKICAgICAvLyBNZW1iZXJzIG9mIFBhZ2VDbGllbnRJbXBsIGNsYXNzCiAgICAgRGVmYXVsdFVu
ZG9Db250cm9sbGVyIG1fdW5kb0NvbnRyb2xsZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCmluZGV4
IDkzNDA1NzEzYmQ4ZWZmNzRjOGFmYmQxOWJlNDc0MDNhNTc1MDQ2NmEuLjQ5ZDVlYjUyY2ZmY2M0
NjRmMTMzYmU3MDFjNGQ1MjBiZGRjODNiM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCkBAIC0z
OCw2ICszOCw3IEBACiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgIldlYlVuZG9T
dGVwLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9BcmNoaXZlUmVzb3VyY2UuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL0RPTVBhc3RlQWNjZXNzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudEZyYWdt
ZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Gb2N1c0NvbnRyb2xsZXIuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0ZyYW1lLmg+CkBAIC0zNTQsOSArMzU1LDkgQEAgdm9pZCBXZWJFZGl0b3JDbGllbnQ6
OnJlZG8oKQogICAgIG1fcGFnZS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RXhl
Y3V0ZVVuZG9SZWRvKFVuZG9PclJlZG86OlJlZG8pLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpF
eGVjdXRlVW5kb1JlZG86OlJlcGx5KCkpOwogfQogCi1ib29sIFdlYkVkaXRvckNsaWVudDo6cmVx
dWVzdERPTVBhc3RlQWNjZXNzKCkKK1dlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2UgV2Vi
RWRpdG9yQ2xpZW50OjpyZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoY29uc3QgU3RyaW5nJiBvcmlnaW5J
ZGVudGlmaWVyKQogewotICAgIHJldHVybiBtX3BhZ2UtPnJlcXVlc3RET01QYXN0ZUFjY2Vzcygp
OworICAgIHJldHVybiBtX3BhZ2UtPnJlcXVlc3RET01QYXN0ZUFjY2VzcyhvcmlnaW5JZGVudGlm
aWVyKTsKIH0KIAogI2lmIFBMQVRGT1JNKFdJTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAppbmRleCBiMTJi
YTYwMmZhZTM4MzU2YWNkYmNhZTk1YTFmYmFjZjA5NzkzMTc0Li4zMDk4OGVkODBmNWZjMjQyYjVj
NDUxZTZiMTZlODg3MTYyMmJhZWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCkBAIC0yOCw2ICsyOCwx
MCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRWRpdG9yQ2xpZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9UZXh0Q2hlY2tlckNsaWVudC5oPgogCituYW1lc3BhY2UgV2ViQ29yZSB7CitlbnVtIGNsYXNz
IERPTVBhc3RlQWNjZXNzUmVzcG9uc2UgOiB1aW50OF90OworfQorCiBuYW1lc3BhY2UgV2ViS2l0
IHsKIAogY2xhc3MgV2ViUGFnZTsKQEAgLTg4LDcgKzkyLDcgQEAgcHJpdmF0ZToKICAgICB2b2lk
IHJlZ2lzdGVyUmVkb1N0ZXAoV2ViQ29yZTo6VW5kb1N0ZXAmKSBmaW5hbDsKICAgICB2b2lkIGNs
ZWFyVW5kb1JlZG9PcGVyYXRpb25zKCkgZmluYWw7CiAKLSAgICBib29sIHJlcXVlc3RET01QYXN0
ZUFjY2VzcygpIGZpbmFsOworICAgIFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2UgcmVx
dWVzdERPTVBhc3RlQWNjZXNzKGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllcikgZmluYWw7
CiAKICAgICBib29sIGNhbkNvcHlDdXQoV2ViQ29yZTo6RnJhbWUqLCBib29sIGRlZmF1bHRWYWx1
ZSkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBjYW5QYXN0ZShXZWJDb3JlOjpGcmFtZSosIGJvb2wg
ZGVmYXVsdFZhbHVlKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggYjRjNTg1YzY3NTJlMDYzZmZjZTY1ZDMxYzhmYjU1OGU5
MTY0ZTM1Zi4uNTZlYjVmMGZjMTNlN2YzMjk2ODdkNGU0ZmI4NWUzMjM4Y2Y2YzlkOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTEzOSw2ICsx
MzksNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvQ2hyb21lLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9D
b21tb25WTS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ29udGV4dE1lbnVDb250cm9sbGVyLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9ET01QYXN0ZUFjY2Vzcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGF0
YVRyYW5zZmVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EYXRhYmFzZU1hbmFnZXIuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0RlcHJlY2F0ZWRHbG9iYWxTZXR0aW5ncy5oPgpAQCAtNjQ0MCwxMyArNjQ0
MSwxMSBAQCB2b2lkIFdlYlBhZ2U6OmRpZENvbXBsZXRlU2hhcmVTaGVldChib29sIHdhc0dyYW50
ZWQsIFNoYXJlU2hlZXRDYWxsYmFja0lEIGNhbGxiYQogICAgIGNhbGxiYWNrKHdhc0dyYW50ZWQp
OwogfQogCi1ib29sIFdlYlBhZ2U6OnJlcXVlc3RET01QYXN0ZUFjY2VzcygpCitXZWJDb3JlOjpE
T01QYXN0ZUFjY2Vzc1Jlc3BvbnNlIFdlYlBhZ2U6OnJlcXVlc3RET01QYXN0ZUFjY2Vzcyhjb25z
dCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIpCiB7Ci0gICAgYm9vbCBncmFudGVkID0gZmFsc2U7
Ci0gICAgaWYgKCFzZW5kU3luY1dpdGhEZWxheWVkUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6UmVxdWVzdERPTVBhc3RlQWNjZXNzKHJlY3RGb3JFbGVtZW50QXRJbnRlcmFjdGlvbkxvY2F0
aW9uKCkpLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSZXF1ZXN0RE9NUGFzdGVBY2Nlc3M6OlJl
cGx5KGdyYW50ZWQpKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgcmV0dXJuIGdyYW50
ZWQ7CisgICAgYXV0byByZXNwb25zZSA9IFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2U6
OkRlbmllZEZvckdlc3R1cmU7CisgICAgc2VuZFN5bmNXaXRoRGVsYXllZFJlcGx5KE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OlJlcXVlc3RET01QYXN0ZUFjY2VzcyhyZWN0Rm9yRWxlbWVudEF0SW50
ZXJhY3Rpb25Mb2NhdGlvbigpLCBvcmlnaW5JZGVudGlmaWVyKSwgTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6UmVxdWVzdERPTVBhc3RlQWNjZXNzOjpSZXBseShyZXNwb25zZSkpOworICAgIHJldHVy
biByZXNwb25zZTsKIH0KIAogdm9pZCBXZWJQYWdlOjpzaW11bGF0ZURldmljZU9yaWVudGF0aW9u
Q2hhbmdlKGRvdWJsZSBhbHBoYSwgZG91YmxlIGJldGEsIGRvdWJsZSBnYW1tYSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCA5ZWUwNmZiY2M1NTYyNmU2
ZGI5NTA2ODY0NmRjZTFlYzRhOTI0MGFjLi5mYzlmOWY1YTM4YzczZjhlZjVjNmI3OWE0NDA5ZTQ1
ZWVkMzI4NDlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
CkBAIC0xNzEsNiArMTcxLDcgQEAgY2xhc3MgVGV4dENoZWNraW5nUmVxdWVzdDsKIGNsYXNzIFZp
c2libGVQb3NpdGlvbjsKIAogZW51bSBTeW50aGV0aWNDbGlja1R5cGUgOiBpbnQ4X3Q7CitlbnVt
IGNsYXNzIERPTVBhc3RlQWNjZXNzUmVzcG9uc2UgOiB1aW50OF90OwogZW51bSBjbGFzcyBEcmFn
SGFuZGxpbmdNZXRob2QgOiB1aW50OF90OwogZW51bSBjbGFzcyBTaG91bGRUcmVhdEFzQ29udGlu
dWluZ0xvYWQgOiBib29sOwogZW51bSBjbGFzcyBUZXh0SW5kaWNhdG9yUHJlc2VudGF0aW9uVHJh
bnNpdGlvbiA6IHVpbnQ4X3Q7CkBAIC0xMTQ0LDcgKzExNDUsNyBAQCBwdWJsaWM6CiAgICAgICAg
IHJldHVybiBzZW5kU3luYyhXVEZNb3ZlKG1lc3NhZ2UpLCBXVEZNb3ZlKHJlcGx5KSwgbV9wYWdl
SUQsIFNlY29uZHM6OmluZmluaXR5KCksIElQQzo6U2VuZFN5bmNPcHRpb246OkluZm9ybVBsYXRm
b3JtUHJvY2Vzc1dpbGxTdXNwZW5kKTsKICAgICB9CiAKLSAgICBib29sIHJlcXVlc3RET01QYXN0
ZUFjY2VzcygpOworICAgIFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2UgcmVxdWVzdERP
TVBhc3RlQWNjZXNzKGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllcik7CiAgICAgV2ViQ29y
ZTo6SW50UmVjdCByZWN0Rm9yRWxlbWVudEF0SW50ZXJhY3Rpb25Mb2NhdGlvbigpIGNvbnN0Owog
CiAgICAgY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6Q29sb3I+JiBiYWNrZ3JvdW5kQ29sb3IoKSBj
b25zdCB7IHJldHVybiBtX2JhY2tncm91bmRDb2xvcjsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAppbmRleCBl
NGMyZmQ2Y2Y1ZjhmZTQzOTgyYjI1ZmZkYTI4ZTc4NmJiZjZmNzdkLi5mNTZjZjJjNGYzNTU1N2Vl
MzBjNTliODQwNzQ0ODIyNDU2MjlmYjdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaApAQCAtMjcsNiArMjcs
NyBAQAogICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KICAqLwogCisjaW1wb3J0IDxXZWJDb3JlL0RPTVBhc3RlQWNjZXNz
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0VkaXRvckNsaWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9U
ZXh0Q2hlY2tlckNsaWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9WaXNpYmxlU2VsZWN0aW9uLmg+
CkBAIC04MCw3ICs4MSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBnZXRDbGllbnRQYXN0ZWJvYXJk
RGF0YUZvclJhbmdlKFdlYkNvcmU6OlJhbmdlKiwgVmVjdG9yPFN0cmluZz4mIHBhc3RlYm9hcmRU
eXBlcywgVmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+PiYgcGFzdGVib2FyZERh
dGEpIGZpbmFsOwogCiAgICAgdm9pZCBzZXRJbnNlcnRpb25QYXN0ZWJvYXJkKGNvbnN0IFN0cmlu
ZyYpIGZpbmFsOwotICAgIGJvb2wgcmVxdWVzdERPTVBhc3RlQWNjZXNzKCkgZmluYWwgeyByZXR1
cm4gZmFsc2U7IH0KKyAgICBXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlIHJlcXVlc3RE
T01QYXN0ZUFjY2Vzcyhjb25zdCBTdHJpbmcmKSBmaW5hbCB7IHJldHVybiBXZWJDb3JlOjpET01Q
YXN0ZUFjY2Vzc1Jlc3BvbnNlOjpEZW5pZWRGb3JHZXN0dXJlOyB9CiAKICNpZiBVU0UoQVBQS0lU
KQogICAgIHZvaWQgdXBwZXJjYXNlV29yZCgpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAppbmRleCBi
NzBmN2NiNjY2YjQ5ZmE2NDE4ZTcwMjFhYWQzNWEyMzJmY2MwYmEzLi5lZWEyNzM1NGE2YTRjOWU0
MzJmNzkyNDNjYTZkMWRlMjA3MTg0YTg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaApAQCAtMjYsNiArMjYs
NyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJXZWJLaXQuaCIKKyNpbmNsdWRlIDxXZWJD
b3JlL0RPTVBhc3RlQWNjZXNzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9FZGl0b3JDbGllbnQuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1RleHRDaGVja2VyQ2xpZW50Lmg+CiAKQEAgLTExNCw3ICsxMTUs
NyBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6
VGV4dENoZWNraW5nUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlZpc2libGVTZWxlY3Rpb24mKSBm
aW5hbCB7IH0KICAgICBib29sIHBlcmZvcm1Ud29TdGVwRHJvcChXZWJDb3JlOjpEb2N1bWVudEZy
YWdtZW50JiwgV2ViQ29yZTo6UmFuZ2UmLCBib29sKSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQog
Ci0gICAgYm9vbCByZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoKSBmaW5hbCB7IHJldHVybiBmYWxzZTsg
fQorICAgIFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2UgcmVxdWVzdERPTVBhc3RlQWNj
ZXNzKGNvbnN0IFN0cmluZyYpIGZpbmFsIHsgcmV0dXJuIFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNz
UmVzcG9uc2U6OkRlbmllZEZvckdlc3R1cmU7IH0KIAogICAgIFdlYkNvcmU6OlRleHRDaGVja2Vy
Q2xpZW50KiB0ZXh0Q2hlY2tlcigpIGZpbmFsIHsgcmV0dXJuIHRoaXM7IH0KIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDk4
ZGM1ZjcyODQzMzJkYzNiMjQ1ZDEyMGQzNmYzMzhiOWEzN2IxYzIuLjE2ZDU0MGY1MzQxM2JkYTU1
ZDQ2MWZmZjgzNWJhNzhiNjZhMjI3NWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxOS0wMy0w
MSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9T
XSBQcm9ncmFtbWF0aWMgcGFzdGUgYWNjZXNzIHNob3VsZCBiZSBncmFudGVkIHdoZW4gY29weWlu
ZyBhbmQgcGFzdGluZyB3aXRoaW4gdGhlIHNhbWUgb3JpZ2luCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTUwNTMKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzQ4MTM0NzEwPgorCisgICAgICAgIFJldmlld2VkIGJ5IFJ5b3N1a2UgTml3YS4KKworICAg
ICAgICBBZGp1c3Qgc2V2ZXJhbCBleGlzdGluZyBET00gcGFzdGUgdGVzdHMgdG8gY29weSB0ZXh0
IGZyb20gYSBjaGlsZCBmcmFtZSB0aGF0IGhhcyBhIGRpZmZlcmVudCBvcmlnaW4gYXMgdGhlIG1h
aW4KKyAgICAgICAgZnJhbWUsIHN1Y2ggdGhhdCB3ZSdsbCB0cmlnZ2VyIHRoZSBwYXN0ZSBjYWxs
b3V0IG1lbnUgd2hlbiBwZXJmb3JtaW5nIGEgcHJvZ3JhbW1hdGljIHBhc3RlLiBBbHNvIGFkZCBh
IG5ldworICAgICAgICBsYXlvdXQgdGVzdCB0aGF0IGNvcGllcyBhbmQgcHJvZ3JhbW1hdGljYWxs
eSBwYXN0ZXMgd2l0aGluIHRoZSBzYW1lIGRvY3VtZW50LCB0byB2ZXJpZnkgdGhhdCBubyBwYXN0
ZSBjYWxsb3V0IGlzCisgICAgICAgIGRpc3BsYXllZCBhbmQgdGhlIHBhc3RlIGlzIGFsbG93ZWQu
CisKKyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9hcmQvaW9zL2RvbS1wYXN0ZS1jb25maXJtYXRp
b24tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGVkaXRpbmcvcGFzdGVib2FyZC9pb3MvZG9tLXBh
c3RlLWNvbmZpcm1hdGlvbi5odG1sOgorICAgICAgICAqIGVkaXRpbmcvcGFzdGVib2FyZC9pb3Mv
ZG9tLXBhc3RlLWNvbnNlY3V0aXZlLWNvbmZpcm1hdGlvbnMtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGVkaXRpbmcvcGFzdGVib2FyZC9pb3MvZG9tLXBhc3RlLWNvbnNlY3V0aXZlLWNvbmZpcm1h
dGlvbnMuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9hcmQvaW9zL2RvbS1wYXN0ZS1y
ZWplY3Rpb24tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGVkaXRpbmcvcGFzdGVib2FyZC9pb3Mv
ZG9tLXBhc3RlLXJlamVjdGlvbi5odG1sOgorICAgICAgICAqIGVkaXRpbmcvcGFzdGVib2FyZC9p
b3MvZG9tLXBhc3RlLXJlcXVpcmVzLXVzZXItZ2VzdHVyZS1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogZWRpdGluZy9wYXN0ZWJvYXJkL2lvcy9kb20tcGFzdGUtcmVxdWlyZXMtdXNlci1nZXN0dXJl
Lmh0bWw6CisgICAgICAgICogZWRpdGluZy9wYXN0ZWJvYXJkL2lvcy9kb20tcGFzdGUtc2FtZS1v
cmlnaW4tZXhwZWN0ZWQudHh0OiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3Rl
Ym9hcmQvaW9zL2RvbS1wYXN0ZS1jb25maXJtYXRpb24tZXhwZWN0ZWQudHh0LgorICAgICAgICAq
IGVkaXRpbmcvcGFzdGVib2FyZC9pb3MvZG9tLXBhc3RlLXNhbWUtb3JpZ2luLmh0bWw6IENvcGll
ZCBmcm9tIExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9pb3MvZG9tLXBhc3RlLWNvbmZp
cm1hdGlvbi5odG1sLgorCiAyMDE5LTAzLTAxICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBs
ZS5jb20+CiAKICAgICAgICAgRW5hYmxlIFdQVCBQb2ludGVyIEV2ZW50cyB0ZXN0cwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2lvcy9kb20tcGFzdGUtY29uZmly
bWF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9pb3Mv
ZG9tLXBhc3RlLWNvbmZpcm1hdGlvbi1leHBlY3RlZC50eHQKaW5kZXggMWU1MjI4OThiZjY3MWMz
ZGRiNTAwNTJhNmEwZGM3OGUwY2MyYzk2Ny4uMzdjNzgzYTJlMjg5N2JlOTUyOTFiNmEwNGQwZjZm
OWZhNjhmZTE0ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2lv
cy9kb20tcGFzdGUtY29uZmlybWF0aW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9l
ZGl0aW5nL3Bhc3RlYm9hcmQvaW9zL2RvbS1wYXN0ZS1jb25maXJtYXRpb24tZXhwZWN0ZWQudHh0
CkBAIC0xLDYgKzEsNiBAQAogQ2xpY2sgaGVyZSB0byBjb3B5CiBDbGljayBoZXJlIHRvIGNvcHkK
LUNsaWNrIGhlcmUgdG8gY29weQorCiBWZXJpZmllcyB0aGF0IGEgY2FsbG91dCBpcyBzaG93biB3
aGVuIHRoZSBwYWdlIHByb2dyYW1tYXRpY2FsbHkgdHJpZ2dlcnMgcGFzdGUsIGFuZCB0aGF0IHRh
cHBpbmcgdGhlIGNhbGxvdXQgYWxsb3dzIHRoZSBwYXN0ZSB0byBoYXBwZW4uIFRvIG1hbnVhbGx5
IHRlc3QsIHRhcCB0aGUgdGV4dCBvbiB0aGUgYm90dG9tLCB0YXAgdGhlIGVkaXRhYmxlIGFyZWEg
YWJvdmUsIGFuZCB0aGVuIHNlbGVjdCAnUGFzdGUnIGluIHRoZSByZXN1bHRpbmcgY2FsbG91dCBt
ZW51LiBUaGUgdGV4dCAnQ2xpY2sgaGVyZSB0byBjb3B5JyBzaG91bGQgYmUgcGFzdGVkIHR3aWNl
IGluIHRoZSBlZGl0YWJsZSBhcmVhLgogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvaW9zL2RvbS1wYXN0ZS1jb25m
aXJtYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9pb3MvZG9tLXBh
c3RlLWNvbmZpcm1hdGlvbi5odG1sCmluZGV4IDc0YzU4OWExYjk3OGJjODY2ZjI2YTIxODFjZTVj
MDkyYTljNGY4NjQuLjAwYzIzM2Q1MzZlNmQyMThmZThlYzhjN2VjOTYzOWNlNTRiYTgwOTAgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9pb3MvZG9tLXBhc3RlLWNv
bmZpcm1hdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9pb3Mv
ZG9tLXBhc3RlLWNvbmZpcm1hdGlvbi5odG1sCkBAIC0xMCwxMiArMTAsNyBAQCBib2R5IHsKICAg
ICBtYXJnaW46IDA7CiB9CiAKLSNjb3B5LCAjZWRpdG9yIHsKLSAgICB0ZXh0LWFsaWduOiBjZW50
ZXI7Ci19Ci0KICNjb3B5IHsKLSAgICBmb250LXNpemU6IDQwcHg7CiAgICAgd2lkdGg6IDEwMCU7
CiAgICAgaGVpZ2h0OiA1MHB4OwogICAgIGJvcmRlcjogMXB4IGRhc2hlZCBibGFjazsKQEAgLTI1
LDI4ICsyMCwyOSBAQCBib2R5IHsKICAgICB3aWR0aDogMTAwJTsKICAgICBoZWlnaHQ6IDEwMHB4
OwogICAgIGJvcmRlcjogMXB4IGRhc2hlZCBzaWx2ZXI7CisgICAgdGV4dC1hbGlnbjogY2VudGVy
OwogfQogPC9zdHlsZT4KIDwvaGVhZD4KIDxib2R5PgogPGRpdiBpZD0iZWRpdG9yIiBjb250ZW50
ZWRpdGFibGU+PC9kaXY+Ci08ZGl2IGlkPSJjb3B5Ij5DbGljayBoZXJlIHRvIGNvcHk8L2Rpdj4K
KzxpZnJhbWUgaWQ9ImNvcHkiIHNyYz0iZGF0YTp0ZXh0L2h0bWwsPGRpdiBpZD0nY29weScgc3R5
bGU9J2ZvbnQtc2l6ZTogNDBweDsgdGV4dC1hbGlnbjogY2VudGVyOyc+Q2xpY2sgaGVyZSB0byBj
b3B5PC9kaXY+CisgICAgPHNjcmlwdD4KKyAgICBjb3B5LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNr
JywgKCkgPT4geworICAgICAgICBnZXRTZWxlY3Rpb24oKS5zZWxlY3RBbGxDaGlsZHJlbihjb3B5
KTsKKyAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ0NvcHknKTsKKyAgICAgICAgZ2V0U2Vs
ZWN0aW9uKCkucmVtb3ZlQWxsUmFuZ2VzKCk7CisgICAgfSk7CisgICAgPC9zY3JpcHQ+Ij48L2lm
cmFtZT4KIDxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KIDxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgogPHNjcmlwdD4KIGpzVGVzdElzQXN5bmMgPSB0cnVlOwogCi1jb25zdCBjb3B5ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvcHkiKTsKIGNvbnN0IGVkaXRvciA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJlZGl0b3IiKTsKIAogZGVzY3JpcHRpb24oIlZlcmlmaWVzIHRoYXQgYSBj
YWxsb3V0IGlzIHNob3duIHdoZW4gdGhlIHBhZ2UgcHJvZ3JhbW1hdGljYWxseSB0cmlnZ2VycyBw
YXN0ZSwgYW5kIHRoYXQgdGFwcGluZyB0aGUgY2FsbG91dCBhbGxvd3MgdGhlIHBhc3RlIHRvIGhh
cHBlbi4gVG8gbWFudWFsbHkgdGVzdCwgdGFwIHRoZSB0ZXh0IG9uIHRoZSBib3R0b20sIHRhcCB0
aGUgZWRpdGFibGUgYXJlYSBhYm92ZSwgYW5kIHRoZW4gc2VsZWN0ICdQYXN0ZScgaW4gdGhlIHJl
c3VsdGluZyBjYWxsb3V0IG1lbnUuIFRoZSB0ZXh0ICdDbGljayBoZXJlIHRvIGNvcHknIHNob3Vs
ZCBiZSBwYXN0ZWQgPHN0cm9uZz48ZW0+dHdpY2U8L2VtPjwvc3Ryb25nPiBpbiB0aGUgZWRpdGFi
bGUgYXJlYS4iKTsKIAotY29weS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsICgpID0+IHsKLSAg
ICBnZXRTZWxlY3Rpb24oKS5zZWxlY3RBbGxDaGlsZHJlbihjb3B5KTsKLSAgICBkb2N1bWVudC5l
eGVjQ29tbWFuZCgiQ29weSIpOwotICAgIGdldFNlbGVjdGlvbigpLnJlbW92ZUFsbFJhbmdlcygp
OwotfSk7Ci0KIGVkaXRvci5hZGRFdmVudExpc3RlbmVyKCJwYXN0ZSIsIGV2ZW50ID0+IHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygiZXZlbnQuY2xpcGJvYXJkRGF0YS5nZXREYXRhKCd0ZXh0L3BsYWlu
JykiLCAiQ2xpY2sgaGVyZSB0byBjb3B5IikpOwogZWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoImNs
aWNrIiwgZXZlbnQgPT4gewogICAgIGdldFNlbGVjdGlvbigpLnNldFBvc2l0aW9uKGVkaXRvcik7
CkBAIC02MCwxNCArNTYsMTQgQEAgZWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZXZl
bnQgPT4gewogICAgIGVkaXRvci5ibHVyKCk7CiB9KTsKIAotKGFzeW5jICgpID0+IHsKK2FkZEV2
ZW50TGlzdGVuZXIoImxvYWQiLCBhc3luYyAoKSA9PiB7CiAgICAgaWYgKCF3aW5kb3cudGVzdFJ1
bm5lcikKICAgICAgICAgcmV0dXJuOwogCiAgICAgYXdhaXQgVUlIZWxwZXIuYWN0aXZhdGVBdCgx
NjAsIDEyNSk7CiAgICAgYXdhaXQgdHJpZ2dlclBhc3RlTWVudUFmdGVyVGFwQXQoMTYwLCA1MCk7
CiAgICAgZmluaXNoSlNUZXN0KCk7Ci19KSgpOworfSk7CiA8L3NjcmlwdD4KIDwvYm9keT4KIDwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9pb3MvZG9t
LXBhc3RlLWNvbnNlY3V0aXZlLWNvbmZpcm1hdGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZWRpdGluZy9wYXN0ZWJvYXJkL2lvcy9kb20tcGFzdGUtY29uc2VjdXRpdmUtY29uZmlybWF0
aW9ucy1leHBlY3RlZC50eHQKaW5kZXggYWQzNjI3M2ViYzUwNDY0YWQyYWYxMTRiYTMyNTA4ODQ0
M2M5ZmMzOS4uMDU2YjQ4MDViMDA0NDRhMDA3Nzg0ZGNmMjFjYjAzMTY2MjQ1YmUxYyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2lvcy9kb20tcGFzdGUtY29uc2Vj
dXRpdmUtY29uZmlybWF0aW9ucy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9wYXN0ZWJvYXJkL2lvcy9kb20tcGFzdGUtY29uc2VjdXRpdmUtY29uZmlybWF0aW9ucy1leHBl
Y3RlZC50eHQKQEAgLTEsNCArMSw0IEBACi1DbGljayBoZXJlIHRvIGNvcHkKKwogVmVyaWZpZXMg
dGhhdCBubyBjYWxsb3V0IGlzIHNob3duIHdoZW4gdGhlIHBhZ2UgcHJvZ3JhbW1hdGljYWxseSB0
cmlnZ2VycyBwYXN0ZSBvbiBhIHRpbWVyIGFmdGVyIHVzZXIgaW50ZXJhY3Rpb24uIFRvIHRlc3Qg
bWFudWFsbHksIGNsaWNrIHRoZSB0ZXh0IG9uIHRoZSBib3R0b20gdG8gY29weSwgYW5kIHRoZW4g
Y2xpY2sgdGhlIGVkaXRhYmxlIGFyZWEgYWJvdmUgdG8gdHJpZ2dlciB0d28gcHJvZ3JhbW1hdGlj
IHBhc3RlcyB3aXRoIHRoZSBjYWxsb3V0IGJhci4gQ2hlY2sgdGhhdCBwZXJtaXNzaW9ucyBmb3Ig
dGhlIGZpcnN0IHByb2dyYW1tYXRpYyBwYXN0ZSBkbyBub3QgYWZmZWN0IHRoZSBzZWNvbmQgcHJv
Z3JhbW1hdGljIHBhc3RlLCBzaW5jZSBpdCBpcyBwZXJmb3JtZWQgb24gYSB6ZXJvLWRlbGF5IHRp
bWVyLgogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9lZGl0aW5nL3Bhc3RlYm9hcmQvaW9zL2RvbS1wYXN0ZS1jb25zZWN1dGl2ZS1jb25maXJtYXRp
b25zLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvaW9zL2RvbS1wYXN0ZS1j
b25zZWN1dGl2ZS1jb25maXJtYXRpb25zLmh0bWwKaW5kZXggNzk3MWE1ODZmMDMyZjZlOTA5OGQ5
MmIzNjFjNmE5NGY1ZTg5N2ZhMi4uNWNlZWJiZDQzMmQ3MWE1ZDM3MThjOGRlNjdlMzEwYTMyNDY0
Y2JhOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2lvcy9kb20t
cGFzdGUtY29uc2VjdXRpdmUtY29uZmlybWF0aW9ucy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Vk
aXRpbmcvcGFzdGVib2FyZC9pb3MvZG9tLXBhc3RlLWNvbnNlY3V0aXZlLWNvbmZpcm1hdGlvbnMu
aHRtbApAQCAtMTAsMTIgKzEwLDcgQEAgYm9keSB7CiAgICAgbWFyZ2luOiAwOwogfQogCi0jY29w
eSwgI2VkaXRvciB7Ci0gICAgdGV4dC1hbGlnbjogY2VudGVyOwotfQotCiAjY29weSB7Ci0gICAg
Zm9udC1zaXplOiA0MHB4OwogICAgIHdpZHRoOiAxMDAlOwogICAgIGhlaWdodDogNTBweDsKICAg
ICBib3JkZXI6IDFweCBkYXNoZWQgYmxhY2s7CkBAIC0yNSwxOCArMjAsMjUgQEAgYm9keSB7CiAg
ICAgd2lkdGg6IDEwMCU7CiAgICAgaGVpZ2h0OiAxMDBweDsKICAgICBib3JkZXI6IDFweCBkYXNo
ZWQgc2lsdmVyOworICAgIHRleHQtYWxpZ246IGNlbnRlcjsKIH0KIDwvc3R5bGU+CiA8L2hlYWQ+
CiA8Ym9keT4KIDxkaXYgaWQ9ImVkaXRvciIgY29udGVudGVkaXRhYmxlPjwvZGl2PgotPGRpdiBp
ZD0iY29weSI+Q2xpY2sgaGVyZSB0byBjb3B5PC9kaXY+Cis8aWZyYW1lIGlkPSJjb3B5IiBzcmM9
ImRhdGE6dGV4dC9odG1sLDxkaXYgaWQ9J2NvcHknIHN0eWxlPSdmb250LXNpemU6IDQwcHg7IHRl
eHQtYWxpZ246IGNlbnRlcjsnPkNsaWNrIGhlcmUgdG8gY29weTwvZGl2PgorICAgIDxzY3JpcHQ+
CisgICAgY29weS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHsKKyAgICAgICAgZ2V0
U2VsZWN0aW9uKCkuc2VsZWN0QWxsQ2hpbGRyZW4oY29weSk7CisgICAgICAgIGRvY3VtZW50LmV4
ZWNDb21tYW5kKCdDb3B5Jyk7CisgICAgICAgIGdldFNlbGVjdGlvbigpLnJlbW92ZUFsbFJhbmdl
cygpOworICAgIH0pOworICAgIDwvc2NyaXB0PiI+PC9pZnJhbWU+CiA8ZGl2IGlkPSJkZXNjcmlw
dGlvbiI+PC9kaXY+CiA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KIDxzY3JpcHQ+CiBqc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKIAotY29uc3QgY29weSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJj
b3B5Iik7CiBjb25zdCBlZGl0b3IgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZWRpdG9yIik7
CiAKIGRlc2NyaXB0aW9uKCJWZXJpZmllcyB0aGF0IG5vIGNhbGxvdXQgaXMgc2hvd24gd2hlbiB0
aGUgcGFnZSBwcm9ncmFtbWF0aWNhbGx5IHRyaWdnZXJzIHBhc3RlIG9uIGEgdGltZXIgYWZ0ZXIg
dXNlciBpbnRlcmFjdGlvbi4gVG8gdGVzdCBtYW51YWxseSwgY2xpY2sgdGhlIHRleHQgb24gdGhl
IGJvdHRvbSB0byBjb3B5LCBhbmQgdGhlbiBjbGljayB0aGUgZWRpdGFibGUgYXJlYSBhYm92ZSB0
byB0cmlnZ2VyIHR3byBwcm9ncmFtbWF0aWMgcGFzdGVzIHdpdGggdGhlIGNhbGxvdXQgYmFyLiBD
aGVjayB0aGF0IHBlcm1pc3Npb25zIGZvciB0aGUgZmlyc3QgcHJvZ3JhbW1hdGljIHBhc3RlIGRv
IG5vdCBhZmZlY3QgdGhlIHNlY29uZCBwcm9ncmFtbWF0aWMgcGFzdGUsIHNpbmNlIGl0IGlzIHBl
cmZvcm1lZCBvbiBhIHplcm8tZGVsYXkgdGltZXIuIik7CkBAIC02MCwxMiArNjIsNiBAQCBhc3lu
YyBmdW5jdGlvbiB3YWl0Rm9yQW5kVGFwUGFzdGVNZW51VHdpY2UoKSB7CiAgICAgfSk7CiB9CiAK
LWNvcHkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCAoKSA9PiB7Ci0gICAgZ2V0U2VsZWN0aW9u
KCkuc2VsZWN0QWxsQ2hpbGRyZW4oY29weSk7Ci0gICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoIkNv
cHkiKTsKLSAgICBnZXRTZWxlY3Rpb24oKS5yZW1vdmVBbGxSYW5nZXMoKTsKLX0pOwotCiBmdW5j
dGlvbiBwYXN0ZSgpIHsKICAgICBnZXRTZWxlY3Rpb24oKS5zZXRQb3NpdGlvbihlZGl0b3IpOwog
ICAgIHNob3VsZEJlKCJkb2N1bWVudC5leGVjQ29tbWFuZCgnUGFzdGUnKSIsICJ0cnVlIik7CkBA
IC04MCwxNCArNzYsMTQgQEAgZWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZXZlbnQg
PT4gewogICAgIHNldFRpbWVvdXQocGFzdGUsIDApOwogfSk7CiAKLShhc3luYyAoKSA9PiB7Cith
ZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgYXN5bmMgKCkgPT4gewogICAgIGlmICghd2luZG93LnRl
c3RSdW5uZXIgfHwgIXdpbmRvdy5pbnRlcm5hbHMpCiAgICAgICAgIHJldHVybjsKIAogICAgIHdh
aXRGb3JBbmRUYXBQYXN0ZU1lbnVUd2ljZSgpLnRoZW4oZmluaXNoSlNUZXN0KTsKICAgICBhd2Fp
dCBVSUhlbHBlci5hY3RpdmF0ZUF0KDE2MCwgMTI1KTsKICAgICBhd2FpdCBVSUhlbHBlci5hY3Rp
dmF0ZUF0KDE2MCwgNTApOwotfSkoKTsKK30pOwogPC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvaW9zL2RvbS1wYXN0
ZS1yZWplY3Rpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJk
L2lvcy9kb20tcGFzdGUtcmVqZWN0aW9uLWV4cGVjdGVkLnR4dAppbmRleCBiY2NhZDE3MzJiNTJh
YTM4NDA2NTdhZjM4YzdmZjY5YzgyMzIwZmEyLi5jM2FkYWQ3MTRhYTdkZGI0ZTVlYmExOTgxM2Zk
MDYwZDQ1NmFhNGZmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQv
aW9zL2RvbS1wYXN0ZS1yZWplY3Rpb24tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Vk
aXRpbmcvcGFzdGVib2FyZC9pb3MvZG9tLXBhc3RlLXJlamVjdGlvbi1leHBlY3RlZC50eHQKQEAg
LTEsNCArMSw0IEBACi1DbGljayBoZXJlIHRvIGNvcHkKKwogVmVyaWZpZXMgdGhhdCBhIGNhbGxv
dXQgaXMgc2hvd24gd2hlbiB0aGUgcGFnZSBwcm9ncmFtbWF0aWNhbGx5IHRyaWdnZXJzIHBhc3Rl
LCBhbmQgdGhhdCBkaXNtaXNzaW5nIHRoZSBjYWxsb3V0IHByZXZlbnRzIHRoZSBwYXN0ZSBmcm9t
IGhhcHBlbmluZy4gVG8gbWFudWFsbHkgdGVzdCwgdGFwIHRoZSB0ZXh0IG9uIHRoZSBib3R0b20s
IHRhcCB0aGUgZWRpdGFibGUgYXJlYSBhYm92ZSwgYW5kIHRoZW4gZGlzbWlzcyB0aGUgcmVzdWx0
aW5nIGNhbGxvdXQgbWVudSBieSBzY3JvbGxpbmcgb3IgdGFwcGluZyBlbHNld2hlcmUuIFRoZSB0
ZXh0ICdDbGljayBoZXJlIHRvIGNvcHknIHNob3VsZCBub3QgYmUgcGFzdGVkLCBhbmQgdGhlIGNh
bGxvdXQgYmFyIHNob3VsZCBkaXNhcHBlYXIuCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9pb3MvZG9tLXBhc3Rl
LXJlamVjdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2lvcy9kb20t
cGFzdGUtcmVqZWN0aW9uLmh0bWwKaW5kZXggNzUxNWJhYTgxN2U1N2E4NDEyZjY5NGM2YmI3OWJi
ZWMwZGZmY2Q5Ny4uNzNkMmY4ZjA0NjJiMDE2NzIyMzIzNjRlOTVhYTQ4YTljMjQyOTYzYiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2lvcy9kb20tcGFzdGUtcmVq
ZWN0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2lvcy9kb20t
cGFzdGUtcmVqZWN0aW9uLmh0bWwKQEAgLTEwLDEyICsxMCw3IEBAIGJvZHkgewogICAgIG1hcmdp
bjogMDsKIH0KIAotI2NvcHksICNlZGl0b3IgewotICAgIHRleHQtYWxpZ246IGNlbnRlcjsKLX0K
LQogI2NvcHkgewotICAgIGZvbnQtc2l6ZTogNDBweDsKICAgICB3aWR0aDogMTAwJTsKICAgICBo
ZWlnaHQ6IDUwcHg7CiAgICAgYm9yZGVyOiAxcHggZGFzaGVkIGJsYWNrOwpAQCAtMjUsMjggKzIw
LDI5IEBAIGJvZHkgewogICAgIHdpZHRoOiAxMDAlOwogICAgIGhlaWdodDogMTAwcHg7CiAgICAg
Ym9yZGVyOiAxcHggZGFzaGVkIHNpbHZlcjsKKyAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiB9CiA8
L3N0eWxlPgogPC9oZWFkPgogPGJvZHk+CiA8ZGl2IGlkPSJlZGl0b3IiIGNvbnRlbnRlZGl0YWJs
ZT48L2Rpdj4KLTxkaXYgaWQ9ImNvcHkiPkNsaWNrIGhlcmUgdG8gY29weTwvZGl2PgorPGlmcmFt
ZSBpZD0iY29weSIgc3JjPSJkYXRhOnRleHQvaHRtbCw8ZGl2IGlkPSdjb3B5JyBzdHlsZT0nZm9u
dC1zaXplOiA0MHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7Jz5DbGljayBoZXJlIHRvIGNvcHk8L2Rp
dj4KKyAgICA8c2NyaXB0PgorICAgIGNvcHkuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9
PiB7CisgICAgICAgIGdldFNlbGVjdGlvbigpLnNlbGVjdEFsbENoaWxkcmVuKGNvcHkpOworICAg
ICAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgnQ29weScpOworICAgICAgICBnZXRTZWxlY3Rpb24o
KS5yZW1vdmVBbGxSYW5nZXMoKTsKKyAgICB9KTsKKyAgICA8L3NjcmlwdD4iPjwvaWZyYW1lPgog
PGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgogPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CiA8
c2NyaXB0PgoganNUZXN0SXNBc3luYyA9IHRydWU7CiAKLWNvbnN0IGNvcHkgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiY29weSIpOwogY29uc3QgZWRpdG9yID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImVkaXRvciIpOwogCiBkZXNjcmlwdGlvbigiVmVyaWZpZXMgdGhhdCBhIGNhbGxvdXQg
aXMgc2hvd24gd2hlbiB0aGUgcGFnZSBwcm9ncmFtbWF0aWNhbGx5IHRyaWdnZXJzIHBhc3RlLCBh
bmQgdGhhdCBkaXNtaXNzaW5nIHRoZSBjYWxsb3V0IHByZXZlbnRzIHRoZSBwYXN0ZSBmcm9tIGhh
cHBlbmluZy4gVG8gbWFudWFsbHkgdGVzdCwgdGFwIHRoZSB0ZXh0IG9uIHRoZSBib3R0b20sIHRh
cCB0aGUgZWRpdGFibGUgYXJlYSBhYm92ZSwgYW5kIHRoZW4gZGlzbWlzcyB0aGUgcmVzdWx0aW5n
IGNhbGxvdXQgbWVudSBieSBzY3JvbGxpbmcgb3IgdGFwcGluZyBlbHNld2hlcmUuIFRoZSB0ZXh0
ICdDbGljayBoZXJlIHRvIGNvcHknIHNob3VsZCA8c3Ryb25nPm5vdDwvc3Ryb25nPiBiZSBwYXN0
ZWQsIGFuZCB0aGUgY2FsbG91dCBiYXIgc2hvdWxkIGRpc2FwcGVhci4iKTsKIAotY29weS5hZGRF
dmVudExpc3RlbmVyKCJjbGljayIsICgpID0+IHsKLSAgICBnZXRTZWxlY3Rpb24oKS5zZWxlY3RB
bGxDaGlsZHJlbihjb3B5KTsKLSAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgiQ29weSIpOwotICAg
IGdldFNlbGVjdGlvbigpLnJlbW92ZUFsbFJhbmdlcygpOwotfSk7Ci0KIGVkaXRvci5hZGRFdmVu
dExpc3RlbmVyKCJwYXN0ZSIsIGV2ZW50ID0+IHNob3VsZEJlRXF1YWxUb1N0cmluZygiZXZlbnQu
Y2xpcGJvYXJkRGF0YS5nZXREYXRhKCd0ZXh0L3BsYWluJykiLCAiQ2xpY2sgaGVyZSB0byBjb3B5
IikpOwogZWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZXZlbnQgPT4gewogICAgIGdl
dFNlbGVjdGlvbigpLnNldFBvc2l0aW9uKGVkaXRvcik7CkBAIC01OSwxNCArNTUsMTQgQEAgZWRp
dG9yLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZXZlbnQgPT4gewogICAgIGVkaXRvci5ibHVy
KCk7CiB9KTsKIAotKGFzeW5jICgpID0+IHsKK2FkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBhc3lu
YyAoKSA9PiB7CiAgICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lcikKICAgICAgICAgcmV0dXJuOwog
CiAgICAgYXdhaXQgVUlIZWxwZXIuYWN0aXZhdGVBdCgxNjAsIDEyNSk7CiAgICAgYXdhaXQgdHJp
Z2dlclBhc3RlTWVudUFmdGVyVGFwQXQoMTYwLCA1MCwgZmFsc2UpOwogICAgIGZpbmlzaEpTVGVz
dCgpOwotfSkoKTsKK30pOwogPC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvaW9zL2RvbS1wYXN0ZS1yZXF1aXJlcy11
c2VyLWdlc3R1cmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJk
L2lvcy9kb20tcGFzdGUtcmVxdWlyZXMtdXNlci1nZXN0dXJlLWV4cGVjdGVkLnR4dAppbmRleCA2
N2FhZWNhMzJhZTI1Zjg2NjJkMTRjOTQwZGY2MTM5ZjdlZWJlYmVkLi5mMTAwYmE2YzMwZmRhOWE0
ZjY4YmEzOTE1NDBlMDVhMWIyNGExNTg1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5n
L3Bhc3RlYm9hcmQvaW9zL2RvbS1wYXN0ZS1yZXF1aXJlcy11c2VyLWdlc3R1cmUtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9pb3MvZG9tLXBhc3RlLXJl
cXVpcmVzLXVzZXItZ2VzdHVyZS1leHBlY3RlZC50eHQKQEAgLTEsNSArMSw1IEBACiBDbGljayBo
ZXJlIHRvIGNvcHkKLUNsaWNrIGhlcmUgdG8gY29weQorCiBWZXJpZmllcyB0aGF0IG5vIGNhbGxv
dXQgaXMgc2hvd24gd2hlbiB0aGUgcGFnZSBwcm9ncmFtbWF0aWNhbGx5IHRyaWdnZXJzIHBhc3Rl
IG91dHNpZGUgdGhlIHNjb3BlIG9mIHVzZXIgaW50ZXJhY3Rpb24uIFRoaXMgdGVzdCByZXF1aXJl
cyBXZWJLaXRUZXN0UnVubmVyLgogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvaW9zL2RvbS1wYXN0ZS1yZXF1aXJl
cy11c2VyLWdlc3R1cmUuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9pb3Mv
ZG9tLXBhc3RlLXJlcXVpcmVzLXVzZXItZ2VzdHVyZS5odG1sCmluZGV4IDUyMjNmNjNlNzVmYTdh
OGY2NWU0NDk5MTkxYmVkYjU2ZDlkZWM4YTIuLmJkZjQ4OWJmNGFmODg3YTFkMDljY2I5OGMxM2Fk
YWM5MGQ0MThhZjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9p
b3MvZG9tLXBhc3RlLXJlcXVpcmVzLXVzZXItZ2VzdHVyZS5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2VkaXRpbmcvcGFzdGVib2FyZC9pb3MvZG9tLXBhc3RlLXJlcXVpcmVzLXVzZXItZ2VzdHVyZS5o
dG1sCkBAIC0xMCwxMiArMTAsNyBAQCBib2R5IHsKICAgICBtYXJnaW46IDA7CiB9CiAKLSNjb3B5
LCAjZWRpdG9yIHsKLSAgICB0ZXh0LWFsaWduOiBjZW50ZXI7Ci19Ci0KICNjb3B5IHsKLSAgICBm
b250LXNpemU6IDQwcHg7CiAgICAgd2lkdGg6IDEwMCU7CiAgICAgaGVpZ2h0OiA1MHB4OwogICAg
IGJvcmRlcjogMXB4IGRhc2hlZCBibGFjazsKQEAgLTI1LDM2ICsyMCwzOSBAQCBib2R5IHsKICAg
ICB3aWR0aDogMTAwJTsKICAgICBoZWlnaHQ6IDEwMHB4OwogICAgIGJvcmRlcjogMXB4IGRhc2hl
ZCBzaWx2ZXI7CisgICAgdGV4dC1hbGlnbjogY2VudGVyOwogfQogPC9zdHlsZT4KIDwvaGVhZD4K
IDxib2R5PgogPGRpdiBpZD0iZWRpdG9yIiBjb250ZW50ZWRpdGFibGU+PC9kaXY+Ci08ZGl2IGlk
PSJjb3B5Ij5DbGljayBoZXJlIHRvIGNvcHk8L2Rpdj4KKzxpZnJhbWUgaWQ9ImNvcHkiIHNyYz0i
ZGF0YTp0ZXh0L2h0bWwsPGRpdiBpZD0nY29weScgc3R5bGU9J2ZvbnQtc2l6ZTogNDBweDsgdGV4
dC1hbGlnbjogY2VudGVyOyc+Q2xpY2sgaGVyZSB0byBjb3B5PC9kaXY+CisgICAgPHNjcmlwdD4K
KyAgICBjb3B5LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4geworICAgICAgICBnZXRT
ZWxlY3Rpb24oKS5zZWxlY3RBbGxDaGlsZHJlbihjb3B5KTsKKyAgICAgICAgZG9jdW1lbnQuZXhl
Y0NvbW1hbmQoJ0NvcHknKTsKKyAgICAgICAgZ2V0U2VsZWN0aW9uKCkucmVtb3ZlQWxsUmFuZ2Vz
KCk7CisgICAgfSk7CisgICAgPC9zY3JpcHQ+Ij48L2lmcmFtZT4KIDxkaXYgaWQ9ImRlc2NyaXB0
aW9uIj48L2Rpdj4KIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgogPHNjcmlwdD4KIGpzVGVzdElz
QXN5bmMgPSB0cnVlOwogCi1jb25zdCBjb3B5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNv
cHkiKTsKIGNvbnN0IGVkaXRvciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlZGl0b3IiKTsK
IAogZGVzY3JpcHRpb24oIlZlcmlmaWVzIHRoYXQgbm8gY2FsbG91dCBpcyBzaG93biB3aGVuIHRo
ZSBwYWdlIHByb2dyYW1tYXRpY2FsbHkgdHJpZ2dlcnMgcGFzdGUgb3V0c2lkZSB0aGUgc2NvcGUg
b2YgdXNlciBpbnRlcmFjdGlvbi4gVGhpcyB0ZXN0IHJlcXVpcmVzIFdlYktpdFRlc3RSdW5uZXIu
Iik7CiAKLWNvcHkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCAoKSA9PiB7Ci0gICAgZ2V0U2Vs
ZWN0aW9uKCkuc2VsZWN0QWxsQ2hpbGRyZW4oY29weSk7Ci0gICAgZG9jdW1lbnQuZXhlY0NvbW1h
bmQoIkNvcHkiKTsKLSAgICBnZXRTZWxlY3Rpb24oKS5yZW1vdmVBbGxSYW5nZXMoKTsKLX0pOwot
Ci1VSUhlbHBlci5hY3RpdmF0ZUF0KDE2MCwgMTI1KS50aGVuKCgpID0+IHsKLSAgICBlZGl0b3Iu
Zm9jdXMoKTsKLSAgICB3YWl0Rm9yUGFzdGVNZW51KCkudGhlbihmaW5pc2hKU1Rlc3QpOworYWRk
RXZlbnRMaXN0ZW5lcigibG9hZCIsIGFzeW5jICgpID0+IHsKKyAgICBVSUhlbHBlci5hY3RpdmF0
ZUF0KDE2MCwgMTI1KS50aGVuKCgpID0+IHsKKyAgICAgICAgZWRpdG9yLmZvY3VzKCk7CisgICAg
ICAgIHdhaXRGb3JQYXN0ZU1lbnUoKS50aGVuKGZpbmlzaEpTVGVzdCk7CiAKLSAgICBVSUhlbHBl
ci5lbnN1cmVQcmVzZW50YXRpb25VcGRhdGUoKS50aGVuKCgpID0+IHsKLSAgICAgICAgaW50ZXJu
YWxzLndpdGhVc2VyR2VzdHVyZSgoKSA9PiBzaG91bGRCZSgiZG9jdW1lbnQuZXhlY0NvbW1hbmQo
J1Bhc3RlJykiLCAidHJ1ZSIpKTsKLSAgICAgICAgc2hvdWxkQmUoImRvY3VtZW50LmV4ZWNDb21t
YW5kKCdQYXN0ZScpIiwgImZhbHNlIik7Ci0gICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygi
ZWRpdG9yLnRleHRDb250ZW50IiwgIkNsaWNrIGhlcmUgdG8gY29weSIpOworICAgICAgICBVSUhl
bHBlci5lbnN1cmVQcmVzZW50YXRpb25VcGRhdGUoKS50aGVuKCgpID0+IHsKKyAgICAgICAgICAg
IGludGVybmFscy53aXRoVXNlckdlc3R1cmUoKCkgPT4gc2hvdWxkQmUoImRvY3VtZW50LmV4ZWND
b21tYW5kKCdQYXN0ZScpIiwgInRydWUiKSk7CisgICAgICAgICAgICBzaG91bGRCZSgiZG9jdW1l
bnQuZXhlY0NvbW1hbmQoJ1Bhc3RlJykiLCAiZmFsc2UiKTsKKyAgICAgICAgICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygiZWRpdG9yLnRleHRDb250ZW50IiwgIkNsaWNrIGhlcmUgdG8gY29weSIp
OworICAgICAgICB9KTsKICAgICB9KTsKIH0pOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvaW9zL2RvbS1wYXN0ZS1zYW1lLW9yaWdpbi1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvaW9zL2RvbS1wYXN0ZS1z
YW1lLW9yaWdpbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmFhYjE3YjNlZGE1NzY1NDY4Nzdh
YzViNzM0Yjg3NGYyOTc0N2RjNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRp
bmcvcGFzdGVib2FyZC9pb3MvZG9tLXBhc3RlLXNhbWUtb3JpZ2luLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDE4IEBACitDbGljayBoZXJlIHRvIGNvcHkKK0NsaWNrIGhlcmUgdG8gY29weQorQ2xp
Y2sgaGVyZSB0byBjb3B5CitWZXJpZmllcyB0aGF0IHByb2dyYW1tYXRpYyBwYXN0ZSBpcyBhbGxv
d2VkIHdoZW4gY29waWVkIGRhdGEgaXMgZnJvbSB0aGUgc2FtZSBvcmlnaW4uIFRvIG1hbnVhbGx5
IHRlc3QsIHRhcCB0aGUgdGV4dCBvbiB0aGUgYm90dG9tIHRvIHByb2dyYW1tYXRpY2FsbHkgY29w
eSwgYW5kIHRoZW4gdGFwIHRoZSBlZGl0YWJsZSBhcmVhIGFuZCBjaGVjayB0aGF0IHRoZSB0ZXh0
IGlzIHBhc3RlZCB0d2ljZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCitQQVNTIGRv
Y3VtZW50LnF1ZXJ5Q29tbWFuZFN1cHBvcnRlZCgnUGFzdGUnKSBpcyB0cnVlCitQQVNTIGRvY3Vt
ZW50LnF1ZXJ5Q29tbWFuZEVuYWJsZWQoJ1Bhc3RlJykgaXMgdHJ1ZQorUEFTUyBldmVudC5jbGlw
Ym9hcmREYXRhLmdldERhdGEoJ3RleHQvcGxhaW4nKSBpcyAiQ2xpY2sgaGVyZSB0byBjb3B5Igor
UEFTUyBkb2N1bWVudC5leGVjQ29tbWFuZCgnUGFzdGUnKSBpcyB0cnVlCitQQVNTIGV2ZW50LmNs
aXBib2FyZERhdGEuZ2V0RGF0YSgndGV4dC9wbGFpbicpIGlzICJDbGljayBoZXJlIHRvIGNvcHki
CitQQVNTIGRvY3VtZW50LmV4ZWNDb21tYW5kKCdQYXN0ZScpIGlzIHRydWUKK1BBU1MgZWRpdG9y
LnRleHRDb250ZW50IGlzICJDbGljayBoZXJlIHRvIGNvcHlDbGljayBoZXJlIHRvIGNvcHkiCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2lvcy9kb20tcGFzdGUtc2FtZS1v
cmlnaW4uaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9pb3MvZG9tLXBhc3Rl
LXNhbWUtb3JpZ2luLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTk2YTIzOTMyMDM2NGQ3YjI1MDE0YmRjODky
ZjY3ZTgyYjU5NzFlZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFz
dGVib2FyZC9pb3MvZG9tLXBhc3RlLXNhbWUtb3JpZ2luLmh0bWwKQEAgLTAsMCArMSw3MSBAQAor
PCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZG9tUGFzdGVBbGxvd2Vk
PWZhbHNlIHVzZUZsZXhpYmxlVmlld3BvcnQ9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8bWV0YSBuYW1l
PSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEi
PgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwv
c2NyaXB0PgorPHN0eWxlPgorYm9keSB7CisgICAgbWFyZ2luOiAwOworfQorCisjY29weSwgI2Vk
aXRvciB7CisgICAgd2lkdGg6IDEwMCU7CisgICAgdGV4dC1hbGlnbjogY2VudGVyOworfQorCisj
Y29weSB7CisgICAgaGVpZ2h0OiA1MHB4OworICAgIGJvcmRlcjogMXB4IGRhc2hlZCBibGFjazsK
KyAgICBmb250LXNpemU6IDQwcHg7Cit9CisKKyNlZGl0b3IgeworICAgIGhlaWdodDogMTAwcHg7
CisgICAgYm9yZGVyOiAxcHggZGFzaGVkIHNpbHZlcjsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxkaXYgaWQ9ImVkaXRvciIgY29udGVudGVkaXRhYmxlPjwvZGl2PgorPGRpdiBpZD0n
Y29weScgc3R5bGU9Jyc+Q2xpY2sgaGVyZSB0byBjb3B5PC9kaXY+Cis8ZGl2IGlkPSJkZXNjcmlw
dGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+Citqc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKKworY29uc3QgY29weSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJj
b3B5Iik7Citjb25zdCBlZGl0b3IgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZWRpdG9yIik7
CisKK2Rlc2NyaXB0aW9uKCJWZXJpZmllcyB0aGF0IHByb2dyYW1tYXRpYyBwYXN0ZSBpcyBhbGxv
d2VkIHdoZW4gY29waWVkIGRhdGEgaXMgZnJvbSB0aGUgc2FtZSBvcmlnaW4uIFRvIG1hbnVhbGx5
IHRlc3QsIHRhcCB0aGUgdGV4dCBvbiB0aGUgYm90dG9tIHRvIHByb2dyYW1tYXRpY2FsbHkgY29w
eSwgYW5kIHRoZW4gdGFwIHRoZSBlZGl0YWJsZSBhcmVhIGFuZCBjaGVjayB0aGF0IHRoZSB0ZXh0
IGlzIHBhc3RlZCA8ZW0+dHdpY2U8L2VtPi4iKTsKKworY29weS5hZGRFdmVudExpc3RlbmVyKCdj
bGljaycsICgpID0+IHsKKyAgICBnZXRTZWxlY3Rpb24oKS5zZWxlY3RBbGxDaGlsZHJlbihjb3B5
KTsKKyAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgnQ29weScpOworICAgIGdldFNlbGVjdGlvbigp
LnJlbW92ZUFsbFJhbmdlcygpOworfSk7CisKK2VkaXRvci5hZGRFdmVudExpc3RlbmVyKCJwYXN0
ZSIsIGV2ZW50ID0+IHNob3VsZEJlRXF1YWxUb1N0cmluZygiZXZlbnQuY2xpcGJvYXJkRGF0YS5n
ZXREYXRhKCd0ZXh0L3BsYWluJykiLCAiQ2xpY2sgaGVyZSB0byBjb3B5IikpOworZWRpdG9yLmFk
ZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZXZlbnQgPT4geworICAgIGdldFNlbGVjdGlvbigpLnNl
dFBvc2l0aW9uKGVkaXRvcik7CisgICAgc2hvdWxkQmUoImRvY3VtZW50LnF1ZXJ5Q29tbWFuZFN1
cHBvcnRlZCgnUGFzdGUnKSIsICJ0cnVlIik7CisgICAgc2hvdWxkQmUoImRvY3VtZW50LnF1ZXJ5
Q29tbWFuZEVuYWJsZWQoJ1Bhc3RlJykiLCAidHJ1ZSIpOworICAgIHNob3VsZEJlKCJkb2N1bWVu
dC5leGVjQ29tbWFuZCgnUGFzdGUnKSIsICJ0cnVlIik7CisgICAgZG9jdW1lbnQuZXhlY0NvbW1h
bmQoJ0luc2VydFBhcmFncmFwaCcpOworICAgIHNob3VsZEJlKCJkb2N1bWVudC5leGVjQ29tbWFu
ZCgnUGFzdGUnKSIsICJ0cnVlIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJlZGl0b3Iu
dGV4dENvbnRlbnQiLCAiQ2xpY2sgaGVyZSB0byBjb3B5Q2xpY2sgaGVyZSB0byBjb3B5Iik7Cisg
ICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKKyAgICBlZGl0b3IuYmx1cigpOworICAgIGZpbmlz
aEpTVGVzdCgpOworfSk7CisKK2FkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBhc3luYyAoKSA9PiB7
CisgICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgcmV0dXJuOworCisgICAgYXdh
aXQgVUlIZWxwZXIuYWN0aXZhdGVBdCgxNjAsIDEyNSk7CisgICAgYXdhaXQgVUlIZWxwZXIuYWN0
aXZhdGVBdCgxNjAsIDUwKTsKK30pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>