<?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>222177</bug_id>
          
          <creation_ts>2021-02-19 09:58:55 -0800</creation_ts>
          <short_desc>Review remaining usage of autorelease to make sure it is necessary</short_desc>
          <delta_ts>2021-08-12 15:44:18 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</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>
          <dependson>229056</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>philipj</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1731401</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-02-19 09:58:55 -0800</bug_when>
    <thetext>Review remaining usage of autorelease to make sure it is necessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731406</commentid>
    <comment_count>1</comment_count>
      <attachid>420985</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-02-19 10:07:00 -0800</bug_when>
    <thetext>Created attachment 420985
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731487</commentid>
    <comment_count>2</comment_count>
      <attachid>421003</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-02-19 11:57:13 -0800</bug_when>
    <thetext>Created attachment 421003
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731657</commentid>
    <comment_count>3</comment_count>
      <attachid>421053</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-02-19 16:00:12 -0800</bug_when>
    <thetext>Created attachment 421053
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731747</commentid>
    <comment_count>4</comment_count>
      <attachid>421053</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2021-02-19 20:24:25 -0800</bug_when>
    <thetext>Comment on attachment 421053
Patch

Can&apos;t tell if the safe browsing API test is related or not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731748</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-02-19 20:27:43 -0800</bug_when>
    <thetext>(In reply to Geoffrey Garen from comment #4)
&gt; Comment on attachment 421053 [details]
&gt; Patch
&gt; 
&gt; Can&apos;t tell if the safe browsing API test is related or not.

I will check before landing. Thanks for reviewing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731750</commentid>
    <comment_count>6</comment_count>
      <attachid>421076</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-02-19 21:01:31 -0800</bug_when>
    <thetext>Created attachment 421076
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731765</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-02-19 22:37:07 -0800</bug_when>
    <thetext>Committed r273194: &lt;https://commits.webkit.org/r273194&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 421076.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731767</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-02-19 22:38:14 -0800</bug_when>
    <thetext>&lt;rdar://problem/74549820&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731798</commentid>
    <comment_count>9</comment_count>
      <attachid>421076</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-02-20 09:53:18 -0800</bug_when>
    <thetext>Comment on attachment 421076
Patch

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

I spotted at least one serious problem here.

&gt; Source/WebKit/Platform/cocoa/WKPaymentAuthorizationDelegate.mm:71
&gt; +    auto update = !paymentMethodUpdate ? adoptNS([PAL::allocPKPaymentRequestPaymentMethodUpdateInstance() initWithPaymentSummaryItems:_summaryItems.get()]) : nil;

This is wrong! If paymentMethodUpdate is non-nil, update will be nil. The old code did not do that. It set paymentMethodUpdate to update.

&gt; Source/WebKit/Platform/cocoa/WKPaymentAuthorizationDelegate.mm:83
&gt; +    auto update = !shippingContactUpdate ? adoptNS([PAL::allocPKPaymentRequestShippingContactUpdateInstance() initWithErrors:@[] paymentSummaryItems:_summaryItems.get() shippingMethods:_shippingMethods.get()]) : nil;

Same mistake.

&gt; Source/WebKit/Platform/cocoa/WKPaymentAuthorizationDelegate.mm:91
&gt; +    auto update = !shippingMethodUpdate ? adoptNS([PAL::allocPKPaymentRequestShippingMethodUpdateInstance() initWithPaymentSummaryItems:_summaryItems.get()]) : nil;

Same mistake.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731799</commentid>
    <comment_count>10</comment_count>
      <attachid>421076</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-02-20 09:57:03 -0800</bug_when>
    <thetext>Comment on attachment 421076
Patch

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

&gt;&gt; Source/WebKit/Platform/cocoa/WKPaymentAuthorizationDelegate.mm:71
&gt;&gt; +    auto update = !paymentMethodUpdate ? adoptNS([PAL::allocPKPaymentRequestPaymentMethodUpdateInstance() initWithPaymentSummaryItems:_summaryItems.get()]) : nil;
&gt; 
&gt; This is wrong! If paymentMethodUpdate is non-nil, update will be nil. The old code did not do that. It set paymentMethodUpdate to update.

Oh, is that what the ?: meant. My bad. I thought :? was an implicit nil :S Will fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731801</commentid>
    <comment_count>11</comment_count>
      <attachid>421076</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-02-20 10:08:17 -0800</bug_when>
    <thetext>Comment on attachment 421076
Patch

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

&gt;&gt;&gt; Source/WebKit/Platform/cocoa/WKPaymentAuthorizationDelegate.mm:71
&gt;&gt;&gt; +    auto update = !paymentMethodUpdate ? adoptNS([PAL::allocPKPaymentRequestPaymentMethodUpdateInstance() initWithPaymentSummaryItems:_summaryItems.get()]) : nil;
&gt;&gt; 
&gt;&gt; This is wrong! If paymentMethodUpdate is non-nil, update will be nil. The old code did not do that. It set paymentMethodUpdate to update.
&gt; 
&gt; Oh, is that what the ?: meant. My bad. I thought :? was an implicit nil :S Will fix.

For future reference, ?: is a gnu/clang extension and this

    a ?: b

is

    a ? a : b

Except it only evaluates &quot;a&quot; once. Since I learned perl first, I think of it as the same as the || operator in perl.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731802</commentid>
    <comment_count>12</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-02-20 10:14:25 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #10)
&gt; Comment on attachment 421076 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=421076&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebKit/Platform/cocoa/WKPaymentAuthorizationDelegate.mm:71
&gt; &gt;&gt; +    auto update = !paymentMethodUpdate ? adoptNS([PAL::allocPKPaymentRequestPaymentMethodUpdateInstance() initWithPaymentSummaryItems:_summaryItems.get()]) : nil;
&gt; &gt; 
&gt; &gt; This is wrong! If paymentMethodUpdate is non-nil, update will be nil. The old code did not do that. It set paymentMethodUpdate to update.
&gt; 
&gt; Oh, is that what the ?: meant. My bad. I thought :? was an implicit nil :S
&gt; Will fix.

Follow-up fix: &lt;https://commits.webkit.org/r273201&gt;. 

Thanks for spotting this.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420985</attachid>
            <date>2021-02-19 10:07:00 -0800</date>
            <delta_ts>2021-02-19 11:57:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222177-20210219100659.patch</filename>
            <type>text/plain</type>
            <size>83420</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczMTQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
MTg2ZDQyOTVlYjRlMGI2N2EwNDM0OWIwZTZlNThlMWVhYzY2MDQ3Li40YmFkNGQ2YzAyNWY2MmVh
Y2QyY2VlYTZlOWMwNmJjNWU4ZmM1ODI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAyMS0wMi0xOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFJldmlldyByZW1haW5pbmcgdXNhZ2Ugb2YgYXV0b3JlbGVhc2UgdG8gbWFrZSBz
dXJlIGl0IGlzIG5lY2Vzc2FyeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjIyMTc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBBUEkvSlNDb250ZXh0Lm1tOgorICAgICAgICAoK1tKU0NvbnRleHQgY29u
dGV4dFdpdGhKU0dsb2JhbENvbnRleHRSZWY6XSk6CisgICAgICAgICogQVBJL0pTVmlydHVhbE1h
Y2hpbmUubW06CisgICAgICAgICgrW0pTVmlydHVhbE1hY2hpbmUgdmlydHVhbE1hY2hpbmVXaXRo
Q29udGV4dEdyb3VwUmVmOl0pOgorICAgICAgICAqIEFQSS9KU1dyYXBwZXJNYXAubW06CisgICAg
ICAgICgtW0pTV3JhcHBlck1hcCBvYmpjV3JhcHBlckZvckpTVmFsdWVSZWY6aW5Db250ZXh0Ol0p
OgorCiAyMDIxLTAyLTE5ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAg
ICBJbXBsZW1lbnQgYSBHQyB2ZXJpZmllci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzNTE2MjkwZjNiOWQ5NWFi
NWYwOTg2MGY5ODU2MmYwNmNmZWNmZmIzLi44ZjY5YTMzMDY0Mzc0MTRkMmVmMjRmZDZkMjViYjli
NTFjYjZhYTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMDItMTkgIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXcgcmVtYWluaW5nIHVz
YWdlIG9mIGF1dG9yZWxlYXNlIHRvIG1ha2Ugc3VyZSBpdCBpcyBuZWNlc3NhcnkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjE3NworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vaW9zL1dl
YlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5tbToKKyAgICAgICAgKC1bV2ViVmlkZW9G
dWxsc2NyZWVuQ29udHJvbGxlciBkaWRGaW5pc2hGdWxsc2NyZWVuOl0pOgorCiAyMDIxLTAyLTE5
ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgYSBH
QyB2ZXJpZmllci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYjA0ZWNjNTg0Y2FmNjIyYmU5MTJiY2M5NzUyMGUyOGIx
N2VkYzViNy4uMzM1MDAwZTdjM2Y5MzdhYmRhNGI1Mzk5NTQ1OTEyNDcxOGNiODYxOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwzMCBAQAorMjAyMS0wMi0xOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgorCisgICAgICAgIFJldmlldyByZW1haW5pbmcgdXNhZ2Ugb2YgYXV0b3JlbGVhc2Ug
dG8gbWFrZSBzdXJlIGl0IGlzIG5lY2Vzc2FyeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyMTc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lv
bkNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbkNvY29hOjpOZXR3b3Jr
U2Vzc2lvbkNvY29hKToKKyAgICAgICAgKiBQbGF0Zm9ybS9jb2NvYS9XS1BheW1lbnRBdXRob3Jp
emF0aW9uRGVsZWdhdGUubW06CisgICAgICAgICgtW1dLUGF5bWVudEF1dGhvcml6YXRpb25EZWxl
Z2F0ZSBjb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb246XSk6CisgICAgICAgICgtW1dLUGF5
bWVudEF1dGhvcml6YXRpb25EZWxlZ2F0ZSBjb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlv
bjpdKToKKyAgICAgICAgKC1bV0tQYXltZW50QXV0aG9yaXphdGlvbkRlbGVnYXRlIGNvbXBsZXRl
U2hpcHBpbmdNZXRob2RTZWxlY3Rpb246XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2Nv
YS9OU0F0dHJpYnV0ZWRTdHJpbmcubW06CisgICAgICAgICgrW19XS0F0dHJpYnV0ZWRTdHJpbmdX
ZWJWaWV3Q2FjaGUgY29uZmlndXJhdGlvbl0pOgorICAgICAgICAoK1tOU0F0dHJpYnV0ZWRTdHJp
bmcgX2xvYWRGcm9tSFRNTFdpdGhPcHRpb25zOmNvbnRlbnRMb2FkZXI6Y29tcGxldGlvbkhhbmRs
ZXI6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dENv
bnRyb2xsZXIubW06CisgICAgICAgIChzZXRVcFBhZ2VQb2xpY3lDbGllbnQpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcg
X3Rha2VQREZTbmFwc2hvdFdpdGhDb25maWd1cmF0aW9uOmNvbXBsZXRpb25IYW5kbGVyOl0pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld1Rlc3RpbmdJT1MubW06CisgICAg
ICAgICgtW1dLV2ViVmlldyBfcmVxdWVzdFRleHRJbnB1dENvbnRleHRzSW5SZWN0OmNvbXBsZXRp
b25IYW5kbGVyOl0pOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMv
TmV0c2NhcGVQbHVnaW5NYWMubW06CisgICAgICAgIChXZWJLaXQ6OmNvbnZlcnRUb05QTk5TdHJp
bmcpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV0tBY2Nlc3NpYmlsaXR5V2Vi
UGFnZU9iamVjdE1hYy5tbToKKyAgICAgICAgKC1bV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVj
dCBBTExPV19ERVBSRUNBVEVEX0lNUExFTUVOVEFUSU9OU19FTkRdKToKKwogMjAyMS0wMi0xOSAg
S2ltbW8gS2lubnVuZW4gIDxra2lubnVuZW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW90ZVJl
bmRlcmluZ0JhY2tlbmQgaXMgYWNjZXNzZWQgaW4gbm9uLXRocmVhZC1zYWZlIG1hbm5lcgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDM0ZGEzOWUxYjlkOWNlNzRjNjc0NmQzNWJhNjk2
OWMzNTIyNmU1N2MuLjAxZTRjNGQ4NjcxOGI3MjgwZGM3YTM5MGIwYzNkOGY5MDZhY2EwNWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMS0wMi0xOSAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlldyByZW1haW5p
bmcgdXNhZ2Ugb2YgYXV0b3JlbGVhc2UgdG8gbWFrZSBzdXJlIGl0IGlzIG5lY2Vzc2FyeQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyMTc3CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNaXNjL1dlYk5T
T2JqZWN0RXh0cmFzLm1tOgorICAgICAgICAoLVtXZWJNYWluVGhyZWFkSW52b2tlciBmb3J3YXJk
SW52b2NhdGlvbjpdKToKKyAgICAgICAgKiBQbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luVmlldy5t
bToKKyAgICAgICAgKC1bV2ViTmV0c2NhcGVQbHVnaW5WaWV3IHNlbmRFdmVudDppc0RyYXdSZWN0
Ol0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlci5tbToK
KyAgICAgICAgKC1bV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlciBpbml0XSk6CisKIDIwMjEt
MDItMTggIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAg
UGx1bWIgYW4gT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHRocm91Z2ggV2ViUGFzdGVib2FyZFBy
b3h5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dC5tbSBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDb250ZXh0Lm1tCmluZGV4IDJjYzJmNmM4OWZk
YzNhNDk5YWM0MTE2MjdlZDdhMzNiNjUwZjFkNWMuLmUzYWYwYjE0MWRlODE3ZDI4NzU4YjMwMzgw
MTFjMmQxZWNjYTM2MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlND
b250ZXh0Lm1tCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDb250ZXh0Lm1tCkBA
IC00MDYsMTAgKzQwNiwxMCBAQCAtIChKU1ZhbHVlICopd3JhcHBlckZvckpTT2JqZWN0OihKU1Zh
bHVlUmVmKXZhbHVlCiArIChKU0NvbnRleHQgKiljb250ZXh0V2l0aEpTR2xvYmFsQ29udGV4dFJl
ZjooSlNHbG9iYWxDb250ZXh0UmVmKWdsb2JhbENvbnRleHQKIHsKICAgICBKU1ZpcnR1YWxNYWNo
aW5lICp2aXJ0dWFsTWFjaGluZSA9IFtKU1ZpcnR1YWxNYWNoaW5lIHZpcnR1YWxNYWNoaW5lV2l0
aENvbnRleHRHcm91cFJlZjp0b1JlZigmdG9KUyhnbG9iYWxDb250ZXh0KS0+dm0oKSldOwotICAg
IEpTQ29udGV4dCAqY29udGV4dCA9IFt2aXJ0dWFsTWFjaGluZSBjb250ZXh0Rm9yR2xvYmFsQ29u
dGV4dFJlZjpnbG9iYWxDb250ZXh0XTsKKyAgICBhdXRvIGNvbnRleHQgPSByZXRhaW5QdHIoW3Zp
cnR1YWxNYWNoaW5lIGNvbnRleHRGb3JHbG9iYWxDb250ZXh0UmVmOmdsb2JhbENvbnRleHRdKTsK
ICAgICBpZiAoIWNvbnRleHQpCi0gICAgICAgIGNvbnRleHQgPSBhZG9wdE5TKFtbSlNDb250ZXh0
IGFsbG9jXSBpbml0V2l0aEdsb2JhbENvbnRleHRSZWY6Z2xvYmFsQ29udGV4dF0pLmF1dG9yZWxl
YXNlKCk7Ci0gICAgcmV0dXJuIGNvbnRleHQ7CisgICAgICAgIGNvbnRleHQgPSBhZG9wdE5TKFtb
SlNDb250ZXh0IGFsbG9jXSBpbml0V2l0aEdsb2JhbENvbnRleHRSZWY6Z2xvYmFsQ29udGV4dF0p
OworICAgIHJldHVybiBjb250ZXh0LmF1dG9yZWxlYXNlKCk7CiB9CiAKIEBlbmQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWaXJ0dWFsTWFjaGluZS5tbSBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWaXJ0dWFsTWFjaGluZS5tbQppbmRleCAwYjM0Zjg5MDk4
ZjVmMTg2MzNmZDA5YTk5NjBkMTlkNzdjZTBkMmRhLi4zMDMyMjY0MDFkNDRkY2ZkNTM4ZTBkODJm
YTBhZGNlYjQzZTUyZDlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pT
VmlydHVhbE1hY2hpbmUubW0KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZpcnR1
YWxNYWNoaW5lLm1tCkBAIC0yMzQsMTAgKzIzNCwxMCBAQCBKU0NvbnRleHRHcm91cFJlZiBnZXRH
cm91cEZyb21WaXJ0dWFsTWFjaGluZShKU1ZpcnR1YWxNYWNoaW5lICp2aXJ0dWFsTWFjaGluZSkK
IAogKyAoSlNWaXJ0dWFsTWFjaGluZSAqKXZpcnR1YWxNYWNoaW5lV2l0aENvbnRleHRHcm91cFJl
ZjooSlNDb250ZXh0R3JvdXBSZWYpZ3JvdXAKIHsKLSAgICBKU1ZpcnR1YWxNYWNoaW5lICp2aXJ0
dWFsTWFjaGluZSA9IFtKU1ZNV3JhcHBlckNhY2hlIHdyYXBwZXJGb3JKU0NvbnRleHRHcm91cFJl
Zjpncm91cF07CisgICAgYXV0byB2aXJ0dWFsTWFjaGluZSA9IHJldGFpblB0cihbSlNWTVdyYXBw
ZXJDYWNoZSB3cmFwcGVyRm9ySlNDb250ZXh0R3JvdXBSZWY6Z3JvdXBdKTsKICAgICBpZiAoIXZp
cnR1YWxNYWNoaW5lKQotICAgICAgICB2aXJ0dWFsTWFjaGluZSA9IGFkb3B0TlMoW1tKU1ZpcnR1
YWxNYWNoaW5lIGFsbG9jXSBpbml0V2l0aENvbnRleHRHcm91cFJlZjpncm91cF0pLmF1dG9yZWxl
YXNlKCk7Ci0gICAgcmV0dXJuIHZpcnR1YWxNYWNoaW5lOworICAgICAgICB2aXJ0dWFsTWFjaGlu
ZSA9IGFkb3B0TlMoW1tKU1ZpcnR1YWxNYWNoaW5lIGFsbG9jXSBpbml0V2l0aENvbnRleHRHcm91
cFJlZjpncm91cF0pOworICAgIHJldHVybiB2aXJ0dWFsTWFjaGluZS5hdXRvcmVsZWFzZSgpOwog
fQogCiAtIChKU0NvbnRleHQgKiljb250ZXh0Rm9yR2xvYmFsQ29udGV4dFJlZjooSlNHbG9iYWxD
b250ZXh0UmVmKWdsb2JhbENvbnRleHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvSlNXcmFwcGVyTWFwLm1tIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1dyYXBw
ZXJNYXAubW0KaW5kZXggZDg5YmZlYTRiYmRiYjM5ODJmYTBlMGNlYzIyMjdkODk2OGRjYjZjYS4u
ZjAzNzc1MmU0OTliNWNkYzQyMzVlMjhlMmI1ZjFjMmNiZWNkMDlmZCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1dyYXBwZXJNYXAubW0KKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU1dyYXBwZXJNYXAubW0KQEAgLTY2NCwxMiArNjY0LDEyIEBAIC0gKEpT
VmFsdWUgKilqc1dyYXBwZXJGb3JPYmplY3Q6KGlkKW9iamVjdCBpbkNvbnRleHQ6KEpTQ29udGV4
dCAqKWNvbnRleHQKIC0gKEpTVmFsdWUgKilvYmpjV3JhcHBlckZvckpTVmFsdWVSZWY6KEpTVmFs
dWVSZWYpdmFsdWUgaW5Db250ZXh0OmNvbnRleHQKIHsKICAgICBBU1NFUlQodG9KU0dsb2JhbE9i
amVjdChbY29udGV4dCBKU0dsb2JhbENvbnRleHRSZWZdKS0+d3JhcHBlck1hcCgpID09IHNlbGYp
OwotICAgIEpTVmFsdWUgKndyYXBwZXIgPSAoX19icmlkZ2UgSlNWYWx1ZSAqKU5TTWFwR2V0KG1f
Y2FjaGVkT2JqQ1dyYXBwZXJzLmdldCgpLCB2YWx1ZSk7CisgICAgYXV0byB3cmFwcGVyID0gcmV0
YWluUHRyKChfX2JyaWRnZSBKU1ZhbHVlICopTlNNYXBHZXQobV9jYWNoZWRPYmpDV3JhcHBlcnMu
Z2V0KCksIHZhbHVlKSk7CiAgICAgaWYgKCF3cmFwcGVyKSB7Ci0gICAgICAgIHdyYXBwZXIgPSBh
ZG9wdE5TKFtbSlNWYWx1ZSBhbGxvY10gaW5pdFdpdGhWYWx1ZTp2YWx1ZSBpbkNvbnRleHQ6Y29u
dGV4dF0pLmF1dG9yZWxlYXNlKCk7Ci0gICAgICAgIE5TTWFwSW5zZXJ0KG1fY2FjaGVkT2JqQ1dy
YXBwZXJzLmdldCgpLCB2YWx1ZSwgKF9fYnJpZGdlIHZvaWQqKXdyYXBwZXIpOworICAgICAgICB3
cmFwcGVyID0gYWRvcHROUyhbW0pTVmFsdWUgYWxsb2NdIGluaXRXaXRoVmFsdWU6dmFsdWUgaW5D
b250ZXh0OmNvbnRleHRdKTsKKyAgICAgICAgTlNNYXBJbnNlcnQobV9jYWNoZWRPYmpDV3JhcHBl
cnMuZ2V0KCksIHZhbHVlLCAoX19icmlkZ2Ugdm9pZCopd3JhcHBlci5nZXQoKSk7CiAgICAgfQot
ICAgIHJldHVybiB3cmFwcGVyOworICAgIHJldHVybiB3cmFwcGVyLmF1dG9yZWxlYXNlKCk7CiB9
CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRl
b0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tCmluZGV4IDY2YmM0ZGZiMmZm
ZDZjMWQyZDhlMmM0MjU1ZTkyYzBlYjNlMmYxMDEuLjQwZWU4YTdiMDNjNmJkZDc2NTE2NTliNzgy
NjViNTU2NzY3YzA0YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9X
ZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5tbQpAQCAtMTA2
Miw3ICsxMDYyLDcgQEAgLSAodm9pZClkaWRGaW5pc2hGdWxsc2NyZWVuOihWaWRlb0Z1bGxzY3Jl
ZW5Db250cm9sbGVyQ29udGV4dCopY29udGV4dAogewogICAgIEFTU0VSVChXZWJUaHJlYWRJc0N1
cnJlbnQoKSk7CiAgICAgQVNTRVJUX1VOVVNFRChjb250ZXh0LCBjb250ZXh0ID09IF9jb250ZXh0
KTsKLSAgICByZXRhaW5QdHIoc2VsZikuYXV0b3JlbGVhc2UoKTsgLy8gcmV0YWluIHNlbGYgYmVm
b3JlIGJyZWFraW5nIGEgcmV0YWluIGN5Y2xlLgorICAgIGF1dG8gc3Ryb25nU2VsZiA9IHJldGFp
blB0cihzZWxmKTsgLy8gcmV0YWluIHNlbGYgYmVmb3JlIGJyZWFraW5nIGEgcmV0YWluIGN5Y2xl
LgogICAgIF9jb250ZXh0LT5zZXRDb250cm9sbGVyKG5pbCk7CiAgICAgX2NvbnRleHQgPSBudWxs
cHRyOwogICAgIF92aWRlb0VsZW1lbnQgPSBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCmluZGV4
IDZlNTQ1NmU5M2RkYmQ4ZThiYTFhOTBjNmMyODQ3YzAzNGNlNzIzMjYuLjlhMTY0YzEzM2NlN2M3
MmRhYzVmOThlN2UzYWEyYmRmYzQxOWMyNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0KQEAgLTEyMzIs
NyArMTIzMiw3IEBAIE5ldHdvcmtTZXNzaW9uQ29jb2E6Ok5ldHdvcmtTZXNzaW9uQ29jb2EoTmV0
d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBOZXR3b3JrCiAgICAgICAgIFNhbmRib3hFeHRl
bnNpb246OmNvbnN1bWVQZXJtYW5lbnRseShwYXJhbWV0ZXJzLmhzdHNTdG9yYWdlRGlyZWN0b3J5
RXh0ZW5zaW9uSGFuZGxlKTsKICAgICAgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIHJlc3BvbmRz
VG9TZWxlY3RvciBjaGVjayBvbmNlIHJkYXI6Ly9wcm9ibGVtLzUwMTA5NjMxIGlzIGluIGEgYnVp
bGQgYW5kIGJvdHMgYXJlIHVwZGF0ZWQuCiAgICAgICAgIGlmIChbY29uZmlndXJhdGlvbiByZXNw
b25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF9oc3RzU3RvcmFnZSldKQotICAgICAgICAgICAgY29u
ZmlndXJhdGlvbi5faHN0c1N0b3JhZ2UgPSBhZG9wdE5TKFthbGxvY19OU0hTVFNTdG9yYWdlSW5z
dGFuY2UoKSBpbml0UGVyc2lzdGVudFN0b3JlV2l0aFVSTDpbTlNVUkwgZmlsZVVSTFdpdGhQYXRo
OnBhcmFtZXRlcnMuaHN0c1N0b3JhZ2VEaXJlY3RvcnkgaXNEaXJlY3Rvcnk6WUVTXV0pLmF1dG9y
ZWxlYXNlKCk7CisgICAgICAgICAgICBjb25maWd1cmF0aW9uLl9oc3RzU3RvcmFnZSA9IGFkb3B0
TlMoW2FsbG9jX05TSFNUU1N0b3JhZ2VJbnN0YW5jZSgpIGluaXRQZXJzaXN0ZW50U3RvcmVXaXRo
VVJMOltOU1VSTCBmaWxlVVJMV2l0aFBhdGg6cGFyYW1ldGVycy5oc3RzU3RvcmFnZURpcmVjdG9y
eSBpc0RpcmVjdG9yeTpZRVNdXSkuZ2V0KCk7CiAgICAgfQogI2VuZGlmCiAKQEAgLTEyNjcsNyAr
MTI2Nyw3IEBAIE5ldHdvcmtTZXNzaW9uQ29jb2E6Ok5ldHdvcmtTZXNzaW9uQ29jb2EoTmV0d29y
a1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBOZXR3b3JrCiAjaWYgSEFWRShDRk5FVFdPUktfQUxU
RVJOQVRJVkVfU0VSVklDRSkKICAgICBpZiAoIXBhcmFtZXRlcnMuYWx0ZXJuYXRpdmVTZXJ2aWNl
RGlyZWN0b3J5LmlzRW1wdHkoKSkgewogICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1l
UGVybWFuZW50bHkocGFyYW1ldGVycy5hbHRlcm5hdGl2ZVNlcnZpY2VEaXJlY3RvcnlFeHRlbnNp
b25IYW5kbGUpOwotICAgICAgICBjb25maWd1cmF0aW9uLl9hbHRlcm5hdGl2ZVNlcnZpY2VzU3Rv
cmFnZSA9IGFkb3B0TlMoW1tfTlNIVFRQQWx0ZXJuYXRpdmVTZXJ2aWNlc1N0b3JhZ2UgYWxsb2Nd
IGluaXRQZXJzaXN0ZW50U3RvcmVXaXRoVVJMOltbTlNVUkwgZmlsZVVSTFdpdGhQYXRoOnBhcmFt
ZXRlcnMuYWx0ZXJuYXRpdmVTZXJ2aWNlRGlyZWN0b3J5IGlzRGlyZWN0b3J5OllFU10gVVJMQnlB
cHBlbmRpbmdQYXRoQ29tcG9uZW50OkAiQWx0ZXJuYXRpdmVTZXJ2aWNlLnNxbGl0ZSJdXSkuYXV0
b3JlbGVhc2UoKTsKKyAgICAgICAgY29uZmlndXJhdGlvbi5fYWx0ZXJuYXRpdmVTZXJ2aWNlc1N0
b3JhZ2UgPSBhZG9wdE5TKFtbX05TSFRUUEFsdGVybmF0aXZlU2VydmljZXNTdG9yYWdlIGFsbG9j
XSBpbml0UGVyc2lzdGVudFN0b3JlV2l0aFVSTDpbW05TVVJMIGZpbGVVUkxXaXRoUGF0aDpwYXJh
bWV0ZXJzLmFsdGVybmF0aXZlU2VydmljZURpcmVjdG9yeSBpc0RpcmVjdG9yeTpZRVNdIFVSTEJ5
QXBwZW5kaW5nUGF0aENvbXBvbmVudDpAIkFsdGVybmF0aXZlU2VydmljZS5zcWxpdGUiXV0pLmdl
dCgpOwogICAgIH0KICAgICBpZiAocGFyYW1ldGVycy5odHRwM0VuYWJsZWQpCiAgICAgICAgIGNv
bmZpZ3VyYXRpb24uX2FsbG93c0hUVFAzID0gWUVTOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9QbGF0Zm9ybS9jb2NvYS9XS1BheW1lbnRBdXRob3JpemF0aW9uRGVsZWdhdGUubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtL2NvY29hL1dLUGF5bWVudEF1dGhvcml6YXRpb25EZWxlZ2F0ZS5t
bQppbmRleCBjZjM0YTQ4ZWQyZmVlMWVhNzlmMmVkMjdkYmYxMjg1YWUyY2EyMzM0Li45OGU5ZGYy
NmIyNzI2MTAyNDU0MGY1OWNlYjI3MjY5MzQ2Y2IwN2U2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtL2NvY29hL1dLUGF5bWVudEF1dGhvcml6YXRpb25EZWxlZ2F0ZS5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL2NvY29hL1dLUGF5bWVudEF1dGhvcml6YXRpb25EZWxl
Z2F0ZS5tbQpAQCAtNjEsOSArNjEsOSBAQCAtICh2b2lkKWNvbXBsZXRlTWVyY2hhbnRWYWxpZGF0
aW9uOihQS1BheW1lbnRNZXJjaGFudFNlc3Npb24gKilzZXNzaW9uIGVycm9yOihOUwogCiAtICh2
b2lkKWNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbjooUEtQYXltZW50UmVxdWVzdFBheW1l
bnRNZXRob2RVcGRhdGUgKilwYXltZW50TWV0aG9kVXBkYXRlCiB7Ci0gICAgUEtQYXltZW50UmVx
dWVzdFBheW1lbnRNZXRob2RVcGRhdGUgKnVwZGF0ZSA9IHBheW1lbnRNZXRob2RVcGRhdGUgPzog
YWRvcHROUyhbUEFMOjphbGxvY1BLUGF5bWVudFJlcXVlc3RQYXltZW50TWV0aG9kVXBkYXRlSW5z
dGFuY2UoKSBpbml0V2l0aFBheW1lbnRTdW1tYXJ5SXRlbXM6X3N1bW1hcnlJdGVtcy5nZXQoKV0p
LmF1dG9yZWxlYXNlKCk7Ci0gICAgX3N1bW1hcnlJdGVtcyA9IGFkb3B0TlMoW3VwZGF0ZS5wYXlt
ZW50U3VtbWFyeUl0ZW1zIGNvcHldKTsKLSAgICBzdGQ6OmV4Y2hhbmdlKF9kaWRTZWxlY3RQYXlt
ZW50TWV0aG9kQ29tcGxldGlvbiwgbmlsKSh1cGRhdGUpOworICAgIGF1dG8gdXBkYXRlID0gIXBh
eW1lbnRNZXRob2RVcGRhdGUgPyBhZG9wdE5TKFtQQUw6OmFsbG9jUEtQYXltZW50UmVxdWVzdFBh
eW1lbnRNZXRob2RVcGRhdGVJbnN0YW5jZSgpIGluaXRXaXRoUGF5bWVudFN1bW1hcnlJdGVtczpf
c3VtbWFyeUl0ZW1zLmdldCgpXSkgOiBuaWw7CisgICAgX3N1bW1hcnlJdGVtcyA9IGFkb3B0TlMo
W1t1cGRhdGUgcGF5bWVudFN1bW1hcnlJdGVtc10gY29weV0pOworICAgIHN0ZDo6ZXhjaGFuZ2Uo
X2RpZFNlbGVjdFBheW1lbnRNZXRob2RDb21wbGV0aW9uLCBuaWwpKHVwZGF0ZS5nZXQoKSk7CiB9
CiAKIC0gKHZvaWQpY29tcGxldGVQYXltZW50U2Vzc2lvbjooUEtQYXltZW50QXV0aG9yaXphdGlv
blN0YXR1cylzdGF0dXMgZXJyb3JzOihOU0FycmF5PE5TRXJyb3IgKj4gKillcnJvcnMKQEAgLTcz
LDE3ICs3MywxNyBAQCAtICh2b2lkKWNvbXBsZXRlUGF5bWVudFNlc3Npb246KFBLUGF5bWVudEF1
dGhvcml6YXRpb25TdGF0dXMpc3RhdHVzIGVycm9yczooTlNBcgogfQogLSAodm9pZCljb21wbGV0
ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbjooUEtQYXltZW50UmVxdWVzdFNoaXBwaW5nQ29udGFj
dFVwZGF0ZSAqKXNoaXBwaW5nQ29udGFjdFVwZGF0ZQogewotICAgIFBLUGF5bWVudFJlcXVlc3RT
aGlwcGluZ0NvbnRhY3RVcGRhdGUgKnVwZGF0ZSA9IHNoaXBwaW5nQ29udGFjdFVwZGF0ZSA/OiBh
ZG9wdE5TKFtQQUw6OmFsbG9jUEtQYXltZW50UmVxdWVzdFNoaXBwaW5nQ29udGFjdFVwZGF0ZUlu
c3RhbmNlKCkgaW5pdFdpdGhFcnJvcnM6QFtdIHBheW1lbnRTdW1tYXJ5SXRlbXM6X3N1bW1hcnlJ
dGVtcy5nZXQoKSBzaGlwcGluZ01ldGhvZHM6X3NoaXBwaW5nTWV0aG9kcy5nZXQoKV0pLmF1dG9y
ZWxlYXNlKCk7Ci0gICAgX3N1bW1hcnlJdGVtcyA9IGFkb3B0TlMoW3VwZGF0ZS5wYXltZW50U3Vt
bWFyeUl0ZW1zIGNvcHldKTsKLSAgICBfc2hpcHBpbmdNZXRob2RzID0gYWRvcHROUyhbdXBkYXRl
LnNoaXBwaW5nTWV0aG9kcyBjb3B5XSk7Ci0gICAgc3RkOjpleGNoYW5nZShfZGlkU2VsZWN0U2hp
cHBpbmdDb250YWN0Q29tcGxldGlvbiwgbmlsKSh1cGRhdGUpOworICAgIGF1dG8gdXBkYXRlID0g
IXNoaXBwaW5nQ29udGFjdFVwZGF0ZSA/IGFkb3B0TlMoW1BBTDo6YWxsb2NQS1BheW1lbnRSZXF1
ZXN0U2hpcHBpbmdDb250YWN0VXBkYXRlSW5zdGFuY2UoKSBpbml0V2l0aEVycm9yczpAW10gcGF5
bWVudFN1bW1hcnlJdGVtczpfc3VtbWFyeUl0ZW1zLmdldCgpIHNoaXBwaW5nTWV0aG9kczpfc2hp
cHBpbmdNZXRob2RzLmdldCgpXSkgOiBuaWw7CisgICAgX3N1bW1hcnlJdGVtcyA9IGFkb3B0TlMo
W1t1cGRhdGUgcGF5bWVudFN1bW1hcnlJdGVtc10gY29weV0pOworICAgIF9zaGlwcGluZ01ldGhv
ZHMgPSBhZG9wdE5TKFtbdXBkYXRlIHNoaXBwaW5nTWV0aG9kc10gY29weV0pOworICAgIHN0ZDo6
ZXhjaGFuZ2UoX2RpZFNlbGVjdFNoaXBwaW5nQ29udGFjdENvbXBsZXRpb24sIG5pbCkodXBkYXRl
LmdldCgpKTsKIH0KIAogLSAodm9pZCljb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uOihQ
S1BheW1lbnRSZXF1ZXN0U2hpcHBpbmdNZXRob2RVcGRhdGUgKilzaGlwcGluZ01ldGhvZFVwZGF0
ZQogewotICAgIFBLUGF5bWVudFJlcXVlc3RTaGlwcGluZ01ldGhvZFVwZGF0ZSAqdXBkYXRlID0g
c2hpcHBpbmdNZXRob2RVcGRhdGUgPzogYWRvcHROUyhbUEFMOjphbGxvY1BLUGF5bWVudFJlcXVl
c3RTaGlwcGluZ01ldGhvZFVwZGF0ZUluc3RhbmNlKCkgaW5pdFdpdGhQYXltZW50U3VtbWFyeUl0
ZW1zOl9zdW1tYXJ5SXRlbXMuZ2V0KCldKS5hdXRvcmVsZWFzZSgpOwotICAgIF9zdW1tYXJ5SXRl
bXMgPSBhZG9wdE5TKFt1cGRhdGUucGF5bWVudFN1bW1hcnlJdGVtcyBjb3B5XSk7Ci0gICAgc3Rk
OjpleGNoYW5nZShfZGlkU2VsZWN0U2hpcHBpbmdNZXRob2RDb21wbGV0aW9uLCBuaWwpKHVwZGF0
ZSk7CisgICAgYXV0byB1cGRhdGUgPSAhc2hpcHBpbmdNZXRob2RVcGRhdGUgPyBhZG9wdE5TKFtQ
QUw6OmFsbG9jUEtQYXltZW50UmVxdWVzdFNoaXBwaW5nTWV0aG9kVXBkYXRlSW5zdGFuY2UoKSBp
bml0V2l0aFBheW1lbnRTdW1tYXJ5SXRlbXM6X3N1bW1hcnlJdGVtcy5nZXQoKV0pIDogbmlsOwor
ICAgIF9zdW1tYXJ5SXRlbXMgPSBhZG9wdE5TKFtbdXBkYXRlIHBheW1lbnRTdW1tYXJ5SXRlbXNd
IGNvcHldKTsKKyAgICBzdGQ6OmV4Y2hhbmdlKF9kaWRTZWxlY3RTaGlwcGluZ01ldGhvZENvbXBs
ZXRpb24sIG5pbCkodXBkYXRlLmdldCgpKTsKIH0KIAogLSAodm9pZClpbnZhbGlkYXRlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvTlNBdHRyaWJ1dGVkU3Ry
aW5nLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL05TQXR0cmlidXRlZFN0
cmluZy5tbQppbmRleCBhMTBkMjI4OGJlNjIwZDIyM2ZiMjllZTRhMDU1OGRlZTk3YjYyYjE2Li44
ZTA2OGE3MDQzMWMyMjZjNDVjNTkxNmY4MDMzYmJiMTk4MzgzZTczIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvTlNBdHRyaWJ1dGVkU3RyaW5nLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9OU0F0dHJpYnV0ZWRTdHJpbmcubW0K
QEAgLTEzMyw3ICsxMzMsNyBAQCArIChXS1dlYlZpZXdDb25maWd1cmF0aW9uICopY29uZmlndXJh
dGlvbgogewogICAgIGlmICghY29uZmlndXJhdGlvbikgewogICAgICAgICBjb25maWd1cmF0aW9u
ID0gW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XTsKLSAgICAgICAgY29uZmln
dXJhdGlvbi5wcm9jZXNzUG9vbCA9IGFkb3B0TlMoW1tXS1Byb2Nlc3NQb29sIGFsbG9jXSBpbml0
XSkuYXV0b3JlbGVhc2UoKTsKKyAgICAgICAgY29uZmlndXJhdGlvbi5wcm9jZXNzUG9vbCA9IGFk
b3B0TlMoW1tXS1Byb2Nlc3NQb29sIGFsbG9jXSBpbml0XSkuZ2V0KCk7CiAgICAgICAgIGNvbmZp
Z3VyYXRpb24ud2Vic2l0ZURhdGFTdG9yZSA9IFtXS1dlYnNpdGVEYXRhU3RvcmUgbm9uUGVyc2lz
dGVudERhdGFTdG9yZV07CiAgICAgICAgIGNvbmZpZ3VyYXRpb24ubWVkaWFUeXBlc1JlcXVpcmlu
Z1VzZXJBY3Rpb25Gb3JQbGF5YmFjayA9IFdLQXVkaW92aXN1YWxNZWRpYVR5cGVBbGw7CiAgICAg
ICAgIGNvbmZpZ3VyYXRpb24uX2FsbG93c0phdmFTY3JpcHRNYXJrdXAgPSBOTzsKQEAgLTI2OSwx
MiArMjY5LDE4IEBAICsgKHZvaWQpX2xvYWRGcm9tSFRNTFdpdGhPcHRpb25zOihOU0RpY3Rpb25h
cnk8TlNBdHRyaWJ1dGVkU3RyaW5nRG9jdW1lbnRSZWFkaW5nCiAgICAgICAgICAgICB3ZWJWaWV3
ID0gbmlsOwogCiAgICAgICAgICAgICAvLyBNYWtlIHRoZSBzdHJpbmcgYmUgYW4gaW5zdGFuY2Ug
b2YgdGhlIHJlY2VpdmVyIGNsYXNzLgotICAgICAgICAgICAgaWYgKGF0dHJpYnV0ZWRTdHJpbmcg
JiYgc2VsZiAhPSBhdHRyaWJ1dGVkU3RyaW5nLmNsYXNzKQotICAgICAgICAgICAgICAgIGF0dHJp
YnV0ZWRTdHJpbmcgPSBhZG9wdE5TKFtbc2VsZiBhbGxvY10gaW5pdFdpdGhBdHRyaWJ1dGVkU3Ry
aW5nOmF0dHJpYnV0ZWRTdHJpbmddKS5hdXRvcmVsZWFzZSgpOworICAgICAgICAgICAgUmV0YWlu
UHRyPE5TQXR0cmlidXRlZFN0cmluZz4gbmV3QXR0cmlidXRlZFN0cmluZzsKKyAgICAgICAgICAg
IGlmIChhdHRyaWJ1dGVkU3RyaW5nICYmIHNlbGYgIT0gYXR0cmlidXRlZFN0cmluZy5jbGFzcykg
eworICAgICAgICAgICAgICAgIG5ld0F0dHJpYnV0ZWRTdHJpbmcgPSBhZG9wdE5TKFtbc2VsZiBh
bGxvY10gaW5pdFdpdGhBdHRyaWJ1dGVkU3RyaW5nOmF0dHJpYnV0ZWRTdHJpbmddKTsKKyAgICAg
ICAgICAgICAgICBhdHRyaWJ1dGVkU3RyaW5nID0gbmV3QXR0cmlidXRlZFN0cmluZy5nZXQoKTsK
KyAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgLy8gTWFrZSB0aGUgZG9jdW1lbnQgYXR0cmli
dXRlcyBpbW11dGFibGUuCi0gICAgICAgICAgICBpZiAoW2F0dHJpYnV0ZXMgaXNLaW5kT2ZDbGFz
czpOU011dGFibGVEaWN0aW9uYXJ5LmNsYXNzXSkKLSAgICAgICAgICAgICAgICBhdHRyaWJ1dGVz
ID0gYWRvcHROUyhbW05TRGljdGlvbmFyeSBhbGxvY10gaW5pdFdpdGhEaWN0aW9uYXJ5OmF0dHJp
YnV0ZXNdKS5hdXRvcmVsZWFzZSgpOworICAgICAgICAgICAgUmV0YWluUHRyPE5TRGljdGlvbmFy
eTxOU0F0dHJpYnV0ZWRTdHJpbmdEb2N1bWVudEF0dHJpYnV0ZUtleSwgaWQ+PiBuZXdBdHRyaWJ1
dGVzOworICAgICAgICAgICAgaWYgKFthdHRyaWJ1dGVzIGlzS2luZE9mQ2xhc3M6TlNNdXRhYmxl
RGljdGlvbmFyeS5jbGFzc10pIHsKKyAgICAgICAgICAgICAgICBuZXdBdHRyaWJ1dGVzID0gYWRv
cHROUyhbW05TRGljdGlvbmFyeSBhbGxvY10gaW5pdFdpdGhEaWN0aW9uYXJ5OmF0dHJpYnV0ZXNd
KTsKKyAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzID0gbmV3QXR0cmlidXRlcy5nZXQoKTsKKyAg
ICAgICAgICAgIH0KIAogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoYXR0cmlidXRlZFN0
cmluZywgYXR0cmlidXRlcywgZXJyb3IpOwogICAgICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dENv
bnRyb2xsZXIubW0KaW5kZXggZWFkN2E3ZGQ2Y2ZkYmRlMjEzZGMxOTMyNjcyYTMwNzZjZGQxYzIy
OS4uMjAxZDViM2UyZjYzOTg2YzUyMDMwNWU4ZjE3NzdlNzM4ZmQ2ZjFlNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0Q29udHJv
bGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2lu
Z0NvbnRleHRDb250cm9sbGVyLm1tCkBAIC00OTQsMjEgKzQ5NCwyMSBAQCBzdGF0aWMgdm9pZCBz
ZXRVcFBhZ2VQb2xpY3lDbGllbnQoV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyICpicm93c2lu
Z0NvbnRleHQsCiAgICAgICAgIGF1dG8gcG9saWN5RGVsZWdhdGUgPSBicm93c2luZ0NvbnRleHQt
Pl9wb2xpY3lEZWxlZ2F0ZS5nZXQoKTsKIAogICAgICAgICBpZiAoW3BvbGljeURlbGVnYXRlIHJl
c3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoYnJvd3NpbmdDb250ZXh0Q29udHJvbGxlcjpkZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOmRlY2lzaW9uSGFuZGxlcjopXSkgewotICAgICAg
ICAgICAgTlNEaWN0aW9uYXJ5ICphY3Rpb25EaWN0aW9uYXJ5ID0gQHsKKyAgICAgICAgICAgIGF1
dG8gYWN0aW9uRGljdGlvbmFyeSA9IHJldGFpblB0cihAewogICAgICAgICAgICAgICAgIFdLQWN0
aW9uSXNNYWluRnJhbWVLZXk6IEAoV0tGcmFtZUlzTWFpbkZyYW1lKGZyYW1lKSksCiAgICAgICAg
ICAgICAgICAgV0tBY3Rpb25OYXZpZ2F0aW9uVHlwZUtleTogQChuYXZpZ2F0aW9uVHlwZSksCiAg
ICAgICAgICAgICAgICAgV0tBY3Rpb25Nb2RpZmllckZsYWdzS2V5OiBAKG1vZGlmaWVycyksCiAg
ICAgICAgICAgICAgICAgV0tBY3Rpb25Nb3VzZUJ1dHRvbktleTogQChtb3VzZUJ1dHRvbiksCiAg
ICAgICAgICAgICAgICAgV0tBY3Rpb25PcmlnaW5hbFVSTFJlcXVlc3RLZXk6IGFkb3B0TlMoV0tV
UkxSZXF1ZXN0Q29weU5TVVJMUmVxdWVzdChvcmlnaW5hbFJlcXVlc3QpKS5nZXQoKSwKICAgICAg
ICAgICAgICAgICBXS0FjdGlvblVSTFJlcXVlc3RLZXk6IGFkb3B0TlMoV0tVUkxSZXF1ZXN0Q29w
eU5TVVJMUmVxdWVzdChyZXF1ZXN0KSkuZ2V0KCkKLSAgICAgICAgICAgIH07CisgICAgICAgICAg
ICB9KTsKIAogICAgICAgICAgICAgaWYgKG9yaWdpbmF0aW5nRnJhbWUpIHsKLSAgICAgICAgICAg
ICAgICBhY3Rpb25EaWN0aW9uYXJ5ID0gYWRvcHROUyhbYWN0aW9uRGljdGlvbmFyeSBtdXRhYmxl
Q29weV0pLmF1dG9yZWxlYXNlKCk7Ci0gICAgICAgICAgICAgICAgWyhOU011dGFibGVEaWN0aW9u
YXJ5ICopYWN0aW9uRGljdGlvbmFyeSBzZXRPYmplY3Q6W05TVVJMIF93ZWJfVVJMV2l0aFdURlN0
cmluZzpXZWJLaXQ6OnRvSW1wbChvcmlnaW5hdGluZ0ZyYW1lKS0+dXJsKCkuc3RyaW5nKCldIGZv
cktleTpXS0FjdGlvbk9yaWdpbmF0aW5nRnJhbWVVUkxLZXldOworICAgICAgICAgICAgICAgIGFj
dGlvbkRpY3Rpb25hcnkgPSBhZG9wdE5TKFthY3Rpb25EaWN0aW9uYXJ5IG11dGFibGVDb3B5XSk7
CisgICAgICAgICAgICAgICAgWyhOU011dGFibGVEaWN0aW9uYXJ5ICopYWN0aW9uRGljdGlvbmFy
eS5nZXQoKSBzZXRPYmplY3Q6W05TVVJMIF93ZWJfVVJMV2l0aFdURlN0cmluZzpXZWJLaXQ6OnRv
SW1wbChvcmlnaW5hdGluZ0ZyYW1lKS0+dXJsKCkuc3RyaW5nKCldIGZvcktleTpXS0FjdGlvbk9y
aWdpbmF0aW5nRnJhbWVVUkxLZXldOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgCi0gICAg
ICAgICAgICBbcG9saWN5RGVsZWdhdGUgYnJvd3NpbmdDb250ZXh0Q29udHJvbGxlcjpicm93c2lu
Z0NvbnRleHQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjphY3Rpb25EaWN0aW9uYXJ5
IGRlY2lzaW9uSGFuZGxlcjptYWtlUG9saWN5RGVjaXNpb25CbG9jayhsaXN0ZW5lcildOworICAg
ICAgICAgICAgW3BvbGljeURlbGVnYXRlIGJyb3dzaW5nQ29udGV4dENvbnRyb2xsZXI6YnJvd3Np
bmdDb250ZXh0IGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246YWN0aW9uRGljdGlvbmFy
eS5nZXQoKSBkZWNpc2lvbkhhbmRsZXI6bWFrZVBvbGljeURlY2lzaW9uQmxvY2sobGlzdGVuZXIp
XTsKICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBXS0ZyYW1lUG9saWN5TGlzdGVuZXJVc2Uo
bGlzdGVuZXIpOwogICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlldy5tbQppbmRleCA2MzAyNzgyNDNjMzBlOWM1MjA1MjJkNmM2ZTY4MjBlNDJlYTdj
OWMxLi5iODM4YjY3MTg0NWE4NWE3YTVmMDc1ZjUyNjU0ZjYwYjY4ODAzOWJiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTIyNTUsNyAr
MjI1NSw3IEBAIC0gKHZvaWQpX3Rha2VQREZTbmFwc2hvdFdpdGhDb25maWd1cmF0aW9uOihXS1Nu
YXBzaG90Q29uZmlndXJhdGlvbiAqKXNuYXBzaG90Q29uCiAgICAgICAgIFtwZGZDb25maWd1cmF0
aW9uIHNldFJlY3Q6c25hcHNob3RDb25maWd1cmF0aW9uLnJlY3RdOwogICAgIH0KIAotICAgIFtz
ZWxmIGNyZWF0ZVBERldpdGhDb25maWd1cmF0aW9uOnBkZkNvbmZpZ3VyYXRpb24uYXV0b3JlbGVh
c2UoKSBjb21wbGV0aW9uSGFuZGxlcjpjb21wbGV0aW9uSGFuZGxlcl07CisgICAgW3NlbGYgY3Jl
YXRlUERGV2l0aENvbmZpZ3VyYXRpb246cGRmQ29uZmlndXJhdGlvbi5nZXQoKSBjb21wbGV0aW9u
SGFuZGxlcjpjb21wbGV0aW9uSGFuZGxlcl07CiB9CiAKIC0gKHZvaWQpX2dldFBERkZpcnN0UGFn
ZVNpemVJbkZyYW1lOihfV0tGcmFtZUhhbmRsZSAqKWZyYW1lIGNvbXBsZXRpb25IYW5kbGVyOih2
b2lkKF4pKENHU2l6ZSkpY29tcGxldGlvbkhhbmRsZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3VGVzdGluZ0lPUy5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3VGVzdGluZ0lPUy5tbQppbmRleCBhYmVmOWNl
MjdlNTc5M2I4ZDc2ZTY5YTdjYTc3NGNkZWU1MmRlOTJlLi5lZTk5MGU4ZTcwZWNlYjZmMDBiZjcy
M2VlZWM3NDcxMmU0MGJlZmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvaW9zL1dLV2ViVmlld1Rlc3RpbmdJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2lvcy9XS1dlYlZpZXdUZXN0aW5nSU9TLm1tCkBAIC01OCw3ICs1OCw3IEBAIC0gKHZv
aWQpX3JlcXVlc3RUZXh0SW5wdXRDb250ZXh0c0luUmVjdDooQ0dSZWN0KXJlY3QgY29tcGxldGlv
bkhhbmRsZXI6KHZvaWQgKF4pCiAgICAgICAgICAgICBhZGp1c3RlZENvbnRleHQuYm91bmRpbmdS
ZWN0ID0gW3N0cm9uZ1NlbGYgY29udmVydFJlY3Q6YWRqdXN0ZWRDb250ZXh0LmJvdW5kaW5nUmVj
dCBmcm9tVmlldzpzdHJvbmdTZWxmLT5fY29udGVudFZpZXcuZ2V0KCldOwogICAgICAgICAgICAg
W2FkanVzdGVkQ29udGV4dHMgYWRkT2JqZWN0OmFkb3B0TlMoW1tfV0tUZXh0SW5wdXRDb250ZXh0
IGFsbG9jXSBfaW5pdFdpdGhUZXh0SW5wdXRDb250ZXh0OmFkanVzdGVkQ29udGV4dF0pLmdldCgp
XTsKICAgICAgICAgfQotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihhZGp1c3RlZENvbnRleHRz
LmF1dG9yZWxlYXNlKCkpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihhZGp1c3RlZENvbnRl
eHRzLmdldCgpKTsKICAgICB9XTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFjL05ldHNjYXBlUGx1Z2luTWFjLm1tIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFjL05ldHNjYXBlUGx1Z2luTWFj
Lm1tCmluZGV4IDQzYjM0OThlYzc2OTYzOGI3OTExMzdhMDdhMzFlZGVjOWY1ZDlmNjcuLmEwZDlh
MTVhMzYyMjcxZmY1OTU2NDQ1YzY4MDA5YjIwZTkxNGY0ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRzY2FwZVBsdWdpbk1hYy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0
c2NhcGVQbHVnaW5NYWMubW0KQEAgLTQ4MSw4ICs0ODEsNyBAQCBzdGF0aWMgYm9vbCBpc0ZsYWdz
Q2hhbmdlZEV2ZW50KGNvbnN0IFdlYktleWJvYXJkRXZlbnQmIGtleWJvYXJkRXZlbnQpCiAKIHN0
YXRpYyBOUE5TU3RyaW5nICpjb252ZXJ0VG9OUE5OU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5n
KQogewotICAgIENGVHlwZVJlZiByZWxlYXNlZFN0cmluZyA9IHN0cmluZy5jcmVhdGVDRlN0cmlu
ZygpLmF1dG9yZWxlYXNlKCk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PE5QTlNTdHJpbmcqPihj
b25zdF9jYXN0PHZvaWQqPihyZWxlYXNlZFN0cmluZykpOworICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxOUE5TU3RyaW5nKj4oc3RhdGljX2Nhc3Q8TlNTdHJpbmcqPihzdHJpbmcpKTsKIH0KIAogc3Rh
dGljIE5QQ29jb2FFdmVudCBpbml0aWFsaXplS2V5Ym9hcmRFdmVudChjb25zdCBXZWJLZXlib2Fy
ZEV2ZW50JiBrZXlib2FyZEV2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvbWFjL1dLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RNYWMubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9i
amVjdE1hYy5tbQppbmRleCA2ZGFiY2ZjMjc1NGU1YWQzYTQxOTE4MWMyYTYxNmNkODBhYjBkNzk0
Li4wYjk0YTQ2MTQ1ODUxZDMzOGQ3NjE5ZWNjZDdkMDBmOTFjNjg2OTc4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV0tBY2Nlc3NpYmlsaXR5V2ViUGFn
ZU9iamVjdE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMv
V0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdE1hYy5tbQpAQCAtOTUsNyArOTUsNyBAQCBBTExP
V19ERVBSRUNBVEVEX0lNUExFTUVOVEFUSU9OU19FTkQKICAgICAgICAgcmV0dXJuIGNhY2hlZE5h
bWVzOwogI2VuZGlmCiAKLSAgICBpZCBuYW1lcyA9IGF4OjpyZXRyaWV2ZVZhbHVlRnJvbU1haW5U
aHJlYWQ8UmV0YWluUHRyPGlkPj4oW1BST1RFQ1RFRF9TRUxGXSAoKSAtPiBSZXRhaW5QdHI8aWQ+
IHsKKyAgICBhdXRvIG5hbWVzID0gYXg6OnJldHJpZXZlVmFsdWVGcm9tTWFpblRocmVhZDxSZXRh
aW5QdHI8aWQ+PihbUFJPVEVDVEVEX1NFTEZdICgpIC0+IFJldGFpblB0cjxpZD4gewogICAgICAg
ICBhdXRvIHBhZ2UgPSBwcm90ZWN0ZWRTZWxmLT5tX3BhZ2U7CiAgICAgICAgIGlmICghcGFnZSkK
ICAgICAgICAgICAgIHJldHVybiBAW107CkBAIC0xMDUsMTMgKzEwNSwxMyBAQCBBTExPV19ERVBS
RUNBVEVEX0lNUExFTUVOVEFUSU9OU19FTkQKICAgICAgICAgICAgIHJldHVybiBAW107CiAKICAg
ICAgICAgcmV0dXJuIGNyZWF0ZU5TQXJyYXkoY29yZVBhZ2UtPnBhZ2VPdmVybGF5Q29udHJvbGxl
cigpLmNvcHlBY2Nlc3NpYmlsaXR5QXR0cmlidXRlc05hbWVzKHRydWUpKTsKLSAgICB9KS5hdXRv
cmVsZWFzZSgpOworICAgIH0pOwogCiAjaWYgRU5BQkxFKEFDQ0VTU0lCSUxJVFlfSVNPTEFURURf
VFJFRSkKLSAgICBzZWxmLmNhY2hlZFBhcmFtZXRlcml6ZWRBdHRyaWJ1dGVOYW1lcyA9IG5hbWVz
OworICAgIHNlbGYuY2FjaGVkUGFyYW1ldGVyaXplZEF0dHJpYnV0ZU5hbWVzID0gbmFtZXMuZ2V0
KCk7CiAjZW5kaWYKIAotICAgIHJldHVybiBuYW1lczsKKyAgICByZXR1cm4gbmFtZXMuYXV0b3Jl
bGVhc2UoKTsKIH0KIAogQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfQkVHSU4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViTlNPYmplY3RFeHRyYXMu
bW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYk5TT2JqZWN0RXh0cmFzLm1tCmlu
ZGV4IDJmNWE5NDYwZDAxYzcxMGIyYzBiM2I3YzRjN2U3Y2RmZmYyY2I4NzEuLmE2MTUzMjkxMGJj
ZWYwYTM0YTUxMjRiYTI4OGY3Y2ExNDQ2ZDhmYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL01pc2MvV2ViTlNPYmplY3RFeHRyYXMubW0KKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvTWlzYy9XZWJOU09iamVjdEV4dHJhcy5tbQpAQCAtNjIsOCArNjIsOCBAQCAtICh2
b2lkKWZvcndhcmRJbnZvY2F0aW9uOihOU0ludm9jYXRpb24gKilpbnZvY2F0aW9uCiAgICAgW2lu
dm9jYXRpb24gc2V0VGFyZ2V0OnRhcmdldF07CiAgICAgW2ludm9jYXRpb24gcGVyZm9ybVNlbGVj
dG9yT25NYWluVGhyZWFkOkBzZWxlY3Rvcihfd2Via2l0X2ludm9rZUFuZEhhbmRsZUV4Y2VwdGlv
bjopIHdpdGhPYmplY3Q6c2VsZiB3YWl0VW50aWxEb25lOllFU107CiAgICAgaWYgKGV4Y2VwdGlv
bikgewotICAgICAgICBpZCBleGNlcHRpb25Ub1Rocm93ID0gc3RkOjpleGNoYW5nZShleGNlcHRp
b24sIG5pbCkuYXV0b3JlbGVhc2UoKTsKLSAgICAgICAgQHRocm93IGV4Y2VwdGlvblRvVGhyb3c7
CisgICAgICAgIGF1dG8gZXhjZXB0aW9uVG9UaHJvdyA9IHN0ZDo6ZXhjaGFuZ2UoZXhjZXB0aW9u
LCBuaWwpOworICAgICAgICBAdGhyb3cgZXhjZXB0aW9uVG9UaHJvdy5nZXQoKTsKICAgICB9IGVs
c2UgaWYgKHJldHVyblR5cGVJc09iamVjdChpbnZvY2F0aW9uKSkgewogICAgICAgICAvLyBfd2Vi
a2l0X2ludm9rZUFuZEhhbmRsZUV4Y2VwdGlvbiByZXRhaW5lZCB0aGUgcmV0dXJuIHZhbHVlIG9u
IHRoZSBtYWluIHRocmVhZC4KICAgICAgICAgLy8gTm93IGF1dG9yZWxlYXNlIGl0IG9uIHRoZSBj
YWxsaW5nIHRocmVhZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdp
bnMvV2ViTmV0c2NhcGVQbHVnaW5WaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1
Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZpZXcubW0KaW5kZXggZjBkOTk4YzA5NjA0OGQ5YWZkMTM2
ZWQyMjFhZDUxZTYxN2UyYjFiMy4uMTJhYWEzZDA4Zjc3YzhjZjhkNDFkNDQzZTEyYWI2ZDJlMjcx
MjNiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJOZXRz
Y2FwZVBsdWdpblZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9X
ZWJOZXRzY2FwZVBsdWdpblZpZXcubW0KQEAgLTM1NSw3ICszNTUsNyBAQCAtIChCT09MKXNlbmRF
dmVudDoodm9pZCopZXZlbnQgaXNEcmF3UmVjdDooQk9PTClldmVudElzRHJhd1JlY3QKICAgICB9
CiAKICAgICAvLyBUZW1wb3JhcmlseSByZXRhaW4gc2VsZiBpbiBjYXNlIHRoZSBwbHVnLWluIHZp
ZXcgaXMgcmVsZWFzZWQgd2hpbGUgc2VuZGluZyBhbiBldmVudC4gCi0gICAgcmV0YWluUHRyKHNl
bGYpLmF1dG9yZWxlYXNlKCk7CisgICAgYXV0byBzdHJvbmdTZWxmID0gcmV0YWluUHRyKHNlbGYp
OwogCiAgICAgQk9PTCBhY2NlcHRlZEV2ZW50OwogICAgIFtzZWxmIHdpbGxDYWxsUGx1Z0luRnVu
Y3Rpb25dOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJW
aWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyLm1tCmluZGV4IDJiMThmNjljYzAxM2Q3
ODg2MTdiOTJlMDYxZWQ4NzFjY2JiODJkYTAuLmE5YTY0ZjA0NjA4NDE3OTYzMWViMWE0YTBhMDgx
MjNlZDViMzE1NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIubW0KQEAgLTE1MSw3ICsx
NTEsNyBAQCAtIChpZClpbml0CiAgICAgX3BsYXliYWNrSW50ZXJmYWNlID0gV2ViQ29yZTo6UGxh
eWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQ6OmNyZWF0ZSgqX3BsYXliYWNrTW9kZWwpOwogICAg
IF9jb250ZW50T3ZlcmxheSA9IGFkb3B0TlMoW1tOU1ZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6
TlNaZXJvUmVjdF0pOwogICAgIF9jb250ZW50T3ZlcmxheS5nZXQoKS5sYXllckNvbnRlbnRzUmVk
cmF3UG9saWN5ID0gTlNWaWV3TGF5ZXJDb250ZW50c1JlZHJhd05ldmVyOwotICAgIF9jb250ZW50
T3ZlcmxheS5nZXQoKS5sYXllciA9IGFkb3B0TlMoW1tXZWJWaWRlb0Z1bGxzY3JlZW5PdmVybGF5
TGF5ZXIgYWxsb2NdIGluaXRdKS5hdXRvcmVsZWFzZSgpOworICAgIF9jb250ZW50T3ZlcmxheS5n
ZXQoKS5sYXllciA9IGFkb3B0TlMoW1tXZWJWaWRlb0Z1bGxzY3JlZW5PdmVybGF5TGF5ZXIgYWxs
b2NdIGluaXRdKS5nZXQoKTsKICAgICBbX2NvbnRlbnRPdmVybGF5IHNldFdhbnRzTGF5ZXI6WUVT
XTsKICAgICBbX2NvbnRlbnRPdmVybGF5IHNldEF1dG9yZXNpemluZ01hc2s6KE5TVmlld1dpZHRo
U2l6YWJsZSB8IE5TVmlld0hlaWdodFNpemFibGUpXTsKICAgICBbc2VsZiB3aW5kb3dEaWRMb2Fk
XTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA3
NGU2ZTdmOTVjYmFkNDg2MGM1MTFmY2Y0N2QyODY2Y2I5NzgwOTQ2Li4wY2E4ZGEwOGNjNzFiMWJj
Y2FkZThmNmM1OWY5Mzc3NjE3ZWViMjQ0IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysr
IGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzUgQEAKKzIwMjEtMDItMTkgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXcgcmVtYWluaW5nIHVzYWdl
IG9mIGF1dG9yZWxlYXNlIHRvIG1ha2Ugc3VyZSBpdCBpcyBuZWNlc3NhcnkKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjE3NworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9t
YWMvTlNQYXN0ZWJvYXJkQWRkaXRpb25zLm1tOgorICAgICAgICAoK1tOU1Bhc3RlYm9hcmQgX21v
ZGVyblBhc3RlYm9hcmRUeXBlOl0pOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvSmF2
YVNjcmlwdENvcmUvSlNSdW5Mb29wVGltZXIubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjp0
cmlnZ2VyR0MpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9X
ZWJDb3JlTlNVUkxTZXNzaW9uLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6V2ViQ29yZU5T
VVJMU2Vzc2lvblRlc3Q6OlNldFVwKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC9HZXRVc2VyTWVkaWFOYXZpZ2F0aW9uLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvbWFjL0NvbnRleHRN
ZW51SW1nV2l0aFZpZGVvLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW06CisgICAg
ICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL0NvbnRlbnRSdWxlTGlzdE5vdGlmaWNhdGlvbi5tbToKKyAgICAgICAgKC1b
Q29udGVudFJ1bGVMaXN0Tm90aWZpY2F0aW9uRGVsZWdhdGUgd2ViVmlldzpzdGFydFVSTFNjaGVt
ZVRhc2s6XSk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9EZXZp
Y2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zLm1tOgorICAgICAgICAoVEVTVCk6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Eb3dubG9hZC5tbToKKyAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OndlYlZpZXdXaXRoRG93bmxvYWRNb25pdG9yU3BlZWRNdWx0aXBsaWVyKToK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0RyYWdBbmREcm9wVGVz
dHMubW06CisgICAgICAgIChydW5EcmFnU3RhcnREYXRhVGVzdENhc2UpOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5BcHBCcm93c2VyUHJpdmFjeS5tbToKKyAg
ICAgICAgKC1bSW5BcHBCcm93c2VyU2NoZW1lSGFuZGxlciB3ZWJWaWV3OnN0YXJ0VVJMU2NoZW1l
VGFzazpdKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0luZGV4
ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eS5tbToKKyAgICAgICAgKFRF
U1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5kZXhlZERC
VGVtcEZpbGVTaXplLm1tOgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9KSVRFbmFibGVkLm1tOgorICAgICAgICAoVEVTVCk6CisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Mb2NhbFN0b3JhZ2VEYXRhYmFz
ZVRyYWNrZXIubW06CisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL05ldHdvcmtQcm9jZXNzLm1tOgorICAgICAgICAoVEVTVCk6CisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdh
dGlvbi5tbToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb3h5
Lm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXBhcmVudFdlYlZpZXdUaW1lb3V0Lm1tOgorICAgICAg
ICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXNv
dXJjZUxvYWRTdGF0aXN0aWNzLm1tOgorICAgICAgICAoVEVTVCk6CisgICAgICAgICgtW1Jlc291
cmNlTG9hZFN0YXRpc3RpY3NTY2hlbWVIYW5kbGVyIHdlYlZpZXc6c3RhcnRVUkxTY2hlbWVUYXNr
Ol0pOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2FmZUJyb3dz
aW5nLm1tOgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW06CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9UTFNEZXByZWNhdGlvbi5tbToKKyAgICAgICAgKFRlc3RXZWJL
aXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
VGV4dE1hbmlwdWxhdGlvbi5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVUlEZWxlZ2F0ZS5tbToKKyAg
ICAgICAgKFRFU1QpOgorICAgICAgICAoLVtVSVRlc3REZWxlZ2F0ZSB3ZWJWaWV3OnN0YXJ0VVJM
U2NoZW1lVGFzazpdKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L1VzZXJDb250ZW50Q29udHJvbGxlci5tbToKKyAgICAgICAgKHdlYlZpZXdGb3JTY3JpcHRNZXNz
YWdlSGFuZGxlck11bHRpcGxlSGFuZGxlclJlbW92YWxUZXN0KToKKyAgICAgICAgKFRFU1QpOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tBdHRhY2htZW50VGVz
dHMubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLUERGVmlldy5tbToKKyAgICAgICAgKFRFU1QpOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tVUkxTY2hlbWVIYW5k
bGVyLTEubW06CisgICAgICAgICgtW1N5bmNFcnJvclNjaGVtZSB3ZWJWaWV3OnN0YXJ0VVJMU2No
ZW1lVGFzazpdKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dL
V2ViVmlld0V2YWx1YXRlSmF2YVNjcmlwdC5tbToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL2lvcy9EcmFnQW5kRHJvcFRlc3RzSU9TLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRm9udE1hbmFnZXJUZXN0
cy5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAyMDIxLTAyLTE5ICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CiAKICAgICAgICAgUENNOiBSZXF1ZXN0IHNl
cnZlciBwdWJsaWMga2V5IHRvIGdlbmVyYXRlIHNlY3JldCB0b2tlbgpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFJ1bm5lclNoYXJlZC9tYWMvTlNQYXN0ZWJvYXJkQWRkaXRpb25zLm1tIGIvVG9vbHMv
VGVzdFJ1bm5lclNoYXJlZC9tYWMvTlNQYXN0ZWJvYXJkQWRkaXRpb25zLm1tCmluZGV4IDY5M2Fh
NTgyODNhMWY4ZjMxMDMzZTVjY2MzMTFiYWQ4YjhiYjI1M2UuLjQzZGMxMWI4OWUxZjg4MThiZWVh
MDhlNDQzMmQzNTcwMzI1MjMxNzcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQv
bWFjL05TUGFzdGVib2FyZEFkZGl0aW9ucy5tbQorKysgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVk
L21hYy9OU1Bhc3RlYm9hcmRBZGRpdGlvbnMubW0KQEAgLTM2LDkgKzM2LDExIEBAIEBpbXBsZW1l
bnRhdGlvbiBOU1Bhc3RlYm9hcmQgKFRlc3RSdW5uZXJBZGRpdGlvbnMpCiAKICsgKE5TUGFzdGVi
b2FyZFR5cGUpX21vZGVyblBhc3RlYm9hcmRUeXBlOihOU1N0cmluZyAqKXR5cGUKIHsKKyAgICBS
ZXRhaW5QdHI8TlNTdHJpbmc+IGxlZ2FjeVR5cGU7CiAgICAgaWYgKFVUVHlwZUlzRHluYW1pYygo
X19icmlkZ2UgQ0ZTdHJpbmdSZWYpdHlwZSkpIHsKLSAgICAgICAgaWYgKGF1dG8gbGVnYWN5VHlw
ZSA9IGFkb3B0TlMoKF9fYnJpZGdlIE5TU3RyaW5nICopVVRUeXBlQ29weVByZWZlcnJlZFRhZ1dp
dGhDbGFzcygoX19icmlkZ2UgQ0ZTdHJpbmdSZWYpdHlwZSwga1VUVGFnQ2xhc3NOU1Bib2FyZFR5
cGUpKSkKLSAgICAgICAgICAgIHR5cGUgPSBsZWdhY3lUeXBlLmF1dG9yZWxlYXNlKCk7CisgICAg
ICAgIGxlZ2FjeVR5cGUgPSBhZG9wdE5TKChfX2JyaWRnZSBOU1N0cmluZyAqKVVUVHlwZUNvcHlQ
cmVmZXJyZWRUYWdXaXRoQ2xhc3MoKF9fYnJpZGdlIENGU3RyaW5nUmVmKXR5cGUsIGtVVFRhZ0Ns
YXNzTlNQYm9hcmRUeXBlKSk7CisgICAgICAgIGlmIChsZWdhY3lUeXBlKQorICAgICAgICAgICAg
dHlwZSA9IGxlZ2FjeVR5cGUuZ2V0KCk7CiAgICAgfQogCiAgICAgaWYgKFt0eXBlIGlzRXF1YWxU
b1N0cmluZzpXZWJDb3JlOjpsZWdhY3lTdHJpbmdQYXN0ZWJvYXJkVHlwZSgpXSkKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvSmF2YVNjcmlwdENvcmUvSlNSdW5Mb29wVGlt
ZXIubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL0phdmFTY3JpcHRDb3JlL0pTUnVuTG9v
cFRpbWVyLm1tCmluZGV4IGQ0OTA5Zjg0Njg4YTQxMzMwNzVjZTRiZjg1Y2M2Njg4YjIzNDcyYTcu
LjJiMDhjNGEyZjBiMzQ4YjhlY2U0ZGJiYzM5MTdiNWFjNWFhNGJmMDYgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvSmF2YVNjcmlwdENvcmUvSlNSdW5Mb29wVGltZXIubW0K
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9KYXZhU2NyaXB0Q29yZS9KU1J1bkxvb3BU
aW1lci5tbQpAQCAtNjUsNyArNjUsNyBAQCBzdGF0aWMgdm9pZCB0cmlnZ2VyR0MoSlNDb250ZXh0
ICpjb250ZXh0KQogewogICAgIEBhdXRvcmVsZWFzZXBvb2wgewogICAgICAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IDEwMDA7ICsraSkKLSAgICAgICAgICAgIFtKU1ZhbHVlIHZhbHVlV2l0aE9i
amVjdDphZG9wdE5TKFtUZXN0T2JqZWN0IG5ld10pLmF1dG9yZWxlYXNlKCkgaW5Db250ZXh0OmNv
bnRleHRdOworICAgICAgICAgICAgW0pTVmFsdWUgdmFsdWVXaXRoT2JqZWN0OmFkb3B0TlMoW1Rl
c3RPYmplY3QgbmV3XSkuZ2V0KCkgaW5Db250ZXh0OmNvbnRleHRdOwogICAgICAgICBKU0dhcmJh
Z2VDb2xsZWN0KFtjb250ZXh0IEpTR2xvYmFsQ29udGV4dFJlZl0pOwogICAgIH0KIH0KZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9XZWJDb3JlTlNV
UkxTZXNzaW9uLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL1dl
YkNvcmVOU1VSTFNlc3Npb24ubW0KaW5kZXggZDk2MjMwNzRiMjE1ODBlNzEyYWY0NGM2ZjM0MGQ5
ZmU2MTYxZTlmYi4uMzlhNDRlMDNjMTM2ODU1ZjRjMDgxZDI4YmNmNTNmZmVlYTJmNjVhOCAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL1dlYkNvcmVO
U1VSTFNlc3Npb24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2Nv
Y29hL1dlYkNvcmVOU1VSTFNlc3Npb24ubW0KQEAgLTExOCw3ICsxMTgsNyBAQCBwdWJsaWM6CiAg
ICAgICAgIEpTQzo6aW5pdGlhbGl6ZSgpOwogI2VuZGlmCiAgICAgICAgIHZpZXcgPSBhZG9wdE5T
KFtbV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0XSk7Ci0gICAgICAgIFt2
aWV3IHNldEZyYW1lTG9hZERlbGVnYXRlOmFkb3B0TlMoW1tUZXN0TlNVUkxTZXNzaW9uTG9hZGVy
RGVsZWdhdGUgYWxsb2NdIGluaXRdKS5hdXRvcmVsZWFzZSgpXTsKKyAgICAgICAgW3ZpZXcgc2V0
RnJhbWVMb2FkRGVsZWdhdGU6YWRvcHROUyhbW1Rlc3ROU1VSTFNlc3Npb25Mb2FkZXJEZWxlZ2F0
ZSBhbGxvY10gaW5pdF0pLmdldCgpXTsKIAogICAgICAgICBkaWRMb2FkTWFpblJlc291cmNlID0g
ZmFsc2U7CiAgICAgICAgIFt2aWV3IHNldE1haW5GcmFtZVVSTDpkb2N1bWVudFVSTC5hYnNvbHV0
ZVN0cmluZ107CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9H
ZXRVc2VyTWVkaWFOYXZpZ2F0aW9uLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQvR2V0VXNlck1lZGlhTmF2aWdhdGlvbi5tbQppbmRleCBkZjFlMDVkMmUyZTM5ZmEyYWU1MTM5
ODNhOGIwZThiNWY4OTNjNmYxLi45YmZmZGFjNjU3OTk2ZTA5YjE1NzZjMTcyZGFlNzA4N2NkYTgw
YjUzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2Vy
TWVkaWFOYXZpZ2F0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
L0dldFVzZXJNZWRpYU5hdmlnYXRpb24ubW0KQEAgLTExNSw3ICsxMTUsNyBAQCBURVNUKFdlYktp
dCwgRGVmYXVsdERldmljZUlkSGFzaFNhbHRzRGlyZWN0b3J5KQogICAgIH0KIAogICAgIGF1dG8g
Y29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBp
bml0XSk7Ci0gICAgW2NvbmZpZ3VyYXRpb24gc2V0V2Vic2l0ZURhdGFTdG9yZTphZG9wdE5TKFtb
V0tXZWJzaXRlRGF0YVN0b3JlIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOndlYnNpdGVE
YXRhU3RvcmVDb25maWd1cmF0aW9uLmdldCgpXSkuYXV0b3JlbGVhc2UoKV07CisgICAgW2NvbmZp
Z3VyYXRpb24gc2V0V2Vic2l0ZURhdGFTdG9yZTphZG9wdE5TKFtbV0tXZWJzaXRlRGF0YVN0b3Jl
IGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOndlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0
aW9uLmdldCgpXSkuZ2V0KCldOwogICAgIGF1dG8gcHJvY2Vzc1Bvb2xDb25maWcgPSBhZG9wdE5T
KFtbX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgYXV0byBw
cmVmZXJlbmNlcyA9IFtjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXTsKICAgICBwcmVmZXJlbmNl
cy5fbWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uID0gTk87CkBAIC0xNDUsNyAr
MTQ1LDcgQEAgVEVTVChXZWJLaXQsIERldmljZUlkSGFzaFNhbHRzRGlyZWN0b3J5KQogICAgIFt3
ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiBzZXREZXZpY2VJZEhhc2hTYWx0c1N0b3JhZ2VE
aXJlY3Rvcnk6dGVtcERpcl07CiAgICAgCiAgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHRO
UyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKLSAgICBbY29uZmlndXJh
dGlvbiBzZXRXZWJzaXRlRGF0YVN0b3JlOmFkb3B0TlMoW1tXS1dlYnNpdGVEYXRhU3RvcmUgYWxs
b2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246d2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24u
Z2V0KCldKS5hdXRvcmVsZWFzZSgpXTsKKyAgICBbY29uZmlndXJhdGlvbiBzZXRXZWJzaXRlRGF0
YVN0b3JlOmFkb3B0TlMoW1tXS1dlYnNpdGVEYXRhU3RvcmUgYWxsb2NdIF9pbml0V2l0aENvbmZp
Z3VyYXRpb246d2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uZ2V0KCldKS5nZXQoKV07CiAg
ICAgYXV0byBwcm9jZXNzUG9vbENvbmZpZyA9IGFkb3B0TlMoW1tfV0tQcm9jZXNzUG9vbENvbmZp
Z3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBhdXRvIHByZWZlcmVuY2VzID0gW2NvbmZpZ3Vy
YXRpb24gcHJlZmVyZW5jZXNdOwogICAgIHByZWZlcmVuY2VzLl9tZWRpYUNhcHR1cmVSZXF1aXJl
c1NlY3VyZUNvbm5lY3Rpb24gPSBOTzsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0L21hYy9Db250ZXh0TWVudUltZ1dpdGhWaWRlby5tbSBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21hYy9Db250ZXh0TWVudUltZ1dpdGhWaWRlby5tbQppbmRl
eCAyZjRkN2RmY2I4MDAyY2MyZmZiMDQ3NDhkMGU4NjA0NThmMjIxMzlkLi41ODQ5MjIwNmQ4MTEz
ZTA3YWJjZTlhOTYxMmFkN2ZlMWVjMjJiNTdhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdC9tYWMvQ29udGV4dE1lbnVJbWdXaXRoVmlkZW8ubW0KKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvbWFjL0NvbnRleHRNZW51SW1nV2l0aFZpZGVv
Lm1tCkBAIC01NSw3ICs1NSw3IEBAIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIFRFU1QoV2Vi
S2l0LCBDb250ZXh0TWVudUltZ1dpdGhWaWRlbykKIHsKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9w
dE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAs
IDgwMCwgNjAwKV0pOwotICAgIHdlYlZpZXcuZ2V0KCkuVUlEZWxlZ2F0ZSA9IGFkb3B0TlMoW1tD
b250ZXh0TWVudUltZ1dpdGhWaWRlb0RlbGVnYXRlIGFsbG9jXSBpbml0XSkuYXV0b3JlbGVhc2Uo
KTsKKyAgICB3ZWJWaWV3LmdldCgpLlVJRGVsZWdhdGUgPSBhZG9wdE5TKFtbQ29udGV4dE1lbnVJ
bWdXaXRoVmlkZW9EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pLmdldCgpOwogICAgIFt3ZWJWaWV3IHN5
bmNocm9ub3VzbHlMb2FkVGVzdFBhZ2VOYW1lZDpAIkNvbnRleHRNZW51SW1nV2l0aFZpZGVvIl07
CiAKICAgICBOU1dpbmRvdyogd2luZG93ID0gW3dlYlZpZXcgd2luZG93XTsKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2hhbGxlbmdlLm1tIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0KaW5kZXggZDZl
MzgzZTFhMGJlMmU1NWY3OTFiNGY0YWQ4NmYxOTQzYWYzMGM4Yi4uZTU2MzdmN2Y1MmQ5OTFjZDg2
ZjU4YjI0YTE0MmNhOWQ2NTYyNTZmMiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0KQEAgLTU1Niw3ICs1NTYsNyBAQCBURVNUKFdl
YktpdCwgRmFzdFNlcnZlclRydXN0KQogICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMo
W1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgYXV0byBkYXRhU3Rv
cmVDb25maWd1cmF0aW9uID0gYWRvcHROUyhbW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0
aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgW2RhdGFTdG9yZUNvbmZpZ3VyYXRpb24gc2V0RmFzdFNl
cnZlclRydXN0RXZhbHVhdGlvbkVuYWJsZWQ6WUVTXTsKLSAgICBbY29uZmlndXJhdGlvbiBzZXRX
ZWJzaXRlRGF0YVN0b3JlOmFkb3B0TlMoW1tXS1dlYnNpdGVEYXRhU3RvcmUgYWxsb2NdIF9pbml0
V2l0aENvbmZpZ3VyYXRpb246ZGF0YVN0b3JlQ29uZmlndXJhdGlvbi5nZXQoKV0pLmF1dG9yZWxl
YXNlKCldOworICAgIFtjb25maWd1cmF0aW9uIHNldFdlYnNpdGVEYXRhU3RvcmU6YWRvcHROUyhb
W1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjpkYXRhU3Rv
cmVDb25maWd1cmF0aW9uLmdldCgpXSkuZ2V0KCldOwogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0
TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0WmVybyBjb25maWd1cmF0
aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhb
U2VydmVyVHJ1c3REZWxlZ2F0ZSBuZXddKTsKICAgICBbd2ViVmlldyBzZXROYXZpZ2F0aW9uRGVs
ZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9Db250ZW50UnVsZUxpc3ROb3RpZmljYXRpb24ubW0gYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NvbnRlbnRSdWxlTGlzdE5vdGlmaWNhdGlv
bi5tbQppbmRleCBkZDg1YmEwY2RiMTFjZGJmYzc4YzUyMDNhOGQ5YmFjMjY3ZjE4YmUxLi45YzVi
NTU2ZThlYTk1YzEwYjU1ODQ0ODhmZTVmZWQ0ZDljMTM4MjYwIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NvbnRlbnRSdWxlTGlzdE5vdGlmaWNhdGlv
bi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NvbnRlbnRS
dWxlTGlzdE5vdGlmaWNhdGlvbi5tbQpAQCAtODYsNyArODYsNyBAQCAtICh2b2lkKV93ZWJWaWV3
OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNvbnRlbnRSdWxlTGlzdFdpdGhJZGVudGlmaWVyOihOU1N0
cmluZyAqKQogCiAtICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgc3RhcnRVUkxT
Y2hlbWVUYXNrOihpZCA8V0tVUkxTY2hlbWVUYXNrPil1cmxTY2hlbWVUYXNrCiB7Ci0gICAgW3Vy
bFNjaGVtZVRhc2sgZGlkUmVjZWl2ZVJlc3BvbnNlOmFkb3B0TlMoW1tOU1VSTFJlc3BvbnNlIGFs
bG9jXSBpbml0V2l0aFVSTDp1cmxTY2hlbWVUYXNrLnJlcXVlc3QuVVJMIE1JTUVUeXBlOkAidGV4
dC9odG1sIiBleHBlY3RlZENvbnRlbnRMZW5ndGg6MCB0ZXh0RW5jb2RpbmdOYW1lOm5pbF0pLmF1
dG9yZWxlYXNlKCldOworICAgIFt1cmxTY2hlbWVUYXNrIGRpZFJlY2VpdmVSZXNwb25zZTphZG9w
dE5TKFtbTlNVUkxSZXNwb25zZSBhbGxvY10gaW5pdFdpdGhVUkw6dXJsU2NoZW1lVGFzay5yZXF1
ZXN0LlVSTCBNSU1FVHlwZTpAInRleHQvaHRtbCIgZXhwZWN0ZWRDb250ZW50TGVuZ3RoOjAgdGV4
dEVuY29kaW5nTmFtZTpuaWxdKS5nZXQoKV07CiAgICAgW3VybFNjaGVtZVRhc2sgZGlkRmluaXNo
XTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9EZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9EZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zLm1tCmluZGV4IGQ3
YjM2OTU3ZjI5MTQ1NTRhYTU3YjFkZDRmM2Y3YmZmOWI5MTg3MzkuLjc5Y2RjMzExMDY0M2Y1MWI5
MDI0ODEyYmYzNTMyMzQ5MTE0YjllOGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvRGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9ucy5tbQorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0RldmljZU1hbmFnZW1lbnRSZXN0
cmljdGlvbnMubW0KQEAgLTQyLDcgKzQyLDcgQEAgVEVTVChXZWJLaXQsIERldmljZU1hbmFnZW1l
bnRSZXN0cmljdGlvbnMpCiAgICAgW2RhdGFTdG9yZUNvbmZpZ3VyYXRpb24gc2V0QWxsTG9hZHNC
bG9ja2VkQnlEZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRm9yVGVzdGluZzpZRVNdOwogCiAg
ICAgUmV0YWluUHRyPFdLV2ViVmlld0NvbmZpZ3VyYXRpb24+IHdlYlZpZXdDb25maWd1cmF0aW9u
ID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKLSAgICBb
d2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0V2Vic2l0ZURhdGFTdG9yZTphZG9wdE5TKFtbV0tXZWJz
aXRlRGF0YVN0b3JlIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOmRhdGFTdG9yZUNvbmZp
Z3VyYXRpb24uZ2V0KCldKS5hdXRvcmVsZWFzZSgpXTsKKyAgICBbd2ViVmlld0NvbmZpZ3VyYXRp
b24gc2V0V2Vic2l0ZURhdGFTdG9yZTphZG9wdE5TKFtbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbG9j
XSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOmRhdGFTdG9yZUNvbmZpZ3VyYXRpb24uZ2V0KCldKS5n
ZXQoKV07CiAKICAgICBSZXRhaW5QdHI8VGVzdFdLV2ViVmlldz4gd2ViVmlldyA9IGFkb3B0TlMo
W1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdFplcm8gY29uZmlndXJh
dGlvbjp3ZWJWaWV3Q29uZmlndXJhdGlvbi5nZXQoKSBhZGRUb1dpbmRvdzpZRVNdKTsKIApkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Eb3dubG9hZC5t
bSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRG93bmxvYWQubW0KaW5k
ZXggYjQwMzU2ZmYyNDc4NmM4YjNmZGIyNDBlNGYxMzVkYjIyM2RhYmIwZi4uNmYwMDg3YjA4OTZm
MWQ2OTFiZmNjYmUwOWM0YmJkODU3YTE2ZTNhZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Eb3dubG9hZC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL0Rvd25sb2FkLm1tCkBAIC04OTcsNyArODk3LDcgQEAgUmV0
YWluUHRyPFdLV2ViVmlldz4gd2ViVmlld1dpdGhEb3dubG9hZE1vbml0b3JTcGVlZE11bHRpcGxp
ZXIoc2l6ZV90IG11bHRpcGxpZXIKICAgICBhdXRvIGRhdGFTdG9yZUNvbmZpZ3VyYXRpb24gPSBh
ZG9wdE5TKFtfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiBuZXddKTsKICAgICBbZGF0
YVN0b3JlQ29uZmlndXJhdGlvbiBzZXRUZXN0U3BlZWRNdWx0aXBsaWVyOm11bHRpcGxpZXJdOwog
ICAgIGF1dG8gd2ViVmlld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtXS1dlYlZpZXdDb25maWd1
cmF0aW9uIG5ld10pOwotICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRXZWJzaXRlRGF0YVN0
b3JlOmFkb3B0TlMoW1tXS1dlYnNpdGVEYXRhU3RvcmUgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3Vy
YXRpb246ZGF0YVN0b3JlQ29uZmlndXJhdGlvbi5nZXQoKV0pLmF1dG9yZWxlYXNlKCldOworICAg
IFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRXZWJzaXRlRGF0YVN0b3JlOmFkb3B0TlMoW1tXS1dl
YnNpdGVEYXRhU3RvcmUgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246ZGF0YVN0b3JlQ29u
ZmlndXJhdGlvbi5nZXQoKV0pLmdldCgpXTsKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtb
V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDAp
IGNvbmZpZ3VyYXRpb246d2ViVmlld0NvbmZpZ3VyYXRpb24uZ2V0KCldKTsKICAgICBbd2ViVmll
dyBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6bmF2aWdhdGlvbkRlbGVnYXRlLmdldCgpXTsKICAgICBb
d2ViVmlldyBjb25maWd1cmF0aW9uXS5wcm9jZXNzUG9vbC5fZG93bmxvYWREZWxlZ2F0ZSA9IG1v
bml0b3JEZWxlZ2F0ZSgpLmdldCgpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9EcmFnQW5kRHJvcFRlc3RzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9EcmFnQW5kRHJvcFRlc3RzLm1tCmluZGV4IGU3N2U1YTUzOTY0
Nzk1ZGRhMzU2NjczZjk4OGRmNGJhNDVmOWM4MjcuLjg0NDM2YThiZjRlZWYwY2E3MDJlNGY3MzBl
ZDk3ZDQxYjdhYTBkNjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvRHJhZ0FuZERyb3BUZXN0cy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0RyYWdBbmREcm9wVGVzdHMubW0KQEAgLTIxNSw3ICsyMTUsNyBAQCBz
dGF0aWMgRHJhZ1N0YXJ0RGF0YSBydW5EcmFnU3RhcnREYXRhVGVzdENhc2UoRHJhZ0FuZERyb3BT
aW11bGF0b3IgKnNpbXVsYXRvciwgTgogICAgIFthbGxEYXRhIHJlbW92ZU9iamVjdEZvcktleTpA
InRleHQvaHRtbCJdOwogICAgIFthbGxEYXRhIHJlbW92ZU9iamVjdEZvcktleTpAIkZpbGVzIl07
CiAgICAgaWYgKFthbGxEYXRhIGNvdW50XSkKLSAgICAgICAgcmVzdWx0LmN1c3RvbURhdGEgPSBh
bGxEYXRhLmF1dG9yZWxlYXNlKCk7CisgICAgICAgIHJlc3VsdC5jdXN0b21EYXRhID0gYWxsRGF0
YS5nZXQoKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0luQXBwQnJvd3NlclByaXZhY3kubW0gYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0luQXBwQnJvd3NlclByaXZhY3kubW0K
aW5kZXggNzNkMGNjNTI1ZjRhZmY2ZmQyM2Q2YmRlNDUxNjFmNjI4ODc4ZjVkMS4uNGIzNjVlOGJi
OTM3ZWVkMTVlNGFmYmNiNTY0ZmJjOGI3NzhlNTRlOCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbkFwcEJyb3dzZXJQcml2YWN5Lm1tCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5BcHBCcm93c2VyUHJpdmFjeS5t
bQpAQCAtMTIwLDcgKzEyMCw3IEBAIC0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmll
dyBzdGFydFVSTFNjaGVtZVRhc2s6KGlkIDxXS1VSTFNjaGVtZVRhc2s+KXRhCiAgICAgZWxzZSBp
ZiAoW3Rhc2sucmVxdWVzdC5VUkwucGF0aCBpc0VxdWFsVG9TdHJpbmc6QCIvaW4tYXBwLWJyb3dz
ZXItcHJpdmFjeS10ZXN0LWFib3V0LWJsYW5rLXN1YmZyYW1lIl0pCiAgICAgICAgIHJlc3BvbnNl
ID0gQCI8Ym9keSBpZCA9ICdib2R5Jz48L2JvZHk+PGlmcmFtZSBpZD0naWZyYW1lJz48L2lmcmFt
ZT48L2JvZHk+IjsKIAotICAgIFt0YXNrIGRpZFJlY2VpdmVSZXNwb25zZTphZG9wdE5TKFtbTlNV
UkxSZXNwb25zZSBhbGxvY10gaW5pdFdpdGhVUkw6dGFzay5yZXF1ZXN0LlVSTCBNSU1FVHlwZTpA
InRleHQvaHRtbCIgZXhwZWN0ZWRDb250ZW50TGVuZ3RoOnJlc3BvbnNlLmxlbmd0aCB0ZXh0RW5j
b2RpbmdOYW1lOm5pbF0pLmF1dG9yZWxlYXNlKCldOworICAgIFt0YXNrIGRpZFJlY2VpdmVSZXNw
b25zZTphZG9wdE5TKFtbTlNVUkxSZXNwb25zZSBhbGxvY10gaW5pdFdpdGhVUkw6dGFzay5yZXF1
ZXN0LlVSTCBNSU1FVHlwZTpAInRleHQvaHRtbCIgZXhwZWN0ZWRDb250ZW50TGVuZ3RoOnJlc3Bv
bnNlLmxlbmd0aCB0ZXh0RW5jb2RpbmdOYW1lOm5pbF0pLmdldCgpXTsKICAgICBbdGFzayBkaWRS
ZWNlaXZlRGF0YTpbcmVzcG9uc2UgZGF0YVVzaW5nRW5jb2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2Rp
bmddXTsKICAgICBbdGFzayBkaWRGaW5pc2hdOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2Fy
ZENvbXBhdGliaWxpdHkubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L0luZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eS5tbQppbmRleCBm
M2MzZDg3ZDg1MDJlNTE3ZDg1ZjYwYWZkMTNhMmEyYTkwYjM1ZjA4Li43NDIzMThhODc1MmI0YWMw
N2U1YWRhNDU2YjAzNjNkNzljNWEwYjA0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL0luZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0
aWJpbGl0eS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0lu
ZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eS5tbQpAQCAtOTYsNyAr
OTYsNyBAQCBURVNUKEluZGV4ZWREQiwgU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmls
aXR5KQogCiAgICAgUmV0YWluUHRyPF9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uPiB3
ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tfV0tXZWJzaXRlRGF0YVN0
b3JlQ29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIHdlYnNpdGVEYXRhU3RvcmVDb25m
aWd1cmF0aW9uLmdldCgpLl9pbmRleGVkREJEYXRhYmFzZURpcmVjdG9yeSA9IGlkYlBhdGg7Ci0g
ICAgY29uZmlndXJhdGlvbi5nZXQoKS53ZWJzaXRlRGF0YVN0b3JlID0gYWRvcHROUyhbW1dLV2Vi
c2l0ZURhdGFTdG9yZSBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjp3ZWJzaXRlRGF0YVN0
b3JlQ29uZmlndXJhdGlvbi5nZXQoKV0pLmF1dG9yZWxlYXNlKCk7CisgICAgY29uZmlndXJhdGlv
bi5nZXQoKS53ZWJzaXRlRGF0YVN0b3JlID0gYWRvcHROUyhbW1dLV2Vic2l0ZURhdGFTdG9yZSBh
bGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjp3ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlv
bi5nZXQoKV0pLmdldCgpOwogCiAgICAgaWRiUGF0aCA9IFtpZGJQYXRoIFVSTEJ5QXBwZW5kaW5n
UGF0aENvbXBvbmVudDpAImZpbGVfXzAiXTsKICAgICBpZGJQYXRoID0gW2lkYlBhdGggVVJMQnlB
cHBlbmRpbmdQYXRoQ29tcG9uZW50OkAiYmFja3dhcmRfY29tcGF0aWJpbGl0eSJdOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbmRleGVkREJUZW1w
RmlsZVNpemUubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0luZGV4
ZWREQlRlbXBGaWxlU2l6ZS5tbQppbmRleCA5MDYwZmI5Mjg5ZjdkZDdjNjZjNjQ2Zjg5YjI1MWU0
NmViNTkxNmMxLi41YmIyYjdjYjg0ZjhhNzc0ZjUwZDczNDgyNzliYzQxYTZlNWE5N2U5IDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0luZGV4ZWREQlRl
bXBGaWxlU2l6ZS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L0luZGV4ZWREQlRlbXBGaWxlU2l6ZS5tbQpAQCAtNzEsNyArNzEsNyBAQCBURVNUKEluZGV4ZWRE
QiwgSW5kZXhlZERCVGVtcEZpbGVTaXplKQogICAgIGF1dG8gd2Vic2l0ZURhdGFTdG9yZUNvbmZp
Z3VyYXRpb24gPSBhZG9wdE5TKFtbX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gYWxs
b2NdIGluaXRdKTsKICAgICB3ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5nZXQoKS5faW5k
ZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkgPSBpZGJQYXRoLmdldCgpOwogCi0gICAgY29uZmlndXJh
dGlvbi5nZXQoKS53ZWJzaXRlRGF0YVN0b3JlID0gYWRvcHROUyhbW1dLV2Vic2l0ZURhdGFTdG9y
ZSBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjp3ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJh
dGlvbi5nZXQoKV0pLmF1dG9yZWxlYXNlKCk7CisgICAgY29uZmlndXJhdGlvbi5nZXQoKS53ZWJz
aXRlRGF0YVN0b3JlID0gYWRvcHROUyhbW1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxvY10gX2luaXRX
aXRoQ29uZmlndXJhdGlvbjp3ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5nZXQoKV0pLmdl
dCgpOwogICAgIGF1dG8gdHlwZXMgPSBhZG9wdE5TKFtbTlNTZXQgYWxsb2NdIGluaXRXaXRoT2Jq
ZWN0czpXS1dlYnNpdGVEYXRhVHlwZUluZGV4ZWREQkRhdGFiYXNlcywgbmlsXSk7CiAKICAgICBb
Y29uZmlndXJhdGlvbi5nZXQoKS53ZWJzaXRlRGF0YVN0b3JlIHJlbW92ZURhdGFPZlR5cGVzOnR5
cGVzLmdldCgpIG1vZGlmaWVkU2luY2U6W05TRGF0ZSBkaXN0YW50UGFzdF0gY29tcGxldGlvbkhh
bmRsZXI6XigpIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvSklURW5hYmxlZC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvSklURW5hYmxlZC5tbQppbmRleCBhODY3MjMwMGNhYjA2NWU2MTdlMTJlNmU3N2JmMDA3NDIx
OGU5OTJiLi4wMWU3NmUxYWNmODYxOTljNTY4ZjFiNmVlZTBlYzAzNTQyNGQ0OGIzIDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0pJVEVuYWJsZWQubW0K
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9KSVRFbmFibGVkLm1t
CkBAIC00OSw3ICs0OSw3IEBAIFRFU1QoV2ViS2l0LCBKSVRFbmFibGVkKQogICAgIGF1dG8gcHJv
Y2Vzc1Bvb2xDb25maWd1cmF0aW9uID0gYWRvcHROUyhbX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0
aW9uIG5ld10pOwogICAgIFtwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gc2V0SklURW5hYmxlZDpO
T107CiAgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbV0tXZWJWaWV3Q29uZmlndXJh
dGlvbiBuZXddKTsKLSAgICBbY29uZmlndXJhdGlvbiBzZXRQcm9jZXNzUG9vbDphZG9wdE5TKFtb
V0tQcm9jZXNzUG9vbCBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjpwcm9jZXNzUG9vbENv
bmZpZ3VyYXRpb24uZ2V0KCldKS5hdXRvcmVsZWFzZSgpXTsKKyAgICBbY29uZmlndXJhdGlvbiBz
ZXRQcm9jZXNzUG9vbDphZG9wdE5TKFtbV0tQcm9jZXNzUG9vbCBhbGxvY10gX2luaXRXaXRoQ29u
ZmlndXJhdGlvbjpwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uZ2V0KCldKS5nZXQoKV07CiAgICAg
YXV0byB3ZWJWaWV3Tm9KSVQgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZy
YW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlv
bi5nZXQoKV0pOwogICAgIGNoZWNrSklURW5hYmxlZChXVEZNb3ZlKHdlYlZpZXdOb0pJVCksIE5P
KTsKICAgICBjaGVja0pJVEVuYWJsZWQoYWRvcHROUyhbV0tXZWJWaWV3IG5ld10pLCBZRVMpOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Mb2NhbFN0
b3JhZ2VEYXRhYmFzZVRyYWNrZXIubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL0xvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlci5tbQppbmRleCAwZmNjYzZmM2UwMDdh
NjM5Y2JhNzcwMmFjZDllZWIzNDA2OWI3Nzk4Li5mZmRmNGFiNmJlN2FkODIwYTFkYTAxMWJhODIx
Yjc4MjE2ZTkxYjQ2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL0xvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlci5tbQorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0xvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlci5tbQpA
QCAtNTYsNyArNTYsNyBAQCBURVNUKFdLV2ViVmlldywgTG9jYWxTdG9yYWdlRmV0Y2hEYXRhUmVj
b3JkcykKICAgICByZWFkeVRvQ29udGludWUgPSBmYWxzZTsKICAgICBhdXRvIGNvbmZpZ3VyYXRp
b24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAg
IGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6
TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdl
dCgpXSk7Ci0gICAgd2ViVmlldy5nZXQoKS5VSURlbGVnYXRlID0gYWRvcHROUyhbW0xvY2FsU3Rv
cmFnZVVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKS5hdXRvcmVsZWFzZSgpOworICAgIHdlYlZpZXcu
Z2V0KCkuVUlEZWxlZ2F0ZSA9IGFkb3B0TlMoW1tMb2NhbFN0b3JhZ2VVSURlbGVnYXRlIGFsbG9j
XSBpbml0XSkuZ2V0KCk7CiAgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6QCI8c2NyaXB0Pmxv
Y2FsU3RvcmFnZS5zZXRJdGVtKCd0ZXN0S2V5JywgJ3Rlc3RWYWx1ZScpO2FsZXJ0KGxvY2FsU3Rv
cmFnZS5nZXRJdGVtKCd0ZXN0S2V5JykpOzwvc2NyaXB0PiIgYmFzZVVSTDpbTlNVUkwgVVJMV2l0
aFN0cmluZzpAImh0dHA6Ly9sb2NhbGhvc3QiXV07CiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZyZWFkeVRvQ29udGludWUpOwogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL05ldHdvcmtQcm9jZXNzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9OZXR3b3JrUHJvY2Vzcy5tbQppbmRleCA0M2ZjMWVkZmFkNWJj
M2NhMjQwNGE2ZGY0NzhhYWYzODg2M2UxMzRmLi43NTVjOWFlMTEwYmYzZjNhMmIzYTU2NjA2ZmI1
Njc3MGFiYmU2NDQ2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL05ldHdvcmtQcm9jZXNzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvTmV0d29ya1Byb2Nlc3MubW0KQEAgLTM2LDcgKzM2LDcgQEAKIAogVEVTVChX
ZWJLaXQsIE5ldHdvcmtQcm9jZXNzRW50aXRsZW1lbnRzKQogewotICAgIGF1dG8gd2ViVmlldyA9
IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3Qo
MCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246YWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3Vy
YXRpb24gYWxsb2NdIGluaXRdKS5hdXRvcmVsZWFzZSgpXSk7CisgICAgYXV0byB3ZWJWaWV3ID0g
YWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgw
LCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjphZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJh
dGlvbiBhbGxvY10gaW5pdF0pLmdldCgpXSk7CiAgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxv
YWRUZXN0UGFnZU5hbWVkOkAic2ltcGxlIl07CiAgICAgV0tXZWJzaXRlRGF0YVN0b3JlICpzdG9y
ZSA9IFt3ZWJWaWV3IGNvbmZpZ3VyYXRpb25dLndlYnNpdGVEYXRhU3RvcmU7CiAgICAgYm9vbCBo
YXNFbnRpdGxlbWVudCA9IFtzdG9yZSBfbmV0d29ya1Byb2Nlc3NIYXNFbnRpdGxlbWVudEZvclRl
c3Rpbmc6QCJjb20uYXBwbGUucm9vdGxlc3Muc3RvcmFnZS5XZWJLaXROZXR3b3JraW5nU2FuZGJv
eCJdOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Q
cm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KaW5kZXggYWRiYzk5ZGRjMjgyMTVk
YWFkMDNhZTYzY2NiYzgyMWE1YzNhNzg0NC4uNGQ4YTdkNTZmNGJiYmRlYmQxNmM3MzViYzYxNTJj
ZGYyNDEzM2RhYiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCkBAIC01NDU1LDcg
KzU0NTUsNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBVc2VQcmV3YXJtZWRQcm9jZXNzQWZ0ZXJUZXJt
aW5hdGluZ05ldHdvcmtQcm9jZXNzKQogCiAgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9
IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgW3dl
YlZpZXdDb25maWd1cmF0aW9uIHNldFByb2Nlc3NQb29sOnByb2Nlc3NQb29sLmdldCgpXTsKLSAg
ICB3ZWJWaWV3Q29uZmlndXJhdGlvbi5nZXQoKS53ZWJzaXRlRGF0YVN0b3JlID0gYWRvcHROUyhb
W1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjp3ZWJzaXRl
RGF0YVN0b3JlQ29uZmlndXJhdGlvbi5nZXQoKV0pLmF1dG9yZWxlYXNlKCk7CisgICAgd2ViVmll
d0NvbmZpZ3VyYXRpb24uZ2V0KCkud2Vic2l0ZURhdGFTdG9yZSA9IGFkb3B0TlMoW1tXS1dlYnNp
dGVEYXRhU3RvcmUgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246d2Vic2l0ZURhdGFTdG9y
ZUNvbmZpZ3VyYXRpb24uZ2V0KCldKS5nZXQoKTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0
TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAs
IDYwMCkgY29uZmlndXJhdGlvbjp3ZWJWaWV3Q29uZmlndXJhdGlvbi5nZXQoKV0pOwogICAgIGF1
dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbUFNPTk5hdmlnYXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5p
dF0pOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Q
cm94eS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJveHkubW0K
aW5kZXggYTYwZWM2YTc5OTIyNGE4YmNmM2UyMDZmNjkwODliN2FjNDBjNjExNC4uN2M3MDRmNTFi
YjdiZTIxZWExOTc3NDhhMzhhMjlmMjE0MDI0NTY4OSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm94eS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb3h5Lm1tCkBAIC04NCw3ICs4NCw3IEBAIFRFU1QoV2Vi
S2l0LCBIVFRQU1Byb3h5KQogICAgIFtzdG9yZUNvbmZpZ3VyYXRpb24gc2V0SFRUUFNQcm94eTpb
TlNVUkwgVVJMV2l0aFN0cmluZzpbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAImh0dHBzOi8v
MTI3LjAuMC4xOiVkLyIsIHNlcnZlci5wb3J0KCldXV07CiAgICAgW3N0b3JlQ29uZmlndXJhdGlv
biBzZXRBbGxvd3NTZXJ2ZXJQcmVjb25uZWN0Ok5PXTsKICAgICBhdXRvIHZpZXdDb25maWd1cmF0
aW9uID0gYWRvcHROUyhbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBuZXddKTsKLSAgICBbdmlld0Nv
bmZpZ3VyYXRpb24gc2V0V2Vic2l0ZURhdGFTdG9yZTphZG9wdE5TKFtbV0tXZWJzaXRlRGF0YVN0
b3JlIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOnN0b3JlQ29uZmlndXJhdGlvbi5nZXQo
KV0pLmF1dG9yZWxlYXNlKCldOworICAgIFt2aWV3Q29uZmlndXJhdGlvbiBzZXRXZWJzaXRlRGF0
YVN0b3JlOmFkb3B0TlMoW1tXS1dlYnNpdGVEYXRhU3RvcmUgYWxsb2NdIF9pbml0V2l0aENvbmZp
Z3VyYXRpb246c3RvcmVDb25maWd1cmF0aW9uLmdldCgpXSkuZ2V0KCldOwogICAgIGF1dG8gd2Vi
VmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFr
ZSgwLCAwLCAxMDAsIDEwMCkgY29uZmlndXJhdGlvbjp2aWV3Q29uZmlndXJhdGlvbi5nZXQoKV0p
OwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtQcm94eURlbGVnYXRlIG5ld10pOwogICAg
IFt3ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CkBAIC0xMzEs
NyArMTMxLDcgQEAgVEVTVChXZWJLaXQsIEhUVFBQcm94eUF1dGhlbnRpY2F0aW9uKQogICAgIFtz
dG9yZUNvbmZpZ3VyYXRpb24gc2V0UHJldmVudHNTeXN0ZW1IVFRQUHJveHlBdXRoZW50aWNhdGlv
bjpZRVNdOwogCiAgICAgYXV0byB2aWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1dLV2ViVmll
d0NvbmZpZ3VyYXRpb24gbmV3XSk7Ci0gICAgW3ZpZXdDb25maWd1cmF0aW9uIHNldFdlYnNpdGVE
YXRhU3RvcmU6YWRvcHROUyhbW1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxvY10gX2luaXRXaXRoQ29u
ZmlndXJhdGlvbjpzdG9yZUNvbmZpZ3VyYXRpb24uZ2V0KCldKS5hdXRvcmVsZWFzZSgpXTsKKyAg
ICBbdmlld0NvbmZpZ3VyYXRpb24gc2V0V2Vic2l0ZURhdGFTdG9yZTphZG9wdE5TKFtbV0tXZWJz
aXRlRGF0YVN0b3JlIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOnN0b3JlQ29uZmlndXJh
dGlvbi5nZXQoKV0pLmdldCgpXTsKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJW
aWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMTAwLCAxMDApIGNvbmZp
Z3VyYXRpb246dmlld0NvbmZpZ3VyYXRpb24uZ2V0KCldKTsKICAgICBhdXRvIGRlbGVnYXRlID0g
YWRvcHROUyhbUHJveHlEZWxlZ2F0ZSBuZXddKTsKICAgICBbd2ViVmlldyBzZXROYXZpZ2F0aW9u
RGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwpAQCAtMTc0LDcgKzE3NCw3IEBAIFRFU1QoV2ViS2l0
LCBTZWN1cmVQcm94eUNvbm5lY3Rpb24pCiAgICAgW3N0b3JlQ29uZmlndXJhdGlvbiBzZXRSZXF1
aXJlc1NlY3VyZUhUVFBTUHJveHlDb25uZWN0aW9uOllFU107CiAKICAgICBhdXRvIHZpZXdDb25m
aWd1cmF0aW9uID0gYWRvcHROUyhbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBuZXddKTsKLSAgICBb
dmlld0NvbmZpZ3VyYXRpb24gc2V0V2Vic2l0ZURhdGFTdG9yZTphZG9wdE5TKFtbV0tXZWJzaXRl
RGF0YVN0b3JlIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOnN0b3JlQ29uZmlndXJhdGlv
bi5nZXQoKV0pLmF1dG9yZWxlYXNlKCldOworICAgIFt2aWV3Q29uZmlndXJhdGlvbiBzZXRXZWJz
aXRlRGF0YVN0b3JlOmFkb3B0TlMoW1tXS1dlYnNpdGVEYXRhU3RvcmUgYWxsb2NdIF9pbml0V2l0
aENvbmZpZ3VyYXRpb246c3RvcmVDb25maWd1cmF0aW9uLmdldCgpXSkuZ2V0KCldOwogICAgIGF1
dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dS
ZWN0TWFrZSgwLCAwLCAxMDAsIDEwMCkgY29uZmlndXJhdGlvbjp2aWV3Q29uZmlndXJhdGlvbi5n
ZXQoKV0pOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdp
dGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJodHRwczovL2V4YW1wbGUuY29tLyJdXV07CiAg
ICAgd2hpbGUgKCFyZWNlaXZlZFZhbGlkQ2xpZW50SGVsbG8pCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1JlcGFyZW50V2ViVmlld1RpbWVvdXQubW0g
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1JlcGFyZW50V2ViVmlld1Rp
bWVvdXQubW0KaW5kZXggZGNiZmQ1MDc5NTQ2YTQ2YzM2OTlmMTg4ZDhiNmYzMGI3YTJlZWQ0Yy4u
YzU1NDI1YzAwMjBkODdmMDcxYzBkMjUwYzgwM2ExZjkzN2RkODE1NSAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXBhcmVudFdlYlZpZXdUaW1lb3V0
Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVwYXJlbnRX
ZWJWaWV3VGltZW91dC5tbQpAQCAtMzgsNyArMzgsNyBAQCBURVNUKFdlYktpdCwgUmVwYXJlbnRX
ZWJWaWV3VGltZW91dCkKICAgICBbcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIHNldElnbm9yZVN5
bmNocm9ub3VzTWVzc2FnaW5nVGltZW91dHNGb3JUZXN0aW5nOllFU107CiAKICAgICBSZXRhaW5Q
dHI8V0tXZWJWaWV3Q29uZmlndXJhdGlvbj4gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dl
YlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7Ci0gICAgW2NvbmZpZ3VyYXRpb24gc2V0
UHJvY2Vzc1Bvb2w6YWRvcHROUyhbW1dLUHJvY2Vzc1Bvb2wgYWxsb2NdIF9pbml0V2l0aENvbmZp
Z3VyYXRpb246cHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmdldCgpXSkuYXV0b3JlbGVhc2UoKV07
CisgICAgW2NvbmZpZ3VyYXRpb24gc2V0UHJvY2Vzc1Bvb2w6YWRvcHROUyhbW1dLUHJvY2Vzc1Bv
b2wgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246cHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9u
LmdldCgpXSkuZ2V0KCldOwogCiAgICAgUmV0YWluUHRyPFRlc3RXS1dlYlZpZXc+IHdlYlZpZXcg
PSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtl
KDAsIDAsIDEwMCwgMTAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCkgYWRkVG9X
aW5kb3c6WUVTXSk7CiAgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAi
aGVsbG8iXTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5tbQppbmRleCA5MTQyODQ2NWFmMDcx
NDAwOGNhZjNmNjk2YmRkMDNlNGNhNmY1NzhlLi5hZjFhYjMzZTY2ZTI0OTUzYTQyNTVjZmU4NjE4
NmI0NGZhZDZlNjRjIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLm1tCkBAIC0zMjYsNyAr
MzI2LDcgQEAgVEVTVChSZXNvdXJjZUxvYWRTdGF0aXN0aWNzLCBSZW1vdmVTZXNzaW9uSUQpCiB7
CiAgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRp
b24gYWxsb2NdIGluaXRdKTsKICAgICBhdXRvIHdlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9u
ID0gYWRvcHROUyhbW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0
XSk7Ci0gICAgY29uZmlndXJhdGlvbi5nZXQoKS53ZWJzaXRlRGF0YVN0b3JlID0gYWRvcHROUyhb
W1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjp3ZWJzaXRl
RGF0YVN0b3JlQ29uZmlndXJhdGlvbi5nZXQoKV0pLmF1dG9yZWxlYXNlKCk7CisgICAgY29uZmln
dXJhdGlvbi5nZXQoKS53ZWJzaXRlRGF0YVN0b3JlID0gYWRvcHROUyhbW1dLV2Vic2l0ZURhdGFT
dG9yZSBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjp3ZWJzaXRlRGF0YVN0b3JlQ29uZmln
dXJhdGlvbi5nZXQoKV0pLmdldCgpOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dL
V2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBj
b25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKIApAQCAtNTgzLDcgKzU4Myw3IEBA
IFRFU1QoUmVzb3VyY2VMb2FkU3RhdGlzdGljcywgRGF0YVRhc2tJZGVudGlmaWVyQ29sbGlzaW9u
KQogVEVTVChSZXNvdXJjZUxvYWRTdGF0aXN0aWNzLCBOb01lc3NhZ2VzV2hlbk5vdFRlc3Rpbmcp
CiB7CiAgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3Vy
YXRpb24gYWxsb2NdIGluaXRdKTsKLSAgICBhdXRvIGRhdGFTdG9yZSA9IGFkb3B0TlMoW1tXS1dl
YnNpdGVEYXRhU3RvcmUgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246YWRvcHROUyhbW19X
S1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSkuYXV0b3JlbGVhc2Uo
KV0pOworICAgIGF1dG8gZGF0YVN0b3JlID0gYWRvcHROUyhbW1dLV2Vic2l0ZURhdGFTdG9yZSBh
bGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjphZG9wdE5TKFtbX1dLV2Vic2l0ZURhdGFTdG9y
ZUNvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKS5nZXQoKV0pOwogICAgIFtjb25maWd1cmF0aW9u
IHNldFdlYnNpdGVEYXRhU3RvcmU6ZGF0YVN0b3JlLmdldCgpXTsKICAgICBbZGF0YVN0b3JlIF9z
ZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZDpZRVNdOwogICAgIGF1dG8gd2ViVmlldyA9
IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3Qo
MCwgMCwgMTAwLCAxMDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0pOwpAQCAt
MTI3OSw3ICsxMjc5LDcgQEAgVEVTVChSZXNvdXJjZUxvYWRTdGF0aXN0aWNzLCBTdG9yZVN1c3Bl
bnNpb24pCiB7CiAgICAgYXV0byAqc2hhcmVkUHJvY2Vzc1Bvb2wgPSBbV0tQcm9jZXNzUG9vbCBf
c2hhcmVkUHJvY2Vzc1Bvb2xdOwogICAgIGF1dG8gKmRhdGFTdG9yZTEgPSBbV0tXZWJzaXRlRGF0
YVN0b3JlIGRlZmF1bHREYXRhU3RvcmVdOwotICAgIGF1dG8gZGF0YVN0b3JlMiA9IGFkb3B0TlMo
W1tXS1dlYnNpdGVEYXRhU3RvcmUgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246YWRvcHRO
UyhbW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSkuYXV0b3Jl
bGVhc2UoKV0pOworICAgIGF1dG8gZGF0YVN0b3JlMiA9IGFkb3B0TlMoW1tXS1dlYnNpdGVEYXRh
U3RvcmUgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246YWRvcHROUyhbW19XS1dlYnNpdGVE
YXRhU3RvcmVDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSkuZ2V0KCldKTsKIAogICAgIFtkYXRh
U3RvcmUxIF9zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZDpZRVNdOwogICAgIFtkYXRh
U3RvcmUyIF9zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZDpZRVNdOwpAQCAtMTMyNSw3
ICsxMzI1LDcgQEAgLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHN0YXJ0VVJM
U2NoZW1lVGFzazooaWQgPFdLVVJMU2NoZW1lVGFzaz4pdGEKICAgICBlbHNlIGlmIChbdGFzay5y
ZXF1ZXN0LlVSTC5wYXRoIGlzRXF1YWxUb1N0cmluZzpAIi90cC1sb2FkIl0pCiAgICAgICAgIHJl
c3BvbnNlID0gQCI8Ym9keT48L2JvZHk+IjsKIAotICAgIFt0YXNrIGRpZFJlY2VpdmVSZXNwb25z
ZTphZG9wdE5TKFtbTlNVUkxSZXNwb25zZSBhbGxvY10gaW5pdFdpdGhVUkw6dGFzay5yZXF1ZXN0
LlVSTCBNSU1FVHlwZTpAInRleHQvaHRtbCIgZXhwZWN0ZWRDb250ZW50TGVuZ3RoOnJlc3BvbnNl
Lmxlbmd0aCB0ZXh0RW5jb2RpbmdOYW1lOm5pbF0pLmF1dG9yZWxlYXNlKCldOworICAgIFt0YXNr
IGRpZFJlY2VpdmVSZXNwb25zZTphZG9wdE5TKFtbTlNVUkxSZXNwb25zZSBhbGxvY10gaW5pdFdp
dGhVUkw6dGFzay5yZXF1ZXN0LlVSTCBNSU1FVHlwZTpAInRleHQvaHRtbCIgZXhwZWN0ZWRDb250
ZW50TGVuZ3RoOnJlc3BvbnNlLmxlbmd0aCB0ZXh0RW5jb2RpbmdOYW1lOm5pbF0pLmdldCgpXTsK
ICAgICBbdGFzayBkaWRSZWNlaXZlRGF0YTpbcmVzcG9uc2UgZGF0YVVzaW5nRW5jb2Rpbmc6TlNV
VEY4U3RyaW5nRW5jb2RpbmddXTsKICAgICBbdGFzayBkaWRGaW5pc2hdOwogfQpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TYWZlQnJvd3NpbmcubW0g
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NhZmVCcm93c2luZy5tbQpp
bmRleCBjZWE4NTliNTlkOWJiNjI5YTY2YTBhZjRlNDk5NDA2ZTk3MTg4OWU5Li42YjljZjVkNGI4
NTE5YTM1MWYwOTRlMzQ4MDg3OTU4NTJhYTdkZmNlIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NhZmVCcm93c2luZy5tbQorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NhZmVCcm93c2luZy5tbQpAQCAtMzA4LDcgKzMw
OCw3IEBAIFRFU1QoU2FmZUJyb3dzaW5nLCBTaG93V2FybmluZ1NQSSkKICAgICBhdXRvIHdlYlZp
ZXcgPSBhZG9wdE5TKFtXS1dlYlZpZXcgbmV3XSk7CiAgICAgYXV0byBzaG93V2FybmluZyA9IF57
CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyQ2FsbGVkID0gZmFsc2U7Ci0gICAgICAgIFt3ZWJW
aWV3IF9zaG93U2FmZUJyb3dzaW5nV2FybmluZ1dpdGhVUkw6bmlsIHRpdGxlOkAidGVzdCB0aXRs
ZSIgd2FybmluZzpAInRlc3Qgd2FybmluZyIgZGV0YWlsczphZG9wdE5TKFtbTlNBdHRyaWJ1dGVk
U3RyaW5nIGFsbG9jXSBpbml0V2l0aFN0cmluZzpAInRlc3QgZGV0YWlscyJdKS5hdXRvcmVsZWFz
ZSgpIGNvbXBsZXRpb25IYW5kbGVyOl4oQk9PTCBzaG91bGRDb250aW51ZSkgeworICAgICAgICBb
d2ViVmlldyBfc2hvd1NhZmVCcm93c2luZ1dhcm5pbmdXaXRoVVJMOm5pbCB0aXRsZTpAInRlc3Qg
dGl0bGUiIHdhcm5pbmc6QCJ0ZXN0IHdhcm5pbmciIGRldGFpbHM6YWRvcHROUyhbW05TQXR0cmli
dXRlZFN0cmluZyBhbGxvY10gaW5pdFdpdGhTdHJpbmc6QCJ0ZXN0IGRldGFpbHMiXSkuZ2V0KCkg
Y29tcGxldGlvbkhhbmRsZXI6XihCT09MIHNob3VsZENvbnRpbnVlKSB7CiAgICAgICAgICAgICBz
aG91bGRDb250aW51ZVZhbHVlID0gc2hvdWxkQ29udGludWU7CiAgICAgICAgICAgICBjb21wbGV0
aW9uSGFuZGxlckNhbGxlZCA9IHRydWU7CiAgICAgICAgIH1dOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0gYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5t
bQppbmRleCBkZDcwNzYyNTZiNWY0MmVjMTYwNzE5ZmMwMmY4NDc1ZDFhMzRmYTY1Li43ZjRhYzk2
ZmE3YzczYTg0MjJhNGM0ZThmZjdlNjEwNWU5ZTg4MGRmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbQorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5t
bQpAQCAtMTQwNyw3ICsxNDA3LDcgQEAgVEVTVChTZXJ2aWNlV29ya2VycywgTm9uRGVmYXVsdFNl
c3Npb25JRCkKICAgICB3ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5nZXQoKS5fc2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeSA9IHNlcnZpY2VXb3JrZXJzUGF0aDsKICAgICB3
ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5nZXQoKS5faW5kZXhlZERCRGF0YWJhc2VEaXJl
Y3RvcnkgPSBpZGJQYXRoOwogCi0gICAgY29uZmlndXJhdGlvbi5nZXQoKS53ZWJzaXRlRGF0YVN0
b3JlID0gYWRvcHROUyhbW1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxvY10gX2luaXRXaXRoQ29uZmln
dXJhdGlvbjp3ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5nZXQoKV0pLmF1dG9yZWxlYXNl
KCk7CisgICAgY29uZmlndXJhdGlvbi5nZXQoKS53ZWJzaXRlRGF0YVN0b3JlID0gYWRvcHROUyhb
W1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjp3ZWJzaXRl
RGF0YVN0b3JlQ29uZmlndXJhdGlvbi5nZXQoKV0pLmdldCgpOwogCiAgICAgUmV0YWluUHRyPFNX
TWVzc2FnZUhhbmRsZXJXaXRoRXhwZWN0ZWRNZXNzYWdlPiBtZXNzYWdlSGFuZGxlciA9IGFkb3B0
TlMoW1tTV01lc3NhZ2VIYW5kbGVyV2l0aEV4cGVjdGVkTWVzc2FnZSBhbGxvY10gaW5pdF0pOwog
ICAgIFtbY29uZmlndXJhdGlvbiB1c2VyQ29udGVudENvbnRyb2xsZXJdIGFkZFNjcmlwdE1lc3Nh
Z2VIYW5kbGVyOm1lc3NhZ2VIYW5kbGVyLmdldCgpIG5hbWU6QCJzdyJdOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9UTFNEZXByZWNhdGlvbi5tbSBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVExTRGVwcmVjYXRpb24ubW0K
aW5kZXggNTU4NzI1ZDQ1NWI0NWI1YWRjZGViZmQ1YTk1MWM2NTU4YWVlOTI4Yi4uNGE1Y2I5MDJm
ZDc3MzM2MDg4ZWVmYmFkNGI2MmQyMWNmODExMTM1YyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9UTFNEZXByZWNhdGlvbi5tbQorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1RMU0RlcHJlY2F0aW9uLm1tCkBAIC00MTMs
NyArNDEzLDcgQEAgVEVTVChUTFNWZXJzaW9uLCBEaWROZWdvdGlhdGVNb2Rlcm5UTFMpCiAgICAg
YXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBuZXdd
KTsKICAgICBhdXRvIGRhdGFTdG9yZUNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtfV0tXZWJzaXRl
RGF0YVN0b3JlQ29uZmlndXJhdGlvbiBuZXddKTsKICAgICBbZGF0YVN0b3JlQ29uZmlndXJhdGlv
biBzZXRGYXN0U2VydmVyVHJ1c3RFdmFsdWF0aW9uRW5hYmxlZDpZRVNdOwotICAgIFtjb25maWd1
cmF0aW9uIHNldFdlYnNpdGVEYXRhU3RvcmU6YWRvcHROUyhbW1dLV2Vic2l0ZURhdGFTdG9yZSBh
bGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjpkYXRhU3RvcmVDb25maWd1cmF0aW9uLmdldCgp
XSkuYXV0b3JlbGVhc2UoKV07CisgICAgW2NvbmZpZ3VyYXRpb24gc2V0V2Vic2l0ZURhdGFTdG9y
ZTphZG9wdE5TKFtbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0
aW9uOmRhdGFTdG9yZUNvbmZpZ3VyYXRpb24uZ2V0KCldKS5nZXQoKV07CiAgICAgYXV0byB3ZWJW
aWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0
KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKICAg
ICBbd2ViVmlldyBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwogICAgIFt3
ZWJWaWV3IGxvYWRSZXF1ZXN0OnNlcnZlci5yZXF1ZXN0KCldOwpAQCAtNDczLDcgKzQ3Myw3IEBA
IFRFU1QoVExTVmVyc2lvbiwgTGVnYWN5U3VicmVzb3VyY2VzKQogICAgIGF1dG8gZGF0YVN0b3Jl
Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlv
biBhbGxvY10gaW5pdE5vblBlcnNpc3RlbnRDb25maWd1cmF0aW9uXSk7CiAgICAgW2RhdGFTdG9y
ZUNvbmZpZ3VyYXRpb24gc2V0RmFzdFNlcnZlclRydXN0RXZhbHVhdGlvbkVuYWJsZWQ6WUVTXTsK
ICAgICBhdXRvIHdlYlZpZXdDb25maWd1cmF0aW9uID0gYWRvcHROUyhbV0tXZWJWaWV3Q29uZmln
dXJhdGlvbiBuZXddKTsKLSAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0V2Vic2l0ZURhdGFT
dG9yZTphZG9wdE5TKFtbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1
cmF0aW9uOmRhdGFTdG9yZUNvbmZpZ3VyYXRpb24uZ2V0KCldKS5hdXRvcmVsZWFzZSgpXTsKKyAg
ICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0V2Vic2l0ZURhdGFTdG9yZTphZG9wdE5TKFtbV0tX
ZWJzaXRlRGF0YVN0b3JlIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOmRhdGFTdG9yZUNv
bmZpZ3VyYXRpb24uZ2V0KCldKS5nZXQoKV07CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhb
W1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAw
KSBjb25maWd1cmF0aW9uOndlYlZpZXdDb25maWd1cmF0aW9uLmdldCgpXSk7CiAKICAgICBhdXRv
IGRlbGVnYXRlID0gYWRvcHROUyhbVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZSBuZXddKTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVGV4dE1hbmlwdWxh
dGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVGV4dE1hbmlw
dWxhdGlvbi5tbQppbmRleCBmNzgwMjNjMTVlNjgzNTIzMjBmZjI3MTIwMWQyMDA1YzQxYWMxOTlh
Li4yZmY1NTg0NGNlZDNmMWViMzY4MjFkYjkyODU5OTcwNzQ4MDViYzdiIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1RleHRNYW5pcHVsYXRpb24ubW0K
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9UZXh0TWFuaXB1bGF0
aW9uLm1tCkBAIC00MDQsNyArNDA0LDcgQEAgVEVTVChUZXh0TWFuaXB1bGF0aW9uLCBTdGFydFRl
eHRNYW5pcHVsYXRpb25BcHBseVNpbmdsZUV4Y2x1aW9uUnVsZUZvckVsZW1lbnQpCiAKICAgICBS
ZXRhaW5QdHI8X1dLVGV4dE1hbmlwdWxhdGlvbkNvbmZpZ3VyYXRpb24+IGNvbmZpZ3VyYXRpb24g
PSBhZG9wdE5TKFtbX1dLVGV4dE1hbmlwdWxhdGlvbkNvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRd
KTsKICAgICBbY29uZmlndXJhdGlvbiBzZXRFeGNsdXNpb25SdWxlczpAWwotICAgICAgICBhZG9w
dE5TKFtbX1dLVGV4dE1hbmlwdWxhdGlvbkV4Y2x1c2lvblJ1bGUgYWxsb2NdIGluaXRFeGNsdXNp
b246KEJPT0wpWUVTIGZvckVsZW1lbnQ6QCJjb2RlIl0pLmF1dG9yZWxlYXNlKCksCisgICAgICAg
IGFkb3B0TlMoW1tfV0tUZXh0TWFuaXB1bGF0aW9uRXhjbHVzaW9uUnVsZSBhbGxvY10gaW5pdEV4
Y2x1c2lvbjooQk9PTClZRVMgZm9yRWxlbWVudDpAImNvZGUiXSkuZ2V0KCksCiAgICAgXV07CiAK
ICAgICBkb25lID0gZmFsc2U7CkBAIC00NDAsOCArNDQwLDggQEAgVEVTVChUZXh0TWFuaXB1bGF0
aW9uLCBTdGFydFRleHRNYW5pcHVsYXRpb25BcHBseUluY2x1c2lvbkV4Y2x1c2lvblJ1bGVzRm9y
QXR0cmkKIAogICAgIFJldGFpblB0cjxfV0tUZXh0TWFuaXB1bGF0aW9uQ29uZmlndXJhdGlvbj4g
Y29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tfV0tUZXh0TWFuaXB1bGF0aW9uQ29uZmlndXJhdGlv
biBhbGxvY10gaW5pdF0pOwogICAgIFtjb25maWd1cmF0aW9uIHNldEV4Y2x1c2lvblJ1bGVzOkBb
Ci0gICAgICAgIGFkb3B0TlMoW1tfV0tUZXh0TWFuaXB1bGF0aW9uRXhjbHVzaW9uUnVsZSBhbGxv
Y10gaW5pdEV4Y2x1c2lvbjooQk9PTClZRVMgZm9yQXR0cmlidXRlOkAiZGF0YS1leGNsdWRlIiB2
YWx1ZTpAInllcyJdKS5hdXRvcmVsZWFzZSgpLAotICAgICAgICBhZG9wdE5TKFtbX1dLVGV4dE1h
bmlwdWxhdGlvbkV4Y2x1c2lvblJ1bGUgYWxsb2NdIGluaXRFeGNsdXNpb246KEJPT0wpTk8gZm9y
QXR0cmlidXRlOkAiZGF0YS1leGNsdWRlIiB2YWx1ZTpAIm5vIl0pLmF1dG9yZWxlYXNlKCksCisg
ICAgICAgIGFkb3B0TlMoW1tfV0tUZXh0TWFuaXB1bGF0aW9uRXhjbHVzaW9uUnVsZSBhbGxvY10g
aW5pdEV4Y2x1c2lvbjooQk9PTClZRVMgZm9yQXR0cmlidXRlOkAiZGF0YS1leGNsdWRlIiB2YWx1
ZTpAInllcyJdKS5nZXQoKSwKKyAgICAgICAgYWRvcHROUyhbW19XS1RleHRNYW5pcHVsYXRpb25F
eGNsdXNpb25SdWxlIGFsbG9jXSBpbml0RXhjbHVzaW9uOihCT09MKU5PIGZvckF0dHJpYnV0ZTpA
ImRhdGEtZXhjbHVkZSIgdmFsdWU6QCJubyJdKS5nZXQoKSwKICAgICBdXTsKIAogICAgIGRvbmUg
PSBmYWxzZTsKQEAgLTQ2OCw3ICs0NjgsNyBAQCBURVNUKFRleHRNYW5pcHVsYXRpb24sIFN0YXJ0
VGV4dE1hbmlwdWxhdGlvbkFwcGx5SW5jbHVzaW9uRXhjbHVzaW9uUnVsZXNGb3JDbGFzcwogCiAg
ICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW19XS1RleHRNYW5pcHVsYXRpb25Db25m
aWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgW2NvbmZpZ3VyYXRpb24gc2V0RXhjbHVzaW9u
UnVsZXM6QFsKLSAgICAgICAgYWRvcHROUyhbW19XS1RleHRNYW5pcHVsYXRpb25FeGNsdXNpb25S
dWxlIGFsbG9jXSBpbml0RXhjbHVzaW9uOllFUyBmb3JDbGFzczpAImV4Y2x1ZGUiXSkuYXV0b3Jl
bGVhc2UoKSwKKyAgICAgICAgYWRvcHROUyhbW19XS1RleHRNYW5pcHVsYXRpb25FeGNsdXNpb25S
dWxlIGFsbG9jXSBpbml0RXhjbHVzaW9uOllFUyBmb3JDbGFzczpAImV4Y2x1ZGUiXSkuZ2V0KCks
CiAgICAgXV07CiAKICAgICBkb25lID0gZmFsc2U7CkBAIC00OTUsOSArNDk1LDkgQEAgVEVTVChU
ZXh0TWFuaXB1bGF0aW9uLCBTdGFydFRleHRNYW5pcHVsYXRpb25BcHBseUluY2x1c2lvbkV4Y2x1
c2lvblJ1bGVzRm9yQ2xhc3MKIAogICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tf
V0tUZXh0TWFuaXB1bGF0aW9uQ29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIFtjb25m
aWd1cmF0aW9uIHNldEV4Y2x1c2lvblJ1bGVzOkBbCi0gICAgICAgIGFkb3B0TlMoW1tfV0tUZXh0
TWFuaXB1bGF0aW9uRXhjbHVzaW9uUnVsZSBhbGxvY10gaW5pdEV4Y2x1c2lvbjpZRVMgZm9yQXR0
cmlidXRlOkAiZGF0YS1leGNsdWRlIiB2YWx1ZTpAInllcyJdKS5hdXRvcmVsZWFzZSgpLAotICAg
ICAgICBhZG9wdE5TKFtbX1dLVGV4dE1hbmlwdWxhdGlvbkV4Y2x1c2lvblJ1bGUgYWxsb2NdIGlu
aXRFeGNsdXNpb246Tk8gZm9yQXR0cmlidXRlOkAiZGF0YS1leGNsdWRlIiB2YWx1ZTpAIm5vIl0p
LmF1dG9yZWxlYXNlKCksCi0gICAgICAgIGFkb3B0TlMoW1tfV0tUZXh0TWFuaXB1bGF0aW9uRXhj
bHVzaW9uUnVsZSBhbGxvY10gaW5pdEV4Y2x1c2lvbjpZRVMgZm9yQ2xhc3M6QCJleGNsdWRlIl0p
LmF1dG9yZWxlYXNlKCksCisgICAgICAgIGFkb3B0TlMoW1tfV0tUZXh0TWFuaXB1bGF0aW9uRXhj
bHVzaW9uUnVsZSBhbGxvY10gaW5pdEV4Y2x1c2lvbjpZRVMgZm9yQXR0cmlidXRlOkAiZGF0YS1l
eGNsdWRlIiB2YWx1ZTpAInllcyJdKS5nZXQoKSwKKyAgICAgICAgYWRvcHROUyhbW19XS1RleHRN
YW5pcHVsYXRpb25FeGNsdXNpb25SdWxlIGFsbG9jXSBpbml0RXhjbHVzaW9uOk5PIGZvckF0dHJp
YnV0ZTpAImRhdGEtZXhjbHVkZSIgdmFsdWU6QCJubyJdKS5nZXQoKSwKKyAgICAgICAgYWRvcHRO
UyhbW19XS1RleHRNYW5pcHVsYXRpb25FeGNsdXNpb25SdWxlIGFsbG9jXSBpbml0RXhjbHVzaW9u
OllFUyBmb3JDbGFzczpAImV4Y2x1ZGUiXSkuZ2V0KCksCiAgICAgXV07CiAKICAgICBkb25lID0g
ZmFsc2U7CkBAIC0xOTE5LDExICsxOTE5LDExIEBAIFRFU1QoVGV4dE1hbmlwdWxhdGlvbiwgQ29t
cGxldGVUZXh0TWFuaXB1bGF0aW9uU2hvdWxkUmVwbGFjZVRleHRDb250ZW50V2l0aE11bHRpCiAg
ICAgRVhQRUNUX1dLX1NUUkVRKCJUZXh0IiwgaXRlbXNbNV0udG9rZW5zWzBdLmNvbnRlbnQpOwog
CiAgICAgYXV0byByZXBsYWNlbWVudEl0ZW1zID0gcmV0YWluUHRyKEBbCi0gICAgICAgIGNyZWF0
ZUl0ZW0oaXRlbXNbMF0uaWRlbnRpZmllciwgeyB7IGl0ZW1zWzBdLnRva2Vuc1swXS5pZGVudGlm
aWVyLCBAIlJlcGxhY2VtZW50IiB9LCB7IGl0ZW1zWzBdLnRva2Vuc1swXS5pZGVudGlmaWVyLCBA
InRpdGxlIiB9IH0pLmF1dG9yZWxlYXNlKCksCi0gICAgICAgIGNyZWF0ZUl0ZW0oaXRlbXNbMV0u
aWRlbnRpZmllciwgeyB7IGl0ZW1zWzFdLnRva2Vuc1swXS5pZGVudGlmaWVyLCBAIlJlcGxhY2Vt
ZW50IiB9LCB7IGl0ZW1zWzFdLnRva2Vuc1swXS5pZGVudGlmaWVyLCBAIm9wdGlvbiIgfSB9KS5h
dXRvcmVsZWFzZSgpLAotICAgICAgICBjcmVhdGVJdGVtKGl0ZW1zWzJdLmlkZW50aWZpZXIsIHsg
eyBpdGVtc1syXS50b2tlbnNbMF0uaWRlbnRpZmllciwgQCJGYWlsZWQgcmVwbGFjZW1lbnQiIH0s
IHsgQCIxMjM0NSIsIEAib3B0aW9uIiB9IH0pLmF1dG9yZWxlYXNlKCksCi0gICAgICAgIGNyZWF0
ZUl0ZW0oaXRlbXNbM10uaWRlbnRpZmllciwgeyB7IGl0ZW1zWzNdLnRva2Vuc1swXS5pZGVudGlm
aWVyLCBAIlJlcGxhY2VtZW50IiB9LCB7IGl0ZW1zWzNdLnRva2Vuc1swXS5pZGVudGlmaWVyLCBA
ImxhYmVsIiB9IH0pLmF1dG9yZWxlYXNlKCksCi0gICAgICAgIGNyZWF0ZUl0ZW0oaXRlbXNbNF0u
aWRlbnRpZmllciwgeyB7IGl0ZW1zWzRdLnRva2Vuc1swXS5pZGVudGlmaWVyLCBAIlJlcGxhY2Vt
ZW50IiB9LCB7IGl0ZW1zWzRdLnRva2Vuc1swXS5pZGVudGlmaWVyLCBAImltYWdlIiB9IH0pLmF1
dG9yZWxlYXNlKCksCisgICAgICAgIGNyZWF0ZUl0ZW0oaXRlbXNbMF0uaWRlbnRpZmllciwgeyB7
IGl0ZW1zWzBdLnRva2Vuc1swXS5pZGVudGlmaWVyLCBAIlJlcGxhY2VtZW50IiB9LCB7IGl0ZW1z
WzBdLnRva2Vuc1swXS5pZGVudGlmaWVyLCBAInRpdGxlIiB9IH0pLmdldCgpLAorICAgICAgICBj
cmVhdGVJdGVtKGl0ZW1zWzFdLmlkZW50aWZpZXIsIHsgeyBpdGVtc1sxXS50b2tlbnNbMF0uaWRl
bnRpZmllciwgQCJSZXBsYWNlbWVudCIgfSwgeyBpdGVtc1sxXS50b2tlbnNbMF0uaWRlbnRpZmll
ciwgQCJvcHRpb24iIH0gfSkuZ2V0KCksCisgICAgICAgIGNyZWF0ZUl0ZW0oaXRlbXNbMl0uaWRl
bnRpZmllciwgeyB7IGl0ZW1zWzJdLnRva2Vuc1swXS5pZGVudGlmaWVyLCBAIkZhaWxlZCByZXBs
YWNlbWVudCIgfSwgeyBAIjEyMzQ1IiwgQCJvcHRpb24iIH0gfSkuZ2V0KCksCisgICAgICAgIGNy
ZWF0ZUl0ZW0oaXRlbXNbM10uaWRlbnRpZmllciwgeyB7IGl0ZW1zWzNdLnRva2Vuc1swXS5pZGVu
dGlmaWVyLCBAIlJlcGxhY2VtZW50IiB9LCB7IGl0ZW1zWzNdLnRva2Vuc1swXS5pZGVudGlmaWVy
LCBAImxhYmVsIiB9IH0pLmdldCgpLAorICAgICAgICBjcmVhdGVJdGVtKGl0ZW1zWzRdLmlkZW50
aWZpZXIsIHsgeyBpdGVtc1s0XS50b2tlbnNbMF0uaWRlbnRpZmllciwgQCJSZXBsYWNlbWVudCIg
fSwgeyBpdGVtc1s0XS50b2tlbnNbMF0uaWRlbnRpZmllciwgQCJpbWFnZSIgfSB9KS5nZXQoKSwK
ICAgICBdKTsKIAogICAgIGRvbmUgPSBmYWxzZTsKQEAgLTIzMzksNyArMjMzOSw3IEBAIFRFU1Qo
VGV4dE1hbmlwdWxhdGlvbiwgQ29tcGxldGVUZXh0TWFuaXB1bGF0aW9uU3VjY2Vkc1doZW5Db250
ZW50T3V0T2ZQYXJhZ3JhcGhJCiAKICAgICBkb25lID0gZmFsc2U7CiAgICAgW3dlYlZpZXcgX2Nv
bXBsZXRlVGV4dE1hbmlwdWxhdGlvbkZvckl0ZW1zOkBbCi0gICAgICAgIGNyZWF0ZUl0ZW0oaXRl
bXNbMF0uaWRlbnRpZmllciwge3sgaXRlbXNbMF0udG9rZW5zWzBdLmlkZW50aWZpZXIsIEAiSGVs
bG8gV29ybGQiIH19KS5hdXRvcmVsZWFzZSgpLAorICAgICAgICBjcmVhdGVJdGVtKGl0ZW1zWzBd
LmlkZW50aWZpZXIsIHt7IGl0ZW1zWzBdLnRva2Vuc1swXS5pZGVudGlmaWVyLCBAIkhlbGxvIFdv
cmxkIiB9fSkuZ2V0KCksCiAgICAgXSBjb21wbGV0aW9uOl4oTlNBcnJheTxOU0Vycm9yICo+ICpl
cnJvcnMpIHsKICAgICAgICAgRVhQRUNUX0VRKGVycm9ycywgbmlsKTsKICAgICAgICAgZG9uZSA9
IHRydWU7CkBAIC0yNDA2LDcgKzI0MDYsNyBAQCBURVNUKFRleHRNYW5pcHVsYXRpb24sIENvbXBs
ZXRlVGV4dE1hbmlwdWxhdGlvbkZhaWxXaGVuRXhjbHVzaW9uSXNWaW9sYXRlZCkKIAogICAgIFJl
dGFpblB0cjxfV0tUZXh0TWFuaXB1bGF0aW9uQ29uZmlndXJhdGlvbj4gY29uZmlndXJhdGlvbiA9
IGFkb3B0TlMoW1tfV0tUZXh0TWFuaXB1bGF0aW9uQ29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0p
OwogICAgIFtjb25maWd1cmF0aW9uIHNldEV4Y2x1c2lvblJ1bGVzOkBbCi0gICAgICAgIGFkb3B0
TlMoW1tfV0tUZXh0TWFuaXB1bGF0aW9uRXhjbHVzaW9uUnVsZSBhbGxvY10gaW5pdEV4Y2x1c2lv
bjooQk9PTClZRVMgZm9yRWxlbWVudDpAImVtIl0pLmF1dG9yZWxlYXNlKCksCisgICAgICAgIGFk
b3B0TlMoW1tfV0tUZXh0TWFuaXB1bGF0aW9uRXhjbHVzaW9uUnVsZSBhbGxvY10gaW5pdEV4Y2x1
c2lvbjooQk9PTClZRVMgZm9yRWxlbWVudDpAImVtIl0pLmdldCgpLAogICAgIF1dOwogCiAgICAg
ZG9uZSA9IGZhbHNlOwpAQCAtMjQ1MSw3ICsyNDUxLDcgQEAgVEVTVChUZXh0TWFuaXB1bGF0aW9u
LCBDb21wbGV0ZVRleHRNYW5pcHVsYXRpb25GYWlsV2hlbkV4Y2x1ZGVkQ29udGVudEFwcGVhcnNN
b3IKIAogICAgIFJldGFpblB0cjxfV0tUZXh0TWFuaXB1bGF0aW9uQ29uZmlndXJhdGlvbj4gY29u
ZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tfV0tUZXh0TWFuaXB1bGF0aW9uQ29uZmlndXJhdGlvbiBh
bGxvY10gaW5pdF0pOwogICAgIFtjb25maWd1cmF0aW9uIHNldEV4Y2x1c2lvblJ1bGVzOkBbCi0g
ICAgICAgIGFkb3B0TlMoW1tfV0tUZXh0TWFuaXB1bGF0aW9uRXhjbHVzaW9uUnVsZSBhbGxvY10g
aW5pdEV4Y2x1c2lvbjooQk9PTClZRVMgZm9yRWxlbWVudDpAImVtIl0pLmF1dG9yZWxlYXNlKCks
CisgICAgICAgIGFkb3B0TlMoW1tfV0tUZXh0TWFuaXB1bGF0aW9uRXhjbHVzaW9uUnVsZSBhbGxv
Y10gaW5pdEV4Y2x1c2lvbjooQk9PTClZRVMgZm9yRWxlbWVudDpAImVtIl0pLmdldCgpLAogICAg
IF1dOwogCiAgICAgZG9uZSA9IGZhbHNlOwpAQCAtMjQ5Niw3ICsyNDk2LDcgQEAgVEVTVChUZXh0
TWFuaXB1bGF0aW9uLCBDb21wbGV0ZVRleHRNYW5pcHVsYXRpb25QcmVzZXJ2ZXNFeGNsdWRlZENv
bnRlbnQpCiAKICAgICBSZXRhaW5QdHI8X1dLVGV4dE1hbmlwdWxhdGlvbkNvbmZpZ3VyYXRpb24+
IGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbX1dLVGV4dE1hbmlwdWxhdGlvbkNvbmZpZ3VyYXRp
b24gYWxsb2NdIGluaXRdKTsKICAgICBbY29uZmlndXJhdGlvbiBzZXRFeGNsdXNpb25SdWxlczpA
WwotICAgICAgICBhZG9wdE5TKFtbX1dLVGV4dE1hbmlwdWxhdGlvbkV4Y2x1c2lvblJ1bGUgYWxs
b2NdIGluaXRFeGNsdXNpb246KEJPT0wpWUVTIGZvckVsZW1lbnQ6QCJlbSJdKS5hdXRvcmVsZWFz
ZSgpLAorICAgICAgICBhZG9wdE5TKFtbX1dLVGV4dE1hbmlwdWxhdGlvbkV4Y2x1c2lvblJ1bGUg
YWxsb2NdIGluaXRFeGNsdXNpb246KEJPT0wpWUVTIGZvckVsZW1lbnQ6QCJlbSJdKS5nZXQoKSwK
ICAgICBdXTsKIAogICAgIGRvbmUgPSBmYWxzZTsKQEAgLTI1OTQsOCArMjU5NCw4IEBAIFRFU1Qo
VGV4dE1hbmlwdWxhdGlvbiwgQ29tcGxldGVUZXh0TWFuaXB1bGF0aW9uQ29ycmVjdFBhcmFncmFw
aFJhbmdlKQogCiAgICAgZG9uZSA9IGZhbHNlOwogICAgIFt3ZWJWaWV3IF9jb21wbGV0ZVRleHRN
YW5pcHVsYXRpb25Gb3JJdGVtczpAWwotICAgICAgICBjcmVhdGVJdGVtKGl0ZW1zWzBdLmlkZW50
aWZpZXIsIHt7IGl0ZW1zWzBdLnRva2Vuc1swXS5pZGVudGlmaWVyLCBAImhlbGxvIiB9fSkuYXV0
b3JlbGVhc2UoKSwKLSAgICAgICAgY3JlYXRlSXRlbShpdGVtc1sxXS5pZGVudGlmaWVyLCB7eyBp
dGVtc1sxXS50b2tlbnNbMF0uaWRlbnRpZmllciwgQCJ3b3JsZCIgfX0pLmF1dG9yZWxlYXNlKCkK
KyAgICAgICAgY3JlYXRlSXRlbShpdGVtc1swXS5pZGVudGlmaWVyLCB7eyBpdGVtc1swXS50b2tl
bnNbMF0uaWRlbnRpZmllciwgQCJoZWxsbyIgfX0pLmdldCgpLAorICAgICAgICBjcmVhdGVJdGVt
KGl0ZW1zWzFdLmlkZW50aWZpZXIsIHt7IGl0ZW1zWzFdLnRva2Vuc1swXS5pZGVudGlmaWVyLCBA
IndvcmxkIiB9fSkuZ2V0KCkKICAgICBdIGNvbXBsZXRpb246XihOU0FycmF5PE5TRXJyb3IgKj4g
KmVycm9ycykgewogICAgICAgICBFWFBFQ1RfRVEoZXJyb3JzLCBuaWwpOwogICAgICAgICBkb25l
ID0gdHJ1ZTsKQEAgLTI2MzEsNyArMjYzMSw3IEBAIFRFU1QoVGV4dE1hbmlwdWxhdGlvbiwgQ29t
cGxldGVUZXh0TWFuaXB1bGF0aW9uQ2FuTWVyZ2VDb250ZW50QW5kUHJlc2VydmVMaW5lQnJlCiAg
ICAgRVhQRUNUX1NUUkVRKCIgXG4iLCBpdGVtc1swXS50b2tlbnNbM10uY29udGVudC5VVEY4U3Ry
aW5nKTsKIAogICAgIGF1dG8gcmVwbGFjZW1lbnRJdGVtcyA9IHJldGFpblB0cihAWwotICAgICAg
ICBjcmVhdGVJdGVtKGl0ZW1zWzBdLmlkZW50aWZpZXIsIHsgeyBpdGVtc1swXS50b2tlbnNbMF0u
aWRlbnRpZmllciwgQCJPTkUiIH0sIHsgaXRlbXNbMF0udG9rZW5zWzFdLmlkZW50aWZpZXIsIGl0
ZW1zWzBdLnRva2Vuc1sxXS5jb250ZW50IH0sIHsgaXRlbXNbMF0udG9rZW5zWzJdLmlkZW50aWZp
ZXIsIEAiVFdPIiB9LCB7IGl0ZW1zWzBdLnRva2Vuc1szXS5pZGVudGlmaWVyLCBpdGVtc1swXS50
b2tlbnNbM10uY29udGVudCB9IH0pLmF1dG9yZWxlYXNlKCksCisgICAgICAgIGNyZWF0ZUl0ZW0o
aXRlbXNbMF0uaWRlbnRpZmllciwgeyB7IGl0ZW1zWzBdLnRva2Vuc1swXS5pZGVudGlmaWVyLCBA
Ik9ORSIgfSwgeyBpdGVtc1swXS50b2tlbnNbMV0uaWRlbnRpZmllciwgaXRlbXNbMF0udG9rZW5z
WzFdLmNvbnRlbnQgfSwgeyBpdGVtc1swXS50b2tlbnNbMl0uaWRlbnRpZmllciwgQCJUV08iIH0s
IHsgaXRlbXNbMF0udG9rZW5zWzNdLmlkZW50aWZpZXIsIGl0ZW1zWzBdLnRva2Vuc1szXS5jb250
ZW50IH0gfSkuZ2V0KCksCiAgICAgXSk7CiAKICAgICBkb25lID0gZmFsc2U7CkBAIC0yNzEyLDgg
KzI3MTIsOCBAQCBURVNUKFRleHRNYW5pcHVsYXRpb24sIENvbXBsZXRlVGV4dE1hbmlwdWxhdGlv
blNob3VsZFByZXNlcnZlTm9kZXNBZnRlclBhcmFncmFwaAogICAgIEVYUEVDVF9TVFJFUSgiZnJv
bSIsIGl0ZW1zWzFdLnRva2Vuc1swXS5jb250ZW50LlVURjhTdHJpbmcpOwogCiAgICAgYXV0byBy
ZXBsYWNlbWVudEl0ZW1zID0gcmV0YWluUHRyKEBbCi0gICAgICAgIGNyZWF0ZUl0ZW0oaXRlbXNb
MF0uaWRlbnRpZmllciwgeyB7IGl0ZW1zWzBdLnRva2Vuc1swXS5pZGVudGlmaWVyLCBAIkhlbGxv
IiB9LCB7IGl0ZW1zWzBdLnRva2Vuc1sxXS5pZGVudGlmaWVyLCBAIldvcmxkIiB9IH0pLmF1dG9y
ZWxlYXNlKCksCi0gICAgICAgIGNyZWF0ZUl0ZW0oaXRlbXNbMV0uaWRlbnRpZmllciwgeyB7IGl0
ZW1zWzFdLnRva2Vuc1swXS5pZGVudGlmaWVyLCBAIkZyb20gV2ViS2l0IiB9IH0pLmF1dG9yZWxl
YXNlKCksCisgICAgICAgIGNyZWF0ZUl0ZW0oaXRlbXNbMF0uaWRlbnRpZmllciwgeyB7IGl0ZW1z
WzBdLnRva2Vuc1swXS5pZGVudGlmaWVyLCBAIkhlbGxvIiB9LCB7IGl0ZW1zWzBdLnRva2Vuc1sx
XS5pZGVudGlmaWVyLCBAIldvcmxkIiB9IH0pLmdldCgpLAorICAgICAgICBjcmVhdGVJdGVtKGl0
ZW1zWzFdLmlkZW50aWZpZXIsIHsgeyBpdGVtc1sxXS50b2tlbnNbMF0uaWRlbnRpZmllciwgQCJG
cm9tIFdlYktpdCIgfSB9KS5nZXQoKSwKICAgICBdKTsKIAogICAgIGRvbmUgPSBmYWxzZTsKQEAg
LTI3NTEsNyArMjc1MSw3IEBAIFRFU1QoVGV4dE1hbmlwdWxhdGlvbiwgQ29tcGxldGVUZXh0TWFu
aXB1bGF0aW9uU1ByZXNlcnZlTm9kZXNCZWZvcmVQYXJhZ3JhcGhSYW5nCiAgICAgRVhQRUNUX1NU
UkVRKCJmcm9tIiwgaXRlbXNbMF0udG9rZW5zWzJdLmNvbnRlbnQuVVRGOFN0cmluZyk7CiAKICAg
ICBhdXRvIHJlcGxhY2VtZW50SXRlbXMgPSByZXRhaW5QdHIoQFsKLSAgICAgICAgY3JlYXRlSXRl
bShpdGVtc1swXS5pZGVudGlmaWVyLCB7IHsgaXRlbXNbMF0udG9rZW5zWzBdLmlkZW50aWZpZXIs
IEAiSGVsbG8iIH0sIHsgaXRlbXNbMF0udG9rZW5zWzFdLmlkZW50aWZpZXIsIEAiV29ybGQiIH0s
IHsgaXRlbXNbMF0udG9rZW5zWzJdLmlkZW50aWZpZXIsIEAiRnJvbSBXZWJLaXQiIH0gfSkuYXV0
b3JlbGVhc2UoKQorICAgICAgICBjcmVhdGVJdGVtKGl0ZW1zWzBdLmlkZW50aWZpZXIsIHsgeyBp
dGVtc1swXS50b2tlbnNbMF0uaWRlbnRpZmllciwgQCJIZWxsbyIgfSwgeyBpdGVtc1swXS50b2tl
bnNbMV0uaWRlbnRpZmllciwgQCJXb3JsZCIgfSwgeyBpdGVtc1swXS50b2tlbnNbMl0uaWRlbnRp
ZmllciwgQCJGcm9tIFdlYktpdCIgfSB9KS5nZXQoKQogICAgIF0pOwogCiAgICAgZG9uZSA9IGZh
bHNlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9V
SURlbGVnYXRlLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9VSURl
bGVnYXRlLm1tCmluZGV4IDlkZGYxNDAyOTFlYjI3YTdiOTBlYmZhOTU4MDcwZjUxNmEyYmIyMGQu
LmEwZjMyNjBhM2ZhZWFmZDBmNWU5ZDFjNTM2YWJmODYxNDdjODczZjIgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVUlEZWxlZ2F0ZS5tbQorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VJRGVsZWdhdGUubW0KQEAgLTY2
LDcgKzY2LDcgQEAgQGVuZAogCiBURVNUKFdlYktpdCwgV0tXZWJWaWV3SXNQbGF5aW5nQXVkaW8p
CiB7Ci0gICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGlu
aXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjphZG9w
dE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pLmF1dG9yZWxlYXNlKCld
KTsKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5p
dFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmFkb3B0
TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSkuZ2V0KCldKTsKICAgICBh
dXRvIG9ic2VydmVyID0gYWRvcHROUyhbW0F1ZGlvT2JzZXJ2ZXIgYWxsb2NdIGluaXRdKTsKICAg
ICBbd2ViVmlldyBhZGRPYnNlcnZlcjpvYnNlcnZlci5nZXQoKSBmb3JLZXlQYXRoOkAiX2lzUGxh
eWluZ0F1ZGlvIiBvcHRpb25zOk5TS2V5VmFsdWVPYnNlcnZpbmdPcHRpb25OZXcgfCBOU0tleVZh
bHVlT2JzZXJ2aW5nT3B0aW9uT2xkIGNvbnRleHQ6bmlsXTsKICAgICBbd2ViVmlldyBzeW5jaHJv
bm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6QCJmaWxlLXdpdGgtdmlkZW8iXTsKQEAgLTIyNCw3ICsy
MjQsNyBAQCAtICh2b2lkKV9zaG93V2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldwogLSAodm9p
ZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHN0YXJ0VVJMU2NoZW1lVGFzazooaWQgPFdL
VVJMU2NoZW1lVGFzaz4pdXJsU2NoZW1lVGFzawogewogICAgIE5TU3RyaW5nICpkYXRhID0gQCI8
c2NyaXB0PndpbmRvdy5vcGVuKCdvdGhlci5odG1sJyk7PC9zY3JpcHQ+IjsKLSAgICBbdXJsU2No
ZW1lVGFzayBkaWRSZWNlaXZlUmVzcG9uc2U6YWRvcHROUyhbW05TVVJMUmVzcG9uc2UgYWxsb2Nd
IGluaXRXaXRoVVJMOnVybFNjaGVtZVRhc2sucmVxdWVzdC5VUkwgTUlNRVR5cGU6QCJ0ZXh0L2h0
bWwiIGV4cGVjdGVkQ29udGVudExlbmd0aDpkYXRhLmxlbmd0aCB0ZXh0RW5jb2RpbmdOYW1lOm5p
bF0pLmF1dG9yZWxlYXNlKCldOworICAgIFt1cmxTY2hlbWVUYXNrIGRpZFJlY2VpdmVSZXNwb25z
ZTphZG9wdE5TKFtbTlNVUkxSZXNwb25zZSBhbGxvY10gaW5pdFdpdGhVUkw6dXJsU2NoZW1lVGFz
ay5yZXF1ZXN0LlVSTCBNSU1FVHlwZTpAInRleHQvaHRtbCIgZXhwZWN0ZWRDb250ZW50TGVuZ3Ro
OmRhdGEubGVuZ3RoIHRleHRFbmNvZGluZ05hbWU6bmlsXSkuZ2V0KCldOwogICAgIFt1cmxTY2hl
bWVUYXNrIGRpZFJlY2VpdmVEYXRhOltkYXRhIGRhdGFVc2luZ0VuY29kaW5nOk5TVVRGOFN0cmlu
Z0VuY29kaW5nXV07CiAgICAgW3VybFNjaGVtZVRhc2sgZGlkRmluaXNoXTsKIH0KQEAgLTUxMywx
MSArNTEzLDExIEBAIFRFU1QoV2ViS2l0LCBOb3RpZmljYXRpb25QZXJtaXNzaW9uKQogewogICAg
IE5TU3RyaW5nICpodG1sID0gQCI8c2NyaXB0Pk5vdGlmaWNhdGlvbi5yZXF1ZXN0UGVybWlzc2lv
bihmdW5jdGlvbihwKXthbGVydCgncGVybWlzc2lvbiAnK3ApfSk8L3NjcmlwdD4iOwogICAgIGF1
dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRdKTsKLSAgICBbd2Vi
VmlldyBzZXRVSURlbGVnYXRlOmFkb3B0TlMoW1tOb3RpZmljYXRpb25EZWxlZ2F0ZSBhbGxvY10g
aW5pdFdpdGhBbGxvd05vdGlmaWNhdGlvbnM6WUVTXSkuYXV0b3JlbGVhc2UoKV07CisgICAgW3dl
YlZpZXcgc2V0VUlEZWxlZ2F0ZTphZG9wdE5TKFtbTm90aWZpY2F0aW9uRGVsZWdhdGUgYWxsb2Nd
IGluaXRXaXRoQWxsb3dOb3RpZmljYXRpb25zOllFU10pLmdldCgpXTsKICAgICBbd2ViVmlldyBs
b2FkSFRNTFN0cmluZzpodG1sIGJhc2VVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJodHRwczov
L2V4YW1wbGUub3JnIl1dOwogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CiAg
ICAgZG9uZSA9IGZhbHNlOwotICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6YWRvcHROUyhbW05v
dGlmaWNhdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0V2l0aEFsbG93Tm90aWZpY2F0aW9uczpOT10p
LmF1dG9yZWxlYXNlKCldOworICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6YWRvcHROUyhbW05v
dGlmaWNhdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0V2l0aEFsbG93Tm90aWZpY2F0aW9uczpOT10p
LmdldCgpXTsKICAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzpodG1sIGJhc2VVUkw6W05TVVJM
IFVSTFdpdGhTdHJpbmc6QCJodHRwczovL2V4YW1wbGUuY29tIl1dOwogICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmZG9uZSk7CiB9CkBAIC01NzYsNyArNTc2LDcgQEAgQGVuZAogCiBURVNU
KFdlYktpdCwgVG9vbGJhclZpc2libGUpCiB7Ci0gICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhb
W1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCA4MDAs
IDYwMCkgY29uZmlndXJhdGlvbjphZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxv
Y10gaW5pdF0pLmF1dG9yZWxlYXNlKCldKTsKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtb
VGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDgwMCwg
NjAwKSBjb25maWd1cmF0aW9uOmFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9j
XSBpbml0XSkuZ2V0KCldKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rvb2xiYXJE
ZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6ZGVsZWdh
dGUuZ2V0KCldOwogICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjxz
Y3JpcHQ+YWxlcnQoJ3Zpc2libGU6JyArIHdpbmRvdy50b29sYmFyLnZpc2libGUpO2FsZXJ0KCd2
aXNpYmxlOicgKyB3aW5kb3cudG9vbGJhci52aXNpYmxlKTwvc2NyaXB0PiJdOwpAQCAtNjA0LDcg
KzYwNCw3IEBAIFRFU1QoV2ViS2l0LCBNb3VzZU1vdmVPdmVyRWxlbWVudCkKIHsKICAgICBXS1dl
YlZpZXdDb25maWd1cmF0aW9uICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRp
b24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiRnJhbWVIYW5k
bGVTZXJpYWxpemF0aW9uIl07CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dl
YlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCA4MDAsIDYwMCkgY29u
ZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7Ci0gICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTph
ZG9wdE5TKFtbTW91c2VNb3ZlT3ZlckVsZW1lbnREZWxlZ2F0ZSBhbGxvY10gaW5pdF0pLmF1dG9y
ZWxlYXNlKCldOworICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6YWRvcHROUyhbW01vdXNlTW92
ZU92ZXJFbGVtZW50RGVsZWdhdGUgYWxsb2NdIGluaXRdKS5nZXQoKV07CiAgICAgW3dlYlZpZXcg
c3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiPGEgaHJlZj0naHR0cDovL2V4YW1wbGUuY29t
L3BhdGgnIHRpdGxlPSdsaW5rIHRpdGxlJz5saW5rIGxhYmVsPC9hPiJdOwogICAgIFt3ZWJWaWV3
IG1vdXNlTW92ZVRvUG9pbnQ6TlNNYWtlUG9pbnQoMjAsIDYwMCAtIDIwKSB3aXRoRmxhZ3M6TlNF
dmVudE1vZGlmaWVyRmxhZ1NoaWZ0XTsKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRv
bmUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9V
c2VyQ29udGVudENvbnRyb2xsZXIubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1VzZXJDb250ZW50Q29udHJvbGxlci5tbQppbmRleCBiYjAyNDMxYjkyZWE5MWRmYjI3
OTAzNzQyYmViZTQwNTQ2YmMzYTM5Li5hNTlkYzRmNmEzYzk5MjdjZDU4Y2NhZjBmMjg4MjU4OTU1
NWU4Mzk2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L1VzZXJDb250ZW50Q29udHJvbGxlci5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1VzZXJDb250ZW50Q29udHJvbGxlci5tbQpAQCAtMjM4LDcgKzIzOCw3IEBA
IHN0YXRpYyBSZXRhaW5QdHI8V0tXZWJWaWV3PiB3ZWJWaWV3Rm9yU2NyaXB0TWVzc2FnZUhhbmRs
ZXJNdWx0aXBsZUhhbmRsZXJSZW1vdmFsCiAKICAgICBSZXRhaW5QdHI8U2NyaXB0TWVzc2FnZUhh
bmRsZXI+IGhhbmRsZXIgPSBhZG9wdE5TKFtbU2NyaXB0TWVzc2FnZUhhbmRsZXIgYWxsb2NdIGlu
aXRdKTsKICAgICBSZXRhaW5QdHI8V0tXZWJWaWV3Q29uZmlndXJhdGlvbj4gY29uZmlndXJhdGlv
bkNvcHkgPSBhZG9wdE5TKFtjb25maWd1cmF0aW9uIGNvcHldKTsKLSAgICBbY29uZmlndXJhdGlv
bkNvcHkgc2V0VXNlckNvbnRlbnRDb250cm9sbGVyOmFkb3B0TlMoW1tXS1VzZXJDb250ZW50Q29u
dHJvbGxlciBhbGxvY10gaW5pdF0pLmF1dG9yZWxlYXNlKCldOworICAgIFtjb25maWd1cmF0aW9u
Q29weSBzZXRVc2VyQ29udGVudENvbnRyb2xsZXI6YWRvcHROUyhbW1dLVXNlckNvbnRlbnRDb250
cm9sbGVyIGFsbG9jXSBpbml0XSkuZ2V0KCldOwogICAgIFtbY29uZmlndXJhdGlvbkNvcHkgdXNl
ckNvbnRlbnRDb250cm9sbGVyXSBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjpoYW5kbGVyLmdldCgp
IG5hbWU6QCJoYW5kbGVyVG9SZW1vdmUiXTsKICAgICBbW2NvbmZpZ3VyYXRpb25Db3B5IHVzZXJD
b250ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6aGFuZGxlci5nZXQoKSBu
YW1lOkAiaGFuZGxlclRvUG9zdCJdOwogICAgIFJldGFpblB0cjxXS1dlYlZpZXc+IHdlYlZpZXcg
PSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwg
MCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbkNvcHkuZ2V0KCldKTsKQEAg
LTI1Niw3ICsyNTYsNyBAQCBURVNUKFdLVXNlckNvbnRlbnRDb250cm9sbGVyLCBTY3JpcHRNZXNz
YWdlSGFuZGxlck11bHRpcGxlSGFuZGxlclJlbW92YWwpCiAKICAgICBSZXRhaW5QdHI8V0tXZWJW
aWV3Q29uZmlndXJhdGlvbj4gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25m
aWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgUmV0YWluUHRyPF9XS1Byb2Nlc3NQb29sQ29u
ZmlndXJhdGlvbj4gcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uID0gYWRvcHROUyhbW19XS1Byb2Nl
c3NQb29sQ29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwotICAgIFtjb25maWd1cmF0aW9uIHNl
dFByb2Nlc3NQb29sOmFkb3B0TlMoW1tXS1Byb2Nlc3NQb29sIGFsbG9jXSBfaW5pdFdpdGhDb25m
aWd1cmF0aW9uOnByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5nZXQoKV0pLmF1dG9yZWxlYXNlKCld
OworICAgIFtjb25maWd1cmF0aW9uIHNldFByb2Nlc3NQb29sOmFkb3B0TlMoW1tXS1Byb2Nlc3NQ
b29sIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOnByb2Nlc3NQb29sQ29uZmlndXJhdGlv
bi5nZXQoKV0pLmdldCgpXTsKIAogICAgIFJldGFpblB0cjxXS1dlYlZpZXc+IHdlYlZpZXcgPSB3
ZWJWaWV3Rm9yU2NyaXB0TWVzc2FnZUhhbmRsZXJNdWx0aXBsZUhhbmRsZXJSZW1vdmFsVGVzdChj
b25maWd1cmF0aW9uLmdldCgpKTsKICAgICBSZXRhaW5QdHI8V0tXZWJWaWV3PiB3ZWJWaWV3MiA9
IHdlYlZpZXdGb3JTY3JpcHRNZXNzYWdlSGFuZGxlck11bHRpcGxlSGFuZGxlclJlbW92YWxUZXN0
KGNvbmZpZ3VyYXRpb24uZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9XS0F0dGFjaG1lbnRUZXN0cy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tBdHRhY2htZW50VGVzdHMubW0KaW5kZXggNjY2YzdlZGE1
MzcxMDEwZjIyYjUyYTc3MmUwMWUzOWUwOWUwZjA4NC4uNzBlMTBmZmUxOTgyMGRjNmYzOGZjNTdl
NGUzNThhY2I3YzZmYWNmYiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9XS0F0dGFjaG1lbnRUZXN0cy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1dLQXR0YWNobWVudFRlc3RzLm1tCkBAIC0yMDgyLDcgKzIwODIs
NyBAQCBURVNUKFdLQXR0YWNobWVudFRlc3RzSU9TLCBJbnNlcnREcm9wcGVkQ29udGFjdEFzQXR0
YWNobWVudCkKIAogVEVTVChXS0F0dGFjaG1lbnRUZXN0c0lPUywgSW5zZXJ0UGFzdGVkQ29udGFj
dEFzQXR0YWNobWVudCkKIHsKLSAgICBVSVBhc3RlYm9hcmQuZ2VuZXJhbFBhc3RlYm9hcmQuaXRl
bVByb3ZpZGVycyA9IEBbIGNvbnRhY3RJdGVtRm9yVGVzdGluZygpLmF1dG9yZWxlYXNlKCkgXTsK
KyAgICBVSVBhc3RlYm9hcmQuZ2VuZXJhbFBhc3RlYm9hcmQuaXRlbVByb3ZpZGVycyA9IEBbIGNv
bnRhY3RJdGVtRm9yVGVzdGluZygpLmdldCgpIF07CiAgICAgYXV0byB3ZWJWaWV3ID0gd2ViVmll
d0ZvclRlc3RpbmdBdHRhY2htZW50cygpOwogICAgIE9ic2VydmVBdHRhY2htZW50VXBkYXRlc0Zv
clNjb3BlIG9ic2VydmVyKHdlYlZpZXcuZ2V0KCkpOwogICAgIFt3ZWJWaWV3IHBhc3RlOm5pbF07
CkBAIC0yMDk5LDcgKzIwOTksNyBAQCBURVNUKFdLQXR0YWNobWVudFRlc3RzSU9TLCBJbnNlcnRQ
YXN0ZWRDb250YWN0QXNBdHRhY2htZW50KQogVEVTVChXS0F0dGFjaG1lbnRUZXN0c0lPUywgSW5z
ZXJ0UGFzdGVkTWFwSXRlbUFzQXR0YWNobWVudCkKIHsKICAgICBVSUFwcGxpY2F0aW9uSW5pdGlh
bGl6ZSgpOwotICAgIFVJUGFzdGVib2FyZC5nZW5lcmFsUGFzdGVib2FyZC5pdGVtUHJvdmlkZXJz
ID0gQFsgbWFwSXRlbUZvclRlc3RpbmcoKS5hdXRvcmVsZWFzZSgpIF07CisgICAgVUlQYXN0ZWJv
YXJkLmdlbmVyYWxQYXN0ZWJvYXJkLml0ZW1Qcm92aWRlcnMgPSBAWyBtYXBJdGVtRm9yVGVzdGlu
ZygpLmdldCgpIF07CiAgICAgYXV0byB3ZWJWaWV3ID0gd2ViVmlld0ZvclRlc3RpbmdBdHRhY2ht
ZW50cygpOwogICAgIE9ic2VydmVBdHRhY2htZW50VXBkYXRlc0ZvclNjb3BlIG9ic2VydmVyKHdl
YlZpZXcuZ2V0KCkpOwogICAgIFt3ZWJWaWV3IHBhc3RlOm5pbF07CmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLUERGVmlldy5tbSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tQREZWaWV3Lm1tCmluZGV4IGI4ZjNmMjIy
MWZjMjQyY2ZjY2JjNDU4N2E1ZDcyOGVkNmY0NmYwNDkuLmU3MmU2MGY3NDNiMWIzZGM0ZDNjZjJk
YTFjZDE1YmYwNTEwODJmYjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvV0tQREZWaWV3Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvV0tQREZWaWV3Lm1tCkBAIC0xNjEsNyArMTYxLDcgQEAgc3RhdGljIHZvaWQg
Y2hlY2tGcmFtZShOU1JlY3QgZnJhbWUsIENHRmxvYXQgeCwgQ0dGbG9hdCB5LCBDR0Zsb2F0IHdp
ZHRoLCBDR0Zsb2EKIAogVEVTVChQREZIVUQsIE1haW5SZXNvdXJjZVBERikKIHsKLSAgICBhdXRv
IHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpO
U01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmFkb3B0TlMoW1dLV2ViVmll
d0NvbmZpZ3VyYXRpb24gbmV3XSkuYXV0b3JlbGVhc2UoKV0pOworICAgIGF1dG8gd2ViVmlldyA9
IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3Qo
MCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246YWRvcHROUyhbV0tXZWJWaWV3Q29uZmlndXJh
dGlvbiBuZXddKS5nZXQoKV0pOwogICAgIFt3ZWJWaWV3IGxvYWREYXRhOnBkZkRhdGEoKSBNSU1F
VHlwZTpAImFwcGxpY2F0aW9uL3BkZiIgY2hhcmFjdGVyRW5jb2RpbmdOYW1lOkAiIiBiYXNlVVJM
OltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiaHR0cHM6Ly93d3cuYXBwbGUuY29tL3Rlc3RQYXRoIl1d
OwogICAgIEVYUEVDVF9FUShbd2ViVmlldyBfcGRmSFVEc10uY291bnQsIDB1KTsKICAgICBbd2Vi
VmlldyBfdGVzdF93YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbl07CmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLVVJMU2NoZW1lSGFuZGxlci0xLm1t
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1VSTFNjaGVtZUhhbmRs
ZXItMS5tbQppbmRleCA2YjBmYTUxM2VlZmVlYTUxN2I3MzVjMjBjZDNlNWYzNTUzMTdiNjMxLi41
YzliMzAxMjA2YjA1OTFkZTY3ZDIyZTBiOGQ3ODJkN2RiZmYyNzJiIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLVVJMU2NoZW1lSGFuZGxlci0xLm1t
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tVUkxTY2hlbWVI
YW5kbGVyLTEubW0KQEAgLTU3OSw3ICs1NzksNyBAQCAtICh2b2lkKXdlYlZpZXc6KFdLV2ViVmll
dyAqKXdlYlZpZXcgc3RhcnRVUkxTY2hlbWVUYXNrOihpZCA8V0tVUkxTY2hlbWVUYXNrPil0YQog
ICAgICAgICBbdGFzayBkaWRGaW5pc2hdOwogICAgIH0gZWxzZSB7CiAgICAgICAgIEVYUEVDVF9T
VFJFUSh0YXNrLnJlcXVlc3QuVVJMLmFic29sdXRlU3RyaW5nLlVURjhTdHJpbmcsICJzeW5jZXJy
b3I6Ly8vc3VicmVzb3VyY2UiKTsKLSAgICAgICAgW3Rhc2sgZGlkUmVjZWl2ZVJlc3BvbnNlOmFk
b3B0TlMoW1tOU1VSTFJlc3BvbnNlIGFsbG9jXSBpbml0XSkuYXV0b3JlbGVhc2UoKV07CisgICAg
ICAgIFt0YXNrIGRpZFJlY2VpdmVSZXNwb25zZTphZG9wdE5TKFtbTlNVUkxSZXNwb25zZSBhbGxv
Y10gaW5pdF0pLmdldCgpXTsKICAgICAgICAgW3Rhc2sgZGlkRmFpbFdpdGhFcnJvcjpbTlNFcnJv
ciBlcnJvcldpdGhEb21haW46QCJUZXN0RXJyb3JEb21haW4iIGNvZGU6MTIzIHVzZXJJbmZvOm5p
bF1dOwogICAgIH0KIH0KQEAgLTgwMCw3ICs4MDAsNyBAQCBURVNUKFVSTFNjaGVtZUhhbmRsZXIs
IENPUlMpCiAgICAgICAgICAgICAgICAgICAgIEAiQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2lu
IjogQCIqIiwKICAgICAgICAgICAgICAgICAgICAgQCJDb250ZW50LUxlbmd0aCI6IEAiMiIsCiAg
ICAgICAgICAgICAgICAgICAgIEAiQ29udGVudC1UeXBlIjpAInRleHQvaHRtbCIKLSAgICAgICAg
ICAgICAgICB9XSkuYXV0b3JlbGVhc2UoKV07CisgICAgICAgICAgICAgICAgfV0pLmdldCgpXTsK
ICAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgIFt0YXNrIGRpZFJlY2VpdmVSZXNw
b25zZTphZG9wdE5TKFtbTlNVUkxSZXNwb25zZSBhbGxvY10gaW5pdFdpdGhVUkw6dGFzay5yZXF1
ZXN0LlVSTCBNSU1FVHlwZTpAInRleHQvaHRtbCIgZXhwZWN0ZWRDb250ZW50TGVuZ3RoOjAgdGV4
dEVuY29kaW5nTmFtZTpuaWxdKS5nZXQoKV07CiAgICAgICAgICAgICBbdGFzayBkaWRSZWNlaXZl
RGF0YTpbQCJISSIgZGF0YVVzaW5nRW5jb2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2RpbmddXTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3
RXZhbHVhdGVKYXZhU2NyaXB0Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9XS1dlYlZpZXdFdmFsdWF0ZUphdmFTY3JpcHQubW0KaW5kZXggNTVjNTAwNmZmODdhYTkw
MTBhYWU1ODVjNzdjOTcyYzMzMzExMzdkZS4uMTAzMDUxNTdlNTIzMmUxZjQ5NjAzMmI1ZjhlMDI3
YWZmZjYwNjRlZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9XS1dlYlZpZXdFdmFsdWF0ZUphdmFTY3JpcHQubW0KKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdFdmFsdWF0ZUphdmFTY3JpcHQubW0KQEAg
LTUxMSw3ICs1MTEsNyBAQCBURVNUKEV2YWx1YXRlSmF2YVNjcmlwdCwgSmF2YVNjcmlwdEluRnJh
bWVzRnJvbVBvc3RNZXNzYWdlKQogICAgIFtoYW5kbGVyIHNldFN0YXJ0VVJMU2NoZW1lVGFza0hh
bmRsZXI6WyZdKFdLV2ViVmlldyAqLCBpZDxXS1VSTFNjaGVtZVRhc2s+IHRhc2spIHsKICAgICAg
ICAgaWYgKFt0YXNrLnJlcXVlc3QuVVJMLmFic29sdXRlU3RyaW5nIGlzRXF1YWxUb1N0cmluZzpA
ImZyYW1lc3Rlc3Q6Ly90ZXN0L2luZGV4Lmh0bWwiXSkgewogICAgICAgICAgICAgTlNEYXRhICpk
YXRhID0gW1tOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiJXMiLCBmcmFtZXNNYWluUmVzb3Vy
Y2VdIGRhdGFVc2luZ0VuY29kaW5nOk5TVVRGOFN0cmluZ0VuY29kaW5nXTsKLSAgICAgICAgICAg
IFt0YXNrIGRpZFJlY2VpdmVSZXNwb25zZTphZG9wdE5TKFtbTlNVUkxSZXNwb25zZSBhbGxvY10g
aW5pdFdpdGhVUkw6dGFzay5yZXF1ZXN0LlVSTCBNSU1FVHlwZTpAInRleHQvaHRtbCIgZXhwZWN0
ZWRDb250ZW50TGVuZ3RoOmRhdGEubGVuZ3RoIHRleHRFbmNvZGluZ05hbWU6bmlsXSkuYXV0b3Jl
bGVhc2UoKV07CisgICAgICAgICAgICBbdGFzayBkaWRSZWNlaXZlUmVzcG9uc2U6YWRvcHROUyhb
W05TVVJMUmVzcG9uc2UgYWxsb2NdIGluaXRXaXRoVVJMOnRhc2sucmVxdWVzdC5VUkwgTUlNRVR5
cGU6QCJ0ZXh0L2h0bWwiIGV4cGVjdGVkQ29udGVudExlbmd0aDpkYXRhLmxlbmd0aCB0ZXh0RW5j
b2RpbmdOYW1lOm5pbF0pLmdldCgpXTsKICAgICAgICAgICAgIFt0YXNrIGRpZFJlY2VpdmVEYXRh
OmRhdGFdOwogICAgICAgICAgICAgW3Rhc2sgZGlkRmluaXNoXTsKICAgICAgICAgfSBlbHNlIGlm
IChbdGFzay5yZXF1ZXN0LlVSTC5hYnNvbHV0ZVN0cmluZyBpc0VxdWFsVG9TdHJpbmc6QCJvdGhl
cnByb3RvY29sOi8vdGVzdC9pbmRleC5odG1sIl0pIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvaW9zL0RyYWdBbmREcm9wVGVzdHNJT1MubW0gYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL2lvcy9EcmFnQW5kRHJvcFRlc3RzSU9TLm1tCmluZGV4IDE5MDBhNTg4MzQw
Y2FkMmM3MDQzMzQ2NGQ2ZGQyZmU2YjIxOGI3YjkuLjI3Zjc4NGJkNGIxNGVhNTk0MzhkMjIwYzE1
N2Q1NGY5MzVmMjY2YzIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9z
L0RyYWdBbmREcm9wVGVzdHNJT1MubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9p
b3MvRHJhZ0FuZERyb3BUZXN0c0lPUy5tbQpAQCAtMTExMyw3ICsxMTEzLDcgQEAgVEVTVChEcmFn
QW5kRHJvcFRlc3RzLCBFeHRlcm5hbFNvdXJjZU1hcEl0ZW1JbnRvRWRpdGFibGVBcmVhcykKICAg
ICBbd2ViVmlldyBfc3luY2hyb25vdXNseUV4ZWN1dGVFZGl0Q29tbWFuZDpAIkRlbGV0ZSIgYXJn
dW1lbnQ6bmlsXTsKIAogICAgIGF1dG8gc2ltdWxhdG9yID0gYWRvcHROUyhbW0RyYWdBbmREcm9w
U2ltdWxhdG9yIGFsbG9jXSBpbml0V2l0aFdlYlZpZXc6d2ViVmlldy5nZXQoKV0pOwotICAgIFtz
aW11bGF0b3Igc2V0RXh0ZXJuYWxJdGVtUHJvdmlkZXJzOkBbIGNyZWF0ZU1hcEl0ZW1Gb3JUZXN0
aW5nKCkuYXV0b3JlbGVhc2UoKSBdXTsKKyAgICBbc2ltdWxhdG9yIHNldEV4dGVybmFsSXRlbVBy
b3ZpZGVyczpAWyBjcmVhdGVNYXBJdGVtRm9yVGVzdGluZygpLmdldCgpIF1dOwogICAgIFtzaW11
bGF0b3IgcnVuRnJvbTpDR1BvaW50TWFrZSgwLCAwKSB0bzpDR1BvaW50TWFrZSgxMDAsIDEwMCld
OwogICAgIEVYUEVDVF9XS19TVFJFUSgiQXBwbGUgUGFyayIsIFt3ZWJWaWV3IHN0cmluZ0J5RXZh
bHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdkaXZbY29udGVudGVk
aXRhYmxlXScpLnRleHRDb250ZW50Il0pOwogICAgIE5TVVJMICpmaXJzdFVSTCA9IFtOU1VSTCBV
UkxXaXRoU3RyaW5nOlt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1
bWVudC5xdWVyeVNlbGVjdG9yKCdhJykuaHJlZiJdXTsKQEAgLTExMzEsNyArMTEzMSw3IEBAIFRF
U1QoRHJhZ0FuZERyb3BUZXN0cywgRXh0ZXJuYWxTb3VyY2VDb250YWN0SW50b0VkaXRhYmxlQXJl
YXMpCiAgICAgW3dlYlZpZXcgX3N5bmNocm9ub3VzbHlFeGVjdXRlRWRpdENvbW1hbmQ6QCJEZWxl
dGUiIGFyZ3VtZW50Om5pbF07CiAKICAgICBhdXRvIHNpbXVsYXRvciA9IGFkb3B0TlMoW1tEcmFn
QW5kRHJvcFNpbXVsYXRvciBhbGxvY10gaW5pdFdpdGhXZWJWaWV3OndlYlZpZXcuZ2V0KCldKTsK
LSAgICBbc2ltdWxhdG9yIHNldEV4dGVybmFsSXRlbVByb3ZpZGVyczpAWyBjcmVhdGVDb250YWN0
SXRlbUZvclRlc3RpbmcoKS5hdXRvcmVsZWFzZSgpIF1dOworICAgIFtzaW11bGF0b3Igc2V0RXh0
ZXJuYWxJdGVtUHJvdmlkZXJzOkBbIGNyZWF0ZUNvbnRhY3RJdGVtRm9yVGVzdGluZygpLmdldCgp
IF1dOwogICAgIFtzaW11bGF0b3IgcnVuRnJvbTpDR1BvaW50TWFrZSgwLCAwKSB0bzpDR1BvaW50
TWFrZSgxMDAsIDEwMCldOwogICAgIEVYUEVDVF9XS19TVFJFUSgiIiwgW3dlYlZpZXcgc3RyaW5n
QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2Rpdltjb250
ZW50ZWRpdGFibGVdJykudGV4dENvbnRlbnQiXSk7CiAKQEAgLTExNDUsNyArMTE0NSw3IEBAIFRF
U1QoRHJhZ0FuZERyb3BUZXN0cywgRXh0ZXJuYWxTb3VyY2VNYXBJdGVtQW5kQ29udGFjdFRvVXBs
b2FkQXJlYSkKICAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6QCJm
aWxlLXVwbG9hZGluZyJdOwogCiAgICAgYXV0byBzaW11bGF0b3IgPSBhZG9wdE5TKFtbRHJhZ0Fu
ZERyb3BTaW11bGF0b3IgYWxsb2NdIGluaXRXaXRoV2ViVmlldzp3ZWJWaWV3LmdldCgpXSk7Ci0g
ICAgW3NpbXVsYXRvciBzZXRFeHRlcm5hbEl0ZW1Qcm92aWRlcnM6QFsgY3JlYXRlTWFwSXRlbUZv
clRlc3RpbmcoKS5hdXRvcmVsZWFzZSgpLCBjcmVhdGVDb250YWN0SXRlbUZvclRlc3RpbmcoKS5h
dXRvcmVsZWFzZSgpIF1dOworICAgIFtzaW11bGF0b3Igc2V0RXh0ZXJuYWxJdGVtUHJvdmlkZXJz
OkBbIGNyZWF0ZU1hcEl0ZW1Gb3JUZXN0aW5nKCkuZ2V0KCksIGNyZWF0ZUNvbnRhY3RJdGVtRm9y
VGVzdGluZygpLmdldCgpIF1dOwogICAgIFtzaW11bGF0b3IgcnVuRnJvbTpDR1BvaW50TWFrZSgy
MDAsIDEwMCkgdG86Q0dQb2ludE1ha2UoMTAwLCAzMDApXTsKIAogICAgIEVYUEVDVF9XS19TVFJF
USgidGV4dC92Y2FyZCwgdGV4dC92Y2FyZCIsIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0ph
dmFTY3JpcHQ6QCJvdXRwdXQudmFsdWUiXSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL21hYy9Gb250TWFuYWdlclRlc3RzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9tYWMvRm9udE1hbmFnZXJUZXN0cy5tbQppbmRleCBiY2NkOWZiZTkyMmJjYTM4OGM1OGIw
M2NjMjlkMjEzYWE1MDc2YWZmLi5lYTM5ZGI4ZmQ2NTE4ZDZiMDE2NmU3NjkzMzI4N2EyZDg4ZTgw
ZTVmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Gb250TWFuYWdl
clRlc3RzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0ZvbnRNYW5hZ2Vy
VGVzdHMubW0KQEAgLTEyMywyMiArMTIzLDIyIEBAIFRFU1QoRm9udE1hbmFnZXJUZXN0cywgVG9n
Z2xlQm9sZEFuZEl0YWxpY1dpdGhNZW51SXRlbXMpCiAKICAgICBbd2ViVmlldyBzZWxlY3RXb3Jk
Om5pbF07CiAgICAgW3dlYlZpZXcgd2FpdEZvck5leHRQcmVzZW50YXRpb25VcGRhdGVdOwotICAg
IFtmb250TWFuYWdlciBhZGRGb250VHJhaXQ6bWVudUl0ZW1DZWxsRm9yRm9udEFjdGlvbihOU0Jv
bGRGb250TWFzaykuYXV0b3JlbGVhc2UoKV07CisgICAgW2ZvbnRNYW5hZ2VyIGFkZEZvbnRUcmFp
dDptZW51SXRlbUNlbGxGb3JGb250QWN0aW9uKE5TQm9sZEZvbnRNYXNrKS5nZXQoKV07CiAgICAg
RVhQRUNUX1dLX1NUUkVRKCJib2xkIiwgW3dlYlZpZXcgc3R5bGVQcm9wZXJ0eUF0U2VsZWN0aW9u
U3RhcnQ6QCJmb250LXdlaWdodCJdKTsKICAgICBFWFBFQ1RfV0tfU1RSRVEoImJvbGQiLCBbd2Vi
VmlldyBzdHlsZVByb3BlcnR5QXRTZWxlY3Rpb25FbmQ6QCJmb250LXdlaWdodCJdKTsKICAgICBF
WFBFQ1RfV0tfU1RSRVEoIlRpbWVzLUJvbGQiLCBbZm9udE1hbmFnZXIgc2VsZWN0ZWRGb250XS5m
b250TmFtZSk7CiAKLSAgICBbZm9udE1hbmFnZXIgYWRkRm9udFRyYWl0Om1lbnVJdGVtQ2VsbEZv
ckZvbnRBY3Rpb24oTlNVbmJvbGRGb250TWFzaykuYXV0b3JlbGVhc2UoKV07CisgICAgW2ZvbnRN
YW5hZ2VyIGFkZEZvbnRUcmFpdDptZW51SXRlbUNlbGxGb3JGb250QWN0aW9uKE5TVW5ib2xkRm9u
dE1hc2spLmdldCgpXTsKICAgICBFWFBFQ1RfV0tfU1RSRVEoIm5vcm1hbCIsIFt3ZWJWaWV3IHN0
eWxlUHJvcGVydHlBdFNlbGVjdGlvblN0YXJ0OkAiZm9udC13ZWlnaHQiXSk7CiAgICAgRVhQRUNU
X1dLX1NUUkVRKCJub3JtYWwiLCBbd2ViVmlldyBzdHlsZVByb3BlcnR5QXRTZWxlY3Rpb25FbmQ6
QCJmb250LXdlaWdodCJdKTsKICAgICBFWFBFQ1RfV0tfU1RSRVEoIlRpbWVzLVJvbWFuIiwgW2Zv
bnRNYW5hZ2VyIHNlbGVjdGVkRm9udF0uZm9udE5hbWUpOwogCi0gICAgW2ZvbnRNYW5hZ2VyIGFk
ZEZvbnRUcmFpdDptZW51SXRlbUNlbGxGb3JGb250QWN0aW9uKE5TSXRhbGljRm9udE1hc2spLmF1
dG9yZWxlYXNlKCldOworICAgIFtmb250TWFuYWdlciBhZGRGb250VHJhaXQ6bWVudUl0ZW1DZWxs
Rm9yRm9udEFjdGlvbihOU0l0YWxpY0ZvbnRNYXNrKS5nZXQoKV07CiAgICAgRVhQRUNUX1dLX1NU
UkVRKCJpdGFsaWMiLCBbd2ViVmlldyBzdHlsZVByb3BlcnR5QXRTZWxlY3Rpb25TdGFydDpAImZv
bnQtc3R5bGUiXSk7CiAgICAgRVhQRUNUX1dLX1NUUkVRKCJpdGFsaWMiLCBbd2ViVmlldyBzdHls
ZVByb3BlcnR5QXRTZWxlY3Rpb25FbmQ6QCJmb250LXN0eWxlIl0pOwogICAgIEVYUEVDVF9XS19T
VFJFUSgiVGltZXMtSXRhbGljIiwgW2ZvbnRNYW5hZ2VyIHNlbGVjdGVkRm9udF0uZm9udE5hbWUp
OwogCi0gICAgW2ZvbnRNYW5hZ2VyIGFkZEZvbnRUcmFpdDptZW51SXRlbUNlbGxGb3JGb250QWN0
aW9uKE5TVW5pdGFsaWNGb250TWFzaykuYXV0b3JlbGVhc2UoKV07CisgICAgW2ZvbnRNYW5hZ2Vy
IGFkZEZvbnRUcmFpdDptZW51SXRlbUNlbGxGb3JGb250QWN0aW9uKE5TVW5pdGFsaWNGb250TWFz
aykuZ2V0KCldOwogICAgIEVYUEVDVF9XS19TVFJFUSgibm9ybWFsIiwgW3dlYlZpZXcgc3R5bGVQ
cm9wZXJ0eUF0U2VsZWN0aW9uU3RhcnQ6QCJmb250LXN0eWxlIl0pOwogICAgIEVYUEVDVF9XS19T
VFJFUSgibm9ybWFsIiwgW3dlYlZpZXcgc3R5bGVQcm9wZXJ0eUF0U2VsZWN0aW9uRW5kOkAiZm9u
dC1zdHlsZSJdKTsKICAgICBFWFBFQ1RfV0tfU1RSRVEoIlRpbWVzLVJvbWFuIiwgW2ZvbnRNYW5h
Z2VyIHNlbGVjdGVkRm9udF0uZm9udE5hbWUpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421003</attachid>
            <date>2021-02-19 11:57:13 -0800</date>
            <delta_ts>2021-02-19 16:00:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222177-20210219115713.patch</filename>
            <type>text/plain</type>
            <size>82536</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczMTUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
MzQ2ZmJlM2ZhZGIyZDdmMTNmMTNkOWQzMWYzZTE4ZTNmNTNlYmE0Li4zOGI3ZThlNmZmNjY3OTY5
ZTVhNzExMWE4YTc0OWIxMDMxZWI3OTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAyMS0wMi0xOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFJldmlldyByZW1haW5pbmcgdXNhZ2Ugb2YgYXV0b3JlbGVhc2UgdG8gbWFrZSBz
dXJlIGl0IGlzIG5lY2Vzc2FyeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjIyMTc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBBUEkvSlNDb250ZXh0Lm1tOgorICAgICAgICAoK1tKU0NvbnRleHQgY29u
dGV4dFdpdGhKU0dsb2JhbENvbnRleHRSZWY6XSk6CisgICAgICAgICogQVBJL0pTVmlydHVhbE1h
Y2hpbmUubW06CisgICAgICAgICgrW0pTVmlydHVhbE1hY2hpbmUgdmlydHVhbE1hY2hpbmVXaXRo
Q29udGV4dEdyb3VwUmVmOl0pOgorICAgICAgICAqIEFQSS9KU1dyYXBwZXJNYXAubW06CisgICAg
ICAgICgtW0pTV3JhcHBlck1hcCBvYmpjV3JhcHBlckZvckpTVmFsdWVSZWY6aW5Db250ZXh0Ol0p
OgorCiAyMDIxLTAyLTE5ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAg
ICAgICAgW0pTQ10gRG8gbm90IHVzZSB0b09iamVjdCBmb3Igb3B0aW9ucyBpbiBuZXcgSW50bCBj
b25zdHJ1Y3RvcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0MDQ0YjdmNGY1OWIyM2ZhNjlkZTc4NmNjMzU2MmI2
NzVlYmJiNWIxLi41YWQwYjU0ZDc3OGQzODIyN2ExNTdiZmFkZTY1MzFlZWE4NTgxNzMxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMDItMTkgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXcgcmVtYWluaW5nIHVzYWdlIG9mIGF1dG9yZWxl
YXNlIHRvIG1ha2Ugc3VyZSBpdCBpcyBuZWNlc3NhcnkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjE3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVl
bkNvbnRyb2xsZXJBVktpdC5tbToKKyAgICAgICAgKC1bV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJv
bGxlciBkaWRGaW5pc2hGdWxsc2NyZWVuOl0pOgorCiAyMDIxLTAyLTE5ICBEZXZpbiBSb3Vzc28g
IDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAgICBbUGF5bWVudCBSZXF1ZXN0XSBhZGQgYW4g
YG9iamVjdCBkYXRhYCB0byBgUGF5bWVudERldGFpbHNCYXNlYCBzbyB0aGF0IGRhdGEgc3BlY2lm
aWMgdG8gQXBwbGUgUGF5IGNhbiBiZSBwcm92aWRlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBiNDMxYTU4MGYzMTI0
ZjU5Zjc1YTgwNzliYzMwOTIyZjNiOWI4ZWUxLi4yZTBlYjcwNzFjZGU4ZmY1ZjhiODhjMGQ3ZTI2
MjkwOWFkMTE2NGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIxLTAyLTE5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3IHJlbWFpbmluZyB1
c2FnZSBvZiBhdXRvcmVsZWFzZSB0byBtYWtlIHN1cmUgaXQgaXMgbmVjZXNzYXJ5CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIxNzcKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtT
ZXNzaW9uQ29jb2E6Ok5ldHdvcmtTZXNzaW9uQ29jb2EpOgorICAgICAgICAqIFBsYXRmb3JtL2Nv
Y29hL1dLUGF5bWVudEF1dGhvcml6YXRpb25EZWxlZ2F0ZS5tbToKKyAgICAgICAgKC1bV0tQYXlt
ZW50QXV0aG9yaXphdGlvbkRlbGVnYXRlIGNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbjpd
KToKKyAgICAgICAgKC1bV0tQYXltZW50QXV0aG9yaXphdGlvbkRlbGVnYXRlIGNvbXBsZXRlU2hp
cHBpbmdDb250YWN0U2VsZWN0aW9uOl0pOgorICAgICAgICAoLVtXS1BheW1lbnRBdXRob3JpemF0
aW9uRGVsZWdhdGUgY29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbjpdKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0NvY29hL05TQXR0cmlidXRlZFN0cmluZy5tbToKKyAgICAgICAgKCtb
X1dLQXR0cmlidXRlZFN0cmluZ1dlYlZpZXdDYWNoZSBjb25maWd1cmF0aW9uXSk6CisgICAgICAg
ICgrW05TQXR0cmlidXRlZFN0cmluZyBfbG9hZEZyb21IVE1MV2l0aE9wdGlvbnM6Y29udGVudExv
YWRlcjpjb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5tbToKKyAgICAgICAgKHNldFVwUGFnZVBvbGlj
eUNsaWVudCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06Cisg
ICAgICAgICgtW1dLV2ViVmlldyBfdGFrZVBERlNuYXBzaG90V2l0aENvbmZpZ3VyYXRpb246Y29t
cGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3
VGVzdGluZ0lPUy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9yZXF1ZXN0VGV4dElucHV0Q29u
dGV4dHNJblJlY3Q6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9Q
bHVnaW5zL05ldHNjYXBlL21hYy9OZXRzY2FwZVBsdWdpbk1hYy5tbToKKyAgICAgICAgKFdlYktp
dDo6Y29udmVydFRvTlBOTlN0cmluZyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21h
Yy9XS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0TWFjLm1tOgorICAgICAgICAoLVtXS0FjY2Vz
c2liaWxpdHlXZWJQYWdlT2JqZWN0IEFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VO
RF0pOgorCiAyMDIxLTAyLTE5ICBQZXIgQXJuZSAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIEFkZCBub3RpZnlkIG1lc3NhZ2UgZmlsdGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cK
aW5kZXggMDkzZTBkOWNlZjg3ZDA3M2VhOTBiMjIxNDQ3NzE4YjFhMmFlYjQxNS4uYzkzY2VjYzI2
NDAzMzczOTk4MTY3MjMzODIzZWJjMTk0NWZmOGNjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTAyLTE5ICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3IHJlbWFpbmluZyB1c2FnZSBvZiBhdXRvcmVsZWFz
ZSB0byBtYWtlIHN1cmUgaXQgaXMgbmVjZXNzYXJ5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIxNzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIE1pc2MvV2ViTlNPYmplY3RFeHRyYXMubW06CisgICAg
ICAgICgtW1dlYk1haW5UaHJlYWRJbnZva2VyIGZvcndhcmRJbnZvY2F0aW9uOl0pOgorICAgICAg
ICAqIFBsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5WaWV3Lm1tOgorICAgICAgICAoLVtXZWJOZXRz
Y2FwZVBsdWdpblZpZXcgc2VuZEV2ZW50OmlzRHJhd1JlY3Q6XSk6CisgICAgICAgICogV2ViVmll
dy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyLm1tOgorICAgICAgICAoLVtXZWJWaWRlb0Z1
bGxzY3JlZW5Db250cm9sbGVyIGluaXRdKToKKwogMjAyMS0wMi0xOSAgRGV2aW4gUm91c3NvICA8
ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgW1BheW1lbnQgUmVxdWVzdF0gYWRkIGFuIGBv
YmplY3QgZGF0YWAgdG8gYFBheW1lbnREZXRhaWxzQmFzZWAgc28gdGhhdCBkYXRhIHNwZWNpZmlj
IHRvIEFwcGxlIFBheSBjYW4gYmUgcHJvdmlkZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9BUEkvSlNDb250ZXh0Lm1tIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0Nv
bnRleHQubW0KaW5kZXggMmNjMmY2Yzg5ZmRjM2E0OTlhYzQxMTYyN2VkN2EzM2I2NTBmMWQ1Yy4u
ZTNhZjBiMTQxZGU4MTdkMjg3NThiMzAzODAxMWMyZDFlY2NhMzYyYiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NvbnRleHQubW0KKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS9KU0NvbnRleHQubW0KQEAgLTQwNiwxMCArNDA2LDEwIEBAIC0gKEpTVmFsdWUg
Kil3cmFwcGVyRm9ySlNPYmplY3Q6KEpTVmFsdWVSZWYpdmFsdWUKICsgKEpTQ29udGV4dCAqKWNv
bnRleHRXaXRoSlNHbG9iYWxDb250ZXh0UmVmOihKU0dsb2JhbENvbnRleHRSZWYpZ2xvYmFsQ29u
dGV4dAogewogICAgIEpTVmlydHVhbE1hY2hpbmUgKnZpcnR1YWxNYWNoaW5lID0gW0pTVmlydHVh
bE1hY2hpbmUgdmlydHVhbE1hY2hpbmVXaXRoQ29udGV4dEdyb3VwUmVmOnRvUmVmKCZ0b0pTKGds
b2JhbENvbnRleHQpLT52bSgpKV07Ci0gICAgSlNDb250ZXh0ICpjb250ZXh0ID0gW3ZpcnR1YWxN
YWNoaW5lIGNvbnRleHRGb3JHbG9iYWxDb250ZXh0UmVmOmdsb2JhbENvbnRleHRdOworICAgIGF1
dG8gY29udGV4dCA9IHJldGFpblB0cihbdmlydHVhbE1hY2hpbmUgY29udGV4dEZvckdsb2JhbENv
bnRleHRSZWY6Z2xvYmFsQ29udGV4dF0pOwogICAgIGlmICghY29udGV4dCkKLSAgICAgICAgY29u
dGV4dCA9IGFkb3B0TlMoW1tKU0NvbnRleHQgYWxsb2NdIGluaXRXaXRoR2xvYmFsQ29udGV4dFJl
ZjpnbG9iYWxDb250ZXh0XSkuYXV0b3JlbGVhc2UoKTsKLSAgICByZXR1cm4gY29udGV4dDsKKyAg
ICAgICAgY29udGV4dCA9IGFkb3B0TlMoW1tKU0NvbnRleHQgYWxsb2NdIGluaXRXaXRoR2xvYmFs
Q29udGV4dFJlZjpnbG9iYWxDb250ZXh0XSk7CisgICAgcmV0dXJuIGNvbnRleHQuYXV0b3JlbGVh
c2UoKTsKIH0KIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9K
U1ZpcnR1YWxNYWNoaW5lLm1tIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZpcnR1YWxN
YWNoaW5lLm1tCmluZGV4IDBiMzRmODkwOThmNWYxODYzM2ZkMDlhOTk2MGQxOWQ3N2NlMGQyZGEu
LjMwMzIyNjQwMWQ0NGRjZmQ1MzhlMGQ4MmZhMGFkY2ViNDNlNTJkOWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWaXJ0dWFsTWFjaGluZS5tbQorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL0pTVmlydHVhbE1hY2hpbmUubW0KQEAgLTIzNCwxMCArMjM0LDEw
IEBAIEpTQ29udGV4dEdyb3VwUmVmIGdldEdyb3VwRnJvbVZpcnR1YWxNYWNoaW5lKEpTVmlydHVh
bE1hY2hpbmUgKnZpcnR1YWxNYWNoaW5lKQogCiArIChKU1ZpcnR1YWxNYWNoaW5lICopdmlydHVh
bE1hY2hpbmVXaXRoQ29udGV4dEdyb3VwUmVmOihKU0NvbnRleHRHcm91cFJlZilncm91cAogewot
ICAgIEpTVmlydHVhbE1hY2hpbmUgKnZpcnR1YWxNYWNoaW5lID0gW0pTVk1XcmFwcGVyQ2FjaGUg
d3JhcHBlckZvckpTQ29udGV4dEdyb3VwUmVmOmdyb3VwXTsKKyAgICBhdXRvIHZpcnR1YWxNYWNo
aW5lID0gcmV0YWluUHRyKFtKU1ZNV3JhcHBlckNhY2hlIHdyYXBwZXJGb3JKU0NvbnRleHRHcm91
cFJlZjpncm91cF0pOwogICAgIGlmICghdmlydHVhbE1hY2hpbmUpCi0gICAgICAgIHZpcnR1YWxN
YWNoaW5lID0gYWRvcHROUyhbW0pTVmlydHVhbE1hY2hpbmUgYWxsb2NdIGluaXRXaXRoQ29udGV4
dEdyb3VwUmVmOmdyb3VwXSkuYXV0b3JlbGVhc2UoKTsKLSAgICByZXR1cm4gdmlydHVhbE1hY2hp
bmU7CisgICAgICAgIHZpcnR1YWxNYWNoaW5lID0gYWRvcHROUyhbW0pTVmlydHVhbE1hY2hpbmUg
YWxsb2NdIGluaXRXaXRoQ29udGV4dEdyb3VwUmVmOmdyb3VwXSk7CisgICAgcmV0dXJuIHZpcnR1
YWxNYWNoaW5lLmF1dG9yZWxlYXNlKCk7CiB9CiAKIC0gKEpTQ29udGV4dCAqKWNvbnRleHRGb3JH
bG9iYWxDb250ZXh0UmVmOihKU0dsb2JhbENvbnRleHRSZWYpZ2xvYmFsQ29udGV4dApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1dyYXBwZXJNYXAubW0gYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL0pTV3JhcHBlck1hcC5tbQppbmRleCBkODliZmVhNGJiZGJiMzk4
MmZhMGUwY2VjMjIyN2Q4OTY4ZGNiNmNhLi5mMDM3NzUyZTQ5OWI1Y2RjNDIzNWUyOGUyYjVmMWMy
Y2JlY2QwOWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTV3JhcHBl
ck1hcC5tbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTV3JhcHBlck1hcC5tbQpA
QCAtNjY0LDEyICs2NjQsMTIgQEAgLSAoSlNWYWx1ZSAqKWpzV3JhcHBlckZvck9iamVjdDooaWQp
b2JqZWN0IGluQ29udGV4dDooSlNDb250ZXh0ICopY29udGV4dAogLSAoSlNWYWx1ZSAqKW9iamNX
cmFwcGVyRm9ySlNWYWx1ZVJlZjooSlNWYWx1ZVJlZil2YWx1ZSBpbkNvbnRleHQ6Y29udGV4dAog
ewogICAgIEFTU0VSVCh0b0pTR2xvYmFsT2JqZWN0KFtjb250ZXh0IEpTR2xvYmFsQ29udGV4dFJl
Zl0pLT53cmFwcGVyTWFwKCkgPT0gc2VsZik7Ci0gICAgSlNWYWx1ZSAqd3JhcHBlciA9IChfX2Jy
aWRnZSBKU1ZhbHVlICopTlNNYXBHZXQobV9jYWNoZWRPYmpDV3JhcHBlcnMuZ2V0KCksIHZhbHVl
KTsKKyAgICBhdXRvIHdyYXBwZXIgPSByZXRhaW5QdHIoKF9fYnJpZGdlIEpTVmFsdWUgKilOU01h
cEdldChtX2NhY2hlZE9iakNXcmFwcGVycy5nZXQoKSwgdmFsdWUpKTsKICAgICBpZiAoIXdyYXBw
ZXIpIHsKLSAgICAgICAgd3JhcHBlciA9IGFkb3B0TlMoW1tKU1ZhbHVlIGFsbG9jXSBpbml0V2l0
aFZhbHVlOnZhbHVlIGluQ29udGV4dDpjb250ZXh0XSkuYXV0b3JlbGVhc2UoKTsKLSAgICAgICAg
TlNNYXBJbnNlcnQobV9jYWNoZWRPYmpDV3JhcHBlcnMuZ2V0KCksIHZhbHVlLCAoX19icmlkZ2Ug
dm9pZCopd3JhcHBlcik7CisgICAgICAgIHdyYXBwZXIgPSBhZG9wdE5TKFtbSlNWYWx1ZSBhbGxv
Y10gaW5pdFdpdGhWYWx1ZTp2YWx1ZSBpbkNvbnRleHQ6Y29udGV4dF0pOworICAgICAgICBOU01h
cEluc2VydChtX2NhY2hlZE9iakNXcmFwcGVycy5nZXQoKSwgdmFsdWUsIChfX2JyaWRnZSB2b2lk
Kil3cmFwcGVyLmdldCgpKTsKICAgICB9Ci0gICAgcmV0dXJuIHdyYXBwZXI7CisgICAgcmV0dXJu
IHdyYXBwZXIuYXV0b3JlbGVhc2UoKTsKIH0KIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVy
QVZLaXQubW0KaW5kZXggNjZiYzRkZmIyZmZkNmMxZDJkOGUyYzQyNTVlOTJjMGViM2UyZjEwMS4u
NDBlZThhN2IwM2M2YmRkNzY1MTY1OWI3ODI2NWI1NTY3NjdjMDRhMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktp
dC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVu
Q29udHJvbGxlckFWS2l0Lm1tCkBAIC0xMDYyLDcgKzEwNjIsNyBAQCAtICh2b2lkKWRpZEZpbmlz
aEZ1bGxzY3JlZW46KFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0Kiljb250ZXh0CiB7
CiAgICAgQVNTRVJUKFdlYlRocmVhZElzQ3VycmVudCgpKTsKICAgICBBU1NFUlRfVU5VU0VEKGNv
bnRleHQsIGNvbnRleHQgPT0gX2NvbnRleHQpOwotICAgIHJldGFpblB0cihzZWxmKS5hdXRvcmVs
ZWFzZSgpOyAvLyByZXRhaW4gc2VsZiBiZWZvcmUgYnJlYWtpbmcgYSByZXRhaW4gY3ljbGUuCisg
ICAgYXV0byBzdHJvbmdTZWxmID0gcmV0YWluUHRyKHNlbGYpOyAvLyByZXRhaW4gc2VsZiBiZWZv
cmUgYnJlYWtpbmcgYSByZXRhaW4gY3ljbGUuCiAgICAgX2NvbnRleHQtPnNldENvbnRyb2xsZXIo
bmlsKTsKICAgICBfY29udGV4dCA9IG51bGxwdHI7CiAgICAgX3ZpZGVvRWxlbWVudCA9IG51bGxw
dHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdv
cmtTZXNzaW9uQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05l
dHdvcmtTZXNzaW9uQ29jb2EubW0KaW5kZXggNmU1NDU2ZTkzZGRiZDhlOGJhMWE5MGM2YzI4NDdj
MDM0Y2U3MjMyNi4uOWExNjRjMTMzY2U3YzcyZGFjNWY5OGU3ZTNhYTJiZGZjNDE5YzI0MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lv
bkNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29y
a1Nlc3Npb25Db2NvYS5tbQpAQCAtMTIzMiw3ICsxMjMyLDcgQEAgTmV0d29ya1Nlc3Npb25Db2Nv
YTo6TmV0d29ya1Nlc3Npb25Db2NvYShOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIE5l
dHdvcmsKICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5KHBhcmFt
ZXRlcnMuaHN0c1N0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOwogICAgICAgICAvLyBG
SVhNRTogUmVtb3ZlIHRoaXMgcmVzcG9uZHNUb1NlbGVjdG9yIGNoZWNrIG9uY2UgcmRhcjovL3By
b2JsZW0vNTAxMDk2MzEgaXMgaW4gYSBidWlsZCBhbmQgYm90cyBhcmUgdXBkYXRlZC4KICAgICAg
ICAgaWYgKFtjb25maWd1cmF0aW9uIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX2hzdHNT
dG9yYWdlKV0pCi0gICAgICAgICAgICBjb25maWd1cmF0aW9uLl9oc3RzU3RvcmFnZSA9IGFkb3B0
TlMoW2FsbG9jX05TSFNUU1N0b3JhZ2VJbnN0YW5jZSgpIGluaXRQZXJzaXN0ZW50U3RvcmVXaXRo
VVJMOltOU1VSTCBmaWxlVVJMV2l0aFBhdGg6cGFyYW1ldGVycy5oc3RzU3RvcmFnZURpcmVjdG9y
eSBpc0RpcmVjdG9yeTpZRVNdXSkuYXV0b3JlbGVhc2UoKTsKKyAgICAgICAgICAgIGNvbmZpZ3Vy
YXRpb24uX2hzdHNTdG9yYWdlID0gYWRvcHROUyhbYWxsb2NfTlNIU1RTU3RvcmFnZUluc3RhbmNl
KCkgaW5pdFBlcnNpc3RlbnRTdG9yZVdpdGhVUkw6W05TVVJMIGZpbGVVUkxXaXRoUGF0aDpwYXJh
bWV0ZXJzLmhzdHNTdG9yYWdlRGlyZWN0b3J5IGlzRGlyZWN0b3J5OllFU11dKS5nZXQoKTsKICAg
ICB9CiAjZW5kaWYKIApAQCAtMTI2Nyw3ICsxMjY3LDcgQEAgTmV0d29ya1Nlc3Npb25Db2NvYTo6
TmV0d29ya1Nlc3Npb25Db2NvYShOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIE5ldHdv
cmsKICNpZiBIQVZFKENGTkVUV09SS19BTFRFUk5BVElWRV9TRVJWSUNFKQogICAgIGlmICghcGFy
YW1ldGVycy5hbHRlcm5hdGl2ZVNlcnZpY2VEaXJlY3RvcnkuaXNFbXB0eSgpKSB7CiAgICAgICAg
IFNhbmRib3hFeHRlbnNpb246OmNvbnN1bWVQZXJtYW5lbnRseShwYXJhbWV0ZXJzLmFsdGVybmF0
aXZlU2VydmljZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7Ci0gICAgICAgIGNvbmZpZ3VyYXRp
b24uX2FsdGVybmF0aXZlU2VydmljZXNTdG9yYWdlID0gYWRvcHROUyhbW19OU0hUVFBBbHRlcm5h
dGl2ZVNlcnZpY2VzU3RvcmFnZSBhbGxvY10gaW5pdFBlcnNpc3RlbnRTdG9yZVdpdGhVUkw6W1tO
U1VSTCBmaWxlVVJMV2l0aFBhdGg6cGFyYW1ldGVycy5hbHRlcm5hdGl2ZVNlcnZpY2VEaXJlY3Rv
cnkgaXNEaXJlY3Rvcnk6WUVTXSBVUkxCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6QCJBbHRlcm5h
dGl2ZVNlcnZpY2Uuc3FsaXRlIl1dKS5hdXRvcmVsZWFzZSgpOworICAgICAgICBjb25maWd1cmF0
aW9uLl9hbHRlcm5hdGl2ZVNlcnZpY2VzU3RvcmFnZSA9IGFkb3B0TlMoW1tfTlNIVFRQQWx0ZXJu
YXRpdmVTZXJ2aWNlc1N0b3JhZ2UgYWxsb2NdIGluaXRQZXJzaXN0ZW50U3RvcmVXaXRoVVJMOltb
TlNVUkwgZmlsZVVSTFdpdGhQYXRoOnBhcmFtZXRlcnMuYWx0ZXJuYXRpdmVTZXJ2aWNlRGlyZWN0
b3J5IGlzRGlyZWN0b3J5OllFU10gVVJMQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAiQWx0ZXJu
YXRpdmVTZXJ2aWNlLnNxbGl0ZSJdXSkuZ2V0KCk7CiAgICAgfQogICAgIGlmIChwYXJhbWV0ZXJz
Lmh0dHAzRW5hYmxlZCkKICAgICAgICAgY29uZmlndXJhdGlvbi5fYWxsb3dzSFRUUDMgPSBZRVM7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL2NvY29hL1dLUGF5bWVudEF1dGhv
cml6YXRpb25EZWxlZ2F0ZS5tbSBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vY29jb2EvV0tQYXlt
ZW50QXV0aG9yaXphdGlvbkRlbGVnYXRlLm1tCmluZGV4IGI5ZGNlN2JlZGU4ZDc5NTI4NDYyMzBk
MDU3ZDI2NDk5ZjFjZTY3ZWYuLjExOGIyYTc0YTVkM2I0YTQwOWFlMDk0ZjBmNGY3MDc1YWY0YTU2
OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vY29jb2EvV0tQYXltZW50QXV0
aG9yaXphdGlvbkRlbGVnYXRlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vY29jb2Ev
V0tQYXltZW50QXV0aG9yaXphdGlvbkRlbGVnYXRlLm1tCkBAIC02MSw5ICs2MSw5IEBAIC0gKHZv
aWQpY29tcGxldGVNZXJjaGFudFZhbGlkYXRpb246KFBLUGF5bWVudE1lcmNoYW50U2Vzc2lvbiAq
KXNlc3Npb24gZXJyb3I6KE5TCiAKIC0gKHZvaWQpY29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0
aW9uOihQS1BheW1lbnRSZXF1ZXN0UGF5bWVudE1ldGhvZFVwZGF0ZSAqKXBheW1lbnRNZXRob2RV
cGRhdGUKIHsKLSAgICBQS1BheW1lbnRSZXF1ZXN0UGF5bWVudE1ldGhvZFVwZGF0ZSAqdXBkYXRl
ID0gcGF5bWVudE1ldGhvZFVwZGF0ZSA/OiBhZG9wdE5TKFtQQUw6OmFsbG9jUEtQYXltZW50UmVx
dWVzdFBheW1lbnRNZXRob2RVcGRhdGVJbnN0YW5jZSgpIGluaXRXaXRoUGF5bWVudFN1bW1hcnlJ
dGVtczpfc3VtbWFyeUl0ZW1zLmdldCgpXSkuYXV0b3JlbGVhc2UoKTsKLSAgICBfc3VtbWFyeUl0
ZW1zID0gYWRvcHROUyhbdXBkYXRlLnBheW1lbnRTdW1tYXJ5SXRlbXMgY29weV0pOwotICAgIHN0
ZDo6ZXhjaGFuZ2UoX2RpZFNlbGVjdFBheW1lbnRNZXRob2RDb21wbGV0aW9uLCBuaWwpKHVwZGF0
ZSk7CisgICAgYXV0byB1cGRhdGUgPSAhcGF5bWVudE1ldGhvZFVwZGF0ZSA/IGFkb3B0TlMoW1BB
TDo6YWxsb2NQS1BheW1lbnRSZXF1ZXN0UGF5bWVudE1ldGhvZFVwZGF0ZUluc3RhbmNlKCkgaW5p
dFdpdGhQYXltZW50U3VtbWFyeUl0ZW1zOl9zdW1tYXJ5SXRlbXMuZ2V0KCldKSA6IG5pbDsKKyAg
ICBfc3VtbWFyeUl0ZW1zID0gYWRvcHROUyhbW3VwZGF0ZSBwYXltZW50U3VtbWFyeUl0ZW1zXSBj
b3B5XSk7CisgICAgc3RkOjpleGNoYW5nZShfZGlkU2VsZWN0UGF5bWVudE1ldGhvZENvbXBsZXRp
b24sIG5pbCkodXBkYXRlLmdldCgpKTsKIH0KIAogLSAodm9pZCljb21wbGV0ZVBheW1lbnRTZXNz
aW9uOihQS1BheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzKXN0YXR1cyBlcnJvcnM6KE5TQXJyYXk8
TlNFcnJvciAqPiAqKWVycm9ycwpAQCAtNzMsMTcgKzczLDE3IEBAIC0gKHZvaWQpY29tcGxldGVQ
YXltZW50U2Vzc2lvbjooUEtQYXltZW50QXV0aG9yaXphdGlvblN0YXR1cylzdGF0dXMgZXJyb3Jz
OihOU0FyCiB9CiAtICh2b2lkKWNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uOihQS1Bh
eW1lbnRSZXF1ZXN0U2hpcHBpbmdDb250YWN0VXBkYXRlICopc2hpcHBpbmdDb250YWN0VXBkYXRl
CiB7Ci0gICAgUEtQYXltZW50UmVxdWVzdFNoaXBwaW5nQ29udGFjdFVwZGF0ZSAqdXBkYXRlID0g
c2hpcHBpbmdDb250YWN0VXBkYXRlID86IGFkb3B0TlMoW1BBTDo6YWxsb2NQS1BheW1lbnRSZXF1
ZXN0U2hpcHBpbmdDb250YWN0VXBkYXRlSW5zdGFuY2UoKSBpbml0V2l0aEVycm9yczpAW10gcGF5
bWVudFN1bW1hcnlJdGVtczpfc3VtbWFyeUl0ZW1zLmdldCgpIHNoaXBwaW5nTWV0aG9kczpfc2hp
cHBpbmdNZXRob2RzLmdldCgpXSkuYXV0b3JlbGVhc2UoKTsKLSAgICBfc3VtbWFyeUl0ZW1zID0g
YWRvcHROUyhbdXBkYXRlLnBheW1lbnRTdW1tYXJ5SXRlbXMgY29weV0pOwotICAgIF9zaGlwcGlu
Z01ldGhvZHMgPSBhZG9wdE5TKFt1cGRhdGUuc2hpcHBpbmdNZXRob2RzIGNvcHldKTsKLSAgICBz
dGQ6OmV4Y2hhbmdlKF9kaWRTZWxlY3RTaGlwcGluZ0NvbnRhY3RDb21wbGV0aW9uLCBuaWwpKHVw
ZGF0ZSk7CisgICAgYXV0byB1cGRhdGUgPSAhc2hpcHBpbmdDb250YWN0VXBkYXRlID8gYWRvcHRO
UyhbUEFMOjphbGxvY1BLUGF5bWVudFJlcXVlc3RTaGlwcGluZ0NvbnRhY3RVcGRhdGVJbnN0YW5j
ZSgpIGluaXRXaXRoRXJyb3JzOkBbXSBwYXltZW50U3VtbWFyeUl0ZW1zOl9zdW1tYXJ5SXRlbXMu
Z2V0KCkgc2hpcHBpbmdNZXRob2RzOl9zaGlwcGluZ01ldGhvZHMuZ2V0KCldKSA6IG5pbDsKKyAg
ICBfc3VtbWFyeUl0ZW1zID0gYWRvcHROUyhbW3VwZGF0ZSBwYXltZW50U3VtbWFyeUl0ZW1zXSBj
b3B5XSk7CisgICAgX3NoaXBwaW5nTWV0aG9kcyA9IGFkb3B0TlMoW1t1cGRhdGUgc2hpcHBpbmdN
ZXRob2RzXSBjb3B5XSk7CisgICAgc3RkOjpleGNoYW5nZShfZGlkU2VsZWN0U2hpcHBpbmdDb250
YWN0Q29tcGxldGlvbiwgbmlsKSh1cGRhdGUuZ2V0KCkpOwogfQogCiAtICh2b2lkKWNvbXBsZXRl
U2hpcHBpbmdNZXRob2RTZWxlY3Rpb246KFBLUGF5bWVudFJlcXVlc3RTaGlwcGluZ01ldGhvZFVw
ZGF0ZSAqKXNoaXBwaW5nTWV0aG9kVXBkYXRlCiB7Ci0gICAgUEtQYXltZW50UmVxdWVzdFNoaXBw
aW5nTWV0aG9kVXBkYXRlICp1cGRhdGUgPSBzaGlwcGluZ01ldGhvZFVwZGF0ZSA/OiBhZG9wdE5T
KFtQQUw6OmFsbG9jUEtQYXltZW50UmVxdWVzdFNoaXBwaW5nTWV0aG9kVXBkYXRlSW5zdGFuY2Uo
KSBpbml0V2l0aFBheW1lbnRTdW1tYXJ5SXRlbXM6X3N1bW1hcnlJdGVtcy5nZXQoKV0pLmF1dG9y
ZWxlYXNlKCk7Ci0gICAgX3N1bW1hcnlJdGVtcyA9IGFkb3B0TlMoW3VwZGF0ZS5wYXltZW50U3Vt
bWFyeUl0ZW1zIGNvcHldKTsKLSAgICBzdGQ6OmV4Y2hhbmdlKF9kaWRTZWxlY3RTaGlwcGluZ01l
dGhvZENvbXBsZXRpb24sIG5pbCkodXBkYXRlKTsKKyAgICBhdXRvIHVwZGF0ZSA9ICFzaGlwcGlu
Z01ldGhvZFVwZGF0ZSA/IGFkb3B0TlMoW1BBTDo6YWxsb2NQS1BheW1lbnRSZXF1ZXN0U2hpcHBp
bmdNZXRob2RVcGRhdGVJbnN0YW5jZSgpIGluaXRXaXRoUGF5bWVudFN1bW1hcnlJdGVtczpfc3Vt
bWFyeUl0ZW1zLmdldCgpXSkgOiBuaWw7CisgICAgX3N1bW1hcnlJdGVtcyA9IGFkb3B0TlMoW1t1
cGRhdGUgcGF5bWVudFN1bW1hcnlJdGVtc10gY29weV0pOworICAgIHN0ZDo6ZXhjaGFuZ2UoX2Rp
ZFNlbGVjdFNoaXBwaW5nTWV0aG9kQ29tcGxldGlvbiwgbmlsKSh1cGRhdGUuZ2V0KCkpOwogfQog
CiAtICh2b2lkKWludmFsaWRhdGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9OU0F0dHJpYnV0ZWRTdHJpbmcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvTlNBdHRyaWJ1dGVkU3RyaW5nLm1tCmluZGV4IGExMGQyMjg4YmU2MjBkMjIz
ZmIyOWVlNGEwNTU4ZGVlOTdiNjJiMTYuLjhlMDY4YTcwNDMxYzIyNmM0NWM1OTE2ZjgwMzNiYmIx
OTgzODNlNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9O
U0F0dHJpYnV0ZWRTdHJpbmcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL05TQXR0cmlidXRlZFN0cmluZy5tbQpAQCAtMTMzLDcgKzEzMyw3IEBAICsgKFdLV2ViVmll
d0NvbmZpZ3VyYXRpb24gKiljb25maWd1cmF0aW9uCiB7CiAgICAgaWYgKCFjb25maWd1cmF0aW9u
KSB7CiAgICAgICAgIGNvbmZpZ3VyYXRpb24gPSBbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxs
b2NdIGluaXRdOwotICAgICAgICBjb25maWd1cmF0aW9uLnByb2Nlc3NQb29sID0gYWRvcHROUyhb
W1dLUHJvY2Vzc1Bvb2wgYWxsb2NdIGluaXRdKS5hdXRvcmVsZWFzZSgpOworICAgICAgICBjb25m
aWd1cmF0aW9uLnByb2Nlc3NQb29sID0gYWRvcHROUyhbW1dLUHJvY2Vzc1Bvb2wgYWxsb2NdIGlu
aXRdKS5nZXQoKTsKICAgICAgICAgY29uZmlndXJhdGlvbi53ZWJzaXRlRGF0YVN0b3JlID0gW1dL
V2Vic2l0ZURhdGFTdG9yZSBub25QZXJzaXN0ZW50RGF0YVN0b3JlXTsKICAgICAgICAgY29uZmln
dXJhdGlvbi5tZWRpYVR5cGVzUmVxdWlyaW5nVXNlckFjdGlvbkZvclBsYXliYWNrID0gV0tBdWRp
b3Zpc3VhbE1lZGlhVHlwZUFsbDsKICAgICAgICAgY29uZmlndXJhdGlvbi5fYWxsb3dzSmF2YVNj
cmlwdE1hcmt1cCA9IE5POwpAQCAtMjY5LDEyICsyNjksMTggQEAgKyAodm9pZClfbG9hZEZyb21I
VE1MV2l0aE9wdGlvbnM6KE5TRGljdGlvbmFyeTxOU0F0dHJpYnV0ZWRTdHJpbmdEb2N1bWVudFJl
YWRpbmcKICAgICAgICAgICAgIHdlYlZpZXcgPSBuaWw7CiAKICAgICAgICAgICAgIC8vIE1ha2Ug
dGhlIHN0cmluZyBiZSBhbiBpbnN0YW5jZSBvZiB0aGUgcmVjZWl2ZXIgY2xhc3MuCi0gICAgICAg
ICAgICBpZiAoYXR0cmlidXRlZFN0cmluZyAmJiBzZWxmICE9IGF0dHJpYnV0ZWRTdHJpbmcuY2xh
c3MpCi0gICAgICAgICAgICAgICAgYXR0cmlidXRlZFN0cmluZyA9IGFkb3B0TlMoW1tzZWxmIGFs
bG9jXSBpbml0V2l0aEF0dHJpYnV0ZWRTdHJpbmc6YXR0cmlidXRlZFN0cmluZ10pLmF1dG9yZWxl
YXNlKCk7CisgICAgICAgICAgICBSZXRhaW5QdHI8TlNBdHRyaWJ1dGVkU3RyaW5nPiBuZXdBdHRy
aWJ1dGVkU3RyaW5nOworICAgICAgICAgICAgaWYgKGF0dHJpYnV0ZWRTdHJpbmcgJiYgc2VsZiAh
PSBhdHRyaWJ1dGVkU3RyaW5nLmNsYXNzKSB7CisgICAgICAgICAgICAgICAgbmV3QXR0cmlidXRl
ZFN0cmluZyA9IGFkb3B0TlMoW1tzZWxmIGFsbG9jXSBpbml0V2l0aEF0dHJpYnV0ZWRTdHJpbmc6
YXR0cmlidXRlZFN0cmluZ10pOworICAgICAgICAgICAgICAgIGF0dHJpYnV0ZWRTdHJpbmcgPSBu
ZXdBdHRyaWJ1dGVkU3RyaW5nLmdldCgpOworICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAv
LyBNYWtlIHRoZSBkb2N1bWVudCBhdHRyaWJ1dGVzIGltbXV0YWJsZS4KLSAgICAgICAgICAgIGlm
IChbYXR0cmlidXRlcyBpc0tpbmRPZkNsYXNzOk5TTXV0YWJsZURpY3Rpb25hcnkuY2xhc3NdKQot
ICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMgPSBhZG9wdE5TKFtbTlNEaWN0aW9uYXJ5IGFsbG9j
XSBpbml0V2l0aERpY3Rpb25hcnk6YXR0cmlidXRlc10pLmF1dG9yZWxlYXNlKCk7CisgICAgICAg
ICAgICBSZXRhaW5QdHI8TlNEaWN0aW9uYXJ5PE5TQXR0cmlidXRlZFN0cmluZ0RvY3VtZW50QXR0
cmlidXRlS2V5LCBpZD4+IG5ld0F0dHJpYnV0ZXM7CisgICAgICAgICAgICBpZiAoW2F0dHJpYnV0
ZXMgaXNLaW5kT2ZDbGFzczpOU011dGFibGVEaWN0aW9uYXJ5LmNsYXNzXSkgeworICAgICAgICAg
ICAgICAgIG5ld0F0dHJpYnV0ZXMgPSBhZG9wdE5TKFtbTlNEaWN0aW9uYXJ5IGFsbG9jXSBpbml0
V2l0aERpY3Rpb25hcnk6YXR0cmlidXRlc10pOworICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMg
PSBuZXdBdHRyaWJ1dGVzLmdldCgpOworICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcihhdHRyaWJ1dGVkU3RyaW5nLCBhdHRyaWJ1dGVzLCBlcnJvcik7CiAgICAg
ICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tC
cm93c2luZ0NvbnRleHRDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5tbQppbmRleCBlYWQ3YTdkZDZjZmRi
ZGUyMTNkYzE5MzI2NzJhMzA3NmNkZDFjMjI5Li4yMDFkNWIzZTJmNjM5ODZjNTIwMzA1ZThmMTc3
N2U3MzhmZDZmMWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIubW0KQEAgLTQ5NCwy
MSArNDk0LDIxIEBAIHN0YXRpYyB2b2lkIHNldFVwUGFnZVBvbGljeUNsaWVudChXS0Jyb3dzaW5n
Q29udGV4dENvbnRyb2xsZXIgKmJyb3dzaW5nQ29udGV4dCwKICAgICAgICAgYXV0byBwb2xpY3lE
ZWxlZ2F0ZSA9IGJyb3dzaW5nQ29udGV4dC0+X3BvbGljeURlbGVnYXRlLmdldCgpOwogCiAgICAg
ICAgIGlmIChbcG9saWN5RGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihicm93
c2luZ0NvbnRleHRDb250cm9sbGVyOmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246ZGVj
aXNpb25IYW5kbGVyOildKSB7Ci0gICAgICAgICAgICBOU0RpY3Rpb25hcnkgKmFjdGlvbkRpY3Rp
b25hcnkgPSBAeworICAgICAgICAgICAgYXV0byBhY3Rpb25EaWN0aW9uYXJ5ID0gcmV0YWluUHRy
KEB7CiAgICAgICAgICAgICAgICAgV0tBY3Rpb25Jc01haW5GcmFtZUtleTogQChXS0ZyYW1lSXNN
YWluRnJhbWUoZnJhbWUpKSwKICAgICAgICAgICAgICAgICBXS0FjdGlvbk5hdmlnYXRpb25UeXBl
S2V5OiBAKG5hdmlnYXRpb25UeXBlKSwKICAgICAgICAgICAgICAgICBXS0FjdGlvbk1vZGlmaWVy
RmxhZ3NLZXk6IEAobW9kaWZpZXJzKSwKICAgICAgICAgICAgICAgICBXS0FjdGlvbk1vdXNlQnV0
dG9uS2V5OiBAKG1vdXNlQnV0dG9uKSwKICAgICAgICAgICAgICAgICBXS0FjdGlvbk9yaWdpbmFs
VVJMUmVxdWVzdEtleTogYWRvcHROUyhXS1VSTFJlcXVlc3RDb3B5TlNVUkxSZXF1ZXN0KG9yaWdp
bmFsUmVxdWVzdCkpLmdldCgpLAogICAgICAgICAgICAgICAgIFdLQWN0aW9uVVJMUmVxdWVzdEtl
eTogYWRvcHROUyhXS1VSTFJlcXVlc3RDb3B5TlNVUkxSZXF1ZXN0KHJlcXVlc3QpKS5nZXQoKQot
ICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIH0pOwogCiAgICAgICAgICAgICBpZiAob3JpZ2lu
YXRpbmdGcmFtZSkgewotICAgICAgICAgICAgICAgIGFjdGlvbkRpY3Rpb25hcnkgPSBhZG9wdE5T
KFthY3Rpb25EaWN0aW9uYXJ5IG11dGFibGVDb3B5XSkuYXV0b3JlbGVhc2UoKTsKLSAgICAgICAg
ICAgICAgICBbKE5TTXV0YWJsZURpY3Rpb25hcnkgKilhY3Rpb25EaWN0aW9uYXJ5IHNldE9iamVj
dDpbTlNVUkwgX3dlYl9VUkxXaXRoV1RGU3RyaW5nOldlYktpdDo6dG9JbXBsKG9yaWdpbmF0aW5n
RnJhbWUpLT51cmwoKS5zdHJpbmcoKV0gZm9yS2V5OldLQWN0aW9uT3JpZ2luYXRpbmdGcmFtZVVS
TEtleV07CisgICAgICAgICAgICAgICAgYWN0aW9uRGljdGlvbmFyeSA9IGFkb3B0TlMoW2FjdGlv
bkRpY3Rpb25hcnkgbXV0YWJsZUNvcHldKTsKKyAgICAgICAgICAgICAgICBbKE5TTXV0YWJsZURp
Y3Rpb25hcnkgKilhY3Rpb25EaWN0aW9uYXJ5LmdldCgpIHNldE9iamVjdDpbTlNVUkwgX3dlYl9V
UkxXaXRoV1RGU3RyaW5nOldlYktpdDo6dG9JbXBsKG9yaWdpbmF0aW5nRnJhbWUpLT51cmwoKS5z
dHJpbmcoKV0gZm9yS2V5OldLQWN0aW9uT3JpZ2luYXRpbmdGcmFtZVVSTEtleV07CiAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIFtwb2xpY3lEZWxlZ2F0ZSBicm93c2lu
Z0NvbnRleHRDb250cm9sbGVyOmJyb3dzaW5nQ29udGV4dCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0
aW9uQWN0aW9uOmFjdGlvbkRpY3Rpb25hcnkgZGVjaXNpb25IYW5kbGVyOm1ha2VQb2xpY3lEZWNp
c2lvbkJsb2NrKGxpc3RlbmVyKV07CisgICAgICAgICAgICBbcG9saWN5RGVsZWdhdGUgYnJvd3Np
bmdDb250ZXh0Q29udHJvbGxlcjpicm93c2luZ0NvbnRleHQgZGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvbjphY3Rpb25EaWN0aW9uYXJ5LmdldCgpIGRlY2lzaW9uSGFuZGxlcjptYWtlUG9s
aWN5RGVjaXNpb25CbG9jayhsaXN0ZW5lcildOwogICAgICAgICB9IGVsc2UKICAgICAgICAgICAg
IFdLRnJhbWVQb2xpY3lMaXN0ZW5lclVzZShsaXN0ZW5lcik7CiAgICAgfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDYzMDI3ODI0M2Mz
MGU5YzUyMDUyMmQ2YzZlNjgyMGU0MmVhN2M5YzEuLmI4MzhiNjcxODQ1YTg1YTdhNWYwNzVmNTI2
NTRmNjBiNjg4MDM5YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlldy5tbQpAQCAtMjI1NSw3ICsyMjU1LDcgQEAgLSAodm9pZClfdGFrZVBERlNuYXBz
aG90V2l0aENvbmZpZ3VyYXRpb246KFdLU25hcHNob3RDb25maWd1cmF0aW9uICopc25hcHNob3RD
b24KICAgICAgICAgW3BkZkNvbmZpZ3VyYXRpb24gc2V0UmVjdDpzbmFwc2hvdENvbmZpZ3VyYXRp
b24ucmVjdF07CiAgICAgfQogCi0gICAgW3NlbGYgY3JlYXRlUERGV2l0aENvbmZpZ3VyYXRpb246
cGRmQ29uZmlndXJhdGlvbi5hdXRvcmVsZWFzZSgpIGNvbXBsZXRpb25IYW5kbGVyOmNvbXBsZXRp
b25IYW5kbGVyXTsKKyAgICBbc2VsZiBjcmVhdGVQREZXaXRoQ29uZmlndXJhdGlvbjpwZGZDb25m
aWd1cmF0aW9uLmdldCgpIGNvbXBsZXRpb25IYW5kbGVyOmNvbXBsZXRpb25IYW5kbGVyXTsKIH0K
IAogLSAodm9pZClfZ2V0UERGRmlyc3RQYWdlU2l6ZUluRnJhbWU6KF9XS0ZyYW1lSGFuZGxlICop
ZnJhbWUgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikoQ0dTaXplKSljb21wbGV0aW9uSGFuZGxl
cgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdU
ZXN0aW5nSU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdU
ZXN0aW5nSU9TLm1tCmluZGV4IGFiZWY5Y2UyN2U1NzkzYjhkNzZlNjlhN2NhNzc0Y2RlZTUyZGU5
MmUuLmVlOTkwZThlNzBlY2ViNmYwMGJmNzIzZWVlYzc0NzEyZTQwYmVmYmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3VGVzdGluZ0lPUy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld1Rlc3RpbmdJT1Mu
bW0KQEAgLTU4LDcgKzU4LDcgQEAgLSAodm9pZClfcmVxdWVzdFRleHRJbnB1dENvbnRleHRzSW5S
ZWN0OihDR1JlY3QpcmVjdCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikKICAgICAgICAgICAg
IGFkanVzdGVkQ29udGV4dC5ib3VuZGluZ1JlY3QgPSBbc3Ryb25nU2VsZiBjb252ZXJ0UmVjdDph
ZGp1c3RlZENvbnRleHQuYm91bmRpbmdSZWN0IGZyb21WaWV3OnN0cm9uZ1NlbGYtPl9jb250ZW50
Vmlldy5nZXQoKV07CiAgICAgICAgICAgICBbYWRqdXN0ZWRDb250ZXh0cyBhZGRPYmplY3Q6YWRv
cHROUyhbW19XS1RleHRJbnB1dENvbnRleHQgYWxsb2NdIF9pbml0V2l0aFRleHRJbnB1dENvbnRl
eHQ6YWRqdXN0ZWRDb250ZXh0XSkuZ2V0KCldOwogICAgICAgICB9Ci0gICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKGFkanVzdGVkQ29udGV4dHMuYXV0b3JlbGVhc2UoKSk7CisgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKGFkanVzdGVkQ29udGV4dHMuZ2V0KCkpOwogICAgIH1dOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0
c2NhcGVQbHVnaW5NYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRz
Y2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMubW0KaW5kZXggNDNiMzQ5OGVjNzY5NjM4Yjc5MTEz
N2EwN2EzMWVkZWM5ZjVkOWY2Ny4uYTBkOWExNWEzNjIyNzFmZjU5NTY0NDVjNjgwMDliMjBlOTE0
ZjRmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2Nh
cGUvbWFjL05ldHNjYXBlUGx1Z2luTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRzY2FwZVBsdWdpbk1hYy5tbQpAQCAtNDgxLDggKzQ4
MSw3IEBAIHN0YXRpYyBib29sIGlzRmxhZ3NDaGFuZ2VkRXZlbnQoY29uc3QgV2ViS2V5Ym9hcmRF
dmVudCYga2V5Ym9hcmRFdmVudCkKIAogc3RhdGljIE5QTlNTdHJpbmcgKmNvbnZlcnRUb05QTk5T
dHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAgQ0ZUeXBlUmVmIHJlbGVhc2VkU3Ry
aW5nID0gc3RyaW5nLmNyZWF0ZUNGU3RyaW5nKCkuYXV0b3JlbGVhc2UoKTsKLSAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8TlBOU1N0cmluZyo+KGNvbnN0X2Nhc3Q8dm9pZCo+KHJlbGVhc2VkU3RyaW5n
KSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PE5QTlNTdHJpbmcqPihzdGF0aWNfY2FzdDxOU1N0
cmluZyo+KHN0cmluZykpOwogfQogCiBzdGF0aWMgTlBDb2NvYUV2ZW50IGluaXRpYWxpemVLZXli
b2FyZEV2ZW50KGNvbnN0IFdlYktleWJvYXJkRXZlbnQmIGtleWJvYXJkRXZlbnQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV0tBY2Nlc3NpYmlsaXR5
V2ViUGFnZU9iamVjdE1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21h
Yy9XS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0TWFjLm1tCmluZGV4IDZkYWJjZmMyNzU0ZTVh
ZDNhNDE5MTgxYzJhNjE2Y2Q4MGFiMGQ3OTQuLjBiOTRhNDYxNDU4NTFkMzM4ZDc2MTllY2NkN2Qw
MGY5MWM2ODY5NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9XS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0TWFj
Lm1tCkBAIC05NSw3ICs5NSw3IEBAIEFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VO
RAogICAgICAgICByZXR1cm4gY2FjaGVkTmFtZXM7CiAjZW5kaWYKIAotICAgIGlkIG5hbWVzID0g
YXg6OnJldHJpZXZlVmFsdWVGcm9tTWFpblRocmVhZDxSZXRhaW5QdHI8aWQ+PihbUFJPVEVDVEVE
X1NFTEZdICgpIC0+IFJldGFpblB0cjxpZD4geworICAgIGF1dG8gbmFtZXMgPSBheDo6cmV0cmll
dmVWYWx1ZUZyb21NYWluVGhyZWFkPFJldGFpblB0cjxpZD4+KFtQUk9URUNURURfU0VMRl0gKCkg
LT4gUmV0YWluUHRyPGlkPiB7CiAgICAgICAgIGF1dG8gcGFnZSA9IHByb3RlY3RlZFNlbGYtPm1f
cGFnZTsKICAgICAgICAgaWYgKCFwYWdlKQogICAgICAgICAgICAgcmV0dXJuIEBbXTsKQEAgLTEw
NSwxMyArMTA1LDEzIEBAIEFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORAogICAg
ICAgICAgICAgcmV0dXJuIEBbXTsKIAogICAgICAgICByZXR1cm4gY3JlYXRlTlNBcnJheShjb3Jl
UGFnZS0+cGFnZU92ZXJsYXlDb250cm9sbGVyKCkuY29weUFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVz
TmFtZXModHJ1ZSkpOwotICAgIH0pLmF1dG9yZWxlYXNlKCk7CisgICAgfSk7CiAKICNpZiBFTkFC
TEUoQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFKQotICAgIHNlbGYuY2FjaGVkUGFyYW1ldGVy
aXplZEF0dHJpYnV0ZU5hbWVzID0gbmFtZXM7CisgICAgc2VsZi5jYWNoZWRQYXJhbWV0ZXJpemVk
QXR0cmlidXRlTmFtZXMgPSBuYW1lcy5nZXQoKTsKICNlbmRpZgogCi0gICAgcmV0dXJuIG5hbWVz
OworICAgIHJldHVybiBuYW1lcy5hdXRvcmVsZWFzZSgpOwogfQogCiBBTExPV19ERVBSRUNBVEVE
X0lNUExFTUVOVEFUSU9OU19CRUdJTgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvTWlzYy9XZWJOU09iamVjdEV4dHJhcy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01p
c2MvV2ViTlNPYmplY3RFeHRyYXMubW0KaW5kZXggMmY1YTk0NjBkMDFjNzEwYjJjMGIzYjdjNGM3
ZTdjZGZmZjJjYjg3MS4uYTYxNTMyOTEwYmNlZjBhMzRhNTEyNGJhMjg4ZjdjYTE0NDZkOGZiYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJOU09iamVjdEV4dHJh
cy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYk5TT2JqZWN0RXh0cmFz
Lm1tCkBAIC02Miw4ICs2Miw4IEBAIC0gKHZvaWQpZm9yd2FyZEludm9jYXRpb246KE5TSW52b2Nh
dGlvbiAqKWludm9jYXRpb24KICAgICBbaW52b2NhdGlvbiBzZXRUYXJnZXQ6dGFyZ2V0XTsKICAg
ICBbaW52b2NhdGlvbiBwZXJmb3JtU2VsZWN0b3JPbk1haW5UaHJlYWQ6QHNlbGVjdG9yKF93ZWJr
aXRfaW52b2tlQW5kSGFuZGxlRXhjZXB0aW9uOikgd2l0aE9iamVjdDpzZWxmIHdhaXRVbnRpbERv
bmU6WUVTXTsKICAgICBpZiAoZXhjZXB0aW9uKSB7Ci0gICAgICAgIGlkIGV4Y2VwdGlvblRvVGhy
b3cgPSBzdGQ6OmV4Y2hhbmdlKGV4Y2VwdGlvbiwgbmlsKS5hdXRvcmVsZWFzZSgpOwotICAgICAg
ICBAdGhyb3cgZXhjZXB0aW9uVG9UaHJvdzsKKyAgICAgICAgYXV0byBleGNlcHRpb25Ub1Rocm93
ID0gc3RkOjpleGNoYW5nZShleGNlcHRpb24sIG5pbCk7CisgICAgICAgIEB0aHJvdyBleGNlcHRp
b25Ub1Rocm93LmdldCgpOwogICAgIH0gZWxzZSBpZiAocmV0dXJuVHlwZUlzT2JqZWN0KGludm9j
YXRpb24pKSB7CiAgICAgICAgIC8vIF93ZWJraXRfaW52b2tlQW5kSGFuZGxlRXhjZXB0aW9uIHJl
dGFpbmVkIHRoZSByZXR1cm4gdmFsdWUgb24gdGhlIG1haW4gdGhyZWFkLgogICAgICAgICAvLyBO
b3cgYXV0b3JlbGVhc2UgaXQgb24gdGhlIGNhbGxpbmcgdGhyZWFkLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZpZXcubW0gYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luVmlldy5tbQpp
bmRleCBmMGQ5OThjMDk2MDQ4ZDlhZmQxMzZlZDIyMWFkNTFlNjE3ZTJiMWIzLi4xMmFhYTNkMDhm
NzdjOGNmOGQ0MWQ0NDNlMTJhYjZkMmUyNzEyM2IyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luVmlldy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luVmlldy5tbQpAQCAtMzU1
LDcgKzM1NSw3IEBAIC0gKEJPT0wpc2VuZEV2ZW50Oih2b2lkKilldmVudCBpc0RyYXdSZWN0OihC
T09MKWV2ZW50SXNEcmF3UmVjdAogICAgIH0KIAogICAgIC8vIFRlbXBvcmFyaWx5IHJldGFpbiBz
ZWxmIGluIGNhc2UgdGhlIHBsdWctaW4gdmlldyBpcyByZWxlYXNlZCB3aGlsZSBzZW5kaW5nIGFu
IGV2ZW50LiAKLSAgICByZXRhaW5QdHIoc2VsZikuYXV0b3JlbGVhc2UoKTsKKyAgICBhdXRvIHN0
cm9uZ1NlbGYgPSByZXRhaW5QdHIoc2VsZik7CiAKICAgICBCT09MIGFjY2VwdGVkRXZlbnQ7CiAg
ICAgW3NlbGYgd2lsbENhbGxQbHVnSW5GdW5jdGlvbl07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIubW0gYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xs
ZXIubW0KaW5kZXggMmIxOGY2OWNjMDEzZDc4ODYxN2I5MmUwNjFlZDg3MWNjYmI4MmRhMC4uYTlh
NjRmMDQ2MDg0MTc5NjMxZWIxYTRhMGEwODEyM2VkNWIzMTU0ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlkZW9GdWxsc2NyZWVu
Q29udHJvbGxlci5tbQpAQCAtMTUxLDcgKzE1MSw3IEBAIC0gKGlkKWluaXQKICAgICBfcGxheWJh
Y2tJbnRlcmZhY2UgPSBXZWJDb3JlOjpQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdDo6Y3Jl
YXRlKCpfcGxheWJhY2tNb2RlbCk7CiAgICAgX2NvbnRlbnRPdmVybGF5ID0gYWRvcHROUyhbW05T
VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0XSk7CiAgICAgX2NvbnRlbnRPdmVy
bGF5LmdldCgpLmxheWVyQ29udGVudHNSZWRyYXdQb2xpY3kgPSBOU1ZpZXdMYXllckNvbnRlbnRz
UmVkcmF3TmV2ZXI7Ci0gICAgX2NvbnRlbnRPdmVybGF5LmdldCgpLmxheWVyID0gYWRvcHROUyhb
W1dlYlZpZGVvRnVsbHNjcmVlbk92ZXJsYXlMYXllciBhbGxvY10gaW5pdF0pLmF1dG9yZWxlYXNl
KCk7CisgICAgX2NvbnRlbnRPdmVybGF5LmdldCgpLmxheWVyID0gYWRvcHROUyhbW1dlYlZpZGVv
RnVsbHNjcmVlbk92ZXJsYXlMYXllciBhbGxvY10gaW5pdF0pLmdldCgpOwogICAgIFtfY29udGVu
dE92ZXJsYXkgc2V0V2FudHNMYXllcjpZRVNdOwogICAgIFtfY29udGVudE92ZXJsYXkgc2V0QXV0
b3Jlc2l6aW5nTWFzazooTlNWaWV3V2lkdGhTaXphYmxlIHwgTlNWaWV3SGVpZ2h0U2l6YWJsZSld
OwogICAgIFtzZWxmIHdpbmRvd0RpZExvYWRdOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9n
IGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGQwMTBiZmE5MzZmYzljNDg5MTZkOTdjMzlmODFlZjRi
ZGEzNGY5YjcuLmIxNWYxMWY5ODkyYzExYWJkZDZiZWYyZTgyMjc5NDUxMDg5ZDExMzQgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3
NSBAQAorMjAyMS0wMi0xOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAg
ICAgIFJldmlldyByZW1haW5pbmcgdXNhZ2Ugb2YgYXV0b3JlbGVhc2UgdG8gbWFrZSBzdXJlIGl0
IGlzIG5lY2Vzc2FyeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjIyMTc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBUZXN0UnVubmVyU2hhcmVkL21hYy9OU1Bhc3RlYm9hcmRBZGRpdGlvbnMubW06Cisg
ICAgICAgICgrW05TUGFzdGVib2FyZCBfbW9kZXJuUGFzdGVib2FyZFR5cGU6XSk6CisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9KYXZhU2NyaXB0Q29yZS9KU1J1bkxvb3BUaW1lci5tbToK
KyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OnRyaWdnZXJHQyk6CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL1dlYkNvcmVOU1VSTFNlc3Npb24ubW06CisgICAgICAg
IChUZXN0V2ViS2l0QVBJOjpXZWJDb3JlTlNVUkxTZXNzaW9uVGVzdDo6U2V0VXApOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYU5hdmlnYXRpb24ubW06
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdC9tYWMvQ29udGV4dE1lbnVJbWdXaXRoVmlkZW8ubW06CisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL0NoYWxsZW5nZS5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ29udGVudFJ1bGVMaXN0Tm90
aWZpY2F0aW9uLm1tOgorICAgICAgICAoLVtDb250ZW50UnVsZUxpc3ROb3RpZmljYXRpb25EZWxl
Z2F0ZSB3ZWJWaWV3OnN0YXJ0VVJMU2NoZW1lVGFzazpdKToKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL0RldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnMubW06Cisg
ICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L0Rvd25sb2FkLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6d2ViVmlld1dpdGhEb3dubG9h
ZE1vbml0b3JTcGVlZE11bHRpcGxpZXIpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvRHJhZ0FuZERyb3BUZXN0cy5tbToKKyAgICAgICAgKHJ1bkRyYWdTdGFydERh
dGFUZXN0Q2FzZSk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9J
bkFwcEJyb3dzZXJQcml2YWN5Lm1tOgorICAgICAgICAoLVtJbkFwcEJyb3dzZXJTY2hlbWVIYW5k
bGVyIHdlYlZpZXc6c3RhcnRVUkxTY2hlbWVUYXNrOl0pOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21w
YXRpYmlsaXR5Lm1tOgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9JbmRleGVkREJUZW1wRmlsZVNpemUubW06CisgICAgICAgIChURVNU
KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0pJVEVuYWJsZWQu
bW06CisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL0xvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlci5tbToKKyAgICAgICAgKFRFU1QpOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTmV0d29ya1Byb2Nlc3Mu
bW06CisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJveHkubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpU
RVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1JlcGFyZW50
V2ViVmlld1RpbWVvdXQubW06CisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MubW06CisgICAgICAg
IChURVNUKToKKyAgICAgICAgKC1bUmVzb3VyY2VMb2FkU3RhdGlzdGljc1NjaGVtZUhhbmRsZXIg
d2ViVmlldzpzdGFydFVSTFNjaGVtZVRhc2s6XSk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9TYWZlQnJvd3NpbmcubW06CisgICAgICAgIChURVNUKToKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5t
bToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1RMU0RlcHJlY2F0
aW9uLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9UZXh0TWFuaXB1bGF0aW9uLm1tOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9VSURlbGVnYXRlLm1tOgorICAgICAgICAoVEVTVCk6CisgICAgICAgICgtW1VJVGVz
dERlbGVnYXRlIHdlYlZpZXc6c3RhcnRVUkxTY2hlbWVUYXNrOl0pOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVXNlckNvbnRlbnRDb250cm9sbGVyLm1tOgorICAg
ICAgICAod2ViVmlld0ZvclNjcmlwdE1lc3NhZ2VIYW5kbGVyTXVsdGlwbGVIYW5kbGVyUmVtb3Zh
bFRlc3QpOgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9XS0F0dGFjaG1lbnRUZXN0cy5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tQREZW
aWV3Lm1tOgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9XS1VSTFNjaGVtZUhhbmRsZXItMS5tbToKKyAgICAgICAgKC1bU3luY0Vycm9y
U2NoZW1lIHdlYlZpZXc6c3RhcnRVUkxTY2hlbWVUYXNrOl0pOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3RXZhbHVhdGVKYXZhU2NyaXB0Lm1tOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL0RyYWdBbmREcm9wVGVzdHNJT1MubW06
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL21hYy9Gb250TWFuYWdlclRlc3RzLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
VEVTVCk6CisKIDIwMjEtMDItMTkgIEFha2FzaCBKYWluICA8YWFrYXNoX2phaW5AYXBwbGUuY29t
PgogCiAgICAgICAgIFtld3NdIEVuc3VyZSB0aGF0IHRoZSB0ZXN0IGZhaWx1cmVzIGFyZSBsaXN0
ZWQgaW4gc29ydGVkIG9yZGVyCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L0phdmFTY3JpcHRDb3JlL0pTUnVuTG9vcFRpbWVyLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9KYXZhU2NyaXB0Q29yZS9KU1J1bkxvb3BUaW1lci5tbQppbmRleCBkNDkwOWY4NDY4OGE0
MTMzMDc1Y2U0YmY4NWNjNjY4OGIyMzQ3MmE3Li4yYjA4YzRhMmYwYjM0OGI4ZWNlNGRiYmMzOTE3
YjVhYzVhYTRiZjA2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL0phdmFT
Y3JpcHRDb3JlL0pTUnVuTG9vcFRpbWVyLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvSmF2YVNjcmlwdENvcmUvSlNSdW5Mb29wVGltZXIubW0KQEAgLTY1LDcgKzY1LDcgQEAgc3Rh
dGljIHZvaWQgdHJpZ2dlckdDKEpTQ29udGV4dCAqY29udGV4dCkKIHsKICAgICBAYXV0b3JlbGVh
c2Vwb29sIHsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCAxMDAwOyArK2kpCi0gICAg
ICAgICAgICBbSlNWYWx1ZSB2YWx1ZVdpdGhPYmplY3Q6YWRvcHROUyhbVGVzdE9iamVjdCBuZXdd
KS5hdXRvcmVsZWFzZSgpIGluQ29udGV4dDpjb250ZXh0XTsKKyAgICAgICAgICAgIFtKU1ZhbHVl
IHZhbHVlV2l0aE9iamVjdDphZG9wdE5TKFtUZXN0T2JqZWN0IG5ld10pLmdldCgpIGluQ29udGV4
dDpjb250ZXh0XTsKICAgICAgICAgSlNHYXJiYWdlQ29sbGVjdChbY29udGV4dCBKU0dsb2JhbENv
bnRleHRSZWZdKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvY29jb2EvV2ViQ29yZU5TVVJMU2Vzc2lvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9XZWJDb3JlTlNVUkxTZXNzaW9uLm1tCmluZGV4IGQ5
NjIzMDc0YjIxNTgwZTcxMmFmNDRjNmYzNDBkOWZlNjE2MWU5ZmIuLjM5YTQ0ZTAzYzEzNjg1NWY0
YzA4MWQyOGJjZjUzZmZlZWEyZjY1YTggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9jb2NvYS9XZWJDb3JlTlNVUkxTZXNzaW9uLm1tCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9XZWJDb3JlTlNVUkxTZXNzaW9uLm1tCkBA
IC0xMTgsNyArMTE4LDcgQEAgcHVibGljOgogICAgICAgICBKU0M6OmluaXRpYWxpemUoKTsKICNl
bmRpZgogICAgICAgICB2aWV3ID0gYWRvcHROUyhbW1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJh
bWU6TlNaZXJvUmVjdF0pOwotICAgICAgICBbdmlldyBzZXRGcmFtZUxvYWREZWxlZ2F0ZTphZG9w
dE5TKFtbVGVzdE5TVVJMU2Vzc2lvbkxvYWRlckRlbGVnYXRlIGFsbG9jXSBpbml0XSkuYXV0b3Jl
bGVhc2UoKV07CisgICAgICAgIFt2aWV3IHNldEZyYW1lTG9hZERlbGVnYXRlOmFkb3B0TlMoW1tU
ZXN0TlNVUkxTZXNzaW9uTG9hZGVyRGVsZWdhdGUgYWxsb2NdIGluaXRdKS5nZXQoKV07CiAKICAg
ICAgICAgZGlkTG9hZE1haW5SZXNvdXJjZSA9IGZhbHNlOwogICAgICAgICBbdmlldyBzZXRNYWlu
RnJhbWVVUkw6ZG9jdW1lbnRVUkwuYWJzb2x1dGVTdHJpbmddOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhTmF2aWdhdGlvbi5tbSBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYU5hdmlnYXRpb24ubW0K
aW5kZXggZGYxZTA1ZDJlMmUzOWZhMmFlNTEzOTgzYThiMGU4YjVmODkzYzZmMS4uOWJmZmRhYzY1
Nzk5NmUwOWIxNTc2YzE3MmRhZTcwODdjZGE4MGI1MyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhTmF2aWdhdGlvbi5tbQorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWFOYXZpZ2F0aW9uLm1tCkBA
IC0xMTUsNyArMTE1LDcgQEAgVEVTVChXZWJLaXQsIERlZmF1bHREZXZpY2VJZEhhc2hTYWx0c0Rp
cmVjdG9yeSkKICAgICB9CiAKICAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tX
ZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwotICAgIFtjb25maWd1cmF0aW9uIHNl
dFdlYnNpdGVEYXRhU3RvcmU6YWRvcHROUyhbW1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxvY10gX2lu
aXRXaXRoQ29uZmlndXJhdGlvbjp3ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5nZXQoKV0p
LmF1dG9yZWxlYXNlKCldOworICAgIFtjb25maWd1cmF0aW9uIHNldFdlYnNpdGVEYXRhU3RvcmU6
YWRvcHROUyhbW1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlv
bjp3ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5nZXQoKV0pLmdldCgpXTsKICAgICBhdXRv
IHByb2Nlc3NQb29sQ29uZmlnID0gYWRvcHROUyhbW19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlv
biBhbGxvY10gaW5pdF0pOwogICAgIGF1dG8gcHJlZmVyZW5jZXMgPSBbY29uZmlndXJhdGlvbiBw
cmVmZXJlbmNlc107CiAgICAgcHJlZmVyZW5jZXMuX21lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJl
Q29ubmVjdGlvbiA9IE5POwpAQCAtMTQ1LDcgKzE0NSw3IEBAIFRFU1QoV2ViS2l0LCBEZXZpY2VJ
ZEhhc2hTYWx0c0RpcmVjdG9yeSkKICAgICBbd2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24g
c2V0RGV2aWNlSWRIYXNoU2FsdHNTdG9yYWdlRGlyZWN0b3J5OnRlbXBEaXJdOwogICAgIAogICAg
IGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFs
bG9jXSBpbml0XSk7Ci0gICAgW2NvbmZpZ3VyYXRpb24gc2V0V2Vic2l0ZURhdGFTdG9yZTphZG9w
dE5TKFtbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOndl
YnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmdldCgpXSkuYXV0b3JlbGVhc2UoKV07CisgICAg
W2NvbmZpZ3VyYXRpb24gc2V0V2Vic2l0ZURhdGFTdG9yZTphZG9wdE5TKFtbV0tXZWJzaXRlRGF0
YVN0b3JlIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOndlYnNpdGVEYXRhU3RvcmVDb25m
aWd1cmF0aW9uLmdldCgpXSkuZ2V0KCldOwogICAgIGF1dG8gcHJvY2Vzc1Bvb2xDb25maWcgPSBh
ZG9wdE5TKFtbX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAg
YXV0byBwcmVmZXJlbmNlcyA9IFtjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXTsKICAgICBwcmVm
ZXJlbmNlcy5fbWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uID0gTk87CmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9tYWMvQ29udGV4dE1lbnVJ
bWdXaXRoVmlkZW8ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9tYWMvQ29u
dGV4dE1lbnVJbWdXaXRoVmlkZW8ubW0KaW5kZXggMmY0ZDdkZmNiODAwMmNjMmZmYjA0NzQ4ZDBl
ODYwNDU4ZjIyMTM5ZC4uNTg0OTIyMDZkODExM2UwN2FiY2U5YTk2MTJhZDdmZTFlYzIyYjU3YSAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvbWFjL0NvbnRleHRN
ZW51SW1nV2l0aFZpZGVvLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
L21hYy9Db250ZXh0TWVudUltZ1dpdGhWaWRlby5tbQpAQCAtNTUsNyArNTUsNyBAQCBuYW1lc3Bh
Y2UgVGVzdFdlYktpdEFQSSB7CiBURVNUKFdlYktpdCwgQ29udGV4dE1lbnVJbWdXaXRoVmlkZW8p
CiB7CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGlu
aXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCA4MDAsIDYwMCldKTsKLSAgICB3ZWJWaWV3Lmdl
dCgpLlVJRGVsZWdhdGUgPSBhZG9wdE5TKFtbQ29udGV4dE1lbnVJbWdXaXRoVmlkZW9EZWxlZ2F0
ZSBhbGxvY10gaW5pdF0pLmF1dG9yZWxlYXNlKCk7CisgICAgd2ViVmlldy5nZXQoKS5VSURlbGVn
YXRlID0gYWRvcHROUyhbW0NvbnRleHRNZW51SW1nV2l0aFZpZGVvRGVsZWdhdGUgYWxsb2NdIGlu
aXRdKS5nZXQoKTsKICAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6
QCJDb250ZXh0TWVudUltZ1dpdGhWaWRlbyJdOwogCiAgICAgTlNXaW5kb3cqIHdpbmRvdyA9IFt3
ZWJWaWV3IHdpbmRvd107CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL0NoYWxsZW5nZS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvQ2hhbGxlbmdlLm1tCmluZGV4IGQ2ZTM4M2UxYTBiZTJlNTVmNzkxYjRmNGFkODZmMTk0
M2FmMzBjOGIuLmU1NjM3ZjdmNTJkOTkxY2Q4NmY1OGIyNGExNDJjYTlkNjU2MjU2ZjIgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2hhbGxlbmdlLm1t
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2hhbGxlbmdlLm1t
CkBAIC01NTYsNyArNTU2LDcgQEAgVEVTVChXZWJLaXQsIEZhc3RTZXJ2ZXJUcnVzdCkKICAgICBh
dXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxv
Y10gaW5pdF0pOwogICAgIGF1dG8gZGF0YVN0b3JlQ29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tf
V0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIFtkYXRh
U3RvcmVDb25maWd1cmF0aW9uIHNldEZhc3RTZXJ2ZXJUcnVzdEV2YWx1YXRpb25FbmFibGVkOllF
U107Ci0gICAgW2NvbmZpZ3VyYXRpb24gc2V0V2Vic2l0ZURhdGFTdG9yZTphZG9wdE5TKFtbV0tX
ZWJzaXRlRGF0YVN0b3JlIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOmRhdGFTdG9yZUNv
bmZpZ3VyYXRpb24uZ2V0KCldKS5hdXRvcmVsZWFzZSgpXTsKKyAgICBbY29uZmlndXJhdGlvbiBz
ZXRXZWJzaXRlRGF0YVN0b3JlOmFkb3B0TlMoW1tXS1dlYnNpdGVEYXRhU3RvcmUgYWxsb2NdIF9p
bml0V2l0aENvbmZpZ3VyYXRpb246ZGF0YVN0b3JlQ29uZmlndXJhdGlvbi5nZXQoKV0pLmdldCgp
XTsKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0
aEZyYW1lOkNHUmVjdFplcm8gY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7CiAg
ICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1NlcnZlclRydXN0RGVsZWdhdGUgbmV3XSk7CiAg
ICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ29udGVudFJ1bGVM
aXN0Tm90aWZpY2F0aW9uLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9Db250ZW50UnVsZUxpc3ROb3RpZmljYXRpb24ubW0KaW5kZXggZGQ4NWJhMGNkYjExY2RiZmM3
OGM1MjAzYThkOWJhYzI2N2YxOGJlMS4uOWM1YjU1NmU4ZWE5NWMxMGI1NTg0NDg4ZmU1ZmVkNGQ5
YzEzODI2MCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9Db250ZW50UnVsZUxpc3ROb3RpZmljYXRpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9Db250ZW50UnVsZUxpc3ROb3RpZmljYXRpb24ubW0KQEAgLTg2
LDcgKzg2LDcgQEAgLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjb250ZW50
UnVsZUxpc3RXaXRoSWRlbnRpZmllcjooTlNTdHJpbmcgKikKIAogLSAodm9pZCl3ZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IHN0YXJ0VVJMU2NoZW1lVGFzazooaWQgPFdLVVJMU2NoZW1lVGFz
az4pdXJsU2NoZW1lVGFzawogewotICAgIFt1cmxTY2hlbWVUYXNrIGRpZFJlY2VpdmVSZXNwb25z
ZTphZG9wdE5TKFtbTlNVUkxSZXNwb25zZSBhbGxvY10gaW5pdFdpdGhVUkw6dXJsU2NoZW1lVGFz
ay5yZXF1ZXN0LlVSTCBNSU1FVHlwZTpAInRleHQvaHRtbCIgZXhwZWN0ZWRDb250ZW50TGVuZ3Ro
OjAgdGV4dEVuY29kaW5nTmFtZTpuaWxdKS5hdXRvcmVsZWFzZSgpXTsKKyAgICBbdXJsU2NoZW1l
VGFzayBkaWRSZWNlaXZlUmVzcG9uc2U6YWRvcHROUyhbW05TVVJMUmVzcG9uc2UgYWxsb2NdIGlu
aXRXaXRoVVJMOnVybFNjaGVtZVRhc2sucmVxdWVzdC5VUkwgTUlNRVR5cGU6QCJ0ZXh0L2h0bWwi
IGV4cGVjdGVkQ29udGVudExlbmd0aDowIHRleHRFbmNvZGluZ05hbWU6bmlsXSkuZ2V0KCldOwog
ICAgIFt1cmxTY2hlbWVUYXNrIGRpZEZpbmlzaF07CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9u
cy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRGV2aWNlTWFuYWdl
bWVudFJlc3RyaWN0aW9ucy5tbQppbmRleCBkN2IzNjk1N2YyOTE0NTU0YWE1N2IxZGQ0ZjNmN2Jm
ZjliOTE4NzM5Li43OWNkYzMxMTA2NDNmNTFiOTAyNDgxMmJmMzUzMjM0OTExNGI5ZThlIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0RldmljZU1hbmFn
ZW1lbnRSZXN0cmljdGlvbnMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9EZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zLm1tCkBAIC00Miw3ICs0Miw3IEBA
IFRFU1QoV2ViS2l0LCBEZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zKQogICAgIFtkYXRhU3Rv
cmVDb25maWd1cmF0aW9uIHNldEFsbExvYWRzQmxvY2tlZEJ5RGV2aWNlTWFuYWdlbWVudFJlc3Ry
aWN0aW9uc0ZvclRlc3Rpbmc6WUVTXTsKIAogICAgIFJldGFpblB0cjxXS1dlYlZpZXdDb25maWd1
cmF0aW9uPiB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1
cmF0aW9uIGFsbG9jXSBpbml0XSk7Ci0gICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFdlYnNp
dGVEYXRhU3RvcmU6YWRvcHROUyhbW1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxvY10gX2luaXRXaXRo
Q29uZmlndXJhdGlvbjpkYXRhU3RvcmVDb25maWd1cmF0aW9uLmdldCgpXSkuYXV0b3JlbGVhc2Uo
KV07CisgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFdlYnNpdGVEYXRhU3RvcmU6YWRvcHRO
UyhbW1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjpkYXRh
U3RvcmVDb25maWd1cmF0aW9uLmdldCgpXSkuZ2V0KCldOwogCiAgICAgUmV0YWluUHRyPFRlc3RX
S1dlYlZpZXc+IHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdp
dGhGcmFtZTpDR1JlY3RaZXJvIGNvbmZpZ3VyYXRpb246d2ViVmlld0NvbmZpZ3VyYXRpb24uZ2V0
KCkgYWRkVG9XaW5kb3c6WUVTXSk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvRG93bmxvYWQubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL0Rvd25sb2FkLm1tCmluZGV4IGI0MDM1NmZmMjQ3ODZjOGIzZmRiMjQwZTRm
MTM1ZGIyMjNkYWJiMGYuLjZmMDA4N2IwODk2ZjFkNjkxYmZjY2JlMDljNGJiZDg1N2ExNmUzYWQg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRG93bmxv
YWQubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Eb3dubG9h
ZC5tbQpAQCAtODk3LDcgKzg5Nyw3IEBAIFJldGFpblB0cjxXS1dlYlZpZXc+IHdlYlZpZXdXaXRo
RG93bmxvYWRNb25pdG9yU3BlZWRNdWx0aXBsaWVyKHNpemVfdCBtdWx0aXBsaWVyCiAgICAgYXV0
byBkYXRhU3RvcmVDb25maWd1cmF0aW9uID0gYWRvcHROUyhbX1dLV2Vic2l0ZURhdGFTdG9yZUNv
bmZpZ3VyYXRpb24gbmV3XSk7CiAgICAgW2RhdGFTdG9yZUNvbmZpZ3VyYXRpb24gc2V0VGVzdFNw
ZWVkTXVsdGlwbGllcjptdWx0aXBsaWVyXTsKICAgICBhdXRvIHdlYlZpZXdDb25maWd1cmF0aW9u
ID0gYWRvcHROUyhbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBuZXddKTsKLSAgICBbd2ViVmlld0Nv
bmZpZ3VyYXRpb24gc2V0V2Vic2l0ZURhdGFTdG9yZTphZG9wdE5TKFtbV0tXZWJzaXRlRGF0YVN0
b3JlIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOmRhdGFTdG9yZUNvbmZpZ3VyYXRpb24u
Z2V0KCldKS5hdXRvcmVsZWFzZSgpXTsKKyAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0V2Vi
c2l0ZURhdGFTdG9yZTphZG9wdE5TKFtbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbG9jXSBfaW5pdFdp
dGhDb25maWd1cmF0aW9uOmRhdGFTdG9yZUNvbmZpZ3VyYXRpb24uZ2V0KCldKS5nZXQoKV07CiAg
ICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFt
ZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOndlYlZpZXdDb25maWd1
cmF0aW9uLmdldCgpXSk7CiAgICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOm5hdmln
YXRpb25EZWxlZ2F0ZS5nZXQoKV07CiAgICAgW3dlYlZpZXcgY29uZmlndXJhdGlvbl0ucHJvY2Vz
c1Bvb2wuX2Rvd25sb2FkRGVsZWdhdGUgPSBtb25pdG9yRGVsZWdhdGUoKS5nZXQoKTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRHJhZ0FuZERyb3BU
ZXN0cy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRHJhZ0FuZERy
b3BUZXN0cy5tbQppbmRleCBlNzdlNWE1Mzk2NDc5NWRkYTM1NjY3M2Y5ODhkZjRiYTQ1ZjljODI3
Li44NDQzNmE4YmY0ZWVmMGNhNzAyZTRmNzMwZWQ5N2Q0MWI3YWEwZDYzIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0RyYWdBbmREcm9wVGVzdHMubW0K
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9EcmFnQW5kRHJvcFRl
c3RzLm1tCkBAIC0yMTUsNyArMjE1LDcgQEAgc3RhdGljIERyYWdTdGFydERhdGEgcnVuRHJhZ1N0
YXJ0RGF0YVRlc3RDYXNlKERyYWdBbmREcm9wU2ltdWxhdG9yICpzaW11bGF0b3IsIE4KICAgICBb
YWxsRGF0YSByZW1vdmVPYmplY3RGb3JLZXk6QCJ0ZXh0L2h0bWwiXTsKICAgICBbYWxsRGF0YSBy
ZW1vdmVPYmplY3RGb3JLZXk6QCJGaWxlcyJdOwogICAgIGlmIChbYWxsRGF0YSBjb3VudF0pCi0g
ICAgICAgIHJlc3VsdC5jdXN0b21EYXRhID0gYWxsRGF0YS5hdXRvcmVsZWFzZSgpOworICAgICAg
ICByZXN1bHQuY3VzdG9tRGF0YSA9IGFsbERhdGEuZ2V0KCk7CiAgICAgcmV0dXJuIHJlc3VsdDsK
IH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9J
bkFwcEJyb3dzZXJQcml2YWN5Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9JbkFwcEJyb3dzZXJQcml2YWN5Lm1tCmluZGV4IDczZDBjYzUyNWY0YWZmNmZkMjNkNmJk
ZTQ1MTYxZjYyODg3OGY1ZDEuLjRiMzY1ZThiYjkzN2VlZDE1ZTRhZmJjYjU2NGZiYzhiNzc4ZTU0
ZTggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5B
cHBCcm93c2VyUHJpdmFjeS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL0luQXBwQnJvd3NlclByaXZhY3kubW0KQEAgLTEyMCw3ICsxMjAsNyBAQCAtICh2b2lk
KXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgc3RhcnRVUkxTY2hlbWVUYXNrOihpZCA8V0tV
UkxTY2hlbWVUYXNrPil0YQogICAgIGVsc2UgaWYgKFt0YXNrLnJlcXVlc3QuVVJMLnBhdGggaXNF
cXVhbFRvU3RyaW5nOkAiL2luLWFwcC1icm93c2VyLXByaXZhY3ktdGVzdC1hYm91dC1ibGFuay1z
dWJmcmFtZSJdKQogICAgICAgICByZXNwb25zZSA9IEAiPGJvZHkgaWQgPSAnYm9keSc+PC9ib2R5
PjxpZnJhbWUgaWQ9J2lmcmFtZSc+PC9pZnJhbWU+PC9ib2R5PiI7CiAKLSAgICBbdGFzayBkaWRS
ZWNlaXZlUmVzcG9uc2U6YWRvcHROUyhbW05TVVJMUmVzcG9uc2UgYWxsb2NdIGluaXRXaXRoVVJM
OnRhc2sucmVxdWVzdC5VUkwgTUlNRVR5cGU6QCJ0ZXh0L2h0bWwiIGV4cGVjdGVkQ29udGVudExl
bmd0aDpyZXNwb25zZS5sZW5ndGggdGV4dEVuY29kaW5nTmFtZTpuaWxdKS5hdXRvcmVsZWFzZSgp
XTsKKyAgICBbdGFzayBkaWRSZWNlaXZlUmVzcG9uc2U6YWRvcHROUyhbW05TVVJMUmVzcG9uc2Ug
YWxsb2NdIGluaXRXaXRoVVJMOnRhc2sucmVxdWVzdC5VUkwgTUlNRVR5cGU6QCJ0ZXh0L2h0bWwi
IGV4cGVjdGVkQ29udGVudExlbmd0aDpyZXNwb25zZS5sZW5ndGggdGV4dEVuY29kaW5nTmFtZTpu
aWxdKS5nZXQoKV07CiAgICAgW3Rhc2sgZGlkUmVjZWl2ZURhdGE6W3Jlc3BvbnNlIGRhdGFVc2lu
Z0VuY29kaW5nOk5TVVRGOFN0cmluZ0VuY29kaW5nXV07CiAgICAgW3Rhc2sgZGlkRmluaXNoXTsK
IH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5k
ZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5Lm1tIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNr
d2FyZENvbXBhdGliaWxpdHkubW0KaW5kZXggZjNjM2Q4N2Q4NTAyZTUxN2Q4NWY2MGFmZDEzYTJh
MmE5MGIzNWYwOC4uNzQyMzE4YTg3NTJiNGFjMDdlNWFkYTQ1NmIwMzYzZDc5YzVhMGIwNCAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbmRleGVkREJT
dHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHkubW0KKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2Fy
ZENvbXBhdGliaWxpdHkubW0KQEAgLTk2LDcgKzk2LDcgQEAgVEVTVChJbmRleGVkREIsIFN0cnVj
dHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eSkKIAogICAgIFJldGFpblB0cjxfV0tXZWJz
aXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbj4gd2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24g
PSBhZG9wdE5TKFtbX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRd
KTsKICAgICB3ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5nZXQoKS5faW5kZXhlZERCRGF0
YWJhc2VEaXJlY3RvcnkgPSBpZGJQYXRoOwotICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCkud2Vic2l0
ZURhdGFTdG9yZSA9IGFkb3B0TlMoW1tXS1dlYnNpdGVEYXRhU3RvcmUgYWxsb2NdIF9pbml0V2l0
aENvbmZpZ3VyYXRpb246d2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uZ2V0KCldKS5hdXRv
cmVsZWFzZSgpOworICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCkud2Vic2l0ZURhdGFTdG9yZSA9IGFk
b3B0TlMoW1tXS1dlYnNpdGVEYXRhU3RvcmUgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246
d2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uZ2V0KCldKS5nZXQoKTsKIAogICAgIGlkYlBh
dGggPSBbaWRiUGF0aCBVUkxCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6QCJmaWxlX18wIl07CiAg
ICAgaWRiUGF0aCA9IFtpZGJQYXRoIFVSTEJ5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpAImJhY2t3
YXJkX2NvbXBhdGliaWxpdHkiXTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvSW5kZXhlZERCVGVtcEZpbGVTaXplLm1tIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbmRleGVkREJUZW1wRmlsZVNpemUubW0KaW5kZXggOTA2
MGZiOTI4OWY3ZGQ3YzY2YzY0NmY4OWIyNTFlNDZlYjU5MTZjMS4uNWJiMmI3Y2I4NGY4YTc3NGY1
MGQ3MzQ4Mjc5YmM0MWE2ZTVhOTdlOSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9JbmRleGVkREJUZW1wRmlsZVNpemUubW0KKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbmRleGVkREJUZW1wRmlsZVNpemUubW0KQEAg
LTcxLDcgKzcxLDcgQEAgVEVTVChJbmRleGVkREIsIEluZGV4ZWREQlRlbXBGaWxlU2l6ZSkKICAg
ICBhdXRvIHdlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uID0gYWRvcHROUyhbW19XS1dlYnNp
dGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgd2Vic2l0ZURhdGFT
dG9yZUNvbmZpZ3VyYXRpb24uZ2V0KCkuX2luZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5ID0gaWRi
UGF0aC5nZXQoKTsKIAotICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCkud2Vic2l0ZURhdGFTdG9yZSA9
IGFkb3B0TlMoW1tXS1dlYnNpdGVEYXRhU3RvcmUgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3VyYXRp
b246d2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uZ2V0KCldKS5hdXRvcmVsZWFzZSgpOwor
ICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCkud2Vic2l0ZURhdGFTdG9yZSA9IGFkb3B0TlMoW1tXS1dl
YnNpdGVEYXRhU3RvcmUgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246d2Vic2l0ZURhdGFT
dG9yZUNvbmZpZ3VyYXRpb24uZ2V0KCldKS5nZXQoKTsKICAgICBhdXRvIHR5cGVzID0gYWRvcHRO
UyhbW05TU2V0IGFsbG9jXSBpbml0V2l0aE9iamVjdHM6V0tXZWJzaXRlRGF0YVR5cGVJbmRleGVk
REJEYXRhYmFzZXMsIG5pbF0pOwogCiAgICAgW2NvbmZpZ3VyYXRpb24uZ2V0KCkud2Vic2l0ZURh
dGFTdG9yZSByZW1vdmVEYXRhT2ZUeXBlczp0eXBlcy5nZXQoKSBtb2RpZmllZFNpbmNlOltOU0Rh
dGUgZGlzdGFudFBhc3RdIGNvbXBsZXRpb25IYW5kbGVyOl4oKSB7CmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0pJVEVuYWJsZWQubW0gYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0pJVEVuYWJsZWQubW0KaW5kZXggYTg2NzIz
MDBjYWIwNjVlNjE3ZTEyZTZlNzdiZjAwNzQyMThlOTkyYi4uMDFlNzZlMWFjZjg2MTk5YzU2OGYx
YjZlZWUwZWMwMzU0MjRkNDhiMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9KSVRFbmFibGVkLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvSklURW5hYmxlZC5tbQpAQCAtNDksNyArNDksNyBAQCBURVNUKFdlYktp
dCwgSklURW5hYmxlZCkKICAgICBhdXRvIHByb2Nlc3NQb29sQ29uZmlndXJhdGlvbiA9IGFkb3B0
TlMoW19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbiBuZXddKTsKICAgICBbcHJvY2Vzc1Bvb2xD
b25maWd1cmF0aW9uIHNldEpJVEVuYWJsZWQ6Tk9dOwogICAgIGF1dG8gY29uZmlndXJhdGlvbiA9
IGFkb3B0TlMoW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gbmV3XSk7Ci0gICAgW2NvbmZpZ3VyYXRp
b24gc2V0UHJvY2Vzc1Bvb2w6YWRvcHROUyhbW1dLUHJvY2Vzc1Bvb2wgYWxsb2NdIF9pbml0V2l0
aENvbmZpZ3VyYXRpb246cHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmdldCgpXSkuYXV0b3JlbGVh
c2UoKV07CisgICAgW2NvbmZpZ3VyYXRpb24gc2V0UHJvY2Vzc1Bvb2w6YWRvcHROUyhbW1dLUHJv
Y2Vzc1Bvb2wgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246cHJvY2Vzc1Bvb2xDb25maWd1
cmF0aW9uLmdldCgpXSkuZ2V0KCldOwogICAgIGF1dG8gd2ViVmlld05vSklUID0gYWRvcHROUyhb
W1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAw
KSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKICAgICBjaGVja0pJVEVuYWJs
ZWQoV1RGTW92ZSh3ZWJWaWV3Tm9KSVQpLCBOTyk7CiAgICAgY2hlY2tKSVRFbmFibGVkKGFkb3B0
TlMoW1dLV2ViVmlldyBuZXddKSwgWUVTKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvTG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyLm1tIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Mb2NhbFN0b3JhZ2VEYXRhYmFzZVRy
YWNrZXIubW0KaW5kZXggMGZjY2M2ZjNlMDA3YTYzOWNiYTc3MDJhY2Q5ZWViMzQwNjliNzc5OC4u
ZmZkZjRhYjZiZTdhZDgyMGExZGEwMTFiYTgyMWI3ODIxNmU5MWI0NiAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Mb2NhbFN0b3JhZ2VEYXRhYmFzZVRy
YWNrZXIubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Mb2Nh
bFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXIubW0KQEAgLTU2LDcgKzU2LDcgQEAgVEVTVChXS1dlYlZp
ZXcsIExvY2FsU3RvcmFnZUZldGNoRGF0YVJlY29yZHMpCiAgICAgcmVhZHlUb0NvbnRpbnVlID0g
ZmFsc2U7CiAgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZp
Z3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tX
ZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNv
bmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0pOwotICAgIHdlYlZpZXcuZ2V0KCkuVUlE
ZWxlZ2F0ZSA9IGFkb3B0TlMoW1tMb2NhbFN0b3JhZ2VVSURlbGVnYXRlIGFsbG9jXSBpbml0XSku
YXV0b3JlbGVhc2UoKTsKKyAgICB3ZWJWaWV3LmdldCgpLlVJRGVsZWdhdGUgPSBhZG9wdE5TKFtb
TG9jYWxTdG9yYWdlVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pLmdldCgpOwogICAgIFt3ZWJWaWV3
IGxvYWRIVE1MU3RyaW5nOkAiPHNjcmlwdD5sb2NhbFN0b3JhZ2Uuc2V0SXRlbSgndGVzdEtleScs
ICd0ZXN0VmFsdWUnKTthbGVydChsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndGVzdEtleScpKTs8L3Nj
cmlwdD4iIGJhc2VVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJodHRwOi8vbG9jYWxob3N0Il1d
OwogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVhZHlUb0NvbnRpbnVlKTsKIApkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9OZXR3b3JrUHJv
Y2Vzcy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTmV0d29ya1By
b2Nlc3MubW0KaW5kZXggNDNmYzFlZGZhZDViYzNjYTI0MDRhNmRmNDc4YWFmMzg4NjNlMTM0Zi4u
NzU1YzlhZTExMGJmM2YzYTJiM2E1NjYwNmZiNTY3NzBhYmJlNjQ0NiAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9OZXR3b3JrUHJvY2Vzcy5tbQorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL05ldHdvcmtQcm9jZXNzLm1t
CkBAIC0zNiw3ICszNiw3IEBACiAKIFRFU1QoV2ViS2l0LCBOZXR3b3JrUHJvY2Vzc0VudGl0bGVt
ZW50cykKIHsKLSAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxv
Y10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9u
OmFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSkuYXV0b3JlbGVh
c2UoKV0pOworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9j
XSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246
YWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKS5nZXQoKV0pOwog
ICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkVGVzdFBhZ2VOYW1lZDpAInNpbXBsZSJdOwog
ICAgIFdLV2Vic2l0ZURhdGFTdG9yZSAqc3RvcmUgPSBbd2ViVmlldyBjb25maWd1cmF0aW9uXS53
ZWJzaXRlRGF0YVN0b3JlOwogICAgIGJvb2wgaGFzRW50aXRsZW1lbnQgPSBbc3RvcmUgX25ldHdv
cmtQcm9jZXNzSGFzRW50aXRsZW1lbnRGb3JUZXN0aW5nOkAiY29tLmFwcGxlLnJvb3RsZXNzLnN0
b3JhZ2UuV2ViS2l0TmV0d29ya2luZ1NhbmRib3giXTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0gYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0
aW9uLm1tCmluZGV4IGFkYmM5OWRkYzI4MjE1ZGFhZDAzYWU2M2NjYmM4MjFhNWMzYTc4NDQuLjRk
OGE3ZDU2ZjRiYmJkZWJkMTZjNzM1YmM2MTUyY2RmMjQxMzNkYWIgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24u
bW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dh
cE9uTmF2aWdhdGlvbi5tbQpAQCAtNTQ1NSw3ICs1NDU1LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwg
VXNlUHJld2FybWVkUHJvY2Vzc0FmdGVyVGVybWluYXRpbmdOZXR3b3JrUHJvY2VzcykKIAogICAg
IGF1dG8gd2ViVmlld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJh
dGlvbiBhbGxvY10gaW5pdF0pOwogICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRQcm9jZXNz
UG9vbDpwcm9jZXNzUG9vbC5nZXQoKV07Ci0gICAgd2ViVmlld0NvbmZpZ3VyYXRpb24uZ2V0KCku
d2Vic2l0ZURhdGFTdG9yZSA9IGFkb3B0TlMoW1tXS1dlYnNpdGVEYXRhU3RvcmUgYWxsb2NdIF9p
bml0V2l0aENvbmZpZ3VyYXRpb246d2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uZ2V0KCld
KS5hdXRvcmVsZWFzZSgpOworICAgIHdlYlZpZXdDb25maWd1cmF0aW9uLmdldCgpLndlYnNpdGVE
YXRhU3RvcmUgPSBhZG9wdE5TKFtbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbG9jXSBfaW5pdFdpdGhD
b25maWd1cmF0aW9uOndlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmdldCgpXSkuZ2V0KCk7
CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0
aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246d2ViVmlld0Nv
bmZpZ3VyYXRpb24uZ2V0KCldKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1BTT05O
YXZpZ2F0aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJveHkubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1Byb3h5Lm1tCmluZGV4IGE2MGVjNmE3OTkyMjRhOGJjZjNlMjA2
ZjY5MDg5YjdhYzQwYzYxMTQuLjdjNzA0ZjUxYmI3YmUyMWVhMTk3NzQ4YTM4YTI5ZjIxNDAyNDU2
ODkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJv
eHkubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm94eS5t
bQpAQCAtODQsNyArODQsNyBAQCBURVNUKFdlYktpdCwgSFRUUFNQcm94eSkKICAgICBbc3RvcmVD
b25maWd1cmF0aW9uIHNldEhUVFBTUHJveHk6W05TVVJMIFVSTFdpdGhTdHJpbmc6W05TU3RyaW5n
IHN0cmluZ1dpdGhGb3JtYXQ6QCJodHRwczovLzEyNy4wLjAuMTolZC8iLCBzZXJ2ZXIucG9ydCgp
XV1dOwogICAgIFtzdG9yZUNvbmZpZ3VyYXRpb24gc2V0QWxsb3dzU2VydmVyUHJlY29ubmVjdDpO
T107CiAgICAgYXV0byB2aWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1dLV2ViVmlld0NvbmZp
Z3VyYXRpb24gbmV3XSk7Ci0gICAgW3ZpZXdDb25maWd1cmF0aW9uIHNldFdlYnNpdGVEYXRhU3Rv
cmU6YWRvcHROUyhbW1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJh
dGlvbjpzdG9yZUNvbmZpZ3VyYXRpb24uZ2V0KCldKS5hdXRvcmVsZWFzZSgpXTsKKyAgICBbdmll
d0NvbmZpZ3VyYXRpb24gc2V0V2Vic2l0ZURhdGFTdG9yZTphZG9wdE5TKFtbV0tXZWJzaXRlRGF0
YVN0b3JlIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOnN0b3JlQ29uZmlndXJhdGlvbi5n
ZXQoKV0pLmdldCgpXTsKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFs
bG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMTAwLCAxMDApIGNvbmZpZ3VyYXRp
b246dmlld0NvbmZpZ3VyYXRpb24uZ2V0KCldKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHRO
UyhbUHJveHlEZWxlZ2F0ZSBuZXddKTsKICAgICBbd2ViVmlldyBzZXROYXZpZ2F0aW9uRGVsZWdh
dGU6ZGVsZWdhdGUuZ2V0KCldOwpAQCAtMTMxLDcgKzEzMSw3IEBAIFRFU1QoV2ViS2l0LCBIVFRQ
UHJveHlBdXRoZW50aWNhdGlvbikKICAgICBbc3RvcmVDb25maWd1cmF0aW9uIHNldFByZXZlbnRz
U3lzdGVtSFRUUFByb3h5QXV0aGVudGljYXRpb246WUVTXTsKIAogICAgIGF1dG8gdmlld0NvbmZp
Z3VyYXRpb24gPSBhZG9wdE5TKFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIG5ld10pOwotICAgIFt2
aWV3Q29uZmlndXJhdGlvbiBzZXRXZWJzaXRlRGF0YVN0b3JlOmFkb3B0TlMoW1tXS1dlYnNpdGVE
YXRhU3RvcmUgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246c3RvcmVDb25maWd1cmF0aW9u
LmdldCgpXSkuYXV0b3JlbGVhc2UoKV07CisgICAgW3ZpZXdDb25maWd1cmF0aW9uIHNldFdlYnNp
dGVEYXRhU3RvcmU6YWRvcHROUyhbW1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxvY10gX2luaXRXaXRo
Q29uZmlndXJhdGlvbjpzdG9yZUNvbmZpZ3VyYXRpb24uZ2V0KCldKS5nZXQoKV07CiAgICAgYXV0
byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1Jl
Y3RNYWtlKDAsIDAsIDEwMCwgMTAwKSBjb25maWd1cmF0aW9uOnZpZXdDb25maWd1cmF0aW9uLmdl
dCgpXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1Byb3h5RGVsZWdhdGUgbmV3XSk7
CiAgICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKQEAg
LTE3NCw3ICsxNzQsNyBAQCBURVNUKFdlYktpdCwgU2VjdXJlUHJveHlDb25uZWN0aW9uKQogICAg
IFtzdG9yZUNvbmZpZ3VyYXRpb24gc2V0UmVxdWlyZXNTZWN1cmVIVFRQU1Byb3h5Q29ubmVjdGlv
bjpZRVNdOwogCiAgICAgYXV0byB2aWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1dLV2ViVmll
d0NvbmZpZ3VyYXRpb24gbmV3XSk7Ci0gICAgW3ZpZXdDb25maWd1cmF0aW9uIHNldFdlYnNpdGVE
YXRhU3RvcmU6YWRvcHROUyhbW1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxvY10gX2luaXRXaXRoQ29u
ZmlndXJhdGlvbjpzdG9yZUNvbmZpZ3VyYXRpb24uZ2V0KCldKS5hdXRvcmVsZWFzZSgpXTsKKyAg
ICBbdmlld0NvbmZpZ3VyYXRpb24gc2V0V2Vic2l0ZURhdGFTdG9yZTphZG9wdE5TKFtbV0tXZWJz
aXRlRGF0YVN0b3JlIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOnN0b3JlQ29uZmlndXJh
dGlvbi5nZXQoKV0pLmdldCgpXTsKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJW
aWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMTAwLCAxMDApIGNvbmZp
Z3VyYXRpb246dmlld0NvbmZpZ3VyYXRpb24uZ2V0KCldKTsKICAgICBbd2ViVmlldyBsb2FkUmVx
dWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAi
aHR0cHM6Ly9leGFtcGxlLmNvbS8iXV1dOwogICAgIHdoaWxlICghcmVjZWl2ZWRWYWxpZENsaWVu
dEhlbGxvKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9SZXBhcmVudFdlYlZpZXdUaW1lb3V0Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9SZXBhcmVudFdlYlZpZXdUaW1lb3V0Lm1tCmluZGV4IGRjYmZkNTA3OTU0NmE0
NmMzNjk5ZjE4OGQ4YjZmMzBiN2EyZWVkNGMuLmM1NTQyNWMwMDIwZDg3ZjA3MWMwZDI1MGM4MDNh
MWY5MzdkZDgxNTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvUmVwYXJlbnRXZWJWaWV3VGltZW91dC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1JlcGFyZW50V2ViVmlld1RpbWVvdXQubW0KQEAgLTM4LDcgKzM4
LDcgQEAgVEVTVChXZWJLaXQsIFJlcGFyZW50V2ViVmlld1RpbWVvdXQpCiAgICAgW3Byb2Nlc3NQ
b29sQ29uZmlndXJhdGlvbiBzZXRJZ25vcmVTeW5jaHJvbm91c01lc3NhZ2luZ1RpbWVvdXRzRm9y
VGVzdGluZzpZRVNdOwogCiAgICAgUmV0YWluUHRyPFdLV2ViVmlld0NvbmZpZ3VyYXRpb24+IGNv
bmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5p
dF0pOwotICAgIFtjb25maWd1cmF0aW9uIHNldFByb2Nlc3NQb29sOmFkb3B0TlMoW1tXS1Byb2Nl
c3NQb29sIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOnByb2Nlc3NQb29sQ29uZmlndXJh
dGlvbi5nZXQoKV0pLmF1dG9yZWxlYXNlKCldOworICAgIFtjb25maWd1cmF0aW9uIHNldFByb2Nl
c3NQb29sOmFkb3B0TlMoW1tXS1Byb2Nlc3NQb29sIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0
aW9uOnByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5nZXQoKV0pLmdldCgpXTsKIAogICAgIFJldGFp
blB0cjxUZXN0V0tXZWJWaWV3PiB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxs
b2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAxMDAsIDEwMCkgY29uZmlndXJhdGlv
bjpjb25maWd1cmF0aW9uLmdldCgpIGFkZFRvV2luZG93OllFU10pOwogICAgIFt3ZWJWaWV3IHN5
bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAImhlbGxvIl07CmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MubW0g
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Jlc291cmNlTG9hZFN0YXRp
c3RpY3MubW0KaW5kZXggOTE0Mjg0NjVhZjA3MTQwMDhjYWYzZjY5NmJkZDAzZTRjYTZmNTc4ZS4u
YWYxYWIzM2U2NmUyNDk1M2E0MjU1Y2ZlODYxODZiNDRmYWQ2ZTY0YyAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXNvdXJjZUxvYWRTdGF0aXN0aWNz
Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVzb3VyY2VM
b2FkU3RhdGlzdGljcy5tbQpAQCAtMzI2LDcgKzMyNiw3IEBAIFRFU1QoUmVzb3VyY2VMb2FkU3Rh
dGlzdGljcywgUmVtb3ZlU2Vzc2lvbklEKQogewogICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFk
b3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgYXV0byB3
ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tfV0tXZWJzaXRlRGF0YVN0
b3JlQ29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwotICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCku
d2Vic2l0ZURhdGFTdG9yZSA9IGFkb3B0TlMoW1tXS1dlYnNpdGVEYXRhU3RvcmUgYWxsb2NdIF9p
bml0V2l0aENvbmZpZ3VyYXRpb246d2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uZ2V0KCld
KS5hdXRvcmVsZWFzZSgpOworICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCkud2Vic2l0ZURhdGFTdG9y
ZSA9IGFkb3B0TlMoW1tXS1dlYnNpdGVEYXRhU3RvcmUgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3Vy
YXRpb246d2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uZ2V0KCldKS5nZXQoKTsKIAogICAg
IGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6
TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdl
dCgpXSk7CiAKQEAgLTU4Myw3ICs1ODMsNyBAQCBURVNUKFJlc291cmNlTG9hZFN0YXRpc3RpY3Ms
IERhdGFUYXNrSWRlbnRpZmllckNvbGxpc2lvbikKIFRFU1QoUmVzb3VyY2VMb2FkU3RhdGlzdGlj
cywgTm9NZXNzYWdlc1doZW5Ob3RUZXN0aW5nKQogewogICAgIGF1dG8gY29uZmlndXJhdGlvbiA9
IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7Ci0gICAgYXV0
byBkYXRhU3RvcmUgPSBhZG9wdE5TKFtbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbG9jXSBfaW5pdFdp
dGhDb25maWd1cmF0aW9uOmFkb3B0TlMoW1tfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlv
biBhbGxvY10gaW5pdF0pLmF1dG9yZWxlYXNlKCldKTsKKyAgICBhdXRvIGRhdGFTdG9yZSA9IGFk
b3B0TlMoW1tXS1dlYnNpdGVEYXRhU3RvcmUgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246
YWRvcHROUyhbW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSku
Z2V0KCldKTsKICAgICBbY29uZmlndXJhdGlvbiBzZXRXZWJzaXRlRGF0YVN0b3JlOmRhdGFTdG9y
ZS5nZXQoKV07CiAgICAgW2RhdGFTdG9yZSBfc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJs
ZWQ6WUVTXTsKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxv
Y10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDEwMCwgMTAwKSBjb25maWd1cmF0aW9u
OmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKQEAgLTEyNzksNyArMTI3OSw3IEBAIFRFU1QoUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcywgU3RvcmVTdXNwZW5zaW9uKQogewogICAgIGF1dG8gKnNoYXJlZFBy
b2Nlc3NQb29sID0gW1dLUHJvY2Vzc1Bvb2wgX3NoYXJlZFByb2Nlc3NQb29sXTsKICAgICBhdXRv
ICpkYXRhU3RvcmUxID0gW1dLV2Vic2l0ZURhdGFTdG9yZSBkZWZhdWx0RGF0YVN0b3JlXTsKLSAg
ICBhdXRvIGRhdGFTdG9yZTIgPSBhZG9wdE5TKFtbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbG9jXSBf
aW5pdFdpdGhDb25maWd1cmF0aW9uOmFkb3B0TlMoW1tfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmln
dXJhdGlvbiBhbGxvY10gaW5pdF0pLmF1dG9yZWxlYXNlKCldKTsKKyAgICBhdXRvIGRhdGFTdG9y
ZTIgPSBhZG9wdE5TKFtbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1
cmF0aW9uOmFkb3B0TlMoW1tfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiBhbGxvY10g
aW5pdF0pLmdldCgpXSk7CiAKICAgICBbZGF0YVN0b3JlMSBfc2V0UmVzb3VyY2VMb2FkU3RhdGlz
dGljc0VuYWJsZWQ6WUVTXTsKICAgICBbZGF0YVN0b3JlMiBfc2V0UmVzb3VyY2VMb2FkU3RhdGlz
dGljc0VuYWJsZWQ6WUVTXTsKQEAgLTEzMjUsNyArMTMyNSw3IEBAIC0gKHZvaWQpd2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVmlldyBzdGFydFVSTFNjaGVtZVRhc2s6KGlkIDxXS1VSTFNjaGVtZVRh
c2s+KXRhCiAgICAgZWxzZSBpZiAoW3Rhc2sucmVxdWVzdC5VUkwucGF0aCBpc0VxdWFsVG9TdHJp
bmc6QCIvdHAtbG9hZCJdKQogICAgICAgICByZXNwb25zZSA9IEAiPGJvZHk+PC9ib2R5PiI7CiAK
LSAgICBbdGFzayBkaWRSZWNlaXZlUmVzcG9uc2U6YWRvcHROUyhbW05TVVJMUmVzcG9uc2UgYWxs
b2NdIGluaXRXaXRoVVJMOnRhc2sucmVxdWVzdC5VUkwgTUlNRVR5cGU6QCJ0ZXh0L2h0bWwiIGV4
cGVjdGVkQ29udGVudExlbmd0aDpyZXNwb25zZS5sZW5ndGggdGV4dEVuY29kaW5nTmFtZTpuaWxd
KS5hdXRvcmVsZWFzZSgpXTsKKyAgICBbdGFzayBkaWRSZWNlaXZlUmVzcG9uc2U6YWRvcHROUyhb
W05TVVJMUmVzcG9uc2UgYWxsb2NdIGluaXRXaXRoVVJMOnRhc2sucmVxdWVzdC5VUkwgTUlNRVR5
cGU6QCJ0ZXh0L2h0bWwiIGV4cGVjdGVkQ29udGVudExlbmd0aDpyZXNwb25zZS5sZW5ndGggdGV4
dEVuY29kaW5nTmFtZTpuaWxdKS5nZXQoKV07CiAgICAgW3Rhc2sgZGlkUmVjZWl2ZURhdGE6W3Jl
c3BvbnNlIGRhdGFVc2luZ0VuY29kaW5nOk5TVVRGOFN0cmluZ0VuY29kaW5nXV07CiAgICAgW3Rh
c2sgZGlkRmluaXNoXTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvU2FmZUJyb3dzaW5nLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9TYWZlQnJvd3NpbmcubW0KaW5kZXggY2VhODU5YjU5ZDliYjYyOWE2NmEwYWY0
ZTQ5OTQwNmU5NzE4ODllOS4uNmI5Y2Y1ZDRiODUxOWEzNTFmMDk0ZTM0ODA4Nzk1ODUyYWE3ZGZj
ZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TYWZl
QnJvd3NpbmcubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9T
YWZlQnJvd3NpbmcubW0KQEAgLTMwOCw3ICszMDgsNyBAQCBURVNUKFNhZmVCcm93c2luZywgU2hv
d1dhcm5pbmdTUEkpCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbV0tXZWJWaWV3IG5ld10p
OwogICAgIGF1dG8gc2hvd1dhcm5pbmcgPSBeewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlckNh
bGxlZCA9IGZhbHNlOwotICAgICAgICBbd2ViVmlldyBfc2hvd1NhZmVCcm93c2luZ1dhcm5pbmdX
aXRoVVJMOm5pbCB0aXRsZTpAInRlc3QgdGl0bGUiIHdhcm5pbmc6QCJ0ZXN0IHdhcm5pbmciIGRl
dGFpbHM6YWRvcHROUyhbW05TQXR0cmlidXRlZFN0cmluZyBhbGxvY10gaW5pdFdpdGhTdHJpbmc6
QCJ0ZXN0IGRldGFpbHMiXSkuYXV0b3JlbGVhc2UoKSBjb21wbGV0aW9uSGFuZGxlcjpeKEJPT0wg
c2hvdWxkQ29udGludWUpIHsKKyAgICAgICAgW3dlYlZpZXcgX3Nob3dTYWZlQnJvd3NpbmdXYXJu
aW5nV2l0aFVSTDpuaWwgdGl0bGU6QCJ0ZXN0IHRpdGxlIiB3YXJuaW5nOkAidGVzdCB3YXJuaW5n
IiBkZXRhaWxzOmFkb3B0TlMoW1tOU0F0dHJpYnV0ZWRTdHJpbmcgYWxsb2NdIGluaXRXaXRoU3Ry
aW5nOkAidGVzdCBkZXRhaWxzIl0pLmdldCgpIGNvbXBsZXRpb25IYW5kbGVyOl4oQk9PTCBzaG91
bGRDb250aW51ZSkgewogICAgICAgICAgICAgc2hvdWxkQ29udGludWVWYWx1ZSA9IHNob3VsZENv
bnRpbnVlOwogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXJDYWxsZWQgPSB0cnVlOwogICAg
ICAgICB9XTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvU2VydmljZVdvcmtlckJhc2ljLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0KaW5kZXggZGQ3MDc2MjU2YjVmNDJlYzE2MDcx
OWZjMDJmODQ3NWQxYTM0ZmE2NS4uN2Y0YWM5NmZhN2M3M2E4NDIyYTRjNGU4ZmY3ZTYxMDVlOWU4
ODBkZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9T
ZXJ2aWNlV29ya2VyQmFzaWMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0KQEAgLTE0MDcsNyArMTQwNyw3IEBAIFRFU1Qo
U2VydmljZVdvcmtlcnMsIE5vbkRlZmF1bHRTZXNzaW9uSUQpCiAgICAgd2Vic2l0ZURhdGFTdG9y
ZUNvbmZpZ3VyYXRpb24uZ2V0KCkuX3NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3Rvcnkg
PSBzZXJ2aWNlV29ya2Vyc1BhdGg7CiAgICAgd2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24u
Z2V0KCkuX2luZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5ID0gaWRiUGF0aDsKIAotICAgIGNvbmZp
Z3VyYXRpb24uZ2V0KCkud2Vic2l0ZURhdGFTdG9yZSA9IGFkb3B0TlMoW1tXS1dlYnNpdGVEYXRh
U3RvcmUgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246d2Vic2l0ZURhdGFTdG9yZUNvbmZp
Z3VyYXRpb24uZ2V0KCldKS5hdXRvcmVsZWFzZSgpOworICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCku
d2Vic2l0ZURhdGFTdG9yZSA9IGFkb3B0TlMoW1tXS1dlYnNpdGVEYXRhU3RvcmUgYWxsb2NdIF9p
bml0V2l0aENvbmZpZ3VyYXRpb246d2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uZ2V0KCld
KS5nZXQoKTsKIAogICAgIFJldGFpblB0cjxTV01lc3NhZ2VIYW5kbGVyV2l0aEV4cGVjdGVkTWVz
c2FnZT4gbWVzc2FnZUhhbmRsZXIgPSBhZG9wdE5TKFtbU1dNZXNzYWdlSGFuZGxlcldpdGhFeHBl
Y3RlZE1lc3NhZ2UgYWxsb2NdIGluaXRdKTsKICAgICBbW2NvbmZpZ3VyYXRpb24gdXNlckNvbnRl
bnRDb250cm9sbGVyXSBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjptZXNzYWdlSGFuZGxlci5nZXQo
KSBuYW1lOkAic3ciXTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvVExTRGVwcmVjYXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1RMU0RlcHJlY2F0aW9uLm1tCmluZGV4IDU1ODcyNWQ0NTViNDViNWFkY2RlYmZk
NWE5NTFjNjU1OGFlZTkyOGIuLjRhNWNiOTAyZmQ3NzMzNjA4OGVlZmJhZDRiNjJkMjFjZjgxMTEz
NWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVExT
RGVwcmVjYXRpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9UTFNEZXByZWNhdGlvbi5tbQpAQCAtNDEzLDcgKzQxMyw3IEBAIFRFU1QoVExTVmVyc2lvbiwg
RGlkTmVnb3RpYXRlTW9kZXJuVExTKQogICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMo
W1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gbmV3XSk7CiAgICAgYXV0byBkYXRhU3RvcmVDb25maWd1
cmF0aW9uID0gYWRvcHROUyhbX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gbmV3XSk7
CiAgICAgW2RhdGFTdG9yZUNvbmZpZ3VyYXRpb24gc2V0RmFzdFNlcnZlclRydXN0RXZhbHVhdGlv
bkVuYWJsZWQ6WUVTXTsKLSAgICBbY29uZmlndXJhdGlvbiBzZXRXZWJzaXRlRGF0YVN0b3JlOmFk
b3B0TlMoW1tXS1dlYnNpdGVEYXRhU3RvcmUgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246
ZGF0YVN0b3JlQ29uZmlndXJhdGlvbi5nZXQoKV0pLmF1dG9yZWxlYXNlKCldOworICAgIFtjb25m
aWd1cmF0aW9uIHNldFdlYnNpdGVEYXRhU3RvcmU6YWRvcHROUyhbW1dLV2Vic2l0ZURhdGFTdG9y
ZSBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjpkYXRhU3RvcmVDb25maWd1cmF0aW9uLmdl
dCgpXSkuZ2V0KCldOwogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxs
b2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlv
bjpjb25maWd1cmF0aW9uLmdldCgpXSk7CiAgICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVn
YXRlOmRlbGVnYXRlLmdldCgpXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpzZXJ2ZXIucmVx
dWVzdCgpXTsKQEAgLTQ3Myw3ICs0NzMsNyBAQCBURVNUKFRMU1ZlcnNpb24sIExlZ2FjeVN1YnJl
c291cmNlcykKICAgICBhdXRvIGRhdGFTdG9yZUNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbX1dL
V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXROb25QZXJzaXN0ZW50Q29u
ZmlndXJhdGlvbl0pOwogICAgIFtkYXRhU3RvcmVDb25maWd1cmF0aW9uIHNldEZhc3RTZXJ2ZXJU
cnVzdEV2YWx1YXRpb25FbmFibGVkOllFU107CiAgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlv
biA9IGFkb3B0TlMoW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gbmV3XSk7Ci0gICAgW3dlYlZpZXdD
b25maWd1cmF0aW9uIHNldFdlYnNpdGVEYXRhU3RvcmU6YWRvcHROUyhbW1dLV2Vic2l0ZURhdGFT
dG9yZSBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjpkYXRhU3RvcmVDb25maWd1cmF0aW9u
LmdldCgpXSkuYXV0b3JlbGVhc2UoKV07CisgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFdl
YnNpdGVEYXRhU3RvcmU6YWRvcHROUyhbW1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxvY10gX2luaXRX
aXRoQ29uZmlndXJhdGlvbjpkYXRhU3RvcmVDb25maWd1cmF0aW9uLmdldCgpXSkuZ2V0KCldOwog
ICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJh
bWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjp3ZWJWaWV3Q29uZmln
dXJhdGlvbi5nZXQoKV0pOwogCiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1Rlc3ROYXZp
Z2F0aW9uRGVsZWdhdGUgbmV3XSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1RleHRNYW5pcHVsYXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1RleHRNYW5pcHVsYXRpb24ubW0KaW5kZXggZjc4MDIzYzE1ZTY4
MzUyMzIwZmYyNzEyMDFkMjAwNWM0MWFjMTk5YS4uMmZmNTU4NDRjZWQzZjFlYjM2ODIxZGI5Mjg1
OTk3MDc0ODA1YmM3YiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9UZXh0TWFuaXB1bGF0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvVGV4dE1hbmlwdWxhdGlvbi5tbQpAQCAtNDA0LDcgKzQwNCw3IEBAIFRF
U1QoVGV4dE1hbmlwdWxhdGlvbiwgU3RhcnRUZXh0TWFuaXB1bGF0aW9uQXBwbHlTaW5nbGVFeGNs
dWlvblJ1bGVGb3JFbGVtZW50KQogCiAgICAgUmV0YWluUHRyPF9XS1RleHRNYW5pcHVsYXRpb25D
b25maWd1cmF0aW9uPiBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW19XS1RleHRNYW5pcHVsYXRp
b25Db25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgW2NvbmZpZ3VyYXRpb24gc2V0RXhj
bHVzaW9uUnVsZXM6QFsKLSAgICAgICAgYWRvcHROUyhbW19XS1RleHRNYW5pcHVsYXRpb25FeGNs
dXNpb25SdWxlIGFsbG9jXSBpbml0RXhjbHVzaW9uOihCT09MKVlFUyBmb3JFbGVtZW50OkAiY29k
ZSJdKS5hdXRvcmVsZWFzZSgpLAorICAgICAgICBhZG9wdE5TKFtbX1dLVGV4dE1hbmlwdWxhdGlv
bkV4Y2x1c2lvblJ1bGUgYWxsb2NdIGluaXRFeGNsdXNpb246KEJPT0wpWUVTIGZvckVsZW1lbnQ6
QCJjb2RlIl0pLmdldCgpLAogICAgIF1dOwogCiAgICAgZG9uZSA9IGZhbHNlOwpAQCAtNDQwLDgg
KzQ0MCw4IEBAIFRFU1QoVGV4dE1hbmlwdWxhdGlvbiwgU3RhcnRUZXh0TWFuaXB1bGF0aW9uQXBw
bHlJbmNsdXNpb25FeGNsdXNpb25SdWxlc0ZvckF0dHJpCiAKICAgICBSZXRhaW5QdHI8X1dLVGV4
dE1hbmlwdWxhdGlvbkNvbmZpZ3VyYXRpb24+IGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbX1dL
VGV4dE1hbmlwdWxhdGlvbkNvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBbY29uZmln
dXJhdGlvbiBzZXRFeGNsdXNpb25SdWxlczpAWwotICAgICAgICBhZG9wdE5TKFtbX1dLVGV4dE1h
bmlwdWxhdGlvbkV4Y2x1c2lvblJ1bGUgYWxsb2NdIGluaXRFeGNsdXNpb246KEJPT0wpWUVTIGZv
ckF0dHJpYnV0ZTpAImRhdGEtZXhjbHVkZSIgdmFsdWU6QCJ5ZXMiXSkuYXV0b3JlbGVhc2UoKSwK
LSAgICAgICAgYWRvcHROUyhbW19XS1RleHRNYW5pcHVsYXRpb25FeGNsdXNpb25SdWxlIGFsbG9j
XSBpbml0RXhjbHVzaW9uOihCT09MKU5PIGZvckF0dHJpYnV0ZTpAImRhdGEtZXhjbHVkZSIgdmFs
dWU6QCJubyJdKS5hdXRvcmVsZWFzZSgpLAorICAgICAgICBhZG9wdE5TKFtbX1dLVGV4dE1hbmlw
dWxhdGlvbkV4Y2x1c2lvblJ1bGUgYWxsb2NdIGluaXRFeGNsdXNpb246KEJPT0wpWUVTIGZvckF0
dHJpYnV0ZTpAImRhdGEtZXhjbHVkZSIgdmFsdWU6QCJ5ZXMiXSkuZ2V0KCksCisgICAgICAgIGFk
b3B0TlMoW1tfV0tUZXh0TWFuaXB1bGF0aW9uRXhjbHVzaW9uUnVsZSBhbGxvY10gaW5pdEV4Y2x1
c2lvbjooQk9PTClOTyBmb3JBdHRyaWJ1dGU6QCJkYXRhLWV4Y2x1ZGUiIHZhbHVlOkAibm8iXSku
Z2V0KCksCiAgICAgXV07CiAKICAgICBkb25lID0gZmFsc2U7CkBAIC00NjgsNyArNDY4LDcgQEAg
VEVTVChUZXh0TWFuaXB1bGF0aW9uLCBTdGFydFRleHRNYW5pcHVsYXRpb25BcHBseUluY2x1c2lv
bkV4Y2x1c2lvblJ1bGVzRm9yQ2xhc3MKIAogICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0
TlMoW1tfV0tUZXh0TWFuaXB1bGF0aW9uQ29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAg
IFtjb25maWd1cmF0aW9uIHNldEV4Y2x1c2lvblJ1bGVzOkBbCi0gICAgICAgIGFkb3B0TlMoW1tf
V0tUZXh0TWFuaXB1bGF0aW9uRXhjbHVzaW9uUnVsZSBhbGxvY10gaW5pdEV4Y2x1c2lvbjpZRVMg
Zm9yQ2xhc3M6QCJleGNsdWRlIl0pLmF1dG9yZWxlYXNlKCksCisgICAgICAgIGFkb3B0TlMoW1tf
V0tUZXh0TWFuaXB1bGF0aW9uRXhjbHVzaW9uUnVsZSBhbGxvY10gaW5pdEV4Y2x1c2lvbjpZRVMg
Zm9yQ2xhc3M6QCJleGNsdWRlIl0pLmdldCgpLAogICAgIF1dOwogCiAgICAgZG9uZSA9IGZhbHNl
OwpAQCAtNDk1LDkgKzQ5NSw5IEBAIFRFU1QoVGV4dE1hbmlwdWxhdGlvbiwgU3RhcnRUZXh0TWFu
aXB1bGF0aW9uQXBwbHlJbmNsdXNpb25FeGNsdXNpb25SdWxlc0ZvckNsYXNzCiAKICAgICBhdXRv
IGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbX1dLVGV4dE1hbmlwdWxhdGlvbkNvbmZpZ3VyYXRp
b24gYWxsb2NdIGluaXRdKTsKICAgICBbY29uZmlndXJhdGlvbiBzZXRFeGNsdXNpb25SdWxlczpA
WwotICAgICAgICBhZG9wdE5TKFtbX1dLVGV4dE1hbmlwdWxhdGlvbkV4Y2x1c2lvblJ1bGUgYWxs
b2NdIGluaXRFeGNsdXNpb246WUVTIGZvckF0dHJpYnV0ZTpAImRhdGEtZXhjbHVkZSIgdmFsdWU6
QCJ5ZXMiXSkuYXV0b3JlbGVhc2UoKSwKLSAgICAgICAgYWRvcHROUyhbW19XS1RleHRNYW5pcHVs
YXRpb25FeGNsdXNpb25SdWxlIGFsbG9jXSBpbml0RXhjbHVzaW9uOk5PIGZvckF0dHJpYnV0ZTpA
ImRhdGEtZXhjbHVkZSIgdmFsdWU6QCJubyJdKS5hdXRvcmVsZWFzZSgpLAotICAgICAgICBhZG9w
dE5TKFtbX1dLVGV4dE1hbmlwdWxhdGlvbkV4Y2x1c2lvblJ1bGUgYWxsb2NdIGluaXRFeGNsdXNp
b246WUVTIGZvckNsYXNzOkAiZXhjbHVkZSJdKS5hdXRvcmVsZWFzZSgpLAorICAgICAgICBhZG9w
dE5TKFtbX1dLVGV4dE1hbmlwdWxhdGlvbkV4Y2x1c2lvblJ1bGUgYWxsb2NdIGluaXRFeGNsdXNp
b246WUVTIGZvckF0dHJpYnV0ZTpAImRhdGEtZXhjbHVkZSIgdmFsdWU6QCJ5ZXMiXSkuZ2V0KCks
CisgICAgICAgIGFkb3B0TlMoW1tfV0tUZXh0TWFuaXB1bGF0aW9uRXhjbHVzaW9uUnVsZSBhbGxv
Y10gaW5pdEV4Y2x1c2lvbjpOTyBmb3JBdHRyaWJ1dGU6QCJkYXRhLWV4Y2x1ZGUiIHZhbHVlOkAi
bm8iXSkuZ2V0KCksCisgICAgICAgIGFkb3B0TlMoW1tfV0tUZXh0TWFuaXB1bGF0aW9uRXhjbHVz
aW9uUnVsZSBhbGxvY10gaW5pdEV4Y2x1c2lvbjpZRVMgZm9yQ2xhc3M6QCJleGNsdWRlIl0pLmdl
dCgpLAogICAgIF1dOwogCiAgICAgZG9uZSA9IGZhbHNlOwpAQCAtMTkxOSwxMSArMTkxOSwxMSBA
QCBURVNUKFRleHRNYW5pcHVsYXRpb24sIENvbXBsZXRlVGV4dE1hbmlwdWxhdGlvblNob3VsZFJl
cGxhY2VUZXh0Q29udGVudFdpdGhNdWx0aQogICAgIEVYUEVDVF9XS19TVFJFUSgiVGV4dCIsIGl0
ZW1zWzVdLnRva2Vuc1swXS5jb250ZW50KTsKIAogICAgIGF1dG8gcmVwbGFjZW1lbnRJdGVtcyA9
IHJldGFpblB0cihAWwotICAgICAgICBjcmVhdGVJdGVtKGl0ZW1zWzBdLmlkZW50aWZpZXIsIHsg
eyBpdGVtc1swXS50b2tlbnNbMF0uaWRlbnRpZmllciwgQCJSZXBsYWNlbWVudCIgfSwgeyBpdGVt
c1swXS50b2tlbnNbMF0uaWRlbnRpZmllciwgQCJ0aXRsZSIgfSB9KS5hdXRvcmVsZWFzZSgpLAot
ICAgICAgICBjcmVhdGVJdGVtKGl0ZW1zWzFdLmlkZW50aWZpZXIsIHsgeyBpdGVtc1sxXS50b2tl
bnNbMF0uaWRlbnRpZmllciwgQCJSZXBsYWNlbWVudCIgfSwgeyBpdGVtc1sxXS50b2tlbnNbMF0u
aWRlbnRpZmllciwgQCJvcHRpb24iIH0gfSkuYXV0b3JlbGVhc2UoKSwKLSAgICAgICAgY3JlYXRl
SXRlbShpdGVtc1syXS5pZGVudGlmaWVyLCB7IHsgaXRlbXNbMl0udG9rZW5zWzBdLmlkZW50aWZp
ZXIsIEAiRmFpbGVkIHJlcGxhY2VtZW50IiB9LCB7IEAiMTIzNDUiLCBAIm9wdGlvbiIgfSB9KS5h
dXRvcmVsZWFzZSgpLAotICAgICAgICBjcmVhdGVJdGVtKGl0ZW1zWzNdLmlkZW50aWZpZXIsIHsg
eyBpdGVtc1szXS50b2tlbnNbMF0uaWRlbnRpZmllciwgQCJSZXBsYWNlbWVudCIgfSwgeyBpdGVt
c1szXS50b2tlbnNbMF0uaWRlbnRpZmllciwgQCJsYWJlbCIgfSB9KS5hdXRvcmVsZWFzZSgpLAot
ICAgICAgICBjcmVhdGVJdGVtKGl0ZW1zWzRdLmlkZW50aWZpZXIsIHsgeyBpdGVtc1s0XS50b2tl
bnNbMF0uaWRlbnRpZmllciwgQCJSZXBsYWNlbWVudCIgfSwgeyBpdGVtc1s0XS50b2tlbnNbMF0u
aWRlbnRpZmllciwgQCJpbWFnZSIgfSB9KS5hdXRvcmVsZWFzZSgpLAorICAgICAgICBjcmVhdGVJ
dGVtKGl0ZW1zWzBdLmlkZW50aWZpZXIsIHsgeyBpdGVtc1swXS50b2tlbnNbMF0uaWRlbnRpZmll
ciwgQCJSZXBsYWNlbWVudCIgfSwgeyBpdGVtc1swXS50b2tlbnNbMF0uaWRlbnRpZmllciwgQCJ0
aXRsZSIgfSB9KS5nZXQoKSwKKyAgICAgICAgY3JlYXRlSXRlbShpdGVtc1sxXS5pZGVudGlmaWVy
LCB7IHsgaXRlbXNbMV0udG9rZW5zWzBdLmlkZW50aWZpZXIsIEAiUmVwbGFjZW1lbnQiIH0sIHsg
aXRlbXNbMV0udG9rZW5zWzBdLmlkZW50aWZpZXIsIEAib3B0aW9uIiB9IH0pLmdldCgpLAorICAg
ICAgICBjcmVhdGVJdGVtKGl0ZW1zWzJdLmlkZW50aWZpZXIsIHsgeyBpdGVtc1syXS50b2tlbnNb
MF0uaWRlbnRpZmllciwgQCJGYWlsZWQgcmVwbGFjZW1lbnQiIH0sIHsgQCIxMjM0NSIsIEAib3B0
aW9uIiB9IH0pLmdldCgpLAorICAgICAgICBjcmVhdGVJdGVtKGl0ZW1zWzNdLmlkZW50aWZpZXIs
IHsgeyBpdGVtc1szXS50b2tlbnNbMF0uaWRlbnRpZmllciwgQCJSZXBsYWNlbWVudCIgfSwgeyBp
dGVtc1szXS50b2tlbnNbMF0uaWRlbnRpZmllciwgQCJsYWJlbCIgfSB9KS5nZXQoKSwKKyAgICAg
ICAgY3JlYXRlSXRlbShpdGVtc1s0XS5pZGVudGlmaWVyLCB7IHsgaXRlbXNbNF0udG9rZW5zWzBd
LmlkZW50aWZpZXIsIEAiUmVwbGFjZW1lbnQiIH0sIHsgaXRlbXNbNF0udG9rZW5zWzBdLmlkZW50
aWZpZXIsIEAiaW1hZ2UiIH0gfSkuZ2V0KCksCiAgICAgXSk7CiAKICAgICBkb25lID0gZmFsc2U7
CkBAIC0yMzM5LDcgKzIzMzksNyBAQCBURVNUKFRleHRNYW5pcHVsYXRpb24sIENvbXBsZXRlVGV4
dE1hbmlwdWxhdGlvblN1Y2NlZHNXaGVuQ29udGVudE91dE9mUGFyYWdyYXBoSQogCiAgICAgZG9u
ZSA9IGZhbHNlOwogICAgIFt3ZWJWaWV3IF9jb21wbGV0ZVRleHRNYW5pcHVsYXRpb25Gb3JJdGVt
czpAWwotICAgICAgICBjcmVhdGVJdGVtKGl0ZW1zWzBdLmlkZW50aWZpZXIsIHt7IGl0ZW1zWzBd
LnRva2Vuc1swXS5pZGVudGlmaWVyLCBAIkhlbGxvIFdvcmxkIiB9fSkuYXV0b3JlbGVhc2UoKSwK
KyAgICAgICAgY3JlYXRlSXRlbShpdGVtc1swXS5pZGVudGlmaWVyLCB7eyBpdGVtc1swXS50b2tl
bnNbMF0uaWRlbnRpZmllciwgQCJIZWxsbyBXb3JsZCIgfX0pLmdldCgpLAogICAgIF0gY29tcGxl
dGlvbjpeKE5TQXJyYXk8TlNFcnJvciAqPiAqZXJyb3JzKSB7CiAgICAgICAgIEVYUEVDVF9FUShl
cnJvcnMsIG5pbCk7CiAgICAgICAgIGRvbmUgPSB0cnVlOwpAQCAtMjQwNiw3ICsyNDA2LDcgQEAg
VEVTVChUZXh0TWFuaXB1bGF0aW9uLCBDb21wbGV0ZVRleHRNYW5pcHVsYXRpb25GYWlsV2hlbkV4
Y2x1c2lvbklzVmlvbGF0ZWQpCiAKICAgICBSZXRhaW5QdHI8X1dLVGV4dE1hbmlwdWxhdGlvbkNv
bmZpZ3VyYXRpb24+IGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbX1dLVGV4dE1hbmlwdWxhdGlv
bkNvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBbY29uZmlndXJhdGlvbiBzZXRFeGNs
dXNpb25SdWxlczpAWwotICAgICAgICBhZG9wdE5TKFtbX1dLVGV4dE1hbmlwdWxhdGlvbkV4Y2x1
c2lvblJ1bGUgYWxsb2NdIGluaXRFeGNsdXNpb246KEJPT0wpWUVTIGZvckVsZW1lbnQ6QCJlbSJd
KS5hdXRvcmVsZWFzZSgpLAorICAgICAgICBhZG9wdE5TKFtbX1dLVGV4dE1hbmlwdWxhdGlvbkV4
Y2x1c2lvblJ1bGUgYWxsb2NdIGluaXRFeGNsdXNpb246KEJPT0wpWUVTIGZvckVsZW1lbnQ6QCJl
bSJdKS5nZXQoKSwKICAgICBdXTsKIAogICAgIGRvbmUgPSBmYWxzZTsKQEAgLTI0NTEsNyArMjQ1
MSw3IEBAIFRFU1QoVGV4dE1hbmlwdWxhdGlvbiwgQ29tcGxldGVUZXh0TWFuaXB1bGF0aW9uRmFp
bFdoZW5FeGNsdWRlZENvbnRlbnRBcHBlYXJzTW9yCiAKICAgICBSZXRhaW5QdHI8X1dLVGV4dE1h
bmlwdWxhdGlvbkNvbmZpZ3VyYXRpb24+IGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbX1dLVGV4
dE1hbmlwdWxhdGlvbkNvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBbY29uZmlndXJh
dGlvbiBzZXRFeGNsdXNpb25SdWxlczpAWwotICAgICAgICBhZG9wdE5TKFtbX1dLVGV4dE1hbmlw
dWxhdGlvbkV4Y2x1c2lvblJ1bGUgYWxsb2NdIGluaXRFeGNsdXNpb246KEJPT0wpWUVTIGZvckVs
ZW1lbnQ6QCJlbSJdKS5hdXRvcmVsZWFzZSgpLAorICAgICAgICBhZG9wdE5TKFtbX1dLVGV4dE1h
bmlwdWxhdGlvbkV4Y2x1c2lvblJ1bGUgYWxsb2NdIGluaXRFeGNsdXNpb246KEJPT0wpWUVTIGZv
ckVsZW1lbnQ6QCJlbSJdKS5nZXQoKSwKICAgICBdXTsKIAogICAgIGRvbmUgPSBmYWxzZTsKQEAg
LTI0OTYsNyArMjQ5Niw3IEBAIFRFU1QoVGV4dE1hbmlwdWxhdGlvbiwgQ29tcGxldGVUZXh0TWFu
aXB1bGF0aW9uUHJlc2VydmVzRXhjbHVkZWRDb250ZW50KQogCiAgICAgUmV0YWluUHRyPF9XS1Rl
eHRNYW5pcHVsYXRpb25Db25maWd1cmF0aW9uPiBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW19X
S1RleHRNYW5pcHVsYXRpb25Db25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgW2NvbmZp
Z3VyYXRpb24gc2V0RXhjbHVzaW9uUnVsZXM6QFsKLSAgICAgICAgYWRvcHROUyhbW19XS1RleHRN
YW5pcHVsYXRpb25FeGNsdXNpb25SdWxlIGFsbG9jXSBpbml0RXhjbHVzaW9uOihCT09MKVlFUyBm
b3JFbGVtZW50OkAiZW0iXSkuYXV0b3JlbGVhc2UoKSwKKyAgICAgICAgYWRvcHROUyhbW19XS1Rl
eHRNYW5pcHVsYXRpb25FeGNsdXNpb25SdWxlIGFsbG9jXSBpbml0RXhjbHVzaW9uOihCT09MKVlF
UyBmb3JFbGVtZW50OkAiZW0iXSkuZ2V0KCksCiAgICAgXV07CiAKICAgICBkb25lID0gZmFsc2U7
CkBAIC0yNTk0LDggKzI1OTQsOCBAQCBURVNUKFRleHRNYW5pcHVsYXRpb24sIENvbXBsZXRlVGV4
dE1hbmlwdWxhdGlvbkNvcnJlY3RQYXJhZ3JhcGhSYW5nZSkKIAogICAgIGRvbmUgPSBmYWxzZTsK
ICAgICBbd2ViVmlldyBfY29tcGxldGVUZXh0TWFuaXB1bGF0aW9uRm9ySXRlbXM6QFsKLSAgICAg
ICAgY3JlYXRlSXRlbShpdGVtc1swXS5pZGVudGlmaWVyLCB7eyBpdGVtc1swXS50b2tlbnNbMF0u
aWRlbnRpZmllciwgQCJoZWxsbyIgfX0pLmF1dG9yZWxlYXNlKCksCi0gICAgICAgIGNyZWF0ZUl0
ZW0oaXRlbXNbMV0uaWRlbnRpZmllciwge3sgaXRlbXNbMV0udG9rZW5zWzBdLmlkZW50aWZpZXIs
IEAid29ybGQiIH19KS5hdXRvcmVsZWFzZSgpCisgICAgICAgIGNyZWF0ZUl0ZW0oaXRlbXNbMF0u
aWRlbnRpZmllciwge3sgaXRlbXNbMF0udG9rZW5zWzBdLmlkZW50aWZpZXIsIEAiaGVsbG8iIH19
KS5nZXQoKSwKKyAgICAgICAgY3JlYXRlSXRlbShpdGVtc1sxXS5pZGVudGlmaWVyLCB7eyBpdGVt
c1sxXS50b2tlbnNbMF0uaWRlbnRpZmllciwgQCJ3b3JsZCIgfX0pLmdldCgpCiAgICAgXSBjb21w
bGV0aW9uOl4oTlNBcnJheTxOU0Vycm9yICo+ICplcnJvcnMpIHsKICAgICAgICAgRVhQRUNUX0VR
KGVycm9ycywgbmlsKTsKICAgICAgICAgZG9uZSA9IHRydWU7CkBAIC0yNjMxLDcgKzI2MzEsNyBA
QCBURVNUKFRleHRNYW5pcHVsYXRpb24sIENvbXBsZXRlVGV4dE1hbmlwdWxhdGlvbkNhbk1lcmdl
Q29udGVudEFuZFByZXNlcnZlTGluZUJyZQogICAgIEVYUEVDVF9TVFJFUSgiIFxuIiwgaXRlbXNb
MF0udG9rZW5zWzNdLmNvbnRlbnQuVVRGOFN0cmluZyk7CiAKICAgICBhdXRvIHJlcGxhY2VtZW50
SXRlbXMgPSByZXRhaW5QdHIoQFsKLSAgICAgICAgY3JlYXRlSXRlbShpdGVtc1swXS5pZGVudGlm
aWVyLCB7IHsgaXRlbXNbMF0udG9rZW5zWzBdLmlkZW50aWZpZXIsIEAiT05FIiB9LCB7IGl0ZW1z
WzBdLnRva2Vuc1sxXS5pZGVudGlmaWVyLCBpdGVtc1swXS50b2tlbnNbMV0uY29udGVudCB9LCB7
IGl0ZW1zWzBdLnRva2Vuc1syXS5pZGVudGlmaWVyLCBAIlRXTyIgfSwgeyBpdGVtc1swXS50b2tl
bnNbM10uaWRlbnRpZmllciwgaXRlbXNbMF0udG9rZW5zWzNdLmNvbnRlbnQgfSB9KS5hdXRvcmVs
ZWFzZSgpLAorICAgICAgICBjcmVhdGVJdGVtKGl0ZW1zWzBdLmlkZW50aWZpZXIsIHsgeyBpdGVt
c1swXS50b2tlbnNbMF0uaWRlbnRpZmllciwgQCJPTkUiIH0sIHsgaXRlbXNbMF0udG9rZW5zWzFd
LmlkZW50aWZpZXIsIGl0ZW1zWzBdLnRva2Vuc1sxXS5jb250ZW50IH0sIHsgaXRlbXNbMF0udG9r
ZW5zWzJdLmlkZW50aWZpZXIsIEAiVFdPIiB9LCB7IGl0ZW1zWzBdLnRva2Vuc1szXS5pZGVudGlm
aWVyLCBpdGVtc1swXS50b2tlbnNbM10uY29udGVudCB9IH0pLmdldCgpLAogICAgIF0pOwogCiAg
ICAgZG9uZSA9IGZhbHNlOwpAQCAtMjcxMiw4ICsyNzEyLDggQEAgVEVTVChUZXh0TWFuaXB1bGF0
aW9uLCBDb21wbGV0ZVRleHRNYW5pcHVsYXRpb25TaG91bGRQcmVzZXJ2ZU5vZGVzQWZ0ZXJQYXJh
Z3JhcGgKICAgICBFWFBFQ1RfU1RSRVEoImZyb20iLCBpdGVtc1sxXS50b2tlbnNbMF0uY29udGVu
dC5VVEY4U3RyaW5nKTsKIAogICAgIGF1dG8gcmVwbGFjZW1lbnRJdGVtcyA9IHJldGFpblB0cihA
WwotICAgICAgICBjcmVhdGVJdGVtKGl0ZW1zWzBdLmlkZW50aWZpZXIsIHsgeyBpdGVtc1swXS50
b2tlbnNbMF0uaWRlbnRpZmllciwgQCJIZWxsbyIgfSwgeyBpdGVtc1swXS50b2tlbnNbMV0uaWRl
bnRpZmllciwgQCJXb3JsZCIgfSB9KS5hdXRvcmVsZWFzZSgpLAotICAgICAgICBjcmVhdGVJdGVt
KGl0ZW1zWzFdLmlkZW50aWZpZXIsIHsgeyBpdGVtc1sxXS50b2tlbnNbMF0uaWRlbnRpZmllciwg
QCJGcm9tIFdlYktpdCIgfSB9KS5hdXRvcmVsZWFzZSgpLAorICAgICAgICBjcmVhdGVJdGVtKGl0
ZW1zWzBdLmlkZW50aWZpZXIsIHsgeyBpdGVtc1swXS50b2tlbnNbMF0uaWRlbnRpZmllciwgQCJI
ZWxsbyIgfSwgeyBpdGVtc1swXS50b2tlbnNbMV0uaWRlbnRpZmllciwgQCJXb3JsZCIgfSB9KS5n
ZXQoKSwKKyAgICAgICAgY3JlYXRlSXRlbShpdGVtc1sxXS5pZGVudGlmaWVyLCB7IHsgaXRlbXNb
MV0udG9rZW5zWzBdLmlkZW50aWZpZXIsIEAiRnJvbSBXZWJLaXQiIH0gfSkuZ2V0KCksCiAgICAg
XSk7CiAKICAgICBkb25lID0gZmFsc2U7CkBAIC0yNzUxLDcgKzI3NTEsNyBAQCBURVNUKFRleHRN
YW5pcHVsYXRpb24sIENvbXBsZXRlVGV4dE1hbmlwdWxhdGlvblNQcmVzZXJ2ZU5vZGVzQmVmb3Jl
UGFyYWdyYXBoUmFuZwogICAgIEVYUEVDVF9TVFJFUSgiZnJvbSIsIGl0ZW1zWzBdLnRva2Vuc1sy
XS5jb250ZW50LlVURjhTdHJpbmcpOwogCiAgICAgYXV0byByZXBsYWNlbWVudEl0ZW1zID0gcmV0
YWluUHRyKEBbCi0gICAgICAgIGNyZWF0ZUl0ZW0oaXRlbXNbMF0uaWRlbnRpZmllciwgeyB7IGl0
ZW1zWzBdLnRva2Vuc1swXS5pZGVudGlmaWVyLCBAIkhlbGxvIiB9LCB7IGl0ZW1zWzBdLnRva2Vu
c1sxXS5pZGVudGlmaWVyLCBAIldvcmxkIiB9LCB7IGl0ZW1zWzBdLnRva2Vuc1syXS5pZGVudGlm
aWVyLCBAIkZyb20gV2ViS2l0IiB9IH0pLmF1dG9yZWxlYXNlKCkKKyAgICAgICAgY3JlYXRlSXRl
bShpdGVtc1swXS5pZGVudGlmaWVyLCB7IHsgaXRlbXNbMF0udG9rZW5zWzBdLmlkZW50aWZpZXIs
IEAiSGVsbG8iIH0sIHsgaXRlbXNbMF0udG9rZW5zWzFdLmlkZW50aWZpZXIsIEAiV29ybGQiIH0s
IHsgaXRlbXNbMF0udG9rZW5zWzJdLmlkZW50aWZpZXIsIEAiRnJvbSBXZWJLaXQiIH0gfSkuZ2V0
KCkKICAgICBdKTsKIAogICAgIGRvbmUgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVUlEZWxlZ2F0ZS5tbSBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVUlEZWxlZ2F0ZS5tbQppbmRleCA5ZGRmMTQwMjkxZWIy
N2E3YjkwZWJmYTk1ODA3MGY1MTZhMmJiMjBkLi5hMGYzMjYwYTNmYWVhZmQwZjVlOWQxYzUzNmFi
Zjg2MTQ3Yzg3M2YyIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1VJRGVsZWdhdGUubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9VSURlbGVnYXRlLm1tCkBAIC02Niw3ICs2Niw3IEBAIEBlbmQKIAogVEVTVChXZWJL
aXQsIFdLV2ViVmlld0lzUGxheWluZ0F1ZGlvKQogewotICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0
TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwg
ODAwLCA2MDApIGNvbmZpZ3VyYXRpb246YWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24g
YWxsb2NdIGluaXRdKS5hdXRvcmVsZWFzZSgpXSk7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHRO
UyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCA4
MDAsIDYwMCkgY29uZmlndXJhdGlvbjphZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBh
bGxvY10gaW5pdF0pLmdldCgpXSk7CiAgICAgYXV0byBvYnNlcnZlciA9IGFkb3B0TlMoW1tBdWRp
b09ic2VydmVyIGFsbG9jXSBpbml0XSk7CiAgICAgW3dlYlZpZXcgYWRkT2JzZXJ2ZXI6b2JzZXJ2
ZXIuZ2V0KCkgZm9yS2V5UGF0aDpAIl9pc1BsYXlpbmdBdWRpbyIgb3B0aW9uczpOU0tleVZhbHVl
T2JzZXJ2aW5nT3B0aW9uTmV3IHwgTlNLZXlWYWx1ZU9ic2VydmluZ09wdGlvbk9sZCBjb250ZXh0
Om5pbF07CiAgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRUZXN0UGFnZU5hbWVkOkAiZmls
ZS13aXRoLXZpZGVvIl07CkBAIC0yMjQsNyArMjI0LDcgQEAgLSAodm9pZClfc2hvd1dlYlZpZXc6
KFdLV2ViVmlldyAqKXdlYlZpZXcKIC0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmll
dyBzdGFydFVSTFNjaGVtZVRhc2s6KGlkIDxXS1VSTFNjaGVtZVRhc2s+KXVybFNjaGVtZVRhc2sK
IHsKICAgICBOU1N0cmluZyAqZGF0YSA9IEAiPHNjcmlwdD53aW5kb3cub3Blbignb3RoZXIuaHRt
bCcpOzwvc2NyaXB0PiI7Ci0gICAgW3VybFNjaGVtZVRhc2sgZGlkUmVjZWl2ZVJlc3BvbnNlOmFk
b3B0TlMoW1tOU1VSTFJlc3BvbnNlIGFsbG9jXSBpbml0V2l0aFVSTDp1cmxTY2hlbWVUYXNrLnJl
cXVlc3QuVVJMIE1JTUVUeXBlOkAidGV4dC9odG1sIiBleHBlY3RlZENvbnRlbnRMZW5ndGg6ZGF0
YS5sZW5ndGggdGV4dEVuY29kaW5nTmFtZTpuaWxdKS5hdXRvcmVsZWFzZSgpXTsKKyAgICBbdXJs
U2NoZW1lVGFzayBkaWRSZWNlaXZlUmVzcG9uc2U6YWRvcHROUyhbW05TVVJMUmVzcG9uc2UgYWxs
b2NdIGluaXRXaXRoVVJMOnVybFNjaGVtZVRhc2sucmVxdWVzdC5VUkwgTUlNRVR5cGU6QCJ0ZXh0
L2h0bWwiIGV4cGVjdGVkQ29udGVudExlbmd0aDpkYXRhLmxlbmd0aCB0ZXh0RW5jb2RpbmdOYW1l
Om5pbF0pLmdldCgpXTsKICAgICBbdXJsU2NoZW1lVGFzayBkaWRSZWNlaXZlRGF0YTpbZGF0YSBk
YXRhVXNpbmdFbmNvZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZ11dOwogICAgIFt1cmxTY2hlbWVU
YXNrIGRpZEZpbmlzaF07CiB9CkBAIC01MTMsMTEgKzUxMywxMSBAQCBURVNUKFdlYktpdCwgTm90
aWZpY2F0aW9uUGVybWlzc2lvbikKIHsKICAgICBOU1N0cmluZyAqaHRtbCA9IEAiPHNjcmlwdD5O
b3RpZmljYXRpb24ucmVxdWVzdFBlcm1pc3Npb24oZnVuY3Rpb24ocCl7YWxlcnQoJ3Blcm1pc3Np
b24gJytwKX0pPC9zY3JpcHQ+IjsKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJW
aWV3IGFsbG9jXSBpbml0XSk7Ci0gICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTphZG9wdE5TKFtb
Tm90aWZpY2F0aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRXaXRoQWxsb3dOb3RpZmljYXRpb25zOllF
U10pLmF1dG9yZWxlYXNlKCldOworICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6YWRvcHROUyhb
W05vdGlmaWNhdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0V2l0aEFsbG93Tm90aWZpY2F0aW9uczpZ
RVNdKS5nZXQoKV07CiAgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6aHRtbCBiYXNlVVJMOltO
U1VSTCBVUkxXaXRoU3RyaW5nOkAiaHR0cHM6Ly9leGFtcGxlLm9yZyJdXTsKICAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKLSAgICBbd2ViVmll
dyBzZXRVSURlbGVnYXRlOmFkb3B0TlMoW1tOb3RpZmljYXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5p
dFdpdGhBbGxvd05vdGlmaWNhdGlvbnM6Tk9dKS5hdXRvcmVsZWFzZSgpXTsKKyAgICBbd2ViVmll
dyBzZXRVSURlbGVnYXRlOmFkb3B0TlMoW1tOb3RpZmljYXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5p
dFdpdGhBbGxvd05vdGlmaWNhdGlvbnM6Tk9dKS5nZXQoKV07CiAgICAgW3dlYlZpZXcgbG9hZEhU
TUxTdHJpbmc6aHRtbCBiYXNlVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiaHR0cHM6Ly9leGFt
cGxlLmNvbSJdXTsKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwogfQpAQCAt
NTc2LDcgKzU3Niw3IEBAIEBlbmQKIAogVEVTVChXZWJLaXQsIFRvb2xiYXJWaXNpYmxlKQogewot
ICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0
aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246YWRvcHROUyhb
W1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKS5hdXRvcmVsZWFzZSgpXSk7Cisg
ICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRo
RnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjphZG9wdE5TKFtb
V0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pLmdldCgpXSk7CiAgICAgYXV0byBk
ZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUb29sYmFyRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKICAgICBb
d2ViVmlldyBzZXRVSURlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKICAgICBbd2ViVmlldyBzeW5j
aHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8c2NyaXB0PmFsZXJ0KCd2aXNpYmxlOicgKyB3aW5k
b3cudG9vbGJhci52aXNpYmxlKTthbGVydCgndmlzaWJsZTonICsgd2luZG93LnRvb2xiYXIudmlz
aWJsZSk8L3NjcmlwdD4iXTsKQEAgLTYwNCw3ICs2MDQsNyBAQCBURVNUKFdlYktpdCwgTW91c2VN
b3ZlT3ZlckVsZW1lbnQpCiB7CiAgICAgV0tXZWJWaWV3Q29uZmlndXJhdGlvbiAqY29uZmlndXJh
dGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVz
dFBsdWdJbkNsYXNzTmFtZTpAIkZyYW1lSGFuZGxlU2VyaWFsaXphdGlvbiJdOwogICAgIGF1dG8g
d2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNH
UmVjdE1ha2UoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwot
ICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6YWRvcHROUyhbW01vdXNlTW92ZU92ZXJFbGVtZW50
RGVsZWdhdGUgYWxsb2NdIGluaXRdKS5hdXRvcmVsZWFzZSgpXTsKKyAgICBbd2ViVmlldyBzZXRV
SURlbGVnYXRlOmFkb3B0TlMoW1tNb3VzZU1vdmVPdmVyRWxlbWVudERlbGVnYXRlIGFsbG9jXSBp
bml0XSkuZ2V0KCldOwogICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpA
IjxhIGhyZWY9J2h0dHA6Ly9leGFtcGxlLmNvbS9wYXRoJyB0aXRsZT0nbGluayB0aXRsZSc+bGlu
ayBsYWJlbDwvYT4iXTsKICAgICBbd2ViVmlldyBtb3VzZU1vdmVUb1BvaW50Ok5TTWFrZVBvaW50
KDIwLCA2MDAgLSAyMCkgd2l0aEZsYWdzOk5TRXZlbnRNb2RpZmllckZsYWdTaGlmdF07CiAgICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVXNlckNvbnRlbnRDb250cm9sbGVyLm1tIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Vc2VyQ29udGVudENvbnRyb2xsZXIu
bW0KaW5kZXggYmIwMjQzMWI5MmVhOTFkZmIyNzkwMzc0MmJlYmU0MDU0NmJjM2EzOS4uYTU5ZGM0
ZjZhM2M5OTI3Y2Q1OGNjYWYwZjI4ODI1ODk1NTVlODM5NiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Vc2VyQ29udGVudENvbnRyb2xsZXIubW0KKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Vc2VyQ29udGVudENvbnRy
b2xsZXIubW0KQEAgLTIzOCw3ICsyMzgsNyBAQCBzdGF0aWMgUmV0YWluUHRyPFdLV2ViVmlldz4g
d2ViVmlld0ZvclNjcmlwdE1lc3NhZ2VIYW5kbGVyTXVsdGlwbGVIYW5kbGVyUmVtb3ZhbAogCiAg
ICAgUmV0YWluUHRyPFNjcmlwdE1lc3NhZ2VIYW5kbGVyPiBoYW5kbGVyID0gYWRvcHROUyhbW1Nj
cmlwdE1lc3NhZ2VIYW5kbGVyIGFsbG9jXSBpbml0XSk7CiAgICAgUmV0YWluUHRyPFdLV2ViVmll
d0NvbmZpZ3VyYXRpb24+IGNvbmZpZ3VyYXRpb25Db3B5ID0gYWRvcHROUyhbY29uZmlndXJhdGlv
biBjb3B5XSk7Ci0gICAgW2NvbmZpZ3VyYXRpb25Db3B5IHNldFVzZXJDb250ZW50Q29udHJvbGxl
cjphZG9wdE5TKFtbV0tVc2VyQ29udGVudENvbnRyb2xsZXIgYWxsb2NdIGluaXRdKS5hdXRvcmVs
ZWFzZSgpXTsKKyAgICBbY29uZmlndXJhdGlvbkNvcHkgc2V0VXNlckNvbnRlbnRDb250cm9sbGVy
OmFkb3B0TlMoW1tXS1VzZXJDb250ZW50Q29udHJvbGxlciBhbGxvY10gaW5pdF0pLmdldCgpXTsK
ICAgICBbW2NvbmZpZ3VyYXRpb25Db3B5IHVzZXJDb250ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0
TWVzc2FnZUhhbmRsZXI6aGFuZGxlci5nZXQoKSBuYW1lOkAiaGFuZGxlclRvUmVtb3ZlIl07CiAg
ICAgW1tjb25maWd1cmF0aW9uQ29weSB1c2VyQ29udGVudENvbnRyb2xsZXJdIGFkZFNjcmlwdE1l
c3NhZ2VIYW5kbGVyOmhhbmRsZXIuZ2V0KCkgbmFtZTpAImhhbmRsZXJUb1Bvc3QiXTsKICAgICBS
ZXRhaW5QdHI8V0tXZWJWaWV3PiB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10g
aW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNv
bmZpZ3VyYXRpb25Db3B5LmdldCgpXSk7CkBAIC0yNTYsNyArMjU2LDcgQEAgVEVTVChXS1VzZXJD
b250ZW50Q29udHJvbGxlciwgU2NyaXB0TWVzc2FnZUhhbmRsZXJNdWx0aXBsZUhhbmRsZXJSZW1v
dmFsKQogCiAgICAgUmV0YWluUHRyPFdLV2ViVmlld0NvbmZpZ3VyYXRpb24+IGNvbmZpZ3VyYXRp
b24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAg
IFJldGFpblB0cjxfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24+IHByb2Nlc3NQb29sQ29uZmln
dXJhdGlvbiA9IGFkb3B0TlMoW1tfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gYWxsb2NdIGlu
aXRdKTsKLSAgICBbY29uZmlndXJhdGlvbiBzZXRQcm9jZXNzUG9vbDphZG9wdE5TKFtbV0tQcm9j
ZXNzUG9vbCBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjpwcm9jZXNzUG9vbENvbmZpZ3Vy
YXRpb24uZ2V0KCldKS5hdXRvcmVsZWFzZSgpXTsKKyAgICBbY29uZmlndXJhdGlvbiBzZXRQcm9j
ZXNzUG9vbDphZG9wdE5TKFtbV0tQcm9jZXNzUG9vbCBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJh
dGlvbjpwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uZ2V0KCldKS5nZXQoKV07CiAKICAgICBSZXRh
aW5QdHI8V0tXZWJWaWV3PiB3ZWJWaWV3ID0gd2ViVmlld0ZvclNjcmlwdE1lc3NhZ2VIYW5kbGVy
TXVsdGlwbGVIYW5kbGVyUmVtb3ZhbFRlc3QoY29uZmlndXJhdGlvbi5nZXQoKSk7CiAgICAgUmV0
YWluUHRyPFdLV2ViVmlldz4gd2ViVmlldzIgPSB3ZWJWaWV3Rm9yU2NyaXB0TWVzc2FnZUhhbmRs
ZXJNdWx0aXBsZUhhbmRsZXJSZW1vdmFsVGVzdChjb25maWd1cmF0aW9uLmdldCgpKTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tBdHRhY2htZW50
VGVzdHMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLQXR0YWNo
bWVudFRlc3RzLm1tCmluZGV4IDY2NmM3ZWRhNTM3MTAxMGYyMmI1MmE3NzJlMDFlMzllMDllMGYw
ODQuLjcwZTEwZmZlMTk4MjBkYzZmMzhmYzU3ZTRlMzU4YWNiN2M2ZmFjZmIgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tBdHRhY2htZW50VGVzdHMu
bW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0F0dGFjaG1l
bnRUZXN0cy5tbQpAQCAtMjA4Miw3ICsyMDgyLDcgQEAgVEVTVChXS0F0dGFjaG1lbnRUZXN0c0lP
UywgSW5zZXJ0RHJvcHBlZENvbnRhY3RBc0F0dGFjaG1lbnQpCiAKIFRFU1QoV0tBdHRhY2htZW50
VGVzdHNJT1MsIEluc2VydFBhc3RlZENvbnRhY3RBc0F0dGFjaG1lbnQpCiB7Ci0gICAgVUlQYXN0
ZWJvYXJkLmdlbmVyYWxQYXN0ZWJvYXJkLml0ZW1Qcm92aWRlcnMgPSBAWyBjb250YWN0SXRlbUZv
clRlc3RpbmcoKS5hdXRvcmVsZWFzZSgpIF07CisgICAgVUlQYXN0ZWJvYXJkLmdlbmVyYWxQYXN0
ZWJvYXJkLml0ZW1Qcm92aWRlcnMgPSBAWyBjb250YWN0SXRlbUZvclRlc3RpbmcoKS5nZXQoKSBd
OwogICAgIGF1dG8gd2ViVmlldyA9IHdlYlZpZXdGb3JUZXN0aW5nQXR0YWNobWVudHMoKTsKICAg
ICBPYnNlcnZlQXR0YWNobWVudFVwZGF0ZXNGb3JTY29wZSBvYnNlcnZlcih3ZWJWaWV3LmdldCgp
KTsKICAgICBbd2ViVmlldyBwYXN0ZTpuaWxdOwpAQCAtMjA5OSw3ICsyMDk5LDcgQEAgVEVTVChX
S0F0dGFjaG1lbnRUZXN0c0lPUywgSW5zZXJ0UGFzdGVkQ29udGFjdEFzQXR0YWNobWVudCkKIFRF
U1QoV0tBdHRhY2htZW50VGVzdHNJT1MsIEluc2VydFBhc3RlZE1hcEl0ZW1Bc0F0dGFjaG1lbnQp
CiB7CiAgICAgVUlBcHBsaWNhdGlvbkluaXRpYWxpemUoKTsKLSAgICBVSVBhc3RlYm9hcmQuZ2Vu
ZXJhbFBhc3RlYm9hcmQuaXRlbVByb3ZpZGVycyA9IEBbIG1hcEl0ZW1Gb3JUZXN0aW5nKCkuYXV0
b3JlbGVhc2UoKSBdOworICAgIFVJUGFzdGVib2FyZC5nZW5lcmFsUGFzdGVib2FyZC5pdGVtUHJv
dmlkZXJzID0gQFsgbWFwSXRlbUZvclRlc3RpbmcoKS5nZXQoKSBdOwogICAgIGF1dG8gd2ViVmll
dyA9IHdlYlZpZXdGb3JUZXN0aW5nQXR0YWNobWVudHMoKTsKICAgICBPYnNlcnZlQXR0YWNobWVu
dFVwZGF0ZXNGb3JTY29wZSBvYnNlcnZlcih3ZWJWaWV3LmdldCgpKTsKICAgICBbd2ViVmlldyBw
YXN0ZTpuaWxdOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9XS1BERlZpZXcubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L1dLUERGVmlldy5tbQppbmRleCBiOGYzZjIyMjFmYzI0MmNmY2NiYzQ1ODdhNWQ3MjhlZDZmNDZm
MDQ5Li5lNzJlNjBmNzQzYjFiM2RjNGQzY2YyZGExY2QxNWJmMDUxMDgyZmI4IDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLUERGVmlldy5tbQorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLUERGVmlldy5tbQpAQCAt
MTYxLDcgKzE2MSw3IEBAIHN0YXRpYyB2b2lkIGNoZWNrRnJhbWUoTlNSZWN0IGZyYW1lLCBDR0Zs
b2F0IHgsIENHRmxvYXQgeSwgQ0dGbG9hdCB3aWR0aCwgQ0dGbG9hCiAKIFRFU1QoUERGSFVELCBN
YWluUmVzb3VyY2VQREYpCiB7Ci0gICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dl
YlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29u
ZmlndXJhdGlvbjphZG9wdE5TKFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIG5ld10pLmF1dG9yZWxl
YXNlKCldKTsKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxv
Y10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9u
OmFkb3B0TlMoW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gbmV3XSkuZ2V0KCldKTsKICAgICBbd2Vi
VmlldyBsb2FkRGF0YTpwZGZEYXRhKCkgTUlNRVR5cGU6QCJhcHBsaWNhdGlvbi9wZGYiIGNoYXJh
Y3RlckVuY29kaW5nTmFtZTpAIiIgYmFzZVVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAImh0dHBz
Oi8vd3d3LmFwcGxlLmNvbS90ZXN0UGF0aCJdXTsKICAgICBFWFBFQ1RfRVEoW3dlYlZpZXcgX3Bk
ZkhVRHNdLmNvdW50LCAwdSk7CiAgICAgW3dlYlZpZXcgX3Rlc3Rfd2FpdEZvckRpZEZpbmlzaE5h
dmlnYXRpb25dOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9XS1VSTFNjaGVtZUhhbmRsZXItMS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvV0tVUkxTY2hlbWVIYW5kbGVyLTEubW0KaW5kZXggNmIwZmE1MTNlZWZlZWE1
MTdiNzM1YzIwY2QzZTVmMzU1MzE3YjYzMS4uNWM5YjMwMTIwNmIwNTkxZGU2N2QyMmUwYjhkNzgy
ZDdkYmZmMjcyYiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9XS1VSTFNjaGVtZUhhbmRsZXItMS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1dLVVJMU2NoZW1lSGFuZGxlci0xLm1tCkBAIC01NzksNyArNTc5LDcg
QEAgLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHN0YXJ0VVJMU2NoZW1lVGFz
azooaWQgPFdLVVJMU2NoZW1lVGFzaz4pdGEKICAgICAgICAgW3Rhc2sgZGlkRmluaXNoXTsKICAg
ICB9IGVsc2UgewogICAgICAgICBFWFBFQ1RfU1RSRVEodGFzay5yZXF1ZXN0LlVSTC5hYnNvbHV0
ZVN0cmluZy5VVEY4U3RyaW5nLCAic3luY2Vycm9yOi8vL3N1YnJlc291cmNlIik7Ci0gICAgICAg
IFt0YXNrIGRpZFJlY2VpdmVSZXNwb25zZTphZG9wdE5TKFtbTlNVUkxSZXNwb25zZSBhbGxvY10g
aW5pdF0pLmF1dG9yZWxlYXNlKCldOworICAgICAgICBbdGFzayBkaWRSZWNlaXZlUmVzcG9uc2U6
YWRvcHROUyhbW05TVVJMUmVzcG9uc2UgYWxsb2NdIGluaXRdKS5nZXQoKV07CiAgICAgICAgIFt0
YXNrIGRpZEZhaWxXaXRoRXJyb3I6W05TRXJyb3IgZXJyb3JXaXRoRG9tYWluOkAiVGVzdEVycm9y
RG9tYWluIiBjb2RlOjEyMyB1c2VySW5mbzpuaWxdXTsKICAgICB9CiB9CkBAIC04MDAsNyArODAw
LDcgQEAgVEVTVChVUkxTY2hlbWVIYW5kbGVyLCBDT1JTKQogICAgICAgICAgICAgICAgICAgICBA
IkFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbiI6IEAiKiIsCiAgICAgICAgICAgICAgICAgICAg
IEAiQ29udGVudC1MZW5ndGgiOiBAIjIiLAogICAgICAgICAgICAgICAgICAgICBAIkNvbnRlbnQt
VHlwZSI6QCJ0ZXh0L2h0bWwiCi0gICAgICAgICAgICAgICAgfV0pLmF1dG9yZWxlYXNlKCldOwor
ICAgICAgICAgICAgICAgIH1dKS5nZXQoKV07CiAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAg
ICAgICAgICBbdGFzayBkaWRSZWNlaXZlUmVzcG9uc2U6YWRvcHROUyhbW05TVVJMUmVzcG9uc2Ug
YWxsb2NdIGluaXRXaXRoVVJMOnRhc2sucmVxdWVzdC5VUkwgTUlNRVR5cGU6QCJ0ZXh0L2h0bWwi
IGV4cGVjdGVkQ29udGVudExlbmd0aDowIHRleHRFbmNvZGluZ05hbWU6bmlsXSkuZ2V0KCldOwog
ICAgICAgICAgICAgW3Rhc2sgZGlkUmVjZWl2ZURhdGE6W0AiSEkiIGRhdGFVc2luZ0VuY29kaW5n
Ok5TVVRGOFN0cmluZ0VuY29kaW5nXV07CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmlld0V2YWx1YXRlSmF2YVNjcmlwdC5tbSBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3RXZhbHVhdGVKYXZhU2Ny
aXB0Lm1tCmluZGV4IDU1YzUwMDZmZjg3YWE5MDEwYWFlNTg1Yzc3Yzk3MmMzMzMxMTM3ZGUuLjEw
MzA1MTU3ZTUyMzJlMWY0OTYwMzJiNWY4ZTAyN2FmZmY2MDY0ZWQgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3RXZhbHVhdGVKYXZhU2Ny
aXB0Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJW
aWV3RXZhbHVhdGVKYXZhU2NyaXB0Lm1tCkBAIC01MTEsNyArNTExLDcgQEAgVEVTVChFdmFsdWF0
ZUphdmFTY3JpcHQsIEphdmFTY3JpcHRJbkZyYW1lc0Zyb21Qb3N0TWVzc2FnZSkKICAgICBbaGFu
ZGxlciBzZXRTdGFydFVSTFNjaGVtZVRhc2tIYW5kbGVyOlsmXShXS1dlYlZpZXcgKiwgaWQ8V0tV
UkxTY2hlbWVUYXNrPiB0YXNrKSB7CiAgICAgICAgIGlmIChbdGFzay5yZXF1ZXN0LlVSTC5hYnNv
bHV0ZVN0cmluZyBpc0VxdWFsVG9TdHJpbmc6QCJmcmFtZXN0ZXN0Oi8vdGVzdC9pbmRleC5odG1s
Il0pIHsKICAgICAgICAgICAgIE5TRGF0YSAqZGF0YSA9IFtbTlNTdHJpbmcgc3RyaW5nV2l0aEZv
cm1hdDpAIiVzIiwgZnJhbWVzTWFpblJlc291cmNlXSBkYXRhVXNpbmdFbmNvZGluZzpOU1VURjhT
dHJpbmdFbmNvZGluZ107Ci0gICAgICAgICAgICBbdGFzayBkaWRSZWNlaXZlUmVzcG9uc2U6YWRv
cHROUyhbW05TVVJMUmVzcG9uc2UgYWxsb2NdIGluaXRXaXRoVVJMOnRhc2sucmVxdWVzdC5VUkwg
TUlNRVR5cGU6QCJ0ZXh0L2h0bWwiIGV4cGVjdGVkQ29udGVudExlbmd0aDpkYXRhLmxlbmd0aCB0
ZXh0RW5jb2RpbmdOYW1lOm5pbF0pLmF1dG9yZWxlYXNlKCldOworICAgICAgICAgICAgW3Rhc2sg
ZGlkUmVjZWl2ZVJlc3BvbnNlOmFkb3B0TlMoW1tOU1VSTFJlc3BvbnNlIGFsbG9jXSBpbml0V2l0
aFVSTDp0YXNrLnJlcXVlc3QuVVJMIE1JTUVUeXBlOkAidGV4dC9odG1sIiBleHBlY3RlZENvbnRl
bnRMZW5ndGg6ZGF0YS5sZW5ndGggdGV4dEVuY29kaW5nTmFtZTpuaWxdKS5nZXQoKV07CiAgICAg
ICAgICAgICBbdGFzayBkaWRSZWNlaXZlRGF0YTpkYXRhXTsKICAgICAgICAgICAgIFt0YXNrIGRp
ZEZpbmlzaF07CiAgICAgICAgIH0gZWxzZSBpZiAoW3Rhc2sucmVxdWVzdC5VUkwuYWJzb2x1dGVT
dHJpbmcgaXNFcXVhbFRvU3RyaW5nOkAib3RoZXJwcm90b2NvbDovL3Rlc3QvaW5kZXguaHRtbCJd
KSB7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9EcmFnQW5kRHJv
cFRlc3RzSU9TLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvRHJhZ0FuZERyb3BU
ZXN0c0lPUy5tbQppbmRleCAxOTAwYTU4ODM0MGNhZDJjNzA0MzM0NjRkNmRkMmZlNmIyMThiN2I5
Li4yN2Y3ODRiZDRiMTRlYTU5NDM4ZDIyMGMxNTdkNTRmOTM1ZjI2NmMyIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9EcmFnQW5kRHJvcFRlc3RzSU9TLm1tCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL0RyYWdBbmREcm9wVGVzdHNJT1MubW0KQEAg
LTExMTMsNyArMTExMyw3IEBAIFRFU1QoRHJhZ0FuZERyb3BUZXN0cywgRXh0ZXJuYWxTb3VyY2VN
YXBJdGVtSW50b0VkaXRhYmxlQXJlYXMpCiAgICAgW3dlYlZpZXcgX3N5bmNocm9ub3VzbHlFeGVj
dXRlRWRpdENvbW1hbmQ6QCJEZWxldGUiIGFyZ3VtZW50Om5pbF07CiAKICAgICBhdXRvIHNpbXVs
YXRvciA9IGFkb3B0TlMoW1tEcmFnQW5kRHJvcFNpbXVsYXRvciBhbGxvY10gaW5pdFdpdGhXZWJW
aWV3OndlYlZpZXcuZ2V0KCldKTsKLSAgICBbc2ltdWxhdG9yIHNldEV4dGVybmFsSXRlbVByb3Zp
ZGVyczpAWyBjcmVhdGVNYXBJdGVtRm9yVGVzdGluZygpLmF1dG9yZWxlYXNlKCkgXV07CisgICAg
W3NpbXVsYXRvciBzZXRFeHRlcm5hbEl0ZW1Qcm92aWRlcnM6QFsgY3JlYXRlTWFwSXRlbUZvclRl
c3RpbmcoKS5nZXQoKSBdXTsKICAgICBbc2ltdWxhdG9yIHJ1bkZyb206Q0dQb2ludE1ha2UoMCwg
MCkgdG86Q0dQb2ludE1ha2UoMTAwLCAxMDApXTsKICAgICBFWFBFQ1RfV0tfU1RSRVEoIkFwcGxl
IFBhcmsiLCBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZG9jdW1lbnQu
cXVlcnlTZWxlY3RvcignZGl2W2NvbnRlbnRlZGl0YWJsZV0nKS50ZXh0Q29udGVudCJdKTsKICAg
ICBOU1VSTCAqZmlyc3RVUkwgPSBbTlNVUkwgVVJMV2l0aFN0cmluZzpbd2ViVmlldyBzdHJpbmdC
eUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZG9jdW1lbnQucXVlcnlTZWxlY3RvcignYScpLmhyZWYi
XV07CkBAIC0xMTMxLDcgKzExMzEsNyBAQCBURVNUKERyYWdBbmREcm9wVGVzdHMsIEV4dGVybmFs
U291cmNlQ29udGFjdEludG9FZGl0YWJsZUFyZWFzKQogICAgIFt3ZWJWaWV3IF9zeW5jaHJvbm91
c2x5RXhlY3V0ZUVkaXRDb21tYW5kOkAiRGVsZXRlIiBhcmd1bWVudDpuaWxdOwogCiAgICAgYXV0
byBzaW11bGF0b3IgPSBhZG9wdE5TKFtbRHJhZ0FuZERyb3BTaW11bGF0b3IgYWxsb2NdIGluaXRX
aXRoV2ViVmlldzp3ZWJWaWV3LmdldCgpXSk7Ci0gICAgW3NpbXVsYXRvciBzZXRFeHRlcm5hbEl0
ZW1Qcm92aWRlcnM6QFsgY3JlYXRlQ29udGFjdEl0ZW1Gb3JUZXN0aW5nKCkuYXV0b3JlbGVhc2Uo
KSBdXTsKKyAgICBbc2ltdWxhdG9yIHNldEV4dGVybmFsSXRlbVByb3ZpZGVyczpAWyBjcmVhdGVD
b250YWN0SXRlbUZvclRlc3RpbmcoKS5nZXQoKSBdXTsKICAgICBbc2ltdWxhdG9yIHJ1bkZyb206
Q0dQb2ludE1ha2UoMCwgMCkgdG86Q0dQb2ludE1ha2UoMTAwLCAxMDApXTsKICAgICBFWFBFQ1Rf
V0tfU1RSRVEoIiIsIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1
bWVudC5xdWVyeVNlbGVjdG9yKCdkaXZbY29udGVudGVkaXRhYmxlXScpLnRleHRDb250ZW50Il0p
OwogCkBAIC0xMTQ1LDcgKzExNDUsNyBAQCBURVNUKERyYWdBbmREcm9wVGVzdHMsIEV4dGVybmFs
U291cmNlTWFwSXRlbUFuZENvbnRhY3RUb1VwbG9hZEFyZWEpCiAgICAgW3dlYlZpZXcgc3luY2hy
b25vdXNseUxvYWRUZXN0UGFnZU5hbWVkOkAiZmlsZS11cGxvYWRpbmciXTsKIAogICAgIGF1dG8g
c2ltdWxhdG9yID0gYWRvcHROUyhbW0RyYWdBbmREcm9wU2ltdWxhdG9yIGFsbG9jXSBpbml0V2l0
aFdlYlZpZXc6d2ViVmlldy5nZXQoKV0pOwotICAgIFtzaW11bGF0b3Igc2V0RXh0ZXJuYWxJdGVt
UHJvdmlkZXJzOkBbIGNyZWF0ZU1hcEl0ZW1Gb3JUZXN0aW5nKCkuYXV0b3JlbGVhc2UoKSwgY3Jl
YXRlQ29udGFjdEl0ZW1Gb3JUZXN0aW5nKCkuYXV0b3JlbGVhc2UoKSBdXTsKKyAgICBbc2ltdWxh
dG9yIHNldEV4dGVybmFsSXRlbVByb3ZpZGVyczpAWyBjcmVhdGVNYXBJdGVtRm9yVGVzdGluZygp
LmdldCgpLCBjcmVhdGVDb250YWN0SXRlbUZvclRlc3RpbmcoKS5nZXQoKSBdXTsKICAgICBbc2lt
dWxhdG9yIHJ1bkZyb206Q0dQb2ludE1ha2UoMjAwLCAxMDApIHRvOkNHUG9pbnRNYWtlKDEwMCwg
MzAwKV07CiAKICAgICBFWFBFQ1RfV0tfU1RSRVEoInRleHQvdmNhcmQsIHRleHQvdmNhcmQiLCBb
d2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAib3V0cHV0LnZhbHVlIl0pOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRm9udE1hbmFnZXJUZXN0
cy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0ZvbnRNYW5hZ2VyVGVzdHMubW0K
aW5kZXggYmNjZDlmYmU5MjJiY2EzODhjNThiMDNjYzI5ZDIxM2FhNTA3NmFmZi4uZWEzOWRiOGZk
NjUxOGQ2YjAxNjZlNzY5MzMyODdhMmQ4OGU4MGU1ZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9tYWMvRm9udE1hbmFnZXJUZXN0cy5tbQorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL21hYy9Gb250TWFuYWdlclRlc3RzLm1tCkBAIC0xMjMsMjIgKzEyMywyMiBA
QCBURVNUKEZvbnRNYW5hZ2VyVGVzdHMsIFRvZ2dsZUJvbGRBbmRJdGFsaWNXaXRoTWVudUl0ZW1z
KQogCiAgICAgW3dlYlZpZXcgc2VsZWN0V29yZDpuaWxdOwogICAgIFt3ZWJWaWV3IHdhaXRGb3JO
ZXh0UHJlc2VudGF0aW9uVXBkYXRlXTsKLSAgICBbZm9udE1hbmFnZXIgYWRkRm9udFRyYWl0Om1l
bnVJdGVtQ2VsbEZvckZvbnRBY3Rpb24oTlNCb2xkRm9udE1hc2spLmF1dG9yZWxlYXNlKCldOwor
ICAgIFtmb250TWFuYWdlciBhZGRGb250VHJhaXQ6bWVudUl0ZW1DZWxsRm9yRm9udEFjdGlvbihO
U0JvbGRGb250TWFzaykuZ2V0KCldOwogICAgIEVYUEVDVF9XS19TVFJFUSgiYm9sZCIsIFt3ZWJW
aWV3IHN0eWxlUHJvcGVydHlBdFNlbGVjdGlvblN0YXJ0OkAiZm9udC13ZWlnaHQiXSk7CiAgICAg
RVhQRUNUX1dLX1NUUkVRKCJib2xkIiwgW3dlYlZpZXcgc3R5bGVQcm9wZXJ0eUF0U2VsZWN0aW9u
RW5kOkAiZm9udC13ZWlnaHQiXSk7CiAgICAgRVhQRUNUX1dLX1NUUkVRKCJUaW1lcy1Cb2xkIiwg
W2ZvbnRNYW5hZ2VyIHNlbGVjdGVkRm9udF0uZm9udE5hbWUpOwogCi0gICAgW2ZvbnRNYW5hZ2Vy
IGFkZEZvbnRUcmFpdDptZW51SXRlbUNlbGxGb3JGb250QWN0aW9uKE5TVW5ib2xkRm9udE1hc2sp
LmF1dG9yZWxlYXNlKCldOworICAgIFtmb250TWFuYWdlciBhZGRGb250VHJhaXQ6bWVudUl0ZW1D
ZWxsRm9yRm9udEFjdGlvbihOU1VuYm9sZEZvbnRNYXNrKS5nZXQoKV07CiAgICAgRVhQRUNUX1dL
X1NUUkVRKCJub3JtYWwiLCBbd2ViVmlldyBzdHlsZVByb3BlcnR5QXRTZWxlY3Rpb25TdGFydDpA
ImZvbnQtd2VpZ2h0Il0pOwogICAgIEVYUEVDVF9XS19TVFJFUSgibm9ybWFsIiwgW3dlYlZpZXcg
c3R5bGVQcm9wZXJ0eUF0U2VsZWN0aW9uRW5kOkAiZm9udC13ZWlnaHQiXSk7CiAgICAgRVhQRUNU
X1dLX1NUUkVRKCJUaW1lcy1Sb21hbiIsIFtmb250TWFuYWdlciBzZWxlY3RlZEZvbnRdLmZvbnRO
YW1lKTsKIAotICAgIFtmb250TWFuYWdlciBhZGRGb250VHJhaXQ6bWVudUl0ZW1DZWxsRm9yRm9u
dEFjdGlvbihOU0l0YWxpY0ZvbnRNYXNrKS5hdXRvcmVsZWFzZSgpXTsKKyAgICBbZm9udE1hbmFn
ZXIgYWRkRm9udFRyYWl0Om1lbnVJdGVtQ2VsbEZvckZvbnRBY3Rpb24oTlNJdGFsaWNGb250TWFz
aykuZ2V0KCldOwogICAgIEVYUEVDVF9XS19TVFJFUSgiaXRhbGljIiwgW3dlYlZpZXcgc3R5bGVQ
cm9wZXJ0eUF0U2VsZWN0aW9uU3RhcnQ6QCJmb250LXN0eWxlIl0pOwogICAgIEVYUEVDVF9XS19T
VFJFUSgiaXRhbGljIiwgW3dlYlZpZXcgc3R5bGVQcm9wZXJ0eUF0U2VsZWN0aW9uRW5kOkAiZm9u
dC1zdHlsZSJdKTsKICAgICBFWFBFQ1RfV0tfU1RSRVEoIlRpbWVzLUl0YWxpYyIsIFtmb250TWFu
YWdlciBzZWxlY3RlZEZvbnRdLmZvbnROYW1lKTsKIAotICAgIFtmb250TWFuYWdlciBhZGRGb250
VHJhaXQ6bWVudUl0ZW1DZWxsRm9yRm9udEFjdGlvbihOU1VuaXRhbGljRm9udE1hc2spLmF1dG9y
ZWxlYXNlKCldOworICAgIFtmb250TWFuYWdlciBhZGRGb250VHJhaXQ6bWVudUl0ZW1DZWxsRm9y
Rm9udEFjdGlvbihOU1VuaXRhbGljRm9udE1hc2spLmdldCgpXTsKICAgICBFWFBFQ1RfV0tfU1RS
RVEoIm5vcm1hbCIsIFt3ZWJWaWV3IHN0eWxlUHJvcGVydHlBdFNlbGVjdGlvblN0YXJ0OkAiZm9u
dC1zdHlsZSJdKTsKICAgICBFWFBFQ1RfV0tfU1RSRVEoIm5vcm1hbCIsIFt3ZWJWaWV3IHN0eWxl
UHJvcGVydHlBdFNlbGVjdGlvbkVuZDpAImZvbnQtc3R5bGUiXSk7CiAgICAgRVhQRUNUX1dLX1NU
UkVRKCJUaW1lcy1Sb21hbiIsIFtmb250TWFuYWdlciBzZWxlY3RlZEZvbnRdLmZvbnROYW1lKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421053</attachid>
            <date>2021-02-19 16:00:12 -0800</date>
            <delta_ts>2021-02-19 21:01:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222177-20210219160012.patch</filename>
            <type>text/plain</type>
            <size>84131</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczMTc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
ZDU4YTExZGFlYjc3MDhkMjJhMTRmMzNlNWJkZmM0ZTM3MWMzYmM3Li4xNjIxMDU0NmFmNjM0ZGFh
MDI3MDRiYmRjOTBjNGZkZTUzM2ExNDU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAyMS0wMi0xOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFJldmlldyByZW1haW5pbmcgdXNhZ2Ugb2YgYXV0b3JlbGVhc2UgdG8gbWFrZSBz
dXJlIGl0IGlzIG5lY2Vzc2FyeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjIyMTc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBBUEkvSlNDb250ZXh0Lm1tOgorICAgICAgICAoK1tKU0NvbnRleHQgY29u
dGV4dFdpdGhKU0dsb2JhbENvbnRleHRSZWY6XSk6CisgICAgICAgICogQVBJL0pTVmlydHVhbE1h
Y2hpbmUubW06CisgICAgICAgICgrW0pTVmlydHVhbE1hY2hpbmUgdmlydHVhbE1hY2hpbmVXaXRo
Q29udGV4dEdyb3VwUmVmOl0pOgorICAgICAgICAqIEFQSS9KU1dyYXBwZXJNYXAubW06CisgICAg
ICAgICgtW0pTV3JhcHBlck1hcCBvYmpjV3JhcHBlckZvckpTVmFsdWVSZWY6aW5Db250ZXh0Ol0p
OgorCiAyMDIxLTAyLTE5ICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgogCiAg
ICAgICAgIE1pbm9yIGZpeGVzIHRvIFJlZ0V4cCBtYXRjaCBpbmRpY2VzIGFmdGVyIHIyNzMwODYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBlNmYzZjAzYzk5NTdjMTRiYzllODA2Mjg1NWY2ZjI0ZWNiNDBiZWQ5Li44
ZTVmZWY4YWU2YmIyYzg2N2Q2ZWY3MDlmNWMxZmFjN2ZjZWJiNDdlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTMgQEAKKzIwMjEtMDItMTkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
KworICAgICAgICBSZXZpZXcgcmVtYWluaW5nIHVzYWdlIG9mIGF1dG9yZWxlYXNlIHRvIG1ha2Ug
c3VyZSBpdCBpcyBuZWNlc3NhcnkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyMjE3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJB
VktpdC5tbToKKyAgICAgICAgKC1bV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlciBkaWRGaW5p
c2hGdWxsc2NyZWVuOl0pOgorCiAyMDIxLTAyLTE2ICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBh
cHBsZS5jb20+CiAKICAgICAgICAgUENNOiBHZW5lcmF0ZSBzZWNyZXQgdG9rZW4gYW5kIGNvcnJl
c3BvbmRpbmcgdW5saW5rYWJsZSB0b2tlbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAzYzg5NDQ4M2ExZmEyZWFjYTQx
ZWU0N2Y3MTVhMGE3ZjAzYWE4M2FmLi4zYTBhNDg2ZWVmZmFmZmI4NTYzM2IzNDg2YTBhODYzOWZj
YTYyYTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIxLTAyLTE5ICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3IHJlbWFpbmluZyB1c2FnZSBv
ZiBhdXRvcmVsZWFzZSB0byBtYWtlIHN1cmUgaXQgaXMgbmVjZXNzYXJ5CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIxNzcKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29h
L05ldHdvcmtTZXNzaW9uQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9u
Q29jb2E6Ok5ldHdvcmtTZXNzaW9uQ29jb2EpOgorICAgICAgICAqIFBsYXRmb3JtL2NvY29hL1dL
UGF5bWVudEF1dGhvcml6YXRpb25EZWxlZ2F0ZS5tbToKKyAgICAgICAgKC1bV0tQYXltZW50QXV0
aG9yaXphdGlvbkRlbGVnYXRlIGNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbjpdKToKKyAg
ICAgICAgKC1bV0tQYXltZW50QXV0aG9yaXphdGlvbkRlbGVnYXRlIGNvbXBsZXRlU2hpcHBpbmdD
b250YWN0U2VsZWN0aW9uOl0pOgorICAgICAgICAoLVtXS1BheW1lbnRBdXRob3JpemF0aW9uRGVs
ZWdhdGUgY29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbjpdKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL05TQXR0cmlidXRlZFN0cmluZy5tbToKKyAgICAgICAgKCtbX1dLQXR0
cmlidXRlZFN0cmluZ1dlYlZpZXdDYWNoZSBjb25maWd1cmF0aW9uXSk6CisgICAgICAgICgrW05T
QXR0cmlidXRlZFN0cmluZyBfbG9hZEZyb21IVE1MV2l0aE9wdGlvbnM6Y29udGVudExvYWRlcjpj
b21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJv
d3NpbmdDb250ZXh0Q29udHJvbGxlci5tbToKKyAgICAgICAgKHNldFVwUGFnZVBvbGljeUNsaWVu
dCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAg
ICgtW1dLV2ViVmlldyBfdGFrZVBERlNuYXBzaG90V2l0aENvbmZpZ3VyYXRpb246Y29tcGxldGlv
bkhhbmRsZXI6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3VGVzdGlu
Z0lPUy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9yZXF1ZXN0VGV4dElucHV0Q29udGV4dHNJ
blJlY3Q6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5z
L05ldHNjYXBlL21hYy9OZXRzY2FwZVBsdWdpbk1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6Y29u
dmVydFRvTlBOTlN0cmluZyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XS0Fj
Y2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0TWFjLm1tOgorICAgICAgICAoLVtXS0FjY2Vzc2liaWxp
dHlXZWJQYWdlT2JqZWN0IEFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORF0pOgor
CiAyMDIxLTAyLTE5ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbaU9TXSBSZW1vdmUgYWNjZXNzIHRvIElPU3VyZmFjZUFjY2VsZXJhdG9yQ2xpZW50CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggYTkxYmRhYjE3ZWQ1YjdjZTNiM2RkYjk3Y2Iy
YTc2YzQ5NmM1ODJmZi4uMzAyNDk1NWM5MDg5OGEwZTA1NzZkZTVjNmQwODdiNTBmN2RkY2NmYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTAyLTE5
ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3IHJlbWFp
bmluZyB1c2FnZSBvZiBhdXRvcmVsZWFzZSB0byBtYWtlIHN1cmUgaXQgaXMgbmVjZXNzYXJ5Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIxNzcKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE1pc2MvV2Vi
TlNPYmplY3RFeHRyYXMubW06CisgICAgICAgICgtW1dlYk1haW5UaHJlYWRJbnZva2VyIGZvcndh
cmRJbnZvY2F0aW9uOl0pOgorICAgICAgICAqIFBsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5WaWV3
Lm1tOgorICAgICAgICAoLVtXZWJOZXRzY2FwZVBsdWdpblZpZXcgc2VuZEV2ZW50OmlzRHJhd1Jl
Y3Q6XSk6CisgICAgICAgICogV2ViVmlldy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyLm1t
OgorICAgICAgICAoLVtXZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyIGluaXRdKToKKwogMjAy
MS0wMi0xOSAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgW1Bh
eW1lbnQgUmVxdWVzdF0gYWRkIHN1cHBvcnQgZm9yIEFwcGxlIFBheSBwYXltZW50IG1ldGhvZCBt
b2RlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dC5tbSBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDb250ZXh0Lm1tCmluZGV4IDJjYzJmNmM4OWZk
YzNhNDk5YWM0MTE2MjdlZDdhMzNiNjUwZjFkNWMuLmUzYWYwYjE0MWRlODE3ZDI4NzU4YjMwMzgw
MTFjMmQxZWNjYTM2MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlND
b250ZXh0Lm1tCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDb250ZXh0Lm1tCkBA
IC00MDYsMTAgKzQwNiwxMCBAQCAtIChKU1ZhbHVlICopd3JhcHBlckZvckpTT2JqZWN0OihKU1Zh
bHVlUmVmKXZhbHVlCiArIChKU0NvbnRleHQgKiljb250ZXh0V2l0aEpTR2xvYmFsQ29udGV4dFJl
ZjooSlNHbG9iYWxDb250ZXh0UmVmKWdsb2JhbENvbnRleHQKIHsKICAgICBKU1ZpcnR1YWxNYWNo
aW5lICp2aXJ0dWFsTWFjaGluZSA9IFtKU1ZpcnR1YWxNYWNoaW5lIHZpcnR1YWxNYWNoaW5lV2l0
aENvbnRleHRHcm91cFJlZjp0b1JlZigmdG9KUyhnbG9iYWxDb250ZXh0KS0+dm0oKSldOwotICAg
IEpTQ29udGV4dCAqY29udGV4dCA9IFt2aXJ0dWFsTWFjaGluZSBjb250ZXh0Rm9yR2xvYmFsQ29u
dGV4dFJlZjpnbG9iYWxDb250ZXh0XTsKKyAgICBhdXRvIGNvbnRleHQgPSByZXRhaW5QdHIoW3Zp
cnR1YWxNYWNoaW5lIGNvbnRleHRGb3JHbG9iYWxDb250ZXh0UmVmOmdsb2JhbENvbnRleHRdKTsK
ICAgICBpZiAoIWNvbnRleHQpCi0gICAgICAgIGNvbnRleHQgPSBhZG9wdE5TKFtbSlNDb250ZXh0
IGFsbG9jXSBpbml0V2l0aEdsb2JhbENvbnRleHRSZWY6Z2xvYmFsQ29udGV4dF0pLmF1dG9yZWxl
YXNlKCk7Ci0gICAgcmV0dXJuIGNvbnRleHQ7CisgICAgICAgIGNvbnRleHQgPSBhZG9wdE5TKFtb
SlNDb250ZXh0IGFsbG9jXSBpbml0V2l0aEdsb2JhbENvbnRleHRSZWY6Z2xvYmFsQ29udGV4dF0p
OworICAgIHJldHVybiBjb250ZXh0LmF1dG9yZWxlYXNlKCk7CiB9CiAKIEBlbmQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWaXJ0dWFsTWFjaGluZS5tbSBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWaXJ0dWFsTWFjaGluZS5tbQppbmRleCAwYjM0Zjg5MDk4
ZjVmMTg2MzNmZDA5YTk5NjBkMTlkNzdjZTBkMmRhLi4zMDMyMjY0MDFkNDRkY2ZkNTM4ZTBkODJm
YTBhZGNlYjQzZTUyZDlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pT
VmlydHVhbE1hY2hpbmUubW0KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZpcnR1
YWxNYWNoaW5lLm1tCkBAIC0yMzQsMTAgKzIzNCwxMCBAQCBKU0NvbnRleHRHcm91cFJlZiBnZXRH
cm91cEZyb21WaXJ0dWFsTWFjaGluZShKU1ZpcnR1YWxNYWNoaW5lICp2aXJ0dWFsTWFjaGluZSkK
IAogKyAoSlNWaXJ0dWFsTWFjaGluZSAqKXZpcnR1YWxNYWNoaW5lV2l0aENvbnRleHRHcm91cFJl
ZjooSlNDb250ZXh0R3JvdXBSZWYpZ3JvdXAKIHsKLSAgICBKU1ZpcnR1YWxNYWNoaW5lICp2aXJ0
dWFsTWFjaGluZSA9IFtKU1ZNV3JhcHBlckNhY2hlIHdyYXBwZXJGb3JKU0NvbnRleHRHcm91cFJl
Zjpncm91cF07CisgICAgYXV0byB2aXJ0dWFsTWFjaGluZSA9IHJldGFpblB0cihbSlNWTVdyYXBw
ZXJDYWNoZSB3cmFwcGVyRm9ySlNDb250ZXh0R3JvdXBSZWY6Z3JvdXBdKTsKICAgICBpZiAoIXZp
cnR1YWxNYWNoaW5lKQotICAgICAgICB2aXJ0dWFsTWFjaGluZSA9IGFkb3B0TlMoW1tKU1ZpcnR1
YWxNYWNoaW5lIGFsbG9jXSBpbml0V2l0aENvbnRleHRHcm91cFJlZjpncm91cF0pLmF1dG9yZWxl
YXNlKCk7Ci0gICAgcmV0dXJuIHZpcnR1YWxNYWNoaW5lOworICAgICAgICB2aXJ0dWFsTWFjaGlu
ZSA9IGFkb3B0TlMoW1tKU1ZpcnR1YWxNYWNoaW5lIGFsbG9jXSBpbml0V2l0aENvbnRleHRHcm91
cFJlZjpncm91cF0pOworICAgIHJldHVybiB2aXJ0dWFsTWFjaGluZS5hdXRvcmVsZWFzZSgpOwog
fQogCiAtIChKU0NvbnRleHQgKiljb250ZXh0Rm9yR2xvYmFsQ29udGV4dFJlZjooSlNHbG9iYWxD
b250ZXh0UmVmKWdsb2JhbENvbnRleHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvSlNXcmFwcGVyTWFwLm1tIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1dyYXBw
ZXJNYXAubW0KaW5kZXggZDg5YmZlYTRiYmRiYjM5ODJmYTBlMGNlYzIyMjdkODk2OGRjYjZjYS4u
ZjAzNzc1MmU0OTliNWNkYzQyMzVlMjhlMmI1ZjFjMmNiZWNkMDlmZCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1dyYXBwZXJNYXAubW0KKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU1dyYXBwZXJNYXAubW0KQEAgLTY2NCwxMiArNjY0LDEyIEBAIC0gKEpT
VmFsdWUgKilqc1dyYXBwZXJGb3JPYmplY3Q6KGlkKW9iamVjdCBpbkNvbnRleHQ6KEpTQ29udGV4
dCAqKWNvbnRleHQKIC0gKEpTVmFsdWUgKilvYmpjV3JhcHBlckZvckpTVmFsdWVSZWY6KEpTVmFs
dWVSZWYpdmFsdWUgaW5Db250ZXh0OmNvbnRleHQKIHsKICAgICBBU1NFUlQodG9KU0dsb2JhbE9i
amVjdChbY29udGV4dCBKU0dsb2JhbENvbnRleHRSZWZdKS0+d3JhcHBlck1hcCgpID09IHNlbGYp
OwotICAgIEpTVmFsdWUgKndyYXBwZXIgPSAoX19icmlkZ2UgSlNWYWx1ZSAqKU5TTWFwR2V0KG1f
Y2FjaGVkT2JqQ1dyYXBwZXJzLmdldCgpLCB2YWx1ZSk7CisgICAgYXV0byB3cmFwcGVyID0gcmV0
YWluUHRyKChfX2JyaWRnZSBKU1ZhbHVlICopTlNNYXBHZXQobV9jYWNoZWRPYmpDV3JhcHBlcnMu
Z2V0KCksIHZhbHVlKSk7CiAgICAgaWYgKCF3cmFwcGVyKSB7Ci0gICAgICAgIHdyYXBwZXIgPSBh
ZG9wdE5TKFtbSlNWYWx1ZSBhbGxvY10gaW5pdFdpdGhWYWx1ZTp2YWx1ZSBpbkNvbnRleHQ6Y29u
dGV4dF0pLmF1dG9yZWxlYXNlKCk7Ci0gICAgICAgIE5TTWFwSW5zZXJ0KG1fY2FjaGVkT2JqQ1dy
YXBwZXJzLmdldCgpLCB2YWx1ZSwgKF9fYnJpZGdlIHZvaWQqKXdyYXBwZXIpOworICAgICAgICB3
cmFwcGVyID0gYWRvcHROUyhbW0pTVmFsdWUgYWxsb2NdIGluaXRXaXRoVmFsdWU6dmFsdWUgaW5D
b250ZXh0OmNvbnRleHRdKTsKKyAgICAgICAgTlNNYXBJbnNlcnQobV9jYWNoZWRPYmpDV3JhcHBl
cnMuZ2V0KCksIHZhbHVlLCAoX19icmlkZ2Ugdm9pZCopd3JhcHBlci5nZXQoKSk7CiAgICAgfQot
ICAgIHJldHVybiB3cmFwcGVyOworICAgIHJldHVybiB3cmFwcGVyLmF1dG9yZWxlYXNlKCk7CiB9
CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRl
b0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tCmluZGV4IDY2YmM0ZGZiMmZm
ZDZjMWQyZDhlMmM0MjU1ZTkyYzBlYjNlMmYxMDEuLjQwZWU4YTdiMDNjNmJkZDc2NTE2NTliNzgy
NjViNTU2NzY3YzA0YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9X
ZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5tbQpAQCAtMTA2
Miw3ICsxMDYyLDcgQEAgLSAodm9pZClkaWRGaW5pc2hGdWxsc2NyZWVuOihWaWRlb0Z1bGxzY3Jl
ZW5Db250cm9sbGVyQ29udGV4dCopY29udGV4dAogewogICAgIEFTU0VSVChXZWJUaHJlYWRJc0N1
cnJlbnQoKSk7CiAgICAgQVNTRVJUX1VOVVNFRChjb250ZXh0LCBjb250ZXh0ID09IF9jb250ZXh0
KTsKLSAgICByZXRhaW5QdHIoc2VsZikuYXV0b3JlbGVhc2UoKTsgLy8gcmV0YWluIHNlbGYgYmVm
b3JlIGJyZWFraW5nIGEgcmV0YWluIGN5Y2xlLgorICAgIGF1dG8gc3Ryb25nU2VsZiA9IHJldGFp
blB0cihzZWxmKTsgLy8gcmV0YWluIHNlbGYgYmVmb3JlIGJyZWFraW5nIGEgcmV0YWluIGN5Y2xl
LgogICAgIF9jb250ZXh0LT5zZXRDb250cm9sbGVyKG5pbCk7CiAgICAgX2NvbnRleHQgPSBudWxs
cHRyOwogICAgIF92aWRlb0VsZW1lbnQgPSBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCmluZGV4
IDZlNTQ1NmU5M2RkYmQ4ZThiYTFhOTBjNmMyODQ3YzAzNGNlNzIzMjYuLjlhMTY0YzEzM2NlN2M3
MmRhYzVmOThlN2UzYWEyYmRmYzQxOWMyNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0KQEAgLTEyMzIs
NyArMTIzMiw3IEBAIE5ldHdvcmtTZXNzaW9uQ29jb2E6Ok5ldHdvcmtTZXNzaW9uQ29jb2EoTmV0
d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBOZXR3b3JrCiAgICAgICAgIFNhbmRib3hFeHRl
bnNpb246OmNvbnN1bWVQZXJtYW5lbnRseShwYXJhbWV0ZXJzLmhzdHNTdG9yYWdlRGlyZWN0b3J5
RXh0ZW5zaW9uSGFuZGxlKTsKICAgICAgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIHJlc3BvbmRz
VG9TZWxlY3RvciBjaGVjayBvbmNlIHJkYXI6Ly9wcm9ibGVtLzUwMTA5NjMxIGlzIGluIGEgYnVp
bGQgYW5kIGJvdHMgYXJlIHVwZGF0ZWQuCiAgICAgICAgIGlmIChbY29uZmlndXJhdGlvbiByZXNw
b25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF9oc3RzU3RvcmFnZSldKQotICAgICAgICAgICAgY29u
ZmlndXJhdGlvbi5faHN0c1N0b3JhZ2UgPSBhZG9wdE5TKFthbGxvY19OU0hTVFNTdG9yYWdlSW5z
dGFuY2UoKSBpbml0UGVyc2lzdGVudFN0b3JlV2l0aFVSTDpbTlNVUkwgZmlsZVVSTFdpdGhQYXRo
OnBhcmFtZXRlcnMuaHN0c1N0b3JhZ2VEaXJlY3RvcnkgaXNEaXJlY3Rvcnk6WUVTXV0pLmF1dG9y
ZWxlYXNlKCk7CisgICAgICAgICAgICBjb25maWd1cmF0aW9uLl9oc3RzU3RvcmFnZSA9IGFkb3B0
TlMoW2FsbG9jX05TSFNUU1N0b3JhZ2VJbnN0YW5jZSgpIGluaXRQZXJzaXN0ZW50U3RvcmVXaXRo
VVJMOltOU1VSTCBmaWxlVVJMV2l0aFBhdGg6cGFyYW1ldGVycy5oc3RzU3RvcmFnZURpcmVjdG9y
eSBpc0RpcmVjdG9yeTpZRVNdXSkuZ2V0KCk7CiAgICAgfQogI2VuZGlmCiAKQEAgLTEyNjcsNyAr
MTI2Nyw3IEBAIE5ldHdvcmtTZXNzaW9uQ29jb2E6Ok5ldHdvcmtTZXNzaW9uQ29jb2EoTmV0d29y
a1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBOZXR3b3JrCiAjaWYgSEFWRShDRk5FVFdPUktfQUxU
RVJOQVRJVkVfU0VSVklDRSkKICAgICBpZiAoIXBhcmFtZXRlcnMuYWx0ZXJuYXRpdmVTZXJ2aWNl
RGlyZWN0b3J5LmlzRW1wdHkoKSkgewogICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1l
UGVybWFuZW50bHkocGFyYW1ldGVycy5hbHRlcm5hdGl2ZVNlcnZpY2VEaXJlY3RvcnlFeHRlbnNp
b25IYW5kbGUpOwotICAgICAgICBjb25maWd1cmF0aW9uLl9hbHRlcm5hdGl2ZVNlcnZpY2VzU3Rv
cmFnZSA9IGFkb3B0TlMoW1tfTlNIVFRQQWx0ZXJuYXRpdmVTZXJ2aWNlc1N0b3JhZ2UgYWxsb2Nd
IGluaXRQZXJzaXN0ZW50U3RvcmVXaXRoVVJMOltbTlNVUkwgZmlsZVVSTFdpdGhQYXRoOnBhcmFt
ZXRlcnMuYWx0ZXJuYXRpdmVTZXJ2aWNlRGlyZWN0b3J5IGlzRGlyZWN0b3J5OllFU10gVVJMQnlB
cHBlbmRpbmdQYXRoQ29tcG9uZW50OkAiQWx0ZXJuYXRpdmVTZXJ2aWNlLnNxbGl0ZSJdXSkuYXV0
b3JlbGVhc2UoKTsKKyAgICAgICAgY29uZmlndXJhdGlvbi5fYWx0ZXJuYXRpdmVTZXJ2aWNlc1N0
b3JhZ2UgPSBhZG9wdE5TKFtbX05TSFRUUEFsdGVybmF0aXZlU2VydmljZXNTdG9yYWdlIGFsbG9j
XSBpbml0UGVyc2lzdGVudFN0b3JlV2l0aFVSTDpbW05TVVJMIGZpbGVVUkxXaXRoUGF0aDpwYXJh
bWV0ZXJzLmFsdGVybmF0aXZlU2VydmljZURpcmVjdG9yeSBpc0RpcmVjdG9yeTpZRVNdIFVSTEJ5
QXBwZW5kaW5nUGF0aENvbXBvbmVudDpAIkFsdGVybmF0aXZlU2VydmljZS5zcWxpdGUiXV0pLmdl
dCgpOwogICAgIH0KICAgICBpZiAocGFyYW1ldGVycy5odHRwM0VuYWJsZWQpCiAgICAgICAgIGNv
bmZpZ3VyYXRpb24uX2FsbG93c0hUVFAzID0gWUVTOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9QbGF0Zm9ybS9jb2NvYS9XS1BheW1lbnRBdXRob3JpemF0aW9uRGVsZWdhdGUubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtL2NvY29hL1dLUGF5bWVudEF1dGhvcml6YXRpb25EZWxlZ2F0ZS5t
bQppbmRleCBiM2UxMjMwZjY0ODA1NDc4OTJhZWRmZTk2NjIyYzFiOTg1NWYwMjE5Li4zNzBhNTU4
OGY1ZGVlMjk5YWJkYjA4ZWVhZmM4OGQ1NzVjMmZhZGQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtL2NvY29hL1dLUGF5bWVudEF1dGhvcml6YXRpb25EZWxlZ2F0ZS5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL2NvY29hL1dLUGF5bWVudEF1dGhvcml6YXRpb25EZWxl
Z2F0ZS5tbQpAQCAtNjgsOSArNjgsOSBAQCAtICh2b2lkKWNvbXBsZXRlTWVyY2hhbnRWYWxpZGF0
aW9uOihQS1BheW1lbnRNZXJjaGFudFNlc3Npb24gKilzZXNzaW9uIGVycm9yOihOUwogCiAtICh2
b2lkKWNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbjooUEtQYXltZW50UmVxdWVzdFBheW1l
bnRNZXRob2RVcGRhdGUgKilwYXltZW50TWV0aG9kVXBkYXRlCiB7Ci0gICAgUEtQYXltZW50UmVx
dWVzdFBheW1lbnRNZXRob2RVcGRhdGUgKnVwZGF0ZSA9IHBheW1lbnRNZXRob2RVcGRhdGUgPzog
YWRvcHROUyhbUEFMOjphbGxvY1BLUGF5bWVudFJlcXVlc3RQYXltZW50TWV0aG9kVXBkYXRlSW5z
dGFuY2UoKSBpbml0V2l0aFBheW1lbnRTdW1tYXJ5SXRlbXM6X3N1bW1hcnlJdGVtcy5nZXQoKV0p
LmF1dG9yZWxlYXNlKCk7Ci0gICAgX3N1bW1hcnlJdGVtcyA9IGFkb3B0TlMoW3VwZGF0ZS5wYXlt
ZW50U3VtbWFyeUl0ZW1zIGNvcHldKTsKLSAgICBzdGQ6OmV4Y2hhbmdlKF9kaWRTZWxlY3RQYXlt
ZW50TWV0aG9kQ29tcGxldGlvbiwgbmlsKSh1cGRhdGUpOworICAgIGF1dG8gdXBkYXRlID0gIXBh
eW1lbnRNZXRob2RVcGRhdGUgPyBhZG9wdE5TKFtQQUw6OmFsbG9jUEtQYXltZW50UmVxdWVzdFBh
eW1lbnRNZXRob2RVcGRhdGVJbnN0YW5jZSgpIGluaXRXaXRoUGF5bWVudFN1bW1hcnlJdGVtczpf
c3VtbWFyeUl0ZW1zLmdldCgpXSkgOiBuaWw7CisgICAgX3N1bW1hcnlJdGVtcyA9IGFkb3B0TlMo
W1t1cGRhdGUgcGF5bWVudFN1bW1hcnlJdGVtc10gY29weV0pOworICAgIHN0ZDo6ZXhjaGFuZ2Uo
X2RpZFNlbGVjdFBheW1lbnRNZXRob2RDb21wbGV0aW9uLCBuaWwpKHVwZGF0ZS5nZXQoKSk7CiB9
CiAKIC0gKHZvaWQpY29tcGxldGVQYXltZW50U2Vzc2lvbjooUEtQYXltZW50QXV0aG9yaXphdGlv
blN0YXR1cylzdGF0dXMgZXJyb3JzOihOU0FycmF5PE5TRXJyb3IgKj4gKillcnJvcnMKQEAgLTgw
LDE3ICs4MCwxNyBAQCAtICh2b2lkKWNvbXBsZXRlUGF5bWVudFNlc3Npb246KFBLUGF5bWVudEF1
dGhvcml6YXRpb25TdGF0dXMpc3RhdHVzIGVycm9yczooTlNBcgogfQogLSAodm9pZCljb21wbGV0
ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbjooUEtQYXltZW50UmVxdWVzdFNoaXBwaW5nQ29udGFj
dFVwZGF0ZSAqKXNoaXBwaW5nQ29udGFjdFVwZGF0ZQogewotICAgIFBLUGF5bWVudFJlcXVlc3RT
aGlwcGluZ0NvbnRhY3RVcGRhdGUgKnVwZGF0ZSA9IHNoaXBwaW5nQ29udGFjdFVwZGF0ZSA/OiBh
ZG9wdE5TKFtQQUw6OmFsbG9jUEtQYXltZW50UmVxdWVzdFNoaXBwaW5nQ29udGFjdFVwZGF0ZUlu
c3RhbmNlKCkgaW5pdFdpdGhFcnJvcnM6QFtdIHBheW1lbnRTdW1tYXJ5SXRlbXM6X3N1bW1hcnlJ
dGVtcy5nZXQoKSBzaGlwcGluZ01ldGhvZHM6X3NoaXBwaW5nTWV0aG9kcy5nZXQoKV0pLmF1dG9y
ZWxlYXNlKCk7Ci0gICAgX3N1bW1hcnlJdGVtcyA9IGFkb3B0TlMoW3VwZGF0ZS5wYXltZW50U3Vt
bWFyeUl0ZW1zIGNvcHldKTsKLSAgICBfc2hpcHBpbmdNZXRob2RzID0gYWRvcHROUyhbdXBkYXRl
LnNoaXBwaW5nTWV0aG9kcyBjb3B5XSk7Ci0gICAgc3RkOjpleGNoYW5nZShfZGlkU2VsZWN0U2hp
cHBpbmdDb250YWN0Q29tcGxldGlvbiwgbmlsKSh1cGRhdGUpOworICAgIGF1dG8gdXBkYXRlID0g
IXNoaXBwaW5nQ29udGFjdFVwZGF0ZSA/IGFkb3B0TlMoW1BBTDo6YWxsb2NQS1BheW1lbnRSZXF1
ZXN0U2hpcHBpbmdDb250YWN0VXBkYXRlSW5zdGFuY2UoKSBpbml0V2l0aEVycm9yczpAW10gcGF5
bWVudFN1bW1hcnlJdGVtczpfc3VtbWFyeUl0ZW1zLmdldCgpIHNoaXBwaW5nTWV0aG9kczpfc2hp
cHBpbmdNZXRob2RzLmdldCgpXSkgOiBuaWw7CisgICAgX3N1bW1hcnlJdGVtcyA9IGFkb3B0TlMo
W1t1cGRhdGUgcGF5bWVudFN1bW1hcnlJdGVtc10gY29weV0pOworICAgIF9zaGlwcGluZ01ldGhv
ZHMgPSBhZG9wdE5TKFtbdXBkYXRlIHNoaXBwaW5nTWV0aG9kc10gY29weV0pOworICAgIHN0ZDo6
ZXhjaGFuZ2UoX2RpZFNlbGVjdFNoaXBwaW5nQ29udGFjdENvbXBsZXRpb24sIG5pbCkodXBkYXRl
LmdldCgpKTsKIH0KIAogLSAodm9pZCljb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uOihQ
S1BheW1lbnRSZXF1ZXN0U2hpcHBpbmdNZXRob2RVcGRhdGUgKilzaGlwcGluZ01ldGhvZFVwZGF0
ZQogewotICAgIFBLUGF5bWVudFJlcXVlc3RTaGlwcGluZ01ldGhvZFVwZGF0ZSAqdXBkYXRlID0g
c2hpcHBpbmdNZXRob2RVcGRhdGUgPzogYWRvcHROUyhbUEFMOjphbGxvY1BLUGF5bWVudFJlcXVl
c3RTaGlwcGluZ01ldGhvZFVwZGF0ZUluc3RhbmNlKCkgaW5pdFdpdGhQYXltZW50U3VtbWFyeUl0
ZW1zOl9zdW1tYXJ5SXRlbXMuZ2V0KCldKS5hdXRvcmVsZWFzZSgpOwotICAgIF9zdW1tYXJ5SXRl
bXMgPSBhZG9wdE5TKFt1cGRhdGUucGF5bWVudFN1bW1hcnlJdGVtcyBjb3B5XSk7Ci0gICAgc3Rk
OjpleGNoYW5nZShfZGlkU2VsZWN0U2hpcHBpbmdNZXRob2RDb21wbGV0aW9uLCBuaWwpKHVwZGF0
ZSk7CisgICAgYXV0byB1cGRhdGUgPSAhc2hpcHBpbmdNZXRob2RVcGRhdGUgPyBhZG9wdE5TKFtQ
QUw6OmFsbG9jUEtQYXltZW50UmVxdWVzdFNoaXBwaW5nTWV0aG9kVXBkYXRlSW5zdGFuY2UoKSBp
bml0V2l0aFBheW1lbnRTdW1tYXJ5SXRlbXM6X3N1bW1hcnlJdGVtcy5nZXQoKV0pIDogbmlsOwor
ICAgIF9zdW1tYXJ5SXRlbXMgPSBhZG9wdE5TKFtbdXBkYXRlIHBheW1lbnRTdW1tYXJ5SXRlbXNd
IGNvcHldKTsKKyAgICBzdGQ6OmV4Y2hhbmdlKF9kaWRTZWxlY3RTaGlwcGluZ01ldGhvZENvbXBs
ZXRpb24sIG5pbCkodXBkYXRlLmdldCgpKTsKIH0KIAogI2lmIGRlZmluZWQoV0tQYXltZW50QXV0
aG9yaXphdGlvbkRlbGVnYXRlQWRkaXRpb25zX2ltcGxlbWVudGF0aW9uX3B1YmxpYykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9OU0F0dHJpYnV0ZWRTdHJp
bmcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvTlNBdHRyaWJ1dGVkU3Ry
aW5nLm1tCmluZGV4IGExMGQyMjg4YmU2MjBkMjIzZmIyOWVlNGEwNTU4ZGVlOTdiNjJiMTYuLjhl
MDY4YTcwNDMxYzIyNmM0NWM1OTE2ZjgwMzNiYmIxOTgzODNlNzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9OU0F0dHJpYnV0ZWRTdHJpbmcubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL05TQXR0cmlidXRlZFN0cmluZy5tbQpA
QCAtMTMzLDcgKzEzMyw3IEBAICsgKFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKiljb25maWd1cmF0
aW9uCiB7CiAgICAgaWYgKCFjb25maWd1cmF0aW9uKSB7CiAgICAgICAgIGNvbmZpZ3VyYXRpb24g
PSBbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdOwotICAgICAgICBjb25maWd1
cmF0aW9uLnByb2Nlc3NQb29sID0gYWRvcHROUyhbW1dLUHJvY2Vzc1Bvb2wgYWxsb2NdIGluaXRd
KS5hdXRvcmVsZWFzZSgpOworICAgICAgICBjb25maWd1cmF0aW9uLnByb2Nlc3NQb29sID0gYWRv
cHROUyhbW1dLUHJvY2Vzc1Bvb2wgYWxsb2NdIGluaXRdKS5nZXQoKTsKICAgICAgICAgY29uZmln
dXJhdGlvbi53ZWJzaXRlRGF0YVN0b3JlID0gW1dLV2Vic2l0ZURhdGFTdG9yZSBub25QZXJzaXN0
ZW50RGF0YVN0b3JlXTsKICAgICAgICAgY29uZmlndXJhdGlvbi5tZWRpYVR5cGVzUmVxdWlyaW5n
VXNlckFjdGlvbkZvclBsYXliYWNrID0gV0tBdWRpb3Zpc3VhbE1lZGlhVHlwZUFsbDsKICAgICAg
ICAgY29uZmlndXJhdGlvbi5fYWxsb3dzSmF2YVNjcmlwdE1hcmt1cCA9IE5POwpAQCAtMjY5LDEy
ICsyNjksMTggQEAgKyAodm9pZClfbG9hZEZyb21IVE1MV2l0aE9wdGlvbnM6KE5TRGljdGlvbmFy
eTxOU0F0dHJpYnV0ZWRTdHJpbmdEb2N1bWVudFJlYWRpbmcKICAgICAgICAgICAgIHdlYlZpZXcg
PSBuaWw7CiAKICAgICAgICAgICAgIC8vIE1ha2UgdGhlIHN0cmluZyBiZSBhbiBpbnN0YW5jZSBv
ZiB0aGUgcmVjZWl2ZXIgY2xhc3MuCi0gICAgICAgICAgICBpZiAoYXR0cmlidXRlZFN0cmluZyAm
JiBzZWxmICE9IGF0dHJpYnV0ZWRTdHJpbmcuY2xhc3MpCi0gICAgICAgICAgICAgICAgYXR0cmli
dXRlZFN0cmluZyA9IGFkb3B0TlMoW1tzZWxmIGFsbG9jXSBpbml0V2l0aEF0dHJpYnV0ZWRTdHJp
bmc6YXR0cmlidXRlZFN0cmluZ10pLmF1dG9yZWxlYXNlKCk7CisgICAgICAgICAgICBSZXRhaW5Q
dHI8TlNBdHRyaWJ1dGVkU3RyaW5nPiBuZXdBdHRyaWJ1dGVkU3RyaW5nOworICAgICAgICAgICAg
aWYgKGF0dHJpYnV0ZWRTdHJpbmcgJiYgc2VsZiAhPSBhdHRyaWJ1dGVkU3RyaW5nLmNsYXNzKSB7
CisgICAgICAgICAgICAgICAgbmV3QXR0cmlidXRlZFN0cmluZyA9IGFkb3B0TlMoW1tzZWxmIGFs
bG9jXSBpbml0V2l0aEF0dHJpYnV0ZWRTdHJpbmc6YXR0cmlidXRlZFN0cmluZ10pOworICAgICAg
ICAgICAgICAgIGF0dHJpYnV0ZWRTdHJpbmcgPSBuZXdBdHRyaWJ1dGVkU3RyaW5nLmdldCgpOwor
ICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAvLyBNYWtlIHRoZSBkb2N1bWVudCBhdHRyaWJ1
dGVzIGltbXV0YWJsZS4KLSAgICAgICAgICAgIGlmIChbYXR0cmlidXRlcyBpc0tpbmRPZkNsYXNz
Ok5TTXV0YWJsZURpY3Rpb25hcnkuY2xhc3NdKQotICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMg
PSBhZG9wdE5TKFtbTlNEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aERpY3Rpb25hcnk6YXR0cmli
dXRlc10pLmF1dG9yZWxlYXNlKCk7CisgICAgICAgICAgICBSZXRhaW5QdHI8TlNEaWN0aW9uYXJ5
PE5TQXR0cmlidXRlZFN0cmluZ0RvY3VtZW50QXR0cmlidXRlS2V5LCBpZD4+IG5ld0F0dHJpYnV0
ZXM7CisgICAgICAgICAgICBpZiAoW2F0dHJpYnV0ZXMgaXNLaW5kT2ZDbGFzczpOU011dGFibGVE
aWN0aW9uYXJ5LmNsYXNzXSkgeworICAgICAgICAgICAgICAgIG5ld0F0dHJpYnV0ZXMgPSBhZG9w
dE5TKFtbTlNEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aERpY3Rpb25hcnk6YXR0cmlidXRlc10p
OworICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMgPSBuZXdBdHRyaWJ1dGVzLmdldCgpOworICAg
ICAgICAgICAgfQogCiAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihhdHRyaWJ1dGVkU3Ry
aW5nLCBhdHRyaWJ1dGVzLCBlcnJvcik7CiAgICAgICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0Q29u
dHJvbGxlci5tbQppbmRleCBlYWQ3YTdkZDZjZmRiZGUyMTNkYzE5MzI2NzJhMzA3NmNkZDFjMjI5
Li4yMDFkNWIzZTJmNjM5ODZjNTIwMzA1ZThmMTc3N2U3MzhmZDZmMWU2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRDb250cm9s
bGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5n
Q29udGV4dENvbnRyb2xsZXIubW0KQEAgLTQ5NCwyMSArNDk0LDIxIEBAIHN0YXRpYyB2b2lkIHNl
dFVwUGFnZVBvbGljeUNsaWVudChXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgKmJyb3dzaW5n
Q29udGV4dCwKICAgICAgICAgYXV0byBwb2xpY3lEZWxlZ2F0ZSA9IGJyb3dzaW5nQ29udGV4dC0+
X3BvbGljeURlbGVnYXRlLmdldCgpOwogCiAgICAgICAgIGlmIChbcG9saWN5RGVsZWdhdGUgcmVz
cG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihicm93c2luZ0NvbnRleHRDb250cm9sbGVyOmRlY2lk
ZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246ZGVjaXNpb25IYW5kbGVyOildKSB7Ci0gICAgICAg
ICAgICBOU0RpY3Rpb25hcnkgKmFjdGlvbkRpY3Rpb25hcnkgPSBAeworICAgICAgICAgICAgYXV0
byBhY3Rpb25EaWN0aW9uYXJ5ID0gcmV0YWluUHRyKEB7CiAgICAgICAgICAgICAgICAgV0tBY3Rp
b25Jc01haW5GcmFtZUtleTogQChXS0ZyYW1lSXNNYWluRnJhbWUoZnJhbWUpKSwKICAgICAgICAg
ICAgICAgICBXS0FjdGlvbk5hdmlnYXRpb25UeXBlS2V5OiBAKG5hdmlnYXRpb25UeXBlKSwKICAg
ICAgICAgICAgICAgICBXS0FjdGlvbk1vZGlmaWVyRmxhZ3NLZXk6IEAobW9kaWZpZXJzKSwKICAg
ICAgICAgICAgICAgICBXS0FjdGlvbk1vdXNlQnV0dG9uS2V5OiBAKG1vdXNlQnV0dG9uKSwKICAg
ICAgICAgICAgICAgICBXS0FjdGlvbk9yaWdpbmFsVVJMUmVxdWVzdEtleTogYWRvcHROUyhXS1VS
TFJlcXVlc3RDb3B5TlNVUkxSZXF1ZXN0KG9yaWdpbmFsUmVxdWVzdCkpLmdldCgpLAogICAgICAg
ICAgICAgICAgIFdLQWN0aW9uVVJMUmVxdWVzdEtleTogYWRvcHROUyhXS1VSTFJlcXVlc3RDb3B5
TlNVUkxSZXF1ZXN0KHJlcXVlc3QpKS5nZXQoKQotICAgICAgICAgICAgfTsKKyAgICAgICAgICAg
IH0pOwogCiAgICAgICAgICAgICBpZiAob3JpZ2luYXRpbmdGcmFtZSkgewotICAgICAgICAgICAg
ICAgIGFjdGlvbkRpY3Rpb25hcnkgPSBhZG9wdE5TKFthY3Rpb25EaWN0aW9uYXJ5IG11dGFibGVD
b3B5XSkuYXV0b3JlbGVhc2UoKTsKLSAgICAgICAgICAgICAgICBbKE5TTXV0YWJsZURpY3Rpb25h
cnkgKilhY3Rpb25EaWN0aW9uYXJ5IHNldE9iamVjdDpbTlNVUkwgX3dlYl9VUkxXaXRoV1RGU3Ry
aW5nOldlYktpdDo6dG9JbXBsKG9yaWdpbmF0aW5nRnJhbWUpLT51cmwoKS5zdHJpbmcoKV0gZm9y
S2V5OldLQWN0aW9uT3JpZ2luYXRpbmdGcmFtZVVSTEtleV07CisgICAgICAgICAgICAgICAgYWN0
aW9uRGljdGlvbmFyeSA9IGFkb3B0TlMoW2FjdGlvbkRpY3Rpb25hcnkgbXV0YWJsZUNvcHldKTsK
KyAgICAgICAgICAgICAgICBbKE5TTXV0YWJsZURpY3Rpb25hcnkgKilhY3Rpb25EaWN0aW9uYXJ5
LmdldCgpIHNldE9iamVjdDpbTlNVUkwgX3dlYl9VUkxXaXRoV1RGU3RyaW5nOldlYktpdDo6dG9J
bXBsKG9yaWdpbmF0aW5nRnJhbWUpLT51cmwoKS5zdHJpbmcoKV0gZm9yS2V5OldLQWN0aW9uT3Jp
Z2luYXRpbmdGcmFtZVVSTEtleV07CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAKLSAgICAg
ICAgICAgIFtwb2xpY3lEZWxlZ2F0ZSBicm93c2luZ0NvbnRleHRDb250cm9sbGVyOmJyb3dzaW5n
Q29udGV4dCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOmFjdGlvbkRpY3Rpb25hcnkg
ZGVjaXNpb25IYW5kbGVyOm1ha2VQb2xpY3lEZWNpc2lvbkJsb2NrKGxpc3RlbmVyKV07CisgICAg
ICAgICAgICBbcG9saWN5RGVsZWdhdGUgYnJvd3NpbmdDb250ZXh0Q29udHJvbGxlcjpicm93c2lu
Z0NvbnRleHQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjphY3Rpb25EaWN0aW9uYXJ5
LmdldCgpIGRlY2lzaW9uSGFuZGxlcjptYWtlUG9saWN5RGVjaXNpb25CbG9jayhsaXN0ZW5lcild
OwogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIFdLRnJhbWVQb2xpY3lMaXN0ZW5lclVzZShs
aXN0ZW5lcik7CiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Lm1tCmluZGV4IDYzMDI3ODI0M2MzMGU5YzUyMDUyMmQ2YzZlNjgyMGU0MmVhN2M5
YzEuLmI4MzhiNjcxODQ1YTg1YTdhNWYwNzVmNTI2NTRmNjBiNjg4MDM5YmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtMjI1NSw3ICsy
MjU1LDcgQEAgLSAodm9pZClfdGFrZVBERlNuYXBzaG90V2l0aENvbmZpZ3VyYXRpb246KFdLU25h
cHNob3RDb25maWd1cmF0aW9uICopc25hcHNob3RDb24KICAgICAgICAgW3BkZkNvbmZpZ3VyYXRp
b24gc2V0UmVjdDpzbmFwc2hvdENvbmZpZ3VyYXRpb24ucmVjdF07CiAgICAgfQogCi0gICAgW3Nl
bGYgY3JlYXRlUERGV2l0aENvbmZpZ3VyYXRpb246cGRmQ29uZmlndXJhdGlvbi5hdXRvcmVsZWFz
ZSgpIGNvbXBsZXRpb25IYW5kbGVyOmNvbXBsZXRpb25IYW5kbGVyXTsKKyAgICBbc2VsZiBjcmVh
dGVQREZXaXRoQ29uZmlndXJhdGlvbjpwZGZDb25maWd1cmF0aW9uLmdldCgpIGNvbXBsZXRpb25I
YW5kbGVyOmNvbXBsZXRpb25IYW5kbGVyXTsKIH0KIAogLSAodm9pZClfZ2V0UERGRmlyc3RQYWdl
U2l6ZUluRnJhbWU6KF9XS0ZyYW1lSGFuZGxlICopZnJhbWUgY29tcGxldGlvbkhhbmRsZXI6KHZv
aWQoXikoQ0dTaXplKSljb21wbGV0aW9uSGFuZGxlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdUZXN0aW5nSU9TLm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdUZXN0aW5nSU9TLm1tCmluZGV4IGFiZWY5Y2Uy
N2U1NzkzYjhkNzZlNjlhN2NhNzc0Y2RlZTUyZGU5MmUuLmVlOTkwZThlNzBlY2ViNmYwMGJmNzIz
ZWVlYzc0NzEyZTQwYmVmYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9pb3MvV0tXZWJWaWV3VGVzdGluZ0lPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvaW9zL1dLV2ViVmlld1Rlc3RpbmdJT1MubW0KQEAgLTU4LDcgKzU4LDcgQEAgLSAodm9p
ZClfcmVxdWVzdFRleHRJbnB1dENvbnRleHRzSW5SZWN0OihDR1JlY3QpcmVjdCBjb21wbGV0aW9u
SGFuZGxlcjoodm9pZCAoXikKICAgICAgICAgICAgIGFkanVzdGVkQ29udGV4dC5ib3VuZGluZ1Jl
Y3QgPSBbc3Ryb25nU2VsZiBjb252ZXJ0UmVjdDphZGp1c3RlZENvbnRleHQuYm91bmRpbmdSZWN0
IGZyb21WaWV3OnN0cm9uZ1NlbGYtPl9jb250ZW50Vmlldy5nZXQoKV07CiAgICAgICAgICAgICBb
YWRqdXN0ZWRDb250ZXh0cyBhZGRPYmplY3Q6YWRvcHROUyhbW19XS1RleHRJbnB1dENvbnRleHQg
YWxsb2NdIF9pbml0V2l0aFRleHRJbnB1dENvbnRleHQ6YWRqdXN0ZWRDb250ZXh0XSkuZ2V0KCld
OwogICAgICAgICB9Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGFkanVzdGVkQ29udGV4dHMu
YXV0b3JlbGVhc2UoKSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGFkanVzdGVkQ29udGV4
dHMuZ2V0KCkpOwogICAgIH1dOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMubW0gYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMu
bW0KaW5kZXggNDNiMzQ5OGVjNzY5NjM4Yjc5MTEzN2EwN2EzMWVkZWM5ZjVkOWY2Ny4uYTBkOWEx
NWEzNjIyNzFmZjU5NTY0NDVjNjgwMDliMjBlOTE0ZjRmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFjL05ldHNjYXBlUGx1Z2luTWFjLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRz
Y2FwZVBsdWdpbk1hYy5tbQpAQCAtNDgxLDggKzQ4MSw3IEBAIHN0YXRpYyBib29sIGlzRmxhZ3ND
aGFuZ2VkRXZlbnQoY29uc3QgV2ViS2V5Ym9hcmRFdmVudCYga2V5Ym9hcmRFdmVudCkKIAogc3Rh
dGljIE5QTlNTdHJpbmcgKmNvbnZlcnRUb05QTk5TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcp
CiB7Ci0gICAgQ0ZUeXBlUmVmIHJlbGVhc2VkU3RyaW5nID0gc3RyaW5nLmNyZWF0ZUNGU3RyaW5n
KCkuYXV0b3JlbGVhc2UoKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8TlBOU1N0cmluZyo+KGNv
bnN0X2Nhc3Q8dm9pZCo+KHJlbGVhc2VkU3RyaW5nKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0
PE5QTlNTdHJpbmcqPihzdGF0aWNfY2FzdDxOU1N0cmluZyo+KHN0cmluZykpOwogfQogCiBzdGF0
aWMgTlBDb2NvYUV2ZW50IGluaXRpYWxpemVLZXlib2FyZEV2ZW50KGNvbnN0IFdlYktleWJvYXJk
RXZlbnQmIGtleWJvYXJkRXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdE1hYy5tbSBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2Jq
ZWN0TWFjLm1tCmluZGV4IDZkYWJjZmMyNzU0ZTVhZDNhNDE5MTgxYzJhNjE2Y2Q4MGFiMGQ3OTQu
LjBiOTRhNDYxNDU4NTFkMzM4ZDc2MTllY2NkN2QwMGY5MWM2ODY5NzggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XS0FjY2Vzc2liaWxpdHlXZWJQYWdl
T2JqZWN0TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9X
S0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0TWFjLm1tCkBAIC05NSw3ICs5NSw3IEBAIEFMTE9X
X0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORAogICAgICAgICByZXR1cm4gY2FjaGVkTmFt
ZXM7CiAjZW5kaWYKIAotICAgIGlkIG5hbWVzID0gYXg6OnJldHJpZXZlVmFsdWVGcm9tTWFpblRo
cmVhZDxSZXRhaW5QdHI8aWQ+PihbUFJPVEVDVEVEX1NFTEZdICgpIC0+IFJldGFpblB0cjxpZD4g
eworICAgIGF1dG8gbmFtZXMgPSBheDo6cmV0cmlldmVWYWx1ZUZyb21NYWluVGhyZWFkPFJldGFp
blB0cjxpZD4+KFtQUk9URUNURURfU0VMRl0gKCkgLT4gUmV0YWluUHRyPGlkPiB7CiAgICAgICAg
IGF1dG8gcGFnZSA9IHByb3RlY3RlZFNlbGYtPm1fcGFnZTsKICAgICAgICAgaWYgKCFwYWdlKQog
ICAgICAgICAgICAgcmV0dXJuIEBbXTsKQEAgLTEwNSwxMyArMTA1LDEzIEBAIEFMTE9XX0RFUFJF
Q0FURURfSU1QTEVNRU5UQVRJT05TX0VORAogICAgICAgICAgICAgcmV0dXJuIEBbXTsKIAogICAg
ICAgICByZXR1cm4gY3JlYXRlTlNBcnJheShjb3JlUGFnZS0+cGFnZU92ZXJsYXlDb250cm9sbGVy
KCkuY29weUFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVzTmFtZXModHJ1ZSkpOwotICAgIH0pLmF1dG9y
ZWxlYXNlKCk7CisgICAgfSk7CiAKICNpZiBFTkFCTEUoQUNDRVNTSUJJTElUWV9JU09MQVRFRF9U
UkVFKQotICAgIHNlbGYuY2FjaGVkUGFyYW1ldGVyaXplZEF0dHJpYnV0ZU5hbWVzID0gbmFtZXM7
CisgICAgc2VsZi5jYWNoZWRQYXJhbWV0ZXJpemVkQXR0cmlidXRlTmFtZXMgPSBuYW1lcy5nZXQo
KTsKICNlbmRpZgogCi0gICAgcmV0dXJuIG5hbWVzOworICAgIHJldHVybiBuYW1lcy5hdXRvcmVs
ZWFzZSgpOwogfQogCiBBTExPV19ERVBSRUNBVEVEX0lNUExFTUVOVEFUSU9OU19CRUdJTgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJOU09iamVjdEV4dHJhcy5t
bSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViTlNPYmplY3RFeHRyYXMubW0KaW5k
ZXggMmY1YTk0NjBkMDFjNzEwYjJjMGIzYjdjNGM3ZTdjZGZmZjJjYjg3MS4uYTYxNTMyOTEwYmNl
ZjBhMzRhNTEyNGJhMjg4ZjdjYTE0NDZkOGZiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvTWlzYy9XZWJOU09iamVjdEV4dHJhcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9NaXNjL1dlYk5TT2JqZWN0RXh0cmFzLm1tCkBAIC02Miw4ICs2Miw4IEBAIC0gKHZv
aWQpZm9yd2FyZEludm9jYXRpb246KE5TSW52b2NhdGlvbiAqKWludm9jYXRpb24KICAgICBbaW52
b2NhdGlvbiBzZXRUYXJnZXQ6dGFyZ2V0XTsKICAgICBbaW52b2NhdGlvbiBwZXJmb3JtU2VsZWN0
b3JPbk1haW5UaHJlYWQ6QHNlbGVjdG9yKF93ZWJraXRfaW52b2tlQW5kSGFuZGxlRXhjZXB0aW9u
Oikgd2l0aE9iamVjdDpzZWxmIHdhaXRVbnRpbERvbmU6WUVTXTsKICAgICBpZiAoZXhjZXB0aW9u
KSB7Ci0gICAgICAgIGlkIGV4Y2VwdGlvblRvVGhyb3cgPSBzdGQ6OmV4Y2hhbmdlKGV4Y2VwdGlv
biwgbmlsKS5hdXRvcmVsZWFzZSgpOwotICAgICAgICBAdGhyb3cgZXhjZXB0aW9uVG9UaHJvdzsK
KyAgICAgICAgYXV0byBleGNlcHRpb25Ub1Rocm93ID0gc3RkOjpleGNoYW5nZShleGNlcHRpb24s
IG5pbCk7CisgICAgICAgIEB0aHJvdyBleGNlcHRpb25Ub1Rocm93LmdldCgpOwogICAgIH0gZWxz
ZSBpZiAocmV0dXJuVHlwZUlzT2JqZWN0KGludm9jYXRpb24pKSB7CiAgICAgICAgIC8vIF93ZWJr
aXRfaW52b2tlQW5kSGFuZGxlRXhjZXB0aW9uIHJldGFpbmVkIHRoZSByZXR1cm4gdmFsdWUgb24g
dGhlIG1haW4gdGhyZWFkLgogICAgICAgICAvLyBOb3cgYXV0b3JlbGVhc2UgaXQgb24gdGhlIGNh
bGxpbmcgdGhyZWFkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lu
cy9XZWJOZXRzY2FwZVBsdWdpblZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVn
aW5zL1dlYk5ldHNjYXBlUGx1Z2luVmlldy5tbQppbmRleCBmMGQ5OThjMDk2MDQ4ZDlhZmQxMzZl
ZDIyMWFkNTFlNjE3ZTJiMWIzLi4xMmFhYTNkMDhmNzdjOGNmOGQ0MWQ0NDNlMTJhYjZkMmUyNzEy
M2IyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL1dlYk5ldHNj
YXBlUGx1Z2luVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL1dl
Yk5ldHNjYXBlUGx1Z2luVmlldy5tbQpAQCAtMzU1LDcgKzM1NSw3IEBAIC0gKEJPT0wpc2VuZEV2
ZW50Oih2b2lkKilldmVudCBpc0RyYXdSZWN0OihCT09MKWV2ZW50SXNEcmF3UmVjdAogICAgIH0K
IAogICAgIC8vIFRlbXBvcmFyaWx5IHJldGFpbiBzZWxmIGluIGNhc2UgdGhlIHBsdWctaW4gdmll
dyBpcyByZWxlYXNlZCB3aGlsZSBzZW5kaW5nIGFuIGV2ZW50LiAKLSAgICByZXRhaW5QdHIoc2Vs
ZikuYXV0b3JlbGVhc2UoKTsKKyAgICBhdXRvIHN0cm9uZ1NlbGYgPSByZXRhaW5QdHIoc2VsZik7
CiAKICAgICBCT09MIGFjY2VwdGVkRXZlbnQ7CiAgICAgW3NlbGYgd2lsbENhbGxQbHVnSW5GdW5j
dGlvbl07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZp
ZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIubW0KaW5kZXggMmIxOGY2OWNjMDEzZDc4
ODYxN2I5MmUwNjFlZDg3MWNjYmI4MmRhMC4uYTlhNjRmMDQ2MDg0MTc5NjMxZWIxYTRhMGEwODEy
M2VkNWIzMTU0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlci5tbQpAQCAtMTUxLDcgKzE1
MSw3IEBAIC0gKGlkKWluaXQKICAgICBfcGxheWJhY2tJbnRlcmZhY2UgPSBXZWJDb3JlOjpQbGF5
YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdDo6Y3JlYXRlKCpfcGxheWJhY2tNb2RlbCk7CiAgICAg
X2NvbnRlbnRPdmVybGF5ID0gYWRvcHROUyhbW05TVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpO
U1plcm9SZWN0XSk7CiAgICAgX2NvbnRlbnRPdmVybGF5LmdldCgpLmxheWVyQ29udGVudHNSZWRy
YXdQb2xpY3kgPSBOU1ZpZXdMYXllckNvbnRlbnRzUmVkcmF3TmV2ZXI7Ci0gICAgX2NvbnRlbnRP
dmVybGF5LmdldCgpLmxheWVyID0gYWRvcHROUyhbW1dlYlZpZGVvRnVsbHNjcmVlbk92ZXJsYXlM
YXllciBhbGxvY10gaW5pdF0pLmF1dG9yZWxlYXNlKCk7CisgICAgX2NvbnRlbnRPdmVybGF5Lmdl
dCgpLmxheWVyID0gYWRvcHROUyhbW1dlYlZpZGVvRnVsbHNjcmVlbk92ZXJsYXlMYXllciBhbGxv
Y10gaW5pdF0pLmdldCgpOwogICAgIFtfY29udGVudE92ZXJsYXkgc2V0V2FudHNMYXllcjpZRVNd
OwogICAgIFtfY29udGVudE92ZXJsYXkgc2V0QXV0b3Jlc2l6aW5nTWFzazooTlNWaWV3V2lkdGhT
aXphYmxlIHwgTlNWaWV3SGVpZ2h0U2l6YWJsZSldOwogICAgIFtzZWxmIHdpbmRvd0RpZExvYWRd
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDE3
ZjQ2NzZiMjk4MTgwYmQxZTdlYmJmNWMxMTc4Yzk5ZmNmZjM3NzcuLjhiZjI0YjVmNzE2YzYxMzc4
NmZmNDUyYzg0NWNlY2ZmN2EyYmY2MzggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysg
Yi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3NSBAQAorMjAyMS0wMi0xOSAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlldyByZW1haW5pbmcgdXNhZ2Ug
b2YgYXV0b3JlbGVhc2UgdG8gbWFrZSBzdXJlIGl0IGlzIG5lY2Vzc2FyeQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyMTc3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0UnVubmVyU2hhcmVkL21h
Yy9OU1Bhc3RlYm9hcmRBZGRpdGlvbnMubW06CisgICAgICAgICgrW05TUGFzdGVib2FyZCBfbW9k
ZXJuUGFzdGVib2FyZFR5cGU6XSk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9KYXZh
U2NyaXB0Q29yZS9KU1J1bkxvb3BUaW1lci5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OnRy
aWdnZXJHQyk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL1dl
YkNvcmVOU1VSTFNlc3Npb24ubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpXZWJDb3JlTlNV
UkxTZXNzaW9uVGVzdDo6U2V0VXApOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L0dldFVzZXJNZWRpYU5hdmlnYXRpb24ubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpU
RVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9tYWMvQ29udGV4dE1l
bnVJbWdXaXRoVmlkZW8ubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NoYWxsZW5nZS5tbToKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvQ29udGVudFJ1bGVMaXN0Tm90aWZpY2F0aW9uLm1tOgorICAgICAgICAoLVtD
b250ZW50UnVsZUxpc3ROb3RpZmljYXRpb25EZWxlZ2F0ZSB3ZWJWaWV3OnN0YXJ0VVJMU2NoZW1l
VGFzazpdKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Rldmlj
ZU1hbmFnZW1lbnRSZXN0cmljdGlvbnMubW06CisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Rvd25sb2FkLm1tOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6d2ViVmlld1dpdGhEb3dubG9hZE1vbml0b3JTcGVlZE11bHRpcGxpZXIpOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRHJhZ0FuZERyb3BUZXN0
cy5tbToKKyAgICAgICAgKHJ1bkRyYWdTdGFydERhdGFUZXN0Q2FzZSk6CisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbkFwcEJyb3dzZXJQcml2YWN5Lm1tOgorICAg
ICAgICAoLVtJbkFwcEJyb3dzZXJTY2hlbWVIYW5kbGVyIHdlYlZpZXc6c3RhcnRVUkxTY2hlbWVU
YXNrOl0pOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5kZXhl
ZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5Lm1tOgorICAgICAgICAoVEVT
VCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbmRleGVkREJU
ZW1wRmlsZVNpemUubW06CisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL0pJVEVuYWJsZWQubW06CisgICAgICAgIChURVNUKToKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0xvY2FsU3RvcmFnZURhdGFiYXNl
VHJhY2tlci5tbToKKyAgICAgICAgKFRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvTmV0d29ya1Byb2Nlc3MubW06CisgICAgICAgIChURVNUKToKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0
aW9uLm1tOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJveHku
bW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1JlcGFyZW50V2ViVmlld1RpbWVvdXQubW06CisgICAgICAg
IChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Jlc291
cmNlTG9hZFN0YXRpc3RpY3MubW06CisgICAgICAgIChURVNUKToKKyAgICAgICAgKC1bUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1NjaGVtZUhhbmRsZXIgd2ViVmlldzpzdGFydFVSTFNjaGVtZVRhc2s6
XSk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TYWZlQnJvd3Np
bmcubW06CisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1RMU0RlcHJlY2F0aW9uLm1tOgorICAgICAgICAoVGVzdFdlYktp
dEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9U
ZXh0TWFuaXB1bGF0aW9uLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9VSURlbGVnYXRlLm1tOgorICAg
ICAgICAoVEVTVCk6CisgICAgICAgICgtW1VJVGVzdERlbGVnYXRlIHdlYlZpZXc6c3RhcnRVUkxT
Y2hlbWVUYXNrOl0pOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
VXNlckNvbnRlbnRDb250cm9sbGVyLm1tOgorICAgICAgICAod2ViVmlld0ZvclNjcmlwdE1lc3Nh
Z2VIYW5kbGVyTXVsdGlwbGVIYW5kbGVyUmVtb3ZhbFRlc3QpOgorICAgICAgICAoVEVTVCk6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0F0dGFjaG1lbnRUZXN0
cy5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tQREZWaWV3Lm1tOgorICAgICAgICAoVEVTVCk6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1VSTFNjaGVtZUhhbmRs
ZXItMS5tbToKKyAgICAgICAgKC1bU3luY0Vycm9yU2NoZW1lIHdlYlZpZXc6c3RhcnRVUkxTY2hl
bWVUYXNrOl0pOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tX
ZWJWaWV3RXZhbHVhdGVKYXZhU2NyaXB0Lm1tOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvaW9zL0RyYWdBbmREcm9wVGVzdHNJT1MubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpU
RVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Gb250TWFuYWdlclRlc3Rz
Lm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisKIDIwMjEtMDItMTYgIEppZXdl
biBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBQQ006IEdlbmVyYXRlIHNl
Y3JldCB0b2tlbiBhbmQgY29ycmVzcG9uZGluZyB1bmxpbmthYmxlIHRva2VuCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL0phdmFTY3JpcHRDb3JlL0pTUnVuTG9vcFRpbWVy
Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9KYXZhU2NyaXB0Q29yZS9KU1J1bkxvb3BU
aW1lci5tbQppbmRleCBkNDkwOWY4NDY4OGE0MTMzMDc1Y2U0YmY4NWNjNjY4OGIyMzQ3MmE3Li4y
YjA4YzRhMmYwYjM0OGI4ZWNlNGRiYmMzOTE3YjVhYzVhYTRiZjA2IDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL0phdmFTY3JpcHRDb3JlL0pTUnVuTG9vcFRpbWVyLm1tCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvSmF2YVNjcmlwdENvcmUvSlNSdW5Mb29wVGlt
ZXIubW0KQEAgLTY1LDcgKzY1LDcgQEAgc3RhdGljIHZvaWQgdHJpZ2dlckdDKEpTQ29udGV4dCAq
Y29udGV4dCkKIHsKICAgICBAYXV0b3JlbGVhc2Vwb29sIHsKICAgICAgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCAxMDAwOyArK2kpCi0gICAgICAgICAgICBbSlNWYWx1ZSB2YWx1ZVdpdGhPYmpl
Y3Q6YWRvcHROUyhbVGVzdE9iamVjdCBuZXddKS5hdXRvcmVsZWFzZSgpIGluQ29udGV4dDpjb250
ZXh0XTsKKyAgICAgICAgICAgIFtKU1ZhbHVlIHZhbHVlV2l0aE9iamVjdDphZG9wdE5TKFtUZXN0
T2JqZWN0IG5ld10pLmdldCgpIGluQ29udGV4dDpjb250ZXh0XTsKICAgICAgICAgSlNHYXJiYWdl
Q29sbGVjdChbY29udGV4dCBKU0dsb2JhbENvbnRleHRSZWZdKTsKICAgICB9CiB9CmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvV2ViQ29yZU5TVVJM
U2Vzc2lvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9XZWJD
b3JlTlNVUkxTZXNzaW9uLm1tCmluZGV4IGQ5NjIzMDc0YjIxNTgwZTcxMmFmNDRjNmYzNDBkOWZl
NjE2MWU5ZmIuLjM5YTQ0ZTAzYzEzNjg1NWY0YzA4MWQyOGJjZjUzZmZlZWEyZjY1YTggMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9XZWJDb3JlTlNV
UkxTZXNzaW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2Nv
YS9XZWJDb3JlTlNVUkxTZXNzaW9uLm1tCkBAIC0xMTgsNyArMTE4LDcgQEAgcHVibGljOgogICAg
ICAgICBKU0M6OmluaXRpYWxpemUoKTsKICNlbmRpZgogICAgICAgICB2aWV3ID0gYWRvcHROUyhb
W1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdF0pOwotICAgICAgICBbdmll
dyBzZXRGcmFtZUxvYWREZWxlZ2F0ZTphZG9wdE5TKFtbVGVzdE5TVVJMU2Vzc2lvbkxvYWRlckRl
bGVnYXRlIGFsbG9jXSBpbml0XSkuYXV0b3JlbGVhc2UoKV07CisgICAgICAgIFt2aWV3IHNldEZy
YW1lTG9hZERlbGVnYXRlOmFkb3B0TlMoW1tUZXN0TlNVUkxTZXNzaW9uTG9hZGVyRGVsZWdhdGUg
YWxsb2NdIGluaXRdKS5nZXQoKV07CiAKICAgICAgICAgZGlkTG9hZE1haW5SZXNvdXJjZSA9IGZh
bHNlOwogICAgICAgICBbdmlldyBzZXRNYWluRnJhbWVVUkw6ZG9jdW1lbnRVUkwuYWJzb2x1dGVT
dHJpbmddOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0
VXNlck1lZGlhTmF2aWdhdGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
L0dldFVzZXJNZWRpYU5hdmlnYXRpb24ubW0KaW5kZXggZGYxZTA1ZDJlMmUzOWZhMmFlNTEzOTgz
YThiMGU4YjVmODkzYzZmMS4uOWJmZmRhYzY1Nzk5NmUwOWIxNTc2YzE3MmRhZTcwODdjZGE4MGI1
MyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1l
ZGlhTmF2aWdhdGlvbi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9H
ZXRVc2VyTWVkaWFOYXZpZ2F0aW9uLm1tCkBAIC0xMTUsNyArMTE1LDcgQEAgVEVTVChXZWJLaXQs
IERlZmF1bHREZXZpY2VJZEhhc2hTYWx0c0RpcmVjdG9yeSkKICAgICB9CiAKICAgICBhdXRvIGNv
bmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5p
dF0pOwotICAgIFtjb25maWd1cmF0aW9uIHNldFdlYnNpdGVEYXRhU3RvcmU6YWRvcHROUyhbW1dL
V2Vic2l0ZURhdGFTdG9yZSBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjp3ZWJzaXRlRGF0
YVN0b3JlQ29uZmlndXJhdGlvbi5nZXQoKV0pLmF1dG9yZWxlYXNlKCldOworICAgIFtjb25maWd1
cmF0aW9uIHNldFdlYnNpdGVEYXRhU3RvcmU6YWRvcHROUyhbW1dLV2Vic2l0ZURhdGFTdG9yZSBh
bGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjp3ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlv
bi5nZXQoKV0pLmdldCgpXTsKICAgICBhdXRvIHByb2Nlc3NQb29sQ29uZmlnID0gYWRvcHROUyhb
W19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIGF1dG8gcHJl
ZmVyZW5jZXMgPSBbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc107CiAgICAgcHJlZmVyZW5jZXMu
X21lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbiA9IE5POwpAQCAtMTQ1LDcgKzE0
NSw3IEBAIFRFU1QoV2ViS2l0LCBEZXZpY2VJZEhhc2hTYWx0c0RpcmVjdG9yeSkKICAgICBbd2Vi
c2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gc2V0RGV2aWNlSWRIYXNoU2FsdHNTdG9yYWdlRGly
ZWN0b3J5OnRlbXBEaXJdOwogICAgIAogICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMo
W1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7Ci0gICAgW2NvbmZpZ3VyYXRp
b24gc2V0V2Vic2l0ZURhdGFTdG9yZTphZG9wdE5TKFtbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbG9j
XSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOndlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmdl
dCgpXSkuYXV0b3JlbGVhc2UoKV07CisgICAgW2NvbmZpZ3VyYXRpb24gc2V0V2Vic2l0ZURhdGFT
dG9yZTphZG9wdE5TKFtbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1
cmF0aW9uOndlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmdldCgpXSkuZ2V0KCldOwogICAg
IGF1dG8gcHJvY2Vzc1Bvb2xDb25maWcgPSBhZG9wdE5TKFtbX1dLUHJvY2Vzc1Bvb2xDb25maWd1
cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgYXV0byBwcmVmZXJlbmNlcyA9IFtjb25maWd1cmF0
aW9uIHByZWZlcmVuY2VzXTsKICAgICBwcmVmZXJlbmNlcy5fbWVkaWFDYXB0dXJlUmVxdWlyZXNT
ZWN1cmVDb25uZWN0aW9uID0gTk87CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdC9tYWMvQ29udGV4dE1lbnVJbWdXaXRoVmlkZW8ubW0gYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdC9tYWMvQ29udGV4dE1lbnVJbWdXaXRoVmlkZW8ubW0KaW5kZXgg
MmY0ZDdkZmNiODAwMmNjMmZmYjA0NzQ4ZDBlODYwNDU4ZjIyMTM5ZC4uNTg0OTIyMDZkODExM2Uw
N2FiY2U5YTk2MTJhZDdmZTFlYzIyYjU3YSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQvbWFjL0NvbnRleHRNZW51SW1nV2l0aFZpZGVvLm1tCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21hYy9Db250ZXh0TWVudUltZ1dpdGhWaWRlby5t
bQpAQCAtNTUsNyArNTUsNyBAQCBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiBURVNUKFdlYktp
dCwgQ29udGV4dE1lbnVJbWdXaXRoVmlkZW8pCiB7CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHRO
UyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCA4
MDAsIDYwMCldKTsKLSAgICB3ZWJWaWV3LmdldCgpLlVJRGVsZWdhdGUgPSBhZG9wdE5TKFtbQ29u
dGV4dE1lbnVJbWdXaXRoVmlkZW9EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pLmF1dG9yZWxlYXNlKCk7
CisgICAgd2ViVmlldy5nZXQoKS5VSURlbGVnYXRlID0gYWRvcHROUyhbW0NvbnRleHRNZW51SW1n
V2l0aFZpZGVvRGVsZWdhdGUgYWxsb2NdIGluaXRdKS5nZXQoKTsKICAgICBbd2ViVmlldyBzeW5j
aHJvbm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6QCJDb250ZXh0TWVudUltZ1dpdGhWaWRlbyJdOwog
CiAgICAgTlNXaW5kb3cqIHdpbmRvdyA9IFt3ZWJWaWV3IHdpbmRvd107CmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NoYWxsZW5nZS5tbSBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2hhbGxlbmdlLm1tCmluZGV4IGQ2ZTM4
M2UxYTBiZTJlNTVmNzkxYjRmNGFkODZmMTk0M2FmMzBjOGIuLmU1NjM3ZjdmNTJkOTkxY2Q4NmY1
OGIyNGExNDJjYTlkNjU2MjU2ZjIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvQ2hhbGxlbmdlLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvQ2hhbGxlbmdlLm1tCkBAIC01NTYsNyArNTU2LDcgQEAgVEVTVChXZWJL
aXQsIEZhc3RTZXJ2ZXJUcnVzdCkKICAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtb
V0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIGF1dG8gZGF0YVN0b3Jl
Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlv
biBhbGxvY10gaW5pdF0pOwogICAgIFtkYXRhU3RvcmVDb25maWd1cmF0aW9uIHNldEZhc3RTZXJ2
ZXJUcnVzdEV2YWx1YXRpb25FbmFibGVkOllFU107Ci0gICAgW2NvbmZpZ3VyYXRpb24gc2V0V2Vi
c2l0ZURhdGFTdG9yZTphZG9wdE5TKFtbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbG9jXSBfaW5pdFdp
dGhDb25maWd1cmF0aW9uOmRhdGFTdG9yZUNvbmZpZ3VyYXRpb24uZ2V0KCldKS5hdXRvcmVsZWFz
ZSgpXTsKKyAgICBbY29uZmlndXJhdGlvbiBzZXRXZWJzaXRlRGF0YVN0b3JlOmFkb3B0TlMoW1tX
S1dlYnNpdGVEYXRhU3RvcmUgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246ZGF0YVN0b3Jl
Q29uZmlndXJhdGlvbi5nZXQoKV0pLmdldCgpXTsKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5T
KFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdFplcm8gY29uZmlndXJhdGlv
bjpjb25maWd1cmF0aW9uLmdldCgpXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1Nl
cnZlclRydXN0RGVsZWdhdGUgbmV3XSk7CiAgICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVn
YXRlOmRlbGVnYXRlLmdldCgpXTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvQ29udGVudFJ1bGVMaXN0Tm90aWZpY2F0aW9uLm1tIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Db250ZW50UnVsZUxpc3ROb3RpZmljYXRpb24u
bW0KaW5kZXggZGQ4NWJhMGNkYjExY2RiZmM3OGM1MjAzYThkOWJhYzI2N2YxOGJlMS4uOWM1YjU1
NmU4ZWE5NWMxMGI1NTg0NDg4ZmU1ZmVkNGQ5YzEzODI2MCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Db250ZW50UnVsZUxpc3ROb3RpZmljYXRpb24u
bW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Db250ZW50UnVs
ZUxpc3ROb3RpZmljYXRpb24ubW0KQEAgLTg2LDcgKzg2LDcgQEAgLSAodm9pZClfd2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVmlldyBjb250ZW50UnVsZUxpc3RXaXRoSWRlbnRpZmllcjooTlNTdHJp
bmcgKikKIAogLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHN0YXJ0VVJMU2No
ZW1lVGFzazooaWQgPFdLVVJMU2NoZW1lVGFzaz4pdXJsU2NoZW1lVGFzawogewotICAgIFt1cmxT
Y2hlbWVUYXNrIGRpZFJlY2VpdmVSZXNwb25zZTphZG9wdE5TKFtbTlNVUkxSZXNwb25zZSBhbGxv
Y10gaW5pdFdpdGhVUkw6dXJsU2NoZW1lVGFzay5yZXF1ZXN0LlVSTCBNSU1FVHlwZTpAInRleHQv
aHRtbCIgZXhwZWN0ZWRDb250ZW50TGVuZ3RoOjAgdGV4dEVuY29kaW5nTmFtZTpuaWxdKS5hdXRv
cmVsZWFzZSgpXTsKKyAgICBbdXJsU2NoZW1lVGFzayBkaWRSZWNlaXZlUmVzcG9uc2U6YWRvcHRO
UyhbW05TVVJMUmVzcG9uc2UgYWxsb2NdIGluaXRXaXRoVVJMOnVybFNjaGVtZVRhc2sucmVxdWVz
dC5VUkwgTUlNRVR5cGU6QCJ0ZXh0L2h0bWwiIGV4cGVjdGVkQ29udGVudExlbmd0aDowIHRleHRF
bmNvZGluZ05hbWU6bmlsXSkuZ2V0KCldOwogICAgIFt1cmxTY2hlbWVUYXNrIGRpZEZpbmlzaF07
CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9ucy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvRGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9ucy5tbQppbmRleCBkN2Iz
Njk1N2YyOTE0NTU0YWE1N2IxZGQ0ZjNmN2JmZjliOTE4NzM5Li43OWNkYzMxMTA2NDNmNTFiOTAy
NDgxMmJmMzUzMjM0OTExNGI5ZThlIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0RldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnMubW0KKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9EZXZpY2VNYW5hZ2VtZW50UmVzdHJp
Y3Rpb25zLm1tCkBAIC00Miw3ICs0Miw3IEBAIFRFU1QoV2ViS2l0LCBEZXZpY2VNYW5hZ2VtZW50
UmVzdHJpY3Rpb25zKQogICAgIFtkYXRhU3RvcmVDb25maWd1cmF0aW9uIHNldEFsbExvYWRzQmxv
Y2tlZEJ5RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0ZvclRlc3Rpbmc6WUVTXTsKIAogICAg
IFJldGFpblB0cjxXS1dlYlZpZXdDb25maWd1cmF0aW9uPiB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9
IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7Ci0gICAgW3dl
YlZpZXdDb25maWd1cmF0aW9uIHNldFdlYnNpdGVEYXRhU3RvcmU6YWRvcHROUyhbW1dLV2Vic2l0
ZURhdGFTdG9yZSBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjpkYXRhU3RvcmVDb25maWd1
cmF0aW9uLmdldCgpXSkuYXV0b3JlbGVhc2UoKV07CisgICAgW3dlYlZpZXdDb25maWd1cmF0aW9u
IHNldFdlYnNpdGVEYXRhU3RvcmU6YWRvcHROUyhbW1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxvY10g
X2luaXRXaXRoQ29uZmlndXJhdGlvbjpkYXRhU3RvcmVDb25maWd1cmF0aW9uLmdldCgpXSkuZ2V0
KCldOwogCiAgICAgUmV0YWluUHRyPFRlc3RXS1dlYlZpZXc+IHdlYlZpZXcgPSBhZG9wdE5TKFtb
VGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RaZXJvIGNvbmZpZ3VyYXRp
b246d2ViVmlld0NvbmZpZ3VyYXRpb24uZ2V0KCkgYWRkVG9XaW5kb3c6WUVTXSk7CiAKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRG93bmxvYWQubW0g
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Rvd25sb2FkLm1tCmluZGV4
IGI0MDM1NmZmMjQ3ODZjOGIzZmRiMjQwZTRmMTM1ZGIyMjNkYWJiMGYuLjZmMDA4N2IwODk2ZjFk
NjkxYmZjY2JlMDljNGJiZDg1N2ExNmUzYWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvRG93bmxvYWQubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9Eb3dubG9hZC5tbQpAQCAtODk3LDcgKzg5Nyw3IEBAIFJldGFp
blB0cjxXS1dlYlZpZXc+IHdlYlZpZXdXaXRoRG93bmxvYWRNb25pdG9yU3BlZWRNdWx0aXBsaWVy
KHNpemVfdCBtdWx0aXBsaWVyCiAgICAgYXV0byBkYXRhU3RvcmVDb25maWd1cmF0aW9uID0gYWRv
cHROUyhbX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gbmV3XSk7CiAgICAgW2RhdGFT
dG9yZUNvbmZpZ3VyYXRpb24gc2V0VGVzdFNwZWVkTXVsdGlwbGllcjptdWx0aXBsaWVyXTsKICAg
ICBhdXRvIHdlYlZpZXdDb25maWd1cmF0aW9uID0gYWRvcHROUyhbV0tXZWJWaWV3Q29uZmlndXJh
dGlvbiBuZXddKTsKLSAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0V2Vic2l0ZURhdGFTdG9y
ZTphZG9wdE5TKFtbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0
aW9uOmRhdGFTdG9yZUNvbmZpZ3VyYXRpb24uZ2V0KCldKS5hdXRvcmVsZWFzZSgpXTsKKyAgICBb
d2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0V2Vic2l0ZURhdGFTdG9yZTphZG9wdE5TKFtbV0tXZWJz
aXRlRGF0YVN0b3JlIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOmRhdGFTdG9yZUNvbmZp
Z3VyYXRpb24uZ2V0KCldKS5nZXQoKV07CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dL
V2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBj
b25maWd1cmF0aW9uOndlYlZpZXdDb25maWd1cmF0aW9uLmdldCgpXSk7CiAgICAgW3dlYlZpZXcg
c2V0TmF2aWdhdGlvbkRlbGVnYXRlOm5hdmlnYXRpb25EZWxlZ2F0ZS5nZXQoKV07CiAgICAgW3dl
YlZpZXcgY29uZmlndXJhdGlvbl0ucHJvY2Vzc1Bvb2wuX2Rvd25sb2FkRGVsZWdhdGUgPSBtb25p
dG9yRGVsZWdhdGUoKS5nZXQoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvRHJhZ0FuZERyb3BUZXN0cy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvRHJhZ0FuZERyb3BUZXN0cy5tbQppbmRleCBlNzdlNWE1Mzk2NDc5
NWRkYTM1NjY3M2Y5ODhkZjRiYTQ1ZjljODI3Li5lYzM1ODg0YWZlNmYzNTE1NmRlYmE3ZTNjZTIz
YWQ1OWU5MDUxZTdiIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL0RyYWdBbmREcm9wVGVzdHMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9EcmFnQW5kRHJvcFRlc3RzLm1tCkBAIC0xOTMsNyArMTkzLDcgQEAgc3Ry
dWN0IERyYWdTdGFydERhdGEgewogICAgIE5TU3RyaW5nICp0ZXh0IHsgbmlsIH07CiAgICAgTlNT
dHJpbmcgKnVybCB7IG5pbCB9OwogICAgIE5TU3RyaW5nICpodG1sIHsgbmlsIH07Ci0gICAgTlNE
aWN0aW9uYXJ5PE5TU3RyaW5nICosIE5TU3RyaW5nICo+ICpjdXN0b21EYXRhIHsgbmlsIH07Cisg
ICAgUmV0YWluUHRyPE5TRGljdGlvbmFyeTxOU1N0cmluZyAqLCBOU1N0cmluZyAqPj4gY3VzdG9t
RGF0YTsKIH07CiAKIHN0YXRpYyBEcmFnU3RhcnREYXRhIHJ1bkRyYWdTdGFydERhdGFUZXN0Q2Fz
ZShEcmFnQW5kRHJvcFNpbXVsYXRvciAqc2ltdWxhdG9yLCBOU1N0cmluZyAqZWxlbWVudElEKQpA
QCAtMjE1LDcgKzIxNSw3IEBAIHN0YXRpYyBEcmFnU3RhcnREYXRhIHJ1bkRyYWdTdGFydERhdGFU
ZXN0Q2FzZShEcmFnQW5kRHJvcFNpbXVsYXRvciAqc2ltdWxhdG9yLCBOCiAgICAgW2FsbERhdGEg
cmVtb3ZlT2JqZWN0Rm9yS2V5OkAidGV4dC9odG1sIl07CiAgICAgW2FsbERhdGEgcmVtb3ZlT2Jq
ZWN0Rm9yS2V5OkAiRmlsZXMiXTsKICAgICBpZiAoW2FsbERhdGEgY291bnRdKQotICAgICAgICBy
ZXN1bHQuY3VzdG9tRGF0YSA9IGFsbERhdGEuYXV0b3JlbGVhc2UoKTsKKyAgICAgICAgcmVzdWx0
LmN1c3RvbURhdGEgPSBXVEZNb3ZlKGFsbERhdGEpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAK
QEAgLTI0Miw3ICsyNDIsNyBAQCBURVNUKERyYWdBbmREcm9wVGVzdHMsIERhdGFUcmFuc2ZlclR5
cGVzT25EcmFnU3RhcnRGb3JUZXh0U2VsZWN0aW9uKQogICAgIEVYUEVDVF9XS19TVFJFUSgiUmVn
dWxhciB0ZXh0ICsgY3VzdG9tIGRhdGEiLCByZXN1bHQudGV4dCk7CiAgICAgRVhQRUNUX05VTEwo
cmVzdWx0LnVybCk7CiAgICAgRVhQRUNUX1RSVUUoW3Jlc3VsdC5odG1sIGNvbnRhaW5zU3RyaW5n
OkAiUmVndWxhciB0ZXh0ICsgY3VzdG9tIGRhdGEiXSk7Ci0gICAgRVhQRUNUX1dLX1NUUkVRKCJI
ZWxsbyB3b3JsZCIsIHJlc3VsdC5jdXN0b21EYXRhW0AidGV4dC9mb28iXSk7CisgICAgRVhQRUNU
X1dLX1NUUkVRKCJIZWxsbyB3b3JsZCIsIHJlc3VsdC5jdXN0b21EYXRhLmdldCgpW0AidGV4dC9m
b28iXSk7CiAgICAgRVhQRUNUX0ZBTFNFKHJlc3VsdC5jb250YWluc0ZpbGUpOwogCiAgICAgcmVz
dWx0ID0gcnVuRHJhZ1N0YXJ0RGF0YVRlc3RDYXNlKHNpbXVsYXRvci5nZXQoKSwgQCJ1cmwiKTsK
QEAgLTI1Niw3ICsyNTYsNyBAQCBURVNUKERyYWdBbmREcm9wVGVzdHMsIERhdGFUcmFuc2ZlclR5
cGVzT25EcmFnU3RhcnRGb3JUZXh0U2VsZWN0aW9uKQogICAgIEVYUEVDVF9OVUxMKHJlc3VsdC50
ZXh0KTsKICAgICBFWFBFQ1RfTlVMTChyZXN1bHQudXJsKTsKICAgICBFWFBFQ1RfTlVMTChyZXN1
bHQuaHRtbCk7Ci0gICAgRVhQRUNUX1dLX1NUUkVRKCJIZWxsbyB3b3JsZCIsIHJlc3VsdC5jdXN0
b21EYXRhW0AidGV4dC9mb28iXSk7CisgICAgRVhQRUNUX1dLX1NUUkVRKCJIZWxsbyB3b3JsZCIs
IHJlc3VsdC5jdXN0b21EYXRhLmdldCgpW0AidGV4dC9mb28iXSk7CiAgICAgRVhQRUNUX0ZBTFNF
KHJlc3VsdC5jb250YWluc0ZpbGUpOwogfQogCkBAIC0zMDUsNyArMzA1LDcgQEAgVEVTVChEcmFn
QW5kRHJvcFRlc3RzLCBEYXRhVHJhbnNmZXJUeXBlc09uRHJhZ1N0YXJ0Rm9yTGluaykKICAgICBF
WFBFQ1RfTlVMTChyZXN1bHQudGV4dCk7CiAgICAgRVhQRUNUX1dLX1NUUkVRKCJodHRwczovL3d3
dy5hcHBsZS5jb20vIiwgcmVzdWx0LnVybCk7CiAgICAgRVhQRUNUX05VTEwocmVzdWx0Lmh0bWwp
OwotICAgIEVYUEVDVF9XS19TVFJFUSgiYmFyIiwgcmVzdWx0LmN1c3RvbURhdGFbQCJ0ZXh0L2Zv
byJdKTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoImJhciIsIHJlc3VsdC5jdXN0b21EYXRhLmdldCgp
W0AidGV4dC9mb28iXSk7CiAgICAgRVhQRUNUX0ZBTFNFKHJlc3VsdC5jb250YWluc0ZpbGUpOwog
fQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0lu
QXBwQnJvd3NlclByaXZhY3kubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL0luQXBwQnJvd3NlclByaXZhY3kubW0KaW5kZXggNzNkMGNjNTI1ZjRhZmY2ZmQyM2Q2YmRl
NDUxNjFmNjI4ODc4ZjVkMS4uNGIzNjVlOGJiOTM3ZWVkMTVlNGFmYmNiNTY0ZmJjOGI3NzhlNTRl
OCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbkFw
cEJyb3dzZXJQcml2YWN5Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvSW5BcHBCcm93c2VyUHJpdmFjeS5tbQpAQCAtMTIwLDcgKzEyMCw3IEBAIC0gKHZvaWQp
d2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBzdGFydFVSTFNjaGVtZVRhc2s6KGlkIDxXS1VS
TFNjaGVtZVRhc2s+KXRhCiAgICAgZWxzZSBpZiAoW3Rhc2sucmVxdWVzdC5VUkwucGF0aCBpc0Vx
dWFsVG9TdHJpbmc6QCIvaW4tYXBwLWJyb3dzZXItcHJpdmFjeS10ZXN0LWFib3V0LWJsYW5rLXN1
YmZyYW1lIl0pCiAgICAgICAgIHJlc3BvbnNlID0gQCI8Ym9keSBpZCA9ICdib2R5Jz48L2JvZHk+
PGlmcmFtZSBpZD0naWZyYW1lJz48L2lmcmFtZT48L2JvZHk+IjsKIAotICAgIFt0YXNrIGRpZFJl
Y2VpdmVSZXNwb25zZTphZG9wdE5TKFtbTlNVUkxSZXNwb25zZSBhbGxvY10gaW5pdFdpdGhVUkw6
dGFzay5yZXF1ZXN0LlVSTCBNSU1FVHlwZTpAInRleHQvaHRtbCIgZXhwZWN0ZWRDb250ZW50TGVu
Z3RoOnJlc3BvbnNlLmxlbmd0aCB0ZXh0RW5jb2RpbmdOYW1lOm5pbF0pLmF1dG9yZWxlYXNlKCld
OworICAgIFt0YXNrIGRpZFJlY2VpdmVSZXNwb25zZTphZG9wdE5TKFtbTlNVUkxSZXNwb25zZSBh
bGxvY10gaW5pdFdpdGhVUkw6dGFzay5yZXF1ZXN0LlVSTCBNSU1FVHlwZTpAInRleHQvaHRtbCIg
ZXhwZWN0ZWRDb250ZW50TGVuZ3RoOnJlc3BvbnNlLmxlbmd0aCB0ZXh0RW5jb2RpbmdOYW1lOm5p
bF0pLmdldCgpXTsKICAgICBbdGFzayBkaWRSZWNlaXZlRGF0YTpbcmVzcG9uc2UgZGF0YVVzaW5n
RW5jb2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2RpbmddXTsKICAgICBbdGFzayBkaWRGaW5pc2hdOwog
fQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbmRl
eGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHkubW0gYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0luZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3
YXJkQ29tcGF0aWJpbGl0eS5tbQppbmRleCBmM2MzZDg3ZDg1MDJlNTE3ZDg1ZjYwYWZkMTNhMmEy
YTkwYjM1ZjA4Li43NDIzMThhODc1MmI0YWMwN2U1YWRhNDU2YjAzNjNkNzljNWEwYjA0IDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0luZGV4ZWREQlN0
cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eS5tbQorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0luZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJk
Q29tcGF0aWJpbGl0eS5tbQpAQCAtOTYsNyArOTYsNyBAQCBURVNUKEluZGV4ZWREQiwgU3RydWN0
dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5KQogCiAgICAgUmV0YWluUHRyPF9XS1dlYnNp
dGVEYXRhU3RvcmVDb25maWd1cmF0aW9uPiB3ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiA9
IGFkb3B0TlMoW1tfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0p
OwogICAgIHdlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmdldCgpLl9pbmRleGVkREJEYXRh
YmFzZURpcmVjdG9yeSA9IGlkYlBhdGg7Ci0gICAgY29uZmlndXJhdGlvbi5nZXQoKS53ZWJzaXRl
RGF0YVN0b3JlID0gYWRvcHROUyhbW1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxvY10gX2luaXRXaXRo
Q29uZmlndXJhdGlvbjp3ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5nZXQoKV0pLmF1dG9y
ZWxlYXNlKCk7CisgICAgY29uZmlndXJhdGlvbi5nZXQoKS53ZWJzaXRlRGF0YVN0b3JlID0gYWRv
cHROUyhbW1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjp3
ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5nZXQoKV0pLmdldCgpOwogCiAgICAgaWRiUGF0
aCA9IFtpZGJQYXRoIFVSTEJ5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpAImZpbGVfXzAiXTsKICAg
ICBpZGJQYXRoID0gW2lkYlBhdGggVVJMQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAiYmFja3dh
cmRfY29tcGF0aWJpbGl0eSJdOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9JbmRleGVkREJUZW1wRmlsZVNpemUubW0gYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL0luZGV4ZWREQlRlbXBGaWxlU2l6ZS5tbQppbmRleCA5MDYw
ZmI5Mjg5ZjdkZDdjNjZjNjQ2Zjg5YjI1MWU0NmViNTkxNmMxLi41YmIyYjdjYjg0ZjhhNzc0ZjUw
ZDczNDgyNzliYzQxYTZlNWE5N2U5IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0luZGV4ZWREQlRlbXBGaWxlU2l6ZS5tbQorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0luZGV4ZWREQlRlbXBGaWxlU2l6ZS5tbQpAQCAt
NzEsNyArNzEsNyBAQCBURVNUKEluZGV4ZWREQiwgSW5kZXhlZERCVGVtcEZpbGVTaXplKQogICAg
IGF1dG8gd2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbX1dLV2Vic2l0
ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICB3ZWJzaXRlRGF0YVN0
b3JlQ29uZmlndXJhdGlvbi5nZXQoKS5faW5kZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkgPSBpZGJQ
YXRoLmdldCgpOwogCi0gICAgY29uZmlndXJhdGlvbi5nZXQoKS53ZWJzaXRlRGF0YVN0b3JlID0g
YWRvcHROUyhbW1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlv
bjp3ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5nZXQoKV0pLmF1dG9yZWxlYXNlKCk7Cisg
ICAgY29uZmlndXJhdGlvbi5nZXQoKS53ZWJzaXRlRGF0YVN0b3JlID0gYWRvcHROUyhbW1dLV2Vi
c2l0ZURhdGFTdG9yZSBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjp3ZWJzaXRlRGF0YVN0
b3JlQ29uZmlndXJhdGlvbi5nZXQoKV0pLmdldCgpOwogICAgIGF1dG8gdHlwZXMgPSBhZG9wdE5T
KFtbTlNTZXQgYWxsb2NdIGluaXRXaXRoT2JqZWN0czpXS1dlYnNpdGVEYXRhVHlwZUluZGV4ZWRE
QkRhdGFiYXNlcywgbmlsXSk7CiAKICAgICBbY29uZmlndXJhdGlvbi5nZXQoKS53ZWJzaXRlRGF0
YVN0b3JlIHJlbW92ZURhdGFPZlR5cGVzOnR5cGVzLmdldCgpIG1vZGlmaWVkU2luY2U6W05TRGF0
ZSBkaXN0YW50UGFzdF0gY29tcGxldGlvbkhhbmRsZXI6XigpIHsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSklURW5hYmxlZC5tbSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSklURW5hYmxlZC5tbQppbmRleCBhODY3MjMw
MGNhYjA2NWU2MTdlMTJlNmU3N2JmMDA3NDIxOGU5OTJiLi4wMWU3NmUxYWNmODYxOTljNTY4ZjFi
NmVlZTBlYzAzNTQyNGQ0OGIzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL0pJVEVuYWJsZWQubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9KSVRFbmFibGVkLm1tCkBAIC00OSw3ICs0OSw3IEBAIFRFU1QoV2ViS2l0
LCBKSVRFbmFibGVkKQogICAgIGF1dG8gcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uID0gYWRvcHRO
UyhbX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIG5ld10pOwogICAgIFtwcm9jZXNzUG9vbENv
bmZpZ3VyYXRpb24gc2V0SklURW5hYmxlZDpOT107CiAgICAgYXV0byBjb25maWd1cmF0aW9uID0g
YWRvcHROUyhbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBuZXddKTsKLSAgICBbY29uZmlndXJhdGlv
biBzZXRQcm9jZXNzUG9vbDphZG9wdE5TKFtbV0tQcm9jZXNzUG9vbCBhbGxvY10gX2luaXRXaXRo
Q29uZmlndXJhdGlvbjpwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uZ2V0KCldKS5hdXRvcmVsZWFz
ZSgpXTsKKyAgICBbY29uZmlndXJhdGlvbiBzZXRQcm9jZXNzUG9vbDphZG9wdE5TKFtbV0tQcm9j
ZXNzUG9vbCBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjpwcm9jZXNzUG9vbENvbmZpZ3Vy
YXRpb24uZ2V0KCldKS5nZXQoKV07CiAgICAgYXV0byB3ZWJWaWV3Tm9KSVQgPSBhZG9wdE5TKFtb
V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDAp
IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0pOwogICAgIGNoZWNrSklURW5hYmxl
ZChXVEZNb3ZlKHdlYlZpZXdOb0pJVCksIE5PKTsKICAgICBjaGVja0pJVEVuYWJsZWQoYWRvcHRO
UyhbV0tXZWJWaWV3IG5ld10pLCBZRVMpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9Mb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXIubW0gYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0xvY2FsU3RvcmFnZURhdGFiYXNlVHJh
Y2tlci5tbQppbmRleCAwZmNjYzZmM2UwMDdhNjM5Y2JhNzcwMmFjZDllZWIzNDA2OWI3Nzk4Li5m
ZmRmNGFiNmJlN2FkODIwYTFkYTAxMWJhODIxYjc4MjE2ZTkxYjQ2IDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0xvY2FsU3RvcmFnZURhdGFiYXNlVHJh
Y2tlci5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0xvY2Fs
U3RvcmFnZURhdGFiYXNlVHJhY2tlci5tbQpAQCAtNTYsNyArNTYsNyBAQCBURVNUKFdLV2ViVmll
dywgTG9jYWxTdG9yYWdlRmV0Y2hEYXRhUmVjb3JkcykKICAgICByZWFkeVRvQ29udGludWUgPSBm
YWxzZTsKICAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmln
dXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dl
YlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29u
ZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7Ci0gICAgd2ViVmlldy5nZXQoKS5VSURl
bGVnYXRlID0gYWRvcHROUyhbW0xvY2FsU3RvcmFnZVVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKS5h
dXRvcmVsZWFzZSgpOworICAgIHdlYlZpZXcuZ2V0KCkuVUlEZWxlZ2F0ZSA9IGFkb3B0TlMoW1tM
b2NhbFN0b3JhZ2VVSURlbGVnYXRlIGFsbG9jXSBpbml0XSkuZ2V0KCk7CiAgICAgW3dlYlZpZXcg
bG9hZEhUTUxTdHJpbmc6QCI8c2NyaXB0PmxvY2FsU3RvcmFnZS5zZXRJdGVtKCd0ZXN0S2V5Jywg
J3Rlc3RWYWx1ZScpO2FsZXJ0KGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd0ZXN0S2V5JykpOzwvc2Ny
aXB0PiIgYmFzZVVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAImh0dHA6Ly9sb2NhbGhvc3QiXV07
CiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWFkeVRvQ29udGludWUpOwogCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL05ldHdvcmtQcm9j
ZXNzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9OZXR3b3JrUHJv
Y2Vzcy5tbQppbmRleCA0M2ZjMWVkZmFkNWJjM2NhMjQwNGE2ZGY0NzhhYWYzODg2M2UxMzRmLi43
NTVjOWFlMTEwYmYzZjNhMmIzYTU2NjA2ZmI1Njc3MGFiYmU2NDQ2IDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL05ldHdvcmtQcm9jZXNzLm1tCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTmV0d29ya1Byb2Nlc3MubW0K
QEAgLTM2LDcgKzM2LDcgQEAKIAogVEVTVChXZWJLaXQsIE5ldHdvcmtQcm9jZXNzRW50aXRsZW1l
bnRzKQogewotICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9j
XSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246
YWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKS5hdXRvcmVsZWFz
ZSgpXSk7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2Nd
IGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjph
ZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pLmdldCgpXSk7CiAg
ICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRUZXN0UGFnZU5hbWVkOkAic2ltcGxlIl07CiAg
ICAgV0tXZWJzaXRlRGF0YVN0b3JlICpzdG9yZSA9IFt3ZWJWaWV3IGNvbmZpZ3VyYXRpb25dLndl
YnNpdGVEYXRhU3RvcmU7CiAgICAgYm9vbCBoYXNFbnRpdGxlbWVudCA9IFtzdG9yZSBfbmV0d29y
a1Byb2Nlc3NIYXNFbnRpdGxlbWVudEZvclRlc3Rpbmc6QCJjb20uYXBwbGUucm9vdGxlc3Muc3Rv
cmFnZS5XZWJLaXROZXR3b3JraW5nU2FuZGJveCJdOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbSBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRp
b24ubW0KaW5kZXggYWRiYzk5ZGRjMjgyMTVkYWFkMDNhZTYzY2NiYzgyMWE1YzNhNzg0NC4uNGQ4
YTdkNTZmNGJiYmRlYmQxNmM3MzViYzYxNTJjZGYyNDEzM2RhYiAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5t
bQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2Fw
T25OYXZpZ2F0aW9uLm1tCkBAIC01NDU1LDcgKzU0NTUsNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBV
c2VQcmV3YXJtZWRQcm9jZXNzQWZ0ZXJUZXJtaW5hdGluZ05ldHdvcmtQcm9jZXNzKQogCiAgICAg
YXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0
aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFByb2Nlc3NQ
b29sOnByb2Nlc3NQb29sLmdldCgpXTsKLSAgICB3ZWJWaWV3Q29uZmlndXJhdGlvbi5nZXQoKS53
ZWJzaXRlRGF0YVN0b3JlID0gYWRvcHROUyhbW1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxvY10gX2lu
aXRXaXRoQ29uZmlndXJhdGlvbjp3ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5nZXQoKV0p
LmF1dG9yZWxlYXNlKCk7CisgICAgd2ViVmlld0NvbmZpZ3VyYXRpb24uZ2V0KCkud2Vic2l0ZURh
dGFTdG9yZSA9IGFkb3B0TlMoW1tXS1dlYnNpdGVEYXRhU3RvcmUgYWxsb2NdIF9pbml0V2l0aENv
bmZpZ3VyYXRpb246d2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uZ2V0KCldKS5nZXQoKTsK
IAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRo
RnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjp3ZWJWaWV3Q29u
ZmlndXJhdGlvbi5nZXQoKV0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbUFNPTk5h
dmlnYXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm94eS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvUHJveHkubW0KaW5kZXggYTYwZWM2YTc5OTIyNGE4YmNmM2UyMDZm
NjkwODliN2FjNDBjNjExNC4uN2M3MDRmNTFiYjdiZTIxZWExOTc3NDhhMzhhMjlmMjE0MDI0NTY4
OSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm94
eS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb3h5Lm1t
CkBAIC04NCw3ICs4NCw3IEBAIFRFU1QoV2ViS2l0LCBIVFRQU1Byb3h5KQogICAgIFtzdG9yZUNv
bmZpZ3VyYXRpb24gc2V0SFRUUFNQcm94eTpbTlNVUkwgVVJMV2l0aFN0cmluZzpbTlNTdHJpbmcg
c3RyaW5nV2l0aEZvcm1hdDpAImh0dHBzOi8vMTI3LjAuMC4xOiVkLyIsIHNlcnZlci5wb3J0KCld
XV07CiAgICAgW3N0b3JlQ29uZmlndXJhdGlvbiBzZXRBbGxvd3NTZXJ2ZXJQcmVjb25uZWN0Ok5P
XTsKICAgICBhdXRvIHZpZXdDb25maWd1cmF0aW9uID0gYWRvcHROUyhbV0tXZWJWaWV3Q29uZmln
dXJhdGlvbiBuZXddKTsKLSAgICBbdmlld0NvbmZpZ3VyYXRpb24gc2V0V2Vic2l0ZURhdGFTdG9y
ZTphZG9wdE5TKFtbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0
aW9uOnN0b3JlQ29uZmlndXJhdGlvbi5nZXQoKV0pLmF1dG9yZWxlYXNlKCldOworICAgIFt2aWV3
Q29uZmlndXJhdGlvbiBzZXRXZWJzaXRlRGF0YVN0b3JlOmFkb3B0TlMoW1tXS1dlYnNpdGVEYXRh
U3RvcmUgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246c3RvcmVDb25maWd1cmF0aW9uLmdl
dCgpXSkuZ2V0KCldOwogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxs
b2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAxMDAsIDEwMCkgY29uZmlndXJhdGlv
bjp2aWV3Q29uZmlndXJhdGlvbi5nZXQoKV0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5T
KFtQcm94eURlbGVnYXRlIG5ld10pOwogICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0
ZTpkZWxlZ2F0ZS5nZXQoKV07CkBAIC0xMzEsNyArMTMxLDcgQEAgVEVTVChXZWJLaXQsIEhUVFBQ
cm94eUF1dGhlbnRpY2F0aW9uKQogICAgIFtzdG9yZUNvbmZpZ3VyYXRpb24gc2V0UHJldmVudHNT
eXN0ZW1IVFRQUHJveHlBdXRoZW50aWNhdGlvbjpZRVNdOwogCiAgICAgYXV0byB2aWV3Q29uZmln
dXJhdGlvbiA9IGFkb3B0TlMoW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gbmV3XSk7Ci0gICAgW3Zp
ZXdDb25maWd1cmF0aW9uIHNldFdlYnNpdGVEYXRhU3RvcmU6YWRvcHROUyhbW1dLV2Vic2l0ZURh
dGFTdG9yZSBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjpzdG9yZUNvbmZpZ3VyYXRpb24u
Z2V0KCldKS5hdXRvcmVsZWFzZSgpXTsKKyAgICBbdmlld0NvbmZpZ3VyYXRpb24gc2V0V2Vic2l0
ZURhdGFTdG9yZTphZG9wdE5TKFtbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbG9jXSBfaW5pdFdpdGhD
b25maWd1cmF0aW9uOnN0b3JlQ29uZmlndXJhdGlvbi5nZXQoKV0pLmdldCgpXTsKICAgICBhdXRv
IHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVj
dE1ha2UoMCwgMCwgMTAwLCAxMDApIGNvbmZpZ3VyYXRpb246dmlld0NvbmZpZ3VyYXRpb24uZ2V0
KCldKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbUHJveHlEZWxlZ2F0ZSBuZXddKTsK
ICAgICBbd2ViVmlldyBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwpAQCAt
MTc0LDcgKzE3NCw3IEBAIFRFU1QoV2ViS2l0LCBTZWN1cmVQcm94eUNvbm5lY3Rpb24pCiAgICAg
W3N0b3JlQ29uZmlndXJhdGlvbiBzZXRSZXF1aXJlc1NlY3VyZUhUVFBTUHJveHlDb25uZWN0aW9u
OllFU107CiAKICAgICBhdXRvIHZpZXdDb25maWd1cmF0aW9uID0gYWRvcHROUyhbV0tXZWJWaWV3
Q29uZmlndXJhdGlvbiBuZXddKTsKLSAgICBbdmlld0NvbmZpZ3VyYXRpb24gc2V0V2Vic2l0ZURh
dGFTdG9yZTphZG9wdE5TKFtbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbG9jXSBfaW5pdFdpdGhDb25m
aWd1cmF0aW9uOnN0b3JlQ29uZmlndXJhdGlvbi5nZXQoKV0pLmF1dG9yZWxlYXNlKCldOworICAg
IFt2aWV3Q29uZmlndXJhdGlvbiBzZXRXZWJzaXRlRGF0YVN0b3JlOmFkb3B0TlMoW1tXS1dlYnNp
dGVEYXRhU3RvcmUgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246c3RvcmVDb25maWd1cmF0
aW9uLmdldCgpXSkuZ2V0KCldOwogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZp
ZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAxMDAsIDEwMCkgY29uZmln
dXJhdGlvbjp2aWV3Q29uZmlndXJhdGlvbi5nZXQoKV0pOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1
ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJo
dHRwczovL2V4YW1wbGUuY29tLyJdXV07CiAgICAgd2hpbGUgKCFyZWNlaXZlZFZhbGlkQ2xpZW50
SGVsbG8pCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L1JlcGFyZW50V2ViVmlld1RpbWVvdXQubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1JlcGFyZW50V2ViVmlld1RpbWVvdXQubW0KaW5kZXggZGNiZmQ1MDc5NTQ2YTQ2
YzM2OTlmMTg4ZDhiNmYzMGI3YTJlZWQ0Yy4uYzU1NDI1YzAwMjBkODdmMDcxYzBkMjUwYzgwM2Ex
ZjkzN2RkODE1NSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9SZXBhcmVudFdlYlZpZXdUaW1lb3V0Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvUmVwYXJlbnRXZWJWaWV3VGltZW91dC5tbQpAQCAtMzgsNyArMzgs
NyBAQCBURVNUKFdlYktpdCwgUmVwYXJlbnRXZWJWaWV3VGltZW91dCkKICAgICBbcHJvY2Vzc1Bv
b2xDb25maWd1cmF0aW9uIHNldElnbm9yZVN5bmNocm9ub3VzTWVzc2FnaW5nVGltZW91dHNGb3JU
ZXN0aW5nOllFU107CiAKICAgICBSZXRhaW5QdHI8V0tXZWJWaWV3Q29uZmlndXJhdGlvbj4gY29u
ZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0
XSk7Ci0gICAgW2NvbmZpZ3VyYXRpb24gc2V0UHJvY2Vzc1Bvb2w6YWRvcHROUyhbW1dLUHJvY2Vz
c1Bvb2wgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246cHJvY2Vzc1Bvb2xDb25maWd1cmF0
aW9uLmdldCgpXSkuYXV0b3JlbGVhc2UoKV07CisgICAgW2NvbmZpZ3VyYXRpb24gc2V0UHJvY2Vz
c1Bvb2w6YWRvcHROUyhbW1dLUHJvY2Vzc1Bvb2wgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3VyYXRp
b246cHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmdldCgpXSkuZ2V0KCldOwogCiAgICAgUmV0YWlu
UHRyPFRlc3RXS1dlYlZpZXc+IHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxv
Y10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDEwMCwgMTAwKSBjb25maWd1cmF0aW9u
OmNvbmZpZ3VyYXRpb24uZ2V0KCkgYWRkVG9XaW5kb3c6WUVTXSk7CiAgICAgW3dlYlZpZXcgc3lu
Y2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiaGVsbG8iXTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5tbSBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVzb3VyY2VMb2FkU3RhdGlz
dGljcy5tbQppbmRleCA5MTQyODQ2NWFmMDcxNDAwOGNhZjNmNjk2YmRkMDNlNGNhNmY1NzhlLi5h
ZjFhYjMzZTY2ZTI0OTUzYTQyNTVjZmU4NjE4NmI0NGZhZDZlNjRjIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Jlc291cmNlTG9hZFN0YXRpc3RpY3Mu
bW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXNvdXJjZUxv
YWRTdGF0aXN0aWNzLm1tCkBAIC0zMjYsNyArMzI2LDcgQEAgVEVTVChSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzLCBSZW1vdmVTZXNzaW9uSUQpCiB7CiAgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRv
cHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBhdXRvIHdl
YnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uID0gYWRvcHROUyhbW19XS1dlYnNpdGVEYXRhU3Rv
cmVDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7Ci0gICAgY29uZmlndXJhdGlvbi5nZXQoKS53
ZWJzaXRlRGF0YVN0b3JlID0gYWRvcHROUyhbW1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxvY10gX2lu
aXRXaXRoQ29uZmlndXJhdGlvbjp3ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5nZXQoKV0p
LmF1dG9yZWxlYXNlKCk7CisgICAgY29uZmlndXJhdGlvbi5nZXQoKS53ZWJzaXRlRGF0YVN0b3Jl
ID0gYWRvcHROUyhbW1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJh
dGlvbjp3ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5nZXQoKV0pLmdldCgpOwogCiAgICAg
YXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpO
U01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0
KCldKTsKIApAQCAtNTgzLDcgKzU4Myw3IEBAIFRFU1QoUmVzb3VyY2VMb2FkU3RhdGlzdGljcywg
RGF0YVRhc2tJZGVudGlmaWVyQ29sbGlzaW9uKQogVEVTVChSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
LCBOb01lc3NhZ2VzV2hlbk5vdFRlc3RpbmcpCiB7CiAgICAgYXV0byBjb25maWd1cmF0aW9uID0g
YWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKLSAgICBhdXRv
IGRhdGFTdG9yZSA9IGFkb3B0TlMoW1tXS1dlYnNpdGVEYXRhU3RvcmUgYWxsb2NdIF9pbml0V2l0
aENvbmZpZ3VyYXRpb246YWRvcHROUyhbW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9u
IGFsbG9jXSBpbml0XSkuYXV0b3JlbGVhc2UoKV0pOworICAgIGF1dG8gZGF0YVN0b3JlID0gYWRv
cHROUyhbW1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjph
ZG9wdE5TKFtbX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKS5n
ZXQoKV0pOwogICAgIFtjb25maWd1cmF0aW9uIHNldFdlYnNpdGVEYXRhU3RvcmU6ZGF0YVN0b3Jl
LmdldCgpXTsKICAgICBbZGF0YVN0b3JlIF9zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxl
ZDpZRVNdOwogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9j
XSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgMTAwLCAxMDApIGNvbmZpZ3VyYXRpb246
Y29uZmlndXJhdGlvbi5nZXQoKV0pOwpAQCAtMTI3OSw3ICsxMjc5LDcgQEAgVEVTVChSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzLCBTdG9yZVN1c3BlbnNpb24pCiB7CiAgICAgYXV0byAqc2hhcmVkUHJv
Y2Vzc1Bvb2wgPSBbV0tQcm9jZXNzUG9vbCBfc2hhcmVkUHJvY2Vzc1Bvb2xdOwogICAgIGF1dG8g
KmRhdGFTdG9yZTEgPSBbV0tXZWJzaXRlRGF0YVN0b3JlIGRlZmF1bHREYXRhU3RvcmVdOwotICAg
IGF1dG8gZGF0YVN0b3JlMiA9IGFkb3B0TlMoW1tXS1dlYnNpdGVEYXRhU3RvcmUgYWxsb2NdIF9p
bml0V2l0aENvbmZpZ3VyYXRpb246YWRvcHROUyhbW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1
cmF0aW9uIGFsbG9jXSBpbml0XSkuYXV0b3JlbGVhc2UoKV0pOworICAgIGF1dG8gZGF0YVN0b3Jl
MiA9IGFkb3B0TlMoW1tXS1dlYnNpdGVEYXRhU3RvcmUgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3Vy
YXRpb246YWRvcHROUyhbW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIGFsbG9jXSBp
bml0XSkuZ2V0KCldKTsKIAogICAgIFtkYXRhU3RvcmUxIF9zZXRSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRW5hYmxlZDpZRVNdOwogICAgIFtkYXRhU3RvcmUyIF9zZXRSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRW5hYmxlZDpZRVNdOwpAQCAtMTMyNSw3ICsxMzI1LDcgQEAgLSAodm9pZCl3ZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IHN0YXJ0VVJMU2NoZW1lVGFzazooaWQgPFdLVVJMU2NoZW1lVGFz
az4pdGEKICAgICBlbHNlIGlmIChbdGFzay5yZXF1ZXN0LlVSTC5wYXRoIGlzRXF1YWxUb1N0cmlu
ZzpAIi90cC1sb2FkIl0pCiAgICAgICAgIHJlc3BvbnNlID0gQCI8Ym9keT48L2JvZHk+IjsKIAot
ICAgIFt0YXNrIGRpZFJlY2VpdmVSZXNwb25zZTphZG9wdE5TKFtbTlNVUkxSZXNwb25zZSBhbGxv
Y10gaW5pdFdpdGhVUkw6dGFzay5yZXF1ZXN0LlVSTCBNSU1FVHlwZTpAInRleHQvaHRtbCIgZXhw
ZWN0ZWRDb250ZW50TGVuZ3RoOnJlc3BvbnNlLmxlbmd0aCB0ZXh0RW5jb2RpbmdOYW1lOm5pbF0p
LmF1dG9yZWxlYXNlKCldOworICAgIFt0YXNrIGRpZFJlY2VpdmVSZXNwb25zZTphZG9wdE5TKFtb
TlNVUkxSZXNwb25zZSBhbGxvY10gaW5pdFdpdGhVUkw6dGFzay5yZXF1ZXN0LlVSTCBNSU1FVHlw
ZTpAInRleHQvaHRtbCIgZXhwZWN0ZWRDb250ZW50TGVuZ3RoOnJlc3BvbnNlLmxlbmd0aCB0ZXh0
RW5jb2RpbmdOYW1lOm5pbF0pLmdldCgpXTsKICAgICBbdGFzayBkaWRSZWNlaXZlRGF0YTpbcmVz
cG9uc2UgZGF0YVVzaW5nRW5jb2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2RpbmddXTsKICAgICBbdGFz
ayBkaWRGaW5pc2hdOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9TYWZlQnJvd3NpbmcubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1NhZmVCcm93c2luZy5tbQppbmRleCBjZWE4NTliNTlkOWJiNjI5YTY2YTBhZjRl
NDk5NDA2ZTk3MTg4OWU5Li42YjljZjVkNGI4NTE5YTM1MWYwOTRlMzQ4MDg3OTU4NTJhYTdkZmNl
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NhZmVC
cm93c2luZy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Nh
ZmVCcm93c2luZy5tbQpAQCAtMzA4LDcgKzMwOCw3IEBAIFRFU1QoU2FmZUJyb3dzaW5nLCBTaG93
V2FybmluZ1NQSSkKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtXS1dlYlZpZXcgbmV3XSk7
CiAgICAgYXV0byBzaG93V2FybmluZyA9IF57CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyQ2Fs
bGVkID0gZmFsc2U7Ci0gICAgICAgIFt3ZWJWaWV3IF9zaG93U2FmZUJyb3dzaW5nV2FybmluZ1dp
dGhVUkw6bmlsIHRpdGxlOkAidGVzdCB0aXRsZSIgd2FybmluZzpAInRlc3Qgd2FybmluZyIgZGV0
YWlsczphZG9wdE5TKFtbTlNBdHRyaWJ1dGVkU3RyaW5nIGFsbG9jXSBpbml0V2l0aFN0cmluZzpA
InRlc3QgZGV0YWlscyJdKS5hdXRvcmVsZWFzZSgpIGNvbXBsZXRpb25IYW5kbGVyOl4oQk9PTCBz
aG91bGRDb250aW51ZSkgeworICAgICAgICBbd2ViVmlldyBfc2hvd1NhZmVCcm93c2luZ1dhcm5p
bmdXaXRoVVJMOm5pbCB0aXRsZTpAInRlc3QgdGl0bGUiIHdhcm5pbmc6QCJ0ZXN0IHdhcm5pbmci
IGRldGFpbHM6YWRvcHROUyhbW05TQXR0cmlidXRlZFN0cmluZyBhbGxvY10gaW5pdFdpdGhTdHJp
bmc6QCJ0ZXN0IGRldGFpbHMiXSkuZ2V0KCkgY29tcGxldGlvbkhhbmRsZXI6XihCT09MIHNob3Vs
ZENvbnRpbnVlKSB7CiAgICAgICAgICAgICBzaG91bGRDb250aW51ZVZhbHVlID0gc2hvdWxkQ29u
dGludWU7CiAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlckNhbGxlZCA9IHRydWU7CiAgICAg
ICAgIH1dOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9TZXJ2aWNlV29ya2VyQmFzaWMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbQppbmRleCBkZDcwNzYyNTZiNWY0MmVjMTYwNzE5
ZmMwMmY4NDc1ZDFhMzRmYTY1Li43ZjRhYzk2ZmE3YzczYTg0MjJhNGM0ZThmZjdlNjEwNWU5ZTg4
MGRmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Nl
cnZpY2VXb3JrZXJCYXNpYy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbQpAQCAtMTQwNyw3ICsxNDA3LDcgQEAgVEVTVChT
ZXJ2aWNlV29ya2VycywgTm9uRGVmYXVsdFNlc3Npb25JRCkKICAgICB3ZWJzaXRlRGF0YVN0b3Jl
Q29uZmlndXJhdGlvbi5nZXQoKS5fc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeSA9
IHNlcnZpY2VXb3JrZXJzUGF0aDsKICAgICB3ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5n
ZXQoKS5faW5kZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkgPSBpZGJQYXRoOwogCi0gICAgY29uZmln
dXJhdGlvbi5nZXQoKS53ZWJzaXRlRGF0YVN0b3JlID0gYWRvcHROUyhbW1dLV2Vic2l0ZURhdGFT
dG9yZSBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjp3ZWJzaXRlRGF0YVN0b3JlQ29uZmln
dXJhdGlvbi5nZXQoKV0pLmF1dG9yZWxlYXNlKCk7CisgICAgY29uZmlndXJhdGlvbi5nZXQoKS53
ZWJzaXRlRGF0YVN0b3JlID0gYWRvcHROUyhbW1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxvY10gX2lu
aXRXaXRoQ29uZmlndXJhdGlvbjp3ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5nZXQoKV0p
LmdldCgpOwogCiAgICAgUmV0YWluUHRyPFNXTWVzc2FnZUhhbmRsZXJXaXRoRXhwZWN0ZWRNZXNz
YWdlPiBtZXNzYWdlSGFuZGxlciA9IGFkb3B0TlMoW1tTV01lc3NhZ2VIYW5kbGVyV2l0aEV4cGVj
dGVkTWVzc2FnZSBhbGxvY10gaW5pdF0pOwogICAgIFtbY29uZmlndXJhdGlvbiB1c2VyQ29udGVu
dENvbnRyb2xsZXJdIGFkZFNjcmlwdE1lc3NhZ2VIYW5kbGVyOm1lc3NhZ2VIYW5kbGVyLmdldCgp
IG5hbWU6QCJzdyJdOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9UTFNEZXByZWNhdGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvVExTRGVwcmVjYXRpb24ubW0KaW5kZXggNTU4NzI1ZDQ1NWI0NWI1YWRjZGViZmQ1
YTk1MWM2NTU4YWVlOTI4Yi4uNGE1Y2I5MDJmZDc3MzM2MDg4ZWVmYmFkNGI2MmQyMWNmODExMTM1
YyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9UTFNE
ZXByZWNhdGlvbi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L1RMU0RlcHJlY2F0aW9uLm1tCkBAIC00MTMsNyArNDEzLDcgQEAgVEVTVChUTFNWZXJzaW9uLCBE
aWROZWdvdGlhdGVNb2Rlcm5UTFMpCiAgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhb
V0tXZWJWaWV3Q29uZmlndXJhdGlvbiBuZXddKTsKICAgICBhdXRvIGRhdGFTdG9yZUNvbmZpZ3Vy
YXRpb24gPSBhZG9wdE5TKFtfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiBuZXddKTsK
ICAgICBbZGF0YVN0b3JlQ29uZmlndXJhdGlvbiBzZXRGYXN0U2VydmVyVHJ1c3RFdmFsdWF0aW9u
RW5hYmxlZDpZRVNdOwotICAgIFtjb25maWd1cmF0aW9uIHNldFdlYnNpdGVEYXRhU3RvcmU6YWRv
cHROUyhbW1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjpk
YXRhU3RvcmVDb25maWd1cmF0aW9uLmdldCgpXSkuYXV0b3JlbGVhc2UoKV07CisgICAgW2NvbmZp
Z3VyYXRpb24gc2V0V2Vic2l0ZURhdGFTdG9yZTphZG9wdE5TKFtbV0tXZWJzaXRlRGF0YVN0b3Jl
IGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOmRhdGFTdG9yZUNvbmZpZ3VyYXRpb24uZ2V0
KCldKS5nZXQoKV07CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxv
Y10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9u
OmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKICAgICBbd2ViVmlldyBzZXROYXZpZ2F0aW9uRGVsZWdh
dGU6ZGVsZWdhdGUuZ2V0KCldOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnNlcnZlci5yZXF1
ZXN0KCldOwpAQCAtNDczLDcgKzQ3Myw3IEBAIFRFU1QoVExTVmVyc2lvbiwgTGVnYWN5U3VicmVz
b3VyY2VzKQogICAgIGF1dG8gZGF0YVN0b3JlQ29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tfV0tX
ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiBhbGxvY10gaW5pdE5vblBlcnNpc3RlbnRDb25m
aWd1cmF0aW9uXSk7CiAgICAgW2RhdGFTdG9yZUNvbmZpZ3VyYXRpb24gc2V0RmFzdFNlcnZlclRy
dXN0RXZhbHVhdGlvbkVuYWJsZWQ6WUVTXTsKICAgICBhdXRvIHdlYlZpZXdDb25maWd1cmF0aW9u
ID0gYWRvcHROUyhbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBuZXddKTsKLSAgICBbd2ViVmlld0Nv
bmZpZ3VyYXRpb24gc2V0V2Vic2l0ZURhdGFTdG9yZTphZG9wdE5TKFtbV0tXZWJzaXRlRGF0YVN0
b3JlIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOmRhdGFTdG9yZUNvbmZpZ3VyYXRpb24u
Z2V0KCldKS5hdXRvcmVsZWFzZSgpXTsKKyAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0V2Vi
c2l0ZURhdGFTdG9yZTphZG9wdE5TKFtbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbG9jXSBfaW5pdFdp
dGhDb25maWd1cmF0aW9uOmRhdGFTdG9yZUNvbmZpZ3VyYXRpb24uZ2V0KCldKS5nZXQoKV07CiAg
ICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFt
ZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOndlYlZpZXdDb25maWd1
cmF0aW9uLmdldCgpXSk7CiAKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbVGVzdE5hdmln
YXRpb25EZWxlZ2F0ZSBuZXddKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvVGV4dE1hbmlwdWxhdGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvVGV4dE1hbmlwdWxhdGlvbi5tbQppbmRleCBmNzgwMjNjMTVlNjgz
NTIzMjBmZjI3MTIwMWQyMDA1YzQxYWMxOTlhLi4yZmY1NTg0NGNlZDNmMWViMzY4MjFkYjkyODU5
OTcwNzQ4MDViYzdiIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1RleHRNYW5pcHVsYXRpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9UZXh0TWFuaXB1bGF0aW9uLm1tCkBAIC00MDQsNyArNDA0LDcgQEAgVEVT
VChUZXh0TWFuaXB1bGF0aW9uLCBTdGFydFRleHRNYW5pcHVsYXRpb25BcHBseVNpbmdsZUV4Y2x1
aW9uUnVsZUZvckVsZW1lbnQpCiAKICAgICBSZXRhaW5QdHI8X1dLVGV4dE1hbmlwdWxhdGlvbkNv
bmZpZ3VyYXRpb24+IGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbX1dLVGV4dE1hbmlwdWxhdGlv
bkNvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBbY29uZmlndXJhdGlvbiBzZXRFeGNs
dXNpb25SdWxlczpAWwotICAgICAgICBhZG9wdE5TKFtbX1dLVGV4dE1hbmlwdWxhdGlvbkV4Y2x1
c2lvblJ1bGUgYWxsb2NdIGluaXRFeGNsdXNpb246KEJPT0wpWUVTIGZvckVsZW1lbnQ6QCJjb2Rl
Il0pLmF1dG9yZWxlYXNlKCksCisgICAgICAgIGFkb3B0TlMoW1tfV0tUZXh0TWFuaXB1bGF0aW9u
RXhjbHVzaW9uUnVsZSBhbGxvY10gaW5pdEV4Y2x1c2lvbjooQk9PTClZRVMgZm9yRWxlbWVudDpA
ImNvZGUiXSkuZ2V0KCksCiAgICAgXV07CiAKICAgICBkb25lID0gZmFsc2U7CkBAIC00NDAsOCAr
NDQwLDggQEAgVEVTVChUZXh0TWFuaXB1bGF0aW9uLCBTdGFydFRleHRNYW5pcHVsYXRpb25BcHBs
eUluY2x1c2lvbkV4Y2x1c2lvblJ1bGVzRm9yQXR0cmkKIAogICAgIFJldGFpblB0cjxfV0tUZXh0
TWFuaXB1bGF0aW9uQ29uZmlndXJhdGlvbj4gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tfV0tU
ZXh0TWFuaXB1bGF0aW9uQ29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIFtjb25maWd1
cmF0aW9uIHNldEV4Y2x1c2lvblJ1bGVzOkBbCi0gICAgICAgIGFkb3B0TlMoW1tfV0tUZXh0TWFu
aXB1bGF0aW9uRXhjbHVzaW9uUnVsZSBhbGxvY10gaW5pdEV4Y2x1c2lvbjooQk9PTClZRVMgZm9y
QXR0cmlidXRlOkAiZGF0YS1leGNsdWRlIiB2YWx1ZTpAInllcyJdKS5hdXRvcmVsZWFzZSgpLAot
ICAgICAgICBhZG9wdE5TKFtbX1dLVGV4dE1hbmlwdWxhdGlvbkV4Y2x1c2lvblJ1bGUgYWxsb2Nd
IGluaXRFeGNsdXNpb246KEJPT0wpTk8gZm9yQXR0cmlidXRlOkAiZGF0YS1leGNsdWRlIiB2YWx1
ZTpAIm5vIl0pLmF1dG9yZWxlYXNlKCksCisgICAgICAgIGFkb3B0TlMoW1tfV0tUZXh0TWFuaXB1
bGF0aW9uRXhjbHVzaW9uUnVsZSBhbGxvY10gaW5pdEV4Y2x1c2lvbjooQk9PTClZRVMgZm9yQXR0
cmlidXRlOkAiZGF0YS1leGNsdWRlIiB2YWx1ZTpAInllcyJdKS5nZXQoKSwKKyAgICAgICAgYWRv
cHROUyhbW19XS1RleHRNYW5pcHVsYXRpb25FeGNsdXNpb25SdWxlIGFsbG9jXSBpbml0RXhjbHVz
aW9uOihCT09MKU5PIGZvckF0dHJpYnV0ZTpAImRhdGEtZXhjbHVkZSIgdmFsdWU6QCJubyJdKS5n
ZXQoKSwKICAgICBdXTsKIAogICAgIGRvbmUgPSBmYWxzZTsKQEAgLTQ2OCw3ICs0NjgsNyBAQCBU
RVNUKFRleHRNYW5pcHVsYXRpb24sIFN0YXJ0VGV4dE1hbmlwdWxhdGlvbkFwcGx5SW5jbHVzaW9u
RXhjbHVzaW9uUnVsZXNGb3JDbGFzcwogCiAgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHRO
UyhbW19XS1RleHRNYW5pcHVsYXRpb25Db25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAg
W2NvbmZpZ3VyYXRpb24gc2V0RXhjbHVzaW9uUnVsZXM6QFsKLSAgICAgICAgYWRvcHROUyhbW19X
S1RleHRNYW5pcHVsYXRpb25FeGNsdXNpb25SdWxlIGFsbG9jXSBpbml0RXhjbHVzaW9uOllFUyBm
b3JDbGFzczpAImV4Y2x1ZGUiXSkuYXV0b3JlbGVhc2UoKSwKKyAgICAgICAgYWRvcHROUyhbW19X
S1RleHRNYW5pcHVsYXRpb25FeGNsdXNpb25SdWxlIGFsbG9jXSBpbml0RXhjbHVzaW9uOllFUyBm
b3JDbGFzczpAImV4Y2x1ZGUiXSkuZ2V0KCksCiAgICAgXV07CiAKICAgICBkb25lID0gZmFsc2U7
CkBAIC00OTUsOSArNDk1LDkgQEAgVEVTVChUZXh0TWFuaXB1bGF0aW9uLCBTdGFydFRleHRNYW5p
cHVsYXRpb25BcHBseUluY2x1c2lvbkV4Y2x1c2lvblJ1bGVzRm9yQ2xhc3MKIAogICAgIGF1dG8g
Y29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tfV0tUZXh0TWFuaXB1bGF0aW9uQ29uZmlndXJhdGlv
biBhbGxvY10gaW5pdF0pOwogICAgIFtjb25maWd1cmF0aW9uIHNldEV4Y2x1c2lvblJ1bGVzOkBb
Ci0gICAgICAgIGFkb3B0TlMoW1tfV0tUZXh0TWFuaXB1bGF0aW9uRXhjbHVzaW9uUnVsZSBhbGxv
Y10gaW5pdEV4Y2x1c2lvbjpZRVMgZm9yQXR0cmlidXRlOkAiZGF0YS1leGNsdWRlIiB2YWx1ZTpA
InllcyJdKS5hdXRvcmVsZWFzZSgpLAotICAgICAgICBhZG9wdE5TKFtbX1dLVGV4dE1hbmlwdWxh
dGlvbkV4Y2x1c2lvblJ1bGUgYWxsb2NdIGluaXRFeGNsdXNpb246Tk8gZm9yQXR0cmlidXRlOkAi
ZGF0YS1leGNsdWRlIiB2YWx1ZTpAIm5vIl0pLmF1dG9yZWxlYXNlKCksCi0gICAgICAgIGFkb3B0
TlMoW1tfV0tUZXh0TWFuaXB1bGF0aW9uRXhjbHVzaW9uUnVsZSBhbGxvY10gaW5pdEV4Y2x1c2lv
bjpZRVMgZm9yQ2xhc3M6QCJleGNsdWRlIl0pLmF1dG9yZWxlYXNlKCksCisgICAgICAgIGFkb3B0
TlMoW1tfV0tUZXh0TWFuaXB1bGF0aW9uRXhjbHVzaW9uUnVsZSBhbGxvY10gaW5pdEV4Y2x1c2lv
bjpZRVMgZm9yQXR0cmlidXRlOkAiZGF0YS1leGNsdWRlIiB2YWx1ZTpAInllcyJdKS5nZXQoKSwK
KyAgICAgICAgYWRvcHROUyhbW19XS1RleHRNYW5pcHVsYXRpb25FeGNsdXNpb25SdWxlIGFsbG9j
XSBpbml0RXhjbHVzaW9uOk5PIGZvckF0dHJpYnV0ZTpAImRhdGEtZXhjbHVkZSIgdmFsdWU6QCJu
byJdKS5nZXQoKSwKKyAgICAgICAgYWRvcHROUyhbW19XS1RleHRNYW5pcHVsYXRpb25FeGNsdXNp
b25SdWxlIGFsbG9jXSBpbml0RXhjbHVzaW9uOllFUyBmb3JDbGFzczpAImV4Y2x1ZGUiXSkuZ2V0
KCksCiAgICAgXV07CiAKICAgICBkb25lID0gZmFsc2U7CkBAIC0xOTE5LDExICsxOTE5LDExIEBA
IFRFU1QoVGV4dE1hbmlwdWxhdGlvbiwgQ29tcGxldGVUZXh0TWFuaXB1bGF0aW9uU2hvdWxkUmVw
bGFjZVRleHRDb250ZW50V2l0aE11bHRpCiAgICAgRVhQRUNUX1dLX1NUUkVRKCJUZXh0IiwgaXRl
bXNbNV0udG9rZW5zWzBdLmNvbnRlbnQpOwogCiAgICAgYXV0byByZXBsYWNlbWVudEl0ZW1zID0g
cmV0YWluUHRyKEBbCi0gICAgICAgIGNyZWF0ZUl0ZW0oaXRlbXNbMF0uaWRlbnRpZmllciwgeyB7
IGl0ZW1zWzBdLnRva2Vuc1swXS5pZGVudGlmaWVyLCBAIlJlcGxhY2VtZW50IiB9LCB7IGl0ZW1z
WzBdLnRva2Vuc1swXS5pZGVudGlmaWVyLCBAInRpdGxlIiB9IH0pLmF1dG9yZWxlYXNlKCksCi0g
ICAgICAgIGNyZWF0ZUl0ZW0oaXRlbXNbMV0uaWRlbnRpZmllciwgeyB7IGl0ZW1zWzFdLnRva2Vu
c1swXS5pZGVudGlmaWVyLCBAIlJlcGxhY2VtZW50IiB9LCB7IGl0ZW1zWzFdLnRva2Vuc1swXS5p
ZGVudGlmaWVyLCBAIm9wdGlvbiIgfSB9KS5hdXRvcmVsZWFzZSgpLAotICAgICAgICBjcmVhdGVJ
dGVtKGl0ZW1zWzJdLmlkZW50aWZpZXIsIHsgeyBpdGVtc1syXS50b2tlbnNbMF0uaWRlbnRpZmll
ciwgQCJGYWlsZWQgcmVwbGFjZW1lbnQiIH0sIHsgQCIxMjM0NSIsIEAib3B0aW9uIiB9IH0pLmF1
dG9yZWxlYXNlKCksCi0gICAgICAgIGNyZWF0ZUl0ZW0oaXRlbXNbM10uaWRlbnRpZmllciwgeyB7
IGl0ZW1zWzNdLnRva2Vuc1swXS5pZGVudGlmaWVyLCBAIlJlcGxhY2VtZW50IiB9LCB7IGl0ZW1z
WzNdLnRva2Vuc1swXS5pZGVudGlmaWVyLCBAImxhYmVsIiB9IH0pLmF1dG9yZWxlYXNlKCksCi0g
ICAgICAgIGNyZWF0ZUl0ZW0oaXRlbXNbNF0uaWRlbnRpZmllciwgeyB7IGl0ZW1zWzRdLnRva2Vu
c1swXS5pZGVudGlmaWVyLCBAIlJlcGxhY2VtZW50IiB9LCB7IGl0ZW1zWzRdLnRva2Vuc1swXS5p
ZGVudGlmaWVyLCBAImltYWdlIiB9IH0pLmF1dG9yZWxlYXNlKCksCisgICAgICAgIGNyZWF0ZUl0
ZW0oaXRlbXNbMF0uaWRlbnRpZmllciwgeyB7IGl0ZW1zWzBdLnRva2Vuc1swXS5pZGVudGlmaWVy
LCBAIlJlcGxhY2VtZW50IiB9LCB7IGl0ZW1zWzBdLnRva2Vuc1swXS5pZGVudGlmaWVyLCBAInRp
dGxlIiB9IH0pLmdldCgpLAorICAgICAgICBjcmVhdGVJdGVtKGl0ZW1zWzFdLmlkZW50aWZpZXIs
IHsgeyBpdGVtc1sxXS50b2tlbnNbMF0uaWRlbnRpZmllciwgQCJSZXBsYWNlbWVudCIgfSwgeyBp
dGVtc1sxXS50b2tlbnNbMF0uaWRlbnRpZmllciwgQCJvcHRpb24iIH0gfSkuZ2V0KCksCisgICAg
ICAgIGNyZWF0ZUl0ZW0oaXRlbXNbMl0uaWRlbnRpZmllciwgeyB7IGl0ZW1zWzJdLnRva2Vuc1sw
XS5pZGVudGlmaWVyLCBAIkZhaWxlZCByZXBsYWNlbWVudCIgfSwgeyBAIjEyMzQ1IiwgQCJvcHRp
b24iIH0gfSkuZ2V0KCksCisgICAgICAgIGNyZWF0ZUl0ZW0oaXRlbXNbM10uaWRlbnRpZmllciwg
eyB7IGl0ZW1zWzNdLnRva2Vuc1swXS5pZGVudGlmaWVyLCBAIlJlcGxhY2VtZW50IiB9LCB7IGl0
ZW1zWzNdLnRva2Vuc1swXS5pZGVudGlmaWVyLCBAImxhYmVsIiB9IH0pLmdldCgpLAorICAgICAg
ICBjcmVhdGVJdGVtKGl0ZW1zWzRdLmlkZW50aWZpZXIsIHsgeyBpdGVtc1s0XS50b2tlbnNbMF0u
aWRlbnRpZmllciwgQCJSZXBsYWNlbWVudCIgfSwgeyBpdGVtc1s0XS50b2tlbnNbMF0uaWRlbnRp
ZmllciwgQCJpbWFnZSIgfSB9KS5nZXQoKSwKICAgICBdKTsKIAogICAgIGRvbmUgPSBmYWxzZTsK
QEAgLTIzMzksNyArMjMzOSw3IEBAIFRFU1QoVGV4dE1hbmlwdWxhdGlvbiwgQ29tcGxldGVUZXh0
TWFuaXB1bGF0aW9uU3VjY2Vkc1doZW5Db250ZW50T3V0T2ZQYXJhZ3JhcGhJCiAKICAgICBkb25l
ID0gZmFsc2U7CiAgICAgW3dlYlZpZXcgX2NvbXBsZXRlVGV4dE1hbmlwdWxhdGlvbkZvckl0ZW1z
OkBbCi0gICAgICAgIGNyZWF0ZUl0ZW0oaXRlbXNbMF0uaWRlbnRpZmllciwge3sgaXRlbXNbMF0u
dG9rZW5zWzBdLmlkZW50aWZpZXIsIEAiSGVsbG8gV29ybGQiIH19KS5hdXRvcmVsZWFzZSgpLAor
ICAgICAgICBjcmVhdGVJdGVtKGl0ZW1zWzBdLmlkZW50aWZpZXIsIHt7IGl0ZW1zWzBdLnRva2Vu
c1swXS5pZGVudGlmaWVyLCBAIkhlbGxvIFdvcmxkIiB9fSkuZ2V0KCksCiAgICAgXSBjb21wbGV0
aW9uOl4oTlNBcnJheTxOU0Vycm9yICo+ICplcnJvcnMpIHsKICAgICAgICAgRVhQRUNUX0VRKGVy
cm9ycywgbmlsKTsKICAgICAgICAgZG9uZSA9IHRydWU7CkBAIC0yNDA2LDcgKzI0MDYsNyBAQCBU
RVNUKFRleHRNYW5pcHVsYXRpb24sIENvbXBsZXRlVGV4dE1hbmlwdWxhdGlvbkZhaWxXaGVuRXhj
bHVzaW9uSXNWaW9sYXRlZCkKIAogICAgIFJldGFpblB0cjxfV0tUZXh0TWFuaXB1bGF0aW9uQ29u
ZmlndXJhdGlvbj4gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tfV0tUZXh0TWFuaXB1bGF0aW9u
Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIFtjb25maWd1cmF0aW9uIHNldEV4Y2x1
c2lvblJ1bGVzOkBbCi0gICAgICAgIGFkb3B0TlMoW1tfV0tUZXh0TWFuaXB1bGF0aW9uRXhjbHVz
aW9uUnVsZSBhbGxvY10gaW5pdEV4Y2x1c2lvbjooQk9PTClZRVMgZm9yRWxlbWVudDpAImVtIl0p
LmF1dG9yZWxlYXNlKCksCisgICAgICAgIGFkb3B0TlMoW1tfV0tUZXh0TWFuaXB1bGF0aW9uRXhj
bHVzaW9uUnVsZSBhbGxvY10gaW5pdEV4Y2x1c2lvbjooQk9PTClZRVMgZm9yRWxlbWVudDpAImVt
Il0pLmdldCgpLAogICAgIF1dOwogCiAgICAgZG9uZSA9IGZhbHNlOwpAQCAtMjQ1MSw3ICsyNDUx
LDcgQEAgVEVTVChUZXh0TWFuaXB1bGF0aW9uLCBDb21wbGV0ZVRleHRNYW5pcHVsYXRpb25GYWls
V2hlbkV4Y2x1ZGVkQ29udGVudEFwcGVhcnNNb3IKIAogICAgIFJldGFpblB0cjxfV0tUZXh0TWFu
aXB1bGF0aW9uQ29uZmlndXJhdGlvbj4gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tfV0tUZXh0
TWFuaXB1bGF0aW9uQ29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIFtjb25maWd1cmF0
aW9uIHNldEV4Y2x1c2lvblJ1bGVzOkBbCi0gICAgICAgIGFkb3B0TlMoW1tfV0tUZXh0TWFuaXB1
bGF0aW9uRXhjbHVzaW9uUnVsZSBhbGxvY10gaW5pdEV4Y2x1c2lvbjooQk9PTClZRVMgZm9yRWxl
bWVudDpAImVtIl0pLmF1dG9yZWxlYXNlKCksCisgICAgICAgIGFkb3B0TlMoW1tfV0tUZXh0TWFu
aXB1bGF0aW9uRXhjbHVzaW9uUnVsZSBhbGxvY10gaW5pdEV4Y2x1c2lvbjooQk9PTClZRVMgZm9y
RWxlbWVudDpAImVtIl0pLmdldCgpLAogICAgIF1dOwogCiAgICAgZG9uZSA9IGZhbHNlOwpAQCAt
MjQ5Niw3ICsyNDk2LDcgQEAgVEVTVChUZXh0TWFuaXB1bGF0aW9uLCBDb21wbGV0ZVRleHRNYW5p
cHVsYXRpb25QcmVzZXJ2ZXNFeGNsdWRlZENvbnRlbnQpCiAKICAgICBSZXRhaW5QdHI8X1dLVGV4
dE1hbmlwdWxhdGlvbkNvbmZpZ3VyYXRpb24+IGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbX1dL
VGV4dE1hbmlwdWxhdGlvbkNvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBbY29uZmln
dXJhdGlvbiBzZXRFeGNsdXNpb25SdWxlczpAWwotICAgICAgICBhZG9wdE5TKFtbX1dLVGV4dE1h
bmlwdWxhdGlvbkV4Y2x1c2lvblJ1bGUgYWxsb2NdIGluaXRFeGNsdXNpb246KEJPT0wpWUVTIGZv
ckVsZW1lbnQ6QCJlbSJdKS5hdXRvcmVsZWFzZSgpLAorICAgICAgICBhZG9wdE5TKFtbX1dLVGV4
dE1hbmlwdWxhdGlvbkV4Y2x1c2lvblJ1bGUgYWxsb2NdIGluaXRFeGNsdXNpb246KEJPT0wpWUVT
IGZvckVsZW1lbnQ6QCJlbSJdKS5nZXQoKSwKICAgICBdXTsKIAogICAgIGRvbmUgPSBmYWxzZTsK
QEAgLTI1OTQsOCArMjU5NCw4IEBAIFRFU1QoVGV4dE1hbmlwdWxhdGlvbiwgQ29tcGxldGVUZXh0
TWFuaXB1bGF0aW9uQ29ycmVjdFBhcmFncmFwaFJhbmdlKQogCiAgICAgZG9uZSA9IGZhbHNlOwog
ICAgIFt3ZWJWaWV3IF9jb21wbGV0ZVRleHRNYW5pcHVsYXRpb25Gb3JJdGVtczpAWwotICAgICAg
ICBjcmVhdGVJdGVtKGl0ZW1zWzBdLmlkZW50aWZpZXIsIHt7IGl0ZW1zWzBdLnRva2Vuc1swXS5p
ZGVudGlmaWVyLCBAImhlbGxvIiB9fSkuYXV0b3JlbGVhc2UoKSwKLSAgICAgICAgY3JlYXRlSXRl
bShpdGVtc1sxXS5pZGVudGlmaWVyLCB7eyBpdGVtc1sxXS50b2tlbnNbMF0uaWRlbnRpZmllciwg
QCJ3b3JsZCIgfX0pLmF1dG9yZWxlYXNlKCkKKyAgICAgICAgY3JlYXRlSXRlbShpdGVtc1swXS5p
ZGVudGlmaWVyLCB7eyBpdGVtc1swXS50b2tlbnNbMF0uaWRlbnRpZmllciwgQCJoZWxsbyIgfX0p
LmdldCgpLAorICAgICAgICBjcmVhdGVJdGVtKGl0ZW1zWzFdLmlkZW50aWZpZXIsIHt7IGl0ZW1z
WzFdLnRva2Vuc1swXS5pZGVudGlmaWVyLCBAIndvcmxkIiB9fSkuZ2V0KCkKICAgICBdIGNvbXBs
ZXRpb246XihOU0FycmF5PE5TRXJyb3IgKj4gKmVycm9ycykgewogICAgICAgICBFWFBFQ1RfRVEo
ZXJyb3JzLCBuaWwpOwogICAgICAgICBkb25lID0gdHJ1ZTsKQEAgLTI2MzEsNyArMjYzMSw3IEBA
IFRFU1QoVGV4dE1hbmlwdWxhdGlvbiwgQ29tcGxldGVUZXh0TWFuaXB1bGF0aW9uQ2FuTWVyZ2VD
b250ZW50QW5kUHJlc2VydmVMaW5lQnJlCiAgICAgRVhQRUNUX1NUUkVRKCIgXG4iLCBpdGVtc1sw
XS50b2tlbnNbM10uY29udGVudC5VVEY4U3RyaW5nKTsKIAogICAgIGF1dG8gcmVwbGFjZW1lbnRJ
dGVtcyA9IHJldGFpblB0cihAWwotICAgICAgICBjcmVhdGVJdGVtKGl0ZW1zWzBdLmlkZW50aWZp
ZXIsIHsgeyBpdGVtc1swXS50b2tlbnNbMF0uaWRlbnRpZmllciwgQCJPTkUiIH0sIHsgaXRlbXNb
MF0udG9rZW5zWzFdLmlkZW50aWZpZXIsIGl0ZW1zWzBdLnRva2Vuc1sxXS5jb250ZW50IH0sIHsg
aXRlbXNbMF0udG9rZW5zWzJdLmlkZW50aWZpZXIsIEAiVFdPIiB9LCB7IGl0ZW1zWzBdLnRva2Vu
c1szXS5pZGVudGlmaWVyLCBpdGVtc1swXS50b2tlbnNbM10uY29udGVudCB9IH0pLmF1dG9yZWxl
YXNlKCksCisgICAgICAgIGNyZWF0ZUl0ZW0oaXRlbXNbMF0uaWRlbnRpZmllciwgeyB7IGl0ZW1z
WzBdLnRva2Vuc1swXS5pZGVudGlmaWVyLCBAIk9ORSIgfSwgeyBpdGVtc1swXS50b2tlbnNbMV0u
aWRlbnRpZmllciwgaXRlbXNbMF0udG9rZW5zWzFdLmNvbnRlbnQgfSwgeyBpdGVtc1swXS50b2tl
bnNbMl0uaWRlbnRpZmllciwgQCJUV08iIH0sIHsgaXRlbXNbMF0udG9rZW5zWzNdLmlkZW50aWZp
ZXIsIGl0ZW1zWzBdLnRva2Vuc1szXS5jb250ZW50IH0gfSkuZ2V0KCksCiAgICAgXSk7CiAKICAg
ICBkb25lID0gZmFsc2U7CkBAIC0yNzEyLDggKzI3MTIsOCBAQCBURVNUKFRleHRNYW5pcHVsYXRp
b24sIENvbXBsZXRlVGV4dE1hbmlwdWxhdGlvblNob3VsZFByZXNlcnZlTm9kZXNBZnRlclBhcmFn
cmFwaAogICAgIEVYUEVDVF9TVFJFUSgiZnJvbSIsIGl0ZW1zWzFdLnRva2Vuc1swXS5jb250ZW50
LlVURjhTdHJpbmcpOwogCiAgICAgYXV0byByZXBsYWNlbWVudEl0ZW1zID0gcmV0YWluUHRyKEBb
Ci0gICAgICAgIGNyZWF0ZUl0ZW0oaXRlbXNbMF0uaWRlbnRpZmllciwgeyB7IGl0ZW1zWzBdLnRv
a2Vuc1swXS5pZGVudGlmaWVyLCBAIkhlbGxvIiB9LCB7IGl0ZW1zWzBdLnRva2Vuc1sxXS5pZGVu
dGlmaWVyLCBAIldvcmxkIiB9IH0pLmF1dG9yZWxlYXNlKCksCi0gICAgICAgIGNyZWF0ZUl0ZW0o
aXRlbXNbMV0uaWRlbnRpZmllciwgeyB7IGl0ZW1zWzFdLnRva2Vuc1swXS5pZGVudGlmaWVyLCBA
IkZyb20gV2ViS2l0IiB9IH0pLmF1dG9yZWxlYXNlKCksCisgICAgICAgIGNyZWF0ZUl0ZW0oaXRl
bXNbMF0uaWRlbnRpZmllciwgeyB7IGl0ZW1zWzBdLnRva2Vuc1swXS5pZGVudGlmaWVyLCBAIkhl
bGxvIiB9LCB7IGl0ZW1zWzBdLnRva2Vuc1sxXS5pZGVudGlmaWVyLCBAIldvcmxkIiB9IH0pLmdl
dCgpLAorICAgICAgICBjcmVhdGVJdGVtKGl0ZW1zWzFdLmlkZW50aWZpZXIsIHsgeyBpdGVtc1sx
XS50b2tlbnNbMF0uaWRlbnRpZmllciwgQCJGcm9tIFdlYktpdCIgfSB9KS5nZXQoKSwKICAgICBd
KTsKIAogICAgIGRvbmUgPSBmYWxzZTsKQEAgLTI3NTEsNyArMjc1MSw3IEBAIFRFU1QoVGV4dE1h
bmlwdWxhdGlvbiwgQ29tcGxldGVUZXh0TWFuaXB1bGF0aW9uU1ByZXNlcnZlTm9kZXNCZWZvcmVQ
YXJhZ3JhcGhSYW5nCiAgICAgRVhQRUNUX1NUUkVRKCJmcm9tIiwgaXRlbXNbMF0udG9rZW5zWzJd
LmNvbnRlbnQuVVRGOFN0cmluZyk7CiAKICAgICBhdXRvIHJlcGxhY2VtZW50SXRlbXMgPSByZXRh
aW5QdHIoQFsKLSAgICAgICAgY3JlYXRlSXRlbShpdGVtc1swXS5pZGVudGlmaWVyLCB7IHsgaXRl
bXNbMF0udG9rZW5zWzBdLmlkZW50aWZpZXIsIEAiSGVsbG8iIH0sIHsgaXRlbXNbMF0udG9rZW5z
WzFdLmlkZW50aWZpZXIsIEAiV29ybGQiIH0sIHsgaXRlbXNbMF0udG9rZW5zWzJdLmlkZW50aWZp
ZXIsIEAiRnJvbSBXZWJLaXQiIH0gfSkuYXV0b3JlbGVhc2UoKQorICAgICAgICBjcmVhdGVJdGVt
KGl0ZW1zWzBdLmlkZW50aWZpZXIsIHsgeyBpdGVtc1swXS50b2tlbnNbMF0uaWRlbnRpZmllciwg
QCJIZWxsbyIgfSwgeyBpdGVtc1swXS50b2tlbnNbMV0uaWRlbnRpZmllciwgQCJXb3JsZCIgfSwg
eyBpdGVtc1swXS50b2tlbnNbMl0uaWRlbnRpZmllciwgQCJGcm9tIFdlYktpdCIgfSB9KS5nZXQo
KQogICAgIF0pOwogCiAgICAgZG9uZSA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9VSURlbGVnYXRlLm1tIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9VSURlbGVnYXRlLm1tCmluZGV4IDlkZGYxNDAyOTFlYjI3
YTdiOTBlYmZhOTU4MDcwZjUxNmEyYmIyMGQuLmEwZjMyNjBhM2ZhZWFmZDBmNWU5ZDFjNTM2YWJm
ODYxNDdjODczZjIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvVUlEZWxlZ2F0ZS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1VJRGVsZWdhdGUubW0KQEAgLTY2LDcgKzY2LDcgQEAgQGVuZAogCiBURVNUKFdlYktp
dCwgV0tXZWJWaWV3SXNQbGF5aW5nQXVkaW8pCiB7Ci0gICAgYXV0byB3ZWJWaWV3ID0gYWRvcHRO
UyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCA4
MDAsIDYwMCkgY29uZmlndXJhdGlvbjphZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBh
bGxvY10gaW5pdF0pLmF1dG9yZWxlYXNlKCldKTsKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5T
KFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDgw
MCwgNjAwKSBjb25maWd1cmF0aW9uOmFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFs
bG9jXSBpbml0XSkuZ2V0KCldKTsKICAgICBhdXRvIG9ic2VydmVyID0gYWRvcHROUyhbW0F1ZGlv
T2JzZXJ2ZXIgYWxsb2NdIGluaXRdKTsKICAgICBbd2ViVmlldyBhZGRPYnNlcnZlcjpvYnNlcnZl
ci5nZXQoKSBmb3JLZXlQYXRoOkAiX2lzUGxheWluZ0F1ZGlvIiBvcHRpb25zOk5TS2V5VmFsdWVP
YnNlcnZpbmdPcHRpb25OZXcgfCBOU0tleVZhbHVlT2JzZXJ2aW5nT3B0aW9uT2xkIGNvbnRleHQ6
bmlsXTsKICAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6QCJmaWxl
LXdpdGgtdmlkZW8iXTsKQEAgLTIyNCw3ICsyMjQsNyBAQCAtICh2b2lkKV9zaG93V2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVmlldwogLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IHN0YXJ0VVJMU2NoZW1lVGFzazooaWQgPFdLVVJMU2NoZW1lVGFzaz4pdXJsU2NoZW1lVGFzawog
ewogICAgIE5TU3RyaW5nICpkYXRhID0gQCI8c2NyaXB0PndpbmRvdy5vcGVuKCdvdGhlci5odG1s
Jyk7PC9zY3JpcHQ+IjsKLSAgICBbdXJsU2NoZW1lVGFzayBkaWRSZWNlaXZlUmVzcG9uc2U6YWRv
cHROUyhbW05TVVJMUmVzcG9uc2UgYWxsb2NdIGluaXRXaXRoVVJMOnVybFNjaGVtZVRhc2sucmVx
dWVzdC5VUkwgTUlNRVR5cGU6QCJ0ZXh0L2h0bWwiIGV4cGVjdGVkQ29udGVudExlbmd0aDpkYXRh
Lmxlbmd0aCB0ZXh0RW5jb2RpbmdOYW1lOm5pbF0pLmF1dG9yZWxlYXNlKCldOworICAgIFt1cmxT
Y2hlbWVUYXNrIGRpZFJlY2VpdmVSZXNwb25zZTphZG9wdE5TKFtbTlNVUkxSZXNwb25zZSBhbGxv
Y10gaW5pdFdpdGhVUkw6dXJsU2NoZW1lVGFzay5yZXF1ZXN0LlVSTCBNSU1FVHlwZTpAInRleHQv
aHRtbCIgZXhwZWN0ZWRDb250ZW50TGVuZ3RoOmRhdGEubGVuZ3RoIHRleHRFbmNvZGluZ05hbWU6
bmlsXSkuZ2V0KCldOwogICAgIFt1cmxTY2hlbWVUYXNrIGRpZFJlY2VpdmVEYXRhOltkYXRhIGRh
dGFVc2luZ0VuY29kaW5nOk5TVVRGOFN0cmluZ0VuY29kaW5nXV07CiAgICAgW3VybFNjaGVtZVRh
c2sgZGlkRmluaXNoXTsKIH0KQEAgLTUxMywxMSArNTEzLDExIEBAIFRFU1QoV2ViS2l0LCBOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uKQogewogICAgIE5TU3RyaW5nICpodG1sID0gQCI8c2NyaXB0Pk5v
dGlmaWNhdGlvbi5yZXF1ZXN0UGVybWlzc2lvbihmdW5jdGlvbihwKXthbGVydCgncGVybWlzc2lv
biAnK3ApfSk8L3NjcmlwdD4iOwogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZp
ZXcgYWxsb2NdIGluaXRdKTsKLSAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOmFkb3B0TlMoW1tO
b3RpZmljYXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdFdpdGhBbGxvd05vdGlmaWNhdGlvbnM6WUVT
XSkuYXV0b3JlbGVhc2UoKV07CisgICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTphZG9wdE5TKFtb
Tm90aWZpY2F0aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRXaXRoQWxsb3dOb3RpZmljYXRpb25zOllF
U10pLmdldCgpXTsKICAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzpodG1sIGJhc2VVUkw6W05T
VVJMIFVSTFdpdGhTdHJpbmc6QCJodHRwczovL2V4YW1wbGUub3JnIl1dOwogICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwotICAgIFt3ZWJWaWV3
IHNldFVJRGVsZWdhdGU6YWRvcHROUyhbW05vdGlmaWNhdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0
V2l0aEFsbG93Tm90aWZpY2F0aW9uczpOT10pLmF1dG9yZWxlYXNlKCldOworICAgIFt3ZWJWaWV3
IHNldFVJRGVsZWdhdGU6YWRvcHROUyhbW05vdGlmaWNhdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0
V2l0aEFsbG93Tm90aWZpY2F0aW9uczpOT10pLmdldCgpXTsKICAgICBbd2ViVmlldyBsb2FkSFRN
TFN0cmluZzpodG1sIGJhc2VVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJodHRwczovL2V4YW1w
bGUuY29tIl1dOwogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CiB9CkBAIC01
NzYsNyArNTc2LDcgQEAgQGVuZAogCiBURVNUKFdlYktpdCwgVG9vbGJhclZpc2libGUpCiB7Ci0g
ICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRo
RnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjphZG9wdE5TKFtb
V0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pLmF1dG9yZWxlYXNlKCldKTsKKyAg
ICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhG
cmFtZTpDR1JlY3RNYWtlKDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmFkb3B0TlMoW1tX
S1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSkuZ2V0KCldKTsKICAgICBhdXRvIGRl
bGVnYXRlID0gYWRvcHROUyhbW1Rvb2xiYXJEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogICAgIFt3
ZWJWaWV3IHNldFVJRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwogICAgIFt3ZWJWaWV3IHN5bmNo
cm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjxzY3JpcHQ+YWxlcnQoJ3Zpc2libGU6JyArIHdpbmRv
dy50b29sYmFyLnZpc2libGUpO2FsZXJ0KCd2aXNpYmxlOicgKyB3aW5kb3cudG9vbGJhci52aXNp
YmxlKTwvc2NyaXB0PiJdOwpAQCAtNjA0LDcgKzYwNCw3IEBAIFRFU1QoV2ViS2l0LCBNb3VzZU1v
dmVPdmVyRWxlbWVudCkKIHsKICAgICBXS1dlYlZpZXdDb25maWd1cmF0aW9uICpjb25maWd1cmF0
aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0
UGx1Z0luQ2xhc3NOYW1lOkAiRnJhbWVIYW5kbGVTZXJpYWxpemF0aW9uIl07CiAgICAgYXV0byB3
ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dS
ZWN0TWFrZSgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7Ci0g
ICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTphZG9wdE5TKFtbTW91c2VNb3ZlT3ZlckVsZW1lbnRE
ZWxlZ2F0ZSBhbGxvY10gaW5pdF0pLmF1dG9yZWxlYXNlKCldOworICAgIFt3ZWJWaWV3IHNldFVJ
RGVsZWdhdGU6YWRvcHROUyhbW01vdXNlTW92ZU92ZXJFbGVtZW50RGVsZWdhdGUgYWxsb2NdIGlu
aXRdKS5nZXQoKV07CiAgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAi
PGEgaHJlZj0naHR0cDovL2V4YW1wbGUuY29tL3BhdGgnIHRpdGxlPSdsaW5rIHRpdGxlJz5saW5r
IGxhYmVsPC9hPiJdOwogICAgIFt3ZWJWaWV3IG1vdXNlTW92ZVRvUG9pbnQ6TlNNYWtlUG9pbnQo
MjAsIDYwMCAtIDIwKSB3aXRoRmxhZ3M6TlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0XTsKICAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Vc2VyQ29udGVudENvbnRyb2xsZXIubW0gYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VzZXJDb250ZW50Q29udHJvbGxlci5t
bQppbmRleCBiYjAyNDMxYjkyZWE5MWRmYjI3OTAzNzQyYmViZTQwNTQ2YmMzYTM5Li5hNTlkYzRm
NmEzYzk5MjdjZDU4Y2NhZjBmMjg4MjU4OTU1NWU4Mzk2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VzZXJDb250ZW50Q29udHJvbGxlci5tbQorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VzZXJDb250ZW50Q29udHJv
bGxlci5tbQpAQCAtMjM4LDcgKzIzOCw3IEBAIHN0YXRpYyBSZXRhaW5QdHI8V0tXZWJWaWV3PiB3
ZWJWaWV3Rm9yU2NyaXB0TWVzc2FnZUhhbmRsZXJNdWx0aXBsZUhhbmRsZXJSZW1vdmFsCiAKICAg
ICBSZXRhaW5QdHI8U2NyaXB0TWVzc2FnZUhhbmRsZXI+IGhhbmRsZXIgPSBhZG9wdE5TKFtbU2Ny
aXB0TWVzc2FnZUhhbmRsZXIgYWxsb2NdIGluaXRdKTsKICAgICBSZXRhaW5QdHI8V0tXZWJWaWV3
Q29uZmlndXJhdGlvbj4gY29uZmlndXJhdGlvbkNvcHkgPSBhZG9wdE5TKFtjb25maWd1cmF0aW9u
IGNvcHldKTsKLSAgICBbY29uZmlndXJhdGlvbkNvcHkgc2V0VXNlckNvbnRlbnRDb250cm9sbGVy
OmFkb3B0TlMoW1tXS1VzZXJDb250ZW50Q29udHJvbGxlciBhbGxvY10gaW5pdF0pLmF1dG9yZWxl
YXNlKCldOworICAgIFtjb25maWd1cmF0aW9uQ29weSBzZXRVc2VyQ29udGVudENvbnRyb2xsZXI6
YWRvcHROUyhbW1dLVXNlckNvbnRlbnRDb250cm9sbGVyIGFsbG9jXSBpbml0XSkuZ2V0KCldOwog
ICAgIFtbY29uZmlndXJhdGlvbkNvcHkgdXNlckNvbnRlbnRDb250cm9sbGVyXSBhZGRTY3JpcHRN
ZXNzYWdlSGFuZGxlcjpoYW5kbGVyLmdldCgpIG5hbWU6QCJoYW5kbGVyVG9SZW1vdmUiXTsKICAg
ICBbW2NvbmZpZ3VyYXRpb25Db3B5IHVzZXJDb250ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVz
c2FnZUhhbmRsZXI6aGFuZGxlci5nZXQoKSBuYW1lOkAiaGFuZGxlclRvUG9zdCJdOwogICAgIFJl
dGFpblB0cjxXS1dlYlZpZXc+IHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBp
bml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29u
ZmlndXJhdGlvbkNvcHkuZ2V0KCldKTsKQEAgLTI1Niw3ICsyNTYsNyBAQCBURVNUKFdLVXNlckNv
bnRlbnRDb250cm9sbGVyLCBTY3JpcHRNZXNzYWdlSGFuZGxlck11bHRpcGxlSGFuZGxlclJlbW92
YWwpCiAKICAgICBSZXRhaW5QdHI8V0tXZWJWaWV3Q29uZmlndXJhdGlvbj4gY29uZmlndXJhdGlv
biA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAg
UmV0YWluUHRyPF9XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbj4gcHJvY2Vzc1Bvb2xDb25maWd1
cmF0aW9uID0gYWRvcHROUyhbW19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbiBhbGxvY10gaW5p
dF0pOwotICAgIFtjb25maWd1cmF0aW9uIHNldFByb2Nlc3NQb29sOmFkb3B0TlMoW1tXS1Byb2Nl
c3NQb29sIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOnByb2Nlc3NQb29sQ29uZmlndXJh
dGlvbi5nZXQoKV0pLmF1dG9yZWxlYXNlKCldOworICAgIFtjb25maWd1cmF0aW9uIHNldFByb2Nl
c3NQb29sOmFkb3B0TlMoW1tXS1Byb2Nlc3NQb29sIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0
aW9uOnByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5nZXQoKV0pLmdldCgpXTsKIAogICAgIFJldGFp
blB0cjxXS1dlYlZpZXc+IHdlYlZpZXcgPSB3ZWJWaWV3Rm9yU2NyaXB0TWVzc2FnZUhhbmRsZXJN
dWx0aXBsZUhhbmRsZXJSZW1vdmFsVGVzdChjb25maWd1cmF0aW9uLmdldCgpKTsKICAgICBSZXRh
aW5QdHI8V0tXZWJWaWV3PiB3ZWJWaWV3MiA9IHdlYlZpZXdGb3JTY3JpcHRNZXNzYWdlSGFuZGxl
ck11bHRpcGxlSGFuZGxlclJlbW92YWxUZXN0KGNvbmZpZ3VyYXRpb24uZ2V0KCkpOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0F0dGFjaG1lbnRU
ZXN0cy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tBdHRhY2ht
ZW50VGVzdHMubW0KaW5kZXggNjY2YzdlZGE1MzcxMDEwZjIyYjUyYTc3MmUwMWUzOWUwOWUwZjA4
NC4uNzBlMTBmZmUxOTgyMGRjNmYzOGZjNTdlNGUzNThhY2I3YzZmYWNmYiAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0F0dGFjaG1lbnRUZXN0cy5t
bQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLQXR0YWNobWVu
dFRlc3RzLm1tCkBAIC0yMDgyLDcgKzIwODIsNyBAQCBURVNUKFdLQXR0YWNobWVudFRlc3RzSU9T
LCBJbnNlcnREcm9wcGVkQ29udGFjdEFzQXR0YWNobWVudCkKIAogVEVTVChXS0F0dGFjaG1lbnRU
ZXN0c0lPUywgSW5zZXJ0UGFzdGVkQ29udGFjdEFzQXR0YWNobWVudCkKIHsKLSAgICBVSVBhc3Rl
Ym9hcmQuZ2VuZXJhbFBhc3RlYm9hcmQuaXRlbVByb3ZpZGVycyA9IEBbIGNvbnRhY3RJdGVtRm9y
VGVzdGluZygpLmF1dG9yZWxlYXNlKCkgXTsKKyAgICBVSVBhc3RlYm9hcmQuZ2VuZXJhbFBhc3Rl
Ym9hcmQuaXRlbVByb3ZpZGVycyA9IEBbIGNvbnRhY3RJdGVtRm9yVGVzdGluZygpLmdldCgpIF07
CiAgICAgYXV0byB3ZWJWaWV3ID0gd2ViVmlld0ZvclRlc3RpbmdBdHRhY2htZW50cygpOwogICAg
IE9ic2VydmVBdHRhY2htZW50VXBkYXRlc0ZvclNjb3BlIG9ic2VydmVyKHdlYlZpZXcuZ2V0KCkp
OwogICAgIFt3ZWJWaWV3IHBhc3RlOm5pbF07CkBAIC0yMDk5LDcgKzIwOTksNyBAQCBURVNUKFdL
QXR0YWNobWVudFRlc3RzSU9TLCBJbnNlcnRQYXN0ZWRDb250YWN0QXNBdHRhY2htZW50KQogVEVT
VChXS0F0dGFjaG1lbnRUZXN0c0lPUywgSW5zZXJ0UGFzdGVkTWFwSXRlbUFzQXR0YWNobWVudCkK
IHsKICAgICBVSUFwcGxpY2F0aW9uSW5pdGlhbGl6ZSgpOwotICAgIFVJUGFzdGVib2FyZC5nZW5l
cmFsUGFzdGVib2FyZC5pdGVtUHJvdmlkZXJzID0gQFsgbWFwSXRlbUZvclRlc3RpbmcoKS5hdXRv
cmVsZWFzZSgpIF07CisgICAgVUlQYXN0ZWJvYXJkLmdlbmVyYWxQYXN0ZWJvYXJkLml0ZW1Qcm92
aWRlcnMgPSBAWyBtYXBJdGVtRm9yVGVzdGluZygpLmdldCgpIF07CiAgICAgYXV0byB3ZWJWaWV3
ID0gd2ViVmlld0ZvclRlc3RpbmdBdHRhY2htZW50cygpOwogICAgIE9ic2VydmVBdHRhY2htZW50
VXBkYXRlc0ZvclNjb3BlIG9ic2VydmVyKHdlYlZpZXcuZ2V0KCkpOwogICAgIFt3ZWJWaWV3IHBh
c3RlOm5pbF07CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1dLUERGVmlldy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
V0tQREZWaWV3Lm1tCmluZGV4IGI4ZjNmMjIyMWZjMjQyY2ZjY2JjNDU4N2E1ZDcyOGVkNmY0NmYw
NDkuLmU3MmU2MGY3NDNiMWIzZGM0ZDNjZjJkYTFjZDE1YmYwNTEwODJmYjggMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tQREZWaWV3Lm1tCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tQREZWaWV3Lm1tCkBAIC0x
NjEsNyArMTYxLDcgQEAgc3RhdGljIHZvaWQgY2hlY2tGcmFtZShOU1JlY3QgZnJhbWUsIENHRmxv
YXQgeCwgQ0dGbG9hdCB5LCBDR0Zsb2F0IHdpZHRoLCBDR0Zsb2EKIAogVEVTVChQREZIVUQsIE1h
aW5SZXNvdXJjZVBERikKIHsKLSAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2Vi
VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25m
aWd1cmF0aW9uOmFkb3B0TlMoW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gbmV3XSkuYXV0b3JlbGVh
c2UoKV0pOworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9j
XSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246
YWRvcHROUyhbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBuZXddKS5nZXQoKV0pOwogICAgIFt3ZWJW
aWV3IGxvYWREYXRhOnBkZkRhdGEoKSBNSU1FVHlwZTpAImFwcGxpY2F0aW9uL3BkZiIgY2hhcmFj
dGVyRW5jb2RpbmdOYW1lOkAiIiBiYXNlVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiaHR0cHM6
Ly93d3cuYXBwbGUuY29tL3Rlc3RQYXRoIl1dOwogICAgIEVYUEVDVF9FUShbd2ViVmlldyBfcGRm
SFVEc10uY291bnQsIDB1KTsKICAgICBbd2ViVmlldyBfdGVzdF93YWl0Rm9yRGlkRmluaXNoTmF2
aWdhdGlvbl07CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1dLVVJMU2NoZW1lSGFuZGxlci0xLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9XS1VSTFNjaGVtZUhhbmRsZXItMS5tbQppbmRleCA2YjBmYTUxM2VlZmVlYTUx
N2I3MzVjMjBjZDNlNWYzNTUzMTdiNjMxLi41YzliMzAxMjA2YjA1OTFkZTY3ZDIyZTBiOGQ3ODJk
N2RiZmYyNzJiIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1dLVVJMU2NoZW1lSGFuZGxlci0xLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvV0tVUkxTY2hlbWVIYW5kbGVyLTEubW0KQEAgLTU3OSw3ICs1NzksNyBA
QCAtICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgc3RhcnRVUkxTY2hlbWVUYXNr
OihpZCA8V0tVUkxTY2hlbWVUYXNrPil0YQogICAgICAgICBbdGFzayBkaWRGaW5pc2hdOwogICAg
IH0gZWxzZSB7CiAgICAgICAgIEVYUEVDVF9TVFJFUSh0YXNrLnJlcXVlc3QuVVJMLmFic29sdXRl
U3RyaW5nLlVURjhTdHJpbmcsICJzeW5jZXJyb3I6Ly8vc3VicmVzb3VyY2UiKTsKLSAgICAgICAg
W3Rhc2sgZGlkUmVjZWl2ZVJlc3BvbnNlOmFkb3B0TlMoW1tOU1VSTFJlc3BvbnNlIGFsbG9jXSBp
bml0XSkuYXV0b3JlbGVhc2UoKV07CisgICAgICAgIFt0YXNrIGRpZFJlY2VpdmVSZXNwb25zZTph
ZG9wdE5TKFtbTlNVUkxSZXNwb25zZSBhbGxvY10gaW5pdF0pLmdldCgpXTsKICAgICAgICAgW3Rh
c2sgZGlkRmFpbFdpdGhFcnJvcjpbTlNFcnJvciBlcnJvcldpdGhEb21haW46QCJUZXN0RXJyb3JE
b21haW4iIGNvZGU6MTIzIHVzZXJJbmZvOm5pbF1dOwogICAgIH0KIH0KQEAgLTgwMCw3ICs4MDAs
NyBAQCBURVNUKFVSTFNjaGVtZUhhbmRsZXIsIENPUlMpCiAgICAgICAgICAgICAgICAgICAgIEAi
QWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luIjogQCIqIiwKICAgICAgICAgICAgICAgICAgICAg
QCJDb250ZW50LUxlbmd0aCI6IEAiMiIsCiAgICAgICAgICAgICAgICAgICAgIEAiQ29udGVudC1U
eXBlIjpAInRleHQvaHRtbCIKLSAgICAgICAgICAgICAgICB9XSkuYXV0b3JlbGVhc2UoKV07Cisg
ICAgICAgICAgICAgICAgfV0pLmdldCgpXTsKICAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAg
ICAgICAgIFt0YXNrIGRpZFJlY2VpdmVSZXNwb25zZTphZG9wdE5TKFtbTlNVUkxSZXNwb25zZSBh
bGxvY10gaW5pdFdpdGhVUkw6dGFzay5yZXF1ZXN0LlVSTCBNSU1FVHlwZTpAInRleHQvaHRtbCIg
ZXhwZWN0ZWRDb250ZW50TGVuZ3RoOjAgdGV4dEVuY29kaW5nTmFtZTpuaWxdKS5nZXQoKV07CiAg
ICAgICAgICAgICBbdGFzayBkaWRSZWNlaXZlRGF0YTpbQCJISSIgZGF0YVVzaW5nRW5jb2Rpbmc6
TlNVVEY4U3RyaW5nRW5jb2RpbmddXTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3RXZhbHVhdGVKYXZhU2NyaXB0Lm1tIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdFdmFsdWF0ZUphdmFTY3Jp
cHQubW0KaW5kZXggNTVjNTAwNmZmODdhYTkwMTBhYWU1ODVjNzdjOTcyYzMzMzExMzdkZS4uMTAz
MDUxNTdlNTIzMmUxZjQ5NjAzMmI1ZjhlMDI3YWZmZjYwNjRlZCAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdFdmFsdWF0ZUphdmFTY3Jp
cHQubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZp
ZXdFdmFsdWF0ZUphdmFTY3JpcHQubW0KQEAgLTUxMSw3ICs1MTEsNyBAQCBURVNUKEV2YWx1YXRl
SmF2YVNjcmlwdCwgSmF2YVNjcmlwdEluRnJhbWVzRnJvbVBvc3RNZXNzYWdlKQogICAgIFtoYW5k
bGVyIHNldFN0YXJ0VVJMU2NoZW1lVGFza0hhbmRsZXI6WyZdKFdLV2ViVmlldyAqLCBpZDxXS1VS
TFNjaGVtZVRhc2s+IHRhc2spIHsKICAgICAgICAgaWYgKFt0YXNrLnJlcXVlc3QuVVJMLmFic29s
dXRlU3RyaW5nIGlzRXF1YWxUb1N0cmluZzpAImZyYW1lc3Rlc3Q6Ly90ZXN0L2luZGV4Lmh0bWwi
XSkgewogICAgICAgICAgICAgTlNEYXRhICpkYXRhID0gW1tOU1N0cmluZyBzdHJpbmdXaXRoRm9y
bWF0OkAiJXMiLCBmcmFtZXNNYWluUmVzb3VyY2VdIGRhdGFVc2luZ0VuY29kaW5nOk5TVVRGOFN0
cmluZ0VuY29kaW5nXTsKLSAgICAgICAgICAgIFt0YXNrIGRpZFJlY2VpdmVSZXNwb25zZTphZG9w
dE5TKFtbTlNVUkxSZXNwb25zZSBhbGxvY10gaW5pdFdpdGhVUkw6dGFzay5yZXF1ZXN0LlVSTCBN
SU1FVHlwZTpAInRleHQvaHRtbCIgZXhwZWN0ZWRDb250ZW50TGVuZ3RoOmRhdGEubGVuZ3RoIHRl
eHRFbmNvZGluZ05hbWU6bmlsXSkuYXV0b3JlbGVhc2UoKV07CisgICAgICAgICAgICBbdGFzayBk
aWRSZWNlaXZlUmVzcG9uc2U6YWRvcHROUyhbW05TVVJMUmVzcG9uc2UgYWxsb2NdIGluaXRXaXRo
VVJMOnRhc2sucmVxdWVzdC5VUkwgTUlNRVR5cGU6QCJ0ZXh0L2h0bWwiIGV4cGVjdGVkQ29udGVu
dExlbmd0aDpkYXRhLmxlbmd0aCB0ZXh0RW5jb2RpbmdOYW1lOm5pbF0pLmdldCgpXTsKICAgICAg
ICAgICAgIFt0YXNrIGRpZFJlY2VpdmVEYXRhOmRhdGFdOwogICAgICAgICAgICAgW3Rhc2sgZGlk
RmluaXNoXTsKICAgICAgICAgfSBlbHNlIGlmIChbdGFzay5yZXF1ZXN0LlVSTC5hYnNvbHV0ZVN0
cmluZyBpc0VxdWFsVG9TdHJpbmc6QCJvdGhlcnByb3RvY29sOi8vdGVzdC9pbmRleC5odG1sIl0p
IHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL0RyYWdBbmREcm9w
VGVzdHNJT1MubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9EcmFnQW5kRHJvcFRl
c3RzSU9TLm1tCmluZGV4IGJiY2YwYTkxN2E5ZTI0ZGIzZTczYTRmODc2NDcyMjljYjA4ZDY5N2Yu
LjVlNjczNjExMDMzZjExYzZhMjg1NGIyZTIyYmY4YWRjOTk4NGQyNjIgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL0RyYWdBbmREcm9wVGVzdHNJT1MubW0KKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvRHJhZ0FuZERyb3BUZXN0c0lPUy5tbQpAQCAt
MTExMyw3ICsxMTEzLDcgQEAgVEVTVChEcmFnQW5kRHJvcFRlc3RzLCBFeHRlcm5hbFNvdXJjZU1h
cEl0ZW1JbnRvRWRpdGFibGVBcmVhcykKICAgICBbd2ViVmlldyBfc3luY2hyb25vdXNseUV4ZWN1
dGVFZGl0Q29tbWFuZDpAIkRlbGV0ZSIgYXJndW1lbnQ6bmlsXTsKIAogICAgIGF1dG8gc2ltdWxh
dG9yID0gYWRvcHROUyhbW0RyYWdBbmREcm9wU2ltdWxhdG9yIGFsbG9jXSBpbml0V2l0aFdlYlZp
ZXc6d2ViVmlldy5nZXQoKV0pOwotICAgIFtzaW11bGF0b3Igc2V0RXh0ZXJuYWxJdGVtUHJvdmlk
ZXJzOkBbIGNyZWF0ZU1hcEl0ZW1Gb3JUZXN0aW5nKCkuYXV0b3JlbGVhc2UoKSBdXTsKKyAgICBb
c2ltdWxhdG9yIHNldEV4dGVybmFsSXRlbVByb3ZpZGVyczpAWyBjcmVhdGVNYXBJdGVtRm9yVGVz
dGluZygpLmdldCgpIF1dOwogICAgIFtzaW11bGF0b3IgcnVuRnJvbTpDR1BvaW50TWFrZSgwLCAw
KSB0bzpDR1BvaW50TWFrZSgxMDAsIDEwMCldOwogICAgIEVYUEVDVF9XS19TVFJFUSgiQXBwbGUg
UGFyayIsIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1bWVudC5x
dWVyeVNlbGVjdG9yKCdkaXZbY29udGVudGVkaXRhYmxlXScpLnRleHRDb250ZW50Il0pOwogICAg
IE5TVVJMICpmaXJzdFVSTCA9IFtOU1VSTCBVUkxXaXRoU3RyaW5nOlt3ZWJWaWV3IHN0cmluZ0J5
RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdhJykuaHJlZiJd
XTsKQEAgLTExMzEsNyArMTEzMSw3IEBAIFRFU1QoRHJhZ0FuZERyb3BUZXN0cywgRXh0ZXJuYWxT
b3VyY2VDb250YWN0SW50b0VkaXRhYmxlQXJlYXMpCiAgICAgW3dlYlZpZXcgX3N5bmNocm9ub3Vz
bHlFeGVjdXRlRWRpdENvbW1hbmQ6QCJEZWxldGUiIGFyZ3VtZW50Om5pbF07CiAKICAgICBhdXRv
IHNpbXVsYXRvciA9IGFkb3B0TlMoW1tEcmFnQW5kRHJvcFNpbXVsYXRvciBhbGxvY10gaW5pdFdp
dGhXZWJWaWV3OndlYlZpZXcuZ2V0KCldKTsKLSAgICBbc2ltdWxhdG9yIHNldEV4dGVybmFsSXRl
bVByb3ZpZGVyczpAWyBjcmVhdGVDb250YWN0SXRlbUZvclRlc3RpbmcoKS5hdXRvcmVsZWFzZSgp
IF1dOworICAgIFtzaW11bGF0b3Igc2V0RXh0ZXJuYWxJdGVtUHJvdmlkZXJzOkBbIGNyZWF0ZUNv
bnRhY3RJdGVtRm9yVGVzdGluZygpLmdldCgpIF1dOwogICAgIFtzaW11bGF0b3IgcnVuRnJvbTpD
R1BvaW50TWFrZSgwLCAwKSB0bzpDR1BvaW50TWFrZSgxMDAsIDEwMCldOwogICAgIEVYUEVDVF9X
S19TVFJFUSgiIiwgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3IoJ2Rpdltjb250ZW50ZWRpdGFibGVdJykudGV4dENvbnRlbnQiXSk7
CiAKQEAgLTExNDUsNyArMTE0NSw3IEBAIFRFU1QoRHJhZ0FuZERyb3BUZXN0cywgRXh0ZXJuYWxT
b3VyY2VNYXBJdGVtQW5kQ29udGFjdFRvVXBsb2FkQXJlYSkKICAgICBbd2ViVmlldyBzeW5jaHJv
bm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6QCJmaWxlLXVwbG9hZGluZyJdOwogCiAgICAgYXV0byBz
aW11bGF0b3IgPSBhZG9wdE5TKFtbRHJhZ0FuZERyb3BTaW11bGF0b3IgYWxsb2NdIGluaXRXaXRo
V2ViVmlldzp3ZWJWaWV3LmdldCgpXSk7Ci0gICAgW3NpbXVsYXRvciBzZXRFeHRlcm5hbEl0ZW1Q
cm92aWRlcnM6QFsgY3JlYXRlTWFwSXRlbUZvclRlc3RpbmcoKS5hdXRvcmVsZWFzZSgpLCBjcmVh
dGVDb250YWN0SXRlbUZvclRlc3RpbmcoKS5hdXRvcmVsZWFzZSgpIF1dOworICAgIFtzaW11bGF0
b3Igc2V0RXh0ZXJuYWxJdGVtUHJvdmlkZXJzOkBbIGNyZWF0ZU1hcEl0ZW1Gb3JUZXN0aW5nKCku
Z2V0KCksIGNyZWF0ZUNvbnRhY3RJdGVtRm9yVGVzdGluZygpLmdldCgpIF1dOwogICAgIFtzaW11
bGF0b3IgcnVuRnJvbTpDR1BvaW50TWFrZSgyMDAsIDEwMCkgdG86Q0dQb2ludE1ha2UoMTAwLCAz
MDApXTsKIAogICAgIEVYUEVDVF9XS19TVFJFUSgidGV4dC92Y2FyZCwgdGV4dC92Y2FyZCIsIFt3
ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJvdXRwdXQudmFsdWUiXSk7CmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Gb250TWFuYWdlclRlc3Rz
Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRm9udE1hbmFnZXJUZXN0cy5tbQpp
bmRleCBiY2NkOWZiZTkyMmJjYTM4OGM1OGIwM2NjMjlkMjEzYWE1MDc2YWZmLi5lYTM5ZGI4ZmQ2
NTE4ZDZiMDE2NmU3NjkzMzI4N2EyZDg4ZTgwZTVmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL21hYy9Gb250TWFuYWdlclRlc3RzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvbWFjL0ZvbnRNYW5hZ2VyVGVzdHMubW0KQEAgLTEyMywyMiArMTIzLDIyIEBA
IFRFU1QoRm9udE1hbmFnZXJUZXN0cywgVG9nZ2xlQm9sZEFuZEl0YWxpY1dpdGhNZW51SXRlbXMp
CiAKICAgICBbd2ViVmlldyBzZWxlY3RXb3JkOm5pbF07CiAgICAgW3dlYlZpZXcgd2FpdEZvck5l
eHRQcmVzZW50YXRpb25VcGRhdGVdOwotICAgIFtmb250TWFuYWdlciBhZGRGb250VHJhaXQ6bWVu
dUl0ZW1DZWxsRm9yRm9udEFjdGlvbihOU0JvbGRGb250TWFzaykuYXV0b3JlbGVhc2UoKV07Cisg
ICAgW2ZvbnRNYW5hZ2VyIGFkZEZvbnRUcmFpdDptZW51SXRlbUNlbGxGb3JGb250QWN0aW9uKE5T
Qm9sZEZvbnRNYXNrKS5nZXQoKV07CiAgICAgRVhQRUNUX1dLX1NUUkVRKCJib2xkIiwgW3dlYlZp
ZXcgc3R5bGVQcm9wZXJ0eUF0U2VsZWN0aW9uU3RhcnQ6QCJmb250LXdlaWdodCJdKTsKICAgICBF
WFBFQ1RfV0tfU1RSRVEoImJvbGQiLCBbd2ViVmlldyBzdHlsZVByb3BlcnR5QXRTZWxlY3Rpb25F
bmQ6QCJmb250LXdlaWdodCJdKTsKICAgICBFWFBFQ1RfV0tfU1RSRVEoIlRpbWVzLUJvbGQiLCBb
Zm9udE1hbmFnZXIgc2VsZWN0ZWRGb250XS5mb250TmFtZSk7CiAKLSAgICBbZm9udE1hbmFnZXIg
YWRkRm9udFRyYWl0Om1lbnVJdGVtQ2VsbEZvckZvbnRBY3Rpb24oTlNVbmJvbGRGb250TWFzayku
YXV0b3JlbGVhc2UoKV07CisgICAgW2ZvbnRNYW5hZ2VyIGFkZEZvbnRUcmFpdDptZW51SXRlbUNl
bGxGb3JGb250QWN0aW9uKE5TVW5ib2xkRm9udE1hc2spLmdldCgpXTsKICAgICBFWFBFQ1RfV0tf
U1RSRVEoIm5vcm1hbCIsIFt3ZWJWaWV3IHN0eWxlUHJvcGVydHlBdFNlbGVjdGlvblN0YXJ0OkAi
Zm9udC13ZWlnaHQiXSk7CiAgICAgRVhQRUNUX1dLX1NUUkVRKCJub3JtYWwiLCBbd2ViVmlldyBz
dHlsZVByb3BlcnR5QXRTZWxlY3Rpb25FbmQ6QCJmb250LXdlaWdodCJdKTsKICAgICBFWFBFQ1Rf
V0tfU1RSRVEoIlRpbWVzLVJvbWFuIiwgW2ZvbnRNYW5hZ2VyIHNlbGVjdGVkRm9udF0uZm9udE5h
bWUpOwogCi0gICAgW2ZvbnRNYW5hZ2VyIGFkZEZvbnRUcmFpdDptZW51SXRlbUNlbGxGb3JGb250
QWN0aW9uKE5TSXRhbGljRm9udE1hc2spLmF1dG9yZWxlYXNlKCldOworICAgIFtmb250TWFuYWdl
ciBhZGRGb250VHJhaXQ6bWVudUl0ZW1DZWxsRm9yRm9udEFjdGlvbihOU0l0YWxpY0ZvbnRNYXNr
KS5nZXQoKV07CiAgICAgRVhQRUNUX1dLX1NUUkVRKCJpdGFsaWMiLCBbd2ViVmlldyBzdHlsZVBy
b3BlcnR5QXRTZWxlY3Rpb25TdGFydDpAImZvbnQtc3R5bGUiXSk7CiAgICAgRVhQRUNUX1dLX1NU
UkVRKCJpdGFsaWMiLCBbd2ViVmlldyBzdHlsZVByb3BlcnR5QXRTZWxlY3Rpb25FbmQ6QCJmb250
LXN0eWxlIl0pOwogICAgIEVYUEVDVF9XS19TVFJFUSgiVGltZXMtSXRhbGljIiwgW2ZvbnRNYW5h
Z2VyIHNlbGVjdGVkRm9udF0uZm9udE5hbWUpOwogCi0gICAgW2ZvbnRNYW5hZ2VyIGFkZEZvbnRU
cmFpdDptZW51SXRlbUNlbGxGb3JGb250QWN0aW9uKE5TVW5pdGFsaWNGb250TWFzaykuYXV0b3Jl
bGVhc2UoKV07CisgICAgW2ZvbnRNYW5hZ2VyIGFkZEZvbnRUcmFpdDptZW51SXRlbUNlbGxGb3JG
b250QWN0aW9uKE5TVW5pdGFsaWNGb250TWFzaykuZ2V0KCldOwogICAgIEVYUEVDVF9XS19TVFJF
USgibm9ybWFsIiwgW3dlYlZpZXcgc3R5bGVQcm9wZXJ0eUF0U2VsZWN0aW9uU3RhcnQ6QCJmb250
LXN0eWxlIl0pOwogICAgIEVYUEVDVF9XS19TVFJFUSgibm9ybWFsIiwgW3dlYlZpZXcgc3R5bGVQ
cm9wZXJ0eUF0U2VsZWN0aW9uRW5kOkAiZm9udC1zdHlsZSJdKTsKICAgICBFWFBFQ1RfV0tfU1RS
RVEoIlRpbWVzLVJvbWFuIiwgW2ZvbnRNYW5hZ2VyIHNlbGVjdGVkRm9udF0uZm9udE5hbWUpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421076</attachid>
            <date>2021-02-19 21:01:31 -0800</date>
            <delta_ts>2021-02-19 22:37:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222177-20210219210131.patch</filename>
            <type>text/plain</type>
            <size>86164</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczMTkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
Y2IzNTAyZmQ1ZWIzMmI4MTEzNjQwNTEwN2M0ZTkwYjczM2JiMDNiLi4xNjAwMWVhNTBjMjQxZTM0
YzQ1MGM0ZWQ1YzE4ODM3MTkxNWM4MjllIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAyMS0wMi0xOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFJldmlldyByZW1haW5pbmcgdXNhZ2Ugb2YgYXV0b3JlbGVhc2UgdG8gbWFrZSBz
dXJlIGl0IGlzIG5lY2Vzc2FyeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjIyMTc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgR2VvZmZyZXkgR2FyZW4u
CisKKyAgICAgICAgKiBBUEkvSlNDb250ZXh0Lm1tOgorICAgICAgICAoK1tKU0NvbnRleHQgY29u
dGV4dFdpdGhKU0dsb2JhbENvbnRleHRSZWY6XSk6CisgICAgICAgICogQVBJL0pTVmlydHVhbE1h
Y2hpbmUubW06CisgICAgICAgICgrW0pTVmlydHVhbE1hY2hpbmUgdmlydHVhbE1hY2hpbmVXaXRo
Q29udGV4dEdyb3VwUmVmOl0pOgorICAgICAgICAqIEFQSS9KU1dyYXBwZXJNYXAubW06CisgICAg
ICAgICgtW0pTV3JhcHBlck1hcCBvYmpjV3JhcHBlckZvckpTVmFsdWVSZWY6aW5Db250ZXh0Ol0p
OgorCiAyMDIxLTAyLTE5ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAg
ICAgICAgW0pTQ10gTm90IGFsbG9jYXRpbmcgZW1wdHkgb2JqZWN0IGZvciBJbnRsIG9wdGlvbnMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBkZmNkZTc4MDViZTY1YjNiNDFmMzg1MWZkYTRkZmRmNDg1NDlkYzdkLi44
ZWI4NzRkMjQ2N2Y5YjRkMzc0MGVhZWM0OTQwNjI3NjNkMjA4YWMyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTMgQEAKKzIwMjEtMDItMTkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
KworICAgICAgICBSZXZpZXcgcmVtYWluaW5nIHVzYWdlIG9mIGF1dG9yZWxlYXNlIHRvIG1ha2Ug
c3VyZSBpdCBpcyBuZWNlc3NhcnkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyMjE3NworCisgICAgICAgIFJldmlld2VkIGJ5IEdlb2ZmcmV5IEdhcmVu
LgorCisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJB
VktpdC5tbToKKyAgICAgICAgKC1bV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlciBkaWRGaW5p
c2hGdWxsc2NyZWVuOl0pOgorCiAyMDIxLTAyLTE5ICBQYXRyaWNrIEFuZ2xlICA8cGFuZ2xlQGFw
cGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBJbXBsZW1lbnQgR3JpZCBPdmVybGF5
ICJTaG93IGxpbmUgbmFtZXMiIGRyYXdpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMDk0MzZkZmVmZDM1NjVlODA4
MGIzYTkxOGM3MTNkZjMwYTAxY2I3YS4uYTRjN2Y1MjE3OTQ1ODlkMDY2NDRjODM4YzY3YmZhZjMx
MTlkZmNhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAyMS0wMi0xOSAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlldyByZW1haW5pbmcgdXNhZ2Ug
b2YgYXV0b3JlbGVhc2UgdG8gbWFrZSBzdXJlIGl0IGlzIG5lY2Vzc2FyeQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyMTc3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgR2VvZmZyZXkgR2FyZW4uCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2Nv
YS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lv
bkNvY29hOjpOZXR3b3JrU2Vzc2lvbkNvY29hKToKKyAgICAgICAgKiBQbGF0Zm9ybS9jb2NvYS9X
S1BheW1lbnRBdXRob3JpemF0aW9uRGVsZWdhdGUubW06CisgICAgICAgICgtW1dLUGF5bWVudEF1
dGhvcml6YXRpb25EZWxlZ2F0ZSBjb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb246XSk6Cisg
ICAgICAgICgtW1dLUGF5bWVudEF1dGhvcml6YXRpb25EZWxlZ2F0ZSBjb21wbGV0ZVNoaXBwaW5n
Q29udGFjdFNlbGVjdGlvbjpdKToKKyAgICAgICAgKC1bV0tQYXltZW50QXV0aG9yaXphdGlvbkRl
bGVnYXRlIGNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb246XSk6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9OU0F0dHJpYnV0ZWRTdHJpbmcubW06CisgICAgICAgICgrW19XS0F0
dHJpYnV0ZWRTdHJpbmdXZWJWaWV3Q2FjaGUgY29uZmlndXJhdGlvbl0pOgorICAgICAgICAoK1tO
U0F0dHJpYnV0ZWRTdHJpbmcgX2xvYWRGcm9tSFRNTFdpdGhPcHRpb25zOmNvbnRlbnRMb2FkZXI6
Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jy
b3dzaW5nQ29udGV4dENvbnRyb2xsZXIubW06CisgICAgICAgIChzZXRVcFBhZ2VQb2xpY3lDbGll
bnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAg
ICAoLVtXS1dlYlZpZXcgX3Rha2VQREZTbmFwc2hvdFdpdGhDb25maWd1cmF0aW9uOmNvbXBsZXRp
b25IYW5kbGVyOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld1Rlc3Rp
bmdJT1MubW06CisgICAgICAgICgtW1dLV2ViVmlldyBfcmVxdWVzdFRleHRJbnB1dENvbnRleHRz
SW5SZWN0OmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMubW06CisgICAgICAgIChXZWJLaXQ6OmNv
bnZlcnRUb05QTk5TdHJpbmcpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV0tB
Y2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdE1hYy5tbToKKyAgICAgICAgKC1bV0tBY2Nlc3NpYmls
aXR5V2ViUGFnZU9iamVjdCBBTExPV19ERVBSRUNBVEVEX0lNUExFTUVOVEFUSU9OU19FTkRdKToK
KwogMjAyMS0wMi0xOSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAog
ICAgICAgICBVbnJldmlld2VkLCBmaXggc29tZSBpbnRlcm5hbCBidWlsZHMgYWZ0ZXIgcjI3MzE4
NApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IGE5MWJkYWIxN2VkNWI3Y2UzYjNkZGI5
N2NiMmE3NmM0OTZjNTgyZmYuLmRjYzU0ZTVkODMyNDQ1NjNjMjg3MDY5Y2EzZTQyZTA1MmNmMTUy
ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMS0w
Mi0xOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlldyBy
ZW1haW5pbmcgdXNhZ2Ugb2YgYXV0b3JlbGVhc2UgdG8gbWFrZSBzdXJlIGl0IGlzIG5lY2Vzc2Fy
eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyMTc3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgR2VvZmZyZXkgR2FyZW4uCisKKyAgICAgICAgKiBNaXNj
L1dlYk5TT2JqZWN0RXh0cmFzLm1tOgorICAgICAgICAoLVtXZWJNYWluVGhyZWFkSW52b2tlciBm
b3J3YXJkSW52b2NhdGlvbjpdKToKKyAgICAgICAgKiBQbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2lu
Vmlldy5tbToKKyAgICAgICAgKC1bV2ViTmV0c2NhcGVQbHVnaW5WaWV3IHNlbmRFdmVudDppc0Ry
YXdSZWN0Ol0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxl
ci5tbToKKyAgICAgICAgKC1bV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlciBpbml0XSk6CisK
IDIwMjEtMDItMTkgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAg
IFtQYXltZW50IFJlcXVlc3RdIGFkZCBzdXBwb3J0IGZvciBBcHBsZSBQYXkgcGF5bWVudCBtZXRo
b2QgbW9kZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NvbnRleHQu
bW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dC5tbQppbmRleCAyY2MyZjZj
ODlmZGMzYTQ5OWFjNDExNjI3ZWQ3YTMzYjY1MGYxZDVjLi5lM2FmMGIxNDFkZTgxN2QyODc1OGIz
MDM4MDExYzJkMWVjY2EzNjJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L0pTQ29udGV4dC5tbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dC5t
bQpAQCAtNDA2LDEwICs0MDYsMTAgQEAgLSAoSlNWYWx1ZSAqKXdyYXBwZXJGb3JKU09iamVjdDoo
SlNWYWx1ZVJlZil2YWx1ZQogKyAoSlNDb250ZXh0ICopY29udGV4dFdpdGhKU0dsb2JhbENvbnRl
eHRSZWY6KEpTR2xvYmFsQ29udGV4dFJlZilnbG9iYWxDb250ZXh0CiB7CiAgICAgSlNWaXJ0dWFs
TWFjaGluZSAqdmlydHVhbE1hY2hpbmUgPSBbSlNWaXJ0dWFsTWFjaGluZSB2aXJ0dWFsTWFjaGlu
ZVdpdGhDb250ZXh0R3JvdXBSZWY6dG9SZWYoJnRvSlMoZ2xvYmFsQ29udGV4dCktPnZtKCkpXTsK
LSAgICBKU0NvbnRleHQgKmNvbnRleHQgPSBbdmlydHVhbE1hY2hpbmUgY29udGV4dEZvckdsb2Jh
bENvbnRleHRSZWY6Z2xvYmFsQ29udGV4dF07CisgICAgYXV0byBjb250ZXh0ID0gcmV0YWluUHRy
KFt2aXJ0dWFsTWFjaGluZSBjb250ZXh0Rm9yR2xvYmFsQ29udGV4dFJlZjpnbG9iYWxDb250ZXh0
XSk7CiAgICAgaWYgKCFjb250ZXh0KQotICAgICAgICBjb250ZXh0ID0gYWRvcHROUyhbW0pTQ29u
dGV4dCBhbGxvY10gaW5pdFdpdGhHbG9iYWxDb250ZXh0UmVmOmdsb2JhbENvbnRleHRdKS5hdXRv
cmVsZWFzZSgpOwotICAgIHJldHVybiBjb250ZXh0OworICAgICAgICBjb250ZXh0ID0gYWRvcHRO
UyhbW0pTQ29udGV4dCBhbGxvY10gaW5pdFdpdGhHbG9iYWxDb250ZXh0UmVmOmdsb2JhbENvbnRl
eHRdKTsKKyAgICByZXR1cm4gY29udGV4dC5hdXRvcmVsZWFzZSgpOwogfQogCiBAZW5kCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmlydHVhbE1hY2hpbmUubW0gYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmlydHVhbE1hY2hpbmUubW0KaW5kZXggMGIzNGY4
OTA5OGY1ZjE4NjMzZmQwOWE5OTYwZDE5ZDc3Y2UwZDJkYS4uMzAzMjI2NDAxZDQ0ZGNmZDUzOGUw
ZDgyZmEwYWRjZWI0M2U1MmQ5ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU1ZpcnR1YWxNYWNoaW5lLm1tCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNW
aXJ0dWFsTWFjaGluZS5tbQpAQCAtMjM0LDEwICsyMzQsMTAgQEAgSlNDb250ZXh0R3JvdXBSZWYg
Z2V0R3JvdXBGcm9tVmlydHVhbE1hY2hpbmUoSlNWaXJ0dWFsTWFjaGluZSAqdmlydHVhbE1hY2hp
bmUpCiAKICsgKEpTVmlydHVhbE1hY2hpbmUgKil2aXJ0dWFsTWFjaGluZVdpdGhDb250ZXh0R3Jv
dXBSZWY6KEpTQ29udGV4dEdyb3VwUmVmKWdyb3VwCiB7Ci0gICAgSlNWaXJ0dWFsTWFjaGluZSAq
dmlydHVhbE1hY2hpbmUgPSBbSlNWTVdyYXBwZXJDYWNoZSB3cmFwcGVyRm9ySlNDb250ZXh0R3Jv
dXBSZWY6Z3JvdXBdOworICAgIGF1dG8gdmlydHVhbE1hY2hpbmUgPSByZXRhaW5QdHIoW0pTVk1X
cmFwcGVyQ2FjaGUgd3JhcHBlckZvckpTQ29udGV4dEdyb3VwUmVmOmdyb3VwXSk7CiAgICAgaWYg
KCF2aXJ0dWFsTWFjaGluZSkKLSAgICAgICAgdmlydHVhbE1hY2hpbmUgPSBhZG9wdE5TKFtbSlNW
aXJ0dWFsTWFjaGluZSBhbGxvY10gaW5pdFdpdGhDb250ZXh0R3JvdXBSZWY6Z3JvdXBdKS5hdXRv
cmVsZWFzZSgpOwotICAgIHJldHVybiB2aXJ0dWFsTWFjaGluZTsKKyAgICAgICAgdmlydHVhbE1h
Y2hpbmUgPSBhZG9wdE5TKFtbSlNWaXJ0dWFsTWFjaGluZSBhbGxvY10gaW5pdFdpdGhDb250ZXh0
R3JvdXBSZWY6Z3JvdXBdKTsKKyAgICByZXR1cm4gdmlydHVhbE1hY2hpbmUuYXV0b3JlbGVhc2Uo
KTsKIH0KIAogLSAoSlNDb250ZXh0ICopY29udGV4dEZvckdsb2JhbENvbnRleHRSZWY6KEpTR2xv
YmFsQ29udGV4dFJlZilnbG9iYWxDb250ZXh0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL0pTV3JhcHBlck1hcC5tbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNX
cmFwcGVyTWFwLm1tCmluZGV4IGQ4OWJmZWE0YmJkYmIzOTgyZmEwZTBjZWMyMjI3ZDg5NjhkY2I2
Y2EuLmYwMzc3NTJlNDk5YjVjZGM0MjM1ZTI4ZTJiNWYxYzJjYmVjZDA5ZmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNXcmFwcGVyTWFwLm1tCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvSlNXcmFwcGVyTWFwLm1tCkBAIC02NjQsMTIgKzY2NCwxMiBAQCAt
IChKU1ZhbHVlICopanNXcmFwcGVyRm9yT2JqZWN0OihpZClvYmplY3QgaW5Db250ZXh0OihKU0Nv
bnRleHQgKiljb250ZXh0CiAtIChKU1ZhbHVlICopb2JqY1dyYXBwZXJGb3JKU1ZhbHVlUmVmOihK
U1ZhbHVlUmVmKXZhbHVlIGluQ29udGV4dDpjb250ZXh0CiB7CiAgICAgQVNTRVJUKHRvSlNHbG9i
YWxPYmplY3QoW2NvbnRleHQgSlNHbG9iYWxDb250ZXh0UmVmXSktPndyYXBwZXJNYXAoKSA9PSBz
ZWxmKTsKLSAgICBKU1ZhbHVlICp3cmFwcGVyID0gKF9fYnJpZGdlIEpTVmFsdWUgKilOU01hcEdl
dChtX2NhY2hlZE9iakNXcmFwcGVycy5nZXQoKSwgdmFsdWUpOworICAgIGF1dG8gd3JhcHBlciA9
IHJldGFpblB0cigoX19icmlkZ2UgSlNWYWx1ZSAqKU5TTWFwR2V0KG1fY2FjaGVkT2JqQ1dyYXBw
ZXJzLmdldCgpLCB2YWx1ZSkpOwogICAgIGlmICghd3JhcHBlcikgewotICAgICAgICB3cmFwcGVy
ID0gYWRvcHROUyhbW0pTVmFsdWUgYWxsb2NdIGluaXRXaXRoVmFsdWU6dmFsdWUgaW5Db250ZXh0
OmNvbnRleHRdKS5hdXRvcmVsZWFzZSgpOwotICAgICAgICBOU01hcEluc2VydChtX2NhY2hlZE9i
akNXcmFwcGVycy5nZXQoKSwgdmFsdWUsIChfX2JyaWRnZSB2b2lkKil3cmFwcGVyKTsKKyAgICAg
ICAgd3JhcHBlciA9IGFkb3B0TlMoW1tKU1ZhbHVlIGFsbG9jXSBpbml0V2l0aFZhbHVlOnZhbHVl
IGluQ29udGV4dDpjb250ZXh0XSk7CisgICAgICAgIE5TTWFwSW5zZXJ0KG1fY2FjaGVkT2JqQ1dy
YXBwZXJzLmdldCgpLCB2YWx1ZSwgKF9fYnJpZGdlIHZvaWQqKXdyYXBwZXIuZ2V0KCkpOwogICAg
IH0KLSAgICByZXR1cm4gd3JhcHBlcjsKKyAgICByZXR1cm4gd3JhcHBlci5hdXRvcmVsZWFzZSgp
OwogfQogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2Vi
VmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5tbQppbmRleCA2NmJjNGRm
YjJmZmQ2YzFkMmQ4ZTJjNDI1NWU5MmMwZWIzZTJmMTAxLi40MGVlOGE3YjAzYzZiZGQ3NjUxNjU5
Yjc4MjY1YjU1Njc2N2MwNGEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQubW0KQEAg
LTEwNjIsNyArMTA2Miw3IEBAIC0gKHZvaWQpZGlkRmluaXNoRnVsbHNjcmVlbjooVmlkZW9GdWxs
c2NyZWVuQ29udHJvbGxlckNvbnRleHQqKWNvbnRleHQKIHsKICAgICBBU1NFUlQoV2ViVGhyZWFk
SXNDdXJyZW50KCkpOwogICAgIEFTU0VSVF9VTlVTRUQoY29udGV4dCwgY29udGV4dCA9PSBfY29u
dGV4dCk7Ci0gICAgcmV0YWluUHRyKHNlbGYpLmF1dG9yZWxlYXNlKCk7IC8vIHJldGFpbiBzZWxm
IGJlZm9yZSBicmVha2luZyBhIHJldGFpbiBjeWNsZS4KKyAgICBhdXRvIHN0cm9uZ1NlbGYgPSBy
ZXRhaW5QdHIoc2VsZik7IC8vIHJldGFpbiBzZWxmIGJlZm9yZSBicmVha2luZyBhIHJldGFpbiBj
eWNsZS4KICAgICBfY29udGV4dC0+c2V0Q29udHJvbGxlcihuaWwpOwogICAgIF9jb250ZXh0ID0g
bnVsbHB0cjsKICAgICBfdmlkZW9FbGVtZW50ID0gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbSBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQpp
bmRleCA2ZTU0NTZlOTNkZGJkOGU4YmExYTkwYzZjMjg0N2MwMzRjZTcyMzI2Li45YTE2NGMxMzNj
ZTdjNzJkYWM1Zjk4ZTdlM2FhMmJkZmM0MTljMjQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0KKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCkBAIC0x
MjMyLDcgKzEyMzIsNyBAQCBOZXR3b3JrU2Vzc2lvbkNvY29hOjpOZXR3b3JrU2Vzc2lvbkNvY29h
KE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcywgTmV0d29yawogICAgICAgICBTYW5kYm94
RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkocGFyYW1ldGVycy5oc3RzU3RvcmFnZURpcmVj
dG9yeUV4dGVuc2lvbkhhbmRsZSk7CiAgICAgICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyByZXNw
b25kc1RvU2VsZWN0b3IgY2hlY2sgb25jZSByZGFyOi8vcHJvYmxlbS81MDEwOTYzMSBpcyBpbiBh
IGJ1aWxkIGFuZCBib3RzIGFyZSB1cGRhdGVkLgogICAgICAgICBpZiAoW2NvbmZpZ3VyYXRpb24g
cmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihfaHN0c1N0b3JhZ2UpXSkKLSAgICAgICAgICAg
IGNvbmZpZ3VyYXRpb24uX2hzdHNTdG9yYWdlID0gYWRvcHROUyhbYWxsb2NfTlNIU1RTU3RvcmFn
ZUluc3RhbmNlKCkgaW5pdFBlcnNpc3RlbnRTdG9yZVdpdGhVUkw6W05TVVJMIGZpbGVVUkxXaXRo
UGF0aDpwYXJhbWV0ZXJzLmhzdHNTdG9yYWdlRGlyZWN0b3J5IGlzRGlyZWN0b3J5OllFU11dKS5h
dXRvcmVsZWFzZSgpOworICAgICAgICAgICAgY29uZmlndXJhdGlvbi5faHN0c1N0b3JhZ2UgPSBh
ZG9wdE5TKFthbGxvY19OU0hTVFNTdG9yYWdlSW5zdGFuY2UoKSBpbml0UGVyc2lzdGVudFN0b3Jl
V2l0aFVSTDpbTlNVUkwgZmlsZVVSTFdpdGhQYXRoOnBhcmFtZXRlcnMuaHN0c1N0b3JhZ2VEaXJl
Y3RvcnkgaXNEaXJlY3Rvcnk6WUVTXV0pLmdldCgpOwogICAgIH0KICNlbmRpZgogCkBAIC0xMjY3
LDcgKzEyNjcsNyBAQCBOZXR3b3JrU2Vzc2lvbkNvY29hOjpOZXR3b3JrU2Vzc2lvbkNvY29hKE5l
dHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcywgTmV0d29yawogI2lmIEhBVkUoQ0ZORVRXT1JL
X0FMVEVSTkFUSVZFX1NFUlZJQ0UpCiAgICAgaWYgKCFwYXJhbWV0ZXJzLmFsdGVybmF0aXZlU2Vy
dmljZURpcmVjdG9yeS5pc0VtcHR5KCkpIHsKICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y29u
c3VtZVBlcm1hbmVudGx5KHBhcmFtZXRlcnMuYWx0ZXJuYXRpdmVTZXJ2aWNlRGlyZWN0b3J5RXh0
ZW5zaW9uSGFuZGxlKTsKLSAgICAgICAgY29uZmlndXJhdGlvbi5fYWx0ZXJuYXRpdmVTZXJ2aWNl
c1N0b3JhZ2UgPSBhZG9wdE5TKFtbX05TSFRUUEFsdGVybmF0aXZlU2VydmljZXNTdG9yYWdlIGFs
bG9jXSBpbml0UGVyc2lzdGVudFN0b3JlV2l0aFVSTDpbW05TVVJMIGZpbGVVUkxXaXRoUGF0aDpw
YXJhbWV0ZXJzLmFsdGVybmF0aXZlU2VydmljZURpcmVjdG9yeSBpc0RpcmVjdG9yeTpZRVNdIFVS
TEJ5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpAIkFsdGVybmF0aXZlU2VydmljZS5zcWxpdGUiXV0p
LmF1dG9yZWxlYXNlKCk7CisgICAgICAgIGNvbmZpZ3VyYXRpb24uX2FsdGVybmF0aXZlU2Vydmlj
ZXNTdG9yYWdlID0gYWRvcHROUyhbW19OU0hUVFBBbHRlcm5hdGl2ZVNlcnZpY2VzU3RvcmFnZSBh
bGxvY10gaW5pdFBlcnNpc3RlbnRTdG9yZVdpdGhVUkw6W1tOU1VSTCBmaWxlVVJMV2l0aFBhdGg6
cGFyYW1ldGVycy5hbHRlcm5hdGl2ZVNlcnZpY2VEaXJlY3RvcnkgaXNEaXJlY3Rvcnk6WUVTXSBV
UkxCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6QCJBbHRlcm5hdGl2ZVNlcnZpY2Uuc3FsaXRlIl1d
KS5nZXQoKTsKICAgICB9CiAgICAgaWYgKHBhcmFtZXRlcnMuaHR0cDNFbmFibGVkKQogICAgICAg
ICBjb25maWd1cmF0aW9uLl9hbGxvd3NIVFRQMyA9IFlFUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm0vY29jb2EvV0tQYXltZW50QXV0aG9yaXphdGlvbkRlbGVnYXRlLm1tIGIv
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9jb2NvYS9XS1BheW1lbnRBdXRob3JpemF0aW9uRGVsZWdh
dGUubW0KaW5kZXggYjNlMTIzMGY2NDgwNTQ3ODkyYWVkZmU5NjYyMmMxYjk4NTVmMDIxOS4uMzcw
YTU1ODhmNWRlZTI5OWFiZGIwOGVlYWZjODhkNTc1YzJmYWRkMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9jb2NvYS9XS1BheW1lbnRBdXRob3JpemF0aW9uRGVsZWdhdGUubW0K
KysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9jb2NvYS9XS1BheW1lbnRBdXRob3JpemF0aW9u
RGVsZWdhdGUubW0KQEAgLTY4LDkgKzY4LDkgQEAgLSAodm9pZCljb21wbGV0ZU1lcmNoYW50VmFs
aWRhdGlvbjooUEtQYXltZW50TWVyY2hhbnRTZXNzaW9uICopc2Vzc2lvbiBlcnJvcjooTlMKIAog
LSAodm9pZCljb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb246KFBLUGF5bWVudFJlcXVlc3RQ
YXltZW50TWV0aG9kVXBkYXRlICopcGF5bWVudE1ldGhvZFVwZGF0ZQogewotICAgIFBLUGF5bWVu
dFJlcXVlc3RQYXltZW50TWV0aG9kVXBkYXRlICp1cGRhdGUgPSBwYXltZW50TWV0aG9kVXBkYXRl
ID86IGFkb3B0TlMoW1BBTDo6YWxsb2NQS1BheW1lbnRSZXF1ZXN0UGF5bWVudE1ldGhvZFVwZGF0
ZUluc3RhbmNlKCkgaW5pdFdpdGhQYXltZW50U3VtbWFyeUl0ZW1zOl9zdW1tYXJ5SXRlbXMuZ2V0
KCldKS5hdXRvcmVsZWFzZSgpOwotICAgIF9zdW1tYXJ5SXRlbXMgPSBhZG9wdE5TKFt1cGRhdGUu
cGF5bWVudFN1bW1hcnlJdGVtcyBjb3B5XSk7Ci0gICAgc3RkOjpleGNoYW5nZShfZGlkU2VsZWN0
UGF5bWVudE1ldGhvZENvbXBsZXRpb24sIG5pbCkodXBkYXRlKTsKKyAgICBhdXRvIHVwZGF0ZSA9
ICFwYXltZW50TWV0aG9kVXBkYXRlID8gYWRvcHROUyhbUEFMOjphbGxvY1BLUGF5bWVudFJlcXVl
c3RQYXltZW50TWV0aG9kVXBkYXRlSW5zdGFuY2UoKSBpbml0V2l0aFBheW1lbnRTdW1tYXJ5SXRl
bXM6X3N1bW1hcnlJdGVtcy5nZXQoKV0pIDogbmlsOworICAgIF9zdW1tYXJ5SXRlbXMgPSBhZG9w
dE5TKFtbdXBkYXRlIHBheW1lbnRTdW1tYXJ5SXRlbXNdIGNvcHldKTsKKyAgICBzdGQ6OmV4Y2hh
bmdlKF9kaWRTZWxlY3RQYXltZW50TWV0aG9kQ29tcGxldGlvbiwgbmlsKSh1cGRhdGUuZ2V0KCkp
OwogfQogCiAtICh2b2lkKWNvbXBsZXRlUGF5bWVudFNlc3Npb246KFBLUGF5bWVudEF1dGhvcml6
YXRpb25TdGF0dXMpc3RhdHVzIGVycm9yczooTlNBcnJheTxOU0Vycm9yICo+ICopZXJyb3JzCkBA
IC04MCwxNyArODAsMTcgQEAgLSAodm9pZCljb21wbGV0ZVBheW1lbnRTZXNzaW9uOihQS1BheW1l
bnRBdXRob3JpemF0aW9uU3RhdHVzKXN0YXR1cyBlcnJvcnM6KE5TQXIKIH0KIC0gKHZvaWQpY29t
cGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb246KFBLUGF5bWVudFJlcXVlc3RTaGlwcGluZ0Nv
bnRhY3RVcGRhdGUgKilzaGlwcGluZ0NvbnRhY3RVcGRhdGUKIHsKLSAgICBQS1BheW1lbnRSZXF1
ZXN0U2hpcHBpbmdDb250YWN0VXBkYXRlICp1cGRhdGUgPSBzaGlwcGluZ0NvbnRhY3RVcGRhdGUg
PzogYWRvcHROUyhbUEFMOjphbGxvY1BLUGF5bWVudFJlcXVlc3RTaGlwcGluZ0NvbnRhY3RVcGRh
dGVJbnN0YW5jZSgpIGluaXRXaXRoRXJyb3JzOkBbXSBwYXltZW50U3VtbWFyeUl0ZW1zOl9zdW1t
YXJ5SXRlbXMuZ2V0KCkgc2hpcHBpbmdNZXRob2RzOl9zaGlwcGluZ01ldGhvZHMuZ2V0KCldKS5h
dXRvcmVsZWFzZSgpOwotICAgIF9zdW1tYXJ5SXRlbXMgPSBhZG9wdE5TKFt1cGRhdGUucGF5bWVu
dFN1bW1hcnlJdGVtcyBjb3B5XSk7Ci0gICAgX3NoaXBwaW5nTWV0aG9kcyA9IGFkb3B0TlMoW3Vw
ZGF0ZS5zaGlwcGluZ01ldGhvZHMgY29weV0pOwotICAgIHN0ZDo6ZXhjaGFuZ2UoX2RpZFNlbGVj
dFNoaXBwaW5nQ29udGFjdENvbXBsZXRpb24sIG5pbCkodXBkYXRlKTsKKyAgICBhdXRvIHVwZGF0
ZSA9ICFzaGlwcGluZ0NvbnRhY3RVcGRhdGUgPyBhZG9wdE5TKFtQQUw6OmFsbG9jUEtQYXltZW50
UmVxdWVzdFNoaXBwaW5nQ29udGFjdFVwZGF0ZUluc3RhbmNlKCkgaW5pdFdpdGhFcnJvcnM6QFtd
IHBheW1lbnRTdW1tYXJ5SXRlbXM6X3N1bW1hcnlJdGVtcy5nZXQoKSBzaGlwcGluZ01ldGhvZHM6
X3NoaXBwaW5nTWV0aG9kcy5nZXQoKV0pIDogbmlsOworICAgIF9zdW1tYXJ5SXRlbXMgPSBhZG9w
dE5TKFtbdXBkYXRlIHBheW1lbnRTdW1tYXJ5SXRlbXNdIGNvcHldKTsKKyAgICBfc2hpcHBpbmdN
ZXRob2RzID0gYWRvcHROUyhbW3VwZGF0ZSBzaGlwcGluZ01ldGhvZHNdIGNvcHldKTsKKyAgICBz
dGQ6OmV4Y2hhbmdlKF9kaWRTZWxlY3RTaGlwcGluZ0NvbnRhY3RDb21wbGV0aW9uLCBuaWwpKHVw
ZGF0ZS5nZXQoKSk7CiB9CiAKIC0gKHZvaWQpY29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlv
bjooUEtQYXltZW50UmVxdWVzdFNoaXBwaW5nTWV0aG9kVXBkYXRlICopc2hpcHBpbmdNZXRob2RV
cGRhdGUKIHsKLSAgICBQS1BheW1lbnRSZXF1ZXN0U2hpcHBpbmdNZXRob2RVcGRhdGUgKnVwZGF0
ZSA9IHNoaXBwaW5nTWV0aG9kVXBkYXRlID86IGFkb3B0TlMoW1BBTDo6YWxsb2NQS1BheW1lbnRS
ZXF1ZXN0U2hpcHBpbmdNZXRob2RVcGRhdGVJbnN0YW5jZSgpIGluaXRXaXRoUGF5bWVudFN1bW1h
cnlJdGVtczpfc3VtbWFyeUl0ZW1zLmdldCgpXSkuYXV0b3JlbGVhc2UoKTsKLSAgICBfc3VtbWFy
eUl0ZW1zID0gYWRvcHROUyhbdXBkYXRlLnBheW1lbnRTdW1tYXJ5SXRlbXMgY29weV0pOwotICAg
IHN0ZDo6ZXhjaGFuZ2UoX2RpZFNlbGVjdFNoaXBwaW5nTWV0aG9kQ29tcGxldGlvbiwgbmlsKSh1
cGRhdGUpOworICAgIGF1dG8gdXBkYXRlID0gIXNoaXBwaW5nTWV0aG9kVXBkYXRlID8gYWRvcHRO
UyhbUEFMOjphbGxvY1BLUGF5bWVudFJlcXVlc3RTaGlwcGluZ01ldGhvZFVwZGF0ZUluc3RhbmNl
KCkgaW5pdFdpdGhQYXltZW50U3VtbWFyeUl0ZW1zOl9zdW1tYXJ5SXRlbXMuZ2V0KCldKSA6IG5p
bDsKKyAgICBfc3VtbWFyeUl0ZW1zID0gYWRvcHROUyhbW3VwZGF0ZSBwYXltZW50U3VtbWFyeUl0
ZW1zXSBjb3B5XSk7CisgICAgc3RkOjpleGNoYW5nZShfZGlkU2VsZWN0U2hpcHBpbmdNZXRob2RD
b21wbGV0aW9uLCBuaWwpKHVwZGF0ZS5nZXQoKSk7CiB9CiAKICNpZiBkZWZpbmVkKFdLUGF5bWVu
dEF1dGhvcml6YXRpb25EZWxlZ2F0ZUFkZGl0aW9uc19pbXBsZW1lbnRhdGlvbl9wdWJsaWMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvTlNBdHRyaWJ1dGVk
U3RyaW5nLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL05TQXR0cmlidXRl
ZFN0cmluZy5tbQppbmRleCBhMTBkMjI4OGJlNjIwZDIyM2ZiMjllZTRhMDU1OGRlZTk3YjYyYjE2
Li44ZTA2OGE3MDQzMWMyMjZjNDVjNTkxNmY4MDMzYmJiMTk4MzgzZTczIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvTlNBdHRyaWJ1dGVkU3RyaW5nLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9OU0F0dHJpYnV0ZWRTdHJpbmcu
bW0KQEAgLTEzMyw3ICsxMzMsNyBAQCArIChXS1dlYlZpZXdDb25maWd1cmF0aW9uICopY29uZmln
dXJhdGlvbgogewogICAgIGlmICghY29uZmlndXJhdGlvbikgewogICAgICAgICBjb25maWd1cmF0
aW9uID0gW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XTsKLSAgICAgICAgY29u
ZmlndXJhdGlvbi5wcm9jZXNzUG9vbCA9IGFkb3B0TlMoW1tXS1Byb2Nlc3NQb29sIGFsbG9jXSBp
bml0XSkuYXV0b3JlbGVhc2UoKTsKKyAgICAgICAgY29uZmlndXJhdGlvbi5wcm9jZXNzUG9vbCA9
IGFkb3B0TlMoW1tXS1Byb2Nlc3NQb29sIGFsbG9jXSBpbml0XSkuZ2V0KCk7CiAgICAgICAgIGNv
bmZpZ3VyYXRpb24ud2Vic2l0ZURhdGFTdG9yZSA9IFtXS1dlYnNpdGVEYXRhU3RvcmUgbm9uUGVy
c2lzdGVudERhdGFTdG9yZV07CiAgICAgICAgIGNvbmZpZ3VyYXRpb24ubWVkaWFUeXBlc1JlcXVp
cmluZ1VzZXJBY3Rpb25Gb3JQbGF5YmFjayA9IFdLQXVkaW92aXN1YWxNZWRpYVR5cGVBbGw7CiAg
ICAgICAgIGNvbmZpZ3VyYXRpb24uX2FsbG93c0phdmFTY3JpcHRNYXJrdXAgPSBOTzsKQEAgLTI2
OSwxMiArMjY5LDE4IEBAICsgKHZvaWQpX2xvYWRGcm9tSFRNTFdpdGhPcHRpb25zOihOU0RpY3Rp
b25hcnk8TlNBdHRyaWJ1dGVkU3RyaW5nRG9jdW1lbnRSZWFkaW5nCiAgICAgICAgICAgICB3ZWJW
aWV3ID0gbmlsOwogCiAgICAgICAgICAgICAvLyBNYWtlIHRoZSBzdHJpbmcgYmUgYW4gaW5zdGFu
Y2Ugb2YgdGhlIHJlY2VpdmVyIGNsYXNzLgotICAgICAgICAgICAgaWYgKGF0dHJpYnV0ZWRTdHJp
bmcgJiYgc2VsZiAhPSBhdHRyaWJ1dGVkU3RyaW5nLmNsYXNzKQotICAgICAgICAgICAgICAgIGF0
dHJpYnV0ZWRTdHJpbmcgPSBhZG9wdE5TKFtbc2VsZiBhbGxvY10gaW5pdFdpdGhBdHRyaWJ1dGVk
U3RyaW5nOmF0dHJpYnV0ZWRTdHJpbmddKS5hdXRvcmVsZWFzZSgpOworICAgICAgICAgICAgUmV0
YWluUHRyPE5TQXR0cmlidXRlZFN0cmluZz4gbmV3QXR0cmlidXRlZFN0cmluZzsKKyAgICAgICAg
ICAgIGlmIChhdHRyaWJ1dGVkU3RyaW5nICYmIHNlbGYgIT0gYXR0cmlidXRlZFN0cmluZy5jbGFz
cykgeworICAgICAgICAgICAgICAgIG5ld0F0dHJpYnV0ZWRTdHJpbmcgPSBhZG9wdE5TKFtbc2Vs
ZiBhbGxvY10gaW5pdFdpdGhBdHRyaWJ1dGVkU3RyaW5nOmF0dHJpYnV0ZWRTdHJpbmddKTsKKyAg
ICAgICAgICAgICAgICBhdHRyaWJ1dGVkU3RyaW5nID0gbmV3QXR0cmlidXRlZFN0cmluZy5nZXQo
KTsKKyAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgLy8gTWFrZSB0aGUgZG9jdW1lbnQgYXR0
cmlidXRlcyBpbW11dGFibGUuCi0gICAgICAgICAgICBpZiAoW2F0dHJpYnV0ZXMgaXNLaW5kT2ZD
bGFzczpOU011dGFibGVEaWN0aW9uYXJ5LmNsYXNzXSkKLSAgICAgICAgICAgICAgICBhdHRyaWJ1
dGVzID0gYWRvcHROUyhbW05TRGljdGlvbmFyeSBhbGxvY10gaW5pdFdpdGhEaWN0aW9uYXJ5OmF0
dHJpYnV0ZXNdKS5hdXRvcmVsZWFzZSgpOworICAgICAgICAgICAgUmV0YWluUHRyPE5TRGljdGlv
bmFyeTxOU0F0dHJpYnV0ZWRTdHJpbmdEb2N1bWVudEF0dHJpYnV0ZUtleSwgaWQ+PiBuZXdBdHRy
aWJ1dGVzOworICAgICAgICAgICAgaWYgKFthdHRyaWJ1dGVzIGlzS2luZE9mQ2xhc3M6TlNNdXRh
YmxlRGljdGlvbmFyeS5jbGFzc10pIHsKKyAgICAgICAgICAgICAgICBuZXdBdHRyaWJ1dGVzID0g
YWRvcHROUyhbW05TRGljdGlvbmFyeSBhbGxvY10gaW5pdFdpdGhEaWN0aW9uYXJ5OmF0dHJpYnV0
ZXNdKTsKKyAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzID0gbmV3QXR0cmlidXRlcy5nZXQoKTsK
KyAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoYXR0cmlidXRl
ZFN0cmluZywgYXR0cmlidXRlcywgZXJyb3IpOwogICAgICAgICB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxl
ci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4
dENvbnRyb2xsZXIubW0KaW5kZXggZWFkN2E3ZGQ2Y2ZkYmRlMjEzZGMxOTMyNjcyYTMwNzZjZGQx
YzIyOS4uMjAxZDViM2UyZjYzOTg2YzUyMDMwNWU4ZjE3NzdlNzM4ZmQ2ZjFlNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0Q29u
dHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93
c2luZ0NvbnRleHRDb250cm9sbGVyLm1tCkBAIC00OTQsMjEgKzQ5NCwyMSBAQCBzdGF0aWMgdm9p
ZCBzZXRVcFBhZ2VQb2xpY3lDbGllbnQoV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyICpicm93
c2luZ0NvbnRleHQsCiAgICAgICAgIGF1dG8gcG9saWN5RGVsZWdhdGUgPSBicm93c2luZ0NvbnRl
eHQtPl9wb2xpY3lEZWxlZ2F0ZS5nZXQoKTsKIAogICAgICAgICBpZiAoW3BvbGljeURlbGVnYXRl
IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoYnJvd3NpbmdDb250ZXh0Q29udHJvbGxlcjpk
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOmRlY2lzaW9uSGFuZGxlcjopXSkgewotICAg
ICAgICAgICAgTlNEaWN0aW9uYXJ5ICphY3Rpb25EaWN0aW9uYXJ5ID0gQHsKKyAgICAgICAgICAg
IGF1dG8gYWN0aW9uRGljdGlvbmFyeSA9IHJldGFpblB0cihAewogICAgICAgICAgICAgICAgIFdL
QWN0aW9uSXNNYWluRnJhbWVLZXk6IEAoV0tGcmFtZUlzTWFpbkZyYW1lKGZyYW1lKSksCiAgICAg
ICAgICAgICAgICAgV0tBY3Rpb25OYXZpZ2F0aW9uVHlwZUtleTogQChuYXZpZ2F0aW9uVHlwZSks
CiAgICAgICAgICAgICAgICAgV0tBY3Rpb25Nb2RpZmllckZsYWdzS2V5OiBAKG1vZGlmaWVycyks
CiAgICAgICAgICAgICAgICAgV0tBY3Rpb25Nb3VzZUJ1dHRvbktleTogQChtb3VzZUJ1dHRvbiks
CiAgICAgICAgICAgICAgICAgV0tBY3Rpb25PcmlnaW5hbFVSTFJlcXVlc3RLZXk6IGFkb3B0TlMo
V0tVUkxSZXF1ZXN0Q29weU5TVVJMUmVxdWVzdChvcmlnaW5hbFJlcXVlc3QpKS5nZXQoKSwKICAg
ICAgICAgICAgICAgICBXS0FjdGlvblVSTFJlcXVlc3RLZXk6IGFkb3B0TlMoV0tVUkxSZXF1ZXN0
Q29weU5TVVJMUmVxdWVzdChyZXF1ZXN0KSkuZ2V0KCkKLSAgICAgICAgICAgIH07CisgICAgICAg
ICAgICB9KTsKIAogICAgICAgICAgICAgaWYgKG9yaWdpbmF0aW5nRnJhbWUpIHsKLSAgICAgICAg
ICAgICAgICBhY3Rpb25EaWN0aW9uYXJ5ID0gYWRvcHROUyhbYWN0aW9uRGljdGlvbmFyeSBtdXRh
YmxlQ29weV0pLmF1dG9yZWxlYXNlKCk7Ci0gICAgICAgICAgICAgICAgWyhOU011dGFibGVEaWN0
aW9uYXJ5ICopYWN0aW9uRGljdGlvbmFyeSBzZXRPYmplY3Q6W05TVVJMIF93ZWJfVVJMV2l0aFdU
RlN0cmluZzpXZWJLaXQ6OnRvSW1wbChvcmlnaW5hdGluZ0ZyYW1lKS0+dXJsKCkuc3RyaW5nKCld
IGZvcktleTpXS0FjdGlvbk9yaWdpbmF0aW5nRnJhbWVVUkxLZXldOworICAgICAgICAgICAgICAg
IGFjdGlvbkRpY3Rpb25hcnkgPSBhZG9wdE5TKFthY3Rpb25EaWN0aW9uYXJ5IG11dGFibGVDb3B5
XSk7CisgICAgICAgICAgICAgICAgWyhOU011dGFibGVEaWN0aW9uYXJ5ICopYWN0aW9uRGljdGlv
bmFyeS5nZXQoKSBzZXRPYmplY3Q6W05TVVJMIF93ZWJfVVJMV2l0aFdURlN0cmluZzpXZWJLaXQ6
OnRvSW1wbChvcmlnaW5hdGluZ0ZyYW1lKS0+dXJsKCkuc3RyaW5nKCldIGZvcktleTpXS0FjdGlv
bk9yaWdpbmF0aW5nRnJhbWVVUkxLZXldOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgCi0g
ICAgICAgICAgICBbcG9saWN5RGVsZWdhdGUgYnJvd3NpbmdDb250ZXh0Q29udHJvbGxlcjpicm93
c2luZ0NvbnRleHQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjphY3Rpb25EaWN0aW9u
YXJ5IGRlY2lzaW9uSGFuZGxlcjptYWtlUG9saWN5RGVjaXNpb25CbG9jayhsaXN0ZW5lcildOwor
ICAgICAgICAgICAgW3BvbGljeURlbGVnYXRlIGJyb3dzaW5nQ29udGV4dENvbnRyb2xsZXI6YnJv
d3NpbmdDb250ZXh0IGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246YWN0aW9uRGljdGlv
bmFyeS5nZXQoKSBkZWNpc2lvbkhhbmRsZXI6bWFrZVBvbGljeURlY2lzaW9uQmxvY2sobGlzdGVu
ZXIpXTsKICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBXS0ZyYW1lUG9saWN5TGlzdGVuZXJV
c2UobGlzdGVuZXIpOwogICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlldy5tbQppbmRleCA1MjAwNjM0NzY3NmEyZTAxN2I5MjY2OWZiNGZmNDg0NzUw
MmU3NGI3Li4yNjE0MWNmMzIxYWU5M2JkZDk0NjMyYzAzOWU5MWI5ODI1NmI0MTk4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTIyNTUs
NyArMjI1NSw3IEBAIC0gKHZvaWQpX3Rha2VQREZTbmFwc2hvdFdpdGhDb25maWd1cmF0aW9uOihX
S1NuYXBzaG90Q29uZmlndXJhdGlvbiAqKXNuYXBzaG90Q29uCiAgICAgICAgIFtwZGZDb25maWd1
cmF0aW9uIHNldFJlY3Q6c25hcHNob3RDb25maWd1cmF0aW9uLnJlY3RdOwogICAgIH0KIAotICAg
IFtzZWxmIGNyZWF0ZVBERldpdGhDb25maWd1cmF0aW9uOnBkZkNvbmZpZ3VyYXRpb24uYXV0b3Jl
bGVhc2UoKSBjb21wbGV0aW9uSGFuZGxlcjpjb21wbGV0aW9uSGFuZGxlcl07CisgICAgW3NlbGYg
Y3JlYXRlUERGV2l0aENvbmZpZ3VyYXRpb246cGRmQ29uZmlndXJhdGlvbi5nZXQoKSBjb21wbGV0
aW9uSGFuZGxlcjpjb21wbGV0aW9uSGFuZGxlcl07CiB9CiAKIC0gKHZvaWQpX2dldFBERkZpcnN0
UGFnZVNpemVJbkZyYW1lOihfV0tGcmFtZUhhbmRsZSAqKWZyYW1lIGNvbXBsZXRpb25IYW5kbGVy
Oih2b2lkKF4pKENHU2l6ZSkpY29tcGxldGlvbkhhbmRsZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3VGVzdGluZ0lPUy5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3VGVzdGluZ0lPUy5tbQppbmRleCBhYmVm
OWNlMjdlNTc5M2I4ZDc2ZTY5YTdjYTc3NGNkZWU1MmRlOTJlLi5lZTk5MGU4ZTcwZWNlYjZmMDBi
ZjcyM2VlZWM3NDcxMmU0MGJlZmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvaW9zL1dLV2ViVmlld1Rlc3RpbmdJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdUZXN0aW5nSU9TLm1tCkBAIC01OCw3ICs1OCw3IEBAIC0g
KHZvaWQpX3JlcXVlc3RUZXh0SW5wdXRDb250ZXh0c0luUmVjdDooQ0dSZWN0KXJlY3QgY29tcGxl
dGlvbkhhbmRsZXI6KHZvaWQgKF4pCiAgICAgICAgICAgICBhZGp1c3RlZENvbnRleHQuYm91bmRp
bmdSZWN0ID0gW3N0cm9uZ1NlbGYgY29udmVydFJlY3Q6YWRqdXN0ZWRDb250ZXh0LmJvdW5kaW5n
UmVjdCBmcm9tVmlldzpzdHJvbmdTZWxmLT5fY29udGVudFZpZXcuZ2V0KCldOwogICAgICAgICAg
ICAgW2FkanVzdGVkQ29udGV4dHMgYWRkT2JqZWN0OmFkb3B0TlMoW1tfV0tUZXh0SW5wdXRDb250
ZXh0IGFsbG9jXSBfaW5pdFdpdGhUZXh0SW5wdXRDb250ZXh0OmFkanVzdGVkQ29udGV4dF0pLmdl
dCgpXTsKICAgICAgICAgfQotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihhZGp1c3RlZENvbnRl
eHRzLmF1dG9yZWxlYXNlKCkpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihhZGp1c3RlZENv
bnRleHRzLmdldCgpKTsKICAgICB9XTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFjL05ldHNjYXBlUGx1Z2luTWFjLm1tIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFjL05ldHNjYXBlUGx1Z2lu
TWFjLm1tCmluZGV4IDQzYjM0OThlYzc2OTYzOGI3OTExMzdhMDdhMzFlZGVjOWY1ZDlmNjcuLmEw
ZDlhMTVhMzYyMjcxZmY1OTU2NDQ1YzY4MDA5YjIwZTkxNGY0ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRzY2FwZVBsdWdpbk1h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMv
TmV0c2NhcGVQbHVnaW5NYWMubW0KQEAgLTQ4MSw4ICs0ODEsNyBAQCBzdGF0aWMgYm9vbCBpc0Zs
YWdzQ2hhbmdlZEV2ZW50KGNvbnN0IFdlYktleWJvYXJkRXZlbnQmIGtleWJvYXJkRXZlbnQpCiAK
IHN0YXRpYyBOUE5TU3RyaW5nICpjb252ZXJ0VG9OUE5OU3RyaW5nKGNvbnN0IFN0cmluZyYgc3Ry
aW5nKQogewotICAgIENGVHlwZVJlZiByZWxlYXNlZFN0cmluZyA9IHN0cmluZy5jcmVhdGVDRlN0
cmluZygpLmF1dG9yZWxlYXNlKCk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PE5QTlNTdHJpbmcq
Pihjb25zdF9jYXN0PHZvaWQqPihyZWxlYXNlZFN0cmluZykpOworICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxOUE5TU3RyaW5nKj4oc3RhdGljX2Nhc3Q8TlNTdHJpbmcqPihzdHJpbmcpKTsKIH0KIAog
c3RhdGljIE5QQ29jb2FFdmVudCBpbml0aWFsaXplS2V5Ym9hcmRFdmVudChjb25zdCBXZWJLZXli
b2FyZEV2ZW50JiBrZXlib2FyZEV2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvbWFjL1dLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RNYWMubW0gYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV0tBY2Nlc3NpYmlsaXR5V2ViUGFn
ZU9iamVjdE1hYy5tbQppbmRleCA2ZGFiY2ZjMjc1NGU1YWQzYTQxOTE4MWMyYTYxNmNkODBhYjBk
Nzk0Li4wYjk0YTQ2MTQ1ODUxZDMzOGQ3NjE5ZWNjZDdkMDBmOTFjNjg2OTc4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV0tBY2Nlc3NpYmlsaXR5V2Vi
UGFnZU9iamVjdE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9t
YWMvV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdE1hYy5tbQpAQCAtOTUsNyArOTUsNyBAQCBB
TExPV19ERVBSRUNBVEVEX0lNUExFTUVOVEFUSU9OU19FTkQKICAgICAgICAgcmV0dXJuIGNhY2hl
ZE5hbWVzOwogI2VuZGlmCiAKLSAgICBpZCBuYW1lcyA9IGF4OjpyZXRyaWV2ZVZhbHVlRnJvbU1h
aW5UaHJlYWQ8UmV0YWluUHRyPGlkPj4oW1BST1RFQ1RFRF9TRUxGXSAoKSAtPiBSZXRhaW5QdHI8
aWQ+IHsKKyAgICBhdXRvIG5hbWVzID0gYXg6OnJldHJpZXZlVmFsdWVGcm9tTWFpblRocmVhZDxS
ZXRhaW5QdHI8aWQ+PihbUFJPVEVDVEVEX1NFTEZdICgpIC0+IFJldGFpblB0cjxpZD4gewogICAg
ICAgICBhdXRvIHBhZ2UgPSBwcm90ZWN0ZWRTZWxmLT5tX3BhZ2U7CiAgICAgICAgIGlmICghcGFn
ZSkKICAgICAgICAgICAgIHJldHVybiBAW107CkBAIC0xMDUsMTMgKzEwNSwxMyBAQCBBTExPV19E
RVBSRUNBVEVEX0lNUExFTUVOVEFUSU9OU19FTkQKICAgICAgICAgICAgIHJldHVybiBAW107CiAK
ICAgICAgICAgcmV0dXJuIGNyZWF0ZU5TQXJyYXkoY29yZVBhZ2UtPnBhZ2VPdmVybGF5Q29udHJv
bGxlcigpLmNvcHlBY2Nlc3NpYmlsaXR5QXR0cmlidXRlc05hbWVzKHRydWUpKTsKLSAgICB9KS5h
dXRvcmVsZWFzZSgpOworICAgIH0pOwogCiAjaWYgRU5BQkxFKEFDQ0VTU0lCSUxJVFlfSVNPTEFU
RURfVFJFRSkKLSAgICBzZWxmLmNhY2hlZFBhcmFtZXRlcml6ZWRBdHRyaWJ1dGVOYW1lcyA9IG5h
bWVzOworICAgIHNlbGYuY2FjaGVkUGFyYW1ldGVyaXplZEF0dHJpYnV0ZU5hbWVzID0gbmFtZXMu
Z2V0KCk7CiAjZW5kaWYKIAotICAgIHJldHVybiBuYW1lczsKKyAgICByZXR1cm4gbmFtZXMuYXV0
b3JlbGVhc2UoKTsKIH0KIAogQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfQkVHSU4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViTlNPYmplY3RFeHRy
YXMubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYk5TT2JqZWN0RXh0cmFzLm1t
CmluZGV4IDJmNWE5NDYwZDAxYzcxMGIyYzBiM2I3YzRjN2U3Y2RmZmYyY2I4NzEuLmE2MTUzMjkx
MGJjZWYwYTM0YTUxMjRiYTI4OGY3Y2ExNDQ2ZDhmYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL01pc2MvV2ViTlNPYmplY3RFeHRyYXMubW0KKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvTWlzYy9XZWJOU09iamVjdEV4dHJhcy5tbQpAQCAtNjIsOCArNjIsOCBAQCAt
ICh2b2lkKWZvcndhcmRJbnZvY2F0aW9uOihOU0ludm9jYXRpb24gKilpbnZvY2F0aW9uCiAgICAg
W2ludm9jYXRpb24gc2V0VGFyZ2V0OnRhcmdldF07CiAgICAgW2ludm9jYXRpb24gcGVyZm9ybVNl
bGVjdG9yT25NYWluVGhyZWFkOkBzZWxlY3Rvcihfd2Via2l0X2ludm9rZUFuZEhhbmRsZUV4Y2Vw
dGlvbjopIHdpdGhPYmplY3Q6c2VsZiB3YWl0VW50aWxEb25lOllFU107CiAgICAgaWYgKGV4Y2Vw
dGlvbikgewotICAgICAgICBpZCBleGNlcHRpb25Ub1Rocm93ID0gc3RkOjpleGNoYW5nZShleGNl
cHRpb24sIG5pbCkuYXV0b3JlbGVhc2UoKTsKLSAgICAgICAgQHRocm93IGV4Y2VwdGlvblRvVGhy
b3c7CisgICAgICAgIGF1dG8gZXhjZXB0aW9uVG9UaHJvdyA9IHN0ZDo6ZXhjaGFuZ2UoZXhjZXB0
aW9uLCBuaWwpOworICAgICAgICBAdGhyb3cgZXhjZXB0aW9uVG9UaHJvdy5nZXQoKTsKICAgICB9
IGVsc2UgaWYgKHJldHVyblR5cGVJc09iamVjdChpbnZvY2F0aW9uKSkgewogICAgICAgICAvLyBf
d2Via2l0X2ludm9rZUFuZEhhbmRsZUV4Y2VwdGlvbiByZXRhaW5lZCB0aGUgcmV0dXJuIHZhbHVl
IG9uIHRoZSBtYWluIHRocmVhZC4KICAgICAgICAgLy8gTm93IGF1dG9yZWxlYXNlIGl0IG9uIHRo
ZSBjYWxsaW5nIHRocmVhZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1Bs
dWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5WaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
UGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZpZXcubW0KaW5kZXggZjBkOTk4YzA5NjA0OGQ5YWZk
MTM2ZWQyMjFhZDUxZTYxN2UyYjFiMy4uMTJhYWEzZDA4Zjc3YzhjZjhkNDFkNDQzZTEyYWI2ZDJl
MjcxMjNiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJO
ZXRzY2FwZVBsdWdpblZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lu
cy9XZWJOZXRzY2FwZVBsdWdpblZpZXcubW0KQEAgLTM1NSw3ICszNTUsNyBAQCAtIChCT09MKXNl
bmRFdmVudDoodm9pZCopZXZlbnQgaXNEcmF3UmVjdDooQk9PTClldmVudElzRHJhd1JlY3QKICAg
ICB9CiAKICAgICAvLyBUZW1wb3JhcmlseSByZXRhaW4gc2VsZiBpbiBjYXNlIHRoZSBwbHVnLWlu
IHZpZXcgaXMgcmVsZWFzZWQgd2hpbGUgc2VuZGluZyBhbiBldmVudC4gCi0gICAgcmV0YWluUHRy
KHNlbGYpLmF1dG9yZWxlYXNlKCk7CisgICAgYXV0byBzdHJvbmdTZWxmID0gcmV0YWluUHRyKHNl
bGYpOwogCiAgICAgQk9PTCBhY2NlcHRlZEV2ZW50OwogICAgIFtzZWxmIHdpbGxDYWxsUGx1Z0lu
RnVuY3Rpb25dOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyLm1tCmluZGV4IDJiMThmNjljYzAx
M2Q3ODg2MTdiOTJlMDYxZWQ4NzFjY2JiODJkYTAuLmE5YTY0ZjA0NjA4NDE3OTYzMWViMWE0YTBh
MDgxMjNlZDViMzE1NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZp
ZXcvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIubW0KQEAgLTE1MSw3
ICsxNTEsNyBAQCAtIChpZClpbml0CiAgICAgX3BsYXliYWNrSW50ZXJmYWNlID0gV2ViQ29yZTo6
UGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQ6OmNyZWF0ZSgqX3BsYXliYWNrTW9kZWwpOwog
ICAgIF9jb250ZW50T3ZlcmxheSA9IGFkb3B0TlMoW1tOU1ZpZXcgYWxsb2NdIGluaXRXaXRoRnJh
bWU6TlNaZXJvUmVjdF0pOwogICAgIF9jb250ZW50T3ZlcmxheS5nZXQoKS5sYXllckNvbnRlbnRz
UmVkcmF3UG9saWN5ID0gTlNWaWV3TGF5ZXJDb250ZW50c1JlZHJhd05ldmVyOwotICAgIF9jb250
ZW50T3ZlcmxheS5nZXQoKS5sYXllciA9IGFkb3B0TlMoW1tXZWJWaWRlb0Z1bGxzY3JlZW5PdmVy
bGF5TGF5ZXIgYWxsb2NdIGluaXRdKS5hdXRvcmVsZWFzZSgpOworICAgIF9jb250ZW50T3Zlcmxh
eS5nZXQoKS5sYXllciA9IGFkb3B0TlMoW1tXZWJWaWRlb0Z1bGxzY3JlZW5PdmVybGF5TGF5ZXIg
YWxsb2NdIGluaXRdKS5nZXQoKTsKICAgICBbX2NvbnRlbnRPdmVybGF5IHNldFdhbnRzTGF5ZXI6
WUVTXTsKICAgICBbX2NvbnRlbnRPdmVybGF5IHNldEF1dG9yZXNpemluZ01hc2s6KE5TVmlld1dp
ZHRoU2l6YWJsZSB8IE5TVmlld0hlaWdodFNpemFibGUpXTsKICAgICBbc2VsZiB3aW5kb3dEaWRM
b2FkXTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRl
eCA5Nzc2NjkzMTcyOWQyMGFkY2M1NWY1ZGNmOWUwZDk5Nzc4NGYwZGNhLi40ZDk3OTU1NDdlNWQ2
OTYyZGVjZDBhODc0MjYzOTU5ZDIzOGE2OGQ1IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cK
KysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzUgQEAKKzIwMjEtMDItMTkgIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXcgcmVtYWluaW5nIHVz
YWdlIG9mIGF1dG9yZWxlYXNlIHRvIG1ha2Ugc3VyZSBpdCBpcyBuZWNlc3NhcnkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjE3NworCisgICAgICAg
IFJldmlld2VkIGJ5IEdlb2ZmcmV5IEdhcmVuLgorCisgICAgICAgICogVGVzdFJ1bm5lclNoYXJl
ZC9tYWMvTlNQYXN0ZWJvYXJkQWRkaXRpb25zLm1tOgorICAgICAgICAoK1tOU1Bhc3RlYm9hcmQg
X21vZGVyblBhc3RlYm9hcmRUeXBlOl0pOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
SmF2YVNjcmlwdENvcmUvSlNSdW5Mb29wVGltZXIubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
Ojp0cmlnZ2VyR0MpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2Nv
YS9XZWJDb3JlTlNVUkxTZXNzaW9uLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6V2ViQ29y
ZU5TVVJMU2Vzc2lvblRlc3Q6OlNldFVwKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdC9HZXRVc2VyTWVkaWFOYXZpZ2F0aW9uLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQ
STo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvbWFjL0NvbnRl
eHRNZW51SW1nV2l0aFZpZGVvLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW06Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0NvbnRlbnRSdWxlTGlzdE5vdGlmaWNhdGlvbi5tbToKKyAgICAgICAg
KC1bQ29udGVudFJ1bGVMaXN0Tm90aWZpY2F0aW9uRGVsZWdhdGUgd2ViVmlldzpzdGFydFVSTFNj
aGVtZVRhc2s6XSk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9E
ZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zLm1tOgorICAgICAgICAoVEVTVCk6CisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Eb3dubG9hZC5tbToKKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OndlYlZpZXdXaXRoRG93bmxvYWRNb25pdG9yU3BlZWRNdWx0aXBsaWVy
KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0RyYWdBbmREcm9w
VGVzdHMubW06CisgICAgICAgIChydW5EcmFnU3RhcnREYXRhVGVzdENhc2UpOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5BcHBCcm93c2VyUHJpdmFjeS5tbToK
KyAgICAgICAgKC1bSW5BcHBCcm93c2VyU2NoZW1lSGFuZGxlciB3ZWJWaWV3OnN0YXJ0VVJMU2No
ZW1lVGFzazpdKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0lu
ZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eS5tbToKKyAgICAgICAg
KFRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5kZXhl
ZERCVGVtcEZpbGVTaXplLm1tOgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9KSVRFbmFibGVkLm1tOgorICAgICAgICAoVEVTVCk6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Mb2NhbFN0b3JhZ2VEYXRh
YmFzZVRyYWNrZXIubW06CisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL05ldHdvcmtQcm9jZXNzLm1tOgorICAgICAgICAoVEVTVCk6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2
aWdhdGlvbi5tbToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1By
b3h5Lm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXBhcmVudFdlYlZpZXdUaW1lb3V0Lm1tOgorICAg
ICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9S
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzLm1tOgorICAgICAgICAoVEVTVCk6CisgICAgICAgICgtW1Jl
c291cmNlTG9hZFN0YXRpc3RpY3NTY2hlbWVIYW5kbGVyIHdlYlZpZXc6c3RhcnRVUkxTY2hlbWVU
YXNrOl0pOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2FmZUJy
b3dzaW5nLm1tOgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW06CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9UTFNEZXByZWNhdGlvbi5tbToKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvVGV4dE1hbmlwdWxhdGlvbi5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVUlEZWxlZ2F0ZS5tbToK
KyAgICAgICAgKFRFU1QpOgorICAgICAgICAoLVtVSVRlc3REZWxlZ2F0ZSB3ZWJWaWV3OnN0YXJ0
VVJMU2NoZW1lVGFzazpdKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1VzZXJDb250ZW50Q29udHJvbGxlci5tbToKKyAgICAgICAgKHdlYlZpZXdGb3JTY3JpcHRN
ZXNzYWdlSGFuZGxlck11bHRpcGxlSGFuZGxlclJlbW92YWxUZXN0KToKKyAgICAgICAgKFRFU1Qp
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tBdHRhY2htZW50
VGVzdHMubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLUERGVmlldy5tbToKKyAgICAgICAgKFRFU1Qp
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tVUkxTY2hlbWVI
YW5kbGVyLTEubW06CisgICAgICAgICgtW1N5bmNFcnJvclNjaGVtZSB3ZWJWaWV3OnN0YXJ0VVJM
U2NoZW1lVGFzazpdKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L1dLV2ViVmlld0V2YWx1YXRlSmF2YVNjcmlwdC5tbToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL2lvcy9EcmFnQW5kRHJvcFRlc3RzSU9TLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQ
STo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRm9udE1hbmFnZXJU
ZXN0cy5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAyMDIxLTAyLTE5ICBX
ZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIFNw
ZWNpZnkgYSBfVUlEYXRhT3duZXIgd2hlbiByZWFkaW5nIG9yIHdyaXRpbmcgZnJvbSB0aGUgc3lz
dGVtIHBhc3RlYm9hcmQKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvSmF2
YVNjcmlwdENvcmUvSlNSdW5Mb29wVGltZXIubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L0phdmFTY3JpcHRDb3JlL0pTUnVuTG9vcFRpbWVyLm1tCmluZGV4IGQ0OTA5Zjg0Njg4YTQxMzMw
NzVjZTRiZjg1Y2M2Njg4YjIzNDcyYTcuLjJiMDhjNGEyZjBiMzQ4YjhlY2U0ZGJiYzM5MTdiNWFj
NWFhNGJmMDYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvSmF2YVNjcmlw
dENvcmUvSlNSdW5Mb29wVGltZXIubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9K
YXZhU2NyaXB0Q29yZS9KU1J1bkxvb3BUaW1lci5tbQpAQCAtNjUsNyArNjUsNyBAQCBzdGF0aWMg
dm9pZCB0cmlnZ2VyR0MoSlNDb250ZXh0ICpjb250ZXh0KQogewogICAgIEBhdXRvcmVsZWFzZXBv
b2wgewogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IDEwMDA7ICsraSkKLSAgICAgICAg
ICAgIFtKU1ZhbHVlIHZhbHVlV2l0aE9iamVjdDphZG9wdE5TKFtUZXN0T2JqZWN0IG5ld10pLmF1
dG9yZWxlYXNlKCkgaW5Db250ZXh0OmNvbnRleHRdOworICAgICAgICAgICAgW0pTVmFsdWUgdmFs
dWVXaXRoT2JqZWN0OmFkb3B0TlMoW1Rlc3RPYmplY3QgbmV3XSkuZ2V0KCkgaW5Db250ZXh0OmNv
bnRleHRdOwogICAgICAgICBKU0dhcmJhZ2VDb2xsZWN0KFtjb250ZXh0IEpTR2xvYmFsQ29udGV4
dFJlZl0pOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9jb2NvYS9XZWJDb3JlTlNVUkxTZXNzaW9uLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL2NvY29hL1dlYkNvcmVOU1VSTFNlc3Npb24ubW0KaW5kZXggZDk2MjMw
NzRiMjE1ODBlNzEyYWY0NGM2ZjM0MGQ5ZmU2MTYxZTlmYi4uMzlhNDRlMDNjMTM2ODU1ZjRjMDgx
ZDI4YmNmNTNmZmVlYTJmNjVhOCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL2NvY29hL1dlYkNvcmVOU1VSTFNlc3Npb24ubW0KKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL1dlYkNvcmVOU1VSTFNlc3Npb24ubW0KQEAgLTEx
OCw3ICsxMTgsNyBAQCBwdWJsaWM6CiAgICAgICAgIEpTQzo6aW5pdGlhbGl6ZSgpOwogI2VuZGlm
CiAgICAgICAgIHZpZXcgPSBhZG9wdE5TKFtbV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpO
U1plcm9SZWN0XSk7Ci0gICAgICAgIFt2aWV3IHNldEZyYW1lTG9hZERlbGVnYXRlOmFkb3B0TlMo
W1tUZXN0TlNVUkxTZXNzaW9uTG9hZGVyRGVsZWdhdGUgYWxsb2NdIGluaXRdKS5hdXRvcmVsZWFz
ZSgpXTsKKyAgICAgICAgW3ZpZXcgc2V0RnJhbWVMb2FkRGVsZWdhdGU6YWRvcHROUyhbW1Rlc3RO
U1VSTFNlc3Npb25Mb2FkZXJEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pLmdldCgpXTsKIAogICAgICAg
ICBkaWRMb2FkTWFpblJlc291cmNlID0gZmFsc2U7CiAgICAgICAgIFt2aWV3IHNldE1haW5GcmFt
ZVVSTDpkb2N1bWVudFVSTC5hYnNvbHV0ZVN0cmluZ107CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWFOYXZpZ2F0aW9uLm1tIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhTmF2aWdhdGlvbi5tbQppbmRl
eCBkZjFlMDVkMmUyZTM5ZmEyYWU1MTM5ODNhOGIwZThiNWY4OTNjNmYxLi45YmZmZGFjNjU3OTk2
ZTA5YjE1NzZjMTcyZGFlNzA4N2NkYTgwYjUzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWFOYXZpZ2F0aW9uLm1tCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYU5hdmlnYXRpb24ubW0KQEAgLTEx
NSw3ICsxMTUsNyBAQCBURVNUKFdlYktpdCwgRGVmYXVsdERldmljZUlkSGFzaFNhbHRzRGlyZWN0
b3J5KQogICAgIH0KIAogICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZp
ZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7Ci0gICAgW2NvbmZpZ3VyYXRpb24gc2V0V2Vi
c2l0ZURhdGFTdG9yZTphZG9wdE5TKFtbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbG9jXSBfaW5pdFdp
dGhDb25maWd1cmF0aW9uOndlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmdldCgpXSkuYXV0
b3JlbGVhc2UoKV07CisgICAgW2NvbmZpZ3VyYXRpb24gc2V0V2Vic2l0ZURhdGFTdG9yZTphZG9w
dE5TKFtbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOndl
YnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmdldCgpXSkuZ2V0KCldOwogICAgIGF1dG8gcHJv
Y2Vzc1Bvb2xDb25maWcgPSBhZG9wdE5TKFtbX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIGFs
bG9jXSBpbml0XSk7CiAgICAgYXV0byBwcmVmZXJlbmNlcyA9IFtjb25maWd1cmF0aW9uIHByZWZl
cmVuY2VzXTsKICAgICBwcmVmZXJlbmNlcy5fbWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25u
ZWN0aW9uID0gTk87CkBAIC0xNDUsNyArMTQ1LDcgQEAgVEVTVChXZWJLaXQsIERldmljZUlkSGFz
aFNhbHRzRGlyZWN0b3J5KQogICAgIFt3ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiBzZXRE
ZXZpY2VJZEhhc2hTYWx0c1N0b3JhZ2VEaXJlY3Rvcnk6dGVtcERpcl07CiAgICAgCiAgICAgYXV0
byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2Nd
IGluaXRdKTsKLSAgICBbY29uZmlndXJhdGlvbiBzZXRXZWJzaXRlRGF0YVN0b3JlOmFkb3B0TlMo
W1tXS1dlYnNpdGVEYXRhU3RvcmUgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246d2Vic2l0
ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uZ2V0KCldKS5hdXRvcmVsZWFzZSgpXTsKKyAgICBbY29u
ZmlndXJhdGlvbiBzZXRXZWJzaXRlRGF0YVN0b3JlOmFkb3B0TlMoW1tXS1dlYnNpdGVEYXRhU3Rv
cmUgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246d2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3Vy
YXRpb24uZ2V0KCldKS5nZXQoKV07CiAgICAgYXV0byBwcm9jZXNzUG9vbENvbmZpZyA9IGFkb3B0
TlMoW1tfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBhdXRv
IHByZWZlcmVuY2VzID0gW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdOwogICAgIHByZWZlcmVu
Y2VzLl9tZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24gPSBOTzsKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21hYy9Db250ZXh0TWVudUltZ1dp
dGhWaWRlby5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21hYy9Db250ZXh0
TWVudUltZ1dpdGhWaWRlby5tbQppbmRleCAyZjRkN2RmY2I4MDAyY2MyZmZiMDQ3NDhkMGU4NjA0
NThmMjIxMzlkLi44ODQ1ZjViM2VkMjlmY2IyYWEyODA3N2Y4NjgxNDExMjYxOTFjN2Q0IDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9tYWMvQ29udGV4dE1lbnVJ
bWdXaXRoVmlkZW8ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvbWFj
L0NvbnRleHRNZW51SW1nV2l0aFZpZGVvLm1tCkBAIC01NSw3ICs1NSw4IEBAIG5hbWVzcGFjZSBU
ZXN0V2ViS2l0QVBJIHsKIFRFU1QoV2ViS2l0LCBDb250ZXh0TWVudUltZ1dpdGhWaWRlbykKIHsK
ICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdp
dGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDgwMCwgNjAwKV0pOwotICAgIHdlYlZpZXcuZ2V0KCku
VUlEZWxlZ2F0ZSA9IGFkb3B0TlMoW1tDb250ZXh0TWVudUltZ1dpdGhWaWRlb0RlbGVnYXRlIGFs
bG9jXSBpbml0XSkuYXV0b3JlbGVhc2UoKTsKKyAgICBhdXRvIHVpRGVsZWdhdGUgPSBhZG9wdE5T
KFtbQ29udGV4dE1lbnVJbWdXaXRoVmlkZW9EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIHdl
YlZpZXcuZ2V0KCkuVUlEZWxlZ2F0ZSA9IHVpRGVsZWdhdGUuZ2V0KCk7CiAgICAgW3dlYlZpZXcg
c3luY2hyb25vdXNseUxvYWRUZXN0UGFnZU5hbWVkOkAiQ29udGV4dE1lbnVJbWdXaXRoVmlkZW8i
XTsKIAogICAgIE5TV2luZG93KiB3aW5kb3cgPSBbd2ViVmlldyB3aW5kb3ddOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0gYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NoYWxsZW5nZS5tbQppbmRleCA1
NjIzYTNjNTJkZjE2YzJmNWFiNDg3YzA0ZmI0YjgxODJmY2ViMTBhLi5lMDkxOThjNDg2MzdjMjJh
OWFjMmY1N2E3ZDlkMGI2MzNiODc3MjBkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL0NoYWxsZW5nZS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL0NoYWxsZW5nZS5tbQpAQCAtNTU2LDcgKzU1Niw3IEBAIFRFU1Qo
V2ViS2l0LCBGYXN0U2VydmVyVHJ1c3QpCiAgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHRO
UyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBhdXRvIGRhdGFT
dG9yZUNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3Vy
YXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBbZGF0YVN0b3JlQ29uZmlndXJhdGlvbiBzZXRGYXN0
U2VydmVyVHJ1c3RFdmFsdWF0aW9uRW5hYmxlZDpZRVNdOwotICAgIFtjb25maWd1cmF0aW9uIHNl
dFdlYnNpdGVEYXRhU3RvcmU6YWRvcHROUyhbW1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxvY10gX2lu
aXRXaXRoQ29uZmlndXJhdGlvbjpkYXRhU3RvcmVDb25maWd1cmF0aW9uLmdldCgpXSkuYXV0b3Jl
bGVhc2UoKV07CisgICAgW2NvbmZpZ3VyYXRpb24gc2V0V2Vic2l0ZURhdGFTdG9yZTphZG9wdE5T
KFtbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOmRhdGFT
dG9yZUNvbmZpZ3VyYXRpb24uZ2V0KCldKS5nZXQoKV07CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRv
cHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RaZXJvIGNvbmZpZ3Vy
YXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5T
KFtTZXJ2ZXJUcnVzdERlbGVnYXRlIG5ld10pOwogICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRpb25E
ZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL0NvbnRlbnRSdWxlTGlzdE5vdGlmaWNhdGlvbi5tbSBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ29udGVudFJ1bGVMaXN0Tm90aWZpY2F0
aW9uLm1tCmluZGV4IGRkODViYTBjZGIxMWNkYmZjNzhjNTIwM2E4ZDliYWMyNjdmMThiZTEuLjlj
NWI1NTZlOGVhOTVjMTBiNTU4NDQ4OGZlNWZlZDRkOWMxMzgyNjAgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ29udGVudFJ1bGVMaXN0Tm90aWZpY2F0
aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ29udGVu
dFJ1bGVMaXN0Tm90aWZpY2F0aW9uLm1tCkBAIC04Niw3ICs4Niw3IEBAIC0gKHZvaWQpX3dlYlZp
ZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgY29udGVudFJ1bGVMaXN0V2l0aElkZW50aWZpZXI6KE5T
U3RyaW5nICopCiAKIC0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBzdGFydFVS
TFNjaGVtZVRhc2s6KGlkIDxXS1VSTFNjaGVtZVRhc2s+KXVybFNjaGVtZVRhc2sKIHsKLSAgICBb
dXJsU2NoZW1lVGFzayBkaWRSZWNlaXZlUmVzcG9uc2U6YWRvcHROUyhbW05TVVJMUmVzcG9uc2Ug
YWxsb2NdIGluaXRXaXRoVVJMOnVybFNjaGVtZVRhc2sucmVxdWVzdC5VUkwgTUlNRVR5cGU6QCJ0
ZXh0L2h0bWwiIGV4cGVjdGVkQ29udGVudExlbmd0aDowIHRleHRFbmNvZGluZ05hbWU6bmlsXSku
YXV0b3JlbGVhc2UoKV07CisgICAgW3VybFNjaGVtZVRhc2sgZGlkUmVjZWl2ZVJlc3BvbnNlOmFk
b3B0TlMoW1tOU1VSTFJlc3BvbnNlIGFsbG9jXSBpbml0V2l0aFVSTDp1cmxTY2hlbWVUYXNrLnJl
cXVlc3QuVVJMIE1JTUVUeXBlOkAidGV4dC9odG1sIiBleHBlY3RlZENvbnRlbnRMZW5ndGg6MCB0
ZXh0RW5jb2RpbmdOYW1lOm5pbF0pLmdldCgpXTsKICAgICBbdXJsU2NoZW1lVGFzayBkaWRGaW5p
c2hdOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL0RldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL0RldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnMubW0KaW5kZXgg
ZDdiMzY5NTdmMjkxNDU1NGFhNTdiMWRkNGYzZjdiZmY5YjkxODczOS4uNzljZGMzMTEwNjQzZjUx
YjkwMjQ4MTJiZjM1MzIzNDkxMTRiOWU4ZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9EZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zLm1tCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRGV2aWNlTWFuYWdlbWVudFJl
c3RyaWN0aW9ucy5tbQpAQCAtNDIsNyArNDIsNyBAQCBURVNUKFdlYktpdCwgRGV2aWNlTWFuYWdl
bWVudFJlc3RyaWN0aW9ucykKICAgICBbZGF0YVN0b3JlQ29uZmlndXJhdGlvbiBzZXRBbGxMb2Fk
c0Jsb2NrZWRCeURldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNGb3JUZXN0aW5nOllFU107CiAK
ICAgICBSZXRhaW5QdHI8V0tXZWJWaWV3Q29uZmlndXJhdGlvbj4gd2ViVmlld0NvbmZpZ3VyYXRp
b24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwotICAg
IFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRXZWJzaXRlRGF0YVN0b3JlOmFkb3B0TlMoW1tXS1dl
YnNpdGVEYXRhU3RvcmUgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246ZGF0YVN0b3JlQ29u
ZmlndXJhdGlvbi5nZXQoKV0pLmF1dG9yZWxlYXNlKCldOworICAgIFt3ZWJWaWV3Q29uZmlndXJh
dGlvbiBzZXRXZWJzaXRlRGF0YVN0b3JlOmFkb3B0TlMoW1tXS1dlYnNpdGVEYXRhU3RvcmUgYWxs
b2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246ZGF0YVN0b3JlQ29uZmlndXJhdGlvbi5nZXQoKV0p
LmdldCgpXTsKIAogICAgIFJldGFpblB0cjxUZXN0V0tXZWJWaWV3PiB3ZWJWaWV3ID0gYWRvcHRO
UyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0WmVybyBjb25maWd1
cmF0aW9uOndlYlZpZXdDb25maWd1cmF0aW9uLmdldCgpIGFkZFRvV2luZG93OllFU10pOwogCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Rvd25sb2Fk
Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Eb3dubG9hZC5tbQpp
bmRleCBiNDAzNTZmZjI0Nzg2YzhiM2ZkYjI0MGU0ZjEzNWRiMjIzZGFiYjBmLi5iMWFmMTVhY2I0
M2I2ZGJhZDdmNzVkYmI5MDRiOTcwNjZhMzYyMTY5IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Rvd25sb2FkLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRG93bmxvYWQubW0KQEAgLTM1OCw3ICszNTgsOCBAQCBU
RVNUKF9XS0Rvd25sb2FkLCBEb3dubG9hZFJlcXVlc3RPcmlnaW5hbFVSTERpcmVjdERvd25sb2Fk
KQogVEVTVChfV0tEb3dubG9hZCwgRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkxEaXJlY3REb3du
bG9hZFdpdGhMb2FkZWRDb250ZW50KQogewogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tX
S1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCld
KTsKLSAgICBbd2ViVmlldyBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6W1tEb3dubG9hZFJlcXVlc3RP
cmlnaW5hbFVSTE5hdmlnYXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdF1dOworICAgIGF1dG8gbmF2
aWdhdGlvbkRlbGVnYXRlID0gYWRvcHROUyhbW0Rvd25sb2FkUmVxdWVzdE9yaWdpbmFsVVJMTmF2
aWdhdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlv
bkRlbGVnYXRlOm5hdmlnYXRpb25EZWxlZ2F0ZS5nZXQoKV07CiAgICAgW1tbd2ViVmlldyBjb25m
aWd1cmF0aW9uXSBwcm9jZXNzUG9vbF0gX3NldERvd25sb2FkRGVsZWdhdGU6W1tEb3dubG9hZFJl
cXVlc3RPcmlnaW5hbFVSTERlbGVnYXRlIGFsbG9jXSBpbml0V2l0aEV4cGVjdGVkT3JpZ2luYWxV
Ukw6c291cmNlVVJMXV07CiAKICAgICBleHBlY3RlZFVzZXJJbml0aWF0ZWRTdGF0ZSA9IGZhbHNl
OwpAQCAtODk3LDcgKzg5OCw3IEBAIFJldGFpblB0cjxXS1dlYlZpZXc+IHdlYlZpZXdXaXRoRG93
bmxvYWRNb25pdG9yU3BlZWRNdWx0aXBsaWVyKHNpemVfdCBtdWx0aXBsaWVyCiAgICAgYXV0byBk
YXRhU3RvcmVDb25maWd1cmF0aW9uID0gYWRvcHROUyhbX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZp
Z3VyYXRpb24gbmV3XSk7CiAgICAgW2RhdGFTdG9yZUNvbmZpZ3VyYXRpb24gc2V0VGVzdFNwZWVk
TXVsdGlwbGllcjptdWx0aXBsaWVyXTsKICAgICBhdXRvIHdlYlZpZXdDb25maWd1cmF0aW9uID0g
YWRvcHROUyhbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBuZXddKTsKLSAgICBbd2ViVmlld0NvbmZp
Z3VyYXRpb24gc2V0V2Vic2l0ZURhdGFTdG9yZTphZG9wdE5TKFtbV0tXZWJzaXRlRGF0YVN0b3Jl
IGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOmRhdGFTdG9yZUNvbmZpZ3VyYXRpb24uZ2V0
KCldKS5hdXRvcmVsZWFzZSgpXTsKKyAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0V2Vic2l0
ZURhdGFTdG9yZTphZG9wdE5TKFtbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbG9jXSBfaW5pdFdpdGhD
b25maWd1cmF0aW9uOmRhdGFTdG9yZUNvbmZpZ3VyYXRpb24uZ2V0KCldKS5nZXQoKV07CiAgICAg
YXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpO
U01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOndlYlZpZXdDb25maWd1cmF0
aW9uLmdldCgpXSk7CiAgICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOm5hdmlnYXRp
b25EZWxlZ2F0ZS5nZXQoKV07CiAgICAgW3dlYlZpZXcgY29uZmlndXJhdGlvbl0ucHJvY2Vzc1Bv
b2wuX2Rvd25sb2FkRGVsZWdhdGUgPSBtb25pdG9yRGVsZWdhdGUoKS5nZXQoKTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRHJhZ0FuZERyb3BUZXN0
cy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRHJhZ0FuZERyb3BU
ZXN0cy5tbQppbmRleCBlNzdlNWE1Mzk2NDc5NWRkYTM1NjY3M2Y5ODhkZjRiYTQ1ZjljODI3Li5l
YzM1ODg0YWZlNmYzNTE1NmRlYmE3ZTNjZTIzYWQ1OWU5MDUxZTdiIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0RyYWdBbmREcm9wVGVzdHMubW0KKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9EcmFnQW5kRHJvcFRlc3Rz
Lm1tCkBAIC0xOTMsNyArMTkzLDcgQEAgc3RydWN0IERyYWdTdGFydERhdGEgewogICAgIE5TU3Ry
aW5nICp0ZXh0IHsgbmlsIH07CiAgICAgTlNTdHJpbmcgKnVybCB7IG5pbCB9OwogICAgIE5TU3Ry
aW5nICpodG1sIHsgbmlsIH07Ci0gICAgTlNEaWN0aW9uYXJ5PE5TU3RyaW5nICosIE5TU3RyaW5n
ICo+ICpjdXN0b21EYXRhIHsgbmlsIH07CisgICAgUmV0YWluUHRyPE5TRGljdGlvbmFyeTxOU1N0
cmluZyAqLCBOU1N0cmluZyAqPj4gY3VzdG9tRGF0YTsKIH07CiAKIHN0YXRpYyBEcmFnU3RhcnRE
YXRhIHJ1bkRyYWdTdGFydERhdGFUZXN0Q2FzZShEcmFnQW5kRHJvcFNpbXVsYXRvciAqc2ltdWxh
dG9yLCBOU1N0cmluZyAqZWxlbWVudElEKQpAQCAtMjE1LDcgKzIxNSw3IEBAIHN0YXRpYyBEcmFn
U3RhcnREYXRhIHJ1bkRyYWdTdGFydERhdGFUZXN0Q2FzZShEcmFnQW5kRHJvcFNpbXVsYXRvciAq
c2ltdWxhdG9yLCBOCiAgICAgW2FsbERhdGEgcmVtb3ZlT2JqZWN0Rm9yS2V5OkAidGV4dC9odG1s
Il07CiAgICAgW2FsbERhdGEgcmVtb3ZlT2JqZWN0Rm9yS2V5OkAiRmlsZXMiXTsKICAgICBpZiAo
W2FsbERhdGEgY291bnRdKQotICAgICAgICByZXN1bHQuY3VzdG9tRGF0YSA9IGFsbERhdGEuYXV0
b3JlbGVhc2UoKTsKKyAgICAgICAgcmVzdWx0LmN1c3RvbURhdGEgPSBXVEZNb3ZlKGFsbERhdGEp
OwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKQEAgLTI0Miw3ICsyNDIsNyBAQCBURVNUKERyYWdB
bmREcm9wVGVzdHMsIERhdGFUcmFuc2ZlclR5cGVzT25EcmFnU3RhcnRGb3JUZXh0U2VsZWN0aW9u
KQogICAgIEVYUEVDVF9XS19TVFJFUSgiUmVndWxhciB0ZXh0ICsgY3VzdG9tIGRhdGEiLCByZXN1
bHQudGV4dCk7CiAgICAgRVhQRUNUX05VTEwocmVzdWx0LnVybCk7CiAgICAgRVhQRUNUX1RSVUUo
W3Jlc3VsdC5odG1sIGNvbnRhaW5zU3RyaW5nOkAiUmVndWxhciB0ZXh0ICsgY3VzdG9tIGRhdGEi
XSk7Ci0gICAgRVhQRUNUX1dLX1NUUkVRKCJIZWxsbyB3b3JsZCIsIHJlc3VsdC5jdXN0b21EYXRh
W0AidGV4dC9mb28iXSk7CisgICAgRVhQRUNUX1dLX1NUUkVRKCJIZWxsbyB3b3JsZCIsIHJlc3Vs
dC5jdXN0b21EYXRhLmdldCgpW0AidGV4dC9mb28iXSk7CiAgICAgRVhQRUNUX0ZBTFNFKHJlc3Vs
dC5jb250YWluc0ZpbGUpOwogCiAgICAgcmVzdWx0ID0gcnVuRHJhZ1N0YXJ0RGF0YVRlc3RDYXNl
KHNpbXVsYXRvci5nZXQoKSwgQCJ1cmwiKTsKQEAgLTI1Niw3ICsyNTYsNyBAQCBURVNUKERyYWdB
bmREcm9wVGVzdHMsIERhdGFUcmFuc2ZlclR5cGVzT25EcmFnU3RhcnRGb3JUZXh0U2VsZWN0aW9u
KQogICAgIEVYUEVDVF9OVUxMKHJlc3VsdC50ZXh0KTsKICAgICBFWFBFQ1RfTlVMTChyZXN1bHQu
dXJsKTsKICAgICBFWFBFQ1RfTlVMTChyZXN1bHQuaHRtbCk7Ci0gICAgRVhQRUNUX1dLX1NUUkVR
KCJIZWxsbyB3b3JsZCIsIHJlc3VsdC5jdXN0b21EYXRhW0AidGV4dC9mb28iXSk7CisgICAgRVhQ
RUNUX1dLX1NUUkVRKCJIZWxsbyB3b3JsZCIsIHJlc3VsdC5jdXN0b21EYXRhLmdldCgpW0AidGV4
dC9mb28iXSk7CiAgICAgRVhQRUNUX0ZBTFNFKHJlc3VsdC5jb250YWluc0ZpbGUpOwogfQogCkBA
IC0zMDUsNyArMzA1LDcgQEAgVEVTVChEcmFnQW5kRHJvcFRlc3RzLCBEYXRhVHJhbnNmZXJUeXBl
c09uRHJhZ1N0YXJ0Rm9yTGluaykKICAgICBFWFBFQ1RfTlVMTChyZXN1bHQudGV4dCk7CiAgICAg
RVhQRUNUX1dLX1NUUkVRKCJodHRwczovL3d3dy5hcHBsZS5jb20vIiwgcmVzdWx0LnVybCk7CiAg
ICAgRVhQRUNUX05VTEwocmVzdWx0Lmh0bWwpOwotICAgIEVYUEVDVF9XS19TVFJFUSgiYmFyIiwg
cmVzdWx0LmN1c3RvbURhdGFbQCJ0ZXh0L2ZvbyJdKTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoImJh
ciIsIHJlc3VsdC5jdXN0b21EYXRhLmdldCgpW0AidGV4dC9mb28iXSk7CiAgICAgRVhQRUNUX0ZB
TFNFKHJlc3VsdC5jb250YWluc0ZpbGUpOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0luQXBwQnJvd3NlclByaXZhY3kubW0gYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0luQXBwQnJvd3NlclByaXZhY3kubW0KaW5k
ZXggNzNkMGNjNTI1ZjRhZmY2ZmQyM2Q2YmRlNDUxNjFmNjI4ODc4ZjVkMS4uNGIzNjVlOGJiOTM3
ZWVkMTVlNGFmYmNiNTY0ZmJjOGI3NzhlNTRlOCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbkFwcEJyb3dzZXJQcml2YWN5Lm1tCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5BcHBCcm93c2VyUHJpdmFjeS5tbQpA
QCAtMTIwLDcgKzEyMCw3IEBAIC0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBz
dGFydFVSTFNjaGVtZVRhc2s6KGlkIDxXS1VSTFNjaGVtZVRhc2s+KXRhCiAgICAgZWxzZSBpZiAo
W3Rhc2sucmVxdWVzdC5VUkwucGF0aCBpc0VxdWFsVG9TdHJpbmc6QCIvaW4tYXBwLWJyb3dzZXIt
cHJpdmFjeS10ZXN0LWFib3V0LWJsYW5rLXN1YmZyYW1lIl0pCiAgICAgICAgIHJlc3BvbnNlID0g
QCI8Ym9keSBpZCA9ICdib2R5Jz48L2JvZHk+PGlmcmFtZSBpZD0naWZyYW1lJz48L2lmcmFtZT48
L2JvZHk+IjsKIAotICAgIFt0YXNrIGRpZFJlY2VpdmVSZXNwb25zZTphZG9wdE5TKFtbTlNVUkxS
ZXNwb25zZSBhbGxvY10gaW5pdFdpdGhVUkw6dGFzay5yZXF1ZXN0LlVSTCBNSU1FVHlwZTpAInRl
eHQvaHRtbCIgZXhwZWN0ZWRDb250ZW50TGVuZ3RoOnJlc3BvbnNlLmxlbmd0aCB0ZXh0RW5jb2Rp
bmdOYW1lOm5pbF0pLmF1dG9yZWxlYXNlKCldOworICAgIFt0YXNrIGRpZFJlY2VpdmVSZXNwb25z
ZTphZG9wdE5TKFtbTlNVUkxSZXNwb25zZSBhbGxvY10gaW5pdFdpdGhVUkw6dGFzay5yZXF1ZXN0
LlVSTCBNSU1FVHlwZTpAInRleHQvaHRtbCIgZXhwZWN0ZWRDb250ZW50TGVuZ3RoOnJlc3BvbnNl
Lmxlbmd0aCB0ZXh0RW5jb2RpbmdOYW1lOm5pbF0pLmdldCgpXTsKICAgICBbdGFzayBkaWRSZWNl
aXZlRGF0YTpbcmVzcG9uc2UgZGF0YVVzaW5nRW5jb2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2Rpbmdd
XTsKICAgICBbdGFzayBkaWRGaW5pc2hdOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENv
bXBhdGliaWxpdHkubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0lu
ZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eS5tbQppbmRleCBmM2Mz
ZDg3ZDg1MDJlNTE3ZDg1ZjYwYWZkMTNhMmEyYTkwYjM1ZjA4Li43NDIzMThhODc1MmI0YWMwN2U1
YWRhNDU2YjAzNjNkNzljNWEwYjA0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0luZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJp
bGl0eS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0luZGV4
ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eS5tbQpAQCAtOTYsNyArOTYs
NyBAQCBURVNUKEluZGV4ZWREQiwgU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5
KQogCiAgICAgUmV0YWluUHRyPF9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uPiB3ZWJz
aXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tfV0tXZWJzaXRlRGF0YVN0b3Jl
Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIHdlYnNpdGVEYXRhU3RvcmVDb25maWd1
cmF0aW9uLmdldCgpLl9pbmRleGVkREJEYXRhYmFzZURpcmVjdG9yeSA9IGlkYlBhdGg7Ci0gICAg
Y29uZmlndXJhdGlvbi5nZXQoKS53ZWJzaXRlRGF0YVN0b3JlID0gYWRvcHROUyhbW1dLV2Vic2l0
ZURhdGFTdG9yZSBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjp3ZWJzaXRlRGF0YVN0b3Jl
Q29uZmlndXJhdGlvbi5nZXQoKV0pLmF1dG9yZWxlYXNlKCk7CisgICAgY29uZmlndXJhdGlvbi5n
ZXQoKS53ZWJzaXRlRGF0YVN0b3JlID0gYWRvcHROUyhbW1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxv
Y10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjp3ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5n
ZXQoKV0pLmdldCgpOwogCiAgICAgaWRiUGF0aCA9IFtpZGJQYXRoIFVSTEJ5QXBwZW5kaW5nUGF0
aENvbXBvbmVudDpAImZpbGVfXzAiXTsKICAgICBpZGJQYXRoID0gW2lkYlBhdGggVVJMQnlBcHBl
bmRpbmdQYXRoQ29tcG9uZW50OkAiYmFja3dhcmRfY29tcGF0aWJpbGl0eSJdOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbmRleGVkREJUZW1wRmls
ZVNpemUubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0luZGV4ZWRE
QlRlbXBGaWxlU2l6ZS5tbQppbmRleCA5MDYwZmI5Mjg5ZjdkZDdjNjZjNjQ2Zjg5YjI1MWU0NmVi
NTkxNmMxLi41YmIyYjdjYjg0ZjhhNzc0ZjUwZDczNDgyNzliYzQxYTZlNWE5N2U5IDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0luZGV4ZWREQlRlbXBG
aWxlU2l6ZS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0lu
ZGV4ZWREQlRlbXBGaWxlU2l6ZS5tbQpAQCAtNzEsNyArNzEsNyBAQCBURVNUKEluZGV4ZWREQiwg
SW5kZXhlZERCVGVtcEZpbGVTaXplKQogICAgIGF1dG8gd2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3Vy
YXRpb24gPSBhZG9wdE5TKFtbX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gYWxsb2Nd
IGluaXRdKTsKICAgICB3ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5nZXQoKS5faW5kZXhl
ZERCRGF0YWJhc2VEaXJlY3RvcnkgPSBpZGJQYXRoLmdldCgpOwogCi0gICAgY29uZmlndXJhdGlv
bi5nZXQoKS53ZWJzaXRlRGF0YVN0b3JlID0gYWRvcHROUyhbW1dLV2Vic2l0ZURhdGFTdG9yZSBh
bGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjp3ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlv
bi5nZXQoKV0pLmF1dG9yZWxlYXNlKCk7CisgICAgY29uZmlndXJhdGlvbi5nZXQoKS53ZWJzaXRl
RGF0YVN0b3JlID0gYWRvcHROUyhbW1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxvY10gX2luaXRXaXRo
Q29uZmlndXJhdGlvbjp3ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5nZXQoKV0pLmdldCgp
OwogICAgIGF1dG8gdHlwZXMgPSBhZG9wdE5TKFtbTlNTZXQgYWxsb2NdIGluaXRXaXRoT2JqZWN0
czpXS1dlYnNpdGVEYXRhVHlwZUluZGV4ZWREQkRhdGFiYXNlcywgbmlsXSk7CiAKICAgICBbY29u
ZmlndXJhdGlvbi5nZXQoKS53ZWJzaXRlRGF0YVN0b3JlIHJlbW92ZURhdGFPZlR5cGVzOnR5cGVz
LmdldCgpIG1vZGlmaWVkU2luY2U6W05TRGF0ZSBkaXN0YW50UGFzdF0gY29tcGxldGlvbkhhbmRs
ZXI6XigpIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvSklURW5hYmxlZC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
SklURW5hYmxlZC5tbQppbmRleCBhODY3MjMwMGNhYjA2NWU2MTdlMTJlNmU3N2JmMDA3NDIxOGU5
OTJiLi4wMWU3NmUxYWNmODYxOTljNTY4ZjFiNmVlZTBlYzAzNTQyNGQ0OGIzIDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0pJVEVuYWJsZWQubW0KKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9KSVRFbmFibGVkLm1tCkBA
IC00OSw3ICs0OSw3IEBAIFRFU1QoV2ViS2l0LCBKSVRFbmFibGVkKQogICAgIGF1dG8gcHJvY2Vz
c1Bvb2xDb25maWd1cmF0aW9uID0gYWRvcHROUyhbX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9u
IG5ld10pOwogICAgIFtwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gc2V0SklURW5hYmxlZDpOT107
CiAgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbV0tXZWJWaWV3Q29uZmlndXJhdGlv
biBuZXddKTsKLSAgICBbY29uZmlndXJhdGlvbiBzZXRQcm9jZXNzUG9vbDphZG9wdE5TKFtbV0tQ
cm9jZXNzUG9vbCBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjpwcm9jZXNzUG9vbENvbmZp
Z3VyYXRpb24uZ2V0KCldKS5hdXRvcmVsZWFzZSgpXTsKKyAgICBbY29uZmlndXJhdGlvbiBzZXRQ
cm9jZXNzUG9vbDphZG9wdE5TKFtbV0tQcm9jZXNzUG9vbCBhbGxvY10gX2luaXRXaXRoQ29uZmln
dXJhdGlvbjpwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uZ2V0KCldKS5nZXQoKV07CiAgICAgYXV0
byB3ZWJWaWV3Tm9KSVQgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1l
Ok5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5n
ZXQoKV0pOwogICAgIGNoZWNrSklURW5hYmxlZChXVEZNb3ZlKHdlYlZpZXdOb0pJVCksIE5PKTsK
ICAgICBjaGVja0pJVEVuYWJsZWQoYWRvcHROUyhbV0tXZWJWaWV3IG5ld10pLCBZRVMpOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Mb2NhbFN0b3Jh
Z2VEYXRhYmFzZVRyYWNrZXIubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL0xvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlci5tbQppbmRleCAwZmNjYzZmM2UwMDdhNjM5
Y2JhNzcwMmFjZDllZWIzNDA2OWI3Nzk4Li4wYzQ5NTU4YTVhODU2OGViZDU2ODkzNDU5NDdhYzUw
ZDJlMmZjNWU4IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL0xvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlci5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL0xvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlci5tbQpAQCAt
NTYsNyArNTYsOCBAQCBURVNUKFdLV2ViVmlldywgTG9jYWxTdG9yYWdlRmV0Y2hEYXRhUmVjb3Jk
cykKICAgICByZWFkeVRvQ29udGludWUgPSBmYWxzZTsKICAgICBhdXRvIGNvbmZpZ3VyYXRpb24g
PSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIGF1
dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNN
YWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgp
XSk7Ci0gICAgd2ViVmlldy5nZXQoKS5VSURlbGVnYXRlID0gYWRvcHROUyhbW0xvY2FsU3RvcmFn
ZVVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKS5hdXRvcmVsZWFzZSgpOworICAgIGF1dG8gdWlEZWxl
Z2F0ZSA9IGFkb3B0TlMoW1tMb2NhbFN0b3JhZ2VVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7Cisg
ICAgd2ViVmlldy5nZXQoKS5VSURlbGVnYXRlID0gdWlEZWxlZ2F0ZS5nZXQoKTsKICAgICBbd2Vi
VmlldyBsb2FkSFRNTFN0cmluZzpAIjxzY3JpcHQ+bG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3Rlc3RL
ZXknLCAndGVzdFZhbHVlJyk7YWxlcnQobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3Rlc3RLZXknKSk7
PC9zY3JpcHQ+IiBiYXNlVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiaHR0cDovL2xvY2FsaG9z
dCJdXTsKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlYWR5VG9Db250aW51ZSk7CiAK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTmV0d29y
a1Byb2Nlc3MubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL05ldHdv
cmtQcm9jZXNzLm1tCmluZGV4IDQzZmMxZWRmYWQ1YmMzY2EyNDA0YTZkZjQ3OGFhZjM4ODYzZTEz
NGYuLjc1NWM5YWUxMTBiZjNmM2EyYjNhNTY2MDZmYjU2NzcwYWJiZTY0NDYgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTmV0d29ya1Byb2Nlc3MubW0K
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9OZXR3b3JrUHJvY2Vz
cy5tbQpAQCAtMzYsNyArMzYsNyBAQAogCiBURVNUKFdlYktpdCwgTmV0d29ya1Byb2Nlc3NFbnRp
dGxlbWVudHMpCiB7Ci0gICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcg
YWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJh
dGlvbjphZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pLmF1dG9y
ZWxlYXNlKCldKTsKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBh
bGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0
aW9uOmFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSkuZ2V0KCld
KTsKICAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6QCJzaW1wbGUi
XTsKICAgICBXS1dlYnNpdGVEYXRhU3RvcmUgKnN0b3JlID0gW3dlYlZpZXcgY29uZmlndXJhdGlv
bl0ud2Vic2l0ZURhdGFTdG9yZTsKICAgICBib29sIGhhc0VudGl0bGVtZW50ID0gW3N0b3JlIF9u
ZXR3b3JrUHJvY2Vzc0hhc0VudGl0bGVtZW50Rm9yVGVzdGluZzpAImNvbS5hcHBsZS5yb290bGVz
cy5zdG9yYWdlLldlYktpdE5ldHdvcmtpbmdTYW5kYm94Il07CmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1t
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2
aWdhdGlvbi5tbQppbmRleCBhZGJjOTlkZGMyODIxNWRhYWQwM2FlNjNjY2JjODIxYTVjM2E3ODQ0
Li40ZDhhN2Q1NmY0YmJiZGViZDE2YzczNWJjNjE1MmNkZjI0MTMzZGFiIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0
aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vz
c1N3YXBPbk5hdmlnYXRpb24ubW0KQEAgLTU0NTUsNyArNTQ1NSw3IEBAIFRFU1QoUHJvY2Vzc1N3
YXAsIFVzZVByZXdhcm1lZFByb2Nlc3NBZnRlclRlcm1pbmF0aW5nTmV0d29ya1Byb2Nlc3MpCiAK
ICAgICBhdXRvIHdlYlZpZXdDb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZp
Z3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0UHJv
Y2Vzc1Bvb2w6cHJvY2Vzc1Bvb2wuZ2V0KCldOwotICAgIHdlYlZpZXdDb25maWd1cmF0aW9uLmdl
dCgpLndlYnNpdGVEYXRhU3RvcmUgPSBhZG9wdE5TKFtbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbG9j
XSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOndlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmdl
dCgpXSkuYXV0b3JlbGVhc2UoKTsKKyAgICB3ZWJWaWV3Q29uZmlndXJhdGlvbi5nZXQoKS53ZWJz
aXRlRGF0YVN0b3JlID0gYWRvcHROUyhbW1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxvY10gX2luaXRX
aXRoQ29uZmlndXJhdGlvbjp3ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5nZXQoKV0pLmdl
dCgpOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5p
dFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOndlYlZp
ZXdDb25maWd1cmF0aW9uLmdldCgpXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tQ
U09OTmF2aWdhdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb3h5Lm1tIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm94eS5tbQppbmRleCBhNjBlYzZhNzk5MjI0YThiY2Yz
ZTIwNmY2OTA4OWI3YWM0MGM2MTE0Li43YzcwNGY1MWJiN2JlMjFlYTE5Nzc0OGEzOGEyOWYyMTQw
MjQ1Njg5IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L1Byb3h5Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJv
eHkubW0KQEAgLTg0LDcgKzg0LDcgQEAgVEVTVChXZWJLaXQsIEhUVFBTUHJveHkpCiAgICAgW3N0
b3JlQ29uZmlndXJhdGlvbiBzZXRIVFRQU1Byb3h5OltOU1VSTCBVUkxXaXRoU3RyaW5nOltOU1N0
cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiaHR0cHM6Ly8xMjcuMC4wLjE6JWQvIiwgc2VydmVyLnBv
cnQoKV1dXTsKICAgICBbc3RvcmVDb25maWd1cmF0aW9uIHNldEFsbG93c1NlcnZlclByZWNvbm5l
Y3Q6Tk9dOwogICAgIGF1dG8gdmlld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtXS1dlYlZpZXdD
b25maWd1cmF0aW9uIG5ld10pOwotICAgIFt2aWV3Q29uZmlndXJhdGlvbiBzZXRXZWJzaXRlRGF0
YVN0b3JlOmFkb3B0TlMoW1tXS1dlYnNpdGVEYXRhU3RvcmUgYWxsb2NdIF9pbml0V2l0aENvbmZp
Z3VyYXRpb246c3RvcmVDb25maWd1cmF0aW9uLmdldCgpXSkuYXV0b3JlbGVhc2UoKV07CisgICAg
W3ZpZXdDb25maWd1cmF0aW9uIHNldFdlYnNpdGVEYXRhU3RvcmU6YWRvcHROUyhbW1dLV2Vic2l0
ZURhdGFTdG9yZSBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjpzdG9yZUNvbmZpZ3VyYXRp
b24uZ2V0KCldKS5nZXQoKV07CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDEwMCwgMTAwKSBjb25maWd1
cmF0aW9uOnZpZXdDb25maWd1cmF0aW9uLmdldCgpXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFk
b3B0TlMoW1Byb3h5RGVsZWdhdGUgbmV3XSk7CiAgICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRl
bGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKQEAgLTEzMSw3ICsxMzEsNyBAQCBURVNUKFdlYktpdCwg
SFRUUFByb3h5QXV0aGVudGljYXRpb24pCiAgICAgW3N0b3JlQ29uZmlndXJhdGlvbiBzZXRQcmV2
ZW50c1N5c3RlbUhUVFBQcm94eUF1dGhlbnRpY2F0aW9uOllFU107CiAKICAgICBhdXRvIHZpZXdD
b25maWd1cmF0aW9uID0gYWRvcHROUyhbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBuZXddKTsKLSAg
ICBbdmlld0NvbmZpZ3VyYXRpb24gc2V0V2Vic2l0ZURhdGFTdG9yZTphZG9wdE5TKFtbV0tXZWJz
aXRlRGF0YVN0b3JlIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOnN0b3JlQ29uZmlndXJh
dGlvbi5nZXQoKV0pLmF1dG9yZWxlYXNlKCldOworICAgIFt2aWV3Q29uZmlndXJhdGlvbiBzZXRX
ZWJzaXRlRGF0YVN0b3JlOmFkb3B0TlMoW1tXS1dlYnNpdGVEYXRhU3RvcmUgYWxsb2NdIF9pbml0
V2l0aENvbmZpZ3VyYXRpb246c3RvcmVDb25maWd1cmF0aW9uLmdldCgpXSkuZ2V0KCldOwogICAg
IGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6
Q0dSZWN0TWFrZSgwLCAwLCAxMDAsIDEwMCkgY29uZmlndXJhdGlvbjp2aWV3Q29uZmlndXJhdGlv
bi5nZXQoKV0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtQcm94eURlbGVnYXRlIG5l
d10pOwogICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07
CkBAIC0xNzQsNyArMTc0LDcgQEAgVEVTVChXZWJLaXQsIFNlY3VyZVByb3h5Q29ubmVjdGlvbikK
ICAgICBbc3RvcmVDb25maWd1cmF0aW9uIHNldFJlcXVpcmVzU2VjdXJlSFRUUFNQcm94eUNvbm5l
Y3Rpb246WUVTXTsKIAogICAgIGF1dG8gdmlld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtXS1dl
YlZpZXdDb25maWd1cmF0aW9uIG5ld10pOwotICAgIFt2aWV3Q29uZmlndXJhdGlvbiBzZXRXZWJz
aXRlRGF0YVN0b3JlOmFkb3B0TlMoW1tXS1dlYnNpdGVEYXRhU3RvcmUgYWxsb2NdIF9pbml0V2l0
aENvbmZpZ3VyYXRpb246c3RvcmVDb25maWd1cmF0aW9uLmdldCgpXSkuYXV0b3JlbGVhc2UoKV07
CisgICAgW3ZpZXdDb25maWd1cmF0aW9uIHNldFdlYnNpdGVEYXRhU3RvcmU6YWRvcHROUyhbW1dL
V2Vic2l0ZURhdGFTdG9yZSBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjpzdG9yZUNvbmZp
Z3VyYXRpb24uZ2V0KCldKS5nZXQoKV07CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dL
V2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDEwMCwgMTAwKSBj
b25maWd1cmF0aW9uOnZpZXdDb25maWd1cmF0aW9uLmdldCgpXSk7CiAgICAgW3dlYlZpZXcgbG9h
ZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmlu
ZzpAImh0dHBzOi8vZXhhbXBsZS5jb20vIl1dXTsKICAgICB3aGlsZSAoIXJlY2VpdmVkVmFsaWRD
bGllbnRIZWxsbykKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvUmVwYXJlbnRXZWJWaWV3VGltZW91dC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvUmVwYXJlbnRXZWJWaWV3VGltZW91dC5tbQppbmRleCBkY2JmZDUwNzk1
NDZhNDZjMzY5OWYxODhkOGI2ZjMwYjdhMmVlZDRjLi5jNTU0MjVjMDAyMGQ4N2YwNzFjMGQyNTBj
ODAzYTFmOTM3ZGQ4MTU1IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1JlcGFyZW50V2ViVmlld1RpbWVvdXQubW0KKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXBhcmVudFdlYlZpZXdUaW1lb3V0Lm1tCkBAIC0zOCw3
ICszOCw3IEBAIFRFU1QoV2ViS2l0LCBSZXBhcmVudFdlYlZpZXdUaW1lb3V0KQogICAgIFtwcm9j
ZXNzUG9vbENvbmZpZ3VyYXRpb24gc2V0SWdub3JlU3luY2hyb25vdXNNZXNzYWdpbmdUaW1lb3V0
c0ZvclRlc3Rpbmc6WUVTXTsKIAogICAgIFJldGFpblB0cjxXS1dlYlZpZXdDb25maWd1cmF0aW9u
PiBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2Nd
IGluaXRdKTsKLSAgICBbY29uZmlndXJhdGlvbiBzZXRQcm9jZXNzUG9vbDphZG9wdE5TKFtbV0tQ
cm9jZXNzUG9vbCBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjpwcm9jZXNzUG9vbENvbmZp
Z3VyYXRpb24uZ2V0KCldKS5hdXRvcmVsZWFzZSgpXTsKKyAgICBbY29uZmlndXJhdGlvbiBzZXRQ
cm9jZXNzUG9vbDphZG9wdE5TKFtbV0tQcm9jZXNzUG9vbCBhbGxvY10gX2luaXRXaXRoQ29uZmln
dXJhdGlvbjpwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uZ2V0KCldKS5nZXQoKV07CiAKICAgICBS
ZXRhaW5QdHI8VGVzdFdLV2ViVmlldz4gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3
IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMTAwLCAxMDApIGNvbmZpZ3Vy
YXRpb246Y29uZmlndXJhdGlvbi5nZXQoKSBhZGRUb1dpbmRvdzpZRVNdKTsKICAgICBbd2ViVmll
dyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCJoZWxsbyJdOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXNvdXJjZUxvYWRTdGF0aXN0aWNz
Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXNvdXJjZUxvYWRT
dGF0aXN0aWNzLm1tCmluZGV4IDkxNDI4NDY1YWYwNzE0MDA4Y2FmM2Y2OTZiZGQwM2U0Y2E2ZjU3
OGUuLmFmMWFiMzNlNjZlMjQ5NTNhNDI1NWNmZTg2MTg2YjQ0ZmFkNmU2NGMgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVzb3VyY2VMb2FkU3RhdGlz
dGljcy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Jlc291
cmNlTG9hZFN0YXRpc3RpY3MubW0KQEAgLTMyNiw3ICszMjYsNyBAQCBURVNUKFJlc291cmNlTG9h
ZFN0YXRpc3RpY3MsIFJlbW92ZVNlc3Npb25JRCkKIHsKICAgICBhdXRvIGNvbmZpZ3VyYXRpb24g
PSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIGF1
dG8gd2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbX1dLV2Vic2l0ZURh
dGFTdG9yZUNvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKLSAgICBjb25maWd1cmF0aW9uLmdl
dCgpLndlYnNpdGVEYXRhU3RvcmUgPSBhZG9wdE5TKFtbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbG9j
XSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOndlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmdl
dCgpXSkuYXV0b3JlbGVhc2UoKTsKKyAgICBjb25maWd1cmF0aW9uLmdldCgpLndlYnNpdGVEYXRh
U3RvcmUgPSBhZG9wdE5TKFtbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbG9jXSBfaW5pdFdpdGhDb25m
aWd1cmF0aW9uOndlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmdldCgpXSkuZ2V0KCk7CiAK
ICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZy
YW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlv
bi5nZXQoKV0pOwogCkBAIC01ODMsNyArNTgzLDcgQEAgVEVTVChSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzLCBEYXRhVGFza0lkZW50aWZpZXJDb2xsaXNpb24pCiBURVNUKFJlc291cmNlTG9hZFN0YXRp
c3RpY3MsIE5vTWVzc2FnZXNXaGVuTm90VGVzdGluZykKIHsKICAgICBhdXRvIGNvbmZpZ3VyYXRp
b24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwotICAg
IGF1dG8gZGF0YVN0b3JlID0gYWRvcHROUyhbW1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxvY10gX2lu
aXRXaXRoQ29uZmlndXJhdGlvbjphZG9wdE5TKFtbX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3Vy
YXRpb24gYWxsb2NdIGluaXRdKS5hdXRvcmVsZWFzZSgpXSk7CisgICAgYXV0byBkYXRhU3RvcmUg
PSBhZG9wdE5TKFtbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0
aW9uOmFkb3B0TlMoW1tfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiBhbGxvY10gaW5p
dF0pLmdldCgpXSk7CiAgICAgW2NvbmZpZ3VyYXRpb24gc2V0V2Vic2l0ZURhdGFTdG9yZTpkYXRh
U3RvcmUuZ2V0KCldOwogICAgIFtkYXRhU3RvcmUgX3NldFJlc291cmNlTG9hZFN0YXRpc3RpY3NF
bmFibGVkOllFU107CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcg
YWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCAxMDAsIDEwMCkgY29uZmlndXJh
dGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7CkBAIC0xMjc5LDcgKzEyNzksNyBAQCBURVNUKFJl
c291cmNlTG9hZFN0YXRpc3RpY3MsIFN0b3JlU3VzcGVuc2lvbikKIHsKICAgICBhdXRvICpzaGFy
ZWRQcm9jZXNzUG9vbCA9IFtXS1Byb2Nlc3NQb29sIF9zaGFyZWRQcm9jZXNzUG9vbF07CiAgICAg
YXV0byAqZGF0YVN0b3JlMSA9IFtXS1dlYnNpdGVEYXRhU3RvcmUgZGVmYXVsdERhdGFTdG9yZV07
Ci0gICAgYXV0byBkYXRhU3RvcmUyID0gYWRvcHROUyhbW1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxv
Y10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjphZG9wdE5TKFtbX1dLV2Vic2l0ZURhdGFTdG9yZUNv
bmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKS5hdXRvcmVsZWFzZSgpXSk7CisgICAgYXV0byBkYXRh
U3RvcmUyID0gYWRvcHROUyhbW1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxvY10gX2luaXRXaXRoQ29u
ZmlndXJhdGlvbjphZG9wdE5TKFtbX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gYWxs
b2NdIGluaXRdKS5nZXQoKV0pOwogCiAgICAgW2RhdGFTdG9yZTEgX3NldFJlc291cmNlTG9hZFN0
YXRpc3RpY3NFbmFibGVkOllFU107CiAgICAgW2RhdGFTdG9yZTIgX3NldFJlc291cmNlTG9hZFN0
YXRpc3RpY3NFbmFibGVkOllFU107CkBAIC0xMzI1LDcgKzEzMjUsNyBAQCAtICh2b2lkKXdlYlZp
ZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgc3RhcnRVUkxTY2hlbWVUYXNrOihpZCA8V0tVUkxTY2hl
bWVUYXNrPil0YQogICAgIGVsc2UgaWYgKFt0YXNrLnJlcXVlc3QuVVJMLnBhdGggaXNFcXVhbFRv
U3RyaW5nOkAiL3RwLWxvYWQiXSkKICAgICAgICAgcmVzcG9uc2UgPSBAIjxib2R5PjwvYm9keT4i
OwogCi0gICAgW3Rhc2sgZGlkUmVjZWl2ZVJlc3BvbnNlOmFkb3B0TlMoW1tOU1VSTFJlc3BvbnNl
IGFsbG9jXSBpbml0V2l0aFVSTDp0YXNrLnJlcXVlc3QuVVJMIE1JTUVUeXBlOkAidGV4dC9odG1s
IiBleHBlY3RlZENvbnRlbnRMZW5ndGg6cmVzcG9uc2UubGVuZ3RoIHRleHRFbmNvZGluZ05hbWU6
bmlsXSkuYXV0b3JlbGVhc2UoKV07CisgICAgW3Rhc2sgZGlkUmVjZWl2ZVJlc3BvbnNlOmFkb3B0
TlMoW1tOU1VSTFJlc3BvbnNlIGFsbG9jXSBpbml0V2l0aFVSTDp0YXNrLnJlcXVlc3QuVVJMIE1J
TUVUeXBlOkAidGV4dC9odG1sIiBleHBlY3RlZENvbnRlbnRMZW5ndGg6cmVzcG9uc2UubGVuZ3Ro
IHRleHRFbmNvZGluZ05hbWU6bmlsXSkuZ2V0KCldOwogICAgIFt0YXNrIGRpZFJlY2VpdmVEYXRh
OltyZXNwb25zZSBkYXRhVXNpbmdFbmNvZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZ11dOwogICAg
IFt0YXNrIGRpZEZpbmlzaF07CiB9CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1NhZmVCcm93c2luZy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvU2FmZUJyb3dzaW5nLm1tCmluZGV4IGNlYTg1OWI1OWQ5YmI2MjlhNjZh
MGFmNGU0OTk0MDZlOTcxODg5ZTkuLjZiOWNmNWQ0Yjg1MTlhMzUxZjA5NGUzNDgwODc5NTg1MmFh
N2RmY2UgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
U2FmZUJyb3dzaW5nLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvU2FmZUJyb3dzaW5nLm1tCkBAIC0zMDgsNyArMzA4LDcgQEAgVEVTVChTYWZlQnJvd3Npbmcs
IFNob3dXYXJuaW5nU1BJKQogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1dLV2ViVmlldyBu
ZXddKTsKICAgICBhdXRvIHNob3dXYXJuaW5nID0gXnsKICAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXJDYWxsZWQgPSBmYWxzZTsKLSAgICAgICAgW3dlYlZpZXcgX3Nob3dTYWZlQnJvd3NpbmdXYXJu
aW5nV2l0aFVSTDpuaWwgdGl0bGU6QCJ0ZXN0IHRpdGxlIiB3YXJuaW5nOkAidGVzdCB3YXJuaW5n
IiBkZXRhaWxzOmFkb3B0TlMoW1tOU0F0dHJpYnV0ZWRTdHJpbmcgYWxsb2NdIGluaXRXaXRoU3Ry
aW5nOkAidGVzdCBkZXRhaWxzIl0pLmF1dG9yZWxlYXNlKCkgY29tcGxldGlvbkhhbmRsZXI6XihC
T09MIHNob3VsZENvbnRpbnVlKSB7CisgICAgICAgIFt3ZWJWaWV3IF9zaG93U2FmZUJyb3dzaW5n
V2FybmluZ1dpdGhVUkw6bmlsIHRpdGxlOkAidGVzdCB0aXRsZSIgd2FybmluZzpAInRlc3Qgd2Fy
bmluZyIgZGV0YWlsczphZG9wdE5TKFtbTlNBdHRyaWJ1dGVkU3RyaW5nIGFsbG9jXSBpbml0V2l0
aFN0cmluZzpAInRlc3QgZGV0YWlscyJdKS5nZXQoKSBjb21wbGV0aW9uSGFuZGxlcjpeKEJPT0wg
c2hvdWxkQ29udGludWUpIHsKICAgICAgICAgICAgIHNob3VsZENvbnRpbnVlVmFsdWUgPSBzaG91
bGRDb250aW51ZTsKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyQ2FsbGVkID0gdHJ1ZTsK
ICAgICAgICAgfV07CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tCmluZGV4IGRkNzA3NjI1NmI1ZjQyZWMx
NjA3MTlmYzAyZjg0NzVkMWEzNGZhNjUuLjdmNGFjOTZmYTdjNzNhODQyMmE0YzRlOGZmN2U2MTA1
ZTllODgwZGYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvU2VydmljZVdvcmtlckJhc2ljLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tCkBAIC0xNDA3LDcgKzE0MDcsNyBAQCBU
RVNUKFNlcnZpY2VXb3JrZXJzLCBOb25EZWZhdWx0U2Vzc2lvbklEKQogICAgIHdlYnNpdGVEYXRh
U3RvcmVDb25maWd1cmF0aW9uLmdldCgpLl9zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0
b3J5ID0gc2VydmljZVdvcmtlcnNQYXRoOwogICAgIHdlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0
aW9uLmdldCgpLl9pbmRleGVkREJEYXRhYmFzZURpcmVjdG9yeSA9IGlkYlBhdGg7CiAKLSAgICBj
b25maWd1cmF0aW9uLmdldCgpLndlYnNpdGVEYXRhU3RvcmUgPSBhZG9wdE5TKFtbV0tXZWJzaXRl
RGF0YVN0b3JlIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOndlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uLmdldCgpXSkuYXV0b3JlbGVhc2UoKTsKKyAgICBjb25maWd1cmF0aW9uLmdl
dCgpLndlYnNpdGVEYXRhU3RvcmUgPSBhZG9wdE5TKFtbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbG9j
XSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOndlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmdl
dCgpXSkuZ2V0KCk7CiAKICAgICBSZXRhaW5QdHI8U1dNZXNzYWdlSGFuZGxlcldpdGhFeHBlY3Rl
ZE1lc3NhZ2U+IG1lc3NhZ2VIYW5kbGVyID0gYWRvcHROUyhbW1NXTWVzc2FnZUhhbmRsZXJXaXRo
RXhwZWN0ZWRNZXNzYWdlIGFsbG9jXSBpbml0XSk7CiAgICAgW1tjb25maWd1cmF0aW9uIHVzZXJD
b250ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6bWVzc2FnZUhhbmRsZXIu
Z2V0KCkgbmFtZTpAInN3Il07CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1RMU0RlcHJlY2F0aW9uLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9UTFNEZXByZWNhdGlvbi5tbQppbmRleCA1NTg3MjVkNDU1YjQ1YjVhZGNk
ZWJmZDVhOTUxYzY1NThhZWU5MjhiLi40YTVjYjkwMmZkNzczMzYwODhlZWZiYWQ0YjYyZDIxY2Y4
MTExMzVjIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L1RMU0RlcHJlY2F0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvVExTRGVwcmVjYXRpb24ubW0KQEAgLTQxMyw3ICs0MTMsNyBAQCBURVNUKFRMU1ZlcnNp
b24sIERpZE5lZ290aWF0ZU1vZGVyblRMUykKICAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9w
dE5TKFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIG5ld10pOwogICAgIGF1dG8gZGF0YVN0b3JlQ29u
ZmlndXJhdGlvbiA9IGFkb3B0TlMoW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIG5l
d10pOwogICAgIFtkYXRhU3RvcmVDb25maWd1cmF0aW9uIHNldEZhc3RTZXJ2ZXJUcnVzdEV2YWx1
YXRpb25FbmFibGVkOllFU107Ci0gICAgW2NvbmZpZ3VyYXRpb24gc2V0V2Vic2l0ZURhdGFTdG9y
ZTphZG9wdE5TKFtbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0
aW9uOmRhdGFTdG9yZUNvbmZpZ3VyYXRpb24uZ2V0KCldKS5hdXRvcmVsZWFzZSgpXTsKKyAgICBb
Y29uZmlndXJhdGlvbiBzZXRXZWJzaXRlRGF0YVN0b3JlOmFkb3B0TlMoW1tXS1dlYnNpdGVEYXRh
U3RvcmUgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246ZGF0YVN0b3JlQ29uZmlndXJhdGlv
bi5nZXQoKV0pLmdldCgpXTsKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3
IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3Vy
YXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0pOwogICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRpb25E
ZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6c2VydmVy
LnJlcXVlc3QoKV07CkBAIC00NzMsNyArNDczLDcgQEAgVEVTVChUTFNWZXJzaW9uLCBMZWdhY3lT
dWJyZXNvdXJjZXMpCiAgICAgYXV0byBkYXRhU3RvcmVDb25maWd1cmF0aW9uID0gYWRvcHROUyhb
W19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0Tm9uUGVyc2lzdGVu
dENvbmZpZ3VyYXRpb25dKTsKICAgICBbZGF0YVN0b3JlQ29uZmlndXJhdGlvbiBzZXRGYXN0U2Vy
dmVyVHJ1c3RFdmFsdWF0aW9uRW5hYmxlZDpZRVNdOwogICAgIGF1dG8gd2ViVmlld0NvbmZpZ3Vy
YXRpb24gPSBhZG9wdE5TKFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIG5ld10pOwotICAgIFt3ZWJW
aWV3Q29uZmlndXJhdGlvbiBzZXRXZWJzaXRlRGF0YVN0b3JlOmFkb3B0TlMoW1tXS1dlYnNpdGVE
YXRhU3RvcmUgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246ZGF0YVN0b3JlQ29uZmlndXJh
dGlvbi5nZXQoKV0pLmF1dG9yZWxlYXNlKCldOworICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBz
ZXRXZWJzaXRlRGF0YVN0b3JlOmFkb3B0TlMoW1tXS1dlYnNpdGVEYXRhU3RvcmUgYWxsb2NdIF9p
bml0V2l0aENvbmZpZ3VyYXRpb246ZGF0YVN0b3JlQ29uZmlndXJhdGlvbi5nZXQoKV0pLmdldCgp
XTsKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0
aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246d2ViVmlld0Nv
bmZpZ3VyYXRpb24uZ2V0KCldKTsKIAogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtUZXN0
TmF2aWdhdGlvbkRlbGVnYXRlIG5ld10pOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9UZXh0TWFuaXB1bGF0aW9uLm1tIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9UZXh0TWFuaXB1bGF0aW9uLm1tCmluZGV4IGY3ODAyM2Mx
NWU2ODM1MjMyMGZmMjcxMjAxZDIwMDVjNDFhYzE5OWEuLjJmZjU1ODQ0Y2VkM2YxZWIzNjgyMWRi
OTI4NTk5NzA3NDgwNWJjN2IgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvVGV4dE1hbmlwdWxhdGlvbi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1RleHRNYW5pcHVsYXRpb24ubW0KQEAgLTQwNCw3ICs0MDQsNyBA
QCBURVNUKFRleHRNYW5pcHVsYXRpb24sIFN0YXJ0VGV4dE1hbmlwdWxhdGlvbkFwcGx5U2luZ2xl
RXhjbHVpb25SdWxlRm9yRWxlbWVudCkKIAogICAgIFJldGFpblB0cjxfV0tUZXh0TWFuaXB1bGF0
aW9uQ29uZmlndXJhdGlvbj4gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tfV0tUZXh0TWFuaXB1
bGF0aW9uQ29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIFtjb25maWd1cmF0aW9uIHNl
dEV4Y2x1c2lvblJ1bGVzOkBbCi0gICAgICAgIGFkb3B0TlMoW1tfV0tUZXh0TWFuaXB1bGF0aW9u
RXhjbHVzaW9uUnVsZSBhbGxvY10gaW5pdEV4Y2x1c2lvbjooQk9PTClZRVMgZm9yRWxlbWVudDpA
ImNvZGUiXSkuYXV0b3JlbGVhc2UoKSwKKyAgICAgICAgYWRvcHROUyhbW19XS1RleHRNYW5pcHVs
YXRpb25FeGNsdXNpb25SdWxlIGFsbG9jXSBpbml0RXhjbHVzaW9uOihCT09MKVlFUyBmb3JFbGVt
ZW50OkAiY29kZSJdKS5nZXQoKSwKICAgICBdXTsKIAogICAgIGRvbmUgPSBmYWxzZTsKQEAgLTQ0
MCw4ICs0NDAsOCBAQCBURVNUKFRleHRNYW5pcHVsYXRpb24sIFN0YXJ0VGV4dE1hbmlwdWxhdGlv
bkFwcGx5SW5jbHVzaW9uRXhjbHVzaW9uUnVsZXNGb3JBdHRyaQogCiAgICAgUmV0YWluUHRyPF9X
S1RleHRNYW5pcHVsYXRpb25Db25maWd1cmF0aW9uPiBjb25maWd1cmF0aW9uID0gYWRvcHROUyhb
W19XS1RleHRNYW5pcHVsYXRpb25Db25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgW2Nv
bmZpZ3VyYXRpb24gc2V0RXhjbHVzaW9uUnVsZXM6QFsKLSAgICAgICAgYWRvcHROUyhbW19XS1Rl
eHRNYW5pcHVsYXRpb25FeGNsdXNpb25SdWxlIGFsbG9jXSBpbml0RXhjbHVzaW9uOihCT09MKVlF
UyBmb3JBdHRyaWJ1dGU6QCJkYXRhLWV4Y2x1ZGUiIHZhbHVlOkAieWVzIl0pLmF1dG9yZWxlYXNl
KCksCi0gICAgICAgIGFkb3B0TlMoW1tfV0tUZXh0TWFuaXB1bGF0aW9uRXhjbHVzaW9uUnVsZSBh
bGxvY10gaW5pdEV4Y2x1c2lvbjooQk9PTClOTyBmb3JBdHRyaWJ1dGU6QCJkYXRhLWV4Y2x1ZGUi
IHZhbHVlOkAibm8iXSkuYXV0b3JlbGVhc2UoKSwKKyAgICAgICAgYWRvcHROUyhbW19XS1RleHRN
YW5pcHVsYXRpb25FeGNsdXNpb25SdWxlIGFsbG9jXSBpbml0RXhjbHVzaW9uOihCT09MKVlFUyBm
b3JBdHRyaWJ1dGU6QCJkYXRhLWV4Y2x1ZGUiIHZhbHVlOkAieWVzIl0pLmdldCgpLAorICAgICAg
ICBhZG9wdE5TKFtbX1dLVGV4dE1hbmlwdWxhdGlvbkV4Y2x1c2lvblJ1bGUgYWxsb2NdIGluaXRF
eGNsdXNpb246KEJPT0wpTk8gZm9yQXR0cmlidXRlOkAiZGF0YS1leGNsdWRlIiB2YWx1ZTpAIm5v
Il0pLmdldCgpLAogICAgIF1dOwogCiAgICAgZG9uZSA9IGZhbHNlOwpAQCAtNDY4LDcgKzQ2OCw3
IEBAIFRFU1QoVGV4dE1hbmlwdWxhdGlvbiwgU3RhcnRUZXh0TWFuaXB1bGF0aW9uQXBwbHlJbmNs
dXNpb25FeGNsdXNpb25SdWxlc0ZvckNsYXNzCiAKICAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBh
ZG9wdE5TKFtbX1dLVGV4dE1hbmlwdWxhdGlvbkNvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsK
ICAgICBbY29uZmlndXJhdGlvbiBzZXRFeGNsdXNpb25SdWxlczpAWwotICAgICAgICBhZG9wdE5T
KFtbX1dLVGV4dE1hbmlwdWxhdGlvbkV4Y2x1c2lvblJ1bGUgYWxsb2NdIGluaXRFeGNsdXNpb246
WUVTIGZvckNsYXNzOkAiZXhjbHVkZSJdKS5hdXRvcmVsZWFzZSgpLAorICAgICAgICBhZG9wdE5T
KFtbX1dLVGV4dE1hbmlwdWxhdGlvbkV4Y2x1c2lvblJ1bGUgYWxsb2NdIGluaXRFeGNsdXNpb246
WUVTIGZvckNsYXNzOkAiZXhjbHVkZSJdKS5nZXQoKSwKICAgICBdXTsKIAogICAgIGRvbmUgPSBm
YWxzZTsKQEAgLTQ5NSw5ICs0OTUsOSBAQCBURVNUKFRleHRNYW5pcHVsYXRpb24sIFN0YXJ0VGV4
dE1hbmlwdWxhdGlvbkFwcGx5SW5jbHVzaW9uRXhjbHVzaW9uUnVsZXNGb3JDbGFzcwogCiAgICAg
YXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW19XS1RleHRNYW5pcHVsYXRpb25Db25maWd1
cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgW2NvbmZpZ3VyYXRpb24gc2V0RXhjbHVzaW9uUnVs
ZXM6QFsKLSAgICAgICAgYWRvcHROUyhbW19XS1RleHRNYW5pcHVsYXRpb25FeGNsdXNpb25SdWxl
IGFsbG9jXSBpbml0RXhjbHVzaW9uOllFUyBmb3JBdHRyaWJ1dGU6QCJkYXRhLWV4Y2x1ZGUiIHZh
bHVlOkAieWVzIl0pLmF1dG9yZWxlYXNlKCksCi0gICAgICAgIGFkb3B0TlMoW1tfV0tUZXh0TWFu
aXB1bGF0aW9uRXhjbHVzaW9uUnVsZSBhbGxvY10gaW5pdEV4Y2x1c2lvbjpOTyBmb3JBdHRyaWJ1
dGU6QCJkYXRhLWV4Y2x1ZGUiIHZhbHVlOkAibm8iXSkuYXV0b3JlbGVhc2UoKSwKLSAgICAgICAg
YWRvcHROUyhbW19XS1RleHRNYW5pcHVsYXRpb25FeGNsdXNpb25SdWxlIGFsbG9jXSBpbml0RXhj
bHVzaW9uOllFUyBmb3JDbGFzczpAImV4Y2x1ZGUiXSkuYXV0b3JlbGVhc2UoKSwKKyAgICAgICAg
YWRvcHROUyhbW19XS1RleHRNYW5pcHVsYXRpb25FeGNsdXNpb25SdWxlIGFsbG9jXSBpbml0RXhj
bHVzaW9uOllFUyBmb3JBdHRyaWJ1dGU6QCJkYXRhLWV4Y2x1ZGUiIHZhbHVlOkAieWVzIl0pLmdl
dCgpLAorICAgICAgICBhZG9wdE5TKFtbX1dLVGV4dE1hbmlwdWxhdGlvbkV4Y2x1c2lvblJ1bGUg
YWxsb2NdIGluaXRFeGNsdXNpb246Tk8gZm9yQXR0cmlidXRlOkAiZGF0YS1leGNsdWRlIiB2YWx1
ZTpAIm5vIl0pLmdldCgpLAorICAgICAgICBhZG9wdE5TKFtbX1dLVGV4dE1hbmlwdWxhdGlvbkV4
Y2x1c2lvblJ1bGUgYWxsb2NdIGluaXRFeGNsdXNpb246WUVTIGZvckNsYXNzOkAiZXhjbHVkZSJd
KS5nZXQoKSwKICAgICBdXTsKIAogICAgIGRvbmUgPSBmYWxzZTsKQEAgLTE5MTksMTEgKzE5MTks
MTEgQEAgVEVTVChUZXh0TWFuaXB1bGF0aW9uLCBDb21wbGV0ZVRleHRNYW5pcHVsYXRpb25TaG91
bGRSZXBsYWNlVGV4dENvbnRlbnRXaXRoTXVsdGkKICAgICBFWFBFQ1RfV0tfU1RSRVEoIlRleHQi
LCBpdGVtc1s1XS50b2tlbnNbMF0uY29udGVudCk7CiAKICAgICBhdXRvIHJlcGxhY2VtZW50SXRl
bXMgPSByZXRhaW5QdHIoQFsKLSAgICAgICAgY3JlYXRlSXRlbShpdGVtc1swXS5pZGVudGlmaWVy
LCB7IHsgaXRlbXNbMF0udG9rZW5zWzBdLmlkZW50aWZpZXIsIEAiUmVwbGFjZW1lbnQiIH0sIHsg
aXRlbXNbMF0udG9rZW5zWzBdLmlkZW50aWZpZXIsIEAidGl0bGUiIH0gfSkuYXV0b3JlbGVhc2Uo
KSwKLSAgICAgICAgY3JlYXRlSXRlbShpdGVtc1sxXS5pZGVudGlmaWVyLCB7IHsgaXRlbXNbMV0u
dG9rZW5zWzBdLmlkZW50aWZpZXIsIEAiUmVwbGFjZW1lbnQiIH0sIHsgaXRlbXNbMV0udG9rZW5z
WzBdLmlkZW50aWZpZXIsIEAib3B0aW9uIiB9IH0pLmF1dG9yZWxlYXNlKCksCi0gICAgICAgIGNy
ZWF0ZUl0ZW0oaXRlbXNbMl0uaWRlbnRpZmllciwgeyB7IGl0ZW1zWzJdLnRva2Vuc1swXS5pZGVu
dGlmaWVyLCBAIkZhaWxlZCByZXBsYWNlbWVudCIgfSwgeyBAIjEyMzQ1IiwgQCJvcHRpb24iIH0g
fSkuYXV0b3JlbGVhc2UoKSwKLSAgICAgICAgY3JlYXRlSXRlbShpdGVtc1szXS5pZGVudGlmaWVy
LCB7IHsgaXRlbXNbM10udG9rZW5zWzBdLmlkZW50aWZpZXIsIEAiUmVwbGFjZW1lbnQiIH0sIHsg
aXRlbXNbM10udG9rZW5zWzBdLmlkZW50aWZpZXIsIEAibGFiZWwiIH0gfSkuYXV0b3JlbGVhc2Uo
KSwKLSAgICAgICAgY3JlYXRlSXRlbShpdGVtc1s0XS5pZGVudGlmaWVyLCB7IHsgaXRlbXNbNF0u
dG9rZW5zWzBdLmlkZW50aWZpZXIsIEAiUmVwbGFjZW1lbnQiIH0sIHsgaXRlbXNbNF0udG9rZW5z
WzBdLmlkZW50aWZpZXIsIEAiaW1hZ2UiIH0gfSkuYXV0b3JlbGVhc2UoKSwKKyAgICAgICAgY3Jl
YXRlSXRlbShpdGVtc1swXS5pZGVudGlmaWVyLCB7IHsgaXRlbXNbMF0udG9rZW5zWzBdLmlkZW50
aWZpZXIsIEAiUmVwbGFjZW1lbnQiIH0sIHsgaXRlbXNbMF0udG9rZW5zWzBdLmlkZW50aWZpZXIs
IEAidGl0bGUiIH0gfSkuZ2V0KCksCisgICAgICAgIGNyZWF0ZUl0ZW0oaXRlbXNbMV0uaWRlbnRp
ZmllciwgeyB7IGl0ZW1zWzFdLnRva2Vuc1swXS5pZGVudGlmaWVyLCBAIlJlcGxhY2VtZW50IiB9
LCB7IGl0ZW1zWzFdLnRva2Vuc1swXS5pZGVudGlmaWVyLCBAIm9wdGlvbiIgfSB9KS5nZXQoKSwK
KyAgICAgICAgY3JlYXRlSXRlbShpdGVtc1syXS5pZGVudGlmaWVyLCB7IHsgaXRlbXNbMl0udG9r
ZW5zWzBdLmlkZW50aWZpZXIsIEAiRmFpbGVkIHJlcGxhY2VtZW50IiB9LCB7IEAiMTIzNDUiLCBA
Im9wdGlvbiIgfSB9KS5nZXQoKSwKKyAgICAgICAgY3JlYXRlSXRlbShpdGVtc1szXS5pZGVudGlm
aWVyLCB7IHsgaXRlbXNbM10udG9rZW5zWzBdLmlkZW50aWZpZXIsIEAiUmVwbGFjZW1lbnQiIH0s
IHsgaXRlbXNbM10udG9rZW5zWzBdLmlkZW50aWZpZXIsIEAibGFiZWwiIH0gfSkuZ2V0KCksCisg
ICAgICAgIGNyZWF0ZUl0ZW0oaXRlbXNbNF0uaWRlbnRpZmllciwgeyB7IGl0ZW1zWzRdLnRva2Vu
c1swXS5pZGVudGlmaWVyLCBAIlJlcGxhY2VtZW50IiB9LCB7IGl0ZW1zWzRdLnRva2Vuc1swXS5p
ZGVudGlmaWVyLCBAImltYWdlIiB9IH0pLmdldCgpLAogICAgIF0pOwogCiAgICAgZG9uZSA9IGZh
bHNlOwpAQCAtMjMzOSw3ICsyMzM5LDcgQEAgVEVTVChUZXh0TWFuaXB1bGF0aW9uLCBDb21wbGV0
ZVRleHRNYW5pcHVsYXRpb25TdWNjZWRzV2hlbkNvbnRlbnRPdXRPZlBhcmFncmFwaEkKIAogICAg
IGRvbmUgPSBmYWxzZTsKICAgICBbd2ViVmlldyBfY29tcGxldGVUZXh0TWFuaXB1bGF0aW9uRm9y
SXRlbXM6QFsKLSAgICAgICAgY3JlYXRlSXRlbShpdGVtc1swXS5pZGVudGlmaWVyLCB7eyBpdGVt
c1swXS50b2tlbnNbMF0uaWRlbnRpZmllciwgQCJIZWxsbyBXb3JsZCIgfX0pLmF1dG9yZWxlYXNl
KCksCisgICAgICAgIGNyZWF0ZUl0ZW0oaXRlbXNbMF0uaWRlbnRpZmllciwge3sgaXRlbXNbMF0u
dG9rZW5zWzBdLmlkZW50aWZpZXIsIEAiSGVsbG8gV29ybGQiIH19KS5nZXQoKSwKICAgICBdIGNv
bXBsZXRpb246XihOU0FycmF5PE5TRXJyb3IgKj4gKmVycm9ycykgewogICAgICAgICBFWFBFQ1Rf
RVEoZXJyb3JzLCBuaWwpOwogICAgICAgICBkb25lID0gdHJ1ZTsKQEAgLTI0MDYsNyArMjQwNiw3
IEBAIFRFU1QoVGV4dE1hbmlwdWxhdGlvbiwgQ29tcGxldGVUZXh0TWFuaXB1bGF0aW9uRmFpbFdo
ZW5FeGNsdXNpb25Jc1Zpb2xhdGVkKQogCiAgICAgUmV0YWluUHRyPF9XS1RleHRNYW5pcHVsYXRp
b25Db25maWd1cmF0aW9uPiBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW19XS1RleHRNYW5pcHVs
YXRpb25Db25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgW2NvbmZpZ3VyYXRpb24gc2V0
RXhjbHVzaW9uUnVsZXM6QFsKLSAgICAgICAgYWRvcHROUyhbW19XS1RleHRNYW5pcHVsYXRpb25F
eGNsdXNpb25SdWxlIGFsbG9jXSBpbml0RXhjbHVzaW9uOihCT09MKVlFUyBmb3JFbGVtZW50OkAi
ZW0iXSkuYXV0b3JlbGVhc2UoKSwKKyAgICAgICAgYWRvcHROUyhbW19XS1RleHRNYW5pcHVsYXRp
b25FeGNsdXNpb25SdWxlIGFsbG9jXSBpbml0RXhjbHVzaW9uOihCT09MKVlFUyBmb3JFbGVtZW50
OkAiZW0iXSkuZ2V0KCksCiAgICAgXV07CiAKICAgICBkb25lID0gZmFsc2U7CkBAIC0yNDUxLDcg
KzI0NTEsNyBAQCBURVNUKFRleHRNYW5pcHVsYXRpb24sIENvbXBsZXRlVGV4dE1hbmlwdWxhdGlv
bkZhaWxXaGVuRXhjbHVkZWRDb250ZW50QXBwZWFyc01vcgogCiAgICAgUmV0YWluUHRyPF9XS1Rl
eHRNYW5pcHVsYXRpb25Db25maWd1cmF0aW9uPiBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW19X
S1RleHRNYW5pcHVsYXRpb25Db25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgW2NvbmZp
Z3VyYXRpb24gc2V0RXhjbHVzaW9uUnVsZXM6QFsKLSAgICAgICAgYWRvcHROUyhbW19XS1RleHRN
YW5pcHVsYXRpb25FeGNsdXNpb25SdWxlIGFsbG9jXSBpbml0RXhjbHVzaW9uOihCT09MKVlFUyBm
b3JFbGVtZW50OkAiZW0iXSkuYXV0b3JlbGVhc2UoKSwKKyAgICAgICAgYWRvcHROUyhbW19XS1Rl
eHRNYW5pcHVsYXRpb25FeGNsdXNpb25SdWxlIGFsbG9jXSBpbml0RXhjbHVzaW9uOihCT09MKVlF
UyBmb3JFbGVtZW50OkAiZW0iXSkuZ2V0KCksCiAgICAgXV07CiAKICAgICBkb25lID0gZmFsc2U7
CkBAIC0yNDk2LDcgKzI0OTYsNyBAQCBURVNUKFRleHRNYW5pcHVsYXRpb24sIENvbXBsZXRlVGV4
dE1hbmlwdWxhdGlvblByZXNlcnZlc0V4Y2x1ZGVkQ29udGVudCkKIAogICAgIFJldGFpblB0cjxf
V0tUZXh0TWFuaXB1bGF0aW9uQ29uZmlndXJhdGlvbj4gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMo
W1tfV0tUZXh0TWFuaXB1bGF0aW9uQ29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIFtj
b25maWd1cmF0aW9uIHNldEV4Y2x1c2lvblJ1bGVzOkBbCi0gICAgICAgIGFkb3B0TlMoW1tfV0tU
ZXh0TWFuaXB1bGF0aW9uRXhjbHVzaW9uUnVsZSBhbGxvY10gaW5pdEV4Y2x1c2lvbjooQk9PTClZ
RVMgZm9yRWxlbWVudDpAImVtIl0pLmF1dG9yZWxlYXNlKCksCisgICAgICAgIGFkb3B0TlMoW1tf
V0tUZXh0TWFuaXB1bGF0aW9uRXhjbHVzaW9uUnVsZSBhbGxvY10gaW5pdEV4Y2x1c2lvbjooQk9P
TClZRVMgZm9yRWxlbWVudDpAImVtIl0pLmdldCgpLAogICAgIF1dOwogCiAgICAgZG9uZSA9IGZh
bHNlOwpAQCAtMjU5NCw4ICsyNTk0LDggQEAgVEVTVChUZXh0TWFuaXB1bGF0aW9uLCBDb21wbGV0
ZVRleHRNYW5pcHVsYXRpb25Db3JyZWN0UGFyYWdyYXBoUmFuZ2UpCiAKICAgICBkb25lID0gZmFs
c2U7CiAgICAgW3dlYlZpZXcgX2NvbXBsZXRlVGV4dE1hbmlwdWxhdGlvbkZvckl0ZW1zOkBbCi0g
ICAgICAgIGNyZWF0ZUl0ZW0oaXRlbXNbMF0uaWRlbnRpZmllciwge3sgaXRlbXNbMF0udG9rZW5z
WzBdLmlkZW50aWZpZXIsIEAiaGVsbG8iIH19KS5hdXRvcmVsZWFzZSgpLAotICAgICAgICBjcmVh
dGVJdGVtKGl0ZW1zWzFdLmlkZW50aWZpZXIsIHt7IGl0ZW1zWzFdLnRva2Vuc1swXS5pZGVudGlm
aWVyLCBAIndvcmxkIiB9fSkuYXV0b3JlbGVhc2UoKQorICAgICAgICBjcmVhdGVJdGVtKGl0ZW1z
WzBdLmlkZW50aWZpZXIsIHt7IGl0ZW1zWzBdLnRva2Vuc1swXS5pZGVudGlmaWVyLCBAImhlbGxv
IiB9fSkuZ2V0KCksCisgICAgICAgIGNyZWF0ZUl0ZW0oaXRlbXNbMV0uaWRlbnRpZmllciwge3sg
aXRlbXNbMV0udG9rZW5zWzBdLmlkZW50aWZpZXIsIEAid29ybGQiIH19KS5nZXQoKQogICAgIF0g
Y29tcGxldGlvbjpeKE5TQXJyYXk8TlNFcnJvciAqPiAqZXJyb3JzKSB7CiAgICAgICAgIEVYUEVD
VF9FUShlcnJvcnMsIG5pbCk7CiAgICAgICAgIGRvbmUgPSB0cnVlOwpAQCAtMjYzMSw3ICsyNjMx
LDcgQEAgVEVTVChUZXh0TWFuaXB1bGF0aW9uLCBDb21wbGV0ZVRleHRNYW5pcHVsYXRpb25DYW5N
ZXJnZUNvbnRlbnRBbmRQcmVzZXJ2ZUxpbmVCcmUKICAgICBFWFBFQ1RfU1RSRVEoIiBcbiIsIGl0
ZW1zWzBdLnRva2Vuc1szXS5jb250ZW50LlVURjhTdHJpbmcpOwogCiAgICAgYXV0byByZXBsYWNl
bWVudEl0ZW1zID0gcmV0YWluUHRyKEBbCi0gICAgICAgIGNyZWF0ZUl0ZW0oaXRlbXNbMF0uaWRl
bnRpZmllciwgeyB7IGl0ZW1zWzBdLnRva2Vuc1swXS5pZGVudGlmaWVyLCBAIk9ORSIgfSwgeyBp
dGVtc1swXS50b2tlbnNbMV0uaWRlbnRpZmllciwgaXRlbXNbMF0udG9rZW5zWzFdLmNvbnRlbnQg
fSwgeyBpdGVtc1swXS50b2tlbnNbMl0uaWRlbnRpZmllciwgQCJUV08iIH0sIHsgaXRlbXNbMF0u
dG9rZW5zWzNdLmlkZW50aWZpZXIsIGl0ZW1zWzBdLnRva2Vuc1szXS5jb250ZW50IH0gfSkuYXV0
b3JlbGVhc2UoKSwKKyAgICAgICAgY3JlYXRlSXRlbShpdGVtc1swXS5pZGVudGlmaWVyLCB7IHsg
aXRlbXNbMF0udG9rZW5zWzBdLmlkZW50aWZpZXIsIEAiT05FIiB9LCB7IGl0ZW1zWzBdLnRva2Vu
c1sxXS5pZGVudGlmaWVyLCBpdGVtc1swXS50b2tlbnNbMV0uY29udGVudCB9LCB7IGl0ZW1zWzBd
LnRva2Vuc1syXS5pZGVudGlmaWVyLCBAIlRXTyIgfSwgeyBpdGVtc1swXS50b2tlbnNbM10uaWRl
bnRpZmllciwgaXRlbXNbMF0udG9rZW5zWzNdLmNvbnRlbnQgfSB9KS5nZXQoKSwKICAgICBdKTsK
IAogICAgIGRvbmUgPSBmYWxzZTsKQEAgLTI3MTIsOCArMjcxMiw4IEBAIFRFU1QoVGV4dE1hbmlw
dWxhdGlvbiwgQ29tcGxldGVUZXh0TWFuaXB1bGF0aW9uU2hvdWxkUHJlc2VydmVOb2Rlc0FmdGVy
UGFyYWdyYXBoCiAgICAgRVhQRUNUX1NUUkVRKCJmcm9tIiwgaXRlbXNbMV0udG9rZW5zWzBdLmNv
bnRlbnQuVVRGOFN0cmluZyk7CiAKICAgICBhdXRvIHJlcGxhY2VtZW50SXRlbXMgPSByZXRhaW5Q
dHIoQFsKLSAgICAgICAgY3JlYXRlSXRlbShpdGVtc1swXS5pZGVudGlmaWVyLCB7IHsgaXRlbXNb
MF0udG9rZW5zWzBdLmlkZW50aWZpZXIsIEAiSGVsbG8iIH0sIHsgaXRlbXNbMF0udG9rZW5zWzFd
LmlkZW50aWZpZXIsIEAiV29ybGQiIH0gfSkuYXV0b3JlbGVhc2UoKSwKLSAgICAgICAgY3JlYXRl
SXRlbShpdGVtc1sxXS5pZGVudGlmaWVyLCB7IHsgaXRlbXNbMV0udG9rZW5zWzBdLmlkZW50aWZp
ZXIsIEAiRnJvbSBXZWJLaXQiIH0gfSkuYXV0b3JlbGVhc2UoKSwKKyAgICAgICAgY3JlYXRlSXRl
bShpdGVtc1swXS5pZGVudGlmaWVyLCB7IHsgaXRlbXNbMF0udG9rZW5zWzBdLmlkZW50aWZpZXIs
IEAiSGVsbG8iIH0sIHsgaXRlbXNbMF0udG9rZW5zWzFdLmlkZW50aWZpZXIsIEAiV29ybGQiIH0g
fSkuZ2V0KCksCisgICAgICAgIGNyZWF0ZUl0ZW0oaXRlbXNbMV0uaWRlbnRpZmllciwgeyB7IGl0
ZW1zWzFdLnRva2Vuc1swXS5pZGVudGlmaWVyLCBAIkZyb20gV2ViS2l0IiB9IH0pLmdldCgpLAog
ICAgIF0pOwogCiAgICAgZG9uZSA9IGZhbHNlOwpAQCAtMjc1MSw3ICsyNzUxLDcgQEAgVEVTVChU
ZXh0TWFuaXB1bGF0aW9uLCBDb21wbGV0ZVRleHRNYW5pcHVsYXRpb25TUHJlc2VydmVOb2Rlc0Jl
Zm9yZVBhcmFncmFwaFJhbmcKICAgICBFWFBFQ1RfU1RSRVEoImZyb20iLCBpdGVtc1swXS50b2tl
bnNbMl0uY29udGVudC5VVEY4U3RyaW5nKTsKIAogICAgIGF1dG8gcmVwbGFjZW1lbnRJdGVtcyA9
IHJldGFpblB0cihAWwotICAgICAgICBjcmVhdGVJdGVtKGl0ZW1zWzBdLmlkZW50aWZpZXIsIHsg
eyBpdGVtc1swXS50b2tlbnNbMF0uaWRlbnRpZmllciwgQCJIZWxsbyIgfSwgeyBpdGVtc1swXS50
b2tlbnNbMV0uaWRlbnRpZmllciwgQCJXb3JsZCIgfSwgeyBpdGVtc1swXS50b2tlbnNbMl0uaWRl
bnRpZmllciwgQCJGcm9tIFdlYktpdCIgfSB9KS5hdXRvcmVsZWFzZSgpCisgICAgICAgIGNyZWF0
ZUl0ZW0oaXRlbXNbMF0uaWRlbnRpZmllciwgeyB7IGl0ZW1zWzBdLnRva2Vuc1swXS5pZGVudGlm
aWVyLCBAIkhlbGxvIiB9LCB7IGl0ZW1zWzBdLnRva2Vuc1sxXS5pZGVudGlmaWVyLCBAIldvcmxk
IiB9LCB7IGl0ZW1zWzBdLnRva2Vuc1syXS5pZGVudGlmaWVyLCBAIkZyb20gV2ViS2l0IiB9IH0p
LmdldCgpCiAgICAgXSk7CiAKICAgICBkb25lID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VJRGVsZWdhdGUubW0gYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VJRGVsZWdhdGUubW0KaW5kZXggOWRkZjE0MDI5
MWViMjdhN2I5MGViZmE5NTgwNzBmNTE2YTJiYjIwZC4uOWVjN2RhMzQ4Mzk0OWI3NmYyNDU1YzU1
NWRiOWNhZmVjZTYyYmQ0MSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9VSURlbGVnYXRlLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvVUlEZWxlZ2F0ZS5tbQpAQCAtNjYsNyArNjYsNyBAQCBAZW5kCiAKIFRFU1Qo
V2ViS2l0LCBXS1dlYlZpZXdJc1BsYXlpbmdBdWRpbykKIHsKLSAgICBhdXRvIHdlYlZpZXcgPSBh
ZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAs
IDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0
aW9uIGFsbG9jXSBpbml0XSkuYXV0b3JlbGVhc2UoKV0pOworICAgIGF1dG8gd2ViVmlldyA9IGFk
b3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwg
MCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246YWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRp
b24gYWxsb2NdIGluaXRdKS5nZXQoKV0pOwogICAgIGF1dG8gb2JzZXJ2ZXIgPSBhZG9wdE5TKFtb
QXVkaW9PYnNlcnZlciBhbGxvY10gaW5pdF0pOwogICAgIFt3ZWJWaWV3IGFkZE9ic2VydmVyOm9i
c2VydmVyLmdldCgpIGZvcktleVBhdGg6QCJfaXNQbGF5aW5nQXVkaW8iIG9wdGlvbnM6TlNLZXlW
YWx1ZU9ic2VydmluZ09wdGlvbk5ldyB8IE5TS2V5VmFsdWVPYnNlcnZpbmdPcHRpb25PbGQgY29u
dGV4dDpuaWxdOwogICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkVGVzdFBhZ2VOYW1lZDpA
ImZpbGUtd2l0aC12aWRlbyJdOwpAQCAtMjI0LDcgKzIyNCw3IEBAIC0gKHZvaWQpX3Nob3dXZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3CiAtICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdl
YlZpZXcgc3RhcnRVUkxTY2hlbWVUYXNrOihpZCA8V0tVUkxTY2hlbWVUYXNrPil1cmxTY2hlbWVU
YXNrCiB7CiAgICAgTlNTdHJpbmcgKmRhdGEgPSBAIjxzY3JpcHQ+d2luZG93Lm9wZW4oJ290aGVy
Lmh0bWwnKTs8L3NjcmlwdD4iOwotICAgIFt1cmxTY2hlbWVUYXNrIGRpZFJlY2VpdmVSZXNwb25z
ZTphZG9wdE5TKFtbTlNVUkxSZXNwb25zZSBhbGxvY10gaW5pdFdpdGhVUkw6dXJsU2NoZW1lVGFz
ay5yZXF1ZXN0LlVSTCBNSU1FVHlwZTpAInRleHQvaHRtbCIgZXhwZWN0ZWRDb250ZW50TGVuZ3Ro
OmRhdGEubGVuZ3RoIHRleHRFbmNvZGluZ05hbWU6bmlsXSkuYXV0b3JlbGVhc2UoKV07CisgICAg
W3VybFNjaGVtZVRhc2sgZGlkUmVjZWl2ZVJlc3BvbnNlOmFkb3B0TlMoW1tOU1VSTFJlc3BvbnNl
IGFsbG9jXSBpbml0V2l0aFVSTDp1cmxTY2hlbWVUYXNrLnJlcXVlc3QuVVJMIE1JTUVUeXBlOkAi
dGV4dC9odG1sIiBleHBlY3RlZENvbnRlbnRMZW5ndGg6ZGF0YS5sZW5ndGggdGV4dEVuY29kaW5n
TmFtZTpuaWxdKS5nZXQoKV07CiAgICAgW3VybFNjaGVtZVRhc2sgZGlkUmVjZWl2ZURhdGE6W2Rh
dGEgZGF0YVVzaW5nRW5jb2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2RpbmddXTsKICAgICBbdXJsU2No
ZW1lVGFzayBkaWRGaW5pc2hdOwogfQpAQCAtNTEzLDExICs1MTMsMTMgQEAgVEVTVChXZWJLaXQs
IE5vdGlmaWNhdGlvblBlcm1pc3Npb24pCiB7CiAgICAgTlNTdHJpbmcgKmh0bWwgPSBAIjxzY3Jp
cHQ+Tm90aWZpY2F0aW9uLnJlcXVlc3RQZXJtaXNzaW9uKGZ1bmN0aW9uKHApe2FsZXJ0KCdwZXJt
aXNzaW9uICcrcCl9KTwvc2NyaXB0PiI7CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dL
V2ViVmlldyBhbGxvY10gaW5pdF0pOwotICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6YWRvcHRO
UyhbW05vdGlmaWNhdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0V2l0aEFsbG93Tm90aWZpY2F0aW9u
czpZRVNdKS5hdXRvcmVsZWFzZSgpXTsKKyAgICBhdXRvIHVpRGVsZWdhdGUgPSBhZG9wdE5TKFtb
Tm90aWZpY2F0aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRXaXRoQWxsb3dOb3RpZmljYXRpb25zOllF
U10pOworICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6dWlEZWxlZ2F0ZS5nZXQoKV07CiAgICAg
W3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6aHRtbCBiYXNlVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5n
OkAiaHR0cHM6Ly9leGFtcGxlLm9yZyJdXTsKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JmRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKLSAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOmFk
b3B0TlMoW1tOb3RpZmljYXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdFdpdGhBbGxvd05vdGlmaWNh
dGlvbnM6Tk9dKS5hdXRvcmVsZWFzZSgpXTsKKyAgICB1aURlbGVnYXRlID0gYWRvcHROUyhbW05v
dGlmaWNhdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0V2l0aEFsbG93Tm90aWZpY2F0aW9uczpOT10p
OworICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6dWlEZWxlZ2F0ZS5nZXQoKV07CiAgICAgW3dl
YlZpZXcgbG9hZEhUTUxTdHJpbmc6aHRtbCBiYXNlVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAi
aHR0cHM6Ly9leGFtcGxlLmNvbSJdXTsKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRv
bmUpOwogfQpAQCAtNTc2LDcgKzU3OCw3IEBAIEBlbmQKIAogVEVTVChXZWJLaXQsIFRvb2xiYXJW
aXNpYmxlKQogewotICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFs
bG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRp
b246YWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKS5hdXRvcmVs
ZWFzZSgpXSk7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxs
b2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlv
bjphZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pLmdldCgpXSk7
CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUb29sYmFyRGVsZWdhdGUgYWxsb2NdIGlu
aXRdKTsKICAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKICAgICBb
d2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8c2NyaXB0PmFsZXJ0KCd2aXNp
YmxlOicgKyB3aW5kb3cudG9vbGJhci52aXNpYmxlKTthbGVydCgndmlzaWJsZTonICsgd2luZG93
LnRvb2xiYXIudmlzaWJsZSk8L3NjcmlwdD4iXTsKQEAgLTYwNCw3ICs2MDYsOCBAQCBURVNUKFdl
YktpdCwgTW91c2VNb3ZlT3ZlckVsZW1lbnQpCiB7CiAgICAgV0tXZWJWaWV3Q29uZmlndXJhdGlv
biAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3Vy
YXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIkZyYW1lSGFuZGxlU2VyaWFsaXphdGlvbiJd
OwogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0
V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmln
dXJhdGlvbl0pOwotICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6YWRvcHROUyhbW01vdXNlTW92
ZU92ZXJFbGVtZW50RGVsZWdhdGUgYWxsb2NdIGluaXRdKS5hdXRvcmVsZWFzZSgpXTsKKyAgICBh
dXRvIHVpRGVsZWdhdGUgPSBhZG9wdE5TKFtbTW91c2VNb3ZlT3ZlckVsZW1lbnREZWxlZ2F0ZSBh
bGxvY10gaW5pdF0pOworICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6dWlEZWxlZ2F0ZS5nZXQo
KV07CiAgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiPGEgaHJlZj0n
aHR0cDovL2V4YW1wbGUuY29tL3BhdGgnIHRpdGxlPSdsaW5rIHRpdGxlJz5saW5rIGxhYmVsPC9h
PiJdOwogICAgIFt3ZWJWaWV3IG1vdXNlTW92ZVRvUG9pbnQ6TlNNYWtlUG9pbnQoMjAsIDYwMCAt
IDIwKSB3aXRoRmxhZ3M6TlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0XTsKICAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJmRvbmUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9Vc2VyQ29udGVudENvbnRyb2xsZXIubW0gYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VzZXJDb250ZW50Q29udHJvbGxlci5tbQppbmRleCBi
YjAyNDMxYjkyZWE5MWRmYjI3OTAzNzQyYmViZTQwNTQ2YmMzYTM5Li5hNTlkYzRmNmEzYzk5Mjdj
ZDU4Y2NhZjBmMjg4MjU4OTU1NWU4Mzk2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1VzZXJDb250ZW50Q29udHJvbGxlci5tbQorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VzZXJDb250ZW50Q29udHJvbGxlci5tbQpA
QCAtMjM4LDcgKzIzOCw3IEBAIHN0YXRpYyBSZXRhaW5QdHI8V0tXZWJWaWV3PiB3ZWJWaWV3Rm9y
U2NyaXB0TWVzc2FnZUhhbmRsZXJNdWx0aXBsZUhhbmRsZXJSZW1vdmFsCiAKICAgICBSZXRhaW5Q
dHI8U2NyaXB0TWVzc2FnZUhhbmRsZXI+IGhhbmRsZXIgPSBhZG9wdE5TKFtbU2NyaXB0TWVzc2Fn
ZUhhbmRsZXIgYWxsb2NdIGluaXRdKTsKICAgICBSZXRhaW5QdHI8V0tXZWJWaWV3Q29uZmlndXJh
dGlvbj4gY29uZmlndXJhdGlvbkNvcHkgPSBhZG9wdE5TKFtjb25maWd1cmF0aW9uIGNvcHldKTsK
LSAgICBbY29uZmlndXJhdGlvbkNvcHkgc2V0VXNlckNvbnRlbnRDb250cm9sbGVyOmFkb3B0TlMo
W1tXS1VzZXJDb250ZW50Q29udHJvbGxlciBhbGxvY10gaW5pdF0pLmF1dG9yZWxlYXNlKCldOwor
ICAgIFtjb25maWd1cmF0aW9uQ29weSBzZXRVc2VyQ29udGVudENvbnRyb2xsZXI6YWRvcHROUyhb
W1dLVXNlckNvbnRlbnRDb250cm9sbGVyIGFsbG9jXSBpbml0XSkuZ2V0KCldOwogICAgIFtbY29u
ZmlndXJhdGlvbkNvcHkgdXNlckNvbnRlbnRDb250cm9sbGVyXSBhZGRTY3JpcHRNZXNzYWdlSGFu
ZGxlcjpoYW5kbGVyLmdldCgpIG5hbWU6QCJoYW5kbGVyVG9SZW1vdmUiXTsKICAgICBbW2NvbmZp
Z3VyYXRpb25Db3B5IHVzZXJDb250ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVzc2FnZUhhbmRs
ZXI6aGFuZGxlci5nZXQoKSBuYW1lOkAiaGFuZGxlclRvUG9zdCJdOwogICAgIFJldGFpblB0cjxX
S1dlYlZpZXc+IHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZy
YW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlv
bkNvcHkuZ2V0KCldKTsKQEAgLTI1Niw3ICsyNTYsNyBAQCBURVNUKFdLVXNlckNvbnRlbnRDb250
cm9sbGVyLCBTY3JpcHRNZXNzYWdlSGFuZGxlck11bHRpcGxlSGFuZGxlclJlbW92YWwpCiAKICAg
ICBSZXRhaW5QdHI8V0tXZWJWaWV3Q29uZmlndXJhdGlvbj4gY29uZmlndXJhdGlvbiA9IGFkb3B0
TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgUmV0YWluUHRy
PF9XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbj4gcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uID0g
YWRvcHROUyhbW19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwotICAg
IFtjb25maWd1cmF0aW9uIHNldFByb2Nlc3NQb29sOmFkb3B0TlMoW1tXS1Byb2Nlc3NQb29sIGFs
bG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOnByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5nZXQo
KV0pLmF1dG9yZWxlYXNlKCldOworICAgIFtjb25maWd1cmF0aW9uIHNldFByb2Nlc3NQb29sOmFk
b3B0TlMoW1tXS1Byb2Nlc3NQb29sIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOnByb2Nl
c3NQb29sQ29uZmlndXJhdGlvbi5nZXQoKV0pLmdldCgpXTsKIAogICAgIFJldGFpblB0cjxXS1dl
YlZpZXc+IHdlYlZpZXcgPSB3ZWJWaWV3Rm9yU2NyaXB0TWVzc2FnZUhhbmRsZXJNdWx0aXBsZUhh
bmRsZXJSZW1vdmFsVGVzdChjb25maWd1cmF0aW9uLmdldCgpKTsKICAgICBSZXRhaW5QdHI8V0tX
ZWJWaWV3PiB3ZWJWaWV3MiA9IHdlYlZpZXdGb3JTY3JpcHRNZXNzYWdlSGFuZGxlck11bHRpcGxl
SGFuZGxlclJlbW92YWxUZXN0KGNvbmZpZ3VyYXRpb24uZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0F0dGFjaG1lbnRUZXN0cy5tbSBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tBdHRhY2htZW50VGVzdHMu
bW0KaW5kZXggNjY2YzdlZGE1MzcxMDEwZjIyYjUyYTc3MmUwMWUzOWUwOWUwZjA4NC4uNzBlMTBm
ZmUxOTgyMGRjNmYzOGZjNTdlNGUzNThhY2I3YzZmYWNmYiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0F0dGFjaG1lbnRUZXN0cy5tbQorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLQXR0YWNobWVudFRlc3RzLm1t
CkBAIC0yMDgyLDcgKzIwODIsNyBAQCBURVNUKFdLQXR0YWNobWVudFRlc3RzSU9TLCBJbnNlcnRE
cm9wcGVkQ29udGFjdEFzQXR0YWNobWVudCkKIAogVEVTVChXS0F0dGFjaG1lbnRUZXN0c0lPUywg
SW5zZXJ0UGFzdGVkQ29udGFjdEFzQXR0YWNobWVudCkKIHsKLSAgICBVSVBhc3RlYm9hcmQuZ2Vu
ZXJhbFBhc3RlYm9hcmQuaXRlbVByb3ZpZGVycyA9IEBbIGNvbnRhY3RJdGVtRm9yVGVzdGluZygp
LmF1dG9yZWxlYXNlKCkgXTsKKyAgICBVSVBhc3RlYm9hcmQuZ2VuZXJhbFBhc3RlYm9hcmQuaXRl
bVByb3ZpZGVycyA9IEBbIGNvbnRhY3RJdGVtRm9yVGVzdGluZygpLmdldCgpIF07CiAgICAgYXV0
byB3ZWJWaWV3ID0gd2ViVmlld0ZvclRlc3RpbmdBdHRhY2htZW50cygpOwogICAgIE9ic2VydmVB
dHRhY2htZW50VXBkYXRlc0ZvclNjb3BlIG9ic2VydmVyKHdlYlZpZXcuZ2V0KCkpOwogICAgIFt3
ZWJWaWV3IHBhc3RlOm5pbF07CkBAIC0yMDk5LDcgKzIwOTksNyBAQCBURVNUKFdLQXR0YWNobWVu
dFRlc3RzSU9TLCBJbnNlcnRQYXN0ZWRDb250YWN0QXNBdHRhY2htZW50KQogVEVTVChXS0F0dGFj
aG1lbnRUZXN0c0lPUywgSW5zZXJ0UGFzdGVkTWFwSXRlbUFzQXR0YWNobWVudCkKIHsKICAgICBV
SUFwcGxpY2F0aW9uSW5pdGlhbGl6ZSgpOwotICAgIFVJUGFzdGVib2FyZC5nZW5lcmFsUGFzdGVi
b2FyZC5pdGVtUHJvdmlkZXJzID0gQFsgbWFwSXRlbUZvclRlc3RpbmcoKS5hdXRvcmVsZWFzZSgp
IF07CisgICAgVUlQYXN0ZWJvYXJkLmdlbmVyYWxQYXN0ZWJvYXJkLml0ZW1Qcm92aWRlcnMgPSBA
WyBtYXBJdGVtRm9yVGVzdGluZygpLmdldCgpIF07CiAgICAgYXV0byB3ZWJWaWV3ID0gd2ViVmll
d0ZvclRlc3RpbmdBdHRhY2htZW50cygpOwogICAgIE9ic2VydmVBdHRhY2htZW50VXBkYXRlc0Zv
clNjb3BlIG9ic2VydmVyKHdlYlZpZXcuZ2V0KCkpOwogICAgIFt3ZWJWaWV3IHBhc3RlOm5pbF07
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLUERG
Vmlldy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tQREZWaWV3
Lm1tCmluZGV4IGI4ZjNmMjIyMWZjMjQyY2ZjY2JjNDU4N2E1ZDcyOGVkNmY0NmYwNDkuLmU3MmU2
MGY3NDNiMWIzZGM0ZDNjZjJkYTFjZDE1YmYwNTEwODJmYjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tQREZWaWV3Lm1tCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tQREZWaWV3Lm1tCkBAIC0xNjEsNyArMTYx
LDcgQEAgc3RhdGljIHZvaWQgY2hlY2tGcmFtZShOU1JlY3QgZnJhbWUsIENHRmxvYXQgeCwgQ0dG
bG9hdCB5LCBDR0Zsb2F0IHdpZHRoLCBDR0Zsb2EKIAogVEVTVChQREZIVUQsIE1haW5SZXNvdXJj
ZVBERikKIHsKLSAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxv
Y10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9u
OmFkb3B0TlMoW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gbmV3XSkuYXV0b3JlbGVhc2UoKV0pOwor
ICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0
aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246YWRvcHROUyhb
V0tXZWJWaWV3Q29uZmlndXJhdGlvbiBuZXddKS5nZXQoKV0pOwogICAgIFt3ZWJWaWV3IGxvYWRE
YXRhOnBkZkRhdGEoKSBNSU1FVHlwZTpAImFwcGxpY2F0aW9uL3BkZiIgY2hhcmFjdGVyRW5jb2Rp
bmdOYW1lOkAiIiBiYXNlVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiaHR0cHM6Ly93d3cuYXBw
bGUuY29tL3Rlc3RQYXRoIl1dOwogICAgIEVYUEVDVF9FUShbd2ViVmlldyBfcGRmSFVEc10uY291
bnQsIDB1KTsKICAgICBbd2ViVmlldyBfdGVzdF93YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbl07
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLVVJM
U2NoZW1lSGFuZGxlci0xLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9XS1VSTFNjaGVtZUhhbmRsZXItMS5tbQppbmRleCA2YjBmYTUxM2VlZmVlYTUxN2I3MzVjMjBj
ZDNlNWYzNTUzMTdiNjMxLi41YzliMzAxMjA2YjA1OTFkZTY3ZDIyZTBiOGQ3ODJkN2RiZmYyNzJi
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLVVJM
U2NoZW1lSGFuZGxlci0xLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvV0tVUkxTY2hlbWVIYW5kbGVyLTEubW0KQEAgLTU3OSw3ICs1NzksNyBAQCAtICh2b2lk
KXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgc3RhcnRVUkxTY2hlbWVUYXNrOihpZCA8V0tV
UkxTY2hlbWVUYXNrPil0YQogICAgICAgICBbdGFzayBkaWRGaW5pc2hdOwogICAgIH0gZWxzZSB7
CiAgICAgICAgIEVYUEVDVF9TVFJFUSh0YXNrLnJlcXVlc3QuVVJMLmFic29sdXRlU3RyaW5nLlVU
RjhTdHJpbmcsICJzeW5jZXJyb3I6Ly8vc3VicmVzb3VyY2UiKTsKLSAgICAgICAgW3Rhc2sgZGlk
UmVjZWl2ZVJlc3BvbnNlOmFkb3B0TlMoW1tOU1VSTFJlc3BvbnNlIGFsbG9jXSBpbml0XSkuYXV0
b3JlbGVhc2UoKV07CisgICAgICAgIFt0YXNrIGRpZFJlY2VpdmVSZXNwb25zZTphZG9wdE5TKFtb
TlNVUkxSZXNwb25zZSBhbGxvY10gaW5pdF0pLmdldCgpXTsKICAgICAgICAgW3Rhc2sgZGlkRmFp
bFdpdGhFcnJvcjpbTlNFcnJvciBlcnJvcldpdGhEb21haW46QCJUZXN0RXJyb3JEb21haW4iIGNv
ZGU6MTIzIHVzZXJJbmZvOm5pbF1dOwogICAgIH0KIH0KQEAgLTgwMCw3ICs4MDAsNyBAQCBURVNU
KFVSTFNjaGVtZUhhbmRsZXIsIENPUlMpCiAgICAgICAgICAgICAgICAgICAgIEAiQWNjZXNzLUNv
bnRyb2wtQWxsb3ctT3JpZ2luIjogQCIqIiwKICAgICAgICAgICAgICAgICAgICAgQCJDb250ZW50
LUxlbmd0aCI6IEAiMiIsCiAgICAgICAgICAgICAgICAgICAgIEAiQ29udGVudC1UeXBlIjpAInRl
eHQvaHRtbCIKLSAgICAgICAgICAgICAgICB9XSkuYXV0b3JlbGVhc2UoKV07CisgICAgICAgICAg
ICAgICAgfV0pLmdldCgpXTsKICAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgIFt0
YXNrIGRpZFJlY2VpdmVSZXNwb25zZTphZG9wdE5TKFtbTlNVUkxSZXNwb25zZSBhbGxvY10gaW5p
dFdpdGhVUkw6dGFzay5yZXF1ZXN0LlVSTCBNSU1FVHlwZTpAInRleHQvaHRtbCIgZXhwZWN0ZWRD
b250ZW50TGVuZ3RoOjAgdGV4dEVuY29kaW5nTmFtZTpuaWxdKS5nZXQoKV07CiAgICAgICAgICAg
ICBbdGFzayBkaWRSZWNlaXZlRGF0YTpbQCJISSIgZGF0YVVzaW5nRW5jb2Rpbmc6TlNVVEY4U3Ry
aW5nRW5jb2RpbmddXTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvV0tXZWJWaWV3RXZhbHVhdGVKYXZhU2NyaXB0Lm1tIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdFdmFsdWF0ZUphdmFTY3JpcHQubW0KaW5k
ZXggNTVjNTAwNmZmODdhYTkwMTBhYWU1ODVjNzdjOTcyYzMzMzExMzdkZS4uMTAzMDUxNTdlNTIz
MmUxZjQ5NjAzMmI1ZjhlMDI3YWZmZjYwNjRlZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdFdmFsdWF0ZUphdmFTY3JpcHQubW0KKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdFdmFsdWF0
ZUphdmFTY3JpcHQubW0KQEAgLTUxMSw3ICs1MTEsNyBAQCBURVNUKEV2YWx1YXRlSmF2YVNjcmlw
dCwgSmF2YVNjcmlwdEluRnJhbWVzRnJvbVBvc3RNZXNzYWdlKQogICAgIFtoYW5kbGVyIHNldFN0
YXJ0VVJMU2NoZW1lVGFza0hhbmRsZXI6WyZdKFdLV2ViVmlldyAqLCBpZDxXS1VSTFNjaGVtZVRh
c2s+IHRhc2spIHsKICAgICAgICAgaWYgKFt0YXNrLnJlcXVlc3QuVVJMLmFic29sdXRlU3RyaW5n
IGlzRXF1YWxUb1N0cmluZzpAImZyYW1lc3Rlc3Q6Ly90ZXN0L2luZGV4Lmh0bWwiXSkgewogICAg
ICAgICAgICAgTlNEYXRhICpkYXRhID0gW1tOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiJXMi
LCBmcmFtZXNNYWluUmVzb3VyY2VdIGRhdGFVc2luZ0VuY29kaW5nOk5TVVRGOFN0cmluZ0VuY29k
aW5nXTsKLSAgICAgICAgICAgIFt0YXNrIGRpZFJlY2VpdmVSZXNwb25zZTphZG9wdE5TKFtbTlNV
UkxSZXNwb25zZSBhbGxvY10gaW5pdFdpdGhVUkw6dGFzay5yZXF1ZXN0LlVSTCBNSU1FVHlwZTpA
InRleHQvaHRtbCIgZXhwZWN0ZWRDb250ZW50TGVuZ3RoOmRhdGEubGVuZ3RoIHRleHRFbmNvZGlu
Z05hbWU6bmlsXSkuYXV0b3JlbGVhc2UoKV07CisgICAgICAgICAgICBbdGFzayBkaWRSZWNlaXZl
UmVzcG9uc2U6YWRvcHROUyhbW05TVVJMUmVzcG9uc2UgYWxsb2NdIGluaXRXaXRoVVJMOnRhc2su
cmVxdWVzdC5VUkwgTUlNRVR5cGU6QCJ0ZXh0L2h0bWwiIGV4cGVjdGVkQ29udGVudExlbmd0aDpk
YXRhLmxlbmd0aCB0ZXh0RW5jb2RpbmdOYW1lOm5pbF0pLmdldCgpXTsKICAgICAgICAgICAgIFt0
YXNrIGRpZFJlY2VpdmVEYXRhOmRhdGFdOwogICAgICAgICAgICAgW3Rhc2sgZGlkRmluaXNoXTsK
ICAgICAgICAgfSBlbHNlIGlmIChbdGFzay5yZXF1ZXN0LlVSTC5hYnNvbHV0ZVN0cmluZyBpc0Vx
dWFsVG9TdHJpbmc6QCJvdGhlcnByb3RvY29sOi8vdGVzdC9pbmRleC5odG1sIl0pIHsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL0RyYWdBbmREcm9wVGVzdHNJT1Mu
bW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9EcmFnQW5kRHJvcFRlc3RzSU9TLm1t
CmluZGV4IGJiY2YwYTkxN2E5ZTI0ZGIzZTczYTRmODc2NDcyMjljYjA4ZDY5N2YuLjVlNjczNjEx
MDMzZjExYzZhMjg1NGIyZTIyYmY4YWRjOTk4NGQyNjIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvaW9zL0RyYWdBbmREcm9wVGVzdHNJT1MubW0KKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9pb3MvRHJhZ0FuZERyb3BUZXN0c0lPUy5tbQpAQCAtMTExMyw3ICsx
MTEzLDcgQEAgVEVTVChEcmFnQW5kRHJvcFRlc3RzLCBFeHRlcm5hbFNvdXJjZU1hcEl0ZW1JbnRv
RWRpdGFibGVBcmVhcykKICAgICBbd2ViVmlldyBfc3luY2hyb25vdXNseUV4ZWN1dGVFZGl0Q29t
bWFuZDpAIkRlbGV0ZSIgYXJndW1lbnQ6bmlsXTsKIAogICAgIGF1dG8gc2ltdWxhdG9yID0gYWRv
cHROUyhbW0RyYWdBbmREcm9wU2ltdWxhdG9yIGFsbG9jXSBpbml0V2l0aFdlYlZpZXc6d2ViVmll
dy5nZXQoKV0pOwotICAgIFtzaW11bGF0b3Igc2V0RXh0ZXJuYWxJdGVtUHJvdmlkZXJzOkBbIGNy
ZWF0ZU1hcEl0ZW1Gb3JUZXN0aW5nKCkuYXV0b3JlbGVhc2UoKSBdXTsKKyAgICBbc2ltdWxhdG9y
IHNldEV4dGVybmFsSXRlbVByb3ZpZGVyczpAWyBjcmVhdGVNYXBJdGVtRm9yVGVzdGluZygpLmdl
dCgpIF1dOwogICAgIFtzaW11bGF0b3IgcnVuRnJvbTpDR1BvaW50TWFrZSgwLCAwKSB0bzpDR1Bv
aW50TWFrZSgxMDAsIDEwMCldOwogICAgIEVYUEVDVF9XS19TVFJFUSgiQXBwbGUgUGFyayIsIFt3
ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1bWVudC5xdWVyeVNlbGVj
dG9yKCdkaXZbY29udGVudGVkaXRhYmxlXScpLnRleHRDb250ZW50Il0pOwogICAgIE5TVVJMICpm
aXJzdFVSTCA9IFtOU1VSTCBVUkxXaXRoU3RyaW5nOlt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGlu
Z0phdmFTY3JpcHQ6QCJkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdhJykuaHJlZiJdXTsKQEAgLTEx
MzEsNyArMTEzMSw3IEBAIFRFU1QoRHJhZ0FuZERyb3BUZXN0cywgRXh0ZXJuYWxTb3VyY2VDb250
YWN0SW50b0VkaXRhYmxlQXJlYXMpCiAgICAgW3dlYlZpZXcgX3N5bmNocm9ub3VzbHlFeGVjdXRl
RWRpdENvbW1hbmQ6QCJEZWxldGUiIGFyZ3VtZW50Om5pbF07CiAKICAgICBhdXRvIHNpbXVsYXRv
ciA9IGFkb3B0TlMoW1tEcmFnQW5kRHJvcFNpbXVsYXRvciBhbGxvY10gaW5pdFdpdGhXZWJWaWV3
OndlYlZpZXcuZ2V0KCldKTsKLSAgICBbc2ltdWxhdG9yIHNldEV4dGVybmFsSXRlbVByb3ZpZGVy
czpAWyBjcmVhdGVDb250YWN0SXRlbUZvclRlc3RpbmcoKS5hdXRvcmVsZWFzZSgpIF1dOworICAg
IFtzaW11bGF0b3Igc2V0RXh0ZXJuYWxJdGVtUHJvdmlkZXJzOkBbIGNyZWF0ZUNvbnRhY3RJdGVt
Rm9yVGVzdGluZygpLmdldCgpIF1dOwogICAgIFtzaW11bGF0b3IgcnVuRnJvbTpDR1BvaW50TWFr
ZSgwLCAwKSB0bzpDR1BvaW50TWFrZSgxMDAsIDEwMCldOwogICAgIEVYUEVDVF9XS19TVFJFUSgi
IiwgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3IoJ2Rpdltjb250ZW50ZWRpdGFibGVdJykudGV4dENvbnRlbnQiXSk7CiAKQEAgLTEx
NDUsNyArMTE0NSw3IEBAIFRFU1QoRHJhZ0FuZERyb3BUZXN0cywgRXh0ZXJuYWxTb3VyY2VNYXBJ
dGVtQW5kQ29udGFjdFRvVXBsb2FkQXJlYSkKICAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9h
ZFRlc3RQYWdlTmFtZWQ6QCJmaWxlLXVwbG9hZGluZyJdOwogCiAgICAgYXV0byBzaW11bGF0b3Ig
PSBhZG9wdE5TKFtbRHJhZ0FuZERyb3BTaW11bGF0b3IgYWxsb2NdIGluaXRXaXRoV2ViVmlldzp3
ZWJWaWV3LmdldCgpXSk7Ci0gICAgW3NpbXVsYXRvciBzZXRFeHRlcm5hbEl0ZW1Qcm92aWRlcnM6
QFsgY3JlYXRlTWFwSXRlbUZvclRlc3RpbmcoKS5hdXRvcmVsZWFzZSgpLCBjcmVhdGVDb250YWN0
SXRlbUZvclRlc3RpbmcoKS5hdXRvcmVsZWFzZSgpIF1dOworICAgIFtzaW11bGF0b3Igc2V0RXh0
ZXJuYWxJdGVtUHJvdmlkZXJzOkBbIGNyZWF0ZU1hcEl0ZW1Gb3JUZXN0aW5nKCkuZ2V0KCksIGNy
ZWF0ZUNvbnRhY3RJdGVtRm9yVGVzdGluZygpLmdldCgpIF1dOwogICAgIFtzaW11bGF0b3IgcnVu
RnJvbTpDR1BvaW50TWFrZSgyMDAsIDEwMCkgdG86Q0dQb2ludE1ha2UoMTAwLCAzMDApXTsKIAog
ICAgIEVYUEVDVF9XS19TVFJFUSgidGV4dC92Y2FyZCwgdGV4dC92Y2FyZCIsIFt3ZWJWaWV3IHN0
cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJvdXRwdXQudmFsdWUiXSk7CmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Dcm9zc1BhcnRpdGlvbkZpbGVTY2hlbWVB
Y2Nlc3MubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Dcm9zc1BhcnRpdGlvbkZp
bGVTY2hlbWVBY2Nlc3MubW0KaW5kZXggMzJhOWIyZDc3MzI3MzY0YzA5NzYxZGY2ZWIxOTczYzQ4
Mjg4OWU3MS4uOTA2ZWRmMDg1ODYxN2I0ZTAwNTE1OWNkOGIzZWYxYTk5MDc3YWUwZiAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQ3Jvc3NQYXJ0aXRpb25GaWxlU2No
ZW1lQWNjZXNzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0Nyb3NzUGFy
dGl0aW9uRmlsZVNjaGVtZUFjY2Vzcy5tbQpAQCAtOTksOCArOTksOCBAQCBURVNUKFdlYktpdExl
Z2FjeSwgQ3Jvc3NQYXJ0aXRpb25GaWxlU2NoZW1lQWNjZXNzKQogICAgIFJldGFpblB0cjxXS1dl
YlZpZXdDb25maWd1cmF0aW9uPiBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0Nv
bmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBSZXRhaW5QdHI8V0tXZWJWaWV3PiB3ZWJW
aWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0
KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKICAg
ICAKLSAgICBDcm9zc1BhcnRpdGlvbkZpbGVTY2hlbWVBY2Nlc3NOYXZpZ2F0aW9uRGVsZWdhdGUg
KmRlbGVnYXRlID0gW1tDcm9zc1BhcnRpdGlvbkZpbGVTY2hlbWVBY2Nlc3NOYXZpZ2F0aW9uRGVs
ZWdhdGUgYWxsb2NdIGluaXRdOwotICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpk
ZWxlZ2F0ZV07CisgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tDcm9zc1BhcnRpdGlvbkZp
bGVTY2hlbWVBY2Nlc3NOYXZpZ2F0aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAgICBbd2Vi
VmlldyBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwogICAgIAogICAgIE5T
VVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6dXJsXTsK
ICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvbWFjL0ZvbnRNYW5hZ2VyVGVzdHMubW0gYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL21hYy9Gb250TWFuYWdlclRlc3RzLm1tCmluZGV4IGJjY2Q5ZmJlOTIyYmNh
Mzg4YzU4YjAzY2MyOWQyMTNhYTUwNzZhZmYuLmVhMzlkYjhmZDY1MThkNmIwMTY2ZTc2OTMzMjg3
YTJkODhlODBlNWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0Zv
bnRNYW5hZ2VyVGVzdHMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRm9u
dE1hbmFnZXJUZXN0cy5tbQpAQCAtMTIzLDIyICsxMjMsMjIgQEAgVEVTVChGb250TWFuYWdlclRl
c3RzLCBUb2dnbGVCb2xkQW5kSXRhbGljV2l0aE1lbnVJdGVtcykKIAogICAgIFt3ZWJWaWV3IHNl
bGVjdFdvcmQ6bmlsXTsKICAgICBbd2ViVmlldyB3YWl0Rm9yTmV4dFByZXNlbnRhdGlvblVwZGF0
ZV07Ci0gICAgW2ZvbnRNYW5hZ2VyIGFkZEZvbnRUcmFpdDptZW51SXRlbUNlbGxGb3JGb250QWN0
aW9uKE5TQm9sZEZvbnRNYXNrKS5hdXRvcmVsZWFzZSgpXTsKKyAgICBbZm9udE1hbmFnZXIgYWRk
Rm9udFRyYWl0Om1lbnVJdGVtQ2VsbEZvckZvbnRBY3Rpb24oTlNCb2xkRm9udE1hc2spLmdldCgp
XTsKICAgICBFWFBFQ1RfV0tfU1RSRVEoImJvbGQiLCBbd2ViVmlldyBzdHlsZVByb3BlcnR5QXRT
ZWxlY3Rpb25TdGFydDpAImZvbnQtd2VpZ2h0Il0pOwogICAgIEVYUEVDVF9XS19TVFJFUSgiYm9s
ZCIsIFt3ZWJWaWV3IHN0eWxlUHJvcGVydHlBdFNlbGVjdGlvbkVuZDpAImZvbnQtd2VpZ2h0Il0p
OwogICAgIEVYUEVDVF9XS19TVFJFUSgiVGltZXMtQm9sZCIsIFtmb250TWFuYWdlciBzZWxlY3Rl
ZEZvbnRdLmZvbnROYW1lKTsKIAotICAgIFtmb250TWFuYWdlciBhZGRGb250VHJhaXQ6bWVudUl0
ZW1DZWxsRm9yRm9udEFjdGlvbihOU1VuYm9sZEZvbnRNYXNrKS5hdXRvcmVsZWFzZSgpXTsKKyAg
ICBbZm9udE1hbmFnZXIgYWRkRm9udFRyYWl0Om1lbnVJdGVtQ2VsbEZvckZvbnRBY3Rpb24oTlNV
bmJvbGRGb250TWFzaykuZ2V0KCldOwogICAgIEVYUEVDVF9XS19TVFJFUSgibm9ybWFsIiwgW3dl
YlZpZXcgc3R5bGVQcm9wZXJ0eUF0U2VsZWN0aW9uU3RhcnQ6QCJmb250LXdlaWdodCJdKTsKICAg
ICBFWFBFQ1RfV0tfU1RSRVEoIm5vcm1hbCIsIFt3ZWJWaWV3IHN0eWxlUHJvcGVydHlBdFNlbGVj
dGlvbkVuZDpAImZvbnQtd2VpZ2h0Il0pOwogICAgIEVYUEVDVF9XS19TVFJFUSgiVGltZXMtUm9t
YW4iLCBbZm9udE1hbmFnZXIgc2VsZWN0ZWRGb250XS5mb250TmFtZSk7CiAKLSAgICBbZm9udE1h
bmFnZXIgYWRkRm9udFRyYWl0Om1lbnVJdGVtQ2VsbEZvckZvbnRBY3Rpb24oTlNJdGFsaWNGb250
TWFzaykuYXV0b3JlbGVhc2UoKV07CisgICAgW2ZvbnRNYW5hZ2VyIGFkZEZvbnRUcmFpdDptZW51
SXRlbUNlbGxGb3JGb250QWN0aW9uKE5TSXRhbGljRm9udE1hc2spLmdldCgpXTsKICAgICBFWFBF
Q1RfV0tfU1RSRVEoIml0YWxpYyIsIFt3ZWJWaWV3IHN0eWxlUHJvcGVydHlBdFNlbGVjdGlvblN0
YXJ0OkAiZm9udC1zdHlsZSJdKTsKICAgICBFWFBFQ1RfV0tfU1RSRVEoIml0YWxpYyIsIFt3ZWJW
aWV3IHN0eWxlUHJvcGVydHlBdFNlbGVjdGlvbkVuZDpAImZvbnQtc3R5bGUiXSk7CiAgICAgRVhQ
RUNUX1dLX1NUUkVRKCJUaW1lcy1JdGFsaWMiLCBbZm9udE1hbmFnZXIgc2VsZWN0ZWRGb250XS5m
b250TmFtZSk7CiAKLSAgICBbZm9udE1hbmFnZXIgYWRkRm9udFRyYWl0Om1lbnVJdGVtQ2VsbEZv
ckZvbnRBY3Rpb24oTlNVbml0YWxpY0ZvbnRNYXNrKS5hdXRvcmVsZWFzZSgpXTsKKyAgICBbZm9u
dE1hbmFnZXIgYWRkRm9udFRyYWl0Om1lbnVJdGVtQ2VsbEZvckZvbnRBY3Rpb24oTlNVbml0YWxp
Y0ZvbnRNYXNrKS5nZXQoKV07CiAgICAgRVhQRUNUX1dLX1NUUkVRKCJub3JtYWwiLCBbd2ViVmll
dyBzdHlsZVByb3BlcnR5QXRTZWxlY3Rpb25TdGFydDpAImZvbnQtc3R5bGUiXSk7CiAgICAgRVhQ
RUNUX1dLX1NUUkVRKCJub3JtYWwiLCBbd2ViVmlldyBzdHlsZVByb3BlcnR5QXRTZWxlY3Rpb25F
bmQ6QCJmb250LXN0eWxlIl0pOwogICAgIEVYUEVDVF9XS19TVFJFUSgiVGltZXMtUm9tYW4iLCBb
Zm9udE1hbmFnZXIgc2VsZWN0ZWRGb250XS5mb250TmFtZSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>