<?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>196265</bug_id>
          
          <creation_ts>2019-03-26 12:19:43 -0700</creation_ts>
          <short_desc>Add basic layout test coverage for File Picker on iOS</short_desc>
          <delta_ts>2020-06-17 15:08:05 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=196205</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=213314</see_also>
          <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>196405</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>conrad_shultz</cc>
    
    <cc>ggaren</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1521393</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-03-26 12:19:43 -0700</bug_when>
    <thetext>Add basic layout test coverage for File Picker on iOS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521394</commentid>
    <comment_count>1</comment_count>
      <attachid>365984</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-03-26 12:21:42 -0700</bug_when>
    <thetext>Created attachment 365984
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521407</commentid>
    <comment_count>2</comment_count>
      <attachid>365989</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-03-26 12:49:42 -0700</bug_when>
    <thetext>Created attachment 365989
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521450</commentid>
    <comment_count>3</comment_count>
      <attachid>365989</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-03-26 14:31:33 -0700</bug_when>
    <thetext>Comment on attachment 365989
Patch

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

&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:7018
&gt; +        auto* result = @{ userInterfaceItem: [_fileUploadPanel currentAvailableActionTitles] };

Nit - would be cleaner just to return @{ ~ }

&gt; Tools/WebKitTestRunner/ios/TestControllerIOS.mm:53
&gt; +static void overridePresentViewController()

Nit - maybe overridePresentViewControllerOrPopover, since it&apos;s used for both purposes?

&gt; LayoutTests/fast/forms/ios/file-upload-panel.html:62
&gt; +        UIHelper.activateElement(testInput).then(() =&gt; {
&gt; +            getFileUploadPickerMenuItems().then((_items) =&gt; {
&gt; +                items = _items;
&gt; +                shouldBeTrue(&quot;areArraysEqual(items, &quot; + expectedMenuItems + &quot;)&quot;);
&gt; +                debug(&quot;&quot;);
&gt; +                dismissFilePicker().then(() =&gt; { resolve(); });
&gt; +            });
&gt; +        });

Nit - IMO this function could be made cleaner using async - await, but either way it&apos;s fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521451</commentid>
    <comment_count>4</comment_count>
      <attachid>365999</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-03-26 14:40:30 -0700</bug_when>
    <thetext>Created attachment 365999
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521512</commentid>
    <comment_count>5</comment_count>
      <attachid>365999</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-03-26 16:24:40 -0700</bug_when>
    <thetext>Comment on attachment 365999
Patch

Clearing flags on attachment: 365999

Committed r243523: &lt;https://trac.webkit.org/changeset/243523&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521513</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-03-26 16:24:43 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521514</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-03-26 16:25:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/49299305&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>365984</attachid>
            <date>2019-03-26 12:21:42 -0700</date>
            <delta_ts>2019-03-26 12:49:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196265-20190326122142.patch</filename>
            <type>text/plain</type>
            <size>21174</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQzNDk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGZlMWEzYjYzNDY4Y2I5YWI3
NGU3ZWJlZWU0NDJkMzE5NzIwNDFmMGYuLjhiYzgwMDQzZDVhZDhhY2JlZjdlN2ZkZDFjMjA1ZTQ0
ZDhhNjcxYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTktMDMtMjYgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYmFzaWMgbGF5b3V0IHRlc3Qg
Y292ZXJhZ2UgZm9yIEZpbGUgUGlja2VyIG9uIGlPUworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2MjY1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGxheW91dCB0ZXN0IGluZnJhc3RydWN0dXJlIHRv
IHRlc3QgdGhlIGZpbGUgcGlja2VyIG9uIGlPUy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2Rpc21pc3NGaWxlUGlj
a2VyXSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmg6
CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAg
ICAgKC1bV0tDb250ZW50VmlldyBkaXNtaXNzRmlsZVBpY2tlcl0pOgorICAgICAgICAoLVtXS0Nv
bnRlbnRWaWV3IF9jb250ZW50c09mVXNlckludGVyZmFjZUl0ZW06XSk6CisgICAgICAgICogVUlQ
cm9jZXNzL2lvcy9mb3Jtcy9XS0ZpbGVVcGxvYWRQYW5lbC5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9pb3MvZm9ybXMvV0tGaWxlVXBsb2FkUGFuZWwubW06CisgICAgICAgICgtW1dLRmlsZVVwbG9h
ZFBhbmVsIGN1cnJlbnRBdmFpbGFibGVBY3Rpb25UaXRsZXNdKToKKwogMjAxOS0wMy0yNiAgUGhp
bGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CiAKICAgICAgICAgW1dQRV1bUXRd
IFVuaW5pdGlhbGl6ZWQgcmFjeSBWaWV3QmFja2VuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggMjIxOTc4NTllMDExYWIyOGI1ZGM2Yzk3
NWRkODZkNGZkNTM1ZjU2Ni4uZDkwZThlYWI0ODRjYjcyOWNjYWVlZjlmZDAxMGZmMjU0ZDc0NzE4
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
dy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1t
CkBAIC02NjY5LDYgKzY2NjksMTEgQEAgLSAodm9pZClkaXNtaXNzRm9ybUFjY2Vzc29yeVZpZXcK
ICAgICBbX2NvbnRlbnRWaWV3IGFjY2Vzc29yeURvbmVdOwogfQogCistICh2b2lkKV9kaXNtaXNz
RmlsZVBpY2tlcgoreworICAgIFtfY29udGVudFZpZXcgZGlzbWlzc0ZpbGVQaWNrZXJdOworfQor
CiAtICh2b2lkKXNldFRpbWVQaWNrZXJWYWx1ZVRvSG91cjooTlNJbnRlZ2VyKWhvdXIgbWludXRl
OihOU0ludGVnZXIpbWludXRlCiB7CiAgICAgW19jb250ZW50VmlldyBzZXRUaW1lUGlja2VyVmFs
dWVUb0hvdXI6aG91ciBtaW51dGU6bWludXRlXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCmluZGV4IDhlOTllY2VhN2YwZTFm
OTdkYTdmYTIyYThjYjA5Y2YwMWI1MTI0YzAuLmE4NmQxNDUzZDE4Y2U1NGQ2YTdmMzdkNzQ3NDMw
MjM2YWIwMThmNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXdQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlld1ByaXZhdGUuaApAQCAtNDUxLDYgKzQ1MSw3IEBAIHR5cGVkZWYgTlNfT1BU
SU9OUyhOU1VJbnRlZ2VyLCBfV0tSZWN0RWRnZSkgewogLSAodm9pZClrZXlib2FyZEFjY2Vzc29y
eUJhck5leHQgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTAuMCkpOwogLSAodm9pZClrZXlib2FyZEFj
Y2Vzc29yeUJhclByZXZpb3VzIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEwLjApKTsKIC0gKHZvaWQp
ZGlzbWlzc0Zvcm1BY2Nlc3NvcnlWaWV3IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEwLjMpKTsKKy0g
KHZvaWQpX2Rpc21pc3NGaWxlUGlja2VyIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEp
KTsKIC0gKHZvaWQpc2VsZWN0Rm9ybUFjY2Vzc29yeVBpY2tlclJvdzooaW50KXJvd0luZGV4IFdL
X0FQSV9BVkFJTEFCTEUoaW9zKDEwLjMpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25s
eSkgTlNTdHJpbmcgKnRleHRDb250ZW50VHlwZUZvclRlc3RpbmcgV0tfQVBJX0FWQUlMQUJMRShp
b3MoMTIuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1N0cmluZyAqc2Vs
ZWN0Rm9ybVBvcG92ZXJUaXRsZSBXS19BUElfQVZBSUxBQkxFKGlvcygxMi4wKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9u
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9u
LmgKaW5kZXggNzg4MzlmMDYyYTA4NzkwOTU0OGJiMzM5YTM0YzYzNWY0MmY5ZDlhNS4uZjhkZjEz
Y2Y0MjJjZjUxOTc1ZjNjMzYzOGEzZTdiNGFjOWRmYTg3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaApAQCAtNDMw
LDYgKzQzMCw3IEBAIEZPUl9FQUNIX1BSSVZBVEVfV0tDT05URU5UVklFV19BQ1RJT04oREVDTEFS
RV9XS0NPTlRFTlRWSUVXX0FDVElPTl9GT1JfV0VCX1ZJRVcpCiAtICh2b2lkKV9zaG93UnVuT3Bl
blBhbmVsOihBUEk6Ok9wZW5QYW5lbFBhcmFtZXRlcnMqKXBhcmFtZXRlcnMgcmVzdWx0TGlzdGVu
ZXI6KFdlYktpdDo6V2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eSopbGlzdGVuZXI7CiAt
ICh2b2lkKV9zaG93U2hhcmVTaGVldDooY29uc3QgV2ViQ29yZTo6U2hhcmVEYXRhV2l0aFBhcnNl
ZFVSTCYpc2hhcmVEYXRhIGNvbXBsZXRpb25IYW5kbGVyOihXVEY6OkNvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYpY29tcGxldGlvbkhhbmRsZXI7CiAtICh2b2lkKWFjY2Vzc29yeURvbmU7
CistICh2b2lkKWRpc21pc3NGaWxlUGlja2VyOwogLSAodm9pZClfZGlkSGFuZGxlS2V5RXZlbnQ6
KDo6V2ViRXZlbnQgKilldmVudCBldmVudFdhc0hhbmRsZWQ6KEJPT0wpZXZlbnRXYXNIYW5kbGVk
OwogLSAoVmVjdG9yPFdlYktpdDo6T3B0aW9uSXRlbT4mKSBmb2N1c2VkU2VsZWN0RWxlbWVudE9w
dGlvbnM7CiAtICh2b2lkKV9lbmFibGVJbnNwZWN0b3JOb2RlU2VhcmNoOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0K
aW5kZXggMzZiNTcyNzY5ZmEwZmY3NDM0YmNhZmI4ZTUwYWIwNmUxN2RjZTRiNC4uNTE3NDc4YjFh
MmE4MjVhZmM4OWRlYWQ3ZTdjYWYxNDM3M2FmYzk2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC00NTAx
LDYgKzQ1MDEsMTEgQEAgLSAoQk9PTClfaW50ZXJwcmV0S2V5RXZlbnQ6KDo6V2ViRXZlbnQgKill
dmVudCBpc0NoYXJFdmVudDooQk9PTClpc0NoYXJFdmVudAogICAgIHJldHVybiBOTzsKIH0KIAor
LSAodm9pZClkaXNtaXNzRmlsZVBpY2tlcgoreworICAgIFtfZmlsZVVwbG9hZFBhbmVsIGRpc21p
c3NdOworfQorCiAtIChCT09MKWlzU2Nyb2xsYWJsZUZvcktleWJvYXJkU2Nyb2xsVmlld0FuaW1h
dG9yOihXS0tleWJvYXJkU2Nyb2xsVmlld0FuaW1hdG9yICopYW5pbWF0b3IKIHsKICAgICBpZiAo
X3BhZ2UtPmVkaXRvclN0YXRlKCkuaXNDb250ZW50RWRpdGFibGUpCkBAIC03MDA2LDYgKzcwMTEs
MTMgQEAgLSAoTlNEaWN0aW9uYXJ5ICopX2NvbnRlbnRzT2ZVc2VySW50ZXJmYWNlSXRlbTooTlNT
dHJpbmcgKil1c2VySW50ZXJmYWNlSXRlbQogICAgICAgICByZXR1cm4gQHsgdXNlckludGVyZmFj
ZUl0ZW06IEB7IEAicGFnZVVSTCI6IHVybCB9IH07CiAgICAgfQogI2VuZGlmCisKKyAgICBpZiAo
W3VzZXJJbnRlcmZhY2VJdGVtIGlzRXF1YWxUb1N0cmluZzpAImZpbGVVcGxvYWRQYW5lbE1lbnUi
XSkgeworICAgICAgICBpZiAoIV9maWxlVXBsb2FkUGFuZWwpCisgICAgICAgICAgICByZXR1cm4g
QHsgdXNlckludGVyZmFjZUl0ZW06IEBbXSB9OworICAgICAgICBhdXRvKiByZXN1bHQgPSBAeyB1
c2VySW50ZXJmYWNlSXRlbTogW19maWxlVXBsb2FkUGFuZWwgY3VycmVudEF2YWlsYWJsZUFjdGlv
blRpdGxlc10gfTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CiAgICAgCiAgICAgcmV0
dXJuIG5pbDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jt
cy9XS0ZpbGVVcGxvYWRQYW5lbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1z
L1dLRmlsZVVwbG9hZFBhbmVsLmgKaW5kZXggZDZkNzJlNjRmNjM1NDFjZDM4OWRiYzI3OGVlOTA0
Y2VhY2Q2MmU1YS4uODY0OTcwMWM0N2JhOWEyZGEzYmM0NmI2ODZhZDJkODBjZTE5NDU5ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRmlsZVVwbG9hZFBh
bmVsLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRmlsZVVwbG9h
ZFBhbmVsLmgKQEAgLTQzLDYgKzQzLDggQEAgY2xhc3MgV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVu
ZXJQcm94eTsKIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aFZpZXc6KFdLQ29udGVudFZpZXcgKil2
aWV3OwogLSAodm9pZClwcmVzZW50V2l0aFBhcmFtZXRlcnM6KEFQSTo6T3BlblBhbmVsUGFyYW1l
dGVycyopcGFyYW1ldGVycyByZXN1bHRMaXN0ZW5lcjooV2ViS2l0OjpXZWJPcGVuUGFuZWxSZXN1
bHRMaXN0ZW5lclByb3h5KilsaXN0ZW5lcjsKIC0gKHZvaWQpZGlzbWlzczsKKworLSAoTlNBcnJh
eTxOU1N0cmluZyAqPiAqKWN1cnJlbnRBdmFpbGFibGVBY3Rpb25UaXRsZXM7CiBAZW5kCiAKIEBw
cm90b2NvbCBXS0ZpbGVVcGxvYWRQYW5lbERlbGVnYXRlIDxOU09iamVjdD4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0ZpbGVVcGxvYWRQYW5lbC5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0ZpbGVVcGxvYWRQYW5lbC5tbQpp
bmRleCAxZTk0YjhkMTJiOGM3MDViMmFhYTZkMjAzOTEzMzcyMDBmNjU2ZDhiLi5mNTc4MGQ4Yzg2
NjNiYmU5YTI5M2E1YWFlNmUwNmE5MGFmNGQzZWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGaWxlVXBsb2FkUGFuZWwubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRmlsZVVwbG9hZFBhbmVsLm1tCkBAIC0zMTIsNiAr
MzEyLDI2IEBAIC0gKHZvaWQpX2Rpc21pc3NEaXNwbGF5QW5pbWF0ZWQ6KEJPT0wpYW5pbWF0ZWQK
ICAgICB9CiB9CiAKKy0gKE5TQXJyYXk8TlNTdHJpbmcgKj4gKiljdXJyZW50QXZhaWxhYmxlQWN0
aW9uVGl0bGVzCit7CisgICAgTlNNdXRhYmxlQXJyYXk8TlNTdHJpbmcgKj4gKmFjdGlvblRpdGxl
cyA9IFtOU011dGFibGVBcnJheSBhcnJheV07CisKKyAgICBOU0FycmF5ICptZWRpYVR5cGVzID0g
VVRJc0Zvck1JTUVUeXBlcyhfbWltZVR5cGVzLmdldCgpKS5hbGxPYmplY3RzOworICAgIEJPT0wg
Y29udGFpbnNJbWFnZU1lZGlhVHlwZSA9ICFtZWRpYVR5cGVzLmNvdW50IHx8IGFycmF5Q29udGFp
bnNVVElUaGF0Q29uZm9ybXNUbyhtZWRpYVR5cGVzLCBrVVRUeXBlSW1hZ2UpOworICAgIEJPT0wg
Y29udGFpbnNWaWRlb01lZGlhVHlwZSA9ICFtZWRpYVR5cGVzLmNvdW50IHx8IGFycmF5Q29udGFp
bnNVVElUaGF0Q29uZm9ybXNUbyhtZWRpYVR5cGVzLCBrVVRUeXBlTW92aWUpOworICAgIGlmIChj
b250YWluc0ltYWdlTWVkaWFUeXBlIHx8IGNvbnRhaW5zVmlkZW9NZWRpYVR5cGUpIHsKKyAgICAg
ICAgW2FjdGlvblRpdGxlcyBhZGRPYmplY3Q6QCJQaG90byBMaWJyYXJ5Il07CisgICAgICAgIGlm
IChjb250YWluc0ltYWdlTWVkaWFUeXBlICYmIGNvbnRhaW5zVmlkZW9NZWRpYVR5cGUpCisgICAg
ICAgICAgICBbYWN0aW9uVGl0bGVzIGFkZE9iamVjdDpAIlRha2UgUGhvdG8gb3IgVmlkZW8iXTsK
KyAgICAgICAgZWxzZSBpZiAoY29udGFpbnNWaWRlb01lZGlhVHlwZSkKKyAgICAgICAgICAgIFth
Y3Rpb25UaXRsZXMgYWRkT2JqZWN0OkAiVGFrZSBWaWRlbyJdOworICAgICAgICBlbHNlCisgICAg
ICAgICAgICBbYWN0aW9uVGl0bGVzIGFkZE9iamVjdDpAIlRha2UgUGhvdG8iXTsKKyAgICB9Cisg
ICAgW2FjdGlvblRpdGxlcyBhZGRPYmplY3Q6QCJCcm93c2UiXTsKKyAgICByZXR1cm4gYWN0aW9u
VGl0bGVzOworfQorCiAjcHJhZ21hIG1hcmsgLSBNZWRpYSBUeXBlcwogCiBzdGF0aWMgTlNTZXQ8
TlNTdHJpbmcgKj4gKlVUSXNGb3JNSU1FVHlwZXMoTlNBcnJheSAqbWltZVR5cGVzKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGUzZWJjMGFiZTJj
ODczNTIyMDU4MDcwM2VmMmM1OTMzYzBjODJmNWQuLmU1NmIxM2RlMDQ4NmNmYzdiOTk4MmM4ZDVh
ZGQyMTI3ODZmYTFmMzMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxOS0wMy0yNiAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBiYXNpYyBsYXlvdXQgdGVzdCBjb3ZlcmFnZSBm
b3IgRmlsZSBQaWNrZXIgb24gaU9TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xOTYyNjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGQgbGF5b3V0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gdGVzdCB0aGUg
ZmlsZSBwaWNrZXIgb24gaU9TLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvaW9zL1VJU2Ny
aXB0Q29udHJvbGxlcklPUy5tbToKKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpk
aXNtaXNzRmlsZVBpY2tlcik6CisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENv
bnRleHQvQmluZGluZ3MvVUlTY3JpcHRDb250cm9sbGVyLmlkbDoKKyAgICAgICAgKiBUZXN0UnVu
bmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAg
ICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OmRpc21pc3NGaWxlUGlja2VyKToKKyAgICAgICAg
KiBUZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuaDoK
KyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAg
KFdUUjo6VGVzdENvbnRyb2xsZXI6OmNyZWF0ZVdlYlZpZXdXaXRoT3B0aW9ucyk6CisgICAgICAg
IChXVFI6OnVwZGF0ZVRlc3RPcHRpb25zRnJvbVRlc3RIZWFkZXIpOgorICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuaDoKKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6Omhh
c1NhbWVJbml0aWFsaXphdGlvbk9wdGlvbnMgY29uc3QpOgorICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvaW9zL1Rlc3RDb250cm9sbGVySU9TLm1tOgorICAgICAgICAob3ZlcnJpZGVQcmVzZW50
Vmlld0NvbnRyb2xsZXIpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1J
bml0aWFsaXplKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2lvcy9VSVNjcmlwdENvbnRy
b2xsZXJJT1MubW06CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6ZGlzbWlzc0Zp
bGVQaWNrZXIpOgorCiAyMDE5LTAzLTI2ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFA
aWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLiBGaXggdHlwbyBpbiBHTGliIGdlb2xv
Y2F0aW9uIEFQSSBhZnRlciByMjQzMjg1LgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2lv
cy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW0KaW5kZXggYzEyMDk1MmI1N2Y5YjViYmUzZTRlMDVi
ZjUwN2NjYzk2NzZiZDQyMS4uMjJkNTVhYmMxMmJiOWNiODFhYzc0NmRkMGE0ODg3NjQ3MmZmZWI1
MSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvaW9zL1VJU2NyaXB0Q29udHJvbGxl
cklPUy5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9pb3MvVUlTY3JpcHRDb250cm9sbGVy
SU9TLm1tCkBAIC0xNzUsNiArMTc1LDEwIEBAIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpkaXNt
aXNzRm9ybUFjY2Vzc29yeVZpZXcoKQogewogfQogCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6
ZGlzbWlzc0ZpbGVQaWNrZXIoSlNWYWx1ZVJlZikKK3sKK30KKwogdm9pZCBVSVNjcmlwdENvbnRy
b2xsZXI6OnNldFRpbWVQaWNrZXJWYWx1ZShsb25nLCBsb25nKQogewogfQpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRD
b250cm9sbGVyLmlkbCBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L0Jp
bmRpbmdzL1VJU2NyaXB0Q29udHJvbGxlci5pZGwKaW5kZXggOWFmYzUxZWZmYzljOTg1MzExOGEx
MmRmYjI3MjBkN2RkODI0NDdjMy4uZWVjYjIwNjBlYjZiMmUxMjlmOGIxMmQzY2M1MjBiZjU1N2Zh
MGY3YyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQv
QmluZGluZ3MvVUlTY3JpcHRDb250cm9sbGVyLmlkbAorKysgYi9Ub29scy9UZXN0UnVubmVyU2hh
cmVkL1VJU2NyaXB0Q29udGV4dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsCkBAIC0x
ODcsNiArMTg3LDggQEAgaW50ZXJmYWNlIFVJU2NyaXB0Q29udHJvbGxlciB7CiAgICAgLy8gRXF1
aXZhbGVudCBvZiBwcmVzc2luZyB0aGUgRG9uZSBidXR0b24gaW4gdGhlIGZvcm0gYWNjZXNzb3J5
IGJhci4KICAgICB2b2lkIGRpc21pc3NGb3JtQWNjZXNzb3J5VmlldygpOwogCisgICAgdm9pZCBk
aXNtaXNzRmlsZVBpY2tlcihvYmplY3QgY2FsbGJhY2spOworCiAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIERPTVN0cmluZyB0ZXh0Q29udGVudFR5cGU7CiAKICAgICAvLyBGb3JtIGNvbnRyb2wgaGFu
ZGxpbmcKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0
L1VJU2NyaXB0Q29udHJvbGxlci5jcHAgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0
Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuY3BwCmluZGV4IGVkM2UzNDJiNGQwZTJiNjIzOTBh
Mjk3NDZmZWYwOTk4MWYyY2I5YTIuLjRmYzc1YTA1MzI5ODc3Yzk1NWQ0NDdjYjNkYWNiY2E4NjIy
ZDg3MDcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0
L1VJU2NyaXB0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNj
cmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmNwcApAQCAtMzQ3LDYgKzM0NywxMCBAQCB2
b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6ZGlzbWlzc0Zvcm1BY2Nlc3NvcnlWaWV3KCkKIHsKIH0K
IAordm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OmRpc21pc3NGaWxlUGlja2VyKCkKK3sKK30KKwog
dm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnNldFRpbWVQaWNrZXJWYWx1ZShsb25nLCBsb25nKQog
ewogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQv
VUlTY3JpcHRDb250cm9sbGVyLmggYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29u
dGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuaAppbmRleCA1YThkZjZlZGUzYTgzZGI0MjU2NjI5ZmQy
OWUyM2JmMzUzYWY4ZjQ2Li5lNDFmOGEzNzM5MTg4MzYxNTNkOWIzMmU5ZWRiMDJlZGFkOTkzNjE2
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNj
cmlwdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29u
dGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuaApAQCAtMTA2LDYgKzEwNiw3IEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgYXBwbHlBdXRvY29ycmVjdGlvbihKU1N0cmluZ1JlZiBuZXdTdHJpbmcsIEpTU3Ry
aW5nUmVmIG9sZFN0cmluZywgSlNWYWx1ZVJlZiBjYWxsYmFjayk7CiAgICAgCisgICAgdm9pZCBk
aXNtaXNzRmlsZVBpY2tlcihKU1ZhbHVlUmVmIGNhbGxiYWNrKTsKICAgICB2b2lkIGRpc21pc3NG
b3JtQWNjZXNzb3J5VmlldygpOwogICAgIHZvaWQgc2VsZWN0Rm9ybUFjY2Vzc29yeVBpY2tlclJv
dyhsb25nKTsKICAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gdGV4dENvbnRlbnRUeXBlKCkg
Y29uc3Q7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVy
LmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IGU4
OTA4ZmIzNjIxMzMyZGMxYmZlOTBhMjdmYzBiYjY2ODVhNmI3M2QuLmFhMjhmN2Q0MGY3ZGQ4Yzhi
YzFiMmY4YzkxNDU3MDZkMjRmNTg5ZmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENv
bnRyb2xsZXIuY3BwCkBAIC02MDUsNyArNjA1LDcgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6Y3Jl
YXRlV2ViVmlld1dpdGhPcHRpb25zKGNvbnN0IFRlc3RPcHRpb25zJiBvcHRpb25zKQogICAgICAg
ICAwLCAvLyBkaWREcmF3CiAgICAgICAgIDAsIC8vIHBhZ2VEaWRTY3JvbGwKICAgICAgICAgMCwg
Ly8gZXhjZWVkZWREYXRhYmFzZVF1b3RhLAotICAgICAgICBydW5PcGVuUGFuZWwsCisgICAgICAg
IG9wdGlvbnMuc2hvdWxkSGFuZGxlUnVuT3BlblBhbmVsID8gcnVuT3BlblBhbmVsIDogMCwKICAg
ICAgICAgZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdCwKICAgICAg
ICAgMCwgLy8gaGVhZGVySGVpZ2h0CiAgICAgICAgIDAsIC8vIGZvb3RlckhlaWdodApAQCAtMTMx
NCw2ICsxMzE0LDggQEAgc3RhdGljIHZvaWQgdXBkYXRlVGVzdE9wdGlvbnNGcm9tVGVzdEhlYWRl
cihUZXN0T3B0aW9ucyYgdGVzdE9wdGlvbnMsIGNvbnN0IHN0ZDoKICAgICAgICAgICAgIHRlc3RP
cHRpb25zLmVkaXRhYmxlID0gcGFyc2VCb29sZWFuVGVzdEhlYWRlclZhbHVlKHZhbHVlKTsKICAg
ICAgICAgZWxzZSBpZiAoa2V5ID09ICJlbmFibGVVbmRvTWFuYWdlckFQSSIpCiAgICAgICAgICAg
ICB0ZXN0T3B0aW9ucy5lbmFibGVVbmRvTWFuYWdlckFQSSA9IHBhcnNlQm9vbGVhblRlc3RIZWFk
ZXJWYWx1ZSh2YWx1ZSk7CisgICAgICAgIGVsc2UgaWYgKGtleSA9PSAic2hvdWxkSGFuZGxlUnVu
T3BlblBhbmVsIikKKyAgICAgICAgICAgIHRlc3RPcHRpb25zLnNob3VsZEhhbmRsZVJ1bk9wZW5Q
YW5lbCA9IHBhcnNlQm9vbGVhblRlc3RIZWFkZXJWYWx1ZSh2YWx1ZSk7CiAgICAgICAgIGVsc2Ug
aWYgKGtleSA9PSAiY29udGVudEluc2V0LnRvcCIpCiAgICAgICAgICAgICB0ZXN0T3B0aW9ucy5j
b250ZW50SW5zZXRUb3AgPSBzdGQ6OnN0b2QodmFsdWUpOwogICAgICAgICBlbHNlIGlmIChrZXkg
PT0gImlnbm9yZVN5bmNocm9ub3VzTWVzc2FnaW5nVGltZW91dHMiKQpkaWZmIC0tZ2l0IGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0T3B0aW9ucy5oCmluZGV4IGIwZmVkNzIzYTI3M2Q4YjlmZTdmNmU4NjZiMTcwMGQ5Nzgz
NDc1N2UuLjFkMGFlZTA4NTY5M2UwODkxMDFjOTRlZjQ1Mjg1NGY5MjMyNmQ5OGMgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuaAorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RPcHRpb25zLmgKQEAgLTg5LDYgKzg5LDcgQEAgc3RydWN0IFRlc3RP
cHRpb25zIHsKICAgICBib29sIGVuYWJsZUVkaXRhYmxlSW1hZ2VzIHsgZmFsc2UgfTsKICAgICBi
b29sIGVkaXRhYmxlIHsgZmFsc2UgfTsKICAgICBib29sIGVuYWJsZVVuZG9NYW5hZ2VyQVBJIHsg
ZmFsc2UgfTsKKyAgICBib29sIHNob3VsZEhhbmRsZVJ1bk9wZW5QYW5lbCB7IHRydWUgfTsKIAog
ICAgIGRvdWJsZSBjb250ZW50SW5zZXRUb3AgeyAwIH07CiAKQEAgLTEzNiw2ICsxMzcsNyBAQCBz
dHJ1Y3QgVGVzdE9wdGlvbnMgewogICAgICAgICAgICAgfHwgZW5hYmxlRWRpdGFibGVJbWFnZXMg
IT0gb3B0aW9ucy5lbmFibGVFZGl0YWJsZUltYWdlcwogICAgICAgICAgICAgfHwgZWRpdGFibGUg
IT0gb3B0aW9ucy5lZGl0YWJsZQogICAgICAgICAgICAgfHwgZW5hYmxlVW5kb01hbmFnZXJBUEkg
IT0gb3B0aW9ucy5lbmFibGVVbmRvTWFuYWdlckFQSQorICAgICAgICAgICAgfHwgc2hvdWxkSGFu
ZGxlUnVuT3BlblBhbmVsICE9IG9wdGlvbnMuc2hvdWxkSGFuZGxlUnVuT3BlblBhbmVsCiAgICAg
ICAgICAgICB8fCBjb250ZW50SW5zZXRUb3AgIT0gb3B0aW9ucy5jb250ZW50SW5zZXRUb3ApCiAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvaW9zL1Rlc3RDb250cm9sbGVySU9TLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9p
b3MvVGVzdENvbnRyb2xsZXJJT1MubW0KaW5kZXggZWFmMWY1YTJiZjZkN2VkMDlmYjM0YzYwNzIw
OTQ4NzI3NWQ3YjNhYi4uNDNkZTRjYjRmNWUzYzUwODc2NWE3YzlhZmVhY2EyOTMwZDA4OWM5NCAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVGVzdENvbnRyb2xsZXJJT1Mu
bW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVGVzdENvbnRyb2xsZXJJT1MubW0K
QEAgLTUwLDYgKzUwLDEwIEBAIHN0YXRpYyBCT09MIG92ZXJyaWRlSXNJbkhhcmR3YXJlS2V5Ym9h
cmRNb2RlKCkKICAgICByZXR1cm4gTk87CiB9CiAKK3N0YXRpYyB2b2lkIG92ZXJyaWRlUHJlc2Vu
dFZpZXdDb250cm9sbGVyKCkKK3sKK30KKwogbmFtZXNwYWNlIFdUUiB7CiAKIHN0YXRpYyBib29s
IGlzRG9uZVdhaXRpbmdGb3JLZXlib2FyZFRvRGlzbWlzcyA9IHRydWU7CkBAIC05Niw2ICsxMDAs
OSBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUluaXRpYWxpemUoKQogICAgIC8vIE92
ZXJyaWRlIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiArW1VJS2V5Ym9hcmQgaXNJbkhhcmR3YXJlS2V5
Ym9hcmRNb2RlXSB0byBlbnN1cmUgdGhhdCB0ZXN0IHJ1bnMgYXJlIGRldGVybWluaXN0aWMKICAg
ICAvLyByZWdhcmRsZXNzIG9mIHdoZXRoZXIgYSBoYXJkd2FyZSBrZXlib2FyZCBpcyBhdHRhY2hl
ZC4gV2UgaW50ZW50aW9uYWxseSBuZXZlciByZXN0b3JlIHRoZSBvcmlnaW5hbCBpbXBsZW1lbnRh
dGlvbi4KICAgICBtZXRob2Rfc2V0SW1wbGVtZW50YXRpb24oY2xhc3NfZ2V0Q2xhc3NNZXRob2Qo
W1VJS2V5Ym9hcmQgY2xhc3NdLCBAc2VsZWN0b3IoaXNJbkhhcmR3YXJlS2V5Ym9hcmRNb2RlKSks
IHJlaW50ZXJwcmV0X2Nhc3Q8SU1QPihvdmVycmlkZUlzSW5IYXJkd2FyZUtleWJvYXJkTW9kZSkp
OworCisgICAgbWV0aG9kX3NldEltcGxlbWVudGF0aW9uKGNsYXNzX2dldEluc3RhbmNlTWV0aG9k
KFtVSVZpZXdDb250cm9sbGVyIGNsYXNzXSwgQHNlbGVjdG9yKHByZXNlbnRWaWV3Q29udHJvbGxl
cjphbmltYXRlZDpjb21wbGV0aW9uOikpLCByZWludGVycHJldF9jYXN0PElNUD4ob3ZlcnJpZGVQ
cmVzZW50Vmlld0NvbnRyb2xsZXIpKTsKKyAgICBtZXRob2Rfc2V0SW1wbGVtZW50YXRpb24oY2xh
c3NfZ2V0SW5zdGFuY2VNZXRob2QoW1VJUG9wb3ZlckNvbnRyb2xsZXIgY2xhc3NdLCBAc2VsZWN0
b3IocHJlc2VudFBvcG92ZXJGcm9tUmVjdDppblZpZXc6cGVybWl0dGVkQXJyb3dEaXJlY3Rpb25z
OmFuaW1hdGVkOikpLCByZWludGVycHJldF9jYXN0PElNUD4ob3ZlcnJpZGVQcmVzZW50Vmlld0Nv
bnRyb2xsZXIpKTsKIH0KIAogdm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1EZXN0cm95KCkK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxl
cklPUy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklP
Uy5tbQppbmRleCA5NTE3YjRlMjZkY2ZkMzM5MmU2YmUxNjFhNzkwOWU4OGI1ZTk4MmMwLi5hYTlk
ODQ4ODVhYWE4ODBkMzk4MWVlZGQ0ZmEzODQ5OWE3ZjhmMTZmIDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW0KKysrIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1tCkBAIC00ODIsNiAr
NDgyLDE5IEBAIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpkaXNtaXNzRm9ybUFjY2Vzc29yeVZp
ZXcoKQogICAgIFt3ZWJWaWV3IGRpc21pc3NGb3JtQWNjZXNzb3J5Vmlld107CiB9CiAKK3ZvaWQg
VUlTY3JpcHRDb250cm9sbGVyOjpkaXNtaXNzRmlsZVBpY2tlcihKU1ZhbHVlUmVmIGNhbGxiYWNr
KQoreworICAgIFRlc3RSdW5uZXJXS1dlYlZpZXcgKndlYlZpZXcgPSBUZXN0Q29udHJvbGxlcjo6
c2luZ2xldG9uKCkubWFpbldlYlZpZXcoKS0+cGxhdGZvcm1WaWV3KCk7CisgICAgW3dlYlZpZXcg
X2Rpc21pc3NGaWxlUGlja2VyXTsKKworICAgIC8vIFJvdW5kLXRyaXAgd2l0aCB0aGUgV2ViUHJv
Y2VzcyB0byBtYWtlIHN1cmUgaXQgaGFzIGJlZW4gbm90aWZpZWQgb2YgdGhlIGRpc21pc3NhbC4K
KyAgICB1bnNpZ25lZCBjYWxsYmFja0lEID0gbV9jb250ZXh0LT5wcmVwYXJlRm9yQXN5bmNUYXNr
KGNhbGxiYWNrLCBDYWxsYmFja1R5cGVOb25QZXJzaXN0ZW50KTsKKyAgICBbd2ViVmlldyBldmFs
dWF0ZUphdmFTY3JpcHQ6QCIiIGNvbXBsZXRpb25IYW5kbGVyOl4oaWQgcmVzdWx0LCBOU0Vycm9y
ICplcnJvcikgeworICAgICAgICBpZiAobV9jb250ZXh0KQorICAgICAgICAgICAgbV9jb250ZXh0
LT5hc3luY1Rhc2tDb21wbGV0ZShjYWxsYmFja0lEKTsKKyAgICB9XTsKK30KKwogSlNSZXRhaW5Q
dHI8SlNTdHJpbmdSZWY+IFVJU2NyaXB0Q29udHJvbGxlcjo6c2VsZWN0Rm9ybVBvcG92ZXJUaXRs
ZSgpIGNvbnN0CiB7CiAgICAgVGVzdFJ1bm5lcldLV2ViVmlldyAqd2ViVmlldyA9IFRlc3RDb250
cm9sbGVyOjpzaW5nbGV0b24oKS5tYWluV2ViVmlldygpLT5wbGF0Zm9ybVZpZXcoKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCBjNTNkZGY3NzZiYTA3Y2YxMjAyMTNhMjMxNTk0ZWVjM2VkOTgxYTAyLi42NDgyMDZjMjg1YWFl
NGUyYzZkYjI2Y2IwMWY2MmYyY2Y1NjNjNjE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTkt
MDMtMjYgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYmFz
aWMgbGF5b3V0IHRlc3QgY292ZXJhZ2UgZm9yIEZpbGUgUGlja2VyIG9uIGlPUworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2MjY1CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIG5ldyBsYXlvdXQgdGVz
dC4KKworICAgICAgICAqIGZhc3QvZm9ybXMvaW9zL2ZpbGUtdXBsb2FkLXBhbmVsLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9pb3MvZmlsZS11cGxvYWQtcGFuZWwu
aHRtbDogQWRkZWQuCisKIDIwMTktMDMtMjYgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBw
bGUuY29tPgogCiAgICAgICAgIExheW91dCBUZXN0IGpzL21hdGgtY2x6MzIuaHRtbCBpcyBmYWls
aW5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lvcy9maWxlLXVwbG9hZC1w
YW5lbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lvcy9maWxlLXVwbG9h
ZC1wYW5lbC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTgwMTRhZmViMDMzMWFjMTdkNjJkY2I2
YzIzMTExOTNmYzFmZDFlZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvaW9zL2ZpbGUtdXBsb2FkLXBhbmVsLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM5IEBACitC
YXNpYyB0ZXN0aW5nIGZvciB0aGUgRmlsZSBVcGxvYWQgUGFuZWwgb24gaU9TLgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworKiBhY2NlcHQgPSAKK1BBU1MgYXJlQXJyYXlzRXF1YWwo
aXRlbXMsIFsiUGhvdG8gTGlicmFyeSIsICJUYWtlIFBob3RvIG9yIFZpZGVvIiwgIkJyb3dzZSJd
KSBpcyB0cnVlCisKKyogYWNjZXB0ID0gaW1hZ2UvKgorUEFTUyBhcmVBcnJheXNFcXVhbChpdGVt
cywgWyJQaG90byBMaWJyYXJ5IiwgIlRha2UgUGhvdG8iLCAiQnJvd3NlIl0pIGlzIHRydWUKKwor
KiBhY2NlcHQgPSB2aWRlby8qCitQQVNTIGFyZUFycmF5c0VxdWFsKGl0ZW1zLCBbIlBob3RvIExp
YnJhcnkiLCAiVGFrZSBWaWRlbyIsICJCcm93c2UiXSkgaXMgdHJ1ZQorCisqIGFjY2VwdCA9IGlt
YWdlLyosIHZpZGVvLyoKK1BBU1MgYXJlQXJyYXlzRXF1YWwoaXRlbXMsIFsiUGhvdG8gTGlicmFy
eSIsICJUYWtlIFBob3RvIG9yIFZpZGVvIiwgIkJyb3dzZSJdKSBpcyB0cnVlCisKKyogYWNjZXB0
ID0gLlBORywgLkdJRgorUEFTUyBhcmVBcnJheXNFcXVhbChpdGVtcywgWyJQaG90byBMaWJyYXJ5
IiwgIlRha2UgUGhvdG8iLCAiQnJvd3NlIl0pIGlzIHRydWUKKworKiBhY2NlcHQgPSAuUE5HLCAu
R0lGLCAuTU9WCitQQVNTIGFyZUFycmF5c0VxdWFsKGl0ZW1zLCBbIlBob3RvIExpYnJhcnkiLCAi
VGFrZSBQaG90byBvciBWaWRlbyIsICJCcm93c2UiXSkgaXMgdHJ1ZQorCisqIGFjY2VwdCA9IGF1
ZGlvLyoKK1BBU1MgYXJlQXJyYXlzRXF1YWwoaXRlbXMsIFsiQnJvd3NlIl0pIGlzIHRydWUKKwor
KiBhY2NlcHQgPSAuVFhUCitQQVNTIGFyZUFycmF5c0VxdWFsKGl0ZW1zLCBbIkJyb3dzZSJdKSBp
cyB0cnVlCisKKyogYWNjZXB0ID0gLlBERgorUEFTUyBhcmVBcnJheXNFcXVhbChpdGVtcywgWyJC
cm93c2UiXSkgaXMgdHJ1ZQorCisqIGFjY2VwdCA9IC5QREYsIC5UWFQKK1BBU1MgYXJlQXJyYXlz
RXF1YWwoaXRlbXMsIFsiQnJvd3NlIl0pIGlzIHRydWUKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvaW9zL2ZpbGUtdXBsb2FkLXBhbmVsLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL2lvcy9maWxlLXVwbG9hZC1wYW5lbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI5OTU0MGQ3MzczY2Uz
YzZiY2Y1NDZhYWU2MTU3ZTIyYjUxYzBlNDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL2lvcy9maWxlLXVwbG9hZC1wYW5lbC5odG1sCkBAIC0wLDAgKzEsOTAgQEAK
KzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmll
d3BvcnQ9dHJ1ZSwgc2hvdWxkSGFuZGxlUnVuT3BlblBhbmVsPWZhbHNlIF0gLS0+Cis8aHRtbD4K
KzxoZWFkPgorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0
aCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8aW5wdXQg
aWQ9InRlc3RJbnB1dCIgdHlwZT0iZmlsZSI+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxz
Y3JpcHQ+CitkZXNjcmlwdGlvbigiQmFzaWMgdGVzdGluZyBmb3IgdGhlIEZpbGUgVXBsb2FkIFBh
bmVsIG9uIGlPUy4iKTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCitmdW5jdGlvbiBnZXRGaWxl
VXBsb2FkUGlja2VyTWVudUl0ZW1zU2NyaXB0KCkKK3sgCisgICAgcmV0dXJuIGAKKyAgICAoZnVu
Y3Rpb24oKSB7CisgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh1aUNvbnRyb2xsZXIuY29u
dGVudHNPZlVzZXJJbnRlcmZhY2VJdGVtKCdmaWxlVXBsb2FkUGFuZWxNZW51JykpOworICAgIH0p
KCk7YAorfQorCitmdW5jdGlvbiBkaXNtaXNzRmlsZVBpY2tlclNjcmlwdCgpCit7CisgICAgcmV0
dXJuIGAKKyAgICAoZnVuY3Rpb24oKSB7CisgICAgICAgIHVpQ29udHJvbGxlci5kaXNtaXNzRmls
ZVBpY2tlcihmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHVpQ29udHJvbGxlci51aVNjcmlwdENv
bXBsZXRlKCk7CisgICAgICAgIH0pOworICAgIH0pKCk7YAorfQorCitmdW5jdGlvbiBnZXRGaWxl
VXBsb2FkUGlja2VyTWVudUl0ZW1zKCkKK3sKKyAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29s
dmUpID0+IHsKKyAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChnZXRGaWxlVXBsb2FkUGlj
a2VyTWVudUl0ZW1zU2NyaXB0KCksIGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICAgICAgcmVz
b2x2ZShKU09OLnBhcnNlKHJlc3VsdCkuZmlsZVVwbG9hZFBhbmVsTWVudSk7CisgICAgICAgIH0p
OworICAgIH0pOworfQorCitmdW5jdGlvbiBkaXNtaXNzRmlsZVBpY2tlcigpCit7CisgICAgY29u
c3QgdWlTY3JpcHQgPSBgdWlDb250cm9sbGVyLmRpc21pc3NGaWxlUGlja2VyKCgpID0+IHVpQ29u
dHJvbGxlci51aVNjcmlwdENvbXBsZXRlKCkpYDsKKyAgICByZXR1cm4gbmV3IFByb21pc2UocmVz
b2x2ZSA9PiB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KHVpU2NyaXB0LCByZXNvbHZlKSk7Cit9CisK
K2Z1bmN0aW9uIHJ1bkFjY2VwdFRlc3QoYWNjZXB0LCBleHBlY3RlZE1lbnVJdGVtcykKK3sKKyAg
ICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsKKyAgICAgICAgZGVidWcoIiogYWNj
ZXB0ID0gIiArIGFjY2VwdCk7CisgICAgICAgIHRlc3RJbnB1dC5hY2NlcHQgPSBhY2NlcHQ7CisK
KyAgICAgICAgVUlIZWxwZXIuYWN0aXZhdGVFbGVtZW50KHRlc3RJbnB1dCkudGhlbigoKSA9PiB7
CisgICAgICAgICAgICBnZXRGaWxlVXBsb2FkUGlja2VyTWVudUl0ZW1zKCkudGhlbigoX2l0ZW1z
KSA9PiB7CisgICAgICAgICAgICAgICAgaXRlbXMgPSBfaXRlbXM7CisgICAgICAgICAgICAgICAg
c2hvdWxkQmVUcnVlKCJhcmVBcnJheXNFcXVhbChpdGVtcywgIiArIGV4cGVjdGVkTWVudUl0ZW1z
ICsgIikiKTsKKyAgICAgICAgICAgICAgICBkZWJ1ZygiIik7CisgICAgICAgICAgICAgICAgZGlz
bWlzc0ZpbGVQaWNrZXIoKS50aGVuKCgpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgICAgICAg
IH0pOworICAgICAgICB9KTsKKyAgICB9KTsKK30KKworYXN5bmMgZnVuY3Rpb24gcnVuVGVzdHMo
KQoreworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuc3R5bGUgPSAiZGlz
cGxheTogbm9uZSI7CisKKyAgICBhd2FpdCBydW5BY2NlcHRUZXN0KCIiLCAnWyJQaG90byBMaWJy
YXJ5IiwgIlRha2UgUGhvdG8gb3IgVmlkZW8iLCAiQnJvd3NlIl0nKTsKKyAgICBhd2FpdCBydW5B
Y2NlcHRUZXN0KCJpbWFnZS8qIiwgJ1siUGhvdG8gTGlicmFyeSIsICJUYWtlIFBob3RvIiwgIkJy
b3dzZSJdJyk7CisgICAgYXdhaXQgcnVuQWNjZXB0VGVzdCgidmlkZW8vKiIsICdbIlBob3RvIExp
YnJhcnkiLCAiVGFrZSBWaWRlbyIsICJCcm93c2UiXScpOworICAgIGF3YWl0IHJ1bkFjY2VwdFRl
c3QoImltYWdlLyosIHZpZGVvLyoiLCAnWyJQaG90byBMaWJyYXJ5IiwgIlRha2UgUGhvdG8gb3Ig
VmlkZW8iLCAiQnJvd3NlIl0nKTsKKyAgICBhd2FpdCBydW5BY2NlcHRUZXN0KCIuUE5HLCAuR0lG
IiwgJ1siUGhvdG8gTGlicmFyeSIsICJUYWtlIFBob3RvIiwgIkJyb3dzZSJdJyk7CisgICAgYXdh
aXQgcnVuQWNjZXB0VGVzdCgiLlBORywgLkdJRiwgLk1PViIsICdbIlBob3RvIExpYnJhcnkiLCAi
VGFrZSBQaG90byBvciBWaWRlbyIsICJCcm93c2UiXScpOworICAgIGF3YWl0IHJ1bkFjY2VwdFRl
c3QoImF1ZGlvLyoiLCAnWyJCcm93c2UiXScpOworICAgIGF3YWl0IHJ1bkFjY2VwdFRlc3QoIi5U
WFQiLCAnWyJCcm93c2UiXScpOworICAgIGF3YWl0IHJ1bkFjY2VwdFRlc3QoIi5QREYiLCAnWyJC
cm93c2UiXScpOworICAgIGF3YWl0IHJ1bkFjY2VwdFRlc3QoIi5QREYsIC5UWFQiLCAnWyJCcm93
c2UiXScpOworCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5zdHlsZSA9
ICIiOworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCisKK29ubG9hZCA9IHJ1blRlc3RzOworCis8
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>365989</attachid>
            <date>2019-03-26 12:49:42 -0700</date>
            <delta_ts>2019-03-26 14:40:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196265-20190326124941.patch</filename>
            <type>text/plain</type>
            <size>21184</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQzNDk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGZlMWEzYjYzNDY4Y2I5YWI3
NGU3ZWJlZWU0NDJkMzE5NzIwNDFmMGYuLjhiYzgwMDQzZDVhZDhhY2JlZjdlN2ZkZDFjMjA1ZTQ0
ZDhhNjcxYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTktMDMtMjYgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYmFzaWMgbGF5b3V0IHRlc3Qg
Y292ZXJhZ2UgZm9yIEZpbGUgUGlja2VyIG9uIGlPUworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2MjY1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGxheW91dCB0ZXN0IGluZnJhc3RydWN0dXJlIHRv
IHRlc3QgdGhlIGZpbGUgcGlja2VyIG9uIGlPUy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2Rpc21pc3NGaWxlUGlj
a2VyXSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmg6
CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAg
ICAgKC1bV0tDb250ZW50VmlldyBkaXNtaXNzRmlsZVBpY2tlcl0pOgorICAgICAgICAoLVtXS0Nv
bnRlbnRWaWV3IF9jb250ZW50c09mVXNlckludGVyZmFjZUl0ZW06XSk6CisgICAgICAgICogVUlQ
cm9jZXNzL2lvcy9mb3Jtcy9XS0ZpbGVVcGxvYWRQYW5lbC5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9pb3MvZm9ybXMvV0tGaWxlVXBsb2FkUGFuZWwubW06CisgICAgICAgICgtW1dLRmlsZVVwbG9h
ZFBhbmVsIGN1cnJlbnRBdmFpbGFibGVBY3Rpb25UaXRsZXNdKToKKwogMjAxOS0wMy0yNiAgUGhp
bGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CiAKICAgICAgICAgW1dQRV1bUXRd
IFVuaW5pdGlhbGl6ZWQgcmFjeSBWaWV3QmFja2VuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggMjIxOTc4NTllMDExYWIyOGI1ZGM2Yzk3
NWRkODZkNGZkNTM1ZjU2Ni4uZDkwZThlYWI0ODRjYjcyOWNjYWVlZjlmZDAxMGZmMjU0ZDc0NzE4
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
dy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1t
CkBAIC02NjY5LDYgKzY2NjksMTEgQEAgLSAodm9pZClkaXNtaXNzRm9ybUFjY2Vzc29yeVZpZXcK
ICAgICBbX2NvbnRlbnRWaWV3IGFjY2Vzc29yeURvbmVdOwogfQogCistICh2b2lkKV9kaXNtaXNz
RmlsZVBpY2tlcgoreworICAgIFtfY29udGVudFZpZXcgZGlzbWlzc0ZpbGVQaWNrZXJdOworfQor
CiAtICh2b2lkKXNldFRpbWVQaWNrZXJWYWx1ZVRvSG91cjooTlNJbnRlZ2VyKWhvdXIgbWludXRl
OihOU0ludGVnZXIpbWludXRlCiB7CiAgICAgW19jb250ZW50VmlldyBzZXRUaW1lUGlja2VyVmFs
dWVUb0hvdXI6aG91ciBtaW51dGU6bWludXRlXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCmluZGV4IDhlOTllY2VhN2YwZTFm
OTdkYTdmYTIyYThjYjA5Y2YwMWI1MTI0YzAuLmE4NmQxNDUzZDE4Y2U1NGQ2YTdmMzdkNzQ3NDMw
MjM2YWIwMThmNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXdQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlld1ByaXZhdGUuaApAQCAtNDUxLDYgKzQ1MSw3IEBAIHR5cGVkZWYgTlNfT1BU
SU9OUyhOU1VJbnRlZ2VyLCBfV0tSZWN0RWRnZSkgewogLSAodm9pZClrZXlib2FyZEFjY2Vzc29y
eUJhck5leHQgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTAuMCkpOwogLSAodm9pZClrZXlib2FyZEFj
Y2Vzc29yeUJhclByZXZpb3VzIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEwLjApKTsKIC0gKHZvaWQp
ZGlzbWlzc0Zvcm1BY2Nlc3NvcnlWaWV3IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEwLjMpKTsKKy0g
KHZvaWQpX2Rpc21pc3NGaWxlUGlja2VyIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEp
KTsKIC0gKHZvaWQpc2VsZWN0Rm9ybUFjY2Vzc29yeVBpY2tlclJvdzooaW50KXJvd0luZGV4IFdL
X0FQSV9BVkFJTEFCTEUoaW9zKDEwLjMpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25s
eSkgTlNTdHJpbmcgKnRleHRDb250ZW50VHlwZUZvclRlc3RpbmcgV0tfQVBJX0FWQUlMQUJMRShp
b3MoMTIuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1N0cmluZyAqc2Vs
ZWN0Rm9ybVBvcG92ZXJUaXRsZSBXS19BUElfQVZBSUxBQkxFKGlvcygxMi4wKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9u
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9u
LmgKaW5kZXggNzg4MzlmMDYyYTA4NzkwOTU0OGJiMzM5YTM0YzYzNWY0MmY5ZDlhNS4uZjhkZjEz
Y2Y0MjJjZjUxOTc1ZjNjMzYzOGEzZTdiNGFjOWRmYTg3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaApAQCAtNDMw
LDYgKzQzMCw3IEBAIEZPUl9FQUNIX1BSSVZBVEVfV0tDT05URU5UVklFV19BQ1RJT04oREVDTEFS
RV9XS0NPTlRFTlRWSUVXX0FDVElPTl9GT1JfV0VCX1ZJRVcpCiAtICh2b2lkKV9zaG93UnVuT3Bl
blBhbmVsOihBUEk6Ok9wZW5QYW5lbFBhcmFtZXRlcnMqKXBhcmFtZXRlcnMgcmVzdWx0TGlzdGVu
ZXI6KFdlYktpdDo6V2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eSopbGlzdGVuZXI7CiAt
ICh2b2lkKV9zaG93U2hhcmVTaGVldDooY29uc3QgV2ViQ29yZTo6U2hhcmVEYXRhV2l0aFBhcnNl
ZFVSTCYpc2hhcmVEYXRhIGNvbXBsZXRpb25IYW5kbGVyOihXVEY6OkNvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYpY29tcGxldGlvbkhhbmRsZXI7CiAtICh2b2lkKWFjY2Vzc29yeURvbmU7
CistICh2b2lkKWRpc21pc3NGaWxlUGlja2VyOwogLSAodm9pZClfZGlkSGFuZGxlS2V5RXZlbnQ6
KDo6V2ViRXZlbnQgKilldmVudCBldmVudFdhc0hhbmRsZWQ6KEJPT0wpZXZlbnRXYXNIYW5kbGVk
OwogLSAoVmVjdG9yPFdlYktpdDo6T3B0aW9uSXRlbT4mKSBmb2N1c2VkU2VsZWN0RWxlbWVudE9w
dGlvbnM7CiAtICh2b2lkKV9lbmFibGVJbnNwZWN0b3JOb2RlU2VhcmNoOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0K
aW5kZXggMzZiNTcyNzY5ZmEwZmY3NDM0YmNhZmI4ZTUwYWIwNmUxN2RjZTRiNC4uNTE3NDc4YjFh
MmE4MjVhZmM4OWRlYWQ3ZTdjYWYxNDM3M2FmYzk2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC00NTAx
LDYgKzQ1MDEsMTEgQEAgLSAoQk9PTClfaW50ZXJwcmV0S2V5RXZlbnQ6KDo6V2ViRXZlbnQgKill
dmVudCBpc0NoYXJFdmVudDooQk9PTClpc0NoYXJFdmVudAogICAgIHJldHVybiBOTzsKIH0KIAor
LSAodm9pZClkaXNtaXNzRmlsZVBpY2tlcgoreworICAgIFtfZmlsZVVwbG9hZFBhbmVsIGRpc21p
c3NdOworfQorCiAtIChCT09MKWlzU2Nyb2xsYWJsZUZvcktleWJvYXJkU2Nyb2xsVmlld0FuaW1h
dG9yOihXS0tleWJvYXJkU2Nyb2xsVmlld0FuaW1hdG9yICopYW5pbWF0b3IKIHsKICAgICBpZiAo
X3BhZ2UtPmVkaXRvclN0YXRlKCkuaXNDb250ZW50RWRpdGFibGUpCkBAIC03MDA2LDYgKzcwMTEs
MTMgQEAgLSAoTlNEaWN0aW9uYXJ5ICopX2NvbnRlbnRzT2ZVc2VySW50ZXJmYWNlSXRlbTooTlNT
dHJpbmcgKil1c2VySW50ZXJmYWNlSXRlbQogICAgICAgICByZXR1cm4gQHsgdXNlckludGVyZmFj
ZUl0ZW06IEB7IEAicGFnZVVSTCI6IHVybCB9IH07CiAgICAgfQogI2VuZGlmCisKKyAgICBpZiAo
W3VzZXJJbnRlcmZhY2VJdGVtIGlzRXF1YWxUb1N0cmluZzpAImZpbGVVcGxvYWRQYW5lbE1lbnUi
XSkgeworICAgICAgICBpZiAoIV9maWxlVXBsb2FkUGFuZWwpCisgICAgICAgICAgICByZXR1cm4g
QHsgdXNlckludGVyZmFjZUl0ZW06IEBbXSB9OworICAgICAgICBhdXRvKiByZXN1bHQgPSBAeyB1
c2VySW50ZXJmYWNlSXRlbTogW19maWxlVXBsb2FkUGFuZWwgY3VycmVudEF2YWlsYWJsZUFjdGlv
blRpdGxlc10gfTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CiAgICAgCiAgICAgcmV0
dXJuIG5pbDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jt
cy9XS0ZpbGVVcGxvYWRQYW5lbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1z
L1dLRmlsZVVwbG9hZFBhbmVsLmgKaW5kZXggZDZkNzJlNjRmNjM1NDFjZDM4OWRiYzI3OGVlOTA0
Y2VhY2Q2MmU1YS4uODY0OTcwMWM0N2JhOWEyZGEzYmM0NmI2ODZhZDJkODBjZTE5NDU5ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRmlsZVVwbG9hZFBh
bmVsLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRmlsZVVwbG9h
ZFBhbmVsLmgKQEAgLTQzLDYgKzQzLDggQEAgY2xhc3MgV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVu
ZXJQcm94eTsKIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aFZpZXc6KFdLQ29udGVudFZpZXcgKil2
aWV3OwogLSAodm9pZClwcmVzZW50V2l0aFBhcmFtZXRlcnM6KEFQSTo6T3BlblBhbmVsUGFyYW1l
dGVycyopcGFyYW1ldGVycyByZXN1bHRMaXN0ZW5lcjooV2ViS2l0OjpXZWJPcGVuUGFuZWxSZXN1
bHRMaXN0ZW5lclByb3h5KilsaXN0ZW5lcjsKIC0gKHZvaWQpZGlzbWlzczsKKworLSAoTlNBcnJh
eTxOU1N0cmluZyAqPiAqKWN1cnJlbnRBdmFpbGFibGVBY3Rpb25UaXRsZXM7CiBAZW5kCiAKIEBw
cm90b2NvbCBXS0ZpbGVVcGxvYWRQYW5lbERlbGVnYXRlIDxOU09iamVjdD4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0ZpbGVVcGxvYWRQYW5lbC5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0ZpbGVVcGxvYWRQYW5lbC5tbQpp
bmRleCAxZTk0YjhkMTJiOGM3MDViMmFhYTZkMjAzOTEzMzcyMDBmNjU2ZDhiLi5mNTc4MGQ4Yzg2
NjNiYmU5YTI5M2E1YWFlNmUwNmE5MGFmNGQzZWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGaWxlVXBsb2FkUGFuZWwubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRmlsZVVwbG9hZFBhbmVsLm1tCkBAIC0zMTIsNiAr
MzEyLDI2IEBAIC0gKHZvaWQpX2Rpc21pc3NEaXNwbGF5QW5pbWF0ZWQ6KEJPT0wpYW5pbWF0ZWQK
ICAgICB9CiB9CiAKKy0gKE5TQXJyYXk8TlNTdHJpbmcgKj4gKiljdXJyZW50QXZhaWxhYmxlQWN0
aW9uVGl0bGVzCit7CisgICAgTlNNdXRhYmxlQXJyYXk8TlNTdHJpbmcgKj4gKmFjdGlvblRpdGxl
cyA9IFtOU011dGFibGVBcnJheSBhcnJheV07CisKKyAgICBOU0FycmF5ICptZWRpYVR5cGVzID0g
VVRJc0Zvck1JTUVUeXBlcyhfbWltZVR5cGVzLmdldCgpKS5hbGxPYmplY3RzOworICAgIEJPT0wg
Y29udGFpbnNJbWFnZU1lZGlhVHlwZSA9ICFtZWRpYVR5cGVzLmNvdW50IHx8IGFycmF5Q29udGFp
bnNVVElUaGF0Q29uZm9ybXNUbyhtZWRpYVR5cGVzLCBrVVRUeXBlSW1hZ2UpOworICAgIEJPT0wg
Y29udGFpbnNWaWRlb01lZGlhVHlwZSA9ICFtZWRpYVR5cGVzLmNvdW50IHx8IGFycmF5Q29udGFp
bnNVVElUaGF0Q29uZm9ybXNUbyhtZWRpYVR5cGVzLCBrVVRUeXBlTW92aWUpOworICAgIGlmIChj
b250YWluc0ltYWdlTWVkaWFUeXBlIHx8IGNvbnRhaW5zVmlkZW9NZWRpYVR5cGUpIHsKKyAgICAg
ICAgW2FjdGlvblRpdGxlcyBhZGRPYmplY3Q6QCJQaG90byBMaWJyYXJ5Il07CisgICAgICAgIGlm
IChjb250YWluc0ltYWdlTWVkaWFUeXBlICYmIGNvbnRhaW5zVmlkZW9NZWRpYVR5cGUpCisgICAg
ICAgICAgICBbYWN0aW9uVGl0bGVzIGFkZE9iamVjdDpAIlRha2UgUGhvdG8gb3IgVmlkZW8iXTsK
KyAgICAgICAgZWxzZSBpZiAoY29udGFpbnNWaWRlb01lZGlhVHlwZSkKKyAgICAgICAgICAgIFth
Y3Rpb25UaXRsZXMgYWRkT2JqZWN0OkAiVGFrZSBWaWRlbyJdOworICAgICAgICBlbHNlCisgICAg
ICAgICAgICBbYWN0aW9uVGl0bGVzIGFkZE9iamVjdDpAIlRha2UgUGhvdG8iXTsKKyAgICB9Cisg
ICAgW2FjdGlvblRpdGxlcyBhZGRPYmplY3Q6QCJCcm93c2UiXTsKKyAgICByZXR1cm4gYWN0aW9u
VGl0bGVzOworfQorCiAjcHJhZ21hIG1hcmsgLSBNZWRpYSBUeXBlcwogCiBzdGF0aWMgTlNTZXQ8
TlNTdHJpbmcgKj4gKlVUSXNGb3JNSU1FVHlwZXMoTlNBcnJheSAqbWltZVR5cGVzKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGUzZWJjMGFiZTJj
ODczNTIyMDU4MDcwM2VmMmM1OTMzYzBjODJmNWQuLmU1NmIxM2RlMDQ4NmNmYzdiOTk4MmM4ZDVh
ZGQyMTI3ODZmYTFmMzMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxOS0wMy0yNiAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBiYXNpYyBsYXlvdXQgdGVzdCBjb3ZlcmFnZSBm
b3IgRmlsZSBQaWNrZXIgb24gaU9TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xOTYyNjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGQgbGF5b3V0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gdGVzdCB0aGUg
ZmlsZSBwaWNrZXIgb24gaU9TLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvaW9zL1VJU2Ny
aXB0Q29udHJvbGxlcklPUy5tbToKKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpk
aXNtaXNzRmlsZVBpY2tlcik6CisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENv
bnRleHQvQmluZGluZ3MvVUlTY3JpcHRDb250cm9sbGVyLmlkbDoKKyAgICAgICAgKiBUZXN0UnVu
bmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAg
ICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OmRpc21pc3NGaWxlUGlja2VyKToKKyAgICAgICAg
KiBUZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuaDoK
KyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAg
KFdUUjo6VGVzdENvbnRyb2xsZXI6OmNyZWF0ZVdlYlZpZXdXaXRoT3B0aW9ucyk6CisgICAgICAg
IChXVFI6OnVwZGF0ZVRlc3RPcHRpb25zRnJvbVRlc3RIZWFkZXIpOgorICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuaDoKKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6Omhh
c1NhbWVJbml0aWFsaXphdGlvbk9wdGlvbnMgY29uc3QpOgorICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvaW9zL1Rlc3RDb250cm9sbGVySU9TLm1tOgorICAgICAgICAob3ZlcnJpZGVQcmVzZW50
Vmlld0NvbnRyb2xsZXIpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1J
bml0aWFsaXplKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2lvcy9VSVNjcmlwdENvbnRy
b2xsZXJJT1MubW06CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6ZGlzbWlzc0Zp
bGVQaWNrZXIpOgorCiAyMDE5LTAzLTI2ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFA
aWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLiBGaXggdHlwbyBpbiBHTGliIGdlb2xv
Y2F0aW9uIEFQSSBhZnRlciByMjQzMjg1LgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2lv
cy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW0KaW5kZXggYzEyMDk1MmI1N2Y5YjViYmUzZTRlMDVi
ZjUwN2NjYzk2NzZiZDQyMS4uMjJkNTVhYmMxMmJiOWNiODFhYzc0NmRkMGE0ODg3NjQ3MmZmZWI1
MSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvaW9zL1VJU2NyaXB0Q29udHJvbGxl
cklPUy5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9pb3MvVUlTY3JpcHRDb250cm9sbGVy
SU9TLm1tCkBAIC0xNzUsNiArMTc1LDEwIEBAIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpkaXNt
aXNzRm9ybUFjY2Vzc29yeVZpZXcoKQogewogfQogCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6
ZGlzbWlzc0ZpbGVQaWNrZXIoSlNWYWx1ZVJlZikKK3sKK30KKwogdm9pZCBVSVNjcmlwdENvbnRy
b2xsZXI6OnNldFRpbWVQaWNrZXJWYWx1ZShsb25nLCBsb25nKQogewogfQpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRD
b250cm9sbGVyLmlkbCBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L0Jp
bmRpbmdzL1VJU2NyaXB0Q29udHJvbGxlci5pZGwKaW5kZXggOWFmYzUxZWZmYzljOTg1MzExOGEx
MmRmYjI3MjBkN2RkODI0NDdjMy4uZWVjYjIwNjBlYjZiMmUxMjlmOGIxMmQzY2M1MjBiZjU1N2Zh
MGY3YyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQv
QmluZGluZ3MvVUlTY3JpcHRDb250cm9sbGVyLmlkbAorKysgYi9Ub29scy9UZXN0UnVubmVyU2hh
cmVkL1VJU2NyaXB0Q29udGV4dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsCkBAIC0x
ODcsNiArMTg3LDggQEAgaW50ZXJmYWNlIFVJU2NyaXB0Q29udHJvbGxlciB7CiAgICAgLy8gRXF1
aXZhbGVudCBvZiBwcmVzc2luZyB0aGUgRG9uZSBidXR0b24gaW4gdGhlIGZvcm0gYWNjZXNzb3J5
IGJhci4KICAgICB2b2lkIGRpc21pc3NGb3JtQWNjZXNzb3J5VmlldygpOwogCisgICAgdm9pZCBk
aXNtaXNzRmlsZVBpY2tlcihvYmplY3QgY2FsbGJhY2spOworCiAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIERPTVN0cmluZyB0ZXh0Q29udGVudFR5cGU7CiAKICAgICAvLyBGb3JtIGNvbnRyb2wgaGFu
ZGxpbmcKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0
L1VJU2NyaXB0Q29udHJvbGxlci5jcHAgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0
Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuY3BwCmluZGV4IGVkM2UzNDJiNGQwZTJiNjIzOTBh
Mjk3NDZmZWYwOTk4MWYyY2I5YTIuLjIzZTQyZDEyNGIxZTllY2NiN2ViOTM2OWRlYTJiNGJkYjZm
YWM2YWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0
L1VJU2NyaXB0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNj
cmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmNwcApAQCAtMzQ3LDYgKzM0NywxMCBAQCB2
b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6ZGlzbWlzc0Zvcm1BY2Nlc3NvcnlWaWV3KCkKIHsKIH0K
IAordm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OmRpc21pc3NGaWxlUGlja2VyKEpTVmFsdWVSZWYp
Cit7Cit9CisKIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpzZXRUaW1lUGlja2VyVmFsdWUobG9u
ZywgbG9uZykKIHsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3Jp
cHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5oIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9V
SVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmgKaW5kZXggNWE4ZGY2ZWRlM2E4M2Ri
NDI1NjYyOWZkMjllMjNiZjM1M2FmOGY0Ni4uZTQxZjhhMzczOTE4ODM2MTUzZDliMzJlOWVkYjAy
ZWRhZDk5MzYxNiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENv
bnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9V
SVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmgKQEAgLTEwNiw2ICsxMDYsNyBAQCBw
dWJsaWM6CiAKICAgICB2b2lkIGFwcGx5QXV0b2NvcnJlY3Rpb24oSlNTdHJpbmdSZWYgbmV3U3Ry
aW5nLCBKU1N0cmluZ1JlZiBvbGRTdHJpbmcsIEpTVmFsdWVSZWYgY2FsbGJhY2spOwogICAgIAor
ICAgIHZvaWQgZGlzbWlzc0ZpbGVQaWNrZXIoSlNWYWx1ZVJlZiBjYWxsYmFjayk7CiAgICAgdm9p
ZCBkaXNtaXNzRm9ybUFjY2Vzc29yeVZpZXcoKTsKICAgICB2b2lkIHNlbGVjdEZvcm1BY2Nlc3Nv
cnlQaWNrZXJSb3cobG9uZyk7CiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHRleHRDb250
ZW50VHlwZSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNw
cAppbmRleCBlODkwOGZiMzYyMTMzMmRjMWJmZTkwYTI3ZmMwYmI2Njg1YTZiNzNkLi5hYTI4Zjdk
NDBmN2RkOGM4YmMxYjJmOGM5MTQ1NzA2ZDI0ZjU4OWZhIDEwMDY0NAotLS0gYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAtNjA1LDcgKzYwNSw3IEBAIHZvaWQgVGVzdENvbnRy
b2xsZXI6OmNyZWF0ZVdlYlZpZXdXaXRoT3B0aW9ucyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW9u
cykKICAgICAgICAgMCwgLy8gZGlkRHJhdwogICAgICAgICAwLCAvLyBwYWdlRGlkU2Nyb2xsCiAg
ICAgICAgIDAsIC8vIGV4Y2VlZGVkRGF0YWJhc2VRdW90YSwKLSAgICAgICAgcnVuT3BlblBhbmVs
LAorICAgICAgICBvcHRpb25zLnNob3VsZEhhbmRsZVJ1bk9wZW5QYW5lbCA/IHJ1bk9wZW5QYW5l
bCA6IDAsCiAgICAgICAgIGRlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVl
c3QsCiAgICAgICAgIDAsIC8vIGhlYWRlckhlaWdodAogICAgICAgICAwLCAvLyBmb290ZXJIZWln
aHQKQEAgLTEzMTQsNiArMTMxNCw4IEBAIHN0YXRpYyB2b2lkIHVwZGF0ZVRlc3RPcHRpb25zRnJv
bVRlc3RIZWFkZXIoVGVzdE9wdGlvbnMmIHRlc3RPcHRpb25zLCBjb25zdCBzdGQ6CiAgICAgICAg
ICAgICB0ZXN0T3B0aW9ucy5lZGl0YWJsZSA9IHBhcnNlQm9vbGVhblRlc3RIZWFkZXJWYWx1ZSh2
YWx1ZSk7CiAgICAgICAgIGVsc2UgaWYgKGtleSA9PSAiZW5hYmxlVW5kb01hbmFnZXJBUEkiKQog
ICAgICAgICAgICAgdGVzdE9wdGlvbnMuZW5hYmxlVW5kb01hbmFnZXJBUEkgPSBwYXJzZUJvb2xl
YW5UZXN0SGVhZGVyVmFsdWUodmFsdWUpOworICAgICAgICBlbHNlIGlmIChrZXkgPT0gInNob3Vs
ZEhhbmRsZVJ1bk9wZW5QYW5lbCIpCisgICAgICAgICAgICB0ZXN0T3B0aW9ucy5zaG91bGRIYW5k
bGVSdW5PcGVuUGFuZWwgPSBwYXJzZUJvb2xlYW5UZXN0SGVhZGVyVmFsdWUodmFsdWUpOwogICAg
ICAgICBlbHNlIGlmIChrZXkgPT0gImNvbnRlbnRJbnNldC50b3AiKQogICAgICAgICAgICAgdGVz
dE9wdGlvbnMuY29udGVudEluc2V0VG9wID0gc3RkOjpzdG9kKHZhbHVlKTsKICAgICAgICAgZWxz
ZSBpZiAoa2V5ID09ICJpZ25vcmVTeW5jaHJvbm91c01lc3NhZ2luZ1RpbWVvdXRzIikKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuaCBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuaAppbmRleCBiMGZlZDcyM2EyNzNkOGI5ZmU3ZjZlODY2
YjE3MDBkOTc4MzQ3NTdlLi4xZDBhZWUwODU2OTNlMDg5MTAxYzk0ZWY0NTI4NTRmOTIzMjZkOThj
IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RPcHRpb25zLmgKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5oCkBAIC04OSw2ICs4OSw3IEBAIHN0
cnVjdCBUZXN0T3B0aW9ucyB7CiAgICAgYm9vbCBlbmFibGVFZGl0YWJsZUltYWdlcyB7IGZhbHNl
IH07CiAgICAgYm9vbCBlZGl0YWJsZSB7IGZhbHNlIH07CiAgICAgYm9vbCBlbmFibGVVbmRvTWFu
YWdlckFQSSB7IGZhbHNlIH07CisgICAgYm9vbCBzaG91bGRIYW5kbGVSdW5PcGVuUGFuZWwgeyB0
cnVlIH07CiAKICAgICBkb3VibGUgY29udGVudEluc2V0VG9wIHsgMCB9OwogCkBAIC0xMzYsNiAr
MTM3LDcgQEAgc3RydWN0IFRlc3RPcHRpb25zIHsKICAgICAgICAgICAgIHx8IGVuYWJsZUVkaXRh
YmxlSW1hZ2VzICE9IG9wdGlvbnMuZW5hYmxlRWRpdGFibGVJbWFnZXMKICAgICAgICAgICAgIHx8
IGVkaXRhYmxlICE9IG9wdGlvbnMuZWRpdGFibGUKICAgICAgICAgICAgIHx8IGVuYWJsZVVuZG9N
YW5hZ2VyQVBJICE9IG9wdGlvbnMuZW5hYmxlVW5kb01hbmFnZXJBUEkKKyAgICAgICAgICAgIHx8
IHNob3VsZEhhbmRsZVJ1bk9wZW5QYW5lbCAhPSBvcHRpb25zLnNob3VsZEhhbmRsZVJ1bk9wZW5Q
YW5lbAogICAgICAgICAgICAgfHwgY29udGVudEluc2V0VG9wICE9IG9wdGlvbnMuY29udGVudElu
c2V0VG9wKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL2lvcy9UZXN0Q29udHJvbGxlcklPUy5tbSBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvaW9zL1Rlc3RDb250cm9sbGVySU9TLm1tCmluZGV4IGVhZjFmNWEyYmY2ZDdlZDA5
ZmIzNGM2MDcyMDk0ODcyNzVkN2IzYWIuLjQzZGU0Y2I0ZjVlM2M1MDg3NjVhN2M5YWZlYWNhMjkz
MGQwODljOTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1Rlc3RDb250
cm9sbGVySU9TLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1Rlc3RDb250cm9s
bGVySU9TLm1tCkBAIC01MCw2ICs1MCwxMCBAQCBzdGF0aWMgQk9PTCBvdmVycmlkZUlzSW5IYXJk
d2FyZUtleWJvYXJkTW9kZSgpCiAgICAgcmV0dXJuIE5POwogfQogCitzdGF0aWMgdm9pZCBvdmVy
cmlkZVByZXNlbnRWaWV3Q29udHJvbGxlcigpCit7Cit9CisKIG5hbWVzcGFjZSBXVFIgewogCiBz
dGF0aWMgYm9vbCBpc0RvbmVXYWl0aW5nRm9yS2V5Ym9hcmRUb0Rpc21pc3MgPSB0cnVlOwpAQCAt
OTYsNiArMTAwLDkgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1Jbml0aWFsaXplKCkK
ICAgICAvLyBPdmVycmlkZSB0aGUgaW1wbGVtZW50YXRpb24gb2YgK1tVSUtleWJvYXJkIGlzSW5I
YXJkd2FyZUtleWJvYXJkTW9kZV0gdG8gZW5zdXJlIHRoYXQgdGVzdCBydW5zIGFyZSBkZXRlcm1p
bmlzdGljCiAgICAgLy8gcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGEgaGFyZHdhcmUga2V5Ym9hcmQg
aXMgYXR0YWNoZWQuIFdlIGludGVudGlvbmFsbHkgbmV2ZXIgcmVzdG9yZSB0aGUgb3JpZ2luYWwg
aW1wbGVtZW50YXRpb24uCiAgICAgbWV0aG9kX3NldEltcGxlbWVudGF0aW9uKGNsYXNzX2dldENs
YXNzTWV0aG9kKFtVSUtleWJvYXJkIGNsYXNzXSwgQHNlbGVjdG9yKGlzSW5IYXJkd2FyZUtleWJv
YXJkTW9kZSkpLCByZWludGVycHJldF9jYXN0PElNUD4ob3ZlcnJpZGVJc0luSGFyZHdhcmVLZXli
b2FyZE1vZGUpKTsKKworICAgIG1ldGhvZF9zZXRJbXBsZW1lbnRhdGlvbihjbGFzc19nZXRJbnN0
YW5jZU1ldGhvZChbVUlWaWV3Q29udHJvbGxlciBjbGFzc10sIEBzZWxlY3RvcihwcmVzZW50Vmll
d0NvbnRyb2xsZXI6YW5pbWF0ZWQ6Y29tcGxldGlvbjopKSwgcmVpbnRlcnByZXRfY2FzdDxJTVA+
KG92ZXJyaWRlUHJlc2VudFZpZXdDb250cm9sbGVyKSk7CisgICAgbWV0aG9kX3NldEltcGxlbWVu
dGF0aW9uKGNsYXNzX2dldEluc3RhbmNlTWV0aG9kKFtVSVBvcG92ZXJDb250cm9sbGVyIGNsYXNz
XSwgQHNlbGVjdG9yKHByZXNlbnRQb3BvdmVyRnJvbVJlY3Q6aW5WaWV3OnBlcm1pdHRlZEFycm93
RGlyZWN0aW9uczphbmltYXRlZDopKSwgcmVpbnRlcnByZXRfY2FzdDxJTVA+KG92ZXJyaWRlUHJl
c2VudFZpZXdDb250cm9sbGVyKSk7CiB9CiAKIHZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3Jt
RGVzdHJveSgpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9VSVNjcmlw
dENvbnRyb2xsZXJJT1MubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9VSVNjcmlwdENv
bnRyb2xsZXJJT1MubW0KaW5kZXggOTUxN2I0ZTI2ZGNmZDMzOTJlNmJlMTYxYTc5MDllODhiNWU5
ODJjMC4uYWE5ZDg0ODg1YWFhODgwZDM5ODFlZWRkNGZhMzg0OTlhN2Y4ZjE2ZiAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1tCisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5tbQpA
QCAtNDgyLDYgKzQ4MiwxOSBAQCB2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6ZGlzbWlzc0Zvcm1B
Y2Nlc3NvcnlWaWV3KCkKICAgICBbd2ViVmlldyBkaXNtaXNzRm9ybUFjY2Vzc29yeVZpZXddOwog
fQogCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6ZGlzbWlzc0ZpbGVQaWNrZXIoSlNWYWx1ZVJl
ZiBjYWxsYmFjaykKK3sKKyAgICBUZXN0UnVubmVyV0tXZWJWaWV3ICp3ZWJWaWV3ID0gVGVzdENv
bnRyb2xsZXI6OnNpbmdsZXRvbigpLm1haW5XZWJWaWV3KCktPnBsYXRmb3JtVmlldygpOworICAg
IFt3ZWJWaWV3IF9kaXNtaXNzRmlsZVBpY2tlcl07CisKKyAgICAvLyBSb3VuZC10cmlwIHdpdGgg
dGhlIFdlYlByb2Nlc3MgdG8gbWFrZSBzdXJlIGl0IGhhcyBiZWVuIG5vdGlmaWVkIG9mIHRoZSBk
aXNtaXNzYWwuCisgICAgdW5zaWduZWQgY2FsbGJhY2tJRCA9IG1fY29udGV4dC0+cHJlcGFyZUZv
ckFzeW5jVGFzayhjYWxsYmFjaywgQ2FsbGJhY2tUeXBlTm9uUGVyc2lzdGVudCk7CisgICAgW3dl
YlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAiIiBjb21wbGV0aW9uSGFuZGxlcjpeKGlkIHJlc3Vs
dCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgaWYgKG1fY29udGV4dCkKKyAgICAgICAgICAg
IG1fY29udGV4dC0+YXN5bmNUYXNrQ29tcGxldGUoY2FsbGJhY2tJRCk7CisgICAgfV07Cit9CisK
IEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBVSVNjcmlwdENvbnRyb2xsZXI6OnNlbGVjdEZvcm1Q
b3BvdmVyVGl0bGUoKSBjb25zdAogewogICAgIFRlc3RSdW5uZXJXS1dlYlZpZXcgKndlYlZpZXcg
PSBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkubWFpbldlYlZpZXcoKS0+cGxhdGZvcm1WaWV3
KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggYzUzZGRmNzc2YmEwN2NmMTIwMjEzYTIzMTU5NGVlYzNlZDk4MWEwMi4uNjQ4
MjA2YzI4NWFhZTRlMmM2ZGIyNmNiMDFmNjJmMmNmNTYzYzYxNCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1
IEBACisyMDE5LTAzLTI2ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAg
ICAgQWRkIGJhc2ljIGxheW91dCB0ZXN0IGNvdmVyYWdlIGZvciBGaWxlIFBpY2tlciBvbiBpT1MK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NjI2NQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBuZXcg
bGF5b3V0IHRlc3QuCisKKyAgICAgICAgKiBmYXN0L2Zvcm1zL2lvcy9maWxlLXVwbG9hZC1wYW5l
bC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvaW9zL2ZpbGUtdXBs
b2FkLXBhbmVsLmh0bWw6IEFkZGVkLgorCiAyMDE5LTAzLTI2ICBQZXIgQXJuZSBWb2xsYW4gIDxw
dm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBMYXlvdXQgVGVzdCBqcy9tYXRoLWNsejMyLmh0
bWwgaXMgZmFpbGluZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pb3MvZmls
ZS11cGxvYWQtcGFuZWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pb3Mv
ZmlsZS11cGxvYWQtcGFuZWwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk4MDE0YWZlYjAzMzFh
YzE3ZDYyZGNiNmMyMzExMTkzZmMxZmQxZWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL2lvcy9maWxlLXVwbG9hZC1wYW5lbC1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwzOSBAQAorQmFzaWMgdGVzdGluZyBmb3IgdGhlIEZpbGUgVXBsb2FkIFBhbmVsIG9uIGlPUy4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKKyogYWNjZXB0ID0gCitQQVNTIGFyZUFy
cmF5c0VxdWFsKGl0ZW1zLCBbIlBob3RvIExpYnJhcnkiLCAiVGFrZSBQaG90byBvciBWaWRlbyIs
ICJCcm93c2UiXSkgaXMgdHJ1ZQorCisqIGFjY2VwdCA9IGltYWdlLyoKK1BBU1MgYXJlQXJyYXlz
RXF1YWwoaXRlbXMsIFsiUGhvdG8gTGlicmFyeSIsICJUYWtlIFBob3RvIiwgIkJyb3dzZSJdKSBp
cyB0cnVlCisKKyogYWNjZXB0ID0gdmlkZW8vKgorUEFTUyBhcmVBcnJheXNFcXVhbChpdGVtcywg
WyJQaG90byBMaWJyYXJ5IiwgIlRha2UgVmlkZW8iLCAiQnJvd3NlIl0pIGlzIHRydWUKKworKiBh
Y2NlcHQgPSBpbWFnZS8qLCB2aWRlby8qCitQQVNTIGFyZUFycmF5c0VxdWFsKGl0ZW1zLCBbIlBo
b3RvIExpYnJhcnkiLCAiVGFrZSBQaG90byBvciBWaWRlbyIsICJCcm93c2UiXSkgaXMgdHJ1ZQor
CisqIGFjY2VwdCA9IC5QTkcsIC5HSUYKK1BBU1MgYXJlQXJyYXlzRXF1YWwoaXRlbXMsIFsiUGhv
dG8gTGlicmFyeSIsICJUYWtlIFBob3RvIiwgIkJyb3dzZSJdKSBpcyB0cnVlCisKKyogYWNjZXB0
ID0gLlBORywgLkdJRiwgLk1PVgorUEFTUyBhcmVBcnJheXNFcXVhbChpdGVtcywgWyJQaG90byBM
aWJyYXJ5IiwgIlRha2UgUGhvdG8gb3IgVmlkZW8iLCAiQnJvd3NlIl0pIGlzIHRydWUKKworKiBh
Y2NlcHQgPSBhdWRpby8qCitQQVNTIGFyZUFycmF5c0VxdWFsKGl0ZW1zLCBbIkJyb3dzZSJdKSBp
cyB0cnVlCisKKyogYWNjZXB0ID0gLlRYVAorUEFTUyBhcmVBcnJheXNFcXVhbChpdGVtcywgWyJC
cm93c2UiXSkgaXMgdHJ1ZQorCisqIGFjY2VwdCA9IC5QREYKK1BBU1MgYXJlQXJyYXlzRXF1YWwo
aXRlbXMsIFsiQnJvd3NlIl0pIGlzIHRydWUKKworKiBhY2NlcHQgPSAuUERGLCAuVFhUCitQQVNT
IGFyZUFycmF5c0VxdWFsKGl0ZW1zLCBbIkJyb3dzZSJdKSBpcyB0cnVlCisKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL2lvcy9maWxlLXVwbG9hZC1wYW5lbC5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9pb3MvZmlsZS11cGxvYWQtcGFuZWwuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOTk1
NDBkNzM3M2NlM2M2YmNmNTQ2YWFlNjE1N2UyMmI1MWMwZTQ1Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pb3MvZmlsZS11cGxvYWQtcGFuZWwuaHRtbApAQCAtMCww
ICsxLDkwIEBACis8IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VG
bGV4aWJsZVZpZXdwb3J0PXRydWUsIHNob3VsZEhhbmRsZVJ1bk9wZW5QYW5lbD1mYWxzZSBdIC0t
PgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1k
ZXZpY2Utd2lkdGgiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2
PgorPGlucHV0IGlkPSJ0ZXN0SW5wdXQiIHR5cGU9ImZpbGUiPgorPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIkJhc2ljIHRlc3RpbmcgZm9yIHRoZSBGaWxl
IFVwbG9hZCBQYW5lbCBvbiBpT1MuIik7Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworZnVuY3Rp
b24gZ2V0RmlsZVVwbG9hZFBpY2tlck1lbnVJdGVtc1NjcmlwdCgpCit7IAorICAgIHJldHVybiBg
CisgICAgKGZ1bmN0aW9uKCkgeworICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodWlDb250
cm9sbGVyLmNvbnRlbnRzT2ZVc2VySW50ZXJmYWNlSXRlbSgnZmlsZVVwbG9hZFBhbmVsTWVudScp
KTsKKyAgICB9KSgpO2AKK30KKworZnVuY3Rpb24gZGlzbWlzc0ZpbGVQaWNrZXJTY3JpcHQoKQor
eworICAgIHJldHVybiBgCisgICAgKGZ1bmN0aW9uKCkgeworICAgICAgICB1aUNvbnRyb2xsZXIu
ZGlzbWlzc0ZpbGVQaWNrZXIoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB1aUNvbnRyb2xsZXIu
dWlTY3JpcHRDb21wbGV0ZSgpOworICAgICAgICB9KTsKKyAgICB9KSgpO2AKK30KKworZnVuY3Rp
b24gZ2V0RmlsZVVwbG9hZFBpY2tlck1lbnVJdGVtcygpCit7CisgICAgcmV0dXJuIG5ldyBQcm9t
aXNlKChyZXNvbHZlKSA9PiB7CisgICAgICAgIHRlc3RSdW5uZXIucnVuVUlTY3JpcHQoZ2V0Rmls
ZVVwbG9hZFBpY2tlck1lbnVJdGVtc1NjcmlwdCgpLCBmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAg
ICAgICAgIHJlc29sdmUoSlNPTi5wYXJzZShyZXN1bHQpLmZpbGVVcGxvYWRQYW5lbE1lbnUpOwor
ICAgICAgICB9KTsKKyAgICB9KTsKK30KKworZnVuY3Rpb24gZGlzbWlzc0ZpbGVQaWNrZXIoKQor
eworICAgIGNvbnN0IHVpU2NyaXB0ID0gYHVpQ29udHJvbGxlci5kaXNtaXNzRmlsZVBpY2tlcigo
KSA9PiB1aUNvbnRyb2xsZXIudWlTY3JpcHRDb21wbGV0ZSgpKWA7CisgICAgcmV0dXJuIG5ldyBQ
cm9taXNlKHJlc29sdmUgPT4gdGVzdFJ1bm5lci5ydW5VSVNjcmlwdCh1aVNjcmlwdCwgcmVzb2x2
ZSkpOworfQorCitmdW5jdGlvbiBydW5BY2NlcHRUZXN0KGFjY2VwdCwgZXhwZWN0ZWRNZW51SXRl
bXMpCit7CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CisgICAgICAgIGRl
YnVnKCIqIGFjY2VwdCA9ICIgKyBhY2NlcHQpOworICAgICAgICB0ZXN0SW5wdXQuYWNjZXB0ID0g
YWNjZXB0OworCisgICAgICAgIFVJSGVscGVyLmFjdGl2YXRlRWxlbWVudCh0ZXN0SW5wdXQpLnRo
ZW4oKCkgPT4geworICAgICAgICAgICAgZ2V0RmlsZVVwbG9hZFBpY2tlck1lbnVJdGVtcygpLnRo
ZW4oKF9pdGVtcykgPT4geworICAgICAgICAgICAgICAgIGl0ZW1zID0gX2l0ZW1zOworICAgICAg
ICAgICAgICAgIHNob3VsZEJlVHJ1ZSgiYXJlQXJyYXlzRXF1YWwoaXRlbXMsICIgKyBleHBlY3Rl
ZE1lbnVJdGVtcyArICIpIik7CisgICAgICAgICAgICAgICAgZGVidWcoIiIpOworICAgICAgICAg
ICAgICAgIGRpc21pc3NGaWxlUGlja2VyKCkudGhlbigoKSA9PiB7IHJlc29sdmUoKTsgfSk7Cisg
ICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9CisKK2FzeW5jIGZ1bmN0aW9u
IHJ1blRlc3RzKCkKK3sKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLnN0
eWxlID0gImRpc3BsYXk6IG5vbmUiOworCisgICAgYXdhaXQgcnVuQWNjZXB0VGVzdCgiIiwgJ1si
UGhvdG8gTGlicmFyeSIsICJUYWtlIFBob3RvIG9yIFZpZGVvIiwgIkJyb3dzZSJdJyk7CisgICAg
YXdhaXQgcnVuQWNjZXB0VGVzdCgiaW1hZ2UvKiIsICdbIlBob3RvIExpYnJhcnkiLCAiVGFrZSBQ
aG90byIsICJCcm93c2UiXScpOworICAgIGF3YWl0IHJ1bkFjY2VwdFRlc3QoInZpZGVvLyoiLCAn
WyJQaG90byBMaWJyYXJ5IiwgIlRha2UgVmlkZW8iLCAiQnJvd3NlIl0nKTsKKyAgICBhd2FpdCBy
dW5BY2NlcHRUZXN0KCJpbWFnZS8qLCB2aWRlby8qIiwgJ1siUGhvdG8gTGlicmFyeSIsICJUYWtl
IFBob3RvIG9yIFZpZGVvIiwgIkJyb3dzZSJdJyk7CisgICAgYXdhaXQgcnVuQWNjZXB0VGVzdCgi
LlBORywgLkdJRiIsICdbIlBob3RvIExpYnJhcnkiLCAiVGFrZSBQaG90byIsICJCcm93c2UiXScp
OworICAgIGF3YWl0IHJ1bkFjY2VwdFRlc3QoIi5QTkcsIC5HSUYsIC5NT1YiLCAnWyJQaG90byBM
aWJyYXJ5IiwgIlRha2UgUGhvdG8gb3IgVmlkZW8iLCAiQnJvd3NlIl0nKTsKKyAgICBhd2FpdCBy
dW5BY2NlcHRUZXN0KCJhdWRpby8qIiwgJ1siQnJvd3NlIl0nKTsKKyAgICBhd2FpdCBydW5BY2Nl
cHRUZXN0KCIuVFhUIiwgJ1siQnJvd3NlIl0nKTsKKyAgICBhd2FpdCBydW5BY2NlcHRUZXN0KCIu
UERGIiwgJ1siQnJvd3NlIl0nKTsKKyAgICBhd2FpdCBydW5BY2NlcHRUZXN0KCIuUERGLCAuVFhU
IiwgJ1siQnJvd3NlIl0nKTsKKworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xl
Iikuc3R5bGUgPSAiIjsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworCitvbmxvYWQgPSBydW5U
ZXN0czsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>365999</attachid>
            <date>2019-03-26 14:40:30 -0700</date>
            <delta_ts>2019-03-26 16:24:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196265-20190326144029.patch</filename>
            <type>text/plain</type>
            <size>21277</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQzNTE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDZlMGYzNjIyYzUyYjNlYWE5
NjI0NDIyOWIyNmUxMWJlYTE1N2I3NDYuLjJlYjdiYzlmOTlmZmE0YWRhMjMyODliYmJjNmE0NWNl
N2Q4ODFmNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTktMDMtMjYgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYmFzaWMgbGF5b3V0IHRlc3Qg
Y292ZXJhZ2UgZm9yIEZpbGUgUGlja2VyIG9uIGlPUworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2MjY1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgV2Vu
c29uIEhzaWVoLgorCisgICAgICAgIEFkZCBsYXlvdXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byB0
ZXN0IHRoZSBmaWxlIHBpY2tlciBvbiBpT1MuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9kaXNtaXNzRmlsZVBpY2tl
cl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAg
ICgtW1dLQ29udGVudFZpZXcgZGlzbWlzc0ZpbGVQaWNrZXJdKToKKyAgICAgICAgKC1bV0tDb250
ZW50VmlldyBfY29udGVudHNPZlVzZXJJbnRlcmZhY2VJdGVtOl0pOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9pb3MvZm9ybXMvV0tGaWxlVXBsb2FkUGFuZWwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
aW9zL2Zvcm1zL1dLRmlsZVVwbG9hZFBhbmVsLm1tOgorICAgICAgICAoLVtXS0ZpbGVVcGxvYWRQ
YW5lbCBjdXJyZW50QXZhaWxhYmxlQWN0aW9uVGl0bGVzXSk6CisKIDIwMTktMDMtMjYgIFdlbnNv
biBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IGFz
eW5jIHBhc3RlIG1ldGhvZCBvbiBVSVdLSW50ZXJhY3Rpb25WaWV3UHJvdG9jb2wKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDIyMTk3ODU5
ZTAxMWFiMjhiNWRjNmM5NzVkZDg2ZDRmZDUzNWY1NjYuLmQ5MGU4ZWFiNDg0Y2I3MjljY2FlZWY5
ZmQwMTBmZjI1NGQ3NDcxODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlldy5tbQpAQCAtNjY2OSw2ICs2NjY5LDExIEBAIC0gKHZvaWQpZGlzbWlzc0Zv
cm1BY2Nlc3NvcnlWaWV3CiAgICAgW19jb250ZW50VmlldyBhY2Nlc3NvcnlEb25lXTsKIH0KIAor
LSAodm9pZClfZGlzbWlzc0ZpbGVQaWNrZXIKK3sKKyAgICBbX2NvbnRlbnRWaWV3IGRpc21pc3NG
aWxlUGlja2VyXTsKK30KKwogLSAodm9pZClzZXRUaW1lUGlja2VyVmFsdWVUb0hvdXI6KE5TSW50
ZWdlcilob3VyIG1pbnV0ZTooTlNJbnRlZ2VyKW1pbnV0ZQogewogICAgIFtfY29udGVudFZpZXcg
c2V0VGltZVBpY2tlclZhbHVlVG9Ib3VyOmhvdXIgbWludXRlOm1pbnV0ZV07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAppbmRl
eCA4ZTk5ZWNlYTdmMGUxZjk3ZGE3ZmEyMmE4Y2IwOWNmMDFiNTEyNGMwLi5hODZkMTQ1M2QxOGNl
NTRkNmE3ZjM3ZDc0NzQzMDIzNmFiMDE4ZjRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKQEAgLTQ1MSw2ICs0NTEsNyBA
QCB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dLUmVjdEVkZ2UpIHsKIC0gKHZvaWQp
a2V5Ym9hcmRBY2Nlc3NvcnlCYXJOZXh0IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEwLjApKTsKIC0g
KHZvaWQpa2V5Ym9hcmRBY2Nlc3NvcnlCYXJQcmV2aW91cyBXS19BUElfQVZBSUxBQkxFKGlvcygx
MC4wKSk7CiAtICh2b2lkKWRpc21pc3NGb3JtQWNjZXNzb3J5VmlldyBXS19BUElfQVZBSUxBQkxF
KGlvcygxMC4zKSk7CistICh2b2lkKV9kaXNtaXNzRmlsZVBpY2tlciBXS19BUElfQVZBSUxBQkxF
KGlvcyhXS19JT1NfVEJBKSk7CiAtICh2b2lkKXNlbGVjdEZvcm1BY2Nlc3NvcnlQaWNrZXJSb3c6
KGludClyb3dJbmRleCBXS19BUElfQVZBSUxBQkxFKGlvcygxMC4zKSk7CiBAcHJvcGVydHkgKG5v
bmF0b21pYywgcmVhZG9ubHkpIE5TU3RyaW5nICp0ZXh0Q29udGVudFR5cGVGb3JUZXN0aW5nIFdL
X0FQSV9BVkFJTEFCTEUoaW9zKDEyLjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25s
eSkgTlNTdHJpbmcgKnNlbGVjdEZvcm1Qb3BvdmVyVGl0bGUgV0tfQVBJX0FWQUlMQUJMRShpb3Mo
MTIuMCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXdJbnRlcmFjdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXdJbnRlcmFjdGlvbi5oCmluZGV4IDc4ODM5ZjA2MmEwODc5MDk1NDhiYjMzOWEzNGM2MzVm
NDJmOWQ5YTUuLmY4ZGYxM2NmNDIyY2Y1MTk3NWYzYzM2MzhhM2U3YjRhYzlkZmE4NzQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLmgKQEAgLTQzMCw2ICs0MzAsNyBAQCBGT1JfRUFDSF9QUklWQVRFX1dLQ09OVEVOVFZJ
RVdfQUNUSU9OKERFQ0xBUkVfV0tDT05URU5UVklFV19BQ1RJT05fRk9SX1dFQl9WSUVXKQogLSAo
dm9pZClfc2hvd1J1bk9wZW5QYW5lbDooQVBJOjpPcGVuUGFuZWxQYXJhbWV0ZXJzKilwYXJhbWV0
ZXJzIHJlc3VsdExpc3RlbmVyOihXZWJLaXQ6OldlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJv
eHkqKWxpc3RlbmVyOwogLSAodm9pZClfc2hvd1NoYXJlU2hlZXQ6KGNvbnN0IFdlYkNvcmU6OlNo
YXJlRGF0YVdpdGhQYXJzZWRVUkwmKXNoYXJlRGF0YSBjb21wbGV0aW9uSGFuZGxlcjooV1RGOjpD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKWNvbXBsZXRpb25IYW5kbGVyOwogLSAodm9p
ZClhY2Nlc3NvcnlEb25lOworLSAodm9pZClkaXNtaXNzRmlsZVBpY2tlcjsKIC0gKHZvaWQpX2Rp
ZEhhbmRsZUtleUV2ZW50Oig6OldlYkV2ZW50ICopZXZlbnQgZXZlbnRXYXNIYW5kbGVkOihCT09M
KWV2ZW50V2FzSGFuZGxlZDsKIC0gKFZlY3RvcjxXZWJLaXQ6Ok9wdGlvbkl0ZW0+JikgZm9jdXNl
ZFNlbGVjdEVsZW1lbnRPcHRpb25zOwogLSAodm9pZClfZW5hYmxlSW5zcGVjdG9yTm9kZVNlYXJj
aDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3
SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmll
d0ludGVyYWN0aW9uLm1tCmluZGV4IGI3MTczNTg2ZDAyZTZjOTk3YWU0ZDEyNzFkZmEwMjkzYmFk
N2JjMjAuLjI0OGVmNDk0MTFhMTc2Yjg4NDU3ZmMzOGFiMjg2YTRhNDgwNjZiNGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24u
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbi5tbQpAQCAtNDUwOSw2ICs0NTA5LDExIEBAIC0gKEJPT0wpX2ludGVycHJldEtleUV2ZW50
Oig6OldlYkV2ZW50ICopZXZlbnQgaXNDaGFyRXZlbnQ6KEJPT0wpaXNDaGFyRXZlbnQKICAgICBy
ZXR1cm4gTk87CiB9CiAKKy0gKHZvaWQpZGlzbWlzc0ZpbGVQaWNrZXIKK3sKKyAgICBbX2ZpbGVV
cGxvYWRQYW5lbCBkaXNtaXNzXTsKK30KKwogLSAoQk9PTClpc1Njcm9sbGFibGVGb3JLZXlib2Fy
ZFNjcm9sbFZpZXdBbmltYXRvcjooV0tLZXlib2FyZFNjcm9sbFZpZXdBbmltYXRvciAqKWFuaW1h
dG9yCiB7CiAgICAgaWYgKF9wYWdlLT5lZGl0b3JTdGF0ZSgpLmlzQ29udGVudEVkaXRhYmxlKQpA
QCAtNzAxNCw2ICs3MDE5LDEyIEBAIC0gKE5TRGljdGlvbmFyeSAqKV9jb250ZW50c09mVXNlcklu
dGVyZmFjZUl0ZW06KE5TU3RyaW5nICopdXNlckludGVyZmFjZUl0ZW0KICAgICAgICAgcmV0dXJu
IEB7IHVzZXJJbnRlcmZhY2VJdGVtOiBAeyBAInBhZ2VVUkwiOiB1cmwgfSB9OwogICAgIH0KICNl
bmRpZgorCisgICAgaWYgKFt1c2VySW50ZXJmYWNlSXRlbSBpc0VxdWFsVG9TdHJpbmc6QCJmaWxl
VXBsb2FkUGFuZWxNZW51Il0pIHsKKyAgICAgICAgaWYgKCFfZmlsZVVwbG9hZFBhbmVsKQorICAg
ICAgICAgICAgcmV0dXJuIEB7IHVzZXJJbnRlcmZhY2VJdGVtOiBAW10gfTsKKyAgICAgICAgcmV0
dXJuIEB7IHVzZXJJbnRlcmZhY2VJdGVtOiBbX2ZpbGVVcGxvYWRQYW5lbCBjdXJyZW50QXZhaWxh
YmxlQWN0aW9uVGl0bGVzXSB9OworICAgIH0KICAgICAKICAgICByZXR1cm4gbmlsOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRmlsZVVwbG9hZFBh
bmVsLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGaWxlVXBsb2FkUGFu
ZWwuaAppbmRleCBkNmQ3MmU2NGY2MzU0MWNkMzg5ZGJjMjc4ZWU5MDRjZWFjZDYyZTVhLi44NjQ5
NzAxYzQ3YmE5YTJkYTNiYzQ2YjY4NmFkMmQ4MGNlMTk0NTlkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGaWxlVXBsb2FkUGFuZWwuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGaWxlVXBsb2FkUGFuZWwuaApAQCAtNDMs
NiArNDMsOCBAQCBjbGFzcyBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5OwogLSAoaW5z
dGFuY2V0eXBlKWluaXRXaXRoVmlldzooV0tDb250ZW50VmlldyAqKXZpZXc7CiAtICh2b2lkKXBy
ZXNlbnRXaXRoUGFyYW1ldGVyczooQVBJOjpPcGVuUGFuZWxQYXJhbWV0ZXJzKilwYXJhbWV0ZXJz
IHJlc3VsdExpc3RlbmVyOihXZWJLaXQ6OldlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHkq
KWxpc3RlbmVyOwogLSAodm9pZClkaXNtaXNzOworCistIChOU0FycmF5PE5TU3RyaW5nICo+ICop
Y3VycmVudEF2YWlsYWJsZUFjdGlvblRpdGxlczsKIEBlbmQKIAogQHByb3RvY29sIFdLRmlsZVVw
bG9hZFBhbmVsRGVsZWdhdGUgPE5TT2JqZWN0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL2Zvcm1zL1dLRmlsZVVwbG9hZFBhbmVsLm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL2Zvcm1zL1dLRmlsZVVwbG9hZFBhbmVsLm1tCmluZGV4IDFlOTRiOGQxMmI4
YzcwNWIyYWFhNmQyMDM5MTMzNzIwMGY2NTZkOGIuLmY1NzgwZDhjODY2M2JiZTlhMjkzYTVhYWU2
ZTA2YTkwYWY0ZDNlYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9m
b3Jtcy9XS0ZpbGVVcGxvYWRQYW5lbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvZm9ybXMvV0tGaWxlVXBsb2FkUGFuZWwubW0KQEAgLTMxMiw2ICszMTIsMjYgQEAgLSAodm9p
ZClfZGlzbWlzc0Rpc3BsYXlBbmltYXRlZDooQk9PTClhbmltYXRlZAogICAgIH0KIH0KIAorLSAo
TlNBcnJheTxOU1N0cmluZyAqPiAqKWN1cnJlbnRBdmFpbGFibGVBY3Rpb25UaXRsZXMKK3sKKyAg
ICBOU011dGFibGVBcnJheTxOU1N0cmluZyAqPiAqYWN0aW9uVGl0bGVzID0gW05TTXV0YWJsZUFy
cmF5IGFycmF5XTsKKworICAgIE5TQXJyYXkgKm1lZGlhVHlwZXMgPSBVVElzRm9yTUlNRVR5cGVz
KF9taW1lVHlwZXMuZ2V0KCkpLmFsbE9iamVjdHM7CisgICAgQk9PTCBjb250YWluc0ltYWdlTWVk
aWFUeXBlID0gIW1lZGlhVHlwZXMuY291bnQgfHwgYXJyYXlDb250YWluc1VUSVRoYXRDb25mb3Jt
c1RvKG1lZGlhVHlwZXMsIGtVVFR5cGVJbWFnZSk7CisgICAgQk9PTCBjb250YWluc1ZpZGVvTWVk
aWFUeXBlID0gIW1lZGlhVHlwZXMuY291bnQgfHwgYXJyYXlDb250YWluc1VUSVRoYXRDb25mb3Jt
c1RvKG1lZGlhVHlwZXMsIGtVVFR5cGVNb3ZpZSk7CisgICAgaWYgKGNvbnRhaW5zSW1hZ2VNZWRp
YVR5cGUgfHwgY29udGFpbnNWaWRlb01lZGlhVHlwZSkgeworICAgICAgICBbYWN0aW9uVGl0bGVz
IGFkZE9iamVjdDpAIlBob3RvIExpYnJhcnkiXTsKKyAgICAgICAgaWYgKGNvbnRhaW5zSW1hZ2VN
ZWRpYVR5cGUgJiYgY29udGFpbnNWaWRlb01lZGlhVHlwZSkKKyAgICAgICAgICAgIFthY3Rpb25U
aXRsZXMgYWRkT2JqZWN0OkAiVGFrZSBQaG90byBvciBWaWRlbyJdOworICAgICAgICBlbHNlIGlm
IChjb250YWluc1ZpZGVvTWVkaWFUeXBlKQorICAgICAgICAgICAgW2FjdGlvblRpdGxlcyBhZGRP
YmplY3Q6QCJUYWtlIFZpZGVvIl07CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIFthY3Rpb25U
aXRsZXMgYWRkT2JqZWN0OkAiVGFrZSBQaG90byJdOworICAgIH0KKyAgICBbYWN0aW9uVGl0bGVz
IGFkZE9iamVjdDpAIkJyb3dzZSJdOworICAgIHJldHVybiBhY3Rpb25UaXRsZXM7Cit9CisKICNw
cmFnbWEgbWFyayAtIE1lZGlhIFR5cGVzCiAKIHN0YXRpYyBOU1NldDxOU1N0cmluZyAqPiAqVVRJ
c0Zvck1JTUVUeXBlcyhOU0FycmF5ICptaW1lVHlwZXMpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFu
Z2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzhhZjBhYzA1OGVmZDFjOTE1MDY2OWIwM2Zi
MjA4MzI1N2NlNTI2Ny4uNzA4YmQ3ZGFjODU3OGIxOTRhYjllNmU3Yzc5YTJiMjVmNjk4NGYwMCAx
MDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDI5IEBACisyMDE5LTAzLTI2ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisK
KyAgICAgICAgQWRkIGJhc2ljIGxheW91dCB0ZXN0IGNvdmVyYWdlIGZvciBGaWxlIFBpY2tlciBv
biBpT1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5
NjI2NQorCisgICAgICAgIFJldmlld2VkIGJ5IFdlbnNvbiBIc2llaC4KKworICAgICAgICBBZGQg
bGF5b3V0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gdGVzdCB0aGUgZmlsZSBwaWNrZXIgb24gaU9T
LgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5t
bToKKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpkaXNtaXNzRmlsZVBpY2tlcik6
CisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvQmluZGluZ3MvVUlT
Y3JpcHRDb250cm9sbGVyLmlkbDoKKyAgICAgICAgKiBUZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0
Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENv
bnRyb2xsZXI6OmRpc21pc3NGaWxlUGlja2VyKToKKyAgICAgICAgKiBUZXN0UnVubmVyU2hhcmVk
L1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJLaXRU
ZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xs
ZXI6OmNyZWF0ZVdlYlZpZXdXaXRoT3B0aW9ucyk6CisgICAgICAgIChXVFI6OnVwZGF0ZVRlc3RP
cHRpb25zRnJvbVRlc3RIZWFkZXIpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdE9w
dGlvbnMuaDoKKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6Omhhc1NhbWVJbml0aWFsaXphdGlv
bk9wdGlvbnMgY29uc3QpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvaW9zL1Rlc3RDb250
cm9sbGVySU9TLm1tOgorICAgICAgICAob3ZlcnJpZGVQcmVzZW50Vmlld0NvbnRyb2xsZXIpOgor
ICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1Jbml0aWFsaXplKToKKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW06CisgICAg
ICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6ZGlzbWlzc0ZpbGVQaWNrZXIpOgorCiAyMDE5
LTAzLTI2ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAg
IEltcGxlbWVudCBhc3luYyBwYXN0ZSBtZXRob2Qgb24gVUlXS0ludGVyYWN0aW9uVmlld1Byb3Rv
Y29sCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9pb3MvVUlTY3JpcHRDb250cm9s
bGVySU9TLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklP
Uy5tbQppbmRleCBjMTIwOTUyYjU3ZjliNWJiZTNlNGUwNWJmNTA3Y2NjOTY3NmJkNDIxLi4yMmQ1
NWFiYzEyYmI5Y2I4MWFjNzQ2ZGQwYTQ4ODc2NDcyZmZlYjUxIDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1tCisrKyBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW0KQEAgLTE3NSw2ICsxNzUs
MTAgQEAgdm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OmRpc21pc3NGb3JtQWNjZXNzb3J5Vmlldygp
CiB7CiB9CiAKK3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpkaXNtaXNzRmlsZVBpY2tlcihKU1Zh
bHVlUmVmKQoreworfQorCiB2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6c2V0VGltZVBpY2tlclZh
bHVlKGxvbmcsIGxvbmcpCiB7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVk
L1VJU2NyaXB0Q29udGV4dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsIGIvVG9vbHMv
VGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRDb250cm9s
bGVyLmlkbAppbmRleCA5YWZjNTFlZmZjOWM5ODUzMTE4YTEyZGZiMjcyMGQ3ZGQ4MjQ0N2MzLi5l
ZWNiMjA2MGViNmIyZTEyOWY4YjEyZDNjYzUyMGJmNTU3ZmEwZjdjIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRy
b2xsZXIuaWRsCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L0Jp
bmRpbmdzL1VJU2NyaXB0Q29udHJvbGxlci5pZGwKQEAgLTE4Nyw2ICsxODcsOCBAQCBpbnRlcmZh
Y2UgVUlTY3JpcHRDb250cm9sbGVyIHsKICAgICAvLyBFcXVpdmFsZW50IG9mIHByZXNzaW5nIHRo
ZSBEb25lIGJ1dHRvbiBpbiB0aGUgZm9ybSBhY2Nlc3NvcnkgYmFyLgogICAgIHZvaWQgZGlzbWlz
c0Zvcm1BY2Nlc3NvcnlWaWV3KCk7CiAKKyAgICB2b2lkIGRpc21pc3NGaWxlUGlja2VyKG9iamVj
dCBjYWxsYmFjayk7CisKICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHRleHRDb250
ZW50VHlwZTsKIAogICAgIC8vIEZvcm0gY29udHJvbCBoYW5kbGluZwpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmNw
cCBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJv
bGxlci5jcHAKaW5kZXggZWQzZTM0MmI0ZDBlMmI2MjM5MGEyOTc0NmZlZjA5OTgxZjJjYjlhMi4u
MjNlNDJkMTI0YjFlOWVjY2I3ZWI5MzY5ZGVhMmI0YmRiNmZhYzZhZiAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmNw
cAorKysgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENv
bnRyb2xsZXIuY3BwCkBAIC0zNDcsNiArMzQ3LDEwIEBAIHZvaWQgVUlTY3JpcHRDb250cm9sbGVy
OjpkaXNtaXNzRm9ybUFjY2Vzc29yeVZpZXcoKQogewogfQogCit2b2lkIFVJU2NyaXB0Q29udHJv
bGxlcjo6ZGlzbWlzc0ZpbGVQaWNrZXIoSlNWYWx1ZVJlZikKK3sKK30KKwogdm9pZCBVSVNjcmlw
dENvbnRyb2xsZXI6OnNldFRpbWVQaWNrZXJWYWx1ZShsb25nLCBsb25nKQogewogfQpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250
cm9sbGVyLmggYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlw
dENvbnRyb2xsZXIuaAppbmRleCA1YThkZjZlZGUzYTgzZGI0MjU2NjI5ZmQyOWUyM2JmMzUzYWY4
ZjQ2Li5lNDFmOGEzNzM5MTg4MzYxNTNkOWIzMmU5ZWRiMDJlZGFkOTkzNjE2IDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xs
ZXIuaAorKysgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlw
dENvbnRyb2xsZXIuaApAQCAtMTA2LDYgKzEwNiw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgYXBw
bHlBdXRvY29ycmVjdGlvbihKU1N0cmluZ1JlZiBuZXdTdHJpbmcsIEpTU3RyaW5nUmVmIG9sZFN0
cmluZywgSlNWYWx1ZVJlZiBjYWxsYmFjayk7CiAgICAgCisgICAgdm9pZCBkaXNtaXNzRmlsZVBp
Y2tlcihKU1ZhbHVlUmVmIGNhbGxiYWNrKTsKICAgICB2b2lkIGRpc21pc3NGb3JtQWNjZXNzb3J5
VmlldygpOwogICAgIHZvaWQgc2VsZWN0Rm9ybUFjY2Vzc29yeVBpY2tlclJvdyhsb25nKTsKICAg
ICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gdGV4dENvbnRlbnRUeXBlKCkgY29uc3Q7CmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDNiNTMxMjM0OTJlODNi
ZWYxYWE0YTQ2ZjQ5Njk1MTQxMGUyNTY4NWYuLmUzZGI2NTkyYWZiOGUxYTg3ZWM2NzM5YzUxYzMz
ZWU4OTY2NjYwZjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3Bw
CkBAIC02MDcsNyArNjA3LDcgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmlld1dp
dGhPcHRpb25zKGNvbnN0IFRlc3RPcHRpb25zJiBvcHRpb25zKQogICAgICAgICAwLCAvLyBkaWRE
cmF3CiAgICAgICAgIDAsIC8vIHBhZ2VEaWRTY3JvbGwKICAgICAgICAgMCwgLy8gZXhjZWVkZWRE
YXRhYmFzZVF1b3RhLAotICAgICAgICBydW5PcGVuUGFuZWwsCisgICAgICAgIG9wdGlvbnMuc2hv
dWxkSGFuZGxlUnVuT3BlblBhbmVsID8gcnVuT3BlblBhbmVsIDogMCwKICAgICAgICAgZGVjaWRl
UG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdCwKICAgICAgICAgMCwgLy8gaGVh
ZGVySGVpZ2h0CiAgICAgICAgIDAsIC8vIGZvb3RlckhlaWdodApAQCAtMTMxNiw2ICsxMzE2LDgg
QEAgc3RhdGljIHZvaWQgdXBkYXRlVGVzdE9wdGlvbnNGcm9tVGVzdEhlYWRlcihUZXN0T3B0aW9u
cyYgdGVzdE9wdGlvbnMsIGNvbnN0IHN0ZDoKICAgICAgICAgICAgIHRlc3RPcHRpb25zLmVkaXRh
YmxlID0gcGFyc2VCb29sZWFuVGVzdEhlYWRlclZhbHVlKHZhbHVlKTsKICAgICAgICAgZWxzZSBp
ZiAoa2V5ID09ICJlbmFibGVVbmRvTWFuYWdlckFQSSIpCiAgICAgICAgICAgICB0ZXN0T3B0aW9u
cy5lbmFibGVVbmRvTWFuYWdlckFQSSA9IHBhcnNlQm9vbGVhblRlc3RIZWFkZXJWYWx1ZSh2YWx1
ZSk7CisgICAgICAgIGVsc2UgaWYgKGtleSA9PSAic2hvdWxkSGFuZGxlUnVuT3BlblBhbmVsIikK
KyAgICAgICAgICAgIHRlc3RPcHRpb25zLnNob3VsZEhhbmRsZVJ1bk9wZW5QYW5lbCA9IHBhcnNl
Qm9vbGVhblRlc3RIZWFkZXJWYWx1ZSh2YWx1ZSk7CiAgICAgICAgIGVsc2UgaWYgKGtleSA9PSAi
Y29udGVudEluc2V0LnRvcCIpCiAgICAgICAgICAgICB0ZXN0T3B0aW9ucy5jb250ZW50SW5zZXRU
b3AgPSBzdGQ6OnN0b2QodmFsdWUpOwogICAgICAgICBlbHNlIGlmIChrZXkgPT0gImlnbm9yZVN5
bmNocm9ub3VzTWVzc2FnaW5nVGltZW91dHMiKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0T3B0aW9ucy5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9u
cy5oCmluZGV4IGIwZmVkNzIzYTI3M2Q4YjlmZTdmNmU4NjZiMTcwMGQ5NzgzNDc1N2UuLjFkMGFl
ZTA4NTY5M2UwODkxMDFjOTRlZjQ1Mjg1NGY5MjMyNmQ5OGMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RPcHRpb25zLmgKQEAgLTg5LDYgKzg5LDcgQEAgc3RydWN0IFRlc3RPcHRpb25zIHsKICAg
ICBib29sIGVuYWJsZUVkaXRhYmxlSW1hZ2VzIHsgZmFsc2UgfTsKICAgICBib29sIGVkaXRhYmxl
IHsgZmFsc2UgfTsKICAgICBib29sIGVuYWJsZVVuZG9NYW5hZ2VyQVBJIHsgZmFsc2UgfTsKKyAg
ICBib29sIHNob3VsZEhhbmRsZVJ1bk9wZW5QYW5lbCB7IHRydWUgfTsKIAogICAgIGRvdWJsZSBj
b250ZW50SW5zZXRUb3AgeyAwIH07CiAKQEAgLTEzNiw2ICsxMzcsNyBAQCBzdHJ1Y3QgVGVzdE9w
dGlvbnMgewogICAgICAgICAgICAgfHwgZW5hYmxlRWRpdGFibGVJbWFnZXMgIT0gb3B0aW9ucy5l
bmFibGVFZGl0YWJsZUltYWdlcwogICAgICAgICAgICAgfHwgZWRpdGFibGUgIT0gb3B0aW9ucy5l
ZGl0YWJsZQogICAgICAgICAgICAgfHwgZW5hYmxlVW5kb01hbmFnZXJBUEkgIT0gb3B0aW9ucy5l
bmFibGVVbmRvTWFuYWdlckFQSQorICAgICAgICAgICAgfHwgc2hvdWxkSGFuZGxlUnVuT3BlblBh
bmVsICE9IG9wdGlvbnMuc2hvdWxkSGFuZGxlUnVuT3BlblBhbmVsCiAgICAgICAgICAgICB8fCBj
b250ZW50SW5zZXRUb3AgIT0gb3B0aW9ucy5jb250ZW50SW5zZXRUb3ApCiAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1Rl
c3RDb250cm9sbGVySU9TLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVGVzdENvbnRy
b2xsZXJJT1MubW0KaW5kZXggZWFmMWY1YTJiZjZkN2VkMDlmYjM0YzYwNzIwOTQ4NzI3NWQ3YjNh
Yi4uZWQ0NjZiZTFkZmQ3NDcwYjMyMjZlOWE4Zjk1YjVlN2M0YzM5NjEzMSAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVGVzdENvbnRyb2xsZXJJT1MubW0KKysrIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVGVzdENvbnRyb2xsZXJJT1MubW0KQEAgLTUwLDYgKzUw
LDEwIEBAIHN0YXRpYyBCT09MIG92ZXJyaWRlSXNJbkhhcmR3YXJlS2V5Ym9hcmRNb2RlKCkKICAg
ICByZXR1cm4gTk87CiB9CiAKK3N0YXRpYyB2b2lkIG92ZXJyaWRlUHJlc2VudFZpZXdDb250cm9s
bGVyT3JQb3BvdmVyKCkKK3sKK30KKwogbmFtZXNwYWNlIFdUUiB7CiAKIHN0YXRpYyBib29sIGlz
RG9uZVdhaXRpbmdGb3JLZXlib2FyZFRvRGlzbWlzcyA9IHRydWU7CkBAIC05Niw2ICsxMDAsOSBA
QCB2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUluaXRpYWxpemUoKQogICAgIC8vIE92ZXJy
aWRlIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiArW1VJS2V5Ym9hcmQgaXNJbkhhcmR3YXJlS2V5Ym9h
cmRNb2RlXSB0byBlbnN1cmUgdGhhdCB0ZXN0IHJ1bnMgYXJlIGRldGVybWluaXN0aWMKICAgICAv
LyByZWdhcmRsZXNzIG9mIHdoZXRoZXIgYSBoYXJkd2FyZSBrZXlib2FyZCBpcyBhdHRhY2hlZC4g
V2UgaW50ZW50aW9uYWxseSBuZXZlciByZXN0b3JlIHRoZSBvcmlnaW5hbCBpbXBsZW1lbnRhdGlv
bi4KICAgICBtZXRob2Rfc2V0SW1wbGVtZW50YXRpb24oY2xhc3NfZ2V0Q2xhc3NNZXRob2QoW1VJ
S2V5Ym9hcmQgY2xhc3NdLCBAc2VsZWN0b3IoaXNJbkhhcmR3YXJlS2V5Ym9hcmRNb2RlKSksIHJl
aW50ZXJwcmV0X2Nhc3Q8SU1QPihvdmVycmlkZUlzSW5IYXJkd2FyZUtleWJvYXJkTW9kZSkpOwor
CisgICAgbWV0aG9kX3NldEltcGxlbWVudGF0aW9uKGNsYXNzX2dldEluc3RhbmNlTWV0aG9kKFtV
SVZpZXdDb250cm9sbGVyIGNsYXNzXSwgQHNlbGVjdG9yKHByZXNlbnRWaWV3Q29udHJvbGxlcjph
bmltYXRlZDpjb21wbGV0aW9uOikpLCByZWludGVycHJldF9jYXN0PElNUD4ob3ZlcnJpZGVQcmVz
ZW50Vmlld0NvbnRyb2xsZXJPclBvcG92ZXIpKTsKKyAgICBtZXRob2Rfc2V0SW1wbGVtZW50YXRp
b24oY2xhc3NfZ2V0SW5zdGFuY2VNZXRob2QoW1VJUG9wb3ZlckNvbnRyb2xsZXIgY2xhc3NdLCBA
c2VsZWN0b3IocHJlc2VudFBvcG92ZXJGcm9tUmVjdDppblZpZXc6cGVybWl0dGVkQXJyb3dEaXJl
Y3Rpb25zOmFuaW1hdGVkOikpLCByZWludGVycHJldF9jYXN0PElNUD4ob3ZlcnJpZGVQcmVzZW50
Vmlld0NvbnRyb2xsZXJPclBvcG92ZXIpKTsKIH0KIAogdm9pZCBUZXN0Q29udHJvbGxlcjo6cGxh
dGZvcm1EZXN0cm95KCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1VJ
U2NyaXB0Q29udHJvbGxlcklPUy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1VJU2Ny
aXB0Q29udHJvbGxlcklPUy5tbQppbmRleCA5NTE3YjRlMjZkY2ZkMzM5MmU2YmUxNjFhNzkwOWU4
OGI1ZTk4MmMwLi5hYTlkODQ4ODVhYWE4ODBkMzk4MWVlZGQ0ZmEzODQ5OWE3ZjhmMTZmIDEwMDY0
NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1Mu
bW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9T
Lm1tCkBAIC00ODIsNiArNDgyLDE5IEBAIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpkaXNtaXNz
Rm9ybUFjY2Vzc29yeVZpZXcoKQogICAgIFt3ZWJWaWV3IGRpc21pc3NGb3JtQWNjZXNzb3J5Vmll
d107CiB9CiAKK3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpkaXNtaXNzRmlsZVBpY2tlcihKU1Zh
bHVlUmVmIGNhbGxiYWNrKQoreworICAgIFRlc3RSdW5uZXJXS1dlYlZpZXcgKndlYlZpZXcgPSBU
ZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkubWFpbldlYlZpZXcoKS0+cGxhdGZvcm1WaWV3KCk7
CisgICAgW3dlYlZpZXcgX2Rpc21pc3NGaWxlUGlja2VyXTsKKworICAgIC8vIFJvdW5kLXRyaXAg
d2l0aCB0aGUgV2ViUHJvY2VzcyB0byBtYWtlIHN1cmUgaXQgaGFzIGJlZW4gbm90aWZpZWQgb2Yg
dGhlIGRpc21pc3NhbC4KKyAgICB1bnNpZ25lZCBjYWxsYmFja0lEID0gbV9jb250ZXh0LT5wcmVw
YXJlRm9yQXN5bmNUYXNrKGNhbGxiYWNrLCBDYWxsYmFja1R5cGVOb25QZXJzaXN0ZW50KTsKKyAg
ICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCIiIGNvbXBsZXRpb25IYW5kbGVyOl4oaWQg
cmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBpZiAobV9jb250ZXh0KQorICAgICAg
ICAgICAgbV9jb250ZXh0LT5hc3luY1Rhc2tDb21wbGV0ZShjYWxsYmFja0lEKTsKKyAgICB9XTsK
K30KKwogSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IFVJU2NyaXB0Q29udHJvbGxlcjo6c2VsZWN0
Rm9ybVBvcG92ZXJUaXRsZSgpIGNvbnN0CiB7CiAgICAgVGVzdFJ1bm5lcldLV2ViVmlldyAqd2Vi
VmlldyA9IFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5tYWluV2ViVmlldygpLT5wbGF0Zm9y
bVZpZXcoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCBlNWU4NDUwMzUyZDc3ZDM1YmEyYzBlYzQ3NzhjZDJhMzhkZDk1MzEx
Li5kMzU1MDk0MzgzOGRhMDkxOTE3ZjEzNDI5NGI1NzdjNDVmYzRhMzc5IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTUgQEAKKzIwMTktMDMtMjYgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwor
ICAgICAgICBBZGQgYmFzaWMgbGF5b3V0IHRlc3QgY292ZXJhZ2UgZm9yIEZpbGUgUGlja2VyIG9u
IGlPUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2
MjY1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgV2Vuc29uIEhzaWVoLgorCisgICAgICAgIEFkZCBu
ZXcgbGF5b3V0IHRlc3QuCisKKyAgICAgICAgKiBmYXN0L2Zvcm1zL2lvcy9maWxlLXVwbG9hZC1w
YW5lbC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvaW9zL2ZpbGUt
dXBsb2FkLXBhbmVsLmh0bWw6IEFkZGVkLgorCiAyMDE5LTAzLTI2ICBTaGF3biBSb2JlcnRzICA8
c3JvYmVydHNAYXBwbGUuY29tPgogCiAgICAgICAgIExheW91dCB0ZXN0cyBodHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpz
LXdpdGgtbGluay1mcmFnbWVudC1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS5odG1sIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pb3MvZmlsZS11cGxvYWQtcGFuZWwtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pb3MvZmlsZS11cGxvYWQtcGFuZWwtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk4MDE0YWZlYjAzMzFhYzE3ZDYyZGNiNmMyMzExMTkzZmMx
ZmQxZWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lvcy9maWxl
LXVwbG9hZC1wYW5lbC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzOSBAQAorQmFzaWMgdGVzdGlu
ZyBmb3IgdGhlIEZpbGUgVXBsb2FkIFBhbmVsIG9uIGlPUy4KKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKKyogYWNjZXB0ID0gCitQQVNTIGFyZUFycmF5c0VxdWFsKGl0ZW1zLCBbIlBo
b3RvIExpYnJhcnkiLCAiVGFrZSBQaG90byBvciBWaWRlbyIsICJCcm93c2UiXSkgaXMgdHJ1ZQor
CisqIGFjY2VwdCA9IGltYWdlLyoKK1BBU1MgYXJlQXJyYXlzRXF1YWwoaXRlbXMsIFsiUGhvdG8g
TGlicmFyeSIsICJUYWtlIFBob3RvIiwgIkJyb3dzZSJdKSBpcyB0cnVlCisKKyogYWNjZXB0ID0g
dmlkZW8vKgorUEFTUyBhcmVBcnJheXNFcXVhbChpdGVtcywgWyJQaG90byBMaWJyYXJ5IiwgIlRh
a2UgVmlkZW8iLCAiQnJvd3NlIl0pIGlzIHRydWUKKworKiBhY2NlcHQgPSBpbWFnZS8qLCB2aWRl
by8qCitQQVNTIGFyZUFycmF5c0VxdWFsKGl0ZW1zLCBbIlBob3RvIExpYnJhcnkiLCAiVGFrZSBQ
aG90byBvciBWaWRlbyIsICJCcm93c2UiXSkgaXMgdHJ1ZQorCisqIGFjY2VwdCA9IC5QTkcsIC5H
SUYKK1BBU1MgYXJlQXJyYXlzRXF1YWwoaXRlbXMsIFsiUGhvdG8gTGlicmFyeSIsICJUYWtlIFBo
b3RvIiwgIkJyb3dzZSJdKSBpcyB0cnVlCisKKyogYWNjZXB0ID0gLlBORywgLkdJRiwgLk1PVgor
UEFTUyBhcmVBcnJheXNFcXVhbChpdGVtcywgWyJQaG90byBMaWJyYXJ5IiwgIlRha2UgUGhvdG8g
b3IgVmlkZW8iLCAiQnJvd3NlIl0pIGlzIHRydWUKKworKiBhY2NlcHQgPSBhdWRpby8qCitQQVNT
IGFyZUFycmF5c0VxdWFsKGl0ZW1zLCBbIkJyb3dzZSJdKSBpcyB0cnVlCisKKyogYWNjZXB0ID0g
LlRYVAorUEFTUyBhcmVBcnJheXNFcXVhbChpdGVtcywgWyJCcm93c2UiXSkgaXMgdHJ1ZQorCisq
IGFjY2VwdCA9IC5QREYKK1BBU1MgYXJlQXJyYXlzRXF1YWwoaXRlbXMsIFsiQnJvd3NlIl0pIGlz
IHRydWUKKworKiBhY2NlcHQgPSAuUERGLCAuVFhUCitQQVNTIGFyZUFycmF5c0VxdWFsKGl0ZW1z
LCBbIkJyb3dzZSJdKSBpcyB0cnVlCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lv
cy9maWxlLXVwbG9hZC1wYW5lbC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pb3MvZmls
ZS11cGxvYWQtcGFuZWwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOTk1NDBkNzM3M2NlM2M2YmNmNTQ2YWFl
NjE1N2UyMmI1MWMwZTQ1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9pb3MvZmlsZS11cGxvYWQtcGFuZWwuaHRtbApAQCAtMCwwICsxLDkwIEBACis8IURPQ1RZUEUg
aHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUs
IHNob3VsZEhhbmRsZVJ1bk9wZW5QYW5lbD1mYWxzZSBdIC0tPgorPGh0bWw+Cis8aGVhZD4KKzxt
ZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgiPgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGlucHV0IGlkPSJ0ZXN0SW5w
dXQiIHR5cGU9ImZpbGUiPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgorZGVz
Y3JpcHRpb24oIkJhc2ljIHRlc3RpbmcgZm9yIHRoZSBGaWxlIFVwbG9hZCBQYW5lbCBvbiBpT1Mu
Iik7Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworZnVuY3Rpb24gZ2V0RmlsZVVwbG9hZFBpY2tl
ck1lbnVJdGVtc1NjcmlwdCgpCit7IAorICAgIHJldHVybiBgCisgICAgKGZ1bmN0aW9uKCkgewor
ICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodWlDb250cm9sbGVyLmNvbnRlbnRzT2ZVc2Vy
SW50ZXJmYWNlSXRlbSgnZmlsZVVwbG9hZFBhbmVsTWVudScpKTsKKyAgICB9KSgpO2AKK30KKwor
ZnVuY3Rpb24gZGlzbWlzc0ZpbGVQaWNrZXJTY3JpcHQoKQoreworICAgIHJldHVybiBgCisgICAg
KGZ1bmN0aW9uKCkgeworICAgICAgICB1aUNvbnRyb2xsZXIuZGlzbWlzc0ZpbGVQaWNrZXIoZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICB1aUNvbnRyb2xsZXIudWlTY3JpcHRDb21wbGV0ZSgpOwor
ICAgICAgICB9KTsKKyAgICB9KSgpO2AKK30KKworZnVuY3Rpb24gZ2V0RmlsZVVwbG9hZFBpY2tl
ck1lbnVJdGVtcygpCit7CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7Cisg
ICAgICAgIHRlc3RSdW5uZXIucnVuVUlTY3JpcHQoZ2V0RmlsZVVwbG9hZFBpY2tlck1lbnVJdGVt
c1NjcmlwdCgpLCBmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAgICAgIHJlc29sdmUoSlNPTi5w
YXJzZShyZXN1bHQpLmZpbGVVcGxvYWRQYW5lbE1lbnUpOworICAgICAgICB9KTsKKyAgICB9KTsK
K30KKworZnVuY3Rpb24gZGlzbWlzc0ZpbGVQaWNrZXIoKQoreworICAgIGNvbnN0IHVpU2NyaXB0
ID0gYHVpQ29udHJvbGxlci5kaXNtaXNzRmlsZVBpY2tlcigoKSA9PiB1aUNvbnRyb2xsZXIudWlT
Y3JpcHRDb21wbGV0ZSgpKWA7CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4gdGVz
dFJ1bm5lci5ydW5VSVNjcmlwdCh1aVNjcmlwdCwgcmVzb2x2ZSkpOworfQorCitmdW5jdGlvbiBy
dW5BY2NlcHRUZXN0KGFjY2VwdCwgZXhwZWN0ZWRNZW51SXRlbXMpCit7CisgICAgcmV0dXJuIG5l
dyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CisgICAgICAgIGRlYnVnKCIqIGFjY2VwdCA9ICIgKyBh
Y2NlcHQpOworICAgICAgICB0ZXN0SW5wdXQuYWNjZXB0ID0gYWNjZXB0OworCisgICAgICAgIFVJ
SGVscGVyLmFjdGl2YXRlRWxlbWVudCh0ZXN0SW5wdXQpLnRoZW4oKCkgPT4geworICAgICAgICAg
ICAgZ2V0RmlsZVVwbG9hZFBpY2tlck1lbnVJdGVtcygpLnRoZW4oKF9pdGVtcykgPT4geworICAg
ICAgICAgICAgICAgIGl0ZW1zID0gX2l0ZW1zOworICAgICAgICAgICAgICAgIHNob3VsZEJlVHJ1
ZSgiYXJlQXJyYXlzRXF1YWwoaXRlbXMsICIgKyBleHBlY3RlZE1lbnVJdGVtcyArICIpIik7Cisg
ICAgICAgICAgICAgICAgZGVidWcoIiIpOworICAgICAgICAgICAgICAgIGRpc21pc3NGaWxlUGlj
a2VyKCkudGhlbigoKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAg
ICAgfSk7CisgICAgfSk7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIHJ1blRlc3RzKCkKK3sKKyAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLnN0eWxlID0gImRpc3BsYXk6IG5vbmUi
OworCisgICAgYXdhaXQgcnVuQWNjZXB0VGVzdCgiIiwgJ1siUGhvdG8gTGlicmFyeSIsICJUYWtl
IFBob3RvIG9yIFZpZGVvIiwgIkJyb3dzZSJdJyk7CisgICAgYXdhaXQgcnVuQWNjZXB0VGVzdCgi
aW1hZ2UvKiIsICdbIlBob3RvIExpYnJhcnkiLCAiVGFrZSBQaG90byIsICJCcm93c2UiXScpOwor
ICAgIGF3YWl0IHJ1bkFjY2VwdFRlc3QoInZpZGVvLyoiLCAnWyJQaG90byBMaWJyYXJ5IiwgIlRh
a2UgVmlkZW8iLCAiQnJvd3NlIl0nKTsKKyAgICBhd2FpdCBydW5BY2NlcHRUZXN0KCJpbWFnZS8q
LCB2aWRlby8qIiwgJ1siUGhvdG8gTGlicmFyeSIsICJUYWtlIFBob3RvIG9yIFZpZGVvIiwgIkJy
b3dzZSJdJyk7CisgICAgYXdhaXQgcnVuQWNjZXB0VGVzdCgiLlBORywgLkdJRiIsICdbIlBob3Rv
IExpYnJhcnkiLCAiVGFrZSBQaG90byIsICJCcm93c2UiXScpOworICAgIGF3YWl0IHJ1bkFjY2Vw
dFRlc3QoIi5QTkcsIC5HSUYsIC5NT1YiLCAnWyJQaG90byBMaWJyYXJ5IiwgIlRha2UgUGhvdG8g
b3IgVmlkZW8iLCAiQnJvd3NlIl0nKTsKKyAgICBhd2FpdCBydW5BY2NlcHRUZXN0KCJhdWRpby8q
IiwgJ1siQnJvd3NlIl0nKTsKKyAgICBhd2FpdCBydW5BY2NlcHRUZXN0KCIuVFhUIiwgJ1siQnJv
d3NlIl0nKTsKKyAgICBhd2FpdCBydW5BY2NlcHRUZXN0KCIuUERGIiwgJ1siQnJvd3NlIl0nKTsK
KyAgICBhd2FpdCBydW5BY2NlcHRUZXN0KCIuUERGLCAuVFhUIiwgJ1siQnJvd3NlIl0nKTsKKwor
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuc3R5bGUgPSAiIjsKKyAgICBm
aW5pc2hKU1Rlc3QoKTsKK30KKworCitvbmxvYWQgPSBydW5UZXN0czsKKworPC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>