<?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>221121</bug_id>
          
          <creation_ts>2021-01-28 22:04:53 -0800</creation_ts>
          <short_desc>Devirtualize some functions on InputType</short_desc>
          <delta_ts>2021-01-29 19:11:13 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Forms</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kangil.han</cc>
    
    <cc>mifenton</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1723622</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-01-28 22:04:53 -0800</bug_when>
    <thetext>Devirtualize some functions on InputType</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1723623</commentid>
    <comment_count>1</comment_count>
      <attachid>418705</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-01-28 22:06:17 -0800</bug_when>
    <thetext>Created attachment 418705
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1723624</commentid>
    <comment_count>2</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-01-28 22:18:12 -0800</bug_when>
    <thetext>Can use bitfields &amp; OptionSet??</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1723625</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-01-28 23:11:44 -0800</bug_when>
    <thetext>Do you want a bit per Type, and then masks for isTextType etc?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1723664</commentid>
    <comment_count>4</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-01-29 02:05:35 -0800</bug_when>
    <thetext>Possibly, using uint32_t width for InputType::Type and using OptionSet to filter out several types (e.g. isTextType(), isSteppable() etc.) would be OK because of the current InputType layout.

  +0 &lt; 24&gt; WebCore::InputType
  +0 &lt;  8&gt;    __vtbl_ptr_type * _vptr
  +8 &lt;  4&gt;     WTF::RefCounted&lt;WebCore::InputType, std::__1::default_delete&lt;WebCore::InputType&gt; &gt; WTF::RefCounted&lt;WebCore::InputType, std::__1::default_delete&lt;WebCore::InputType&gt; &gt;
  +8 &lt;  4&gt;         WTF::RefCountedBase WTF::RefCountedBase
  +8 &lt;  4&gt;           unsigned int m_refCount
 +12 &lt;  1&gt;   const WebCore::InputType::Type m_type
 +13 &lt;  3&gt;   &lt;PADDING: 3 bytes&gt;
 +16 &lt;  8&gt;     WTF::WeakPtr&lt;WebCore::HTMLInputElement, WTF::EmptyCounter&gt; m_element
 +16 &lt;  8&gt;         WTF::RefPtr&lt;WTF::WeakPtrImpl&lt;WTF::EmptyCounter&gt;, WTF::RawPtrTraits&lt;WTF::WeakPtrImpl&lt;WTF::EmptyCounter&gt; &gt;, WTF::DefaultRefDerefTraits&lt;WTF::WeakPtrImpl&lt;WTF::EmptyCounter&gt; &gt; &gt; m_impl
 +16 &lt;  8&gt;           WTF::RawPtrTraits&lt;WTF::WeakPtrImpl&lt;WTF::EmptyCounter&gt; &gt;::StorageType m_ptr
Total byte size: 24
Total pad bytes: 3
Padding percentage: 12.50 %</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1723665</commentid>
    <comment_count>5</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-01-29 02:07:13 -0800</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #3)
&gt; Do you want a bit per Type, and then masks for isTextType etc?

Yeah, that would work. Alternatively, we can just define an enum value for each type, and then things like Type::Text can just be its (own bit flag) | Type::IsTextType and so forth.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1723776</commentid>
    <comment_count>6</comment_count>
      <attachid>418747</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-01-29 10:20:52 -0800</bug_when>
    <thetext>Created attachment 418747
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1723805</commentid>
    <comment_count>7</comment_count>
      <attachid>418747</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-01-29 11:21:26 -0800</bug_when>
    <thetext>Comment on attachment 418747
Patch

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

r=me

&gt; Source/WebCore/html/InputType.h:162
&gt; +    bool isDateTimeField() const { return false; }

Let&apos;s remove this `isDateTimeField` since &quot;input datetime&quot; is not supported in WebKit, and possibly never supported since it is deprecated.

&gt; Source/WebCore/html/InputType.h:322
&gt;      virtual bool isEnumeratable();

Let&apos;s make isEnumeratable non-virtual since it is no longer using virtual overrides.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1723818</commentid>
    <comment_count>8</comment_count>
      <attachid>418752</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-01-29 11:53:17 -0800</bug_when>
    <thetext>Created attachment 418752
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1723992</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-01-29 19:10:08 -0800</bug_when>
    <thetext>Committed r272097: &lt;https://trac.webkit.org/changeset/272097&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 418752.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1723993</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-01-29 19:11:13 -0800</bug_when>
    <thetext>&lt;rdar://problem/73781798&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418705</attachid>
            <date>2021-01-28 22:06:17 -0800</date>
            <delta_ts>2021-01-29 10:20:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221121-20210128220616.patch</filename>
            <type>text/plain</type>
            <size>44394</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxODg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWRjZmMzMWZkMjVhNGRl
OGVmMmVmMDI3N2Q1N2E1ZDAzOWU2ZTBhOC4uZDNkY2JjZWU3YWI1MGQ0NjdlYjJkMDdjOTEzODU2
MGUyYWI4NzNkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0MCBAQAorMjAyMS0wMS0yOCAgU2lt
b24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBEZXZpcnR1YWxp
emUgc29tZSBmdW5jdGlvbnMgb24gSW5wdXRUeXBlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjExMjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBWaXJ0dWFsIGZ1bmN0aW9ucyBvbiBJbnB1dFR5cGUgc2hv
dyB1cCBpbiBTcGVlZG9tZXRlciBwcm9maWxlcy4gV2UgY2FuIG1ha2UKKyAgICAgICAgbWFueSBv
ZiB0aGVzZSB2aXJ0dWFsIGZ1bmN0aW9ucyBub24tdmlydHVhbCBieSBqdXN0IHN3aXRjaGluZyBv
biB0aGUgaW5wdXQgdHlwZS4KKworICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAg
KiBodG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmFz
ZUNoZWNrYWJsZUlucHV0VHlwZTo6aXNDaGVja2FibGUpOiBEZWxldGVkLgorICAgICAgICAqIGh0
bWwvQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvQmFzZVRleHRJbnB1
dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmFzZVRleHRJbnB1dFR5cGU6OmlzVGV4dFR5
cGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvQmFzZVRleHRJbnB1dFR5cGUuaDoK
KyAgICAgICAgKiBodG1sL0J1dHRvbklucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpC
dXR0b25JbnB1dFR5cGU6OmlzVGV4dEJ1dHRvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICog
aHRtbC9CdXR0b25JbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL0NoZWNrYm94SW5wdXRUeXBl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNoZWNrYm94SW5wdXRUeXBlOjppc0NoZWNrYm94IGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL0NoZWNrYm94SW5wdXRUeXBlLmg6CisgICAg
ICAgICogaHRtbC9Db2xvcklucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb2xvcklu
cHV0VHlwZTo6aXNDb2xvckNvbnRyb2wgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwv
Q29sb3JJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL0RhdGVJbnB1dFR5cGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RGF0ZUlucHV0VHlwZTo6aXNEYXRlRmllbGQgY29uc3QpOiBEZWxldGVk
LgorICAgICAgICAqIGh0bWwvRGF0ZUlucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvRGF0ZVRp
bWVMb2NhbElucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUxvY2FsSW5w
dXRUeXBlOjppc0RhdGVUaW1lTG9jYWxGaWVsZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICog
aHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9FbWFpbElucHV0
VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbWFpbElucHV0VHlwZTo6aXNFbWFpbEZpZWxk
IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL0VtYWlsSW5wdXRUeXBlLmg6CisgICAg
ICAgICogaHRtbC9GaWxlSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVJbnB1
dFR5cGU6OmlzRmlsZVVwbG9hZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogaHRtbC9GaWxl
SW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9Gb3JtQXNzb2NpYXRlZEVsZW1lbnQuaDoKKyAg
ICAgICAgKiBodG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hp
ZGRlbklucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIaWRkZW5JbnB1dFR5cGU6Omlz
SGlkZGVuVHlwZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogaHRtbC9IaWRkZW5JbnB1dFR5
cGUuaDoKKyAgICAgICAgKiBodG1sL0ltYWdlSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkltYWdlSW5wdXRUeXBlOjppc0ltYWdlQnV0dG9uIGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkltYWdlSW5wdXRUeXBlOjppc0VudW1lcmF0YWJsZSk6IERlbGV0ZWQuCisg
ICAgICAgICogaHRtbC9JbWFnZUlucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvSW5wdXRUeXBl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZTo6aXNUZXh0VHlwZSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6OmlzVGV4dEZpZWxkIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OklucHV0VHlwZTo6aXNUZXh0QnV0dG9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OklucHV0VHlwZTo6aXNJbnRlcmFjdGl2ZUNvbnRlbnQgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5wdXRUeXBlOjpzdXBwb3J0TGFiZWxzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OklucHV0VHlwZTo6aXNFbnVtZXJhdGFibGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBl
Ojppc0NoZWNrYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6OmlzUmFuZ2VDb250
cm9sIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZTo6aXNSYWRp
b0J1dHRvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6Omlz
U2VhcmNoRmllbGQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBl
Ojppc0hpZGRlblR5cGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRU
eXBlOjppc1Bhc3N3b3JkRmllbGQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
SW5wdXRUeXBlOjppc0NoZWNrYm94IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OklucHV0VHlwZTo6aXNFbWFpbEZpZWxkIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OklucHV0VHlwZTo6aXNGaWxlVXBsb2FkIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OklucHV0VHlwZTo6aXNJbWFnZUJ1dHRvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpJbnB1dFR5cGU6OmlzTnVtYmVyRmllbGQgY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlOjppc1N1Ym1pdEJ1dHRvbiBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6OmlzVGVsZXBob25lRmllbGQgY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlOjppc1VSTEZpZWxkIGNvbnN0KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZTo6aXNEYXRlRmllbGQgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlOjppc0RhdGVUaW1lRmllbGQg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlOjppc0RhdGVUaW1l
TG9jYWxGaWVsZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6
OmlzTW9udGhGaWVsZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5
cGU6OmlzVGltZUZpZWxkIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OklucHV0
VHlwZTo6aXNXZWVrRmllbGQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5w
dXRUeXBlOjppc0NvbG9yQ29udHJvbCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogaHRtbC9J
bnB1dFR5cGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZTo6aXNDaGVja2JveCBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6OmlzQ29sb3JDb250cm9sIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZTo6aXNEYXRlRmllbGQgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5wdXRUeXBlOjppc0RhdGVUaW1lRmllbGQgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6SW5wdXRUeXBlOjppc0RhdGVUaW1lTG9jYWxGaWVsZCBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpJbnB1dFR5cGU6OmlzRW1haWxGaWVsZCBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpJbnB1dFR5cGU6OmlzRmlsZVVwbG9hZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnB1dFR5cGU6OmlzSGlkZGVuVHlwZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5
cGU6OmlzSW1hZ2VCdXR0b24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlOjpp
c01vbnRoRmllbGQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlOjppc051bWJl
ckZpZWxkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZTo6aXNQYXNzd29yZEZp
ZWxkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZTo6aXNSYWRpb0J1dHRvbiBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6OmlzUmFuZ2VDb250cm9sIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZTo6aXNTZWFyY2hGaWVsZCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6OmlzU3VibWl0QnV0dG9uIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OklucHV0VHlwZTo6aXNUZWxlcGhvbmVGaWVsZCBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpJbnB1dFR5cGU6OmlzVGltZUZpZWxkIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OklucHV0VHlwZTo6aXNVUkxGaWVsZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1
dFR5cGU6OmlzV2Vla0ZpZWxkIGNvbnN0KToKKyAgICAgICAgKiBodG1sL01vbnRoSW5wdXRUeXBl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vbnRoSW5wdXRUeXBlOjppc01vbnRoRmllbGQgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvTW9udGhJbnB1dFR5cGUuaDoKKyAgICAgICAg
KiBodG1sL051bWJlcklucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOdW1iZXJJbnB1
dFR5cGU6OmlzTnVtYmVyRmllbGQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvTnVt
YmVySW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9QYXNzd29yZElucHV0VHlwZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpQYXNzd29yZElucHV0VHlwZTo6aXNQYXNzd29yZEZpZWxkIGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL1Bhc3N3b3JkSW5wdXRUeXBlLmg6CisgICAgICAg
ICogaHRtbC9SYWRpb0lucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSYWRpb0lucHV0
VHlwZTo6aXNSYWRpb0J1dHRvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogaHRtbC9SYWRp
b0lucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmFuZ2VJbnB1dFR5cGU6OmlzUmFuZ2VDb250cm9sIGNvbnN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKiBodG1sL1JhbmdlSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9SZXNl
dElucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNldElucHV0VHlwZTo6aXNUZXh0
QnV0dG9uIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL1Jlc2V0SW5wdXRUeXBlLmg6
CisgICAgICAgICogaHRtbC9TZWFyY2hJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U2VhcmNoSW5wdXRUeXBlOjppc1NlYXJjaEZpZWxkIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KiBodG1sL1NlYXJjaElucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvU3VibWl0SW5wdXRUeXBl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN1Ym1pdElucHV0VHlwZTo6aXNTdWJtaXRCdXR0b24g
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U3VibWl0SW5wdXRUeXBlOjppc1Rl
eHRCdXR0b24gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvU3VibWl0SW5wdXRUeXBl
Lmg6CisgICAgICAgICogaHRtbC9UZWxlcGhvbmVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6VGVsZXBob25lSW5wdXRUeXBlOjppc1RlbGVwaG9uZUZpZWxkIGNvbnN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKiBodG1sL1RlbGVwaG9uZUlucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwv
VGV4dEZpZWxkSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRGaWVsZElucHV0
VHlwZTo6aXNUZXh0RmllbGQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvVGV4dEZp
ZWxkSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9UaW1lSW5wdXRUeXBlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlRpbWVJbnB1dFR5cGU6OmlzVGltZUZpZWxkIGNvbnN0KTogRGVsZXRlZC4K
KyAgICAgICAgKiBodG1sL1RpbWVJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL1VSTElucHV0
VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpVUkxJbnB1dFR5cGU6OmlzVVJMRmllbGQgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvVVJMSW5wdXRUeXBlLmg6CisgICAgICAgICog
aHRtbC9XZWVrSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlZWtJbnB1dFR5cGU6
OmlzV2Vla0ZpZWxkIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL1dlZWtJbnB1dFR5
cGUuaDoKKwogMjAyMS0wMS0yNiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNv
bT4KIAogICAgICAgICBNYWtlIHNob3dSZW5kZXJUcmVlKCkgZHVtcCBGbG9hdGluZ09iamVjdHMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCBmNTAyM2QyMmQ4MDc2ZTJkMjFiYmY4Zjc3NzgzYmNj
OWQzNjNiZmY0Li5mZGZhOWM2MmQ1MzlhMTU1ZDJkMmQ4MzhlZGY3NDgxZjFiZWFkMmU4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0zMjIwLDcgKzMyMjAsNiBAQCBFeGNlcHRpb25Pcjx2b2lk
PiBFbGVtZW50OjpzZXRPdXRlckhUTUwoY29uc3QgU3RyaW5nJiBodG1sKQogICAgIHJldHVybiB7
IH07CiB9CiAKLQogRXhjZXB0aW9uT3I8dm9pZD4gRWxlbWVudDo6c2V0SW5uZXJIVE1MKGNvbnN0
IFN0cmluZyYgaHRtbCkKIHsKICAgICBhdXRvIGZyYWdtZW50ID0gY3JlYXRlRnJhZ21lbnRGb3JJ
bm5lck91dGVySFRNTCgqdGhpcywgaHRtbCwgQWxsb3dTY3JpcHRpbmdDb250ZW50KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuY3BwCmluZGV4IGE5NDk5
NTZlOTMzMjJlMDZjNGQzZDRiOGQ4MTA3ZDYxYTQxYzhkY2UuLmIxOTVjZDM4YzFiMGRkZTAwOWZi
NWZmZGRhODRkZWNjMjZlYmEwOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFz
ZUNoZWNrYWJsZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hl
Y2thYmxlSW5wdXRUeXBlLmNwcApAQCAtMTE0LDExICsxMTQsNiBAQCB2b2lkIEJhc2VDaGVja2Fi
bGVJbnB1dFR5cGU6OnNldFZhbHVlKGNvbnN0IFN0cmluZyYgc2FuaXRpemVkVmFsdWUsIGJvb2ws
IFRleHRGaQogICAgIGVsZW1lbnQoKS0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlv
bih2YWx1ZUF0dHIsIHNhbml0aXplZFZhbHVlKTsKIH0KIAotYm9vbCBCYXNlQ2hlY2thYmxlSW5w
dXRUeXBlOjppc0NoZWNrYWJsZSgpCi17Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KIHZvaWQgQmFz
ZUNoZWNrYWJsZUlucHV0VHlwZTo6ZmlyZUlucHV0QW5kQ2hhbmdlRXZlbnRzKCkKIHsKICAgICBp
ZiAoIWVsZW1lbnQoKS0+aXNDb25uZWN0ZWQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNl
Q2hlY2thYmxlSW5wdXRUeXBlLmgKaW5kZXggNDc0MjM0NWJkNTZjMDFmZDNmOTQyYjBlMmRjNGY5
MjU3Nzc4MWM5Ny4uYTBjM2Y0ODdhNDNkMjNkYjRlMjZkM2ExYWFmOGMyOWI2NTNiOGRhMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmgKQEAgLTUxLDcg
KzUxLDYgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgZmFsbGJhY2tWYWx1ZSgpIGNvbnN0IG92ZXJy
aWRlOwogICAgIGJvb2wgc3RvcmVzVmFsdWVTZXBhcmF0ZUZyb21BdHRyaWJ1dGUoKSBvdmVycmlk
ZTsKICAgICB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wsIFRleHRGaWVsZEV2ZW50
QmVoYXZpb3IpIG92ZXJyaWRlOwotICAgIGJvb2wgaXNDaGVja2FibGUoKSBvdmVycmlkZTsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvQmFzZVRleHRJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlVGV4dElu
cHV0VHlwZS5jcHAKaW5kZXggMDExODlhYmUzYmYxZGEzNzUxZmJkMzIzZmI1YWU3OGVhMzM4ZTc3
OS4uYWViY2JlNjU3YTE4YTk4MWVmMTEzOWQ1ODJlYjZlZTFjOWRhOTViYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9CYXNlVGV4dElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9CYXNlVGV4dElucHV0VHlwZS5jcHAKQEAgLTMzLDExICszMyw2IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotYm9vbCBCYXNl
VGV4dElucHV0VHlwZTo6aXNUZXh0VHlwZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHRydWU7Ci19
Ci0KIGJvb2wgQmFzZVRleHRJbnB1dFR5cGU6OnBhdHRlcm5NaXNtYXRjaChjb25zdCBTdHJpbmcm
IHZhbHVlKSBjb25zdAogewogICAgIEFTU0VSVChlbGVtZW50KCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9CYXNlVGV4dElucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9CYXNlVGV4dElucHV0VHlwZS5oCmluZGV4IGM3ODgzNzllMzQ2MTNhMzBjMTIyNjYzOTZiOWU3
OWRmMTJjMjFkODkuLjYyZWQ0Nzg5NjY0NDgzNDU2MjdlMjZmNDBiMTk1MDhlZjhjM2UxZWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZVRleHRJbnB1dFR5cGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VUZXh0SW5wdXRUeXBlLmgKQEAgLTQwLDcgKzQwLDYgQEAg
Y2xhc3MgQmFzZVRleHRJbnB1dFR5cGUgOiBwdWJsaWMgVGV4dEZpZWxkSW5wdXRUeXBlIHsKIHBy
b3RlY3RlZDoKICAgICBleHBsaWNpdCBCYXNlVGV4dElucHV0VHlwZShUeXBlIHR5cGUsIEhUTUxJ
bnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogVGV4dEZpZWxkSW5wdXRUeXBlKHR5cGUsIGVsZW1lbnQp
IHsgfQogCi0gICAgYm9vbCBpc1RleHRUeXBlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBw
YXR0ZXJuTWlzbWF0Y2goY29uc3QgU3RyaW5nJikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBz
dXBwb3J0c1BsYWNlaG9sZGVyKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBzdXBwb3J0c1Nl
bGVjdGlvbkFQSSgpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9CdXR0b25JbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CdXR0b25JbnB1
dFR5cGUuY3BwCmluZGV4IGU5NTE4NjUyYjMxNDlkNTZjYWU1MjA1YzcyZjQ1YjVmY2Q4ZGM3MmMu
LmEyNzUxY2M3ZjFlN2VkMGJkNTgyZjA1OWRhNmNiZmQ4YzA0OTg2NGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvQnV0dG9uSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0J1dHRvbklucHV0VHlwZS5jcHAKQEAgLTQ1LDkgKzQ1LDQgQEAgYm9vbCBCdXR0b25J
bnB1dFR5cGU6OnN1cHBvcnRzVmFsaWRhdGlvbigpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwog
fQogCi1ib29sIEJ1dHRvbklucHV0VHlwZTo6aXNUZXh0QnV0dG9uKCkgY29uc3QKLXsKLSAgICBy
ZXR1cm4gdHJ1ZTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9CdXR0b25JbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
QnV0dG9uSW5wdXRUeXBlLmgKaW5kZXggYjk0YWZlZDlkN2JhNWIyNzEyOWZiM2ViN2U4N2VmZjk3
ZDNjOTlkYy4uNWZlNzJmMzc3MzA2ZWNkOWMwZTNlNDY5MGJiZWZiZjY0NzAyOWQ4MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CdXR0b25JbnB1dFR5cGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0J1dHRvbklucHV0VHlwZS5oCkBAIC00Miw3ICs0Miw2IEBAIHB1YmxpYzoK
IHByaXZhdGU6CiAgICAgY29uc3QgQXRvbVN0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3Qg
b3ZlcnJpZGU7CiAgICAgYm9vbCBzdXBwb3J0c1ZhbGlkYXRpb24oKSBjb25zdCBvdmVycmlkZTsK
LSAgICBib29sIGlzVGV4dEJ1dHRvbigpIGNvbnN0IG92ZXJyaWRlOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9DaGVja2JveElu
cHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NoZWNrYm94SW5wdXRUeXBlLmNwcApp
bmRleCA0MTMyMDExZGZjMGE1MThkMDEwNDQ5ZWY4Y2Q2MjNmMDRlZDdiNGZlLi5lM2RiYTAwYmFi
MDgwNmQ3MzdkZjE2ZWEyZjFiYmY3OGQwOTkzZGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0NoZWNrYm94SW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0No
ZWNrYm94SW5wdXRUeXBlLmNwcApAQCAtOTIsMTEgKzkyLDYgQEAgdm9pZCBDaGVja2JveElucHV0
VHlwZTo6ZGlkRGlzcGF0Y2hDbGljayhFdmVudCYgZXZlbnQsIGNvbnN0IElucHV0RWxlbWVudENs
aWNrU3QKICAgICBldmVudC5zZXREZWZhdWx0SGFuZGxlZCgpOwogfQogCi1ib29sIENoZWNrYm94
SW5wdXRUeXBlOjppc0NoZWNrYm94KCkgY29uc3QKLXsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQog
Ym9vbCBDaGVja2JveElucHV0VHlwZTo6bWF0Y2hlc0luZGV0ZXJtaW5hdGVQc2V1ZG9DbGFzcygp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIHNob3VsZEFwcGVhckluZGV0ZXJtaW5hdGUoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ2hlY2tib3hJbnB1dFR5cGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvQ2hlY2tib3hJbnB1dFR5cGUuaAppbmRleCA2Y2I4MzBjZTAxZDE0ZDE3NzBk
YWE4ZjM2NjNjZjNmYTk4YjE3NDZkLi5mMjY2OThlZDlmMmFlNDBlOTM0NDY0OWE0YTlmMGQ5YWJi
ZTZkN2ZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NoZWNrYm94SW5wdXRUeXBl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9DaGVja2JveElucHV0VHlwZS5oCkBAIC00Niw3
ICs0Niw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBoYW5kbGVLZXl1cEV2ZW50KEtleWJvYXJkRXZl
bnQmKSBmaW5hbDsKICAgICB2b2lkIHdpbGxEaXNwYXRjaENsaWNrKElucHV0RWxlbWVudENsaWNr
U3RhdGUmKSBmaW5hbDsKICAgICB2b2lkIGRpZERpc3BhdGNoQ2xpY2soRXZlbnQmLCBjb25zdCBJ
bnB1dEVsZW1lbnRDbGlja1N0YXRlJikgZmluYWw7Ci0gICAgYm9vbCBpc0NoZWNrYm94KCkgY29u
c3QgZmluYWw7CiAgICAgYm9vbCBtYXRjaGVzSW5kZXRlcm1pbmF0ZVBzZXVkb0NsYXNzKCkgY29u
c3QgZmluYWw7CiAgICAgYm9vbCBzaG91bGRBcHBlYXJJbmRldGVybWluYXRlKCkgY29uc3QgZmlu
YWw7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcAppbmRleCA2Y2VmYmUw
YTFhYmY2M2Y0M2VmNGI2ZTQ2MTFlZTgwNDRmNzdlMzUyLi42ZTdlYTUyNzU0YThiY2NkYTI5N2Ri
ZTc3NDZkZTEzZWJlMjc5YmM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9y
SW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNw
cApAQCAtMTAwLDExICsxMDAsNiBAQCBib29sIENvbG9ySW5wdXRUeXBlOjppc0tleWJvYXJkRm9j
dXNhYmxlKEtleWJvYXJkRXZlbnQqKSBjb25zdAogI2VuZGlmCiB9CiAKLWJvb2wgQ29sb3JJbnB1
dFR5cGU6OmlzQ29sb3JDb250cm9sKCkgY29uc3QKLXsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQog
Ym9vbCBDb2xvcklucHV0VHlwZTo6aXNQcmVzZW50aW5nQXR0YWNoZWRWaWV3KCkgY29uc3QKIHsK
ICAgICByZXR1cm4gISFtX2Nob29zZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0NvbG9ySW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmgK
aW5kZXggY2ZkODhhNjM5N2NmNTA0ZjZlYmQ0YTkxNmRiZWJlZGMyZmMxM2RkNC4uMDczYjA5NzZh
MjAxOWNjMzYzZjdmZWVhM2QwZDQ2MmRlNDJiZGJlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9Db2xvcklucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJ
bnB1dFR5cGUuaApAQCAtNTIsNyArNTIsNiBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxDb2xvcj4g
c3VnZ2VzdGVkQ29sb3JzKCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBpc01vdXNlRm9jdXNhYmxl
KCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBpc0tleWJvYXJkRm9jdXNhYmxlKEtleWJvYXJkRXZl
bnQqKSBjb25zdCBmaW5hbDsKLSAgICBib29sIGlzQ29sb3JDb250cm9sKCkgY29uc3QgZmluYWw7
CiAgICAgYm9vbCBpc1ByZXNlbnRpbmdBdHRhY2hlZFZpZXcoKSBjb25zdCBmaW5hbDsKICAgICBj
b25zdCBBdG9tU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBmaW5hbDsKICAgICBib29s
IHN1cHBvcnRzUmVxdWlyZWQoKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1
dFR5cGUuY3BwCmluZGV4IDYyMjI3MTNhNGEyMTkzYzUzY2I1MGE2MzQ1OTA1ZmRlNzg5Y2MxZmMu
LjkxZWJmMGVjYTA5OTNiODVmNDM3OWUwOWY2YjA2ZTgwYjZmMWIwOTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9EYXRlSW5wdXRUeXBlLmNwcApAQCAtODQsMTEgKzg0LDYgQEAgT3B0aW9uYWw8RGF0ZUNv
bXBvbmVudHM+IERhdGVJbnB1dFR5cGU6OnNldE1pbGxpc2Vjb25kVG9EYXRlQ29tcG9uZW50cyhk
b3VibGUgdmEKICAgICByZXR1cm4gRGF0ZUNvbXBvbmVudHM6OmZyb21NaWxsaXNlY29uZHNTaW5j
ZUVwb2NoRm9yRGF0ZSh2YWx1ZSk7CiB9CiAKLWJvb2wgRGF0ZUlucHV0VHlwZTo6aXNEYXRlRmll
bGQoKSBjb25zdAotewotICAgIHJldHVybiB0cnVlOwotfQotCiBib29sIERhdGVJbnB1dFR5cGU6
OmlzVmFsaWRGb3JtYXQoT3B0aW9uU2V0PERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM+
IHJlc3VsdHMpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHJlc3VsdHMuY29udGFpbnNBbGwoeyBEYXRl
VGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzOjpIYXNZZWFyLCBEYXRlVGltZUZvcm1hdFZhbGlk
YXRpb25SZXN1bHRzOjpIYXNNb250aCwgRGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0czo6
SGFzRGF5IH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlSW5wdXRUeXBl
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuaAppbmRleCBkNjYxMjFlMjdi
NDY0NjE5YjIwOGQxYzhmZDJiM2QzNzVmZDNiZDU0Li5iMzE4MjIxOWRmMmU0NzAwYjYzODM5ZjY2
NDRlZTA0MzExNDVmODdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1
dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuaApAQCAtNDcs
NyArNDcsNiBAQCBwcml2YXRlOgogICAgIFN0ZXBSYW5nZSBjcmVhdGVTdGVwUmFuZ2UoQW55U3Rl
cEhhbmRsaW5nKSBjb25zdCBvdmVycmlkZTsKICAgICBPcHRpb25hbDxEYXRlQ29tcG9uZW50cz4g
cGFyc2VUb0RhdGVDb21wb25lbnRzKGNvbnN0IFN0cmluZ1ZpZXcmKSBjb25zdCBvdmVycmlkZTsK
ICAgICBPcHRpb25hbDxEYXRlQ29tcG9uZW50cz4gc2V0TWlsbGlzZWNvbmRUb0RhdGVDb21wb25l
bnRzKGRvdWJsZSkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgYm9vbCBpc0RhdGVGaWVsZCgpIGNvbnN0
IG92ZXJyaWRlOwogCiAgICAgYm9vbCBpc1ZhbGlkRm9ybWF0KE9wdGlvblNldDxEYXRlVGltZUZv
cm1hdFZhbGlkYXRpb25SZXN1bHRzPikgY29uc3QgZmluYWw7CiAgICAgU3RyaW5nIGZvcm1hdERh
dGVUaW1lRmllbGRzU3RhdGUoY29uc3QgRGF0ZVRpbWVGaWVsZHNTdGF0ZSYpIGNvbnN0IGZpbmFs
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5jcHAKaW5k
ZXggYTJiNGNlNzE5YzE3YzZhODU5Y2ZlNDU0Mzk1ZDc4MzcwNmNjYWQxNi4uZDM5MWM5NzAzMWU4
M2FhOGIyNWMwZmY1MGFkODkzNGNlYmJlNjc1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwCkBAIC05MywxMSArOTMsNiBAQCBPcHRpb25hbDxE
YXRlQ29tcG9uZW50cz4gRGF0ZVRpbWVMb2NhbElucHV0VHlwZTo6c2V0TWlsbGlzZWNvbmRUb0Rh
dGVDb21wb25lbnRzKAogICAgIHJldHVybiBEYXRlQ29tcG9uZW50czo6ZnJvbU1pbGxpc2Vjb25k
c1NpbmNlRXBvY2hGb3JEYXRlVGltZUxvY2FsKHZhbHVlKTsKIH0KIAotYm9vbCBEYXRlVGltZUxv
Y2FsSW5wdXRUeXBlOjppc0RhdGVUaW1lTG9jYWxGaWVsZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJu
IHRydWU7Ci19Ci0KIGJvb2wgRGF0ZVRpbWVMb2NhbElucHV0VHlwZTo6aXNWYWxpZEZvcm1hdChP
cHRpb25TZXQ8RGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0cz4gcmVzdWx0cykgY29uc3QK
IHsKICAgICByZXR1cm4gcmVzdWx0cy5jb250YWluc0FsbCh7IERhdGVUaW1lRm9ybWF0VmFsaWRh
dGlvblJlc3VsdHM6Okhhc1llYXIsIERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6Okhh
c01vbnRoLCBEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzOjpIYXNEYXksIERhdGVUaW1l
Rm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6Okhhc0hvdXIsIERhdGVUaW1lRm9ybWF0VmFsaWRhdGlv
blJlc3VsdHM6Okhhc01pbnV0ZSwgRGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0czo6SGFz
TWVyaWRpZW0gfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9j
YWxJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlw
ZS5oCmluZGV4IDRiMjMyYzBmYzMwYzJjMzVlMmY4NDkzMTAzZGViZmMyY2MyYzlhMTkuLjAyZDZj
YTAxYjM3MzA5YTExMGUwMDE2NzU2Yjg1YmQ0MDA2Mzk2YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5oCkBAIC01Miw3ICs1Miw2IEBAIHByaXZhdGU6
CiAgICAgU3RlcFJhbmdlIGNyZWF0ZVN0ZXBSYW5nZShBbnlTdGVwSGFuZGxpbmcpIGNvbnN0IGZp
bmFsOwogICAgIE9wdGlvbmFsPERhdGVDb21wb25lbnRzPiBwYXJzZVRvRGF0ZUNvbXBvbmVudHMo
Y29uc3QgU3RyaW5nVmlldyYpIGNvbnN0IGZpbmFsOwogICAgIE9wdGlvbmFsPERhdGVDb21wb25l
bnRzPiBzZXRNaWxsaXNlY29uZFRvRGF0ZUNvbXBvbmVudHMoZG91YmxlKSBjb25zdCBmaW5hbDsK
LSAgICBib29sIGlzRGF0ZVRpbWVMb2NhbEZpZWxkKCkgY29uc3QgZmluYWw7CiAKICAgICBib29s
IGlzVmFsaWRGb3JtYXQoT3B0aW9uU2V0PERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM+
KSBjb25zdCBmaW5hbDsKICAgICBTdHJpbmcgZm9ybWF0RGF0ZVRpbWVGaWVsZHNTdGF0ZShjb25z
dCBEYXRlVGltZUZpZWxkc1N0YXRlJikgY29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0VtYWlsSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRW1h
aWxJbnB1dFR5cGUuY3BwCmluZGV4IGRlZTVjYzRiZmE0ODE3NjgyMDA3MTI1YTFkYTk1MjRlYzk4
YjhlODQuLjc5NjY1NzA4YzUxNTIxMjA0NTcyNjZkOGE5NWVkNDcxNzA2YzNmODYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRW1haWxJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvRW1haWxJbnB1dFR5cGUuY3BwCkBAIC04MywxMSArODMsNiBAQCBTdHJpbmcg
RW1haWxJbnB1dFR5cGU6OnR5cGVNaXNtYXRjaFRleHQoKSBjb25zdAogICAgIHJldHVybiBlbGVt
ZW50KCktPm11bHRpcGxlKCkgPyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaEZvck11bHRp
cGxlRW1haWxUZXh0KCkgOiB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaEZvckVtYWlsVGV4
dCgpOwogfQogCi1ib29sIEVtYWlsSW5wdXRUeXBlOjppc0VtYWlsRmllbGQoKSBjb25zdAotewot
ICAgIHJldHVybiB0cnVlOwotfQotCiBib29sIEVtYWlsSW5wdXRUeXBlOjpzdXBwb3J0c1NlbGVj
dGlvbkFQSSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9FbWFpbElucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9FbWFp
bElucHV0VHlwZS5oCmluZGV4IDIxZTQwZGQzMmQ4MzAyMTY2Zjc5MTZlMzg4MGY1MzdmMTk2MTU3
YmMuLmIxOGRkNWYzYWI0ZTgwZjczOWIxNmE2OGNiNjgyYzRiZGI3Yjk0Y2QgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRW1haWxJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0VtYWlsSW5wdXRUeXBlLmgKQEAgLTQ0LDcgKzQ0LDYgQEAgcHJpdmF0ZToKICAgICBi
b29sIHR5cGVNaXNtYXRjaEZvcihjb25zdCBTdHJpbmcmKSBjb25zdCBvdmVycmlkZTsKICAgICBi
b29sIHR5cGVNaXNtYXRjaCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIFN0cmluZyB0eXBlTWlzbWF0
Y2hUZXh0KCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgYm9vbCBpc0VtYWlsRmllbGQoKSBjb25zdCBv
dmVycmlkZTsKICAgICBib29sIHN1cHBvcnRzU2VsZWN0aW9uQVBJKCkgY29uc3Qgb3ZlcnJpZGU7
CiAgICAgU3RyaW5nIHNhbml0aXplVmFsdWUoY29uc3QgU3RyaW5nJikgY29uc3Qgb3ZlcnJpZGU7
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKaW5kZXggMzExYzU4N2NmOTNj
MTBjYjk2MzAyMGNmOGRmZWVkNzE4NTg4YWNmMi4uMDZjODQzMjFiYjI5MWZiMTc4NjI1ZjNkNzgz
NDM4ZWU4ODg0NmY5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRU
eXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCkBAIC0y
NzMsMTEgKzI3Myw2IEBAIHZvaWQgRmlsZUlucHV0VHlwZTo6c2V0VmFsdWUoY29uc3QgU3RyaW5n
JiwgYm9vbCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikKICAgICBlbGVtZW50KCktPmludmFsaWRh
dGVTdHlsZUZvclN1YnRyZWUoKTsKIH0KIAotYm9vbCBGaWxlSW5wdXRUeXBlOjppc0ZpbGVVcGxv
YWQoKSBjb25zdAotewotICAgIHJldHVybiB0cnVlOwotfQotCiB2b2lkIEZpbGVJbnB1dFR5cGU6
OmNyZWF0ZVNoYWRvd1N1YnRyZWVBbmRVcGRhdGVJbm5lclRleHRFbGVtZW50RWRpdGFiaWxpdHko
Q29udGFpbmVyTm9kZTo6Q2hpbGRDaGFuZ2U6OlNvdXJjZSBzb3VyY2UsIGJvb2wpCiB7CiAgICAg
QVNTRVJUKGVsZW1lbnQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJ
bnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5oCmluZGV4IGY5
ZDJjOGU0MmUzYTVjOWU0ZTcxNmM3MDIyMjRiM2Y3NWEwMzZkOGYuLmJiZWQyOTlmYzRmY2M3YjJi
ZTU0M2FkMGUxZDczMGY1MWE3NWIxNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
RmlsZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5o
CkBAIC03Nyw3ICs3Nyw2IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAgIEljb24qIGljb24oKSBj
b25zdCBmaW5hbDsKLSAgICBib29sIGlzRmlsZVVwbG9hZCgpIGNvbnN0IGZpbmFsOwogICAgIHZv
aWQgY3JlYXRlU2hhZG93U3VidHJlZUFuZFVwZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0YWJpbGl0
eShDb250YWluZXJOb2RlOjpDaGlsZENoYW5nZTo6U291cmNlLCBib29sKSBmaW5hbDsKICAgICB2
b2lkIGRpc2FibGVkU3RhdGVDaGFuZ2VkKCkgZmluYWw7CiAgICAgdm9pZCBhdHRyaWJ1dGVDaGFu
Z2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvRm9ybUFzc29jaWF0ZWRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zv
cm1Bc3NvY2lhdGVkRWxlbWVudC5oCmluZGV4IDQ0NjFiNDJiMTkwOTc4YzEyZDcyNWM1ZTdhZDA3
NzBiMDliNjMzYTIuLjJjYzQ0YWUxOWE3MGI2MTkzOWZmZTY2MzM0ODVkZTJhNDdiNzJiOTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUFzc29jaWF0ZWRFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQXNzb2NpYXRlZEVsZW1lbnQuaApAQCAtMTEwLDYg
KzExMCw3IEBAIHByb3RlY3RlZDoKICAgICBTdHJpbmcgY3VzdG9tVmFsaWRhdGlvbk1lc3NhZ2Uo
KSBjb25zdDsKIAogcHJpdmF0ZToKKyAgICAvLyAid2lsbFZhbGlkYXRlIiBtZWFucyAiaXMgYSBj
YW5kaWRhdGUgZm9yIGNvbnN0cmFpbnQgdmFsaWRhdGlvbiIuCiAgICAgdmlydHVhbCBib29sIHdp
bGxWYWxpZGF0ZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcmVmRm9ybUFzc29jaWF0
ZWRFbGVtZW50KCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkZXJlZkZvcm1Bc3NvY2lhdGVkRWxl
bWVudCgpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250
cm9sRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50
LmgKaW5kZXggMmUzNjM1YjdiZmFjMjMzZTIzMDE2YTQwOTE3NWVmZDlhMTZiZjNiNy4uYjk3MTg0
YmZmNjQzMDRhNjEyZDFlNzc2NWU1ZmVmZDM4MzgwOWQzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgKQEAgLTk5LDYgKzk5LDcgQEAgcHVibGljOgog
ICAgIFdFQkNPUkVfRVhQT1JUIEF1dG9jYXBpdGFsaXplVHlwZSBhdXRvY2FwaXRhbGl6ZVR5cGUo
KSBjb25zdCBmaW5hbDsKICNlbmRpZgogCisgICAgLy8gIndpbGxWYWxpZGF0ZSIgbWVhbnMgImlz
IGEgY2FuZGlkYXRlIGZvciBjb25zdHJhaW50IHZhbGlkYXRpb24iLgogICAgIFdFQkNPUkVfRVhQ
T1JUIGJvb2wgd2lsbFZhbGlkYXRlKCkgY29uc3QgZmluYWw7CiAgICAgdm9pZCB1cGRhdGVWaXNp
YmxlVmFsaWRhdGlvbk1lc3NhZ2UoKTsKICAgICB2b2lkIGhpZGVWaXNpYmxlVmFsaWRhdGlvbk1l
c3NhZ2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSGlkZGVuSW5wdXRUeXBl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSGlkZGVuSW5wdXRUeXBlLmNwcAppbmRleCA2YWY5
YmM3MjNiMGU5ZTBjNWI5MTUwNjU5MDJmYjc0NjhmYmJlMDU5Li5kMzYyZjNjZWQ3ZGQyM2EyOWJk
ZTFjMmZlYTZhMmZkNzFkZjk2NmY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hp
ZGRlbklucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5
cGUuY3BwCkBAIC05NCwxMSArOTQsNiBAQCB2b2lkIEhpZGRlbklucHV0VHlwZTo6c2V0VmFsdWUo
Y29uc3QgU3RyaW5nJiBzYW5pdGl6ZWRWYWx1ZSwgYm9vbCwgVGV4dEZpZWxkRXZlbgogICAgIGVs
ZW1lbnQoKS0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbih2YWx1ZUF0dHIsIHNh
bml0aXplZFZhbHVlKTsKIH0KIAotYm9vbCBIaWRkZW5JbnB1dFR5cGU6OmlzSGlkZGVuVHlwZSgp
IGNvbnN0Ci17Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KIGJvb2wgSGlkZGVuSW5wdXRUeXBlOjph
cHBlbmRGb3JtRGF0YShET01Gb3JtRGF0YSYgZm9ybURhdGEsIGJvb2wgaXNNdWx0aXBhcnRGb3Jt
KSBjb25zdAogewogICAgIEFTU0VSVChlbGVtZW50KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSGlkZGVu
SW5wdXRUeXBlLmgKaW5kZXggYjU4NjA3NzM2NGQ3NGVjZDJkYTljNmMyMWU2MTdlNmE2MDRmY2Ey
NC4uNzcwYzYzMTQ2MDdkOWU4OWRlODgzNjRiMGJlYjc1MDdhMGNiZjcwNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hpZGRlbklucHV0VHlwZS5oCkBAIC00OCw5ICs0OCw2IEBAIHByaXZhdGU6CiAgICAg
Ym9vbCBhY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpIG92ZXJyaWRlOwogICAg
IGJvb2wgcmVuZGVyZXJJc05lZWRlZCgpIG92ZXJyaWRlOwogICAgIGJvb2wgc3RvcmVzVmFsdWVT
ZXBhcmF0ZUZyb21BdHRyaWJ1dGUoKSBvdmVycmlkZTsKLSAgICBib29sIGlzSGlkZGVuVHlwZSgp
IGNvbnN0IG92ZXJyaWRlOwotICAgIGJvb2wgc3VwcG9ydExhYmVscygpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgYm9vbCBpc0ludGVyYWN0aXZlQ29udGVudCgpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBzaG91bGRSZXNwZWN0SGVpZ2h0QW5k
V2lkdGhBdHRyaWJ1dGVzKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJp
bmcmLCBib29sLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yKSBvdmVycmlkZTsKICAgICBib29sIGFw
cGVuZEZvcm1EYXRhKERPTUZvcm1EYXRhJiwgYm9vbCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwCmluZGV4IDBmNWZhZTE1OTFiZjViOTJlNzQ2NjMw
MGM2NjQ4Y2RkMDcwNjdmMmUuLjI0NThiZDMxOTdiZDVjZjVkMDg1NjJjMWZjNjBhZWU5Mzg1MWUz
MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwCkBAIC0xNzEsMTYgKzE3
MSw2IEBAIGJvb2wgSW1hZ2VJbnB1dFR5cGU6OmNhbkJlU3VjY2Vzc2Z1bFN1Ym1pdEJ1dHRvbigp
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSW1hZ2VJbnB1dFR5cGU6OmlzSW1hZ2VCdXR0
b24oKSBjb25zdAotewotICAgIHJldHVybiB0cnVlOwotfQotCi1ib29sIEltYWdlSW5wdXRUeXBl
Ojppc0VudW1lcmF0YWJsZSgpCi17Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCiBib29sIEltYWdl
SW5wdXRUeXBlOjpzaG91bGRSZXNwZWN0SGVpZ2h0QW5kV2lkdGhBdHRyaWJ1dGVzKCkKIHsKICAg
ICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1
dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuaAppbmRleCAzYjY1
YzlhZjVhZTYwNWU0YzIzNzU5ZGNiYzQ5NzljZTkxY2VlNzM5Li44MmQwM2JmNTQ0M2RiZDE3Njk3
Y2MwNmEwYmEwOTA3NTAxZWFlMmMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lt
YWdlSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5o
CkBAIC01Myw4ICs1Myw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBhdHRhY2goKSBmaW5hbDsKICAg
ICBib29sIHNob3VsZFJlc3BlY3RBbGlnbkF0dHJpYnV0ZSgpIGZpbmFsOwogICAgIGJvb2wgY2Fu
QmVTdWNjZXNzZnVsU3VibWl0QnV0dG9uKCkgZmluYWw7Ci0gICAgYm9vbCBpc0ltYWdlQnV0dG9u
KCkgY29uc3QgZmluYWw7Ci0gICAgYm9vbCBpc0VudW1lcmF0YWJsZSgpIGZpbmFsOwogICAgIGJv
b2wgc2hvdWxkUmVzcGVjdEhlaWdodEFuZFdpZHRoQXR0cmlidXRlcygpIGZpbmFsOwogICAgIHVu
c2lnbmVkIGhlaWdodCgpIGNvbnN0IGZpbmFsOwogICAgIHVuc2lnbmVkIHdpZHRoKCkgY29uc3Qg
ZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKaW5kZXggNjg1YzAzZmVkMjM3NmZjN2Vm
NDM5NTEyNGViMzlmNjg4OTMxOTFkYi4uMDFhNmVjMWQ0MjgyOGQ0ODI5OTY2MDFmZTQ3ODUwZjE4
ZTdkZDVlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcApAQCAtMTY2LDIxICsxNjYsNiBA
QCBib29sIElucHV0VHlwZTo6dGhlbWVTdXBwb3J0c0RhdGFMaXN0VUkoSW5wdXRUeXBlKiB0eXBl
KQogICAgIHJldHVybiBSZW5kZXJUaGVtZTo6c2luZ2xldG9uKCkuc3VwcG9ydHNEYXRhTGlzdFVJ
KHR5cGUtPmZvcm1Db250cm9sVHlwZSgpKTsKIH0KIAotYm9vbCBJbnB1dFR5cGU6OmlzVGV4dEZp
ZWxkKCkgY29uc3QKLXsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLWJvb2wgSW5wdXRUeXBlOjpp
c1RleHRUeXBlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLWJvb2wgSW5wdXRU
eXBlOjppc1JhbmdlQ29udHJvbCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCiBi
b29sIElucHV0VHlwZTo6c2hvdWxkU2F2ZUFuZFJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKCkgY29u
c3QKIHsKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTgxNiwxMTkgKzgwMSw3MyBAQCBib29sIElucHV0
VHlwZTo6c2hvdWxkUmVzcGVjdExpc3RBdHRyaWJ1dGUoKQogICAgIHJldHVybiBmYWxzZTsKIH0K
IAotYm9vbCBJbnB1dFR5cGU6OmlzVGV4dEJ1dHRvbigpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGZh
bHNlOwotfQotCi1ib29sIElucHV0VHlwZTo6aXNSYWRpb0J1dHRvbigpIGNvbnN0Ci17Ci0gICAg
cmV0dXJuIGZhbHNlOwotfQotCi1ib29sIElucHV0VHlwZTo6aXNTZWFyY2hGaWVsZCgpIGNvbnN0
Ci17Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi1ib29sIElucHV0VHlwZTo6aXNIaWRkZW5UeXBl
KCkgY29uc3QKLXsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLWJvb2wgSW5wdXRUeXBlOjppc1Bh
c3N3b3JkRmllbGQoKSBjb25zdAotewotICAgIHJldHVybiBmYWxzZTsKLX0KLQotYm9vbCBJbnB1
dFR5cGU6OmlzQ2hlY2tib3goKSBjb25zdAotewotICAgIHJldHVybiBmYWxzZTsKLX0KLQotYm9v
bCBJbnB1dFR5cGU6OmlzRW1haWxGaWVsZCgpIGNvbnN0Citib29sIElucHV0VHlwZTo6aXNUZXh0
VHlwZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIHN3aXRjaCAobV90eXBlKSB7
CisgICAgY2FzZSBUeXBlOjpFbWFpbDoKKyAgICBjYXNlIFR5cGU6OlBhc3N3b3JkOgorICAgIGNh
c2UgVHlwZTo6U2VhcmNoOgorICAgIGNhc2UgVHlwZTo6VGVsZXBob25lOgorICAgIGNhc2UgVHlw
ZTo6VGV4dDoKKyAgICBjYXNlIFR5cGU6OlVSTDoKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
ZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KIH0KIAotYm9vbCBJbnB1dFR5
cGU6OmlzRmlsZVVwbG9hZCgpIGNvbnN0Citib29sIElucHV0VHlwZTo6aXNUZXh0RmllbGQoKSBj
b25zdAogewotICAgIHJldHVybiBmYWxzZTsKKyAgICBzd2l0Y2ggKG1fdHlwZSkgeworICAgIGNh
c2UgVHlwZTo6RW1haWw6CisgICAgY2FzZSBUeXBlOjpOdW1iZXI6CisgICAgY2FzZSBUeXBlOjpQ
YXNzd29yZDoKKyAgICBjYXNlIFR5cGU6OlNlYXJjaDoKKyAgICBjYXNlIFR5cGU6OlRlbGVwaG9u
ZToKKyAgICBjYXNlIFR5cGU6OlRleHQ6CisgICAgY2FzZSBUeXBlOjpVUkw6CisgICAgICAgIHJl
dHVybiB0cnVlOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiB9
CiAKLWJvb2wgSW5wdXRUeXBlOjppc0ltYWdlQnV0dG9uKCkgY29uc3QKK2Jvb2wgSW5wdXRUeXBl
Ojppc1RleHRCdXR0b24oKSBjb25zdAogewotICAgIHJldHVybiBmYWxzZTsKKyAgICBzd2l0Y2gg
KG1fdHlwZSkgeworICAgIGNhc2UgVHlwZTo6QnV0dG9uOgorICAgIGNhc2UgVHlwZTo6UmVzZXQ6
CisgICAgY2FzZSBUeXBlOjpTdWJtaXQ6CisgICAgICAgIHJldHVybiB0cnVlOworICAgIGRlZmF1
bHQ6CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiB9CiAKIGJvb2wgSW5wdXRUeXBlOjpp
c0ludGVyYWN0aXZlQ29udGVudCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIHRydWU7CisgICAgcmV0
dXJuIG1fdHlwZSAhPSBUeXBlOjpIaWRkZW47CiB9CiAKIGJvb2wgSW5wdXRUeXBlOjpzdXBwb3J0
TGFiZWxzKCkgY29uc3QKIHsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotYm9vbCBJbnB1dFR5cGU6
OmlzTnVtYmVyRmllbGQoKSBjb25zdAotewotICAgIHJldHVybiBmYWxzZTsKLX0KLQotYm9vbCBJ
bnB1dFR5cGU6OmlzU3VibWl0QnV0dG9uKCkgY29uc3QKLXsKLSAgICByZXR1cm4gZmFsc2U7Ci19
Ci0KLWJvb2wgSW5wdXRUeXBlOjppc1RlbGVwaG9uZUZpZWxkKCkgY29uc3QKLXsKLSAgICByZXR1
cm4gZmFsc2U7Ci19Ci0KLWJvb2wgSW5wdXRUeXBlOjppc1VSTEZpZWxkKCkgY29uc3QKLXsKLSAg
ICByZXR1cm4gZmFsc2U7Ci19Ci0KLWJvb2wgSW5wdXRUeXBlOjppc0RhdGVGaWVsZCgpIGNvbnN0
Ci17Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi1ib29sIElucHV0VHlwZTo6aXNEYXRlVGltZUZp
ZWxkKCkgY29uc3QKLXsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLWJvb2wgSW5wdXRUeXBlOjpp
c0RhdGVUaW1lTG9jYWxGaWVsZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi1i
b29sIElucHV0VHlwZTo6aXNNb250aEZpZWxkKCkgY29uc3QKLXsKLSAgICByZXR1cm4gZmFsc2U7
Ci19Ci0KLWJvb2wgSW5wdXRUeXBlOjppc1RpbWVGaWVsZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJu
IGZhbHNlOwotfQotCi1ib29sIElucHV0VHlwZTo6aXNXZWVrRmllbGQoKSBjb25zdAotewotICAg
IHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gbV90eXBlICE9IFR5cGU6OkhpZGRlbjsKIH0KIAog
Ym9vbCBJbnB1dFR5cGU6OmlzRW51bWVyYXRhYmxlKCkKIHsKLSAgICByZXR1cm4gdHJ1ZTsKKyAg
ICByZXR1cm4gbV90eXBlICE9IFR5cGU6OkltYWdlOwogfQogCiBib29sIElucHV0VHlwZTo6aXND
aGVja2FibGUoKQogewotICAgIHJldHVybiBmYWxzZTsKKyAgICBzd2l0Y2ggKG1fdHlwZSkgewor
ICAgIGNhc2UgVHlwZTo6Q2hlY2tib3g6CisgICAgY2FzZSBUeXBlOjpSYWRpbzoKKyAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0K
IH0KIAogLy8gRG8gbm90IHVzZSB2aXJ0dWFsIGZ1bmN0aW9uIGZvciBwZXJmb3JtYW5jZSByZWFz
b24uCkBAIC05NTAsMTEgKzg4OSw2IEBAIGJvb2wgSW5wdXRUeXBlOjppc1N0ZXBwYWJsZSgpIGNv
bnN0CiAgICAgfQogfQogCi1ib29sIElucHV0VHlwZTo6aXNDb2xvckNvbnRyb2woKSBjb25zdAot
ewotICAgIHJldHVybiBmYWxzZTsKLX0KLQogYm9vbCBJbnB1dFR5cGU6OnNob3VsZFJlc3BlY3RI
ZWlnaHRBbmRXaWR0aEF0dHJpYnV0ZXMoKQogewogICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0lucHV0VHlwZS5oCmluZGV4IDNhZTg1ZWVhNGIzYjg2ZTE2ZTNiZGVjZWMwZTI0MmVlYThlOWZl
ODcuLmE4NmE0YmMyZDdmZTE1MzcxZGRjMWQ0ZDJiNDI2YzU5MGRmZWRmY2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9JbnB1dFR5cGUuaApAQCAtMTE1LDMxICsxMTUsMzMgQEAgcHVibGljOgogICAgIC8vIGluZmxl
eGlibGUgYmVjYXVzZSBpdCdzIGhhcmRlciB0byBhZGQgbmV3IGlucHV0IHR5cGVzIGlmIHRoZXJl
IGlzCiAgICAgLy8gc2NhdHRlcmVkIGNvZGUgd2l0aCBzcGVjaWFsIGNhc2VzIGZvciB2YXJpb3Vz
IHR5cGVzLgogCi0gICAgdmlydHVhbCBib29sIGlzQ2hlY2tib3goKSBjb25zdDsKLSAgICB2aXJ0
dWFsIGJvb2wgaXNDb2xvckNvbnRyb2woKSBjb25zdDsKLSAgICB2aXJ0dWFsIGJvb2wgaXNEYXRl
RmllbGQoKSBjb25zdDsKLSAgICB2aXJ0dWFsIGJvb2wgaXNEYXRlVGltZUZpZWxkKCkgY29uc3Q7
Ci0gICAgdmlydHVhbCBib29sIGlzRGF0ZVRpbWVMb2NhbEZpZWxkKCkgY29uc3Q7Ci0gICAgdmly
dHVhbCBib29sIGlzRW1haWxGaWVsZCgpIGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCBpc0ZpbGVV
cGxvYWQoKSBjb25zdDsKLSAgICB2aXJ0dWFsIGJvb2wgaXNIaWRkZW5UeXBlKCkgY29uc3Q7Ci0g
ICAgdmlydHVhbCBib29sIGlzSW1hZ2VCdXR0b24oKSBjb25zdDsKLSAgICB2aXJ0dWFsIGJvb2wg
aXNJbnRlcmFjdGl2ZUNvbnRlbnQoKSBjb25zdDsKLSAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydExh
YmVscygpIGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCBpc01vbnRoRmllbGQoKSBjb25zdDsKLSAg
ICB2aXJ0dWFsIGJvb2wgaXNOdW1iZXJGaWVsZCgpIGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCBp
c1Bhc3N3b3JkRmllbGQoKSBjb25zdDsKLSAgICB2aXJ0dWFsIGJvb2wgaXNSYWRpb0J1dHRvbigp
IGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCBpc1JhbmdlQ29udHJvbCgpIGNvbnN0OwotICAgIHZp
cnR1YWwgYm9vbCBpc1NlYXJjaEZpZWxkKCkgY29uc3Q7Ci0gICAgdmlydHVhbCBib29sIGlzU3Vi
bWl0QnV0dG9uKCkgY29uc3Q7Ci0gICAgdmlydHVhbCBib29sIGlzVGVsZXBob25lRmllbGQoKSBj
b25zdDsKLSAgICB2aXJ0dWFsIGJvb2wgaXNUZXh0QnV0dG9uKCkgY29uc3Q7Ci0gICAgdmlydHVh
bCBib29sIGlzVGV4dEZpZWxkKCkgY29uc3Q7Ci0gICAgdmlydHVhbCBib29sIGlzVGV4dFR5cGUo
KSBjb25zdDsKLSAgICB2aXJ0dWFsIGJvb2wgaXNUaW1lRmllbGQoKSBjb25zdDsKLSAgICB2aXJ0
dWFsIGJvb2wgaXNVUkxGaWVsZCgpIGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCBpc1dlZWtGaWVs
ZCgpIGNvbnN0OworICAgIGJvb2wgaXNDaGVja2JveCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9
PSBUeXBlOjpDaGVja2JveDsgfQorICAgIGJvb2wgaXNDb2xvckNvbnRyb2woKSBjb25zdCB7IHJl
dHVybiBtX3R5cGUgPT0gVHlwZTo6Q29sb3I7IH0KKyAgICBib29sIGlzRGF0ZUZpZWxkKCkgY29u
c3QgeyByZXR1cm4gbV90eXBlID09IFR5cGU6OkRhdGU7IH0KKyAgICBib29sIGlzRGF0ZVRpbWVG
aWVsZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgYm9vbCBpc0RhdGVUaW1lTG9jYWxG
aWVsZCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBUeXBlOjpEYXRlVGltZUxvY2FsOyB9Cisg
ICAgYm9vbCBpc0VtYWlsRmllbGQoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gVHlwZTo6RW1h
aWw7IH0KKyAgICBib29sIGlzRmlsZVVwbG9hZCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBU
eXBlOjpGaWxlOyB9CisgICAgYm9vbCBpc0hpZGRlblR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5
cGUgPT0gVHlwZTo6SGlkZGVuOyB9CisgICAgYm9vbCBpc0ltYWdlQnV0dG9uKCkgY29uc3QgeyBy
ZXR1cm4gbV90eXBlID09IFR5cGU6OkltYWdlOyB9CisgICAgYm9vbCBpc01vbnRoRmllbGQoKSBj
b25zdCB7IHJldHVybiBtX3R5cGUgPT0gVHlwZTo6TW9udGg7IH0KKyAgICBib29sIGlzTnVtYmVy
RmllbGQoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gVHlwZTo6TnVtYmVyOyB9CisgICAgYm9v
bCBpc1Bhc3N3b3JkRmllbGQoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gVHlwZTo6UGFzc3dv
cmQ7IH0KKyAgICBib29sIGlzUmFkaW9CdXR0b24oKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0g
VHlwZTo6UmFkaW87IH0KKyAgICBib29sIGlzUmFuZ2VDb250cm9sKCkgY29uc3QgeyByZXR1cm4g
bV90eXBlID09IFR5cGU6OlJhbmdlOyB9CisgICAgYm9vbCBpc1NlYXJjaEZpZWxkKCkgY29uc3Qg
eyByZXR1cm4gbV90eXBlID09IFR5cGU6OlNlYXJjaDsgfQorICAgIGJvb2wgaXNTdWJtaXRCdXR0
b24oKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gVHlwZTo6U3VibWl0OyB9CisgICAgYm9vbCBp
c1RlbGVwaG9uZUZpZWxkKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IFR5cGU6OlRlbGVwaG9u
ZTsgfQorICAgIGJvb2wgaXNUaW1lRmllbGQoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gVHlw
ZTo6VGltZTsgfQorICAgIGJvb2wgaXNVUkxGaWVsZCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9
PSBUeXBlOjpVUkw7IH0KKyAgICBib29sIGlzV2Vla0ZpZWxkKCkgY29uc3QgeyByZXR1cm4gbV90
eXBlID09IFR5cGU6OlVSTDsgfQorCisgICAgYm9vbCBpc1RleHRCdXR0b24oKSBjb25zdDsKKyAg
ICBib29sIGlzVGV4dEZpZWxkKCkgY29uc3Q7CisgICAgYm9vbCBpc1RleHRUeXBlKCkgY29uc3Q7
CisKKyAgICBib29sIGlzSW50ZXJhY3RpdmVDb250ZW50KCkgY29uc3Q7CisgICAgYm9vbCBzdXBw
b3J0TGFiZWxzKCkgY29uc3Q7CiAKICAgICAvLyBGb3JtIHZhbHVlIGZ1bmN0aW9ucy4KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmNwcAppbmRleCAzNWU0OThhNDcwNzkzMTI1ODBk
OTFhOWRhY2E5YzhmMDBiZmFkNGY4Li5kZDk0MGViOTM2ZGEwNjc0NmI5ZmRlMzI5ZmIxNGJjYjkx
M2VkYTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmNwcApAQCAtMTI3LDEx
ICsxMjcsNiBAQCBPcHRpb25hbDxEYXRlQ29tcG9uZW50cz4gTW9udGhJbnB1dFR5cGU6OnNldE1p
bGxpc2Vjb25kVG9EYXRlQ29tcG9uZW50cyhkb3VibGUgdgogICAgIHJldHVybiBEYXRlQ29tcG9u
ZW50czo6ZnJvbU1vbnRoc1NpbmNlRXBvY2godmFsdWUpOwogfQogCi1ib29sIE1vbnRoSW5wdXRU
eXBlOjppc01vbnRoRmllbGQoKSBjb25zdAotewotICAgIHJldHVybiB0cnVlOwotfQotCiB2b2lk
IE1vbnRoSW5wdXRUeXBlOjpoYW5kbGVET01BY3RpdmF0ZUV2ZW50KEV2ZW50JikKIHsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuaAppbmRleCA0ZTdhYmE2ZDU3ZTFkNDExMmIyMmY1
NjFkNzI1YmEwMTA1ODk4NjRlLi5kMWU1YTFhYThjMDY4NzAxZmI5ZTU4MzM3M2I5NWZkNzVlNmE1
ZWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5oCkBAIC01NCw3ICs1NCw2IEBA
IHByaXZhdGU6CiAgICAgU3RlcFJhbmdlIGNyZWF0ZVN0ZXBSYW5nZShBbnlTdGVwSGFuZGxpbmcp
IGNvbnN0IG92ZXJyaWRlOwogICAgIE9wdGlvbmFsPERhdGVDb21wb25lbnRzPiBwYXJzZVRvRGF0
ZUNvbXBvbmVudHMoY29uc3QgU3RyaW5nVmlldyYpIGNvbnN0IG92ZXJyaWRlOwogICAgIE9wdGlv
bmFsPERhdGVDb21wb25lbnRzPiBzZXRNaWxsaXNlY29uZFRvRGF0ZUNvbXBvbmVudHMoZG91Ymxl
KSBjb25zdCBvdmVycmlkZTsKLSAgICBib29sIGlzTW9udGhGaWVsZCgpIGNvbnN0IG92ZXJyaWRl
OwogICAgIHZvaWQgaGFuZGxlRE9NQWN0aXZhdGVFdmVudChFdmVudCYpIG92ZXJyaWRlOwogCiAg
ICAgYm9vbCBpc1ZhbGlkRm9ybWF0KE9wdGlvblNldDxEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25S
ZXN1bHRzPikgY29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL051
bWJlcklucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5j
cHAKaW5kZXggZTY3YjQ4ZmZkMWZiZWUzN2NkNTkwM2QwZTQyNDA0ZWY3MjdkM2Y5NC4uNzE0M2Y0
YzUxZmE0NGM2NzMwY2UxYmY1ZDI3MGRlZjRkYjFjYzA1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
TnVtYmVySW5wdXRUeXBlLmNwcApAQCAtMjkyLDExICsyOTIsNiBAQCBib29sIE51bWJlcklucHV0
VHlwZTo6c3VwcG9ydHNQbGFjZWhvbGRlcigpIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
LWJvb2wgTnVtYmVySW5wdXRUeXBlOjppc051bWJlckZpZWxkKCkgY29uc3QKLXsKLSAgICByZXR1
cm4gdHJ1ZTsKLX0KLQogdm9pZCBOdW1iZXJJbnB1dFR5cGU6OmF0dHJpYnV0ZUNoYW5nZWQoY29u
c3QgUXVhbGlmaWVkTmFtZSYgbmFtZSkKIHsKICAgICBBU1NFUlQoZWxlbWVudCgpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL051bWJlcklucHV0VHlwZS5oCmluZGV4IGIxZGFkMGNkOGZiMmZmNDM5ZWZmM2Mz
YjhiNDBhMWYyM2UwMjg3YTEuLjI0NGE5N2MzOGQyZjEzYWJmODIxZjU3ZGFjODgzZTNkNGQ3ZjQ5
NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuaApAQCAtNjIsNyArNjIsNiBA
QCBwcml2YXRlOgogICAgIGJvb2wgaGFzQmFkSW5wdXQoKSBjb25zdCBmaW5hbDsKICAgICBTdHJp
bmcgYmFkSW5wdXRUZXh0KCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBzdXBwb3J0c1BsYWNlaG9s
ZGVyKCkgY29uc3QgZmluYWw7Ci0gICAgYm9vbCBpc051bWJlckZpZWxkKCkgY29uc3QgZmluYWw7
CiAgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBmaW5hbDsK
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGFzc3dvcmRJbnB1dFR5cGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9QYXNzd29yZElucHV0VHlwZS5jcHAKaW5kZXggN2M4
YTliMDU0MzBhODY4NWU1ZjQ4NmUwZjRhMDBmZWYyNzJjOGVjYS4uMmEwM2Y2NGZhMTNhOTFkZjU4
MzhkYWJlZjUzMzhhZTYwMWU4NWU2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Q
YXNzd29yZElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9QYXNzd29yZElu
cHV0VHlwZS5jcHAKQEAgLTg2LDkgKzg2LDQgQEAgYm9vbCBQYXNzd29yZElucHV0VHlwZTo6c2hv
dWxkUmVzcGVjdExpc3RBdHRyaWJ1dGUoKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBQ
YXNzd29yZElucHV0VHlwZTo6aXNQYXNzd29yZEZpZWxkKCkgY29uc3QKLXsKLSAgICByZXR1cm4g
dHJ1ZTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9QYXNzd29yZElucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9QYXNz
d29yZElucHV0VHlwZS5oCmluZGV4IDNjODc0MDEzZDFmMjdkMGZhYWEwZmM2ZWFhMGRlOGJhZmMy
NTdkNDQuLmI4MmUzOWU3Y2NkZjQ5MjYwODNhYjVjODAxZjI5Y2I1NjJlNDE4NzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGFzc3dvcmRJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1Bhc3N3b3JkSW5wdXRUeXBlLmgKQEAgLTQ3LDcgKzQ3LDYgQEAgcHJpdmF0
ZToKICAgICBib29sIHNob3VsZFVzZUlucHV0TWV0aG9kKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAg
Ym9vbCBzaG91bGRSZXNldE9uRG9jdW1lbnRBY3RpdmF0aW9uKCkgb3ZlcnJpZGU7CiAgICAgYm9v
bCBzaG91bGRSZXNwZWN0TGlzdEF0dHJpYnV0ZSgpIG92ZXJyaWRlOwotICAgIGJvb2wgaXNQYXNz
d29yZEZpZWxkKCkgY29uc3Qgb3ZlcnJpZGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhZGlvSW5wdXRUeXBlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvUmFkaW9JbnB1dFR5cGUuY3BwCmluZGV4IDlkODljNmZiNjkxNjBh
OGUxNDgwZjBiZWZmMTk3MGRjMDliNjcwN2EuLjI1YjRmZGJhZjRlMWYxZTIyMzgzZGM2ZWQ2MDZi
ODc0OTIyZTdjMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFkaW9JbnB1dFR5
cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFkaW9JbnB1dFR5cGUuY3BwCkBAIC0x
ODAsMTEgKzE4MCw2IEBAIHZvaWQgUmFkaW9JbnB1dFR5cGU6OmRpZERpc3BhdGNoQ2xpY2soRXZl
bnQmIGV2ZW50LCBjb25zdCBJbnB1dEVsZW1lbnRDbGlja1N0YXRlCiAgICAgZXZlbnQuc2V0RGVm
YXVsdEhhbmRsZWQoKTsKIH0KIAotYm9vbCBSYWRpb0lucHV0VHlwZTo6aXNSYWRpb0J1dHRvbigp
IGNvbnN0Ci17Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KIGJvb2wgUmFkaW9JbnB1dFR5cGU6Om1h
dGNoZXNJbmRldGVybWluYXRlUHNldWRvQ2xhc3MoKSBjb25zdAogewogICAgIEFTU0VSVChlbGVt
ZW50KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYWRpb0lucHV0VHlwZS5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYWRpb0lucHV0VHlwZS5oCmluZGV4IDEzZTk1ZTlhNWJk
MmI5YTk0Yjg1YjUxMGViOWUzNmFjMGIwOGEyY2QuLjQwY2VhOGZmZWZhMzhiMjg3ZTU3MGZmMDRh
NjFjZmFkMWMwYTlkMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFkaW9JbnB1
dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhZGlvSW5wdXRUeXBlLmgKQEAgLTUx
LDcgKzUxLDYgQEAgcHJpdmF0ZToKICAgICBib29sIHNob3VsZFNlbmRDaGFuZ2VFdmVudEFmdGVy
Q2hlY2tlZENoYW5nZWQoKSBmaW5hbDsKICAgICB2b2lkIHdpbGxEaXNwYXRjaENsaWNrKElucHV0
RWxlbWVudENsaWNrU3RhdGUmKSBmaW5hbDsKICAgICB2b2lkIGRpZERpc3BhdGNoQ2xpY2soRXZl
bnQmLCBjb25zdCBJbnB1dEVsZW1lbnRDbGlja1N0YXRlJikgZmluYWw7Ci0gICAgYm9vbCBpc1Jh
ZGlvQnV0dG9uKCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBtYXRjaGVzSW5kZXRlcm1pbmF0ZVBz
ZXVkb0NsYXNzKCkgY29uc3QgZmluYWw7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1
dFR5cGUuY3BwCmluZGV4IDQ1OTZhNzAxOGVkMDkwYTVmNjEzNGJjNGYxYzA1Nzc5NzJjOGFlNDku
LmJmOGI4MTZjYjMwZjUyOWFlYTgwY2MyZGE4MzVkMDJjYWQyYWVhNjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCkBAIC04NCwxMSArODQsNiBAQCBSYW5nZUlucHV0VHlw
ZTo6UmFuZ2VJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKIHsKIH0KIAotYm9v
bCBSYW5nZUlucHV0VHlwZTo6aXNSYW5nZUNvbnRyb2woKSBjb25zdAotewotICAgIHJldHVybiB0
cnVlOwotfQotCiBjb25zdCBBdG9tU3RyaW5nJiBSYW5nZUlucHV0VHlwZTo6Zm9ybUNvbnRyb2xU
eXBlKCkgY29uc3QKIHsKICAgICByZXR1cm4gSW5wdXRUeXBlTmFtZXM6OnJhbmdlKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmgKaW5kZXggMzM4NGM2YzI2NWY5N2ZmOWY1NjNjZDhm
OTAwNDQxOTAzMzM5NjA0Yy4uYzEwNDE1ZjgwZjMwYTdlZjA1NjY3ZWRlMTRiMWQ0Yjk3MzhjYjVi
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuaApAQCAtNDMsNyArNDMsNiBAQCBw
dWJsaWM6CiAgICAgZXhwbGljaXQgUmFuZ2VJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYpOwog
CiBwcml2YXRlOgotICAgIGJvb2wgaXNSYW5nZUNvbnRyb2woKSBjb25zdCBmaW5hbDsKICAgICBj
b25zdCBBdG9tU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBmaW5hbDsKICAgICBkb3Vi
bGUgdmFsdWVBc0RvdWJsZSgpIGNvbnN0IGZpbmFsOwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNl
dFZhbHVlQXNEZWNpbWFsKGNvbnN0IERlY2ltYWwmLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yKSBj
b25zdCBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmVzZXRJbnB1dFR5
cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SZXNldElucHV0VHlwZS5jcHAKaW5kZXggZjBj
ZGJlN2Y4YWQ3YTA3OTliOTM4YzM1NDk3OGQyYjkzOWQ2MDA0My4uMjUyMjBlMTM1YjBmZDE2ODNj
NWU5ZDNjYTg1ODU0NTc5N2Y5ZjU0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9S
ZXNldElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SZXNldElucHV0VHlw
ZS5jcHAKQEAgLTY0LDkgKzY0LDQgQEAgU3RyaW5nIFJlc2V0SW5wdXRUeXBlOjpkZWZhdWx0VmFs
dWUoKSBjb25zdAogICAgIHJldHVybiByZXNldEJ1dHRvbkRlZmF1bHRMYWJlbCgpOwogfQogCi1i
b29sIFJlc2V0SW5wdXRUeXBlOjppc1RleHRCdXR0b24oKSBjb25zdAotewotICAgIHJldHVybiB0
cnVlOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL1Jlc2V0SW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1Jlc2V0SW5w
dXRUeXBlLmgKaW5kZXggYTc3NjgxMmQ5YzExYTE5ODEzZTUwZGM5ZmNiZGE5ZDBlYmYwMTg5ZS4u
ODhiN2Q0ZjZlZDRhZjYzNGQ3ZjUyZjQ5Y2EzMDE5NGU4M2E0Yzg4YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9SZXNldElucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvUmVzZXRJbnB1dFR5cGUuaApAQCAtNDQsNyArNDQsNiBAQCBwcml2YXRlOgogICAgIGJvb2wg
c3VwcG9ydHNWYWxpZGF0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBoYW5kbGVET01B
Y3RpdmF0ZUV2ZW50KEV2ZW50Jikgb3ZlcnJpZGU7CiAgICAgU3RyaW5nIGRlZmF1bHRWYWx1ZSgp
IGNvbnN0IG92ZXJyaWRlOwotICAgIGJvb2wgaXNUZXh0QnV0dG9uKCkgY29uc3Qgb3ZlcnJpZGU7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1NlYXJjaElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1NlYXJjaElu
cHV0VHlwZS5jcHAKaW5kZXggYTk0OTI5M2U1MThmYjZjMmVjZjhhMDUxMzczZjYxMmY3ZTRkZmIw
MS4uN2U1NzJjNWFlZDk5N2ZlODAwMjYwMDgyYzlhZjQyZWEwODZiM2RiNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvU2VhcmNoSW5wdXRUeXBlLmNwcApAQCAtOTcsMTEgKzk3LDYgQEAgY29uc3QgQXRv
bVN0cmluZyYgU2VhcmNoSW5wdXRUeXBlOjpmb3JtQ29udHJvbFR5cGUoKSBjb25zdAogICAgIHJl
dHVybiBJbnB1dFR5cGVOYW1lczo6c2VhcmNoKCk7CiB9CiAKLWJvb2wgU2VhcmNoSW5wdXRUeXBl
Ojppc1NlYXJjaEZpZWxkKCkgY29uc3QKLXsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQogYm9vbCBT
ZWFyY2hJbnB1dFR5cGU6Om5lZWRzQ29udGFpbmVyKCkgY29uc3QKIHsKICAgICByZXR1cm4gdHJ1
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvU2VhcmNoSW5wdXRUeXBlLmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL1NlYXJjaElucHV0VHlwZS5oCmluZGV4IGI3OTJkZDA2YTMxOTIx
Mjg4NzBhMWJkOGY1ZTJiMWIzOGI1MDM4ZWMuLjMzMTgzM2RkNmQ4NzJkZDA3MGY1N2U4NDdlMWNh
MDRlMzEyNDgyZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvU2VhcmNoSW5wdXRU
eXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5cGUuaApAQCAtNTAs
NyArNTAsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFs
aWZpZWROYW1lJikgZmluYWw7CiAgICAgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUlu
cHV0UmVuZGVyZXIoUmVuZGVyU3R5bGUmJikgZmluYWw7CiAgICAgY29uc3QgQXRvbVN0cmluZyYg
Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QgZmluYWw7Ci0gICAgYm9vbCBpc1NlYXJjaEZpZWxkKCkg
Y29uc3QgZmluYWw7CiAgICAgYm9vbCBuZWVkc0NvbnRhaW5lcigpIGNvbnN0IGZpbmFsOwogICAg
IHZvaWQgY3JlYXRlU2hhZG93U3VidHJlZUFuZFVwZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0YWJp
bGl0eShDb250YWluZXJOb2RlOjpDaGlsZENoYW5nZTo6U291cmNlLCBib29sKSBmaW5hbDsKICAg
ICB2b2lkIGRlc3Ryb3lTaGFkb3dTdWJ0cmVlKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1N1Ym1pdElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1N1
Ym1pdElucHV0VHlwZS5jcHAKaW5kZXggOTg1YWY2NjcyZGNhODM2ZjIyNjFhMGEzZDczNmM2Mjlh
ZGI4NDUzYi4uZDg1MWM4NWI2M2M0YWRkYTExMjNkOWQ5MzA4MWJlNmEzODQ5MGU1YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9TdWJtaXRJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvU3VibWl0SW5wdXRUeXBlLmNwcApAQCAtOTAsMTQgKzkwLDQgQEAgU3Ry
aW5nIFN1Ym1pdElucHV0VHlwZTo6ZGVmYXVsdFZhbHVlKCkgY29uc3QKICAgICByZXR1cm4gc3Vi
bWl0QnV0dG9uRGVmYXVsdExhYmVsKCk7CiB9CiAKLWJvb2wgU3VibWl0SW5wdXRUeXBlOjppc1N1
Ym1pdEJ1dHRvbigpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLWJvb2wgU3VibWl0
SW5wdXRUeXBlOjppc1RleHRCdXR0b24oKSBjb25zdAotewotICAgIHJldHVybiB0cnVlOwotfQot
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L1N1Ym1pdElucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9TdWJtaXRJbnB1dFR5cGUu
aAppbmRleCA5NzBiMTY0Mjk4ZjM3Y2U0YmZlMjgyZjFmMWNhNmM5YTE2ZTM5M2Y4Li4zM2M4M2U1
NGY2ZjczNzE2Yjc5NWVlMmRmNDhkZDJkY2ExNzQ3ZWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL1N1Ym1pdElucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvU3Vi
bWl0SW5wdXRUeXBlLmgKQEAgLTQ2LDggKzQ2LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGhhbmRs
ZURPTUFjdGl2YXRlRXZlbnQoRXZlbnQmKSBvdmVycmlkZTsKICAgICBib29sIGNhbkJlU3VjY2Vz
c2Z1bFN1Ym1pdEJ1dHRvbigpIG92ZXJyaWRlOwogICAgIFN0cmluZyBkZWZhdWx0VmFsdWUoKSBj
b25zdCBvdmVycmlkZTsKLSAgICBib29sIGlzU3VibWl0QnV0dG9uKCkgY29uc3Qgb3ZlcnJpZGU7
Ci0gICAgYm9vbCBpc1RleHRCdXR0b24oKSBjb25zdCBvdmVycmlkZTsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGVsZXBob25l
SW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGVsZXBob25lSW5wdXRUeXBlLmNw
cAppbmRleCA4MjhkMzBmYjllNzhkMDYwMjllM2E3OTRmYTdiMGQ3MzMyYjc4ZjA1Li40YzY4ZjFm
NWVlMmFlMmMyYzEwYWZhMGE0NDUwNjVjN2FiNmM2MDQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL1RlbGVwaG9uZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9UZWxlcGhvbmVJbnB1dFR5cGUuY3BwCkBAIC00MSw5ICs0MSw0IEBAIGNvbnN0IEF0b21TdHJp
bmcmIFRlbGVwaG9uZUlucHV0VHlwZTo6Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QKICAgICByZXR1
cm4gSW5wdXRUeXBlTmFtZXM6OnRlbGVwaG9uZSgpOwogfQogCi1ib29sIFRlbGVwaG9uZUlucHV0
VHlwZTo6aXNUZWxlcGhvbmVGaWVsZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0K
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
VGVsZXBob25lSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RlbGVwaG9uZUlucHV0
VHlwZS5oCmluZGV4IDRkZTdmZDJiZGM5YzlhN2RjODYxNTNjODYyZjU5NzZkODdkZDQxY2MuLjkx
OTQ1ZjcyNTMzNWQ1ZjE2NDIxNDkxZTY5MTRkYzg2MzUwYWVkZmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvVGVsZXBob25lSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9UZWxlcGhvbmVJbnB1dFR5cGUuaApAQCAtNDEsNyArNDEsNiBAQCBwdWJsaWM6CiAKIHBy
aXZhdGU6CiAgICAgY29uc3QgQXRvbVN0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3Qgb3Zl
cnJpZGU7Ci0gICAgYm9vbCBpc1RlbGVwaG9uZUZpZWxkKCkgY29uc3Qgb3ZlcnJpZGU7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L1RleHRGaWVsZElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElu
cHV0VHlwZS5jcHAKaW5kZXggMDM5OWFiNzRhNzhhNzlhZDljMGU5NWY2NTYzNWIzNmY2Mzg4NTgz
OC4uM2NmZDdmMjYzM2RiMGE0NDVjYzU2MTI0NjFlNWRkY2NhYzRlNDhlMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcApAQCAtMTAxLDExICsxMDEsNiBAQCBi
b29sIFRleHRGaWVsZElucHV0VHlwZTo6aXNNb3VzZUZvY3VzYWJsZSgpIGNvbnN0CiAgICAgcmV0
dXJuIGVsZW1lbnQoKS0+aXNUZXh0Rm9ybUNvbnRyb2xGb2N1c2FibGUoKTsKIH0KIAotYm9vbCBU
ZXh0RmllbGRJbnB1dFR5cGU6OmlzVGV4dEZpZWxkKCkgY29uc3QKLXsKLSAgICByZXR1cm4gdHJ1
ZTsKLX0KLQogYm9vbCBUZXh0RmllbGRJbnB1dFR5cGU6OmlzRW1wdHlWYWx1ZSgpIGNvbnN0CiB7
CiAgICAgYXV0byBpbm5lclRleHQgPSBpbm5lclRleHRFbGVtZW50KCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuaAppbmRleCBlODQ3MmM0Yjk1ZWQ1YzgyOWRjODQwM2Qx
OGYxYTVkYmY2ZTEwY2VmLi43OGFmYTRhZjlhNTExNzU5YjQxOGFhYTg3MTIxNjIxYzc0OGNhNjQ1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmgKQEAgLTg5LDcgKzg5
LDYgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICBib29sIGlzS2V5Ym9hcmRGb2N1c2FibGUo
S2V5Ym9hcmRFdmVudCopIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgaXNNb3VzZUZvY3VzYWJsZSgp
IGNvbnN0IGZpbmFsOwotICAgIGJvb2wgaXNUZXh0RmllbGQoKSBjb25zdCBmaW5hbDsKICAgICBi
b29sIGlzRW1wdHlWYWx1ZSgpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgaGFuZGxlQmVmb3JlVGV4
dEluc2VydGVkRXZlbnQoQmVmb3JlVGV4dEluc2VydGVkRXZlbnQmKSBmaW5hbDsKICAgICB2b2lk
IGZvcndhcmRFdmVudChFdmVudCYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9UaW1lSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlw
ZS5jcHAKaW5kZXggZmRmY2U1YWRiZjg5Y2FkZWM1YmZjNTExMDE5MjVhNmQ5YmJmMGE3Yi4uNzAx
YWJiMDAwZGRlMDg3N2I3N2RmYjZlNzlhMzY5ZDU1Zjc3YjlmZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L1RpbWVJbnB1dFR5cGUuY3BwCkBAIC0xMDIsMTEgKzEwMiw2IEBAIE9wdGlvbmFsPERhdGVDb21w
b25lbnRzPiBUaW1lSW5wdXRUeXBlOjpzZXRNaWxsaXNlY29uZFRvRGF0ZUNvbXBvbmVudHMoZG91
YmxlIHZhCiAgICAgcmV0dXJuIERhdGVDb21wb25lbnRzOjpmcm9tTWlsbGlzZWNvbmRzU2luY2VN
aWRuaWdodCh2YWx1ZSk7CiB9CiAKLWJvb2wgVGltZUlucHV0VHlwZTo6aXNUaW1lRmllbGQoKSBj
b25zdAotewotICAgIHJldHVybiB0cnVlOwotfQotCiB2b2lkIFRpbWVJbnB1dFR5cGU6OmhhbmRs
ZURPTUFjdGl2YXRlRXZlbnQoRXZlbnQmKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9UaW1lSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5
cGUuaAppbmRleCA3MDliMzc0MTAwMmVlMzAzMTY2OGRmMWU0NDJkNjEyMTliMDkzMzFkLi5hM2Jl
ZDcxMWRlZDhlZDJmNGNjMjU4ZjhmODViNTkyNTFkNjY2ZGVlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1Rp
bWVJbnB1dFR5cGUuaApAQCAtNDgsNyArNDgsNiBAQCBwcml2YXRlOgogICAgIFN0ZXBSYW5nZSBj
cmVhdGVTdGVwUmFuZ2UoQW55U3RlcEhhbmRsaW5nKSBjb25zdCBvdmVycmlkZTsKICAgICBPcHRp
b25hbDxEYXRlQ29tcG9uZW50cz4gcGFyc2VUb0RhdGVDb21wb25lbnRzKGNvbnN0IFN0cmluZ1Zp
ZXcmKSBjb25zdCBvdmVycmlkZTsKICAgICBPcHRpb25hbDxEYXRlQ29tcG9uZW50cz4gc2V0TWls
bGlzZWNvbmRUb0RhdGVDb21wb25lbnRzKGRvdWJsZSkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgYm9v
bCBpc1RpbWVGaWVsZCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgaGFuZGxlRE9NQWN0aXZh
dGVFdmVudChFdmVudCYpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBpc1ZhbGlkRm9ybWF0KE9wdGlv
blNldDxEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzPikgY29uc3QgZmluYWw7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1VSTElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL1VSTElucHV0VHlwZS5jcHAKaW5kZXggNzY4MThhMjYwOThlNzVjYzg4ZmVmNzlm
ODUxYTA4YmJjOWNhOWU2ZC4uMmMyN2UyMjllMzkyNmE3ZjYzZGYzNjc0MzE4OTVlYjUxOTBiNzkw
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9VUkxJbnB1dFR5cGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvVVJMSW5wdXRUeXBlLmNwcApAQCAtNjEsMTEgKzYxLDYgQEAg
U3RyaW5nIFVSTElucHV0VHlwZTo6dHlwZU1pc21hdGNoVGV4dCgpIGNvbnN0CiAgICAgcmV0dXJu
IHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoRm9yVVJMVGV4dCgpOwogfQogCi1ib29sIFVS
TElucHV0VHlwZTo6aXNVUkxGaWVsZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0K
IFN0cmluZyBVUkxJbnB1dFR5cGU6OnNhbml0aXplVmFsdWUoY29uc3QgU3RyaW5nJiBwcm9wb3Nl
ZFZhbHVlKSBjb25zdAogewogICAgIHJldHVybiBzdHJpcExlYWRpbmdBbmRUcmFpbGluZ0hUTUxT
cGFjZXMoQmFzZVRleHRJbnB1dFR5cGU6OnNhbml0aXplVmFsdWUocHJvcG9zZWRWYWx1ZSkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9VUkxJbnB1dFR5cGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvVVJMSW5wdXRUeXBlLmgKaW5kZXggOTAzOGMwZTU1YjI5NjU2NzBjZDdhYTM2
MzU3MGU5YjE4ODdiZjgwNy4uMWRhOTUzNWMyNDFlYThlYzI1M2VhMDRiNmIyYTdjNjhjMmY1NmMw
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9VUkxJbnB1dFR5cGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL1VSTElucHV0VHlwZS5oCkBAIC00NCw3ICs0NCw2IEBAIHByaXZh
dGU6CiAgICAgYm9vbCB0eXBlTWlzbWF0Y2hGb3IoY29uc3QgU3RyaW5nJikgY29uc3Qgb3ZlcnJp
ZGU7CiAgICAgYm9vbCB0eXBlTWlzbWF0Y2goKSBjb25zdCBvdmVycmlkZTsKICAgICBTdHJpbmcg
dHlwZU1pc21hdGNoVGV4dCgpIGNvbnN0IG92ZXJyaWRlOwotICAgIGJvb2wgaXNVUkxGaWVsZCgp
IGNvbnN0IG92ZXJyaWRlOwogICAgIFN0cmluZyBzYW5pdGl6ZVZhbHVlKGNvbnN0IFN0cmluZyYp
IGNvbnN0IG92ZXJyaWRlOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9X
ZWVrSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvV2Vla0lucHV0VHlwZS5jcHAK
aW5kZXggMWZmNjZjM2IzYzVhYThkOTIyZmRkOTczMjQ3YWRmYWU5MjQzYWQ4ZC4uYjU1MjAxOWM4
MTkzYWQ2N2ZjMDFlMjY5ODEzY2RkN2EzOTQwMmM3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9XZWVrSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJ
bnB1dFR5cGUuY3BwCkBAIC03OCwxMSArNzgsNiBAQCBPcHRpb25hbDxEYXRlQ29tcG9uZW50cz4g
V2Vla0lucHV0VHlwZTo6c2V0TWlsbGlzZWNvbmRUb0RhdGVDb21wb25lbnRzKGRvdWJsZSB2YQog
ICAgIHJldHVybiBEYXRlQ29tcG9uZW50czo6ZnJvbU1pbGxpc2Vjb25kc1NpbmNlRXBvY2hGb3JX
ZWVrKHZhbHVlKTsKIH0KIAotYm9vbCBXZWVrSW5wdXRUeXBlOjppc1dlZWtGaWVsZCgpIGNvbnN0
Ci17Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KIHZvaWQgV2Vla0lucHV0VHlwZTo6aGFuZGxlRE9N
QWN0aXZhdGVFdmVudChFdmVudCYpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1dlZWtJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvV2Vla0lucHV0VHlwZS5o
CmluZGV4IDU0ZWU5ZTE2NDJiYTE0ZWQyNjgwMDQ0MWViNjUzNDBmNDBkMzZhY2QuLjVkY2IxMDEy
YjI3NWQ3MDQ5MWFmYzFiNzYwYjZlMmRhNmI4YmExNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvV2Vla0lucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvV2Vla0lu
cHV0VHlwZS5oCkBAIC01MCw3ICs1MCw2IEBAIHByaXZhdGU6CiAgICAgU3RlcFJhbmdlIGNyZWF0
ZVN0ZXBSYW5nZShBbnlTdGVwSGFuZGxpbmcpIGNvbnN0IG92ZXJyaWRlOwogICAgIE9wdGlvbmFs
PERhdGVDb21wb25lbnRzPiBwYXJzZVRvRGF0ZUNvbXBvbmVudHMoY29uc3QgU3RyaW5nVmlldyYp
IGNvbnN0IG92ZXJyaWRlOwogICAgIE9wdGlvbmFsPERhdGVDb21wb25lbnRzPiBzZXRNaWxsaXNl
Y29uZFRvRGF0ZUNvbXBvbmVudHMoZG91YmxlKSBjb25zdCBvdmVycmlkZTsKLSAgICBib29sIGlz
V2Vla0ZpZWxkKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBoYW5kbGVET01BY3RpdmF0ZUV2
ZW50KEV2ZW50Jikgb3ZlcnJpZGU7CiAKICAgICBib29sIGlzVmFsaWRGb3JtYXQoT3B0aW9uU2V0
PERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM+KSBjb25zdCBmaW5hbDsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418747</attachid>
            <date>2021-01-29 10:20:52 -0800</date>
            <delta_ts>2021-01-29 11:21:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221121-20210129102051.patch</filename>
            <type>text/plain</type>
            <size>50500</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxODg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWRjZmMzMWZkMjVhNGRl
OGVmMmVmMDI3N2Q1N2E1ZDAzOWU2ZTBhOC4uZDNkY2JjZWU3YWI1MGQ0NjdlYjJkMDdjOTEzODU2
MGUyYWI4NzNkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0MCBAQAorMjAyMS0wMS0yOCAgU2lt
b24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBEZXZpcnR1YWxp
emUgc29tZSBmdW5jdGlvbnMgb24gSW5wdXRUeXBlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjExMjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBWaXJ0dWFsIGZ1bmN0aW9ucyBvbiBJbnB1dFR5cGUgc2hv
dyB1cCBpbiBTcGVlZG9tZXRlciBwcm9maWxlcy4gV2UgY2FuIG1ha2UKKyAgICAgICAgbWFueSBv
ZiB0aGVzZSB2aXJ0dWFsIGZ1bmN0aW9ucyBub24tdmlydHVhbCBieSBqdXN0IHN3aXRjaGluZyBv
biB0aGUgaW5wdXQgdHlwZS4KKworICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAg
KiBodG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmFz
ZUNoZWNrYWJsZUlucHV0VHlwZTo6aXNDaGVja2FibGUpOiBEZWxldGVkLgorICAgICAgICAqIGh0
bWwvQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvQmFzZVRleHRJbnB1
dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmFzZVRleHRJbnB1dFR5cGU6OmlzVGV4dFR5
cGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvQmFzZVRleHRJbnB1dFR5cGUuaDoK
KyAgICAgICAgKiBodG1sL0J1dHRvbklucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpC
dXR0b25JbnB1dFR5cGU6OmlzVGV4dEJ1dHRvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICog
aHRtbC9CdXR0b25JbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL0NoZWNrYm94SW5wdXRUeXBl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNoZWNrYm94SW5wdXRUeXBlOjppc0NoZWNrYm94IGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL0NoZWNrYm94SW5wdXRUeXBlLmg6CisgICAg
ICAgICogaHRtbC9Db2xvcklucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb2xvcklu
cHV0VHlwZTo6aXNDb2xvckNvbnRyb2wgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwv
Q29sb3JJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL0RhdGVJbnB1dFR5cGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RGF0ZUlucHV0VHlwZTo6aXNEYXRlRmllbGQgY29uc3QpOiBEZWxldGVk
LgorICAgICAgICAqIGh0bWwvRGF0ZUlucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvRGF0ZVRp
bWVMb2NhbElucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUxvY2FsSW5w
dXRUeXBlOjppc0RhdGVUaW1lTG9jYWxGaWVsZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICog
aHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9FbWFpbElucHV0
VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbWFpbElucHV0VHlwZTo6aXNFbWFpbEZpZWxk
IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL0VtYWlsSW5wdXRUeXBlLmg6CisgICAg
ICAgICogaHRtbC9GaWxlSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVJbnB1
dFR5cGU6OmlzRmlsZVVwbG9hZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogaHRtbC9GaWxl
SW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9Gb3JtQXNzb2NpYXRlZEVsZW1lbnQuaDoKKyAg
ICAgICAgKiBodG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hp
ZGRlbklucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIaWRkZW5JbnB1dFR5cGU6Omlz
SGlkZGVuVHlwZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogaHRtbC9IaWRkZW5JbnB1dFR5
cGUuaDoKKyAgICAgICAgKiBodG1sL0ltYWdlSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkltYWdlSW5wdXRUeXBlOjppc0ltYWdlQnV0dG9uIGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkltYWdlSW5wdXRUeXBlOjppc0VudW1lcmF0YWJsZSk6IERlbGV0ZWQuCisg
ICAgICAgICogaHRtbC9JbWFnZUlucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvSW5wdXRUeXBl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZTo6aXNUZXh0VHlwZSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6OmlzVGV4dEZpZWxkIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OklucHV0VHlwZTo6aXNUZXh0QnV0dG9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OklucHV0VHlwZTo6aXNJbnRlcmFjdGl2ZUNvbnRlbnQgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5wdXRUeXBlOjpzdXBwb3J0TGFiZWxzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OklucHV0VHlwZTo6aXNFbnVtZXJhdGFibGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBl
Ojppc0NoZWNrYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6OmlzUmFuZ2VDb250
cm9sIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZTo6aXNSYWRp
b0J1dHRvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6Omlz
U2VhcmNoRmllbGQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBl
Ojppc0hpZGRlblR5cGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRU
eXBlOjppc1Bhc3N3b3JkRmllbGQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
SW5wdXRUeXBlOjppc0NoZWNrYm94IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OklucHV0VHlwZTo6aXNFbWFpbEZpZWxkIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OklucHV0VHlwZTo6aXNGaWxlVXBsb2FkIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OklucHV0VHlwZTo6aXNJbWFnZUJ1dHRvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpJbnB1dFR5cGU6OmlzTnVtYmVyRmllbGQgY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlOjppc1N1Ym1pdEJ1dHRvbiBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6OmlzVGVsZXBob25lRmllbGQgY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlOjppc1VSTEZpZWxkIGNvbnN0KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZTo6aXNEYXRlRmllbGQgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlOjppc0RhdGVUaW1lRmllbGQg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlOjppc0RhdGVUaW1l
TG9jYWxGaWVsZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6
OmlzTW9udGhGaWVsZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5
cGU6OmlzVGltZUZpZWxkIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OklucHV0
VHlwZTo6aXNXZWVrRmllbGQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5w
dXRUeXBlOjppc0NvbG9yQ29udHJvbCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogaHRtbC9J
bnB1dFR5cGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZTo6aXNDaGVja2JveCBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6OmlzQ29sb3JDb250cm9sIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZTo6aXNEYXRlRmllbGQgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5wdXRUeXBlOjppc0RhdGVUaW1lRmllbGQgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6SW5wdXRUeXBlOjppc0RhdGVUaW1lTG9jYWxGaWVsZCBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpJbnB1dFR5cGU6OmlzRW1haWxGaWVsZCBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpJbnB1dFR5cGU6OmlzRmlsZVVwbG9hZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnB1dFR5cGU6OmlzSGlkZGVuVHlwZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5
cGU6OmlzSW1hZ2VCdXR0b24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlOjpp
c01vbnRoRmllbGQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlOjppc051bWJl
ckZpZWxkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZTo6aXNQYXNzd29yZEZp
ZWxkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZTo6aXNSYWRpb0J1dHRvbiBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6OmlzUmFuZ2VDb250cm9sIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZTo6aXNTZWFyY2hGaWVsZCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6OmlzU3VibWl0QnV0dG9uIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OklucHV0VHlwZTo6aXNUZWxlcGhvbmVGaWVsZCBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpJbnB1dFR5cGU6OmlzVGltZUZpZWxkIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OklucHV0VHlwZTo6aXNVUkxGaWVsZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1
dFR5cGU6OmlzV2Vla0ZpZWxkIGNvbnN0KToKKyAgICAgICAgKiBodG1sL01vbnRoSW5wdXRUeXBl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vbnRoSW5wdXRUeXBlOjppc01vbnRoRmllbGQgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvTW9udGhJbnB1dFR5cGUuaDoKKyAgICAgICAg
KiBodG1sL051bWJlcklucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOdW1iZXJJbnB1
dFR5cGU6OmlzTnVtYmVyRmllbGQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvTnVt
YmVySW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9QYXNzd29yZElucHV0VHlwZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpQYXNzd29yZElucHV0VHlwZTo6aXNQYXNzd29yZEZpZWxkIGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL1Bhc3N3b3JkSW5wdXRUeXBlLmg6CisgICAgICAg
ICogaHRtbC9SYWRpb0lucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSYWRpb0lucHV0
VHlwZTo6aXNSYWRpb0J1dHRvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogaHRtbC9SYWRp
b0lucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmFuZ2VJbnB1dFR5cGU6OmlzUmFuZ2VDb250cm9sIGNvbnN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKiBodG1sL1JhbmdlSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9SZXNl
dElucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNldElucHV0VHlwZTo6aXNUZXh0
QnV0dG9uIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL1Jlc2V0SW5wdXRUeXBlLmg6
CisgICAgICAgICogaHRtbC9TZWFyY2hJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U2VhcmNoSW5wdXRUeXBlOjppc1NlYXJjaEZpZWxkIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KiBodG1sL1NlYXJjaElucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvU3VibWl0SW5wdXRUeXBl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN1Ym1pdElucHV0VHlwZTo6aXNTdWJtaXRCdXR0b24g
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U3VibWl0SW5wdXRUeXBlOjppc1Rl
eHRCdXR0b24gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvU3VibWl0SW5wdXRUeXBl
Lmg6CisgICAgICAgICogaHRtbC9UZWxlcGhvbmVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6VGVsZXBob25lSW5wdXRUeXBlOjppc1RlbGVwaG9uZUZpZWxkIGNvbnN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKiBodG1sL1RlbGVwaG9uZUlucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwv
VGV4dEZpZWxkSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRGaWVsZElucHV0
VHlwZTo6aXNUZXh0RmllbGQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvVGV4dEZp
ZWxkSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9UaW1lSW5wdXRUeXBlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlRpbWVJbnB1dFR5cGU6OmlzVGltZUZpZWxkIGNvbnN0KTogRGVsZXRlZC4K
KyAgICAgICAgKiBodG1sL1RpbWVJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL1VSTElucHV0
VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpVUkxJbnB1dFR5cGU6OmlzVVJMRmllbGQgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvVVJMSW5wdXRUeXBlLmg6CisgICAgICAgICog
aHRtbC9XZWVrSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlZWtJbnB1dFR5cGU6
OmlzV2Vla0ZpZWxkIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL1dlZWtJbnB1dFR5
cGUuaDoKKwogMjAyMS0wMS0yNiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNv
bT4KIAogICAgICAgICBNYWtlIHNob3dSZW5kZXJUcmVlKCkgZHVtcCBGbG9hdGluZ09iamVjdHMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCBmNTAyM2QyMmQ4MDc2ZTJkMjFiYmY4Zjc3NzgzYmNj
OWQzNjNiZmY0Li5mZGZhOWM2MmQ1MzlhMTU1ZDJkMmQ4MzhlZGY3NDgxZjFiZWFkMmU4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0zMjIwLDcgKzMyMjAsNiBAQCBFeGNlcHRpb25Pcjx2b2lk
PiBFbGVtZW50OjpzZXRPdXRlckhUTUwoY29uc3QgU3RyaW5nJiBodG1sKQogICAgIHJldHVybiB7
IH07CiB9CiAKLQogRXhjZXB0aW9uT3I8dm9pZD4gRWxlbWVudDo6c2V0SW5uZXJIVE1MKGNvbnN0
IFN0cmluZyYgaHRtbCkKIHsKICAgICBhdXRvIGZyYWdtZW50ID0gY3JlYXRlRnJhZ21lbnRGb3JJ
bm5lck91dGVySFRNTCgqdGhpcywgaHRtbCwgQWxsb3dTY3JpcHRpbmdDb250ZW50KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuY3BwCmluZGV4IGE5NDk5
NTZlOTMzMjJlMDZjNGQzZDRiOGQ4MTA3ZDYxYTQxYzhkY2UuLmIxOTVjZDM4YzFiMGRkZTAwOWZi
NWZmZGRhODRkZWNjMjZlYmEwOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFz
ZUNoZWNrYWJsZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hl
Y2thYmxlSW5wdXRUeXBlLmNwcApAQCAtMTE0LDExICsxMTQsNiBAQCB2b2lkIEJhc2VDaGVja2Fi
bGVJbnB1dFR5cGU6OnNldFZhbHVlKGNvbnN0IFN0cmluZyYgc2FuaXRpemVkVmFsdWUsIGJvb2ws
IFRleHRGaQogICAgIGVsZW1lbnQoKS0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlv
bih2YWx1ZUF0dHIsIHNhbml0aXplZFZhbHVlKTsKIH0KIAotYm9vbCBCYXNlQ2hlY2thYmxlSW5w
dXRUeXBlOjppc0NoZWNrYWJsZSgpCi17Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KIHZvaWQgQmFz
ZUNoZWNrYWJsZUlucHV0VHlwZTo6ZmlyZUlucHV0QW5kQ2hhbmdlRXZlbnRzKCkKIHsKICAgICBp
ZiAoIWVsZW1lbnQoKS0+aXNDb25uZWN0ZWQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNl
Q2hlY2thYmxlSW5wdXRUeXBlLmgKaW5kZXggNDc0MjM0NWJkNTZjMDFmZDNmOTQyYjBlMmRjNGY5
MjU3Nzc4MWM5Ny4uYTBjM2Y0ODdhNDNkMjNkYjRlMjZkM2ExYWFmOGMyOWI2NTNiOGRhMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmgKQEAgLTUxLDcg
KzUxLDYgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgZmFsbGJhY2tWYWx1ZSgpIGNvbnN0IG92ZXJy
aWRlOwogICAgIGJvb2wgc3RvcmVzVmFsdWVTZXBhcmF0ZUZyb21BdHRyaWJ1dGUoKSBvdmVycmlk
ZTsKICAgICB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wsIFRleHRGaWVsZEV2ZW50
QmVoYXZpb3IpIG92ZXJyaWRlOwotICAgIGJvb2wgaXNDaGVja2FibGUoKSBvdmVycmlkZTsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFz
ZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcAppbmRleCBkZjdhYzRmZDFlNWJlZWVmYTI5OWE0N2E0
OGEwYWZhNDM4NzI1YjkwLi4wOTFlYTllNmQ1ZDEzMDc1YzlkOWNjMTgzMmNlYmNkY2NiNjliMmFm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlw
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUu
Y3BwCkBAIC0xNjcsMTEgKzE2Nyw2IEBAIERlY2ltYWwgQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBl
OjpkZWZhdWx0VmFsdWVGb3JTdGVwVXAoKSBjb25zdAogICAgIHJldHVybiBEZWNpbWFsOjpmcm9t
RG91YmxlKG1zICsgKG9mZnNldCAqIG1zUGVyTWludXRlKSk7CiB9CiAKLWJvb2wgQmFzZURhdGVB
bmRUaW1lSW5wdXRUeXBlOjppc1N0ZXBwYWJsZVNsb3coKSBjb25zdAotewotICAgIHJldHVybiB0
cnVlOwotfQotCiBEZWNpbWFsIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZTo6cGFyc2VUb051bWJl
cihjb25zdCBTdHJpbmcmIHNvdXJjZSwgY29uc3QgRGVjaW1hbCYgZGVmYXVsdFZhbHVlKSBjb25z
dAogewogICAgIGF1dG8gZGF0ZSA9IHBhcnNlVG9EYXRlQ29tcG9uZW50cyhzb3VyY2UpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmgKaW5kZXggOTFi
ZDI2ZWZmMDc0OGFlYzBkZTM3MzY3N2ZjZTU1YTU0YzRmMDQzNy4uODkzNWFlMTZjY2E4NzQ1ZGE2
ZDI1MzdhYWE3YjZlNjljMzc5OGJlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9C
YXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VE
YXRlQW5kVGltZUlucHV0VHlwZS5oCkBAIC0xMDAsNyArMTAwLDYgQEAgcHJpdmF0ZToKICAgICBk
b3VibGUgdmFsdWVBc0RvdWJsZSgpIGNvbnN0IGZpbmFsOwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+
IHNldFZhbHVlQXNEZWNpbWFsKGNvbnN0IERlY2ltYWwmLCBUZXh0RmllbGRFdmVudEJlaGF2aW9y
KSBjb25zdCBmaW5hbDsKICAgICBEZWNpbWFsIGRlZmF1bHRWYWx1ZUZvclN0ZXBVcCgpIGNvbnN0
IG92ZXJyaWRlOwotICAgIGJvb2wgaXNTdGVwcGFibGVTbG93KCkgY29uc3QgZmluYWw7CiAgICAg
U3RyaW5nIGxvY2FsaXplVmFsdWUoY29uc3QgU3RyaW5nJikgY29uc3QgZmluYWw7CiAgICAgYm9v
bCBzdXBwb3J0c1JlYWRPbmx5KCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBzaG91bGRSZXNwZWN0
TGlzdEF0dHJpYnV0ZSgpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9C
YXNlVGV4dElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VUZXh0SW5wdXRU
eXBlLmNwcAppbmRleCAwMTE4OWFiZTNiZjFkYTM3NTFmYmQzMjNmYjVhZTc4ZWEzMzhlNzc5Li5h
ZWJjYmU2NTdhMThhOTgxZWYxMTM5ZDU4MmViNmVlMWM5ZGE5NWJiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0Jhc2VUZXh0SW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0Jhc2VUZXh0SW5wdXRUeXBlLmNwcApAQCAtMzMsMTEgKzMzLDYgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCi1ib29sIEJhc2VUZXh0
SW5wdXRUeXBlOjppc1RleHRUeXBlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQog
Ym9vbCBCYXNlVGV4dElucHV0VHlwZTo6cGF0dGVybk1pc21hdGNoKGNvbnN0IFN0cmluZyYgdmFs
dWUpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGVsZW1lbnQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0Jhc2VUZXh0SW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jh
c2VUZXh0SW5wdXRUeXBlLmgKaW5kZXggYzc4ODM3OWUzNDYxM2EzMGMxMjI2NjM5NmI5ZTc5ZGYx
MmMyMWQ4OS4uNjJlZDQ3ODk2NjQ0ODM0NTYyN2UyNmY0MGIxOTUwOGVmOGMzZTFlZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlVGV4dElucHV0VHlwZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvQmFzZVRleHRJbnB1dFR5cGUuaApAQCAtNDAsNyArNDAsNiBAQCBjbGFz
cyBCYXNlVGV4dElucHV0VHlwZSA6IHB1YmxpYyBUZXh0RmllbGRJbnB1dFR5cGUgewogcHJvdGVj
dGVkOgogICAgIGV4cGxpY2l0IEJhc2VUZXh0SW5wdXRUeXBlKFR5cGUgdHlwZSwgSFRNTElucHV0
RWxlbWVudCYgZWxlbWVudCkgOiBUZXh0RmllbGRJbnB1dFR5cGUodHlwZSwgZWxlbWVudCkgeyB9
CiAKLSAgICBib29sIGlzVGV4dFR5cGUoKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIHBhdHRl
cm5NaXNtYXRjaChjb25zdCBTdHJpbmcmKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIHN1cHBv
cnRzUGxhY2Vob2xkZXIoKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIHN1cHBvcnRzU2VsZWN0
aW9uQVBJKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0J1dHRvbklucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0J1dHRvbklucHV0VHlw
ZS5jcHAKaW5kZXggZTk1MTg2NTJiMzE0OWQ1NmNhZTUyMDVjNzJmNDViNWZjZDhkYzcyYy4uYTI3
NTFjYzdmMWU3ZWQwYmQ1ODJmMDU5ZGE2Y2JmZDhjMDQ5ODY0YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9CdXR0b25JbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvQnV0dG9uSW5wdXRUeXBlLmNwcApAQCAtNDUsOSArNDUsNCBAQCBib29sIEJ1dHRvbklucHV0
VHlwZTo6c3VwcG9ydHNWYWxpZGF0aW9uKCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAK
LWJvb2wgQnV0dG9uSW5wdXRUeXBlOjppc1RleHRCdXR0b24oKSBjb25zdAotewotICAgIHJldHVy
biB0cnVlOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0J1dHRvbklucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CdXR0
b25JbnB1dFR5cGUuaAppbmRleCBiOTRhZmVkOWQ3YmE1YjI3MTI5ZmIzZWI3ZTg3ZWZmOTdkM2M5
OWRjLi41ZmU3MmYzNzczMDZlY2Q5YzBlM2U0NjkwYmJlZmJmNjQ3MDI5ZDgxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0J1dHRvbklucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvQnV0dG9uSW5wdXRUeXBlLmgKQEAgLTQyLDcgKzQyLDYgQEAgcHVibGljOgogcHJp
dmF0ZToKICAgICBjb25zdCBBdG9tU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBvdmVy
cmlkZTsKICAgICBib29sIHN1cHBvcnRzVmFsaWRhdGlvbigpIGNvbnN0IG92ZXJyaWRlOwotICAg
IGJvb2wgaXNUZXh0QnV0dG9uKCkgY29uc3Qgb3ZlcnJpZGU7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NoZWNrYm94SW5wdXRU
eXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ2hlY2tib3hJbnB1dFR5cGUuY3BwCmluZGV4
IDQxMzIwMTFkZmMwYTUxOGQwMTA0NDllZjhjZDYyM2YwNGVkN2I0ZmUuLmUzZGJhMDBiYWIwODA2
ZDczN2RmMTZlYTJmMWJiZjc4ZDA5OTNkY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvQ2hlY2tib3hJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ2hlY2ti
b3hJbnB1dFR5cGUuY3BwCkBAIC05MiwxMSArOTIsNiBAQCB2b2lkIENoZWNrYm94SW5wdXRUeXBl
OjpkaWREaXNwYXRjaENsaWNrKEV2ZW50JiBldmVudCwgY29uc3QgSW5wdXRFbGVtZW50Q2xpY2tT
dAogICAgIGV2ZW50LnNldERlZmF1bHRIYW5kbGVkKCk7CiB9CiAKLWJvb2wgQ2hlY2tib3hJbnB1
dFR5cGU6OmlzQ2hlY2tib3goKSBjb25zdAotewotICAgIHJldHVybiB0cnVlOwotfQotCiBib29s
IENoZWNrYm94SW5wdXRUeXBlOjptYXRjaGVzSW5kZXRlcm1pbmF0ZVBzZXVkb0NsYXNzKCkgY29u
c3QKIHsKICAgICByZXR1cm4gc2hvdWxkQXBwZWFySW5kZXRlcm1pbmF0ZSgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9DaGVja2JveElucHV0VHlwZS5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9DaGVja2JveElucHV0VHlwZS5oCmluZGV4IDZjYjgzMGNlMDFkMTRkMTc3MGRhYThm
MzY2M2NmM2ZhOThiMTc0NmQuLmYyNjY5OGVkOWYyYWU0MGU5MzQ0NjQ5YTRhOWYwZDlhYmJlNmQ3
ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ2hlY2tib3hJbnB1dFR5cGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NoZWNrYm94SW5wdXRUeXBlLmgKQEAgLTQ2LDcgKzQ2
LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGhhbmRsZUtleXVwRXZlbnQoS2V5Ym9hcmRFdmVudCYp
IGZpbmFsOwogICAgIHZvaWQgd2lsbERpc3BhdGNoQ2xpY2soSW5wdXRFbGVtZW50Q2xpY2tTdGF0
ZSYpIGZpbmFsOwogICAgIHZvaWQgZGlkRGlzcGF0Y2hDbGljayhFdmVudCYsIGNvbnN0IElucHV0
RWxlbWVudENsaWNrU3RhdGUmKSBmaW5hbDsKLSAgICBib29sIGlzQ2hlY2tib3goKSBjb25zdCBm
aW5hbDsKICAgICBib29sIG1hdGNoZXNJbmRldGVybWluYXRlUHNldWRvQ2xhc3MoKSBjb25zdCBm
aW5hbDsKICAgICBib29sIHNob3VsZEFwcGVhckluZGV0ZXJtaW5hdGUoKSBjb25zdCBmaW5hbDsK
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwCmluZGV4IDZjZWZiZTBhMWFi
ZjYzZjQzZWY0YjZlNDYxMWVlODA0NGY3N2UzNTIuLjZlN2VhNTI3NTRhOGJjY2RhMjk3ZGJlNzc0
NmRlMTNlYmUyNzliYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1
dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwCkBA
IC0xMDAsMTEgKzEwMCw2IEBAIGJvb2wgQ29sb3JJbnB1dFR5cGU6OmlzS2V5Ym9hcmRGb2N1c2Fi
bGUoS2V5Ym9hcmRFdmVudCopIGNvbnN0CiAjZW5kaWYKIH0KIAotYm9vbCBDb2xvcklucHV0VHlw
ZTo6aXNDb2xvckNvbnRyb2woKSBjb25zdAotewotICAgIHJldHVybiB0cnVlOwotfQotCiBib29s
IENvbG9ySW5wdXRUeXBlOjppc1ByZXNlbnRpbmdBdHRhY2hlZFZpZXcoKSBjb25zdAogewogICAg
IHJldHVybiAhIW1fY2hvb3NlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29s
b3JJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuaAppbmRl
eCBjZmQ4OGE2Mzk3Y2Y1MDRmNmViZDRhOTE2ZGJlYmVkYzJmYzEzZGQ0Li4wNzNiMDk3NmEyMDE5
Y2MzNjNmN2ZlZWEzZDBkNDYyZGU0MmJkYmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0NvbG9ySW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0
VHlwZS5oCkBAIC01Miw3ICs1Miw2IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPENvbG9yPiBzdWdn
ZXN0ZWRDb2xvcnMoKSBjb25zdCBmaW5hbDsKICAgICBib29sIGlzTW91c2VGb2N1c2FibGUoKSBj
b25zdCBmaW5hbDsKICAgICBib29sIGlzS2V5Ym9hcmRGb2N1c2FibGUoS2V5Ym9hcmRFdmVudCop
IGNvbnN0IGZpbmFsOwotICAgIGJvb2wgaXNDb2xvckNvbnRyb2woKSBjb25zdCBmaW5hbDsKICAg
ICBib29sIGlzUHJlc2VudGluZ0F0dGFjaGVkVmlldygpIGNvbnN0IGZpbmFsOwogICAgIGNvbnN0
IEF0b21TdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgc3Vw
cG9ydHNSZXF1aXJlZCgpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9EYXRlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlw
ZS5jcHAKaW5kZXggNjIyMjcxM2E0YTIxOTNjNTNjYjUwYTYzNDU5MDVmZGU3ODljYzFmYy4uOTFl
YmYwZWNhMDk5M2I4NWY0Mzc5ZTA5ZjZiMDZlODBiNmYxYjA5NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9EYXRlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0RhdGVJbnB1dFR5cGUuY3BwCkBAIC04NCwxMSArODQsNiBAQCBPcHRpb25hbDxEYXRlQ29tcG9u
ZW50cz4gRGF0ZUlucHV0VHlwZTo6c2V0TWlsbGlzZWNvbmRUb0RhdGVDb21wb25lbnRzKGRvdWJs
ZSB2YQogICAgIHJldHVybiBEYXRlQ29tcG9uZW50czo6ZnJvbU1pbGxpc2Vjb25kc1NpbmNlRXBv
Y2hGb3JEYXRlKHZhbHVlKTsKIH0KIAotYm9vbCBEYXRlSW5wdXRUeXBlOjppc0RhdGVGaWVsZCgp
IGNvbnN0Ci17Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KIGJvb2wgRGF0ZUlucHV0VHlwZTo6aXNW
YWxpZEZvcm1hdChPcHRpb25TZXQ8RGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0cz4gcmVz
dWx0cykgY29uc3QKIHsKICAgICByZXR1cm4gcmVzdWx0cy5jb250YWluc0FsbCh7IERhdGVUaW1l
Rm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6Okhhc1llYXIsIERhdGVUaW1lRm9ybWF0VmFsaWRhdGlv
blJlc3VsdHM6Okhhc01vbnRoLCBEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzOjpIYXNE
YXkgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5oCmluZGV4IGQ2NjEyMWUyN2I0NjQ2
MTliMjA4ZDFjOGZkMmIzZDM3NWZkM2JkNTQuLmIzMTgyMjE5ZGYyZTQ3MDBiNjM4MzlmNjY0NGVl
MDQzMTE0NWY4N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlw
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5oCkBAIC00Nyw3ICs0
Nyw2IEBAIHByaXZhdGU6CiAgICAgU3RlcFJhbmdlIGNyZWF0ZVN0ZXBSYW5nZShBbnlTdGVwSGFu
ZGxpbmcpIGNvbnN0IG92ZXJyaWRlOwogICAgIE9wdGlvbmFsPERhdGVDb21wb25lbnRzPiBwYXJz
ZVRvRGF0ZUNvbXBvbmVudHMoY29uc3QgU3RyaW5nVmlldyYpIGNvbnN0IG92ZXJyaWRlOwogICAg
IE9wdGlvbmFsPERhdGVDb21wb25lbnRzPiBzZXRNaWxsaXNlY29uZFRvRGF0ZUNvbXBvbmVudHMo
ZG91YmxlKSBjb25zdCBvdmVycmlkZTsKLSAgICBib29sIGlzRGF0ZUZpZWxkKCkgY29uc3Qgb3Zl
cnJpZGU7CiAKICAgICBib29sIGlzVmFsaWRGb3JtYXQoT3B0aW9uU2V0PERhdGVUaW1lRm9ybWF0
VmFsaWRhdGlvblJlc3VsdHM+KSBjb25zdCBmaW5hbDsKICAgICBTdHJpbmcgZm9ybWF0RGF0ZVRp
bWVGaWVsZHNTdGF0ZShjb25zdCBEYXRlVGltZUZpZWxkc1N0YXRlJikgY29uc3QgZmluYWw7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmNwcAppbmRleCBh
MmI0Y2U3MTljMTdjNmE4NTljZmU0NTQzOTVkNzgzNzA2Y2NhZDE2Li5kMzkxYzk3MDMxZTgzYWE4
YjI1YzBmZjUwYWQ4OTM0Y2ViYmU2NzVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0
ZVRpbWVMb2NhbElucHV0VHlwZS5jcHAKQEAgLTkzLDExICs5Myw2IEBAIE9wdGlvbmFsPERhdGVD
b21wb25lbnRzPiBEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjpzZXRNaWxsaXNlY29uZFRvRGF0ZUNv
bXBvbmVudHMoCiAgICAgcmV0dXJuIERhdGVDb21wb25lbnRzOjpmcm9tTWlsbGlzZWNvbmRzU2lu
Y2VFcG9jaEZvckRhdGVUaW1lTG9jYWwodmFsdWUpOwogfQogCi1ib29sIERhdGVUaW1lTG9jYWxJ
bnB1dFR5cGU6OmlzRGF0ZVRpbWVMb2NhbEZpZWxkKCkgY29uc3QKLXsKLSAgICByZXR1cm4gdHJ1
ZTsKLX0KLQogYm9vbCBEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjppc1ZhbGlkRm9ybWF0KE9wdGlv
blNldDxEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzPiByZXN1bHRzKSBjb25zdAogewog
ICAgIHJldHVybiByZXN1bHRzLmNvbnRhaW5zQWxsKHsgRGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9u
UmVzdWx0czo6SGFzWWVhciwgRGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0czo6SGFzTW9u
dGgsIERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6Okhhc0RheSwgRGF0ZVRpbWVGb3Jt
YXRWYWxpZGF0aW9uUmVzdWx0czo6SGFzSG91ciwgRGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVz
dWx0czo6SGFzTWludXRlLCBEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzOjpIYXNNZXJp
ZGllbSB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElu
cHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmgK
aW5kZXggNGIyMzJjMGZjMzBjMmMzNWUyZjg0OTMxMDNkZWJmYzJjYzJjOWExOS4uMDJkNmNhMDFi
MzczMDlhMTEwZTAwMTY3NTZiODViZDQwMDYzOTZiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmgKQEAgLTUyLDcgKzUyLDYgQEAgcHJpdmF0ZToKICAg
ICBTdGVwUmFuZ2UgY3JlYXRlU3RlcFJhbmdlKEFueVN0ZXBIYW5kbGluZykgY29uc3QgZmluYWw7
CiAgICAgT3B0aW9uYWw8RGF0ZUNvbXBvbmVudHM+IHBhcnNlVG9EYXRlQ29tcG9uZW50cyhjb25z
dCBTdHJpbmdWaWV3JikgY29uc3QgZmluYWw7CiAgICAgT3B0aW9uYWw8RGF0ZUNvbXBvbmVudHM+
IHNldE1pbGxpc2Vjb25kVG9EYXRlQ29tcG9uZW50cyhkb3VibGUpIGNvbnN0IGZpbmFsOwotICAg
IGJvb2wgaXNEYXRlVGltZUxvY2FsRmllbGQoKSBjb25zdCBmaW5hbDsKIAogICAgIGJvb2wgaXNW
YWxpZEZvcm1hdChPcHRpb25TZXQ8RGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0cz4pIGNv
bnN0IGZpbmFsOwogICAgIFN0cmluZyBmb3JtYXREYXRlVGltZUZpZWxkc1N0YXRlKGNvbnN0IERh
dGVUaW1lRmllbGRzU3RhdGUmKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvRW1haWxJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9FbWFpbElu
cHV0VHlwZS5jcHAKaW5kZXggZGVlNWNjNGJmYTQ4MTc2ODIwMDcxMjVhMWRhOTUyNGVjOThiOGU4
NC4uNzk2NjU3MDhjNTE1MjEyMDQ1NzI2NmQ4YTk1ZWQ0NzE3MDZjM2Y4NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9FbWFpbElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9FbWFpbElucHV0VHlwZS5jcHAKQEAgLTgzLDExICs4Myw2IEBAIFN0cmluZyBFbWFp
bElucHV0VHlwZTo6dHlwZU1pc21hdGNoVGV4dCgpIGNvbnN0CiAgICAgcmV0dXJuIGVsZW1lbnQo
KS0+bXVsdGlwbGUoKSA/IHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoRm9yTXVsdGlwbGVF
bWFpbFRleHQoKSA6IHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoRm9yRW1haWxUZXh0KCk7
CiB9CiAKLWJvb2wgRW1haWxJbnB1dFR5cGU6OmlzRW1haWxGaWVsZCgpIGNvbnN0Ci17Ci0gICAg
cmV0dXJuIHRydWU7Ci19Ci0KIGJvb2wgRW1haWxJbnB1dFR5cGU6OnN1cHBvcnRzU2VsZWN0aW9u
QVBJKCkgY29uc3QKIHsKICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0VtYWlsSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0VtYWlsSW5w
dXRUeXBlLmgKaW5kZXggMjFlNDBkZDMyZDgzMDIxNjZmNzkxNmUzODgwZjUzN2YxOTYxNTdiYy4u
YjE4ZGQ1ZjNhYjRlODBmNzM5YjE2YTY4Y2I2ODJjNGJkYjdiOTRjZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9FbWFpbElucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRW1haWxJbnB1dFR5cGUuaApAQCAtNDQsNyArNDQsNiBAQCBwcml2YXRlOgogICAgIGJvb2wg
dHlwZU1pc21hdGNoRm9yKGNvbnN0IFN0cmluZyYpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wg
dHlwZU1pc21hdGNoKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgU3RyaW5nIHR5cGVNaXNtYXRjaFRl
eHQoKSBjb25zdCBvdmVycmlkZTsKLSAgICBib29sIGlzRW1haWxGaWVsZCgpIGNvbnN0IG92ZXJy
aWRlOwogICAgIGJvb2wgc3VwcG9ydHNTZWxlY3Rpb25BUEkoKSBjb25zdCBvdmVycmlkZTsKICAg
ICBTdHJpbmcgc2FuaXRpemVWYWx1ZShjb25zdCBTdHJpbmcmKSBjb25zdCBvdmVycmlkZTsKIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcAppbmRleCAzMTFjNTg3Y2Y5M2MxMGNi
OTYzMDIwY2Y4ZGZlZWQ3MTg1ODhhY2YyLi4wNmM4NDMyMWJiMjkxZmIxNzg2MjVmM2Q3ODM0Mzhl
ZTg4ODQ2ZjkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKQEAgLTI3Mywx
MSArMjczLDYgQEAgdm9pZCBGaWxlSW5wdXRUeXBlOjpzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBi
b29sLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yKQogICAgIGVsZW1lbnQoKS0+aW52YWxpZGF0ZVN0
eWxlRm9yU3VidHJlZSgpOwogfQogCi1ib29sIEZpbGVJbnB1dFR5cGU6OmlzRmlsZVVwbG9hZCgp
IGNvbnN0Ci17Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KIHZvaWQgRmlsZUlucHV0VHlwZTo6Y3Jl
YXRlU2hhZG93U3VidHJlZUFuZFVwZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0YWJpbGl0eShDb250
YWluZXJOb2RlOjpDaGlsZENoYW5nZTo6U291cmNlIHNvdXJjZSwgYm9vbCkKIHsKICAgICBBU1NF
UlQoZWxlbWVudCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0
VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmgKaW5kZXggZjlkMmM4
ZTQyZTNhNWM5ZTRlNzE2YzcwMjIyNGIzZjc1YTAzNmQ4Zi4uYmJlZDI5OWZjNGZjYzdiMmJlNTQz
YWQwZTFkNzMwZjUxYTc1YjE0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxl
SW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmgKQEAg
LTc3LDcgKzc3LDYgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAgICAgSWNvbiogaWNvbigpIGNvbnN0
IGZpbmFsOwotICAgIGJvb2wgaXNGaWxlVXBsb2FkKCkgY29uc3QgZmluYWw7CiAgICAgdm9pZCBj
cmVhdGVTaGFkb3dTdWJ0cmVlQW5kVXBkYXRlSW5uZXJUZXh0RWxlbWVudEVkaXRhYmlsaXR5KENv
bnRhaW5lck5vZGU6OkNoaWxkQ2hhbmdlOjpTb3VyY2UsIGJvb2wpIGZpbmFsOwogICAgIHZvaWQg
ZGlzYWJsZWRTdGF0ZUNoYW5nZWQoKSBmaW5hbDsKICAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9Gb3JtQXNzb2NpYXRlZEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUFz
c29jaWF0ZWRFbGVtZW50LmgKaW5kZXggNDQ2MWI0MmIxOTA5NzhjMTJkNzI1YzVlN2FkMDc3MGIw
OWI2MzNhMi4uMmNjNDRhZTE5YTcwYjYxOTM5ZmZlNjYzMzQ4NWRlMmE0N2I3MmI5NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQXNzb2NpYXRlZEVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Bc3NvY2lhdGVkRWxlbWVudC5oCkBAIC0xMTAsNiArMTEw
LDcgQEAgcHJvdGVjdGVkOgogICAgIFN0cmluZyBjdXN0b21WYWxpZGF0aW9uTWVzc2FnZSgpIGNv
bnN0OwogCiBwcml2YXRlOgorICAgIC8vICJ3aWxsVmFsaWRhdGUiIG1lYW5zICJpcyBhIGNhbmRp
ZGF0ZSBmb3IgY29uc3RyYWludCB2YWxpZGF0aW9uIi4KICAgICB2aXJ0dWFsIGJvb2wgd2lsbFZh
bGlkYXRlKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgdm9pZCByZWZGb3JtQXNzb2NpYXRlZEVs
ZW1lbnQoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRlcmVmRm9ybUFzc29jaWF0ZWRFbGVtZW50
KCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xF
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaApp
bmRleCAyZTM2MzViN2JmYWMyMzNlMjMwMTZhNDA5MTc1ZWZkOWExNmJmM2I3Li5iOTcxODRiZmY2
NDMwNGE2MTJkMWU3NzY1ZTVmZWZkMzgzODA5ZDMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaApAQCAtOTksNiArOTksNyBAQCBwdWJsaWM6CiAgICAg
V0VCQ09SRV9FWFBPUlQgQXV0b2NhcGl0YWxpemVUeXBlIGF1dG9jYXBpdGFsaXplVHlwZSgpIGNv
bnN0IGZpbmFsOwogI2VuZGlmCiAKKyAgICAvLyAid2lsbFZhbGlkYXRlIiBtZWFucyAiaXMgYSBj
YW5kaWRhdGUgZm9yIGNvbnN0cmFpbnQgdmFsaWRhdGlvbiIuCiAgICAgV0VCQ09SRV9FWFBPUlQg
Ym9vbCB3aWxsVmFsaWRhdGUoKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIHVwZGF0ZVZpc2libGVW
YWxpZGF0aW9uTWVzc2FnZSgpOwogICAgIHZvaWQgaGlkZVZpc2libGVWYWxpZGF0aW9uTWVzc2Fn
ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUuY3BwCmluZGV4IDZhZjliYzcy
M2IwZTllMGM1YjkxNTA2NTkwMmZiNzQ2OGZiYmUwNTkuLmQzNjJmM2NlZDdkZDIzYTI5YmRlMWMy
ZmVhNmEyZmQ3MWRmOTY2ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSGlkZGVu
SW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hpZGRlbklucHV0VHlwZS5j
cHAKQEAgLTk0LDExICs5NCw2IEBAIHZvaWQgSGlkZGVuSW5wdXRUeXBlOjpzZXRWYWx1ZShjb25z
dCBTdHJpbmcmIHNhbml0aXplZFZhbHVlLCBib29sLCBUZXh0RmllbGRFdmVuCiAgICAgZWxlbWVu
dCgpLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKHZhbHVlQXR0ciwgc2FuaXRp
emVkVmFsdWUpOwogfQogCi1ib29sIEhpZGRlbklucHV0VHlwZTo6aXNIaWRkZW5UeXBlKCkgY29u
c3QKLXsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQogYm9vbCBIaWRkZW5JbnB1dFR5cGU6OmFwcGVu
ZEZvcm1EYXRhKERPTUZvcm1EYXRhJiBmb3JtRGF0YSwgYm9vbCBpc011bHRpcGFydEZvcm0pIGNv
bnN0CiB7CiAgICAgQVNTRVJUKGVsZW1lbnQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hpZGRlbklucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1
dFR5cGUuaAppbmRleCBiNTg2MDc3MzY0ZDc0ZWNkMmRhOWM2YzIxZTYxN2U2YTYwNGZjYTI0Li43
NzBjNjMxNDYwN2Q5ZTg5ZGU4ODM2NGIwYmViNzUwN2EwY2JmNzA0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hpZGRlbklucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSGlkZGVuSW5wdXRUeXBlLmgKQEAgLTQ4LDkgKzQ4LDYgQEAgcHJpdmF0ZToKICAgICBib29s
IGFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykgb3ZlcnJpZGU7CiAgICAgYm9v
bCByZW5kZXJlcklzTmVlZGVkKCkgb3ZlcnJpZGU7CiAgICAgYm9vbCBzdG9yZXNWYWx1ZVNlcGFy
YXRlRnJvbUF0dHJpYnV0ZSgpIG92ZXJyaWRlOwotICAgIGJvb2wgaXNIaWRkZW5UeXBlKCkgY29u
c3Qgb3ZlcnJpZGU7Ci0gICAgYm9vbCBzdXBwb3J0TGFiZWxzKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gZmFsc2U7IH0KLSAgICBib29sIGlzSW50ZXJhY3RpdmVDb250ZW50KCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gZmFsc2U7IH0KICAgICBib29sIHNob3VsZFJlc3BlY3RIZWlnaHRBbmRXaWR0
aEF0dHJpYnV0ZXMoKSBvdmVycmlkZTsKICAgICB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYs
IGJvb2wsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IpIG92ZXJyaWRlOwogICAgIGJvb2wgYXBwZW5k
Rm9ybURhdGEoRE9NRm9ybURhdGEmLCBib29sKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9JbWFnZUlucHV0VHlwZS5jcHAKaW5kZXggMGY1ZmFlMTU5MWJmNWI5MmU3NDY2MzAwYzY2
NDhjZGQwNzA2N2YyZS4uMjQ1OGJkMzE5N2JkNWNmNWQwODU2MmMxZmM2MGFlZTkzODUxZTMwYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5jcHAKQEAgLTE3MSwxNiArMTcxLDYg
QEAgYm9vbCBJbWFnZUlucHV0VHlwZTo6Y2FuQmVTdWNjZXNzZnVsU3VibWl0QnV0dG9uKCkKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBJbWFnZUlucHV0VHlwZTo6aXNJbWFnZUJ1dHRvbigp
IGNvbnN0Ci17Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLWJvb2wgSW1hZ2VJbnB1dFR5cGU6Omlz
RW51bWVyYXRhYmxlKCkKLXsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KIGJvb2wgSW1hZ2VJbnB1
dFR5cGU6OnNob3VsZFJlc3BlY3RIZWlnaHRBbmRXaWR0aEF0dHJpYnV0ZXMoKQogewogICAgIHJl
dHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlw
ZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5oCmluZGV4IDNiNjVjOWFm
NWFlNjA1ZTRjMjM3NTlkY2JjNDk3OWNlOTFjZWU3MzkuLjgyZDAzYmY1NDQzZGJkMTc2OTdjYzA2
YTBiYTA5MDc1MDFlYWUyYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJ
bnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmgKQEAg
LTUzLDggKzUzLDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGF0dGFjaCgpIGZpbmFsOwogICAgIGJv
b2wgc2hvdWxkUmVzcGVjdEFsaWduQXR0cmlidXRlKCkgZmluYWw7CiAgICAgYm9vbCBjYW5CZVN1
Y2Nlc3NmdWxTdWJtaXRCdXR0b24oKSBmaW5hbDsKLSAgICBib29sIGlzSW1hZ2VCdXR0b24oKSBj
b25zdCBmaW5hbDsKLSAgICBib29sIGlzRW51bWVyYXRhYmxlKCkgZmluYWw7CiAgICAgYm9vbCBz
aG91bGRSZXNwZWN0SGVpZ2h0QW5kV2lkdGhBdHRyaWJ1dGVzKCkgZmluYWw7CiAgICAgdW5zaWdu
ZWQgaGVpZ2h0KCkgY29uc3QgZmluYWw7CiAgICAgdW5zaWduZWQgd2lkdGgoKSBjb25zdCBmaW5h
bDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcAppbmRleCA2ODVjMDNmZWQyMzc2ZmM3ZWY0Mzk1
MTI0ZWIzOWY2ODg5MzE5MWRiLi5iN2Y2NDNjYTZiYjIyOTJkZGU5ZDUzZGRiZTJiNjJhY2IxN2Mx
MThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCkBAIC0xNjYsMjEgKzE2Niw2IEBAIGJv
b2wgSW5wdXRUeXBlOjp0aGVtZVN1cHBvcnRzRGF0YUxpc3RVSShJbnB1dFR5cGUqIHR5cGUpCiAg
ICAgcmV0dXJuIFJlbmRlclRoZW1lOjpzaW5nbGV0b24oKS5zdXBwb3J0c0RhdGFMaXN0VUkodHlw
ZS0+Zm9ybUNvbnRyb2xUeXBlKCkpOwogfQogCi1ib29sIElucHV0VHlwZTo6aXNUZXh0RmllbGQo
KSBjb25zdAotewotICAgIHJldHVybiBmYWxzZTsKLX0KLQotYm9vbCBJbnB1dFR5cGU6OmlzVGV4
dFR5cGUoKSBjb25zdAotewotICAgIHJldHVybiBmYWxzZTsKLX0KLQotYm9vbCBJbnB1dFR5cGU6
OmlzUmFuZ2VDb250cm9sKCkgY29uc3QKLXsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KIGJvb2wg
SW5wdXRUeXBlOjpzaG91bGRTYXZlQW5kUmVzdG9yZUZvcm1Db250cm9sU3RhdGUoKSBjb25zdAog
ewogICAgIHJldHVybiB0cnVlOwpAQCAtODE2LDE0MyArODAxLDE5IEBAIGJvb2wgSW5wdXRUeXBl
OjpzaG91bGRSZXNwZWN0TGlzdEF0dHJpYnV0ZSgpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1i
b29sIElucHV0VHlwZTo6aXNUZXh0QnV0dG9uKCkgY29uc3QKLXsKLSAgICByZXR1cm4gZmFsc2U7
Ci19Ci0KLWJvb2wgSW5wdXRUeXBlOjppc1JhZGlvQnV0dG9uKCkgY29uc3QKLXsKLSAgICByZXR1
cm4gZmFsc2U7Ci19Ci0KLWJvb2wgSW5wdXRUeXBlOjppc1NlYXJjaEZpZWxkKCkgY29uc3QKLXsK
LSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLWJvb2wgSW5wdXRUeXBlOjppc0hpZGRlblR5cGUoKSBj
b25zdAotewotICAgIHJldHVybiBmYWxzZTsKLX0KLQotYm9vbCBJbnB1dFR5cGU6OmlzUGFzc3dv
cmRGaWVsZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi1ib29sIElucHV0VHlw
ZTo6aXNDaGVja2JveCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi1ib29sIElu
cHV0VHlwZTo6aXNFbWFpbEZpZWxkKCkgY29uc3QKLXsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0K
LWJvb2wgSW5wdXRUeXBlOjppc0ZpbGVVcGxvYWQoKSBjb25zdAotewotICAgIHJldHVybiBmYWxz
ZTsKLX0KLQotYm9vbCBJbnB1dFR5cGU6OmlzSW1hZ2VCdXR0b24oKSBjb25zdAotewotICAgIHJl
dHVybiBmYWxzZTsKLX0KLQogYm9vbCBJbnB1dFR5cGU6OmlzSW50ZXJhY3RpdmVDb250ZW50KCkg
Y29uc3QKIHsKLSAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gbV90eXBlICE9IFR5cGU6Okhp
ZGRlbjsKIH0KIAogYm9vbCBJbnB1dFR5cGU6OnN1cHBvcnRMYWJlbHMoKSBjb25zdAogewotICAg
IHJldHVybiB0cnVlOwotfQotCi1ib29sIElucHV0VHlwZTo6aXNOdW1iZXJGaWVsZCgpIGNvbnN0
Ci17Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi1ib29sIElucHV0VHlwZTo6aXNTdWJtaXRCdXR0
b24oKSBjb25zdAotewotICAgIHJldHVybiBmYWxzZTsKLX0KLQotYm9vbCBJbnB1dFR5cGU6Omlz
VGVsZXBob25lRmllbGQoKSBjb25zdAotewotICAgIHJldHVybiBmYWxzZTsKLX0KLQotYm9vbCBJ
bnB1dFR5cGU6OmlzVVJMRmllbGQoKSBjb25zdAotewotICAgIHJldHVybiBmYWxzZTsKLX0KLQot
Ym9vbCBJbnB1dFR5cGU6OmlzRGF0ZUZpZWxkKCkgY29uc3QKLXsKLSAgICByZXR1cm4gZmFsc2U7
Ci19Ci0KLWJvb2wgSW5wdXRUeXBlOjppc0RhdGVUaW1lRmllbGQoKSBjb25zdAotewotICAgIHJl
dHVybiBmYWxzZTsKLX0KLQotYm9vbCBJbnB1dFR5cGU6OmlzRGF0ZVRpbWVMb2NhbEZpZWxkKCkg
Y29uc3QKLXsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLWJvb2wgSW5wdXRUeXBlOjppc01vbnRo
RmllbGQoKSBjb25zdAotewotICAgIHJldHVybiBmYWxzZTsKLX0KLQotYm9vbCBJbnB1dFR5cGU6
OmlzVGltZUZpZWxkKCkgY29uc3QKLXsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLWJvb2wgSW5w
dXRUeXBlOjppc1dlZWtGaWVsZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIHJl
dHVybiBtX3R5cGUgIT0gVHlwZTo6SGlkZGVuOwogfQogCiBib29sIElucHV0VHlwZTo6aXNFbnVt
ZXJhdGFibGUoKQogewotICAgIHJldHVybiB0cnVlOwotfQotCi1ib29sIElucHV0VHlwZTo6aXND
aGVja2FibGUoKQotewotICAgIHJldHVybiBmYWxzZTsKLX0KLQotLy8gRG8gbm90IHVzZSB2aXJ0
dWFsIGZ1bmN0aW9uIGZvciBwZXJmb3JtYW5jZSByZWFzb24uCi1ib29sIElucHV0VHlwZTo6aXNT
dGVwcGFibGUoKSBjb25zdAotewotICAgIHN3aXRjaCAobV90eXBlKSB7Ci0gICAgY2FzZSBUeXBl
OjpEYXRlOgotICAgIGNhc2UgVHlwZTo6RGF0ZVRpbWVMb2NhbDoKLSAgICBjYXNlIFR5cGU6Ok1v
bnRoOgotICAgIGNhc2UgVHlwZTo6VGltZToKLSAgICBjYXNlIFR5cGU6OldlZWs6Ci0gICAgY2Fz
ZSBUeXBlOjpOdW1iZXI6Ci0gICAgY2FzZSBUeXBlOjpSYW5nZToKLSAgICAgICAgQVNTRVJUKGlz
U3RlcHBhYmxlU2xvdygpKTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgZGVmYXVsdDoKLSAg
ICAgICAgQVNTRVJUKCFpc1N0ZXBwYWJsZVNsb3coKSk7Ci0gICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICB9Ci19Ci0KLWJvb2wgSW5wdXRUeXBlOjppc0NvbG9yQ29udHJvbCgpIGNvbnN0Ci17Ci0g
ICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBtX3R5cGUgIT0gVHlwZTo6SW1hZ2U7CiB9CiAK
IGJvb2wgSW5wdXRUeXBlOjpzaG91bGRSZXNwZWN0SGVpZ2h0QW5kV2lkdGhBdHRyaWJ1dGVzKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0lucHV0VHlwZS5oCmluZGV4IDNhZTg1ZWVhNGIzYjg2ZTE2ZTNiZGVjZWMwZTI0
MmVlYThlOWZlODcuLmE1YmUyMmM2ZTcxZDYzMDFkNjgyMWRmNTkwNjY4NTNkMjY4MmU5ODMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9JbnB1dFR5cGUuaApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIlJlbmRl
clB0ci5oIgogI2luY2x1ZGUgPHd0Zi9GYXN0TWFsbG9jLmg+CiAjaW5jbHVkZSA8d3RmL0Zvcndh
cmQuaD4KKyNpbmNsdWRlIDx3dGYvT3B0aW9uU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKQEAgLTcxLDI5ICs3Miw2OSBAQCBlbnVt
IGNsYXNzIERhdGVDb21wb25lbnRzVHlwZSA6IHVpbnQ4X3Q7CiBjbGFzcyBJbnB1dFR5cGUgOiBw
dWJsaWMgUmVmQ291bnRlZDxJbnB1dFR5cGU+IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKIHB1YmxpYzoKLSAgICBlbnVtIGNsYXNzIFR5cGUgOiB1aW50OF90IHsKLSAgICAgICAgQnV0
dG9uLAotICAgICAgICBDaGVja2JveCwKLSAgICAgICAgQ29sb3IsCi0gICAgICAgIERhdGUsCi0g
ICAgICAgIERhdGVUaW1lTG9jYWwsCi0gICAgICAgIEVtYWlsLAotICAgICAgICBGaWxlLAotICAg
ICAgICBIaWRkZW4sCi0gICAgICAgIEltYWdlLAotICAgICAgICBNb250aCwKLSAgICAgICAgTnVt
YmVyLAotICAgICAgICBQYXNzd29yZCwKLSAgICAgICAgUmFkaW8sCi0gICAgICAgIFJhbmdlLAot
ICAgICAgICBSZXNldCwKLSAgICAgICAgU2VhcmNoLAotICAgICAgICBTdWJtaXQsCi0gICAgICAg
IFRlbGVwaG9uZSwKLSAgICAgICAgVGltZSwKLSAgICAgICAgVVJMLAotICAgICAgICBXZWVrLAot
ICAgICAgICBUZXh0LAorICAgIGVudW0gY2xhc3MgVHlwZSA6IHVpbnQzMl90IHsKKyAgICAgICAg
QnV0dG9uICAgICAgICAgID0gMSA8PCAwLAorICAgICAgICBDaGVja2JveCAgICAgICAgPSAxIDw8
IDEsCisgICAgICAgIENvbG9yICAgICAgICAgICA9IDEgPDwgMiwKKyAgICAgICAgRGF0ZSAgICAg
ICAgICAgID0gMSA8PCAzLAorICAgICAgICBEYXRlVGltZUxvY2FsICAgPSAxIDw8IDQsCisgICAg
ICAgIEVtYWlsICAgICAgICAgICA9IDEgPDwgNSwKKyAgICAgICAgRmlsZSAgICAgICAgICAgID0g
MSA8PCA2LAorICAgICAgICBIaWRkZW4gICAgICAgICAgPSAxIDw8IDcsCisgICAgICAgIEltYWdl
ICAgICAgICAgICA9IDEgPDwgOCwKKyAgICAgICAgTW9udGggICAgICAgICAgID0gMSA8PCA5LAor
ICAgICAgICBOdW1iZXIgICAgICAgICAgPSAxIDw8IDEwLAorICAgICAgICBQYXNzd29yZCAgICAg
ICAgPSAxIDw8IDExLAorICAgICAgICBSYWRpbyAgICAgICAgICAgPSAxIDw8IDEyLAorICAgICAg
ICBSYW5nZSAgICAgICAgICAgPSAxIDw8IDEzLAorICAgICAgICBSZXNldCAgICAgICAgICAgPSAx
IDw8IDE0LAorICAgICAgICBTZWFyY2ggICAgICAgICAgPSAxIDw8IDE1LAorICAgICAgICBTdWJt
aXQgICAgICAgICAgPSAxIDw8IDE2LAorICAgICAgICBUZWxlcGhvbmUgICAgICAgPSAxIDw8IDE3
LAorICAgICAgICBUaW1lICAgICAgICAgICAgPSAxIDw8IDE4LAorICAgICAgICBVUkwgICAgICAg
ICAgICAgPSAxIDw8IDE5LAorICAgICAgICBXZWVrICAgICAgICAgICAgPSAxIDw8IDIwLAorICAg
ICAgICBUZXh0ICAgICAgICAgICAgPSAxIDw8IDIxLAorICAgIH07CisgICAgCisgICAgc3RhdGlj
IGNvbnN0ZXhwciBPcHRpb25TZXQ8VHlwZT4gdGV4dFR5cGVzID0geworICAgICAgICBUeXBlOjpF
bWFpbCwKKyAgICAgICAgVHlwZTo6UGFzc3dvcmQsCisgICAgICAgIFR5cGU6OlNlYXJjaCwKKyAg
ICAgICAgVHlwZTo6VGVsZXBob25lLAorICAgICAgICBUeXBlOjpUZXh0LAorICAgICAgICBUeXBl
OjpVUkwsCisgICAgfTsKKworICAgIHN0YXRpYyBjb25zdGV4cHIgT3B0aW9uU2V0PFR5cGU+IHRl
eHRGaWVsZFR5cGVzID0geworICAgICAgICBUeXBlOjpFbWFpbCwKKyAgICAgICAgVHlwZTo6TnVt
YmVyLAorICAgICAgICBUeXBlOjpQYXNzd29yZCwKKyAgICAgICAgVHlwZTo6U2VhcmNoLAorICAg
ICAgICBUeXBlOjpUZWxlcGhvbmUsCisgICAgICAgIFR5cGU6OlRleHQsCisgICAgICAgIFR5cGU6
OlVSTCwKKyAgICB9OworCisgICAgc3RhdGljIGNvbnN0ZXhwciBPcHRpb25TZXQ8VHlwZT4gdGV4
dEJ1dHRvblR5cGVzID0geworICAgICAgICBUeXBlOjpCdXR0b24sCisgICAgICAgIFR5cGU6OlJl
c2V0LAorICAgICAgICBUeXBlOjpTdWJtaXQsCisgICAgfTsKKworICAgIHN0YXRpYyBjb25zdGV4
cHIgT3B0aW9uU2V0PFR5cGU+IGNoZWNrYWJsZVR5cGVzID0geworICAgICAgICBUeXBlOjpDaGVj
a2JveCwKKyAgICAgICAgVHlwZTo6UmFkaW8sCisgICAgfTsKKworICAgIHN0YXRpYyBjb25zdGV4
cHIgT3B0aW9uU2V0PFR5cGU+IHN0ZXBwYWJsZVR5cGVzID0geworICAgICAgICBUeXBlOjpEYXRl
LAorICAgICAgICBUeXBlOjpEYXRlVGltZUxvY2FsLAorICAgICAgICBUeXBlOjpNb250aCwKKyAg
ICAgICAgVHlwZTo6VGltZSwKKyAgICAgICAgVHlwZTo6V2VlaywKKyAgICAgICAgVHlwZTo6TnVt
YmVyLAorICAgICAgICBUeXBlOjpSYW5nZSwKICAgICB9OwogCiAgICAgc3RhdGljIFJlZjxJbnB1
dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50JiwgY29uc3QgQXRvbVN0cmluZyYpOwpAQCAt
MTE1LDMxICsxNTYsMzMgQEAgcHVibGljOgogICAgIC8vIGluZmxleGlibGUgYmVjYXVzZSBpdCdz
IGhhcmRlciB0byBhZGQgbmV3IGlucHV0IHR5cGVzIGlmIHRoZXJlIGlzCiAgICAgLy8gc2NhdHRl
cmVkIGNvZGUgd2l0aCBzcGVjaWFsIGNhc2VzIGZvciB2YXJpb3VzIHR5cGVzLgogCi0gICAgdmly
dHVhbCBib29sIGlzQ2hlY2tib3goKSBjb25zdDsKLSAgICB2aXJ0dWFsIGJvb2wgaXNDb2xvckNv
bnRyb2woKSBjb25zdDsKLSAgICB2aXJ0dWFsIGJvb2wgaXNEYXRlRmllbGQoKSBjb25zdDsKLSAg
ICB2aXJ0dWFsIGJvb2wgaXNEYXRlVGltZUZpZWxkKCkgY29uc3Q7Ci0gICAgdmlydHVhbCBib29s
IGlzRGF0ZVRpbWVMb2NhbEZpZWxkKCkgY29uc3Q7Ci0gICAgdmlydHVhbCBib29sIGlzRW1haWxG
aWVsZCgpIGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCBpc0ZpbGVVcGxvYWQoKSBjb25zdDsKLSAg
ICB2aXJ0dWFsIGJvb2wgaXNIaWRkZW5UeXBlKCkgY29uc3Q7Ci0gICAgdmlydHVhbCBib29sIGlz
SW1hZ2VCdXR0b24oKSBjb25zdDsKLSAgICB2aXJ0dWFsIGJvb2wgaXNJbnRlcmFjdGl2ZUNvbnRl
bnQoKSBjb25zdDsKLSAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydExhYmVscygpIGNvbnN0OwotICAg
IHZpcnR1YWwgYm9vbCBpc01vbnRoRmllbGQoKSBjb25zdDsKLSAgICB2aXJ0dWFsIGJvb2wgaXNO
dW1iZXJGaWVsZCgpIGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCBpc1Bhc3N3b3JkRmllbGQoKSBj
b25zdDsKLSAgICB2aXJ0dWFsIGJvb2wgaXNSYWRpb0J1dHRvbigpIGNvbnN0OwotICAgIHZpcnR1
YWwgYm9vbCBpc1JhbmdlQ29udHJvbCgpIGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCBpc1NlYXJj
aEZpZWxkKCkgY29uc3Q7Ci0gICAgdmlydHVhbCBib29sIGlzU3VibWl0QnV0dG9uKCkgY29uc3Q7
Ci0gICAgdmlydHVhbCBib29sIGlzVGVsZXBob25lRmllbGQoKSBjb25zdDsKLSAgICB2aXJ0dWFs
IGJvb2wgaXNUZXh0QnV0dG9uKCkgY29uc3Q7Ci0gICAgdmlydHVhbCBib29sIGlzVGV4dEZpZWxk
KCkgY29uc3Q7Ci0gICAgdmlydHVhbCBib29sIGlzVGV4dFR5cGUoKSBjb25zdDsKLSAgICB2aXJ0
dWFsIGJvb2wgaXNUaW1lRmllbGQoKSBjb25zdDsKLSAgICB2aXJ0dWFsIGJvb2wgaXNVUkxGaWVs
ZCgpIGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCBpc1dlZWtGaWVsZCgpIGNvbnN0OworICAgIGJv
b2wgaXNDaGVja2JveCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBUeXBlOjpDaGVja2JveDsg
fQorICAgIGJvb2wgaXNDb2xvckNvbnRyb2woKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gVHlw
ZTo6Q29sb3I7IH0KKyAgICBib29sIGlzRGF0ZUZpZWxkKCkgY29uc3QgeyByZXR1cm4gbV90eXBl
ID09IFR5cGU6OkRhdGU7IH0KKyAgICBib29sIGlzRGF0ZVRpbWVGaWVsZCgpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9CisgICAgYm9vbCBpc0RhdGVUaW1lTG9jYWxGaWVsZCgpIGNvbnN0IHsgcmV0
dXJuIG1fdHlwZSA9PSBUeXBlOjpEYXRlVGltZUxvY2FsOyB9CisgICAgYm9vbCBpc0VtYWlsRmll
bGQoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gVHlwZTo6RW1haWw7IH0KKyAgICBib29sIGlz
RmlsZVVwbG9hZCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBUeXBlOjpGaWxlOyB9CisgICAg
Ym9vbCBpc0hpZGRlblR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gVHlwZTo6SGlkZGVu
OyB9CisgICAgYm9vbCBpc0ltYWdlQnV0dG9uKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IFR5
cGU6OkltYWdlOyB9CisgICAgYm9vbCBpc01vbnRoRmllbGQoKSBjb25zdCB7IHJldHVybiBtX3R5
cGUgPT0gVHlwZTo6TW9udGg7IH0KKyAgICBib29sIGlzTnVtYmVyRmllbGQoKSBjb25zdCB7IHJl
dHVybiBtX3R5cGUgPT0gVHlwZTo6TnVtYmVyOyB9CisgICAgYm9vbCBpc1Bhc3N3b3JkRmllbGQo
KSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gVHlwZTo6UGFzc3dvcmQ7IH0KKyAgICBib29sIGlz
UmFkaW9CdXR0b24oKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gVHlwZTo6UmFkaW87IH0KKyAg
ICBib29sIGlzUmFuZ2VDb250cm9sKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IFR5cGU6OlJh
bmdlOyB9CisgICAgYm9vbCBpc1NlYXJjaEZpZWxkKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09
IFR5cGU6OlNlYXJjaDsgfQorICAgIGJvb2wgaXNTdWJtaXRCdXR0b24oKSBjb25zdCB7IHJldHVy
biBtX3R5cGUgPT0gVHlwZTo6U3VibWl0OyB9CisgICAgYm9vbCBpc1RlbGVwaG9uZUZpZWxkKCkg
Y29uc3QgeyByZXR1cm4gbV90eXBlID09IFR5cGU6OlRlbGVwaG9uZTsgfQorICAgIGJvb2wgaXNU
aW1lRmllbGQoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gVHlwZTo6VGltZTsgfQorICAgIGJv
b2wgaXNVUkxGaWVsZCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBUeXBlOjpVUkw7IH0KKyAg
ICBib29sIGlzV2Vla0ZpZWxkKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IFR5cGU6OldlZWs7
IH0KKworICAgIGJvb2wgaXNUZXh0QnV0dG9uKCkgY29uc3QgeyByZXR1cm4gdGV4dEJ1dHRvblR5
cGVzLmNvbnRhaW5zKG1fdHlwZSk7IH0KKyAgICBib29sIGlzVGV4dEZpZWxkKCkgY29uc3QgeyBy
ZXR1cm4gdGV4dEZpZWxkVHlwZXMuY29udGFpbnMobV90eXBlKTsgfQorICAgIGJvb2wgaXNUZXh0
VHlwZSgpIGNvbnN0IHsgcmV0dXJuIHRleHRUeXBlcy5jb250YWlucyhtX3R5cGUpOyB9CisKKyAg
ICBib29sIGlzSW50ZXJhY3RpdmVDb250ZW50KCkgY29uc3Q7CisgICAgYm9vbCBzdXBwb3J0TGFi
ZWxzKCkgY29uc3Q7CiAKICAgICAvLyBGb3JtIHZhbHVlIGZ1bmN0aW9ucy4KIApAQCAtMjc3LDcg
KzMyMCw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUmVzZXRPbkRvY3VtZW50
QWN0aXZhdGlvbigpOwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSZXNwZWN0TGlzdEF0dHJpYnV0
ZSgpOwogICAgIHZpcnR1YWwgYm9vbCBpc0VudW1lcmF0YWJsZSgpOwotICAgIHZpcnR1YWwgYm9v
bCBpc0NoZWNrYWJsZSgpOwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSZXNwZWN0SGVpZ2h0QW5k
V2lkdGhBdHRyaWJ1dGVzKCk7CiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzUGxhY2Vob2xkZXIo
KSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNSZWFkT25seSgpIGNvbnN0OwpAQCAt
Mjk4LDcgKzM0MCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2VsZWN0Q29sb3IoU3Ry
aW5nVmlldyk7CiAgICAgdmlydHVhbCBWZWN0b3I8Q29sb3I+IHN1Z2dlc3RlZENvbG9ycygpIGNv
bnN0OwogCi0gICAgYm9vbCBpc1N0ZXBwYWJsZSgpIGNvbnN0OworICAgIGJvb2wgaXNDaGVja2Fi
bGUoKSBjb25zdCB7IHJldHVybiBjaGVja2FibGVUeXBlcy5jb250YWlucyhtX3R5cGUpOyB9Cisg
ICAgYm9vbCBpc1N0ZXBwYWJsZSgpIGNvbnN0IHsgcmV0dXJuIHN0ZXBwYWJsZVR5cGVzLmNvbnRh
aW5zKG1fdHlwZSk7IH0KIAogICAgIC8vIFBhcnNlcyB0aGUgc3BlY2lmaWVkIHN0cmluZyBmb3Ig
dGhlIHR5cGUsIGFuZCByZXR1cm4KICAgICAvLyB0aGUgRGVjaW1hbCB2YWx1ZSBmb3IgdGhlIHBh
cnNpbmcgcmVzdWx0IGlmIHRoZSBwYXJzaW5nCkBAIC0zNDAsNyArMzgzLDYgQEAgcHJvdGVjdGVk
OgogICAgIEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQoKSBjb25zdCB7IHJldHVybiBtX2VsZW1l
bnQuZ2V0KCk7IH0KICAgICBDaHJvbWUqIGNocm9tZSgpIGNvbnN0OwogICAgIERlY2ltYWwgcGFy
c2VUb051bWJlck9yTmFOKGNvbnN0IFN0cmluZyYpIGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCBp
c1N0ZXBwYWJsZVNsb3coKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCiBwcml2YXRlOgogICAg
IC8vIEhlbHBlciBmb3Igc3RlcFVwKCkvc3RlcERvd24oKS4gQWRkcyBzdGVwIHZhbHVlICogY291
bnQgdG8gdGhlIGN1cnJlbnQgdmFsdWUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L01vbnRoSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUu
Y3BwCmluZGV4IDM1ZTQ5OGE0NzA3OTMxMjU4MGQ5MWE5ZGFjYTljOGYwMGJmYWQ0ZjguLmRkOTQw
ZWI5MzZkYTA2NzQ2YjlmZGUzMjlmYjE0YmNiOTEzZWRhM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
TW9udGhJbnB1dFR5cGUuY3BwCkBAIC0xMjcsMTEgKzEyNyw2IEBAIE9wdGlvbmFsPERhdGVDb21w
b25lbnRzPiBNb250aElucHV0VHlwZTo6c2V0TWlsbGlzZWNvbmRUb0RhdGVDb21wb25lbnRzKGRv
dWJsZSB2CiAgICAgcmV0dXJuIERhdGVDb21wb25lbnRzOjpmcm9tTW9udGhzU2luY2VFcG9jaCh2
YWx1ZSk7CiB9CiAKLWJvb2wgTW9udGhJbnB1dFR5cGU6OmlzTW9udGhGaWVsZCgpIGNvbnN0Ci17
Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KIHZvaWQgTW9udGhJbnB1dFR5cGU6OmhhbmRsZURPTUFj
dGl2YXRlRXZlbnQoRXZlbnQmKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9Nb250aElucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5o
CmluZGV4IDRlN2FiYTZkNTdlMWQ0MTEyYjIyZjU2MWQ3MjViYTAxMDU4OTg2NGUuLmQxZTVhMWFh
OGMwNjg3MDFmYjllNTgzMzczYjk1ZmQ3NWU2YTVlYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRo
SW5wdXRUeXBlLmgKQEAgLTU0LDcgKzU0LDYgQEAgcHJpdmF0ZToKICAgICBTdGVwUmFuZ2UgY3Jl
YXRlU3RlcFJhbmdlKEFueVN0ZXBIYW5kbGluZykgY29uc3Qgb3ZlcnJpZGU7CiAgICAgT3B0aW9u
YWw8RGF0ZUNvbXBvbmVudHM+IHBhcnNlVG9EYXRlQ29tcG9uZW50cyhjb25zdCBTdHJpbmdWaWV3
JikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgT3B0aW9uYWw8RGF0ZUNvbXBvbmVudHM+IHNldE1pbGxp
c2Vjb25kVG9EYXRlQ29tcG9uZW50cyhkb3VibGUpIGNvbnN0IG92ZXJyaWRlOwotICAgIGJvb2wg
aXNNb250aEZpZWxkKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBoYW5kbGVET01BY3RpdmF0
ZUV2ZW50KEV2ZW50Jikgb3ZlcnJpZGU7CiAKICAgICBib29sIGlzVmFsaWRGb3JtYXQoT3B0aW9u
U2V0PERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM+KSBjb25zdCBmaW5hbDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmNwcAppbmRleCBlNjdiNDhmZmQxZmJlZTM3Y2Q1
OTAzZDBlNDI0MDRlZjcyN2QzZjk0Li42ZTQxN2E0MGU0OGFhZWY2ZDBiZWJjNTM1OGRiZjVmODNk
ODczMzZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuY3BwCkBAIC0yMTAs
MTEgKzIxMCw2IEBAIGZsb2F0IE51bWJlcklucHV0VHlwZTo6ZGVjb3JhdGlvbldpZHRoKCkgY29u
c3QKICAgICByZXR1cm4gd2lkdGg7CiB9CiAKLWJvb2wgTnVtYmVySW5wdXRUeXBlOjppc1N0ZXBw
YWJsZVNsb3coKSBjb25zdAotewotICAgIHJldHVybiB0cnVlOwotfQotCiBhdXRvIE51bWJlcklu
cHV0VHlwZTo6aGFuZGxlS2V5ZG93bkV2ZW50KEtleWJvYXJkRXZlbnQmIGV2ZW50KSAtPiBTaG91
bGRDYWxsQmFzZUV2ZW50SGFuZGxlcgogewogICAgIGhhbmRsZUtleWRvd25FdmVudEZvclNwaW5C
dXR0b24oZXZlbnQpOwpAQCAtMjkyLDExICsyODcsNiBAQCBib29sIE51bWJlcklucHV0VHlwZTo6
c3VwcG9ydHNQbGFjZWhvbGRlcigpIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wg
TnVtYmVySW5wdXRUeXBlOjppc051bWJlckZpZWxkKCkgY29uc3QKLXsKLSAgICByZXR1cm4gdHJ1
ZTsKLX0KLQogdm9pZCBOdW1iZXJJbnB1dFR5cGU6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVh
bGlmaWVkTmFtZSYgbmFtZSkKIHsKICAgICBBU1NFUlQoZWxlbWVudCgpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL051bWJlcklucHV0VHlwZS5oCmluZGV4IGIxZGFkMGNkOGZiMmZmNDM5ZWZmM2MzYjhiNDBh
MWYyM2UwMjg3YTEuLjJmYzBlZDY5ZjQzYzY2N2Y4YzY0ZDU4YjZlNTk5Yjg4ZWU3NmRkZWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuaApAQCAtNTAsNyArNTAsNiBAQCBwcml2
YXRlOgogICAgIGJvb2wgdHlwZU1pc21hdGNoKCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBzaXpl
U2hvdWxkSW5jbHVkZURlY29yYXRpb24oaW50IGRlZmF1bHRTaXplLCBpbnQmIHByZWZlcnJlZFNp
emUpIGNvbnN0IGZpbmFsOwogICAgIGZsb2F0IGRlY29yYXRpb25XaWR0aCgpIGNvbnN0IGZpbmFs
OwotICAgIGJvb2wgaXNTdGVwcGFibGVTbG93KCkgY29uc3QgZmluYWw7CiAgICAgU3RlcFJhbmdl
IGNyZWF0ZVN0ZXBSYW5nZShBbnlTdGVwSGFuZGxpbmcpIGNvbnN0IGZpbmFsOwogICAgIFNob3Vs
ZENhbGxCYXNlRXZlbnRIYW5kbGVyIGhhbmRsZUtleWRvd25FdmVudChLZXlib2FyZEV2ZW50Jikg
ZmluYWw7CiAgICAgRGVjaW1hbCBwYXJzZVRvTnVtYmVyKGNvbnN0IFN0cmluZyYsIGNvbnN0IERl
Y2ltYWwmKSBjb25zdCBmaW5hbDsKQEAgLTYyLDcgKzYxLDYgQEAgcHJpdmF0ZToKICAgICBib29s
IGhhc0JhZElucHV0KCkgY29uc3QgZmluYWw7CiAgICAgU3RyaW5nIGJhZElucHV0VGV4dCgpIGNv
bnN0IGZpbmFsOwogICAgIGJvb2wgc3VwcG9ydHNQbGFjZWhvbGRlcigpIGNvbnN0IGZpbmFsOwot
ICAgIGJvb2wgaXNOdW1iZXJGaWVsZCgpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgYXR0cmlidXRl
Q2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgZmluYWw7CiB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL1Bhc3N3b3JkSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvUGFzc3dvcmRJbnB1dFR5cGUuY3BwCmluZGV4IDdjOGE5YjA1NDMwYTg2ODVlNWY0ODZl
MGY0YTAwZmVmMjcyYzhlY2EuLjJhMDNmNjRmYTEzYTkxZGY1ODM4ZGFiZWY1MzM4YWU2MDFlODVl
NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGFzc3dvcmRJbnB1dFR5cGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGFzc3dvcmRJbnB1dFR5cGUuY3BwCkBAIC04Niw5
ICs4Niw0IEBAIGJvb2wgUGFzc3dvcmRJbnB1dFR5cGU6OnNob3VsZFJlc3BlY3RMaXN0QXR0cmli
dXRlKCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wgUGFzc3dvcmRJbnB1dFR5cGU6Omlz
UGFzc3dvcmRGaWVsZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGFzc3dvcmRJ
bnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGFzc3dvcmRJbnB1dFR5cGUuaAppbmRl
eCAzYzg3NDAxM2QxZjI3ZDBmYWFhMGZjNmVhYTBkZThiYWZjMjU3ZDQ0Li5iODJlMzllN2NjZGY0
OTI2MDgzYWI1YzgwMWYyOWNiNTYyZTQxODcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1Bhc3N3b3JkSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9QYXNzd29y
ZElucHV0VHlwZS5oCkBAIC00Nyw3ICs0Nyw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBzaG91bGRV
c2VJbnB1dE1ldGhvZCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgc2hvdWxkUmVzZXRPbkRv
Y3VtZW50QWN0aXZhdGlvbigpIG92ZXJyaWRlOwogICAgIGJvb2wgc2hvdWxkUmVzcGVjdExpc3RB
dHRyaWJ1dGUoKSBvdmVycmlkZTsKLSAgICBib29sIGlzUGFzc3dvcmRGaWVsZCgpIGNvbnN0IG92
ZXJyaWRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9SYWRpb0lucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1Jh
ZGlvSW5wdXRUeXBlLmNwcAppbmRleCA5ZDg5YzZmYjY5MTYwYThlMTQ4MGYwYmVmZjE5NzBkYzA5
YjY3MDdhLi4yNWI0ZmRiYWY0ZTFmMWUyMjM4M2RjNmVkNjA2Yjg3NDkyMmU3YzFkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhZGlvSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1JhZGlvSW5wdXRUeXBlLmNwcApAQCAtMTgwLDExICsxODAsNiBAQCB2b2lk
IFJhZGlvSW5wdXRUeXBlOjpkaWREaXNwYXRjaENsaWNrKEV2ZW50JiBldmVudCwgY29uc3QgSW5w
dXRFbGVtZW50Q2xpY2tTdGF0ZQogICAgIGV2ZW50LnNldERlZmF1bHRIYW5kbGVkKCk7CiB9CiAK
LWJvb2wgUmFkaW9JbnB1dFR5cGU6OmlzUmFkaW9CdXR0b24oKSBjb25zdAotewotICAgIHJldHVy
biB0cnVlOwotfQotCiBib29sIFJhZGlvSW5wdXRUeXBlOjptYXRjaGVzSW5kZXRlcm1pbmF0ZVBz
ZXVkb0NsYXNzKCkgY29uc3QKIHsKICAgICBBU1NFUlQoZWxlbWVudCgpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFkaW9JbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvUmFkaW9JbnB1dFR5cGUuaAppbmRleCAxM2U5NWU5YTViZDJiOWE5NGI4NWI1MTBlYjllMzZh
YzBiMDhhMmNkLi40MGNlYThmZmVmYTM4YjI4N2U1NzBmZjA0YTYxY2ZhZDFjMGE5ZDA2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhZGlvSW5wdXRUeXBlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9SYWRpb0lucHV0VHlwZS5oCkBAIC01MSw3ICs1MSw2IEBAIHByaXZhdGU6
CiAgICAgYm9vbCBzaG91bGRTZW5kQ2hhbmdlRXZlbnRBZnRlckNoZWNrZWRDaGFuZ2VkKCkgZmlu
YWw7CiAgICAgdm9pZCB3aWxsRGlzcGF0Y2hDbGljayhJbnB1dEVsZW1lbnRDbGlja1N0YXRlJikg
ZmluYWw7CiAgICAgdm9pZCBkaWREaXNwYXRjaENsaWNrKEV2ZW50JiwgY29uc3QgSW5wdXRFbGVt
ZW50Q2xpY2tTdGF0ZSYpIGZpbmFsOwotICAgIGJvb2wgaXNSYWRpb0J1dHRvbigpIGNvbnN0IGZp
bmFsOwogICAgIGJvb2wgbWF0Y2hlc0luZGV0ZXJtaW5hdGVQc2V1ZG9DbGFzcygpIGNvbnN0IGZp
bmFsOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlw
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcAppbmRleCA0NTk2
YTcwMThlZDA5MGE1ZjYxMzRiYzRmMWMwNTc3OTcyYzhhZTQ5Li43OTA0YmY0MTZkMGYzNzI1MDU2
ZGNjODE2M2Q3NWM3ODAwNTRmN2M0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Jh
bmdlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBl
LmNwcApAQCAtODQsMTEgKzg0LDYgQEAgUmFuZ2VJbnB1dFR5cGU6OlJhbmdlSW5wdXRUeXBlKEhU
TUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCiB7CiB9CiAKLWJvb2wgUmFuZ2VJbnB1dFR5cGU6Omlz
UmFuZ2VDb250cm9sKCkgY29uc3QKLXsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQogY29uc3QgQXRv
bVN0cmluZyYgUmFuZ2VJbnB1dFR5cGU6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CiB7CiAgICAg
cmV0dXJuIElucHV0VHlwZU5hbWVzOjpyYW5nZSgpOwpAQCAtMTMzLDExICsxMjgsNiBAQCBTdGVw
UmFuZ2UgUmFuZ2VJbnB1dFR5cGU6OmNyZWF0ZVN0ZXBSYW5nZShBbnlTdGVwSGFuZGxpbmcgYW55
U3RlcEhhbmRsaW5nKSBjb25zdAogICAgIHJldHVybiBTdGVwUmFuZ2UobWluaW11bSwgUmFuZ2VM
aW1pdGF0aW9uczo6VmFsaWQsIG1pbmltdW0sIG1heGltdW0sIHN0ZXAsIHJhbmdlU3RlcERlc2Ny
aXB0aW9uKTsKIH0KIAotYm9vbCBSYW5nZUlucHV0VHlwZTo6aXNTdGVwcGFibGVTbG93KCkgY29u
c3QKLXsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQogdm9pZCBSYW5nZUlucHV0VHlwZTo6aGFuZGxl
TW91c2VEb3duRXZlbnQoTW91c2VFdmVudCYgZXZlbnQpCiB7CiAgICAgQVNTRVJUKGVsZW1lbnQo
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmgKaW5kZXggMzM4NGM2YzI2NWY5N2Zm
OWY1NjNjZDhmOTAwNDQxOTAzMzM5NjA0Yy4uNWY3Y2E3OGIwMWQyZTYzYjE5YjY4Zjk2NTE4M2Ez
Nzc1OGYzY2YzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlw
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuaApAQCAtNDMsMTQg
KzQzLDEyIEBAIHB1YmxpYzoKICAgICBleHBsaWNpdCBSYW5nZUlucHV0VHlwZShIVE1MSW5wdXRF
bGVtZW50Jik7CiAKIHByaXZhdGU6Ci0gICAgYm9vbCBpc1JhbmdlQ29udHJvbCgpIGNvbnN0IGZp
bmFsOwogICAgIGNvbnN0IEF0b21TdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IGZpbmFs
OwogICAgIGRvdWJsZSB2YWx1ZUFzRG91YmxlKCkgY29uc3QgZmluYWw7CiAgICAgRXhjZXB0aW9u
T3I8dm9pZD4gc2V0VmFsdWVBc0RlY2ltYWwoY29uc3QgRGVjaW1hbCYsIFRleHRGaWVsZEV2ZW50
QmVoYXZpb3IpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgdHlwZU1pc21hdGNoRm9yKGNvbnN0IFN0
cmluZyYpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgc3VwcG9ydHNSZXF1aXJlZCgpIGNvbnN0IGZp
bmFsOwogICAgIFN0ZXBSYW5nZSBjcmVhdGVTdGVwUmFuZ2UoQW55U3RlcEhhbmRsaW5nKSBjb25z
dCBmaW5hbDsKLSAgICBib29sIGlzU3RlcHBhYmxlU2xvdygpIGNvbnN0IGZpbmFsOwogICAgIHZv
aWQgaGFuZGxlTW91c2VEb3duRXZlbnQoTW91c2VFdmVudCYpIGZpbmFsOwogICAgIFNob3VsZENh
bGxCYXNlRXZlbnRIYW5kbGVyIGhhbmRsZUtleWRvd25FdmVudChLZXlib2FyZEV2ZW50JikgZmlu
YWw7CiAgICAgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUlucHV0UmVuZGVyZXIoUmVu
ZGVyU3R5bGUmJikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Jlc2V0
SW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmVzZXRJbnB1dFR5cGUuY3BwCmlu
ZGV4IGYwY2RiZTdmOGFkN2EwNzk5YjkzOGMzNTQ5NzhkMmI5MzlkNjAwNDMuLjI1MjIwZTEzNWIw
ZmQxNjgzYzVlOWQzY2E4NTg1NDU3OTdmOWY1NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvUmVzZXRJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmVzZXRJ
bnB1dFR5cGUuY3BwCkBAIC02NCw5ICs2NCw0IEBAIFN0cmluZyBSZXNldElucHV0VHlwZTo6ZGVm
YXVsdFZhbHVlKCkgY29uc3QKICAgICByZXR1cm4gcmVzZXRCdXR0b25EZWZhdWx0TGFiZWwoKTsK
IH0KIAotYm9vbCBSZXNldElucHV0VHlwZTo6aXNUZXh0QnV0dG9uKCkgY29uc3QKLXsKLSAgICBy
ZXR1cm4gdHJ1ZTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9SZXNldElucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9S
ZXNldElucHV0VHlwZS5oCmluZGV4IGE3NzY4MTJkOWMxMWExOTgxM2U1MGRjOWZjYmRhOWQwZWJm
MDE4OWUuLjg4YjdkNGY2ZWQ0YWY2MzRkN2Y1MmY0OWNhMzAxOTRlODNhNGM4OGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmVzZXRJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL1Jlc2V0SW5wdXRUeXBlLmgKQEAgLTQ0LDcgKzQ0LDYgQEAgcHJpdmF0ZToKICAg
ICBib29sIHN1cHBvcnRzVmFsaWRhdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgaGFu
ZGxlRE9NQWN0aXZhdGVFdmVudChFdmVudCYpIG92ZXJyaWRlOwogICAgIFN0cmluZyBkZWZhdWx0
VmFsdWUoKSBjb25zdCBvdmVycmlkZTsKLSAgICBib29sIGlzVGV4dEJ1dHRvbigpIGNvbnN0IG92
ZXJyaWRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9T
ZWFyY2hJbnB1dFR5cGUuY3BwCmluZGV4IGE5NDkyOTNlNTE4ZmI2YzJlY2Y4YTA1MTM3M2Y2MTJm
N2U0ZGZiMDEuLjdlNTcyYzVhZWQ5OTdmZTgwMDI2MDA4MmM5YWY0MmVhMDg2YjNkYjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvU2VhcmNoSW5wdXRUeXBlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1NlYXJjaElucHV0VHlwZS5jcHAKQEAgLTk3LDExICs5Nyw2IEBAIGNv
bnN0IEF0b21TdHJpbmcmIFNlYXJjaElucHV0VHlwZTo6Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QK
ICAgICByZXR1cm4gSW5wdXRUeXBlTmFtZXM6OnNlYXJjaCgpOwogfQogCi1ib29sIFNlYXJjaElu
cHV0VHlwZTo6aXNTZWFyY2hGaWVsZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0K
IGJvb2wgU2VhcmNoSW5wdXRUeXBlOjpuZWVkc0NvbnRhaW5lcigpIGNvbnN0CiB7CiAgICAgcmV0
dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1NlYXJjaElucHV0VHlw
ZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5cGUuaAppbmRleCBiNzkyZGQw
NmEzMTkyMTI4ODcwYTFiZDhmNWUyYjFiMzhiNTAzOGVjLi4zMzE4MzNkZDZkODcyZGQwNzBmNTdl
ODQ3ZTFjYTA0ZTMxMjQ4MmVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1NlYXJj
aElucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvU2VhcmNoSW5wdXRUeXBlLmgK
QEAgLTUwLDcgKzUwLDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29u
c3QgUXVhbGlmaWVkTmFtZSYpIGZpbmFsOwogICAgIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBj
cmVhdGVJbnB1dFJlbmRlcmVyKFJlbmRlclN0eWxlJiYpIGZpbmFsOwogICAgIGNvbnN0IEF0b21T
dHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IGZpbmFsOwotICAgIGJvb2wgaXNTZWFyY2hG
aWVsZCgpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgbmVlZHNDb250YWluZXIoKSBjb25zdCBmaW5h
bDsKICAgICB2b2lkIGNyZWF0ZVNoYWRvd1N1YnRyZWVBbmRVcGRhdGVJbm5lclRleHRFbGVtZW50
RWRpdGFiaWxpdHkoQ29udGFpbmVyTm9kZTo6Q2hpbGRDaGFuZ2U6OlNvdXJjZSwgYm9vbCkgZmlu
YWw7CiAgICAgdm9pZCBkZXN0cm95U2hhZG93U3VidHJlZSgpIGZpbmFsOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9TdWJtaXRJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9TdWJtaXRJbnB1dFR5cGUuY3BwCmluZGV4IDk4NWFmNjY3MmRjYTgzNmYyMjYxYTBhM2Q3
MzZjNjI5YWRiODQ1M2IuLmQ4NTFjODViNjNjNGFkZGExMTIzZDlkOTMwODFiZTZhMzg0OTBlNWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvU3VibWl0SW5wdXRUeXBlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL1N1Ym1pdElucHV0VHlwZS5jcHAKQEAgLTkwLDE0ICs5MCw0
IEBAIFN0cmluZyBTdWJtaXRJbnB1dFR5cGU6OmRlZmF1bHRWYWx1ZSgpIGNvbnN0CiAgICAgcmV0
dXJuIHN1Ym1pdEJ1dHRvbkRlZmF1bHRMYWJlbCgpOwogfQogCi1ib29sIFN1Ym1pdElucHV0VHlw
ZTo6aXNTdWJtaXRCdXR0b24oKSBjb25zdAotewotICAgIHJldHVybiB0cnVlOwotfQotCi1ib29s
IFN1Ym1pdElucHV0VHlwZTo6aXNUZXh0QnV0dG9uKCkgY29uc3QKLXsKLSAgICByZXR1cm4gdHJ1
ZTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9TdWJtaXRJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvU3VibWl0SW5w
dXRUeXBlLmgKaW5kZXggOTcwYjE2NDI5OGYzN2NlNGJmZTI4MmYxZjFjYTZjOWExNmUzOTNmOC4u
MzNjODNlNTRmNmY3MzcxNmI3OTVlZTJkZjQ4ZGQyZGNhMTc0N2VjYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9TdWJtaXRJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1N1Ym1pdElucHV0VHlwZS5oCkBAIC00Niw4ICs0Niw2IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBoYW5kbGVET01BY3RpdmF0ZUV2ZW50KEV2ZW50Jikgb3ZlcnJpZGU7CiAgICAgYm9vbCBjYW5C
ZVN1Y2Nlc3NmdWxTdWJtaXRCdXR0b24oKSBvdmVycmlkZTsKICAgICBTdHJpbmcgZGVmYXVsdFZh
bHVlKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgYm9vbCBpc1N1Ym1pdEJ1dHRvbigpIGNvbnN0IG92
ZXJyaWRlOwotICAgIGJvb2wgaXNUZXh0QnV0dG9uKCkgY29uc3Qgb3ZlcnJpZGU7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Rl
bGVwaG9uZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RlbGVwaG9uZUlucHV0
VHlwZS5jcHAKaW5kZXggODI4ZDMwZmI5ZTc4ZDA2MDI5ZTNhNzk0ZmE3YjBkNzMzMmI3OGYwNS4u
NGM2OGYxZjVlZTJhZTJjMmMxMGFmYTBhNDQ1MDY1YzdhYjZjNjA0MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9UZWxlcGhvbmVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvVGVsZXBob25lSW5wdXRUeXBlLmNwcApAQCAtNDEsOSArNDEsNCBAQCBjb25zdCBB
dG9tU3RyaW5nJiBUZWxlcGhvbmVJbnB1dFR5cGU6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CiAg
ICAgcmV0dXJuIElucHV0VHlwZU5hbWVzOjp0ZWxlcGhvbmUoKTsKIH0KIAotYm9vbCBUZWxlcGhv
bmVJbnB1dFR5cGU6OmlzVGVsZXBob25lRmllbGQoKSBjb25zdAotewotICAgIHJldHVybiB0cnVl
OwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1RlbGVwaG9uZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZWxlcGhv
bmVJbnB1dFR5cGUuaAppbmRleCA0ZGU3ZmQyYmRjOWM5YTdkYzg2MTUzYzg2MmY1OTc2ZDg3ZGQ0
MWNjLi45MTk0NWY3MjUzMzVkNWYxNjQyMTQ5MWU2OTE0ZGM4NjM1MGFlZGZmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RlbGVwaG9uZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvVGVsZXBob25lSW5wdXRUeXBlLmgKQEAgLTQxLDcgKzQxLDYgQEAgcHVibGlj
OgogCiBwcml2YXRlOgogICAgIGNvbnN0IEF0b21TdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNv
bnN0IG92ZXJyaWRlOwotICAgIGJvb2wgaXNUZWxlcGhvbmVGaWVsZCgpIGNvbnN0IG92ZXJyaWRl
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0
RmllbGRJbnB1dFR5cGUuY3BwCmluZGV4IDAzOTlhYjc0YTc4YTc5YWQ5YzBlOTVmNjU2MzViMzZm
NjM4ODU4MzguLjNjZmQ3ZjI2MzNkYjBhNDQ1Y2M1NjEyNDYxZTVkZGNjYWM0ZTQ4ZTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAKQEAgLTEwMSwxMSArMTAx
LDYgQEAgYm9vbCBUZXh0RmllbGRJbnB1dFR5cGU6OmlzTW91c2VGb2N1c2FibGUoKSBjb25zdAog
ICAgIHJldHVybiBlbGVtZW50KCktPmlzVGV4dEZvcm1Db250cm9sRm9jdXNhYmxlKCk7CiB9CiAK
LWJvb2wgVGV4dEZpZWxkSW5wdXRUeXBlOjppc1RleHRGaWVsZCgpIGNvbnN0Ci17Ci0gICAgcmV0
dXJuIHRydWU7Ci19Ci0KIGJvb2wgVGV4dEZpZWxkSW5wdXRUeXBlOjppc0VtcHR5VmFsdWUoKSBj
b25zdAogewogICAgIGF1dG8gaW5uZXJUZXh0ID0gaW5uZXJUZXh0RWxlbWVudCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmgKaW5kZXggZTg0NzJjNGI5NWVkNWM4Mjlk
Yzg0MDNkMThmMWE1ZGJmNmUxMGNlZi4uNzhhZmE0YWY5YTUxMTc1OWI0MThhYWE4NzEyMTYyMWM3
NDhjYTY0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5
cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5oCkBAIC04
OSw3ICs4OSw2IEBAIHByb3RlY3RlZDoKIHByaXZhdGU6CiAgICAgYm9vbCBpc0tleWJvYXJkRm9j
dXNhYmxlKEtleWJvYXJkRXZlbnQqKSBjb25zdCBmaW5hbDsKICAgICBib29sIGlzTW91c2VGb2N1
c2FibGUoKSBjb25zdCBmaW5hbDsKLSAgICBib29sIGlzVGV4dEZpZWxkKCkgY29uc3QgZmluYWw7
CiAgICAgYm9vbCBpc0VtcHR5VmFsdWUoKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIGhhbmRsZUJl
Zm9yZVRleHRJbnNlcnRlZEV2ZW50KEJlZm9yZVRleHRJbnNlcnRlZEV2ZW50JikgZmluYWw7CiAg
ICAgdm9pZCBmb3J3YXJkRXZlbnQoRXZlbnQmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJ
bnB1dFR5cGUuY3BwCmluZGV4IGZkZmNlNWFkYmY4OWNhZGVjNWJmYzUxMTAxOTI1YTZkOWJiZjBh
N2IuLjcwMWFiYjAwMGRkZTA4NzdiNzdkZmI2ZTc5YTM2OWQ1NWY3N2I5ZmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNwcApAQCAtMTAyLDExICsxMDIsNiBAQCBPcHRpb25hbDxE
YXRlQ29tcG9uZW50cz4gVGltZUlucHV0VHlwZTo6c2V0TWlsbGlzZWNvbmRUb0RhdGVDb21wb25l
bnRzKGRvdWJsZSB2YQogICAgIHJldHVybiBEYXRlQ29tcG9uZW50czo6ZnJvbU1pbGxpc2Vjb25k
c1NpbmNlTWlkbmlnaHQodmFsdWUpOwogfQogCi1ib29sIFRpbWVJbnB1dFR5cGU6OmlzVGltZUZp
ZWxkKCkgY29uc3QKLXsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQogdm9pZCBUaW1lSW5wdXRUeXBl
OjpoYW5kbGVET01BY3RpdmF0ZUV2ZW50KEV2ZW50JikKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1l
SW5wdXRUeXBlLmgKaW5kZXggNzA5YjM3NDEwMDJlZTMwMzE2NjhkZjFlNDQyZDYxMjE5YjA5MzMx
ZC4uYTNiZWQ3MTFkZWQ4ZWQyZjRjYzI1OGY4Zjg1YjU5MjUxZDY2NmRlZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9UaW1lSW5wdXRUeXBlLmgKQEAgLTQ4LDcgKzQ4LDYgQEAgcHJpdmF0ZToKICAgICBTdGVw
UmFuZ2UgY3JlYXRlU3RlcFJhbmdlKEFueVN0ZXBIYW5kbGluZykgY29uc3Qgb3ZlcnJpZGU7CiAg
ICAgT3B0aW9uYWw8RGF0ZUNvbXBvbmVudHM+IHBhcnNlVG9EYXRlQ29tcG9uZW50cyhjb25zdCBT
dHJpbmdWaWV3JikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgT3B0aW9uYWw8RGF0ZUNvbXBvbmVudHM+
IHNldE1pbGxpc2Vjb25kVG9EYXRlQ29tcG9uZW50cyhkb3VibGUpIGNvbnN0IG92ZXJyaWRlOwot
ICAgIGJvb2wgaXNUaW1lRmllbGQoKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIGhhbmRsZURP
TUFjdGl2YXRlRXZlbnQoRXZlbnQmKSBvdmVycmlkZTsKIAogICAgIGJvb2wgaXNWYWxpZEZvcm1h
dChPcHRpb25TZXQ8RGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0cz4pIGNvbnN0IGZpbmFs
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9VUkxJbnB1dFR5cGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9VUkxJbnB1dFR5cGUuY3BwCmluZGV4IDc2ODE4YTI2MDk4ZTc1Y2M4
OGZlZjc5Zjg1MWEwOGJiYzljYTllNmQuLjJjMjdlMjI5ZTM5MjZhN2Y2M2RmMzY3NDMxODk1ZWI1
MTkwYjc5MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVVJMSW5wdXRUeXBlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1VSTElucHV0VHlwZS5jcHAKQEAgLTYxLDExICs2
MSw2IEBAIFN0cmluZyBVUkxJbnB1dFR5cGU6OnR5cGVNaXNtYXRjaFRleHQoKSBjb25zdAogICAg
IHJldHVybiB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaEZvclVSTFRleHQoKTsKIH0KIAot
Ym9vbCBVUkxJbnB1dFR5cGU6OmlzVVJMRmllbGQoKSBjb25zdAotewotICAgIHJldHVybiB0cnVl
OwotfQotCiBTdHJpbmcgVVJMSW5wdXRUeXBlOjpzYW5pdGl6ZVZhbHVlKGNvbnN0IFN0cmluZyYg
cHJvcG9zZWRWYWx1ZSkgY29uc3QKIHsKICAgICByZXR1cm4gc3RyaXBMZWFkaW5nQW5kVHJhaWxp
bmdIVE1MU3BhY2VzKEJhc2VUZXh0SW5wdXRUeXBlOjpzYW5pdGl6ZVZhbHVlKHByb3Bvc2VkVmFs
dWUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVVJMSW5wdXRUeXBlLmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL1VSTElucHV0VHlwZS5oCmluZGV4IDkwMzhjMGU1NWIyOTY1Njcw
Y2Q3YWEzNjM1NzBlOWIxODg3YmY4MDcuLjFkYTk1MzVjMjQxZWE4ZWMyNTNlYTA0YjZiMmE3YzY4
YzJmNTZjMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVVJMSW5wdXRUeXBlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9VUkxJbnB1dFR5cGUuaApAQCAtNDQsNyArNDQsNiBA
QCBwcml2YXRlOgogICAgIGJvb2wgdHlwZU1pc21hdGNoRm9yKGNvbnN0IFN0cmluZyYpIGNvbnN0
IG92ZXJyaWRlOwogICAgIGJvb2wgdHlwZU1pc21hdGNoKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAg
U3RyaW5nIHR5cGVNaXNtYXRjaFRleHQoKSBjb25zdCBvdmVycmlkZTsKLSAgICBib29sIGlzVVJM
RmllbGQoKSBjb25zdCBvdmVycmlkZTsKICAgICBTdHJpbmcgc2FuaXRpemVWYWx1ZShjb25zdCBT
dHJpbmcmKSBjb25zdCBvdmVycmlkZTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvV2Vla0lucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5
cGUuY3BwCmluZGV4IDFmZjY2YzNiM2M1YWE4ZDkyMmZkZDk3MzI0N2FkZmFlOTI0M2FkOGQuLmI1
NTIwMTljODE5M2FkNjdmYzAxZTI2OTgxM2NkZDdhMzk0MDJjNzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvV2Vla0lucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9XZWVrSW5wdXRUeXBlLmNwcApAQCAtNzgsMTEgKzc4LDYgQEAgT3B0aW9uYWw8RGF0ZUNvbXBv
bmVudHM+IFdlZWtJbnB1dFR5cGU6OnNldE1pbGxpc2Vjb25kVG9EYXRlQ29tcG9uZW50cyhkb3Vi
bGUgdmEKICAgICByZXR1cm4gRGF0ZUNvbXBvbmVudHM6OmZyb21NaWxsaXNlY29uZHNTaW5jZUVw
b2NoRm9yV2Vlayh2YWx1ZSk7CiB9CiAKLWJvb2wgV2Vla0lucHV0VHlwZTo6aXNXZWVrRmllbGQo
KSBjb25zdAotewotICAgIHJldHVybiB0cnVlOwotfQotCiB2b2lkIFdlZWtJbnB1dFR5cGU6Omhh
bmRsZURPTUFjdGl2YXRlRXZlbnQoRXZlbnQmKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJbnB1
dFR5cGUuaAppbmRleCA1NGVlOWUxNjQyYmExNGVkMjY4MDA0NDFlYjY1MzQwZjQwZDM2YWNkLi41
ZGNiMTAxMmIyNzVkNzA0OTFhZmMxYjc2MGI2ZTJkYTZiOGJhMTQ4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L1dlZWtJbnB1dFR5cGUuaApAQCAtNTAsNyArNTAsNiBAQCBwcml2YXRlOgogICAgIFN0ZXBSYW5n
ZSBjcmVhdGVTdGVwUmFuZ2UoQW55U3RlcEhhbmRsaW5nKSBjb25zdCBvdmVycmlkZTsKICAgICBP
cHRpb25hbDxEYXRlQ29tcG9uZW50cz4gcGFyc2VUb0RhdGVDb21wb25lbnRzKGNvbnN0IFN0cmlu
Z1ZpZXcmKSBjb25zdCBvdmVycmlkZTsKICAgICBPcHRpb25hbDxEYXRlQ29tcG9uZW50cz4gc2V0
TWlsbGlzZWNvbmRUb0RhdGVDb21wb25lbnRzKGRvdWJsZSkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAg
Ym9vbCBpc1dlZWtGaWVsZCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgaGFuZGxlRE9NQWN0
aXZhdGVFdmVudChFdmVudCYpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBpc1ZhbGlkRm9ybWF0KE9w
dGlvblNldDxEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzPikgY29uc3QgZmluYWw7Cg==
</data>
<flag name="review"
          id="436798"
          type_id="1"
          status="+"
          setter="ysuzuki"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418752</attachid>
            <date>2021-01-29 11:53:17 -0800</date>
            <delta_ts>2021-01-29 19:10:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221121-20210129115316.patch</filename>
            <type>text/plain</type>
            <size>50678</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxODg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWRjZmMzMWZkMjVhNGRl
OGVmMmVmMDI3N2Q1N2E1ZDAzOWU2ZTBhOC4uN2RmYjhhMjBlNjEzMTlmOTEzYjkyNjU5NWJiNzFj
M2NmYzcxODY5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0MCBAQAorMjAyMS0wMS0yOCAgU2lt
b24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBEZXZpcnR1YWxp
emUgc29tZSBmdW5jdGlvbnMgb24gSW5wdXRUeXBlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjExMjEKKworICAgICAgICBSZXZpZXdlZCBieSBZdXN1
a2UgU3V6dWtpIC4KKworICAgICAgICBWaXJ0dWFsIGZ1bmN0aW9ucyBvbiBJbnB1dFR5cGUgc2hv
dyB1cCBpbiBTcGVlZG9tZXRlciBwcm9maWxlcy4gV2UgY2FuIG1ha2UKKyAgICAgICAgbWFueSBv
ZiB0aGVzZSB2aXJ0dWFsIGZ1bmN0aW9ucyBub24tdmlydHVhbCBieSBqdXN0IHN3aXRjaGluZyBv
biB0aGUgaW5wdXQgdHlwZS4KKworICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAg
KiBodG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmFz
ZUNoZWNrYWJsZUlucHV0VHlwZTo6aXNDaGVja2FibGUpOiBEZWxldGVkLgorICAgICAgICAqIGh0
bWwvQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvQmFzZVRleHRJbnB1
dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmFzZVRleHRJbnB1dFR5cGU6OmlzVGV4dFR5
cGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvQmFzZVRleHRJbnB1dFR5cGUuaDoK
KyAgICAgICAgKiBodG1sL0J1dHRvbklucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpC
dXR0b25JbnB1dFR5cGU6OmlzVGV4dEJ1dHRvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICog
aHRtbC9CdXR0b25JbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL0NoZWNrYm94SW5wdXRUeXBl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNoZWNrYm94SW5wdXRUeXBlOjppc0NoZWNrYm94IGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL0NoZWNrYm94SW5wdXRUeXBlLmg6CisgICAg
ICAgICogaHRtbC9Db2xvcklucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb2xvcklu
cHV0VHlwZTo6aXNDb2xvckNvbnRyb2wgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwv
Q29sb3JJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL0RhdGVJbnB1dFR5cGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RGF0ZUlucHV0VHlwZTo6aXNEYXRlRmllbGQgY29uc3QpOiBEZWxldGVk
LgorICAgICAgICAqIGh0bWwvRGF0ZUlucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvRGF0ZVRp
bWVMb2NhbElucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUxvY2FsSW5w
dXRUeXBlOjppc0RhdGVUaW1lTG9jYWxGaWVsZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICog
aHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9FbWFpbElucHV0
VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbWFpbElucHV0VHlwZTo6aXNFbWFpbEZpZWxk
IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL0VtYWlsSW5wdXRUeXBlLmg6CisgICAg
ICAgICogaHRtbC9GaWxlSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVJbnB1
dFR5cGU6OmlzRmlsZVVwbG9hZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogaHRtbC9GaWxl
SW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9Gb3JtQXNzb2NpYXRlZEVsZW1lbnQuaDoKKyAg
ICAgICAgKiBodG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hp
ZGRlbklucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIaWRkZW5JbnB1dFR5cGU6Omlz
SGlkZGVuVHlwZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogaHRtbC9IaWRkZW5JbnB1dFR5
cGUuaDoKKyAgICAgICAgKiBodG1sL0ltYWdlSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkltYWdlSW5wdXRUeXBlOjppc0ltYWdlQnV0dG9uIGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkltYWdlSW5wdXRUeXBlOjppc0VudW1lcmF0YWJsZSk6IERlbGV0ZWQuCisg
ICAgICAgICogaHRtbC9JbWFnZUlucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvSW5wdXRUeXBl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZTo6aXNUZXh0VHlwZSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6OmlzVGV4dEZpZWxkIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OklucHV0VHlwZTo6aXNUZXh0QnV0dG9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OklucHV0VHlwZTo6aXNJbnRlcmFjdGl2ZUNvbnRlbnQgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5wdXRUeXBlOjpzdXBwb3J0TGFiZWxzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OklucHV0VHlwZTo6aXNFbnVtZXJhdGFibGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBl
Ojppc0NoZWNrYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6OmlzUmFuZ2VDb250
cm9sIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZTo6aXNSYWRp
b0J1dHRvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6Omlz
U2VhcmNoRmllbGQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBl
Ojppc0hpZGRlblR5cGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRU
eXBlOjppc1Bhc3N3b3JkRmllbGQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
SW5wdXRUeXBlOjppc0NoZWNrYm94IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OklucHV0VHlwZTo6aXNFbWFpbEZpZWxkIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OklucHV0VHlwZTo6aXNGaWxlVXBsb2FkIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OklucHV0VHlwZTo6aXNJbWFnZUJ1dHRvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpJbnB1dFR5cGU6OmlzTnVtYmVyRmllbGQgY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlOjppc1N1Ym1pdEJ1dHRvbiBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6OmlzVGVsZXBob25lRmllbGQgY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlOjppc1VSTEZpZWxkIGNvbnN0KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZTo6aXNEYXRlRmllbGQgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlOjppc0RhdGVUaW1lRmllbGQg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlOjppc0RhdGVUaW1l
TG9jYWxGaWVsZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6
OmlzTW9udGhGaWVsZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5
cGU6OmlzVGltZUZpZWxkIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OklucHV0
VHlwZTo6aXNXZWVrRmllbGQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5w
dXRUeXBlOjppc0NvbG9yQ29udHJvbCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogaHRtbC9J
bnB1dFR5cGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZTo6aXNDaGVja2JveCBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6OmlzQ29sb3JDb250cm9sIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZTo6aXNEYXRlRmllbGQgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5wdXRUeXBlOjppc0RhdGVUaW1lRmllbGQgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6SW5wdXRUeXBlOjppc0RhdGVUaW1lTG9jYWxGaWVsZCBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpJbnB1dFR5cGU6OmlzRW1haWxGaWVsZCBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpJbnB1dFR5cGU6OmlzRmlsZVVwbG9hZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnB1dFR5cGU6OmlzSGlkZGVuVHlwZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5
cGU6OmlzSW1hZ2VCdXR0b24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlOjpp
c01vbnRoRmllbGQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlOjppc051bWJl
ckZpZWxkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZTo6aXNQYXNzd29yZEZp
ZWxkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZTo6aXNSYWRpb0J1dHRvbiBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6OmlzUmFuZ2VDb250cm9sIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZTo6aXNTZWFyY2hGaWVsZCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6OmlzU3VibWl0QnV0dG9uIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OklucHV0VHlwZTo6aXNUZWxlcGhvbmVGaWVsZCBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpJbnB1dFR5cGU6OmlzVGltZUZpZWxkIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OklucHV0VHlwZTo6aXNVUkxGaWVsZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1
dFR5cGU6OmlzV2Vla0ZpZWxkIGNvbnN0KToKKyAgICAgICAgKiBodG1sL01vbnRoSW5wdXRUeXBl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vbnRoSW5wdXRUeXBlOjppc01vbnRoRmllbGQgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvTW9udGhJbnB1dFR5cGUuaDoKKyAgICAgICAg
KiBodG1sL051bWJlcklucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOdW1iZXJJbnB1
dFR5cGU6OmlzTnVtYmVyRmllbGQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvTnVt
YmVySW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9QYXNzd29yZElucHV0VHlwZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpQYXNzd29yZElucHV0VHlwZTo6aXNQYXNzd29yZEZpZWxkIGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL1Bhc3N3b3JkSW5wdXRUeXBlLmg6CisgICAgICAg
ICogaHRtbC9SYWRpb0lucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSYWRpb0lucHV0
VHlwZTo6aXNSYWRpb0J1dHRvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogaHRtbC9SYWRp
b0lucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmFuZ2VJbnB1dFR5cGU6OmlzUmFuZ2VDb250cm9sIGNvbnN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKiBodG1sL1JhbmdlSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9SZXNl
dElucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNldElucHV0VHlwZTo6aXNUZXh0
QnV0dG9uIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL1Jlc2V0SW5wdXRUeXBlLmg6
CisgICAgICAgICogaHRtbC9TZWFyY2hJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U2VhcmNoSW5wdXRUeXBlOjppc1NlYXJjaEZpZWxkIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KiBodG1sL1NlYXJjaElucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvU3VibWl0SW5wdXRUeXBl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN1Ym1pdElucHV0VHlwZTo6aXNTdWJtaXRCdXR0b24g
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U3VibWl0SW5wdXRUeXBlOjppc1Rl
eHRCdXR0b24gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvU3VibWl0SW5wdXRUeXBl
Lmg6CisgICAgICAgICogaHRtbC9UZWxlcGhvbmVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6VGVsZXBob25lSW5wdXRUeXBlOjppc1RlbGVwaG9uZUZpZWxkIGNvbnN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKiBodG1sL1RlbGVwaG9uZUlucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwv
VGV4dEZpZWxkSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRGaWVsZElucHV0
VHlwZTo6aXNUZXh0RmllbGQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvVGV4dEZp
ZWxkSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9UaW1lSW5wdXRUeXBlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlRpbWVJbnB1dFR5cGU6OmlzVGltZUZpZWxkIGNvbnN0KTogRGVsZXRlZC4K
KyAgICAgICAgKiBodG1sL1RpbWVJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL1VSTElucHV0
VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpVUkxJbnB1dFR5cGU6OmlzVVJMRmllbGQgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvVVJMSW5wdXRUeXBlLmg6CisgICAgICAgICog
aHRtbC9XZWVrSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlZWtJbnB1dFR5cGU6
OmlzV2Vla0ZpZWxkIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL1dlZWtJbnB1dFR5
cGUuaDoKKwogMjAyMS0wMS0yNiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNv
bT4KIAogICAgICAgICBNYWtlIHNob3dSZW5kZXJUcmVlKCkgZHVtcCBGbG9hdGluZ09iamVjdHMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCBmNTAyM2QyMmQ4MDc2ZTJkMjFiYmY4Zjc3NzgzYmNj
OWQzNjNiZmY0Li5mZGZhOWM2MmQ1MzlhMTU1ZDJkMmQ4MzhlZGY3NDgxZjFiZWFkMmU4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0zMjIwLDcgKzMyMjAsNiBAQCBFeGNlcHRpb25Pcjx2b2lk
PiBFbGVtZW50OjpzZXRPdXRlckhUTUwoY29uc3QgU3RyaW5nJiBodG1sKQogICAgIHJldHVybiB7
IH07CiB9CiAKLQogRXhjZXB0aW9uT3I8dm9pZD4gRWxlbWVudDo6c2V0SW5uZXJIVE1MKGNvbnN0
IFN0cmluZyYgaHRtbCkKIHsKICAgICBhdXRvIGZyYWdtZW50ID0gY3JlYXRlRnJhZ21lbnRGb3JJ
bm5lck91dGVySFRNTCgqdGhpcywgaHRtbCwgQWxsb3dTY3JpcHRpbmdDb250ZW50KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuY3BwCmluZGV4IGE5NDk5
NTZlOTMzMjJlMDZjNGQzZDRiOGQ4MTA3ZDYxYTQxYzhkY2UuLmIxOTVjZDM4YzFiMGRkZTAwOWZi
NWZmZGRhODRkZWNjMjZlYmEwOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFz
ZUNoZWNrYWJsZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hl
Y2thYmxlSW5wdXRUeXBlLmNwcApAQCAtMTE0LDExICsxMTQsNiBAQCB2b2lkIEJhc2VDaGVja2Fi
bGVJbnB1dFR5cGU6OnNldFZhbHVlKGNvbnN0IFN0cmluZyYgc2FuaXRpemVkVmFsdWUsIGJvb2ws
IFRleHRGaQogICAgIGVsZW1lbnQoKS0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlv
bih2YWx1ZUF0dHIsIHNhbml0aXplZFZhbHVlKTsKIH0KIAotYm9vbCBCYXNlQ2hlY2thYmxlSW5w
dXRUeXBlOjppc0NoZWNrYWJsZSgpCi17Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KIHZvaWQgQmFz
ZUNoZWNrYWJsZUlucHV0VHlwZTo6ZmlyZUlucHV0QW5kQ2hhbmdlRXZlbnRzKCkKIHsKICAgICBp
ZiAoIWVsZW1lbnQoKS0+aXNDb25uZWN0ZWQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNl
Q2hlY2thYmxlSW5wdXRUeXBlLmgKaW5kZXggNDc0MjM0NWJkNTZjMDFmZDNmOTQyYjBlMmRjNGY5
MjU3Nzc4MWM5Ny4uYTBjM2Y0ODdhNDNkMjNkYjRlMjZkM2ExYWFmOGMyOWI2NTNiOGRhMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmgKQEAgLTUxLDcg
KzUxLDYgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgZmFsbGJhY2tWYWx1ZSgpIGNvbnN0IG92ZXJy
aWRlOwogICAgIGJvb2wgc3RvcmVzVmFsdWVTZXBhcmF0ZUZyb21BdHRyaWJ1dGUoKSBvdmVycmlk
ZTsKICAgICB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wsIFRleHRGaWVsZEV2ZW50
QmVoYXZpb3IpIG92ZXJyaWRlOwotICAgIGJvb2wgaXNDaGVja2FibGUoKSBvdmVycmlkZTsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFz
ZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcAppbmRleCBkZjdhYzRmZDFlNWJlZWVmYTI5OWE0N2E0
OGEwYWZhNDM4NzI1YjkwLi4wOTFlYTllNmQ1ZDEzMDc1YzlkOWNjMTgzMmNlYmNkY2NiNjliMmFm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlw
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUu
Y3BwCkBAIC0xNjcsMTEgKzE2Nyw2IEBAIERlY2ltYWwgQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBl
OjpkZWZhdWx0VmFsdWVGb3JTdGVwVXAoKSBjb25zdAogICAgIHJldHVybiBEZWNpbWFsOjpmcm9t
RG91YmxlKG1zICsgKG9mZnNldCAqIG1zUGVyTWludXRlKSk7CiB9CiAKLWJvb2wgQmFzZURhdGVB
bmRUaW1lSW5wdXRUeXBlOjppc1N0ZXBwYWJsZVNsb3coKSBjb25zdAotewotICAgIHJldHVybiB0
cnVlOwotfQotCiBEZWNpbWFsIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZTo6cGFyc2VUb051bWJl
cihjb25zdCBTdHJpbmcmIHNvdXJjZSwgY29uc3QgRGVjaW1hbCYgZGVmYXVsdFZhbHVlKSBjb25z
dAogewogICAgIGF1dG8gZGF0ZSA9IHBhcnNlVG9EYXRlQ29tcG9uZW50cyhzb3VyY2UpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmgKaW5kZXggOTFi
ZDI2ZWZmMDc0OGFlYzBkZTM3MzY3N2ZjZTU1YTU0YzRmMDQzNy4uODkzNWFlMTZjY2E4NzQ1ZGE2
ZDI1MzdhYWE3YjZlNjljMzc5OGJlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9C
YXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VE
YXRlQW5kVGltZUlucHV0VHlwZS5oCkBAIC0xMDAsNyArMTAwLDYgQEAgcHJpdmF0ZToKICAgICBk
b3VibGUgdmFsdWVBc0RvdWJsZSgpIGNvbnN0IGZpbmFsOwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+
IHNldFZhbHVlQXNEZWNpbWFsKGNvbnN0IERlY2ltYWwmLCBUZXh0RmllbGRFdmVudEJlaGF2aW9y
KSBjb25zdCBmaW5hbDsKICAgICBEZWNpbWFsIGRlZmF1bHRWYWx1ZUZvclN0ZXBVcCgpIGNvbnN0
IG92ZXJyaWRlOwotICAgIGJvb2wgaXNTdGVwcGFibGVTbG93KCkgY29uc3QgZmluYWw7CiAgICAg
U3RyaW5nIGxvY2FsaXplVmFsdWUoY29uc3QgU3RyaW5nJikgY29uc3QgZmluYWw7CiAgICAgYm9v
bCBzdXBwb3J0c1JlYWRPbmx5KCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBzaG91bGRSZXNwZWN0
TGlzdEF0dHJpYnV0ZSgpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9C
YXNlVGV4dElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VUZXh0SW5wdXRU
eXBlLmNwcAppbmRleCAwMTE4OWFiZTNiZjFkYTM3NTFmYmQzMjNmYjVhZTc4ZWEzMzhlNzc5Li5h
ZWJjYmU2NTdhMThhOTgxZWYxMTM5ZDU4MmViNmVlMWM5ZGE5NWJiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0Jhc2VUZXh0SW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0Jhc2VUZXh0SW5wdXRUeXBlLmNwcApAQCAtMzMsMTEgKzMzLDYgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCi1ib29sIEJhc2VUZXh0
SW5wdXRUeXBlOjppc1RleHRUeXBlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQog
Ym9vbCBCYXNlVGV4dElucHV0VHlwZTo6cGF0dGVybk1pc21hdGNoKGNvbnN0IFN0cmluZyYgdmFs
dWUpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGVsZW1lbnQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0Jhc2VUZXh0SW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jh
c2VUZXh0SW5wdXRUeXBlLmgKaW5kZXggYzc4ODM3OWUzNDYxM2EzMGMxMjI2NjM5NmI5ZTc5ZGYx
MmMyMWQ4OS4uNjJlZDQ3ODk2NjQ0ODM0NTYyN2UyNmY0MGIxOTUwOGVmOGMzZTFlZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlVGV4dElucHV0VHlwZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvQmFzZVRleHRJbnB1dFR5cGUuaApAQCAtNDAsNyArNDAsNiBAQCBjbGFz
cyBCYXNlVGV4dElucHV0VHlwZSA6IHB1YmxpYyBUZXh0RmllbGRJbnB1dFR5cGUgewogcHJvdGVj
dGVkOgogICAgIGV4cGxpY2l0IEJhc2VUZXh0SW5wdXRUeXBlKFR5cGUgdHlwZSwgSFRNTElucHV0
RWxlbWVudCYgZWxlbWVudCkgOiBUZXh0RmllbGRJbnB1dFR5cGUodHlwZSwgZWxlbWVudCkgeyB9
CiAKLSAgICBib29sIGlzVGV4dFR5cGUoKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIHBhdHRl
cm5NaXNtYXRjaChjb25zdCBTdHJpbmcmKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIHN1cHBv
cnRzUGxhY2Vob2xkZXIoKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIHN1cHBvcnRzU2VsZWN0
aW9uQVBJKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0J1dHRvbklucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0J1dHRvbklucHV0VHlw
ZS5jcHAKaW5kZXggZTk1MTg2NTJiMzE0OWQ1NmNhZTUyMDVjNzJmNDViNWZjZDhkYzcyYy4uYTI3
NTFjYzdmMWU3ZWQwYmQ1ODJmMDU5ZGE2Y2JmZDhjMDQ5ODY0YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9CdXR0b25JbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvQnV0dG9uSW5wdXRUeXBlLmNwcApAQCAtNDUsOSArNDUsNCBAQCBib29sIEJ1dHRvbklucHV0
VHlwZTo6c3VwcG9ydHNWYWxpZGF0aW9uKCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAK
LWJvb2wgQnV0dG9uSW5wdXRUeXBlOjppc1RleHRCdXR0b24oKSBjb25zdAotewotICAgIHJldHVy
biB0cnVlOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0J1dHRvbklucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CdXR0
b25JbnB1dFR5cGUuaAppbmRleCBiOTRhZmVkOWQ3YmE1YjI3MTI5ZmIzZWI3ZTg3ZWZmOTdkM2M5
OWRjLi41ZmU3MmYzNzczMDZlY2Q5YzBlM2U0NjkwYmJlZmJmNjQ3MDI5ZDgxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0J1dHRvbklucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvQnV0dG9uSW5wdXRUeXBlLmgKQEAgLTQyLDcgKzQyLDYgQEAgcHVibGljOgogcHJp
dmF0ZToKICAgICBjb25zdCBBdG9tU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBvdmVy
cmlkZTsKICAgICBib29sIHN1cHBvcnRzVmFsaWRhdGlvbigpIGNvbnN0IG92ZXJyaWRlOwotICAg
IGJvb2wgaXNUZXh0QnV0dG9uKCkgY29uc3Qgb3ZlcnJpZGU7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NoZWNrYm94SW5wdXRU
eXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ2hlY2tib3hJbnB1dFR5cGUuY3BwCmluZGV4
IDQxMzIwMTFkZmMwYTUxOGQwMTA0NDllZjhjZDYyM2YwNGVkN2I0ZmUuLmUzZGJhMDBiYWIwODA2
ZDczN2RmMTZlYTJmMWJiZjc4ZDA5OTNkY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvQ2hlY2tib3hJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ2hlY2ti
b3hJbnB1dFR5cGUuY3BwCkBAIC05MiwxMSArOTIsNiBAQCB2b2lkIENoZWNrYm94SW5wdXRUeXBl
OjpkaWREaXNwYXRjaENsaWNrKEV2ZW50JiBldmVudCwgY29uc3QgSW5wdXRFbGVtZW50Q2xpY2tT
dAogICAgIGV2ZW50LnNldERlZmF1bHRIYW5kbGVkKCk7CiB9CiAKLWJvb2wgQ2hlY2tib3hJbnB1
dFR5cGU6OmlzQ2hlY2tib3goKSBjb25zdAotewotICAgIHJldHVybiB0cnVlOwotfQotCiBib29s
IENoZWNrYm94SW5wdXRUeXBlOjptYXRjaGVzSW5kZXRlcm1pbmF0ZVBzZXVkb0NsYXNzKCkgY29u
c3QKIHsKICAgICByZXR1cm4gc2hvdWxkQXBwZWFySW5kZXRlcm1pbmF0ZSgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9DaGVja2JveElucHV0VHlwZS5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9DaGVja2JveElucHV0VHlwZS5oCmluZGV4IDZjYjgzMGNlMDFkMTRkMTc3MGRhYThm
MzY2M2NmM2ZhOThiMTc0NmQuLmYyNjY5OGVkOWYyYWU0MGU5MzQ0NjQ5YTRhOWYwZDlhYmJlNmQ3
ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ2hlY2tib3hJbnB1dFR5cGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NoZWNrYm94SW5wdXRUeXBlLmgKQEAgLTQ2LDcgKzQ2
LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGhhbmRsZUtleXVwRXZlbnQoS2V5Ym9hcmRFdmVudCYp
IGZpbmFsOwogICAgIHZvaWQgd2lsbERpc3BhdGNoQ2xpY2soSW5wdXRFbGVtZW50Q2xpY2tTdGF0
ZSYpIGZpbmFsOwogICAgIHZvaWQgZGlkRGlzcGF0Y2hDbGljayhFdmVudCYsIGNvbnN0IElucHV0
RWxlbWVudENsaWNrU3RhdGUmKSBmaW5hbDsKLSAgICBib29sIGlzQ2hlY2tib3goKSBjb25zdCBm
aW5hbDsKICAgICBib29sIG1hdGNoZXNJbmRldGVybWluYXRlUHNldWRvQ2xhc3MoKSBjb25zdCBm
aW5hbDsKICAgICBib29sIHNob3VsZEFwcGVhckluZGV0ZXJtaW5hdGUoKSBjb25zdCBmaW5hbDsK
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwCmluZGV4IDZjZWZiZTBhMWFi
ZjYzZjQzZWY0YjZlNDYxMWVlODA0NGY3N2UzNTIuLjZlN2VhNTI3NTRhOGJjY2RhMjk3ZGJlNzc0
NmRlMTNlYmUyNzliYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1
dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwCkBA
IC0xMDAsMTEgKzEwMCw2IEBAIGJvb2wgQ29sb3JJbnB1dFR5cGU6OmlzS2V5Ym9hcmRGb2N1c2Fi
bGUoS2V5Ym9hcmRFdmVudCopIGNvbnN0CiAjZW5kaWYKIH0KIAotYm9vbCBDb2xvcklucHV0VHlw
ZTo6aXNDb2xvckNvbnRyb2woKSBjb25zdAotewotICAgIHJldHVybiB0cnVlOwotfQotCiBib29s
IENvbG9ySW5wdXRUeXBlOjppc1ByZXNlbnRpbmdBdHRhY2hlZFZpZXcoKSBjb25zdAogewogICAg
IHJldHVybiAhIW1fY2hvb3NlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29s
b3JJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuaAppbmRl
eCBjZmQ4OGE2Mzk3Y2Y1MDRmNmViZDRhOTE2ZGJlYmVkYzJmYzEzZGQ0Li4wNzNiMDk3NmEyMDE5
Y2MzNjNmN2ZlZWEzZDBkNDYyZGU0MmJkYmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0NvbG9ySW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0
VHlwZS5oCkBAIC01Miw3ICs1Miw2IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPENvbG9yPiBzdWdn
ZXN0ZWRDb2xvcnMoKSBjb25zdCBmaW5hbDsKICAgICBib29sIGlzTW91c2VGb2N1c2FibGUoKSBj
b25zdCBmaW5hbDsKICAgICBib29sIGlzS2V5Ym9hcmRGb2N1c2FibGUoS2V5Ym9hcmRFdmVudCop
IGNvbnN0IGZpbmFsOwotICAgIGJvb2wgaXNDb2xvckNvbnRyb2woKSBjb25zdCBmaW5hbDsKICAg
ICBib29sIGlzUHJlc2VudGluZ0F0dGFjaGVkVmlldygpIGNvbnN0IGZpbmFsOwogICAgIGNvbnN0
IEF0b21TdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgc3Vw
cG9ydHNSZXF1aXJlZCgpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9EYXRlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlw
ZS5jcHAKaW5kZXggNjIyMjcxM2E0YTIxOTNjNTNjYjUwYTYzNDU5MDVmZGU3ODljYzFmYy4uOTFl
YmYwZWNhMDk5M2I4NWY0Mzc5ZTA5ZjZiMDZlODBiNmYxYjA5NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9EYXRlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0RhdGVJbnB1dFR5cGUuY3BwCkBAIC04NCwxMSArODQsNiBAQCBPcHRpb25hbDxEYXRlQ29tcG9u
ZW50cz4gRGF0ZUlucHV0VHlwZTo6c2V0TWlsbGlzZWNvbmRUb0RhdGVDb21wb25lbnRzKGRvdWJs
ZSB2YQogICAgIHJldHVybiBEYXRlQ29tcG9uZW50czo6ZnJvbU1pbGxpc2Vjb25kc1NpbmNlRXBv
Y2hGb3JEYXRlKHZhbHVlKTsKIH0KIAotYm9vbCBEYXRlSW5wdXRUeXBlOjppc0RhdGVGaWVsZCgp
IGNvbnN0Ci17Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KIGJvb2wgRGF0ZUlucHV0VHlwZTo6aXNW
YWxpZEZvcm1hdChPcHRpb25TZXQ8RGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0cz4gcmVz
dWx0cykgY29uc3QKIHsKICAgICByZXR1cm4gcmVzdWx0cy5jb250YWluc0FsbCh7IERhdGVUaW1l
Rm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6Okhhc1llYXIsIERhdGVUaW1lRm9ybWF0VmFsaWRhdGlv
blJlc3VsdHM6Okhhc01vbnRoLCBEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzOjpIYXNE
YXkgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5oCmluZGV4IGQ2NjEyMWUyN2I0NjQ2
MTliMjA4ZDFjOGZkMmIzZDM3NWZkM2JkNTQuLmIzMTgyMjE5ZGYyZTQ3MDBiNjM4MzlmNjY0NGVl
MDQzMTE0NWY4N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlw
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5oCkBAIC00Nyw3ICs0
Nyw2IEBAIHByaXZhdGU6CiAgICAgU3RlcFJhbmdlIGNyZWF0ZVN0ZXBSYW5nZShBbnlTdGVwSGFu
ZGxpbmcpIGNvbnN0IG92ZXJyaWRlOwogICAgIE9wdGlvbmFsPERhdGVDb21wb25lbnRzPiBwYXJz
ZVRvRGF0ZUNvbXBvbmVudHMoY29uc3QgU3RyaW5nVmlldyYpIGNvbnN0IG92ZXJyaWRlOwogICAg
IE9wdGlvbmFsPERhdGVDb21wb25lbnRzPiBzZXRNaWxsaXNlY29uZFRvRGF0ZUNvbXBvbmVudHMo
ZG91YmxlKSBjb25zdCBvdmVycmlkZTsKLSAgICBib29sIGlzRGF0ZUZpZWxkKCkgY29uc3Qgb3Zl
cnJpZGU7CiAKICAgICBib29sIGlzVmFsaWRGb3JtYXQoT3B0aW9uU2V0PERhdGVUaW1lRm9ybWF0
VmFsaWRhdGlvblJlc3VsdHM+KSBjb25zdCBmaW5hbDsKICAgICBTdHJpbmcgZm9ybWF0RGF0ZVRp
bWVGaWVsZHNTdGF0ZShjb25zdCBEYXRlVGltZUZpZWxkc1N0YXRlJikgY29uc3QgZmluYWw7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmNwcAppbmRleCBh
MmI0Y2U3MTljMTdjNmE4NTljZmU0NTQzOTVkNzgzNzA2Y2NhZDE2Li5kMzkxYzk3MDMxZTgzYWE4
YjI1YzBmZjUwYWQ4OTM0Y2ViYmU2NzVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0
ZVRpbWVMb2NhbElucHV0VHlwZS5jcHAKQEAgLTkzLDExICs5Myw2IEBAIE9wdGlvbmFsPERhdGVD
b21wb25lbnRzPiBEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjpzZXRNaWxsaXNlY29uZFRvRGF0ZUNv
bXBvbmVudHMoCiAgICAgcmV0dXJuIERhdGVDb21wb25lbnRzOjpmcm9tTWlsbGlzZWNvbmRzU2lu
Y2VFcG9jaEZvckRhdGVUaW1lTG9jYWwodmFsdWUpOwogfQogCi1ib29sIERhdGVUaW1lTG9jYWxJ
bnB1dFR5cGU6OmlzRGF0ZVRpbWVMb2NhbEZpZWxkKCkgY29uc3QKLXsKLSAgICByZXR1cm4gdHJ1
ZTsKLX0KLQogYm9vbCBEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjppc1ZhbGlkRm9ybWF0KE9wdGlv
blNldDxEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzPiByZXN1bHRzKSBjb25zdAogewog
ICAgIHJldHVybiByZXN1bHRzLmNvbnRhaW5zQWxsKHsgRGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9u
UmVzdWx0czo6SGFzWWVhciwgRGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0czo6SGFzTW9u
dGgsIERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6Okhhc0RheSwgRGF0ZVRpbWVGb3Jt
YXRWYWxpZGF0aW9uUmVzdWx0czo6SGFzSG91ciwgRGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVz
dWx0czo6SGFzTWludXRlLCBEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzOjpIYXNNZXJp
ZGllbSB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElu
cHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmgK
aW5kZXggNGIyMzJjMGZjMzBjMmMzNWUyZjg0OTMxMDNkZWJmYzJjYzJjOWExOS4uMDJkNmNhMDFi
MzczMDlhMTEwZTAwMTY3NTZiODViZDQwMDYzOTZiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmgKQEAgLTUyLDcgKzUyLDYgQEAgcHJpdmF0ZToKICAg
ICBTdGVwUmFuZ2UgY3JlYXRlU3RlcFJhbmdlKEFueVN0ZXBIYW5kbGluZykgY29uc3QgZmluYWw7
CiAgICAgT3B0aW9uYWw8RGF0ZUNvbXBvbmVudHM+IHBhcnNlVG9EYXRlQ29tcG9uZW50cyhjb25z
dCBTdHJpbmdWaWV3JikgY29uc3QgZmluYWw7CiAgICAgT3B0aW9uYWw8RGF0ZUNvbXBvbmVudHM+
IHNldE1pbGxpc2Vjb25kVG9EYXRlQ29tcG9uZW50cyhkb3VibGUpIGNvbnN0IGZpbmFsOwotICAg
IGJvb2wgaXNEYXRlVGltZUxvY2FsRmllbGQoKSBjb25zdCBmaW5hbDsKIAogICAgIGJvb2wgaXNW
YWxpZEZvcm1hdChPcHRpb25TZXQ8RGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0cz4pIGNv
bnN0IGZpbmFsOwogICAgIFN0cmluZyBmb3JtYXREYXRlVGltZUZpZWxkc1N0YXRlKGNvbnN0IERh
dGVUaW1lRmllbGRzU3RhdGUmKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvRW1haWxJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9FbWFpbElu
cHV0VHlwZS5jcHAKaW5kZXggZGVlNWNjNGJmYTQ4MTc2ODIwMDcxMjVhMWRhOTUyNGVjOThiOGU4
NC4uNzk2NjU3MDhjNTE1MjEyMDQ1NzI2NmQ4YTk1ZWQ0NzE3MDZjM2Y4NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9FbWFpbElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9FbWFpbElucHV0VHlwZS5jcHAKQEAgLTgzLDExICs4Myw2IEBAIFN0cmluZyBFbWFp
bElucHV0VHlwZTo6dHlwZU1pc21hdGNoVGV4dCgpIGNvbnN0CiAgICAgcmV0dXJuIGVsZW1lbnQo
KS0+bXVsdGlwbGUoKSA/IHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoRm9yTXVsdGlwbGVF
bWFpbFRleHQoKSA6IHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoRm9yRW1haWxUZXh0KCk7
CiB9CiAKLWJvb2wgRW1haWxJbnB1dFR5cGU6OmlzRW1haWxGaWVsZCgpIGNvbnN0Ci17Ci0gICAg
cmV0dXJuIHRydWU7Ci19Ci0KIGJvb2wgRW1haWxJbnB1dFR5cGU6OnN1cHBvcnRzU2VsZWN0aW9u
QVBJKCkgY29uc3QKIHsKICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0VtYWlsSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0VtYWlsSW5w
dXRUeXBlLmgKaW5kZXggMjFlNDBkZDMyZDgzMDIxNjZmNzkxNmUzODgwZjUzN2YxOTYxNTdiYy4u
YjE4ZGQ1ZjNhYjRlODBmNzM5YjE2YTY4Y2I2ODJjNGJkYjdiOTRjZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9FbWFpbElucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRW1haWxJbnB1dFR5cGUuaApAQCAtNDQsNyArNDQsNiBAQCBwcml2YXRlOgogICAgIGJvb2wg
dHlwZU1pc21hdGNoRm9yKGNvbnN0IFN0cmluZyYpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wg
dHlwZU1pc21hdGNoKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgU3RyaW5nIHR5cGVNaXNtYXRjaFRl
eHQoKSBjb25zdCBvdmVycmlkZTsKLSAgICBib29sIGlzRW1haWxGaWVsZCgpIGNvbnN0IG92ZXJy
aWRlOwogICAgIGJvb2wgc3VwcG9ydHNTZWxlY3Rpb25BUEkoKSBjb25zdCBvdmVycmlkZTsKICAg
ICBTdHJpbmcgc2FuaXRpemVWYWx1ZShjb25zdCBTdHJpbmcmKSBjb25zdCBvdmVycmlkZTsKIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcAppbmRleCAzMTFjNTg3Y2Y5M2MxMGNi
OTYzMDIwY2Y4ZGZlZWQ3MTg1ODhhY2YyLi4wNmM4NDMyMWJiMjkxZmIxNzg2MjVmM2Q3ODM0Mzhl
ZTg4ODQ2ZjkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKQEAgLTI3Mywx
MSArMjczLDYgQEAgdm9pZCBGaWxlSW5wdXRUeXBlOjpzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBi
b29sLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yKQogICAgIGVsZW1lbnQoKS0+aW52YWxpZGF0ZVN0
eWxlRm9yU3VidHJlZSgpOwogfQogCi1ib29sIEZpbGVJbnB1dFR5cGU6OmlzRmlsZVVwbG9hZCgp
IGNvbnN0Ci17Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KIHZvaWQgRmlsZUlucHV0VHlwZTo6Y3Jl
YXRlU2hhZG93U3VidHJlZUFuZFVwZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0YWJpbGl0eShDb250
YWluZXJOb2RlOjpDaGlsZENoYW5nZTo6U291cmNlIHNvdXJjZSwgYm9vbCkKIHsKICAgICBBU1NF
UlQoZWxlbWVudCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0
VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmgKaW5kZXggZjlkMmM4
ZTQyZTNhNWM5ZTRlNzE2YzcwMjIyNGIzZjc1YTAzNmQ4Zi4uYmJlZDI5OWZjNGZjYzdiMmJlNTQz
YWQwZTFkNzMwZjUxYTc1YjE0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxl
SW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmgKQEAg
LTc3LDcgKzc3LDYgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAgICAgSWNvbiogaWNvbigpIGNvbnN0
IGZpbmFsOwotICAgIGJvb2wgaXNGaWxlVXBsb2FkKCkgY29uc3QgZmluYWw7CiAgICAgdm9pZCBj
cmVhdGVTaGFkb3dTdWJ0cmVlQW5kVXBkYXRlSW5uZXJUZXh0RWxlbWVudEVkaXRhYmlsaXR5KENv
bnRhaW5lck5vZGU6OkNoaWxkQ2hhbmdlOjpTb3VyY2UsIGJvb2wpIGZpbmFsOwogICAgIHZvaWQg
ZGlzYWJsZWRTdGF0ZUNoYW5nZWQoKSBmaW5hbDsKICAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9Gb3JtQXNzb2NpYXRlZEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUFz
c29jaWF0ZWRFbGVtZW50LmgKaW5kZXggNDQ2MWI0MmIxOTA5NzhjMTJkNzI1YzVlN2FkMDc3MGIw
OWI2MzNhMi4uMmNjNDRhZTE5YTcwYjYxOTM5ZmZlNjYzMzQ4NWRlMmE0N2I3MmI5NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQXNzb2NpYXRlZEVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Bc3NvY2lhdGVkRWxlbWVudC5oCkBAIC0xMTAsNiArMTEw
LDcgQEAgcHJvdGVjdGVkOgogICAgIFN0cmluZyBjdXN0b21WYWxpZGF0aW9uTWVzc2FnZSgpIGNv
bnN0OwogCiBwcml2YXRlOgorICAgIC8vICJ3aWxsVmFsaWRhdGUiIG1lYW5zICJpcyBhIGNhbmRp
ZGF0ZSBmb3IgY29uc3RyYWludCB2YWxpZGF0aW9uIi4KICAgICB2aXJ0dWFsIGJvb2wgd2lsbFZh
bGlkYXRlKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgdm9pZCByZWZGb3JtQXNzb2NpYXRlZEVs
ZW1lbnQoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRlcmVmRm9ybUFzc29jaWF0ZWRFbGVtZW50
KCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xF
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaApp
bmRleCAyZTM2MzViN2JmYWMyMzNlMjMwMTZhNDA5MTc1ZWZkOWExNmJmM2I3Li5iOTcxODRiZmY2
NDMwNGE2MTJkMWU3NzY1ZTVmZWZkMzgzODA5ZDMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaApAQCAtOTksNiArOTksNyBAQCBwdWJsaWM6CiAgICAg
V0VCQ09SRV9FWFBPUlQgQXV0b2NhcGl0YWxpemVUeXBlIGF1dG9jYXBpdGFsaXplVHlwZSgpIGNv
bnN0IGZpbmFsOwogI2VuZGlmCiAKKyAgICAvLyAid2lsbFZhbGlkYXRlIiBtZWFucyAiaXMgYSBj
YW5kaWRhdGUgZm9yIGNvbnN0cmFpbnQgdmFsaWRhdGlvbiIuCiAgICAgV0VCQ09SRV9FWFBPUlQg
Ym9vbCB3aWxsVmFsaWRhdGUoKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIHVwZGF0ZVZpc2libGVW
YWxpZGF0aW9uTWVzc2FnZSgpOwogICAgIHZvaWQgaGlkZVZpc2libGVWYWxpZGF0aW9uTWVzc2Fn
ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUuY3BwCmluZGV4IDZhZjliYzcy
M2IwZTllMGM1YjkxNTA2NTkwMmZiNzQ2OGZiYmUwNTkuLmQzNjJmM2NlZDdkZDIzYTI5YmRlMWMy
ZmVhNmEyZmQ3MWRmOTY2ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSGlkZGVu
SW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hpZGRlbklucHV0VHlwZS5j
cHAKQEAgLTk0LDExICs5NCw2IEBAIHZvaWQgSGlkZGVuSW5wdXRUeXBlOjpzZXRWYWx1ZShjb25z
dCBTdHJpbmcmIHNhbml0aXplZFZhbHVlLCBib29sLCBUZXh0RmllbGRFdmVuCiAgICAgZWxlbWVu
dCgpLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKHZhbHVlQXR0ciwgc2FuaXRp
emVkVmFsdWUpOwogfQogCi1ib29sIEhpZGRlbklucHV0VHlwZTo6aXNIaWRkZW5UeXBlKCkgY29u
c3QKLXsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQogYm9vbCBIaWRkZW5JbnB1dFR5cGU6OmFwcGVu
ZEZvcm1EYXRhKERPTUZvcm1EYXRhJiBmb3JtRGF0YSwgYm9vbCBpc011bHRpcGFydEZvcm0pIGNv
bnN0CiB7CiAgICAgQVNTRVJUKGVsZW1lbnQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hpZGRlbklucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1
dFR5cGUuaAppbmRleCBiNTg2MDc3MzY0ZDc0ZWNkMmRhOWM2YzIxZTYxN2U2YTYwNGZjYTI0Li43
NzBjNjMxNDYwN2Q5ZTg5ZGU4ODM2NGIwYmViNzUwN2EwY2JmNzA0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hpZGRlbklucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSGlkZGVuSW5wdXRUeXBlLmgKQEAgLTQ4LDkgKzQ4LDYgQEAgcHJpdmF0ZToKICAgICBib29s
IGFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykgb3ZlcnJpZGU7CiAgICAgYm9v
bCByZW5kZXJlcklzTmVlZGVkKCkgb3ZlcnJpZGU7CiAgICAgYm9vbCBzdG9yZXNWYWx1ZVNlcGFy
YXRlRnJvbUF0dHJpYnV0ZSgpIG92ZXJyaWRlOwotICAgIGJvb2wgaXNIaWRkZW5UeXBlKCkgY29u
c3Qgb3ZlcnJpZGU7Ci0gICAgYm9vbCBzdXBwb3J0TGFiZWxzKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gZmFsc2U7IH0KLSAgICBib29sIGlzSW50ZXJhY3RpdmVDb250ZW50KCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gZmFsc2U7IH0KICAgICBib29sIHNob3VsZFJlc3BlY3RIZWlnaHRBbmRXaWR0
aEF0dHJpYnV0ZXMoKSBvdmVycmlkZTsKICAgICB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYs
IGJvb2wsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IpIG92ZXJyaWRlOwogICAgIGJvb2wgYXBwZW5k
Rm9ybURhdGEoRE9NRm9ybURhdGEmLCBib29sKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9JbWFnZUlucHV0VHlwZS5jcHAKaW5kZXggMGY1ZmFlMTU5MWJmNWI5MmU3NDY2MzAwYzY2
NDhjZGQwNzA2N2YyZS4uMjQ1OGJkMzE5N2JkNWNmNWQwODU2MmMxZmM2MGFlZTkzODUxZTMwYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5jcHAKQEAgLTE3MSwxNiArMTcxLDYg
QEAgYm9vbCBJbWFnZUlucHV0VHlwZTo6Y2FuQmVTdWNjZXNzZnVsU3VibWl0QnV0dG9uKCkKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBJbWFnZUlucHV0VHlwZTo6aXNJbWFnZUJ1dHRvbigp
IGNvbnN0Ci17Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLWJvb2wgSW1hZ2VJbnB1dFR5cGU6Omlz
RW51bWVyYXRhYmxlKCkKLXsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KIGJvb2wgSW1hZ2VJbnB1
dFR5cGU6OnNob3VsZFJlc3BlY3RIZWlnaHRBbmRXaWR0aEF0dHJpYnV0ZXMoKQogewogICAgIHJl
dHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlw
ZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5oCmluZGV4IDNiNjVjOWFm
NWFlNjA1ZTRjMjM3NTlkY2JjNDk3OWNlOTFjZWU3MzkuLjgyZDAzYmY1NDQzZGJkMTc2OTdjYzA2
YTBiYTA5MDc1MDFlYWUyYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJ
bnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmgKQEAg
LTUzLDggKzUzLDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGF0dGFjaCgpIGZpbmFsOwogICAgIGJv
b2wgc2hvdWxkUmVzcGVjdEFsaWduQXR0cmlidXRlKCkgZmluYWw7CiAgICAgYm9vbCBjYW5CZVN1
Y2Nlc3NmdWxTdWJtaXRCdXR0b24oKSBmaW5hbDsKLSAgICBib29sIGlzSW1hZ2VCdXR0b24oKSBj
b25zdCBmaW5hbDsKLSAgICBib29sIGlzRW51bWVyYXRhYmxlKCkgZmluYWw7CiAgICAgYm9vbCBz
aG91bGRSZXNwZWN0SGVpZ2h0QW5kV2lkdGhBdHRyaWJ1dGVzKCkgZmluYWw7CiAgICAgdW5zaWdu
ZWQgaGVpZ2h0KCkgY29uc3QgZmluYWw7CiAgICAgdW5zaWduZWQgd2lkdGgoKSBjb25zdCBmaW5h
bDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcAppbmRleCA2ODVjMDNmZWQyMzc2ZmM3ZWY0Mzk1
MTI0ZWIzOWY2ODg5MzE5MWRiLi5mMjA3Mzg0OWYzNTgyMDg0NzkyODMwY2VhYTJkNGVjM2YzMWVh
ZjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCkBAIC0xNjYsMjEgKzE2Niw2IEBAIGJv
b2wgSW5wdXRUeXBlOjp0aGVtZVN1cHBvcnRzRGF0YUxpc3RVSShJbnB1dFR5cGUqIHR5cGUpCiAg
ICAgcmV0dXJuIFJlbmRlclRoZW1lOjpzaW5nbGV0b24oKS5zdXBwb3J0c0RhdGFMaXN0VUkodHlw
ZS0+Zm9ybUNvbnRyb2xUeXBlKCkpOwogfQogCi1ib29sIElucHV0VHlwZTo6aXNUZXh0RmllbGQo
KSBjb25zdAotewotICAgIHJldHVybiBmYWxzZTsKLX0KLQotYm9vbCBJbnB1dFR5cGU6OmlzVGV4
dFR5cGUoKSBjb25zdAotewotICAgIHJldHVybiBmYWxzZTsKLX0KLQotYm9vbCBJbnB1dFR5cGU6
OmlzUmFuZ2VDb250cm9sKCkgY29uc3QKLXsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KIGJvb2wg
SW5wdXRUeXBlOjpzaG91bGRTYXZlQW5kUmVzdG9yZUZvcm1Db250cm9sU3RhdGUoKSBjb25zdAog
ewogICAgIHJldHVybiB0cnVlOwpAQCAtODE2LDE0MyArODAxLDE5IEBAIGJvb2wgSW5wdXRUeXBl
OjpzaG91bGRSZXNwZWN0TGlzdEF0dHJpYnV0ZSgpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1i
b29sIElucHV0VHlwZTo6aXNUZXh0QnV0dG9uKCkgY29uc3QKLXsKLSAgICByZXR1cm4gZmFsc2U7
Ci19Ci0KLWJvb2wgSW5wdXRUeXBlOjppc1JhZGlvQnV0dG9uKCkgY29uc3QKLXsKLSAgICByZXR1
cm4gZmFsc2U7Ci19Ci0KLWJvb2wgSW5wdXRUeXBlOjppc1NlYXJjaEZpZWxkKCkgY29uc3QKLXsK
LSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLWJvb2wgSW5wdXRUeXBlOjppc0hpZGRlblR5cGUoKSBj
b25zdAotewotICAgIHJldHVybiBmYWxzZTsKLX0KLQotYm9vbCBJbnB1dFR5cGU6OmlzUGFzc3dv
cmRGaWVsZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi1ib29sIElucHV0VHlw
ZTo6aXNDaGVja2JveCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi1ib29sIElu
cHV0VHlwZTo6aXNFbWFpbEZpZWxkKCkgY29uc3QKLXsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0K
LWJvb2wgSW5wdXRUeXBlOjppc0ZpbGVVcGxvYWQoKSBjb25zdAotewotICAgIHJldHVybiBmYWxz
ZTsKLX0KLQotYm9vbCBJbnB1dFR5cGU6OmlzSW1hZ2VCdXR0b24oKSBjb25zdAotewotICAgIHJl
dHVybiBmYWxzZTsKLX0KLQogYm9vbCBJbnB1dFR5cGU6OmlzSW50ZXJhY3RpdmVDb250ZW50KCkg
Y29uc3QKIHsKLSAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gbV90eXBlICE9IFR5cGU6Okhp
ZGRlbjsKIH0KIAogYm9vbCBJbnB1dFR5cGU6OnN1cHBvcnRMYWJlbHMoKSBjb25zdAogewotICAg
IHJldHVybiB0cnVlOwotfQotCi1ib29sIElucHV0VHlwZTo6aXNOdW1iZXJGaWVsZCgpIGNvbnN0
Ci17Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBtX3R5cGUgIT0gVHlwZTo6SGlkZGVu
OwogfQogCi1ib29sIElucHV0VHlwZTo6aXNTdWJtaXRCdXR0b24oKSBjb25zdAorYm9vbCBJbnB1
dFR5cGU6OmlzRW51bWVyYXRhYmxlKCkgY29uc3QKIHsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0K
LWJvb2wgSW5wdXRUeXBlOjppc1RlbGVwaG9uZUZpZWxkKCkgY29uc3QKLXsKLSAgICByZXR1cm4g
ZmFsc2U7Ci19Ci0KLWJvb2wgSW5wdXRUeXBlOjppc1VSTEZpZWxkKCkgY29uc3QKLXsKLSAgICBy
ZXR1cm4gZmFsc2U7Ci19Ci0KLWJvb2wgSW5wdXRUeXBlOjppc0RhdGVGaWVsZCgpIGNvbnN0Ci17
Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi1ib29sIElucHV0VHlwZTo6aXNEYXRlVGltZUZpZWxk
KCkgY29uc3QKLXsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLWJvb2wgSW5wdXRUeXBlOjppc0Rh
dGVUaW1lTG9jYWxGaWVsZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi1ib29s
IElucHV0VHlwZTo6aXNNb250aEZpZWxkKCkgY29uc3QKLXsKLSAgICByZXR1cm4gZmFsc2U7Ci19
Ci0KLWJvb2wgSW5wdXRUeXBlOjppc1RpbWVGaWVsZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGZh
bHNlOwotfQotCi1ib29sIElucHV0VHlwZTo6aXNXZWVrRmllbGQoKSBjb25zdAotewotICAgIHJl
dHVybiBmYWxzZTsKLX0KLQotYm9vbCBJbnB1dFR5cGU6OmlzRW51bWVyYXRhYmxlKCkKLXsKLSAg
ICByZXR1cm4gdHJ1ZTsKLX0KLQotYm9vbCBJbnB1dFR5cGU6OmlzQ2hlY2thYmxlKCkKLXsKLSAg
ICByZXR1cm4gZmFsc2U7Ci19Ci0KLS8vIERvIG5vdCB1c2UgdmlydHVhbCBmdW5jdGlvbiBmb3Ig
cGVyZm9ybWFuY2UgcmVhc29uLgotYm9vbCBJbnB1dFR5cGU6OmlzU3RlcHBhYmxlKCkgY29uc3QK
LXsKLSAgICBzd2l0Y2ggKG1fdHlwZSkgewotICAgIGNhc2UgVHlwZTo6RGF0ZToKLSAgICBjYXNl
IFR5cGU6OkRhdGVUaW1lTG9jYWw6Ci0gICAgY2FzZSBUeXBlOjpNb250aDoKLSAgICBjYXNlIFR5
cGU6OlRpbWU6Ci0gICAgY2FzZSBUeXBlOjpXZWVrOgotICAgIGNhc2UgVHlwZTo6TnVtYmVyOgot
ICAgIGNhc2UgVHlwZTo6UmFuZ2U6Ci0gICAgICAgIEFTU0VSVChpc1N0ZXBwYWJsZVNsb3coKSk7
Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIEFTU0VSVCghaXNT
dGVwcGFibGVTbG93KCkpOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotfQotCi1ib29s
IElucHV0VHlwZTo6aXNDb2xvckNvbnRyb2woKSBjb25zdAotewotICAgIHJldHVybiBmYWxzZTsK
KyAgICByZXR1cm4gbV90eXBlICE9IFR5cGU6OkltYWdlOwogfQogCiBib29sIElucHV0VHlwZTo6
c2hvdWxkUmVzcGVjdEhlaWdodEFuZFdpZHRoQXR0cmlidXRlcygpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5
cGUuaAppbmRleCAzYWU4NWVlYTRiM2I4NmUxNmUzYmRlY2VjMGUyNDJlZWE4ZTlmZTg3Li5jZjM0
NTM0NmZkZGRhMzA4MGZkY2VkNzk0YzRkNTc5YTU4ZjIxNmZiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRU
eXBlLmgKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJSZW5kZXJQdHIuaCIKICNpbmNsdWRl
IDx3dGYvRmFzdE1hbGxvYy5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8
d3RmL09wdGlvblNldC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8
d3RmL1JlZlB0ci5oPgogCkBAIC03MSwyOSArNzIsNjkgQEAgZW51bSBjbGFzcyBEYXRlQ29tcG9u
ZW50c1R5cGUgOiB1aW50OF90OwogY2xhc3MgSW5wdXRUeXBlIDogcHVibGljIFJlZkNvdW50ZWQ8
SW5wdXRUeXBlPiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAg
ZW51bSBjbGFzcyBUeXBlIDogdWludDhfdCB7Ci0gICAgICAgIEJ1dHRvbiwKLSAgICAgICAgQ2hl
Y2tib3gsCi0gICAgICAgIENvbG9yLAotICAgICAgICBEYXRlLAotICAgICAgICBEYXRlVGltZUxv
Y2FsLAotICAgICAgICBFbWFpbCwKLSAgICAgICAgRmlsZSwKLSAgICAgICAgSGlkZGVuLAotICAg
ICAgICBJbWFnZSwKLSAgICAgICAgTW9udGgsCi0gICAgICAgIE51bWJlciwKLSAgICAgICAgUGFz
c3dvcmQsCi0gICAgICAgIFJhZGlvLAotICAgICAgICBSYW5nZSwKLSAgICAgICAgUmVzZXQsCi0g
ICAgICAgIFNlYXJjaCwKLSAgICAgICAgU3VibWl0LAotICAgICAgICBUZWxlcGhvbmUsCi0gICAg
ICAgIFRpbWUsCi0gICAgICAgIFVSTCwKLSAgICAgICAgV2VlaywKLSAgICAgICAgVGV4dCwKKyAg
ICBlbnVtIGNsYXNzIFR5cGUgOiB1aW50MzJfdCB7CisgICAgICAgIEJ1dHRvbiAgICAgICAgICA9
IDEgPDwgMCwKKyAgICAgICAgQ2hlY2tib3ggICAgICAgID0gMSA8PCAxLAorICAgICAgICBDb2xv
ciAgICAgICAgICAgPSAxIDw8IDIsCisgICAgICAgIERhdGUgICAgICAgICAgICA9IDEgPDwgMywK
KyAgICAgICAgRGF0ZVRpbWVMb2NhbCAgID0gMSA8PCA0LAorICAgICAgICBFbWFpbCAgICAgICAg
ICAgPSAxIDw8IDUsCisgICAgICAgIEZpbGUgICAgICAgICAgICA9IDEgPDwgNiwKKyAgICAgICAg
SGlkZGVuICAgICAgICAgID0gMSA8PCA3LAorICAgICAgICBJbWFnZSAgICAgICAgICAgPSAxIDw8
IDgsCisgICAgICAgIE1vbnRoICAgICAgICAgICA9IDEgPDwgOSwKKyAgICAgICAgTnVtYmVyICAg
ICAgICAgID0gMSA8PCAxMCwKKyAgICAgICAgUGFzc3dvcmQgICAgICAgID0gMSA8PCAxMSwKKyAg
ICAgICAgUmFkaW8gICAgICAgICAgID0gMSA8PCAxMiwKKyAgICAgICAgUmFuZ2UgICAgICAgICAg
ID0gMSA8PCAxMywKKyAgICAgICAgUmVzZXQgICAgICAgICAgID0gMSA8PCAxNCwKKyAgICAgICAg
U2VhcmNoICAgICAgICAgID0gMSA8PCAxNSwKKyAgICAgICAgU3VibWl0ICAgICAgICAgID0gMSA8
PCAxNiwKKyAgICAgICAgVGVsZXBob25lICAgICAgID0gMSA8PCAxNywKKyAgICAgICAgVGltZSAg
ICAgICAgICAgID0gMSA8PCAxOCwKKyAgICAgICAgVVJMICAgICAgICAgICAgID0gMSA8PCAxOSwK
KyAgICAgICAgV2VlayAgICAgICAgICAgID0gMSA8PCAyMCwKKyAgICAgICAgVGV4dCAgICAgICAg
ICAgID0gMSA8PCAyMSwKKyAgICB9OworICAgIAorICAgIHN0YXRpYyBjb25zdGV4cHIgT3B0aW9u
U2V0PFR5cGU+IHRleHRUeXBlcyA9IHsKKyAgICAgICAgVHlwZTo6RW1haWwsCisgICAgICAgIFR5
cGU6OlBhc3N3b3JkLAorICAgICAgICBUeXBlOjpTZWFyY2gsCisgICAgICAgIFR5cGU6OlRlbGVw
aG9uZSwKKyAgICAgICAgVHlwZTo6VGV4dCwKKyAgICAgICAgVHlwZTo6VVJMLAorICAgIH07CisK
KyAgICBzdGF0aWMgY29uc3RleHByIE9wdGlvblNldDxUeXBlPiB0ZXh0RmllbGRUeXBlcyA9IHsK
KyAgICAgICAgVHlwZTo6RW1haWwsCisgICAgICAgIFR5cGU6Ok51bWJlciwKKyAgICAgICAgVHlw
ZTo6UGFzc3dvcmQsCisgICAgICAgIFR5cGU6OlNlYXJjaCwKKyAgICAgICAgVHlwZTo6VGVsZXBo
b25lLAorICAgICAgICBUeXBlOjpUZXh0LAorICAgICAgICBUeXBlOjpVUkwsCisgICAgfTsKKwor
ICAgIHN0YXRpYyBjb25zdGV4cHIgT3B0aW9uU2V0PFR5cGU+IHRleHRCdXR0b25UeXBlcyA9IHsK
KyAgICAgICAgVHlwZTo6QnV0dG9uLAorICAgICAgICBUeXBlOjpSZXNldCwKKyAgICAgICAgVHlw
ZTo6U3VibWl0LAorICAgIH07CisKKyAgICBzdGF0aWMgY29uc3RleHByIE9wdGlvblNldDxUeXBl
PiBjaGVja2FibGVUeXBlcyA9IHsKKyAgICAgICAgVHlwZTo6Q2hlY2tib3gsCisgICAgICAgIFR5
cGU6OlJhZGlvLAorICAgIH07CisKKyAgICBzdGF0aWMgY29uc3RleHByIE9wdGlvblNldDxUeXBl
PiBzdGVwcGFibGVUeXBlcyA9IHsKKyAgICAgICAgVHlwZTo6RGF0ZSwKKyAgICAgICAgVHlwZTo6
RGF0ZVRpbWVMb2NhbCwKKyAgICAgICAgVHlwZTo6TW9udGgsCisgICAgICAgIFR5cGU6OlRpbWUs
CisgICAgICAgIFR5cGU6OldlZWssCisgICAgICAgIFR5cGU6Ok51bWJlciwKKyAgICAgICAgVHlw
ZTo6UmFuZ2UsCiAgICAgfTsKIAogICAgIHN0YXRpYyBSZWY8SW5wdXRUeXBlPiBjcmVhdGUoSFRN
TElucHV0RWxlbWVudCYsIGNvbnN0IEF0b21TdHJpbmcmKTsKQEAgLTExNSwzMSArMTU2LDM2IEBA
IHB1YmxpYzoKICAgICAvLyBpbmZsZXhpYmxlIGJlY2F1c2UgaXQncyBoYXJkZXIgdG8gYWRkIG5l
dyBpbnB1dCB0eXBlcyBpZiB0aGVyZSBpcwogICAgIC8vIHNjYXR0ZXJlZCBjb2RlIHdpdGggc3Bl
Y2lhbCBjYXNlcyBmb3IgdmFyaW91cyB0eXBlcy4KIAotICAgIHZpcnR1YWwgYm9vbCBpc0NoZWNr
Ym94KCkgY29uc3Q7Ci0gICAgdmlydHVhbCBib29sIGlzQ29sb3JDb250cm9sKCkgY29uc3Q7Ci0g
ICAgdmlydHVhbCBib29sIGlzRGF0ZUZpZWxkKCkgY29uc3Q7Ci0gICAgdmlydHVhbCBib29sIGlz
RGF0ZVRpbWVGaWVsZCgpIGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCBpc0RhdGVUaW1lTG9jYWxG
aWVsZCgpIGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCBpc0VtYWlsRmllbGQoKSBjb25zdDsKLSAg
ICB2aXJ0dWFsIGJvb2wgaXNGaWxlVXBsb2FkKCkgY29uc3Q7Ci0gICAgdmlydHVhbCBib29sIGlz
SGlkZGVuVHlwZSgpIGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCBpc0ltYWdlQnV0dG9uKCkgY29u
c3Q7Ci0gICAgdmlydHVhbCBib29sIGlzSW50ZXJhY3RpdmVDb250ZW50KCkgY29uc3Q7Ci0gICAg
dmlydHVhbCBib29sIHN1cHBvcnRMYWJlbHMoKSBjb25zdDsKLSAgICB2aXJ0dWFsIGJvb2wgaXNN
b250aEZpZWxkKCkgY29uc3Q7Ci0gICAgdmlydHVhbCBib29sIGlzTnVtYmVyRmllbGQoKSBjb25z
dDsKLSAgICB2aXJ0dWFsIGJvb2wgaXNQYXNzd29yZEZpZWxkKCkgY29uc3Q7Ci0gICAgdmlydHVh
bCBib29sIGlzUmFkaW9CdXR0b24oKSBjb25zdDsKLSAgICB2aXJ0dWFsIGJvb2wgaXNSYW5nZUNv
bnRyb2woKSBjb25zdDsKLSAgICB2aXJ0dWFsIGJvb2wgaXNTZWFyY2hGaWVsZCgpIGNvbnN0Owot
ICAgIHZpcnR1YWwgYm9vbCBpc1N1Ym1pdEJ1dHRvbigpIGNvbnN0OwotICAgIHZpcnR1YWwgYm9v
bCBpc1RlbGVwaG9uZUZpZWxkKCkgY29uc3Q7Ci0gICAgdmlydHVhbCBib29sIGlzVGV4dEJ1dHRv
bigpIGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCBpc1RleHRGaWVsZCgpIGNvbnN0OwotICAgIHZp
cnR1YWwgYm9vbCBpc1RleHRUeXBlKCkgY29uc3Q7Ci0gICAgdmlydHVhbCBib29sIGlzVGltZUZp
ZWxkKCkgY29uc3Q7Ci0gICAgdmlydHVhbCBib29sIGlzVVJMRmllbGQoKSBjb25zdDsKLSAgICB2
aXJ0dWFsIGJvb2wgaXNXZWVrRmllbGQoKSBjb25zdDsKKyAgICBib29sIGlzQ2hlY2tib3goKSBj
b25zdCB7IHJldHVybiBtX3R5cGUgPT0gVHlwZTo6Q2hlY2tib3g7IH0KKyAgICBib29sIGlzQ29s
b3JDb250cm9sKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IFR5cGU6OkNvbG9yOyB9CisgICAg
Ym9vbCBpc0RhdGVGaWVsZCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBUeXBlOjpEYXRlOyB9
CisgICAgYm9vbCBpc0RhdGVUaW1lTG9jYWxGaWVsZCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9
PSBUeXBlOjpEYXRlVGltZUxvY2FsOyB9CisgICAgYm9vbCBpc0VtYWlsRmllbGQoKSBjb25zdCB7
IHJldHVybiBtX3R5cGUgPT0gVHlwZTo6RW1haWw7IH0KKyAgICBib29sIGlzRmlsZVVwbG9hZCgp
IGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBUeXBlOjpGaWxlOyB9CisgICAgYm9vbCBpc0hpZGRl
blR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gVHlwZTo6SGlkZGVuOyB9CisgICAgYm9v
bCBpc0ltYWdlQnV0dG9uKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IFR5cGU6OkltYWdlOyB9
CisgICAgYm9vbCBpc01vbnRoRmllbGQoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gVHlwZTo6
TW9udGg7IH0KKyAgICBib29sIGlzTnVtYmVyRmllbGQoKSBjb25zdCB7IHJldHVybiBtX3R5cGUg
PT0gVHlwZTo6TnVtYmVyOyB9CisgICAgYm9vbCBpc1Bhc3N3b3JkRmllbGQoKSBjb25zdCB7IHJl
dHVybiBtX3R5cGUgPT0gVHlwZTo6UGFzc3dvcmQ7IH0KKyAgICBib29sIGlzUmFkaW9CdXR0b24o
KSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gVHlwZTo6UmFkaW87IH0KKyAgICBib29sIGlzUmFu
Z2VDb250cm9sKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IFR5cGU6OlJhbmdlOyB9CisgICAg
Ym9vbCBpc1NlYXJjaEZpZWxkKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IFR5cGU6OlNlYXJj
aDsgfQorICAgIGJvb2wgaXNTdWJtaXRCdXR0b24oKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0g
VHlwZTo6U3VibWl0OyB9CisgICAgYm9vbCBpc1RlbGVwaG9uZUZpZWxkKCkgY29uc3QgeyByZXR1
cm4gbV90eXBlID09IFR5cGU6OlRlbGVwaG9uZTsgfQorICAgIGJvb2wgaXNUaW1lRmllbGQoKSBj
b25zdCB7IHJldHVybiBtX3R5cGUgPT0gVHlwZTo6VGltZTsgfQorICAgIGJvb2wgaXNVUkxGaWVs
ZCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBUeXBlOjpVUkw7IH0KKyAgICBib29sIGlzV2Vl
a0ZpZWxkKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IFR5cGU6OldlZWs7IH0KKworICAgIGJv
b2wgaXNUZXh0QnV0dG9uKCkgY29uc3QgeyByZXR1cm4gdGV4dEJ1dHRvblR5cGVzLmNvbnRhaW5z
KG1fdHlwZSk7IH0KKyAgICBib29sIGlzVGV4dEZpZWxkKCkgY29uc3QgeyByZXR1cm4gdGV4dEZp
ZWxkVHlwZXMuY29udGFpbnMobV90eXBlKTsgfQorICAgIGJvb2wgaXNUZXh0VHlwZSgpIGNvbnN0
IHsgcmV0dXJuIHRleHRUeXBlcy5jb250YWlucyhtX3R5cGUpOyB9CisKKyAgICBib29sIGlzQ2hl
Y2thYmxlKCkgY29uc3QgeyByZXR1cm4gY2hlY2thYmxlVHlwZXMuY29udGFpbnMobV90eXBlKTsg
fQorICAgIGJvb2wgaXNTdGVwcGFibGUoKSBjb25zdCB7IHJldHVybiBzdGVwcGFibGVUeXBlcy5j
b250YWlucyhtX3R5cGUpOyB9CisKKyAgICBib29sIGlzSW50ZXJhY3RpdmVDb250ZW50KCkgY29u
c3Q7CisgICAgYm9vbCBzdXBwb3J0TGFiZWxzKCkgY29uc3Q7CisgICAgYm9vbCBpc0VudW1lcmF0
YWJsZSgpIGNvbnN0OwogCiAgICAgLy8gRm9ybSB2YWx1ZSBmdW5jdGlvbnMuCiAKQEAgLTI3Niw4
ICszMjIsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmlu
ZyYsIGJvb2wgdmFsdWVDaGFuZ2VkLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yKTsKICAgICB2aXJ0
dWFsIGJvb2wgc2hvdWxkUmVzZXRPbkRvY3VtZW50QWN0aXZhdGlvbigpOwogICAgIHZpcnR1YWwg
Ym9vbCBzaG91bGRSZXNwZWN0TGlzdEF0dHJpYnV0ZSgpOwotICAgIHZpcnR1YWwgYm9vbCBpc0Vu
dW1lcmF0YWJsZSgpOwotICAgIHZpcnR1YWwgYm9vbCBpc0NoZWNrYWJsZSgpOwogICAgIHZpcnR1
YWwgYm9vbCBzaG91bGRSZXNwZWN0SGVpZ2h0QW5kV2lkdGhBdHRyaWJ1dGVzKCk7CiAgICAgdmly
dHVhbCBib29sIHN1cHBvcnRzUGxhY2Vob2xkZXIoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wg
c3VwcG9ydHNSZWFkT25seSgpIGNvbnN0OwpAQCAtMjk4LDggKzM0Miw2IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgc2VsZWN0Q29sb3IoU3RyaW5nVmlldyk7CiAgICAgdmlydHVhbCBWZWN0
b3I8Q29sb3I+IHN1Z2dlc3RlZENvbG9ycygpIGNvbnN0OwogCi0gICAgYm9vbCBpc1N0ZXBwYWJs
ZSgpIGNvbnN0OwotCiAgICAgLy8gUGFyc2VzIHRoZSBzcGVjaWZpZWQgc3RyaW5nIGZvciB0aGUg
dHlwZSwgYW5kIHJldHVybgogICAgIC8vIHRoZSBEZWNpbWFsIHZhbHVlIGZvciB0aGUgcGFyc2lu
ZyByZXN1bHQgaWYgdGhlIHBhcnNpbmcKICAgICAvLyBzdWNjZWVkczsgUmV0dXJucyBkZWZhdWx0
VmFsdWUgb3RoZXJ3aXNlLiBUaGlzIGZ1bmN0aW9uIGNhbgpAQCAtMzQwLDcgKzM4Miw2IEBAIHBy
b3RlY3RlZDoKICAgICBIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KCkgY29uc3QgeyByZXR1cm4g
bV9lbGVtZW50LmdldCgpOyB9CiAgICAgQ2hyb21lKiBjaHJvbWUoKSBjb25zdDsKICAgICBEZWNp
bWFsIHBhcnNlVG9OdW1iZXJPck5hTihjb25zdCBTdHJpbmcmKSBjb25zdDsKLSAgICB2aXJ0dWFs
IGJvb2wgaXNTdGVwcGFibGVTbG93KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAogcHJpdmF0
ZToKICAgICAvLyBIZWxwZXIgZm9yIHN0ZXBVcCgpL3N0ZXBEb3duKCkuIEFkZHMgc3RlcCB2YWx1
ZSAqIGNvdW50IHRvIHRoZSBjdXJyZW50IHZhbHVlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9Nb250aElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5w
dXRUeXBlLmNwcAppbmRleCAzNWU0OThhNDcwNzkzMTI1ODBkOTFhOWRhY2E5YzhmMDBiZmFkNGY4
Li5kZDk0MGViOTM2ZGEwNjc0NmI5ZmRlMzI5ZmIxNGJjYjkxM2VkYTNjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL01vbnRoSW5wdXRUeXBlLmNwcApAQCAtMTI3LDExICsxMjcsNiBAQCBPcHRpb25hbDxE
YXRlQ29tcG9uZW50cz4gTW9udGhJbnB1dFR5cGU6OnNldE1pbGxpc2Vjb25kVG9EYXRlQ29tcG9u
ZW50cyhkb3VibGUgdgogICAgIHJldHVybiBEYXRlQ29tcG9uZW50czo6ZnJvbU1vbnRoc1NpbmNl
RXBvY2godmFsdWUpOwogfQogCi1ib29sIE1vbnRoSW5wdXRUeXBlOjppc01vbnRoRmllbGQoKSBj
b25zdAotewotICAgIHJldHVybiB0cnVlOwotfQotCiB2b2lkIE1vbnRoSW5wdXRUeXBlOjpoYW5k
bGVET01BY3RpdmF0ZUV2ZW50KEV2ZW50JikKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1
dFR5cGUuaAppbmRleCA0ZTdhYmE2ZDU3ZTFkNDExMmIyMmY1NjFkNzI1YmEwMTA1ODk4NjRlLi5k
MWU1YTFhYThjMDY4NzAxZmI5ZTU4MzM3M2I5NWZkNzVlNmE1ZWM0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9Nb250aElucHV0VHlwZS5oCkBAIC01NCw3ICs1NCw2IEBAIHByaXZhdGU6CiAgICAgU3RlcFJh
bmdlIGNyZWF0ZVN0ZXBSYW5nZShBbnlTdGVwSGFuZGxpbmcpIGNvbnN0IG92ZXJyaWRlOwogICAg
IE9wdGlvbmFsPERhdGVDb21wb25lbnRzPiBwYXJzZVRvRGF0ZUNvbXBvbmVudHMoY29uc3QgU3Ry
aW5nVmlldyYpIGNvbnN0IG92ZXJyaWRlOwogICAgIE9wdGlvbmFsPERhdGVDb21wb25lbnRzPiBz
ZXRNaWxsaXNlY29uZFRvRGF0ZUNvbXBvbmVudHMoZG91YmxlKSBjb25zdCBvdmVycmlkZTsKLSAg
ICBib29sIGlzTW9udGhGaWVsZCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgaGFuZGxlRE9N
QWN0aXZhdGVFdmVudChFdmVudCYpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBpc1ZhbGlkRm9ybWF0
KE9wdGlvblNldDxEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzPikgY29uc3QgZmluYWw7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5jcHAKaW5kZXggZTY3YjQ4ZmZkMWZi
ZWUzN2NkNTkwM2QwZTQyNDA0ZWY3MjdkM2Y5NC4uNmU0MTdhNDBlNDhhYWVmNmQwYmViYzUzNThk
YmY1ZjgzZDg3MzM2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1
dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmNwcApA
QCAtMjEwLDExICsyMTAsNiBAQCBmbG9hdCBOdW1iZXJJbnB1dFR5cGU6OmRlY29yYXRpb25XaWR0
aCgpIGNvbnN0CiAgICAgcmV0dXJuIHdpZHRoOwogfQogCi1ib29sIE51bWJlcklucHV0VHlwZTo6
aXNTdGVwcGFibGVTbG93KCkgY29uc3QKLXsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQogYXV0byBO
dW1iZXJJbnB1dFR5cGU6OmhhbmRsZUtleWRvd25FdmVudChLZXlib2FyZEV2ZW50JiBldmVudCkg
LT4gU2hvdWxkQ2FsbEJhc2VFdmVudEhhbmRsZXIKIHsKICAgICBoYW5kbGVLZXlkb3duRXZlbnRG
b3JTcGluQnV0dG9uKGV2ZW50KTsKQEAgLTI5MiwxMSArMjg3LDYgQEAgYm9vbCBOdW1iZXJJbnB1
dFR5cGU6OnN1cHBvcnRzUGxhY2Vob2xkZXIoKSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQog
Ci1ib29sIE51bWJlcklucHV0VHlwZTo6aXNOdW1iZXJGaWVsZCgpIGNvbnN0Ci17Ci0gICAgcmV0
dXJuIHRydWU7Ci19Ci0KIHZvaWQgTnVtYmVySW5wdXRUeXBlOjphdHRyaWJ1dGVDaGFuZ2VkKGNv
bnN0IFF1YWxpZmllZE5hbWUmIG5hbWUpCiB7CiAgICAgQVNTRVJUKGVsZW1lbnQoKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuaAppbmRleCBiMWRhZDBjZDhmYjJmZjQzOWVmZjNj
M2I4YjQwYTFmMjNlMDI4N2ExLi4yZmMwZWQ2OWY0M2M2NjdmOGM2NGQ1OGI2ZTU5OWI4OGVlNzZk
ZGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmgKQEAgLTUwLDcgKzUwLDYg
QEAgcHJpdmF0ZToKICAgICBib29sIHR5cGVNaXNtYXRjaCgpIGNvbnN0IGZpbmFsOwogICAgIGJv
b2wgc2l6ZVNob3VsZEluY2x1ZGVEZWNvcmF0aW9uKGludCBkZWZhdWx0U2l6ZSwgaW50JiBwcmVm
ZXJyZWRTaXplKSBjb25zdCBmaW5hbDsKICAgICBmbG9hdCBkZWNvcmF0aW9uV2lkdGgoKSBjb25z
dCBmaW5hbDsKLSAgICBib29sIGlzU3RlcHBhYmxlU2xvdygpIGNvbnN0IGZpbmFsOwogICAgIFN0
ZXBSYW5nZSBjcmVhdGVTdGVwUmFuZ2UoQW55U3RlcEhhbmRsaW5nKSBjb25zdCBmaW5hbDsKICAg
ICBTaG91bGRDYWxsQmFzZUV2ZW50SGFuZGxlciBoYW5kbGVLZXlkb3duRXZlbnQoS2V5Ym9hcmRF
dmVudCYpIGZpbmFsOwogICAgIERlY2ltYWwgcGFyc2VUb051bWJlcihjb25zdCBTdHJpbmcmLCBj
b25zdCBEZWNpbWFsJikgY29uc3QgZmluYWw7CkBAIC02Miw3ICs2MSw2IEBAIHByaXZhdGU6CiAg
ICAgYm9vbCBoYXNCYWRJbnB1dCgpIGNvbnN0IGZpbmFsOwogICAgIFN0cmluZyBiYWRJbnB1dFRl
eHQoKSBjb25zdCBmaW5hbDsKICAgICBib29sIHN1cHBvcnRzUGxhY2Vob2xkZXIoKSBjb25zdCBm
aW5hbDsKLSAgICBib29sIGlzTnVtYmVyRmllbGQoKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIGF0
dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGZpbmFsOwogfTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9QYXNzd29yZElucHV0VHlwZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1Bhc3N3b3JkSW5wdXRUeXBlLmNwcAppbmRleCA3YzhhOWIwNTQzMGE4Njg1
ZTVmNDg2ZTBmNGEwMGZlZjI3MmM4ZWNhLi4yYTAzZjY0ZmExM2E5MWRmNTgzOGRhYmVmNTMzOGFl
NjAxZTg1ZTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Bhc3N3b3JkSW5wdXRU
eXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1Bhc3N3b3JkSW5wdXRUeXBlLmNwcApA
QCAtODYsOSArODYsNCBAQCBib29sIFBhc3N3b3JkSW5wdXRUeXBlOjpzaG91bGRSZXNwZWN0TGlz
dEF0dHJpYnV0ZSgpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIFBhc3N3b3JkSW5wdXRU
eXBlOjppc1Bhc3N3b3JkRmllbGQoKSBjb25zdAotewotICAgIHJldHVybiB0cnVlOwotfQotCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Bh
c3N3b3JkSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1Bhc3N3b3JkSW5wdXRUeXBl
LmgKaW5kZXggM2M4NzQwMTNkMWYyN2QwZmFhYTBmYzZlYWEwZGU4YmFmYzI1N2Q0NC4uYjgyZTM5
ZTdjY2RmNDkyNjA4M2FiNWM4MDFmMjljYjU2MmU0MTg3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9QYXNzd29yZElucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
UGFzc3dvcmRJbnB1dFR5cGUuaApAQCAtNDcsNyArNDcsNiBAQCBwcml2YXRlOgogICAgIGJvb2wg
c2hvdWxkVXNlSW5wdXRNZXRob2QoKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIHNob3VsZFJl
c2V0T25Eb2N1bWVudEFjdGl2YXRpb24oKSBvdmVycmlkZTsKICAgICBib29sIHNob3VsZFJlc3Bl
Y3RMaXN0QXR0cmlidXRlKCkgb3ZlcnJpZGU7Ci0gICAgYm9vbCBpc1Bhc3N3b3JkRmllbGQoKSBj
b25zdCBvdmVycmlkZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFkaW9JbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9SYWRpb0lucHV0VHlwZS5jcHAKaW5kZXggOWQ4OWM2ZmI2OTE2MGE4ZTE0ODBmMGJlZmYx
OTcwZGMwOWI2NzA3YS4uMjViNGZkYmFmNGUxZjFlMjIzODNkYzZlZDYwNmI4NzQ5MjJlN2MxZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYWRpb0lucHV0VHlwZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9SYWRpb0lucHV0VHlwZS5jcHAKQEAgLTE4MCwxMSArMTgwLDYg
QEAgdm9pZCBSYWRpb0lucHV0VHlwZTo6ZGlkRGlzcGF0Y2hDbGljayhFdmVudCYgZXZlbnQsIGNv
bnN0IElucHV0RWxlbWVudENsaWNrU3RhdGUKICAgICBldmVudC5zZXREZWZhdWx0SGFuZGxlZCgp
OwogfQogCi1ib29sIFJhZGlvSW5wdXRUeXBlOjppc1JhZGlvQnV0dG9uKCkgY29uc3QKLXsKLSAg
ICByZXR1cm4gdHJ1ZTsKLX0KLQogYm9vbCBSYWRpb0lucHV0VHlwZTo6bWF0Y2hlc0luZGV0ZXJt
aW5hdGVQc2V1ZG9DbGFzcygpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGVsZW1lbnQoKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhZGlvSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL1JhZGlvSW5wdXRUeXBlLmgKaW5kZXggMTNlOTVlOWE1YmQyYjlhOTRiODViNTEw
ZWI5ZTM2YWMwYjA4YTJjZC4uNDBjZWE4ZmZlZmEzOGIyODdlNTcwZmYwNGE2MWNmYWQxYzBhOWQw
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYWRpb0lucHV0VHlwZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFkaW9JbnB1dFR5cGUuaApAQCAtNTEsNyArNTEsNiBAQCBw
cml2YXRlOgogICAgIGJvb2wgc2hvdWxkU2VuZENoYW5nZUV2ZW50QWZ0ZXJDaGVja2VkQ2hhbmdl
ZCgpIGZpbmFsOwogICAgIHZvaWQgd2lsbERpc3BhdGNoQ2xpY2soSW5wdXRFbGVtZW50Q2xpY2tT
dGF0ZSYpIGZpbmFsOwogICAgIHZvaWQgZGlkRGlzcGF0Y2hDbGljayhFdmVudCYsIGNvbnN0IElu
cHV0RWxlbWVudENsaWNrU3RhdGUmKSBmaW5hbDsKLSAgICBib29sIGlzUmFkaW9CdXR0b24oKSBj
b25zdCBmaW5hbDsKICAgICBib29sIG1hdGNoZXNJbmRldGVybWluYXRlUHNldWRvQ2xhc3MoKSBj
b25zdCBmaW5hbDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJ
bnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKaW5k
ZXggNDU5NmE3MDE4ZWQwOTBhNWY2MTM0YmM0ZjFjMDU3Nzk3MmM4YWU0OS4uNzkwNGJmNDE2ZDBm
MzcyNTA1NmRjYzgxNjNkNzVjNzgwMDU0ZjdjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlu
cHV0VHlwZS5jcHAKQEAgLTg0LDExICs4NCw2IEBAIFJhbmdlSW5wdXRUeXBlOjpSYW5nZUlucHV0
VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQogewogfQogCi1ib29sIFJhbmdlSW5wdXRU
eXBlOjppc1JhbmdlQ29udHJvbCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KIGNv
bnN0IEF0b21TdHJpbmcmIFJhbmdlSW5wdXRUeXBlOjpmb3JtQ29udHJvbFR5cGUoKSBjb25zdAog
ewogICAgIHJldHVybiBJbnB1dFR5cGVOYW1lczo6cmFuZ2UoKTsKQEAgLTEzMywxMSArMTI4LDYg
QEAgU3RlcFJhbmdlIFJhbmdlSW5wdXRUeXBlOjpjcmVhdGVTdGVwUmFuZ2UoQW55U3RlcEhhbmRs
aW5nIGFueVN0ZXBIYW5kbGluZykgY29uc3QKICAgICByZXR1cm4gU3RlcFJhbmdlKG1pbmltdW0s
IFJhbmdlTGltaXRhdGlvbnM6OlZhbGlkLCBtaW5pbXVtLCBtYXhpbXVtLCBzdGVwLCByYW5nZVN0
ZXBEZXNjcmlwdGlvbik7CiB9CiAKLWJvb2wgUmFuZ2VJbnB1dFR5cGU6OmlzU3RlcHBhYmxlU2xv
dygpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KIHZvaWQgUmFuZ2VJbnB1dFR5cGU6
OmhhbmRsZU1vdXNlRG93bkV2ZW50KE1vdXNlRXZlbnQmIGV2ZW50KQogewogICAgIEFTU0VSVChl
bGVtZW50KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlw
ZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5oCmluZGV4IDMzODRjNmMy
NjVmOTdmZjlmNTYzY2Q4ZjkwMDQ0MTkwMzMzOTYwNGMuLjVmN2NhNzhiMDFkMmU2M2IxOWI2OGY5
NjUxODNhMzc3NThmM2NmMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJ
bnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmgKQEAg
LTQzLDE0ICs0MywxMiBAQCBwdWJsaWM6CiAgICAgZXhwbGljaXQgUmFuZ2VJbnB1dFR5cGUoSFRN
TElucHV0RWxlbWVudCYpOwogCiBwcml2YXRlOgotICAgIGJvb2wgaXNSYW5nZUNvbnRyb2woKSBj
b25zdCBmaW5hbDsKICAgICBjb25zdCBBdG9tU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25z
dCBmaW5hbDsKICAgICBkb3VibGUgdmFsdWVBc0RvdWJsZSgpIGNvbnN0IGZpbmFsOwogICAgIEV4
Y2VwdGlvbk9yPHZvaWQ+IHNldFZhbHVlQXNEZWNpbWFsKGNvbnN0IERlY2ltYWwmLCBUZXh0Rmll
bGRFdmVudEJlaGF2aW9yKSBjb25zdCBmaW5hbDsKICAgICBib29sIHR5cGVNaXNtYXRjaEZvcihj
b25zdCBTdHJpbmcmKSBjb25zdCBmaW5hbDsKICAgICBib29sIHN1cHBvcnRzUmVxdWlyZWQoKSBj
b25zdCBmaW5hbDsKICAgICBTdGVwUmFuZ2UgY3JlYXRlU3RlcFJhbmdlKEFueVN0ZXBIYW5kbGlu
ZykgY29uc3QgZmluYWw7Ci0gICAgYm9vbCBpc1N0ZXBwYWJsZVNsb3coKSBjb25zdCBmaW5hbDsK
ICAgICB2b2lkIGhhbmRsZU1vdXNlRG93bkV2ZW50KE1vdXNlRXZlbnQmKSBmaW5hbDsKICAgICBT
aG91bGRDYWxsQmFzZUV2ZW50SGFuZGxlciBoYW5kbGVLZXlkb3duRXZlbnQoS2V5Ym9hcmRFdmVu
dCYpIGZpbmFsOwogICAgIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVJbnB1dFJlbmRl
cmVyKFJlbmRlclN0eWxlJiYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9SZXNldElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1Jlc2V0SW5wdXRUeXBl
LmNwcAppbmRleCBmMGNkYmU3ZjhhZDdhMDc5OWI5MzhjMzU0OTc4ZDJiOTM5ZDYwMDQzLi4yNTIy
MGUxMzViMGZkMTY4M2M1ZTlkM2NhODU4NTQ1Nzk3ZjlmNTQxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1Jlc2V0SW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L1Jlc2V0SW5wdXRUeXBlLmNwcApAQCAtNjQsOSArNjQsNCBAQCBTdHJpbmcgUmVzZXRJbnB1dFR5
cGU6OmRlZmF1bHRWYWx1ZSgpIGNvbnN0CiAgICAgcmV0dXJuIHJlc2V0QnV0dG9uRGVmYXVsdExh
YmVsKCk7CiB9CiAKLWJvb2wgUmVzZXRJbnB1dFR5cGU6OmlzVGV4dEJ1dHRvbigpIGNvbnN0Ci17
Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmVzZXRJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvUmVzZXRJbnB1dFR5cGUuaAppbmRleCBhNzc2ODEyZDljMTFhMTk4MTNlNTBkYzlmY2Jk
YTlkMGViZjAxODllLi44OGI3ZDRmNmVkNGFmNjM0ZDdmNTJmNDljYTMwMTk0ZTgzYTRjODhiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Jlc2V0SW5wdXRUeXBlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9SZXNldElucHV0VHlwZS5oCkBAIC00NCw3ICs0NCw2IEBAIHByaXZh
dGU6CiAgICAgYm9vbCBzdXBwb3J0c1ZhbGlkYXRpb24oKSBjb25zdCBvdmVycmlkZTsKICAgICB2
b2lkIGhhbmRsZURPTUFjdGl2YXRlRXZlbnQoRXZlbnQmKSBvdmVycmlkZTsKICAgICBTdHJpbmcg
ZGVmYXVsdFZhbHVlKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgYm9vbCBpc1RleHRCdXR0b24oKSBj
b25zdCBvdmVycmlkZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvU2VhcmNoSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvU2VhcmNoSW5wdXRUeXBlLmNwcAppbmRleCBhOTQ5MjkzZTUxOGZiNmMyZWNmOGEwNTEz
NzNmNjEyZjdlNGRmYjAxLi43ZTU3MmM1YWVkOTk3ZmU4MDAyNjAwODJjOWFmNDJlYTA4NmIzZGI0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1NlYXJjaElucHV0VHlwZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5cGUuY3BwCkBAIC05NywxMSArOTcs
NiBAQCBjb25zdCBBdG9tU3RyaW5nJiBTZWFyY2hJbnB1dFR5cGU6OmZvcm1Db250cm9sVHlwZSgp
IGNvbnN0CiAgICAgcmV0dXJuIElucHV0VHlwZU5hbWVzOjpzZWFyY2goKTsKIH0KIAotYm9vbCBT
ZWFyY2hJbnB1dFR5cGU6OmlzU2VhcmNoRmllbGQoKSBjb25zdAotewotICAgIHJldHVybiB0cnVl
OwotfQotCiBib29sIFNlYXJjaElucHV0VHlwZTo6bmVlZHNDb250YWluZXIoKSBjb25zdAogewog
ICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9TZWFyY2hJ
bnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvU2VhcmNoSW5wdXRUeXBlLmgKaW5kZXgg
Yjc5MmRkMDZhMzE5MjEyODg3MGExYmQ4ZjVlMmIxYjM4YjUwMzhlYy4uMzMxODMzZGQ2ZDg3MmRk
MDcwZjU3ZTg0N2UxY2EwNGUzMTI0ODJlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9TZWFyY2hJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1NlYXJjaElucHV0
VHlwZS5oCkBAIC01MCw3ICs1MCw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBhdHRyaWJ1dGVDaGFu
Z2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBmaW5hbDsKICAgICBSZW5kZXJQdHI8UmVuZGVyRWxl
bWVudD4gY3JlYXRlSW5wdXRSZW5kZXJlcihSZW5kZXJTdHlsZSYmKSBmaW5hbDsKICAgICBjb25z
dCBBdG9tU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBmaW5hbDsKLSAgICBib29sIGlz
U2VhcmNoRmllbGQoKSBjb25zdCBmaW5hbDsKICAgICBib29sIG5lZWRzQ29udGFpbmVyKCkgY29u
c3QgZmluYWw7CiAgICAgdm9pZCBjcmVhdGVTaGFkb3dTdWJ0cmVlQW5kVXBkYXRlSW5uZXJUZXh0
RWxlbWVudEVkaXRhYmlsaXR5KENvbnRhaW5lck5vZGU6OkNoaWxkQ2hhbmdlOjpTb3VyY2UsIGJv
b2wpIGZpbmFsOwogICAgIHZvaWQgZGVzdHJveVNoYWRvd1N1YnRyZWUoKSBmaW5hbDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvU3VibWl0SW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvU3VibWl0SW5wdXRUeXBlLmNwcAppbmRleCA5ODVhZjY2NzJkY2E4MzZmMjI2
MWEwYTNkNzM2YzYyOWFkYjg0NTNiLi5kODUxYzg1YjYzYzRhZGRhMTEyM2Q5ZDkzMDgxYmU2YTM4
NDkwZTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1N1Ym1pdElucHV0VHlwZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9TdWJtaXRJbnB1dFR5cGUuY3BwCkBAIC05MCwx
NCArOTAsNCBAQCBTdHJpbmcgU3VibWl0SW5wdXRUeXBlOjpkZWZhdWx0VmFsdWUoKSBjb25zdAog
ICAgIHJldHVybiBzdWJtaXRCdXR0b25EZWZhdWx0TGFiZWwoKTsKIH0KIAotYm9vbCBTdWJtaXRJ
bnB1dFR5cGU6OmlzU3VibWl0QnV0dG9uKCkgY29uc3QKLXsKLSAgICByZXR1cm4gdHJ1ZTsKLX0K
LQotYm9vbCBTdWJtaXRJbnB1dFR5cGU6OmlzVGV4dEJ1dHRvbigpIGNvbnN0Ci17Ci0gICAgcmV0
dXJuIHRydWU7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvU3VibWl0SW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1N1
Ym1pdElucHV0VHlwZS5oCmluZGV4IDk3MGIxNjQyOThmMzdjZTRiZmUyODJmMWYxY2E2YzlhMTZl
MzkzZjguLjMzYzgzZTU0ZjZmNzM3MTZiNzk1ZWUyZGY0OGRkMmRjYTE3NDdlY2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvU3VibWl0SW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9TdWJtaXRJbnB1dFR5cGUuaApAQCAtNDYsOCArNDYsNiBAQCBwcml2YXRlOgog
ICAgIHZvaWQgaGFuZGxlRE9NQWN0aXZhdGVFdmVudChFdmVudCYpIG92ZXJyaWRlOwogICAgIGJv
b2wgY2FuQmVTdWNjZXNzZnVsU3VibWl0QnV0dG9uKCkgb3ZlcnJpZGU7CiAgICAgU3RyaW5nIGRl
ZmF1bHRWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIGJvb2wgaXNTdWJtaXRCdXR0b24oKSBj
b25zdCBvdmVycmlkZTsKLSAgICBib29sIGlzVGV4dEJ1dHRvbigpIGNvbnN0IG92ZXJyaWRlOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9UZWxlcGhvbmVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZWxlcGhv
bmVJbnB1dFR5cGUuY3BwCmluZGV4IDgyOGQzMGZiOWU3OGQwNjAyOWUzYTc5NGZhN2IwZDczMzJi
NzhmMDUuLjRjNjhmMWY1ZWUyYWUyYzJjMTBhZmEwYTQ0NTA2NWM3YWI2YzYwNDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGVsZXBob25lSW5wdXRUeXBlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1RlbGVwaG9uZUlucHV0VHlwZS5jcHAKQEAgLTQxLDkgKzQxLDQgQEAg
Y29uc3QgQXRvbVN0cmluZyYgVGVsZXBob25lSW5wdXRUeXBlOjpmb3JtQ29udHJvbFR5cGUoKSBj
b25zdAogICAgIHJldHVybiBJbnB1dFR5cGVOYW1lczo6dGVsZXBob25lKCk7CiB9CiAKLWJvb2wg
VGVsZXBob25lSW5wdXRUeXBlOjppc1RlbGVwaG9uZUZpZWxkKCkgY29uc3QKLXsKLSAgICByZXR1
cm4gdHJ1ZTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9UZWxlcGhvbmVJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
VGVsZXBob25lSW5wdXRUeXBlLmgKaW5kZXggNGRlN2ZkMmJkYzljOWE3ZGM4NjE1M2M4NjJmNTk3
NmQ4N2RkNDFjYy4uOTE5NDVmNzI1MzM1ZDVmMTY0MjE0OTFlNjkxNGRjODYzNTBhZWRmZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZWxlcGhvbmVJbnB1dFR5cGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL1RlbGVwaG9uZUlucHV0VHlwZS5oCkBAIC00MSw3ICs0MSw2IEBA
IHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBjb25zdCBBdG9tU3RyaW5nJiBmb3JtQ29udHJvbFR5
cGUoKSBjb25zdCBvdmVycmlkZTsKLSAgICBib29sIGlzVGVsZXBob25lRmllbGQoKSBjb25zdCBv
dmVycmlkZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcAppbmRleCAwMzk5YWI3NGE3OGE3OWFkOWMwZTk1ZjY1
NjM1YjM2ZjYzODg1ODM4Li4zY2ZkN2YyNjMzZGIwYTQ0NWNjNTYxMjQ2MWU1ZGRjY2FjNGU0OGUy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwCkBAIC0xMDEs
MTEgKzEwMSw2IEBAIGJvb2wgVGV4dEZpZWxkSW5wdXRUeXBlOjppc01vdXNlRm9jdXNhYmxlKCkg
Y29uc3QKICAgICByZXR1cm4gZWxlbWVudCgpLT5pc1RleHRGb3JtQ29udHJvbEZvY3VzYWJsZSgp
OwogfQogCi1ib29sIFRleHRGaWVsZElucHV0VHlwZTo6aXNUZXh0RmllbGQoKSBjb25zdAotewot
ICAgIHJldHVybiB0cnVlOwotfQotCiBib29sIFRleHRGaWVsZElucHV0VHlwZTo6aXNFbXB0eVZh
bHVlKCkgY29uc3QKIHsKICAgICBhdXRvIGlubmVyVGV4dCA9IGlubmVyVGV4dEVsZW1lbnQoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5oCmluZGV4IGU4NDcyYzRiOTVl
ZDVjODI5ZGM4NDAzZDE4ZjFhNWRiZjZlMTBjZWYuLjc4YWZhNGFmOWE1MTE3NTliNDE4YWFhODcx
MjE2MjFjNzQ4Y2E2NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxk
SW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUu
aApAQCAtODksNyArODksNiBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIGJvb2wgaXNLZXli
b2FyZEZvY3VzYWJsZShLZXlib2FyZEV2ZW50KikgY29uc3QgZmluYWw7CiAgICAgYm9vbCBpc01v
dXNlRm9jdXNhYmxlKCkgY29uc3QgZmluYWw7Ci0gICAgYm9vbCBpc1RleHRGaWVsZCgpIGNvbnN0
IGZpbmFsOwogICAgIGJvb2wgaXNFbXB0eVZhbHVlKCkgY29uc3QgZmluYWw7CiAgICAgdm9pZCBo
YW5kbGVCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudChCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudCYpIGZp
bmFsOwogICAgIHZvaWQgZm9yd2FyZEV2ZW50KEV2ZW50JikgZmluYWw7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9UaW1lSW5wdXRUeXBlLmNwcAppbmRleCBmZGZjZTVhZGJmODljYWRlYzViZmM1MTEwMTkyNWE2
ZDliYmYwYTdiLi43MDFhYmIwMDBkZGUwODc3Yjc3ZGZiNmU3OWEzNjlkNTVmNzdiOWZlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5jcHAKQEAgLTEwMiwxMSArMTAyLDYgQEAgT3B0
aW9uYWw8RGF0ZUNvbXBvbmVudHM+IFRpbWVJbnB1dFR5cGU6OnNldE1pbGxpc2Vjb25kVG9EYXRl
Q29tcG9uZW50cyhkb3VibGUgdmEKICAgICByZXR1cm4gRGF0ZUNvbXBvbmVudHM6OmZyb21NaWxs
aXNlY29uZHNTaW5jZU1pZG5pZ2h0KHZhbHVlKTsKIH0KIAotYm9vbCBUaW1lSW5wdXRUeXBlOjpp
c1RpbWVGaWVsZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KIHZvaWQgVGltZUlu
cHV0VHlwZTo6aGFuZGxlRE9NQWN0aXZhdGVFdmVudChFdmVudCYpCiB7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvVGltZUlucHV0VHlwZS5oCmluZGV4IDcwOWIzNzQxMDAyZWUzMDMxNjY4ZGYxZTQ0MmQ2MTIx
OWIwOTMzMWQuLmEzYmVkNzExZGVkOGVkMmY0Y2MyNThmOGY4NWI1OTI1MWQ2NjZkZWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5oCkBAIC00OCw3ICs0OCw2IEBAIHByaXZhdGU6CiAg
ICAgU3RlcFJhbmdlIGNyZWF0ZVN0ZXBSYW5nZShBbnlTdGVwSGFuZGxpbmcpIGNvbnN0IG92ZXJy
aWRlOwogICAgIE9wdGlvbmFsPERhdGVDb21wb25lbnRzPiBwYXJzZVRvRGF0ZUNvbXBvbmVudHMo
Y29uc3QgU3RyaW5nVmlldyYpIGNvbnN0IG92ZXJyaWRlOwogICAgIE9wdGlvbmFsPERhdGVDb21w
b25lbnRzPiBzZXRNaWxsaXNlY29uZFRvRGF0ZUNvbXBvbmVudHMoZG91YmxlKSBjb25zdCBvdmVy
cmlkZTsKLSAgICBib29sIGlzVGltZUZpZWxkKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBo
YW5kbGVET01BY3RpdmF0ZUV2ZW50KEV2ZW50Jikgb3ZlcnJpZGU7CiAKICAgICBib29sIGlzVmFs
aWRGb3JtYXQoT3B0aW9uU2V0PERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM+KSBjb25z
dCBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVVJMSW5wdXRUeXBlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVVJMSW5wdXRUeXBlLmNwcAppbmRleCA3NjgxOGEyNjA5
OGU3NWNjODhmZWY3OWY4NTFhMDhiYmM5Y2E5ZTZkLi4yYzI3ZTIyOWUzOTI2YTdmNjNkZjM2NzQz
MTg5NWViNTE5MGI3OTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1VSTElucHV0
VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9VUkxJbnB1dFR5cGUuY3BwCkBAIC02
MSwxMSArNjEsNiBAQCBTdHJpbmcgVVJMSW5wdXRUeXBlOjp0eXBlTWlzbWF0Y2hUZXh0KCkgY29u
c3QKICAgICByZXR1cm4gdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hGb3JVUkxUZXh0KCk7
CiB9CiAKLWJvb2wgVVJMSW5wdXRUeXBlOjppc1VSTEZpZWxkKCkgY29uc3QKLXsKLSAgICByZXR1
cm4gdHJ1ZTsKLX0KLQogU3RyaW5nIFVSTElucHV0VHlwZTo6c2FuaXRpemVWYWx1ZShjb25zdCBT
dHJpbmcmIHByb3Bvc2VkVmFsdWUpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHN0cmlwTGVhZGluZ0Fu
ZFRyYWlsaW5nSFRNTFNwYWNlcyhCYXNlVGV4dElucHV0VHlwZTo6c2FuaXRpemVWYWx1ZShwcm9w
b3NlZFZhbHVlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1VSTElucHV0VHlw
ZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9VUkxJbnB1dFR5cGUuaAppbmRleCA5MDM4YzBlNTVi
Mjk2NTY3MGNkN2FhMzYzNTcwZTliMTg4N2JmODA3Li4xZGE5NTM1YzI0MWVhOGVjMjUzZWEwNGI2
YjJhN2M2OGMyZjU2YzAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1VSTElucHV0
VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVVJMSW5wdXRUeXBlLmgKQEAgLTQ0LDcg
KzQ0LDYgQEAgcHJpdmF0ZToKICAgICBib29sIHR5cGVNaXNtYXRjaEZvcihjb25zdCBTdHJpbmcm
KSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIHR5cGVNaXNtYXRjaCgpIGNvbnN0IG92ZXJyaWRl
OwogICAgIFN0cmluZyB0eXBlTWlzbWF0Y2hUZXh0KCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgYm9v
bCBpc1VSTEZpZWxkKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgU3RyaW5nIHNhbml0aXplVmFsdWUo
Y29uc3QgU3RyaW5nJikgY29uc3Qgb3ZlcnJpZGU7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVr
SW5wdXRUeXBlLmNwcAppbmRleCAxZmY2NmMzYjNjNWFhOGQ5MjJmZGQ5NzMyNDdhZGZhZTkyNDNh
ZDhkLi5iNTUyMDE5YzgxOTNhZDY3ZmMwMWUyNjk4MTNjZGQ3YTM5NDAyYzcxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvV2Vla0lucHV0VHlwZS5jcHAKQEAgLTc4LDExICs3OCw2IEBAIE9wdGlvbmFsPERh
dGVDb21wb25lbnRzPiBXZWVrSW5wdXRUeXBlOjpzZXRNaWxsaXNlY29uZFRvRGF0ZUNvbXBvbmVu
dHMoZG91YmxlIHZhCiAgICAgcmV0dXJuIERhdGVDb21wb25lbnRzOjpmcm9tTWlsbGlzZWNvbmRz
U2luY2VFcG9jaEZvcldlZWsodmFsdWUpOwogfQogCi1ib29sIFdlZWtJbnB1dFR5cGU6OmlzV2Vl
a0ZpZWxkKCkgY29uc3QKLXsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQogdm9pZCBXZWVrSW5wdXRU
eXBlOjpoYW5kbGVET01BY3RpdmF0ZUV2ZW50KEV2ZW50JikKIHsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvV2Vla0lucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9X
ZWVrSW5wdXRUeXBlLmgKaW5kZXggNTRlZTllMTY0MmJhMTRlZDI2ODAwNDQxZWI2NTM0MGY0MGQz
NmFjZC4uNWRjYjEwMTJiMjc1ZDcwNDkxYWZjMWI3NjBiNmUyZGE2YjhiYTE0OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9XZWVrSW5wdXRUeXBlLmgKQEAgLTUwLDcgKzUwLDYgQEAgcHJpdmF0ZToKICAgICBT
dGVwUmFuZ2UgY3JlYXRlU3RlcFJhbmdlKEFueVN0ZXBIYW5kbGluZykgY29uc3Qgb3ZlcnJpZGU7
CiAgICAgT3B0aW9uYWw8RGF0ZUNvbXBvbmVudHM+IHBhcnNlVG9EYXRlQ29tcG9uZW50cyhjb25z
dCBTdHJpbmdWaWV3JikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgT3B0aW9uYWw8RGF0ZUNvbXBvbmVu
dHM+IHNldE1pbGxpc2Vjb25kVG9EYXRlQ29tcG9uZW50cyhkb3VibGUpIGNvbnN0IG92ZXJyaWRl
OwotICAgIGJvb2wgaXNXZWVrRmllbGQoKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIGhhbmRs
ZURPTUFjdGl2YXRlRXZlbnQoRXZlbnQmKSBvdmVycmlkZTsKIAogICAgIGJvb2wgaXNWYWxpZEZv
cm1hdChPcHRpb25TZXQ8RGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0cz4pIGNvbnN0IGZp
bmFsOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>