<?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>27884</bug_id>
          
          <creation_ts>2009-07-31 09:04:00 -0700</creation_ts>
          <short_desc>Animations stutter on pages with lots of animations and 3d transforms</short_desc>
          <delta_ts>2009-08-05 12:50:01 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://www.satine.org/research/webkit/snowleopard/snowstack.html</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>cmarrin</cc>
    
    <cc>dino</cc>
    
    <cc>mitz</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>136169</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-07-31 09:04:00 -0700</bug_when>
    <thetext>On pages that make extensive use of 3d transforms and animations with dynamic content, like the snowstack demo, layout can cause the animations to stutter quite badly sometimes.

This is happening because of the -disableScreenUpdatesUntilFlush calls that I added to try to sync view/layer drawing. These calls are leaving screen updates disabled for too long.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136179</commentid>
    <comment_count>1</comment_count>
      <attachid>33882</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-07-31 09:32:54 -0700</bug_when>
    <thetext>Created attachment 33882
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136232</commentid>
    <comment_count>2</comment_count>
      <attachid>33900</attachid>
    <who name="Charles Ying">charles_ying</who>
    <bug_when>2009-07-31 13:38:42 -0700</bug_when>
    <thetext>Created attachment 33900
invertY bug on Leopard

Oops, this is the behavior on Leopard</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136255</commentid>
    <comment_count>3</comment_count>
      <attachid>33882</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2009-07-31 14:34:59 -0700</bug_when>
    <thetext>Comment on attachment 33882
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136287</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-07-31 16:04:45 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/46645</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137388</commentid>
    <comment_count>5</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-08-05 12:50:01 -0700</bug_when>
    <thetext>&lt;rdar://problem/7120860&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33882</attachid>
            <date>2009-07-31 09:32:54 -0700</date>
            <delta_ts>2009-07-31 14:34:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>27884_patch.txt</filename>
            <type>text/plain</type>
            <size>173155</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MTRkNDQ0My4uZmQxZmIwNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMTAgQEAKKzIwMDktMDctMzEgIFNpbW9uIEZyYXNl
ciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisgICAgICAgIAorICAgICAgICBBY2NlbGVyYXRlZCBhbmltYXRpb25zIHN0dXR0
ZXIgb24gcGFnZXMgd2l0aCBsb3RzIG9mIGFuaW1hdGlvbnMgYW5kIDNkIHRyYW5zZm9ybXMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3ODg0CisgICAg
ICAgIAorICAgICAgICBUaGlzIHBhdGNoIGNoYW5nZXMgdGhlIHN0cmF0ZWd5IGZvciBzeW5jaHJv
bml6aW5nIHBhaW50aW5nIHZpZXcgdGhlIHZpZXcsCisgICAgICAgIGFuZCBjb21wb3NpdGluZyBs
YXllciB1cGRhdGVzLiBQcmV2aW91c2x5IHRoZSBzdHJhdGVneSB3YXMgdG8gZGlzYWJsZSBzY3Jl
ZW4KKyAgICAgICAgdXBkYXRlcyBiZXR3ZWVuIHRoZSB0aW1lIHdlIHVwZGF0ZWQgdGhlIGxheWVy
IHRyZWUsIGFuZCBwYWludGVkIHRoZSB2aWV3LiBUaGF0CisgICAgICAgIGxlZnQgc2NyZWVuIHVw
ZGF0ZXMgZGlzYWJsZWQgZm9yIHRvbyBsb25nIChodW5kcmVkcyBvZiBtaWxsaXNlY29uZHMpIGlu
IHNvbWUKKyAgICAgICAgY2FzZXMsIGNhdXNpbmcgYW5pbWF0aW9uIHN0dXR0ZXIuCisgICAgICAg
IAorICAgICAgICBUaGUgbmV3IHN0cmF0ZWd5IGlzIHRvIGJhdGNoIHVwIGNoYW5nZXMgdG8gdGhl
IENBIGxheWVyIHRyZWUsIGFuZCBjb21taXQgdGhlbQorICAgICAgICBhbGwgYXQgb25jZSBqdXN0
IGJlZm9yZSBwYWludGluZyBoYXBwZW5zIChyZWZlcnJlZCB0byBhcyBhICJzeW5jIiBpbiB0aGUg
Y29kZSkuCisgICAgICAgIEdyYXBoaWNzTGF5ZXJDQSBub3cga2VlcHMgYSBiaXRtYXNrIG9mIGNo
YW5nZWQgcHJvcGVydGllcywgYW5kIHRoZW4gbWlncmF0ZXMKKyAgICAgICAgdGhlIHZhbHVlcyBz
dG9yZWQgaW4gR3JhcGhpY3NMYXllciBpbnRvIHRoZSBDQSBsYXllciB0cmVlIGF0IGNvbW1pdCB0
aW1lLgorICAgICAgICAKKyAgICAgICAgQ29tcG9zaXRpbmcgbGF5ZXJzIGFyZSB0aGVuIHN5bmNl
ZCBpbiBGcmFtZVZpZXc6OnBhaW50Q29udGVudHMoKS4gSG93ZXZlciwgbm90CisgICAgICAgIGFs
bCBzdHlsZS9sYXlvdXQgY2hhbmdlcyB3aWxsIHJlc3VsdCBpbiBwYWludGluZzsgdG8gZGVhbCB3
aXRoIHN0eWxlIGNoYW5nZXMgdGhhdAorICAgICAgICB0b3VjaCBvbmx5IGNvbXBvc2l0aW5nIHBy
b3BlcnRpZXMsIHdlIHNldCB1cCBhIHJ1bmxvb3Agb2JzZXJ2ZXIgdGhhdCB0YWtlcyBjYXJlCisg
ICAgICAgIG9mIGNvbWl0dGluZyBsYXllciBjaGFuZ2VzIHdoZW4gbm8gcGFpbnRpbmcgaGFwcGVu
cy4KKworICAgICAgICAqIFdlYkNvcmUuYmFzZS5leHA6IEV4cG9ydCBGcmFtZVZpZXc6OnN5bmND
b21wb3NpdGluZ1N0YXRlUmVjdXJzaXZlKCkKKworICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVu
dHMuaDogc2NoZWR1bGVWaWV3VXBkYXRlKCkgcmVuYW1lZCB0byBzeW5jQ29tcG9zaXRpbmdTdGF0
ZVJlY3Vyc2l2ZSgpCisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDogc2NoZWR1bGVWaWV3
VXBkYXRlKCkgcmVuYW1lZCB0byBzeW5jQ29tcG9zaXRpbmdTdGF0ZVJlY3Vyc2l2ZSgpCisKKyAg
ICAgICAgKiBwYWdlL0ZyYW1lVmlldy5oOgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c3luY0NvbXBvc2l0aW5nU3RhdGVSZWN1cnNp
dmUpOiBzeW5jQ29tcG9zaXRpbmdTdGF0ZSgpIG9uIHRoZQorICAgICAgICB2aWV3IGFuZCBhbGwg
c3Vidmlld3MuIExpa2UgbGF5b3V0SWZOZWVkZWRSZWN1cnNpdmUoKS4gSWYgbGF5b3V0IGlzIHBl
bmRpbmcsIGRvZXMgbm90CisgICAgICAgIHN5bmMgYW5kIHJldHVybnMgZmFsc2UsIHNpbmNlIHdl
IG9ubHkgd2FudCB0byBzeW5jIHdoZW4gbGF5b3V0IGlzIGRvbmUuCisgICAgICAgIAorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpwYWludENvbnRlbnRzKTogc3luY0NvbXBvc2l0aW5nU3Rh
dGUoKSBiZWZvcmUgcGFpbnRpbmcuCisKKyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9LZXlmcmFt
ZUFuaW1hdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZUFuaW1hdGlvbjo6ZW5k
QW5pbWF0aW9uKToKKyAgICAgICAgQ2FsbCBhbmltYXRpb25QYXVzZWQoKSB0byBub3RpZnkgdGhl
IGdyYXBoaWNzIGxheWVycyBhYm91dCBhbmltYXRpb24gcGF1c2luZy4KKyAgICAgICAgCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRQb2ludDNELmg6CisgICAgICAgIChXZWJDb3Jl
OjpvcGVyYXRvcj09KToKKyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yIT0pOiAKKyAgICAgICAg
QWRkIG1pc3NpbmcgY29tcGFyaXNvbiBvcGVyYXRvcnMuCisgICAgICAgIAorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NMYXllcjo6c2V0T3BhY2l0eSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVy
OjpzZXRCYWNrZ3JvdW5kQ29sb3IpOiBTaW1wbGUgc2V0dGVycyBubyBsb25nZXIgY2FyZSBhYm91
dCBhbmltYXRpb24gaW5mby4KKyAgICAgICAgCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xh
eWVyOjpwYWludEdyYXBoaWNzTGF5ZXJDb250ZW50cyk6IE51bGwtY2hlY2sgY2xpZW50LgorICAg
ICAgICAKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmg6CisgICAg
ICAgIChXZWJDb3JlOjpBbmltYXRpb25WYWx1ZTopOgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNm
b3JtQW5pbWF0aW9uVmFsdWU6KToKKyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1lVmFsdWVMaXN0
Oik6CisgICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZVZhbHVlTGlzdDo6aW5zZXJ0KToKKyAgICAg
ICAgQ2xlYW5lZCB1cCB2ZXJzaW9ucyBvZiBGbG9hdFZhbHVlIGFuZCBUcmFuc2Zvcm1WYWx1ZSwg
dXNlZCB0byBzdG9yZSBpbmZvcm1hdGlvbgorICAgICAgICBhYm91dCBrZXlmcmFtZXMgdmFsdWVz
LgorCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpjb250ZW50c1JlY3QpOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNSZWN0KToKKyAgICAgICAg
Q29udGVudHNSZWN0IGlzIG5vdyBhIHNpbXBsZSBzZXR0ZXIuCisgICAgICAgIAorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6YWRkQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OkdyYXBoaWNzTGF5ZXI6OnJlbW92ZUFuaW1hdGlvbnNGb3JQcm9wZXJ0eSk6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0xheWVyOjpyZW1vdmVBbmltYXRpb25zRm9yS2V5ZnJhbWVzKToKKyAg
ICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OnBhdXNlQW5pbWF0aW9uKToKKyAgICAgICAg
U2ltcGxpZmllZCBhbmltYXRpb24gYXBpLgorICAgICAgICAKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXI6OnNldEdlb21ldHJ5T3JpZW50YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NMYXllcjo6Z2VvbWV0cnlPcmllbnRhdGlvbik6CisgICAgICAgIHNldEdlb21ldHJ5
T3JpZW50YXRpb24gaXMgbm93IGp1c3QgYSBub3JtYWwgbWVtYmVyIHZhcmlhYmxlLgorICAgICAg
ICAKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OmNvbnRlbnRzT3JpZW50YXRpb24p
OiBhZGQgYSBnZXR0ZXIuCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpzeW5jQ29t
cG9zaXRpbmdTdGF0ZSk6IEVudHJ5IGludG8gdGhlIGxheWVyIHN5bmMgY29kZS4KKyAgICAgICAg
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oOiBzY2hl
ZHVsZVZpZXdVcGRhdGUoKSByZW5hbWVkIHRvIHN5bmNDb21wb3NpdGluZ1N0YXRlUmVjdXJzaXZl
KQorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0dyYXBoaWNzTGF5ZXJDQS5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9HcmFwaGljc0xheWVyQ0EubW06CisgICAg
ICAgIExvdHMgb2YgY2xlYW51cCBhbmQgcmVmYWN0b3JpbmcuIE1haW4gcG9pbnRzOgorICAgICAg
ICAtIExheWVyIGNoYW5nZXMgYXJlIGFsbCBiYXRjaGVkLCBhbmQgb25seSBjb21taXR0ZWQgdG8g
dGhlIENBIGxheWVyIG9uIHN5bmNDb21wb3NpdGluZ1N0YXRlKCkuCisgICAgICAgIC0gQml0bWFz
ayBpcyB1c2VkIHRvIHN0b3JlIHdoaWNoIHByb3BlcnRpZXMgaGF2ZSBjaGFuZ2VkLiBNb3JlIGVm
ZmljaWVudCB0aGFuIGJlZm9yZS4KKyAgICAgICAgLSBTaW1wbGVyIGFuaW1hdGlvbiBpbnRlcmZh
Y2U7IHNpbXBsZSBzZXR0ZXJzIGFyZSBubyBsb25nZXIgY29uZm91bmRlZCB3aXRoIGFuaW1hdGlv
bnMuCisgICAgICAgIC0gUmVmYWN0b3JlZCBjb2RlIHRoYXQgY3JlYXRlcyBDQSBhbmltYXRpb25z
LCBhbmQgc3RvcmVzIHdoaWNoIGFuaW1hdGlvbnMgYXJlIHJ1bm5pbmcuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybU9wZXJhdGlvbnMuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlRyYW5zZm9ybU9wZXJhdGlvbnM6OnNpemUpOgorICAgICAgICAoV2ViQ29y
ZTo6VHJhbnNmb3JtT3BlcmF0aW9uczo6YXQpOiBVc2VmdWwgYWNjZXNzb3JzIGZvciBzaXplIGFu
ZCBpbmRleGVkIGFjY2Vzcy4KKyAgICAgICAgCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxh
eWVyQmFja2luZy5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3Bw
OgorICAgICAgICBSZW5hbWVkICdjb250ZW50c0xheWVyJyB0byAnZm9yZWdyb3VuZExheWVyJyB0
byBhdm9pZCBjb25mdXNpb24gd2l0aCBHcmFwaGljc0xheWVyJ3MKKyAgICAgICAgY29udGVudHNM
YXllci4KKyAgICAgICAgQWRhcHQgdG8gR3JhcGhpY3NMYXllcidzIHNpbXBsZXIgYW5pbWF0aW9u
IEFQSS4KKyAgICAgICAgUGFzcyBhbmltYXRpb24gcGF1c2luZyB0aHJvdWdoIHRvIHRoZSBncmFw
aGljcyBsYXllcnMuCisgICAgICAgIGNvbnRlbnRzQm94KCkgaXMgbm8gbG9uZ2VyIGEgY2FsbGJh
Y2sgdmlhIEdyYXBoaWNzTGF5ZXJDbGllbnQuCisgICAgICAgIAorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5
ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRv
cjo6c2V0Q29tcG9zaXRpbmdMYXllcnNOZWVkUmVidWlsZCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMYXllckNvbXBvc2l0b3I6OnNjaGVkdWxlU3luYyk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlYnVpbGRDb21wb3NpdGluZ0xheWVyVHJlZSk6CisgICAg
ICAgIHNjaGVkdWxlVmlld1VwZGF0ZSgpIGlzIG5vIGxvbmdlciByZXF1aXJlZC4gSW5zdGVhZCwg
d2UgcGx1bWIgdGhyb3VnaCAiY29tcG9zaXRpbmdMYXllclN5bmMiCisgICAgICAgIG5vdGlmaWNh
dGlvbnMsIHdoaWNoIHRyYXZlbCB1cCB0byBXZWJLaXQgYW5kIHNldCB1cCBhIHJ1bmxvb3Agb2Jz
ZXJ2ZXIuCisgICAgICAgIAorCiAyMDA5LTA3LTMwICBNYXJrIFJvd2UgIDxtcm93ZUBhcHBsZS5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRlbGUgUGV0ZXJzb24gYW5kIEpvbiBIb25leWN1
dHQuCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuYmFzZS5leHAgYi9XZWJDb3JlL1dlYkNv
cmUuYmFzZS5leHAKaW5kZXggOTZkMTkzZS4uYmU1ZmY5MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9X
ZWJDb3JlLmJhc2UuZXhwCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5iYXNlLmV4cApAQCAtNjk3LDYg
KzY5Nyw3IEBAIF9fWk43V2ViQ29yZTlGcmFtZVZpZXcxNmFkanVzdFBhZ2VIZWlnaHRFUGZmZmYK
IF9fWk43V2ViQ29yZTlGcmFtZVZpZXcxOHVwZGF0ZUNvbnRyb2xUaW50c0V2CiBfX1pON1dlYkNv
cmU5RnJhbWVWaWV3MjJzZXRCYXNlQmFja2dyb3VuZENvbG9yRU5TXzVDb2xvckUKIF9fWk43V2Vi
Q29yZTlGcmFtZVZpZXcyM2xheW91dElmTmVlZGVkUmVjdXJzaXZlRXYKK19fWk43V2ViQ29yZTlG
cmFtZVZpZXcyOXN5bmNDb21wb3NpdGluZ1N0YXRlUmVjdXJzaXZlRXYKIF9fWk43V2ViQ29yZTlG
cmFtZVZpZXcyOWZvcmNlTGF5b3V0V2l0aFBhZ2VXaWR0aFJhbmdlRWZmYgogX19aTjdXZWJDb3Jl
OUZyYW1lVmlldzI5c2V0U2hvdWxkVXBkYXRlV2hpbGVPZmZzY3JlZW5FYgogX19aTjdXZWJDb3Jl
OUZyYW1lVmlldzZjcmVhdGVFUE5TXzVGcmFtZUUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVy
L0VtcHR5Q2xpZW50cy5oIGIvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKaW5kZXggOTMy
MThjNi4uYTE4N2ZkYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgK
KysrIGIvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTE1NSw3ICsxNTUsNyBAQCBw
dWJsaWM6CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIHZpcnR1YWwgdm9p
ZCBhdHRhY2hSb290R3JhcGhpY3NMYXllcihGcmFtZSosIEdyYXBoaWNzTGF5ZXIqKSB7fTsKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNPbmVTaG90RHJhd2luZ1N5bmNocm9uaXphdGlvbigpIHt9
OwotICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZVZpZXdVcGRhdGUoKSB7fTsKKyAgICB2aXJ0dWFs
IHZvaWQgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyU3luYygpIHt9OwogI2VuZGlmCiB9OwogCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9XZWJDb3JlL3BhZ2UvQ2hy
b21lQ2xpZW50LmgKaW5kZXggMmE5MDYxMS4uNDA5YTQ5MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
YWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAt
MTkxLDcgKzE5MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCB2b2lk
IHNldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24oKSA9IDA7CiAgICAgICAgIC8v
IFNldHMgYSBmbGFnIHRvIHNwZWNpZnkgdGhhdCB0aGUgdmlldyBuZWVkcyB0byBiZSB1cGRhdGVk
LCBzbyB3ZSBuZWVkCiAgICAgICAgIC8vIHRvIGRvIGFuIGVhZ2VyIGxheW91dCBiZWZvcmUgdGhl
IGRyYXdpbmcuCi0gICAgICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZVZpZXdVcGRhdGUoKSA9IDA7
CisgICAgICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJTeW5jKCkgPSAw
OwogI2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmNwcCBiL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IDkxNjBjODku
LjViZThkMjQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1dl
YkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC00MzksNiArNDM5LDM3IEBAIHZvaWQgRnJhbWVW
aWV3OjpzZXROZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25pemF0aW9uKCkKIH0KICNlbmRpZiAv
LyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAKK2Jvb2wgRnJhbWVWaWV3OjpzeW5jQ29t
cG9zaXRpbmdTdGF0ZVJlY3Vyc2l2ZSgpCit7CisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKQorICAgIEFTU0VSVChtX2ZyYW1lLT52aWV3KCkgPT0gdGhpcyk7CisgICAgUmVuZGVyVmll
dyogY29udGVudFJlbmRlcmVyID0gbV9mcmFtZS0+Y29udGVudFJlbmRlcmVyKCk7CisgICAgaWYg
KCFjb250ZW50UmVuZGVyZXIpCisgICAgICAgIHJldHVybiB0cnVlOyAgICAvLyBXZSBkb24ndCB3
YW50IHRvIGtlZXAgdHJ5aW5nIHRvIHVkcGF0ZSBsYXllcnMgaWYgd2UgaGF2ZSBubyByZW5kZXJl
ci4KKworICAgIGlmIChtX2xheW91dFRpbWVyLmlzQWN0aXZlKCkpIHsKKyAgICAgICAgLy8gRG9u
J3Qgc3luYyBsYXllcnMgaWYgdGhlcmUncyBhIGxheW91dCBwZW5kaW5nLgorICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgfQorICAgIAorICAgIGlmIChHcmFwaGljc0xheWVyKiByb290TGF5ZXIg
PSBjb250ZW50UmVuZGVyZXItPmNvbXBvc2l0b3IoKS0+cm9vdFBsYXRmb3JtTGF5ZXIoKSkKKyAg
ICAgICAgcm9vdExheWVyLT5zeW5jQ29tcG9zaXRpbmdTdGF0ZSgpOworCisgICAgYm9vbCBhbGxT
dWJmcmFtZXNTeW5jZWQgPSB0cnVlOworICAgIGNvbnN0IEhhc2hTZXQ8UmVmUHRyPFdpZGdldD4g
Piogdmlld0NoaWxkcmVuID0gY2hpbGRyZW4oKTsKKyAgICBIYXNoU2V0PFJlZlB0cjxXaWRnZXQ+
ID46OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IHZpZXdDaGlsZHJlbi0+ZW5kKCk7CisgICAgZm9yIChI
YXNoU2V0PFJlZlB0cjxXaWRnZXQ+ID46OmNvbnN0X2l0ZXJhdG9yIGN1cnJlbnQgPSB2aWV3Q2hp
bGRyZW4tPmJlZ2luKCk7IGN1cnJlbnQgIT0gZW5kOyArK2N1cnJlbnQpIHsKKyAgICAgICAgV2lk
Z2V0KiB3aWRnZXQgPSAoKmN1cnJlbnQpLmdldCgpOworICAgICAgICBpZiAod2lkZ2V0LT5pc0Zy
YW1lVmlldygpKSB7CisgICAgICAgICAgICBib29sIHN5bmNlZCA9IHN0YXRpY19jYXN0PEZyYW1l
Vmlldyo+KHdpZGdldCktPnN5bmNDb21wb3NpdGluZ1N0YXRlUmVjdXJzaXZlKCk7CisgICAgICAg
ICAgICBhbGxTdWJmcmFtZXNTeW5jZWQgJj0gc3luY2VkOworICAgICAgICB9CisgICAgfQorICAg
IHJldHVybiBhbGxTdWJmcmFtZXNTeW5jZWQ7CisjZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQorICAgIHJldHVybiB0cnVlOworfQorCiB2b2lkIEZyYW1lVmlldzo6ZGlkTW92
ZU9uc2NyZWVuKCkKIHsKICAgICBSZW5kZXJWaWV3KiB2aWV3ID0gbV9mcmFtZS0+Y29udGVudFJl
bmRlcmVyKCk7CkBAIC0xNDQzLDYgKzE0NzQsMTMgQEAgdm9pZCBGcmFtZVZpZXc6OnBhaW50Q29u
dGVudHMoR3JhcGhpY3NDb250ZXh0KiBwLCBjb25zdCBJbnRSZWN0JiByZWN0KQogICAgIGlmIChu
ZWVkc0xheW91dCgpKQogICAgICAgICByZXR1cm47CiAKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCisgICAgaWYgKCFwLT5wYWludGluZ0Rpc2FibGVkKCkpIHsKKyAgICAgICAgaWYg
KEdyYXBoaWNzTGF5ZXIqIHJvb3RMYXllciA9IGNvbnRlbnRSZW5kZXJlci0+Y29tcG9zaXRvcigp
LT5yb290UGxhdGZvcm1MYXllcigpKQorICAgICAgICAgICAgcm9vdExheWVyLT5zeW5jQ29tcG9z
aXRpbmdTdGF0ZSgpOworICAgIH0KKyNlbmRpZgorCiAgICAgQVNTRVJUKCFtX2lzUGFpbnRpbmcp
OwogICAgICAgICAKICAgICBtX2lzUGFpbnRpbmcgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9wYWdlL0ZyYW1lVmlldy5oIGIvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCmluZGV4IDgzZTJj
MWUuLjFiZGNmYjMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAorKysgYi9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKQEAgLTk5LDYgKzk5LDkgQEAgcHVibGljOgogICAgIC8v
IGNvbnRlbnQgcmVuZGVyZWQgdmlhIHRoZSBub3JtYWwgcGFpbnRpbmcgcGF0aC4KICAgICB2b2lk
IHNldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24oKTsKICNlbmRpZgorICAgIC8v
IE9ubHkgdXNlZCB3aXRoIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nLCBidXQgb3V0c2lkZSB0aGUg
I2lmZGVmIHRvIG1ha2UgbGlua2FnZSBlYXNpZXIuCisgICAgLy8gUmV0dXJucyB0cnVlIGlmIHRo
ZSBzeW5jIHdhcyBjb21wbGV0ZWQuCisgICAgYm9vbCBzeW5jQ29tcG9zaXRpbmdTdGF0ZVJlY3Vy
c2l2ZSgpOwogCiAgICAgdm9pZCBkaWRNb3ZlT25zY3JlZW4oKTsKICAgICB2b2lkIHdpbGxNb3Zl
T2Zmc2NyZWVuKCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0tleWZyYW1l
QW5pbWF0aW9uLmNwcCBiL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24u
Y3BwCmluZGV4IGNiODJkOWIuLjM5YWUxZTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9hbmlt
YXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9hbmltYXRpb24v
S2V5ZnJhbWVBbmltYXRpb24uY3BwCkBAIC0yMTEsOCArMjExLDEyIEBAIHZvaWQgS2V5ZnJhbWVB
bmltYXRpb246OmVuZEFuaW1hdGlvbihib29sIHJlc2V0KQogI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKICAgICAgICAgaWYgKG1fb2JqZWN0LT5oYXNMYXllcigpKSB7CiAgICAgICAg
ICAgICBSZW5kZXJMYXllciogbGF5ZXIgPSB0b1JlbmRlckJveE1vZGVsT2JqZWN0KG1fb2JqZWN0
KS0+bGF5ZXIoKTsKLSAgICAgICAgICAgIGlmIChsYXllci0+aXNDb21wb3NpdGVkKCkpCi0gICAg
ICAgICAgICAgICAgbGF5ZXItPmJhY2tpbmcoKS0+YW5pbWF0aW9uRmluaXNoZWQobV9rZXlmcmFt
ZXMuYW5pbWF0aW9uTmFtZSgpLCAwLCByZXNldCk7CisgICAgICAgICAgICBpZiAobGF5ZXItPmlz
Q29tcG9zaXRlZCgpKSB7CisgICAgICAgICAgICAgICAgaWYgKHJlc2V0KQorICAgICAgICAgICAg
ICAgICAgICBsYXllci0+YmFja2luZygpLT5hbmltYXRpb25GaW5pc2hlZChtX2tleWZyYW1lcy5h
bmltYXRpb25OYW1lKCkpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAg
ICAgbGF5ZXItPmJhY2tpbmcoKS0+YW5pbWF0aW9uUGF1c2VkKG1fa2V5ZnJhbWVzLmFuaW1hdGlv
bk5hbWUoKSk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICNlbHNlCiAgICAgICAgIFVOVVNF
RF9QQVJBTShyZXNldCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zs
b2F0UG9pbnQzRC5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFBvaW50M0QuaApp
bmRleCAyZTcxZGRkLi43M2MzYTM3IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0Zsb2F0UG9pbnQzRC5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRQ
b2ludDNELmgKQEAgLTQ5LDYgKzQ5LDE2IEBAIHByaXZhdGU6CiAgICAgZmxvYXQgbV96OwogfTsK
IAoraW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBGbG9hdFBvaW50M0QmIGEsIGNvbnN0IEZs
b2F0UG9pbnQzRCYgYikKK3sKKyAgICByZXR1cm4gYS54KCkgPT0gYi54KCkgJiYgYS55KCkgPT0g
Yi55KCkgJiYgYS56KCkgPT0gYi56KCk7Cit9CisKK2lubGluZSBib29sIG9wZXJhdG9yIT0oY29u
c3QgRmxvYXRQb2ludDNEJiBhLCBjb25zdCBGbG9hdFBvaW50M0QmIGIpCit7CisgICAgcmV0dXJu
IGEueCgpICE9IGIueCgpIHx8IGEueSgpICE9IGIueSgpIHx8IGEueigpICE9IGIueigpOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBGbG9hdFBvaW50M0RfaApkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcCBiL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAKaW5kZXggYjE4MjU0OC4u
OWE5ZWY2NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xh
eWVyLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3Bw
CkBAIC0zNSwxNDcgKzM1LDI0IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdm9pZCBHcmFw
aGljc0xheWVyOjpGbG9hdFZhbHVlOjpzZXQoZmxvYXQga2V5LCBmbG9hdCB2YWx1ZSwgY29uc3Qg
VGltaW5nRnVuY3Rpb24qIHRpbWluZ0Z1bmN0aW9uKQotewotICAgIG1fa2V5ID0ga2V5OwotICAg
IG1fdmFsdWUgPSB2YWx1ZTsKLSAgICBpZiAodGltaW5nRnVuY3Rpb24gIT0gbV90aW1pbmdGdW5j
dGlvbikgewotICAgICAgICBpZiAodGltaW5nRnVuY3Rpb24pCi0gICAgICAgICAgICBtX3RpbWlu
Z0Z1bmN0aW9uLnNldChuZXcgVGltaW5nRnVuY3Rpb24oKnRpbWluZ0Z1bmN0aW9uKSk7Ci0gICAg
ICAgIGVsc2UKLSAgICAgICAgICAgIG1fdGltaW5nRnVuY3Rpb24uY2xlYXIoKTsKLSAgICB9Ci19
Ci0KLXZvaWQgR3JhcGhpY3NMYXllcjo6VHJhbnNmb3JtVmFsdWU6OnNldChmbG9hdCBrZXksIGNv
bnN0IFRyYW5zZm9ybU9wZXJhdGlvbnMqIHZhbHVlLCBjb25zdCBUaW1pbmdGdW5jdGlvbiogdGlt
aW5nRnVuY3Rpb24pCi17Ci0gICAgbV9rZXkgPSBrZXk7Ci0gICAgaWYgKHZhbHVlICE9IG1fdmFs
dWUpIHsKLSAgICAgICAgaWYgKHZhbHVlKQotICAgICAgICAgICAgbV92YWx1ZS5zZXQobmV3IFRy
YW5zZm9ybU9wZXJhdGlvbnMoKnZhbHVlKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIG1f
dmFsdWUuY2xlYXIoKTsKLSAgICB9Ci0gICAgaWYgKHRpbWluZ0Z1bmN0aW9uICE9IG1fdGltaW5n
RnVuY3Rpb24pIHsKLSAgICAgICAgaWYgKHRpbWluZ0Z1bmN0aW9uKQotICAgICAgICAgICAgbV90
aW1pbmdGdW5jdGlvbi5zZXQobmV3IFRpbWluZ0Z1bmN0aW9uKCp0aW1pbmdGdW5jdGlvbikpOwot
ICAgICAgICBlbHNlCi0gICAgICAgICAgICBtX3RpbWluZ0Z1bmN0aW9uLmNsZWFyKCk7Ci0gICAg
fQotfQotCi12b2lkIEdyYXBoaWNzTGF5ZXI6OkZsb2F0VmFsdWVMaXN0OjppbnNlcnQoZmxvYXQg
a2V5LCBmbG9hdCB2YWx1ZSwgY29uc3QgVGltaW5nRnVuY3Rpb24qIHRpbWluZ0Z1bmN0aW9uKQot
ewotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV92YWx1ZXMuc2l6ZSgpOyArK2kpIHsKLSAg
ICAgICAgRmxvYXRWYWx1ZSYgY3VyRmxvYXRWYWx1ZSA9IG1fdmFsdWVzW2ldOwotICAgICAgICBp
ZiAoY3VyRmxvYXRWYWx1ZS5rZXkoKSA9PSBrZXkpIHsKLSAgICAgICAgICAgIGN1ckZsb2F0VmFs
dWUuc2V0KGtleSwgdmFsdWUsIHRpbWluZ0Z1bmN0aW9uKTsKLSAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgfQotICAgICAgICBpZiAoY3VyRmxvYXRWYWx1ZS5rZXkoKSA+IGtleSkgewotICAg
ICAgICAgICAgLy8gaW5zZXJ0IGJlZm9yZQotICAgICAgICAgICAgbV92YWx1ZXMuaW5zZXJ0KGks
IEZsb2F0VmFsdWUoa2V5LCB2YWx1ZSwgdGltaW5nRnVuY3Rpb24pKTsKLSAgICAgICAgICAgIHJl
dHVybjsKLSAgICAgICAgfQotICAgIH0KLSAgICAKLSAgICAvLyBhcHBlbmQKLSAgICBtX3ZhbHVl
cy5hcHBlbmQoRmxvYXRWYWx1ZShrZXksIHZhbHVlLCB0aW1pbmdGdW5jdGlvbikpOwotfQotCi12
b2lkIEdyYXBoaWNzTGF5ZXI6OlRyYW5zZm9ybVZhbHVlTGlzdDo6aW5zZXJ0KGZsb2F0IGtleSwg
Y29uc3QgVHJhbnNmb3JtT3BlcmF0aW9ucyogdmFsdWUsIGNvbnN0IFRpbWluZ0Z1bmN0aW9uKiB0
aW1pbmdGdW5jdGlvbikKK3ZvaWQgS2V5ZnJhbWVWYWx1ZUxpc3Q6Omluc2VydChjb25zdCBBbmlt
YXRpb25WYWx1ZSogdmFsdWUpCiB7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX3ZhbHVl
cy5zaXplKCk7ICsraSkgewotICAgICAgICBUcmFuc2Zvcm1WYWx1ZSYgY3VyVHJhbnNWYWx1ZSA9
IG1fdmFsdWVzW2ldOwotICAgICAgICBpZiAoY3VyVHJhbnNWYWx1ZS5rZXkoKSA9PSBrZXkpIHsK
LSAgICAgICAgICAgIGN1clRyYW5zVmFsdWUuc2V0KGtleSwgdmFsdWUsIHRpbWluZ0Z1bmN0aW9u
KTsKKyAgICAgICAgY29uc3QgQW5pbWF0aW9uVmFsdWUqIGN1clZhbHVlID0gbV92YWx1ZXNbaV07
CisgICAgICAgIGlmIChjdXJWYWx1ZS0+a2V5VGltZSgpID09IHZhbHVlLT5rZXlUaW1lKCkpIHsK
KyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgLy8gaW5zZXJ0
IGFmdGVyCisgICAgICAgICAgICBtX3ZhbHVlcy5pbnNlcnQoaSArIDEsIHZhbHVlKTsKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAgICBpZiAoY3VyVHJhbnNWYWx1ZS5rZXko
KSA+IGtleSkgeworICAgICAgICBpZiAoY3VyVmFsdWUtPmtleVRpbWUoKSA+IHZhbHVlLT5rZXlU
aW1lKCkpIHsKICAgICAgICAgICAgIC8vIGluc2VydCBiZWZvcmUKLSAgICAgICAgICAgIG1fdmFs
dWVzLmluc2VydChpLCBUcmFuc2Zvcm1WYWx1ZShrZXksIHZhbHVlLCB0aW1pbmdGdW5jdGlvbikp
OworICAgICAgICAgICAgbV92YWx1ZXMuaW5zZXJ0KGksIHZhbHVlKTsKICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgfQogICAgIH0KICAgICAKLSAgICAvLyBhcHBlbmQKLSAgICBtX3ZhbHVl
cy5hcHBlbmQoVHJhbnNmb3JtVmFsdWUoa2V5LCB2YWx1ZSwgdGltaW5nRnVuY3Rpb24pKTsKLX0K
LQotLy8gQW4gImludmFsaWQiIGxpc3QgaXMgb25lIHdob3NlIGZ1bmN0aW9ucyBkb24ndCBtYXRj
aCwgYW5kIHRoZXJlZm9yZSBoYXMgdG8gYmUgYW5pbWF0ZWQgYXMgYSBNYXRyaXgKLS8vIFRoZSBo
YXNCaWdSb3RhdGlvbiBmbGFnIHdpbGwgYWx3YXlzIHJldHVybiBmYWxzZSBpZiBpc1ZhbGlkIGlz
IGZhbHNlLiBPdGhlcndpc2UgaGFzQmlnUm90YXRpb24gaXMgCi0vLyB0cnVlIGlmIHRoZSByb3Rh
dGlvbiBiZXR3ZWVuIGFueSB0d28ga2V5ZnJhbWVzIGlzID49IDE4MCBkZWdyZWVzLgotdm9pZCBH
cmFwaGljc0xheWVyOjpUcmFuc2Zvcm1WYWx1ZUxpc3Q6Om1ha2VGdW5jdGlvbkxpc3QoRnVuY3Rp
b25MaXN0JiBsaXN0LCBib29sJiBpc1ZhbGlkLCBib29sJiBoYXNCaWdSb3RhdGlvbikgY29uc3QK
LXsKLSAgICBsaXN0LmNsZWFyKCk7Ci0gICAgaXNWYWxpZCA9IGZhbHNlOwotICAgIGhhc0JpZ1Jv
dGF0aW9uID0gZmFsc2U7Ci0gICAgCi0gICAgaWYgKG1fdmFsdWVzLnNpemUoKSA8IDIpCi0gICAg
ICAgIHJldHVybjsKLSAgICAKLSAgICAvLyBlbXB0eSB0cmFuc2Zvcm1zIG1hdGNoIGFueXRoaW5n
LCBzbyBmaW5kIHRoZSBmaXJzdCBub24tZW1wdHkgZW50cnkgYXMgdGhlIHJlZmVyZW5jZQotICAg
IHNpemVfdCBmaXJzdEluZGV4ID0gMDsKLSAgICBmb3IgKCA7IGZpcnN0SW5kZXggPCBtX3ZhbHVl
cy5zaXplKCk7ICsrZmlyc3RJbmRleCkgewotICAgICAgICBpZiAobV92YWx1ZXNbZmlyc3RJbmRl
eF0udmFsdWUoKS0+b3BlcmF0aW9ucygpLnNpemUoKSA+IDApCi0gICAgICAgICAgICBicmVhazsK
LSAgICB9Ci0gICAgCi0gICAgaWYgKGZpcnN0SW5kZXggPj0gbV92YWx1ZXMuc2l6ZSgpKQotICAg
ICAgICByZXR1cm47Ci0gICAgICAgIAotICAgIGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlvbnMqIGZp
cnN0VmFsID0gbV92YWx1ZXNbZmlyc3RJbmRleF0udmFsdWUoKTsKLSAgICAKLSAgICAvLyBzZWUg
aWYgdGhlIGtleWZyYW1lcyBhcmUgdmFsaWQKLSAgICBmb3IgKHNpemVfdCBpID0gZmlyc3RJbmRl
eCArIDE7IGkgPCBtX3ZhbHVlcy5zaXplKCk7ICsraSkgewotICAgICAgICBjb25zdCBUcmFuc2Zv
cm1PcGVyYXRpb25zKiB2YWwgPSBtX3ZhbHVlc1tpXS52YWx1ZSgpOwotICAgICAgICAKLSAgICAg
ICAgLy8gYSBudWxsIHRyYW5zZm9ybSBtYXRjaGVzIGFueXRoaW5nCi0gICAgICAgIGlmICh2YWwt
Pm9wZXJhdGlvbnMoKS5pc0VtcHR5KCkpCi0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAg
ICAgIAotICAgICAgICBpZiAoZmlyc3RWYWwtPm9wZXJhdGlvbnMoKS5zaXplKCkgIT0gdmFsLT5v
cGVyYXRpb25zKCkuc2l6ZSgpKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgCi0g
ICAgICAgIGZvciAoc2l6ZV90IGogPSAwOyBqIDwgZmlyc3RWYWwtPm9wZXJhdGlvbnMoKS5zaXpl
KCk7ICsraikgewotICAgICAgICAgICAgaWYgKCFmaXJzdFZhbC0+b3BlcmF0aW9ucygpLmF0KGop
LT5pc1NhbWVUeXBlKCp2YWwtPm9wZXJhdGlvbnMoKS5hdChqKSkpCi0gICAgICAgICAgICAgICAg
cmV0dXJuOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgLy8ga2V5ZnJhbWVzIGFyZSB2YWxpZCwg
ZmlsbCBpbiB0aGUgbGlzdAotICAgIGlzVmFsaWQgPSB0cnVlOwotICAgIAotICAgIGRvdWJsZSBs
YXN0Um90QW5nbGUgPSAwLjA7Ci0gICAgZG91YmxlIG1heFJvdEFuZ2xlID0gLTEuMDsKLSAgICAg
ICAgCi0gICAgbGlzdC5yZXNpemUoZmlyc3RWYWwtPm9wZXJhdGlvbnMoKS5zaXplKCkpOwotICAg
IGZvciAoc2l6ZV90IGogPSAwOyBqIDwgZmlyc3RWYWwtPm9wZXJhdGlvbnMoKS5zaXplKCk7ICsr
aikgewotICAgICAgICBUcmFuc2Zvcm1PcGVyYXRpb246Ok9wZXJhdGlvblR5cGUgdHlwZSA9IGZp
cnN0VmFsLT5vcGVyYXRpb25zKCkuYXQoaiktPmdldE9wZXJhdGlvblR5cGUoKTsKLSAgICAgICAg
bGlzdFtqXSA9IHR5cGU7Ci0gICAgICAgIAotICAgICAgICAvLyBpZiB0aGlzIGlzIGEgcm90YXRp
b24gZW50cnksIHdlIG5lZWQgdG8gc2VlIGlmIGFueSBhbmdsZSBkaWZmZXJlbmNlcyBhcmUgPj0g
MTgwIGRlZwotICAgICAgICBpZiAodHlwZSA9PSBUcmFuc2Zvcm1PcGVyYXRpb246OlJPVEFURV9Y
IHx8Ci0gICAgICAgICAgICB0eXBlID09IFRyYW5zZm9ybU9wZXJhdGlvbjo6Uk9UQVRFX1kgfHwK
LSAgICAgICAgICAgIHR5cGUgPT0gVHJhbnNmb3JtT3BlcmF0aW9uOjpST1RBVEVfWiB8fAotICAg
ICAgICAgICAgdHlwZSA9PSBUcmFuc2Zvcm1PcGVyYXRpb246OlJPVEFURV8zRCkgewotICAgICAg
ICAgICAgbGFzdFJvdEFuZ2xlID0gc3RhdGljX2Nhc3Q8Um90YXRlVHJhbnNmb3JtT3BlcmF0aW9u
Kj4oZmlyc3RWYWwtPm9wZXJhdGlvbnMoKS5hdChqKS5nZXQoKSktPmFuZ2xlKCk7Ci0gICAgICAg
ICAgICAKLSAgICAgICAgICAgIGlmIChtYXhSb3RBbmdsZSA8IDApCi0gICAgICAgICAgICAgICAg
bWF4Um90QW5nbGUgPSBmYWJzKGxhc3RSb3RBbmdsZSk7Ci0gICAgICAgICAgICAKLSAgICAgICAg
ICAgIGZvciAoc2l6ZV90IGkgPSBmaXJzdEluZGV4ICsgMTsgaSA8IG1fdmFsdWVzLnNpemUoKTsg
KytpKSB7Ci0gICAgICAgICAgICAgICAgY29uc3QgVHJhbnNmb3JtT3BlcmF0aW9ucyogdmFsID0g
bV92YWx1ZXNbaV0udmFsdWUoKTsKLSAgICAgICAgICAgICAgICBkb3VibGUgcm90QW5nbGUgPSB2
YWwtPm9wZXJhdGlvbnMoKS5pc0VtcHR5KCkgPyAwIDogKHN0YXRpY19jYXN0PFJvdGF0ZVRyYW5z
Zm9ybU9wZXJhdGlvbio+KHZhbC0+b3BlcmF0aW9ucygpLmF0KGopLmdldCgpKS0+YW5nbGUoKSk7
Ci0gICAgICAgICAgICAgICAgZG91YmxlIGRpZmZBbmdsZSA9IGZhYnMocm90QW5nbGUgLSBsYXN0
Um90QW5nbGUpOwotICAgICAgICAgICAgICAgIGlmIChkaWZmQW5nbGUgPiBtYXhSb3RBbmdsZSkK
LSAgICAgICAgICAgICAgICAgICAgbWF4Um90QW5nbGUgPSBkaWZmQW5nbGU7Ci0gICAgICAgICAg
ICAgICAgbGFzdFJvdEFuZ2xlID0gcm90QW5nbGU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0K
LSAgICB9Ci0gICAgCi0gICAgaGFzQmlnUm90YXRpb24gPSBtYXhSb3RBbmdsZSA+PSAxODAuMDsK
KyAgICBtX3ZhbHVlcy5hcHBlbmQodmFsdWUpOwogfQogCiBHcmFwaGljc0xheWVyOjpHcmFwaGlj
c0xheWVyKEdyYXBoaWNzTGF5ZXJDbGllbnQqIGNsaWVudCkKQEAgLTE5Myw2ICs3MCw3IEBAIEdy
YXBoaWNzTGF5ZXI6OkdyYXBoaWNzTGF5ZXIoR3JhcGhpY3NMYXllckNsaWVudCogY2xpZW50KQog
ICAgICwgbV9tYXNrc1RvQm91bmRzKGZhbHNlKQogICAgICwgbV9kcmF3c0NvbnRlbnQoZmFsc2Up
CiAgICAgLCBtX3BhaW50aW5nUGhhc2UoR3JhcGhpY3NMYXllclBhaW50QWxsTWFzaykKKyAgICAs
IG1fZ2VvbWV0cnlPcmllbnRhdGlvbihDb21wb3NpdGluZ0Nvb3JkaW5hdGVzVG9wRG93bikKICAg
ICAsIG1fY29udGVudHNPcmllbnRhdGlvbihDb21wb3NpdGluZ0Nvb3JkaW5hdGVzVG9wRG93bikK
ICAgICAsIG1fcGFyZW50KDApCiAjaWZuZGVmIE5ERUJVRwpAQCAtMjAzLDggKzgxLDYgQEAgR3Jh
cGhpY3NMYXllcjo6R3JhcGhpY3NMYXllcihHcmFwaGljc0xheWVyQ2xpZW50KiBjbGllbnQpCiAK
IEdyYXBoaWNzTGF5ZXI6On5HcmFwaGljc0xheWVyKCkKIHsKLSAgICByZW1vdmVBbGxBbmltYXRp
b25zKCk7ICAgIAotCiAgICAgcmVtb3ZlQWxsQ2hpbGRyZW4oKTsKICAgICByZW1vdmVGcm9tUGFy
ZW50KCk7CiB9CkBAIC0zMTYsOSArMTkyLDkgQEAgdm9pZCBHcmFwaGljc0xheWVyOjpyZW1vdmVG
cm9tUGFyZW50KCkKICAgICB9CiB9CiAKLXZvaWQgR3JhcGhpY3NMYXllcjo6c2V0QmFja2dyb3Vu
ZENvbG9yKGNvbnN0IENvbG9yJiBpbkNvbG9yLCBjb25zdCBBbmltYXRpb24qLCBkb3VibGUgLypi
ZWdpblRpbWUqLykKK3ZvaWQgR3JhcGhpY3NMYXllcjo6c2V0QmFja2dyb3VuZENvbG9yKGNvbnN0
IENvbG9yJiBjb2xvcikKIHsKLSAgICBtX2JhY2tncm91bmRDb2xvciA9IGluQ29sb3I7CisgICAg
bV9iYWNrZ3JvdW5kQ29sb3IgPSBjb2xvcjsKICAgICBtX2JhY2tncm91bmRDb2xvclNldCA9IHRy
dWU7CiB9CiAKQEAgLTMyOCw5MyArMjA0LDEwIEBAIHZvaWQgR3JhcGhpY3NMYXllcjo6Y2xlYXJC
YWNrZ3JvdW5kQ29sb3IoKQogICAgIG1fYmFja2dyb3VuZENvbG9yU2V0ID0gZmFsc2U7CiB9CiAK
LWJvb2wgR3JhcGhpY3NMYXllcjo6c2V0T3BhY2l0eShmbG9hdCBvcGFjaXR5LCBjb25zdCBBbmlt
YXRpb24qLCBkb3VibGUpCi17Ci0gICAgbV9vcGFjaXR5ID0gb3BhY2l0eTsKLSAgICByZXR1cm4g
ZmFsc2U7ICAgICAgIC8vIG5vdCBhbmltYXRpbmcKLX0KLQogdm9pZCBHcmFwaGljc0xheWVyOjpw
YWludEdyYXBoaWNzTGF5ZXJDb250ZW50cyhHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0
IEludFJlY3QmIGNsaXApCiB7Ci0gICAgbV9jbGllbnQtPnBhaW50Q29udGVudHModGhpcywgY29u
dGV4dCwgbV9wYWludGluZ1BoYXNlLCBjbGlwKTsKLX0KLQotU3RyaW5nIEdyYXBoaWNzTGF5ZXI6
OnByb3BlcnR5SWRUb1N0cmluZyhBbmltYXRlZFByb3BlcnR5SUQgcHJvcGVydHkpCi17Ci0gICAg
c3dpdGNoIChwcm9wZXJ0eSkgewotICAgICAgICBjYXNlIEFuaW1hdGVkUHJvcGVydHlXZWJraXRU
cmFuc2Zvcm06Ci0gICAgICAgICAgICByZXR1cm4gInRyYW5zZm9ybSI7Ci0gICAgICAgIGNhc2Ug
QW5pbWF0ZWRQcm9wZXJ0eU9wYWNpdHk6Ci0gICAgICAgICAgICByZXR1cm4gIm9wYWNpdHkiOwot
ICAgICAgICBjYXNlIEFuaW1hdGVkUHJvcGVydHlCYWNrZ3JvdW5kQ29sb3I6Ci0gICAgICAgICAg
ICByZXR1cm4gImJhY2tncm91bmRDb2xvciI7Ci0gICAgICAgIGNhc2UgQW5pbWF0ZWRQcm9wZXJ0
eUludmFsaWQ6Ci0gICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICB9Ci0gICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuICIiOwotfQotCi1pbnQgR3JhcGhpY3NM
YXllcjo6ZmluZEFuaW1hdGlvbkVudHJ5KEFuaW1hdGVkUHJvcGVydHlJRCBwcm9wZXJ0eSwgc2hv
cnQgaW5kZXgpIGNvbnN0Ci17Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2FuaW1hdGlv
bnMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgaWYgKG1fYW5pbWF0aW9uc1tpXS5tYXRjaGVzKHBy
b3BlcnR5LCBpbmRleCkpCi0gICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50PihpKTsK
LSAgICB9Ci0gICAgcmV0dXJuIC0xOwotfQotCi12b2lkIEdyYXBoaWNzTGF5ZXI6OmFkZEFuaW1h
dGlvbkVudHJ5KEFuaW1hdGVkUHJvcGVydHlJRCBwcm9wZXJ0eSwgc2hvcnQgaW5kZXgsIGJvb2wg
aXNUcmFuc2l0aW9uLCBjb25zdCBBbmltYXRpb24qIHRyYW5zaXRpb24pCi17Ci0gICAgaW50IGkg
PSBmaW5kQW5pbWF0aW9uRW50cnkocHJvcGVydHksIGluZGV4KTsKLSAgICAKLSAgICBpZiAoaSA+
PSAwKQotICAgICAgICBtX2FuaW1hdGlvbnNbaV0ucmVzZXQodHJhbnNpdGlvbiwgaXNUcmFuc2l0
aW9uKTsKLSAgICBlbHNlCi0gICAgICAgIG1fYW5pbWF0aW9ucy5hcHBlbmQoQW5pbWF0aW9uRW50
cnkodHJhbnNpdGlvbiwgcHJvcGVydHksIGluZGV4LCBpc1RyYW5zaXRpb24pKTsKLX0KLQotdm9p
ZCBHcmFwaGljc0xheWVyOjpyZW1vdmVBbGxBbmltYXRpb25zKCkKLXsKLSAgICBzaXplX3Qgc2l6
ZSA9IG1fYW5pbWF0aW9ucy5zaXplKCk7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXpl
OyArK2kpCi0gICAgICAgIHJlbW92ZUFuaW1hdGlvbigwLCB0cnVlKTsKLX0KLQotdm9pZCBHcmFw
aGljc0xheWVyOjpyZW1vdmVBbGxBbmltYXRpb25zRm9yUHJvcGVydHkoQW5pbWF0ZWRQcm9wZXJ0
eUlEIHByb3BlcnR5KQotewotICAgIGZvciAoc2hvcnQgaiA9IDA7IDsgKytqKSB7Ci0gICAgICAg
IGludCBpID0gZmluZEFuaW1hdGlvbkVudHJ5KHByb3BlcnR5LCBqKTsKLSAgICAgICAgaWYgKGkg
PCAwKQotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIHJlbW92ZUFuaW1hdGlvbihpLCBmYWxz
ZSk7Ci0gICAgfQotfQotCi12b2lkIEdyYXBoaWNzTGF5ZXI6OnJlbW92ZUZpbmlzaGVkQW5pbWF0
aW9ucyhjb25zdCBTdHJpbmcmIG5hbWUsIGludCAvKmluZGV4Ki8sIGJvb2wgcmVzZXQpCi17Ci0g
ICAgc2l6ZV90IHNpemUgPSBtX2FuaW1hdGlvbnMuc2l6ZSgpOwotICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgc2l6ZTsgKSB7Ci0gICAgICAgIEFuaW1hdGlvbkVudHJ5JiBhbmltID0gbV9hbmlt
YXRpb25zW2ldOwotICAgICAgICBpZiAoIWFuaW0uaXNUcmFuc2l0aW9uKCkgJiYgYW5pbS5hbmlt
YXRpb24oKS0+bmFtZSgpID09IG5hbWUpIHsKLSAgICAgICAgICAgIHJlbW92ZUFuaW1hdGlvbihp
LCByZXNldCk7Ci0gICAgICAgICAgICAtLXNpemU7Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAg
ICAgKytpOwotICAgIH0KLX0KLQotdm9pZCBHcmFwaGljc0xheWVyOjpyZW1vdmVGaW5pc2hlZFRy
YW5zaXRpb25zKEFuaW1hdGVkUHJvcGVydHlJRCBwcm9wZXJ0eSkKLXsKLSAgICBzaXplX3Qgc2l6
ZSA9IG1fYW5pbWF0aW9ucy5zaXplKCk7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXpl
OyApIHsKLSAgICAgICAgQW5pbWF0aW9uRW50cnkmIGFuaW0gPSBtX2FuaW1hdGlvbnNbaV07Ci0g
ICAgICAgIGlmIChhbmltLmlzVHJhbnNpdGlvbigpICYmIHByb3BlcnR5ID09IGFuaW0ucHJvcGVy
dHkoKSkgewotICAgICAgICAgICAgcmVtb3ZlQW5pbWF0aW9uKGksIGZhbHNlKTsKLSAgICAgICAg
ICAgIC0tc2l6ZTsKLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICArK2k7Ci0gICAgfQorICAg
IGlmIChtX2NsaWVudCkKKyAgICAgICAgbV9jbGllbnQtPnBhaW50Q29udGVudHModGhpcywgY29u
dGV4dCwgbV9wYWludGluZ1BoYXNlLCBjbGlwKTsKIH0KIAogdm9pZCBHcmFwaGljc0xheWVyOjpz
dXNwZW5kQW5pbWF0aW9ucygpCkBAIC00NzQsNiArMjY3LDkxIEBAIHZvaWQgR3JhcGhpY3NMYXll
cjo6ZGlzdHJpYnV0ZU9wYWNpdHkoZmxvYXQgYWNjdW11bGF0ZWRPcGFjaXR5KQogICAgIH0KIH0K
IAorLy8gQW4gImludmFsaWQiIGxpc3QgaXMgb25lIHdob3NlIGZ1bmN0aW9ucyBkb24ndCBtYXRj
aCwgYW5kIHRoZXJlZm9yZSBoYXMgdG8gYmUgYW5pbWF0ZWQgYXMgYSBNYXRyaXgKKy8vIFRoZSBo
YXNCaWdSb3RhdGlvbiBmbGFnIHdpbGwgYWx3YXlzIHJldHVybiBmYWxzZSBpZiBpc1ZhbGlkIGlz
IGZhbHNlLiBPdGhlcndpc2UgaGFzQmlnUm90YXRpb24gaXMgCisvLyB0cnVlIGlmIHRoZSByb3Rh
dGlvbiBiZXR3ZWVuIGFueSB0d28ga2V5ZnJhbWVzIGlzID49IDE4MCBkZWdyZWVzLgorCitzdGF0
aWMgaW5saW5lIGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlvbnMqIG9wZXJhdGlvbnNBdChjb25zdCBL
ZXlmcmFtZVZhbHVlTGlzdCYgdmFsdWVMaXN0LCBzaXplX3QgaW5kZXgpCit7CisgICAgcmV0dXJu
IHN0YXRpY19jYXN0PGNvbnN0IFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlKj4odmFsdWVMaXN0LmF0
KGluZGV4KSktPnZhbHVlKCk7Cit9CisKK3ZvaWQgR3JhcGhpY3NMYXllcjo6ZmV0Y2hUcmFuc2Zv
cm1PcGVyYXRpb25MaXN0KGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiB2YWx1ZUxpc3QsIFRyYW5z
Zm9ybU9wZXJhdGlvbkxpc3QmIGxpc3QsIGJvb2wmIGlzVmFsaWQsIGJvb2wmIGhhc0JpZ1JvdGF0
aW9uKQoreworICAgIEFTU0VSVCh2YWx1ZUxpc3QucHJvcGVydHkoKSA9PSBBbmltYXRlZFByb3Bl
cnR5V2Via2l0VHJhbnNmb3JtKTsKKworICAgIGxpc3QuY2xlYXIoKTsKKyAgICBpc1ZhbGlkID0g
ZmFsc2U7CisgICAgaGFzQmlnUm90YXRpb24gPSBmYWxzZTsKKyAgICAKKyAgICBpZiAodmFsdWVM
aXN0LnNpemUoKSA8IDIpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICAvLyBFbXB0eSB0cmFu
c2Zvcm1zIG1hdGNoIGFueXRoaW5nLCBzbyBmaW5kIHRoZSBmaXJzdCBub24tZW1wdHkgZW50cnkg
YXMgdGhlIHJlZmVyZW5jZS4KKyAgICBzaXplX3QgZmlyc3RJbmRleCA9IDA7CisgICAgZm9yICgg
OyBmaXJzdEluZGV4IDwgdmFsdWVMaXN0LnNpemUoKTsgKytmaXJzdEluZGV4KSB7CisgICAgICAg
IGlmIChvcGVyYXRpb25zQXQodmFsdWVMaXN0LCBmaXJzdEluZGV4KS0+b3BlcmF0aW9ucygpLnNp
emUoKSA+IDApCisgICAgICAgICAgICBicmVhazsKKyAgICB9CisgICAgCisgICAgaWYgKGZpcnN0
SW5kZXggPj0gdmFsdWVMaXN0LnNpemUoKSkKKyAgICAgICAgcmV0dXJuOworICAgICAgICAKKyAg
ICBjb25zdCBUcmFuc2Zvcm1PcGVyYXRpb25zKiBmaXJzdFZhbCA9IG9wZXJhdGlvbnNBdCh2YWx1
ZUxpc3QsIGZpcnN0SW5kZXgpOworICAgIAorICAgIC8vIFNlZSBpZiB0aGUga2V5ZnJhbWVzIGFy
ZSB2YWxpZC4KKyAgICBmb3IgKHNpemVfdCBpID0gZmlyc3RJbmRleCArIDE7IGkgPCB2YWx1ZUxp
c3Quc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgY29uc3QgVHJhbnNmb3JtT3BlcmF0aW9ucyogdmFs
ID0gb3BlcmF0aW9uc0F0KHZhbHVlTGlzdCwgaSk7CisgICAgICAgIAorICAgICAgICAvLyBhIG51
bGwgdHJhbnNmb3JtIG1hdGNoZXMgYW55dGhpbmcKKyAgICAgICAgaWYgKHZhbC0+b3BlcmF0aW9u
cygpLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgCisgICAg
ICAgIGlmIChmaXJzdFZhbC0+b3BlcmF0aW9ucygpLnNpemUoKSAhPSB2YWwtPm9wZXJhdGlvbnMo
KS5zaXplKCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAKKyAgICAgICAgZm9y
IChzaXplX3QgaiA9IDA7IGogPCBmaXJzdFZhbC0+b3BlcmF0aW9ucygpLnNpemUoKTsgKytqKSB7
CisgICAgICAgICAgICBpZiAoIWZpcnN0VmFsLT5vcGVyYXRpb25zKCkuYXQoaiktPmlzU2FtZVR5
cGUoKnZhbC0+b3BlcmF0aW9ucygpLmF0KGopKSkKKyAgICAgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBLZXlmcmFtZXMgYXJlIHZhbGlkLCBmaWxsIGluIHRo
ZSBsaXN0LgorICAgIGlzVmFsaWQgPSB0cnVlOworICAgIAorICAgIGRvdWJsZSBsYXN0Um90QW5n
bGUgPSAwLjA7CisgICAgZG91YmxlIG1heFJvdEFuZ2xlID0gLTEuMDsKKyAgICAgICAgCisgICAg
bGlzdC5yZXNpemUoZmlyc3RWYWwtPm9wZXJhdGlvbnMoKS5zaXplKCkpOworICAgIGZvciAoc2l6
ZV90IGogPSAwOyBqIDwgZmlyc3RWYWwtPm9wZXJhdGlvbnMoKS5zaXplKCk7ICsraikgeworICAg
ICAgICBUcmFuc2Zvcm1PcGVyYXRpb246Ok9wZXJhdGlvblR5cGUgdHlwZSA9IGZpcnN0VmFsLT5v
cGVyYXRpb25zKCkuYXQoaiktPmdldE9wZXJhdGlvblR5cGUoKTsKKyAgICAgICAgbGlzdFtqXSA9
IHR5cGU7CisgICAgICAgIAorICAgICAgICAvLyBpZiB0aGlzIGlzIGEgcm90YXRpb24gZW50cnks
IHdlIG5lZWQgdG8gc2VlIGlmIGFueSBhbmdsZSBkaWZmZXJlbmNlcyBhcmUgPj0gMTgwIGRlZwor
ICAgICAgICBpZiAodHlwZSA9PSBUcmFuc2Zvcm1PcGVyYXRpb246OlJPVEFURV9YIHx8CisgICAg
ICAgICAgICB0eXBlID09IFRyYW5zZm9ybU9wZXJhdGlvbjo6Uk9UQVRFX1kgfHwKKyAgICAgICAg
ICAgIHR5cGUgPT0gVHJhbnNmb3JtT3BlcmF0aW9uOjpST1RBVEVfWiB8fAorICAgICAgICAgICAg
dHlwZSA9PSBUcmFuc2Zvcm1PcGVyYXRpb246OlJPVEFURV8zRCkgeworICAgICAgICAgICAgbGFz
dFJvdEFuZ2xlID0gc3RhdGljX2Nhc3Q8Um90YXRlVHJhbnNmb3JtT3BlcmF0aW9uKj4oZmlyc3RW
YWwtPm9wZXJhdGlvbnMoKS5hdChqKS5nZXQoKSktPmFuZ2xlKCk7CisgICAgICAgICAgICAKKyAg
ICAgICAgICAgIGlmIChtYXhSb3RBbmdsZSA8IDApCisgICAgICAgICAgICAgICAgbWF4Um90QW5n
bGUgPSBmYWJzKGxhc3RSb3RBbmdsZSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAo
c2l6ZV90IGkgPSBmaXJzdEluZGV4ICsgMTsgaSA8IHZhbHVlTGlzdC5zaXplKCk7ICsraSkgewor
ICAgICAgICAgICAgICAgIGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlvbnMqIHZhbCA9IG9wZXJhdGlv
bnNBdCh2YWx1ZUxpc3QsIGkpOworICAgICAgICAgICAgICAgIGRvdWJsZSByb3RBbmdsZSA9IHZh
bC0+b3BlcmF0aW9ucygpLmlzRW1wdHkoKSA/IDAgOiAoc3RhdGljX2Nhc3Q8Um90YXRlVHJhbnNm
b3JtT3BlcmF0aW9uKj4odmFsLT5vcGVyYXRpb25zKCkuYXQoaikuZ2V0KCkpLT5hbmdsZSgpKTsK
KyAgICAgICAgICAgICAgICBkb3VibGUgZGlmZkFuZ2xlID0gZmFicyhyb3RBbmdsZSAtIGxhc3RS
b3RBbmdsZSk7CisgICAgICAgICAgICAgICAgaWYgKGRpZmZBbmdsZSA+IG1heFJvdEFuZ2xlKQor
ICAgICAgICAgICAgICAgICAgICBtYXhSb3RBbmdsZSA9IGRpZmZBbmdsZTsKKyAgICAgICAgICAg
ICAgICBsYXN0Um90QW5nbGUgPSByb3RBbmdsZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQor
ICAgIH0KKyAgICAKKyAgICBoYXNCaWdSb3RhdGlvbiA9IG1heFJvdEFuZ2xlID49IDE4MC4wOwor
fQorCisKIHN0YXRpYyB2b2lkIHdyaXRlSW5kZW50KFRleHRTdHJlYW0mIHRzLCBpbnQgaW5kZW50
KQogewogICAgIGZvciAoaW50IGkgPSAwOyBpICE9IGluZGVudDsgKytpKQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmggYi9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaAppbmRleCAzY2MxMTI4Li5kNzYxY2RiIDEwMDY0
NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaAorKysgYi9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaApAQCAtMzQsNiArMzQsNyBA
QAogI2luY2x1ZGUgIkZsb2F0UG9pbnQzRC5oIgogI2luY2x1ZGUgIkZsb2F0U2l6ZS5oIgogI2lu
Y2x1ZGUgIkdyYXBoaWNzTGF5ZXJDbGllbnQuaCIKKyNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5j
bHVkZSAiVHJhbnNmb3JtYXRpb25NYXRyaXguaCIKICNpbmNsdWRlICJUcmFuc2Zvcm1PcGVyYXRp
b25zLmgiCiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgpAQCAtNDIsNyArNDMsNyBAQAogI2lmZGVm
IF9fT0JKQ19fCiBAY2xhc3MgV2ViTGF5ZXI7CiBAY2xhc3MgQ0FMYXllcjsKLXR5cGVkZWYgV2Vi
TGF5ZXIgUGxhdGZvcm1MYXllcjsKK3R5cGVkZWYgQ0FMYXllciBQbGF0Zm9ybUxheWVyOwogdHlw
ZWRlZiBDQUxheWVyKiBOYXRpdmVMYXllcjsKICNlbHNlCiB0eXBlZGVmIHZvaWQqIFBsYXRmb3Jt
TGF5ZXI7CkBAIC02MSwxMTcgKzYyLDk1IEBAIGNsYXNzIEltYWdlOwogY2xhc3MgVGV4dFN0cmVh
bTsKIGNsYXNzIFRpbWluZ0Z1bmN0aW9uOwogCi0vLyBHcmFwaGljc0xheWVyIGlzIGFuIGFic3Ry
YWN0aW9uIGZvciBhIHJlbmRlcmluZyBzdXJmYWNlIHdpdGggYmFja2luZyBzdG9yZSwKLS8vIHdo
aWNoIG1heSBoYXZlIGFzc29jaWF0ZWQgdHJhbnNmb3JtYXRpb24gYW5kIGFuaW1hdGlvbnMuCisv
LyBCYXNlIGNsYXNzIGZvciBhbmltYXRpb24gdmFsdWVzIChhbHNvIHVzZWQgZm9yIHRyYW5zaXRp
b25zKS4gSGVyZSB0bworLy8gcmVwcmVzZW50IHZhbHVlcyBmb3IgcHJvcGVydGllcyBiZWluZyBh
bmltYXRlZCB2aWEgdGhlIEdyYXBoaWNzTGF5ZXIsCisvLyB3aXRob3V0IHB1bGxpbmcgaW4gc3R5
bGUtcmVsYXRlZCBkYXRhIGZyb20gb3V0c2lkZSBvZiB0aGUgcGxhdGZvcm0gZGlyZWN0b3J5Lgor
Y2xhc3MgQW5pbWF0aW9uVmFsdWUgOiBwdWJsaWMgTm9uY29weWFibGUgeworcHVibGljOgorICAg
IEFuaW1hdGlvblZhbHVlKGZsb2F0IGtleVRpbWUsIGNvbnN0IFRpbWluZ0Z1bmN0aW9uKiB0aW1p
bmdGdW5jdGlvbiA9IDApCisgICAgICAgIDogbV9rZXlUaW1lKGtleVRpbWUpCisgICAgICAgICwg
bV90aW1pbmdGdW5jdGlvbigwKQorICAgIHsKKyAgICAgICAgaWYgKHRpbWluZ0Z1bmN0aW9uKQor
ICAgICAgICAgICAgbV90aW1pbmdGdW5jdGlvbi5zZXQobmV3IFRpbWluZ0Z1bmN0aW9uKCp0aW1p
bmdGdW5jdGlvbikpOworICAgIH0KKyAgICAKKyAgICB2aXJ0dWFsIH5BbmltYXRpb25WYWx1ZSgp
IHsgfQogCi1jbGFzcyBHcmFwaGljc0xheWVyIHsKKyAgICBmbG9hdCBrZXlUaW1lKCkgY29uc3Qg
eyByZXR1cm4gbV9rZXlUaW1lOyB9CisgICAgY29uc3QgVGltaW5nRnVuY3Rpb24qIHRpbWluZ0Z1
bmN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV90aW1pbmdGdW5jdGlvbi5nZXQoKTsgfQorCitwcml2
YXRlOgorICAgIGZsb2F0IG1fa2V5VGltZTsKKyAgICBPd25QdHI8VGltaW5nRnVuY3Rpb24+IG1f
dGltaW5nRnVuY3Rpb247Cit9OworCisvLyBVc2VkIHRvIHN0b3JlIG9uZSBmbG9hdCB2YWx1ZSBv
ZiBhbiBhbmltYXRpb24uCitjbGFzcyBGbG9hdEFuaW1hdGlvblZhbHVlIDogcHVibGljIEFuaW1h
dGlvblZhbHVlIHsKIHB1YmxpYzoKLSAgICAvLyBVc2VkIHRvIHN0b3JlIG9uZSBmbG9hdCB2YWx1
ZSBvZiBhIGtleWZyYW1lIGFuaW1hdGlvbi4KLSAgICBjbGFzcyBGbG9hdFZhbHVlIHsKLSAgICBw
dWJsaWM6Ci0gICAgICAgIEZsb2F0VmFsdWUoZmxvYXQga2V5LCBmbG9hdCB2YWx1ZSwgY29uc3Qg
VGltaW5nRnVuY3Rpb24qIHRpbWluZ0Z1bmN0aW9uID0gMCkKLSAgICAgICAgICAgIDogbV9rZXko
a2V5KSwgbV92YWx1ZSh2YWx1ZSksIG1fdGltaW5nRnVuY3Rpb24oMCkKLSAgICAgICAgewotICAg
ICAgICAgICAgaWYgKHRpbWluZ0Z1bmN0aW9uKQotICAgICAgICAgICAgICAgIG1fdGltaW5nRnVu
Y3Rpb24uc2V0KG5ldyBUaW1pbmdGdW5jdGlvbigqdGltaW5nRnVuY3Rpb24pKTsKLSAgICAgICAg
fQotCi0gICAgICAgIEZsb2F0VmFsdWUoY29uc3QgRmxvYXRWYWx1ZSYgb3RoZXIpCi0gICAgICAg
ICAgICA6IG1fa2V5KG90aGVyLmtleSgpKSwgbV92YWx1ZShvdGhlci52YWx1ZSgpKSwgbV90aW1p
bmdGdW5jdGlvbigwKQotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAob3RoZXIudGltaW5nRnVu
Y3Rpb24oKSkKLSAgICAgICAgICAgICAgICBtX3RpbWluZ0Z1bmN0aW9uLnNldChuZXcgVGltaW5n
RnVuY3Rpb24oKm90aGVyLnRpbWluZ0Z1bmN0aW9uKCkpKTsKLSAgICAgICAgfQotCi0gICAgICAg
IGNvbnN0IEZsb2F0VmFsdWUmIG9wZXJhdG9yPShjb25zdCBGbG9hdFZhbHVlJiBvdGhlcikKLSAg
ICAgICAgewotICAgICAgICAgICAgaWYgKCZvdGhlciAhPSB0aGlzKQotICAgICAgICAgICAgICAg
IHNldChvdGhlci5rZXkoKSwgb3RoZXIudmFsdWUoKSwgb3RoZXIudGltaW5nRnVuY3Rpb24oKSk7
Ci0gICAgICAgICAgICByZXR1cm4gKnRoaXM7Ci0gICAgICAgIH0KLQotICAgICAgICB2b2lkIHNl
dChmbG9hdCBrZXksIGZsb2F0IHZhbHVlLCBjb25zdCBUaW1pbmdGdW5jdGlvbiopOwotICAgICAg
ICAKLSAgICAgICAgZmxvYXQga2V5KCkgY29uc3QgeyByZXR1cm4gbV9rZXk7IH0KLSAgICAgICAg
ZmxvYXQgdmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlOyB9Ci0gICAgICAgIGNvbnN0IFRp
bWluZ0Z1bmN0aW9uKiB0aW1pbmdGdW5jdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fdGltaW5nRnVu
Y3Rpb24uZ2V0KCk7IH0KLQotICAgIHByaXZhdGU6Ci0gICAgICAgIGZsb2F0IG1fa2V5OwotICAg
ICAgICBmbG9hdCBtX3ZhbHVlOwotICAgICAgICBPd25QdHI8VGltaW5nRnVuY3Rpb24+IG1fdGlt
aW5nRnVuY3Rpb247Ci0gICAgfTsKKyAgICBGbG9hdEFuaW1hdGlvblZhbHVlKGZsb2F0IGtleVRp
bWUsIGZsb2F0IHZhbHVlLCBjb25zdCBUaW1pbmdGdW5jdGlvbiogdGltaW5nRnVuY3Rpb24gPSAw
KQorICAgICAgICA6IEFuaW1hdGlvblZhbHVlKGtleVRpbWUsIHRpbWluZ0Z1bmN0aW9uKQorICAg
ICAgICAsIG1fdmFsdWUodmFsdWUpCisgICAgeworICAgIH0KKworICAgIGZsb2F0IHZhbHVlKCkg
Y29uc3QgeyByZXR1cm4gbV92YWx1ZTsgfQorCitwcml2YXRlOgorICAgIGZsb2F0IG1fdmFsdWU7
Cit9OworCisvLyBVc2VkIHRvIHN0b3JlIG9uZSB0cmFuc2Zvcm0gdmFsdWUgaW4gYSBrZXlmcmFt
ZSBsaXN0LgorY2xhc3MgVHJhbnNmb3JtQW5pbWF0aW9uVmFsdWUgOiBwdWJsaWMgQW5pbWF0aW9u
VmFsdWUgeworcHVibGljOgorICAgIFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlKGZsb2F0IGtleVRp
bWUsIGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlvbnMqIHZhbHVlID0gMCwgY29uc3QgVGltaW5nRnVu
Y3Rpb24qIHRpbWluZ0Z1bmN0aW9uID0gMCkKKyAgICAgICAgOiBBbmltYXRpb25WYWx1ZShrZXlU
aW1lLCB0aW1pbmdGdW5jdGlvbikKKyAgICB7CisgICAgICAgIGlmICh2YWx1ZSkKKyAgICAgICAg
ICAgIG1fdmFsdWUuc2V0KG5ldyBUcmFuc2Zvcm1PcGVyYXRpb25zKCp2YWx1ZSkpOworICAgIH0K
KworICAgIGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlvbnMqIHZhbHVlKCkgY29uc3QgeyByZXR1cm4g
bV92YWx1ZS5nZXQoKTsgfQorCitwcml2YXRlOgorICAgIE93blB0cjxUcmFuc2Zvcm1PcGVyYXRp
b25zPiBtX3ZhbHVlOworfTsKKworLy8gVXNlZCB0byBzdG9yZSBhIHNlcmllcyBvZiB2YWx1ZXMg
aW4gYSBrZXlmcmFtZSBsaXN0LiBWYWx1ZXMgd2lsbCBhbGwgYmUgb2YgdGhlIHNhbWUgdHlwZSwK
Ky8vIHdoaWNoIGNhbiBiZSBpbmZlcnJlZCBmcm9tIHRoZSBwcm9wZXJ0eS4KK2NsYXNzIEtleWZy
YW1lVmFsdWVMaXN0IDogcHVibGljIE5vbmNvcHlhYmxlIHsKK3B1YmxpYzoKKworICAgIEtleWZy
YW1lVmFsdWVMaXN0KEFuaW1hdGVkUHJvcGVydHlJRCBwcm9wZXJ0eSkKKyAgICAgICAgOiBtX3By
b3BlcnR5KHByb3BlcnR5KQorICAgIHsKKyAgICB9CisgICAgCisgICAgfktleWZyYW1lVmFsdWVM
aXN0KCkKKyAgICB7CisgICAgICAgIGRlbGV0ZUFsbFZhbHVlcyhtX3ZhbHVlcyk7CisgICAgfQog
ICAgIAorICAgIEFuaW1hdGVkUHJvcGVydHlJRCBwcm9wZXJ0eSgpIGNvbnN0IHsgcmV0dXJuIG1f
cHJvcGVydHk7IH0KKworICAgIHNpemVfdCBzaXplKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZXMu
c2l6ZSgpOyB9CisgICAgY29uc3QgQW5pbWF0aW9uVmFsdWUqIGF0KHNpemVfdCBpKSBjb25zdCB7
IHJldHVybiBtX3ZhbHVlcy5hdChpKTsgfQogICAgIAotICAgIGNsYXNzIEZsb2F0VmFsdWVMaXN0
IHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIHZvaWQgaW5zZXJ0KGZsb2F0IGtleSwgZmxvYXQgdmFs
dWUsIGNvbnN0IFRpbWluZ0Z1bmN0aW9uKiB0aW1pbmdGdW5jdGlvbik7Ci0KLSAgICAgICAgc2l6
ZV90IHNpemUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlcy5zaXplKCk7IH0KLSAgICAgICAgY29u
c3QgRmxvYXRWYWx1ZSYgYXQoc2l6ZV90IGkpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWVzLmF0KGkp
OyB9Ci0gICAgICAgIGNvbnN0IFZlY3RvcjxGbG9hdFZhbHVlPiYgdmFsdWVzKCkgY29uc3QgeyBy
ZXR1cm4gbV92YWx1ZXM7IH0KLQotICAgIHByaXZhdGU6Ci0gICAgICAgIFZlY3RvcjxGbG9hdFZh
bHVlPiBtX3ZhbHVlczsKLSAgICB9OwotCi0gICAgLy8gVXNlZCB0byBzdG9yZSBvbmUgdHJhbnNm
b3JtIGluIGEga2V5ZnJhbWUgbGlzdC4KLSAgICBjbGFzcyBUcmFuc2Zvcm1WYWx1ZSB7Ci0gICAg
cHVibGljOgotICAgICAgICBUcmFuc2Zvcm1WYWx1ZShmbG9hdCBrZXkgPSBOQU4sIGNvbnN0IFRy
YW5zZm9ybU9wZXJhdGlvbnMqIHZhbHVlID0gMCwgY29uc3QgVGltaW5nRnVuY3Rpb24qIHRpbWlu
Z0Z1bmN0aW9uID0gMCkKLSAgICAgICAgICAgIDogbV9rZXkoa2V5KQotICAgICAgICB7Ci0gICAg
ICAgICAgICBpZiAodmFsdWUpCi0gICAgICAgICAgICAgICAgbV92YWx1ZS5zZXQobmV3IFRyYW5z
Zm9ybU9wZXJhdGlvbnMoKnZhbHVlKSk7Ci0gICAgICAgICAgICBpZiAodGltaW5nRnVuY3Rpb24p
Ci0gICAgICAgICAgICAgICAgbV90aW1pbmdGdW5jdGlvbi5zZXQobmV3IFRpbWluZ0Z1bmN0aW9u
KCp0aW1pbmdGdW5jdGlvbikpOwotICAgICAgICB9Ci0KLSAgICAgICAgVHJhbnNmb3JtVmFsdWUo
Y29uc3QgVHJhbnNmb3JtVmFsdWUmIG90aGVyKQotICAgICAgICAgICAgOiBtX2tleShvdGhlci5r
ZXkoKSkKLSAgICAgICAgewotICAgICAgICAgICAgaWYgKG90aGVyLnZhbHVlKCkpCi0gICAgICAg
ICAgICAgICAgbV92YWx1ZS5zZXQobmV3IFRyYW5zZm9ybU9wZXJhdGlvbnMoKm90aGVyLnZhbHVl
KCkpKTsKLSAgICAgICAgICAgIGlmIChvdGhlci50aW1pbmdGdW5jdGlvbigpKQotICAgICAgICAg
ICAgICAgIG1fdGltaW5nRnVuY3Rpb24uc2V0KG5ldyBUaW1pbmdGdW5jdGlvbigqb3RoZXIudGlt
aW5nRnVuY3Rpb24oKSkpOwotICAgICAgICB9Ci0KLSAgICAgICAgY29uc3QgVHJhbnNmb3JtVmFs
dWUmIG9wZXJhdG9yPShjb25zdCBUcmFuc2Zvcm1WYWx1ZSYgb3RoZXIpCi0gICAgICAgIHsKLSAg
ICAgICAgICAgIGlmICgmb3RoZXIgIT0gdGhpcykKLSAgICAgICAgICAgICAgICBzZXQob3RoZXIu
a2V5KCksIG90aGVyLnZhbHVlKCksIG90aGVyLnRpbWluZ0Z1bmN0aW9uKCkpOwotICAgICAgICAg
ICAgcmV0dXJuICp0aGlzOwotICAgICAgICB9Ci0KLSAgICAgICAgdm9pZCBzZXQoZmxvYXQga2V5
LCBjb25zdCBUcmFuc2Zvcm1PcGVyYXRpb25zKiB2YWx1ZSwgY29uc3QgVGltaW5nRnVuY3Rpb24q
IHRpbWluZ0Z1bmN0aW9uKTsKLQotICAgICAgICBmbG9hdCBrZXkoKSBjb25zdCB7IHJldHVybiBt
X2tleTsgfQotICAgICAgICBjb25zdCBUcmFuc2Zvcm1PcGVyYXRpb25zKiB2YWx1ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fdmFsdWUuZ2V0KCk7IH0KLSAgICAgICAgY29uc3QgVGltaW5nRnVuY3Rpb24q
IHRpbWluZ0Z1bmN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV90aW1pbmdGdW5jdGlvbi5nZXQoKTsg
fQotICAgICAgICAKLSAgICBwcml2YXRlOgotICAgICAgICBmbG9hdCBtX2tleTsKLSAgICAgICAg
T3duUHRyPFRyYW5zZm9ybU9wZXJhdGlvbnM+IG1fdmFsdWU7Ci0gICAgICAgIE93blB0cjxUaW1p
bmdGdW5jdGlvbj4gbV90aW1pbmdGdW5jdGlvbjsKLSAgICB9OworICAgIC8vIEluc2VydCwgc29y
dGVkIGJ5IGtleVRpbWUuIFRha2VzIG93bmVyc2hpcCBvZiB0aGUgcG9pbnRlci4KKyAgICB2b2lk
IGluc2VydChjb25zdCBBbmltYXRpb25WYWx1ZSopOwogICAgIAotICAgIC8vIFVzZWQgdG8gc3Rv
cmUgYSBzZXJpZXMgb2YgdHJhbnNmb3JtcyBpbiBhIGtleWZyYW1lIGxpc3QuCi0gICAgY2xhc3Mg
VHJhbnNmb3JtVmFsdWVMaXN0IHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIHR5cGVkZWYgVmVjdG9y
PFRyYW5zZm9ybU9wZXJhdGlvbjo6T3BlcmF0aW9uVHlwZT4gRnVuY3Rpb25MaXN0OwotCi0gICAg
ICAgIHNpemVfdCBzaXplKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZXMuc2l6ZSgpOyB9Ci0gICAg
ICAgIGNvbnN0IFRyYW5zZm9ybVZhbHVlJiBhdChzaXplX3QgaSkgY29uc3QgeyByZXR1cm4gbV92
YWx1ZXMuYXQoaSk7IH0KLSAgICAgICAgY29uc3QgVmVjdG9yPFRyYW5zZm9ybVZhbHVlPiYgdmFs
dWVzKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZXM7IH0KLSAgICAgICAgCi0gICAgICAgIHZvaWQg
aW5zZXJ0KGZsb2F0IGtleSwgY29uc3QgVHJhbnNmb3JtT3BlcmF0aW9ucyogdmFsdWUsIGNvbnN0
IFRpbWluZ0Z1bmN0aW9uKiB0aW1pbmdGdW5jdGlvbik7Ci0gICAgICAgIAotICAgICAgICAvLyBy
ZXR1cm4gYSBsaXN0IG9mIHRoZSByZXF1aXJlZCBmdW5jdGlvbnMuIExpc3QgaXMgZW1wdHkgaWYg
a2V5ZnJhbWVzIGFyZSBub3QgdmFsaWQKLSAgICAgICAgLy8gSWYgcmV0dXJuIHZhbHVlIGlzIHRy
dWUsIGZ1bmN0aW9ucyBjb250YWluIHJvdGF0aW9ucyBvZiA+PSAxODAgZGVncmVlcwotICAgICAg
ICB2b2lkIG1ha2VGdW5jdGlvbkxpc3QoRnVuY3Rpb25MaXN0JiBsaXN0LCBib29sJiBpc1ZhbGlk
LCBib29sJiBoYXNCaWdSb3RhdGlvbikgY29uc3Q7Ci0gICAgcHJpdmF0ZToKLSAgICAgICAgVmVj
dG9yPFRyYW5zZm9ybVZhbHVlPiBtX3ZhbHVlczsKLSAgICB9OworcHJvdGVjdGVkOgorICAgIFZl
Y3Rvcjxjb25zdCBBbmltYXRpb25WYWx1ZSo+IG1fdmFsdWVzOworICAgIEFuaW1hdGVkUHJvcGVy
dHlJRCBtX3Byb3BlcnR5OworfTsKKworCisKKy8vIEdyYXBoaWNzTGF5ZXIgaXMgYW4gYWJzdHJh
Y3Rpb24gZm9yIGEgcmVuZGVyaW5nIHN1cmZhY2Ugd2l0aCBiYWNraW5nIHN0b3JlLAorLy8gd2hp
Y2ggbWF5IGhhdmUgYXNzb2NpYXRlZCB0cmFuc2Zvcm1hdGlvbiBhbmQgYW5pbWF0aW9ucy4KKwor
Y2xhc3MgR3JhcGhpY3NMYXllciB7CitwdWJsaWM6CiAKICAgICBzdGF0aWMgR3JhcGhpY3NMYXll
ciogY3JlYXRlR3JhcGhpY3NMYXllcihHcmFwaGljc0xheWVyQ2xpZW50Kik7CiAgICAgCkBAIC0y
MzUsNyArMjE0LDcgQEAgcHVibGljOgogCiAgICAgLy8gVGhlIGNvbG9yIHVzZWQgdG8gcGFpbnQg
dGhlIGxheWVyIGJhY2tncm91bmRzCiAgICAgY29uc3QgQ29sb3ImIGJhY2tncm91bmRDb2xvcigp
IGNvbnN0IHsgcmV0dXJuIG1fYmFja2dyb3VuZENvbG9yOyB9Ci0gICAgdmlydHVhbCB2b2lkIHNl
dEJhY2tncm91bmRDb2xvcihjb25zdCBDb2xvciYsIGNvbnN0IEFuaW1hdGlvbiogPSAwLCBkb3Vi
bGUgYmVnaW5UaW1lID0gMCk7CisgICAgdmlydHVhbCB2b2lkIHNldEJhY2tncm91bmRDb2xvcihj
b25zdCBDb2xvciYpOwogICAgIHZpcnR1YWwgdm9pZCBjbGVhckJhY2tncm91bmRDb2xvcigpOwog
ICAgIGJvb2wgYmFja2dyb3VuZENvbG9yU2V0KCkgY29uc3QgeyByZXR1cm4gbV9iYWNrZ3JvdW5k
Q29sb3JTZXQ7IH0KIApAQCAtMjQ3LDggKzIyNiw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgc2V0QmFja2ZhY2VWaXNpYmlsaXR5KGJvb2wgYikgeyBtX2JhY2tmYWNlVmlzaWJpbGl0eSA9
IGI7IH0KIAogICAgIGZsb2F0IG9wYWNpdHkoKSBjb25zdCB7IHJldHVybiBtX29wYWNpdHk7IH0K
LSAgICAvLyByZXR1cm4gdHJ1ZSBpZiB3ZSBzdGFydGVkIGFuIGFuaW1hdGlvbgotICAgIHZpcnR1
YWwgYm9vbCBzZXRPcGFjaXR5KGZsb2F0IG8sIGNvbnN0IEFuaW1hdGlvbiogPSAwLCBkb3VibGUg
YmVnaW5UaW1lID0gMCk7CisgICAgdmlydHVhbCB2b2lkIHNldE9wYWNpdHkoZmxvYXQgb3BhY2l0
eSkgeyBtX29wYWNpdHkgPSBvcGFjaXR5OyB9CiAKICAgICAvLyBTb21lIEdyYXBoaWNzTGF5ZXJz
IHBhaW50IG9ubHkgdGhlIGZvcmVncm91bmQgb3IgdGhlIGJhY2tncm91bmQgY29udGVudAogICAg
IEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlIGRyYXdpbmdQaGFzZSgpIGNvbnN0IHsgcmV0dXJu
IG1fcGFpbnRpbmdQaGFzZTsgfQpAQCAtMjU4LDEzICsyMzYsMTcgQEAgcHVibGljOgogICAgIC8v
IG1hcmsgdGhlIGdpdmVuIHJlY3QgKGluIGxheWVyIGNvb3JkcykgYXMgbmVlZGluZyBkaXNwYXku
IE5ldmVyIGdvZXMgZGVlcC4KICAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNEaXNwbGF5SW5SZWN0
KGNvbnN0IEZsb2F0UmVjdCYpID0gMDsKIAotICAgIHZpcnR1YWwgYm9vbCBhbmltYXRlVHJhbnNm
b3JtKGNvbnN0IFRyYW5zZm9ybVZhbHVlTGlzdCYsIGNvbnN0IEludFNpemUmLCBjb25zdCBBbmlt
YXRpb24qLCBkb3VibGUgYmVnaW5UaW1lLCBib29sIGlzVHJhbnNpdGlvbikgPSAwOwotICAgIHZp
cnR1YWwgYm9vbCBhbmltYXRlRmxvYXQoQW5pbWF0ZWRQcm9wZXJ0eUlELCBjb25zdCBGbG9hdFZh
bHVlTGlzdCYsIGNvbnN0IEFuaW1hdGlvbiosIGRvdWJsZSBiZWdpblRpbWUpID0gMDsKKyAgICAv
LyBTZXQgdGhhdCB0aGUgcG9zaXRpb24vc2l6ZSBvZiB0aGUgY29udGVudHMgKGltYWdlIG9yIHZp
ZGVvKS4KKyAgICBJbnRSZWN0IGNvbnRlbnRzUmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGVu
dHNSZWN0OyB9CisgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzUmVjdChjb25zdCBJbnRSZWN0
JiByKSB7IG1fY29udGVudHNSZWN0ID0gcjsgfQorICAgIAorICAgIC8vIFJldHVybiB0cnVlIGlm
IHRoZSBhbmltYXRpb24gaXMgaGFuZGxlZCBieSB0aGUgY29tcG9zaXRpbmcgc3lzdGVtLiBJZiB0
aGlzIHJldHVybnMKKyAgICAvLyBmYWxzZSwgdGhlIGFuaW1hdGlvbiB3aWxsIGJlIHJ1biBieSBB
bmltYXRpb25Db250cm9sbGVyLgorICAgIHZpcnR1YWwgYm9vbCBhZGRBbmltYXRpb24oY29uc3Qg
S2V5ZnJhbWVWYWx1ZUxpc3QmLCBjb25zdCBJbnRTaXplJiAvKmJveFNpemUqLywgY29uc3QgQW5p
bWF0aW9uKiwgY29uc3QgU3RyaW5nJiAvKmtleWZyYW1lc05hbWUqLywgZG91YmxlIC8qYmVnaW5U
aW1lKi8pIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZUFuaW1hdGlv
bnNGb3JQcm9wZXJ0eShBbmltYXRlZFByb3BlcnR5SUQpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBy
ZW1vdmVBbmltYXRpb25zRm9yS2V5ZnJhbWVzKGNvbnN0IFN0cmluZyYgLyoga2V5ZnJhbWVzTmFt
ZSAqLykgeyB9CisgICAgdmlydHVhbCB2b2lkIHBhdXNlQW5pbWF0aW9uKGNvbnN0IFN0cmluZyYg
Lyoga2V5ZnJhbWVzTmFtZSAqLykgeyB9CiAgICAgCi0gICAgdm9pZCByZW1vdmVGaW5pc2hlZEFu
aW1hdGlvbnMoY29uc3QgU3RyaW5nJiBuYW1lLCBpbnQgaW5kZXgsIGJvb2wgcmVzZXQpOwotICAg
IHZvaWQgcmVtb3ZlRmluaXNoZWRUcmFuc2l0aW9ucyhBbmltYXRlZFByb3BlcnR5SUQpOwotICAg
IHZvaWQgcmVtb3ZlQWxsQW5pbWF0aW9ucygpOwotCiAgICAgdmlydHVhbCB2b2lkIHN1c3BlbmRB
bmltYXRpb25zKCk7CiAgICAgdmlydHVhbCB2b2lkIHJlc3VtZUFuaW1hdGlvbnMoKTsKICAgICAK
QEAgLTI3MiwxMCArMjU0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50
c1RvSW1hZ2UoSW1hZ2UqKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNUb1ZpZGVv
KFBsYXRmb3JtTGF5ZXIqKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNCYWNrZ3Jv
dW5kQ29sb3IoY29uc3QgQ29sb3ImKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgY2xlYXJDb250ZW50
cygpIHsgfQogICAgIAotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVDb250ZW50c1JlY3QoKSB7IH0K
LQogICAgIC8vIENhbGxiYWNrIGZyb20gdGhlIHVuZGVybHlpbmcgZ3JhcGhpY3Mgc3lzdGVtIHRv
IGRyYXcgbGF5ZXIgY29udGVudHMuCiAgICAgdm9pZCBwYWludEdyYXBoaWNzTGF5ZXJDb250ZW50
cyhHcmFwaGljc0NvbnRleHQmLCBjb25zdCBJbnRSZWN0JiBjbGlwKTsKICAgICAKQEAgLTI5NCwx
MiArMjczLDEyIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgQ29tcG9zaXRpbmdDb29yZGluYXRlc09y
aWVudGF0aW9uIGNvbXBvc2l0aW5nQ29vcmRpbmF0ZXNPcmllbnRhdGlvbigpOwogCiAgICAgLy8g
U2V0IHRoZSBnZW9tZXRyeSBvcmllbnRhdGlvbiAodG9wLWRvd24sIG9yIGJvdHRvbS11cCkgZm9y
IHRoaXMgbGF5ZXIsIHdoaWNoIGFsc28gY29udHJvbHMgc3VibGF5ZXIgZ2VvbWV0cnkuCi0gICAg
dmlydHVhbCB2b2lkIHNldEdlb21ldHJ5T3JpZW50YXRpb24oQ29tcG9zaXRpbmdDb29yZGluYXRl
c09yaWVudGF0aW9uKSB7IH0KLSAgICB2aXJ0dWFsIENvbXBvc2l0aW5nQ29vcmRpbmF0ZXNPcmll
bnRhdGlvbiBnZW9tZXRyeU9yaWVudGF0aW9uKCkgY29uc3QgeyByZXR1cm4gQ29tcG9zaXRpbmdD
b29yZGluYXRlc1RvcERvd247IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0R2VvbWV0cnlPcmllbnRh
dGlvbihDb21wb3NpdGluZ0Nvb3JkaW5hdGVzT3JpZW50YXRpb24gb3JpZW50YXRpb24pIHsgbV9n
ZW9tZXRyeU9yaWVudGF0aW9uID0gb3JpZW50YXRpb247IH0KKyAgICBDb21wb3NpdGluZ0Nvb3Jk
aW5hdGVzT3JpZW50YXRpb24gZ2VvbWV0cnlPcmllbnRhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1f
Z2VvbWV0cnlPcmllbnRhdGlvbjsgfQogCiAgICAgLy8gRmxpcHBlZG5lc3Mgb2YgdGhlIGNvbnRl
bnRzIG9mIHRoaXMgbGF5ZXIuIERvZXMgbm90IGFmZmVjdCBzdWJsYXllciBnZW9tZXRyeS4KICAg
ICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNPcmllbnRhdGlvbihDb21wb3NpdGluZ0Nvb3JkaW5h
dGVzT3JpZW50YXRpb24gb3JpZW50YXRpb24pIHsgbV9jb250ZW50c09yaWVudGF0aW9uID0gb3Jp
ZW50YXRpb247IH0KLSAgICB2aXJ0dWFsIENvbXBvc2l0aW5nQ29vcmRpbmF0ZXNPcmllbnRhdGlv
biBjb250ZW50c09yaWVudGF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9jb250ZW50c09yaWVudGF0
aW9uOyB9CisgICAgQ29tcG9zaXRpbmdDb29yZGluYXRlc09yaWVudGF0aW9uIGNvbnRlbnRzT3Jp
ZW50YXRpb24oKSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnRzT3JpZW50YXRpb247IH0KIAogI2lm
bmRlZiBOREVCVUcKICAgICBzdGF0aWMgYm9vbCBzaG93RGVidWdCb3JkZXJzKCk7CkBAIC0zMTQs
MjUgKzI5MywyNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldFpQb3NpdGlvbihmbG9h
dCk7CiAjZW5kaWYKIAotICAgIHN0YXRpYyBTdHJpbmcgcHJvcGVydHlJZFRvU3RyaW5nKEFuaW1h
dGVkUHJvcGVydHlJRCk7Ci0gICAgCiAgICAgdmlydHVhbCB2b2lkIGRpc3RyaWJ1dGVPcGFjaXR5
KGZsb2F0KTsKICAgICB2aXJ0dWFsIGZsb2F0IGFjY3VtdWxhdGVkT3BhY2l0eSgpIGNvbnN0Owog
CisgICAgLy8gU29tZSBjb21wb3NpdGluZyBzeXN0ZW1zIG1heSBkbyBpbnRlcm5hbCBiYXRjaGlu
ZyB0byBzeW5jaHJvbml6ZSBjb21wb3NpdGluZyB1cGRhdGVzCisgICAgLy8gd2l0aCB1cGRhdGVz
IGRyYXduIGludG8gdGhlIHdpbmRvdy4gVGhpcyBpcyBhIHNpZ25hbCB0byBmbHVzaCBhbnkgaW50
ZXJuYWwgYmF0Y2hlZCBzdGF0ZS4KKyAgICB2aXJ0dWFsIHZvaWQgc3luY0NvbXBvc2l0aW5nU3Rh
dGUoKSB7IH0KKwogcHJvdGVjdGVkOgorCisgICAgdHlwZWRlZiBWZWN0b3I8VHJhbnNmb3JtT3Bl
cmF0aW9uOjpPcGVyYXRpb25UeXBlPiBUcmFuc2Zvcm1PcGVyYXRpb25MaXN0OworICAgIC8vIEdp
dmVuIGEgbGlzdCBvZiBUcmFuc2Zvcm1BbmltYXRpb25WYWx1ZXMsIHJldHVybiBhbiBhcnJheSBv
ZiB0cmFuc2Zvcm0gb3BlcmF0aW9ucy4KKyAgICAvLyBPbiByZXR1cm4sIGlmIGhhc0JpZ1JvdGF0
aW9uIGlzIHRydWUsIGZ1bmN0aW9ucyBjb250YWluIHJvdGF0aW9ucyBvZiA+PSAxODAgZGVncmVl
cworICAgIHN0YXRpYyB2b2lkIGZldGNoVHJhbnNmb3JtT3BlcmF0aW9uTGlzdChjb25zdCBLZXlm
cmFtZVZhbHVlTGlzdCYsIFRyYW5zZm9ybU9wZXJhdGlvbkxpc3QmLCBib29sJiBpc1ZhbGlkLCBi
b29sJiBoYXNCaWdSb3RhdGlvbik7CisKICAgICB2aXJ0dWFsIHZvaWQgc2V0T3BhY2l0eUludGVy
bmFsKGZsb2F0KSB7IH0KICAgICAKICAgICBHcmFwaGljc0xheWVyKEdyYXBoaWNzTGF5ZXJDbGll
bnQqKTsKIAogICAgIHZvaWQgZHVtcFByb3BlcnRpZXMoVGV4dFN0cmVhbSYsIGludCBpbmRlbnQp
IGNvbnN0OwogCi0gICAgLy8gcmV0dXJucyAtMSBpZiBub3QgZm91bmQKLSAgICBpbnQgZmluZEFu
aW1hdGlvbkVudHJ5KEFuaW1hdGVkUHJvcGVydHlJRCwgc2hvcnQgaW5kZXgpIGNvbnN0OwotICAg
IHZvaWQgYWRkQW5pbWF0aW9uRW50cnkoQW5pbWF0ZWRQcm9wZXJ0eUlELCBzaG9ydCBpbmRleCwg
Ym9vbCBpc1RyYW5zaXRpb24sIGNvbnN0IEFuaW1hdGlvbiopOwotCi0gICAgdmlydHVhbCB2b2lk
IHJlbW92ZUFuaW1hdGlvbihpbnQgLyppbmRleCovLCBib29sIC8qcmVzZXQqLykge30KLSAgICB2
b2lkIHJlbW92ZUFsbEFuaW1hdGlvbnNGb3JQcm9wZXJ0eShBbmltYXRlZFByb3BlcnR5SUQpOwot
CiAgICAgR3JhcGhpY3NMYXllckNsaWVudCogbV9jbGllbnQ7CiAgICAgU3RyaW5nIG1fbmFtZTsK
ICAgICAKQEAgLTM2MSw1NCArMzQxLDE0IEBAIHByb3RlY3RlZDoKICAgICBib29sIG1fZHJhd3ND
b250ZW50IDogMTsKIAogICAgIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlIG1fcGFpbnRpbmdQ
aGFzZTsKLSAgICBDb21wb3NpdGluZ0Nvb3JkaW5hdGVzT3JpZW50YXRpb24gbV9jb250ZW50c09y
aWVudGF0aW9uOworICAgIENvbXBvc2l0aW5nQ29vcmRpbmF0ZXNPcmllbnRhdGlvbiBtX2dlb21l
dHJ5T3JpZW50YXRpb247ICAgIC8vIGFmZmVjdHMgZ2VvbWV0cnkgb2YgbGF5ZXIgcG9zaXRpb25z
CisgICAgQ29tcG9zaXRpbmdDb29yZGluYXRlc09yaWVudGF0aW9uIG1fY29udGVudHNPcmllbnRh
dGlvbjsgICAgLy8gYWZmZWN0cyBvcmllbnRhdGlvbiBvZiBsYXllciBjb250ZW50cwogCiAgICAg
VmVjdG9yPEdyYXBoaWNzTGF5ZXIqPiBtX2NoaWxkcmVuOwogICAgIEdyYXBoaWNzTGF5ZXIqIG1f
cGFyZW50OwotICAgIAotICAgIC8vIEFuaW1hdGlvbkVudHJ5IHJlcHJlc2VudHMgYW4gYW5pbWF0
aW9uIG9mIGEgcHJvcGVydHkgb24gdGhpcyBsYXllci4KLSAgICAvLyBGb3IgdHJhbnNmb3JtIG9u
bHksIHRoZXJlIG1heSBiZSBtb3JlIHRoYW4gb25lLCBpbiB3aGljaCBjYXNlICdpbmRleCcKLSAg
ICAvLyBpcyBhbiBpbmRleCBpbnRvIHRoZSBsaXN0IG9mIHRyYW5zZm9ybXMuIAotICAgIGNsYXNz
IEFuaW1hdGlvbkVudHJ5IHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIEFuaW1hdGlvbkVudHJ5KGNv
bnN0IEFuaW1hdGlvbiogYW5pbWF0aW9uLCBBbmltYXRlZFByb3BlcnR5SUQgcHJvcGVydHksIHNo
b3J0IGluZGV4LCBib29sIGlzVHJhbnNpdGlvbikKLSAgICAgICAgICAgIDogbV9hbmltYXRpb24o
Y29uc3RfY2FzdDxBbmltYXRpb24qPihhbmltYXRpb24pKQotICAgICAgICAgICAgLCBtX3Byb3Bl
cnR5KHByb3BlcnR5KQotICAgICAgICAgICAgLCBtX2luZGV4KGluZGV4KQotICAgICAgICAgICAg
LCBtX2lzQ3VycmVudCh0cnVlKQotICAgICAgICAgICAgLCBtX2lzVHJhbnNpdGlvbihpc1RyYW5z
aXRpb24pCi0gICAgICAgIHsKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgY29uc3QgQW5p
bWF0aW9uKiBhbmltYXRpb24oKSBjb25zdCB7IHJldHVybiBtX2FuaW1hdGlvbi5nZXQoKTsgfQot
ICAgICAgICBBbmltYXRlZFByb3BlcnR5SUQgcHJvcGVydHkoKSBjb25zdCB7IHJldHVybiBtX3By
b3BlcnR5OyB9Ci0gICAgICAgIGludCBpbmRleCgpIGNvbnN0IHsgcmV0dXJuIG1faW5kZXg7IH0K
LSAgICAgICAgYm9vbCBpc0N1cnJlbnQoKSBjb25zdCB7IHJldHVybiBtX2lzQ3VycmVudDsgfQot
ICAgICAgICB2b2lkIHNldElzQ3VycmVudChib29sIGIgPSB0cnVlKSB7IG1faXNDdXJyZW50ID0g
YjsgfQotICAgICAgICBib29sIGlzVHJhbnNpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1faXNUcmFu
c2l0aW9uOyB9Ci0KLSAgICAgICAgYm9vbCBtYXRjaGVzKEFuaW1hdGVkUHJvcGVydHlJRCBwcm9w
ZXJ0eSwgc2hvcnQgaW5kZXgpIGNvbnN0Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBt
X3Byb3BlcnR5ID09IHByb3BlcnR5ICYmIG1faW5kZXggPT0gaW5kZXg7Ci0gICAgICAgIH0KLSAg
ICAgICAgCi0gICAgICAgIHZvaWQgcmVzZXQoY29uc3QgQW5pbWF0aW9uKiBhbmltYXRpb24sIGJv
b2wgaXNUcmFuc2l0aW9uKQotICAgICAgICB7Ci0gICAgICAgICAgICBtX2FuaW1hdGlvbiA9IGNv
bnN0X2Nhc3Q8QW5pbWF0aW9uKj4oYW5pbWF0aW9uKTsKLSAgICAgICAgICAgIG1faXNUcmFuc2l0
aW9uID0gaXNUcmFuc2l0aW9uOwotICAgICAgICAgICAgbV9pc0N1cnJlbnQgPSB0cnVlOwotICAg
ICAgICB9Ci0gICAgCi0gICAgcHJpdmF0ZToKLSAgICAgICAgUmVmUHRyPEFuaW1hdGlvbj4gbV9h
bmltYXRpb247Ci0gICAgICAgIEFuaW1hdGVkUHJvcGVydHlJRCBtX3Byb3BlcnR5IDogMTQ7Ci0g
ICAgICAgIHNob3J0IG1faW5kZXggOiAxNjsKLSAgICAgICAgYm9vbCBtX2lzQ3VycmVudCA6IDE7
Ci0gICAgICAgIGJvb2wgbV9pc1RyYW5zaXRpb24gOiAxOwotICAgIH07Ci0gICAgCi0gICAgVmVj
dG9yPEFuaW1hdGlvbkVudHJ5PiBtX2FuaW1hdGlvbnM7ICAgICAgLy8gcnVubmluZyBhbmltYXRp
b25zL3RyYW5zaXRpb25zCi0gICAgCisKKyAgICBJbnRSZWN0IG1fY29udGVudHNSZWN0OworCiAj
aWZuZGVmIE5ERUJVRwogICAgIGludCBtX3JlcGFpbnRDb3VudDsKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQ2xpZW50LmggYi9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDbGllbnQuaAppbmRleCA0NjM4MmYy
Li44YzBiN2VkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
TGF5ZXJDbGllbnQuaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5
ZXJDbGllbnQuaApAQCAtNTMsMTMgKzUzLDE0IEBAIGNsYXNzIEdyYXBoaWNzTGF5ZXJDbGllbnQg
ewogcHVibGljOgogICAgIHZpcnR1YWwgfkdyYXBoaWNzTGF5ZXJDbGllbnQoKSB7fQogCi0gICAg
Ly8gQ2FsbGJhY2tzIGZvciB3aGVuIGhhcmR3YXJlLWFjY2VsZXJhdGVkIHRyYW5zaXRpb25zIGFu
ZCBhbmltYXRpb24gc3RhcnRlZAorICAgIC8vIENhbGxiYWNrIGZvciB3aGVuIGhhcmR3YXJlLWFj
Y2VsZXJhdGVkIGFuaW1hdGlvbiBzdGFydGVkLgogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBbmlt
YXRpb25TdGFydGVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBkb3VibGUgdGltZSkgPSAwOworCisg
ICAgLy8gTm90aWZpY2F0aW9uIHRoYXQgYSBsYXllciBwcm9wZXJ0eSBjaGFuZ2VkIHRoYXQgcmVx
dWlyZXMgYSBzdWJzZXF1ZW50IGNhbGwgdG8gc3luY0NvbXBvc2l0aW5nU3RhdGUoKQorICAgIC8v
IHRvIGFwcGVhciBvbiB0aGUgc2NyZWVuLgorICAgIHZpcnR1YWwgdm9pZCBub3RpZnlTeW5jUmVx
dWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopID0gMDsKICAgICAKICAgICB2aXJ0dWFsIHZvaWQg
cGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiwgR3JhcGhpY3NDb250ZXh0JiwgR3Jh
cGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IEludFJlY3QmIGluQ2xpcCkgPSAwOwotCi0g
ICAgLy8gUmV0dXJuIGEgcmVjdCBmb3IgdGhlICJjb250ZW50cyIgb2YgdGhlIGdyYXBoaWNzIGxh
eWVyLCBpLmUuIHZpZGVvIG9yIGltYWdlIGNvbnRlbnQsIGluIEdyYXBoaWNzTGF5ZXIgY29vcmRp
bmF0ZXMuCi0gICAgdmlydHVhbCBJbnRSZWN0IGNvbnRlbnRzQm94KGNvbnN0IEdyYXBoaWNzTGF5
ZXIqKSA9IDA7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9HcmFwaGljc0xheWVyQ0EuaCBiL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvbWFjL0dyYXBoaWNzTGF5ZXJDQS5oCmluZGV4IDFlMGFhMmMuLjJjMTIx
NjQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0dyYXBoaWNzTGF5
ZXJDQS5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0dyYXBoaWNzTGF5ZXJD
QS5oCkBAIC0yOSw4ICsyOSwxNSBAQAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
IAogI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXIuaCIKKyNpbmNsdWRlICJTdHJpbmdIYXNoLmgiCisj
aW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKK0Bj
bGFzcyBDQUJhc2ljQW5pbWF0aW9uOworQGNsYXNzIENBS2V5ZnJhbWVBbmltYXRpb247CitAY2xh
c3MgQ0FMYXllcjsKK0BjbGFzcyBDQU1lZGlhVGltaW5nRnVuY3Rpb247CitAY2xhc3MgQ0FQcm9w
ZXJ0eUFuaW1hdGlvbjsKIEBjbGFzcyBXZWJBbmltYXRpb25EZWxlZ2F0ZTsKIEBjbGFzcyBXZWJM
YXllcjsKIApAQCAtNjcsNDAgKzc0LDQ0IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0
TWFza3NUb0JvdW5kcyhib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RHJhd3NDb250ZW50KGJv
b2wpOwogCi0gICAgdmlydHVhbCB2b2lkIHNldEJhY2tncm91bmRDb2xvcihjb25zdCBDb2xvciYs
IGNvbnN0IEFuaW1hdGlvbiogYW5pbSA9IDAsIGRvdWJsZSBiZWdpblRpbWUgPSAwKTsKKyAgICB2
aXJ0dWFsIHZvaWQgc2V0QmFja2dyb3VuZENvbG9yKGNvbnN0IENvbG9yJik7CiAgICAgdmlydHVh
bCB2b2lkIGNsZWFyQmFja2dyb3VuZENvbG9yKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29u
dGVudHNPcGFxdWUoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHNldEJhY2tmYWNlVmlzaWJpbGl0
eShib29sKTsKIAogICAgIC8vIHJldHVybiB0cnVlIGlmIHdlIHN0YXJ0ZWQgYW4gYW5pbWF0aW9u
Ci0gICAgdmlydHVhbCBib29sIHNldE9wYWNpdHkoZmxvYXQsIGNvbnN0IEFuaW1hdGlvbiogYW5p
bSA9IDAsIGRvdWJsZSBiZWdpblRpbWUgPSAwKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0T3BhY2l0
eShmbG9hdCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNEaXNwbGF5KCk7CiAgICAgdmly
dHVhbCB2b2lkIHNldE5lZWRzRGlzcGxheUluUmVjdChjb25zdCBGbG9hdFJlY3QmKTsKIAorICAg
IHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1JlY3QoY29uc3QgSW50UmVjdCYpOworICAgIAogICAg
IHZpcnR1YWwgdm9pZCBzdXNwZW5kQW5pbWF0aW9ucygpOwogICAgIHZpcnR1YWwgdm9pZCByZXN1
bWVBbmltYXRpb25zKCk7CiAKLSAgICB2aXJ0dWFsIGJvb2wgYW5pbWF0ZVRyYW5zZm9ybShjb25z
dCBUcmFuc2Zvcm1WYWx1ZUxpc3QmLCBjb25zdCBJbnRTaXplJiwgY29uc3QgQW5pbWF0aW9uKiwg
ZG91YmxlIGJlZ2luVGltZSwgYm9vbCBpc1RyYW5zaXRpb24pOwotICAgIHZpcnR1YWwgYm9vbCBh
bmltYXRlRmxvYXQoQW5pbWF0ZWRQcm9wZXJ0eUlELCBjb25zdCBGbG9hdFZhbHVlTGlzdCYsIGNv
bnN0IEFuaW1hdGlvbiosIGRvdWJsZSBiZWdpblRpbWUpOwotCisgICAgdmlydHVhbCBib29sIGFk
ZEFuaW1hdGlvbihjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYsIGNvbnN0IEludFNpemUmIGJveFNp
emUsIGNvbnN0IEFuaW1hdGlvbiosIGNvbnN0IFN0cmluZyYga2V5ZnJhbWVzTmFtZSwgZG91Ymxl
IGJlZ2luVGltZSk7CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZUFuaW1hdGlvbnNGb3JQcm9wZXJ0
eShBbmltYXRlZFByb3BlcnR5SUQpOworICAgIHZpcnR1YWwgdm9pZCByZW1vdmVBbmltYXRpb25z
Rm9yS2V5ZnJhbWVzKGNvbnN0IFN0cmluZyYga2V5ZnJhbWVzTmFtZSk7CisgICAgdmlydHVhbCB2
b2lkIHBhdXNlQW5pbWF0aW9uKGNvbnN0IFN0cmluZyYga2V5ZnJhbWVzTmFtZSk7CisgICAgCiAg
ICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzVG9JbWFnZShJbWFnZSopOwogICAgIHZpcnR1YWwg
dm9pZCBzZXRDb250ZW50c1RvVmlkZW8oUGxhdGZvcm1MYXllciopOwotICAgIHZpcnR1YWwgdm9p
ZCBjbGVhckNvbnRlbnRzKCk7CiAgICAgCi0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZUNvbnRlbnRz
UmVjdCgpOwotCiAgICAgdmlydHVhbCBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29u
c3Q7CiAKICNpZm5kZWYgTkRFQlVHCiAgICAgdmlydHVhbCB2b2lkIHNldERlYnVnQmFja2dyb3Vu
ZENvbG9yKGNvbnN0IENvbG9yJik7CiAgICAgdmlydHVhbCB2b2lkIHNldERlYnVnQm9yZGVyKGNv
bnN0IENvbG9yJiwgZmxvYXQgYm9yZGVyV2lkdGgpOwotICAgIHZpcnR1YWwgdm9pZCBzZXRaUG9z
aXRpb24oZmxvYXQpOwogI2VuZGlmCiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0R2VvbWV0cnlPcmll
bnRhdGlvbihDb21wb3NpdGluZ0Nvb3JkaW5hdGVzT3JpZW50YXRpb24pOwotICAgIHZpcnR1YWwg
Q29tcG9zaXRpbmdDb29yZGluYXRlc09yaWVudGF0aW9uIGdlb21ldHJ5T3JpZW50YXRpb24oKSBj
b25zdDsKKworICAgIHZvaWQgcmVjdXJzaXZlQ29tbWl0Q2hhbmdlcygpOworICAgIHZvaWQgY29t
bWl0TGF5ZXJDaGFuZ2VzKCk7CisKKyAgICB2aXJ0dWFsIHZvaWQgc3luY0NvbXBvc2l0aW5nU3Rh
dGUoKTsKIAogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBzZXRPcGFjaXR5SW50ZXJuYWwo
ZmxvYXQpOwpAQCAtMTA4LDE5ICsxMTksMzEgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICB2
b2lkIHVwZGF0ZU9wYWNpdHlPbkxheWVyKCk7CiAKLSAgICBXZWJMYXllciogcHJpbWFyeUxheWVy
KCkgY29uc3QgIHsgcmV0dXJuIG1fdHJhbnNmb3JtTGF5ZXIuZ2V0KCkgPyBtX3RyYW5zZm9ybUxh
eWVyLmdldCgpIDogbV9sYXllci5nZXQoKTsgfQorICAgIFdlYkxheWVyKiBwcmltYXJ5TGF5ZXIo
KSBjb25zdCB7IHJldHVybiBtX3RyYW5zZm9ybUxheWVyLmdldCgpID8gbV90cmFuc2Zvcm1MYXll
ci5nZXQoKSA6IG1fbGF5ZXIuZ2V0KCk7IH0KICAgICBXZWJMYXllciogaG9zdExheWVyRm9yU3Vi
bGF5ZXJzKCkgY29uc3Q7CiAgICAgV2ViTGF5ZXIqIGxheWVyRm9yU3VwZXJsYXllcigpIGNvbnN0
OworICAgIENBTGF5ZXIqIGFuaW1hdGVkTGF5ZXIoQW5pbWF0ZWRQcm9wZXJ0eUlEIHByb3BlcnR5
KSBjb25zdDsKIAotICAgIFdlYkxheWVyKiBhbmltYXRlZExheWVyKEFuaW1hdGVkUHJvcGVydHlJ
RCBwcm9wZXJ0eSkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiAocHJvcGVydHkgPT0gQW5p
bWF0ZWRQcm9wZXJ0eUJhY2tncm91bmRDb2xvcikgPyBtX2NvbnRlbnRzTGF5ZXIuZ2V0KCkgOiBw
cmltYXJ5TGF5ZXIoKTsKLSAgICB9CisgICAgYm9vbCBjcmVhdGVBbmltYXRpb25Gcm9tS2V5ZnJh
bWVzKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiwgY29uc3QgQW5pbWF0aW9uKiwgY29uc3QgU3Ry
aW5nJiBrZXlmcmFtZXNOYW1lLCBkb3VibGUgYmVnaW5UaW1lKTsKKyAgICBib29sIGNyZWF0ZVRy
YW5zZm9ybUFuaW1hdGlvbnNGcm9tS2V5ZnJhbWVzKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0Jiwg
Y29uc3QgQW5pbWF0aW9uKiwgY29uc3QgU3RyaW5nJiBrZXlmcmFtZXNOYW1lLCBkb3VibGUgYmVn
aW5UaW1lLCBjb25zdCBJbnRTaXplJiBib3hTaXplKTsKIAotICAgIHZvaWQgc2V0QmFzaWNBbmlt
YXRpb24oQW5pbWF0ZWRQcm9wZXJ0eUlELCBUcmFuc2Zvcm1PcGVyYXRpb246Ok9wZXJhdGlvblR5
cGUsIHNob3J0IGluZGV4LCB2b2lkKiBmcm9tVmFsLCB2b2lkKiB0b1ZhbCwgYm9vbCBpc1RyYW5z
aXRpb24sIGNvbnN0IEFuaW1hdGlvbiosIGRvdWJsZSB0aW1lKTsKLSAgICB2b2lkIHNldEtleWZy
YW1lQW5pbWF0aW9uKEFuaW1hdGVkUHJvcGVydHlJRCwgVHJhbnNmb3JtT3BlcmF0aW9uOjpPcGVy
YXRpb25UeXBlLCBzaG9ydCBpbmRleCwgdm9pZCoga2V5cywgdm9pZCogdmFsdWVzLCB2b2lkKiB0
aW1pbmdGdW5jdGlvbnMsIGJvb2wgaXNUcmFuc2l0aW9uLCBjb25zdCBBbmltYXRpb24qLCBkb3Vi
bGUgdGltZSk7CisgICAgLy8gUmV0dXJuIGF1dG9yZWxlYXNlZCBhbmltYXRpb24gKHVzZSBSZXRh
aW5QdHI/KQorICAgIENBQmFzaWNBbmltYXRpb24qIGNyZWF0ZUJhc2ljQW5pbWF0aW9uKGNvbnN0
IEFuaW1hdGlvbiosIEFuaW1hdGVkUHJvcGVydHlJRCwgYm9vbCBhZGRpdGl2ZSk7CisgICAgQ0FL
ZXlmcmFtZUFuaW1hdGlvbiogY3JlYXRlS2V5ZnJhbWVBbmltYXRpb24oY29uc3QgQW5pbWF0aW9u
KiwgQW5pbWF0ZWRQcm9wZXJ0eUlELCBib29sIGFkZGl0aXZlKTsKKyAgICB2b2lkIHNldHVwQW5p
bWF0aW9uKENBUHJvcGVydHlBbmltYXRpb24qLCBjb25zdCBBbmltYXRpb24qLCBib29sIGFkZGl0
aXZlKTsKKyAgICAKKyAgICBDQU1lZGlhVGltaW5nRnVuY3Rpb24qIHRpbWluZ0Z1bmN0aW9uRm9y
QW5pbWF0aW9uVmFsdWUoY29uc3QgQW5pbWF0aW9uVmFsdWUqLCBjb25zdCBBbmltYXRpb24qKTsK
KyAgICAKKyAgICBib29sIHNldEFuaW1hdGlvbkVuZHBvaW50cyhjb25zdCBLZXlmcmFtZVZhbHVl
TGlzdCYsIGNvbnN0IEFuaW1hdGlvbiosIENBQmFzaWNBbmltYXRpb24qKTsKKyAgICBib29sIHNl
dEFuaW1hdGlvbktleWZyYW1lcyhjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYsIGNvbnN0IEFuaW1h
dGlvbiosIENBS2V5ZnJhbWVBbmltYXRpb24qKTsKIAotICAgIHZpcnR1YWwgdm9pZCByZW1vdmVB
bmltYXRpb24oaW50IGluZGV4LCBib29sIHJlc2V0KTsKKyAgICBib29sIHNldFRyYW5zZm9ybUFu
aW1hdGlvbkVuZHBvaW50cyhjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYsIGNvbnN0IEFuaW1hdGlv
biosIENBQmFzaWNBbmltYXRpb24qLCBpbnQgZnVuY3Rpb25JbmRleCwgVHJhbnNmb3JtT3BlcmF0
aW9uOjpPcGVyYXRpb25UeXBlLCBib29sIGlzTWF0cml4QW5pbWF0aW9uLCBjb25zdCBJbnRTaXpl
JiBib3hTaXplKTsKKyAgICBib29sIHNldFRyYW5zZm9ybUFuaW1hdGlvbktleWZyYW1lcyhjb25z
dCBLZXlmcmFtZVZhbHVlTGlzdCYsIGNvbnN0IEFuaW1hdGlvbiosIENBS2V5ZnJhbWVBbmltYXRp
b24qLCBpbnQgZnVuY3Rpb25JbmRleCwgVHJhbnNmb3JtT3BlcmF0aW9uOjpPcGVyYXRpb25UeXBl
LCBib29sIGlzTWF0cml4QW5pbWF0aW9uLCBjb25zdCBJbnRTaXplJiBib3hTaXplKTsKKyAgICAK
KyAgICBib29sIGFuaW1hdGlvbklzUnVubmluZyhjb25zdCBTdHJpbmcmIGtleWZyYW1lc05hbWUp
IGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9ydW5uaW5nS2V5ZnJhbWVBbmltYXRpb25z
LmZpbmQoa2V5ZnJhbWVzTmFtZSkgIT0gbV9ydW5uaW5nS2V5ZnJhbWVBbmltYXRpb25zLmVuZCgp
OworICAgIH0KIAogICAgIGJvb2wgcmVxdWlyZXNUaWxlZExheWVyKGNvbnN0IEZsb2F0U2l6ZSYp
IGNvbnN0OwogICAgIHZvaWQgc3dhcEZyb21PclRvVGlsZWRMYXllcihib29sIHVzZVRpbGVkTGF5
ZXIpOwpAQCAtMTI4LDE2ICsxNTEsMTE1IEBAIHByaXZhdGU6CiAgICAgQ29tcG9zaXRpbmdDb29y
ZGluYXRlc09yaWVudGF0aW9uIGRlZmF1bHRDb250ZW50c09yaWVudGF0aW9uKCkgY29uc3Q7CiAg
ICAgdm9pZCB1cGRhdGVDb250ZW50c1RyYW5zZm9ybSgpOwogICAgIAotICAgIHZvaWQgc2V0Q29u
dGVudHNMYXllcihXZWJMYXllciopOwotICAgIFdlYkxheWVyKiBjb250ZW50c0xheWVyKCkgY29u
c3QgeyByZXR1cm4gbV9jb250ZW50c0xheWVyLmdldCgpOyB9CisgICAgdm9pZCBzZXR1cENvbnRl
bnRzTGF5ZXIoQ0FMYXllciopOworICAgIENBTGF5ZXIqIGNvbnRlbnRzTGF5ZXIoKSBjb25zdCB7
IHJldHVybiBtX2NvbnRlbnRzTGF5ZXIuZ2V0KCk7IH0KICAgICAKKyAgICAvLyBBbGwgdGhlc2Ug
InVwZGF0ZSIgbWV0aG9kcyB3aWxsIGJlIGNhbGxlZCBpbnNpZGUgYSBCRUdJTl9CTE9DS19PQkpD
X0VYQ0VQVElPTlMvRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUyBibG9jay4KKyAgICB2b2lkIHVw
ZGF0ZVN1YmxheWVyTGlzdCgpOworICAgIHZvaWQgdXBkYXRlTGF5ZXJQb3NpdGlvbigpOworICAg
IHZvaWQgdXBkYXRlTGF5ZXJTaXplKCk7CisgICAgdm9pZCB1cGRhdGVBbmNob3JQb2ludCgpOwor
ICAgIHZvaWQgdXBkYXRlVHJhbnNmb3JtKCk7CisgICAgdm9pZCB1cGRhdGVDaGlsZHJlblRyYW5z
Zm9ybSgpOworICAgIHZvaWQgdXBkYXRlTWFza3NUb0JvdW5kcygpOworICAgIHZvaWQgdXBkYXRl
Q29udGVudHNPcGFxdWUoKTsKKyAgICB2b2lkIHVwZGF0ZUJhY2tmYWNlVmlzaWJpbGl0eSgpOwor
ICAgIHZvaWQgdXBkYXRlTGF5ZXJQcmVzZXJ2ZXMzRCgpOworICAgIHZvaWQgdXBkYXRlTGF5ZXJE
cmF3c0NvbnRlbnQoKTsKKyAgICB2b2lkIHVwZGF0ZUxheWVyQmFja2dyb3VuZENvbG9yKCk7CisK
KyAgICB2b2lkIHVwZGF0ZUNvbnRlbnRzSW1hZ2UoKTsKKyAgICB2b2lkIHVwZGF0ZUNvbnRlbnRz
VmlkZW8oKTsKKyAgICB2b2lkIHVwZGF0ZUNvbnRlbnRzUmVjdCgpOworICAgIHZvaWQgdXBkYXRl
R2VvbWV0cnlPcmllbnRhdGlvbigpOworCisgICAgdm9pZCB1cGRhdGVMYXllckFuaW1hdGlvbnMo
KTsKKworICAgIHZvaWQgc2V0QW5pbWF0aW9uT25MYXllcihDQVByb3BlcnR5QW5pbWF0aW9uKiwg
QW5pbWF0ZWRQcm9wZXJ0eUlELCBpbnQgaW5kZXgsIGRvdWJsZSBiZWdpblRpbWUpOworICAgIGJv
b2wgcmVtb3ZlQW5pbWF0aW9uRnJvbUxheWVyKEFuaW1hdGVkUHJvcGVydHlJRCwgaW50IGluZGV4
KTsKKyAgICB2b2lkIHBhdXNlQW5pbWF0aW9uT25MYXllcihBbmltYXRlZFByb3BlcnR5SUQsIGlu
dCBpbmRleCk7CisKKyAgICBlbnVtIExheWVyQ2hhbmdlIHsKKyAgICAgICAgTm9DaGFuZ2UgPSAw
LAorICAgICAgICBOYW1lQ2hhbmdlZCA9IDEgPDwgMSwKKyAgICAgICAgQ2hpbGRyZW5DaGFuZ2Vk
ID0gMSA8PCAyLCAgIC8vIGFsc28gdXNlZCBmb3IgY29udGVudCBsYXllciwgYW5kIHByZXNlcnZl
cy0zZCwgYW5kIHNpemUgaWYgdGlsaW5nIGNoYW5nZXM/CisgICAgICAgIFBvc2l0aW9uQ2hhbmdl
ZCA9IDEgPDwgMywKKyAgICAgICAgQW5jaG9yUG9pbnRDaGFuZ2VkID0gMSA8PCA0LAorICAgICAg
ICBTaXplQ2hhbmdlZCA9IDEgPDwgNSwKKyAgICAgICAgVHJhbnNmb3JtQ2hhbmdlZCA9IDEgPDwg
NiwKKyAgICAgICAgQ2hpbGRyZW5UcmFuc2Zvcm1DaGFuZ2VkID0gMSA8PCA3LAorICAgICAgICBQ
cmVzZXJ2ZXMzRENoYW5nZWQgPSAxIDw8IDgsCisgICAgICAgIE1hc2tzVG9Cb3VuZHNDaGFuZ2Vk
ID0gMSA8PCA5LAorICAgICAgICBEcmF3c0NvbnRlbnRDaGFuZ2VkID0gMSA8PCAxMCwgIC8vIG5l
ZWQgdGhpcz8KKyAgICAgICAgQmFja2dyb3VuZENvbG9yQ2hhbmdlZCA9IDEgPDwgMTEsCisgICAg
ICAgIENvbnRlbnRzT3BhcXVlQ2hhbmdlZCA9IDEgPDwgMTIsCisgICAgICAgIEJhY2tmYWNlVmlz
aWJpbGl0eUNoYW5nZWQgPSAxIDw8IDEzLAorICAgICAgICBPcGFjaXR5Q2hhbmdlZCA9IDEgPDwg
MTQsCisgICAgICAgIEFuaW1hdGlvbkNoYW5nZWQgPSAxIDw8IDE1LAorICAgICAgICBEaXJ0eVJl
Y3RzQ2hhbmdlZCA9IDEgPDwgMTYsCisgICAgICAgIENvbnRlbnRzSW1hZ2VDaGFuZ2VkID0gMSA8
PCAxNywKKyAgICAgICAgQ29udGVudHNWaWRlb0NoYW5nZWQgPSAxIDw8IDE4LAorICAgICAgICBD
b250ZW50c1JlY3RDaGFuZ2VkID0gMSA8PCAxOSwKKyAgICAgICAgR2VvbWV0cnlPcmllbnRhdGlv
bkNoYW5nZWQgPSAxIDw8IDIwCisgICAgfTsKKyAgICB0eXBlZGVmIHVuc2lnbmVkIExheWVyQ2hh
bmdlRmxhZ3M7CisgICAgdm9pZCBub3RlTGF5ZXJQcm9wZXJ0eUNoYW5nZWQoTGF5ZXJDaGFuZ2VG
bGFncyBmbGFncyk7CisKKyAgICB2b2lkIHJlcGFpbnRMYXllckRpcnR5UmVjdHMoKTsKKwogICAg
IFJldGFpblB0cjxXZWJMYXllcj4gbV9sYXllcjsKICAgICBSZXRhaW5QdHI8V2ViTGF5ZXI+IG1f
dHJhbnNmb3JtTGF5ZXI7Ci0gICAgUmV0YWluUHRyPFdlYkxheWVyPiBtX2NvbnRlbnRzTGF5ZXI7
CisgICAgUmV0YWluUHRyPENBTGF5ZXI+IG1fY29udGVudHNMYXllcjsKKyAgICAKKyAgICBlbnVt
IENvbnRlbnRzTGF5ZXJQdXJwb3NlIHsKKyAgICAgICAgTm9Db250ZW50c0xheWVyID0gMCwKKyAg
ICAgICAgQ29udGVudHNMYXllckZvckltYWdlLAorICAgICAgICBDb250ZW50c0xheWVyRm9yVmlk
ZW8KKyAgICB9OworICAgIAorICAgIENvbnRlbnRzTGF5ZXJQdXJwb3NlIG1fY29udGVudHNMYXll
clB1cnBvc2U7CisgICAgYm9vbCBtX2NvbnRlbnRzTGF5ZXJIYXNCYWNrZ3JvdW5kQ29sb3IgOiAx
OwogCiAgICAgUmV0YWluUHRyPFdlYkFuaW1hdGlvbkRlbGVnYXRlPiBtX2FuaW1hdGlvbkRlbGVn
YXRlOwogCi0gICAgYm9vbCBtX2NvbnRlbnRMYXllckZvckltYWdlT3JWaWRlbzsKKyAgICBSZXRh
aW5QdHI8Q0dJbWFnZVJlZj4gbV9wZW5kaW5nQ29udGVudHNJbWFnZTsKKyAgICAKKyAgICBzdHJ1
Y3QgTGF5ZXJBbmltYXRpb24geworICAgICAgICBMYXllckFuaW1hdGlvbihDQVByb3BlcnR5QW5p
bWF0aW9uKiBjYUFuaW0sIGNvbnN0IFN0cmluZyYga2V5ZnJhbWVzTmFtZSwgQW5pbWF0ZWRQcm9w
ZXJ0eUlEIHByb3BlcnR5LCBpbnQgaW5kZXgsIGRvdWJsZSBiZWdpblRpbWUpCisgICAgICAgIDog
bV9hbmltYXRpb24oY2FBbmltKQorICAgICAgICAsIG1fa2V5ZnJhbWVzTmFtZShrZXlmcmFtZXNO
YW1lKQorICAgICAgICAsIG1fcHJvcGVydHkocHJvcGVydHkpCisgICAgICAgICwgbV9pbmRleChp
bmRleCkKKyAgICAgICAgLCBtX2JlZ2luVGltZShiZWdpblRpbWUpCisgICAgICAgIHsgfQorCisg
ICAgICAgIFJldGFpblB0cjxDQVByb3BlcnR5QW5pbWF0aW9uKj4gbV9hbmltYXRpb247CisgICAg
ICAgIFN0cmluZyBtX2tleWZyYW1lc05hbWU7CisgICAgICAgIEFuaW1hdGVkUHJvcGVydHlJRCBt
X3Byb3BlcnR5OworICAgICAgICBpbnQgbV9pbmRleDsKKyAgICAgICAgZG91YmxlIG1fYmVnaW5U
aW1lOworICAgIH07CisgICAgCisgICAgVmVjdG9yPExheWVyQW5pbWF0aW9uPiBtX3VuY29taXR0
ZWRBbmltYXRpb25zOworICAgIAorICAgIC8vIEFuaW1hdGlvbnMgb24gdGhlIGxheWVyIGFyZSBp
ZGVudGlmaWVkIGJ5IHByb3BlcnR5ICsgaW5kZXguCisgICAgdHlwZWRlZiBpbnQgQW5pbWF0ZWRQ
cm9wZXJ0eTsgICAvLyBzdGQgY29udGFpbmVycyBjaG9rZSBvbiB0aGUgQW5pbWF0ZWRQcm9wZXJ0
eUlEIGVudW0KKyAgICB0eXBlZGVmIHBhaXI8QW5pbWF0ZWRQcm9wZXJ0eSwgaW50PiBBbmltYXRp
b25QYWlyOworCisgICAgSGFzaFNldDxBbmltYXRlZFByb3BlcnR5PiBtX3RyYW5zaXRpb25Qcm9w
ZXJ0aWVzVG9SZW1vdmU7CisgICAgCisgICAgZW51bSB7IFJlbW92ZSwgUGF1c2UgfTsKKyAgICB0
eXBlZGVmIGludCBBbmltYXRpb25Qcm9jZXNzaW5nQWN0aW9uOworICAgIHR5cGVkZWYgSGFzaE1h
cDxTdHJpbmcsIEFuaW1hdGlvblByb2Nlc3NpbmdBY3Rpb24+IEFuaW1hdGlvbnNUb1Byb2Nlc3NN
YXA7CisgICAgQW5pbWF0aW9uc1RvUHJvY2Vzc01hcCBtX2tleWZyYW1lQW5pbWF0aW9uc1RvUHJv
Y2VzczsKKworICAgIC8vIE1hcCBvZiBrZXlmcmFtZSBuYW1lcyB0byB0aGVpciBhc3NvY2lhdGVk
IGxpc3RzIG9mIGFuaW1hdGlvbnMgZm9yIHJ1bm5pbmcgYW5pbWF0aW9ucywgc28gd2UgY2FuIHJl
bW92ZS9wYXVzZSB0aGVtLgorICAgIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIFZlY3RvcjxBbmlt
YXRpb25QYWlyPiA+IEtleWZyYW1lQW5pbWF0aW9uc01hcDsKKyAgICBLZXlmcmFtZUFuaW1hdGlv
bnNNYXAgbV9ydW5uaW5nS2V5ZnJhbWVBbmltYXRpb25zOworICAgIAorICAgIFZlY3RvcjxGbG9h
dFJlY3Q+IG1fZGlydHlSZWN0czsKKyAgICAKKyAgICBMYXllckNoYW5nZUZsYWdzIG1fdW5jb21t
aXR0ZWRDaGFuZ2VzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvR3JhcGhpY3NMYXllckNBLm1tIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvR3JhcGhpY3NMYXllckNBLm1tCmluZGV4IDVmYjg2YmYu
LjNkZTc3NmIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0dyYXBo
aWNzTGF5ZXJDQS5tbQorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9HcmFwaGlj
c0xheWVyQ0EubW0KQEAgLTQzLDYgKzQzLDcgQEAKICNpbXBvcnQgIlRyYW5zbGF0ZVRyYW5zZm9y
bU9wZXJhdGlvbi5oIgogI2ltcG9ydCAiV2ViTGF5ZXIuaCIKICNpbXBvcnQgIldlYlRpbGVkTGF5
ZXIuaCIKKyNpbXBvcnQgPGxpbWl0cy5oPgogI2ltcG9ydCA8d3RmL0N1cnJlbnRUaW1lLmg+CiAj
aW1wb3J0IDx3dGYvVW51c2VkUGFyYW0uaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KQEAg
LTgxLDggKzgyLDYgQEAgc3RhdGljIGRvdWJsZSBtZWRpYVRpbWVUb0N1cnJlbnRUaW1lKENGVGlt
ZUludGVydmFsIHQpCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotc3RhdGljIE5TU3RyaW5n
KiBjb25zdCBXZWJBbmltYXRpb25DU1NQcm9wZXJ0eUtleSA9IEAiR3JhcGhpY3NMYXllckNBX3By
b3BlcnR5IjsKLQogQGludGVyZmFjZSBXZWJBbmltYXRpb25EZWxlZ2F0ZSA6IE5TT2JqZWN0IHsK
ICAgICBXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0EqIG1fZ3JhcGhpY3NMYXllcjsKIH0KQEAgLTEz
OCwyNyArMTM3LDI1IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBjb3B5VHJhbnNmb3JtKENBVHJhbnNm
b3JtM0QmIHRvVDNELCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpCiAgICAgdG9UM0QubTQ0ID0g
bmFycm93UHJlY2lzaW9uVG9GbG9hdCh0Lm00NCgpKTsKIH0KIAotc3RhdGljIE5TVmFsdWUqIGdl
dFRyYW5zZm9ybUZ1bmN0aW9uVmFsdWUoY29uc3QgR3JhcGhpY3NMYXllcjo6VHJhbnNmb3JtVmFs
dWUmIHRyYW5zZm9ybVZhbHVlLCBzaXplX3QgaW5kZXgsIGNvbnN0IEludFNpemUmIHNpemUsIFRy
YW5zZm9ybU9wZXJhdGlvbjo6T3BlcmF0aW9uVHlwZSB0cmFuc2Zvcm1UeXBlKQorc3RhdGljIE5T
VmFsdWUqIGdldFRyYW5zZm9ybUZ1bmN0aW9uVmFsdWUoY29uc3QgVHJhbnNmb3JtT3BlcmF0aW9u
KiB0cmFuc2Zvcm1PcCwgVHJhbnNmb3JtT3BlcmF0aW9uOjpPcGVyYXRpb25UeXBlIHRyYW5zZm9y
bVR5cGUsIGNvbnN0IEludFNpemUmIHNpemUpCiB7Ci0gICAgVHJhbnNmb3JtT3BlcmF0aW9uKiBv
cCA9IChpbmRleCA+PSB0cmFuc2Zvcm1WYWx1ZS52YWx1ZSgpLT5vcGVyYXRpb25zKCkuc2l6ZSgp
KSA/IDAgOiB0cmFuc2Zvcm1WYWx1ZS52YWx1ZSgpLT5vcGVyYXRpb25zKClbaW5kZXhdLmdldCgp
OwotICAgIAogICAgIHN3aXRjaCAodHJhbnNmb3JtVHlwZSkgewogICAgICAgICBjYXNlIFRyYW5z
Zm9ybU9wZXJhdGlvbjo6Uk9UQVRFOgogICAgICAgICBjYXNlIFRyYW5zZm9ybU9wZXJhdGlvbjo6
Uk9UQVRFX1g6CiAgICAgICAgIGNhc2UgVHJhbnNmb3JtT3BlcmF0aW9uOjpST1RBVEVfWToKLSAg
ICAgICAgICAgIHJldHVybiBbTlNOdW1iZXIgbnVtYmVyV2l0aERvdWJsZTpvcCA/IGRlZzJyYWQo
c3RhdGljX2Nhc3Q8Um90YXRlVHJhbnNmb3JtT3BlcmF0aW9uKj4ob3ApLT5hbmdsZSgpKSA6IDBd
OworICAgICAgICAgICAgcmV0dXJuIFtOU051bWJlciBudW1iZXJXaXRoRG91YmxlOnRyYW5zZm9y
bU9wID8gZGVnMnJhZChzdGF0aWNfY2FzdDxjb25zdCBSb3RhdGVUcmFuc2Zvcm1PcGVyYXRpb24q
Pih0cmFuc2Zvcm1PcCktPmFuZ2xlKCkpIDogMF07CiAgICAgICAgIGNhc2UgVHJhbnNmb3JtT3Bl
cmF0aW9uOjpTQ0FMRV9YOgotICAgICAgICAgICAgcmV0dXJuIFtOU051bWJlciBudW1iZXJXaXRo
RG91YmxlOm9wID8gc3RhdGljX2Nhc3Q8U2NhbGVUcmFuc2Zvcm1PcGVyYXRpb24qPihvcCktPngo
KSA6IDBdOworICAgICAgICAgICAgcmV0dXJuIFtOU051bWJlciBudW1iZXJXaXRoRG91YmxlOnRy
YW5zZm9ybU9wID8gc3RhdGljX2Nhc3Q8Y29uc3QgU2NhbGVUcmFuc2Zvcm1PcGVyYXRpb24qPih0
cmFuc2Zvcm1PcCktPngoKSA6IDBdOwogICAgICAgICBjYXNlIFRyYW5zZm9ybU9wZXJhdGlvbjo6
U0NBTEVfWToKLSAgICAgICAgICAgIHJldHVybiBbTlNOdW1iZXIgbnVtYmVyV2l0aERvdWJsZTpv
cCA/IHN0YXRpY19jYXN0PFNjYWxlVHJhbnNmb3JtT3BlcmF0aW9uKj4ob3ApLT55KCkgOiAwXTsK
KyAgICAgICAgICAgIHJldHVybiBbTlNOdW1iZXIgbnVtYmVyV2l0aERvdWJsZTp0cmFuc2Zvcm1P
cCA/IHN0YXRpY19jYXN0PGNvbnN0IFNjYWxlVHJhbnNmb3JtT3BlcmF0aW9uKj4odHJhbnNmb3Jt
T3ApLT55KCkgOiAwXTsKICAgICAgICAgY2FzZSBUcmFuc2Zvcm1PcGVyYXRpb246OlNDQUxFX1o6
Ci0gICAgICAgICAgICByZXR1cm4gW05TTnVtYmVyIG51bWJlcldpdGhEb3VibGU6b3AgPyBzdGF0
aWNfY2FzdDxTY2FsZVRyYW5zZm9ybU9wZXJhdGlvbio+KG9wKS0+eigpIDogMF07CisgICAgICAg
ICAgICByZXR1cm4gW05TTnVtYmVyIG51bWJlcldpdGhEb3VibGU6dHJhbnNmb3JtT3AgPyBzdGF0
aWNfY2FzdDxjb25zdCBTY2FsZVRyYW5zZm9ybU9wZXJhdGlvbio+KHRyYW5zZm9ybU9wKS0+eigp
IDogMF07CiAgICAgICAgIGNhc2UgVHJhbnNmb3JtT3BlcmF0aW9uOjpUUkFOU0xBVEVfWDoKLSAg
ICAgICAgICAgIHJldHVybiBbTlNOdW1iZXIgbnVtYmVyV2l0aERvdWJsZTpvcCA/IHN0YXRpY19j
YXN0PFRyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbio+KG9wKS0+eChzaXplKSA6IDBdOworICAg
ICAgICAgICAgcmV0dXJuIFtOU051bWJlciBudW1iZXJXaXRoRG91YmxlOnRyYW5zZm9ybU9wID8g
c3RhdGljX2Nhc3Q8Y29uc3QgVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uKj4odHJhbnNmb3Jt
T3ApLT54KHNpemUpIDogMF07CiAgICAgICAgIGNhc2UgVHJhbnNmb3JtT3BlcmF0aW9uOjpUUkFO
U0xBVEVfWToKLSAgICAgICAgICAgIHJldHVybiBbTlNOdW1iZXIgbnVtYmVyV2l0aERvdWJsZTpv
cCA/IHN0YXRpY19jYXN0PFRyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbio+KG9wKS0+eShzaXpl
KSA6IDBdOworICAgICAgICAgICAgcmV0dXJuIFtOU051bWJlciBudW1iZXJXaXRoRG91YmxlOnRy
YW5zZm9ybU9wID8gc3RhdGljX2Nhc3Q8Y29uc3QgVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9u
Kj4odHJhbnNmb3JtT3ApLT55KHNpemUpIDogMF07CiAgICAgICAgIGNhc2UgVHJhbnNmb3JtT3Bl
cmF0aW9uOjpUUkFOU0xBVEVfWjoKLSAgICAgICAgICAgIHJldHVybiBbTlNOdW1iZXIgbnVtYmVy
V2l0aERvdWJsZTpvcCA/IHN0YXRpY19jYXN0PFRyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbio+
KG9wKS0+eihzaXplKSA6IDBdOworICAgICAgICAgICAgcmV0dXJuIFtOU051bWJlciBudW1iZXJX
aXRoRG91YmxlOnRyYW5zZm9ybU9wID8gc3RhdGljX2Nhc3Q8Y29uc3QgVHJhbnNsYXRlVHJhbnNm
b3JtT3BlcmF0aW9uKj4odHJhbnNmb3JtT3ApLT56KHNpemUpIDogMF07CiAgICAgICAgIGNhc2Ug
VHJhbnNmb3JtT3BlcmF0aW9uOjpTQ0FMRToKICAgICAgICAgY2FzZSBUcmFuc2Zvcm1PcGVyYXRp
b246OlRSQU5TTEFURToKICAgICAgICAgY2FzZSBUcmFuc2Zvcm1PcGVyYXRpb246OlNLRVdfWDoK
QEAgLTE3MiwxMiArMTY5LDEyIEBAIHN0YXRpYyBOU1ZhbHVlKiBnZXRUcmFuc2Zvcm1GdW5jdGlv
blZhbHVlKGNvbnN0IEdyYXBoaWNzTGF5ZXI6OlRyYW5zZm9ybVZhbHVlJiB0CiAgICAgICAgIGNh
c2UgVHJhbnNmb3JtT3BlcmF0aW9uOjpQRVJTUEVDVElWRToKICAgICAgICAgY2FzZSBUcmFuc2Zv
cm1PcGVyYXRpb246OklERU5USVRZOgogICAgICAgICBjYXNlIFRyYW5zZm9ybU9wZXJhdGlvbjo6
Tk9ORTogewotICAgICAgICAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggdDsKLSAgICAgICAgICAg
IGlmIChvcCkKLSAgICAgICAgICAgICAgICBvcC0+YXBwbHkodCwgc2l6ZSk7Ci0gICAgICAgICAg
ICBDQVRyYW5zZm9ybTNEIGNhdDsKLSAgICAgICAgICAgIGNvcHlUcmFuc2Zvcm0oY2F0LCB0KTsK
LSAgICAgICAgICAgIHJldHVybiBbTlNWYWx1ZSB2YWx1ZVdpdGhDQVRyYW5zZm9ybTNEOmNhdF07
CisgICAgICAgICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCB0cmFuc2Zvcm07CisgICAgICAgICAg
ICBpZiAodHJhbnNmb3JtT3ApCisgICAgICAgICAgICAgICAgdHJhbnNmb3JtT3AtPmFwcGx5KHRy
YW5zZm9ybSwgc2l6ZSk7CisgICAgICAgICAgICBDQVRyYW5zZm9ybTNEIGNhVHJhbnNmb3JtOwor
ICAgICAgICAgICAgY29weVRyYW5zZm9ybShjYVRyYW5zZm9ybSwgdHJhbnNmb3JtKTsKKyAgICAg
ICAgICAgIHJldHVybiBbTlNWYWx1ZSB2YWx1ZVdpdGhDQVRyYW5zZm9ybTNEOmNhVHJhbnNmb3Jt
XTsKICAgICAgICAgfQogICAgIH0KICAgICAKQEAgLTIxMyw2ICsyMTAsMzAgQEAgc3RhdGljIE5T
U3RyaW5nKiBnZXRWYWx1ZUZ1bmN0aW9uTmFtZUZvclRyYW5zZm9ybU9wZXJhdGlvbihUcmFuc2Zv
cm1PcGVyYXRpb246Ok8KIH0KICNlbmRpZgogCitzdGF0aWMgU3RyaW5nIHByb3BlcnR5SWRUb1N0
cmluZyhBbmltYXRlZFByb3BlcnR5SUQgcHJvcGVydHkpCit7CisgICAgc3dpdGNoIChwcm9wZXJ0
eSkgeworICAgICAgICBjYXNlIEFuaW1hdGVkUHJvcGVydHlXZWJraXRUcmFuc2Zvcm06CisgICAg
ICAgICAgICByZXR1cm4gInRyYW5zZm9ybSI7CisgICAgICAgIGNhc2UgQW5pbWF0ZWRQcm9wZXJ0
eU9wYWNpdHk6CisgICAgICAgICAgICByZXR1cm4gIm9wYWNpdHkiOworICAgICAgICBjYXNlIEFu
aW1hdGVkUHJvcGVydHlCYWNrZ3JvdW5kQ29sb3I6CisgICAgICAgICAgICByZXR1cm4gImJhY2tn
cm91bmRDb2xvciI7CisgICAgICAgIGNhc2UgQW5pbWF0ZWRQcm9wZXJ0eUludmFsaWQ6CisgICAg
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgcmV0dXJuICIiOworfQorCitzdGF0aWMgU3RyaW5nIGFuaW1hdGlvbklkZW50
aWZpZXIoQW5pbWF0ZWRQcm9wZXJ0eUlEIHByb3BlcnR5LCBpbnQgaW5kZXgpCit7CisgICAgU3Ry
aW5nIGFuaW1hdGlvbklkID0gcHJvcGVydHlJZFRvU3RyaW5nKHByb3BlcnR5KTsKKyAgICBhbmlt
YXRpb25JZC5hcHBlbmQoIl8iKTsKKyAgICBhbmltYXRpb25JZC5hcHBlbmQoU3RyaW5nOjpudW1i
ZXIoaW5kZXgpKTsKKyAgICByZXR1cm4gYW5pbWF0aW9uSWQ7Cit9CisKICNpZiAhSEFWRV9NT0RF
Uk5fUVVBUlRaQ09SRQogc3RhdGljIFRyYW5zZm9ybWF0aW9uTWF0cml4IGZsaXBUcmFuc2Zvcm0o
KQogewpAQCAtMjYwLDE1ICsyODEsNiBAQCBzdGF0aWMgdm9pZCBjbGVhckxheWVyQmFja2dyb3Vu
ZENvbG9yKFBsYXRmb3JtTGF5ZXIqIGxheWVyKQogICAgIFtsYXllciBzZXRCYWNrZ3JvdW5kQ29s
b3I6MF07CiB9CiAKLXN0YXRpYyBDQUxheWVyKiBnZXRQcmVzZW50YXRpb25MYXllcihDQUxheWVy
KiBsYXllcikKLXsKLSAgICBDQUxheWVyKiAgcHJlc0xheWVyID0gW2xheWVyIHByZXNlbnRhdGlv
bkxheWVyXTsKLSAgICBpZiAoIXByZXNMYXllcikKLSAgICAgICAgcHJlc0xheWVyID0gbGF5ZXI7
Ci0KLSAgICByZXR1cm4gcHJlc0xheWVyOwotfQotCiBzdGF0aWMgYm9vbCBjYVZhbHVlRnVuY3Rp
b25TdXBwb3J0ZWQoKQogewogICAgIHN0YXRpYyBib29sIHNIYXZlVmFsdWVGdW5jdGlvbiA9IFtD
QVByb3BlcnR5QW5pbWF0aW9uIGluc3RhbmNlc1Jlc3BvbmRUb1NlbGVjdG9yOkBzZWxlY3Rvcihz
ZXRWYWx1ZUZ1bmN0aW9uOildOwpAQCAtMzE0LDkgKzMyNiw3IEBAIHN0YXRpYyBOU0RpY3Rpb25h
cnkqIG51bGxBY3Rpb25zRGljdGlvbmFyeSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG51bGxWYWx1ZSwgQCJzdWJsYXllclRyYW5zZm9ybSIsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG51bGxWYWx1ZSwgQCJzdWJsYXllcnMiLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBudWxsVmFsdWUsIEAidHJhbnNmb3JtIiwKLSNpZm5kZWYgTkRFQlVHCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG51bGxWYWx1ZSwgQCJ6UG9zaXRpb24iLAotI2VuZGlmCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG5pbF07CiAgICAgcmV0dXJuIGFjdGlvbnM7CiB9CkBA
IC0zMjgsNyArMzM4LDkgQEAgR3JhcGhpY3NMYXllciogR3JhcGhpY3NMYXllcjo6Y3JlYXRlR3Jh
cGhpY3NMYXllcihHcmFwaGljc0xheWVyQ2xpZW50KiBjbGllbnQpCiAKIEdyYXBoaWNzTGF5ZXJD
QTo6R3JhcGhpY3NMYXllckNBKEdyYXBoaWNzTGF5ZXJDbGllbnQqIGNsaWVudCkKIDogR3JhcGhp
Y3NMYXllcihjbGllbnQpCi0sIG1fY29udGVudExheWVyRm9ySW1hZ2VPclZpZGVvKGZhbHNlKQor
LCBtX2NvbnRlbnRzTGF5ZXJQdXJwb3NlKE5vQ29udGVudHNMYXllcikKKywgbV9jb250ZW50c0xh
eWVySGFzQmFja2dyb3VuZENvbG9yKGZhbHNlKQorLCBtX3VuY29tbWl0dGVkQ2hhbmdlcyhOb0No
YW5nZSkKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICBtX2xheWVyLmFk
b3B0TlMoW1tXZWJMYXllciBhbGxvY10gaW5pdF0pOwpAQCAtMzUwLDIxICszNjIsMTggQEAgR3Jh
cGhpY3NMYXllckNBOjpHcmFwaGljc0xheWVyQ0EoR3JhcGhpY3NMYXllckNsaWVudCogY2xpZW50
KQogCiBHcmFwaGljc0xheWVyQ0E6On5HcmFwaGljc0xheWVyQ0EoKQogewotICAgIC8vIFJlbW92
ZSBhIGlubmVyIGxheWVyIGlmIHRoZXJlIGlzIG9uZS4KLSAgICBjbGVhckNvbnRlbnRzKCk7Ci0K
KyAgICAvLyBXZSByZWxlYXNlIG91ciByZWZlcmVuY2VzIHRvIHRoZSBDQUxheWVycyBoZXJlLCBi
dXQgZG8gbm90IGFjdGl2ZWx5IHVucGFyZW50IHRoZW0sCisgICAgLy8gc2luY2UgdGhhdCB3aWxs
IGNhdXNlIGEgY29tbWl0IGFuZCBicmVhayBvdXIgYmF0Y2hlZCBjb21taXQgbW9kZWwuIFRoZSBs
YXllcnMgd2lsbAorICAgIC8vIGdldCByZWxlYXNlZCB3aGVuIHRoZSByb290bW9zdCBtb2RpZmll
ZCBHcmFwaGljc0xheWVyQ0EgcmVidWlsZHMgaXRzIGNoaWxkIGxheWVycy4KKyAgICAKICAgICBC
RUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIAogICAgIC8vIENsZWFuIHVwIHRoZSBXSyBsYXll
ci4KICAgICBpZiAobV9sYXllcikgewogICAgICAgICBXZWJMYXllciogbGF5ZXIgPSBtX2xheWVy
LmdldCgpOwogICAgICAgICBbbGF5ZXIgc2V0TGF5ZXJPd25lcjpuaWxdOwotICAgICAgICBbbGF5
ZXIgcmVtb3ZlRnJvbVN1cGVybGF5ZXJdOwogICAgIH0KICAgICAKLSAgICBpZiAobV90cmFuc2Zv
cm1MYXllcikKLSAgICAgICAgW21fdHJhbnNmb3JtTGF5ZXIuZ2V0KCkgcmVtb3ZlRnJvbVN1cGVy
bGF5ZXJdOwotCiAgICAgLy8gYW5pbWF0aW9uRGlkU3RhcnQ6IGNhbiBmaXJlIGFmdGVyIHRoaXMs
IHNvIHdlIG5lZWQgdG8gY2xlYXIgb3V0IHRoZSBsYXllciBvbiB0aGUgZGVsZWdhdGUuCiAgICAg
W21fYW5pbWF0aW9uRGVsZWdhdGUuZ2V0KCkgc2V0TGF5ZXI6MF07CiAKQEAgLTM3NSwxMCArMzg0
LDcgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldE5hbWUoY29uc3QgU3RyaW5nJiBuYW1lKQog
ewogICAgIFN0cmluZyBsb25nTmFtZSA9IFN0cmluZzo6Zm9ybWF0KCJDQUxheWVyKCVwKSBHcmFw
aGljc0xheWVyKCVwKSAiLCBtX2xheWVyLmdldCgpLCB0aGlzKSArIG5hbWU7CiAgICAgR3JhcGhp
Y3NMYXllcjo6c2V0TmFtZShsb25nTmFtZSk7Ci0gICAgCi0gICAgQkVHSU5fQkxPQ0tfT0JKQ19F
WENFUFRJT05TCi0gICAgW21fbGF5ZXIuZ2V0KCkgc2V0TmFtZTpuYW1lXTsKLSAgICBFTkRfQkxP
Q0tfT0JKQ19FWENFUFRJT05TCisgICAgbm90ZUxheWVyUHJvcGVydHlDaGFuZ2VkKE5hbWVDaGFu
Z2VkKTsKIH0KIAogTmF0aXZlTGF5ZXIgR3JhcGhpY3NMYXllckNBOjpuYXRpdmVMYXllcigpIGNv
bnN0CkBAIC0zODksMTc1ICszOTUsNDcyIEBAIE5hdGl2ZUxheWVyIEdyYXBoaWNzTGF5ZXJDQTo6
bmF0aXZlTGF5ZXIoKSBjb25zdAogdm9pZCBHcmFwaGljc0xheWVyQ0E6OmFkZENoaWxkKEdyYXBo
aWNzTGF5ZXIqIGNoaWxkTGF5ZXIpCiB7CiAgICAgR3JhcGhpY3NMYXllcjo6YWRkQ2hpbGQoY2hp
bGRMYXllcik7Ci0KLSAgICBHcmFwaGljc0xheWVyQ0EqIGNoaWxkTGF5ZXJDQSA9IHN0YXRpY19j
YXN0PEdyYXBoaWNzTGF5ZXJDQSo+KGNoaWxkTGF5ZXIpOwotICAgIEJFR0lOX0JMT0NLX09CSkNf
RVhDRVBUSU9OUwotICAgIFtob3N0TGF5ZXJGb3JTdWJsYXllcnMoKSBhZGRTdWJsYXllcjpjaGls
ZExheWVyQ0EtPmxheWVyRm9yU3VwZXJsYXllcigpXTsKLSAgICBFTkRfQkxPQ0tfT0JKQ19FWENF
UFRJT05TCisgICAgbm90ZUxheWVyUHJvcGVydHlDaGFuZ2VkKENoaWxkcmVuQ2hhbmdlZCk7CiB9
CiAKIHZvaWQgR3JhcGhpY3NMYXllckNBOjphZGRDaGlsZEF0SW5kZXgoR3JhcGhpY3NMYXllciog
Y2hpbGRMYXllciwgaW50IGluZGV4KQogewogICAgIEdyYXBoaWNzTGF5ZXI6OmFkZENoaWxkQXRJ
bmRleChjaGlsZExheWVyLCBpbmRleCk7Ci0KLSAgICBHcmFwaGljc0xheWVyQ0EqIGNoaWxkTGF5
ZXJDQSA9IHN0YXRpY19jYXN0PEdyYXBoaWNzTGF5ZXJDQSo+KGNoaWxkTGF5ZXIpOwotICAgIEJF
R0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwotICAgIFtob3N0TGF5ZXJGb3JTdWJsYXllcnMoKSBp
bnNlcnRTdWJsYXllcjpjaGlsZExheWVyQ0EtPmxheWVyRm9yU3VwZXJsYXllcigpIGF0SW5kZXg6
aW5kZXhdOwotICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKKyAgICBub3RlTGF5ZXJQcm9w
ZXJ0eUNoYW5nZWQoQ2hpbGRyZW5DaGFuZ2VkKTsKIH0KIAogdm9pZCBHcmFwaGljc0xheWVyQ0E6
OmFkZENoaWxkQmVsb3coR3JhcGhpY3NMYXllciogY2hpbGRMYXllciwgR3JhcGhpY3NMYXllciog
c2libGluZykKIHsKLSAgICAvLyBGSVhNRTogc2hhcmUgY29kZSB3aXRoIGJhc2UgY2xhc3MKLSAg
ICBBU1NFUlQoY2hpbGRMYXllciAhPSB0aGlzKTsKLSAgICBjaGlsZExheWVyLT5yZW1vdmVGcm9t
UGFyZW50KCk7CisgICAgR3JhcGhpY3NMYXllcjo6YWRkQ2hpbGRCZWxvdyhjaGlsZExheWVyLCBz
aWJsaW5nKTsKKyAgICBub3RlTGF5ZXJQcm9wZXJ0eUNoYW5nZWQoQ2hpbGRyZW5DaGFuZ2VkKTsK
K30KKwordm9pZCBHcmFwaGljc0xheWVyQ0E6OmFkZENoaWxkQWJvdmUoR3JhcGhpY3NMYXllciog
Y2hpbGRMYXllciwgR3JhcGhpY3NMYXllciogc2libGluZykKK3sKKyAgICBHcmFwaGljc0xheWVy
OjphZGRDaGlsZEFib3ZlKGNoaWxkTGF5ZXIsIHNpYmxpbmcpOworICAgIG5vdGVMYXllclByb3Bl
cnR5Q2hhbmdlZChDaGlsZHJlbkNoYW5nZWQpOworfQogCi0gICAgYm9vbCBmb3VuZCA9IGZhbHNl
OwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2NoaWxkcmVuLnNpemUoKTsgaSsrKSB7
Ci0gICAgICAgIGlmIChzaWJsaW5nID09IG1fY2hpbGRyZW5baV0pIHsKLSAgICAgICAgICAgIG1f
Y2hpbGRyZW4uaW5zZXJ0KGksIGNoaWxkTGF5ZXIpOwotICAgICAgICAgICAgZm91bmQgPSB0cnVl
OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KK2Jvb2wgR3JhcGhpY3NMYXllckNBOjpy
ZXBsYWNlQ2hpbGQoR3JhcGhpY3NMYXllciogb2xkQ2hpbGQsIEdyYXBoaWNzTGF5ZXIqIG5ld0No
aWxkKQoreworICAgIGlmIChHcmFwaGljc0xheWVyOjpyZXBsYWNlQ2hpbGQob2xkQ2hpbGQsIG5l
d0NoaWxkKSkgeworICAgICAgICBub3RlTGF5ZXJQcm9wZXJ0eUNoYW5nZWQoQ2hpbGRyZW5DaGFu
Z2VkKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQotICAgIGNoaWxkTGF5ZXItPnNldFBh
cmVudCh0aGlzKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CiAKLSAgICBCRUdJTl9CTE9DS19PQkpD
X0VYQ0VQVElPTlMKK3ZvaWQgR3JhcGhpY3NMYXllckNBOjpyZW1vdmVGcm9tUGFyZW50KCkKK3sK
KyAgICBpZiAobV9wYXJlbnQpCisgICAgICAgIHN0YXRpY19jYXN0PEdyYXBoaWNzTGF5ZXJDQSo+
KG1fcGFyZW50KS0+bm90ZUxheWVyUHJvcGVydHlDaGFuZ2VkKENoaWxkcmVuQ2hhbmdlZCk7Cisg
ICAgR3JhcGhpY3NMYXllcjo6cmVtb3ZlRnJvbVBhcmVudCgpOworfQogCi0gICAgR3JhcGhpY3NM
YXllckNBKiBjaGlsZExheWVyQ0EgPSBzdGF0aWNfY2FzdDxHcmFwaGljc0xheWVyQ0EqPihjaGls
ZExheWVyKTsKLSAgICBHcmFwaGljc0xheWVyQ0EqIHNpYmxpbmdMYXllckNBID0gc3RhdGljX2Nh
c3Q8R3JhcGhpY3NMYXllckNBKj4oc2libGluZyk7Ci0gICAgaWYgKGZvdW5kKQotICAgICAgICBb
aG9zdExheWVyRm9yU3VibGF5ZXJzKCkgaW5zZXJ0U3VibGF5ZXI6Y2hpbGRMYXllckNBLT5sYXll
ckZvclN1cGVybGF5ZXIoKSBiZWxvdzpzaWJsaW5nTGF5ZXJDQS0+bGF5ZXJGb3JTdXBlcmxheWVy
KCldOwotICAgIGVsc2UgewotICAgICAgICBtX2NoaWxkcmVuLmFwcGVuZChjaGlsZExheWVyKTsK
LSAgICAgICAgW2hvc3RMYXllckZvclN1YmxheWVycygpIGFkZFN1YmxheWVyOmNoaWxkTGF5ZXJD
QS0+bGF5ZXJGb3JTdXBlcmxheWVyKCldOwotICAgIH0KK3ZvaWQgR3JhcGhpY3NMYXllckNBOjpz
ZXRQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50JiBwb2ludCkKK3sKKyAgICBpZiAocG9pbnQgPT0g
bV9wb3NpdGlvbikKKyAgICAgICAgcmV0dXJuOwogCi0gICAgRU5EX0JMT0NLX09CSkNfRVhDRVBU
SU9OUworICAgIEdyYXBoaWNzTGF5ZXI6OnNldFBvc2l0aW9uKHBvaW50KTsKKyAgICBub3RlTGF5
ZXJQcm9wZXJ0eUNoYW5nZWQoUG9zaXRpb25DaGFuZ2VkKTsKIH0KIAotdm9pZCBHcmFwaGljc0xh
eWVyQ0E6OmFkZENoaWxkQWJvdmUoR3JhcGhpY3NMYXllciogY2hpbGRMYXllciwgR3JhcGhpY3NM
YXllciogc2libGluZykKK3ZvaWQgR3JhcGhpY3NMYXllckNBOjpzZXRBbmNob3JQb2ludChjb25z
dCBGbG9hdFBvaW50M0QmIHBvaW50KQoreworICAgIGlmIChwb2ludCA9PSBtX2FuY2hvclBvaW50
KQorICAgICAgICByZXR1cm47CisKKyAgICBHcmFwaGljc0xheWVyOjpzZXRBbmNob3JQb2ludChw
b2ludCk7CisgICAgbm90ZUxheWVyUHJvcGVydHlDaGFuZ2VkKEFuY2hvclBvaW50Q2hhbmdlZCk7
Cit9CisKK3ZvaWQgR3JhcGhpY3NMYXllckNBOjpzZXRTaXplKGNvbnN0IEZsb2F0U2l6ZSYgc2l6
ZSkKK3sKKyAgICBpZiAoc2l6ZSA9PSBtX3NpemUpCisgICAgICAgIHJldHVybjsKKworICAgIEdy
YXBoaWNzTGF5ZXI6OnNldFNpemUoc2l6ZSk7CisgICAgbm90ZUxheWVyUHJvcGVydHlDaGFuZ2Vk
KFNpemVDaGFuZ2VkKTsKK30KKwordm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldFRyYW5zZm9ybShj
b25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdCkKK3sKKyAgICBpZiAodCA9PSBtX3RyYW5zZm9y
bSkKKyAgICAgICAgcmV0dXJuOworCisgICAgR3JhcGhpY3NMYXllcjo6c2V0VHJhbnNmb3JtKHQp
OworICAgIG5vdGVMYXllclByb3BlcnR5Q2hhbmdlZChUcmFuc2Zvcm1DaGFuZ2VkKTsKK30KKwor
dm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldENoaWxkcmVuVHJhbnNmb3JtKGNvbnN0IFRyYW5zZm9y
bWF0aW9uTWF0cml4JiB0KQogewotICAgIC8vIEZJWE1FOiBzaGFyZSBjb2RlIHdpdGggYmFzZSBj
bGFzcwotICAgIEFTU0VSVChjaGlsZExheWVyICE9IHRoaXMpOwotICAgIGNoaWxkTGF5ZXItPnJl
bW92ZUZyb21QYXJlbnQoKTsKKyAgICBpZiAodCA9PSBtX2NoaWxkcmVuVHJhbnNmb3JtKQorICAg
ICAgICByZXR1cm47CisKKyAgICBHcmFwaGljc0xheWVyOjpzZXRDaGlsZHJlblRyYW5zZm9ybSh0
KTsKKyAgICBub3RlTGF5ZXJQcm9wZXJ0eUNoYW5nZWQoQ2hpbGRyZW5UcmFuc2Zvcm1DaGFuZ2Vk
KTsKK30KIAotICAgIHVuc2lnbmVkIGk7Ci0gICAgYm9vbCBmb3VuZCA9IGZhbHNlOwotICAgIGZv
ciAoaSA9IDA7IGkgPCBtX2NoaWxkcmVuLnNpemUoKTsgaSsrKSB7Ci0gICAgICAgIGlmIChzaWJs
aW5nID09IG1fY2hpbGRyZW5baV0pIHsKLSAgICAgICAgICAgIG1fY2hpbGRyZW4uaW5zZXJ0KGkr
MSwgY2hpbGRMYXllcik7Ci0gICAgICAgICAgICBmb3VuZCA9IHRydWU7CitzdGF0aWMgdm9pZCBt
b3ZlQW5pbWF0aW9uKEFuaW1hdGVkUHJvcGVydHlJRCBwcm9wZXJ0eSwgQ0FMYXllciogZnJvbUxh
eWVyLCBDQUxheWVyKiB0b0xheWVyKQoreworICAgIGZvciAoaW50IGluZGV4ID0gMDsgOyArK2lu
ZGV4KSB7CisgICAgICAgIFN0cmluZyBhbmltTmFtZSA9IGFuaW1hdGlvbklkZW50aWZpZXIocHJv
cGVydHksIGluZGV4KTsKKworICAgICAgICBDQUFuaW1hdGlvbiogYW5pbSA9IFtmcm9tTGF5ZXIg
YW5pbWF0aW9uRm9yS2V5OmFuaW1OYW1lXTsKKyAgICAgICAgaWYgKCFhbmltKQogICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIH0KKworICAgICAgICBbYW5pbSByZXRhaW5dOworICAgICAgICBb
ZnJvbUxheWVyIHJlbW92ZUFuaW1hdGlvbkZvcktleTphbmltTmFtZV07CisgICAgICAgIFt0b0xh
eWVyIGFkZEFuaW1hdGlvbjphbmltIGZvcktleTphbmltTmFtZV07CisgICAgICAgIFthbmltIHJl
bGVhc2VdOwogICAgIH0KLSAgICBjaGlsZExheWVyLT5zZXRQYXJlbnQodGhpcyk7Cit9CiAKLSAg
ICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKK3ZvaWQgR3JhcGhpY3NMYXllckNBOjpzZXRQ
cmVzZXJ2ZXMzRChib29sIHByZXNlcnZlczNEKQoreworICAgIGlmIChwcmVzZXJ2ZXMzRCA9PSBt
X3ByZXNlcnZlczNEKQorICAgICAgICByZXR1cm47CiAKLSAgICBHcmFwaGljc0xheWVyQ0EqIGNo
aWxkTGF5ZXJDQSA9IHN0YXRpY19jYXN0PEdyYXBoaWNzTGF5ZXJDQSo+KGNoaWxkTGF5ZXIpOwot
ICAgIEdyYXBoaWNzTGF5ZXJDQSogc2libGluZ0xheWVyQ0EgPSBzdGF0aWNfY2FzdDxHcmFwaGlj
c0xheWVyQ0EqPihzaWJsaW5nKTsKLSAgICBpZiAoZm91bmQpIHsKLSAgICAgICAgW2hvc3RMYXll
ckZvclN1YmxheWVycygpIGluc2VydFN1YmxheWVyOmNoaWxkTGF5ZXJDQS0+bGF5ZXJGb3JTdXBl
cmxheWVyKCkgYWJvdmU6c2libGluZ0xheWVyQ0EtPmxheWVyRm9yU3VwZXJsYXllcigpXTsKLSAg
ICB9IGVsc2UgewotICAgICAgICBtX2NoaWxkcmVuLmFwcGVuZChjaGlsZExheWVyKTsKLSAgICAg
ICAgW2hvc3RMYXllckZvclN1YmxheWVycygpIGFkZFN1YmxheWVyOmNoaWxkTGF5ZXJDQS0+bGF5
ZXJGb3JTdXBlcmxheWVyKCldOworICAgIEdyYXBoaWNzTGF5ZXI6OnNldFByZXNlcnZlczNEKHBy
ZXNlcnZlczNEKTsKKyAgICBub3RlTGF5ZXJQcm9wZXJ0eUNoYW5nZWQoUHJlc2VydmVzM0RDaGFu
Z2VkKTsKK30KKwordm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldE1hc2tzVG9Cb3VuZHMoYm9vbCBt
YXNrc1RvQm91bmRzKQoreworICAgIGlmIChtYXNrc1RvQm91bmRzID09IG1fbWFza3NUb0JvdW5k
cykKKyAgICAgICAgcmV0dXJuOworCisgICAgR3JhcGhpY3NMYXllcjo6c2V0TWFza3NUb0JvdW5k
cyhtYXNrc1RvQm91bmRzKTsKKyAgICBub3RlTGF5ZXJQcm9wZXJ0eUNoYW5nZWQoTWFza3NUb0Jv
dW5kc0NoYW5nZWQpOworfQorCit2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6c2V0RHJhd3NDb250ZW50
KGJvb2wgZHJhd3NDb250ZW50KQoreworICAgIGlmIChkcmF3c0NvbnRlbnQgPT0gbV9kcmF3c0Nv
bnRlbnQpCisgICAgICAgIHJldHVybjsKKworICAgIEdyYXBoaWNzTGF5ZXI6OnNldERyYXdzQ29u
dGVudChkcmF3c0NvbnRlbnQpOworICAgIG5vdGVMYXllclByb3BlcnR5Q2hhbmdlZChEcmF3c0Nv
bnRlbnRDaGFuZ2VkKTsKK30KKwordm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldEJhY2tncm91bmRD
b2xvcihjb25zdCBDb2xvciYgY29sb3IpCit7CisgICAgaWYgKG1fYmFja2dyb3VuZENvbG9yU2V0
ICYmIG1fYmFja2dyb3VuZENvbG9yID09IGNvbG9yKQorICAgICAgICByZXR1cm47CisKKyAgICBH
cmFwaGljc0xheWVyOjpzZXRCYWNrZ3JvdW5kQ29sb3IoY29sb3IpOworCisgICAgbV9jb250ZW50
c0xheWVySGFzQmFja2dyb3VuZENvbG9yID0gdHJ1ZTsKKyAgICBub3RlTGF5ZXJQcm9wZXJ0eUNo
YW5nZWQoQmFja2dyb3VuZENvbG9yQ2hhbmdlZCk7Cit9CisKK3ZvaWQgR3JhcGhpY3NMYXllckNB
OjpjbGVhckJhY2tncm91bmRDb2xvcigpCit7CisgICAgaWYgKCFtX2JhY2tncm91bmRDb2xvclNl
dCkKKyAgICAgICAgcmV0dXJuOworCisgICAgR3JhcGhpY3NMYXllcjo6Y2xlYXJCYWNrZ3JvdW5k
Q29sb3IoKTsKKyAgICBtX2NvbnRlbnRzTGF5ZXJIYXNCYWNrZ3JvdW5kQ29sb3IgPSBmYWxzZTsK
KyAgICBub3RlTGF5ZXJQcm9wZXJ0eUNoYW5nZWQoQmFja2dyb3VuZENvbG9yQ2hhbmdlZCk7Cit9
CisKK3ZvaWQgR3JhcGhpY3NMYXllckNBOjpzZXRDb250ZW50c09wYXF1ZShib29sIG9wYXF1ZSkK
K3sKKyAgICBpZiAobV9jb250ZW50c09wYXF1ZSA9PSBvcGFxdWUpCisgICAgICAgIHJldHVybjsK
KworICAgIEdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzT3BhcXVlKG9wYXF1ZSk7CisgICAgbm90
ZUxheWVyUHJvcGVydHlDaGFuZ2VkKENvbnRlbnRzT3BhcXVlQ2hhbmdlZCk7Cit9CisKK3ZvaWQg
R3JhcGhpY3NMYXllckNBOjpzZXRCYWNrZmFjZVZpc2liaWxpdHkoYm9vbCB2aXNpYmxlKQorewor
ICAgIGlmIChtX2JhY2tmYWNlVmlzaWJpbGl0eSA9PSB2aXNpYmxlKQorICAgICAgICByZXR1cm47
CisgICAgCisgICAgR3JhcGhpY3NMYXllcjo6c2V0QmFja2ZhY2VWaXNpYmlsaXR5KHZpc2libGUp
OworICAgIG5vdGVMYXllclByb3BlcnR5Q2hhbmdlZChCYWNrZmFjZVZpc2liaWxpdHlDaGFuZ2Vk
KTsKK30KKwordm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldE9wYWNpdHkoZmxvYXQgb3BhY2l0eSkK
K3sKKyAgICBmbG9hdCBjbGFtcGVkT3BhY2l0eSA9IG1heCgwLjBmLCBtaW4ob3BhY2l0eSwgMS4w
ZikpOworCisgICAgaWYgKGNsYW1wZWRPcGFjaXR5ID09IG1fb3BhY2l0eSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgR3JhcGhpY3NMYXllcjo6c2V0T3BhY2l0eShjbGFtcGVkT3BhY2l0eSk7Cisg
ICAgbm90ZUxheWVyUHJvcGVydHlDaGFuZ2VkKE9wYWNpdHlDaGFuZ2VkKTsKK30KKwordm9pZCBH
cmFwaGljc0xheWVyQ0E6OnNldE5lZWRzRGlzcGxheSgpCit7CisgICAgRmxvYXRSZWN0IGh1Z2VS
ZWN0KC1udW1lcmljX2xpbWl0czxmbG9hdD46Om1heCgpIC8gMiwgLW51bWVyaWNfbGltaXRzPGZs
b2F0Pjo6bWF4KCkgLyAyLAorICAgICAgICAgICAgICAgICAgICAgICBudW1lcmljX2xpbWl0czxm
bG9hdD46Om1heCgpLCBudW1lcmljX2xpbWl0czxmbG9hdD46Om1heCgpKTsKKworICAgIHNldE5l
ZWRzRGlzcGxheUluUmVjdChodWdlUmVjdCk7Cit9CisKK3ZvaWQgR3JhcGhpY3NMYXllckNBOjpz
ZXROZWVkc0Rpc3BsYXlJblJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KQoreworICAgIGlmICgh
ZHJhd3NDb250ZW50KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGNvbnN0IHNpemVfdCBtYXhE
aXJ0eVJlY3RzID0gMzI7CisgICAgCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2RpcnR5
UmVjdHMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgaWYgKG1fZGlydHlSZWN0c1tpXS5jb250YWlu
cyhyZWN0KSkKKyAgICAgICAgICAgIHJldHVybjsKICAgICB9CisgICAgCisgICAgaWYgKG1fZGly
dHlSZWN0cy5zaXplKCkgPCBtYXhEaXJ0eVJlY3RzKQorICAgICAgICBtX2RpcnR5UmVjdHMuYXBw
ZW5kKHJlY3QpOworICAgIGVsc2UKKyAgICAgICAgbV9kaXJ0eVJlY3RzWzBdLnVuaXRlKHJlY3Qp
OwogCi0gICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUworICAgIG5vdGVMYXllclByb3BlcnR5
Q2hhbmdlZChEaXJ0eVJlY3RzQ2hhbmdlZCk7CiB9CiAKLWJvb2wgR3JhcGhpY3NMYXllckNBOjpy
ZXBsYWNlQ2hpbGQoR3JhcGhpY3NMYXllciogb2xkQ2hpbGQsIEdyYXBoaWNzTGF5ZXIqIG5ld0No
aWxkKQordm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldENvbnRlbnRzUmVjdChjb25zdCBJbnRSZWN0
JiByZWN0KQogewotICAgIC8vIEZJWE1FOiBzaGFyZSBjb2RlIHdpdGggYmFzZSBjbGFzcwotICAg
IEFTU0VSVCghbmV3Q2hpbGQtPnBhcmVudCgpKTsKKyAgICBpZiAocmVjdCA9PSBtX2NvbnRlbnRz
UmVjdCkKKyAgICAgICAgcmV0dXJuOwogCi0gICAgYm9vbCBmb3VuZCA9IGZhbHNlOwotICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2NoaWxkcmVuLnNpemUoKTsgaSsrKSB7Ci0gICAgICAg
IGlmIChvbGRDaGlsZCA9PSBtX2NoaWxkcmVuW2ldKSB7Ci0gICAgICAgICAgICBtX2NoaWxkcmVu
W2ldID0gbmV3Q2hpbGQ7Ci0gICAgICAgICAgICBmb3VuZCA9IHRydWU7Ci0gICAgICAgICAgICBi
cmVhazsKKyAgICBHcmFwaGljc0xheWVyOjpzZXRDb250ZW50c1JlY3QocmVjdCk7CisgICAgbm90
ZUxheWVyUHJvcGVydHlDaGFuZ2VkKENvbnRlbnRzUmVjdENoYW5nZWQpOworfQorCitib29sIEdy
YXBoaWNzTGF5ZXJDQTo6YWRkQW5pbWF0aW9uKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiB2YWx1
ZUxpc3QsIGNvbnN0IEludFNpemUmIGJveFNpemUsIGNvbnN0IEFuaW1hdGlvbiogYW5pbSwgY29u
c3QgU3RyaW5nJiBrZXlmcmFtZXNOYW1lLCBkb3VibGUgYmVnaW5UaW1lKQoreworICAgIGlmIChm
b3JjZVNvZnR3YXJlQW5pbWF0aW9uKCkgfHwgIWFuaW0gfHwgYW5pbS0+aXNFbXB0eU9yWmVyb0R1
cmF0aW9uKCkgfHwgdmFsdWVMaXN0LnNpemUoKSA8IDIpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworI2lmICFIQVZFX01PREVSTl9RVUFSVFpDT1JFCisgICAgLy8gT2xkZXIgdmVyc2lvbnMgb2Yg
UXVhcnR6Q29yZSBkbyBub3QgaGFuZGxlIG9wYWNpdHkgaW4gdHJhbnNmb3JtIGxheWVycyBwcm9w
ZXJseSwgc28gd2Ugd2lsbAorICAgIC8vIGFsd2F5cyBkbyBzb2Z0d2FyZSBhbmltYXRpb24gaW4g
dGhhdCBjYXNlLgorICAgIGlmICh2YWx1ZUxpc3QucHJvcGVydHkoKSA9PSBBbmltYXRlZFByb3Bl
cnR5T3BhY2l0eSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCisKKyAgICBib29sIGNy
ZWF0ZWRBbmltYXRpb25zID0gZmFsc2U7CisgICAgaWYgKHZhbHVlTGlzdC5wcm9wZXJ0eSgpID09
IEFuaW1hdGVkUHJvcGVydHlXZWJraXRUcmFuc2Zvcm0pCisgICAgICAgIGNyZWF0ZWRBbmltYXRp
b25zID0gY3JlYXRlVHJhbnNmb3JtQW5pbWF0aW9uc0Zyb21LZXlmcmFtZXModmFsdWVMaXN0LCBh
bmltLCBrZXlmcmFtZXNOYW1lLCBiZWdpblRpbWUsIGJveFNpemUpOworICAgIGVsc2UKKyAgICAg
ICAgY3JlYXRlZEFuaW1hdGlvbnMgPSBjcmVhdGVBbmltYXRpb25Gcm9tS2V5ZnJhbWVzKHZhbHVl
TGlzdCwgYW5pbSwga2V5ZnJhbWVzTmFtZSwgYmVnaW5UaW1lKTsKKworICAgIGlmIChjcmVhdGVk
QW5pbWF0aW9ucykKKyAgICAgICAgbm90ZUxheWVyUHJvcGVydHlDaGFuZ2VkKEFuaW1hdGlvbkNo
YW5nZWQpOworICAgICAgICAKKyAgICByZXR1cm4gY3JlYXRlZEFuaW1hdGlvbnM7Cit9CisKK3Zv
aWQgR3JhcGhpY3NMYXllckNBOjpyZW1vdmVBbmltYXRpb25zRm9yUHJvcGVydHkoQW5pbWF0ZWRQ
cm9wZXJ0eUlEIHByb3BlcnR5KQoreworICAgIGlmIChtX3RyYW5zaXRpb25Qcm9wZXJ0aWVzVG9S
ZW1vdmUuZmluZChwcm9wZXJ0eSkgIT0gbV90cmFuc2l0aW9uUHJvcGVydGllc1RvUmVtb3ZlLmVu
ZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3RyYW5zaXRpb25Qcm9wZXJ0aWVzVG9SZW1v
dmUuYWRkKHByb3BlcnR5KTsKKyAgICBub3RlTGF5ZXJQcm9wZXJ0eUNoYW5nZWQoQW5pbWF0aW9u
Q2hhbmdlZCk7Cit9CisKK3ZvaWQgR3JhcGhpY3NMYXllckNBOjpyZW1vdmVBbmltYXRpb25zRm9y
S2V5ZnJhbWVzKGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uTmFtZSkKK3sKKyAgICBpZiAoIWFuaW1h
dGlvbklzUnVubmluZyhhbmltYXRpb25OYW1lKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9r
ZXlmcmFtZUFuaW1hdGlvbnNUb1Byb2Nlc3MuYWRkKGFuaW1hdGlvbk5hbWUsIFJlbW92ZSk7Cisg
ICAgbm90ZUxheWVyUHJvcGVydHlDaGFuZ2VkKEFuaW1hdGlvbkNoYW5nZWQpOworfQorCit2b2lk
IEdyYXBoaWNzTGF5ZXJDQTo6cGF1c2VBbmltYXRpb24oY29uc3QgU3RyaW5nJiBrZXlmcmFtZXNO
YW1lKQoreworICAgIGlmICghYW5pbWF0aW9uSXNSdW5uaW5nKGtleWZyYW1lc05hbWUpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBBbmltYXRpb25zVG9Qcm9jZXNzTWFwOjppdGVyYXRvciBpdCA9
IG1fa2V5ZnJhbWVBbmltYXRpb25zVG9Qcm9jZXNzLmZpbmQoa2V5ZnJhbWVzTmFtZSk7CisgICAg
aWYgKGl0ICE9IG1fa2V5ZnJhbWVBbmltYXRpb25zVG9Qcm9jZXNzLmVuZCgpKSB7CisgICAgICAg
IC8vIElmIGFuIGFuaW1hdGlvbiBpcyBzY2hlZHVsZWQgdG8gYmUgcmVtb3ZlZCwgZG9uJ3QgY2hh
bmdlIHRoZSByZW1vdmUgdG8gYSBwYXVzZS4KKyAgICAgICAgaWYgKGl0LT5zZWNvbmQgIT0gUmVt
b3ZlKQorICAgICAgICAgICAgaXQtPnNlY29uZCA9IFBhdXNlOworICAgIH0gZWxzZQorICAgICAg
ICBtX2tleWZyYW1lQW5pbWF0aW9uc1RvUHJvY2Vzcy5hZGQoa2V5ZnJhbWVzTmFtZSwgUGF1c2Up
OworCisgICAgbm90ZUxheWVyUHJvcGVydHlDaGFuZ2VkKEFuaW1hdGlvbkNoYW5nZWQpOworfQor
Cit2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6c2V0Q29udGVudHNUb0ltYWdlKEltYWdlKiBpbWFnZSkK
K3sKKyAgICBpZiAoaW1hZ2UpIHsKKyAgICAgICAgbV9wZW5kaW5nQ29udGVudHNJbWFnZSA9IGlt
YWdlLT5uYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSgpOworICAgICAgICBDR0NvbG9yU3BhY2VS
ZWYgY29sb3JTcGFjZSA9IENHSW1hZ2VHZXRDb2xvclNwYWNlKG1fcGVuZGluZ0NvbnRlbnRzSW1h
Z2UuZ2V0KCkpOworCisgICAgICAgIHN0YXRpYyBDR0NvbG9yU3BhY2VSZWYgZGV2aWNlUkdCID0g
Q0dDb2xvclNwYWNlQ3JlYXRlRGV2aWNlUkdCKCk7CisgICAgICAgIGlmIChDRkVxdWFsKGNvbG9y
U3BhY2UsIGRldmljZVJHQikpIHsKKyAgICAgICAgICAgIC8vIENvcmVHcmFwaGljcyByZW5kZXJz
IGltYWdlcyB0YWdnZWQgd2l0aCBEZXZpY2VSR0IgdXNpbmcgR2VuZXJpY1JHQi4gV2hlbiB3ZSBo
YW5kIHN1Y2gKKyAgICAgICAgICAgIC8vIGltYWdlcyB0byBDQSB3ZSBuZWVkIHRvIHRhZyB0aGVt
IHNpbWlsYXJseSBzbyBDQSByZW5kZXJpbmcgbWF0Y2hlcyBDRyByZW5kZXJpbmcuCisgICAgICAg
ICAgICBzdGF0aWMgQ0dDb2xvclNwYWNlUmVmIGdlbmVyaWNSR0IgPSBDR0NvbG9yU3BhY2VDcmVh
dGVXaXRoTmFtZShrQ0dDb2xvclNwYWNlR2VuZXJpY1JHQik7CisgICAgICAgICAgICBtX3BlbmRp
bmdDb250ZW50c0ltYWdlLmFkb3B0Q0YoQ0dJbWFnZUNyZWF0ZUNvcHlXaXRoQ29sb3JTcGFjZSht
X3BlbmRpbmdDb250ZW50c0ltYWdlLmdldCgpLCBnZW5lcmljUkdCKSk7CiAgICAgICAgIH0KKyAg
ICAgICAgbV9jb250ZW50c0xheWVyUHVycG9zZSA9IENvbnRlbnRzTGF5ZXJGb3JJbWFnZTsKKyAg
ICAgICAgaWYgKCFtX2NvbnRlbnRzTGF5ZXIpCisgICAgICAgICAgICBub3RlTGF5ZXJQcm9wZXJ0
eUNoYW5nZWQoQ2hpbGRyZW5DaGFuZ2VkKTsKKyAgICB9IGVsc2UgeworICAgICAgICBtX3BlbmRp
bmdDb250ZW50c0ltYWdlID0gMDsKKyAgICAgICAgbV9jb250ZW50c0xheWVyUHVycG9zZSA9IE5v
Q29udGVudHNMYXllcjsKKyAgICAgICAgaWYgKG1fY29udGVudHNMYXllcikKKyAgICAgICAgICAg
IG5vdGVMYXllclByb3BlcnR5Q2hhbmdlZChDaGlsZHJlbkNoYW5nZWQpOwogICAgIH0KIAotICAg
IGlmIChmb3VuZCkgewotICAgICAgICBvbGRDaGlsZC0+c2V0UGFyZW50KDApOworICAgIG5vdGVM
YXllclByb3BlcnR5Q2hhbmdlZChDb250ZW50c0ltYWdlQ2hhbmdlZCk7Cit9CiAKLSAgICAgICAg
bmV3Q2hpbGQtPnJlbW92ZUZyb21QYXJlbnQoKTsKLSAgICAgICAgbmV3Q2hpbGQtPnNldFBhcmVu
dCh0aGlzKTsKK3ZvaWQgR3JhcGhpY3NMYXllckNBOjpzZXRDb250ZW50c1RvVmlkZW8oUGxhdGZv
cm1MYXllciogdmlkZW9MYXllcikKK3sKKyAgICBpZiAodmlkZW9MYXllciAhPSBtX2NvbnRlbnRz
TGF5ZXIuZ2V0KCkpCisgICAgICAgIG5vdGVMYXllclByb3BlcnR5Q2hhbmdlZChDaGlsZHJlbkNo
YW5nZWQpOwogCi0gICAgICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwotICAgICAgICBH
cmFwaGljc0xheWVyQ0EqIG9sZENoaWxkQ0EgPSBzdGF0aWNfY2FzdDxHcmFwaGljc0xheWVyQ0Eq
PihvbGRDaGlsZCk7Ci0gICAgICAgIEdyYXBoaWNzTGF5ZXJDQSogbmV3Q2hpbGRDQSA9IHN0YXRp
Y19jYXN0PEdyYXBoaWNzTGF5ZXJDQSo+KG5ld0NoaWxkKTsKLSAgICAgICAgW2hvc3RMYXllckZv
clN1YmxheWVycygpIHJlcGxhY2VTdWJsYXllcjpvbGRDaGlsZENBLT5sYXllckZvclN1cGVybGF5
ZXIoKSB3aXRoOm5ld0NoaWxkQ0EtPmxheWVyRm9yU3VwZXJsYXllcigpXTsKLSAgICAgICAgRU5E
X0JMT0NLX09CSkNfRVhDRVBUSU9OUwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAg
cmV0dXJuIGZhbHNlOworICAgIG1fY29udGVudHNMYXllciA9IHZpZGVvTGF5ZXI7CisgICAgbm90
ZUxheWVyUHJvcGVydHlDaGFuZ2VkKENvbnRlbnRzVmlkZW9DaGFuZ2VkKTsKKworICAgIG1fY29u
dGVudHNMYXllclB1cnBvc2UgPSB2aWRlb0xheWVyID8gQ29udGVudHNMYXllckZvclZpZGVvIDog
Tm9Db250ZW50c0xheWVyOwogfQogCi12b2lkIEdyYXBoaWNzTGF5ZXJDQTo6cmVtb3ZlRnJvbVBh
cmVudCgpCit2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6c2V0R2VvbWV0cnlPcmllbnRhdGlvbihDb21w
b3NpdGluZ0Nvb3JkaW5hdGVzT3JpZW50YXRpb24gb3JpZW50YXRpb24pCiB7Ci0gICAgR3JhcGhp
Y3NMYXllcjo6cmVtb3ZlRnJvbVBhcmVudCgpOworICAgIGlmIChvcmllbnRhdGlvbiA9PSBtX2dl
b21ldHJ5T3JpZW50YXRpb24pCisgICAgICAgIHJldHVybjsKIAotICAgIEJFR0lOX0JMT0NLX09C
SkNfRVhDRVBUSU9OUwotICAgIFtsYXllckZvclN1cGVybGF5ZXIoKSByZW1vdmVGcm9tU3VwZXJs
YXllcl07ICAgICAgICAgICAgCi0gICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUworICAgIEdy
YXBoaWNzTGF5ZXI6OnNldEdlb21ldHJ5T3JpZW50YXRpb24ob3JpZW50YXRpb24pOworICAgIG5v
dGVMYXllclByb3BlcnR5Q2hhbmdlZChHZW9tZXRyeU9yaWVudGF0aW9uQ2hhbmdlZCk7CiB9CiAK
LXZvaWQgR3JhcGhpY3NMYXllckNBOjpzZXRQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50JiBwb2lu
dCkKK3ZvaWQgR3JhcGhpY3NMYXllckNBOjpzeW5jQ29tcG9zaXRpbmdTdGF0ZSgpCiB7Ci0gICAg
Ly8gRG9uJ3Qgc2hvcnQtY2lyY3VpdCBoZXJlLCBiZWNhdXNlIHBvc2l0aW9uIGFuZCBhbmNob3Ig
cG9pbnQgYXJlIGludGVyLWRlcGVuZGVudC4KLSAgICBHcmFwaGljc0xheWVyOjpzZXRQb3NpdGlv
bihwb2ludCk7CisgICAgcmVjdXJzaXZlQ29tbWl0Q2hhbmdlcygpOworfQogCi0gICAgLy8gUG9z
aXRpb24gaXMgb2Zmc2V0IG9uIHRoZSBsYXllciBieSB0aGUgbGF5ZXIgYW5jaG9yIHBvaW50Lgot
ICAgIENHUG9pbnQgcG9zUG9pbnQgPSBDR1BvaW50TWFrZShtX3Bvc2l0aW9uLngoKSArIG1fYW5j
aG9yUG9pbnQueCgpICogbV9zaXplLndpZHRoKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG1fcG9zaXRpb24ueSgpICsgbV9hbmNob3JQb2ludC55KCkgKiBtX3NpemUuaGVp
Z2h0KCkpOwotICAgIAotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwotICAgIFtwcmlt
YXJ5TGF5ZXIoKSBzZXRQb3NpdGlvbjpwb3NQb2ludF07Ci0gICAgRU5EX0JMT0NLX09CSkNfRVhD
RVBUSU9OUwordm9pZCBHcmFwaGljc0xheWVyQ0E6OnJlY3Vyc2l2ZUNvbW1pdENoYW5nZXMoKQor
eworICAgIGNvbW1pdExheWVyQ2hhbmdlcygpOworCisgICAgY29uc3QgVmVjdG9yPEdyYXBoaWNz
TGF5ZXIqPiYgY2hpbGRMYXllcnMgPSBjaGlsZHJlbigpOworICAgIHNpemVfdCBudW1DaGlsZHJl
biA9IGNoaWxkTGF5ZXJzLnNpemUoKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG51bUNo
aWxkcmVuOyArK2kpIHsKKyAgICAgICAgR3JhcGhpY3NMYXllckNBKiBjdXJDaGlsZCA9IHN0YXRp
Y19jYXN0PEdyYXBoaWNzTGF5ZXJDQSo+KGNoaWxkTGF5ZXJzW2ldKTsKKyAgICAgICAgY3VyQ2hp
bGQtPnJlY3Vyc2l2ZUNvbW1pdENoYW5nZXMoKTsKKyAgICB9CiB9CiAKLXZvaWQgR3JhcGhpY3NM
YXllckNBOjpzZXRBbmNob3JQb2ludChjb25zdCBGbG9hdFBvaW50M0QmIHBvaW50KQordm9pZCBH
cmFwaGljc0xheWVyQ0E6OmNvbW1pdExheWVyQ2hhbmdlcygpCiB7Ci0gICAgLy8gRG9uJ3Qgc2hv
cnQtY2lyY3VpdCBoZXJlLCBiZWNhdXNlIHBvc2l0aW9uIGFuZCBhbmNob3IgcG9pbnQgYXJlIGlu
dGVyLWRlcGVuZGVudC4KLSAgICBib29sIHpDaGFuZ2VkID0gKHBvaW50LnooKSAhPSBtX2FuY2hv
clBvaW50LnooKSk7Ci0gICAgR3JhcGhpY3NMYXllcjo6c2V0QW5jaG9yUG9pbnQocG9pbnQpOwor
ICAgIGlmICghbV91bmNvbW1pdHRlZENoYW5nZXMpCisgICAgICAgIHJldHVybjsKIAogICAgIEJF
R0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwotICAgIC8vIHNldCB0aGUgdmFsdWUgb24gdGhlIGxh
eWVyIHRvIHRoZSBuZXcgdHJhbnNmb3JtLgotICAgIFtwcmltYXJ5TGF5ZXIoKSBzZXRBbmNob3JQ
b2ludDpGbG9hdFBvaW50KHBvaW50LngoKSwgcG9pbnQueSgpKV07CiAKLSAgICBpZiAoekNoYW5n
ZWQpIHsKLSNpZiBIQVZFX01PREVSTl9RVUFSVFpDT1JFCi0gICAgICAgIFtwcmltYXJ5TGF5ZXIo
KSBzZXRBbmNob3JQb2ludFo6bV9hbmNob3JQb2ludC56KCldOwotI2VuZGlmCisgICAgLy8gTmVl
ZCB0byBoYW5kbGUgUHJlc2VydmVzM0RDaGFuZ2VkIGZpcnN0LCBiZWNhdXNlIGl0IGFmZmVjdHMg
d2hpY2ggbGF5ZXJzIHN1YnNlcXVlbnQgcHJvcGVydGllcyBhcmUgYXBwbGllZCB0bworICAgIGlm
IChtX3VuY29tbWl0dGVkQ2hhbmdlcyAmIFByZXNlcnZlczNEQ2hhbmdlZCkKKyAgICAgICAgdXBk
YXRlTGF5ZXJQcmVzZXJ2ZXMzRCgpOworCisgICAgaWYgKG1fdW5jb21taXR0ZWRDaGFuZ2VzICYg
TmFtZUNoYW5nZWQpIHsKKyAgICAgICAgaWYgKG1fdHJhbnNmb3JtTGF5ZXIpCisgICAgICAgICAg
ICBbbV90cmFuc2Zvcm1MYXllci5nZXQoKSBzZXROYW1lOigiVHJhbnNmb3JtIGxheWVyICIgKyBu
YW1lKCkpXTsKKyAgICAgICAgW21fbGF5ZXIuZ2V0KCkgc2V0TmFtZTpuYW1lKCldOwogICAgIH0K
IAotICAgIC8vIFBvc2l0aW9uIGRlcGVuZHMgb24gYW5jaG9yIHBvaW50LCBzbyB1cGRhdGUgaXQg
bm93LgotICAgIHNldFBvc2l0aW9uKG1fcG9zaXRpb24pOworICAgIGlmIChtX3VuY29tbWl0dGVk
Q2hhbmdlcyAmIENvbnRlbnRzSW1hZ2VDaGFuZ2VkKSAvLyBOZWVkcyB0byBoYXBwZW4gYmVmb3Jl
IENoaWxkcmVuQ2hhbmdlZAorICAgICAgICB1cGRhdGVDb250ZW50c0ltYWdlKCk7CisgICAgICAg
IAorICAgIGlmIChtX3VuY29tbWl0dGVkQ2hhbmdlcyAmIENvbnRlbnRzVmlkZW9DaGFuZ2VkKSAv
LyBOZWVkcyB0byBoYXBwZW4gYmVmb3JlIENoaWxkcmVuQ2hhbmdlZAorICAgICAgICB1cGRhdGVD
b250ZW50c1ZpZGVvKCk7CisKKyAgICBpZiAobV91bmNvbW1pdHRlZENoYW5nZXMgJiBCYWNrZ3Jv
dW5kQ29sb3JDaGFuZ2VkKSAgLy8gTmVlZHMgdG8gaGFwcGVuIGJlZm9yZSBDaGlsZHJlbkNoYW5n
ZWQsIGFuZCBhZnRlciB1cGRhdGluZyBpbWFnZSBvciB2aWRlbworICAgICAgICB1cGRhdGVMYXll
ckJhY2tncm91bmRDb2xvcigpOworCisgICAgaWYgKG1fdW5jb21taXR0ZWRDaGFuZ2VzICYgQ2hp
bGRyZW5DaGFuZ2VkKQorICAgICAgICB1cGRhdGVTdWJsYXllckxpc3QoKTsKKworICAgIGlmICht
X3VuY29tbWl0dGVkQ2hhbmdlcyAmIFBvc2l0aW9uQ2hhbmdlZCkKKyAgICAgICAgdXBkYXRlTGF5
ZXJQb3NpdGlvbigpOworICAgIAorICAgIGlmIChtX3VuY29tbWl0dGVkQ2hhbmdlcyAmIEFuY2hv
clBvaW50Q2hhbmdlZCkKKyAgICAgICAgdXBkYXRlQW5jaG9yUG9pbnQoKTsKKyAgICAKKyAgICBp
ZiAobV91bmNvbW1pdHRlZENoYW5nZXMgJiBTaXplQ2hhbmdlZCkKKyAgICAgICAgdXBkYXRlTGF5
ZXJTaXplKCk7CisKKyAgICBpZiAobV91bmNvbW1pdHRlZENoYW5nZXMgJiBUcmFuc2Zvcm1DaGFu
Z2VkKQorICAgICAgICB1cGRhdGVUcmFuc2Zvcm0oKTsKKworICAgIGlmIChtX3VuY29tbWl0dGVk
Q2hhbmdlcyAmIENoaWxkcmVuVHJhbnNmb3JtQ2hhbmdlZCkKKyAgICAgICAgdXBkYXRlQ2hpbGRy
ZW5UcmFuc2Zvcm0oKTsKKyAgICAKKyAgICBpZiAobV91bmNvbW1pdHRlZENoYW5nZXMgJiBNYXNr
c1RvQm91bmRzQ2hhbmdlZCkKKyAgICAgICAgdXBkYXRlTWFza3NUb0JvdW5kcygpOworICAgIAor
ICAgIGlmIChtX3VuY29tbWl0dGVkQ2hhbmdlcyAmIERyYXdzQ29udGVudENoYW5nZWQpCisgICAg
ICAgIHVwZGF0ZUxheWVyRHJhd3NDb250ZW50KCk7CisKKyAgICBpZiAobV91bmNvbW1pdHRlZENo
YW5nZXMgJiBDb250ZW50c09wYXF1ZUNoYW5nZWQpCisgICAgICAgIHVwZGF0ZUNvbnRlbnRzT3Bh
cXVlKCk7CisKKyAgICBpZiAobV91bmNvbW1pdHRlZENoYW5nZXMgJiBCYWNrZmFjZVZpc2liaWxp
dHlDaGFuZ2VkKQorICAgICAgICB1cGRhdGVCYWNrZmFjZVZpc2liaWxpdHkoKTsKKworICAgIGlm
IChtX3VuY29tbWl0dGVkQ2hhbmdlcyAmIE9wYWNpdHlDaGFuZ2VkKQorICAgICAgICB1cGRhdGVP
cGFjaXR5T25MYXllcigpOworICAgIAorICAgIGlmIChtX3VuY29tbWl0dGVkQ2hhbmdlcyAmIEFu
aW1hdGlvbkNoYW5nZWQpCisgICAgICAgIHVwZGF0ZUxheWVyQW5pbWF0aW9ucygpOworICAgIAor
ICAgIGlmIChtX3VuY29tbWl0dGVkQ2hhbmdlcyAmIERpcnR5UmVjdHNDaGFuZ2VkKQorICAgICAg
ICByZXBhaW50TGF5ZXJEaXJ0eVJlY3RzKCk7CisgICAgCisgICAgaWYgKG1fdW5jb21taXR0ZWRD
aGFuZ2VzICYgQ29udGVudHNSZWN0Q2hhbmdlZCkKKyAgICAgICAgdXBkYXRlQ29udGVudHNSZWN0
KCk7CisKKyAgICBpZiAobV91bmNvbW1pdHRlZENoYW5nZXMgJiBHZW9tZXRyeU9yaWVudGF0aW9u
Q2hhbmdlZCkKKyAgICAgICAgdXBkYXRlR2VvbWV0cnlPcmllbnRhdGlvbigpOworCisgICAgbV91
bmNvbW1pdHRlZENoYW5nZXMgPSBOb0NoYW5nZTsKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJ
T05TCiB9CiAKLXZvaWQgR3JhcGhpY3NMYXllckNBOjpzZXRTaXplKGNvbnN0IEZsb2F0U2l6ZSYg
c2l6ZSkKK3ZvaWQgR3JhcGhpY3NMYXllckNBOjp1cGRhdGVTdWJsYXllckxpc3QoKQogewotICAg
IEdyYXBoaWNzTGF5ZXI6OnNldFNpemUoc2l6ZSk7CisgICAgTlNNdXRhYmxlQXJyYXkqIG5ld1N1
YmxheWVycyA9IG5pbDsKIAotICAgIENHUmVjdCByZWN0ID0gQ0dSZWN0TWFrZSgwLjBmLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAwLjBmLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBtX3NpemUud2lkdGgoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9zaXpl
LmhlaWdodCgpKTsKKyAgICBpZiAobV90cmFuc2Zvcm1MYXllcikgeworICAgICAgICAvLyBGSVhN
RTogYWRkIHRoZSBwcmltYXJ5IGxheWVyIGluIHRoZSBjb3JyZWN0IG9yZGVyIHdpdGggbmVnYXRp
dmUgei1vcmRlciBjaGlsZHJlbi4KKyAgICAgICAgbmV3U3VibGF5ZXJzID0gW1tOU011dGFibGVB
cnJheSBhbGxvY10gaW5pdFdpdGhPYmplY3RzOm1fbGF5ZXIuZ2V0KCksIG5pbF07CisgICAgfSBl
bHNlIGlmIChtX2NvbnRlbnRzTGF5ZXIpIHsKKyAgICAgICAgLy8gRklYTUU6IGFkZCB0aGUgY29u
dGVudHMgbGF5ZXIgaW4gdGhlIGNvcnJlY3Qgb3JkZXIgd2l0aCBuZWdhdGl2ZSB6LW9yZGVyIGNo
aWxkcmVuLgorICAgICAgICBuZXdTdWJsYXllcnMgPSBbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBp
bml0V2l0aE9iamVjdHM6bV9jb250ZW50c0xheWVyLmdldCgpLCBuaWxdOworICAgIH0KICAgICAK
LSAgICBDR1BvaW50IGNlbnRlclBvaW50ID0gQ0dQb2ludE1ha2UobV9zaXplLndpZHRoKCkgLyAy
LjBmLCBtX3NpemUuaGVpZ2h0KCkgLyAyLjBmKTsKKyAgICBjb25zdCBWZWN0b3I8R3JhcGhpY3NM
YXllcio+JiBjaGlsZExheWVycyA9IGNoaWxkcmVuKCk7CisgICAgc2l6ZV90IG51bUNoaWxkcmVu
ID0gY2hpbGRMYXllcnMuc2l6ZSgpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVtQ2hp
bGRyZW47ICsraSkgeworICAgICAgICBHcmFwaGljc0xheWVyQ0EqIGN1ckNoaWxkID0gc3RhdGlj
X2Nhc3Q8R3JhcGhpY3NMYXllckNBKj4oY2hpbGRMYXllcnNbaV0pOworICAgICAKKyAgICAgICAg
Q0FMYXllciogY2hpbGRMYXllciA9IGN1ckNoaWxkLT5sYXllckZvclN1cGVybGF5ZXIoKTsKKyAg
ICAgICAgaWYgKCFuZXdTdWJsYXllcnMpCisgICAgICAgICAgICBuZXdTdWJsYXllcnMgPSBbW05T
TXV0YWJsZUFycmF5IGFsbG9jXSBpbml0V2l0aE9iamVjdHM6Y2hpbGRMYXllciwgbmlsXTsKKyAg
ICAgICAgZWxzZQorICAgICAgICAgICAgW25ld1N1YmxheWVycyBhZGRPYmplY3Q6Y2hpbGRMYXll
cl07CisgICAgfQorCisgICAgW25ld1N1YmxheWVycyBtYWtlT2JqZWN0c1BlcmZvcm1TZWxlY3Rv
cjpAc2VsZWN0b3IocmVtb3ZlRnJvbVN1cGVybGF5ZXIpXTsKKworICAgIGlmIChtX3RyYW5zZm9y
bUxheWVyKSB7CisgICAgICAgIFttX3RyYW5zZm9ybUxheWVyLmdldCgpIHNldFN1YmxheWVyczpu
ZXdTdWJsYXllcnNdOworCisgICAgICAgIGlmIChtX2NvbnRlbnRzTGF5ZXIpIHsKKyAgICAgICAg
ICAgIC8vIElmIHdlIGhhdmUgYSB0cmFuc2Zvcm0gbGF5ZXIsIHRoZW4gdGhlIGNvbnRlbnRzIGxh
eWVyIGlzIHBhcmVudGVkIGluIHRoZSAKKyAgICAgICAgICAgIC8vIHByaW1hcnkgbGF5ZXIgKHdo
aWNoIGlzIGl0c2VsZiBhIGNoaWxkIG9mIHRoZSB0cmFuc2Zvcm0gbGF5ZXIpLgorICAgICAgICAg
ICAgW21fbGF5ZXIuZ2V0KCkgc2V0U3VibGF5ZXJzOm5pbF07CisgICAgICAgICAgICBbbV9sYXll
ci5nZXQoKSBhZGRTdWJsYXllcjptX2NvbnRlbnRzTGF5ZXIuZ2V0KCldOworICAgICAgICB9Cisg
ICAgfSBlbHNlIHsKKyAgICAgICAgW21fbGF5ZXIuZ2V0KCkgc2V0U3VibGF5ZXJzOm5ld1N1Ymxh
eWVyc107CisgICAgfQorCisgICAgW25ld1N1YmxheWVycyByZWxlYXNlXTsKK30KKwordm9pZCBH
cmFwaGljc0xheWVyQ0E6OnVwZGF0ZUxheWVyUG9zaXRpb24oKQoreworICAgIC8vIFBvc2l0aW9u
IGlzIG9mZnNldCBvbiB0aGUgbGF5ZXIgYnkgdGhlIGxheWVyIGFuY2hvciBwb2ludC4KKyAgICBD
R1BvaW50IHBvc1BvaW50ID0gQ0dQb2ludE1ha2UobV9wb3NpdGlvbi54KCkgKyBtX2FuY2hvclBv
aW50LngoKSAqIG1fc2l6ZS53aWR0aCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBtX3Bvc2l0aW9uLnkoKSArIG1fYW5jaG9yUG9pbnQueSgpICogbV9zaXplLmhlaWdodCgp
KTsKICAgICAKLSAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKKyAgICBbcHJpbWFyeUxh
eWVyKCkgc2V0UG9zaXRpb246cG9zUG9pbnRdOworfQogCit2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6
dXBkYXRlTGF5ZXJTaXplKCkKK3sKKyAgICBDR1JlY3QgcmVjdCA9IENHUmVjdE1ha2UoMCwgMCwg
bV9zaXplLndpZHRoKCksIG1fc2l6ZS5oZWlnaHQoKSk7CiAgICAgaWYgKG1fdHJhbnNmb3JtTGF5
ZXIpIHsKICAgICAgICAgW21fdHJhbnNmb3JtTGF5ZXIuZ2V0KCkgc2V0Qm91bmRzOnJlY3RdOwot
ICAgICAgICAvLyBUaGUgYW5jaG9yIG9mIHRoZSBjb250ZW50cyBsYXllciBpcyBhbHdheXMgYXQg
MC41LCAwLjUsIHNvIHRoZSBwb3NpdGlvbgotICAgICAgICAvLyBpcyBjZW50ZXItcmVsYXRpdmUu
CisgICAgICAgIC8vIFRoZSBhbmNob3Igb2YgdGhlIGNvbnRlbnRzIGxheWVyIGlzIGFsd2F5cyBh
dCAwLjUsIDAuNSwgc28gdGhlIHBvc2l0aW9uIGlzIGNlbnRlci1yZWxhdGl2ZS4KKyAgICAgICAg
Q0dQb2ludCBjZW50ZXJQb2ludCA9IENHUG9pbnRNYWtlKG1fc2l6ZS53aWR0aCgpIC8gMi4wZiwg
bV9zaXplLmhlaWdodCgpIC8gMi4wZik7CiAgICAgICAgIFttX2xheWVyLmdldCgpIHNldFBvc2l0
aW9uOmNlbnRlclBvaW50XTsKICAgICB9CiAgICAgCkBAIC01NjYsMTMzICs4NjksODUgQEAgdm9p
ZCBHcmFwaGljc0xheWVyQ0E6OnNldFNpemUoY29uc3QgRmxvYXRTaXplJiBzaXplKQogICAgICAg
ICBzd2FwRnJvbU9yVG9UaWxlZExheWVyKG5lZWRUaWxlZExheWVyKTsKICAgICAKICAgICBbbV9s
YXllci5nZXQoKSBzZXRCb3VuZHM6cmVjdF07CisgICAgCisgICAgLy8gQ29udGVudHMgdHJhbnNm
b3JtIG1heSBkZXBlbmQgb24gaGVpZ2h0LgogICAgIHVwZGF0ZUNvbnRlbnRzVHJhbnNmb3JtKCk7
CiAKICAgICAvLyBOb3RlIHRoYXQgd2UgZG9uJ3QgcmVzaXplIG1fY29udGVudHNMYXllci4gSXQn
cyB1cCB0aGUgY2FsbGVyIHRvIGRvIHRoYXQuCiAKLSAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJ
T05TCi0KICAgICAvLyBpZiB3ZSd2ZSBjaGFuZ2VkIHRoZSBib3VuZHMsIHdlIG5lZWQgdG8gcmVj
YWxjdWxhdGUgdGhlIHBvc2l0aW9uCi0gICAgLy8gb2YgdGhlIGxheWVyLCB0YWtpbmcgYW5jaG9y
IHBvaW50IGludG8gYWNjb3VudAotICAgIHNldFBvc2l0aW9uKG1fcG9zaXRpb24pOworICAgIC8v
IG9mIHRoZSBsYXllciwgdGFraW5nIGFuY2hvciBwb2ludCBpbnRvIGFjY291bnQuCisgICAgdXBk
YXRlTGF5ZXJQb3NpdGlvbigpOwogfQogCi12b2lkIEdyYXBoaWNzTGF5ZXJDQTo6c2V0VHJhbnNm
b3JtKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0KQordm9pZCBHcmFwaGljc0xheWVyQ0E6
OnVwZGF0ZUFuY2hvclBvaW50KCkKK3sKKyAgICBbcHJpbWFyeUxheWVyKCkgc2V0QW5jaG9yUG9p
bnQ6RmxvYXRQb2ludChtX2FuY2hvclBvaW50LngoKSwgbV9hbmNob3JQb2ludC55KCkpXTsKKyNp
ZiBIQVZFX01PREVSTl9RVUFSVFpDT1JFCisgICAgW3ByaW1hcnlMYXllcigpIHNldEFuY2hvclBv
aW50WjptX2FuY2hvclBvaW50LnooKV07CisjZW5kaWYKKyAgICB1cGRhdGVMYXllclBvc2l0aW9u
KCk7Cit9CisKK3ZvaWQgR3JhcGhpY3NMYXllckNBOjp1cGRhdGVUcmFuc2Zvcm0oKQogewotICAg
IEdyYXBoaWNzTGF5ZXI6OnNldFRyYW5zZm9ybSh0KTsKLSAgICAKLSAgICBCRUdJTl9CTE9DS19P
QkpDX0VYQ0VQVElPTlMKICAgICBDQVRyYW5zZm9ybTNEIHRyYW5zZm9ybTsKLSAgICBjb3B5VHJh
bnNmb3JtKHRyYW5zZm9ybSwgdCk7CisgICAgY29weVRyYW5zZm9ybSh0cmFuc2Zvcm0sIG1fdHJh
bnNmb3JtKTsKICAgICBbcHJpbWFyeUxheWVyKCkgc2V0VHJhbnNmb3JtOnRyYW5zZm9ybV07Ci0g
ICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwotICAgIAotICAgIC8vIFJlbW92ZSBhbnkgb2xk
IHRyYW5zaXRpb24gZW50cmllcyBmb3IgdHJhbnNmb3JtLgotICAgIHJlbW92ZUFsbEFuaW1hdGlv
bnNGb3JQcm9wZXJ0eShBbmltYXRlZFByb3BlcnR5V2Via2l0VHJhbnNmb3JtKTsKLQotICAgIC8v
IEV2ZW4gaWYgd2UgZG9uJ3QgaGF2ZSBhIHRyYW5zaXRpb24gaW4gdGhlIGxpc3QsIHRoZSBsYXll
ciBtYXkgc3RpbGwgaGF2ZSBvbmUuCi0gICAgLy8gVGhpcyBoYXBwZW5zIHdoZW4gd2UgYXJlIHNl
dHRpbmcgdGhlIGZpbmFsIHRyYW5zZm9ybSB2YWx1ZSBhZnRlciBhbiBhbmltYXRpb24gb3IKLSAg
ICAvLyB0cmFuc2l0aW9uIGhhcyBlbmRlZC4gSW4gcmVtb3ZlQW5pbWF0aW9uIHdlIHRvc3MgdGhl
IGVudHJ5IGZyb20gdGhlIGxpc3QgYnV0IGRvbid0Ci0gICAgLy8gcmVtb3ZlIGl0IGZyb20gdGhl
IGxpc3QuIFRoYXQgd2F5IHdlIGFyZW4ndCBpbiBkYW5nZXIgb2YgZGlzcGxheWluZyBhIHN0YWxl
IHRyYW5zZm9ybQotICAgIC8vIGluIHRoZSB0aW1lIGJldHdlZW4gcmVtb3ZpbmcgdGhlIGFuaW1h
dGlvbiBhbmQgc2V0dGluZyB0aGUgbmV3IHVuYW5pbWF0ZWQgdmFsdWUuIFdlIAotICAgIC8vIGNh
bid0IGRvIHRoaXMgaW4gcmVtb3ZlQW5pbWF0aW9uIGJlY2F1c2Ugd2UgZG9uJ3Qga25vdyB0aGUg
bmV3IHRyYW5zZm9ybSB2YWx1ZSB0aGVyZS4KLSAgICBTdHJpbmcga2V5UGF0aCA9IHByb3BlcnR5
SWRUb1N0cmluZyhBbmltYXRlZFByb3BlcnR5V2Via2l0VHJhbnNmb3JtKTsKLSAgICBDQUxheWVy
KiBsYXllciA9IGFuaW1hdGVkTGF5ZXIoQW5pbWF0ZWRQcm9wZXJ0eVdlYmtpdFRyYW5zZm9ybSk7
Ci0gICAgCi0gICAgZm9yIChpbnQgaSA9IDA7IDsgKytpKSB7Ci0gICAgICAgIFN0cmluZyBhbmlt
TmFtZSA9IGtleVBhdGggKyAiXyIgKyBTdHJpbmc6Om51bWJlcihpKTsKLSAgICAgICAgaWYgKCFb
bGF5ZXIgYW5pbWF0aW9uRm9yS2V5OiBhbmltTmFtZV0pCi0gICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgW2xheWVyIHJlbW92ZUFuaW1hdGlvbkZvcktleTphbmltTmFtZV07Ci0gICAgfQogfQog
Ci12b2lkIEdyYXBoaWNzTGF5ZXJDQTo6c2V0Q2hpbGRyZW5UcmFuc2Zvcm0oY29uc3QgVHJhbnNm
b3JtYXRpb25NYXRyaXgmIHQpCit2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6dXBkYXRlQ2hpbGRyZW5U
cmFuc2Zvcm0oKQogewotICAgIGlmICh0ID09IG1fY2hpbGRyZW5UcmFuc2Zvcm0pCi0gICAgICAg
IHJldHVybjsKLQotICAgIEdyYXBoaWNzTGF5ZXI6OnNldENoaWxkcmVuVHJhbnNmb3JtKHQpOwot
CiAgICAgQ0FUcmFuc2Zvcm0zRCB0cmFuc2Zvcm07Ci0gICAgY29weVRyYW5zZm9ybSh0cmFuc2Zv
cm0sIHQpOwotCi0gICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCi0gICAgLy8gU2V0IHRo
ZSB2YWx1ZSBvbiB0aGUgbGF5ZXIgdG8gdGhlIG5ldyB0cmFuc2Zvcm0uCisgICAgY29weVRyYW5z
Zm9ybSh0cmFuc2Zvcm0sIG1fY2hpbGRyZW5UcmFuc2Zvcm0pOwogICAgIFtwcmltYXJ5TGF5ZXIo
KSBzZXRTdWJsYXllclRyYW5zZm9ybTp0cmFuc2Zvcm1dOwotICAgIEVORF9CTE9DS19PQkpDX0VY
Q0VQVElPTlMKIH0KIAotc3RhdGljIHZvaWQgbW92ZUFuaW1hdGlvbihBbmltYXRlZFByb3BlcnR5
SUQgcHJvcGVydHksIENBTGF5ZXIqIGZyb21MYXllciwgQ0FMYXllciogdG9MYXllcikKK3ZvaWQg
R3JhcGhpY3NMYXllckNBOjp1cGRhdGVNYXNrc1RvQm91bmRzKCkKIHsKLSAgICBTdHJpbmcga2V5
UGF0aCA9IEdyYXBoaWNzTGF5ZXI6OnByb3BlcnR5SWRUb1N0cmluZyhwcm9wZXJ0eSk7Ci0gICAg
Zm9yIChzaG9ydCBpbmRleCA9IDA7IDsgKytpbmRleCkgewotICAgICAgICBTdHJpbmcgYW5pbU5h
bWUgPSBrZXlQYXRoICsgIl8iICsgU3RyaW5nOjpudW1iZXIoaW5kZXgpOwotICAgICAgICBDQUFu
aW1hdGlvbiogYW5pbSA9IFtmcm9tTGF5ZXIgYW5pbWF0aW9uRm9yS2V5OmFuaW1OYW1lXTsKLSAg
ICAgICAgaWYgKCFhbmltKQotICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgW2FuaW0gcmV0
YWluXTsKLSAgICAgICAgW2Zyb21MYXllciByZW1vdmVBbmltYXRpb25Gb3JLZXk6YW5pbU5hbWVd
OwotICAgICAgICBbdG9MYXllciBhZGRBbmltYXRpb246YW5pbSBmb3JLZXk6YW5pbU5hbWVdOwot
ICAgICAgICBbYW5pbSByZWxlYXNlXTsKLSAgICB9CisgICAgW21fbGF5ZXIuZ2V0KCkgc2V0TWFz
a3NUb0JvdW5kczptX21hc2tzVG9Cb3VuZHNdOworI2lmbmRlZiBOREVCVUcKKyAgICB1cGRhdGVE
ZWJ1Z0luZGljYXRvcnMoKTsKKyNlbmRpZgogfQogCi1zdGF0aWMgdm9pZCBtb3ZlU3VibGF5ZXJz
KENBTGF5ZXIqIGZyb21MYXllciwgQ0FMYXllciogdG9MYXllcikKK3ZvaWQgR3JhcGhpY3NMYXll
ckNBOjp1cGRhdGVDb250ZW50c09wYXF1ZSgpCiB7Ci0gICAgTlNBcnJheSogc3VibGF5ZXJzQ29w
eSA9IFtbZnJvbUxheWVyIHN1YmxheWVyc10gY29weV07IC8vIEF2b2lkIG11dGF0aW9uIHdoaWxl
IGVudW1lcmF0aW5nLCBhbmQga2VlcCB0aGUgc3VibGF5ZXJzIGFsaXZlLgotICAgIE5TRW51bWVy
YXRvciogY2hpbGRyZW5FbnVtZXJhdG9yID0gW3N1YmxheWVyc0NvcHkgb2JqZWN0RW51bWVyYXRv
cl07Ci0KLSAgICBDQUxheWVyKiBsYXllcjsKLSAgICB3aGlsZSAoKGxheWVyID0gW2NoaWxkcmVu
RW51bWVyYXRvciBuZXh0T2JqZWN0XSkgIT0gbmlsKSB7Ci0gICAgICAgIFtsYXllciByZW1vdmVG
cm9tU3VwZXJsYXllcl07Ci0gICAgICAgIFt0b0xheWVyIGFkZFN1YmxheWVyOmxheWVyXTsKLSAg
ICB9Ci0gICAgW3N1YmxheWVyc0NvcHkgcmVsZWFzZV07CisgICAgW21fbGF5ZXIuZ2V0KCkgc2V0
T3BhcXVlOm1fY29udGVudHNPcGFxdWVdOwogfQogCi12b2lkIEdyYXBoaWNzTGF5ZXJDQTo6c2V0
UHJlc2VydmVzM0QoYm9vbCBwcmVzZXJ2ZXMzRCkKK3ZvaWQgR3JhcGhpY3NMYXllckNBOjp1cGRh
dGVCYWNrZmFjZVZpc2liaWxpdHkoKQogewotICAgIEdyYXBoaWNzTGF5ZXI6OnNldFByZXNlcnZl
czNEKHByZXNlcnZlczNEKTsKLQotICAgIENHUG9pbnQgcG9pbnQgPSBDR1BvaW50TWFrZShtX3Np
emUud2lkdGgoKSAvIDIuMGYsIG1fc2l6ZS5oZWlnaHQoKSAvIDIuMGYpOwotICAgIENHUG9pbnQg
Y2VudGVyUG9pbnQgPSBDR1BvaW50TWFrZSgwLjVmLCAwLjVmKTsKLSAgICAKLSAgICBCRUdJTl9C
TE9DS19PQkpDX0VYQ0VQVElPTlMKKyAgICBbbV9sYXllci5nZXQoKSBzZXREb3VibGVTaWRlZDpt
X2JhY2tmYWNlVmlzaWJpbGl0eV07Cit9CiAKK3ZvaWQgR3JhcGhpY3NMYXllckNBOjp1cGRhdGVM
YXllclByZXNlcnZlczNEKCkKK3sKICAgICBDbGFzcyB0cmFuc2Zvcm1MYXllckNsYXNzID0gTlND
bGFzc0Zyb21TdHJpbmcoQCJDQVRyYW5zZm9ybUxheWVyIik7Ci0gICAgaWYgKHByZXNlcnZlczNE
ICYmICFtX3RyYW5zZm9ybUxheWVyICYmIHRyYW5zZm9ybUxheWVyQ2xhc3MpIHsKKyAgICBpZiAo
IXRyYW5zZm9ybUxheWVyQ2xhc3MpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChtX3ByZXNl
cnZlczNEICYmICFtX3RyYW5zZm9ybUxheWVyKSB7CiAgICAgICAgIC8vIENyZWF0ZSB0aGUgdHJh
bnNmb3JtIGxheWVyLgogICAgICAgICBtX3RyYW5zZm9ybUxheWVyLmFkb3B0TlMoW1t0cmFuc2Zv
cm1MYXllckNsYXNzIGFsbG9jXSBpbml0XSk7CiAKICAgICAgICAgLy8gVHVybiBvZmYgZGVmYXVs
dCBhbmltYXRpb25zLgogICAgICAgICBbbV90cmFuc2Zvcm1MYXllci5nZXQoKSBzZXRTdHlsZTpb
TlNEaWN0aW9uYXJ5IGRpY3Rpb25hcnlXaXRoT2JqZWN0Om51bGxBY3Rpb25zRGljdGlvbmFyeSgp
IGZvcktleTpAImFjdGlvbnMiXV07Ci0gICAgICAgIAorCiAjaWZuZGVmIE5ERUJVRwogICAgICAg
ICBbbV90cmFuc2Zvcm1MYXllci5nZXQoKSBzZXROYW1lOltOU1N0cmluZyBzdHJpbmdXaXRoRm9y
bWF0OkAiVHJhbnNmb3JtIExheWVyIENBVHJhbnNmb3JtTGF5ZXIoJXApIEdyYXBoaWNzTGF5ZXIo
JXApIiwgbV90cmFuc2Zvcm1MYXllci5nZXQoKSwgdGhpc11dOwogI2VuZGlmCiAgICAgICAgIC8v
IENvcHkgdGhlIHBvc2l0aW9uIGZyb20gdGhpcyBsYXllci4KLSAgICAgICAgW21fdHJhbnNmb3Jt
TGF5ZXIuZ2V0KCkgc2V0Qm91bmRzOlttX2xheWVyLmdldCgpIGJvdW5kc11dOwotICAgICAgICBb
bV90cmFuc2Zvcm1MYXllci5nZXQoKSBzZXRQb3NpdGlvbjpbbV9sYXllci5nZXQoKSBwb3NpdGlv
bl1dOwotICAgICAgICBbbV90cmFuc2Zvcm1MYXllci5nZXQoKSBzZXRBbmNob3JQb2ludDpbbV9s
YXllci5nZXQoKSBhbmNob3JQb2ludF1dOwotI2lmIEhBVkVfTU9ERVJOX1FVQVJUWkNPUkUKLSAg
ICAgICAgW21fdHJhbnNmb3JtTGF5ZXIuZ2V0KCkgc2V0QW5jaG9yUG9pbnRaOlttX2xheWVyLmdl
dCgpIGFuY2hvclBvaW50Wl1dOwotI2VuZGlmCi0gICAgICAgIFttX3RyYW5zZm9ybUxheWVyLmdl
dCgpIHNldENvbnRlbnRzUmVjdDpbbV9sYXllci5nZXQoKSBjb250ZW50c1JlY3RdXTsKLSNpZm5k
ZWYgTkRFQlVHCi0gICAgICAgIFttX3RyYW5zZm9ybUxheWVyLmdldCgpIHNldFpQb3NpdGlvbjpb
bV9sYXllci5nZXQoKSB6UG9zaXRpb25dXTsKLSNlbmRpZgorICAgICAgICB1cGRhdGVMYXllclBv
c2l0aW9uKCk7CisgICAgICAgIHVwZGF0ZUxheWVyU2l6ZSgpOworICAgICAgICB1cGRhdGVBbmNo
b3JQb2ludCgpOworICAgICAgICB1cGRhdGVUcmFuc2Zvcm0oKTsKKyAgICAgICAgdXBkYXRlQ2hp
bGRyZW5UcmFuc2Zvcm0oKTsKICAgICAgICAgCi0gICAgICAgIC8vIFRoZSBjb250ZW50cyBsYXll
ciBpcyBwb3NpdGlvbmVkIGF0ICgwLDApIHJlbGF0aXZlIHRvIHRoZSB0cmFuc2Zvcm1MYXllci4K
KyAgICAgICAgQ0dQb2ludCBwb2ludCA9IENHUG9pbnRNYWtlKG1fc2l6ZS53aWR0aCgpIC8gMi4w
ZiwgbV9zaXplLmhlaWdodCgpIC8gMi4wZik7CiAgICAgICAgIFttX2xheWVyLmdldCgpIHNldFBv
c2l0aW9uOnBvaW50XTsKLSAgICAgICAgW21fbGF5ZXIuZ2V0KCkgc2V0QW5jaG9yUG9pbnQ6Y2Vu
dGVyUG9pbnRdOwotI2lmbmRlZiBOREVCVUcKLSAgICAgICAgW21fbGF5ZXIuZ2V0KCkgc2V0WlBv
c2l0aW9uOjAuMGZdOwotI2VuZGlmCi0gICAgICAgIAotICAgICAgICAvLyBUcmFuc2ZlciB0aGUg
dHJhbnNmb3JtIG92ZXIuCi0gICAgICAgIFttX3RyYW5zZm9ybUxheWVyLmdldCgpIHNldFRyYW5z
Zm9ybTpbbV9sYXllci5nZXQoKSB0cmFuc2Zvcm1dXTsKKworICAgICAgICBbbV9sYXllci5nZXQo
KSBzZXRBbmNob3JQb2ludDpDR1BvaW50TWFrZSgwLjVmLCAwLjVmKV07CiAgICAgICAgIFttX2xh
eWVyLmdldCgpIHNldFRyYW5zZm9ybTpDQVRyYW5zZm9ybTNESWRlbnRpdHldOwogICAgICAgICAK
ICAgICAgICAgLy8gU2V0IHRoZSBvbGQgbGF5ZXIgdG8gb3BhY2l0eSBvZiAxLiBGdXJ0aGVyIGRv
d24gd2Ugd2lsbCBzZXQgdGhlIG9wYWNpdHkgb24gdGhlIHRyYW5zZm9ybSBsYXllci4KQEAgLTcw
Myw2NTcgKzk1OCw1ODMgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldFByZXNlcnZlczNEKGJv
b2wgcHJlc2VydmVzM0QpCiAgICAgICAgIFttX3RyYW5zZm9ybUxheWVyLmdldCgpIGFkZFN1Ymxh
eWVyOm1fbGF5ZXIuZ2V0KCldOwogCiAgICAgICAgIG1vdmVBbmltYXRpb24oQW5pbWF0ZWRQcm9w
ZXJ0eVdlYmtpdFRyYW5zZm9ybSwgbV9sYXllci5nZXQoKSwgbV90cmFuc2Zvcm1MYXllci5nZXQo
KSk7Ci0gICAgICAgIG1vdmVTdWJsYXllcnMobV9sYXllci5nZXQoKSwgbV90cmFuc2Zvcm1MYXll
ci5nZXQoKSk7Ci0KLSAgICB9IGVsc2UgaWYgKCFwcmVzZXJ2ZXMzRCAmJiBtX3RyYW5zZm9ybUxh
eWVyKSB7CisgICAgICAgIAorICAgICAgICB1cGRhdGVTdWJsYXllckxpc3QoKTsKKyAgICB9IGVs
c2UgaWYgKCFtX3ByZXNlcnZlczNEICYmIG1fdHJhbnNmb3JtTGF5ZXIpIHsKICAgICAgICAgLy8g
UmVsYWNlIHRoZSB0cmFuc2Zvcm1MYXllciBpbiB0aGUgcGFyZW50IHdpdGggdGhpcyBsYXllci4K
ICAgICAgICAgW21fbGF5ZXIuZ2V0KCkgcmVtb3ZlRnJvbVN1cGVybGF5ZXJdOwogICAgICAgICBb
W21fdHJhbnNmb3JtTGF5ZXIuZ2V0KCkgc3VwZXJsYXllcl0gcmVwbGFjZVN1YmxheWVyOm1fdHJh
bnNmb3JtTGF5ZXIuZ2V0KCkgd2l0aDptX2xheWVyLmdldCgpXTsKIAogICAgICAgICBtb3ZlQW5p
bWF0aW9uKEFuaW1hdGVkUHJvcGVydHlXZWJraXRUcmFuc2Zvcm0sIG1fdHJhbnNmb3JtTGF5ZXIu
Z2V0KCksIG1fbGF5ZXIuZ2V0KCkpOwotICAgICAgICBtb3ZlU3VibGF5ZXJzKG1fdHJhbnNmb3Jt
TGF5ZXIuZ2V0KCksIG1fbGF5ZXIuZ2V0KCkpOwotCi0gICAgICAgIC8vIFJlc2V0IHRoZSBsYXll
ciBwb3NpdGlvbiBhbmQgdHJhbnNmb3JtLgotICAgICAgICBbbV9sYXllci5nZXQoKSBzZXRQb3Np
dGlvbjpbbV90cmFuc2Zvcm1MYXllci5nZXQoKSBwb3NpdGlvbl1dOwotICAgICAgICBbbV9sYXll
ci5nZXQoKSBzZXRBbmNob3JQb2ludDpbbV90cmFuc2Zvcm1MYXllci5nZXQoKSBhbmNob3JQb2lu
dF1dOwotI2lmIEhBVkVfTU9ERVJOX1FVQVJUWkNPUkUKLSAgICAgICAgW21fbGF5ZXIuZ2V0KCkg
c2V0QW5jaG9yUG9pbnRaOlttX3RyYW5zZm9ybUxheWVyLmdldCgpIGFuY2hvclBvaW50Wl1dOwot
I2VuZGlmCi0gICAgICAgIFttX2xheWVyLmdldCgpIHNldENvbnRlbnRzUmVjdDpbbV90cmFuc2Zv
cm1MYXllci5nZXQoKSBjb250ZW50c1JlY3RdXTsKLSAgICAgICAgW21fbGF5ZXIuZ2V0KCkgc2V0
VHJhbnNmb3JtOlttX3RyYW5zZm9ybUxheWVyLmdldCgpIHRyYW5zZm9ybV1dOwotI2lmbmRlZiBO
REVCVUcKLSAgICAgICAgW21fbGF5ZXIuZ2V0KCkgc2V0WlBvc2l0aW9uOlttX3RyYW5zZm9ybUxh
eWVyLmdldCgpIHpQb3NpdGlvbl1dOwotI2VuZGlmCiAKICAgICAgICAgLy8gUmVsZWFzZSB0aGUg
dHJhbnNmb3JtIGxheWVyLgogICAgICAgICBtX3RyYW5zZm9ybUxheWVyID0gMDsKKworICAgICAg
ICB1cGRhdGVMYXllclBvc2l0aW9uKCk7CisgICAgICAgIHVwZGF0ZUxheWVyU2l6ZSgpOworICAg
ICAgICB1cGRhdGVBbmNob3JQb2ludCgpOworICAgICAgICB1cGRhdGVUcmFuc2Zvcm0oKTsKKyAg
ICAgICAgdXBkYXRlQ2hpbGRyZW5UcmFuc2Zvcm0oKTsKKworICAgICAgICB1cGRhdGVTdWJsYXll
ckxpc3QoKTsKICAgICB9CiAKICAgICB1cGRhdGVPcGFjaXR5T25MYXllcigpOwotCi0gICAgRU5E
X0JMT0NLX09CSkNfRVhDRVBUSU9OUwogfQogCi12b2lkIEdyYXBoaWNzTGF5ZXJDQTo6c2V0TWFz
a3NUb0JvdW5kcyhib29sIG1hc2tzVG9Cb3VuZHMpCit2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6dXBk
YXRlTGF5ZXJEcmF3c0NvbnRlbnQoKQogewotICAgIGlmIChtYXNrc1RvQm91bmRzID09IG1fbWFz
a3NUb0JvdW5kcykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgR3JhcGhpY3NMYXllcjo6c2V0TWFz
a3NUb0JvdW5kcyhtYXNrc1RvQm91bmRzKTsKKyAgICBib29sIG5lZWRUaWxlZExheWVyID0gcmVx
dWlyZXNUaWxlZExheWVyKG1fc2l6ZSk7CisgICAgaWYgKG5lZWRUaWxlZExheWVyICE9IG1fdXNp
bmdUaWxlZExheWVyKQorICAgICAgICBzd2FwRnJvbU9yVG9UaWxlZExheWVyKG5lZWRUaWxlZExh
eWVyKTsKIAotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwotICAgIFttX2xheWVyLmdl
dCgpIHNldE1hc2tzVG9Cb3VuZHM6bWFza3NUb0JvdW5kc107Ci0gICAgRU5EX0JMT0NLX09CSkNf
RVhDRVBUSU9OUworICAgIGlmIChtX2RyYXdzQ29udGVudCkKKyAgICAgICAgW21fbGF5ZXIuZ2V0
KCkgc2V0TmVlZHNEaXNwbGF5XTsKKyAgICBlbHNlCisgICAgICAgIFttX2xheWVyLmdldCgpIHNl
dENvbnRlbnRzOm5pbF07CiAKICNpZm5kZWYgTkRFQlVHCiAgICAgdXBkYXRlRGVidWdJbmRpY2F0
b3JzKCk7CiAjZW5kaWYKIH0KIAotdm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldERyYXdzQ29udGVu
dChib29sIGRyYXdzQ29udGVudCkKK3ZvaWQgR3JhcGhpY3NMYXllckNBOjp1cGRhdGVMYXllckJh
Y2tncm91bmRDb2xvcigpCiB7Ci0gICAgaWYgKGRyYXdzQ29udGVudCAhPSBtX2RyYXdzQ29udGVu
dCkgewotICAgICAgICBHcmFwaGljc0xheWVyOjpzZXREcmF3c0NvbnRlbnQoZHJhd3NDb250ZW50
KTsKLQotICAgICAgICBib29sIG5lZWRUaWxlZExheWVyID0gcmVxdWlyZXNUaWxlZExheWVyKG1f
c2l6ZSk7Ci0gICAgICAgIGlmIChuZWVkVGlsZWRMYXllciAhPSBtX3VzaW5nVGlsZWRMYXllcikK
LSAgICAgICAgICAgIHN3YXBGcm9tT3JUb1RpbGVkTGF5ZXIobmVlZFRpbGVkTGF5ZXIpOworICAg
IGlmICghbV9jb250ZW50c0xheWVyKQorICAgICAgICByZXR1cm47CiAKLSAgICAgICAgQkVHSU5f
QkxPQ0tfT0JKQ19FWENFUFRJT05TCi0gICAgICAgIGlmIChtX2RyYXdzQ29udGVudCkKLSAgICAg
ICAgICAgIFttX2xheWVyLmdldCgpIHNldE5lZWRzRGlzcGxheV07Ci0gICAgICAgIGVsc2UKLSAg
ICAgICAgICAgIFttX2xheWVyLmdldCgpIHNldENvbnRlbnRzOm5pbF07Ci0gICAgICAgIAotI2lm
bmRlZiBOREVCVUcKLSAgICAgICAgdXBkYXRlRGVidWdJbmRpY2F0b3JzKCk7Ci0jZW5kaWYKLSAg
ICAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwotICAgIH0KKyAgICAvLyBXZSBuZXZlciBj
cmVhdGUgdGhlIGNvbnRlbnRzIGxheWVyIGp1c3QgZm9yIGJhY2tncm91bmQgY29sb3IgeWV0Lgor
ICAgIGlmIChtX2JhY2tncm91bmRDb2xvclNldCkKKyAgICAgICAgc2V0TGF5ZXJCYWNrZ3JvdW5k
Q29sb3IobV9jb250ZW50c0xheWVyLmdldCgpLCBtX2JhY2tncm91bmRDb2xvcik7CisgICAgZWxz
ZQorICAgICAgICBjbGVhckxheWVyQmFja2dyb3VuZENvbG9yKG1fY29udGVudHNMYXllci5nZXQo
KSk7CiB9CiAKLXZvaWQgR3JhcGhpY3NMYXllckNBOjpzZXRCYWNrZ3JvdW5kQ29sb3IoY29uc3Qg
Q29sb3ImIGNvbG9yLCBjb25zdCBBbmltYXRpb24qIHRyYW5zaXRpb24sIGRvdWJsZSBiZWdpblRp
bWUpCit2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6dXBkYXRlQ29udGVudHNJbWFnZSgpCiB7Ci0gICAg
R3JhcGhpY3NMYXllcjo6c2V0QmFja2dyb3VuZENvbG9yKGNvbG9yLCB0cmFuc2l0aW9uLCBiZWdp
blRpbWUpOwotCi0gICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCi0gICAgCi0gICAgaWYg
KCFtX2NvbnRlbnRzTGF5ZXIuZ2V0KCkpIHsKLSAgICAgICAgV2ViTGF5ZXIqIGNvbG9yTGF5ZXIg
PSBbV2ViTGF5ZXIgbGF5ZXJdOworICAgIGlmIChtX3BlbmRpbmdDb250ZW50c0ltYWdlKSB7Cisg
ICAgICAgIGlmICghbV9jb250ZW50c0xheWVyLmdldCgpKSB7CisgICAgICAgICAgICBXZWJMYXll
ciogaW1hZ2VMYXllciA9IFtXZWJMYXllciBsYXllcl07CiAjaWZuZGVmIE5ERUJVRwotICAgICAg
ICBbY29sb3JMYXllciBzZXROYW1lOkAiQ29sb3IgTGF5ZXIiXTsKKyAgICAgICAgICAgIFtpbWFn
ZUxheWVyIHNldE5hbWU6QCJJbWFnZSBMYXllciJdOwogI2VuZGlmCi0gICAgICAgIHNldENvbnRl
bnRzTGF5ZXIoY29sb3JMYXllcik7Ci0gICAgfQotICAgIAotICAgIGlmICh0cmFuc2l0aW9uICYm
ICF0cmFuc2l0aW9uLT5pc0VtcHR5T3JaZXJvRHVyYXRpb24oKSkgewotICAgICAgICBDQUxheWVy
KiBwcmVzTGF5ZXIgPSBbbV9jb250ZW50c0xheWVyLmdldCgpIHByZXNlbnRhdGlvbkxheWVyXTsK
LSAgICAgICAgLy8gSWYgd2UgZG9uJ3QgaGF2ZSBhIHByZXNlbnRhdGlvbkxheWVyLCBqdXN0IHVz
ZSB0aGUgQ0FMYXllcgotICAgICAgICBpZiAoIXByZXNMYXllcikKLSAgICAgICAgICAgIHByZXNM
YXllciA9IG1fY29udGVudHNMYXllci5nZXQoKTsKLQotICAgICAgICAvLyBHZXQgdGhlIGN1cnJl
bnQgdmFsdWUgb2YgdGhlIGJhY2tncm91bmQgY29sb3IgZnJvbSB0aGUgbGF5ZXIKLSAgICAgICAg
Q0dDb2xvclJlZiBmcm9tQmFja2dyb3VuZENvbG9yID0gW3ByZXNMYXllciBiYWNrZ3JvdW5kQ29s
b3JdOwotCi0gICAgICAgIENHQ29sb3JSZWYgYmdDb2xvciA9IGNyZWF0ZUNHQ29sb3IoY29sb3Ip
OwotICAgICAgICBzZXRCYXNpY0FuaW1hdGlvbihBbmltYXRlZFByb3BlcnR5QmFja2dyb3VuZENv
bG9yLCBUcmFuc2Zvcm1PcGVyYXRpb246Ok5PTkUsIDAsIGZyb21CYWNrZ3JvdW5kQ29sb3IsIGJn
Q29sb3IsIHRydWUsIHRyYW5zaXRpb24sIGJlZ2luVGltZSk7Ci0gICAgICAgIENHQ29sb3JSZWxl
YXNlKGJnQ29sb3IpOworICAgICAgICAgICAgc2V0dXBDb250ZW50c0xheWVyKGltYWdlTGF5ZXIp
OworICAgICAgICAgICAgbV9jb250ZW50c0xheWVyLmFkb3B0TlMoW2ltYWdlTGF5ZXIgcmV0YWlu
XSk7CisgICAgICAgICAgICAvLyBtX2NvbnRlbnRzTGF5ZXIgd2lsbCBiZSBwYXJlbnRlZCBieSB1
cGRhdGVTdWJsYXllckxpc3QKKyAgICAgICAgfQorCisgICAgICAgIC8vIEZJWE1FOiBtYXliZSBv
bmx5IGRvIHRyaWxpbmVhciBpZiB0aGUgaW1hZ2UgaXMgYmVpbmcgc2NhbGVkIGRvd24sCisgICAg
ICAgIC8vIGJ1dCB0aGVuIHdoYXQgaWYgdGhlIGxheWVyIHNpemUgY2hhbmdlcz8KKyNpZiAhZGVm
aW5lZChCVUlMRElOR19PTl9USUdFUikgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkK
KyAgICAgICAgW21fY29udGVudHNMYXllci5nZXQoKSBzZXRNaW5pZmljYXRpb25GaWx0ZXI6a0NB
RmlsdGVyVHJpbGluZWFyXTsKKyNlbmRpZgorICAgICAgICBbbV9jb250ZW50c0xheWVyLmdldCgp
IHNldENvbnRlbnRzOihpZCltX3BlbmRpbmdDb250ZW50c0ltYWdlLmdldCgpXTsKKyAgICAgICAg
bV9wZW5kaW5nQ29udGVudHNJbWFnZSA9IDA7CisgICAgICAgIAorICAgICAgICB1cGRhdGVDb250
ZW50c1JlY3QoKTsKICAgICB9IGVsc2UgewotICAgICAgICByZW1vdmVBbGxBbmltYXRpb25zRm9y
UHJvcGVydHkoQW5pbWF0ZWRQcm9wZXJ0eUJhY2tncm91bmRDb2xvcik7ICAgIAotICAgICAgICBz
ZXRMYXllckJhY2tncm91bmRDb2xvcihtX2NvbnRlbnRzTGF5ZXIuZ2V0KCksIG1fYmFja2dyb3Vu
ZENvbG9yKTsKKyAgICAgICAgLy8gTm8gaW1hZ2UuCisgICAgICAgIC8vIG1fY29udGVudHNMYXll
ciB3aWxsIGJlIHJlbW92ZWQgdmlhIHVwZGF0ZVN1YmxheWVyTGlzdC4KKyAgICAgICAgbV9jb250
ZW50c0xheWVyID0gMDsKICAgICB9Ci0KLSAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiB9
CiAKLXZvaWQgR3JhcGhpY3NMYXllckNBOjpjbGVhckJhY2tncm91bmRDb2xvcigpCit2b2lkIEdy
YXBoaWNzTGF5ZXJDQTo6dXBkYXRlQ29udGVudHNWaWRlbygpCiB7Ci0gICAgaWYgKCFtX2NvbnRl
bnRMYXllckZvckltYWdlT3JWaWRlbykKLSAgICAgICAgc2V0Q29udGVudHNMYXllcigwKTsKLSAg
ICBlbHNlCi0gICAgICAgIGNsZWFyTGF5ZXJCYWNrZ3JvdW5kQ29sb3IobV9jb250ZW50c0xheWVy
LmdldCgpKTsKKyAgICAvLyBWaWRlbyBsYXllciB3YXMgc2V0IGFzIG1fY29udGVudHNMYXllciwg
YW5kIHdpbGwgZ2V0IHBhcmVudGVkIGluIHVwZGF0ZVN1YmxheWVyTGlzdCgpLgorICAgIGlmICht
X2NvbnRlbnRzTGF5ZXIpIHsKKyAgICAgICAgc2V0dXBDb250ZW50c0xheWVyKG1fY29udGVudHNM
YXllci5nZXQoKSk7CisgICAgICAgIHVwZGF0ZUNvbnRlbnRzUmVjdCgpOworICAgIH0KIH0KIAot
dm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldENvbnRlbnRzT3BhcXVlKGJvb2wgb3BhcXVlKQordm9p
ZCBHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZUNvbnRlbnRzUmVjdCgpCiB7Ci0gICAgR3JhcGhpY3NM
YXllcjo6c2V0Q29udGVudHNPcGFxdWUob3BhcXVlKTsKKyAgICBpZiAoIW1fY29udGVudHNMYXll
cikKKyAgICAgICAgcmV0dXJuOwogCi0gICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCi0g
ICAgW21fbGF5ZXIuZ2V0KCkgc2V0T3BhcXVlOm1fY29udGVudHNPcGFxdWVdOwotICAgIEVORF9C
TE9DS19PQkpDX0VYQ0VQVElPTlMKKyAgICBDR1BvaW50IHBvaW50ID0gQ0dQb2ludE1ha2UobV9j
b250ZW50c1JlY3QueCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2NvbnRl
bnRzUmVjdC55KCkpOworICAgIENHUmVjdCByZWN0ID0gQ0dSZWN0TWFrZSgwLjBmLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAwLjBmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBtX2NvbnRlbnRzUmVjdC53aWR0aCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBt
X2NvbnRlbnRzUmVjdC5oZWlnaHQoKSk7CisKKyAgICBbbV9jb250ZW50c0xheWVyLmdldCgpIHNl
dFBvc2l0aW9uOnBvaW50XTsKKyAgICBbbV9jb250ZW50c0xheWVyLmdldCgpIHNldEJvdW5kczpy
ZWN0XTsKIH0KIAotdm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldEJhY2tmYWNlVmlzaWJpbGl0eShi
b29sIHZpc2libGUpCit2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6dXBkYXRlR2VvbWV0cnlPcmllbnRh
dGlvbigpCiB7Ci0gICAgaWYgKG1fYmFja2ZhY2VWaXNpYmlsaXR5ID09IHZpc2libGUpCi0gICAg
ICAgIHJldHVybjsKLSAgICAKLSAgICBHcmFwaGljc0xheWVyOjpzZXRCYWNrZmFjZVZpc2liaWxp
dHkodmlzaWJsZSk7Ci0gICAgCi0gICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCi0gICAg
W21fbGF5ZXIuZ2V0KCkgc2V0RG91YmxlU2lkZWQ6dmlzaWJsZV07Ci0gICAgRU5EX0JMT0NLX09C
SkNfRVhDRVBUSU9OUworICAgIHN3aXRjaCAoZ2VvbWV0cnlPcmllbnRhdGlvbigpKSB7CisgICAg
ICAgIGNhc2UgQ29tcG9zaXRpbmdDb29yZGluYXRlc1RvcERvd246CisjaWYgSEFWRV9NT0RFUk5f
UVVBUlRaQ09SRQorICAgICAgICAgICAgW21fbGF5ZXIuZ2V0KCkgc2V0R2VvbWV0cnlGbGlwcGVk
Ok5PXTsKKyNlbHNlCisgICAgICAgICAgICBzZXRDaGlsZHJlblRyYW5zZm9ybShUcmFuc2Zvcm1h
dGlvbk1hdHJpeCgpKTsKKyNlbmRpZgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIAorICAg
ICAgICBjYXNlIENvbXBvc2l0aW5nQ29vcmRpbmF0ZXNCb3R0b21VcDoKKyNpZiBIQVZFX01PREVS
Tl9RVUFSVFpDT1JFCisgICAgICAgICAgICBbbV9sYXllci5nZXQoKSBzZXRHZW9tZXRyeUZsaXBw
ZWQ6WUVTXTsKKyNlbHNlCisgICAgICAgICAgICBzZXRDaGlsZHJlblRyYW5zZm9ybShmbGlwVHJh
bnNmb3JtKCkpOworI2VuZGlmCisgICAgICAgICAgICBicmVhazsKKyAgICB9CiB9CiAKLWJvb2wg
R3JhcGhpY3NMYXllckNBOjpzZXRPcGFjaXR5KGZsb2F0IG9wYWNpdHksIGNvbnN0IEFuaW1hdGlv
biogdHJhbnNpdGlvbiwgZG91YmxlIGJlZ2luVGltZSkKK3ZvaWQgR3JhcGhpY3NMYXllckNBOjp1
cGRhdGVMYXllckFuaW1hdGlvbnMoKQogewotICAgIGlmIChmb3JjZVNvZnR3YXJlQW5pbWF0aW9u
KCkgJiYgdHJhbnNpdGlvbikKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAKLSAgICBm
bG9hdCBjbGFtcGVkT3BhY2l0eSA9IG1heCgwLjBmLCBtaW4ob3BhY2l0eSwgMS4wZikpOwotICAg
IAotICAgIGJvb2wgb3BhY2l0aWVzRGlmZmVyID0gKG1fb3BhY2l0eSAhPSBjbGFtcGVkT3BhY2l0
eSk7Ci0gICAgCi0gICAgR3JhcGhpY3NMYXllcjo6c2V0T3BhY2l0eShjbGFtcGVkT3BhY2l0eSwg
dHJhbnNpdGlvbiwgYmVnaW5UaW1lKTsKLSAgICAKLSAgICBpbnQgYW5pbUluZGV4ID0gZmluZEFu
aW1hdGlvbkVudHJ5KEFuaW1hdGVkUHJvcGVydHlPcGFjaXR5LCAwKTsKLSAgICAgICAgCi0gICAg
Ly8gSWYgd2UgZG9uJ3QgaGF2ZSBhIHRyYW5zaXRpb24ganVzdCBzZXQgdGhlIG9wYWNpdHkKLSAg
ICBpZiAoIXRyYW5zaXRpb24gfHwgdHJhbnNpdGlvbi0+aXNFbXB0eU9yWmVyb0R1cmF0aW9uKCkp
IHsKLSAgICAgICAgLy8gVGhyZWUgY2FzZXM6Ci0gICAgICAgIC8vICAxKSBubyBleGlzdGluZyBh
bmltYXRpb24gb3IgdHJhbnNpdGlvbjoganVzdCBzZXQgb3BhY2l0eQotICAgICAgICAvLyAgMikg
ZXhpc3RpbmcgdHJhbnNpdGlvbjogY2xlYXIgaXQgYW5kIHNldCBvcGFjaXR5Ci0gICAgICAgIC8v
ICAzKSBleGlzdGluZyBhbmltYXRpb246IGp1c3QgcmV0dXJuCi0gICAgICAgIC8vCi0gICAgICAg
IGlmIChhbmltSW5kZXggPCAwIHx8IG1fYW5pbWF0aW9uc1thbmltSW5kZXhdLmlzVHJhbnNpdGlv
bigpKSB7Ci0gICAgICAgICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKLSAgICAgICAg
ICAgIHVwZGF0ZU9wYWNpdHlPbkxheWVyKCk7Ci0gICAgICAgICAgICBpZiAoYW5pbUluZGV4ID49
IDApIHsKLSAgICAgICAgICAgICAgICByZW1vdmVBbGxBbmltYXRpb25zRm9yUHJvcGVydHkoQW5p
bWF0ZWRQcm9wZXJ0eU9wYWNpdHkpOwotICAgICAgICAgICAgICAgIGFuaW1JbmRleCA9IC0xOwot
ICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBTdHJpbmcga2V5UGF0aCA9IHBy
b3BlcnR5SWRUb1N0cmluZyhBbmltYXRlZFByb3BlcnR5T3BhY2l0eSk7Ci0gICAgICAgICAgICAg
ICAgCi0gICAgICAgICAgICAgICAgLy8gRklYTUU6IHVzaW5nIGhhcmRjb2RlZCAnMCcgaGVyZS4g
V2Ugc2hvdWxkIGJlIGNsZWFyaW5nIGFsbCBhbmltYXRpb25zLiBGb3Igbm93IHRoZXJlIGlzIG9u
bHkgMS4KLSAgICAgICAgICAgICAgICBTdHJpbmcgYW5pbU5hbWUgPSBrZXlQYXRoICsgIl8wIjsK
LSAgICAgICAgICAgICAgICBbYW5pbWF0ZWRMYXllcihBbmltYXRlZFByb3BlcnR5T3BhY2l0eSkg
cmVtb3ZlQW5pbWF0aW9uRm9yS2V5OmFuaW1OYW1lXTsKKyAgICBpZiAobV90cmFuc2l0aW9uUHJv
cGVydGllc1RvUmVtb3ZlLnNpemUoKSkgeworICAgICAgICBIYXNoU2V0PGludD46OmNvbnN0X2l0
ZXJhdG9yIGVuZCA9IG1fdHJhbnNpdGlvblByb3BlcnRpZXNUb1JlbW92ZS5lbmQoKTsKKyAgICAg
ICAgZm9yIChIYXNoU2V0PEFuaW1hdGVkUHJvcGVydHk+Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1f
dHJhbnNpdGlvblByb3BlcnRpZXNUb1JlbW92ZS5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsK
KyAgICAgICAgICAgIEFuaW1hdGVkUHJvcGVydHlJRCBjdXJyUHJvcGVydHkgPSBzdGF0aWNfY2Fz
dDxBbmltYXRlZFByb3BlcnR5SUQ+KCppdCk7CisgICAgICAgICAgICAvLyBSZW1vdmUgYWxsIGFu
aW1hdGlvbnMgd2l0aCB0aGlzIHByb3BlcnR5IGluIHRoZSBrZXkuCisgICAgICAgICAgICAvLyBX
ZSBjYW4ndCB0ZWxsIGlmIHRoaXMgcHJvcGVydHkgaXMgYW5pbWF0aW5nIHZpYSBhIHRyYW5zaXRp
b24gb3IgYW5pbWF0aW9uIGhlcmUsIGJ1dAorICAgICAgICAgICAgLy8gdGhhdCdzIE9LIGJlY2F1
c2UgdGhlIHN0eWxlIHN5c3RlbSBuZXZlciBzZW5kcyBib3RoIHRyYW5zaXRpb25zIGFuZCBhbmlt
YXRpb25zIGZvciB0aGUgc2FtZSBwcm9wZXJ0eS4KKyAgICAgICAgICAgIGZvciAoaW50IGluZGV4
ID0gMDsgOyArK2luZGV4KSB7CisgICAgICAgICAgICAgICAgaWYgKCFyZW1vdmVBbmltYXRpb25G
cm9tTGF5ZXIoY3VyclByb3BlcnR5LCBpbmRleCkpCisgICAgICAgICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgfQotICAgICAgICAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwot
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgLy8gV2UgaGF2ZSBhbiBhbmltYXRpb24sIHNv
IGRvbid0IHNldCB0aGUgb3BhY2l0eSBkaXJlY3RseS4KLSAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICAgICAgfQotICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vIEF0IHRoaXMgcG9pbnQsIHdl
IGtub3cgd2UgaGF2ZSBhIHRyYW5zaXRpb24uIEJ1dCBpZiBpdCBpcyB0aGUgc2FtZSBhbmQKLSAg
ICAgICAgLy8gdGhlIG9wYWNpdHkgdmFsdWUgaGFzIG5vdCBjaGFuZ2VkLCBkb24ndCBkbyBhbnl0
aGluZy4KLSAgICAgICAgaWYgKCFvcGFjaXRpZXNEaWZmZXIgJiYKLSAgICAgICAgICAgICAgICAo
KGFuaW1JbmRleCA9PSAtMSkgfHwgICAgCi0gICAgICAgICAgICAgICAgIChtX2FuaW1hdGlvbnNb
YW5pbUluZGV4XS5pc1RyYW5zaXRpb24oKSAmJiAqKG1fYW5pbWF0aW9uc1thbmltSW5kZXhdLmFu
aW1hdGlvbigpKSA9PSAqdHJhbnNpdGlvbikpKSB7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgICAgIH0KKworICAgICAgICBtX3RyYW5zaXRpb25Qcm9wZXJ0aWVzVG9SZW1vdmUuY2xl
YXIoKTsKICAgICB9Ci0gICAgCi0jaWYgIUhBVkVfTU9ERVJOX1FVQVJUWkNPUkUKLSAgICAvLyBP
bGRlciB2ZXJzaW9ucyBvZiBRdWFydHpDb3JlIGRvIG5vdCBoYW5kbGUgb3BhY2l0eSBpbiB0cmFu
c2Zvcm0gbGF5ZXJzIHByb3Blcmx5LiBTbyB3ZSB3aWxsCi0gICAgLy8gYWx3YXlzIGRvIHNvZnR3
YXJlIGFuaW1hdGlvbiBpbiB0aGF0IGNhc2UKLSAgICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYKLSAg
ICAKLSAgICAvLyBJZiBhbiBhbmltYXRpb24gaXMgcnVubmluZywgaWdub3JlIHRoaXMgdHJhbnNp
dGlvbiwgYnV0IHN0aWxsIHNhdmUgdGhlIHZhbHVlLgotICAgIGlmIChhbmltSW5kZXggPj0gMCAm
JiAhbV9hbmltYXRpb25zW2FuaW1JbmRleF0uaXNUcmFuc2l0aW9uKCkpCi0gICAgICAgIHJldHVy
biBmYWxzZTsKIAotICAgIGJvb2wgZGlkQW5pbWF0ZSA9IGZhbHNlOwotICAgIAotICAgIEJFR0lO
X0JMT0NLX09CSkNfRVhDRVBUSU9OUworICAgIGlmIChtX2tleWZyYW1lQW5pbWF0aW9uc1RvUHJv
Y2Vzcy5zaXplKCkpIHsKKyAgICAgICAgQW5pbWF0aW9uc1RvUHJvY2Vzc01hcDo6Y29uc3RfaXRl
cmF0b3IgZW5kID0gbV9rZXlmcmFtZUFuaW1hdGlvbnNUb1Byb2Nlc3MuZW5kKCk7CisgICAgICAg
IGZvciAoQW5pbWF0aW9uc1RvUHJvY2Vzc01hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX2tleWZy
YW1lQW5pbWF0aW9uc1RvUHJvY2Vzcy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKKyAgICAg
ICAgICAgIGNvbnN0IFN0cmluZyYgY3VycktleWZyYW1lTmFtZSA9IGl0LT5maXJzdDsKKyAgICAg
ICAgICAgIEtleWZyYW1lQW5pbWF0aW9uc01hcDo6aXRlcmF0b3IgYW5pbWF0aW9uSXQgPSBtX3J1
bm5pbmdLZXlmcmFtZUFuaW1hdGlvbnMuZmluZChjdXJyS2V5ZnJhbWVOYW1lKTsKKyAgICAgICAg
ICAgIGlmIChhbmltYXRpb25JdCA9PSBtX3J1bm5pbmdLZXlmcmFtZUFuaW1hdGlvbnMuZW5kKCkp
CisgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgIEFuaW1hdGlvblByb2Nl
c3NpbmdBY3Rpb24gYWN0aW9uID0gaXQtPnNlY29uZDsKKyAgICAgICAgICAgIGNvbnN0IFZlY3Rv
cjxBbmltYXRpb25QYWlyPiYgYW5pbWF0aW9ucyA9IGFuaW1hdGlvbkl0LT5zZWNvbmQ7CisgICAg
ICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGFuaW1hdGlvbnMuc2l6ZSgpOyArK2kpIHsK
KyAgICAgICAgICAgICAgICBjb25zdCBBbmltYXRpb25QYWlyJiBjdXJyUGFpciA9IGFuaW1hdGlv
bnNbaV07CisgICAgICAgICAgICAgICAgc3dpdGNoIChhY3Rpb24pIHsKKyAgICAgICAgICAgICAg
ICAgICAgY2FzZSBSZW1vdmU6CisgICAgICAgICAgICAgICAgICAgICAgICByZW1vdmVBbmltYXRp
b25Gcm9tTGF5ZXIoc3RhdGljX2Nhc3Q8QW5pbWF0ZWRQcm9wZXJ0eUlEPihjdXJyUGFpci5maXJz
dCksIGN1cnJQYWlyLnNlY29uZCk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgICAgICAgICAgY2FzZSBQYXVzZToKKyAgICAgICAgICAgICAgICAgICAgICAgIHBh
dXNlQW5pbWF0aW9uT25MYXllcihzdGF0aWNfY2FzdDxBbmltYXRlZFByb3BlcnR5SUQ+KGN1cnJQ
YWlyLmZpcnN0KSwgY3VyclBhaXIuc2Vjb25kKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYg
KGFjdGlvbiA9PSBSZW1vdmUpCisgICAgICAgICAgICAgICAgbV9ydW5uaW5nS2V5ZnJhbWVBbmlt
YXRpb25zLnJlbW92ZShjdXJyS2V5ZnJhbWVOYW1lKTsKKyAgICAgICAgfQogICAgIAotICAgIE5T
TnVtYmVyKiBmcm9tT3BhY2l0eVZhbHVlID0gbmlsOwotICAgIE5TTnVtYmVyKiB0b09wYWNpdHlW
YWx1ZSA9IFtOU051bWJlciBudW1iZXJXaXRoRmxvYXQ6b3BhY2l0eV07CisgICAgICAgIG1fa2V5
ZnJhbWVBbmltYXRpb25zVG9Qcm9jZXNzLmNsZWFyKCk7CisgICAgfQogICAgIAotICAgIGlmICh0
cmFuc2l0aW9uICYmICF0cmFuc2l0aW9uLT5pc0VtcHR5T3JaZXJvRHVyYXRpb24oKSkgewotICAg
ICAgICBDQUxheWVyKiBwcmVzTGF5ZXIgPSBnZXRQcmVzZW50YXRpb25MYXllcihwcmltYXJ5TGF5
ZXIoKSk7Ci0gICAgICAgIGZsb2F0IGZyb21PcGFjaXR5ID0gW3ByZXNMYXllciBvcGFjaXR5XTsK
LSAgICAgICAgZnJvbU9wYWNpdHlWYWx1ZSA9IFtOU051bWJlciBudW1iZXJXaXRoRmxvYXQ6ZnJv
bU9wYWNpdHldOwotICAgICAgICBzZXRCYXNpY0FuaW1hdGlvbihBbmltYXRlZFByb3BlcnR5T3Bh
Y2l0eSwgVHJhbnNmb3JtT3BlcmF0aW9uOjpOT05FLCAwLCBmcm9tT3BhY2l0eVZhbHVlLCB0b09w
YWNpdHlWYWx1ZSwgdHJ1ZSwgdHJhbnNpdGlvbiwgYmVnaW5UaW1lKTsKLSAgICAgICAgZGlkQW5p
bWF0ZSA9IHRydWU7CisgICAgc2l6ZV90IG51bUFuaW1hdGlvbnM7CisgICAgaWYgKChudW1Bbmlt
YXRpb25zID0gbV91bmNvbWl0dGVkQW5pbWF0aW9ucy5zaXplKCkpKSB7CisgICAgICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgbnVtQW5pbWF0aW9uczsgKytpKSB7CisgICAgICAgICAgICBjb25z
dCBMYXllckFuaW1hdGlvbiYgcGVuZGluZ0FuaW1hdGlvbiA9IG1fdW5jb21pdHRlZEFuaW1hdGlv
bnNbaV07CisgICAgICAgICAgICBzZXRBbmltYXRpb25PbkxheWVyKHBlbmRpbmdBbmltYXRpb24u
bV9hbmltYXRpb24uZ2V0KCksIHBlbmRpbmdBbmltYXRpb24ubV9wcm9wZXJ0eSwgcGVuZGluZ0Fu
aW1hdGlvbi5tX2luZGV4LCBwZW5kaW5nQW5pbWF0aW9uLm1fYmVnaW5UaW1lKTsKKyAgICAgICAg
ICAgIAorICAgICAgICAgICAgaWYgKCFwZW5kaW5nQW5pbWF0aW9uLm1fa2V5ZnJhbWVzTmFtZS5p
c0VtcHR5KCkpIHsKKyAgICAgICAgICAgICAgICAvLyBJZiB0aGlzIGlzIGEga2V5ZnJhbWUgYW5p
bSwgd2UgaGF2ZSB0byByZW1lbWJlciB0aGUgYXNzb2NpYXRpb24gb2Yga2V5ZnJhbWVzIG5hbWUg
dG8gcHJvcGVydHkvaW5kZXggcGFpcnMsCisgICAgICAgICAgICAgICAgLy8gc28gd2UgY2FuIHJl
bW92ZSB0aGUgYW5pbWF0aW9ucyBsYXRlciBpZiBuZWVkZWQuCisgICAgICAgICAgICAgICAgLy8g
Rm9yIHRyYW5zaXRpb25zLCB3ZSBjYW4ganVzdCBnZW5lcmF0ZSBhbmltYXRpb24gbmFtZXMgd2l0
aCBwcm9wZXJ0eSBhbmQgaW5kZXguCisgICAgICAgICAgICAgICAgS2V5ZnJhbWVBbmltYXRpb25z
TWFwOjppdGVyYXRvciBpdCA9IG1fcnVubmluZ0tleWZyYW1lQW5pbWF0aW9ucy5maW5kKHBlbmRp
bmdBbmltYXRpb24ubV9rZXlmcmFtZXNOYW1lKTsKKyAgICAgICAgICAgICAgICBpZiAoaXQgPT0g
bV9ydW5uaW5nS2V5ZnJhbWVBbmltYXRpb25zLmVuZCgpKSB7CisgICAgICAgICAgICAgICAgICAg
IFZlY3RvcjxBbmltYXRpb25QYWlyPiBmaXJzdFBhaXI7CisgICAgICAgICAgICAgICAgICAgIGZp
cnN0UGFpci5hcHBlbmQoQW5pbWF0aW9uUGFpcihwZW5kaW5nQW5pbWF0aW9uLm1fcHJvcGVydHks
IHBlbmRpbmdBbmltYXRpb24ubV9pbmRleCkpOworICAgICAgICAgICAgICAgICAgICBtX3J1bm5p
bmdLZXlmcmFtZUFuaW1hdGlvbnMuYWRkKHBlbmRpbmdBbmltYXRpb24ubV9rZXlmcmFtZXNOYW1l
LCBmaXJzdFBhaXIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAg
ICAgIFZlY3RvcjxBbmltYXRpb25QYWlyPiYgYW5pbVBhaXJzID0gaXQtPnNlY29uZDsKKyAgICAg
ICAgICAgICAgICAgICAgYW5pbVBhaXJzLmFwcGVuZChBbmltYXRpb25QYWlyKHBlbmRpbmdBbmlt
YXRpb24ubV9wcm9wZXJ0eSwgcGVuZGluZ0FuaW1hdGlvbi5tX2luZGV4KSk7CisgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBtX3Vu
Y29taXR0ZWRBbmltYXRpb25zLmNsZWFyKCk7CiAgICAgfQorfQogCi0gICAgRU5EX0JMT0NLX09C
SkNfRVhDRVBUSU9OUwordm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldEFuaW1hdGlvbk9uTGF5ZXIo
Q0FQcm9wZXJ0eUFuaW1hdGlvbiogY2FBbmltLCBBbmltYXRlZFByb3BlcnR5SUQgcHJvcGVydHks
IGludCBpbmRleCwgZG91YmxlIGJlZ2luVGltZSkKK3sKKyAgICBQbGF0Zm9ybUxheWVyKiBsYXll
ciA9IGFuaW1hdGVkTGF5ZXIocHJvcGVydHkpOworCisgICAgaWYgKGJlZ2luVGltZSkgeworICAg
ICAgICBOU1RpbWVJbnRlcnZhbCB0aW1lID0gW2xheWVyIGNvbnZlcnRUaW1lOmN1cnJlbnRUaW1l
VG9NZWRpYVRpbWUoYmVnaW5UaW1lKSBmcm9tTGF5ZXI6bmlsXTsKKyAgICAgICAgW2NhQW5pbSBz
ZXRCZWdpblRpbWU6dGltZV07CisgICAgfQorICAgIAorICAgIFN0cmluZyBhbmltYXRpb25OYW1l
ID0gYW5pbWF0aW9uSWRlbnRpZmllcihwcm9wZXJ0eSwgaW5kZXgpOwogICAgIAotICAgIHJldHVy
biBkaWRBbmltYXRlOworICAgIFtsYXllciByZW1vdmVBbmltYXRpb25Gb3JLZXk6YW5pbWF0aW9u
TmFtZV07CisgICAgW2xheWVyIGFkZEFuaW1hdGlvbjpjYUFuaW0gZm9yS2V5OmFuaW1hdGlvbk5h
bWVdOwogfQogCi12b2lkIEdyYXBoaWNzTGF5ZXJDQTo6c2V0TmVlZHNEaXNwbGF5KCkKK2Jvb2wg
R3JhcGhpY3NMYXllckNBOjpyZW1vdmVBbmltYXRpb25Gcm9tTGF5ZXIoQW5pbWF0ZWRQcm9wZXJ0
eUlEIHByb3BlcnR5LCBpbnQgaW5kZXgpCiB7Ci0gICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJ
T05TCisgICAgUGxhdGZvcm1MYXllciogbGF5ZXIgPSBhbmltYXRlZExheWVyKHByb3BlcnR5KTsK
KworICAgIFN0cmluZyBhbmltYXRpb25OYW1lID0gYW5pbWF0aW9uSWRlbnRpZmllcihwcm9wZXJ0
eSwgaW5kZXgpOworCisgICAgaWYgKCFbbGF5ZXIgYW5pbWF0aW9uRm9yS2V5OmFuaW1hdGlvbk5h
bWVdKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgCi0gICAgaWYgKGRyYXdzQ29udGVudCgp
KQotICAgICAgICBbbV9sYXllci5nZXQoKSBzZXROZWVkc0Rpc3BsYXldOworICAgIFtsYXllciBy
ZW1vdmVBbmltYXRpb25Gb3JLZXk6YW5pbWF0aW9uTmFtZV07CisgICAgcmV0dXJuIHRydWU7Cit9
CiAKLSAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCisKK3N0YXRpYyB2b2lkIGNvcHlBbmlt
YXRpb25Qcm9wZXJ0aWVzKENBUHJvcGVydHlBbmltYXRpb24qIGZyb20sIENBUHJvcGVydHlBbmlt
YXRpb24qIHRvKQoreworICAgIFt0byBzZXRCZWdpblRpbWU6W2Zyb20gYmVnaW5UaW1lXV07Cisg
ICAgW3RvIHNldER1cmF0aW9uOltmcm9tIGR1cmF0aW9uXV07CisgICAgW3RvIHNldFJlcGVhdENv
dW50Oltmcm9tIHJlcGVhdENvdW50XV07CisgICAgW3RvIHNldEF1dG9yZXZlcnNlczpbZnJvbSBh
dXRvcmV2ZXJzZXNdXTsKKyAgICBbdG8gc2V0RmlsbE1vZGU6W2Zyb20gZmlsbE1vZGVdXTsKKyAg
ICBbdG8gc2V0UmVtb3ZlZE9uQ29tcGxldGlvbjpbZnJvbSBpc1JlbW92ZWRPbkNvbXBsZXRpb25d
XTsKKyAgICBbdG8gc2V0QWRkaXRpdmU6W2Zyb20gaXNBZGRpdGl2ZV1dOworICAgIFt0byBzZXRU
aW1pbmdGdW5jdGlvbjpbZnJvbSB0aW1pbmdGdW5jdGlvbl1dOworCisjaWYgSEFWRV9NT0RFUk5f
UVVBUlRaQ09SRQorICAgIFt0byBzZXRWYWx1ZUZ1bmN0aW9uOltmcm9tIHZhbHVlRnVuY3Rpb25d
XTsKKyNlbmRpZgogfQogCi12b2lkIEdyYXBoaWNzTGF5ZXJDQTo6c2V0TmVlZHNEaXNwbGF5SW5S
ZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKK3ZvaWQgR3JhcGhpY3NMYXllckNBOjpwYXVzZUFu
aW1hdGlvbk9uTGF5ZXIoQW5pbWF0ZWRQcm9wZXJ0eUlEIHByb3BlcnR5LCBpbnQgaW5kZXgpCiB7
Ci0gICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCi0gICAgCi0gICAgaWYgKGRyYXdzQ29u
dGVudCgpKQotICAgICAgICBbbV9sYXllci5nZXQoKSBzZXROZWVkc0Rpc3BsYXlJblJlY3Q6cmVj
dF07CisgICAgUGxhdGZvcm1MYXllciogbGF5ZXIgPSBhbmltYXRlZExheWVyKHByb3BlcnR5KTsK
IAotICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKKyAgICBTdHJpbmcgYW5pbWF0aW9uTmFt
ZSA9IGFuaW1hdGlvbklkZW50aWZpZXIocHJvcGVydHksIGluZGV4KTsKKworICAgIENBQW5pbWF0
aW9uKiBjYUFuaW0gPSBbbGF5ZXIgYW5pbWF0aW9uRm9yS2V5OmFuaW1hdGlvbk5hbWVdOworICAg
IGlmICghY2FBbmltKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBBbmltYXRpb25zIG9uIHRo
ZSBsYXllciBhcmUgaW1tdXRhYmxlLCBzbyB3ZSBoYXZlIHRvIGNsb25lIGFuZCBtb2RpZnkuCisg
ICAgQ0FQcm9wZXJ0eUFuaW1hdGlvbiogcGF1c2VkQW5pbSA9IG5pbDsKKyAgICBpZiAoW2NhQW5p
bSBpc0tpbmRPZkNsYXNzOltDQUtleWZyYW1lQW5pbWF0aW9uIGNsYXNzXV0pIHsKKyAgICAgICAg
Q0FLZXlmcmFtZUFuaW1hdGlvbiogZXhpc3RpbmdLZXlmcmFtZUFuaW0gPSBzdGF0aWNfY2FzdDxD
QUtleWZyYW1lQW5pbWF0aW9uKj4oY2FBbmltKTsKKyAgICAgICAgQ0FLZXlmcmFtZUFuaW1hdGlv
biogbmV3QW5pbSA9IFtDQUtleWZyYW1lQW5pbWF0aW9uIGFuaW1hdGlvbldpdGhLZXlQYXRoOltl
eGlzdGluZ0tleWZyYW1lQW5pbSBrZXlQYXRoXV07CisgICAgICAgIGNvcHlBbmltYXRpb25Qcm9w
ZXJ0aWVzKGV4aXN0aW5nS2V5ZnJhbWVBbmltLCBuZXdBbmltKTsKKyAgICAgICAgW25ld0FuaW0g
c2V0VmFsdWVzOltleGlzdGluZ0tleWZyYW1lQW5pbSB2YWx1ZXNdXTsKKyAgICAgICAgW25ld0Fu
aW0gc2V0S2V5VGltZXM6W2V4aXN0aW5nS2V5ZnJhbWVBbmltIGtleVRpbWVzXV07CisgICAgICAg
IFtuZXdBbmltIHNldFRpbWluZ0Z1bmN0aW9uczpbZXhpc3RpbmdLZXlmcmFtZUFuaW0gdGltaW5n
RnVuY3Rpb25zXV07CisgICAgICAgIHBhdXNlZEFuaW0gPSBuZXdBbmltOworICAgIH0gZWxzZSBp
ZiAoW2NhQW5pbSBpc0tpbmRPZkNsYXNzOltDQUJhc2ljQW5pbWF0aW9uIGNsYXNzXV0pIHsKKyAg
ICAgICAgQ0FCYXNpY0FuaW1hdGlvbiogZXhpc3RpbmdQcm9wZXJ0eUFuaW0gPSBzdGF0aWNfY2Fz
dDxDQUJhc2ljQW5pbWF0aW9uKj4oY2FBbmltKTsKKyAgICAgICAgQ0FCYXNpY0FuaW1hdGlvbiog
bmV3QW5pbSA9IFtDQUJhc2ljQW5pbWF0aW9uIGFuaW1hdGlvbldpdGhLZXlQYXRoOltleGlzdGlu
Z1Byb3BlcnR5QW5pbSBrZXlQYXRoXV07CisgICAgICAgIGNvcHlBbmltYXRpb25Qcm9wZXJ0aWVz
KGV4aXN0aW5nUHJvcGVydHlBbmltLCBuZXdBbmltKTsKKyAgICAgICAgW25ld0FuaW0gc2V0RnJv
bVZhbHVlOltleGlzdGluZ1Byb3BlcnR5QW5pbSBmcm9tVmFsdWVdXTsKKyAgICAgICAgW25ld0Fu
aW0gc2V0VG9WYWx1ZTpbZXhpc3RpbmdQcm9wZXJ0eUFuaW0gdG9WYWx1ZV1dOworICAgICAgICBw
YXVzZWRBbmltID0gbmV3QW5pbTsKKyAgICB9CisKKyAgICBkb3VibGUgdCA9IFtsYXllciBjb252
ZXJ0VGltZTpjdXJyZW50VGltZVRvTWVkaWFUaW1lKGN1cnJlbnRUaW1lKCkpIGZyb21MYXllcjpu
aWxdOworICAgIFtwYXVzZWRBbmltIHNldFNwZWVkOjBdOworICAgIFtwYXVzZWRBbmltIHNldFRp
bWVPZmZzZXQ6dCAtIFtjYUFuaW0gYmVnaW5UaW1lXV07CisgICAgW2xheWVyIGFkZEFuaW1hdGlv
bjpwYXVzZWRBbmltIGZvcktleTphbmltYXRpb25OYW1lXTsgIC8vIFRoaXMgd2lsbCByZXBsYWNl
IHRoZSBydW5uaW5nIGFuaW1hdGlvbi4KIH0KIAordm9pZCBHcmFwaGljc0xheWVyQ0E6OnJlcGFp
bnRMYXllckRpcnR5UmVjdHMoKQoreworICAgIGlmICghbV9kaXJ0eVJlY3RzLnNpemUoKSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2RpcnR5UmVjdHMu
c2l6ZSgpOyArK2kpCisgICAgICAgIFttX2xheWVyLmdldCgpIHNldE5lZWRzRGlzcGxheUluUmVj
dDptX2RpcnR5UmVjdHNbaV1dOworICAgIAorICAgIG1fZGlydHlSZWN0cy5jbGVhcigpOworfQog
Ci1ib29sIEdyYXBoaWNzTGF5ZXJDQTo6YW5pbWF0ZVRyYW5zZm9ybShjb25zdCBUcmFuc2Zvcm1W
YWx1ZUxpc3QmIHZhbHVlTGlzdCwgY29uc3QgSW50U2l6ZSYgc2l6ZSwgY29uc3QgQW5pbWF0aW9u
KiBhbmltLCBkb3VibGUgYmVnaW5UaW1lLCBib29sIGlzVHJhbnNpdGlvbikKK2Jvb2wgR3JhcGhp
Y3NMYXllckNBOjpjcmVhdGVBbmltYXRpb25Gcm9tS2V5ZnJhbWVzKGNvbnN0IEtleWZyYW1lVmFs
dWVMaXN0JiB2YWx1ZUxpc3QsIGNvbnN0IEFuaW1hdGlvbiogYW5pbWF0aW9uLCBjb25zdCBTdHJp
bmcmIGtleWZyYW1lc05hbWUsIGRvdWJsZSBiZWdpblRpbWUpCiB7Ci0gICAgaWYgKGZvcmNlU29m
dHdhcmVBbmltYXRpb24oKSB8fCAhYW5pbSB8fCBhbmltLT5pc0VtcHR5T3JaZXJvRHVyYXRpb24o
KSB8fCB2YWx1ZUxpc3Quc2l6ZSgpIDwgMikKKyAgICBBU1NFUlQodmFsdWVMaXN0LnByb3BlcnR5
KCkgIT0gQW5pbWF0ZWRQcm9wZXJ0eVdlYmtpdFRyYW5zZm9ybSk7CisKKyAgICBCRUdJTl9CTE9D
S19PQkpDX0VYQ0VQVElPTlM7CisgICAgCisgICAgYm9vbCBpc0tleWZyYW1lID0gdmFsdWVMaXN0
LnNpemUoKSA+IDI7CisgICAgYm9vbCB2YWx1ZXNPSzsKKyAgICAKKyAgICBib29sIGFkZGl0aXZl
ID0gZmFsc2U7CisgICAgaW50IGFuaW1hdGlvbkluZGV4ID0gMDsKKyAgICAKKyAgICBDQVByb3Bl
cnR5QW5pbWF0aW9uKiBjYUFuaW1hdGlvbjsKKyAgICBpZiAoaXNLZXlmcmFtZSkgeworICAgICAg
ICBDQUtleWZyYW1lQW5pbWF0aW9uKiBrZXlmcmFtZUFuaW0gPSBjcmVhdGVLZXlmcmFtZUFuaW1h
dGlvbihhbmltYXRpb24sIHZhbHVlTGlzdC5wcm9wZXJ0eSgpLCBhZGRpdGl2ZSk7CisgICAgICAg
IHZhbHVlc09LID0gc2V0QW5pbWF0aW9uS2V5ZnJhbWVzKHZhbHVlTGlzdCwgYW5pbWF0aW9uLCBr
ZXlmcmFtZUFuaW0pOworICAgICAgICBjYUFuaW1hdGlvbiA9IGtleWZyYW1lQW5pbTsKKyAgICB9
IGVsc2UgeworICAgICAgICBDQUJhc2ljQW5pbWF0aW9uKiBiYXNpY0FuaW0gPSBjcmVhdGVCYXNp
Y0FuaW1hdGlvbihhbmltYXRpb24sIHZhbHVlTGlzdC5wcm9wZXJ0eSgpLCBhZGRpdGl2ZSk7Cisg
ICAgICAgIHZhbHVlc09LID0gc2V0QW5pbWF0aW9uRW5kcG9pbnRzKHZhbHVlTGlzdCwgYW5pbWF0
aW9uLCBiYXNpY0FuaW0pOworICAgICAgICBjYUFuaW1hdGlvbiA9IGJhc2ljQW5pbTsKKyAgICB9
CisgICAgCisgICAgaWYgKCF2YWx1ZXNPSykKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAg
ICAKLSAgICBUcmFuc2Zvcm1WYWx1ZUxpc3Q6OkZ1bmN0aW9uTGlzdCBmdW5jdGlvbkxpc3Q7Ci0g
ICAgYm9vbCBpc1ZhbGlkLCBoYXNCaWdSb3RhdGlvbjsKLSAgICB2YWx1ZUxpc3QubWFrZUZ1bmN0
aW9uTGlzdChmdW5jdGlvbkxpc3QsIGlzVmFsaWQsIGhhc0JpZ1JvdGF0aW9uKTsKKworICAgIG1f
dW5jb21pdHRlZEFuaW1hdGlvbnMuYXBwZW5kKExheWVyQW5pbWF0aW9uKGNhQW5pbWF0aW9uLCBr
ZXlmcmFtZXNOYW1lLCB2YWx1ZUxpc3QucHJvcGVydHkoKSwgYW5pbWF0aW9uSW5kZXgsIGJlZ2lu
VGltZSkpOworICAgIAorICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisKKyAgICByZXR1
cm4gdHJ1ZTsKK30KKworYm9vbCBHcmFwaGljc0xheWVyQ0E6OmNyZWF0ZVRyYW5zZm9ybUFuaW1h
dGlvbnNGcm9tS2V5ZnJhbWVzKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiB2YWx1ZUxpc3QsIGNv
bnN0IEFuaW1hdGlvbiogYW5pbWF0aW9uLCBjb25zdCBTdHJpbmcmIGtleWZyYW1lc05hbWUsIGRv
dWJsZSBiZWdpblRpbWUsIGNvbnN0IEludFNpemUmIGJveFNpemUpCit7CisgICAgQVNTRVJUKHZh
bHVlTGlzdC5wcm9wZXJ0eSgpID09IEFuaW1hdGVkUHJvcGVydHlXZWJraXRUcmFuc2Zvcm0pOwor
CisgICAgVHJhbnNmb3JtT3BlcmF0aW9uTGlzdCBmdW5jdGlvbkxpc3Q7CisgICAgYm9vbCBsaXN0
c01hdGNoLCBoYXNCaWdSb3RhdGlvbjsKKyAgICBmZXRjaFRyYW5zZm9ybU9wZXJhdGlvbkxpc3Qo
dmFsdWVMaXN0LCBmdW5jdGlvbkxpc3QsIGxpc3RzTWF0Y2gsIGhhc0JpZ1JvdGF0aW9uKTsKIAog
ICAgIC8vIFdlIG5lZWQgdG8gZmFsbCBiYWNrIHRvIHNvZnR3YXJlIGFuaW1hdGlvbiBpZiB3ZSBk
b24ndCBoYXZlIHNldFZhbHVlRnVuY3Rpb246LCBhbmQKICAgICAvLyB3ZSB3b3VsZCBuZWVkIHRv
IGFuaW1hdGUgZWFjaCBpbmNvbWluZyB0cmFuc2Zvcm0gZnVuY3Rpb24gc2VwYXJhdGVseS4gVGhp
cyBpcyB0aGUKICAgICAvLyBjYXNlIGlmIHdlIGhhdmUgYSByb3RhdGlvbiA+PSAxODAgb3Igd2Ug
aGF2ZSBtb3JlIHRoYW4gb25lIHRyYW5zZm9ybSBmdW5jdGlvbi4KICAgICBpZiAoKGhhc0JpZ1Jv
dGF0aW9uIHx8IGZ1bmN0aW9uTGlzdC5zaXplKCkgPiAxKSAmJiAhY2FWYWx1ZUZ1bmN0aW9uU3Vw
cG9ydGVkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKLSAgICBib29sIHN1Y2Nlc3Mg
PSB0cnVlOwotICAgIAotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwotICAgIAorCisg
ICAgYm9vbCB2YWxpZE1hdHJpY2VzID0gdHJ1ZTsKKworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhD
RVBUSU9OUzsKKwogICAgIC8vIElmIGZ1bmN0aW9uTGlzdHMgZG9uJ3QgbWF0Y2ggd2UgZG8gYSBt
YXRyaXggYW5pbWF0aW9uLCBvdGhlcndpc2Ugd2UgZG8gYSBjb21wb25lbnQgaGFyZHdhcmUgYW5p
bWF0aW9uLgogICAgIC8vIEFsc28sIHdlIGNhbid0IGRvIGNvbXBvbmVudCBhbmltYXRpb24gdW5s
ZXNzIHdlIGhhdmUgdmFsdWVGdW5jdGlvbiwgc28gd2UgbmVlZCB0byBkbyBtYXRyaXggYW5pbWF0
aW9uCiAgICAgLy8gaWYgdGhhdCdzIG5vdCB0cnVlIGFzIHdlbGwuCi0gICAgYm9vbCBpc01hdHJp
eEFuaW1hdGlvbiA9ICFpc1ZhbGlkIHx8ICFjYVZhbHVlRnVuY3Rpb25TdXBwb3J0ZWQoKTsKLSAg
ICAgICAgCi0gICAgLy8gU2V0IHRyYW5zZm9ybSB0byBpZGVudGl0eSBzaW5jZSB3ZSBhcmUgYW5p
bWF0aW5nIGNvbXBvbmVudHMgYW5kIHdlIG5lZWQgdGhlIGJhc2UKLSAgICAvLyB0byBiZSB0aGUg
aWRlbnRpdHkgdHJhbnNmb3JtLgotICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IHQ7Ci0gICAgQ0FU
cmFuc2Zvcm0zRCB0b1QzRDsKLSAgICBjb3B5VHJhbnNmb3JtKHRvVDNELCB0KTsKLSAgICBbcHJp
bWFyeUxheWVyKCkgc2V0VHJhbnNmb3JtOnRvVDNEXTsKLSAgICAgICAgCisgICAgYm9vbCBpc01h
dHJpeEFuaW1hdGlvbiA9ICFsaXN0c01hdGNoIHx8ICFjYVZhbHVlRnVuY3Rpb25TdXBwb3J0ZWQo
KTsKKyAgICAKKyAgICBzaXplX3QgbnVtQW5pbWF0aW9ucyA9IGlzTWF0cml4QW5pbWF0aW9uID8g
MSA6IGZ1bmN0aW9uTGlzdC5zaXplKCk7CiAgICAgYm9vbCBpc0tleWZyYW1lID0gdmFsdWVMaXN0
LnNpemUoKSA+IDI7Ci0gICAgICAgIAorICAgIAogICAgIC8vIEl0ZXJhdGUgdGhyb3VnaCB0aGUg
dHJhbnNmb3JtIGZ1bmN0aW9ucywgc2VuZGluZyBhbiBhbmltYXRpb24gZm9yIGVhY2ggb25lLgot
ICAgIGZvciAoaW50IGZ1bmN0aW9uSW5kZXggPSAwOyA7ICsrZnVuY3Rpb25JbmRleCkgewotICAg
ICAgICBpZiAoZnVuY3Rpb25JbmRleCA+PSBzdGF0aWNfY2FzdDxpbnQ+KGZ1bmN0aW9uTGlzdC5z
aXplKCkpICYmICFpc01hdHJpeEFuaW1hdGlvbikKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICAgICAgCi0gICAgICAgIFRyYW5zZm9ybU9wZXJhdGlvbjo6T3BlcmF0aW9uVHlwZSBvcFR5cGUg
PSBpc01hdHJpeEFuaW1hdGlvbiA/IFRyYW5zZm9ybU9wZXJhdGlvbjo6TUFUUklYXzNEIDogZnVu
Y3Rpb25MaXN0W2Z1bmN0aW9uSW5kZXhdOworICAgIGZvciAoc2l6ZV90IGFuaW1hdGlvbkluZGV4
ID0gMDsgYW5pbWF0aW9uSW5kZXggPCBudW1BbmltYXRpb25zOyArK2FuaW1hdGlvbkluZGV4KSB7
CisgICAgICAgIFRyYW5zZm9ybU9wZXJhdGlvbjo6T3BlcmF0aW9uVHlwZSB0cmFuc2Zvcm1PcCA9
IGlzTWF0cml4QW5pbWF0aW9uID8gVHJhbnNmb3JtT3BlcmF0aW9uOjpNQVRSSVhfM0QgOiBmdW5j
dGlvbkxpc3RbYW5pbWF0aW9uSW5kZXhdOworICAgICAgICBDQVByb3BlcnR5QW5pbWF0aW9uKiBj
YUFuaW1hdGlvbjsKIAorICAgICAgICAvLyBDQSBhcHBsaWVzIGFuaW1hdGlvbnMgaW4gcmV2ZXJz
ZSBvcmRlciAoPHJkYXI6Ly9wcm9ibGVtLzcwOTU2Mzg+KSBzbyB3ZSBuZWVkIHRoZSBsYXN0IG9u
ZSB3ZSBhZGQgKHBlciBwcm9wZXJ0eSkKKyAgICAgICAgLy8gdG8gYmUgbm9uLWFkZGl0aXZlLgor
ICAgICAgICBib29sIGFkZGl0aXZlID0gYW5pbWF0aW9uSW5kZXggPCAobnVtQW5pbWF0aW9ucyAt
IDEpOwogICAgICAgICBpZiAoaXNLZXlmcmFtZSkgewotICAgICAgICAgICAgUmV0YWluUHRyPE5T
TXV0YWJsZUFycmF5PiB0aW1lc0FycmF5KEFkb3B0TlMsIFtbTlNNdXRhYmxlQXJyYXkgYWxsb2Nd
IGluaXRdKTsKLSAgICAgICAgICAgIFJldGFpblB0cjxOU011dGFibGVBcnJheT4gdmFsQXJyYXko
QWRvcHROUywgW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdF0pOwotICAgICAgICAgICAgUmV0
YWluUHRyPE5TTXV0YWJsZUFycmF5PiB0ZkFycmF5KEFkb3B0TlMsIFtbTlNNdXRhYmxlQXJyYXkg
YWxsb2NdIGluaXRdKTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgLy8gSXRlcmF0ZSB0aHJv
dWdoIHRoZSBrZXlmcmFtZXMsIGJ1aWxkaW5nIGFycmF5cyBmb3IgdGhlIGFuaW1hdGlvbi4KLSAg
ICAgICAgICAgIGZvciAoVmVjdG9yPFRyYW5zZm9ybVZhbHVlPjo6Y29uc3RfaXRlcmF0b3IgaXQg
PSB2YWx1ZUxpc3QudmFsdWVzKCkuYmVnaW4oKTsgaXQgIT0gdmFsdWVMaXN0LnZhbHVlcygpLmVu
ZCgpOyArK2l0KSB7Ci0gICAgICAgICAgICAgICAgY29uc3QgVHJhbnNmb3JtVmFsdWUmIGN1clZh
bHVlID0gKCppdCk7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgLy8gZmlsbCBp
biB0aGUga2V5IHRpbWUgYW5kIHRpbWluZyBmdW5jdGlvbgotICAgICAgICAgICAgICAgIFt0aW1l
c0FycmF5LmdldCgpIGFkZE9iamVjdDpbTlNOdW1iZXIgbnVtYmVyV2l0aEZsb2F0OmN1clZhbHVl
LmtleSgpXV07Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgY29uc3QgVGltaW5n
RnVuY3Rpb24qIHRmID0gMDsKLSAgICAgICAgICAgICAgICBpZiAoY3VyVmFsdWUudGltaW5nRnVu
Y3Rpb24oKSkKLSAgICAgICAgICAgICAgICAgICAgdGYgPSBjdXJWYWx1ZS50aW1pbmdGdW5jdGlv
bigpOwotICAgICAgICAgICAgICAgIGVsc2UgaWYgKGFuaW0tPmlzVGltaW5nRnVuY3Rpb25TZXQo
KSkKLSAgICAgICAgICAgICAgICAgICAgdGYgPSAmYW5pbS0+dGltaW5nRnVuY3Rpb24oKTsKLSAg
ICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBDQU1lZGlhVGltaW5nRnVuY3Rpb24qIHRp
bWluZ0Z1bmN0aW9uID0gZ2V0Q0FNZWRpYVRpbWluZ0Z1bmN0aW9uKHRmID8gKnRmIDogVGltaW5n
RnVuY3Rpb24oTGluZWFyVGltaW5nRnVuY3Rpb24pKTsKLSAgICAgICAgICAgICAgICBbdGZBcnJh
eS5nZXQoKSBhZGRPYmplY3Q6dGltaW5nRnVuY3Rpb25dOwotICAgICAgICAgICAgICAgIAotICAg
ICAgICAgICAgICAgIC8vIGZpbGwgaW4gdGhlIGZ1bmN0aW9uCi0gICAgICAgICAgICAgICAgaWYg
KGlzTWF0cml4QW5pbWF0aW9uKSB7Ci0gICAgICAgICAgICAgICAgICAgIFRyYW5zZm9ybWF0aW9u
TWF0cml4IHQ7Ci0gICAgICAgICAgICAgICAgICAgIGN1clZhbHVlLnZhbHVlKCktPmFwcGx5KHNp
emUsIHQpOwotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgLy8gSWYg
YW55IG1hdHJpeCBpcyBzaW5ndWxhciwgQ0Egd29uJ3QgYW5pbWF0ZSBpdCBjb3JyZWN0bHkuIFNv
IGZhbGwgYmFjayB0byBzb2Z0d2FyZSBhbmltYXRpb24KLSAgICAgICAgICAgICAgICAgICAgaWYg
KCF0LmlzSW52ZXJ0aWJsZSgpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzdWNjZXNzID0g
ZmFsc2U7Ci0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgQ0FUcmFuc2Zv
cm0zRCBjYXQ7Ci0gICAgICAgICAgICAgICAgICAgIGNvcHlUcmFuc2Zvcm0oY2F0LCB0KTsKLSAg
ICAgICAgICAgICAgICAgICAgW3ZhbEFycmF5LmdldCgpIGFkZE9iamVjdDpbTlNWYWx1ZSB2YWx1
ZVdpdGhDQVRyYW5zZm9ybTNEOmNhdF1dOwotICAgICAgICAgICAgICAgIH0gZWxzZQotICAgICAg
ICAgICAgICAgICAgICBbdmFsQXJyYXkuZ2V0KCkgYWRkT2JqZWN0OmdldFRyYW5zZm9ybUZ1bmN0
aW9uVmFsdWUoY3VyVmFsdWUsIGZ1bmN0aW9uSW5kZXgsIHNpemUsIG9wVHlwZSldOwotICAgICAg
ICAgICAgfQotICAgICAgICAgICAgCi0gICAgICAgICAgICBpZiAoc3VjY2VzcykgewotICAgICAg
ICAgICAgICAgIC8vIFdlIHRvc3MgdGhlIGxhc3QgdGZBcnJheSB2YWx1ZSBiZWNhdXNlIGl0IGhh
cyB0byBiZSBvbmUgc2hvcnRlciB0aGFuIHRoZSBvdGhlcnMuCi0gICAgICAgICAgICAgICAgW3Rm
QXJyYXkuZ2V0KCkgcmVtb3ZlTGFzdE9iamVjdF07Ci0gICAgICAgICAgICAKLSAgICAgICAgICAg
ICAgICBzZXRLZXlmcmFtZUFuaW1hdGlvbihBbmltYXRlZFByb3BlcnR5V2Via2l0VHJhbnNmb3Jt
LCBvcFR5cGUsIGZ1bmN0aW9uSW5kZXgsIHRpbWVzQXJyYXkuZ2V0KCksIHZhbEFycmF5LmdldCgp
LCB0ZkFycmF5LmdldCgpLCBpc1RyYW5zaXRpb24sIGFuaW0sIGJlZ2luVGltZSk7Ci0gICAgICAg
ICAgICB9CisgICAgICAgICAgICBDQUtleWZyYW1lQW5pbWF0aW9uKiBrZXlmcmFtZUFuaW0gPSBj
cmVhdGVLZXlmcmFtZUFuaW1hdGlvbihhbmltYXRpb24sIHZhbHVlTGlzdC5wcm9wZXJ0eSgpLCBh
ZGRpdGl2ZSk7CisgICAgICAgICAgICB2YWxpZE1hdHJpY2VzID0gc2V0VHJhbnNmb3JtQW5pbWF0
aW9uS2V5ZnJhbWVzKHZhbHVlTGlzdCwgYW5pbWF0aW9uLCBrZXlmcmFtZUFuaW0sIGFuaW1hdGlv
bkluZGV4LCB0cmFuc2Zvcm1PcCwgaXNNYXRyaXhBbmltYXRpb24sIGJveFNpemUpOworICAgICAg
ICAgICAgY2FBbmltYXRpb24gPSBrZXlmcmFtZUFuaW07CiAgICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICAvLyBJcyBhIHRyYW5zaXRpb24KLSAgICAgICAgICAgIGlkIGZyb21WYWx1ZSA9IDA7
Ci0gICAgICAgICAgICBpZCB0b1ZhbHVlID0gMDsKLSAgICAgICAgICAgIAotICAgICAgICAgICAg
aWYgKGlzTWF0cml4QW5pbWF0aW9uKSB7Ci0gICAgICAgICAgICAgICAgVHJhbnNmb3JtYXRpb25N
YXRyaXggZnJvbXQsIHRvdDsKLSAgICAgICAgICAgICAgICB2YWx1ZUxpc3QuYXQoMCkudmFsdWUo
KS0+YXBwbHkoc2l6ZSwgZnJvbXQpOwotICAgICAgICAgICAgICAgIHZhbHVlTGlzdC5hdCgxKS52
YWx1ZSgpLT5hcHBseShzaXplLCB0b3QpOwotCi0gICAgICAgICAgICAgICAgLy8gSWYgYW55IG1h
dHJpeCBpcyBzaW5ndWxhciwgQ0Egd29uJ3QgYW5pbWF0ZSBpdCBjb3JyZWN0bHkuIFNvIGZhbGwg
YmFjayB0byBzb2Z0d2FyZSBhbmltYXRpb24KLSAgICAgICAgICAgICAgICBpZiAoIWZyb210Lmlz
SW52ZXJ0aWJsZSgpIHx8ICF0b3QuaXNJbnZlcnRpYmxlKCkpCi0gICAgICAgICAgICAgICAgICAg
IHN1Y2Nlc3MgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAg
ICAgICAgQ0FUcmFuc2Zvcm0zRCBjYXQ7Ci0gICAgICAgICAgICAgICAgICAgIGNvcHlUcmFuc2Zv
cm0oY2F0LCBmcm9tdCk7Ci0gICAgICAgICAgICAgICAgICAgIGZyb21WYWx1ZSA9IFtOU1ZhbHVl
IHZhbHVlV2l0aENBVHJhbnNmb3JtM0Q6Y2F0XTsKLSAgICAgICAgICAgICAgICAgICAgY29weVRy
YW5zZm9ybShjYXQsIHRvdCk7Ci0gICAgICAgICAgICAgICAgICAgIHRvVmFsdWUgPSBbTlNWYWx1
ZSB2YWx1ZVdpdGhDQVRyYW5zZm9ybTNEOmNhdF07Ci0gICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBmcm9tVmFsdWUgPSBnZXRUcmFuc2Zvcm1G
dW5jdGlvblZhbHVlKHZhbHVlTGlzdC5hdCgwKSwgZnVuY3Rpb25JbmRleCwgc2l6ZSwgb3BUeXBl
KTsKLSAgICAgICAgICAgICAgICB0b1ZhbHVlID0gZ2V0VHJhbnNmb3JtRnVuY3Rpb25WYWx1ZSh2
YWx1ZUxpc3QuYXQoMSksIGZ1bmN0aW9uSW5kZXgsIHNpemUsIG9wVHlwZSk7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGlmIChzdWNjZXNzKQotICAgICAgICAgICAg
ICAgIHNldEJhc2ljQW5pbWF0aW9uKEFuaW1hdGVkUHJvcGVydHlXZWJraXRUcmFuc2Zvcm0sIG9w
VHlwZSwgZnVuY3Rpb25JbmRleCwgZnJvbVZhbHVlLCB0b1ZhbHVlLCBpc1RyYW5zaXRpb24sIGFu
aW0sIGJlZ2luVGltZSk7CisgICAgICAgICAgICBDQUJhc2ljQW5pbWF0aW9uKiBiYXNpY0FuaW0g
PSBjcmVhdGVCYXNpY0FuaW1hdGlvbihhbmltYXRpb24sIHZhbHVlTGlzdC5wcm9wZXJ0eSgpLCBh
ZGRpdGl2ZSk7CisgICAgICAgICAgICB2YWxpZE1hdHJpY2VzID0gc2V0VHJhbnNmb3JtQW5pbWF0
aW9uRW5kcG9pbnRzKHZhbHVlTGlzdCwgYW5pbWF0aW9uLCBiYXNpY0FuaW0sIGFuaW1hdGlvbklu
ZGV4LCB0cmFuc2Zvcm1PcCwgaXNNYXRyaXhBbmltYXRpb24sIGJveFNpemUpOworICAgICAgICAg
ICAgY2FBbmltYXRpb24gPSBiYXNpY0FuaW07CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAg
IGlmIChpc01hdHJpeEFuaW1hdGlvbikKKyAgICAgICAgaWYgKCF2YWxpZE1hdHJpY2VzKQogICAg
ICAgICAgICAgYnJlYWs7CisgICAgCisgICAgICAgIG1fdW5jb21pdHRlZEFuaW1hdGlvbnMuYXBw
ZW5kKExheWVyQW5pbWF0aW9uKGNhQW5pbWF0aW9uLCBrZXlmcmFtZXNOYW1lLCB2YWx1ZUxpc3Qu
cHJvcGVydHkoKSwgYW5pbWF0aW9uSW5kZXgsIGJlZ2luVGltZSkpOwogICAgIH0KIAotICAgIEVO
RF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKLSAgICByZXR1cm4gc3VjY2VzczsKKyAgICBFTkRfQkxP
Q0tfT0JKQ19FWENFUFRJT05TOworCisgICAgcmV0dXJuIHZhbGlkTWF0cmljZXM7CiB9CiAKLWJv
b2wgR3JhcGhpY3NMYXllckNBOjphbmltYXRlRmxvYXQoQW5pbWF0ZWRQcm9wZXJ0eUlEIHByb3Bl
cnR5LCBjb25zdCBGbG9hdFZhbHVlTGlzdCYgdmFsdWVMaXN0LCBjb25zdCBBbmltYXRpb24qIGFu
aW1hdGlvbiwgZG91YmxlIGJlZ2luVGltZSkKK0NBQmFzaWNBbmltYXRpb24qIEdyYXBoaWNzTGF5
ZXJDQTo6Y3JlYXRlQmFzaWNBbmltYXRpb24oY29uc3QgQW5pbWF0aW9uKiBhbmltLCBBbmltYXRl
ZFByb3BlcnR5SUQgcHJvcGVydHksIGJvb2wgYWRkaXRpdmUpCiB7Ci0gICAgaWYgKGZvcmNlU29m
dHdhcmVBbmltYXRpb24oKSB8fCB2YWx1ZUxpc3Quc2l6ZSgpIDwgMgotI2lmICFIQVZFX01PREVS
Tl9RVUFSVFpDT1JFCi0gICAgICAgIC8vIE9sZGVyIHZlcnNpb25zIG9mIFF1YXJ0ekNvcmUgZG8g
bm90IGhhbmRsZSBvcGFjaXR5IGluIHRyYW5zZm9ybSBsYXllcnMgcHJvcGVybHkuIFNvIHdlIHdp
bGwKLSAgICAgICAgLy8gYWx3YXlzIGRvIHNvZnR3YXJlIGFuaW1hdGlvbiBpbiB0aGF0IGNhc2UK
LSAgICAgICAgfHwgcHJvcGVydHkgPT0gQW5pbWF0ZWRQcm9wZXJ0eU9wYWNpdHkKLSNlbmRpZgot
ICAgICkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAKLSAgICAvLyBpZiB0aGVyZSBp
cyBhbHJlYWR5IGlzIGFuIGFuaW1hdGlvbiBmb3IgdGhpcyBwcm9wZXJ0eSBhbmQgaXQgaGFzbid0
IGNoYW5nZWQsIGlnbm9yZSBpdC4KLSAgICBpbnQgaSA9IGZpbmRBbmltYXRpb25FbnRyeShwcm9w
ZXJ0eSwgMCk7Ci0gICAgaWYgKGkgPj0gMCAmJiAqbV9hbmltYXRpb25zW2ldLmFuaW1hdGlvbigp
ID09ICphbmltYXRpb24pIHsKLSAgICAgICAgbV9hbmltYXRpb25zW2ldLnNldElzQ3VycmVudCgp
OwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgaWYgKHZhbHVlTGlzdC5zaXpl
KCkgPT0gMikgewotICAgICAgICBmbG9hdCBmcm9tVmFsID0gdmFsdWVMaXN0LmF0KDApLnZhbHVl
KCk7Ci0gICAgICAgIGZsb2F0IHRvVmFsICAgPSB2YWx1ZUxpc3QuYXQoMSkudmFsdWUoKTsKLSAg
ICAgICAgaWYgKGlzbmFuKHRvVmFsKSAmJiBpc25hbihmcm9tVmFsKSkKLSAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICAKLSAgICAgICAgLy8gaW5pdGlhbGl6ZSB0aGUgcHJvcGVydHkgdG8g
MAotICAgICAgICBbYW5pbWF0ZWRMYXllcihwcm9wZXJ0eSkgc2V0VmFsdWU6MCBmb3JLZXlQYXRo
OnByb3BlcnR5SWRUb1N0cmluZyhwcm9wZXJ0eSldOwotICAgICAgICBzZXRCYXNpY0FuaW1hdGlv
bihwcm9wZXJ0eSwgVHJhbnNmb3JtT3BlcmF0aW9uOjpOT05FLCAwLCBpc25hbihmcm9tVmFsKSA/
IG5pbCA6IFtOU051bWJlciBudW1iZXJXaXRoRmxvYXQ6ZnJvbVZhbF0sIGlzbmFuKHRvVmFsKSA/
IG5pbCA6IFtOU051bWJlciBudW1iZXJXaXRoRmxvYXQ6dG9WYWxdLCBmYWxzZSwgYW5pbWF0aW9u
LCBiZWdpblRpbWUpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICBCRUdJTl9C
TE9DS19PQkpDX0VYQ0VQVElPTlMKLSAgICAKLSAgICBSZXRhaW5QdHI8TlNNdXRhYmxlQXJyYXk+
IHRpbWVzQXJyYXkoQWRvcHROUywgW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdF0pOwotICAg
IFJldGFpblB0cjxOU011dGFibGVBcnJheT4gdmFsQXJyYXkoQWRvcHROUywgW1tOU011dGFibGVB
cnJheSBhbGxvY10gaW5pdF0pOwotICAgIFJldGFpblB0cjxOU011dGFibGVBcnJheT4gdGZBcnJh
eShBZG9wdE5TLCBbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0XSk7Ci0KLSAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgdmFsdWVMaXN0LnZhbHVlcygpLnNpemUoKTsgKytpKSB7Ci0gICAg
ICAgIGNvbnN0IEZsb2F0VmFsdWUmIGN1clZhbHVlID0gdmFsdWVMaXN0LnZhbHVlcygpW2ldOwot
ICAgICAgICBbdGltZXNBcnJheS5nZXQoKSBhZGRPYmplY3Q6W05TTnVtYmVyIG51bWJlcldpdGhG
bG9hdDpjdXJWYWx1ZS5rZXkoKV1dOwotICAgICAgICBbdmFsQXJyYXkuZ2V0KCkgYWRkT2JqZWN0
OltOU051bWJlciBudW1iZXJXaXRoRmxvYXQ6Y3VyVmFsdWUudmFsdWUoKV1dOwotCi0gICAgICAg
IGNvbnN0IFRpbWluZ0Z1bmN0aW9uKiB0ZiA9IDA7Ci0gICAgICAgIGlmIChjdXJWYWx1ZS50aW1p
bmdGdW5jdGlvbigpKQotICAgICAgICAgICAgdGYgPSBjdXJWYWx1ZS50aW1pbmdGdW5jdGlvbigp
OwotICAgICAgICBlbHNlIGlmIChhbmltYXRpb24tPmlzVGltaW5nRnVuY3Rpb25TZXQoKSkKLSAg
ICAgICAgICAgIHRmID0gJmFuaW1hdGlvbi0+dGltaW5nRnVuY3Rpb24oKTsKLQotICAgICAgICBD
QU1lZGlhVGltaW5nRnVuY3Rpb24qIHRpbWluZ0Z1bmN0aW9uID0gZ2V0Q0FNZWRpYVRpbWluZ0Z1
bmN0aW9uKHRmID8gKnRmIDogVGltaW5nRnVuY3Rpb24oKSk7Ci0gICAgICAgIFt0ZkFycmF5Lmdl
dCgpIGFkZE9iamVjdDp0aW1pbmdGdW5jdGlvbl07Ci0gICAgfQotICAgIAotICAgIC8vIFdlIHRv
c3MgdGhlIGxhc3QgdGZBcnJheSB2YWx1ZSBiZWNhdXNlIGl0IGhhcyB0byBvbmUgc2hvcnRlciB0
aGFuIHRoZSBvdGhlcnMuCi0gICAgW3RmQXJyYXkuZ2V0KCkgcmVtb3ZlTGFzdE9iamVjdF07Ci0g
ICAgCi0gICAgLy8gSW5pdGlhbGl6ZSB0aGUgcHJvcGVydHkgdG8gMC4KLSAgICBbYW5pbWF0ZWRM
YXllcihwcm9wZXJ0eSkgc2V0VmFsdWU6MCBmb3JLZXlQYXRoOnByb3BlcnR5SWRUb1N0cmluZyhw
cm9wZXJ0eSldOwotICAgIC8vIFRoZW4gc2V0IHRoZSBhbmltYXRpb24uCi0gICAgc2V0S2V5ZnJh
bWVBbmltYXRpb24ocHJvcGVydHksIFRyYW5zZm9ybU9wZXJhdGlvbjo6Tk9ORSwgMCwgdGltZXNB
cnJheS5nZXQoKSwgdmFsQXJyYXkuZ2V0KCksIHRmQXJyYXkuZ2V0KCksIGZhbHNlLCBhbmltYXRp
b24sIGJlZ2luVGltZSk7CisgICAgQ0FCYXNpY0FuaW1hdGlvbiogYmFzaWNBbmltID0gW0NBQmFz
aWNBbmltYXRpb24gYW5pbWF0aW9uV2l0aEtleVBhdGg6cHJvcGVydHlJZFRvU3RyaW5nKHByb3Bl
cnR5KV07CisgICAgc2V0dXBBbmltYXRpb24oYmFzaWNBbmltLCBhbmltLCBhZGRpdGl2ZSk7Cisg
ICAgcmV0dXJuIGJhc2ljQW5pbTsKK30KIAotICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMK
LSAgICByZXR1cm4gdHJ1ZTsKK0NBS2V5ZnJhbWVBbmltYXRpb24qIEdyYXBoaWNzTGF5ZXJDQTo6
Y3JlYXRlS2V5ZnJhbWVBbmltYXRpb24oY29uc3QgQW5pbWF0aW9uKiBhbmltLCBBbmltYXRlZFBy
b3BlcnR5SUQgcHJvcGVydHksIGJvb2wgYWRkaXRpdmUpCit7CisgICAgQ0FLZXlmcmFtZUFuaW1h
dGlvbioga2V5ZnJhbWVBbmltID0gW0NBS2V5ZnJhbWVBbmltYXRpb24gYW5pbWF0aW9uV2l0aEtl
eVBhdGg6cHJvcGVydHlJZFRvU3RyaW5nKHByb3BlcnR5KV07CisgICAgc2V0dXBBbmltYXRpb24o
a2V5ZnJhbWVBbmltLCBhbmltLCBhZGRpdGl2ZSk7CisgICAgcmV0dXJuIGtleWZyYW1lQW5pbTsK
IH0KIAotdm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldENvbnRlbnRzVG9JbWFnZShJbWFnZSogaW1h
Z2UpCit2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6c2V0dXBBbmltYXRpb24oQ0FQcm9wZXJ0eUFuaW1h
dGlvbiogcHJvcGVydHlBbmltLCBjb25zdCBBbmltYXRpb24qIGFuaW0sIGJvb2wgYWRkaXRpdmUp
CiB7Ci0gICAgaWYgKGltYWdlKSB7Ci0gICAgICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9O
UwotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoIW1fY29udGVudHNMYXllci5nZXQoKSkgewot
ICAgICAgICAgICAgICAgIFdlYkxheWVyKiBpbWFnZUxheWVyID0gW1dlYkxheWVyIGxheWVyXTsK
LSNpZm5kZWYgTkRFQlVHCi0gICAgICAgICAgICAgICAgW2ltYWdlTGF5ZXIgc2V0TmFtZTpAIklt
YWdlIExheWVyIl07Ci0jZW5kaWYKLSAgICAgICAgICAgICAgICBzZXRDb250ZW50c0xheWVyKGlt
YWdlTGF5ZXIpOwotICAgICAgICAgICAgfQorICAgIGRvdWJsZSBkdXJhdGlvbiA9IGFuaW0tPmR1
cmF0aW9uKCk7CisgICAgaWYgKGR1cmF0aW9uIDw9IDApCisgICAgICAgIGR1cmF0aW9uID0gY0Fu
aW1hdGlvbkFsbW9zdFplcm9EdXJhdGlvbjsKIAotICAgICAgICAgICAgLy8gRklYTUU6IG1heWJl
IG9ubHkgZG8gdHJpbGluZWFyIGlmIHRoZSBpbWFnZSBpcyBiZWluZyBzY2FsZWQgZG93biwKLSAg
ICAgICAgICAgIC8vIGJ1dCB0aGVuIHdoYXQgaWYgdGhlIGxheWVyIHNpemUgY2hhbmdlcz8KLSNp
ZiAhZGVmaW5lZChCVUlMRElOR19PTl9USUdFUikgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVP
UEFSRCkKLSAgICAgICAgICAgIFttX2NvbnRlbnRzTGF5ZXIuZ2V0KCkgc2V0TWluaWZpY2F0aW9u
RmlsdGVyOmtDQUZpbHRlclRyaWxpbmVhcl07Ci0jZW5kaWYKLSAgICAgICAgICAgIFJldGFpblB0
cjxDR0ltYWdlUmVmPiB0aGVJbWFnZShpbWFnZS0+bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUo
KSk7Ci0gICAgICAgICAgICBDR0NvbG9yU3BhY2VSZWYgY29sb3JTcGFjZSA9IENHSW1hZ2VHZXRD
b2xvclNwYWNlKHRoZUltYWdlLmdldCgpKTsKLQotICAgICAgICAgICAgc3RhdGljIENHQ29sb3JT
cGFjZVJlZiBkZXZpY2VSR0IgPSBDR0NvbG9yU3BhY2VDcmVhdGVEZXZpY2VSR0IoKTsKLSAgICAg
ICAgICAgIGlmIChDRkVxdWFsKGNvbG9yU3BhY2UsIGRldmljZVJHQikpIHsKLSAgICAgICAgICAg
ICAgICAvLyBDb3JlR3JhcGhpY3MgcmVuZGVycyBpbWFnZXMgdGFnZ2VkIHdpdGggRGV2aWNlUkdC
IHVzaW5nIEdlbmVyaWNSR0IuIFdoZW4gd2UgaGFuZCBzdWNoCi0gICAgICAgICAgICAgICAgLy8g
aW1hZ2VzIHRvIENBIHdlIG5lZWQgdG8gdGFnIHRoZW0gc2ltaWxhcmx5IHNvIENBIHJlbmRlcmlu
ZyBtYXRjaGVzIENHIHJlbmRlcmluZy4KLSAgICAgICAgICAgICAgICBzdGF0aWMgQ0dDb2xvclNw
YWNlUmVmIGdlbmVyaWNSR0IgPSBDR0NvbG9yU3BhY2VDcmVhdGVXaXRoTmFtZShrQ0dDb2xvclNw
YWNlR2VuZXJpY1JHQik7Ci0gICAgICAgICAgICAgICAgdGhlSW1hZ2UuYWRvcHRDRihDR0ltYWdl
Q3JlYXRlQ29weVdpdGhDb2xvclNwYWNlKHRoZUltYWdlLmdldCgpLCBnZW5lcmljUkdCKSk7Ci0g
ICAgICAgICAgICB9CisgICAgZmxvYXQgcmVwZWF0Q291bnQgPSBhbmltLT5pdGVyYXRpb25Db3Vu
dCgpOworICAgIGlmIChyZXBlYXRDb3VudCA9PSBBbmltYXRpb246Okl0ZXJhdGlvbkNvdW50SW5m
aW5pdGUpCisgICAgICAgIHJlcGVhdENvdW50ID0gRkxUX01BWDsKKyAgICBlbHNlIGlmIChhbmlt
LT5kaXJlY3Rpb24oKSA9PSBBbmltYXRpb246OkFuaW1hdGlvbkRpcmVjdGlvbkFsdGVybmF0ZSkK
KyAgICAgICAgcmVwZWF0Q291bnQgLz0gMjsKIAotICAgICAgICAgICAgW21fY29udGVudHNMYXll
ci5nZXQoKSBzZXRDb250ZW50czooaWQpdGhlSW1hZ2UuZ2V0KCldOwotICAgICAgICB9Ci0gICAg
ICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKLSAgICB9IGVsc2UKLSAgICAgICAgc2V0Q29u
dGVudHNMYXllcigwKTsKKyAgICBbcHJvcGVydHlBbmltIHNldER1cmF0aW9uOmR1cmF0aW9uXTsK
KyAgICBbcHJvcGVydHlBbmltIHNldFJlcGVhdENvdW50OnJlcGVhdENvdW50XTsKKyAgICBbcHJv
cGVydHlBbmltIHNldEF1dG9yZXZlcnNlczphbmltLT5kaXJlY3Rpb24oKV07CisgICAgW3Byb3Bl
cnR5QW5pbSBzZXRSZW1vdmVkT25Db21wbGV0aW9uOk5PXTsKKyAgICBbcHJvcGVydHlBbmltIHNl
dEFkZGl0aXZlOmFkZGl0aXZlXTsKKyAgICBbcHJvcGVydHlBbmltIHNldEZpbGxNb2RlOkAiZXh0
ZW5kZWQiXTsKIAotICAgIG1fY29udGVudExheWVyRm9ySW1hZ2VPclZpZGVvID0gKGltYWdlICE9
IDApOworICAgIFtwcm9wZXJ0eUFuaW0gc2V0RGVsZWdhdGU6bV9hbmltYXRpb25EZWxlZ2F0ZS5n
ZXQoKV07CiB9CiAKLXZvaWQgR3JhcGhpY3NMYXllckNBOjpzZXRDb250ZW50c1RvVmlkZW8oUGxh
dGZvcm1MYXllciogdmlkZW9MYXllcikKK0NBTWVkaWFUaW1pbmdGdW5jdGlvbiogR3JhcGhpY3NM
YXllckNBOjp0aW1pbmdGdW5jdGlvbkZvckFuaW1hdGlvblZhbHVlKGNvbnN0IEFuaW1hdGlvblZh
bHVlKiBhbmltVmFsdWUsIGNvbnN0IEFuaW1hdGlvbiogYW5pbSkKIHsKLSAgICBzZXRDb250ZW50
c0xheWVyKHZpZGVvTGF5ZXIpOwotICAgIG1fY29udGVudExheWVyRm9ySW1hZ2VPclZpZGVvID0g
KHZpZGVvTGF5ZXIgIT0gMCk7Ci19CisgICAgY29uc3QgVGltaW5nRnVuY3Rpb24qIHRmID0gMDsK
KyAgICBpZiAoYW5pbVZhbHVlLT50aW1pbmdGdW5jdGlvbigpKQorICAgICAgICB0ZiA9IGFuaW1W
YWx1ZS0+dGltaW5nRnVuY3Rpb24oKTsKKyAgICBlbHNlIGlmIChhbmltLT5pc1RpbWluZ0Z1bmN0
aW9uU2V0KCkpCisgICAgICAgIHRmID0gJmFuaW0tPnRpbWluZ0Z1bmN0aW9uKCk7CiAKLXZvaWQg
R3JhcGhpY3NMYXllckNBOjpjbGVhckNvbnRlbnRzKCkKLXsKLSAgICBpZiAobV9jb250ZW50TGF5
ZXJGb3JJbWFnZU9yVmlkZW8pIHsKLSAgICAgICAgc2V0Q29udGVudHNMYXllcigwKTsKLSAgICAg
ICAgbV9jb250ZW50TGF5ZXJGb3JJbWFnZU9yVmlkZW8gPSBmYWxzZTsKLSAgICB9CisgICAgcmV0
dXJuIGdldENBTWVkaWFUaW1pbmdGdW5jdGlvbih0ZiA/ICp0ZiA6IFRpbWluZ0Z1bmN0aW9uKCkp
OwogfQogCi12b2lkIEdyYXBoaWNzTGF5ZXJDQTo6dXBkYXRlQ29udGVudHNSZWN0KCkKK2Jvb2wg
R3JhcGhpY3NMYXllckNBOjpzZXRBbmltYXRpb25FbmRwb2ludHMoY29uc3QgS2V5ZnJhbWVWYWx1
ZUxpc3QmIHZhbHVlTGlzdCwgY29uc3QgQW5pbWF0aW9uKiBhbmltLCBDQUJhc2ljQW5pbWF0aW9u
KiBiYXNpY0FuaW0pCiB7Ci0gICAgaWYgKG1fY2xpZW50ICYmIG1fY29udGVudHNMYXllcikgewot
ICAgICAgICBJbnRSZWN0IGNvbnRlbnRSZWN0ID0gbV9jbGllbnQtPmNvbnRlbnRzQm94KHRoaXMp
OwotICAgICAgICAKLSAgICAgICAgQ0dQb2ludCBwb2ludCA9IENHUG9pbnRNYWtlKGNvbnRlbnRS
ZWN0LngoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRSZWN0
LnkoKSk7Ci0gICAgICAgIENHUmVjdCByZWN0ID0gQ0dSZWN0TWFrZSgwLjBmLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMC4wZiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnRlbnRSZWN0LndpZHRoKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb250ZW50UmVjdC5oZWlnaHQoKSk7Ci0KLSAgICAgICAgQkVHSU5fQkxPQ0tfT0JKQ19F
WENFUFRJT05TCi0gICAgICAgIFttX2NvbnRlbnRzTGF5ZXIuZ2V0KCkgc2V0UG9zaXRpb246cG9p
bnRdOwotICAgICAgICBbbV9jb250ZW50c0xheWVyLmdldCgpIHNldEJvdW5kczpyZWN0XTsKLSAg
ICAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwotICAgIH0KLX0KKyAgICBpZCBmcm9tVmFs
dWUgPSBuaWw7CisgICAgaWQgdG9WYWx1ZSA9IG5pbDsKIAotdm9pZCBHcmFwaGljc0xheWVyQ0E6
OnNldEdlb21ldHJ5T3JpZW50YXRpb24oQ29tcG9zaXRpbmdDb29yZGluYXRlc09yaWVudGF0aW9u
IG9yaWVudGF0aW9uKQotewotICAgIHN3aXRjaCAob3JpZW50YXRpb24pIHsKLSAgICBjYXNlIENv
bXBvc2l0aW5nQ29vcmRpbmF0ZXNUb3BEb3duOgotI2lmIEhBVkVfTU9ERVJOX1FVQVJUWkNPUkUK
LSAgICAgICAgW21fbGF5ZXIuZ2V0KCkgc2V0R2VvbWV0cnlGbGlwcGVkOk5PXTsKLSNlbHNlCi0g
ICAgICAgIHNldENoaWxkcmVuVHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9uTWF0cml4KCkpOwotI2Vu
ZGlmCi0gICAgICAgIGJyZWFrOwotICAgICAgICAKLSAgICBjYXNlIENvbXBvc2l0aW5nQ29vcmRp
bmF0ZXNCb3R0b21VcDoKLSNpZiBIQVZFX01PREVSTl9RVUFSVFpDT1JFCi0gICAgICAgIFttX2xh
eWVyLmdldCgpIHNldEdlb21ldHJ5RmxpcHBlZDpZRVNdOwotI2Vsc2UKLSAgICAgICAgc2V0Q2hp
bGRyZW5UcmFuc2Zvcm0oZmxpcFRyYW5zZm9ybSgpKTsKLSNlbmRpZgotICAgICAgICBicmVhazsK
KyAgICBzd2l0Y2ggKHZhbHVlTGlzdC5wcm9wZXJ0eSgpKSB7CisgICAgICAgIGNhc2UgQW5pbWF0
ZWRQcm9wZXJ0eU9wYWNpdHk6IHsKKyAgICAgICAgICAgIGNvbnN0IEZsb2F0QW5pbWF0aW9uVmFs
dWUqIHN0YXJ0VmFsID0gc3RhdGljX2Nhc3Q8Y29uc3QgRmxvYXRBbmltYXRpb25WYWx1ZSo+KHZh
bHVlTGlzdC5hdCgwKSk7CisgICAgICAgICAgICBjb25zdCBGbG9hdEFuaW1hdGlvblZhbHVlKiBl
bmRWYWwgPSBzdGF0aWNfY2FzdDxjb25zdCBGbG9hdEFuaW1hdGlvblZhbHVlKj4odmFsdWVMaXN0
LmF0KDEpKTsKKyAgICAgICAgICAgIGZyb21WYWx1ZSA9IFtOU051bWJlciBudW1iZXJXaXRoRmxv
YXQ6c3RhcnRWYWwtPnZhbHVlKCldOworICAgICAgICAgICAgdG9WYWx1ZSA9IFtOU051bWJlciBu
dW1iZXJXaXRoRmxvYXQ6ZW5kVmFsLT52YWx1ZSgpXTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICB9CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsgICAgIC8vIHdlIGRvbid0IGFuaW1hdGUgY29sb3IgeWV0CisgICAgICAgICAgICBicmVhazsK
ICAgICB9Ci19CiAKLUdyYXBoaWNzTGF5ZXJDQTo6Q29tcG9zaXRpbmdDb29yZGluYXRlc09yaWVu
dGF0aW9uIEdyYXBoaWNzTGF5ZXJDQTo6Z2VvbWV0cnlPcmllbnRhdGlvbigpIGNvbnN0Ci17Ci0g
ICAgLy8gQ29yZUFuaW1hdGlvbiBkZWZhdWx0cyB0byBib3R0b20tdXAKLSAgICBib29sIGxheWVy
RmxpcHBlZDsKLSNpZiBIQVZFX01PREVSTl9RVUFSVFpDT1JFCi0gICAgbGF5ZXJGbGlwcGVkID0g
W21fbGF5ZXIuZ2V0KCkgaXNHZW9tZXRyeUZsaXBwZWRdOwotI2Vsc2UKLSAgICBsYXllckZsaXBw
ZWQgPSBjaGlsZHJlblRyYW5zZm9ybSgpLm0yMigpID09IC0xOwotI2VuZGlmCi0gICAgcmV0dXJu
IGxheWVyRmxpcHBlZCA/IENvbXBvc2l0aW5nQ29vcmRpbmF0ZXNCb3R0b21VcCA6IENvbXBvc2l0
aW5nQ29vcmRpbmF0ZXNUb3BEb3duOworICAgIC8vIFRoaXMgY29kZXBhdGggaXMgdXNlZCBmb3Ig
Mi1rZXlmcmFtZSBhbmltYXRpb25zLCBzbyB3ZSBzdGlsbCBuZWVkIHRvIGxvb2sgaW4gdGhlIHN0
YXJ0CisgICAgLy8gZm9yIGEgdGltaW5nIGZ1bmN0aW9uLgorICAgIENBTWVkaWFUaW1pbmdGdW5j
dGlvbiogdGltaW5nRnVuY3Rpb24gPSB0aW1pbmdGdW5jdGlvbkZvckFuaW1hdGlvblZhbHVlKHZh
bHVlTGlzdC5hdCgwKSwgYW5pbSk7CisgICAgW2Jhc2ljQW5pbSBzZXRUaW1pbmdGdW5jdGlvbjp0
aW1pbmdGdW5jdGlvbl07CisKKyAgICBbYmFzaWNBbmltIHNldEZyb21WYWx1ZTpmcm9tVmFsdWVd
OworICAgIFtiYXNpY0FuaW0gc2V0VG9WYWx1ZTp0b1ZhbHVlXTsKKworICAgIHJldHVybiB0cnVl
OwogfQogCi12b2lkIEdyYXBoaWNzTGF5ZXJDQTo6c2V0QmFzaWNBbmltYXRpb24oQW5pbWF0ZWRQ
cm9wZXJ0eUlEIHByb3BlcnR5LCBUcmFuc2Zvcm1PcGVyYXRpb246Ok9wZXJhdGlvblR5cGUgb3Bl
cmF0aW9uVHlwZSwgc2hvcnQgaW5kZXgsIHZvaWQqIGZyb21WYWwsIHZvaWQqIHRvVmFsLCBib29s
IGlzVHJhbnNpdGlvbiwgY29uc3QgQW5pbWF0aW9uKiB0cmFuc2l0aW9uLCBkb3VibGUgYmVnaW5U
aW1lKQorYm9vbCBHcmFwaGljc0xheWVyQ0E6OnNldEFuaW1hdGlvbktleWZyYW1lcyhjb25zdCBL
ZXlmcmFtZVZhbHVlTGlzdCYgdmFsdWVMaXN0LCBjb25zdCBBbmltYXRpb24qIGFuaW0sIENBS2V5
ZnJhbWVBbmltYXRpb24qIGtleWZyYW1lQW5pbSkKIHsKLSAgICBBU1NFUlQoZnJvbVZhbCB8fCB0
b1ZhbCk7CisgICAgUmV0YWluUHRyPE5TTXV0YWJsZUFycmF5PiBrZXlUaW1lcyhBZG9wdE5TLCBb
W05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0XSk7CisgICAgUmV0YWluUHRyPE5TTXV0YWJsZUFy
cmF5PiB2YWx1ZXMoQWRvcHROUywgW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdF0pOworICAg
IFJldGFpblB0cjxOU011dGFibGVBcnJheT4gdGltaW5nRnVuY3Rpb25zKEFkb3B0TlMsIFtbTlNN
dXRhYmxlQXJyYXkgYWxsb2NdIGluaXRdKTsKIAotICAgIFdlYkxheWVyKiBsYXllciA9IGFuaW1h
dGVkTGF5ZXIocHJvcGVydHkpOwotICAgIAotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9O
UwotCi0gICAgLy8gYWRkIGFuIGVudHJ5IGZvciB0aGlzIGFuaW1hdGlvbgotICAgIGFkZEFuaW1h
dGlvbkVudHJ5KHByb3BlcnR5LCBpbmRleCwgaXNUcmFuc2l0aW9uLCB0cmFuc2l0aW9uKTsKKyAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgdmFsdWVMaXN0LnNpemUoKTsgKytpKSB7CisgICAg
ICAgIGNvbnN0IEFuaW1hdGlvblZhbHVlKiBjdXJWYWx1ZSA9IHZhbHVlTGlzdC5hdChpKTsKKyAg
ICAgICAgW2tleVRpbWVzLmdldCgpIGFkZE9iamVjdDpbTlNOdW1iZXIgbnVtYmVyV2l0aEZsb2F0
OmN1clZhbHVlLT5rZXlUaW1lKCldXTsKIAotICAgIFN0cmluZyBrZXlQYXRoID0gcHJvcGVydHlJ
ZFRvU3RyaW5nKHByb3BlcnR5KTsKLSAgICBTdHJpbmcgYW5pbU5hbWUgPSBrZXlQYXRoICsgIl8i
ICsgU3RyaW5nOjpudW1iZXIoaW5kZXgpOworICAgICAgICBzd2l0Y2ggKHZhbHVlTGlzdC5wcm9w
ZXJ0eSgpKSB7CisgICAgICAgICAgICBjYXNlIEFuaW1hdGVkUHJvcGVydHlPcGFjaXR5OiB7Cisg
ICAgICAgICAgICAgICAgY29uc3QgRmxvYXRBbmltYXRpb25WYWx1ZSogZmxvYXRWYWx1ZSA9IHN0
YXRpY19jYXN0PGNvbnN0IEZsb2F0QW5pbWF0aW9uVmFsdWUqPihjdXJWYWx1ZSk7CisgICAgICAg
ICAgICAgICAgW3ZhbHVlcy5nZXQoKSBhZGRPYmplY3Q6W05TTnVtYmVyIG51bWJlcldpdGhGbG9h
dDpmbG9hdFZhbHVlLT52YWx1ZSgpXV07CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOyAgICAgLy8gd2UgZG9uJ3QgYW5pbWF0ZSBjb2xvciB5ZXQKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgfQogCi0gICAgQ0FCYXNpY0FuaW1hdGlvbiogYmFzaWNBbmlt
ID0gW0NBQmFzaWNBbmltYXRpb24gYW5pbWF0aW9uV2l0aEtleVBhdGg6a2V5UGF0aF07CisgICAg
ICAgIENBTWVkaWFUaW1pbmdGdW5jdGlvbiogdGltaW5nRnVuY3Rpb24gPSB0aW1pbmdGdW5jdGlv
bkZvckFuaW1hdGlvblZhbHVlKGN1clZhbHVlLCBhbmltKTsKKyAgICAgICAgW3RpbWluZ0Z1bmN0
aW9ucy5nZXQoKSBhZGRPYmplY3Q6dGltaW5nRnVuY3Rpb25dOworICAgIH0KICAgICAKLSAgICBk
b3VibGUgZHVyYXRpb24gPSB0cmFuc2l0aW9uLT5kdXJhdGlvbigpOwotICAgIGlmIChkdXJhdGlv
biA8PSAwKQotICAgICAgICBkdXJhdGlvbiA9IGNBbmltYXRpb25BbG1vc3RaZXJvRHVyYXRpb247
Ci0gICAgICAgIAotICAgIGZsb2F0IHJlcGVhdENvdW50ID0gdHJhbnNpdGlvbi0+aXRlcmF0aW9u
Q291bnQoKTsKLSAgICBpZiAocmVwZWF0Q291bnQgPT0gQW5pbWF0aW9uOjpJdGVyYXRpb25Db3Vu
dEluZmluaXRlKQotICAgICAgICByZXBlYXRDb3VudCA9IEZMVF9NQVg7Ci0gICAgZWxzZSBpZiAo
dHJhbnNpdGlvbi0+ZGlyZWN0aW9uKCkgPT0gQW5pbWF0aW9uOjpBbmltYXRpb25EaXJlY3Rpb25B
bHRlcm5hdGUpCi0gICAgICAgIHJlcGVhdENvdW50IC89IDI7Ci0gICAgICAgIAotICAgIFtiYXNp
Y0FuaW0gc2V0RHVyYXRpb246ZHVyYXRpb25dOwotICAgIFtiYXNpY0FuaW0gc2V0UmVwZWF0Q291
bnQ6cmVwZWF0Q291bnRdOwotICAgIFtiYXNpY0FuaW0gc2V0QXV0b3JldmVyc2VzOnRyYW5zaXRp
b24tPmRpcmVjdGlvbigpXTsKLSAgICBbYmFzaWNBbmltIHNldFJlbW92ZWRPbkNvbXBsZXRpb246
Tk9dOwotCi0gICAgLy8gTm90ZSB0aGF0IGN1cnJlbnRseSB0cmFuc2Zvcm0gaXMgdGhlIG9ubHkg
cHJvcGVydHkgd2hpY2ggaGFzIGFuaW1hdGlvbnMKLSAgICAvLyB3aXRoIGFuIGluZGV4ID4gMC4K
LSAgICBbYmFzaWNBbmltIHNldEFkZGl0aXZlOnByb3BlcnR5ID09IEFuaW1hdGVkUHJvcGVydHlX
ZWJraXRUcmFuc2Zvcm1dOwotICAgIFtiYXNpY0FuaW0gc2V0RmlsbE1vZGU6QCJleHRlbmRlZCJd
OwotI2lmIEhBVkVfTU9ERVJOX1FVQVJUWkNPUkUKLSAgICBpZiAoTlNTdHJpbmcqIHZhbHVlRnVu
Y3Rpb25OYW1lID0gZ2V0VmFsdWVGdW5jdGlvbk5hbWVGb3JUcmFuc2Zvcm1PcGVyYXRpb24ob3Bl
cmF0aW9uVHlwZSkpCi0gICAgICAgIFtiYXNpY0FuaW0gc2V0VmFsdWVGdW5jdGlvbjpbQ0FWYWx1
ZUZ1bmN0aW9uIGZ1bmN0aW9uV2l0aE5hbWU6dmFsdWVGdW5jdGlvbk5hbWVdXTsKLSNlbHNlCi0g
ICAgVU5VU0VEX1BBUkFNKG9wZXJhdGlvblR5cGUpOwotI2VuZGlmCisgICAgLy8gV2UgdG9zcyB0
aGUgbGFzdCB0ZkFycmF5IHZhbHVlIGJlY2F1c2UgaXQgaGFzIHRvIG9uZSBzaG9ydGVyIHRoYW4g
dGhlIG90aGVycy4KKyAgICBbdGltaW5nRnVuY3Rpb25zLmdldCgpIHJlbW92ZUxhc3RPYmplY3Rd
OworCisgICAgW2tleWZyYW1lQW5pbSBzZXRLZXlUaW1lczprZXlUaW1lcy5nZXQoKV07CisgICAg
W2tleWZyYW1lQW5pbSBzZXRWYWx1ZXM6dmFsdWVzLmdldCgpXTsKKyAgICBba2V5ZnJhbWVBbmlt
IHNldFRpbWluZ0Z1bmN0aW9uczp0aW1pbmdGdW5jdGlvbnMuZ2V0KCldOwogICAgIAotICAgIC8v
IFNldCB0aGUgZGVsZWdhdGUgKGFuZCBwcm9wZXJ0eSB2YWx1ZSkuCi0gICAgaW50IHByb3AgPSBp
c1RyYW5zaXRpb24gPyBwcm9wZXJ0eSA6IEFuaW1hdGVkUHJvcGVydHlJbnZhbGlkOwotICAgIFti
YXNpY0FuaW0gc2V0VmFsdWU6W05TTnVtYmVyIG51bWJlcldpdGhJbnQ6cHJvcF0gZm9yS2V5Oldl
YkFuaW1hdGlvbkNTU1Byb3BlcnR5S2V5XTsKLSAgICBbYmFzaWNBbmltIHNldERlbGVnYXRlOm1f
YW5pbWF0aW9uRGVsZWdhdGUuZ2V0KCldOworICAgIHJldHVybiB0cnVlOworfQogCi0gICAgTlNU
aW1lSW50ZXJ2YWwgYnQgPSBiZWdpblRpbWUgPyBbbGF5ZXIgY29udmVydFRpbWU6Y3VycmVudFRp
bWVUb01lZGlhVGltZShiZWdpblRpbWUpIGZyb21MYXllcjpuaWxdIDogMDsKLSAgICBbYmFzaWNB
bmltIHNldEJlZ2luVGltZTpidF07Citib29sIEdyYXBoaWNzTGF5ZXJDQTo6c2V0VHJhbnNmb3Jt
QW5pbWF0aW9uRW5kcG9pbnRzKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiB2YWx1ZUxpc3QsIGNv
bnN0IEFuaW1hdGlvbiogYW5pbSwgQ0FCYXNpY0FuaW1hdGlvbiogYmFzaWNBbmltLCBpbnQgZnVu
Y3Rpb25JbmRleCwgVHJhbnNmb3JtT3BlcmF0aW9uOjpPcGVyYXRpb25UeXBlIHRyYW5zZm9ybU9w
LCBib29sIGlzTWF0cml4QW5pbWF0aW9uLCBjb25zdCBJbnRTaXplJiBib3hTaXplKQoreworICAg
IGlkIGZyb21WYWx1ZTsKKyAgICBpZCB0b1ZhbHVlOworICAgIAorICAgIEFTU0VSVCh2YWx1ZUxp
c3Quc2l6ZSgpID09IDIpOworICAgIGNvbnN0IFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlKiBzdGFy
dFZhbHVlID0gc3RhdGljX2Nhc3Q8Y29uc3QgVHJhbnNmb3JtQW5pbWF0aW9uVmFsdWUqPih2YWx1
ZUxpc3QuYXQoMCkpOworICAgIGNvbnN0IFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlKiBlbmRWYWx1
ZSA9IHN0YXRpY19jYXN0PGNvbnN0IFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlKj4odmFsdWVMaXN0
LmF0KDEpKTsKICAgICAKLSAgICBpZiAoZnJvbVZhbCkKLSAgICAgICAgW2Jhc2ljQW5pbSBzZXRG
cm9tVmFsdWU6cmVpbnRlcnByZXRfY2FzdDxpZD4oZnJvbVZhbCldOwotICAgIGlmICh0b1ZhbCkK
LSAgICAgICAgW2Jhc2ljQW5pbSBzZXRUb1ZhbHVlOnJlaW50ZXJwcmV0X2Nhc3Q8aWQ+KHRvVmFs
KV07CisgICAgaWYgKGlzTWF0cml4QW5pbWF0aW9uKSB7CisgICAgICAgIFRyYW5zZm9ybWF0aW9u
TWF0cml4IGZyb21UcmFuc2Zvcm0sIHRvVHJhbnNmb3JtOworICAgICAgICBzdGFydFZhbHVlLT52
YWx1ZSgpLT5hcHBseShib3hTaXplLCBmcm9tVHJhbnNmb3JtKTsKKyAgICAgICAgZW5kVmFsdWUt
PnZhbHVlKCktPmFwcGx5KGJveFNpemUsIHRvVHJhbnNmb3JtKTsKIAotICAgIGNvbnN0IFRpbWlu
Z0Z1bmN0aW9uKiB0ZiA9IDA7Ci0gICAgaWYgKHRyYW5zaXRpb24tPmlzVGltaW5nRnVuY3Rpb25T
ZXQoKSkKLSAgICAgICAgdGYgPSAmdHJhbnNpdGlvbi0+dGltaW5nRnVuY3Rpb24oKTsKKyAgICAg
ICAgLy8gSWYgYW55IG1hdHJpeCBpcyBzaW5ndWxhciwgQ0Egd29uJ3QgYW5pbWF0ZSBpdCBjb3Jy
ZWN0bHkuIFNvIGZhbGwgYmFjayB0byBzb2Z0d2FyZSBhbmltYXRpb24KKyAgICAgICAgaWYgKCFm
cm9tVHJhbnNmb3JtLmlzSW52ZXJ0aWJsZSgpIHx8ICF0b1RyYW5zZm9ybS5pc0ludmVydGlibGUo
KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBDQVRyYW5zZm9ybTNEIGNh
VHJhbnNmb3JtOworICAgICAgICBjb3B5VHJhbnNmb3JtKGNhVHJhbnNmb3JtLCBmcm9tVHJhbnNm
b3JtKTsKKyAgICAgICAgZnJvbVZhbHVlID0gW05TVmFsdWUgdmFsdWVXaXRoQ0FUcmFuc2Zvcm0z
RDpjYVRyYW5zZm9ybV07CiAKLSAgICBDQU1lZGlhVGltaW5nRnVuY3Rpb24qIHRpbWluZ0Z1bmN0
aW9uID0gZ2V0Q0FNZWRpYVRpbWluZ0Z1bmN0aW9uKHRmID8gKnRmIDogVGltaW5nRnVuY3Rpb24o
KSk7CisgICAgICAgIGNvcHlUcmFuc2Zvcm0oY2FUcmFuc2Zvcm0sIHRvVHJhbnNmb3JtKTsKKyAg
ICAgICAgdG9WYWx1ZSA9IFtOU1ZhbHVlIHZhbHVlV2l0aENBVHJhbnNmb3JtM0Q6Y2FUcmFuc2Zv
cm1dOworICAgIH0gZWxzZSB7CisgICAgICAgIGZyb21WYWx1ZSA9IGdldFRyYW5zZm9ybUZ1bmN0
aW9uVmFsdWUoc3RhcnRWYWx1ZS0+dmFsdWUoKS0+YXQoZnVuY3Rpb25JbmRleCksIHRyYW5zZm9y
bU9wLCBib3hTaXplKTsKKyAgICAgICAgdG9WYWx1ZSA9IGdldFRyYW5zZm9ybUZ1bmN0aW9uVmFs
dWUoZW5kVmFsdWUtPnZhbHVlKCktPmF0KGZ1bmN0aW9uSW5kZXgpLCB0cmFuc2Zvcm1PcCwgYm94
U2l6ZSk7CisgICAgfQorCisgICAgLy8gVGhpcyBjb2RlcGF0aCBpcyB1c2VkIGZvciAyLWtleWZy
YW1lIGFuaW1hdGlvbnMsIHNvIHdlIHN0aWxsIG5lZWQgdG8gbG9vayBpbiB0aGUgc3RhcnQKKyAg
ICAvLyBmb3IgYSB0aW1pbmcgZnVuY3Rpb24uCisgICAgQ0FNZWRpYVRpbWluZ0Z1bmN0aW9uKiB0
aW1pbmdGdW5jdGlvbiA9IHRpbWluZ0Z1bmN0aW9uRm9yQW5pbWF0aW9uVmFsdWUodmFsdWVMaXN0
LmF0KDApLCBhbmltKTsKICAgICBbYmFzaWNBbmltIHNldFRpbWluZ0Z1bmN0aW9uOnRpbWluZ0Z1
bmN0aW9uXTsKIAotICAgIC8vIFNlbmQgb3ZlciB0aGUgYW5pbWF0aW9uLgotICAgIFtsYXllciBy
ZW1vdmVBbmltYXRpb25Gb3JLZXk6YW5pbU5hbWVdOwotICAgIFtsYXllciBhZGRBbmltYXRpb246
YmFzaWNBbmltIGZvcktleTphbmltTmFtZV07Ci0gICAgCi0gICAgRU5EX0JMT0NLX09CSkNfRVhD
RVBUSU9OUworICAgIFtiYXNpY0FuaW0gc2V0RnJvbVZhbHVlOmZyb21WYWx1ZV07CisgICAgW2Jh
c2ljQW5pbSBzZXRUb1ZhbHVlOnRvVmFsdWVdOworCisjaWYgSEFWRV9NT0RFUk5fUVVBUlRaQ09S
RQorICAgIGlmIChOU1N0cmluZyogdmFsdWVGdW5jdGlvbk5hbWUgPSBnZXRWYWx1ZUZ1bmN0aW9u
TmFtZUZvclRyYW5zZm9ybU9wZXJhdGlvbih0cmFuc2Zvcm1PcCkpCisgICAgICAgIFtiYXNpY0Fu
aW0gc2V0VmFsdWVGdW5jdGlvbjpbQ0FWYWx1ZUZ1bmN0aW9uIGZ1bmN0aW9uV2l0aE5hbWU6dmFs
dWVGdW5jdGlvbk5hbWVdXTsKKyNlbmRpZgorCisgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQg
R3JhcGhpY3NMYXllckNBOjpzZXRLZXlmcmFtZUFuaW1hdGlvbihBbmltYXRlZFByb3BlcnR5SUQg
cHJvcGVydHksIFRyYW5zZm9ybU9wZXJhdGlvbjo6T3BlcmF0aW9uVHlwZSBvcGVyYXRpb25UeXBl
LCBzaG9ydCBpbmRleCwgdm9pZCoga2V5cywgdm9pZCogdmFsdWVzLCB2b2lkKiB0aW1pbmdGdW5j
dGlvbnMsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBpc1RyYW5z
aXRpb24sIGNvbnN0IEFuaW1hdGlvbiogYW5pbSwgZG91YmxlIGJlZ2luVGltZSkKK2Jvb2wgR3Jh
cGhpY3NMYXllckNBOjpzZXRUcmFuc2Zvcm1BbmltYXRpb25LZXlmcmFtZXMoY29uc3QgS2V5ZnJh
bWVWYWx1ZUxpc3QmIHZhbHVlTGlzdCwgY29uc3QgQW5pbWF0aW9uKiBhbmltYXRpb24sIENBS2V5
ZnJhbWVBbmltYXRpb24qIGtleWZyYW1lQW5pbSwgaW50IGZ1bmN0aW9uSW5kZXgsIFRyYW5zZm9y
bU9wZXJhdGlvbjo6T3BlcmF0aW9uVHlwZSB0cmFuc2Zvcm1PcFR5cGUsIGJvb2wgaXNNYXRyaXhB
bmltYXRpb24sIGNvbnN0IEludFNpemUmIGJveFNpemUpCiB7Ci0gICAgUGxhdGZvcm1MYXllciog
bGF5ZXIgPSBhbmltYXRlZExheWVyKHByb3BlcnR5KTsKKyAgICBSZXRhaW5QdHI8TlNNdXRhYmxl
QXJyYXk+IGtleVRpbWVzKEFkb3B0TlMsIFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRdKTsK
KyAgICBSZXRhaW5QdHI8TlNNdXRhYmxlQXJyYXk+IHZhbHVlcyhBZG9wdE5TLCBbW05TTXV0YWJs
ZUFycmF5IGFsbG9jXSBpbml0XSk7CisgICAgUmV0YWluUHRyPE5TTXV0YWJsZUFycmF5PiB0aW1p
bmdGdW5jdGlvbnMoQWRvcHROUywgW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdF0pOwogCi0g
ICAgLy8gQWRkIGFuIGVudHJ5IGZvciB0aGlzIGFuaW1hdGlvbiAod2hpY2ggbWF5IGNoYW5nZSBi
ZWdpblRpbWUpLgotICAgIGFkZEFuaW1hdGlvbkVudHJ5KHByb3BlcnR5LCBpbmRleCwgaXNUcmFu
c2l0aW9uLCBhbmltKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgdmFsdWVMaXN0LnNp
emUoKTsgKytpKSB7CisgICAgICAgIGNvbnN0IFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlKiBjdXJW
YWx1ZSA9IHN0YXRpY19jYXN0PGNvbnN0IFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlKj4odmFsdWVM
aXN0LmF0KGkpKTsKKyAgICAgICAgW2tleVRpbWVzLmdldCgpIGFkZE9iamVjdDpbTlNOdW1iZXIg
bnVtYmVyV2l0aEZsb2F0OmN1clZhbHVlLT5rZXlUaW1lKCldXTsKIAotICAgIFN0cmluZyBrZXlQ
YXRoID0gcHJvcGVydHlJZFRvU3RyaW5nKHByb3BlcnR5KTsKLSAgICBTdHJpbmcgYW5pbU5hbWUg
PSBrZXlQYXRoICsgIl8iICsgU3RyaW5nOjpudW1iZXIoaW5kZXgpOworICAgICAgICBpZiAoaXNN
YXRyaXhBbmltYXRpb24pIHsKKyAgICAgICAgICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IHRyYW5z
Zm9ybTsKKyAgICAgICAgICAgIGN1clZhbHVlLT52YWx1ZSgpLT5hcHBseShib3hTaXplLCB0cmFu
c2Zvcm0pOwogCi0gICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCi0KLSAgICBDQUtleWZy
YW1lQW5pbWF0aW9uKiBrZXlmcmFtZUFuaW0gPSBbQ0FLZXlmcmFtZUFuaW1hdGlvbiBhbmltYXRp
b25XaXRoS2V5UGF0aDprZXlQYXRoXTsKKyAgICAgICAgICAgIC8vIElmIGFueSBtYXRyaXggaXMg
c2luZ3VsYXIsIENBIHdvbid0IGFuaW1hdGUgaXQgY29ycmVjdGx5LiBTbyBmYWxsIGJhY2sgdG8g
c29mdHdhcmUgYW5pbWF0aW9uCisgICAgICAgICAgICBpZiAoIXRyYW5zZm9ybS5pc0ludmVydGli
bGUoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBkb3VibGUgZHVyYXRp
b24gPSBhbmltLT5kdXJhdGlvbigpOwotICAgIGlmIChkdXJhdGlvbiA8PSAwKQotICAgICAgICBk
dXJhdGlvbiA9IGNBbmltYXRpb25BbG1vc3RaZXJvRHVyYXRpb247CisgICAgICAgICAgICBDQVRy
YW5zZm9ybTNEIGNhVHJhbnNmb3JtOworICAgICAgICAgICAgY29weVRyYW5zZm9ybShjYVRyYW5z
Zm9ybSwgdHJhbnNmb3JtKTsKKyAgICAgICAgICAgIFt2YWx1ZXMuZ2V0KCkgYWRkT2JqZWN0OltO
U1ZhbHVlIHZhbHVlV2l0aENBVHJhbnNmb3JtM0Q6Y2FUcmFuc2Zvcm1dXTsKKyAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgIGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlvbiogdHJhbnNmb3JtT3Ag
PSBjdXJWYWx1ZS0+dmFsdWUoKS0+YXQoZnVuY3Rpb25JbmRleCk7CisgICAgICAgICAgICBbdmFs
dWVzLmdldCgpIGFkZE9iamVjdDpnZXRUcmFuc2Zvcm1GdW5jdGlvblZhbHVlKHRyYW5zZm9ybU9w
LCB0cmFuc2Zvcm1PcFR5cGUsIGJveFNpemUpXTsKKyAgICAgICAgfQogCi0gICAgZmxvYXQgcmVw
ZWF0Q291bnQgPSBhbmltLT5pdGVyYXRpb25Db3VudCgpOwotICAgIGlmIChyZXBlYXRDb3VudCA9
PSBBbmltYXRpb246Okl0ZXJhdGlvbkNvdW50SW5maW5pdGUpCi0gICAgICAgIHJlcGVhdENvdW50
ID0gRkxUX01BWDsKLSAgICBlbHNlIGlmIChhbmltLT5kaXJlY3Rpb24oKSA9PSBBbmltYXRpb246
OkFuaW1hdGlvbkRpcmVjdGlvbkFsdGVybmF0ZSkKLSAgICAgICAgcmVwZWF0Q291bnQgLz0gMjsK
KyAgICAgICAgQ0FNZWRpYVRpbWluZ0Z1bmN0aW9uKiB0aW1pbmdGdW5jdGlvbiA9IHRpbWluZ0Z1
bmN0aW9uRm9yQW5pbWF0aW9uVmFsdWUoY3VyVmFsdWUsIGFuaW1hdGlvbik7CisgICAgICAgIFt0
aW1pbmdGdW5jdGlvbnMuZ2V0KCkgYWRkT2JqZWN0OnRpbWluZ0Z1bmN0aW9uXTsKKyAgICB9Cisg
ICAgCisgICAgLy8gV2UgdG9zcyB0aGUgbGFzdCB0ZkFycmF5IHZhbHVlIGJlY2F1c2UgaXQgaGFz
IHRvIG9uZSBzaG9ydGVyIHRoYW4gdGhlIG90aGVycy4KKyAgICBbdGltaW5nRnVuY3Rpb25zLmdl
dCgpIHJlbW92ZUxhc3RPYmplY3RdOwogCi0gICAgW2tleWZyYW1lQW5pbSBzZXREdXJhdGlvbjpk
dXJhdGlvbl07Ci0gICAgW2tleWZyYW1lQW5pbSBzZXRSZXBlYXRDb3VudDpyZXBlYXRDb3VudF07
Ci0gICAgW2tleWZyYW1lQW5pbSBzZXRBdXRvcmV2ZXJzZXM6YW5pbS0+ZGlyZWN0aW9uKCldOwot
ICAgIFtrZXlmcmFtZUFuaW0gc2V0UmVtb3ZlZE9uQ29tcGxldGlvbjpOT107CisgICAgW2tleWZy
YW1lQW5pbSBzZXRLZXlUaW1lczprZXlUaW1lcy5nZXQoKV07CisgICAgW2tleWZyYW1lQW5pbSBz
ZXRWYWx1ZXM6dmFsdWVzLmdldCgpXTsKKyAgICBba2V5ZnJhbWVBbmltIHNldFRpbWluZ0Z1bmN0
aW9uczp0aW1pbmdGdW5jdGlvbnMuZ2V0KCldOwogCi0gICAgLy8gVGhlIGZpcnN0IGFuaW1hdGlv
biBpcyBub24tYWRkaXRpdmUsIGFsbCB0aGUgcmVzdCBhcmUgYWRkaXRpdmUuCi0gICAgLy8gTm90
ZSB0aGF0IGN1cnJlbnRseSB0cmFuc2Zvcm0gaXMgdGhlIG9ubHkgcHJvcGVydHkgd2hpY2ggaGFz
IGFuaW1hdGlvbnMKLSAgICAvLyB3aXRoIGFuIGluZGV4ID4gMC4KLSAgICBba2V5ZnJhbWVBbmlt
IHNldEFkZGl0aXZlOihwcm9wZXJ0eSA9PSBBbmltYXRlZFByb3BlcnR5V2Via2l0VHJhbnNmb3Jt
KSA/IFlFUyA6IE5PXTsKLSAgICBba2V5ZnJhbWVBbmltIHNldEZpbGxNb2RlOkAiZXh0ZW5kZWQi
XTsKICNpZiBIQVZFX01PREVSTl9RVUFSVFpDT1JFCi0gICAgaWYgKE5TU3RyaW5nKiB2YWx1ZUZ1
bmN0aW9uTmFtZSA9IGdldFZhbHVlRnVuY3Rpb25OYW1lRm9yVHJhbnNmb3JtT3BlcmF0aW9uKG9w
ZXJhdGlvblR5cGUpKQorICAgIGlmIChOU1N0cmluZyogdmFsdWVGdW5jdGlvbk5hbWUgPSBnZXRW
YWx1ZUZ1bmN0aW9uTmFtZUZvclRyYW5zZm9ybU9wZXJhdGlvbih0cmFuc2Zvcm1PcFR5cGUpKQog
ICAgICAgICBba2V5ZnJhbWVBbmltIHNldFZhbHVlRnVuY3Rpb246W0NBVmFsdWVGdW5jdGlvbiBm
dW5jdGlvbldpdGhOYW1lOnZhbHVlRnVuY3Rpb25OYW1lXV07Ci0jZWxzZQotICAgIFVOVVNFRF9Q
QVJBTShvcGVyYXRpb25UeXBlKTsKICNlbmRpZgotCi0gICAgW2tleWZyYW1lQW5pbSBzZXRLZXlU
aW1lczpyZWludGVycHJldF9jYXN0PGlkPihrZXlzKV07Ci0gICAgW2tleWZyYW1lQW5pbSBzZXRW
YWx1ZXM6cmVpbnRlcnByZXRfY2FzdDxpZD4odmFsdWVzKV07Ci0gICAgCi0gICAgLy8gU2V0IHRo
ZSBkZWxlZ2F0ZSAoYW5kIHByb3BlcnR5IHZhbHVlKS4KLSAgICBpbnQgcHJvcCA9IGlzVHJhbnNp
dGlvbiA/IHByb3BlcnR5IDogQW5pbWF0ZWRQcm9wZXJ0eUludmFsaWQ7Ci0gICAgW2tleWZyYW1l
QW5pbSBzZXRWYWx1ZTpbTlNOdW1iZXIgbnVtYmVyV2l0aEludDogcHJvcF0gZm9yS2V5OldlYkFu
aW1hdGlvbkNTU1Byb3BlcnR5S2V5XTsKLSAgICBba2V5ZnJhbWVBbmltIHNldERlbGVnYXRlOm1f
YW5pbWF0aW9uRGVsZWdhdGUuZ2V0KCldOwotCi0gICAgTlNUaW1lSW50ZXJ2YWwgYnQgPSBiZWdp
blRpbWUgPyBbbGF5ZXIgY29udmVydFRpbWU6Y3VycmVudFRpbWVUb01lZGlhVGltZShiZWdpblRp
bWUpIGZyb21MYXllcjpuaWxdIDogMDsKLSAgICBba2V5ZnJhbWVBbmltIHNldEJlZ2luVGltZTpi
dF07Ci0gICAgCi0gICAgLy8gU2V0IHRoZSB0aW1pbmcgZnVuY3Rpb25zLCBpZiBhbnkuCi0gICAg
aWYgKHRpbWluZ0Z1bmN0aW9ucyAhPSBuaWwpCi0gICAgICAgIFtrZXlmcmFtZUFuaW0gc2V0VGlt
aW5nRnVuY3Rpb25zOihpZCl0aW1pbmdGdW5jdGlvbnNdOwotICAgICAgICAKLSAgICAvLyBTZW5k
IG92ZXIgdGhlIGFuaW1hdGlvbi4KLSAgICBbbGF5ZXIgcmVtb3ZlQW5pbWF0aW9uRm9yS2V5OmFu
aW1OYW1lXTsKLSAgICBbbGF5ZXIgYWRkQW5pbWF0aW9uOmtleWZyYW1lQW5pbSBmb3JLZXk6YW5p
bU5hbWVdOwotICAgICAgICAKLSAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCisgICAgcmV0
dXJuIHRydWU7CiB9CiAKIHZvaWQgR3JhcGhpY3NMYXllckNBOjpzdXNwZW5kQW5pbWF0aW9ucygp
CkBAIC0xMzY5LDY0ICsxNTUwLDEyIEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjpyZXN1bWVBbmlt
YXRpb25zKCkKICAgICBbcHJpbWFyeUxheWVyKCkgc2V0VGltZU9mZnNldDowXTsKIH0KIAotdm9p
ZCBHcmFwaGljc0xheWVyQ0E6OnJlbW92ZUFuaW1hdGlvbihpbnQgaW5kZXgsIGJvb2wgcmVzZXQp
Ci17Ci0gICAgQVNTRVJUKGluZGV4ID49IDApOwotCi0gICAgQW5pbWF0ZWRQcm9wZXJ0eUlEIHBy
b3BlcnR5ID0gbV9hbmltYXRpb25zW2luZGV4XS5wcm9wZXJ0eSgpOwotICAgIAotICAgIC8vIFNl
dCB0aGUgdmFsdWUgb2YgdGhlIHByb3BlcnR5IGFuZCByZW1vdmUgdGhlIGFuaW1hdGlvbi4KLSAg
ICBTdHJpbmcga2V5UGF0aCA9IHByb3BlcnR5SWRUb1N0cmluZyhwcm9wZXJ0eSk7Ci0gICAgU3Ry
aW5nIGFuaW1OYW1lID0ga2V5UGF0aCArICJfIiArIFN0cmluZzo6bnVtYmVyKG1fYW5pbWF0aW9u
c1tpbmRleF0uaW5kZXgoKSk7Ci0gICAgQ0FMYXllciogbGF5ZXIgPSBhbmltYXRlZExheWVyKHBy
b3BlcnR5KTsKLQotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwotCi0gICAgLy8gSWYg
d2UgYXJlIG5vdCByZXNldHRpbmcsIGl0IG1lYW5zIHdlIGFyZSBwYXVzaW5nLiBTbyB3ZSBuZWVk
IHRvIGdldCB0aGUgY3VycmVudCBwcmVzZW50YXRpb24KLSAgICAvLyB2YWx1ZSBpbnRvIHRoZSBw
cm9wZXJ0eSBiZWZvcmUgd2UgcmVtb3ZlIHRoZSBhbmltYXRpb24uCi0gICAgaWYgKCFyZXNldCkg
ewotICAgICAgICAvLyBQdXQgdGhlIGN1cnJlbnQgdmFsdWUgaW50byB0aGUgcHJvcGVydHkuCi0g
ICAgICAgIENBTGF5ZXIqIHByZXNMYXllciA9IFtsYXllciBwcmVzZW50YXRpb25MYXllcl07Ci0g
ICAgICAgIGlmIChwcmVzTGF5ZXIpCi0gICAgICAgICAgICBbbGF5ZXIgc2V0VmFsdWU6W3ByZXNM
YXllciB2YWx1ZUZvcktleVBhdGg6a2V5UGF0aF0gZm9yS2V5UGF0aDprZXlQYXRoXTsKLQotICAg
ICAgICAvLyBNYWtlIHN1cmUgdGhlIHNhdmVkIHZhbHVlcyBhY2N1cmF0ZWx5IHJlZmxlY3QgdGhl
IHZhbHVlIGluIHRoZSBsYXllci4KLSAgICAgICAgaWQgdmFsID0gW2xheWVyIHZhbHVlRm9yS2V5
UGF0aDprZXlQYXRoXTsKLSAgICAgICAgc3dpdGNoIChwcm9wZXJ0eSkgewotICAgICAgICAgICAg
Y2FzZSBBbmltYXRlZFByb3BlcnR5V2Via2l0VHJhbnNmb3JtOgotICAgICAgICAgICAgICAgIC8v
IEZJWE1FOiBuZWVkcyBjb21tZW50IGV4cGxhaW5pbmcgd2h5IHRoZSBtX3RyYW5zZm9ybSBpcyBu
b3Qgb2J0YWluZWQgZnJvbSB0aGUgbGF5ZXIKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgICAgIGNhc2UgQW5pbWF0ZWRQcm9wZXJ0eUJhY2tncm91bmRDb2xvcjoKLSAgICAgICAgICAg
ICAgICBtX2JhY2tncm91bmRDb2xvciA9IENvbG9yKHJlaW50ZXJwcmV0X2Nhc3Q8Q0dDb2xvclJl
Zj4odmFsKSk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIEFuaW1h
dGVkUHJvcGVydHlPcGFjaXR5OgotICAgICAgICAgICAgICAgIG1fb3BhY2l0eSA9IFt2YWwgZmxv
YXRWYWx1ZV07Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIEFuaW1h
dGVkUHJvcGVydHlJbnZhbGlkOgotICAgICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgfQotICAgIAotICAgIC8v
IElmIHdlIGhhdmUgcmVhY2hlZCB0aGUgZW5kIG9mIGFuIGFuaW1hdGlvbiwgd2UgZG9uJ3Qgd2Fu
dCB0byBhY3R1YWxseSByZW1vdmUgdGhlIAotICAgIC8vIGFuaW1hdGlvbiBmcm9tIHRoZSBDQUxh
eWVyLiBBdCBzb21lIHBvaW50IHdlIHdpbGwgYmUgc2V0dGluZyB0aGUgcHJvcGVydHkgdG8gaXRz
Ci0gICAgLy8gdW5hbmltYXRlZCB2YWx1ZSBhbmQgYXQgdGhhdCBwb2ludCB3ZSB3aWxsIHJlbW92
ZSB0aGUgYW5pbWF0aW9uLiBUaGF0IHdpbGwgYXZvaWQKLSAgICAvLyBhbnkgZmxhc2hpbmcgYmV0
d2VlbiB0aGUgdGltZSB0aGUgYW5pbWF0aW9uIGlzIHJlbW92ZWQgYW5kIHRoZSBwcm9wZXJ0eSBp
cyBzZXQuCi0gICAgaWYgKCFyZXNldCB8fCBtX2FuaW1hdGlvbnNbaW5kZXhdLmlzVHJhbnNpdGlv
bigpKQotICAgICAgICBbbGF5ZXIgcmVtb3ZlQW5pbWF0aW9uRm9yS2V5OmFuaW1OYW1lXTsKLQot
ICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKLQotICAgIC8vIFJlbW92ZSB0aGUgYW5pbWF0
aW9uIGVudHJ5LgotICAgIG1fYW5pbWF0aW9ucy5yZW1vdmUoaW5kZXgpOwotfQotCi1QbGF0Zm9y
bUxheWVyKiBHcmFwaGljc0xheWVyQ0E6Omhvc3RMYXllckZvclN1YmxheWVycygpIGNvbnN0CitX
ZWJMYXllciogR3JhcGhpY3NMYXllckNBOjpob3N0TGF5ZXJGb3JTdWJsYXllcnMoKSBjb25zdAog
ewogICAgIHJldHVybiBtX3RyYW5zZm9ybUxheWVyID8gbV90cmFuc2Zvcm1MYXllci5nZXQoKSA6
IG1fbGF5ZXIuZ2V0KCk7CiB9CiAKLVBsYXRmb3JtTGF5ZXIqIEdyYXBoaWNzTGF5ZXJDQTo6bGF5
ZXJGb3JTdXBlcmxheWVyKCkgY29uc3QKK1dlYkxheWVyKiBHcmFwaGljc0xheWVyQ0E6OmxheWVy
Rm9yU3VwZXJsYXllcigpIGNvbnN0CiB7CiAgICAgaWYgKG1fdHJhbnNmb3JtTGF5ZXIpCiAgICAg
ICAgIHJldHVybiBtX3RyYW5zZm9ybUxheWVyLmdldCgpOwpAQCAtMTQzNCw2ICsxNTYzLDExIEBA
IFBsYXRmb3JtTGF5ZXIqIEdyYXBoaWNzTGF5ZXJDQTo6bGF5ZXJGb3JTdXBlcmxheWVyKCkgY29u
c3QKICAgICByZXR1cm4gbV9sYXllci5nZXQoKTsKIH0KIAorQ0FMYXllciogR3JhcGhpY3NMYXll
ckNBOjphbmltYXRlZExheWVyKEFuaW1hdGVkUHJvcGVydHlJRCBwcm9wZXJ0eSkgY29uc3QKK3sK
KyAgICByZXR1cm4gKHByb3BlcnR5ID09IEFuaW1hdGVkUHJvcGVydHlCYWNrZ3JvdW5kQ29sb3Ip
ID8gbV9jb250ZW50c0xheWVyLmdldCgpIDogcHJpbWFyeUxheWVyKCk7Cit9CisKIFBsYXRmb3Jt
TGF5ZXIqIEdyYXBoaWNzTGF5ZXJDQTo6cGxhdGZvcm1MYXllcigpIGNvbnN0CiB7CiAgICAgcmV0
dXJuIHByaW1hcnlMYXllcigpOwpAQCAtMTQ2NiwxNiArMTYwMCw3IEBAIHZvaWQgR3JhcGhpY3NM
YXllckNBOjpzZXREZWJ1Z0JvcmRlcihjb25zdCBDb2xvciYgY29sb3IsIGZsb2F0IGJvcmRlcldp
ZHRoKQogICAgIAogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIH0KLQotdm9pZCBHcmFw
aGljc0xheWVyQ0E6OnNldFpQb3NpdGlvbihmbG9hdCBwb3NpdGlvbikKLXsKLSAgICBHcmFwaGlj
c0xheWVyOjpzZXRaUG9zaXRpb24ocG9zaXRpb24pOwotICAgIAotICAgIEJFR0lOX0JMT0NLX09C
SkNfRVhDRVBUSU9OUwotICAgIFtwcmltYXJ5TGF5ZXIoKSBzZXRaUG9zaXRpb246cG9zaXRpb25d
OwotICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKLX0KLSNlbmRpZgorI2VuZGlmIC8vIE5E
RUJVRwogCiBib29sIEdyYXBoaWNzTGF5ZXJDQTo6cmVxdWlyZXNUaWxlZExheWVyKGNvbnN0IEZs
b2F0U2l6ZSYgc2l6ZSkgY29uc3QKIHsKQEAgLTE0ODYsMjEgKzE2MTEsMjEgQEAgYm9vbCBHcmFw
aGljc0xheWVyQ0E6OnJlcXVpcmVzVGlsZWRMYXllcihjb25zdCBGbG9hdFNpemUmIHNpemUpIGNv
bnN0CiAgICAgcmV0dXJuIHNpemUud2lkdGgoKSA+IGNNYXhQaXhlbERpbWVuc2lvbiB8fCBzaXpl
LmhlaWdodCgpID4gY01heFBpeGVsRGltZW5zaW9uOwogfQogCi12b2lkIEdyYXBoaWNzTGF5ZXJD
QTo6c3dhcEZyb21PclRvVGlsZWRMYXllcihib29sIHVzZXJUaWxlZExheWVyKQordm9pZCBHcmFw
aGljc0xheWVyQ0E6OnN3YXBGcm9tT3JUb1RpbGVkTGF5ZXIoYm9vbCB1c2VUaWxlZExheWVyKQog
ewotICAgIGlmICh1c2VyVGlsZWRMYXllciA9PSBtX3VzaW5nVGlsZWRMYXllcikKKyAgICBpZiAo
dXNlVGlsZWRMYXllciA9PSBtX3VzaW5nVGlsZWRMYXllcikKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgQ0dTaXplIHRpbGVTaXplID0gQ0dTaXplTWFrZShjVGlsZWRMYXllclRpbGVTaXplLCBjVGls
ZWRMYXllclRpbGVTaXplKTsKIAotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwotICAg
IAogICAgIFJldGFpblB0cjxDQUxheWVyPiBvbGRMYXllciA9IG1fbGF5ZXIuZ2V0KCk7CiAgICAg
Ci0gICAgQ2xhc3MgbGF5ZXJDbGFzcyA9IHVzZXJUaWxlZExheWVyID8gW1dlYlRpbGVkTGF5ZXIg
c2VsZl0gOiBbV2ViTGF5ZXIgc2VsZl07CisgICAgQ2xhc3MgbGF5ZXJDbGFzcyA9IHVzZVRpbGVk
TGF5ZXIgPyBbV2ViVGlsZWRMYXllciBzZWxmXSA6IFtXZWJMYXllciBzZWxmXTsKICAgICBtX2xh
eWVyLmFkb3B0TlMoW1tsYXllckNsYXNzIGFsbG9jXSBpbml0XSk7CiAKLSAgICBpZiAodXNlclRp
bGVkTGF5ZXIpIHsKKyAgICBtX3VzaW5nVGlsZWRMYXllciA9IHVzZVRpbGVkTGF5ZXI7CisKKyAg
ICBpZiAodXNlVGlsZWRMYXllcikgewogICAgICAgICBXZWJUaWxlZExheWVyKiB0aWxlZExheWVy
ID0gKFdlYlRpbGVkTGF5ZXIqKW1fbGF5ZXIuZ2V0KCk7CiAgICAgICAgIFt0aWxlZExheWVyIHNl
dFRpbGVTaXplOnRpbGVTaXplXTsKICAgICAgICAgW3RpbGVkTGF5ZXIgc2V0TGV2ZWxzT2ZEZXRh
aWw6MV07CkBAIC0xNTI1LDE5ICsxNjUwLDIwIEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjpzd2Fw
RnJvbU9yVG9UaWxlZExheWVyKGJvb2wgdXNlclRpbGVkTGF5ZXIpCiAgICAgW21fbGF5ZXIuZ2V0
KCkgc2V0U3VibGF5ZXJzOltvbGRMYXllci5nZXQoKSBzdWJsYXllcnNdXTsKICAgICAKICAgICBb
W29sZExheWVyLmdldCgpIHN1cGVybGF5ZXJdIHJlcGxhY2VTdWJsYXllcjpvbGRMYXllci5nZXQo
KSB3aXRoOm1fbGF5ZXIuZ2V0KCldOworCisgICAgdXBkYXRlQ29udGVudHNUcmFuc2Zvcm0oKTsK
KworICAgIHVwZGF0ZUxheWVyUG9zaXRpb24oKTsKKyAgICB1cGRhdGVMYXllclNpemUoKTsKKyAg
ICB1cGRhdGVBbmNob3JQb2ludCgpOworICAgIHVwZGF0ZVRyYW5zZm9ybSgpOworICAgIHVwZGF0
ZUNoaWxkcmVuVHJhbnNmb3JtKCk7CisgICAgdXBkYXRlTWFza3NUb0JvdW5kcygpOworICAgIHVw
ZGF0ZUNvbnRlbnRzT3BhcXVlKCk7CisgICAgdXBkYXRlQmFja2ZhY2VWaXNpYmlsaXR5KCk7Cisg
ICAgdXBkYXRlTGF5ZXJCYWNrZ3JvdW5kQ29sb3IoKTsKICAgICAKLSAgICBbbV9sYXllci5nZXQo
KSBzZXRCb3VuZHM6W29sZExheWVyLmdldCgpIGJvdW5kc11dOwotICAgIFttX2xheWVyLmdldCgp
IHNldFBvc2l0aW9uOltvbGRMYXllci5nZXQoKSBwb3NpdGlvbl1dOwotICAgIFttX2xheWVyLmdl
dCgpIHNldEFuY2hvclBvaW50OltvbGRMYXllci5nZXQoKSBhbmNob3JQb2ludF1dOwotICAgIFtt
X2xheWVyLmdldCgpIHNldE9wYXF1ZTpbb2xkTGF5ZXIuZ2V0KCkgaXNPcGFxdWVdXTsKICAgICB1
cGRhdGVPcGFjaXR5T25MYXllcigpOwotICAgIFttX2xheWVyLmdldCgpIHNldFRyYW5zZm9ybTpb
b2xkTGF5ZXIuZ2V0KCkgdHJhbnNmb3JtXV07Ci0gICAgW21fbGF5ZXIuZ2V0KCkgc2V0U3VibGF5
ZXJUcmFuc2Zvcm06W29sZExheWVyLmdldCgpIHN1YmxheWVyVHJhbnNmb3JtXV07Ci0gICAgW21f
bGF5ZXIuZ2V0KCkgc2V0RG91YmxlU2lkZWQ6W29sZExheWVyLmdldCgpIGlzRG91YmxlU2lkZWRd
XTsKLSNpZm5kZWYgTkRFQlVHCi0gICAgW21fbGF5ZXIuZ2V0KCkgc2V0WlBvc2l0aW9uOltvbGRM
YXllci5nZXQoKSB6UG9zaXRpb25dXTsKLSNlbmRpZgotICAgIHVwZGF0ZUNvbnRlbnRzVHJhbnNm
b3JtKCk7CiAgICAgCiAjaWZuZGVmIE5ERUJVRwogICAgIFN0cmluZyBuYW1lID0gU3RyaW5nOjpm
b3JtYXQoIkNBTGF5ZXIoJXApIEdyYXBoaWNzTGF5ZXIoJXApICIsIG1fbGF5ZXIuZ2V0KCksIHRo
aXMpICsgbV9uYW1lOwpAQCAtMTU1MiwxMCArMTY3OCw2IEBAIHZvaWQgR3JhcGhpY3NMYXllckNB
Ojpzd2FwRnJvbU9yVG9UaWxlZExheWVyKGJvb2wgdXNlclRpbGVkTGF5ZXIpCiAgICAgLy8gbmVl
ZCB0byB0ZWxsIG5ldyBsYXllciB0byBkcmF3IGl0c2VsZgogICAgIHNldE5lZWRzRGlzcGxheSgp
OwogICAgIAotICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKLSAgICAKLSAgICBtX3VzaW5n
VGlsZWRMYXllciA9IHVzZXJUaWxlZExheWVyOwotICAgIAogI2lmbmRlZiBOREVCVUcKICAgICB1
cGRhdGVEZWJ1Z0luZGljYXRvcnMoKTsKICNlbmRpZgpAQCAtMTU4Niw1MiArMTcwOCwyOCBAQCB2
b2lkIEdyYXBoaWNzTGF5ZXJDQTo6dXBkYXRlQ29udGVudHNUcmFuc2Zvcm0oKQogI2VuZGlmCiB9
CiAKLXZvaWQgR3JhcGhpY3NMYXllckNBOjpzZXRDb250ZW50c0xheWVyKFdlYkxheWVyKiBjb250
ZW50c0xheWVyKQordm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldHVwQ29udGVudHNMYXllcihDQUxh
eWVyKiBjb250ZW50c0xheWVyKQogewotICAgIGlmIChjb250ZW50c0xheWVyID09IG1fY29udGVu
dHNMYXllcikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJ
T05TCisgICAgLy8gVHVybiBvZmYgaW1wbGljaXQgYW5pbWF0aW9ucyBvbiB0aGUgaW5uZXIgbGF5
ZXIuCisgICAgW2NvbnRlbnRzTGF5ZXIgc2V0U3R5bGU6W05TRGljdGlvbmFyeSBkaWN0aW9uYXJ5
V2l0aE9iamVjdDpudWxsQWN0aW9uc0RpY3Rpb25hcnkoKSBmb3JLZXk6QCJhY3Rpb25zIl1dOwog
Ci0gICAgaWYgKG1fY29udGVudHNMYXllcikgewotICAgICAgICBbbV9jb250ZW50c0xheWVyLmdl
dCgpIHJlbW92ZUZyb21TdXBlcmxheWVyXTsKLSAgICAgICAgbV9jb250ZW50c0xheWVyID0gMDsK
LSAgICB9Ci0gICAgCi0gICAgaWYgKGNvbnRlbnRzTGF5ZXIpIHsKLSAgICAgICAgLy8gVHVybiBv
ZmYgaW1wbGljaXQgYW5pbWF0aW9ucyBvbiB0aGUgaW5uZXIgbGF5ZXIuCi0gICAgICAgIFtjb250
ZW50c0xheWVyIHNldFN0eWxlOltOU0RpY3Rpb25hcnkgZGljdGlvbmFyeVdpdGhPYmplY3Q6bnVs
bEFjdGlvbnNEaWN0aW9uYXJ5KCkgZm9yS2V5OkAiYWN0aW9ucyJdXTsKLSAgICAgICAgbV9jb250
ZW50c0xheWVyLmFkb3B0TlMoW2NvbnRlbnRzTGF5ZXIgcmV0YWluXSk7Ci0KLSAgICAgICAgaWYg
KGRlZmF1bHRDb250ZW50c09yaWVudGF0aW9uKCkgPT0gQ29tcG9zaXRpbmdDb29yZGluYXRlc0Jv
dHRvbVVwKSB7Ci0gICAgICAgICAgICBDQVRyYW5zZm9ybTNEIGZsaXBwZXIgPSB7Ci0gICAgICAg
ICAgICAgICAgMS4wZiwgMC4wZiwgMC4wZiwgMC4wZiwKLSAgICAgICAgICAgICAgICAwLjBmLCAt
MS4wZiwgMC4wZiwgMC4wZiwKLSAgICAgICAgICAgICAgICAwLjBmLCAwLjBmLCAxLjBmLCAwLjBm
LAotICAgICAgICAgICAgICAgIDAuMGYsIDAuMGYsIDAuMGYsIDEuMGZ9OwotICAgICAgICAgICAg
W21fY29udGVudHNMYXllci5nZXQoKSBzZXRUcmFuc2Zvcm06ZmxpcHBlcl07Ci0gICAgICAgICAg
ICBbbV9jb250ZW50c0xheWVyLmdldCgpIHNldEFuY2hvclBvaW50OkNHUG9pbnRNYWtlKDAuMGYs
IDEuMGYpXTsKLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBbbV9jb250ZW50c0xheWVyLmdl
dCgpIHNldEFuY2hvclBvaW50OkNHUG9pbnRaZXJvXTsKLQotICAgICAgICAvLyBJbnNlcnQgdGhl
IGNvbnRlbnQgbGF5ZXIgZmlyc3QuIFZpZGVvIGVsZW1lbnRzIHJlcXVpcmUgdGhpcywgYmVjYXVz
ZSB0aGV5IGhhdmUKLSAgICAgICAgLy8gc2hhZG93IGNvbnRlbnQgdGhhdCBtdXN0IGRpc3BsYXkg
aW4gZnJvbnQgb2YgdGhlIHZpZGVvLgotICAgICAgICBbbV9sYXllci5nZXQoKSBpbnNlcnRTdWJs
YXllcjptX2NvbnRlbnRzTGF5ZXIuZ2V0KCkgYXRJbmRleDowXTsKLQotICAgICAgICB1cGRhdGVD
b250ZW50c1JlY3QoKTsKKyAgICBpZiAoZGVmYXVsdENvbnRlbnRzT3JpZW50YXRpb24oKSA9PSBD
b21wb3NpdGluZ0Nvb3JkaW5hdGVzQm90dG9tVXApIHsKKyAgICAgICAgQ0FUcmFuc2Zvcm0zRCBm
bGlwcGVyID0geworICAgICAgICAgICAgMS4wZiwgMC4wZiwgMC4wZiwgMC4wZiwKKyAgICAgICAg
ICAgIDAuMGYsIC0xLjBmLCAwLjBmLCAwLjBmLAorICAgICAgICAgICAgMC4wZiwgMC4wZiwgMS4w
ZiwgMC4wZiwKKyAgICAgICAgICAgIDAuMGYsIDAuMGYsIDAuMGYsIDEuMGZ9OworICAgICAgICBb
Y29udGVudHNMYXllciBzZXRUcmFuc2Zvcm06ZmxpcHBlcl07CisgICAgICAgIFtjb250ZW50c0xh
eWVyIHNldEFuY2hvclBvaW50OkNHUG9pbnRNYWtlKDAuMGYsIDEuMGYpXTsKKyAgICB9IGVsc2UK
KyAgICAgICAgW2NvbnRlbnRzTGF5ZXIgc2V0QW5jaG9yUG9pbnQ6Q0dQb2ludFplcm9dOwogCiAj
aWZuZGVmIE5ERUJVRwotICAgICAgICBpZiAoc2hvd0RlYnVnQm9yZGVycygpKSB7Ci0gICAgICAg
ICAgICBzZXRMYXllckJvcmRlckNvbG9yKG1fY29udGVudHNMYXllci5nZXQoKSwgQ29sb3IoMCwg
MCwgMTI4LCAxODApKTsKLSAgICAgICAgICAgIFttX2NvbnRlbnRzTGF5ZXIuZ2V0KCkgc2V0Qm9y
ZGVyV2lkdGg6MS4wZl07Ci0gICAgICAgIH0KLSNlbmRpZgorICAgIGlmIChzaG93RGVidWdCb3Jk
ZXJzKCkpIHsKKyAgICAgICAgc2V0TGF5ZXJCb3JkZXJDb2xvcihjb250ZW50c0xheWVyLCBDb2xv
cigwLCAwLCAxMjgsIDE4MCkpOworICAgICAgICBbY29udGVudHNMYXllciBzZXRCb3JkZXJXaWR0
aDoxLjBmXTsKICAgICB9Ci0jaWZuZGVmIE5ERUJVRwotICAgIHVwZGF0ZURlYnVnSW5kaWNhdG9y
cygpOwogI2VuZGlmCi0KLSAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiB9CiAKIHZvaWQg
R3JhcGhpY3NMYXllckNBOjpzZXRPcGFjaXR5SW50ZXJuYWwoZmxvYXQgYWNjdW11bGF0ZWRPcGFj
aXR5KQpAQCAtMTY1MCw3ICsxNzQ4LDE0IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjp1cGRhdGVP
cGFjaXR5T25MYXllcigpCiAjZW5kaWYKIH0KIAotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQordm9p
ZCBHcmFwaGljc0xheWVyQ0E6Om5vdGVMYXllclByb3BlcnR5Q2hhbmdlZChMYXllckNoYW5nZUZs
YWdzIGZsYWdzKQoreworICAgIGlmICghbV91bmNvbW1pdHRlZENoYW5nZXMgJiYgbV9jbGllbnQp
CisgICAgICAgIG1fY2xpZW50LT5ub3RpZnlTeW5jUmVxdWlyZWQodGhpcyk7CiAKKyAgICBtX3Vu
Y29tbWl0dGVkQ2hhbmdlcyB8PSBmbGFnczsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CiAjZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybU9wZXJhdGlvbnMuaCBi
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1PcGVyYXRpb25z
LmgKaW5kZXggMTE2MDVlOC4uZGQ1NjQwOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybU9wZXJhdGlvbnMuaAorKysgYi9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtT3BlcmF0aW9ucy5oCkBAIC02MCw2
ICs2MCw5IEBAIHB1YmxpYzoKICAgICBWZWN0b3I8UmVmUHRyPFRyYW5zZm9ybU9wZXJhdGlvbj4g
PiYgb3BlcmF0aW9ucygpIHsgcmV0dXJuIG1fb3BlcmF0aW9uczsgfQogICAgIGNvbnN0IFZlY3Rv
cjxSZWZQdHI8VHJhbnNmb3JtT3BlcmF0aW9uPiA+JiBvcGVyYXRpb25zKCkgY29uc3QgeyByZXR1
cm4gbV9vcGVyYXRpb25zOyB9CiAKKyAgICBzaXplX3Qgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1f
b3BlcmF0aW9ucy5zaXplKCk7IH0KKyAgICBjb25zdCBUcmFuc2Zvcm1PcGVyYXRpb24qIGF0KHNp
emVfdCBpbmRleCkgY29uc3QgeyByZXR1cm4gaW5kZXggPCBtX29wZXJhdGlvbnMuc2l6ZSgpID8g
bV9vcGVyYXRpb25zLmF0KGluZGV4KS5nZXQoKSA6IDA7IH0KKwogcHJpdmF0ZToKICAgICBWZWN0
b3I8UmVmUHRyPFRyYW5zZm9ybU9wZXJhdGlvbj4gPiBtX29wZXJhdGlvbnM7CiB9OwpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcCBiL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKaW5kZXggMTY3MzFmOS4uNDM0OTE1NSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAorKysg
Yi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBAIC01NSw3ICs1NSw3
IEBAIFJlbmRlckxheWVyQmFja2luZzo6UmVuZGVyTGF5ZXJCYWNraW5nKFJlbmRlckxheWVyKiBs
YXllcikKICAgICA6IG1fb3duaW5nTGF5ZXIobGF5ZXIpCiAgICAgLCBtX2FuY2VzdG9yQ2xpcHBp
bmdMYXllcigwKQogICAgICwgbV9ncmFwaGljc0xheWVyKDApCi0gICAgLCBtX2NvbnRlbnRzTGF5
ZXIoMCkKKyAgICAsIG1fZm9yZWdyb3VuZExheWVyKDApCiAgICAgLCBtX2NsaXBwaW5nTGF5ZXIo
MCkKICAgICAsIG1faGFzRGlyZWN0bHlDb21wb3NpdGVkQ29udGVudChmYWxzZSkKIHsKQEAgLTY1
LDcgKzY1LDcgQEAgUmVuZGVyTGF5ZXJCYWNraW5nOjpSZW5kZXJMYXllckJhY2tpbmcoUmVuZGVy
TGF5ZXIqIGxheWVyKQogUmVuZGVyTGF5ZXJCYWNraW5nOjp+UmVuZGVyTGF5ZXJCYWNraW5nKCkK
IHsKICAgICB1cGRhdGVDbGlwcGluZ0xheWVycyhmYWxzZSwgZmFsc2UpOwotICAgIHVwZGF0ZUNv
bnRlbnRzTGF5ZXIoZmFsc2UpOworICAgIHVwZGF0ZUZvcmVncm91bmRMYXllcihmYWxzZSk7CiAg
ICAgZGVzdHJveUdyYXBoaWNzTGF5ZXIoKTsKIH0KIApAQCAtOTksOCArOTksOCBAQCB2b2lkIFJl
bmRlckxheWVyQmFja2luZzo6ZGVzdHJveUdyYXBoaWNzTGF5ZXIoKQogICAgIGRlbGV0ZSBtX2dy
YXBoaWNzTGF5ZXI7CiAgICAgbV9ncmFwaGljc0xheWVyID0gMDsKIAotICAgIGRlbGV0ZSBtX2Nv
bnRlbnRzTGF5ZXI7Ci0gICAgbV9jb250ZW50c0xheWVyID0gMDsKKyAgICBkZWxldGUgbV9mb3Jl
Z3JvdW5kTGF5ZXI7CisgICAgbV9mb3JlZ3JvdW5kTGF5ZXIgPSAwOwogCiAgICAgZGVsZXRlIG1f
Y2xpcHBpbmdMYXllcjsKICAgICBtX2NsaXBwaW5nTGF5ZXIgPSAwOwpAQCAtMTA4LDcgKzEwOCw3
IEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpkZXN0cm95R3JhcGhpY3NMYXllcigpCiAKIHZv
aWQgUmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVMYXllck9wYWNpdHkoKQogewotICAgIG1fZ3Jh
cGhpY3NMYXllci0+c2V0T3BhY2l0eShjb21wb3NpdGluZ09wYWNpdHkocmVuZGVyZXIoKS0+b3Bh
Y2l0eSgpKSwgMCwgMCk7CisgICAgbV9ncmFwaGljc0xheWVyLT5zZXRPcGFjaXR5KGNvbXBvc2l0
aW5nT3BhY2l0eShyZW5kZXJlcigpLT5vcGFjaXR5KCkpKTsKIH0KIAogdm9pZCBSZW5kZXJMYXll
ckJhY2tpbmc6OnVwZGF0ZUxheWVyVHJhbnNmb3JtKCkKQEAgLTE1Miw3ICsxNTIsNyBAQCBib29s
IFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlR3JhcGhpY3NMYXllckNvbmZpZ3VyYXRpb24oKQog
ICAgIFJlbmRlckxheWVyQ29tcG9zaXRvciogY29tcG9zaXRvciA9IHRoaXMtPmNvbXBvc2l0b3Io
KTsKIAogICAgIGJvb2wgbGF5ZXJDb25maWdDaGFuZ2VkID0gZmFsc2U7Ci0gICAgaWYgKHVwZGF0
ZUNvbnRlbnRzTGF5ZXIoY29tcG9zaXRvci0+bmVlZHNDb250ZW50c0NvbXBvc2l0aW5nTGF5ZXIo
bV9vd25pbmdMYXllcikpKQorICAgIGlmICh1cGRhdGVGb3JlZ3JvdW5kTGF5ZXIoY29tcG9zaXRv
ci0+bmVlZHNDb250ZW50c0NvbXBvc2l0aW5nTGF5ZXIobV9vd25pbmdMYXllcikpKQogICAgICAg
ICBsYXllckNvbmZpZ0NoYW5nZWQgPSB0cnVlOwogICAgIAogICAgIGlmICh1cGRhdGVDbGlwcGlu
Z0xheWVycyhjb21wb3NpdG9yLT5jbGlwcGVkQnlBbmNlc3RvcihtX293bmluZ0xheWVyKSwgY29t
cG9zaXRvci0+Y2xpcHNDb21wb3NpdGluZ0Rlc2NlbmRhbnRzKG1fb3duaW5nTGF5ZXIpKSkKQEAg
LTI5MiwyMSArMjkyLDIxIEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVHcmFwaGlj
c0xheWVyR2VvbWV0cnkoKQogICAgICAgICBtX2dyYXBoaWNzTGF5ZXItPnNldEFuY2hvclBvaW50
KEZsb2F0UG9pbnQzRCgwLjVmLCAwLjVmLCAwKSk7CiAgICAgfQogCi0gICAgaWYgKG1fY29udGVu
dHNMYXllcikgeworICAgIGlmIChtX2ZvcmVncm91bmRMYXllcikgewogICAgICAgICAvLyBUaGUg
Y29udGVudHMgbGF5ZXIgaXMgYWx3YXlzIGNvaW5jaWRlbnRhbCB3aXRoIHRoZSBncmFwaGljc0xh
eWVyIGZvciBub3cuCi0gICAgICAgIG1fY29udGVudHNMYXllci0+c2V0UG9zaXRpb24oSW50UG9p
bnQoMCwgMCkpOwotICAgICAgICBtX2NvbnRlbnRzTGF5ZXItPnNldFNpemUobmV3U2l6ZSk7Ci0g
ICAgICAgIG1fY29udGVudHNMYXllci0+c2V0T2Zmc2V0RnJvbVJlbmRlcmVyKG1fZ3JhcGhpY3NM
YXllci0+b2Zmc2V0RnJvbVJlbmRlcmVyKCkpOworICAgICAgICBtX2ZvcmVncm91bmRMYXllci0+
c2V0UG9zaXRpb24oSW50UG9pbnQoMCwgMCkpOworICAgICAgICBtX2ZvcmVncm91bmRMYXllci0+
c2V0U2l6ZShuZXdTaXplKTsKKyAgICAgICAgbV9mb3JlZ3JvdW5kTGF5ZXItPnNldE9mZnNldEZy
b21SZW5kZXJlcihtX2dyYXBoaWNzTGF5ZXItPm9mZnNldEZyb21SZW5kZXJlcigpKTsKICAgICB9
CiAKLSAgICBtX2dyYXBoaWNzTGF5ZXItPnVwZGF0ZUNvbnRlbnRzUmVjdCgpOworICAgIG1fZ3Jh
cGhpY3NMYXllci0+c2V0Q29udGVudHNSZWN0KGNvbnRlbnRzQm94KCkpOwogICAgIGlmICghbV9o
YXNEaXJlY3RseUNvbXBvc2l0ZWRDb250ZW50KQogICAgICAgICBtX2dyYXBoaWNzTGF5ZXItPnNl
dERyYXdzQ29udGVudCghaXNTaW1wbGVDb250YWluZXJDb21wb3NpdGluZ0xheWVyKCkgJiYgIXBh
aW50aW5nR29lc1RvV2luZG93KCkpOwogfQogCiB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6dXBk
YXRlSW50ZXJuYWxIaWVyYXJjaHkoKQogewotICAgIC8vIG1fY29udGVudHNMYXllciBoYXMgdG8g
YmUgaW5zZXJ0ZWQgaW4gdGhlIGNvcnJlY3Qgb3JkZXIgd2l0aCBjaGlsZCBsYXllcnMsCisgICAg
Ly8gbV9mb3JlZ3JvdW5kTGF5ZXIgaGFzIHRvIGJlIGluc2VydGVkIGluIHRoZSBjb3JyZWN0IG9y
ZGVyIHdpdGggY2hpbGQgbGF5ZXJzLAogICAgIC8vIHNvIGl0J3Mgbm90IGluc2VydGVkIGhlcmUu
CiAgICAgaWYgKG1fYW5jZXN0b3JDbGlwcGluZ0xheWVyKSB7CiAgICAgICAgIG1fYW5jZXN0b3JD
bGlwcGluZ0xheWVyLT5yZW1vdmVBbGxDaGlsZHJlbigpOwpAQCAtMzYzLDI0ICszNjMsMjQgQEAg
Ym9vbCBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUNsaXBwaW5nTGF5ZXJzKGJvb2wgbmVlZHNB
bmNlc3RvckNsaXAsIGJvb2wgbmVlZHMKICAgICByZXR1cm4gbGF5ZXJzQ2hhbmdlZDsKIH0KIAot
Ym9vbCBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUNvbnRlbnRzTGF5ZXIoYm9vbCBuZWVkc0Nv
bnRlbnRzTGF5ZXIpCitib29sIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlRm9yZWdyb3VuZExh
eWVyKGJvb2wgbmVlZHNGb3JlZ3JvdW5kTGF5ZXIpCiB7CiAgICAgYm9vbCBsYXllckNoYW5nZWQg
PSBmYWxzZTsKLSAgICBpZiAobmVlZHNDb250ZW50c0xheWVyKSB7Ci0gICAgICAgIGlmICghbV9j
b250ZW50c0xheWVyKSB7Ci0gICAgICAgICAgICBtX2NvbnRlbnRzTGF5ZXIgPSBHcmFwaGljc0xh
eWVyOjpjcmVhdGVHcmFwaGljc0xheWVyKHRoaXMpOworICAgIGlmIChuZWVkc0ZvcmVncm91bmRM
YXllcikgeworICAgICAgICBpZiAoIW1fZm9yZWdyb3VuZExheWVyKSB7CisgICAgICAgICAgICBt
X2ZvcmVncm91bmRMYXllciA9IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZUdyYXBoaWNzTGF5ZXIodGhp
cyk7CiAjaWZuZGVmIE5ERUJVRwotICAgICAgICAgICAgbV9jb250ZW50c0xheWVyLT5zZXROYW1l
KCJDb250ZW50cyIpOworICAgICAgICAgICAgbV9mb3JlZ3JvdW5kTGF5ZXItPnNldE5hbWUoIkNv
bnRlbnRzIik7CiAjZW5kaWYKLSAgICAgICAgICAgIG1fY29udGVudHNMYXllci0+c2V0RHJhd3ND
b250ZW50KHRydWUpOwotICAgICAgICAgICAgbV9jb250ZW50c0xheWVyLT5zZXREcmF3aW5nUGhh
c2UoR3JhcGhpY3NMYXllclBhaW50Rm9yZWdyb3VuZE1hc2spOworICAgICAgICAgICAgbV9mb3Jl
Z3JvdW5kTGF5ZXItPnNldERyYXdzQ29udGVudCh0cnVlKTsKKyAgICAgICAgICAgIG1fZm9yZWdy
b3VuZExheWVyLT5zZXREcmF3aW5nUGhhc2UoR3JhcGhpY3NMYXllclBhaW50Rm9yZWdyb3VuZE1h
c2spOwogICAgICAgICAgICAgbV9ncmFwaGljc0xheWVyLT5zZXREcmF3aW5nUGhhc2UoR3JhcGhp
Y3NMYXllclBhaW50QmFja2dyb3VuZE1hc2spOwogICAgICAgICAgICAgbGF5ZXJDaGFuZ2VkID0g
dHJ1ZTsKICAgICAgICAgfQotICAgIH0gZWxzZSBpZiAobV9jb250ZW50c0xheWVyKSB7Ci0gICAg
ICAgIG1fY29udGVudHNMYXllci0+cmVtb3ZlRnJvbVBhcmVudCgpOwotICAgICAgICBkZWxldGUg
bV9jb250ZW50c0xheWVyOwotICAgICAgICBtX2NvbnRlbnRzTGF5ZXIgPSAwOworICAgIH0gZWxz
ZSBpZiAobV9mb3JlZ3JvdW5kTGF5ZXIpIHsKKyAgICAgICAgbV9mb3JlZ3JvdW5kTGF5ZXItPnJl
bW92ZUZyb21QYXJlbnQoKTsKKyAgICAgICAgZGVsZXRlIG1fZm9yZWdyb3VuZExheWVyOworICAg
ICAgICBtX2ZvcmVncm91bmRMYXllciA9IDA7CiAgICAgICAgIG1fZ3JhcGhpY3NMYXllci0+c2V0
RHJhd2luZ1BoYXNlKEdyYXBoaWNzTGF5ZXJQYWludEFsbE1hc2spOwogICAgICAgICBsYXllckNo
YW5nZWQgPSB0cnVlOwogICAgIH0KQEAgLTY1NywxMiArNjU3LDEyIEBAIEZsb2F0UG9pbnQgUmVu
ZGVyTGF5ZXJCYWNraW5nOjpjb21wdXRlUGVyc3BlY3RpdmVPcmlnaW4oY29uc3QgSW50UmVjdCYg
Ym9yZGVyQm94CiB9CiAKIC8vIFJldHVybiB0aGUgb2Zmc2V0IGZyb20gdGhlIHRvcC1sZWZ0IG9m
IHRoaXMgY29tcG9zaXRpbmcgbGF5ZXIgYXQgd2hpY2ggdGhlIHJlbmRlcmVyJ3MgY29udGVudHMg
YXJlIHBhaW50ZWQuCi1JbnRTaXplIFJlbmRlckxheWVyQmFja2luZzo6Y29udGVudE9mZnNldElu
Q29tcG9zdGluZ0xheWVyKCkKK0ludFNpemUgUmVuZGVyTGF5ZXJCYWNraW5nOjpjb250ZW50T2Zm
c2V0SW5Db21wb3N0aW5nTGF5ZXIoKSBjb25zdAogewogICAgIHJldHVybiBJbnRTaXplKC1tX2Nv
bXBvc2l0ZWRCb3VuZHMueCgpLCAtbV9jb21wb3NpdGVkQm91bmRzLnkoKSk7CiB9CiAKLUludFJl
Y3QgUmVuZGVyTGF5ZXJCYWNraW5nOjpjb250ZW50c0JveChjb25zdCBHcmFwaGljc0xheWVyKikK
K0ludFJlY3QgUmVuZGVyTGF5ZXJCYWNraW5nOjpjb250ZW50c0JveCgpIGNvbnN0CiB7CiAgICAg
aWYgKCFyZW5kZXJlcigpLT5pc0JveCgpKQogICAgICAgICByZXR1cm4gSW50UmVjdCgpOwpAQCAt
NzAwLDQ3ICs3MDAsMjggQEAgYm9vbCBSZW5kZXJMYXllckJhY2tpbmc6OnBhaW50aW5nR29lc1Rv
V2luZG93KCkgY29uc3QKIAogdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnNldENvbnRlbnRzTmVl
ZERpc3BsYXkoKQogewotICAgIGJvb2wgbmVlZFZpZXdVcGRhdGUgPSBmYWxzZTsKLQotICAgIGlm
IChtX2dyYXBoaWNzTGF5ZXIgJiYgbV9ncmFwaGljc0xheWVyLT5kcmF3c0NvbnRlbnQoKSkgewor
ICAgIGlmIChtX2dyYXBoaWNzTGF5ZXIgJiYgbV9ncmFwaGljc0xheWVyLT5kcmF3c0NvbnRlbnQo
KSkKICAgICAgICAgbV9ncmFwaGljc0xheWVyLT5zZXROZWVkc0Rpc3BsYXkoKTsKLSAgICAgICAg
bmVlZFZpZXdVcGRhdGUgPSB0cnVlOwotICAgIH0KLSAgICAKLSAgICBpZiAobV9jb250ZW50c0xh
eWVyICYmIG1fY29udGVudHNMYXllci0+ZHJhd3NDb250ZW50KCkpIHsKLSAgICAgICAgbV9jb250
ZW50c0xheWVyLT5zZXROZWVkc0Rpc3BsYXkoKTsKLSAgICAgICAgbmVlZFZpZXdVcGRhdGUgPSB0
cnVlOwotICAgIH0KICAgICAKLSAgICAvLyBNYWtlIHN1cmUgbGF5b3V0IGhhcHBlbnMgYmVmb3Jl
IHdlIGdldCByZW5kZXJlZCBhZ2Fpbi4KLSAgICBpZiAobmVlZFZpZXdVcGRhdGUpCi0gICAgICAg
IGNvbXBvc2l0b3IoKS0+c2NoZWR1bGVWaWV3VXBkYXRlKCk7CisgICAgaWYgKG1fZm9yZWdyb3Vu
ZExheWVyICYmIG1fZm9yZWdyb3VuZExheWVyLT5kcmF3c0NvbnRlbnQoKSkKKyAgICAgICAgbV9m
b3JlZ3JvdW5kTGF5ZXItPnNldE5lZWRzRGlzcGxheSgpOwogfQogCiAvLyByIGlzIGluIHRoZSBj
b29yZGluYXRlIHNwYWNlIG9mIHRoZSBsYXllcidzIHJlbmRlciBvYmplY3QKIHZvaWQgUmVuZGVy
TGF5ZXJCYWNraW5nOjpzZXRDb250ZW50c05lZWREaXNwbGF5SW5SZWN0KGNvbnN0IEludFJlY3Qm
IHIpCiB7Ci0gICAgYm9vbCBuZWVkVmlld1VwZGF0ZSA9IGZhbHNlOwotCiAgICAgaWYgKG1fZ3Jh
cGhpY3NMYXllciAmJiBtX2dyYXBoaWNzTGF5ZXItPmRyYXdzQ29udGVudCgpKSB7CiAgICAgICAg
IEZsb2F0UG9pbnQgZGlydHlPcmlnaW4gPSBjb250ZW50c1RvR3JhcGhpY3NMYXllckNvb3JkaW5h
dGVzKG1fZ3JhcGhpY3NMYXllciwgRmxvYXRQb2ludChyLngoKSwgci55KCkpKTsKICAgICAgICAg
RmxvYXRSZWN0IGRpcnR5UmVjdChkaXJ0eU9yaWdpbiwgci5zaXplKCkpOwogICAgICAgICBGbG9h
dFJlY3QgYm91bmRzKEZsb2F0UG9pbnQoKSwgbV9ncmFwaGljc0xheWVyLT5zaXplKCkpOwotICAg
ICAgICBpZiAoYm91bmRzLmludGVyc2VjdHMoZGlydHlSZWN0KSkgeworICAgICAgICBpZiAoYm91
bmRzLmludGVyc2VjdHMoZGlydHlSZWN0KSkKICAgICAgICAgICAgIG1fZ3JhcGhpY3NMYXllci0+
c2V0TmVlZHNEaXNwbGF5SW5SZWN0KGRpcnR5UmVjdCk7Ci0gICAgICAgICAgICBuZWVkVmlld1Vw
ZGF0ZSA9IHRydWU7Ci0gICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAobV9jb250ZW50c0xheWVy
ICYmIG1fY29udGVudHNMYXllci0+ZHJhd3NDb250ZW50KCkpIHsKKyAgICBpZiAobV9mb3JlZ3Jv
dW5kTGF5ZXIgJiYgbV9mb3JlZ3JvdW5kTGF5ZXItPmRyYXdzQ29udGVudCgpKSB7CiAgICAgICAg
IC8vIEZJWE1FOiBkbyBpbmNyZW1lbnRhbCByZXBhaW50Ci0gICAgICAgIG1fY29udGVudHNMYXll
ci0+c2V0TmVlZHNEaXNwbGF5KCk7Ci0gICAgICAgIG5lZWRWaWV3VXBkYXRlID0gdHJ1ZTsKKyAg
ICAgICAgbV9mb3JlZ3JvdW5kTGF5ZXItPnNldE5lZWRzRGlzcGxheSgpOwogICAgIH0KLQotICAg
IC8vIE1ha2Ugc3VyZSBsYXlvdXQgaGFwcGVucyBiZWZvcmUgd2UgZ2V0IHJlbmRlcmVkIGFnYWlu
LgotICAgIGlmIChuZWVkVmlld1VwZGF0ZSkKLSAgICAgICAgY29tcG9zaXRvcigpLT5zY2hlZHVs
ZVZpZXdVcGRhdGUoKTsKIH0KIAogc3RhdGljIHZvaWQgc2V0Q2xpcChHcmFwaGljc0NvbnRleHQq
IHAsIGNvbnN0IEludFJlY3QmIHBhaW50RGlydHlSZWN0LCBjb25zdCBJbnRSZWN0JiBjbGlwUmVj
dCkKQEAgLTk0Miw4ICs5MjMsOCBAQCBib29sIFJlbmRlckxheWVyQmFja2luZzo6c3RhcnRBbmlt
YXRpb24oZG91YmxlIGJlZ2luVGltZSwgY29uc3QgQW5pbWF0aW9uKiBhbmltLAogICAgIGlmICgh
aGFzT3BhY2l0eSAmJiAhaGFzVHJhbnNmb3JtKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
Ci0gICAgR3JhcGhpY3NMYXllcjo6VHJhbnNmb3JtVmFsdWVMaXN0IHRyYW5zZm9ybVZlY3RvcjsK
LSAgICBHcmFwaGljc0xheWVyOjpGbG9hdFZhbHVlTGlzdCBvcGFjaXR5VmVjdG9yOworICAgIEtl
eWZyYW1lVmFsdWVMaXN0IHRyYW5zZm9ybVZlY3RvcihBbmltYXRlZFByb3BlcnR5V2Via2l0VHJh
bnNmb3JtKTsKKyAgICBLZXlmcmFtZVZhbHVlTGlzdCBvcGFjaXR5VmVjdG9yKEFuaW1hdGVkUHJv
cGVydHlPcGFjaXR5KTsKIAogICAgIGZvciAoVmVjdG9yPEtleWZyYW1lVmFsdWU+Ojpjb25zdF9p
dGVyYXRvciBpdCA9IGtleWZyYW1lcy5iZWdpbktleWZyYW1lcygpOyBpdCAhPSBrZXlmcmFtZXMu
ZW5kS2V5ZnJhbWVzKCk7ICsraXQpIHsKICAgICAgICAgY29uc3QgUmVuZGVyU3R5bGUqIGtleWZy
YW1lU3R5bGUgPSBpdC0+c3R5bGUoKTsKQEAgLTk1NiwxOSArOTM3LDE5IEBAIGJvb2wgUmVuZGVy
TGF5ZXJCYWNraW5nOjpzdGFydEFuaW1hdGlvbihkb3VibGUgYmVnaW5UaW1lLCBjb25zdCBBbmlt
YXRpb24qIGFuaW0sCiAgICAgICAgIGNvbnN0IFRpbWluZ0Z1bmN0aW9uKiB0ZiA9IGtleWZyYW1l
U3R5bGUtPmhhc0FuaW1hdGlvbnMoKSA/ICYoKCprZXlmcmFtZVN0eWxlLT5hbmltYXRpb25zKCkp
LmFuaW1hdGlvbigwKS0+dGltaW5nRnVuY3Rpb24oKSkgOiAwOwogICAgICAgICAKICAgICAgICAg
aWYgKGhhc1RyYW5zZm9ybSkKLSAgICAgICAgICAgIHRyYW5zZm9ybVZlY3Rvci5pbnNlcnQoa2V5
LCAmKGtleWZyYW1lU3R5bGUtPnRyYW5zZm9ybSgpKSwgdGYpOwotCisgICAgICAgICAgICB0cmFu
c2Zvcm1WZWN0b3IuaW5zZXJ0KG5ldyBUcmFuc2Zvcm1BbmltYXRpb25WYWx1ZShrZXksICYoa2V5
ZnJhbWVTdHlsZS0+dHJhbnNmb3JtKCkpLCB0ZikpOworICAgICAgICAKICAgICAgICAgaWYgKGhh
c09wYWNpdHkpCi0gICAgICAgICAgICBvcGFjaXR5VmVjdG9yLmluc2VydChrZXksIGtleWZyYW1l
U3R5bGUtPm9wYWNpdHkoKSwgdGYpOworICAgICAgICAgICAgb3BhY2l0eVZlY3Rvci5pbnNlcnQo
bmV3IEZsb2F0QW5pbWF0aW9uVmFsdWUoa2V5LCBrZXlmcmFtZVN0eWxlLT5vcGFjaXR5KCksIHRm
KSk7CiAgICAgfQogCiAgICAgYm9vbCBkaWRBbmltYXRlVHJhbnNmb3JtID0gIWhhc1RyYW5zZm9y
bTsKICAgICBib29sIGRpZEFuaW1hdGVPcGFjaXR5ID0gIWhhc09wYWNpdHk7CiAgICAgCi0gICAg
aWYgKGhhc1RyYW5zZm9ybSAmJiBtX2dyYXBoaWNzTGF5ZXItPmFuaW1hdGVUcmFuc2Zvcm0odHJh
bnNmb3JtVmVjdG9yLCB0b1JlbmRlckJveChyZW5kZXJlcigpKS0+Ym9yZGVyQm94UmVjdCgpLnNp
emUoKSwgYW5pbSwgYmVnaW5UaW1lLCBmYWxzZSkpCisgICAgaWYgKGhhc1RyYW5zZm9ybSAmJiBt
X2dyYXBoaWNzTGF5ZXItPmFkZEFuaW1hdGlvbih0cmFuc2Zvcm1WZWN0b3IsIHRvUmVuZGVyQm94
KHJlbmRlcmVyKCkpLT5ib3JkZXJCb3hSZWN0KCkuc2l6ZSgpLCBhbmltLCBrZXlmcmFtZXMuYW5p
bWF0aW9uTmFtZSgpLCBiZWdpblRpbWUpKQogICAgICAgICBkaWRBbmltYXRlVHJhbnNmb3JtID0g
dHJ1ZTsKIAotICAgIGlmIChoYXNPcGFjaXR5ICYmIG1fZ3JhcGhpY3NMYXllci0+YW5pbWF0ZUZs
b2F0KEFuaW1hdGVkUHJvcGVydHlPcGFjaXR5LCBvcGFjaXR5VmVjdG9yLCBhbmltLCBiZWdpblRp
bWUpKQorICAgIGlmIChoYXNPcGFjaXR5ICYmIG1fZ3JhcGhpY3NMYXllci0+YWRkQW5pbWF0aW9u
KG9wYWNpdHlWZWN0b3IsIEludFNpemUoKSwgYW5pbSwga2V5ZnJhbWVzLmFuaW1hdGlvbk5hbWUo
KSwgYmVnaW5UaW1lKSkKICAgICAgICAgZGlkQW5pbWF0ZU9wYWNpdHkgPSB0cnVlOwogICAgIAog
ICAgIGJvb2wgcnVubmluZ0FjY2VsZXJhdGVkQW5pbWF0aW9uID0gZGlkQW5pbWF0ZVRyYW5zZm9y
bSAmJiBkaWRBbmltYXRlT3BhY2l0eTsKQEAgLTk4NiwyNiArOTY3LDIxIEBAIGJvb2wgUmVuZGVy
TGF5ZXJCYWNraW5nOjpzdGFydFRyYW5zaXRpb24oZG91YmxlIGJlZ2luVGltZSwgaW50IHByb3Bl
cnR5LCBjb25zdCBSCiAgICAgaWYgKHByb3BlcnR5ID09IChpbnQpQ1NTUHJvcGVydHlPcGFjaXR5
KSB7CiAgICAgICAgIGNvbnN0IEFuaW1hdGlvbiogb3BhY2l0eUFuaW0gPSB0b1N0eWxlLT50cmFu
c2l0aW9uRm9yUHJvcGVydHkoQ1NTUHJvcGVydHlPcGFjaXR5KTsKICAgICAgICAgaWYgKG9wYWNp
dHlBbmltICYmICFvcGFjaXR5QW5pbS0+aXNFbXB0eU9yWmVyb0R1cmF0aW9uKCkpIHsKLSAgICAg
ICAgICAgIC8vIElmIGJlZ2luVGltZSBpcyBub3QgMCwgd2UgYXJlIHJlc3RhcnRpbmcgdGhpcyB0
cmFuc2l0aW9uLCBzbyBmaXJzdCBzZXQgdGhlIGZyb20gdmFsdWUKLSAgICAgICAgICAgIC8vIGlu
IGNhc2UgaXQgd2FzIHNtYXNoZWQgYnkgYSBwcmV2aW91cyBhbmltYXRpb24uCi0gICAgICAgICAg
ICBpZiAoYmVnaW5UaW1lID4gMCkKLSAgICAgICAgICAgICAgICBtX2dyYXBoaWNzTGF5ZXItPnNl
dE9wYWNpdHkoY29tcG9zaXRpbmdPcGFjaXR5KGZyb21TdHlsZS0+b3BhY2l0eSgpKSwgMCwgMCk7
Ci0KLSAgICAgICAgICAgIGlmIChtX2dyYXBoaWNzTGF5ZXItPnNldE9wYWNpdHkoY29tcG9zaXRp
bmdPcGFjaXR5KHRvU3R5bGUtPm9wYWNpdHkoKSksIG9wYWNpdHlBbmltLCBiZWdpblRpbWUpKQor
ICAgICAgICAgICAgS2V5ZnJhbWVWYWx1ZUxpc3Qgb3BhY2l0eVZlY3RvcihBbmltYXRlZFByb3Bl
cnR5T3BhY2l0eSk7CisgICAgICAgICAgICBvcGFjaXR5VmVjdG9yLmluc2VydChuZXcgRmxvYXRB
bmltYXRpb25WYWx1ZSgwLCBjb21wb3NpdGluZ09wYWNpdHkoZnJvbVN0eWxlLT5vcGFjaXR5KCkp
KSk7CisgICAgICAgICAgICBvcGFjaXR5VmVjdG9yLmluc2VydChuZXcgRmxvYXRBbmltYXRpb25W
YWx1ZSgxLCBjb21wb3NpdGluZ09wYWNpdHkodG9TdHlsZS0+b3BhY2l0eSgpKSkpOworICAgICAg
ICAgICAgaWYgKG1fZ3JhcGhpY3NMYXllci0+YWRkQW5pbWF0aW9uKG9wYWNpdHlWZWN0b3IsIHRv
UmVuZGVyQm94KHJlbmRlcmVyKCkpLT5ib3JkZXJCb3hSZWN0KCkuc2l6ZSgpLCBvcGFjaXR5QW5p
bSwgU3RyaW5nKCksIGJlZ2luVGltZSkpCiAgICAgICAgICAgICAgICAgZGlkQW5pbWF0ZSA9IHRy
dWU7CiAgICAgICAgIH0KICAgICB9CiAKICAgICBpZiAocHJvcGVydHkgPT0gKGludClDU1NQcm9w
ZXJ0eVdlYmtpdFRyYW5zZm9ybSAmJiBtX293bmluZ0xheWVyLT5oYXNUcmFuc2Zvcm0oKSkgewot
ICAgICAgICAvLyBXZSBnZXQgYSBUcmFuc2Zvcm1PcGVyYXRpb24sIHdoaWNoIGlzIGEgbGlua2Vk
IGxpc3Qgb2YgcHJpbWl0aXZlIG9wZXJhdGlvbnMgYW5kIHRoZWlyIGFyZ3VtZW50cy4KLSAgICAg
ICAgLy8gQXJndW1lbnRzIGNhbiBiZSBmbG9hdHMgb3IgTGVuZ3RoIHZhbHVlcywgd2hpY2ggbmVl
ZCB0byBiZSBjb252ZXJ0ZWQgdG8gbnVtYmVycyB1c2luZwotICAgICAgICAvLyB2YWwuY2FsY0Zs
b2F0VmFsdWUocmVuZGVyZXIoKS0+d2lkdGgoKSkgKG9yIGhlaWdodCgpKS4KICAgICAgICAgY29u
c3QgQW5pbWF0aW9uKiB0cmFuc2Zvcm1BbmltID0gdG9TdHlsZS0+dHJhbnNpdGlvbkZvclByb3Bl
cnR5KENTU1Byb3BlcnR5V2Via2l0VHJhbnNmb3JtKTsKICAgICAgICAgaWYgKHRyYW5zZm9ybUFu
aW0gJiYgIXRyYW5zZm9ybUFuaW0tPmlzRW1wdHlPclplcm9EdXJhdGlvbigpKSB7Ci0gICAgICAg
ICAgICBHcmFwaGljc0xheWVyOjpUcmFuc2Zvcm1WYWx1ZUxpc3QgdHJhbnNmb3JtVmVjdG9yOwot
ICAgICAgICAgICAgdHJhbnNmb3JtVmVjdG9yLmluc2VydCgwLCAmZnJvbVN0eWxlLT50cmFuc2Zv
cm0oKSwgMCk7ICAgICAgICAKLSAgICAgICAgICAgIHRyYW5zZm9ybVZlY3Rvci5pbnNlcnQoMSwg
JnRvU3R5bGUtPnRyYW5zZm9ybSgpLCAwKTsgICAgICAgIAotICAgICAgICAgICAgaWYgKG1fZ3Jh
cGhpY3NMYXllci0+YW5pbWF0ZVRyYW5zZm9ybSh0cmFuc2Zvcm1WZWN0b3IsIHRvUmVuZGVyQm94
KHJlbmRlcmVyKCkpLT5ib3JkZXJCb3hSZWN0KCkuc2l6ZSgpLCB0cmFuc2Zvcm1BbmltLCBiZWdp
blRpbWUsIHRydWUpKQorICAgICAgICAgICAgS2V5ZnJhbWVWYWx1ZUxpc3QgdHJhbnNmb3JtVmVj
dG9yKEFuaW1hdGVkUHJvcGVydHlXZWJraXRUcmFuc2Zvcm0pOworICAgICAgICAgICAgdHJhbnNm
b3JtVmVjdG9yLmluc2VydChuZXcgVHJhbnNmb3JtQW5pbWF0aW9uVmFsdWUoMCwgJmZyb21TdHls
ZS0+dHJhbnNmb3JtKCkpKTsKKyAgICAgICAgICAgIHRyYW5zZm9ybVZlY3Rvci5pbnNlcnQobmV3
IFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlKDEsICZ0b1N0eWxlLT50cmFuc2Zvcm0oKSkpOworICAg
ICAgICAgICAgaWYgKG1fZ3JhcGhpY3NMYXllci0+YWRkQW5pbWF0aW9uKHRyYW5zZm9ybVZlY3Rv
ciwgdG9SZW5kZXJCb3gocmVuZGVyZXIoKSktPmJvcmRlckJveFJlY3QoKS5zaXplKCksIHRyYW5z
Zm9ybUFuaW0sIFN0cmluZygpLCBiZWdpblRpbWUpKQogICAgICAgICAgICAgICAgIGRpZEFuaW1h
dGUgPSB0cnVlOwogICAgICAgICB9CiAgICAgfQpAQCAtMTAyMSwxNiArOTk3LDI3IEBAIHZvaWQg
UmVuZGVyTGF5ZXJCYWNraW5nOjpub3RpZnlBbmltYXRpb25TdGFydGVkKGNvbnN0IEdyYXBoaWNz
TGF5ZXIqLCBkb3VibGUgdGltCiAgICAgcmVuZGVyZXIoKS0+YW5pbWF0aW9uKCktPm5vdGlmeUFu
aW1hdGlvblN0YXJ0ZWQocmVuZGVyZXIoKSwgdGltZSk7CiB9CiAKLXZvaWQgUmVuZGVyTGF5ZXJC
YWNraW5nOjphbmltYXRpb25GaW5pc2hlZChjb25zdCBTdHJpbmcmIG5hbWUsIGludCBpbmRleCwg
Ym9vbCByZXNldCkKK3ZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpub3RpZnlTeW5jUmVxdWlyZWQo
Y29uc3QgR3JhcGhpY3NMYXllciopCit7CisgICAgaWYgKCFyZW5kZXJlcigpLT5kb2N1bWVudEJl
aW5nRGVzdHJveWVkKCkpCisgICAgICAgIGNvbXBvc2l0b3IoKS0+c2NoZWR1bGVTeW5jKCk7Cit9
CisKK3ZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjphbmltYXRpb25GaW5pc2hlZChjb25zdCBTdHJp
bmcmIGFuaW1hdGlvbk5hbWUpCit7CisgICAgbV9ncmFwaGljc0xheWVyLT5yZW1vdmVBbmltYXRp
b25zRm9yS2V5ZnJhbWVzKGFuaW1hdGlvbk5hbWUpOworfQorCit2b2lkIFJlbmRlckxheWVyQmFj
a2luZzo6YW5pbWF0aW9uUGF1c2VkKGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uTmFtZSkKIHsKLSAg
ICBtX2dyYXBoaWNzTGF5ZXItPnJlbW92ZUZpbmlzaGVkQW5pbWF0aW9ucyhuYW1lLCBpbmRleCwg
cmVzZXQpOworICAgIG1fZ3JhcGhpY3NMYXllci0+cGF1c2VBbmltYXRpb24oYW5pbWF0aW9uTmFt
ZSk7CiB9CiAKIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjp0cmFuc2l0aW9uRmluaXNoZWQoaW50
IHByb3BlcnR5KQogewogICAgIEFuaW1hdGVkUHJvcGVydHlJRCBhbmltYXRlZFByb3BlcnR5ID0g
Y3NzVG9HcmFwaGljc0xheWVyUHJvcGVydHkocHJvcGVydHkpOwogICAgIGlmIChhbmltYXRlZFBy
b3BlcnR5ICE9IEFuaW1hdGVkUHJvcGVydHlJbnZhbGlkKQotICAgICAgICBtX2dyYXBoaWNzTGF5
ZXItPnJlbW92ZUZpbmlzaGVkVHJhbnNpdGlvbnMoYW5pbWF0ZWRQcm9wZXJ0eSk7CisgICAgICAg
IG1fZ3JhcGhpY3NMYXllci0+cmVtb3ZlQW5pbWF0aW9uc0ZvclByb3BlcnR5KGFuaW1hdGVkUHJv
cGVydHkpOwogfQogCiB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6c3VzcGVuZEFuaW1hdGlvbnMo
KQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmggYi9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaAppbmRleCAyNWIxYTMxLi5jYzRk
NzVkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaAor
KysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaApAQCAtNzMsOCArNzMs
OCBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNBbmNlc3RvckNsaXBwaW5nTGF5ZXIoKSBjb25zdCB7
IHJldHVybiBtX2FuY2VzdG9yQ2xpcHBpbmdMYXllciAhPSAwOyB9CiAgICAgR3JhcGhpY3NMYXll
ciogYW5jZXN0b3JDbGlwcGluZ0xheWVyKCkgY29uc3QgeyByZXR1cm4gbV9hbmNlc3RvckNsaXBw
aW5nTGF5ZXI7IH0KIAotICAgIGJvb2wgaGFzQ29udGVudHNMYXllcigpIGNvbnN0IHsgcmV0dXJu
IG1fY29udGVudHNMYXllciAhPSAwOyB9Ci0gICAgR3JhcGhpY3NMYXllciogY29udGVudHNMYXll
cigpIGNvbnN0IHsgcmV0dXJuIG1fY29udGVudHNMYXllcjsgfQorICAgIGJvb2wgaGFzQ29udGVu
dHNMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fZm9yZWdyb3VuZExheWVyICE9IDA7IH0KKyAgICBH
cmFwaGljc0xheWVyKiBmb3JlZ3JvdW5kTGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX2ZvcmVncm91
bmRMYXllcjsgfQogICAgIAogICAgIEdyYXBoaWNzTGF5ZXIqIHBhcmVudEZvclN1YmxheWVycygp
IGNvbnN0IHsgcmV0dXJuIG1fY2xpcHBpbmdMYXllciA/IG1fY2xpcHBpbmdMYXllciA6IG1fZ3Jh
cGhpY3NMYXllcjsgfQogICAgIEdyYXBoaWNzTGF5ZXIqIGNoaWxkRm9yU3VwZXJsYXllcnMoKSBj
b25zdCB7IHJldHVybiBtX2FuY2VzdG9yQ2xpcHBpbmdMYXllciA/IG1fYW5jZXN0b3JDbGlwcGlu
Z0xheWVyIDogbV9ncmFwaGljc0xheWVyOyB9CkBAIC05Nyw3ICs5Nyw4IEBAIHB1YmxpYzoKICAg
ICAvLyBJbnRlcmZhY2UgdG8gc3RhcnQsIGZpbmlzaCwgc3VzcGVuZCBhbmQgcmVzdW1lIGFuaW1h
dGlvbnMgYW5kIHRyYW5zaXRpb25zCiAgICAgYm9vbCBzdGFydEFuaW1hdGlvbihkb3VibGUgYmVn
aW5UaW1lLCBjb25zdCBBbmltYXRpb24qIGFuaW0sIGNvbnN0IEtleWZyYW1lTGlzdCYga2V5ZnJh
bWVzKTsKICAgICBib29sIHN0YXJ0VHJhbnNpdGlvbihkb3VibGUgYmVnaW5UaW1lLCBpbnQgcHJv
cGVydHksIGNvbnN0IFJlbmRlclN0eWxlKiBmcm9tU3R5bGUsIGNvbnN0IFJlbmRlclN0eWxlKiB0
b1N0eWxlKTsKLSAgICB2b2lkIGFuaW1hdGlvbkZpbmlzaGVkKGNvbnN0IFN0cmluZyYgbmFtZSwg
aW50IGluZGV4LCBib29sIHJlc2V0KTsKKyAgICB2b2lkIGFuaW1hdGlvbkZpbmlzaGVkKGNvbnN0
IFN0cmluZyYgbmFtZSk7CisgICAgdm9pZCBhbmltYXRpb25QYXVzZWQoY29uc3QgU3RyaW5nJiBu
YW1lKTsKICAgICB2b2lkIHRyYW5zaXRpb25GaW5pc2hlZChpbnQgcHJvcGVydHkpOwogCiAgICAg
dm9pZCBzdXNwZW5kQW5pbWF0aW9ucygpOwpAQCAtMTExLDEwICsxMTIsMTEgQEAgcHVibGljOgog
CiAgICAgLy8gR3JhcGhpY3NMYXllckNsaWVudCBpbnRlcmZhY2UKICAgICB2aXJ0dWFsIHZvaWQg
bm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBHcmFwaGljc0xheWVyKiwgZG91YmxlIHN0YXJ0
VGltZSk7CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeVN5bmNSZXF1aXJlZChjb25zdCBHcmFwaGlj
c0xheWVyKik7CiAKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGlj
c0xheWVyKiwgR3JhcGhpY3NDb250ZXh0JiwgR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNv
bnN0IEludFJlY3QmIGNsaXApOwogCi0gICAgdmlydHVhbCBJbnRSZWN0IGNvbnRlbnRzQm94KGNv
bnN0IEdyYXBoaWNzTGF5ZXIqKTsKKyAgICBJbnRSZWN0IGNvbnRlbnRzQm94KCkgY29uc3Q7CiAg
ICAgCiBwcml2YXRlOgogICAgIHZvaWQgY3JlYXRlR3JhcGhpY3NMYXllcigpOwpAQCAtMTI0LDkg
KzEyNiw5IEBAIHByaXZhdGU6CiAgICAgUmVuZGVyTGF5ZXJDb21wb3NpdG9yKiBjb21wb3NpdG9y
KCkgY29uc3QgeyByZXR1cm4gbV9vd25pbmdMYXllci0+Y29tcG9zaXRvcigpOyB9CiAKICAgICBi
b29sIHVwZGF0ZUNsaXBwaW5nTGF5ZXJzKGJvb2wgbmVlZHNBbmNlc3RvckNsaXAsIGJvb2wgbmVl
ZHNEZXNjZW5kYW50Q2xpcCk7Ci0gICAgYm9vbCB1cGRhdGVDb250ZW50c0xheWVyKGJvb2wgbmVl
ZHNDb250ZW50c0xheWVyKTsKKyAgICBib29sIHVwZGF0ZUZvcmVncm91bmRMYXllcihib29sIG5l
ZWRzRm9yZWdyb3VuZExheWVyKTsKIAotICAgIEludFNpemUgY29udGVudE9mZnNldEluQ29tcG9z
dGluZ0xheWVyKCk7CisgICAgSW50U2l6ZSBjb250ZW50T2Zmc2V0SW5Db21wb3N0aW5nTGF5ZXIo
KSBjb25zdDsKICAgICAvLyBSZXN1bHQgaXMgdHJhbnNmb3JtIG9yaWdpbiBpbiBwaXhlbHMuCiAg
ICAgRmxvYXRQb2ludDNEIGNvbXB1dGVUcmFuc2Zvcm1PcmlnaW4oY29uc3QgSW50UmVjdCYgYm9y
ZGVyQm94KSBjb25zdDsKICAgICAvLyBSZXN1bHQgaXMgcGVyc3BlY3RpdmUgb3JpZ2luIGluIHBp
eGVscy4KQEAgLTE2Miw3ICsxNjQsNyBAQCBwcml2YXRlOgogCiAgICAgR3JhcGhpY3NMYXllciog
bV9hbmNlc3RvckNsaXBwaW5nTGF5ZXI7IC8vIG9ubHkgdXNlZCBpZiB3ZSBhcmUgY2xpcHBlZCBi
eSBhbiBhbmNlc3RvciB3aGljaCBpcyBub3QgYSBzdGFja2luZyBjb250ZXh0CiAgICAgR3JhcGhp
Y3NMYXllciogbV9ncmFwaGljc0xheWVyOwotICAgIEdyYXBoaWNzTGF5ZXIqIG1fY29udGVudHNM
YXllcjsgICAgICAgICAvLyBvbmx5IHVzZWQgaW4gY2FzZXMgd2hlcmUgd2UgbmVlZCB0byBkcmF3
IHRoZSBmb3JlZ3JvdW5kIHNlcGFyYXRlbHkKKyAgICBHcmFwaGljc0xheWVyKiBtX2ZvcmVncm91
bmRMYXllcjsgICAgICAgLy8gb25seSB1c2VkIGluIGNhc2VzIHdoZXJlIHdlIG5lZWQgdG8gZHJh
dyB0aGUgZm9yZWdyb3VuZCBzZXBhcmF0ZWx5CiAgICAgR3JhcGhpY3NMYXllciogbV9jbGlwcGlu
Z0xheWVyOyAgICAgICAgIC8vIG9ubHkgdXNlZCBpZiB3ZSBoYXZlIGNsaXBwaW5nIG9uIGEgc3Rh
Y2tpbmcgY29udGV4dCwgd2l0aCBjb21wb3NpdGluZyBjaGlsZHJlbgogCiAgICAgSW50UmVjdCBt
X2NvbXBvc2l0ZWRCb3VuZHM7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllckNvbXBvc2l0b3IuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3Np
dG9yLmNwcAppbmRleCAzNDg5ODI4Li4xMDJjOGE5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQ29tcG9zaXRvci5jcHAKQEAgLTEyNCwyMiArMTI0LDE4IEBAIHZvaWQgUmVuZGVy
TGF5ZXJDb21wb3NpdG9yOjpjYWNoZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkRmxhZygp
CiAKIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpzZXRDb21wb3NpdGluZ0xheWVyc05lZWRS
ZWJ1aWxkKGJvb2wgbmVlZFJlYnVpbGQpCiB7Ci0gICAgaWYgKGluQ29tcG9zaXRpbmdNb2RlKCkp
IHsKLSAgICAgICAgaWYgKCFtX2NvbXBvc2l0aW5nTGF5ZXJzTmVlZFJlYnVpbGQgJiYgbmVlZFJl
YnVpbGQpCi0gICAgICAgICAgICBzY2hlZHVsZVZpZXdVcGRhdGUoKTsKLQorICAgIGlmIChpbkNv
bXBvc2l0aW5nTW9kZSgpKQogICAgICAgICBtX2NvbXBvc2l0aW5nTGF5ZXJzTmVlZFJlYnVpbGQg
PSBuZWVkUmVidWlsZDsKLSAgICB9CiB9CiAKLXZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpz
Y2hlZHVsZVZpZXdVcGRhdGUoKQordm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnNjaGVkdWxl
U3luYygpCiB7CiAgICAgRnJhbWUqIGZyYW1lID0gbV9yZW5kZXJWaWV3LT5mcmFtZVZpZXcoKS0+
ZnJhbWUoKTsKICAgICBQYWdlKiBwYWdlID0gZnJhbWUgPyBmcmFtZS0+cGFnZSgpIDogMDsKICAg
ICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIHBhZ2UtPmNocm9tZSgpLT5jbGll
bnQoKS0+c2NoZWR1bGVWaWV3VXBkYXRlKCk7CisgICAgcGFnZS0+Y2hyb21lKCktPmNsaWVudCgp
LT5zY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJTeW5jKCk7CiB9CiAKIHZvaWQgUmVuZGVyTGF5ZXJD
b21wb3NpdG9yOjp1cGRhdGVDb21wb3NpdGluZ0xheWVycyhSZW5kZXJMYXllciogdXBkYXRlUm9v
dCkKQEAgLTYzNSwxMiArNjMxLDEyIEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZWJ1
aWxkQ29tcG9zaXRpbmdMYXllclRyZWUoUmVuZGVyTGF5ZXIqIGxheWVyLCBzdHJ1CiAgICAgICAg
ICAgICB9CiAgICAgICAgIH0KIAotICAgICAgICBpZiAodXBkYXRlSGllcmFyY2h5ICYmIGxheWVy
QmFja2luZyAmJiBsYXllckJhY2tpbmctPmNvbnRlbnRzTGF5ZXIoKSkgeworICAgICAgICBpZiAo
dXBkYXRlSGllcmFyY2h5ICYmIGxheWVyQmFja2luZyAmJiBsYXllckJhY2tpbmctPmZvcmVncm91
bmRMYXllcigpKSB7CiAgICAgICAgICAgICAvLyB3ZSBvbmx5IGhhdmUgYSBjb250ZW50cyBsYXll
ciBpZiB3ZSBoYXZlIGFuIG1fbGF5ZXIKLSAgICAgICAgICAgIGxheWVyQmFja2luZy0+Y29udGVu
dHNMYXllcigpLT5yZW1vdmVGcm9tUGFyZW50KCk7CisgICAgICAgICAgICBsYXllckJhY2tpbmct
PmZvcmVncm91bmRMYXllcigpLT5yZW1vdmVGcm9tUGFyZW50KCk7CiAKICAgICAgICAgICAgIEdy
YXBoaWNzTGF5ZXIqIGhvc3RpbmdMYXllciA9IGxheWVyQmFja2luZy0+Y2xpcHBpbmdMYXllcigp
ID8gbGF5ZXJCYWNraW5nLT5jbGlwcGluZ0xheWVyKCkgOiBsYXllckJhY2tpbmctPmdyYXBoaWNz
TGF5ZXIoKTsKLSAgICAgICAgICAgIGhvc3RpbmdMYXllci0+YWRkQ2hpbGQobGF5ZXJCYWNraW5n
LT5jb250ZW50c0xheWVyKCkpOworICAgICAgICAgICAgaG9zdGluZ0xheWVyLT5hZGRDaGlsZChs
YXllckJhY2tpbmctPmZvcmVncm91bmRMYXllcigpKTsKICAgICAgICAgfQogICAgIH0KIApkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmggYi9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaAppbmRleCA3NzhlY2NjLi40MjY2
NGE4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3Iu
aAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaApAQCAtNzQs
NyArNzQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRDb21wb3NpdGluZ0NvbnN1bHRzT3Zlcmxh
cChib29sIGIpIHsgbV9jb21wb3NpdGluZ0NvbnN1bHRzT3ZlcmxhcCA9IGI7IH0KICAgICBib29s
IGNvbXBvc2l0aW5nQ29uc3VsdHNPdmVybGFwKCkgY29uc3QgeyByZXR1cm4gbV9jb21wb3NpdGlu
Z0NvbnN1bHRzT3ZlcmxhcDsgfQogICAgIAotICAgIHZvaWQgc2NoZWR1bGVWaWV3VXBkYXRlKCk7
CisgICAgdm9pZCBzY2hlZHVsZVN5bmMoKTsKICAgICAKICAgICAvLyBSZWJ1aWxkIHRoZSB0cmVl
IG9mIGNvbXBvc2l0aW5nIGxheWVycwogICAgIHZvaWQgdXBkYXRlQ29tcG9zaXRpbmdMYXllcnMo
UmVuZGVyTGF5ZXIqIHVwZGF0ZVJvb3QgPSAwKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvQ2hh
bmdlTG9nIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggMzc2NzVmNi4uOTUxYTlhMSAxMDA2
NDQKLS0tIGEvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwzNCBAQAorMjAwOS0wNy0zMSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2Vy
QGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBOZWVkIGEgc2hvcnQgZGVzY3JpcHRpb24gYW5kIGJ1ZyBVUkwgKE9PUFMhKQorCisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50Ojpz
Y2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJTeW5jKToKKyAgICAgICAgc2NoZWR1bGVWaWV3VXBkYXRl
KCkgcmVuYW1lZCB0byBzeW5jQ29tcG9zaXRpbmdTdGF0ZVJlY3Vyc2l2ZSgpCisgICAgICAgIAor
ICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfY2xvc2Vd
KToKKyAgICAgICAgKC1bV2ViVmlldyBfY2xlYXJMYXllclN5bmNMb29wT2JzZXJ2ZXJdKToKKyAg
ICAgICAgInZpZXdVcGRhdGVSdW5Mb29wT2JzZXJ2ZXIiIGlzIG5vdyAibGF5ZXJTeW5jTG9vcE9i
c2VydmVyIi4KKworICAgICAgICAoLVtXZWJWaWV3IF9zeW5jQ29tcG9zaXRpbmdDaGFuZ2VzXSk6
CisgICAgICAgIEhlbHBlciBtZXRob2QgdGhhdCBjYWxscyBzeW5jQ29tcG9zaXRpbmdTdGF0ZVJl
Y3Vyc2l2ZSgpIG9uIHRoZSBGcmFtZVZpZXcuCisgICAgICAgIAorICAgICAgICAobGF5ZXJTeW5j
UnVuTG9vcE9ic2VydmVyQ2FsbEJhY2spOgorICAgICAgICAoLVtXZWJWaWV3IF9zY2hlZHVsZUNv
bXBvc2l0aW5nTGF5ZXJTeW5jXSk6CisgICAgICAgIFRoaXMgaXMgYWxsIGFib3V0IGxheWVyIHN5
Y25pbmcgbm93LiBBbHNvLCB0aGUgcnVuIGxvb3Agb2JzZXJ2ZXIgaXMgcmVwZWF0aW5nLAorICAg
ICAgICBiZWNhdXNlIGl0IGhhcyB0byBrZWVwIGZpcmluZyB1bnRpbCBzeW5jQ29tcG9zaXRpbmdT
dGF0ZVJlY3Vyc2l2ZSgpIHNheXMgdGhhdCBpdAorICAgICAgICBoYXMgY29tcGxldGVkLgorICAg
ICAgICAKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXdEYXRhLmg6CisgICAgICAgICJ2aWV3VXBk
YXRlUnVuTG9vcE9ic2VydmVyIiBpcyBub3cgImxheWVyU3luY0xvb3BPYnNlcnZlciIuCisKKyAg
ICAgICAgKiBXZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5oOgorICAgICAgICBfc2NoZWR1bGVWaWV3
VXBkYXRlIGlzIG5vdyBfc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyU3luYworCiAyMDA5LTA3LTMw
ICBNaWNoYWVsIE5vcmRtYW4gIDxtaWNoYWVsbkBnb29nbGUuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IERhcmluIEZpc2hlci4KZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmggYi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5oCmluZGV4IDg1MWRlZGYuLjdhMWQ3YjMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMTQ2LDcgKzE0Niw3IEBAIHB1YmxpYzoKICNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgdmlydHVhbCB2b2lkIGF0dGFjaFJv
b3RHcmFwaGljc0xheWVyKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllciop
OwogICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25pemF0aW9u
KCk7Ci0gICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlVmlld1VwZGF0ZSgpOworICAgIHZpcnR1YWwg
dm9pZCBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJTeW5jKCk7CiAjZW5kaWYKIAogICAgIHZpcnR1
YWwgdm9pZCByZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUoV2ViQ29yZTo6RnJh
bWUqLCBXZWJDb3JlOjpHZW9sb2NhdGlvbiopOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0gYi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5tbQppbmRleCBlNjJhOWM1Li4xNDUyNTVlIDEwMDY0NAotLS0gYS9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQorKysgYi9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQpAQCAtNzA2LDEwICs3MDYsMTAg
QEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6
YXRpb24oKQogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiB9CiAKLXZvaWQgV2ViQ2hy
b21lQ2xpZW50OjpzY2hlZHVsZVZpZXdVcGRhdGUoKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNj
aGVkdWxlQ29tcG9zaXRpbmdMYXllclN5bmMoKQogewogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhD
RVBUSU9OUzsKLSAgICBbbV93ZWJWaWV3IF9zY2hlZHVsZVZpZXdVcGRhdGVdOworICAgIFttX3dl
YlZpZXcgX3NjaGVkdWxlQ29tcG9zaXRpbmdMYXllclN5bmNdOwogICAgIEVORF9CTE9DS19PQkpD
X0VYQ0VQVElPTlM7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3
Lm1tIGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggODUxZDAzMS4uMjBmMjcx
MiAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTM2Myw3ICszNjMsNyBAQCBzdGF0aWMgY29uc3Qg
Y2hhciB3ZWJWaWV3SXNPcGVuW10gPSAiQXQgbGVhc3Qgb25lIFdlYlZpZXcgaXMgc3RpbGwgb3Bl
bi4iOwogLSAoQk9PTClfY29udGludW91c0NoZWNraW5nQWxsb3dlZDsKIC0gKE5TUmVzcG9uZGVy
ICopX3Jlc3BvbmRlckZvclJlc3BvbmRlck9wZXJhdGlvbnM7CiAjaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKQotLSAodm9pZClfY2xlYXJWaWV3VXBkYXRlUnVuTG9vcE9ic2VydmVyOwor
LSAodm9pZClfY2xlYXJMYXllclN5bmNMb29wT2JzZXJ2ZXI7CiAjZW5kaWYKIEBlbmQKIApAQCAt
MTAzMSw3ICsxMDMxLDcgQEAgc3RhdGljIGJvb2wgZmFzdERvY3VtZW50VGVhcmRvd25FbmFibGVk
KCkKICAgICB9CiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0gICAgW3NlbGYg
X2NsZWFyVmlld1VwZGF0ZVJ1bkxvb3BPYnNlcnZlcl07CisgICAgW3NlbGYgX2NsZWFyTGF5ZXJT
eW5jTG9vcE9ic2VydmVyXTsKICNlbmRpZgogICAgIAogICAgIFtbTlNEaXN0cmlidXRlZE5vdGlm
aWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjpzZWxmXTsKQEAgLTUx
MDEsMTQgKzUxMDEsMTQgQEAgc3RhdGljIFdlYkZyYW1lVmlldyAqY29udGFpbmluZ0ZyYW1lVmll
dyhOU1ZpZXcgKnZpZXcpCiB9CiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0t
ICh2b2lkKV9jbGVhclZpZXdVcGRhdGVSdW5Mb29wT2JzZXJ2ZXIKKy0gKHZvaWQpX2NsZWFyTGF5
ZXJTeW5jTG9vcE9ic2VydmVyCiB7Ci0gICAgaWYgKCFfcHJpdmF0ZS0+dmlld1VwZGF0ZVJ1bkxv
b3BPYnNlcnZlcikKKyAgICBpZiAoIV9wcml2YXRlLT5sYXllclN5bmNSdW5Mb29wT2JzZXJ2ZXIp
CiAgICAgICAgIHJldHVybjsKIAotICAgIENGUnVuTG9vcE9ic2VydmVySW52YWxpZGF0ZShfcHJp
dmF0ZS0+dmlld1VwZGF0ZVJ1bkxvb3BPYnNlcnZlcik7Ci0gICAgQ0ZSZWxlYXNlKF9wcml2YXRl
LT52aWV3VXBkYXRlUnVuTG9vcE9ic2VydmVyKTsKLSAgICBfcHJpdmF0ZS0+dmlld1VwZGF0ZVJ1
bkxvb3BPYnNlcnZlciA9IDA7CisgICAgQ0ZSdW5Mb29wT2JzZXJ2ZXJJbnZhbGlkYXRlKF9wcml2
YXRlLT5sYXllclN5bmNSdW5Mb29wT2JzZXJ2ZXIpOworICAgIENGUmVsZWFzZShfcHJpdmF0ZS0+
bGF5ZXJTeW5jUnVuTG9vcE9ic2VydmVyKTsKKyAgICBfcHJpdmF0ZS0+bGF5ZXJTeW5jUnVuTG9v
cE9ic2VydmVyID0gMDsKIH0KICNlbmRpZgogQGVuZApAQCAtNTM5Niw1OSArNTM5Niw3NSBAQCBz
dGF0aWMgV2ViRnJhbWVWaWV3ICpjb250YWluaW5nRnJhbWVWaWV3KE5TVmlldyAqdmlldykKICAg
ICAgICAgW3NlbGYgZGlkQ2hhbmdlVmFsdWVGb3JLZXk6VXNpbmdBY2NlbGVyYXRlZENvbXBvc2l0
aW5nUHJvcGVydHldOwogfQogCistIChCT09MKV9zeW5jQ29tcG9zaXRpbmdDaGFuZ2VzCit7Cisg
ICAgRnJhbWUqIGZyYW1lID0gW3NlbGYgX21haW5Db3JlRnJhbWVdOworICAgIGlmIChmcmFtZSAm
JiBmcmFtZS0+dmlldygpKQorICAgICAgICByZXR1cm4gZnJhbWUtPnZpZXcoKS0+c3luY0NvbXBv
c2l0aW5nU3RhdGVSZWN1cnNpdmUoKTsKKworICAgIHJldHVybiBZRVM7Cit9CisKIC8qCiAgICAg
VGhlIG9yZGVyIG9mIGV2ZW50cyB3aXRoIGNvbXBvc2l0aW5nIHVwZGF0ZXMgaXMgdGhpczoKICAg
ICAKICAgIFN0YXJ0IG9mIHJ1bmxvb3AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgRW5kIG9mIHJ1bmxvb3AKICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CiAgICAgICAtLXwtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tCi0gICAgICAgICAgIF4g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiAgICAgXgotICAgICAg
ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwK
LSAgICBOU1dpbmRvdyB1cGRhdGUsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
ICBDQSBjb21taXQKLSAgICAgTlNWaWV3IGRyYXdpbmcgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8Ci0gICAgICAgIGZsdXNoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3
VXBkYXRlUnVuTG9vcE9ic2VydmVyQ2FsbEJhY2sKLQotICAgIFRoZSB2aWV3VXBkYXRlUnVuTG9v
cE9ic2VydmVyQ2FsbEJhY2sgaXMgcmVxdWlyZWQgdG8gZW5zdXJlIHRoYXQKLSAgICBsYXlvdXQg
aGFzIGhhcHBlbmVkIGJlZm9yZSBDQSBjb21taXRzIGxheWVyIGNoYW5nZXMgKGl0J3MgYW5hbGFn
b3VzIHRvCi0gICAgLXZpZXdXaWxsRHJhdyBmb3IgTlNWaWV3cykuCisgICAgICAgICAgIF4gICAg
ICAgICBeICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKyAgICAgICAg
ICAgfCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAor
ICAgIE5TV2luZG93IHVwZGF0ZSwgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBDQSBjb21taXQKKyAgICAgTlNWaWV3IGRyYXdpbmcgIHwgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgCisgICAgICAgIGZsdXNoICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGxheWVyU3luY1J1bkxvb3BPYnNlcnZlckNh
bGxCYWNrCisKKyAgICBUbyBhdm9pZCBmbGFzaGluZywgd2UgaGF2ZSB0byBlbnN1cmUgdGhhdCBj
b21wb3NpdGluZyBjaGFuZ2VzIChyZW5kZXJlZCB2aWEKKyAgICB0aGUgQ29yZUFuaW1hdGlvbiBy
ZW5kZXJpbmcgZGlzcGxheSBsaW5rKSBhcHBlYXIgb24gc2NyZWVuIGF0IHRoZSBzYW1lIHRpbWUK
KyAgICBhcyBjb250ZW50IHBhaW50ZWQgaW50byB0aGUgd2luZG93IHZpYSB0aGUgbm9ybWFsIFdl
YkNvcmUgcmVuZGVyaW5nIHBhdGguCisKKyAgICBDb3JlQW5pbWF0aW9uIHdpbGwgY29tbWl0IGFu
eSBsYXllciBjaGFuZ2VzIGF0IHRoZSBlbmQgb2YgdGhlIHJ1bmxvb3AgdmlhCisgICAgaXRzICJD
QSBjb21taXQiIG9ic2VydmVyLiBUaG9zZSBjaGFuZ2VzIGNhbiB0aGVuIGFwcGVhciBvbnNjcmVl
biBhdCBhbnkgdGltZQorICAgIHdoZW4gdGhlIGRpc3BsYXkgbGluayBmaXJlcywgd2hpY2ggY2Fu
IHJlc3VsdCBpbiB1bnN5bmNocm9uaXplZCByZW5kZXJpbmcuCisgICAgCisgICAgVG8gZml4IHRo
aXMsIHRoZSBHcmFwaGljc0xheWVyQ0EgY29kZSBpbiBXZWJDb3JlIGRvZXMgbm90IGNoYW5nZSB0
aGUgQ0EKKyAgICBsYXllciB0cmVlIGR1cmluZyBzdHlsZSBjaGFuZ2VzIGFuZCBsYXlvdXQ7IGl0
IHN0b3JlcyB1cCBhbGwgY2hhbmdlcyBhbmQKKyAgICBjb21taXRzIHRoZW0gdmlhIHN5bmNDb21w
b3NpdGluZ1N0YXRlKCkuIFRoZXJlIGFyZSB0aGVuIHR3byBzaXR1YXRpb25zIGluCisgICAgd2hp
Y2ggd2UgY2FuIGNhbGwgc3luY0NvbXBvc2l0aW5nU3RhdGUoKToKKyAgICAKKyAgICAxLiBXaGVu
IHBhaW50aW5nLiBGcmFtZVZpZXc6OnBhaW50Q29udGVudHMoKSBtYWtlcyBhIGNhbGwgdG8gc3lu
Y0NvbXBvc2l0aW5nU3RhdGUoKS4KICAgICAKLSAgICBDQSBjb21taXRzIG9uIGEgcnVuIGxvb3Ag
b2JzZXJ2ZXIgYXQgdGhlIGVuZCBvZiB0aGUgY3ljbGUuCi0gICAgSXQgaXMgYWxzbyByZW5kZXJp
bmcgdmlhIGEgQ1YgZGlzcGxheSBsaW5rIGNvbnRpbnVvdXNseS4gU28gd2UgaGF2ZSB0bwotICAg
IGVuc3VyZSB0aGF0IGxheWVyIHVwZGF0ZXMgY29tbWl0dGVkIGF0IHRoZSBlbmQgb2YgdGhlIHJ1
bmxvb3AgY3ljbGUgZG9uJ3QgZ2V0Ci0gICAgdG8gdGhlIHNjcmVlbiB2aWEgdGhlIGRpc3BsYXkg
bGluayB1bnRpbCB0aGUgd2luZG93IGZsdXNoIGF0IHRoZSBzdGFydAotICAgIG9mIHRoZSBuZXh0
IGN5Y2xlLiBUaHVzLCB2aWV3VXBkYXRlUnVuTG9vcE9ic2VydmVyQ2FsbEJhY2sgaGFzIHRvCi0g
ICAgY2FsbCAtZGlzYWJsZVNjcmVlblVwZGF0ZXNVbnRpbEZsdXNoIHRvIHN0b3Agc2NyZWVuIHVw
ZGF0ZXMgdW50aWwgdGhlIGZsdXNoCi0gICAgYXQgdGhlIHN0YXJ0IG9mIHRoZSBuZXh0IHJ1bmxv
b3AgY3ljbGUuCisgICAgMi4gV2hlbiBzdHlsZSBjaGFuZ2VzL2xheW91dCBoYXZlIG1hZGUgY2hh
bmdlcyB0byB0aGUgbGF5ZXIgdHJlZSB3aGljaCBkbyBub3QKKyAgICAgICByZXN1bHQgaW4gcGFp
bnRpbmcuIEluIHRoaXMgY2FzZSB3ZSBuZWVkIGEgcnVuIGxvb3Agb2JzZXJ2ZXIgdG8gZG8gYQor
ICAgICAgIHN5bmNDb21wb3NpdGluZ1N0YXRlKCkgYXQgYW4gYXBwcm9wcmlhdGUgdGltZS4gVGhl
IG9ic2VydmVyIHdpbGwga2VlcCBmaXJpbmcKKyAgICAgICB1bnRpbCB0aGUgdGltZSBpcyByaWdo
dCAoZXNzZW50aWFsbHkgd2hlbiB0aGVyZSBhcmUgbm8gbW9yZSBwZW5kaW5nIGxheW91dHMpLgog
ICAgIAotICAgIFNlZSBhbHNvIC1bV2ViVmlldyBkcmF3UmVjdDpdLCB3aGVyZSB3ZSBhbHNvIGRv
IGEgLWRpc2FibGVTY3JlZW5VcGRhdGVzVW50aWxGbHVzaC4KICovCiAKLXN0YXRpYyB2b2lkIHZp
ZXdVcGRhdGVSdW5Mb29wT2JzZXJ2ZXJDYWxsQmFjayhDRlJ1bkxvb3BPYnNlcnZlclJlZiwgQ0ZS
dW5Mb29wQWN0aXZpdHksIHZvaWQqIGluZm8pCitzdGF0aWMgdm9pZCBsYXllclN5bmNSdW5Mb29w
T2JzZXJ2ZXJDYWxsQmFjayhDRlJ1bkxvb3BPYnNlcnZlclJlZiwgQ0ZSdW5Mb29wQWN0aXZpdHks
IHZvaWQqIGluZm8pCiB7CiAgICAgV2ViVmlldyogd2ViVmlldyA9IHJlaW50ZXJwcmV0X2Nhc3Q8
V2ViVmlldyo+KGluZm8pOwotICAgIFt3ZWJWaWV3IF92aWV3V2lsbERyYXdJbnRlcm5hbF07Ci0g
ICAgW3dlYlZpZXcgX2NsZWFyVmlld1VwZGF0ZVJ1bkxvb3BPYnNlcnZlcl07Ci0gICAgaWYgKFt3
ZWJWaWV3IF9uZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25pemF0aW9uXSkKLSAgICAgICAgW1t3
ZWJWaWV3IHdpbmRvd10gZGlzYWJsZVNjcmVlblVwZGF0ZXNVbnRpbEZsdXNoXTsKKyAgICBpZiAo
W3dlYlZpZXcgX3N5bmNDb21wb3NpdGluZ0NoYW5nZXNdKQorICAgICAgICBbd2ViVmlldyBfY2xl
YXJMYXllclN5bmNMb29wT2JzZXJ2ZXJdOwogfQogCi0tICh2b2lkKV9zY2hlZHVsZVZpZXdVcGRh
dGUKKy0gKHZvaWQpX3NjaGVkdWxlQ29tcG9zaXRpbmdMYXllclN5bmMKIHsKLSAgICBpZiAoX3By
aXZhdGUtPnZpZXdVcGRhdGVSdW5Mb29wT2JzZXJ2ZXIpCisgICAgaWYgKF9wcml2YXRlLT5sYXll
clN5bmNSdW5Mb29wT2JzZXJ2ZXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIC8vIFJ1biBiZWZv
cmUgQXBwS2l0IGRvZXMgaXRzIHdpbmRvdyB1cGRhdGUuCi0gICAgY29uc3QgQ0ZJbmRleCBydW5M
b29wT3JkZXIgPSBOU0Rpc3BsYXlXaW5kb3dSdW5Mb29wT3JkZXJpbmcgLSAxOworICAgIC8vIFJ1
biBhZnRlciBBcHBLaXQgZG9lcyBpdHMgd2luZG93IHVwZGF0ZS4gSWYgd2UgZG8gYW55IHBhaW50
aW5nLCB3ZSdsbCBjb21taXQKKyAgICAvLyBsYXllciBjaGFuZ2VzIGZyb20gRnJhbWVWaWV3Ojpw
YWludENvbnRlbnRzKCksIG90aGVyd2lzZSB3ZSdsbCBjb21taXQgdmlhCisgICAgLy8gX3N5bmND
b21wb3NpdGluZ0NoYW5nZXMgd2hlbiB0aGlzIG9ic2VydmVyIGZpcmVzLgorICAgIGNvbnN0IENG
SW5kZXggcnVuTG9vcE9yZGVyID0gTlNEaXNwbGF5V2luZG93UnVuTG9vcE9yZGVyaW5nICsgMTsK
IAogICAgIC8vIFRoZSBXZWJWaWV3IGFsd2F5cyBvdXRsaXZlcyB0aGUgb2JzZXJ2ZXIsIHNvIG5v
IG5lZWQgdG8gcmV0YWluL3JlbGVhc2UuCiAgICAgQ0ZSdW5Mb29wT2JzZXJ2ZXJDb250ZXh0IGNv
bnRleHQgPSB7IDAsIHNlbGYsIDAsIDAsIDAgfTsKIAotICAgIF9wcml2YXRlLT52aWV3VXBkYXRl
UnVuTG9vcE9ic2VydmVyID0gQ0ZSdW5Mb29wT2JzZXJ2ZXJDcmVhdGUoTlVMTCwKLSAgICAgICAg
a0NGUnVuTG9vcEJlZm9yZVdhaXRpbmcgfCBrQ0ZSdW5Mb29wRXhpdCwgRkFMU0UgLyogb25lIHNo
b3QgKi8sCi0gICAgICAgIHJ1bkxvb3BPcmRlciwgdmlld1VwZGF0ZVJ1bkxvb3BPYnNlcnZlckNh
bGxCYWNrLCAmY29udGV4dCk7CisgICAgX3ByaXZhdGUtPmxheWVyU3luY1J1bkxvb3BPYnNlcnZl
ciA9IENGUnVuTG9vcE9ic2VydmVyQ3JlYXRlKE5VTEwsCisgICAgICAgIGtDRlJ1bkxvb3BCZWZv
cmVXYWl0aW5nIHwga0NGUnVuTG9vcEV4aXQsIHRydWUgLyogcmVwZWF0cyAqLywKKyAgICAgICAg
cnVuTG9vcE9yZGVyLCBsYXllclN5bmNSdW5Mb29wT2JzZXJ2ZXJDYWxsQmFjaywgJmNvbnRleHQp
OwogCi0gICAgQ0ZSdW5Mb29wQWRkT2JzZXJ2ZXIoQ0ZSdW5Mb29wR2V0Q3VycmVudCgpLCBfcHJp
dmF0ZS0+dmlld1VwZGF0ZVJ1bkxvb3BPYnNlcnZlciwga0NGUnVuTG9vcENvbW1vbk1vZGVzKTsK
KyAgICBDRlJ1bkxvb3BBZGRPYnNlcnZlcihDRlJ1bkxvb3BHZXRDdXJyZW50KCksIF9wcml2YXRl
LT5sYXllclN5bmNSdW5Mb29wT2JzZXJ2ZXIsIGtDRlJ1bkxvb3BDb21tb25Nb2Rlcyk7CiB9CiAK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLmggYi9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEuaAppbmRleCBiMDQzZjFlLi45MWQ4M2E3IDEw
MDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEuaAorKysgYi9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViVmlld0RhdGEuaApAQCAtMTM4LDcgKzEzOCw3IEBAIGV4dGVybiBpbnQg
cGx1Z2luRGF0YWJhc2VDbGllbnRDb3VudDsKICAgICAvLyBOdW1iZXIgb2YgV2ViSFRNTFZpZXdz
IHVzaW5nIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nLiBVc2VkIHRvIGltcGxlbWVudCBfaXNVc2lu
Z0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcuCiAgICAgaW50IGFjY2VsZXJhdGVkRnJhbWVzQ291bnQ7
CiAgICAgLy8gUnVuIGxvb3Agb2JzZXJ2ZXIgdXNlZCB0byBpbXBsZW1lbnQgdGhlIGNvbXBvc2l0
aW5nIGVxdWl2YWxlbnQgb2YgLXZpZXdXaWxsRHJhdwotICAgIENGUnVuTG9vcE9ic2VydmVyUmVm
IHZpZXdVcGRhdGVSdW5Mb29wT2JzZXJ2ZXI7CisgICAgQ0ZSdW5Mb29wT2JzZXJ2ZXJSZWYgbGF5
ZXJTeW5jUnVuTG9vcE9ic2VydmVyOwogI2VuZGlmCiAKICAgICBOU1Bhc3RlYm9hcmQgKmluc2Vy
dGlvblBhc3RlYm9hcmQ7CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0lu
dGVybmFsLmggYi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0ludGVybmFsLmgKaW5kZXggNzE0
ZGE4Ny4uYjgyNjZjNSAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdJbnRl
cm5hbC5oCisrKyBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3SW50ZXJuYWwuaApAQCAtODcs
NyArODcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAtICh2b2lkKV9zZXROZWVkc09uZVNob3RE
cmF3aW5nU3luY2hyb25pemF0aW9uOihCT09MKW5lZWRzU3luY2hyb25pemF0aW9uOwogLSAodm9p
ZClfc3RhcnRlZEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JGcmFtZTooV2ViRnJhbWUqKXdlYkZy
YW1lOwogLSAodm9pZClfc3RvcHBlZEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JGcmFtZTooV2Vi
RnJhbWUqKXdlYkZyYW1lOwotLSAodm9pZClfc2NoZWR1bGVWaWV3VXBkYXRlOworLSAodm9pZClf
c2NoZWR1bGVDb21wb3NpdGluZ0xheWVyU3luYzsKICNlbmRpZgogCiBAZW5kCg==
</data>
<flag name="review"
          id="18072"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>33900</attachid>
            <date>2009-07-31 13:38:42 -0700</date>
            <delta_ts>2009-07-31 13:38:42 -0700</delta_ts>
            <desc>invertY bug on Leopard</desc>
            <filename>invertedY.jpg</filename>
            <type>image/jpeg</type>
            <size>167759</size>
            <attacher name="Charles Ying">charles_ying</attacher>
            
              <data encoding="base64">/9j/4AAQSkZJRgABAQEASABIAAD/4gQESUNDX1BST0ZJTEUAAQEAAAP0YXBwbAIAAABtbnRyUkdC
IFhZWiAH2QAHAB0ACwAnAAhhY3NwQVBQTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAA
AADTLWFwcGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5y
WFlaAAABLAAAABRnWFlaAAABQAAAABRiWFlaAAABVAAAABR3dHB0AAABaAAAABRjaGFkAAABfAAA
ACxyVFJDAAABqAAAAA5nVFJDAAABuAAAAA5iVFJDAAAByAAAAA52Y2d0AAAB2AAAADBuZGluAAAC
CAAAADhkZXNjAAACQAAAAGdkc2NtAAACqAAAAQBtbW9kAAADqAAAAChjcHJ0AAAD0AAAACRYWVog
AAAAAAAAoEwAAEvRAAAA1FhZWiAAAAAAAAAvDQAAoKUAABRKWFlaIAAAAAAAACd9AAAToAAAvghY
WVogAAAAAAAA89gAAQAAAAEWCHNmMzIAAAAAAAELtwAABZb///NXAAAHKQAA/df///u3///9pgAA
A9oAAMD2Y3VydgAAAAAAAAABAc0AAGN1cnYAAAAAAAAAAQHNAABjdXJ2AAAAAAAAAAEBzQAAdmNn
dAAAAAAAAAABAADRdAAAAAAAAQAAAADRdAAAAAAAAQAAAADRdAAAAAAAAQAAbmRpbgAAAAAAAAAw
AACsgAAAUcAAADAAAAC0wAAAJtcAABIbAABQQAAAVEAAAjMzAAIzMwACMzNkZXNjAAAAAAAAAA1E
RUxMIDI0MDhXRlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1sdWMAAAAAAAAAEgAAAAxuYk5PAAAA
GAAAAOhwdFBUAAAAGAAAAOhzdlNFAAAAGAAAAOhmaUZJAAAAGAAAAOhkYURLAAAAGAAAAOh6aENO
AAAAGAAAAOhmckZSAAAAGAAAAOhqYUpQAAAAGAAAAOhlblVTAAAAGAAAAOhwbFBMAAAAGAAAAOhw
dEJSAAAAGAAAAOhlc0VTAAAAGAAAAOh6aFRXAAAAGAAAAOhydVJVAAAAGAAAAOhrb0tSAAAAGAAA
AOhkZURFAAAAGAAAAOhubE5MAAAAGAAAAOhpdElUAAAAGAAAAOgARABFAEwATAAgADIANAAwADgA
VwBGAFBtbW9kAAAAAAAAEKwAAKAqMTE3U8YxD4AAAAAAAAAAAAAAAAAAAAAAdGV4dAAAAABDb3B5
cmlnaHQgQXBwbGUsIEluYy4sIDIwMDkA/+EAgEV4aWYAAE1NACoAAAAIAAUBEgADAAAAAQABAAAB
GgAFAAAAAQAAAEoBGwAFAAAAAQAAAFIBKAADAAAAAQACAACHaQAEAAAAAQAAAFoAAAAAAAAfOQAA
AG8AAB85AAAAbwACoAIABAAAAAEAAAXwoAMABAAAAAEAAAN2AAAAAP/bAEMABAMDBAMDBAQDBAUE
BAUGCgcGBgYGDAkJBwoPDQ8PDg0ODhASFxQQERYRDg4UHBUWGBkaGhoQFB0fHBkeFxoaGf/bAEMB
BAUFBgUGDAcHDBkRDhEZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZ
GRkZGRkZGf/AABEIA3YF8AMBIgACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJ
Cgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQz
YnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm
5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIE
BAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZ
GiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SV
lpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4
+fr/2gAMAwEAAhEDEQA/APv6iiigAopCaYXoAkzSbhUBkxTDN70AWtwpN4qoZ/em/aKALu8UbxVH
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
pql8R/18v/jUFjpEty4AXj1rZkvbfQIdoCNKPxrKdRr3Y6s9fC4CM17Wt7sF1Nu1uL2yg3XV9dSc
ZO6Zj/M1h6r4+uLfclrLKSOMmQ1y2q+JLu/YjzNqegrnpGZiSxJNOnQk3zVGXjM1pRj7LCQSS62V
zduPGGt3Dkrql5GPRLhx/WoR4m1zvrGof+Bcn+NZIOBUsaM/auyySPmm5Td2aR8Ta3/0GNQ/8C5P
8asQ67rj8trOoAf9fcn+NZkduFwWGTV1IwRyOK2p0Z1naJTcKavI049c1ftq9+31un/xqQa7qy9d
Vvj/ANvL/wCNZ6gLwtHAr3KOFpUltdnHUqufkaP/AAkGrdtUvf8AwJf/ABpf7e1b/oKX3/gS/wDj
WZk9qMnvXTyw7Iy1NL+39W/6Cl9/4Ev/AI0f8JBq3/QUvv8AwJf/ABrNopcsewamj/wkGrf9BS9/
8CX/AMaP7f1b/oKX3/gS/wDjWbmjNLkj2Hdml/wkGrf9BS+/8CX/AMaP+Eg1b/oKX3/gS/8AjWbm
l4FLkj2C7NH/AISDVv8AoKX3/gS/+NH/AAkGrf8AQUvv/Al/8azC1JupcsewXZqf8JBq3/QUvv8A
wJf/ABpP+Eh1b/oKX3/gS/8AjWXmilyx7Bdmp/wkOrf9BS9/8CX/AMa/Tbwz/wAg+y/64p/6CK/L
Wv1K8M/8g+y/64p/6CK83HJLlsu/6GtPqd/pn8NdVZdBXK6Z/DXVWXQV5hsbdv0FXk6VRt+gq8nS
gAfpVG46Grz9Ko3HQ0AYl70Ncrqf8VdVe9DXK6n/ABUAcB4m/wCQfe/9cX/9BNfkrX61eJv+Qfe/
9cX/APQTX5K0AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU
AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA
UUUUAFFFFABRRRQBMkY6tT9wUccVHuwOKVedxIzgcVJsrLRDg24nccDHT1PpTSx2hSeKAAgU9c1I
Xj2oAh3AHJz1JPH9KA33Fiiz8z5wO3rXeW/g5LrU5SR5VhGFCqOrnaD/ADNcjp8XmuGb7q8jPc9v
8a9rtIf3UeB/CP5VzznrY1kvZxTR57eWctx4rOmafGIoi6M+BgYCqT+H9a9Thh6VXj02P7clyqKJ
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
0BxW1p8YckAYGSM01INjAHpnmtrT7RVPAzk1k2WlYzSrWt9E684IzXgH7VXwug1bR5tatEAkVfM+
X0xyP519H6hComXj2qh4g0a38R+HbnTL3b86lY93Qk8AfnUt7MdtLH4/ahbGCVkx0PSqqAjp3r1n
4rfD++8MeIL+C8t2hIcleOCPavLzAUYDFJgmSwOQw9q2La8MZUA1ixg5JParURy2aQzvvD199onj
ifnLAV9h/DyF0gsUj4HBP0xXxn4Et3udctEUZy44/GvvnwN4feCKwVQcmMbvzzTvZEW1PbtKjxYw
ZH8ArQCEgUy0i8m2iQDooFWawcrm4xIwPen4ooqQPxh/al/5OF+IX/YWf/0Fa8hr179qX/k4X4hf
9hZ//QVryGgAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA
ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAJIeJVrX83gAVjxf6wV
rouB71ErXN6SuSxWsly4wDitaK1SzX5grNWbHcNCvLYqvcamTkBuaxcXJ26HowqUqEb29407m+Cc
vj6Vi3WpvIcJwKqSymQ5diaiYjtWsYpHDVxEqjFdmPJOSackzDgUxRnrUqRHqK0fmYK45pm28mo1
y7c9KkWJnbGKuxWm3kit6dGVT4UKUlF3bIkiz0FWooVTkipAAvSg16tLDwp67s5p1HIX2FGaTFJX
XzGQpNJS9KM1PMAYNHNGaTNK4C49aOKTNJmldgLS8U3NGaLgOzSU3NFIBc0ZpKKLgGaKKKVx7BRS
E0ZpXAWv1M8M/wDIPsv+uKf+givyxzX6neGf+QfZf9cU/wDQRXn4t35fmbU+p3+mfw11Vl0Fcrpn
8NdVZdBXnmpt2/QVeTpVG36CrydKAB+lUbjoavP0qjcdDQBiXvQ1yup/xV1V70Ncrqf8VAHAeJv+
Qfe/9cX/APQTX5K1+tXib/kH3v8A1xf/ANBNfkrQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU
UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ
AUUUUAFFFFABRRRQAUUUUAFFFSInzD3oAESrKR8GnCPaMniptmFPFAFfbVKtMR7jWZQAUUUUASxx
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
c19j9qPsftXS/wBn+1H9n+1AHNfY/aj7H7V0v9n+1H9n+1AHNfY/aj7H7V0v9n+1H9n+1AHNfY/a
j7H7V0v9n+1H9n+1AHNfY/aj7H7V0v8AZ/tR/Z/tQBzX2P2o+x+1dL/Z/tR/Z/tQBzX2P2o+x+1d
L/Z/tR/Z/tQBzX2P2o+x+1dL/Z/tR/Z/tQBzX2P2o+x+1dL/AGf7Uf2f7UAc19j9qPsftXS/2f7U
f2f7UAc19j9qPsftXS/2f7Uf2f7UAc19j9qPsftXS/2f7Uf2f7UAc19j9qPsftXS/wBn+1H9n+1A
HNfY/aj7H7V0v9n+1H9n+1AHNfY/aj7H7V0v9n+1H9n+1AHNfY/aj7H7V0v9n+1H9n+1AHNfY/aj
7H7V0v8AZ/tR/Z/tQBzX2P2o+x+1dL/Z/tR/Z/tQBzX2P2o+x+1dL/Z/tR/Z/tQBzX2P2o+x+1dL
/Z/tR/Z/tQBzX2P2o+x+1dL/AGf7Uf2f7UAc19j9qPsftXS/2f7Uf2f7UAc19j9qPsftXS/2f7Uf
2f7UAc19j9qPsftXS/2f7Uf2f7UAc19j9qPsftXS/wBn+1H9n+1AHNfY/aj7H7V0v9n+1H9n+1AH
NfY/aj7H7V0v9n+1H9n+1AHNfY/aj7H7V0v9n+1H9n+1AHNfY/aj7H7V0v8AZ/tR/Z/tQBzX2P2o
+x+1dL/Z/tR/Z/tQBzX2P2o+x+1dL/Z/tR/Z/tQBzX2P2o+x+1dL/Z/tR/Z/tQBzX2P2o+x+1dL/
AGf7Uf2f7UAc19j9qPsftXS/2f7Uf2f7UAc19j9qPsftXS/2f7Uf2f7UAc19j9qPsftXS/2f7Uf2
f7UAc19j9qPsftXS/wBn+1H9n+1AHNfY/aj7H7V0v9n+1H9n+1AHNfY/aj7H7V0v9n+1H9n+1AHN
fY/aj7H7V0v9n+1H9n+1AHNfY/aj7H7V0v8AZ/tR/Z/tQBzX2P2o+x+1dL/Z/tR/Z/tQBzX2P2o+
x+1dL/Z/tR/Z/tQBzX2P2o+x+1dL/Z/tR/Z/tQBzX2P2o+x+1dL/AGf7Uf2f7UAc19j9qPsftXS/
2f7Uf2f7UAc19j9qPsftXS/2f7Uf2f7UAc19j9qPsftXS/2f7Uf2f7UAc19j9qPsftXS/wBn+1H9
n+1AHNfY/aj7H7V0v9n+1H9n+1AHNfY/aj7H7V0v9n+1H9n+1AHNfY/aj7H7V0v9n+1H9n+1AHNf
Y/aj7H7V0v8AZ/tR/Z/tQBzX2P2o+x+1dL/Z/tR/Z/tQBzX2P2o+x+1dL/Z/tR/Z/tQBzX2P2o+x
+1dL/Z/tR/Z/tQBzX2P2o+x+1dL/AGf7Uf2f7UAc19j9qPsftXS/2f7Uf2f7UAc19j9qPsftXS/2
f7Uf2f7UAc19j9qPsftXS/2f7Uf2f7UAc19j9qPsftXS/wBn+1H9n+1AHNfY/aj7H7V0v9n+1H9n
+1AHNfY/aj7H7V0v9n+1H9n+1AHNfY/aj7H7V0v9n+1H9n+1AHNfY/aj7H7V0v8AZ/tR/Z/tQBzX
2P2o+x+1dL/Z/tR/Z/tQBzX2P2o+x+1dL/Z/tR/Z/tQBzX2P2o+x+1dL/Z/tR/Z/tQBzX2P2o+x+
1dL/AGf7Uf2f7UAc19j9qPsftXS/2f7Uf2f7UAc19j9qPsftXS/2f7Uf2f7UAc19j9qPsftXS/2f
7Uf2f7UAc19j9qPsftXS/wBn+1H9n+1AHNfY/aj7H7V0v9n+1H9n+1AHNfY/aj7H7V0v9n+1H9n+
1AHNfY/aj7H7V0v9n+1H9n+1AHNfY/aj7H7V0v8AZ/tR/Z/tQBzX2P2o+x+1dL/Z/tR/Z/tQBzX2
P2o+x+1dL/Z/tR/Z/tQBzX2P2o+x+1dL/Z/tR/Z/tQBzX2P2o+x+1dL/AGf7Uf2f7UAc19j9qPsf
tXS/2f7Uf2f7UAc19j9qPsftXS/2f7Uf2f7UAc19j9qPsftXS/2f7Uv9n+1AHPxWnPStK2teelac
en89KvwWBz0oAisrbBHFdVpsGMVStLLGOK6KwtcY4oA2dPjxiujtFwBWTZQ4xW7bJwKANGAcCri9
KqxDirS9KAA9KgkHWrFRuKAM6ePNZVzBkHit6RM1SliznigDk7uzznise40/OeK7Wa2z2qjLZZ7U
AcPNpmT0qo+le1dw9hntULaf7UAcV/ZXtR/ZXt+ldn/Z3tR/Z3tQBxn9le1H9le36V2f9ne1H9ne
1AHGf2V7Uf2V7fpXZ/2d7Uf2d7UAcZ/ZXtR/ZXt+ldn/AGd7Uf2d7UAcZ/ZXtR/ZXt+ldn/Z3tR/
Z3tQBxn9le1H9le36V2f9ne1H9ne1AHGf2V7Uf2V7fpXZ/2d7Uf2d7UAcZ/ZXtR/ZXt+ldn/AGd7
Uf2d7UAcZ/ZXtR/ZXt+ldn/Z3tR/Z3tQBxn9le1H9le36V2f9ne1H9ne1AHGf2V7Uf2V7fpXZ/2d
7Uf2d7UAcZ/ZXtR/ZXt+ldn/AGd7Uf2d7UAcZ/ZXtR/ZXt+ldn/Z3tR/Z3tQBxn9le1H9le36V2f
9ne1H9ne1AHGf2V7Uf2V7fpXZ/2d7Uf2d7UAcZ/ZXtR/ZXt+ldn/AGd7Uf2d7UAcZ/ZXtR/ZXt+l
dn/Z3tR/Z3tQBxn9le1H9le36V2f9ne1H9ne1AHGf2V7Uf2V7fpXZ/2d7Uf2d7UAcZ/ZXtR/ZXt+
ldn/AGd7Uf2d7UAcZ/ZXtR/ZXt+ldn/Z3tR/Z3tQBxn9le1H9le36V2f9ne1H9ne1AHGf2V7Uf2V
7fpXZ/2d7Uf2d7UAcZ/ZXtR/ZXt+ldn/AGd7Uf2d7UAcZ/ZXtR/ZXt+ldn/Z3tR/Z3tQBxn9le1H
9le36V2f9ne1H9ne1AHGf2V7Uf2V7fpXZ/2d7Uf2d7UAcZ/ZXtR/ZXt+ldn/AGd7Uf2d7UAcZ/ZX
tR/ZXt+ldn/Z3tR/Z3tQBxn9le1H9le36V2f9ne1H9ne1AHGf2V7Uf2V7fpXZ/2d7Uf2d7UAcZ/Z
XtR/ZXt+ldn/AGd7Uf2d7UAcZ/ZXtR/ZXt+ldn/Z3tR/Z3tQBxn9le1H9le36V2f9ne1H9ne1AHG
f2V7Uf2V7fpXZ/2d7Uf2d7UAcZ/ZXtR/ZXt+ldn/AGd7Uf2d7UAcZ/ZXtR/ZXt+ldn/Z3tR/Z3tQ
Bxn9le1H9le36V2f9ne1H9ne1AHGf2V7Uf2V7fpXZ/2d7Uf2d7UAcZ/ZXtR/ZXt+ldn/AGd7Uf2d
7UAcZ/ZXtR/ZXt+ldn/Z3tR/Z3tQBxn9le1H9le36V2f9ne1H9ne1AHGf2V7Uf2V7fpXZ/2d7Uf2
d7UAcZ/ZXtR/ZXt+ldn/AGd7Uf2d7UAcZ/ZXtR/ZXt+ldn/Z3tR/Z3tQBxn9le1H9le36V2f9ne1
H9ne1AHGf2V7Uf2V7fpXZ/2d7Uf2d7UAcZ/ZXtR/ZXt+ldn/AGd7Uf2d7UAcZ/ZXtR/ZXt+ldn/Z
3tR/Z3tQBxn9le1H9le36V2f9ne1H9ne1AHGf2V7Uf2V7fpXZ/2d7Uf2d7UAcZ/ZXtR/ZXt+ldn/
AGd7Uf2d7UAcZ/ZXtR/ZXt+ldn/Z3tR/Z3tQBxn9le1H9le36V2f9ne1H9ne1AHGf2V7Uf2V7fpX
Z/2d7Uf2d7UAcZ/ZXtR/ZXt+ldn/AGd7Uf2d7UAcZ/ZXtR/ZXt+ldn/Z3tR/Z3tQBxn9le1H9le3
6V2f9ne1H9ne1AHGf2V7Uf2V7fpXZ/2d7Uf2d7UAcZ/ZXtR/ZXt+ldn/AGd7Uf2d7UAcZ/ZXtR/Z
Xt+ldn/Z3tR/Z3tQBxn9le1H9le36V2f9ne1H9ne1AHGf2V7Uf2V7fpXZ/2d7Uf2d7UAcZ/ZXtR/
ZXt+ldn/AGd7Uf2d7UAcZ/ZXtR/ZXt+ldn/Z3tR/Z3tQBxn9le1H9le36V2f9ne1H9ne1AHGf2V7
Uf2V7fpXZ/2d7Uf2d7UAcZ/ZXtR/ZXt+ldn/AGd7Uf2d7UAcZ/ZXtR/ZXt+ldn/Z3tR/Z3tQBxn9
le1H9le36V2f9ne1H9ne1AHGf2V7Uf2V7fpXZ/2d7Uf2d7UAcZ/ZXtR/ZXt+ldn/AGd7Uf2d7UAc
Z/ZXtR/ZXt+ldn/Z3tR/Z3tQBxn9le1H9le36V2f9ne1H9ne1AHGf2V7Uf2V7fpXZ/2d7Uf2d7UA
cZ/ZXtR/ZXt+ldn/AGd7Uf2d7UAcZ/ZXtR/ZXt+ldn/Z3tR/Z3tQBxn9le1H9le36V2f9ne1H9ne
1AHGf2V7Uf2V7fpXZ/2d7Uf2d7UAcZ/ZXtR/ZXt+ldn/AGd7Uf2d7UAcZ/ZXtR/ZXt+ldn/Z3tR/
Z3tQBxn9le1H9le36V2f9ne1H9ne1AHGf2V7Uf2V7fpXZ/2d7Uf2d7UAcZ/ZXtR/ZXt+ldn/AGd7
Uf2d7UAcZ/ZXtR/ZXt+ldn/Z3tR/Z3tQBxn9le1H9le36V2f9ne1H9ne1AHGf2V7Uf2V7fpXZ/2d
7Uf2d7UAcemle1W4dMweldOun+1TpYY7UAYVvp+McVsWlnjHFX4rLHar0NtjtQA22gxjitWCPFRx
RYxxV2NMUASRjpU46UxRUlABTSKdRQBCy1C8eatkU0pQBnvBntUDW2e1ahjppi9qAMhrXPamG09q
2DCKTyaAMf7GPSj7GPStjyB6UeQPSgDH+xj0o+xj0rY8gelHkD0oAx/sY9KPsY9K2PIHpR5A9KAM
f7GPSj7GPStjyB6UeQPSgDH+xj0o+xj0rY8gelHkD0oAx/sY9KPsY9K2PIHpR5A9KAMf7GPSj7GP
StjyB6UeQPSgDH+xj0o+xj0rY8gelHkD0oAx/sY9KPsY9K2PIHpR5A9KAMf7GPSj7GPStjyB6UeQ
PSgDH+xj0o+xj0rY8gelHkD0oAx/sY9KPsY9K2PIHpR5A9KAMf7GPSj7GPStjyB6UeQPSgDH+xj0
o+xj0rY8gelHkD0oAx/sY9KPsY9K2PIHpR5A9KAMf7GPSj7GPStjyB6UeQPSgDH+xj0o+xj0rY8g
elHkD0oAx/sY9KPsY9K2PIHpR5A9KAMf7GPSj7GPStjyB6UeQPSgDH+xj0o+xj0rY8gelHkD0oAx
/sY9KPsY9K2PIHpR5A9KAMf7GPSj7GPStjyB6UeQPSgDH+xj0o+xj0rY8gelHkD0oAx/sY9KPsY9
K2PIHpR5A9KAMf7GPSj7GPStjyB6UeQPSgDH+xj0o+xj0rY8gelHkD0oAx/sY9KPsY9K2PIHpR5A
9KAMf7GPSj7GPStjyB6UeQPSgDH+xj0o+xj0rY8gelHkD0oAx/sY9KPsY9K2PIHpR5A9KAMf7GPS
j7GPStjyB6UeQPSgDH+xj0o+xj0rY8gelHkD0oAx/sY9KPsY9K2PIHpR5A9KAMf7GPSj7GPStjyB
6UeQPSgDH+xj0o+xj0rY8gelHkD0oAx/sY9KPsY9K2PIHpR5A9KAMf7GPSj7GPStjyB6UeQPSgDH
+xj0o+xj0rY8gelHkD0oAx/sY9KPsY9K2PIHpR5A9KAMf7GPSj7GPStjyB6UeQPSgDH+xj0o+xj0
rY8gelHkD0oAx/sY9KPsY9K2PIHpR5A9KAMf7GPSj7GPStjyB6UeQPSgDH+xj0o+xj0rY8gelHkD
0oAx/sY9KPsY9K2PIHpR5A9KAMf7GPSj7GPStjyB6UeQPSgDH+xj0o+xj0rY8gelHkD0oAx/sY9K
PsY9K2PIHpR5A9KAMf7GPSj7GPStjyB6UeQPSgDH+xj0o+xj0rY8gelHkD0oAx/sY9KPsY9K2PIH
pR5A9KAMf7GPSj7GPStjyB6UeQPSgDH+xj0o+xj0rY8gelHkD0oAx/sY9KPsY9K2PIHpR5A9KAMf
7GPSj7GPStjyB6UeQPSgDH+xj0o+xj0rY8gelHkD0oAx/sY9KPsY9K2PIHpR5A9KAMf7GPSj7GPS
tjyB6UeQPSgDH+xj0o+xj0rY8gelHkD0oAx/sY9KPsY9K2PIHpR5A9KAMf7GPSj7GPStjyB6UeQP
SgDH+xj0o+xj0rY8gelHkD0oAx/sY9KPsY9K2PIHpR5A9KAMf7GPSj7GPStjyB6UeQPSgDH+xj0o
+xj0rY8gelHkD0oAx/sY9KPsY9K2PIHpR5A9KAMf7GPSj7GPStjyB6UeQPSgDH+xj0o+xj0rY8ge
lHkD0oAx/sY9KPsY9K2PIHpR5A9KAMf7GPSj7GPStjyB6UeQPSgDH+xj0o+xj0rY8gelHkD0oAx/
sY9KPsY9K2PIHpR5A9KAMf7GPSj7GPStjyB6UeQPSgDH+xj0o+xj0rY8gelHkD0oAx/sY9KPsY9K
2PIHpR5A9KAMf7GPSj7GPStjyB6UeQPSgDH+xj0o+xj0rY8gelHkD0oAx/sY9KPsY9K2PIHpR5A9
KAMf7GPSj7GPStjyB6UeQPSgDH+xj0o+xj0rY8gelHkD0oAx/sY9KPsY9K2PIHpR5A9KAMf7GPSj
7GPStjyB6UeQPSgDH+xj0o+xj0rY8gelHkD0oAx/sY9KPsY9K2PIHpR5A9KAMf7GPSj7GPStjyB6
UeQPSgDH+xj0o+xj0rY8gelHkD0oAx/sY9KPsY9K2PIHpR5A9KAMgWntT1tfatTyRSiGgDPW2x2q
dIcdqtiL2pwjoAhSPFTKtPCU4CgBAKdRRQAUUUUAFFFFABRiiigAxRiiigAxRiiigAxRiiigAxRi
iigAxRiiigAxRiiigAxRiiigAxRiiigAxRiiigAxRiiigAxRiiigAxRiiigAxRiiigAxRiiigAxR
iiigAxRiiigAxRiiigAxRiiigAxRiiigAxRiiigAxRiiigAxRiiigAxRiiigAxRiiigAxRiiigAx
RiiigAxRiiigAxRiiigAxRiiigAxRiiigAxRiiigAxRiiigAxRiiigAxRiiigAxRiiigAxRiiigA
xRiiigAxRiiigAxRiiigAxRiiigAxRiiigAxRiiigAxRiiigAxRiiigAxRiiigAxRiiigAxRiiig
AxRiiigAxRiiigAxRiiigAxRiiigAxRiiigAxRiiigAxRiiigAxRiiigAxRiiigAxRiiigAxRiii
gAxRiiigAxRiiigAxRiiigAxRiiigAxRiiigAxRiiigAxRiiigAxRiiigAxRiiigAxRiiigAxRii
igAxRiiigAxRiiigAxRiiigAxRiiigAxRiiigAxRiiigAxRiiigAxRiiigAxRiiigAxRiiigAxRi
iigAxRiiigAxRiiigAxRiiigAxRiiigAxRiiigAxRiiigAxRiiigAxRiiigAxRiiigAxRRRQAUUU
UAFFFFAH/9k=
</data>

          </attachment>
      

    </bug>

</bugzilla>