<?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>101171</bug_id>
          
          <creation_ts>2012-11-04 17:36:45 -0800</creation_ts>
          <short_desc>[Shadow][Refactoring] Remove shadowPseudoId() and use pseudo() instead</short_desc>
          <delta_ts>2019-10-04 22:19:23 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>101306</dependson>
    
    <dependson>101702</dependson>
    
    <dependson>101703</dependson>
    
    <dependson>101707</dependson>
    
    <dependson>101708</dependson>
    
    <dependson>101709</dependson>
    
    <dependson>101714</dependson>
    
    <dependson>101881</dependson>
    
    <dependson>101906</dependson>
          <blocked>97279</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Shinya Kawanaka">shinyak</reporter>
          <assigned_to name="Web Components Team">webcomponents-bugzilla</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>gtk-ews</cc>
    
    <cc>gustavo</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>mifenton</cc>
    
    <cc>philn</cc>
    
    <cc>rniwa</cc>
    
    <cc>tkent</cc>
    
    <cc>webcomponents-bugzilla</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>758167</commentid>
    <comment_count>0</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-11-04 17:36:45 -0800</bug_when>
    <thetext>We would like to remove shadowPseudoId() and use pseudo() instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759109</commentid>
    <comment_count>1</comment_count>
      <attachid>172460</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-11-05 17:59:33 -0800</bug_when>
    <thetext>Created attachment 172460
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759175</commentid>
    <comment_count>2</comment_count>
      <attachid>172460</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-05 19:28:19 -0800</bug_when>
    <thetext>Comment on attachment 172460
WIP

Attachment 172460 did not pass win-ews (win):
Output: http://queues.webkit.org/results/14726818</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759199</commentid>
    <comment_count>3</comment_count>
      <attachid>172460</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-05 20:06:04 -0800</bug_when>
    <thetext>Comment on attachment 172460
WIP

Attachment 172460 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14691306</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759204</commentid>
    <comment_count>4</comment_count>
      <attachid>172475</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-11-05 20:12:22 -0800</bug_when>
    <thetext>Created attachment 172475
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759209</commentid>
    <comment_count>5</comment_count>
      <attachid>172475</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-11-05 20:20:07 -0800</bug_when>
    <thetext>Comment on attachment 172475
WIP

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

&gt; Source/WebCore/html/ColorInputType.cpp:121
&gt; -    wrapperElement-&gt;setShadowPseudoId(&quot;-webkit-color-swatch-wrapper&quot;);
&gt; +    wrapperElement-&gt;setPseudo(&quot;-webkit-color-swatch-wrapper&quot;);

nit: If you have enough time, I recommend to use AtomicString(&quot;-webkit-color-swatch-wrapper&quot;, AtomicString::ConstructFromLiteral)
http://trac.webkit.org/wiki/EfficientStrings

&gt; Source/WebCore/html/FileInputType.cpp:86
&gt; -const AtomicString&amp; UploadButtonElement::shadowPseudoId() const
&gt; +const AtomicString&amp; UploadButtonElement::pseudo() const
&gt;  {
&gt;      DEFINE_STATIC_LOCAL(AtomicString, pseudoId, (&quot;-webkit-file-upload-button&quot;));
&gt;      return pseudoId;

Overriding &quot;pseudo&quot; looks strange.  Why don&apos;t you convert such code to setPseudo?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759219</commentid>
    <comment_count>6</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-11-05 21:13:05 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 172475 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=172475&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/ColorInputType.cpp:121
&gt; &gt; -    wrapperElement-&gt;setShadowPseudoId(&quot;-webkit-color-swatch-wrapper&quot;);
&gt; &gt; +    wrapperElement-&gt;setPseudo(&quot;-webkit-color-swatch-wrapper&quot;);
&gt; 
&gt; nit: If you have enough time, I recommend to use AtomicString(&quot;-webkit-color-swatch-wrapper&quot;, AtomicString::ConstructFromLiteral)
&gt; http://trac.webkit.org/wiki/EfficientStrings
&gt; 
&gt; &gt; Source/WebCore/html/FileInputType.cpp:86
&gt; &gt; -const AtomicString&amp; UploadButtonElement::shadowPseudoId() const
&gt; &gt; +const AtomicString&amp; UploadButtonElement::pseudo() const
&gt; &gt;  {
&gt; &gt;      DEFINE_STATIC_LOCAL(AtomicString, pseudoId, (&quot;-webkit-file-upload-button&quot;));
&gt; &gt;      return pseudoId;
&gt; 
&gt; Overriding &quot;pseudo&quot; looks strange.  Why don&apos;t you convert such code to setPseudo?

I&apos;ll convert them... since pseudo() is not virtual at all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759229</commentid>
    <comment_count>7</comment_count>
      <attachid>172475</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-05 21:27:59 -0800</bug_when>
    <thetext>Comment on attachment 172475
WIP

Attachment 172475 did not pass win-ews (win):
Output: http://queues.webkit.org/results/14725877</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759270</commentid>
    <comment_count>8</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-11-05 22:36:07 -0800</bug_when>
    <thetext>Since we have a lot of places to be replaced, I would like to split this to several patches...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759291</commentid>
    <comment_count>9</comment_count>
      <attachid>172475</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2012-11-05 23:16:54 -0800</bug_when>
    <thetext>Comment on attachment 172475
WIP

Attachment 172475 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/14731694</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759302</commentid>
    <comment_count>10</comment_count>
      <attachid>172475</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-05 23:34:12 -0800</bug_when>
    <thetext>Comment on attachment 172475
WIP

Attachment 172475 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14665460</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577148</commentid>
    <comment_count>11</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-10-04 22:19:23 -0700</bug_when>
    <thetext>We&apos;re not gonna do this. V1 API allows ::part, which is distant from pseudo element mechanism.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172460</attachid>
            <date>2012-11-05 17:59:33 -0800</date>
            <delta_ts>2012-11-05 20:12:18 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>bug-101171-20121106105746.patch</filename>
            <type>text/plain</type>
            <size>70708</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzNTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODExYjNjZmI5YWVkMzQx
Y2FiNjVlYzhiMTdkODA2Yjg3ZWMwOGJhOS4uMWI5OWM3OWNiODJkYTJjYjc3M2U4YzdkNTZiYjA0
OTA5ZTBkMmI5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1OCBAQAorMjAxMi0xMS0wNSAgU2hp
bnlhIEthd2FuYWthICA8c2hpbnlha0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW1NoYWRvd10g
UmVtb3ZlIHNoYWRvd1BzZXVkb0lkKCkgYW5kIHVzZSBwc2V1ZG8oKSBpbnN0ZWFkLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxMTcxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm93IHdlIGhhdmUgdHdv
IHNpbWlsYXIgbWV0aG9kcyB0byBleHBvc2Ugc2hhZG93IHBzZXVkbyBpZDogc2hhZG93UHNldWRv
SWQoKSBhbmQgcHNldWRvKCkuIFdlIGFsc28gaGF2ZQorICAgICAgICBzaW1pbGFyIG1ldGhvZHMg
dG8gc2V0IHBzZXVkbyBpZCAoc2V0UHNldWRvKCkgYW5kIHNldFNoYWRvd1BzZXVkb0lkKCkpLgor
CisgICAgICAgIFNoYWRvdyBET00gc3BlYyByZXF1aXJlcyB1cyB0byBoYXZlIHBzZXVkbygpLCB3
ZSB3b3VsZCBsaWtlIHRvIHJlbW92ZSBzaGFkb3dQc2V1ZG9JZCgpIGFuZCBwc2V1ZG8oKS4KKwor
ICAgICAgICBObyBuZXcgdGVzdHMsIHJlZmFjdG9yaW5nLgorCisgICAgICAgICogV2ViQ29yZS5l
eHAuaW46CisgICAgICAgICogV2ViQ29yZS5vcmRlcjoKKyAgICAgICAgKiBjc3MvU2VsZWN0b3JD
aGVja2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ2hlY2tlcjo6Y2hlY2tTZWxl
Y3Rvcik6CisgICAgICAgICogY3NzL1N0eWxlUmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U3R5bGVSZXNvbHZlcjo6Y29sbGVjdE1hdGNoaW5nUnVsZXMpOgorICAgICAgICAoV2ViQ29y
ZTo6U3R5bGVSZXNvbHZlcjo6Y2FuU2hhcmVTdHlsZVdpdGhFbGVtZW50KToKKyAgICAgICAgKiBk
b20vRWxlbWVudC5jcHA6CisgICAgICAgICogZG9tL0VsZW1lbnQuaDoKKyAgICAgICAgKEVsZW1l
bnQpOgorICAgICAgICAqIGh0bWwvQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5
cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJ
bnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUpOgorICAgICAgICAqIGh0bWwvQ29sb3JJbnB1
dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29sb3JJbnB1dFR5cGU6OmNyZWF0ZVNoYWRv
d1N1YnRyZWUpOgorICAgICAgICAqIGh0bWwvRmlsZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChV
cGxvYWRCdXR0b25FbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlVwbG9hZEJ1dHRvbkVsZW1l
bnQ6OnBzZXVkbyk6CisgICAgICAgICogaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpLZXlnZW5TZWxlY3RFbGVtZW50Ojpwc2V1ZG8pOgorICAgICAgICAqIGh0
bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEFy
ZWFFbGVtZW50Ojp1cGRhdGVQbGFjZWhvbGRlclRleHQpOgorICAgICAgICAqIGh0bWwvUmFuZ2VJ
bnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2VJbnB1dFR5cGU6OmNyZWF0ZVNo
YWRvd1N1YnRyZWUpOgorICAgICAgICAqIGh0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlRleHRGaWVsZElucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSk6
CisgICAgICAgIChXZWJDb3JlOjpUZXh0RmllbGRJbnB1dFR5cGU6OnVwZGF0ZVBsYWNlaG9sZGVy
VGV4dCk6CisgICAgICAgICogaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpWYWxpZGF0aW9uTWVzc2FnZTo6YnVpbGRCdWJibGVUcmVlKToKKyAgICAgICAgKiBo
dG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRh
dGVUaW1lRWRpdEJ1aWxkZXI6OnZpc2l0TGl0ZXJhbCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRl
VGltZUVkaXRFbGVtZW50OjpEYXRlVGltZUVkaXRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OmxheW91dCk6CisgICAgICAgICogaHRtbC9zaGFkb3cvRGF0
ZVRpbWVGaWVsZEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVGaWVsZEVs
ZW1lbnQ6OmluaXRpYWxpemUpOgorICAgICAgICAqIGh0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRF
bGVtZW50Lmg6CisgICAgICAgIChEYXRlVGltZUZpZWxkRWxlbWVudCk6CisgICAgICAgICogaHRt
bC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGV0
YWlsc01hcmtlckNvbnRyb2w6OnBzZXVkbyk6CisgICAgICAgICogaHRtbC9zaGFkb3cvRGV0YWls
c01hcmtlckNvbnRyb2wuaDoKKyAgICAgICAgKERldGFpbHNNYXJrZXJDb250cm9sKToKKyAgICAg
ICAgKiBodG1sL3NoYWRvdy9JbWFnZUlubmVyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbWFnZUlubmVyRWxlbWVudDo6cHNldWRvKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9JbWFn
ZUlubmVyRWxlbWVudC5oOgorICAgICAgICAoSW1hZ2VJbm5lckVsZW1lbnQpOgorICAgICAgICAq
IGh0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhQ29udHJvbFBhbmVsRWxlbWVudDo6cHNldWRvKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVudDo6cHNldWRvKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5lckVsZW1lbnQ6OnBzZXVkbyk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5RWxlbWVudDo6cHNl
dWRvKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1l
bnQ6OnBzZXVkbyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJN
dXRlQnV0dG9uRWxlbWVudDo6cHNldWRvKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJv
bFBsYXlCdXR0b25FbGVtZW50Ojpwc2V1ZG8pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250
cm9sT3ZlcmxheVBsYXlCdXR0b25FbGVtZW50Ojpwc2V1ZG8pOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFDb250cm9sU2Vla0ZvcndhcmRCdXR0b25FbGVtZW50Ojpwc2V1ZG8pOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFDb250cm9sU2Vla0JhY2tCdXR0b25FbGVtZW50Ojpwc2V1ZG8pOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUmV3aW5kQnV0dG9uRWxlbWVudDo6cHNldWRvKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFJldHVyblRvUmVhbHRpbWVCdXR0b25FbGVt
ZW50Ojpwc2V1ZG8pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sVG9nZ2xlQ2xvc2Vk
Q2FwdGlvbnNCdXR0b25FbGVtZW50Ojpwc2V1ZG8pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFD
b250cm9sVGltZWxpbmVFbGVtZW50Ojpwc2V1ZG8pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFD
b250cm9sVm9sdW1lU2xpZGVyRWxlbWVudDo6cHNldWRvKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVTbGlkZXJFbGVtZW50Ojpwc2V1ZG8pOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQ6OnBzZXVkbyk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWluQnV0dG9u
RWxlbWVudDo6cHNldWRvKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbEZ1bGxzY3Jl
ZW5Wb2x1bWVNYXhCdXR0b25FbGVtZW50Ojpwc2V1ZG8pOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFDb250cm9sVGltZVJlbWFpbmluZ0Rpc3BsYXlFbGVtZW50Ojpwc2V1ZG8pOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNwbGF5RWxlbWVudDo6cHNldWRvKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6
OnBzZXVkbyk6CisgICAgICAgICogaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuaDoK
KyAgICAgICAgKE1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVudCk6CisgICAgICAg
IChNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5RWxlbWVudCk6CisgICAgICAgIChNZWRpYUNvbnRy
b2xWb2x1bWVTbGlkZXJNdXRlQnV0dG9uRWxlbWVudCk6CisgICAgICAgIChNZWRpYUNvbnRyb2xP
dmVybGF5UGxheUJ1dHRvbkVsZW1lbnQpOgorICAgICAgICAoTWVkaWFDb250cm9sU2Vla0Zvcndh
cmRCdXR0b25FbGVtZW50KToKKyAgICAgICAgKE1lZGlhQ29udHJvbFNlZWtCYWNrQnV0dG9uRWxl
bWVudCk6CisgICAgICAgIChNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQpOgorICAgICAgICAo
TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyRWxlbWVudCk6CisgICAgICAgIChNZWRpYUNvbnRyb2xG
dWxsc2NyZWVuVm9sdW1lU2xpZGVyRWxlbWVudCk6CisgICAgICAgIChNZWRpYUNvbnRyb2xUaW1l
UmVtYWluaW5nRGlzcGxheUVsZW1lbnQpOgorICAgICAgICAoTWVkaWFDb250cm9sQ3VycmVudFRp
bWVEaXNwbGF5RWxlbWVudCk6CisgICAgICAgIChNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWlu
ZXJFbGVtZW50KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xSb290RWxlbWVudDo6cHNldWRv
KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudC5oOgorICAg
ICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUGFuZWxFbmNsb3N1cmVFbGVtZW50Ojpwc2V1
ZG8pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6
cHNldWRvKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudENo
cm9taXVtLmg6CisgICAgICAgIChNZWRpYUNvbnRyb2xQYW5lbEVuY2xvc3VyZUVsZW1lbnQpOgor
ICAgICAgICAoTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bSk6CisgICAgICAgICogaHRt
bC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bUFuZHJvaWQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sT3ZlcmxheUVuY2xvc3VyZUVsZW1lbnQ6OnBzZXVk
byk6CisgICAgICAgICogaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1
bUFuZHJvaWQuaDoKKyAgICAgICAgKE1lZGlhQ29udHJvbE92ZXJsYXlFbmNsb3N1cmVFbGVtZW50
KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZXRlclNoYWRvd0VsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TWV0ZXJJbm5lckVsZW1lbnQ6OnBzZXVkbyk6CisgICAgICAgIChXZWJDb3Jl
OjpNZXRlckJhckVsZW1lbnQ6OnBzZXVkbyk6CisgICAgICAgIChXZWJDb3JlOjpNZXRlclZhbHVl
RWxlbWVudDo6cHNldWRvKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZXRlclNoYWRvd0VsZW1l
bnQuaDoKKyAgICAgICAgKE1ldGVySW5uZXJFbGVtZW50KToKKyAgICAgICAgKE1ldGVyQmFyRWxl
bWVudCk6CisgICAgICAgIChNZXRlclZhbHVlRWxlbWVudCk6CisgICAgICAgICogaHRtbC9zaGFk
b3cvUGlja2VySW5kaWNhdG9yRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQaWNrZXJJ
bmRpY2F0b3JFbGVtZW50OjpQaWNrZXJJbmRpY2F0b3JFbGVtZW50KToKKyAgICAgICAgKiBodG1s
L3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UHJv
Z3Jlc3NJbm5lckVsZW1lbnQ6OnBzZXVkbyk6CisgICAgICAgIChXZWJDb3JlOjpQcm9ncmVzc0Jh
ckVsZW1lbnQ6OnBzZXVkbyk6CisgICAgICAgIChXZWJDb3JlOjpQcm9ncmVzc1ZhbHVlRWxlbWVu
dDo6cHNldWRvKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0VsZW1lbnQu
aDoKKyAgICAgICAgKFByb2dyZXNzSW5uZXJFbGVtZW50KToKKyAgICAgICAgKFByb2dyZXNzQmFy
RWxlbWVudCk6CisgICAgICAgIChQcm9ncmVzc1ZhbHVlRWxlbWVudCk6CisgICAgICAgICogaHRt
bC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNsaWRl
clRodW1iRWxlbWVudDo6cHNldWRvKToKKyAgICAgICAgKFdlYkNvcmU6OlRyYWNrTGltaXRlckVs
ZW1lbnQ6OnBzZXVkbyk6CisgICAgICAgIChXZWJDb3JlOjpTbGlkZXJDb250YWluZXJFbGVtZW50
Ojpwc2V1ZG8pOgorICAgICAgICAqIGh0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5oOgor
ICAgICAgICAoU2xpZGVyVGh1bWJFbGVtZW50KToKKyAgICAgICAgKFRyYWNrTGltaXRlckVsZW1l
bnQpOgorICAgICAgICAoU2xpZGVyQ29udGFpbmVyRWxlbWVudCk6CisgICAgICAgICogaHRtbC9z
aGFkb3cvU3BpbkJ1dHRvbkVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3BpbkJ1dHRv
bkVsZW1lbnQ6OnBzZXVkbyk6CisgICAgICAgICogaHRtbC9zaGFkb3cvU3BpbkJ1dHRvbkVsZW1l
bnQuaDoKKyAgICAgICAgKFNwaW5CdXR0b25FbGVtZW50KToKKyAgICAgICAgKiBodG1sL3NoYWRv
dy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNo
RmllbGRSZXN1bHRzQnV0dG9uRWxlbWVudDo6cHNldWRvKToKKyAgICAgICAgKFdlYkNvcmU6OlNl
YXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVudDo6cHNldWRvKToKKyAgICAgICAgKFdlYkNvcmU6
OklucHV0RmllbGRTcGVlY2hCdXR0b25FbGVtZW50Ojpwc2V1ZG8pOgorICAgICAgICAqIGh0bWwv
c2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5oOgorICAgICAgICAoU2VhcmNoRmllbGRS
ZXN1bHRzQnV0dG9uRWxlbWVudCk6CisgICAgICAgIChTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVs
ZW1lbnQpOgorICAgICAgICAoSW5wdXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1lbnQpOgorICAgICAg
ICAqIGh0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRU
cmFja0N1ZUJveDo6VGV4dFRyYWNrQ3VlQm94KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFj
a0N1ZUJveDo6cHNldWRvKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0N1ZTo6dXBkYXRl
RGlzcGxheVRyZWUpOgorICAgICAgICAqIGh0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmg6CisgICAg
ICAgIChUZXh0VHJhY2tDdWVCb3gpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICAo
V2ViQ29yZTo6SW50ZXJuYWxzOjpzZXRTaGFkb3dQc2V1ZG9JZCk6CisKIDIwMTItMTEtMDUgIFNp
bW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSBEb2N1
bWVudDo6dXBkYXRlU3R5bGVJZk5lZWRlZCgpIG5vbi12aXJ0dWFsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmlu
CmluZGV4IGEyZDgzNjg2OWY0NWEwZTE5NjRiMWUwNjc0NjU3OTYwNGM2ZTliYWQuLjI1NWFhYThh
MzRmYTBiODU4M2E2Y2YwOTlkYWU2NzU5ZDEyYjliZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBA
IC04NTYsOSArODU2LDkgQEAgX19aTjdXZWJDb3JlN0NvbnNvbGUyMXNob3VsZFByaW50RXhjZXB0
aW9uc0V2CiBfX1pON1dlYkNvcmU3Q29uc29sZTI0c2V0U2hvdWxkUHJpbnRFeGNlcHRpb25zRWIK
IF9fWk43V2ViQ29yZTdFbGVtZW50MTJzZXRBdHRyaWJ1dGVFUktOM1dURjEyQXRvbWljU3RyaW5n
RVM0X1JpCiBfX1pON1dlYkNvcmU3RWxlbWVudDEyc2V0QXR0cmlidXRlRVJLTlNfMTNRdWFsaWZp
ZWROYW1lRVJLTjNXVEYxMkF0b21pY1N0cmluZ0UKLV9fWk43V2ViQ29yZTdFbGVtZW50MTdzZXRT
aGFkb3dQc2V1ZG9JZEVSS04zV1RGMTJBdG9taWNTdHJpbmdFUmkKIF9fWk43V2ViQ29yZTdFbGVt
ZW50MjFib3VuZHNJblJvb3RWaWV3U3BhY2VFdgogX19aTjdXZWJDb3JlN0VsZW1lbnQ5aW5uZXJU
ZXh0RXYKK19fWk43V2ViQ29yZTdFbGVtZW50OXNldFBzZXVkb0VSS04zV1RGMTJBdG9taWNTdHJp
bmdFUmkKIF9fWk43V2ViQ29yZTdJbnRSZWN0NXNjYWxlRWYKIF9fWk43V2ViQ29yZTdJbnRSZWN0
NXVuaXRlRVJLUzBfCiBfX1pON1dlYkNvcmU3SW50UmVjdDlpbnRlcnNlY3RFUktTMF8KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUub3JkZXIgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLm9yZGVyCmluZGV4IDUwM2ViZDczMTNmNjUzM2Q4MDEwOGQ4ZDkxMjQyN2M4OTlkMWFiMDUu
LjBmZWE0MzAzMjNkZmRiOTExOTc1MDhhYjY3MTc5OTU5NTcyZjc4ODMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUub3JkZXIKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5v
cmRlcgpAQCAtMTE4Myw3ICsxMTgzLDcgQEAgX19aTjdXZWJDb3JlMTZDU1NTdHlsZVNlbGVjdG9y
MTJtYXRjaFVBUnVsZXNFUmlTMV8KIF9fWk5LN1dlYkNvcmUxOU1lZGlhUXVlcnlFdmFsdWF0b3Iy
Mm1lZGlhVHlwZU1hdGNoU3BlY2lmaWNFUEtjCiBfX1pON1dlYkNvcmUxNkNTU1N0eWxlU2VsZWN0
b3IxMG1hdGNoUnVsZXNFUE5TXzdSdWxlU2V0RVJpUzNfYgogX19aTjNXVEY2VmVjdG9ySVBLTjdX
ZWJDb3JlOFJ1bGVEYXRhRUxtMzJFRTE0c2hyaW5rQ2FwYWNpdHlFbQotX19aTks3V2ViQ29yZTdF
bGVtZW50MTRzaGFkb3dQc2V1ZG9JZEV2CitfX1pOSzdXZWJDb3JlN0VsZW1lbnQ2cHNldWRvRXYK
IF9fWk43V2ViQ29yZTE2Q1NTU3R5bGVTZWxlY3RvcjE3bWF0Y2hSdWxlc0Zvckxpc3RFUEtOM1dU
RjZWZWN0b3JJTlNfOFJ1bGVEYXRhRUxtMEVFRVJpUzdfYgogX19aTjdXZWJDb3JlMTZDU1NTdHls
ZVNlbGVjdG9yMTNjaGVja1NlbGVjdG9yRVJLTlNfOFJ1bGVEYXRhRQogX19aTjdXZWJDb3JlMTZD
U1NTdHlsZVNlbGVjdG9yMTRhZGRNYXRjaGVkUnVsZUVQS05TXzhSdWxlRGF0YUUKQEAgLTcwMzAs
MjAgKzcwMzAsMjAgQEAgX19aTks3V2ViQ29yZTI3TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNl
MjhzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nRXYKIF9fWk43V2ViQ29yZTEwU2hhZG93Um9v
dDZhdHRhY2hFdgogX19aTjdXZWJDb3JlMjFTaGFkb3dDb250ZW50U2VsZWN0b3JDMkVQTlNfMTBT
aGFkb3dSb290RQogX19aTks3V2ViQ29yZTEwU2hhZG93Um9vdDE2aXNTaGFkb3dCb3VuZGFyeUV2
Ci1fX1pOSzdXZWJDb3JlMjNNZWRpYUNvbnRyb2xSb290RWxlbWVudDE0c2hhZG93UHNldWRvSWRF
dgorX19aTks3V2ViQ29yZTIzTWVkaWFDb250cm9sUm9vdEVsZW1lbnQ2cHNldWRvRXYKIF9fWk5L
N1dlYkNvcmUyNEFwcGx5UHJvcGVydHlEZWZhdWx0QmFzZUlOU182TGVuZ3RoRUUxN2FwcGx5SW5o
ZXJpdFZhbHVlRVBOU18xNkNTU1N0eWxlU2VsZWN0b3JFCiBfX1pOSzdXZWJDb3JlMTFSZW5kZXJT
dHlsZTV3aWR0aEV2CiBfX1pOSzdXZWJDb3JlMTFSZW5kZXJTdHlsZTZoZWlnaHRFdgogX19aTjdX
ZWJDb3JlMTFSZW5kZXJNZWRpYTE1dmlydHVhbENoaWxkcmVuRXYKLV9fWk5LN1dlYkNvcmUyNE1l
ZGlhQ29udHJvbFBhbmVsRWxlbWVudDE0c2hhZG93UHNldWRvSWRFdgorX19aTks3V2ViQ29yZTI0
TWVkaWFDb250cm9sUGFuZWxFbGVtZW50NnBzZXVkb0V2CiBfX1pON1dlYkNvcmUxMVJlbmRlclN0
eWxlOXNldEJvdHRvbUVOU182TGVuZ3RoRQogX19aTjdXZWJDb3JlMTdSZW5kZXJEZXByZWNhdGVk
RmxleGlibGVCb3hDMUVQTlNfNE5vZGVFCi1fX1pOSzdXZWJDb3JlMzFNZWRpYUNvbnRyb2xSZXdp
bmRCdXR0b25FbGVtZW50MTRzaGFkb3dQc2V1ZG9JZEV2CitfX1pOSzdXZWJDb3JlMzFNZWRpYUNv
bnRyb2xSZXdpbmRCdXR0b25FbGVtZW50NnBzZXVkb0V2CiBfX1pOSzdXZWJDb3JlMThBcHBseVBy
b3BlcnR5Q29sb3JJTE5TXzEyQ29sb3JJbmhlcml0RTFFRTE3YXBwbHlJbmhlcml0VmFsdWVFUE5T
XzE2Q1NTU3R5bGVTZWxlY3RvckUKIF9fWk5LN1dlYkNvcmUxMVJlbmRlclN0eWxlNWNvbG9yRXYK
IF9fWk43V2ViQ29yZTlJbnB1dFR5cGUxMmRlZmF1bHRWYWx1ZUV2Ci1fX1pOSzdXZWJDb3JlMjlN
ZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudDE0c2hhZG93UHNldWRvSWRFdgotX19aTks3V2Vi
Q29yZTQxTWVkaWFDb250cm9sUmV0dXJuVG9SZWFsdGltZUJ1dHRvbkVsZW1lbnQxNHNoYWRvd1Bz
ZXVkb0lkRXYKK19fWk5LN1dlYkNvcmUyOU1lZGlhQ29udHJvbFBsYXlCdXR0b25FbGVtZW50NnBz
ZXVkb0V2CitfX1pOSzdXZWJDb3JlNDFNZWRpYUNvbnRyb2xSZXR1cm5Ub1JlYWx0aW1lQnV0dG9u
RWxlbWVudDZwc2V1ZG9FdgogX19aTks3V2ViQ29yZTEzU3R5bGVkRWxlbWVudDIwdXBkYXRlU3R5
bGVBdHRyaWJ1dGVFdgogX19aTks3V2ViQ29yZTI2Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb243
Y3NzVGV4dEV2CiBfX1pOSzdXZWJDb3JlMTFDU1NQcm9wZXJ0eTdjc3NUZXh0RXYKQEAgLTcwNTEs
MjQgKzcwNTEsMjQgQEAgX19aTks3V2ViQ29yZTE3Q1NTUHJpbWl0aXZlVmFsdWU3Y3NzVGV4dEV2
CiBfX1pON1dlYkNvcmVMMTl2YWx1ZU9yUHJvcGVydHlOYW1lRWkKIF9fWk43V2ViQ29yZTEyZ2V0
VmFsdWVOYW1lRXQKIF9fWk43V2ViQ29yZTE1Z2V0UHJvcGVydHlOYW1lRU5TXzEzQ1NTUHJvcGVy
dHlJREUKLV9fWk5LN1dlYkNvcmUzMk1lZGlhQ29udHJvbFN0YXR1c0Rpc3BsYXlFbGVtZW50MTRz
aGFkb3dQc2V1ZG9JZEV2CitfX1pOSzdXZWJDb3JlMzJNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5
RWxlbWVudDZwc2V1ZG9FdgogX19aTks3V2ViQ29yZTExU2hhZG93VmFsdWUxM2lzU2hhZG93VmFs
dWVFdgogX19aTjNXVEY2T3duUHRySU43V2ViQ29yZTEwU2hhZG93RGF0YUVFRDFFdgotX19aTks3
V2ViQ29yZTM2TWVkaWFDb250cm9sVGltZWxpbmVDb250YWluZXJFbGVtZW50MTRzaGFkb3dQc2V1
ZG9JZEV2CitfX1pOSzdXZWJDb3JlMzZNZWRpYUNvbnRyb2xUaW1lbGluZUNvbnRhaW5lckVsZW1l
bnQ2cHNldWRvRXYKIF9fWk43V2ViQ29yZTExUmVuZGVyU3R5bGUxMHNldEJveFBhY2tFTlNfMTNF
Qm94QWxpZ25tZW50RQotX19aTks3V2ViQ29yZTMzTWVkaWFDb250cm9sU2Vla0JhY2tCdXR0b25F
bGVtZW50MTRzaGFkb3dQc2V1ZG9JZEV2Ci1fX1pOSzdXZWJDb3JlMzZNZWRpYUNvbnRyb2xTZWVr
Rm9yd2FyZEJ1dHRvbkVsZW1lbnQxNHNoYWRvd1BzZXVkb0lkRXYKLV9fWk5LN1dlYkNvcmU0NU1l
ZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudDE0c2hhZG93UHNldWRv
SWRFdgorX19aTks3V2ViQ29yZTMzTWVkaWFDb250cm9sU2Vla0JhY2tCdXR0b25FbGVtZW50NnBz
ZXVkb0V2CitfX1pOSzdXZWJDb3JlMzZNZWRpYUNvbnRyb2xTZWVrRm9yd2FyZEJ1dHRvbkVsZW1l
bnQ2cHNldWRvRXYKK19fWk5LN1dlYkNvcmU0NU1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRp
b25zQnV0dG9uRWxlbWVudDZwc2V1ZG9FdgogX19aTjdXZWJDb3JlMTFSZW5kZXJTdHlsZTE4c2V0
Qm94T3JkaW5hbEdyb3VwRWoKLV9fWk5LN1dlYkNvcmUzNU1lZGlhQ29udHJvbEZ1bGxzY3JlZW5C
dXR0b25FbGVtZW50MTRzaGFkb3dQc2V1ZG9JZEV2Ci1fX1pOSzdXZWJDb3JlMzRNZWRpYUNvbnRy
b2xQYW5lbE11dGVCdXR0b25FbGVtZW50MTRzaGFkb3dQc2V1ZG9JZEV2Ci1fX1pOSzdXZWJDb3Jl
NDBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50MTRzaGFkb3dQc2V1ZG9J
ZEV2CitfX1pOSzdXZWJDb3JlMzVNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudDZw
c2V1ZG9FdgorX19aTks3V2ViQ29yZTM0TWVkaWFDb250cm9sUGFuZWxNdXRlQnV0dG9uRWxlbWVu
dDZwc2V1ZG9FdgorX19aTks3V2ViQ29yZTQwTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFp
bmVyRWxlbWVudDZwc2V1ZG9FdgogX19aTjdXZWJDb3JlMTFSZW5kZXJTdHlsZTZzZXRUb3BFTlNf
Nkxlbmd0aEUKIF9fWk43V2ViQ29yZTExUmVuZGVyU3R5bGU3c2V0TGVmdEVOU182TGVuZ3RoRQot
X19aTks3V2ViQ29yZTQ0TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1pbkJ1dHRvbkVsZW1l
bnQxNHNoYWRvd1BzZXVkb0lkRXYKLV9fWk5LN1dlYkNvcmU0MU1lZGlhQ29udHJvbEZ1bGxzY3Jl
ZW5Wb2x1bWVTbGlkZXJFbGVtZW50MTRzaGFkb3dQc2V1ZG9JZEV2CitfX1pOSzdXZWJDb3JlNDRN
ZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWluQnV0dG9uRWxlbWVudDZwc2V1ZG9FdgorX19a
Tks3V2ViQ29yZTQxTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZVNsaWRlckVsZW1lbnQ2cHNl
dWRvRXYKIF9fWk5LN1dlYkNvcmUxNFJlbmRlclRoZW1lTWFjMjJhZGp1c3RTbGlkZXJUcmFja1N0
eWxlRVBOU18xNkNTU1N0eWxlU2VsZWN0b3JFUE5TXzExUmVuZGVyU3R5bGVFUE5TXzdFbGVtZW50
RQotX19aTks3V2ViQ29yZTQ0TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1heEJ1dHRvbkVs
ZW1lbnQxNHNoYWRvd1BzZXVkb0lkRXYKK19fWk5LN1dlYkNvcmU0NE1lZGlhQ29udHJvbEZ1bGxz
Y3JlZW5Wb2x1bWVNYXhCdXR0b25FbGVtZW50NnBzZXVkb0V2CiBfX1pON1dlYkNvcmUxMVJlbmRl
clZpZGVvMTd1cGRhdGVGcm9tRWxlbWVudEV2CiBfX1pON1dlYkNvcmUxMVJlbmRlclZpZGVvMTJ1
cGRhdGVQbGF5ZXJFdgogX19aTjdXZWJDb3JlMTFSZW5kZXJWaWRlbzE5dXBkYXRlSW50cmluc2lj
U2l6ZUV2CkBAIC03MzEwLDE2ICs3MzEwLDE2IEBAIF9fWk5LN1dlYkNvcmUxMVJlbmRlckJsb2Nr
MTl2aXJ0dWFsQ29udGludWF0aW9uRXYKIF9fWk43V2ViQ29yZTExUmVuZGVyTGF5ZXIxMXJlbW92
ZUNoaWxkRVBTMF8KIF9fWk43V2ViQ29yZTIxUmVuZGVyTGF5ZXJDb21wb3NpdG9yMThsYXllcldp
bGxCZVJlbW92ZWRFUE5TXzExUmVuZGVyTGF5ZXJFUzJfCiBfX1pON1dlYkNvcmUxN1JlbmRlckRl
cHJlY2F0ZWRGbGV4aWJsZUJveEQwRXYKLV9fWk5LN1dlYkNvcmUzN01lZGlhQ29udHJvbEN1cnJl
bnRUaW1lRGlzcGxheUVsZW1lbnQxNHNoYWRvd1BzZXVkb0lkRXYKK19fWk5LN1dlYkNvcmUzN01l
ZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlzcGxheUVsZW1lbnQ2cHNldWRvRXYKIF9fWk43V2ViQ29y
ZTMwTWVkaWFDb250cm9sVGltZURpc3BsYXlFbGVtZW50MTRjcmVhdGVSZW5kZXJlckVQTlNfMTFS
ZW5kZXJBcmVuYUVQTlNfMTFSZW5kZXJTdHlsZUUKLV9fWk5LN1dlYkNvcmUyN01lZGlhQ29udHJv
bFRpbWVsaW5lRWxlbWVudDE0c2hhZG93UHNldWRvSWRFdgorX19aTks3V2ViQ29yZTI3TWVkaWFD
b250cm9sVGltZWxpbmVFbGVtZW50NnBzZXVkb0V2CiBfX1pON1dlYkNvcmUxMVJlbmRlclN0eWxl
MTNpbml0aWFsTWFyZ2luRXYKIF9fWk5LN1dlYkNvcmUxNFJhbmdlSW5wdXRUeXBlMTRjcmVhdGVS
ZW5kZXJlckVQTlNfMTFSZW5kZXJBcmVuYUVQTlNfMTFSZW5kZXJTdHlsZUUKIF9fWk43V2ViQ29y
ZTEyUmVuZGVyU2xpZGVyQzFFUE5TXzE2SFRNTElucHV0RWxlbWVudEUKLV9fWk5LN1dlYkNvcmUx
OFNsaWRlclRodW1iRWxlbWVudDE0c2hhZG93UHNldWRvSWRFdgorX19aTks3V2ViQ29yZTE4U2xp
ZGVyVGh1bWJFbGVtZW50NnBzZXVkb0V2CiBfX1pOSzdXZWJDb3JlMTRSZW5kZXJUaGVtZU1hYzIy
YWRqdXN0U2xpZGVyVGh1bWJTdHlsZUVQTlNfMTZDU1NTdHlsZVNlbGVjdG9yRVBOU18xMVJlbmRl
clN0eWxlRVBOU183RWxlbWVudEUKIF9fWk43V2ViQ29yZTE4U2xpZGVyVGh1bWJFbGVtZW50MTRj
cmVhdGVSZW5kZXJlckVQTlNfMTFSZW5kZXJBcmVuYUVQTlNfMTFSZW5kZXJTdHlsZUUKLV9fWk5L
N1dlYkNvcmUzOU1lZGlhQ29udHJvbFRpbWVSZW1haW5pbmdEaXNwbGF5RWxlbWVudDE0c2hhZG93
UHNldWRvSWRFdgorX19aTks3V2ViQ29yZTM5TWVkaWFDb250cm9sVGltZVJlbWFpbmluZ0Rpc3Bs
YXlFbGVtZW50NnBzZXVkb0V2CiBfX1pON1dlYkNvcmUxMlJlbmRlclNsaWRlcjI5Y29tcHV0ZVBy
ZWZlcnJlZExvZ2ljYWxXaWR0aHNFdgogX19aTjdXZWJDb3JlMjlSZW5kZXJNZWRpYUNvbnRyb2xU
aW1lRGlzcGxheTZsYXlvdXRFdgogX19aTjdXZWJDb3JlMTJSZW5kZXJTbGlkZXI2bGF5b3V0RXYK
QEAgLTE1MDY0LDcgKzE1MDY0LDcgQEAgX19aTjdXZWJDb3JlMTlKU0hUTUxLZXlnZW5FbGVtZW50
QzFFUE4zSlNDOVN0cnVjdHVyZUVQTlNfMTdKU0RPTUdsb2JhbE9iamVjdEVOM1cKIF9fWk43V2Vi
Q29yZTEyY2FjaGVXcmFwcGVySU5TXzE3SFRNTEtleWdlbkVsZW1lbnRFRUV2UE5TXzE1RE9NV3Jh
cHBlcldvcmxkRVBUX1BOU18xMkpTRE9NV3JhcHBlckUKIF9fWk43V2ViQ29yZTE5SlNIVE1MS2V5
Z2VuRWxlbWVudDE4Z2V0T3duUHJvcGVydHlTbG90RVBOM0pTQzlFeGVjU3RhdGVFUktOUzFfMTBJ
ZGVudGlmaWVyRVJOUzFfMTJQcm9wZXJ0eVNsb3RFCiBfX1pON1dlYkNvcmUyOEpTSFRNTEtleWdl
bkVsZW1lbnRQcm90b3R5cGUxOGdldE93blByb3BlcnR5U2xvdEVQTjNKU0M5RXhlY1N0YXRlRVJL
TlMxXzEwSWRlbnRpZmllckVSTlMxXzEyUHJvcGVydHlTbG90RQotX19aTks3V2ViQ29yZTE5S2V5
Z2VuU2VsZWN0RWxlbWVudDE0c2hhZG93UHNldWRvSWRFdgorX19aTks3V2ViQ29yZTE5S2V5Z2Vu
U2VsZWN0RWxlbWVudDZwc2V1ZG9FdgogX19aTjdXZWJDb3JlTDE4bWFycXVlZUNvbnN0cnVjdG9y
RVJLTlNfMTNRdWFsaWZpZWROYW1lRVBOU184RG9jdW1lbnRFUE5TXzE1SFRNTEZvcm1FbGVtZW50
RWIKIF9fWk43V2ViQ29yZTE4SFRNTE1hcnF1ZWVFbGVtZW50NmNyZWF0ZUVSS05TXzEzUXVhbGlm
aWVkTmFtZUVQTlNfOERvY3VtZW50RQogX19aTjdXZWJDb3JlTDMxY3JlYXRlSFRNTE1hcnF1ZWVF
bGVtZW50V3JhcHBlckVQTjNKU0M5RXhlY1N0YXRlRVBOU18xN0pTRE9NR2xvYmFsT2JqZWN0RU4z
V1RGMTBQYXNzUmVmUHRySU5TXzExSFRNTEVsZW1lbnRFRUUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVj
dG9yQ2hlY2tlci5jcHAKaW5kZXggYjY2MDUwZmU0NzUwNzIzZDcxNGFjNTk2MGQ4ODMyZmRkOGI1
MzA2ZC4uNGRkOWQ5MDc4NGQ2YzljODVjZGFjNzQ2Yzc5ZWZlN2MzMDhiZWU5MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAKQEAgLTQ0Nyw3ICs0NDcsNyBAQCBTZWxlY3Rv
ckNoZWNrZXI6OlNlbGVjdG9yTWF0Y2ggU2VsZWN0b3JDaGVja2VyOjpjaGVja1NlbGVjdG9yKGNv
bnN0IFNlbGVjdG9yQ2hlYwogCiAgICAgaWYgKGNvbnRleHQuc2VsZWN0b3ItPm1fbWF0Y2ggPT0g
Q1NTU2VsZWN0b3I6OlBzZXVkb0VsZW1lbnQpIHsKICAgICAgICAgaWYgKGNvbnRleHQuc2VsZWN0
b3ItPmlzVW5rbm93blBzZXVkb0VsZW1lbnQoKSkgewotICAgICAgICAgICAgaWYgKGNvbnRleHQu
ZWxlbWVudC0+c2hhZG93UHNldWRvSWQoKSAhPSBjb250ZXh0LnNlbGVjdG9yLT52YWx1ZSgpKQor
ICAgICAgICAgICAgaWYgKGNvbnRleHQuZWxlbWVudC0+cHNldWRvKCkgIT0gY29udGV4dC5zZWxl
Y3Rvci0+dmFsdWUoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gU2VsZWN0b3JGYWlsc0xvY2Fs
bHk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBpZiAoKCFjb250ZXh0LmVsZW1lbnRT
dHlsZSAmJiBtX21vZGUgPT0gUmVzb2x2aW5nU3R5bGUpIHx8IG1fbW9kZSA9PSBRdWVyeWluZ1J1
bGVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IDdjY2RmZmZkNzA2NDVi
NjFmMTZjNmM3MTRmNGNjMmUwNzQxZjBjZTcuLmExZmFjYzYyYmEwNzBiNmYzMzIyZWNkMGU0N2Qz
YzNkM2M5MmY3ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKQEAgLTY2Myw3
ICs2NjMsNyBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6OmNvbGxlY3RNYXRjaGluZ1J1bGVzKFJ1bGVT
ZXQqIHJ1bGVzLCBpbnQmIGZpcnN0UnVsZUluZGV4LCBpbgogICAgIEFTU0VSVChydWxlcyk7CiAg
ICAgQVNTRVJUKG1fZWxlbWVudCk7CiAKLSAgICBjb25zdCBBdG9taWNTdHJpbmcmIHBzZXVkb0lk
ID0gbV9lbGVtZW50LT5zaGFkb3dQc2V1ZG9JZCgpOworICAgIGNvbnN0IEF0b21pY1N0cmluZyYg
cHNldWRvSWQgPSBtX2VsZW1lbnQtPnBzZXVkbygpOwogICAgIGlmICghcHNldWRvSWQuaXNFbXB0
eSgpKSB7CiAgICAgICAgIEFTU0VSVChtX3N0eWxlZEVsZW1lbnQpOwogICAgICAgICBjb2xsZWN0
TWF0Y2hpbmdSdWxlc0Zvckxpc3QocnVsZXMtPnNoYWRvd1BzZXVkb0VsZW1lbnRSdWxlcyhwc2V1
ZG9JZC5pbXBsKCkpLCBmaXJzdFJ1bGVJbmRleCwgbGFzdFJ1bGVJbmRleCwgb3B0aW9ucyk7CkBA
IC0xMTk1LDcgKzExOTUsNyBAQCBib29sIFN0eWxlUmVzb2x2ZXI6OmNhblNoYXJlU3R5bGVXaXRo
RWxlbWVudChTdHlsZWRFbGVtZW50KiBlbGVtZW50KSBjb25zdAogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgaWYgKGVsZW1lbnQtPmZvY3VzZWQoKSAhPSBtX2VsZW1lbnQtPmZvY3VzZWQoKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmIChlbGVtZW50LT5zaGFkb3dQc2V1ZG9JZCgp
ICE9IG1fZWxlbWVudC0+c2hhZG93UHNldWRvSWQoKSkKKyAgICBpZiAoZWxlbWVudC0+cHNldWRv
KCkgIT0gbV9lbGVtZW50LT5wc2V1ZG8oKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlm
IChlbGVtZW50ID09IGVsZW1lbnQtPmRvY3VtZW50KCktPmNzc1RhcmdldCgpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggNGQ5MzgzMGVkMWEzMDAzYjg2
MjJlMmVlZWQ1MTBlNjE0OWViMjdiMy4uMWEzMDdiYjE5NzA0ZmU1MjcyNzBhY2NkZGM2OTNhNGJh
YzQxZmUxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtMTM1MiwyMSArMTM1Miw2IEBAIFNo
YWRvd1Jvb3QqIEVsZW1lbnQ6OnVzZXJBZ2VudFNoYWRvd1Jvb3QoKSBjb25zdAogICAgIHJldHVy
biAwOwogfQogCi1jb25zdCBBdG9taWNTdHJpbmcmIEVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkg
Y29uc3QKLXsKLSAgICByZXR1cm4gcHNldWRvKCk7Ci19Ci0KLXZvaWQgRWxlbWVudDo6c2V0U2hh
ZG93UHNldWRvSWQoY29uc3QgQXRvbWljU3RyaW5nJiBpZCwgRXhjZXB0aW9uQ29kZSYgZWMpCi17
Ci0gICAgaWYgKCFDU1NTZWxlY3Rvcjo6aXNVbmtub3duUHNldWRvVHlwZShpZCkpIHsKLSAgICAg
ICAgZWMgPSBTWU5UQVhfRVJSOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgc2V0UHNl
dWRvKGlkKTsKLX0KLQogYm9vbCBFbGVtZW50OjpjaGlsZFR5cGVBbGxvd2VkKE5vZGVUeXBlIHR5
cGUpIGNvbnN0CiB7CiAgICAgc3dpdGNoICh0eXBlKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAppbmRleCA2
NzdiMzQ3NTQyOTRmZTE2NjYwOWVlNmZlNWI3MzM2NDJiNDU0NzE5Li41MDZmNmMxYWIxYWZlYWRk
MmQ3ZjFmZGNhMGNiMmFkMmNlM2U4ZWQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKQEAgLTI3OSw5ICsy
NzksNiBAQCBwdWJsaWM6CiAKICAgICBTaGFkb3dSb290KiB1c2VyQWdlbnRTaGFkb3dSb290KCkg
Y29uc3Q7CiAKLSAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQo
KSBjb25zdDsKLSAgICB2b2lkIHNldFNoYWRvd1BzZXVkb0lkKGNvbnN0IEF0b21pY1N0cmluZyYs
IEV4Y2VwdGlvbkNvZGUmID0gQVNTRVJUX05PX0VYQ0VQVElPTik7Ci0KICAgICBSZW5kZXJTdHls
ZSogY29tcHV0ZWRTdHlsZShQc2V1ZG9JZCA9IE5PUFNFVURPKTsKIAogICAgIHZvaWQgc2V0U3R5
bGVBZmZlY3RlZEJ5RW1wdHkoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFz
ZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9CYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKaW5kZXggM2Nh
NWM4ZjExNmNiZDIzNTQ4YTgyOTJhYzE2Mjg0ZDk4NGM5MDMyNC4uZTcwZDAwYTgxYWY1YjE5OWMw
YTI4MGY4NjllYWI4ZmU0NDZjNzQ4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9C
YXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9CYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKQEAg
LTE2MSw3ICsxNjEsNyBAQCB2b2lkIEJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRU
eXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBlbGVt
ZW50KCktPmRvY3VtZW50KCk7CiAgICAgUmVmUHRyPEhUTUxEaXZFbGVtZW50PiBjb250YWluZXIg
PSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBlbGVtZW50KCktPnVzZXJB
Z2VudFNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQoY29udGFpbmVyKTsKLSAgICBjb250YWluZXIt
PnNldFNoYWRvd1BzZXVkb0lkKGRhdGVBbmRUaW1lSW5wdXRDb250YWluZXJQc2V1ZG9JZCk7Cisg
ICAgY29udGFpbmVyLT5zZXRQc2V1ZG8oZGF0ZUFuZFRpbWVJbnB1dENvbnRhaW5lclBzZXVkb0lk
KTsKIAogICAgIFJlZlB0cjxEYXRlVGltZUVkaXRFbGVtZW50PiBkYXRlVGltZUVkaXRFbGVtZW50
KERhdGVUaW1lRWRpdEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgKnRoaXMpKTsKICAgICBtX2Rh
dGVUaW1lRWRpdEVsZW1lbnQgPSBkYXRlVGltZUVkaXRFbGVtZW50LmdldCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcAppbmRleCA3ZjA4N2RlOTUwMGZiZmNhYzIzMzY1YzEx
NDM1YzAyZGY0NTliNWRiLi5kZWJjOTgyMzAxZmY1YzI0MjEzOGY5Y2NiZmUyYTMzODhmMjMwMTk3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcApAQCAtMTE4LDkgKzExOCw5
IEBAIHZvaWQgQ29sb3JJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogCiAgICAgRG9j
dW1lbnQqIGRvY3VtZW50ID0gZWxlbWVudCgpLT5kb2N1bWVudCgpOwogICAgIFJlZlB0cjxIVE1M
RGl2RWxlbWVudD4gd3JhcHBlckVsZW1lbnQgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3Vt
ZW50KTsKLSAgICB3cmFwcGVyRWxlbWVudC0+c2V0U2hhZG93UHNldWRvSWQoIi13ZWJraXQtY29s
b3Itc3dhdGNoLXdyYXBwZXIiKTsKKyAgICB3cmFwcGVyRWxlbWVudC0+c2V0UHNldWRvKCItd2Vi
a2l0LWNvbG9yLXN3YXRjaC13cmFwcGVyIik7CiAgICAgUmVmUHRyPEhUTUxEaXZFbGVtZW50PiBj
b2xvclN3YXRjaCA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwotICAgIGNvbG9y
U3dhdGNoLT5zZXRTaGFkb3dQc2V1ZG9JZCgiLXdlYmtpdC1jb2xvci1zd2F0Y2giKTsKKyAgICBj
b2xvclN3YXRjaC0+c2V0UHNldWRvKCItd2Via2l0LWNvbG9yLXN3YXRjaCIpOwogICAgIEV4Y2Vw
dGlvbkNvZGUgZWMgPSAwOwogICAgIHdyYXBwZXJFbGVtZW50LT5hcHBlbmRDaGlsZChjb2xvclN3
YXRjaC5yZWxlYXNlKCksIGVjKTsKICAgICBBU1NFUlQoIWVjKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zp
bGVJbnB1dFR5cGUuY3BwCmluZGV4IDg5ZmNjODc4ZTU5YzUzOTMyZTkwOTdkYjEyOWJkMDY3Y2Q2
NzNlM2UuLmExYjU1MzZhMmIwYWNmYWZjYjZmM2RkMjA0MzFmN2JkYmExYzk2YzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcApAQCAtNTYsNyArNTYsNyBAQCBwdWJsaWM6CiBw
cml2YXRlOgogICAgIFVwbG9hZEJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQqKTsKIAotICAgIHZpcnR1
YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0OworICAgIHZpcnR1
YWwgY29uc3QgQXRvbWljU3RyaW5nJiBwc2V1ZG8oKSBjb25zdDsKIH07CiAKIFBhc3NSZWZQdHI8
VXBsb2FkQnV0dG9uRWxlbWVudD4gVXBsb2FkQnV0dG9uRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50
KiBkb2N1bWVudCkKQEAgLTgwLDcgKzgwLDcgQEAgVXBsb2FkQnV0dG9uRWxlbWVudDo6VXBsb2Fk
QnV0dG9uRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQpCiB7CiB9CiAKLWNvbnN0IEF0b21pY1N0
cmluZyYgVXBsb2FkQnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAorY29uc3Qg
QXRvbWljU3RyaW5nJiBVcGxvYWRCdXR0b25FbGVtZW50Ojpwc2V1ZG8oKSBjb25zdAogewogICAg
IERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBwc2V1ZG9JZCwgKCItd2Via2l0LWZp
bGUtdXBsb2FkLWJ1dHRvbiIpKTsKICAgICByZXR1cm4gcHNldWRvSWQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwCmluZGV4IGNmZTJkOGU0OTY5NTAwMjk5MjIxOTM4
YWJiYjIyMjIyY2ZmMGJhOTcuLjMzMTgzYzQ2MzVkNTc0MTZhYzQ4YTlhY2FhNjk2NjBhMWIyMjRm
ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwCkBAIC01MCw3
ICs1MCw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBLZXlnZW5TZWxl
Y3RFbGVtZW50KGRvY3VtZW50KSk7CiAgICAgfQogCi0gICAgdmlydHVhbCBjb25zdCBBdG9taWNT
dHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3QKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0
cmluZyYgcHNldWRvKCkgY29uc3QKICAgICB7CiAgICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwo
QXRvbWljU3RyaW5nLCBwc2V1ZG9JZCwgKCItd2Via2l0LWtleWdlbi1zZWxlY3QiKSk7CiAgICAg
ICAgIHJldHVybiBwc2V1ZG9JZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRleHRBcmVhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVs
ZW1lbnQuY3BwCmluZGV4IGRiOThjY2M5Zjk1MDdlOWMzZmMyY2IzMmQwZmU0YmQ1YzU3YTRmMWQu
Ljc1MDljMDJiYzZkNjEzYjQwMWFhZTdkMTM0MTE1YTZkZTE3N2NjOTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcApAQCAtNTQ0LDcgKzU0NCw3IEBAIHZv
aWQgSFRNTFRleHRBcmVhRWxlbWVudDo6dXBkYXRlUGxhY2Vob2xkZXJUZXh0KCkKICAgICBpZiAo
IW1fcGxhY2Vob2xkZXIpIHsKICAgICAgICAgUmVmUHRyPEhUTUxEaXZFbGVtZW50PiBwbGFjZWhv
bGRlciA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7CiAgICAgICAgIG1fcGxh
Y2Vob2xkZXIgPSBwbGFjZWhvbGRlci5nZXQoKTsKLSAgICAgICAgbV9wbGFjZWhvbGRlci0+c2V0
U2hhZG93UHNldWRvSWQoIi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIiKTsKKyAgICAgICAgbV9w
bGFjZWhvbGRlci0+c2V0UHNldWRvKCItd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIik7CiAgICAg
ICAgIHVzZXJBZ2VudFNoYWRvd1Jvb3QoKS0+aW5zZXJ0QmVmb3JlKG1fcGxhY2Vob2xkZXIsIGlu
bmVyVGV4dEVsZW1lbnQoKS0+bmV4dFNpYmxpbmcoKSwgZWMpOwogICAgICAgICBBU1NFUlQoIWVj
KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCmluZGV4IDFlODM4
NDQ1M2M0ODExZGMyMGRlZWQwOWExMGEyMTZkM2IyZGQzYTEuLjEyMDExM2I2MDE2ZmQxM2I2YTY5
Njg1MWJkZWJkY2U0MmYyOTg2ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFu
Z2VJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUu
Y3BwCkBAIC0yNTUsNyArMjU1LDcgQEAgdm9pZCBSYW5nZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93
U3VidHJlZSgpCiAKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBlbGVtZW50KCktPmRvY3VtZW50
KCk7CiAgICAgUmVmUHRyPEhUTUxEaXZFbGVtZW50PiB0cmFjayA9IEhUTUxEaXZFbGVtZW50Ojpj
cmVhdGUoZG9jdW1lbnQpOwotICAgIHRyYWNrLT5zZXRTaGFkb3dQc2V1ZG9JZCgiLXdlYmtpdC1z
bGlkZXItcnVubmFibGUtdHJhY2siKTsKKyAgICB0cmFjay0+c2V0UHNldWRvKCItd2Via2l0LXNs
aWRlci1ydW5uYWJsZS10cmFjayIpOwogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIHRy
YWNrLT5hcHBlbmRDaGlsZChTbGlkZXJUaHVtYkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCksIGVj
KTsKICAgICBSZWZQdHI8SFRNTEVsZW1lbnQ+IGNvbnRhaW5lciA9IFNsaWRlckNvbnRhaW5lckVs
ZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L1RleHRGaWVsZElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElu
cHV0VHlwZS5jcHAKaW5kZXggYTVjMjc0NWZjNDZhYTc1YjZkNTM4OTk3MjUwMTBjMjkxNDZlYWI5
Yi4uMWIxOTkxZGJlZTg5YTlkODAyNWY0OGZjNTViZDE1ZGVmNTljY2NjMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcApAQCAtMjQ1LDcgKzI0NSw3IEBAIHZv
aWQgVGV4dEZpZWxkSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKIAogICAgIFNoYWRv
d1Jvb3QqIHNoYWRvd1Jvb3QgPSBlbGVtZW50KCktPnVzZXJBZ2VudFNoYWRvd1Jvb3QoKTsKICAg
ICBtX2NvbnRhaW5lciA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwotICAgIG1f
Y29udGFpbmVyLT5zZXRTaGFkb3dQc2V1ZG9JZCgiLXdlYmtpdC10ZXh0ZmllbGQtZGVjb3JhdGlv
bi1jb250YWluZXIiKTsKKyAgICBtX2NvbnRhaW5lci0+c2V0UHNldWRvKCItd2Via2l0LXRleHRm
aWVsZC1kZWNvcmF0aW9uLWNvbnRhaW5lciIpOwogICAgIHNoYWRvd1Jvb3QtPmFwcGVuZENoaWxk
KG1fY29udGFpbmVyLCBlYyk7CiAKICAgICBtX2lubmVyQmxvY2sgPSBUZXh0Q29udHJvbElubmVy
RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKQEAgLTQxMyw3ICs0MTMsNyBAQCB2b2lkIFRleHRG
aWVsZElucHV0VHlwZTo6dXBkYXRlUGxhY2Vob2xkZXJUZXh0KCkKICAgICB9CiAgICAgaWYgKCFt
X3BsYWNlaG9sZGVyKSB7CiAgICAgICAgIG1fcGxhY2Vob2xkZXIgPSBIVE1MRGl2RWxlbWVudDo6
Y3JlYXRlKGVsZW1lbnQoKS0+ZG9jdW1lbnQoKSk7Ci0gICAgICAgIG1fcGxhY2Vob2xkZXItPnNl
dFNoYWRvd1BzZXVkb0lkKCItd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIik7CisgICAgICAgIG1f
cGxhY2Vob2xkZXItPnNldFBzZXVkbygiLXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciIpOwogICAg
ICAgICBlbGVtZW50KCktPnVzZXJBZ2VudFNoYWRvd1Jvb3QoKS0+aW5zZXJ0QmVmb3JlKG1fcGxh
Y2Vob2xkZXIsIG1fY29udGFpbmVyID8gbV9jb250YWluZXItPm5leHRTaWJsaW5nKCkgOiBpbm5l
clRleHRFbGVtZW50KCktPm5leHRTaWJsaW5nKCksIGVjKTsKICAgICAgICAgQVNTRVJUKCFlYyk7
CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0aW9uTWVzc2Fn
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlkYXRpb25NZXNzYWdlLmNwcAppbmRleCAx
ZDU1MWM5MzEzZTA3MDcwNDQ4NWJlMmI0Y2MzOTBiODM0OTdkNTRmLi5hZDU3Y2I4N2EwMGRjOWNi
MzRhYzI1YjViZmY2ZjgzYTQ0MzQ1NzZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L1ZhbGlkYXRpb25NZXNzYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlkYXRp
b25NZXNzYWdlLmNwcApAQCAtMTc5LDcgKzE3OSw3IEBAIHZvaWQgVmFsaWRhdGlvbk1lc3NhZ2U6
OmJ1aWxkQnViYmxlVHJlZShUaW1lcjxWYWxpZGF0aW9uTWVzc2FnZT4qKQogCiAgICAgRG9jdW1l
bnQqIGRvYyA9IG1fZWxlbWVudC0+ZG9jdW1lbnQoKTsKICAgICBtX2J1YmJsZSA9IEhUTUxEaXZF
bGVtZW50OjpjcmVhdGUoZG9jKTsKLSAgICBtX2J1YmJsZS0+c2V0U2hhZG93UHNldWRvSWQoIi13
ZWJraXQtdmFsaWRhdGlvbi1idWJibGUiKTsKKyAgICBtX2J1YmJsZS0+c2V0UHNldWRvKCItd2Vi
a2l0LXZhbGlkYXRpb24tYnViYmxlIik7CiAgICAgLy8gTmVlZCB0byBmb3JjZSBwb3NpdGlvbjph
YnNvbHV0ZSBiZWNhdXNlIFJlbmRlck1lbnVMaXN0IGRvZXNuJ3QgYXNzdW1lIGl0CiAgICAgLy8g
Y29udGFpbnMgbm9uLWFic29sdXRlIG9yIG5vbi1maXhlZCByZW5kZXJlcnMgYXMgY2hpbGRyZW4u
CiAgICAgbV9idWJibGUtPnNldElubGluZVN0eWxlUHJvcGVydHkoQ1NTUHJvcGVydHlQb3NpdGlv
biwgQ1NTVmFsdWVBYnNvbHV0ZSk7CkBAIC0xOTAsMjYgKzE5MCwyNiBAQCB2b2lkIFZhbGlkYXRp
b25NZXNzYWdlOjpidWlsZEJ1YmJsZVRyZWUoVGltZXI8VmFsaWRhdGlvbk1lc3NhZ2U+KikKICAg
ICBhZGp1c3RCdWJibGVQb3NpdGlvbihtX2VsZW1lbnQtPmJvdW5kaW5nQm94KCksIG1fYnViYmxl
LmdldCgpKTsKIAogICAgIFJlZlB0cjxIVE1MRGl2RWxlbWVudD4gY2xpcHBlciA9IEhUTUxEaXZF
bGVtZW50OjpjcmVhdGUoZG9jKTsKLSAgICBjbGlwcGVyLT5zZXRTaGFkb3dQc2V1ZG9JZCgiLXdl
YmtpdC12YWxpZGF0aW9uLWJ1YmJsZS1hcnJvdy1jbGlwcGVyIik7CisgICAgY2xpcHBlci0+c2V0
UHNldWRvKCItd2Via2l0LXZhbGlkYXRpb24tYnViYmxlLWFycm93LWNsaXBwZXIiKTsKICAgICBS
ZWZQdHI8SFRNTERpdkVsZW1lbnQ+IGJ1YmJsZUFycm93ID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0
ZShkb2MpOwotICAgIGJ1YmJsZUFycm93LT5zZXRTaGFkb3dQc2V1ZG9JZCgiLXdlYmtpdC12YWxp
ZGF0aW9uLWJ1YmJsZS1hcnJvdyIpOworICAgIGJ1YmJsZUFycm93LT5zZXRQc2V1ZG8oIi13ZWJr
aXQtdmFsaWRhdGlvbi1idWJibGUtYXJyb3ciKTsKICAgICBjbGlwcGVyLT5hcHBlbmRDaGlsZChi
dWJibGVBcnJvdy5yZWxlYXNlKCksIGVjKTsKICAgICBBU1NFUlQoIWVjKTsKICAgICBtX2J1YmJs
ZS0+YXBwZW5kQ2hpbGQoY2xpcHBlci5yZWxlYXNlKCksIGVjKTsKICAgICBBU1NFUlQoIWVjKTsK
IAogICAgIFJlZlB0cjxIVE1MRWxlbWVudD4gbWVzc2FnZSA9IEhUTUxEaXZFbGVtZW50OjpjcmVh
dGUoZG9jKTsKLSAgICBtZXNzYWdlLT5zZXRTaGFkb3dQc2V1ZG9JZCgiLXdlYmtpdC12YWxpZGF0
aW9uLWJ1YmJsZS1tZXNzYWdlIik7CisgICAgbWVzc2FnZS0+c2V0UHNldWRvKCItd2Via2l0LXZh
bGlkYXRpb24tYnViYmxlLW1lc3NhZ2UiKTsKICAgICBSZWZQdHI8SFRNTEVsZW1lbnQ+IGljb24g
PSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvYyk7Ci0gICAgaWNvbi0+c2V0U2hhZG93UHNldWRv
SWQoIi13ZWJraXQtdmFsaWRhdGlvbi1idWJibGUtaWNvbiIpOworICAgIGljb24tPnNldFBzZXVk
bygiLXdlYmtpdC12YWxpZGF0aW9uLWJ1YmJsZS1pY29uIik7CiAgICAgbWVzc2FnZS0+YXBwZW5k
Q2hpbGQoaWNvbi5yZWxlYXNlKCksIEFTU0VSVF9OT19FWENFUFRJT04pOwogICAgIFJlZlB0cjxI
VE1MRWxlbWVudD4gdGV4dEJsb2NrID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2MpOwotICAg
IHRleHRCbG9jay0+c2V0U2hhZG93UHNldWRvSWQoIi13ZWJraXQtdmFsaWRhdGlvbi1idWJibGUt
dGV4dC1ibG9jayIpOworICAgIHRleHRCbG9jay0+c2V0UHNldWRvKCItd2Via2l0LXZhbGlkYXRp
b24tYnViYmxlLXRleHQtYmxvY2siKTsKICAgICBtX21lc3NhZ2VIZWFkaW5nID0gSFRNTERpdkVs
ZW1lbnQ6OmNyZWF0ZShkb2MpOwotICAgIG1fbWVzc2FnZUhlYWRpbmctPnNldFNoYWRvd1BzZXVk
b0lkKCItd2Via2l0LXZhbGlkYXRpb24tYnViYmxlLWhlYWRpbmciKTsKKyAgICBtX21lc3NhZ2VI
ZWFkaW5nLT5zZXRQc2V1ZG8oIi13ZWJraXQtdmFsaWRhdGlvbi1idWJibGUtaGVhZGluZyIpOwog
ICAgIHRleHRCbG9jay0+YXBwZW5kQ2hpbGQobV9tZXNzYWdlSGVhZGluZywgQVNTRVJUX05PX0VY
Q0VQVElPTik7CiAgICAgbV9tZXNzYWdlQm9keSA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9j
KTsKLSAgICBtX21lc3NhZ2VCb2R5LT5zZXRTaGFkb3dQc2V1ZG9JZCgiLXdlYmtpdC12YWxpZGF0
aW9uLWJ1YmJsZS1ib2R5Iik7CisgICAgbV9tZXNzYWdlQm9keS0+c2V0UHNldWRvKCItd2Via2l0
LXZhbGlkYXRpb24tYnViYmxlLWJvZHkiKTsKICAgICB0ZXh0QmxvY2stPmFwcGVuZENoaWxkKG1f
bWVzc2FnZUJvZHksIEFTU0VSVF9OT19FWENFUFRJT04pOwogICAgIG1lc3NhZ2UtPmFwcGVuZENo
aWxkKHRleHRCbG9jay5yZWxlYXNlKCksIEFTU0VSVF9OT19FWENFUFRJT04pOwogICAgIG1fYnVi
YmxlLT5hcHBlbmRDaGlsZChtZXNzYWdlLnJlbGVhc2UoKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQu
Y3BwCmluZGV4IDlhZTNlNzM5ZmFkN2YxZjUzNDBjZjZjOWEwZTFjZWVlMWVkMzczOTYuLmVjM2Ex
OTNhMDJjYjI2ZTFkNGI5YTQzMTljOWVlNmY2Nzc4OGJlYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuY3BwCkBAIC0yMzUsNyArMjM1
LDcgQEAgdm9pZCBEYXRlVGltZUVkaXRCdWlsZGVyOjp2aXNpdExpdGVyYWwoY29uc3QgU3RyaW5n
JiB0ZXh0KQogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCB0ZXh0UHNldWRv
SWQsICgiLXdlYmtpdC1kYXRldGltZS1lZGl0LXRleHQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKSk7CiAgICAgQVNTRVJUKHRleHQubGVuZ3RoKCkpOwogICAgIFJlZlB0cjxI
VE1MRGl2RWxlbWVudD4gZWxlbWVudCA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUobV9lZGl0RWxl
bWVudC5kb2N1bWVudCgpKTsKLSAgICBlbGVtZW50LT5zZXRTaGFkb3dQc2V1ZG9JZCh0ZXh0UHNl
dWRvSWQpOworICAgIGVsZW1lbnQtPnNldFBzZXVkbyh0ZXh0UHNldWRvSWQpOwogICAgIGVsZW1l
bnQtPmFwcGVuZENoaWxkKFRleHQ6OmNyZWF0ZShtX2VkaXRFbGVtZW50LmRvY3VtZW50KCksIHRl
eHQpKTsKICAgICBtX2VkaXRFbGVtZW50LmFwcGVuZENoaWxkKGVsZW1lbnQpOwogfQpAQCAtMjUx
LDcgKzI1MSw3IEBAIERhdGVUaW1lRWRpdEVsZW1lbnQ6OkRhdGVUaW1lRWRpdEVsZW1lbnQoRG9j
dW1lbnQqIGRvY3VtZW50LCBFZGl0Q29udHJvbE93bmVyJiBlCiAgICAgLCBtX2VkaXRDb250cm9s
T3duZXIoJmVkaXRDb250cm9sT3duZXIpCiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9t
aWNTdHJpbmcsIGRhdGVUaW1lRWRpdFBzZXVkb0lkLCAoIi13ZWJraXQtZGF0ZXRpbWUtZWRpdCIp
KTsKLSAgICBzZXRTaGFkb3dQc2V1ZG9JZChkYXRlVGltZUVkaXRQc2V1ZG9JZCk7CisgICAgc2V0
UHNldWRvKGRhdGVUaW1lRWRpdFBzZXVkb0lkKTsKIH0KIAogRGF0ZVRpbWVFZGl0RWxlbWVudDo6
fkRhdGVUaW1lRWRpdEVsZW1lbnQoKQpAQCAtMzk2LDcgKzM5Niw3IEBAIHZvaWQgRGF0ZVRpbWVF
ZGl0RWxlbWVudDo6bGF5b3V0KGNvbnN0IExheW91dFBhcmFtZXRlcnMmIGxheW91dFBhcmFtZXRl
cnMsIGNvbnN0CiB7CiAgICAgc2l6ZV90IGZvY3VzZWRGaWVsZEluZGV4ID0gdGhpcy0+Zm9jdXNl
ZEZpZWxkSW5kZXgoKTsKICAgICBEYXRlVGltZUZpZWxkRWxlbWVudCogY29uc3QgZm9jdXNlZEZp
ZWxkID0gZmllbGRBdChmb2N1c2VkRmllbGRJbmRleCk7Ci0gICAgY29uc3QgQXRvbWljU3RyaW5n
IGZvY3VzZWRGaWVsZElkID0gZm9jdXNlZEZpZWxkID8gZm9jdXNlZEZpZWxkLT5zaGFkb3dQc2V1
ZG9JZCgpIDogbnVsbEF0b207CisgICAgY29uc3QgQXRvbWljU3RyaW5nIGZvY3VzZWRGaWVsZElk
ID0gZm9jdXNlZEZpZWxkID8gZm9jdXNlZEZpZWxkLT5wc2V1ZG8oKSA6IG51bGxBdG9tOwogCiAg
ICAgRGF0ZVRpbWVFZGl0QnVpbGRlciBidWlsZGVyKCp0aGlzLCBsYXlvdXRQYXJhbWV0ZXJzLCBk
YXRlVmFsdWUpOwogICAgIE5vZGUqIGxhc3RDaGlsZFRvQmVSZW1vdmVkID0gbGFzdENoaWxkKCk7
CkBAIC00MDcsNyArNDA3LDcgQEAgdm9pZCBEYXRlVGltZUVkaXRFbGVtZW50OjpsYXlvdXQoY29u
c3QgTGF5b3V0UGFyYW1ldGVycyYgbGF5b3V0UGFyYW1ldGVycywgY29uc3QKIAogICAgIGlmIChm
b2N1c2VkRmllbGRJbmRleCAhPSBpbnZhbGlkRmllbGRJbmRleCkgewogICAgICAgICBmb3IgKHNp
emVfdCBmaWVsZEluZGV4ID0gMDsgZmllbGRJbmRleCA8IG1fZmllbGRzLnNpemUoKTsgKytmaWVs
ZEluZGV4KSB7Ci0gICAgICAgICAgICBpZiAobV9maWVsZHNbZmllbGRJbmRleF0tPnNoYWRvd1Bz
ZXVkb0lkKCkgPT0gZm9jdXNlZEZpZWxkSWQpIHsKKyAgICAgICAgICAgIGlmIChtX2ZpZWxkc1tm
aWVsZEluZGV4XS0+cHNldWRvKCkgPT0gZm9jdXNlZEZpZWxkSWQpIHsKICAgICAgICAgICAgICAg
ICBmb2N1c2VkRmllbGRJbmRleCA9IGZpZWxkSW5kZXg7CiAgICAgICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9E
YXRlVGltZUZpZWxkRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRl
VGltZUZpZWxkRWxlbWVudC5jcHAKaW5kZXggNjUxMmFjMWNiMzVkNTBiNmFkOTQ3OGUzODRmMzMz
Y2JjZjZhM2Y5Yy4uODVhNmU3OGNhMTUyMjllZjBhMzU2NzM3Nzk3MDI1NmNjNDE2Yzc5NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50
LmNwcApAQCAtMTM1LDEyICsxMzUsMTIgQEAgdm9pZCBEYXRlVGltZUZpZWxkRWxlbWVudDo6Zm9j
dXNPbk5leHRGaWVsZCgpCiAgICAgbV9maWVsZE93bmVyLT5mb2N1c09uTmV4dEZpZWxkKCp0aGlz
KTsKIH0KIAotdm9pZCBEYXRlVGltZUZpZWxkRWxlbWVudDo6aW5pdGlhbGl6ZShjb25zdCBBdG9t
aWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkLCBjb25zdCBTdHJpbmcmIGF4SGVscFRleHQpCit2b2lk
IERhdGVUaW1lRmllbGRFbGVtZW50Ojppbml0aWFsaXplKGNvbnN0IEF0b21pY1N0cmluZyYgcHNl
dWRvLCBjb25zdCBTdHJpbmcmIGF4SGVscFRleHQpCiB7CiAgICAgc2V0QXR0cmlidXRlKGFyaWFf
aGVscEF0dHIsIGF4SGVscFRleHQpOwogICAgIHNldEF0dHJpYnV0ZShhcmlhX3ZhbHVlbWluQXR0
ciwgU3RyaW5nOjpudW1iZXIobWluaW11bSgpKSk7CiAgICAgc2V0QXR0cmlidXRlKGFyaWFfdmFs
dWVtYXhBdHRyLCBTdHJpbmc6Om51bWJlcihtYXhpbXVtKCkpKTsKLSAgICBzZXRTaGFkb3dQc2V1
ZG9JZChzaGFkb3dQc2V1ZG9JZCk7CisgICAgc2V0UHNldWRvKHBzZXVkbyk7CiAgICAgYXBwZW5k
Q2hpbGQoVGV4dDo6Y3JlYXRlKGRvY3VtZW50KCksIHZpc2libGVWYWx1ZSgpKSk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudC5oCmlu
ZGV4IGM5MjZjYmUxMWU0NTFkMTFjNzQzYmExZDk5NzM0YzE0MDc2MDdkMmQuLjY0OTczNDU3M2Fh
MWUzNDlkZGFiOTBkNWUwNjUxMDk0MDYxMjM4MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnQuaApAQCAtODEsNyArODEsNyBAQCBwcm90
ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIGRpZEZvY3VzKCk7CiAgICAgdm9pZCBmb2N1c09uTmV4
dEZpZWxkKCk7CiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZUtleWJvYXJkRXZlbnQoS2V5Ym9hcmRF
dmVudCopID0gMDsKLSAgICB2b2lkIGluaXRpYWxpemUoY29uc3QgQXRvbWljU3RyaW5nJiBzaGFk
b3dQc2V1ZG9JZCwgY29uc3QgU3RyaW5nJiBheEhlbHBUZXh0KTsKKyAgICB2b2lkIGluaXRpYWxp
emUoY29uc3QgQXRvbWljU3RyaW5nJiBwc2V1ZG8sIGNvbnN0IFN0cmluZyYgYXhIZWxwVGV4dCk7
CiAgICAgQXRvbWljU3RyaW5nIGxvY2FsZUlkZW50aWZpZXIoKSBjb25zdDsKICAgICB2aXJ0dWFs
IGludCBtYXhpbXVtKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgaW50IG1pbmltdW0oKSBjb25z
dCA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EZXRhaWxzTWFy
a2VyQ29udHJvbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EZXRhaWxzTWFya2Vy
Q29udHJvbC5jcHAKaW5kZXggYjEwOWVmOGViNmRlNzEyMGY0MjY1OTViOGFiNTVkOGY5MjM5NWUy
NS4uOWVkZmExZGM0Nzk0NzQ0YzljOTI1ODE1NGUyMTI5MzgyYjA0MzYxMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RldGFpbHNNYXJrZXJDb250cm9sLmNwcApAQCAt
NTUsNyArNTUsNyBAQCBib29sIERldGFpbHNNYXJrZXJDb250cm9sOjpyZW5kZXJlcklzTmVlZGVk
KGNvbnN0IE5vZGVSZW5kZXJpbmdDb250ZXh0JiBjb250ZXh0KQogICAgIHJldHVybiBzdW1tYXJ5
RWxlbWVudCgpLT5pc01haW5TdW1tYXJ5KCkgJiYgSFRNTERpdkVsZW1lbnQ6OnJlbmRlcmVySXNO
ZWVkZWQoY29udGV4dCk7CiB9CiAKLWNvbnN0IEF0b21pY1N0cmluZyYgRGV0YWlsc01hcmtlckNv
bnRyb2w6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKK2NvbnN0IEF0b21pY1N0cmluZyYgRGV0YWls
c01hcmtlckNvbnRyb2w6OnBzZXVkbygpIGNvbnN0CiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NB
TChBdG9taWNTdHJpbmcsIHBzZXVkSWQsICgiLXdlYmtpdC1kZXRhaWxzLW1hcmtlciIpKTsKICAg
ICByZXR1cm4gcHNldWRJZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L0RldGFpbHNNYXJrZXJDb250cm9sLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EZXRh
aWxzTWFya2VyQ29udHJvbC5oCmluZGV4IDFhYTE0Y2FiM2RkMTc5YWMxNGJmMzE2OWE5ZmE0YTcz
NGI4NmE1ZmIuLmM4OGYzNWEzNTkyNjhjMjQ2ZWQ5NjFlYTcyOTJiZmJkNWUwOWMyYTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RldGFpbHNNYXJrZXJDb250cm9sLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wuaApA
QCAtNDYsNyArNDYsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHZpcnR1YWwgUmVuZGVyT2Jq
ZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSosIFJlbmRlclN0eWxlKik7CiAgICAgdmly
dHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgTm9kZVJlbmRlcmluZ0NvbnRleHQmKTsK
LSAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdDsK
KyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgcHNldWRvKCkgY29uc3Q7CiAKICAgICBI
VE1MU3VtbWFyeUVsZW1lbnQqIHN1bW1hcnlFbGVtZW50KCk7CiB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSW1hZ2VJbm5lckVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvSW1hZ2VJbm5lckVsZW1lbnQuY3BwCmluZGV4IGIyM2Q2YjFhNWY0
MGUyMWY5NzNmNzJjM2Y4OGQ1ZjZhY2Q4YmZiMjQuLjgwZGUyOTU5ODc1M2U1MmQyMzE0OWFhZjE2
YjM1YjJjNTk5ZGMzMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0lt
YWdlSW5uZXJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9JbWFn
ZUlubmVyRWxlbWVudC5jcHAKQEAgLTY4LDcgKzY4LDcgQEAgUmVuZGVyT2JqZWN0KiBJbWFnZUlu
bmVyRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5kZXJTdHls
ZSoKICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXJGb3JJbWFnZSh0aGlzLCBhcmVuYSk7CiB9CiAK
LWNvbnN0IEF0b21pY1N0cmluZyYgSW1hZ2VJbm5lckVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkg
Y29uc3QKK2NvbnN0IEF0b21pY1N0cmluZyYgSW1hZ2VJbm5lckVsZW1lbnQ6OnBzZXVkbygpIGNv
bnN0CiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHBzZXVkb0lkLCAo
Ii13ZWJraXQtaW1hZ2UtaW5uZXItZWxlbWVudCIpKTsKICAgICByZXR1cm4gcHNldWRvSWQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9JbWFnZUlubmVyRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSW1hZ2VJbm5lckVsZW1lbnQuaAppbmRleCA1
NTNkNDQzODUxN2FiN2RiZTdiOTcyMDAzNTU5NWRmMzZkOWUzNDMxLi5lMDAxNmZmNmQ4NDBiNDQ5
ZWRmYmFjZWViZDU4YTRiMDFiZmE1Y2IxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9JbWFnZUlubmVyRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L0ltYWdlSW5uZXJFbGVtZW50LmgKQEAgLTU2LDcgKzU2LDcgQEAgcHJpdmF0ZToKIAogICAg
IHZpcnR1YWwgYm9vbCBjYW5TdGFydFNlbGVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CiAKLSAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25z
dCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgcHNldWRvKCkgY29u
c3QgT1ZFUlJJREU7CiB9OwogCiBpbmxpbmUgUGFzc1JlZlB0cjxJbWFnZUlubmVyRWxlbWVudD4g
SW1hZ2VJbm5lckVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKaW5kZXgg
OTA2NDY2MDEzZjhiM2E5ZGQ2YjI4YmQ0NjM3YjJmYzI1MjI5MjllYy4uMTQxYzMwM2ViMTJkZmQw
OWMwMzBlMDU2YjA1MzkxYTQ5MzU3ZjRlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcApAQCAtMTM2LDcgKzEzNiw3IEBAIE1l
ZGlhQ29udHJvbEVsZW1lbnRUeXBlIE1lZGlhQ29udHJvbFBhbmVsRWxlbWVudDo6ZGlzcGxheVR5
cGUoKSBjb25zdAogICAgIHJldHVybiBNZWRpYUNvbnRyb2xzUGFuZWw7CiB9CiAKLWNvbnN0IEF0
b21pY1N0cmluZyYgTWVkaWFDb250cm9sUGFuZWxFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNv
bnN0Citjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbFBhbmVsRWxlbWVudDo6cHNldWRv
KCkgY29uc3QKIHsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgi
LXdlYmtpdC1tZWRpYS1jb250cm9scy1wYW5lbCIpKTsKICAgICByZXR1cm4gaWQ7CkBAIC0zMzIs
NyArMzMyLDcgQEAgTWVkaWFDb250cm9sRWxlbWVudFR5cGUgTWVkaWFDb250cm9sVGltZWxpbmVD
b250YWluZXJFbGVtZW50OjpkaXNwbGF5VHlwZSgpIGNvbnMKICAgICByZXR1cm4gTWVkaWFUaW1l
bGluZUNvbnRhaW5lcjsKIH0KIAotY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xUaW1l
bGluZUNvbnRhaW5lckVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKK2NvbnN0IEF0b21p
Y1N0cmluZyYgTWVkaWFDb250cm9sVGltZWxpbmVDb250YWluZXJFbGVtZW50Ojpwc2V1ZG8oKSBj
b25zdAogewogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Vi
a2l0LW1lZGlhLWNvbnRyb2xzLXRpbWVsaW5lLWNvbnRhaW5lciIpKTsKICAgICByZXR1cm4gaWQ7
CkBAIC00MDgsNyArNDA4LDcgQEAgTWVkaWFDb250cm9sRWxlbWVudFR5cGUgTWVkaWFDb250cm9s
Vm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudDo6ZGlzcGxheVR5cGUoKQogICAgIHJldHVybiBN
ZWRpYVZvbHVtZVNsaWRlckNvbnRhaW5lcjsKIH0KIAotY29uc3QgQXRvbWljU3RyaW5nJiBNZWRp
YUNvbnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNv
bnN0Citjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5l
ckVsZW1lbnQ6OnBzZXVkbygpIGNvbnN0CiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9t
aWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRlci1jb250
YWluZXIiKSk7CiAgICAgcmV0dXJuIGlkOwpAQCAtNDY5LDcgKzQ2OSw3IEBAIE1lZGlhQ29udHJv
bEVsZW1lbnRUeXBlIE1lZGlhQ29udHJvbFN0YXR1c0Rpc3BsYXlFbGVtZW50OjpkaXNwbGF5VHlw
ZSgpIGNvbnN0CiAgICAgcmV0dXJuIE1lZGlhU3RhdHVzRGlzcGxheTsKIH0KIAotY29uc3QgQXRv
bWljU3RyaW5nJiBNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5RWxlbWVudDo6c2hhZG93UHNldWRv
SWQoKSBjb25zdAorY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5
RWxlbWVudDo6cHNldWRvKCkgY29uc3QKIHsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21p
Y1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1zdGF0dXMtZGlzcGxheSIpKTsK
ICAgICByZXR1cm4gaWQ7CkBAIC01NTgsNyArNTU4LDcgQEAgdm9pZCBNZWRpYUNvbnRyb2xQYW5l
bE11dGVCdXR0b25FbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKICAg
ICBNZWRpYUNvbnRyb2xNdXRlQnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihldmVu
dCk7CiB9CiAKLWNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sUGFuZWxNdXRlQnV0dG9u
RWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAorY29uc3QgQXRvbWljU3RyaW5nJiBNZWRp
YUNvbnRyb2xQYW5lbE11dGVCdXR0b25FbGVtZW50Ojpwc2V1ZG8oKSBjb25zdAogewogICAgIERF
RklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRy
b2xzLW11dGUtYnV0dG9uIikpOwogICAgIHJldHVybiBpZDsKQEAgLTU3OSw3ICs1NzksNyBAQCBQ
YXNzUmVmUHRyPE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlck11dGVCdXR0b25FbGVtZW50PiBNZWRp
YUNvbnRyb2xWb2x1bWVTbGlkZXJNdQogICAgIHJldHVybiBidXR0b24ucmVsZWFzZSgpOwogfQog
Ci1jb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlck11dGVCdXR0b25F
bGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0Citjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlh
Q29udHJvbFZvbHVtZVNsaWRlck11dGVCdXR0b25FbGVtZW50Ojpwc2V1ZG8oKSBjb25zdAogewog
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlh
LWNvbnRyb2xzLXZvbHVtZS1zbGlkZXItbXV0ZS1idXR0b24iKSk7CiAgICAgcmV0dXJuIGlkOwpA
QCAtNjE4LDcgKzYxOCw3IEBAIHZvaWQgTWVkaWFDb250cm9sUGxheUJ1dHRvbkVsZW1lbnQ6OnVw
ZGF0ZURpc3BsYXlUeXBlKCkKICAgICBzZXREaXNwbGF5VHlwZShtZWRpYUNvbnRyb2xsZXIoKS0+
Y2FuUGxheSgpID8gTWVkaWFQbGF5QnV0dG9uIDogTWVkaWFQYXVzZUJ1dHRvbik7CiB9CiAKLWNv
bnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sUGxheUJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1Bz
ZXVkb0lkKCkgY29uc3QKK2NvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sUGxheUJ1dHRv
bkVsZW1lbnQ6OnBzZXVkbygpIGNvbnN0CiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9t
aWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGxheS1idXR0b24iKSk7CiAg
ICAgcmV0dXJuIGlkOwpAQCAtNjU4LDcgKzY1OCw3IEBAIHZvaWQgTWVkaWFDb250cm9sT3Zlcmxh
eVBsYXlCdXR0b25FbGVtZW50Ojp1cGRhdGVEaXNwbGF5VHlwZSgpCiAgICAgICAgIGhpZGUoKTsK
IH0KIAotY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xPdmVybGF5UGxheUJ1dHRvbkVs
ZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKK2NvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFD
b250cm9sT3ZlcmxheVBsYXlCdXR0b25FbGVtZW50Ojpwc2V1ZG8oKSBjb25zdAogewogICAgIERF
RklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRy
b2xzLW92ZXJsYXktcGxheS1idXR0b24iKSk7CiAgICAgcmV0dXJuIGlkOwpAQCAtNzYwLDcgKzc2
MCw3IEBAIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sU2Vla0ZvcndhcmRCdXR0b25FbGVtZW50PiBN
ZWRpYUNvbnRyb2xTZWVrRm9yd2FyZEJ1dHRvbkVsCiAgICAgcmV0dXJuIGJ1dHRvbi5yZWxlYXNl
KCk7CiB9CiAKLWNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sU2Vla0ZvcndhcmRCdXR0
b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0Citjb25zdCBBdG9taWNTdHJpbmcmIE1l
ZGlhQ29udHJvbFNlZWtGb3J3YXJkQnV0dG9uRWxlbWVudDo6cHNldWRvKCkgY29uc3QKIHsKICAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1j
b250cm9scy1zZWVrLWZvcndhcmQtYnV0dG9uIikpOwogICAgIHJldHVybiBpZDsKQEAgLTc4MSw3
ICs3ODEsNyBAQCBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFNlZWtCYWNrQnV0dG9uRWxlbWVudD4g
TWVkaWFDb250cm9sU2Vla0JhY2tCdXR0b25FbGVtZW50OgogICAgIHJldHVybiBidXR0b24ucmVs
ZWFzZSgpOwogfQogCi1jb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbFNlZWtCYWNrQnV0
dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAorY29uc3QgQXRvbWljU3RyaW5nJiBN
ZWRpYUNvbnRyb2xTZWVrQmFja0J1dHRvbkVsZW1lbnQ6OnBzZXVkbygpIGNvbnN0CiB7CiAgICAg
REVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29u
dHJvbHMtc2Vlay1iYWNrLWJ1dHRvbiIpKTsKICAgICByZXR1cm4gaWQ7CkBAIC04MTIsNyArODEy
LDcgQEAgdm9pZCBNZWRpYUNvbnRyb2xSZXdpbmRCdXR0b25FbGVtZW50OjpkZWZhdWx0RXZlbnRI
YW5kbGVyKEV2ZW50KiBldmVudCkKICAgICBIVE1MSW5wdXRFbGVtZW50OjpkZWZhdWx0RXZlbnRI
YW5kbGVyKGV2ZW50KTsKIH0KIAotY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xSZXdp
bmRCdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0Citjb25zdCBBdG9taWNTdHJp
bmcmIE1lZGlhQ29udHJvbFJld2luZEJ1dHRvbkVsZW1lbnQ6OnBzZXVkbygpIGNvbnN0CiB7CiAg
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEt
Y29udHJvbHMtcmV3aW5kLWJ1dHRvbiIpKTsKICAgICByZXR1cm4gaWQ7CkBAIC04NDMsNyArODQz
LDcgQEAgdm9pZCBNZWRpYUNvbnRyb2xSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uRWxlbWVudDo6ZGVm
YXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQKICAgICBIVE1MSW5wdXRFbGVtZW50OjpkZWZh
dWx0RXZlbnRIYW5kbGVyKGV2ZW50KTsKIH0KIAotY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNv
bnRyb2xSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25z
dAorY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xSZXR1cm5Ub1JlYWx0aW1lQnV0dG9u
RWxlbWVudDo6cHNldWRvKCkgY29uc3QKIHsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21p
Y1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1yZXR1cm4tdG8tcmVhbHRpbWUt
YnV0dG9uIikpOwogICAgIHJldHVybiBpZDsKQEAgLTg4Miw3ICs4ODIsNyBAQCB2b2lkIE1lZGlh
Q29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudDo6dXBkYXRlRGlzcGxheVR5
cGUoKQogICAgIHNldERpc3BsYXlUeXBlKG1lZGlhQ29udHJvbGxlcigpLT5jbG9zZWRDYXB0aW9u
c1Zpc2libGUoKSA/IE1lZGlhSGlkZUNsb3NlZENhcHRpb25zQnV0dG9uIDogTWVkaWFTaG93Q2xv
c2VkQ2FwdGlvbnNCdXR0b24pOwogfQogCi1jb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJv
bFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25z
dAorY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1
dHRvbkVsZW1lbnQ6OnBzZXVkbygpIGNvbnN0CiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChB
dG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtdG9nZ2xlLWNsb3NlZC1j
YXB0aW9ucy1idXR0b24iKSk7CiAgICAgcmV0dXJuIGlkOwpAQCAtOTU3LDcgKzk1Nyw3IEBAIHZv
aWQgTWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50OjpzZXREdXJhdGlvbihmbG9hdCBkdXJhdGlv
bikKIH0KIAogCi1jb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVu
dDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAorY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRy
b2xUaW1lbGluZUVsZW1lbnQ6OnBzZXVkbygpIGNvbnN0CiB7CiAgICAgREVGSU5FX1NUQVRJQ19M
T0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZWxpbmUi
KSk7CiAgICAgcmV0dXJuIGlkOwpAQCAtMTAzMiw3ICsxMDMyLDcgQEAgdm9pZCBNZWRpYUNvbnRy
b2xWb2x1bWVTbGlkZXJFbGVtZW50OjpzZXRDbGVhck11dGVkT25Vc2VySW50ZXJhY3Rpb24oYm9v
bCBjbGVhck0KICAgICBtX2NsZWFyTXV0ZWRPblVzZXJJbnRlcmFjdGlvbiA9IGNsZWFyTXV0ZTsK
IH0KIAotY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50
OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0Citjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJv
bFZvbHVtZVNsaWRlckVsZW1lbnQ6OnBzZXVkbygpIGNvbnN0CiB7CiAgICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1l
LXNsaWRlciIpKTsKICAgICByZXR1cm4gaWQ7CkBAIC0xMDU1LDcgKzEwNTUsNyBAQCBQYXNzUmVm
UHRyPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVTbGlkZXJFbGVtZW50PiBNZWRpYUNvbnRy
b2xGdWxsc2NyZWVuVm9sdQogICAgIHJldHVybiBzbGlkZXIucmVsZWFzZSgpOwogfQogCi1jb25z
dCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVTbGlkZXJFbGVtZW50
OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0Citjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJv
bEZ1bGxzY3JlZW5Wb2x1bWVTbGlkZXJFbGVtZW50Ojpwc2V1ZG8oKSBjb25zdAogewogICAgIERF
RklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRy
b2xzLWZ1bGxzY3JlZW4tdm9sdW1lLXNsaWRlciIpKTsKICAgICByZXR1cm4gaWQ7CkBAIC0xMTAx
LDcgKzExMDEsNyBAQCB2b2lkIE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50Ojpk
ZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKICAgICBIVE1MSW5wdXRFbGVtZW50Ojpk
ZWZhdWx0RXZlbnRIYW5kbGVyKGV2ZW50KTsKIH0KIAotY29uc3QgQXRvbWljU3RyaW5nJiBNZWRp
YUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAor
Y29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudDo6
cHNldWRvKCkgY29uc3QKIHsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywg
aWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1mdWxsc2NyZWVuLWJ1dHRvbiIpKTsKICAgICBy
ZXR1cm4gaWQ7CkBAIC0xMTM3LDcgKzExMzcsNyBAQCB2b2lkIE1lZGlhQ29udHJvbEZ1bGxzY3Jl
ZW5Wb2x1bWVNaW5CdXR0b25FbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldgog
ICAgIEhUTUxJbnB1dEVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoZXZlbnQpOwogfQogCi1j
b25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNaW5CdXR0b25F
bGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0Citjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlh
Q29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNaW5CdXR0b25FbGVtZW50Ojpwc2V1ZG8oKSBjb25zdAog
ewogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1l
ZGlhLWNvbnRyb2xzLWZ1bGxzY3JlZW4tdm9sdW1lLW1pbi1idXR0b24iKSk7CiAgICAgcmV0dXJu
IGlkOwpAQCAtMTE2OCw3ICsxMTY4LDcgQEAgdm9pZCBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9s
dW1lTWF4QnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXYKICAgICBI
VE1MSW5wdXRFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKGV2ZW50KTsKIH0KIAotY29uc3Qg
QXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWF4QnV0dG9uRWxlbWVu
dDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAorY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRy
b2xGdWxsc2NyZWVuVm9sdW1lTWF4QnV0dG9uRWxlbWVudDo6cHNldWRvKCkgY29uc3QKIHsKICAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1j
b250cm9scy1mdWxsc2NyZWVuLXZvbHVtZS1tYXgtYnV0dG9uIikpOwogICAgIHJldHVybiBpZDsK
QEAgLTEyMzcsNyArMTIzNyw3IEBAIE1lZGlhQ29udHJvbEVsZW1lbnRUeXBlIE1lZGlhQ29udHJv
bFRpbWVSZW1haW5pbmdEaXNwbGF5RWxlbWVudDo6ZGlzcGxheVR5cGUoKSBjCiAgICAgcmV0dXJu
IE1lZGlhVGltZVJlbWFpbmluZ0Rpc3BsYXk7CiB9CiAKLWNvbnN0IEF0b21pY1N0cmluZyYgTWVk
aWFDb250cm9sVGltZVJlbWFpbmluZ0Rpc3BsYXlFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNv
bnN0Citjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbFRpbWVSZW1haW5pbmdEaXNwbGF5
RWxlbWVudDo6cHNldWRvKCkgY29uc3QKIHsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21p
Y1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy10aW1lLXJlbWFpbmluZy1kaXNw
bGF5IikpOwogICAgIHJldHVybiBpZDsKQEAgLTEyNjAsNyArMTI2MCw3IEBAIE1lZGlhQ29udHJv
bEVsZW1lbnRUeXBlIE1lZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlzcGxheUVsZW1lbnQ6OmRpc3Bs
YXlUeXBlKCkgY29uCiAgICAgcmV0dXJuIE1lZGlhQ3VycmVudFRpbWVEaXNwbGF5OwogfQogCi1j
b25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlzcGxheUVsZW1lbnQ6
OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKK2NvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9s
Q3VycmVudFRpbWVEaXNwbGF5RWxlbWVudDo6cHNldWRvKCkgY29uc3QKIHsKICAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1j
dXJyZW50LXRpbWUtZGlzcGxheSIpKTsKICAgICByZXR1cm4gaWQ7CkBAIC0xMzEzLDcgKzEzMTMs
NyBAQCBSZW5kZXJPYmplY3QqIE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6
OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKgogICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5k
ZXJUZXh0VHJhY2tDb250YWluZXJFbGVtZW50KHRoaXMpOwogfQogCi1jb25zdCBBdG9taWNTdHJp
bmcmIE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lk
KCkgY29uc3QKK2NvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFp
bmVyRWxlbWVudDo6cHNldWRvKCkgY29uc3QKIHsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0
b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLWNvbnRhaW5lciIpKTsK
ICAgICByZXR1cm4gaWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9N
ZWRpYUNvbnRyb2xFbGVtZW50cy5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFD
b250cm9sRWxlbWVudHMuaAppbmRleCA2NmNiMmRhNmJiNWI5NDQxYjhlMWJkYTQ4MWMzNTdmNDNl
YzNjMzFjLi42MDgzOWJlNDFhOGJlYjlhY2M4NjNlNzUyYTllM2JiY2IzOWI5OWRjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmgKQEAg
LTEyMiw3ICsxMjIsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIE1lZGlhQ29udHJvbFBhbmVs
RWxlbWVudChEb2N1bWVudCopOwogICAgIHZpcnR1YWwgTWVkaWFDb250cm9sRWxlbWVudFR5cGUg
ZGlzcGxheVR5cGUoKSBjb25zdDsKLSAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hh
ZG93UHNldWRvSWQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgcHNl
dWRvKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQq
KTsKIAogICAgIHZvaWQgc3RhcnREcmFnKGNvbnN0IExheW91dFBvaW50JiBldmVudExvY2F0aW9u
KTsKQEAgLTE1Myw3ICsxNTMsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgTWVkaWFDb250
cm9sVGltZWxpbmVDb250YWluZXJFbGVtZW50KERvY3VtZW50Kik7Ci0gICAgdmlydHVhbCBjb25z
dCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3Q7CisgICAgdmlydHVhbCBjb25z
dCBBdG9taWNTdHJpbmcmIHBzZXVkbygpIGNvbnN0OwogCiAgICAgdmlydHVhbCBNZWRpYUNvbnRy
b2xFbGVtZW50VHlwZSBkaXNwbGF5VHlwZSgpIGNvbnN0OwogfTsKQEAgLTE3MSw3ICsxNzEsNyBA
QCBwcml2YXRlOgogICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5k
ZXJBcmVuYSosIFJlbmRlclN0eWxlKik7CiAgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhh
bmRsZXIoRXZlbnQqKTsKICAgICB2aXJ0dWFsIE1lZGlhQ29udHJvbEVsZW1lbnRUeXBlIGRpc3Bs
YXlUeXBlKCkgY29uc3Q7Ci0gICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1Bz
ZXVkb0lkKCkgY29uc3Q7CisgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHBzZXVkbygp
IGNvbnN0OwogfTsKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTg2LDcg
KzE4Niw3IEBAIHByaXZhdGU6CiAgICAgTWVkaWFDb250cm9sU3RhdHVzRGlzcGxheUVsZW1lbnQo
RG9jdW1lbnQqKTsKIAogICAgIHZpcnR1YWwgTWVkaWFDb250cm9sRWxlbWVudFR5cGUgZGlzcGxh
eVR5cGUoKSBjb25zdDsKLSAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNl
dWRvSWQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgcHNldWRvKCkg
Y29uc3Q7CiAKICAgICBlbnVtIFN0YXRlQmVpbmdEaXNwbGF5ZWQgeyBOb3RoaW5nLCBMb2FkaW5n
LCBMaXZlQnJvYWRjYXN0IH07CiAgICAgU3RhdGVCZWluZ0Rpc3BsYXllZCBtX3N0YXRlQmVpbmdE
aXNwbGF5ZWQ7CkBAIC0yNDYsNyArMjQ2LDcgQEAgcHJpdmF0ZToKICAgICBNZWRpYUNvbnRyb2xQ
YW5lbE11dGVCdXR0b25FbGVtZW50KERvY3VtZW50KiwgTWVkaWFDb250cm9scyopOwogCiAgICAg
dmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKTsKLSAgICB2aXJ0dWFsIGNv
bnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGNv
bnN0IEF0b21pY1N0cmluZyYgcHNldWRvKCkgY29uc3Q7CiAKICAgICBNZWRpYUNvbnRyb2xzKiBt
X2NvbnRyb2xzOwogfTsKQEAgLTI2MCw3ICsyNjAsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAg
IE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlck11dGVCdXR0b25FbGVtZW50KERvY3VtZW50Kik7CiAK
LSAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdDsK
KyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgcHNldWRvKCkgY29uc3Q7CiB9OwogCiAK
QEAgLTI3Nyw3ICsyNzcsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIE1lZGlhQ29udHJvbFBs
YXlCdXR0b25FbGVtZW50KERvY3VtZW50Kik7CiAKLSAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0
cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0
cmluZyYgcHNldWRvKCkgY29uc3Q7CiB9OwogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCkBAIC0yOTIsNyArMjkyLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBleHBsaWNpdCBN
ZWRpYUNvbnRyb2xPdmVybGF5UGxheUJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQqKTsKIAotICAgIHZp
cnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0OworICAgIHZp
cnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBwc2V1ZG8oKSBjb25zdDsKIH07CiAKIC8vIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTMzMCw3ICszMzAsNyBAQCBwcml2YXRlOgogICAg
IE1lZGlhQ29udHJvbFNlZWtGb3J3YXJkQnV0dG9uRWxlbWVudChEb2N1bWVudCopOwogCiAgICAg
dmlydHVhbCBib29sIGlzRm9yd2FyZEJ1dHRvbigpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KLSAg
ICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdDsKKyAg
ICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgcHNldWRvKCkgY29uc3Q7CiB9OwogCiAvLyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0zNDMsNyArMzQzLDcgQEAgcHJpdmF0ZToK
ICAgICBNZWRpYUNvbnRyb2xTZWVrQmFja0J1dHRvbkVsZW1lbnQoRG9jdW1lbnQqKTsKIAogICAg
IHZpcnR1YWwgYm9vbCBpc0ZvcndhcmRCdXR0b24oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQot
ICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0Owor
ICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBwc2V1ZG8oKSBjb25zdDsKIH07CiAKIC8v
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTM1OCw3ICszNTgsNyBAQCBwdWJsaWM6
CiBwcml2YXRlOgogICAgIE1lZGlhQ29udHJvbFJld2luZEJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQq
KTsKIAotICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNv
bnN0OworICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBwc2V1ZG8oKSBjb25zdDsKIH07
CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTM3Myw3ICszNzMsNyBAQCBw
dWJsaWM6CiBwcml2YXRlOgogICAgIE1lZGlhQ29udHJvbFJldHVyblRvUmVhbHRpbWVCdXR0b25F
bGVtZW50KERvY3VtZW50Kik7CiAKLSAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hh
ZG93UHNldWRvSWQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgcHNl
dWRvKCkgY29uc3Q7CiB9OyAgICAKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpA
QCAtMzg5LDcgKzM4OSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgTWVkaWFDb250cm9sVG9n
Z2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50KERvY3VtZW50Kik7CiAKLSAgICB2aXJ0dWFs
IGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdDsKKyAgICB2aXJ0dWFs
IGNvbnN0IEF0b21pY1N0cmluZyYgcHNldWRvKCkgY29uc3Q7CiB9OyAgICAKIAogLy8gLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNDA2LDcgKzQwNiw3IEBAIHB1YmxpYzoKIHByaXZh
dGU6CiAgICAgTWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50KERvY3VtZW50KiwgTWVkaWFDb250
cm9scyopOwogCi0gICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lk
KCkgY29uc3Q7CisgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHBzZXVkbygpIGNvbnN0
OwogCiAgICAgTWVkaWFDb250cm9scyogbV9jb250cm9sczsKIH07CkBAIC00MjcsNyArNDI3LDcg
QEAgcHJvdGVjdGVkOgogICAgIE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckVsZW1lbnQoRG9jdW1l
bnQqKTsKIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93
UHNldWRvSWQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgcHNldWRv
KCkgY29uc3Q7CiAgICAgYm9vbCBtX2NsZWFyTXV0ZWRPblVzZXJJbnRlcmFjdGlvbjsKIH07CiAK
QEAgLTQ0NCw3ICs0NDQsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIE1lZGlhQ29udHJvbEZ1
bGxzY3JlZW5CdXR0b25FbGVtZW50KERvY3VtZW50KiwgTWVkaWFDb250cm9scyopOwogCi0gICAg
dmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3Q7CisgICAg
dmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHBzZXVkbygpIGNvbnN0OwogfTsKIAogLy8gLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNDU2LDcgKzQ1Niw3IEBAIHB1YmxpYzoKIHBy
aXZhdGU6CiAgICAgTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZVNsaWRlckVsZW1lbnQoRG9j
dW1lbnQqKTsKICAgICAKLSAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNl
dWRvSWQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgcHNldWRvKCkg
Y29uc3Q7CiB9OwogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC00NzEsNyAr
NDcxLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9s
dW1lTWluQnV0dG9uRWxlbWVudChEb2N1bWVudCopOwogICAgIAotICAgIHZpcnR1YWwgY29uc3Qg
QXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0OworICAgIHZpcnR1YWwgY29uc3Qg
QXRvbWljU3RyaW5nJiBwc2V1ZG8oKSBjb25zdDsKIH07CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KQEAgLTQ4Niw3ICs0ODYsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIE1l
ZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNYXhCdXR0b25FbGVtZW50KERvY3VtZW50Kik7CiAg
ICAgCi0gICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29u
c3Q7CisgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHBzZXVkbygpIGNvbnN0OwogfTsK
IAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNTE1LDcgKzUxNSw3IEBAIHBy
aXZhdGU6CiAgICAgTWVkaWFDb250cm9sVGltZVJlbWFpbmluZ0Rpc3BsYXlFbGVtZW50KERvY3Vt
ZW50Kik7CiAKICAgICB2aXJ0dWFsIE1lZGlhQ29udHJvbEVsZW1lbnRUeXBlIGRpc3BsYXlUeXBl
KCkgY29uc3Q7Ci0gICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lk
KCkgY29uc3Q7CisgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHBzZXVkbygpIGNvbnN0
OwogfTsKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNTI4LDcgKzUyOCw3
IEBAIHByaXZhdGU6CiAgICAgTWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNwbGF5RWxlbWVudChE
b2N1bWVudCopOwogCiAgICAgdmlydHVhbCBNZWRpYUNvbnRyb2xFbGVtZW50VHlwZSBkaXNwbGF5
VHlwZSgpIGNvbnN0OwotICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1
ZG9JZCgpIGNvbnN0OworICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBwc2V1ZG8oKSBj
b25zdDsKIH07CiAgCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC01NDYsNyAr
NTQ2LDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5k
ZXJlcihSZW5kZXJBcmVuYSosIFJlbmRlclN0eWxlKik7CiAgICAgdmlydHVhbCBNZWRpYUNvbnRy
b2xFbGVtZW50VHlwZSBkaXNwbGF5VHlwZSgpIGNvbnN0IHsgcmV0dXJuIE1lZGlhVGV4dFRyYWNr
RGlzcGxheUNvbnRhaW5lcjsgfQotICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFk
b3dQc2V1ZG9JZCgpIGNvbnN0OworICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBwc2V1
ZG8oKSBjb25zdDsKIAogICAgIEludFJlY3QgbV92aWRlb0Rpc3BsYXlTaXplOwogICAgIGZsb2F0
IG1fZm9udFNpemU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRp
YUNvbnRyb2xSb290RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRp
YUNvbnRyb2xSb290RWxlbWVudC5jcHAKaW5kZXggZWY1NDFiYWEzM2IxZThiZGYwZjA5MzIyYzVm
ZTA5NzZiMjcxNzc4OC4uNGVlMGU3OTQ1NGE5NjdlZDllYjhhZGJjOGMyMjcyMTE4MjdmNDA3OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJv
b3RFbGVtZW50LmNwcApAQCAtNjU0LDcgKzY1NCw3IEBAIHZvaWQgTWVkaWFDb250cm9sUm9vdEVs
ZW1lbnQ6OnVwZGF0ZVRleHRUcmFja0Rpc3BsYXkoKQogfQogI2VuZGlmCiAKLWNvbnN0IEF0b21p
Y1N0cmluZyYgTWVkaWFDb250cm9sUm9vdEVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QK
K2NvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sUm9vdEVsZW1lbnQ6OnBzZXVkbygpIGNv
bnN0CiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJr
aXQtbWVkaWEtY29udHJvbHMiKSk7CiAgICAgcmV0dXJuIGlkOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50LmgKaW5kZXggYTBiMDlk
ODc0NWI3YWM2MWE3ZDU5NmQ0MWEyMzg5NjZiNjFmNGI0Yi4uODYzYmExYzVlZGM0Zjk3ZGZhMzZl
NDcyZTg4NjFkYjY5MDcyYzU3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudC5oCkBAIC0xMjQsNyArMTI0LDcgQEAgcHJpdmF0
ZToKICAgICB2b2lkIHN0YXJ0SGlkZUZ1bGxzY3JlZW5Db250cm9sc1RpbWVyKCk7CiAgICAgdm9p
ZCBzdG9wSGlkZUZ1bGxzY3JlZW5Db250cm9sc1RpbWVyKCk7CiAKLSAgICB2aXJ0dWFsIGNvbnN0
IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGNvbnN0
IEF0b21pY1N0cmluZyYgcHNldWRvKCkgY29uc3Q7CiAKICAgICBib29sIGNvbnRhaW5zUmVsYXRl
ZFRhcmdldChFdmVudCopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9NZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0uY3BwCmluZGV4IDZiMzkx
M2JiNmU1MjNhZjlkZjcyNjgzMWViODYwNmEzNDA2ODk0Y2EuLjIzNGE1Yjk1YzQ1MDBhNjRkOTVh
MGMwMjVmNjM4ZTFlODAxZjExN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0uY3BwCkBAIC02
OSw3ICs2OSw3IEBAIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sUGFuZWxFbmNsb3N1cmVFbGVtZW50
PiBNZWRpYUNvbnRyb2xQYW5lbEVuY2xvc3VyZUVsZW1lbnQ6CiAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBNZWRpYUNvbnRyb2xQYW5lbEVuY2xvc3VyZUVsZW1lbnQoZG9jdW1lbnQpKTsKIH0KIAot
Y29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xQYW5lbEVuY2xvc3VyZUVsZW1lbnQ6OnNo
YWRvd1BzZXVkb0lkKCkgY29uc3QKK2NvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sUGFu
ZWxFbmNsb3N1cmVFbGVtZW50Ojpwc2V1ZG8oKSBjb25zdAogewogICAgIERFRklORV9TVEFUSUNf
TE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLWVuY2xvc3Vy
ZSIpKTsKICAgICByZXR1cm4gaWQ7CkBAIC01MTcsNyArNTE3LDcgQEAgdm9pZCBNZWRpYUNvbnRy
b2xSb290RWxlbWVudENocm9taXVtOjp1cGRhdGVUZXh0VHJhY2tEaXNwbGF5KCkKIH0KICNlbmRp
ZgogCi1jb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06
OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKK2NvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9s
Um9vdEVsZW1lbnRDaHJvbWl1bTo6cHNldWRvKCkgY29uc3QKIHsKICAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scyIpKTsKICAg
ICByZXR1cm4gaWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRp
YUNvbnRyb2xSb290RWxlbWVudENocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9NZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtLmgKaW5kZXggOGMyMDYxMjMzMjY3Nzhj
OGU1ODc3Nzg5MDU4NzY1MjIxNDQwZDg3MC4uYWU3OGQzNDQ3NmYwYWZiMjE5ODQyNzA5NDYzOWUz
YTlmZmU4NTI1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFD
b250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0uaApAQCAtNzcsNyArNzcsNyBAQCBw
dWJsaWM6CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgTWVkaWFDb250cm9sUGFuZWxFbmNsb3N1
cmVFbGVtZW50KERvY3VtZW50Kik7Ci0gICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNo
YWRvd1BzZXVkb0lkKCkgY29uc3Q7CisgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHBz
ZXVkbygpIGNvbnN0OwogfTsKIAogY2xhc3MgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1
bSA6IHB1YmxpYyBNZWRpYUNvbnRyb2xzIHsKQEAgLTEzNSw3ICsxMzUsNyBAQCBwcml2YXRlOgog
ICAgIHZvaWQgc3RhcnRIaWRlRnVsbHNjcmVlbkNvbnRyb2xzVGltZXIoKTsKICAgICB2b2lkIHN0
b3BIaWRlRnVsbHNjcmVlbkNvbnRyb2xzVGltZXIoKTsKIAotICAgIHZpcnR1YWwgY29uc3QgQXRv
bWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0OworICAgIHZpcnR1YWwgY29uc3QgQXRv
bWljU3RyaW5nJiBwc2V1ZG8oKSBjb25zdDsKIAogICAgIGJvb2wgY29udGFpbnNSZWxhdGVkVGFy
Z2V0KEV2ZW50Kik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01l
ZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW1BbmRyb2lkLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW1BbmRyb2lkLmNwcApp
bmRleCA0NTYzNGE4NDc2ZGU4ZTRjNzhmMDNjODU5Mzg1MDI1NjJhZGZmZTMyLi41ZTg0NGU0YzUz
NWZhYTQ1YWNmNDBmNWNiMzEwYTkzYzYyNjgwMDk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtQW5kcm9pZC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRD
aHJvbWl1bUFuZHJvaWQuY3BwCkBAIC00Miw3ICs0Miw3IEBAIFBhc3NSZWZQdHI8TWVkaWFDb250
cm9sT3ZlcmxheUVuY2xvc3VyZUVsZW1lbnQ+IE1lZGlhQ29udHJvbE92ZXJsYXlFbmNsb3N1cmVF
bGVtCiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xPdmVybGF5RW5jbG9zdXJl
RWxlbWVudChkb2N1bWVudCkpOwogfQogCi1jb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJv
bE92ZXJsYXlFbmNsb3N1cmVFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0Citjb25zdCBB
dG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbE92ZXJsYXlFbmNsb3N1cmVFbGVtZW50Ojpwc2V1ZG8o
KSBjb25zdAogewogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCIt
d2Via2l0LW1lZGlhLWNvbnRyb2xzLW92ZXJsYXktZW5jbG9zdXJlIikpOwogICAgIHJldHVybiBp
ZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJv
b3RFbGVtZW50Q2hyb21pdW1BbmRyb2lkLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9N
ZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtQW5kcm9pZC5oCmluZGV4IDljNzc0ODNmOThl
MjI4NjBjMzc1YTg1ODQ3NTAwZTYxYTg0NGM3Y2QuLjgyOWMzNzI2OGRiMzc3ODJkNzU4OWYxMWU0
ZmM5ODgzZDFiOTUwZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01l
ZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW1BbmRyb2lkLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bUFuZHJvaWQuaApA
QCAtNDAsNyArNDAsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgTWVkaWFD
b250cm9sT3ZlcmxheUVuY2xvc3VyZUVsZW1lbnQoRG9jdW1lbnQqKTsKLSAgICB2aXJ0dWFsIGNv
bnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGNv
bnN0IEF0b21pY1N0cmluZyYgcHNldWRvKCkgY29uc3Q7CiB9OwogCiBjbGFzcyBNZWRpYUNvbnRy
b2xSb290RWxlbWVudENocm9taXVtQW5kcm9pZCA6IHB1YmxpYyBNZWRpYUNvbnRyb2xSb290RWxl
bWVudENocm9taXVtIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01l
dGVyU2hhZG93RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZXRlclNo
YWRvd0VsZW1lbnQuY3BwCmluZGV4IDQ0MWYwMTM5NzYzZjM0ZDU3NzE0YjM4MDMzN2RiNzU5ODc1
ZTU5YzYuLmMzOWFkMDJiYTMwMzgzZWE4NzU2ZmJmNzA2MjlkNDZjMDdkZjYxZTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01ldGVyU2hhZG93RWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWV0ZXJTaGFkb3dFbGVtZW50LmNwcApAQCAt
NzksMTkgKzc5LDE5IEBAIFJlbmRlck9iamVjdCogTWV0ZXJJbm5lckVsZW1lbnQ6OmNyZWF0ZVJl
bmRlcmVyKFJlbmRlckFyZW5hKiBhcmVuYSwgUmVuZGVyU3R5bGUqCiAgICAgcmV0dXJuIG5ldyAo
YXJlbmEpIFJlbmRlck1ldGVyKHRoaXMpOwogfQogCi1jb25zdCBBdG9taWNTdHJpbmcmIE1ldGVy
SW5uZXJFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0Citjb25zdCBBdG9taWNTdHJpbmcm
IE1ldGVySW5uZXJFbGVtZW50Ojpwc2V1ZG8oKSBjb25zdAogewogICAgIERFRklORV9TVEFUSUNf
TE9DQUwoQXRvbWljU3RyaW5nLCBwc2V1ZElkLCAoIi13ZWJraXQtbWV0ZXItaW5uZXItZWxlbWVu
dCIpKTsKICAgICByZXR1cm4gcHNldWRJZDsKIH0KIAotY29uc3QgQXRvbWljU3RyaW5nJiBNZXRl
ckJhckVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKK2NvbnN0IEF0b21pY1N0cmluZyYg
TWV0ZXJCYXJFbGVtZW50Ojpwc2V1ZG8oKSBjb25zdAogewogICAgIERFRklORV9TVEFUSUNfTE9D
QUwoQXRvbWljU3RyaW5nLCBwc2V1ZElkLCAoIi13ZWJraXQtbWV0ZXItYmFyIikpOwogICAgIHJl
dHVybiBwc2V1ZElkOwogfQogCi1jb25zdCBBdG9taWNTdHJpbmcmIE1ldGVyVmFsdWVFbGVtZW50
OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0Citjb25zdCBBdG9taWNTdHJpbmcmIE1ldGVyVmFsdWVF
bGVtZW50Ojpwc2V1ZG8oKSBjb25zdAogewogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBvcHRpbXVtUHNldWRJZCwgKCItd2Via2l0LW1ldGVyLW9wdGltdW0tdmFsdWUiKSk7
CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHN1Ym9wdGltdW1Qc2V1ZElk
LCAoIi13ZWJraXQtbWV0ZXItc3Vib3B0aW11bS12YWx1ZSIpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L01ldGVyU2hhZG93RWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvTWV0ZXJTaGFkb3dFbGVtZW50LmgKaW5kZXggYjY3ZTBjMTI5YmRmOGFl
NjY3NDViYWFhZTE5N2VhZWZmZmE4YmQzNS4uZTNkZmIwZmZmNGEzNDM4OGZlZjdiZTk1MjNkNWNk
NGY2ZDE3ZmE2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWV0ZXJT
aGFkb3dFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWV0ZXJTaGFk
b3dFbGVtZW50LmgKQEAgLTU3LDcgKzU3LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB2aXJ0
dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBOb2RlUmVuZGVyaW5nQ29udGV4dCYpIE9W
RVJSSURFOwogICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJB
cmVuYSosIFJlbmRlclN0eWxlKikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBjb25zdCBBdG9taWNT
dHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBjb25z
dCBBdG9taWNTdHJpbmcmIHBzZXVkbygpIGNvbnN0IE9WRVJSSURFOwogfTsKIAogaW5saW5lIFBh
c3NSZWZQdHI8TWV0ZXJJbm5lckVsZW1lbnQ+IE1ldGVySW5uZXJFbGVtZW50OjpjcmVhdGUoRG9j
dW1lbnQqIGRvY3VtZW50KQpAQCAtNzMsNyArNzMsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAg
c3RhdGljIFBhc3NSZWZQdHI8TWV0ZXJCYXJFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqKTsKLSAg
ICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdDsKKyAg
ICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgcHNldWRvKCkgY29uc3Q7CiB9OwogCiBpbmxp
bmUgUGFzc1JlZlB0cjxNZXRlckJhckVsZW1lbnQ+IE1ldGVyQmFyRWxlbWVudDo6Y3JlYXRlKERv
Y3VtZW50KiBkb2N1bWVudCkKQEAgLTg4LDcgKzg4LDcgQEAgcHVibGljOgogICAgIHsKICAgICB9
CiAKLSAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25z
dDsKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgcHNldWRvKCkgY29uc3Q7CiAgICAg
c3RhdGljIFBhc3NSZWZQdHI8TWV0ZXJWYWx1ZUVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCopOwog
ICAgIHZvaWQgc2V0V2lkdGhQZXJjZW50YWdlKGRvdWJsZSk7CiB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvUGlja2VySW5kaWNhdG9yRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9QaWNrZXJJbmRpY2F0b3JFbGVtZW50LmNwcAppbmRleCBm
NGQzN2Y0YjlkMzg1MTZiMDU1ODJmNTA0NDQwZDhjMjU3OTVlYTgyLi42ZWNjYTBhMDUyODY3NTll
YWJlN2RkMzRlMjRjNTg4NmIxNDkxZWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9QaWNrZXJJbmRpY2F0b3JFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9QaWNrZXJJbmRpY2F0b3JFbGVtZW50LmNwcApAQCAtNDgsNyArNDgsNyBAQCB1
c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogaW5saW5lIFBpY2tlckluZGljYXRvckVsZW1lbnQ6
OlBpY2tlckluZGljYXRvckVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50KQogICAgIDogSFRNTERp
dkVsZW1lbnQoZGl2VGFnLCBkb2N1bWVudCkKIHsKLSAgICBzZXRTaGFkb3dQc2V1ZG9JZCgiLXdl
YmtpdC1jYWxlbmRhci1waWNrZXItaW5kaWNhdG9yIik7CisgICAgc2V0UHNldWRvKCItd2Via2l0
LWNhbGVuZGFyLXBpY2tlci1pbmRpY2F0b3IiKTsKIH0KIAogUGFzc1JlZlB0cjxQaWNrZXJJbmRp
Y2F0b3JFbGVtZW50PiBQaWNrZXJJbmRpY2F0b3JFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRv
Y3VtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvUHJvZ3Jlc3NT
aGFkb3dFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1Byb2dyZXNzU2hh
ZG93RWxlbWVudC5jcHAKaW5kZXggNDY1ZDViYThmNWZiNTAzMGNmZmYzZWFjYTBhOGI4ZmQ3MjQz
MDI0NC4uYjY4NzIyNmQ5NjMzYTk2M2VlMDIyZmEzYzE5OGE4NWUyMTY2ZWY2MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0VsZW1lbnQuY3Bw
CkBAIC02Niw3ICs2Niw3IEBAIFBhc3NSZWZQdHI8UHJvZ3Jlc3NJbm5lckVsZW1lbnQ+IFByb2dy
ZXNzSW5uZXJFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50CiAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBQcm9ncmVzc0lubmVyRWxlbWVudChkb2N1bWVudCkpOwogfQogCi1jb25zdCBB
dG9taWNTdHJpbmcmIFByb2dyZXNzSW5uZXJFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0
Citjb25zdCBBdG9taWNTdHJpbmcmIFByb2dyZXNzSW5uZXJFbGVtZW50Ojpwc2V1ZG8oKSBjb25z
dAogewogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBwc2V1ZElkLCAoIi13
ZWJraXQtcHJvZ3Jlc3MtaW5uZXItZWxlbWVudCIpKTsKICAgICByZXR1cm4gcHNldWRJZDsKQEAg
LTg2LDE0ICs4NiwxNCBAQCBib29sIFByb2dyZXNzSW5uZXJFbGVtZW50OjpyZW5kZXJlcklzTmVl
ZGVkKGNvbnN0IE5vZGVSZW5kZXJpbmdDb250ZXh0JiBjb250ZXh0KQogICAgIHJldHVybiBwcm9n
cmVzc1JlbmRlcmVyICYmICFwcm9ncmVzc1JlbmRlcmVyLT5zdHlsZSgpLT5oYXNBcHBlYXJhbmNl
KCkgJiYgSFRNTERpdkVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoY29udGV4dCk7ICAgIAogfQog
Ci1jb25zdCBBdG9taWNTdHJpbmcmIFByb2dyZXNzQmFyRWxlbWVudDo6c2hhZG93UHNldWRvSWQo
KSBjb25zdAorY29uc3QgQXRvbWljU3RyaW5nJiBQcm9ncmVzc0JhckVsZW1lbnQ6OnBzZXVkbygp
IGNvbnN0CiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHBzZXVkSWQs
ICgiLXdlYmtpdC1wcm9ncmVzcy1iYXIiKSk7CiAgICAgcmV0dXJuIHBzZXVkSWQ7CiB9CiAKIAot
Y29uc3QgQXRvbWljU3RyaW5nJiBQcm9ncmVzc1ZhbHVlRWxlbWVudDo6c2hhZG93UHNldWRvSWQo
KSBjb25zdAorY29uc3QgQXRvbWljU3RyaW5nJiBQcm9ncmVzc1ZhbHVlRWxlbWVudDo6cHNldWRv
KCkgY29uc3QKIHsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgcHNldWRJ
ZCwgKCItd2Via2l0LXByb2dyZXNzLXZhbHVlIikpOwogICAgIHJldHVybiBwc2V1ZElkOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvUHJvZ3Jlc3NTaGFkb3dFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0VsZW1lbnQuaApp
bmRleCA0ZDAzZTQzYWIyOTM1MWQ0NjVjMWM1NDk3ZGMyYTc0MGE2ZTk0NWFkLi5hOTE3NzRmZDFk
YzEyZjFhNzczNGZjNTMzMTM0NTJhMTcwNDJhYmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0VsZW1lbnQuaApAQCAtNTYsNyArNTYsNyBAQCBw
dWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8UHJvZ3Jlc3NJbm5lckVsZW1lbnQ+IGNyZWF0
ZShEb2N1bWVudCopOwogcHJpdmF0ZToKICAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRl
UmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSopIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0OworICAgIHZpcnR1
YWwgY29uc3QgQXRvbWljU3RyaW5nJiBwc2V1ZG8oKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wg
cmVuZGVyZXJJc05lZWRlZChjb25zdCBOb2RlUmVuZGVyaW5nQ29udGV4dCYpOwogfTsKIApAQCAt
NjgsNyArNjgsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgc3RhdGljIFBhc3NSZWZQdHI8UHJv
Z3Jlc3NCYXJFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqKTsKLSAgICB2aXJ0dWFsIGNvbnN0IEF0
b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGNvbnN0IEF0
b21pY1N0cmluZyYgcHNldWRvKCkgY29uc3Q7CiB9OwogCiBpbmxpbmUgUGFzc1JlZlB0cjxQcm9n
cmVzc0JhckVsZW1lbnQ+IFByb2dyZXNzQmFyRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1
bWVudCkKQEAgLTgzLDcgKzgzLDcgQEAgcHVibGljOgogICAgIHsKICAgICB9CiAKLSAgICB2aXJ0
dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdDsKKyAgICB2aXJ0
dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgcHNldWRvKCkgY29uc3Q7CiAgICAgc3RhdGljIFBhc3NS
ZWZQdHI8UHJvZ3Jlc3NWYWx1ZUVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCopOwogICAgIHZvaWQg
c2V0V2lkdGhQZXJjZW50YWdlKGRvdWJsZSk7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAKaW5kZXggNWU1M2VjZWQxYjZmNjAwNjM3
ZjcxOTkyNDViYzA1Yjg3ZDA2ZTAxMy4uYmJiZDcyNTJkMTA0ZTg4M2NhNzhhNWMyM2Y1NDM4ODBk
ZWNjYzg0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1
bWJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVt
YkVsZW1lbnQuY3BwCkBAIC00MTAsNyArNDEwLDcgQEAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmlu
ZyYgbWVkaWFTbGlkZXJUaHVtYlNoYWRvd1BzZXVkb0lkKCkKICAgICByZXR1cm4gbWVkaWFTbGlk
ZXJUaHVtYjsKIH0KIAotY29uc3QgQXRvbWljU3RyaW5nJiBTbGlkZXJUaHVtYkVsZW1lbnQ6OnNo
YWRvd1BzZXVkb0lkKCkgY29uc3QKK2NvbnN0IEF0b21pY1N0cmluZyYgU2xpZGVyVGh1bWJFbGVt
ZW50Ojpwc2V1ZG8oKSBjb25zdAogewogICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gaG9z
dElucHV0KCk7CiAgICAgaWYgKCFpbnB1dCkKQEAgLTQ1Miw3ICs0NTIsNyBAQCBSZW5kZXJPYmpl
Y3QqIFRyYWNrTGltaXRlckVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiBhcmVu
YSwgUmVuZGVyU3R5bAogICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJTbGlkZXJUaHVtYih0
aGlzKTsKIH0KIAotY29uc3QgQXRvbWljU3RyaW5nJiBUcmFja0xpbWl0ZXJFbGVtZW50OjpzaGFk
b3dQc2V1ZG9JZCgpIGNvbnN0Citjb25zdCBBdG9taWNTdHJpbmcmIFRyYWNrTGltaXRlckVsZW1l
bnQ6OnBzZXVkbygpIGNvbnN0CiB7CiAgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXQgPSBzaGFk
b3dIb3N0KCktPnRvSW5wdXRFbGVtZW50KCk7CiAgICAgaWYgKCFpbnB1dCkKQEAgLTQ5OSw3ICs0
OTksNyBAQCBSZW5kZXJPYmplY3QqIFNsaWRlckNvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZVJlbmRl
cmVyKFJlbmRlckFyZW5hKiBhcmVuYSwgUmVuZGVyUwogICAgIHJldHVybiBuZXcgKGFyZW5hKSBS
ZW5kZXJTbGlkZXJDb250YWluZXIodGhpcyk7CiB9CiAKLWNvbnN0IEF0b21pY1N0cmluZyYgU2xp
ZGVyQ29udGFpbmVyRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAorY29uc3QgQXRvbWlj
U3RyaW5nJiBTbGlkZXJDb250YWluZXJFbGVtZW50Ojpwc2V1ZG8oKSBjb25zdAogewogICAgIERF
RklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBtZWRpYVNsaWRlckNvbnRhaW5l
ciwgKCItd2Via2l0LW1lZGlhLXNsaWRlci1jb250YWluZXIiKSk7CiAgICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHNsaWRlckNvbnRhaW5lciwgKCItd2Via2l0LXNs
aWRlci1jb250YWluZXIiKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9TbGlkZXJUaHVtYkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRl
clRodW1iRWxlbWVudC5oCmluZGV4IGY1NWVjZWYzZGRiMTllYjM3MWZjMDNiYjNjNGYzYzRjNzZh
OGQzOWYuLjQxNzVkMzBkN2U5ZDUxYTFiZmFhYzMyMjkzMGNhYzQxY2M0NjBlYTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5oCkBAIC01Nyw3
ICs1Nyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgd2lsbFJlc3BvbmRUb01vdXNlTW92
ZUV2ZW50cygpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCB3aWxsUmVzcG9uZFRvTW91c2VD
bGlja0V2ZW50cygpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkZXRhY2goKTsKLSAgICB2
aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdDsKKyAgICB2
aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgcHNldWRvKCkgY29uc3Q7CiAgICAgSFRNTElucHV0
RWxlbWVudCogaG9zdElucHV0KCkgY29uc3Q7CiAgICAgdm9pZCBzZXRQb3NpdGlvbkZyb21Qb2lu
dChjb25zdCBMYXlvdXRQb2ludCYpOwogCkBAIC0xMjIsNyArMTIyLDcgQEAgcHVibGljOgogcHJp
dmF0ZToKICAgICBUcmFja0xpbWl0ZXJFbGVtZW50KERvY3VtZW50Kik7CiAgICAgdmlydHVhbCBS
ZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5bGUqKTsK
LSAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdDsK
KyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgcHNldWRvKCkgY29uc3Q7CiB9OwogCiAv
LyBUaGlzIGFsd2F5cyByZXR1cm4gYSB2YWxpZCBwb2ludGVyLgpAQCAtMTM4LDcgKzEzOCw3IEBA
IHB1YmxpYzoKIHByaXZhdGU6CiAgICAgU2xpZGVyQ29udGFpbmVyRWxlbWVudChEb2N1bWVudCop
OwogICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSos
IFJlbmRlclN0eWxlKik7Ci0gICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1Bz
ZXVkb0lkKCkgY29uc3Q7CisgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHBzZXVkbygp
IGNvbnN0OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
U3BpbkJ1dHRvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU3BpbkJ1
dHRvbkVsZW1lbnQuY3BwCmluZGV4IDk5ZGQ3MTk0N2JmMzU4YWMwZmVmZmYyNDFiNGE2ZTY5ODRj
Nzg2ZTguLjE4OTQyNGFlNTU4N2UxYTJhNWJmZDI3YmQ3MTYzOWYwZWE1NDA5ZjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NwaW5CdXR0b25FbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TcGluQnV0dG9uRWxlbWVudC5jcHAKQEAgLTU1
LDcgKzU1LDcgQEAgUGFzc1JlZlB0cjxTcGluQnV0dG9uRWxlbWVudD4gU3BpbkJ1dHRvbkVsZW1l
bnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQsIFNwaW4KICAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IFNwaW5CdXR0b25FbGVtZW50KGRvY3VtZW50LCBzcGluQnV0dG9uT3duZXIpKTsKIH0KIAot
Y29uc3QgQXRvbWljU3RyaW5nJiBTcGluQnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBj
b25zdAorY29uc3QgQXRvbWljU3RyaW5nJiBTcGluQnV0dG9uRWxlbWVudDo6cHNldWRvKCkgY29u
c3QKIHsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaW5uZXJQc2V1ZG9J
ZCwgKCItd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uIikpOwogICAgIHJldHVybiBpbm5lclBzZXVk
b0lkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU3BpbkJ1dHRvbkVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NwaW5CdXR0b25FbGVtZW50LmgK
aW5kZXggMzI1MWYzN2QzOWY3YjM4M2YzNjJlZTMyYzM4NTk4NTM0NTgzMThhNC4uODcwZDVjOWE5
NGZmNDczOTc0NTBjMzg1NmYxNTI5ZWRlMGM5MTVhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvU3BpbkJ1dHRvbkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9TcGluQnV0dG9uRWxlbWVudC5oCkBAIC02OCw3ICs2OCw3IEBAIHB1YmxpYzoK
IHByaXZhdGU6CiAgICAgU3BpbkJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQqLCBTcGluQnV0dG9uT3du
ZXImKTsKIAotICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgp
IGNvbnN0OworICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBwc2V1ZG8oKSBjb25zdDsK
ICAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoKCk7CiAgICAgdmlydHVhbCBib29sIGlzU3BpbkJ1dHRv
bkVsZW1lbnQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCBib29sIGlzRW5h
YmxlZEZvcm1Db250cm9sKCkgY29uc3QgeyByZXR1cm4gc2hhZG93SG9zdCgpLT5pc0VuYWJsZWRG
b3JtQ29udHJvbCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9U
ZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
VGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcAppbmRleCA2YTU2NWIzMDAyNDdkNGY0MDQ4NzUz
NGU3ODQyMDNlZWU3NjkyZDRmLi40ZTJhYWE5MjlmZmJhYTQ2OGFiYjQ2Y2JiMzcxZmNiZWY2MWMx
ZjE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElu
bmVyRWxlbWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250
cm9sSW5uZXJFbGVtZW50cy5jcHAKQEAgLTEyMiw3ICsxMjIsNyBAQCBQYXNzUmVmUHRyPFNlYXJj
aEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1lbnQ+IFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1l
bnQ6OmNyZQogICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2VhcmNoRmllbGRSZXN1bHRzQnV0dG9u
RWxlbWVudChkb2N1bWVudCkpOwogfQogCi1jb25zdCBBdG9taWNTdHJpbmcmIFNlYXJjaEZpZWxk
UmVzdWx0c0J1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKK2NvbnN0IEF0b21p
Y1N0cmluZyYgU2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uRWxlbWVudDo6cHNldWRvKCkgY29uc3QK
IHsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgcmVzdWx0c0lkLCAoIi13
ZWJraXQtc2VhcmNoLXJlc3VsdHMtYnV0dG9uIikpOwogICAgIERFRklORV9TVEFUSUNfTE9DQUwo
QXRvbWljU3RyaW5nLCByZXN1bHRzRGVjb3JhdGlvbklkLCAoIi13ZWJraXQtc2VhcmNoLXJlc3Vs
dHMtZGVjb3JhdGlvbiIpKTsKQEAgLTE3Nyw3ICsxNzcsNyBAQCBQYXNzUmVmUHRyPFNlYXJjaEZp
ZWxkQ2FuY2VsQnV0dG9uRWxlbWVudD4gU2VhcmNoRmllbGRDYW5jZWxCdXR0b25FbGVtZW50Ojpj
cmVhdAogICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2VhcmNoRmllbGRDYW5jZWxCdXR0b25FbGVt
ZW50KGRvY3VtZW50KSk7CiB9CiAKLWNvbnN0IEF0b21pY1N0cmluZyYgU2VhcmNoRmllbGRDYW5j
ZWxCdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0Citjb25zdCBBdG9taWNTdHJp
bmcmIFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVudDo6cHNldWRvKCkgY29uc3QKIHsKICAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgcHNldWRvSWQsICgiLXdlYmtpdC1z
ZWFyY2gtY2FuY2VsLWJ1dHRvbiIpKTsKICAgICByZXR1cm4gcHNldWRvSWQ7CkBAIC00MzYsNyAr
NDM2LDcgQEAgdm9pZCBJbnB1dEZpZWxkU3BlZWNoQnV0dG9uRWxlbWVudDo6c3RvcFNwZWVjaElu
cHV0KCkKICAgICAgICAgc3BlZWNoSW5wdXQoKS0+c3RvcFJlY29yZGluZyhtX2xpc3RlbmVySWQp
OwogfQogCi1jb25zdCBBdG9taWNTdHJpbmcmIElucHV0RmllbGRTcGVlY2hCdXR0b25FbGVtZW50
OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0Citjb25zdCBBdG9taWNTdHJpbmcmIElucHV0RmllbGRT
cGVlY2hCdXR0b25FbGVtZW50Ojpwc2V1ZG8oKSBjb25zdAogewogICAgIERFRklORV9TVEFUSUNf
TE9DQUwoQXRvbWljU3RyaW5nLCBwc2V1ZG9JZCwgKCItd2Via2l0LWlucHV0LXNwZWVjaC1idXR0
b24iKSk7CiAgICAgcmV0dXJuIHBzZXVkb0lkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuaAppbmRleCA4YWNkNzcwOGZkZWJh
YTY2NTdkMWM2ZGE4NzcyOTQ4ZjRkNWFkZGJhLi5jYjg1MjUxMzEwNmVhZjVkOGIzNTM5MGMyNGQx
OGU1ZjgxN2UwYTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0
Q29udHJvbElubmVyRWxlbWVudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9U
ZXh0Q29udHJvbElubmVyRWxlbWVudHMuaApAQCAtNjksNyArNjksNyBAQCBwdWJsaWM6CiAKIHBy
aXZhdGU6CiAgICAgU2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uRWxlbWVudChEb2N1bWVudCopOwot
ICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0Owor
ICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBwc2V1ZG8oKSBjb25zdDsKICAgICB2aXJ0
dWFsIGJvb2wgaXNNb3VzZUZvY3VzYWJsZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiB9Owog
CkBAIC04Miw3ICs4Miw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBTZWFyY2hGaWVsZENh
bmNlbEJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQqKTsKLSAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0
cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0
cmluZyYgcHNldWRvKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGRldGFjaCgpOwogICAgIHZp
cnR1YWwgYm9vbCBpc01vdXNlRm9jdXNhYmxlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIApA
QCAtMTIxLDcgKzEyMSw3IEBAIHByaXZhdGU6CiAgICAgSW5wdXRGaWVsZFNwZWVjaEJ1dHRvbkVs
ZW1lbnQoRG9jdW1lbnQqKTsKICAgICBTcGVlY2hJbnB1dCogc3BlZWNoSW5wdXQoKTsKICAgICB2
b2lkIHNldFN0YXRlKFNwZWVjaElucHV0U3RhdGUgc3RhdGUpOwotICAgIHZpcnR1YWwgY29uc3Qg
QXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0OworICAgIHZpcnR1YWwgY29uc3Qg
QXRvbWljU3RyaW5nJiBwc2V1ZG8oKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaXNNb3VzZUZv
Y3VzYWJsZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCB2b2lkIGF0dGFj
aCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHAKaW5kZXgg
YTA0YjFiOGNiZjg3Yjc5YjdjZjFjZGUzNWJiOTA3ZTRiMDEwMTFmZi4uNDVkMDg0NzYwZTdjZWIy
NmFmM2Q5MjkzNTQ5YWNiMTI5OGYzZWViMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9UZXh0VHJhY2tDdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
VGV4dFRyYWNrQ3VlLmNwcApAQCAtOTUsNyArOTUsNyBAQCBUZXh0VHJhY2tDdWVCb3g6OlRleHRU
cmFja0N1ZUJveChEb2N1bWVudCogZG9jdW1lbnQsIFRleHRUcmFja0N1ZSogY3VlKQogICAgIDog
SFRNTEVsZW1lbnQoZGl2VGFnLCBkb2N1bWVudCkKICAgICAsIG1fY3VlKGN1ZSkKIHsKLSAgICBz
ZXRTaGFkb3dQc2V1ZG9JZChzaGFkb3dQc2V1ZG9JZCgpKTsKKyAgICBzZXRQc2V1ZG8ocHNldWRv
KCkpOwogfQogCiBUZXh0VHJhY2tDdWUqIFRleHRUcmFja0N1ZUJveDo6Z2V0Q3VlKCkgY29uc3QK
QEAgLTE3NCw3ICsxNzQsNyBAQCBjb25zdCBBdG9taWNTdHJpbmcmIFRleHRUcmFja0N1ZUJveDo6
dGV4dFRyYWNrQ3VlQm94U2hhZG93UHNldWRvSWQoKQogICAgIHJldHVybiB0cmFja0Rpc3BsYXlC
b3hTaGFkb3dQc2V1ZG9JZDsKIH0KIAotY29uc3QgQXRvbWljU3RyaW5nJiBUZXh0VHJhY2tDdWVC
b3g6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKK2NvbnN0IEF0b21pY1N0cmluZyYgVGV4dFRyYWNr
Q3VlQm94Ojpwc2V1ZG8oKSBjb25zdAogewogICAgIHJldHVybiB0ZXh0VHJhY2tDdWVCb3hTaGFk
b3dQc2V1ZG9JZCgpOwogfQpAQCAtNjc4LDEwICs2NzgsMTAgQEAgdm9pZCBUZXh0VHJhY2tDdWU6
OnVwZGF0ZURpc3BsYXlUcmVlKGZsb2F0IG1vdmllVGltZSkKIAogICAgIC8vIENsZWFyIHRoZSBj
b250ZW50cyBvZiB0aGUgdHdvIHNldHMuCiAgICAgbV9mdXR1cmVEb2N1bWVudE5vZGVzLT5yZW1v
dmVDaGlsZHJlbigpOwotICAgIG1fZnV0dXJlRG9jdW1lbnROb2Rlcy0+c2V0U2hhZG93UHNldWRv
SWQoZnV0dXJlTm9kZXNTaGFkb3dQc2V1ZG9JZCgpKTsKKyAgICBtX2Z1dHVyZURvY3VtZW50Tm9k
ZXMtPnNldFBzZXVkbyhmdXR1cmVOb2Rlc1NoYWRvd1BzZXVkb0lkKCkpOwogCiAgICAgbV9wYXN0
RG9jdW1lbnROb2Rlcy0+cmVtb3ZlQ2hpbGRyZW4oKTsKLSAgICBtX3Bhc3REb2N1bWVudE5vZGVz
LT5zZXRTaGFkb3dQc2V1ZG9JZChwYXN0Tm9kZXNTaGFkb3dQc2V1ZG9JZCgpKTsKKyAgICBtX3Bh
c3REb2N1bWVudE5vZGVzLT5zZXRQc2V1ZG8ocGFzdE5vZGVzU2hhZG93UHNldWRvSWQoKSk7CiAK
ICAgICAvLyBVcGRhdGUgdGhlIHR3byBzZXRzIGNvbnRhaW5pbmcgcGFzdCBhbmQgZnV0dXJlIFdl
YlZUVCBvYmplY3RzLgogICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiByZWZlcmVuY2VUcmVl
ID0gZ2V0Q3VlQXNIVE1MKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1RleHRUcmFja0N1ZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUu
aAppbmRleCAwMWEwZTY2MDM3YTUwYzE2ZGI4NDQxMWFlMmRkMmYxZTQzMzA2NDU2Li45OWJhYzdh
OGQ3YzRkMWVlZGU1YTQ2ODNkMmFhMTAxOWNhMWI4MzI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svVGV4dFRyYWNrQ3VlLmgKQEAgLTU5LDcgKzU5LDcgQEAgcHVibGljOgogICAgIFRleHRU
cmFja0N1ZSogZ2V0Q3VlKCkgY29uc3Q7CiAgICAgdm9pZCBhcHBseUNTU1Byb3BlcnRpZXMoKTsK
IAotICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0
IE9WRVJSSURFOworICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBwc2V1ZG8oKSBjb25z
dCBPVkVSUklERTsKICAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiB0ZXh0VHJhY2tDdWVC
b3hTaGFkb3dQc2V1ZG9JZCgpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuY3BwCmluZGV4IDJhZjQ1NWQyN2E5N2QwZDFmMTU1NDVjN2UxZWJjZjM4MDQ5OWY4OGYuLjYy
YjQ2YzUxODQwNDgwNGI0MzBjZWQzNTdhZjhlNjczYzVjNGNiYzkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAKQEAgLTUxNyw3ICs1MTcsNyBAQCBTdHJpbmcgSW50ZXJuYWxzOjpz
aGFkb3dQc2V1ZG9JZChFbGVtZW50KiBlbGVtZW50LCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAg
ICAgcmV0dXJuIFN0cmluZygpOwogICAgIH0KIAotICAgIHJldHVybiBlbGVtZW50LT5zaGFkb3dQ
c2V1ZG9JZCgpLnN0cmluZygpOworICAgIHJldHVybiBlbGVtZW50LT5wc2V1ZG8oKS5zdHJpbmco
KTsKIH0KIAogdm9pZCBJbnRlcm5hbHM6OnNldFNoYWRvd1BzZXVkb0lkKEVsZW1lbnQqIGVsZW1l
bnQsIGNvbnN0IFN0cmluZyYgaWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQpAQCAtNTI3LDcgKzUyNyw3
IEBAIHZvaWQgSW50ZXJuYWxzOjpzZXRTaGFkb3dQc2V1ZG9JZChFbGVtZW50KiBlbGVtZW50LCBj
b25zdCBTdHJpbmcmIGlkLCBFeGNlcHRpb25DCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAg
ICByZXR1cm4gZWxlbWVudC0+c2V0U2hhZG93UHNldWRvSWQoaWQsIGVjKTsKKyAgICByZXR1cm4g
ZWxlbWVudC0+c2V0UHNldWRvKGlkKTsKIH0KIAogU3RyaW5nIEludGVybmFsczo6dmlzaWJsZVBs
YWNlaG9sZGVyKEVsZW1lbnQqIGVsZW1lbnQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172475</attachid>
            <date>2012-11-05 20:12:22 -0800</date>
            <delta_ts>2012-11-05 23:34:12 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>bug-101171-20121106131036.patch</filename>
            <type>text/plain</type>
            <size>74016</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzNTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODExYjNjZmI5YWVkMzQx
Y2FiNjVlYzhiMTdkODA2Yjg3ZWMwOGJhOS4uMWI5OWM3OWNiODJkYTJjYjc3M2U4YzdkNTZiYjA0
OTA5ZTBkMmI5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1OCBAQAorMjAxMi0xMS0wNSAgU2hp
bnlhIEthd2FuYWthICA8c2hpbnlha0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW1NoYWRvd10g
UmVtb3ZlIHNoYWRvd1BzZXVkb0lkKCkgYW5kIHVzZSBwc2V1ZG8oKSBpbnN0ZWFkLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxMTcxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm93IHdlIGhhdmUgdHdv
IHNpbWlsYXIgbWV0aG9kcyB0byBleHBvc2Ugc2hhZG93IHBzZXVkbyBpZDogc2hhZG93UHNldWRv
SWQoKSBhbmQgcHNldWRvKCkuIFdlIGFsc28gaGF2ZQorICAgICAgICBzaW1pbGFyIG1ldGhvZHMg
dG8gc2V0IHBzZXVkbyBpZCAoc2V0UHNldWRvKCkgYW5kIHNldFNoYWRvd1BzZXVkb0lkKCkpLgor
CisgICAgICAgIFNoYWRvdyBET00gc3BlYyByZXF1aXJlcyB1cyB0byBoYXZlIHBzZXVkbygpLCB3
ZSB3b3VsZCBsaWtlIHRvIHJlbW92ZSBzaGFkb3dQc2V1ZG9JZCgpIGFuZCBwc2V1ZG8oKS4KKwor
ICAgICAgICBObyBuZXcgdGVzdHMsIHJlZmFjdG9yaW5nLgorCisgICAgICAgICogV2ViQ29yZS5l
eHAuaW46CisgICAgICAgICogV2ViQ29yZS5vcmRlcjoKKyAgICAgICAgKiBjc3MvU2VsZWN0b3JD
aGVja2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ2hlY2tlcjo6Y2hlY2tTZWxl
Y3Rvcik6CisgICAgICAgICogY3NzL1N0eWxlUmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U3R5bGVSZXNvbHZlcjo6Y29sbGVjdE1hdGNoaW5nUnVsZXMpOgorICAgICAgICAoV2ViQ29y
ZTo6U3R5bGVSZXNvbHZlcjo6Y2FuU2hhcmVTdHlsZVdpdGhFbGVtZW50KToKKyAgICAgICAgKiBk
b20vRWxlbWVudC5jcHA6CisgICAgICAgICogZG9tL0VsZW1lbnQuaDoKKyAgICAgICAgKEVsZW1l
bnQpOgorICAgICAgICAqIGh0bWwvQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5
cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJ
bnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUpOgorICAgICAgICAqIGh0bWwvQ29sb3JJbnB1
dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29sb3JJbnB1dFR5cGU6OmNyZWF0ZVNoYWRv
d1N1YnRyZWUpOgorICAgICAgICAqIGh0bWwvRmlsZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChV
cGxvYWRCdXR0b25FbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlVwbG9hZEJ1dHRvbkVsZW1l
bnQ6OnBzZXVkbyk6CisgICAgICAgICogaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpLZXlnZW5TZWxlY3RFbGVtZW50Ojpwc2V1ZG8pOgorICAgICAgICAqIGh0
bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEFy
ZWFFbGVtZW50Ojp1cGRhdGVQbGFjZWhvbGRlclRleHQpOgorICAgICAgICAqIGh0bWwvUmFuZ2VJ
bnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2VJbnB1dFR5cGU6OmNyZWF0ZVNo
YWRvd1N1YnRyZWUpOgorICAgICAgICAqIGh0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlRleHRGaWVsZElucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSk6
CisgICAgICAgIChXZWJDb3JlOjpUZXh0RmllbGRJbnB1dFR5cGU6OnVwZGF0ZVBsYWNlaG9sZGVy
VGV4dCk6CisgICAgICAgICogaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpWYWxpZGF0aW9uTWVzc2FnZTo6YnVpbGRCdWJibGVUcmVlKToKKyAgICAgICAgKiBo
dG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRh
dGVUaW1lRWRpdEJ1aWxkZXI6OnZpc2l0TGl0ZXJhbCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRl
VGltZUVkaXRFbGVtZW50OjpEYXRlVGltZUVkaXRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OmxheW91dCk6CisgICAgICAgICogaHRtbC9zaGFkb3cvRGF0
ZVRpbWVGaWVsZEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVGaWVsZEVs
ZW1lbnQ6OmluaXRpYWxpemUpOgorICAgICAgICAqIGh0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRF
bGVtZW50Lmg6CisgICAgICAgIChEYXRlVGltZUZpZWxkRWxlbWVudCk6CisgICAgICAgICogaHRt
bC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGV0
YWlsc01hcmtlckNvbnRyb2w6OnBzZXVkbyk6CisgICAgICAgICogaHRtbC9zaGFkb3cvRGV0YWls
c01hcmtlckNvbnRyb2wuaDoKKyAgICAgICAgKERldGFpbHNNYXJrZXJDb250cm9sKToKKyAgICAg
ICAgKiBodG1sL3NoYWRvdy9JbWFnZUlubmVyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbWFnZUlubmVyRWxlbWVudDo6cHNldWRvKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9JbWFn
ZUlubmVyRWxlbWVudC5oOgorICAgICAgICAoSW1hZ2VJbm5lckVsZW1lbnQpOgorICAgICAgICAq
IGh0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhQ29udHJvbFBhbmVsRWxlbWVudDo6cHNldWRvKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVudDo6cHNldWRvKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5lckVsZW1lbnQ6OnBzZXVkbyk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5RWxlbWVudDo6cHNl
dWRvKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1l
bnQ6OnBzZXVkbyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJN
dXRlQnV0dG9uRWxlbWVudDo6cHNldWRvKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJv
bFBsYXlCdXR0b25FbGVtZW50Ojpwc2V1ZG8pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250
cm9sT3ZlcmxheVBsYXlCdXR0b25FbGVtZW50Ojpwc2V1ZG8pOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFDb250cm9sU2Vla0ZvcndhcmRCdXR0b25FbGVtZW50Ojpwc2V1ZG8pOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFDb250cm9sU2Vla0JhY2tCdXR0b25FbGVtZW50Ojpwc2V1ZG8pOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUmV3aW5kQnV0dG9uRWxlbWVudDo6cHNldWRvKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFJldHVyblRvUmVhbHRpbWVCdXR0b25FbGVt
ZW50Ojpwc2V1ZG8pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sVG9nZ2xlQ2xvc2Vk
Q2FwdGlvbnNCdXR0b25FbGVtZW50Ojpwc2V1ZG8pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFD
b250cm9sVGltZWxpbmVFbGVtZW50Ojpwc2V1ZG8pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFD
b250cm9sVm9sdW1lU2xpZGVyRWxlbWVudDo6cHNldWRvKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVTbGlkZXJFbGVtZW50Ojpwc2V1ZG8pOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQ6OnBzZXVkbyk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWluQnV0dG9u
RWxlbWVudDo6cHNldWRvKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbEZ1bGxzY3Jl
ZW5Wb2x1bWVNYXhCdXR0b25FbGVtZW50Ojpwc2V1ZG8pOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFDb250cm9sVGltZVJlbWFpbmluZ0Rpc3BsYXlFbGVtZW50Ojpwc2V1ZG8pOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNwbGF5RWxlbWVudDo6cHNldWRvKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6
OnBzZXVkbyk6CisgICAgICAgICogaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuaDoK
KyAgICAgICAgKE1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVudCk6CisgICAgICAg
IChNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5RWxlbWVudCk6CisgICAgICAgIChNZWRpYUNvbnRy
b2xWb2x1bWVTbGlkZXJNdXRlQnV0dG9uRWxlbWVudCk6CisgICAgICAgIChNZWRpYUNvbnRyb2xP
dmVybGF5UGxheUJ1dHRvbkVsZW1lbnQpOgorICAgICAgICAoTWVkaWFDb250cm9sU2Vla0Zvcndh
cmRCdXR0b25FbGVtZW50KToKKyAgICAgICAgKE1lZGlhQ29udHJvbFNlZWtCYWNrQnV0dG9uRWxl
bWVudCk6CisgICAgICAgIChNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQpOgorICAgICAgICAo
TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyRWxlbWVudCk6CisgICAgICAgIChNZWRpYUNvbnRyb2xG
dWxsc2NyZWVuVm9sdW1lU2xpZGVyRWxlbWVudCk6CisgICAgICAgIChNZWRpYUNvbnRyb2xUaW1l
UmVtYWluaW5nRGlzcGxheUVsZW1lbnQpOgorICAgICAgICAoTWVkaWFDb250cm9sQ3VycmVudFRp
bWVEaXNwbGF5RWxlbWVudCk6CisgICAgICAgIChNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWlu
ZXJFbGVtZW50KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xSb290RWxlbWVudDo6cHNldWRv
KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudC5oOgorICAg
ICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUGFuZWxFbmNsb3N1cmVFbGVtZW50Ojpwc2V1
ZG8pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6
cHNldWRvKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudENo
cm9taXVtLmg6CisgICAgICAgIChNZWRpYUNvbnRyb2xQYW5lbEVuY2xvc3VyZUVsZW1lbnQpOgor
ICAgICAgICAoTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bSk6CisgICAgICAgICogaHRt
bC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bUFuZHJvaWQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sT3ZlcmxheUVuY2xvc3VyZUVsZW1lbnQ6OnBzZXVk
byk6CisgICAgICAgICogaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1
bUFuZHJvaWQuaDoKKyAgICAgICAgKE1lZGlhQ29udHJvbE92ZXJsYXlFbmNsb3N1cmVFbGVtZW50
KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZXRlclNoYWRvd0VsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TWV0ZXJJbm5lckVsZW1lbnQ6OnBzZXVkbyk6CisgICAgICAgIChXZWJDb3Jl
OjpNZXRlckJhckVsZW1lbnQ6OnBzZXVkbyk6CisgICAgICAgIChXZWJDb3JlOjpNZXRlclZhbHVl
RWxlbWVudDo6cHNldWRvKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZXRlclNoYWRvd0VsZW1l
bnQuaDoKKyAgICAgICAgKE1ldGVySW5uZXJFbGVtZW50KToKKyAgICAgICAgKE1ldGVyQmFyRWxl
bWVudCk6CisgICAgICAgIChNZXRlclZhbHVlRWxlbWVudCk6CisgICAgICAgICogaHRtbC9zaGFk
b3cvUGlja2VySW5kaWNhdG9yRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQaWNrZXJJ
bmRpY2F0b3JFbGVtZW50OjpQaWNrZXJJbmRpY2F0b3JFbGVtZW50KToKKyAgICAgICAgKiBodG1s
L3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UHJv
Z3Jlc3NJbm5lckVsZW1lbnQ6OnBzZXVkbyk6CisgICAgICAgIChXZWJDb3JlOjpQcm9ncmVzc0Jh
ckVsZW1lbnQ6OnBzZXVkbyk6CisgICAgICAgIChXZWJDb3JlOjpQcm9ncmVzc1ZhbHVlRWxlbWVu
dDo6cHNldWRvKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0VsZW1lbnQu
aDoKKyAgICAgICAgKFByb2dyZXNzSW5uZXJFbGVtZW50KToKKyAgICAgICAgKFByb2dyZXNzQmFy
RWxlbWVudCk6CisgICAgICAgIChQcm9ncmVzc1ZhbHVlRWxlbWVudCk6CisgICAgICAgICogaHRt
bC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNsaWRl
clRodW1iRWxlbWVudDo6cHNldWRvKToKKyAgICAgICAgKFdlYkNvcmU6OlRyYWNrTGltaXRlckVs
ZW1lbnQ6OnBzZXVkbyk6CisgICAgICAgIChXZWJDb3JlOjpTbGlkZXJDb250YWluZXJFbGVtZW50
Ojpwc2V1ZG8pOgorICAgICAgICAqIGh0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5oOgor
ICAgICAgICAoU2xpZGVyVGh1bWJFbGVtZW50KToKKyAgICAgICAgKFRyYWNrTGltaXRlckVsZW1l
bnQpOgorICAgICAgICAoU2xpZGVyQ29udGFpbmVyRWxlbWVudCk6CisgICAgICAgICogaHRtbC9z
aGFkb3cvU3BpbkJ1dHRvbkVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3BpbkJ1dHRv
bkVsZW1lbnQ6OnBzZXVkbyk6CisgICAgICAgICogaHRtbC9zaGFkb3cvU3BpbkJ1dHRvbkVsZW1l
bnQuaDoKKyAgICAgICAgKFNwaW5CdXR0b25FbGVtZW50KToKKyAgICAgICAgKiBodG1sL3NoYWRv
dy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNo
RmllbGRSZXN1bHRzQnV0dG9uRWxlbWVudDo6cHNldWRvKToKKyAgICAgICAgKFdlYkNvcmU6OlNl
YXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVudDo6cHNldWRvKToKKyAgICAgICAgKFdlYkNvcmU6
OklucHV0RmllbGRTcGVlY2hCdXR0b25FbGVtZW50Ojpwc2V1ZG8pOgorICAgICAgICAqIGh0bWwv
c2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5oOgorICAgICAgICAoU2VhcmNoRmllbGRS
ZXN1bHRzQnV0dG9uRWxlbWVudCk6CisgICAgICAgIChTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVs
ZW1lbnQpOgorICAgICAgICAoSW5wdXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1lbnQpOgorICAgICAg
ICAqIGh0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRU
cmFja0N1ZUJveDo6VGV4dFRyYWNrQ3VlQm94KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFj
a0N1ZUJveDo6cHNldWRvKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0N1ZTo6dXBkYXRl
RGlzcGxheVRyZWUpOgorICAgICAgICAqIGh0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmg6CisgICAg
ICAgIChUZXh0VHJhY2tDdWVCb3gpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICAo
V2ViQ29yZTo6SW50ZXJuYWxzOjpzZXRTaGFkb3dQc2V1ZG9JZCk6CisKIDIwMTItMTEtMDUgIFNp
bW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSBEb2N1
bWVudDo6dXBkYXRlU3R5bGVJZk5lZWRlZCgpIG5vbi12aXJ0dWFsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmlu
CmluZGV4IGEyZDgzNjg2OWY0NWEwZTE5NjRiMWUwNjc0NjU3OTYwNGM2ZTliYWQuLjI1NWFhYThh
MzRmYTBiODU4M2E2Y2YwOTlkYWU2NzU5ZDEyYjliZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBA
IC04NTYsOSArODU2LDkgQEAgX19aTjdXZWJDb3JlN0NvbnNvbGUyMXNob3VsZFByaW50RXhjZXB0
aW9uc0V2CiBfX1pON1dlYkNvcmU3Q29uc29sZTI0c2V0U2hvdWxkUHJpbnRFeGNlcHRpb25zRWIK
IF9fWk43V2ViQ29yZTdFbGVtZW50MTJzZXRBdHRyaWJ1dGVFUktOM1dURjEyQXRvbWljU3RyaW5n
RVM0X1JpCiBfX1pON1dlYkNvcmU3RWxlbWVudDEyc2V0QXR0cmlidXRlRVJLTlNfMTNRdWFsaWZp
ZWROYW1lRVJLTjNXVEYxMkF0b21pY1N0cmluZ0UKLV9fWk43V2ViQ29yZTdFbGVtZW50MTdzZXRT
aGFkb3dQc2V1ZG9JZEVSS04zV1RGMTJBdG9taWNTdHJpbmdFUmkKIF9fWk43V2ViQ29yZTdFbGVt
ZW50MjFib3VuZHNJblJvb3RWaWV3U3BhY2VFdgogX19aTjdXZWJDb3JlN0VsZW1lbnQ5aW5uZXJU
ZXh0RXYKK19fWk43V2ViQ29yZTdFbGVtZW50OXNldFBzZXVkb0VSS04zV1RGMTJBdG9taWNTdHJp
bmdFUmkKIF9fWk43V2ViQ29yZTdJbnRSZWN0NXNjYWxlRWYKIF9fWk43V2ViQ29yZTdJbnRSZWN0
NXVuaXRlRVJLUzBfCiBfX1pON1dlYkNvcmU3SW50UmVjdDlpbnRlcnNlY3RFUktTMF8KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUub3JkZXIgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLm9yZGVyCmluZGV4IDUwM2ViZDczMTNmNjUzM2Q4MDEwOGQ4ZDkxMjQyN2M4OTlkMWFiMDUu
LjBmZWE0MzAzMjNkZmRiOTExOTc1MDhhYjY3MTc5OTU5NTcyZjc4ODMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUub3JkZXIKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5v
cmRlcgpAQCAtMTE4Myw3ICsxMTgzLDcgQEAgX19aTjdXZWJDb3JlMTZDU1NTdHlsZVNlbGVjdG9y
MTJtYXRjaFVBUnVsZXNFUmlTMV8KIF9fWk5LN1dlYkNvcmUxOU1lZGlhUXVlcnlFdmFsdWF0b3Iy
Mm1lZGlhVHlwZU1hdGNoU3BlY2lmaWNFUEtjCiBfX1pON1dlYkNvcmUxNkNTU1N0eWxlU2VsZWN0
b3IxMG1hdGNoUnVsZXNFUE5TXzdSdWxlU2V0RVJpUzNfYgogX19aTjNXVEY2VmVjdG9ySVBLTjdX
ZWJDb3JlOFJ1bGVEYXRhRUxtMzJFRTE0c2hyaW5rQ2FwYWNpdHlFbQotX19aTks3V2ViQ29yZTdF
bGVtZW50MTRzaGFkb3dQc2V1ZG9JZEV2CitfX1pOSzdXZWJDb3JlN0VsZW1lbnQ2cHNldWRvRXYK
IF9fWk43V2ViQ29yZTE2Q1NTU3R5bGVTZWxlY3RvcjE3bWF0Y2hSdWxlc0Zvckxpc3RFUEtOM1dU
RjZWZWN0b3JJTlNfOFJ1bGVEYXRhRUxtMEVFRVJpUzdfYgogX19aTjdXZWJDb3JlMTZDU1NTdHls
ZVNlbGVjdG9yMTNjaGVja1NlbGVjdG9yRVJLTlNfOFJ1bGVEYXRhRQogX19aTjdXZWJDb3JlMTZD
U1NTdHlsZVNlbGVjdG9yMTRhZGRNYXRjaGVkUnVsZUVQS05TXzhSdWxlRGF0YUUKQEAgLTcwMzAs
MjAgKzcwMzAsMjAgQEAgX19aTks3V2ViQ29yZTI3TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNl
MjhzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nRXYKIF9fWk43V2ViQ29yZTEwU2hhZG93Um9v
dDZhdHRhY2hFdgogX19aTjdXZWJDb3JlMjFTaGFkb3dDb250ZW50U2VsZWN0b3JDMkVQTlNfMTBT
aGFkb3dSb290RQogX19aTks3V2ViQ29yZTEwU2hhZG93Um9vdDE2aXNTaGFkb3dCb3VuZGFyeUV2
Ci1fX1pOSzdXZWJDb3JlMjNNZWRpYUNvbnRyb2xSb290RWxlbWVudDE0c2hhZG93UHNldWRvSWRF
dgorX19aTks3V2ViQ29yZTIzTWVkaWFDb250cm9sUm9vdEVsZW1lbnQ2cHNldWRvRXYKIF9fWk5L
N1dlYkNvcmUyNEFwcGx5UHJvcGVydHlEZWZhdWx0QmFzZUlOU182TGVuZ3RoRUUxN2FwcGx5SW5o
ZXJpdFZhbHVlRVBOU18xNkNTU1N0eWxlU2VsZWN0b3JFCiBfX1pOSzdXZWJDb3JlMTFSZW5kZXJT
dHlsZTV3aWR0aEV2CiBfX1pOSzdXZWJDb3JlMTFSZW5kZXJTdHlsZTZoZWlnaHRFdgogX19aTjdX
ZWJDb3JlMTFSZW5kZXJNZWRpYTE1dmlydHVhbENoaWxkcmVuRXYKLV9fWk5LN1dlYkNvcmUyNE1l
ZGlhQ29udHJvbFBhbmVsRWxlbWVudDE0c2hhZG93UHNldWRvSWRFdgorX19aTks3V2ViQ29yZTI0
TWVkaWFDb250cm9sUGFuZWxFbGVtZW50NnBzZXVkb0V2CiBfX1pON1dlYkNvcmUxMVJlbmRlclN0
eWxlOXNldEJvdHRvbUVOU182TGVuZ3RoRQogX19aTjdXZWJDb3JlMTdSZW5kZXJEZXByZWNhdGVk
RmxleGlibGVCb3hDMUVQTlNfNE5vZGVFCi1fX1pOSzdXZWJDb3JlMzFNZWRpYUNvbnRyb2xSZXdp
bmRCdXR0b25FbGVtZW50MTRzaGFkb3dQc2V1ZG9JZEV2CitfX1pOSzdXZWJDb3JlMzFNZWRpYUNv
bnRyb2xSZXdpbmRCdXR0b25FbGVtZW50NnBzZXVkb0V2CiBfX1pOSzdXZWJDb3JlMThBcHBseVBy
b3BlcnR5Q29sb3JJTE5TXzEyQ29sb3JJbmhlcml0RTFFRTE3YXBwbHlJbmhlcml0VmFsdWVFUE5T
XzE2Q1NTU3R5bGVTZWxlY3RvckUKIF9fWk5LN1dlYkNvcmUxMVJlbmRlclN0eWxlNWNvbG9yRXYK
IF9fWk43V2ViQ29yZTlJbnB1dFR5cGUxMmRlZmF1bHRWYWx1ZUV2Ci1fX1pOSzdXZWJDb3JlMjlN
ZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudDE0c2hhZG93UHNldWRvSWRFdgotX19aTks3V2Vi
Q29yZTQxTWVkaWFDb250cm9sUmV0dXJuVG9SZWFsdGltZUJ1dHRvbkVsZW1lbnQxNHNoYWRvd1Bz
ZXVkb0lkRXYKK19fWk5LN1dlYkNvcmUyOU1lZGlhQ29udHJvbFBsYXlCdXR0b25FbGVtZW50NnBz
ZXVkb0V2CitfX1pOSzdXZWJDb3JlNDFNZWRpYUNvbnRyb2xSZXR1cm5Ub1JlYWx0aW1lQnV0dG9u
RWxlbWVudDZwc2V1ZG9FdgogX19aTks3V2ViQ29yZTEzU3R5bGVkRWxlbWVudDIwdXBkYXRlU3R5
bGVBdHRyaWJ1dGVFdgogX19aTks3V2ViQ29yZTI2Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb243
Y3NzVGV4dEV2CiBfX1pOSzdXZWJDb3JlMTFDU1NQcm9wZXJ0eTdjc3NUZXh0RXYKQEAgLTcwNTEs
MjQgKzcwNTEsMjQgQEAgX19aTks3V2ViQ29yZTE3Q1NTUHJpbWl0aXZlVmFsdWU3Y3NzVGV4dEV2
CiBfX1pON1dlYkNvcmVMMTl2YWx1ZU9yUHJvcGVydHlOYW1lRWkKIF9fWk43V2ViQ29yZTEyZ2V0
VmFsdWVOYW1lRXQKIF9fWk43V2ViQ29yZTE1Z2V0UHJvcGVydHlOYW1lRU5TXzEzQ1NTUHJvcGVy
dHlJREUKLV9fWk5LN1dlYkNvcmUzMk1lZGlhQ29udHJvbFN0YXR1c0Rpc3BsYXlFbGVtZW50MTRz
aGFkb3dQc2V1ZG9JZEV2CitfX1pOSzdXZWJDb3JlMzJNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5
RWxlbWVudDZwc2V1ZG9FdgogX19aTks3V2ViQ29yZTExU2hhZG93VmFsdWUxM2lzU2hhZG93VmFs
dWVFdgogX19aTjNXVEY2T3duUHRySU43V2ViQ29yZTEwU2hhZG93RGF0YUVFRDFFdgotX19aTks3
V2ViQ29yZTM2TWVkaWFDb250cm9sVGltZWxpbmVDb250YWluZXJFbGVtZW50MTRzaGFkb3dQc2V1
ZG9JZEV2CitfX1pOSzdXZWJDb3JlMzZNZWRpYUNvbnRyb2xUaW1lbGluZUNvbnRhaW5lckVsZW1l
bnQ2cHNldWRvRXYKIF9fWk43V2ViQ29yZTExUmVuZGVyU3R5bGUxMHNldEJveFBhY2tFTlNfMTNF
Qm94QWxpZ25tZW50RQotX19aTks3V2ViQ29yZTMzTWVkaWFDb250cm9sU2Vla0JhY2tCdXR0b25F
bGVtZW50MTRzaGFkb3dQc2V1ZG9JZEV2Ci1fX1pOSzdXZWJDb3JlMzZNZWRpYUNvbnRyb2xTZWVr
Rm9yd2FyZEJ1dHRvbkVsZW1lbnQxNHNoYWRvd1BzZXVkb0lkRXYKLV9fWk5LN1dlYkNvcmU0NU1l
ZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudDE0c2hhZG93UHNldWRv
SWRFdgorX19aTks3V2ViQ29yZTMzTWVkaWFDb250cm9sU2Vla0JhY2tCdXR0b25FbGVtZW50NnBz
ZXVkb0V2CitfX1pOSzdXZWJDb3JlMzZNZWRpYUNvbnRyb2xTZWVrRm9yd2FyZEJ1dHRvbkVsZW1l
bnQ2cHNldWRvRXYKK19fWk5LN1dlYkNvcmU0NU1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRp
b25zQnV0dG9uRWxlbWVudDZwc2V1ZG9FdgogX19aTjdXZWJDb3JlMTFSZW5kZXJTdHlsZTE4c2V0
Qm94T3JkaW5hbEdyb3VwRWoKLV9fWk5LN1dlYkNvcmUzNU1lZGlhQ29udHJvbEZ1bGxzY3JlZW5C
dXR0b25FbGVtZW50MTRzaGFkb3dQc2V1ZG9JZEV2Ci1fX1pOSzdXZWJDb3JlMzRNZWRpYUNvbnRy
b2xQYW5lbE11dGVCdXR0b25FbGVtZW50MTRzaGFkb3dQc2V1ZG9JZEV2Ci1fX1pOSzdXZWJDb3Jl
NDBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50MTRzaGFkb3dQc2V1ZG9J
ZEV2CitfX1pOSzdXZWJDb3JlMzVNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudDZw
c2V1ZG9FdgorX19aTks3V2ViQ29yZTM0TWVkaWFDb250cm9sUGFuZWxNdXRlQnV0dG9uRWxlbWVu
dDZwc2V1ZG9FdgorX19aTks3V2ViQ29yZTQwTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFp
bmVyRWxlbWVudDZwc2V1ZG9FdgogX19aTjdXZWJDb3JlMTFSZW5kZXJTdHlsZTZzZXRUb3BFTlNf
Nkxlbmd0aEUKIF9fWk43V2ViQ29yZTExUmVuZGVyU3R5bGU3c2V0TGVmdEVOU182TGVuZ3RoRQot
X19aTks3V2ViQ29yZTQ0TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1pbkJ1dHRvbkVsZW1l
bnQxNHNoYWRvd1BzZXVkb0lkRXYKLV9fWk5LN1dlYkNvcmU0MU1lZGlhQ29udHJvbEZ1bGxzY3Jl
ZW5Wb2x1bWVTbGlkZXJFbGVtZW50MTRzaGFkb3dQc2V1ZG9JZEV2CitfX1pOSzdXZWJDb3JlNDRN
ZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWluQnV0dG9uRWxlbWVudDZwc2V1ZG9FdgorX19a
Tks3V2ViQ29yZTQxTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZVNsaWRlckVsZW1lbnQ2cHNl
dWRvRXYKIF9fWk5LN1dlYkNvcmUxNFJlbmRlclRoZW1lTWFjMjJhZGp1c3RTbGlkZXJUcmFja1N0
eWxlRVBOU18xNkNTU1N0eWxlU2VsZWN0b3JFUE5TXzExUmVuZGVyU3R5bGVFUE5TXzdFbGVtZW50
RQotX19aTks3V2ViQ29yZTQ0TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1heEJ1dHRvbkVs
ZW1lbnQxNHNoYWRvd1BzZXVkb0lkRXYKK19fWk5LN1dlYkNvcmU0NE1lZGlhQ29udHJvbEZ1bGxz
Y3JlZW5Wb2x1bWVNYXhCdXR0b25FbGVtZW50NnBzZXVkb0V2CiBfX1pON1dlYkNvcmUxMVJlbmRl
clZpZGVvMTd1cGRhdGVGcm9tRWxlbWVudEV2CiBfX1pON1dlYkNvcmUxMVJlbmRlclZpZGVvMTJ1
cGRhdGVQbGF5ZXJFdgogX19aTjdXZWJDb3JlMTFSZW5kZXJWaWRlbzE5dXBkYXRlSW50cmluc2lj
U2l6ZUV2CkBAIC03MzEwLDE2ICs3MzEwLDE2IEBAIF9fWk5LN1dlYkNvcmUxMVJlbmRlckJsb2Nr
MTl2aXJ0dWFsQ29udGludWF0aW9uRXYKIF9fWk43V2ViQ29yZTExUmVuZGVyTGF5ZXIxMXJlbW92
ZUNoaWxkRVBTMF8KIF9fWk43V2ViQ29yZTIxUmVuZGVyTGF5ZXJDb21wb3NpdG9yMThsYXllcldp
bGxCZVJlbW92ZWRFUE5TXzExUmVuZGVyTGF5ZXJFUzJfCiBfX1pON1dlYkNvcmUxN1JlbmRlckRl
cHJlY2F0ZWRGbGV4aWJsZUJveEQwRXYKLV9fWk5LN1dlYkNvcmUzN01lZGlhQ29udHJvbEN1cnJl
bnRUaW1lRGlzcGxheUVsZW1lbnQxNHNoYWRvd1BzZXVkb0lkRXYKK19fWk5LN1dlYkNvcmUzN01l
ZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlzcGxheUVsZW1lbnQ2cHNldWRvRXYKIF9fWk43V2ViQ29y
ZTMwTWVkaWFDb250cm9sVGltZURpc3BsYXlFbGVtZW50MTRjcmVhdGVSZW5kZXJlckVQTlNfMTFS
ZW5kZXJBcmVuYUVQTlNfMTFSZW5kZXJTdHlsZUUKLV9fWk5LN1dlYkNvcmUyN01lZGlhQ29udHJv
bFRpbWVsaW5lRWxlbWVudDE0c2hhZG93UHNldWRvSWRFdgorX19aTks3V2ViQ29yZTI3TWVkaWFD
b250cm9sVGltZWxpbmVFbGVtZW50NnBzZXVkb0V2CiBfX1pON1dlYkNvcmUxMVJlbmRlclN0eWxl
MTNpbml0aWFsTWFyZ2luRXYKIF9fWk5LN1dlYkNvcmUxNFJhbmdlSW5wdXRUeXBlMTRjcmVhdGVS
ZW5kZXJlckVQTlNfMTFSZW5kZXJBcmVuYUVQTlNfMTFSZW5kZXJTdHlsZUUKIF9fWk43V2ViQ29y
ZTEyUmVuZGVyU2xpZGVyQzFFUE5TXzE2SFRNTElucHV0RWxlbWVudEUKLV9fWk5LN1dlYkNvcmUx
OFNsaWRlclRodW1iRWxlbWVudDE0c2hhZG93UHNldWRvSWRFdgorX19aTks3V2ViQ29yZTE4U2xp
ZGVyVGh1bWJFbGVtZW50NnBzZXVkb0V2CiBfX1pOSzdXZWJDb3JlMTRSZW5kZXJUaGVtZU1hYzIy
YWRqdXN0U2xpZGVyVGh1bWJTdHlsZUVQTlNfMTZDU1NTdHlsZVNlbGVjdG9yRVBOU18xMVJlbmRl
clN0eWxlRVBOU183RWxlbWVudEUKIF9fWk43V2ViQ29yZTE4U2xpZGVyVGh1bWJFbGVtZW50MTRj
cmVhdGVSZW5kZXJlckVQTlNfMTFSZW5kZXJBcmVuYUVQTlNfMTFSZW5kZXJTdHlsZUUKLV9fWk5L
N1dlYkNvcmUzOU1lZGlhQ29udHJvbFRpbWVSZW1haW5pbmdEaXNwbGF5RWxlbWVudDE0c2hhZG93
UHNldWRvSWRFdgorX19aTks3V2ViQ29yZTM5TWVkaWFDb250cm9sVGltZVJlbWFpbmluZ0Rpc3Bs
YXlFbGVtZW50NnBzZXVkb0V2CiBfX1pON1dlYkNvcmUxMlJlbmRlclNsaWRlcjI5Y29tcHV0ZVBy
ZWZlcnJlZExvZ2ljYWxXaWR0aHNFdgogX19aTjdXZWJDb3JlMjlSZW5kZXJNZWRpYUNvbnRyb2xU
aW1lRGlzcGxheTZsYXlvdXRFdgogX19aTjdXZWJDb3JlMTJSZW5kZXJTbGlkZXI2bGF5b3V0RXYK
QEAgLTE1MDY0LDcgKzE1MDY0LDcgQEAgX19aTjdXZWJDb3JlMTlKU0hUTUxLZXlnZW5FbGVtZW50
QzFFUE4zSlNDOVN0cnVjdHVyZUVQTlNfMTdKU0RPTUdsb2JhbE9iamVjdEVOM1cKIF9fWk43V2Vi
Q29yZTEyY2FjaGVXcmFwcGVySU5TXzE3SFRNTEtleWdlbkVsZW1lbnRFRUV2UE5TXzE1RE9NV3Jh
cHBlcldvcmxkRVBUX1BOU18xMkpTRE9NV3JhcHBlckUKIF9fWk43V2ViQ29yZTE5SlNIVE1MS2V5
Z2VuRWxlbWVudDE4Z2V0T3duUHJvcGVydHlTbG90RVBOM0pTQzlFeGVjU3RhdGVFUktOUzFfMTBJ
ZGVudGlmaWVyRVJOUzFfMTJQcm9wZXJ0eVNsb3RFCiBfX1pON1dlYkNvcmUyOEpTSFRNTEtleWdl
bkVsZW1lbnRQcm90b3R5cGUxOGdldE93blByb3BlcnR5U2xvdEVQTjNKU0M5RXhlY1N0YXRlRVJL
TlMxXzEwSWRlbnRpZmllckVSTlMxXzEyUHJvcGVydHlTbG90RQotX19aTks3V2ViQ29yZTE5S2V5
Z2VuU2VsZWN0RWxlbWVudDE0c2hhZG93UHNldWRvSWRFdgorX19aTks3V2ViQ29yZTE5S2V5Z2Vu
U2VsZWN0RWxlbWVudDZwc2V1ZG9FdgogX19aTjdXZWJDb3JlTDE4bWFycXVlZUNvbnN0cnVjdG9y
RVJLTlNfMTNRdWFsaWZpZWROYW1lRVBOU184RG9jdW1lbnRFUE5TXzE1SFRNTEZvcm1FbGVtZW50
RWIKIF9fWk43V2ViQ29yZTE4SFRNTE1hcnF1ZWVFbGVtZW50NmNyZWF0ZUVSS05TXzEzUXVhbGlm
aWVkTmFtZUVQTlNfOERvY3VtZW50RQogX19aTjdXZWJDb3JlTDMxY3JlYXRlSFRNTE1hcnF1ZWVF
bGVtZW50V3JhcHBlckVQTjNKU0M5RXhlY1N0YXRlRVBOU18xN0pTRE9NR2xvYmFsT2JqZWN0RU4z
V1RGMTBQYXNzUmVmUHRySU5TXzExSFRNTEVsZW1lbnRFRUUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVj
dG9yQ2hlY2tlci5jcHAKaW5kZXggYjY2MDUwZmU0NzUwNzIzZDcxNGFjNTk2MGQ4ODMyZmRkOGI1
MzA2ZC4uNGRkOWQ5MDc4NGQ2YzljODVjZGFjNzQ2Yzc5ZWZlN2MzMDhiZWU5MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAKQEAgLTQ0Nyw3ICs0NDcsNyBAQCBTZWxlY3Rv
ckNoZWNrZXI6OlNlbGVjdG9yTWF0Y2ggU2VsZWN0b3JDaGVja2VyOjpjaGVja1NlbGVjdG9yKGNv
bnN0IFNlbGVjdG9yQ2hlYwogCiAgICAgaWYgKGNvbnRleHQuc2VsZWN0b3ItPm1fbWF0Y2ggPT0g
Q1NTU2VsZWN0b3I6OlBzZXVkb0VsZW1lbnQpIHsKICAgICAgICAgaWYgKGNvbnRleHQuc2VsZWN0
b3ItPmlzVW5rbm93blBzZXVkb0VsZW1lbnQoKSkgewotICAgICAgICAgICAgaWYgKGNvbnRleHQu
ZWxlbWVudC0+c2hhZG93UHNldWRvSWQoKSAhPSBjb250ZXh0LnNlbGVjdG9yLT52YWx1ZSgpKQor
ICAgICAgICAgICAgaWYgKGNvbnRleHQuZWxlbWVudC0+cHNldWRvKCkgIT0gY29udGV4dC5zZWxl
Y3Rvci0+dmFsdWUoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gU2VsZWN0b3JGYWlsc0xvY2Fs
bHk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBpZiAoKCFjb250ZXh0LmVsZW1lbnRT
dHlsZSAmJiBtX21vZGUgPT0gUmVzb2x2aW5nU3R5bGUpIHx8IG1fbW9kZSA9PSBRdWVyeWluZ1J1
bGVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IDdjY2RmZmZkNzA2NDVi
NjFmMTZjNmM3MTRmNGNjMmUwNzQxZjBjZTcuLmExZmFjYzYyYmEwNzBiNmYzMzIyZWNkMGU0N2Qz
YzNkM2M5MmY3ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKQEAgLTY2Myw3
ICs2NjMsNyBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6OmNvbGxlY3RNYXRjaGluZ1J1bGVzKFJ1bGVT
ZXQqIHJ1bGVzLCBpbnQmIGZpcnN0UnVsZUluZGV4LCBpbgogICAgIEFTU0VSVChydWxlcyk7CiAg
ICAgQVNTRVJUKG1fZWxlbWVudCk7CiAKLSAgICBjb25zdCBBdG9taWNTdHJpbmcmIHBzZXVkb0lk
ID0gbV9lbGVtZW50LT5zaGFkb3dQc2V1ZG9JZCgpOworICAgIGNvbnN0IEF0b21pY1N0cmluZyYg
cHNldWRvSWQgPSBtX2VsZW1lbnQtPnBzZXVkbygpOwogICAgIGlmICghcHNldWRvSWQuaXNFbXB0
eSgpKSB7CiAgICAgICAgIEFTU0VSVChtX3N0eWxlZEVsZW1lbnQpOwogICAgICAgICBjb2xsZWN0
TWF0Y2hpbmdSdWxlc0Zvckxpc3QocnVsZXMtPnNoYWRvd1BzZXVkb0VsZW1lbnRSdWxlcyhwc2V1
ZG9JZC5pbXBsKCkpLCBmaXJzdFJ1bGVJbmRleCwgbGFzdFJ1bGVJbmRleCwgb3B0aW9ucyk7CkBA
IC0xMTk1LDcgKzExOTUsNyBAQCBib29sIFN0eWxlUmVzb2x2ZXI6OmNhblNoYXJlU3R5bGVXaXRo
RWxlbWVudChTdHlsZWRFbGVtZW50KiBlbGVtZW50KSBjb25zdAogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgaWYgKGVsZW1lbnQtPmZvY3VzZWQoKSAhPSBtX2VsZW1lbnQtPmZvY3VzZWQoKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmIChlbGVtZW50LT5zaGFkb3dQc2V1ZG9JZCgp
ICE9IG1fZWxlbWVudC0+c2hhZG93UHNldWRvSWQoKSkKKyAgICBpZiAoZWxlbWVudC0+cHNldWRv
KCkgIT0gbV9lbGVtZW50LT5wc2V1ZG8oKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlm
IChlbGVtZW50ID09IGVsZW1lbnQtPmRvY3VtZW50KCktPmNzc1RhcmdldCgpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggNGQ5MzgzMGVkMWEzMDAzYjg2
MjJlMmVlZWQ1MTBlNjE0OWViMjdiMy4uMWEzMDdiYjE5NzA0ZmU1MjcyNzBhY2NkZGM2OTNhNGJh
YzQxZmUxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtMTM1MiwyMSArMTM1Miw2IEBAIFNo
YWRvd1Jvb3QqIEVsZW1lbnQ6OnVzZXJBZ2VudFNoYWRvd1Jvb3QoKSBjb25zdAogICAgIHJldHVy
biAwOwogfQogCi1jb25zdCBBdG9taWNTdHJpbmcmIEVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkg
Y29uc3QKLXsKLSAgICByZXR1cm4gcHNldWRvKCk7Ci19Ci0KLXZvaWQgRWxlbWVudDo6c2V0U2hh
ZG93UHNldWRvSWQoY29uc3QgQXRvbWljU3RyaW5nJiBpZCwgRXhjZXB0aW9uQ29kZSYgZWMpCi17
Ci0gICAgaWYgKCFDU1NTZWxlY3Rvcjo6aXNVbmtub3duUHNldWRvVHlwZShpZCkpIHsKLSAgICAg
ICAgZWMgPSBTWU5UQVhfRVJSOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgc2V0UHNl
dWRvKGlkKTsKLX0KLQogYm9vbCBFbGVtZW50OjpjaGlsZFR5cGVBbGxvd2VkKE5vZGVUeXBlIHR5
cGUpIGNvbnN0CiB7CiAgICAgc3dpdGNoICh0eXBlKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAppbmRleCA2
NzdiMzQ3NTQyOTRmZTE2NjYwOWVlNmZlNWI3MzM2NDJiNDU0NzE5Li41MDZmNmMxYWIxYWZlYWRk
MmQ3ZjFmZGNhMGNiMmFkMmNlM2U4ZWQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKQEAgLTI3OSw5ICsy
NzksNiBAQCBwdWJsaWM6CiAKICAgICBTaGFkb3dSb290KiB1c2VyQWdlbnRTaGFkb3dSb290KCkg
Y29uc3Q7CiAKLSAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQo
KSBjb25zdDsKLSAgICB2b2lkIHNldFNoYWRvd1BzZXVkb0lkKGNvbnN0IEF0b21pY1N0cmluZyYs
IEV4Y2VwdGlvbkNvZGUmID0gQVNTRVJUX05PX0VYQ0VQVElPTik7Ci0KICAgICBSZW5kZXJTdHls
ZSogY29tcHV0ZWRTdHlsZShQc2V1ZG9JZCA9IE5PUFNFVURPKTsKIAogICAgIHZvaWQgc2V0U3R5
bGVBZmZlY3RlZEJ5RW1wdHkoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFz
ZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9CYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKaW5kZXggM2Nh
NWM4ZjExNmNiZDIzNTQ4YTgyOTJhYzE2Mjg0ZDk4NGM5MDMyNC4uZTcwZDAwYTgxYWY1YjE5OWMw
YTI4MGY4NjllYWI4ZmU0NDZjNzQ4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9C
YXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9CYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKQEAg
LTE2MSw3ICsxNjEsNyBAQCB2b2lkIEJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRU
eXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBlbGVt
ZW50KCktPmRvY3VtZW50KCk7CiAgICAgUmVmUHRyPEhUTUxEaXZFbGVtZW50PiBjb250YWluZXIg
PSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBlbGVtZW50KCktPnVzZXJB
Z2VudFNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQoY29udGFpbmVyKTsKLSAgICBjb250YWluZXIt
PnNldFNoYWRvd1BzZXVkb0lkKGRhdGVBbmRUaW1lSW5wdXRDb250YWluZXJQc2V1ZG9JZCk7Cisg
ICAgY29udGFpbmVyLT5zZXRQc2V1ZG8oZGF0ZUFuZFRpbWVJbnB1dENvbnRhaW5lclBzZXVkb0lk
KTsKIAogICAgIFJlZlB0cjxEYXRlVGltZUVkaXRFbGVtZW50PiBkYXRlVGltZUVkaXRFbGVtZW50
KERhdGVUaW1lRWRpdEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgKnRoaXMpKTsKICAgICBtX2Rh
dGVUaW1lRWRpdEVsZW1lbnQgPSBkYXRlVGltZUVkaXRFbGVtZW50LmdldCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcAppbmRleCA3ZjA4N2RlOTUwMGZiZmNhYzIzMzY1YzEx
NDM1YzAyZGY0NTliNWRiLi5kZWJjOTgyMzAxZmY1YzI0MjEzOGY5Y2NiZmUyYTMzODhmMjMwMTk3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcApAQCAtMTE4LDkgKzExOCw5
IEBAIHZvaWQgQ29sb3JJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogCiAgICAgRG9j
dW1lbnQqIGRvY3VtZW50ID0gZWxlbWVudCgpLT5kb2N1bWVudCgpOwogICAgIFJlZlB0cjxIVE1M
RGl2RWxlbWVudD4gd3JhcHBlckVsZW1lbnQgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3Vt
ZW50KTsKLSAgICB3cmFwcGVyRWxlbWVudC0+c2V0U2hhZG93UHNldWRvSWQoIi13ZWJraXQtY29s
b3Itc3dhdGNoLXdyYXBwZXIiKTsKKyAgICB3cmFwcGVyRWxlbWVudC0+c2V0UHNldWRvKCItd2Vi
a2l0LWNvbG9yLXN3YXRjaC13cmFwcGVyIik7CiAgICAgUmVmUHRyPEhUTUxEaXZFbGVtZW50PiBj
b2xvclN3YXRjaCA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwotICAgIGNvbG9y
U3dhdGNoLT5zZXRTaGFkb3dQc2V1ZG9JZCgiLXdlYmtpdC1jb2xvci1zd2F0Y2giKTsKKyAgICBj
b2xvclN3YXRjaC0+c2V0UHNldWRvKCItd2Via2l0LWNvbG9yLXN3YXRjaCIpOwogICAgIEV4Y2Vw
dGlvbkNvZGUgZWMgPSAwOwogICAgIHdyYXBwZXJFbGVtZW50LT5hcHBlbmRDaGlsZChjb2xvclN3
YXRjaC5yZWxlYXNlKCksIGVjKTsKICAgICBBU1NFUlQoIWVjKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zp
bGVJbnB1dFR5cGUuY3BwCmluZGV4IDg5ZmNjODc4ZTU5YzUzOTMyZTkwOTdkYjEyOWJkMDY3Y2Q2
NzNlM2UuLmExYjU1MzZhMmIwYWNmYWZjYjZmM2RkMjA0MzFmN2JkYmExYzk2YzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcApAQCAtNTYsNyArNTYsNyBAQCBwdWJsaWM6CiBw
cml2YXRlOgogICAgIFVwbG9hZEJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQqKTsKIAotICAgIHZpcnR1
YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0OworICAgIHZpcnR1
YWwgY29uc3QgQXRvbWljU3RyaW5nJiBwc2V1ZG8oKSBjb25zdDsKIH07CiAKIFBhc3NSZWZQdHI8
VXBsb2FkQnV0dG9uRWxlbWVudD4gVXBsb2FkQnV0dG9uRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50
KiBkb2N1bWVudCkKQEAgLTgwLDcgKzgwLDcgQEAgVXBsb2FkQnV0dG9uRWxlbWVudDo6VXBsb2Fk
QnV0dG9uRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQpCiB7CiB9CiAKLWNvbnN0IEF0b21pY1N0
cmluZyYgVXBsb2FkQnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAorY29uc3Qg
QXRvbWljU3RyaW5nJiBVcGxvYWRCdXR0b25FbGVtZW50Ojpwc2V1ZG8oKSBjb25zdAogewogICAg
IERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBwc2V1ZG9JZCwgKCItd2Via2l0LWZp
bGUtdXBsb2FkLWJ1dHRvbiIpKTsKICAgICByZXR1cm4gcHNldWRvSWQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwCmluZGV4IGNmZTJkOGU0OTY5NTAwMjk5MjIxOTM4
YWJiYjIyMjIyY2ZmMGJhOTcuLjMzMTgzYzQ2MzVkNTc0MTZhYzQ4YTlhY2FhNjk2NjBhMWIyMjRm
ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwCkBAIC01MCw3
ICs1MCw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBLZXlnZW5TZWxl
Y3RFbGVtZW50KGRvY3VtZW50KSk7CiAgICAgfQogCi0gICAgdmlydHVhbCBjb25zdCBBdG9taWNT
dHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3QKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0
cmluZyYgcHNldWRvKCkgY29uc3QKICAgICB7CiAgICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwo
QXRvbWljU3RyaW5nLCBwc2V1ZG9JZCwgKCItd2Via2l0LWtleWdlbi1zZWxlY3QiKSk7CiAgICAg
ICAgIHJldHVybiBwc2V1ZG9JZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRleHRBcmVhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVs
ZW1lbnQuY3BwCmluZGV4IGRiOThjY2M5Zjk1MDdlOWMzZmMyY2IzMmQwZmU0YmQ1YzU3YTRmMWQu
Ljc1MDljMDJiYzZkNjEzYjQwMWFhZTdkMTM0MTE1YTZkZTE3N2NjOTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcApAQCAtNTQ0LDcgKzU0NCw3IEBAIHZv
aWQgSFRNTFRleHRBcmVhRWxlbWVudDo6dXBkYXRlUGxhY2Vob2xkZXJUZXh0KCkKICAgICBpZiAo
IW1fcGxhY2Vob2xkZXIpIHsKICAgICAgICAgUmVmUHRyPEhUTUxEaXZFbGVtZW50PiBwbGFjZWhv
bGRlciA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7CiAgICAgICAgIG1fcGxh
Y2Vob2xkZXIgPSBwbGFjZWhvbGRlci5nZXQoKTsKLSAgICAgICAgbV9wbGFjZWhvbGRlci0+c2V0
U2hhZG93UHNldWRvSWQoIi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIiKTsKKyAgICAgICAgbV9w
bGFjZWhvbGRlci0+c2V0UHNldWRvKCItd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIik7CiAgICAg
ICAgIHVzZXJBZ2VudFNoYWRvd1Jvb3QoKS0+aW5zZXJ0QmVmb3JlKG1fcGxhY2Vob2xkZXIsIGlu
bmVyVGV4dEVsZW1lbnQoKS0+bmV4dFNpYmxpbmcoKSwgZWMpOwogICAgICAgICBBU1NFUlQoIWVj
KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCmluZGV4IDFlODM4
NDQ1M2M0ODExZGMyMGRlZWQwOWExMGEyMTZkM2IyZGQzYTEuLjEyMDExM2I2MDE2ZmQxM2I2YTY5
Njg1MWJkZWJkY2U0MmYyOTg2ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFu
Z2VJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUu
Y3BwCkBAIC0yNTUsNyArMjU1LDcgQEAgdm9pZCBSYW5nZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93
U3VidHJlZSgpCiAKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBlbGVtZW50KCktPmRvY3VtZW50
KCk7CiAgICAgUmVmUHRyPEhUTUxEaXZFbGVtZW50PiB0cmFjayA9IEhUTUxEaXZFbGVtZW50Ojpj
cmVhdGUoZG9jdW1lbnQpOwotICAgIHRyYWNrLT5zZXRTaGFkb3dQc2V1ZG9JZCgiLXdlYmtpdC1z
bGlkZXItcnVubmFibGUtdHJhY2siKTsKKyAgICB0cmFjay0+c2V0UHNldWRvKCItd2Via2l0LXNs
aWRlci1ydW5uYWJsZS10cmFjayIpOwogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIHRy
YWNrLT5hcHBlbmRDaGlsZChTbGlkZXJUaHVtYkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCksIGVj
KTsKICAgICBSZWZQdHI8SFRNTEVsZW1lbnQ+IGNvbnRhaW5lciA9IFNsaWRlckNvbnRhaW5lckVs
ZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L1RleHRGaWVsZElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElu
cHV0VHlwZS5jcHAKaW5kZXggYTVjMjc0NWZjNDZhYTc1YjZkNTM4OTk3MjUwMTBjMjkxNDZlYWI5
Yi4uMWIxOTkxZGJlZTg5YTlkODAyNWY0OGZjNTViZDE1ZGVmNTljY2NjMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcApAQCAtMjQ1LDcgKzI0NSw3IEBAIHZv
aWQgVGV4dEZpZWxkSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKIAogICAgIFNoYWRv
d1Jvb3QqIHNoYWRvd1Jvb3QgPSBlbGVtZW50KCktPnVzZXJBZ2VudFNoYWRvd1Jvb3QoKTsKICAg
ICBtX2NvbnRhaW5lciA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwotICAgIG1f
Y29udGFpbmVyLT5zZXRTaGFkb3dQc2V1ZG9JZCgiLXdlYmtpdC10ZXh0ZmllbGQtZGVjb3JhdGlv
bi1jb250YWluZXIiKTsKKyAgICBtX2NvbnRhaW5lci0+c2V0UHNldWRvKCItd2Via2l0LXRleHRm
aWVsZC1kZWNvcmF0aW9uLWNvbnRhaW5lciIpOwogICAgIHNoYWRvd1Jvb3QtPmFwcGVuZENoaWxk
KG1fY29udGFpbmVyLCBlYyk7CiAKICAgICBtX2lubmVyQmxvY2sgPSBUZXh0Q29udHJvbElubmVy
RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKQEAgLTQxMyw3ICs0MTMsNyBAQCB2b2lkIFRleHRG
aWVsZElucHV0VHlwZTo6dXBkYXRlUGxhY2Vob2xkZXJUZXh0KCkKICAgICB9CiAgICAgaWYgKCFt
X3BsYWNlaG9sZGVyKSB7CiAgICAgICAgIG1fcGxhY2Vob2xkZXIgPSBIVE1MRGl2RWxlbWVudDo6
Y3JlYXRlKGVsZW1lbnQoKS0+ZG9jdW1lbnQoKSk7Ci0gICAgICAgIG1fcGxhY2Vob2xkZXItPnNl
dFNoYWRvd1BzZXVkb0lkKCItd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIik7CisgICAgICAgIG1f
cGxhY2Vob2xkZXItPnNldFBzZXVkbygiLXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciIpOwogICAg
ICAgICBlbGVtZW50KCktPnVzZXJBZ2VudFNoYWRvd1Jvb3QoKS0+aW5zZXJ0QmVmb3JlKG1fcGxh
Y2Vob2xkZXIsIG1fY29udGFpbmVyID8gbV9jb250YWluZXItPm5leHRTaWJsaW5nKCkgOiBpbm5l
clRleHRFbGVtZW50KCktPm5leHRTaWJsaW5nKCksIGVjKTsKICAgICAgICAgQVNTRVJUKCFlYyk7
CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0aW9uTWVzc2Fn
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlkYXRpb25NZXNzYWdlLmNwcAppbmRleCAx
ZDU1MWM5MzEzZTA3MDcwNDQ4NWJlMmI0Y2MzOTBiODM0OTdkNTRmLi5hZDU3Y2I4N2EwMGRjOWNi
MzRhYzI1YjViZmY2ZjgzYTQ0MzQ1NzZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L1ZhbGlkYXRpb25NZXNzYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlkYXRp
b25NZXNzYWdlLmNwcApAQCAtMTc5LDcgKzE3OSw3IEBAIHZvaWQgVmFsaWRhdGlvbk1lc3NhZ2U6
OmJ1aWxkQnViYmxlVHJlZShUaW1lcjxWYWxpZGF0aW9uTWVzc2FnZT4qKQogCiAgICAgRG9jdW1l
bnQqIGRvYyA9IG1fZWxlbWVudC0+ZG9jdW1lbnQoKTsKICAgICBtX2J1YmJsZSA9IEhUTUxEaXZF
bGVtZW50OjpjcmVhdGUoZG9jKTsKLSAgICBtX2J1YmJsZS0+c2V0U2hhZG93UHNldWRvSWQoIi13
ZWJraXQtdmFsaWRhdGlvbi1idWJibGUiKTsKKyAgICBtX2J1YmJsZS0+c2V0UHNldWRvKCItd2Vi
a2l0LXZhbGlkYXRpb24tYnViYmxlIik7CiAgICAgLy8gTmVlZCB0byBmb3JjZSBwb3NpdGlvbjph
YnNvbHV0ZSBiZWNhdXNlIFJlbmRlck1lbnVMaXN0IGRvZXNuJ3QgYXNzdW1lIGl0CiAgICAgLy8g
Y29udGFpbnMgbm9uLWFic29sdXRlIG9yIG5vbi1maXhlZCByZW5kZXJlcnMgYXMgY2hpbGRyZW4u
CiAgICAgbV9idWJibGUtPnNldElubGluZVN0eWxlUHJvcGVydHkoQ1NTUHJvcGVydHlQb3NpdGlv
biwgQ1NTVmFsdWVBYnNvbHV0ZSk7CkBAIC0xOTAsMjYgKzE5MCwyNiBAQCB2b2lkIFZhbGlkYXRp
b25NZXNzYWdlOjpidWlsZEJ1YmJsZVRyZWUoVGltZXI8VmFsaWRhdGlvbk1lc3NhZ2U+KikKICAg
ICBhZGp1c3RCdWJibGVQb3NpdGlvbihtX2VsZW1lbnQtPmJvdW5kaW5nQm94KCksIG1fYnViYmxl
LmdldCgpKTsKIAogICAgIFJlZlB0cjxIVE1MRGl2RWxlbWVudD4gY2xpcHBlciA9IEhUTUxEaXZF
bGVtZW50OjpjcmVhdGUoZG9jKTsKLSAgICBjbGlwcGVyLT5zZXRTaGFkb3dQc2V1ZG9JZCgiLXdl
YmtpdC12YWxpZGF0aW9uLWJ1YmJsZS1hcnJvdy1jbGlwcGVyIik7CisgICAgY2xpcHBlci0+c2V0
UHNldWRvKCItd2Via2l0LXZhbGlkYXRpb24tYnViYmxlLWFycm93LWNsaXBwZXIiKTsKICAgICBS
ZWZQdHI8SFRNTERpdkVsZW1lbnQ+IGJ1YmJsZUFycm93ID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0
ZShkb2MpOwotICAgIGJ1YmJsZUFycm93LT5zZXRTaGFkb3dQc2V1ZG9JZCgiLXdlYmtpdC12YWxp
ZGF0aW9uLWJ1YmJsZS1hcnJvdyIpOworICAgIGJ1YmJsZUFycm93LT5zZXRQc2V1ZG8oIi13ZWJr
aXQtdmFsaWRhdGlvbi1idWJibGUtYXJyb3ciKTsKICAgICBjbGlwcGVyLT5hcHBlbmRDaGlsZChi
dWJibGVBcnJvdy5yZWxlYXNlKCksIGVjKTsKICAgICBBU1NFUlQoIWVjKTsKICAgICBtX2J1YmJs
ZS0+YXBwZW5kQ2hpbGQoY2xpcHBlci5yZWxlYXNlKCksIGVjKTsKICAgICBBU1NFUlQoIWVjKTsK
IAogICAgIFJlZlB0cjxIVE1MRWxlbWVudD4gbWVzc2FnZSA9IEhUTUxEaXZFbGVtZW50OjpjcmVh
dGUoZG9jKTsKLSAgICBtZXNzYWdlLT5zZXRTaGFkb3dQc2V1ZG9JZCgiLXdlYmtpdC12YWxpZGF0
aW9uLWJ1YmJsZS1tZXNzYWdlIik7CisgICAgbWVzc2FnZS0+c2V0UHNldWRvKCItd2Via2l0LXZh
bGlkYXRpb24tYnViYmxlLW1lc3NhZ2UiKTsKICAgICBSZWZQdHI8SFRNTEVsZW1lbnQ+IGljb24g
PSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvYyk7Ci0gICAgaWNvbi0+c2V0U2hhZG93UHNldWRv
SWQoIi13ZWJraXQtdmFsaWRhdGlvbi1idWJibGUtaWNvbiIpOworICAgIGljb24tPnNldFBzZXVk
bygiLXdlYmtpdC12YWxpZGF0aW9uLWJ1YmJsZS1pY29uIik7CiAgICAgbWVzc2FnZS0+YXBwZW5k
Q2hpbGQoaWNvbi5yZWxlYXNlKCksIEFTU0VSVF9OT19FWENFUFRJT04pOwogICAgIFJlZlB0cjxI
VE1MRWxlbWVudD4gdGV4dEJsb2NrID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2MpOwotICAg
IHRleHRCbG9jay0+c2V0U2hhZG93UHNldWRvSWQoIi13ZWJraXQtdmFsaWRhdGlvbi1idWJibGUt
dGV4dC1ibG9jayIpOworICAgIHRleHRCbG9jay0+c2V0UHNldWRvKCItd2Via2l0LXZhbGlkYXRp
b24tYnViYmxlLXRleHQtYmxvY2siKTsKICAgICBtX21lc3NhZ2VIZWFkaW5nID0gSFRNTERpdkVs
ZW1lbnQ6OmNyZWF0ZShkb2MpOwotICAgIG1fbWVzc2FnZUhlYWRpbmctPnNldFNoYWRvd1BzZXVk
b0lkKCItd2Via2l0LXZhbGlkYXRpb24tYnViYmxlLWhlYWRpbmciKTsKKyAgICBtX21lc3NhZ2VI
ZWFkaW5nLT5zZXRQc2V1ZG8oIi13ZWJraXQtdmFsaWRhdGlvbi1idWJibGUtaGVhZGluZyIpOwog
ICAgIHRleHRCbG9jay0+YXBwZW5kQ2hpbGQobV9tZXNzYWdlSGVhZGluZywgQVNTRVJUX05PX0VY
Q0VQVElPTik7CiAgICAgbV9tZXNzYWdlQm9keSA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9j
KTsKLSAgICBtX21lc3NhZ2VCb2R5LT5zZXRTaGFkb3dQc2V1ZG9JZCgiLXdlYmtpdC12YWxpZGF0
aW9uLWJ1YmJsZS1ib2R5Iik7CisgICAgbV9tZXNzYWdlQm9keS0+c2V0UHNldWRvKCItd2Via2l0
LXZhbGlkYXRpb24tYnViYmxlLWJvZHkiKTsKICAgICB0ZXh0QmxvY2stPmFwcGVuZENoaWxkKG1f
bWVzc2FnZUJvZHksIEFTU0VSVF9OT19FWENFUFRJT04pOwogICAgIG1lc3NhZ2UtPmFwcGVuZENo
aWxkKHRleHRCbG9jay5yZWxlYXNlKCksIEFTU0VSVF9OT19FWENFUFRJT04pOwogICAgIG1fYnVi
YmxlLT5hcHBlbmRDaGlsZChtZXNzYWdlLnJlbGVhc2UoKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQu
Y3BwCmluZGV4IDlhZTNlNzM5ZmFkN2YxZjUzNDBjZjZjOWEwZTFjZWVlMWVkMzczOTYuLmVjM2Ex
OTNhMDJjYjI2ZTFkNGI5YTQzMTljOWVlNmY2Nzc4OGJlYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuY3BwCkBAIC0yMzUsNyArMjM1
LDcgQEAgdm9pZCBEYXRlVGltZUVkaXRCdWlsZGVyOjp2aXNpdExpdGVyYWwoY29uc3QgU3RyaW5n
JiB0ZXh0KQogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCB0ZXh0UHNldWRv
SWQsICgiLXdlYmtpdC1kYXRldGltZS1lZGl0LXRleHQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKSk7CiAgICAgQVNTRVJUKHRleHQubGVuZ3RoKCkpOwogICAgIFJlZlB0cjxI
VE1MRGl2RWxlbWVudD4gZWxlbWVudCA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUobV9lZGl0RWxl
bWVudC5kb2N1bWVudCgpKTsKLSAgICBlbGVtZW50LT5zZXRTaGFkb3dQc2V1ZG9JZCh0ZXh0UHNl
dWRvSWQpOworICAgIGVsZW1lbnQtPnNldFBzZXVkbyh0ZXh0UHNldWRvSWQpOwogICAgIGVsZW1l
bnQtPmFwcGVuZENoaWxkKFRleHQ6OmNyZWF0ZShtX2VkaXRFbGVtZW50LmRvY3VtZW50KCksIHRl
eHQpKTsKICAgICBtX2VkaXRFbGVtZW50LmFwcGVuZENoaWxkKGVsZW1lbnQpOwogfQpAQCAtMjUx
LDcgKzI1MSw3IEBAIERhdGVUaW1lRWRpdEVsZW1lbnQ6OkRhdGVUaW1lRWRpdEVsZW1lbnQoRG9j
dW1lbnQqIGRvY3VtZW50LCBFZGl0Q29udHJvbE93bmVyJiBlCiAgICAgLCBtX2VkaXRDb250cm9s
T3duZXIoJmVkaXRDb250cm9sT3duZXIpCiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9t
aWNTdHJpbmcsIGRhdGVUaW1lRWRpdFBzZXVkb0lkLCAoIi13ZWJraXQtZGF0ZXRpbWUtZWRpdCIp
KTsKLSAgICBzZXRTaGFkb3dQc2V1ZG9JZChkYXRlVGltZUVkaXRQc2V1ZG9JZCk7CisgICAgc2V0
UHNldWRvKGRhdGVUaW1lRWRpdFBzZXVkb0lkKTsKIH0KIAogRGF0ZVRpbWVFZGl0RWxlbWVudDo6
fkRhdGVUaW1lRWRpdEVsZW1lbnQoKQpAQCAtMzk2LDcgKzM5Niw3IEBAIHZvaWQgRGF0ZVRpbWVF
ZGl0RWxlbWVudDo6bGF5b3V0KGNvbnN0IExheW91dFBhcmFtZXRlcnMmIGxheW91dFBhcmFtZXRl
cnMsIGNvbnN0CiB7CiAgICAgc2l6ZV90IGZvY3VzZWRGaWVsZEluZGV4ID0gdGhpcy0+Zm9jdXNl
ZEZpZWxkSW5kZXgoKTsKICAgICBEYXRlVGltZUZpZWxkRWxlbWVudCogY29uc3QgZm9jdXNlZEZp
ZWxkID0gZmllbGRBdChmb2N1c2VkRmllbGRJbmRleCk7Ci0gICAgY29uc3QgQXRvbWljU3RyaW5n
IGZvY3VzZWRGaWVsZElkID0gZm9jdXNlZEZpZWxkID8gZm9jdXNlZEZpZWxkLT5zaGFkb3dQc2V1
ZG9JZCgpIDogbnVsbEF0b207CisgICAgY29uc3QgQXRvbWljU3RyaW5nIGZvY3VzZWRGaWVsZElk
ID0gZm9jdXNlZEZpZWxkID8gZm9jdXNlZEZpZWxkLT5wc2V1ZG8oKSA6IG51bGxBdG9tOwogCiAg
ICAgRGF0ZVRpbWVFZGl0QnVpbGRlciBidWlsZGVyKCp0aGlzLCBsYXlvdXRQYXJhbWV0ZXJzLCBk
YXRlVmFsdWUpOwogICAgIE5vZGUqIGxhc3RDaGlsZFRvQmVSZW1vdmVkID0gbGFzdENoaWxkKCk7
CkBAIC00MDcsNyArNDA3LDcgQEAgdm9pZCBEYXRlVGltZUVkaXRFbGVtZW50OjpsYXlvdXQoY29u
c3QgTGF5b3V0UGFyYW1ldGVycyYgbGF5b3V0UGFyYW1ldGVycywgY29uc3QKIAogICAgIGlmIChm
b2N1c2VkRmllbGRJbmRleCAhPSBpbnZhbGlkRmllbGRJbmRleCkgewogICAgICAgICBmb3IgKHNp
emVfdCBmaWVsZEluZGV4ID0gMDsgZmllbGRJbmRleCA8IG1fZmllbGRzLnNpemUoKTsgKytmaWVs
ZEluZGV4KSB7Ci0gICAgICAgICAgICBpZiAobV9maWVsZHNbZmllbGRJbmRleF0tPnNoYWRvd1Bz
ZXVkb0lkKCkgPT0gZm9jdXNlZEZpZWxkSWQpIHsKKyAgICAgICAgICAgIGlmIChtX2ZpZWxkc1tm
aWVsZEluZGV4XS0+cHNldWRvKCkgPT0gZm9jdXNlZEZpZWxkSWQpIHsKICAgICAgICAgICAgICAg
ICBmb2N1c2VkRmllbGRJbmRleCA9IGZpZWxkSW5kZXg7CiAgICAgICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9E
YXRlVGltZUZpZWxkRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRl
VGltZUZpZWxkRWxlbWVudC5jcHAKaW5kZXggNjUxMmFjMWNiMzVkNTBiNmFkOTQ3OGUzODRmMzMz
Y2JjZjZhM2Y5Yy4uODVhNmU3OGNhMTUyMjllZjBhMzU2NzM3Nzk3MDI1NmNjNDE2Yzc5NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50
LmNwcApAQCAtMTM1LDEyICsxMzUsMTIgQEAgdm9pZCBEYXRlVGltZUZpZWxkRWxlbWVudDo6Zm9j
dXNPbk5leHRGaWVsZCgpCiAgICAgbV9maWVsZE93bmVyLT5mb2N1c09uTmV4dEZpZWxkKCp0aGlz
KTsKIH0KIAotdm9pZCBEYXRlVGltZUZpZWxkRWxlbWVudDo6aW5pdGlhbGl6ZShjb25zdCBBdG9t
aWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkLCBjb25zdCBTdHJpbmcmIGF4SGVscFRleHQpCit2b2lk
IERhdGVUaW1lRmllbGRFbGVtZW50Ojppbml0aWFsaXplKGNvbnN0IEF0b21pY1N0cmluZyYgcHNl
dWRvLCBjb25zdCBTdHJpbmcmIGF4SGVscFRleHQpCiB7CiAgICAgc2V0QXR0cmlidXRlKGFyaWFf
aGVscEF0dHIsIGF4SGVscFRleHQpOwogICAgIHNldEF0dHJpYnV0ZShhcmlhX3ZhbHVlbWluQXR0
ciwgU3RyaW5nOjpudW1iZXIobWluaW11bSgpKSk7CiAgICAgc2V0QXR0cmlidXRlKGFyaWFfdmFs
dWVtYXhBdHRyLCBTdHJpbmc6Om51bWJlcihtYXhpbXVtKCkpKTsKLSAgICBzZXRTaGFkb3dQc2V1
ZG9JZChzaGFkb3dQc2V1ZG9JZCk7CisgICAgc2V0UHNldWRvKHBzZXVkbyk7CiAgICAgYXBwZW5k
Q2hpbGQoVGV4dDo6Y3JlYXRlKGRvY3VtZW50KCksIHZpc2libGVWYWx1ZSgpKSk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudC5oCmlu
ZGV4IGM5MjZjYmUxMWU0NTFkMTFjNzQzYmExZDk5NzM0YzE0MDc2MDdkMmQuLjY0OTczNDU3M2Fh
MWUzNDlkZGFiOTBkNWUwNjUxMDk0MDYxMjM4MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnQuaApAQCAtODEsNyArODEsNyBAQCBwcm90
ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIGRpZEZvY3VzKCk7CiAgICAgdm9pZCBmb2N1c09uTmV4
dEZpZWxkKCk7CiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZUtleWJvYXJkRXZlbnQoS2V5Ym9hcmRF
dmVudCopID0gMDsKLSAgICB2b2lkIGluaXRpYWxpemUoY29uc3QgQXRvbWljU3RyaW5nJiBzaGFk
b3dQc2V1ZG9JZCwgY29uc3QgU3RyaW5nJiBheEhlbHBUZXh0KTsKKyAgICB2b2lkIGluaXRpYWxp
emUoY29uc3QgQXRvbWljU3RyaW5nJiBwc2V1ZG8sIGNvbnN0IFN0cmluZyYgYXhIZWxwVGV4dCk7
CiAgICAgQXRvbWljU3RyaW5nIGxvY2FsZUlkZW50aWZpZXIoKSBjb25zdDsKICAgICB2aXJ0dWFs
IGludCBtYXhpbXVtKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgaW50IG1pbmltdW0oKSBjb25z
dCA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EZXRhaWxzTWFy
a2VyQ29udHJvbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EZXRhaWxzTWFya2Vy
Q29udHJvbC5jcHAKaW5kZXggYjEwOWVmOGViNmRlNzEyMGY0MjY1OTViOGFiNTVkOGY5MjM5NWUy
NS4uOWVkZmExZGM0Nzk0NzQ0YzljOTI1ODE1NGUyMTI5MzgyYjA0MzYxMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RldGFpbHNNYXJrZXJDb250cm9sLmNwcApAQCAt
NTUsNyArNTUsNyBAQCBib29sIERldGFpbHNNYXJrZXJDb250cm9sOjpyZW5kZXJlcklzTmVlZGVk
KGNvbnN0IE5vZGVSZW5kZXJpbmdDb250ZXh0JiBjb250ZXh0KQogICAgIHJldHVybiBzdW1tYXJ5
RWxlbWVudCgpLT5pc01haW5TdW1tYXJ5KCkgJiYgSFRNTERpdkVsZW1lbnQ6OnJlbmRlcmVySXNO
ZWVkZWQoY29udGV4dCk7CiB9CiAKLWNvbnN0IEF0b21pY1N0cmluZyYgRGV0YWlsc01hcmtlckNv
bnRyb2w6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKK2NvbnN0IEF0b21pY1N0cmluZyYgRGV0YWls
c01hcmtlckNvbnRyb2w6OnBzZXVkbygpIGNvbnN0CiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NB
TChBdG9taWNTdHJpbmcsIHBzZXVkSWQsICgiLXdlYmtpdC1kZXRhaWxzLW1hcmtlciIpKTsKICAg
ICByZXR1cm4gcHNldWRJZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L0RldGFpbHNNYXJrZXJDb250cm9sLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EZXRh
aWxzTWFya2VyQ29udHJvbC5oCmluZGV4IDFhYTE0Y2FiM2RkMTc5YWMxNGJmMzE2OWE5ZmE0YTcz
NGI4NmE1ZmIuLmM4OGYzNWEzNTkyNjhjMjQ2ZWQ5NjFlYTcyOTJiZmJkNWUwOWMyYTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RldGFpbHNNYXJrZXJDb250cm9sLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wuaApA
QCAtNDYsNyArNDYsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHZpcnR1YWwgUmVuZGVyT2Jq
ZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSosIFJlbmRlclN0eWxlKik7CiAgICAgdmly
dHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgTm9kZVJlbmRlcmluZ0NvbnRleHQmKTsK
LSAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdDsK
KyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgcHNldWRvKCkgY29uc3Q7CiAKICAgICBI
VE1MU3VtbWFyeUVsZW1lbnQqIHN1bW1hcnlFbGVtZW50KCk7CiB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSW1hZ2VJbm5lckVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvSW1hZ2VJbm5lckVsZW1lbnQuY3BwCmluZGV4IGIyM2Q2YjFhNWY0
MGUyMWY5NzNmNzJjM2Y4OGQ1ZjZhY2Q4YmZiMjQuLjgwZGUyOTU5ODc1M2U1MmQyMzE0OWFhZjE2
YjM1YjJjNTk5ZGMzMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0lt
YWdlSW5uZXJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9JbWFn
ZUlubmVyRWxlbWVudC5jcHAKQEAgLTY4LDcgKzY4LDcgQEAgUmVuZGVyT2JqZWN0KiBJbWFnZUlu
bmVyRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5kZXJTdHls
ZSoKICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXJGb3JJbWFnZSh0aGlzLCBhcmVuYSk7CiB9CiAK
LWNvbnN0IEF0b21pY1N0cmluZyYgSW1hZ2VJbm5lckVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkg
Y29uc3QKK2NvbnN0IEF0b21pY1N0cmluZyYgSW1hZ2VJbm5lckVsZW1lbnQ6OnBzZXVkbygpIGNv
bnN0CiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHBzZXVkb0lkLCAo
Ii13ZWJraXQtaW1hZ2UtaW5uZXItZWxlbWVudCIpKTsKICAgICByZXR1cm4gcHNldWRvSWQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9JbWFnZUlubmVyRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSW1hZ2VJbm5lckVsZW1lbnQuaAppbmRleCA1
NTNkNDQzODUxN2FiN2RiZTdiOTcyMDAzNTU5NWRmMzZkOWUzNDMxLi5lMDAxNmZmNmQ4NDBiNDQ5
ZWRmYmFjZWViZDU4YTRiMDFiZmE1Y2IxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9JbWFnZUlubmVyRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L0ltYWdlSW5uZXJFbGVtZW50LmgKQEAgLTU2LDcgKzU2LDcgQEAgcHJpdmF0ZToKIAogICAg
IHZpcnR1YWwgYm9vbCBjYW5TdGFydFNlbGVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CiAKLSAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25z
dCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgcHNldWRvKCkgY29u
c3QgT1ZFUlJJREU7CiB9OwogCiBpbmxpbmUgUGFzc1JlZlB0cjxJbWFnZUlubmVyRWxlbWVudD4g
SW1hZ2VJbm5lckVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKaW5kZXgg
OTA2NDY2MDEzZjhiM2E5ZGQ2YjI4YmQ0NjM3YjJmYzI1MjI5MjllYy4uMTQxYzMwM2ViMTJkZmQw
OWMwMzBlMDU2YjA1MzkxYTQ5MzU3ZjRlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcApAQCAtMTM2LDcgKzEzNiw3IEBAIE1l
ZGlhQ29udHJvbEVsZW1lbnRUeXBlIE1lZGlhQ29udHJvbFBhbmVsRWxlbWVudDo6ZGlzcGxheVR5
cGUoKSBjb25zdAogICAgIHJldHVybiBNZWRpYUNvbnRyb2xzUGFuZWw7CiB9CiAKLWNvbnN0IEF0
b21pY1N0cmluZyYgTWVkaWFDb250cm9sUGFuZWxFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNv
bnN0Citjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbFBhbmVsRWxlbWVudDo6cHNldWRv
KCkgY29uc3QKIHsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgi
LXdlYmtpdC1tZWRpYS1jb250cm9scy1wYW5lbCIpKTsKICAgICByZXR1cm4gaWQ7CkBAIC0zMzIs
NyArMzMyLDcgQEAgTWVkaWFDb250cm9sRWxlbWVudFR5cGUgTWVkaWFDb250cm9sVGltZWxpbmVD
b250YWluZXJFbGVtZW50OjpkaXNwbGF5VHlwZSgpIGNvbnMKICAgICByZXR1cm4gTWVkaWFUaW1l
bGluZUNvbnRhaW5lcjsKIH0KIAotY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xUaW1l
bGluZUNvbnRhaW5lckVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKK2NvbnN0IEF0b21p
Y1N0cmluZyYgTWVkaWFDb250cm9sVGltZWxpbmVDb250YWluZXJFbGVtZW50Ojpwc2V1ZG8oKSBj
b25zdAogewogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Vi
a2l0LW1lZGlhLWNvbnRyb2xzLXRpbWVsaW5lLWNvbnRhaW5lciIpKTsKICAgICByZXR1cm4gaWQ7
CkBAIC00MDgsNyArNDA4LDcgQEAgTWVkaWFDb250cm9sRWxlbWVudFR5cGUgTWVkaWFDb250cm9s
Vm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudDo6ZGlzcGxheVR5cGUoKQogICAgIHJldHVybiBN
ZWRpYVZvbHVtZVNsaWRlckNvbnRhaW5lcjsKIH0KIAotY29uc3QgQXRvbWljU3RyaW5nJiBNZWRp
YUNvbnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNv
bnN0Citjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5l
ckVsZW1lbnQ6OnBzZXVkbygpIGNvbnN0CiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9t
aWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRlci1jb250
YWluZXIiKSk7CiAgICAgcmV0dXJuIGlkOwpAQCAtNDY5LDcgKzQ2OSw3IEBAIE1lZGlhQ29udHJv
bEVsZW1lbnRUeXBlIE1lZGlhQ29udHJvbFN0YXR1c0Rpc3BsYXlFbGVtZW50OjpkaXNwbGF5VHlw
ZSgpIGNvbnN0CiAgICAgcmV0dXJuIE1lZGlhU3RhdHVzRGlzcGxheTsKIH0KIAotY29uc3QgQXRv
bWljU3RyaW5nJiBNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5RWxlbWVudDo6c2hhZG93UHNldWRv
SWQoKSBjb25zdAorY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5
RWxlbWVudDo6cHNldWRvKCkgY29uc3QKIHsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21p
Y1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1zdGF0dXMtZGlzcGxheSIpKTsK
ICAgICByZXR1cm4gaWQ7CkBAIC01NTgsNyArNTU4LDcgQEAgdm9pZCBNZWRpYUNvbnRyb2xQYW5l
bE11dGVCdXR0b25FbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKICAg
ICBNZWRpYUNvbnRyb2xNdXRlQnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihldmVu
dCk7CiB9CiAKLWNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sUGFuZWxNdXRlQnV0dG9u
RWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAorY29uc3QgQXRvbWljU3RyaW5nJiBNZWRp
YUNvbnRyb2xQYW5lbE11dGVCdXR0b25FbGVtZW50Ojpwc2V1ZG8oKSBjb25zdAogewogICAgIERF
RklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRy
b2xzLW11dGUtYnV0dG9uIikpOwogICAgIHJldHVybiBpZDsKQEAgLTU3OSw3ICs1NzksNyBAQCBQ
YXNzUmVmUHRyPE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlck11dGVCdXR0b25FbGVtZW50PiBNZWRp
YUNvbnRyb2xWb2x1bWVTbGlkZXJNdQogICAgIHJldHVybiBidXR0b24ucmVsZWFzZSgpOwogfQog
Ci1jb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlck11dGVCdXR0b25F
bGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0Citjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlh
Q29udHJvbFZvbHVtZVNsaWRlck11dGVCdXR0b25FbGVtZW50Ojpwc2V1ZG8oKSBjb25zdAogewog
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlh
LWNvbnRyb2xzLXZvbHVtZS1zbGlkZXItbXV0ZS1idXR0b24iKSk7CiAgICAgcmV0dXJuIGlkOwpA
QCAtNjE4LDcgKzYxOCw3IEBAIHZvaWQgTWVkaWFDb250cm9sUGxheUJ1dHRvbkVsZW1lbnQ6OnVw
ZGF0ZURpc3BsYXlUeXBlKCkKICAgICBzZXREaXNwbGF5VHlwZShtZWRpYUNvbnRyb2xsZXIoKS0+
Y2FuUGxheSgpID8gTWVkaWFQbGF5QnV0dG9uIDogTWVkaWFQYXVzZUJ1dHRvbik7CiB9CiAKLWNv
bnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sUGxheUJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1Bz
ZXVkb0lkKCkgY29uc3QKK2NvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sUGxheUJ1dHRv
bkVsZW1lbnQ6OnBzZXVkbygpIGNvbnN0CiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9t
aWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGxheS1idXR0b24iKSk7CiAg
ICAgcmV0dXJuIGlkOwpAQCAtNjU4LDcgKzY1OCw3IEBAIHZvaWQgTWVkaWFDb250cm9sT3Zlcmxh
eVBsYXlCdXR0b25FbGVtZW50Ojp1cGRhdGVEaXNwbGF5VHlwZSgpCiAgICAgICAgIGhpZGUoKTsK
IH0KIAotY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xPdmVybGF5UGxheUJ1dHRvbkVs
ZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKK2NvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFD
b250cm9sT3ZlcmxheVBsYXlCdXR0b25FbGVtZW50Ojpwc2V1ZG8oKSBjb25zdAogewogICAgIERF
RklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRy
b2xzLW92ZXJsYXktcGxheS1idXR0b24iKSk7CiAgICAgcmV0dXJuIGlkOwpAQCAtNzYwLDcgKzc2
MCw3IEBAIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sU2Vla0ZvcndhcmRCdXR0b25FbGVtZW50PiBN
ZWRpYUNvbnRyb2xTZWVrRm9yd2FyZEJ1dHRvbkVsCiAgICAgcmV0dXJuIGJ1dHRvbi5yZWxlYXNl
KCk7CiB9CiAKLWNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sU2Vla0ZvcndhcmRCdXR0
b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0Citjb25zdCBBdG9taWNTdHJpbmcmIE1l
ZGlhQ29udHJvbFNlZWtGb3J3YXJkQnV0dG9uRWxlbWVudDo6cHNldWRvKCkgY29uc3QKIHsKICAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1j
b250cm9scy1zZWVrLWZvcndhcmQtYnV0dG9uIikpOwogICAgIHJldHVybiBpZDsKQEAgLTc4MSw3
ICs3ODEsNyBAQCBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFNlZWtCYWNrQnV0dG9uRWxlbWVudD4g
TWVkaWFDb250cm9sU2Vla0JhY2tCdXR0b25FbGVtZW50OgogICAgIHJldHVybiBidXR0b24ucmVs
ZWFzZSgpOwogfQogCi1jb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbFNlZWtCYWNrQnV0
dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAorY29uc3QgQXRvbWljU3RyaW5nJiBN
ZWRpYUNvbnRyb2xTZWVrQmFja0J1dHRvbkVsZW1lbnQ6OnBzZXVkbygpIGNvbnN0CiB7CiAgICAg
REVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29u
dHJvbHMtc2Vlay1iYWNrLWJ1dHRvbiIpKTsKICAgICByZXR1cm4gaWQ7CkBAIC04MTIsNyArODEy
LDcgQEAgdm9pZCBNZWRpYUNvbnRyb2xSZXdpbmRCdXR0b25FbGVtZW50OjpkZWZhdWx0RXZlbnRI
YW5kbGVyKEV2ZW50KiBldmVudCkKICAgICBIVE1MSW5wdXRFbGVtZW50OjpkZWZhdWx0RXZlbnRI
YW5kbGVyKGV2ZW50KTsKIH0KIAotY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xSZXdp
bmRCdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0Citjb25zdCBBdG9taWNTdHJp
bmcmIE1lZGlhQ29udHJvbFJld2luZEJ1dHRvbkVsZW1lbnQ6OnBzZXVkbygpIGNvbnN0CiB7CiAg
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEt
Y29udHJvbHMtcmV3aW5kLWJ1dHRvbiIpKTsKICAgICByZXR1cm4gaWQ7CkBAIC04NDMsNyArODQz
LDcgQEAgdm9pZCBNZWRpYUNvbnRyb2xSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uRWxlbWVudDo6ZGVm
YXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQKICAgICBIVE1MSW5wdXRFbGVtZW50OjpkZWZh
dWx0RXZlbnRIYW5kbGVyKGV2ZW50KTsKIH0KIAotY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNv
bnRyb2xSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25z
dAorY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xSZXR1cm5Ub1JlYWx0aW1lQnV0dG9u
RWxlbWVudDo6cHNldWRvKCkgY29uc3QKIHsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21p
Y1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1yZXR1cm4tdG8tcmVhbHRpbWUt
YnV0dG9uIikpOwogICAgIHJldHVybiBpZDsKQEAgLTg4Miw3ICs4ODIsNyBAQCB2b2lkIE1lZGlh
Q29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudDo6dXBkYXRlRGlzcGxheVR5
cGUoKQogICAgIHNldERpc3BsYXlUeXBlKG1lZGlhQ29udHJvbGxlcigpLT5jbG9zZWRDYXB0aW9u
c1Zpc2libGUoKSA/IE1lZGlhSGlkZUNsb3NlZENhcHRpb25zQnV0dG9uIDogTWVkaWFTaG93Q2xv
c2VkQ2FwdGlvbnNCdXR0b24pOwogfQogCi1jb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJv
bFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25z
dAorY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1
dHRvbkVsZW1lbnQ6OnBzZXVkbygpIGNvbnN0CiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChB
dG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtdG9nZ2xlLWNsb3NlZC1j
YXB0aW9ucy1idXR0b24iKSk7CiAgICAgcmV0dXJuIGlkOwpAQCAtOTU3LDcgKzk1Nyw3IEBAIHZv
aWQgTWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50OjpzZXREdXJhdGlvbihmbG9hdCBkdXJhdGlv
bikKIH0KIAogCi1jb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVu
dDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAorY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRy
b2xUaW1lbGluZUVsZW1lbnQ6OnBzZXVkbygpIGNvbnN0CiB7CiAgICAgREVGSU5FX1NUQVRJQ19M
T0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZWxpbmUi
KSk7CiAgICAgcmV0dXJuIGlkOwpAQCAtMTAzMiw3ICsxMDMyLDcgQEAgdm9pZCBNZWRpYUNvbnRy
b2xWb2x1bWVTbGlkZXJFbGVtZW50OjpzZXRDbGVhck11dGVkT25Vc2VySW50ZXJhY3Rpb24oYm9v
bCBjbGVhck0KICAgICBtX2NsZWFyTXV0ZWRPblVzZXJJbnRlcmFjdGlvbiA9IGNsZWFyTXV0ZTsK
IH0KIAotY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50
OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0Citjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJv
bFZvbHVtZVNsaWRlckVsZW1lbnQ6OnBzZXVkbygpIGNvbnN0CiB7CiAgICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1l
LXNsaWRlciIpKTsKICAgICByZXR1cm4gaWQ7CkBAIC0xMDU1LDcgKzEwNTUsNyBAQCBQYXNzUmVm
UHRyPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVTbGlkZXJFbGVtZW50PiBNZWRpYUNvbnRy
b2xGdWxsc2NyZWVuVm9sdQogICAgIHJldHVybiBzbGlkZXIucmVsZWFzZSgpOwogfQogCi1jb25z
dCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVTbGlkZXJFbGVtZW50
OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0Citjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJv
bEZ1bGxzY3JlZW5Wb2x1bWVTbGlkZXJFbGVtZW50Ojpwc2V1ZG8oKSBjb25zdAogewogICAgIERF
RklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRy
b2xzLWZ1bGxzY3JlZW4tdm9sdW1lLXNsaWRlciIpKTsKICAgICByZXR1cm4gaWQ7CkBAIC0xMTAx
LDcgKzExMDEsNyBAQCB2b2lkIE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50Ojpk
ZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKICAgICBIVE1MSW5wdXRFbGVtZW50Ojpk
ZWZhdWx0RXZlbnRIYW5kbGVyKGV2ZW50KTsKIH0KIAotY29uc3QgQXRvbWljU3RyaW5nJiBNZWRp
YUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAor
Y29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudDo6
cHNldWRvKCkgY29uc3QKIHsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywg
aWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1mdWxsc2NyZWVuLWJ1dHRvbiIpKTsKICAgICBy
ZXR1cm4gaWQ7CkBAIC0xMTM3LDcgKzExMzcsNyBAQCB2b2lkIE1lZGlhQ29udHJvbEZ1bGxzY3Jl
ZW5Wb2x1bWVNaW5CdXR0b25FbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldgog
ICAgIEhUTUxJbnB1dEVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoZXZlbnQpOwogfQogCi1j
b25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNaW5CdXR0b25F
bGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0Citjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlh
Q29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNaW5CdXR0b25FbGVtZW50Ojpwc2V1ZG8oKSBjb25zdAog
ewogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1l
ZGlhLWNvbnRyb2xzLWZ1bGxzY3JlZW4tdm9sdW1lLW1pbi1idXR0b24iKSk7CiAgICAgcmV0dXJu
IGlkOwpAQCAtMTE2OCw3ICsxMTY4LDcgQEAgdm9pZCBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9s
dW1lTWF4QnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXYKICAgICBI
VE1MSW5wdXRFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKGV2ZW50KTsKIH0KIAotY29uc3Qg
QXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWF4QnV0dG9uRWxlbWVu
dDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAorY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRy
b2xGdWxsc2NyZWVuVm9sdW1lTWF4QnV0dG9uRWxlbWVudDo6cHNldWRvKCkgY29uc3QKIHsKICAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1j
b250cm9scy1mdWxsc2NyZWVuLXZvbHVtZS1tYXgtYnV0dG9uIikpOwogICAgIHJldHVybiBpZDsK
QEAgLTEyMzcsNyArMTIzNyw3IEBAIE1lZGlhQ29udHJvbEVsZW1lbnRUeXBlIE1lZGlhQ29udHJv
bFRpbWVSZW1haW5pbmdEaXNwbGF5RWxlbWVudDo6ZGlzcGxheVR5cGUoKSBjCiAgICAgcmV0dXJu
IE1lZGlhVGltZVJlbWFpbmluZ0Rpc3BsYXk7CiB9CiAKLWNvbnN0IEF0b21pY1N0cmluZyYgTWVk
aWFDb250cm9sVGltZVJlbWFpbmluZ0Rpc3BsYXlFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNv
bnN0Citjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbFRpbWVSZW1haW5pbmdEaXNwbGF5
RWxlbWVudDo6cHNldWRvKCkgY29uc3QKIHsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21p
Y1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy10aW1lLXJlbWFpbmluZy1kaXNw
bGF5IikpOwogICAgIHJldHVybiBpZDsKQEAgLTEyNjAsNyArMTI2MCw3IEBAIE1lZGlhQ29udHJv
bEVsZW1lbnRUeXBlIE1lZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlzcGxheUVsZW1lbnQ6OmRpc3Bs
YXlUeXBlKCkgY29uCiAgICAgcmV0dXJuIE1lZGlhQ3VycmVudFRpbWVEaXNwbGF5OwogfQogCi1j
b25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlzcGxheUVsZW1lbnQ6
OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKK2NvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9s
Q3VycmVudFRpbWVEaXNwbGF5RWxlbWVudDo6cHNldWRvKCkgY29uc3QKIHsKICAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1j
dXJyZW50LXRpbWUtZGlzcGxheSIpKTsKICAgICByZXR1cm4gaWQ7CkBAIC0xMzEzLDcgKzEzMTMs
NyBAQCBSZW5kZXJPYmplY3QqIE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6
OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKgogICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5k
ZXJUZXh0VHJhY2tDb250YWluZXJFbGVtZW50KHRoaXMpOwogfQogCi1jb25zdCBBdG9taWNTdHJp
bmcmIE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lk
KCkgY29uc3QKK2NvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFp
bmVyRWxlbWVudDo6cHNldWRvKCkgY29uc3QKIHsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0
b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLWNvbnRhaW5lciIpKTsK
ICAgICByZXR1cm4gaWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9N
ZWRpYUNvbnRyb2xFbGVtZW50cy5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFD
b250cm9sRWxlbWVudHMuaAppbmRleCA2NmNiMmRhNmJiNWI5NDQxYjhlMWJkYTQ4MWMzNTdmNDNl
YzNjMzFjLi42MDgzOWJlNDFhOGJlYjlhY2M4NjNlNzUyYTllM2JiY2IzOWI5OWRjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmgKQEAg
LTEyMiw3ICsxMjIsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIE1lZGlhQ29udHJvbFBhbmVs
RWxlbWVudChEb2N1bWVudCopOwogICAgIHZpcnR1YWwgTWVkaWFDb250cm9sRWxlbWVudFR5cGUg
ZGlzcGxheVR5cGUoKSBjb25zdDsKLSAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hh
ZG93UHNldWRvSWQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgcHNl
dWRvKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQq
KTsKIAogICAgIHZvaWQgc3RhcnREcmFnKGNvbnN0IExheW91dFBvaW50JiBldmVudExvY2F0aW9u
KTsKQEAgLTE1Myw3ICsxNTMsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgTWVkaWFDb250
cm9sVGltZWxpbmVDb250YWluZXJFbGVtZW50KERvY3VtZW50Kik7Ci0gICAgdmlydHVhbCBjb25z
dCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3Q7CisgICAgdmlydHVhbCBjb25z
dCBBdG9taWNTdHJpbmcmIHBzZXVkbygpIGNvbnN0OwogCiAgICAgdmlydHVhbCBNZWRpYUNvbnRy
b2xFbGVtZW50VHlwZSBkaXNwbGF5VHlwZSgpIGNvbnN0OwogfTsKQEAgLTE3MSw3ICsxNzEsNyBA
QCBwcml2YXRlOgogICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5k
ZXJBcmVuYSosIFJlbmRlclN0eWxlKik7CiAgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhh
bmRsZXIoRXZlbnQqKTsKICAgICB2aXJ0dWFsIE1lZGlhQ29udHJvbEVsZW1lbnRUeXBlIGRpc3Bs
YXlUeXBlKCkgY29uc3Q7Ci0gICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1Bz
ZXVkb0lkKCkgY29uc3Q7CisgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHBzZXVkbygp
IGNvbnN0OwogfTsKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTg2LDcg
KzE4Niw3IEBAIHByaXZhdGU6CiAgICAgTWVkaWFDb250cm9sU3RhdHVzRGlzcGxheUVsZW1lbnQo
RG9jdW1lbnQqKTsKIAogICAgIHZpcnR1YWwgTWVkaWFDb250cm9sRWxlbWVudFR5cGUgZGlzcGxh
eVR5cGUoKSBjb25zdDsKLSAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNl
dWRvSWQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgcHNldWRvKCkg
Y29uc3Q7CiAKICAgICBlbnVtIFN0YXRlQmVpbmdEaXNwbGF5ZWQgeyBOb3RoaW5nLCBMb2FkaW5n
LCBMaXZlQnJvYWRjYXN0IH07CiAgICAgU3RhdGVCZWluZ0Rpc3BsYXllZCBtX3N0YXRlQmVpbmdE
aXNwbGF5ZWQ7CkBAIC0yNDYsNyArMjQ2LDcgQEAgcHJpdmF0ZToKICAgICBNZWRpYUNvbnRyb2xQ
YW5lbE11dGVCdXR0b25FbGVtZW50KERvY3VtZW50KiwgTWVkaWFDb250cm9scyopOwogCiAgICAg
dmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKTsKLSAgICB2aXJ0dWFsIGNv
bnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGNv
bnN0IEF0b21pY1N0cmluZyYgcHNldWRvKCkgY29uc3Q7CiAKICAgICBNZWRpYUNvbnRyb2xzKiBt
X2NvbnRyb2xzOwogfTsKQEAgLTI2MCw3ICsyNjAsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAg
IE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlck11dGVCdXR0b25FbGVtZW50KERvY3VtZW50Kik7CiAK
LSAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdDsK
KyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgcHNldWRvKCkgY29uc3Q7CiB9OwogCiAK
QEAgLTI3Nyw3ICsyNzcsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIE1lZGlhQ29udHJvbFBs
YXlCdXR0b25FbGVtZW50KERvY3VtZW50Kik7CiAKLSAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0
cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0
cmluZyYgcHNldWRvKCkgY29uc3Q7CiB9OwogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCkBAIC0yOTIsNyArMjkyLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBleHBsaWNpdCBN
ZWRpYUNvbnRyb2xPdmVybGF5UGxheUJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQqKTsKIAotICAgIHZp
cnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0OworICAgIHZp
cnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBwc2V1ZG8oKSBjb25zdDsKIH07CiAKIC8vIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTMzMCw3ICszMzAsNyBAQCBwcml2YXRlOgogICAg
IE1lZGlhQ29udHJvbFNlZWtGb3J3YXJkQnV0dG9uRWxlbWVudChEb2N1bWVudCopOwogCiAgICAg
dmlydHVhbCBib29sIGlzRm9yd2FyZEJ1dHRvbigpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KLSAg
ICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdDsKKyAg
ICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgcHNldWRvKCkgY29uc3Q7CiB9OwogCiAvLyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0zNDMsNyArMzQzLDcgQEAgcHJpdmF0ZToK
ICAgICBNZWRpYUNvbnRyb2xTZWVrQmFja0J1dHRvbkVsZW1lbnQoRG9jdW1lbnQqKTsKIAogICAg
IHZpcnR1YWwgYm9vbCBpc0ZvcndhcmRCdXR0b24oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQot
ICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0Owor
ICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBwc2V1ZG8oKSBjb25zdDsKIH07CiAKIC8v
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTM1OCw3ICszNTgsNyBAQCBwdWJsaWM6
CiBwcml2YXRlOgogICAgIE1lZGlhQ29udHJvbFJld2luZEJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQq
KTsKIAotICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNv
bnN0OworICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBwc2V1ZG8oKSBjb25zdDsKIH07
CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTM3Myw3ICszNzMsNyBAQCBw
dWJsaWM6CiBwcml2YXRlOgogICAgIE1lZGlhQ29udHJvbFJldHVyblRvUmVhbHRpbWVCdXR0b25F
bGVtZW50KERvY3VtZW50Kik7CiAKLSAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hh
ZG93UHNldWRvSWQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgcHNl
dWRvKCkgY29uc3Q7CiB9OyAgICAKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpA
QCAtMzg5LDcgKzM4OSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgTWVkaWFDb250cm9sVG9n
Z2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50KERvY3VtZW50Kik7CiAKLSAgICB2aXJ0dWFs
IGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdDsKKyAgICB2aXJ0dWFs
IGNvbnN0IEF0b21pY1N0cmluZyYgcHNldWRvKCkgY29uc3Q7CiB9OyAgICAKIAogLy8gLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNDA2LDcgKzQwNiw3IEBAIHB1YmxpYzoKIHByaXZh
dGU6CiAgICAgTWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50KERvY3VtZW50KiwgTWVkaWFDb250
cm9scyopOwogCi0gICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lk
KCkgY29uc3Q7CisgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHBzZXVkbygpIGNvbnN0
OwogCiAgICAgTWVkaWFDb250cm9scyogbV9jb250cm9sczsKIH07CkBAIC00MjcsNyArNDI3LDcg
QEAgcHJvdGVjdGVkOgogICAgIE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckVsZW1lbnQoRG9jdW1l
bnQqKTsKIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93
UHNldWRvSWQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgcHNldWRv
KCkgY29uc3Q7CiAgICAgYm9vbCBtX2NsZWFyTXV0ZWRPblVzZXJJbnRlcmFjdGlvbjsKIH07CiAK
QEAgLTQ0NCw3ICs0NDQsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIE1lZGlhQ29udHJvbEZ1
bGxzY3JlZW5CdXR0b25FbGVtZW50KERvY3VtZW50KiwgTWVkaWFDb250cm9scyopOwogCi0gICAg
dmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3Q7CisgICAg
dmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHBzZXVkbygpIGNvbnN0OwogfTsKIAogLy8gLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNDU2LDcgKzQ1Niw3IEBAIHB1YmxpYzoKIHBy
aXZhdGU6CiAgICAgTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZVNsaWRlckVsZW1lbnQoRG9j
dW1lbnQqKTsKICAgICAKLSAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNl
dWRvSWQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgcHNldWRvKCkg
Y29uc3Q7CiB9OwogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC00NzEsNyAr
NDcxLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9s
dW1lTWluQnV0dG9uRWxlbWVudChEb2N1bWVudCopOwogICAgIAotICAgIHZpcnR1YWwgY29uc3Qg
QXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0OworICAgIHZpcnR1YWwgY29uc3Qg
QXRvbWljU3RyaW5nJiBwc2V1ZG8oKSBjb25zdDsKIH07CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KQEAgLTQ4Niw3ICs0ODYsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIE1l
ZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNYXhCdXR0b25FbGVtZW50KERvY3VtZW50Kik7CiAg
ICAgCi0gICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29u
c3Q7CisgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHBzZXVkbygpIGNvbnN0OwogfTsK
IAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNTE1LDcgKzUxNSw3IEBAIHBy
aXZhdGU6CiAgICAgTWVkaWFDb250cm9sVGltZVJlbWFpbmluZ0Rpc3BsYXlFbGVtZW50KERvY3Vt
ZW50Kik7CiAKICAgICB2aXJ0dWFsIE1lZGlhQ29udHJvbEVsZW1lbnRUeXBlIGRpc3BsYXlUeXBl
KCkgY29uc3Q7Ci0gICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lk
KCkgY29uc3Q7CisgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHBzZXVkbygpIGNvbnN0
OwogfTsKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNTI4LDcgKzUyOCw3
IEBAIHByaXZhdGU6CiAgICAgTWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNwbGF5RWxlbWVudChE
b2N1bWVudCopOwogCiAgICAgdmlydHVhbCBNZWRpYUNvbnRyb2xFbGVtZW50VHlwZSBkaXNwbGF5
VHlwZSgpIGNvbnN0OwotICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1
ZG9JZCgpIGNvbnN0OworICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBwc2V1ZG8oKSBj
b25zdDsKIH07CiAgCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC01NDYsNyAr
NTQ2LDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5k
ZXJlcihSZW5kZXJBcmVuYSosIFJlbmRlclN0eWxlKik7CiAgICAgdmlydHVhbCBNZWRpYUNvbnRy
b2xFbGVtZW50VHlwZSBkaXNwbGF5VHlwZSgpIGNvbnN0IHsgcmV0dXJuIE1lZGlhVGV4dFRyYWNr
RGlzcGxheUNvbnRhaW5lcjsgfQotICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFk
b3dQc2V1ZG9JZCgpIGNvbnN0OworICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBwc2V1
ZG8oKSBjb25zdDsKIAogICAgIEludFJlY3QgbV92aWRlb0Rpc3BsYXlTaXplOwogICAgIGZsb2F0
IG1fZm9udFNpemU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRp
YUNvbnRyb2xSb290RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRp
YUNvbnRyb2xSb290RWxlbWVudC5jcHAKaW5kZXggZWY1NDFiYWEzM2IxZThiZGYwZjA5MzIyYzVm
ZTA5NzZiMjcxNzc4OC4uNGVlMGU3OTQ1NGE5NjdlZDllYjhhZGJjOGMyMjcyMTE4MjdmNDA3OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJv
b3RFbGVtZW50LmNwcApAQCAtNjU0LDcgKzY1NCw3IEBAIHZvaWQgTWVkaWFDb250cm9sUm9vdEVs
ZW1lbnQ6OnVwZGF0ZVRleHRUcmFja0Rpc3BsYXkoKQogfQogI2VuZGlmCiAKLWNvbnN0IEF0b21p
Y1N0cmluZyYgTWVkaWFDb250cm9sUm9vdEVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QK
K2NvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sUm9vdEVsZW1lbnQ6OnBzZXVkbygpIGNv
bnN0CiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJr
aXQtbWVkaWEtY29udHJvbHMiKSk7CiAgICAgcmV0dXJuIGlkOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50LmgKaW5kZXggYTBiMDlk
ODc0NWI3YWM2MWE3ZDU5NmQ0MWEyMzg5NjZiNjFmNGI0Yi4uODYzYmExYzVlZGM0Zjk3ZGZhMzZl
NDcyZTg4NjFkYjY5MDcyYzU3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudC5oCkBAIC0xMjQsNyArMTI0LDcgQEAgcHJpdmF0
ZToKICAgICB2b2lkIHN0YXJ0SGlkZUZ1bGxzY3JlZW5Db250cm9sc1RpbWVyKCk7CiAgICAgdm9p
ZCBzdG9wSGlkZUZ1bGxzY3JlZW5Db250cm9sc1RpbWVyKCk7CiAKLSAgICB2aXJ0dWFsIGNvbnN0
IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGNvbnN0
IEF0b21pY1N0cmluZyYgcHNldWRvKCkgY29uc3Q7CiAKICAgICBib29sIGNvbnRhaW5zUmVsYXRl
ZFRhcmdldChFdmVudCopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9NZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0uY3BwCmluZGV4IDZiMzkx
M2JiNmU1MjNhZjlkZjcyNjgzMWViODYwNmEzNDA2ODk0Y2EuLjIzNGE1Yjk1YzQ1MDBhNjRkOTVh
MGMwMjVmNjM4ZTFlODAxZjExN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0uY3BwCkBAIC02
OSw3ICs2OSw3IEBAIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sUGFuZWxFbmNsb3N1cmVFbGVtZW50
PiBNZWRpYUNvbnRyb2xQYW5lbEVuY2xvc3VyZUVsZW1lbnQ6CiAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBNZWRpYUNvbnRyb2xQYW5lbEVuY2xvc3VyZUVsZW1lbnQoZG9jdW1lbnQpKTsKIH0KIAot
Y29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xQYW5lbEVuY2xvc3VyZUVsZW1lbnQ6OnNo
YWRvd1BzZXVkb0lkKCkgY29uc3QKK2NvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sUGFu
ZWxFbmNsb3N1cmVFbGVtZW50Ojpwc2V1ZG8oKSBjb25zdAogewogICAgIERFRklORV9TVEFUSUNf
TE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLWVuY2xvc3Vy
ZSIpKTsKICAgICByZXR1cm4gaWQ7CkBAIC01MTcsNyArNTE3LDcgQEAgdm9pZCBNZWRpYUNvbnRy
b2xSb290RWxlbWVudENocm9taXVtOjp1cGRhdGVUZXh0VHJhY2tEaXNwbGF5KCkKIH0KICNlbmRp
ZgogCi1jb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06
OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKK2NvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9s
Um9vdEVsZW1lbnRDaHJvbWl1bTo6cHNldWRvKCkgY29uc3QKIHsKICAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scyIpKTsKICAg
ICByZXR1cm4gaWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRp
YUNvbnRyb2xSb290RWxlbWVudENocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9NZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtLmgKaW5kZXggOGMyMDYxMjMzMjY3Nzhj
OGU1ODc3Nzg5MDU4NzY1MjIxNDQwZDg3MC4uYWU3OGQzNDQ3NmYwYWZiMjE5ODQyNzA5NDYzOWUz
YTlmZmU4NTI1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFD
b250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0uaApAQCAtNzcsNyArNzcsNyBAQCBw
dWJsaWM6CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgTWVkaWFDb250cm9sUGFuZWxFbmNsb3N1
cmVFbGVtZW50KERvY3VtZW50Kik7Ci0gICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNo
YWRvd1BzZXVkb0lkKCkgY29uc3Q7CisgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHBz
ZXVkbygpIGNvbnN0OwogfTsKIAogY2xhc3MgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1
bSA6IHB1YmxpYyBNZWRpYUNvbnRyb2xzIHsKQEAgLTEzNSw3ICsxMzUsNyBAQCBwcml2YXRlOgog
ICAgIHZvaWQgc3RhcnRIaWRlRnVsbHNjcmVlbkNvbnRyb2xzVGltZXIoKTsKICAgICB2b2lkIHN0
b3BIaWRlRnVsbHNjcmVlbkNvbnRyb2xzVGltZXIoKTsKIAotICAgIHZpcnR1YWwgY29uc3QgQXRv
bWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0OworICAgIHZpcnR1YWwgY29uc3QgQXRv
bWljU3RyaW5nJiBwc2V1ZG8oKSBjb25zdDsKIAogICAgIGJvb2wgY29udGFpbnNSZWxhdGVkVGFy
Z2V0KEV2ZW50Kik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01l
ZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW1BbmRyb2lkLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW1BbmRyb2lkLmNwcApp
bmRleCA0NTYzNGE4NDc2ZGU4ZTRjNzhmMDNjODU5Mzg1MDI1NjJhZGZmZTMyLi41ZTg0NGU0YzUz
NWZhYTQ1YWNmNDBmNWNiMzEwYTkzYzYyNjgwMDk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtQW5kcm9pZC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRD
aHJvbWl1bUFuZHJvaWQuY3BwCkBAIC00Miw3ICs0Miw3IEBAIFBhc3NSZWZQdHI8TWVkaWFDb250
cm9sT3ZlcmxheUVuY2xvc3VyZUVsZW1lbnQ+IE1lZGlhQ29udHJvbE92ZXJsYXlFbmNsb3N1cmVF
bGVtCiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xPdmVybGF5RW5jbG9zdXJl
RWxlbWVudChkb2N1bWVudCkpOwogfQogCi1jb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJv
bE92ZXJsYXlFbmNsb3N1cmVFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0Citjb25zdCBB
dG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbE92ZXJsYXlFbmNsb3N1cmVFbGVtZW50Ojpwc2V1ZG8o
KSBjb25zdAogewogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCIt
d2Via2l0LW1lZGlhLWNvbnRyb2xzLW92ZXJsYXktZW5jbG9zdXJlIikpOwogICAgIHJldHVybiBp
ZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJv
b3RFbGVtZW50Q2hyb21pdW1BbmRyb2lkLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9N
ZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtQW5kcm9pZC5oCmluZGV4IDljNzc0ODNmOThl
MjI4NjBjMzc1YTg1ODQ3NTAwZTYxYTg0NGM3Y2QuLjgyOWMzNzI2OGRiMzc3ODJkNzU4OWYxMWU0
ZmM5ODgzZDFiOTUwZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01l
ZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW1BbmRyb2lkLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bUFuZHJvaWQuaApA
QCAtNDAsNyArNDAsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgTWVkaWFD
b250cm9sT3ZlcmxheUVuY2xvc3VyZUVsZW1lbnQoRG9jdW1lbnQqKTsKLSAgICB2aXJ0dWFsIGNv
bnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGNv
bnN0IEF0b21pY1N0cmluZyYgcHNldWRvKCkgY29uc3Q7CiB9OwogCiBjbGFzcyBNZWRpYUNvbnRy
b2xSb290RWxlbWVudENocm9taXVtQW5kcm9pZCA6IHB1YmxpYyBNZWRpYUNvbnRyb2xSb290RWxl
bWVudENocm9taXVtIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01l
dGVyU2hhZG93RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZXRlclNo
YWRvd0VsZW1lbnQuY3BwCmluZGV4IDQ0MWYwMTM5NzYzZjM0ZDU3NzE0YjM4MDMzN2RiNzU5ODc1
ZTU5YzYuLmMzOWFkMDJiYTMwMzgzZWE4NzU2ZmJmNzA2MjlkNDZjMDdkZjYxZTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01ldGVyU2hhZG93RWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWV0ZXJTaGFkb3dFbGVtZW50LmNwcApAQCAt
NzksMTkgKzc5LDE5IEBAIFJlbmRlck9iamVjdCogTWV0ZXJJbm5lckVsZW1lbnQ6OmNyZWF0ZVJl
bmRlcmVyKFJlbmRlckFyZW5hKiBhcmVuYSwgUmVuZGVyU3R5bGUqCiAgICAgcmV0dXJuIG5ldyAo
YXJlbmEpIFJlbmRlck1ldGVyKHRoaXMpOwogfQogCi1jb25zdCBBdG9taWNTdHJpbmcmIE1ldGVy
SW5uZXJFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0Citjb25zdCBBdG9taWNTdHJpbmcm
IE1ldGVySW5uZXJFbGVtZW50Ojpwc2V1ZG8oKSBjb25zdAogewogICAgIERFRklORV9TVEFUSUNf
TE9DQUwoQXRvbWljU3RyaW5nLCBwc2V1ZElkLCAoIi13ZWJraXQtbWV0ZXItaW5uZXItZWxlbWVu
dCIpKTsKICAgICByZXR1cm4gcHNldWRJZDsKIH0KIAotY29uc3QgQXRvbWljU3RyaW5nJiBNZXRl
ckJhckVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKK2NvbnN0IEF0b21pY1N0cmluZyYg
TWV0ZXJCYXJFbGVtZW50Ojpwc2V1ZG8oKSBjb25zdAogewogICAgIERFRklORV9TVEFUSUNfTE9D
QUwoQXRvbWljU3RyaW5nLCBwc2V1ZElkLCAoIi13ZWJraXQtbWV0ZXItYmFyIikpOwogICAgIHJl
dHVybiBwc2V1ZElkOwogfQogCi1jb25zdCBBdG9taWNTdHJpbmcmIE1ldGVyVmFsdWVFbGVtZW50
OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0Citjb25zdCBBdG9taWNTdHJpbmcmIE1ldGVyVmFsdWVF
bGVtZW50Ojpwc2V1ZG8oKSBjb25zdAogewogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBvcHRpbXVtUHNldWRJZCwgKCItd2Via2l0LW1ldGVyLW9wdGltdW0tdmFsdWUiKSk7
CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHN1Ym9wdGltdW1Qc2V1ZElk
LCAoIi13ZWJraXQtbWV0ZXItc3Vib3B0aW11bS12YWx1ZSIpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L01ldGVyU2hhZG93RWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvTWV0ZXJTaGFkb3dFbGVtZW50LmgKaW5kZXggYjY3ZTBjMTI5YmRmOGFl
NjY3NDViYWFhZTE5N2VhZWZmZmE4YmQzNS4uZTNkZmIwZmZmNGEzNDM4OGZlZjdiZTk1MjNkNWNk
NGY2ZDE3ZmE2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWV0ZXJT
aGFkb3dFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWV0ZXJTaGFk
b3dFbGVtZW50LmgKQEAgLTU3LDcgKzU3LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB2aXJ0
dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBOb2RlUmVuZGVyaW5nQ29udGV4dCYpIE9W
RVJSSURFOwogICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJB
cmVuYSosIFJlbmRlclN0eWxlKikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBjb25zdCBBdG9taWNT
dHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBjb25z
dCBBdG9taWNTdHJpbmcmIHBzZXVkbygpIGNvbnN0IE9WRVJSSURFOwogfTsKIAogaW5saW5lIFBh
c3NSZWZQdHI8TWV0ZXJJbm5lckVsZW1lbnQ+IE1ldGVySW5uZXJFbGVtZW50OjpjcmVhdGUoRG9j
dW1lbnQqIGRvY3VtZW50KQpAQCAtNzMsNyArNzMsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAg
c3RhdGljIFBhc3NSZWZQdHI8TWV0ZXJCYXJFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqKTsKLSAg
ICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdDsKKyAg
ICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgcHNldWRvKCkgY29uc3Q7CiB9OwogCiBpbmxp
bmUgUGFzc1JlZlB0cjxNZXRlckJhckVsZW1lbnQ+IE1ldGVyQmFyRWxlbWVudDo6Y3JlYXRlKERv
Y3VtZW50KiBkb2N1bWVudCkKQEAgLTg4LDcgKzg4LDcgQEAgcHVibGljOgogICAgIHsKICAgICB9
CiAKLSAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25z
dDsKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgcHNldWRvKCkgY29uc3Q7CiAgICAg
c3RhdGljIFBhc3NSZWZQdHI8TWV0ZXJWYWx1ZUVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCopOwog
ICAgIHZvaWQgc2V0V2lkdGhQZXJjZW50YWdlKGRvdWJsZSk7CiB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvUGlja2VySW5kaWNhdG9yRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9QaWNrZXJJbmRpY2F0b3JFbGVtZW50LmNwcAppbmRleCBm
NGQzN2Y0YjlkMzg1MTZiMDU1ODJmNTA0NDQwZDhjMjU3OTVlYTgyLi42ZWNjYTBhMDUyODY3NTll
YWJlN2RkMzRlMjRjNTg4NmIxNDkxZWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9QaWNrZXJJbmRpY2F0b3JFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9QaWNrZXJJbmRpY2F0b3JFbGVtZW50LmNwcApAQCAtNDgsNyArNDgsNyBAQCB1
c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogaW5saW5lIFBpY2tlckluZGljYXRvckVsZW1lbnQ6
OlBpY2tlckluZGljYXRvckVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50KQogICAgIDogSFRNTERp
dkVsZW1lbnQoZGl2VGFnLCBkb2N1bWVudCkKIHsKLSAgICBzZXRTaGFkb3dQc2V1ZG9JZCgiLXdl
YmtpdC1jYWxlbmRhci1waWNrZXItaW5kaWNhdG9yIik7CisgICAgc2V0UHNldWRvKCItd2Via2l0
LWNhbGVuZGFyLXBpY2tlci1pbmRpY2F0b3IiKTsKIH0KIAogUGFzc1JlZlB0cjxQaWNrZXJJbmRp
Y2F0b3JFbGVtZW50PiBQaWNrZXJJbmRpY2F0b3JFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRv
Y3VtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvUHJvZ3Jlc3NT
aGFkb3dFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1Byb2dyZXNzU2hh
ZG93RWxlbWVudC5jcHAKaW5kZXggNDY1ZDViYThmNWZiNTAzMGNmZmYzZWFjYTBhOGI4ZmQ3MjQz
MDI0NC4uYjY4NzIyNmQ5NjMzYTk2M2VlMDIyZmEzYzE5OGE4NWUyMTY2ZWY2MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0VsZW1lbnQuY3Bw
CkBAIC02Niw3ICs2Niw3IEBAIFBhc3NSZWZQdHI8UHJvZ3Jlc3NJbm5lckVsZW1lbnQ+IFByb2dy
ZXNzSW5uZXJFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50CiAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBQcm9ncmVzc0lubmVyRWxlbWVudChkb2N1bWVudCkpOwogfQogCi1jb25zdCBB
dG9taWNTdHJpbmcmIFByb2dyZXNzSW5uZXJFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0
Citjb25zdCBBdG9taWNTdHJpbmcmIFByb2dyZXNzSW5uZXJFbGVtZW50Ojpwc2V1ZG8oKSBjb25z
dAogewogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBwc2V1ZElkLCAoIi13
ZWJraXQtcHJvZ3Jlc3MtaW5uZXItZWxlbWVudCIpKTsKICAgICByZXR1cm4gcHNldWRJZDsKQEAg
LTg2LDE0ICs4NiwxNCBAQCBib29sIFByb2dyZXNzSW5uZXJFbGVtZW50OjpyZW5kZXJlcklzTmVl
ZGVkKGNvbnN0IE5vZGVSZW5kZXJpbmdDb250ZXh0JiBjb250ZXh0KQogICAgIHJldHVybiBwcm9n
cmVzc1JlbmRlcmVyICYmICFwcm9ncmVzc1JlbmRlcmVyLT5zdHlsZSgpLT5oYXNBcHBlYXJhbmNl
KCkgJiYgSFRNTERpdkVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoY29udGV4dCk7ICAgIAogfQog
Ci1jb25zdCBBdG9taWNTdHJpbmcmIFByb2dyZXNzQmFyRWxlbWVudDo6c2hhZG93UHNldWRvSWQo
KSBjb25zdAorY29uc3QgQXRvbWljU3RyaW5nJiBQcm9ncmVzc0JhckVsZW1lbnQ6OnBzZXVkbygp
IGNvbnN0CiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHBzZXVkSWQs
ICgiLXdlYmtpdC1wcm9ncmVzcy1iYXIiKSk7CiAgICAgcmV0dXJuIHBzZXVkSWQ7CiB9CiAKIAot
Y29uc3QgQXRvbWljU3RyaW5nJiBQcm9ncmVzc1ZhbHVlRWxlbWVudDo6c2hhZG93UHNldWRvSWQo
KSBjb25zdAorY29uc3QgQXRvbWljU3RyaW5nJiBQcm9ncmVzc1ZhbHVlRWxlbWVudDo6cHNldWRv
KCkgY29uc3QKIHsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgcHNldWRJ
ZCwgKCItd2Via2l0LXByb2dyZXNzLXZhbHVlIikpOwogICAgIHJldHVybiBwc2V1ZElkOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvUHJvZ3Jlc3NTaGFkb3dFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0VsZW1lbnQuaApp
bmRleCA0ZDAzZTQzYWIyOTM1MWQ0NjVjMWM1NDk3ZGMyYTc0MGE2ZTk0NWFkLi5hOTE3NzRmZDFk
YzEyZjFhNzczNGZjNTMzMTM0NTJhMTcwNDJhYmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0VsZW1lbnQuaApAQCAtNTYsNyArNTYsNyBAQCBw
dWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8UHJvZ3Jlc3NJbm5lckVsZW1lbnQ+IGNyZWF0
ZShEb2N1bWVudCopOwogcHJpdmF0ZToKICAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRl
UmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSopIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0OworICAgIHZpcnR1
YWwgY29uc3QgQXRvbWljU3RyaW5nJiBwc2V1ZG8oKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wg
cmVuZGVyZXJJc05lZWRlZChjb25zdCBOb2RlUmVuZGVyaW5nQ29udGV4dCYpOwogfTsKIApAQCAt
NjgsNyArNjgsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgc3RhdGljIFBhc3NSZWZQdHI8UHJv
Z3Jlc3NCYXJFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqKTsKLSAgICB2aXJ0dWFsIGNvbnN0IEF0
b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGNvbnN0IEF0
b21pY1N0cmluZyYgcHNldWRvKCkgY29uc3Q7CiB9OwogCiBpbmxpbmUgUGFzc1JlZlB0cjxQcm9n
cmVzc0JhckVsZW1lbnQ+IFByb2dyZXNzQmFyRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1
bWVudCkKQEAgLTgzLDcgKzgzLDcgQEAgcHVibGljOgogICAgIHsKICAgICB9CiAKLSAgICB2aXJ0
dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdDsKKyAgICB2aXJ0
dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgcHNldWRvKCkgY29uc3Q7CiAgICAgc3RhdGljIFBhc3NS
ZWZQdHI8UHJvZ3Jlc3NWYWx1ZUVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCopOwogICAgIHZvaWQg
c2V0V2lkdGhQZXJjZW50YWdlKGRvdWJsZSk7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAKaW5kZXggNWU1M2VjZWQxYjZmNjAwNjM3
ZjcxOTkyNDViYzA1Yjg3ZDA2ZTAxMy4uYmJiZDcyNTJkMTA0ZTg4M2NhNzhhNWMyM2Y1NDM4ODBk
ZWNjYzg0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1
bWJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVt
YkVsZW1lbnQuY3BwCkBAIC00MTAsNyArNDEwLDcgQEAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmlu
ZyYgbWVkaWFTbGlkZXJUaHVtYlNoYWRvd1BzZXVkb0lkKCkKICAgICByZXR1cm4gbWVkaWFTbGlk
ZXJUaHVtYjsKIH0KIAotY29uc3QgQXRvbWljU3RyaW5nJiBTbGlkZXJUaHVtYkVsZW1lbnQ6OnNo
YWRvd1BzZXVkb0lkKCkgY29uc3QKK2NvbnN0IEF0b21pY1N0cmluZyYgU2xpZGVyVGh1bWJFbGVt
ZW50Ojpwc2V1ZG8oKSBjb25zdAogewogICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gaG9z
dElucHV0KCk7CiAgICAgaWYgKCFpbnB1dCkKQEAgLTQ1Miw3ICs0NTIsNyBAQCBSZW5kZXJPYmpl
Y3QqIFRyYWNrTGltaXRlckVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiBhcmVu
YSwgUmVuZGVyU3R5bAogICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJTbGlkZXJUaHVtYih0
aGlzKTsKIH0KIAotY29uc3QgQXRvbWljU3RyaW5nJiBUcmFja0xpbWl0ZXJFbGVtZW50OjpzaGFk
b3dQc2V1ZG9JZCgpIGNvbnN0Citjb25zdCBBdG9taWNTdHJpbmcmIFRyYWNrTGltaXRlckVsZW1l
bnQ6OnBzZXVkbygpIGNvbnN0CiB7CiAgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXQgPSBzaGFk
b3dIb3N0KCktPnRvSW5wdXRFbGVtZW50KCk7CiAgICAgaWYgKCFpbnB1dCkKQEAgLTQ5OSw3ICs0
OTksNyBAQCBSZW5kZXJPYmplY3QqIFNsaWRlckNvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZVJlbmRl
cmVyKFJlbmRlckFyZW5hKiBhcmVuYSwgUmVuZGVyUwogICAgIHJldHVybiBuZXcgKGFyZW5hKSBS
ZW5kZXJTbGlkZXJDb250YWluZXIodGhpcyk7CiB9CiAKLWNvbnN0IEF0b21pY1N0cmluZyYgU2xp
ZGVyQ29udGFpbmVyRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAorY29uc3QgQXRvbWlj
U3RyaW5nJiBTbGlkZXJDb250YWluZXJFbGVtZW50Ojpwc2V1ZG8oKSBjb25zdAogewogICAgIERF
RklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBtZWRpYVNsaWRlckNvbnRhaW5l
ciwgKCItd2Via2l0LW1lZGlhLXNsaWRlci1jb250YWluZXIiKSk7CiAgICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHNsaWRlckNvbnRhaW5lciwgKCItd2Via2l0LXNs
aWRlci1jb250YWluZXIiKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9TbGlkZXJUaHVtYkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRl
clRodW1iRWxlbWVudC5oCmluZGV4IGY1NWVjZWYzZGRiMTllYjM3MWZjMDNiYjNjNGYzYzRjNzZh
OGQzOWYuLjQxNzVkMzBkN2U5ZDUxYTFiZmFhYzMyMjkzMGNhYzQxY2M0NjBlYTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5oCkBAIC01Nyw3
ICs1Nyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgd2lsbFJlc3BvbmRUb01vdXNlTW92
ZUV2ZW50cygpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCB3aWxsUmVzcG9uZFRvTW91c2VD
bGlja0V2ZW50cygpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkZXRhY2goKTsKLSAgICB2
aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdDsKKyAgICB2
aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgcHNldWRvKCkgY29uc3Q7CiAgICAgSFRNTElucHV0
RWxlbWVudCogaG9zdElucHV0KCkgY29uc3Q7CiAgICAgdm9pZCBzZXRQb3NpdGlvbkZyb21Qb2lu
dChjb25zdCBMYXlvdXRQb2ludCYpOwogCkBAIC0xMjIsNyArMTIyLDcgQEAgcHVibGljOgogcHJp
dmF0ZToKICAgICBUcmFja0xpbWl0ZXJFbGVtZW50KERvY3VtZW50Kik7CiAgICAgdmlydHVhbCBS
ZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5bGUqKTsK
LSAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdDsK
KyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgcHNldWRvKCkgY29uc3Q7CiB9OwogCiAv
LyBUaGlzIGFsd2F5cyByZXR1cm4gYSB2YWxpZCBwb2ludGVyLgpAQCAtMTM4LDcgKzEzOCw3IEBA
IHB1YmxpYzoKIHByaXZhdGU6CiAgICAgU2xpZGVyQ29udGFpbmVyRWxlbWVudChEb2N1bWVudCop
OwogICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSos
IFJlbmRlclN0eWxlKik7Ci0gICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1Bz
ZXVkb0lkKCkgY29uc3Q7CisgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHBzZXVkbygp
IGNvbnN0OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
U3BpbkJ1dHRvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU3BpbkJ1
dHRvbkVsZW1lbnQuY3BwCmluZGV4IDk5ZGQ3MTk0N2JmMzU4YWMwZmVmZmYyNDFiNGE2ZTY5ODRj
Nzg2ZTguLjE4OTQyNGFlNTU4N2UxYTJhNWJmZDI3YmQ3MTYzOWYwZWE1NDA5ZjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NwaW5CdXR0b25FbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TcGluQnV0dG9uRWxlbWVudC5jcHAKQEAgLTU1
LDcgKzU1LDcgQEAgUGFzc1JlZlB0cjxTcGluQnV0dG9uRWxlbWVudD4gU3BpbkJ1dHRvbkVsZW1l
bnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQsIFNwaW4KICAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IFNwaW5CdXR0b25FbGVtZW50KGRvY3VtZW50LCBzcGluQnV0dG9uT3duZXIpKTsKIH0KIAot
Y29uc3QgQXRvbWljU3RyaW5nJiBTcGluQnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBj
b25zdAorY29uc3QgQXRvbWljU3RyaW5nJiBTcGluQnV0dG9uRWxlbWVudDo6cHNldWRvKCkgY29u
c3QKIHsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaW5uZXJQc2V1ZG9J
ZCwgKCItd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uIikpOwogICAgIHJldHVybiBpbm5lclBzZXVk
b0lkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU3BpbkJ1dHRvbkVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NwaW5CdXR0b25FbGVtZW50LmgK
aW5kZXggMzI1MWYzN2QzOWY3YjM4M2YzNjJlZTMyYzM4NTk4NTM0NTgzMThhNC4uODcwZDVjOWE5
NGZmNDczOTc0NTBjMzg1NmYxNTI5ZWRlMGM5MTVhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvU3BpbkJ1dHRvbkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9TcGluQnV0dG9uRWxlbWVudC5oCkBAIC02OCw3ICs2OCw3IEBAIHB1YmxpYzoK
IHByaXZhdGU6CiAgICAgU3BpbkJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQqLCBTcGluQnV0dG9uT3du
ZXImKTsKIAotICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgp
IGNvbnN0OworICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBwc2V1ZG8oKSBjb25zdDsK
ICAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoKCk7CiAgICAgdmlydHVhbCBib29sIGlzU3BpbkJ1dHRv
bkVsZW1lbnQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCBib29sIGlzRW5h
YmxlZEZvcm1Db250cm9sKCkgY29uc3QgeyByZXR1cm4gc2hhZG93SG9zdCgpLT5pc0VuYWJsZWRG
b3JtQ29udHJvbCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9U
ZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
VGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcAppbmRleCA2YTU2NWIzMDAyNDdkNGY0MDQ4NzUz
NGU3ODQyMDNlZWU3NjkyZDRmLi40ZTJhYWE5MjlmZmJhYTQ2OGFiYjQ2Y2JiMzcxZmNiZWY2MWMx
ZjE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElu
bmVyRWxlbWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250
cm9sSW5uZXJFbGVtZW50cy5jcHAKQEAgLTEyMiw3ICsxMjIsNyBAQCBQYXNzUmVmUHRyPFNlYXJj
aEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1lbnQ+IFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1l
bnQ6OmNyZQogICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2VhcmNoRmllbGRSZXN1bHRzQnV0dG9u
RWxlbWVudChkb2N1bWVudCkpOwogfQogCi1jb25zdCBBdG9taWNTdHJpbmcmIFNlYXJjaEZpZWxk
UmVzdWx0c0J1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKK2NvbnN0IEF0b21p
Y1N0cmluZyYgU2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uRWxlbWVudDo6cHNldWRvKCkgY29uc3QK
IHsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgcmVzdWx0c0lkLCAoIi13
ZWJraXQtc2VhcmNoLXJlc3VsdHMtYnV0dG9uIikpOwogICAgIERFRklORV9TVEFUSUNfTE9DQUwo
QXRvbWljU3RyaW5nLCByZXN1bHRzRGVjb3JhdGlvbklkLCAoIi13ZWJraXQtc2VhcmNoLXJlc3Vs
dHMtZGVjb3JhdGlvbiIpKTsKQEAgLTE3Nyw3ICsxNzcsNyBAQCBQYXNzUmVmUHRyPFNlYXJjaEZp
ZWxkQ2FuY2VsQnV0dG9uRWxlbWVudD4gU2VhcmNoRmllbGRDYW5jZWxCdXR0b25FbGVtZW50Ojpj
cmVhdAogICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2VhcmNoRmllbGRDYW5jZWxCdXR0b25FbGVt
ZW50KGRvY3VtZW50KSk7CiB9CiAKLWNvbnN0IEF0b21pY1N0cmluZyYgU2VhcmNoRmllbGRDYW5j
ZWxCdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0Citjb25zdCBBdG9taWNTdHJp
bmcmIFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVudDo6cHNldWRvKCkgY29uc3QKIHsKICAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgcHNldWRvSWQsICgiLXdlYmtpdC1z
ZWFyY2gtY2FuY2VsLWJ1dHRvbiIpKTsKICAgICByZXR1cm4gcHNldWRvSWQ7CkBAIC00MzYsNyAr
NDM2LDcgQEAgdm9pZCBJbnB1dEZpZWxkU3BlZWNoQnV0dG9uRWxlbWVudDo6c3RvcFNwZWVjaElu
cHV0KCkKICAgICAgICAgc3BlZWNoSW5wdXQoKS0+c3RvcFJlY29yZGluZyhtX2xpc3RlbmVySWQp
OwogfQogCi1jb25zdCBBdG9taWNTdHJpbmcmIElucHV0RmllbGRTcGVlY2hCdXR0b25FbGVtZW50
OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0Citjb25zdCBBdG9taWNTdHJpbmcmIElucHV0RmllbGRT
cGVlY2hCdXR0b25FbGVtZW50Ojpwc2V1ZG8oKSBjb25zdAogewogICAgIERFRklORV9TVEFUSUNf
TE9DQUwoQXRvbWljU3RyaW5nLCBwc2V1ZG9JZCwgKCItd2Via2l0LWlucHV0LXNwZWVjaC1idXR0
b24iKSk7CiAgICAgcmV0dXJuIHBzZXVkb0lkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuaAppbmRleCA4YWNkNzcwOGZkZWJh
YTY2NTdkMWM2ZGE4NzcyOTQ4ZjRkNWFkZGJhLi5jYjg1MjUxMzEwNmVhZjVkOGIzNTM5MGMyNGQx
OGU1ZjgxN2UwYTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0
Q29udHJvbElubmVyRWxlbWVudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9U
ZXh0Q29udHJvbElubmVyRWxlbWVudHMuaApAQCAtNjksNyArNjksNyBAQCBwdWJsaWM6CiAKIHBy
aXZhdGU6CiAgICAgU2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uRWxlbWVudChEb2N1bWVudCopOwot
ICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0Owor
ICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBwc2V1ZG8oKSBjb25zdDsKICAgICB2aXJ0
dWFsIGJvb2wgaXNNb3VzZUZvY3VzYWJsZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiB9Owog
CkBAIC04Miw3ICs4Miw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBTZWFyY2hGaWVsZENh
bmNlbEJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQqKTsKLSAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0
cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0
cmluZyYgcHNldWRvKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGRldGFjaCgpOwogICAgIHZp
cnR1YWwgYm9vbCBpc01vdXNlRm9jdXNhYmxlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIApA
QCAtMTIxLDcgKzEyMSw3IEBAIHByaXZhdGU6CiAgICAgSW5wdXRGaWVsZFNwZWVjaEJ1dHRvbkVs
ZW1lbnQoRG9jdW1lbnQqKTsKICAgICBTcGVlY2hJbnB1dCogc3BlZWNoSW5wdXQoKTsKICAgICB2
b2lkIHNldFN0YXRlKFNwZWVjaElucHV0U3RhdGUgc3RhdGUpOwotICAgIHZpcnR1YWwgY29uc3Qg
QXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0OworICAgIHZpcnR1YWwgY29uc3Qg
QXRvbWljU3RyaW5nJiBwc2V1ZG8oKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaXNNb3VzZUZv
Y3VzYWJsZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCB2b2lkIGF0dGFj
aCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHAKaW5kZXgg
YTA0YjFiOGNiZjg3Yjc5YjdjZjFjZGUzNWJiOTA3ZTRiMDEwMTFmZi4uNDVkMDg0NzYwZTdjZWIy
NmFmM2Q5MjkzNTQ5YWNiMTI5OGYzZWViMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9UZXh0VHJhY2tDdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
VGV4dFRyYWNrQ3VlLmNwcApAQCAtOTUsNyArOTUsNyBAQCBUZXh0VHJhY2tDdWVCb3g6OlRleHRU
cmFja0N1ZUJveChEb2N1bWVudCogZG9jdW1lbnQsIFRleHRUcmFja0N1ZSogY3VlKQogICAgIDog
SFRNTEVsZW1lbnQoZGl2VGFnLCBkb2N1bWVudCkKICAgICAsIG1fY3VlKGN1ZSkKIHsKLSAgICBz
ZXRTaGFkb3dQc2V1ZG9JZChzaGFkb3dQc2V1ZG9JZCgpKTsKKyAgICBzZXRQc2V1ZG8ocHNldWRv
KCkpOwogfQogCiBUZXh0VHJhY2tDdWUqIFRleHRUcmFja0N1ZUJveDo6Z2V0Q3VlKCkgY29uc3QK
QEAgLTE3NCw3ICsxNzQsNyBAQCBjb25zdCBBdG9taWNTdHJpbmcmIFRleHRUcmFja0N1ZUJveDo6
dGV4dFRyYWNrQ3VlQm94U2hhZG93UHNldWRvSWQoKQogICAgIHJldHVybiB0cmFja0Rpc3BsYXlC
b3hTaGFkb3dQc2V1ZG9JZDsKIH0KIAotY29uc3QgQXRvbWljU3RyaW5nJiBUZXh0VHJhY2tDdWVC
b3g6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKK2NvbnN0IEF0b21pY1N0cmluZyYgVGV4dFRyYWNr
Q3VlQm94Ojpwc2V1ZG8oKSBjb25zdAogewogICAgIHJldHVybiB0ZXh0VHJhY2tDdWVCb3hTaGFk
b3dQc2V1ZG9JZCgpOwogfQpAQCAtNjc4LDEwICs2NzgsMTAgQEAgdm9pZCBUZXh0VHJhY2tDdWU6
OnVwZGF0ZURpc3BsYXlUcmVlKGZsb2F0IG1vdmllVGltZSkKIAogICAgIC8vIENsZWFyIHRoZSBj
b250ZW50cyBvZiB0aGUgdHdvIHNldHMuCiAgICAgbV9mdXR1cmVEb2N1bWVudE5vZGVzLT5yZW1v
dmVDaGlsZHJlbigpOwotICAgIG1fZnV0dXJlRG9jdW1lbnROb2Rlcy0+c2V0U2hhZG93UHNldWRv
SWQoZnV0dXJlTm9kZXNTaGFkb3dQc2V1ZG9JZCgpKTsKKyAgICBtX2Z1dHVyZURvY3VtZW50Tm9k
ZXMtPnNldFBzZXVkbyhmdXR1cmVOb2Rlc1NoYWRvd1BzZXVkb0lkKCkpOwogCiAgICAgbV9wYXN0
RG9jdW1lbnROb2Rlcy0+cmVtb3ZlQ2hpbGRyZW4oKTsKLSAgICBtX3Bhc3REb2N1bWVudE5vZGVz
LT5zZXRTaGFkb3dQc2V1ZG9JZChwYXN0Tm9kZXNTaGFkb3dQc2V1ZG9JZCgpKTsKKyAgICBtX3Bh
c3REb2N1bWVudE5vZGVzLT5zZXRQc2V1ZG8ocGFzdE5vZGVzU2hhZG93UHNldWRvSWQoKSk7CiAK
ICAgICAvLyBVcGRhdGUgdGhlIHR3byBzZXRzIGNvbnRhaW5pbmcgcGFzdCBhbmQgZnV0dXJlIFdl
YlZUVCBvYmplY3RzLgogICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiByZWZlcmVuY2VUcmVl
ID0gZ2V0Q3VlQXNIVE1MKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1RleHRUcmFja0N1ZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUu
aAppbmRleCAwMWEwZTY2MDM3YTUwYzE2ZGI4NDQxMWFlMmRkMmYxZTQzMzA2NDU2Li45OWJhYzdh
OGQ3YzRkMWVlZGU1YTQ2ODNkMmFhMTAxOWNhMWI4MzI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svVGV4dFRyYWNrQ3VlLmgKQEAgLTU5LDcgKzU5LDcgQEAgcHVibGljOgogICAgIFRleHRU
cmFja0N1ZSogZ2V0Q3VlKCkgY29uc3Q7CiAgICAgdm9pZCBhcHBseUNTU1Byb3BlcnRpZXMoKTsK
IAotICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0
IE9WRVJSSURFOworICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBwc2V1ZG8oKSBjb25z
dCBPVkVSUklERTsKICAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiB0ZXh0VHJhY2tDdWVC
b3hTaGFkb3dQc2V1ZG9JZCgpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuY3BwCmluZGV4IDJhZjQ1NWQyN2E5N2QwZDFmMTU1NDVjN2UxZWJjZjM4MDQ5OWY4OGYuLjYy
YjQ2YzUxODQwNDgwNGI0MzBjZWQzNTdhZjhlNjczYzVjNGNiYzkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAKQEAgLTUxNyw3ICs1MTcsNyBAQCBTdHJpbmcgSW50ZXJuYWxzOjpz
aGFkb3dQc2V1ZG9JZChFbGVtZW50KiBlbGVtZW50LCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAg
ICAgcmV0dXJuIFN0cmluZygpOwogICAgIH0KIAotICAgIHJldHVybiBlbGVtZW50LT5zaGFkb3dQ
c2V1ZG9JZCgpLnN0cmluZygpOworICAgIHJldHVybiBlbGVtZW50LT5wc2V1ZG8oKS5zdHJpbmco
KTsKIH0KIAogdm9pZCBJbnRlcm5hbHM6OnNldFNoYWRvd1BzZXVkb0lkKEVsZW1lbnQqIGVsZW1l
bnQsIGNvbnN0IFN0cmluZyYgaWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQpAQCAtNTI3LDcgKzUyNyw3
IEBAIHZvaWQgSW50ZXJuYWxzOjpzZXRTaGFkb3dQc2V1ZG9JZChFbGVtZW50KiBlbGVtZW50LCBj
b25zdCBTdHJpbmcmIGlkLCBFeGNlcHRpb25DCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAg
ICByZXR1cm4gZWxlbWVudC0+c2V0U2hhZG93UHNldWRvSWQoaWQsIGVjKTsKKyAgICByZXR1cm4g
ZWxlbWVudC0+c2V0UHNldWRvKGlkKTsKIH0KIAogU3RyaW5nIEludGVybmFsczo6dmlzaWJsZVBs
YWNlaG9sZGVyKEVsZW1lbnQqIGVsZW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi93
aW4vV2ViS2l0Mi5kZWYgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYKaW5kZXggMTkz
ODlhOWM1NTY3MzE5MGY0ZDE5ODk3ZGZjMTU0Yjk1NmEyZTdhZi4uODEwMjFmM2NkZTdkNTAzNjRi
MGMxN2Q3ODhiYjBjMjVjNTc5ZmIyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvd2luL1dl
YktpdDIuZGVmCisrKyBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgpAQCAtMjM0LDcg
KzIzNCw2IEBAIEVYUE9SVFMKICAgICAgICAgP3NldFJlc291cmNlc0RhdGFTaXplTGltaXRzRnJv
bUludGVybmFsc0BJbnNwZWN0b3JDb250cm9sbGVyQFdlYkNvcmVAQFFBRVhISEBaCiAgICAgICAg
ID9zZXRTYW5zU2VyaWZGb250RmFtaWx5QFNldHRpbmdzQFdlYkNvcmVAQFFBRVhBQlZBdG9taWNT
dHJpbmdAV1RGQEBXNFVTY3JpcHRDb2RlQEBAWgogICAgICAgICA/c2V0U2Nyb2xsYmFyc1N1cHBy
ZXNzZWRAU2Nyb2xsVmlld0BXZWJDb3JlQEBRQUVYX04wQFoKLSAgICAgICAgP3NldFNoYWRvd1Bz
ZXVkb0lkQEVsZW1lbnRAV2ViQ29yZUBAUUFFWEFCVkF0b21pY1N0cmluZ0BXVEZAQEFBSEBaCiAg
ICAgICAgID9zZXREZWxlZ2F0ZXNTY3JvbGxpbmdAU2Nyb2xsVmlld0BXZWJDb3JlQEBRQUVYX05A
WgogICAgICAgICA/c2V0U2Nyb2xsT2Zmc2V0RnJvbUludGVybmFsc0BTY3JvbGxhYmxlQXJlYUBX
ZWJDb3JlQEBRQUVYQUJWSW50UG9pbnRAMkBAWgogICAgICAgICA/c2V0U2VyaWZGb250RmFtaWx5
QFNldHRpbmdzQFdlYkNvcmVAQFFBRVhBQlZBdG9taWNTdHJpbmdAV1RGQEBXNFVTY3JpcHRDb2Rl
QEBAWgpAQCAtMjQyLDYgKzI0MSw3IEBAIEVYUE9SVFMKICAgICAgICAgP3NldFN0b3JhZ2VCbG9j
a2luZ1BvbGljeUBTZXR0aW5nc0BXZWJDb3JlQEBRQUVYVzRTdG9yYWdlQmxvY2tpbmdQb2xpY3lA
U2VjdXJpdHlPcmlnaW5AMkBAWgogICAgICAgICA/c2V0U3VnZ2VzdGVkVmFsdWVASFRNTElucHV0
RWxlbWVudEBXZWJDb3JlQEBRQUVYQUJWU3RyaW5nQFdURkBAQFoKICAgICAgICAgP3NldEVkaXRp
bmdWYWx1ZUBIVE1MSW5wdXRFbGVtZW50QFdlYkNvcmVAQFFBRVhBQlZTdHJpbmdAV1RGQEBAWgor
ICAgICAgICA/c2V0UHNldWRvQEVsZW1lbnRAV2ViQ29yZUBAUUFFWEFCVkF0b21pY1N0cmluZ0BX
VEZAQEFBSEBaCiAgICAgICAgID9zZXRSZXNvbHV0aW9uT3ZlcnJpZGVAU2V0dGluZ3NAV2ViQ29y
ZUBAUUFFWEFCVkludFNpemVAMkBAWgogICAgICAgICA/c2V0TWVkaWFUeXBlT3ZlcnJpZGVAU2V0
dGluZ3NAV2ViQ29yZUBAUUFFWEFCVlN0cmluZ0BXVEZAQEBaCiAgICAgICAgID9zZXR0aW5nc0BE
b2N1bWVudEBXZWJDb3JlQEBRQkVQQVZTZXR0aW5nc0AyQFhaCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5kZWYgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0
MkNGTGl0ZS5kZWYKaW5kZXggYTMxNTJlMjE4MjA5NGM0OWUzMzUzOTZlM2NhODMzYzc0OTU2ZTlk
Mi4uYWYxMjI4NmNhMWM2M2ZiNWQ0ZDVmNzJjOTMxZjVkMTFjODIxMjE2MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVmCisrKyBiL1NvdXJjZS9XZWJLaXQy
L3dpbi9XZWJLaXQyQ0ZMaXRlLmRlZgpAQCAtMjI0LDEwICsyMjQsMTAgQEAgRVhQT1JUUwogICAg
ICAgICA/c2V0UGFnZVNjYWxlRmFjdG9yQFBhZ2VAV2ViQ29yZUBAUUFFWE1BQlZJbnRQb2ludEAy
QEBaCiAgICAgICAgID9zZXRQYWdpbmF0aW9uQFBhZ2VAV2ViQ29yZUBAUUFFWEFCVVBhZ2luYXRp
b25AMkBAWgogICAgICAgICA/c2V0UGljdG9ncmFwaEZvbnRGYW1pbHlAU2V0dGluZ3NAV2ViQ29y
ZUBAUUFFWEFCVkF0b21pY1N0cmluZ0BXVEZAQFc0VVNjcmlwdENvZGVAQEBaCisgICAgICAgID9z
ZXRQc2V1ZG9ARWxlbWVudEBXZWJDb3JlQEBRQUVYQUJWQXRvbWljU3RyaW5nQFdURkBAQUFIQFoK
ICAgICAgICAgP3NldFJlc291cmNlc0RhdGFTaXplTGltaXRzRnJvbUludGVybmFsc0BJbnNwZWN0
b3JDb250cm9sbGVyQFdlYkNvcmVAQFFBRVhISEBaCiAgICAgICAgID9zZXRTYW5zU2VyaWZGb250
RmFtaWx5QFNldHRpbmdzQFdlYkNvcmVAQFFBRVhBQlZBdG9taWNTdHJpbmdAV1RGQEBXNFVTY3Jp
cHRDb2RlQEBAWgogICAgICAgICA/c2V0U2Nyb2xsYmFyc1N1cHByZXNzZWRAU2Nyb2xsVmlld0BX
ZWJDb3JlQEBRQUVYX04wQFoKLSAgICAgICAgP3NldFNoYWRvd1BzZXVkb0lkQEVsZW1lbnRAV2Vi
Q29yZUBAUUFFWEFCVkF0b21pY1N0cmluZ0BXVEZAQEFBSEBaCiAgICAgICAgID9zZXREZWxlZ2F0
ZXNTY3JvbGxpbmdAU2Nyb2xsVmlld0BXZWJDb3JlQEBRQUVYX05AWgogICAgICAgICA/c2V0U2Ny
b2xsT2Zmc2V0RnJvbUludGVybmFsc0BTY3JvbGxhYmxlQXJlYUBXZWJDb3JlQEBRQUVYQUJWSW50
UG9pbnRAMkBAWgogICAgICAgICA/c2V0U2VyaWZGb250RmFtaWx5QFNldHRpbmdzQFdlYkNvcmVA
QFFBRVhBQlZBdG9taWNTdHJpbmdAV1RGQEBXNFVTY3JpcHRDb2RlQEBAWgpkaWZmIC0tZ2l0IGEv
U291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlciBiL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9s
cy5maWx0ZXIKaW5kZXggMzljZWVkZWEwMTEyMWNiOTg3ZjljNmM0MzQwMzk3MDBmNmU0NDMwMS4u
NWJhZjdiNWViOWNmY2FlZDhiMzM0NDZkYjljY2RhZjFkMzY5OWQ3YyAxMDA2NDQKLS0tIGEvU291
cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgorKysgYi9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJv
bHMuZmlsdGVyCkBAIC0xMTcsNyArMTE3LDcgQEAgX1pON1dlYkNvcmU2SlNOb2RlMjB2aXNpdENo
aWxkcmVuVmlydHVhbEVSTjNKU0MxMVNsb3RWaXNpdG9yRTsKIF9aTjdXZWJDb3JlNkpTTm9kZTZz
X2luZm9FOwogX1pON1dlYkNvcmU2dG9Ob2RlRU4zSlNDN0pTVmFsdWVFOwogX1pON1dlYkNvcmU3
RWxlbWVudDIwcmVtb3ZlU2hhZG93Um9vdExpc3RFdjsKLV9aTjdXZWJDb3JlN0VsZW1lbnQxN3Nl
dFNoYWRvd1BzZXVkb0lkRVJLTjNXVEYxMkF0b21pY1N0cmluZ0VSaTsKK19aTjdXZWJDb3JlN0Vs
ZW1lbnQ5c2V0UHNldWRvRVJLTjNXVEYxMkF0b21pY1N0cmluZ0VSaTsKIF9aTjdXZWJDb3JlN2pz
QXJyYXlFUE4zSlNDOUV4ZWNTdGF0ZUVQTlNfMTdKU0RPTUdsb2JhbE9iamVjdEVOM1dURjEwUGFz
c1JlZlB0cklOU18xM0RPTVN0cmluZ0xpc3RFRUU7CiBfWk43V2ViQ29yZTd0b1JhbmdlRU4zSlND
N0pTVmFsdWVFOwogX1pON1dlYkNvcmU5RE9NV2luZG93NG9wZW5FUktOM1dURjZTdHJpbmdFUktO
UzFfMTJBdG9taWNTdHJpbmdFUzRfUFMwX1M4XzsK
</data>
<flag name="commit-queue"
          id="186810"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
      

    </bug>

</bugzilla>