<?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>185458</bug_id>
          
          <creation_ts>2018-05-08 16:56:17 -0700</creation_ts>
          <short_desc>Use StyleColor::Options in more places</short_desc>
          <delta_ts>2018-05-09 08:18:22 -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>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Timothy Hatcher">timothy</reporter>
          <assigned_to name="Timothy Hatcher">timothy</assigned_to>
          <cc>bdakin</cc>
    
    <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1422044</commentid>
    <comment_count>0</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2018-05-08 16:56:17 -0700</bug_when>
    <thetext>Using StyleColor::Options will avoid some confusing bools.

rdar://problem/39853798</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1422048</commentid>
    <comment_count>1</comment_count>
      <attachid>339903</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2018-05-08 16:59:39 -0700</bug_when>
    <thetext>Created attachment 339903
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1422060</commentid>
    <comment_count>2</comment_count>
      <attachid>339903</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2018-05-08 17:12:01 -0700</bug_when>
    <thetext>Comment on attachment 339903
Patch

R+ from me as well</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1422064</commentid>
    <comment_count>3</comment_count>
      <attachid>339906</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2018-05-08 17:15:33 -0700</bug_when>
    <thetext>Created attachment 339906
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1422066</commentid>
    <comment_count>4</comment_count>
      <attachid>339906</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-05-08 17:18:33 -0700</bug_when>
    <thetext>Comment on attachment 339906
Patch

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

&gt; Source/WebCore/dom/Document.h:548
&gt; +    bool defaultAppearance() const;

This function name is inscrutable. It sounds like it should return an &quot;appearance&quot; thing but returns a bool?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1422069</commentid>
    <comment_count>5</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2018-05-08 17:23:51 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #4)
&gt; Comment on attachment 339906 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=339906&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/Document.h:548
&gt; &gt; +    bool defaultAppearance() const;
&gt; 
&gt; This function name is inscrutable. It sounds like it should return an
&gt; &quot;appearance&quot; thing but returns a bool?

This matches the name in other parts of the code. We should rename this everywhere in a separate step.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1422071</commentid>
    <comment_count>6</comment_count>
      <attachid>339906</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2018-05-08 17:29:37 -0700</bug_when>
    <thetext>Comment on attachment 339906
Patch

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

&gt; Source/WebCore/platform/mac/LocalDefaultSystemAppearance.mm:51
&gt; +    [NSAppearance setCurrentAppearance:m_savedSystemAppearance.get()];

We should be careful these calls are not happening in the WebContent process. We are locking down CGSWindowServer access, which may make these calls fail. They should be messaged back and forth to the UIProcess.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1422075</commentid>
    <comment_count>7</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2018-05-08 17:32:28 -0700</bug_when>
    <thetext>(In reply to Brent Fulgham from comment #6)
&gt; Comment on attachment 339906 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=339906&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/mac/LocalDefaultSystemAppearance.mm:51
&gt; &gt; +    [NSAppearance setCurrentAppearance:m_savedSystemAppearance.get()];
&gt; 
&gt; We should be careful these calls are not happening in the WebContent
&gt; process. We are locking down CGSWindowServer access, which may make these
&gt; calls fail. They should be messaged back and forth to the UIProcess.

Not accurate in this case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1422115</commentid>
    <comment_count>8</comment_count>
      <attachid>339920</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2018-05-08 19:31:31 -0700</bug_when>
    <thetext>Created attachment 339920
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1422256</commentid>
    <comment_count>9</comment_count>
      <attachid>339920</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-05-09 08:17:14 -0700</bug_when>
    <thetext>Comment on attachment 339920
Patch

Clearing flags on attachment: 339920

Committed r231557: &lt;https://trac.webkit.org/changeset/231557&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1422257</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-05-09 08:17:16 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1422258</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-05-09 08:18:22 -0700</bug_when>
    <thetext>&lt;rdar://problem/40092603&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339903</attachid>
            <date>2018-05-08 16:59:39 -0700</date>
            <delta_ts>2018-05-08 17:15:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185458-20180508165939.patch</filename>
            <type>text/plain</type>
            <size>28986</size>
            <attacher name="Timothy Hatcher">timothy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxNDg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTk3OGY5NjhhMDlhNmU5
NWYxMmJmYzgxMWM0NzExZjdkNTk1MWQ1Ny4uYWRhMDA5MzhmZDM3NzVkYTg0YWYwNWIxNTMxZTE0
NTU5NDYwMDNkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDE4LTA1LTA4ICBUaW1v
dGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgU3R5bGVDb2xv
cjo6T3B0aW9ucyBpbiBtb3JlIHBsYWNlcy4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg1NDU4CisgICAgICAgIHJkYXI6Ly9wcm9ibGVtLzM5ODUz
Nzk4CisKKyAgICAgICAgQWRkIERlZmF1bHRBcHBlYXJhbmNlIHRvIFN0eWxlQ29sb3I6Ok9wdGlv
bnMsIHRvIGF2b2lkIHBhc3NpbmcgeWV0IGFub3RoZXIKKyAgICAgICAgYm9vbGVhbiBvbiBzb21l
IG9mIHRoZXNlIGZ1bmN0aW9ucy4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIGNzcy9TdHlsZUNvbG9yLmg6CisgICAgICAgICogZG9tL0RvY3VtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpkZWZhdWx0QXBwZWFyYW5jZSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c3R5bGVDb2xvck9wdGlvbnMgY29uc3Qp
OgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL1RoZW1lLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlRoZW1lOjpwYWludCk6CisgICAgICAgICogcGxhdGZvcm0v
VGhlbWUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFy
YW5jZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9Mb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJh
bmNlLm1tOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZTo6
TG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpMb2NhbERl
ZmF1bHRTeXN0ZW1BcHBlYXJhbmNlOjp+TG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vbWFjL1RoZW1lTWFjLmg6CisgICAgICAgICogcGxhdGZvcm0vbWFj
L1RoZW1lTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6cGFpbnRUb2dnbGVCdXR0b24pOgorICAg
ICAgICAoV2ViQ29yZTo6cGFpbnRCdXR0b24pOgorICAgICAgICAoV2ViQ29yZTo6VGhlbWVNYWM6
OmVuc3VyZWRWaWV3KToKKyAgICAgICAgKFdlYkNvcmU6OlRoZW1lTWFjOjpkcmF3Q2VsbE9yRm9j
dXNSaW5nV2l0aFZpZXdJbnRvQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpUaGVtZU1hYzo6
cGFpbnQpOgorICAgICAgICAoLVtXZWJDb3JlVGhlbWVWaWV3IGluaXRXaXRoVXNlU3lzdGVtQXBw
ZWFyYW5jZTpdKTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMaXN0Qm94OjpwYWludEl0ZW1CYWNrZ3JvdW5k
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGhlbWU6OnBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpp
bmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGhlbWU6OnBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFj
a2dyb3VuZENvbG9yIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWUuaDoK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaDoKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyVGhlbWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6
ZG9jdW1lbnRWaWV3Rm9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFj
OjpwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6c3lzdGVtQ29sb3IgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OnBhaW50Q2VsbEFuZFNldEZvY3VzZWRF
bGVtZW50TmVlZHNSZXBhaW50SWZOZWNlc3NhcnkpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
VGhlbWVNYWM6OnBhaW50U2xpZGVyVGh1bWIpOgorCiAyMDE4LTA1LTA3ICBaYWxhbiBCdWp0YXMg
IDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ10gQWRkIEZvcm1hdHRpbmdDb250ZXh0
OjpsYXlvdXRPdXRPZkZsb3dEZXNjZW5kYW50cyBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQ29sb3IuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHls
ZUNvbG9yLmgKaW5kZXggZGVjYjJhYTZiNjM2NWMwM2RiZTAwMTM1MjQ5ZTBhY2Q3YTJhOTYwYS4u
NWMwODQzZTNmMjhiYWFjZGQ2NzRjNjRmOGIxZDc5Y2RhMTM1ODAxMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL1N0eWxlQ29sb3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVDb2xvci5oCkBAIC01Myw3ICs1Myw4IEBAIHB1YmxpYzoKIAogICAgIGVudW0gY2xhc3MgT3B0
aW9ucyA6IHVpbnQ4X3QgewogICAgICAgICBGb3JWaXNpdGVkTGluayA9IDEgPDwgMCwKLSAgICAg
ICAgVXNlU3lzdGVtQXBwZWFyYW5jZSA9IDEgPDwgMQorICAgICAgICBVc2VTeXN0ZW1BcHBlYXJh
bmNlID0gMSA8PCAxLAorICAgICAgICBEZWZhdWx0QXBwZWFyYW5jZSA9IDEgPDwgMgogICAgIH07
CiAKICAgICBzdGF0aWMgQ29sb3IgY29sb3JGcm9tS2V5d29yZChDU1NWYWx1ZUlELCBPcHRpb25T
ZXQ8T3B0aW9ucz4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggZDFiYjRmMzdiNTk1YmZk
MDU1ZmZjMGFiODk3MGQzMGEyNTU4MGE1OC4uZWJhNjY5MWZhNDI5OWQxYTEzNmRmNDM1OTk5MTVm
NDk3NWMwZjdiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC03MDM0LDExICs3MDM0LDIx
IEBAIGJvb2wgRG9jdW1lbnQ6OnVzZVN5c3RlbUFwcGVhcmFuY2UoKSBjb25zdAogICAgIHJldHVy
biB1c2VTeXN0ZW1BcHBlYXJhbmNlOwogfQogCitib29sIERvY3VtZW50OjpkZWZhdWx0QXBwZWFy
YW5jZSgpIGNvbnN0Cit7CisgICAgYm9vbCBkZWZhdWx0QXBwZWFyYW5jZSA9IHRydWU7CisgICAg
aWYgKFBhZ2UqIGRvY3VtZW50UGFnZSA9IHBhZ2UoKSkKKyAgICAgICAgZGVmYXVsdEFwcGVhcmFu
Y2UgPSBkb2N1bWVudFBhZ2UtPmRlZmF1bHRBcHBlYXJhbmNlKCk7CisgICAgcmV0dXJuIGRlZmF1
bHRBcHBlYXJhbmNlOworfQorCiBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gRG9jdW1l
bnQ6OnN0eWxlQ29sb3JPcHRpb25zKCkgY29uc3QKIHsKICAgICBPcHRpb25TZXQ8U3R5bGVDb2xv
cjo6T3B0aW9ucz4gb3B0aW9uczsKICAgICBpZiAodXNlU3lzdGVtQXBwZWFyYW5jZSgpKQogICAg
ICAgICBvcHRpb25zIHw9IFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZVN5c3RlbUFwcGVhcmFuY2U7
CisgICAgaWYgKGRlZmF1bHRBcHBlYXJhbmNlKCkpCisgICAgICAgIG9wdGlvbnMgfD0gU3R5bGVD
b2xvcjo6T3B0aW9uczo6RGVmYXVsdEFwcGVhcmFuY2U7CiAgICAgcmV0dXJuIG9wdGlvbnM7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggMDA2NjIxOWQ4YjAyMGYwMTg4M2FlOTU4YWE0MDRh
OTk2ZWYwMjAwYy4uNDlkMmUzMGY1OTk4MTVmZDY1NTg0OGRlMTIwOWNkMWIyZjYxZjc4YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmgKQEAgLTU0NSw2ICs1NDUsNyBAQCBwdWJsaWM6CiAgICAgZmxvYXQg
ZGV2aWNlU2NhbGVGYWN0b3IoKSBjb25zdDsKIAogICAgIGJvb2wgdXNlU3lzdGVtQXBwZWFyYW5j
ZSgpIGNvbnN0OworICAgIGJvb2wgZGVmYXVsdEFwcGVhcmFuY2UoKSBjb25zdDsKICAgICBPcHRp
b25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gc3R5bGVDb2xvck9wdGlvbnMoKSBjb25zdDsKIAog
ICAgIFdFQkNPUkVfRVhQT1JUIFJlZjxSYW5nZT4gY3JlYXRlUmFuZ2UoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RoZW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1RoZW1lLmNwcAppbmRleCAwNzQyNmUxZWEwYzAwZTIwZjk5Njk2MmE4MDZmNGExYTI1YTI0
N2Q4Li5jMGFmMTkyYjFkMTUyNWIwNWFkM2FmNWZjODA5NDg3YzdiMjYxMGUyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaGVtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vVGhlbWUuY3BwCkBAIC01Nyw3ICs1Nyw3IEBAIGJvb2wgVGhlbWU6OmNvbnRyb2xS
ZXF1aXJlc1ByZVdoaXRlU3BhY2UoQ29udHJvbFBhcnQpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNl
OwogfQogCi12b2lkIFRoZW1lOjpwYWludChDb250cm9sUGFydCwgQ29udHJvbFN0YXRlcyYsIEdy
YXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYsIGZsb2F0LCBTY3JvbGxWaWV3KiwgZmxv
YXQsIGZsb2F0LCBib29sKQordm9pZCBUaGVtZTo6cGFpbnQoQ29udHJvbFBhcnQsIENvbnRyb2xT
dGF0ZXMmLCBHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmLCBmbG9hdCwgU2Nyb2xs
VmlldyosIGZsb2F0LCBmbG9hdCwgYm9vbCwgYm9vbCkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhlbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Ro
ZW1lLmgKaW5kZXggMTYzZjM1YjAzZjk2Y2Y5YTUzZjJjNzY0ZWYzZmIyYzY0MWZmMGYwNi4uNzM5
MzEyN2EzYWMwM2FjYjY1YTQ1NTgxOWRkM2FjZWRjYTYzNzgxMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vVGhlbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9U
aGVtZS5oCkBAIC02Nyw3ICs2Nyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgY29udHJv
bFJlcXVpcmVzUHJlV2hpdGVTcGFjZShDb250cm9sUGFydCkgY29uc3Q7CiAKICAgICAvLyBNZXRo
b2QgZm9yIHBhaW50aW5nIGEgY29udHJvbC4gVGhlIHJlY3QgaXMgaW4gem9vbWVkIGNvb3JkaW5h
dGVzLgotICAgIHZpcnR1YWwgdm9pZCBwYWludChDb250cm9sUGFydCwgQ29udHJvbFN0YXRlcyYs
IEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgem9vbWVkUmVjdCwgZmxvYXQgem9v
bUZhY3RvciwgU2Nyb2xsVmlldyosIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yLCBmbG9hdCBwYWdl
U2NhbGVGYWN0b3IsIGJvb2wgdXNlU3lzdGVtQXBwZWFyYW5jZSk7CisgICAgdmlydHVhbCB2b2lk
IHBhaW50KENvbnRyb2xQYXJ0LCBDb250cm9sU3RhdGVzJiwgR3JhcGhpY3NDb250ZXh0JiwgY29u
c3QgRmxvYXRSZWN0JiB6b29tZWRSZWN0LCBmbG9hdCB6b29tRmFjdG9yLCBTY3JvbGxWaWV3Kiwg
ZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IsIGZsb2F0IHBhZ2VTY2FsZUZhY3RvciwgYm9vbCB1c2VT
eXN0ZW1BcHBlYXJhbmNlLCBib29sIGRlZmF1bHRBcHBlYXJhbmNlKTsKIAogICAgIC8vIFNvbWUg
Y29udHJvbHMgbWF5IHNwaWxsIG91dCBvZiB0aGVpciBjb250YWluZXJzIChlLmcuLCB0aGUgY2hl
Y2sgb24gYW4gT1MgWCBjaGVja2JveCkuICBXaGVuIHRoZXNlIGNvbnRyb2xzIHJlcGFpbnQsCiAg
ICAgLy8gdGhlIHRoZW1lIG5lZWRzIHRvIGNvbW11bmljYXRlIHRoaXMgaW5mbGF0ZWQgcmVjdCB0
byB0aGUgZW5naW5lIHNvIHRoYXQgaXQgY2FuIGludmFsaWRhdGUgdGhlIHdob2xlIGNvbnRyb2wu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvTG9jYWxEZWZhdWx0U3lz
dGVtQXBwZWFyYW5jZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0xvY2FsRGVmYXVs
dFN5c3RlbUFwcGVhcmFuY2UuaAppbmRleCBjYTllOGZiNWY1NWNmMTE5ODc4ZjFkMzFjNTA0ZTY1
NzAwZmRjYTE2Li5iMjFiMGJmOTk2OGVhMmUyNWM2ZDgyNGEwMWY1NjRjNDVjOGVjNWRiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvTG9jYWxEZWZhdWx0U3lzdGVtQXBw
ZWFyYW5jZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Mb2NhbERlZmF1bHRT
eXN0ZW1BcHBlYXJhbmNlLmgKQEAgLTM5LDcgKzM5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
Y2xhc3MgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSB7CiAgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSk7CiBwdWJsaWM6Ci0gICAgTG9jYWxE
ZWZhdWx0U3lzdGVtQXBwZWFyYW5jZShib29sIHVzZVN5c3RlbUFwcGVhcmFuY2UpOworICAgIExv
Y2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UoYm9vbCB1c2VTeXN0ZW1BcHBlYXJhbmNlLCBib29s
IGRlZmF1bHRBcHBlYXJhbmNlKTsKICAgICB+TG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSgp
OwogcHJpdmF0ZToKICNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTQw
MApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0xvY2FsRGVmYXVsdFN5
c3RlbUFwcGVhcmFuY2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvTG9jYWxEZWZh
dWx0U3lzdGVtQXBwZWFyYW5jZS5tbQppbmRleCBhZGZiZjRhM2FlMmQ0MmU0NjZmZjA1NjFhOWJh
OTVmMWI2MzJkY2NhLi41NTEyMzA5MWJjZTVlZmExOTRhNWE4NjBlOTZhODAzNzg3NTcwOTI4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvTG9jYWxEZWZhdWx0U3lzdGVt
QXBwZWFyYW5jZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvTG9jYWxEZWZh
dWx0U3lzdGVtQXBwZWFyYW5jZS5tbQpAQCAtMzAsOCArMzAsMTEgQEAKICNpbmNsdWRlIDxBcHBL
aXQvTlNBcHBlYXJhbmNlLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLSAgICAKLUxvY2FsRGVm
YXVsdFN5c3RlbUFwcGVhcmFuY2U6OkxvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UoYm9vbCB1
c2VTeXN0ZW1BcHBlYXJhbmNlKQorCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyNpbXBv
cnQgPFdlYktpdEFkZGl0aW9ucy9Mb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlQWRkaXRpb25z
Lm1tPgorI2Vsc2UKK0xvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2U6OkxvY2FsRGVmYXVsdFN5
c3RlbUFwcGVhcmFuY2UoYm9vbCB1c2VTeXN0ZW1BcHBlYXJhbmNlLCBib29sKQogewogI2lmIF9f
TUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNDAwCiAgICAgbV9zYXZlZFN5c3Rl
bUFwcGVhcmFuY2UgPSBbTlNBcHBlYXJhbmNlIGN1cnJlbnRBcHBlYXJhbmNlXTsKQEAgLTQwLDE1
ICs0MywxNSBAQCBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlOjpMb2NhbERlZmF1bHRTeXN0
ZW1BcHBlYXJhbmNlKGJvb2wgdXNlU3lzdGVtQXBwZWFyYQogICAgIFVOVVNFRF9QQVJBTSh1c2VT
eXN0ZW1BcHBlYXJhbmNlKTsKICNlbmRpZgogfQorI2VuZGlmCiAKIExvY2FsRGVmYXVsdFN5c3Rl
bUFwcGVhcmFuY2U6On5Mb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlKCkKIHsKICNpZiBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTQwMAotICAgIGlmIChtX3NhdmVkU3lz
dGVtQXBwZWFyYW5jZSkKLSAgICAgICAgW05TQXBwZWFyYW5jZSBzZXRDdXJyZW50QXBwZWFyYW5j
ZTptX3NhdmVkU3lzdGVtQXBwZWFyYW5jZS5nZXQoKV07CisgICAgW05TQXBwZWFyYW5jZSBzZXRD
dXJyZW50QXBwZWFyYW5jZTptX3NhdmVkU3lzdGVtQXBwZWFyYW5jZS5nZXQoKV07CiAjZW5kaWYK
IH0KLSAgICAKKwogfQogCiAjZW5kaWYgLy8gVVNFKEFQUEtJVCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9UaGVtZU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1RoZW1lTWFjLmgKaW5kZXggY2JlMmNiOWViMDliMTYzODUxMzk3YmVhZmJhM2ViMTcz
MjNlMjQzZC4uMGZmZDU5ZmU2YTg0YmIwYzFkMWIwYTJlNDM1ODRmN2E3YzdlZGMyMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1RoZW1lTWFjLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1RoZW1lTWFjLmgKQEAgLTMzLDkgKzMzLDkgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBUaGVtZU1hYyBmaW5hbCA6IHB1YmxpYyBUaGVtZUNvY29h
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgTlNWaWV3ICplbnN1cmVkVmlldyhTY3JvbGxWaWV3Kiwg
Y29uc3QgQ29udHJvbFN0YXRlcyYsIGJvb2wgdXNlU3lzdGVtQXBwZWFyYW5jZSwgYm9vbCB1c2VV
bnBhcmVudGVkVmlldyA9IGZhbHNlKTsKKyAgICBzdGF0aWMgTlNWaWV3ICplbnN1cmVkVmlldyhT
Y3JvbGxWaWV3KiwgY29uc3QgQ29udHJvbFN0YXRlcyYsIGJvb2wgdXNlVW5wYXJlbnRlZFZpZXcg
PSBmYWxzZSk7CiAgICAgc3RhdGljIHZvaWQgc2V0Rm9jdXNSaW5nQ2xpcFJlY3QoY29uc3QgRmxv
YXRSZWN0Jik7Ci0gICAgc3RhdGljIGJvb2wgZHJhd0NlbGxPckZvY3VzUmluZ1dpdGhWaWV3SW50
b0NvbnRleHQoTlNDZWxsICosIEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYsIE5T
VmlldyAqLCBib29sIGRyYXdCdXR0b25DZWxsLCBib29sIGRyYXdGb2N1c1JpbmcsIGJvb2wgdXNl
SW1hZ2VCdWZmZXIsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yLCBib29sIHVzZVN5c3RlbUFwcGVh
cmFuY2UpOworICAgIHN0YXRpYyBib29sIGRyYXdDZWxsT3JGb2N1c1JpbmdXaXRoVmlld0ludG9D
b250ZXh0KE5TQ2VsbCAqLCBHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmLCBOU1Zp
ZXcgKiwgYm9vbCBkcmF3QnV0dG9uQ2VsbCwgYm9vbCBkcmF3Rm9jdXNSaW5nLCBib29sIHVzZUlt
YWdlQnVmZmVyLCBmbG9hdCBkZXZpY2VTY2FsZUZhY3Rvcik7CiAKIHByaXZhdGU6CiAgICAgZnJp
ZW5kIE5ldmVyRGVzdHJveWVkPFRoZW1lTWFjPjsKQEAgLTUzLDcgKzUzLDcgQEAgcHJpdmF0ZToK
IAogICAgIGJvb2wgY29udHJvbFJlcXVpcmVzUHJlV2hpdGVTcGFjZShDb250cm9sUGFydCBwYXJ0
KSBjb25zdCBmaW5hbCB7IHJldHVybiBwYXJ0ID09IFB1c2hCdXR0b25QYXJ0OyB9CiAKLSAgICB2
b2lkIHBhaW50KENvbnRyb2xQYXJ0LCBDb250cm9sU3RhdGVzJiwgR3JhcGhpY3NDb250ZXh0Jiwg
Y29uc3QgRmxvYXRSZWN0JiwgZmxvYXQgem9vbUZhY3RvciwgU2Nyb2xsVmlldyosIGZsb2F0IGRl
dmljZVNjYWxlRmFjdG9yLCBmbG9hdCBwYWdlU2NhbGVGYWN0b3IsIGJvb2wgdXNlU3lzdGVtQXBw
ZWFyYW5jZSkgZmluYWw7CisgICAgdm9pZCBwYWludChDb250cm9sUGFydCwgQ29udHJvbFN0YXRl
cyYsIEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYsIGZsb2F0IHpvb21GYWN0b3Is
IFNjcm9sbFZpZXcqLCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvciwgZmxvYXQgcGFnZVNjYWxlRmFj
dG9yLCBib29sIHVzZVN5c3RlbUFwcGVhcmFuY2UsIGJvb2wgZGVmYXVsdEFwcGVhcmFuY2UpIGZp
bmFsOwogICAgIHZvaWQgaW5mbGF0ZUNvbnRyb2xQYWludFJlY3QoQ29udHJvbFBhcnQsIGNvbnN0
IENvbnRyb2xTdGF0ZXMmLCBGbG9hdFJlY3QmLCBmbG9hdCB6b29tRmFjdG9yKSBjb25zdCBmaW5h
bDsKIAogICAgIGJvb2wgdXNlclByZWZlcnNSZWR1Y2VkTW90aW9uKCkgY29uc3QgZmluYWw7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhlbWVNYWMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhlbWVNYWMubW0KaW5kZXggODczNmVmNTU2MTdkN2Fh
ZTdhMzk1MjdhOTFmZGIwNjZhODg2ZTgxNi4uMzY0MTIxZTZhMzUwOWM1NWUxOWZkZjQzOTY3ZDc5
ZjViYjY3ZDk2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1RoZW1l
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9UaGVtZU1hYy5tbQpAQCAt
NjgsMTYgKzY4LDYgQEAgQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV2ViQ29yZVRoZW1lVmlldwog
Ci0tIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhVc2VTeXN0ZW1BcHBlYXJhbmNlOihCT09MKXVzZVN5
c3RlbUFwcGVhcmFuY2UKLXsKLSAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKLSAgICAg
ICAgcmV0dXJuIG5pbDsKLSAgICAKLSAgICBXZWJDb3JlOjpMb2NhbERlZmF1bHRTeXN0ZW1BcHBl
YXJhbmNlIGxvY2FsQXBwZWFyYW5jZSh1c2VTeXN0ZW1BcHBlYXJhbmNlKTsKLSAgICBbc2VsZiBz
ZXRBcHBlYXJhbmNlOltOU0FwcGVhcmFuY2UgY3VycmVudEFwcGVhcmFuY2VdXTsKLSAgICByZXR1
cm4gc2VsZjsKLX0KLQogLSAoTlNXaW5kb3cgKil3aW5kb3cKIHsKICAgICAvLyBVc2luZyBkZWZl
cjpZRVMgcHJldmVudHMgdXMgZnJvbSB3YXN0aW5nIGFueSB3aW5kb3cgc2VydmVyIHJlc291cmNl
cyBmb3IgdGhpcyB3aW5kb3csIHNpbmNlIHdlJ3JlIG5vdCBhY3R1YWxseQpAQCAtMzk0LDcgKzM4
NCw3IEBAIHN0YXRpYyBib29sIGRyYXdDZWxsRm9jdXNSaW5nKE5TQ2VsbCAqY2VsbCwgTlNSZWN0
IGNlbGxGcmFtZSwgTlNWaWV3ICpjb250cm9sVmllCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1z
dGF0aWMgdm9pZCBwYWludFRvZ2dsZUJ1dHRvbihDb250cm9sUGFydCBidXR0b25UeXBlLCBDb250
cm9sU3RhdGVzJiBjb250cm9sU3RhdGVzLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0
IEZsb2F0UmVjdCYgem9vbWVkUmVjdCwgZmxvYXQgem9vbUZhY3RvciwgU2Nyb2xsVmlldyogc2Ny
b2xsVmlldywgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IsIGZsb2F0IHBhZ2VTY2FsZUZhY3Rvciwg
Ym9vbCB1c2VTeXN0ZW1BcHBlYXJhbmNlKQorc3RhdGljIHZvaWQgcGFpbnRUb2dnbGVCdXR0b24o
Q29udHJvbFBhcnQgYnV0dG9uVHlwZSwgQ29udHJvbFN0YXRlcyYgY29udHJvbFN0YXRlcywgR3Jh
cGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHpvb21lZFJlY3QsIGZsb2F0
IHpvb21GYWN0b3IsIFNjcm9sbFZpZXcqIHNjcm9sbFZpZXcsIGZsb2F0IGRldmljZVNjYWxlRmFj
dG9yLCBmbG9hdCBwYWdlU2NhbGVGYWN0b3IpCiB7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENF
UFRJT05TCiAKQEAgLTQzNiw3ICs0MjYsNyBAQCBzdGF0aWMgdm9pZCBwYWludFRvZ2dsZUJ1dHRv
bihDb250cm9sUGFydCBidXR0b25UeXBlLCBDb250cm9sU3RhdGVzJiBjb250cm9sU3RhdAogICAg
IH0KICAgICBMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQgbG9jYWxDb250ZXh0KGNvbnRleHQp
OwogCi0gICAgTlNWaWV3ICp2aWV3ID0gVGhlbWVNYWM6OmVuc3VyZWRWaWV3KHNjcm9sbFZpZXcs
IGNvbnRyb2xTdGF0ZXMsIHVzZVN5c3RlbUFwcGVhcmFuY2UsIHRydWUgLyogdXNlVW5wYXJlbnRl
ZFZpZXcgKi8pOworICAgIE5TVmlldyAqdmlldyA9IFRoZW1lTWFjOjplbnN1cmVkVmlldyhzY3Jv
bGxWaWV3LCBjb250cm9sU3RhdGVzLCB0cnVlIC8qIHVzZVVucGFyZW50ZWRWaWV3ICovKTsKIAog
ICAgIGJvb2wgbmVlZHNSZXBhaW50ID0gZmFsc2U7CiAgICAgYm9vbCB1c2VJbWFnZUJ1ZmZlciA9
IHBhZ2VTY2FsZUZhY3RvciAhPSAxLjBmIHx8IHpvb21GYWN0b3IgIT0gMS4wZjsKQEAgLTQ0OSw5
ICs0MzksOSBAQCBzdGF0aWMgdm9pZCBwYWludFRvZ2dsZUJ1dHRvbihDb250cm9sUGFydCBidXR0
b25UeXBlLCBDb250cm9sU3RhdGVzJiBjb250cm9sU3RhdAogCiAgICAgICAgIFt0b2dnbGVCdXR0
b25DZWxsIF9yZW5kZXJDdXJyZW50QW5pbWF0aW9uRnJhbWVJbkNvbnRleHQ6Y29udGV4dC5wbGF0
Zm9ybUNvbnRleHQoKSBhdExvY2F0aW9uOk5TTWFrZVBvaW50KDAsIDApXTsKICAgICAgICAgaWYg
KCFbdG9nZ2xlQnV0dG9uQ2VsbCBfc3RhdGVBbmltYXRpb25SdW5uaW5nXSAmJiBpc0NlbGxGb2N1
c2VkKQotICAgICAgICAgICAgbmVlZHNSZXBhaW50ID0gVGhlbWVNYWM6OmRyYXdDZWxsT3JGb2N1
c1JpbmdXaXRoVmlld0ludG9Db250ZXh0KHRvZ2dsZUJ1dHRvbkNlbGwuZ2V0KCksIGNvbnRleHQs
IGluZmxhdGVkUmVjdCwgdmlldywgZmFsc2UsIHRydWUsIHVzZUltYWdlQnVmZmVyLCBkZXZpY2VT
Y2FsZUZhY3RvciwgdXNlU3lzdGVtQXBwZWFyYW5jZSk7CisgICAgICAgICAgICBuZWVkc1JlcGFp
bnQgPSBUaGVtZU1hYzo6ZHJhd0NlbGxPckZvY3VzUmluZ1dpdGhWaWV3SW50b0NvbnRleHQodG9n
Z2xlQnV0dG9uQ2VsbC5nZXQoKSwgY29udGV4dCwgaW5mbGF0ZWRSZWN0LCB2aWV3LCBmYWxzZSwg
dHJ1ZSwgdXNlSW1hZ2VCdWZmZXIsIGRldmljZVNjYWxlRmFjdG9yKTsKICAgICB9IGVsc2UKLSAg
ICAgICAgbmVlZHNSZXBhaW50ID0gVGhlbWVNYWM6OmRyYXdDZWxsT3JGb2N1c1JpbmdXaXRoVmll
d0ludG9Db250ZXh0KHRvZ2dsZUJ1dHRvbkNlbGwuZ2V0KCksIGNvbnRleHQsIGluZmxhdGVkUmVj
dCwgdmlldywgdHJ1ZSwgaXNDZWxsRm9jdXNlZCwgdXNlSW1hZ2VCdWZmZXIsIGRldmljZVNjYWxl
RmFjdG9yLCB1c2VTeXN0ZW1BcHBlYXJhbmNlKTsKKyAgICAgICAgbmVlZHNSZXBhaW50ID0gVGhl
bWVNYWM6OmRyYXdDZWxsT3JGb2N1c1JpbmdXaXRoVmlld0ludG9Db250ZXh0KHRvZ2dsZUJ1dHRv
bkNlbGwuZ2V0KCksIGNvbnRleHQsIGluZmxhdGVkUmVjdCwgdmlldywgdHJ1ZSwgaXNDZWxsRm9j
dXNlZCwgdXNlSW1hZ2VCdWZmZXIsIGRldmljZVNjYWxlRmFjdG9yKTsKIAogICAgIFt0b2dnbGVC
dXR0b25DZWxsIHNldENvbnRyb2xWaWV3Om5pbF07CiAKQEAgLTUyNyw3ICs1MTcsNyBAQCBzdGF0
aWMgTlNCdXR0b25DZWxsICpidXR0b24oQ29udHJvbFBhcnQgcGFydCwgY29uc3QgQ29udHJvbFN0
YXRlcyYgY29udHJvbFN0YXRlcwogICAgIHJldHVybiBjZWxsOwogfQogICAgIAotc3RhdGljIHZv
aWQgcGFpbnRCdXR0b24oQ29udHJvbFBhcnQgcGFydCwgQ29udHJvbFN0YXRlcyYgY29udHJvbFN0
YXRlcywgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHpvb21lZFJl
Y3QsIGZsb2F0IHpvb21GYWN0b3IsIFNjcm9sbFZpZXcqIHNjcm9sbFZpZXcsIGZsb2F0IGRldmlj
ZVNjYWxlRmFjdG9yLCBmbG9hdCBwYWdlU2NhbGVGYWN0b3IsIGJvb2wgdXNlU3lzdGVtQXBwZWFy
YW5jZSkKK3N0YXRpYyB2b2lkIHBhaW50QnV0dG9uKENvbnRyb2xQYXJ0IHBhcnQsIENvbnRyb2xT
dGF0ZXMmIGNvbnRyb2xTdGF0ZXMsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxv
YXRSZWN0JiB6b29tZWRSZWN0LCBmbG9hdCB6b29tRmFjdG9yLCBTY3JvbGxWaWV3KiBzY3JvbGxW
aWV3LCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvciwgZmxvYXQgcGFnZVNjYWxlRmFjdG9yKQogewog
ICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogICAgIApAQCAtNTYyLDE0ICs1NTIsMTIg
QEAgc3RhdGljIHZvaWQgcGFpbnRCdXR0b24oQ29udHJvbFBhcnQgcGFydCwgQ29udHJvbFN0YXRl
cyYgY29udHJvbFN0YXRlcywgR3JhcGhpY3MKICAgICAKICAgICBMb2NhbEN1cnJlbnRHcmFwaGlj
c0NvbnRleHQgbG9jYWxDb250ZXh0KGNvbnRleHQpOwogICAgIAotICAgIE5TVmlldyAqdmlldyA9
IFRoZW1lTWFjOjplbnN1cmVkVmlldyhzY3JvbGxWaWV3LCBjb250cm9sU3RhdGVzLCB1c2VTeXN0
ZW1BcHBlYXJhbmNlKTsKKyAgICBOU1ZpZXcgKnZpZXcgPSBUaGVtZU1hYzo6ZW5zdXJlZFZpZXco
c2Nyb2xsVmlldywgY29udHJvbFN0YXRlcyk7CiAgICAgTlNXaW5kb3cgKndpbmRvdyA9IFt2aWV3
IHdpbmRvd107Ci0gICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFu
Y2UodXNlU3lzdGVtQXBwZWFyYW5jZSk7Ci0gICAgW3dpbmRvdyBzZXRBcHBlYXJhbmNlOltOU0Fw
cGVhcmFuY2UgY3VycmVudEFwcGVhcmFuY2VdXTsKICAgICBOU0J1dHRvbkNlbGwgKnByZXZpb3Vz
RGVmYXVsdEJ1dHRvbkNlbGwgPSBbd2luZG93IGRlZmF1bHRCdXR0b25DZWxsXTsKIAogICAgIGJv
b2wgdXNlSW1hZ2VCdWZmZXIgPSBwYWdlU2NhbGVGYWN0b3IgIT0gMS4wZiB8fCB6b29tRmFjdG9y
ICE9IDEuMGY7Ci0gICAgYm9vbCBuZWVkc1JlcGFpbnQgPSBUaGVtZU1hYzo6ZHJhd0NlbGxPckZv
Y3VzUmluZ1dpdGhWaWV3SW50b0NvbnRleHQoYnV0dG9uQ2VsbCwgY29udGV4dCwgaW5mbGF0ZWRS
ZWN0LCB2aWV3LCB0cnVlLCBzdGF0ZXMgJiBDb250cm9sU3RhdGVzOjpGb2N1c1N0YXRlLCB1c2VJ
bWFnZUJ1ZmZlciwgZGV2aWNlU2NhbGVGYWN0b3IsIHVzZVN5c3RlbUFwcGVhcmFuY2UpOworICAg
IGJvb2wgbmVlZHNSZXBhaW50ID0gVGhlbWVNYWM6OmRyYXdDZWxsT3JGb2N1c1JpbmdXaXRoVmll
d0ludG9Db250ZXh0KGJ1dHRvbkNlbGwsIGNvbnRleHQsIGluZmxhdGVkUmVjdCwgdmlldywgdHJ1
ZSwgc3RhdGVzICYgQ29udHJvbFN0YXRlczo6Rm9jdXNTdGF0ZSwgdXNlSW1hZ2VCdWZmZXIsIGRl
dmljZVNjYWxlRmFjdG9yKTsKICAgICBpZiAoc3RhdGVzICYgQ29udHJvbFN0YXRlczo6RGVmYXVs
dFN0YXRlKQogICAgICAgICBbd2luZG93IHNldERlZmF1bHRCdXR0b25DZWxsOmJ1dHRvbkNlbGxd
OwogICAgIGVsc2UgaWYgKFtwcmV2aW91c0RlZmF1bHRCdXR0b25DZWxsIGlzRXF1YWw6YnV0dG9u
Q2VsbF0pCkBAIC02NDcsNyArNjM1LDcgQEAgc3RhdGljIHZvaWQgcGFpbnRTdGVwcGVyKENvbnRy
b2xTdGF0ZXMmIHN0YXRlcywgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdAogCiAvLyBU
aGlzIHdpbGwgZW5zdXJlIHRoYXQgd2UgYWx3YXlzIHJldHVybiBhIHZhbGlkIE5TVmlldywgZXZl
biBpZiBTY3JvbGxWaWV3IGRvZXNuJ3QgaGF2ZSBhbiBhc3NvY2lhdGVkIGRvY3VtZW50IE5TVmll
dy4KIC8vIElmIHRoZSBTY3JvbGxWaWV3IGRvZXNuJ3QgaGF2ZSBhbiBOU1ZpZXcsIHdlIHdpbGwg
cmV0dXJuIGEgZmFrZSBOU1ZpZXcgc2V0IHVwIGluIHRoZSB3YXkgQXBwS2l0IGV4cGVjdHMuCi1O
U1ZpZXcgKlRoZW1lTWFjOjplbnN1cmVkVmlldyhTY3JvbGxWaWV3KiBzY3JvbGxWaWV3LCBjb25z
dCBDb250cm9sU3RhdGVzJiBjb250cm9sU3RhdGVzLCBib29sIHVzZVN5c3RlbUFwcGVhcmFuY2Us
IGJvb2wgdXNlVW5wYXJlbnRlZFZpZXcpCitOU1ZpZXcgKlRoZW1lTWFjOjplbnN1cmVkVmlldyhT
Y3JvbGxWaWV3KiBzY3JvbGxWaWV3LCBjb25zdCBDb250cm9sU3RhdGVzJiBjb250cm9sU3RhdGVz
LCBib29sIHVzZVVucGFyZW50ZWRWaWV3KQogewogICAgIGlmICghdXNlVW5wYXJlbnRlZFZpZXcp
IHsKICAgICAgICAgaWYgKE5TVmlldyAqZG9jdW1lbnRWaWV3ID0gc2Nyb2xsVmlldy0+ZG9jdW1l
bnRWaWV3KCkpCkBAIC02NTUsOCArNjQzLDkgQEAgTlNWaWV3ICpUaGVtZU1hYzo6ZW5zdXJlZFZp
ZXcoU2Nyb2xsVmlldyogc2Nyb2xsVmlldywgY29uc3QgQ29udHJvbFN0YXRlcyYgY29udHIKICAg
ICB9CiAKICAgICAvLyBVc2UgYSBmYWtlIHZpZXcuCi0gICAgc3RhdGljIFdlYkNvcmVUaGVtZVZp
ZXcgKnRoZW1lVmlldyA9IFtbV2ViQ29yZVRoZW1lVmlldyBhbGxvY10gaW5pdFdpdGhVc2VTeXN0
ZW1BcHBlYXJhbmNlOnVzZVN5c3RlbUFwcGVhcmFuY2VdOworICAgIHN0YXRpYyBXZWJDb3JlVGhl
bWVWaWV3ICp0aGVtZVZpZXcgPSBbW1dlYkNvcmVUaGVtZVZpZXcgYWxsb2NdIGluaXRdOwogICAg
IFt0aGVtZVZpZXcgc2V0RnJhbWVTaXplOk5TU2l6ZUZyb21DR1NpemUoc2Nyb2xsVmlldy0+dG90
YWxDb250ZW50c1NpemUoKSldOworICAgIFt0aGVtZVZpZXcgc2V0QXBwZWFyYW5jZTpbTlNBcHBl
YXJhbmNlIGN1cnJlbnRBcHBlYXJhbmNlXV07CiAKICAgICB0aGVtZVdpbmRvd0hhc0tleUFwcGVh
cmFuY2UgPSAhKGNvbnRyb2xTdGF0ZXMuc3RhdGVzKCkgJiBDb250cm9sU3RhdGVzOjpXaW5kb3dJ
bmFjdGl2ZVN0YXRlKTsKIApAQCAtNjg1LDEwICs2NzQsOSBAQCBzdGF0aWMgaW5saW5lIGJvb2wg
ZHJhd0NlbGxPckZvY3VzUmluZ0ludG9SZWN0V2l0aFZpZXcoTlNDZWxsICpjZWxsLCBOU1JlY3Qg
cmVjdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBUaGVtZU1hYzo6ZHJhd0NlbGxPckZv
Y3VzUmluZ1dpdGhWaWV3SW50b0NvbnRleHQoTlNDZWxsICpjZWxsLCBHcmFwaGljc0NvbnRleHQm
IGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgTlNWaWV3ICp2aWV3LCBib29sIGRyYXdC
dXR0b25DZWxsLCBib29sIGRyYXdGb2N1c1JpbmcsIGJvb2wgdXNlSW1hZ2VCdWZmZXIsIGZsb2F0
IGRldmljZVNjYWxlRmFjdG9yLCBib29sIHVzZVN5c3RlbUFwcGVhcmFuY2UpCitib29sIFRoZW1l
TWFjOjpkcmF3Q2VsbE9yRm9jdXNSaW5nV2l0aFZpZXdJbnRvQ29udGV4dChOU0NlbGwgKmNlbGws
IEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiByZWN0LCBOU1ZpZXcg
KnZpZXcsIGJvb2wgZHJhd0J1dHRvbkNlbGwsIGJvb2wgZHJhd0ZvY3VzUmluZywgYm9vbCB1c2VJ
bWFnZUJ1ZmZlciwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpCiB7CiAgICAgQVNTRVJUKGRyYXdC
dXR0b25DZWxsIHx8IGRyYXdGb2N1c1JpbmcpOwotICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVh
cmFuY2UgbG9jYWxBcHBlYXJhbmNlKHVzZVN5c3RlbUFwcGVhcmFuY2UpOwogICAgIGJvb2wgbmVl
ZHNSZXBhaW50ID0gZmFsc2U7CiAgICAgaWYgKHVzZUltYWdlQnVmZmVyKSB7CiAgICAgICAgIE5T
UmVjdCBpbWFnZUJ1ZmZlckRyYXdSZWN0ID0gTlNSZWN0KEZsb2F0UmVjdChidXR0b25Gb2N1c1Jl
Y3RPdXRsaW5lV2lkdGgsIGJ1dHRvbkZvY3VzUmVjdE91dGxpbmVXaWR0aCwgcmVjdC53aWR0aCgp
LCByZWN0LmhlaWdodCgpKSk7CkBAIC04NTcsMjAgKzg0NSwyMiBAQCB2b2lkIFRoZW1lTWFjOjpp
bmZsYXRlQ29udHJvbFBhaW50UmVjdChDb250cm9sUGFydCBwYXJ0LCBjb25zdCBDb250cm9sU3Rh
dGVzJiBzdAogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIH0KIAotdm9pZCBUaGVtZU1h
Yzo6cGFpbnQoQ29udHJvbFBhcnQgcGFydCwgQ29udHJvbFN0YXRlcyYgc3RhdGVzLCBHcmFwaGlj
c0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgem9vbWVkUmVjdCwgZmxvYXQgem9v
bUZhY3RvciwgU2Nyb2xsVmlldyogc2Nyb2xsVmlldywgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3Is
IGZsb2F0IHBhZ2VTY2FsZUZhY3RvciwgYm9vbCB1c2VTeXN0ZW1BcHBlYXJhbmNlKQordm9pZCBU
aGVtZU1hYzo6cGFpbnQoQ29udHJvbFBhcnQgcGFydCwgQ29udHJvbFN0YXRlcyYgc3RhdGVzLCBH
cmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgem9vbWVkUmVjdCwgZmxv
YXQgem9vbUZhY3RvciwgU2Nyb2xsVmlldyogc2Nyb2xsVmlldywgZmxvYXQgZGV2aWNlU2NhbGVG
YWN0b3IsIGZsb2F0IHBhZ2VTY2FsZUZhY3RvciwgYm9vbCB1c2VTeXN0ZW1BcHBlYXJhbmNlLCBi
b29sIGRlZmF1bHRBcHBlYXJhbmNlKQogeworICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFu
Y2UgbG9jYWxBcHBlYXJhbmNlKHVzZVN5c3RlbUFwcGVhcmFuY2UsIGRlZmF1bHRBcHBlYXJhbmNl
KTsKKwogICAgIHN3aXRjaCAocGFydCkgewogICAgICAgICBjYXNlIENoZWNrYm94UGFydDoKLSAg
ICAgICAgICAgIHBhaW50VG9nZ2xlQnV0dG9uKHBhcnQsIHN0YXRlcywgY29udGV4dCwgem9vbWVk
UmVjdCwgem9vbUZhY3Rvciwgc2Nyb2xsVmlldywgZGV2aWNlU2NhbGVGYWN0b3IsIHBhZ2VTY2Fs
ZUZhY3RvciwgdXNlU3lzdGVtQXBwZWFyYW5jZSk7CisgICAgICAgICAgICBwYWludFRvZ2dsZUJ1
dHRvbihwYXJ0LCBzdGF0ZXMsIGNvbnRleHQsIHpvb21lZFJlY3QsIHpvb21GYWN0b3IsIHNjcm9s
bFZpZXcsIGRldmljZVNjYWxlRmFjdG9yLCBwYWdlU2NhbGVGYWN0b3IpOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIGNhc2UgUmFkaW9QYXJ0OgotICAgICAgICAgICAgcGFpbnRUb2dnbGVC
dXR0b24ocGFydCwgc3RhdGVzLCBjb250ZXh0LCB6b29tZWRSZWN0LCB6b29tRmFjdG9yLCBzY3Jv
bGxWaWV3LCBkZXZpY2VTY2FsZUZhY3RvciwgcGFnZVNjYWxlRmFjdG9yLCB1c2VTeXN0ZW1BcHBl
YXJhbmNlKTsKKyAgICAgICAgICAgIHBhaW50VG9nZ2xlQnV0dG9uKHBhcnQsIHN0YXRlcywgY29u
dGV4dCwgem9vbWVkUmVjdCwgem9vbUZhY3Rvciwgc2Nyb2xsVmlldywgZGV2aWNlU2NhbGVGYWN0
b3IsIHBhZ2VTY2FsZUZhY3Rvcik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBQ
dXNoQnV0dG9uUGFydDoKICAgICAgICAgY2FzZSBEZWZhdWx0QnV0dG9uUGFydDoKICAgICAgICAg
Y2FzZSBCdXR0b25QYXJ0OgogICAgICAgICBjYXNlIFNxdWFyZUJ1dHRvblBhcnQ6Ci0gICAgICAg
ICAgICBwYWludEJ1dHRvbihwYXJ0LCBzdGF0ZXMsIGNvbnRleHQsIHpvb21lZFJlY3QsIHpvb21G
YWN0b3IsIHNjcm9sbFZpZXcsIGRldmljZVNjYWxlRmFjdG9yLCBwYWdlU2NhbGVGYWN0b3IsIHVz
ZVN5c3RlbUFwcGVhcmFuY2UpOworICAgICAgICAgICAgcGFpbnRCdXR0b24ocGFydCwgc3RhdGVz
LCBjb250ZXh0LCB6b29tZWRSZWN0LCB6b29tRmFjdG9yLCBzY3JvbGxWaWV3LCBkZXZpY2VTY2Fs
ZUZhY3RvciwgcGFnZVNjYWxlRmFjdG9yKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBj
YXNlIElubmVyU3BpbkJ1dHRvblBhcnQ6CiAgICAgICAgICAgICBwYWludFN0ZXBwZXIoc3RhdGVz
LCBjb250ZXh0LCB6b29tZWRSZWN0LCB6b29tRmFjdG9yLCBzY3JvbGxWaWV3KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcAppbmRleCBmZDFkYWY4NDdjOTYxM2I2
ZWVhZjhlMDczZDIyZTQ0ZjYyMjUyNjQ1Li45NGY3ZDUyZjdkZjE2NjNjMTAxZGIxYzM4NDMyNjQ1
MzdjN2U2ZDI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlz
dEJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3Bw
CkBAIC00NjAsNyArNDYwLDcgQEAgdm9pZCBSZW5kZXJMaXN0Qm94OjpwYWludEl0ZW1CYWNrZ3Jv
dW5kKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYKICAgICAgICAgaWYg
KGZyYW1lKCkuc2VsZWN0aW9uKCkuaXNGb2N1c2VkQW5kQWN0aXZlKCkgJiYgZG9jdW1lbnQoKS5m
b2N1c2VkRWxlbWVudCgpID09ICZzZWxlY3RFbGVtZW50KCkpCiAgICAgICAgICAgICBiYWNrQ29s
b3IgPSB0aGVtZSgpLmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKTsKICAg
ICAgICAgZWxzZQotICAgICAgICAgICAgYmFja0NvbG9yID0gdGhlbWUoKS5pbmFjdGl2ZUxpc3RC
b3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoZG9jdW1lbnQoKS51c2VTeXN0ZW1BcHBlYXJhbmNl
KCkpOworICAgICAgICAgICAgYmFja0NvbG9yID0gdGhlbWUoKS5pbmFjdGl2ZUxpc3RCb3hTZWxl
Y3Rpb25CYWNrZ3JvdW5kQ29sb3IoZG9jdW1lbnQoKS5zdHlsZUNvbG9yT3B0aW9ucygpKTsKICAg
ICB9IGVsc2UKICAgICAgICAgYmFja0NvbG9yID0gaXRlbVN0eWxlLnZpc2l0ZWREZXBlbmRlbnRD
b2xvcldpdGhDb2xvckZpbHRlcihDU1NQcm9wZXJ0eUJhY2tncm91bmRDb2xvcik7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCmluZGV4IGE3MDdmMThjZjEzNDA5MmFl
ZWViMGZlN2MxOGZmMWNiNDJiMGVmZDAuLjAwZDYxNjUzOWI5MmRmNjA2YzZhMWYxNzVmYTMyYzc1
YTQzMjM3YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVt
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcApAQCAt
MzAzLDcgKzMwMyw3IEBAIGJvb2wgUmVuZGVyVGhlbWU6OnBhaW50KGNvbnN0IFJlbmRlckJveCYg
Ym94LCBDb250cm9sU3RhdGVzJiBjb250cm9sU3RhdGVzLCBjb25zCiAgICAgY2FzZSBCdXR0b25Q
YXJ0OgogICAgIGNhc2UgSW5uZXJTcGluQnV0dG9uUGFydDoKICAgICAgICAgdXBkYXRlQ29udHJv
bFN0YXRlc0ZvclJlbmRlcmVyKGJveCwgY29udHJvbFN0YXRlcyk7Ci0gICAgICAgIFRoZW1lOjpz
aW5nbGV0b24oKS5wYWludChwYXJ0LCBjb250cm9sU3RhdGVzLCBwYWludEluZm8uY29udGV4dCgp
LCBkZXZpY2VQaXhlbFNuYXBwZWRSZWN0LCBib3guc3R5bGUoKS5lZmZlY3RpdmVab29tKCksICZi
b3gudmlldygpLmZyYW1lVmlldygpLCBkZXZpY2VTY2FsZUZhY3RvciwgcGFnZVNjYWxlRmFjdG9y
LCBib3gucGFnZSgpLnVzZVN5c3RlbUFwcGVhcmFuY2UoKSk7CisgICAgICAgIFRoZW1lOjpzaW5n
bGV0b24oKS5wYWludChwYXJ0LCBjb250cm9sU3RhdGVzLCBwYWludEluZm8uY29udGV4dCgpLCBk
ZXZpY2VQaXhlbFNuYXBwZWRSZWN0LCBib3guc3R5bGUoKS5lZmZlY3RpdmVab29tKCksICZib3gu
dmlldygpLmZyYW1lVmlldygpLCBkZXZpY2VTY2FsZUZhY3RvciwgcGFnZVNjYWxlRmFjdG9yLCBi
b3gucGFnZSgpLnVzZVN5c3RlbUFwcGVhcmFuY2UoKSwgYm94LnBhZ2UoKS5kZWZhdWx0QXBwZWFy
YW5jZSgpKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJy
ZWFrOwpAQCAtNjE0LDEwICs2MTQsMTAgQEAgQ29sb3IgUmVuZGVyVGhlbWU6OmFjdGl2ZUxpc3RC
b3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKSBjb25zdAogICAgIHJldHVybiBtX2FjdGl2ZUxp
c3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3I7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lOjpp
bmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoYm9vbCB1c2VTeXN0ZW1BcHBl
YXJhbmNlKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWU6OmluYWN0aXZlTGlzdEJveFNlbGVjdGlv
bkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykg
Y29uc3QKIHsKICAgICBpZiAoIW1faW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENv
bG9yLmlzVmFsaWQoKSkKLSAgICAgICAgbV9pbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3Jv
dW5kQ29sb3IgPSBwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xv
cih1c2VTeXN0ZW1BcHBlYXJhbmNlKTsKKyAgICAgICAgbV9pbmFjdGl2ZUxpc3RCb3hTZWxlY3Rp
b25CYWNrZ3JvdW5kQ29sb3IgPSBwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tn
cm91bmRDb2xvcihvcHRpb25zKTsKICAgICByZXR1cm4gbV9pbmFjdGl2ZUxpc3RCb3hTZWxlY3Rp
b25CYWNrZ3JvdW5kQ29sb3I7CiB9CiAKQEAgLTY3MCw3ICs2NzAsNyBAQCBDb2xvciBSZW5kZXJU
aGVtZTo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKCkgY29u
c3QKICAgICByZXR1cm4gcGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKTsK
IH0KIAotQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9u
QmFja2dyb3VuZENvbG9yKGJvb2wpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1J
bmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29s
b3I6Ok9wdGlvbnM+KSBjb25zdAogewogICAgIHJldHVybiBwbGF0Zm9ybUluYWN0aXZlU2VsZWN0
aW9uQmFja2dyb3VuZENvbG9yKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGhlbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVt
ZS5oCmluZGV4IGNkYjM0OWEyYjVlYmM2NjJlMGM5MzkyMjRkNWE5YzQzNjczOGEwMzcuLjdkYWFl
Y2M2NDZhOWNjYjU3YmRiZDA2NWUwZWMyMWI2ODUzOTI1YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZS5oCkBAIC0xNDEsNyArMTQxLDcgQEAgcHVibGljOgogICAgIC8vIExp
c3QgYm94IHNlbGVjdGlvbiBjb2xvcnMKICAgICBDb2xvciBhY3RpdmVMaXN0Qm94U2VsZWN0aW9u
QmFja2dyb3VuZENvbG9yKCkgY29uc3Q7CiAgICAgQ29sb3IgYWN0aXZlTGlzdEJveFNlbGVjdGlv
bkZvcmVncm91bmRDb2xvcigpIGNvbnN0OwotICAgIENvbG9yIGluYWN0aXZlTGlzdEJveFNlbGVj
dGlvbkJhY2tncm91bmRDb2xvcihib29sKSBjb25zdDsKKyAgICBDb2xvciBpbmFjdGl2ZUxpc3RC
b3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+
KSBjb25zdDsKICAgICBDb2xvciBpbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29s
b3IoKSBjb25zdDsKIAogICAgIC8vIEhpZ2hsaWdodGluZyBjb2xvcnMgZm9yIFRleHRNYXRjaGVz
LgpAQCAtMjYxLDcgKzI2MSw3IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIENvbG9yIHBsYXRm
b3JtSW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSBjb25zdDsKIAogICAgIHZpcnR1
YWwgQ29sb3IgcGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCkg
Y29uc3Q7Ci0gICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlv
bkJhY2tncm91bmRDb2xvcihib29sKSBjb25zdDsKKyAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3Jt
SW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNv
bG9yOjpPcHRpb25zPikgY29uc3Q7CiAgICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUFjdGl2ZUxp
c3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSBjb25zdDsKICAgICB2aXJ0dWFsIENvbG9y
IHBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKCkgY29uc3Q7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmgKaW5kZXggM2E4NjMx
MTEyYzdiYWNiYzkzNjQ4ZGE4ODU0ZjU2ZTY3YjdjMGZjOC4uNTFmY2RjMmZkM2MwN2FiNDA0YzM4
YmMxY2VmMDU3ZTI4N2Q2NTEyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRo
ZW1lTWFjLmgKQEAgLTU3LDcgKzU3LDcgQEAgcHVibGljOgogICAgIENvbG9yIHBsYXRmb3JtSW5h
Y3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKSBjb25zdCBmaW5hbDsKICAgICBDb2xvciBw
bGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKSBjb25zdCBmaW5h
bDsKICAgICBDb2xvciBwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29s
b3IoKSBjb25zdCBmaW5hbDsKLSAgICBDb2xvciBwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVj
dGlvbkJhY2tncm91bmRDb2xvcihib29sKSBjb25zdCBmaW5hbDsKKyAgICBDb2xvciBwbGF0Zm9y
bUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVD
b2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOwogICAgIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVM
aXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKCkgY29uc3QgZmluYWw7CiAgICAgQ29sb3Ig
cGxhdGZvcm1Gb2N1c1JpbmdDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNv
bnN0IGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGhlbWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0K
aW5kZXggMmZhM2Q0Njk5NGUzM2M5ZmZhMTc4OGFiMWI1OGIxZTRkNjZiMWM0NC4uM2I5NmM1NWY3
OTdjNWQ2MzNjNzJjMDI2ZmVkYjZkMGU4MTAzZjNiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZU1hYy5tbQpAQCAtMjAxLDggKzIwMSw5IEBAIFJlbmRlclRoZW1lTWFj
OjpSZW5kZXJUaGVtZU1hYygpCiAKIE5TVmlldyAqUmVuZGVyVGhlbWVNYWM6OmRvY3VtZW50Vmll
d0Zvcihjb25zdCBSZW5kZXJPYmplY3QmIG8pIGNvbnN0CiB7CisgICAgTG9jYWxEZWZhdWx0U3lz
dGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uoby5wYWdlKCkudXNlU3lzdGVtQXBwZWFyYW5j
ZSgpLCBvLnBhZ2UoKS5kZWZhdWx0QXBwZWFyYW5jZSgpKTsKICAgICBDb250cm9sU3RhdGVzIHN0
YXRlcyhleHRyYWN0Q29udHJvbFN0YXRlc0ZvclJlbmRlcmVyKG8pKTsKLSAgICByZXR1cm4gVGhl
bWVNYWM6OmVuc3VyZWRWaWV3KCZvLnZpZXcoKS5mcmFtZVZpZXcoKSwgc3RhdGVzLCBvLnBhZ2Uo
KS51c2VTeXN0ZW1BcHBlYXJhbmNlKCkpOworICAgIHJldHVybiBUaGVtZU1hYzo6ZW5zdXJlZFZp
ZXcoJm8udmlldygpLmZyYW1lVmlldygpLCBzdGF0ZXMpOwogfQogCiAjaWYgRU5BQkxFKFZJREVP
KQpAQCAtMzIyLDkgKzMyMywxMSBAQCBDb2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1Gb2N1
c1JpbmdDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aQogICAgIHJldHVy
biBzeXN0ZW1Db2xvcihDU1NWYWx1ZVdlYmtpdEZvY3VzUmluZ0NvbG9yLCBvcHRpb25zKTsKIH0K
IAotQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9u
QmFja2dyb3VuZENvbG9yKGJvb2wgdXNlU3lzdGVtQXBwZWFyYW5jZSkgY29uc3QKK0NvbG9yIFJl
bmRlclRoZW1lTWFjOjpwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRD
b2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKLSAg
ICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZSh1c2VTeXN0ZW1B
cHBlYXJhbmNlKTsKKyAgICBjb25zdCBib29sIHVzZVN5c3RlbUFwcGVhcmFuY2UgPSBvcHRpb25z
LmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZVN5c3RlbUFwcGVhcmFuY2UpOworICAg
IGNvbnN0IGJvb2wgZGVmYXVsdEFwcGVhcmFuY2UgPSBvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29s
b3I6Ok9wdGlvbnM6OkRlZmF1bHRBcHBlYXJhbmNlKTsKKyAgICBMb2NhbERlZmF1bHRTeXN0ZW1B
cHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZSh1c2VTeXN0ZW1BcHBlYXJhbmNlLCBkZWZhdWx0QXBw
ZWFyYW5jZSk7CiAgICAgcmV0dXJuIHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5k
Q29sb3IoKTsKIH0KIApAQCAtNDMxLDkgKzQzNCwxMCBAQCB2b2lkIFJlbmRlclRoZW1lTWFjOjpw
bGF0Zm9ybUNvbG9yc0RpZENoYW5nZSgpCiBDb2xvciBSZW5kZXJUaGVtZU1hYzo6c3lzdGVtQ29s
b3IoQ1NTVmFsdWVJRCBjc3NWYWx1ZUlELCBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4g
b3B0aW9ucykgY29uc3QKIHsKICAgICBjb25zdCBib29sIHVzZVN5c3RlbUFwcGVhcmFuY2UgPSBv
cHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZVN5c3RlbUFwcGVhcmFuY2Up
OworICAgIGNvbnN0IGJvb2wgZGVmYXVsdEFwcGVhcmFuY2UgPSBvcHRpb25zLmNvbnRhaW5zKFN0
eWxlQ29sb3I6Ok9wdGlvbnM6OkRlZmF1bHRBcHBlYXJhbmNlKTsKICAgICBjb25zdCBib29sIGZv
clZpc2l0ZWRMaW5rID0gb3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpGb3JW
aXNpdGVkTGluayk7CiAKLSAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBw
ZWFyYW5jZSh1c2VTeXN0ZW1BcHBlYXJhbmNlKTsKKyAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBl
YXJhbmNlIGxvY2FsQXBwZWFyYW5jZSh1c2VTeXN0ZW1BcHBlYXJhbmNlLCBkZWZhdWx0QXBwZWFy
YW5jZSk7CiAKICAgICAvLyBUaGUgc3lzdGVtIGNvbG9yIGNhY2hlIGJlbG93IGNhbid0IGhhbmRs
ZSB2aXNpdGVkIGxpbmtzLiBUaGUgb25seSBjb2xvciB2YWx1ZQogICAgIC8vIHRoYXQgY2FyZXMg
YWJvdXQgdmlzaXRlZCBsaW5rcyBpcyBDU1NWYWx1ZVdlYmtpdExpbmssIHNvIGhhbmRsZSBpdCBo
ZXJlLgpAQCAtMTQxMiwxMCArMTQxNiwxMSBAQCB2b2lkIFJlbmRlclRoZW1lTWFjOjpzZXRQb3B1
cEJ1dHRvbkNlbGxTdGF0ZShjb25zdCBSZW5kZXJPYmplY3QmIG8sIGNvbnN0IEludFNpegogCiB2
b2lkIFJlbmRlclRoZW1lTWFjOjpwYWludENlbGxBbmRTZXRGb2N1c2VkRWxlbWVudE5lZWRzUmVw
YWludElmTmVjZXNzYXJ5KE5TQ2VsbCogY2VsbCwgY29uc3QgUmVuZGVyT2JqZWN0JiByZW5kZXJl
ciwgY29uc3QgUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsK
KyAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShyZW5kZXJl
ci5wYWdlKCkudXNlU3lzdGVtQXBwZWFyYW5jZSgpLCByZW5kZXJlci5wYWdlKCkuZGVmYXVsdEFw
cGVhcmFuY2UoKSk7CiAgICAgYm9vbCBzaG91bGREcmF3Rm9jdXNSaW5nID0gaXNGb2N1c2VkKHJl
bmRlcmVyKSAmJiByZW5kZXJlci5zdHlsZSgpLm91dGxpbmVTdHlsZUlzQXV0bygpOwogICAgIGJv
b2wgc2hvdWxkVXNlSW1hZ2VCdWZmZXIgPSByZW5kZXJlci5zdHlsZSgpLmVmZmVjdGl2ZVpvb20o
KSAhPSAxIHx8IHJlbmRlcmVyLnBhZ2UoKS5wYWdlU2NhbGVGYWN0b3IoKSAhPSAxOwogICAgIGJv
b2wgc2hvdWxkRHJhd0NlbGwgPSB0cnVlOwotICAgIGlmIChUaGVtZU1hYzo6ZHJhd0NlbGxPckZv
Y3VzUmluZ1dpdGhWaWV3SW50b0NvbnRleHQoY2VsbCwgcGFpbnRJbmZvLmNvbnRleHQoKSwgcmVj
dCwgZG9jdW1lbnRWaWV3Rm9yKHJlbmRlcmVyKSwgc2hvdWxkRHJhd0NlbGwsIHNob3VsZERyYXdG
b2N1c1JpbmcsIHNob3VsZFVzZUltYWdlQnVmZmVyLCByZW5kZXJlci5wYWdlKCkuZGV2aWNlU2Nh
bGVGYWN0b3IoKSwgcmVuZGVyZXIucGFnZSgpLnVzZVN5c3RlbUFwcGVhcmFuY2UoKSkpCisgICAg
aWYgKFRoZW1lTWFjOjpkcmF3Q2VsbE9yRm9jdXNSaW5nV2l0aFZpZXdJbnRvQ29udGV4dChjZWxs
LCBwYWludEluZm8uY29udGV4dCgpLCByZWN0LCBkb2N1bWVudFZpZXdGb3IocmVuZGVyZXIpLCBz
aG91bGREcmF3Q2VsbCwgc2hvdWxkRHJhd0ZvY3VzUmluZywgc2hvdWxkVXNlSW1hZ2VCdWZmZXIs
IHJlbmRlcmVyLnBhZ2UoKS5kZXZpY2VTY2FsZUZhY3RvcigpKSkKICAgICAgICAgcmVuZGVyZXIu
cGFnZSgpLmZvY3VzQ29udHJvbGxlcigpLnNldEZvY3VzZWRFbGVtZW50TmVlZHNSZXBhaW50KCk7
CiB9CiAKQEAgLTE0OTMsNiArMTQ5OCw4IEBAIGJvb2wgUmVuZGVyVGhlbWVNYWM6OnBhaW50U2xp
ZGVyVGh1bWIoY29uc3QgUmVuZGVyT2JqZWN0JiBvLCBjb25zdCBQYWludEluZm8mIHBhCiAgICAg
ICAgID8gc2xpZGVyVGh1bWJWZXJ0aWNhbCgpCiAgICAgICAgIDogc2xpZGVyVGh1bWJIb3Jpem9u
dGFsKCk7CiAKKyAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5j
ZShvLnBhZ2UoKS51c2VTeXN0ZW1BcHBlYXJhbmNlKCksIG8ucGFnZSgpLmRlZmF1bHRBcHBlYXJh
bmNlKCkpOworCiAgICAgTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0IGxvY2FsQ29udGV4dChw
YWludEluZm8uY29udGV4dCgpKTsKIAogICAgIC8vIFVwZGF0ZSB0aGUgdmFyaW91cyBzdGF0ZXMg
d2UgcmVzcG9uZCB0by4KQEAgLTE1NDQsNyArMTU1MSw3IEBAIGJvb2wgUmVuZGVyVGhlbWVNYWM6
OnBhaW50U2xpZGVyVGh1bWIoY29uc3QgUmVuZGVyT2JqZWN0JiBvLCBjb25zdCBQYWludEluZm8m
IHBhCiAgICAgYm9vbCBzaG91bGREcmF3Rm9jdXNSaW5nID0gZmFsc2U7CiAgICAgZmxvYXQgZGV2
aWNlU2NhbGVGYWN0b3IgPSBvLnBhZ2UoKS5kZXZpY2VTY2FsZUZhY3RvcigpOwogICAgIGJvb2wg
c2hvdWxkVXNlSW1hZ2VCdWZmZXIgPSBkZXZpY2VTY2FsZUZhY3RvciAhPSAxIHx8IHpvb21MZXZl
bCAhPSAxOwotICAgIFRoZW1lTWFjOjpkcmF3Q2VsbE9yRm9jdXNSaW5nV2l0aFZpZXdJbnRvQ29u
dGV4dChzbGlkZXJUaHVtYkNlbGwsIHBhaW50SW5mby5jb250ZXh0KCksIHVuem9vbWVkUmVjdCwg
dmlldywgc2hvdWxkRHJhd0NlbGwsIHNob3VsZERyYXdGb2N1c1JpbmcsIHNob3VsZFVzZUltYWdl
QnVmZmVyLCBkZXZpY2VTY2FsZUZhY3Rvciwgby5wYWdlKCkudXNlU3lzdGVtQXBwZWFyYW5jZSgp
KTsKKyAgICBUaGVtZU1hYzo6ZHJhd0NlbGxPckZvY3VzUmluZ1dpdGhWaWV3SW50b0NvbnRleHQo
c2xpZGVyVGh1bWJDZWxsLCBwYWludEluZm8uY29udGV4dCgpLCB1bnpvb21lZFJlY3QsIHZpZXcs
IHNob3VsZERyYXdDZWxsLCBzaG91bGREcmF3Rm9jdXNSaW5nLCBzaG91bGRVc2VJbWFnZUJ1ZmZl
ciwgZGV2aWNlU2NhbGVGYWN0b3IpOwogICAgIFtzbGlkZXJUaHVtYkNlbGwgc2V0Q29udHJvbFZp
ZXc6bmlsXTsKIAogICAgIHJldHVybiBmYWxzZTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339906</attachid>
            <date>2018-05-08 17:15:33 -0700</date>
            <delta_ts>2018-05-08 19:31:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185458-20180508171533.patch</filename>
            <type>text/plain</type>
            <size>30612</size>
            <attacher name="Timothy Hatcher">timothy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxNDg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTk3OGY5NjhhMDlhNmU5
NWYxMmJmYzgxMWM0NzExZjdkNTk1MWQ1Ny4uYWY3MTcyMTBlNTU1NWNjM2QyMDdmMDhmNmUwNDg3
M2I5NmY0Nzg0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDE4LTA1LTA4ICBUaW1v
dGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgU3R5bGVDb2xv
cjo6T3B0aW9ucyBpbiBtb3JlIHBsYWNlcy4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg1NDU4CisgICAgICAgIHJkYXI6Ly9wcm9ibGVtLzM5ODUz
Nzk4CisKKyAgICAgICAgQWRkIERlZmF1bHRBcHBlYXJhbmNlIHRvIFN0eWxlQ29sb3I6Ok9wdGlv
bnMsIHRvIGF2b2lkIHBhc3NpbmcgeWV0IGFub3RoZXIKKyAgICAgICAgYm9vbGVhbiBvbiBzb21l
IG9mIHRoZXNlIGZ1bmN0aW9ucy4KKworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgor
CisgICAgICAgICogY3NzL1N0eWxlQ29sb3IuaDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmRlZmF1bHRBcHBlYXJhbmNlIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzdHlsZUNvbG9yT3B0aW9ucyBjb25zdCk6Cisg
ICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vVGhlbWUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6VGhlbWU6OnBhaW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9UaGVt
ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9Mb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNl
Lmg6CisgICAgICAgICogcGxhdGZvcm0vbWFjL0xvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2Uu
bW06CisgICAgICAgIChXZWJDb3JlOjpMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlOjpMb2Nh
bERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsRGVmYXVs
dFN5c3RlbUFwcGVhcmFuY2U6On5Mb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMvVGhlbWVNYWMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGhl
bWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpwYWludFRvZ2dsZUJ1dHRvbik6CisgICAgICAg
IChXZWJDb3JlOjpwYWludEJ1dHRvbik6CisgICAgICAgIChXZWJDb3JlOjpUaGVtZU1hYzo6ZW5z
dXJlZFZpZXcpOgorICAgICAgICAoV2ViQ29yZTo6VGhlbWVNYWM6OmRyYXdDZWxsT3JGb2N1c1Jp
bmdXaXRoVmlld0ludG9Db250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OlRoZW1lTWFjOjpwYWlu
dCk6CisgICAgICAgICgtW1dlYkNvcmVUaGVtZVZpZXcgaW5pdFdpdGhVc2VTeXN0ZW1BcHBlYXJh
bmNlOl0pOiBEZWxldGVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxpc3RCb3g6OnBhaW50SXRlbUJhY2tncm91bmQpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJUaGVtZTo6cGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OmluYWN0
aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJUaGVtZTo6cGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3Jv
dW5kQ29sb3IgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZS5oOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJUaGVtZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFjOjpkb2N1
bWVudFZpZXdGb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OnBs
YXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFjOjpzeXN0ZW1Db2xvciBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGFpbnRDZWxsQW5kU2V0Rm9jdXNlZEVsZW1l
bnROZWVkc1JlcGFpbnRJZk5lY2Vzc2FyeSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZU1hYzo6cGFpbnRTbGlkZXJUaHVtYik6CisKIDIwMTgtMDUtMDcgIFphbGFuIEJ1anRhcyAgPHph
bGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXSBBZGQgRm9ybWF0dGluZ0NvbnRleHQ6Omxh
eW91dE91dE9mRmxvd0Rlc2NlbmRhbnRzIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvU3R5bGVDb2xvci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQ29s
b3IuaAppbmRleCBkZWNiMmFhNmI2MzY1YzAzZGJlMDAxMzUyNDllMGFjZDdhMmE5NjBhLi41YzA4
NDNlM2YyOGJhYWNkZDY3NGM2NGY4YjFkNzljZGExMzU4MDEyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVDb2xvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUNv
bG9yLmgKQEAgLTUzLDcgKzUzLDggQEAgcHVibGljOgogCiAgICAgZW51bSBjbGFzcyBPcHRpb25z
IDogdWludDhfdCB7CiAgICAgICAgIEZvclZpc2l0ZWRMaW5rID0gMSA8PCAwLAotICAgICAgICBV
c2VTeXN0ZW1BcHBlYXJhbmNlID0gMSA8PCAxCisgICAgICAgIFVzZVN5c3RlbUFwcGVhcmFuY2Ug
PSAxIDw8IDEsCisgICAgICAgIERlZmF1bHRBcHBlYXJhbmNlID0gMSA8PCAyCiAgICAgfTsKIAog
ICAgIHN0YXRpYyBDb2xvciBjb2xvckZyb21LZXl3b3JkKENTU1ZhbHVlSUQsIE9wdGlvblNldDxP
cHRpb25zPik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBkMWJiNGYzN2I1OTViZmQwNTVm
ZmMwYWI4OTcwZDMwYTI1NTgwYTU4Li5lYmE2NjkxZmE0Mjk5ZDFhMTM2ZGY0MzU5OTkxNWY0OTc1
YzBmN2I3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTcwMzQsMTEgKzcwMzQsMjEgQEAg
Ym9vbCBEb2N1bWVudDo6dXNlU3lzdGVtQXBwZWFyYW5jZSgpIGNvbnN0CiAgICAgcmV0dXJuIHVz
ZVN5c3RlbUFwcGVhcmFuY2U7CiB9CiAKK2Jvb2wgRG9jdW1lbnQ6OmRlZmF1bHRBcHBlYXJhbmNl
KCkgY29uc3QKK3sKKyAgICBib29sIGRlZmF1bHRBcHBlYXJhbmNlID0gdHJ1ZTsKKyAgICBpZiAo
UGFnZSogZG9jdW1lbnRQYWdlID0gcGFnZSgpKQorICAgICAgICBkZWZhdWx0QXBwZWFyYW5jZSA9
IGRvY3VtZW50UGFnZS0+ZGVmYXVsdEFwcGVhcmFuY2UoKTsKKyAgICByZXR1cm4gZGVmYXVsdEFw
cGVhcmFuY2U7Cit9CisKIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBEb2N1bWVudDo6
c3R5bGVDb2xvck9wdGlvbnMoKSBjb25zdAogewogICAgIE9wdGlvblNldDxTdHlsZUNvbG9yOjpP
cHRpb25zPiBvcHRpb25zOwogICAgIGlmICh1c2VTeXN0ZW1BcHBlYXJhbmNlKCkpCiAgICAgICAg
IG9wdGlvbnMgfD0gU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlU3lzdGVtQXBwZWFyYW5jZTsKKyAg
ICBpZiAoZGVmYXVsdEFwcGVhcmFuY2UoKSkKKyAgICAgICAgb3B0aW9ucyB8PSBTdHlsZUNvbG9y
OjpPcHRpb25zOjpEZWZhdWx0QXBwZWFyYW5jZTsKICAgICByZXR1cm4gb3B0aW9uczsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaAppbmRleCAwMDY2MjE5ZDhiMDIwZjAxODgzYWU5NThhYTQwNGE5OTZl
ZjAyMDBjLi40OWQyZTMwZjU5OTgxNWZkNjU1ODQ4ZGUxMjA5Y2QxYjJmNjFmNzhhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuaApAQCAtNTQ1LDYgKzU0NSw3IEBAIHB1YmxpYzoKICAgICBmbG9hdCBkZXZp
Y2VTY2FsZUZhY3RvcigpIGNvbnN0OwogCiAgICAgYm9vbCB1c2VTeXN0ZW1BcHBlYXJhbmNlKCkg
Y29uc3Q7CisgICAgYm9vbCBkZWZhdWx0QXBwZWFyYW5jZSgpIGNvbnN0OwogICAgIE9wdGlvblNl
dDxTdHlsZUNvbG9yOjpPcHRpb25zPiBzdHlsZUNvbG9yT3B0aW9ucygpIGNvbnN0OwogCiAgICAg
V0VCQ09SRV9FWFBPUlQgUmVmPFJhbmdlPiBjcmVhdGVSYW5nZSgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhlbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
VGhlbWUuY3BwCmluZGV4IDA3NDI2ZTFlYTBjMDBlMjBmOTk2OTYyYTgwNmY0YTFhMjVhMjQ3ZDgu
LmMwYWYxOTJiMWQxNTI1YjA1YWQzYWY1ZmM4MDk0ODdjN2IyNjEwZTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RoZW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9UaGVtZS5jcHAKQEAgLTU3LDcgKzU3LDcgQEAgYm9vbCBUaGVtZTo6Y29udHJvbFJlcXVp
cmVzUHJlV2hpdGVTcGFjZShDb250cm9sUGFydCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9
CiAKLXZvaWQgVGhlbWU6OnBhaW50KENvbnRyb2xQYXJ0LCBDb250cm9sU3RhdGVzJiwgR3JhcGhp
Y3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiwgZmxvYXQsIFNjcm9sbFZpZXcqLCBmbG9hdCwg
ZmxvYXQsIGJvb2wpCit2b2lkIFRoZW1lOjpwYWludChDb250cm9sUGFydCwgQ29udHJvbFN0YXRl
cyYsIEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYsIGZsb2F0LCBTY3JvbGxWaWV3
KiwgZmxvYXQsIGZsb2F0LCBib29sLCBib29sKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9UaGVtZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhlbWUu
aAppbmRleCAxNjNmMzViMDNmOTZjZjlhNTNmMmM3NjRlZjNmYjJjNjQxZmYwZjA2Li43MzkzMTI3
YTNhYzAzYWNiNjVhNDU1ODE5ZGQzYWNlZGNhNjM3ODExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9UaGVtZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RoZW1l
LmgKQEAgLTY3LDcgKzY3LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBjb250cm9sUmVx
dWlyZXNQcmVXaGl0ZVNwYWNlKENvbnRyb2xQYXJ0KSBjb25zdDsKIAogICAgIC8vIE1ldGhvZCBm
b3IgcGFpbnRpbmcgYSBjb250cm9sLiBUaGUgcmVjdCBpcyBpbiB6b29tZWQgY29vcmRpbmF0ZXMu
Ci0gICAgdmlydHVhbCB2b2lkIHBhaW50KENvbnRyb2xQYXJ0LCBDb250cm9sU3RhdGVzJiwgR3Jh
cGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiB6b29tZWRSZWN0LCBmbG9hdCB6b29tRmFj
dG9yLCBTY3JvbGxWaWV3KiwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IsIGZsb2F0IHBhZ2VTY2Fs
ZUZhY3RvciwgYm9vbCB1c2VTeXN0ZW1BcHBlYXJhbmNlKTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFp
bnQoQ29udHJvbFBhcnQsIENvbnRyb2xTdGF0ZXMmLCBHcmFwaGljc0NvbnRleHQmLCBjb25zdCBG
bG9hdFJlY3QmIHpvb21lZFJlY3QsIGZsb2F0IHpvb21GYWN0b3IsIFNjcm9sbFZpZXcqLCBmbG9h
dCBkZXZpY2VTY2FsZUZhY3RvciwgZmxvYXQgcGFnZVNjYWxlRmFjdG9yLCBib29sIHVzZVN5c3Rl
bUFwcGVhcmFuY2UsIGJvb2wgZGVmYXVsdEFwcGVhcmFuY2UpOwogCiAgICAgLy8gU29tZSBjb250
cm9scyBtYXkgc3BpbGwgb3V0IG9mIHRoZWlyIGNvbnRhaW5lcnMgKGUuZy4sIHRoZSBjaGVjayBv
biBhbiBPUyBYIGNoZWNrYm94KS4gIFdoZW4gdGhlc2UgY29udHJvbHMgcmVwYWludCwKICAgICAv
LyB0aGUgdGhlbWUgbmVlZHMgdG8gY29tbXVuaWNhdGUgdGhpcyBpbmZsYXRlZCByZWN0IHRvIHRo
ZSBlbmdpbmUgc28gdGhhdCBpdCBjYW4gaW52YWxpZGF0ZSB0aGUgd2hvbGUgY29udHJvbC4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Mb2NhbERlZmF1bHRTeXN0ZW1B
cHBlYXJhbmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvTG9jYWxEZWZhdWx0U3lz
dGVtQXBwZWFyYW5jZS5oCmluZGV4IGNhOWU4ZmI1ZjU1Y2YxMTk4NzhmMWQzMWM1MDRlNjU3MDBm
ZGNhMTYuLmIyMWIwYmY5OTY4ZWEyZTI1YzZkODI0YTAxZjU2NGM0NWM4ZWM1ZGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Mb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJh
bmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0xvY2FsRGVmYXVsdFN5c3Rl
bUFwcGVhcmFuY2UuaApAQCAtMzksNyArMzksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFz
cyBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJM
RShMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlKTsKIHB1YmxpYzoKLSAgICBMb2NhbERlZmF1
bHRTeXN0ZW1BcHBlYXJhbmNlKGJvb2wgdXNlU3lzdGVtQXBwZWFyYW5jZSk7CisgICAgTG9jYWxE
ZWZhdWx0U3lzdGVtQXBwZWFyYW5jZShib29sIHVzZVN5c3RlbUFwcGVhcmFuY2UsIGJvb2wgZGVm
YXVsdEFwcGVhcmFuY2UpOwogICAgIH5Mb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlKCk7CiBw
cml2YXRlOgogI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNDAwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvTG9jYWxEZWZhdWx0U3lzdGVt
QXBwZWFyYW5jZS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Mb2NhbERlZmF1bHRT
eXN0ZW1BcHBlYXJhbmNlLm1tCmluZGV4IGFkZmJmNGEzYWUyZDQyZTQ2NmZmMDU2MWE5YmE5NWYx
YjYzMmRjY2EuLjU1MTIzMDkxYmNlNWVmYTE5NGE1YTg2MGU5NmE4MDM3ODc1NzA5MjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Mb2NhbERlZmF1bHRTeXN0ZW1BcHBl
YXJhbmNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Mb2NhbERlZmF1bHRT
eXN0ZW1BcHBlYXJhbmNlLm1tCkBAIC0zMCw4ICszMCwxMSBAQAogI2luY2x1ZGUgPEFwcEtpdC9O
U0FwcGVhcmFuY2UuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewotICAgIAotTG9jYWxEZWZhdWx0
U3lzdGVtQXBwZWFyYW5jZTo6TG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZShib29sIHVzZVN5
c3RlbUFwcGVhcmFuY2UpCisKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorI2ltcG9ydCA8
V2ViS2l0QWRkaXRpb25zL0xvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2VBZGRpdGlvbnMubW0+
CisjZWxzZQorTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZTo6TG9jYWxEZWZhdWx0U3lzdGVt
QXBwZWFyYW5jZShib29sIHVzZVN5c3RlbUFwcGVhcmFuY2UsIGJvb2wpCiB7CiAjaWYgX19NQUNf
T1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE0MDAKICAgICBtX3NhdmVkU3lzdGVtQXBw
ZWFyYW5jZSA9IFtOU0FwcGVhcmFuY2UgY3VycmVudEFwcGVhcmFuY2VdOwpAQCAtNDAsMTUgKzQz
LDE1IEBAIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2U6OkxvY2FsRGVmYXVsdFN5c3RlbUFw
cGVhcmFuY2UoYm9vbCB1c2VTeXN0ZW1BcHBlYXJhCiAgICAgVU5VU0VEX1BBUkFNKHVzZVN5c3Rl
bUFwcGVhcmFuY2UpOwogI2VuZGlmCiB9CisjZW5kaWYKIAogTG9jYWxEZWZhdWx0U3lzdGVtQXBw
ZWFyYW5jZTo6fkxvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UoKQogewogI2lmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNDAwCi0gICAgaWYgKG1fc2F2ZWRTeXN0ZW1B
cHBlYXJhbmNlKQotICAgICAgICBbTlNBcHBlYXJhbmNlIHNldEN1cnJlbnRBcHBlYXJhbmNlOm1f
c2F2ZWRTeXN0ZW1BcHBlYXJhbmNlLmdldCgpXTsKKyAgICBbTlNBcHBlYXJhbmNlIHNldEN1cnJl
bnRBcHBlYXJhbmNlOm1fc2F2ZWRTeXN0ZW1BcHBlYXJhbmNlLmdldCgpXTsKICNlbmRpZgogfQot
ICAgIAorCiB9CiAKICNlbmRpZiAvLyBVU0UoQVBQS0lUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1RoZW1lTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvVGhlbWVNYWMuaAppbmRleCBjYmUyY2I5ZWIwOWIxNjM4NTEzOTdiZWFmYmEzZWIxNzMyM2Uy
NDNkLi4wZmZkNTlmZTZhODRiYjBjMWQxYjBhMmU0MzU4NGY3YTdjN2VkYzIwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhlbWVNYWMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvVGhlbWVNYWMuaApAQCAtMzMsOSArMzMsOSBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIFRoZW1lTWFjIGZpbmFsIDogcHVibGljIFRoZW1lQ29jb2Egewog
cHVibGljOgotICAgIHN0YXRpYyBOU1ZpZXcgKmVuc3VyZWRWaWV3KFNjcm9sbFZpZXcqLCBjb25z
dCBDb250cm9sU3RhdGVzJiwgYm9vbCB1c2VTeXN0ZW1BcHBlYXJhbmNlLCBib29sIHVzZVVucGFy
ZW50ZWRWaWV3ID0gZmFsc2UpOworICAgIHN0YXRpYyBOU1ZpZXcgKmVuc3VyZWRWaWV3KFNjcm9s
bFZpZXcqLCBjb25zdCBDb250cm9sU3RhdGVzJiwgYm9vbCB1c2VVbnBhcmVudGVkVmlldyA9IGZh
bHNlKTsKICAgICBzdGF0aWMgdm9pZCBzZXRGb2N1c1JpbmdDbGlwUmVjdChjb25zdCBGbG9hdFJl
Y3QmKTsKLSAgICBzdGF0aWMgYm9vbCBkcmF3Q2VsbE9yRm9jdXNSaW5nV2l0aFZpZXdJbnRvQ29u
dGV4dChOU0NlbGwgKiwgR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiwgTlNWaWV3
ICosIGJvb2wgZHJhd0J1dHRvbkNlbGwsIGJvb2wgZHJhd0ZvY3VzUmluZywgYm9vbCB1c2VJbWFn
ZUJ1ZmZlciwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IsIGJvb2wgdXNlU3lzdGVtQXBwZWFyYW5j
ZSk7CisgICAgc3RhdGljIGJvb2wgZHJhd0NlbGxPckZvY3VzUmluZ1dpdGhWaWV3SW50b0NvbnRl
eHQoTlNDZWxsICosIEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYsIE5TVmlldyAq
LCBib29sIGRyYXdCdXR0b25DZWxsLCBib29sIGRyYXdGb2N1c1JpbmcsIGJvb2wgdXNlSW1hZ2VC
dWZmZXIsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKTsKIAogcHJpdmF0ZToKICAgICBmcmllbmQg
TmV2ZXJEZXN0cm95ZWQ8VGhlbWVNYWM+OwpAQCAtNTMsNyArNTMsNyBAQCBwcml2YXRlOgogCiAg
ICAgYm9vbCBjb250cm9sUmVxdWlyZXNQcmVXaGl0ZVNwYWNlKENvbnRyb2xQYXJ0IHBhcnQpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIHBhcnQgPT0gUHVzaEJ1dHRvblBhcnQ7IH0KIAotICAgIHZvaWQg
cGFpbnQoQ29udHJvbFBhcnQsIENvbnRyb2xTdGF0ZXMmLCBHcmFwaGljc0NvbnRleHQmLCBjb25z
dCBGbG9hdFJlY3QmLCBmbG9hdCB6b29tRmFjdG9yLCBTY3JvbGxWaWV3KiwgZmxvYXQgZGV2aWNl
U2NhbGVGYWN0b3IsIGZsb2F0IHBhZ2VTY2FsZUZhY3RvciwgYm9vbCB1c2VTeXN0ZW1BcHBlYXJh
bmNlKSBmaW5hbDsKKyAgICB2b2lkIHBhaW50KENvbnRyb2xQYXJ0LCBDb250cm9sU3RhdGVzJiwg
R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiwgZmxvYXQgem9vbUZhY3RvciwgU2Ny
b2xsVmlldyosIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yLCBmbG9hdCBwYWdlU2NhbGVGYWN0b3Is
IGJvb2wgdXNlU3lzdGVtQXBwZWFyYW5jZSwgYm9vbCBkZWZhdWx0QXBwZWFyYW5jZSkgZmluYWw7
CiAgICAgdm9pZCBpbmZsYXRlQ29udHJvbFBhaW50UmVjdChDb250cm9sUGFydCwgY29uc3QgQ29u
dHJvbFN0YXRlcyYsIEZsb2F0UmVjdCYsIGZsb2F0IHpvb21GYWN0b3IpIGNvbnN0IGZpbmFsOwog
CiAgICAgYm9vbCB1c2VyUHJlZmVyc1JlZHVjZWRNb3Rpb24oKSBjb25zdCBmaW5hbDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9UaGVtZU1hYy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9UaGVtZU1hYy5tbQppbmRleCA4NzM2ZWY1NTYxN2Q3YWFlN2Ez
OTUyN2E5MWZkYjA2NmE4ODZlODE2Li4zNjQxMjFlNmEzNTA5YzU1ZTE5ZmRmNDM5NjdkNzlmNWJi
NjdkOTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhlbWVNYWMu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1RoZW1lTWFjLm1tCkBAIC02OCwx
NiArNjgsNiBAQCBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJDb3JlVGhlbWVWaWV3CiAKLS0g
KGluc3RhbmNldHlwZSlpbml0V2l0aFVzZVN5c3RlbUFwcGVhcmFuY2U6KEJPT0wpdXNlU3lzdGVt
QXBwZWFyYW5jZQotewotICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQotICAgICAgICBy
ZXR1cm4gbmlsOwotICAgIAotICAgIFdlYkNvcmU6OkxvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFu
Y2UgbG9jYWxBcHBlYXJhbmNlKHVzZVN5c3RlbUFwcGVhcmFuY2UpOwotICAgIFtzZWxmIHNldEFw
cGVhcmFuY2U6W05TQXBwZWFyYW5jZSBjdXJyZW50QXBwZWFyYW5jZV1dOwotICAgIHJldHVybiBz
ZWxmOwotfQotCiAtIChOU1dpbmRvdyAqKXdpbmRvdwogewogICAgIC8vIFVzaW5nIGRlZmVyOllF
UyBwcmV2ZW50cyB1cyBmcm9tIHdhc3RpbmcgYW55IHdpbmRvdyBzZXJ2ZXIgcmVzb3VyY2VzIGZv
ciB0aGlzIHdpbmRvdywgc2luY2Ugd2UncmUgbm90IGFjdHVhbGx5CkBAIC0zOTQsNyArMzg0LDcg
QEAgc3RhdGljIGJvb2wgZHJhd0NlbGxGb2N1c1JpbmcoTlNDZWxsICpjZWxsLCBOU1JlY3QgY2Vs
bEZyYW1lLCBOU1ZpZXcgKmNvbnRyb2xWaWUKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXN0YXRp
YyB2b2lkIHBhaW50VG9nZ2xlQnV0dG9uKENvbnRyb2xQYXJ0IGJ1dHRvblR5cGUsIENvbnRyb2xT
dGF0ZXMmIGNvbnRyb2xTdGF0ZXMsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxv
YXRSZWN0JiB6b29tZWRSZWN0LCBmbG9hdCB6b29tRmFjdG9yLCBTY3JvbGxWaWV3KiBzY3JvbGxW
aWV3LCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvciwgZmxvYXQgcGFnZVNjYWxlRmFjdG9yLCBib29s
IHVzZVN5c3RlbUFwcGVhcmFuY2UpCitzdGF0aWMgdm9pZCBwYWludFRvZ2dsZUJ1dHRvbihDb250
cm9sUGFydCBidXR0b25UeXBlLCBDb250cm9sU3RhdGVzJiBjb250cm9sU3RhdGVzLCBHcmFwaGlj
c0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgem9vbWVkUmVjdCwgZmxvYXQgem9v
bUZhY3RvciwgU2Nyb2xsVmlldyogc2Nyb2xsVmlldywgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3Is
IGZsb2F0IHBhZ2VTY2FsZUZhY3RvcikKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElP
TlMKIApAQCAtNDM2LDcgKzQyNiw3IEBAIHN0YXRpYyB2b2lkIHBhaW50VG9nZ2xlQnV0dG9uKENv
bnRyb2xQYXJ0IGJ1dHRvblR5cGUsIENvbnRyb2xTdGF0ZXMmIGNvbnRyb2xTdGF0CiAgICAgfQog
ICAgIExvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dCBsb2NhbENvbnRleHQoY29udGV4dCk7CiAK
LSAgICBOU1ZpZXcgKnZpZXcgPSBUaGVtZU1hYzo6ZW5zdXJlZFZpZXcoc2Nyb2xsVmlldywgY29u
dHJvbFN0YXRlcywgdXNlU3lzdGVtQXBwZWFyYW5jZSwgdHJ1ZSAvKiB1c2VVbnBhcmVudGVkVmll
dyAqLyk7CisgICAgTlNWaWV3ICp2aWV3ID0gVGhlbWVNYWM6OmVuc3VyZWRWaWV3KHNjcm9sbFZp
ZXcsIGNvbnRyb2xTdGF0ZXMsIHRydWUgLyogdXNlVW5wYXJlbnRlZFZpZXcgKi8pOwogCiAgICAg
Ym9vbCBuZWVkc1JlcGFpbnQgPSBmYWxzZTsKICAgICBib29sIHVzZUltYWdlQnVmZmVyID0gcGFn
ZVNjYWxlRmFjdG9yICE9IDEuMGYgfHwgem9vbUZhY3RvciAhPSAxLjBmOwpAQCAtNDQ5LDkgKzQz
OSw5IEBAIHN0YXRpYyB2b2lkIHBhaW50VG9nZ2xlQnV0dG9uKENvbnRyb2xQYXJ0IGJ1dHRvblR5
cGUsIENvbnRyb2xTdGF0ZXMmIGNvbnRyb2xTdGF0CiAKICAgICAgICAgW3RvZ2dsZUJ1dHRvbkNl
bGwgX3JlbmRlckN1cnJlbnRBbmltYXRpb25GcmFtZUluQ29udGV4dDpjb250ZXh0LnBsYXRmb3Jt
Q29udGV4dCgpIGF0TG9jYXRpb246TlNNYWtlUG9pbnQoMCwgMCldOwogICAgICAgICBpZiAoIVt0
b2dnbGVCdXR0b25DZWxsIF9zdGF0ZUFuaW1hdGlvblJ1bm5pbmddICYmIGlzQ2VsbEZvY3VzZWQp
Ci0gICAgICAgICAgICBuZWVkc1JlcGFpbnQgPSBUaGVtZU1hYzo6ZHJhd0NlbGxPckZvY3VzUmlu
Z1dpdGhWaWV3SW50b0NvbnRleHQodG9nZ2xlQnV0dG9uQ2VsbC5nZXQoKSwgY29udGV4dCwgaW5m
bGF0ZWRSZWN0LCB2aWV3LCBmYWxzZSwgdHJ1ZSwgdXNlSW1hZ2VCdWZmZXIsIGRldmljZVNjYWxl
RmFjdG9yLCB1c2VTeXN0ZW1BcHBlYXJhbmNlKTsKKyAgICAgICAgICAgIG5lZWRzUmVwYWludCA9
IFRoZW1lTWFjOjpkcmF3Q2VsbE9yRm9jdXNSaW5nV2l0aFZpZXdJbnRvQ29udGV4dCh0b2dnbGVC
dXR0b25DZWxsLmdldCgpLCBjb250ZXh0LCBpbmZsYXRlZFJlY3QsIHZpZXcsIGZhbHNlLCB0cnVl
LCB1c2VJbWFnZUJ1ZmZlciwgZGV2aWNlU2NhbGVGYWN0b3IpOwogICAgIH0gZWxzZQotICAgICAg
ICBuZWVkc1JlcGFpbnQgPSBUaGVtZU1hYzo6ZHJhd0NlbGxPckZvY3VzUmluZ1dpdGhWaWV3SW50
b0NvbnRleHQodG9nZ2xlQnV0dG9uQ2VsbC5nZXQoKSwgY29udGV4dCwgaW5mbGF0ZWRSZWN0LCB2
aWV3LCB0cnVlLCBpc0NlbGxGb2N1c2VkLCB1c2VJbWFnZUJ1ZmZlciwgZGV2aWNlU2NhbGVGYWN0
b3IsIHVzZVN5c3RlbUFwcGVhcmFuY2UpOworICAgICAgICBuZWVkc1JlcGFpbnQgPSBUaGVtZU1h
Yzo6ZHJhd0NlbGxPckZvY3VzUmluZ1dpdGhWaWV3SW50b0NvbnRleHQodG9nZ2xlQnV0dG9uQ2Vs
bC5nZXQoKSwgY29udGV4dCwgaW5mbGF0ZWRSZWN0LCB2aWV3LCB0cnVlLCBpc0NlbGxGb2N1c2Vk
LCB1c2VJbWFnZUJ1ZmZlciwgZGV2aWNlU2NhbGVGYWN0b3IpOwogCiAgICAgW3RvZ2dsZUJ1dHRv
bkNlbGwgc2V0Q29udHJvbFZpZXc6bmlsXTsKIApAQCAtNTI3LDcgKzUxNyw3IEBAIHN0YXRpYyBO
U0J1dHRvbkNlbGwgKmJ1dHRvbihDb250cm9sUGFydCBwYXJ0LCBjb25zdCBDb250cm9sU3RhdGVz
JiBjb250cm9sU3RhdGVzCiAgICAgcmV0dXJuIGNlbGw7CiB9CiAgICAgCi1zdGF0aWMgdm9pZCBw
YWludEJ1dHRvbihDb250cm9sUGFydCBwYXJ0LCBDb250cm9sU3RhdGVzJiBjb250cm9sU3RhdGVz
LCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgem9vbWVkUmVjdCwg
ZmxvYXQgem9vbUZhY3RvciwgU2Nyb2xsVmlldyogc2Nyb2xsVmlldywgZmxvYXQgZGV2aWNlU2Nh
bGVGYWN0b3IsIGZsb2F0IHBhZ2VTY2FsZUZhY3RvciwgYm9vbCB1c2VTeXN0ZW1BcHBlYXJhbmNl
KQorc3RhdGljIHZvaWQgcGFpbnRCdXR0b24oQ29udHJvbFBhcnQgcGFydCwgQ29udHJvbFN0YXRl
cyYgY29udHJvbFN0YXRlcywgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJl
Y3QmIHpvb21lZFJlY3QsIGZsb2F0IHpvb21GYWN0b3IsIFNjcm9sbFZpZXcqIHNjcm9sbFZpZXcs
IGZsb2F0IGRldmljZVNjYWxlRmFjdG9yLCBmbG9hdCBwYWdlU2NhbGVGYWN0b3IpCiB7CiAgICAg
QkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAgICAgCkBAIC01NjIsMTQgKzU1MiwxMiBAQCBz
dGF0aWMgdm9pZCBwYWludEJ1dHRvbihDb250cm9sUGFydCBwYXJ0LCBDb250cm9sU3RhdGVzJiBj
b250cm9sU3RhdGVzLCBHcmFwaGljcwogICAgIAogICAgIExvY2FsQ3VycmVudEdyYXBoaWNzQ29u
dGV4dCBsb2NhbENvbnRleHQoY29udGV4dCk7CiAgICAgCi0gICAgTlNWaWV3ICp2aWV3ID0gVGhl
bWVNYWM6OmVuc3VyZWRWaWV3KHNjcm9sbFZpZXcsIGNvbnRyb2xTdGF0ZXMsIHVzZVN5c3RlbUFw
cGVhcmFuY2UpOworICAgIE5TVmlldyAqdmlldyA9IFRoZW1lTWFjOjplbnN1cmVkVmlldyhzY3Jv
bGxWaWV3LCBjb250cm9sU3RhdGVzKTsKICAgICBOU1dpbmRvdyAqd2luZG93ID0gW3ZpZXcgd2lu
ZG93XTsKLSAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZSh1
c2VTeXN0ZW1BcHBlYXJhbmNlKTsKLSAgICBbd2luZG93IHNldEFwcGVhcmFuY2U6W05TQXBwZWFy
YW5jZSBjdXJyZW50QXBwZWFyYW5jZV1dOwogICAgIE5TQnV0dG9uQ2VsbCAqcHJldmlvdXNEZWZh
dWx0QnV0dG9uQ2VsbCA9IFt3aW5kb3cgZGVmYXVsdEJ1dHRvbkNlbGxdOwogCiAgICAgYm9vbCB1
c2VJbWFnZUJ1ZmZlciA9IHBhZ2VTY2FsZUZhY3RvciAhPSAxLjBmIHx8IHpvb21GYWN0b3IgIT0g
MS4wZjsKLSAgICBib29sIG5lZWRzUmVwYWludCA9IFRoZW1lTWFjOjpkcmF3Q2VsbE9yRm9jdXNS
aW5nV2l0aFZpZXdJbnRvQ29udGV4dChidXR0b25DZWxsLCBjb250ZXh0LCBpbmZsYXRlZFJlY3Qs
IHZpZXcsIHRydWUsIHN0YXRlcyAmIENvbnRyb2xTdGF0ZXM6OkZvY3VzU3RhdGUsIHVzZUltYWdl
QnVmZmVyLCBkZXZpY2VTY2FsZUZhY3RvciwgdXNlU3lzdGVtQXBwZWFyYW5jZSk7CisgICAgYm9v
bCBuZWVkc1JlcGFpbnQgPSBUaGVtZU1hYzo6ZHJhd0NlbGxPckZvY3VzUmluZ1dpdGhWaWV3SW50
b0NvbnRleHQoYnV0dG9uQ2VsbCwgY29udGV4dCwgaW5mbGF0ZWRSZWN0LCB2aWV3LCB0cnVlLCBz
dGF0ZXMgJiBDb250cm9sU3RhdGVzOjpGb2N1c1N0YXRlLCB1c2VJbWFnZUJ1ZmZlciwgZGV2aWNl
U2NhbGVGYWN0b3IpOwogICAgIGlmIChzdGF0ZXMgJiBDb250cm9sU3RhdGVzOjpEZWZhdWx0U3Rh
dGUpCiAgICAgICAgIFt3aW5kb3cgc2V0RGVmYXVsdEJ1dHRvbkNlbGw6YnV0dG9uQ2VsbF07CiAg
ICAgZWxzZSBpZiAoW3ByZXZpb3VzRGVmYXVsdEJ1dHRvbkNlbGwgaXNFcXVhbDpidXR0b25DZWxs
XSkKQEAgLTY0Nyw3ICs2MzUsNyBAQCBzdGF0aWMgdm9pZCBwYWludFN0ZXBwZXIoQ29udHJvbFN0
YXRlcyYgc3RhdGVzLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0CiAKIC8vIFRoaXMg
d2lsbCBlbnN1cmUgdGhhdCB3ZSBhbHdheXMgcmV0dXJuIGEgdmFsaWQgTlNWaWV3LCBldmVuIGlm
IFNjcm9sbFZpZXcgZG9lc24ndCBoYXZlIGFuIGFzc29jaWF0ZWQgZG9jdW1lbnQgTlNWaWV3Lgog
Ly8gSWYgdGhlIFNjcm9sbFZpZXcgZG9lc24ndCBoYXZlIGFuIE5TVmlldywgd2Ugd2lsbCByZXR1
cm4gYSBmYWtlIE5TVmlldyBzZXQgdXAgaW4gdGhlIHdheSBBcHBLaXQgZXhwZWN0cy4KLU5TVmll
dyAqVGhlbWVNYWM6OmVuc3VyZWRWaWV3KFNjcm9sbFZpZXcqIHNjcm9sbFZpZXcsIGNvbnN0IENv
bnRyb2xTdGF0ZXMmIGNvbnRyb2xTdGF0ZXMsIGJvb2wgdXNlU3lzdGVtQXBwZWFyYW5jZSwgYm9v
bCB1c2VVbnBhcmVudGVkVmlldykKK05TVmlldyAqVGhlbWVNYWM6OmVuc3VyZWRWaWV3KFNjcm9s
bFZpZXcqIHNjcm9sbFZpZXcsIGNvbnN0IENvbnRyb2xTdGF0ZXMmIGNvbnRyb2xTdGF0ZXMsIGJv
b2wgdXNlVW5wYXJlbnRlZFZpZXcpCiB7CiAgICAgaWYgKCF1c2VVbnBhcmVudGVkVmlldykgewog
ICAgICAgICBpZiAoTlNWaWV3ICpkb2N1bWVudFZpZXcgPSBzY3JvbGxWaWV3LT5kb2N1bWVudFZp
ZXcoKSkKQEAgLTY1NSw4ICs2NDMsOSBAQCBOU1ZpZXcgKlRoZW1lTWFjOjplbnN1cmVkVmlldyhT
Y3JvbGxWaWV3KiBzY3JvbGxWaWV3LCBjb25zdCBDb250cm9sU3RhdGVzJiBjb250cgogICAgIH0K
IAogICAgIC8vIFVzZSBhIGZha2Ugdmlldy4KLSAgICBzdGF0aWMgV2ViQ29yZVRoZW1lVmlldyAq
dGhlbWVWaWV3ID0gW1tXZWJDb3JlVGhlbWVWaWV3IGFsbG9jXSBpbml0V2l0aFVzZVN5c3RlbUFw
cGVhcmFuY2U6dXNlU3lzdGVtQXBwZWFyYW5jZV07CisgICAgc3RhdGljIFdlYkNvcmVUaGVtZVZp
ZXcgKnRoZW1lVmlldyA9IFtbV2ViQ29yZVRoZW1lVmlldyBhbGxvY10gaW5pdF07CiAgICAgW3Ro
ZW1lVmlldyBzZXRGcmFtZVNpemU6TlNTaXplRnJvbUNHU2l6ZShzY3JvbGxWaWV3LT50b3RhbENv
bnRlbnRzU2l6ZSgpKV07CisgICAgW3RoZW1lVmlldyBzZXRBcHBlYXJhbmNlOltOU0FwcGVhcmFu
Y2UgY3VycmVudEFwcGVhcmFuY2VdXTsKIAogICAgIHRoZW1lV2luZG93SGFzS2V5QXBwZWFyYW5j
ZSA9ICEoY29udHJvbFN0YXRlcy5zdGF0ZXMoKSAmIENvbnRyb2xTdGF0ZXM6OldpbmRvd0luYWN0
aXZlU3RhdGUpOwogCkBAIC02ODUsMTAgKzY3NCw5IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBkcmF3
Q2VsbE9yRm9jdXNSaW5nSW50b1JlY3RXaXRoVmlldyhOU0NlbGwgKmNlbGwsIE5TUmVjdCByZWN0
CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIFRoZW1lTWFjOjpkcmF3Q2VsbE9yRm9jdXNS
aW5nV2l0aFZpZXdJbnRvQ29udGV4dChOU0NlbGwgKmNlbGwsIEdyYXBoaWNzQ29udGV4dCYgY29u
dGV4dCwgY29uc3QgRmxvYXRSZWN0JiByZWN0LCBOU1ZpZXcgKnZpZXcsIGJvb2wgZHJhd0J1dHRv
bkNlbGwsIGJvb2wgZHJhd0ZvY3VzUmluZywgYm9vbCB1c2VJbWFnZUJ1ZmZlciwgZmxvYXQgZGV2
aWNlU2NhbGVGYWN0b3IsIGJvb2wgdXNlU3lzdGVtQXBwZWFyYW5jZSkKK2Jvb2wgVGhlbWVNYWM6
OmRyYXdDZWxsT3JGb2N1c1JpbmdXaXRoVmlld0ludG9Db250ZXh0KE5TQ2VsbCAqY2VsbCwgR3Jh
cGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHJlY3QsIE5TVmlldyAqdmll
dywgYm9vbCBkcmF3QnV0dG9uQ2VsbCwgYm9vbCBkcmF3Rm9jdXNSaW5nLCBib29sIHVzZUltYWdl
QnVmZmVyLCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcikKIHsKICAgICBBU1NFUlQoZHJhd0J1dHRv
bkNlbGwgfHwgZHJhd0ZvY3VzUmluZyk7Ci0gICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5j
ZSBsb2NhbEFwcGVhcmFuY2UodXNlU3lzdGVtQXBwZWFyYW5jZSk7CiAgICAgYm9vbCBuZWVkc1Jl
cGFpbnQgPSBmYWxzZTsKICAgICBpZiAodXNlSW1hZ2VCdWZmZXIpIHsKICAgICAgICAgTlNSZWN0
IGltYWdlQnVmZmVyRHJhd1JlY3QgPSBOU1JlY3QoRmxvYXRSZWN0KGJ1dHRvbkZvY3VzUmVjdE91
dGxpbmVXaWR0aCwgYnV0dG9uRm9jdXNSZWN0T3V0bGluZVdpZHRoLCByZWN0LndpZHRoKCksIHJl
Y3QuaGVpZ2h0KCkpKTsKQEAgLTg1NywyMCArODQ1LDIyIEBAIHZvaWQgVGhlbWVNYWM6OmluZmxh
dGVDb250cm9sUGFpbnRSZWN0KENvbnRyb2xQYXJ0IHBhcnQsIGNvbnN0IENvbnRyb2xTdGF0ZXMm
IHN0CiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogfQogCi12b2lkIFRoZW1lTWFjOjpw
YWludChDb250cm9sUGFydCBwYXJ0LCBDb250cm9sU3RhdGVzJiBzdGF0ZXMsIEdyYXBoaWNzQ29u
dGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiB6b29tZWRSZWN0LCBmbG9hdCB6b29tRmFj
dG9yLCBTY3JvbGxWaWV3KiBzY3JvbGxWaWV3LCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvciwgZmxv
YXQgcGFnZVNjYWxlRmFjdG9yLCBib29sIHVzZVN5c3RlbUFwcGVhcmFuY2UpCit2b2lkIFRoZW1l
TWFjOjpwYWludChDb250cm9sUGFydCBwYXJ0LCBDb250cm9sU3RhdGVzJiBzdGF0ZXMsIEdyYXBo
aWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiB6b29tZWRSZWN0LCBmbG9hdCB6
b29tRmFjdG9yLCBTY3JvbGxWaWV3KiBzY3JvbGxWaWV3LCBmbG9hdCBkZXZpY2VTY2FsZUZhY3Rv
ciwgZmxvYXQgcGFnZVNjYWxlRmFjdG9yLCBib29sIHVzZVN5c3RlbUFwcGVhcmFuY2UsIGJvb2wg
ZGVmYXVsdEFwcGVhcmFuY2UpCiB7CisgICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBs
b2NhbEFwcGVhcmFuY2UodXNlU3lzdGVtQXBwZWFyYW5jZSwgZGVmYXVsdEFwcGVhcmFuY2UpOwor
CiAgICAgc3dpdGNoIChwYXJ0KSB7CiAgICAgICAgIGNhc2UgQ2hlY2tib3hQYXJ0OgotICAgICAg
ICAgICAgcGFpbnRUb2dnbGVCdXR0b24ocGFydCwgc3RhdGVzLCBjb250ZXh0LCB6b29tZWRSZWN0
LCB6b29tRmFjdG9yLCBzY3JvbGxWaWV3LCBkZXZpY2VTY2FsZUZhY3RvciwgcGFnZVNjYWxlRmFj
dG9yLCB1c2VTeXN0ZW1BcHBlYXJhbmNlKTsKKyAgICAgICAgICAgIHBhaW50VG9nZ2xlQnV0dG9u
KHBhcnQsIHN0YXRlcywgY29udGV4dCwgem9vbWVkUmVjdCwgem9vbUZhY3Rvciwgc2Nyb2xsVmll
dywgZGV2aWNlU2NhbGVGYWN0b3IsIHBhZ2VTY2FsZUZhY3Rvcik7CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgY2FzZSBSYWRpb1BhcnQ6Ci0gICAgICAgICAgICBwYWludFRvZ2dsZUJ1dHRv
bihwYXJ0LCBzdGF0ZXMsIGNvbnRleHQsIHpvb21lZFJlY3QsIHpvb21GYWN0b3IsIHNjcm9sbFZp
ZXcsIGRldmljZVNjYWxlRmFjdG9yLCBwYWdlU2NhbGVGYWN0b3IsIHVzZVN5c3RlbUFwcGVhcmFu
Y2UpOworICAgICAgICAgICAgcGFpbnRUb2dnbGVCdXR0b24ocGFydCwgc3RhdGVzLCBjb250ZXh0
LCB6b29tZWRSZWN0LCB6b29tRmFjdG9yLCBzY3JvbGxWaWV3LCBkZXZpY2VTY2FsZUZhY3Rvciwg
cGFnZVNjYWxlRmFjdG9yKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFB1c2hC
dXR0b25QYXJ0OgogICAgICAgICBjYXNlIERlZmF1bHRCdXR0b25QYXJ0OgogICAgICAgICBjYXNl
IEJ1dHRvblBhcnQ6CiAgICAgICAgIGNhc2UgU3F1YXJlQnV0dG9uUGFydDoKLSAgICAgICAgICAg
IHBhaW50QnV0dG9uKHBhcnQsIHN0YXRlcywgY29udGV4dCwgem9vbWVkUmVjdCwgem9vbUZhY3Rv
ciwgc2Nyb2xsVmlldywgZGV2aWNlU2NhbGVGYWN0b3IsIHBhZ2VTY2FsZUZhY3RvciwgdXNlU3lz
dGVtQXBwZWFyYW5jZSk7CisgICAgICAgICAgICBwYWludEJ1dHRvbihwYXJ0LCBzdGF0ZXMsIGNv
bnRleHQsIHpvb21lZFJlY3QsIHpvb21GYWN0b3IsIHNjcm9sbFZpZXcsIGRldmljZVNjYWxlRmFj
dG9yLCBwYWdlU2NhbGVGYWN0b3IpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2Ug
SW5uZXJTcGluQnV0dG9uUGFydDoKICAgICAgICAgICAgIHBhaW50U3RlcHBlcihzdGF0ZXMsIGNv
bnRleHQsIHpvb21lZFJlY3QsIHpvb21GYWN0b3IsIHNjcm9sbFZpZXcpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCmluZGV4IGZkMWRhZjg0N2M5NjEzYjZlZWFm
OGUwNzNkMjJlNDRmNjIyNTI2NDUuLjk0ZjdkNTJmN2RmMTY2M2MxMDFkYjFjMzg0MzI2NDUzN2M3
ZTZkMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKQEAg
LTQ2MCw3ICs0NjAsNyBAQCB2b2lkIFJlbmRlckxpc3RCb3g6OnBhaW50SXRlbUJhY2tncm91bmQo
UGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JgogICAgICAgICBpZiAoZnJh
bWUoKS5zZWxlY3Rpb24oKS5pc0ZvY3VzZWRBbmRBY3RpdmUoKSAmJiBkb2N1bWVudCgpLmZvY3Vz
ZWRFbGVtZW50KCkgPT0gJnNlbGVjdEVsZW1lbnQoKSkKICAgICAgICAgICAgIGJhY2tDb2xvciA9
IHRoZW1lKCkuYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcigpOwogICAgICAg
ICBlbHNlCi0gICAgICAgICAgICBiYWNrQ29sb3IgPSB0aGVtZSgpLmluYWN0aXZlTGlzdEJveFNl
bGVjdGlvbkJhY2tncm91bmRDb2xvcihkb2N1bWVudCgpLnVzZVN5c3RlbUFwcGVhcmFuY2UoKSk7
CisgICAgICAgICAgICBiYWNrQ29sb3IgPSB0aGVtZSgpLmluYWN0aXZlTGlzdEJveFNlbGVjdGlv
bkJhY2tncm91bmRDb2xvcihkb2N1bWVudCgpLnN0eWxlQ29sb3JPcHRpb25zKCkpOwogICAgIH0g
ZWxzZQogICAgICAgICBiYWNrQ29sb3IgPSBpdGVtU3R5bGUudmlzaXRlZERlcGVuZGVudENvbG9y
V2l0aENvbG9yRmlsdGVyKENTU1Byb3BlcnR5QmFja2dyb3VuZENvbG9yKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKaW5kZXggYTcwN2YxOGNmMTM0MDkyYWVlZWIw
ZmU3YzE4ZmYxY2I0MmIwZWZkMC4uMDBkNjE2NTM5YjkyZGY2MDZjNmExZjE3NWZhMzJjNzVhNDMy
MzdhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCkBAIC0zMDMs
NyArMzAzLDcgQEAgYm9vbCBSZW5kZXJUaGVtZTo6cGFpbnQoY29uc3QgUmVuZGVyQm94JiBib3gs
IENvbnRyb2xTdGF0ZXMmIGNvbnRyb2xTdGF0ZXMsIGNvbnMKICAgICBjYXNlIEJ1dHRvblBhcnQ6
CiAgICAgY2FzZSBJbm5lclNwaW5CdXR0b25QYXJ0OgogICAgICAgICB1cGRhdGVDb250cm9sU3Rh
dGVzRm9yUmVuZGVyZXIoYm94LCBjb250cm9sU3RhdGVzKTsKLSAgICAgICAgVGhlbWU6OnNpbmds
ZXRvbigpLnBhaW50KHBhcnQsIGNvbnRyb2xTdGF0ZXMsIHBhaW50SW5mby5jb250ZXh0KCksIGRl
dmljZVBpeGVsU25hcHBlZFJlY3QsIGJveC5zdHlsZSgpLmVmZmVjdGl2ZVpvb20oKSwgJmJveC52
aWV3KCkuZnJhbWVWaWV3KCksIGRldmljZVNjYWxlRmFjdG9yLCBwYWdlU2NhbGVGYWN0b3IsIGJv
eC5wYWdlKCkudXNlU3lzdGVtQXBwZWFyYW5jZSgpKTsKKyAgICAgICAgVGhlbWU6OnNpbmdsZXRv
bigpLnBhaW50KHBhcnQsIGNvbnRyb2xTdGF0ZXMsIHBhaW50SW5mby5jb250ZXh0KCksIGRldmlj
ZVBpeGVsU25hcHBlZFJlY3QsIGJveC5zdHlsZSgpLmVmZmVjdGl2ZVpvb20oKSwgJmJveC52aWV3
KCkuZnJhbWVWaWV3KCksIGRldmljZVNjYWxlRmFjdG9yLCBwYWdlU2NhbGVGYWN0b3IsIGJveC5w
YWdlKCkudXNlU3lzdGVtQXBwZWFyYW5jZSgpLCBib3gucGFnZSgpLmRlZmF1bHRBcHBlYXJhbmNl
KCkpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgZGVmYXVsdDoKICAgICAgICAgYnJlYWs7
CkBAIC02MTQsMTAgKzYxNCwxMCBAQCBDb2xvciBSZW5kZXJUaGVtZTo6YWN0aXZlTGlzdEJveFNl
bGVjdGlvbkJhY2tncm91bmRDb2xvcigpIGNvbnN0CiAgICAgcmV0dXJuIG1fYWN0aXZlTGlzdEJv
eFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcjsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWU6OmluYWN0
aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihib29sIHVzZVN5c3RlbUFwcGVhcmFu
Y2UpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZTo6aW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFj
a2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25z
dAogewogICAgIGlmICghbV9pbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3Iu
aXNWYWxpZCgpKQotICAgICAgICBtX2luYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRD
b2xvciA9IHBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKHVz
ZVN5c3RlbUFwcGVhcmFuY2UpOworICAgICAgICBtX2luYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJh
Y2tncm91bmRDb2xvciA9IHBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3Vu
ZENvbG9yKG9wdGlvbnMpOwogICAgIHJldHVybiBtX2luYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJh
Y2tncm91bmRDb2xvcjsKIH0KIApAQCAtNjcwLDcgKzY3MCw3IEBAIENvbG9yIFJlbmRlclRoZW1l
OjpwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSBjb25zdAog
ICAgIHJldHVybiBwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcigpOwogfQog
Ci1Db2xvciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNr
Z3JvdW5kQ29sb3IoYm9vbCkgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lOjpwbGF0Zm9ybUluYWN0
aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6
T3B0aW9ucz4pIGNvbnN0CiB7CiAgICAgcmV0dXJuIHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25C
YWNrZ3JvdW5kQ29sb3IoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmgK
aW5kZXggY2RiMzQ5YTJiNWViYzY2MmUwYzkzOTIyNGQ1YTljNDM2NzM4YTAzNy4uN2RhYWVjYzY0
NmE5Y2NiNTdiZGJkMDY1ZTBlYzIxYjY4NTM5MjVhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lLmgKQEAgLTE0MSw3ICsxNDEsNyBAQCBwdWJsaWM6CiAgICAgLy8gTGlzdCBi
b3ggc2VsZWN0aW9uIGNvbG9ycwogICAgIENvbG9yIGFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNr
Z3JvdW5kQ29sb3IoKSBjb25zdDsKICAgICBDb2xvciBhY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9y
ZWdyb3VuZENvbG9yKCkgY29uc3Q7Ci0gICAgQ29sb3IgaW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9u
QmFja2dyb3VuZENvbG9yKGJvb2wpIGNvbnN0OworICAgIENvbG9yIGluYWN0aXZlTGlzdEJveFNl
bGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNv
bnN0OwogICAgIENvbG9yIGluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcigp
IGNvbnN0OwogCiAgICAgLy8gSGlnaGxpZ2h0aW5nIGNvbG9ycyBmb3IgVGV4dE1hdGNoZXMuCkBA
IC0yNjEsNyArMjYxLDcgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1J
bmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcigpIGNvbnN0OwogCiAgICAgdmlydHVhbCBD
b2xvciBwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKSBjb25z
dDsKLSAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFj
a2dyb3VuZENvbG9yKGJvb2wpIGNvbnN0OworICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1JbmFj
dGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6
Ok9wdGlvbnM+KSBjb25zdDsKICAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtQWN0aXZlTGlzdEJv
eFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcigpIGNvbnN0OwogICAgIHZpcnR1YWwgQ29sb3IgcGxh
dGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSBjb25zdDsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lR3RrLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUd0ay5jcHAKaW5kZXggMDc4NTkx
MGY4YmZlZTg1YmVkOTdhOTlkZmVmZGIwOWZiNTg4OThmOC4uOTY1ODRhYTU2YThhZTFmMmFjZDRi
YmVlZmM4NTUyYWU2MmE5ZGY2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGhlbWVHdGsuY3BwCkBAIC0xNzQxLDcgKzE3NDEsNyBAQCBDb2xvciBSZW5kZXJUaGVtZUd0azo6
cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCkgY29uc3QKICAg
ICByZXR1cm4gc3R5bGVDb2xvcihMaXN0Qm94LCBzdGF0aWNfY2FzdDxHdGtTdGF0ZUZsYWdzPihH
VEtfU1RBVEVfRkxBR19TRUxFQ1RFRCB8IEdUS19TVEFURV9GTEFHX0ZPQ1VTRUQpLCBTdHlsZUNv
bG9yQmFja2dyb3VuZCk7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lR3RrOjpwbGF0Zm9ybUluYWN0
aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihib29sKSBjb25zdAorQ29sb3IgUmVu
ZGVyVGhlbWVHdGs6OnBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENv
bG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKIHsKICAgICByZXR1cm4g
c3R5bGVDb2xvcihMaXN0Qm94LCBHVEtfU1RBVEVfRkxBR19TRUxFQ1RFRCwgU3R5bGVDb2xvckJh
Y2tncm91bmQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lR3RrLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVHdGsuaApp
bmRleCAwMGExOWUxMzFjMjRlYmRlYzdiYjVhMjViOTA3YmNkZjYyNzc4YTdlLi44MTAzM2U3ZTFj
MDZhOTQxMjU2MjI4OGVlYTc5ZmIzYzUyOTAwMDNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVHdGsuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWVHdGsuaApAQCAtNzgsNyArNzgsNyBAQCBwdWJsaWM6CiAgICAgLy8gTGlz
dCBCb3ggc2VsZWN0aW9uIGNvbG9yCiAgICAgQ29sb3IgcGxhdGZvcm1BY3RpdmVMaXN0Qm94U2Vs
ZWN0aW9uQmFja2dyb3VuZENvbG9yKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgQ29sb3IgcGxhdGZv
cm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKCkgY29uc3Qgb3ZlcnJpZGU7
Ci0gICAgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29s
b3IoYm9vbCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZUxpc3RC
b3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+
KSBjb25zdCBvdmVycmlkZTsKICAgICBDb2xvciBwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVj
dGlvbkZvcmVncm91bmRDb2xvcigpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgU2Vjb25kcyBjYXJl
dEJsaW5rSW50ZXJ2YWwoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lTWFjLmgKaW5kZXggM2E4NjMxMTEyYzdiYWNiYzkzNjQ4ZGE4ODU0ZjU2ZTY3
YjdjMGZjOC4uNTFmY2RjMmZkM2MwN2FiNDA0YzM4YmMxY2VmMDU3ZTI4N2Q2NTEyNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmgKQEAgLTU3LDcgKzU3LDcgQEAg
cHVibGljOgogICAgIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29s
b3IoKSBjb25zdCBmaW5hbDsKICAgICBDb2xvciBwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rp
b25CYWNrZ3JvdW5kQ29sb3IoKSBjb25zdCBmaW5hbDsKICAgICBDb2xvciBwbGF0Zm9ybUFjdGl2
ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSBjb25zdCBmaW5hbDsKLSAgICBDb2xv
ciBwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihib29sKSBj
b25zdCBmaW5hbDsKKyAgICBDb2xvciBwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJh
Y2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFs
OwogICAgIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENv
bG9yKCkgY29uc3QgZmluYWw7CiAgICAgQ29sb3IgcGxhdGZvcm1Gb2N1c1JpbmdDb2xvcihPcHRp
b25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KaW5kZXggMmZhM2Q0Njk5NGUzM2M5ZmZhMTc4
OGFiMWI1OGIxZTRkNjZiMWM0NC4uM2I5NmM1NWY3OTdjNWQ2MzNjNzJjMDI2ZmVkYjZkMGU4MTAz
ZjNiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQpAQCAt
MjAxLDggKzIwMSw5IEBAIFJlbmRlclRoZW1lTWFjOjpSZW5kZXJUaGVtZU1hYygpCiAKIE5TVmll
dyAqUmVuZGVyVGhlbWVNYWM6OmRvY3VtZW50Vmlld0Zvcihjb25zdCBSZW5kZXJPYmplY3QmIG8p
IGNvbnN0CiB7CisgICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFu
Y2Uoby5wYWdlKCkudXNlU3lzdGVtQXBwZWFyYW5jZSgpLCBvLnBhZ2UoKS5kZWZhdWx0QXBwZWFy
YW5jZSgpKTsKICAgICBDb250cm9sU3RhdGVzIHN0YXRlcyhleHRyYWN0Q29udHJvbFN0YXRlc0Zv
clJlbmRlcmVyKG8pKTsKLSAgICByZXR1cm4gVGhlbWVNYWM6OmVuc3VyZWRWaWV3KCZvLnZpZXco
KS5mcmFtZVZpZXcoKSwgc3RhdGVzLCBvLnBhZ2UoKS51c2VTeXN0ZW1BcHBlYXJhbmNlKCkpOwor
ICAgIHJldHVybiBUaGVtZU1hYzo6ZW5zdXJlZFZpZXcoJm8udmlldygpLmZyYW1lVmlldygpLCBz
dGF0ZXMpOwogfQogCiAjaWYgRU5BQkxFKFZJREVPKQpAQCAtMzIyLDkgKzMyMywxMSBAQCBDb2xv
ciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1Gb2N1c1JpbmdDb2xvcihPcHRpb25TZXQ8U3R5bGVD
b2xvcjo6T3B0aW9ucz4gb3B0aQogICAgIHJldHVybiBzeXN0ZW1Db2xvcihDU1NWYWx1ZVdlYmtp
dEZvY3VzUmluZ0NvbG9yLCBvcHRpb25zKTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBs
YXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKGJvb2wgdXNlU3lz
dGVtQXBwZWFyYW5jZSkgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUluYWN0
aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6
T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKLSAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJh
bmNlIGxvY2FsQXBwZWFyYW5jZSh1c2VTeXN0ZW1BcHBlYXJhbmNlKTsKKyAgICBjb25zdCBib29s
IHVzZVN5c3RlbUFwcGVhcmFuY2UgPSBvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlv
bnM6OlVzZVN5c3RlbUFwcGVhcmFuY2UpOworICAgIGNvbnN0IGJvb2wgZGVmYXVsdEFwcGVhcmFu
Y2UgPSBvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OkRlZmF1bHRBcHBlYXJh
bmNlKTsKKyAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZSh1
c2VTeXN0ZW1BcHBlYXJhbmNlLCBkZWZhdWx0QXBwZWFyYW5jZSk7CiAgICAgcmV0dXJuIHBsYXRm
b3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKTsKIH0KIApAQCAtNDMxLDkgKzQz
NCwxMCBAQCB2b2lkIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUNvbG9yc0RpZENoYW5nZSgpCiBD
b2xvciBSZW5kZXJUaGVtZU1hYzo6c3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCBjc3NWYWx1ZUlELCBP
cHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICAgICBjb25z
dCBib29sIHVzZVN5c3RlbUFwcGVhcmFuY2UgPSBvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6
Ok9wdGlvbnM6OlVzZVN5c3RlbUFwcGVhcmFuY2UpOworICAgIGNvbnN0IGJvb2wgZGVmYXVsdEFw
cGVhcmFuY2UgPSBvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OkRlZmF1bHRB
cHBlYXJhbmNlKTsKICAgICBjb25zdCBib29sIGZvclZpc2l0ZWRMaW5rID0gb3B0aW9ucy5jb250
YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpGb3JWaXNpdGVkTGluayk7CiAKLSAgICBMb2NhbERl
ZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZSh1c2VTeXN0ZW1BcHBlYXJhbmNl
KTsKKyAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZSh1c2VT
eXN0ZW1BcHBlYXJhbmNlLCBkZWZhdWx0QXBwZWFyYW5jZSk7CiAKICAgICAvLyBUaGUgc3lzdGVt
IGNvbG9yIGNhY2hlIGJlbG93IGNhbid0IGhhbmRsZSB2aXNpdGVkIGxpbmtzLiBUaGUgb25seSBj
b2xvciB2YWx1ZQogICAgIC8vIHRoYXQgY2FyZXMgYWJvdXQgdmlzaXRlZCBsaW5rcyBpcyBDU1NW
YWx1ZVdlYmtpdExpbmssIHNvIGhhbmRsZSBpdCBoZXJlLgpAQCAtMTQxMiwxMCArMTQxNiwxMSBA
QCB2b2lkIFJlbmRlclRoZW1lTWFjOjpzZXRQb3B1cEJ1dHRvbkNlbGxTdGF0ZShjb25zdCBSZW5k
ZXJPYmplY3QmIG8sIGNvbnN0IEludFNpegogCiB2b2lkIFJlbmRlclRoZW1lTWFjOjpwYWludENl
bGxBbmRTZXRGb2N1c2VkRWxlbWVudE5lZWRzUmVwYWludElmTmVjZXNzYXJ5KE5TQ2VsbCogY2Vs
bCwgY29uc3QgUmVuZGVyT2JqZWN0JiByZW5kZXJlciwgY29uc3QgUGFpbnRJbmZvJiBwYWludElu
Zm8sIGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsKKyAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBl
YXJhbmNlIGxvY2FsQXBwZWFyYW5jZShyZW5kZXJlci5wYWdlKCkudXNlU3lzdGVtQXBwZWFyYW5j
ZSgpLCByZW5kZXJlci5wYWdlKCkuZGVmYXVsdEFwcGVhcmFuY2UoKSk7CiAgICAgYm9vbCBzaG91
bGREcmF3Rm9jdXNSaW5nID0gaXNGb2N1c2VkKHJlbmRlcmVyKSAmJiByZW5kZXJlci5zdHlsZSgp
Lm91dGxpbmVTdHlsZUlzQXV0bygpOwogICAgIGJvb2wgc2hvdWxkVXNlSW1hZ2VCdWZmZXIgPSBy
ZW5kZXJlci5zdHlsZSgpLmVmZmVjdGl2ZVpvb20oKSAhPSAxIHx8IHJlbmRlcmVyLnBhZ2UoKS5w
YWdlU2NhbGVGYWN0b3IoKSAhPSAxOwogICAgIGJvb2wgc2hvdWxkRHJhd0NlbGwgPSB0cnVlOwot
ICAgIGlmIChUaGVtZU1hYzo6ZHJhd0NlbGxPckZvY3VzUmluZ1dpdGhWaWV3SW50b0NvbnRleHQo
Y2VsbCwgcGFpbnRJbmZvLmNvbnRleHQoKSwgcmVjdCwgZG9jdW1lbnRWaWV3Rm9yKHJlbmRlcmVy
KSwgc2hvdWxkRHJhd0NlbGwsIHNob3VsZERyYXdGb2N1c1JpbmcsIHNob3VsZFVzZUltYWdlQnVm
ZmVyLCByZW5kZXJlci5wYWdlKCkuZGV2aWNlU2NhbGVGYWN0b3IoKSwgcmVuZGVyZXIucGFnZSgp
LnVzZVN5c3RlbUFwcGVhcmFuY2UoKSkpCisgICAgaWYgKFRoZW1lTWFjOjpkcmF3Q2VsbE9yRm9j
dXNSaW5nV2l0aFZpZXdJbnRvQ29udGV4dChjZWxsLCBwYWludEluZm8uY29udGV4dCgpLCByZWN0
LCBkb2N1bWVudFZpZXdGb3IocmVuZGVyZXIpLCBzaG91bGREcmF3Q2VsbCwgc2hvdWxkRHJhd0Zv
Y3VzUmluZywgc2hvdWxkVXNlSW1hZ2VCdWZmZXIsIHJlbmRlcmVyLnBhZ2UoKS5kZXZpY2VTY2Fs
ZUZhY3RvcigpKSkKICAgICAgICAgcmVuZGVyZXIucGFnZSgpLmZvY3VzQ29udHJvbGxlcigpLnNl
dEZvY3VzZWRFbGVtZW50TmVlZHNSZXBhaW50KCk7CiB9CiAKQEAgLTE0OTMsNiArMTQ5OCw4IEBA
IGJvb2wgUmVuZGVyVGhlbWVNYWM6OnBhaW50U2xpZGVyVGh1bWIoY29uc3QgUmVuZGVyT2JqZWN0
JiBvLCBjb25zdCBQYWludEluZm8mIHBhCiAgICAgICAgID8gc2xpZGVyVGh1bWJWZXJ0aWNhbCgp
CiAgICAgICAgIDogc2xpZGVyVGh1bWJIb3Jpem9udGFsKCk7CiAKKyAgICBMb2NhbERlZmF1bHRT
eXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvLnBhZ2UoKS51c2VTeXN0ZW1BcHBlYXJh
bmNlKCksIG8ucGFnZSgpLmRlZmF1bHRBcHBlYXJhbmNlKCkpOworCiAgICAgTG9jYWxDdXJyZW50
R3JhcGhpY3NDb250ZXh0IGxvY2FsQ29udGV4dChwYWludEluZm8uY29udGV4dCgpKTsKIAogICAg
IC8vIFVwZGF0ZSB0aGUgdmFyaW91cyBzdGF0ZXMgd2UgcmVzcG9uZCB0by4KQEAgLTE1NDQsNyAr
MTU1MSw3IEBAIGJvb2wgUmVuZGVyVGhlbWVNYWM6OnBhaW50U2xpZGVyVGh1bWIoY29uc3QgUmVu
ZGVyT2JqZWN0JiBvLCBjb25zdCBQYWludEluZm8mIHBhCiAgICAgYm9vbCBzaG91bGREcmF3Rm9j
dXNSaW5nID0gZmFsc2U7CiAgICAgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IgPSBvLnBhZ2UoKS5k
ZXZpY2VTY2FsZUZhY3RvcigpOwogICAgIGJvb2wgc2hvdWxkVXNlSW1hZ2VCdWZmZXIgPSBkZXZp
Y2VTY2FsZUZhY3RvciAhPSAxIHx8IHpvb21MZXZlbCAhPSAxOwotICAgIFRoZW1lTWFjOjpkcmF3
Q2VsbE9yRm9jdXNSaW5nV2l0aFZpZXdJbnRvQ29udGV4dChzbGlkZXJUaHVtYkNlbGwsIHBhaW50
SW5mby5jb250ZXh0KCksIHVuem9vbWVkUmVjdCwgdmlldywgc2hvdWxkRHJhd0NlbGwsIHNob3Vs
ZERyYXdGb2N1c1JpbmcsIHNob3VsZFVzZUltYWdlQnVmZmVyLCBkZXZpY2VTY2FsZUZhY3Rvciwg
by5wYWdlKCkudXNlU3lzdGVtQXBwZWFyYW5jZSgpKTsKKyAgICBUaGVtZU1hYzo6ZHJhd0NlbGxP
ckZvY3VzUmluZ1dpdGhWaWV3SW50b0NvbnRleHQoc2xpZGVyVGh1bWJDZWxsLCBwYWludEluZm8u
Y29udGV4dCgpLCB1bnpvb21lZFJlY3QsIHZpZXcsIHNob3VsZERyYXdDZWxsLCBzaG91bGREcmF3
Rm9jdXNSaW5nLCBzaG91bGRVc2VJbWFnZUJ1ZmZlciwgZGV2aWNlU2NhbGVGYWN0b3IpOwogICAg
IFtzbGlkZXJUaHVtYkNlbGwgc2V0Q29udHJvbFZpZXc6bmlsXTsKIAogICAgIHJldHVybiBmYWxz
ZTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339920</attachid>
            <date>2018-05-08 19:31:31 -0700</date>
            <delta_ts>2018-05-09 08:17:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185458-20180508193130.patch</filename>
            <type>text/plain</type>
            <size>32731</size>
            <attacher name="Timothy Hatcher">timothy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxNDg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTk3OGY5NjhhMDlhNmU5
NWYxMmJmYzgxMWM0NzExZjdkNTk1MWQ1Ny4uZDBiYTgzYmNkYWUzNmJiYWU1NjdiNzU4ZGFhNDQ0
ZjEwOWY1Yzc2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDE4LTA1LTA4ICBUaW1v
dGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgU3R5bGVDb2xv
cjo6T3B0aW9ucyBpbiBtb3JlIHBsYWNlcy4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg1NDU4CisgICAgICAgIHJkYXI6Ly9wcm9ibGVtLzM5ODUz
Nzk4CisKKyAgICAgICAgQWRkIFVzZURlZmF1bHRBcHBlYXJhbmNlIHRvIFN0eWxlQ29sb3I6Ok9w
dGlvbnMsIHRvIGF2b2lkIHBhc3NpbmcgeWV0IGFub3RoZXIKKyAgICAgICAgYm9vbGVhbiBvbiBz
b21lIG9mIHRoZXNlIGZ1bmN0aW9ucy4KKworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9u
LgorCisgICAgICAgICogY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwOgorICAgICAgICAqIGNz
cy9TdHlsZUNvbG9yLmg6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkRvY3VtZW50Ojp1c2VEZWZhdWx0QXBwZWFyYW5jZSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudDo6c3R5bGVDb2xvck9wdGlvbnMgY29uc3QpOgorICAgICAgICAqIGRv
bS9Eb2N1bWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL1RoZW1lLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlRoZW1lOjpwYWludCk6CisgICAgICAgICogcGxhdGZvcm0vVGhlbWUuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMvTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZS5oOgorICAgICAg
ICAqIHBsYXRmb3JtL21hYy9Mb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6TG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZTo6TG9jYWxEZWZhdWx0U3lz
dGVtQXBwZWFyYW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpMb2NhbERlZmF1bHRTeXN0ZW1BcHBl
YXJhbmNlOjp+TG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSk6CisgICAgICAgICogcGxhdGZv
cm0vbWFjL1RoZW1lTWFjLmg6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1RoZW1lTWFjLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6cGFpbnRUb2dnbGVCdXR0b24pOgorICAgICAgICAoV2ViQ29yZTo6
cGFpbnRCdXR0b24pOgorICAgICAgICAoV2ViQ29yZTo6VGhlbWVNYWM6OmVuc3VyZWRWaWV3KToK
KyAgICAgICAgKFdlYkNvcmU6OlRoZW1lTWFjOjpkcmF3Q2VsbE9yRm9jdXNSaW5nV2l0aFZpZXdJ
bnRvQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpUaGVtZU1hYzo6cGFpbnQpOgorICAgICAg
ICAoLVtXZWJDb3JlVGhlbWVWaWV3IGluaXRXaXRoVXNlU3lzdGVtQXBwZWFyYW5jZTpdKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS93cGUvVGhlbWVXUEUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6VGhlbWVXUEU6OnBhaW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS93cGUvVGhlbWVXUEUu
aDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJMaXN0Qm94OjpwYWludEl0ZW1CYWNrZ3JvdW5kKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyVGhlbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OnBh
aW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjppbmFjdGl2ZUxpc3RCb3hTZWxl
Y3Rpb25CYWNrZ3JvdW5kQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhl
bWU6OnBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yIGNvbnN0
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWUuaDoKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyVGhlbWVHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVHdGs6
OnBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yIGNvbnN0KToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVHdGsuaDoKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyVGhlbWVNYWMuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMu
bW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6ZG9jdW1lbnRWaWV3Rm9yIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUluYWN0aXZl
TGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUaGVtZU1hYzo6c3lzdGVtQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyVGhlbWVNYWM6OnBhaW50Q2VsbEFuZFNldEZvY3VzZWRFbGVtZW50TmVlZHNSZXBhaW50
SWZOZWNlc3NhcnkpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OnBhaW50U2xp
ZGVyVGh1bWIpOgorCiAyMDE4LTA1LTA3ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+
CiAKICAgICAgICAgW0xGQ10gQWRkIEZvcm1hdHRpbmdDb250ZXh0OjpsYXlvdXRPdXRPZkZsb3dE
ZXNjZW5kYW50cyBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlQ29sb3IuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUNvbG9yLmgKaW5kZXggZGVj
YjJhYTZiNjM2NWMwM2RiZTAwMTM1MjQ5ZTBhY2Q3YTJhOTYwYS4uYTdiODFkOTRiZjRhNmJjN2Nh
NjVjNDQ3ODU2YjZiMTgzOTQ3OWZhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0
eWxlQ29sb3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVDb2xvci5oCkBAIC01Myw3
ICs1Myw4IEBAIHB1YmxpYzoKIAogICAgIGVudW0gY2xhc3MgT3B0aW9ucyA6IHVpbnQ4X3Qgewog
ICAgICAgICBGb3JWaXNpdGVkTGluayA9IDEgPDwgMCwKLSAgICAgICAgVXNlU3lzdGVtQXBwZWFy
YW5jZSA9IDEgPDwgMQorICAgICAgICBVc2VTeXN0ZW1BcHBlYXJhbmNlID0gMSA8PCAxLAorICAg
ICAgICBVc2VEZWZhdWx0QXBwZWFyYW5jZSA9IDEgPDwgMgogICAgIH07CiAKICAgICBzdGF0aWMg
Q29sb3IgY29sb3JGcm9tS2V5d29yZChDU1NWYWx1ZUlELCBPcHRpb25TZXQ8T3B0aW9ucz4pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggZDFiYjRmMzdiNTk1YmZkMDU1ZmZjMGFiODk3MGQz
MGEyNTU4MGE1OC4uOTVhMzAzMzQwODE3N2FiOGQyZjRiM2JkOWJkNWI3Y2FjMzlhYTEyYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC03MDM0LDExICs3MDM0LDIxIEBAIGJvb2wgRG9jdW1l
bnQ6OnVzZVN5c3RlbUFwcGVhcmFuY2UoKSBjb25zdAogICAgIHJldHVybiB1c2VTeXN0ZW1BcHBl
YXJhbmNlOwogfQogCitib29sIERvY3VtZW50Ojp1c2VEZWZhdWx0QXBwZWFyYW5jZSgpIGNvbnN0
Cit7CisgICAgYm9vbCB1c2VEZWZhdWx0QXBwZWFyYW5jZSA9IHRydWU7CisgICAgaWYgKFBhZ2Uq
IGRvY3VtZW50UGFnZSA9IHBhZ2UoKSkKKyAgICAgICAgdXNlRGVmYXVsdEFwcGVhcmFuY2UgPSBk
b2N1bWVudFBhZ2UtPmRlZmF1bHRBcHBlYXJhbmNlKCk7CisgICAgcmV0dXJuIHVzZURlZmF1bHRB
cHBlYXJhbmNlOworfQorCiBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gRG9jdW1lbnQ6
OnN0eWxlQ29sb3JPcHRpb25zKCkgY29uc3QKIHsKICAgICBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6
T3B0aW9ucz4gb3B0aW9uczsKICAgICBpZiAodXNlU3lzdGVtQXBwZWFyYW5jZSgpKQogICAgICAg
ICBvcHRpb25zIHw9IFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZVN5c3RlbUFwcGVhcmFuY2U7Cisg
ICAgaWYgKHVzZURlZmF1bHRBcHBlYXJhbmNlKCkpCisgICAgICAgIG9wdGlvbnMgfD0gU3R5bGVD
b2xvcjo6T3B0aW9uczo6VXNlRGVmYXVsdEFwcGVhcmFuY2U7CiAgICAgcmV0dXJuIG9wdGlvbnM7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggMDA2NjIxOWQ4YjAyMGYwMTg4M2FlOTU4YWE0
MDRhOTk2ZWYwMjAwYy4uYjllZmYxMDk2M2U0YjQyOGUwZWQyMzhjOTNjNWJhYmM1NDFiOWE1OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTU0NSw2ICs1NDUsNyBAQCBwdWJsaWM6CiAgICAgZmxv
YXQgZGV2aWNlU2NhbGVGYWN0b3IoKSBjb25zdDsKIAogICAgIGJvb2wgdXNlU3lzdGVtQXBwZWFy
YW5jZSgpIGNvbnN0OworICAgIGJvb2wgdXNlRGVmYXVsdEFwcGVhcmFuY2UoKSBjb25zdDsKICAg
ICBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gc3R5bGVDb2xvck9wdGlvbnMoKSBjb25z
dDsKIAogICAgIFdFQkNPUkVfRVhQT1JUIFJlZjxSYW5nZT4gY3JlYXRlUmFuZ2UoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RoZW1lLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1RoZW1lLmNwcAppbmRleCAwNzQyNmUxZWEwYzAwZTIwZjk5Njk2MmE4MDZmNGEx
YTI1YTI0N2Q4Li5jMGFmMTkyYjFkMTUyNWIwNWFkM2FmNWZjODA5NDg3YzdiMjYxMGUyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaGVtZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vVGhlbWUuY3BwCkBAIC01Nyw3ICs1Nyw3IEBAIGJvb2wgVGhlbWU6OmNv
bnRyb2xSZXF1aXJlc1ByZVdoaXRlU3BhY2UoQ29udHJvbFBhcnQpIGNvbnN0CiAgICAgcmV0dXJu
IGZhbHNlOwogfQogCi12b2lkIFRoZW1lOjpwYWludChDb250cm9sUGFydCwgQ29udHJvbFN0YXRl
cyYsIEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYsIGZsb2F0LCBTY3JvbGxWaWV3
KiwgZmxvYXQsIGZsb2F0LCBib29sKQordm9pZCBUaGVtZTo6cGFpbnQoQ29udHJvbFBhcnQsIENv
bnRyb2xTdGF0ZXMmLCBHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmLCBmbG9hdCwg
U2Nyb2xsVmlldyosIGZsb2F0LCBmbG9hdCwgYm9vbCwgYm9vbCkKIHsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhlbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1RoZW1lLmgKaW5kZXggMTYzZjM1YjAzZjk2Y2Y5YTUzZjJjNzY0ZWYzZmIyYzY0MWZmMGYw
Ni4uMTUxM2RkMGY4NmE4ODdlYTM2Y2Q0MDRmYjgxZDczOWVkMWJhMjBiNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhlbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9UaGVtZS5oCkBAIC02Nyw3ICs2Nyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wg
Y29udHJvbFJlcXVpcmVzUHJlV2hpdGVTcGFjZShDb250cm9sUGFydCkgY29uc3Q7CiAKICAgICAv
LyBNZXRob2QgZm9yIHBhaW50aW5nIGEgY29udHJvbC4gVGhlIHJlY3QgaXMgaW4gem9vbWVkIGNv
b3JkaW5hdGVzLgotICAgIHZpcnR1YWwgdm9pZCBwYWludChDb250cm9sUGFydCwgQ29udHJvbFN0
YXRlcyYsIEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgem9vbWVkUmVjdCwgZmxv
YXQgem9vbUZhY3RvciwgU2Nyb2xsVmlldyosIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yLCBmbG9h
dCBwYWdlU2NhbGVGYWN0b3IsIGJvb2wgdXNlU3lzdGVtQXBwZWFyYW5jZSk7CisgICAgdmlydHVh
bCB2b2lkIHBhaW50KENvbnRyb2xQYXJ0LCBDb250cm9sU3RhdGVzJiwgR3JhcGhpY3NDb250ZXh0
JiwgY29uc3QgRmxvYXRSZWN0JiB6b29tZWRSZWN0LCBmbG9hdCB6b29tRmFjdG9yLCBTY3JvbGxW
aWV3KiwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IsIGZsb2F0IHBhZ2VTY2FsZUZhY3RvciwgYm9v
bCB1c2VTeXN0ZW1BcHBlYXJhbmNlLCBib29sIHVzZURlZmF1bHRBcHBlYXJhbmNlKTsKIAogICAg
IC8vIFNvbWUgY29udHJvbHMgbWF5IHNwaWxsIG91dCBvZiB0aGVpciBjb250YWluZXJzIChlLmcu
LCB0aGUgY2hlY2sgb24gYW4gT1MgWCBjaGVja2JveCkuICBXaGVuIHRoZXNlIGNvbnRyb2xzIHJl
cGFpbnQsCiAgICAgLy8gdGhlIHRoZW1lIG5lZWRzIHRvIGNvbW11bmljYXRlIHRoaXMgaW5mbGF0
ZWQgcmVjdCB0byB0aGUgZW5naW5lIHNvIHRoYXQgaXQgY2FuIGludmFsaWRhdGUgdGhlIHdob2xl
IGNvbnRyb2wuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvTG9jYWxE
ZWZhdWx0U3lzdGVtQXBwZWFyYW5jZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0xv
Y2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UuaAppbmRleCBjYTllOGZiNWY1NWNmMTE5ODc4ZjFk
MzFjNTA0ZTY1NzAwZmRjYTE2Li5kZWRkOTkzMzc1M2E5MjcyMjVkZjA0Nzc1YjQ1NGYyMjAzZGRh
ODg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvTG9jYWxEZWZhdWx0
U3lzdGVtQXBwZWFyYW5jZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Mb2Nh
bERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlLmgKQEAgLTM5LDcgKzM5LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogY2xhc3MgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSB7CiAgICAgV1RGX01B
S0VfTk9OQ09QWUFCTEUoTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSk7CiBwdWJsaWM6Ci0g
ICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZShib29sIHVzZVN5c3RlbUFwcGVhcmFuY2Up
OworICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UoYm9vbCB1c2VTeXN0ZW1BcHBlYXJh
bmNlLCBib29sIHVzZURlZmF1bHRBcHBlYXJhbmNlKTsKICAgICB+TG9jYWxEZWZhdWx0U3lzdGVt
QXBwZWFyYW5jZSgpOwogcHJpdmF0ZToKICNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID49IDEwMTQwMApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0xv
Y2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZS5tbQppbmRleCBhZGZiZjRhM2FlMmQ0MmU0
NjZmZjA1NjFhOWJhOTVmMWI2MzJkY2NhLi41NTEyMzA5MWJjZTVlZmExOTRhNWE4NjBlOTZhODAz
Nzg3NTcwOTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvTG9jYWxE
ZWZhdWx0U3lzdGVtQXBwZWFyYW5jZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZS5tbQpAQCAtMzAsOCArMzAsMTEgQEAKICNp
bmNsdWRlIDxBcHBLaXQvTlNBcHBlYXJhbmNlLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLSAg
ICAKLUxvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2U6OkxvY2FsRGVmYXVsdFN5c3RlbUFwcGVh
cmFuY2UoYm9vbCB1c2VTeXN0ZW1BcHBlYXJhbmNlKQorCisjaWYgVVNFKEFQUExFX0lOVEVSTkFM
X1NESykKKyNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9Mb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJh
bmNlQWRkaXRpb25zLm1tPgorI2Vsc2UKK0xvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2U6Okxv
Y2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UoYm9vbCB1c2VTeXN0ZW1BcHBlYXJhbmNlLCBib29s
KQogewogI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNDAwCiAgICAg
bV9zYXZlZFN5c3RlbUFwcGVhcmFuY2UgPSBbTlNBcHBlYXJhbmNlIGN1cnJlbnRBcHBlYXJhbmNl
XTsKQEAgLTQwLDE1ICs0MywxNSBAQCBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlOjpMb2Nh
bERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlKGJvb2wgdXNlU3lzdGVtQXBwZWFyYQogICAgIFVOVVNF
RF9QQVJBTSh1c2VTeXN0ZW1BcHBlYXJhbmNlKTsKICNlbmRpZgogfQorI2VuZGlmCiAKIExvY2Fs
RGVmYXVsdFN5c3RlbUFwcGVhcmFuY2U6On5Mb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlKCkK
IHsKICNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTQwMAotICAgIGlm
IChtX3NhdmVkU3lzdGVtQXBwZWFyYW5jZSkKLSAgICAgICAgW05TQXBwZWFyYW5jZSBzZXRDdXJy
ZW50QXBwZWFyYW5jZTptX3NhdmVkU3lzdGVtQXBwZWFyYW5jZS5nZXQoKV07CisgICAgW05TQXBw
ZWFyYW5jZSBzZXRDdXJyZW50QXBwZWFyYW5jZTptX3NhdmVkU3lzdGVtQXBwZWFyYW5jZS5nZXQo
KV07CiAjZW5kaWYKIH0KLSAgICAKKwogfQogCiAjZW5kaWYgLy8gVVNFKEFQUEtJVCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9UaGVtZU1hYy5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1RoZW1lTWFjLmgKaW5kZXggY2JlMmNiOWViMDliMTYzODUxMzk3
YmVhZmJhM2ViMTczMjNlMjQzZC4uMjU4NDdlMWQwNWE3NjBhMmYyYTE3YTBmYWJiN2I4NzcyNWEz
OGM5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1RoZW1lTWFjLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1RoZW1lTWFjLmgKQEAgLTMzLDkgKzMz
LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBUaGVtZU1hYyBmaW5hbCA6IHB1Ymxp
YyBUaGVtZUNvY29hIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgTlNWaWV3ICplbnN1cmVkVmlldyhT
Y3JvbGxWaWV3KiwgY29uc3QgQ29udHJvbFN0YXRlcyYsIGJvb2wgdXNlU3lzdGVtQXBwZWFyYW5j
ZSwgYm9vbCB1c2VVbnBhcmVudGVkVmlldyA9IGZhbHNlKTsKKyAgICBzdGF0aWMgTlNWaWV3ICpl
bnN1cmVkVmlldyhTY3JvbGxWaWV3KiwgY29uc3QgQ29udHJvbFN0YXRlcyYsIGJvb2wgdXNlVW5w
YXJlbnRlZFZpZXcgPSBmYWxzZSk7CiAgICAgc3RhdGljIHZvaWQgc2V0Rm9jdXNSaW5nQ2xpcFJl
Y3QoY29uc3QgRmxvYXRSZWN0Jik7Ci0gICAgc3RhdGljIGJvb2wgZHJhd0NlbGxPckZvY3VzUmlu
Z1dpdGhWaWV3SW50b0NvbnRleHQoTlNDZWxsICosIEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZs
b2F0UmVjdCYsIE5TVmlldyAqLCBib29sIGRyYXdCdXR0b25DZWxsLCBib29sIGRyYXdGb2N1c1Jp
bmcsIGJvb2wgdXNlSW1hZ2VCdWZmZXIsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yLCBib29sIHVz
ZVN5c3RlbUFwcGVhcmFuY2UpOworICAgIHN0YXRpYyBib29sIGRyYXdDZWxsT3JGb2N1c1JpbmdX
aXRoVmlld0ludG9Db250ZXh0KE5TQ2VsbCAqLCBHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9h
dFJlY3QmLCBOU1ZpZXcgKiwgYm9vbCBkcmF3QnV0dG9uQ2VsbCwgYm9vbCBkcmF3Rm9jdXNSaW5n
LCBib29sIHVzZUltYWdlQnVmZmVyLCBmbG9hdCBkZXZpY2VTY2FsZUZhY3Rvcik7CiAKIHByaXZh
dGU6CiAgICAgZnJpZW5kIE5ldmVyRGVzdHJveWVkPFRoZW1lTWFjPjsKQEAgLTUzLDcgKzUzLDcg
QEAgcHJpdmF0ZToKIAogICAgIGJvb2wgY29udHJvbFJlcXVpcmVzUHJlV2hpdGVTcGFjZShDb250
cm9sUGFydCBwYXJ0KSBjb25zdCBmaW5hbCB7IHJldHVybiBwYXJ0ID09IFB1c2hCdXR0b25QYXJ0
OyB9CiAKLSAgICB2b2lkIHBhaW50KENvbnRyb2xQYXJ0LCBDb250cm9sU3RhdGVzJiwgR3JhcGhp
Y3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiwgZmxvYXQgem9vbUZhY3RvciwgU2Nyb2xsVmll
dyosIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yLCBmbG9hdCBwYWdlU2NhbGVGYWN0b3IsIGJvb2wg
dXNlU3lzdGVtQXBwZWFyYW5jZSkgZmluYWw7CisgICAgdm9pZCBwYWludChDb250cm9sUGFydCwg
Q29udHJvbFN0YXRlcyYsIEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYsIGZsb2F0
IHpvb21GYWN0b3IsIFNjcm9sbFZpZXcqLCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvciwgZmxvYXQg
cGFnZVNjYWxlRmFjdG9yLCBib29sIHVzZVN5c3RlbUFwcGVhcmFuY2UsIGJvb2wgdXNlRGVmYXVs
dEFwcGVhcmFuY2UpIGZpbmFsOwogICAgIHZvaWQgaW5mbGF0ZUNvbnRyb2xQYWludFJlY3QoQ29u
dHJvbFBhcnQsIGNvbnN0IENvbnRyb2xTdGF0ZXMmLCBGbG9hdFJlY3QmLCBmbG9hdCB6b29tRmFj
dG9yKSBjb25zdCBmaW5hbDsKIAogICAgIGJvb2wgdXNlclByZWZlcnNSZWR1Y2VkTW90aW9uKCkg
Y29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhl
bWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhlbWVNYWMubW0KaW5kZXgg
ODczNmVmNTU2MTdkN2FhZTdhMzk1MjdhOTFmZGIwNjZhODg2ZTgxNi4uY2Y3ZDZmYjQxZmU2YWM5
NDAwM2U1NzMyYzY2OWQzNzczM2YzOTNlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL1RoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9U
aGVtZU1hYy5tbQpAQCAtNjgsMTYgKzY4LDYgQEAgQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV2Vi
Q29yZVRoZW1lVmlldwogCi0tIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhVc2VTeXN0ZW1BcHBlYXJh
bmNlOihCT09MKXVzZVN5c3RlbUFwcGVhcmFuY2UKLXsKLSAgICBpZiAoIShzZWxmID0gW3N1cGVy
IGluaXRdKSkKLSAgICAgICAgcmV0dXJuIG5pbDsKLSAgICAKLSAgICBXZWJDb3JlOjpMb2NhbERl
ZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZSh1c2VTeXN0ZW1BcHBlYXJhbmNl
KTsKLSAgICBbc2VsZiBzZXRBcHBlYXJhbmNlOltOU0FwcGVhcmFuY2UgY3VycmVudEFwcGVhcmFu
Y2VdXTsKLSAgICByZXR1cm4gc2VsZjsKLX0KLQogLSAoTlNXaW5kb3cgKil3aW5kb3cKIHsKICAg
ICAvLyBVc2luZyBkZWZlcjpZRVMgcHJldmVudHMgdXMgZnJvbSB3YXN0aW5nIGFueSB3aW5kb3cg
c2VydmVyIHJlc291cmNlcyBmb3IgdGhpcyB3aW5kb3csIHNpbmNlIHdlJ3JlIG5vdCBhY3R1YWxs
eQpAQCAtMzk0LDcgKzM4NCw3IEBAIHN0YXRpYyBib29sIGRyYXdDZWxsRm9jdXNSaW5nKE5TQ2Vs
bCAqY2VsbCwgTlNSZWN0IGNlbGxGcmFtZSwgTlNWaWV3ICpjb250cm9sVmllCiAgICAgcmV0dXJu
IGZhbHNlOwogfQogCi1zdGF0aWMgdm9pZCBwYWludFRvZ2dsZUJ1dHRvbihDb250cm9sUGFydCBi
dXR0b25UeXBlLCBDb250cm9sU3RhdGVzJiBjb250cm9sU3RhdGVzLCBHcmFwaGljc0NvbnRleHQm
IGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgem9vbWVkUmVjdCwgZmxvYXQgem9vbUZhY3Rvciwg
U2Nyb2xsVmlldyogc2Nyb2xsVmlldywgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IsIGZsb2F0IHBh
Z2VTY2FsZUZhY3RvciwgYm9vbCB1c2VTeXN0ZW1BcHBlYXJhbmNlKQorc3RhdGljIHZvaWQgcGFp
bnRUb2dnbGVCdXR0b24oQ29udHJvbFBhcnQgYnV0dG9uVHlwZSwgQ29udHJvbFN0YXRlcyYgY29u
dHJvbFN0YXRlcywgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHpv
b21lZFJlY3QsIGZsb2F0IHpvb21GYWN0b3IsIFNjcm9sbFZpZXcqIHNjcm9sbFZpZXcsIGZsb2F0
IGRldmljZVNjYWxlRmFjdG9yLCBmbG9hdCBwYWdlU2NhbGVGYWN0b3IpCiB7CiAgICAgQkVHSU5f
QkxPQ0tfT0JKQ19FWENFUFRJT05TCiAKQEAgLTQzNiw3ICs0MjYsNyBAQCBzdGF0aWMgdm9pZCBw
YWludFRvZ2dsZUJ1dHRvbihDb250cm9sUGFydCBidXR0b25UeXBlLCBDb250cm9sU3RhdGVzJiBj
b250cm9sU3RhdAogICAgIH0KICAgICBMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQgbG9jYWxD
b250ZXh0KGNvbnRleHQpOwogCi0gICAgTlNWaWV3ICp2aWV3ID0gVGhlbWVNYWM6OmVuc3VyZWRW
aWV3KHNjcm9sbFZpZXcsIGNvbnRyb2xTdGF0ZXMsIHVzZVN5c3RlbUFwcGVhcmFuY2UsIHRydWUg
LyogdXNlVW5wYXJlbnRlZFZpZXcgKi8pOworICAgIE5TVmlldyAqdmlldyA9IFRoZW1lTWFjOjpl
bnN1cmVkVmlldyhzY3JvbGxWaWV3LCBjb250cm9sU3RhdGVzLCB0cnVlIC8qIHVzZVVucGFyZW50
ZWRWaWV3ICovKTsKIAogICAgIGJvb2wgbmVlZHNSZXBhaW50ID0gZmFsc2U7CiAgICAgYm9vbCB1
c2VJbWFnZUJ1ZmZlciA9IHBhZ2VTY2FsZUZhY3RvciAhPSAxLjBmIHx8IHpvb21GYWN0b3IgIT0g
MS4wZjsKQEAgLTQ0OSw5ICs0MzksOSBAQCBzdGF0aWMgdm9pZCBwYWludFRvZ2dsZUJ1dHRvbihD
b250cm9sUGFydCBidXR0b25UeXBlLCBDb250cm9sU3RhdGVzJiBjb250cm9sU3RhdAogCiAgICAg
ICAgIFt0b2dnbGVCdXR0b25DZWxsIF9yZW5kZXJDdXJyZW50QW5pbWF0aW9uRnJhbWVJbkNvbnRl
eHQ6Y29udGV4dC5wbGF0Zm9ybUNvbnRleHQoKSBhdExvY2F0aW9uOk5TTWFrZVBvaW50KDAsIDAp
XTsKICAgICAgICAgaWYgKCFbdG9nZ2xlQnV0dG9uQ2VsbCBfc3RhdGVBbmltYXRpb25SdW5uaW5n
XSAmJiBpc0NlbGxGb2N1c2VkKQotICAgICAgICAgICAgbmVlZHNSZXBhaW50ID0gVGhlbWVNYWM6
OmRyYXdDZWxsT3JGb2N1c1JpbmdXaXRoVmlld0ludG9Db250ZXh0KHRvZ2dsZUJ1dHRvbkNlbGwu
Z2V0KCksIGNvbnRleHQsIGluZmxhdGVkUmVjdCwgdmlldywgZmFsc2UsIHRydWUsIHVzZUltYWdl
QnVmZmVyLCBkZXZpY2VTY2FsZUZhY3RvciwgdXNlU3lzdGVtQXBwZWFyYW5jZSk7CisgICAgICAg
ICAgICBuZWVkc1JlcGFpbnQgPSBUaGVtZU1hYzo6ZHJhd0NlbGxPckZvY3VzUmluZ1dpdGhWaWV3
SW50b0NvbnRleHQodG9nZ2xlQnV0dG9uQ2VsbC5nZXQoKSwgY29udGV4dCwgaW5mbGF0ZWRSZWN0
LCB2aWV3LCBmYWxzZSwgdHJ1ZSwgdXNlSW1hZ2VCdWZmZXIsIGRldmljZVNjYWxlRmFjdG9yKTsK
ICAgICB9IGVsc2UKLSAgICAgICAgbmVlZHNSZXBhaW50ID0gVGhlbWVNYWM6OmRyYXdDZWxsT3JG
b2N1c1JpbmdXaXRoVmlld0ludG9Db250ZXh0KHRvZ2dsZUJ1dHRvbkNlbGwuZ2V0KCksIGNvbnRl
eHQsIGluZmxhdGVkUmVjdCwgdmlldywgdHJ1ZSwgaXNDZWxsRm9jdXNlZCwgdXNlSW1hZ2VCdWZm
ZXIsIGRldmljZVNjYWxlRmFjdG9yLCB1c2VTeXN0ZW1BcHBlYXJhbmNlKTsKKyAgICAgICAgbmVl
ZHNSZXBhaW50ID0gVGhlbWVNYWM6OmRyYXdDZWxsT3JGb2N1c1JpbmdXaXRoVmlld0ludG9Db250
ZXh0KHRvZ2dsZUJ1dHRvbkNlbGwuZ2V0KCksIGNvbnRleHQsIGluZmxhdGVkUmVjdCwgdmlldywg
dHJ1ZSwgaXNDZWxsRm9jdXNlZCwgdXNlSW1hZ2VCdWZmZXIsIGRldmljZVNjYWxlRmFjdG9yKTsK
IAogICAgIFt0b2dnbGVCdXR0b25DZWxsIHNldENvbnRyb2xWaWV3Om5pbF07CiAKQEAgLTUyNyw3
ICs1MTcsNyBAQCBzdGF0aWMgTlNCdXR0b25DZWxsICpidXR0b24oQ29udHJvbFBhcnQgcGFydCwg
Y29uc3QgQ29udHJvbFN0YXRlcyYgY29udHJvbFN0YXRlcwogICAgIHJldHVybiBjZWxsOwogfQog
ICAgIAotc3RhdGljIHZvaWQgcGFpbnRCdXR0b24oQ29udHJvbFBhcnQgcGFydCwgQ29udHJvbFN0
YXRlcyYgY29udHJvbFN0YXRlcywgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9h
dFJlY3QmIHpvb21lZFJlY3QsIGZsb2F0IHpvb21GYWN0b3IsIFNjcm9sbFZpZXcqIHNjcm9sbFZp
ZXcsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yLCBmbG9hdCBwYWdlU2NhbGVGYWN0b3IsIGJvb2wg
dXNlU3lzdGVtQXBwZWFyYW5jZSkKK3N0YXRpYyB2b2lkIHBhaW50QnV0dG9uKENvbnRyb2xQYXJ0
IHBhcnQsIENvbnRyb2xTdGF0ZXMmIGNvbnRyb2xTdGF0ZXMsIEdyYXBoaWNzQ29udGV4dCYgY29u
dGV4dCwgY29uc3QgRmxvYXRSZWN0JiB6b29tZWRSZWN0LCBmbG9hdCB6b29tRmFjdG9yLCBTY3Jv
bGxWaWV3KiBzY3JvbGxWaWV3LCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvciwgZmxvYXQgcGFnZVNj
YWxlRmFjdG9yKQogewogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogICAgIApAQCAt
NTYyLDE0ICs1NTIsMTIgQEAgc3RhdGljIHZvaWQgcGFpbnRCdXR0b24oQ29udHJvbFBhcnQgcGFy
dCwgQ29udHJvbFN0YXRlcyYgY29udHJvbFN0YXRlcywgR3JhcGhpY3MKICAgICAKICAgICBMb2Nh
bEN1cnJlbnRHcmFwaGljc0NvbnRleHQgbG9jYWxDb250ZXh0KGNvbnRleHQpOwogICAgIAotICAg
IE5TVmlldyAqdmlldyA9IFRoZW1lTWFjOjplbnN1cmVkVmlldyhzY3JvbGxWaWV3LCBjb250cm9s
U3RhdGVzLCB1c2VTeXN0ZW1BcHBlYXJhbmNlKTsKKyAgICBOU1ZpZXcgKnZpZXcgPSBUaGVtZU1h
Yzo6ZW5zdXJlZFZpZXcoc2Nyb2xsVmlldywgY29udHJvbFN0YXRlcyk7CiAgICAgTlNXaW5kb3cg
KndpbmRvdyA9IFt2aWV3IHdpbmRvd107Ci0gICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5j
ZSBsb2NhbEFwcGVhcmFuY2UodXNlU3lzdGVtQXBwZWFyYW5jZSk7Ci0gICAgW3dpbmRvdyBzZXRB
cHBlYXJhbmNlOltOU0FwcGVhcmFuY2UgY3VycmVudEFwcGVhcmFuY2VdXTsKICAgICBOU0J1dHRv
bkNlbGwgKnByZXZpb3VzRGVmYXVsdEJ1dHRvbkNlbGwgPSBbd2luZG93IGRlZmF1bHRCdXR0b25D
ZWxsXTsKIAogICAgIGJvb2wgdXNlSW1hZ2VCdWZmZXIgPSBwYWdlU2NhbGVGYWN0b3IgIT0gMS4w
ZiB8fCB6b29tRmFjdG9yICE9IDEuMGY7Ci0gICAgYm9vbCBuZWVkc1JlcGFpbnQgPSBUaGVtZU1h
Yzo6ZHJhd0NlbGxPckZvY3VzUmluZ1dpdGhWaWV3SW50b0NvbnRleHQoYnV0dG9uQ2VsbCwgY29u
dGV4dCwgaW5mbGF0ZWRSZWN0LCB2aWV3LCB0cnVlLCBzdGF0ZXMgJiBDb250cm9sU3RhdGVzOjpG
b2N1c1N0YXRlLCB1c2VJbWFnZUJ1ZmZlciwgZGV2aWNlU2NhbGVGYWN0b3IsIHVzZVN5c3RlbUFw
cGVhcmFuY2UpOworICAgIGJvb2wgbmVlZHNSZXBhaW50ID0gVGhlbWVNYWM6OmRyYXdDZWxsT3JG
b2N1c1JpbmdXaXRoVmlld0ludG9Db250ZXh0KGJ1dHRvbkNlbGwsIGNvbnRleHQsIGluZmxhdGVk
UmVjdCwgdmlldywgdHJ1ZSwgc3RhdGVzICYgQ29udHJvbFN0YXRlczo6Rm9jdXNTdGF0ZSwgdXNl
SW1hZ2VCdWZmZXIsIGRldmljZVNjYWxlRmFjdG9yKTsKICAgICBpZiAoc3RhdGVzICYgQ29udHJv
bFN0YXRlczo6RGVmYXVsdFN0YXRlKQogICAgICAgICBbd2luZG93IHNldERlZmF1bHRCdXR0b25D
ZWxsOmJ1dHRvbkNlbGxdOwogICAgIGVsc2UgaWYgKFtwcmV2aW91c0RlZmF1bHRCdXR0b25DZWxs
IGlzRXF1YWw6YnV0dG9uQ2VsbF0pCkBAIC02NDcsNyArNjM1LDcgQEAgc3RhdGljIHZvaWQgcGFp
bnRTdGVwcGVyKENvbnRyb2xTdGF0ZXMmIHN0YXRlcywgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0
LCBjb25zdAogCiAvLyBUaGlzIHdpbGwgZW5zdXJlIHRoYXQgd2UgYWx3YXlzIHJldHVybiBhIHZh
bGlkIE5TVmlldywgZXZlbiBpZiBTY3JvbGxWaWV3IGRvZXNuJ3QgaGF2ZSBhbiBhc3NvY2lhdGVk
IGRvY3VtZW50IE5TVmlldy4KIC8vIElmIHRoZSBTY3JvbGxWaWV3IGRvZXNuJ3QgaGF2ZSBhbiBO
U1ZpZXcsIHdlIHdpbGwgcmV0dXJuIGEgZmFrZSBOU1ZpZXcgc2V0IHVwIGluIHRoZSB3YXkgQXBw
S2l0IGV4cGVjdHMuCi1OU1ZpZXcgKlRoZW1lTWFjOjplbnN1cmVkVmlldyhTY3JvbGxWaWV3KiBz
Y3JvbGxWaWV3LCBjb25zdCBDb250cm9sU3RhdGVzJiBjb250cm9sU3RhdGVzLCBib29sIHVzZVN5
c3RlbUFwcGVhcmFuY2UsIGJvb2wgdXNlVW5wYXJlbnRlZFZpZXcpCitOU1ZpZXcgKlRoZW1lTWFj
OjplbnN1cmVkVmlldyhTY3JvbGxWaWV3KiBzY3JvbGxWaWV3LCBjb25zdCBDb250cm9sU3RhdGVz
JiBjb250cm9sU3RhdGVzLCBib29sIHVzZVVucGFyZW50ZWRWaWV3KQogewogICAgIGlmICghdXNl
VW5wYXJlbnRlZFZpZXcpIHsKICAgICAgICAgaWYgKE5TVmlldyAqZG9jdW1lbnRWaWV3ID0gc2Ny
b2xsVmlldy0+ZG9jdW1lbnRWaWV3KCkpCkBAIC02NTUsOCArNjQzLDkgQEAgTlNWaWV3ICpUaGVt
ZU1hYzo6ZW5zdXJlZFZpZXcoU2Nyb2xsVmlldyogc2Nyb2xsVmlldywgY29uc3QgQ29udHJvbFN0
YXRlcyYgY29udHIKICAgICB9CiAKICAgICAvLyBVc2UgYSBmYWtlIHZpZXcuCi0gICAgc3RhdGlj
IFdlYkNvcmVUaGVtZVZpZXcgKnRoZW1lVmlldyA9IFtbV2ViQ29yZVRoZW1lVmlldyBhbGxvY10g
aW5pdFdpdGhVc2VTeXN0ZW1BcHBlYXJhbmNlOnVzZVN5c3RlbUFwcGVhcmFuY2VdOworICAgIHN0
YXRpYyBXZWJDb3JlVGhlbWVWaWV3ICp0aGVtZVZpZXcgPSBbW1dlYkNvcmVUaGVtZVZpZXcgYWxs
b2NdIGluaXRdOwogICAgIFt0aGVtZVZpZXcgc2V0RnJhbWVTaXplOk5TU2l6ZUZyb21DR1NpemUo
c2Nyb2xsVmlldy0+dG90YWxDb250ZW50c1NpemUoKSldOworICAgIFt0aGVtZVZpZXcgc2V0QXBw
ZWFyYW5jZTpbTlNBcHBlYXJhbmNlIGN1cnJlbnRBcHBlYXJhbmNlXV07CiAKICAgICB0aGVtZVdp
bmRvd0hhc0tleUFwcGVhcmFuY2UgPSAhKGNvbnRyb2xTdGF0ZXMuc3RhdGVzKCkgJiBDb250cm9s
U3RhdGVzOjpXaW5kb3dJbmFjdGl2ZVN0YXRlKTsKIApAQCAtNjg1LDEwICs2NzQsOSBAQCBzdGF0
aWMgaW5saW5lIGJvb2wgZHJhd0NlbGxPckZvY3VzUmluZ0ludG9SZWN0V2l0aFZpZXcoTlNDZWxs
ICpjZWxsLCBOU1JlY3QgcmVjdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBUaGVtZU1h
Yzo6ZHJhd0NlbGxPckZvY3VzUmluZ1dpdGhWaWV3SW50b0NvbnRleHQoTlNDZWxsICpjZWxsLCBH
cmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgTlNWaWV3ICp2
aWV3LCBib29sIGRyYXdCdXR0b25DZWxsLCBib29sIGRyYXdGb2N1c1JpbmcsIGJvb2wgdXNlSW1h
Z2VCdWZmZXIsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yLCBib29sIHVzZVN5c3RlbUFwcGVhcmFu
Y2UpCitib29sIFRoZW1lTWFjOjpkcmF3Q2VsbE9yRm9jdXNSaW5nV2l0aFZpZXdJbnRvQ29udGV4
dChOU0NlbGwgKmNlbGwsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0
JiByZWN0LCBOU1ZpZXcgKnZpZXcsIGJvb2wgZHJhd0J1dHRvbkNlbGwsIGJvb2wgZHJhd0ZvY3Vz
UmluZywgYm9vbCB1c2VJbWFnZUJ1ZmZlciwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpCiB7CiAg
ICAgQVNTRVJUKGRyYXdCdXR0b25DZWxsIHx8IGRyYXdGb2N1c1JpbmcpOwotICAgIExvY2FsRGVm
YXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKHVzZVN5c3RlbUFwcGVhcmFuY2Up
OwogICAgIGJvb2wgbmVlZHNSZXBhaW50ID0gZmFsc2U7CiAgICAgaWYgKHVzZUltYWdlQnVmZmVy
KSB7CiAgICAgICAgIE5TUmVjdCBpbWFnZUJ1ZmZlckRyYXdSZWN0ID0gTlNSZWN0KEZsb2F0UmVj
dChidXR0b25Gb2N1c1JlY3RPdXRsaW5lV2lkdGgsIGJ1dHRvbkZvY3VzUmVjdE91dGxpbmVXaWR0
aCwgcmVjdC53aWR0aCgpLCByZWN0LmhlaWdodCgpKSk7CkBAIC04NTcsMjAgKzg0NSwyMiBAQCB2
b2lkIFRoZW1lTWFjOjppbmZsYXRlQ29udHJvbFBhaW50UmVjdChDb250cm9sUGFydCBwYXJ0LCBj
b25zdCBDb250cm9sU3RhdGVzJiBzdAogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIH0K
IAotdm9pZCBUaGVtZU1hYzo6cGFpbnQoQ29udHJvbFBhcnQgcGFydCwgQ29udHJvbFN0YXRlcyYg
c3RhdGVzLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgem9vbWVk
UmVjdCwgZmxvYXQgem9vbUZhY3RvciwgU2Nyb2xsVmlldyogc2Nyb2xsVmlldywgZmxvYXQgZGV2
aWNlU2NhbGVGYWN0b3IsIGZsb2F0IHBhZ2VTY2FsZUZhY3RvciwgYm9vbCB1c2VTeXN0ZW1BcHBl
YXJhbmNlKQordm9pZCBUaGVtZU1hYzo6cGFpbnQoQ29udHJvbFBhcnQgcGFydCwgQ29udHJvbFN0
YXRlcyYgc3RhdGVzLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYg
em9vbWVkUmVjdCwgZmxvYXQgem9vbUZhY3RvciwgU2Nyb2xsVmlldyogc2Nyb2xsVmlldywgZmxv
YXQgZGV2aWNlU2NhbGVGYWN0b3IsIGZsb2F0IHBhZ2VTY2FsZUZhY3RvciwgYm9vbCB1c2VTeXN0
ZW1BcHBlYXJhbmNlLCBib29sIHVzZURlZmF1bHRBcHBlYXJhbmNlKQogeworICAgIExvY2FsRGVm
YXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKHVzZVN5c3RlbUFwcGVhcmFuY2Us
IHVzZURlZmF1bHRBcHBlYXJhbmNlKTsKKwogICAgIHN3aXRjaCAocGFydCkgewogICAgICAgICBj
YXNlIENoZWNrYm94UGFydDoKLSAgICAgICAgICAgIHBhaW50VG9nZ2xlQnV0dG9uKHBhcnQsIHN0
YXRlcywgY29udGV4dCwgem9vbWVkUmVjdCwgem9vbUZhY3Rvciwgc2Nyb2xsVmlldywgZGV2aWNl
U2NhbGVGYWN0b3IsIHBhZ2VTY2FsZUZhY3RvciwgdXNlU3lzdGVtQXBwZWFyYW5jZSk7CisgICAg
ICAgICAgICBwYWludFRvZ2dsZUJ1dHRvbihwYXJ0LCBzdGF0ZXMsIGNvbnRleHQsIHpvb21lZFJl
Y3QsIHpvb21GYWN0b3IsIHNjcm9sbFZpZXcsIGRldmljZVNjYWxlRmFjdG9yLCBwYWdlU2NhbGVG
YWN0b3IpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgUmFkaW9QYXJ0OgotICAg
ICAgICAgICAgcGFpbnRUb2dnbGVCdXR0b24ocGFydCwgc3RhdGVzLCBjb250ZXh0LCB6b29tZWRS
ZWN0LCB6b29tRmFjdG9yLCBzY3JvbGxWaWV3LCBkZXZpY2VTY2FsZUZhY3RvciwgcGFnZVNjYWxl
RmFjdG9yLCB1c2VTeXN0ZW1BcHBlYXJhbmNlKTsKKyAgICAgICAgICAgIHBhaW50VG9nZ2xlQnV0
dG9uKHBhcnQsIHN0YXRlcywgY29udGV4dCwgem9vbWVkUmVjdCwgem9vbUZhY3Rvciwgc2Nyb2xs
VmlldywgZGV2aWNlU2NhbGVGYWN0b3IsIHBhZ2VTY2FsZUZhY3Rvcik7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgY2FzZSBQdXNoQnV0dG9uUGFydDoKICAgICAgICAgY2FzZSBEZWZhdWx0
QnV0dG9uUGFydDoKICAgICAgICAgY2FzZSBCdXR0b25QYXJ0OgogICAgICAgICBjYXNlIFNxdWFy
ZUJ1dHRvblBhcnQ6Ci0gICAgICAgICAgICBwYWludEJ1dHRvbihwYXJ0LCBzdGF0ZXMsIGNvbnRl
eHQsIHpvb21lZFJlY3QsIHpvb21GYWN0b3IsIHNjcm9sbFZpZXcsIGRldmljZVNjYWxlRmFjdG9y
LCBwYWdlU2NhbGVGYWN0b3IsIHVzZVN5c3RlbUFwcGVhcmFuY2UpOworICAgICAgICAgICAgcGFp
bnRCdXR0b24ocGFydCwgc3RhdGVzLCBjb250ZXh0LCB6b29tZWRSZWN0LCB6b29tRmFjdG9yLCBz
Y3JvbGxWaWV3LCBkZXZpY2VTY2FsZUZhY3RvciwgcGFnZVNjYWxlRmFjdG9yKTsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICBjYXNlIElubmVyU3BpbkJ1dHRvblBhcnQ6CiAgICAgICAgICAg
ICBwYWludFN0ZXBwZXIoc3RhdGVzLCBjb250ZXh0LCB6b29tZWRSZWN0LCB6b29tRmFjdG9yLCBz
Y3JvbGxWaWV3KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9UaGVt
ZVdQRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvVGhlbWVXUEUuY3BwCmluZGV4
IGEwYjhiODIyNDAxNTQ2Njg4YWU5Njc1Njk1MzhhYjBmMmQ3MTk3OWEuLmUyMmEyOTQ3ZWU3Mjdh
YWY4MGRiNzA2YWI3NjdhN2U2YTE4NDVmOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3dwZS9UaGVtZVdQRS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3Bl
L1RoZW1lV1BFLmNwcApAQCAtNTcsNyArNTcsNyBAQCBMZW5ndGhTaXplIFRoZW1lV1BFOjpjb250
cm9sU2l6ZShDb250cm9sUGFydCBwYXJ0LCBjb25zdCBGb250Q2FzY2FkZSYgZm9udENhc2NhZAog
ICAgIHJldHVybiBUaGVtZTo6Y29udHJvbFNpemUocGFydCwgZm9udENhc2NhZGUsIHpvb21lZFNp
emUsIHpvb21GYWN0b3IpOwogfQogCi12b2lkIFRoZW1lV1BFOjpwYWludChDb250cm9sUGFydCBw
YXJ0LCBDb250cm9sU3RhdGVzJiBzdGF0ZXMsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29u
c3QgRmxvYXRSZWN0JiB6b29tZWRSZWN0LCBmbG9hdCB6b29tRmFjdG9yLCBTY3JvbGxWaWV3Kiwg
ZmxvYXQsIGZsb2F0LCBib29sKQordm9pZCBUaGVtZVdQRTo6cGFpbnQoQ29udHJvbFBhcnQgcGFy
dCwgQ29udHJvbFN0YXRlcyYgc3RhdGVzLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0
IEZsb2F0UmVjdCYgem9vbWVkUmVjdCwgZmxvYXQgem9vbUZhY3RvciwgU2Nyb2xsVmlldyosIGZs
b2F0LCBmbG9hdCwgYm9vbCwgYm9vbCkKIHsKICAgICBzd2l0Y2ggKHBhcnQpIHsKICAgICBjYXNl
IENoZWNrYm94UGFydDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9U
aGVtZVdQRS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1RoZW1lV1BFLmgKaW5kZXgg
ZjI2MDA4OThhY2NjZGQxM2QzYTFhOTQyYTRiOGQwZTU4NThiNmQ5Yy4uYjE3NmE4MDJmMmE5OGY0
ZmEwYzAxYmFhNjdmNTk4ZGMwOGRkYzcyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vd3BlL1RoZW1lV1BFLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1Ro
ZW1lV1BFLmgKQEAgLTMzLDcgKzMzLDcgQEAgY2xhc3MgVGhlbWVXUEUgZmluYWwgOiBwdWJsaWMg
VGhlbWUgewogcHJpdmF0ZToKICAgICBMZW5ndGhTaXplIGNvbnRyb2xTaXplKENvbnRyb2xQYXJ0
LCBjb25zdCBGb250Q2FzY2FkZSYsIGNvbnN0IExlbmd0aFNpemUmLCBmbG9hdCkgY29uc3QgZmlu
YWw7CiAKLSAgICB2b2lkIHBhaW50KENvbnRyb2xQYXJ0LCBDb250cm9sU3RhdGVzJiwgR3JhcGhp
Y3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiwgZmxvYXQsIFNjcm9sbFZpZXcqLCBmbG9hdCwg
ZmxvYXQsIGJvb2wpIGZpbmFsOworICAgIHZvaWQgcGFpbnQoQ29udHJvbFBhcnQsIENvbnRyb2xT
dGF0ZXMmLCBHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmLCBmbG9hdCwgU2Nyb2xs
VmlldyosIGZsb2F0LCBmbG9hdCwgYm9vbCwgYm9vbCkgZmluYWw7CiAKICAgICB2b2lkIHBhaW50
Q2hlY2tib3goQ29udHJvbFN0YXRlcyYsIEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVj
dCYsIGZsb2F0KTsKICAgICB2b2lkIHBhaW50UmFkaW8oQ29udHJvbFN0YXRlcyYsIEdyYXBoaWNz
Q29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYsIGZsb2F0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMaXN0Qm94LmNwcAppbmRleCBmZDFkYWY4NDdjOTYxM2I2ZWVhZjhlMDczZDIy
ZTQ0ZjYyMjUyNjQ1Li45NGY3ZDUyZjdkZjE2NjNjMTAxZGIxYzM4NDMyNjQ1MzdjN2U2ZDI1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCkBAIC00NjAsNyAr
NDYwLDcgQEAgdm9pZCBSZW5kZXJMaXN0Qm94OjpwYWludEl0ZW1CYWNrZ3JvdW5kKFBhaW50SW5m
byYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYKICAgICAgICAgaWYgKGZyYW1lKCkuc2Vs
ZWN0aW9uKCkuaXNGb2N1c2VkQW5kQWN0aXZlKCkgJiYgZG9jdW1lbnQoKS5mb2N1c2VkRWxlbWVu
dCgpID09ICZzZWxlY3RFbGVtZW50KCkpCiAgICAgICAgICAgICBiYWNrQ29sb3IgPSB0aGVtZSgp
LmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKTsKICAgICAgICAgZWxzZQot
ICAgICAgICAgICAgYmFja0NvbG9yID0gdGhlbWUoKS5pbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25C
YWNrZ3JvdW5kQ29sb3IoZG9jdW1lbnQoKS51c2VTeXN0ZW1BcHBlYXJhbmNlKCkpOworICAgICAg
ICAgICAgYmFja0NvbG9yID0gdGhlbWUoKS5pbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3Jv
dW5kQ29sb3IoZG9jdW1lbnQoKS5zdHlsZUNvbG9yT3B0aW9ucygpKTsKICAgICB9IGVsc2UKICAg
ICAgICAgYmFja0NvbG9yID0gaXRlbVN0eWxlLnZpc2l0ZWREZXBlbmRlbnRDb2xvcldpdGhDb2xv
ckZpbHRlcihDU1NQcm9wZXJ0eUJhY2tncm91bmRDb2xvcik7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGhlbWUuY3BwCmluZGV4IGE3MDdmMThjZjEzNDA5MmFlZWViMGZlN2MxOGZm
MWNiNDJiMGVmZDAuLjAwZDYxNjUzOWI5MmRmNjA2YzZhMWYxNzVmYTMyYzc1YTQzMjM3YTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcApAQCAtMzAzLDcgKzMwMyw3
IEBAIGJvb2wgUmVuZGVyVGhlbWU6OnBhaW50KGNvbnN0IFJlbmRlckJveCYgYm94LCBDb250cm9s
U3RhdGVzJiBjb250cm9sU3RhdGVzLCBjb25zCiAgICAgY2FzZSBCdXR0b25QYXJ0OgogICAgIGNh
c2UgSW5uZXJTcGluQnV0dG9uUGFydDoKICAgICAgICAgdXBkYXRlQ29udHJvbFN0YXRlc0ZvclJl
bmRlcmVyKGJveCwgY29udHJvbFN0YXRlcyk7Ci0gICAgICAgIFRoZW1lOjpzaW5nbGV0b24oKS5w
YWludChwYXJ0LCBjb250cm9sU3RhdGVzLCBwYWludEluZm8uY29udGV4dCgpLCBkZXZpY2VQaXhl
bFNuYXBwZWRSZWN0LCBib3guc3R5bGUoKS5lZmZlY3RpdmVab29tKCksICZib3gudmlldygpLmZy
YW1lVmlldygpLCBkZXZpY2VTY2FsZUZhY3RvciwgcGFnZVNjYWxlRmFjdG9yLCBib3gucGFnZSgp
LnVzZVN5c3RlbUFwcGVhcmFuY2UoKSk7CisgICAgICAgIFRoZW1lOjpzaW5nbGV0b24oKS5wYWlu
dChwYXJ0LCBjb250cm9sU3RhdGVzLCBwYWludEluZm8uY29udGV4dCgpLCBkZXZpY2VQaXhlbFNu
YXBwZWRSZWN0LCBib3guc3R5bGUoKS5lZmZlY3RpdmVab29tKCksICZib3gudmlldygpLmZyYW1l
VmlldygpLCBkZXZpY2VTY2FsZUZhY3RvciwgcGFnZVNjYWxlRmFjdG9yLCBib3gucGFnZSgpLnVz
ZVN5c3RlbUFwcGVhcmFuY2UoKSwgYm94LnBhZ2UoKS5kZWZhdWx0QXBwZWFyYW5jZSgpKTsKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJyZWFrOwpAQCAtNjE0
LDEwICs2MTQsMTAgQEAgQ29sb3IgUmVuZGVyVGhlbWU6OmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25C
YWNrZ3JvdW5kQ29sb3IoKSBjb25zdAogICAgIHJldHVybiBtX2FjdGl2ZUxpc3RCb3hTZWxlY3Rp
b25CYWNrZ3JvdW5kQ29sb3I7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lOjppbmFjdGl2ZUxpc3RC
b3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoYm9vbCB1c2VTeXN0ZW1BcHBlYXJhbmNlKSBjb25z
dAorQ29sb3IgUmVuZGVyVGhlbWU6OmluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRD
b2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICAg
ICBpZiAoIW1faW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yLmlzVmFsaWQo
KSkKLSAgICAgICAgbV9pbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IgPSBw
bGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcih1c2VTeXN0ZW1B
cHBlYXJhbmNlKTsKKyAgICAgICAgbV9pbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5k
Q29sb3IgPSBwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihv
cHRpb25zKTsKICAgICByZXR1cm4gbV9pbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5k
Q29sb3I7CiB9CiAKQEAgLTY3MCw3ICs2NzAsNyBAQCBDb2xvciBSZW5kZXJUaGVtZTo6cGxhdGZv
cm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKCkgY29uc3QKICAgICByZXR1
cm4gcGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKTsKIH0KIAotQ29sb3Ig
UmVuZGVyVGhlbWU6OnBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENv
bG9yKGJvb2wpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1JbmFjdGl2ZUxpc3RC
b3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+
KSBjb25zdAogewogICAgIHJldHVybiBwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3Vu
ZENvbG9yKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGhlbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oCmluZGV4IGNk
YjM0OWEyYjVlYmM2NjJlMGM5MzkyMjRkNWE5YzQzNjczOGEwMzcuLjdkYWFlY2M2NDZhOWNjYjU3
YmRiZDA2NWUwZWMyMWI2ODUzOTI1YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZS5oCkBAIC0xNDEsNyArMTQxLDcgQEAgcHVibGljOgogICAgIC8vIExpc3QgYm94IHNlbGVj
dGlvbiBjb2xvcnMKICAgICBDb2xvciBhY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENv
bG9yKCkgY29uc3Q7CiAgICAgQ29sb3IgYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRD
b2xvcigpIGNvbnN0OwotICAgIENvbG9yIGluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91
bmRDb2xvcihib29sKSBjb25zdDsKKyAgICBDb2xvciBpbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25C
YWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKICAg
ICBDb2xvciBpbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSBjb25zdDsK
IAogICAgIC8vIEhpZ2hsaWdodGluZyBjb2xvcnMgZm9yIFRleHRNYXRjaGVzLgpAQCAtMjYxLDcg
KzI2MSw3IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVT
ZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSBjb25zdDsKIAogICAgIHZpcnR1YWwgQ29sb3IgcGxh
dGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCkgY29uc3Q7Ci0gICAg
dmlydHVhbCBDb2xvciBwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRD
b2xvcihib29sKSBjb25zdDsKKyAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVMaXN0
Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25z
PikgY29uc3Q7CiAgICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rp
b25Gb3JlZ3JvdW5kQ29sb3IoKSBjb25zdDsKICAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtSW5h
Y3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKCkgY29uc3Q7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUd0ay5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVHdGsuY3BwCmluZGV4IDA3ODU5MTBmOGJmZWU4
NWJlZDk3YTk5ZGZlZmRiMDlmYjU4ODk4ZjguLjk2NTg0YWE1NmE4YWUxZjJhY2Q0YmJlZWZjODU1
MmFlNjJhOWRmNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZUd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lR3Rr
LmNwcApAQCAtMTc0MSw3ICsxNzQxLDcgQEAgQ29sb3IgUmVuZGVyVGhlbWVHdGs6OnBsYXRmb3Jt
QWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcigpIGNvbnN0CiAgICAgcmV0dXJu
IHN0eWxlQ29sb3IoTGlzdEJveCwgc3RhdGljX2Nhc3Q8R3RrU3RhdGVGbGFncz4oR1RLX1NUQVRF
X0ZMQUdfU0VMRUNURUQgfCBHVEtfU1RBVEVfRkxBR19GT0NVU0VEKSwgU3R5bGVDb2xvckJhY2tn
cm91bmQpOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZUd0azo6cGxhdGZvcm1JbmFjdGl2ZUxpc3RC
b3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoYm9vbCkgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1l
R3RrOjpwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRp
b25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0CiB7CiAgICAgcmV0dXJuIHN0eWxlQ29s
b3IoTGlzdEJveCwgR1RLX1NUQVRFX0ZMQUdfU0VMRUNURUQsIFN0eWxlQ29sb3JCYWNrZ3JvdW5k
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUd0
ay5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lR3RrLmgKaW5kZXggMDBh
MTllMTMxYzI0ZWJkZWM3YmI1YTI1YjkwN2JjZGY2Mjc3OGE3ZS4uODEwMzNlN2UxYzA2YTk0MTI1
NjIyODhlZWE3OWZiM2M1MjkwMDAzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lR3RrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lR3RrLmgKQEAgLTc4LDcgKzc4LDcgQEAgcHVibGljOgogICAgIC8vIExpc3QgQm94IHNl
bGVjdGlvbiBjb2xvcgogICAgIENvbG9yIHBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkJh
Y2tncm91bmRDb2xvcigpIGNvbnN0IG92ZXJyaWRlOwogICAgIENvbG9yIHBsYXRmb3JtQWN0aXZl
TGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcigpIGNvbnN0IG92ZXJyaWRlOwotICAgIENv
bG9yIHBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKGJvb2wp
IGNvbnN0IG92ZXJyaWRlOworICAgIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0
aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Qg
b3ZlcnJpZGU7CiAgICAgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3Jl
Z3JvdW5kQ29sb3IoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIFNlY29uZHMgY2FyZXRCbGlua0lu
dGVydmFsKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGhlbWVNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZU1hYy5oCmluZGV4IDNhODYzMTExMmM3YmFjYmM5MzY0OGRhODg1NGY1NmU2N2I3YzBmYzgu
LjUxZmNkYzJmZDNjMDdhYjQwNGMzOGJjMWNlZjA1N2UyODdkNjUxMjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oCkBAIC01Nyw3ICs1Nyw3IEBAIHB1YmxpYzoK
ICAgICBDb2xvciBwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCkgY29u
c3QgZmluYWw7CiAgICAgQ29sb3IgcGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dy
b3VuZENvbG9yKCkgY29uc3QgZmluYWw7CiAgICAgQ29sb3IgcGxhdGZvcm1BY3RpdmVMaXN0Qm94
U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKCkgY29uc3QgZmluYWw7Ci0gICAgQ29sb3IgcGxhdGZv
cm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoYm9vbCkgY29uc3QgZmlu
YWw7CisgICAgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5k
Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKICAgICBD
b2xvciBwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcigpIGNv
bnN0IGZpbmFsOwogICAgIENvbG9yIHBsYXRmb3JtRm9jdXNSaW5nQ29sb3IoT3B0aW9uU2V0PFN0
eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lTWFjLm1tCmluZGV4IDJmYTNkNDY5OTRlMzNjOWZmYTE3ODhhYjFiNThi
MWU0ZDY2YjFjNDQuLjA0MmUxODJhMGRhOWM2ZTgyNTRlNGQwNTI2YmU2MzViOGQzNGFiZDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KQEAgLTIwMSw4ICsy
MDEsOSBAQCBSZW5kZXJUaGVtZU1hYzo6UmVuZGVyVGhlbWVNYWMoKQogCiBOU1ZpZXcgKlJlbmRl
clRoZW1lTWFjOjpkb2N1bWVudFZpZXdGb3IoY29uc3QgUmVuZGVyT2JqZWN0JiBvKSBjb25zdAog
eworICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKG8ucGFn
ZSgpLnVzZVN5c3RlbUFwcGVhcmFuY2UoKSwgby5wYWdlKCkuZGVmYXVsdEFwcGVhcmFuY2UoKSk7
CiAgICAgQ29udHJvbFN0YXRlcyBzdGF0ZXMoZXh0cmFjdENvbnRyb2xTdGF0ZXNGb3JSZW5kZXJl
cihvKSk7Ci0gICAgcmV0dXJuIFRoZW1lTWFjOjplbnN1cmVkVmlldygmby52aWV3KCkuZnJhbWVW
aWV3KCksIHN0YXRlcywgby5wYWdlKCkudXNlU3lzdGVtQXBwZWFyYW5jZSgpKTsKKyAgICByZXR1
cm4gVGhlbWVNYWM6OmVuc3VyZWRWaWV3KCZvLnZpZXcoKS5mcmFtZVZpZXcoKSwgc3RhdGVzKTsK
IH0KIAogI2lmIEVOQUJMRShWSURFTykKQEAgLTMyMiw5ICszMjMsMTEgQEAgQ29sb3IgUmVuZGVy
VGhlbWVNYWM6OnBsYXRmb3JtRm9jdXNSaW5nQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9w
dGlvbnM+IG9wdGkKICAgICByZXR1cm4gc3lzdGVtQ29sb3IoQ1NTVmFsdWVXZWJraXRGb2N1c1Jp
bmdDb2xvciwgb3B0aW9ucyk7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUlu
YWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihib29sIHVzZVN5c3RlbUFwcGVh
cmFuY2UpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1JbmFjdGl2ZUxpc3RC
b3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+
IG9wdGlvbnMpIGNvbnN0CiB7Ci0gICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2Nh
bEFwcGVhcmFuY2UodXNlU3lzdGVtQXBwZWFyYW5jZSk7CisgICAgY29uc3QgYm9vbCB1c2VTeXN0
ZW1BcHBlYXJhbmNlID0gb3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VT
eXN0ZW1BcHBlYXJhbmNlKTsKKyAgICBjb25zdCBib29sIHVzZURlZmF1bHRBcHBlYXJhbmNlID0g
b3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VEZWZhdWx0QXBwZWFyYW5j
ZSk7CisgICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2UodXNl
U3lzdGVtQXBwZWFyYW5jZSwgdXNlRGVmYXVsdEFwcGVhcmFuY2UpOwogICAgIHJldHVybiBwbGF0
Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCk7CiB9CiAKQEAgLTQzMSw5ICs0
MzQsMTAgQEAgdm9pZCBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1Db2xvcnNEaWRDaGFuZ2UoKQog
Q29sb3IgUmVuZGVyVGhlbWVNYWM6OnN5c3RlbUNvbG9yKENTU1ZhbHVlSUQgY3NzVmFsdWVJRCwg
T3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7CiAgICAgY29u
c3QgYm9vbCB1c2VTeXN0ZW1BcHBlYXJhbmNlID0gb3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9y
OjpPcHRpb25zOjpVc2VTeXN0ZW1BcHBlYXJhbmNlKTsKKyAgICBjb25zdCBib29sIHVzZURlZmF1
bHRBcHBlYXJhbmNlID0gb3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VE
ZWZhdWx0QXBwZWFyYW5jZSk7CiAgICAgY29uc3QgYm9vbCBmb3JWaXNpdGVkTGluayA9IG9wdGlv
bnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6Rm9yVmlzaXRlZExpbmspOwogCi0gICAg
TG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2UodXNlU3lzdGVtQXBw
ZWFyYW5jZSk7CisgICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFu
Y2UodXNlU3lzdGVtQXBwZWFyYW5jZSwgdXNlRGVmYXVsdEFwcGVhcmFuY2UpOwogCiAgICAgLy8g
VGhlIHN5c3RlbSBjb2xvciBjYWNoZSBiZWxvdyBjYW4ndCBoYW5kbGUgdmlzaXRlZCBsaW5rcy4g
VGhlIG9ubHkgY29sb3IgdmFsdWUKICAgICAvLyB0aGF0IGNhcmVzIGFib3V0IHZpc2l0ZWQgbGlu
a3MgaXMgQ1NTVmFsdWVXZWJraXRMaW5rLCBzbyBoYW5kbGUgaXQgaGVyZS4KQEAgLTE0MTIsMTAg
KzE0MTYsMTEgQEAgdm9pZCBSZW5kZXJUaGVtZU1hYzo6c2V0UG9wdXBCdXR0b25DZWxsU3RhdGUo
Y29uc3QgUmVuZGVyT2JqZWN0JiBvLCBjb25zdCBJbnRTaXoKIAogdm9pZCBSZW5kZXJUaGVtZU1h
Yzo6cGFpbnRDZWxsQW5kU2V0Rm9jdXNlZEVsZW1lbnROZWVkc1JlcGFpbnRJZk5lY2Vzc2FyeShO
U0NlbGwqIGNlbGwsIGNvbnN0IFJlbmRlck9iamVjdCYgcmVuZGVyZXIsIGNvbnN0IFBhaW50SW5m
byYgcGFpbnRJbmZvLCBjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiB7CisgICAgTG9jYWxEZWZhdWx0
U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2UocmVuZGVyZXIucGFnZSgpLnVzZVN5c3Rl
bUFwcGVhcmFuY2UoKSwgcmVuZGVyZXIucGFnZSgpLmRlZmF1bHRBcHBlYXJhbmNlKCkpOwogICAg
IGJvb2wgc2hvdWxkRHJhd0ZvY3VzUmluZyA9IGlzRm9jdXNlZChyZW5kZXJlcikgJiYgcmVuZGVy
ZXIuc3R5bGUoKS5vdXRsaW5lU3R5bGVJc0F1dG8oKTsKICAgICBib29sIHNob3VsZFVzZUltYWdl
QnVmZmVyID0gcmVuZGVyZXIuc3R5bGUoKS5lZmZlY3RpdmVab29tKCkgIT0gMSB8fCByZW5kZXJl
ci5wYWdlKCkucGFnZVNjYWxlRmFjdG9yKCkgIT0gMTsKICAgICBib29sIHNob3VsZERyYXdDZWxs
ID0gdHJ1ZTsKLSAgICBpZiAoVGhlbWVNYWM6OmRyYXdDZWxsT3JGb2N1c1JpbmdXaXRoVmlld0lu
dG9Db250ZXh0KGNlbGwsIHBhaW50SW5mby5jb250ZXh0KCksIHJlY3QsIGRvY3VtZW50Vmlld0Zv
cihyZW5kZXJlciksIHNob3VsZERyYXdDZWxsLCBzaG91bGREcmF3Rm9jdXNSaW5nLCBzaG91bGRV
c2VJbWFnZUJ1ZmZlciwgcmVuZGVyZXIucGFnZSgpLmRldmljZVNjYWxlRmFjdG9yKCksIHJlbmRl
cmVyLnBhZ2UoKS51c2VTeXN0ZW1BcHBlYXJhbmNlKCkpKQorICAgIGlmIChUaGVtZU1hYzo6ZHJh
d0NlbGxPckZvY3VzUmluZ1dpdGhWaWV3SW50b0NvbnRleHQoY2VsbCwgcGFpbnRJbmZvLmNvbnRl
eHQoKSwgcmVjdCwgZG9jdW1lbnRWaWV3Rm9yKHJlbmRlcmVyKSwgc2hvdWxkRHJhd0NlbGwsIHNo
b3VsZERyYXdGb2N1c1JpbmcsIHNob3VsZFVzZUltYWdlQnVmZmVyLCByZW5kZXJlci5wYWdlKCku
ZGV2aWNlU2NhbGVGYWN0b3IoKSkpCiAgICAgICAgIHJlbmRlcmVyLnBhZ2UoKS5mb2N1c0NvbnRy
b2xsZXIoKS5zZXRGb2N1c2VkRWxlbWVudE5lZWRzUmVwYWludCgpOwogfQogCkBAIC0xNDkzLDYg
KzE0OTgsOCBAQCBib29sIFJlbmRlclRoZW1lTWFjOjpwYWludFNsaWRlclRodW1iKGNvbnN0IFJl
bmRlck9iamVjdCYgbywgY29uc3QgUGFpbnRJbmZvJiBwYQogICAgICAgICA/IHNsaWRlclRodW1i
VmVydGljYWwoKQogICAgICAgICA6IHNsaWRlclRodW1iSG9yaXpvbnRhbCgpOwogCisgICAgTG9j
YWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uoby5wYWdlKCkudXNlU3lz
dGVtQXBwZWFyYW5jZSgpLCBvLnBhZ2UoKS5kZWZhdWx0QXBwZWFyYW5jZSgpKTsKKwogICAgIExv
Y2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dCBsb2NhbENvbnRleHQocGFpbnRJbmZvLmNvbnRleHQo
KSk7CiAKICAgICAvLyBVcGRhdGUgdGhlIHZhcmlvdXMgc3RhdGVzIHdlIHJlc3BvbmQgdG8uCkBA
IC0xNTQ0LDcgKzE1NTEsNyBAQCBib29sIFJlbmRlclRoZW1lTWFjOjpwYWludFNsaWRlclRodW1i
KGNvbnN0IFJlbmRlck9iamVjdCYgbywgY29uc3QgUGFpbnRJbmZvJiBwYQogICAgIGJvb2wgc2hv
dWxkRHJhd0ZvY3VzUmluZyA9IGZhbHNlOwogICAgIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yID0g
by5wYWdlKCkuZGV2aWNlU2NhbGVGYWN0b3IoKTsKICAgICBib29sIHNob3VsZFVzZUltYWdlQnVm
ZmVyID0gZGV2aWNlU2NhbGVGYWN0b3IgIT0gMSB8fCB6b29tTGV2ZWwgIT0gMTsKLSAgICBUaGVt
ZU1hYzo6ZHJhd0NlbGxPckZvY3VzUmluZ1dpdGhWaWV3SW50b0NvbnRleHQoc2xpZGVyVGh1bWJD
ZWxsLCBwYWludEluZm8uY29udGV4dCgpLCB1bnpvb21lZFJlY3QsIHZpZXcsIHNob3VsZERyYXdD
ZWxsLCBzaG91bGREcmF3Rm9jdXNSaW5nLCBzaG91bGRVc2VJbWFnZUJ1ZmZlciwgZGV2aWNlU2Nh
bGVGYWN0b3IsIG8ucGFnZSgpLnVzZVN5c3RlbUFwcGVhcmFuY2UoKSk7CisgICAgVGhlbWVNYWM6
OmRyYXdDZWxsT3JGb2N1c1JpbmdXaXRoVmlld0ludG9Db250ZXh0KHNsaWRlclRodW1iQ2VsbCwg
cGFpbnRJbmZvLmNvbnRleHQoKSwgdW56b29tZWRSZWN0LCB2aWV3LCBzaG91bGREcmF3Q2VsbCwg
c2hvdWxkRHJhd0ZvY3VzUmluZywgc2hvdWxkVXNlSW1hZ2VCdWZmZXIsIGRldmljZVNjYWxlRmFj
dG9yKTsKICAgICBbc2xpZGVyVGh1bWJDZWxsIHNldENvbnRyb2xWaWV3Om5pbF07CiAKICAgICBy
ZXR1cm4gZmFsc2U7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>