<?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>185357</bug_id>
          
          <creation_ts>2018-05-05 15:02:25 -0700</creation_ts>
          <short_desc>[LFC] Add assertions for stale Display::Box geometry</short_desc>
          <delta_ts>2018-05-06 19:10:19 -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 Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>koivisto</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1421075</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2018-05-05 15:02:25 -0700</bug_when>
    <thetext>During layout we should never access stale geometry of other boxes (containing block etc).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1421097</commentid>
    <comment_count>1</comment_count>
      <attachid>339664</attachid>
    <who name="alan">zalan</who>
    <bug_when>2018-05-05 19:42:55 -0700</bug_when>
    <thetext>Created attachment 339664
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1421105</commentid>
    <comment_count>2</comment_count>
      <attachid>339669</attachid>
    <who name="alan">zalan</who>
    <bug_when>2018-05-05 20:52:54 -0700</bug_when>
    <thetext>Created attachment 339669
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1421151</commentid>
    <comment_count>3</comment_count>
      <attachid>339669</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-05-06 11:56:39 -0700</bug_when>
    <thetext>Comment on attachment 339669
Patch

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

&gt; Source/WebCore/layout/displaytree/DisplayBox.h:138
&gt; +#if !ASSERT_DISABLED
&gt; +    bool m_hasValidTop : 1;
&gt; +    bool m_hasValidLeft : 1;
&gt; +    bool m_hasValidWidth : 1;
&gt; +    bool m_hasValidHeight : 1;
&gt; +    bool m_hasValidMargin : 1;
&gt; +    bool m_hasValidBorder : 1;
&gt; +    bool m_hasValidPadding : 1;
&gt; +#endif

I would just use bools. There is no need to optimize memory use of the debug build.

Do all these really need separate flags?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1421153</commentid>
    <comment_count>4</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2018-05-06 12:34:10 -0700</bug_when>
    <thetext>(In reply to Antti Koivisto from comment #3)
&gt; Comment on attachment 339669 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=339669&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/layout/displaytree/DisplayBox.h:138
&gt; &gt; +#if !ASSERT_DISABLED
&gt; &gt; +    bool m_hasValidTop : 1;
&gt; &gt; +    bool m_hasValidLeft : 1;
&gt; &gt; +    bool m_hasValidWidth : 1;
&gt; &gt; +    bool m_hasValidHeight : 1;
&gt; &gt; +    bool m_hasValidMargin : 1;
&gt; &gt; +    bool m_hasValidBorder : 1;
&gt; &gt; +    bool m_hasValidPadding : 1;
&gt; &gt; +#endif
&gt; 
&gt; I would just use bools. There is no need to optimize memory use of the debug
&gt; build.
&gt; 
&gt; Do all these really need separate flags?
For block context, I could definitely collapse top with left and the padding with border/margin since we compute them in one go, but other formatting contexts might differ. I guess padding/border/margin should always be collapsible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1421170</commentid>
    <comment_count>5</comment_count>
      <attachid>339694</attachid>
    <who name="alan">zalan</who>
    <bug_when>2018-05-06 16:28:00 -0700</bug_when>
    <thetext>Created attachment 339694
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1421185</commentid>
    <comment_count>6</comment_count>
      <attachid>339694</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-05-06 19:09:22 -0700</bug_when>
    <thetext>Comment on attachment 339694
Patch

Clearing flags on attachment: 339694

Committed r231401: &lt;https://trac.webkit.org/changeset/231401&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1421186</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-05-06 19:09:23 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1421187</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-05-06 19:10:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/40013012&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339664</attachid>
            <date>2018-05-05 19:42:55 -0700</date>
            <delta_ts>2018-05-05 19:51:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185357-20180505194254.patch</filename>
            <type>text/plain</type>
            <size>12623</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxMzk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjkzY2NmMGI2YjIxZmQ4
YzZmMWMwMmI4MDhkOWY4MTA5NGI0N2E5YS4uNDFkNWIyZTkxMDRhZmRjZTQ4NzIyOTdkZTNkYWQ5
ZTA5NWY4Njg4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDE4LTA1LTA1ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ10gQWRkIGFzc2VydGlv
bnMgZm9yIHN0YWxlIERpc3BsYXk6OkJveCBnZW9tZXRyeQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg1MzU3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRW5zdXJlIHRoYXQgd2UgZG9uJ3QgYWNjZXNzIHN0
YWxlIGdlb21ldHJ5IG9mIG90aGVyIGJveGVzIGR1cmluZyBsYXlvdXQuCisgICAgICAgIEZvciBl
eGFtcGxlLCBpbiBvcmRlciB0byBsYXlvdXQgYSBibG9jayBjaGlsZCB3ZSBuZWVkIHRoZSBjb250
YWluaW5nIGJsb2NrJ3MgY29udGVudCBib3ggdG9wL2xlZnQgYW5kIHdpZHRoIChidXQgbm90IHRo
ZSBoZWlnaHQpCisKKyAgICAgICAgKiBsYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxheUJveC5oOgor
ICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6Qm94OjppbnZhbGlkYXRlVG9wKToKKyAgICAgICAg
KFdlYkNvcmU6OkRpc3BsYXk6OkJveDo6aW52YWxpZGF0ZUxlZnQpOgorICAgICAgICAoV2ViQ29y
ZTo6RGlzcGxheTo6Qm94OjppbnZhbGlkYXRlV2lkdGgpOgorICAgICAgICAoV2ViQ29yZTo6RGlz
cGxheTo6Qm94OjppbnZhbGlkYXRlSGVpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6
OkJveDo6aGFzVmFsaWRQb3NpdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
OjpCb3g6Omhhc1ZhbGlkU2l6ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpC
b3g6Omhhc1ZhbGlkR2VvbWV0cnkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6
Qm94OjppbnZhbGlkYXRlUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6Qm94
OjppbnZhbGlkYXRlU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpCb3g6OnNldEhh
c1ZhbGlkUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6Qm94OjpzZXRIYXNW
YWxpZFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6Qm94OjpzZXRIYXNWYWxpZEdl
b21ldHJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6OkJveDo6cmVjdCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpCb3g6OnRvcCBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpEaXNwbGF5OjpCb3g6OmxlZnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxh
eTo6Qm94Ojpib3R0b20gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6Qm94Ojpy
aWdodCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpCb3g6OnRvcExlZnQgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6Qm94Ojpib3R0b21SaWdodCBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpCb3g6OnNpemUgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6RGlzcGxheTo6Qm94Ojp3aWR0aCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpE
aXNwbGF5OjpCb3g6OmhlaWdodCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpC
b3g6OnNldFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6Qm94OjpzZXRUb3BMZWZ0
KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6OkJveDo6c2V0VG9wKToKKyAgICAgICAgKFdl
YkNvcmU6OkRpc3BsYXk6OkJveDo6c2V0TGVmdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
OjpCb3g6OnNldFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6Qm94OjpzZXRXaWR0
aCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpCb3g6OnNldEhlaWdodCk6CisKIDIwMTgt
MDUtMDIgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBJT1N1
cmZhY2VzIGZvciBDb3JlSW1hZ2Ugb3BlcmF0aW9ucyB3aGVyZSBwb3NzaWJsZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlCb3guY3BwIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlCb3guY3BwCmluZGV4IGVhYzNi
YWYxODNlZjQ5YWUyYmY1MTAwYWZiNTkzNjA2ZDBmZTA2MWIuLmNjZGY2NDgzY2QxMmVjZDBjYzUz
ODQ0OWYxZjUyZjQ1OGUzOTZlNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9k
aXNwbGF5dHJlZS9EaXNwbGF5Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZGlz
cGxheXRyZWUvRGlzcGxheUJveC5jcHAKQEAgLTQ1LDYgKzQ1LDcgQEAgQm94Ojp+Qm94KCkKIAog
TGF5b3V0UmVjdCBCb3g6Om1hcmdpbkJveCgpIGNvbnN0CiB7CisgICAgQVNTRVJUKG1faGFzVmFs
aWRNYXJnaW4pOwogICAgIGF1dG8gbWFyZ2luQm94ID0gcmVjdCgpOwogICAgIGF1dG8gdG9wTGVm
dE1hcmdpbiA9IExheW91dFNpemUobV9tYXJnaW5MZWZ0LCBtX21hcmdpblRvcCk7CiAgICAgbWFy
Z2luQm94LmluZmxhdGUodG9wTGVmdE1hcmdpbik7CkBAIC02MSw2ICs2Miw3IEBAIExheW91dFJl
Y3QgQm94Ojpib3JkZXJCb3goKSBjb25zdAogCiBMYXlvdXRSZWN0IEJveDo6cGFkZGluZ0JveCgp
IGNvbnN0CiB7CisgICAgQVNTRVJUKG1faGFzVmFsaWRCb3JkZXIpOwogICAgIGF1dG8gcGFkZGlu
Z0JveCA9IGJvcmRlckJveCgpOwogICAgIGF1dG8gdG9wTGVmdEJvcmRlciA9IExheW91dFNpemUo
bV9ib3JkZXJMZWZ0LCBtX2JvcmRlclRvcCk7CiAgICAgcGFkZGluZ0JveC5pbmZsYXRlKC10b3BM
ZWZ0Qm9yZGVyKTsKQEAgLTcyLDYgKzc0LDcgQEAgTGF5b3V0UmVjdCBCb3g6OnBhZGRpbmdCb3go
KSBjb25zdAogCiBMYXlvdXRSZWN0IEJveDo6Y29udGVudEJveCgpIGNvbnN0CiB7CisgICAgQVNT
RVJUKG1faGFzVmFsaWRQYWRkaW5nKTsKICAgICBhdXRvIGNvbnRlbnRCb3ggPSBwYWRkaW5nQm94
KCk7CiAgICAgYXV0byB0b3BMZWZ0UGFkZGluZyA9IExheW91dFNpemUobV9wYWRkaW5nTGVmdCwg
bV9wYWRkaW5nVG9wKTsKICAgICBjb250ZW50Qm94LmluZmxhdGUoLXRvcExlZnRQYWRkaW5nKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5Qm94
LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxheUJveC5oCmluZGV4
IDczZWE2MzA1OTliZTkwNzNkMTI2ZTNjMmY5OTU3MjZhZDY5Mjg4NjEuLjlhNmFkNTNmYjJkOTIw
ZWQwNTA0M2FhNTkxYjY4MDYzNWJmNzE5NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5Qm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Rpc3BsYXl0cmVlL0Rpc3BsYXlCb3guaApAQCAtNDcsMjQgKzQ3LDI0IEBAIHB1YmxpYzoKIAog
ICAgIH5Cb3goKTsKIAotICAgIExheW91dFJlY3QgcmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVj
dDsgfQorICAgIExheW91dFJlY3QgcmVjdCgpIGNvbnN0OwogCi0gICAgTGF5b3V0VW5pdCB0b3Ao
KSBjb25zdCB7IHJldHVybiBtX3JlY3QueSgpOyB9Ci0gICAgTGF5b3V0VW5pdCBsZWZ0KCkgY29u
c3QgeyByZXR1cm4gbV9yZWN0LngoKTsgfQotICAgIExheW91dFVuaXQgYm90dG9tKCkgY29uc3Qg
eyByZXR1cm4gbV9yZWN0Lm1heFkoKTsgfQotICAgIExheW91dFVuaXQgcmlnaHQoKSBjb25zdCB7
IHJldHVybiBtX3JlY3QubWF4WCgpOyB9CisgICAgTGF5b3V0VW5pdCB0b3AoKSBjb25zdDsKKyAg
ICBMYXlvdXRVbml0IGxlZnQoKSBjb25zdDsKKyAgICBMYXlvdXRVbml0IGJvdHRvbSgpIGNvbnN0
OworICAgIExheW91dFVuaXQgcmlnaHQoKSBjb25zdDsKIAotICAgIExheW91dFBvaW50IHRvcExl
ZnQoKSBjb25zdCB7IHJldHVybiBtX3JlY3QubG9jYXRpb24oKTsgfQotICAgIExheW91dFBvaW50
IGJvdHRvbVJpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9yZWN0LmxvY2F0aW9uKCk7IH0KKyAgICBM
YXlvdXRQb2ludCB0b3BMZWZ0KCkgY29uc3Q7CisgICAgTGF5b3V0UG9pbnQgYm90dG9tUmlnaHQo
KSBjb25zdDsKIAotICAgIExheW91dFNpemUgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVjdC5z
aXplKCk7IH0KLSAgICBMYXlvdXRVbml0IHdpZHRoKCkgY29uc3QgeyByZXR1cm4gbV9yZWN0Lndp
ZHRoKCk7IH0KLSAgICBMYXlvdXRVbml0IGhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVjdC5o
ZWlnaHQoKTsgfQorICAgIExheW91dFNpemUgc2l6ZSgpIGNvbnN0OworICAgIExheW91dFVuaXQg
d2lkdGgoKSBjb25zdDsKKyAgICBMYXlvdXRVbml0IGhlaWdodCgpIGNvbnN0OwogCi0gICAgTGF5
b3V0VW5pdCBtYXJnaW5Ub3AoKSBjb25zdCB7IHJldHVybiBtX21hcmdpblRvcDsgfQotICAgIExh
eW91dFVuaXQgbWFyZ2luTGVmdCgpIGNvbnN0IHsgcmV0dXJuIG1fbWFyZ2luTGVmdDsgfQotICAg
IExheW91dFVuaXQgbWFyZ2luQm90dG9tKCkgY29uc3QgeyByZXR1cm4gbV9tYXJnaW5Cb3R0b207
IH0KLSAgICBMYXlvdXRVbml0IG1hcmdpblJpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9tYXJnaW5S
aWdodDsgfQorICAgIExheW91dFVuaXQgbWFyZ2luVG9wKCkgY29uc3Q7CisgICAgTGF5b3V0VW5p
dCBtYXJnaW5MZWZ0KCkgY29uc3Q7CisgICAgTGF5b3V0VW5pdCBtYXJnaW5Cb3R0b20oKSBjb25z
dDsKKyAgICBMYXlvdXRVbml0IG1hcmdpblJpZ2h0KCkgY29uc3Q7CiAKICAgICBMYXlvdXRSZWN0
IG1hcmdpbkJveCgpIGNvbnN0OwogICAgIExheW91dFJlY3QgYm9yZGVyQm94KCkgY29uc3Q7CkBA
IC03NCwzMCArNzQsNDQgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBCb3goKTsKIAotICAgIHZv
aWQgc2V0UmVjdChjb25zdCBMYXlvdXRSZWN0JiByZWN0KSB7IG1fcmVjdCA9IHJlY3Q7IH0KLSAg
ICB2b2lkIHNldFRvcExlZnQoY29uc3QgTGF5b3V0UG9pbnQmIHRvcExlZnQpIHsgbV9yZWN0LnNl
dExvY2F0aW9uKHRvcExlZnQpOyB9Ci0gICAgdm9pZCBzZXRUb3AoTGF5b3V0VW5pdCB0b3ApIHsg
bV9yZWN0LnNldFkodG9wKTsgfQotICAgIHZvaWQgc2V0TGVmdChMYXlvdXRVbml0IGxlZnQpIHsg
bV9yZWN0LnNldFgobGVmdCk7IH0KLSAgICB2b2lkIHNldFNpemUoY29uc3QgTGF5b3V0U2l6ZSYg
c2l6ZSkgeyBtX3JlY3Quc2V0U2l6ZShzaXplKTsgfQotICAgIHZvaWQgc2V0V2lkdGgoTGF5b3V0
VW5pdCB3aWR0aCkgeyBtX3JlY3Quc2V0V2lkdGgod2lkdGgpOyB9Ci0gICAgdm9pZCBzZXRIZWln
aHQoTGF5b3V0VW5pdCBoZWlnaHQpIHsgbV9yZWN0LnNldEhlaWdodChoZWlnaHQpOyB9Ci0KLSAg
ICB2b2lkIHNldE1hcmdpblRvcChMYXlvdXRVbml0IG1hcmdpblRvcCkgeyBtX21hcmdpblRvcCA9
IG1hcmdpblRvcDsgfQotICAgIHZvaWQgc2V0TWFyZ2luTGVmdChMYXlvdXRVbml0IG1hcmdpbkxl
ZnQpIHsgbV9tYXJnaW5MZWZ0ID0gbWFyZ2luTGVmdDsgfQotICAgIHZvaWQgc2V0TWFyZ2luQm90
dG9tKExheW91dFVuaXQgbWFyZ2luQm90dG9tKSB7IG1fbWFyZ2luQm90dG9tID0gbWFyZ2luQm90
dG9tOyB9Ci0gICAgdm9pZCBzZXRNYXJnaW5SaWdodChMYXlvdXRVbml0IG1hcmdpblJpZ2h0KSB7
IG1fbWFyZ2luUmlnaHQgPSBtYXJnaW5SaWdodDsgfQotCi0gICAgdm9pZCBzZXRCb3JkZXJUb3Ao
TGF5b3V0VW5pdCBib3JkZXJUb3ApIHsgbV9ib3JkZXJUb3AgPSBib3JkZXJUb3A7IH0KLSAgICB2
b2lkIHNldEJvcmRlckxlZnQoTGF5b3V0VW5pdCBib3JkZXJMZWZ0KSB7IG1fYm9yZGVyTGVmdCA9
IGJvcmRlckxlZnQ7IH0KLSAgICB2b2lkIHNldEJvcmRlckJvdHRvbShMYXlvdXRVbml0IGJvcmRl
ckJvdHRvbSkgeyBtX2JvcmRlckJvdHRvbSA9IGJvcmRlckJvdHRvbTsgfQotICAgIHZvaWQgc2V0
Qm9yZGVyUmlnaHQoTGF5b3V0VW5pdCBib3JkZXJSaWdodCkgeyBtX2JvcmRlclJpZ2h0ID0gYm9y
ZGVyUmlnaHQ7IH0KLQotICAgIHZvaWQgc2V0UGFkZGluZ1RvcChMYXlvdXRVbml0IHBhZGRpbmdU
b3ApIHsgbV9wYWRkaW5nVG9wID0gcGFkZGluZ1RvcDsgfQotICAgIHZvaWQgc2V0UGFkZGluZ0xl
ZnQoTGF5b3V0VW5pdCBwYWRkaW5nTGVmdCkgeyBtX3BhZGRpbmdMZWZ0ID0gcGFkZGluZ0xlZnQ7
IH0KLSAgICB2b2lkIHNldFBhZGRpbmdCb3R0b20oTGF5b3V0VW5pdCBwYWRkaW5nQm90dG9tKSB7
IG1fcGFkZGluZ0JvdHRvbSA9IHBhZGRpbmdCb3R0b207IH0KLSAgICB2b2lkIHNldFBhZGRpbmdS
aWdodChMYXlvdXRVbml0IHBhZGRpbmdSaWdodCkgeyBtX3BhZGRpbmdSaWdodCA9IHBhZGRpbmdS
aWdodDsgfQorICAgIHZvaWQgc2V0UmVjdChjb25zdCBMYXlvdXRSZWN0Jik7CisgICAgdm9pZCBz
ZXRUb3BMZWZ0KGNvbnN0IExheW91dFBvaW50Jik7CisgICAgdm9pZCBzZXRUb3AoTGF5b3V0VW5p
dCk7CisgICAgdm9pZCBzZXRMZWZ0KExheW91dFVuaXQpOworICAgIHZvaWQgc2V0U2l6ZShjb25z
dCBMYXlvdXRTaXplJik7CisgICAgdm9pZCBzZXRXaWR0aChMYXlvdXRVbml0KTsKKyAgICB2b2lk
IHNldEhlaWdodChMYXlvdXRVbml0KTsKKworICAgIHZvaWQgc2V0TWFyZ2luKExheW91dFVuaXQg
bWFyZ2luVG9wLCBMYXlvdXRVbml0IG1hcmdpbkxlZnQsIExheW91dFVuaXQgbWFyZ2luUmlnaHQs
IExheW91dFVuaXQgbWFyZ2luQm90dG9tKTsKKyAgICB2b2lkIHNldEJvcmRlcihMYXlvdXRVbml0
IGJvcmRlclRvcCwgTGF5b3V0VW5pdCBib3JkZXJMZWZ0LCBMYXlvdXRVbml0IGJvcmRlclJpZ2h0
LCBMYXlvdXRVbml0IGJvcmRlckJvdHRvbSk7CisgICAgdm9pZCBzZXRQYWRkaW5nKExheW91dFVu
aXQgcGFkZGluZ1RvcCwgTGF5b3V0VW5pdCBwYWRkaW5nTGVmdCwgTGF5b3V0VW5pdCBwYWRkaW5n
UmlnaHQsIExheW91dFVuaXQgcGFkZGluZ0JvdHRvbSk7CisKKyNpZiAhQVNTRVJUX0RJU0FCTEVE
CisgICAgdm9pZCBpbnZhbGlkYXRlVG9wKCkgeyBtX2hhc1ZhbGlkVG9wID0gZmFsc2U7IH0KKyAg
ICB2b2lkIGludmFsaWRhdGVMZWZ0KCkgeyBtX2hhc1ZhbGlkTGVmdCA9IGZhbHNlOyB9CisgICAg
dm9pZCBpbnZhbGlkYXRlV2lkdGgoKSB7IG1faGFzVmFsaWRXaWR0aCA9IGZhbHNlOyB9CisgICAg
dm9pZCBpbnZhbGlkYXRlSGVpZ2h0KCkgeyBtX2hhc1ZhbGlkSGVpZ2h0ID0gZmFsc2U7IH0KKyAg
ICB2b2lkIGludmFsaWRhdGVQb3NpdGlvbigpOworICAgIHZvaWQgaW52YWxpZGF0ZVNpemUoKTsK
KyAgICB2b2lkIGludmFsaWRhdGVNYXJnaW4oKSB7IG1faGFzVmFsaWRNYXJnaW4gPSBmYWxzZTsg
fQorICAgIHZvaWQgaW52YWxpZGF0ZUJvcmRlcigpIHsgbV9oYXNWYWxpZEJvcmRlciA9IGZhbHNl
OyB9CisgICAgdm9pZCBpbnZhbGlkYXRlUGFkZGluZygpIHsgbV9oYXNWYWxpZFBhZGRpbmcgPSBm
YWxzZTsgfQorCisgICAgYm9vbCBoYXNWYWxpZFBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9o
YXNWYWxpZFRvcCAmJiBtX2hhc1ZhbGlkTGVmdDsgfQorICAgIGJvb2wgaGFzVmFsaWRTaXplKCkg
Y29uc3QgeyByZXR1cm4gbV9oYXNWYWxpZFdpZHRoICYmIG1faGFzVmFsaWRIZWlnaHQ7IH0KKyAg
ICBib29sIGhhc1ZhbGlkR2VvbWV0cnkoKSBjb25zdCB7IHJldHVybiBoYXNWYWxpZFBvc2l0aW9u
KCkgJiYgaGFzVmFsaWRTaXplKCk7IH0KKyAgICAKKyAgICB2b2lkIHNldEhhc1ZhbGlkUG9zaXRp
b24oKTsKKyAgICB2b2lkIHNldEhhc1ZhbGlkU2l6ZSgpOworICAgIHZvaWQgc2V0SGFzVmFsaWRH
ZW9tZXRyeSgpOworICAgIAorICAgIHZvaWQgc2V0SGFzVmFsaWRNYXJnaW4oKTsKKyAgICB2b2lk
IHNldEhhc1ZhbGlkQm9yZGVyKCk7CisgICAgdm9pZCBzZXRIYXNWYWxpZFBhZGRpbmcoKTsKKyNl
bmRpZgogCiAgICAgTGF5b3V0UmVjdCBtX3JlY3Q7CisKICAgICBMYXlvdXRVbml0IG1fbWFyZ2lu
VG9wOwogICAgIExheW91dFVuaXQgbV9tYXJnaW5MZWZ0OwogICAgIExheW91dFVuaXQgbV9tYXJn
aW5Cb3R0b207CkBAIC0xMTIsOCArMTI2LDIyMyBAQCBwcml2YXRlOgogICAgIExheW91dFVuaXQg
bV9wYWRkaW5nTGVmdDsKICAgICBMYXlvdXRVbml0IG1fcGFkZGluZ0JvdHRvbTsKICAgICBMYXlv
dXRVbml0IG1fcGFkZGluZ1JpZ2h0OworCisjaWYgIUFTU0VSVF9ESVNBQkxFRAorICAgIGJvb2wg
bV9oYXNWYWxpZFRvcCA6IDE7CisgICAgYm9vbCBtX2hhc1ZhbGlkTGVmdCA6IDE7CisgICAgYm9v
bCBtX2hhc1ZhbGlkV2lkdGggOiAxOworICAgIGJvb2wgbV9oYXNWYWxpZEhlaWdodCA6IDE7Cisg
ICAgYm9vbCBtX2hhc1ZhbGlkTWFyZ2luIDogMTsKKyAgICBib29sIG1faGFzVmFsaWRCb3JkZXIg
OiAxOworICAgIGJvb2wgbV9oYXNWYWxpZFBhZGRpbmcgOiAxOworI2VuZGlmCiB9OwogCisjaWYg
IUFTU0VSVF9ESVNBQkxFRAoraW5saW5lIHZvaWQgQm94OjppbnZhbGlkYXRlUG9zaXRpb24oKQor
eworICAgIGludmFsaWRhdGVUb3AoKTsKKyAgICBpbnZhbGlkYXRlTGVmdCgpOworfQorCitpbmxp
bmUgdm9pZCBCb3g6OmludmFsaWRhdGVTaXplKCkKK3sKKyAgICBpbnZhbGlkYXRlV2lkdGgoKTsK
KyAgICBpbnZhbGlkYXRlSGVpZ2h0KCk7Cit9CisKK2lubGluZSB2b2lkIEJveDo6c2V0SGFzVmFs
aWRQb3NpdGlvbigpCit7CisgICAgbV9oYXNWYWxpZFRvcCA9IHRydWU7CisgICAgbV9oYXNWYWxp
ZExlZnQgPSB0cnVlOworfQorCitpbmxpbmUgdm9pZCBCb3g6OnNldEhhc1ZhbGlkU2l6ZSgpCit7
CisgICAgbV9oYXNWYWxpZFdpZHRoID0gdHJ1ZTsKKyAgICBtX2hhc1ZhbGlkSGVpZ2h0ID0gdHJ1
ZTsKK30KKworaW5saW5lIHZvaWQgQm94OjpzZXRIYXNWYWxpZEdlb21ldHJ5KCkKK3sKKyAgICBz
ZXRIYXNWYWxpZFBvc2l0aW9uKCk7CisgICAgc2V0SGFzVmFsaWRTaXplKCk7Cit9CisjZW5kaWYK
KworaW5saW5lIExheW91dFJlY3QgQm94OjpyZWN0KCkgY29uc3QKK3sKKyAgICBBU1NFUlQoaGFz
VmFsaWRHZW9tZXRyeSgpKTsKKyAgICByZXR1cm4gbV9yZWN0OworfQorCitpbmxpbmUgTGF5b3V0
VW5pdCBCb3g6OnRvcCgpIGNvbnN0Cit7CisgICAgQVNTRVJUKG1faGFzVmFsaWRUb3ApOworICAg
IHJldHVybiBtX3JlY3QueSgpOworfQorCitpbmxpbmUgTGF5b3V0VW5pdCBCb3g6OmxlZnQoKSBj
b25zdAoreworICAgIEFTU0VSVChoYXNWYWxpZFBvc2l0aW9uKCkpOworICAgIHJldHVybiBtX3Jl
Y3QueCgpOworfQorCitpbmxpbmUgTGF5b3V0VW5pdCBCb3g6OmJvdHRvbSgpIGNvbnN0Cit7Cisg
ICAgQVNTRVJUKG1faGFzVmFsaWRUb3AgJiYgbV9oYXNWYWxpZEhlaWdodCk7CisgICAgcmV0dXJu
IG1fcmVjdC5tYXhZKCk7Cit9CisKK2lubGluZSBMYXlvdXRVbml0IEJveDo6cmlnaHQoKSBjb25z
dAoreworICAgIEFTU0VSVChtX2hhc1ZhbGlkTGVmdCAmJiBtX2hhc1ZhbGlkV2lkdGgpOworICAg
IHJldHVybiBtX3JlY3QubWF4WCgpOworfQorCitpbmxpbmUgTGF5b3V0UG9pbnQgQm94Ojp0b3BM
ZWZ0KCkgY29uc3QKK3sKKyAgICBBU1NFUlQoaGFzVmFsaWRQb3NpdGlvbigpKTsKKyAgICByZXR1
cm4gbV9yZWN0LmxvY2F0aW9uKCk7Cit9CisKK2lubGluZSBMYXlvdXRQb2ludCBCb3g6OmJvdHRv
bVJpZ2h0KCkgY29uc3QKK3sKKyAgICBBU1NFUlQoaGFzVmFsaWRHZW9tZXRyeSgpKTsKKyAgICBy
ZXR1cm4gbV9yZWN0Lm1heFhNYXhZQ29ybmVyKCk7Cit9CisKK2lubGluZSBMYXlvdXRTaXplIEJv
eDo6c2l6ZSgpIGNvbnN0Cit7CisgICAgQVNTRVJUKGhhc1ZhbGlkU2l6ZSgpKTsKKyAgICByZXR1
cm4gbV9yZWN0LnNpemUoKTsKK30KKworaW5saW5lIExheW91dFVuaXQgQm94Ojp3aWR0aCgpIGNv
bnN0Cit7CisgICAgQVNTRVJUKG1faGFzVmFsaWRXaWR0aCk7CisgICAgcmV0dXJuIG1fcmVjdC53
aWR0aCgpOworfQorCitpbmxpbmUgTGF5b3V0VW5pdCBCb3g6OmhlaWdodCgpIGNvbnN0Cit7Cisg
ICAgQVNTRVJUKG1faGFzVmFsaWRIZWlnaHQpOworICAgIHJldHVybiBtX3JlY3QuaGVpZ2h0KCk7
Cit9CisKK2lubGluZSB2b2lkIEJveDo6c2V0UmVjdChjb25zdCBMYXlvdXRSZWN0JiByZWN0KQor
eworI2lmICFBU1NFUlRfRElTQUJMRUQKKyAgICBzZXRIYXNWYWxpZEdlb21ldHJ5KCk7CisjZW5k
aWYKKyAgICBtX3JlY3QgPSByZWN0OworfQorCitpbmxpbmUgdm9pZCBCb3g6OnNldFRvcExlZnQo
Y29uc3QgTGF5b3V0UG9pbnQmIHRvcExlZnQpCit7CisjaWYgIUFTU0VSVF9ESVNBQkxFRAorICAg
IHNldEhhc1ZhbGlkUG9zaXRpb24oKTsKKyNlbmRpZgorICAgIG1fcmVjdC5zZXRMb2NhdGlvbih0
b3BMZWZ0KTsKK30KKworaW5saW5lIHZvaWQgQm94OjpzZXRUb3AoTGF5b3V0VW5pdCB0b3ApCit7
CisjaWYgIUFTU0VSVF9ESVNBQkxFRAorICAgIG1faGFzVmFsaWRUb3AgPSB0cnVlOworI2VuZGlm
CisgICAgbV9yZWN0LnNldFkodG9wKTsKK30KKworaW5saW5lIHZvaWQgQm94OjpzZXRMZWZ0KExh
eW91dFVuaXQgbGVmdCkKK3sKKyNpZiAhQVNTRVJUX0RJU0FCTEVECisgICAgbV9oYXNWYWxpZExl
ZnQgPSB0cnVlOworI2VuZGlmCisgICAgbV9yZWN0LnNldFgobGVmdCk7Cit9CisKK2lubGluZSB2
b2lkIEJveDo6c2V0U2l6ZShjb25zdCBMYXlvdXRTaXplJiBzaXplKQoreworI2lmICFBU1NFUlRf
RElTQUJMRUQKKyAgICBzZXRIYXNWYWxpZFNpemUoKTsKKyNlbmRpZgorICAgIG1fcmVjdC5zZXRT
aXplKHNpemUpOworfQorCitpbmxpbmUgdm9pZCBCb3g6OnNldFdpZHRoKExheW91dFVuaXQgd2lk
dGgpCit7CisjaWYgIUFTU0VSVF9ESVNBQkxFRAorICAgIG1faGFzVmFsaWRXaWR0aCA9IHRydWU7
CisjZW5kaWYKKyAgICBtX3JlY3Quc2V0V2lkdGgod2lkdGgpOworfQorCitpbmxpbmUgdm9pZCBC
b3g6OnNldEhlaWdodChMYXlvdXRVbml0IGhlaWdodCkKK3sKKyNpZiAhQVNTRVJUX0RJU0FCTEVE
CisgICAgbV9oYXNWYWxpZEhlaWdodCA9IHRydWU7CisjZW5kaWYKKyAgICBtX3JlY3Quc2V0SGVp
Z2h0KGhlaWdodCk7Cit9CisKK2lubGluZSB2b2lkIEJveDo6c2V0TWFyZ2luKExheW91dFVuaXQg
bWFyZ2luVG9wLCBMYXlvdXRVbml0IG1hcmdpbkxlZnQsIExheW91dFVuaXQgbWFyZ2luUmlnaHQs
IExheW91dFVuaXQgbWFyZ2luQm90dG9tKQoreworI2lmICFBU1NFUlRfRElTQUJMRUQKKyAgICB2
b2lkIHNldEhhc1ZhbGlkTWFyZ2luKCk7CisjZW5kaWYKKyAgICBtX21hcmdpblRvcCA9IG1hcmdp
blRvcDsKKyAgICBtX21hcmdpbkxlZnQgPSBtYXJnaW5MZWZ0OworICAgIG1fbWFyZ2luQm90dG9t
ID0gbWFyZ2luQm90dG9tOworICAgIG1fbWFyZ2luUmlnaHQgPSBtYXJnaW5SaWdodDsKK30KKwor
aW5saW5lIHZvaWQgQm94OjpzZXRCb3JkZXIoTGF5b3V0VW5pdCBib3JkZXJUb3AsIExheW91dFVu
aXQgYm9yZGVyTGVmdCwgTGF5b3V0VW5pdCBib3JkZXJSaWdodCwgTGF5b3V0VW5pdCBib3JkZXJC
b3R0b20pCit7CisjaWYgIUFTU0VSVF9ESVNBQkxFRAorICAgIHZvaWQgc2V0SGFzVmFsaWRCb3Jk
ZXIoKTsKKyNlbmRpZgorICAgIG1fYm9yZGVyVG9wID0gYm9yZGVyVG9wOworICAgIG1fYm9yZGVy
TGVmdCA9IGJvcmRlckxlZnQ7CisgICAgbV9ib3JkZXJCb3R0b20gPSBib3JkZXJCb3R0b207Cisg
ICAgbV9ib3JkZXJSaWdodCA9IGJvcmRlclJpZ2h0OworfQorCitpbmxpbmUgdm9pZCBCb3g6OnNl
dFBhZGRpbmcoTGF5b3V0VW5pdCBwYWRkaW5nVG9wLCBMYXlvdXRVbml0IHBhZGRpbmdMZWZ0LCBM
YXlvdXRVbml0IHBhZGRpbmdSaWdodCwgTGF5b3V0VW5pdCBwYWRkaW5nQm90dG9tKQoreworI2lm
ICFBU1NFUlRfRElTQUJMRUQKKyAgICB2b2lkIHNldEhhc1ZhbGlkUGFkZGluZygpOworI2VuZGlm
CisgICAgbV9wYWRkaW5nVG9wID0gcGFkZGluZ1RvcDsKKyAgICBtX3BhZGRpbmdMZWZ0ID0gcGFk
ZGluZ0xlZnQ7CisgICAgbV9wYWRkaW5nQm90dG9tID0gcGFkZGluZ0JvdHRvbTsKKyAgICBtX3Bh
ZGRpbmdSaWdodCA9IHBhZGRpbmdSaWdodDsKK30KKworaW5saW5lIExheW91dFVuaXQgQm94Ojpt
YXJnaW5Ub3AoKSBjb25zdAoreworICAgIEFTU0VSVChtX2hhc1ZhbGlkTWFyZ2luKTsKKyAgICBy
ZXR1cm4gbV9tYXJnaW5Ub3A7Cit9CisKK2lubGluZSBMYXlvdXRVbml0IEJveDo6bWFyZ2luTGVm
dCgpIGNvbnN0Cit7CisgICAgQVNTRVJUKG1faGFzVmFsaWRNYXJnaW4pOworICAgIHJldHVybiBt
X21hcmdpbkxlZnQ7Cit9CisKK2lubGluZSBMYXlvdXRVbml0IEJveDo6bWFyZ2luQm90dG9tKCkg
Y29uc3QKK3sKKyAgICBBU1NFUlQobV9oYXNWYWxpZE1hcmdpbik7CisgICAgcmV0dXJuIG1fbWFy
Z2luQm90dG9tOworfQorCitpbmxpbmUgTGF5b3V0VW5pdCBCb3g6Om1hcmdpblJpZ2h0KCkgY29u
c3QKK3sKKyAgICBBU1NFUlQobV9oYXNWYWxpZE1hcmdpbik7CisgICAgcmV0dXJuIG1fbWFyZ2lu
UmlnaHQ7Cit9CisKIH0KIH0KICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339669</attachid>
            <date>2018-05-05 20:52:54 -0700</date>
            <delta_ts>2018-05-06 16:27:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185357-20180505205253.patch</filename>
            <type>text/plain</type>
            <size>12961</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxMzk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjkzY2NmMGI2YjIxZmQ4
YzZmMWMwMmI4MDhkOWY4MTA5NGI0N2E5YS4uNDFkNWIyZTkxMDRhZmRjZTQ4NzIyOTdkZTNkYWQ5
ZTA5NWY4Njg4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDE4LTA1LTA1ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ10gQWRkIGFzc2VydGlv
bnMgZm9yIHN0YWxlIERpc3BsYXk6OkJveCBnZW9tZXRyeQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg1MzU3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRW5zdXJlIHRoYXQgd2UgZG9uJ3QgYWNjZXNzIHN0
YWxlIGdlb21ldHJ5IG9mIG90aGVyIGJveGVzIGR1cmluZyBsYXlvdXQuCisgICAgICAgIEZvciBl
eGFtcGxlLCBpbiBvcmRlciB0byBsYXlvdXQgYSBibG9jayBjaGlsZCB3ZSBuZWVkIHRoZSBjb250
YWluaW5nIGJsb2NrJ3MgY29udGVudCBib3ggdG9wL2xlZnQgYW5kIHdpZHRoIChidXQgbm90IHRo
ZSBoZWlnaHQpCisKKyAgICAgICAgKiBsYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxheUJveC5oOgor
ICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6Qm94OjppbnZhbGlkYXRlVG9wKToKKyAgICAgICAg
KFdlYkNvcmU6OkRpc3BsYXk6OkJveDo6aW52YWxpZGF0ZUxlZnQpOgorICAgICAgICAoV2ViQ29y
ZTo6RGlzcGxheTo6Qm94OjppbnZhbGlkYXRlV2lkdGgpOgorICAgICAgICAoV2ViQ29yZTo6RGlz
cGxheTo6Qm94OjppbnZhbGlkYXRlSGVpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6
OkJveDo6aGFzVmFsaWRQb3NpdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
OjpCb3g6Omhhc1ZhbGlkU2l6ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpC
b3g6Omhhc1ZhbGlkR2VvbWV0cnkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6
Qm94OjppbnZhbGlkYXRlUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6Qm94
OjppbnZhbGlkYXRlU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpCb3g6OnNldEhh
c1ZhbGlkUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6Qm94OjpzZXRIYXNW
YWxpZFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6Qm94OjpzZXRIYXNWYWxpZEdl
b21ldHJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6OkJveDo6cmVjdCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpCb3g6OnRvcCBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpEaXNwbGF5OjpCb3g6OmxlZnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxh
eTo6Qm94Ojpib3R0b20gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6Qm94Ojpy
aWdodCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpCb3g6OnRvcExlZnQgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6Qm94Ojpib3R0b21SaWdodCBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpCb3g6OnNpemUgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6RGlzcGxheTo6Qm94Ojp3aWR0aCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpE
aXNwbGF5OjpCb3g6OmhlaWdodCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpC
b3g6OnNldFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6Qm94OjpzZXRUb3BMZWZ0
KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6OkJveDo6c2V0VG9wKToKKyAgICAgICAgKFdl
YkNvcmU6OkRpc3BsYXk6OkJveDo6c2V0TGVmdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
OjpCb3g6OnNldFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6Qm94OjpzZXRXaWR0
aCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpCb3g6OnNldEhlaWdodCk6CisKIDIwMTgt
MDUtMDIgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBJT1N1
cmZhY2VzIGZvciBDb3JlSW1hZ2Ugb3BlcmF0aW9ucyB3aGVyZSBwb3NzaWJsZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlCb3guY3BwIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlCb3guY3BwCmluZGV4IGVhYzNi
YWYxODNlZjQ5YWUyYmY1MTAwYWZiNTkzNjA2ZDBmZTA2MWIuLmRkNGRkYzAyNTAwZTExODhlMWMw
OGZkMWU4MTZjMmRiNzNkMDdlZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9k
aXNwbGF5dHJlZS9EaXNwbGF5Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZGlz
cGxheXRyZWUvRGlzcGxheUJveC5jcHAKQEAgLTM2LDYgKzM2LDE1IEBAIG5hbWVzcGFjZSBEaXNw
bGF5IHsKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChCb3gpOwogCiBCb3g6OkJveCgpCisj
aWYgIUFTU0VSVF9ESVNBQkxFRAorICAgIDogbV9oYXNWYWxpZFRvcChmYWxzZSkKKyAgICAsIG1f
aGFzVmFsaWRMZWZ0KGZhbHNlKQorICAgICwgbV9oYXNWYWxpZFdpZHRoKGZhbHNlKQorICAgICwg
bV9oYXNWYWxpZEhlaWdodChmYWxzZSkKKyAgICAsIG1faGFzVmFsaWRNYXJnaW4oZmFsc2UpCisg
ICAgLCBtX2hhc1ZhbGlkQm9yZGVyKGZhbHNlKQorICAgICwgbV9oYXNWYWxpZFBhZGRpbmcoZmFs
c2UpCisjZW5kaWYKIHsKIH0KIApAQCAtNDUsNiArNTQsNyBAQCBCb3g6On5Cb3goKQogCiBMYXlv
dXRSZWN0IEJveDo6bWFyZ2luQm94KCkgY29uc3QKIHsKKyAgICBBU1NFUlQobV9oYXNWYWxpZE1h
cmdpbik7CiAgICAgYXV0byBtYXJnaW5Cb3ggPSByZWN0KCk7CiAgICAgYXV0byB0b3BMZWZ0TWFy
Z2luID0gTGF5b3V0U2l6ZShtX21hcmdpbkxlZnQsIG1fbWFyZ2luVG9wKTsKICAgICBtYXJnaW5C
b3guaW5mbGF0ZSh0b3BMZWZ0TWFyZ2luKTsKQEAgLTYxLDYgKzcxLDcgQEAgTGF5b3V0UmVjdCBC
b3g6OmJvcmRlckJveCgpIGNvbnN0CiAKIExheW91dFJlY3QgQm94OjpwYWRkaW5nQm94KCkgY29u
c3QKIHsKKyAgICBBU1NFUlQobV9oYXNWYWxpZEJvcmRlcik7CiAgICAgYXV0byBwYWRkaW5nQm94
ID0gYm9yZGVyQm94KCk7CiAgICAgYXV0byB0b3BMZWZ0Qm9yZGVyID0gTGF5b3V0U2l6ZShtX2Jv
cmRlckxlZnQsIG1fYm9yZGVyVG9wKTsKICAgICBwYWRkaW5nQm94LmluZmxhdGUoLXRvcExlZnRC
b3JkZXIpOwpAQCAtNzIsNiArODMsNyBAQCBMYXlvdXRSZWN0IEJveDo6cGFkZGluZ0JveCgpIGNv
bnN0CiAKIExheW91dFJlY3QgQm94Ojpjb250ZW50Qm94KCkgY29uc3QKIHsKKyAgICBBU1NFUlQo
bV9oYXNWYWxpZFBhZGRpbmcpOwogICAgIGF1dG8gY29udGVudEJveCA9IHBhZGRpbmdCb3goKTsK
ICAgICBhdXRvIHRvcExlZnRQYWRkaW5nID0gTGF5b3V0U2l6ZShtX3BhZGRpbmdMZWZ0LCBtX3Bh
ZGRpbmdUb3ApOwogICAgIGNvbnRlbnRCb3guaW5mbGF0ZSgtdG9wTGVmdFBhZGRpbmcpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlCb3guaCBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5Qm94LmgKaW5kZXggNzNl
YTYzMDU5OWJlOTA3M2QxMjZlM2MyZjk5NTcyNmFkNjkyODg2MS4uOWE2YWQ1M2ZiMmQ5MjBlZDA1
MDQzYWE1OTFiNjgwNjM1YmY3MTk2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Rpc3BsYXl0cmVlL0Rpc3BsYXlCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZGlz
cGxheXRyZWUvRGlzcGxheUJveC5oCkBAIC00NywyNCArNDcsMjQgQEAgcHVibGljOgogCiAgICAg
fkJveCgpOwogCi0gICAgTGF5b3V0UmVjdCByZWN0KCkgY29uc3QgeyByZXR1cm4gbV9yZWN0OyB9
CisgICAgTGF5b3V0UmVjdCByZWN0KCkgY29uc3Q7CiAKLSAgICBMYXlvdXRVbml0IHRvcCgpIGNv
bnN0IHsgcmV0dXJuIG1fcmVjdC55KCk7IH0KLSAgICBMYXlvdXRVbml0IGxlZnQoKSBjb25zdCB7
IHJldHVybiBtX3JlY3QueCgpOyB9Ci0gICAgTGF5b3V0VW5pdCBib3R0b20oKSBjb25zdCB7IHJl
dHVybiBtX3JlY3QubWF4WSgpOyB9Ci0gICAgTGF5b3V0VW5pdCByaWdodCgpIGNvbnN0IHsgcmV0
dXJuIG1fcmVjdC5tYXhYKCk7IH0KKyAgICBMYXlvdXRVbml0IHRvcCgpIGNvbnN0OworICAgIExh
eW91dFVuaXQgbGVmdCgpIGNvbnN0OworICAgIExheW91dFVuaXQgYm90dG9tKCkgY29uc3Q7Cisg
ICAgTGF5b3V0VW5pdCByaWdodCgpIGNvbnN0OwogCi0gICAgTGF5b3V0UG9pbnQgdG9wTGVmdCgp
IGNvbnN0IHsgcmV0dXJuIG1fcmVjdC5sb2NhdGlvbigpOyB9Ci0gICAgTGF5b3V0UG9pbnQgYm90
dG9tUmlnaHQoKSBjb25zdCB7IHJldHVybiBtX3JlY3QubG9jYXRpb24oKTsgfQorICAgIExheW91
dFBvaW50IHRvcExlZnQoKSBjb25zdDsKKyAgICBMYXlvdXRQb2ludCBib3R0b21SaWdodCgpIGNv
bnN0OwogCi0gICAgTGF5b3V0U2l6ZSBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9yZWN0LnNpemUo
KTsgfQotICAgIExheW91dFVuaXQgd2lkdGgoKSBjb25zdCB7IHJldHVybiBtX3JlY3Qud2lkdGgo
KTsgfQotICAgIExheW91dFVuaXQgaGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9yZWN0LmhlaWdo
dCgpOyB9CisgICAgTGF5b3V0U2l6ZSBzaXplKCkgY29uc3Q7CisgICAgTGF5b3V0VW5pdCB3aWR0
aCgpIGNvbnN0OworICAgIExheW91dFVuaXQgaGVpZ2h0KCkgY29uc3Q7CiAKLSAgICBMYXlvdXRV
bml0IG1hcmdpblRvcCgpIGNvbnN0IHsgcmV0dXJuIG1fbWFyZ2luVG9wOyB9Ci0gICAgTGF5b3V0
VW5pdCBtYXJnaW5MZWZ0KCkgY29uc3QgeyByZXR1cm4gbV9tYXJnaW5MZWZ0OyB9Ci0gICAgTGF5
b3V0VW5pdCBtYXJnaW5Cb3R0b20oKSBjb25zdCB7IHJldHVybiBtX21hcmdpbkJvdHRvbTsgfQot
ICAgIExheW91dFVuaXQgbWFyZ2luUmlnaHQoKSBjb25zdCB7IHJldHVybiBtX21hcmdpblJpZ2h0
OyB9CisgICAgTGF5b3V0VW5pdCBtYXJnaW5Ub3AoKSBjb25zdDsKKyAgICBMYXlvdXRVbml0IG1h
cmdpbkxlZnQoKSBjb25zdDsKKyAgICBMYXlvdXRVbml0IG1hcmdpbkJvdHRvbSgpIGNvbnN0Owor
ICAgIExheW91dFVuaXQgbWFyZ2luUmlnaHQoKSBjb25zdDsKIAogICAgIExheW91dFJlY3QgbWFy
Z2luQm94KCkgY29uc3Q7CiAgICAgTGF5b3V0UmVjdCBib3JkZXJCb3goKSBjb25zdDsKQEAgLTc0
LDMwICs3NCw0NCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEJveCgpOwogCi0gICAgdm9pZCBz
ZXRSZWN0KGNvbnN0IExheW91dFJlY3QmIHJlY3QpIHsgbV9yZWN0ID0gcmVjdDsgfQotICAgIHZv
aWQgc2V0VG9wTGVmdChjb25zdCBMYXlvdXRQb2ludCYgdG9wTGVmdCkgeyBtX3JlY3Quc2V0TG9j
YXRpb24odG9wTGVmdCk7IH0KLSAgICB2b2lkIHNldFRvcChMYXlvdXRVbml0IHRvcCkgeyBtX3Jl
Y3Quc2V0WSh0b3ApOyB9Ci0gICAgdm9pZCBzZXRMZWZ0KExheW91dFVuaXQgbGVmdCkgeyBtX3Jl
Y3Quc2V0WChsZWZ0KTsgfQotICAgIHZvaWQgc2V0U2l6ZShjb25zdCBMYXlvdXRTaXplJiBzaXpl
KSB7IG1fcmVjdC5zZXRTaXplKHNpemUpOyB9Ci0gICAgdm9pZCBzZXRXaWR0aChMYXlvdXRVbml0
IHdpZHRoKSB7IG1fcmVjdC5zZXRXaWR0aCh3aWR0aCk7IH0KLSAgICB2b2lkIHNldEhlaWdodChM
YXlvdXRVbml0IGhlaWdodCkgeyBtX3JlY3Quc2V0SGVpZ2h0KGhlaWdodCk7IH0KLQotICAgIHZv
aWQgc2V0TWFyZ2luVG9wKExheW91dFVuaXQgbWFyZ2luVG9wKSB7IG1fbWFyZ2luVG9wID0gbWFy
Z2luVG9wOyB9Ci0gICAgdm9pZCBzZXRNYXJnaW5MZWZ0KExheW91dFVuaXQgbWFyZ2luTGVmdCkg
eyBtX21hcmdpbkxlZnQgPSBtYXJnaW5MZWZ0OyB9Ci0gICAgdm9pZCBzZXRNYXJnaW5Cb3R0b20o
TGF5b3V0VW5pdCBtYXJnaW5Cb3R0b20pIHsgbV9tYXJnaW5Cb3R0b20gPSBtYXJnaW5Cb3R0b207
IH0KLSAgICB2b2lkIHNldE1hcmdpblJpZ2h0KExheW91dFVuaXQgbWFyZ2luUmlnaHQpIHsgbV9t
YXJnaW5SaWdodCA9IG1hcmdpblJpZ2h0OyB9Ci0KLSAgICB2b2lkIHNldEJvcmRlclRvcChMYXlv
dXRVbml0IGJvcmRlclRvcCkgeyBtX2JvcmRlclRvcCA9IGJvcmRlclRvcDsgfQotICAgIHZvaWQg
c2V0Qm9yZGVyTGVmdChMYXlvdXRVbml0IGJvcmRlckxlZnQpIHsgbV9ib3JkZXJMZWZ0ID0gYm9y
ZGVyTGVmdDsgfQotICAgIHZvaWQgc2V0Qm9yZGVyQm90dG9tKExheW91dFVuaXQgYm9yZGVyQm90
dG9tKSB7IG1fYm9yZGVyQm90dG9tID0gYm9yZGVyQm90dG9tOyB9Ci0gICAgdm9pZCBzZXRCb3Jk
ZXJSaWdodChMYXlvdXRVbml0IGJvcmRlclJpZ2h0KSB7IG1fYm9yZGVyUmlnaHQgPSBib3JkZXJS
aWdodDsgfQotCi0gICAgdm9pZCBzZXRQYWRkaW5nVG9wKExheW91dFVuaXQgcGFkZGluZ1RvcCkg
eyBtX3BhZGRpbmdUb3AgPSBwYWRkaW5nVG9wOyB9Ci0gICAgdm9pZCBzZXRQYWRkaW5nTGVmdChM
YXlvdXRVbml0IHBhZGRpbmdMZWZ0KSB7IG1fcGFkZGluZ0xlZnQgPSBwYWRkaW5nTGVmdDsgfQot
ICAgIHZvaWQgc2V0UGFkZGluZ0JvdHRvbShMYXlvdXRVbml0IHBhZGRpbmdCb3R0b20pIHsgbV9w
YWRkaW5nQm90dG9tID0gcGFkZGluZ0JvdHRvbTsgfQotICAgIHZvaWQgc2V0UGFkZGluZ1JpZ2h0
KExheW91dFVuaXQgcGFkZGluZ1JpZ2h0KSB7IG1fcGFkZGluZ1JpZ2h0ID0gcGFkZGluZ1JpZ2h0
OyB9CisgICAgdm9pZCBzZXRSZWN0KGNvbnN0IExheW91dFJlY3QmKTsKKyAgICB2b2lkIHNldFRv
cExlZnQoY29uc3QgTGF5b3V0UG9pbnQmKTsKKyAgICB2b2lkIHNldFRvcChMYXlvdXRVbml0KTsK
KyAgICB2b2lkIHNldExlZnQoTGF5b3V0VW5pdCk7CisgICAgdm9pZCBzZXRTaXplKGNvbnN0IExh
eW91dFNpemUmKTsKKyAgICB2b2lkIHNldFdpZHRoKExheW91dFVuaXQpOworICAgIHZvaWQgc2V0
SGVpZ2h0KExheW91dFVuaXQpOworCisgICAgdm9pZCBzZXRNYXJnaW4oTGF5b3V0VW5pdCBtYXJn
aW5Ub3AsIExheW91dFVuaXQgbWFyZ2luTGVmdCwgTGF5b3V0VW5pdCBtYXJnaW5SaWdodCwgTGF5
b3V0VW5pdCBtYXJnaW5Cb3R0b20pOworICAgIHZvaWQgc2V0Qm9yZGVyKExheW91dFVuaXQgYm9y
ZGVyVG9wLCBMYXlvdXRVbml0IGJvcmRlckxlZnQsIExheW91dFVuaXQgYm9yZGVyUmlnaHQsIExh
eW91dFVuaXQgYm9yZGVyQm90dG9tKTsKKyAgICB2b2lkIHNldFBhZGRpbmcoTGF5b3V0VW5pdCBw
YWRkaW5nVG9wLCBMYXlvdXRVbml0IHBhZGRpbmdMZWZ0LCBMYXlvdXRVbml0IHBhZGRpbmdSaWdo
dCwgTGF5b3V0VW5pdCBwYWRkaW5nQm90dG9tKTsKKworI2lmICFBU1NFUlRfRElTQUJMRUQKKyAg
ICB2b2lkIGludmFsaWRhdGVUb3AoKSB7IG1faGFzVmFsaWRUb3AgPSBmYWxzZTsgfQorICAgIHZv
aWQgaW52YWxpZGF0ZUxlZnQoKSB7IG1faGFzVmFsaWRMZWZ0ID0gZmFsc2U7IH0KKyAgICB2b2lk
IGludmFsaWRhdGVXaWR0aCgpIHsgbV9oYXNWYWxpZFdpZHRoID0gZmFsc2U7IH0KKyAgICB2b2lk
IGludmFsaWRhdGVIZWlnaHQoKSB7IG1faGFzVmFsaWRIZWlnaHQgPSBmYWxzZTsgfQorICAgIHZv
aWQgaW52YWxpZGF0ZVBvc2l0aW9uKCk7CisgICAgdm9pZCBpbnZhbGlkYXRlU2l6ZSgpOworICAg
IHZvaWQgaW52YWxpZGF0ZU1hcmdpbigpIHsgbV9oYXNWYWxpZE1hcmdpbiA9IGZhbHNlOyB9Cisg
ICAgdm9pZCBpbnZhbGlkYXRlQm9yZGVyKCkgeyBtX2hhc1ZhbGlkQm9yZGVyID0gZmFsc2U7IH0K
KyAgICB2b2lkIGludmFsaWRhdGVQYWRkaW5nKCkgeyBtX2hhc1ZhbGlkUGFkZGluZyA9IGZhbHNl
OyB9CisKKyAgICBib29sIGhhc1ZhbGlkUG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX2hhc1Zh
bGlkVG9wICYmIG1faGFzVmFsaWRMZWZ0OyB9CisgICAgYm9vbCBoYXNWYWxpZFNpemUoKSBjb25z
dCB7IHJldHVybiBtX2hhc1ZhbGlkV2lkdGggJiYgbV9oYXNWYWxpZEhlaWdodDsgfQorICAgIGJv
b2wgaGFzVmFsaWRHZW9tZXRyeSgpIGNvbnN0IHsgcmV0dXJuIGhhc1ZhbGlkUG9zaXRpb24oKSAm
JiBoYXNWYWxpZFNpemUoKTsgfQorICAgIAorICAgIHZvaWQgc2V0SGFzVmFsaWRQb3NpdGlvbigp
OworICAgIHZvaWQgc2V0SGFzVmFsaWRTaXplKCk7CisgICAgdm9pZCBzZXRIYXNWYWxpZEdlb21l
dHJ5KCk7CisgICAgCisgICAgdm9pZCBzZXRIYXNWYWxpZE1hcmdpbigpOworICAgIHZvaWQgc2V0
SGFzVmFsaWRCb3JkZXIoKTsKKyAgICB2b2lkIHNldEhhc1ZhbGlkUGFkZGluZygpOworI2VuZGlm
CiAKICAgICBMYXlvdXRSZWN0IG1fcmVjdDsKKwogICAgIExheW91dFVuaXQgbV9tYXJnaW5Ub3A7
CiAgICAgTGF5b3V0VW5pdCBtX21hcmdpbkxlZnQ7CiAgICAgTGF5b3V0VW5pdCBtX21hcmdpbkJv
dHRvbTsKQEAgLTExMiw4ICsxMjYsMjIzIEBAIHByaXZhdGU6CiAgICAgTGF5b3V0VW5pdCBtX3Bh
ZGRpbmdMZWZ0OwogICAgIExheW91dFVuaXQgbV9wYWRkaW5nQm90dG9tOwogICAgIExheW91dFVu
aXQgbV9wYWRkaW5nUmlnaHQ7CisKKyNpZiAhQVNTRVJUX0RJU0FCTEVECisgICAgYm9vbCBtX2hh
c1ZhbGlkVG9wIDogMTsKKyAgICBib29sIG1faGFzVmFsaWRMZWZ0IDogMTsKKyAgICBib29sIG1f
aGFzVmFsaWRXaWR0aCA6IDE7CisgICAgYm9vbCBtX2hhc1ZhbGlkSGVpZ2h0IDogMTsKKyAgICBi
b29sIG1faGFzVmFsaWRNYXJnaW4gOiAxOworICAgIGJvb2wgbV9oYXNWYWxpZEJvcmRlciA6IDE7
CisgICAgYm9vbCBtX2hhc1ZhbGlkUGFkZGluZyA6IDE7CisjZW5kaWYKIH07CiAKKyNpZiAhQVNT
RVJUX0RJU0FCTEVECitpbmxpbmUgdm9pZCBCb3g6OmludmFsaWRhdGVQb3NpdGlvbigpCit7Cisg
ICAgaW52YWxpZGF0ZVRvcCgpOworICAgIGludmFsaWRhdGVMZWZ0KCk7Cit9CisKK2lubGluZSB2
b2lkIEJveDo6aW52YWxpZGF0ZVNpemUoKQoreworICAgIGludmFsaWRhdGVXaWR0aCgpOworICAg
IGludmFsaWRhdGVIZWlnaHQoKTsKK30KKworaW5saW5lIHZvaWQgQm94OjpzZXRIYXNWYWxpZFBv
c2l0aW9uKCkKK3sKKyAgICBtX2hhc1ZhbGlkVG9wID0gdHJ1ZTsKKyAgICBtX2hhc1ZhbGlkTGVm
dCA9IHRydWU7Cit9CisKK2lubGluZSB2b2lkIEJveDo6c2V0SGFzVmFsaWRTaXplKCkKK3sKKyAg
ICBtX2hhc1ZhbGlkV2lkdGggPSB0cnVlOworICAgIG1faGFzVmFsaWRIZWlnaHQgPSB0cnVlOwor
fQorCitpbmxpbmUgdm9pZCBCb3g6OnNldEhhc1ZhbGlkR2VvbWV0cnkoKQoreworICAgIHNldEhh
c1ZhbGlkUG9zaXRpb24oKTsKKyAgICBzZXRIYXNWYWxpZFNpemUoKTsKK30KKyNlbmRpZgorCitp
bmxpbmUgTGF5b3V0UmVjdCBCb3g6OnJlY3QoKSBjb25zdAoreworICAgIEFTU0VSVChoYXNWYWxp
ZEdlb21ldHJ5KCkpOworICAgIHJldHVybiBtX3JlY3Q7Cit9CisKK2lubGluZSBMYXlvdXRVbml0
IEJveDo6dG9wKCkgY29uc3QKK3sKKyAgICBBU1NFUlQobV9oYXNWYWxpZFRvcCk7CisgICAgcmV0
dXJuIG1fcmVjdC55KCk7Cit9CisKK2lubGluZSBMYXlvdXRVbml0IEJveDo6bGVmdCgpIGNvbnN0
Cit7CisgICAgQVNTRVJUKGhhc1ZhbGlkUG9zaXRpb24oKSk7CisgICAgcmV0dXJuIG1fcmVjdC54
KCk7Cit9CisKK2lubGluZSBMYXlvdXRVbml0IEJveDo6Ym90dG9tKCkgY29uc3QKK3sKKyAgICBB
U1NFUlQobV9oYXNWYWxpZFRvcCAmJiBtX2hhc1ZhbGlkSGVpZ2h0KTsKKyAgICByZXR1cm4gbV9y
ZWN0Lm1heFkoKTsKK30KKworaW5saW5lIExheW91dFVuaXQgQm94OjpyaWdodCgpIGNvbnN0Cit7
CisgICAgQVNTRVJUKG1faGFzVmFsaWRMZWZ0ICYmIG1faGFzVmFsaWRXaWR0aCk7CisgICAgcmV0
dXJuIG1fcmVjdC5tYXhYKCk7Cit9CisKK2lubGluZSBMYXlvdXRQb2ludCBCb3g6OnRvcExlZnQo
KSBjb25zdAoreworICAgIEFTU0VSVChoYXNWYWxpZFBvc2l0aW9uKCkpOworICAgIHJldHVybiBt
X3JlY3QubG9jYXRpb24oKTsKK30KKworaW5saW5lIExheW91dFBvaW50IEJveDo6Ym90dG9tUmln
aHQoKSBjb25zdAoreworICAgIEFTU0VSVChoYXNWYWxpZEdlb21ldHJ5KCkpOworICAgIHJldHVy
biBtX3JlY3QubWF4WE1heFlDb3JuZXIoKTsKK30KKworaW5saW5lIExheW91dFNpemUgQm94Ojpz
aXplKCkgY29uc3QKK3sKKyAgICBBU1NFUlQoaGFzVmFsaWRTaXplKCkpOworICAgIHJldHVybiBt
X3JlY3Quc2l6ZSgpOworfQorCitpbmxpbmUgTGF5b3V0VW5pdCBCb3g6OndpZHRoKCkgY29uc3QK
K3sKKyAgICBBU1NFUlQobV9oYXNWYWxpZFdpZHRoKTsKKyAgICByZXR1cm4gbV9yZWN0LndpZHRo
KCk7Cit9CisKK2lubGluZSBMYXlvdXRVbml0IEJveDo6aGVpZ2h0KCkgY29uc3QKK3sKKyAgICBB
U1NFUlQobV9oYXNWYWxpZEhlaWdodCk7CisgICAgcmV0dXJuIG1fcmVjdC5oZWlnaHQoKTsKK30K
KworaW5saW5lIHZvaWQgQm94OjpzZXRSZWN0KGNvbnN0IExheW91dFJlY3QmIHJlY3QpCit7Cisj
aWYgIUFTU0VSVF9ESVNBQkxFRAorICAgIHNldEhhc1ZhbGlkR2VvbWV0cnkoKTsKKyNlbmRpZgor
ICAgIG1fcmVjdCA9IHJlY3Q7Cit9CisKK2lubGluZSB2b2lkIEJveDo6c2V0VG9wTGVmdChjb25z
dCBMYXlvdXRQb2ludCYgdG9wTGVmdCkKK3sKKyNpZiAhQVNTRVJUX0RJU0FCTEVECisgICAgc2V0
SGFzVmFsaWRQb3NpdGlvbigpOworI2VuZGlmCisgICAgbV9yZWN0LnNldExvY2F0aW9uKHRvcExl
ZnQpOworfQorCitpbmxpbmUgdm9pZCBCb3g6OnNldFRvcChMYXlvdXRVbml0IHRvcCkKK3sKKyNp
ZiAhQVNTRVJUX0RJU0FCTEVECisgICAgbV9oYXNWYWxpZFRvcCA9IHRydWU7CisjZW5kaWYKKyAg
ICBtX3JlY3Quc2V0WSh0b3ApOworfQorCitpbmxpbmUgdm9pZCBCb3g6OnNldExlZnQoTGF5b3V0
VW5pdCBsZWZ0KQoreworI2lmICFBU1NFUlRfRElTQUJMRUQKKyAgICBtX2hhc1ZhbGlkTGVmdCA9
IHRydWU7CisjZW5kaWYKKyAgICBtX3JlY3Quc2V0WChsZWZ0KTsKK30KKworaW5saW5lIHZvaWQg
Qm94OjpzZXRTaXplKGNvbnN0IExheW91dFNpemUmIHNpemUpCit7CisjaWYgIUFTU0VSVF9ESVNB
QkxFRAorICAgIHNldEhhc1ZhbGlkU2l6ZSgpOworI2VuZGlmCisgICAgbV9yZWN0LnNldFNpemUo
c2l6ZSk7Cit9CisKK2lubGluZSB2b2lkIEJveDo6c2V0V2lkdGgoTGF5b3V0VW5pdCB3aWR0aCkK
K3sKKyNpZiAhQVNTRVJUX0RJU0FCTEVECisgICAgbV9oYXNWYWxpZFdpZHRoID0gdHJ1ZTsKKyNl
bmRpZgorICAgIG1fcmVjdC5zZXRXaWR0aCh3aWR0aCk7Cit9CisKK2lubGluZSB2b2lkIEJveDo6
c2V0SGVpZ2h0KExheW91dFVuaXQgaGVpZ2h0KQoreworI2lmICFBU1NFUlRfRElTQUJMRUQKKyAg
ICBtX2hhc1ZhbGlkSGVpZ2h0ID0gdHJ1ZTsKKyNlbmRpZgorICAgIG1fcmVjdC5zZXRIZWlnaHQo
aGVpZ2h0KTsKK30KKworaW5saW5lIHZvaWQgQm94OjpzZXRNYXJnaW4oTGF5b3V0VW5pdCBtYXJn
aW5Ub3AsIExheW91dFVuaXQgbWFyZ2luTGVmdCwgTGF5b3V0VW5pdCBtYXJnaW5SaWdodCwgTGF5
b3V0VW5pdCBtYXJnaW5Cb3R0b20pCit7CisjaWYgIUFTU0VSVF9ESVNBQkxFRAorICAgIHZvaWQg
c2V0SGFzVmFsaWRNYXJnaW4oKTsKKyNlbmRpZgorICAgIG1fbWFyZ2luVG9wID0gbWFyZ2luVG9w
OworICAgIG1fbWFyZ2luTGVmdCA9IG1hcmdpbkxlZnQ7CisgICAgbV9tYXJnaW5Cb3R0b20gPSBt
YXJnaW5Cb3R0b207CisgICAgbV9tYXJnaW5SaWdodCA9IG1hcmdpblJpZ2h0OworfQorCitpbmxp
bmUgdm9pZCBCb3g6OnNldEJvcmRlcihMYXlvdXRVbml0IGJvcmRlclRvcCwgTGF5b3V0VW5pdCBi
b3JkZXJMZWZ0LCBMYXlvdXRVbml0IGJvcmRlclJpZ2h0LCBMYXlvdXRVbml0IGJvcmRlckJvdHRv
bSkKK3sKKyNpZiAhQVNTRVJUX0RJU0FCTEVECisgICAgdm9pZCBzZXRIYXNWYWxpZEJvcmRlcigp
OworI2VuZGlmCisgICAgbV9ib3JkZXJUb3AgPSBib3JkZXJUb3A7CisgICAgbV9ib3JkZXJMZWZ0
ID0gYm9yZGVyTGVmdDsKKyAgICBtX2JvcmRlckJvdHRvbSA9IGJvcmRlckJvdHRvbTsKKyAgICBt
X2JvcmRlclJpZ2h0ID0gYm9yZGVyUmlnaHQ7Cit9CisKK2lubGluZSB2b2lkIEJveDo6c2V0UGFk
ZGluZyhMYXlvdXRVbml0IHBhZGRpbmdUb3AsIExheW91dFVuaXQgcGFkZGluZ0xlZnQsIExheW91
dFVuaXQgcGFkZGluZ1JpZ2h0LCBMYXlvdXRVbml0IHBhZGRpbmdCb3R0b20pCit7CisjaWYgIUFT
U0VSVF9ESVNBQkxFRAorICAgIHZvaWQgc2V0SGFzVmFsaWRQYWRkaW5nKCk7CisjZW5kaWYKKyAg
ICBtX3BhZGRpbmdUb3AgPSBwYWRkaW5nVG9wOworICAgIG1fcGFkZGluZ0xlZnQgPSBwYWRkaW5n
TGVmdDsKKyAgICBtX3BhZGRpbmdCb3R0b20gPSBwYWRkaW5nQm90dG9tOworICAgIG1fcGFkZGlu
Z1JpZ2h0ID0gcGFkZGluZ1JpZ2h0OworfQorCitpbmxpbmUgTGF5b3V0VW5pdCBCb3g6Om1hcmdp
blRvcCgpIGNvbnN0Cit7CisgICAgQVNTRVJUKG1faGFzVmFsaWRNYXJnaW4pOworICAgIHJldHVy
biBtX21hcmdpblRvcDsKK30KKworaW5saW5lIExheW91dFVuaXQgQm94OjptYXJnaW5MZWZ0KCkg
Y29uc3QKK3sKKyAgICBBU1NFUlQobV9oYXNWYWxpZE1hcmdpbik7CisgICAgcmV0dXJuIG1fbWFy
Z2luTGVmdDsKK30KKworaW5saW5lIExheW91dFVuaXQgQm94OjptYXJnaW5Cb3R0b20oKSBjb25z
dAoreworICAgIEFTU0VSVChtX2hhc1ZhbGlkTWFyZ2luKTsKKyAgICByZXR1cm4gbV9tYXJnaW5C
b3R0b207Cit9CisKK2lubGluZSBMYXlvdXRVbml0IEJveDo6bWFyZ2luUmlnaHQoKSBjb25zdAor
eworICAgIEFTU0VSVChtX2hhc1ZhbGlkTWFyZ2luKTsKKyAgICByZXR1cm4gbV9tYXJnaW5SaWdo
dDsKK30KKwogfQogfQogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339694</attachid>
            <date>2018-05-06 16:28:00 -0700</date>
            <delta_ts>2018-05-06 19:09:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185357-20180506162759.patch</filename>
            <type>text/plain</type>
            <size>12661</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxMzk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjkzY2NmMGI2YjIxZmQ4
YzZmMWMwMmI4MDhkOWY4MTA5NGI0N2E5YS4uYTU2ZjM1MWU0M2U5MWUwNTk0Y2E2ODQ2NTQ5YjE2
ODc2MGZkMTcyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDE4LTA1LTA1ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ10gQWRkIGFzc2VydGlv
bnMgZm9yIHN0YWxlIERpc3BsYXk6OkJveCBnZW9tZXRyeQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg1MzU3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
QW50dGkgS29pdmlzdG8uCisKKyAgICAgICAgRW5zdXJlIHRoYXQgd2UgZG9uJ3QgYWNjZXNzIHN0
YWxlIGdlb21ldHJ5IG9mIG90aGVyIGJveGVzIGR1cmluZyBsYXlvdXQuCisgICAgICAgIEZvciBl
eGFtcGxlLCBpbiBvcmRlciB0byBsYXlvdXQgYSBibG9jayBjaGlsZCB3ZSBuZWVkIHRoZSBjb250
YWluaW5nIGJsb2NrJ3MgY29udGVudCBib3ggdG9wL2xlZnQgYW5kIHdpZHRoIChidXQgbm90IHRo
ZSBoZWlnaHQpCisKKyAgICAgICAgKiBsYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxheUJveC5oOgor
ICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6Qm94OjppbnZhbGlkYXRlVG9wKToKKyAgICAgICAg
KFdlYkNvcmU6OkRpc3BsYXk6OkJveDo6aW52YWxpZGF0ZUxlZnQpOgorICAgICAgICAoV2ViQ29y
ZTo6RGlzcGxheTo6Qm94OjppbnZhbGlkYXRlV2lkdGgpOgorICAgICAgICAoV2ViQ29yZTo6RGlz
cGxheTo6Qm94OjppbnZhbGlkYXRlSGVpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6
OkJveDo6aGFzVmFsaWRQb3NpdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
OjpCb3g6Omhhc1ZhbGlkU2l6ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpC
b3g6Omhhc1ZhbGlkR2VvbWV0cnkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6
Qm94OjppbnZhbGlkYXRlUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6Qm94
OjppbnZhbGlkYXRlU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpCb3g6OnNldEhh
c1ZhbGlkUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6Qm94OjpzZXRIYXNW
YWxpZFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6Qm94OjpzZXRIYXNWYWxpZEdl
b21ldHJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6OkJveDo6cmVjdCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpCb3g6OnRvcCBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpEaXNwbGF5OjpCb3g6OmxlZnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxh
eTo6Qm94Ojpib3R0b20gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6Qm94Ojpy
aWdodCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpCb3g6OnRvcExlZnQgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6Qm94Ojpib3R0b21SaWdodCBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpCb3g6OnNpemUgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6RGlzcGxheTo6Qm94Ojp3aWR0aCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpE
aXNwbGF5OjpCb3g6OmhlaWdodCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpC
b3g6OnNldFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6Qm94OjpzZXRUb3BMZWZ0
KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6OkJveDo6c2V0VG9wKToKKyAgICAgICAgKFdl
YkNvcmU6OkRpc3BsYXk6OkJveDo6c2V0TGVmdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
OjpCb3g6OnNldFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6Qm94OjpzZXRXaWR0
aCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpCb3g6OnNldEhlaWdodCk6CisKIDIwMTgt
MDUtMDIgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBJT1N1
cmZhY2VzIGZvciBDb3JlSW1hZ2Ugb3BlcmF0aW9ucyB3aGVyZSBwb3NzaWJsZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlCb3guY3BwIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlCb3guY3BwCmluZGV4IGVhYzNi
YWYxODNlZjQ5YWUyYmY1MTAwYWZiNTkzNjA2ZDBmZTA2MWIuLmNjZGY2NDgzY2QxMmVjZDBjYzUz
ODQ0OWYxZjUyZjQ1OGUzOTZlNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9k
aXNwbGF5dHJlZS9EaXNwbGF5Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZGlz
cGxheXRyZWUvRGlzcGxheUJveC5jcHAKQEAgLTQ1LDYgKzQ1LDcgQEAgQm94Ojp+Qm94KCkKIAog
TGF5b3V0UmVjdCBCb3g6Om1hcmdpbkJveCgpIGNvbnN0CiB7CisgICAgQVNTRVJUKG1faGFzVmFs
aWRNYXJnaW4pOwogICAgIGF1dG8gbWFyZ2luQm94ID0gcmVjdCgpOwogICAgIGF1dG8gdG9wTGVm
dE1hcmdpbiA9IExheW91dFNpemUobV9tYXJnaW5MZWZ0LCBtX21hcmdpblRvcCk7CiAgICAgbWFy
Z2luQm94LmluZmxhdGUodG9wTGVmdE1hcmdpbik7CkBAIC02MSw2ICs2Miw3IEBAIExheW91dFJl
Y3QgQm94Ojpib3JkZXJCb3goKSBjb25zdAogCiBMYXlvdXRSZWN0IEJveDo6cGFkZGluZ0JveCgp
IGNvbnN0CiB7CisgICAgQVNTRVJUKG1faGFzVmFsaWRCb3JkZXIpOwogICAgIGF1dG8gcGFkZGlu
Z0JveCA9IGJvcmRlckJveCgpOwogICAgIGF1dG8gdG9wTGVmdEJvcmRlciA9IExheW91dFNpemUo
bV9ib3JkZXJMZWZ0LCBtX2JvcmRlclRvcCk7CiAgICAgcGFkZGluZ0JveC5pbmZsYXRlKC10b3BM
ZWZ0Qm9yZGVyKTsKQEAgLTcyLDYgKzc0LDcgQEAgTGF5b3V0UmVjdCBCb3g6OnBhZGRpbmdCb3go
KSBjb25zdAogCiBMYXlvdXRSZWN0IEJveDo6Y29udGVudEJveCgpIGNvbnN0CiB7CisgICAgQVNT
RVJUKG1faGFzVmFsaWRQYWRkaW5nKTsKICAgICBhdXRvIGNvbnRlbnRCb3ggPSBwYWRkaW5nQm94
KCk7CiAgICAgYXV0byB0b3BMZWZ0UGFkZGluZyA9IExheW91dFNpemUobV9wYWRkaW5nTGVmdCwg
bV9wYWRkaW5nVG9wKTsKICAgICBjb250ZW50Qm94LmluZmxhdGUoLXRvcExlZnRQYWRkaW5nKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5Qm94
LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxheUJveC5oCmluZGV4
IDczZWE2MzA1OTliZTkwNzNkMTI2ZTNjMmY5OTU3MjZhZDY5Mjg4NjEuLjM2NjFiODAyOTcyZDU4
M2Y1MzA3OWIxODUzMmM0ZDdiMDVjNzRhNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5Qm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Rpc3BsYXl0cmVlL0Rpc3BsYXlCb3guaApAQCAtNDcsMjQgKzQ3LDI0IEBAIHB1YmxpYzoKIAog
ICAgIH5Cb3goKTsKIAotICAgIExheW91dFJlY3QgcmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVj
dDsgfQorICAgIExheW91dFJlY3QgcmVjdCgpIGNvbnN0OwogCi0gICAgTGF5b3V0VW5pdCB0b3Ao
KSBjb25zdCB7IHJldHVybiBtX3JlY3QueSgpOyB9Ci0gICAgTGF5b3V0VW5pdCBsZWZ0KCkgY29u
c3QgeyByZXR1cm4gbV9yZWN0LngoKTsgfQotICAgIExheW91dFVuaXQgYm90dG9tKCkgY29uc3Qg
eyByZXR1cm4gbV9yZWN0Lm1heFkoKTsgfQotICAgIExheW91dFVuaXQgcmlnaHQoKSBjb25zdCB7
IHJldHVybiBtX3JlY3QubWF4WCgpOyB9CisgICAgTGF5b3V0VW5pdCB0b3AoKSBjb25zdDsKKyAg
ICBMYXlvdXRVbml0IGxlZnQoKSBjb25zdDsKKyAgICBMYXlvdXRVbml0IGJvdHRvbSgpIGNvbnN0
OworICAgIExheW91dFVuaXQgcmlnaHQoKSBjb25zdDsKIAotICAgIExheW91dFBvaW50IHRvcExl
ZnQoKSBjb25zdCB7IHJldHVybiBtX3JlY3QubG9jYXRpb24oKTsgfQotICAgIExheW91dFBvaW50
IGJvdHRvbVJpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9yZWN0LmxvY2F0aW9uKCk7IH0KKyAgICBM
YXlvdXRQb2ludCB0b3BMZWZ0KCkgY29uc3Q7CisgICAgTGF5b3V0UG9pbnQgYm90dG9tUmlnaHQo
KSBjb25zdDsKIAotICAgIExheW91dFNpemUgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVjdC5z
aXplKCk7IH0KLSAgICBMYXlvdXRVbml0IHdpZHRoKCkgY29uc3QgeyByZXR1cm4gbV9yZWN0Lndp
ZHRoKCk7IH0KLSAgICBMYXlvdXRVbml0IGhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVjdC5o
ZWlnaHQoKTsgfQorICAgIExheW91dFNpemUgc2l6ZSgpIGNvbnN0OworICAgIExheW91dFVuaXQg
d2lkdGgoKSBjb25zdDsKKyAgICBMYXlvdXRVbml0IGhlaWdodCgpIGNvbnN0OwogCi0gICAgTGF5
b3V0VW5pdCBtYXJnaW5Ub3AoKSBjb25zdCB7IHJldHVybiBtX21hcmdpblRvcDsgfQotICAgIExh
eW91dFVuaXQgbWFyZ2luTGVmdCgpIGNvbnN0IHsgcmV0dXJuIG1fbWFyZ2luTGVmdDsgfQotICAg
IExheW91dFVuaXQgbWFyZ2luQm90dG9tKCkgY29uc3QgeyByZXR1cm4gbV9tYXJnaW5Cb3R0b207
IH0KLSAgICBMYXlvdXRVbml0IG1hcmdpblJpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9tYXJnaW5S
aWdodDsgfQorICAgIExheW91dFVuaXQgbWFyZ2luVG9wKCkgY29uc3Q7CisgICAgTGF5b3V0VW5p
dCBtYXJnaW5MZWZ0KCkgY29uc3Q7CisgICAgTGF5b3V0VW5pdCBtYXJnaW5Cb3R0b20oKSBjb25z
dDsKKyAgICBMYXlvdXRVbml0IG1hcmdpblJpZ2h0KCkgY29uc3Q7CiAKICAgICBMYXlvdXRSZWN0
IG1hcmdpbkJveCgpIGNvbnN0OwogICAgIExheW91dFJlY3QgYm9yZGVyQm94KCkgY29uc3Q7CkBA
IC03NCwzMCArNzQsNDQgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBCb3goKTsKIAotICAgIHZv
aWQgc2V0UmVjdChjb25zdCBMYXlvdXRSZWN0JiByZWN0KSB7IG1fcmVjdCA9IHJlY3Q7IH0KLSAg
ICB2b2lkIHNldFRvcExlZnQoY29uc3QgTGF5b3V0UG9pbnQmIHRvcExlZnQpIHsgbV9yZWN0LnNl
dExvY2F0aW9uKHRvcExlZnQpOyB9Ci0gICAgdm9pZCBzZXRUb3AoTGF5b3V0VW5pdCB0b3ApIHsg
bV9yZWN0LnNldFkodG9wKTsgfQotICAgIHZvaWQgc2V0TGVmdChMYXlvdXRVbml0IGxlZnQpIHsg
bV9yZWN0LnNldFgobGVmdCk7IH0KLSAgICB2b2lkIHNldFNpemUoY29uc3QgTGF5b3V0U2l6ZSYg
c2l6ZSkgeyBtX3JlY3Quc2V0U2l6ZShzaXplKTsgfQotICAgIHZvaWQgc2V0V2lkdGgoTGF5b3V0
VW5pdCB3aWR0aCkgeyBtX3JlY3Quc2V0V2lkdGgod2lkdGgpOyB9Ci0gICAgdm9pZCBzZXRIZWln
aHQoTGF5b3V0VW5pdCBoZWlnaHQpIHsgbV9yZWN0LnNldEhlaWdodChoZWlnaHQpOyB9Ci0KLSAg
ICB2b2lkIHNldE1hcmdpblRvcChMYXlvdXRVbml0IG1hcmdpblRvcCkgeyBtX21hcmdpblRvcCA9
IG1hcmdpblRvcDsgfQotICAgIHZvaWQgc2V0TWFyZ2luTGVmdChMYXlvdXRVbml0IG1hcmdpbkxl
ZnQpIHsgbV9tYXJnaW5MZWZ0ID0gbWFyZ2luTGVmdDsgfQotICAgIHZvaWQgc2V0TWFyZ2luQm90
dG9tKExheW91dFVuaXQgbWFyZ2luQm90dG9tKSB7IG1fbWFyZ2luQm90dG9tID0gbWFyZ2luQm90
dG9tOyB9Ci0gICAgdm9pZCBzZXRNYXJnaW5SaWdodChMYXlvdXRVbml0IG1hcmdpblJpZ2h0KSB7
IG1fbWFyZ2luUmlnaHQgPSBtYXJnaW5SaWdodDsgfQotCi0gICAgdm9pZCBzZXRCb3JkZXJUb3Ao
TGF5b3V0VW5pdCBib3JkZXJUb3ApIHsgbV9ib3JkZXJUb3AgPSBib3JkZXJUb3A7IH0KLSAgICB2
b2lkIHNldEJvcmRlckxlZnQoTGF5b3V0VW5pdCBib3JkZXJMZWZ0KSB7IG1fYm9yZGVyTGVmdCA9
IGJvcmRlckxlZnQ7IH0KLSAgICB2b2lkIHNldEJvcmRlckJvdHRvbShMYXlvdXRVbml0IGJvcmRl
ckJvdHRvbSkgeyBtX2JvcmRlckJvdHRvbSA9IGJvcmRlckJvdHRvbTsgfQotICAgIHZvaWQgc2V0
Qm9yZGVyUmlnaHQoTGF5b3V0VW5pdCBib3JkZXJSaWdodCkgeyBtX2JvcmRlclJpZ2h0ID0gYm9y
ZGVyUmlnaHQ7IH0KLQotICAgIHZvaWQgc2V0UGFkZGluZ1RvcChMYXlvdXRVbml0IHBhZGRpbmdU
b3ApIHsgbV9wYWRkaW5nVG9wID0gcGFkZGluZ1RvcDsgfQotICAgIHZvaWQgc2V0UGFkZGluZ0xl
ZnQoTGF5b3V0VW5pdCBwYWRkaW5nTGVmdCkgeyBtX3BhZGRpbmdMZWZ0ID0gcGFkZGluZ0xlZnQ7
IH0KLSAgICB2b2lkIHNldFBhZGRpbmdCb3R0b20oTGF5b3V0VW5pdCBwYWRkaW5nQm90dG9tKSB7
IG1fcGFkZGluZ0JvdHRvbSA9IHBhZGRpbmdCb3R0b207IH0KLSAgICB2b2lkIHNldFBhZGRpbmdS
aWdodChMYXlvdXRVbml0IHBhZGRpbmdSaWdodCkgeyBtX3BhZGRpbmdSaWdodCA9IHBhZGRpbmdS
aWdodDsgfQorICAgIHZvaWQgc2V0UmVjdChjb25zdCBMYXlvdXRSZWN0Jik7CisgICAgdm9pZCBz
ZXRUb3BMZWZ0KGNvbnN0IExheW91dFBvaW50Jik7CisgICAgdm9pZCBzZXRUb3AoTGF5b3V0VW5p
dCk7CisgICAgdm9pZCBzZXRMZWZ0KExheW91dFVuaXQpOworICAgIHZvaWQgc2V0U2l6ZShjb25z
dCBMYXlvdXRTaXplJik7CisgICAgdm9pZCBzZXRXaWR0aChMYXlvdXRVbml0KTsKKyAgICB2b2lk
IHNldEhlaWdodChMYXlvdXRVbml0KTsKKworICAgIHZvaWQgc2V0TWFyZ2luKExheW91dFVuaXQg
bWFyZ2luVG9wLCBMYXlvdXRVbml0IG1hcmdpbkxlZnQsIExheW91dFVuaXQgbWFyZ2luUmlnaHQs
IExheW91dFVuaXQgbWFyZ2luQm90dG9tKTsKKyAgICB2b2lkIHNldEJvcmRlcihMYXlvdXRVbml0
IGJvcmRlclRvcCwgTGF5b3V0VW5pdCBib3JkZXJMZWZ0LCBMYXlvdXRVbml0IGJvcmRlclJpZ2h0
LCBMYXlvdXRVbml0IGJvcmRlckJvdHRvbSk7CisgICAgdm9pZCBzZXRQYWRkaW5nKExheW91dFVu
aXQgcGFkZGluZ1RvcCwgTGF5b3V0VW5pdCBwYWRkaW5nTGVmdCwgTGF5b3V0VW5pdCBwYWRkaW5n
UmlnaHQsIExheW91dFVuaXQgcGFkZGluZ0JvdHRvbSk7CisKKyNpZiAhQVNTRVJUX0RJU0FCTEVE
CisgICAgdm9pZCBpbnZhbGlkYXRlVG9wKCkgeyBtX2hhc1ZhbGlkVG9wID0gZmFsc2U7IH0KKyAg
ICB2b2lkIGludmFsaWRhdGVMZWZ0KCkgeyBtX2hhc1ZhbGlkTGVmdCA9IGZhbHNlOyB9CisgICAg
dm9pZCBpbnZhbGlkYXRlV2lkdGgoKSB7IG1faGFzVmFsaWRXaWR0aCA9IGZhbHNlOyB9CisgICAg
dm9pZCBpbnZhbGlkYXRlSGVpZ2h0KCkgeyBtX2hhc1ZhbGlkSGVpZ2h0ID0gZmFsc2U7IH0KKyAg
ICB2b2lkIGludmFsaWRhdGVQb3NpdGlvbigpOworICAgIHZvaWQgaW52YWxpZGF0ZVNpemUoKTsK
KyAgICB2b2lkIGludmFsaWRhdGVNYXJnaW4oKSB7IG1faGFzVmFsaWRNYXJnaW4gPSBmYWxzZTsg
fQorICAgIHZvaWQgaW52YWxpZGF0ZUJvcmRlcigpIHsgbV9oYXNWYWxpZEJvcmRlciA9IGZhbHNl
OyB9CisgICAgdm9pZCBpbnZhbGlkYXRlUGFkZGluZygpIHsgbV9oYXNWYWxpZFBhZGRpbmcgPSBm
YWxzZTsgfQorCisgICAgYm9vbCBoYXNWYWxpZFBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9o
YXNWYWxpZFRvcCAmJiBtX2hhc1ZhbGlkTGVmdDsgfQorICAgIGJvb2wgaGFzVmFsaWRTaXplKCkg
Y29uc3QgeyByZXR1cm4gbV9oYXNWYWxpZFdpZHRoICYmIG1faGFzVmFsaWRIZWlnaHQ7IH0KKyAg
ICBib29sIGhhc1ZhbGlkR2VvbWV0cnkoKSBjb25zdCB7IHJldHVybiBoYXNWYWxpZFBvc2l0aW9u
KCkgJiYgaGFzVmFsaWRTaXplKCk7IH0KKyAgICAKKyAgICB2b2lkIHNldEhhc1ZhbGlkUG9zaXRp
b24oKTsKKyAgICB2b2lkIHNldEhhc1ZhbGlkU2l6ZSgpOworICAgIHZvaWQgc2V0SGFzVmFsaWRH
ZW9tZXRyeSgpOworICAgIAorICAgIHZvaWQgc2V0SGFzVmFsaWRNYXJnaW4oKTsKKyAgICB2b2lk
IHNldEhhc1ZhbGlkQm9yZGVyKCk7CisgICAgdm9pZCBzZXRIYXNWYWxpZFBhZGRpbmcoKTsKKyNl
bmRpZgogCiAgICAgTGF5b3V0UmVjdCBtX3JlY3Q7CisKICAgICBMYXlvdXRVbml0IG1fbWFyZ2lu
VG9wOwogICAgIExheW91dFVuaXQgbV9tYXJnaW5MZWZ0OwogICAgIExheW91dFVuaXQgbV9tYXJn
aW5Cb3R0b207CkBAIC0xMTIsOCArMTI2LDIyMyBAQCBwcml2YXRlOgogICAgIExheW91dFVuaXQg
bV9wYWRkaW5nTGVmdDsKICAgICBMYXlvdXRVbml0IG1fcGFkZGluZ0JvdHRvbTsKICAgICBMYXlv
dXRVbml0IG1fcGFkZGluZ1JpZ2h0OworCisjaWYgIUFTU0VSVF9ESVNBQkxFRAorICAgIGJvb2wg
bV9oYXNWYWxpZFRvcCB7IGZhbHNlIH07CisgICAgYm9vbCBtX2hhc1ZhbGlkTGVmdCB7IGZhbHNl
IH07CisgICAgYm9vbCBtX2hhc1ZhbGlkV2lkdGggeyBmYWxzZSB9OworICAgIGJvb2wgbV9oYXNW
YWxpZEhlaWdodCB7IGZhbHNlIH07CisgICAgYm9vbCBtX2hhc1ZhbGlkTWFyZ2luIHsgZmFsc2Ug
fTsKKyAgICBib29sIG1faGFzVmFsaWRCb3JkZXIgeyBmYWxzZSB9OworICAgIGJvb2wgbV9oYXNW
YWxpZFBhZGRpbmcgeyBmYWxzZSB9OworI2VuZGlmCiB9OwogCisjaWYgIUFTU0VSVF9ESVNBQkxF
RAoraW5saW5lIHZvaWQgQm94OjppbnZhbGlkYXRlUG9zaXRpb24oKQoreworICAgIGludmFsaWRh
dGVUb3AoKTsKKyAgICBpbnZhbGlkYXRlTGVmdCgpOworfQorCitpbmxpbmUgdm9pZCBCb3g6Omlu
dmFsaWRhdGVTaXplKCkKK3sKKyAgICBpbnZhbGlkYXRlV2lkdGgoKTsKKyAgICBpbnZhbGlkYXRl
SGVpZ2h0KCk7Cit9CisKK2lubGluZSB2b2lkIEJveDo6c2V0SGFzVmFsaWRQb3NpdGlvbigpCit7
CisgICAgbV9oYXNWYWxpZFRvcCA9IHRydWU7CisgICAgbV9oYXNWYWxpZExlZnQgPSB0cnVlOwor
fQorCitpbmxpbmUgdm9pZCBCb3g6OnNldEhhc1ZhbGlkU2l6ZSgpCit7CisgICAgbV9oYXNWYWxp
ZFdpZHRoID0gdHJ1ZTsKKyAgICBtX2hhc1ZhbGlkSGVpZ2h0ID0gdHJ1ZTsKK30KKworaW5saW5l
IHZvaWQgQm94OjpzZXRIYXNWYWxpZEdlb21ldHJ5KCkKK3sKKyAgICBzZXRIYXNWYWxpZFBvc2l0
aW9uKCk7CisgICAgc2V0SGFzVmFsaWRTaXplKCk7Cit9CisjZW5kaWYKKworaW5saW5lIExheW91
dFJlY3QgQm94OjpyZWN0KCkgY29uc3QKK3sKKyAgICBBU1NFUlQoaGFzVmFsaWRHZW9tZXRyeSgp
KTsKKyAgICByZXR1cm4gbV9yZWN0OworfQorCitpbmxpbmUgTGF5b3V0VW5pdCBCb3g6OnRvcCgp
IGNvbnN0Cit7CisgICAgQVNTRVJUKG1faGFzVmFsaWRUb3ApOworICAgIHJldHVybiBtX3JlY3Qu
eSgpOworfQorCitpbmxpbmUgTGF5b3V0VW5pdCBCb3g6OmxlZnQoKSBjb25zdAoreworICAgIEFT
U0VSVChtX2hhc1ZhbGlkTGVmdCk7CisgICAgcmV0dXJuIG1fcmVjdC54KCk7Cit9CisKK2lubGlu
ZSBMYXlvdXRVbml0IEJveDo6Ym90dG9tKCkgY29uc3QKK3sKKyAgICBBU1NFUlQobV9oYXNWYWxp
ZFRvcCAmJiBtX2hhc1ZhbGlkSGVpZ2h0KTsKKyAgICByZXR1cm4gbV9yZWN0Lm1heFkoKTsKK30K
KworaW5saW5lIExheW91dFVuaXQgQm94OjpyaWdodCgpIGNvbnN0Cit7CisgICAgQVNTRVJUKG1f
aGFzVmFsaWRMZWZ0ICYmIG1faGFzVmFsaWRXaWR0aCk7CisgICAgcmV0dXJuIG1fcmVjdC5tYXhY
KCk7Cit9CisKK2lubGluZSBMYXlvdXRQb2ludCBCb3g6OnRvcExlZnQoKSBjb25zdAoreworICAg
IEFTU0VSVChoYXNWYWxpZFBvc2l0aW9uKCkpOworICAgIHJldHVybiBtX3JlY3QubG9jYXRpb24o
KTsKK30KKworaW5saW5lIExheW91dFBvaW50IEJveDo6Ym90dG9tUmlnaHQoKSBjb25zdAorewor
ICAgIEFTU0VSVChoYXNWYWxpZEdlb21ldHJ5KCkpOworICAgIHJldHVybiBtX3JlY3QubWF4WE1h
eFlDb3JuZXIoKTsKK30KKworaW5saW5lIExheW91dFNpemUgQm94OjpzaXplKCkgY29uc3QKK3sK
KyAgICBBU1NFUlQoaGFzVmFsaWRTaXplKCkpOworICAgIHJldHVybiBtX3JlY3Quc2l6ZSgpOwor
fQorCitpbmxpbmUgTGF5b3V0VW5pdCBCb3g6OndpZHRoKCkgY29uc3QKK3sKKyAgICBBU1NFUlQo
bV9oYXNWYWxpZFdpZHRoKTsKKyAgICByZXR1cm4gbV9yZWN0LndpZHRoKCk7Cit9CisKK2lubGlu
ZSBMYXlvdXRVbml0IEJveDo6aGVpZ2h0KCkgY29uc3QKK3sKKyAgICBBU1NFUlQobV9oYXNWYWxp
ZEhlaWdodCk7CisgICAgcmV0dXJuIG1fcmVjdC5oZWlnaHQoKTsKK30KKworaW5saW5lIHZvaWQg
Qm94OjpzZXRSZWN0KGNvbnN0IExheW91dFJlY3QmIHJlY3QpCit7CisjaWYgIUFTU0VSVF9ESVNB
QkxFRAorICAgIHNldEhhc1ZhbGlkR2VvbWV0cnkoKTsKKyNlbmRpZgorICAgIG1fcmVjdCA9IHJl
Y3Q7Cit9CisKK2lubGluZSB2b2lkIEJveDo6c2V0VG9wTGVmdChjb25zdCBMYXlvdXRQb2ludCYg
dG9wTGVmdCkKK3sKKyNpZiAhQVNTRVJUX0RJU0FCTEVECisgICAgc2V0SGFzVmFsaWRQb3NpdGlv
bigpOworI2VuZGlmCisgICAgbV9yZWN0LnNldExvY2F0aW9uKHRvcExlZnQpOworfQorCitpbmxp
bmUgdm9pZCBCb3g6OnNldFRvcChMYXlvdXRVbml0IHRvcCkKK3sKKyNpZiAhQVNTRVJUX0RJU0FC
TEVECisgICAgbV9oYXNWYWxpZFRvcCA9IHRydWU7CisjZW5kaWYKKyAgICBtX3JlY3Quc2V0WSh0
b3ApOworfQorCitpbmxpbmUgdm9pZCBCb3g6OnNldExlZnQoTGF5b3V0VW5pdCBsZWZ0KQorewor
I2lmICFBU1NFUlRfRElTQUJMRUQKKyAgICBtX2hhc1ZhbGlkTGVmdCA9IHRydWU7CisjZW5kaWYK
KyAgICBtX3JlY3Quc2V0WChsZWZ0KTsKK30KKworaW5saW5lIHZvaWQgQm94OjpzZXRTaXplKGNv
bnN0IExheW91dFNpemUmIHNpemUpCit7CisjaWYgIUFTU0VSVF9ESVNBQkxFRAorICAgIHNldEhh
c1ZhbGlkU2l6ZSgpOworI2VuZGlmCisgICAgbV9yZWN0LnNldFNpemUoc2l6ZSk7Cit9CisKK2lu
bGluZSB2b2lkIEJveDo6c2V0V2lkdGgoTGF5b3V0VW5pdCB3aWR0aCkKK3sKKyNpZiAhQVNTRVJU
X0RJU0FCTEVECisgICAgbV9oYXNWYWxpZFdpZHRoID0gdHJ1ZTsKKyNlbmRpZgorICAgIG1fcmVj
dC5zZXRXaWR0aCh3aWR0aCk7Cit9CisKK2lubGluZSB2b2lkIEJveDo6c2V0SGVpZ2h0KExheW91
dFVuaXQgaGVpZ2h0KQoreworI2lmICFBU1NFUlRfRElTQUJMRUQKKyAgICBtX2hhc1ZhbGlkSGVp
Z2h0ID0gdHJ1ZTsKKyNlbmRpZgorICAgIG1fcmVjdC5zZXRIZWlnaHQoaGVpZ2h0KTsKK30KKwor
aW5saW5lIHZvaWQgQm94OjpzZXRNYXJnaW4oTGF5b3V0VW5pdCBtYXJnaW5Ub3AsIExheW91dFVu
aXQgbWFyZ2luTGVmdCwgTGF5b3V0VW5pdCBtYXJnaW5SaWdodCwgTGF5b3V0VW5pdCBtYXJnaW5C
b3R0b20pCit7CisjaWYgIUFTU0VSVF9ESVNBQkxFRAorICAgIHZvaWQgc2V0SGFzVmFsaWRNYXJn
aW4oKTsKKyNlbmRpZgorICAgIG1fbWFyZ2luVG9wID0gbWFyZ2luVG9wOworICAgIG1fbWFyZ2lu
TGVmdCA9IG1hcmdpbkxlZnQ7CisgICAgbV9tYXJnaW5Cb3R0b20gPSBtYXJnaW5Cb3R0b207Cisg
ICAgbV9tYXJnaW5SaWdodCA9IG1hcmdpblJpZ2h0OworfQorCitpbmxpbmUgdm9pZCBCb3g6OnNl
dEJvcmRlcihMYXlvdXRVbml0IGJvcmRlclRvcCwgTGF5b3V0VW5pdCBib3JkZXJMZWZ0LCBMYXlv
dXRVbml0IGJvcmRlclJpZ2h0LCBMYXlvdXRVbml0IGJvcmRlckJvdHRvbSkKK3sKKyNpZiAhQVNT
RVJUX0RJU0FCTEVECisgICAgdm9pZCBzZXRIYXNWYWxpZEJvcmRlcigpOworI2VuZGlmCisgICAg
bV9ib3JkZXJUb3AgPSBib3JkZXJUb3A7CisgICAgbV9ib3JkZXJMZWZ0ID0gYm9yZGVyTGVmdDsK
KyAgICBtX2JvcmRlckJvdHRvbSA9IGJvcmRlckJvdHRvbTsKKyAgICBtX2JvcmRlclJpZ2h0ID0g
Ym9yZGVyUmlnaHQ7Cit9CisKK2lubGluZSB2b2lkIEJveDo6c2V0UGFkZGluZyhMYXlvdXRVbml0
IHBhZGRpbmdUb3AsIExheW91dFVuaXQgcGFkZGluZ0xlZnQsIExheW91dFVuaXQgcGFkZGluZ1Jp
Z2h0LCBMYXlvdXRVbml0IHBhZGRpbmdCb3R0b20pCit7CisjaWYgIUFTU0VSVF9ESVNBQkxFRAor
ICAgIHZvaWQgc2V0SGFzVmFsaWRQYWRkaW5nKCk7CisjZW5kaWYKKyAgICBtX3BhZGRpbmdUb3Ag
PSBwYWRkaW5nVG9wOworICAgIG1fcGFkZGluZ0xlZnQgPSBwYWRkaW5nTGVmdDsKKyAgICBtX3Bh
ZGRpbmdCb3R0b20gPSBwYWRkaW5nQm90dG9tOworICAgIG1fcGFkZGluZ1JpZ2h0ID0gcGFkZGlu
Z1JpZ2h0OworfQorCitpbmxpbmUgTGF5b3V0VW5pdCBCb3g6Om1hcmdpblRvcCgpIGNvbnN0Cit7
CisgICAgQVNTRVJUKG1faGFzVmFsaWRNYXJnaW4pOworICAgIHJldHVybiBtX21hcmdpblRvcDsK
K30KKworaW5saW5lIExheW91dFVuaXQgQm94OjptYXJnaW5MZWZ0KCkgY29uc3QKK3sKKyAgICBB
U1NFUlQobV9oYXNWYWxpZE1hcmdpbik7CisgICAgcmV0dXJuIG1fbWFyZ2luTGVmdDsKK30KKwor
aW5saW5lIExheW91dFVuaXQgQm94OjptYXJnaW5Cb3R0b20oKSBjb25zdAoreworICAgIEFTU0VS
VChtX2hhc1ZhbGlkTWFyZ2luKTsKKyAgICByZXR1cm4gbV9tYXJnaW5Cb3R0b207Cit9CisKK2lu
bGluZSBMYXlvdXRVbml0IEJveDo6bWFyZ2luUmlnaHQoKSBjb25zdAoreworICAgIEFTU0VSVCht
X2hhc1ZhbGlkTWFyZ2luKTsKKyAgICByZXR1cm4gbV9tYXJnaW5SaWdodDsKK30KKwogfQogfQog
I2VuZGlmCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>