<?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>220758</bug_id>
          
          <creation_ts>2021-01-19 18:21:04 -0800</creation_ts>
          <short_desc>Accelerate HTMLInputElement creation</short_desc>
          <delta_ts>2021-01-20 19:45:34 -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>New Bugs</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>
          
          <blocked>220785</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>koivisto</cc>
    
    <cc>mifenton</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1720781</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-01-19 18:21:04 -0800</bug_when>
    <thetext>Accelerate HTMLInputElement creation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720782</commentid>
    <comment_count>1</comment_count>
      <attachid>417934</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-01-19 18:27:40 -0800</bug_when>
    <thetext>Created attachment 417934
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720783</commentid>
    <comment_count>2</comment_count>
      <attachid>417935</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-01-19 18:29:50 -0800</bug_when>
    <thetext>Created attachment 417935
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720788</commentid>
    <comment_count>3</comment_count>
      <attachid>417937</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-01-19 18:43:06 -0800</bug_when>
    <thetext>Created attachment 417937
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720959</commentid>
    <comment_count>4</comment_count>
      <attachid>417937</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-01-20 11:59:07 -0800</bug_when>
    <thetext>Comment on attachment 417937
Patch

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

&gt; Source/WebCore/html/InputType.h:337
&gt; +    explicit InputType(HTMLInputElement&amp; element, Type type)

I&apos;d prefer to see Type be the first argument to this constructor and all the derived class constructors.

&gt; Source/WebCore/html/InputType.h:350
&gt; +    Type m_type;

This can be const.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720962</commentid>
    <comment_count>5</comment_count>
      <attachid>417937</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-01-20 12:21:24 -0800</bug_when>
    <thetext>Comment on attachment 417937
Patch

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

&gt;&gt; Source/WebCore/html/InputType.h:337
&gt;&gt; +    explicit InputType(HTMLInputElement&amp; element, Type type)
&gt; 
&gt; I&apos;d prefer to see Type be the first argument to this constructor and all the derived class constructors.

Sounds good. I&apos;ll change them.

&gt;&gt; Source/WebCore/html/InputType.h:350
&gt;&gt; +    Type m_type;
&gt; 
&gt; This can be const.

Nice. Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720986</commentid>
    <comment_count>6</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-01-20 13:54:44 -0800</bug_when>
    <thetext>Committed r271672: &lt;https://trac.webkit.org/changeset/271672&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720988</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-01-20 13:55:15 -0800</bug_when>
    <thetext>&lt;rdar://problem/73419065&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1721028</commentid>
    <comment_count>8</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-01-20 15:50:24 -0800</bug_when>
    <thetext>Nice! Blink did a similar optimization here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1721074</commentid>
    <comment_count>9</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-01-20 18:55:02 -0800</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #8)
&gt; Nice! Blink did a similar optimization here.

Oh! Nice :)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417934</attachid>
            <date>2021-01-19 18:27:40 -0800</date>
            <delta_ts>2021-01-19 18:29:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220758-20210119182739.patch</filename>
            <type>text/plain</type>
            <size>57635</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxNjI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWQwNWRkNDI3ODUyNDNj
ZTUyZGE4ZjAzMDFlNWYyNGVkN2RkMTc4NC4uYmUxMTI4ZDE5YjlhZDEzY2Q2MmRlZGVmOWU2YmMw
NzAxZjQ0YWQ2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExNiBAQAorMjAyMS0wMS0xOSAgWXVz
dWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIEFjY2VsZXJhdGUgSFRN
TElucHV0RWxlbWVudCBjcmVhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjIwNzU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgSFRNTElucHV0RWxlbWVudCBjcmVhdGlvbiBpcyB0b28gc2xvdy4KKwor
ICAgICAgICAxLiBJbnB1dFR5cGUgaXMgZXhjZXNzaXZlbHkgdXNpbmcgdmlydHVhbCBkaXNwYXRj
aGluZywgd2hpY2ggaXMgdG9vIHNsb3cgZm9yIGhvdCBwYXRoLgorICAgICAgICAyLiBIVE1MSW5w
dXRFbGVtZW50IGNyZWF0ZXMgaW50ZXJuYWwgZWxlbWVudHMgYXMgYSBzaGFkb3cgRE9NIGFuZCBp
dHMgY3JlYXRpb24gaXMgdG9vIGdlbmVyaWMuCisgICAgICAgIDMuIFdlIGFyZSBzZXR0aW5nIGlu
bmVyIHRleHQgZWxlbWVudCdzIGVkaXRhYmlsaXR5IGluIGEgdmVyeSBnZW5lcmljIHdheS4gVGhp
cyBhbGxvY2F0ZXMgRWxlbWVudERhdGEgZm9yIGVhY2ggZWxlbWVudHMgd2hpbGUgYXR0cmlidXRl
cyBhcmUgYWxtb3N0IHRoZSBzYW1lLgorCisgICAgICAgIEluIHRoaXMgcGF0Y2gsCisKKyAgICAg
ICAgMS4gV2UgYWRkIG1fdHlwZSBmaWVsZCBpbiBJbnB1dFR5cGUsIGFuZCBmb3IgdGhlIGhvdCBw
YXRoLCB3ZSBhdHRlbXB0IHRvIGRldmlydHVhbGl6ZSB0aGluZ3MgZHVlIHRvIHBlcmZvcm1hbmNl
IHByb2JsZW0uCisgICAgICAgIDIuIFdlIHBhc3MgInBhcnNpbmcgcGhhc2UiIGluZm9ybWF0aW9u
IHRvIHNoYWRvdyBET00gY3JlYXRpb24gdG8gbWFrZSB0aGVtIGZhc3QuCisgICAgICAgIDMuIFdl
IGluaXRpYWxpemUgZWRpdGliaWxpdHkgd2hlbiBjcmVhdGluZyBUZXh0Q29udHJvbElubmVyVGV4
dEVsZW1lbnQuIEFuZCB3ZSB1c2UgcGFyc2VyU2V0QXR0cmlidXRlcyB0byBzZXQgc2hhcmVkIEVs
ZW1lbnREYXRhLiBUaGlzIGlzIGZhc3RlciBhbmQgbGVzcyBtZW1vcnkuCisgICAgICAgIDQuIFdl
IGFsc28gc2hyaW5rIHNpemVvZihTdHlsZTo6U2NvcGUpIHRvIHJlZHVjZSBzaXplIG9mIGFsbG9j
YXRpb24gd2hlbiB1c2luZyBzaGFkb3cgRE9NLgorCisgICAgICAgIFRoaXMgY2hhbmdlIG9mZmVy
cyAxJSBwcm9ncmVzc2lvbiBpbiBTcGVlZG9tZXRlcjIvalF1ZXJ5LgorCisgICAgICAgICogaHRt
bC9CYXNlQnV0dG9uSW5wdXRUeXBlLmg6CisgICAgICAgIChXZWJDb3JlOjpCYXNlQnV0dG9uSW5w
dXRUeXBlOjpCYXNlQnV0dG9uSW5wdXRUeXBlKToKKyAgICAgICAgKiBodG1sL0Jhc2VDaGVja2Fi
bGVJbnB1dFR5cGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VDaGVja2FibGVJbnB1dFR5cGU6
OkJhc2VDaGVja2FibGVJbnB1dFR5cGUpOgorICAgICAgICAqIGh0bWwvQmFzZUNsaWNrYWJsZVdp
dGhLZXlJbnB1dFR5cGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VDbGlja2FibGVXaXRoS2V5
SW5wdXRUeXBlOjpCYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlwZSk6CisgICAgICAgICogaHRt
bC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmFzZURh
dGVBbmRUaW1lSW5wdXRUeXBlOjppc1N0ZXBwYWJsZVNsb3cgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6QmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlQW5kVXBk
YXRlSW5uZXJUZXh0RWxlbWVudEVkaXRhYmlsaXR5KToKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VE
YXRlQW5kVGltZUlucHV0VHlwZTo6aXNTdGVwcGFibGUgY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6QmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVl
KTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6QmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlOjpCYXNlRGF0ZUFuZFRp
bWVJbnB1dFR5cGUpOgorICAgICAgICAqIGh0bWwvQmFzZVRleHRJbnB1dFR5cGUuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkJhc2VUZXh0SW5wdXRUeXBlOjpCYXNlVGV4dElucHV0VHlwZSk6CisgICAg
ICAgICogaHRtbC9CdXR0b25JbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL0NoZWNrYm94SW5w
dXRUeXBlLmg6CisgICAgICAgICogaHRtbC9Db2xvcklucHV0VHlwZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDb2xvcklucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZUFuZFVwZGF0ZUlubmVy
VGV4dEVsZW1lbnRFZGl0YWJpbGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpDb2xvcklucHV0VHlw
ZTo6Y3JlYXRlU2hhZG93U3VidHJlZSk6IERlbGV0ZWQuCisgICAgICAgICogaHRtbC9Db2xvcklu
cHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvRGF0ZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpEYXRlSW5wdXRUeXBlOjpEYXRlSW5wdXRUeXBlKToKKyAgICAgICAgKiBodG1sL0Rh
dGVJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuaDoK
KyAgICAgICAgKiBodG1sL0VtYWlsSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9GaWxlSW5w
dXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVJbnB1dFR5cGU6OkZpbGVJbnB1dFR5
cGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJl
ZUFuZFVwZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0YWJpbGl0eSk6CisgICAgICAgIChXZWJDb3Jl
OjpGaWxlSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKTogRGVsZXRlZC4KKyAgICAgICAg
KiBodG1sL0ZpbGVJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6ZGlkQWRkVXNlckFnZW50
U2hhZG93Um9vdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50Ojppc1ZhbGlk
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnVwZGF0ZVR5cGUp
OgorICAgICAgICAqIGh0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MVGV4dEFyZWFFbGVtZW50OjpkaWRBZGRVc2VyQWdlbnRTaGFkb3dSb290KToKKyAg
ICAgICAgKiBodG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojp1cGRhdGVJbm5lclRleHRFbGVtZW50
RWRpdGFiaWxpdHkpOgorICAgICAgICAqIGh0bWwvSGlkZGVuSW5wdXRUeXBlLmg6CisgICAgICAg
ICogaHRtbC9JbWFnZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUlucHV0
VHlwZTo6SW1hZ2VJbnB1dFR5cGUpOgorICAgICAgICAqIGh0bWwvSW1hZ2VJbnB1dFR5cGUuaDoK
KyAgICAgICAgKiBodG1sL0lucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5
cGU6OmlzSW52YWxpZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6OmNyZWF0
ZVNoYWRvd1N1YnRyZWVBbmRVcGRhdGVJbm5lclRleHRFbGVtZW50RWRpdGFiaWxpdHkpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlOjppc1N0ZXBwYWJsZSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUpOiBEZWxldGVkLgorICAgICAg
ICAqIGh0bWwvSW5wdXRUeXBlLmg6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6OklucHV0
VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6OmlzU3RlcHBhYmxlU2xvdyBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjppc0ludmFsaWRJbnB1dFR5cGUpOgorICAgICAgICAqIGh0
bWwvTW9udGhJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL051bWJlcklucHV0VHlwZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpOdW1iZXJJbnB1dFR5cGU6OmlzU3RlcHBhYmxlU2xvdyBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpOdW1iZXJJbnB1dFR5cGU6OmlzU3RlcHBhYmxlIGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL051bWJlcklucHV0VHlwZS5oOgorICAgICAgICAq
IGh0bWwvUGFzc3dvcmRJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL1JhZGlvSW5wdXRUeXBl
Lmg6CisgICAgICAgICogaHRtbC9SYW5nZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSYW5nZUlucHV0VHlwZTo6UmFuZ2VJbnB1dFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6UmFu
Z2VJbnB1dFR5cGU6OmlzU3RlcHBhYmxlU2xvdyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpS
YW5nZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZUFuZFVwZGF0ZUlubmVyVGV4dEVsZW1l
bnRFZGl0YWJpbGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpSYW5nZUlucHV0VHlwZTo6aXNTdGVw
cGFibGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2VJbnB1dFR5cGU6
OmNyZWF0ZVNoYWRvd1N1YnRyZWUpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvUmFuZ2VJbnB1
dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL1Jlc2V0SW5wdXRUeXBlLmg6CisgICAgICAgICogaHRt
bC9TZWFyY2hJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoSW5wdXRUeXBl
OjpTZWFyY2hJbnB1dFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoSW5wdXRUeXBlOjpj
cmVhdGVTaGFkb3dTdWJ0cmVlQW5kVXBkYXRlSW5uZXJUZXh0RWxlbWVudEVkaXRhYmlsaXR5KToK
KyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaElucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSk6
IERlbGV0ZWQuCisgICAgICAgICogaHRtbC9TZWFyY2hJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBo
dG1sL1N1Ym1pdElucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvVGVsZXBob25lSW5wdXRUeXBl
Lmg6CisgICAgICAgICogaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6VGV4dEZpZWxkSW5wdXRUeXBlOjpUZXh0RmllbGRJbnB1dFR5cGUpOgorICAgICAgICAo
V2ViQ29yZTo6VGV4dEZpZWxkSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlQW5kVXBkYXRl
SW5uZXJUZXh0RWxlbWVudEVkaXRhYmlsaXR5KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRGaWVs
ZElucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSk6IERlbGV0ZWQuCisgICAgICAgICogaHRt
bC9UZXh0RmllbGRJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL1RleHRJbnB1dFR5cGUuaDoK
KyAgICAgICAgKiBodG1sL1RpbWVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGlt
ZUlucHV0VHlwZTo6VGltZUlucHV0VHlwZSk6CisgICAgICAgICogaHRtbC9UaW1lSW5wdXRUeXBl
Lmg6CisgICAgICAgICogaHRtbC9VUkxJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL1dlZWtJ
bnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVu
dHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50Ojpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50Ojp1
cGRhdGVJbm5lclRleHRFbGVtZW50RWRpdGFiaWxpdHlJbXBsKToKKyAgICAgICAgKiBodG1sL3No
YWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuaDoKKyAgICAgICAgKiBzdHlsZS9TdHlsZVNj
b3BlLmg6CisKIDIwMjEtMDEtMTkgIFBhdHJpY2sgQW5nbGUgIDxwYW5nbGVAYXBwbGUuY29tPgog
CiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEZvbnQgRGV0YWlscyBzaWRlYmFyIC0gRnJhY3Rpb25h
bCB2YXJpYXRpb24gYXhpcyByYW5nZXMvZGVmYXVsdCB2YWx1ZXMgYXJlIHJvdW5kZWQuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VCdXR0b25JbnB1dFR5cGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvQmFzZUJ1dHRvbklucHV0VHlwZS5oCmluZGV4IGY3YmNhYjI0MmI1YzMy
MGIzMTE4MDYxMDhkYWUwMmNhNWRjOGNjOTguLmIyM2YzMDcxMzc5NmEwOTBiYTAwOTU5NGEyYWEx
OWUxYTg5NDQxM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUJ1dHRvbklu
cHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUJ1dHRvbklucHV0VHlwZS5o
CkBAIC0zNyw3ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIC8vIEJhc2Ugb2YgYnV0dG9u
LCBmaWxlLCBpbWFnZSwgcmVzZXQsIGFuZCBzdWJtaXQgdHlwZXMuCiBjbGFzcyBCYXNlQnV0dG9u
SW5wdXRUeXBlIDogcHVibGljIEJhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlIHsKIHByb3Rl
Y3RlZDoKLSAgICBleHBsaWNpdCBCYXNlQnV0dG9uSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQm
IGVsZW1lbnQpIDogQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUoZWxlbWVudCkgeyB9Cisg
ICAgZXhwbGljaXQgQmFzZUJ1dHRvbklucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50
LCBUeXBlIHR5cGUpIDogQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUoZWxlbWVudCwgdHlw
ZSkgeyB9CiAKIHByaXZhdGU6CiAgICAgYm9vbCBzaG91bGRTYXZlQW5kUmVzdG9yZUZvcm1Db250
cm9sU3RhdGUoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hl
Y2thYmxlSW5wdXRUeXBlLmgKaW5kZXggOTIxYmI4ODVhMjQxNDVmZmRkMDM3ZDNmZjI4ZTI4ODU2
MGJkNTVhYi4uODE3YTA3ODk1NTlhNTg5ZDFmZmM3NjFmNTI5NzBkZWFlMjUxOWJkYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmgKQEAgLTM3LDcgKzM3
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogLy8gQmFzZSBvZiBjaGVja2JveCBhbmQgcmFkaW8g
dHlwZXMuCiBjbGFzcyBCYXNlQ2hlY2thYmxlSW5wdXRUeXBlIDogcHVibGljIElucHV0VHlwZSB7
CiBwcm90ZWN0ZWQ6Ci0gICAgZXhwbGljaXQgQmFzZUNoZWNrYWJsZUlucHV0VHlwZShIVE1MSW5w
dXRFbGVtZW50JiBlbGVtZW50KSA6IElucHV0VHlwZShlbGVtZW50KSB7IH0KKyAgICBleHBsaWNp
dCBCYXNlQ2hlY2thYmxlSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQsIFR5cGUg
dHlwZSkgOiBJbnB1dFR5cGUoZWxlbWVudCwgdHlwZSkgeyB9CiAgICAgU2hvdWxkQ2FsbEJhc2VF
dmVudEhhbmRsZXIgaGFuZGxlS2V5ZG93bkV2ZW50KEtleWJvYXJkRXZlbnQmKSBvdmVycmlkZTsK
ICAgICB2b2lkIGZpcmVJbnB1dEFuZENoYW5nZUV2ZW50cygpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0Jhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0Jhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlLmgKaW5kZXggZmU4NzEz
Y2JhNzBjYWY5YzczMGM0M2Y3MjMwZDQ3MTkyZDA2MzM0Mi4uOGRhMTI4Yjk2MGQxZjM1MmUwMmFk
MjIwOWJlYzI2YzM0OTk2MDg5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNl
Q2xpY2thYmxlV2l0aEtleUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFz
ZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUuaApAQCAtNDMsNyArNDMsNyBAQCBjbGFzcyBCYXNl
Q2xpY2thYmxlV2l0aEtleUlucHV0VHlwZSA6IHB1YmxpYyBJbnB1dFR5cGUgewogICAgIHN0YXRp
YyBib29sIGFjY2Vzc0tleUFjdGlvbihIVE1MSW5wdXRFbGVtZW50JiwgYm9vbCBzZW5kTW91c2VF
dmVudHMpOwogICAgIAogcHJvdGVjdGVkOgotICAgIGV4cGxpY2l0IEJhc2VDbGlja2FibGVXaXRo
S2V5SW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogSW5wdXRUeXBlKGVsZW1l
bnQpIHsgfQorICAgIGV4cGxpY2l0IEJhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlKEhUTUxJ
bnB1dEVsZW1lbnQmIGVsZW1lbnQsIFR5cGUgdHlwZSkgOiBJbnB1dFR5cGUoZWxlbWVudCwgdHlw
ZSkgeyB9CiAKIHByaXZhdGU6CiAgICAgU2hvdWxkQ2FsbEJhc2VFdmVudEhhbmRsZXIgaGFuZGxl
S2V5ZG93bkV2ZW50KEtleWJvYXJkRXZlbnQmKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcAppbmRleCBiYTUzNzBmMmYwODQz
ZDU0YjY2MWEwYTM4MjdlODI0MzI2NmY1MTUwLi40YTJiOTc1ZjliYjExNGI0MDAzMGVlYzY0Y2Fi
YWY5YzYxZDEwZjcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5k
VGltZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRp
bWVJbnB1dFR5cGUuY3BwCkBAIC0xNjcsNyArMTY3LDcgQEAgRGVjaW1hbCBCYXNlRGF0ZUFuZFRp
bWVJbnB1dFR5cGU6OmRlZmF1bHRWYWx1ZUZvclN0ZXBVcCgpIGNvbnN0CiAgICAgcmV0dXJuIERl
Y2ltYWw6OmZyb21Eb3VibGUobXMgKyAob2Zmc2V0ICogbXNQZXJNaW51dGUpKTsKIH0KIAotYm9v
bCBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmlzU3RlcHBhYmxlKCkgY29uc3QKK2Jvb2wgQmFz
ZURhdGVBbmRUaW1lSW5wdXRUeXBlOjppc1N0ZXBwYWJsZVNsb3coKSBjb25zdAogewogICAgIHJl
dHVybiB0cnVlOwogfQpAQCAtMzA3LDcgKzMwNyw3IEBAIHZvaWQgQmFzZURhdGVBbmRUaW1lSW5w
dXRUeXBlOjpoYW5kbGVET01BY3RpdmF0ZUV2ZW50KEV2ZW50JikKICAgICB9CiB9CiAKLXZvaWQg
QmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKK3ZvaWQgQmFz
ZURhdGVBbmRUaW1lSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlQW5kVXBkYXRlSW5uZXJU
ZXh0RWxlbWVudEVkaXRhYmlsaXR5KENvbnRhaW5lck5vZGU6OkNoaWxkQ2hhbmdlOjpTb3VyY2Us
IGJvb2wpCiB7CiAgICAgQVNTRVJUKGVsZW1lbnQoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oCmluZGV4IDk5NDc4NDM1OThiMWVlOWE4MjI0
YWM1OWEyZWFhZWVmMTE4Nzc0NTUuLmUwOTI2NDliZDAyYzZjMWNiODNjNzI0NDQ2ZDg2MDBiMDk5
NDBjOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5w
dXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5
cGUuaApAQCAtNTgsNyArNTgsNyBAQCBjbGFzcyBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUgOiBw
dWJsaWMgSW5wdXRUeXBlLCBwcml2YXRlIERhdGVUaW1lQ2hvb3NlckNsaWVudAogICAgICAgICBI
YXNNZXJpZGllbSA9IDEgPDwgNywKICAgICB9OwogCi0gICAgQmFzZURhdGVBbmRUaW1lSW5wdXRU
eXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogSW5wdXRUeXBlKGVsZW1lbnQpIHsgfQor
ICAgIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50LCBU
eXBlIHR5cGUpIDogSW5wdXRUeXBlKGVsZW1lbnQsIHR5cGUpIHsgfQogICAgIH5CYXNlRGF0ZUFu
ZFRpbWVJbnB1dFR5cGUoKTsKIAogICAgIERlY2ltYWwgcGFyc2VUb051bWJlcihjb25zdCBTdHJp
bmcmLCBjb25zdCBEZWNpbWFsJikgY29uc3Qgb3ZlcnJpZGU7CkBAIC02Nyw2ICs2Nyw5IEBAIGNs
YXNzIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZSA6IHB1YmxpYyBJbnB1dFR5cGUsIHByaXZhdGUg
RGF0ZVRpbWVDaG9vc2VyQ2xpZW50CiAKICAgICBib29sIHNob3VsZEhhdmVTZWNvbmRGaWVsZChj
b25zdCBEYXRlQ29tcG9uZW50cyYpIGNvbnN0OwogICAgIGJvb2wgc2hvdWxkSGF2ZU1pbGxpc2Vj
b25kRmllbGQoY29uc3QgRGF0ZUNvbXBvbmVudHMmKSBjb25zdDsKKyAgICBib29sIHR5cGVNaXNt
YXRjaEZvcihjb25zdCBTdHJpbmcmKSBjb25zdCBmaW5hbDsKKyAgICBib29sIHR5cGVNaXNtYXRj
aCgpIGNvbnN0IGZpbmFsOworICAgIGJvb2wgdmFsdWVNaXNzaW5nKGNvbnN0IFN0cmluZyYpIGNv
bnN0IGZpbmFsOwogCiBwcml2YXRlOgogICAgIGNsYXNzIERhdGVUaW1lRm9ybWF0VmFsaWRhdG9y
IGZpbmFsIDogcHVibGljIERhdGVUaW1lRm9ybWF0OjpUb2tlbkhhbmRsZXIgewpAQCAtOTYsMTEg
Kzk5LDggQEAgY2xhc3MgQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlIDogcHVibGljIElucHV0VHlw
ZSwgcHJpdmF0ZSBEYXRlVGltZUNob29zZXJDbGllbnQKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBz
ZXRWYWx1ZUFzRGF0ZShkb3VibGUpIGNvbnN0IG92ZXJyaWRlOwogICAgIGRvdWJsZSB2YWx1ZUFz
RG91YmxlKCkgY29uc3QgZmluYWw7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0VmFsdWVBc0Rl
Y2ltYWwoY29uc3QgRGVjaW1hbCYsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IpIGNvbnN0IGZpbmFs
OwotICAgIGJvb2wgdHlwZU1pc21hdGNoRm9yKGNvbnN0IFN0cmluZyYpIGNvbnN0IGZpbmFsOwot
ICAgIGJvb2wgdHlwZU1pc21hdGNoKCkgY29uc3QgZmluYWw7Ci0gICAgYm9vbCB2YWx1ZU1pc3Np
bmcoY29uc3QgU3RyaW5nJikgY29uc3QgZmluYWw7CiAgICAgRGVjaW1hbCBkZWZhdWx0VmFsdWVG
b3JTdGVwVXAoKSBjb25zdCBvdmVycmlkZTsKLSAgICBib29sIGlzU3RlcHBhYmxlKCkgY29uc3Qg
ZmluYWw7CisgICAgYm9vbCBpc1N0ZXBwYWJsZVNsb3coKSBjb25zdCBmaW5hbDsKICAgICBTdHJp
bmcgbG9jYWxpemVWYWx1ZShjb25zdCBTdHJpbmcmKSBjb25zdCBmaW5hbDsKICAgICBib29sIHN1
cHBvcnRzUmVhZE9ubHkoKSBjb25zdCBmaW5hbDsKICAgICBib29sIHNob3VsZFJlc3BlY3RMaXN0
QXR0cmlidXRlKCkgZmluYWw7CkBAIC0xMDgsNyArMTA4LDcgQEAgY2xhc3MgQmFzZURhdGVBbmRU
aW1lSW5wdXRUeXBlIDogcHVibGljIElucHV0VHlwZSwgcHJpdmF0ZSBEYXRlVGltZUNob29zZXJD
bGllbnQKICAgICBib29sIGlzTW91c2VGb2N1c2FibGUoKSBjb25zdCBmaW5hbDsKIAogICAgIHZv
aWQgaGFuZGxlRE9NQWN0aXZhdGVFdmVudChFdmVudCYpIG92ZXJyaWRlOwotICAgIHZvaWQgY3Jl
YXRlU2hhZG93U3VidHJlZSgpIGZpbmFsOworICAgIHZvaWQgY3JlYXRlU2hhZG93U3VidHJlZUFu
ZFVwZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0YWJpbGl0eShDb250YWluZXJOb2RlOjpDaGlsZENo
YW5nZTo6U291cmNlLCBib29sKSBmaW5hbDsKICAgICB2b2lkIGRlc3Ryb3lTaGFkb3dTdWJ0cmVl
KCkgZmluYWw7CiAgICAgdm9pZCB1cGRhdGVJbm5lclRleHRWYWx1ZSgpIGZpbmFsOwogICAgIGJv
b2wgaGFzQ3VzdG9tRm9jdXNMb2dpYygpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9CYXNlVGV4dElucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9C
YXNlVGV4dElucHV0VHlwZS5oCmluZGV4IDM4ZDNhZTVmZTU3YzhkNDI4M2JkM2UyODEzMGZlNDk1
ZDIyZWYzMDYuLmI1NmM2ODM5ODNjNDdjNTk5ODRlYmVhNjI0N2MzYTljN2FlNjg1YzggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZVRleHRJbnB1dFR5cGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0Jhc2VUZXh0SW5wdXRUeXBlLmgKQEAgLTM4LDkgKzM4LDggQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogLy8gVGhleSBzdXBwb3J0IG1heGxlbmd0aCwgc2VsZWN0aW9uIGZ1
bmN0aW9ucywgYW5kIHNvIG9uLgogY2xhc3MgQmFzZVRleHRJbnB1dFR5cGUgOiBwdWJsaWMgVGV4
dEZpZWxkSW5wdXRUeXBlIHsKIHByb3RlY3RlZDoKLSAgICBleHBsaWNpdCBCYXNlVGV4dElucHV0
VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IFRleHRGaWVsZElucHV0VHlwZShlbGVt
ZW50KSB7IH0KKyAgICBleHBsaWNpdCBCYXNlVGV4dElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50
JiBlbGVtZW50LCBUeXBlIHR5cGUpIDogVGV4dEZpZWxkSW5wdXRUeXBlKGVsZW1lbnQsIHR5cGUp
IHsgfQogCi1wcml2YXRlOgogICAgIGJvb2wgaXNUZXh0VHlwZSgpIGNvbnN0IG92ZXJyaWRlOwog
ICAgIGJvb2wgcGF0dGVybk1pc21hdGNoKGNvbnN0IFN0cmluZyYpIGNvbnN0IG92ZXJyaWRlOwog
ICAgIGJvb2wgc3VwcG9ydHNQbGFjZWhvbGRlcigpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CdXR0b25JbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvQnV0dG9uSW5wdXRUeXBlLmgKaW5kZXggODYxZjk1YTY5YzgwYTgxOGNjNDBhOTFiMTU4
ZmQwMDFhNzdkMzA0OC4uM2Y5MjdhMWFkYjRkOWM4ZDZiNWFiNjlmYTI3YjNjYTIwNDRiNmJmZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CdXR0b25JbnB1dFR5cGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0J1dHRvbklucHV0VHlwZS5oCkBAIC0zNSw4ICszNSw5IEBACiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEJ1dHRvbklucHV0VHlwZSBmaW5hbCA6IHB1Ymxp
YyBCYXNlQnV0dG9uSW5wdXRUeXBlIHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEb3duY2FzdGVk
VHlwZT4gZnJpZW5kIGJvb2wgaXNJbnZhbGlkSW5wdXRUeXBlKGNvbnN0IElucHV0VHlwZSYsIGNv
bnN0IFN0cmluZyYpOwogcHVibGljOgotICAgIGV4cGxpY2l0IEJ1dHRvbklucHV0VHlwZShIVE1M
SW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VCdXR0b25JbnB1dFR5cGUoZWxlbWVudCkgeyB9
CisgICAgZXhwbGljaXQgQnV0dG9uSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQp
IDogQmFzZUJ1dHRvbklucHV0VHlwZShlbGVtZW50LCBUeXBlOjpCdXR0b24pIHsgfQogCiBwcml2
YXRlOgogICAgIGNvbnN0IEF0b21TdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IG92ZXJy
aWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9DaGVja2JveElucHV0VHlwZS5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9DaGVja2JveElucHV0VHlwZS5oCmluZGV4IGViMTFiMWIx
NzZlYmI1YzUzMDM1NzQ0YzU1ZGVjNDAxMzA3M2YxODAuLjk1MWU5YmI4NGI0ZDA2Mzk2MTQ4NGE4
OTBlNzE5ODI4NjczOGJhZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ2hlY2ti
b3hJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NoZWNrYm94SW5wdXRUeXBl
LmgKQEAgLTM1LDggKzM1LDkgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ2hlY2ti
b3hJbnB1dFR5cGUgZmluYWwgOiBwdWJsaWMgQmFzZUNoZWNrYWJsZUlucHV0VHlwZSB7CisgICAg
dGVtcGxhdGU8dHlwZW5hbWUgRG93bmNhc3RlZFR5cGU+IGZyaWVuZCBib29sIGlzSW52YWxpZElu
cHV0VHlwZShjb25zdCBJbnB1dFR5cGUmLCBjb25zdCBTdHJpbmcmKTsKIHB1YmxpYzoKLSAgICBl
eHBsaWNpdCBDaGVja2JveElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJh
c2VDaGVja2FibGVJbnB1dFR5cGUoZWxlbWVudCkgeyB9CisgICAgZXhwbGljaXQgQ2hlY2tib3hJ
bnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlQ2hlY2thYmxlSW5wdXRU
eXBlKGVsZW1lbnQsIFR5cGU6OkNoZWNrYm94KSB7IH0KIAogcHJpdmF0ZToKICAgICBjb25zdCBB
dG9tU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9Db2xvcklucHV0VHlwZS5jcHAKaW5kZXggNjk1NjRkMzBkZDgzZjZmNTk4NmE1OGFiNDIwZjQ4
ZWRkMzYwMDE4Yy4uNDE0ZmE0ZjZkMjA5M2ZkZWU5NjEyNTcwMjBlMzhiNWJmMDBlYzVjOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAKQEAgLTEzOSw3ICsxMzksNyBAQCBD
b2xvciBDb2xvcklucHV0VHlwZTo6dmFsdWVBc0NvbG9yKCkgY29uc3QKICAgICByZXR1cm4gcGFy
c2VTaW1wbGVDb2xvclZhbHVlKGVsZW1lbnQoKS0+dmFsdWUoKSkudmFsdWUoKTsKIH0KIAotdm9p
ZCBDb2xvcklucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCit2b2lkIENvbG9ySW5wdXRU
eXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlQW5kVXBkYXRlSW5uZXJUZXh0RWxlbWVudEVkaXRhYmls
aXR5KENvbnRhaW5lck5vZGU6OkNoaWxkQ2hhbmdlOjpTb3VyY2UsIGJvb2wpCiB7CiAgICAgQVNT
RVJUKGVsZW1lbnQoKSk7CiAgICAgQVNTRVJUKGVsZW1lbnQoKS0+c2hhZG93Um9vdCgpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuaAppbmRleCBmNzRkNzZmMWI5ZmY1MDg0MjZiMjE0
NGExZmE1YThiYTI0MGNlNzBiLi40M2VhOWYwOGY5MjEwZWRiNDM5NGUzMmQzYjI1ZTgxODVkYWE4
MDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5oCkBAIC00MCw4ICs0MCw5IEBA
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENvbG9ySW5wdXRUeXBlIGZpbmFsIDogcHVi
bGljIEJhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlLCBwcml2YXRlIENvbG9yQ2hvb3NlckNs
aWVudCB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRG93bmNhc3RlZFR5cGU+IGZyaWVuZCBib29s
IGlzSW52YWxpZElucHV0VHlwZShjb25zdCBJbnB1dFR5cGUmLCBjb25zdCBTdHJpbmcmKTsKIHB1
YmxpYzoKLSAgICBleHBsaWNpdCBDb2xvcklucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVt
ZW50KSA6IEJhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlKGVsZW1lbnQpIHsgfQorICAgIGV4
cGxpY2l0IENvbG9ySW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFzZUNs
aWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUoZWxlbWVudCwgVHlwZTo6Q29sb3IpIHsgfQogICAgIHZp
cnR1YWwgfkNvbG9ySW5wdXRUeXBlKCk7CiAKIHByaXZhdGU6CkBAIC01Nyw3ICs1OCw3IEBAIGNs
YXNzIENvbG9ySW5wdXRUeXBlIGZpbmFsIDogcHVibGljIEJhc2VDbGlja2FibGVXaXRoS2V5SW5w
dXRUeXBlLCBwcml2YXRlIENvbG9yCiAgICAgYm9vbCBzdXBwb3J0c1JlcXVpcmVkKCkgY29uc3Qg
ZmluYWw7CiAgICAgU3RyaW5nIGZhbGxiYWNrVmFsdWUoKSBjb25zdCBmaW5hbDsKICAgICBTdHJp
bmcgc2FuaXRpemVWYWx1ZShjb25zdCBTdHJpbmcmKSBjb25zdCBmaW5hbDsKLSAgICB2b2lkIGNy
ZWF0ZVNoYWRvd1N1YnRyZWUoKSBmaW5hbDsKKyAgICB2b2lkIGNyZWF0ZVNoYWRvd1N1YnRyZWVB
bmRVcGRhdGVJbm5lclRleHRFbGVtZW50RWRpdGFiaWxpdHkoQ29udGFpbmVyTm9kZTo6Q2hpbGRD
aGFuZ2U6OlNvdXJjZSwgYm9vbCkgZmluYWw7CiAgICAgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJp
bmcmLCBib29sIHZhbHVlQ2hhbmdlZCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikgZmluYWw7CiAg
ICAgdm9pZCBoYW5kbGVET01BY3RpdmF0ZUV2ZW50KEV2ZW50JikgZmluYWw7CiAgICAgdm9pZCBk
ZXRhY2goKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0
VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuY3BwCmluZGV4IDkx
ZTExMDY5MzMxYjI3ZDdiNjVkMzQ0ZDNhMDQyOTM3MTZhOWJlZDcuLjJmZjM3N2NmYjMwYzU3Mjdi
MjY1NGE3M2I1ZGZlYTdiNmQyMmU3MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
RGF0ZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlSW5wdXRUeXBl
LmNwcApAQCAtNTAsNyArNTAsNyBAQCBzdGF0aWMgY29uc3QgaW50IGRhdGVTdGVwU2NhbGVGYWN0
b3IgPSA4NjQwMDAwMDsKIHN0YXRpYyBjb25zdCBTdGVwUmFuZ2U6OlN0ZXBEZXNjcmlwdGlvbiBk
YXRlU3RlcERlc2NyaXB0aW9uIHsgZGF0ZURlZmF1bHRTdGVwLCBkYXRlRGVmYXVsdFN0ZXBCYXNl
LCBkYXRlU3RlcFNjYWxlRmFjdG9yLCBTdGVwUmFuZ2U6OlBhcnNlZFN0ZXBWYWx1ZVNob3VsZEJl
SW50ZWdlciB9OwogCiBEYXRlSW5wdXRUeXBlOjpEYXRlSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1l
bnQmIGVsZW1lbnQpCi0gICAgOiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUoZWxlbWVudCkKKyAg
ICA6IEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZShlbGVtZW50LCBUeXBlOjpEYXRlKQogewogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5oCmluZGV4IDQxNzkxYjg1ZjQ5NjVhMmQ1NGQ2
ZWZkYzVmYWViZmQxZmZmY2RhMTIuLmQ2NjEyMWUyN2I0NjQ2MTliMjA4ZDFjOGZkMmIzZDM3NWZk
M2JkNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5oCkBAIC0zNyw2ICszNyw3IEBA
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERhdGVJbnB1dFR5cGUgZmluYWwgOiBwdWJs
aWMgQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlIHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEb3du
Y2FzdGVkVHlwZT4gZnJpZW5kIGJvb2wgaXNJbnZhbGlkSW5wdXRUeXBlKGNvbnN0IElucHV0VHlw
ZSYsIGNvbnN0IFN0cmluZyYpOwogcHVibGljOgogICAgIGV4cGxpY2l0IERhdGVJbnB1dFR5cGUo
SFRNTElucHV0RWxlbWVudCYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Rh
dGVUaW1lTG9jYWxJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2Nh
bElucHV0VHlwZS5oCmluZGV4IDA2ZmY2OTdjNzc3NjI0MDJmM2U2NmJkNzI4MDU1Y2Y1MjdlMWZm
ZGMuLjlmNTRlOTAwZTM3M2M1OGE2MjBjZDM5YjdhOWEzNDg1OTljZjZjZjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5oCkBAIC0zNyw5ICszNywxMCBA
QAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEYXRlVGltZUxvY2FsSW5wdXRUeXBlIGZp
bmFsIDogcHVibGljIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZSB7CisgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgRG93bmNhc3RlZFR5cGU+IGZyaWVuZCBib29sIGlzSW52YWxpZElucHV0VHlwZShjb25z
dCBJbnB1dFR5cGUmLCBjb25zdCBTdHJpbmcmKTsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBEYXRl
VGltZUxvY2FsSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCi0gICAgICAgIDog
QmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlKGVsZW1lbnQpCisgICAgICAgIDogQmFzZURhdGVBbmRU
aW1lSW5wdXRUeXBlKGVsZW1lbnQsIFR5cGU6OkRhdGVUaW1lTG9jYWwpCiAgICAgewogICAgIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9FbWFpbElucHV0VHlwZS5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9FbWFpbElucHV0VHlwZS5oCmluZGV4IDAyYWQzZGIzYTVlNjUxZDdh
MTc5ZjM5NGE3NjEyOTlhZjI5MDFjZDUuLjBiYzUxZGI0MDYxMWMxYjIzYTE4YThhYTU5YjZlMjI0
NjI5MWM4MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRW1haWxJbnB1dFR5cGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0VtYWlsSW5wdXRUeXBlLmgKQEAgLTM1LDggKzM1
LDkgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRW1haWxJbnB1dFR5cGUgZmluYWwg
OiBwdWJsaWMgQmFzZVRleHRJbnB1dFR5cGUgeworICAgIHRlbXBsYXRlPHR5cGVuYW1lIERvd25j
YXN0ZWRUeXBlPiBmcmllbmQgYm9vbCBpc0ludmFsaWRJbnB1dFR5cGUoY29uc3QgSW5wdXRUeXBl
JiwgY29uc3QgU3RyaW5nJik7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgRW1haWxJbnB1dFR5cGUo
SFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlVGV4dElucHV0VHlwZShlbGVtZW50KSB7
IH0KKyAgICBleHBsaWNpdCBFbWFpbElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50
KSA6IEJhc2VUZXh0SW5wdXRUeXBlKGVsZW1lbnQsIFR5cGU6OkVtYWlsKSB7IH0KIAogcHJpdmF0
ZToKICAgICBjb25zdCBBdG9tU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBvdmVycmlk
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCmluZGV4IDUzNDE4ZTRhYWQ4ZGI1
MDM4MDE2YzdhOGE0MzA3M2QwY2UwZThiMmQuLmZjNTkxY2UxY2MwOGRlNzJkOTZlMDZmMWJhMGNj
MDRiYzk2YTQxM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlw
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcApAQCAtMTA2
LDcgKzEwNiw3IEBAIFVwbG9hZEJ1dHRvbkVsZW1lbnQ6OlVwbG9hZEJ1dHRvbkVsZW1lbnQoRG9j
dW1lbnQmIGRvY3VtZW50KQogfQogCiBGaWxlSW5wdXRUeXBlOjpGaWxlSW5wdXRUeXBlKEhUTUxJ
bnB1dEVsZW1lbnQmIGVsZW1lbnQpCi0gICAgOiBCYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlw
ZShlbGVtZW50KQorICAgIDogQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUoZWxlbWVudCwg
VHlwZTo6RmlsZSkKICAgICAsIG1fZmlsZUxpc3QoRmlsZUxpc3Q6OmNyZWF0ZSgpKQogewogfQpA
QCAtMjc4LDcgKzI3OCw3IEBAIGJvb2wgRmlsZUlucHV0VHlwZTo6aXNGaWxlVXBsb2FkKCkgY29u
c3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBGaWxlSW5wdXRUeXBlOjpjcmVhdGVTaGFk
b3dTdWJ0cmVlKCkKK3ZvaWQgRmlsZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZUFuZFVw
ZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0YWJpbGl0eShDb250YWluZXJOb2RlOjpDaGlsZENoYW5n
ZTo6U291cmNlLCBib29sKQogewogICAgIEFTU0VSVChlbGVtZW50KCkpOwogICAgIEFTU0VSVChl
bGVtZW50KCktPnNoYWRvd1Jvb3QoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0ZpbGVJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5oCmlu
ZGV4IGI0MmY5MDRjYzE1NmJjYmI1M2IyN2M3N2ZkZmE0NDI5NjhmMmMyMmIuLmY5ZDJjOGU0MmUz
YTVjOWU0ZTcxNmM3MDIyMjRiM2Y3NWEwMzZkOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvRmlsZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0
VHlwZS5oCkBAIC00NSw2ICs0NSw3IEBAIGNsYXNzIEZpbGVMaXN0OwogY2xhc3MgSWNvbjsKIAog
Y2xhc3MgRmlsZUlucHV0VHlwZSBmaW5hbCA6IHB1YmxpYyBCYXNlQ2xpY2thYmxlV2l0aEtleUlu
cHV0VHlwZSwgcHJpdmF0ZSBGaWxlQ2hvb3NlckNsaWVudCwgcHJpdmF0ZSBGaWxlSWNvbkxvYWRl
ckNsaWVudCwgcHVibGljIENhbk1ha2VXZWFrUHRyPEZpbGVJbnB1dFR5cGU+IHsKKyAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBEb3duY2FzdGVkVHlwZT4gZnJpZW5kIGJvb2wgaXNJbnZhbGlkSW5wdXRU
eXBlKGNvbnN0IElucHV0VHlwZSYsIGNvbnN0IFN0cmluZyYpOwogcHVibGljOgogICAgIGV4cGxp
Y2l0IEZpbGVJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYpOwogICAgIHZpcnR1YWwgfkZpbGVJ
bnB1dFR5cGUoKTsKQEAgLTc3LDcgKzc4LDcgQEAgY2xhc3MgRmlsZUlucHV0VHlwZSBmaW5hbCA6
IHB1YmxpYyBCYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlwZSwgcHJpdmF0ZSBGaWxlQ2gKIAog
ICAgIEljb24qIGljb24oKSBjb25zdCBmaW5hbDsKICAgICBib29sIGlzRmlsZVVwbG9hZCgpIGNv
bnN0IGZpbmFsOwotICAgIHZvaWQgY3JlYXRlU2hhZG93U3VidHJlZSgpIGZpbmFsOworICAgIHZv
aWQgY3JlYXRlU2hhZG93U3VidHJlZUFuZFVwZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0YWJpbGl0
eShDb250YWluZXJOb2RlOjpDaGlsZENoYW5nZTo6U291cmNlLCBib29sKSBmaW5hbDsKICAgICB2
b2lkIGRpc2FibGVkU3RhdGVDaGFuZ2VkKCkgZmluYWw7CiAgICAgdm9pZCBhdHRyaWJ1dGVDaGFu
Z2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBmaW5hbDsKICAgICBTdHJpbmcgZGVmYXVsdFRvb2xU
aXAoKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElu
cHV0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3Bw
CmluZGV4IDM5NGQ5NTYyNTU5NmI5NjY2NjgyM2EzNjhlNzFhZDVjM2MyZTliOTIuLmY1ZDQ5MWI2
YzVkNzRjMDQwMDJlMjU5ZTFkNWQ3NzQyMWE4NjAwNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MSW5wdXRFbGVtZW50LmNwcApAQCAtMTU4LDggKzE1OCw3IEBAIEhUTUxJbWFnZUxvYWRlciYg
SFRNTElucHV0RWxlbWVudDo6ZW5zdXJlSW1hZ2VMb2FkZXIoKQogdm9pZCBIVE1MSW5wdXRFbGVt
ZW50OjpkaWRBZGRVc2VyQWdlbnRTaGFkb3dSb290KFNoYWRvd1Jvb3QmKQogewogICAgIFJlZjxJ
bnB1dFR5cGU+IHByb3RlY3RlZElucHV0VHlwZSgqbV9pbnB1dFR5cGUpOwotICAgIHByb3RlY3Rl
ZElucHV0VHlwZS0+Y3JlYXRlU2hhZG93U3VidHJlZSgpOwotICAgIHVwZGF0ZUlubmVyVGV4dEVs
ZW1lbnRFZGl0YWJpbGl0eSgpOworICAgIHByb3RlY3RlZElucHV0VHlwZS0+Y3JlYXRlU2hhZG93
U3VidHJlZUFuZFVwZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0YWJpbGl0eShtX3BhcnNpbmdJblBy
b2dyZXNzID8gQ2hpbGRDaGFuZ2U6OlNvdXJjZTo6UGFyc2VyIDogQ2hpbGRDaGFuZ2U6OlNvdXJj
ZTo6QVBJLCBpc0lubmVyVGV4dEVsZW1lbnRFZGl0YWJsZSgpKTsKIH0KIAogSFRNTElucHV0RWxl
bWVudDo6fkhUTUxJbnB1dEVsZW1lbnQoKQpAQCAtMzkwLDkgKzM4OSw3IEBAIGJvb2wgSFRNTElu
cHV0RWxlbWVudDo6aXNWYWxpZCgpIGNvbnN0CiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAg
U3RyaW5nIHZhbHVlID0gdGhpcy0+dmFsdWUoKTsKLSAgICBib29sIHNvbWVFcnJvciA9IG1faW5w
dXRUeXBlLT50eXBlTWlzbWF0Y2goKSB8fCBtX2lucHV0VHlwZS0+c3RlcE1pc21hdGNoKHZhbHVl
KSB8fCBtX2lucHV0VHlwZS0+cmFuZ2VVbmRlcmZsb3codmFsdWUpIHx8IG1faW5wdXRUeXBlLT5y
YW5nZU92ZXJmbG93KHZhbHVlKQotICAgICAgICB8fCB0b29TaG9ydCh2YWx1ZSwgQ2hlY2tEaXJ0
eUZsYWcpIHx8IHRvb0xvbmcodmFsdWUsIENoZWNrRGlydHlGbGFnKSB8fCBtX2lucHV0VHlwZS0+
cGF0dGVybk1pc21hdGNoKHZhbHVlKSB8fCBtX2lucHV0VHlwZS0+dmFsdWVNaXNzaW5nKHZhbHVl
KQotICAgICAgICB8fCBtX2lucHV0VHlwZS0+aGFzQmFkSW5wdXQoKSB8fCBjdXN0b21FcnJvcigp
OworICAgIGJvb2wgc29tZUVycm9yID0gbV9pbnB1dFR5cGUtPmlzSW52YWxpZCh2YWx1ZSkgfHwg
dG9vU2hvcnQodmFsdWUsIENoZWNrRGlydHlGbGFnKSB8fCB0b29Mb25nKHZhbHVlLCBDaGVja0Rp
cnR5RmxhZykgfHwgY3VzdG9tRXJyb3IoKTsKICAgICByZXR1cm4gIXNvbWVFcnJvcjsKIH0KIApA
QCAtNTY0LDggKzU2MSw3IEBAIHZvaWQgSFRNTElucHV0RWxlbWVudDo6dXBkYXRlVHlwZSgpCiAg
ICAgbV9pbnB1dFR5cGUtPmRldGFjaEZyb21FbGVtZW50KCk7CiAKICAgICBtX2lucHV0VHlwZSA9
IFdURk1vdmUobmV3VHlwZSk7Ci0gICAgbV9pbnB1dFR5cGUtPmNyZWF0ZVNoYWRvd1N1YnRyZWUo
KTsKLSAgICB1cGRhdGVJbm5lclRleHRFbGVtZW50RWRpdGFiaWxpdHkoKTsKKyAgICBtX2lucHV0
VHlwZS0+Y3JlYXRlU2hhZG93U3VidHJlZUFuZFVwZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0YWJp
bGl0eShtX3BhcnNpbmdJblByb2dyZXNzID8gQ2hpbGRDaGFuZ2U6OlNvdXJjZTo6UGFyc2VyIDog
Q2hpbGRDaGFuZ2U6OlNvdXJjZTo6QVBJLCBpc0lubmVyVGV4dEVsZW1lbnRFZGl0YWJsZSgpKTsK
IAogICAgIHNldE5lZWRzV2lsbFZhbGlkYXRlQ2hlY2soKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAKaW5kZXggNWVlNjU1NmJmZWNmNmZjN2FmZTNhN2Q3
M2M3MDM5OTQwNDdjMmNjMS4uZjM2MjRhY2JmMzYzOWFhM2QyZGY0MjdjYWYyYzBjZjM5ZmJmMjk1
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwCkBAIC0x
MTAsOCArMTEwLDcgQEAgUmVmPEhUTUxUZXh0QXJlYUVsZW1lbnQ+IEhUTUxUZXh0QXJlYUVsZW1l
bnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiAKIHZvaWQgSFRNTFRleHRBcmVhRWxlbWVu
dDo6ZGlkQWRkVXNlckFnZW50U2hhZG93Um9vdChTaGFkb3dSb290JiByb290KQogewotICAgIHJv
b3QuYXBwZW5kQ2hpbGQoVGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50OjpjcmVhdGUoZG9jdW1l
bnQoKSkpOwotICAgIHVwZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0YWJpbGl0eSgpOworICAgIHJv
b3QuYXBwZW5kQ2hpbGQoVGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50OjpjcmVhdGUoZG9jdW1l
bnQoKSwgaXNJbm5lclRleHRFbGVtZW50RWRpdGFibGUoKSkpOwogfQogCiBjb25zdCBBdG9tU3Ry
aW5nJiBIVE1MVGV4dEFyZWFFbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUoKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRl
eCAwNWIwZmMwZDc3OTBiYTEwYTE2NGVjYzliYmYyY2Y2MjkxYjMzOGZiLi44MmJmMTlhZTgyODY3
OGQ0NGVhZmNkNjQ3OThlN2UwYzM2MGVmNjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcApAQCAtNTQwLDEyICs1NDAsOCBAQCBi
b29sIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojppc0lubmVyVGV4dEVsZW1lbnRFZGl0YWJs
ZSgpIGNvbnN0CiAKIHZvaWQgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnVwZGF0ZUlubmVy
VGV4dEVsZW1lbnRFZGl0YWJpbGl0eSgpCiB7Ci0gICAgaWYgKGF1dG8gaW5uZXJUZXh0ID0gaW5u
ZXJUZXh0RWxlbWVudCgpKSB7Ci0gICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQXRvbVN0cmluZz4gcGxhaW5UZXh0T25seU5hbWUoInBsYWludGV4dC1vbmx5Iiwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgICAgICBzdGF0aWMgTWFpblRo
cmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGZhbHNlTmFtZSgiZmFsc2UiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgICAgIGNvbnN0IGF1dG8mIHZh
bHVlID0gaXNJbm5lclRleHRFbGVtZW50RWRpdGFibGUoKSA/IHBsYWluVGV4dE9ubHlOYW1lLmdl
dCgpIDogZmFsc2VOYW1lLmdldCgpOwotICAgICAgICBpbm5lclRleHQtPnNldEF0dHJpYnV0ZVdp
dGhvdXRTeW5jaHJvbml6YXRpb24oY29udGVudGVkaXRhYmxlQXR0ciwgdmFsdWUpOwotICAgIH0K
KyAgICBpZiAoYXV0byBpbm5lclRleHQgPSBpbm5lclRleHRFbGVtZW50KCkpCisgICAgICAgIGlu
bmVyVGV4dC0+dXBkYXRlSW5uZXJUZXh0RWxlbWVudEVkaXRhYmlsaXR5KGlzSW5uZXJUZXh0RWxl
bWVudEVkaXRhYmxlKCkpOwogfQogCiBib29sIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojps
YXN0Q2hhbmdlV2FzVXNlckVkaXQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IaWRkZW5JbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSGlkZGVuSW5wdXRU
eXBlLmgKaW5kZXggNjgzYzZiZDc1YTJiMmFhYTZjZmNjMDZmZWM4ZDZkMDI2NjJkZDFhMS4uNzk5
ZDkxZGVlMmIwYzhjYzdhMGEzOTg1NTQ3ZThkMmU3Njk3NTlkNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hpZGRlbklucHV0VHlwZS5oCkBAIC0zNSw4ICszNSw5IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIEhpZGRlbklucHV0VHlwZSBmaW5hbCA6IHB1YmxpYyBJbnB1dFR5cGUgeworICAg
IHRlbXBsYXRlPHR5cGVuYW1lIERvd25jYXN0ZWRUeXBlPiBmcmllbmQgYm9vbCBpc0ludmFsaWRJ
bnB1dFR5cGUoY29uc3QgSW5wdXRUeXBlJiwgY29uc3QgU3RyaW5nJik7CiBwdWJsaWM6Ci0gICAg
ZXhwbGljaXQgSGlkZGVuSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogSW5w
dXRUeXBlKGVsZW1lbnQpIHsgfQorICAgIGV4cGxpY2l0IEhpZGRlbklucHV0VHlwZShIVE1MSW5w
dXRFbGVtZW50JiBlbGVtZW50KSA6IElucHV0VHlwZShlbGVtZW50LCBUeXBlOjpIaWRkZW4pIHsg
fQogCiBwcml2YXRlOgogICAgIGNvbnN0IEF0b21TdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNv
bnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0
VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmNwcAppbmRleCA1
NjE1YjQ0NmRmNmFkMTAyZDg1MTg2ZTcxODIwZmQyZjI0YmVhMGI1Li45ZTg2YTJjYzdmZTc3OGVi
OGUzMDhmNGQ1ZjJmNzdlNzdmZGY4Y2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0ltYWdlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRU
eXBlLmNwcApAQCAtNDAsNyArNDAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiB1c2luZyBuYW1l
c3BhY2UgSFRNTE5hbWVzOwogCiBJbWFnZUlucHV0VHlwZTo6SW1hZ2VJbnB1dFR5cGUoSFRNTElu
cHV0RWxlbWVudCYgZWxlbWVudCkKLSAgICA6IEJhc2VCdXR0b25JbnB1dFR5cGUoZWxlbWVudCkK
KyAgICA6IEJhc2VCdXR0b25JbnB1dFR5cGUoZWxlbWVudCwgVHlwZTo6SW1hZ2UpCiB7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuaAppbmRleCAyNjc4NjEwZjZjYjhiOWI3MWRj
YTU1ZDAwZTNmZGIxY2RiNzIwMzRkLi4zYjY1YzlhZjVhZTYwNWU0YzIzNzU5ZGNiYzQ5NzljZTkx
Y2VlNzM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5oCkBAIC0zOCw2ICszOCw3
IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEltYWdlSW5wdXRUeXBlIGZpbmFsIDog
cHVibGljIEJhc2VCdXR0b25JbnB1dFR5cGUgeworICAgIHRlbXBsYXRlPHR5cGVuYW1lIERvd25j
YXN0ZWRUeXBlPiBmcmllbmQgYm9vbCBpc0ludmFsaWRJbnB1dFR5cGUoY29uc3QgSW5wdXRUeXBl
JiwgY29uc3QgU3RyaW5nJik7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgSW1hZ2VJbnB1dFR5cGUo
SFRNTElucHV0RWxlbWVudCYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lu
cHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKaW5kZXggNDBi
MzdjZTZmZDlhZDc0MzcxZjU0ZjAyYjk2ZjM4Mzg1Mzk3YTk3MS4uYjBlMDEyNzliMTFjMTgxMjIy
NDA1OTIxNzAzYzY3NzRkOTQ4YzY0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9J
bnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcApAQCAt
MzAxLDYgKzMwMSw1NiBAQCBib29sIElucHV0VHlwZTo6cmFuZ2VPdmVyZmxvdyhjb25zdCBTdHJp
bmcmIHZhbHVlKSBjb25zdAogICAgIHJldHVybiBudW1lcmljVmFsdWUgPiBjcmVhdGVTdGVwUmFu
Z2UoQW55U3RlcEhhbmRsaW5nOjpSZWplY3QpLm1heGltdW0oKTsKIH0KIAorYm9vbCBJbnB1dFR5
cGU6OmlzSW52YWxpZChjb25zdCBTdHJpbmcmIHZhbHVlKSBjb25zdAoreworICAgIHN3aXRjaCAo
bV90eXBlKSB7CisgICAgY2FzZSBUeXBlOjpCdXR0b246CisgICAgICAgIHJldHVybiBpc0ludmFs
aWRJbnB1dFR5cGU8QnV0dG9uSW5wdXRUeXBlPigqdGhpcywgdmFsdWUpOworICAgIGNhc2UgVHlw
ZTo6Q2hlY2tib3g6CisgICAgICAgIHJldHVybiBpc0ludmFsaWRJbnB1dFR5cGU8Q2hlY2tib3hJ
bnB1dFR5cGU+KCp0aGlzLCB2YWx1ZSk7CisgICAgY2FzZSBUeXBlOjpDb2xvcjoKKyAgICAgICAg
cmV0dXJuIGlzSW52YWxpZElucHV0VHlwZTxDb2xvcklucHV0VHlwZT4oKnRoaXMsIHZhbHVlKTsK
KyAgICBjYXNlIFR5cGU6OkRhdGU6CisgICAgICAgIHJldHVybiBpc0ludmFsaWRJbnB1dFR5cGU8
RGF0ZUlucHV0VHlwZT4oKnRoaXMsIHZhbHVlKTsKKyAgICBjYXNlIFR5cGU6OkRhdGVUaW1lTG9j
YWw6CisgICAgICAgIHJldHVybiBpc0ludmFsaWRJbnB1dFR5cGU8RGF0ZVRpbWVMb2NhbElucHV0
VHlwZT4oKnRoaXMsIHZhbHVlKTsKKyAgICBjYXNlIFR5cGU6OkVtYWlsOgorICAgICAgICByZXR1
cm4gaXNJbnZhbGlkSW5wdXRUeXBlPEVtYWlsSW5wdXRUeXBlPigqdGhpcywgdmFsdWUpOworICAg
IGNhc2UgVHlwZTo6RmlsZToKKyAgICAgICAgcmV0dXJuIGlzSW52YWxpZElucHV0VHlwZTxGaWxl
SW5wdXRUeXBlPigqdGhpcywgdmFsdWUpOworICAgIGNhc2UgVHlwZTo6SGlkZGVuOgorICAgICAg
ICByZXR1cm4gaXNJbnZhbGlkSW5wdXRUeXBlPEhpZGRlbklucHV0VHlwZT4oKnRoaXMsIHZhbHVl
KTsKKyAgICBjYXNlIFR5cGU6OkltYWdlOgorICAgICAgICByZXR1cm4gaXNJbnZhbGlkSW5wdXRU
eXBlPEltYWdlSW5wdXRUeXBlPigqdGhpcywgdmFsdWUpOworICAgIGNhc2UgVHlwZTo6TW9udGg6
CisgICAgICAgIHJldHVybiBpc0ludmFsaWRJbnB1dFR5cGU8TW9udGhJbnB1dFR5cGU+KCp0aGlz
LCB2YWx1ZSk7CisgICAgY2FzZSBUeXBlOjpOdW1iZXI6CisgICAgICAgIHJldHVybiBpc0ludmFs
aWRJbnB1dFR5cGU8TnVtYmVySW5wdXRUeXBlPigqdGhpcywgdmFsdWUpOworICAgIGNhc2UgVHlw
ZTo6UGFzc3dvcmQ6CisgICAgICAgIHJldHVybiBpc0ludmFsaWRJbnB1dFR5cGU8UGFzc3dvcmRJ
bnB1dFR5cGU+KCp0aGlzLCB2YWx1ZSk7CisgICAgY2FzZSBUeXBlOjpSYWRpbzoKKyAgICAgICAg
cmV0dXJuIGlzSW52YWxpZElucHV0VHlwZTxSYWRpb0lucHV0VHlwZT4oKnRoaXMsIHZhbHVlKTsK
KyAgICBjYXNlIFR5cGU6OlJhbmdlOgorICAgICAgICByZXR1cm4gaXNJbnZhbGlkSW5wdXRUeXBl
PFJhbmdlSW5wdXRUeXBlPigqdGhpcywgdmFsdWUpOworICAgIGNhc2UgVHlwZTo6UmVzZXQ6Cisg
ICAgICAgIHJldHVybiBpc0ludmFsaWRJbnB1dFR5cGU8UmVzZXRJbnB1dFR5cGU+KCp0aGlzLCB2
YWx1ZSk7CisgICAgY2FzZSBUeXBlOjpTZWFyY2g6CisgICAgICAgIHJldHVybiBpc0ludmFsaWRJ
bnB1dFR5cGU8U2VhcmNoSW5wdXRUeXBlPigqdGhpcywgdmFsdWUpOworICAgIGNhc2UgVHlwZTo6
U3VibWl0OgorICAgICAgICByZXR1cm4gaXNJbnZhbGlkSW5wdXRUeXBlPFN1Ym1pdElucHV0VHlw
ZT4oKnRoaXMsIHZhbHVlKTsKKyAgICBjYXNlIFR5cGU6OlRlbGVwaG9uZToKKyAgICAgICAgcmV0
dXJuIGlzSW52YWxpZElucHV0VHlwZTxUZWxlcGhvbmVJbnB1dFR5cGU+KCp0aGlzLCB2YWx1ZSk7
CisgICAgY2FzZSBUeXBlOjpUaW1lOgorICAgICAgICByZXR1cm4gaXNJbnZhbGlkSW5wdXRUeXBl
PFRpbWVJbnB1dFR5cGU+KCp0aGlzLCB2YWx1ZSk7CisgICAgY2FzZSBUeXBlOjpVUkw6CisgICAg
ICAgIHJldHVybiBpc0ludmFsaWRJbnB1dFR5cGU8VVJMSW5wdXRUeXBlPigqdGhpcywgdmFsdWUp
OworICAgIGNhc2UgVHlwZTo6V2VlazoKKyAgICAgICAgcmV0dXJuIGlzSW52YWxpZElucHV0VHlw
ZTxXZWVrSW5wdXRUeXBlPigqdGhpcywgdmFsdWUpOworICAgIGNhc2UgVHlwZTo6VGV4dDoKKyAg
ICAgICAgcmV0dXJuIGlzSW52YWxpZElucHV0VHlwZTxUZXh0SW5wdXRUeXBlPigqdGhpcywgdmFs
dWUpOworICAgIH0KK30KKwogRGVjaW1hbCBJbnB1dFR5cGU6OmRlZmF1bHRWYWx1ZUZvclN0ZXBV
cCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIDA7CkBAIC00OTIsNyArNTQyLDcgQEAgdm9pZCBJbnB1
dFR5cGU6OmJsdXIoKQogICAgIGVsZW1lbnQoKS0+ZGVmYXVsdEJsdXIoKTsKIH0KIAotdm9pZCBJ
bnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQordm9pZCBJbnB1dFR5cGU6OmNyZWF0ZVNo
YWRvd1N1YnRyZWVBbmRVcGRhdGVJbm5lclRleHRFbGVtZW50RWRpdGFiaWxpdHkoQ29udGFpbmVy
Tm9kZTo6Q2hpbGRDaGFuZ2U6OlNvdXJjZSwgYm9vbCkKIHsKIH0KIApAQCAtODU1LDkgKzkwNSwy
MyBAQCBib29sIElucHV0VHlwZTo6aXNDaGVja2FibGUoKQogICAgIHJldHVybiBmYWxzZTsKIH0K
IAorLy8gRG8gbm90IHVzZSB2aXJ0dWFsIGZ1bmN0aW9uIGZvciBwZXJmb3JtYW5jZSByZWFzb24u
CiBib29sIElucHV0VHlwZTo6aXNTdGVwcGFibGUoKSBjb25zdAogewotICAgIHJldHVybiBmYWxz
ZTsKKyAgICBzd2l0Y2ggKG1fdHlwZSkgeworICAgIGNhc2UgVHlwZTo6RGF0ZToKKyAgICBjYXNl
IFR5cGU6OkRhdGVUaW1lTG9jYWw6CisgICAgY2FzZSBUeXBlOjpNb250aDoKKyAgICBjYXNlIFR5
cGU6OlRpbWU6CisgICAgY2FzZSBUeXBlOjpXZWVrOgorICAgIGNhc2UgVHlwZTo6TnVtYmVyOgor
ICAgIGNhc2UgVHlwZTo6UmFuZ2U6CisgICAgICAgIEFTU0VSVChpc1N0ZXBwYWJsZVNsb3coKSk7
CisgICAgICAgIHJldHVybiB0cnVlOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVCghaXNT
dGVwcGFibGVTbG93KCkpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQogfQogCiBib29s
IElucHV0VHlwZTo6aXNDb2xvckNvbnRyb2woKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9JbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgK
aW5kZXggZjkxMzQ3MzQ1MDUzMTJkODc5Y2VkYjRkMmI2NmFhMjg0M2I3MDM5OS4uZDBlOWI4ZWZi
YmFhYjMzNjA4YjQ5ZWQ4YTAzMjE1YzRhY2JmYWVlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9JbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5o
CkBAIC03MCw4ICs3MCwzMiBAQCBlbnVtIGNsYXNzIERhdGVDb21wb25lbnRzVHlwZSA6IHVpbnQ4
X3Q7CiAvLyBvdGhlciB0aGFuIEhUTUxJbnB1dEVsZW1lbnQuCiBjbGFzcyBJbnB1dFR5cGUgOiBw
dWJsaWMgUmVmQ291bnRlZDxJbnB1dFR5cGU+IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKLQogcHVibGljOgorICAgIGVudW0gY2xhc3MgVHlwZSA6IHVpbnQ4X3QgeworICAgICAgICBC
dXR0b24sCisgICAgICAgIENoZWNrYm94LAorICAgICAgICBDb2xvciwKKyAgICAgICAgRGF0ZSwK
KyAgICAgICAgRGF0ZVRpbWVMb2NhbCwKKyAgICAgICAgRW1haWwsCisgICAgICAgIEZpbGUsCisg
ICAgICAgIEhpZGRlbiwKKyAgICAgICAgSW1hZ2UsCisgICAgICAgIE1vbnRoLAorICAgICAgICBO
dW1iZXIsCisgICAgICAgIFBhc3N3b3JkLAorICAgICAgICBSYWRpbywKKyAgICAgICAgUmFuZ2Us
CisgICAgICAgIFJlc2V0LAorICAgICAgICBTZWFyY2gsCisgICAgICAgIFN1Ym1pdCwKKyAgICAg
ICAgVGVsZXBob25lLAorICAgICAgICBUaW1lLAorICAgICAgICBVUkwsCisgICAgICAgIFdlZWss
CisgICAgICAgIFRleHQsCisgICAgfTsKKwogICAgIHN0YXRpYyBSZWY8SW5wdXRUeXBlPiBjcmVh
dGUoSFRNTElucHV0RWxlbWVudCYsIGNvbnN0IEF0b21TdHJpbmcmKTsKICAgICBzdGF0aWMgUmVm
PElucHV0VHlwZT4gY3JlYXRlVGV4dChIVE1MSW5wdXRFbGVtZW50Jik7CiAgICAgdmlydHVhbCB+
SW5wdXRUeXBlKCk7CkBAIC0yMTcsNyArMjQxLDcgQEAgY2xhc3MgSW5wdXRUeXBlIDogcHVibGlj
IFJlZkNvdW50ZWQ8SW5wdXRUeXBlPiB7CiAKICAgICAvLyBTaGFkb3cgdHJlZSBoYW5kbGluZy4K
IAotICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVTaGFkb3dTdWJ0cmVlKCk7CisgICAgdmlydHVhbCB2
b2lkIGNyZWF0ZVNoYWRvd1N1YnRyZWVBbmRVcGRhdGVJbm5lclRleHRFbGVtZW50RWRpdGFiaWxp
dHkoQ29udGFpbmVyTm9kZTo6Q2hpbGRDaGFuZ2U6OlNvdXJjZSwgYm9vbCk7CiAgICAgdmlydHVh
bCB2b2lkIGRlc3Ryb3lTaGFkb3dTdWJ0cmVlKCk7CiAKICAgICB2aXJ0dWFsIEhUTUxFbGVtZW50
KiBjb250YWluZXJFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQpAQCAtMjU0LDcg
KzI3OCw2IEBAIGNsYXNzIElucHV0VHlwZSA6IHB1YmxpYyBSZWZDb3VudGVkPElucHV0VHlwZT4g
ewogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSZXNwZWN0TGlzdEF0dHJpYnV0ZSgpOwogICAgIHZp
cnR1YWwgYm9vbCBpc0VudW1lcmF0YWJsZSgpOwogICAgIHZpcnR1YWwgYm9vbCBpc0NoZWNrYWJs
ZSgpOwotICAgIHZpcnR1YWwgYm9vbCBpc1N0ZXBwYWJsZSgpIGNvbnN0OwogICAgIHZpcnR1YWwg
Ym9vbCBzaG91bGRSZXNwZWN0SGVpZ2h0QW5kV2lkdGhBdHRyaWJ1dGVzKCk7CiAgICAgdmlydHVh
bCBib29sIHN1cHBvcnRzUGxhY2Vob2xkZXIoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgc3Vw
cG9ydHNSZWFkT25seSgpIGNvbnN0OwpAQCAtMjc1LDYgKzI5OCw4IEBAIGNsYXNzIElucHV0VHlw
ZSA6IHB1YmxpYyBSZWZDb3VudGVkPElucHV0VHlwZT4gewogICAgIHZpcnR1YWwgdm9pZCBzZWxl
Y3RDb2xvcihTdHJpbmdWaWV3KTsKICAgICB2aXJ0dWFsIFZlY3RvcjxDb2xvcj4gc3VnZ2VzdGVk
Q29sb3JzKCkgY29uc3Q7CiAKKyAgICBib29sIGlzU3RlcHBhYmxlKCkgY29uc3Q7CisKICAgICAv
LyBQYXJzZXMgdGhlIHNwZWNpZmllZCBzdHJpbmcgZm9yIHRoZSB0eXBlLCBhbmQgcmV0dXJuCiAg
ICAgLy8gdGhlIERlY2ltYWwgdmFsdWUgZm9yIHRoZSBwYXJzaW5nIHJlc3VsdCBpZiB0aGUgcGFy
c2luZwogICAgIC8vIHN1Y2NlZWRzOyBSZXR1cm5zIGRlZmF1bHRWYWx1ZSBvdGhlcndpc2UuIFRo
aXMgZnVuY3Rpb24gY2FuCkBAIC0yOTEsNiArMzE2LDggQEAgY2xhc3MgSW5wdXRUeXBlIDogcHVi
bGljIFJlZkNvdW50ZWQ8SW5wdXRUeXBlPiB7CiAgICAgdmlydHVhbCB1bnNpZ25lZCBoZWlnaHQo
KSBjb25zdDsKICAgICB2aXJ0dWFsIHVuc2lnbmVkIHdpZHRoKCkgY29uc3Q7CiAKKyAgICBib29s
IGlzSW52YWxpZChjb25zdCBTdHJpbmcmKSBjb25zdDsKKwogICAgIHZvaWQgZGlzcGF0Y2hTaW11
bGF0ZWRDbGlja0lmQWN0aXZlKEtleWJvYXJkRXZlbnQmKSBjb25zdDsKIAogI2lmIEVOQUJMRShE
QVRBTElTVF9FTEVNRU5UKQpAQCAtMzA3LDIwICszMzQsMzAgQEAgY2xhc3MgSW5wdXRUeXBlIDog
cHVibGljIFJlZkNvdW50ZWQ8SW5wdXRUeXBlPiB7CiAgICAgdmlydHVhbCBTdHJpbmcgZGlzcGxh
eVN0cmluZygpIGNvbnN0OwogCiBwcm90ZWN0ZWQ6Ci0gICAgZXhwbGljaXQgSW5wdXRUeXBlKEhU
TUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCi0gICAgICAgIDogbV9lbGVtZW50KG1ha2VXZWFrUHRy
KGVsZW1lbnQpKSB7IH0KKyAgICBleHBsaWNpdCBJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYg
ZWxlbWVudCwgVHlwZSB0eXBlKQorICAgICAgICA6IG1fdHlwZSh0eXBlKQorICAgICAgICAsIG1f
ZWxlbWVudChtYWtlV2Vha1B0cihlbGVtZW50KSkgeyB9CiAgICAgSFRNTElucHV0RWxlbWVudCog
ZWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZWxlbWVudC5nZXQoKTsgfQogICAgIENocm9tZSog
Y2hyb21lKCkgY29uc3Q7CiAgICAgRGVjaW1hbCBwYXJzZVRvTnVtYmVyT3JOYU4oY29uc3QgU3Ry
aW5nJikgY29uc3Q7CisgICAgdmlydHVhbCBib29sIGlzU3RlcHBhYmxlU2xvdygpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CiAKIHByaXZhdGU6CiAgICAgLy8gSGVscGVyIGZvciBzdGVwVXAoKS9z
dGVwRG93bigpLiBBZGRzIHN0ZXAgdmFsdWUgKiBjb3VudCB0byB0aGUgY3VycmVudCB2YWx1ZS4K
ICAgICBFeGNlcHRpb25Pcjx2b2lkPiBhcHBseVN0ZXAoaW50IGNvdW50LCBBbnlTdGVwSGFuZGxp
bmcsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IpOwogCiAgICAgLy8gbV9lbGVtZW50IGlzIG51bGwg
aWYgdGhpcyBJbnB1dFR5cGUgaXMgbm8gbG9uZ2VyIGFzc29jaWF0ZWQgd2l0aCBhbiBlbGVtZW50
IChlaXRoZXIgdGhlIGVsZW1lbnQgZGllZCBvciBjaGFuZ2VkIGlucHV0IHR5cGUpLgorICAgIFR5
cGUgbV90eXBlOwogICAgIFdlYWtQdHI8SFRNTElucHV0RWxlbWVudD4gbV9lbGVtZW50OwogfTsK
IAordGVtcGxhdGU8dHlwZW5hbWUgRG93bmNhc3RlZFR5cGU+CitBTFdBWVNfSU5MSU5FIGJvb2wg
aXNJbnZhbGlkSW5wdXRUeXBlKGNvbnN0IElucHV0VHlwZSYgYmFzZUlucHV0VHlwZSwgY29uc3Qg
U3RyaW5nJiB2YWx1ZSkKK3sKKyAgICBhdXRvJiBpbnB1dFR5cGUgPSBzdGF0aWNfY2FzdDxjb25z
dCBEb3duY2FzdGVkVHlwZSY+KGJhc2VJbnB1dFR5cGUpOworICAgIHJldHVybiBpbnB1dFR5cGUu
dHlwZU1pc21hdGNoKCkgfHwgaW5wdXRUeXBlLnN0ZXBNaXNtYXRjaCh2YWx1ZSkgfHwgaW5wdXRU
eXBlLnJhbmdlVW5kZXJmbG93KHZhbHVlKSB8fCBpbnB1dFR5cGUucmFuZ2VPdmVyZmxvdyh2YWx1
ZSkgfHwgaW5wdXRUeXBlLnBhdHRlcm5NaXNtYXRjaCh2YWx1ZSkgfHwgaW5wdXRUeXBlLnZhbHVl
TWlzc2luZyh2YWx1ZSkgfHwgaW5wdXRUeXBlLmhhc0JhZElucHV0KCk7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAogI2RlZmluZSBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0lOUFVUX1RZ
UEUoVG9WYWx1ZVR5cGVOYW1lLCBwcmVkaWNhdGUpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1
dFR5cGUuaAppbmRleCA0ZDdiYjQ3YTg1M2I5ZGE1NDI5YmFhNTZiNThjYTY2NWJmZmNhNTE2Li4z
ZmRhZmY0YzNjNTZlZjFkMmU3MDE4YTAwNGQxNTIxMDI0MWE4YzIzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9Nb250aElucHV0VHlwZS5oCkBAIC0zNyw5ICszNywxMCBAQAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBNb250aElucHV0VHlwZSBmaW5hbCA6IHB1YmxpYyBCYXNlRGF0ZUFuZFRpbWVJ
bnB1dFR5cGUgeworICAgIHRlbXBsYXRlPHR5cGVuYW1lIERvd25jYXN0ZWRUeXBlPiBmcmllbmQg
Ym9vbCBpc0ludmFsaWRJbnB1dFR5cGUoY29uc3QgSW5wdXRUeXBlJiwgY29uc3QgU3RyaW5nJik7
CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgTW9udGhJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYg
ZWxlbWVudCkKLSAgICAgICAgOiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUoZWxlbWVudCkKKyAg
ICAgICAgOiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUoZWxlbWVudCwgVHlwZTo6TW9udGgpCiAg
ICAgewogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1
dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuY3BwCmluZGV4
IGJiMjgxNGQ4Yzc2ZGM0OWFhMGQyZjA5MDczYzY1ZjllMmNhMGVkMWYuLmU2N2I0OGZmZDFmYmVl
MzdjZDU5MDNkMGU0MjQwNGVmNzI3ZDNmOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvTnVtYmVySW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklu
cHV0VHlwZS5jcHAKQEAgLTIxMCw3ICsyMTAsNyBAQCBmbG9hdCBOdW1iZXJJbnB1dFR5cGU6OmRl
Y29yYXRpb25XaWR0aCgpIGNvbnN0CiAgICAgcmV0dXJuIHdpZHRoOwogfQogCi1ib29sIE51bWJl
cklucHV0VHlwZTo6aXNTdGVwcGFibGUoKSBjb25zdAorYm9vbCBOdW1iZXJJbnB1dFR5cGU6Omlz
U3RlcHBhYmxlU2xvdygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9OdW1iZXJJbnB1dFR5cGUuaAppbmRleCBkZTUxYTRhMzBkNTMwMGRiMjUyZDgyMDk3NmNh
YzJkMjRhMTVlMDcwLi5mMmZiMmQ3ZDZjN2EyMDljNzc3Y2ZiOTIwNjgzZTM5YmI2NDRhZTAxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmgKQEAgLTM2LDggKzM2LDkgQEAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTnVtYmVySW5wdXRUeXBlIGZpbmFsIDogcHVibGlj
IFRleHRGaWVsZElucHV0VHlwZSB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRG93bmNhc3RlZFR5
cGU+IGZyaWVuZCBib29sIGlzSW52YWxpZElucHV0VHlwZShjb25zdCBJbnB1dFR5cGUmLCBjb25z
dCBTdHJpbmcmKTsKIHB1YmxpYzoKLSAgICBleHBsaWNpdCBOdW1iZXJJbnB1dFR5cGUoSFRNTElu
cHV0RWxlbWVudCYgZWxlbWVudCkgOiBUZXh0RmllbGRJbnB1dFR5cGUoZWxlbWVudCkgeyB9Cisg
ICAgZXhwbGljaXQgTnVtYmVySW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDog
VGV4dEZpZWxkSW5wdXRUeXBlKGVsZW1lbnQsIFR5cGU6Ok51bWJlcikgeyB9CiAKIHByaXZhdGU6
CiAgICAgY29uc3QgQXRvbVN0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3QgZmluYWw7CkBA
IC00OSw3ICs1MCw3IEBAIGNsYXNzIE51bWJlcklucHV0VHlwZSBmaW5hbCA6IHB1YmxpYyBUZXh0
RmllbGRJbnB1dFR5cGUgewogICAgIGJvb2wgdHlwZU1pc21hdGNoKCkgY29uc3QgZmluYWw7CiAg
ICAgYm9vbCBzaXplU2hvdWxkSW5jbHVkZURlY29yYXRpb24oaW50IGRlZmF1bHRTaXplLCBpbnQm
IHByZWZlcnJlZFNpemUpIGNvbnN0IGZpbmFsOwogICAgIGZsb2F0IGRlY29yYXRpb25XaWR0aCgp
IGNvbnN0IGZpbmFsOwotICAgIGJvb2wgaXNTdGVwcGFibGUoKSBjb25zdCBmaW5hbDsKKyAgICBi
b29sIGlzU3RlcHBhYmxlU2xvdygpIGNvbnN0IGZpbmFsOwogICAgIFN0ZXBSYW5nZSBjcmVhdGVT
dGVwUmFuZ2UoQW55U3RlcEhhbmRsaW5nKSBjb25zdCBmaW5hbDsKICAgICBTaG91bGRDYWxsQmFz
ZUV2ZW50SGFuZGxlciBoYW5kbGVLZXlkb3duRXZlbnQoS2V5Ym9hcmRFdmVudCYpIGZpbmFsOwog
ICAgIERlY2ltYWwgcGFyc2VUb051bWJlcihjb25zdCBTdHJpbmcmLCBjb25zdCBEZWNpbWFsJikg
Y29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Bhc3N3b3JkSW5w
dXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1Bhc3N3b3JkSW5wdXRUeXBlLmgKaW5kZXgg
ZDRmZDBjZjIyNTViMjAyNWVhMWMyYWMzNDE3MzYyMzUzNmMyOWNkYy4uZTg5Yzc2NTUxYTNjNDky
M2JjNmJiNWJhYTY3NzU0YWVhOWE2ZWU3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9QYXNzd29yZElucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGFzc3dvcmRJ
bnB1dFR5cGUuaApAQCAtMzUsOCArMzUsOSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBQYXNzd29yZElucHV0VHlwZSBmaW5hbCA6IHB1YmxpYyBCYXNlVGV4dElucHV0VHlwZSB7Cisg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgRG93bmNhc3RlZFR5cGU+IGZyaWVuZCBib29sIGlzSW52YWxp
ZElucHV0VHlwZShjb25zdCBJbnB1dFR5cGUmLCBjb25zdCBTdHJpbmcmKTsKIHB1YmxpYzoKLSAg
ICBleHBsaWNpdCBQYXNzd29yZElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6
IEJhc2VUZXh0SW5wdXRUeXBlKGVsZW1lbnQpIHsgfQorICAgIGV4cGxpY2l0IFBhc3N3b3JkSW5w
dXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFzZVRleHRJbnB1dFR5cGUoZWxl
bWVudCwgVHlwZTo6UGFzc3dvcmQpIHsgfQogCiBwcml2YXRlOgogICAgIGNvbnN0IEF0b21TdHJp
bmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9SYWRpb0lucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYWRp
b0lucHV0VHlwZS5oCmluZGV4IDcwMmMyN2ZjNGJjZjM2NzcyM2ExYjJlZGIyOTllNDllNmI0NjEw
ODguLjM2NmU5ODA5YTBkZDI4ZDc4MTkyYzJjZDlmNWFkNjU1NDBhZGIxYzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFkaW9JbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1JhZGlvSW5wdXRUeXBlLmgKQEAgLTM2LDggKzM2LDkgQEAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgUmFkaW9JbnB1dFR5cGUgZmluYWwgOiBwdWJsaWMgQmFzZUNoZWNrYWJs
ZUlucHV0VHlwZSB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRG93bmNhc3RlZFR5cGU+IGZyaWVu
ZCBib29sIGlzSW52YWxpZElucHV0VHlwZShjb25zdCBJbnB1dFR5cGUmLCBjb25zdCBTdHJpbmcm
KTsKIHB1YmxpYzoKLSAgICBleHBsaWNpdCBSYWRpb0lucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50
JiBlbGVtZW50KSA6IEJhc2VDaGVja2FibGVJbnB1dFR5cGUoZWxlbWVudCkgeyB9CisgICAgZXhw
bGljaXQgUmFkaW9JbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlQ2hl
Y2thYmxlSW5wdXRUeXBlKGVsZW1lbnQsIFR5cGU6OlJhZGlvKSB7IH0KIAogcHJpdmF0ZToKICAg
ICBjb25zdCBBdG9tU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBmaW5hbDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKaW5kZXggNWYzMmNjMWY5YWExMzMwNDU2YThh
ODY2M2Q3ZGMxNjkwZTc3YzA3OS4uZTM0YmE3NjM4MzBhOTAxYjdjMmE2MDBmOTM4Y2E0MDYwNGNk
ODFjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKQEAgLTgwLDcgKzgw
LDcgQEAgc3RhdGljIERlY2ltYWwgZW5zdXJlTWF4aW11bShjb25zdCBEZWNpbWFsJiBwcm9wb3Nl
ZFZhbHVlLCBjb25zdCBEZWNpbWFsJiBtaW5pbXUKIH0KIAogUmFuZ2VJbnB1dFR5cGU6OlJhbmdl
SW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCi0gICAgOiBJbnB1dFR5cGUoZWxl
bWVudCkKKyAgICA6IElucHV0VHlwZShlbGVtZW50LCBUeXBlOjpSYW5nZSkKIHsKIH0KIApAQCAt
MTMzLDcgKzEzMyw3IEBAIFN0ZXBSYW5nZSBSYW5nZUlucHV0VHlwZTo6Y3JlYXRlU3RlcFJhbmdl
KEFueVN0ZXBIYW5kbGluZyBhbnlTdGVwSGFuZGxpbmcpIGNvbnN0CiAgICAgcmV0dXJuIFN0ZXBS
YW5nZShtaW5pbXVtLCBSYW5nZUxpbWl0YXRpb25zOjpWYWxpZCwgbWluaW11bSwgbWF4aW11bSwg
c3RlcCwgcmFuZ2VTdGVwRGVzY3JpcHRpb24pOwogfQogCi1ib29sIFJhbmdlSW5wdXRUeXBlOjpp
c1N0ZXBwYWJsZSgpIGNvbnN0Citib29sIFJhbmdlSW5wdXRUeXBlOjppc1N0ZXBwYWJsZVNsb3co
KSBjb25zdAogewogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMjUyLDcgKzI1Miw3IEBAIGF1dG8g
UmFuZ2VJbnB1dFR5cGU6OmhhbmRsZUtleWRvd25FdmVudChLZXlib2FyZEV2ZW50JiBldmVudCkg
LT4gU2hvdWxkQ2FsbEJhc2VFCiAgICAgcmV0dXJuIFNob3VsZENhbGxCYXNlRXZlbnRIYW5kbGVy
OjpZZXM7CiB9CiAKLXZvaWQgUmFuZ2VJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQor
dm9pZCBSYW5nZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZUFuZFVwZGF0ZUlubmVyVGV4
dEVsZW1lbnRFZGl0YWJpbGl0eShDb250YWluZXJOb2RlOjpDaGlsZENoYW5nZTo6U291cmNlLCBi
b29sKQogewogICAgIEFTU0VSVChlbGVtZW50KCkpOwogICAgIEFTU0VSVChlbGVtZW50KCktPnVz
ZXJBZ2VudFNoYWRvd1Jvb3QoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Jh
bmdlSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmgKaW5k
ZXggYzk2MjdiMzJlNDU5NGY0MmVhYTVlZDY0NDFlM2I4NjlmMjcxMjVjZS4uMzM4NGM2YzI2NWY5
N2ZmOWY1NjNjZDhmOTAwNDQxOTAzMzM5NjA0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9SYW5nZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1
dFR5cGUuaApAQCAtMzgsNiArMzgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBTbGlk
ZXJUaHVtYkVsZW1lbnQ7CiAKIGNsYXNzIFJhbmdlSW5wdXRUeXBlIGZpbmFsIDogcHVibGljIElu
cHV0VHlwZSB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRG93bmNhc3RlZFR5cGU+IGZyaWVuZCBi
b29sIGlzSW52YWxpZElucHV0VHlwZShjb25zdCBJbnB1dFR5cGUmLCBjb25zdCBTdHJpbmcmKTsK
IHB1YmxpYzoKICAgICBleHBsaWNpdCBSYW5nZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50Jik7
CiAKQEAgLTQ5LDExICs1MCwxMSBAQCBjbGFzcyBSYW5nZUlucHV0VHlwZSBmaW5hbCA6IHB1Ymxp
YyBJbnB1dFR5cGUgewogICAgIGJvb2wgdHlwZU1pc21hdGNoRm9yKGNvbnN0IFN0cmluZyYpIGNv
bnN0IGZpbmFsOwogICAgIGJvb2wgc3VwcG9ydHNSZXF1aXJlZCgpIGNvbnN0IGZpbmFsOwogICAg
IFN0ZXBSYW5nZSBjcmVhdGVTdGVwUmFuZ2UoQW55U3RlcEhhbmRsaW5nKSBjb25zdCBmaW5hbDsK
LSAgICBib29sIGlzU3RlcHBhYmxlKCkgY29uc3QgZmluYWw7CisgICAgYm9vbCBpc1N0ZXBwYWJs
ZVNsb3coKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIGhhbmRsZU1vdXNlRG93bkV2ZW50KE1vdXNl
RXZlbnQmKSBmaW5hbDsKICAgICBTaG91bGRDYWxsQmFzZUV2ZW50SGFuZGxlciBoYW5kbGVLZXlk
b3duRXZlbnQoS2V5Ym9hcmRFdmVudCYpIGZpbmFsOwogICAgIFJlbmRlclB0cjxSZW5kZXJFbGVt
ZW50PiBjcmVhdGVJbnB1dFJlbmRlcmVyKFJlbmRlclN0eWxlJiYpIGZpbmFsOwotICAgIHZvaWQg
Y3JlYXRlU2hhZG93U3VidHJlZSgpIGZpbmFsOworICAgIHZvaWQgY3JlYXRlU2hhZG93U3VidHJl
ZUFuZFVwZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0YWJpbGl0eShDb250YWluZXJOb2RlOjpDaGls
ZENoYW5nZTo6U291cmNlLCBib29sKSBmaW5hbDsKICAgICBEZWNpbWFsIHBhcnNlVG9OdW1iZXIo
Y29uc3QgU3RyaW5nJiwgY29uc3QgRGVjaW1hbCYpIGNvbnN0IGZpbmFsOwogICAgIFN0cmluZyBz
ZXJpYWxpemUoY29uc3QgRGVjaW1hbCYpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgYWNjZXNzS2V5
QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvUmVzZXRJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmVzZXRJ
bnB1dFR5cGUuaAppbmRleCA5N2FiMTJhOGI5ZjUwMzUwZDc0OTM3ZDIyNzNjNzg2YmEzNThkZDIy
Li4wNTA4YzY1NGMzMGVlMGRiNzgzN2RjOGU4ZGY0ZjI3M2UzYjRlNGFhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL1Jlc2V0SW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9SZXNldElucHV0VHlwZS5oCkBAIC0zNSw4ICszNSw5IEBACiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIFJlc2V0SW5wdXRUeXBlIGZpbmFsIDogcHVibGljIEJhc2VCdXR0b25JbnB1
dFR5cGUgeworICAgIHRlbXBsYXRlPHR5cGVuYW1lIERvd25jYXN0ZWRUeXBlPiBmcmllbmQgYm9v
bCBpc0ludmFsaWRJbnB1dFR5cGUoY29uc3QgSW5wdXRUeXBlJiwgY29uc3QgU3RyaW5nJik7CiBw
dWJsaWM6Ci0gICAgZXhwbGljaXQgUmVzZXRJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxl
bWVudCkgOiBCYXNlQnV0dG9uSW5wdXRUeXBlKGVsZW1lbnQpIHsgfQorICAgIGV4cGxpY2l0IFJl
c2V0SW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFzZUJ1dHRvbklucHV0
VHlwZShlbGVtZW50LCBUeXBlOjpSZXNldCkgeyB9CiAKIHByaXZhdGU6CiAgICAgY29uc3QgQXRv
bVN0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL1NlYXJjaElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1NlYXJjaElucHV0VHlwZS5jcHAKaW5kZXggMTg3ZjNmNjRmZjk1NjMwMDMxMmZlYmEwZjdj
MTMwYWJjZjc5ZWI0MS4uYTRjNzNjNWNjNmI3ZDE3MWI4ODMyZGU5YjI3MTg4MDc4ODMzMDc0NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5cGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvU2VhcmNoSW5wdXRUeXBlLmNwcApAQCAtNDUsNyArNDUsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCiBTZWFy
Y2hJbnB1dFR5cGU6OlNlYXJjaElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQot
ICAgIDogQmFzZVRleHRJbnB1dFR5cGUoZWxlbWVudCkKKyAgICA6IEJhc2VUZXh0SW5wdXRUeXBl
KGVsZW1lbnQsIFR5cGU6OlNlYXJjaCkKICAgICAsIG1fc2VhcmNoRXZlbnRUaW1lcigqdGhpcywg
JlNlYXJjaElucHV0VHlwZTo6c2VhcmNoRXZlbnRUaW1lckZpcmVkKQogewogfQpAQCAtMTA3LDEy
ICsxMDcsMTIgQEAgYm9vbCBTZWFyY2hJbnB1dFR5cGU6Om5lZWRzQ29udGFpbmVyKCkgY29uc3QK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBTZWFyY2hJbnB1dFR5cGU6OmNyZWF0ZVNoYWRv
d1N1YnRyZWUoKQordm9pZCBTZWFyY2hJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWVBbmRV
cGRhdGVJbm5lclRleHRFbGVtZW50RWRpdGFiaWxpdHkoQ29udGFpbmVyTm9kZTo6Q2hpbGRDaGFu
Z2U6OlNvdXJjZSBzb3VyY2UsIGJvb2wgaXNJbm5lclRleHRFbGVtZW50RWRpdGFibGUpCiB7CiAg
ICAgQVNTRVJUKCFtX3Jlc3VsdHNCdXR0b24pOwogICAgIEFTU0VSVCghbV9jYW5jZWxCdXR0b24p
OwogCi0gICAgVGV4dEZpZWxkSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCk7CisgICAg
VGV4dEZpZWxkSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlQW5kVXBkYXRlSW5uZXJUZXh0
RWxlbWVudEVkaXRhYmlsaXR5KHNvdXJjZSwgaXNJbm5lclRleHRFbGVtZW50RWRpdGFibGUpOwog
ICAgIFJlZlB0cjxIVE1MRWxlbWVudD4gY29udGFpbmVyID0gY29udGFpbmVyRWxlbWVudCgpOwog
ICAgIFJlZlB0cjxIVE1MRWxlbWVudD4gdGV4dFdyYXBwZXIgPSBpbm5lckJsb2NrRWxlbWVudCgp
OwogICAgIEFTU0VSVChjb250YWluZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9TZWFyY2hJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvU2VhcmNoSW5wdXRUeXBl
LmgKaW5kZXggNmYzNjBhM2I4OGM1ZWM4ZGYxMTc1ODFhZWNhYTRlNDExYTJlMmZjOS4uYjc5MmRk
MDZhMzE5MjEyODg3MGExYmQ4ZjVlMmIxYjM4YjUwMzhlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1Nl
YXJjaElucHV0VHlwZS5oCkBAIC0zOSw2ICszOSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNs
YXNzIFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1lbnQ7CiAKIGNsYXNzIFNlYXJjaElucHV0
VHlwZSBmaW5hbCA6IHB1YmxpYyBCYXNlVGV4dElucHV0VHlwZSB7CisgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgRG93bmNhc3RlZFR5cGU+IGZyaWVuZCBib29sIGlzSW52YWxpZElucHV0VHlwZShjb25z
dCBJbnB1dFR5cGUmLCBjb25zdCBTdHJpbmcmKTsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBTZWFy
Y2hJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYpOwogCkBAIC01MSw3ICs1Miw3IEBAIGNsYXNz
IFNlYXJjaElucHV0VHlwZSBmaW5hbCA6IHB1YmxpYyBCYXNlVGV4dElucHV0VHlwZSB7CiAgICAg
Y29uc3QgQXRvbVN0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3QgZmluYWw7CiAgICAgYm9v
bCBpc1NlYXJjaEZpZWxkKCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBuZWVkc0NvbnRhaW5lcigp
IGNvbnN0IGZpbmFsOwotICAgIHZvaWQgY3JlYXRlU2hhZG93U3VidHJlZSgpIGZpbmFsOworICAg
IHZvaWQgY3JlYXRlU2hhZG93U3VidHJlZUFuZFVwZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0YWJp
bGl0eShDb250YWluZXJOb2RlOjpDaGlsZENoYW5nZTo6U291cmNlLCBib29sKSBmaW5hbDsKICAg
ICB2b2lkIGRlc3Ryb3lTaGFkb3dTdWJ0cmVlKCkgZmluYWw7CiAgICAgSFRNTEVsZW1lbnQqIHJl
c3VsdHNCdXR0b25FbGVtZW50KCkgY29uc3QgZmluYWw7CiAgICAgSFRNTEVsZW1lbnQqIGNhbmNl
bEJ1dHRvbkVsZW1lbnQoKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvU3VibWl0SW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1N1Ym1pdElucHV0
VHlwZS5oCmluZGV4IGUxZWRlMjc5ZTQ3NTZiZTgzM2MzZTU3ZDc3NDc4YjcxMjg3NWIxNDkuLjE1
NjlmYTc0ZjU2MGY3Y2ZjZmIyMDg4OGI3ZjU4MjAxMmY5YjYyM2IgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvU3VibWl0SW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9TdWJtaXRJbnB1dFR5cGUuaApAQCAtMzUsOCArMzUsOSBAQAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBTdWJtaXRJbnB1dFR5cGUgZmluYWwgOiBwdWJsaWMgQmFzZUJ1dHRvbklucHV0
VHlwZSB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRG93bmNhc3RlZFR5cGU+IGZyaWVuZCBib29s
IGlzSW52YWxpZElucHV0VHlwZShjb25zdCBJbnB1dFR5cGUmLCBjb25zdCBTdHJpbmcmKTsKIHB1
YmxpYzoKLSAgICBleHBsaWNpdCBTdWJtaXRJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxl
bWVudCkgOiBCYXNlQnV0dG9uSW5wdXRUeXBlKGVsZW1lbnQpIHsgfQorICAgIGV4cGxpY2l0IFN1
Ym1pdElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VCdXR0b25JbnB1
dFR5cGUoZWxlbWVudCwgVHlwZTo6U3VibWl0KSB7IH0KIAogcHJpdmF0ZToKICAgICBjb25zdCBB
dG9tU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvVGVsZXBob25lSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1RlbGVwaG9uZUlucHV0VHlwZS5oCmluZGV4IDkxMDZlNThjOTQwNzM4MGI5ZWJhYWQ5
YjA3N2JkNDU3YWE2OTYxMmMuLjk4ZDY4MDIwN2I1ODFiYzQwYzZkYjQ4ZjlhNzY4ZjU3YWNhZWYz
N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGVsZXBob25lSW5wdXRUeXBlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZWxlcGhvbmVJbnB1dFR5cGUuaApAQCAtMzUsOCAr
MzUsOSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBUZWxlcGhvbmVJbnB1dFR5cGUg
ZmluYWwgOiBwdWJsaWMgQmFzZVRleHRJbnB1dFR5cGUgeworICAgIHRlbXBsYXRlPHR5cGVuYW1l
IERvd25jYXN0ZWRUeXBlPiBmcmllbmQgYm9vbCBpc0ludmFsaWRJbnB1dFR5cGUoY29uc3QgSW5w
dXRUeXBlJiwgY29uc3QgU3RyaW5nJik7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgVGVsZXBob25l
SW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFzZVRleHRJbnB1dFR5cGUo
ZWxlbWVudCkgeyB9CisgICAgZXhwbGljaXQgVGVsZXBob25lSW5wdXRUeXBlKEhUTUxJbnB1dEVs
ZW1lbnQmIGVsZW1lbnQpIDogQmFzZVRleHRJbnB1dFR5cGUoZWxlbWVudCwgVHlwZTo6VGVsZXBo
b25lKSB7IH0KIAogcHJpdmF0ZToKICAgICBjb25zdCBBdG9tU3RyaW5nJiBmb3JtQ29udHJvbFR5
cGUoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4
dEZpZWxkSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRU
eXBlLmNwcAppbmRleCBjMDJhOGQ3NmMyMTBlMjc5NDczNWQxZWQzMWEyYWUwM2YzOTMwZDg2Li4z
OWI3NjdmMGZiODYzNTdlM2U0MTJhN2MzMzg0OTYyN2JlZTFmNDEzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwCkBAIC02MSw2ICs2MSw3IEBACiAjaW5jbHVk
ZSAiVGV4dE5vZGVUcmF2ZXJzYWwuaCIKICNpbmNsdWRlICJVc2VyVHlwaW5nR2VzdHVyZUluZGlj
YXRvci5oIgogI2luY2x1ZGUgIldoZWVsRXZlbnQuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJp
bmdCdWZmZXIuaD4KIAogI2lmIEVOQUJMRShEQVRBTElTVF9FTEVNRU5UKQogI2luY2x1ZGUgIkhU
TUxEYXRhTGlzdEVsZW1lbnQuaCIKQEAgLTcxLDggKzcyLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCi1UZXh0RmllbGRJbnB1dFR5cGU6OlRl
eHRGaWVsZElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQotICAgIDogSW5wdXRU
eXBlKGVsZW1lbnQpCitUZXh0RmllbGRJbnB1dFR5cGU6OlRleHRGaWVsZElucHV0VHlwZShIVE1M
SW5wdXRFbGVtZW50JiBlbGVtZW50LCBUeXBlIHR5cGUpCisgICAgOiBJbnB1dFR5cGUoZWxlbWVu
dCwgdHlwZSkKIHsKIH0KIApAQCAtMzE4LDcgKzMxOSw3IEBAIGJvb2wgVGV4dEZpZWxkSW5wdXRU
eXBlOjpzaG91bGRIYXZlQ2Fwc0xvY2tJbmRpY2F0b3IoKSBjb25zdAogICAgIHJldHVybiBSZW5k
ZXJUaGVtZTo6c2luZ2xldG9uKCkuc2hvdWxkSGF2ZUNhcHNMb2NrSW5kaWNhdG9yKCplbGVtZW50
KCkpOwogfQogCi12b2lkIFRleHRGaWVsZElucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgp
Cit2b2lkIFRleHRGaWVsZElucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZUFuZFVwZGF0ZUlu
bmVyVGV4dEVsZW1lbnRFZGl0YWJpbGl0eShDb250YWluZXJOb2RlOjpDaGlsZENoYW5nZTo6U291
cmNlIHNvdXJjZSwgYm9vbCBpc0lubmVyVGV4dEVsZW1lbnRFZGl0YWJsZSkKIHsKICAgICBBU1NF
UlQoZWxlbWVudCgpKTsKICAgICBBU1NFUlQoZWxlbWVudCgpLT5zaGFkb3dSb290KCkpOwpAQCAt
MzM0LDEwICszMzUsMTMgQEAgdm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1
YnRyZWUoKQogICAgIGJvb2wgc2hvdWxkSGF2ZUNhcHNMb2NrSW5kaWNhdG9yID0gdGhpcy0+c2hv
dWxkSGF2ZUNhcHNMb2NrSW5kaWNhdG9yKCk7CiAgICAgYm9vbCBjcmVhdGVzQ29udGFpbmVyID0g
c2hvdWxkSGF2ZVNwaW5CdXR0b24gfHwgc2hvdWxkSGF2ZUNhcHNMb2NrSW5kaWNhdG9yIHx8IG5l
ZWRzQ29udGFpbmVyKCk7CiAKLSAgICBtX2lubmVyVGV4dCA9IFRleHRDb250cm9sSW5uZXJUZXh0
RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBtX2lubmVyVGV4dCA9IFRleHRDb250cm9s
SW5uZXJUZXh0RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCBpc0lubmVyVGV4dEVsZW1lbnRFZGl0
YWJsZSk7CiAKICAgICBpZiAoIWNyZWF0ZXNDb250YWluZXIpIHsKLSAgICAgICAgZWxlbWVudCgp
LT51c2VyQWdlbnRTaGFkb3dSb290KCktPmFwcGVuZENoaWxkKCptX2lubmVyVGV4dCk7CisgICAg
ICAgIGlmIChzb3VyY2UgPT0gQ29udGFpbmVyTm9kZTo6Q2hpbGRDaGFuZ2U6OlNvdXJjZTo6UGFy
c2VyKQorICAgICAgICAgICAgZWxlbWVudCgpLT51c2VyQWdlbnRTaGFkb3dSb290KCktPnBhcnNl
ckFwcGVuZENoaWxkKCptX2lubmVyVGV4dCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGVs
ZW1lbnQoKS0+dXNlckFnZW50U2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZCgqbV9pbm5lclRleHQp
OwogICAgICAgICB1cGRhdGVQbGFjZWhvbGRlclRleHQoKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KQEAgLTM0Nyw3ICszNTEsMTAgQEAgdm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OmNyZWF0ZVNo
YWRvd1N1YnRyZWUoKQogCiAgICAgaWYgKHNob3VsZEhhdmVTcGluQnV0dG9uKSB7CiAgICAgICAg
IG1faW5uZXJTcGluQnV0dG9uID0gU3BpbkJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwg
KnRoaXMpOwotICAgICAgICBtX2NvbnRhaW5lci0+YXBwZW5kQ2hpbGQoKm1faW5uZXJTcGluQnV0
dG9uKTsKKyAgICAgICAgaWYgKHNvdXJjZSA9PSBDb250YWluZXJOb2RlOjpDaGlsZENoYW5nZTo6
U291cmNlOjpQYXJzZXIpCisgICAgICAgICAgICBtX2NvbnRhaW5lci0+cGFyc2VyQXBwZW5kQ2hp
bGQoKm1faW5uZXJTcGluQnV0dG9uKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbV9jb250
YWluZXItPmFwcGVuZENoaWxkKCptX2lubmVyU3BpbkJ1dHRvbik7CiAgICAgfQogCiAgICAgaWYg
KHNob3VsZEhhdmVDYXBzTG9ja0luZGljYXRvcikgewpAQCAtMzU4LDcgKzM2NSwxMCBAQCB2b2lk
IFRleHRGaWVsZElucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiAgICAgICAgIGJvb2wg
c2hvdWxkRHJhd0NhcHNMb2NrSW5kaWNhdG9yID0gdGhpcy0+c2hvdWxkRHJhd0NhcHNMb2NrSW5k
aWNhdG9yKCk7CiAgICAgICAgIG1fY2Fwc0xvY2tJbmRpY2F0b3ItPnNldElubGluZVN0eWxlUHJv
cGVydHkoQ1NTUHJvcGVydHlEaXNwbGF5LCBzaG91bGREcmF3Q2Fwc0xvY2tJbmRpY2F0b3IgPyBD
U1NWYWx1ZUJsb2NrIDogQ1NTVmFsdWVOb25lLCB0cnVlKTsKIAotICAgICAgICBtX2NvbnRhaW5l
ci0+YXBwZW5kQ2hpbGQoKm1fY2Fwc0xvY2tJbmRpY2F0b3IpOworICAgICAgICBpZiAoc291cmNl
ID09IENvbnRhaW5lck5vZGU6OkNoaWxkQ2hhbmdlOjpTb3VyY2U6OlBhcnNlcikKKyAgICAgICAg
ICAgIG1fY29udGFpbmVyLT5wYXJzZXJBcHBlbmRDaGlsZCgqbV9jYXBzTG9ja0luZGljYXRvcik7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG1fY29udGFpbmVyLT5hcHBlbmRDaGlsZCgqbV9j
YXBzTG9ja0luZGljYXRvcik7CiAgICAgfQogICAgIHVwZGF0ZUF1dG9GaWxsQnV0dG9uKCk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuaAppbmRleCAyYzQ1NzIyZGEx
YmUwZDU2MzE2YTNhYmRkYWMxNmE2ZjI4OGYwZGZmLi4yNzdhZjkzZTk2ZDRlOTA1M2NiMTU1NGE4
Mjc1ZDU2MDQ4ZDcxYjU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVs
ZElucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBl
LmgKQEAgLTUxLDcgKzUxLDcgQEAgY2xhc3MgVGV4dEZpZWxkSW5wdXRUeXBlIDogcHVibGljIElu
cHV0VHlwZSwgcHJvdGVjdGVkIFNwaW5CdXR0b25FbGVtZW50OjpTcGluQnUKICNlbmRpZgogewog
cHJvdGVjdGVkOgotICAgIGV4cGxpY2l0IFRleHRGaWVsZElucHV0VHlwZShIVE1MSW5wdXRFbGVt
ZW50Jik7CisgICAgZXhwbGljaXQgVGV4dEZpZWxkSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQm
LCBUeXBlKTsKICAgICB2aXJ0dWFsIH5UZXh0RmllbGRJbnB1dFR5cGUoKTsKICAgICBTaG91bGRD
YWxsQmFzZUV2ZW50SGFuZGxlciBoYW5kbGVLZXlkb3duRXZlbnQoS2V5Ym9hcmRFdmVudCYpIG92
ZXJyaWRlOwogICAgIHZvaWQgaGFuZGxlS2V5ZG93bkV2ZW50Rm9yU3BpbkJ1dHRvbihLZXlib2Fy
ZEV2ZW50Jik7CkBAIC03MCw3ICs3MCw3IEBAIGNsYXNzIFRleHRGaWVsZElucHV0VHlwZSA6IHB1
YmxpYyBJbnB1dFR5cGUsIHByb3RlY3RlZCBTcGluQnV0dG9uRWxlbWVudDo6U3BpbkJ1CiAjZW5k
aWYKIAogICAgIHZpcnR1YWwgYm9vbCBuZWVkc0NvbnRhaW5lcigpIGNvbnN0OwotICAgIHZvaWQg
Y3JlYXRlU2hhZG93U3VidHJlZSgpIG92ZXJyaWRlOworICAgIHZvaWQgY3JlYXRlU2hhZG93U3Vi
dHJlZUFuZFVwZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0YWJpbGl0eShDb250YWluZXJOb2RlOjpD
aGlsZENoYW5nZTo6U291cmNlLCBib29sKSBvdmVycmlkZTsKICAgICB2b2lkIGRlc3Ryb3lTaGFk
b3dTdWJ0cmVlKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1
YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKICAgICB2b2lkIGRpc2FibGVkU3RhdGVDaGFuZ2VkKCkg
ZmluYWw7CkBAIC04MSw2ICs4MSw3IEBAIGNsYXNzIFRleHRGaWVsZElucHV0VHlwZSA6IHB1Ymxp
YyBJbnB1dFR5cGUsIHByb3RlY3RlZCBTcGluQnV0dG9uRWxlbWVudDo6U3BpbkJ1CiAgICAgdm9p
ZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29sIHZhbHVlQ2hhbmdlZCwgVGV4dEZpZWxkRXZl
bnRCZWhhdmlvcikgb3ZlcnJpZGU7CiAgICAgdm9pZCB1cGRhdGVJbm5lclRleHRWYWx1ZSgpIGZp
bmFsOwogICAgIFN0cmluZyBzYW5pdGl6ZVZhbHVlKGNvbnN0IFN0cmluZyYpIGNvbnN0IG92ZXJy
aWRlOworICAgIGJvb2wgdmFsdWVNaXNzaW5nKGNvbnN0IFN0cmluZyYpIGNvbnN0IGZpbmFsOwog
CiAgICAgdmlydHVhbCBTdHJpbmcgY29udmVydEZyb21WaXNpYmxlVmFsdWUoY29uc3QgU3RyaW5n
JikgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGRpZFNldFZhbHVlQnlVc2VyRWRpdCgpOwpAQCAt
OTAsNyArOTEsNiBAQCBjbGFzcyBUZXh0RmllbGRJbnB1dFR5cGUgOiBwdWJsaWMgSW5wdXRUeXBl
LCBwcm90ZWN0ZWQgU3BpbkJ1dHRvbkVsZW1lbnQ6OlNwaW5CdQogICAgIGJvb2wgaXNNb3VzZUZv
Y3VzYWJsZSgpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgaXNUZXh0RmllbGQoKSBjb25zdCBmaW5h
bDsKICAgICBib29sIGlzRW1wdHlWYWx1ZSgpIGNvbnN0IGZpbmFsOwotICAgIGJvb2wgdmFsdWVN
aXNzaW5nKGNvbnN0IFN0cmluZyYpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgaGFuZGxlQmVmb3Jl
VGV4dEluc2VydGVkRXZlbnQoQmVmb3JlVGV4dEluc2VydGVkRXZlbnQmKSBmaW5hbDsKICAgICB2
b2lkIGZvcndhcmRFdmVudChFdmVudCYpIGZpbmFsOwogICAgIGJvb2wgc2hvdWxkU3VibWl0SW1w
bGljaXRseShFdmVudCYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9U
ZXh0SW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRJbnB1dFR5cGUuaAppbmRl
eCBlZTg5YzhmNmFhOWYxOGFjYzc5ZjVjMmIxYTg1YTAyN2JlZTdkM2NlLi43MzlkMzliMmM4ZDI4
YjljN2MwM2E0NTY4YTZhZmRjZDk4MTBiZGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1RleHRJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRJbnB1dFR5
cGUuaApAQCAtMzUsOCArMzUsOSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBUZXh0
SW5wdXRUeXBlIGZpbmFsIDogcHVibGljIEJhc2VUZXh0SW5wdXRUeXBlIHsKKyAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBEb3duY2FzdGVkVHlwZT4gZnJpZW5kIGJvb2wgaXNJbnZhbGlkSW5wdXRUeXBl
KGNvbnN0IElucHV0VHlwZSYsIGNvbnN0IFN0cmluZyYpOwogcHVibGljOgotICAgIGV4cGxpY2l0
IFRleHRJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlVGV4dElucHV0
VHlwZShlbGVtZW50KSB7IH0KKyAgICBleHBsaWNpdCBUZXh0SW5wdXRUeXBlKEhUTUxJbnB1dEVs
ZW1lbnQmIGVsZW1lbnQpIDogQmFzZVRleHRJbnB1dFR5cGUoZWxlbWVudCwgVHlwZTo6VGV4dCkg
eyB9CiAKIHByaXZhdGU6CiAgICAgY29uc3QgQXRvbVN0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkg
Y29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1
dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNwcAppbmRleCAy
MTAzOTU3MzQ4NDdlNWIwOTU3MjcyOGQ2NWZmMTFjODE0YWEwZTY1Li41MmJlMzNjMDk3ZjRiZjIw
OGNjNjk5NzM4NzgwOTFhNzM4NjA4YjczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L1RpbWVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlw
ZS5jcHAKQEAgLTUzLDcgKzUzLDcgQEAgc3RhdGljIGNvbnN0IGludCB0aW1lU3RlcFNjYWxlRmFj
dG9yID0gMTAwMDsKIHN0YXRpYyBjb25zdCBTdGVwUmFuZ2U6OlN0ZXBEZXNjcmlwdGlvbiB0aW1l
U3RlcERlc2NyaXB0aW9uIHsgdGltZURlZmF1bHRTdGVwLCB0aW1lRGVmYXVsdFN0ZXBCYXNlLCB0
aW1lU3RlcFNjYWxlRmFjdG9yLCBTdGVwUmFuZ2U6OlNjYWxlZFN0ZXBWYWx1ZVNob3VsZEJlSW50
ZWdlciB9OwogCiBUaW1lSW5wdXRUeXBlOjpUaW1lSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQm
IGVsZW1lbnQpCi0gICAgOiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUoZWxlbWVudCkKKyAgICA6
IEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZShlbGVtZW50LCBUeXBlOjpUaW1lKQogewogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5oCmluZGV4IGMyZDNiODkzMjg4NzU3YTk0M2Q0YzMz
Mzk2MmEwMDU2OTFlNjJiZjYuLjcwOWIzNzQxMDAyZWUzMDMxNjY4ZGYxZTQ0MmQ2MTIxOWIwOTMz
MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5oCkBAIC0zNyw2ICszNyw3IEBACiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFRpbWVJbnB1dFR5cGUgZmluYWwgOiBwdWJsaWMg
QmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlIHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEb3duY2Fz
dGVkVHlwZT4gZnJpZW5kIGJvb2wgaXNJbnZhbGlkSW5wdXRUeXBlKGNvbnN0IElucHV0VHlwZSYs
IGNvbnN0IFN0cmluZyYpOwogcHVibGljOgogICAgIGV4cGxpY2l0IFRpbWVJbnB1dFR5cGUoSFRN
TElucHV0RWxlbWVudCYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1VSTElu
cHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9VUkxJbnB1dFR5cGUuaAppbmRleCAwZDNi
YmI1YTJkMDU4NTVjOGYxMjViYzlmYWVmOGViMTdmNzk5MGIyLi41YTM0MjJjNTY1NTEyN2EzNjVi
MjM3MzMwZWYxZDc3ODYxYWQ0NzZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1VS
TElucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVVJMSW5wdXRUeXBlLmgKQEAg
LTM1LDggKzM1LDkgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgVVJMSW5wdXRUeXBl
IGZpbmFsIDogcHVibGljIEJhc2VUZXh0SW5wdXRUeXBlIHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBEb3duY2FzdGVkVHlwZT4gZnJpZW5kIGJvb2wgaXNJbnZhbGlkSW5wdXRUeXBlKGNvbnN0IElu
cHV0VHlwZSYsIGNvbnN0IFN0cmluZyYpOwogcHVibGljOgotICAgIGV4cGxpY2l0IFVSTElucHV0
VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VUZXh0SW5wdXRUeXBlKGVsZW1l
bnQpIHsgfQorICAgIGV4cGxpY2l0IFVSTElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVt
ZW50KSA6IEJhc2VUZXh0SW5wdXRUeXBlKGVsZW1lbnQsIFR5cGU6OlVSTCkgeyB9CiAKIHByaXZh
dGU6CiAgICAgY29uc3QgQXRvbVN0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3Qgb3ZlcnJp
ZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvV2Vla0lucHV0VHlwZS5oCmluZGV4IDA0MGMwODIwYjg5OTM4MDAy
MmIwN2EwMjQyNTZlZjQzN2MxMzY1YWQuLjgxM2U4NjllNGI5YWFlYmQ4ODI0MDVhMDExOTVlZjE5
YjBlNmVmNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvV2Vla0lucHV0VHlwZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvV2Vla0lucHV0VHlwZS5oCkBAIC0zNyw5ICszNywx
MCBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBXZWVrSW5wdXRUeXBlIGZpbmFsIDog
cHVibGljIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZSB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUg
RG93bmNhc3RlZFR5cGU+IGZyaWVuZCBib29sIGlzSW52YWxpZElucHV0VHlwZShjb25zdCBJbnB1
dFR5cGUmLCBjb25zdCBTdHJpbmcmKTsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBXZWVrSW5wdXRU
eXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCi0gICAgICAgIDogQmFzZURhdGVBbmRUaW1l
SW5wdXRUeXBlKGVsZW1lbnQpCisgICAgICAgIDogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlKGVs
ZW1lbnQsIFR5cGU6OldlZWspCiAgICAgewogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAKaW5kZXggZGNl
MjM4Y2MzMDU3NjFhN2E2Y2ZjZTgwMmIyZjc2MzYxODgyYzViNy4uMDNhMmQ3MzA0Y2Y5ZmM3OWJi
NGYxODI4OWQwYmVjNzQ5N2I4MmQxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwCkBAIC0xMzgsOSArMTM4LDI0
IEBAIGlubGluZSBUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ6OlRleHRDb250cm9sSW5uZXJU
ZXh0RWxlbWVudChEb2N1bWVudCYgZG9jdW1lCiAgICAgc2V0SGFzQ3VzdG9tU3R5bGVSZXNvbHZl
Q2FsbGJhY2tzKCk7CiB9CiAKLVJlZjxUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ+IFRleHRD
b250cm9sSW5uZXJUZXh0RWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxU
ZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ+IFRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVudDo6
Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgYm9vbCBpc0VkaXRhYmxlKQogewotICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVudChkb2N1bWVudCkpOwor
ICAgIGF1dG8gcmVzdWx0ID0gYWRvcHRSZWYoKm5ldyBUZXh0Q29udHJvbElubmVyVGV4dEVsZW1l
bnQoZG9jdW1lbnQpKTsKKyAgICBjb25zdGV4cHIgYm9vbCBpbml0aWFsaXphdGlvbiA9IHRydWU7
CisgICAgcmVzdWx0LT51cGRhdGVJbm5lclRleHRFbGVtZW50RWRpdGFiaWxpdHlJbXBsKGlzRWRp
dGFibGUsIGluaXRpYWxpemF0aW9uKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit2b2lkIFRl
eHRDb250cm9sSW5uZXJUZXh0RWxlbWVudDo6dXBkYXRlSW5uZXJUZXh0RWxlbWVudEVkaXRhYmls
aXR5SW1wbChib29sIGlzRWRpdGFibGUsIGJvb2wgaW5pdGlhbGl6YXRpb24pCit7CisgICAgc3Rh
dGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBwbGFpblRleHRP
bmx5TmFtZSgicGxhaW50ZXh0LW9ubHkiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiBmYWxzZU5hbWUoImZhbHNlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwor
ICAgIGNvbnN0IGF1dG8mIHZhbHVlID0gaXNFZGl0YWJsZSA/IHBsYWluVGV4dE9ubHlOYW1lLmdl
dCgpIDogZmFsc2VOYW1lLmdldCgpOworICAgIGlmIChpbml0aWFsaXphdGlvbikgeworICAgICAg
ICBWZWN0b3I8QXR0cmlidXRlPiBhdHRyaWJ1dGVzIHsgQXR0cmlidXRlKGNvbnRlbnRlZGl0YWJs
ZUF0dHIsIHZhbHVlKSB9OworICAgICAgICBwYXJzZXJTZXRBdHRyaWJ1dGVzKGF0dHJpYnV0ZXMp
OworICAgIH0gZWxzZQorICAgICAgICBzZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9u
KGNvbnRlbnRlZGl0YWJsZUF0dHIsIHZhbHVlKTsKIH0KIAogdm9pZCBUZXh0Q29udHJvbElubmVy
VGV4dEVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQmIGV2ZW50KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuaApp
bmRleCBlY2NmOTQzMWEzNzE5MzcyYzk4NjcwNzM5YWI1NTgxYWEyZjhmMjQ0Li5lYmI1ODU5YTlj
OTllZWFlYzUwMjYwY2RiZjZhNDlhODQzYmZiMjJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuaApAQCAtNTgsMTMgKzU4
LDIxIEBAIGNsYXNzIFRleHRDb250cm9sSW5uZXJFbGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxE
aXZFbGVtZW50IHsKIGNsYXNzIFRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVudCBmaW5hbCA6IHB1
YmxpYyBIVE1MRGl2RWxlbWVudCB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChUZXh0Q29u
dHJvbElubmVyVGV4dEVsZW1lbnQpOwogcHVibGljOgotICAgIHN0YXRpYyBSZWY8VGV4dENvbnRy
b2xJbm5lclRleHRFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPFRl
eHRDb250cm9sSW5uZXJUZXh0RWxlbWVudD4gY3JlYXRlKERvY3VtZW50JiwgYm9vbCBpc0VkaXRh
YmxlKTsKIAogICAgIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCYpIG92ZXJyaWRlOwog
CiAgICAgUmVuZGVyVGV4dENvbnRyb2xJbm5lckJsb2NrKiByZW5kZXJlcigpIGNvbnN0OwogCisg
ICAgaW5saW5lIHZvaWQgdXBkYXRlSW5uZXJUZXh0RWxlbWVudEVkaXRhYmlsaXR5KGJvb2wgaXNF
ZGl0YWJsZSkKKyAgICB7CisgICAgICAgIGNvbnN0ZXhwciBib29sIGluaXRpYWxpemF0aW9uID0g
ZmFsc2U7CisgICAgICAgIHVwZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0YWJpbGl0eUltcGwoaXNF
ZGl0YWJsZSwgaW5pdGlhbGl6YXRpb24pOworICAgIH0KKwogcHJpdmF0ZToKKyAgICB2b2lkIHVw
ZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0YWJpbGl0eUltcGwoYm9vbCBpc0VkaXRhYmxlLCBib29s
IGluaXRpYWxpemF0aW9uKTsKKwogICAgIFRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVudChEb2N1
bWVudCYpOwogICAgIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVy
ZXIoUmVuZGVyU3R5bGUmJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAg
ICAgT3B0aW9uYWw8U3R5bGU6OkVsZW1lbnRTdHlsZT4gcmVzb2x2ZUN1c3RvbVN0eWxlKGNvbnN0
IFJlbmRlclN0eWxlJiBwYXJlbnRTdHlsZSwgY29uc3QgUmVuZGVyU3R5bGUqIHNoYWRvd0hvc3RT
dHlsZSkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNj
b3BlLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlLmgKaW5kZXggNDc0YTA4YTYy
NTdiZDVhZDBkZDJmYjlkYWY3NTFkNmJkMmY1ZjRkNi4uNjcyNzY1ZGQxZDhhMTcyMDBmMDc5ZTdm
Mjk1ZTQ5OTAyMjMxNDRkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVT
Y29wZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGUuaApAQCAtMTM1LDcg
KzEzNSw3IEBAIGNsYXNzIFNjb3BlIHsKIAogICAgIHZvaWQgZGlkUmVtb3ZlUGVuZGluZ1N0eWxl
c2hlZXQoKTsKIAotICAgIGVudW0gY2xhc3MgVXBkYXRlVHlwZSB7IEFjdGl2ZVNldCwgQ29udGVu
dHNPckludGVycHJldGF0aW9uIH07CisgICAgZW51bSBjbGFzcyBVcGRhdGVUeXBlIDogdWludDhf
dCB7IEFjdGl2ZVNldCwgQ29udGVudHNPckludGVycHJldGF0aW9uIH07CiAgICAgdm9pZCB1cGRh
dGVBY3RpdmVTdHlsZVNoZWV0cyhVcGRhdGVUeXBlKTsKICAgICB2b2lkIHNjaGVkdWxlVXBkYXRl
KFVwZGF0ZVR5cGUpOwogCkBAIC0xODMsMTMgKzE4MywxNCBAQCBjbGFzcyBTY29wZSB7CiAgICAg
SGFzaFNldDxjb25zdCBFbGVtZW50Kj4gbV9lbGVtZW50c0luSGVhZFdpdGhQZW5kaW5nU2hlZXRz
OwogICAgIEhhc2hTZXQ8Y29uc3QgRWxlbWVudCo+IG1fZWxlbWVudHNJbkJvZHlXaXRoUGVuZGlu
Z1NoZWV0czsKIAotICAgIE9wdGlvbmFsPFVwZGF0ZVR5cGU+IG1fcGVuZGluZ1VwZGF0ZTsKLSAg
ICBib29sIG1faGFzRGVzY2VuZGFudFdpdGhQZW5kaW5nVXBkYXRlIHsgZmFsc2UgfTsKIAogICAg
IExpc3RIYXNoU2V0PE5vZGUqPiBtX3N0eWxlU2hlZXRDYW5kaWRhdGVOb2RlczsKIAogICAgIFN0
cmluZyBtX3ByZWZlcnJlZFN0eWxlc2hlZXRTZXROYW1lOwogCisgICAgT3B0aW9uYWw8VXBkYXRl
VHlwZT4gbV9wZW5kaW5nVXBkYXRlOworCisgICAgYm9vbCBtX2hhc0Rlc2NlbmRhbnRXaXRoUGVu
ZGluZ1VwZGF0ZSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3VzZXNTdHlsZUJhc2VkRWRpdGFiaWxp
dHkgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9pc1VwZGF0aW5nU3R5bGVSZXNvbHZlciB7IGZhbHNl
IH07CiB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417935</attachid>
            <date>2021-01-19 18:29:50 -0800</date>
            <delta_ts>2021-01-19 18:44:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220758-20210119182949.patch</filename>
            <type>text/plain</type>
            <size>57417</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxNjI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWQwNWRkNDI3ODUyNDNj
ZTUyZGE4ZjAzMDFlNWYyNGVkN2RkMTc4NC4uYmUxMTI4ZDE5YjlhZDEzY2Q2MmRlZGVmOWU2YmMw
NzAxZjQ0YWQ2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExNiBAQAorMjAyMS0wMS0xOSAgWXVz
dWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIEFjY2VsZXJhdGUgSFRN
TElucHV0RWxlbWVudCBjcmVhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjIwNzU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgSFRNTElucHV0RWxlbWVudCBjcmVhdGlvbiBpcyB0b28gc2xvdy4KKwor
ICAgICAgICAxLiBJbnB1dFR5cGUgaXMgZXhjZXNzaXZlbHkgdXNpbmcgdmlydHVhbCBkaXNwYXRj
aGluZywgd2hpY2ggaXMgdG9vIHNsb3cgZm9yIGhvdCBwYXRoLgorICAgICAgICAyLiBIVE1MSW5w
dXRFbGVtZW50IGNyZWF0ZXMgaW50ZXJuYWwgZWxlbWVudHMgYXMgYSBzaGFkb3cgRE9NIGFuZCBp
dHMgY3JlYXRpb24gaXMgdG9vIGdlbmVyaWMuCisgICAgICAgIDMuIFdlIGFyZSBzZXR0aW5nIGlu
bmVyIHRleHQgZWxlbWVudCdzIGVkaXRhYmlsaXR5IGluIGEgdmVyeSBnZW5lcmljIHdheS4gVGhp
cyBhbGxvY2F0ZXMgRWxlbWVudERhdGEgZm9yIGVhY2ggZWxlbWVudHMgd2hpbGUgYXR0cmlidXRl
cyBhcmUgYWxtb3N0IHRoZSBzYW1lLgorCisgICAgICAgIEluIHRoaXMgcGF0Y2gsCisKKyAgICAg
ICAgMS4gV2UgYWRkIG1fdHlwZSBmaWVsZCBpbiBJbnB1dFR5cGUsIGFuZCBmb3IgdGhlIGhvdCBw
YXRoLCB3ZSBhdHRlbXB0IHRvIGRldmlydHVhbGl6ZSB0aGluZ3MgZHVlIHRvIHBlcmZvcm1hbmNl
IHByb2JsZW0uCisgICAgICAgIDIuIFdlIHBhc3MgInBhcnNpbmcgcGhhc2UiIGluZm9ybWF0aW9u
IHRvIHNoYWRvdyBET00gY3JlYXRpb24gdG8gbWFrZSB0aGVtIGZhc3QuCisgICAgICAgIDMuIFdl
IGluaXRpYWxpemUgZWRpdGliaWxpdHkgd2hlbiBjcmVhdGluZyBUZXh0Q29udHJvbElubmVyVGV4
dEVsZW1lbnQuIEFuZCB3ZSB1c2UgcGFyc2VyU2V0QXR0cmlidXRlcyB0byBzZXQgc2hhcmVkIEVs
ZW1lbnREYXRhLiBUaGlzIGlzIGZhc3RlciBhbmQgbGVzcyBtZW1vcnkuCisgICAgICAgIDQuIFdl
IGFsc28gc2hyaW5rIHNpemVvZihTdHlsZTo6U2NvcGUpIHRvIHJlZHVjZSBzaXplIG9mIGFsbG9j
YXRpb24gd2hlbiB1c2luZyBzaGFkb3cgRE9NLgorCisgICAgICAgIFRoaXMgY2hhbmdlIG9mZmVy
cyAxJSBwcm9ncmVzc2lvbiBpbiBTcGVlZG9tZXRlcjIvalF1ZXJ5LgorCisgICAgICAgICogaHRt
bC9CYXNlQnV0dG9uSW5wdXRUeXBlLmg6CisgICAgICAgIChXZWJDb3JlOjpCYXNlQnV0dG9uSW5w
dXRUeXBlOjpCYXNlQnV0dG9uSW5wdXRUeXBlKToKKyAgICAgICAgKiBodG1sL0Jhc2VDaGVja2Fi
bGVJbnB1dFR5cGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VDaGVja2FibGVJbnB1dFR5cGU6
OkJhc2VDaGVja2FibGVJbnB1dFR5cGUpOgorICAgICAgICAqIGh0bWwvQmFzZUNsaWNrYWJsZVdp
dGhLZXlJbnB1dFR5cGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VDbGlja2FibGVXaXRoS2V5
SW5wdXRUeXBlOjpCYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlwZSk6CisgICAgICAgICogaHRt
bC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmFzZURh
dGVBbmRUaW1lSW5wdXRUeXBlOjppc1N0ZXBwYWJsZVNsb3cgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6QmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlQW5kVXBk
YXRlSW5uZXJUZXh0RWxlbWVudEVkaXRhYmlsaXR5KToKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VE
YXRlQW5kVGltZUlucHV0VHlwZTo6aXNTdGVwcGFibGUgY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6QmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVl
KTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6QmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlOjpCYXNlRGF0ZUFuZFRp
bWVJbnB1dFR5cGUpOgorICAgICAgICAqIGh0bWwvQmFzZVRleHRJbnB1dFR5cGUuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkJhc2VUZXh0SW5wdXRUeXBlOjpCYXNlVGV4dElucHV0VHlwZSk6CisgICAg
ICAgICogaHRtbC9CdXR0b25JbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL0NoZWNrYm94SW5w
dXRUeXBlLmg6CisgICAgICAgICogaHRtbC9Db2xvcklucHV0VHlwZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDb2xvcklucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZUFuZFVwZGF0ZUlubmVy
VGV4dEVsZW1lbnRFZGl0YWJpbGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpDb2xvcklucHV0VHlw
ZTo6Y3JlYXRlU2hhZG93U3VidHJlZSk6IERlbGV0ZWQuCisgICAgICAgICogaHRtbC9Db2xvcklu
cHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvRGF0ZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpEYXRlSW5wdXRUeXBlOjpEYXRlSW5wdXRUeXBlKToKKyAgICAgICAgKiBodG1sL0Rh
dGVJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuaDoK
KyAgICAgICAgKiBodG1sL0VtYWlsSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9GaWxlSW5w
dXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVJbnB1dFR5cGU6OkZpbGVJbnB1dFR5
cGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJl
ZUFuZFVwZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0YWJpbGl0eSk6CisgICAgICAgIChXZWJDb3Jl
OjpGaWxlSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKTogRGVsZXRlZC4KKyAgICAgICAg
KiBodG1sL0ZpbGVJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6ZGlkQWRkVXNlckFnZW50
U2hhZG93Um9vdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50Ojppc1ZhbGlk
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnVwZGF0ZVR5cGUp
OgorICAgICAgICAqIGh0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MVGV4dEFyZWFFbGVtZW50OjpkaWRBZGRVc2VyQWdlbnRTaGFkb3dSb290KToKKyAg
ICAgICAgKiBodG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojp1cGRhdGVJbm5lclRleHRFbGVtZW50
RWRpdGFiaWxpdHkpOgorICAgICAgICAqIGh0bWwvSGlkZGVuSW5wdXRUeXBlLmg6CisgICAgICAg
ICogaHRtbC9JbWFnZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUlucHV0
VHlwZTo6SW1hZ2VJbnB1dFR5cGUpOgorICAgICAgICAqIGh0bWwvSW1hZ2VJbnB1dFR5cGUuaDoK
KyAgICAgICAgKiBodG1sL0lucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5
cGU6OmlzSW52YWxpZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6OmNyZWF0
ZVNoYWRvd1N1YnRyZWVBbmRVcGRhdGVJbm5lclRleHRFbGVtZW50RWRpdGFiaWxpdHkpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlOjppc1N0ZXBwYWJsZSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUpOiBEZWxldGVkLgorICAgICAg
ICAqIGh0bWwvSW5wdXRUeXBlLmg6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6OklucHV0
VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6OmlzU3RlcHBhYmxlU2xvdyBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjppc0ludmFsaWRJbnB1dFR5cGUpOgorICAgICAgICAqIGh0
bWwvTW9udGhJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL051bWJlcklucHV0VHlwZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpOdW1iZXJJbnB1dFR5cGU6OmlzU3RlcHBhYmxlU2xvdyBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpOdW1iZXJJbnB1dFR5cGU6OmlzU3RlcHBhYmxlIGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL051bWJlcklucHV0VHlwZS5oOgorICAgICAgICAq
IGh0bWwvUGFzc3dvcmRJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL1JhZGlvSW5wdXRUeXBl
Lmg6CisgICAgICAgICogaHRtbC9SYW5nZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSYW5nZUlucHV0VHlwZTo6UmFuZ2VJbnB1dFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6UmFu
Z2VJbnB1dFR5cGU6OmlzU3RlcHBhYmxlU2xvdyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpS
YW5nZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZUFuZFVwZGF0ZUlubmVyVGV4dEVsZW1l
bnRFZGl0YWJpbGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpSYW5nZUlucHV0VHlwZTo6aXNTdGVw
cGFibGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2VJbnB1dFR5cGU6
OmNyZWF0ZVNoYWRvd1N1YnRyZWUpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvUmFuZ2VJbnB1
dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL1Jlc2V0SW5wdXRUeXBlLmg6CisgICAgICAgICogaHRt
bC9TZWFyY2hJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoSW5wdXRUeXBl
OjpTZWFyY2hJbnB1dFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoSW5wdXRUeXBlOjpj
cmVhdGVTaGFkb3dTdWJ0cmVlQW5kVXBkYXRlSW5uZXJUZXh0RWxlbWVudEVkaXRhYmlsaXR5KToK
KyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaElucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSk6
IERlbGV0ZWQuCisgICAgICAgICogaHRtbC9TZWFyY2hJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBo
dG1sL1N1Ym1pdElucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvVGVsZXBob25lSW5wdXRUeXBl
Lmg6CisgICAgICAgICogaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6VGV4dEZpZWxkSW5wdXRUeXBlOjpUZXh0RmllbGRJbnB1dFR5cGUpOgorICAgICAgICAo
V2ViQ29yZTo6VGV4dEZpZWxkSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlQW5kVXBkYXRl
SW5uZXJUZXh0RWxlbWVudEVkaXRhYmlsaXR5KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRGaWVs
ZElucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSk6IERlbGV0ZWQuCisgICAgICAgICogaHRt
bC9UZXh0RmllbGRJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL1RleHRJbnB1dFR5cGUuaDoK
KyAgICAgICAgKiBodG1sL1RpbWVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGlt
ZUlucHV0VHlwZTo6VGltZUlucHV0VHlwZSk6CisgICAgICAgICogaHRtbC9UaW1lSW5wdXRUeXBl
Lmg6CisgICAgICAgICogaHRtbC9VUkxJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL1dlZWtJ
bnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVu
dHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50Ojpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50Ojp1
cGRhdGVJbm5lclRleHRFbGVtZW50RWRpdGFiaWxpdHlJbXBsKToKKyAgICAgICAgKiBodG1sL3No
YWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuaDoKKyAgICAgICAgKiBzdHlsZS9TdHlsZVNj
b3BlLmg6CisKIDIwMjEtMDEtMTkgIFBhdHJpY2sgQW5nbGUgIDxwYW5nbGVAYXBwbGUuY29tPgog
CiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEZvbnQgRGV0YWlscyBzaWRlYmFyIC0gRnJhY3Rpb25h
bCB2YXJpYXRpb24gYXhpcyByYW5nZXMvZGVmYXVsdCB2YWx1ZXMgYXJlIHJvdW5kZWQuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VCdXR0b25JbnB1dFR5cGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvQmFzZUJ1dHRvbklucHV0VHlwZS5oCmluZGV4IGY3YmNhYjI0MmI1YzMy
MGIzMTE4MDYxMDhkYWUwMmNhNWRjOGNjOTguLmIyM2YzMDcxMzc5NmEwOTBiYTAwOTU5NGEyYWEx
OWUxYTg5NDQxM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUJ1dHRvbklu
cHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUJ1dHRvbklucHV0VHlwZS5o
CkBAIC0zNyw3ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIC8vIEJhc2Ugb2YgYnV0dG9u
LCBmaWxlLCBpbWFnZSwgcmVzZXQsIGFuZCBzdWJtaXQgdHlwZXMuCiBjbGFzcyBCYXNlQnV0dG9u
SW5wdXRUeXBlIDogcHVibGljIEJhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlIHsKIHByb3Rl
Y3RlZDoKLSAgICBleHBsaWNpdCBCYXNlQnV0dG9uSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQm
IGVsZW1lbnQpIDogQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUoZWxlbWVudCkgeyB9Cisg
ICAgZXhwbGljaXQgQmFzZUJ1dHRvbklucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50
LCBUeXBlIHR5cGUpIDogQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUoZWxlbWVudCwgdHlw
ZSkgeyB9CiAKIHByaXZhdGU6CiAgICAgYm9vbCBzaG91bGRTYXZlQW5kUmVzdG9yZUZvcm1Db250
cm9sU3RhdGUoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hl
Y2thYmxlSW5wdXRUeXBlLmgKaW5kZXggOTIxYmI4ODVhMjQxNDVmZmRkMDM3ZDNmZjI4ZTI4ODU2
MGJkNTVhYi4uODE3YTA3ODk1NTlhNTg5ZDFmZmM3NjFmNTI5NzBkZWFlMjUxOWJkYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmgKQEAgLTM3LDcgKzM3
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogLy8gQmFzZSBvZiBjaGVja2JveCBhbmQgcmFkaW8g
dHlwZXMuCiBjbGFzcyBCYXNlQ2hlY2thYmxlSW5wdXRUeXBlIDogcHVibGljIElucHV0VHlwZSB7
CiBwcm90ZWN0ZWQ6Ci0gICAgZXhwbGljaXQgQmFzZUNoZWNrYWJsZUlucHV0VHlwZShIVE1MSW5w
dXRFbGVtZW50JiBlbGVtZW50KSA6IElucHV0VHlwZShlbGVtZW50KSB7IH0KKyAgICBleHBsaWNp
dCBCYXNlQ2hlY2thYmxlSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQsIFR5cGUg
dHlwZSkgOiBJbnB1dFR5cGUoZWxlbWVudCwgdHlwZSkgeyB9CiAgICAgU2hvdWxkQ2FsbEJhc2VF
dmVudEhhbmRsZXIgaGFuZGxlS2V5ZG93bkV2ZW50KEtleWJvYXJkRXZlbnQmKSBvdmVycmlkZTsK
ICAgICB2b2lkIGZpcmVJbnB1dEFuZENoYW5nZUV2ZW50cygpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0Jhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0Jhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlLmgKaW5kZXggZmU4NzEz
Y2JhNzBjYWY5YzczMGM0M2Y3MjMwZDQ3MTkyZDA2MzM0Mi4uOGRhMTI4Yjk2MGQxZjM1MmUwMmFk
MjIwOWJlYzI2YzM0OTk2MDg5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNl
Q2xpY2thYmxlV2l0aEtleUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFz
ZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUuaApAQCAtNDMsNyArNDMsNyBAQCBjbGFzcyBCYXNl
Q2xpY2thYmxlV2l0aEtleUlucHV0VHlwZSA6IHB1YmxpYyBJbnB1dFR5cGUgewogICAgIHN0YXRp
YyBib29sIGFjY2Vzc0tleUFjdGlvbihIVE1MSW5wdXRFbGVtZW50JiwgYm9vbCBzZW5kTW91c2VF
dmVudHMpOwogICAgIAogcHJvdGVjdGVkOgotICAgIGV4cGxpY2l0IEJhc2VDbGlja2FibGVXaXRo
S2V5SW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogSW5wdXRUeXBlKGVsZW1l
bnQpIHsgfQorICAgIGV4cGxpY2l0IEJhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlKEhUTUxJ
bnB1dEVsZW1lbnQmIGVsZW1lbnQsIFR5cGUgdHlwZSkgOiBJbnB1dFR5cGUoZWxlbWVudCwgdHlw
ZSkgeyB9CiAKIHByaXZhdGU6CiAgICAgU2hvdWxkQ2FsbEJhc2VFdmVudEhhbmRsZXIgaGFuZGxl
S2V5ZG93bkV2ZW50KEtleWJvYXJkRXZlbnQmKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcAppbmRleCBiYTUzNzBmMmYwODQz
ZDU0YjY2MWEwYTM4MjdlODI0MzI2NmY1MTUwLi40YTJiOTc1ZjliYjExNGI0MDAzMGVlYzY0Y2Fi
YWY5YzYxZDEwZjcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5k
VGltZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRp
bWVJbnB1dFR5cGUuY3BwCkBAIC0xNjcsNyArMTY3LDcgQEAgRGVjaW1hbCBCYXNlRGF0ZUFuZFRp
bWVJbnB1dFR5cGU6OmRlZmF1bHRWYWx1ZUZvclN0ZXBVcCgpIGNvbnN0CiAgICAgcmV0dXJuIERl
Y2ltYWw6OmZyb21Eb3VibGUobXMgKyAob2Zmc2V0ICogbXNQZXJNaW51dGUpKTsKIH0KIAotYm9v
bCBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmlzU3RlcHBhYmxlKCkgY29uc3QKK2Jvb2wgQmFz
ZURhdGVBbmRUaW1lSW5wdXRUeXBlOjppc1N0ZXBwYWJsZVNsb3coKSBjb25zdAogewogICAgIHJl
dHVybiB0cnVlOwogfQpAQCAtMzA3LDcgKzMwNyw3IEBAIHZvaWQgQmFzZURhdGVBbmRUaW1lSW5w
dXRUeXBlOjpoYW5kbGVET01BY3RpdmF0ZUV2ZW50KEV2ZW50JikKICAgICB9CiB9CiAKLXZvaWQg
QmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKK3ZvaWQgQmFz
ZURhdGVBbmRUaW1lSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlQW5kVXBkYXRlSW5uZXJU
ZXh0RWxlbWVudEVkaXRhYmlsaXR5KENvbnRhaW5lck5vZGU6OkNoaWxkQ2hhbmdlOjpTb3VyY2Us
IGJvb2wpCiB7CiAgICAgQVNTRVJUKGVsZW1lbnQoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oCmluZGV4IDk5NDc4NDM1OThiMWVlOWE4MjI0
YWM1OWEyZWFhZWVmMTE4Nzc0NTUuLmUwOTI2NDliZDAyYzZjMWNiODNjNzI0NDQ2ZDg2MDBiMDk5
NDBjOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5w
dXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5
cGUuaApAQCAtNTgsNyArNTgsNyBAQCBjbGFzcyBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUgOiBw
dWJsaWMgSW5wdXRUeXBlLCBwcml2YXRlIERhdGVUaW1lQ2hvb3NlckNsaWVudAogICAgICAgICBI
YXNNZXJpZGllbSA9IDEgPDwgNywKICAgICB9OwogCi0gICAgQmFzZURhdGVBbmRUaW1lSW5wdXRU
eXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogSW5wdXRUeXBlKGVsZW1lbnQpIHsgfQor
ICAgIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50LCBU
eXBlIHR5cGUpIDogSW5wdXRUeXBlKGVsZW1lbnQsIHR5cGUpIHsgfQogICAgIH5CYXNlRGF0ZUFu
ZFRpbWVJbnB1dFR5cGUoKTsKIAogICAgIERlY2ltYWwgcGFyc2VUb051bWJlcihjb25zdCBTdHJp
bmcmLCBjb25zdCBEZWNpbWFsJikgY29uc3Qgb3ZlcnJpZGU7CkBAIC02Nyw2ICs2Nyw5IEBAIGNs
YXNzIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZSA6IHB1YmxpYyBJbnB1dFR5cGUsIHByaXZhdGUg
RGF0ZVRpbWVDaG9vc2VyQ2xpZW50CiAKICAgICBib29sIHNob3VsZEhhdmVTZWNvbmRGaWVsZChj
b25zdCBEYXRlQ29tcG9uZW50cyYpIGNvbnN0OwogICAgIGJvb2wgc2hvdWxkSGF2ZU1pbGxpc2Vj
b25kRmllbGQoY29uc3QgRGF0ZUNvbXBvbmVudHMmKSBjb25zdDsKKyAgICBib29sIHR5cGVNaXNt
YXRjaEZvcihjb25zdCBTdHJpbmcmKSBjb25zdCBmaW5hbDsKKyAgICBib29sIHR5cGVNaXNtYXRj
aCgpIGNvbnN0IGZpbmFsOworICAgIGJvb2wgdmFsdWVNaXNzaW5nKGNvbnN0IFN0cmluZyYpIGNv
bnN0IGZpbmFsOwogCiBwcml2YXRlOgogICAgIGNsYXNzIERhdGVUaW1lRm9ybWF0VmFsaWRhdG9y
IGZpbmFsIDogcHVibGljIERhdGVUaW1lRm9ybWF0OjpUb2tlbkhhbmRsZXIgewpAQCAtOTYsMTEg
Kzk5LDggQEAgY2xhc3MgQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlIDogcHVibGljIElucHV0VHlw
ZSwgcHJpdmF0ZSBEYXRlVGltZUNob29zZXJDbGllbnQKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBz
ZXRWYWx1ZUFzRGF0ZShkb3VibGUpIGNvbnN0IG92ZXJyaWRlOwogICAgIGRvdWJsZSB2YWx1ZUFz
RG91YmxlKCkgY29uc3QgZmluYWw7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0VmFsdWVBc0Rl
Y2ltYWwoY29uc3QgRGVjaW1hbCYsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IpIGNvbnN0IGZpbmFs
OwotICAgIGJvb2wgdHlwZU1pc21hdGNoRm9yKGNvbnN0IFN0cmluZyYpIGNvbnN0IGZpbmFsOwot
ICAgIGJvb2wgdHlwZU1pc21hdGNoKCkgY29uc3QgZmluYWw7Ci0gICAgYm9vbCB2YWx1ZU1pc3Np
bmcoY29uc3QgU3RyaW5nJikgY29uc3QgZmluYWw7CiAgICAgRGVjaW1hbCBkZWZhdWx0VmFsdWVG
b3JTdGVwVXAoKSBjb25zdCBvdmVycmlkZTsKLSAgICBib29sIGlzU3RlcHBhYmxlKCkgY29uc3Qg
ZmluYWw7CisgICAgYm9vbCBpc1N0ZXBwYWJsZVNsb3coKSBjb25zdCBmaW5hbDsKICAgICBTdHJp
bmcgbG9jYWxpemVWYWx1ZShjb25zdCBTdHJpbmcmKSBjb25zdCBmaW5hbDsKICAgICBib29sIHN1
cHBvcnRzUmVhZE9ubHkoKSBjb25zdCBmaW5hbDsKICAgICBib29sIHNob3VsZFJlc3BlY3RMaXN0
QXR0cmlidXRlKCkgZmluYWw7CkBAIC0xMDgsNyArMTA4LDcgQEAgY2xhc3MgQmFzZURhdGVBbmRU
aW1lSW5wdXRUeXBlIDogcHVibGljIElucHV0VHlwZSwgcHJpdmF0ZSBEYXRlVGltZUNob29zZXJD
bGllbnQKICAgICBib29sIGlzTW91c2VGb2N1c2FibGUoKSBjb25zdCBmaW5hbDsKIAogICAgIHZv
aWQgaGFuZGxlRE9NQWN0aXZhdGVFdmVudChFdmVudCYpIG92ZXJyaWRlOwotICAgIHZvaWQgY3Jl
YXRlU2hhZG93U3VidHJlZSgpIGZpbmFsOworICAgIHZvaWQgY3JlYXRlU2hhZG93U3VidHJlZUFu
ZFVwZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0YWJpbGl0eShDb250YWluZXJOb2RlOjpDaGlsZENo
YW5nZTo6U291cmNlLCBib29sKSBmaW5hbDsKICAgICB2b2lkIGRlc3Ryb3lTaGFkb3dTdWJ0cmVl
KCkgZmluYWw7CiAgICAgdm9pZCB1cGRhdGVJbm5lclRleHRWYWx1ZSgpIGZpbmFsOwogICAgIGJv
b2wgaGFzQ3VzdG9tRm9jdXNMb2dpYygpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9CYXNlVGV4dElucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9C
YXNlVGV4dElucHV0VHlwZS5oCmluZGV4IDM4ZDNhZTVmZTU3YzhkNDI4M2JkM2UyODEzMGZlNDk1
ZDIyZWYzMDYuLmI1NmM2ODM5ODNjNDdjNTk5ODRlYmVhNjI0N2MzYTljN2FlNjg1YzggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZVRleHRJbnB1dFR5cGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0Jhc2VUZXh0SW5wdXRUeXBlLmgKQEAgLTM4LDkgKzM4LDggQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogLy8gVGhleSBzdXBwb3J0IG1heGxlbmd0aCwgc2VsZWN0aW9uIGZ1
bmN0aW9ucywgYW5kIHNvIG9uLgogY2xhc3MgQmFzZVRleHRJbnB1dFR5cGUgOiBwdWJsaWMgVGV4
dEZpZWxkSW5wdXRUeXBlIHsKIHByb3RlY3RlZDoKLSAgICBleHBsaWNpdCBCYXNlVGV4dElucHV0
VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IFRleHRGaWVsZElucHV0VHlwZShlbGVt
ZW50KSB7IH0KKyAgICBleHBsaWNpdCBCYXNlVGV4dElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50
JiBlbGVtZW50LCBUeXBlIHR5cGUpIDogVGV4dEZpZWxkSW5wdXRUeXBlKGVsZW1lbnQsIHR5cGUp
IHsgfQogCi1wcml2YXRlOgogICAgIGJvb2wgaXNUZXh0VHlwZSgpIGNvbnN0IG92ZXJyaWRlOwog
ICAgIGJvb2wgcGF0dGVybk1pc21hdGNoKGNvbnN0IFN0cmluZyYpIGNvbnN0IG92ZXJyaWRlOwog
ICAgIGJvb2wgc3VwcG9ydHNQbGFjZWhvbGRlcigpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CdXR0b25JbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvQnV0dG9uSW5wdXRUeXBlLmgKaW5kZXggODYxZjk1YTY5YzgwYTgxOGNjNDBhOTFiMTU4
ZmQwMDFhNzdkMzA0OC4uM2Y5MjdhMWFkYjRkOWM4ZDZiNWFiNjlmYTI3YjNjYTIwNDRiNmJmZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CdXR0b25JbnB1dFR5cGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0J1dHRvbklucHV0VHlwZS5oCkBAIC0zNSw4ICszNSw5IEBACiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEJ1dHRvbklucHV0VHlwZSBmaW5hbCA6IHB1Ymxp
YyBCYXNlQnV0dG9uSW5wdXRUeXBlIHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEb3duY2FzdGVk
VHlwZT4gZnJpZW5kIGJvb2wgaXNJbnZhbGlkSW5wdXRUeXBlKGNvbnN0IElucHV0VHlwZSYsIGNv
bnN0IFN0cmluZyYpOwogcHVibGljOgotICAgIGV4cGxpY2l0IEJ1dHRvbklucHV0VHlwZShIVE1M
SW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VCdXR0b25JbnB1dFR5cGUoZWxlbWVudCkgeyB9
CisgICAgZXhwbGljaXQgQnV0dG9uSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQp
IDogQmFzZUJ1dHRvbklucHV0VHlwZShlbGVtZW50LCBUeXBlOjpCdXR0b24pIHsgfQogCiBwcml2
YXRlOgogICAgIGNvbnN0IEF0b21TdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IG92ZXJy
aWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9DaGVja2JveElucHV0VHlwZS5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9DaGVja2JveElucHV0VHlwZS5oCmluZGV4IGViMTFiMWIx
NzZlYmI1YzUzMDM1NzQ0YzU1ZGVjNDAxMzA3M2YxODAuLjk1MWU5YmI4NGI0ZDA2Mzk2MTQ4NGE4
OTBlNzE5ODI4NjczOGJhZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ2hlY2ti
b3hJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NoZWNrYm94SW5wdXRUeXBl
LmgKQEAgLTM1LDggKzM1LDkgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ2hlY2ti
b3hJbnB1dFR5cGUgZmluYWwgOiBwdWJsaWMgQmFzZUNoZWNrYWJsZUlucHV0VHlwZSB7CisgICAg
dGVtcGxhdGU8dHlwZW5hbWUgRG93bmNhc3RlZFR5cGU+IGZyaWVuZCBib29sIGlzSW52YWxpZElu
cHV0VHlwZShjb25zdCBJbnB1dFR5cGUmLCBjb25zdCBTdHJpbmcmKTsKIHB1YmxpYzoKLSAgICBl
eHBsaWNpdCBDaGVja2JveElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJh
c2VDaGVja2FibGVJbnB1dFR5cGUoZWxlbWVudCkgeyB9CisgICAgZXhwbGljaXQgQ2hlY2tib3hJ
bnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlQ2hlY2thYmxlSW5wdXRU
eXBlKGVsZW1lbnQsIFR5cGU6OkNoZWNrYm94KSB7IH0KIAogcHJpdmF0ZToKICAgICBjb25zdCBB
dG9tU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9Db2xvcklucHV0VHlwZS5jcHAKaW5kZXggNjk1NjRkMzBkZDgzZjZmNTk4NmE1OGFiNDIwZjQ4
ZWRkMzYwMDE4Yy4uNDE0ZmE0ZjZkMjA5M2ZkZWU5NjEyNTcwMjBlMzhiNWJmMDBlYzVjOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAKQEAgLTEzOSw3ICsxMzksNyBAQCBD
b2xvciBDb2xvcklucHV0VHlwZTo6dmFsdWVBc0NvbG9yKCkgY29uc3QKICAgICByZXR1cm4gcGFy
c2VTaW1wbGVDb2xvclZhbHVlKGVsZW1lbnQoKS0+dmFsdWUoKSkudmFsdWUoKTsKIH0KIAotdm9p
ZCBDb2xvcklucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCit2b2lkIENvbG9ySW5wdXRU
eXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlQW5kVXBkYXRlSW5uZXJUZXh0RWxlbWVudEVkaXRhYmls
aXR5KENvbnRhaW5lck5vZGU6OkNoaWxkQ2hhbmdlOjpTb3VyY2UsIGJvb2wpCiB7CiAgICAgQVNT
RVJUKGVsZW1lbnQoKSk7CiAgICAgQVNTRVJUKGVsZW1lbnQoKS0+c2hhZG93Um9vdCgpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuaAppbmRleCBmNzRkNzZmMWI5ZmY1MDg0MjZiMjE0
NGExZmE1YThiYTI0MGNlNzBiLi40M2VhOWYwOGY5MjEwZWRiNDM5NGUzMmQzYjI1ZTgxODVkYWE4
MDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5oCkBAIC00MCw4ICs0MCw5IEBA
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENvbG9ySW5wdXRUeXBlIGZpbmFsIDogcHVi
bGljIEJhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlLCBwcml2YXRlIENvbG9yQ2hvb3NlckNs
aWVudCB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRG93bmNhc3RlZFR5cGU+IGZyaWVuZCBib29s
IGlzSW52YWxpZElucHV0VHlwZShjb25zdCBJbnB1dFR5cGUmLCBjb25zdCBTdHJpbmcmKTsKIHB1
YmxpYzoKLSAgICBleHBsaWNpdCBDb2xvcklucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVt
ZW50KSA6IEJhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlKGVsZW1lbnQpIHsgfQorICAgIGV4
cGxpY2l0IENvbG9ySW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFzZUNs
aWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUoZWxlbWVudCwgVHlwZTo6Q29sb3IpIHsgfQogICAgIHZp
cnR1YWwgfkNvbG9ySW5wdXRUeXBlKCk7CiAKIHByaXZhdGU6CkBAIC01Nyw3ICs1OCw3IEBAIGNs
YXNzIENvbG9ySW5wdXRUeXBlIGZpbmFsIDogcHVibGljIEJhc2VDbGlja2FibGVXaXRoS2V5SW5w
dXRUeXBlLCBwcml2YXRlIENvbG9yCiAgICAgYm9vbCBzdXBwb3J0c1JlcXVpcmVkKCkgY29uc3Qg
ZmluYWw7CiAgICAgU3RyaW5nIGZhbGxiYWNrVmFsdWUoKSBjb25zdCBmaW5hbDsKICAgICBTdHJp
bmcgc2FuaXRpemVWYWx1ZShjb25zdCBTdHJpbmcmKSBjb25zdCBmaW5hbDsKLSAgICB2b2lkIGNy
ZWF0ZVNoYWRvd1N1YnRyZWUoKSBmaW5hbDsKKyAgICB2b2lkIGNyZWF0ZVNoYWRvd1N1YnRyZWVB
bmRVcGRhdGVJbm5lclRleHRFbGVtZW50RWRpdGFiaWxpdHkoQ29udGFpbmVyTm9kZTo6Q2hpbGRD
aGFuZ2U6OlNvdXJjZSwgYm9vbCkgZmluYWw7CiAgICAgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJp
bmcmLCBib29sIHZhbHVlQ2hhbmdlZCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikgZmluYWw7CiAg
ICAgdm9pZCBoYW5kbGVET01BY3RpdmF0ZUV2ZW50KEV2ZW50JikgZmluYWw7CiAgICAgdm9pZCBk
ZXRhY2goKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0
VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuY3BwCmluZGV4IDkx
ZTExMDY5MzMxYjI3ZDdiNjVkMzQ0ZDNhMDQyOTM3MTZhOWJlZDcuLjJmZjM3N2NmYjMwYzU3Mjdi
MjY1NGE3M2I1ZGZlYTdiNmQyMmU3MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
RGF0ZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlSW5wdXRUeXBl
LmNwcApAQCAtNTAsNyArNTAsNyBAQCBzdGF0aWMgY29uc3QgaW50IGRhdGVTdGVwU2NhbGVGYWN0
b3IgPSA4NjQwMDAwMDsKIHN0YXRpYyBjb25zdCBTdGVwUmFuZ2U6OlN0ZXBEZXNjcmlwdGlvbiBk
YXRlU3RlcERlc2NyaXB0aW9uIHsgZGF0ZURlZmF1bHRTdGVwLCBkYXRlRGVmYXVsdFN0ZXBCYXNl
LCBkYXRlU3RlcFNjYWxlRmFjdG9yLCBTdGVwUmFuZ2U6OlBhcnNlZFN0ZXBWYWx1ZVNob3VsZEJl
SW50ZWdlciB9OwogCiBEYXRlSW5wdXRUeXBlOjpEYXRlSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1l
bnQmIGVsZW1lbnQpCi0gICAgOiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUoZWxlbWVudCkKKyAg
ICA6IEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZShlbGVtZW50LCBUeXBlOjpEYXRlKQogewogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5oCmluZGV4IDQxNzkxYjg1ZjQ5NjVhMmQ1NGQ2
ZWZkYzVmYWViZmQxZmZmY2RhMTIuLmQ2NjEyMWUyN2I0NjQ2MTliMjA4ZDFjOGZkMmIzZDM3NWZk
M2JkNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5oCkBAIC0zNyw2ICszNyw3IEBA
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERhdGVJbnB1dFR5cGUgZmluYWwgOiBwdWJs
aWMgQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlIHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEb3du
Y2FzdGVkVHlwZT4gZnJpZW5kIGJvb2wgaXNJbnZhbGlkSW5wdXRUeXBlKGNvbnN0IElucHV0VHlw
ZSYsIGNvbnN0IFN0cmluZyYpOwogcHVibGljOgogICAgIGV4cGxpY2l0IERhdGVJbnB1dFR5cGUo
SFRNTElucHV0RWxlbWVudCYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Rh
dGVUaW1lTG9jYWxJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2Nh
bElucHV0VHlwZS5oCmluZGV4IDA2ZmY2OTdjNzc3NjI0MDJmM2U2NmJkNzI4MDU1Y2Y1MjdlMWZm
ZGMuLjlmNTRlOTAwZTM3M2M1OGE2MjBjZDM5YjdhOWEzNDg1OTljZjZjZjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5oCkBAIC0zNyw5ICszNywxMCBA
QAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEYXRlVGltZUxvY2FsSW5wdXRUeXBlIGZp
bmFsIDogcHVibGljIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZSB7CisgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgRG93bmNhc3RlZFR5cGU+IGZyaWVuZCBib29sIGlzSW52YWxpZElucHV0VHlwZShjb25z
dCBJbnB1dFR5cGUmLCBjb25zdCBTdHJpbmcmKTsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBEYXRl
VGltZUxvY2FsSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCi0gICAgICAgIDog
QmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlKGVsZW1lbnQpCisgICAgICAgIDogQmFzZURhdGVBbmRU
aW1lSW5wdXRUeXBlKGVsZW1lbnQsIFR5cGU6OkRhdGVUaW1lTG9jYWwpCiAgICAgewogICAgIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9FbWFpbElucHV0VHlwZS5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9FbWFpbElucHV0VHlwZS5oCmluZGV4IDAyYWQzZGIzYTVlNjUxZDdh
MTc5ZjM5NGE3NjEyOTlhZjI5MDFjZDUuLjBiYzUxZGI0MDYxMWMxYjIzYTE4YThhYTU5YjZlMjI0
NjI5MWM4MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRW1haWxJbnB1dFR5cGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0VtYWlsSW5wdXRUeXBlLmgKQEAgLTM1LDggKzM1
LDkgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRW1haWxJbnB1dFR5cGUgZmluYWwg
OiBwdWJsaWMgQmFzZVRleHRJbnB1dFR5cGUgeworICAgIHRlbXBsYXRlPHR5cGVuYW1lIERvd25j
YXN0ZWRUeXBlPiBmcmllbmQgYm9vbCBpc0ludmFsaWRJbnB1dFR5cGUoY29uc3QgSW5wdXRUeXBl
JiwgY29uc3QgU3RyaW5nJik7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgRW1haWxJbnB1dFR5cGUo
SFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlVGV4dElucHV0VHlwZShlbGVtZW50KSB7
IH0KKyAgICBleHBsaWNpdCBFbWFpbElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50
KSA6IEJhc2VUZXh0SW5wdXRUeXBlKGVsZW1lbnQsIFR5cGU6OkVtYWlsKSB7IH0KIAogcHJpdmF0
ZToKICAgICBjb25zdCBBdG9tU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBvdmVycmlk
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCmluZGV4IDUzNDE4ZTRhYWQ4ZGI1
MDM4MDE2YzdhOGE0MzA3M2QwY2UwZThiMmQuLmZjNTkxY2UxY2MwOGRlNzJkOTZlMDZmMWJhMGNj
MDRiYzk2YTQxM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlw
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcApAQCAtMTA2
LDcgKzEwNiw3IEBAIFVwbG9hZEJ1dHRvbkVsZW1lbnQ6OlVwbG9hZEJ1dHRvbkVsZW1lbnQoRG9j
dW1lbnQmIGRvY3VtZW50KQogfQogCiBGaWxlSW5wdXRUeXBlOjpGaWxlSW5wdXRUeXBlKEhUTUxJ
bnB1dEVsZW1lbnQmIGVsZW1lbnQpCi0gICAgOiBCYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlw
ZShlbGVtZW50KQorICAgIDogQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUoZWxlbWVudCwg
VHlwZTo6RmlsZSkKICAgICAsIG1fZmlsZUxpc3QoRmlsZUxpc3Q6OmNyZWF0ZSgpKQogewogfQpA
QCAtMjc4LDcgKzI3OCw3IEBAIGJvb2wgRmlsZUlucHV0VHlwZTo6aXNGaWxlVXBsb2FkKCkgY29u
c3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBGaWxlSW5wdXRUeXBlOjpjcmVhdGVTaGFk
b3dTdWJ0cmVlKCkKK3ZvaWQgRmlsZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZUFuZFVw
ZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0YWJpbGl0eShDb250YWluZXJOb2RlOjpDaGlsZENoYW5n
ZTo6U291cmNlLCBib29sKQogewogICAgIEFTU0VSVChlbGVtZW50KCkpOwogICAgIEFTU0VSVChl
bGVtZW50KCktPnNoYWRvd1Jvb3QoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0ZpbGVJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5oCmlu
ZGV4IGI0MmY5MDRjYzE1NmJjYmI1M2IyN2M3N2ZkZmE0NDI5NjhmMmMyMmIuLmY5ZDJjOGU0MmUz
YTVjOWU0ZTcxNmM3MDIyMjRiM2Y3NWEwMzZkOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvRmlsZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0
VHlwZS5oCkBAIC00NSw2ICs0NSw3IEBAIGNsYXNzIEZpbGVMaXN0OwogY2xhc3MgSWNvbjsKIAog
Y2xhc3MgRmlsZUlucHV0VHlwZSBmaW5hbCA6IHB1YmxpYyBCYXNlQ2xpY2thYmxlV2l0aEtleUlu
cHV0VHlwZSwgcHJpdmF0ZSBGaWxlQ2hvb3NlckNsaWVudCwgcHJpdmF0ZSBGaWxlSWNvbkxvYWRl
ckNsaWVudCwgcHVibGljIENhbk1ha2VXZWFrUHRyPEZpbGVJbnB1dFR5cGU+IHsKKyAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBEb3duY2FzdGVkVHlwZT4gZnJpZW5kIGJvb2wgaXNJbnZhbGlkSW5wdXRU
eXBlKGNvbnN0IElucHV0VHlwZSYsIGNvbnN0IFN0cmluZyYpOwogcHVibGljOgogICAgIGV4cGxp
Y2l0IEZpbGVJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYpOwogICAgIHZpcnR1YWwgfkZpbGVJ
bnB1dFR5cGUoKTsKQEAgLTc3LDcgKzc4LDcgQEAgY2xhc3MgRmlsZUlucHV0VHlwZSBmaW5hbCA6
IHB1YmxpYyBCYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlwZSwgcHJpdmF0ZSBGaWxlQ2gKIAog
ICAgIEljb24qIGljb24oKSBjb25zdCBmaW5hbDsKICAgICBib29sIGlzRmlsZVVwbG9hZCgpIGNv
bnN0IGZpbmFsOwotICAgIHZvaWQgY3JlYXRlU2hhZG93U3VidHJlZSgpIGZpbmFsOworICAgIHZv
aWQgY3JlYXRlU2hhZG93U3VidHJlZUFuZFVwZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0YWJpbGl0
eShDb250YWluZXJOb2RlOjpDaGlsZENoYW5nZTo6U291cmNlLCBib29sKSBmaW5hbDsKICAgICB2
b2lkIGRpc2FibGVkU3RhdGVDaGFuZ2VkKCkgZmluYWw7CiAgICAgdm9pZCBhdHRyaWJ1dGVDaGFu
Z2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBmaW5hbDsKICAgICBTdHJpbmcgZGVmYXVsdFRvb2xU
aXAoKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElu
cHV0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3Bw
CmluZGV4IDM5NGQ5NTYyNTU5NmI5NjY2NjgyM2EzNjhlNzFhZDVjM2MyZTliOTIuLmY1ZDQ5MWI2
YzVkNzRjMDQwMDJlMjU5ZTFkNWQ3NzQyMWE4NjAwNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MSW5wdXRFbGVtZW50LmNwcApAQCAtMTU4LDggKzE1OCw3IEBAIEhUTUxJbWFnZUxvYWRlciYg
SFRNTElucHV0RWxlbWVudDo6ZW5zdXJlSW1hZ2VMb2FkZXIoKQogdm9pZCBIVE1MSW5wdXRFbGVt
ZW50OjpkaWRBZGRVc2VyQWdlbnRTaGFkb3dSb290KFNoYWRvd1Jvb3QmKQogewogICAgIFJlZjxJ
bnB1dFR5cGU+IHByb3RlY3RlZElucHV0VHlwZSgqbV9pbnB1dFR5cGUpOwotICAgIHByb3RlY3Rl
ZElucHV0VHlwZS0+Y3JlYXRlU2hhZG93U3VidHJlZSgpOwotICAgIHVwZGF0ZUlubmVyVGV4dEVs
ZW1lbnRFZGl0YWJpbGl0eSgpOworICAgIHByb3RlY3RlZElucHV0VHlwZS0+Y3JlYXRlU2hhZG93
U3VidHJlZUFuZFVwZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0YWJpbGl0eShtX3BhcnNpbmdJblBy
b2dyZXNzID8gQ2hpbGRDaGFuZ2U6OlNvdXJjZTo6UGFyc2VyIDogQ2hpbGRDaGFuZ2U6OlNvdXJj
ZTo6QVBJLCBpc0lubmVyVGV4dEVsZW1lbnRFZGl0YWJsZSgpKTsKIH0KIAogSFRNTElucHV0RWxl
bWVudDo6fkhUTUxJbnB1dEVsZW1lbnQoKQpAQCAtMzkwLDkgKzM4OSw3IEBAIGJvb2wgSFRNTElu
cHV0RWxlbWVudDo6aXNWYWxpZCgpIGNvbnN0CiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAg
U3RyaW5nIHZhbHVlID0gdGhpcy0+dmFsdWUoKTsKLSAgICBib29sIHNvbWVFcnJvciA9IG1faW5w
dXRUeXBlLT50eXBlTWlzbWF0Y2goKSB8fCBtX2lucHV0VHlwZS0+c3RlcE1pc21hdGNoKHZhbHVl
KSB8fCBtX2lucHV0VHlwZS0+cmFuZ2VVbmRlcmZsb3codmFsdWUpIHx8IG1faW5wdXRUeXBlLT5y
YW5nZU92ZXJmbG93KHZhbHVlKQotICAgICAgICB8fCB0b29TaG9ydCh2YWx1ZSwgQ2hlY2tEaXJ0
eUZsYWcpIHx8IHRvb0xvbmcodmFsdWUsIENoZWNrRGlydHlGbGFnKSB8fCBtX2lucHV0VHlwZS0+
cGF0dGVybk1pc21hdGNoKHZhbHVlKSB8fCBtX2lucHV0VHlwZS0+dmFsdWVNaXNzaW5nKHZhbHVl
KQotICAgICAgICB8fCBtX2lucHV0VHlwZS0+aGFzQmFkSW5wdXQoKSB8fCBjdXN0b21FcnJvcigp
OworICAgIGJvb2wgc29tZUVycm9yID0gbV9pbnB1dFR5cGUtPmlzSW52YWxpZCh2YWx1ZSkgfHwg
dG9vU2hvcnQodmFsdWUsIENoZWNrRGlydHlGbGFnKSB8fCB0b29Mb25nKHZhbHVlLCBDaGVja0Rp
cnR5RmxhZykgfHwgY3VzdG9tRXJyb3IoKTsKICAgICByZXR1cm4gIXNvbWVFcnJvcjsKIH0KIApA
QCAtNTY0LDggKzU2MSw3IEBAIHZvaWQgSFRNTElucHV0RWxlbWVudDo6dXBkYXRlVHlwZSgpCiAg
ICAgbV9pbnB1dFR5cGUtPmRldGFjaEZyb21FbGVtZW50KCk7CiAKICAgICBtX2lucHV0VHlwZSA9
IFdURk1vdmUobmV3VHlwZSk7Ci0gICAgbV9pbnB1dFR5cGUtPmNyZWF0ZVNoYWRvd1N1YnRyZWUo
KTsKLSAgICB1cGRhdGVJbm5lclRleHRFbGVtZW50RWRpdGFiaWxpdHkoKTsKKyAgICBtX2lucHV0
VHlwZS0+Y3JlYXRlU2hhZG93U3VidHJlZUFuZFVwZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0YWJp
bGl0eShtX3BhcnNpbmdJblByb2dyZXNzID8gQ2hpbGRDaGFuZ2U6OlNvdXJjZTo6UGFyc2VyIDog
Q2hpbGRDaGFuZ2U6OlNvdXJjZTo6QVBJLCBpc0lubmVyVGV4dEVsZW1lbnRFZGl0YWJsZSgpKTsK
IAogICAgIHNldE5lZWRzV2lsbFZhbGlkYXRlQ2hlY2soKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAKaW5kZXggNWVlNjU1NmJmZWNmNmZjN2FmZTNhN2Q3
M2M3MDM5OTQwNDdjMmNjMS4uZjM2MjRhY2JmMzYzOWFhM2QyZGY0MjdjYWYyYzBjZjM5ZmJmMjk1
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwCkBAIC0x
MTAsOCArMTEwLDcgQEAgUmVmPEhUTUxUZXh0QXJlYUVsZW1lbnQ+IEhUTUxUZXh0QXJlYUVsZW1l
bnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiAKIHZvaWQgSFRNTFRleHRBcmVhRWxlbWVu
dDo6ZGlkQWRkVXNlckFnZW50U2hhZG93Um9vdChTaGFkb3dSb290JiByb290KQogewotICAgIHJv
b3QuYXBwZW5kQ2hpbGQoVGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50OjpjcmVhdGUoZG9jdW1l
bnQoKSkpOwotICAgIHVwZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0YWJpbGl0eSgpOworICAgIHJv
b3QuYXBwZW5kQ2hpbGQoVGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50OjpjcmVhdGUoZG9jdW1l
bnQoKSwgaXNJbm5lclRleHRFbGVtZW50RWRpdGFibGUoKSkpOwogfQogCiBjb25zdCBBdG9tU3Ry
aW5nJiBIVE1MVGV4dEFyZWFFbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUoKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRl
eCAwNWIwZmMwZDc3OTBiYTEwYTE2NGVjYzliYmYyY2Y2MjkxYjMzOGZiLi44MmJmMTlhZTgyODY3
OGQ0NGVhZmNkNjQ3OThlN2UwYzM2MGVmNjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcApAQCAtNTQwLDEyICs1NDAsOCBAQCBi
b29sIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojppc0lubmVyVGV4dEVsZW1lbnRFZGl0YWJs
ZSgpIGNvbnN0CiAKIHZvaWQgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnVwZGF0ZUlubmVy
VGV4dEVsZW1lbnRFZGl0YWJpbGl0eSgpCiB7Ci0gICAgaWYgKGF1dG8gaW5uZXJUZXh0ID0gaW5u
ZXJUZXh0RWxlbWVudCgpKSB7Ci0gICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQXRvbVN0cmluZz4gcGxhaW5UZXh0T25seU5hbWUoInBsYWludGV4dC1vbmx5Iiwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgICAgICBzdGF0aWMgTWFpblRo
cmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGZhbHNlTmFtZSgiZmFsc2UiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgICAgIGNvbnN0IGF1dG8mIHZh
bHVlID0gaXNJbm5lclRleHRFbGVtZW50RWRpdGFibGUoKSA/IHBsYWluVGV4dE9ubHlOYW1lLmdl
dCgpIDogZmFsc2VOYW1lLmdldCgpOwotICAgICAgICBpbm5lclRleHQtPnNldEF0dHJpYnV0ZVdp
dGhvdXRTeW5jaHJvbml6YXRpb24oY29udGVudGVkaXRhYmxlQXR0ciwgdmFsdWUpOwotICAgIH0K
KyAgICBpZiAoYXV0byBpbm5lclRleHQgPSBpbm5lclRleHRFbGVtZW50KCkpCisgICAgICAgIGlu
bmVyVGV4dC0+dXBkYXRlSW5uZXJUZXh0RWxlbWVudEVkaXRhYmlsaXR5KGlzSW5uZXJUZXh0RWxl
bWVudEVkaXRhYmxlKCkpOwogfQogCiBib29sIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojps
YXN0Q2hhbmdlV2FzVXNlckVkaXQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IaWRkZW5JbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSGlkZGVuSW5wdXRU
eXBlLmgKaW5kZXggNjgzYzZiZDc1YTJiMmFhYTZjZmNjMDZmZWM4ZDZkMDI2NjJkZDFhMS4uNzk5
ZDkxZGVlMmIwYzhjYzdhMGEzOTg1NTQ3ZThkMmU3Njk3NTlkNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hpZGRlbklucHV0VHlwZS5oCkBAIC0zNSw4ICszNSw5IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIEhpZGRlbklucHV0VHlwZSBmaW5hbCA6IHB1YmxpYyBJbnB1dFR5cGUgeworICAg
IHRlbXBsYXRlPHR5cGVuYW1lIERvd25jYXN0ZWRUeXBlPiBmcmllbmQgYm9vbCBpc0ludmFsaWRJ
bnB1dFR5cGUoY29uc3QgSW5wdXRUeXBlJiwgY29uc3QgU3RyaW5nJik7CiBwdWJsaWM6Ci0gICAg
ZXhwbGljaXQgSGlkZGVuSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogSW5w
dXRUeXBlKGVsZW1lbnQpIHsgfQorICAgIGV4cGxpY2l0IEhpZGRlbklucHV0VHlwZShIVE1MSW5w
dXRFbGVtZW50JiBlbGVtZW50KSA6IElucHV0VHlwZShlbGVtZW50LCBUeXBlOjpIaWRkZW4pIHsg
fQogCiBwcml2YXRlOgogICAgIGNvbnN0IEF0b21TdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNv
bnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0
VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmNwcAppbmRleCA1
NjE1YjQ0NmRmNmFkMTAyZDg1MTg2ZTcxODIwZmQyZjI0YmVhMGI1Li45ZTg2YTJjYzdmZTc3OGVi
OGUzMDhmNGQ1ZjJmNzdlNzdmZGY4Y2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0ltYWdlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRU
eXBlLmNwcApAQCAtNDAsNyArNDAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiB1c2luZyBuYW1l
c3BhY2UgSFRNTE5hbWVzOwogCiBJbWFnZUlucHV0VHlwZTo6SW1hZ2VJbnB1dFR5cGUoSFRNTElu
cHV0RWxlbWVudCYgZWxlbWVudCkKLSAgICA6IEJhc2VCdXR0b25JbnB1dFR5cGUoZWxlbWVudCkK
KyAgICA6IEJhc2VCdXR0b25JbnB1dFR5cGUoZWxlbWVudCwgVHlwZTo6SW1hZ2UpCiB7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuaAppbmRleCAyNjc4NjEwZjZjYjhiOWI3MWRj
YTU1ZDAwZTNmZGIxY2RiNzIwMzRkLi4zYjY1YzlhZjVhZTYwNWU0YzIzNzU5ZGNiYzQ5NzljZTkx
Y2VlNzM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5oCkBAIC0zOCw2ICszOCw3
IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEltYWdlSW5wdXRUeXBlIGZpbmFsIDog
cHVibGljIEJhc2VCdXR0b25JbnB1dFR5cGUgeworICAgIHRlbXBsYXRlPHR5cGVuYW1lIERvd25j
YXN0ZWRUeXBlPiBmcmllbmQgYm9vbCBpc0ludmFsaWRJbnB1dFR5cGUoY29uc3QgSW5wdXRUeXBl
JiwgY29uc3QgU3RyaW5nJik7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgSW1hZ2VJbnB1dFR5cGUo
SFRNTElucHV0RWxlbWVudCYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lu
cHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKaW5kZXggNDBi
MzdjZTZmZDlhZDc0MzcxZjU0ZjAyYjk2ZjM4Mzg1Mzk3YTk3MS4uYjBlMDEyNzliMTFjMTgxMjIy
NDA1OTIxNzAzYzY3NzRkOTQ4YzY0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9J
bnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcApAQCAt
MzAxLDYgKzMwMSw1NiBAQCBib29sIElucHV0VHlwZTo6cmFuZ2VPdmVyZmxvdyhjb25zdCBTdHJp
bmcmIHZhbHVlKSBjb25zdAogICAgIHJldHVybiBudW1lcmljVmFsdWUgPiBjcmVhdGVTdGVwUmFu
Z2UoQW55U3RlcEhhbmRsaW5nOjpSZWplY3QpLm1heGltdW0oKTsKIH0KIAorYm9vbCBJbnB1dFR5
cGU6OmlzSW52YWxpZChjb25zdCBTdHJpbmcmIHZhbHVlKSBjb25zdAoreworICAgIHN3aXRjaCAo
bV90eXBlKSB7CisgICAgY2FzZSBUeXBlOjpCdXR0b246CisgICAgICAgIHJldHVybiBpc0ludmFs
aWRJbnB1dFR5cGU8QnV0dG9uSW5wdXRUeXBlPigqdGhpcywgdmFsdWUpOworICAgIGNhc2UgVHlw
ZTo6Q2hlY2tib3g6CisgICAgICAgIHJldHVybiBpc0ludmFsaWRJbnB1dFR5cGU8Q2hlY2tib3hJ
bnB1dFR5cGU+KCp0aGlzLCB2YWx1ZSk7CisgICAgY2FzZSBUeXBlOjpDb2xvcjoKKyAgICAgICAg
cmV0dXJuIGlzSW52YWxpZElucHV0VHlwZTxDb2xvcklucHV0VHlwZT4oKnRoaXMsIHZhbHVlKTsK
KyAgICBjYXNlIFR5cGU6OkRhdGU6CisgICAgICAgIHJldHVybiBpc0ludmFsaWRJbnB1dFR5cGU8
RGF0ZUlucHV0VHlwZT4oKnRoaXMsIHZhbHVlKTsKKyAgICBjYXNlIFR5cGU6OkRhdGVUaW1lTG9j
YWw6CisgICAgICAgIHJldHVybiBpc0ludmFsaWRJbnB1dFR5cGU8RGF0ZVRpbWVMb2NhbElucHV0
VHlwZT4oKnRoaXMsIHZhbHVlKTsKKyAgICBjYXNlIFR5cGU6OkVtYWlsOgorICAgICAgICByZXR1
cm4gaXNJbnZhbGlkSW5wdXRUeXBlPEVtYWlsSW5wdXRUeXBlPigqdGhpcywgdmFsdWUpOworICAg
IGNhc2UgVHlwZTo6RmlsZToKKyAgICAgICAgcmV0dXJuIGlzSW52YWxpZElucHV0VHlwZTxGaWxl
SW5wdXRUeXBlPigqdGhpcywgdmFsdWUpOworICAgIGNhc2UgVHlwZTo6SGlkZGVuOgorICAgICAg
ICByZXR1cm4gaXNJbnZhbGlkSW5wdXRUeXBlPEhpZGRlbklucHV0VHlwZT4oKnRoaXMsIHZhbHVl
KTsKKyAgICBjYXNlIFR5cGU6OkltYWdlOgorICAgICAgICByZXR1cm4gaXNJbnZhbGlkSW5wdXRU
eXBlPEltYWdlSW5wdXRUeXBlPigqdGhpcywgdmFsdWUpOworICAgIGNhc2UgVHlwZTo6TW9udGg6
CisgICAgICAgIHJldHVybiBpc0ludmFsaWRJbnB1dFR5cGU8TW9udGhJbnB1dFR5cGU+KCp0aGlz
LCB2YWx1ZSk7CisgICAgY2FzZSBUeXBlOjpOdW1iZXI6CisgICAgICAgIHJldHVybiBpc0ludmFs
aWRJbnB1dFR5cGU8TnVtYmVySW5wdXRUeXBlPigqdGhpcywgdmFsdWUpOworICAgIGNhc2UgVHlw
ZTo6UGFzc3dvcmQ6CisgICAgICAgIHJldHVybiBpc0ludmFsaWRJbnB1dFR5cGU8UGFzc3dvcmRJ
bnB1dFR5cGU+KCp0aGlzLCB2YWx1ZSk7CisgICAgY2FzZSBUeXBlOjpSYWRpbzoKKyAgICAgICAg
cmV0dXJuIGlzSW52YWxpZElucHV0VHlwZTxSYWRpb0lucHV0VHlwZT4oKnRoaXMsIHZhbHVlKTsK
KyAgICBjYXNlIFR5cGU6OlJhbmdlOgorICAgICAgICByZXR1cm4gaXNJbnZhbGlkSW5wdXRUeXBl
PFJhbmdlSW5wdXRUeXBlPigqdGhpcywgdmFsdWUpOworICAgIGNhc2UgVHlwZTo6UmVzZXQ6Cisg
ICAgICAgIHJldHVybiBpc0ludmFsaWRJbnB1dFR5cGU8UmVzZXRJbnB1dFR5cGU+KCp0aGlzLCB2
YWx1ZSk7CisgICAgY2FzZSBUeXBlOjpTZWFyY2g6CisgICAgICAgIHJldHVybiBpc0ludmFsaWRJ
bnB1dFR5cGU8U2VhcmNoSW5wdXRUeXBlPigqdGhpcywgdmFsdWUpOworICAgIGNhc2UgVHlwZTo6
U3VibWl0OgorICAgICAgICByZXR1cm4gaXNJbnZhbGlkSW5wdXRUeXBlPFN1Ym1pdElucHV0VHlw
ZT4oKnRoaXMsIHZhbHVlKTsKKyAgICBjYXNlIFR5cGU6OlRlbGVwaG9uZToKKyAgICAgICAgcmV0
dXJuIGlzSW52YWxpZElucHV0VHlwZTxUZWxlcGhvbmVJbnB1dFR5cGU+KCp0aGlzLCB2YWx1ZSk7
CisgICAgY2FzZSBUeXBlOjpUaW1lOgorICAgICAgICByZXR1cm4gaXNJbnZhbGlkSW5wdXRUeXBl
PFRpbWVJbnB1dFR5cGU+KCp0aGlzLCB2YWx1ZSk7CisgICAgY2FzZSBUeXBlOjpVUkw6CisgICAg
ICAgIHJldHVybiBpc0ludmFsaWRJbnB1dFR5cGU8VVJMSW5wdXRUeXBlPigqdGhpcywgdmFsdWUp
OworICAgIGNhc2UgVHlwZTo6V2VlazoKKyAgICAgICAgcmV0dXJuIGlzSW52YWxpZElucHV0VHlw
ZTxXZWVrSW5wdXRUeXBlPigqdGhpcywgdmFsdWUpOworICAgIGNhc2UgVHlwZTo6VGV4dDoKKyAg
ICAgICAgcmV0dXJuIGlzSW52YWxpZElucHV0VHlwZTxUZXh0SW5wdXRUeXBlPigqdGhpcywgdmFs
dWUpOworICAgIH0KK30KKwogRGVjaW1hbCBJbnB1dFR5cGU6OmRlZmF1bHRWYWx1ZUZvclN0ZXBV
cCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIDA7CkBAIC00OTIsNyArNTQyLDcgQEAgdm9pZCBJbnB1
dFR5cGU6OmJsdXIoKQogICAgIGVsZW1lbnQoKS0+ZGVmYXVsdEJsdXIoKTsKIH0KIAotdm9pZCBJ
bnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQordm9pZCBJbnB1dFR5cGU6OmNyZWF0ZVNo
YWRvd1N1YnRyZWVBbmRVcGRhdGVJbm5lclRleHRFbGVtZW50RWRpdGFiaWxpdHkoQ29udGFpbmVy
Tm9kZTo6Q2hpbGRDaGFuZ2U6OlNvdXJjZSwgYm9vbCkKIHsKIH0KIApAQCAtODU1LDkgKzkwNSwy
MyBAQCBib29sIElucHV0VHlwZTo6aXNDaGVja2FibGUoKQogICAgIHJldHVybiBmYWxzZTsKIH0K
IAorLy8gRG8gbm90IHVzZSB2aXJ0dWFsIGZ1bmN0aW9uIGZvciBwZXJmb3JtYW5jZSByZWFzb24u
CiBib29sIElucHV0VHlwZTo6aXNTdGVwcGFibGUoKSBjb25zdAogewotICAgIHJldHVybiBmYWxz
ZTsKKyAgICBzd2l0Y2ggKG1fdHlwZSkgeworICAgIGNhc2UgVHlwZTo6RGF0ZToKKyAgICBjYXNl
IFR5cGU6OkRhdGVUaW1lTG9jYWw6CisgICAgY2FzZSBUeXBlOjpNb250aDoKKyAgICBjYXNlIFR5
cGU6OlRpbWU6CisgICAgY2FzZSBUeXBlOjpXZWVrOgorICAgIGNhc2UgVHlwZTo6TnVtYmVyOgor
ICAgIGNhc2UgVHlwZTo6UmFuZ2U6CisgICAgICAgIEFTU0VSVChpc1N0ZXBwYWJsZVNsb3coKSk7
CisgICAgICAgIHJldHVybiB0cnVlOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVCghaXNT
dGVwcGFibGVTbG93KCkpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQogfQogCiBib29s
IElucHV0VHlwZTo6aXNDb2xvckNvbnRyb2woKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9JbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgK
aW5kZXggZjkxMzQ3MzQ1MDUzMTJkODc5Y2VkYjRkMmI2NmFhMjg0M2I3MDM5OS4uZDBlOWI4ZWZi
YmFhYjMzNjA4YjQ5ZWQ4YTAzMjE1YzRhY2JmYWVlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9JbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5o
CkBAIC03MCw4ICs3MCwzMiBAQCBlbnVtIGNsYXNzIERhdGVDb21wb25lbnRzVHlwZSA6IHVpbnQ4
X3Q7CiAvLyBvdGhlciB0aGFuIEhUTUxJbnB1dEVsZW1lbnQuCiBjbGFzcyBJbnB1dFR5cGUgOiBw
dWJsaWMgUmVmQ291bnRlZDxJbnB1dFR5cGU+IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKLQogcHVibGljOgorICAgIGVudW0gY2xhc3MgVHlwZSA6IHVpbnQ4X3QgeworICAgICAgICBC
dXR0b24sCisgICAgICAgIENoZWNrYm94LAorICAgICAgICBDb2xvciwKKyAgICAgICAgRGF0ZSwK
KyAgICAgICAgRGF0ZVRpbWVMb2NhbCwKKyAgICAgICAgRW1haWwsCisgICAgICAgIEZpbGUsCisg
ICAgICAgIEhpZGRlbiwKKyAgICAgICAgSW1hZ2UsCisgICAgICAgIE1vbnRoLAorICAgICAgICBO
dW1iZXIsCisgICAgICAgIFBhc3N3b3JkLAorICAgICAgICBSYWRpbywKKyAgICAgICAgUmFuZ2Us
CisgICAgICAgIFJlc2V0LAorICAgICAgICBTZWFyY2gsCisgICAgICAgIFN1Ym1pdCwKKyAgICAg
ICAgVGVsZXBob25lLAorICAgICAgICBUaW1lLAorICAgICAgICBVUkwsCisgICAgICAgIFdlZWss
CisgICAgICAgIFRleHQsCisgICAgfTsKKwogICAgIHN0YXRpYyBSZWY8SW5wdXRUeXBlPiBjcmVh
dGUoSFRNTElucHV0RWxlbWVudCYsIGNvbnN0IEF0b21TdHJpbmcmKTsKICAgICBzdGF0aWMgUmVm
PElucHV0VHlwZT4gY3JlYXRlVGV4dChIVE1MSW5wdXRFbGVtZW50Jik7CiAgICAgdmlydHVhbCB+
SW5wdXRUeXBlKCk7CkBAIC0yMTcsNyArMjQxLDcgQEAgY2xhc3MgSW5wdXRUeXBlIDogcHVibGlj
IFJlZkNvdW50ZWQ8SW5wdXRUeXBlPiB7CiAKICAgICAvLyBTaGFkb3cgdHJlZSBoYW5kbGluZy4K
IAotICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVTaGFkb3dTdWJ0cmVlKCk7CisgICAgdmlydHVhbCB2
b2lkIGNyZWF0ZVNoYWRvd1N1YnRyZWVBbmRVcGRhdGVJbm5lclRleHRFbGVtZW50RWRpdGFiaWxp
dHkoQ29udGFpbmVyTm9kZTo6Q2hpbGRDaGFuZ2U6OlNvdXJjZSwgYm9vbCk7CiAgICAgdmlydHVh
bCB2b2lkIGRlc3Ryb3lTaGFkb3dTdWJ0cmVlKCk7CiAKICAgICB2aXJ0dWFsIEhUTUxFbGVtZW50
KiBjb250YWluZXJFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQpAQCAtMjU0LDcg
KzI3OCw2IEBAIGNsYXNzIElucHV0VHlwZSA6IHB1YmxpYyBSZWZDb3VudGVkPElucHV0VHlwZT4g
ewogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSZXNwZWN0TGlzdEF0dHJpYnV0ZSgpOwogICAgIHZp
cnR1YWwgYm9vbCBpc0VudW1lcmF0YWJsZSgpOwogICAgIHZpcnR1YWwgYm9vbCBpc0NoZWNrYWJs
ZSgpOwotICAgIHZpcnR1YWwgYm9vbCBpc1N0ZXBwYWJsZSgpIGNvbnN0OwogICAgIHZpcnR1YWwg
Ym9vbCBzaG91bGRSZXNwZWN0SGVpZ2h0QW5kV2lkdGhBdHRyaWJ1dGVzKCk7CiAgICAgdmlydHVh
bCBib29sIHN1cHBvcnRzUGxhY2Vob2xkZXIoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgc3Vw
cG9ydHNSZWFkT25seSgpIGNvbnN0OwpAQCAtMjc1LDYgKzI5OCw4IEBAIGNsYXNzIElucHV0VHlw
ZSA6IHB1YmxpYyBSZWZDb3VudGVkPElucHV0VHlwZT4gewogICAgIHZpcnR1YWwgdm9pZCBzZWxl
Y3RDb2xvcihTdHJpbmdWaWV3KTsKICAgICB2aXJ0dWFsIFZlY3RvcjxDb2xvcj4gc3VnZ2VzdGVk
Q29sb3JzKCkgY29uc3Q7CiAKKyAgICBib29sIGlzU3RlcHBhYmxlKCkgY29uc3Q7CisKICAgICAv
LyBQYXJzZXMgdGhlIHNwZWNpZmllZCBzdHJpbmcgZm9yIHRoZSB0eXBlLCBhbmQgcmV0dXJuCiAg
ICAgLy8gdGhlIERlY2ltYWwgdmFsdWUgZm9yIHRoZSBwYXJzaW5nIHJlc3VsdCBpZiB0aGUgcGFy
c2luZwogICAgIC8vIHN1Y2NlZWRzOyBSZXR1cm5zIGRlZmF1bHRWYWx1ZSBvdGhlcndpc2UuIFRo
aXMgZnVuY3Rpb24gY2FuCkBAIC0yOTEsNiArMzE2LDggQEAgY2xhc3MgSW5wdXRUeXBlIDogcHVi
bGljIFJlZkNvdW50ZWQ8SW5wdXRUeXBlPiB7CiAgICAgdmlydHVhbCB1bnNpZ25lZCBoZWlnaHQo
KSBjb25zdDsKICAgICB2aXJ0dWFsIHVuc2lnbmVkIHdpZHRoKCkgY29uc3Q7CiAKKyAgICBib29s
IGlzSW52YWxpZChjb25zdCBTdHJpbmcmKSBjb25zdDsKKwogICAgIHZvaWQgZGlzcGF0Y2hTaW11
bGF0ZWRDbGlja0lmQWN0aXZlKEtleWJvYXJkRXZlbnQmKSBjb25zdDsKIAogI2lmIEVOQUJMRShE
QVRBTElTVF9FTEVNRU5UKQpAQCAtMzA3LDIwICszMzQsMzAgQEAgY2xhc3MgSW5wdXRUeXBlIDog
cHVibGljIFJlZkNvdW50ZWQ8SW5wdXRUeXBlPiB7CiAgICAgdmlydHVhbCBTdHJpbmcgZGlzcGxh
eVN0cmluZygpIGNvbnN0OwogCiBwcm90ZWN0ZWQ6Ci0gICAgZXhwbGljaXQgSW5wdXRUeXBlKEhU
TUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCi0gICAgICAgIDogbV9lbGVtZW50KG1ha2VXZWFrUHRy
KGVsZW1lbnQpKSB7IH0KKyAgICBleHBsaWNpdCBJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYg
ZWxlbWVudCwgVHlwZSB0eXBlKQorICAgICAgICA6IG1fdHlwZSh0eXBlKQorICAgICAgICAsIG1f
ZWxlbWVudChtYWtlV2Vha1B0cihlbGVtZW50KSkgeyB9CiAgICAgSFRNTElucHV0RWxlbWVudCog
ZWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZWxlbWVudC5nZXQoKTsgfQogICAgIENocm9tZSog
Y2hyb21lKCkgY29uc3Q7CiAgICAgRGVjaW1hbCBwYXJzZVRvTnVtYmVyT3JOYU4oY29uc3QgU3Ry
aW5nJikgY29uc3Q7CisgICAgdmlydHVhbCBib29sIGlzU3RlcHBhYmxlU2xvdygpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CiAKIHByaXZhdGU6CiAgICAgLy8gSGVscGVyIGZvciBzdGVwVXAoKS9z
dGVwRG93bigpLiBBZGRzIHN0ZXAgdmFsdWUgKiBjb3VudCB0byB0aGUgY3VycmVudCB2YWx1ZS4K
ICAgICBFeGNlcHRpb25Pcjx2b2lkPiBhcHBseVN0ZXAoaW50IGNvdW50LCBBbnlTdGVwSGFuZGxp
bmcsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IpOwogCiAgICAgLy8gbV9lbGVtZW50IGlzIG51bGwg
aWYgdGhpcyBJbnB1dFR5cGUgaXMgbm8gbG9uZ2VyIGFzc29jaWF0ZWQgd2l0aCBhbiBlbGVtZW50
IChlaXRoZXIgdGhlIGVsZW1lbnQgZGllZCBvciBjaGFuZ2VkIGlucHV0IHR5cGUpLgorICAgIFR5
cGUgbV90eXBlOwogICAgIFdlYWtQdHI8SFRNTElucHV0RWxlbWVudD4gbV9lbGVtZW50OwogfTsK
IAordGVtcGxhdGU8dHlwZW5hbWUgRG93bmNhc3RlZFR5cGU+CitBTFdBWVNfSU5MSU5FIGJvb2wg
aXNJbnZhbGlkSW5wdXRUeXBlKGNvbnN0IElucHV0VHlwZSYgYmFzZUlucHV0VHlwZSwgY29uc3Qg
U3RyaW5nJiB2YWx1ZSkKK3sKKyAgICBhdXRvJiBpbnB1dFR5cGUgPSBzdGF0aWNfY2FzdDxjb25z
dCBEb3duY2FzdGVkVHlwZSY+KGJhc2VJbnB1dFR5cGUpOworICAgIHJldHVybiBpbnB1dFR5cGUu
dHlwZU1pc21hdGNoKCkgfHwgaW5wdXRUeXBlLnN0ZXBNaXNtYXRjaCh2YWx1ZSkgfHwgaW5wdXRU
eXBlLnJhbmdlVW5kZXJmbG93KHZhbHVlKSB8fCBpbnB1dFR5cGUucmFuZ2VPdmVyZmxvdyh2YWx1
ZSkgfHwgaW5wdXRUeXBlLnBhdHRlcm5NaXNtYXRjaCh2YWx1ZSkgfHwgaW5wdXRUeXBlLnZhbHVl
TWlzc2luZyh2YWx1ZSkgfHwgaW5wdXRUeXBlLmhhc0JhZElucHV0KCk7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAogI2RlZmluZSBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0lOUFVUX1RZ
UEUoVG9WYWx1ZVR5cGVOYW1lLCBwcmVkaWNhdGUpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1
dFR5cGUuaAppbmRleCA0ZDdiYjQ3YTg1M2I5ZGE1NDI5YmFhNTZiNThjYTY2NWJmZmNhNTE2Li4z
ZmRhZmY0YzNjNTZlZjFkMmU3MDE4YTAwNGQxNTIxMDI0MWE4YzIzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9Nb250aElucHV0VHlwZS5oCkBAIC0zNyw5ICszNywxMCBAQAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBNb250aElucHV0VHlwZSBmaW5hbCA6IHB1YmxpYyBCYXNlRGF0ZUFuZFRpbWVJ
bnB1dFR5cGUgeworICAgIHRlbXBsYXRlPHR5cGVuYW1lIERvd25jYXN0ZWRUeXBlPiBmcmllbmQg
Ym9vbCBpc0ludmFsaWRJbnB1dFR5cGUoY29uc3QgSW5wdXRUeXBlJiwgY29uc3QgU3RyaW5nJik7
CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgTW9udGhJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYg
ZWxlbWVudCkKLSAgICAgICAgOiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUoZWxlbWVudCkKKyAg
ICAgICAgOiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUoZWxlbWVudCwgVHlwZTo6TW9udGgpCiAg
ICAgewogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1
dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuY3BwCmluZGV4
IGJiMjgxNGQ4Yzc2ZGM0OWFhMGQyZjA5MDczYzY1ZjllMmNhMGVkMWYuLmU2N2I0OGZmZDFmYmVl
MzdjZDU5MDNkMGU0MjQwNGVmNzI3ZDNmOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvTnVtYmVySW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklu
cHV0VHlwZS5jcHAKQEAgLTIxMCw3ICsyMTAsNyBAQCBmbG9hdCBOdW1iZXJJbnB1dFR5cGU6OmRl
Y29yYXRpb25XaWR0aCgpIGNvbnN0CiAgICAgcmV0dXJuIHdpZHRoOwogfQogCi1ib29sIE51bWJl
cklucHV0VHlwZTo6aXNTdGVwcGFibGUoKSBjb25zdAorYm9vbCBOdW1iZXJJbnB1dFR5cGU6Omlz
U3RlcHBhYmxlU2xvdygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9OdW1iZXJJbnB1dFR5cGUuaAppbmRleCBkZTUxYTRhMzBkNTMwMGRiMjUyZDgyMDk3NmNh
YzJkMjRhMTVlMDcwLi5mMmZiMmQ3ZDZjN2EyMDljNzc3Y2ZiOTIwNjgzZTM5YmI2NDRhZTAxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmgKQEAgLTM2LDggKzM2LDkgQEAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTnVtYmVySW5wdXRUeXBlIGZpbmFsIDogcHVibGlj
IFRleHRGaWVsZElucHV0VHlwZSB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRG93bmNhc3RlZFR5
cGU+IGZyaWVuZCBib29sIGlzSW52YWxpZElucHV0VHlwZShjb25zdCBJbnB1dFR5cGUmLCBjb25z
dCBTdHJpbmcmKTsKIHB1YmxpYzoKLSAgICBleHBsaWNpdCBOdW1iZXJJbnB1dFR5cGUoSFRNTElu
cHV0RWxlbWVudCYgZWxlbWVudCkgOiBUZXh0RmllbGRJbnB1dFR5cGUoZWxlbWVudCkgeyB9Cisg
ICAgZXhwbGljaXQgTnVtYmVySW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDog
VGV4dEZpZWxkSW5wdXRUeXBlKGVsZW1lbnQsIFR5cGU6Ok51bWJlcikgeyB9CiAKIHByaXZhdGU6
CiAgICAgY29uc3QgQXRvbVN0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3QgZmluYWw7CkBA
IC00OSw3ICs1MCw3IEBAIGNsYXNzIE51bWJlcklucHV0VHlwZSBmaW5hbCA6IHB1YmxpYyBUZXh0
RmllbGRJbnB1dFR5cGUgewogICAgIGJvb2wgdHlwZU1pc21hdGNoKCkgY29uc3QgZmluYWw7CiAg
ICAgYm9vbCBzaXplU2hvdWxkSW5jbHVkZURlY29yYXRpb24oaW50IGRlZmF1bHRTaXplLCBpbnQm
IHByZWZlcnJlZFNpemUpIGNvbnN0IGZpbmFsOwogICAgIGZsb2F0IGRlY29yYXRpb25XaWR0aCgp
IGNvbnN0IGZpbmFsOwotICAgIGJvb2wgaXNTdGVwcGFibGUoKSBjb25zdCBmaW5hbDsKKyAgICBi
b29sIGlzU3RlcHBhYmxlU2xvdygpIGNvbnN0IGZpbmFsOwogICAgIFN0ZXBSYW5nZSBjcmVhdGVT
dGVwUmFuZ2UoQW55U3RlcEhhbmRsaW5nKSBjb25zdCBmaW5hbDsKICAgICBTaG91bGRDYWxsQmFz
ZUV2ZW50SGFuZGxlciBoYW5kbGVLZXlkb3duRXZlbnQoS2V5Ym9hcmRFdmVudCYpIGZpbmFsOwog
ICAgIERlY2ltYWwgcGFyc2VUb051bWJlcihjb25zdCBTdHJpbmcmLCBjb25zdCBEZWNpbWFsJikg
Y29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Bhc3N3b3JkSW5w
dXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1Bhc3N3b3JkSW5wdXRUeXBlLmgKaW5kZXgg
ZDRmZDBjZjIyNTViMjAyNWVhMWMyYWMzNDE3MzYyMzUzNmMyOWNkYy4uZTg5Yzc2NTUxYTNjNDky
M2JjNmJiNWJhYTY3NzU0YWVhOWE2ZWU3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9QYXNzd29yZElucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGFzc3dvcmRJ
bnB1dFR5cGUuaApAQCAtMzUsOCArMzUsOSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBQYXNzd29yZElucHV0VHlwZSBmaW5hbCA6IHB1YmxpYyBCYXNlVGV4dElucHV0VHlwZSB7Cisg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgRG93bmNhc3RlZFR5cGU+IGZyaWVuZCBib29sIGlzSW52YWxp
ZElucHV0VHlwZShjb25zdCBJbnB1dFR5cGUmLCBjb25zdCBTdHJpbmcmKTsKIHB1YmxpYzoKLSAg
ICBleHBsaWNpdCBQYXNzd29yZElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6
IEJhc2VUZXh0SW5wdXRUeXBlKGVsZW1lbnQpIHsgfQorICAgIGV4cGxpY2l0IFBhc3N3b3JkSW5w
dXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFzZVRleHRJbnB1dFR5cGUoZWxl
bWVudCwgVHlwZTo6UGFzc3dvcmQpIHsgfQogCiBwcml2YXRlOgogICAgIGNvbnN0IEF0b21TdHJp
bmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9SYWRpb0lucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYWRp
b0lucHV0VHlwZS5oCmluZGV4IDcwMmMyN2ZjNGJjZjM2NzcyM2ExYjJlZGIyOTllNDllNmI0NjEw
ODguLjM2NmU5ODA5YTBkZDI4ZDc4MTkyYzJjZDlmNWFkNjU1NDBhZGIxYzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFkaW9JbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1JhZGlvSW5wdXRUeXBlLmgKQEAgLTM2LDggKzM2LDkgQEAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgUmFkaW9JbnB1dFR5cGUgZmluYWwgOiBwdWJsaWMgQmFzZUNoZWNrYWJs
ZUlucHV0VHlwZSB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRG93bmNhc3RlZFR5cGU+IGZyaWVu
ZCBib29sIGlzSW52YWxpZElucHV0VHlwZShjb25zdCBJbnB1dFR5cGUmLCBjb25zdCBTdHJpbmcm
KTsKIHB1YmxpYzoKLSAgICBleHBsaWNpdCBSYWRpb0lucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50
JiBlbGVtZW50KSA6IEJhc2VDaGVja2FibGVJbnB1dFR5cGUoZWxlbWVudCkgeyB9CisgICAgZXhw
bGljaXQgUmFkaW9JbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlQ2hl
Y2thYmxlSW5wdXRUeXBlKGVsZW1lbnQsIFR5cGU6OlJhZGlvKSB7IH0KIAogcHJpdmF0ZToKICAg
ICBjb25zdCBBdG9tU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBmaW5hbDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKaW5kZXggNWYzMmNjMWY5YWExMzMwNDU2YThh
ODY2M2Q3ZGMxNjkwZTc3YzA3OS4uZTM0YmE3NjM4MzBhOTAxYjdjMmE2MDBmOTM4Y2E0MDYwNGNk
ODFjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKQEAgLTgwLDcgKzgw
LDcgQEAgc3RhdGljIERlY2ltYWwgZW5zdXJlTWF4aW11bShjb25zdCBEZWNpbWFsJiBwcm9wb3Nl
ZFZhbHVlLCBjb25zdCBEZWNpbWFsJiBtaW5pbXUKIH0KIAogUmFuZ2VJbnB1dFR5cGU6OlJhbmdl
SW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCi0gICAgOiBJbnB1dFR5cGUoZWxl
bWVudCkKKyAgICA6IElucHV0VHlwZShlbGVtZW50LCBUeXBlOjpSYW5nZSkKIHsKIH0KIApAQCAt
MTMzLDcgKzEzMyw3IEBAIFN0ZXBSYW5nZSBSYW5nZUlucHV0VHlwZTo6Y3JlYXRlU3RlcFJhbmdl
KEFueVN0ZXBIYW5kbGluZyBhbnlTdGVwSGFuZGxpbmcpIGNvbnN0CiAgICAgcmV0dXJuIFN0ZXBS
YW5nZShtaW5pbXVtLCBSYW5nZUxpbWl0YXRpb25zOjpWYWxpZCwgbWluaW11bSwgbWF4aW11bSwg
c3RlcCwgcmFuZ2VTdGVwRGVzY3JpcHRpb24pOwogfQogCi1ib29sIFJhbmdlSW5wdXRUeXBlOjpp
c1N0ZXBwYWJsZSgpIGNvbnN0Citib29sIFJhbmdlSW5wdXRUeXBlOjppc1N0ZXBwYWJsZVNsb3co
KSBjb25zdAogewogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMjUyLDcgKzI1Miw3IEBAIGF1dG8g
UmFuZ2VJbnB1dFR5cGU6OmhhbmRsZUtleWRvd25FdmVudChLZXlib2FyZEV2ZW50JiBldmVudCkg
LT4gU2hvdWxkQ2FsbEJhc2VFCiAgICAgcmV0dXJuIFNob3VsZENhbGxCYXNlRXZlbnRIYW5kbGVy
OjpZZXM7CiB9CiAKLXZvaWQgUmFuZ2VJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQor
dm9pZCBSYW5nZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZUFuZFVwZGF0ZUlubmVyVGV4
dEVsZW1lbnRFZGl0YWJpbGl0eShDb250YWluZXJOb2RlOjpDaGlsZENoYW5nZTo6U291cmNlLCBi
b29sKQogewogICAgIEFTU0VSVChlbGVtZW50KCkpOwogICAgIEFTU0VSVChlbGVtZW50KCktPnVz
ZXJBZ2VudFNoYWRvd1Jvb3QoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Jh
bmdlSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmgKaW5k
ZXggYzk2MjdiMzJlNDU5NGY0MmVhYTVlZDY0NDFlM2I4NjlmMjcxMjVjZS4uMzM4NGM2YzI2NWY5
N2ZmOWY1NjNjZDhmOTAwNDQxOTAzMzM5NjA0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9SYW5nZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1
dFR5cGUuaApAQCAtMzgsNiArMzgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBTbGlk
ZXJUaHVtYkVsZW1lbnQ7CiAKIGNsYXNzIFJhbmdlSW5wdXRUeXBlIGZpbmFsIDogcHVibGljIElu
cHV0VHlwZSB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRG93bmNhc3RlZFR5cGU+IGZyaWVuZCBi
b29sIGlzSW52YWxpZElucHV0VHlwZShjb25zdCBJbnB1dFR5cGUmLCBjb25zdCBTdHJpbmcmKTsK
IHB1YmxpYzoKICAgICBleHBsaWNpdCBSYW5nZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50Jik7
CiAKQEAgLTQ5LDExICs1MCwxMSBAQCBjbGFzcyBSYW5nZUlucHV0VHlwZSBmaW5hbCA6IHB1Ymxp
YyBJbnB1dFR5cGUgewogICAgIGJvb2wgdHlwZU1pc21hdGNoRm9yKGNvbnN0IFN0cmluZyYpIGNv
bnN0IGZpbmFsOwogICAgIGJvb2wgc3VwcG9ydHNSZXF1aXJlZCgpIGNvbnN0IGZpbmFsOwogICAg
IFN0ZXBSYW5nZSBjcmVhdGVTdGVwUmFuZ2UoQW55U3RlcEhhbmRsaW5nKSBjb25zdCBmaW5hbDsK
LSAgICBib29sIGlzU3RlcHBhYmxlKCkgY29uc3QgZmluYWw7CisgICAgYm9vbCBpc1N0ZXBwYWJs
ZVNsb3coKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIGhhbmRsZU1vdXNlRG93bkV2ZW50KE1vdXNl
RXZlbnQmKSBmaW5hbDsKICAgICBTaG91bGRDYWxsQmFzZUV2ZW50SGFuZGxlciBoYW5kbGVLZXlk
b3duRXZlbnQoS2V5Ym9hcmRFdmVudCYpIGZpbmFsOwogICAgIFJlbmRlclB0cjxSZW5kZXJFbGVt
ZW50PiBjcmVhdGVJbnB1dFJlbmRlcmVyKFJlbmRlclN0eWxlJiYpIGZpbmFsOwotICAgIHZvaWQg
Y3JlYXRlU2hhZG93U3VidHJlZSgpIGZpbmFsOworICAgIHZvaWQgY3JlYXRlU2hhZG93U3VidHJl
ZUFuZFVwZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0YWJpbGl0eShDb250YWluZXJOb2RlOjpDaGls
ZENoYW5nZTo6U291cmNlLCBib29sKSBmaW5hbDsKICAgICBEZWNpbWFsIHBhcnNlVG9OdW1iZXIo
Y29uc3QgU3RyaW5nJiwgY29uc3QgRGVjaW1hbCYpIGNvbnN0IGZpbmFsOwogICAgIFN0cmluZyBz
ZXJpYWxpemUoY29uc3QgRGVjaW1hbCYpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgYWNjZXNzS2V5
QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvUmVzZXRJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmVzZXRJ
bnB1dFR5cGUuaAppbmRleCA5N2FiMTJhOGI5ZjUwMzUwZDc0OTM3ZDIyNzNjNzg2YmEzNThkZDIy
Li4wNTA4YzY1NGMzMGVlMGRiNzgzN2RjOGU4ZGY0ZjI3M2UzYjRlNGFhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL1Jlc2V0SW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9SZXNldElucHV0VHlwZS5oCkBAIC0zNSw4ICszNSw5IEBACiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIFJlc2V0SW5wdXRUeXBlIGZpbmFsIDogcHVibGljIEJhc2VCdXR0b25JbnB1
dFR5cGUgeworICAgIHRlbXBsYXRlPHR5cGVuYW1lIERvd25jYXN0ZWRUeXBlPiBmcmllbmQgYm9v
bCBpc0ludmFsaWRJbnB1dFR5cGUoY29uc3QgSW5wdXRUeXBlJiwgY29uc3QgU3RyaW5nJik7CiBw
dWJsaWM6Ci0gICAgZXhwbGljaXQgUmVzZXRJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxl
bWVudCkgOiBCYXNlQnV0dG9uSW5wdXRUeXBlKGVsZW1lbnQpIHsgfQorICAgIGV4cGxpY2l0IFJl
c2V0SW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFzZUJ1dHRvbklucHV0
VHlwZShlbGVtZW50LCBUeXBlOjpSZXNldCkgeyB9CiAKIHByaXZhdGU6CiAgICAgY29uc3QgQXRv
bVN0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL1NlYXJjaElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1NlYXJjaElucHV0VHlwZS5jcHAKaW5kZXggMTg3ZjNmNjRmZjk1NjMwMDMxMmZlYmEwZjdj
MTMwYWJjZjc5ZWI0MS4uYTRjNzNjNWNjNmI3ZDE3MWI4ODMyZGU5YjI3MTg4MDc4ODMzMDc0NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5cGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvU2VhcmNoSW5wdXRUeXBlLmNwcApAQCAtNDUsNyArNDUsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCiBTZWFy
Y2hJbnB1dFR5cGU6OlNlYXJjaElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQot
ICAgIDogQmFzZVRleHRJbnB1dFR5cGUoZWxlbWVudCkKKyAgICA6IEJhc2VUZXh0SW5wdXRUeXBl
KGVsZW1lbnQsIFR5cGU6OlNlYXJjaCkKICAgICAsIG1fc2VhcmNoRXZlbnRUaW1lcigqdGhpcywg
JlNlYXJjaElucHV0VHlwZTo6c2VhcmNoRXZlbnRUaW1lckZpcmVkKQogewogfQpAQCAtMTA3LDEy
ICsxMDcsMTIgQEAgYm9vbCBTZWFyY2hJbnB1dFR5cGU6Om5lZWRzQ29udGFpbmVyKCkgY29uc3QK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBTZWFyY2hJbnB1dFR5cGU6OmNyZWF0ZVNoYWRv
d1N1YnRyZWUoKQordm9pZCBTZWFyY2hJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWVBbmRV
cGRhdGVJbm5lclRleHRFbGVtZW50RWRpdGFiaWxpdHkoQ29udGFpbmVyTm9kZTo6Q2hpbGRDaGFu
Z2U6OlNvdXJjZSBzb3VyY2UsIGJvb2wgaXNJbm5lclRleHRFbGVtZW50RWRpdGFibGUpCiB7CiAg
ICAgQVNTRVJUKCFtX3Jlc3VsdHNCdXR0b24pOwogICAgIEFTU0VSVCghbV9jYW5jZWxCdXR0b24p
OwogCi0gICAgVGV4dEZpZWxkSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCk7CisgICAg
VGV4dEZpZWxkSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlQW5kVXBkYXRlSW5uZXJUZXh0
RWxlbWVudEVkaXRhYmlsaXR5KHNvdXJjZSwgaXNJbm5lclRleHRFbGVtZW50RWRpdGFibGUpOwog
ICAgIFJlZlB0cjxIVE1MRWxlbWVudD4gY29udGFpbmVyID0gY29udGFpbmVyRWxlbWVudCgpOwog
ICAgIFJlZlB0cjxIVE1MRWxlbWVudD4gdGV4dFdyYXBwZXIgPSBpbm5lckJsb2NrRWxlbWVudCgp
OwogICAgIEFTU0VSVChjb250YWluZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9TZWFyY2hJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvU2VhcmNoSW5wdXRUeXBl
LmgKaW5kZXggNmYzNjBhM2I4OGM1ZWM4ZGYxMTc1ODFhZWNhYTRlNDExYTJlMmZjOS4uYjc5MmRk
MDZhMzE5MjEyODg3MGExYmQ4ZjVlMmIxYjM4YjUwMzhlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1Nl
YXJjaElucHV0VHlwZS5oCkBAIC0zOSw2ICszOSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNs
YXNzIFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1lbnQ7CiAKIGNsYXNzIFNlYXJjaElucHV0
VHlwZSBmaW5hbCA6IHB1YmxpYyBCYXNlVGV4dElucHV0VHlwZSB7CisgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgRG93bmNhc3RlZFR5cGU+IGZyaWVuZCBib29sIGlzSW52YWxpZElucHV0VHlwZShjb25z
dCBJbnB1dFR5cGUmLCBjb25zdCBTdHJpbmcmKTsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBTZWFy
Y2hJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYpOwogCkBAIC01MSw3ICs1Miw3IEBAIGNsYXNz
IFNlYXJjaElucHV0VHlwZSBmaW5hbCA6IHB1YmxpYyBCYXNlVGV4dElucHV0VHlwZSB7CiAgICAg
Y29uc3QgQXRvbVN0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3QgZmluYWw7CiAgICAgYm9v
bCBpc1NlYXJjaEZpZWxkKCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBuZWVkc0NvbnRhaW5lcigp
IGNvbnN0IGZpbmFsOwotICAgIHZvaWQgY3JlYXRlU2hhZG93U3VidHJlZSgpIGZpbmFsOworICAg
IHZvaWQgY3JlYXRlU2hhZG93U3VidHJlZUFuZFVwZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0YWJp
bGl0eShDb250YWluZXJOb2RlOjpDaGlsZENoYW5nZTo6U291cmNlLCBib29sKSBmaW5hbDsKICAg
ICB2b2lkIGRlc3Ryb3lTaGFkb3dTdWJ0cmVlKCkgZmluYWw7CiAgICAgSFRNTEVsZW1lbnQqIHJl
c3VsdHNCdXR0b25FbGVtZW50KCkgY29uc3QgZmluYWw7CiAgICAgSFRNTEVsZW1lbnQqIGNhbmNl
bEJ1dHRvbkVsZW1lbnQoKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvU3VibWl0SW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1N1Ym1pdElucHV0
VHlwZS5oCmluZGV4IGUxZWRlMjc5ZTQ3NTZiZTgzM2MzZTU3ZDc3NDc4YjcxMjg3NWIxNDkuLjE1
NjlmYTc0ZjU2MGY3Y2ZjZmIyMDg4OGI3ZjU4MjAxMmY5YjYyM2IgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvU3VibWl0SW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9TdWJtaXRJbnB1dFR5cGUuaApAQCAtMzUsOCArMzUsOSBAQAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBTdWJtaXRJbnB1dFR5cGUgZmluYWwgOiBwdWJsaWMgQmFzZUJ1dHRvbklucHV0
VHlwZSB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRG93bmNhc3RlZFR5cGU+IGZyaWVuZCBib29s
IGlzSW52YWxpZElucHV0VHlwZShjb25zdCBJbnB1dFR5cGUmLCBjb25zdCBTdHJpbmcmKTsKIHB1
YmxpYzoKLSAgICBleHBsaWNpdCBTdWJtaXRJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxl
bWVudCkgOiBCYXNlQnV0dG9uSW5wdXRUeXBlKGVsZW1lbnQpIHsgfQorICAgIGV4cGxpY2l0IFN1
Ym1pdElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VCdXR0b25JbnB1
dFR5cGUoZWxlbWVudCwgVHlwZTo6U3VibWl0KSB7IH0KIAogcHJpdmF0ZToKICAgICBjb25zdCBB
dG9tU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvVGVsZXBob25lSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1RlbGVwaG9uZUlucHV0VHlwZS5oCmluZGV4IDkxMDZlNThjOTQwNzM4MGI5ZWJhYWQ5
YjA3N2JkNDU3YWE2OTYxMmMuLjk4ZDY4MDIwN2I1ODFiYzQwYzZkYjQ4ZjlhNzY4ZjU3YWNhZWYz
N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGVsZXBob25lSW5wdXRUeXBlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZWxlcGhvbmVJbnB1dFR5cGUuaApAQCAtMzUsOCAr
MzUsOSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBUZWxlcGhvbmVJbnB1dFR5cGUg
ZmluYWwgOiBwdWJsaWMgQmFzZVRleHRJbnB1dFR5cGUgeworICAgIHRlbXBsYXRlPHR5cGVuYW1l
IERvd25jYXN0ZWRUeXBlPiBmcmllbmQgYm9vbCBpc0ludmFsaWRJbnB1dFR5cGUoY29uc3QgSW5w
dXRUeXBlJiwgY29uc3QgU3RyaW5nJik7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgVGVsZXBob25l
SW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFzZVRleHRJbnB1dFR5cGUo
ZWxlbWVudCkgeyB9CisgICAgZXhwbGljaXQgVGVsZXBob25lSW5wdXRUeXBlKEhUTUxJbnB1dEVs
ZW1lbnQmIGVsZW1lbnQpIDogQmFzZVRleHRJbnB1dFR5cGUoZWxlbWVudCwgVHlwZTo6VGVsZXBo
b25lKSB7IH0KIAogcHJpdmF0ZToKICAgICBjb25zdCBBdG9tU3RyaW5nJiBmb3JtQ29udHJvbFR5
cGUoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4
dEZpZWxkSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRU
eXBlLmNwcAppbmRleCBjMDJhOGQ3NmMyMTBlMjc5NDczNWQxZWQzMWEyYWUwM2YzOTMwZDg2Li4z
NmI1MTkyYmY4N2IzOWMxYmZjNzJiMDMwMGE5MGRkMzdmNDdjZTAzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwCkBAIC03MSw4ICs3MSw4IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotVGV4dEZpZWxkSW5w
dXRUeXBlOjpUZXh0RmllbGRJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKLSAg
ICA6IElucHV0VHlwZShlbGVtZW50KQorVGV4dEZpZWxkSW5wdXRUeXBlOjpUZXh0RmllbGRJbnB1
dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCwgVHlwZSB0eXBlKQorICAgIDogSW5wdXRU
eXBlKGVsZW1lbnQsIHR5cGUpCiB7CiB9CiAKQEAgLTMxOCw3ICszMTgsNyBAQCBib29sIFRleHRG
aWVsZElucHV0VHlwZTo6c2hvdWxkSGF2ZUNhcHNMb2NrSW5kaWNhdG9yKCkgY29uc3QKICAgICBy
ZXR1cm4gUmVuZGVyVGhlbWU6OnNpbmdsZXRvbigpLnNob3VsZEhhdmVDYXBzTG9ja0luZGljYXRv
cigqZWxlbWVudCgpKTsKIH0KIAotdm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OmNyZWF0ZVNoYWRv
d1N1YnRyZWUoKQordm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWVB
bmRVcGRhdGVJbm5lclRleHRFbGVtZW50RWRpdGFiaWxpdHkoQ29udGFpbmVyTm9kZTo6Q2hpbGRD
aGFuZ2U6OlNvdXJjZSBzb3VyY2UsIGJvb2wgaXNJbm5lclRleHRFbGVtZW50RWRpdGFibGUpCiB7
CiAgICAgQVNTRVJUKGVsZW1lbnQoKSk7CiAgICAgQVNTRVJUKGVsZW1lbnQoKS0+c2hhZG93Um9v
dCgpKTsKQEAgLTMzNCwxMCArMzM0LDEzIEBAIHZvaWQgVGV4dEZpZWxkSW5wdXRUeXBlOjpjcmVh
dGVTaGFkb3dTdWJ0cmVlKCkKICAgICBib29sIHNob3VsZEhhdmVDYXBzTG9ja0luZGljYXRvciA9
IHRoaXMtPnNob3VsZEhhdmVDYXBzTG9ja0luZGljYXRvcigpOwogICAgIGJvb2wgY3JlYXRlc0Nv
bnRhaW5lciA9IHNob3VsZEhhdmVTcGluQnV0dG9uIHx8IHNob3VsZEhhdmVDYXBzTG9ja0luZGlj
YXRvciB8fCBuZWVkc0NvbnRhaW5lcigpOwogCi0gICAgbV9pbm5lclRleHQgPSBUZXh0Q29udHJv
bElubmVyVGV4dEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgbV9pbm5lclRleHQgPSBU
ZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgaXNJbm5lclRleHRF
bGVtZW50RWRpdGFibGUpOwogCiAgICAgaWYgKCFjcmVhdGVzQ29udGFpbmVyKSB7Ci0gICAgICAg
IGVsZW1lbnQoKS0+dXNlckFnZW50U2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZCgqbV9pbm5lclRl
eHQpOworICAgICAgICBpZiAoc291cmNlID09IENvbnRhaW5lck5vZGU6OkNoaWxkQ2hhbmdlOjpT
b3VyY2U6OlBhcnNlcikKKyAgICAgICAgICAgIGVsZW1lbnQoKS0+dXNlckFnZW50U2hhZG93Um9v
dCgpLT5wYXJzZXJBcHBlbmRDaGlsZCgqbV9pbm5lclRleHQpOworICAgICAgICBlbHNlCisgICAg
ICAgICAgICBlbGVtZW50KCktPnVzZXJBZ2VudFNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQoKm1f
aW5uZXJUZXh0KTsKICAgICAgICAgdXBkYXRlUGxhY2Vob2xkZXJUZXh0KCk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CkBAIC0zNDcsNyArMzUwLDEwIEBAIHZvaWQgVGV4dEZpZWxkSW5wdXRUeXBl
OjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKIAogICAgIGlmIChzaG91bGRIYXZlU3BpbkJ1dHRvbikg
ewogICAgICAgICBtX2lubmVyU3BpbkJ1dHRvbiA9IFNwaW5CdXR0b25FbGVtZW50OjpjcmVhdGUo
ZG9jdW1lbnQsICp0aGlzKTsKLSAgICAgICAgbV9jb250YWluZXItPmFwcGVuZENoaWxkKCptX2lu
bmVyU3BpbkJ1dHRvbik7CisgICAgICAgIGlmIChzb3VyY2UgPT0gQ29udGFpbmVyTm9kZTo6Q2hp
bGRDaGFuZ2U6OlNvdXJjZTo6UGFyc2VyKQorICAgICAgICAgICAgbV9jb250YWluZXItPnBhcnNl
ckFwcGVuZENoaWxkKCptX2lubmVyU3BpbkJ1dHRvbik7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIG1fY29udGFpbmVyLT5hcHBlbmRDaGlsZCgqbV9pbm5lclNwaW5CdXR0b24pOwogICAgIH0K
IAogICAgIGlmIChzaG91bGRIYXZlQ2Fwc0xvY2tJbmRpY2F0b3IpIHsKQEAgLTM1OCw3ICszNjQs
MTAgQEAgdm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogICAg
ICAgICBib29sIHNob3VsZERyYXdDYXBzTG9ja0luZGljYXRvciA9IHRoaXMtPnNob3VsZERyYXdD
YXBzTG9ja0luZGljYXRvcigpOwogICAgICAgICBtX2NhcHNMb2NrSW5kaWNhdG9yLT5zZXRJbmxp
bmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5RGlzcGxheSwgc2hvdWxkRHJhd0NhcHNMb2NrSW5k
aWNhdG9yID8gQ1NTVmFsdWVCbG9jayA6IENTU1ZhbHVlTm9uZSwgdHJ1ZSk7CiAKLSAgICAgICAg
bV9jb250YWluZXItPmFwcGVuZENoaWxkKCptX2NhcHNMb2NrSW5kaWNhdG9yKTsKKyAgICAgICAg
aWYgKHNvdXJjZSA9PSBDb250YWluZXJOb2RlOjpDaGlsZENoYW5nZTo6U291cmNlOjpQYXJzZXIp
CisgICAgICAgICAgICBtX2NvbnRhaW5lci0+cGFyc2VyQXBwZW5kQ2hpbGQoKm1fY2Fwc0xvY2tJ
bmRpY2F0b3IpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBtX2NvbnRhaW5lci0+YXBwZW5k
Q2hpbGQoKm1fY2Fwc0xvY2tJbmRpY2F0b3IpOwogICAgIH0KICAgICB1cGRhdGVBdXRvRmlsbEJ1
dHRvbigpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1
dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmgKaW5kZXgg
MmM0NTcyMmRhMWJlMGQ1NjMxNmEzYWJkZGFjMTZhNmYyODhmMGRmZi4uMjc3YWY5M2U5NmQ0ZTkw
NTNjYjE1NTRhODI3NWQ1NjA0OGQ3MWI1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9UZXh0RmllbGRJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVs
ZElucHV0VHlwZS5oCkBAIC01MSw3ICs1MSw3IEBAIGNsYXNzIFRleHRGaWVsZElucHV0VHlwZSA6
IHB1YmxpYyBJbnB1dFR5cGUsIHByb3RlY3RlZCBTcGluQnV0dG9uRWxlbWVudDo6U3BpbkJ1CiAj
ZW5kaWYKIHsKIHByb3RlY3RlZDoKLSAgICBleHBsaWNpdCBUZXh0RmllbGRJbnB1dFR5cGUoSFRN
TElucHV0RWxlbWVudCYpOworICAgIGV4cGxpY2l0IFRleHRGaWVsZElucHV0VHlwZShIVE1MSW5w
dXRFbGVtZW50JiwgVHlwZSk7CiAgICAgdmlydHVhbCB+VGV4dEZpZWxkSW5wdXRUeXBlKCk7CiAg
ICAgU2hvdWxkQ2FsbEJhc2VFdmVudEhhbmRsZXIgaGFuZGxlS2V5ZG93bkV2ZW50KEtleWJvYXJk
RXZlbnQmKSBvdmVycmlkZTsKICAgICB2b2lkIGhhbmRsZUtleWRvd25FdmVudEZvclNwaW5CdXR0
b24oS2V5Ym9hcmRFdmVudCYpOwpAQCAtNzAsNyArNzAsNyBAQCBjbGFzcyBUZXh0RmllbGRJbnB1
dFR5cGUgOiBwdWJsaWMgSW5wdXRUeXBlLCBwcm90ZWN0ZWQgU3BpbkJ1dHRvbkVsZW1lbnQ6OlNw
aW5CdQogI2VuZGlmCiAKICAgICB2aXJ0dWFsIGJvb2wgbmVlZHNDb250YWluZXIoKSBjb25zdDsK
LSAgICB2b2lkIGNyZWF0ZVNoYWRvd1N1YnRyZWUoKSBvdmVycmlkZTsKKyAgICB2b2lkIGNyZWF0
ZVNoYWRvd1N1YnRyZWVBbmRVcGRhdGVJbm5lclRleHRFbGVtZW50RWRpdGFiaWxpdHkoQ29udGFp
bmVyTm9kZTo6Q2hpbGRDaGFuZ2U6OlNvdXJjZSwgYm9vbCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBk
ZXN0cm95U2hhZG93U3VidHJlZSgpIG92ZXJyaWRlOwogICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdl
ZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaXNhYmxlZFN0YXRl
Q2hhbmdlZCgpIGZpbmFsOwpAQCAtODEsNiArODEsNyBAQCBjbGFzcyBUZXh0RmllbGRJbnB1dFR5
cGUgOiBwdWJsaWMgSW5wdXRUeXBlLCBwcm90ZWN0ZWQgU3BpbkJ1dHRvbkVsZW1lbnQ6OlNwaW5C
dQogICAgIHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9vbCB2YWx1ZUNoYW5nZWQsIFRl
eHRGaWVsZEV2ZW50QmVoYXZpb3IpIG92ZXJyaWRlOwogICAgIHZvaWQgdXBkYXRlSW5uZXJUZXh0
VmFsdWUoKSBmaW5hbDsKICAgICBTdHJpbmcgc2FuaXRpemVWYWx1ZShjb25zdCBTdHJpbmcmKSBj
b25zdCBvdmVycmlkZTsKKyAgICBib29sIHZhbHVlTWlzc2luZyhjb25zdCBTdHJpbmcmKSBjb25z
dCBmaW5hbDsKIAogICAgIHZpcnR1YWwgU3RyaW5nIGNvbnZlcnRGcm9tVmlzaWJsZVZhbHVlKGNv
bnN0IFN0cmluZyYpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBkaWRTZXRWYWx1ZUJ5VXNlckVk
aXQoKTsKQEAgLTkwLDcgKzkxLDYgQEAgY2xhc3MgVGV4dEZpZWxkSW5wdXRUeXBlIDogcHVibGlj
IElucHV0VHlwZSwgcHJvdGVjdGVkIFNwaW5CdXR0b25FbGVtZW50OjpTcGluQnUKICAgICBib29s
IGlzTW91c2VGb2N1c2FibGUoKSBjb25zdCBmaW5hbDsKICAgICBib29sIGlzVGV4dEZpZWxkKCkg
Y29uc3QgZmluYWw7CiAgICAgYm9vbCBpc0VtcHR5VmFsdWUoKSBjb25zdCBmaW5hbDsKLSAgICBi
b29sIHZhbHVlTWlzc2luZyhjb25zdCBTdHJpbmcmKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIGhh
bmRsZUJlZm9yZVRleHRJbnNlcnRlZEV2ZW50KEJlZm9yZVRleHRJbnNlcnRlZEV2ZW50JikgZmlu
YWw7CiAgICAgdm9pZCBmb3J3YXJkRXZlbnQoRXZlbnQmKSBmaW5hbDsKICAgICBib29sIHNob3Vs
ZFN1Ym1pdEltcGxpY2l0bHkoRXZlbnQmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvVGV4dElucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0SW5wdXRU
eXBlLmgKaW5kZXggZWU4OWM4ZjZhYTlmMThhY2M3OWY1YzJiMWE4NWEwMjdiZWU3ZDNjZS4uNzM5
ZDM5YjJjOGQyOGI5YzdjMDNhNDU2OGE2YWZkY2Q5ODEwYmRiMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9UZXh0SW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9U
ZXh0SW5wdXRUeXBlLmgKQEAgLTM1LDggKzM1LDkgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgVGV4dElucHV0VHlwZSBmaW5hbCA6IHB1YmxpYyBCYXNlVGV4dElucHV0VHlwZSB7Cisg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgRG93bmNhc3RlZFR5cGU+IGZyaWVuZCBib29sIGlzSW52YWxp
ZElucHV0VHlwZShjb25zdCBJbnB1dFR5cGUmLCBjb25zdCBTdHJpbmcmKTsKIHB1YmxpYzoKLSAg
ICBleHBsaWNpdCBUZXh0SW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFz
ZVRleHRJbnB1dFR5cGUoZWxlbWVudCkgeyB9CisgICAgZXhwbGljaXQgVGV4dElucHV0VHlwZShI
VE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VUZXh0SW5wdXRUeXBlKGVsZW1lbnQsIFR5
cGU6OlRleHQpIHsgfQogCiBwcml2YXRlOgogICAgIGNvbnN0IEF0b21TdHJpbmcmIGZvcm1Db250
cm9sVHlwZSgpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9UaW1lSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5j
cHAKaW5kZXggMjEwMzk1NzM0ODQ3ZTViMDk1NzI3MjhkNjVmZjExYzgxNGFhMGU2NS4uNTJiZTMz
YzA5N2Y0YmYyMDhjYzY5OTczODc4MDkxYTczODYwOGI3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1Rp
bWVJbnB1dFR5cGUuY3BwCkBAIC01Myw3ICs1Myw3IEBAIHN0YXRpYyBjb25zdCBpbnQgdGltZVN0
ZXBTY2FsZUZhY3RvciA9IDEwMDA7CiBzdGF0aWMgY29uc3QgU3RlcFJhbmdlOjpTdGVwRGVzY3Jp
cHRpb24gdGltZVN0ZXBEZXNjcmlwdGlvbiB7IHRpbWVEZWZhdWx0U3RlcCwgdGltZURlZmF1bHRT
dGVwQmFzZSwgdGltZVN0ZXBTY2FsZUZhY3RvciwgU3RlcFJhbmdlOjpTY2FsZWRTdGVwVmFsdWVT
aG91bGRCZUludGVnZXIgfTsKIAogVGltZUlucHV0VHlwZTo6VGltZUlucHV0VHlwZShIVE1MSW5w
dXRFbGVtZW50JiBlbGVtZW50KQotICAgIDogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlKGVsZW1l
bnQpCisgICAgOiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUoZWxlbWVudCwgVHlwZTo6VGltZSkK
IHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuaAppbmRleCBjMmQzYjg5MzI4ODc1
N2E5NDNkNGMzMzM5NjJhMDA1NjkxZTYyYmY2Li43MDliMzc0MTAwMmVlMzAzMTY2OGRmMWU0NDJk
NjEyMTliMDkzMzFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5
cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuaApAQCAtMzcsNiAr
MzcsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBUaW1lSW5wdXRUeXBlIGZpbmFs
IDogcHVibGljIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZSB7CisgICAgdGVtcGxhdGU8dHlwZW5h
bWUgRG93bmNhc3RlZFR5cGU+IGZyaWVuZCBib29sIGlzSW52YWxpZElucHV0VHlwZShjb25zdCBJ
bnB1dFR5cGUmLCBjb25zdCBTdHJpbmcmKTsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBUaW1lSW5w
dXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9VUkxJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVVJMSW5wdXRUeXBlLmgK
aW5kZXggMGQzYmJiNWEyZDA1ODU1YzhmMTI1YmM5ZmFlZjhlYjE3Zjc5OTBiMi4uNWEzNDIyYzU2
NTUxMjdhMzY1YjIzNzMzMGVmMWQ3Nzg2MWFkNDc2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9VUkxJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1VSTElucHV0
VHlwZS5oCkBAIC0zNSw4ICszNSw5IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFVS
TElucHV0VHlwZSBmaW5hbCA6IHB1YmxpYyBCYXNlVGV4dElucHV0VHlwZSB7CisgICAgdGVtcGxh
dGU8dHlwZW5hbWUgRG93bmNhc3RlZFR5cGU+IGZyaWVuZCBib29sIGlzSW52YWxpZElucHV0VHlw
ZShjb25zdCBJbnB1dFR5cGUmLCBjb25zdCBTdHJpbmcmKTsKIHB1YmxpYzoKLSAgICBleHBsaWNp
dCBVUkxJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlVGV4dElucHV0
VHlwZShlbGVtZW50KSB7IH0KKyAgICBleHBsaWNpdCBVUkxJbnB1dFR5cGUoSFRNTElucHV0RWxl
bWVudCYgZWxlbWVudCkgOiBCYXNlVGV4dElucHV0VHlwZShlbGVtZW50LCBUeXBlOjpVUkwpIHsg
fQogCiBwcml2YXRlOgogICAgIGNvbnN0IEF0b21TdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNv
bnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRU
eXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUuaAppbmRleCAwNDBjMDgy
MGI4OTkzODAwMjJiMDdhMDI0MjU2ZWY0MzdjMTM2NWFkLi44MTNlODY5ZTRiOWFhZWJkODgyNDA1
YTAxMTk1ZWYxOWIwZTZlZjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJ
bnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUuaApAQCAt
MzcsOSArMzcsMTAgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgV2Vla0lucHV0VHlw
ZSBmaW5hbCA6IHB1YmxpYyBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUgeworICAgIHRlbXBsYXRl
PHR5cGVuYW1lIERvd25jYXN0ZWRUeXBlPiBmcmllbmQgYm9vbCBpc0ludmFsaWRJbnB1dFR5cGUo
Y29uc3QgSW5wdXRUeXBlJiwgY29uc3QgU3RyaW5nJik7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQg
V2Vla0lucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQotICAgICAgICA6IEJhc2VE
YXRlQW5kVGltZUlucHV0VHlwZShlbGVtZW50KQorICAgICAgICA6IEJhc2VEYXRlQW5kVGltZUlu
cHV0VHlwZShlbGVtZW50LCBUeXBlOjpXZWVrKQogICAgIHsKICAgICB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3Bw
CmluZGV4IGRjZTIzOGNjMzA1NzYxYTdhNmNmY2U4MDJiMmY3NjM2MTg4MmM1YjcuLjAzYTJkNzMw
NGNmOWZjNzliYjRmMTgyODlkMGJlYzc0OTdiODJkMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcApAQCAtMTM4
LDkgKzEzOCwyNCBAQCBpbmxpbmUgVGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50OjpUZXh0Q29u
dHJvbElubmVyVGV4dEVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZQogICAgIHNldEhhc0N1c3RvbVN0
eWxlUmVzb2x2ZUNhbGxiYWNrcygpOwogfQogCi1SZWY8VGV4dENvbnRyb2xJbm5lclRleHRFbGVt
ZW50PiBUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1l
bnQpCitSZWY8VGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50PiBUZXh0Q29udHJvbElubmVyVGV4
dEVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgaXNFZGl0YWJsZSkKIHsK
LSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQoZG9j
dW1lbnQpKTsKKyAgICBhdXRvIHJlc3VsdCA9IGFkb3B0UmVmKCpuZXcgVGV4dENvbnRyb2xJbm5l
clRleHRFbGVtZW50KGRvY3VtZW50KSk7CisgICAgY29uc3RleHByIGJvb2wgaW5pdGlhbGl6YXRp
b24gPSB0cnVlOworICAgIHJlc3VsdC0+dXBkYXRlSW5uZXJUZXh0RWxlbWVudEVkaXRhYmlsaXR5
SW1wbChpc0VkaXRhYmxlLCBpbml0aWFsaXphdGlvbik7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
Kwordm9pZCBUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ6OnVwZGF0ZUlubmVyVGV4dEVsZW1l
bnRFZGl0YWJpbGl0eUltcGwoYm9vbCBpc0VkaXRhYmxlLCBib29sIGluaXRpYWxpemF0aW9uKQor
eworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4g
cGxhaW5UZXh0T25seU5hbWUoInBsYWludGV4dC1vbmx5IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3Qg
QXRvbVN0cmluZz4gZmFsc2VOYW1lKCJmYWxzZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKKyAgICBjb25zdCBhdXRvJiB2YWx1ZSA9IGlzRWRpdGFibGUgPyBwbGFpblRleHRP
bmx5TmFtZS5nZXQoKSA6IGZhbHNlTmFtZS5nZXQoKTsKKyAgICBpZiAoaW5pdGlhbGl6YXRpb24p
IHsKKyAgICAgICAgVmVjdG9yPEF0dHJpYnV0ZT4gYXR0cmlidXRlcyB7IEF0dHJpYnV0ZShjb250
ZW50ZWRpdGFibGVBdHRyLCB2YWx1ZSkgfTsKKyAgICAgICAgcGFyc2VyU2V0QXR0cmlidXRlcyhh
dHRyaWJ1dGVzKTsKKyAgICB9IGVsc2UKKyAgICAgICAgc2V0QXR0cmlidXRlV2l0aG91dFN5bmNo
cm9uaXphdGlvbihjb250ZW50ZWRpdGFibGVBdHRyLCB2YWx1ZSk7CiB9CiAKIHZvaWQgVGV4dENv
bnRyb2xJbm5lclRleHRFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50JiBldmVudCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJF
bGVtZW50cy5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVs
ZW1lbnRzLmgKaW5kZXggZWNjZjk0MzFhMzcxOTM3MmM5ODY3MDczOWFiNTU4MWFhMmY4ZjI0NC4u
ZWJiNTg1OWE5Yzk5ZWVhZWM1MDI2MGNkYmY2YTQ5YTg0M2JmYjIyZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmgKQEAg
LTU4LDEzICs1OCwyMSBAQCBjbGFzcyBUZXh0Q29udHJvbElubmVyRWxlbWVudCBmaW5hbCA6IHB1
YmxpYyBIVE1MRGl2RWxlbWVudCB7CiBjbGFzcyBUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQg
ZmluYWwgOiBwdWJsaWMgSFRNTERpdkVsZW1lbnQgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FU
RUQoVGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50KTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVm
PFRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CisgICAgc3Rh
dGljIFJlZjxUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYsIGJv
b2wgaXNFZGl0YWJsZSk7CiAKICAgICB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQmKSBv
dmVycmlkZTsKIAogICAgIFJlbmRlclRleHRDb250cm9sSW5uZXJCbG9jayogcmVuZGVyZXIoKSBj
b25zdDsKIAorICAgIGlubGluZSB2b2lkIHVwZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0YWJpbGl0
eShib29sIGlzRWRpdGFibGUpCisgICAgeworICAgICAgICBjb25zdGV4cHIgYm9vbCBpbml0aWFs
aXphdGlvbiA9IGZhbHNlOworICAgICAgICB1cGRhdGVJbm5lclRleHRFbGVtZW50RWRpdGFiaWxp
dHlJbXBsKGlzRWRpdGFibGUsIGluaXRpYWxpemF0aW9uKTsKKyAgICB9CisKIHByaXZhdGU6Cisg
ICAgdm9pZCB1cGRhdGVJbm5lclRleHRFbGVtZW50RWRpdGFiaWxpdHlJbXBsKGJvb2wgaXNFZGl0
YWJsZSwgYm9vbCBpbml0aWFsaXphdGlvbik7CisKICAgICBUZXh0Q29udHJvbElubmVyVGV4dEVs
ZW1lbnQoRG9jdW1lbnQmKTsKICAgICBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxl
bWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92
ZXJyaWRlOwogICAgIE9wdGlvbmFsPFN0eWxlOjpFbGVtZW50U3R5bGU+IHJlc29sdmVDdXN0b21T
dHlsZShjb25zdCBSZW5kZXJTdHlsZSYgcGFyZW50U3R5bGUsIGNvbnN0IFJlbmRlclN0eWxlKiBz
aGFkb3dIb3N0U3R5bGUpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5
bGUvU3R5bGVTY29wZS5oIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZS5oCmluZGV4
IDQ3NGEwOGE2MjU3YmQ1YWQwZGQyZmI5ZGFmNzUxZDZiZDJmNWY0ZDYuLjY3Mjc2NWRkMWQ4YTE3
MjAwZjA3OWU3ZjI5NWU0OTkwMjIzMTQ0ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0
eWxlL1N0eWxlU2NvcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlLmgK
QEAgLTEzNSw3ICsxMzUsNyBAQCBjbGFzcyBTY29wZSB7CiAKICAgICB2b2lkIGRpZFJlbW92ZVBl
bmRpbmdTdHlsZXNoZWV0KCk7CiAKLSAgICBlbnVtIGNsYXNzIFVwZGF0ZVR5cGUgeyBBY3RpdmVT
ZXQsIENvbnRlbnRzT3JJbnRlcnByZXRhdGlvbiB9OworICAgIGVudW0gY2xhc3MgVXBkYXRlVHlw
ZSA6IHVpbnQ4X3QgeyBBY3RpdmVTZXQsIENvbnRlbnRzT3JJbnRlcnByZXRhdGlvbiB9OwogICAg
IHZvaWQgdXBkYXRlQWN0aXZlU3R5bGVTaGVldHMoVXBkYXRlVHlwZSk7CiAgICAgdm9pZCBzY2hl
ZHVsZVVwZGF0ZShVcGRhdGVUeXBlKTsKIApAQCAtMTgzLDEzICsxODMsMTQgQEAgY2xhc3MgU2Nv
cGUgewogICAgIEhhc2hTZXQ8Y29uc3QgRWxlbWVudCo+IG1fZWxlbWVudHNJbkhlYWRXaXRoUGVu
ZGluZ1NoZWV0czsKICAgICBIYXNoU2V0PGNvbnN0IEVsZW1lbnQqPiBtX2VsZW1lbnRzSW5Cb2R5
V2l0aFBlbmRpbmdTaGVldHM7CiAKLSAgICBPcHRpb25hbDxVcGRhdGVUeXBlPiBtX3BlbmRpbmdV
cGRhdGU7Ci0gICAgYm9vbCBtX2hhc0Rlc2NlbmRhbnRXaXRoUGVuZGluZ1VwZGF0ZSB7IGZhbHNl
IH07CiAKICAgICBMaXN0SGFzaFNldDxOb2RlKj4gbV9zdHlsZVNoZWV0Q2FuZGlkYXRlTm9kZXM7
CiAKICAgICBTdHJpbmcgbV9wcmVmZXJyZWRTdHlsZXNoZWV0U2V0TmFtZTsKIAorICAgIE9wdGlv
bmFsPFVwZGF0ZVR5cGU+IG1fcGVuZGluZ1VwZGF0ZTsKKworICAgIGJvb2wgbV9oYXNEZXNjZW5k
YW50V2l0aFBlbmRpbmdVcGRhdGUgeyBmYWxzZSB9OwogICAgIGJvb2wgbV91c2VzU3R5bGVCYXNl
ZEVkaXRhYmlsaXR5IHsgZmFsc2UgfTsKICAgICBib29sIG1faXNVcGRhdGluZ1N0eWxlUmVzb2x2
ZXIgeyBmYWxzZSB9OwogfTsK
</data>
<flag name="commit-queue"
          id="435750"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417937</attachid>
            <date>2021-01-19 18:43:06 -0800</date>
            <delta_ts>2021-01-20 11:59:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220758-20210119184305.patch</filename>
            <type>text/plain</type>
            <size>57876</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxNjI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWQwNWRkNDI3ODUyNDNj
ZTUyZGE4ZjAzMDFlNWYyNGVkN2RkMTc4NC4uYmUxMTI4ZDE5YjlhZDEzY2Q2MmRlZGVmOWU2YmMw
NzAxZjQ0YWQ2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExNiBAQAorMjAyMS0wMS0xOSAgWXVz
dWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIEFjY2VsZXJhdGUgSFRN
TElucHV0RWxlbWVudCBjcmVhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjIwNzU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgSFRNTElucHV0RWxlbWVudCBjcmVhdGlvbiBpcyB0b28gc2xvdy4KKwor
ICAgICAgICAxLiBJbnB1dFR5cGUgaXMgZXhjZXNzaXZlbHkgdXNpbmcgdmlydHVhbCBkaXNwYXRj
aGluZywgd2hpY2ggaXMgdG9vIHNsb3cgZm9yIGhvdCBwYXRoLgorICAgICAgICAyLiBIVE1MSW5w
dXRFbGVtZW50IGNyZWF0ZXMgaW50ZXJuYWwgZWxlbWVudHMgYXMgYSBzaGFkb3cgRE9NIGFuZCBp
dHMgY3JlYXRpb24gaXMgdG9vIGdlbmVyaWMuCisgICAgICAgIDMuIFdlIGFyZSBzZXR0aW5nIGlu
bmVyIHRleHQgZWxlbWVudCdzIGVkaXRhYmlsaXR5IGluIGEgdmVyeSBnZW5lcmljIHdheS4gVGhp
cyBhbGxvY2F0ZXMgRWxlbWVudERhdGEgZm9yIGVhY2ggZWxlbWVudHMgd2hpbGUgYXR0cmlidXRl
cyBhcmUgYWxtb3N0IHRoZSBzYW1lLgorCisgICAgICAgIEluIHRoaXMgcGF0Y2gsCisKKyAgICAg
ICAgMS4gV2UgYWRkIG1fdHlwZSBmaWVsZCBpbiBJbnB1dFR5cGUsIGFuZCBmb3IgdGhlIGhvdCBw
YXRoLCB3ZSBhdHRlbXB0IHRvIGRldmlydHVhbGl6ZSB0aGluZ3MgZHVlIHRvIHBlcmZvcm1hbmNl
IHByb2JsZW0uCisgICAgICAgIDIuIFdlIHBhc3MgInBhcnNpbmcgcGhhc2UiIGluZm9ybWF0aW9u
IHRvIHNoYWRvdyBET00gY3JlYXRpb24gdG8gbWFrZSB0aGVtIGZhc3QuCisgICAgICAgIDMuIFdl
IGluaXRpYWxpemUgZWRpdGliaWxpdHkgd2hlbiBjcmVhdGluZyBUZXh0Q29udHJvbElubmVyVGV4
dEVsZW1lbnQuIEFuZCB3ZSB1c2UgcGFyc2VyU2V0QXR0cmlidXRlcyB0byBzZXQgc2hhcmVkIEVs
ZW1lbnREYXRhLiBUaGlzIGlzIGZhc3RlciBhbmQgbGVzcyBtZW1vcnkuCisgICAgICAgIDQuIFdl
IGFsc28gc2hyaW5rIHNpemVvZihTdHlsZTo6U2NvcGUpIHRvIHJlZHVjZSBzaXplIG9mIGFsbG9j
YXRpb24gd2hlbiB1c2luZyBzaGFkb3cgRE9NLgorCisgICAgICAgIFRoaXMgY2hhbmdlIG9mZmVy
cyAxJSBwcm9ncmVzc2lvbiBpbiBTcGVlZG9tZXRlcjIvalF1ZXJ5LgorCisgICAgICAgICogaHRt
bC9CYXNlQnV0dG9uSW5wdXRUeXBlLmg6CisgICAgICAgIChXZWJDb3JlOjpCYXNlQnV0dG9uSW5w
dXRUeXBlOjpCYXNlQnV0dG9uSW5wdXRUeXBlKToKKyAgICAgICAgKiBodG1sL0Jhc2VDaGVja2Fi
bGVJbnB1dFR5cGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VDaGVja2FibGVJbnB1dFR5cGU6
OkJhc2VDaGVja2FibGVJbnB1dFR5cGUpOgorICAgICAgICAqIGh0bWwvQmFzZUNsaWNrYWJsZVdp
dGhLZXlJbnB1dFR5cGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VDbGlja2FibGVXaXRoS2V5
SW5wdXRUeXBlOjpCYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlwZSk6CisgICAgICAgICogaHRt
bC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmFzZURh
dGVBbmRUaW1lSW5wdXRUeXBlOjppc1N0ZXBwYWJsZVNsb3cgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6QmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlQW5kVXBk
YXRlSW5uZXJUZXh0RWxlbWVudEVkaXRhYmlsaXR5KToKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VE
YXRlQW5kVGltZUlucHV0VHlwZTo6aXNTdGVwcGFibGUgY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6QmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVl
KTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6QmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlOjpCYXNlRGF0ZUFuZFRp
bWVJbnB1dFR5cGUpOgorICAgICAgICAqIGh0bWwvQmFzZVRleHRJbnB1dFR5cGUuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkJhc2VUZXh0SW5wdXRUeXBlOjpCYXNlVGV4dElucHV0VHlwZSk6CisgICAg
ICAgICogaHRtbC9CdXR0b25JbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL0NoZWNrYm94SW5w
dXRUeXBlLmg6CisgICAgICAgICogaHRtbC9Db2xvcklucHV0VHlwZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDb2xvcklucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZUFuZFVwZGF0ZUlubmVy
VGV4dEVsZW1lbnRFZGl0YWJpbGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpDb2xvcklucHV0VHlw
ZTo6Y3JlYXRlU2hhZG93U3VidHJlZSk6IERlbGV0ZWQuCisgICAgICAgICogaHRtbC9Db2xvcklu
cHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvRGF0ZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpEYXRlSW5wdXRUeXBlOjpEYXRlSW5wdXRUeXBlKToKKyAgICAgICAgKiBodG1sL0Rh
dGVJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuaDoK
KyAgICAgICAgKiBodG1sL0VtYWlsSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9GaWxlSW5w
dXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVJbnB1dFR5cGU6OkZpbGVJbnB1dFR5
cGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJl
ZUFuZFVwZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0YWJpbGl0eSk6CisgICAgICAgIChXZWJDb3Jl
OjpGaWxlSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKTogRGVsZXRlZC4KKyAgICAgICAg
KiBodG1sL0ZpbGVJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6ZGlkQWRkVXNlckFnZW50
U2hhZG93Um9vdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50Ojppc1ZhbGlk
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnVwZGF0ZVR5cGUp
OgorICAgICAgICAqIGh0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MVGV4dEFyZWFFbGVtZW50OjpkaWRBZGRVc2VyQWdlbnRTaGFkb3dSb290KToKKyAg
ICAgICAgKiBodG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojp1cGRhdGVJbm5lclRleHRFbGVtZW50
RWRpdGFiaWxpdHkpOgorICAgICAgICAqIGh0bWwvSGlkZGVuSW5wdXRUeXBlLmg6CisgICAgICAg
ICogaHRtbC9JbWFnZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUlucHV0
VHlwZTo6SW1hZ2VJbnB1dFR5cGUpOgorICAgICAgICAqIGh0bWwvSW1hZ2VJbnB1dFR5cGUuaDoK
KyAgICAgICAgKiBodG1sL0lucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5
cGU6OmlzSW52YWxpZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6OmNyZWF0
ZVNoYWRvd1N1YnRyZWVBbmRVcGRhdGVJbm5lclRleHRFbGVtZW50RWRpdGFiaWxpdHkpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlOjppc1N0ZXBwYWJsZSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUpOiBEZWxldGVkLgorICAgICAg
ICAqIGh0bWwvSW5wdXRUeXBlLmg6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6OklucHV0
VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6OmlzU3RlcHBhYmxlU2xvdyBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjppc0ludmFsaWRJbnB1dFR5cGUpOgorICAgICAgICAqIGh0
bWwvTW9udGhJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL051bWJlcklucHV0VHlwZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpOdW1iZXJJbnB1dFR5cGU6OmlzU3RlcHBhYmxlU2xvdyBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpOdW1iZXJJbnB1dFR5cGU6OmlzU3RlcHBhYmxlIGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL051bWJlcklucHV0VHlwZS5oOgorICAgICAgICAq
IGh0bWwvUGFzc3dvcmRJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL1JhZGlvSW5wdXRUeXBl
Lmg6CisgICAgICAgICogaHRtbC9SYW5nZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSYW5nZUlucHV0VHlwZTo6UmFuZ2VJbnB1dFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6UmFu
Z2VJbnB1dFR5cGU6OmlzU3RlcHBhYmxlU2xvdyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpS
YW5nZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZUFuZFVwZGF0ZUlubmVyVGV4dEVsZW1l
bnRFZGl0YWJpbGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpSYW5nZUlucHV0VHlwZTo6aXNTdGVw
cGFibGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2VJbnB1dFR5cGU6
OmNyZWF0ZVNoYWRvd1N1YnRyZWUpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvUmFuZ2VJbnB1
dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL1Jlc2V0SW5wdXRUeXBlLmg6CisgICAgICAgICogaHRt
bC9TZWFyY2hJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoSW5wdXRUeXBl
OjpTZWFyY2hJbnB1dFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoSW5wdXRUeXBlOjpj
cmVhdGVTaGFkb3dTdWJ0cmVlQW5kVXBkYXRlSW5uZXJUZXh0RWxlbWVudEVkaXRhYmlsaXR5KToK
KyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaElucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSk6
IERlbGV0ZWQuCisgICAgICAgICogaHRtbC9TZWFyY2hJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBo
dG1sL1N1Ym1pdElucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvVGVsZXBob25lSW5wdXRUeXBl
Lmg6CisgICAgICAgICogaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6VGV4dEZpZWxkSW5wdXRUeXBlOjpUZXh0RmllbGRJbnB1dFR5cGUpOgorICAgICAgICAo
V2ViQ29yZTo6VGV4dEZpZWxkSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlQW5kVXBkYXRl
SW5uZXJUZXh0RWxlbWVudEVkaXRhYmlsaXR5KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRGaWVs
ZElucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSk6IERlbGV0ZWQuCisgICAgICAgICogaHRt
bC9UZXh0RmllbGRJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL1RleHRJbnB1dFR5cGUuaDoK
KyAgICAgICAgKiBodG1sL1RpbWVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGlt
ZUlucHV0VHlwZTo6VGltZUlucHV0VHlwZSk6CisgICAgICAgICogaHRtbC9UaW1lSW5wdXRUeXBl
Lmg6CisgICAgICAgICogaHRtbC9VUkxJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL1dlZWtJ
bnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVu
dHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50Ojpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50Ojp1
cGRhdGVJbm5lclRleHRFbGVtZW50RWRpdGFiaWxpdHlJbXBsKToKKyAgICAgICAgKiBodG1sL3No
YWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuaDoKKyAgICAgICAgKiBzdHlsZS9TdHlsZVNj
b3BlLmg6CisKIDIwMjEtMDEtMTkgIFBhdHJpY2sgQW5nbGUgIDxwYW5nbGVAYXBwbGUuY29tPgog
CiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEZvbnQgRGV0YWlscyBzaWRlYmFyIC0gRnJhY3Rpb25h
bCB2YXJpYXRpb24gYXhpcyByYW5nZXMvZGVmYXVsdCB2YWx1ZXMgYXJlIHJvdW5kZWQuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VCdXR0b25JbnB1dFR5cGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvQmFzZUJ1dHRvbklucHV0VHlwZS5oCmluZGV4IGY3YmNhYjI0MmI1YzMy
MGIzMTE4MDYxMDhkYWUwMmNhNWRjOGNjOTguLmIyM2YzMDcxMzc5NmEwOTBiYTAwOTU5NGEyYWEx
OWUxYTg5NDQxM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUJ1dHRvbklu
cHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUJ1dHRvbklucHV0VHlwZS5o
CkBAIC0zNyw3ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIC8vIEJhc2Ugb2YgYnV0dG9u
LCBmaWxlLCBpbWFnZSwgcmVzZXQsIGFuZCBzdWJtaXQgdHlwZXMuCiBjbGFzcyBCYXNlQnV0dG9u
SW5wdXRUeXBlIDogcHVibGljIEJhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlIHsKIHByb3Rl
Y3RlZDoKLSAgICBleHBsaWNpdCBCYXNlQnV0dG9uSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQm
IGVsZW1lbnQpIDogQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUoZWxlbWVudCkgeyB9Cisg
ICAgZXhwbGljaXQgQmFzZUJ1dHRvbklucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50
LCBUeXBlIHR5cGUpIDogQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUoZWxlbWVudCwgdHlw
ZSkgeyB9CiAKIHByaXZhdGU6CiAgICAgYm9vbCBzaG91bGRTYXZlQW5kUmVzdG9yZUZvcm1Db250
cm9sU3RhdGUoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hl
Y2thYmxlSW5wdXRUeXBlLmgKaW5kZXggOTIxYmI4ODVhMjQxNDVmZmRkMDM3ZDNmZjI4ZTI4ODU2
MGJkNTVhYi4uODE3YTA3ODk1NTlhNTg5ZDFmZmM3NjFmNTI5NzBkZWFlMjUxOWJkYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmgKQEAgLTM3LDcgKzM3
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogLy8gQmFzZSBvZiBjaGVja2JveCBhbmQgcmFkaW8g
dHlwZXMuCiBjbGFzcyBCYXNlQ2hlY2thYmxlSW5wdXRUeXBlIDogcHVibGljIElucHV0VHlwZSB7
CiBwcm90ZWN0ZWQ6Ci0gICAgZXhwbGljaXQgQmFzZUNoZWNrYWJsZUlucHV0VHlwZShIVE1MSW5w
dXRFbGVtZW50JiBlbGVtZW50KSA6IElucHV0VHlwZShlbGVtZW50KSB7IH0KKyAgICBleHBsaWNp
dCBCYXNlQ2hlY2thYmxlSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQsIFR5cGUg
dHlwZSkgOiBJbnB1dFR5cGUoZWxlbWVudCwgdHlwZSkgeyB9CiAgICAgU2hvdWxkQ2FsbEJhc2VF
dmVudEhhbmRsZXIgaGFuZGxlS2V5ZG93bkV2ZW50KEtleWJvYXJkRXZlbnQmKSBvdmVycmlkZTsK
ICAgICB2b2lkIGZpcmVJbnB1dEFuZENoYW5nZUV2ZW50cygpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0Jhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0Jhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlLmgKaW5kZXggZmU4NzEz
Y2JhNzBjYWY5YzczMGM0M2Y3MjMwZDQ3MTkyZDA2MzM0Mi4uOGRhMTI4Yjk2MGQxZjM1MmUwMmFk
MjIwOWJlYzI2YzM0OTk2MDg5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNl
Q2xpY2thYmxlV2l0aEtleUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFz
ZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUuaApAQCAtNDMsNyArNDMsNyBAQCBjbGFzcyBCYXNl
Q2xpY2thYmxlV2l0aEtleUlucHV0VHlwZSA6IHB1YmxpYyBJbnB1dFR5cGUgewogICAgIHN0YXRp
YyBib29sIGFjY2Vzc0tleUFjdGlvbihIVE1MSW5wdXRFbGVtZW50JiwgYm9vbCBzZW5kTW91c2VF
dmVudHMpOwogICAgIAogcHJvdGVjdGVkOgotICAgIGV4cGxpY2l0IEJhc2VDbGlja2FibGVXaXRo
S2V5SW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogSW5wdXRUeXBlKGVsZW1l
bnQpIHsgfQorICAgIGV4cGxpY2l0IEJhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlKEhUTUxJ
bnB1dEVsZW1lbnQmIGVsZW1lbnQsIFR5cGUgdHlwZSkgOiBJbnB1dFR5cGUoZWxlbWVudCwgdHlw
ZSkgeyB9CiAKIHByaXZhdGU6CiAgICAgU2hvdWxkQ2FsbEJhc2VFdmVudEhhbmRsZXIgaGFuZGxl
S2V5ZG93bkV2ZW50KEtleWJvYXJkRXZlbnQmKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcAppbmRleCBiYTUzNzBmMmYwODQz
ZDU0YjY2MWEwYTM4MjdlODI0MzI2NmY1MTUwLi40YTJiOTc1ZjliYjExNGI0MDAzMGVlYzY0Y2Fi
YWY5YzYxZDEwZjcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5k
VGltZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRp
bWVJbnB1dFR5cGUuY3BwCkBAIC0xNjcsNyArMTY3LDcgQEAgRGVjaW1hbCBCYXNlRGF0ZUFuZFRp
bWVJbnB1dFR5cGU6OmRlZmF1bHRWYWx1ZUZvclN0ZXBVcCgpIGNvbnN0CiAgICAgcmV0dXJuIERl
Y2ltYWw6OmZyb21Eb3VibGUobXMgKyAob2Zmc2V0ICogbXNQZXJNaW51dGUpKTsKIH0KIAotYm9v
bCBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmlzU3RlcHBhYmxlKCkgY29uc3QKK2Jvb2wgQmFz
ZURhdGVBbmRUaW1lSW5wdXRUeXBlOjppc1N0ZXBwYWJsZVNsb3coKSBjb25zdAogewogICAgIHJl
dHVybiB0cnVlOwogfQpAQCAtMzA3LDcgKzMwNyw3IEBAIHZvaWQgQmFzZURhdGVBbmRUaW1lSW5w
dXRUeXBlOjpoYW5kbGVET01BY3RpdmF0ZUV2ZW50KEV2ZW50JikKICAgICB9CiB9CiAKLXZvaWQg
QmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKK3ZvaWQgQmFz
ZURhdGVBbmRUaW1lSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlQW5kVXBkYXRlSW5uZXJU
ZXh0RWxlbWVudEVkaXRhYmlsaXR5KENvbnRhaW5lck5vZGU6OkNoaWxkQ2hhbmdlOjpTb3VyY2Us
IGJvb2wpCiB7CiAgICAgQVNTRVJUKGVsZW1lbnQoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oCmluZGV4IDk5NDc4NDM1OThiMWVlOWE4MjI0
YWM1OWEyZWFhZWVmMTE4Nzc0NTUuLmUwOTI2NDliZDAyYzZjMWNiODNjNzI0NDQ2ZDg2MDBiMDk5
NDBjOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5w
dXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5
cGUuaApAQCAtNTgsNyArNTgsNyBAQCBjbGFzcyBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUgOiBw
dWJsaWMgSW5wdXRUeXBlLCBwcml2YXRlIERhdGVUaW1lQ2hvb3NlckNsaWVudAogICAgICAgICBI
YXNNZXJpZGllbSA9IDEgPDwgNywKICAgICB9OwogCi0gICAgQmFzZURhdGVBbmRUaW1lSW5wdXRU
eXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogSW5wdXRUeXBlKGVsZW1lbnQpIHsgfQor
ICAgIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50LCBU
eXBlIHR5cGUpIDogSW5wdXRUeXBlKGVsZW1lbnQsIHR5cGUpIHsgfQogICAgIH5CYXNlRGF0ZUFu
ZFRpbWVJbnB1dFR5cGUoKTsKIAogICAgIERlY2ltYWwgcGFyc2VUb051bWJlcihjb25zdCBTdHJp
bmcmLCBjb25zdCBEZWNpbWFsJikgY29uc3Qgb3ZlcnJpZGU7CkBAIC02Nyw2ICs2Nyw5IEBAIGNs
YXNzIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZSA6IHB1YmxpYyBJbnB1dFR5cGUsIHByaXZhdGUg
RGF0ZVRpbWVDaG9vc2VyQ2xpZW50CiAKICAgICBib29sIHNob3VsZEhhdmVTZWNvbmRGaWVsZChj
b25zdCBEYXRlQ29tcG9uZW50cyYpIGNvbnN0OwogICAgIGJvb2wgc2hvdWxkSGF2ZU1pbGxpc2Vj
b25kRmllbGQoY29uc3QgRGF0ZUNvbXBvbmVudHMmKSBjb25zdDsKKyAgICBib29sIHR5cGVNaXNt
YXRjaEZvcihjb25zdCBTdHJpbmcmKSBjb25zdCBmaW5hbDsKKyAgICBib29sIHR5cGVNaXNtYXRj
aCgpIGNvbnN0IGZpbmFsOworICAgIGJvb2wgdmFsdWVNaXNzaW5nKGNvbnN0IFN0cmluZyYpIGNv
bnN0IGZpbmFsOwogCiBwcml2YXRlOgogICAgIGNsYXNzIERhdGVUaW1lRm9ybWF0VmFsaWRhdG9y
IGZpbmFsIDogcHVibGljIERhdGVUaW1lRm9ybWF0OjpUb2tlbkhhbmRsZXIgewpAQCAtOTYsMTEg
Kzk5LDggQEAgY2xhc3MgQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlIDogcHVibGljIElucHV0VHlw
ZSwgcHJpdmF0ZSBEYXRlVGltZUNob29zZXJDbGllbnQKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBz
ZXRWYWx1ZUFzRGF0ZShkb3VibGUpIGNvbnN0IG92ZXJyaWRlOwogICAgIGRvdWJsZSB2YWx1ZUFz
RG91YmxlKCkgY29uc3QgZmluYWw7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0VmFsdWVBc0Rl
Y2ltYWwoY29uc3QgRGVjaW1hbCYsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IpIGNvbnN0IGZpbmFs
OwotICAgIGJvb2wgdHlwZU1pc21hdGNoRm9yKGNvbnN0IFN0cmluZyYpIGNvbnN0IGZpbmFsOwot
ICAgIGJvb2wgdHlwZU1pc21hdGNoKCkgY29uc3QgZmluYWw7Ci0gICAgYm9vbCB2YWx1ZU1pc3Np
bmcoY29uc3QgU3RyaW5nJikgY29uc3QgZmluYWw7CiAgICAgRGVjaW1hbCBkZWZhdWx0VmFsdWVG
b3JTdGVwVXAoKSBjb25zdCBvdmVycmlkZTsKLSAgICBib29sIGlzU3RlcHBhYmxlKCkgY29uc3Qg
ZmluYWw7CisgICAgYm9vbCBpc1N0ZXBwYWJsZVNsb3coKSBjb25zdCBmaW5hbDsKICAgICBTdHJp
bmcgbG9jYWxpemVWYWx1ZShjb25zdCBTdHJpbmcmKSBjb25zdCBmaW5hbDsKICAgICBib29sIHN1
cHBvcnRzUmVhZE9ubHkoKSBjb25zdCBmaW5hbDsKICAgICBib29sIHNob3VsZFJlc3BlY3RMaXN0
QXR0cmlidXRlKCkgZmluYWw7CkBAIC0xMDgsNyArMTA4LDcgQEAgY2xhc3MgQmFzZURhdGVBbmRU
aW1lSW5wdXRUeXBlIDogcHVibGljIElucHV0VHlwZSwgcHJpdmF0ZSBEYXRlVGltZUNob29zZXJD
bGllbnQKICAgICBib29sIGlzTW91c2VGb2N1c2FibGUoKSBjb25zdCBmaW5hbDsKIAogICAgIHZv
aWQgaGFuZGxlRE9NQWN0aXZhdGVFdmVudChFdmVudCYpIG92ZXJyaWRlOwotICAgIHZvaWQgY3Jl
YXRlU2hhZG93U3VidHJlZSgpIGZpbmFsOworICAgIHZvaWQgY3JlYXRlU2hhZG93U3VidHJlZUFu
ZFVwZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0YWJpbGl0eShDb250YWluZXJOb2RlOjpDaGlsZENo
YW5nZTo6U291cmNlLCBib29sKSBmaW5hbDsKICAgICB2b2lkIGRlc3Ryb3lTaGFkb3dTdWJ0cmVl
KCkgZmluYWw7CiAgICAgdm9pZCB1cGRhdGVJbm5lclRleHRWYWx1ZSgpIGZpbmFsOwogICAgIGJv
b2wgaGFzQ3VzdG9tRm9jdXNMb2dpYygpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9CYXNlVGV4dElucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9C
YXNlVGV4dElucHV0VHlwZS5oCmluZGV4IDM4ZDNhZTVmZTU3YzhkNDI4M2JkM2UyODEzMGZlNDk1
ZDIyZWYzMDYuLmI1NmM2ODM5ODNjNDdjNTk5ODRlYmVhNjI0N2MzYTljN2FlNjg1YzggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZVRleHRJbnB1dFR5cGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0Jhc2VUZXh0SW5wdXRUeXBlLmgKQEAgLTM4LDkgKzM4LDggQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogLy8gVGhleSBzdXBwb3J0IG1heGxlbmd0aCwgc2VsZWN0aW9uIGZ1
bmN0aW9ucywgYW5kIHNvIG9uLgogY2xhc3MgQmFzZVRleHRJbnB1dFR5cGUgOiBwdWJsaWMgVGV4
dEZpZWxkSW5wdXRUeXBlIHsKIHByb3RlY3RlZDoKLSAgICBleHBsaWNpdCBCYXNlVGV4dElucHV0
VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IFRleHRGaWVsZElucHV0VHlwZShlbGVt
ZW50KSB7IH0KKyAgICBleHBsaWNpdCBCYXNlVGV4dElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50
JiBlbGVtZW50LCBUeXBlIHR5cGUpIDogVGV4dEZpZWxkSW5wdXRUeXBlKGVsZW1lbnQsIHR5cGUp
IHsgfQogCi1wcml2YXRlOgogICAgIGJvb2wgaXNUZXh0VHlwZSgpIGNvbnN0IG92ZXJyaWRlOwog
ICAgIGJvb2wgcGF0dGVybk1pc21hdGNoKGNvbnN0IFN0cmluZyYpIGNvbnN0IG92ZXJyaWRlOwog
ICAgIGJvb2wgc3VwcG9ydHNQbGFjZWhvbGRlcigpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CdXR0b25JbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvQnV0dG9uSW5wdXRUeXBlLmgKaW5kZXggODYxZjk1YTY5YzgwYTgxOGNjNDBhOTFiMTU4
ZmQwMDFhNzdkMzA0OC4uM2Y5MjdhMWFkYjRkOWM4ZDZiNWFiNjlmYTI3YjNjYTIwNDRiNmJmZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CdXR0b25JbnB1dFR5cGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0J1dHRvbklucHV0VHlwZS5oCkBAIC0zNSw4ICszNSw5IEBACiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEJ1dHRvbklucHV0VHlwZSBmaW5hbCA6IHB1Ymxp
YyBCYXNlQnV0dG9uSW5wdXRUeXBlIHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEb3duY2FzdGVk
VHlwZT4gZnJpZW5kIGJvb2wgaXNJbnZhbGlkSW5wdXRUeXBlKGNvbnN0IElucHV0VHlwZSYsIGNv
bnN0IFN0cmluZyYpOwogcHVibGljOgotICAgIGV4cGxpY2l0IEJ1dHRvbklucHV0VHlwZShIVE1M
SW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VCdXR0b25JbnB1dFR5cGUoZWxlbWVudCkgeyB9
CisgICAgZXhwbGljaXQgQnV0dG9uSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQp
IDogQmFzZUJ1dHRvbklucHV0VHlwZShlbGVtZW50LCBUeXBlOjpCdXR0b24pIHsgfQogCiBwcml2
YXRlOgogICAgIGNvbnN0IEF0b21TdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IG92ZXJy
aWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9DaGVja2JveElucHV0VHlwZS5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9DaGVja2JveElucHV0VHlwZS5oCmluZGV4IGViMTFiMWIx
NzZlYmI1YzUzMDM1NzQ0YzU1ZGVjNDAxMzA3M2YxODAuLjk1MWU5YmI4NGI0ZDA2Mzk2MTQ4NGE4
OTBlNzE5ODI4NjczOGJhZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ2hlY2ti
b3hJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NoZWNrYm94SW5wdXRUeXBl
LmgKQEAgLTM1LDggKzM1LDkgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ2hlY2ti
b3hJbnB1dFR5cGUgZmluYWwgOiBwdWJsaWMgQmFzZUNoZWNrYWJsZUlucHV0VHlwZSB7CisgICAg
dGVtcGxhdGU8dHlwZW5hbWUgRG93bmNhc3RlZFR5cGU+IGZyaWVuZCBib29sIGlzSW52YWxpZElu
cHV0VHlwZShjb25zdCBJbnB1dFR5cGUmLCBjb25zdCBTdHJpbmcmKTsKIHB1YmxpYzoKLSAgICBl
eHBsaWNpdCBDaGVja2JveElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJh
c2VDaGVja2FibGVJbnB1dFR5cGUoZWxlbWVudCkgeyB9CisgICAgZXhwbGljaXQgQ2hlY2tib3hJ
bnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlQ2hlY2thYmxlSW5wdXRU
eXBlKGVsZW1lbnQsIFR5cGU6OkNoZWNrYm94KSB7IH0KIAogcHJpdmF0ZToKICAgICBjb25zdCBB
dG9tU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9Db2xvcklucHV0VHlwZS5jcHAKaW5kZXggNjk1NjRkMzBkZDgzZjZmNTk4NmE1OGFiNDIwZjQ4
ZWRkMzYwMDE4Yy4uNDE0ZmE0ZjZkMjA5M2ZkZWU5NjEyNTcwMjBlMzhiNWJmMDBlYzVjOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAKQEAgLTEzOSw3ICsxMzksNyBAQCBD
b2xvciBDb2xvcklucHV0VHlwZTo6dmFsdWVBc0NvbG9yKCkgY29uc3QKICAgICByZXR1cm4gcGFy
c2VTaW1wbGVDb2xvclZhbHVlKGVsZW1lbnQoKS0+dmFsdWUoKSkudmFsdWUoKTsKIH0KIAotdm9p
ZCBDb2xvcklucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCit2b2lkIENvbG9ySW5wdXRU
eXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlQW5kVXBkYXRlSW5uZXJUZXh0RWxlbWVudEVkaXRhYmls
aXR5KENvbnRhaW5lck5vZGU6OkNoaWxkQ2hhbmdlOjpTb3VyY2UsIGJvb2wpCiB7CiAgICAgQVNT
RVJUKGVsZW1lbnQoKSk7CiAgICAgQVNTRVJUKGVsZW1lbnQoKS0+c2hhZG93Um9vdCgpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuaAppbmRleCBmNzRkNzZmMWI5ZmY1MDg0MjZiMjE0
NGExZmE1YThiYTI0MGNlNzBiLi40M2VhOWYwOGY5MjEwZWRiNDM5NGUzMmQzYjI1ZTgxODVkYWE4
MDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5oCkBAIC00MCw4ICs0MCw5IEBA
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENvbG9ySW5wdXRUeXBlIGZpbmFsIDogcHVi
bGljIEJhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlLCBwcml2YXRlIENvbG9yQ2hvb3NlckNs
aWVudCB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRG93bmNhc3RlZFR5cGU+IGZyaWVuZCBib29s
IGlzSW52YWxpZElucHV0VHlwZShjb25zdCBJbnB1dFR5cGUmLCBjb25zdCBTdHJpbmcmKTsKIHB1
YmxpYzoKLSAgICBleHBsaWNpdCBDb2xvcklucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVt
ZW50KSA6IEJhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlKGVsZW1lbnQpIHsgfQorICAgIGV4
cGxpY2l0IENvbG9ySW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFzZUNs
aWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUoZWxlbWVudCwgVHlwZTo6Q29sb3IpIHsgfQogICAgIHZp
cnR1YWwgfkNvbG9ySW5wdXRUeXBlKCk7CiAKIHByaXZhdGU6CkBAIC01Nyw3ICs1OCw3IEBAIGNs
YXNzIENvbG9ySW5wdXRUeXBlIGZpbmFsIDogcHVibGljIEJhc2VDbGlja2FibGVXaXRoS2V5SW5w
dXRUeXBlLCBwcml2YXRlIENvbG9yCiAgICAgYm9vbCBzdXBwb3J0c1JlcXVpcmVkKCkgY29uc3Qg
ZmluYWw7CiAgICAgU3RyaW5nIGZhbGxiYWNrVmFsdWUoKSBjb25zdCBmaW5hbDsKICAgICBTdHJp
bmcgc2FuaXRpemVWYWx1ZShjb25zdCBTdHJpbmcmKSBjb25zdCBmaW5hbDsKLSAgICB2b2lkIGNy
ZWF0ZVNoYWRvd1N1YnRyZWUoKSBmaW5hbDsKKyAgICB2b2lkIGNyZWF0ZVNoYWRvd1N1YnRyZWVB
bmRVcGRhdGVJbm5lclRleHRFbGVtZW50RWRpdGFiaWxpdHkoQ29udGFpbmVyTm9kZTo6Q2hpbGRD
aGFuZ2U6OlNvdXJjZSwgYm9vbCkgZmluYWw7CiAgICAgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJp
bmcmLCBib29sIHZhbHVlQ2hhbmdlZCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikgZmluYWw7CiAg
ICAgdm9pZCBoYW5kbGVET01BY3RpdmF0ZUV2ZW50KEV2ZW50JikgZmluYWw7CiAgICAgdm9pZCBk
ZXRhY2goKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0
VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuY3BwCmluZGV4IDkx
ZTExMDY5MzMxYjI3ZDdiNjVkMzQ0ZDNhMDQyOTM3MTZhOWJlZDcuLjJmZjM3N2NmYjMwYzU3Mjdi
MjY1NGE3M2I1ZGZlYTdiNmQyMmU3MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
RGF0ZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlSW5wdXRUeXBl
LmNwcApAQCAtNTAsNyArNTAsNyBAQCBzdGF0aWMgY29uc3QgaW50IGRhdGVTdGVwU2NhbGVGYWN0
b3IgPSA4NjQwMDAwMDsKIHN0YXRpYyBjb25zdCBTdGVwUmFuZ2U6OlN0ZXBEZXNjcmlwdGlvbiBk
YXRlU3RlcERlc2NyaXB0aW9uIHsgZGF0ZURlZmF1bHRTdGVwLCBkYXRlRGVmYXVsdFN0ZXBCYXNl
LCBkYXRlU3RlcFNjYWxlRmFjdG9yLCBTdGVwUmFuZ2U6OlBhcnNlZFN0ZXBWYWx1ZVNob3VsZEJl
SW50ZWdlciB9OwogCiBEYXRlSW5wdXRUeXBlOjpEYXRlSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1l
bnQmIGVsZW1lbnQpCi0gICAgOiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUoZWxlbWVudCkKKyAg
ICA6IEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZShlbGVtZW50LCBUeXBlOjpEYXRlKQogewogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5oCmluZGV4IDQxNzkxYjg1ZjQ5NjVhMmQ1NGQ2
ZWZkYzVmYWViZmQxZmZmY2RhMTIuLmQ2NjEyMWUyN2I0NjQ2MTliMjA4ZDFjOGZkMmIzZDM3NWZk
M2JkNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5oCkBAIC0zNyw2ICszNyw3IEBA
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERhdGVJbnB1dFR5cGUgZmluYWwgOiBwdWJs
aWMgQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlIHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEb3du
Y2FzdGVkVHlwZT4gZnJpZW5kIGJvb2wgaXNJbnZhbGlkSW5wdXRUeXBlKGNvbnN0IElucHV0VHlw
ZSYsIGNvbnN0IFN0cmluZyYpOwogcHVibGljOgogICAgIGV4cGxpY2l0IERhdGVJbnB1dFR5cGUo
SFRNTElucHV0RWxlbWVudCYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Rh
dGVUaW1lTG9jYWxJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2Nh
bElucHV0VHlwZS5oCmluZGV4IDA2ZmY2OTdjNzc3NjI0MDJmM2U2NmJkNzI4MDU1Y2Y1MjdlMWZm
ZGMuLjlmNTRlOTAwZTM3M2M1OGE2MjBjZDM5YjdhOWEzNDg1OTljZjZjZjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5oCkBAIC0zNyw5ICszNywxMCBA
QAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEYXRlVGltZUxvY2FsSW5wdXRUeXBlIGZp
bmFsIDogcHVibGljIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZSB7CisgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgRG93bmNhc3RlZFR5cGU+IGZyaWVuZCBib29sIGlzSW52YWxpZElucHV0VHlwZShjb25z
dCBJbnB1dFR5cGUmLCBjb25zdCBTdHJpbmcmKTsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBEYXRl
VGltZUxvY2FsSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCi0gICAgICAgIDog
QmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlKGVsZW1lbnQpCisgICAgICAgIDogQmFzZURhdGVBbmRU
aW1lSW5wdXRUeXBlKGVsZW1lbnQsIFR5cGU6OkRhdGVUaW1lTG9jYWwpCiAgICAgewogICAgIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9FbWFpbElucHV0VHlwZS5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9FbWFpbElucHV0VHlwZS5oCmluZGV4IDAyYWQzZGIzYTVlNjUxZDdh
MTc5ZjM5NGE3NjEyOTlhZjI5MDFjZDUuLjBiYzUxZGI0MDYxMWMxYjIzYTE4YThhYTU5YjZlMjI0
NjI5MWM4MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRW1haWxJbnB1dFR5cGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0VtYWlsSW5wdXRUeXBlLmgKQEAgLTM1LDggKzM1
LDkgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRW1haWxJbnB1dFR5cGUgZmluYWwg
OiBwdWJsaWMgQmFzZVRleHRJbnB1dFR5cGUgeworICAgIHRlbXBsYXRlPHR5cGVuYW1lIERvd25j
YXN0ZWRUeXBlPiBmcmllbmQgYm9vbCBpc0ludmFsaWRJbnB1dFR5cGUoY29uc3QgSW5wdXRUeXBl
JiwgY29uc3QgU3RyaW5nJik7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgRW1haWxJbnB1dFR5cGUo
SFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlVGV4dElucHV0VHlwZShlbGVtZW50KSB7
IH0KKyAgICBleHBsaWNpdCBFbWFpbElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50
KSA6IEJhc2VUZXh0SW5wdXRUeXBlKGVsZW1lbnQsIFR5cGU6OkVtYWlsKSB7IH0KIAogcHJpdmF0
ZToKICAgICBjb25zdCBBdG9tU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBvdmVycmlk
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCmluZGV4IDUzNDE4ZTRhYWQ4ZGI1
MDM4MDE2YzdhOGE0MzA3M2QwY2UwZThiMmQuLmZjNTkxY2UxY2MwOGRlNzJkOTZlMDZmMWJhMGNj
MDRiYzk2YTQxM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlw
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcApAQCAtMTA2
LDcgKzEwNiw3IEBAIFVwbG9hZEJ1dHRvbkVsZW1lbnQ6OlVwbG9hZEJ1dHRvbkVsZW1lbnQoRG9j
dW1lbnQmIGRvY3VtZW50KQogfQogCiBGaWxlSW5wdXRUeXBlOjpGaWxlSW5wdXRUeXBlKEhUTUxJ
bnB1dEVsZW1lbnQmIGVsZW1lbnQpCi0gICAgOiBCYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlw
ZShlbGVtZW50KQorICAgIDogQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUoZWxlbWVudCwg
VHlwZTo6RmlsZSkKICAgICAsIG1fZmlsZUxpc3QoRmlsZUxpc3Q6OmNyZWF0ZSgpKQogewogfQpA
QCAtMjc4LDcgKzI3OCw3IEBAIGJvb2wgRmlsZUlucHV0VHlwZTo6aXNGaWxlVXBsb2FkKCkgY29u
c3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBGaWxlSW5wdXRUeXBlOjpjcmVhdGVTaGFk
b3dTdWJ0cmVlKCkKK3ZvaWQgRmlsZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZUFuZFVw
ZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0YWJpbGl0eShDb250YWluZXJOb2RlOjpDaGlsZENoYW5n
ZTo6U291cmNlLCBib29sKQogewogICAgIEFTU0VSVChlbGVtZW50KCkpOwogICAgIEFTU0VSVChl
bGVtZW50KCktPnNoYWRvd1Jvb3QoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0ZpbGVJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5oCmlu
ZGV4IGI0MmY5MDRjYzE1NmJjYmI1M2IyN2M3N2ZkZmE0NDI5NjhmMmMyMmIuLmY5ZDJjOGU0MmUz
YTVjOWU0ZTcxNmM3MDIyMjRiM2Y3NWEwMzZkOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvRmlsZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0
VHlwZS5oCkBAIC00NSw2ICs0NSw3IEBAIGNsYXNzIEZpbGVMaXN0OwogY2xhc3MgSWNvbjsKIAog
Y2xhc3MgRmlsZUlucHV0VHlwZSBmaW5hbCA6IHB1YmxpYyBCYXNlQ2xpY2thYmxlV2l0aEtleUlu
cHV0VHlwZSwgcHJpdmF0ZSBGaWxlQ2hvb3NlckNsaWVudCwgcHJpdmF0ZSBGaWxlSWNvbkxvYWRl
ckNsaWVudCwgcHVibGljIENhbk1ha2VXZWFrUHRyPEZpbGVJbnB1dFR5cGU+IHsKKyAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBEb3duY2FzdGVkVHlwZT4gZnJpZW5kIGJvb2wgaXNJbnZhbGlkSW5wdXRU
eXBlKGNvbnN0IElucHV0VHlwZSYsIGNvbnN0IFN0cmluZyYpOwogcHVibGljOgogICAgIGV4cGxp
Y2l0IEZpbGVJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYpOwogICAgIHZpcnR1YWwgfkZpbGVJ
bnB1dFR5cGUoKTsKQEAgLTc3LDcgKzc4LDcgQEAgY2xhc3MgRmlsZUlucHV0VHlwZSBmaW5hbCA6
IHB1YmxpYyBCYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlwZSwgcHJpdmF0ZSBGaWxlQ2gKIAog
ICAgIEljb24qIGljb24oKSBjb25zdCBmaW5hbDsKICAgICBib29sIGlzRmlsZVVwbG9hZCgpIGNv
bnN0IGZpbmFsOwotICAgIHZvaWQgY3JlYXRlU2hhZG93U3VidHJlZSgpIGZpbmFsOworICAgIHZv
aWQgY3JlYXRlU2hhZG93U3VidHJlZUFuZFVwZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0YWJpbGl0
eShDb250YWluZXJOb2RlOjpDaGlsZENoYW5nZTo6U291cmNlLCBib29sKSBmaW5hbDsKICAgICB2
b2lkIGRpc2FibGVkU3RhdGVDaGFuZ2VkKCkgZmluYWw7CiAgICAgdm9pZCBhdHRyaWJ1dGVDaGFu
Z2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBmaW5hbDsKICAgICBTdHJpbmcgZGVmYXVsdFRvb2xU
aXAoKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElu
cHV0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3Bw
CmluZGV4IDM5NGQ5NTYyNTU5NmI5NjY2NjgyM2EzNjhlNzFhZDVjM2MyZTliOTIuLmY1ZDQ5MWI2
YzVkNzRjMDQwMDJlMjU5ZTFkNWQ3NzQyMWE4NjAwNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MSW5wdXRFbGVtZW50LmNwcApAQCAtMTU4LDggKzE1OCw3IEBAIEhUTUxJbWFnZUxvYWRlciYg
SFRNTElucHV0RWxlbWVudDo6ZW5zdXJlSW1hZ2VMb2FkZXIoKQogdm9pZCBIVE1MSW5wdXRFbGVt
ZW50OjpkaWRBZGRVc2VyQWdlbnRTaGFkb3dSb290KFNoYWRvd1Jvb3QmKQogewogICAgIFJlZjxJ
bnB1dFR5cGU+IHByb3RlY3RlZElucHV0VHlwZSgqbV9pbnB1dFR5cGUpOwotICAgIHByb3RlY3Rl
ZElucHV0VHlwZS0+Y3JlYXRlU2hhZG93U3VidHJlZSgpOwotICAgIHVwZGF0ZUlubmVyVGV4dEVs
ZW1lbnRFZGl0YWJpbGl0eSgpOworICAgIHByb3RlY3RlZElucHV0VHlwZS0+Y3JlYXRlU2hhZG93
U3VidHJlZUFuZFVwZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0YWJpbGl0eShtX3BhcnNpbmdJblBy
b2dyZXNzID8gQ2hpbGRDaGFuZ2U6OlNvdXJjZTo6UGFyc2VyIDogQ2hpbGRDaGFuZ2U6OlNvdXJj
ZTo6QVBJLCBpc0lubmVyVGV4dEVsZW1lbnRFZGl0YWJsZSgpKTsKIH0KIAogSFRNTElucHV0RWxl
bWVudDo6fkhUTUxJbnB1dEVsZW1lbnQoKQpAQCAtMzkwLDkgKzM4OSw3IEBAIGJvb2wgSFRNTElu
cHV0RWxlbWVudDo6aXNWYWxpZCgpIGNvbnN0CiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAg
U3RyaW5nIHZhbHVlID0gdGhpcy0+dmFsdWUoKTsKLSAgICBib29sIHNvbWVFcnJvciA9IG1faW5w
dXRUeXBlLT50eXBlTWlzbWF0Y2goKSB8fCBtX2lucHV0VHlwZS0+c3RlcE1pc21hdGNoKHZhbHVl
KSB8fCBtX2lucHV0VHlwZS0+cmFuZ2VVbmRlcmZsb3codmFsdWUpIHx8IG1faW5wdXRUeXBlLT5y
YW5nZU92ZXJmbG93KHZhbHVlKQotICAgICAgICB8fCB0b29TaG9ydCh2YWx1ZSwgQ2hlY2tEaXJ0
eUZsYWcpIHx8IHRvb0xvbmcodmFsdWUsIENoZWNrRGlydHlGbGFnKSB8fCBtX2lucHV0VHlwZS0+
cGF0dGVybk1pc21hdGNoKHZhbHVlKSB8fCBtX2lucHV0VHlwZS0+dmFsdWVNaXNzaW5nKHZhbHVl
KQotICAgICAgICB8fCBtX2lucHV0VHlwZS0+aGFzQmFkSW5wdXQoKSB8fCBjdXN0b21FcnJvcigp
OworICAgIGJvb2wgc29tZUVycm9yID0gbV9pbnB1dFR5cGUtPmlzSW52YWxpZCh2YWx1ZSkgfHwg
dG9vU2hvcnQodmFsdWUsIENoZWNrRGlydHlGbGFnKSB8fCB0b29Mb25nKHZhbHVlLCBDaGVja0Rp
cnR5RmxhZykgfHwgY3VzdG9tRXJyb3IoKTsKICAgICByZXR1cm4gIXNvbWVFcnJvcjsKIH0KIApA
QCAtNTY0LDggKzU2MSw3IEBAIHZvaWQgSFRNTElucHV0RWxlbWVudDo6dXBkYXRlVHlwZSgpCiAg
ICAgbV9pbnB1dFR5cGUtPmRldGFjaEZyb21FbGVtZW50KCk7CiAKICAgICBtX2lucHV0VHlwZSA9
IFdURk1vdmUobmV3VHlwZSk7Ci0gICAgbV9pbnB1dFR5cGUtPmNyZWF0ZVNoYWRvd1N1YnRyZWUo
KTsKLSAgICB1cGRhdGVJbm5lclRleHRFbGVtZW50RWRpdGFiaWxpdHkoKTsKKyAgICBtX2lucHV0
VHlwZS0+Y3JlYXRlU2hhZG93U3VidHJlZUFuZFVwZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0YWJp
bGl0eShtX3BhcnNpbmdJblByb2dyZXNzID8gQ2hpbGRDaGFuZ2U6OlNvdXJjZTo6UGFyc2VyIDog
Q2hpbGRDaGFuZ2U6OlNvdXJjZTo6QVBJLCBpc0lubmVyVGV4dEVsZW1lbnRFZGl0YWJsZSgpKTsK
IAogICAgIHNldE5lZWRzV2lsbFZhbGlkYXRlQ2hlY2soKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAKaW5kZXggNWVlNjU1NmJmZWNmNmZjN2FmZTNhN2Q3
M2M3MDM5OTQwNDdjMmNjMS4uZjM2MjRhY2JmMzYzOWFhM2QyZGY0MjdjYWYyYzBjZjM5ZmJmMjk1
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwCkBAIC0x
MTAsOCArMTEwLDcgQEAgUmVmPEhUTUxUZXh0QXJlYUVsZW1lbnQ+IEhUTUxUZXh0QXJlYUVsZW1l
bnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiAKIHZvaWQgSFRNTFRleHRBcmVhRWxlbWVu
dDo6ZGlkQWRkVXNlckFnZW50U2hhZG93Um9vdChTaGFkb3dSb290JiByb290KQogewotICAgIHJv
b3QuYXBwZW5kQ2hpbGQoVGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50OjpjcmVhdGUoZG9jdW1l
bnQoKSkpOwotICAgIHVwZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0YWJpbGl0eSgpOworICAgIHJv
b3QuYXBwZW5kQ2hpbGQoVGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50OjpjcmVhdGUoZG9jdW1l
bnQoKSwgaXNJbm5lclRleHRFbGVtZW50RWRpdGFibGUoKSkpOwogfQogCiBjb25zdCBBdG9tU3Ry
aW5nJiBIVE1MVGV4dEFyZWFFbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUoKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRl
eCAwNWIwZmMwZDc3OTBiYTEwYTE2NGVjYzliYmYyY2Y2MjkxYjMzOGZiLi44MmJmMTlhZTgyODY3
OGQ0NGVhZmNkNjQ3OThlN2UwYzM2MGVmNjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcApAQCAtNTQwLDEyICs1NDAsOCBAQCBi
b29sIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojppc0lubmVyVGV4dEVsZW1lbnRFZGl0YWJs
ZSgpIGNvbnN0CiAKIHZvaWQgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnVwZGF0ZUlubmVy
VGV4dEVsZW1lbnRFZGl0YWJpbGl0eSgpCiB7Ci0gICAgaWYgKGF1dG8gaW5uZXJUZXh0ID0gaW5u
ZXJUZXh0RWxlbWVudCgpKSB7Ci0gICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQXRvbVN0cmluZz4gcGxhaW5UZXh0T25seU5hbWUoInBsYWludGV4dC1vbmx5Iiwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgICAgICBzdGF0aWMgTWFpblRo
cmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGZhbHNlTmFtZSgiZmFsc2UiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgICAgIGNvbnN0IGF1dG8mIHZh
bHVlID0gaXNJbm5lclRleHRFbGVtZW50RWRpdGFibGUoKSA/IHBsYWluVGV4dE9ubHlOYW1lLmdl
dCgpIDogZmFsc2VOYW1lLmdldCgpOwotICAgICAgICBpbm5lclRleHQtPnNldEF0dHJpYnV0ZVdp
dGhvdXRTeW5jaHJvbml6YXRpb24oY29udGVudGVkaXRhYmxlQXR0ciwgdmFsdWUpOwotICAgIH0K
KyAgICBpZiAoYXV0byBpbm5lclRleHQgPSBpbm5lclRleHRFbGVtZW50KCkpCisgICAgICAgIGlu
bmVyVGV4dC0+dXBkYXRlSW5uZXJUZXh0RWxlbWVudEVkaXRhYmlsaXR5KGlzSW5uZXJUZXh0RWxl
bWVudEVkaXRhYmxlKCkpOwogfQogCiBib29sIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojps
YXN0Q2hhbmdlV2FzVXNlckVkaXQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IaWRkZW5JbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSGlkZGVuSW5wdXRU
eXBlLmgKaW5kZXggNjgzYzZiZDc1YTJiMmFhYTZjZmNjMDZmZWM4ZDZkMDI2NjJkZDFhMS4uNzk5
ZDkxZGVlMmIwYzhjYzdhMGEzOTg1NTQ3ZThkMmU3Njk3NTlkNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hpZGRlbklucHV0VHlwZS5oCkBAIC0zNSw4ICszNSw5IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIEhpZGRlbklucHV0VHlwZSBmaW5hbCA6IHB1YmxpYyBJbnB1dFR5cGUgeworICAg
IHRlbXBsYXRlPHR5cGVuYW1lIERvd25jYXN0ZWRUeXBlPiBmcmllbmQgYm9vbCBpc0ludmFsaWRJ
bnB1dFR5cGUoY29uc3QgSW5wdXRUeXBlJiwgY29uc3QgU3RyaW5nJik7CiBwdWJsaWM6Ci0gICAg
ZXhwbGljaXQgSGlkZGVuSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogSW5w
dXRUeXBlKGVsZW1lbnQpIHsgfQorICAgIGV4cGxpY2l0IEhpZGRlbklucHV0VHlwZShIVE1MSW5w
dXRFbGVtZW50JiBlbGVtZW50KSA6IElucHV0VHlwZShlbGVtZW50LCBUeXBlOjpIaWRkZW4pIHsg
fQogCiBwcml2YXRlOgogICAgIGNvbnN0IEF0b21TdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNv
bnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0
VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmNwcAppbmRleCA1
NjE1YjQ0NmRmNmFkMTAyZDg1MTg2ZTcxODIwZmQyZjI0YmVhMGI1Li45ZTg2YTJjYzdmZTc3OGVi
OGUzMDhmNGQ1ZjJmNzdlNzdmZGY4Y2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0ltYWdlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRU
eXBlLmNwcApAQCAtNDAsNyArNDAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiB1c2luZyBuYW1l
c3BhY2UgSFRNTE5hbWVzOwogCiBJbWFnZUlucHV0VHlwZTo6SW1hZ2VJbnB1dFR5cGUoSFRNTElu
cHV0RWxlbWVudCYgZWxlbWVudCkKLSAgICA6IEJhc2VCdXR0b25JbnB1dFR5cGUoZWxlbWVudCkK
KyAgICA6IEJhc2VCdXR0b25JbnB1dFR5cGUoZWxlbWVudCwgVHlwZTo6SW1hZ2UpCiB7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuaAppbmRleCAyNjc4NjEwZjZjYjhiOWI3MWRj
YTU1ZDAwZTNmZGIxY2RiNzIwMzRkLi4zYjY1YzlhZjVhZTYwNWU0YzIzNzU5ZGNiYzQ5NzljZTkx
Y2VlNzM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5oCkBAIC0zOCw2ICszOCw3
IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEltYWdlSW5wdXRUeXBlIGZpbmFsIDog
cHVibGljIEJhc2VCdXR0b25JbnB1dFR5cGUgeworICAgIHRlbXBsYXRlPHR5cGVuYW1lIERvd25j
YXN0ZWRUeXBlPiBmcmllbmQgYm9vbCBpc0ludmFsaWRJbnB1dFR5cGUoY29uc3QgSW5wdXRUeXBl
JiwgY29uc3QgU3RyaW5nJik7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgSW1hZ2VJbnB1dFR5cGUo
SFRNTElucHV0RWxlbWVudCYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lu
cHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKaW5kZXggNDBi
MzdjZTZmZDlhZDc0MzcxZjU0ZjAyYjk2ZjM4Mzg1Mzk3YTk3MS4uNjg1YzAzZmVkMjM3NmZjN2Vm
NDM5NTEyNGViMzlmNjg4OTMxOTFkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9J
bnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcApAQCAt
MzAxLDYgKzMwMSw4MiBAQCBib29sIElucHV0VHlwZTo6cmFuZ2VPdmVyZmxvdyhjb25zdCBTdHJp
bmcmIHZhbHVlKSBjb25zdAogICAgIHJldHVybiBudW1lcmljVmFsdWUgPiBjcmVhdGVTdGVwUmFu
Z2UoQW55U3RlcEhhbmRsaW5nOjpSZWplY3QpLm1heGltdW0oKTsKIH0KIAorYm9vbCBJbnB1dFR5
cGU6OmlzSW52YWxpZChjb25zdCBTdHJpbmcmIHZhbHVlKSBjb25zdAoreworICAgIHN3aXRjaCAo
bV90eXBlKSB7CisgICAgY2FzZSBUeXBlOjpCdXR0b246CisgICAgICAgIHJldHVybiBpc0ludmFs
aWRJbnB1dFR5cGU8QnV0dG9uSW5wdXRUeXBlPigqdGhpcywgdmFsdWUpOworICAgIGNhc2UgVHlw
ZTo6Q2hlY2tib3g6CisgICAgICAgIHJldHVybiBpc0ludmFsaWRJbnB1dFR5cGU8Q2hlY2tib3hJ
bnB1dFR5cGU+KCp0aGlzLCB2YWx1ZSk7CisgICAgY2FzZSBUeXBlOjpDb2xvcjoKKyNpZiBFTkFC
TEUoSU5QVVRfVFlQRV9DT0xPUikKKyAgICAgICAgcmV0dXJuIGlzSW52YWxpZElucHV0VHlwZTxD
b2xvcklucHV0VHlwZT4oKnRoaXMsIHZhbHVlKTsKKyNlbHNlCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyNlbmRpZgorICAgIGNhc2UgVHlwZTo6RGF0ZToKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9E
QVRFKQorICAgICAgICByZXR1cm4gaXNJbnZhbGlkSW5wdXRUeXBlPERhdGVJbnB1dFR5cGU+KCp0
aGlzLCB2YWx1ZSk7CisjZWxzZQorICAgICAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKKyAgICBj
YXNlIFR5cGU6OkRhdGVUaW1lTG9jYWw6CisjaWYgRU5BQkxFKElOUFVUX1RZUEVfREFURVRJTUVM
T0NBTCkKKyAgICAgICAgcmV0dXJuIGlzSW52YWxpZElucHV0VHlwZTxEYXRlVGltZUxvY2FsSW5w
dXRUeXBlPigqdGhpcywgdmFsdWUpOworI2Vsc2UKKyAgICAgICAgcmV0dXJuIGZhbHNlOworI2Vu
ZGlmCisgICAgY2FzZSBUeXBlOjpFbWFpbDoKKyAgICAgICAgcmV0dXJuIGlzSW52YWxpZElucHV0
VHlwZTxFbWFpbElucHV0VHlwZT4oKnRoaXMsIHZhbHVlKTsKKyAgICBjYXNlIFR5cGU6OkZpbGU6
CisgICAgICAgIHJldHVybiBpc0ludmFsaWRJbnB1dFR5cGU8RmlsZUlucHV0VHlwZT4oKnRoaXMs
IHZhbHVlKTsKKyAgICBjYXNlIFR5cGU6OkhpZGRlbjoKKyAgICAgICAgcmV0dXJuIGlzSW52YWxp
ZElucHV0VHlwZTxIaWRkZW5JbnB1dFR5cGU+KCp0aGlzLCB2YWx1ZSk7CisgICAgY2FzZSBUeXBl
OjpJbWFnZToKKyAgICAgICAgcmV0dXJuIGlzSW52YWxpZElucHV0VHlwZTxJbWFnZUlucHV0VHlw
ZT4oKnRoaXMsIHZhbHVlKTsKKyAgICBjYXNlIFR5cGU6Ok1vbnRoOgorI2lmIEVOQUJMRShJTlBV
VF9UWVBFX01PTlRIKQorICAgICAgICByZXR1cm4gaXNJbnZhbGlkSW5wdXRUeXBlPE1vbnRoSW5w
dXRUeXBlPigqdGhpcywgdmFsdWUpOworI2Vsc2UKKyAgICAgICAgcmV0dXJuIGZhbHNlOworI2Vu
ZGlmCisgICAgY2FzZSBUeXBlOjpOdW1iZXI6CisgICAgICAgIHJldHVybiBpc0ludmFsaWRJbnB1
dFR5cGU8TnVtYmVySW5wdXRUeXBlPigqdGhpcywgdmFsdWUpOworICAgIGNhc2UgVHlwZTo6UGFz
c3dvcmQ6CisgICAgICAgIHJldHVybiBpc0ludmFsaWRJbnB1dFR5cGU8UGFzc3dvcmRJbnB1dFR5
cGU+KCp0aGlzLCB2YWx1ZSk7CisgICAgY2FzZSBUeXBlOjpSYWRpbzoKKyAgICAgICAgcmV0dXJu
IGlzSW52YWxpZElucHV0VHlwZTxSYWRpb0lucHV0VHlwZT4oKnRoaXMsIHZhbHVlKTsKKyAgICBj
YXNlIFR5cGU6OlJhbmdlOgorICAgICAgICByZXR1cm4gaXNJbnZhbGlkSW5wdXRUeXBlPFJhbmdl
SW5wdXRUeXBlPigqdGhpcywgdmFsdWUpOworICAgIGNhc2UgVHlwZTo6UmVzZXQ6CisgICAgICAg
IHJldHVybiBpc0ludmFsaWRJbnB1dFR5cGU8UmVzZXRJbnB1dFR5cGU+KCp0aGlzLCB2YWx1ZSk7
CisgICAgY2FzZSBUeXBlOjpTZWFyY2g6CisgICAgICAgIHJldHVybiBpc0ludmFsaWRJbnB1dFR5
cGU8U2VhcmNoSW5wdXRUeXBlPigqdGhpcywgdmFsdWUpOworICAgIGNhc2UgVHlwZTo6U3VibWl0
OgorICAgICAgICByZXR1cm4gaXNJbnZhbGlkSW5wdXRUeXBlPFN1Ym1pdElucHV0VHlwZT4oKnRo
aXMsIHZhbHVlKTsKKyAgICBjYXNlIFR5cGU6OlRlbGVwaG9uZToKKyAgICAgICAgcmV0dXJuIGlz
SW52YWxpZElucHV0VHlwZTxUZWxlcGhvbmVJbnB1dFR5cGU+KCp0aGlzLCB2YWx1ZSk7CisgICAg
Y2FzZSBUeXBlOjpUaW1lOgorI2lmIEVOQUJMRShJTlBVVF9UWVBFX1RJTUUpCisgICAgICAgIHJl
dHVybiBpc0ludmFsaWRJbnB1dFR5cGU8VGltZUlucHV0VHlwZT4oKnRoaXMsIHZhbHVlKTsKKyNl
bHNlCisgICAgICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorICAgIGNhc2UgVHlwZTo6VVJMOgor
ICAgICAgICByZXR1cm4gaXNJbnZhbGlkSW5wdXRUeXBlPFVSTElucHV0VHlwZT4oKnRoaXMsIHZh
bHVlKTsKKyAgICBjYXNlIFR5cGU6OldlZWs6CisjaWYgRU5BQkxFKElOUFVUX1RZUEVfV0VFSykK
KyAgICAgICAgcmV0dXJuIGlzSW52YWxpZElucHV0VHlwZTxXZWVrSW5wdXRUeXBlPigqdGhpcywg
dmFsdWUpOworI2Vsc2UKKyAgICAgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCisgICAgY2FzZSBU
eXBlOjpUZXh0OgorICAgICAgICByZXR1cm4gaXNJbnZhbGlkSW5wdXRUeXBlPFRleHRJbnB1dFR5
cGU+KCp0aGlzLCB2YWx1ZSk7CisgICAgfQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
IHJldHVybiBmYWxzZTsKK30KKwogRGVjaW1hbCBJbnB1dFR5cGU6OmRlZmF1bHRWYWx1ZUZvclN0
ZXBVcCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIDA7CkBAIC00OTIsNyArNTY4LDcgQEAgdm9pZCBJ
bnB1dFR5cGU6OmJsdXIoKQogICAgIGVsZW1lbnQoKS0+ZGVmYXVsdEJsdXIoKTsKIH0KIAotdm9p
ZCBJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQordm9pZCBJbnB1dFR5cGU6OmNyZWF0
ZVNoYWRvd1N1YnRyZWVBbmRVcGRhdGVJbm5lclRleHRFbGVtZW50RWRpdGFiaWxpdHkoQ29udGFp
bmVyTm9kZTo6Q2hpbGRDaGFuZ2U6OlNvdXJjZSwgYm9vbCkKIHsKIH0KIApAQCAtODU1LDkgKzkz
MSwyMyBAQCBib29sIElucHV0VHlwZTo6aXNDaGVja2FibGUoKQogICAgIHJldHVybiBmYWxzZTsK
IH0KIAorLy8gRG8gbm90IHVzZSB2aXJ0dWFsIGZ1bmN0aW9uIGZvciBwZXJmb3JtYW5jZSByZWFz
b24uCiBib29sIElucHV0VHlwZTo6aXNTdGVwcGFibGUoKSBjb25zdAogewotICAgIHJldHVybiBm
YWxzZTsKKyAgICBzd2l0Y2ggKG1fdHlwZSkgeworICAgIGNhc2UgVHlwZTo6RGF0ZToKKyAgICBj
YXNlIFR5cGU6OkRhdGVUaW1lTG9jYWw6CisgICAgY2FzZSBUeXBlOjpNb250aDoKKyAgICBjYXNl
IFR5cGU6OlRpbWU6CisgICAgY2FzZSBUeXBlOjpXZWVrOgorICAgIGNhc2UgVHlwZTo6TnVtYmVy
OgorICAgIGNhc2UgVHlwZTo6UmFuZ2U6CisgICAgICAgIEFTU0VSVChpc1N0ZXBwYWJsZVNsb3co
KSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVCgh
aXNTdGVwcGFibGVTbG93KCkpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQogfQogCiBi
b29sIElucHV0VHlwZTo6aXNDb2xvckNvbnRyb2woKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBl
LmgKaW5kZXggZjkxMzQ3MzQ1MDUzMTJkODc5Y2VkYjRkMmI2NmFhMjg0M2I3MDM5OS4uZDBlOWI4
ZWZiYmFhYjMzNjA4YjQ5ZWQ4YTAzMjE1YzRhY2JmYWVlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9JbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlw
ZS5oCkBAIC03MCw4ICs3MCwzMiBAQCBlbnVtIGNsYXNzIERhdGVDb21wb25lbnRzVHlwZSA6IHVp
bnQ4X3Q7CiAvLyBvdGhlciB0aGFuIEhUTUxJbnB1dEVsZW1lbnQuCiBjbGFzcyBJbnB1dFR5cGUg
OiBwdWJsaWMgUmVmQ291bnRlZDxJbnB1dFR5cGU+IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKLQogcHVibGljOgorICAgIGVudW0gY2xhc3MgVHlwZSA6IHVpbnQ4X3QgeworICAgICAg
ICBCdXR0b24sCisgICAgICAgIENoZWNrYm94LAorICAgICAgICBDb2xvciwKKyAgICAgICAgRGF0
ZSwKKyAgICAgICAgRGF0ZVRpbWVMb2NhbCwKKyAgICAgICAgRW1haWwsCisgICAgICAgIEZpbGUs
CisgICAgICAgIEhpZGRlbiwKKyAgICAgICAgSW1hZ2UsCisgICAgICAgIE1vbnRoLAorICAgICAg
ICBOdW1iZXIsCisgICAgICAgIFBhc3N3b3JkLAorICAgICAgICBSYWRpbywKKyAgICAgICAgUmFu
Z2UsCisgICAgICAgIFJlc2V0LAorICAgICAgICBTZWFyY2gsCisgICAgICAgIFN1Ym1pdCwKKyAg
ICAgICAgVGVsZXBob25lLAorICAgICAgICBUaW1lLAorICAgICAgICBVUkwsCisgICAgICAgIFdl
ZWssCisgICAgICAgIFRleHQsCisgICAgfTsKKwogICAgIHN0YXRpYyBSZWY8SW5wdXRUeXBlPiBj
cmVhdGUoSFRNTElucHV0RWxlbWVudCYsIGNvbnN0IEF0b21TdHJpbmcmKTsKICAgICBzdGF0aWMg
UmVmPElucHV0VHlwZT4gY3JlYXRlVGV4dChIVE1MSW5wdXRFbGVtZW50Jik7CiAgICAgdmlydHVh
bCB+SW5wdXRUeXBlKCk7CkBAIC0yMTcsNyArMjQxLDcgQEAgY2xhc3MgSW5wdXRUeXBlIDogcHVi
bGljIFJlZkNvdW50ZWQ8SW5wdXRUeXBlPiB7CiAKICAgICAvLyBTaGFkb3cgdHJlZSBoYW5kbGlu
Zy4KIAotICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVTaGFkb3dTdWJ0cmVlKCk7CisgICAgdmlydHVh
bCB2b2lkIGNyZWF0ZVNoYWRvd1N1YnRyZWVBbmRVcGRhdGVJbm5lclRleHRFbGVtZW50RWRpdGFi
aWxpdHkoQ29udGFpbmVyTm9kZTo6Q2hpbGRDaGFuZ2U6OlNvdXJjZSwgYm9vbCk7CiAgICAgdmly
dHVhbCB2b2lkIGRlc3Ryb3lTaGFkb3dTdWJ0cmVlKCk7CiAKICAgICB2aXJ0dWFsIEhUTUxFbGVt
ZW50KiBjb250YWluZXJFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQpAQCAtMjU0
LDcgKzI3OCw2IEBAIGNsYXNzIElucHV0VHlwZSA6IHB1YmxpYyBSZWZDb3VudGVkPElucHV0VHlw
ZT4gewogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSZXNwZWN0TGlzdEF0dHJpYnV0ZSgpOwogICAg
IHZpcnR1YWwgYm9vbCBpc0VudW1lcmF0YWJsZSgpOwogICAgIHZpcnR1YWwgYm9vbCBpc0NoZWNr
YWJsZSgpOwotICAgIHZpcnR1YWwgYm9vbCBpc1N0ZXBwYWJsZSgpIGNvbnN0OwogICAgIHZpcnR1
YWwgYm9vbCBzaG91bGRSZXNwZWN0SGVpZ2h0QW5kV2lkdGhBdHRyaWJ1dGVzKCk7CiAgICAgdmly
dHVhbCBib29sIHN1cHBvcnRzUGxhY2Vob2xkZXIoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wg
c3VwcG9ydHNSZWFkT25seSgpIGNvbnN0OwpAQCAtMjc1LDYgKzI5OCw4IEBAIGNsYXNzIElucHV0
VHlwZSA6IHB1YmxpYyBSZWZDb3VudGVkPElucHV0VHlwZT4gewogICAgIHZpcnR1YWwgdm9pZCBz
ZWxlY3RDb2xvcihTdHJpbmdWaWV3KTsKICAgICB2aXJ0dWFsIFZlY3RvcjxDb2xvcj4gc3VnZ2Vz
dGVkQ29sb3JzKCkgY29uc3Q7CiAKKyAgICBib29sIGlzU3RlcHBhYmxlKCkgY29uc3Q7CisKICAg
ICAvLyBQYXJzZXMgdGhlIHNwZWNpZmllZCBzdHJpbmcgZm9yIHRoZSB0eXBlLCBhbmQgcmV0dXJu
CiAgICAgLy8gdGhlIERlY2ltYWwgdmFsdWUgZm9yIHRoZSBwYXJzaW5nIHJlc3VsdCBpZiB0aGUg
cGFyc2luZwogICAgIC8vIHN1Y2NlZWRzOyBSZXR1cm5zIGRlZmF1bHRWYWx1ZSBvdGhlcndpc2Uu
IFRoaXMgZnVuY3Rpb24gY2FuCkBAIC0yOTEsNiArMzE2LDggQEAgY2xhc3MgSW5wdXRUeXBlIDog
cHVibGljIFJlZkNvdW50ZWQ8SW5wdXRUeXBlPiB7CiAgICAgdmlydHVhbCB1bnNpZ25lZCBoZWln
aHQoKSBjb25zdDsKICAgICB2aXJ0dWFsIHVuc2lnbmVkIHdpZHRoKCkgY29uc3Q7CiAKKyAgICBi
b29sIGlzSW52YWxpZChjb25zdCBTdHJpbmcmKSBjb25zdDsKKwogICAgIHZvaWQgZGlzcGF0Y2hT
aW11bGF0ZWRDbGlja0lmQWN0aXZlKEtleWJvYXJkRXZlbnQmKSBjb25zdDsKIAogI2lmIEVOQUJM
RShEQVRBTElTVF9FTEVNRU5UKQpAQCAtMzA3LDIwICszMzQsMzAgQEAgY2xhc3MgSW5wdXRUeXBl
IDogcHVibGljIFJlZkNvdW50ZWQ8SW5wdXRUeXBlPiB7CiAgICAgdmlydHVhbCBTdHJpbmcgZGlz
cGxheVN0cmluZygpIGNvbnN0OwogCiBwcm90ZWN0ZWQ6Ci0gICAgZXhwbGljaXQgSW5wdXRUeXBl
KEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCi0gICAgICAgIDogbV9lbGVtZW50KG1ha2VXZWFr
UHRyKGVsZW1lbnQpKSB7IH0KKyAgICBleHBsaWNpdCBJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVu
dCYgZWxlbWVudCwgVHlwZSB0eXBlKQorICAgICAgICA6IG1fdHlwZSh0eXBlKQorICAgICAgICAs
IG1fZWxlbWVudChtYWtlV2Vha1B0cihlbGVtZW50KSkgeyB9CiAgICAgSFRNTElucHV0RWxlbWVu
dCogZWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZWxlbWVudC5nZXQoKTsgfQogICAgIENocm9t
ZSogY2hyb21lKCkgY29uc3Q7CiAgICAgRGVjaW1hbCBwYXJzZVRvTnVtYmVyT3JOYU4oY29uc3Qg
U3RyaW5nJikgY29uc3Q7CisgICAgdmlydHVhbCBib29sIGlzU3RlcHBhYmxlU2xvdygpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CiAKIHByaXZhdGU6CiAgICAgLy8gSGVscGVyIGZvciBzdGVwVXAo
KS9zdGVwRG93bigpLiBBZGRzIHN0ZXAgdmFsdWUgKiBjb3VudCB0byB0aGUgY3VycmVudCB2YWx1
ZS4KICAgICBFeGNlcHRpb25Pcjx2b2lkPiBhcHBseVN0ZXAoaW50IGNvdW50LCBBbnlTdGVwSGFu
ZGxpbmcsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IpOwogCiAgICAgLy8gbV9lbGVtZW50IGlzIG51
bGwgaWYgdGhpcyBJbnB1dFR5cGUgaXMgbm8gbG9uZ2VyIGFzc29jaWF0ZWQgd2l0aCBhbiBlbGVt
ZW50IChlaXRoZXIgdGhlIGVsZW1lbnQgZGllZCBvciBjaGFuZ2VkIGlucHV0IHR5cGUpLgorICAg
IFR5cGUgbV90eXBlOwogICAgIFdlYWtQdHI8SFRNTElucHV0RWxlbWVudD4gbV9lbGVtZW50Owog
fTsKIAordGVtcGxhdGU8dHlwZW5hbWUgRG93bmNhc3RlZFR5cGU+CitBTFdBWVNfSU5MSU5FIGJv
b2wgaXNJbnZhbGlkSW5wdXRUeXBlKGNvbnN0IElucHV0VHlwZSYgYmFzZUlucHV0VHlwZSwgY29u
c3QgU3RyaW5nJiB2YWx1ZSkKK3sKKyAgICBhdXRvJiBpbnB1dFR5cGUgPSBzdGF0aWNfY2FzdDxj
b25zdCBEb3duY2FzdGVkVHlwZSY+KGJhc2VJbnB1dFR5cGUpOworICAgIHJldHVybiBpbnB1dFR5
cGUudHlwZU1pc21hdGNoKCkgfHwgaW5wdXRUeXBlLnN0ZXBNaXNtYXRjaCh2YWx1ZSkgfHwgaW5w
dXRUeXBlLnJhbmdlVW5kZXJmbG93KHZhbHVlKSB8fCBpbnB1dFR5cGUucmFuZ2VPdmVyZmxvdyh2
YWx1ZSkgfHwgaW5wdXRUeXBlLnBhdHRlcm5NaXNtYXRjaCh2YWx1ZSkgfHwgaW5wdXRUeXBlLnZh
bHVlTWlzc2luZyh2YWx1ZSkgfHwgaW5wdXRUeXBlLmhhc0JhZElucHV0KCk7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAogI2RlZmluZSBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0lOUFVU
X1RZUEUoVG9WYWx1ZVR5cGVOYW1lLCBwcmVkaWNhdGUpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJ
bnB1dFR5cGUuaAppbmRleCA0ZDdiYjQ3YTg1M2I5ZGE1NDI5YmFhNTZiNThjYTY2NWJmZmNhNTE2
Li4zZmRhZmY0YzNjNTZlZjFkMmU3MDE4YTAwNGQxNTIxMDI0MWE4YzIzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9Nb250aElucHV0VHlwZS5oCkBAIC0zNyw5ICszNywxMCBAQAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjbGFzcyBNb250aElucHV0VHlwZSBmaW5hbCA6IHB1YmxpYyBCYXNlRGF0ZUFuZFRp
bWVJbnB1dFR5cGUgeworICAgIHRlbXBsYXRlPHR5cGVuYW1lIERvd25jYXN0ZWRUeXBlPiBmcmll
bmQgYm9vbCBpc0ludmFsaWRJbnB1dFR5cGUoY29uc3QgSW5wdXRUeXBlJiwgY29uc3QgU3RyaW5n
Jik7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgTW9udGhJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVu
dCYgZWxlbWVudCkKLSAgICAgICAgOiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUoZWxlbWVudCkK
KyAgICAgICAgOiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUoZWxlbWVudCwgVHlwZTo6TW9udGgp
CiAgICAgewogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJ
bnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuY3BwCmlu
ZGV4IGJiMjgxNGQ4Yzc2ZGM0OWFhMGQyZjA5MDczYzY1ZjllMmNhMGVkMWYuLmU2N2I0OGZmZDFm
YmVlMzdjZDU5MDNkMGU0MjQwNGVmNzI3ZDNmOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvTnVtYmVySW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJl
cklucHV0VHlwZS5jcHAKQEAgLTIxMCw3ICsyMTAsNyBAQCBmbG9hdCBOdW1iZXJJbnB1dFR5cGU6
OmRlY29yYXRpb25XaWR0aCgpIGNvbnN0CiAgICAgcmV0dXJuIHdpZHRoOwogfQogCi1ib29sIE51
bWJlcklucHV0VHlwZTo6aXNTdGVwcGFibGUoKSBjb25zdAorYm9vbCBOdW1iZXJJbnB1dFR5cGU6
OmlzU3RlcHBhYmxlU2xvdygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuaAppbmRleCBkZTUxYTRhMzBkNTMwMGRiMjUyZDgyMDk3
NmNhYzJkMjRhMTVlMDcwLi5mMmZiMmQ3ZDZjN2EyMDljNzc3Y2ZiOTIwNjgzZTM5YmI2NDRhZTAx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmgKQEAgLTM2LDggKzM2LDkgQEAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTnVtYmVySW5wdXRUeXBlIGZpbmFsIDogcHVi
bGljIFRleHRGaWVsZElucHV0VHlwZSB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRG93bmNhc3Rl
ZFR5cGU+IGZyaWVuZCBib29sIGlzSW52YWxpZElucHV0VHlwZShjb25zdCBJbnB1dFR5cGUmLCBj
b25zdCBTdHJpbmcmKTsKIHB1YmxpYzoKLSAgICBleHBsaWNpdCBOdW1iZXJJbnB1dFR5cGUoSFRN
TElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBUZXh0RmllbGRJbnB1dFR5cGUoZWxlbWVudCkgeyB9
CisgICAgZXhwbGljaXQgTnVtYmVySW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQp
IDogVGV4dEZpZWxkSW5wdXRUeXBlKGVsZW1lbnQsIFR5cGU6Ok51bWJlcikgeyB9CiAKIHByaXZh
dGU6CiAgICAgY29uc3QgQXRvbVN0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3QgZmluYWw7
CkBAIC00OSw3ICs1MCw3IEBAIGNsYXNzIE51bWJlcklucHV0VHlwZSBmaW5hbCA6IHB1YmxpYyBU
ZXh0RmllbGRJbnB1dFR5cGUgewogICAgIGJvb2wgdHlwZU1pc21hdGNoKCkgY29uc3QgZmluYWw7
CiAgICAgYm9vbCBzaXplU2hvdWxkSW5jbHVkZURlY29yYXRpb24oaW50IGRlZmF1bHRTaXplLCBp
bnQmIHByZWZlcnJlZFNpemUpIGNvbnN0IGZpbmFsOwogICAgIGZsb2F0IGRlY29yYXRpb25XaWR0
aCgpIGNvbnN0IGZpbmFsOwotICAgIGJvb2wgaXNTdGVwcGFibGUoKSBjb25zdCBmaW5hbDsKKyAg
ICBib29sIGlzU3RlcHBhYmxlU2xvdygpIGNvbnN0IGZpbmFsOwogICAgIFN0ZXBSYW5nZSBjcmVh
dGVTdGVwUmFuZ2UoQW55U3RlcEhhbmRsaW5nKSBjb25zdCBmaW5hbDsKICAgICBTaG91bGRDYWxs
QmFzZUV2ZW50SGFuZGxlciBoYW5kbGVLZXlkb3duRXZlbnQoS2V5Ym9hcmRFdmVudCYpIGZpbmFs
OwogICAgIERlY2ltYWwgcGFyc2VUb051bWJlcihjb25zdCBTdHJpbmcmLCBjb25zdCBEZWNpbWFs
JikgY29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Bhc3N3b3Jk
SW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1Bhc3N3b3JkSW5wdXRUeXBlLmgKaW5k
ZXggZDRmZDBjZjIyNTViMjAyNWVhMWMyYWMzNDE3MzYyMzUzNmMyOWNkYy4uZTg5Yzc2NTUxYTNj
NDkyM2JjNmJiNWJhYTY3NzU0YWVhOWE2ZWU3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9QYXNzd29yZElucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGFzc3dv
cmRJbnB1dFR5cGUuaApAQCAtMzUsOCArMzUsOSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBQYXNzd29yZElucHV0VHlwZSBmaW5hbCA6IHB1YmxpYyBCYXNlVGV4dElucHV0VHlwZSB7
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRG93bmNhc3RlZFR5cGU+IGZyaWVuZCBib29sIGlzSW52
YWxpZElucHV0VHlwZShjb25zdCBJbnB1dFR5cGUmLCBjb25zdCBTdHJpbmcmKTsKIHB1YmxpYzoK
LSAgICBleHBsaWNpdCBQYXNzd29yZElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50
KSA6IEJhc2VUZXh0SW5wdXRUeXBlKGVsZW1lbnQpIHsgfQorICAgIGV4cGxpY2l0IFBhc3N3b3Jk
SW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFzZVRleHRJbnB1dFR5cGUo
ZWxlbWVudCwgVHlwZTo6UGFzc3dvcmQpIHsgfQogCiBwcml2YXRlOgogICAgIGNvbnN0IEF0b21T
dHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9SYWRpb0lucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9S
YWRpb0lucHV0VHlwZS5oCmluZGV4IDcwMmMyN2ZjNGJjZjM2NzcyM2ExYjJlZGIyOTllNDllNmI0
NjEwODguLjM2NmU5ODA5YTBkZDI4ZDc4MTkyYzJjZDlmNWFkNjU1NDBhZGIxYzAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFkaW9JbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL1JhZGlvSW5wdXRUeXBlLmgKQEAgLTM2LDggKzM2LDkgQEAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgUmFkaW9JbnB1dFR5cGUgZmluYWwgOiBwdWJsaWMgQmFzZUNoZWNr
YWJsZUlucHV0VHlwZSB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRG93bmNhc3RlZFR5cGU+IGZy
aWVuZCBib29sIGlzSW52YWxpZElucHV0VHlwZShjb25zdCBJbnB1dFR5cGUmLCBjb25zdCBTdHJp
bmcmKTsKIHB1YmxpYzoKLSAgICBleHBsaWNpdCBSYWRpb0lucHV0VHlwZShIVE1MSW5wdXRFbGVt
ZW50JiBlbGVtZW50KSA6IEJhc2VDaGVja2FibGVJbnB1dFR5cGUoZWxlbWVudCkgeyB9CisgICAg
ZXhwbGljaXQgUmFkaW9JbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNl
Q2hlY2thYmxlSW5wdXRUeXBlKGVsZW1lbnQsIFR5cGU6OlJhZGlvKSB7IH0KIAogcHJpdmF0ZToK
ICAgICBjb25zdCBBdG9tU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBmaW5hbDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKaW5kZXggNWYzMmNjMWY5YWExMzMwNDU2
YThhODY2M2Q3ZGMxNjkwZTc3YzA3OS4uZTM0YmE3NjM4MzBhOTAxYjdjMmE2MDBmOTM4Y2E0MDYw
NGNkODFjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKQEAgLTgwLDcg
KzgwLDcgQEAgc3RhdGljIERlY2ltYWwgZW5zdXJlTWF4aW11bShjb25zdCBEZWNpbWFsJiBwcm9w
b3NlZFZhbHVlLCBjb25zdCBEZWNpbWFsJiBtaW5pbXUKIH0KIAogUmFuZ2VJbnB1dFR5cGU6OlJh
bmdlSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCi0gICAgOiBJbnB1dFR5cGUo
ZWxlbWVudCkKKyAgICA6IElucHV0VHlwZShlbGVtZW50LCBUeXBlOjpSYW5nZSkKIHsKIH0KIApA
QCAtMTMzLDcgKzEzMyw3IEBAIFN0ZXBSYW5nZSBSYW5nZUlucHV0VHlwZTo6Y3JlYXRlU3RlcFJh
bmdlKEFueVN0ZXBIYW5kbGluZyBhbnlTdGVwSGFuZGxpbmcpIGNvbnN0CiAgICAgcmV0dXJuIFN0
ZXBSYW5nZShtaW5pbXVtLCBSYW5nZUxpbWl0YXRpb25zOjpWYWxpZCwgbWluaW11bSwgbWF4aW11
bSwgc3RlcCwgcmFuZ2VTdGVwRGVzY3JpcHRpb24pOwogfQogCi1ib29sIFJhbmdlSW5wdXRUeXBl
Ojppc1N0ZXBwYWJsZSgpIGNvbnN0Citib29sIFJhbmdlSW5wdXRUeXBlOjppc1N0ZXBwYWJsZVNs
b3coKSBjb25zdAogewogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMjUyLDcgKzI1Miw3IEBAIGF1
dG8gUmFuZ2VJbnB1dFR5cGU6OmhhbmRsZUtleWRvd25FdmVudChLZXlib2FyZEV2ZW50JiBldmVu
dCkgLT4gU2hvdWxkQ2FsbEJhc2VFCiAgICAgcmV0dXJuIFNob3VsZENhbGxCYXNlRXZlbnRIYW5k
bGVyOjpZZXM7CiB9CiAKLXZvaWQgUmFuZ2VJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUo
KQordm9pZCBSYW5nZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZUFuZFVwZGF0ZUlubmVy
VGV4dEVsZW1lbnRFZGl0YWJpbGl0eShDb250YWluZXJOb2RlOjpDaGlsZENoYW5nZTo6U291cmNl
LCBib29sKQogewogICAgIEFTU0VSVChlbGVtZW50KCkpOwogICAgIEFTU0VSVChlbGVtZW50KCkt
PnVzZXJBZ2VudFNoYWRvd1Jvb3QoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L1JhbmdlSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmgK
aW5kZXggYzk2MjdiMzJlNDU5NGY0MmVhYTVlZDY0NDFlM2I4NjlmMjcxMjVjZS4uMzM4NGM2YzI2
NWY5N2ZmOWY1NjNjZDhmOTAwNDQxOTAzMzM5NjA0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9SYW5nZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJ
bnB1dFR5cGUuaApAQCAtMzgsNiArMzgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBT
bGlkZXJUaHVtYkVsZW1lbnQ7CiAKIGNsYXNzIFJhbmdlSW5wdXRUeXBlIGZpbmFsIDogcHVibGlj
IElucHV0VHlwZSB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRG93bmNhc3RlZFR5cGU+IGZyaWVu
ZCBib29sIGlzSW52YWxpZElucHV0VHlwZShjb25zdCBJbnB1dFR5cGUmLCBjb25zdCBTdHJpbmcm
KTsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBSYW5nZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50
Jik7CiAKQEAgLTQ5LDExICs1MCwxMSBAQCBjbGFzcyBSYW5nZUlucHV0VHlwZSBmaW5hbCA6IHB1
YmxpYyBJbnB1dFR5cGUgewogICAgIGJvb2wgdHlwZU1pc21hdGNoRm9yKGNvbnN0IFN0cmluZyYp
IGNvbnN0IGZpbmFsOwogICAgIGJvb2wgc3VwcG9ydHNSZXF1aXJlZCgpIGNvbnN0IGZpbmFsOwog
ICAgIFN0ZXBSYW5nZSBjcmVhdGVTdGVwUmFuZ2UoQW55U3RlcEhhbmRsaW5nKSBjb25zdCBmaW5h
bDsKLSAgICBib29sIGlzU3RlcHBhYmxlKCkgY29uc3QgZmluYWw7CisgICAgYm9vbCBpc1N0ZXBw
YWJsZVNsb3coKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIGhhbmRsZU1vdXNlRG93bkV2ZW50KE1v
dXNlRXZlbnQmKSBmaW5hbDsKICAgICBTaG91bGRDYWxsQmFzZUV2ZW50SGFuZGxlciBoYW5kbGVL
ZXlkb3duRXZlbnQoS2V5Ym9hcmRFdmVudCYpIGZpbmFsOwogICAgIFJlbmRlclB0cjxSZW5kZXJF
bGVtZW50PiBjcmVhdGVJbnB1dFJlbmRlcmVyKFJlbmRlclN0eWxlJiYpIGZpbmFsOwotICAgIHZv
aWQgY3JlYXRlU2hhZG93U3VidHJlZSgpIGZpbmFsOworICAgIHZvaWQgY3JlYXRlU2hhZG93U3Vi
dHJlZUFuZFVwZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0YWJpbGl0eShDb250YWluZXJOb2RlOjpD
aGlsZENoYW5nZTo6U291cmNlLCBib29sKSBmaW5hbDsKICAgICBEZWNpbWFsIHBhcnNlVG9OdW1i
ZXIoY29uc3QgU3RyaW5nJiwgY29uc3QgRGVjaW1hbCYpIGNvbnN0IGZpbmFsOwogICAgIFN0cmlu
ZyBzZXJpYWxpemUoY29uc3QgRGVjaW1hbCYpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgYWNjZXNz
S2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvUmVzZXRJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmVz
ZXRJbnB1dFR5cGUuaAppbmRleCA5N2FiMTJhOGI5ZjUwMzUwZDc0OTM3ZDIyNzNjNzg2YmEzNThk
ZDIyLi4wNTA4YzY1NGMzMGVlMGRiNzgzN2RjOGU4ZGY0ZjI3M2UzYjRlNGFhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Jlc2V0SW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9SZXNldElucHV0VHlwZS5oCkBAIC0zNSw4ICszNSw5IEBACiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIFJlc2V0SW5wdXRUeXBlIGZpbmFsIDogcHVibGljIEJhc2VCdXR0b25J
bnB1dFR5cGUgeworICAgIHRlbXBsYXRlPHR5cGVuYW1lIERvd25jYXN0ZWRUeXBlPiBmcmllbmQg
Ym9vbCBpc0ludmFsaWRJbnB1dFR5cGUoY29uc3QgSW5wdXRUeXBlJiwgY29uc3QgU3RyaW5nJik7
CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgUmVzZXRJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYg
ZWxlbWVudCkgOiBCYXNlQnV0dG9uSW5wdXRUeXBlKGVsZW1lbnQpIHsgfQorICAgIGV4cGxpY2l0
IFJlc2V0SW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFzZUJ1dHRvbklu
cHV0VHlwZShlbGVtZW50LCBUeXBlOjpSZXNldCkgeyB9CiAKIHByaXZhdGU6CiAgICAgY29uc3Qg
QXRvbVN0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL1NlYXJjaElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1NlYXJjaElucHV0VHlwZS5jcHAKaW5kZXggMTg3ZjNmNjRmZjk1NjMwMDMxMmZlYmEw
ZjdjMTMwYWJjZjc5ZWI0MS4uYTRjNzNjNWNjNmI3ZDE3MWI4ODMyZGU5YjI3MTg4MDc4ODMzMDc0
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5cGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvU2VhcmNoSW5wdXRUeXBlLmNwcApAQCAtNDUsNyArNDUs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCiBT
ZWFyY2hJbnB1dFR5cGU6OlNlYXJjaElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50
KQotICAgIDogQmFzZVRleHRJbnB1dFR5cGUoZWxlbWVudCkKKyAgICA6IEJhc2VUZXh0SW5wdXRU
eXBlKGVsZW1lbnQsIFR5cGU6OlNlYXJjaCkKICAgICAsIG1fc2VhcmNoRXZlbnRUaW1lcigqdGhp
cywgJlNlYXJjaElucHV0VHlwZTo6c2VhcmNoRXZlbnRUaW1lckZpcmVkKQogewogfQpAQCAtMTA3
LDEyICsxMDcsMTIgQEAgYm9vbCBTZWFyY2hJbnB1dFR5cGU6Om5lZWRzQ29udGFpbmVyKCkgY29u
c3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBTZWFyY2hJbnB1dFR5cGU6OmNyZWF0ZVNo
YWRvd1N1YnRyZWUoKQordm9pZCBTZWFyY2hJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWVB
bmRVcGRhdGVJbm5lclRleHRFbGVtZW50RWRpdGFiaWxpdHkoQ29udGFpbmVyTm9kZTo6Q2hpbGRD
aGFuZ2U6OlNvdXJjZSBzb3VyY2UsIGJvb2wgaXNJbm5lclRleHRFbGVtZW50RWRpdGFibGUpCiB7
CiAgICAgQVNTRVJUKCFtX3Jlc3VsdHNCdXR0b24pOwogICAgIEFTU0VSVCghbV9jYW5jZWxCdXR0
b24pOwogCi0gICAgVGV4dEZpZWxkSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCk7Cisg
ICAgVGV4dEZpZWxkSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlQW5kVXBkYXRlSW5uZXJU
ZXh0RWxlbWVudEVkaXRhYmlsaXR5KHNvdXJjZSwgaXNJbm5lclRleHRFbGVtZW50RWRpdGFibGUp
OwogICAgIFJlZlB0cjxIVE1MRWxlbWVudD4gY29udGFpbmVyID0gY29udGFpbmVyRWxlbWVudCgp
OwogICAgIFJlZlB0cjxIVE1MRWxlbWVudD4gdGV4dFdyYXBwZXIgPSBpbm5lckJsb2NrRWxlbWVu
dCgpOwogICAgIEFTU0VSVChjb250YWluZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9TZWFyY2hJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvU2VhcmNoSW5wdXRU
eXBlLmgKaW5kZXggNmYzNjBhM2I4OGM1ZWM4ZGYxMTc1ODFhZWNhYTRlNDExYTJlMmZjOS4uYjc5
MmRkMDZhMzE5MjEyODg3MGExYmQ4ZjVlMmIxYjM4YjUwMzhlYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L1NlYXJjaElucHV0VHlwZS5oCkBAIC0zOSw2ICszOSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IGNsYXNzIFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1lbnQ7CiAKIGNsYXNzIFNlYXJjaElu
cHV0VHlwZSBmaW5hbCA6IHB1YmxpYyBCYXNlVGV4dElucHV0VHlwZSB7CisgICAgdGVtcGxhdGU8
dHlwZW5hbWUgRG93bmNhc3RlZFR5cGU+IGZyaWVuZCBib29sIGlzSW52YWxpZElucHV0VHlwZShj
b25zdCBJbnB1dFR5cGUmLCBjb25zdCBTdHJpbmcmKTsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBT
ZWFyY2hJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYpOwogCkBAIC01MSw3ICs1Miw3IEBAIGNs
YXNzIFNlYXJjaElucHV0VHlwZSBmaW5hbCA6IHB1YmxpYyBCYXNlVGV4dElucHV0VHlwZSB7CiAg
ICAgY29uc3QgQXRvbVN0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3QgZmluYWw7CiAgICAg
Ym9vbCBpc1NlYXJjaEZpZWxkKCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBuZWVkc0NvbnRhaW5l
cigpIGNvbnN0IGZpbmFsOwotICAgIHZvaWQgY3JlYXRlU2hhZG93U3VidHJlZSgpIGZpbmFsOwor
ICAgIHZvaWQgY3JlYXRlU2hhZG93U3VidHJlZUFuZFVwZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0
YWJpbGl0eShDb250YWluZXJOb2RlOjpDaGlsZENoYW5nZTo6U291cmNlLCBib29sKSBmaW5hbDsK
ICAgICB2b2lkIGRlc3Ryb3lTaGFkb3dTdWJ0cmVlKCkgZmluYWw7CiAgICAgSFRNTEVsZW1lbnQq
IHJlc3VsdHNCdXR0b25FbGVtZW50KCkgY29uc3QgZmluYWw7CiAgICAgSFRNTEVsZW1lbnQqIGNh
bmNlbEJ1dHRvbkVsZW1lbnQoKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvU3VibWl0SW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1N1Ym1pdElu
cHV0VHlwZS5oCmluZGV4IGUxZWRlMjc5ZTQ3NTZiZTgzM2MzZTU3ZDc3NDc4YjcxMjg3NWIxNDku
LjE1NjlmYTc0ZjU2MGY3Y2ZjZmIyMDg4OGI3ZjU4MjAxMmY5YjYyM2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvU3VibWl0SW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9TdWJtaXRJbnB1dFR5cGUuaApAQCAtMzUsOCArMzUsOSBAQAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjbGFzcyBTdWJtaXRJbnB1dFR5cGUgZmluYWwgOiBwdWJsaWMgQmFzZUJ1dHRvbklu
cHV0VHlwZSB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRG93bmNhc3RlZFR5cGU+IGZyaWVuZCBi
b29sIGlzSW52YWxpZElucHV0VHlwZShjb25zdCBJbnB1dFR5cGUmLCBjb25zdCBTdHJpbmcmKTsK
IHB1YmxpYzoKLSAgICBleHBsaWNpdCBTdWJtaXRJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYg
ZWxlbWVudCkgOiBCYXNlQnV0dG9uSW5wdXRUeXBlKGVsZW1lbnQpIHsgfQorICAgIGV4cGxpY2l0
IFN1Ym1pdElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VCdXR0b25J
bnB1dFR5cGUoZWxlbWVudCwgVHlwZTo6U3VibWl0KSB7IH0KIAogcHJpdmF0ZToKICAgICBjb25z
dCBBdG9tU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGVsZXBob25lSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL1RlbGVwaG9uZUlucHV0VHlwZS5oCmluZGV4IDkxMDZlNThjOTQwNzM4MGI5ZWJh
YWQ5YjA3N2JkNDU3YWE2OTYxMmMuLjk4ZDY4MDIwN2I1ODFiYzQwYzZkYjQ4ZjlhNzY4ZjU3YWNh
ZWYzN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGVsZXBob25lSW5wdXRUeXBl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZWxlcGhvbmVJbnB1dFR5cGUuaApAQCAtMzUs
OCArMzUsOSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBUZWxlcGhvbmVJbnB1dFR5
cGUgZmluYWwgOiBwdWJsaWMgQmFzZVRleHRJbnB1dFR5cGUgeworICAgIHRlbXBsYXRlPHR5cGVu
YW1lIERvd25jYXN0ZWRUeXBlPiBmcmllbmQgYm9vbCBpc0ludmFsaWRJbnB1dFR5cGUoY29uc3Qg
SW5wdXRUeXBlJiwgY29uc3QgU3RyaW5nJik7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgVGVsZXBo
b25lSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFzZVRleHRJbnB1dFR5
cGUoZWxlbWVudCkgeyB9CisgICAgZXhwbGljaXQgVGVsZXBob25lSW5wdXRUeXBlKEhUTUxJbnB1
dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFzZVRleHRJbnB1dFR5cGUoZWxlbWVudCwgVHlwZTo6VGVs
ZXBob25lKSB7IH0KIAogcHJpdmF0ZToKICAgICBjb25zdCBBdG9tU3RyaW5nJiBmb3JtQ29udHJv
bFR5cGUoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
VGV4dEZpZWxkSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5w
dXRUeXBlLmNwcAppbmRleCBjMDJhOGQ3NmMyMTBlMjc5NDczNWQxZWQzMWEyYWUwM2YzOTMwZDg2
Li4zNmI1MTkyYmY4N2IzOWMxYmZjNzJiMDMwMGE5MGRkMzdmNDdjZTAzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwCkBAIC03MSw4ICs3MSw4IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotVGV4dEZpZWxk
SW5wdXRUeXBlOjpUZXh0RmllbGRJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkK
LSAgICA6IElucHV0VHlwZShlbGVtZW50KQorVGV4dEZpZWxkSW5wdXRUeXBlOjpUZXh0RmllbGRJ
bnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCwgVHlwZSB0eXBlKQorICAgIDogSW5w
dXRUeXBlKGVsZW1lbnQsIHR5cGUpCiB7CiB9CiAKQEAgLTMxOCw3ICszMTgsNyBAQCBib29sIFRl
eHRGaWVsZElucHV0VHlwZTo6c2hvdWxkSGF2ZUNhcHNMb2NrSW5kaWNhdG9yKCkgY29uc3QKICAg
ICByZXR1cm4gUmVuZGVyVGhlbWU6OnNpbmdsZXRvbigpLnNob3VsZEhhdmVDYXBzTG9ja0luZGlj
YXRvcigqZWxlbWVudCgpKTsKIH0KIAotdm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OmNyZWF0ZVNo
YWRvd1N1YnRyZWUoKQordm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRy
ZWVBbmRVcGRhdGVJbm5lclRleHRFbGVtZW50RWRpdGFiaWxpdHkoQ29udGFpbmVyTm9kZTo6Q2hp
bGRDaGFuZ2U6OlNvdXJjZSBzb3VyY2UsIGJvb2wgaXNJbm5lclRleHRFbGVtZW50RWRpdGFibGUp
CiB7CiAgICAgQVNTRVJUKGVsZW1lbnQoKSk7CiAgICAgQVNTRVJUKGVsZW1lbnQoKS0+c2hhZG93
Um9vdCgpKTsKQEAgLTMzNCwxMCArMzM0LDEzIEBAIHZvaWQgVGV4dEZpZWxkSW5wdXRUeXBlOjpj
cmVhdGVTaGFkb3dTdWJ0cmVlKCkKICAgICBib29sIHNob3VsZEhhdmVDYXBzTG9ja0luZGljYXRv
ciA9IHRoaXMtPnNob3VsZEhhdmVDYXBzTG9ja0luZGljYXRvcigpOwogICAgIGJvb2wgY3JlYXRl
c0NvbnRhaW5lciA9IHNob3VsZEhhdmVTcGluQnV0dG9uIHx8IHNob3VsZEhhdmVDYXBzTG9ja0lu
ZGljYXRvciB8fCBuZWVkc0NvbnRhaW5lcigpOwogCi0gICAgbV9pbm5lclRleHQgPSBUZXh0Q29u
dHJvbElubmVyVGV4dEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgbV9pbm5lclRleHQg
PSBUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgaXNJbm5lclRl
eHRFbGVtZW50RWRpdGFibGUpOwogCiAgICAgaWYgKCFjcmVhdGVzQ29udGFpbmVyKSB7Ci0gICAg
ICAgIGVsZW1lbnQoKS0+dXNlckFnZW50U2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZCgqbV9pbm5l
clRleHQpOworICAgICAgICBpZiAoc291cmNlID09IENvbnRhaW5lck5vZGU6OkNoaWxkQ2hhbmdl
OjpTb3VyY2U6OlBhcnNlcikKKyAgICAgICAgICAgIGVsZW1lbnQoKS0+dXNlckFnZW50U2hhZG93
Um9vdCgpLT5wYXJzZXJBcHBlbmRDaGlsZCgqbV9pbm5lclRleHQpOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICBlbGVtZW50KCktPnVzZXJBZ2VudFNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQo
Km1faW5uZXJUZXh0KTsKICAgICAgICAgdXBkYXRlUGxhY2Vob2xkZXJUZXh0KCk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CkBAIC0zNDcsNyArMzUwLDEwIEBAIHZvaWQgVGV4dEZpZWxkSW5wdXRU
eXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKIAogICAgIGlmIChzaG91bGRIYXZlU3BpbkJ1dHRv
bikgewogICAgICAgICBtX2lubmVyU3BpbkJ1dHRvbiA9IFNwaW5CdXR0b25FbGVtZW50OjpjcmVh
dGUoZG9jdW1lbnQsICp0aGlzKTsKLSAgICAgICAgbV9jb250YWluZXItPmFwcGVuZENoaWxkKCpt
X2lubmVyU3BpbkJ1dHRvbik7CisgICAgICAgIGlmIChzb3VyY2UgPT0gQ29udGFpbmVyTm9kZTo6
Q2hpbGRDaGFuZ2U6OlNvdXJjZTo6UGFyc2VyKQorICAgICAgICAgICAgbV9jb250YWluZXItPnBh
cnNlckFwcGVuZENoaWxkKCptX2lubmVyU3BpbkJ1dHRvbik7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIG1fY29udGFpbmVyLT5hcHBlbmRDaGlsZCgqbV9pbm5lclNwaW5CdXR0b24pOwogICAg
IH0KIAogICAgIGlmIChzaG91bGRIYXZlQ2Fwc0xvY2tJbmRpY2F0b3IpIHsKQEAgLTM1OCw3ICsz
NjQsMTAgQEAgdm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQog
ICAgICAgICBib29sIHNob3VsZERyYXdDYXBzTG9ja0luZGljYXRvciA9IHRoaXMtPnNob3VsZERy
YXdDYXBzTG9ja0luZGljYXRvcigpOwogICAgICAgICBtX2NhcHNMb2NrSW5kaWNhdG9yLT5zZXRJ
bmxpbmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5RGlzcGxheSwgc2hvdWxkRHJhd0NhcHNMb2Nr
SW5kaWNhdG9yID8gQ1NTVmFsdWVCbG9jayA6IENTU1ZhbHVlTm9uZSwgdHJ1ZSk7CiAKLSAgICAg
ICAgbV9jb250YWluZXItPmFwcGVuZENoaWxkKCptX2NhcHNMb2NrSW5kaWNhdG9yKTsKKyAgICAg
ICAgaWYgKHNvdXJjZSA9PSBDb250YWluZXJOb2RlOjpDaGlsZENoYW5nZTo6U291cmNlOjpQYXJz
ZXIpCisgICAgICAgICAgICBtX2NvbnRhaW5lci0+cGFyc2VyQXBwZW5kQ2hpbGQoKm1fY2Fwc0xv
Y2tJbmRpY2F0b3IpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBtX2NvbnRhaW5lci0+YXBw
ZW5kQ2hpbGQoKm1fY2Fwc0xvY2tJbmRpY2F0b3IpOwogICAgIH0KICAgICB1cGRhdGVBdXRvRmls
bEJ1dHRvbigpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJ
bnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmgKaW5k
ZXggMmM0NTcyMmRhMWJlMGQ1NjMxNmEzYWJkZGFjMTZhNmYyODhmMGRmZi4uMjc3YWY5M2U5NmQ0
ZTkwNTNjYjE1NTRhODI3NWQ1NjA0OGQ3MWI1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRG
aWVsZElucHV0VHlwZS5oCkBAIC01MSw3ICs1MSw3IEBAIGNsYXNzIFRleHRGaWVsZElucHV0VHlw
ZSA6IHB1YmxpYyBJbnB1dFR5cGUsIHByb3RlY3RlZCBTcGluQnV0dG9uRWxlbWVudDo6U3BpbkJ1
CiAjZW5kaWYKIHsKIHByb3RlY3RlZDoKLSAgICBleHBsaWNpdCBUZXh0RmllbGRJbnB1dFR5cGUo
SFRNTElucHV0RWxlbWVudCYpOworICAgIGV4cGxpY2l0IFRleHRGaWVsZElucHV0VHlwZShIVE1M
SW5wdXRFbGVtZW50JiwgVHlwZSk7CiAgICAgdmlydHVhbCB+VGV4dEZpZWxkSW5wdXRUeXBlKCk7
CiAgICAgU2hvdWxkQ2FsbEJhc2VFdmVudEhhbmRsZXIgaGFuZGxlS2V5ZG93bkV2ZW50KEtleWJv
YXJkRXZlbnQmKSBvdmVycmlkZTsKICAgICB2b2lkIGhhbmRsZUtleWRvd25FdmVudEZvclNwaW5C
dXR0b24oS2V5Ym9hcmRFdmVudCYpOwpAQCAtNzAsNyArNzAsNyBAQCBjbGFzcyBUZXh0RmllbGRJ
bnB1dFR5cGUgOiBwdWJsaWMgSW5wdXRUeXBlLCBwcm90ZWN0ZWQgU3BpbkJ1dHRvbkVsZW1lbnQ6
OlNwaW5CdQogI2VuZGlmCiAKICAgICB2aXJ0dWFsIGJvb2wgbmVlZHNDb250YWluZXIoKSBjb25z
dDsKLSAgICB2b2lkIGNyZWF0ZVNoYWRvd1N1YnRyZWUoKSBvdmVycmlkZTsKKyAgICB2b2lkIGNy
ZWF0ZVNoYWRvd1N1YnRyZWVBbmRVcGRhdGVJbm5lclRleHRFbGVtZW50RWRpdGFiaWxpdHkoQ29u
dGFpbmVyTm9kZTo6Q2hpbGRDaGFuZ2U6OlNvdXJjZSwgYm9vbCkgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBkZXN0cm95U2hhZG93U3VidHJlZSgpIG92ZXJyaWRlOwogICAgIHZvaWQgYXR0cmlidXRlQ2hh
bmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaXNhYmxlZFN0
YXRlQ2hhbmdlZCgpIGZpbmFsOwpAQCAtODEsNiArODEsNyBAQCBjbGFzcyBUZXh0RmllbGRJbnB1
dFR5cGUgOiBwdWJsaWMgSW5wdXRUeXBlLCBwcm90ZWN0ZWQgU3BpbkJ1dHRvbkVsZW1lbnQ6OlNw
aW5CdQogICAgIHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9vbCB2YWx1ZUNoYW5nZWQs
IFRleHRGaWVsZEV2ZW50QmVoYXZpb3IpIG92ZXJyaWRlOwogICAgIHZvaWQgdXBkYXRlSW5uZXJU
ZXh0VmFsdWUoKSBmaW5hbDsKICAgICBTdHJpbmcgc2FuaXRpemVWYWx1ZShjb25zdCBTdHJpbmcm
KSBjb25zdCBvdmVycmlkZTsKKyAgICBib29sIHZhbHVlTWlzc2luZyhjb25zdCBTdHJpbmcmKSBj
b25zdCBmaW5hbDsKIAogICAgIHZpcnR1YWwgU3RyaW5nIGNvbnZlcnRGcm9tVmlzaWJsZVZhbHVl
KGNvbnN0IFN0cmluZyYpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBkaWRTZXRWYWx1ZUJ5VXNl
ckVkaXQoKTsKQEAgLTkwLDcgKzkxLDYgQEAgY2xhc3MgVGV4dEZpZWxkSW5wdXRUeXBlIDogcHVi
bGljIElucHV0VHlwZSwgcHJvdGVjdGVkIFNwaW5CdXR0b25FbGVtZW50OjpTcGluQnUKICAgICBi
b29sIGlzTW91c2VGb2N1c2FibGUoKSBjb25zdCBmaW5hbDsKICAgICBib29sIGlzVGV4dEZpZWxk
KCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBpc0VtcHR5VmFsdWUoKSBjb25zdCBmaW5hbDsKLSAg
ICBib29sIHZhbHVlTWlzc2luZyhjb25zdCBTdHJpbmcmKSBjb25zdCBmaW5hbDsKICAgICB2b2lk
IGhhbmRsZUJlZm9yZVRleHRJbnNlcnRlZEV2ZW50KEJlZm9yZVRleHRJbnNlcnRlZEV2ZW50Jikg
ZmluYWw7CiAgICAgdm9pZCBmb3J3YXJkRXZlbnQoRXZlbnQmKSBmaW5hbDsKICAgICBib29sIHNo
b3VsZFN1Ym1pdEltcGxpY2l0bHkoRXZlbnQmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvVGV4dElucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0SW5w
dXRUeXBlLmgKaW5kZXggZWU4OWM4ZjZhYTlmMThhY2M3OWY1YzJiMWE4NWEwMjdiZWU3ZDNjZS4u
NzM5ZDM5YjJjOGQyOGI5YzdjMDNhNDU2OGE2YWZkY2Q5ODEwYmRiMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9UZXh0SW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9UZXh0SW5wdXRUeXBlLmgKQEAgLTM1LDggKzM1LDkgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgVGV4dElucHV0VHlwZSBmaW5hbCA6IHB1YmxpYyBCYXNlVGV4dElucHV0VHlwZSB7
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRG93bmNhc3RlZFR5cGU+IGZyaWVuZCBib29sIGlzSW52
YWxpZElucHV0VHlwZShjb25zdCBJbnB1dFR5cGUmLCBjb25zdCBTdHJpbmcmKTsKIHB1YmxpYzoK
LSAgICBleHBsaWNpdCBUZXh0SW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDog
QmFzZVRleHRJbnB1dFR5cGUoZWxlbWVudCkgeyB9CisgICAgZXhwbGljaXQgVGV4dElucHV0VHlw
ZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VUZXh0SW5wdXRUeXBlKGVsZW1lbnQs
IFR5cGU6OlRleHQpIHsgfQogCiBwcml2YXRlOgogICAgIGNvbnN0IEF0b21TdHJpbmcmIGZvcm1D
b250cm9sVHlwZSgpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9UaW1lSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlw
ZS5jcHAKaW5kZXggMjEwMzk1NzM0ODQ3ZTViMDk1NzI3MjhkNjVmZjExYzgxNGFhMGU2NS4uNTJi
ZTMzYzA5N2Y0YmYyMDhjYzY5OTczODc4MDkxYTczODYwOGI3MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L1RpbWVJbnB1dFR5cGUuY3BwCkBAIC01Myw3ICs1Myw3IEBAIHN0YXRpYyBjb25zdCBpbnQgdGlt
ZVN0ZXBTY2FsZUZhY3RvciA9IDEwMDA7CiBzdGF0aWMgY29uc3QgU3RlcFJhbmdlOjpTdGVwRGVz
Y3JpcHRpb24gdGltZVN0ZXBEZXNjcmlwdGlvbiB7IHRpbWVEZWZhdWx0U3RlcCwgdGltZURlZmF1
bHRTdGVwQmFzZSwgdGltZVN0ZXBTY2FsZUZhY3RvciwgU3RlcFJhbmdlOjpTY2FsZWRTdGVwVmFs
dWVTaG91bGRCZUludGVnZXIgfTsKIAogVGltZUlucHV0VHlwZTo6VGltZUlucHV0VHlwZShIVE1M
SW5wdXRFbGVtZW50JiBlbGVtZW50KQotICAgIDogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlKGVs
ZW1lbnQpCisgICAgOiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUoZWxlbWVudCwgVHlwZTo6VGlt
ZSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBl
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuaAppbmRleCBjMmQzYjg5MzI4
ODc1N2E5NDNkNGMzMzM5NjJhMDA1NjkxZTYyYmY2Li43MDliMzc0MTAwMmVlMzAzMTY2OGRmMWU0
NDJkNjEyMTliMDkzMzFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1
dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuaApAQCAtMzcs
NiArMzcsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBUaW1lSW5wdXRUeXBlIGZp
bmFsIDogcHVibGljIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZSB7CisgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgRG93bmNhc3RlZFR5cGU+IGZyaWVuZCBib29sIGlzSW52YWxpZElucHV0VHlwZShjb25z
dCBJbnB1dFR5cGUmLCBjb25zdCBTdHJpbmcmKTsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBUaW1l
SW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9VUkxJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVVJMSW5wdXRUeXBl
LmgKaW5kZXggMGQzYmJiNWEyZDA1ODU1YzhmMTI1YmM5ZmFlZjhlYjE3Zjc5OTBiMi4uNWEzNDIy
YzU2NTUxMjdhMzY1YjIzNzMzMGVmMWQ3Nzg2MWFkNDc2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9VUkxJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1VSTElu
cHV0VHlwZS5oCkBAIC0zNSw4ICszNSw5IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IFVSTElucHV0VHlwZSBmaW5hbCA6IHB1YmxpYyBCYXNlVGV4dElucHV0VHlwZSB7CisgICAgdGVt
cGxhdGU8dHlwZW5hbWUgRG93bmNhc3RlZFR5cGU+IGZyaWVuZCBib29sIGlzSW52YWxpZElucHV0
VHlwZShjb25zdCBJbnB1dFR5cGUmLCBjb25zdCBTdHJpbmcmKTsKIHB1YmxpYzoKLSAgICBleHBs
aWNpdCBVUkxJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlVGV4dElu
cHV0VHlwZShlbGVtZW50KSB7IH0KKyAgICBleHBsaWNpdCBVUkxJbnB1dFR5cGUoSFRNTElucHV0
RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlVGV4dElucHV0VHlwZShlbGVtZW50LCBUeXBlOjpVUkwp
IHsgfQogCiBwcml2YXRlOgogICAgIGNvbnN0IEF0b21TdHJpbmcmIGZvcm1Db250cm9sVHlwZSgp
IGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5w
dXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUuaAppbmRleCAwNDBj
MDgyMGI4OTkzODAwMjJiMDdhMDI0MjU2ZWY0MzdjMTM2NWFkLi44MTNlODY5ZTRiOWFhZWJkODgy
NDA1YTAxMTk1ZWYxOWIwZTZlZjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1dl
ZWtJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUuaApA
QCAtMzcsOSArMzcsMTAgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgV2Vla0lucHV0
VHlwZSBmaW5hbCA6IHB1YmxpYyBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUgeworICAgIHRlbXBs
YXRlPHR5cGVuYW1lIERvd25jYXN0ZWRUeXBlPiBmcmllbmQgYm9vbCBpc0ludmFsaWRJbnB1dFR5
cGUoY29uc3QgSW5wdXRUeXBlJiwgY29uc3QgU3RyaW5nJik7CiBwdWJsaWM6CiAgICAgZXhwbGlj
aXQgV2Vla0lucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQotICAgICAgICA6IEJh
c2VEYXRlQW5kVGltZUlucHV0VHlwZShlbGVtZW50KQorICAgICAgICA6IEJhc2VEYXRlQW5kVGlt
ZUlucHV0VHlwZShlbGVtZW50LCBUeXBlOjpXZWVrKQogICAgIHsKICAgICB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMu
Y3BwCmluZGV4IGRjZTIzOGNjMzA1NzYxYTdhNmNmY2U4MDJiMmY3NjM2MTg4MmM1YjcuLjAzYTJk
NzMwNGNmOWZjNzliYjRmMTgyODlkMGJlYzc0OTdiODJkMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcApAQCAt
MTM4LDkgKzEzOCwyNCBAQCBpbmxpbmUgVGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50OjpUZXh0
Q29udHJvbElubmVyVGV4dEVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZQogICAgIHNldEhhc0N1c3Rv
bVN0eWxlUmVzb2x2ZUNhbGxiYWNrcygpOwogfQogCi1SZWY8VGV4dENvbnRyb2xJbm5lclRleHRF
bGVtZW50PiBUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9j
dW1lbnQpCitSZWY8VGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50PiBUZXh0Q29udHJvbElubmVy
VGV4dEVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgaXNFZGl0YWJsZSkK
IHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQo
ZG9jdW1lbnQpKTsKKyAgICBhdXRvIHJlc3VsdCA9IGFkb3B0UmVmKCpuZXcgVGV4dENvbnRyb2xJ
bm5lclRleHRFbGVtZW50KGRvY3VtZW50KSk7CisgICAgY29uc3RleHByIGJvb2wgaW5pdGlhbGl6
YXRpb24gPSB0cnVlOworICAgIHJlc3VsdC0+dXBkYXRlSW5uZXJUZXh0RWxlbWVudEVkaXRhYmls
aXR5SW1wbChpc0VkaXRhYmxlLCBpbml0aWFsaXphdGlvbik7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KKwordm9pZCBUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ6OnVwZGF0ZUlubmVyVGV4dEVs
ZW1lbnRFZGl0YWJpbGl0eUltcGwoYm9vbCBpc0VkaXRhYmxlLCBib29sIGluaXRpYWxpemF0aW9u
KQoreworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gcGxhaW5UZXh0T25seU5hbWUoInBsYWludGV4dC1vbmx5IiwgQXRvbVN0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbVN0cmluZz4gZmFsc2VOYW1lKCJmYWxzZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKKyAgICBjb25zdCBhdXRvJiB2YWx1ZSA9IGlzRWRpdGFibGUgPyBwbGFpblRl
eHRPbmx5TmFtZS5nZXQoKSA6IGZhbHNlTmFtZS5nZXQoKTsKKyAgICBpZiAoaW5pdGlhbGl6YXRp
b24pIHsKKyAgICAgICAgVmVjdG9yPEF0dHJpYnV0ZT4gYXR0cmlidXRlcyB7IEF0dHJpYnV0ZShj
b250ZW50ZWRpdGFibGVBdHRyLCB2YWx1ZSkgfTsKKyAgICAgICAgcGFyc2VyU2V0QXR0cmlidXRl
cyhhdHRyaWJ1dGVzKTsKKyAgICB9IGVsc2UKKyAgICAgICAgc2V0QXR0cmlidXRlV2l0aG91dFN5
bmNocm9uaXphdGlvbihjb250ZW50ZWRpdGFibGVBdHRyLCB2YWx1ZSk7CiB9CiAKIHZvaWQgVGV4
dENvbnRyb2xJbm5lclRleHRFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50JiBldmVu
dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5u
ZXJFbGVtZW50cy5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5l
ckVsZW1lbnRzLmgKaW5kZXggZWNjZjk0MzFhMzcxOTM3MmM5ODY3MDczOWFiNTU4MWFhMmY4ZjI0
NC4uZWJiNTg1OWE5Yzk5ZWVhZWM1MDI2MGNkYmY2YTQ5YTg0M2JmYjIyZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmgK
QEAgLTU4LDEzICs1OCwyMSBAQCBjbGFzcyBUZXh0Q29udHJvbElubmVyRWxlbWVudCBmaW5hbCA6
IHB1YmxpYyBIVE1MRGl2RWxlbWVudCB7CiBjbGFzcyBUZXh0Q29udHJvbElubmVyVGV4dEVsZW1l
bnQgZmluYWwgOiBwdWJsaWMgSFRNTERpdkVsZW1lbnQgewogICAgIFdURl9NQUtFX0lTT19BTExP
Q0FURUQoVGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50KTsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UmVmPFRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CisgICAg
c3RhdGljIFJlZjxUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYs
IGJvb2wgaXNFZGl0YWJsZSk7CiAKICAgICB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQm
KSBvdmVycmlkZTsKIAogICAgIFJlbmRlclRleHRDb250cm9sSW5uZXJCbG9jayogcmVuZGVyZXIo
KSBjb25zdDsKIAorICAgIGlubGluZSB2b2lkIHVwZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0YWJp
bGl0eShib29sIGlzRWRpdGFibGUpCisgICAgeworICAgICAgICBjb25zdGV4cHIgYm9vbCBpbml0
aWFsaXphdGlvbiA9IGZhbHNlOworICAgICAgICB1cGRhdGVJbm5lclRleHRFbGVtZW50RWRpdGFi
aWxpdHlJbXBsKGlzRWRpdGFibGUsIGluaXRpYWxpemF0aW9uKTsKKyAgICB9CisKIHByaXZhdGU6
CisgICAgdm9pZCB1cGRhdGVJbm5lclRleHRFbGVtZW50RWRpdGFiaWxpdHlJbXBsKGJvb2wgaXNF
ZGl0YWJsZSwgYm9vbCBpbml0aWFsaXphdGlvbik7CisKICAgICBUZXh0Q29udHJvbElubmVyVGV4
dEVsZW1lbnQoRG9jdW1lbnQmKTsKICAgICBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRl
RWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYp
IG92ZXJyaWRlOwogICAgIE9wdGlvbmFsPFN0eWxlOjpFbGVtZW50U3R5bGU+IHJlc29sdmVDdXN0
b21TdHlsZShjb25zdCBSZW5kZXJTdHlsZSYgcGFyZW50U3R5bGUsIGNvbnN0IFJlbmRlclN0eWxl
KiBzaGFkb3dIb3N0U3R5bGUpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3R5bGUvU3R5bGVTY29wZS5oIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZS5oCmlu
ZGV4IDQ3NGEwOGE2MjU3YmQ1YWQwZGQyZmI5ZGFmNzUxZDZiZDJmNWY0ZDYuLjY3Mjc2NWRkMWQ4
YTE3MjAwZjA3OWU3ZjI5NWU0OTkwMjIzMTQ0ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N0eWxlL1N0eWxlU2NvcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3Bl
LmgKQEAgLTEzNSw3ICsxMzUsNyBAQCBjbGFzcyBTY29wZSB7CiAKICAgICB2b2lkIGRpZFJlbW92
ZVBlbmRpbmdTdHlsZXNoZWV0KCk7CiAKLSAgICBlbnVtIGNsYXNzIFVwZGF0ZVR5cGUgeyBBY3Rp
dmVTZXQsIENvbnRlbnRzT3JJbnRlcnByZXRhdGlvbiB9OworICAgIGVudW0gY2xhc3MgVXBkYXRl
VHlwZSA6IHVpbnQ4X3QgeyBBY3RpdmVTZXQsIENvbnRlbnRzT3JJbnRlcnByZXRhdGlvbiB9Owog
ICAgIHZvaWQgdXBkYXRlQWN0aXZlU3R5bGVTaGVldHMoVXBkYXRlVHlwZSk7CiAgICAgdm9pZCBz
Y2hlZHVsZVVwZGF0ZShVcGRhdGVUeXBlKTsKIApAQCAtMTgzLDEzICsxODMsMTQgQEAgY2xhc3Mg
U2NvcGUgewogICAgIEhhc2hTZXQ8Y29uc3QgRWxlbWVudCo+IG1fZWxlbWVudHNJbkhlYWRXaXRo
UGVuZGluZ1NoZWV0czsKICAgICBIYXNoU2V0PGNvbnN0IEVsZW1lbnQqPiBtX2VsZW1lbnRzSW5C
b2R5V2l0aFBlbmRpbmdTaGVldHM7CiAKLSAgICBPcHRpb25hbDxVcGRhdGVUeXBlPiBtX3BlbmRp
bmdVcGRhdGU7Ci0gICAgYm9vbCBtX2hhc0Rlc2NlbmRhbnRXaXRoUGVuZGluZ1VwZGF0ZSB7IGZh
bHNlIH07CiAKICAgICBMaXN0SGFzaFNldDxOb2RlKj4gbV9zdHlsZVNoZWV0Q2FuZGlkYXRlTm9k
ZXM7CiAKICAgICBTdHJpbmcgbV9wcmVmZXJyZWRTdHlsZXNoZWV0U2V0TmFtZTsKIAorICAgIE9w
dGlvbmFsPFVwZGF0ZVR5cGU+IG1fcGVuZGluZ1VwZGF0ZTsKKworICAgIGJvb2wgbV9oYXNEZXNj
ZW5kYW50V2l0aFBlbmRpbmdVcGRhdGUgeyBmYWxzZSB9OwogICAgIGJvb2wgbV91c2VzU3R5bGVC
YXNlZEVkaXRhYmlsaXR5IHsgZmFsc2UgfTsKICAgICBib29sIG1faXNVcGRhdGluZ1N0eWxlUmVz
b2x2ZXIgeyBmYWxzZSB9OwogfTsK
</data>
<flag name="review"
          id="435749"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>