<?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>193195</bug_id>
          
          <creation_ts>2019-01-07 07:21:44 -0800</creation_ts>
          <short_desc>[Web Animations] Audit Web Animations classes for memory reduction</short_desc>
          <delta_ts>2019-01-10 00:21:29 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Animations</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antoine Quint">graouts</reporter>
          <assigned_to name="Antoine Quint">graouts</assigned_to>
          <cc>dino</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1492247</commentid>
    <comment_count>0</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-01-07 07:21:44 -0800</bug_when>
    <thetext>[Web Animations] Audit Web Animations classes for memory reduction</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1492251</commentid>
    <comment_count>1</comment_count>
      <attachid>358494</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-01-07 07:39:15 -0800</bug_when>
    <thetext>Created attachment 358494
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1492252</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-01-07 07:41:56 -0800</bug_when>
    <thetext>Attachment 358494 did not pass style-queue:


ERROR: Source/WebCore/animation/WebAnimation.h:136:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
Total errors found: 1 in 20 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1492353</commentid>
    <comment_count>3</comment_count>
      <attachid>358494</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-01-07 12:47:03 -0800</bug_when>
    <thetext>Comment on attachment 358494
Patch

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

&gt; Source/WebCore/animation/ComputedEffectTiming.h:36
&gt;      Optional&lt;double&gt; localTime;
&gt;      Optional&lt;double&gt; progress;
&gt;      Optional&lt;double&gt; currentIteration;

Can these be Markable&lt;&gt;?

&gt; Source/WebCore/animation/OptionalEffectTiming.h:40
&gt;      Optional&lt;double&gt; delay;
&gt;      Optional&lt;double&gt; endDelay;
&gt; -    Optional&lt;FillMode&gt; fill;
&gt;      Optional&lt;double&gt; iterationStart;
&gt;      Optional&lt;double&gt; iterations;

Can these be Markable&lt;&gt;?

&gt; Source/WebCore/animation/OptionalEffectTiming.h:41
&gt;      String easing;

What is this String for? Could it be an enum here?

&gt; Source/WebCore/animation/OptionalEffectTiming.h:43
&gt; +    Optional&lt;FillMode&gt; fill;
&gt; +    Optional&lt;PlaybackDirection&gt; direction;

Can these be Markable&lt;&gt;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1492888</commentid>
    <comment_count>4</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-01-09 01:21:59 -0800</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #3)
&gt; Comment on attachment 358494 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=358494&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/animation/ComputedEffectTiming.h:36
&gt; &gt;      Optional&lt;double&gt; localTime;
&gt; &gt;      Optional&lt;double&gt; progress;
&gt; &gt;      Optional&lt;double&gt; currentIteration;
&gt; 
&gt; Can these be Markable&lt;&gt;?
&gt; 
&gt; &gt; Source/WebCore/animation/OptionalEffectTiming.h:40
&gt; &gt;      Optional&lt;double&gt; delay;
&gt; &gt;      Optional&lt;double&gt; endDelay;
&gt; &gt; -    Optional&lt;FillMode&gt; fill;
&gt; &gt;      Optional&lt;double&gt; iterationStart;
&gt; &gt;      Optional&lt;double&gt; iterations;
&gt; 
&gt; Can these be Markable&lt;&gt;?

I think we can safely convert all Optional&lt;double&gt; to Markable where we&apos;d use NaN as an empty marker since NaN would never be a valid value for any of those. I&apos;ll look into this.

&gt; &gt; Source/WebCore/animation/OptionalEffectTiming.h:41
&gt; &gt;      String easing;
&gt; 
&gt; What is this String for? Could it be an enum here?
&gt; 
&gt; &gt; Source/WebCore/animation/OptionalEffectTiming.h:43
&gt; &gt; +    Optional&lt;FillMode&gt; fill;
&gt; &gt; +    Optional&lt;PlaybackDirection&gt; direction;
&gt; 
&gt; Can these be Markable&lt;&gt;?

Yes, we can use EnumMarkableTraits but this just increases the padding there. I&apos;ll still make that change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1492924</commentid>
    <comment_count>5</comment_count>
      <attachid>358696</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-01-09 05:13:32 -0800</bug_when>
    <thetext>Created attachment 358696
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1492925</commentid>
    <comment_count>6</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-01-09 05:16:04 -0800</bug_when>
    <thetext>Attachment 358696 did not pass style-queue:


ERROR: Source/WebCore/animation/WebAnimation.h:137:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
Total errors found: 1 in 23 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1493227</commentid>
    <comment_count>7</comment_count>
      <attachid>358696</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-01-09 23:40:44 -0800</bug_when>
    <thetext>Comment on attachment 358696
Patch

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

r=me with some suggestions.

&gt; Source/WebCore/animation/FillMode.h:34
&gt; +typedef Markable&lt;FillMode, EnumMarkableTraits&lt;FillMode, 5&gt;&gt; OptionalFillMode;

Use `using` instead.
And you can omit this `5`.
EnumMarkableTraits automatically selects 255 for the empty mark since the underlying type is uint8_t and it picks the maximum value of the underlying type.
So,

using OptionalFillMode = Markable&lt;FillMode, EnumMarkableTraits&lt;FillMode&gt;&gt;;

works.

&gt; Source/WebCore/animation/PlaybackDirection.h:34
&gt; +typedef Markable&lt;PlaybackDirection, EnumMarkableTraits&lt;PlaybackDirection, 4&gt;&gt; OptionalPlaybackDirection;

Use `using` instead.
And you can omit `4` here.

&gt; Source/WebCore/animation/WebAnimationUtilities.h:61
&gt; +typedef Markable&lt;double, WebAnimationsMarkableDoubleTraits&gt; MarkableDouble;

Use `using` instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1493231</commentid>
    <comment_count>8</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-01-10 00:19:47 -0800</bug_when>
    <thetext>Committed r239820: &lt;https://trac.webkit.org/changeset/239820&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1493232</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-01-10 00:21:29 -0800</bug_when>
    <thetext>&lt;rdar://problem/47171502&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>358494</attachid>
            <date>2019-01-07 07:39:15 -0800</date>
            <delta_ts>2019-01-09 05:13:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193195-20190107163914.patch</filename>
            <type>text/plain</type>
            <size>25155</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5NjY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGMwMDY0MWE0NWM2NTdh
YThkMDM4ZGIxMzlhYjY5YTc3NTUwZjc0Ni4uNTJlNzczZmIyOTRjNGZhNDQ4ZmEyZGI2NjVjOTRk
YTY3NmQ4M2NjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDE5LTAxLTA3ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYiBBbmltYXRpb25z
XSBBdWRpdCBXZWIgQW5pbWF0aW9ucyBjbGFzc2VzIGZvciBtZW1vcnkgcmVkdWN0aW9uCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTMxOTUKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgY2xhc3Nlcywg
ZW51bXMgYW5kIHN0cnVjdHMgYWRkZWQgdG8gc3VwcG9ydCBXZWIgQW5pbWF0aW9ucyB3ZXJlIG5v
dCBhcyBtZW1vcnktZWZmaWNpZW50IGFzIHRoZXkgY291bGQgYmUuIFdlIG5vdyBvcmRlcgorICAg
ICAgICBtZW1iZXJzIGluIGEgd2F5IHRoYXQgcmVkdWNlcyBwYWRkaW5nLCB1c2UgTWFya2FibGU8
U2Vjb25kcywgLi4uPiBpbnN0ZWFkIG9mIE9wdGlvbmFsPFNlY29uZHM+LCBkZWNsYXJlIGVudW1z
IGFzIHVpbnQ4X3QKKyAgICAgICAgYW5kIHJlbW92ZWQgdW5uZWNlc3NhcnkgbWVtYmVycy4KKwor
ICAgICAgICBBcyBhIHJlc3VsdCwgY2xhc3NlcyBhbmQgc3RydWN0cyBoYXZlIHNocnVuayBhcyBm
b2xsb3dzOgorCisgICAgICAgIFdlYkFuaW1hdGlvbjogMjU2ID4gMjI0CisgICAgICAgIERlY2xh
cmF0aXZlQW5pbWF0aW9uOiAzOTIgPiAzNTIKKyAgICAgICAgQ1NTQW5pbWF0aW9uOiA0MTYgPiAz
NzYKKyAgICAgICAgQ1NTVHJhbnNpdGlvbjogNDQwID4gNDAwCisgICAgICAgIEFuaW1hdGlvbkVm
ZmVjdDogODggPiA3MgorICAgICAgICBLZXlmcmFtZUVmZmVjdDogMjA4ID4gMTg0CisgICAgICAg
IEFuaW1hdGlvblBsYXliYWNrRXZlbnQ6IDEwNCA+IDg4CisgICAgICAgIEVmZmVjdFRpbWluZzog
NzIgPiA2NAorICAgICAgICBDb21wdXRlZEVmZmVjdFRpbWluZzogMTM2ID4gMTI4CisgICAgICAg
IEFuaW1hdGlvblRpbWVsaW5lOiAyNjQgPiAyNDgKKyAgICAgICAgRG9jdW1lbnRUaW1lbGluZTog
NDk2ID4gNDY0CisgICAgICAgIE9wdGlvbmFsRWZmZWN0VGltaW5nOiAxMTIgPiAxMDQKKworICAg
ICAgICAqIGFuaW1hdGlvbi9BbmltYXRpb25FZmZlY3QuaDogT3JkZXIgbWVtYmVycyBpbiBkZWNy
ZWFzaW5nIHNpemUsIGV4Y2VwdCBmb3IgbV9maWxsIGFuZCBtX2RpcmVjdGlvbiwgd2hpY2ggd2Ug
cHV0IGF0IHRoZSB0b3AgdG8KKyAgICAgICAgc2F2ZSA4IGJ5dGVzICgyIGJ5dGVzIG9mIHBhZGRp
bmcgaW5zdGVhZCBvZiA0IGJlZm9yZSBtX2FuaW1hdGlvbiBhbmQgc2F2aW5nIDYgYnl0ZXMgb2Yg
cGFkZGluZyBhdCB0aGUgZW5kKS4KKyAgICAgICAgKiBhbmltYXRpb24vQW5pbWF0aW9uUGxheWJh
Y2tFdmVudC5oOgorICAgICAgICAqIGFuaW1hdGlvbi9BbmltYXRpb25UaW1lbGluZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpBbmltYXRpb25UaW1lbGluZTo6QW5pbWF0aW9uVGltZWxpbmUpOgor
ICAgICAgICAqIGFuaW1hdGlvbi9BbmltYXRpb25UaW1lbGluZS5oOiBXZSByZW1vdmUgdGhlIG1f
Y2xhc3NUeXBlIG1lbWJlciBhbmQgaW5zdGVhZCBtYWtlIGlzRG9jdW1lbnRUaW1lbGluZSgpIHZp
cnR1YWwuCisgICAgICAgIChXZWJDb3JlOjpBbmltYXRpb25UaW1lbGluZTo6aXNEb2N1bWVudFRp
bWVsaW5lIGNvbnN0KToKKyAgICAgICAgKCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpB
bmltYXRpb25UaW1lbGluZTo6Y2xhc3NUeXBlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBh
bmltYXRpb24vQ29tcG9zaXRlT3BlcmF0aW9uLmg6CisgICAgICAgICogYW5pbWF0aW9uL0NvbXBv
c2l0ZU9wZXJhdGlvbk9yQXV0by5oOgorICAgICAgICAqIGFuaW1hdGlvbi9Db21wdXRlZEVmZmVj
dFRpbWluZy5oOgorICAgICAgICAqIGFuaW1hdGlvbi9EZWNsYXJhdGl2ZUFuaW1hdGlvbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpEZWNsYXJhdGl2ZUFuaW1hdGlvbjo6RGVjbGFyYXRpdmVBbmlt
YXRpb24pOgorICAgICAgICAqIGFuaW1hdGlvbi9EZWNsYXJhdGl2ZUFuaW1hdGlvbi5oOiBXZSBr
ZWVwIG1fd2FzUGVuZGluZyBhbmQgbV9wcmV2aW91c1BoYXNlIHRvIHNhdmUgc29tZSBwYWRkaW5n
IGF0IHRoZSBlbmQuCisgICAgICAgICogYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRUaW1lbGluZTo6RG9jdW1lbnRUaW1lbGluZSk6Cisg
ICAgICAgICogYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmUuaDoKKyAgICAgICAgKiBhbmltYXRp
b24vRWZmZWN0VGltaW5nLmg6CisgICAgICAgICogYW5pbWF0aW9uL0ZpbGxNb2RlLmg6CisgICAg
ICAgICogYW5pbWF0aW9uL0l0ZXJhdGlvbkNvbXBvc2l0ZU9wZXJhdGlvbi5oOgorICAgICAgICAq
IGFuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpLZXlmcmFt
ZUVmZmVjdDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1lRWZmZWN0OjpLZXlm
cmFtZUVmZmVjdCk6CisgICAgICAgICogYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0Lmg6CisgICAg
ICAgICogYW5pbWF0aW9uL09wdGlvbmFsRWZmZWN0VGltaW5nLmg6CisgICAgICAgICogYW5pbWF0
aW9uL1BsYXliYWNrRGlyZWN0aW9uLmg6CisgICAgICAgICogYW5pbWF0aW9uL1dlYkFuaW1hdGlv
bi5oOgorCiAyMDE5LTAxLTA2ICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4K
IAogICAgICAgICBbTmljb3NpYV0gVGFrZSBvdmVyIENvb3JkaW5hdGVkR3JhcGhpY3MtbmFtZWQg
aW1wbGVtZW50YXRpb24gb2YgYXN5bmMgc2Nyb2xsaW5nIGNsYXNzZXMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRpb25FZmZlY3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L2FuaW1hdGlvbi9BbmltYXRpb25FZmZlY3QuaAppbmRleCAyOWQxYWJkMWNjNGY5OTE2NGMzNTkz
MzQ5NzdhZTAzNDc0YjdjNDkyLi4wZjljNGVhNDMyMGY3MzkxNzRkYzc1NmIzZGFkZGZjMTc2ZThl
OTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQW5pbWF0aW9uRWZmZWN0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0FuaW1hdGlvbkVmZmVjdC5oCkBAIC05
NSwyOSArOTUsMzIgQEAgcHVibGljOgogICAgIE9wdGlvbmFsPGRvdWJsZT4gY3VycmVudEl0ZXJh
dGlvbigpIGNvbnN0OwogICAgIFNlY29uZHMgYWN0aXZlRHVyYXRpb24oKSBjb25zdDsKIAotICAg
IGVudW0gY2xhc3MgUGhhc2UgeyBCZWZvcmUsIEFjdGl2ZSwgQWZ0ZXIsIElkbGUgfTsKKyAgICBl
bnVtIGNsYXNzIFBoYXNlIDogdWludDhfdCB7IEJlZm9yZSwgQWN0aXZlLCBBZnRlciwgSWRsZSB9
OwogICAgIFBoYXNlIHBoYXNlKCkgY29uc3Q7CiAKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBB
bmltYXRpb25FZmZlY3QoKTsKIAogcHJpdmF0ZToKLSAgICBlbnVtIGNsYXNzIENvbXB1dGVkRGly
ZWN0aW9uIHsgRm9yd2FyZHMsIFJldmVyc2UgfTsKKyAgICBlbnVtIGNsYXNzIENvbXB1dGVkRGly
ZWN0aW9uIDogdWludDhfdCB7IEZvcndhcmRzLCBSZXZlcnNlIH07CiAKICAgICBPcHRpb25hbDxk
b3VibGU+IG92ZXJhbGxQcm9ncmVzcygpIGNvbnN0OwogICAgIEFuaW1hdGlvbkVmZmVjdDo6Q29t
cHV0ZWREaXJlY3Rpb24gY3VycmVudERpcmVjdGlvbigpIGNvbnN0OwogICAgIE9wdGlvbmFsPGRv
dWJsZT4gZGlyZWN0ZWRQcm9ncmVzcygpIGNvbnN0OwogICAgIE9wdGlvbmFsPGRvdWJsZT4gdHJh
bnNmb3JtZWRQcm9ncmVzcygpIGNvbnN0OwotICAgIAotICAgIFNlY29uZHMgbV9kZWxheSB7IDBf
cyB9OwotICAgIFNlY29uZHMgbV9lbmREZWxheSB7IDBfcyB9OworCiAgICAgRmlsbE1vZGUgbV9m
aWxsIHsgRmlsbE1vZGU6OkF1dG8gfTsKKyAgICBQbGF5YmFja0RpcmVjdGlvbiBtX2RpcmVjdGlv
biB7IFBsYXliYWNrRGlyZWN0aW9uOjpOb3JtYWwgfTsKKworICAgIFdlYWtQdHI8V2ViQW5pbWF0
aW9uPiBtX2FuaW1hdGlvbjsKKyAgICBSZWZQdHI8VGltaW5nRnVuY3Rpb24+IG1fdGltaW5nRnVu
Y3Rpb247CisKICAgICBkb3VibGUgbV9pdGVyYXRpb25TdGFydCB7IDAgfTsKICAgICBkb3VibGUg
bV9pdGVyYXRpb25zIHsgMSB9OworCisgICAgU2Vjb25kcyBtX2RlbGF5IHsgMF9zIH07CisgICAg
U2Vjb25kcyBtX2VuZERlbGF5IHsgMF9zIH07CiAgICAgU2Vjb25kcyBtX2l0ZXJhdGlvbkR1cmF0
aW9uIHsgMF9zIH07Ci0gICAgUGxheWJhY2tEaXJlY3Rpb24gbV9kaXJlY3Rpb24geyBQbGF5YmFj
a0RpcmVjdGlvbjo6Tm9ybWFsIH07Ci0gICAgUmVmUHRyPFRpbWluZ0Z1bmN0aW9uPiBtX3RpbWlu
Z0Z1bmN0aW9uOwotICAgIFdlYWtQdHI8V2ViQW5pbWF0aW9uPiBtX2FuaW1hdGlvbjsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1h
dGlvbi9BbmltYXRpb25QbGF5YmFja0V2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24v
QW5pbWF0aW9uUGxheWJhY2tFdmVudC5oCmluZGV4IGNiN2ZiODg1YmNhYzIzOWJjMWU5ZWM3NTYx
ODQ1YzRkNTlhYTg4NTEuLmVhODhkMTRlZDkxZmRmYTYyOTk5YzFlNGM4Y2I1M2Q3YTNhZmQ1YzIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRpb25QbGF5YmFja0V2
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0FuaW1hdGlvblBsYXliYWNrRXZl
bnQuaApAQCAtMjUsOCArMjUsOSBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIkV2ZW50
LmgiCiAjaW5jbHVkZSAiQW5pbWF0aW9uUGxheWJhY2tFdmVudEluaXQuaCIKKyNpbmNsdWRlICJF
dmVudC5oIgorI2luY2x1ZGUgPHd0Zi9NYXJrYWJsZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKQEAgLTU1LDggKzU2LDggQEAgcHJpdmF0ZToKICAgICBBbmltYXRpb25QbGF5YmFja0V2ZW50
KGNvbnN0IEF0b21pY1N0cmluZyYsIE9wdGlvbmFsPFNlY29uZHM+LCBPcHRpb25hbDxTZWNvbmRz
Pik7CiAgICAgQW5pbWF0aW9uUGxheWJhY2tFdmVudChjb25zdCBBdG9taWNTdHJpbmcmLCBjb25z
dCBBbmltYXRpb25QbGF5YmFja0V2ZW50SW5pdCYsIElzVHJ1c3RlZCk7CiAKLSAgICBPcHRpb25h
bDxTZWNvbmRzPiBtX2N1cnJlbnRUaW1lOwotICAgIE9wdGlvbmFsPFNlY29uZHM+IG1fdGltZWxp
bmVUaW1lOworICAgIE1hcmthYmxlPFNlY29uZHMsIFNlY29uZHM6Ok1hcmthYmxlVHJhaXRzPiBt
X2N1cnJlbnRUaW1lOworICAgIE1hcmthYmxlPFNlY29uZHMsIFNlY29uZHM6Ok1hcmthYmxlVHJh
aXRzPiBtX3RpbWVsaW5lVGltZTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2FuaW1hdGlvbi9BbmltYXRpb25UaW1lbGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRp
b24vQW5pbWF0aW9uVGltZWxpbmUuY3BwCmluZGV4IDYyNWQ0ZjBmNTc0MDU5OWY0MmNiZmNhMzJm
NzAzNDM4NzlmOTBlZjYuLmQ3OTM1MmU0OGQyMGYxMWExZDA0MmM2MWRmOWM2NzJjMzEwMTgyOTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRpb25UaW1lbGluZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0FuaW1hdGlvblRpbWVsaW5lLmNwcApA
QCAtNDYsOCArNDYsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUFuaW1hdGlvblRpbWVs
aW5lOjpBbmltYXRpb25UaW1lbGluZShDbGFzc1R5cGUgY2xhc3NUeXBlKQotICAgIDogbV9jbGFz
c1R5cGUoY2xhc3NUeXBlKQorQW5pbWF0aW9uVGltZWxpbmU6OkFuaW1hdGlvblRpbWVsaW5lKCkK
IHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0FuaW1hdGlvblRp
bWVsaW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQW5pbWF0aW9uVGltZWxpbmUuaApp
bmRleCAxZTE1ZjE4MDRiNjc2MzA3YjBlODMzZmNmMjRkNGI5NWE5ZjVjZTMxLi44Yjc0NTExMjc3
ZDFiODE5NGE1ODNjMjZjMGRlNTM3MzYxZGQ1YmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9hbmltYXRpb24vQW5pbWF0aW9uVGltZWxpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmlt
YXRpb24vQW5pbWF0aW9uVGltZWxpbmUuaApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgPHd0
Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTGlz
dEhhc2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvTWFya2FibGUuaD4KICNpbmNsdWRlIDx3dGYvT3B0
aW9uYWwuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KQEAgLTQ2LDcgKzQ3LDcgQEAgY2xhc3MgRWxlbWVudDsKIAogY2xhc3MgQW5pbWF0aW9uVGlt
ZWxpbmUgOiBwdWJsaWMgUmVmQ291bnRlZDxBbmltYXRpb25UaW1lbGluZT4gewogcHVibGljOgot
ICAgIGJvb2wgaXNEb2N1bWVudFRpbWVsaW5lKCkgY29uc3QgeyByZXR1cm4gbV9jbGFzc1R5cGUg
PT0gRG9jdW1lbnRUaW1lbGluZUNsYXNzOyB9CisgICAgdmlydHVhbCBib29sIGlzRG9jdW1lbnRU
aW1lbGluZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICB2b2lkIGZvcmdldEFuaW1h
dGlvbihXZWJBbmltYXRpb24qKTsKICAgICB2aXJ0dWFsIHZvaWQgYW5pbWF0aW9uVGltaW5nRGlk
Q2hhbmdlKFdlYkFuaW1hdGlvbiYpOwpAQCAtNTUsNyArNTYsNyBAQCBwdWJsaWM6CiAgICAgT3B0
aW9uYWw8ZG91YmxlPiBiaW5kaW5nc0N1cnJlbnRUaW1lKCk7CiAgICAgdmlydHVhbCBPcHRpb25h
bDxTZWNvbmRzPiBjdXJyZW50VGltZSgpIHsgcmV0dXJuIG1fY3VycmVudFRpbWU7IH0KIAotICAg
IGVudW0gY2xhc3MgT3JkZXJpbmcgeyBTb3J0ZWQsIFVuc29ydGVkIH07CisgICAgZW51bSBjbGFz
cyBPcmRlcmluZyA6IHVpbnQ4X3QgeyBTb3J0ZWQsIFVuc29ydGVkIH07CiAgICAgVmVjdG9yPFJl
ZlB0cjxXZWJBbmltYXRpb24+PiBhbmltYXRpb25zRm9yRWxlbWVudChFbGVtZW50JiwgT3JkZXJp
bmcgb3JkZXJpbmcgPSBPcmRlcmluZzo6VW5zb3J0ZWQpIGNvbnN0OwogICAgIHZvaWQgZWxlbWVu
dFdhc1JlbW92ZWQoRWxlbWVudCYpOwogICAgIHZvaWQgcmVtb3ZlQW5pbWF0aW9uc0ZvckVsZW1l
bnQoRWxlbWVudCYpOwpAQCAtNzMsMTMgKzc0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfkFu
aW1hdGlvblRpbWVsaW5lKCk7CiAKIHByb3RlY3RlZDoKLSAgICBlbnVtIENsYXNzVHlwZSB7Ci0g
ICAgICAgIERvY3VtZW50VGltZWxpbmVDbGFzcwotICAgIH07Ci0KLSAgICBDbGFzc1R5cGUgY2xh
c3NUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9jbGFzc1R5cGU7IH0KLQotICAgIGV4cGxpY2l0IEFu
aW1hdGlvblRpbWVsaW5lKENsYXNzVHlwZSk7CisgICAgZXhwbGljaXQgQW5pbWF0aW9uVGltZWxp
bmUoKTsKIAogICAgIExpc3RIYXNoU2V0PFdlYkFuaW1hdGlvbio+IG1fYWxsQW5pbWF0aW9uczsK
ICAgICBMaXN0SGFzaFNldDxSZWZQdHI8V2ViQW5pbWF0aW9uPj4gbV9hbmltYXRpb25zOwpAQCAt
OTAsMTMgKzg1LDEzIEBAIHByaXZhdGU6CiAgICAgUHJvcGVydHlUb1RyYW5zaXRpb25NYXAmIGVu
c3VyZVJ1bm5pbmdUcmFuc2l0aW9uc0J5UHJvcGVydHkoRWxlbWVudCYpOwogICAgIHZvaWQgY2Fu
Y2VsRGVjbGFyYXRpdmVBbmltYXRpb24oRGVjbGFyYXRpdmVBbmltYXRpb24mKTsKIAotICAgIENs
YXNzVHlwZSBtX2NsYXNzVHlwZTsKLSAgICBPcHRpb25hbDxTZWNvbmRzPiBtX2N1cnJlbnRUaW1l
OwogICAgIEVsZW1lbnRUb0FuaW1hdGlvbnNNYXAgbV9lbGVtZW50VG9BbmltYXRpb25zTWFwOwog
ICAgIEVsZW1lbnRUb0FuaW1hdGlvbnNNYXAgbV9lbGVtZW50VG9DU1NBbmltYXRpb25zTWFwOwog
ICAgIEVsZW1lbnRUb0FuaW1hdGlvbnNNYXAgbV9lbGVtZW50VG9DU1NUcmFuc2l0aW9uc01hcDsK
ICAgICBIYXNoTWFwPEVsZW1lbnQqLCBIYXNoTWFwPFN0cmluZywgUmVmUHRyPENTU0FuaW1hdGlv
bj4+PiBtX2VsZW1lbnRUb0NTU0FuaW1hdGlvbkJ5TmFtZTsKICAgICBIYXNoTWFwPEVsZW1lbnQq
LCBQcm9wZXJ0eVRvVHJhbnNpdGlvbk1hcD4gbV9lbGVtZW50VG9SdW5uaW5nQ1NTVHJhbnNpdGlv
bkJ5Q1NTUHJvcGVydHlJRDsKKworICAgIE1hcmthYmxlPFNlY29uZHMsIFNlY29uZHM6Ok1hcmth
YmxlVHJhaXRzPiBtX2N1cnJlbnRUaW1lOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NvbXBvc2l0ZU9wZXJhdGlvbi5o
IGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NvbXBvc2l0ZU9wZXJhdGlvbi5oCmluZGV4IDIw
OWE1Nzc5MzA2Y2ViNjM5YzkwMDllZTZkNTg5YWI0MWViOWNkMzUuLjBmNzVlNzQxNWYzMzA0YjNk
OWFhZThkYjQwNTJkZjllOTNhZTQzNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1h
dGlvbi9Db21wb3NpdGVPcGVyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24v
Q29tcG9zaXRlT3BlcmF0aW9uLmgKQEAgLTI3LDYgKzI3LDYgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1lbnVtIGNsYXNzIENvbXBvc2l0ZU9wZXJhdGlvbiB7IFJlcGxhY2UsIEFkZCwgQWNj
dW11bGF0ZSB9OworZW51bSBjbGFzcyBDb21wb3NpdGVPcGVyYXRpb24gOiB1aW50OF90IHsgUmVw
bGFjZSwgQWRkLCBBY2N1bXVsYXRlIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Db21wb3NpdGVPcGVyYXRpb25PckF1dG8u
aCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Db21wb3NpdGVPcGVyYXRpb25PckF1dG8uaApp
bmRleCBhMjdkZTRlMzExM2IxY2Y2NWUwYTkxZmUxZjQ1MTNhZDRjYTI2MTU1Li4wMjc5Y2E3ZmQ4
ZWVkMDE3YTg4YjA2NTI0MWIzYWU2ZGM0YThkNWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9hbmltYXRpb24vQ29tcG9zaXRlT3BlcmF0aW9uT3JBdXRvLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYW5pbWF0aW9uL0NvbXBvc2l0ZU9wZXJhdGlvbk9yQXV0by5oCkBAIC0yNyw2ICsyNyw2IEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotZW51bSBjbGFzcyBDb21wb3NpdGVPcGVyYXRpb25P
ckF1dG8geyBSZXBsYWNlLCBBZGQsIEFjY3VtdWxhdGUsIEF1dG8gfTsKK2VudW0gY2xhc3MgQ29t
cG9zaXRlT3BlcmF0aW9uT3JBdXRvIDogdWludDhfdCB7IFJlcGxhY2UsIEFkZCwgQWNjdW11bGF0
ZSwgQXV0byB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hbmltYXRpb24vQ29tcHV0ZWRFZmZlY3RUaW1pbmcuaCBiL1NvdXJjZS9XZWJDb3Jl
L2FuaW1hdGlvbi9Db21wdXRlZEVmZmVjdFRpbWluZy5oCmluZGV4IDc3Y2ZkYzAxYzk3Mjg0OTA5
YzQ4ZjY4NDU2ZDNmZDhiYmI4NzIyNDAuLjQ4MzNhMmIyNTY5YTM4NzExODkxOGMwZjQ2NDYwMzFm
YjhjYTdiMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Db21wdXRlZEVm
ZmVjdFRpbWluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Db21wdXRlZEVmZmVj
dFRpbWluZy5oCkBAIC0zMSwxMSArMzEsMTEgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3Ry
dWN0IENvbXB1dGVkRWZmZWN0VGltaW5nIDogRWZmZWN0VGltaW5nIHsKLSAgICBkb3VibGUgZW5k
VGltZTsKLSAgICBkb3VibGUgYWN0aXZlRHVyYXRpb247CiAgICAgT3B0aW9uYWw8ZG91YmxlPiBs
b2NhbFRpbWU7CiAgICAgT3B0aW9uYWw8ZG91YmxlPiBwcm9ncmVzczsKICAgICBPcHRpb25hbDxk
b3VibGU+IGN1cnJlbnRJdGVyYXRpb247CisgICAgZG91YmxlIGVuZFRpbWU7CisgICAgZG91Ymxl
IGFjdGl2ZUR1cmF0aW9uOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RlY2xhcmF0aXZlQW5pbWF0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9EZWNsYXJhdGl2ZUFuaW1hdGlvbi5jcHAKaW5kZXggNzZj
ODNiNDJlNDI4OTY3M2RhYTk0MDBkYjQ5Y2U0ODYwMjYxMWRlMy4uMDBlYTcyZWY4NDFiNGMyNjZh
NjBkOTg0ODc3NTc5MDY2MTdmNDdhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0
aW9uL0RlY2xhcmF0aXZlQW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRp
b24vRGVjbGFyYXRpdmVBbmltYXRpb24uY3BwCkBAIC0zOCw5ICszOCw5IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogRGVjbGFyYXRpdmVBbmltYXRpb246OkRlY2xhcmF0aXZlQW5pbWF0aW9uKEVs
ZW1lbnQmIG93bmluZ0VsZW1lbnQsIGNvbnN0IEFuaW1hdGlvbiYgYmFja2luZ0FuaW1hdGlvbikK
ICAgICA6IFdlYkFuaW1hdGlvbihvd25pbmdFbGVtZW50LmRvY3VtZW50KCkpCisgICAgLCBtX2V2
ZW50UXVldWUob3duaW5nRWxlbWVudCkKICAgICAsIG1fb3duaW5nRWxlbWVudCgmb3duaW5nRWxl
bWVudCkKICAgICAsIG1fYmFja2luZ0FuaW1hdGlvbihjb25zdF9jYXN0PEFuaW1hdGlvbiY+KGJh
Y2tpbmdBbmltYXRpb24pKQotICAgICwgbV9ldmVudFF1ZXVlKG93bmluZ0VsZW1lbnQpCiB7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9EZWNsYXJhdGl2ZUFuaW1h
dGlvbi5oIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RlY2xhcmF0aXZlQW5pbWF0aW9uLmgK
aW5kZXggOTMxZWQ3NjMyY2QwNWZhNTU1YzIxYmE0Y2YzNGRjNDI2MTYyNWNhMy4uZTdhYzgwYmY3
M2ZiZGRjNmRhN2FlOGFjZmE3ZmU5YjE4ZjM1ODhhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYW5pbWF0aW9uL0RlY2xhcmF0aXZlQW5pbWF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YW5pbWF0aW9uL0RlY2xhcmF0aXZlQW5pbWF0aW9uLmgKQEAgLTgzLDEyICs4MywxNCBAQCBwcml2
YXRlOgogICAgIHZvaWQgcmVzdW1lKCkgZmluYWw7CiAgICAgdm9pZCBzdG9wKCkgZmluYWw7CiAK
LSAgICBFbGVtZW50KiBtX293bmluZ0VsZW1lbnQ7Ci0gICAgUmVmPEFuaW1hdGlvbj4gbV9iYWNr
aW5nQW5pbWF0aW9uOwogICAgIGJvb2wgbV93YXNQZW5kaW5nIHsgZmFsc2UgfTsKICAgICBBbmlt
YXRpb25FZmZlY3Q6OlBoYXNlIG1fcHJldmlvdXNQaGFzZSB7IEFuaW1hdGlvbkVmZmVjdDo6UGhh
c2U6OklkbGUgfTsKLSAgICBkb3VibGUgbV9wcmV2aW91c0l0ZXJhdGlvbjsKKwogICAgIEdlbmVy
aWNFdmVudFF1ZXVlIG1fZXZlbnRRdWV1ZTsKKworICAgIEVsZW1lbnQqIG1fb3duaW5nRWxlbWVu
dDsKKyAgICBSZWY8QW5pbWF0aW9uPiBtX2JhY2tpbmdBbmltYXRpb247CisgICAgZG91YmxlIG1f
cHJldmlvdXNJdGVyYXRpb247CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGluZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGluZS5jcHAKaW5kZXggZmI0NDVjMWQ4
NjhlYjI0YzVjNGZiOTIwYzUwNDNmNjVmNGYzZGY3Mi4uMzAxOGNiYjJjY2QyYWY4Zjc3YWJiNjBi
YzZjMjM5MjM4Y2ZhZjRlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0Rv
Y3VtZW50VGltZWxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVu
dFRpbWVsaW5lLmNwcApAQCAtNjAsMTMgKzYwLDEzIEBAIFJlZjxEb2N1bWVudFRpbWVsaW5lPiBE
b2N1bWVudFRpbWVsaW5lOjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBEb2N1bWVudFRpbWVs
CiB9CiAKIERvY3VtZW50VGltZWxpbmU6OkRvY3VtZW50VGltZWxpbmUoRG9jdW1lbnQmIGRvY3Vt
ZW50LCBTZWNvbmRzIG9yaWdpblRpbWUpCi0gICAgOiBBbmltYXRpb25UaW1lbGluZShEb2N1bWVu
dFRpbWVsaW5lQ2xhc3MpCi0gICAgLCBtX2RvY3VtZW50KCZkb2N1bWVudCkKLSAgICAsIG1fb3Jp
Z2luVGltZShvcmlnaW5UaW1lKQotICAgICwgbV90aWNrU2NoZWR1bGVUaW1lcigqdGhpcywgJkRv
Y3VtZW50VGltZWxpbmU6OnNjaGVkdWxlQW5pbWF0aW9uUmVzb2x1dGlvbklmTmVlZGVkKQorICAg
IDogQW5pbWF0aW9uVGltZWxpbmUoKQogI2lmICFVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVf
RElTUExBWV9NT05JVE9SKQogICAgICwgbV9hbmltYXRpb25SZXNvbHV0aW9uVGltZXIoKnRoaXMs
ICZEb2N1bWVudFRpbWVsaW5lOjphbmltYXRpb25SZXNvbHV0aW9uVGltZXJGaXJlZCkKICNlbmRp
ZgorICAgICwgbV90aWNrU2NoZWR1bGVUaW1lcigqdGhpcywgJkRvY3VtZW50VGltZWxpbmU6OnNj
aGVkdWxlQW5pbWF0aW9uUmVzb2x1dGlvbklmTmVlZGVkKQorICAgICwgbV9kb2N1bWVudCgmZG9j
dW1lbnQpCisgICAgLCBtX29yaWdpblRpbWUob3JpZ2luVGltZSkKIHsKICAgICBpZiAobV9kb2N1
bWVudCAmJiBtX2RvY3VtZW50LT5wYWdlKCkgJiYgIW1fZG9jdW1lbnQtPnBhZ2UoKS0+aXNWaXNp
YmxlKCkpCiAgICAgICAgIHN1c3BlbmRBbmltYXRpb25zKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGluZS5oIGIvU291cmNlL1dlYkNvcmUvYW5p
bWF0aW9uL0RvY3VtZW50VGltZWxpbmUuaAppbmRleCAxZTg4MGY1MTYwMzBiYmY2NTViOTEzMmUw
NmI0NzBjNTcyY2FlZmE4Li43Y2M4MWM5YWYzOGY5ZTg3YmFmNjliZjA1MjU5OWZjMmRmNGM5YzIx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGluZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lLmgKQEAgLTI5
LDYgKzI5LDcgQEAKICNpbmNsdWRlICJEb2N1bWVudFRpbWVsaW5lT3B0aW9ucy5oIgogI2luY2x1
ZGUgIkdlbmVyaWNUYXNrUXVldWUuaCIKICNpbmNsdWRlICJUaW1lci5oIgorI2luY2x1ZGUgPHd0
Zi9NYXJrYWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewpAQCAtNDMsNiArNDQsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxEb2N1bWVudFRpbWVs
aW5lPiBjcmVhdGUoRG9jdW1lbnQmLCBEb2N1bWVudFRpbWVsaW5lT3B0aW9ucyYmKTsKICAgICB+
RG9jdW1lbnRUaW1lbGluZSgpOwogCisgICAgYm9vbCBpc0RvY3VtZW50VGltZWxpbmUoKSBjb25z
dCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CisKICAgICBWZWN0b3I8UmVmUHRyPFdlYkFuaW1hdGlv
bj4+IGdldEFuaW1hdGlvbnMoKSBjb25zdDsKIAogICAgIERvY3VtZW50KiBkb2N1bWVudCgpIGNv
bnN0IHsgcmV0dXJuIG1fZG9jdW1lbnQuZ2V0KCk7IH0KQEAgLTEwMCwyMyArMTAzLDIzIEBAIHBy
aXZhdGU6CiAgICAgdm9pZCB0cmFuc2l0aW9uRGlkQ29tcGxldGUoUmVmUHRyPENTU1RyYW5zaXRp
b24+KTsKICAgICB2b2lkIHNjaGVkdWxlTmV4dFRpY2soKTsKIAorI2lmICFVU0UoUkVRVUVTVF9B
TklNQVRJT05fRlJBTUVfRElTUExBWV9NT05JVE9SKQorICAgIHZvaWQgYW5pbWF0aW9uUmVzb2x1
dGlvblRpbWVyRmlyZWQoKTsKKyAgICBUaW1lciBtX2FuaW1hdGlvblJlc29sdXRpb25UaW1lcjsK
KyNlbmRpZgorCisgICAgVGltZXIgbV90aWNrU2NoZWR1bGVUaW1lcjsKKyAgICBHZW5lcmljVGFz
a1F1ZXVlPFRpbWVyPiBtX2N1cnJlbnRUaW1lQ2xlYXJpbmdUYXNrUXVldWU7CisgICAgSGFzaFNl
dDxSZWZQdHI8V2ViQW5pbWF0aW9uPj4gbV9hY2NlbGVyYXRlZEFuaW1hdGlvbnNQZW5kaW5nUnVu
bmluZ1N0YXRlQ2hhbmdlOworICAgIEhhc2hTZXQ8RWxlbWVudCo+IG1fZWxlbWVudHNXaXRoUnVu
bmluZ0FjY2VsZXJhdGVkQW5pbWF0aW9uczsKKyAgICBWZWN0b3I8UmVmPEFuaW1hdGlvblBsYXli
YWNrRXZlbnQ+PiBtX3BlbmRpbmdBbmltYXRpb25FdmVudHM7CiAgICAgUmVmUHRyPERvY3VtZW50
PiBtX2RvY3VtZW50OworICAgIE1hcmthYmxlPFNlY29uZHMsIFNlY29uZHM6Ok1hcmthYmxlVHJh
aXRzPiBtX2NhY2hlZEN1cnJlbnRUaW1lOwogICAgIFNlY29uZHMgbV9vcmlnaW5UaW1lOworICAg
IHVuc2lnbmVkIG1fbnVtYmVyT2ZBbmltYXRpb25UaW1lbGluZUludmFsaWRhdGlvbnNGb3JUZXN0
aW5nIHsgMCB9OwogICAgIGJvb2wgbV9pc1N1c3BlbmRlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBt
X3dhaXRpbmdPblZNSWRsZSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2lzVXBkYXRpbmdBbmltYXRp
b25zIHsgZmFsc2UgfTsKLSAgICBPcHRpb25hbDxTZWNvbmRzPiBtX2NhY2hlZEN1cnJlbnRUaW1l
OwotICAgIEdlbmVyaWNUYXNrUXVldWU8VGltZXI+IG1fY3VycmVudFRpbWVDbGVhcmluZ1Rhc2tR
dWV1ZTsKLSAgICBIYXNoU2V0PFJlZlB0cjxXZWJBbmltYXRpb24+PiBtX2FjY2VsZXJhdGVkQW5p
bWF0aW9uc1BlbmRpbmdSdW5uaW5nU3RhdGVDaGFuZ2U7Ci0gICAgVmVjdG9yPFJlZjxBbmltYXRp
b25QbGF5YmFja0V2ZW50Pj4gbV9wZW5kaW5nQW5pbWF0aW9uRXZlbnRzOwotICAgIHVuc2lnbmVk
IG1fbnVtYmVyT2ZBbmltYXRpb25UaW1lbGluZUludmFsaWRhdGlvbnNGb3JUZXN0aW5nIHsgMCB9
OwotICAgIEhhc2hTZXQ8RWxlbWVudCo+IG1fZWxlbWVudHNXaXRoUnVubmluZ0FjY2VsZXJhdGVk
QW5pbWF0aW9uczsKLSAgICBUaW1lciBtX3RpY2tTY2hlZHVsZVRpbWVyOwotCi0jaWYgIVVTRShS
RVFVRVNUX0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1IpCi0gICAgdm9pZCBhbmltYXRp
b25SZXNvbHV0aW9uVGltZXJGaXJlZCgpOwotICAgIFRpbWVyIG1fYW5pbWF0aW9uUmVzb2x1dGlv
blRpbWVyOwotI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRWZmZWN0VGltaW5nLmggYi9Tb3VyY2UvV2ViQ29y
ZS9hbmltYXRpb24vRWZmZWN0VGltaW5nLmgKaW5kZXggN2Q2N2QxNjBhN2UxM2JlMWM4ZjE0YzBk
MjExOTJhZThhM2NmZDUxYi4uZjVhZGY0YzdiODc3NjhlNzNkMjFhMTczMDFkMWUzNGY0ZTgyZjM5
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0VmZmVjdFRpbWluZy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9FZmZlY3RUaW1pbmcuaApAQCAtMzMsMTQgKzMz
LDE0IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBFZmZlY3RUaW1pbmcgeworICAg
IFZhcmlhbnQ8ZG91YmxlLCBTdHJpbmc+IGR1cmF0aW9uIHsgImF1dG8iIH07CiAgICAgZG91Ymxl
IGRlbGF5IHsgMCB9OwogICAgIGRvdWJsZSBlbmREZWxheSB7IDAgfTsKLSAgICBGaWxsTW9kZSBm
aWxsIHsgRmlsbE1vZGU6OkF1dG8gfTsKICAgICBkb3VibGUgaXRlcmF0aW9uU3RhcnQgeyAwIH07
CiAgICAgZG91YmxlIGl0ZXJhdGlvbnMgeyAxIH07Ci0gICAgVmFyaWFudDxkb3VibGUsIFN0cmlu
Zz4gZHVyYXRpb24geyAiYXV0byIgfTsKLSAgICBQbGF5YmFja0RpcmVjdGlvbiBkaXJlY3Rpb24g
eyBQbGF5YmFja0RpcmVjdGlvbjo6Tm9ybWFsIH07CiAgICAgU3RyaW5nIGVhc2luZyB7ICJsaW5l
YXIiIH07CisgICAgRmlsbE1vZGUgZmlsbCB7IEZpbGxNb2RlOjpBdXRvIH07CisgICAgUGxheWJh
Y2tEaXJlY3Rpb24gZGlyZWN0aW9uIHsgUGxheWJhY2tEaXJlY3Rpb246Ok5vcm1hbCB9OwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5p
bWF0aW9uL0ZpbGxNb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRmlsbE1vZGUuaApp
bmRleCA2OTg0YWY0MDZhNTI0OTVlYmI4ZTY1ZGQwNjg4ZGIyZGUxY2Y2OTEyLi4xODEwZWExMWMw
ZWY1MzJlNWQ4MTI5Y2ZlM2E0Njg0ZDIxMmIyMGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9hbmltYXRpb24vRmlsbE1vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRmls
bE1vZGUuaApAQCAtMjcsNiArMjcsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWVudW0g
Y2xhc3MgRmlsbE1vZGUgeyBOb25lLCBGb3J3YXJkcywgQmFja3dhcmRzLCBCb3RoLCBBdXRvIH07
CitlbnVtIGNsYXNzIEZpbGxNb2RlIDogdWludDhfdCB7IE5vbmUsIEZvcndhcmRzLCBCYWNrd2Fy
ZHMsIEJvdGgsIEF1dG8gfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0l0ZXJhdGlvbkNvbXBvc2l0ZU9wZXJhdGlvbi5oIGIv
U291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0l0ZXJhdGlvbkNvbXBvc2l0ZU9wZXJhdGlvbi5oCmlu
ZGV4IGRlZDVmNGVmYTg3MjZmYjJlZjA1Y2VmM2E5MGUzNTkxMDQyYWU5YjIuLjMyZWQyMzQ3ZjEy
MGY4YmI3ZTEwNTg0NzMzNzlkMGY2MzNiODlkYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FuaW1hdGlvbi9JdGVyYXRpb25Db21wb3NpdGVPcGVyYXRpb24uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hbmltYXRpb24vSXRlcmF0aW9uQ29tcG9zaXRlT3BlcmF0aW9uLmgKQEAgLTI3LDYgKzI3
LDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1lbnVtIGNsYXNzIEl0ZXJhdGlvbkNvbXBv
c2l0ZU9wZXJhdGlvbiB7IFJlcGxhY2UsIEFjY3VtdWxhdGUgfTsKK2VudW0gY2xhc3MgSXRlcmF0
aW9uQ29tcG9zaXRlT3BlcmF0aW9uIDogdWludDhfdCB7IFJlcGxhY2UsIEFjY3VtdWxhdGUgfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5p
bWF0aW9uL0tleWZyYW1lRWZmZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlm
cmFtZUVmZmVjdC5jcHAKaW5kZXggMTNkYmNkMGZkMTMzOTc5YzkyMzUxY2ZiMDQ2MGQ5ODIxMWE3
MzBjMy4uZjQ4NmEzOTYxNGIxMzVjNTUwYTlkYmQ0MzMyYjk0MjY1NWVlNzUxZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuY3BwCkBAIC00NzIsMTQgKzQ3Miwx
NCBAQCBFeGNlcHRpb25PcjxSZWY8S2V5ZnJhbWVFZmZlY3Q+PiBLZXlmcmFtZUVmZmVjdDo6Y3Jl
YXRlKEV4ZWNTdGF0ZSYgc3RhdGUsIEVsZW1lbgogICAgICAgICB9IGVsc2UgewogICAgICAgICAg
ICAgYXV0byBrZXlmcmFtZUVmZmVjdE9wdGlvbnMgPSBXVEY6OmdldDxLZXlmcmFtZUVmZmVjdE9w
dGlvbnM+KG9wdGlvbnNWYWx1ZSk7CiAgICAgICAgICAgICB0aW1pbmcgPSB7CisgICAgICAgICAg
ICAgICAga2V5ZnJhbWVFZmZlY3RPcHRpb25zLmR1cmF0aW9uLAogICAgICAgICAgICAgICAgIGtl
eWZyYW1lRWZmZWN0T3B0aW9ucy5kZWxheSwKICAgICAgICAgICAgICAgICBrZXlmcmFtZUVmZmVj
dE9wdGlvbnMuZW5kRGVsYXksCi0gICAgICAgICAgICAgICAga2V5ZnJhbWVFZmZlY3RPcHRpb25z
LmZpbGwsCiAgICAgICAgICAgICAgICAga2V5ZnJhbWVFZmZlY3RPcHRpb25zLml0ZXJhdGlvblN0
YXJ0LAogICAgICAgICAgICAgICAgIGtleWZyYW1lRWZmZWN0T3B0aW9ucy5pdGVyYXRpb25zLAot
ICAgICAgICAgICAgICAgIGtleWZyYW1lRWZmZWN0T3B0aW9ucy5kdXJhdGlvbiwKLSAgICAgICAg
ICAgICAgICBrZXlmcmFtZUVmZmVjdE9wdGlvbnMuZGlyZWN0aW9uLAotICAgICAgICAgICAgICAg
IGtleWZyYW1lRWZmZWN0T3B0aW9ucy5lYXNpbmcKKyAgICAgICAgICAgICAgICBrZXlmcmFtZUVm
ZmVjdE9wdGlvbnMuZWFzaW5nLAorICAgICAgICAgICAgICAgIGtleWZyYW1lRWZmZWN0T3B0aW9u
cy5maWxsLAorICAgICAgICAgICAgICAgIGtleWZyYW1lRWZmZWN0T3B0aW9ucy5kaXJlY3Rpb24K
ICAgICAgICAgICAgIH07CiAgICAgICAgIH0KIApAQCAtNTA5LDcgKzUwOSw2IEBAIFJlZjxLZXlm
cmFtZUVmZmVjdD4gS2V5ZnJhbWVFZmZlY3Q6OmNyZWF0ZShjb25zdCBFbGVtZW50JiB0YXJnZXQp
CiAKIEtleWZyYW1lRWZmZWN0OjpLZXlmcmFtZUVmZmVjdChFbGVtZW50KiB0YXJnZXQpCiAgICAg
OiBtX3RhcmdldCh0YXJnZXQpCi0gICAgLCBtX2JsZW5kaW5nS2V5ZnJhbWVzKGVtcHR5U3RyaW5n
KCkpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFt
ZUVmZmVjdC5oIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmgKaW5k
ZXggNGY2NGNhNGVhZGUwOTJlODI1NDhjNzQzZGY1ZDFiN2FhZWFjOGE3NC4uZDhhZTgwMTM1MWIy
MzhiMjk2ZGI5YzMxMmNjYWNhNmE4NmMzOTI3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9u
L0tleWZyYW1lRWZmZWN0LmgKQEAgLTEzOSw3ICsxMzksNyBAQCBwdWJsaWM6CiBwcml2YXRlOgog
ICAgIEtleWZyYW1lRWZmZWN0KEVsZW1lbnQqKTsKIAotICAgIGVudW0gY2xhc3MgQWNjZWxlcmF0
ZWRBY3Rpb24geyBQbGF5LCBQYXVzZSwgU2VlaywgU3RvcCB9OworICAgIGVudW0gY2xhc3MgQWNj
ZWxlcmF0ZWRBY3Rpb24gOiB1aW50OF90IHsgUGxheSwgUGF1c2UsIFNlZWssIFN0b3AgfTsKIAog
ICAgIHZvaWQgY29weVByb3BlcnRpZXNGcm9tU291cmNlKFJlZjxLZXlmcmFtZUVmZmVjdD4mJik7
CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gcHJvY2Vzc0tleWZyYW1lcyhKU0M6OkV4ZWNTdGF0ZSYs
IEpTQzo6U3Ryb25nPEpTQzo6SlNPYmplY3Q+JiYpOwpAQCAtMTU3LDE0ICsxNTcsMjAgQEAgcHJp
dmF0ZToKICAgICB2b2lkIHNldEJsZW5kaW5nS2V5ZnJhbWVzKEtleWZyYW1lTGlzdCYpOwogICAg
IHZvaWQgY2hlY2tGb3JNYXRjaGluZ1RyYW5zZm9ybUZ1bmN0aW9uTGlzdHMoKTsKICAgICB2b2lk
IGNoZWNrRm9yTWF0Y2hpbmdGaWx0ZXJGdW5jdGlvbkxpc3RzKCk7CisgICAgdm9pZCBjaGVja0Zv
ck1hdGNoaW5nQ29sb3JGaWx0ZXJGdW5jdGlvbkxpc3RzKCk7CisgICAgYm9vbCBjaGVja0Zvck1h
dGNoaW5nRmlsdGVyRnVuY3Rpb25MaXN0cyhDU1NQcm9wZXJ0eUlELCBjb25zdCBzdGQ6OmZ1bmN0
aW9uPGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmIChjb25zdCBSZW5kZXJTdHlsZSYpPiYpIGNvbnN0
OwogI2lmIEVOQUJMRShGSUxURVJTX0xFVkVMXzIpCiAgICAgdm9pZCBjaGVja0Zvck1hdGNoaW5n
QmFja2Ryb3BGaWx0ZXJGdW5jdGlvbkxpc3RzKCk7CiAjZW5kaWYKLSAgICB2b2lkIGNoZWNrRm9y
TWF0Y2hpbmdDb2xvckZpbHRlckZ1bmN0aW9uTGlzdHMoKTsKIAotICAgIGJvb2wgY2hlY2tGb3JN
YXRjaGluZ0ZpbHRlckZ1bmN0aW9uTGlzdHMoQ1NTUHJvcGVydHlJRCwgY29uc3Qgc3RkOjpmdW5j
dGlvbjxjb25zdCBGaWx0ZXJPcGVyYXRpb25zJiAoY29uc3QgUmVuZGVyU3R5bGUmKT4mKSBjb25z
dDsKKyAgICBLZXlmcmFtZUxpc3QgbV9ibGVuZGluZ0tleWZyYW1lcyB7IGVtcHR5U3RyaW5nKCkg
fTsKKyAgICBWZWN0b3I8UGFyc2VkS2V5ZnJhbWU+IG1fcGFyc2VkS2V5ZnJhbWVzOworICAgIFZl
Y3RvcjxBY2NlbGVyYXRlZEFjdGlvbj4gbV9wZW5kaW5nQWNjZWxlcmF0ZWRBY3Rpb25zOworICAg
IFJlZlB0cjxFbGVtZW50PiBtX3RhcmdldDsKIAogICAgIEFjY2VsZXJhdGVkQWN0aW9uIG1fbGFz
dFJlY29yZGVkQWNjZWxlcmF0ZWRBY3Rpb24geyBBY2NlbGVyYXRlZEFjdGlvbjo6U3RvcCB9Owor
ICAgIEl0ZXJhdGlvbkNvbXBvc2l0ZU9wZXJhdGlvbiBtX2l0ZXJhdGlvbkNvbXBvc2l0ZU9wZXJh
dGlvbiB7IEl0ZXJhdGlvbkNvbXBvc2l0ZU9wZXJhdGlvbjo6UmVwbGFjZSB9OworICAgIENvbXBv
c2l0ZU9wZXJhdGlvbiBtX2NvbXBvc2l0ZU9wZXJhdGlvbiB7IENvbXBvc2l0ZU9wZXJhdGlvbjo6
UmVwbGFjZSB9OwogICAgIGJvb2wgbV9zaG91bGRSdW5BY2NlbGVyYXRlZCB7IGZhbHNlIH07CiAg
ICAgYm9vbCBtX25lZWRzRm9yY2VkTGF5b3V0IHsgZmFsc2UgfTsKICAgICBib29sIG1fdHJpZ2dl
cnNTdGFja2luZ0NvbnRleHQgeyBmYWxzZSB9OwpAQCAtMTc0LDE0ICsxODAsNiBAQCBwcml2YXRl
OgogICAgIGJvb2wgbV9iYWNrZHJvcEZpbHRlckZ1bmN0aW9uTGlzdHNNYXRjaCB7IGZhbHNlIH07
CiAjZW5kaWYKICAgICBib29sIG1fY29sb3JGaWx0ZXJGdW5jdGlvbkxpc3RzTWF0Y2ggeyBmYWxz
ZSB9OwotCi0gICAgUmVmUHRyPEVsZW1lbnQ+IG1fdGFyZ2V0OwotICAgIEtleWZyYW1lTGlzdCBt
X2JsZW5kaW5nS2V5ZnJhbWVzOwotICAgIFZlY3RvcjxQYXJzZWRLZXlmcmFtZT4gbV9wYXJzZWRL
ZXlmcmFtZXM7Ci0gICAgSXRlcmF0aW9uQ29tcG9zaXRlT3BlcmF0aW9uIG1faXRlcmF0aW9uQ29t
cG9zaXRlT3BlcmF0aW9uIHsgSXRlcmF0aW9uQ29tcG9zaXRlT3BlcmF0aW9uOjpSZXBsYWNlIH07
Ci0gICAgQ29tcG9zaXRlT3BlcmF0aW9uIG1fY29tcG9zaXRlT3BlcmF0aW9uIHsgQ29tcG9zaXRl
T3BlcmF0aW9uOjpSZXBsYWNlIH07Ci0KLSAgICBWZWN0b3I8QWNjZWxlcmF0ZWRBY3Rpb24+IG1f
cGVuZGluZ0FjY2VsZXJhdGVkQWN0aW9uczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9PcHRpb25hbEVmZmVjdFRpbWlu
Zy5oIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL09wdGlvbmFsRWZmZWN0VGltaW5nLmgKaW5k
ZXggNmQ5MTE4MTljNGUwOTdiODVlM2RjZjBiNjhkMTM3ZWVjMzY1MGY3OS4uZTQ5YzU5MTg4YWVl
NzI1YTFmOWJjMTk0YzBiYTNkODJiMGI5N2UwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YW5pbWF0aW9uL09wdGlvbmFsRWZmZWN0VGltaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYW5p
bWF0aW9uL09wdGlvbmFsRWZmZWN0VGltaW5nLmgKQEAgLTMzLDE0ICszMywxNCBAQAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBzdHJ1Y3QgT3B0aW9uYWxFZmZlY3RUaW1pbmcgeworICAgIE9wdGlv
bmFsPFZhcmlhbnQ8ZG91YmxlLCBTdHJpbmc+PiBkdXJhdGlvbjsKICAgICBPcHRpb25hbDxkb3Vi
bGU+IGRlbGF5OwogICAgIE9wdGlvbmFsPGRvdWJsZT4gZW5kRGVsYXk7Ci0gICAgT3B0aW9uYWw8
RmlsbE1vZGU+IGZpbGw7CiAgICAgT3B0aW9uYWw8ZG91YmxlPiBpdGVyYXRpb25TdGFydDsKICAg
ICBPcHRpb25hbDxkb3VibGU+IGl0ZXJhdGlvbnM7Ci0gICAgT3B0aW9uYWw8VmFyaWFudDxkb3Vi
bGUsIFN0cmluZz4+IGR1cmF0aW9uOwotICAgIE9wdGlvbmFsPFBsYXliYWNrRGlyZWN0aW9uPiBk
aXJlY3Rpb247CiAgICAgU3RyaW5nIGVhc2luZzsKKyAgICBPcHRpb25hbDxGaWxsTW9kZT4gZmls
bDsKKyAgICBPcHRpb25hbDxQbGF5YmFja0RpcmVjdGlvbj4gZGlyZWN0aW9uOwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9u
L1BsYXliYWNrRGlyZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vUGxheWJhY2tE
aXJlY3Rpb24uaAppbmRleCA0YmE5YWQ2M2VmN2Y5MTdiMzZmMmQ5OWIxMjU0NTc5ZTZiMTk3ZGE0
Li5iODM0NDM4YWNkOGQ2NDYxYWQ0NzMyN2NmMjQ3M2FkNThiN2M1MTIxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hbmltYXRpb24vUGxheWJhY2tEaXJlY3Rpb24uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9hbmltYXRpb24vUGxheWJhY2tEaXJlY3Rpb24uaApAQCAtMjcsNiArMjcsNiBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWVudW0gY2xhc3MgUGxheWJhY2tEaXJlY3Rpb24geyBO
b3JtYWwsIFJldmVyc2UsIEFsdGVybmF0ZSwgQWx0ZXJuYXRlUmV2ZXJzZSB9OworZW51bSBjbGFz
cyBQbGF5YmFja0RpcmVjdGlvbiA6IHVpbnQ4X3QgeyBOb3JtYWwsIFJldmVyc2UsIEFsdGVybmF0
ZSwgQWx0ZXJuYXRlUmV2ZXJzZSB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmggYi9Tb3VyY2UvV2Vi
Q29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmgKaW5kZXggYWUxYjdhYmZhYWZlMTRhMDVhMGZi
YzQ3NTUwZGYzZTcyZDVkZmNjMC4uNWM5MzkwOTcyYmI1YmQyNTU2MzQ2OWQzODFiYjExZmFiMTJk
NGIwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uaApAQCAtMzAsNiAr
MzAsNyBAQAogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uT3Iu
aCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9NYXJrYWJsZS5oPgog
I2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRl
IDx3dGYvUmVmQ291bnRlZC5oPgpAQCAtNjgsMTEgKzY5LDExIEBAIHB1YmxpYzoKICAgICBPcHRp
b25hbDxTZWNvbmRzPiBjdXJyZW50VGltZSgpIGNvbnN0OwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+
IHNldEN1cnJlbnRUaW1lKE9wdGlvbmFsPFNlY29uZHM+KTsKIAotICAgIGVudW0gY2xhc3MgU2ls
ZW50bHkgeyBZZXMsIE5vIH07CisgICAgZW51bSBjbGFzcyBTaWxlbnRseSA6IHVpbnQ4X3QgeyBZ
ZXMsIE5vIH07CiAgICAgZG91YmxlIHBsYXliYWNrUmF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGxh
eWJhY2tSYXRlICsgMDsgfQogICAgIHZvaWQgc2V0UGxheWJhY2tSYXRlKGRvdWJsZSk7CiAKLSAg
ICBlbnVtIGNsYXNzIFBsYXlTdGF0ZSB7IElkbGUsIFJ1bm5pbmcsIFBhdXNlZCwgRmluaXNoZWQg
fTsKKyAgICBlbnVtIGNsYXNzIFBsYXlTdGF0ZSA6IHVpbnQ4X3QgeyBJZGxlLCBSdW5uaW5nLCBQ
YXVzZWQsIEZpbmlzaGVkIH07CiAgICAgUGxheVN0YXRlIHBsYXlTdGF0ZSgpIGNvbnN0OwogCiAg
ICAgYm9vbCBwZW5kaW5nKCkgY29uc3QgeyByZXR1cm4gaGFzUGVuZGluZ1BhdXNlVGFzaygpIHx8
IGhhc1BlbmRpbmdQbGF5VGFzaygpOyB9CkBAIC0xMjgsMTEgKzEyOSwxMSBAQCBwcm90ZWN0ZWQ6
CiAgICAgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7CiAKIHByaXZhdGU6Ci0gICAgZW51bSBjbGFzcyBE
aWRTZWVrIHsgWWVzLCBObyB9OwotICAgIGVudW0gY2xhc3MgU3luY2hyb25vdXNseU5vdGlmeSB7
IFllcywgTm8gfTsKLSAgICBlbnVtIGNsYXNzIFJlc3BlY3RIb2xkVGltZSB7IFllcywgTm8gfTsK
LSAgICBlbnVtIGNsYXNzIEF1dG9SZXdpbmQgeyBZZXMsIE5vIH07Ci0gICAgZW51bSBjbGFzcyBU
aW1lVG9SdW5QZW5kaW5nVGFzayB7IE5vdFNjaGVkdWxlZCwgQVNBUCwgV2hlblJlYWR5IH07Cisg
ICAgZW51bSBjbGFzcyBEaWRTZWVrIDogdWludDhfdCB7IFllcywgTm8gfTsKKyAgICBlbnVtIGNs
YXNzIFN5bmNocm9ub3VzbHlOb3RpZnkgOiB1aW50OF90IHsgWWVzLCBObyB9OworICAgIGVudW0g
Y2xhc3MgUmVzcGVjdEhvbGRUaW1lIDogdWludDhfdCB7IFllcywgTm8gfTsKKyAgICBlbnVtIGNs
YXNzIEF1dG9SZXdpbmQgOiB1aW50OF90IHsgWWVzLCBObyB9OworICAgIGVudW0gY2xhc3MgVGlt
ZVRvUnVuUGVuZGluZ1Rhc2sgOiB1aW50OF90IHsgTm90U2NoZWR1bGVkLCBBU0FQLCBXaGVuUmVh
ZHkgfTsKIAogICAgIHZvaWQgdGltaW5nRGlkQ2hhbmdlKERpZFNlZWssIFN5bmNocm9ub3VzbHlO
b3RpZnkpOwogICAgIHZvaWQgdXBkYXRlRmluaXNoZWRTdGF0ZShEaWRTZWVrLCBTeW5jaHJvbm91
c2x5Tm90aWZ5KTsKQEAgLTE1OCwyMiArMTU5LDI1IEBAIHByaXZhdGU6CiAgICAgZG91YmxlIGVm
ZmVjdGl2ZVBsYXliYWNrUmF0ZSgpIGNvbnN0OwogICAgIHZvaWQgYXBwbHlQZW5kaW5nUGxheWJh
Y2tSYXRlKCk7CiAKLSAgICBTdHJpbmcgbV9pZDsKKyAgICBPcHRpb25hbDxkb3VibGU+IG1fcGVu
ZGluZ1BsYXliYWNrUmF0ZTsKKwogICAgIFJlZlB0cjxBbmltYXRpb25FZmZlY3Q+IG1fZWZmZWN0
OwogICAgIFJlZlB0cjxBbmltYXRpb25UaW1lbGluZT4gbV90aW1lbGluZTsKLSAgICBPcHRpb25h
bDxTZWNvbmRzPiBtX3ByZXZpb3VzQ3VycmVudFRpbWU7Ci0gICAgT3B0aW9uYWw8U2Vjb25kcz4g
bV9zdGFydFRpbWU7Ci0gICAgT3B0aW9uYWw8U2Vjb25kcz4gbV9ob2xkVGltZTsKLSAgICBpbnQg
bV9zdXNwZW5kQ291bnQgeyAwIH07CisgICAgVW5pcXVlUmVmPFJlYWR5UHJvbWlzZT4gbV9yZWFk
eVByb21pc2U7CisgICAgVW5pcXVlUmVmPEZpbmlzaGVkUHJvbWlzZT4gbV9maW5pc2hlZFByb21p
c2U7CisgICAgTWFya2FibGU8U2Vjb25kcywgU2Vjb25kczo6TWFya2FibGVUcmFpdHM+IG1fcHJl
dmlvdXNDdXJyZW50VGltZTsKKyAgICBNYXJrYWJsZTxTZWNvbmRzLCBTZWNvbmRzOjpNYXJrYWJs
ZVRyYWl0cz4gbV9zdGFydFRpbWU7CisgICAgTWFya2FibGU8U2Vjb25kcywgU2Vjb25kczo6TWFy
a2FibGVUcmFpdHM+IG1faG9sZFRpbWU7CiAgICAgZG91YmxlIG1fcGxheWJhY2tSYXRlIHsgMSB9
OwotICAgIE9wdGlvbmFsPGRvdWJsZT4gbV9wZW5kaW5nUGxheWJhY2tSYXRlOworICAgIFN0cmlu
ZyBtX2lkOworCisgICAgaW50IG1fc3VzcGVuZENvdW50IHsgMCB9OworCiAgICAgYm9vbCBtX2lz
U3RvcHBlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2lzU3VzcGVuZGVkIHsgZmFsc2UgfTsKICAg
ICBib29sIG1fZmluaXNoTm90aWZpY2F0aW9uU3RlcHNNaWNyb3Rhc2tQZW5kaW5nOwogICAgIGJv
b2wgbV9pc1JlbGV2YW50OwogICAgIGJvb2wgbV9zaG91bGRTa2lwVXBkYXRpbmdGaW5pc2hlZFN0
YXRlV2hlblJlc29sdmluZzsKLSAgICBVbmlxdWVSZWY8UmVhZHlQcm9taXNlPiBtX3JlYWR5UHJv
bWlzZTsKLSAgICBVbmlxdWVSZWY8RmluaXNoZWRQcm9taXNlPiBtX2ZpbmlzaGVkUHJvbWlzZTsK
ICAgICBUaW1lVG9SdW5QZW5kaW5nVGFzayBtX3RpbWVUb1J1blBlbmRpbmdQbGF5VGFzayB7IFRp
bWVUb1J1blBlbmRpbmdUYXNrOjpOb3RTY2hlZHVsZWQgfTsKICAgICBUaW1lVG9SdW5QZW5kaW5n
VGFzayBtX3RpbWVUb1J1blBlbmRpbmdQYXVzZVRhc2sgeyBUaW1lVG9SdW5QZW5kaW5nVGFzazo6
Tm90U2NoZWR1bGVkIH07CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>358696</attachid>
            <date>2019-01-09 05:13:32 -0800</date>
            <delta_ts>2019-01-09 23:40:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193195-20190109141330.patch</filename>
            <type>text/plain</type>
            <size>33682</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5NzIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTk3YWIwN2Q1MWIwYzQx
OWEwNWJiZmEzOWY3OGFmMWZjZDk1YmY1MS4uMjhlNjgyMzNjMTMzNWY4ZDE0NjU4Y2YwNzgyZWE4
Mzc4Zjc1NjIyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcwIEBACisyMDE5LTAxLTA5ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYiBBbmltYXRpb25z
XSBBdWRpdCBXZWIgQW5pbWF0aW9ucyBjbGFzc2VzIGZvciBtZW1vcnkgcmVkdWN0aW9uCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTMxOTUKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgY2xhc3Nlcywg
ZW51bXMgYW5kIHN0cnVjdHMgYWRkZWQgdG8gc3VwcG9ydCBXZWIgQW5pbWF0aW9ucyB3ZXJlIG5v
dCBhcyBtZW1vcnktZWZmaWNpZW50IGFzIHRoZXkgY291bGQgYmUuIFdlIG5vdyBvcmRlcgorICAg
ICAgICBtZW1iZXJzIGluIGEgd2F5IHRoYXQgcmVkdWNlcyBwYWRkaW5nLCB1c2UgTWFya2FibGU8
VCwgVHJhaXRzPiBpbnN0ZWFkIG9mIE9wdGlvbmFsPFQ+IHdoZXJlIGFwcGxpY2FibGUsIGRlY2xh
cmUgZW51bXMgYXMgdWludDhfdAorICAgICAgICBhbmQgcmVtb3ZlZCB1bm5lY2Vzc2FyeSBtZW1i
ZXJzLgorCisgICAgICAgIEFzIGEgcmVzdWx0LCBjbGFzc2VzIGFuZCBzdHJ1Y3RzIGhhdmUgc2hy
dW5rIGFzIGZvbGxvd3M6CisKKyAgICAgICAgV2ViQW5pbWF0aW9uOiAyNTYgPiAyMTYKKyAgICAg
ICAgRGVjbGFyYXRpdmVBbmltYXRpb246IDM5MiA+IDM0NAorICAgICAgICBDU1NBbmltYXRpb246
IDQxNiA+IDM2OAorICAgICAgICBDU1NUcmFuc2l0aW9uOiA0NDAgPiAzOTIKKyAgICAgICAgQW5p
bWF0aW9uRWZmZWN0OiA4OCA+IDcyCisgICAgICAgIEtleWZyYW1lRWZmZWN0OiAyMDggPiAxODQK
KyAgICAgICAgQW5pbWF0aW9uUGxheWJhY2tFdmVudDogMTA0ID4gODgKKyAgICAgICAgRWZmZWN0
VGltaW5nOiA3MiA+IDY0CisgICAgICAgIENvbXB1dGVkRWZmZWN0VGltaW5nOiAxMzYgPiAxMTIK
KyAgICAgICAgQW5pbWF0aW9uVGltZWxpbmU6IDI2NCA+IDI0OAorICAgICAgICBEb2N1bWVudFRp
bWVsaW5lOiA0OTYgPiA0NjQKKyAgICAgICAgT3B0aW9uYWxFZmZlY3RUaW1pbmc6IDExMiA+IDgw
CisgICAgICAgIEJhc2VLZXlmcmFtZTogMzIgPiAyNAorICAgICAgICBQYXJzZWRLZXlmcmFtZTog
ODAgPiA3MgorICAgICAgICBCYXNlQ29tcHV0ZWRLZXlmcmFtZTogNDAgPiAzMgorCisgICAgICAg
ICogYW5pbWF0aW9uL0FuaW1hdGlvbkVmZmVjdC5oOiBPcmRlciBtZW1iZXJzIGluIGRlY3JlYXNp
bmcgc2l6ZSwgZXhjZXB0IGZvciBtX2ZpbGwgYW5kIG1fZGlyZWN0aW9uLCB3aGljaCB3ZSBwdXQg
YXQgdGhlIHRvcCB0bworICAgICAgICBzYXZlIDggYnl0ZXMgKDIgYnl0ZXMgb2YgcGFkZGluZyBp
bnN0ZWFkIG9mIDQgYmVmb3JlIG1fYW5pbWF0aW9uIGFuZCBzYXZpbmcgNiBieXRlcyBvZiBwYWRk
aW5nIGF0IHRoZSBlbmQpLgorICAgICAgICAqIGFuaW1hdGlvbi9BbmltYXRpb25QbGF5YmFja0V2
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvblBsYXliYWNrRXZlbnQ6OkFuaW1h
dGlvblBsYXliYWNrRXZlbnQpOgorICAgICAgICAqIGFuaW1hdGlvbi9BbmltYXRpb25QbGF5YmFj
a0V2ZW50Lmg6CisgICAgICAgICogYW5pbWF0aW9uL0FuaW1hdGlvblBsYXliYWNrRXZlbnRJbml0
Lmg6CisgICAgICAgICogYW5pbWF0aW9uL0FuaW1hdGlvblRpbWVsaW5lLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkFuaW1hdGlvblRpbWVsaW5lOjpBbmltYXRpb25UaW1lbGluZSk6CisgICAgICAg
IChXZWJDb3JlOjpBbmltYXRpb25UaW1lbGluZTo6dXBkYXRlQ1NTVHJhbnNpdGlvbnNGb3JFbGVt
ZW50KToKKyAgICAgICAgKiBhbmltYXRpb24vQW5pbWF0aW9uVGltZWxpbmUuaDogV2UgcmVtb3Zl
IHRoZSBtX2NsYXNzVHlwZSBtZW1iZXIgYW5kIGluc3RlYWQgbWFrZSBpc0RvY3VtZW50VGltZWxp
bmUoKSB2aXJ0dWFsLgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uVGltZWxpbmU6OmlzRG9j
dW1lbnRUaW1lbGluZSBjb25zdCk6CisgICAgICAgICgpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6QW5pbWF0aW9uVGltZWxpbmU6OmNsYXNzVHlwZSBjb25zdCk6IERlbGV0ZWQuCisgICAg
ICAgICogYW5pbWF0aW9uL0NvbXBvc2l0ZU9wZXJhdGlvbi5oOgorICAgICAgICAqIGFuaW1hdGlv
bi9Db21wb3NpdGVPcGVyYXRpb25PckF1dG8uaDoKKyAgICAgICAgKiBhbmltYXRpb24vQ29tcHV0
ZWRFZmZlY3RUaW1pbmcuaDoKKyAgICAgICAgKiBhbmltYXRpb24vRGVjbGFyYXRpdmVBbmltYXRp
b24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGVjbGFyYXRpdmVBbmltYXRpb246OkRlY2xhcmF0
aXZlQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkRlY2xhcmF0aXZlQW5pbWF0aW9uOjpp
bnZhbGlkYXRlRE9NRXZlbnRzKToKKyAgICAgICAgKiBhbmltYXRpb24vRGVjbGFyYXRpdmVBbmlt
YXRpb24uaDogV2Uga2VlcCBtX3dhc1BlbmRpbmcgYW5kIG1fcHJldmlvdXNQaGFzZSBhdCB0aGUg
dG9wIHRvIHNhdmUgc29tZSBwYWRkaW5nIGF0IHRoZSBlbmQuCisgICAgICAgICogYW5pbWF0aW9u
L0RvY3VtZW50VGltZWxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRUaW1lbGlu
ZTo6RG9jdW1lbnRUaW1lbGluZSk6CisgICAgICAgICogYW5pbWF0aW9uL0RvY3VtZW50VGltZWxp
bmUuaDoKKyAgICAgICAgKiBhbmltYXRpb24vRWZmZWN0VGltaW5nLmg6CisgICAgICAgICogYW5p
bWF0aW9uL0ZpbGxNb2RlLmg6CisgICAgICAgICogYW5pbWF0aW9uL0l0ZXJhdGlvbkNvbXBvc2l0
ZU9wZXJhdGlvbi5oOgorICAgICAgICAqIGFuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpjb21wdXRlTWlzc2luZ0tleWZyYW1lT2Zmc2V0cyk6CisgICAgICAg
IChXZWJDb3JlOjpLZXlmcmFtZUVmZmVjdDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Oktl
eWZyYW1lRWZmZWN0OjpLZXlmcmFtZUVmZmVjdCk6CisgICAgICAgICogYW5pbWF0aW9uL0tleWZy
YW1lRWZmZWN0Lmg6CisgICAgICAgICogYW5pbWF0aW9uL09wdGlvbmFsRWZmZWN0VGltaW5nLmg6
CisgICAgICAgICogYW5pbWF0aW9uL1BsYXliYWNrRGlyZWN0aW9uLmg6CisgICAgICAgICogYW5p
bWF0aW9uL1dlYkFuaW1hdGlvbi5oOgorICAgICAgICAqIGFuaW1hdGlvbi9XZWJBbmltYXRpb25V
dGlsaXRpZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkFuaW1hdGlvbnNNYXJrYWJsZURvdWJs
ZVRyYWl0czo6aXNFbXB0eVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkFuaW1hdGlvbnNN
YXJrYWJsZURvdWJsZVRyYWl0czo6ZW1wdHlWYWx1ZSk6CisKIDIwMTgtMTItMTkgIEFudG9pbmUg
UXVpbnQgIDxncmFvdXRzQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViIEFuaW1hdGlvbnNdIENv
bXB1dGUgYW5pbWF0aW9uIGVmZmVjdCB0aW1pbmcgcHJvcGVydGllcyBpbiBiYXRjaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0FuaW1hdGlvbkVmZmVjdC5oIGIvU291cmNl
L1dlYkNvcmUvYW5pbWF0aW9uL0FuaW1hdGlvbkVmZmVjdC5oCmluZGV4IGIzNjRjOTM1MGY1MGZj
MmZiMTFjODEzNTU0MzRkNDkxMjEwNTA4YmIuLjgyZGU3NDI4OWIwOWI5MDZlODEzMzAwNjhiNzQ0
MjM0ZmZhZDRmYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRp
b25FZmZlY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQW5pbWF0aW9uRWZmZWN0
LmgKQEAgLTk0LDE3ICs5NCwyMCBAQCBwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQgQW5pbWF0aW9u
RWZmZWN0KCk7CiAKIHByaXZhdGU6Ci0gICAgZW51bSBjbGFzcyBDb21wdXRlZERpcmVjdGlvbiB7
IEZvcndhcmRzLCBSZXZlcnNlIH07CisgICAgZW51bSBjbGFzcyBDb21wdXRlZERpcmVjdGlvbiA6
IHVpbnQ4X3QgeyBGb3J3YXJkcywgUmV2ZXJzZSB9OwogCi0gICAgU2Vjb25kcyBtX2RlbGF5IHsg
MF9zIH07Ci0gICAgU2Vjb25kcyBtX2VuZERlbGF5IHsgMF9zIH07CiAgICAgRmlsbE1vZGUgbV9m
aWxsIHsgRmlsbE1vZGU6OkF1dG8gfTsKKyAgICBQbGF5YmFja0RpcmVjdGlvbiBtX2RpcmVjdGlv
biB7IFBsYXliYWNrRGlyZWN0aW9uOjpOb3JtYWwgfTsKKworICAgIFdlYWtQdHI8V2ViQW5pbWF0
aW9uPiBtX2FuaW1hdGlvbjsKKyAgICBSZWZQdHI8VGltaW5nRnVuY3Rpb24+IG1fdGltaW5nRnVu
Y3Rpb247CisKICAgICBkb3VibGUgbV9pdGVyYXRpb25TdGFydCB7IDAgfTsKICAgICBkb3VibGUg
bV9pdGVyYXRpb25zIHsgMSB9OworCisgICAgU2Vjb25kcyBtX2RlbGF5IHsgMF9zIH07CisgICAg
U2Vjb25kcyBtX2VuZERlbGF5IHsgMF9zIH07CiAgICAgU2Vjb25kcyBtX2l0ZXJhdGlvbkR1cmF0
aW9uIHsgMF9zIH07Ci0gICAgUGxheWJhY2tEaXJlY3Rpb24gbV9kaXJlY3Rpb24geyBQbGF5YmFj
a0RpcmVjdGlvbjo6Tm9ybWFsIH07Ci0gICAgUmVmUHRyPFRpbWluZ0Z1bmN0aW9uPiBtX3RpbWlu
Z0Z1bmN0aW9uOwotICAgIFdlYWtQdHI8V2ViQW5pbWF0aW9uPiBtX2FuaW1hdGlvbjsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1h
dGlvbi9BbmltYXRpb25QbGF5YmFja0V2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlv
bi9BbmltYXRpb25QbGF5YmFja0V2ZW50LmNwcAppbmRleCA4Y2ZhNTRmMjNiZjU3NjRlZTMyYjU4
ZTc2MjViMzY3NTI5ZDRlOGQ3Li4zYWQxYWVkYjIwMjU3Yjg4NjE5NmFkOWE1NDZhMDE1ZjA2MWY5
Y2UzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQW5pbWF0aW9uUGxheWJh
Y2tFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0FuaW1hdGlvblBsYXli
YWNrRXZlbnQuY3BwCkBAIC0zMywxNSArMzMsMTUgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogQW5p
bWF0aW9uUGxheWJhY2tFdmVudDo6QW5pbWF0aW9uUGxheWJhY2tFdmVudChjb25zdCBBdG9taWNT
dHJpbmcmIHR5cGUsIGNvbnN0IEFuaW1hdGlvblBsYXliYWNrRXZlbnRJbml0JiBpbml0aWFsaXpl
ciwgSXNUcnVzdGVkIGlzVHJ1c3RlZCkKICAgICA6IEV2ZW50KHR5cGUsIGluaXRpYWxpemVyLCBp
c1RydXN0ZWQpCiB7Ci0gICAgaWYgKGluaXRpYWxpemVyLmN1cnJlbnRUaW1lID09IFdURjo6bnVs
bG9wdCkKLSAgICAgICAgbV9jdXJyZW50VGltZSA9IFdURjo6bnVsbG9wdDsKKyAgICBpZiAoaW5p
dGlhbGl6ZXIuY3VycmVudFRpbWUpCisgICAgICAgIG1fY3VycmVudFRpbWUgPSBTZWNvbmRzOjpm
cm9tTWlsbGlzZWNvbmRzKCppbml0aWFsaXplci5jdXJyZW50VGltZSk7CiAgICAgZWxzZQotICAg
ICAgICBtX2N1cnJlbnRUaW1lID0gU2Vjb25kczo6ZnJvbU1pbGxpc2Vjb25kcyhpbml0aWFsaXpl
ci5jdXJyZW50VGltZS52YWx1ZSgpKTsKKyAgICAgICAgbV9jdXJyZW50VGltZSA9IFdURjo6bnVs
bG9wdDsKIAotICAgIGlmIChpbml0aWFsaXplci50aW1lbGluZVRpbWUgPT0gV1RGOjpudWxsb3B0
KQotICAgICAgICBtX3RpbWVsaW5lVGltZSA9IFdURjo6bnVsbG9wdDsKKyAgICBpZiAoaW5pdGlh
bGl6ZXIudGltZWxpbmVUaW1lKQorICAgICAgICBtX3RpbWVsaW5lVGltZSA9IFNlY29uZHM6OmZy
b21NaWxsaXNlY29uZHMoKmluaXRpYWxpemVyLnRpbWVsaW5lVGltZSk7CiAgICAgZWxzZQotICAg
ICAgICBtX3RpbWVsaW5lVGltZSA9IFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHMoaW5pdGlhbGl6
ZXIudGltZWxpbmVUaW1lLnZhbHVlKCkpOworICAgICAgICBtX3RpbWVsaW5lVGltZSA9IFdURjo6
bnVsbG9wdDsKIH0KIAogQW5pbWF0aW9uUGxheWJhY2tFdmVudDo6QW5pbWF0aW9uUGxheWJhY2tF
dmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIE9wdGlvbmFsPFNlY29uZHM+IGN1cnJlbnRU
aW1lLCBPcHRpb25hbDxTZWNvbmRzPiB0aW1lbGluZVRpbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hbmltYXRpb24vQW5pbWF0aW9uUGxheWJhY2tFdmVudC5oIGIvU291cmNlL1dlYkNv
cmUvYW5pbWF0aW9uL0FuaW1hdGlvblBsYXliYWNrRXZlbnQuaAppbmRleCBjYjdmYjg4NWJjYWMy
MzliYzFlOWVjNzU2MTg0NWM0ZDU5YWE4ODUxLi5lYTg4ZDE0ZWQ5MWZkZmE2Mjk5OWMxZTRjOGNi
NTNkN2EzYWZkNWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQW5pbWF0
aW9uUGxheWJhY2tFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRp
b25QbGF5YmFja0V2ZW50LmgKQEAgLTI1LDggKzI1LDkgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNp
bmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUgIkFuaW1hdGlvblBsYXliYWNrRXZlbnRJbml0Lmgi
CisjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlIDx3dGYvTWFya2FibGUuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCkBAIC01NSw4ICs1Niw4IEBAIHByaXZhdGU6CiAgICAgQW5pbWF0aW9u
UGxheWJhY2tFdmVudChjb25zdCBBdG9taWNTdHJpbmcmLCBPcHRpb25hbDxTZWNvbmRzPiwgT3B0
aW9uYWw8U2Vjb25kcz4pOwogICAgIEFuaW1hdGlvblBsYXliYWNrRXZlbnQoY29uc3QgQXRvbWlj
U3RyaW5nJiwgY29uc3QgQW5pbWF0aW9uUGxheWJhY2tFdmVudEluaXQmLCBJc1RydXN0ZWQpOwog
Ci0gICAgT3B0aW9uYWw8U2Vjb25kcz4gbV9jdXJyZW50VGltZTsKLSAgICBPcHRpb25hbDxTZWNv
bmRzPiBtX3RpbWVsaW5lVGltZTsKKyAgICBNYXJrYWJsZTxTZWNvbmRzLCBTZWNvbmRzOjpNYXJr
YWJsZVRyYWl0cz4gbV9jdXJyZW50VGltZTsKKyAgICBNYXJrYWJsZTxTZWNvbmRzLCBTZWNvbmRz
OjpNYXJrYWJsZVRyYWl0cz4gbV90aW1lbGluZVRpbWU7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQW5pbWF0aW9uUGxheWJhY2tFdmVudEluaXQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRpb25QbGF5YmFja0V2ZW50SW5pdC5oCmluZGV4
IGRjMWU3ODhmMDFjMDA4YzU2YmVjYmVjMjAxNjEzZDEwMzk0MTIzYWIuLmVmNzE0Yzg2Y2ZjZDY2
ZWNjM2M4MmYyNzg3ZWNhOGIwNzdmZGQ0ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fu
aW1hdGlvbi9BbmltYXRpb25QbGF5YmFja0V2ZW50SW5pdC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FuaW1hdGlvbi9BbmltYXRpb25QbGF5YmFja0V2ZW50SW5pdC5oCkBAIC0yNiwxMyArMjYsMTMg
QEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiRXZlbnRJbml0LmgiCi0jaW5jbHVkZSA8d3Rm
L09wdGlvbmFsLmg+CisjaW5jbHVkZSAiV2ViQW5pbWF0aW9uVXRpbGl0aWVzLmgiCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogc3RydWN0IEFuaW1hdGlvblBsYXliYWNrRXZlbnRJbml0IDogRXZl
bnRJbml0IHsKLSAgICBPcHRpb25hbDxkb3VibGU+IGN1cnJlbnRUaW1lOwotICAgIE9wdGlvbmFs
PGRvdWJsZT4gdGltZWxpbmVUaW1lOworICAgIE1hcmthYmxlRG91YmxlIGN1cnJlbnRUaW1lOwor
ICAgIE1hcmthYmxlRG91YmxlIHRpbWVsaW5lVGltZTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRpb25UaW1lbGluZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9hbmltYXRpb24vQW5pbWF0aW9uVGltZWxpbmUuY3BwCmluZGV4IGY1NTBmYzkyODIxMDky
Mzg2MzE5NzcxNzNiNmRjMTgwNzY2NjU0MWQuLmZhYWQzNGM0YWNiMjljZmZkMWFkNGViZTY3YTUx
YzgyNGMyYWU2YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRp
b25UaW1lbGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0FuaW1hdGlvblRp
bWVsaW5lLmNwcApAQCAtNDYsOCArNDYsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUFu
aW1hdGlvblRpbWVsaW5lOjpBbmltYXRpb25UaW1lbGluZShDbGFzc1R5cGUgY2xhc3NUeXBlKQot
ICAgIDogbV9jbGFzc1R5cGUoY2xhc3NUeXBlKQorQW5pbWF0aW9uVGltZWxpbmU6OkFuaW1hdGlv
blRpbWVsaW5lKCkKIHsKIH0KIApAQCAtNDU5LDggKzQ1OCwxMCBAQCB2b2lkIEFuaW1hdGlvblRp
bWVsaW5lOjp1cGRhdGVDU1NUcmFuc2l0aW9uc0ZvckVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCwg
Y29uc3QgUgogICAgICAgICAgICAgICAgIC8vICAgLSBlbmQgdmFsdWUgaXMgdGhlIHZhbHVlIG9m
IHRoZSBwcm9wZXJ0eSBpbiB0aGUgYWZ0ZXItY2hhbmdlIHN0eWxlCiAgICAgICAgICAgICAgICAg
YXV0byYgcmV2ZXJzaW5nQWRqdXN0ZWRTdGFydFN0eWxlID0gcHJldmlvdXNseVJ1bm5pbmdUcmFu
c2l0aW9uLT50YXJnZXRTdHlsZSgpOwogICAgICAgICAgICAgICAgIGRvdWJsZSB0cmFuc2Zvcm1l
ZFByb2dyZXNzID0gMTsKLSAgICAgICAgICAgICAgICBpZiAoYXV0byogZWZmZWN0ID0gcHJldmlv
dXNseVJ1bm5pbmdUcmFuc2l0aW9uLT5lZmZlY3QoKSkKLSAgICAgICAgICAgICAgICAgICAgdHJh
bnNmb3JtZWRQcm9ncmVzcyA9IGVmZmVjdC0+Z2V0Q29tcHV0ZWRUaW1pbmcoKS5wcm9ncmVzcy52
YWx1ZU9yKHRyYW5zZm9ybWVkUHJvZ3Jlc3MpOworICAgICAgICAgICAgICAgIGlmIChhdXRvKiBl
ZmZlY3QgPSBwcmV2aW91c2x5UnVubmluZ1RyYW5zaXRpb24tPmVmZmVjdCgpKSB7CisgICAgICAg
ICAgICAgICAgICAgIGlmIChhdXRvIGNvbXB1dGVkVGltaW5nUHJvZ3Jlc3MgPSBlZmZlY3QtPmdl
dENvbXB1dGVkVGltaW5nKCkucHJvZ3Jlc3MpCisgICAgICAgICAgICAgICAgICAgICAgICB0cmFu
c2Zvcm1lZFByb2dyZXNzID0gKmNvbXB1dGVkVGltaW5nUHJvZ3Jlc3M7CisgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgIGF1dG8gcmV2ZXJzaW5nU2hvcnRlbmluZ0ZhY3RvciA9IHN0
ZDo6bWF4KHN0ZDo6bWluKCgodHJhbnNmb3JtZWRQcm9ncmVzcyAqIHByZXZpb3VzbHlSdW5uaW5n
VHJhbnNpdGlvbi0+cmV2ZXJzaW5nU2hvcnRlbmluZ0ZhY3RvcigpKSArICgxIC0gcHJldmlvdXNs
eVJ1bm5pbmdUcmFuc2l0aW9uLT5yZXZlcnNpbmdTaG9ydGVuaW5nRmFjdG9yKCkpKSwgMS4wKSwg
MC4wKTsKICAgICAgICAgICAgICAgICBhdXRvIGRlbGF5ID0gbWF0Y2hpbmdCYWNraW5nQW5pbWF0
aW9uLT5kZWxheSgpIDwgMCA/IFNlY29uZHMobWF0Y2hpbmdCYWNraW5nQW5pbWF0aW9uLT5kZWxh
eSgpKSAqIHJldmVyc2luZ1Nob3J0ZW5pbmdGYWN0b3IgOiBTZWNvbmRzKG1hdGNoaW5nQmFja2lu
Z0FuaW1hdGlvbi0+ZGVsYXkoKSk7CiAgICAgICAgICAgICAgICAgYXV0byBkdXJhdGlvbiA9IFNl
Y29uZHMobWF0Y2hpbmdCYWNraW5nQW5pbWF0aW9uLT5kdXJhdGlvbigpKSAqIHJldmVyc2luZ1No
b3J0ZW5pbmdGYWN0b3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQW5p
bWF0aW9uVGltZWxpbmUuaCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRpb25UaW1l
bGluZS5oCmluZGV4IDU4M2U2NjYyMGM1ZDVmZGE0NTdkODMxNjU4N2Y2MTEzZWMxYmI2YjQuLjBm
MzE4YmYyZmZkYTAyZmU4Y2IzZWRhOGM5MGVmNTM5MzBhMTQ3YzggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRpb25UaW1lbGluZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FuaW1hdGlvbi9BbmltYXRpb25UaW1lbGluZS5oCkBAIC0zMyw2ICszMyw3IEBACiAjaW5j
bHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUg
PHd0Zi9MaXN0SGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9NYXJrYWJsZS5oPgogI2luY2x1ZGUg
PHd0Zi9PcHRpb25hbC5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvUmVm
Q291bnRlZC5oPgpAQCAtNDcsNyArNDgsNyBAQCBjbGFzcyBFbGVtZW50OwogCiBjbGFzcyBBbmlt
YXRpb25UaW1lbGluZSA6IHB1YmxpYyBSZWZDb3VudGVkPEFuaW1hdGlvblRpbWVsaW5lPiB7CiBw
dWJsaWM6Ci0gICAgYm9vbCBpc0RvY3VtZW50VGltZWxpbmUoKSBjb25zdCB7IHJldHVybiBtX2Ns
YXNzVHlwZSA9PSBEb2N1bWVudFRpbWVsaW5lQ2xhc3M7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNE
b2N1bWVudFRpbWVsaW5lKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIHZvaWQgZm9y
Z2V0QW5pbWF0aW9uKFdlYkFuaW1hdGlvbiopOwogICAgIHZpcnR1YWwgdm9pZCBhbmltYXRpb25U
aW1pbmdEaWRDaGFuZ2UoV2ViQW5pbWF0aW9uJik7CkBAIC01Niw3ICs1Nyw3IEBAIHB1YmxpYzoK
ICAgICBPcHRpb25hbDxkb3VibGU+IGJpbmRpbmdzQ3VycmVudFRpbWUoKTsKICAgICB2aXJ0dWFs
IE9wdGlvbmFsPFNlY29uZHM+IGN1cnJlbnRUaW1lKCkgeyByZXR1cm4gbV9jdXJyZW50VGltZTsg
fQogCi0gICAgZW51bSBjbGFzcyBPcmRlcmluZyB7IFNvcnRlZCwgVW5zb3J0ZWQgfTsKKyAgICBl
bnVtIGNsYXNzIE9yZGVyaW5nIDogdWludDhfdCB7IFNvcnRlZCwgVW5zb3J0ZWQgfTsKICAgICBW
ZWN0b3I8UmVmUHRyPFdlYkFuaW1hdGlvbj4+IGFuaW1hdGlvbnNGb3JFbGVtZW50KEVsZW1lbnQm
LCBPcmRlcmluZyBvcmRlcmluZyA9IE9yZGVyaW5nOjpVbnNvcnRlZCkgY29uc3Q7CiAgICAgdm9p
ZCBlbGVtZW50V2FzUmVtb3ZlZChFbGVtZW50Jik7CiAgICAgdm9pZCByZW1vdmVBbmltYXRpb25z
Rm9yRWxlbWVudChFbGVtZW50Jik7CkBAIC03NCwxMyArNzUsNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB+QW5pbWF0aW9uVGltZWxpbmUoKTsKIAogcHJvdGVjdGVkOgotICAgIGVudW0gQ2xhc3NU
eXBlIHsKLSAgICAgICAgRG9jdW1lbnRUaW1lbGluZUNsYXNzCi0gICAgfTsKLQotICAgIENsYXNz
VHlwZSBjbGFzc1R5cGUoKSBjb25zdCB7IHJldHVybiBtX2NsYXNzVHlwZTsgfQotCi0gICAgZXhw
bGljaXQgQW5pbWF0aW9uVGltZWxpbmUoQ2xhc3NUeXBlKTsKKyAgICBleHBsaWNpdCBBbmltYXRp
b25UaW1lbGluZSgpOwogCiAgICAgTGlzdEhhc2hTZXQ8V2ViQW5pbWF0aW9uKj4gbV9hbGxBbmlt
YXRpb25zOwogICAgIExpc3RIYXNoU2V0PFJlZlB0cjxXZWJBbmltYXRpb24+PiBtX2FuaW1hdGlv
bnM7CkBAIC05MSwxMyArODYsMTMgQEAgcHJpdmF0ZToKICAgICBQcm9wZXJ0eVRvVHJhbnNpdGlv
bk1hcCYgZW5zdXJlUnVubmluZ1RyYW5zaXRpb25zQnlQcm9wZXJ0eShFbGVtZW50Jik7CiAgICAg
dm9pZCBjYW5jZWxEZWNsYXJhdGl2ZUFuaW1hdGlvbihEZWNsYXJhdGl2ZUFuaW1hdGlvbiYpOwog
Ci0gICAgQ2xhc3NUeXBlIG1fY2xhc3NUeXBlOwotICAgIE9wdGlvbmFsPFNlY29uZHM+IG1fY3Vy
cmVudFRpbWU7CiAgICAgRWxlbWVudFRvQW5pbWF0aW9uc01hcCBtX2VsZW1lbnRUb0FuaW1hdGlv
bnNNYXA7CiAgICAgRWxlbWVudFRvQW5pbWF0aW9uc01hcCBtX2VsZW1lbnRUb0NTU0FuaW1hdGlv
bnNNYXA7CiAgICAgRWxlbWVudFRvQW5pbWF0aW9uc01hcCBtX2VsZW1lbnRUb0NTU1RyYW5zaXRp
b25zTWFwOwogICAgIEhhc2hNYXA8RWxlbWVudCosIEhhc2hNYXA8U3RyaW5nLCBSZWZQdHI8Q1NT
QW5pbWF0aW9uPj4+IG1fZWxlbWVudFRvQ1NTQW5pbWF0aW9uQnlOYW1lOwogICAgIEhhc2hNYXA8
RWxlbWVudCosIFByb3BlcnR5VG9UcmFuc2l0aW9uTWFwPiBtX2VsZW1lbnRUb1J1bm5pbmdDU1NU
cmFuc2l0aW9uQnlDU1NQcm9wZXJ0eUlEOworCisgICAgTWFya2FibGU8U2Vjb25kcywgU2Vjb25k
czo6TWFya2FibGVUcmFpdHM+IG1fY3VycmVudFRpbWU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQ29tcG9zaXRlT3Bl
cmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQ29tcG9zaXRlT3BlcmF0aW9uLmgK
aW5kZXggMjA5YTU3NzkzMDZjZWI2MzljOTAwOWVlNmQ1ODlhYjQxZWI5Y2QzNS4uMGY3NWU3NDE1
ZjMzMDRiM2Q5YWFlOGRiNDA1MmRmOWU5M2FlNDM2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYW5pbWF0aW9uL0NvbXBvc2l0ZU9wZXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fu
aW1hdGlvbi9Db21wb3NpdGVPcGVyYXRpb24uaApAQCAtMjcsNiArMjcsNiBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLWVudW0gY2xhc3MgQ29tcG9zaXRlT3BlcmF0aW9uIHsgUmVwbGFjZSwg
QWRkLCBBY2N1bXVsYXRlIH07CitlbnVtIGNsYXNzIENvbXBvc2l0ZU9wZXJhdGlvbiA6IHVpbnQ4
X3QgeyBSZXBsYWNlLCBBZGQsIEFjY3VtdWxhdGUgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NvbXBvc2l0ZU9wZXJhdGlv
bk9yQXV0by5oIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NvbXBvc2l0ZU9wZXJhdGlvbk9y
QXV0by5oCmluZGV4IGEyN2RlNGUzMTEzYjFjZjY1ZTBhOTFmZTFmNDUxM2FkNGNhMjYxNTUuLjAy
NzljYTdmZDhlZWQwMTdhODhiMDY1MjQxYjNhZTZkYzRhOGQ1ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FuaW1hdGlvbi9Db21wb3NpdGVPcGVyYXRpb25PckF1dG8uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9hbmltYXRpb24vQ29tcG9zaXRlT3BlcmF0aW9uT3JBdXRvLmgKQEAgLTI3LDYg
KzI3LDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1lbnVtIGNsYXNzIENvbXBvc2l0ZU9w
ZXJhdGlvbk9yQXV0byB7IFJlcGxhY2UsIEFkZCwgQWNjdW11bGF0ZSwgQXV0byB9OworZW51bSBj
bGFzcyBDb21wb3NpdGVPcGVyYXRpb25PckF1dG8gOiB1aW50OF90IHsgUmVwbGFjZSwgQWRkLCBB
Y2N1bXVsYXRlLCBBdXRvIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Db21wdXRlZEVmZmVjdFRpbWluZy5oIGIvU291cmNl
L1dlYkNvcmUvYW5pbWF0aW9uL0NvbXB1dGVkRWZmZWN0VGltaW5nLmgKaW5kZXggYTkwOWEyYzRm
MWQ2YWMwYWU3ZjZmYjJjNjA1NGQ3YmIwNjM3MzlkMi4uNTdhYWJhMWVhNTM4NTAwNmY1NjY2NDNm
MGUxMjE4NGQ3NDRjZjhhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0Nv
bXB1dGVkRWZmZWN0VGltaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NvbXB1
dGVkRWZmZWN0VGltaW5nLmgKQEAgLTI3LDE4ICsyNywxOCBAQAogCiAjaW5jbHVkZSAiQW5pbWF0
aW9uRWZmZWN0UGhhc2UuaCIKICNpbmNsdWRlICJFZmZlY3RUaW1pbmcuaCIKLSNpbmNsdWRlIDx3
dGYvT3B0aW9uYWwuaD4KKyNpbmNsdWRlICJXZWJBbmltYXRpb25VdGlsaXRpZXMuaCIKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBzdHJ1Y3QgQ29tcHV0ZWRFZmZlY3RUaW1pbmcgOiBFZmZlY3RU
aW1pbmcgewogICAgIEFuaW1hdGlvbkVmZmVjdFBoYXNlIHBoYXNlIHsgQW5pbWF0aW9uRWZmZWN0
UGhhc2U6OklkbGUgfTsKKyAgICBNYXJrYWJsZURvdWJsZSBsb2NhbFRpbWU7CisgICAgTWFya2Fi
bGVEb3VibGUgc2ltcGxlSXRlcmF0aW9uUHJvZ3Jlc3M7CisgICAgTWFya2FibGVEb3VibGUgcHJv
Z3Jlc3M7CisgICAgTWFya2FibGVEb3VibGUgY3VycmVudEl0ZXJhdGlvbjsKICAgICBkb3VibGUg
ZW5kVGltZTsKICAgICBkb3VibGUgYWN0aXZlRHVyYXRpb247Ci0gICAgT3B0aW9uYWw8ZG91Ymxl
PiBsb2NhbFRpbWU7Ci0gICAgT3B0aW9uYWw8ZG91YmxlPiBzaW1wbGVJdGVyYXRpb25Qcm9ncmVz
czsKLSAgICBPcHRpb25hbDxkb3VibGU+IHByb2dyZXNzOwotICAgIE9wdGlvbmFsPGRvdWJsZT4g
Y3VycmVudEl0ZXJhdGlvbjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9EZWNsYXJhdGl2ZUFuaW1hdGlvbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRGVjbGFyYXRpdmVBbmltYXRpb24uY3BwCmluZGV4IDQx
N2FjZWZhMTAzOGFlYTk5ZGY4MGE5YjVhMzRjNjg5YzVlY2IxYmYuLmY3NjE5MWZmZTUwNjQ0YTk5
N2JmZTRiYmMyN2I2NjExZThjYTUwY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1h
dGlvbi9EZWNsYXJhdGl2ZUFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0
aW9uL0RlY2xhcmF0aXZlQW5pbWF0aW9uLmNwcApAQCAtMzgsOSArMzgsOSBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIERlY2xhcmF0aXZlQW5pbWF0aW9uOjpEZWNsYXJhdGl2ZUFuaW1hdGlvbihF
bGVtZW50JiBvd25pbmdFbGVtZW50LCBjb25zdCBBbmltYXRpb24mIGJhY2tpbmdBbmltYXRpb24p
CiAgICAgOiBXZWJBbmltYXRpb24ob3duaW5nRWxlbWVudC5kb2N1bWVudCgpKQorICAgICwgbV9l
dmVudFF1ZXVlKG93bmluZ0VsZW1lbnQpCiAgICAgLCBtX293bmluZ0VsZW1lbnQoJm93bmluZ0Vs
ZW1lbnQpCiAgICAgLCBtX2JhY2tpbmdBbmltYXRpb24oY29uc3RfY2FzdDxBbmltYXRpb24mPihi
YWNraW5nQW5pbWF0aW9uKSkKLSAgICAsIG1fZXZlbnRRdWV1ZShvd25pbmdFbGVtZW50KQogewog
fQogCkBAIC0yMzYsNyArMjM2LDcgQEAgdm9pZCBEZWNsYXJhdGl2ZUFuaW1hdGlvbjo6aW52YWxp
ZGF0ZURPTUV2ZW50cyhTZWNvbmRzIGVsYXBzZWRUaW1lKQogICAgIGlmIChpc1BlbmRpbmcgJiYg
bV93YXNQZW5kaW5nKQogICAgICAgICByZXR1cm47CiAKLSAgICBkb3VibGUgaXRlcmF0aW9uOwor
ICAgIGRvdWJsZSBpdGVyYXRpb24gPSAwOwogICAgIEFuaW1hdGlvbkVmZmVjdFBoYXNlIGN1cnJl
bnRQaGFzZTsKICAgICBTZWNvbmRzIGludGVydmFsU3RhcnQ7CiAgICAgU2Vjb25kcyBpbnRlcnZh
bEVuZDsKQEAgLTI0NCw3ICsyNDQsOCBAQCB2b2lkIERlY2xhcmF0aXZlQW5pbWF0aW9uOjppbnZh
bGlkYXRlRE9NRXZlbnRzKFNlY29uZHMgZWxhcHNlZFRpbWUpCiAgICAgYXV0byogYW5pbWF0aW9u
RWZmZWN0ID0gZWZmZWN0KCk7CiAgICAgaWYgKGFuaW1hdGlvbkVmZmVjdCkgewogICAgICAgICBh
dXRvIHRpbWluZyA9IGFuaW1hdGlvbkVmZmVjdC0+Z2V0Q29tcHV0ZWRUaW1pbmcoKTsKLSAgICAg
ICAgaXRlcmF0aW9uID0gdGltaW5nLmN1cnJlbnRJdGVyYXRpb24udmFsdWVPcigwKTsKKyAgICAg
ICAgaWYgKGF1dG8gY29tcHV0ZWRJdGVyYXRpb24gPSB0aW1pbmcuY3VycmVudEl0ZXJhdGlvbikK
KyAgICAgICAgICAgIGl0ZXJhdGlvbiA9ICpjb21wdXRlZEl0ZXJhdGlvbjsKICAgICAgICAgY3Vy
cmVudFBoYXNlID0gdGltaW5nLnBoYXNlOwogICAgICAgICBpbnRlcnZhbFN0YXJ0ID0gc3RkOjpt
YXgoMF9zLCBTZWNvbmRzOjpmcm9tTWlsbGlzZWNvbmRzKHN0ZDo6bWluKC10aW1pbmcuZGVsYXks
IHRpbWluZy5hY3RpdmVEdXJhdGlvbikpKTsKICAgICAgICAgaW50ZXJ2YWxFbmQgPSBzdGQ6Om1h
eCgwX3MsIFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHMoc3RkOjptaW4odGltaW5nLmVuZFRpbWUg
LSB0aW1pbmcuZGVsYXksIHRpbWluZy5hY3RpdmVEdXJhdGlvbikpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9EZWNsYXJhdGl2ZUFuaW1hdGlvbi5oIGIvU291cmNlL1dl
YkNvcmUvYW5pbWF0aW9uL0RlY2xhcmF0aXZlQW5pbWF0aW9uLmgKaW5kZXggMjEwNTc1MGIwMTBk
NmZhMzVlZDhiZGFlZGQ1MGU0ZGIyZTcwYTQzYy4uNWQ5NmQyNjk4ZmU4NDA1N2VlMzU5ZDcxZGY0
NDk4MGE5YTA2ZjA1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RlY2xh
cmF0aXZlQW5pbWF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RlY2xhcmF0
aXZlQW5pbWF0aW9uLmgKQEAgLTg0LDEyICs4NCwxNCBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVz
dW1lKCkgZmluYWw7CiAgICAgdm9pZCBzdG9wKCkgZmluYWw7CiAKLSAgICBFbGVtZW50KiBtX293
bmluZ0VsZW1lbnQ7Ci0gICAgUmVmPEFuaW1hdGlvbj4gbV9iYWNraW5nQW5pbWF0aW9uOwogICAg
IGJvb2wgbV93YXNQZW5kaW5nIHsgZmFsc2UgfTsKICAgICBBbmltYXRpb25FZmZlY3RQaGFzZSBt
X3ByZXZpb3VzUGhhc2UgeyBBbmltYXRpb25FZmZlY3RQaGFzZTo6SWRsZSB9OwotICAgIGRvdWJs
ZSBtX3ByZXZpb3VzSXRlcmF0aW9uOworCiAgICAgR2VuZXJpY0V2ZW50UXVldWUgbV9ldmVudFF1
ZXVlOworCisgICAgRWxlbWVudCogbV9vd25pbmdFbGVtZW50OworICAgIFJlZjxBbmltYXRpb24+
IG1fYmFja2luZ0FuaW1hdGlvbjsKKyAgICBkb3VibGUgbV9wcmV2aW91c0l0ZXJhdGlvbjsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fu
aW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9E
b2N1bWVudFRpbWVsaW5lLmNwcAppbmRleCBmYjQ0NWMxZDg2OGViMjRjNWM0ZmI5MjBjNTA0M2Y2
NWY0ZjNkZjcyLi4zMDE4Y2JiMmNjZDJhZjhmNzdhYmI2MGJjNmMyMzkyMzhjZmFmNGUyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGluZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmUuY3BwCkBAIC02MCwx
MyArNjAsMTMgQEAgUmVmPERvY3VtZW50VGltZWxpbmU+IERvY3VtZW50VGltZWxpbmU6OmNyZWF0
ZShEb2N1bWVudCYgZG9jdW1lbnQsIERvY3VtZW50VGltZWwKIH0KIAogRG9jdW1lbnRUaW1lbGlu
ZTo6RG9jdW1lbnRUaW1lbGluZShEb2N1bWVudCYgZG9jdW1lbnQsIFNlY29uZHMgb3JpZ2luVGlt
ZSkKLSAgICA6IEFuaW1hdGlvblRpbWVsaW5lKERvY3VtZW50VGltZWxpbmVDbGFzcykKLSAgICAs
IG1fZG9jdW1lbnQoJmRvY3VtZW50KQotICAgICwgbV9vcmlnaW5UaW1lKG9yaWdpblRpbWUpCi0g
ICAgLCBtX3RpY2tTY2hlZHVsZVRpbWVyKCp0aGlzLCAmRG9jdW1lbnRUaW1lbGluZTo6c2NoZWR1
bGVBbmltYXRpb25SZXNvbHV0aW9uSWZOZWVkZWQpCisgICAgOiBBbmltYXRpb25UaW1lbGluZSgp
CiAjaWYgIVVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1IpCiAgICAg
LCBtX2FuaW1hdGlvblJlc29sdXRpb25UaW1lcigqdGhpcywgJkRvY3VtZW50VGltZWxpbmU6OmFu
aW1hdGlvblJlc29sdXRpb25UaW1lckZpcmVkKQogI2VuZGlmCisgICAgLCBtX3RpY2tTY2hlZHVs
ZVRpbWVyKCp0aGlzLCAmRG9jdW1lbnRUaW1lbGluZTo6c2NoZWR1bGVBbmltYXRpb25SZXNvbHV0
aW9uSWZOZWVkZWQpCisgICAgLCBtX2RvY3VtZW50KCZkb2N1bWVudCkKKyAgICAsIG1fb3JpZ2lu
VGltZShvcmlnaW5UaW1lKQogewogICAgIGlmIChtX2RvY3VtZW50ICYmIG1fZG9jdW1lbnQtPnBh
Z2UoKSAmJiAhbV9kb2N1bWVudC0+cGFnZSgpLT5pc1Zpc2libGUoKSkKICAgICAgICAgc3VzcGVu
ZEFuaW1hdGlvbnMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1
bWVudFRpbWVsaW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGlu
ZS5oCmluZGV4IDFlODgwZjUxNjAzMGJiZjY1NWI5MTMyZTA2YjQ3MGM1NzJjYWVmYTguLjdjYzgx
YzlhZjM4ZjllODdiYWY2OWJmMDUyNTk5ZmMyZGY0YzljMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmUuaApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUg
IkRvY3VtZW50VGltZWxpbmVPcHRpb25zLmgiCiAjaW5jbHVkZSAiR2VuZXJpY1Rhc2tRdWV1ZS5o
IgogI2luY2x1ZGUgIlRpbWVyLmgiCisjaW5jbHVkZSA8d3RmL01hcmthYmxlLmg+CiAjaW5jbHVk
ZSA8d3RmL1JlZi5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00Myw2ICs0NCw4IEBAIHB1
YmxpYzoKICAgICBzdGF0aWMgUmVmPERvY3VtZW50VGltZWxpbmU+IGNyZWF0ZShEb2N1bWVudCYs
IERvY3VtZW50VGltZWxpbmVPcHRpb25zJiYpOwogICAgIH5Eb2N1bWVudFRpbWVsaW5lKCk7CiAK
KyAgICBib29sIGlzRG9jdW1lbnRUaW1lbGluZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7
IH0KKwogICAgIFZlY3RvcjxSZWZQdHI8V2ViQW5pbWF0aW9uPj4gZ2V0QW5pbWF0aW9ucygpIGNv
bnN0OwogCiAgICAgRG9jdW1lbnQqIGRvY3VtZW50KCkgY29uc3QgeyByZXR1cm4gbV9kb2N1bWVu
dC5nZXQoKTsgfQpAQCAtMTAwLDIzICsxMDMsMjMgQEAgcHJpdmF0ZToKICAgICB2b2lkIHRyYW5z
aXRpb25EaWRDb21wbGV0ZShSZWZQdHI8Q1NTVHJhbnNpdGlvbj4pOwogICAgIHZvaWQgc2NoZWR1
bGVOZXh0VGljaygpOwogCisjaWYgIVVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZ
X01PTklUT1IpCisgICAgdm9pZCBhbmltYXRpb25SZXNvbHV0aW9uVGltZXJGaXJlZCgpOworICAg
IFRpbWVyIG1fYW5pbWF0aW9uUmVzb2x1dGlvblRpbWVyOworI2VuZGlmCisKKyAgICBUaW1lciBt
X3RpY2tTY2hlZHVsZVRpbWVyOworICAgIEdlbmVyaWNUYXNrUXVldWU8VGltZXI+IG1fY3VycmVu
dFRpbWVDbGVhcmluZ1Rhc2tRdWV1ZTsKKyAgICBIYXNoU2V0PFJlZlB0cjxXZWJBbmltYXRpb24+
PiBtX2FjY2VsZXJhdGVkQW5pbWF0aW9uc1BlbmRpbmdSdW5uaW5nU3RhdGVDaGFuZ2U7CisgICAg
SGFzaFNldDxFbGVtZW50Kj4gbV9lbGVtZW50c1dpdGhSdW5uaW5nQWNjZWxlcmF0ZWRBbmltYXRp
b25zOworICAgIFZlY3RvcjxSZWY8QW5pbWF0aW9uUGxheWJhY2tFdmVudD4+IG1fcGVuZGluZ0Fu
aW1hdGlvbkV2ZW50czsKICAgICBSZWZQdHI8RG9jdW1lbnQ+IG1fZG9jdW1lbnQ7CisgICAgTWFy
a2FibGU8U2Vjb25kcywgU2Vjb25kczo6TWFya2FibGVUcmFpdHM+IG1fY2FjaGVkQ3VycmVudFRp
bWU7CiAgICAgU2Vjb25kcyBtX29yaWdpblRpbWU7CisgICAgdW5zaWduZWQgbV9udW1iZXJPZkFu
aW1hdGlvblRpbWVsaW5lSW52YWxpZGF0aW9uc0ZvclRlc3RpbmcgeyAwIH07CiAgICAgYm9vbCBt
X2lzU3VzcGVuZGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fd2FpdGluZ09uVk1JZGxlIHsgZmFs
c2UgfTsKICAgICBib29sIG1faXNVcGRhdGluZ0FuaW1hdGlvbnMgeyBmYWxzZSB9OwotICAgIE9w
dGlvbmFsPFNlY29uZHM+IG1fY2FjaGVkQ3VycmVudFRpbWU7Ci0gICAgR2VuZXJpY1Rhc2tRdWV1
ZTxUaW1lcj4gbV9jdXJyZW50VGltZUNsZWFyaW5nVGFza1F1ZXVlOwotICAgIEhhc2hTZXQ8UmVm
UHRyPFdlYkFuaW1hdGlvbj4+IG1fYWNjZWxlcmF0ZWRBbmltYXRpb25zUGVuZGluZ1J1bm5pbmdT
dGF0ZUNoYW5nZTsKLSAgICBWZWN0b3I8UmVmPEFuaW1hdGlvblBsYXliYWNrRXZlbnQ+PiBtX3Bl
bmRpbmdBbmltYXRpb25FdmVudHM7Ci0gICAgdW5zaWduZWQgbV9udW1iZXJPZkFuaW1hdGlvblRp
bWVsaW5lSW52YWxpZGF0aW9uc0ZvclRlc3RpbmcgeyAwIH07Ci0gICAgSGFzaFNldDxFbGVtZW50
Kj4gbV9lbGVtZW50c1dpdGhSdW5uaW5nQWNjZWxlcmF0ZWRBbmltYXRpb25zOwotICAgIFRpbWVy
IG1fdGlja1NjaGVkdWxlVGltZXI7Ci0KLSNpZiAhVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1F
X0RJU1BMQVlfTU9OSVRPUikKLSAgICB2b2lkIGFuaW1hdGlvblJlc29sdXRpb25UaW1lckZpcmVk
KCk7Ci0gICAgVGltZXIgbV9hbmltYXRpb25SZXNvbHV0aW9uVGltZXI7Ci0jZW5kaWYKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1h
dGlvbi9FZmZlY3RUaW1pbmcuaCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9FZmZlY3RUaW1p
bmcuaAppbmRleCA3ZDY3ZDE2MGE3ZTEzYmUxYzhmMTRjMGQyMTE5MmFlOGEzY2ZkNTFiLi5mNWFk
ZjRjN2I4Nzc2OGU3M2QyMWExNzMwMWQxZTM0ZjRlODJmMzkwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hbmltYXRpb24vRWZmZWN0VGltaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYW5p
bWF0aW9uL0VmZmVjdFRpbWluZy5oCkBAIC0zMywxNCArMzMsMTQgQEAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogc3RydWN0IEVmZmVjdFRpbWluZyB7CisgICAgVmFyaWFudDxkb3VibGUsIFN0cmlu
Zz4gZHVyYXRpb24geyAiYXV0byIgfTsKICAgICBkb3VibGUgZGVsYXkgeyAwIH07CiAgICAgZG91
YmxlIGVuZERlbGF5IHsgMCB9OwotICAgIEZpbGxNb2RlIGZpbGwgeyBGaWxsTW9kZTo6QXV0byB9
OwogICAgIGRvdWJsZSBpdGVyYXRpb25TdGFydCB7IDAgfTsKICAgICBkb3VibGUgaXRlcmF0aW9u
cyB7IDEgfTsKLSAgICBWYXJpYW50PGRvdWJsZSwgU3RyaW5nPiBkdXJhdGlvbiB7ICJhdXRvIiB9
OwotICAgIFBsYXliYWNrRGlyZWN0aW9uIGRpcmVjdGlvbiB7IFBsYXliYWNrRGlyZWN0aW9uOjpO
b3JtYWwgfTsKICAgICBTdHJpbmcgZWFzaW5nIHsgImxpbmVhciIgfTsKKyAgICBGaWxsTW9kZSBm
aWxsIHsgRmlsbE1vZGU6OkF1dG8gfTsKKyAgICBQbGF5YmFja0RpcmVjdGlvbiBkaXJlY3Rpb24g
eyBQbGF5YmFja0RpcmVjdGlvbjo6Tm9ybWFsIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRmlsbE1vZGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9GaWxsTW9kZS5oCmluZGV4IDY5ODRhZjQwNmE1MjQ5NWVi
YjhlNjVkZDA2ODhkYjJkZTFjZjY5MTIuLmMyNGQ5ZjQxMDBiYmIxYzQzMjVjY2Q3MWUwYzZlM2Zk
NDYwYzg0YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9GaWxsTW9kZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9GaWxsTW9kZS5oCkBAIC0yNSw4ICsyNSwx
MiBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgPHd0Zi9NYXJrYWJsZS5oPgorCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLWVudW0gY2xhc3MgRmlsbE1vZGUgeyBOb25lLCBGb3J3YXJkcywg
QmFja3dhcmRzLCBCb3RoLCBBdXRvIH07CitlbnVtIGNsYXNzIEZpbGxNb2RlIDogdWludDhfdCB7
IE5vbmUsIEZvcndhcmRzLCBCYWNrd2FyZHMsIEJvdGgsIEF1dG8gfTsKKwordHlwZWRlZiBNYXJr
YWJsZTxGaWxsTW9kZSwgRW51bU1hcmthYmxlVHJhaXRzPEZpbGxNb2RlLCA1Pj4gT3B0aW9uYWxG
aWxsTW9kZTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYW5pbWF0aW9uL0l0ZXJhdGlvbkNvbXBvc2l0ZU9wZXJhdGlvbi5oIGIvU291cmNlL1dl
YkNvcmUvYW5pbWF0aW9uL0l0ZXJhdGlvbkNvbXBvc2l0ZU9wZXJhdGlvbi5oCmluZGV4IGRlZDVm
NGVmYTg3MjZmYjJlZjA1Y2VmM2E5MGUzNTkxMDQyYWU5YjIuLjMyZWQyMzQ3ZjEyMGY4YmI3ZTEw
NTg0NzMzNzlkMGY2MzNiODlkYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlv
bi9JdGVyYXRpb25Db21wb3NpdGVPcGVyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmlt
YXRpb24vSXRlcmF0aW9uQ29tcG9zaXRlT3BlcmF0aW9uLmgKQEAgLTI3LDYgKzI3LDYgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1lbnVtIGNsYXNzIEl0ZXJhdGlvbkNvbXBvc2l0ZU9wZXJh
dGlvbiB7IFJlcGxhY2UsIEFjY3VtdWxhdGUgfTsKK2VudW0gY2xhc3MgSXRlcmF0aW9uQ29tcG9z
aXRlT3BlcmF0aW9uIDogdWludDhfdCB7IFJlcGxhY2UsIEFjY3VtdWxhdGUgfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tl
eWZyYW1lRWZmZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVj
dC5jcHAKaW5kZXggN2YyN2YxNGIwNDhjYjVhZmEwOTE5MjFmODRhMjJkMGE5NzkzYzBhYS4uOTBj
NmFkM2MzYzBkNDU4MjlmZTE4NGIxNmE4ZDFhNTg5MTNmNTE0YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuY3BwCkBAIC0xMTUsOCArMTE1LDEwIEBAIHN0YXRp
YyBpbmxpbmUgdm9pZCBjb21wdXRlTWlzc2luZ0tleWZyYW1lT2Zmc2V0cyhWZWN0b3I8S2V5ZnJh
bWVFZmZlY3Q6OlBhcnNlZEtlCiAgICAgLy8gSW4gb3VyIGltcGxlbWVudGF0aW9uLCB3ZSBvbmx5
IHNldCBub24tbnVsbCB2YWx1ZXMgdG8gYXZvaWQgbWFraW5nIGNvbXB1dGVkT2Zmc2V0IE9wdGlv
bmFsPGRvdWJsZT4uIEluc3RlYWQsIHdlJ2xsIGtub3cKICAgICAvLyB0aGF0IGEga2V5ZnJhbWUg
aGFzbid0IGhhZCBhIGNvbXB1dGVkIG9mZnNldCBieSBjaGVja2luZyBpZiBpdCBoYXMgYSBudWxs
IG9mZnNldCBhbmQgYSAwIGNvbXB1dGVkT2Zmc2V0LCBzaW5jZSB0aGUgZmlyc3QKICAgICAvLyBr
ZXlmcmFtZSB3aWxsIGFscmVhZHkgaGF2ZSBhIDAgY29tcHV0ZWRPZmZzZXQuCi0gICAgZm9yIChh
dXRvJiBrZXlmcmFtZSA6IGtleWZyYW1lcykKLSAgICAgICAga2V5ZnJhbWUuY29tcHV0ZWRPZmZz
ZXQgPSBrZXlmcmFtZS5vZmZzZXQudmFsdWVPcigwKTsKKyAgICBmb3IgKGF1dG8mIGtleWZyYW1l
IDoga2V5ZnJhbWVzKSB7CisgICAgICAgIGF1dG8gY29tcHV0ZWRPZmZzZXQgPSBrZXlmcmFtZS5v
ZmZzZXQ7CisgICAgICAgIGtleWZyYW1lLmNvbXB1dGVkT2Zmc2V0ID0gY29tcHV0ZWRPZmZzZXQg
PyAqY29tcHV0ZWRPZmZzZXQgOiAwOworICAgIH0KIAogICAgIC8vIDIuIElmIGtleWZyYW1lcyBj
b250YWlucyBtb3JlIHRoYW4gb25lIGtleWZyYW1lIGFuZCB0aGUgY29tcHV0ZWQga2V5ZnJhbWUg
b2Zmc2V0IG9mIHRoZSBmaXJzdCBrZXlmcmFtZSBpbiBrZXlmcmFtZXMgaXMgbnVsbCwKICAgICAv
LyAgICBzZXQgdGhlIGNvbXB1dGVkIGtleWZyYW1lIG9mZnNldCBvZiB0aGUgZmlyc3Qga2V5ZnJh
bWUgdG8gMC4KQEAgLTQ3MiwxNyArNDc0LDE2IEBAIEV4Y2VwdGlvbk9yPFJlZjxLZXlmcmFtZUVm
ZmVjdD4+IEtleWZyYW1lRWZmZWN0OjpjcmVhdGUoRXhlY1N0YXRlJiBzdGF0ZSwgRWxlbWVuCiAg
ICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBhdXRvIGtleWZyYW1lRWZmZWN0T3B0aW9ucyA9
IFdURjo6Z2V0PEtleWZyYW1lRWZmZWN0T3B0aW9ucz4ob3B0aW9uc1ZhbHVlKTsKICAgICAgICAg
ICAgIHRpbWluZyA9IHsKKyAgICAgICAgICAgICAgICBrZXlmcmFtZUVmZmVjdE9wdGlvbnMuZHVy
YXRpb24sCisgICAgICAgICAgICAgICAga2V5ZnJhbWVFZmZlY3RPcHRpb25zLml0ZXJhdGlvbnMs
CiAgICAgICAgICAgICAgICAga2V5ZnJhbWVFZmZlY3RPcHRpb25zLmRlbGF5LAogICAgICAgICAg
ICAgICAgIGtleWZyYW1lRWZmZWN0T3B0aW9ucy5lbmREZWxheSwKLSAgICAgICAgICAgICAgICBr
ZXlmcmFtZUVmZmVjdE9wdGlvbnMuZmlsbCwKICAgICAgICAgICAgICAgICBrZXlmcmFtZUVmZmVj
dE9wdGlvbnMuaXRlcmF0aW9uU3RhcnQsCi0gICAgICAgICAgICAgICAga2V5ZnJhbWVFZmZlY3RP
cHRpb25zLml0ZXJhdGlvbnMsCi0gICAgICAgICAgICAgICAga2V5ZnJhbWVFZmZlY3RPcHRpb25z
LmR1cmF0aW9uLAotICAgICAgICAgICAgICAgIGtleWZyYW1lRWZmZWN0T3B0aW9ucy5kaXJlY3Rp
b24sCi0gICAgICAgICAgICAgICAga2V5ZnJhbWVFZmZlY3RPcHRpb25zLmVhc2luZworICAgICAg
ICAgICAgICAgIGtleWZyYW1lRWZmZWN0T3B0aW9ucy5lYXNpbmcsCisgICAgICAgICAgICAgICAg
a2V5ZnJhbWVFZmZlY3RPcHRpb25zLmZpbGwsCisgICAgICAgICAgICAgICAga2V5ZnJhbWVFZmZl
Y3RPcHRpb25zLmRpcmVjdGlvbgogICAgICAgICAgICAgfTsKICAgICAgICAgfQotCiAgICAgICAg
IGF1dG8gdXBkYXRlVGltaW5nUmVzdWx0ID0ga2V5ZnJhbWVFZmZlY3QtPnVwZGF0ZVRpbWluZyh0
aW1pbmcpOwogICAgICAgICBpZiAodXBkYXRlVGltaW5nUmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQog
ICAgICAgICAgICAgcmV0dXJuIHVwZGF0ZVRpbWluZ1Jlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCk7
CkBAIC01MDksNyArNTEwLDYgQEAgUmVmPEtleWZyYW1lRWZmZWN0PiBLZXlmcmFtZUVmZmVjdDo6
Y3JlYXRlKGNvbnN0IEVsZW1lbnQmIHRhcmdldCkKIAogS2V5ZnJhbWVFZmZlY3Q6OktleWZyYW1l
RWZmZWN0KEVsZW1lbnQqIHRhcmdldCkKICAgICA6IG1fdGFyZ2V0KHRhcmdldCkKLSAgICAsIG1f
YmxlbmRpbmdLZXlmcmFtZXMoZW1wdHlTdHJpbmcoKSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9h
bmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuaAppbmRleCA0ZjY0Y2E0ZWFkZTA5MmU4MjU0OGM3NDNk
ZjVkMWI3YWFlYWM4YTc0Li4yZGZmZGI3NTdlODFkNWIwYzlmNzExY2U1MzQwZTJjNjBhM2M5Y2U1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuaApAQCAtMzYsNiAr
MzYsNyBAQAogI2luY2x1ZGUgIktleWZyYW1lTGlzdC5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxl
LmgiCiAjaW5jbHVkZSAiU3R5bGVQcm9wZXJ0aWVzLmgiCisjaW5jbHVkZSAiV2ViQW5pbWF0aW9u
VXRpbGl0aWVzLmgiCiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CkBAIC02MCw3ICs2MSw3IEBAIHB1YmxpYzoKICAgICB9OwogCiAgICAgc3RydWN0IEJhc2VLZXlm
cmFtZSB7Ci0gICAgICAgIE9wdGlvbmFsPGRvdWJsZT4gb2Zmc2V0OworICAgICAgICBNYXJrYWJs
ZURvdWJsZSBvZmZzZXQ7CiAgICAgICAgIFN0cmluZyBlYXNpbmcgeyAibGluZWFyIiB9OwogICAg
ICAgICBDb21wb3NpdGVPcGVyYXRpb25PckF1dG8gY29tcG9zaXRlIHsgQ29tcG9zaXRlT3BlcmF0
aW9uT3JBdXRvOjpBdXRvIH07CiAgICAgfTsKQEAgLTc2LDcgKzc3LDcgQEAgcHVibGljOgogICAg
IH07CiAKICAgICBzdHJ1Y3QgUGFyc2VkS2V5ZnJhbWUgewotICAgICAgICBPcHRpb25hbDxkb3Vi
bGU+IG9mZnNldDsKKyAgICAgICAgTWFya2FibGVEb3VibGUgb2Zmc2V0OwogICAgICAgICBkb3Vi
bGUgY29tcHV0ZWRPZmZzZXQ7CiAgICAgICAgIENvbXBvc2l0ZU9wZXJhdGlvbk9yQXV0byBjb21w
b3NpdGUgeyBDb21wb3NpdGVPcGVyYXRpb25PckF1dG86OkF1dG8gfTsKICAgICAgICAgU3RyaW5n
IGVhc2luZzsKQEAgLTkxLDcgKzkyLDcgQEAgcHVibGljOgogICAgIH07CiAKICAgICBzdHJ1Y3Qg
QmFzZUNvbXB1dGVkS2V5ZnJhbWUgewotICAgICAgICBPcHRpb25hbDxkb3VibGU+IG9mZnNldDsK
KyAgICAgICAgTWFya2FibGVEb3VibGUgb2Zmc2V0OwogICAgICAgICBkb3VibGUgY29tcHV0ZWRP
ZmZzZXQ7CiAgICAgICAgIFN0cmluZyBlYXNpbmcgeyAibGluZWFyIiB9OwogICAgICAgICBDb21w
b3NpdGVPcGVyYXRpb25PckF1dG8gY29tcG9zaXRlIHsgQ29tcG9zaXRlT3BlcmF0aW9uT3JBdXRv
OjpBdXRvIH07CkBAIC0xMzksNyArMTQwLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBLZXlm
cmFtZUVmZmVjdChFbGVtZW50Kik7CiAKLSAgICBlbnVtIGNsYXNzIEFjY2VsZXJhdGVkQWN0aW9u
IHsgUGxheSwgUGF1c2UsIFNlZWssIFN0b3AgfTsKKyAgICBlbnVtIGNsYXNzIEFjY2VsZXJhdGVk
QWN0aW9uIDogdWludDhfdCB7IFBsYXksIFBhdXNlLCBTZWVrLCBTdG9wIH07CiAKICAgICB2b2lk
IGNvcHlQcm9wZXJ0aWVzRnJvbVNvdXJjZShSZWY8S2V5ZnJhbWVFZmZlY3Q+JiYpOwogICAgIEV4
Y2VwdGlvbk9yPHZvaWQ+IHByb2Nlc3NLZXlmcmFtZXMoSlNDOjpFeGVjU3RhdGUmLCBKU0M6OlN0
cm9uZzxKU0M6OkpTT2JqZWN0PiYmKTsKQEAgLTE1NywxNCArMTU4LDIwIEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBzZXRCbGVuZGluZ0tleWZyYW1lcyhLZXlmcmFtZUxpc3QmKTsKICAgICB2b2lkIGNo
ZWNrRm9yTWF0Y2hpbmdUcmFuc2Zvcm1GdW5jdGlvbkxpc3RzKCk7CiAgICAgdm9pZCBjaGVja0Zv
ck1hdGNoaW5nRmlsdGVyRnVuY3Rpb25MaXN0cygpOworICAgIHZvaWQgY2hlY2tGb3JNYXRjaGlu
Z0NvbG9yRmlsdGVyRnVuY3Rpb25MaXN0cygpOworICAgIGJvb2wgY2hlY2tGb3JNYXRjaGluZ0Zp
bHRlckZ1bmN0aW9uTGlzdHMoQ1NTUHJvcGVydHlJRCwgY29uc3Qgc3RkOjpmdW5jdGlvbjxjb25z
dCBGaWx0ZXJPcGVyYXRpb25zJiAoY29uc3QgUmVuZGVyU3R5bGUmKT4mKSBjb25zdDsKICNpZiBF
TkFCTEUoRklMVEVSU19MRVZFTF8yKQogICAgIHZvaWQgY2hlY2tGb3JNYXRjaGluZ0JhY2tkcm9w
RmlsdGVyRnVuY3Rpb25MaXN0cygpOwogI2VuZGlmCi0gICAgdm9pZCBjaGVja0Zvck1hdGNoaW5n
Q29sb3JGaWx0ZXJGdW5jdGlvbkxpc3RzKCk7CiAKLSAgICBib29sIGNoZWNrRm9yTWF0Y2hpbmdG
aWx0ZXJGdW5jdGlvbkxpc3RzKENTU1Byb3BlcnR5SUQsIGNvbnN0IHN0ZDo6ZnVuY3Rpb248Y29u
c3QgRmlsdGVyT3BlcmF0aW9ucyYgKGNvbnN0IFJlbmRlclN0eWxlJik+JikgY29uc3Q7CisgICAg
S2V5ZnJhbWVMaXN0IG1fYmxlbmRpbmdLZXlmcmFtZXMgeyBlbXB0eVN0cmluZygpIH07CisgICAg
VmVjdG9yPFBhcnNlZEtleWZyYW1lPiBtX3BhcnNlZEtleWZyYW1lczsKKyAgICBWZWN0b3I8QWNj
ZWxlcmF0ZWRBY3Rpb24+IG1fcGVuZGluZ0FjY2VsZXJhdGVkQWN0aW9uczsKKyAgICBSZWZQdHI8
RWxlbWVudD4gbV90YXJnZXQ7CiAKICAgICBBY2NlbGVyYXRlZEFjdGlvbiBtX2xhc3RSZWNvcmRl
ZEFjY2VsZXJhdGVkQWN0aW9uIHsgQWNjZWxlcmF0ZWRBY3Rpb246OlN0b3AgfTsKKyAgICBJdGVy
YXRpb25Db21wb3NpdGVPcGVyYXRpb24gbV9pdGVyYXRpb25Db21wb3NpdGVPcGVyYXRpb24geyBJ
dGVyYXRpb25Db21wb3NpdGVPcGVyYXRpb246OlJlcGxhY2UgfTsKKyAgICBDb21wb3NpdGVPcGVy
YXRpb24gbV9jb21wb3NpdGVPcGVyYXRpb24geyBDb21wb3NpdGVPcGVyYXRpb246OlJlcGxhY2Ug
fTsKICAgICBib29sIG1fc2hvdWxkUnVuQWNjZWxlcmF0ZWQgeyBmYWxzZSB9OwogICAgIGJvb2wg
bV9uZWVkc0ZvcmNlZExheW91dCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3RyaWdnZXJzU3RhY2tp
bmdDb250ZXh0IHsgZmFsc2UgfTsKQEAgLTE3NCwxNCArMTgxLDYgQEAgcHJpdmF0ZToKICAgICBi
b29sIG1fYmFja2Ryb3BGaWx0ZXJGdW5jdGlvbkxpc3RzTWF0Y2ggeyBmYWxzZSB9OwogI2VuZGlm
CiAgICAgYm9vbCBtX2NvbG9yRmlsdGVyRnVuY3Rpb25MaXN0c01hdGNoIHsgZmFsc2UgfTsKLQot
ICAgIFJlZlB0cjxFbGVtZW50PiBtX3RhcmdldDsKLSAgICBLZXlmcmFtZUxpc3QgbV9ibGVuZGlu
Z0tleWZyYW1lczsKLSAgICBWZWN0b3I8UGFyc2VkS2V5ZnJhbWU+IG1fcGFyc2VkS2V5ZnJhbWVz
OwotICAgIEl0ZXJhdGlvbkNvbXBvc2l0ZU9wZXJhdGlvbiBtX2l0ZXJhdGlvbkNvbXBvc2l0ZU9w
ZXJhdGlvbiB7IEl0ZXJhdGlvbkNvbXBvc2l0ZU9wZXJhdGlvbjo6UmVwbGFjZSB9OwotICAgIENv
bXBvc2l0ZU9wZXJhdGlvbiBtX2NvbXBvc2l0ZU9wZXJhdGlvbiB7IENvbXBvc2l0ZU9wZXJhdGlv
bjo6UmVwbGFjZSB9OwotCi0gICAgVmVjdG9yPEFjY2VsZXJhdGVkQWN0aW9uPiBtX3BlbmRpbmdB
Y2NlbGVyYXRlZEFjdGlvbnM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vT3B0aW9uYWxFZmZlY3RUaW1pbmcuaCBiL1Nv
dXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9PcHRpb25hbEVmZmVjdFRpbWluZy5oCmluZGV4IDZkOTEx
ODE5YzRlMDk3Yjg1ZTNkY2YwYjY4ZDEzN2VlYzM2NTBmNzkuLjE2NjMyZDk0MjNkN2I2MDQ4Yjc4
MjgzMTM5ODk5NGZmZWE2NDIxMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlv
bi9PcHRpb25hbEVmZmVjdFRpbWluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9P
cHRpb25hbEVmZmVjdFRpbWluZy5oCkBAIC0yNywyMCArMjcsMjEgQEAKIAogI2luY2x1ZGUgIkZp
bGxNb2RlLmgiCiAjaW5jbHVkZSAiUGxheWJhY2tEaXJlY3Rpb24uaCIKKyNpbmNsdWRlICJXZWJB
bmltYXRpb25VdGlsaXRpZXMuaCIKICNpbmNsdWRlIDx3dGYvVmFyaWFudC5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBP
cHRpb25hbEVmZmVjdFRpbWluZyB7Ci0gICAgT3B0aW9uYWw8ZG91YmxlPiBkZWxheTsKLSAgICBP
cHRpb25hbDxkb3VibGU+IGVuZERlbGF5OwotICAgIE9wdGlvbmFsPEZpbGxNb2RlPiBmaWxsOwot
ICAgIE9wdGlvbmFsPGRvdWJsZT4gaXRlcmF0aW9uU3RhcnQ7Ci0gICAgT3B0aW9uYWw8ZG91Ymxl
PiBpdGVyYXRpb25zOwogICAgIE9wdGlvbmFsPFZhcmlhbnQ8ZG91YmxlLCBTdHJpbmc+PiBkdXJh
dGlvbjsKLSAgICBPcHRpb25hbDxQbGF5YmFja0RpcmVjdGlvbj4gZGlyZWN0aW9uOworICAgIE9w
dGlvbmFsPGRvdWJsZT4gaXRlcmF0aW9uczsgLy8gVGhpcyB2YWx1ZSBjYW5ub3QgYmUgYSBNYXJr
YWJsZURvdWJsZSBzaW5jZSB3ZSBuZWVkIHRvIGNoZWNrIGZvciBhIE5hTiB2YWx1ZS4KKyAgICBN
YXJrYWJsZURvdWJsZSBkZWxheTsKKyAgICBNYXJrYWJsZURvdWJsZSBlbmREZWxheTsKKyAgICBN
YXJrYWJsZURvdWJsZSBpdGVyYXRpb25TdGFydDsKICAgICBTdHJpbmcgZWFzaW5nOworICAgIE9w
dGlvbmFsRmlsbE1vZGUgZmlsbDsKKyAgICBPcHRpb25hbFBsYXliYWNrRGlyZWN0aW9uIGRpcmVj
dGlvbjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FuaW1hdGlvbi9QbGF5YmFja0RpcmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvYW5p
bWF0aW9uL1BsYXliYWNrRGlyZWN0aW9uLmgKaW5kZXggNGJhOWFkNjNlZjdmOTE3YjM2ZjJkOTli
MTI1NDU3OWU2YjE5N2RhNC4uNmY5MWU3ODBkMjM3OTlhMzVjN2NhMjNlMmZjMmE0MTA1MGNiMDUz
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1BsYXliYWNrRGlyZWN0aW9u
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1BsYXliYWNrRGlyZWN0aW9uLmgKQEAg
LTI1LDggKzI1LDEyIEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSA8d3RmL01hcmthYmxl
Lmg+CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotZW51bSBjbGFzcyBQbGF5YmFja0RpcmVjdGlv
biB7IE5vcm1hbCwgUmV2ZXJzZSwgQWx0ZXJuYXRlLCBBbHRlcm5hdGVSZXZlcnNlIH07CitlbnVt
IGNsYXNzIFBsYXliYWNrRGlyZWN0aW9uIDogdWludDhfdCB7IE5vcm1hbCwgUmV2ZXJzZSwgQWx0
ZXJuYXRlLCBBbHRlcm5hdGVSZXZlcnNlIH07CisKK3R5cGVkZWYgTWFya2FibGU8UGxheWJhY2tE
aXJlY3Rpb24sIEVudW1NYXJrYWJsZVRyYWl0czxQbGF5YmFja0RpcmVjdGlvbiwgND4+IE9wdGlv
bmFsUGxheWJhY2tEaXJlY3Rpb247CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uaAppbmRleCBhZTFiN2FiZmFhZmUxNGEwNWEwZmJj
NDc1NTBkZjNlNzJkNWRmY2MwLi5hZTBlNDBmMzk1OGM2MmVlMmFlOWY4MDNmMzlmMDFlZGQ3ODli
NDIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5oCkBAIC0yOSw3ICsy
OSw5IEBACiAjaW5jbHVkZSAiRE9NUHJvbWlzZVByb3h5LmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJn
ZXQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgorI2luY2x1ZGUgIldlYkFuaW1hdGlvblV0
aWxpdGllcy5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL01hcmth
YmxlLmg+CiAjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgog
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CkBAIC02OCwxMSArNzAsMTEgQEAgcHVibGljOgog
ICAgIE9wdGlvbmFsPFNlY29uZHM+IGN1cnJlbnRUaW1lKCkgY29uc3Q7CiAgICAgRXhjZXB0aW9u
T3I8dm9pZD4gc2V0Q3VycmVudFRpbWUoT3B0aW9uYWw8U2Vjb25kcz4pOwogCi0gICAgZW51bSBj
bGFzcyBTaWxlbnRseSB7IFllcywgTm8gfTsKKyAgICBlbnVtIGNsYXNzIFNpbGVudGx5IDogdWlu
dDhfdCB7IFllcywgTm8gfTsKICAgICBkb3VibGUgcGxheWJhY2tSYXRlKCkgY29uc3QgeyByZXR1
cm4gbV9wbGF5YmFja1JhdGUgKyAwOyB9CiAgICAgdm9pZCBzZXRQbGF5YmFja1JhdGUoZG91Ymxl
KTsKIAotICAgIGVudW0gY2xhc3MgUGxheVN0YXRlIHsgSWRsZSwgUnVubmluZywgUGF1c2VkLCBG
aW5pc2hlZCB9OworICAgIGVudW0gY2xhc3MgUGxheVN0YXRlIDogdWludDhfdCB7IElkbGUsIFJ1
bm5pbmcsIFBhdXNlZCwgRmluaXNoZWQgfTsKICAgICBQbGF5U3RhdGUgcGxheVN0YXRlKCkgY29u
c3Q7CiAKICAgICBib29sIHBlbmRpbmcoKSBjb25zdCB7IHJldHVybiBoYXNQZW5kaW5nUGF1c2VU
YXNrKCkgfHwgaGFzUGVuZGluZ1BsYXlUYXNrKCk7IH0KQEAgLTEyOCwxMSArMTMwLDExIEBAIHBy
b3RlY3RlZDoKICAgICB2b2lkIHN0b3AoKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKLSAgICBlbnVt
IGNsYXNzIERpZFNlZWsgeyBZZXMsIE5vIH07Ci0gICAgZW51bSBjbGFzcyBTeW5jaHJvbm91c2x5
Tm90aWZ5IHsgWWVzLCBObyB9OwotICAgIGVudW0gY2xhc3MgUmVzcGVjdEhvbGRUaW1lIHsgWWVz
LCBObyB9OwotICAgIGVudW0gY2xhc3MgQXV0b1Jld2luZCB7IFllcywgTm8gfTsKLSAgICBlbnVt
IGNsYXNzIFRpbWVUb1J1blBlbmRpbmdUYXNrIHsgTm90U2NoZWR1bGVkLCBBU0FQLCBXaGVuUmVh
ZHkgfTsKKyAgICBlbnVtIGNsYXNzIERpZFNlZWsgOiB1aW50OF90IHsgWWVzLCBObyB9OworICAg
IGVudW0gY2xhc3MgU3luY2hyb25vdXNseU5vdGlmeSA6IHVpbnQ4X3QgeyBZZXMsIE5vIH07Cisg
ICAgZW51bSBjbGFzcyBSZXNwZWN0SG9sZFRpbWUgOiB1aW50OF90IHsgWWVzLCBObyB9OworICAg
IGVudW0gY2xhc3MgQXV0b1Jld2luZCA6IHVpbnQ4X3QgeyBZZXMsIE5vIH07CisgICAgZW51bSBj
bGFzcyBUaW1lVG9SdW5QZW5kaW5nVGFzayA6IHVpbnQ4X3QgeyBOb3RTY2hlZHVsZWQsIEFTQVAs
IFdoZW5SZWFkeSB9OwogCiAgICAgdm9pZCB0aW1pbmdEaWRDaGFuZ2UoRGlkU2VlaywgU3luY2hy
b25vdXNseU5vdGlmeSk7CiAgICAgdm9pZCB1cGRhdGVGaW5pc2hlZFN0YXRlKERpZFNlZWssIFN5
bmNocm9ub3VzbHlOb3RpZnkpOwpAQCAtMTU4LDIyICsxNjAsMjQgQEAgcHJpdmF0ZToKICAgICBk
b3VibGUgZWZmZWN0aXZlUGxheWJhY2tSYXRlKCkgY29uc3Q7CiAgICAgdm9pZCBhcHBseVBlbmRp
bmdQbGF5YmFja1JhdGUoKTsKIAotICAgIFN0cmluZyBtX2lkOwogICAgIFJlZlB0cjxBbmltYXRp
b25FZmZlY3Q+IG1fZWZmZWN0OwogICAgIFJlZlB0cjxBbmltYXRpb25UaW1lbGluZT4gbV90aW1l
bGluZTsKLSAgICBPcHRpb25hbDxTZWNvbmRzPiBtX3ByZXZpb3VzQ3VycmVudFRpbWU7Ci0gICAg
T3B0aW9uYWw8U2Vjb25kcz4gbV9zdGFydFRpbWU7Ci0gICAgT3B0aW9uYWw8U2Vjb25kcz4gbV9o
b2xkVGltZTsKLSAgICBpbnQgbV9zdXNwZW5kQ291bnQgeyAwIH07CisgICAgVW5pcXVlUmVmPFJl
YWR5UHJvbWlzZT4gbV9yZWFkeVByb21pc2U7CisgICAgVW5pcXVlUmVmPEZpbmlzaGVkUHJvbWlz
ZT4gbV9maW5pc2hlZFByb21pc2U7CisgICAgTWFya2FibGU8U2Vjb25kcywgU2Vjb25kczo6TWFy
a2FibGVUcmFpdHM+IG1fcHJldmlvdXNDdXJyZW50VGltZTsKKyAgICBNYXJrYWJsZTxTZWNvbmRz
LCBTZWNvbmRzOjpNYXJrYWJsZVRyYWl0cz4gbV9zdGFydFRpbWU7CisgICAgTWFya2FibGU8U2Vj
b25kcywgU2Vjb25kczo6TWFya2FibGVUcmFpdHM+IG1faG9sZFRpbWU7CisgICAgTWFya2FibGVE
b3VibGUgbV9wZW5kaW5nUGxheWJhY2tSYXRlOwogICAgIGRvdWJsZSBtX3BsYXliYWNrUmF0ZSB7
IDEgfTsKLSAgICBPcHRpb25hbDxkb3VibGU+IG1fcGVuZGluZ1BsYXliYWNrUmF0ZTsKKyAgICBT
dHJpbmcgbV9pZDsKKworICAgIGludCBtX3N1c3BlbmRDb3VudCB7IDAgfTsKKwogICAgIGJvb2wg
bV9pc1N0b3BwZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9pc1N1c3BlbmRlZCB7IGZhbHNlIH07
CiAgICAgYm9vbCBtX2ZpbmlzaE5vdGlmaWNhdGlvblN0ZXBzTWljcm90YXNrUGVuZGluZzsKICAg
ICBib29sIG1faXNSZWxldmFudDsKICAgICBib29sIG1fc2hvdWxkU2tpcFVwZGF0aW5nRmluaXNo
ZWRTdGF0ZVdoZW5SZXNvbHZpbmc7Ci0gICAgVW5pcXVlUmVmPFJlYWR5UHJvbWlzZT4gbV9yZWFk
eVByb21pc2U7Ci0gICAgVW5pcXVlUmVmPEZpbmlzaGVkUHJvbWlzZT4gbV9maW5pc2hlZFByb21p
c2U7CiAgICAgVGltZVRvUnVuUGVuZGluZ1Rhc2sgbV90aW1lVG9SdW5QZW5kaW5nUGxheVRhc2sg
eyBUaW1lVG9SdW5QZW5kaW5nVGFzazo6Tm90U2NoZWR1bGVkIH07CiAgICAgVGltZVRvUnVuUGVu
ZGluZ1Rhc2sgbV90aW1lVG9SdW5QZW5kaW5nUGF1c2VUYXNrIHsgVGltZVRvUnVuUGVuZGluZ1Rh
c2s6Ok5vdFNjaGVkdWxlZCB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRp
b24vV2ViQW5pbWF0aW9uVXRpbGl0aWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2Vi
QW5pbWF0aW9uVXRpbGl0aWVzLmgKaW5kZXggOTdiZGQzODg4YTYyY2QzZTEwNGFmZWJjMmY3YmM4
YmEwYjQ0ZGE0ZS4uMzQyMWUyNjIxZDA2OWVmZDA4YWI4YjkxNTQ0M2E0ZmNkODJjYWMxOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvblV0aWxpdGllcy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb25VdGlsaXRpZXMuaApA
QCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgPHd0Zi9NYXJrYWJs
ZS5oPgogI2luY2x1ZGUgPHd0Zi9TZWNvbmRzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAg
LTQ1LDUgKzQ2LDE5IEBAIGlubGluZSBkb3VibGUgc2Vjb25kc1RvV2ViQW5pbWF0aW9uc0FQSVRp
bWUoY29uc3QgU2Vjb25kcyB0aW1lKQogCiBjb25zdCBhdXRvIHRpbWVFcHNpbG9uID0gU2Vjb25k
czo6ZnJvbU1pbGxpc2Vjb25kcygwLjAwMSk7CiAKK3N0cnVjdCBXZWJBbmltYXRpb25zTWFya2Fi
bGVEb3VibGVUcmFpdHMgeworICAgIHN0YXRpYyBib29sIGlzRW1wdHlWYWx1ZShkb3VibGUgdmFs
dWUpCisgICAgeworICAgICAgICByZXR1cm4gc3RkOjppc25hbih2YWx1ZSk7CisgICAgfQorCisg
ICAgc3RhdGljIGNvbnN0ZXhwciBkb3VibGUgZW1wdHlWYWx1ZSgpCisgICAgeworICAgICAgICBy
ZXR1cm4gc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKTsKKyAgICB9Cit9
OworCit0eXBlZGVmIE1hcmthYmxlPGRvdWJsZSwgV2ViQW5pbWF0aW9uc01hcmthYmxlRG91Ymxl
VHJhaXRzPiBNYXJrYWJsZURvdWJsZTsKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCg==
</data>
<flag name="review"
          id="375518"
          type_id="1"
          status="+"
          setter="ysuzuki"
    />
          </attachment>
      

    </bug>

</bugzilla>