<?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>236965</bug_id>
          
          <creation_ts>2022-02-21 03:44:14 -0800</creation_ts>
          <short_desc>After losing context due to too many contexts, getError() does not return CONTEXT_LOST_WEBGL</short_desc>
          <delta_ts>2022-03-23 10:13:28 -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>WebGL</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>236964</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kimmo Kinnunen">kkinnunen</reporter>
          <assigned_to name="Kimmo Kinnunen">kkinnunen</assigned_to>
          <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>kbr</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1844155</commentid>
    <comment_count>0</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-02-21 03:44:14 -0800</bug_when>
    <thetext>After losing context due to too many contexts, getError() does not return CONTEXT_LOST_WEBGL</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846593</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-28 03:45:26 -0800</bug_when>
    <thetext>&lt;rdar://problem/89550905&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852400</commentid>
    <comment_count>2</comment_count>
      <attachid>454999</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-03-17 12:01:38 -0700</bug_when>
    <thetext>Created attachment 454999
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1853639</commentid>
    <comment_count>3</comment_count>
      <attachid>455371</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-03-22 07:02:49 -0700</bug_when>
    <thetext>Created attachment 455371
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1853642</commentid>
    <comment_count>4</comment_count>
      <attachid>455373</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-03-22 07:10:12 -0700</bug_when>
    <thetext>Created attachment 455373
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854019</commentid>
    <comment_count>5</comment_count>
      <attachid>455373</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2022-03-22 17:17:36 -0700</bug_when>
    <thetext>Comment on attachment 455373
Patch

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

Seems fine given that the tests progress. If it&apos;s possible to add more WebGL conformance tests covering this area, please do. r+

&gt; Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:7754
&gt; +        ASSERT_NOT_REACHED();

Just checking - this assert is not hit if the WEBGL_lose_context extension is used incorrectly? (restoreContext() is called, but preventDefault() wasn&apos;t called against the lost context event?) I assume that WEBGL_lose_context&apos;s validation will catch this misuse - and that the EWS bots are running enough WebGL conformance tests using the WEBGL_lose_context extension.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854211</commentid>
    <comment_count>6</comment_count>
      <attachid>455373</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-03-23 09:38:39 -0700</bug_when>
    <thetext>Comment on attachment 455373
Patch

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

thanks fro spending the time!

&gt; Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:6489
&gt;          return;

this should prevent the case of calling lose_context.restoreContext() without preventDefault()

&gt;&gt; Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:7754
&gt;&gt; +        ASSERT_NOT_REACHED();
&gt; 
&gt; Just checking - this assert is not hit if the WEBGL_lose_context extension is used incorrectly? (restoreContext() is called, but preventDefault() wasn&apos;t called against the lost context event?) I assume that WEBGL_lose_context&apos;s validation will catch this misuse - and that the EWS bots are running enough WebGL conformance tests using the WEBGL_lose_context extension.

Yeah, that&apos;s the intention.
E.g. the timer invocation to call maybeRestoreContext should always be prefixed with the check &quot;restoreRequested&quot;.
Your question should be handled above..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854240</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-03-23 10:13:22 -0700</bug_when>
    <thetext>Committed r291749 (248781@main): &lt;https://commits.webkit.org/248781@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 455373.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454999</attachid>
            <date>2022-03-17 12:01:38 -0700</date>
            <delta_ts>2022-03-17 12:06:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236965-20220317210136.patch</filename>
            <type>text/plain</type>
            <size>33964</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxNDA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGMzYzNhOTk5OGNkMzJj
ZDNkNTBkYWE0NDZhNjhkMWZiMDRhNTNkOC4uZjA5ODdkNjFmN2YxYTlhYjY5NTQwNTJiNDQ4YjNl
MWI3Zjc1Y2QzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDIyLTAzLTE3ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVjeWNsaW5nIGEg
d2ViZ2wgY29udGV4dCB3aGVuIGl0IGhhcyBiZWVuIGxvc3QgYW5kIHJlc3RvcmVkIGNhdXNlcyBh
IGNyYXNoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MzgwMjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBT
aW11bGF0ZWQgY29udGV4dCBsb3N0IG1ha2VzIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Om1f
Y29udGV4dCA9IG51bGxwdHIKKyAgICAgICAgUmVhbCBjb250ZXh0IGxvc3QgcHJlc2VydmVzIFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Om1fY29udGV4dC4KKworICAgICAgICBXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlOjptYXliZVJlc3RvcmVDb250ZXh0KCkgdXNlZCBtX2NvbnRleHQuCisK
KyAgICAgICAgVGhlIGludGVudGlvbiB3YXMgdGhhdCBzaW11bGF0ZWQgY29udGV4dCBsb3N0IG5l
dmVyIGludm9rZXMgbWF5YmVSZXN0b3JlQ29udGV4dCgpCisgICAgICAgIGFzIHRoZSB0aW1lciB0
byBydW4gbWF5YmVSZXN0b3JlQ29udGV4dCgpIGlzIHN0YXJ0ZWQgb25seSBvbiByZWFsIGNvbnRl
eHQgbG9zdC4KKworICAgICAgICBIb3dldmVyLCBpdCBpcyBwb3NzaWJsZSB0byBpbnZva2Ugc2lt
dWxhdGVkIGNvbnRleHQgbG9zdCBhZnRlciBhIHJlYWwgY29udGV4dCBsb3N0LAorICAgICAgICBi
dXQgYmVmb3JlIHRoZSB0aW1lciB0cmlnZ2VycyBtYXliZVJlc3RvcmVDb250ZXh0KCkuCisKKyAg
ICAgICAgVGhlIHNlcXVlbmNlIHdvdWxkIGJlOgorICAgICAgICAxLiBMb3NlIHRoZSBjb250ZXh0
IHNvbWVob3cKKyAgICAgICAgMi4gV2FpdCBmb3Igd2ViZ2xjb250ZXh0bG9zdCwgdXNlIGV2ZW50
LnByZXZlbnREZWZhdWx0KCkgdG8gcmVxdWVzdCBhIHJlc3RvcmUuCisgICAgICAgIDMuIEJlZm9y
ZSByZXN0b3JlIGhhcHBlbnMsIGxvc2UgdGhlIGNvbnRleHQgdmlhIHNpbXVsYXRlZCBjb250ZXh0
IGxvc3QuCisgICAgICAgICAgIFRoaXMgY2FuIGJlIGRvbmUgYnkgY3JlYXRpbmcgbWFueSBjb250
ZXh0cyBvciB2aWEgdGhlIFdFQkdMX2xvc2VfY29udGV4dC5sb3NlQ29udGV4dCgpLgorICAgICAg
ICA0LiBtYXliZVJlc3RvcmVDb250ZXh0KCkgd291bGQgcXVlcnkgbV9jb250ZXh0LT5nZXRHcmFw
aGljc1Jlc2V0U3RhdHVzQVJCKCkgZm9yCisgICAgICAgICAgIGNvbnNvbGUgbG9nIHJlYXNvbnMs
IHRyeWluZyB0byBleHBsYWluIHRvIHRoZSBkZXZlbG9wZXIgd2h5IHRoZSBjb250ZXh0IHdhcyBs
b3N0LgorICAgICAgICAgICBJbiBjYXNlIHNpbXVsYXRlZCBjb250ZXh0IGxvc3Qgc2V0IHRoZSBt
X2NvbnRleHQgPT0gbnVsbHB0ciwgdGhpcyB3b3VsZCBjcmFzaC4KKworICAgICAgICBnZXRHcmFw
aGljc1Jlc2V0U3RhdHVzQVJCKCkgaGFzIGxpa2VseSBub3QgYmVlbiBhY2N1cmF0ZSBmb3IgYW55
IHBsYXRmb3JtIGV2ZXIuCisgICAgICAgIEZvciBBTkdMRSwgaXQgaXMgdW5pbXBsZW1lbnRlZCBh
bmQgY2Fubm90IHBpbnBvaW50IHdoaWNoIGNvbnRleHQgY2F1c2VkIHRoZSBjb250ZXh0IGxvc3Qu
CisgICAgICAgIEp1c3QgcmVtb3ZlIGdldEdyYXBoaWNzUmVzZXRTdGF0dXNBUkIoKSB1c2UgZnJv
bSBtYXliZVJlc3RvcmVDb250ZXh0KCksIHRoaXMgcHJldmVudHMKKyAgICAgICAgdGhlIGNyYXNo
LiBSZW1vdmUgaXQgYWxzbyBmcm9tIFdlYktpdCB1c2UgYWx0b2dldGhlciwgaXQgaXMgbmV2ZXIg
dXNlZCBmb3IgYW55dGhpbmcuCisKKyAgICAgICAgQWRkcyB0aGUgY2FzZSB0byB3ZWJnbC9tYXgt
YWN0aXZlLWNvbnRleHRzLXdlYmdsY29udGV4dGxvc3QtcHJldmVudC1kZWZhdWx0Lmh0bWwKKwor
ICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6bG9zZUNvbnRleHRJbXBs
KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Om1heWJlUmVz
dG9yZUNvbnRleHQpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5jcHA6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21t
b24uY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xP
cGVuR0xDb21tb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5z
aW9uc0dMT3BlbkdMRVMuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9F
eHRlbnNpb25zR0xPcGVuR0xFUy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5n
bC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmg6CisKIDIwMjItMDMtMTcgIE9yaW9s
IEJydWZhdSAgPG9icnVmYXVAaWdhbGlhLmNvbT4KIAogICAgICAgICBDbGFyaWZ5IGNvZGUgZm9y
IGxvZ2ljYWwtdG8tcGh5c2ljYWwgbWFwcGluZ3MsIGFuZCBhZGQgcGh5c2ljYWwtdG8tbG9naWNh
bCBtYXBwaW5ncwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwppbmRleCAxNWEzNTM3N2IyZWY2ODE2ZjdlMDcyZjBkOGY5MzhjMWQ3
ZmU4NjU0Li41ZGQyZGZlMTE4YmQzMDM2N2Y3ZTZmM2Q3NWMzZjlhMzY4Zjc4ZTQ4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDIyIEBACisyMDIyLTAzLTE3ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5l
bkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVjeWNsaW5nIGEgd2ViZ2wgY29udGV4dCB3aGVuIGl0
IGhhcyBiZWVuIGxvc3QgYW5kIHJlc3RvcmVkIGNhdXNlcyBhIGNyYXNoCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzgwMjQKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgR3JhcGhpY3NDb250ZXh0
R0w6OmdldEdyYXBoaWNzUmVzZXRTdGF0dXNBUkIoKSwgaXQncyB1bnVzZWQgbm93LgorCisgICAg
ICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5tZXNzYWdl
cy5pbjoKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4
dEdMRnVuY3Rpb25zR2VuZXJhdGVkLmg6CisgICAgICAgIChnZXRBY3RpdmVVbmlmb3JtQmxvY2tp
dik6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdM
UHJveHk6OnBhaW50UmVuZGVyaW5nUmVzdWx0c1RvQ2FudmFzKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eTo6cGFpbnRDb21wb3NpdGVkUmVzdWx0c1RvQ2Fu
dmFzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eTo6bWFy
a0NvbnRleHRMb3N0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVH
cmFwaGljc0NvbnRleHRHTFByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUZ1bmN0aW9uc0dlbmVyYXRlZC5jcHA6CisK
IDIwMjItMDMtMTcgIE5pa29sYXMgWmltbWVybWFubiAgPG56aW1tZXJtYW5uQGlnYWxpYS5jb20+
CiAKICAgICAgICAgQnVpbGQgYnJva2VuIG9uIG1hY09TIE1vbnRlcmV5IDEyLjMgLSBQYXNzS2l0
U1BJIHJlbGF0ZWQgZXJyb3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKaW5kZXggMDE1NDNiNWU5MGY2ZmMyM2U5
NmRiZmFhNDAyYTc4NTYzYjkyMWI2NS4uOGYwOTk0NWYxZGU0YzFmMTM1YzE0MzgxZjY2OWFlMTVj
YzViN2NlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKQEAgLTY0NTIsMTYgKzY0NTIsNiBAQCB2b2lkIFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Omxvc2VDb250ZXh0SW1wbChXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOjpMb3N0QwogICAgIG1fY29udGV4dExvc3QgPSB0cnVlOwogICAgIG1fY29udGV4
dExvc3RNb2RlID0gbW9kZTsKIAotICAgIGlmIChtb2RlID09IFJlYWxMb3N0Q29udGV4dCkgewot
ICAgICAgICAvLyBJbmZvcm0gdGhlIGVtYmVkZGVyIHRoYXQgYSBsb3N0IGNvbnRleHQgd2FzIHJl
Y2VpdmVkLiBJbiByZXNwb25zZSwgdGhlIGVtYmVkZGVyIG1pZ2h0Ci0gICAgICAgIC8vIGRlY2lk
ZSB0byB0YWtlIGFjdGlvbiBzdWNoIGFzIGFza2luZyB0aGUgdXNlciBmb3IgcGVybWlzc2lvbiB0
byB1c2UgV2ViR0wgYWdhaW4uCi0gICAgICAgIGF1dG8qIGNhbnZhcyA9IGh0bWxDYW52YXMoKTsK
LSAgICAgICAgaWYgKGNhbnZhcykgewotICAgICAgICAgICAgaWYgKFJlZlB0cjxGcmFtZT4gZnJh
bWUgPSBjYW52YXMtPmRvY3VtZW50KCkuZnJhbWUoKSkKLSAgICAgICAgICAgICAgICBmcmFtZS0+
bG9hZGVyKCkuY2xpZW50KCkuZGlkTG9zZVdlYkdMQ29udGV4dChtX2NvbnRleHQtPmdldEdyYXBo
aWNzUmVzZXRTdGF0dXNBUkIoKSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KICAgICBkZXRhY2hBbmRS
ZW1vdmVBbGxPYmplY3RzKCk7CiAgICAgbG9zZUV4dGVuc2lvbnMobW9kZSk7CiAKQEAgLTc3NzEs
MzMgKzc3NjEsNiBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Om1heWJlUmVzdG9y
ZUNvbnRleHQoKQogICAgIGlmICghbV9yZXN0b3JlQWxsb3dlZCkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgaW50IGNvbnRleHRMb3N0UmVhc29uID0gbV9jb250ZXh0LT5nZXRHcmFwaGljc1Jlc2V0
U3RhdHVzQVJCKCk7Ci0KLSAgICBzd2l0Y2ggKGNvbnRleHRMb3N0UmVhc29uKSB7Ci0gICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHRHTDo6Tk9fRVJST1I6Ci0gICAgICAgIC8vIFRoZSBHcmFwaGljc0Nv
bnRleHRHTE9wZW5HTCBpbXBsZW1lbnRhdGlvbiBtaWdodCBub3QgZnVsbHkKLSAgICAgICAgLy8g
c3VwcG9ydCBHTF9BUkJfcm9idXN0bmVzcyBzZW1hbnRpY3MgeWV0LiBBbHRlcm5hdGl2ZWx5LCB0
aGUKLSAgICAgICAgLy8gV0VCR0xfbG9zZV9jb250ZXh0IGV4dGVuc2lvbiBtaWdodCBoYXZlIGJl
ZW4gdXNlZCB0byBmb3JjZQotICAgICAgICAvLyBhIGxvc3QgY29udGV4dC4KLSAgICAgICAgYnJl
YWs7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6R1VJTFRZX0NPTlRFWFRfUkVTRVRfQVJC
OgotICAgICAgICAvLyBUaGUgcmVuZGVyaW5nIGNvbnRleHQgaXMgbm90IHJlc3RvcmVkIGlmIHRo
aXMgY29udGV4dCB3YXMKLSAgICAgICAgLy8gZ3VpbHR5IG9mIGNhdXNpbmcgdGhlIGdyYXBoaWNz
IHJlc2V0LgotICAgICAgICBwcmludFRvQ29uc29sZShNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsICJX
QVJOSU5HOiBXZWJHTCBjb250ZW50IG9uIHRoZSBwYWdlIGNhdXNlZCB0aGUgZ3JhcGhpY3MgY2Fy
ZCB0byByZXNldDsgbm90IHJlc3RvcmluZyB0aGUgY29udGV4dCIpOwotICAgICAgICByZXR1cm47
Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6SU5OT0NFTlRfQ09OVEVYVF9SRVNFVF9BUkI6
Ci0gICAgICAgIC8vIEFsd2F5cyBhbGxvdyB0aGUgY29udGV4dCB0byBiZSByZXN0b3JlZC4KLSAg
ICAgICAgYnJlYWs7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6VU5LTk9XTl9DT05URVhU
X1JFU0VUX0FSQjoKLSAgICAgICAgLy8gV2Fybi4gSWRlYWxseSwgcHJvbXB0IHRoZSB1c2VyIHRl
bGxpbmcgdGhlbSB0aGF0IFdlYkdMCi0gICAgICAgIC8vIGNvbnRlbnQgb24gdGhlIHBhZ2UgbWln
aHQgaGF2ZSBjYXVzZWQgdGhlIGdyYXBoaWNzIGNhcmQgdG8KLSAgICAgICAgLy8gcmVzZXQgYW5k
IGFzayB0aGVtIHdoZXRoZXIgdGhleSB3YW50IHRvIGNvbnRpbnVlIHJ1bm5pbmcKLSAgICAgICAg
Ly8gdGhlIGNvbnRlbnQuIE9ubHkgaWYgdGhleSBzYXkgInllcyIgc2hvdWxkIHdlIHN0YXJ0Ci0g
ICAgICAgIC8vIGF0dGVtcHRpbmcgdG8gcmVzdG9yZSB0aGUgY29udGV4dC4KLSAgICAgICAgcHJp
bnRUb0NvbnNvbGUoTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAiV0FSTklORzogV2ViR0wgY29udGVu
dCBvbiB0aGUgcGFnZSBtaWdodCBoYXZlIGNhdXNlZCB0aGUgZ3JhcGhpY3MgY2FyZCB0byByZXNl
dCIpOwotICAgICAgICBicmVhazsKLSAgICB9Ci0KICAgICBhdXRvKiBjYW52YXMgPSBodG1sQ2Fu
dmFzKCk7CiAgICAgaWYgKCFjYW52YXMpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggNzk0MzVhM2FjMjQ3NTZmN2Y5ZDk0YTU5
MjZjMjAxNmU5MTE2NzIyOC4uNDVmNTUyMmI0ODZlZDI0ZmUxZGYwNzk4MmMxZjc1MDgyOWJkNjVh
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTM0MCw5
ICszNDAsNiBAQCBwdWJsaWM6CiAKICNpZiBFTkFCTEUoV0VCR0wpCiAgICAgdmlydHVhbCBib29s
IGFsbG93V2ViR0woYm9vbCBlbmFibGVkUGVyU2V0dGluZ3MpIHsgcmV0dXJuIGVuYWJsZWRQZXJT
ZXR0aW5nczsgfQotICAgIC8vIEluZm9ybXMgdGhlIGVtYmVkZGVyIHRoYXQgYSBXZWJHTCBjYW52
YXMgaW5zaWRlIHRoaXMgZnJhbWUgcmVjZWl2ZWQgYSBsb3N0IGNvbnRleHQKLSAgICAvLyBub3Rp
ZmljYXRpb24gd2l0aCB0aGUgZ2l2ZW4gR0xfQVJCX3JvYnVzdG5lc3MgZ3VpbHQvaW5ub2NlbmNl
IGNvZGUgKHNlZSBHcmFwaGljc0NvbnRleHRHTC5oKS4KLSAgICB2aXJ0dWFsIHZvaWQgZGlkTG9z
ZVdlYkdMQ29udGV4dChpbnQpIHsgfQogICAgIHZpcnR1YWwgV2ViR0xMb2FkUG9saWN5IHdlYkdM
UG9saWN5Rm9yVVJMKGNvbnN0IFVSTCYpIGNvbnN0IHsgcmV0dXJuIFdlYkdMTG9hZFBvbGljeTo6
V2ViR0xBbGxvd0NyZWF0aW9uOyB9CiAgICAgdmlydHVhbCBXZWJHTExvYWRQb2xpY3kgcmVzb2x2
ZVdlYkdMUG9saWN5Rm9yVVJMKGNvbnN0IFVSTCYpIGNvbnN0IHsgcmV0dXJuIFdlYkdMTG9hZFBv
bGljeTo6V2ViR0xBbGxvd0NyZWF0aW9uOyB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRHTC5oCmluZGV4IDMyMjA5MTM2
NWUwZmM2ZDFiMzY1NWU2ZWNiOWQ4ODgyODYyODczMDIuLjdkZWU2NmVjY2RmNjQxN2Y4Yjc0OTYw
ZmNkMWFhYjZiOTg0NzQwYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0R0wuaApAQCAtMTM3NSwxNSArMTM3NSw2IEBAIHB1Ymxp
YzoKICAgICAvLyBIYXMgbm8gb3RoZXIgc2lkZS1lZmZlY3RzLgogICAgIHZpcnR1YWwgYm9vbCBp
c0V4dGVuc2lvbkVuYWJsZWQoY29uc3QgU3RyaW5nJikgPSAwOwogCi0gICAgLy8gR0xfQVJCX3Jv
YnVzdG5lc3MKLSAgICAvLyBOb3RlOiBUaGlzIG1ldGhvZCdzIGJlaGF2aW9yIGRpZmZlcnMgZnJv
bSB0aGUgR0xfQVJCX3JvYnVzdG5lc3MKLSAgICAvLyBzcGVjaWZpY2F0aW9uIGluIHRoZSBmb2xs
b3dpbmcgd2F5OgotICAgIC8vIFRoZSBpbXBsZW1lbnRhdGlvbiBtdXN0IG5vdCByZXNldCB0aGUg
ZXJyb3Igc3RhdGUgZHVyaW5nIHRoaXMgY2FsbC4KLSAgICAvLyBJZiBnZXRHcmFwaGljc1Jlc2V0
U3RhdHVzQVJCIHJldHVybnMgYW4gZXJyb3IsIGl0IHNob3VsZCBjb250aW51ZQotICAgIC8vIHJl
dHVybmluZyB0aGUgc2FtZSBlcnJvci4gUmVzdG9yaW5nIHRoZSBHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTCBpcyBoYW5kbGVkCi0gICAgLy8gZXh0ZXJuYWxseS4KLSAgICB2aXJ0dWFsIEdDR0xpbnQg
Z2V0R3JhcGhpY3NSZXNldFN0YXR1c0FSQigpID0gMDsKLQogICAgIC8vIEdMX0FOR0xFX3RyYW5z
bGF0ZWRfc2hhZGVyX3NvdXJjZQogICAgIHZpcnR1YWwgU3RyaW5nIGdldFRyYW5zbGF0ZWRTaGFk
ZXJTb3VyY2VBTkdMRShQbGF0Zm9ybUdMT2JqZWN0KSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250
ZXh0R0xBTkdMRS5jcHAKaW5kZXggNjdmYmM0NGZlYmRhZjYzZTlkMjhhMDg1ZTNjZmQ1MmYxYTgy
OGRmZS4uNjNmNWQzOTZhNWMzN2JiZjFkNzEzOGFhNmY2ZTIwNzI2NWZjMzgwYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0
R0xBTkdMRS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUv
R3JhcGhpY3NDb250ZXh0R0xBTkdMRS5jcHAKQEAgLTI5MjMsMTEgKzI5MjMsNiBAQCBib29sIEdy
YXBoaWNzQ29udGV4dEdMQU5HTEU6OmlzRXh0ZW5zaW9uRW5hYmxlZChjb25zdCBTdHJpbmcmIG5h
bWUpCiAgICAgcmV0dXJuIG1fYXZhaWxhYmxlRXh0ZW5zaW9ucy5jb250YWlucyhuYW1lKSB8fCBt
X2VuYWJsZWRFeHRlbnNpb25zLmNvbnRhaW5zKG5hbWUpOwogfQogCi1HTGludCBHcmFwaGljc0Nv
bnRleHRHTEFOR0xFOjpnZXRHcmFwaGljc1Jlc2V0U3RhdHVzQVJCKCkKLXsKLSAgICByZXR1cm4g
R3JhcGhpY3NDb250ZXh0R0w6Ok5PX0VSUk9SOwotfQotCiBTdHJpbmcgR3JhcGhpY3NDb250ZXh0
R0xBTkdMRTo6Z2V0VHJhbnNsYXRlZFNoYWRlclNvdXJjZUFOR0xFKFBsYXRmb3JtR0xPYmplY3Qg
c2hhZGVyKQogewogICAgIGlmICghbWFrZUNvbnRleHRDdXJyZW50KCkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFO
R0xFLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0Nv
bnRleHRHTEFOR0xFLmgKaW5kZXggZjRkYzg3ZGI1MmUwZTI5NzAwYTIwNzc5MzUxMWFlMGFlOTU2
YTIyZC4uYmUxMDRjNTU3YTZiN2ZlZjA4MzViOTk4YjQzNWVkNDY1ODgxZTU5MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0
R0xBTkdMRS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dy
YXBoaWNzQ29udGV4dEdMQU5HTEUuaApAQCAtMzI5LDcgKzMyOSw2IEBAIHB1YmxpYzoKICAgICBi
b29sIHN1cHBvcnRzRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOwogICAgIHZvaWQg
ZW5zdXJlRXh0ZW5zaW9uRW5hYmxlZChjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKICAgICBib29s
IGlzRXh0ZW5zaW9uRW5hYmxlZChjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKLSAgICBHQ0dMaW50
IGdldEdyYXBoaWNzUmVzZXRTdGF0dXNBUkIoKSBvdmVycmlkZTsKICAgICB2b2lkIGRyYXdCdWZm
ZXJzRVhUKEdDR0xTcGFuPGNvbnN0IEdDR0xlbnVtPikgb3ZlcnJpZGU7CiAgICAgU3RyaW5nIGdl
dFRyYW5zbGF0ZWRTaGFkZXJTb3VyY2VBTkdMRShQbGF0Zm9ybUdMT2JqZWN0KSBvdmVycmlkZTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4
dGVuc2lvbnNHTE9wZW5HTENvbW1vbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uLmNwcAppbmRleCAyMWU4MjlmYmQx
MDFkZjZkNDY5MzE2ZjlkMjljZWQ4NmI0YWM5NjA2Li40ODk2OTljNGVlM2NmNDA5YTQzNzU3YWZl
ZjdhNDY1ZTM0Y2RmYWJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uLmNw
cApAQCAtMTU5LDExICsxNTksNiBAQCBib29sIEV4dGVuc2lvbnNHTE9wZW5HTENvbW1vbjo6aXNF
bmFibGVkKGNvbnN0IFN0cmluZyYgbmFtZSkKICAgICByZXR1cm4gc3VwcG9ydHMobmFtZSk7CiB9
CiAKLWludCBFeHRlbnNpb25zR0xPcGVuR0xDb21tb246OmdldEdyYXBoaWNzUmVzZXRTdGF0dXNB
UkIoKQotewotICAgIHJldHVybiBHcmFwaGljc0NvbnRleHRHTDo6Tk9fRVJST1I7Ci19Ci0KIFN0
cmluZyBFeHRlbnNpb25zR0xPcGVuR0xDb21tb246OmdldFRyYW5zbGF0ZWRTaGFkZXJTb3VyY2VB
TkdMRShQbGF0Zm9ybUdMT2JqZWN0IHNoYWRlcikKIHsKICAgICBBU1NFUlQoc2hhZGVyKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNp
b25zR0xPcGVuR0xDb21tb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29w
ZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24uaAppbmRleCAyYzM3ZmFjOTY1YzAyMTZkYTA1
YWM1ZmI4ZWFhZWI2ODNkNDRhN2U2Li5iNzQwNmM0OTcwNmM2MDNlNmEzOWJhYmUxZTIzYzkzYzEw
YjIwNzk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVu
Z2wvRXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTENvbW1vbi5oCkBAIC00Myw3ICs0
Myw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHMoY29uc3QgU3RyaW5nJik7
CiAgICAgdmlydHVhbCB2b2lkIGVuc3VyZUVuYWJsZWQoY29uc3QgU3RyaW5nJik7CiAgICAgdmly
dHVhbCBib29sIGlzRW5hYmxlZChjb25zdCBTdHJpbmcmKTsKLSAgICB2aXJ0dWFsIGludCBnZXRH
cmFwaGljc1Jlc2V0U3RhdHVzQVJCKCk7CiAgICAgdmlydHVhbCBTdHJpbmcgZ2V0VHJhbnNsYXRl
ZFNoYWRlclNvdXJjZUFOR0xFKFBsYXRmb3JtR0xPYmplY3QpOwogICAgIHZpcnR1YWwgdm9pZCBk
cmF3QnVmZmVyc0VYVChHQ0dMU3Bhbjxjb25zdCBHQ0dMZW51bT4gYnVmcykgPSAwOwogCkBAIC01
Nyw3ICs1Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZHJhd0VsZW1lbnRzSW5zdGFu
Y2VkQU5HTEUoR0NHTGVudW0gbW9kZSwgR0NHTHNpemVpIGNvdW50LCBHQ0dMZW51bSB0eXBlLCBH
Q0dMdm9pZHB0ciBvZmZzZXQsIEdDR0xzaXplaSBwcmltY291bnQpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgdmVydGV4QXR0cmliRGl2aXNvckFOR0xFKEdDR0x1aW50IGluZGV4LCBHQ0dMdWludCBk
aXZpc29yKSA9IDA7CiAKLSAgICAvLyBFWFQgUm9idXN0bmVzcyAtIHVzZXMgZ2V0R3JhcGhpY3NS
ZXNldFN0YXR1c0FSQigpCisgICAgLy8gRVhUIFJvYnVzdG5lc3MKICAgICB2aXJ0dWFsIHZvaWQg
cmVhZG5QaXhlbHNFWFQoaW50IHgsIGludCB5LCBHQ0dMc2l6ZWkgd2lkdGgsIEdDR0xzaXplaSBo
ZWlnaHQsIEdDR0xlbnVtIGZvcm1hdCwgR0NHTGVudW0gdHlwZSwgR0NHTHNpemVpIGJ1ZlNpemUs
IHZvaWQgKmRhdGEpOwogICAgIHZpcnR1YWwgdm9pZCBnZXRuVW5pZm9ybWZ2RVhUKEdDR0x1aW50
IHByb2dyYW0sIGludCBsb2NhdGlvbiwgR0NHTHNpemVpIGJ1ZlNpemUsIGZsb2F0ICpwYXJhbXMp
OwogICAgIHZpcnR1YWwgdm9pZCBnZXRuVW5pZm9ybWl2RVhUKEdDR0x1aW50IHByb2dyYW0sIGlu
dCBsb2NhdGlvbiwgR0NHTHNpemVpIGJ1ZlNpemUsIGludCAqcGFyYW1zKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVu
R0xFUy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5z
aW9uc0dMT3BlbkdMRVMuY3BwCmluZGV4IDk5N2U3OWVlNWQ0YzE3ZTIxMjBiYjNkZjRlMDI1NTAy
NjBhNGMzOGYuLjU0YjE3MDAxNTA5NTBlMWRiNjQ3MmNjY2FiMWFhOWM5NTY4ZTJhNzMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25z
R0xPcGVuR0xFUy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bmdsL0V4dGVuc2lvbnNHTE9wZW5HTEVTLmNwcApAQCAtMTY2LDI2ICsxNjYsNiBAQCB2b2lkIEV4
dGVuc2lvbnNHTE9wZW5HTEVTOjpkcmF3QnVmZmVyc0VYVChHQ0dMU3Bhbjxjb25zdCBHQ0dMZW51
bT4gLyogYnVmcyAqLykKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi1pbnQgRXh0ZW5zaW9u
c0dMT3BlbkdMRVM6OmdldEdyYXBoaWNzUmVzZXRTdGF0dXNBUkIoKQotewotICAgIC8vIEZJWE1F
OiBUaGlzIGRvZXMgbm90IGNhbGwgZ2V0R3JhcGhpY3NSZXNldFN0YXR1c0FSQiwgYnV0IGluc3Rl
YWQgZ2V0R3JhcGhpY3NSZXNldFN0YXR1c0VYVC4KLSAgICAvLyBUaGUgcmV0dXJuIGNvZGVzIGZy
b20gdGhlIHR3byBleHRlbnNpb25zIGFyZSBpZGVudGljYWwgYW5kIHRoZWlyIHB1cnBvc2UgaXMg
dGhlIHNhbWUsIHNvIGl0Ci0gICAgLy8gbWF5IGJlIGJlc3QgdG8gcmVuYW1lIGdldEdyYXBoaWNz
UmVzZXRTdGF0dXNBUkIoKSB0byBnZXRHcmFwaGljc1Jlc2V0U3RhdHVzKCkuCi0gICAgaWYgKG1f
Y29udGV4dFJlc2V0U3RhdHVzICE9IEdMX05PX0VSUk9SKQotICAgICAgICByZXR1cm4gbV9jb250
ZXh0UmVzZXRTdGF0dXM7Ci0gICAgaWYgKG1fZ2xHZXRHcmFwaGljc1Jlc2V0U3RhdHVzRVhUKSB7
Ci0gICAgICAgIGludCByZWFzb25Gb3JSZXNldCA9IEdyYXBoaWNzQ29udGV4dEdMOjpVTktOT1dO
X0NPTlRFWFRfUkVTRVRfQVJCOwotICAgICAgICBpZiAobV9jb250ZXh0LT5tYWtlQ29udGV4dEN1
cnJlbnQoKSkKLSAgICAgICAgICAgIHJlYXNvbkZvclJlc2V0ID0gbV9nbEdldEdyYXBoaWNzUmVz
ZXRTdGF0dXNFWFQoKTsKLSAgICAgICAgaWYgKHJlYXNvbkZvclJlc2V0ICE9IEdMX05PX0VSUk9S
KQotICAgICAgICAgICAgbV9jb250ZXh0UmVzZXRTdGF0dXMgPSByZWFzb25Gb3JSZXNldDsKLSAg
ICAgICAgcmV0dXJuIHJlYXNvbkZvclJlc2V0OwotICAgIH0KLQotICAgIG1fY29udGV4dC0+c3lu
dGhlc2l6ZUdMRXJyb3IoR0xfSU5WQUxJRF9PUEVSQVRJT04pOwotICAgIHJldHVybiBmYWxzZTsK
LX0KLQogdm9pZCBFeHRlbnNpb25zR0xPcGVuR0xFUzo6cmVhZG5QaXhlbHNFWFQoaW50IHgsIGlu
dCB5LCBHQ0dMc2l6ZWkgd2lkdGgsIEdDR0xzaXplaSBoZWlnaHQsIEdDR0xlbnVtIGZvcm1hdCwg
R0NHTGVudW0gdHlwZSwgR0NHTHNpemVpIGJ1ZlNpemUsIHZvaWQgKmRhdGEpCiB7CiAgICAgaWYg
KG1fZ2xSZWFkblBpeGVsc0VYVCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTEVTLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuaAppbmRleCA5
YmI1MmY5YmFhYWNiNTcxNmM0ZDAyYjliNWJmNzkxYTc4Zjc1MGUxLi4xZDg1NjY0ZGVlZWU5NDA5
OTczYTBjNDQyY2Y1NDVmMDQ1ZGI3ZWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuaApA
QCAtOTgsOSArOTgsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBkcmF3RWxlbWVudHNJbnN0YW5jZWRB
TkdMRShHQ0dMZW51bSBtb2RlLCBHQ0dMc2l6ZWkgY291bnQsIEdDR0xlbnVtIHR5cGUsIEdDR0x2
b2lkcHRyIG9mZnNldCwgR0NHTHNpemVpIHByaW1jb3VudCkgb3ZlcnJpZGU7CiAgICAgdm9pZCB2
ZXJ0ZXhBdHRyaWJEaXZpc29yQU5HTEUoR0NHTHVpbnQgaW5kZXgsIEdDR0x1aW50IGRpdmlzb3Ip
IG92ZXJyaWRlOwogCi0gICAgLy8gRVhUIFJvYnVzdG5lc3MgLSByZXNldAotICAgIGludCBnZXRH
cmFwaGljc1Jlc2V0U3RhdHVzQVJCKCkgb3ZlcnJpZGU7Ci0KICAgICAvLyBFWFQgUm9idXN0bmVz
cyAtIGV0YwogICAgIHZvaWQgcmVhZG5QaXhlbHNFWFQoaW50IHgsIGludCB5LCBHQ0dMc2l6ZWkg
d2lkdGgsIEdDR0xzaXplaSBoZWlnaHQsIEdDR0xlbnVtIGZvcm1hdCwgR0NHTGVudW0gdHlwZSwg
R0NHTHNpemVpIGJ1ZlNpemUsIHZvaWQgKmRhdGEpIG92ZXJyaWRlOwogICAgIHZvaWQgZ2V0blVu
aWZvcm1mdkVYVChHQ0dMdWludCBwcm9ncmFtLCBpbnQgbG9jYXRpb24sIEdDR0xzaXplaSBidWZT
aXplLCBmbG9hdCAqcGFyYW1zKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0wuY3BwCmluZGV4IDM2M2U5NjE3NzA2ZDhmMWQ4NGQ5ZDc5YzkyZGQ5ZTAxZDAxOTczY2Iu
LjRhOWU4ZmFlMDM3ZWVmNDBkZWQ5ZjJjZWFmODcyZmExNThhNDNhZmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9w
ZW5HTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dy
YXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcApAQCAtMzA3MCwxMSArMzA3MCw2IEBAIGJvb2wgR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0w6OmlzRXh0ZW5zaW9uRW5hYmxlZChjb25zdCBTdHJpbmcmIG5h
bWUpCiAgICAgcmV0dXJuIGdldEV4dGVuc2lvbnMoKS5pc0VuYWJsZWQobmFtZSk7CiB9CiAKLUdM
aW50IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpnZXRHcmFwaGljc1Jlc2V0U3RhdHVzQVJCKCkK
LXsKLSAgICByZXR1cm4gZ2V0RXh0ZW5zaW9ucygpLmdldEdyYXBoaWNzUmVzZXRTdGF0dXNBUkIo
KTsKLX0KLQogdm9pZCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6ZHJhd0J1ZmZlcnNFWFQoR0NH
TFNwYW48Y29uc3QgR0NHTGVudW0+IGJ1ZmZlcnMpCiB7CiAgICAgcmV0dXJuIGdldEV4dGVuc2lv
bnMoKS5kcmF3QnVmZmVyc0VYVChidWZmZXJzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMLmgKaW5kZXggZTg5OTdiMmU1MDQzZjYzNzYyMDE1ZWIxNTIyOTI3ODhjMzU5NjUyNi4uNTNl
MWQxZDRiYWVmZjhkZDI2OGI5ODI2NzQ5NzljNmQ5ZjU5MzEwYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdM
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNz
Q29udGV4dEdMT3BlbkdMLmgKQEAgLTM3Miw3ICszNzIsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBz
dXBwb3J0c0V4dGVuc2lvbihjb25zdCBTdHJpbmcmKSBmaW5hbDsKICAgICB2b2lkIGVuc3VyZUV4
dGVuc2lvbkVuYWJsZWQoY29uc3QgU3RyaW5nJikgZmluYWw7CiAgICAgYm9vbCBpc0V4dGVuc2lv
bkVuYWJsZWQoY29uc3QgU3RyaW5nJikgZmluYWw7Ci0gICAgR0xpbnQgZ2V0R3JhcGhpY3NSZXNl
dFN0YXR1c0FSQigpIGZpbmFsOwogICAgIHZvaWQgZHJhd0J1ZmZlcnNFWFQoR0NHTFNwYW48Y29u
c3QgR0NHTGVudW0+KSBvdmVycmlkZTsKICAgICBTdHJpbmcgZ2V0VHJhbnNsYXRlZFNoYWRlclNv
dXJjZUFOR0xFKFBsYXRmb3JtR0xPYmplY3QpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3ND
b250ZXh0R0wubWVzc2FnZXMuaW4KaW5kZXggNmNjOGE1MDg1MGQyYzBiNDcxNDViZWEzZGI0NGZl
MWM2NzQ5NzgxYi4uM2Y0ZTU0YmUyN2JhZjhlOWU3ZDk1YzQ3NWJiNGJlODQ1OTAwN2VmYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNz
Q29udGV4dEdMLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5tZXNzYWdlcy5pbgpAQCAtMjg0LDcgKzI4NCw2
IEBAIG1lc3NhZ2VzIC0+IFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMIE5vdFJlZkNvdW50ZWQgU3Ry
ZWFtIHsKICAgICB2b2lkIEdldEFjdGl2ZVVuaWZvcm1CbG9ja05hbWUodWludDMyX3QgcHJvZ3Jh
bSwgdWludDMyX3QgdW5pZm9ybUJsb2NrSW5kZXgpIC0+IChTdHJpbmcgcmV0dXJuVmFsdWUpIFN5
bmNocm9ub3VzCiAgICAgdm9pZCBVbmlmb3JtQmxvY2tCaW5kaW5nKHVpbnQzMl90IHByb2dyYW0s
IHVpbnQzMl90IHVuaWZvcm1CbG9ja0luZGV4LCB1aW50MzJfdCB1bmlmb3JtQmxvY2tCaW5kaW5n
KQogICAgIHZvaWQgR2V0QWN0aXZlVW5pZm9ybUJsb2NraXYodWludDMyX3QgcHJvZ3JhbSwgdWlu
dDMyX3QgdW5pZm9ybUJsb2NrSW5kZXgsIHVpbnQzMl90IHBuYW1lLCB1aW50NjRfdCBwYXJhbXNT
aXplKSAtPiAoSVBDOjpBcnJheVJlZmVyZW5jZTxpbnQzMl90PiBwYXJhbXMpIFN5bmNocm9ub3Vz
Ci0gICAgdm9pZCBHZXRHcmFwaGljc1Jlc2V0U3RhdHVzQVJCKCkgLT4gKGludDMyX3QgcmV0dXJu
VmFsdWUpIFN5bmNocm9ub3VzCiAgICAgdm9pZCBHZXRUcmFuc2xhdGVkU2hhZGVyU291cmNlQU5H
TEUodWludDMyX3QgYXJnMCkgLT4gKFN0cmluZyByZXR1cm5WYWx1ZSkgU3luY2hyb25vdXMKICAg
ICB2b2lkIERyYXdCdWZmZXJzRVhUKElQQzo6QXJyYXlSZWZlcmVuY2U8dWludDMyX3Q+IGJ1ZnMp
CiAgICAgdm9pZCBHZXRJbnRlcm5hbGZvcm1hdGl2KHVpbnQzMl90IHRhcmdldCwgdWludDMyX3Qg
aW50ZXJuYWxmb3JtYXQsIHVpbnQzMl90IHBuYW1lLCB1aW50NjRfdCBwYXJhbXNTaXplKSAtPiAo
SVBDOjpBcnJheVJlZmVyZW5jZTxpbnQzMl90PiBwYXJhbXMpIFN5bmNocm9ub3VzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xGdW5jdGlvbnNHZW5lcmF0ZWQuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTEZ1bmN0aW9uc0dlbmVyYXRlZC5oCmluZGV4IDRh
NTNmODg3MzZmOGUwYzllOWQ5ZDM4MDAxZmZlZDM1Mjk3N2NkODEuLjEwZWU5MjRmMDQ1MDZhOGFj
YWQzNTI0YjJiMTE0ZDljMGE4OGEzMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTEZ1bmN0aW9uc0dlbmVyYXRlZC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0Nv
bnRleHRHTEZ1bmN0aW9uc0dlbmVyYXRlZC5oCkBAIC0xMzIxLDEzICsxMzIxLDYgQEAKICAgICAg
ICAgbV9jb250ZXh0LT5nZXRBY3RpdmVVbmlmb3JtQmxvY2tpdihwcm9ncmFtLCB1bmlmb3JtQmxv
Y2tJbmRleCwgcG5hbWUsIHBhcmFtcyk7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKElQQzo6
QXJyYXlSZWZlcmVuY2U8aW50MzJfdD4ocmVpbnRlcnByZXRfY2FzdDxpbnQzMl90Kj4ocGFyYW1z
LmRhdGEoKSksIHBhcmFtcy5zaXplKCkpKTsKICAgICB9Ci0gICAgdm9pZCBnZXRHcmFwaGljc1Jl
c2V0U3RhdHVzQVJCKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoaW50MzJfdCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCi0gICAgewotICAgICAgICBHQ0dMaW50IHJldHVyblZhbHVlID0geyB9OwotICAg
ICAgICBhc3NlcnRJc0N1cnJlbnQod29ya1F1ZXVlKCkpOwotICAgICAgICByZXR1cm5WYWx1ZSA9
IG1fY29udGV4dC0+Z2V0R3JhcGhpY3NSZXNldFN0YXR1c0FSQigpOwotICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihyZXR1cm5WYWx1ZSk7Ci0gICAgfQogICAgIHZvaWQgZ2V0VHJhbnNsYXRlZFNo
YWRlclNvdXJjZUFOR0xFKHVpbnQzMl90IGFyZzAsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3Ry
aW5nJiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogICAgIHsKICAgICAgICAgU3RyaW5nIHJldHVy
blZhbHVlID0geyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkuaAppbmRl
eCBmMGI4Y2E5OGY5MGIzMTZmZmQwNWQzOWIzOGU4MmIxM2NiYmM0NjhkLi43NGZlMTdiZmE0Y2M2
MWZjN2Y0MjI2OTcxNjYzMjExZjdhZGNmM2JjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMUHJveHkuaApAQCAtMzE0LDcgKzMxNCw2IEBAIHB1YmxpYzoKICAgICBTdHJpbmcgZ2V0
QWN0aXZlVW5pZm9ybUJsb2NrTmFtZShQbGF0Zm9ybUdMT2JqZWN0IHByb2dyYW0sIEdDR0x1aW50
IHVuaWZvcm1CbG9ja0luZGV4KSBmaW5hbDsKICAgICB2b2lkIHVuaWZvcm1CbG9ja0JpbmRpbmco
UGxhdGZvcm1HTE9iamVjdCBwcm9ncmFtLCBHQ0dMdWludCB1bmlmb3JtQmxvY2tJbmRleCwgR0NH
THVpbnQgdW5pZm9ybUJsb2NrQmluZGluZykgZmluYWw7CiAgICAgdm9pZCBnZXRBY3RpdmVVbmlm
b3JtQmxvY2tpdihHQ0dMdWludCBwcm9ncmFtLCBHQ0dMdWludCB1bmlmb3JtQmxvY2tJbmRleCwg
R0NHTGVudW0gcG5hbWUsIEdDR0xTcGFuPEdDR0xpbnQ+IHBhcmFtcykgZmluYWw7Ci0gICAgR0NH
TGludCBnZXRHcmFwaGljc1Jlc2V0U3RhdHVzQVJCKCkgZmluYWw7CiAgICAgU3RyaW5nIGdldFRy
YW5zbGF0ZWRTaGFkZXJTb3VyY2VBTkdMRShQbGF0Zm9ybUdMT2JqZWN0IGFyZzApIGZpbmFsOwog
ICAgIHZvaWQgZHJhd0J1ZmZlcnNFWFQoR0NHTFNwYW48Y29uc3QgR0NHTGVudW0+IGJ1ZnMpIGZp
bmFsOwogICAgIHZvaWQgZ2V0SW50ZXJuYWxmb3JtYXRpdihHQ0dMZW51bSB0YXJnZXQsIEdDR0xl
bnVtIGludGVybmFsZm9ybWF0LCBHQ0dMZW51bSBwbmFtZSwgR0NHTFNwYW48R0NHTGludD4gcGFy
YW1zKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUZ1bmN0aW9uc0dlbmVyYXRlZC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMUHJveHlGdW5jdGlvbnNHZW5lcmF0ZWQuY3BwCmluZGV4IDFmMjk2MDZmYmIzODM1NGUw
ODc1ZTg1ZTczZGM2ODZiNTM5MThlYmUuLjQzMWFkYzkzOWFkYzIzNmFjNzcyNjU5ZGE1NDQzM2Ez
MjJkMzNkMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUZ1bmN0aW9uc0dlbmVyYXRlZC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0Nv
bnRleHRHTFByb3h5RnVuY3Rpb25zR2VuZXJhdGVkLmNwcApAQCAtMjI2NywxNyArMjI2Nyw2IEBA
IHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eTo6Z2V0QWN0aXZlVW5pZm9ybUJsb2Nr
aXYoR0NHTHVpbnQgcHJvZ3JhbSwgR0NHCiAgICAgfQogfQogCi1HQ0dMaW50IFJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMUHJveHk6OmdldEdyYXBoaWNzUmVzZXRTdGF0dXNBUkIoKQotewotICAgIGlu
dDMyX3QgcmV0dXJuVmFsdWUgPSB7IH07Ci0gICAgaWYgKCFpc0NvbnRleHRMb3N0KCkpIHsKLSAg
ICAgICAgYXV0byBzZW5kUmVzdWx0ID0gc2VuZFN5bmMoTWVzc2FnZXM6OlJlbW90ZUdyYXBoaWNz
Q29udGV4dEdMOjpHZXRHcmFwaGljc1Jlc2V0U3RhdHVzQVJCKCksIE1lc3NhZ2VzOjpSZW1vdGVH
cmFwaGljc0NvbnRleHRHTDo6R2V0R3JhcGhpY3NSZXNldFN0YXR1c0FSQjo6UmVwbHkocmV0dXJu
VmFsdWUpKTsKLSAgICAgICAgaWYgKCFzZW5kUmVzdWx0KQotICAgICAgICAgICAgbWFya0NvbnRl
eHRMb3N0KCk7Ci0gICAgfQotICAgIHJldHVybiByZXR1cm5WYWx1ZTsKLX0KLQogU3RyaW5nIFJl
bW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk6OmdldFRyYW5zbGF0ZWRTaGFkZXJTb3VyY2VBTkdM
RShQbGF0Zm9ybUdMT2JqZWN0IGFyZzApCiB7CiAgICAgU3RyaW5nIHJldHVyblZhbHVlID0geyB9
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IDhiYmNjNmRkMTgyN2ZmOGMxNDdiY2RmODBiZGMxMzhlNThhZjdhNTYuLmI1MTc1
NzdlZmE2NDcwMTAyMjcwZTM3NWI2MWJkNWI5ZGQ1MWU5MDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MCBA
QAorMjAyMi0wMy0xNyAgS2ltbW8gS2lubnVuZW4gIDxra2lubnVuZW5AYXBwbGUuY29tPgorCisg
ICAgICAgIFJlY3ljbGluZyBhIHdlYmdsIGNvbnRleHQgd2hlbiBpdCBoYXMgYmVlbiBsb3N0IGFu
ZCByZXN0b3JlZCBjYXVzZXMgYSBjcmFzaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjM4MDI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQ3JlYXRpbmcgZXhjZXNzaXZlIGFtb3VudCBvZiBjb250ZXh0cyB3
aWxsIGxvc2UgdGhlIG9sZGVzdCBjb250ZXh0IHZpYQorICAgICAgICAic2ltdWxhdGVkIGNvbnRl
eHQgbG9zdCIgbG9naWMsIG1ha2luZyB0aGUgY29udGV4dHMgbm9uLXJlc3RvcmFibGUuCisKKyAg
ICAgICAgUHJldmlvdXNseSB0aGUgdGVzdCB0cmllZCB0byB0ZXN0IHRoYXQgcmVxdWVzdGluZyBh
IHJlc3RvcmUgb24gYSBjb250ZXh0IHRoYXQKKyAgICAgICAgaGFkIHNpbXVsYXRlZCBjb250ZXh0
IGxvc3Qgd291bGQgbm90IHJlc3RvcmUuIEhvd2V2ZXIsIHRoZSB0ZXN0IHdhcyBpbnZhbGlkLAor
ICAgICAgICBhcyBpdCBhc3NlcnRlZCB0aGF0IHRoZSBjb250ZXh0IGlzIHN0aWxsIGxvc3QgaW1t
ZWRpYXRlbHkgYWZ0ZXIgcHJldmVudERlZmF1bHQoKToKKworICAgICAgICAgIGV2ZW50LnByZXZl
bnREZWZhdWx0KCk7CisgICAgICAgICAgaWYgKCFjb250ZXh0c1swXS5pc0NvbnRleHRMb3N0KCkp
CisgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpLnRleHRDb250
ZW50ID0gIkZBSUwiOworCisgICAgICAgIFRoaXMgaXMgbm90IGNvcnJlY3QsIGFzIHRoZSBwcmV2
ZW50RGVmYXVsdCgpIG9ubHkgaW5mb3JtcyB0aGUgYnJvd3NlcgorICAgICAgICB0aGF0IHRoZSBj
b250ZXh0IHNob3VsZCBiZSByZXN0b3JlZC4gVGhlIHJlc3RvcmUgaGFwcGVucyBhc3luY2hyb25v
dXNseS4KKworICAgICAgICBGaXggdGhlIHRlc3QgbG9naWMgYW5kIGFkZCBleHRyYSBjYXNlcy4g
TWFrZSB0aGUgbG9naWMgYXMgc3VjaDoKKyAgICAgICAgMS4gTG9zZSB0aGUgY29udGV4dCBpbiBz
b21lIHdheQorICAgICAgICAyLiBXYWl0IGZvciBjb250ZXh0IGxvc3QgZXZlbnQsIHJlcXVlc3Qg
cmVzdG9yZQorICAgICAgICAzLiBPcHRpb25hbGx5IGRvIHNvbWV0aGluZyB0aGF0IHdvdWxkIHRy
aWdnZXIgYW5vdGhlciB3YXkgb2YgbG9zaW5nIHRoZSBjb250ZXh0CisgICAgICAgIDQuIFJ1biBh
c3NlcnRpb25zIGFib3V0IGNvbnRleHQgYmVpbmcgc3RpbGwgZXhwZWN0ZWRseSBsb3N0CisKKyAg
ICAgICAgVGhlIGZhaWx1cmVzIGluIHRoZSB0ZXN0IGV4cGVjdGF0aW9uOgorICAgICAgICBGQUlM
IGdldEVycm9yIGV4cGVjdGVkOiBJTlZBTElEX09QRVJBVElPTi4gV2FzIE5PX0VSUk9SIDoKKyAg
ICAgICAgRkFJTCBnZXRFcnJvciBleHBlY3RlZDogQ09OVEVYVF9MT1NUX1dFQkdMLiBXYXMgTk9f
RVJST1IgOgorICAgICAgICBodHRwOi8vd2Via2l0Lm9yZy9iLzIzNjk2NQorCisgICAgICAgIEZB
SUwgRXhwZWN0ZWQgcmVzdG9yZSBiZSBpZ25vcmVkLCBidXQgaXQgd2FzIG5vdC4KKyAgICAgICAg
aHR0cDovL3dlYmtpdC5vcmcvYi8yMzgwMzQKKworICAgICAgICAqIHdlYmdsL21heC1hY3RpdmUt
Y29udGV4dHMtd2ViZ2xjb250ZXh0bG9zdC1wcmV2ZW50LWRlZmF1bHQuaHRtbDoKKwogMjAyMi0w
My0xNyAgQW5kcmVzIEdvbnphbGV6ICA8YW5kcmVzZ18yMkBhcHBsZS5jb20+CiAKICAgICAgICAg
Rml4IGZvciBhY2Nlc3NpYmlsaXR5L2FyaWEtdGFiLXh4eC5odG1sIHRlc3RzIGluIGlzb2xhdGVk
IHRyZWUgbW9kZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL21heC1hY3RpdmUtY29u
dGV4dHMtd2ViZ2xjb250ZXh0bG9zdC1wcmV2ZW50LWRlZmF1bHQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvd2ViZ2wvbWF4LWFjdGl2ZS1jb250ZXh0cy13ZWJnbGNvbnRleHRsb3N0LXByZXZl
bnQtZGVmYXVsdC1leHBlY3RlZC50eHQKaW5kZXggNzE0YThiZTIyNmVkNWM1OWZjZjlkNjhlMWZi
NDMyYjc3YWExMDM5Ni4uYzkzZGNjOWQxMmQyZDIyYjM3MzQzODRhNTk2OGU2MDQzMGMyNzVlMCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvbWF4LWFjdGl2ZS1jb250ZXh0cy13ZWJnbGNv
bnRleHRsb3N0LXByZXZlbnQtZGVmYXVsdC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
d2ViZ2wvbWF4LWFjdGl2ZS1jb250ZXh0cy13ZWJnbGNvbnRleHRsb3N0LXByZXZlbnQtZGVmYXVs
dC1leHBlY3RlZC50eHQKQEAgLTEsMiArMSw3MyBAQAotQ09OU09MRSBNRVNTQUdFOiBUaGVyZSBh
cmUgdG9vIG1hbnkgYWN0aXZlIFdlYkdMIGNvbnRleHRzIG9uIHRoaXMgcGFnZSwgdGhlIG9sZGVz
dCBjb250ZXh0IHdpbGwgYmUgbG9zdC4KLVBBU1MgaWYgdGhlIGZpcnN0IGNvbnRleHQgd2FzIGxv
c3QgZHVlIHRvIGNyZWF0aW5nIHRvbyBtYW55IFdlYkdMIGNvbnRleHRzIGV2ZW4gdGhvdWdoIHBy
ZXZlbnREZWZhdWx0KCkgd2FzIGNhbGxlZCB3aGVuIGEgd2ViZ2xjb250ZXh0bG9zdCBldmVudCB3
YXMgZGlzcGF0Y2hlZC4KK1Rlc3QgdGhhdCBmaXJzdCBsb3NpbmcgY29udGV4dCwgdHJ5aW5nIHRv
IHJlc3RvcmUgaXQsIGFuZCB0aGVuIGRvaW5nIHNvbWV0aGluZyB0byByZWFsbHkgbG9zZSBpdCBk
b2VzIG5vdCBjcmFzaC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCitURVNUIENPTVBM
RVRFOiA0MiBQQVNTLCAxMCBGQUlMCisKK1J1bm5pbmcgdGVzdDogbG9zZU1ldGhvZDogbG9zZUNv
bnRleHQsIGxvc2VNZXRob2QyOiBsb3NlQ29udGV4dAorUEFTUyBHb3Qgd2ViZ2xjb250ZXh0bG9z
dCBhbmQgcmVzdG9yZSB3YXMgYXR0ZW1wdGVkLgorUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQg
dmFsdWU6IENPTlRFWFRfTE9TVF9XRUJHTCA6CitQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2
YWx1ZTogSU5WQUxJRF9PUEVSQVRJT04gOgorUEFTUyBnbC5pc0NvbnRleHRMb3N0KCkgaXMgdHJ1
ZQorUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDoKK1J1bm5pbmcg
dGVzdDogbG9zZU1ldGhvZDogbG9zZUNvbnRleHQsIGxvc2VNZXRob2QyOiBtYW55Q29udGV4dHMK
K1BBU1MgR290IHdlYmdsY29udGV4dGxvc3QgYW5kIHJlc3RvcmUgd2FzIGF0dGVtcHRlZC4KK1BB
U1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBDT05URVhUX0xPU1RfV0VCR0wgOgorUEFT
UyBnbC5pc0NvbnRleHRMb3N0KCkgaXMgdHJ1ZQorUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQg
dmFsdWU6IE5PX0VSUk9SIDoKK1J1bm5pbmcgdGVzdDogbG9zZU1ldGhvZDogbG9zZUNvbnRleHQs
IGxvc2VNZXRob2QyOiBncHVTdGF0dXNGYWlsdXJlCitQQVNTIEdvdCB3ZWJnbGNvbnRleHRsb3N0
IGFuZCByZXN0b3JlIHdhcyBhdHRlbXB0ZWQuCitQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2
YWx1ZTogQ09OVEVYVF9MT1NUX1dFQkdMIDoKK1BBU1MgZ2wuaXNDb250ZXh0TG9zdCgpIGlzIHRy
dWUKK1BBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6CitSdW5uaW5n
IHRlc3Q6IGxvc2VNZXRob2Q6IGxvc2VDb250ZXh0LCBsb3NlTWV0aG9kMjogbm90aGluZworUEFT
UyBHb3Qgd2ViZ2xjb250ZXh0bG9zdCBhbmQgcmVzdG9yZSB3YXMgYXR0ZW1wdGVkLgorUEFTUyBn
ZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IENPTlRFWFRfTE9TVF9XRUJHTCA6CitQQVNTIGds
LmlzQ29udGV4dExvc3QoKSBpcyB0cnVlCitQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1
ZTogTk9fRVJST1IgOgorUnVubmluZyB0ZXN0OiBsb3NlTWV0aG9kOiBtYW55Q29udGV4dHMsIGxv
c2VNZXRob2QyOiBsb3NlQ29udGV4dAorUEFTUyBHb3Qgd2ViZ2xjb250ZXh0bG9zdCBhbmQgcmVz
dG9yZSB3YXMgYXR0ZW1wdGVkLgorRkFJTCBnZXRFcnJvciBleHBlY3RlZDogQ09OVEVYVF9MT1NU
X1dFQkdMLiBXYXMgTk9fRVJST1IgOgorRkFJTCBnZXRFcnJvciBleHBlY3RlZDogSU5WQUxJRF9P
UEVSQVRJT04uIFdhcyBOT19FUlJPUiA6CitQQVNTIGdsLmlzQ29udGV4dExvc3QoKSBpcyB0cnVl
CitQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOgorUnVubmluZyB0
ZXN0OiBsb3NlTWV0aG9kOiBtYW55Q29udGV4dHMsIGxvc2VNZXRob2QyOiBtYW55Q29udGV4dHMK
K1BBU1MgR290IHdlYmdsY29udGV4dGxvc3QgYW5kIHJlc3RvcmUgd2FzIGF0dGVtcHRlZC4KK0ZB
SUwgZ2V0RXJyb3IgZXhwZWN0ZWQ6IENPTlRFWFRfTE9TVF9XRUJHTC4gV2FzIE5PX0VSUk9SIDoK
K1BBU1MgZ2wuaXNDb250ZXh0TG9zdCgpIGlzIHRydWUKK1BBU1MgZ2V0RXJyb3Igd2FzIGV4cGVj
dGVkIHZhbHVlOiBOT19FUlJPUiA6CitSdW5uaW5nIHRlc3Q6IGxvc2VNZXRob2Q6IG1hbnlDb250
ZXh0cywgbG9zZU1ldGhvZDI6IGdwdVN0YXR1c0ZhaWx1cmUKK1BBU1MgR290IHdlYmdsY29udGV4
dGxvc3QgYW5kIHJlc3RvcmUgd2FzIGF0dGVtcHRlZC4KK0ZBSUwgZ2V0RXJyb3IgZXhwZWN0ZWQ6
IENPTlRFWFRfTE9TVF9XRUJHTC4gV2FzIE5PX0VSUk9SIDoKK1BBU1MgZ2wuaXNDb250ZXh0TG9z
dCgpIGlzIHRydWUKK1BBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6
CitSdW5uaW5nIHRlc3Q6IGxvc2VNZXRob2Q6IG1hbnlDb250ZXh0cywgbG9zZU1ldGhvZDI6IG5v
dGhpbmcKK1BBU1MgR290IHdlYmdsY29udGV4dGxvc3QgYW5kIHJlc3RvcmUgd2FzIGF0dGVtcHRl
ZC4KK0ZBSUwgZ2V0RXJyb3IgZXhwZWN0ZWQ6IENPTlRFWFRfTE9TVF9XRUJHTC4gV2FzIE5PX0VS
Uk9SIDoKK1BBU1MgZ2wuaXNDb250ZXh0TG9zdCgpIGlzIHRydWUKK1BBU1MgZ2V0RXJyb3Igd2Fz
IGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6CitSdW5uaW5nIHRlc3Q6IGxvc2VNZXRob2Q6IGdw
dVN0YXR1c0ZhaWx1cmUsIGxvc2VNZXRob2QyOiBsb3NlQ29udGV4dAorUEFTUyBHb3Qgd2ViZ2xj
b250ZXh0bG9zdCBhbmQgcmVzdG9yZSB3YXMgYXR0ZW1wdGVkLgorUEFTUyBnZXRFcnJvciB3YXMg
ZXhwZWN0ZWQgdmFsdWU6IENPTlRFWFRfTE9TVF9XRUJHTCA6CitGQUlMIGdldEVycm9yIGV4cGVj
dGVkOiBJTlZBTElEX09QRVJBVElPTi4gV2FzIE5PX0VSUk9SIDoKK0ZBSUwgRXhwZWN0ZWQgcmVz
dG9yZSBiZSBpZ25vcmVkLCBidXQgaXQgd2FzIG5vdC4KK1BBU1MgZ2V0RXJyb3Igd2FzIGV4cGVj
dGVkIHZhbHVlOiBOT19FUlJPUiA6CitSdW5uaW5nIHRlc3Q6IGxvc2VNZXRob2Q6IGdwdVN0YXR1
c0ZhaWx1cmUsIGxvc2VNZXRob2QyOiBtYW55Q29udGV4dHMKK1BBU1MgR290IHdlYmdsY29udGV4
dGxvc3QgYW5kIHJlc3RvcmUgd2FzIGF0dGVtcHRlZC4KK1BBU1MgZ2V0RXJyb3Igd2FzIGV4cGVj
dGVkIHZhbHVlOiBDT05URVhUX0xPU1RfV0VCR0wgOgorRkFJTCBFeHBlY3RlZCByZXN0b3JlIGJl
IGlnbm9yZWQsIGJ1dCBpdCB3YXMgbm90LgorUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFs
dWU6IE5PX0VSUk9SIDoKK1J1bm5pbmcgdGVzdDogbG9zZU1ldGhvZDogZ3B1U3RhdHVzRmFpbHVy
ZSwgbG9zZU1ldGhvZDI6IGdwdVN0YXR1c0ZhaWx1cmUKK1BBU1MgR290IHdlYmdsY29udGV4dGxv
c3QgYW5kIHJlc3RvcmUgd2FzIGF0dGVtcHRlZC4KK1BBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVk
IHZhbHVlOiBDT05URVhUX0xPU1RfV0VCR0wgOgorRkFJTCBFeHBlY3RlZCByZXN0b3JlIGJlIGln
bm9yZWQsIGJ1dCBpdCB3YXMgbm90LgorUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6
IE5PX0VSUk9SIDoKK1J1bm5pbmcgdGVzdDogbG9zZU1ldGhvZDogZ3B1U3RhdHVzRmFpbHVyZSwg
bG9zZU1ldGhvZDI6IG5vdGhpbmcKK1BBU1MgR290IHdlYmdsY29udGV4dGxvc3QgYW5kIHJlc3Rv
cmUgd2FzIGF0dGVtcHRlZC4KK1BBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBDT05U
RVhUX0xPU1RfV0VCR0wgOgorRkFJTCBFeHBlY3RlZCByZXN0b3JlIGJlIGlnbm9yZWQsIGJ1dCBp
dCB3YXMgbm90LgorUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDoK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9tYXgtYWN0aXZlLWNvbnRleHRzLXdlYmdsY29udGV4
dGxvc3QtcHJldmVudC1kZWZhdWx0Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9tYXgtYWN0aXZl
LWNvbnRleHRzLXdlYmdsY29udGV4dGxvc3QtcHJldmVudC1kZWZhdWx0Lmh0bWwKaW5kZXggMzY4
NDdhOTM0NDk1NDU0MGRjZmQ0OWQ5NmEzNTJjYjE5Yjg2MzMzMy4uYjNhMjEyNmVjYWRkY2E0YWZj
YmNjYTE2YmI1ZTdkNDI1MzQ1YjczMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvbWF4
LWFjdGl2ZS1jb250ZXh0cy13ZWJnbGNvbnRleHRsb3N0LXByZXZlbnQtZGVmYXVsdC5odG1sCisr
KyBiL0xheW91dFRlc3RzL3dlYmdsL21heC1hY3RpdmUtY29udGV4dHMtd2ViZ2xjb250ZXh0bG9z
dC1wcmV2ZW50LWRlZmF1bHQuaHRtbApAQCAtMSwyMSArMSwxNTIgQEAKLTxkaXYgaWQ9InJlc3Vs
dCI+UEFTUyBpZiB0aGUgZmlyc3QgY29udGV4dCB3YXMgbG9zdCBkdWUgdG8gY3JlYXRpbmcgdG9v
IG1hbnkgV2ViR0wgY29udGV4dHMgZXZlbiB0aG91Z2ggPGNvZGU+cHJldmVudERlZmF1bHQoKTwv
Y29kZT4gd2FzIGNhbGxlZCB3aGVuIGEgPGNvZGU+d2ViZ2xjb250ZXh0bG9zdDwvY29kZT4gZXZl
bnQgd2FzIGRpc3BhdGNoZWQuPC9kaXY+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InJl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgor
PHNjcmlwdCBzcmM9InJlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2pzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9qcy93
ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVz
dCgpIj4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgogPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgIHRlc3RSdW5uZXIu
d2FpdFVudGlsRG9uZSgpOwotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotfQotCi12YXIg
bWF4TnVtYmVyT2ZBY3RpdmVDb250ZXh0cyA9IDE2OwotdmFyIGNvbnRleHRzID0gW107Ci1mb3Ig
KHZhciBpID0gMDsgaSA8PSBtYXhOdW1iZXJPZkFjdGl2ZUNvbnRleHRzOyBpKyspIHsKLSAgICB2
YXIgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7Ci0gICAgY2FudmFz
LmFkZEV2ZW50TGlzdGVuZXIoIndlYmdsY29udGV4dGxvc3QiLCBmdW5jdGlvbihldmVudCkgewot
ICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwotICAgICAgICBpZiAoIWNvbnRleHRzWzBd
LmlzQ29udGV4dExvc3QoKSkKLSAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJy
ZXN1bHQiKS50ZXh0Q29udGVudCA9ICJGQUlMIjsKLSAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQotICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisidXNlIHN0cmljdCI7
CitkZXNjcmlwdGlvbigiVGVzdCB0aGF0IGZpcnN0IGxvc2luZyBjb250ZXh0LCB0cnlpbmcgdG8g
cmVzdG9yZSBpdCwgYW5kIHRoZW4gZG9pbmcgc29tZXRoaW5nIHRvIHJlYWxseSBsb3NlIGl0IGRv
ZXMgbm90IGNyYXNoLiIpOworCisvLyBUaGUgdGVzdCB3b3VsZCBjcmFzaCB3aXRoIGZvbGxvd2lu
ZyBzZXF1ZW5jZToKKy8vIDEuIENhdXNlIGEgcmVhbCBjb250ZXh0IGxvc3QuIEluIHRoaXMgdGVz
dCwgImdwdVN0YXR1c0ZhaWx1cmUiLgorLy8gMi4gUGFnZSB3b3VsZCB0cnkgdG8gcmVzdG9yZSB0
aGUgY29udGV4dC4gVGhpcyB3b3VsZCBzdGFydCB0aGUgcmVzdG9yZSB0aW1lci4KKy8vIDMuIEJl
Zm9yZSB0aGUgcmVzdG9yZSB0aW1lciBmaXJlcywgcmVhbGx5IGxvc2UgdGhlIGNvbnRleHQuIElu
IHRoaXMgdGVzdCwgIm1hbnlDb250ZXh0Ii4KKy8vIDQuIFRoZSByZXN0b3JlIHRpbWVyIHdvdWxk
IGZpcmUsIGFuZCByZXN0b3JlIGZ1bmN0aW9uIHdvdWxkIHVzZSBudWxscHRyIGNvbnRleHQuCisK
K3ZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKK3ZhciBnbDsKKworYXN5bmMgZnVuY3Rpb24gd2Fp
dEZvckV2ZW50KGVsZW1lbnQsIGV2ZW50TmFtZSwgdGltZW91dE1TKQoreworICAgIHRpbWVvdXRN
UyA9IHRpbWVvdXRNUyB8fCAyMDAwOworICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwg
cmVqZWN0KSA9PiB7CisgICAgICAgIGZ1bmN0aW9uIHRpbWVvdXRIYW5kbGVyKCkgeworICAgICAg
ICAgICAgZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgaGFuZGxlciwgeyBv
bmNlOiB0cnVlIH0pOworICAgICAgICAgICAgcmVqZWN0KCk7CisgICAgICAgIH0KKyAgICAgICAg
Y29uc3QgcmVqZWN0SUQgPSBzZXRUaW1lb3V0KHRpbWVvdXRIYW5kbGVyLCB0aW1lb3V0TVMpOwor
ICAgICAgICBmdW5jdGlvbiBoYW5kbGVyKGV2ZW50KSB7CisgICAgICAgICAgICBjbGVhclRpbWVv
dXQocmVqZWN0SUQpOworICAgICAgICAgICAgcmVzb2x2ZShldmVudCk7CisgICAgICAgIH0KKyAg
ICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgaGFuZGxlciwgeyBvbmNl
OiB0cnVlIH0pOwogICAgIH0pOwotICAgIGNvbnRleHRzW2ldID0gY2FudmFzLmdldENvbnRleHQo
IndlYmdsIik7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIHdhaXRGb3JXZWJHTENvbnRleHRSZXN0b3Jl
ZChjYW52YXMsIHRpbWVvdXRNUykKK3sKKyAgICBhd2FpdCB3YWl0Rm9yRXZlbnQoY2FudmFzLCAi
d2ViZ2xjb250ZXh0cmVzdG9yZWQiLCB0aW1lb3V0TVMpOworfQorCithc3luYyBmdW5jdGlvbiB3
YWl0Rm9yV2ViR0xDb250ZXh0TG9zdEFuZFJlc3RvcmUoY2FudmFzLCB0aW1lb3V0TVMpCit7Cisg
ICAgbGV0IGV2ZW50ID0gYXdhaXQgd2FpdEZvckV2ZW50KGNhbnZhcywgIndlYmdsY29udGV4dGxv
c3QiLCB0aW1lb3V0TVMpOworICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7Cit9CisKK2Z1bmN0
aW9uIHRlc3REZXNjcmlwdGlvbihzdWJjYXNlKSB7CisgICAgcmV0dXJuIE9iamVjdC5rZXlzKHN1
YmNhc2UpLm1hcCgoaykgPT4gYCR7a306ICR7dHlwZW9mIHN1YmNhc2Vba10gPT09ICJmdW5jdGlv
biIgPyBzdWJjYXNlW2tdLm5hbWUgOiBzdWJjYXNlW2tdfWApLmpvaW4oIiwgIik7Cit9CisKK2Fz
eW5jIGZ1bmN0aW9uIHJ1blRlc3Qoc3ViY2FzZSkKK3sKKyAgICBkZWJ1ZyhgUnVubmluZyB0ZXN0
OiAke3Rlc3REZXNjcmlwdGlvbihzdWJjYXNlKX1gKTsKKworICAgIGNvbnN0IGNhbnZhcyA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpOworICAgIGNhbnZhcy53aWR0aCA9IDE7Cisg
ICAgY2FudmFzLmhlaWdodCA9IDE7CisgICAgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KGNhbnZh
cyk7CisgICAgY29uc3QgV0VCR0xfbG9zZV9jb250ZXh0ID0gd3R1LmdldEV4dGVuc2lvbldpdGhL
bm93blByZWZpeGVzKGdsLCAiV0VCR0xfbG9zZV9jb250ZXh0Iik7CisKKyAgICBjb25zdCB3ZWJn
bGNvbnRleHRsb3N0YW5kcmVzdG9yZSA9IHdhaXRGb3JXZWJHTENvbnRleHRMb3N0QW5kUmVzdG9y
ZShjYW52YXMpOworICAgIGNvbnN0IHdlYmdsY29udGV4dHJlc3RvcmVkID0gd2FpdEZvcldlYkdM
Q29udGV4dFJlc3RvcmVkKGNhbnZhcyk7CisgICAgbGV0IGV4cGVjdFJlc3RvcmVJZ25vcmVkID0g
c3ViY2FzZS5sb3NlTWV0aG9kKGdsLCBXRUJHTF9sb3NlX2NvbnRleHQpOworCisgICAgdHJ5IHsK
KyAgICAgICAgYXdhaXQgd2ViZ2xjb250ZXh0bG9zdGFuZHJlc3RvcmU7CisgICAgICAgIHRlc3RQ
YXNzZWQoIkdvdCB3ZWJnbGNvbnRleHRsb3N0IGFuZCByZXN0b3JlIHdhcyBhdHRlbXB0ZWQuIik7
CisgICAgICAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLkNPTlRFWFRfTE9TVF9XRUJHTCk7
CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBpZiAoZSkKKyAgICAgICAgICAgIHRocm93IGU7
CisgICAgICAgIHRlc3RGYWlsZWQoIlRpbWVkIG91dCB3YWl0aW5nIHdlYmdsY29udGV4dGxvc3Qg
dGhhdCB3b3VsZCBhdHRlbXB0IHRvIGJlIHJlc3RvcmVkLiIpOworICAgIH0KKyAgICBleHBlY3RS
ZXN0b3JlSWdub3JlZCA9IHN1YmNhc2UubG9zZU1ldGhvZDIoZ2wsIFdFQkdMX2xvc2VfY29udGV4
dCkgfHwgZXhwZWN0UmVzdG9yZUlnbm9yZWQ7CisKKyAgICB0cnkgeworICAgICAgICBhd2FpdCB3
ZWJnbGNvbnRleHRyZXN0b3JlZDsKKyAgICAgICAgaWYgKGV4cGVjdFJlc3RvcmVJZ25vcmVkKQor
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiRXhwZWN0ZWQgcmVzdG9yZSBiZSBpZ25vcmVkLCBidXQg
aXQgd2FzIG5vdC4iKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgc2hvdWxkQmVGYWxzZSgi
Z2wuaXNDb250ZXh0TG9zdCgpIik7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBpZiAoZSkK
KyAgICAgICAgICAgIHRocm93IGU7CisgICAgICAgIGlmICghZXhwZWN0UmVzdG9yZUlnbm9yZWQp
CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJEaWQgbm90IGV4cGVjdCByZXN0b3JlIGJlIGlnbm9y
ZWQsIGJ1dCBpdCB3YXMuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1
ZSgiZ2wuaXNDb250ZXh0TG9zdCgpIik7CisgICAgfQorCisgICAgd3R1LmdsRXJyb3JTaG91bGRC
ZShnbCwgZ2wuTk9fRVJST1IpOworfQorCitmdW5jdGlvbiBsb3NlQ29udGV4dChnbCwgV0VCR0xf
bG9zZV9jb250ZXh0KQoreworICAgIGlmICghV0VCR0xfbG9zZV9jb250ZXh0KSB7CisgICAgICAg
IHRlc3RGYWlsZWQoIkNvdWxkIG5vdCBmaW5kIFdFQkdMX2xvc2VfY29udGV4dCBleHRlbnNpb24i
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBsZXQgd2FzTG9zdCA9IGdsLmlzQ29udGV4
dExvc3QoKTsKKyAgICBXRUJHTF9sb3NlX2NvbnRleHQubG9zZUNvbnRleHQoKTsKKyAgICBpZiAo
d2FzTG9zdCkKKyAgICAgICAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9PUEVS
QVRJT04pOworICAgIHJldHVybiB0cnVlOyAvLyBSZXF1ZXN0IGZvciByZXN0b3JlIGlzIGlnbm9y
ZWQuCit9CisKK2Z1bmN0aW9uIG1hbnlDb250ZXh0cygpCit7CisgICAgLy8gVGhpcyBjYXVzZXMg
dGhlIG9sZGVyIGNvbnRleHRzIHRvIGJlIGxvc3QsIGluY2x1ZGluZyB0aGUgZmlyc3Qgb25lIHdl
IGNyZWF0ZWQKKyAgICAvLyBmb3IgdGVzdGluZy4KKyAgICBjb25zdCBjb250ZXh0cyA9IFtdCisg
ICAgZm9yIChsZXQgaSA9IDA7IGkgPCA1MDsgKytpKQorICAgICAgICBjb250ZXh0cy5wdXNoKGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLmdldENvbnRleHQoIndlYmdsIikpOworICAg
IHJldHVybiB0cnVlOyAvLyBSZXF1ZXN0IGZvciByZXN0b3JlIGlzIGlnbm9yZWQuCit9CisKK2Z1
bmN0aW9uIGdwdVN0YXR1c0ZhaWx1cmUoZ2wpCit7CisgICAgaW50ZXJuYWxzLnNpbXVsYXRlRXZl
bnRGb3JXZWJHTENvbnRleHQoIkdQVVN0YXR1c0ZhaWx1cmUiLCBnbCk7CisgICAgZ2wuY2xlYXIo
Z2wuQ09MT1JfQlVGRkVSX0JJVCk7CisgICAgcmV0dXJuIHRydWU7IC8vIFJlcXVlc3QgZm9yIHJl
c3RvcmUgaXMgaG9ub3JlZC4KK30KKworZnVuY3Rpb24gbm90aGluZygpCit7CisgICAgcmV0dXJu
IGZhbHNlOworfQorCitjb25zdCBsb3NlTWV0aG9kcyA9IFtsb3NlQ29udGV4dCwgbWFueUNvbnRl
eHRzXTsKK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGxvc2VNZXRob2RzLnB1c2goZ3B1U3Rh
dHVzRmFpbHVyZSk7CisKK2NvbnN0IHN1YmNhc2VzID0gW107Citmb3IgKGNvbnN0IGxvc2VNZXRo
b2Qgb2YgbG9zZU1ldGhvZHMpCisgICAgZm9yIChjb25zdCBsb3NlTWV0aG9kMiBvZiBsb3NlTWV0
aG9kcy5jb25jYXQobm90aGluZykpCisgICAgICAgIHN1YmNhc2VzLnB1c2goe2xvc2VNZXRob2Qs
IGxvc2VNZXRob2QyfSk7CisKK2FzeW5jIGZ1bmN0aW9uIHRlc3QoKQoreworICAgIGZvciAobGV0
IHN1YmNhc2Ugb2Ygc3ViY2FzZXMpCisgICAgICAgIGF3YWl0IHJ1blRlc3Qoc3ViY2FzZSk7Cisg
ICAgZmluaXNoVGVzdCgpOwogfQogPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455371</attachid>
            <date>2022-03-22 07:02:49 -0700</date>
            <delta_ts>2022-03-22 07:10:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236965-20220322160247.patch</filename>
            <type>text/plain</type>
            <size>21264</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxNDc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODhhMjdhMTNjZWFlMGQw
YmQ0Y2RjMTJhM2I4MTc3NTYxOTM3M2I1Zi4uYzMxZmVjYWM1YWI5YzM5YTkyNDFjMTM4MGQ2OTA5
YjFkY2Y4NmNkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDIyLTAzLTE4ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWZ0ZXIgbG9zaW5n
IGNvbnRleHQgZHVlIHRvIHRvbyBtYW55IGNvbnRleHRzLCBnZXRFcnJvcigpIGRvZXMgbm90IHJl
dHVybiBDT05URVhUX0xPU1RfV0VCR0wKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzNjk2NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFmdGVyIGdlbmVyYXRpbmcgY29udGV4dCBsb3N0LCBnZXRFcnJvcigp
IGlzIHNwZWNpZmllZCB0byByZXR1cm46CisgICAgICAgICAtIENPTlRFWFRfTE9TVF9XRUJHTCBm
b3IgZmlyc3QgY2FsbAorICAgICAgICAgLSBOT19FUlJPUiBmb3IgYWxsIHRoZSBuZXh0IGNhbGxz
LgorCisgICAgICAgIFdFQkdMX2xvc2VfY29udGV4dCBpcyBzcGVjaWZpZWQgdG8gYWRkIElOVkFM
SURfT1BFUkFUSU9OIGVycm9ycworICAgICAgICBldmVuIGFmdGVyIGNvbnRleHQgbG9zdC4KKwor
ICAgICAgICBDaGFuZ2UgdGhlIGNvZGUgc28gdGhhdCBDT05URVhUX0xPU1RfV0VCR0wgYW5kIFdF
QkdMX2xvc2VfY29udGV4dCBpbmR1Y2VkCisgICAgICAgIElOVkFMSURfT1BFUkFUSU9OIGVycm9y
cyBnbyB0byBlcnJvciB2ZWN0b3IgaW4gY29udGV4dCBsb3N0IC1zcGVjaWZpYyBzdGF0ZS4KKwor
ICAgICAgICBQcmV2aW91c2x5LCB0aGVzZSBlcnJvcnMgd2VudCBpbnRvIHRoZSBtX2NvbnRleHQg
ZXJyb3IgdmVjdG9yLiBUaGlzIGlzIHByb2JsZW1hdGljCisgICAgICAgIGVzcGVjaWFsbHkgaW4g
dGhlIGNhc2Ugd2hlcmUgY29udGV4dCBsb3NzIGhhcHBlbnMgd2hlcmUgdGhlIG1fY29udGV4dCBn
ZXRzIGRlc3Ryb3llZCAtLQorICAgICAgICB0aGUgZXJyb3IgdmVjdG9yIHdvdWxkIGJlIGdvbmUu
IFRoaXMga2luZCBvZiBsb3NzIGhhcHBlbnMgZm9yIGV4YW1wbGUgd2hlbiBjb250ZXh0cworICAg
ICAgICBnZXQgbG9zdCBkdWUgdG8gdGhlIHByb2Nlc3MgaGF2aW5nIHRvbyBtYW55IGFjdGl2ZSBj
b250ZXh0cyAobGVhc3QgYWN0aXZlIGNvbnRleHQgaXMgInJlY3ljbGVkKS4KKworICAgICAgICBO
byBuZXcgdGVzdHMsIHVwZGF0ZXMgdGhlIGV4cGVjdGF0aW9ucyBvZiBvbGQgb25lcyB3aXRoIGxl
c3MgZmFpbHVyZXMuCisKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
OmluaXRpYWxpemVOZXdDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U6OmdldEVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U6OmlzQ29udGV4dExvc3QgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6aXNDb250ZXh0TG9zdE9yUGVuZGluZyk6CisgICAgICAg
IChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpmb3JjZUxvc3RDb250ZXh0KToK
KyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Omxvc2VDb250ZXh0
SW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpmb3Jj
ZVJlc3RvcmVDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U6OmlzQ29udGV4dFVucmVjb3ZlcmFibHlMb3N0IGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnNjaGVkdWxlVGFza1RvRGlzcGF0Y2hDb250
ZXh0TG9zdEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2U6Om1heWJlUmVzdG9yZUNvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6c3ludGhlc2l6ZUdMRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6c3ludGhlc2l6ZUxvc3RDb250ZXh0R0xFcnJvcik6Cisg
ICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Q29udGV4dExvc3RTdGF0ZTo6
Q29udGV4dExvc3RTdGF0ZSk6CisKIDIwMjItMDMtMjIgIEtpbW1vIEtpbm51bmVuICA8a2tpbm51
bmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBDb250ZXh0MkQgZHJhd0ltYWdlKGltZywgeCwgeSwg
dywgaCkgc2hvdWxkIG5vdCB0aHJvdyBJbmRleFNpemVFcnJvciB3aGVuIHdpZHRoID09IDAgb3Ig
aGVpZ2h0ID09IDAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggOWY0NGE3NjgyNmFhYjk3MGVlMWZkMjAxYTk0NDA0YTk3
MDg2MDFhMS4uZWRjN2QzMzdlNzM0OTA3YTQ2MWY0M2Q2Y2I0ODY2OGQ0NDM0NDIzYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMi0wMy0xOCAgS2ltbW8gS2lubnVuZW4gIDxra2lubnVu
ZW5AYXBwbGUuY29tPgorCisgICAgICAgIEFmdGVyIGxvc2luZyBjb250ZXh0IGR1ZSB0byB0b28g
bWFueSBjb250ZXh0cywgZ2V0RXJyb3IoKSBkb2VzIG5vdCByZXR1cm4gQ09OVEVYVF9MT1NUX1dF
QkdMCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzY5
NjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1v
dmUgcmVjb3JkaW5nIG9mIHN5bnRoZXRpYyB3ZWJnbCBjb250ZXh0IGxvc3QgZXJyb3IgZnJvbSB0
aGUgcHJveHkuCisgICAgICAgIFRoaXMgaXMgbm93IHJlY29yZGVkIGluIHRoZSBXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVt
b3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdy
YXBoaWNzQ29udGV4dEdMUHJveHk6OnN5bnRoZXNpemVHTEVycm9yKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eTo6Z2V0RXJyb3IpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkuaDoKKwog
MjAyMi0wMy0xOCAgS2ltbW8gS2lubnVuZW4gIDxra2lubnVuZW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFJlY3ljbGluZyBhIHdlYmdsIGNvbnRleHQgd2hlbiBpdCBoYXMgYmVlbiBsb3N0IGFuZCBy
ZXN0b3JlZCBjYXVzZXMgYSBjcmFzaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcAppbmRleCAyNmQ5MmVkOGI3YTk3
MjdkODkxNDlmZjQ2NjNkMzRjMzI5NGExMDMwLi42ZTdiNzIzNDAwMDAxNzU1NmNiMzYzYmEzNTBk
OWYwNmM3OWQ3MWJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcApAQCAtMTA1MCw3ICsxMDUwLDcgQEAgdm9p
ZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpyZWdpc3RlcldpdGhXZWJHTFN0YXRlVHJhY2tl
cigpCiAKIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6aW5pdGlhbGl6ZU5ld0NvbnRl
eHQoKQogewotICAgIEFTU0VSVCghbV9jb250ZXh0TG9zdCk7CisgICAgQVNTRVJUKCFpc0NvbnRl
eHRMb3N0KCkpOwogICAgIG1fbmVlZHNVcGRhdGUgPSB0cnVlOwogICAgIG1fbWFya2VkQ2FudmFz
RGlydHkgPSBmYWxzZTsKICAgICBtX2FjdGl2ZVRleHR1cmVVbml0ID0gMDsKQEAgLTMxNzAsNyAr
MzE3MCwxMyBAQCBzdGQ6Om9wdGlvbmFsPFdlYkdMQ29udGV4dEF0dHJpYnV0ZXM+IFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2U6OmdldENvbnRleHRBdHRyaQogCiBHQ0dMZW51bSBXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlOjpnZXRFcnJvcigpCiB7Ci0gICAgaWYgKCFtX2NvbnRleHQgfHwgbV9p
c1BlbmRpbmdQb2xpY3lSZXNvbHV0aW9uKQorICAgIGlmIChpc0NvbnRleHRMb3N0KCkpIHsKKyAg
ICAgICAgYXV0byYgZXJyb3JzID0gbV9jb250ZXh0TG9zdFN0YXRlLT5lcnJvcnM7CisgICAgICAg
IGlmICghZXJyb3JzLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIHJldHVybiBlcnJvcnMudGFrZUZp
cnN0KCk7CisgICAgICAgIHJldHVybiBHcmFwaGljc0NvbnRleHRHTDo6Tk9fRVJST1I7CisgICAg
fQorICAgIGlmIChtX2lzUGVuZGluZ1BvbGljeVJlc29sdXRpb24pCiAgICAgICAgIHJldHVybiBH
cmFwaGljc0NvbnRleHRHTDo6Tk9fRVJST1I7CiAgICAgcmV0dXJuIG1fY29udGV4dC0+Z2V0RXJy
b3IoKTsKIH0KQEAgLTQwNTksNyArNDA2NSw3IEBAIEdDR0xib29sZWFuIFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U6OmlzQnVmZmVyKFdlYkdMQnVmZmVyKiBidWZmZXIpCiAKIGJvb2wgV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZTo6aXNDb250ZXh0TG9zdCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJu
IG1fY29udGV4dExvc3Q7CisgICAgcmV0dXJuIG1fY29udGV4dExvc3RTdGF0ZS5oYXNfdmFsdWUo
KTsKIH0KIAogYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjppc0NvbnRleHRMb3N0T3JQ
ZW5kaW5nKCkKQEAgLTQwODAsNyArNDA4Niw3IEBAIGJvb2wgV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZTo6aXNDb250ZXh0TG9zdE9yUGVuZGluZygpCiAgICAgICAgIG1faGFzUmVxdWVzdGVkUG9s
aWN5UmVzb2x1dGlvbiA9IHRydWU7CiAgICAgfQogCi0gICAgcmV0dXJuIG1fY29udGV4dExvc3Qg
fHwgbV9pc1BlbmRpbmdQb2xpY3lSZXNvbHV0aW9uOworICAgIHJldHVybiBpc0NvbnRleHRMb3N0
KCkgfHwgbV9pc1BlbmRpbmdQb2xpY3lSZXNvbHV0aW9uOwogfQogCiBHQ0dMYm9vbGVhbiBXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjppc0VuYWJsZWQoR0NHTGVudW0gY2FwKQpAQCAtNjQzNyw3
ICs2NDQzLDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2aWV3cG9ydChHQ0dM
aW50IHgsIEdDR0xpbnQgeSwgR0NHTHNpemVpIHdpZHRoLAogdm9pZCBXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOjpmb3JjZUxvc3RDb250ZXh0KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Okxv
c3RDb250ZXh0TW9kZSBtb2RlKQogewogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkp
IHsKLSAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0R0w6OklOVkFMSURf
T1BFUkFUSU9OLCAibG9zZUNvbnRleHQiLCAiY29udGV4dCBhbHJlYWR5IGxvc3QiKTsKKyAgICAg
ICAgc3ludGhlc2l6ZUxvc3RDb250ZXh0R0xFcnJvcihHcmFwaGljc0NvbnRleHRHTDo6SU5WQUxJ
RF9PUEVSQVRJT04sICJsb3NlQ29udGV4dCIsICJjb250ZXh0IGFscmVhZHkgbG9zdCIpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCkBAIC02NDQ4LDkgKzY0NTQsMTEgQEAgdm9pZCBXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjpsb3NlQ29udGV4dEltcGwoV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZTo6TG9zdEMKIHsKICAgICBpZiAoaXNDb250ZXh0TG9zdCgpKQogICAgICAgICByZXR1cm47
CisgICAgaWYgKG1vZGUgPT0gUmVhbExvc3RDb250ZXh0KQorICAgICAgICBwcmludFRvQ29uc29s
ZShNZXNzYWdlTGV2ZWw6OkVycm9yLCAiV2ViR0w6IENvbnRleHQgbG9zdC4iKTsKIAotICAgIG1f
Y29udGV4dExvc3QgPSB0cnVlOwotICAgIG1fY29udGV4dExvc3RNb2RlID0gbW9kZTsKKyAgICBt
X2NvbnRleHRMb3N0U3RhdGUgPSBDb250ZXh0TG9zdFN0YXRlIHsgbW9kZSB9OworICAgIG1fY29u
dGV4dExvc3RTdGF0ZS0+ZXJyb3JzLmFkZChHcmFwaGljc0NvbnRleHRHTDo6Q09OVEVYVF9MT1NU
X1dFQkdMKTsKIAogICAgIGRldGFjaEFuZFJlbW92ZUFsbE9iamVjdHMoKTsKICAgICBsb3NlRXh0
ZW5zaW9ucyhtb2RlKTsKQEAgLTY0NjMsMTIgKzY0NzEsNiBAQCB2b2lkIFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U6Omxvc2VDb250ZXh0SW1wbChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpM
b3N0QwogICAgICAgICBpZiAobV9jb250ZXh0LT5nZXRFcnJvcigpID09IEdyYXBoaWNzQ29udGV4
dEdMOjpOT19FUlJPUikKICAgICAgICAgICAgIGJyZWFrOwogICAgIH0KLSAgICBDb25zb2xlRGlz
cGxheVByZWZlcmVuY2UgZGlzcGxheSA9IChtb2RlID09IFJlYWxMb3N0Q29udGV4dCkgPyBEaXNw
bGF5SW5Db25zb2xlOiBEb250RGlzcGxheUluQ29uc29sZTsKLSAgICBzeW50aGVzaXplR0xFcnJv
cihHcmFwaGljc0NvbnRleHRHTDo6Q09OVEVYVF9MT1NUX1dFQkdMLCAibG9zZUNvbnRleHQiLCAi
Y29udGV4dCBsb3N0IiwgZGlzcGxheSk7Ci0KLSAgICAvLyBEb24ndCBhbGxvdyByZXN0b3JhdGlv
biB1bmxlc3MgdGhlIGNvbnRleHQgbG9zdCBldmVudCBoYXMgYm90aCBiZWVuCi0gICAgLy8gZGlz
cGF0Y2hlZCBhbmQgaXRzIGRlZmF1bHQgYmVoYXZpb3IgcHJldmVudGVkLgotICAgIG1fcmVzdG9y
ZUFsbG93ZWQgPSBmYWxzZTsKIAogICAgIC8vIEFsd2F5cyBkZWZlciB0aGUgZGlzcGF0Y2ggb2Yg
dGhlIGNvbnRleHQgbG9zdCBldmVudCwgdG8gaW1wbGVtZW50CiAgICAgLy8gdGhlIHNwZWMgYmVo
YXZpb3Igb2YgcXVldWVpbmcgYSB0YXNrLgpAQCAtNjQ4MSwxMCArNjQ4Myw5IEBAIHZvaWQgV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Zm9yY2VSZXN0b3JlQ29udGV4dCgpCiAgICAgICAgIHN5
bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dEdMOjpJTlZBTElEX09QRVJBVElPTiwgInJl
c3RvcmVDb250ZXh0IiwgImNvbnRleHQgbm90IGxvc3QiKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KLQotICAgIGlmICghbV9yZXN0b3JlQWxsb3dlZCkgewotICAgICAgICBpZiAobV9jb250ZXh0
TG9zdE1vZGUgPT0gU3ludGhldGljTG9zdENvbnRleHQpCi0gICAgICAgICAgICBzeW50aGVzaXpl
R0xFcnJvcihHcmFwaGljc0NvbnRleHRHTDo6SU5WQUxJRF9PUEVSQVRJT04sICJyZXN0b3JlQ29u
dGV4dCIsICJjb250ZXh0IHJlc3RvcmF0aW9uIG5vdCBhbGxvd2VkIik7CisgICAgaWYgKCFtX2Nv
bnRleHRMb3N0U3RhdGUtPnJlc3RvcmVSZXF1ZXN0ZWQpIHsKKyAgICAgICAgaWYgKG1fY29udGV4
dExvc3RTdGF0ZS0+bW9kZSA9PSBTeW50aGV0aWNMb3N0Q29udGV4dCkKKyAgICAgICAgICAgIHN5
bnRoZXNpemVMb3N0Q29udGV4dEdMRXJyb3IoR3JhcGhpY3NDb250ZXh0R0w6OklOVkFMSURfT1BF
UkFUSU9OLCAicmVzdG9yZUNvbnRleHQiLCAiY29udGV4dCByZXN0b3JhdGlvbiBub3QgYWxsb3dl
ZCIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC02NDk0LDcgKzY0OTUsNyBAQCB2b2lk
IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmZvcmNlUmVzdG9yZUNvbnRleHQoKQogCiBib29s
IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmlzQ29udGV4dFVucmVjb3ZlcmFibHlMb3N0KCkg
Y29uc3QKIHsKLSAgICByZXR1cm4gbV9jb250ZXh0TG9zdCAmJiAhbV9yZXN0b3JlQWxsb3dlZDsK
KyAgICByZXR1cm4gaXNDb250ZXh0TG9zdCgpICYmICFtX2NvbnRleHRMb3N0U3RhdGUtPnJlc3Rv
cmVSZXF1ZXN0ZWQ7CiB9CiAKIFJlZlB0cjxHcmFwaGljc0xheWVyQ29udGVudHNEaXNwbGF5RGVs
ZWdhdGU+IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmxheWVyQ29udGVudHNEaXNwbGF5RGVs
ZWdhdGUoKQpAQCAtNzczNiwxMSArNzczNywxMiBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U6OnNjaGVkdWxlVGFza1RvRGlzcGF0Y2hDb250ZXh0TG9zdEV2ZW50KCkKICAgICBxdWV1
ZVRhc2tLZWVwaW5nT2JqZWN0QWxpdmUoKmNhbnZhcywgVGFza1NvdXJjZTo6V2ViR0wsIFt0aGlz
LCBjYW52YXNdIHsKICAgICAgICAgaWYgKGlzQ29udGV4dFN0b3BwZWQoKSkKICAgICAgICAgICAg
IHJldHVybjsKLQorICAgICAgICBpZiAoIWlzQ29udGV4dExvc3QoKSkKKyAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgYXV0byBldmVudCA9IFdlYkdMQ29udGV4dEV2ZW50OjpjcmVhdGUoZXZl
bnROYW1lcygpLndlYmdsY29udGV4dGxvc3RFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2
ZW50OjpJc0NhbmNlbGFibGU6OlllcywgZW1wdHlTdHJpbmcoKSk7CiAgICAgICAgIGNhbnZhcy0+
ZGlzcGF0Y2hFdmVudChldmVudCk7Ci0gICAgICAgIG1fcmVzdG9yZUFsbG93ZWQgPSBldmVudC0+
ZGVmYXVsdFByZXZlbnRlZCgpOwotICAgICAgICBpZiAobV9jb250ZXh0TG9zdE1vZGUgPT0gUmVh
bExvc3RDb250ZXh0ICYmIG1fcmVzdG9yZUFsbG93ZWQpCisgICAgICAgIG1fY29udGV4dExvc3RT
dGF0ZS0+cmVzdG9yZVJlcXVlc3RlZCA9IGV2ZW50LT5kZWZhdWx0UHJldmVudGVkKCk7CisgICAg
ICAgIGlmIChtX2NvbnRleHRMb3N0U3RhdGUtPm1vZGUgPT0gUmVhbExvc3RDb250ZXh0ICYmIG1f
Y29udGV4dExvc3RTdGF0ZS0+cmVzdG9yZVJlcXVlc3RlZCkKICAgICAgICAgICAgIG1fcmVzdG9y
ZVRpbWVyLnN0YXJ0T25lU2hvdCgwX3MpOwogICAgIH0pOwogfQpAQCAtNzc0OCwxOCArNzc1MCwx
MCBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnNjaGVkdWxlVGFza1RvRGlzcGF0
Y2hDb250ZXh0TG9zdEV2ZW50KCkKIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6bWF5
YmVSZXN0b3JlQ29udGV4dCgpCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQoIW1faXNTdXNwZW5kZWQp
OwotICAgIEFTU0VSVChtX2NvbnRleHRMb3N0KTsKLSAgICBpZiAoIW1fY29udGV4dExvc3QpCi0g
ICAgICAgIHJldHVybjsKLQotICAgIC8vIFRoZSByZW5kZXJpbmcgY29udGV4dCBpcyBub3QgcmVz
dG9yZWQgdW5sZXNzIHRoZSBkZWZhdWx0IGJlaGF2aW9yIG9mIHRoZQotICAgIC8vIHdlYmdsY29u
dGV4dGxvc3QgZXZlbnQgd2FzIHByZXZlbnRlZCBlYXJsaWVyLgotICAgIC8vCi0gICAgLy8gQmVj
YXVzZSBvZiB0aGUgd2F5IG1fcmVzdG9yZVRpbWVyIGlzIHNldCB1cCBmb3IgcmVhbCB2cy4gc3lu
dGhldGljIGxvc3QKLSAgICAvLyBjb250ZXh0IGV2ZW50cywgd2UgZG9uJ3QgaGF2ZSB0byB3b3Jy
eSBhYm91dCB0aGlzIHRlc3Qgc2hvcnQtY2lyY3VpdGluZwotICAgIC8vIHRoZSByZXRyeSBsb29w
IGZvciByZWFsIGNvbnRleHQgbG9zdCBldmVudHMuCi0gICAgaWYgKCFtX3Jlc3RvcmVBbGxvd2Vk
KQorICAgIGlmICghaXNDb250ZXh0TG9zdCgpIHx8ICFtX2NvbnRleHRMb3N0U3RhdGUtPnJlc3Rv
cmVSZXF1ZXN0ZWQpIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJl
dHVybjsKKyAgICB9CiAKICAgICBhdXRvKiBjYW52YXMgPSBodG1sQ2FudmFzKCk7CiAgICAgaWYg
KCFjYW52YXMpCkBAIC03Nzg0LDE3ICs3Nzc4LDE2IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6bWF5YmVSZXN0b3JlQ29udGV4dCgpCiAKICAgICBSZWZQdHI8R3JhcGhpY3NDb250
ZXh0R0w+IGNvbnRleHQgPSBob3N0V2luZG93LT5jcmVhdGVHcmFwaGljc0NvbnRleHRHTChtX2F0
dHJpYnV0ZXMpOwogICAgIGlmICghY29udGV4dCkgewotICAgICAgICBpZiAobV9jb250ZXh0TG9z
dE1vZGUgPT0gUmVhbExvc3RDb250ZXh0KQorICAgICAgICBpZiAobV9jb250ZXh0TG9zdFN0YXRl
LT5tb2RlID09IFJlYWxMb3N0Q29udGV4dCkKICAgICAgICAgICAgIG1fcmVzdG9yZVRpbWVyLnN0
YXJ0T25lU2hvdChzZWNvbmRzQmV0d2VlblJlc3RvcmVBdHRlbXB0cyk7CiAgICAgICAgIGVsc2UK
LSAgICAgICAgICAgIC8vIFRoaXMgbGlrZWx5IHNob3VsZG4ndCBoYXBwZW4gYnV0IGlzIHRoZSBi
ZXN0IHdheSB0byByZXBvcnQgaXQgdG8gdGhlIFdlYkdMIGFwcC4KLSAgICAgICAgICAgIHN5bnRo
ZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dEdMOjpJTlZBTElEX09QRVJBVElPTiwgIiIsICJl
cnJvciByZXN0b3JpbmcgY29udGV4dCIpOworICAgICAgICAgICAgcHJpbnRUb0NvbnNvbGUoTWVz
c2FnZUxldmVsOjpFcnJvciwgIldlYkdMOiBlcnJvciByZXN0b3JpbmcgbG9zdCBjb250ZXh0LiIp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgc2V0R3JhcGhpY3NDb250ZXh0R0woY29u
dGV4dC5yZWxlYXNlTm9uTnVsbCgpKTsKICAgICBhZGRBY3Rpdml0eVN0YXRlQ2hhbmdlT2JzZXJ2
ZXJJZk5lY2Vzc2FyeSgpOwotICAgIG1fY29udGV4dExvc3QgPSBmYWxzZTsKKyAgICBtX2NvbnRl
eHRMb3N0U3RhdGUgPSBzdGQ6Om51bGxvcHQ7CiAgICAgc2V0dXBGbGFncygpOwogICAgIGluaXRp
YWxpemVOZXdDb250ZXh0KCk7CiAgICAgY2FudmFzLT5kaXNwYXRjaEV2ZW50KFdlYkdMQ29udGV4
dEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLndlYmdsY29udGV4dHJlc3RvcmVkRXZlbnQsIEV2
ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpZZXMsIGVtcHR5U3RyaW5n
KCkpKTsKQEAgLTc4NzYsMTYgKzc4NjksMTkgQEAgbmFtZXNwYWNlIHsKIAogfSAvLyBuYW1lc3Bh
Y2UgYW5vbnltb3VzCiAKLXZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6c3ludGhlc2l6
ZUdMRXJyb3IoR0NHTGVudW0gZXJyb3IsIGNvbnN0IGNoYXIqIGZ1bmN0aW9uTmFtZSwgY29uc3Qg
Y2hhciogZGVzY3JpcHRpb24sIENvbnNvbGVEaXNwbGF5UHJlZmVyZW5jZSBkaXNwbGF5KQordm9p
ZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpzeW50aGVzaXplR0xFcnJvcihHQ0dMZW51bSBl
cnJvciwgY29uc3QgY2hhciogZnVuY3Rpb25OYW1lLCBjb25zdCBjaGFyKiBkZXNjcmlwdGlvbikK
IHsKLSAgICBpZiAobV9zeW50aGVzaXplZEVycm9yc1RvQ29uc29sZSAmJiBkaXNwbGF5ID09IERp
c3BsYXlJbkNvbnNvbGUpIHsKLSAgICAgICAgU3RyaW5nIHN0ciA9ICJXZWJHTDogIiArIEdldEVy
cm9yU3RyaW5nKGVycm9yKSArICAiOiAiICsgU3RyaW5nKGZ1bmN0aW9uTmFtZSkgKyAiOiAiICsg
U3RyaW5nKGRlc2NyaXB0aW9uKTsKLSAgICAgICAgcHJpbnRUb0NvbnNvbGUoTWVzc2FnZUxldmVs
OjpFcnJvciwgc3RyKTsKLSAgICB9CisgICAgcHJpbnRUb0NvbnNvbGUoTWVzc2FnZUxldmVsOjpF
cnJvciwgbWFrZVN0cmluZygiV2ViR0w6ICIsIEdldEVycm9yU3RyaW5nKGVycm9yKSwgIjogIiwg
ZnVuY3Rpb25OYW1lLCAiOiAiLCBkZXNjcmlwdGlvbikpOwogICAgIGlmIChtX2NvbnRleHQpCiAg
ICAgICAgIG1fY29udGV4dC0+c3ludGhlc2l6ZUdMRXJyb3IoZXJyb3IpOwogfQogCit2b2lkIFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnN5bnRoZXNpemVMb3N0Q29udGV4dEdMRXJyb3IoR0NH
TGVudW0gZXJyb3IsIGNvbnN0IGNoYXIqIGZ1bmN0aW9uTmFtZSwgY29uc3QgY2hhciogZGVzY3Jp
cHRpb24pCit7CisgICAgcHJpbnRUb0NvbnNvbGUoTWVzc2FnZUxldmVsOjpFcnJvciwgbWFrZVN0
cmluZygiV2ViR0w6ICIsIEdldEVycm9yU3RyaW5nKGVycm9yKSwgIjogIiwgZnVuY3Rpb25OYW1l
LCAiOiAiLCBkZXNjcmlwdGlvbikpOworICAgIG1fY29udGV4dExvc3RTdGF0ZS0+ZXJyb3JzLmFk
ZChlcnJvcik7Cit9CisKIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6YXBwbHlTdGVu
Y2lsVGVzdCgpCiB7CiAgICAgYm9vbCBoYXZlU3RlbmNpbEJ1ZmZlciA9IGZhbHNlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZS5oCmluZGV4IDEzM2Q4ZjIxOGE5YWEwMDhmMzhkZWQzZTRhNTVkYTQxMjE5MDVkZDEuLjUyZTI2
YjYzYjNlNzlkN2NiNjUzMjkxOTZhNjIxOWI1MzA4OTI1OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgKQEAgLTQ4
LDYgKzQ4LDcgQEAKICNpbmNsdWRlIDxsaW1pdHM+CiAjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1
ZGUgPHd0Zi9DaGVja2VkQXJpdGhtZXRpYy5oPgorI2luY2x1ZGUgPHd0Zi9MaXN0SGFzaFNldC5o
PgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAKICNpZiBFTkFCTEUoV0VCR0wyKQpAQCAtNTQ4LDEx
ICs1NDksMjAgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgcHJlcGFyZUZvckRpc3BsYXkoKSBmaW5h
bDsKICAgICB2b2lkIHVwZGF0ZUFjdGl2ZU9yZGluYWwoKTsKIAorICAgIHN0cnVjdCBDb250ZXh0
TG9zdFN0YXRlIHsKKyAgICAgICAgQ29udGV4dExvc3RTdGF0ZShMb3N0Q29udGV4dE1vZGUgbW9k
ZSkKKyAgICAgICAgICAgIDogbW9kZShtb2RlKQorICAgICAgICB7CisgICAgICAgIH0KKyAgICAg
ICAgTGlzdEhhc2hTZXQ8R0NHTGludD4gZXJyb3JzOyAvLyBMb3NpbmcgY29udGV4dCBhbmQgV0VC
R0xfbG9zZV9jb250ZXh0IGdlbmVyYXRlcyBlcnJvcnMgaGVyZS4KKyAgICAgICAgTG9zdENvbnRl
eHRNb2RlIG1vZGUgeyBMb3N0Q29udGV4dE1vZGU6OlJlYWxMb3N0Q29udGV4dCB9OworICAgICAg
ICBib29sIHJlc3RvcmVSZXF1ZXN0ZWQgeyBmYWxzZSB9OworICAgIH07CisKICAgICBSZWZQdHI8
R3JhcGhpY3NDb250ZXh0R0w+IG1fY29udGV4dDsKICAgICBSZWZQdHI8V2ViR0xDb250ZXh0R3Jv
dXA+IG1fY29udGV4dEdyb3VwOwogICAgIExvY2sgbV9vYmplY3RHcmFwaExvY2s7CiAKLSAgICBi
b29sIG1fcmVzdG9yZUFsbG93ZWQgeyBmYWxzZSB9OwogICAgIFN1c3BlbmRhYmxlVGltZXIgbV9y
ZXN0b3JlVGltZXI7CiAKICAgICBib29sIG1fbmVlZHNVcGRhdGU7CkBAIC02NTIsOCArNjYyLDcg
QEAgcHJvdGVjdGVkOgogICAgIGJvb2wgbV91bnBhY2tQcmVtdWx0aXBseUFscGhhOwogICAgIEdD
R0xlbnVtIG1fdW5wYWNrQ29sb3JzcGFjZUNvbnZlcnNpb247CiAKLSAgICBib29sIG1fY29udGV4
dExvc3QgeyBmYWxzZSB9OwotICAgIExvc3RDb250ZXh0TW9kZSBtX2NvbnRleHRMb3N0TW9kZSB7
IFN5bnRoZXRpY0xvc3RDb250ZXh0IH07CisgICAgc3RkOjpvcHRpb25hbDxDb250ZXh0TG9zdFN0
YXRlPiAgbV9jb250ZXh0TG9zdFN0YXRlOwogICAgIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMgbV9h
dHRyaWJ1dGVzOwogCiAgICAgYm9vbCBtX2xheWVyQ2xlYXJlZDsKQEAgLTEwOTUsOCArMTEwNCw4
IEBAIHByb3RlY3RlZDoKICNlbmRpZgogCiAgICAgLy8gV3JhcHBlciBmb3IgR3JhcGhpY3NDb250
ZXh0R0xPcGVuR0w6OnN5bnRoZXNpemVHTEVycm9yIHRoYXQgc2VuZHMgYSBtZXNzYWdlIHRvIHRo
ZSBKYXZhU2NyaXB0IGNvbnNvbGUuCi0gICAgZW51bSBDb25zb2xlRGlzcGxheVByZWZlcmVuY2Ug
eyBEaXNwbGF5SW5Db25zb2xlLCBEb250RGlzcGxheUluQ29uc29sZSB9OwotICAgIHZvaWQgc3lu
dGhlc2l6ZUdMRXJyb3IoR0NHTGVudW0sIGNvbnN0IGNoYXIqIGZ1bmN0aW9uTmFtZSwgY29uc3Qg
Y2hhciogZGVzY3JpcHRpb24sIENvbnNvbGVEaXNwbGF5UHJlZmVyZW5jZSA9IERpc3BsYXlJbkNv
bnNvbGUpOworICAgIHZvaWQgc3ludGhlc2l6ZUdMRXJyb3IoR0NHTGVudW0sIGNvbnN0IGNoYXIq
IGZ1bmN0aW9uTmFtZSwgY29uc3QgY2hhciogZGVzY3JpcHRpb24pOworICAgIHZvaWQgc3ludGhl
c2l6ZUxvc3RDb250ZXh0R0xFcnJvcihHQ0dMZW51bSwgY29uc3QgY2hhciogZnVuY3Rpb25OYW1l
LCBjb25zdCBjaGFyKiBkZXNjcmlwdGlvbik7CiAKICAgICBTdHJpbmcgZW5zdXJlTm90TnVsbChj
b25zdCBTdHJpbmcmKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQ
cm94eS5jcHAKaW5kZXggNDhhN2ZmOTgzNGE1MTdiODJlODA0MDRjMjE2M2VlODliMjQzOWM0NS4u
ZGJmYmFmMmRiM2M5NGRjMmE2NzEzZWE2ZGU0YjYzYTRiZDZhYWNhNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1Jl
bW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkuY3BwCkBAIC0yMTUsNyArMjE1LDYgQEAgdm9pZCBS
ZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5OjpzeW50aGVzaXplR0xFcnJvcihHQ0dMZW51bSBl
cnJvcikKICAgICAgICAgICAgIG1hcmtDb250ZXh0TG9zdCgpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQotICAgIG1fZXJyb3JXaGVuQ29udGV4dElzTG9zdCA9IGVycm9yOwogfQogCiBHQ0dMZW51
bSBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5OjpnZXRFcnJvcigpCkBAIC0yMjcsNyArMjI2
LDcgQEAgR0NHTGVudW0gUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eTo6Z2V0RXJyb3IoKQog
ICAgICAgICAgICAgbWFya0NvbnRleHRMb3N0KCk7CiAgICAgICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxHQ0dMZW51bT4ocmV0dXJuVmFsdWUpOwogICAgIH0KLSAgICByZXR1cm4gc3RkOjpleGNoYW5n
ZShtX2Vycm9yV2hlbkNvbnRleHRJc0xvc3QsIE5PX0VSUk9SKTsKKyAgICByZXR1cm4gTk9fRVJS
T1I7CiB9CiAKIHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eTo6c2ltdWxhdGVFdmVu
dEZvclRlc3RpbmcoU2ltdWxhdGVkRXZlbnRGb3JUZXN0aW5nIGV2ZW50KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRl
eHRHTFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90
ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkuaAppbmRleCBmZThmMWQ5MmY2ODk4YTZkMjdlYjI3OTc4
YWU3YzQzNDQ4NzcwOWYwLi5mZGNiZGM2MzFlNTdiNDQ2NDkwNWU0ZDg2NGVkYzcwMWU2OTEyYzlm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90
ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkuaApAQCAtMzY2LDcgKzM2
Niw2IEBAIHByaXZhdGU6CiAgICAgSGFzaFNldDxTdHJpbmc+IG1fcmVxdWVzdGFibGVFeHRlbnNp
b25zOwogCiAgICAgSGFzaFNldDxTdHJpbmc+IG1fZW5hYmxlZEV4dGVuc2lvbnM7Ci0gICAgR0NH
TGVudW0gbV9lcnJvcldoZW5Db250ZXh0SXNMb3N0ID0gTk9fRVJST1I7CiAgICAgSVBDOjpTdHJl
YW1DbGllbnRDb25uZWN0aW9uIG1fc3RyZWFtQ29ubmVjdGlvbjsKIH07CiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2xvc2UtY29udGV4dC1vbi1zdGF0dXMtZmFp
bHVyZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9sb3NlLWNv
bnRleHQtb24tc3RhdHVzLWZhaWx1cmUtZXhwZWN0ZWQudHh0CmluZGV4IGU5ZDMyMDJhMDQ0ZWQ5
ZTRmMzU2NTljNDExYTE5NWM2YTAyNTk2MjguLmY3NGY0MGRlZTM0NTk0YjdiMzQ5YjdmYTYyODI3
OTAyNWJmMWRhYWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2xv
c2UtY29udGV4dC1vbi1zdGF0dXMtZmFpbHVyZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9jYW52YXMvd2ViZ2wvbG9zZS1jb250ZXh0LW9uLXN0YXR1cy1mYWlsdXJlLWV4cGVj
dGVkLnR4dApAQCAtMSw3ICsxLDcgQEAKLUNPTlNPTEUgTUVTU0FHRTogV2ViR0w6IENPTlRFWFRf
TE9TVF9XRUJHTDogbG9zZUNvbnRleHQ6IGNvbnRleHQgbG9zdAotQ09OU09MRSBNRVNTQUdFOiBX
ZWJHTDogQ09OVEVYVF9MT1NUX1dFQkdMOiBsb3NlQ29udGV4dDogY29udGV4dCBsb3N0Ci1DT05T
T0xFIE1FU1NBR0U6IFdlYkdMOiBDT05URVhUX0xPU1RfV0VCR0w6IGxvc2VDb250ZXh0OiBjb250
ZXh0IGxvc3QKLUNPTlNPTEUgTUVTU0FHRTogV2ViR0w6IENPTlRFWFRfTE9TVF9XRUJHTDogbG9z
ZUNvbnRleHQ6IGNvbnRleHQgbG9zdAorQ09OU09MRSBNRVNTQUdFOiBXZWJHTDogQ29udGV4dCBs
b3N0LgorQ09OU09MRSBNRVNTQUdFOiBXZWJHTDogQ29udGV4dCBsb3N0LgorQ09OU09MRSBNRVNT
QUdFOiBXZWJHTDogQ29udGV4dCBsb3N0LgorQ09OU09MRSBNRVNTQUdFOiBXZWJHTDogQ29udGV4
dCBsb3N0LgogQ2hlY2tzIHRoYXQgYSBHUFUgc3RhdHVzIGNoZWNrIGZhaWx1cmUgd2lsbCBsb3Nl
IHRoZSBjb250ZXh0LgogTk9URTogVGhpcyBvbmx5IHBhc3NlcyBpbiB0aGUgdGVzdCBoYXJuZXNz
IGJlY2F1c2UgaXQgcmVxdWlyZXMgSW50ZXJuYWxzLgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy93ZWJnbC9sb3NlLWNvbnRleHQtYWZ0ZXItY29udGV4dC1sb3N0LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3dlYmdsL2xvc2UtY29udGV4dC1hZnRlci1jb250ZXh0LWxvc3QtZXhwZWN0ZWQu
dHh0CmluZGV4IDE3ODdkMzA2NjE4MDZkY2JiMWVkMTg4YzVjMDY5ODBmM2MyYTc2NjguLjFhNmVm
NGM1ZjBiZDk3ZTJhMDgyOWMzZWNkMzVmNzhlYzg0NWZiOTggMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3dlYmdsL2xvc2UtY29udGV4dC1hZnRlci1jb250ZXh0LWxvc3QtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL3dlYmdsL2xvc2UtY29udGV4dC1hZnRlci1jb250ZXh0LWxvc3QtZXhw
ZWN0ZWQudHh0CkBAIC0yLDcgKzIsNyBAQCBUZXN0IHRoYXQgV0VCR0xfbG9zZV9jb250ZXh0IGZ1
bmN0aW9ucyBkbyBub3QgY3Jhc2ggYWZ0ZXIgY29udGV4dCBoYXMgYmVlbiBsb3N0LgogCiBPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCiAKLVRFU1QgQ09NUExFVEU6IDI5IFBBU1MsIDIgRkFJTAor
VEVTVCBDT01QTEVURTogMzEgUEFTUywgMCBGQUlMCiAKIFJ1bm5pbmcgdGVzdDogbG9zZU1ldGhv
ZDogbG9zZUNvbnRleHQsIHRlc3RlZE1ldGhvZDogbG9zZUNvbnRleHQKIFBBU1MgR290IHdlYmds
Y29udGV4dGxvc3QuCkBAIC0xOSwxMyArMTksMTMgQEAgUEFTUyBEaWQgbm90IGNyYXNoIG9uIHRl
c3RlZCBtZXRob2QgcmVzdG9yZUNvbnRleHQuCiBSdW5uaW5nIHRlc3Q6IGxvc2VNZXRob2Q6IG1h
bnlDb250ZXh0cywgdGVzdGVkTWV0aG9kOiBsb3NlQ29udGV4dAogUEFTUyBHb3Qgd2ViZ2xjb250
ZXh0bG9zdC4KIFBBU1MgZ2wuaXNDb250ZXh0TG9zdCgpIGlzIHRydWUKLUZBSUwgZ2wuZ2V0RXJy
b3IoKSBzaG91bGQgYmUgMzc0NDIuIFdhcyAwLgorUEFTUyBnbC5nZXRFcnJvcigpIGlzIGdsLkNP
TlRFWFRfTE9TVF9XRUJHTAogUEFTUyBnbC5nZXRFcnJvcigpIGlzIGdsLk5PX0VSUk9SCiBQQVNT
IERpZCBub3QgY3Jhc2ggb24gdGVzdGVkIG1ldGhvZCBsb3NlQ29udGV4dC4KIFJ1bm5pbmcgdGVz
dDogbG9zZU1ldGhvZDogbWFueUNvbnRleHRzLCB0ZXN0ZWRNZXRob2Q6IHJlc3RvcmVDb250ZXh0
CiBQQVNTIEdvdCB3ZWJnbGNvbnRleHRsb3N0LgogUEFTUyBnbC5pc0NvbnRleHRMb3N0KCkgaXMg
dHJ1ZQotRkFJTCBnbC5nZXRFcnJvcigpIHNob3VsZCBiZSAzNzQ0Mi4gV2FzIDAuCitQQVNTIGds
LmdldEVycm9yKCkgaXMgZ2wuQ09OVEVYVF9MT1NUX1dFQkdMCiBQQVNTIGdsLmdldEVycm9yKCkg
aXMgZ2wuTk9fRVJST1IKIFBBU1MgRGlkIG5vdCBjcmFzaCBvbiB0ZXN0ZWQgbWV0aG9kIHJlc3Rv
cmVDb250ZXh0LgogUnVubmluZyB0ZXN0OiBsb3NlTWV0aG9kOiBncHVTdGF0dXNGYWlsdXJlLCB0
ZXN0ZWRNZXRob2Q6IGxvc2VDb250ZXh0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9t
YXgtYWN0aXZlLWNvbnRleHRzLXdlYmdsY29udGV4dGxvc3QtcHJldmVudC1kZWZhdWx0LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmdsL21heC1hY3RpdmUtY29udGV4dHMtd2ViZ2xjb250
ZXh0bG9zdC1wcmV2ZW50LWRlZmF1bHQtZXhwZWN0ZWQudHh0CmluZGV4IGM5M2RjYzlkMTJkMmQy
MmIzNzM0Mzg0YTU5NjhlNjA0MzBjMjc1ZTAuLjg3MzI0ZDlkYzY2YjBmODhjOGUzYjk5NjZiNjg4
OGM1MDdmYWMyMzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmdsL21heC1hY3RpdmUtY29u
dGV4dHMtd2ViZ2xjb250ZXh0bG9zdC1wcmV2ZW50LWRlZmF1bHQtZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL3dlYmdsL21heC1hY3RpdmUtY29udGV4dHMtd2ViZ2xjb250ZXh0bG9zdC1w
cmV2ZW50LWRlZmF1bHQtZXhwZWN0ZWQudHh0CkBAIC0yLDcgKzIsNyBAQCBUZXN0IHRoYXQgZmly
c3QgbG9zaW5nIGNvbnRleHQsIHRyeWluZyB0byByZXN0b3JlIGl0LCBhbmQgdGhlbiBkb2luZyBz
b21ldGhpbmcgdAogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKLVRFU1QgQ09NUExFVEU6
IDQyIFBBU1MsIDEwIEZBSUwKK1RFU1QgQ09NUExFVEU6IDQ2IFBBU1MsIDYgRkFJTAogCiBSdW5u
aW5nIHRlc3Q6IGxvc2VNZXRob2Q6IGxvc2VDb250ZXh0LCBsb3NlTWV0aG9kMjogbG9zZUNvbnRl
eHQKIFBBU1MgR290IHdlYmdsY29udGV4dGxvc3QgYW5kIHJlc3RvcmUgd2FzIGF0dGVtcHRlZC4K
QEAgLTE0LDcgKzE0LDcgQEAgUnVubmluZyB0ZXN0OiBsb3NlTWV0aG9kOiBsb3NlQ29udGV4dCwg
bG9zZU1ldGhvZDI6IG1hbnlDb250ZXh0cwogUEFTUyBHb3Qgd2ViZ2xjb250ZXh0bG9zdCBhbmQg
cmVzdG9yZSB3YXMgYXR0ZW1wdGVkLgogUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6
IENPTlRFWFRfTE9TVF9XRUJHTCA6CiBQQVNTIGdsLmlzQ29udGV4dExvc3QoKSBpcyB0cnVlCi1Q
QVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOgorRkFJTCBnZXRFcnJv
ciBleHBlY3RlZDogTk9fRVJST1IuIFdhcyBJTlZBTElEX09QRVJBVElPTiA6CiBSdW5uaW5nIHRl
c3Q6IGxvc2VNZXRob2Q6IGxvc2VDb250ZXh0LCBsb3NlTWV0aG9kMjogZ3B1U3RhdHVzRmFpbHVy
ZQogUEFTUyBHb3Qgd2ViZ2xjb250ZXh0bG9zdCBhbmQgcmVzdG9yZSB3YXMgYXR0ZW1wdGVkLgog
UEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IENPTlRFWFRfTE9TVF9XRUJHTCA6CkBA
IC0yNywyMyArMjcsMjMgQEAgUEFTUyBnbC5pc0NvbnRleHRMb3N0KCkgaXMgdHJ1ZQogUEFTUyBn
ZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDoKIFJ1bm5pbmcgdGVzdDogbG9z
ZU1ldGhvZDogbWFueUNvbnRleHRzLCBsb3NlTWV0aG9kMjogbG9zZUNvbnRleHQKIFBBU1MgR290
IHdlYmdsY29udGV4dGxvc3QgYW5kIHJlc3RvcmUgd2FzIGF0dGVtcHRlZC4KLUZBSUwgZ2V0RXJy
b3IgZXhwZWN0ZWQ6IENPTlRFWFRfTE9TVF9XRUJHTC4gV2FzIE5PX0VSUk9SIDoKLUZBSUwgZ2V0
RXJyb3IgZXhwZWN0ZWQ6IElOVkFMSURfT1BFUkFUSU9OLiBXYXMgTk9fRVJST1IgOgorUEFTUyBn
ZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IENPTlRFWFRfTE9TVF9XRUJHTCA6CitQQVNTIGdl
dEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9PUEVSQVRJT04gOgogUEFTUyBnbC5p
c0NvbnRleHRMb3N0KCkgaXMgdHJ1ZQogUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6
IE5PX0VSUk9SIDoKIFJ1bm5pbmcgdGVzdDogbG9zZU1ldGhvZDogbWFueUNvbnRleHRzLCBsb3Nl
TWV0aG9kMjogbWFueUNvbnRleHRzCiBQQVNTIEdvdCB3ZWJnbGNvbnRleHRsb3N0IGFuZCByZXN0
b3JlIHdhcyBhdHRlbXB0ZWQuCi1GQUlMIGdldEVycm9yIGV4cGVjdGVkOiBDT05URVhUX0xPU1Rf
V0VCR0wuIFdhcyBOT19FUlJPUiA6CitQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTog
Q09OVEVYVF9MT1NUX1dFQkdMIDoKIFBBU1MgZ2wuaXNDb250ZXh0TG9zdCgpIGlzIHRydWUKIFBB
U1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6CiBSdW5uaW5nIHRlc3Q6
IGxvc2VNZXRob2Q6IG1hbnlDb250ZXh0cywgbG9zZU1ldGhvZDI6IGdwdVN0YXR1c0ZhaWx1cmUK
IFBBU1MgR290IHdlYmdsY29udGV4dGxvc3QgYW5kIHJlc3RvcmUgd2FzIGF0dGVtcHRlZC4KLUZB
SUwgZ2V0RXJyb3IgZXhwZWN0ZWQ6IENPTlRFWFRfTE9TVF9XRUJHTC4gV2FzIE5PX0VSUk9SIDoK
K1BBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBDT05URVhUX0xPU1RfV0VCR0wgOgog
UEFTUyBnbC5pc0NvbnRleHRMb3N0KCkgaXMgdHJ1ZQogUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0
ZWQgdmFsdWU6IE5PX0VSUk9SIDoKIFJ1bm5pbmcgdGVzdDogbG9zZU1ldGhvZDogbWFueUNvbnRl
eHRzLCBsb3NlTWV0aG9kMjogbm90aGluZwogUEFTUyBHb3Qgd2ViZ2xjb250ZXh0bG9zdCBhbmQg
cmVzdG9yZSB3YXMgYXR0ZW1wdGVkLgotRkFJTCBnZXRFcnJvciBleHBlY3RlZDogQ09OVEVYVF9M
T1NUX1dFQkdMLiBXYXMgTk9fRVJST1IgOgorUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFs
dWU6IENPTlRFWFRfTE9TVF9XRUJHTCA6CiBQQVNTIGdsLmlzQ29udGV4dExvc3QoKSBpcyB0cnVl
CiBQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOgogUnVubmluZyB0
ZXN0OiBsb3NlTWV0aG9kOiBncHVTdGF0dXNGYWlsdXJlLCBsb3NlTWV0aG9kMjogbG9zZUNvbnRl
eHQK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455373</attachid>
            <date>2022-03-22 07:10:12 -0700</date>
            <delta_ts>2022-03-23 10:13:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236965-20220322161011.patch</filename>
            <type>text/plain</type>
            <size>22733</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxNDc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODhhMjdhMTNjZWFlMGQw
YmQ0Y2RjMTJhM2I4MTc3NTYxOTM3M2I1Zi4uZTY5YWE5Mzk1N2Y5M2QyNWVlMzJjZjdkZjMwZGE1
N2YyMjdhNmVjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDIyLTAzLTIyICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWZ0ZXIgbG9zaW5n
IGNvbnRleHQgZHVlIHRvIHRvbyBtYW55IGNvbnRleHRzLCBnZXRFcnJvcigpIGRvZXMgbm90IHJl
dHVybiBDT05URVhUX0xPU1RfV0VCR0wKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzNjk2NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFmdGVyIGdlbmVyYXRpbmcgY29udGV4dCBsb3N0LCBnZXRFcnJvcigp
IGlzIHNwZWNpZmllZCB0byByZXR1cm46CisgICAgICAgICAtIENPTlRFWFRfTE9TVF9XRUJHTCBm
b3IgZmlyc3QgY2FsbAorICAgICAgICAgLSBOT19FUlJPUiBmb3IgYWxsIHRoZSBuZXh0IGNhbGxz
LgorCisgICAgICAgIFdFQkdMX2xvc2VfY29udGV4dCBpcyBzcGVjaWZpZWQgdG8gYWRkIElOVkFM
SURfT1BFUkFUSU9OIGVycm9ycworICAgICAgICBldmVuIGFmdGVyIGNvbnRleHQgbG9zdC4KKwor
ICAgICAgICBDaGFuZ2UgdGhlIGNvZGUgc28gdGhhdCBDT05URVhUX0xPU1RfV0VCR0wgYW5kIFdF
QkdMX2xvc2VfY29udGV4dCBpbmR1Y2VkCisgICAgICAgIElOVkFMSURfT1BFUkFUSU9OIGVycm9y
cyBnbyB0byBlcnJvciB2ZWN0b3IgaW4gY29udGV4dCBsb3N0IC1zcGVjaWZpYyBzdGF0ZS4KKwor
ICAgICAgICBQcmV2aW91c2x5LCB0aGVzZSBlcnJvcnMgd2VudCBpbnRvIHRoZSBtX2NvbnRleHQg
ZXJyb3IgdmVjdG9yLiBUaGlzIGlzIHByb2JsZW1hdGljCisgICAgICAgIGVzcGVjaWFsbHkgaW4g
dGhlIGNhc2Ugd2hlcmUgY29udGV4dCBsb3NzIGhhcHBlbnMgd2hlcmUgdGhlIG1fY29udGV4dCBn
ZXRzIGRlc3Ryb3llZCAtLQorICAgICAgICB0aGUgZXJyb3IgdmVjdG9yIHdvdWxkIGJlIGdvbmUu
IFRoaXMga2luZCBvZiBsb3NzIGhhcHBlbnMgZm9yIGV4YW1wbGUgd2hlbiBjb250ZXh0cworICAg
ICAgICBnZXQgbG9zdCBkdWUgdG8gdGhlIHByb2Nlc3MgaGF2aW5nIHRvbyBtYW55IGFjdGl2ZSBj
b250ZXh0cyAobGVhc3QgYWN0aXZlIGNvbnRleHQgaXMgInJlY3ljbGVkIikuCisKKyAgICAgICAg
UHJldmlvdXNseSwgYW55IHN5bnRoZXRpemVkIGVycm9yIHdhcyBwb3RlbnRpYWxseSBvYnRhaW5h
YmxlIGFmdGVyIGNvbnRleHQgbG9zdC4gVGhpcyBpcyBwcm9ibGVtYXRpYworICAgICAgICBhcyBp
dCBpcyBub3QgYXMgc3BlY2lmaWVkLiBBcyBtZW50aW9uZWQgYWJvdmUsIG9ubHkgZXJyb3JzIGFs
bG93ZWQgYWZ0ZXIgY29udGV4dCBsb3N0IGlzCisgICAgICAgICAtIENPTlRFWFRfTE9TVF9XRUJH
TCBmaXJzdCBhZnRlciBjb250ZXh0IGxvc3QKKyAgICAgICAgIC0gV0VCR0xfbG9zZV9jb250ZXh0
Lmxvc2VDb250ZXh0KCkgYW5kIFdFQkdMX2xvc2VfY29udGV4dC5yZXN0b3JlQ29udGV4dCgpIGlu
ZHVjZWQgSU5WQUxJRF9PUEVSQVRJT05zCisKKyAgICAgICAgQ2hhbmdlcyB0aGUgYmVoYXZpb3Ig
dG8gbm90IHJlcG9ydCBJTlZBTElEX09QRVJBVElPTiBlcnJvciBpbiB0aGUgdGhlb3JldGljYWwg
Y2FzZSB3aGVyZSB3ZSBmYWlsIHRvCisgICAgICAgIGluc3RhbnRpYXRlIGEgbmV3IGNvbnRleHQu
IFRoaXMgaXMgbm90IGFsbG93ZWQgYnkgdGhlIHNwZWMuIEluc3RlYWQsIGp1c3QgcHJpbnQgYW4g
ZXJyb3IgdG8gdGhlIGNvbnNvbGUuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCB1cGRhdGVzIHRo
ZSBleHBlY3RhdGlvbnMgb2Ygb2xkIG9uZXMgd2l0aCBsZXNzIGZhaWx1cmVzLgorCisgICAgICAg
ICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjppbml0aWFsaXplTmV3Q29udGV4dCk6
CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRFcnJvcik6
CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjppc0NvbnRleHRM
b3N0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
OmlzQ29udGV4dExvc3RPclBlbmRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6Zm9yY2VMb3N0Q29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjpsb3NlQ29udGV4dEltcGwpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Zm9yY2VSZXN0b3JlQ29udGV4dCk6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjppc0NvbnRleHRVbnJlY292
ZXJhYmx5TG9zdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlOjpzY2hlZHVsZVRhc2tUb0Rpc3BhdGNoQ29udGV4dExvc3RFdmVudCk6CisgICAgICAg
IChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjptYXliZVJlc3RvcmVDb250ZXh0
KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnN5bnRoZXNp
emVHTEVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
OnN5bnRoZXNpemVMb3N0Q29udGV4dEdMRXJyb3IpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2U6OkNvbnRleHRMb3N0U3RhdGU6OkNvbnRleHRMb3N0U3RhdGUpOgorCiAy
MDIyLTAzLTIyICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgQ29udGV4dDJEIGRyYXdJbWFnZShpbWcsIHgsIHksIHcsIGgpIHNob3VsZCBub3QgdGhyb3cg
SW5kZXhTaXplRXJyb3Igd2hlbiB3aWR0aCA9PSAwIG9yIGhlaWdodCA9PSAwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4
IDlmNDRhNzY4MjZhYWI5NzBlZTFmZDIwMWE5NDQwNGE5NzA4NjAxYTEuLmYwODBkZGVmOTM3Mjkz
MDA5Y2Y2YjM5YTUyN2FlYTJhMjczZGUyZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIw
MjItMDMtMjIgIEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KKworICAgICAg
ICBBZnRlciBsb3NpbmcgY29udGV4dCBkdWUgdG8gdG9vIG1hbnkgY29udGV4dHMsIGdldEVycm9y
KCkgZG9lcyBub3QgcmV0dXJuIENPTlRFWFRfTE9TVF9XRUJHTAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2OTY1CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIHJlY29yZGluZyBvZiBzeW50aGV0
aWMgd2ViZ2wgY29udGV4dCBsb3N0IGVycm9yIGZyb20gdGhlIHByb3h5LgorICAgICAgICBUaGlz
IGlzIG5vdyByZWNvcmRlZCBpbiB0aGUgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS4KKworICAg
ICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJv
eHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5Ojpz
eW50aGVzaXplR0xFcnJvcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4
dEdMUHJveHk6OmdldEVycm9yKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9S
ZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5Lmg6CisKIDIwMjItMDMtMTggIEtpbW1vIEtpbm51
bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBSZWN5Y2xpbmcgYSB3ZWJnbCBj
b250ZXh0IHdoZW4gaXQgaGFzIGJlZW4gbG9zdCBhbmQgcmVzdG9yZWQgY2F1c2VzIGEgY3Jhc2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZS5jcHAKaW5kZXggMjZkOTJlZDhiN2E5NzI3ZDg5MTQ5ZmY0NjYzZDM0YzMyOTRh
MTAzMC4uOWE5NGIyYTczMTcxZGI1Y2FjYjdkNjg4Nzk4MTgxOTllNjBhZmZlMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZS5jcHAKQEAgLTEwNTAsNyArMTA1MCw3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZTo6cmVnaXN0ZXJXaXRoV2ViR0xTdGF0ZVRyYWNrZXIoKQogCiB2b2lkIFdlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2U6OmluaXRpYWxpemVOZXdDb250ZXh0KCkKIHsKLSAgICBBU1NFUlQoIW1f
Y29udGV4dExvc3QpOworICAgIEFTU0VSVCghaXNDb250ZXh0TG9zdCgpKTsKICAgICBtX25lZWRz
VXBkYXRlID0gdHJ1ZTsKICAgICBtX21hcmtlZENhbnZhc0RpcnR5ID0gZmFsc2U7CiAgICAgbV9h
Y3RpdmVUZXh0dXJlVW5pdCA9IDA7CkBAIC0zMTcwLDcgKzMxNzAsMTMgQEAgc3RkOjpvcHRpb25h
bDxXZWJHTENvbnRleHRBdHRyaWJ1dGVzPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRD
b250ZXh0QXR0cmkKIAogR0NHTGVudW0gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0RXJy
b3IoKQogewotICAgIGlmICghbV9jb250ZXh0IHx8IG1faXNQZW5kaW5nUG9saWN5UmVzb2x1dGlv
bikKKyAgICBpZiAoaXNDb250ZXh0TG9zdCgpKSB7CisgICAgICAgIGF1dG8mIGVycm9ycyA9IG1f
Y29udGV4dExvc3RTdGF0ZS0+ZXJyb3JzOworICAgICAgICBpZiAoIWVycm9ycy5pc0VtcHR5KCkp
CisgICAgICAgICAgICByZXR1cm4gZXJyb3JzLnRha2VGaXJzdCgpOworICAgICAgICByZXR1cm4g
R3JhcGhpY3NDb250ZXh0R0w6Ok5PX0VSUk9SOworICAgIH0KKyAgICBpZiAobV9pc1BlbmRpbmdQ
b2xpY3lSZXNvbHV0aW9uKQogICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0R0w6Ok5PX0VS
Uk9SOwogICAgIHJldHVybiBtX2NvbnRleHQtPmdldEVycm9yKCk7CiB9CkBAIC00MDU5LDcgKzQw
NjUsNyBAQCBHQ0dMYm9vbGVhbiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjppc0J1ZmZlcihX
ZWJHTEJ1ZmZlciogYnVmZmVyKQogCiBib29sIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Omlz
Q29udGV4dExvc3QoKSBjb25zdAogewotICAgIHJldHVybiBtX2NvbnRleHRMb3N0OworICAgIHJl
dHVybiBtX2NvbnRleHRMb3N0U3RhdGUuaGFzX3ZhbHVlKCk7CiB9CiAKIGJvb2wgV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZTo6aXNDb250ZXh0TG9zdE9yUGVuZGluZygpCkBAIC00MDgwLDcgKzQw
ODYsNyBAQCBib29sIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmlzQ29udGV4dExvc3RPclBl
bmRpbmcoKQogICAgICAgICBtX2hhc1JlcXVlc3RlZFBvbGljeVJlc29sdXRpb24gPSB0cnVlOwog
ICAgIH0KIAotICAgIHJldHVybiBtX2NvbnRleHRMb3N0IHx8IG1faXNQZW5kaW5nUG9saWN5UmVz
b2x1dGlvbjsKKyAgICByZXR1cm4gaXNDb250ZXh0TG9zdCgpIHx8IG1faXNQZW5kaW5nUG9saWN5
UmVzb2x1dGlvbjsKIH0KIAogR0NHTGJvb2xlYW4gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
aXNFbmFibGVkKEdDR0xlbnVtIGNhcCkKQEAgLTY0MzcsNyArNjQ0Myw3IEBAIHZvaWQgV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZTo6dmlld3BvcnQoR0NHTGludCB4LCBHQ0dMaW50IHksIEdDR0xz
aXplaSB3aWR0aCwKIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Zm9yY2VMb3N0Q29u
dGV4dChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpMb3N0Q29udGV4dE1vZGUgbW9kZSkKIHsK
ICAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpKSB7Ci0gICAgICAgIHN5bnRoZXNpemVH
TEVycm9yKEdyYXBoaWNzQ29udGV4dEdMOjpJTlZBTElEX09QRVJBVElPTiwgImxvc2VDb250ZXh0
IiwgImNvbnRleHQgYWxyZWFkeSBsb3N0Iik7CisgICAgICAgIHN5bnRoZXNpemVMb3N0Q29udGV4
dEdMRXJyb3IoR3JhcGhpY3NDb250ZXh0R0w6OklOVkFMSURfT1BFUkFUSU9OLCAibG9zZUNvbnRl
eHQiLCAiY29udGV4dCBhbHJlYWR5IGxvc3QiKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApA
QCAtNjQ0OCw5ICs2NDU0LDExIEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6bG9z
ZUNvbnRleHRJbXBsKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Okxvc3RDCiB7CiAgICAgaWYg
KGlzQ29udGV4dExvc3QoKSkKICAgICAgICAgcmV0dXJuOworICAgIGlmIChtb2RlID09IFJlYWxM
b3N0Q29udGV4dCkKKyAgICAgICAgcHJpbnRUb0NvbnNvbGUoTWVzc2FnZUxldmVsOjpFcnJvciwg
IldlYkdMOiBjb250ZXh0IGxvc3QuIik7CiAKLSAgICBtX2NvbnRleHRMb3N0ID0gdHJ1ZTsKLSAg
ICBtX2NvbnRleHRMb3N0TW9kZSA9IG1vZGU7CisgICAgbV9jb250ZXh0TG9zdFN0YXRlID0gQ29u
dGV4dExvc3RTdGF0ZSB7IG1vZGUgfTsKKyAgICBtX2NvbnRleHRMb3N0U3RhdGUtPmVycm9ycy5h
ZGQoR3JhcGhpY3NDb250ZXh0R0w6OkNPTlRFWFRfTE9TVF9XRUJHTCk7CiAKICAgICBkZXRhY2hB
bmRSZW1vdmVBbGxPYmplY3RzKCk7CiAgICAgbG9zZUV4dGVuc2lvbnMobW9kZSk7CkBAIC02NDYz
LDEyICs2NDcxLDYgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpsb3NlQ29udGV4
dEltcGwoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6TG9zdEMKICAgICAgICAgaWYgKG1fY29u
dGV4dC0+Z2V0RXJyb3IoKSA9PSBHcmFwaGljc0NvbnRleHRHTDo6Tk9fRVJST1IpCiAgICAgICAg
ICAgICBicmVhazsKICAgICB9Ci0gICAgQ29uc29sZURpc3BsYXlQcmVmZXJlbmNlIGRpc3BsYXkg
PSAobW9kZSA9PSBSZWFsTG9zdENvbnRleHQpID8gRGlzcGxheUluQ29uc29sZTogRG9udERpc3Bs
YXlJbkNvbnNvbGU7Ci0gICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0R0w6OkNP
TlRFWFRfTE9TVF9XRUJHTCwgImxvc2VDb250ZXh0IiwgImNvbnRleHQgbG9zdCIsIGRpc3BsYXkp
OwotCi0gICAgLy8gRG9uJ3QgYWxsb3cgcmVzdG9yYXRpb24gdW5sZXNzIHRoZSBjb250ZXh0IGxv
c3QgZXZlbnQgaGFzIGJvdGggYmVlbgotICAgIC8vIGRpc3BhdGNoZWQgYW5kIGl0cyBkZWZhdWx0
IGJlaGF2aW9yIHByZXZlbnRlZC4KLSAgICBtX3Jlc3RvcmVBbGxvd2VkID0gZmFsc2U7CiAKICAg
ICAvLyBBbHdheXMgZGVmZXIgdGhlIGRpc3BhdGNoIG9mIHRoZSBjb250ZXh0IGxvc3QgZXZlbnQs
IHRvIGltcGxlbWVudAogICAgIC8vIHRoZSBzcGVjIGJlaGF2aW9yIG9mIHF1ZXVlaW5nIGEgdGFz
ay4KQEAgLTY0ODEsMTAgKzY0ODMsOSBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
OmZvcmNlUmVzdG9yZUNvbnRleHQoKQogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGlj
c0NvbnRleHRHTDo6SU5WQUxJRF9PUEVSQVRJT04sICJyZXN0b3JlQ29udGV4dCIsICJjb250ZXh0
IG5vdCBsb3N0Iik7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0KLSAgICBpZiAoIW1fcmVzdG9y
ZUFsbG93ZWQpIHsKLSAgICAgICAgaWYgKG1fY29udGV4dExvc3RNb2RlID09IFN5bnRoZXRpY0xv
c3RDb250ZXh0KQotICAgICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0
R0w6OklOVkFMSURfT1BFUkFUSU9OLCAicmVzdG9yZUNvbnRleHQiLCAiY29udGV4dCByZXN0b3Jh
dGlvbiBub3QgYWxsb3dlZCIpOworICAgIGlmICghbV9jb250ZXh0TG9zdFN0YXRlLT5yZXN0b3Jl
UmVxdWVzdGVkKSB7CisgICAgICAgIGlmIChtX2NvbnRleHRMb3N0U3RhdGUtPm1vZGUgPT0gU3lu
dGhldGljTG9zdENvbnRleHQpCisgICAgICAgICAgICBzeW50aGVzaXplTG9zdENvbnRleHRHTEVy
cm9yKEdyYXBoaWNzQ29udGV4dEdMOjpJTlZBTElEX09QRVJBVElPTiwgInJlc3RvcmVDb250ZXh0
IiwgImNvbnRleHQgcmVzdG9yYXRpb24gbm90IGFsbG93ZWQiKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIApAQCAtNjQ5NCw3ICs2NDk1LDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjpmb3JjZVJlc3RvcmVDb250ZXh0KCkKIAogYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjppc0NvbnRleHRVbnJlY292ZXJhYmx5TG9zdCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1f
Y29udGV4dExvc3QgJiYgIW1fcmVzdG9yZUFsbG93ZWQ7CisgICAgcmV0dXJuIGlzQ29udGV4dExv
c3QoKSAmJiAhbV9jb250ZXh0TG9zdFN0YXRlLT5yZXN0b3JlUmVxdWVzdGVkOwogfQogCiBSZWZQ
dHI8R3JhcGhpY3NMYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlPiBXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOjpsYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlKCkKQEAgLTc3MzYsMTEgKzc3
MzcsMTIgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpzY2hlZHVsZVRhc2tUb0Rp
c3BhdGNoQ29udGV4dExvc3RFdmVudCgpCiAgICAgcXVldWVUYXNrS2VlcGluZ09iamVjdEFsaXZl
KCpjYW52YXMsIFRhc2tTb3VyY2U6OldlYkdMLCBbdGhpcywgY2FudmFzXSB7CiAgICAgICAgIGlm
IChpc0NvbnRleHRTdG9wcGVkKCkpCiAgICAgICAgICAgICByZXR1cm47Ci0KKyAgICAgICAgaWYg
KCFpc0NvbnRleHRMb3N0KCkpCisgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGF1dG8gZXZl
bnQgPSBXZWJHTENvbnRleHRFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS53ZWJnbGNvbnRleHRs
b3N0RXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpZZXMs
IGVtcHR5U3RyaW5nKCkpOwogICAgICAgICBjYW52YXMtPmRpc3BhdGNoRXZlbnQoZXZlbnQpOwot
ICAgICAgICBtX3Jlc3RvcmVBbGxvd2VkID0gZXZlbnQtPmRlZmF1bHRQcmV2ZW50ZWQoKTsKLSAg
ICAgICAgaWYgKG1fY29udGV4dExvc3RNb2RlID09IFJlYWxMb3N0Q29udGV4dCAmJiBtX3Jlc3Rv
cmVBbGxvd2VkKQorICAgICAgICBtX2NvbnRleHRMb3N0U3RhdGUtPnJlc3RvcmVSZXF1ZXN0ZWQg
PSBldmVudC0+ZGVmYXVsdFByZXZlbnRlZCgpOworICAgICAgICBpZiAobV9jb250ZXh0TG9zdFN0
YXRlLT5tb2RlID09IFJlYWxMb3N0Q29udGV4dCAmJiBtX2NvbnRleHRMb3N0U3RhdGUtPnJlc3Rv
cmVSZXF1ZXN0ZWQpCiAgICAgICAgICAgICBtX3Jlc3RvcmVUaW1lci5zdGFydE9uZVNob3QoMF9z
KTsKICAgICB9KTsKIH0KQEAgLTc3NDgsMTggKzc3NTAsMTAgQEAgdm9pZCBXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlOjpzY2hlZHVsZVRhc2tUb0Rpc3BhdGNoQ29udGV4dExvc3RFdmVudCgpCiB2
b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Om1heWJlUmVzdG9yZUNvbnRleHQoKQogewog
ICAgIFJFTEVBU0VfQVNTRVJUKCFtX2lzU3VzcGVuZGVkKTsKLSAgICBBU1NFUlQobV9jb250ZXh0
TG9zdCk7Ci0gICAgaWYgKCFtX2NvbnRleHRMb3N0KQotICAgICAgICByZXR1cm47Ci0KLSAgICAv
LyBUaGUgcmVuZGVyaW5nIGNvbnRleHQgaXMgbm90IHJlc3RvcmVkIHVubGVzcyB0aGUgZGVmYXVs
dCBiZWhhdmlvciBvZiB0aGUKLSAgICAvLyB3ZWJnbGNvbnRleHRsb3N0IGV2ZW50IHdhcyBwcmV2
ZW50ZWQgZWFybGllci4KLSAgICAvLwotICAgIC8vIEJlY2F1c2Ugb2YgdGhlIHdheSBtX3Jlc3Rv
cmVUaW1lciBpcyBzZXQgdXAgZm9yIHJlYWwgdnMuIHN5bnRoZXRpYyBsb3N0Ci0gICAgLy8gY29u
dGV4dCBldmVudHMsIHdlIGRvbid0IGhhdmUgdG8gd29ycnkgYWJvdXQgdGhpcyB0ZXN0IHNob3J0
LWNpcmN1aXRpbmcKLSAgICAvLyB0aGUgcmV0cnkgbG9vcCBmb3IgcmVhbCBjb250ZXh0IGxvc3Qg
ZXZlbnRzLgotICAgIGlmICghbV9yZXN0b3JlQWxsb3dlZCkKKyAgICBpZiAoIWlzQ29udGV4dExv
c3QoKSB8fCAhbV9jb250ZXh0TG9zdFN0YXRlLT5yZXN0b3JlUmVxdWVzdGVkKSB7CisgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm47CisgICAgfQogCiAgICAgYXV0
byogY2FudmFzID0gaHRtbENhbnZhcygpOwogICAgIGlmICghY2FudmFzKQpAQCAtNzc4NCwxNyAr
Nzc3OCwxNiBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Om1heWJlUmVzdG9yZUNv
bnRleHQoKQogCiAgICAgUmVmUHRyPEdyYXBoaWNzQ29udGV4dEdMPiBjb250ZXh0ID0gaG9zdFdp
bmRvdy0+Y3JlYXRlR3JhcGhpY3NDb250ZXh0R0wobV9hdHRyaWJ1dGVzKTsKICAgICBpZiAoIWNv
bnRleHQpIHsKLSAgICAgICAgaWYgKG1fY29udGV4dExvc3RNb2RlID09IFJlYWxMb3N0Q29udGV4
dCkKKyAgICAgICAgaWYgKG1fY29udGV4dExvc3RTdGF0ZS0+bW9kZSA9PSBSZWFsTG9zdENvbnRl
eHQpCiAgICAgICAgICAgICBtX3Jlc3RvcmVUaW1lci5zdGFydE9uZVNob3Qoc2Vjb25kc0JldHdl
ZW5SZXN0b3JlQXR0ZW1wdHMpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICAvLyBUaGlzIGxp
a2VseSBzaG91bGRuJ3QgaGFwcGVuIGJ1dCBpcyB0aGUgYmVzdCB3YXkgdG8gcmVwb3J0IGl0IHRv
IHRoZSBXZWJHTCBhcHAuCi0gICAgICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0Nv
bnRleHRHTDo6SU5WQUxJRF9PUEVSQVRJT04sICIiLCAiZXJyb3IgcmVzdG9yaW5nIGNvbnRleHQi
KTsKKyAgICAgICAgICAgIHByaW50VG9Db25zb2xlKE1lc3NhZ2VMZXZlbDo6RXJyb3IsICJXZWJH
TDogZXJyb3IgcmVzdG9yaW5nIGxvc3QgY29udGV4dC4iKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAogICAgIHNldEdyYXBoaWNzQ29udGV4dEdMKGNvbnRleHQucmVsZWFzZU5vbk51bGwoKSk7
CiAgICAgYWRkQWN0aXZpdHlTdGF0ZUNoYW5nZU9ic2VydmVySWZOZWNlc3NhcnkoKTsKLSAgICBt
X2NvbnRleHRMb3N0ID0gZmFsc2U7CisgICAgbV9jb250ZXh0TG9zdFN0YXRlID0gc3RkOjpudWxs
b3B0OwogICAgIHNldHVwRmxhZ3MoKTsKICAgICBpbml0aWFsaXplTmV3Q29udGV4dCgpOwogICAg
IGNhbnZhcy0+ZGlzcGF0Y2hFdmVudChXZWJHTENvbnRleHRFdmVudDo6Y3JlYXRlKGV2ZW50TmFt
ZXMoKS53ZWJnbGNvbnRleHRyZXN0b3JlZEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZl
bnQ6OklzQ2FuY2VsYWJsZTo6WWVzLCBlbXB0eVN0cmluZygpKSk7CkBAIC03ODc2LDE2ICs3ODY5
LDE5IEBAIG5hbWVzcGFjZSB7CiAKIH0gLy8gbmFtZXNwYWNlIGFub255bW91cwogCi12b2lkIFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnN5bnRoZXNpemVHTEVycm9yKEdDR0xlbnVtIGVycm9y
LCBjb25zdCBjaGFyKiBmdW5jdGlvbk5hbWUsIGNvbnN0IGNoYXIqIGRlc2NyaXB0aW9uLCBDb25z
b2xlRGlzcGxheVByZWZlcmVuY2UgZGlzcGxheSkKK3ZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZTo6c3ludGhlc2l6ZUdMRXJyb3IoR0NHTGVudW0gZXJyb3IsIGNvbnN0IGNoYXIqIGZ1bmN0
aW9uTmFtZSwgY29uc3QgY2hhciogZGVzY3JpcHRpb24pCiB7Ci0gICAgaWYgKG1fc3ludGhlc2l6
ZWRFcnJvcnNUb0NvbnNvbGUgJiYgZGlzcGxheSA9PSBEaXNwbGF5SW5Db25zb2xlKSB7Ci0gICAg
ICAgIFN0cmluZyBzdHIgPSAiV2ViR0w6ICIgKyBHZXRFcnJvclN0cmluZyhlcnJvcikgKyAgIjog
IiArIFN0cmluZyhmdW5jdGlvbk5hbWUpICsgIjogIiArIFN0cmluZyhkZXNjcmlwdGlvbik7Ci0g
ICAgICAgIHByaW50VG9Db25zb2xlKE1lc3NhZ2VMZXZlbDo6RXJyb3IsIHN0cik7Ci0gICAgfQor
ICAgIHByaW50VG9Db25zb2xlKE1lc3NhZ2VMZXZlbDo6RXJyb3IsIG1ha2VTdHJpbmcoIldlYkdM
OiAiLCBHZXRFcnJvclN0cmluZyhlcnJvciksICI6ICIsIGZ1bmN0aW9uTmFtZSwgIjogIiwgZGVz
Y3JpcHRpb24pKTsKICAgICBpZiAobV9jb250ZXh0KQogICAgICAgICBtX2NvbnRleHQtPnN5bnRo
ZXNpemVHTEVycm9yKGVycm9yKTsKIH0KIAordm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
OjpzeW50aGVzaXplTG9zdENvbnRleHRHTEVycm9yKEdDR0xlbnVtIGVycm9yLCBjb25zdCBjaGFy
KiBmdW5jdGlvbk5hbWUsIGNvbnN0IGNoYXIqIGRlc2NyaXB0aW9uKQoreworICAgIHByaW50VG9D
b25zb2xlKE1lc3NhZ2VMZXZlbDo6RXJyb3IsIG1ha2VTdHJpbmcoIldlYkdMOiAiLCBHZXRFcnJv
clN0cmluZyhlcnJvciksICI6ICIsIGZ1bmN0aW9uTmFtZSwgIjogIiwgZGVzY3JpcHRpb24pKTsK
KyAgICBtX2NvbnRleHRMb3N0U3RhdGUtPmVycm9ycy5hZGQoZXJyb3IpOworfQorCiB2b2lkIFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmFwcGx5U3RlbmNpbFRlc3QoKQogewogICAgIGJvb2wg
aGF2ZVN0ZW5jaWxCdWZmZXIgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaAppbmRleCAxMzNkOGYyMThhOWFh
MDA4ZjM4ZGVkM2U0YTU1ZGE0MTIxOTA1ZGQxLi41MmUyNmI2M2IzZTc5ZDdjYjY1MzI5MTk2YTYy
MTliNTMwODkyNTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oCkBAIC00OCw2ICs0OCw3IEBACiAjaW5jbHVkZSA8
bGltaXRzPgogI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3dGYvQ2hlY2tlZEFyaXRobWV0
aWMuaD4KKyNpbmNsdWRlIDx3dGYvTGlzdEhhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvTG9jay5o
PgogCiAjaWYgRU5BQkxFKFdFQkdMMikKQEAgLTU0OCwxMSArNTQ5LDIwIEBAIHByb3RlY3RlZDoK
ICAgICB2b2lkIHByZXBhcmVGb3JEaXNwbGF5KCkgZmluYWw7CiAgICAgdm9pZCB1cGRhdGVBY3Rp
dmVPcmRpbmFsKCk7CiAKKyAgICBzdHJ1Y3QgQ29udGV4dExvc3RTdGF0ZSB7CisgICAgICAgIENv
bnRleHRMb3N0U3RhdGUoTG9zdENvbnRleHRNb2RlIG1vZGUpCisgICAgICAgICAgICA6IG1vZGUo
bW9kZSkKKyAgICAgICAgeworICAgICAgICB9CisgICAgICAgIExpc3RIYXNoU2V0PEdDR0xpbnQ+
IGVycm9yczsgLy8gTG9zaW5nIGNvbnRleHQgYW5kIFdFQkdMX2xvc2VfY29udGV4dCBnZW5lcmF0
ZXMgZXJyb3JzIGhlcmUuCisgICAgICAgIExvc3RDb250ZXh0TW9kZSBtb2RlIHsgTG9zdENvbnRl
eHRNb2RlOjpSZWFsTG9zdENvbnRleHQgfTsKKyAgICAgICAgYm9vbCByZXN0b3JlUmVxdWVzdGVk
IHsgZmFsc2UgfTsKKyAgICB9OworCiAgICAgUmVmUHRyPEdyYXBoaWNzQ29udGV4dEdMPiBtX2Nv
bnRleHQ7CiAgICAgUmVmUHRyPFdlYkdMQ29udGV4dEdyb3VwPiBtX2NvbnRleHRHcm91cDsKICAg
ICBMb2NrIG1fb2JqZWN0R3JhcGhMb2NrOwogCi0gICAgYm9vbCBtX3Jlc3RvcmVBbGxvd2VkIHsg
ZmFsc2UgfTsKICAgICBTdXNwZW5kYWJsZVRpbWVyIG1fcmVzdG9yZVRpbWVyOwogCiAgICAgYm9v
bCBtX25lZWRzVXBkYXRlOwpAQCAtNjUyLDggKzY2Miw3IEBAIHByb3RlY3RlZDoKICAgICBib29s
IG1fdW5wYWNrUHJlbXVsdGlwbHlBbHBoYTsKICAgICBHQ0dMZW51bSBtX3VucGFja0NvbG9yc3Bh
Y2VDb252ZXJzaW9uOwogCi0gICAgYm9vbCBtX2NvbnRleHRMb3N0IHsgZmFsc2UgfTsKLSAgICBM
b3N0Q29udGV4dE1vZGUgbV9jb250ZXh0TG9zdE1vZGUgeyBTeW50aGV0aWNMb3N0Q29udGV4dCB9
OworICAgIHN0ZDo6b3B0aW9uYWw8Q29udGV4dExvc3RTdGF0ZT4gIG1fY29udGV4dExvc3RTdGF0
ZTsKICAgICBXZWJHTENvbnRleHRBdHRyaWJ1dGVzIG1fYXR0cmlidXRlczsKIAogICAgIGJvb2wg
bV9sYXllckNsZWFyZWQ7CkBAIC0xMDk1LDggKzExMDQsOCBAQCBwcm90ZWN0ZWQ6CiAjZW5kaWYK
IAogICAgIC8vIFdyYXBwZXIgZm9yIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpzeW50aGVzaXpl
R0xFcnJvciB0aGF0IHNlbmRzIGEgbWVzc2FnZSB0byB0aGUgSmF2YVNjcmlwdCBjb25zb2xlLgot
ICAgIGVudW0gQ29uc29sZURpc3BsYXlQcmVmZXJlbmNlIHsgRGlzcGxheUluQ29uc29sZSwgRG9u
dERpc3BsYXlJbkNvbnNvbGUgfTsKLSAgICB2b2lkIHN5bnRoZXNpemVHTEVycm9yKEdDR0xlbnVt
LCBjb25zdCBjaGFyKiBmdW5jdGlvbk5hbWUsIGNvbnN0IGNoYXIqIGRlc2NyaXB0aW9uLCBDb25z
b2xlRGlzcGxheVByZWZlcmVuY2UgPSBEaXNwbGF5SW5Db25zb2xlKTsKKyAgICB2b2lkIHN5bnRo
ZXNpemVHTEVycm9yKEdDR0xlbnVtLCBjb25zdCBjaGFyKiBmdW5jdGlvbk5hbWUsIGNvbnN0IGNo
YXIqIGRlc2NyaXB0aW9uKTsKKyAgICB2b2lkIHN5bnRoZXNpemVMb3N0Q29udGV4dEdMRXJyb3Io
R0NHTGVudW0sIGNvbnN0IGNoYXIqIGZ1bmN0aW9uTmFtZSwgY29uc3QgY2hhciogZGVzY3JpcHRp
b24pOwogCiAgICAgU3RyaW5nIGVuc3VyZU5vdE51bGwoY29uc3QgU3RyaW5nJikgY29uc3Q7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0xQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkuY3BwCmluZGV4IDQ4YTdmZjk4
MzRhNTE3YjgyZTgwNDA0YzIxNjNlZTg5YjI0MzljNDUuLmRiZmJhZjJkYjNjOTRkYzJhNjcxM2Vh
NmRlNGI2M2E0YmQ2YWFjYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFBy
b3h5LmNwcApAQCAtMjE1LDcgKzIxNSw2IEBAIHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQ
cm94eTo6c3ludGhlc2l6ZUdMRXJyb3IoR0NHTGVudW0gZXJyb3IpCiAgICAgICAgICAgICBtYXJr
Q29udGV4dExvc3QoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBtX2Vycm9yV2hlbkNv
bnRleHRJc0xvc3QgPSBlcnJvcjsKIH0KIAogR0NHTGVudW0gUmVtb3RlR3JhcGhpY3NDb250ZXh0
R0xQcm94eTo6Z2V0RXJyb3IoKQpAQCAtMjI3LDcgKzIyNiw3IEBAIEdDR0xlbnVtIFJlbW90ZUdy
YXBoaWNzQ29udGV4dEdMUHJveHk6OmdldEVycm9yKCkKICAgICAgICAgICAgIG1hcmtDb250ZXh0
TG9zdCgpOwogICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8R0NHTGVudW0+KHJldHVyblZhbHVl
KTsKICAgICB9Ci0gICAgcmV0dXJuIHN0ZDo6ZXhjaGFuZ2UobV9lcnJvcldoZW5Db250ZXh0SXNM
b3N0LCBOT19FUlJPUik7CisgICAgcmV0dXJuIE5PX0VSUk9SOwogfQogCiB2b2lkIFJlbW90ZUdy
YXBoaWNzQ29udGV4dEdMUHJveHk6OnNpbXVsYXRlRXZlbnRGb3JUZXN0aW5nKFNpbXVsYXRlZEV2
ZW50Rm9yVGVzdGluZyBldmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5
LmgKaW5kZXggZmU4ZjFkOTJmNjg5OGE2ZDI3ZWIyNzk3OGFlN2M0MzQ0ODc3MDlmMC4uZmRjYmRj
NjMxZTU3YjQ0NjQ5MDVlNGQ4NjRlZGM3MDFlNjkxMmM5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5LmgKQEAgLTM2Niw3ICszNjYsNiBAQCBwcml2YXRlOgogICAgIEhh
c2hTZXQ8U3RyaW5nPiBtX3JlcXVlc3RhYmxlRXh0ZW5zaW9uczsKIAogICAgIEhhc2hTZXQ8U3Ry
aW5nPiBtX2VuYWJsZWRFeHRlbnNpb25zOwotICAgIEdDR0xlbnVtIG1fZXJyb3JXaGVuQ29udGV4
dElzTG9zdCA9IE5PX0VSUk9SOwogICAgIElQQzo6U3RyZWFtQ2xpZW50Q29ubmVjdGlvbiBtX3N0
cmVhbUNvbm5lY3Rpb247CiB9OwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZDAxNzM1MzUyYWUwNTA2MjkwOTBkYjE3MGY0
YzhkZGYwMjkxZDUwOC4uOTUxNDg0ZWMwMTAzODAwZmUxYTkxZjQwNGZkMjA1ZWRmYTNiOGUyZiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIyLTAzLTIyICBLaW1tbyBLaW5udW5lbiAgPGtraW5u
dW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWZ0ZXIgbG9zaW5nIGNvbnRleHQgZHVlIHRvIHRv
byBtYW55IGNvbnRleHRzLCBnZXRFcnJvcigpIGRvZXMgbm90IHJldHVybiBDT05URVhUX0xPU1Rf
V0VCR0wKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
Njk2NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
ZmFzdC9jYW52YXMvd2ViZ2wvbG9zZS1jb250ZXh0LW9uLXN0YXR1cy1mYWlsdXJlLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiB3ZWJnbC9sb3NlLWNvbnRleHQtYWZ0ZXItY29udGV4dC1sb3N0LWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWJnbC9tYXgtYWN0aXZlLWNvbnRleHRzLXdlYmdsY29u
dGV4dGxvc3QtcHJldmVudC1kZWZhdWx0LWV4cGVjdGVkLnR4dDoKKwogMjAyMi0wMy0yMiAgS2lt
bW8gS2lubnVuZW4gIDxra2lubnVuZW5AYXBwbGUuY29tPgogCiAgICAgICAgIENvbnRleHQyRCBk
cmF3SW1hZ2UoaW1nLCB4LCB5LCB3LCBoKSBzaG91bGQgbm90IHRocm93IEluZGV4U2l6ZUVycm9y
IHdoZW4gd2lkdGggPT0gMCBvciBoZWlnaHQgPT0gMApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9jYW52YXMvd2ViZ2wvbG9zZS1jb250ZXh0LW9uLXN0YXR1cy1mYWlsdXJlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2xvc2UtY29udGV4dC1vbi1zdGF0
dXMtZmFpbHVyZS1leHBlY3RlZC50eHQKaW5kZXggZTlkMzIwMmEwNDRlZDllNGYzNTY1OWM0MTFh
MTk1YzZhMDI1OTYyOC4uY2I1N2M3NGU3ZjFkMDc5NWIxNmJlMGY3M2M1ZWRhNTcyM2E0Y2E3YiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvbG9zZS1jb250ZXh0LW9u
LXN0YXR1cy1mYWlsdXJlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZh
cy93ZWJnbC9sb3NlLWNvbnRleHQtb24tc3RhdHVzLWZhaWx1cmUtZXhwZWN0ZWQudHh0CkBAIC0x
LDcgKzEsNyBAQAotQ09OU09MRSBNRVNTQUdFOiBXZWJHTDogQ09OVEVYVF9MT1NUX1dFQkdMOiBs
b3NlQ29udGV4dDogY29udGV4dCBsb3N0Ci1DT05TT0xFIE1FU1NBR0U6IFdlYkdMOiBDT05URVhU
X0xPU1RfV0VCR0w6IGxvc2VDb250ZXh0OiBjb250ZXh0IGxvc3QKLUNPTlNPTEUgTUVTU0FHRTog
V2ViR0w6IENPTlRFWFRfTE9TVF9XRUJHTDogbG9zZUNvbnRleHQ6IGNvbnRleHQgbG9zdAotQ09O
U09MRSBNRVNTQUdFOiBXZWJHTDogQ09OVEVYVF9MT1NUX1dFQkdMOiBsb3NlQ29udGV4dDogY29u
dGV4dCBsb3N0CitDT05TT0xFIE1FU1NBR0U6IFdlYkdMOiBjb250ZXh0IGxvc3QuCitDT05TT0xF
IE1FU1NBR0U6IFdlYkdMOiBjb250ZXh0IGxvc3QuCitDT05TT0xFIE1FU1NBR0U6IFdlYkdMOiBj
b250ZXh0IGxvc3QuCitDT05TT0xFIE1FU1NBR0U6IFdlYkdMOiBjb250ZXh0IGxvc3QuCiBDaGVj
a3MgdGhhdCBhIEdQVSBzdGF0dXMgY2hlY2sgZmFpbHVyZSB3aWxsIGxvc2UgdGhlIGNvbnRleHQu
CiBOT1RFOiBUaGlzIG9ubHkgcGFzc2VzIGluIHRoZSB0ZXN0IGhhcm5lc3MgYmVjYXVzZSBpdCBy
ZXF1aXJlcyBJbnRlcm5hbHMuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL2xvc2Ut
Y29udGV4dC1hZnRlci1jb250ZXh0LWxvc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvbG9zZS1jb250ZXh0LWFmdGVyLWNvbnRleHQtbG9zdC1leHBlY3RlZC50eHQKaW5kZXggMTc4
N2QzMDY2MTgwNmRjYmIxZWQxODhjNWMwNjk4MGYzYzJhNzY2OC4uMWE2ZWY0YzVmMGJkOTdlMmEw
ODI5YzNlY2QzNWY3OGVjODQ1ZmI5OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvbG9z
ZS1jb250ZXh0LWFmdGVyLWNvbnRleHQtbG9zdC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvd2ViZ2wvbG9zZS1jb250ZXh0LWFmdGVyLWNvbnRleHQtbG9zdC1leHBlY3RlZC50eHQKQEAg
LTIsNyArMiw3IEBAIFRlc3QgdGhhdCBXRUJHTF9sb3NlX2NvbnRleHQgZnVuY3Rpb25zIGRvIG5v
dCBjcmFzaCBhZnRlciBjb250ZXh0IGhhcyBiZWVuIGxvc3QuCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KIAotVEVTVCBDT01QTEVURTogMjkgUEFTUywgMiBGQUlMCitURVNUIENPTVBMRVRF
OiAzMSBQQVNTLCAwIEZBSUwKIAogUnVubmluZyB0ZXN0OiBsb3NlTWV0aG9kOiBsb3NlQ29udGV4
dCwgdGVzdGVkTWV0aG9kOiBsb3NlQ29udGV4dAogUEFTUyBHb3Qgd2ViZ2xjb250ZXh0bG9zdC4K
QEAgLTE5LDEzICsxOSwxMyBAQCBQQVNTIERpZCBub3QgY3Jhc2ggb24gdGVzdGVkIG1ldGhvZCBy
ZXN0b3JlQ29udGV4dC4KIFJ1bm5pbmcgdGVzdDogbG9zZU1ldGhvZDogbWFueUNvbnRleHRzLCB0
ZXN0ZWRNZXRob2Q6IGxvc2VDb250ZXh0CiBQQVNTIEdvdCB3ZWJnbGNvbnRleHRsb3N0LgogUEFT
UyBnbC5pc0NvbnRleHRMb3N0KCkgaXMgdHJ1ZQotRkFJTCBnbC5nZXRFcnJvcigpIHNob3VsZCBi
ZSAzNzQ0Mi4gV2FzIDAuCitQQVNTIGdsLmdldEVycm9yKCkgaXMgZ2wuQ09OVEVYVF9MT1NUX1dF
QkdMCiBQQVNTIGdsLmdldEVycm9yKCkgaXMgZ2wuTk9fRVJST1IKIFBBU1MgRGlkIG5vdCBjcmFz
aCBvbiB0ZXN0ZWQgbWV0aG9kIGxvc2VDb250ZXh0LgogUnVubmluZyB0ZXN0OiBsb3NlTWV0aG9k
OiBtYW55Q29udGV4dHMsIHRlc3RlZE1ldGhvZDogcmVzdG9yZUNvbnRleHQKIFBBU1MgR290IHdl
YmdsY29udGV4dGxvc3QuCiBQQVNTIGdsLmlzQ29udGV4dExvc3QoKSBpcyB0cnVlCi1GQUlMIGds
LmdldEVycm9yKCkgc2hvdWxkIGJlIDM3NDQyLiBXYXMgMC4KK1BBU1MgZ2wuZ2V0RXJyb3IoKSBp
cyBnbC5DT05URVhUX0xPU1RfV0VCR0wKIFBBU1MgZ2wuZ2V0RXJyb3IoKSBpcyBnbC5OT19FUlJP
UgogUEFTUyBEaWQgbm90IGNyYXNoIG9uIHRlc3RlZCBtZXRob2QgcmVzdG9yZUNvbnRleHQuCiBS
dW5uaW5nIHRlc3Q6IGxvc2VNZXRob2Q6IGdwdVN0YXR1c0ZhaWx1cmUsIHRlc3RlZE1ldGhvZDog
bG9zZUNvbnRleHQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL21heC1hY3RpdmUtY29u
dGV4dHMtd2ViZ2xjb250ZXh0bG9zdC1wcmV2ZW50LWRlZmF1bHQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvd2ViZ2wvbWF4LWFjdGl2ZS1jb250ZXh0cy13ZWJnbGNvbnRleHRsb3N0LXByZXZl
bnQtZGVmYXVsdC1leHBlY3RlZC50eHQKaW5kZXggYzkzZGNjOWQxMmQyZDIyYjM3MzQzODRhNTk2
OGU2MDQzMGMyNzVlMC4uODczMjRkOWRjNjZiMGY4OGM4ZTNiOTk2NmI2ODg4YzUwN2ZhYzIzNSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvbWF4LWFjdGl2ZS1jb250ZXh0cy13ZWJnbGNv
bnRleHRsb3N0LXByZXZlbnQtZGVmYXVsdC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
d2ViZ2wvbWF4LWFjdGl2ZS1jb250ZXh0cy13ZWJnbGNvbnRleHRsb3N0LXByZXZlbnQtZGVmYXVs
dC1leHBlY3RlZC50eHQKQEAgLTIsNyArMiw3IEBAIFRlc3QgdGhhdCBmaXJzdCBsb3NpbmcgY29u
dGV4dCwgdHJ5aW5nIHRvIHJlc3RvcmUgaXQsIGFuZCB0aGVuIGRvaW5nIHNvbWV0aGluZyB0CiAK
IE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAotVEVTVCBDT01QTEVURTogNDIgUEFTUywgMTAg
RkFJTAorVEVTVCBDT01QTEVURTogNDYgUEFTUywgNiBGQUlMCiAKIFJ1bm5pbmcgdGVzdDogbG9z
ZU1ldGhvZDogbG9zZUNvbnRleHQsIGxvc2VNZXRob2QyOiBsb3NlQ29udGV4dAogUEFTUyBHb3Qg
d2ViZ2xjb250ZXh0bG9zdCBhbmQgcmVzdG9yZSB3YXMgYXR0ZW1wdGVkLgpAQCAtMTQsNyArMTQs
NyBAQCBSdW5uaW5nIHRlc3Q6IGxvc2VNZXRob2Q6IGxvc2VDb250ZXh0LCBsb3NlTWV0aG9kMjog
bWFueUNvbnRleHRzCiBQQVNTIEdvdCB3ZWJnbGNvbnRleHRsb3N0IGFuZCByZXN0b3JlIHdhcyBh
dHRlbXB0ZWQuCiBQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogQ09OVEVYVF9MT1NU
X1dFQkdMIDoKIFBBU1MgZ2wuaXNDb250ZXh0TG9zdCgpIGlzIHRydWUKLVBBU1MgZ2V0RXJyb3Ig
d2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6CitGQUlMIGdldEVycm9yIGV4cGVjdGVkOiBO
T19FUlJPUi4gV2FzIElOVkFMSURfT1BFUkFUSU9OIDoKIFJ1bm5pbmcgdGVzdDogbG9zZU1ldGhv
ZDogbG9zZUNvbnRleHQsIGxvc2VNZXRob2QyOiBncHVTdGF0dXNGYWlsdXJlCiBQQVNTIEdvdCB3
ZWJnbGNvbnRleHRsb3N0IGFuZCByZXN0b3JlIHdhcyBhdHRlbXB0ZWQuCiBQQVNTIGdldEVycm9y
IHdhcyBleHBlY3RlZCB2YWx1ZTogQ09OVEVYVF9MT1NUX1dFQkdMIDoKQEAgLTI3LDIzICsyNywy
MyBAQCBQQVNTIGdsLmlzQ29udGV4dExvc3QoKSBpcyB0cnVlCiBQQVNTIGdldEVycm9yIHdhcyBl
eHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOgogUnVubmluZyB0ZXN0OiBsb3NlTWV0aG9kOiBtYW55
Q29udGV4dHMsIGxvc2VNZXRob2QyOiBsb3NlQ29udGV4dAogUEFTUyBHb3Qgd2ViZ2xjb250ZXh0
bG9zdCBhbmQgcmVzdG9yZSB3YXMgYXR0ZW1wdGVkLgotRkFJTCBnZXRFcnJvciBleHBlY3RlZDog
Q09OVEVYVF9MT1NUX1dFQkdMLiBXYXMgTk9fRVJST1IgOgotRkFJTCBnZXRFcnJvciBleHBlY3Rl
ZDogSU5WQUxJRF9PUEVSQVRJT04uIFdhcyBOT19FUlJPUiA6CitQQVNTIGdldEVycm9yIHdhcyBl
eHBlY3RlZCB2YWx1ZTogQ09OVEVYVF9MT1NUX1dFQkdMIDoKK1BBU1MgZ2V0RXJyb3Igd2FzIGV4
cGVjdGVkIHZhbHVlOiBJTlZBTElEX09QRVJBVElPTiA6CiBQQVNTIGdsLmlzQ29udGV4dExvc3Qo
KSBpcyB0cnVlCiBQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOgog
UnVubmluZyB0ZXN0OiBsb3NlTWV0aG9kOiBtYW55Q29udGV4dHMsIGxvc2VNZXRob2QyOiBtYW55
Q29udGV4dHMKIFBBU1MgR290IHdlYmdsY29udGV4dGxvc3QgYW5kIHJlc3RvcmUgd2FzIGF0dGVt
cHRlZC4KLUZBSUwgZ2V0RXJyb3IgZXhwZWN0ZWQ6IENPTlRFWFRfTE9TVF9XRUJHTC4gV2FzIE5P
X0VSUk9SIDoKK1BBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBDT05URVhUX0xPU1Rf
V0VCR0wgOgogUEFTUyBnbC5pc0NvbnRleHRMb3N0KCkgaXMgdHJ1ZQogUEFTUyBnZXRFcnJvciB3
YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDoKIFJ1bm5pbmcgdGVzdDogbG9zZU1ldGhvZDog
bWFueUNvbnRleHRzLCBsb3NlTWV0aG9kMjogZ3B1U3RhdHVzRmFpbHVyZQogUEFTUyBHb3Qgd2Vi
Z2xjb250ZXh0bG9zdCBhbmQgcmVzdG9yZSB3YXMgYXR0ZW1wdGVkLgotRkFJTCBnZXRFcnJvciBl
eHBlY3RlZDogQ09OVEVYVF9MT1NUX1dFQkdMLiBXYXMgTk9fRVJST1IgOgorUEFTUyBnZXRFcnJv
ciB3YXMgZXhwZWN0ZWQgdmFsdWU6IENPTlRFWFRfTE9TVF9XRUJHTCA6CiBQQVNTIGdsLmlzQ29u
dGV4dExvc3QoKSBpcyB0cnVlCiBQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9f
RVJST1IgOgogUnVubmluZyB0ZXN0OiBsb3NlTWV0aG9kOiBtYW55Q29udGV4dHMsIGxvc2VNZXRo
b2QyOiBub3RoaW5nCiBQQVNTIEdvdCB3ZWJnbGNvbnRleHRsb3N0IGFuZCByZXN0b3JlIHdhcyBh
dHRlbXB0ZWQuCi1GQUlMIGdldEVycm9yIGV4cGVjdGVkOiBDT05URVhUX0xPU1RfV0VCR0wuIFdh
cyBOT19FUlJPUiA6CitQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogQ09OVEVYVF9M
T1NUX1dFQkdMIDoKIFBBU1MgZ2wuaXNDb250ZXh0TG9zdCgpIGlzIHRydWUKIFBBU1MgZ2V0RXJy
b3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6CiBSdW5uaW5nIHRlc3Q6IGxvc2VNZXRo
b2Q6IGdwdVN0YXR1c0ZhaWx1cmUsIGxvc2VNZXRob2QyOiBsb3NlQ29udGV4dAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>