<?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>156988</bug_id>
          
          <creation_ts>2016-04-25 12:18:39 -0700</creation_ts>
          <short_desc>[GTK] Overlay scrollbars with steppers enabled render incorrectly</short_desc>
          <delta_ts>2016-04-27 23:19:54 -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>WebKitGTK</component>
          <version>Other</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adrian Perez">aperez</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mcatanzaro</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1187009</commentid>
    <comment_count>0</comment_count>
      <attachid>277265</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2016-04-25 12:18:39 -0700</bug_when>
    <thetext>Created attachment 277265
Incorrect on-hover scrollbar using the Zukitre theme

When hovering with the mouse over a scrollbar in Epiphany (or any other application
which uses WebKitGTK+) with certain themes the scrollbar will get thicker than in
normal (non-hovered) state. This happens both with vertical and horizontal scrollbars,
and also with scrollbars nested in an &lt;iframe&gt; or in an HTML element which has
“overflow: scroll” in its CSS rules.

First I thought that this was an issue with the Zukitre theme, but the author
of the theme noticed that setting “-GtkScrollbar-has-backward-stepper” and
“-GtkScrollbar-has-forward-stepper” to “true” seems to cause this issue in
any theme. More info: https://github.com/lassekongo83/zuki-themes/issues/62</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1187275</commentid>
    <comment_count>1</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-04-25 23:16:23 -0700</bug_when>
    <thetext>I&apos;m not surprised, steppers are untested, becase I had no idea how to test them :-P Has that Zukitre theme been adapted to new CSS in GTK 3.20 then?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1187298</commentid>
    <comment_count>2</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2016-04-26 00:59:32 -0700</bug_when>
    <thetext>Yes, the Zukitre theme is updated for GTK+ 3.20 and uses steppers. You can
install it from the “master” branch o the Git repository for testing this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1187323</commentid>
    <comment_count>3</comment_count>
      <attachid>277356</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-04-26 05:14:14 -0700</bug_when>
    <thetext>Created attachment 277356
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1187334</commentid>
    <comment_count>4</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2016-04-26 06:01:20 -0700</bug_when>
    <thetext>Please throw this into 2.12.2 unreviewed; I&apos;ll look at it for trunk maybe tomorrow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1187337</commentid>
    <comment_count>5</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-04-26 06:03:38 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Please throw this into 2.12.2 unreviewed; I&apos;ll look at it for trunk maybe
&gt; tomorrow.

No problem, I can wait for 2.12.2, I should also release 2.13.1 this week from trunk</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1187946</commentid>
    <comment_count>6</comment_count>
      <attachid>277356</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2016-04-27 14:04:44 -0700</bug_when>
    <thetext>Comment on attachment 277356
Patch

The theme code has reached the point where I hardly understand it anymore. :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1188147</commentid>
    <comment_count>7</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-04-27 23:19:54 -0700</bug_when>
    <thetext>Committed r200173: &lt;http://trac.webkit.org/changeset/200173&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>277265</attachid>
            <date>2016-04-25 12:18:39 -0700</date>
            <delta_ts>2016-04-25 12:18:39 -0700</delta_ts>
            <desc>Incorrect on-hover scrollbar using the Zukitre theme</desc>
            <filename>wrong-scrollbar-on-hover.png</filename>
            <type>image/png</type>
            <size>5598</size>
            <attacher name="Adrian Perez">aperez</attacher>
            
              <data encoding="base64">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
Ve7X+zOf1MINSTpm9Ff7QC+VZXyn1bOitOS7X2qWbWV712nVlzlybWGRu61A+z5eprhNebKf3Knl
0+fp70m5qnRvqZbux/Tdhi06Yq31wBV1P4bT9wY9EjlQrexpWvPkKI16aIye/kemTO1u1cRR16n2
ZGU/9q2WTn1MEx55RNPeTZcpdJimjO91ZhvHMf206WeVt+2rwWGnXjTNLTqq67Vd1CX8Ol1/Y0+1
a2aUZJRP6HVq696w/eZ8Y9jMcOWtHuLi4mq+7njSpEk1wYWGhmrZsmWXZ3mZl5srSfL28VFAQEC9
2wcEBMjbx0cni4tr7ntR3Dvozqkv6L5WYerZPUieJ7frpfHT9GFekrZnlatLYYoyS5zyCB+qKXPG
q7M9TR+t3qDUqlZyWB2qOFL37aUH1umdbQUytrtHzy6ZqJ7eVmWum6mpq9L07f/u1ai7Tr88H9an
C1/Q5v2VumbAVL00daD8TE6d2PaO3ttVLHO74XrxbzPU12JV+rtPaeLSRG16b5OGP3Lq7qZWt+v5
Nc8qonmptr80TtM2HlVmSrbyvD/RN1lWmVsP0byVz+oWP7sy3n1cjy7dfXo+0omf6n6M0X3v1TUh
nRXs872OFmTrQJEkuaptx24K9j57uWYvyVZK0i4ll0kyeCokrLMCvc5sYz+6U18lVyjo7sGqbk5e
PSYqdvVESXYd2xSjiT/tkqnFQD0+8wGFuUkXfarlvGMonfv3xKoyN2j+/PXKqKzeYdveoZlzH1In
96aLzmKxKCEhQZMnT9aBAwckScHBwVq+fLksFsvlic5gOPXyVFZaKqvVKhcXl7pnLKtVZdVnLk/f
92K4+HVWByVo6aKX9WzWcZVaq+ceF6uqrA55hd+q/kFb9GHqXzVh+BcK79pTfYfcpcj+XdTSzSBH
nbfblfXlfuVbJWvWRj1z/8azByq/QOXVU5W9IElfFkhyaa9bRg5RB3eDpEodTctUsd0o3/B+6mYx
SnJTYO/rFeSRqLTsvcq1Nju1vPDwla+rUTK4qLmfl0zKlbWyXIUZ2SpxSN5dItS7pUmSQV7NvWTS
6Z2xqt7HyD7yrT5/dpW2l4Vo5F8Wa0KvKv0QO03zP4nVrOaBen3GDfKpHnLXDqO0YvNDshan638X
TdfCz1/WLM8Avf6nG+VrsOvYzk36uTJIwweF6twPgFVlfaxFS75QrgI0dNoMDWvn2rBZ7rxjeJ7t
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
AAAAAElFTkSuQmCC
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>277356</attachid>
            <date>2016-04-26 05:14:14 -0700</date>
            <delta_ts>2016-04-27 14:04:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wcore-scrollbar-steppers.diff</filename>
            <type>text/plain</type>
            <size>28872</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjOWYxNWM2Li4wYmVmZWIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkg
QEAKKzIwMTYtMDQtMjYgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtHVEtdIE92ZXJsYXkgc2Nyb2xsYmFycyB3aXRoIHN0ZXBwZXJzIGVuYWJs
ZWQgcmVuZGVyIGluY29ycmVjdGx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNTY5ODgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBGaXggcmVuZGVyaW5nIG9mIHNjcm9sbGJhcnMgd2hlbiB1c2luZyBHVEsr
IHRoZW1lcyBoYXZpbmcgc3RlcHBlciBidXR0b25zLgorCisgICAgICAgICogcGxhdGZvcm0vZ3Rr
L1JlbmRlclRoZW1lR2FkZ2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQm94
R2FkZ2V0OjpSZW5kZXJUaGVtZUJveEdhZGdldCk6IFJlY2VpdmUgdGhlIGJveCBvcmllbnRhdGlv
biBhcyBjb25zdHJ1Y3RvciBwYXJhbWV0ZXIuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZUJveEdhZGdldDo6cHJlZmVycmVkU2l6ZSk6IEZpeCB0aGUgcHJlZmVycmVkIHNpemUgY2FsY3Vs
YXRpb24gdGFraW5nIGludG8gYWNjb3VudCB0aGUgYm94IG9yaWVudGF0aW9uLgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGhlbWVTY3JvbGxiYXJHYWRnZXQ6OnJlbmRlclN0ZXBwZXIpOiBOZXcg
bWV0aG9kIHRvIHJlbmRlciBzY3JvbGxiYXIgc3RlcHBlcnMuCisgICAgICAgICogcGxhdGZvcm0v
Z3RrL1JlbmRlclRoZW1lR2FkZ2V0Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUdh
ZGdldDo6Y29udGV4dCk6IE1ha2UgdGhpcyBwdWJsaWMgaW5zdGVhZCBvZiBwcm90ZWN0ZWQuCisg
ICAgICAgICogcGxhdGZvcm0vZ3RrL1Njcm9sbEFuaW1hdG9yR3RrLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNjcm9sbEFuaW1hdG9yR3RrOjp1cGRhdGVPdmVybGF5U2Nyb2xsYmFyc09wYWNpdHkp
OiBJbnZhbGlkYXRlIHRoZSB3aG9sZSBzY3JvbGxiYXJzIGluc3RlYWQgb2YganVzdAorICAgICAg
ICB0aGUgdGh1bWIgd2hlbiBvcGFjaXR5IGNoYW5nZXMsIGJlY2F1c2UgdGhlbWVzIGNhbiBhY3R1
YWxseSByZW5kZXIgdGhlIHRyb3VnaCBvciBldmVuIHN0ZXBwZXIgYnV0dG9ucyB3aGVuIGluCisg
ICAgICAgIGluZGljYXRvciBtb2RlIHRvby4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvU2Nyb2xs
YmFyVGhlbWVHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWVHdGs6Omhh
c0J1dHRvbnMpOiBQcm9wZXJseSBpbXBsZW1lbnQgdGhpcyBtZXRob2QgaW5zdGVhZCBvZiByZXR1
cm5pbmcgdHJ1ZSB1bmNvbmRpdGlvbmFsbHkuCisgICAgICAgIChXZWJDb3JlOjpjb250ZW50c0dh
ZGdldEZvckxheW91dCk6IFBhc3Mgb3JpZW50YXRpb24gdG8gUmVuZGVyVGhlbWVCb3hHYWRnZXQg
Y29uc3RydWN0b3IuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXJUaGVtZUd0azo6dHJhY2tS
ZWN0KTogRml4IHRoZSBjYWxjdWxhdGlvbiBvZiB0aGUgdHJhY2sgcmVjdCB0YWtpbmcgc3RlcHBl
ciBidXR0b25zIGludG8gYWNjb3VudC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhclRoZW1l
R3RrOjpiYWNrQnV0dG9uUmVjdCk6IEZpeCB0aGUgY2FsY3VsYXRpb24gb2YgdGhlIHN0ZXBwZXIg
YnV0dG9uIHJlY3RhbmdsZS4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhclRoZW1lR3RrOjpm
b3J3YXJkQnV0dG9uUmVjdCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyVGhl
bWVHdGs6OnBhaW50KTogVXNlIFJlbmRlclRoZW1lU2Nyb2xsYmFyR2FkZ2V0OjpyZW5kZXJTdGVw
cGVyKCkgdG8gcmVuZGVyIHRoZSBzdGVwcGVyCisgICAgICAgIGJ1dHRvbnMsIGFuZCBmaXggdGhl
IGNhbGN1bGF0aW9uIG9mIHRoZSBzdGVwcGVycyBidXR0b24gcmVjdGFuZ2xlLgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWVHdGs6OmhhbmRsZU1vdXNlUHJlc3NFdmVudCk6IEhhbmRs
ZSBjbGlja3Mgb24gc3RlcHBlciBidXR0b25zLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFy
VGhlbWVHdGs6OnNjcm9sbGJhclRoaWNrbmVzcyk6IEZpeCB0aGUgY2FsY3VsYXRpb24gb2YgdGhl
IHNjcm9sbGJhciB0aGlja25lc3MuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXJUaGVtZUd0
azo6bWluaW11bVRodW1iTGVuZ3RoKTogUGFzcyBvcmllbnRhdGlvbiB0byBSZW5kZXJUaGVtZUJv
eEdhZGdldCBjb25zdHJ1Y3Rvci4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvU2Nyb2xsYmFyVGhl
bWVHdGsuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVHdGsuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6bWVudUxpc3RDb2xvcik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyVGhlbWVHdGs6OnBvcHVwSW50ZXJuYWxQYWRkaW5nQm94KTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUaGVtZUd0azo6cGFpbnRNZW51TGlzdCk6IERpdHRvLgorCiAyMDE2LTA0
LTI1ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92ZSB0
aGUgYnVpbGQgZmxhZyBmb3IgdGVtcGxhdGUgZWxlbWVudHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUdhZGdldC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHYWRnZXQuY3BwCmluZGV4IDYxNjZlMWUuLmJmZjc4
NjNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVH
YWRnZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUdh
ZGdldC5jcHAKQEAgLTE5OSw4ICsxOTksOSBAQCB2b2lkIFJlbmRlclRoZW1lR2FkZ2V0OjpyZW5k
ZXJGb2N1cyhjYWlyb190KiBjciwgY29uc3QgRmxvYXRSZWN0JiBmb2N1c1JlY3QpCiAgICAgZ3Rr
X3JlbmRlcl9mb2N1cyhtX2NvbnRleHQuZ2V0KCksIGNyLCByZWN0LngoKSwgcmVjdC55KCksIHJl
Y3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSk7CiB9CiAKLVJlbmRlclRoZW1lQm94R2FkZ2V0OjpS
ZW5kZXJUaGVtZUJveEdhZGdldChjb25zdCBSZW5kZXJUaGVtZUdhZGdldDo6SW5mbyYgaW5mbywg
Y29uc3QgVmVjdG9yPFJlbmRlclRoZW1lR2FkZ2V0OjpJbmZvPiBjaGlsZHJlbiwgUmVuZGVyVGhl
bWVHYWRnZXQqIHBhcmVudCkKK1JlbmRlclRoZW1lQm94R2FkZ2V0OjpSZW5kZXJUaGVtZUJveEdh
ZGdldChjb25zdCBSZW5kZXJUaGVtZUdhZGdldDo6SW5mbyYgaW5mbywgR3RrT3JpZW50YXRpb24g
b3JpZW50YXRpb24sIGNvbnN0IFZlY3RvcjxSZW5kZXJUaGVtZUdhZGdldDo6SW5mbz4gY2hpbGRy
ZW4sIFJlbmRlclRoZW1lR2FkZ2V0KiBwYXJlbnQpCiAgICAgOiBSZW5kZXJUaGVtZUdhZGdldChp
bmZvLCBwYXJlbnQsIFZlY3RvcjxSZW5kZXJUaGVtZUdhZGdldDo6SW5mbz4oKSwgMCkKKyAgICAs
IG1fb3JpZW50YXRpb24ob3JpZW50YXRpb24pCiB7CiAgICAgbV9jaGlsZHJlbi5yZXNlcnZlQ2Fw
YWNpdHkoY2hpbGRyZW4uc2l6ZSgpKTsKICAgICB1bnNpZ25lZCBpbmRleCA9IDA7CkBAIC0yMTAs
MTAgKzIxMSwyMSBAQCBSZW5kZXJUaGVtZUJveEdhZGdldDo6UmVuZGVyVGhlbWVCb3hHYWRnZXQo
Y29uc3QgUmVuZGVyVGhlbWVHYWRnZXQ6OkluZm8mIGluZm8sCiAKIEludFNpemUgUmVuZGVyVGhl
bWVCb3hHYWRnZXQ6OnByZWZlcnJlZFNpemUoKSBjb25zdAogewotICAgIEludFNpemUgbWluU2l6
ZSA9IFJlbmRlclRoZW1lR2FkZ2V0OjpwcmVmZXJyZWRTaXplKCk7Ci0gICAgZm9yIChjb25zdCBh
dXRvJiBjaGlsZCA6IG1fY2hpbGRyZW4pCi0gICAgICAgIG1pblNpemUgKz0gY2hpbGQtPnByZWZl
cnJlZFNpemUoKTsKLSAgICByZXR1cm4gbWluU2l6ZTsKKyAgICBJbnRTaXplIGNoaWxkcmVuU2l6
ZTsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGNoaWxkIDogbV9jaGlsZHJlbikgeworICAgICAgICBJ
bnRTaXplIGNoaWxkU2l6ZSA9IGNoaWxkLT5wcmVmZXJyZWRTaXplKCk7CisgICAgICAgIHN3aXRj
aCAobV9vcmllbnRhdGlvbikgeworICAgICAgICBjYXNlIEdUS19PUklFTlRBVElPTl9IT1JJWk9O
VEFMOgorICAgICAgICAgICAgY2hpbGRyZW5TaXplLnNldFdpZHRoKGNoaWxkcmVuU2l6ZS53aWR0
aCgpICsgY2hpbGRTaXplLndpZHRoKCkpOworICAgICAgICAgICAgY2hpbGRyZW5TaXplLnNldEhl
aWdodChzdGQ6Om1heChjaGlsZHJlblNpemUuaGVpZ2h0KCksIGNoaWxkU2l6ZS5oZWlnaHQoKSkp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgR1RLX09SSUVOVEFUSU9OX1ZFUlRJ
Q0FMOgorICAgICAgICAgICAgY2hpbGRyZW5TaXplLnNldFdpZHRoKHN0ZDo6bWF4KGNoaWxkcmVu
U2l6ZS53aWR0aCgpLCBjaGlsZFNpemUud2lkdGgoKSkpOworICAgICAgICAgICAgY2hpbGRyZW5T
aXplLnNldEhlaWdodChjaGlsZHJlblNpemUuaGVpZ2h0KCkgKyBjaGlsZFNpemUuaGVpZ2h0KCkp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIFJlbmRl
clRoZW1lR2FkZ2V0OjpwcmVmZXJyZWRTaXplKCkuZXhwYW5kZWRUbyhjaGlsZHJlblNpemUpOwog
fQogCiBSZW5kZXJUaGVtZVRleHRGaWVsZEdhZGdldDo6UmVuZGVyVGhlbWVUZXh0RmllbGRHYWRn
ZXQoY29uc3QgUmVuZGVyVGhlbWVHYWRnZXQ6OkluZm8mIGluZm8sIFJlbmRlclRoZW1lR2FkZ2V0
KiBwYXJlbnQsIGNvbnN0IFZlY3RvcjxSZW5kZXJUaGVtZUdhZGdldDo6SW5mbz4gc2libGluZ3Ms
IHVuc2lnbmVkIHBvc2l0aW9uKQpAQCAtMzQ4LDYgKzM2MCwyNyBAQCBSZW5kZXJUaGVtZVNjcm9s
bGJhckdhZGdldDo6UmVuZGVyVGhlbWVTY3JvbGxiYXJHYWRnZXQoY29uc3QgUmVuZGVyVGhlbWVH
YWRnZXQ6OgogICAgICAgICBtX3N0ZXBwZXJzIHw9IFN0ZXBwZXJzOjpTZWNvbmRhcnlGb3J3YXJk
OwogfQogCit2b2lkIFJlbmRlclRoZW1lU2Nyb2xsYmFyR2FkZ2V0OjpyZW5kZXJTdGVwcGVyKGNh
aXJvX3QqIGNyLCBjb25zdCBGbG9hdFJlY3QmIHBhaW50UmVjdCwgUmVuZGVyVGhlbWVHYWRnZXQq
IHN0ZXBwZXJHYWRnZXQsIEd0a09yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBTdGVwcGVycyBzdGVw
cGVyKQoreworICAgIEZsb2F0UmVjdCBjb250ZW50c1JlY3Q7CisgICAgc3RlcHBlckdhZGdldC0+
cmVuZGVyKGNyLCBwYWludFJlY3QsICZjb250ZW50c1JlY3QpOworICAgIGRvdWJsZSBhbmdsZTsK
KyAgICBzd2l0Y2ggKHN0ZXBwZXIpIHsKKyAgICBjYXNlIFN0ZXBwZXJzOjpCYWNrd2FyZDoKKyAg
ICBjYXNlIFN0ZXBwZXJzOjpTZWNvbmRhcnlCYWNrd2FyZDoKKyAgICAgICAgYW5nbGUgPSBvcmll
bnRhdGlvbiA9PSBHVEtfT1JJRU5UQVRJT05fVkVSVElDQUwgPyAwIDogMyAqIChHX1BJIC8gMik7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU3RlcHBlcnM6OkZvcndhcmQ6CisgICAgY2FzZSBT
dGVwcGVyczo6U2Vjb25kYXJ5Rm9yd2FyZDoKKyAgICAgICAgYW5nbGUgPSBvcmllbnRhdGlvbiA9
PSBHVEtfT1JJRU5UQVRJT05fVkVSVElDQUwgPyBHX1BJIC8gMiA6IEdfUEk7CisgICAgICAgIGJy
ZWFrOworICAgIH0KKworICAgIGludCBzdGVwcGVyU2l6ZSA9IHN0ZDo6bWF4KGNvbnRlbnRzUmVj
dC53aWR0aCgpLCBjb250ZW50c1JlY3QuaGVpZ2h0KCkpOworICAgIGd0a19yZW5kZXJfYXJyb3co
c3RlcHBlckdhZGdldC0+Y29udGV4dCgpLCBjciwgYW5nbGUsIGNvbnRlbnRzUmVjdC54KCkgKyAo
Y29udGVudHNSZWN0LndpZHRoKCkgLSBzdGVwcGVyU2l6ZSkgLyAyLAorICAgICAgICBjb250ZW50
c1JlY3QueSgpICsgKGNvbnRlbnRzUmVjdC5oZWlnaHQoKSAtIHN0ZXBwZXJTaXplKSAvIDIsIHN0
ZXBwZXJTaXplKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gR1RL
X0NIRUNLX1ZFUlNJT04oMywgMjAsIDApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ndGsvUmVuZGVyVGhlbWVHYWRnZXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0
ay9SZW5kZXJUaGVtZUdhZGdldC5oCmluZGV4IGU1MWRiYmIuLjlmZDhiNjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUdhZGdldC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUdhZGdldC5oCkBAIC03NSw4ICs3
NSw5IEBAIHB1YmxpYzoKICAgICBDb2xvciBiYWNrZ3JvdW5kQ29sb3IoKSBjb25zdDsKICAgICBk
b3VibGUgb3BhY2l0eSgpIGNvbnN0OwogCi1wcm90ZWN0ZWQ6CiAgICAgR3RrU3R5bGVDb250ZXh0
KiBjb250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV9jb250ZXh0LmdldCgpOyB9CisKK3Byb3RlY3Rl
ZDoKICAgICBHdGtCb3JkZXIgbWFyZ2luQm94KCkgY29uc3Q7CiAgICAgR3RrQm9yZGVyIGJvcmRl
ckJveCgpIGNvbnN0OwogICAgIEd0a0JvcmRlciBwYWRkaW5nQm94KCkgY29uc3Q7CkBAIC04Niw3
ICs4Nyw3IEBAIHByb3RlY3RlZDoKIAogY2xhc3MgUmVuZGVyVGhlbWVCb3hHYWRnZXQgZmluYWwg
OiBwdWJsaWMgUmVuZGVyVGhlbWVHYWRnZXQgewogcHVibGljOgotICAgIFJlbmRlclRoZW1lQm94
R2FkZ2V0KGNvbnN0IFJlbmRlclRoZW1lR2FkZ2V0OjpJbmZvJiwgY29uc3QgVmVjdG9yPFJlbmRl
clRoZW1lR2FkZ2V0OjpJbmZvPiBjaGlsZHJlbiwgUmVuZGVyVGhlbWVHYWRnZXQqIHBhcmVudCA9
IG51bGxwdHIpOworICAgIFJlbmRlclRoZW1lQm94R2FkZ2V0KGNvbnN0IFJlbmRlclRoZW1lR2Fk
Z2V0OjpJbmZvJiwgR3RrT3JpZW50YXRpb24sIGNvbnN0IFZlY3RvcjxSZW5kZXJUaGVtZUdhZGdl
dDo6SW5mbz4gY2hpbGRyZW4sIFJlbmRlclRoZW1lR2FkZ2V0KiBwYXJlbnQgPSBudWxscHRyKTsK
IAogICAgIEludFNpemUgcHJlZmVycmVkU2l6ZSgpIGNvbnN0IG92ZXJyaWRlOwogCkBAIC05NCw2
ICs5NSw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBWZWN0b3I8c3RkOjp1bmlxdWVfcHRy
PFJlbmRlclRoZW1lR2FkZ2V0Pj4gbV9jaGlsZHJlbjsKKyAgICBHdGtPcmllbnRhdGlvbiBtX29y
aWVudGF0aW9uIHsgR1RLX09SSUVOVEFUSU9OX0hPUklaT05UQUwgfTsKIH07CiAKIGNsYXNzIFJl
bmRlclRoZW1lVGV4dEZpZWxkR2FkZ2V0IGZpbmFsIDogcHVibGljIFJlbmRlclRoZW1lR2FkZ2V0
IHsKQEAgLTE1OSw2ICsxNjEsOCBAQCBwdWJsaWM6CiAgICAgfTsKICAgICBPcHRpb25TZXQ8U3Rl
cHBlcnM+IHN0ZXBwZXJzKCkgY29uc3QgeyByZXR1cm4gbV9zdGVwcGVyczsgfTsKIAorICAgIHZv
aWQgcmVuZGVyU3RlcHBlcihjYWlyb190KiwgY29uc3QgRmxvYXRSZWN0JiwgUmVuZGVyVGhlbWVH
YWRnZXQqLCBHdGtPcmllbnRhdGlvbiwgU3RlcHBlcnMpOworCiBwcml2YXRlOgogICAgIE9wdGlv
blNldDxTdGVwcGVycz4gbV9zdGVwcGVyczsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsQW5pbWF0b3JHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3RrL1Njcm9sbEFuaW1hdG9yR3RrLmNwcAppbmRleCBiM2IyY2JkLi4xM2U2MzU0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsQW5pbWF0b3JHdGsu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxBbmltYXRvckd0ay5j
cHAKQEAgLTE1MywxMyArMTUzLDEzIEBAIHZvaWQgU2Nyb2xsQW5pbWF0b3JHdGs6OnVwZGF0ZU92
ZXJsYXlTY3JvbGxiYXJzT3BhY2l0eSgpCiAgICAgaWYgKG1fdmVydGljYWxPdmVybGF5U2Nyb2xs
YmFyICYmIG1fb3ZlcmxheVNjcm9sbGJhckFuaW1hdGlvbkN1cnJlbnQgIT0gbV92ZXJ0aWNhbE92
ZXJsYXlTY3JvbGxiYXItPm9wYWNpdHkoKSkgewogICAgICAgICBtX3ZlcnRpY2FsT3ZlcmxheVNj
cm9sbGJhci0+c2V0T3BhY2l0eShtX292ZXJsYXlTY3JvbGxiYXJBbmltYXRpb25DdXJyZW50KTsK
ICAgICAgICAgaWYgKG1fdmVydGljYWxPdmVybGF5U2Nyb2xsYmFyLT5ob3ZlcmVkUGFydCgpID09
IE5vUGFydCkKLSAgICAgICAgICAgIFNjcm9sbGJhclRoZW1lOjp0aGVtZSgpLmludmFsaWRhdGVQ
YXJ0KCptX3ZlcnRpY2FsT3ZlcmxheVNjcm9sbGJhciwgVGh1bWJQYXJ0KTsKKyAgICAgICAgICAg
IG1fdmVydGljYWxPdmVybGF5U2Nyb2xsYmFyLT5pbnZhbGlkYXRlKCk7CiAgICAgfQogCiAgICAg
aWYgKG1faG9yaXpvbnRhbE92ZXJsYXlTY3JvbGxiYXIgJiYgbV9vdmVybGF5U2Nyb2xsYmFyQW5p
bWF0aW9uQ3VycmVudCAhPSBtX2hvcml6b250YWxPdmVybGF5U2Nyb2xsYmFyLT5vcGFjaXR5KCkp
IHsKICAgICAgICAgbV9ob3Jpem9udGFsT3ZlcmxheVNjcm9sbGJhci0+c2V0T3BhY2l0eShtX292
ZXJsYXlTY3JvbGxiYXJBbmltYXRpb25DdXJyZW50KTsKICAgICAgICAgaWYgKG1faG9yaXpvbnRh
bE92ZXJsYXlTY3JvbGxiYXItPmhvdmVyZWRQYXJ0KCkgPT0gTm9QYXJ0KQotICAgICAgICAgICAg
U2Nyb2xsYmFyVGhlbWU6OnRoZW1lKCkuaW52YWxpZGF0ZVBhcnQoKm1faG9yaXpvbnRhbE92ZXJs
YXlTY3JvbGxiYXIsIFRodW1iUGFydCk7CisgICAgICAgICAgICBtX2hvcml6b250YWxPdmVybGF5
U2Nyb2xsYmFyLT5pbnZhbGlkYXRlKCk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsYmFyVGhlbWVHdGsuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3RrL1Njcm9sbGJhclRoZW1lR3RrLmNwcAppbmRleCBiZWQ5ZGI2Li5iZjZm
ZDg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsYmFyVGhl
bWVHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxiYXJUaGVt
ZUd0ay5jcHAKQEAgLTEyOSw2ICsxMjksMTEgQEAgdm9pZCBTY3JvbGxiYXJUaGVtZUd0azo6dXBk
YXRlVGhlbWVQcm9wZXJ0aWVzKCkKIH0KICNlbmRpZiAvLyBHVEtfQ0hFQ0tfVkVSU0lPTigzLCAy
MCwgMCkKIAorYm9vbCBTY3JvbGxiYXJUaGVtZUd0azo6aGFzQnV0dG9ucyhTY3JvbGxiYXImIHNj
cm9sbGJhcikKK3sKKyAgICByZXR1cm4gc2Nyb2xsYmFyLmVuYWJsZWQoKSAmJiAobV9oYXNCYWNr
QnV0dG9uU3RhcnRQYXJ0IHx8IG1faGFzRm9yd2FyZEJ1dHRvbkVuZFBhcnQgfHwgbV9oYXNCYWNr
QnV0dG9uRW5kUGFydCB8fCBtX2hhc0ZvcndhcmRCdXR0b25TdGFydFBhcnQpOworfQorCiAjaWYg
R1RLX0NIRUNLX1ZFUlNJT04oMywgMjAsIDApCiBzdGF0aWMgR3RrU3RhdGVGbGFncyBzY3JvbGxi
YXJQYXJ0U3RhdGVGbGFncyhTY3JvbGxiYXImIHNjcm9sbGJhciwgU2Nyb2xsYmFyUGFydCBwYXJ0
LCBib29sIHBhaW50aW5nID0gZmFsc2UpCiB7CkBAIC0xODUsNyArMTkwLDcgQEAgc3RhdGljIHN0
ZDo6dW5pcXVlX3B0cjxSZW5kZXJUaGVtZUdhZGdldD4gc2Nyb2xsYmFyR2FkZ2V0Rm9yTGF5b3V0
KFNjcm9sbGJhciYgc2MKICAgICByZXR1cm4gUmVuZGVyVGhlbWVHYWRnZXQ6OmNyZWF0ZShpbmZv
KTsKIH0KIAotc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJUaGVtZUJveEdhZGdldD4gY29u
dGVudHNHYWRnZXRGb3JMYXlvdXQoU2Nyb2xsYmFyJiBzY3JvbGxiYXIsIFJlbmRlclRoZW1lR2Fk
Z2V0KiBwYXJlbnQsIEludFJlY3QmIGNvbnRlbnRzUmVjdCwgVmVjdG9yPGludCwgND4gc3RlcHBl
cnNQb3NpdGlvbikKK3N0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVyVGhlbWVCb3hHYWRnZXQ+
IGNvbnRlbnRzR2FkZ2V0Rm9yTGF5b3V0KFNjcm9sbGJhciYgc2Nyb2xsYmFyLCBSZW5kZXJUaGVt
ZUdhZGdldCogcGFyZW50LCBJbnRSZWN0JiBjb250ZW50c1JlY3QsIFZlY3RvcjxpbnQsIDQ+JiBz
dGVwcGVyc1Bvc2l0aW9uKQogewogICAgIFZlY3RvcjxSZW5kZXJUaGVtZUdhZGdldDo6SW5mbz4g
Y2hpbGRyZW47CiAgICAgYXV0byBzdGVwcGVycyA9IHN0YXRpY19jYXN0PFJlbmRlclRoZW1lU2Ny
b2xsYmFyR2FkZ2V0Kj4ocGFyZW50KS0+c3RlcHBlcnMoKTsKQEAgLTIwNyw3ICsyMTIsOCBAQCBz
dGF0aWMgc3RkOjp1bmlxdWVfcHRyPFJlbmRlclRoZW1lQm94R2FkZ2V0PiBjb250ZW50c0dhZGdl
dEZvckxheW91dChTY3JvbGxiYXImCiAgICAgICAgIGNoaWxkcmVuLmFwcGVuZCh7IFJlbmRlclRo
ZW1lR2FkZ2V0OjpUeXBlOjpHZW5lcmljLCAiYnV0dG9uIiwgc2Nyb2xsYmFyUGFydFN0YXRlRmxh
Z3Moc2Nyb2xsYmFyLCBGb3J3YXJkQnV0dG9uRW5kUGFydCksIHsgImRvd24iIH0gfSk7CiAgICAg
fQogICAgIFJlbmRlclRoZW1lR2FkZ2V0OjpJbmZvIGluZm8gPSB7IFJlbmRlclRoZW1lR2FkZ2V0
OjpUeXBlOjpHZW5lcmljLCAiY29udGVudHMiLCBHVEtfU1RBVEVfRkxBR19OT1JNQUwsIHsgfSB9
OwotICAgIGF1dG8gY29udGVudHNHYWRnZXQgPSBzdGQ6Om1ha2VfdW5pcXVlPFJlbmRlclRoZW1l
Qm94R2FkZ2V0PihpbmZvLCBjaGlsZHJlbiwgcGFyZW50KTsKKyAgICBhdXRvIGNvbnRlbnRzR2Fk
Z2V0ID0gc3RkOjptYWtlX3VuaXF1ZTxSZW5kZXJUaGVtZUJveEdhZGdldD4oaW5mbywgc2Nyb2xs
YmFyLm9yaWVudGF0aW9uKCkgPT0gVmVydGljYWxTY3JvbGxiYXIgPyBHVEtfT1JJRU5UQVRJT05f
VkVSVElDQUwgOiBHVEtfT1JJRU5UQVRJT05fSE9SSVpPTlRBTCwKKyAgICAgICAgY2hpbGRyZW4s
IHBhcmVudCk7CiAKICAgICBHdGtCb3JkZXIgc2Nyb2xsYmFyQ29udGVudHNCb3ggPSBwYXJlbnQt
PmNvbnRlbnRzQm94KCk7CiAgICAgR3RrQm9yZGVyIGNvbnRlbnRzQ29udGVudHNCb3ggPSBjb250
ZW50c0dhZGdldC0+Y29udGVudHNCb3goKTsKQEAgLTIzMCwxNiArMjM2LDI0IEBAIEludFJlY3Qg
U2Nyb2xsYmFyVGhlbWVHdGs6OnRyYWNrUmVjdChTY3JvbGxiYXImIHNjcm9sbGJhciwgYm9vbCAv
KnBhaW50aW5nKi8pCiAgICAgYXV0byBjb250ZW50c0dhZGdldCA9IGNvbnRlbnRzR2FkZ2V0Rm9y
TGF5b3V0KHNjcm9sbGJhciwgc2Nyb2xsYmFyR2FkZ2V0LmdldCgpLCByZWN0LCBzdGVwcGVyc1Bv
c2l0aW9uKTsKIAogICAgIGlmIChzdGVwcGVyc1Bvc2l0aW9uWzBdICE9IC0xKSB7Ci0gICAgICAg
IGlmIChzY3JvbGxiYXIub3JpZW50YXRpb24oKSA9PSBWZXJ0aWNhbFNjcm9sbGJhcikKLSAgICAg
ICAgICAgIHJlY3QubW92ZSgwLCBjb250ZW50c0dhZGdldC0+Y2hpbGQoc3RlcHBlcnNQb3NpdGlv
blswXSktPnByZWZlcnJlZFNpemUoKS5oZWlnaHQoKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAg
ICAgIHJlY3QubW92ZShjb250ZW50c0dhZGdldC0+Y2hpbGQoc3RlcHBlcnNQb3NpdGlvblswXSkt
PnByZWZlcnJlZFNpemUoKS53aWR0aCgpLCAwKTsKKyAgICAgICAgSW50U2l6ZSBzdGVwcGVyU2l6
ZSA9IGNvbnRlbnRzR2FkZ2V0LT5jaGlsZChzdGVwcGVyc1Bvc2l0aW9uWzBdKS0+cHJlZmVycmVk
U2l6ZSgpOworICAgICAgICBpZiAoc2Nyb2xsYmFyLm9yaWVudGF0aW9uKCkgPT0gVmVydGljYWxT
Y3JvbGxiYXIpIHsKKyAgICAgICAgICAgIHJlY3QubW92ZSgwLCBzdGVwcGVyU2l6ZS5oZWlnaHQo
KSk7CisgICAgICAgICAgICByZWN0LmNvbnRyYWN0KDAsIHN0ZXBwZXJTaXplLmhlaWdodCgpKTsK
KyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJlY3QubW92ZShzdGVwcGVyU2l6ZS53aWR0
aCgpLCAwKTsKKyAgICAgICAgICAgIHJlY3QuY29udHJhY3Qoc3RlcHBlclNpemUud2lkdGgoKSwg
MCk7CisgICAgICAgIH0KICAgICB9CiAgICAgaWYgKHN0ZXBwZXJzUG9zaXRpb25bMV0gIT0gLTEp
IHsKLSAgICAgICAgaWYgKHNjcm9sbGJhci5vcmllbnRhdGlvbigpID09IFZlcnRpY2FsU2Nyb2xs
YmFyKQotICAgICAgICAgICAgcmVjdC5tb3ZlKDAsIGNvbnRlbnRzR2FkZ2V0LT5jaGlsZChzdGVw
cGVyc1Bvc2l0aW9uWzFdKS0+cHJlZmVycmVkU2l6ZSgpLmhlaWdodCgpKTsKLSAgICAgICAgZWxz
ZQotICAgICAgICAgICAgcmVjdC5tb3ZlKGNvbnRlbnRzR2FkZ2V0LT5jaGlsZChzdGVwcGVyc1Bv
c2l0aW9uWzFdKS0+cHJlZmVycmVkU2l6ZSgpLndpZHRoKCksIDApOworICAgICAgICBJbnRTaXpl
IHN0ZXBwZXJTaXplID0gY29udGVudHNHYWRnZXQtPmNoaWxkKHN0ZXBwZXJzUG9zaXRpb25bMV0p
LT5wcmVmZXJyZWRTaXplKCk7CisgICAgICAgIGlmIChzY3JvbGxiYXIub3JpZW50YXRpb24oKSA9
PSBWZXJ0aWNhbFNjcm9sbGJhcikgeworICAgICAgICAgICAgcmVjdC5tb3ZlKDAsIHN0ZXBwZXJT
aXplLmhlaWdodCgpKTsKKyAgICAgICAgICAgIHJlY3QuY29udHJhY3QoMCwgc3RlcHBlclNpemUu
aGVpZ2h0KCkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmVjdC5tb3ZlKHN0ZXBw
ZXJTaXplLndpZHRoKCksIDApOworICAgICAgICAgICAgcmVjdC5jb250cmFjdChzdGVwcGVyU2l6
ZS53aWR0aCgpLCAwKTsKKyAgICAgICAgfQogICAgIH0KICAgICBpZiAoc3RlcHBlcnNQb3NpdGlv
blsyXSAhPSAtMSkgewogICAgICAgICBpZiAoc2Nyb2xsYmFyLm9yaWVudGF0aW9uKCkgPT0gVmVy
dGljYWxTY3JvbGxiYXIpCkBAIC0zMjcsMTggKzM0MSwxNiBAQCBJbnRSZWN0IFNjcm9sbGJhclRo
ZW1lR3RrOjpiYWNrQnV0dG9uUmVjdChTY3JvbGxiYXImIHNjcm9sbGJhciwgU2Nyb2xsYmFyUGFy
dCBwYQogCiAgICAgLy8gU2Vjb25kYXJ5IGJhY2suCiAgICAgaWYgKHN0ZXBwZXJzUG9zaXRpb25b
MV0gIT0gLTEpIHsKLSAgICAgICAgaWYgKHNjcm9sbGJhci5vcmllbnRhdGlvbigpID09IFZlcnRp
Y2FsU2Nyb2xsYmFyKQotICAgICAgICAgICAgcmVjdC5tb3ZlKDAsIGNvbnRlbnRzR2FkZ2V0LT5j
aGlsZChzdGVwcGVyc1Bvc2l0aW9uWzFdKS0+cHJlZmVycmVkU2l6ZSgpLmhlaWdodCgpKTsKLSAg
ICAgICAgZWxzZQotICAgICAgICAgICAgcmVjdC5tb3ZlKGNvbnRlbnRzR2FkZ2V0LT5jaGlsZChz
dGVwcGVyc1Bvc2l0aW9uWzFdKS0+cHJlZmVycmVkU2l6ZSgpLndpZHRoKCksIDApOworICAgICAg
ICBJbnRTaXplIHByZWZlcnJlZFNpemUgPSBjb250ZW50c0dhZGdldC0+Y2hpbGQoc3RlcHBlcnNQ
b3NpdGlvblsxXSktPnByZWZlcnJlZFNpemUoKTsKKyAgICAgICAgaWYgKHNjcm9sbGJhci5vcmll
bnRhdGlvbigpID09IFZlcnRpY2FsU2Nyb2xsYmFyKSB7CisgICAgICAgICAgICByZWN0Lm1vdmUo
MCwgcHJlZmVycmVkU2l6ZS5oZWlnaHQoKSk7CisgICAgICAgICAgICByZWN0LmNvbnRyYWN0KDAs
IHByZWZlcnJlZFNpemUuaGVpZ2h0KCkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg
cmVjdC5tb3ZlKHByZWZlcnJlZFNpemUud2lkdGgoKSwgMCk7CisgICAgICAgICAgICByZWN0LmNv
bnRyYWN0KDAsIHByZWZlcnJlZFNpemUud2lkdGgoKSk7CisgICAgICAgIH0KICAgICB9CiAKLSAg
ICBJbnRTaXplIHByZWZlcnJlZFNpemUgPSBjb250ZW50c0dhZGdldC0+Y2hpbGQoc3RlcHBlcnNQ
b3NpdGlvblsyXSktPnByZWZlcnJlZFNpemUoKTsKLSAgICBpZiAoc2Nyb2xsYmFyLm9yaWVudGF0
aW9uKCkgPT0gVmVydGljYWxTY3JvbGxiYXIpCi0gICAgICAgIHJlY3QuY29udHJhY3QoMCwgcHJl
ZmVycmVkU2l6ZS5oZWlnaHQoKSk7Ci0gICAgZWxzZQotICAgICAgICByZWN0LmNvbnRyYWN0KHBy
ZWZlcnJlZFNpemUud2lkdGgoKSwgMCk7Ci0KICAgICBpZiAoc3RlcHBlcnNQb3NpdGlvblszXSAh
PSAtMSkgewogICAgICAgICBpZiAoc2Nyb2xsYmFyLm9yaWVudGF0aW9uKCkgPT0gVmVydGljYWxT
Y3JvbGxiYXIpCiAgICAgICAgICAgICByZWN0LmNvbnRyYWN0KDAsIGNvbnRlbnRzR2FkZ2V0LT5j
aGlsZChzdGVwcGVyc1Bvc2l0aW9uWzNdKS0+cHJlZmVycmVkU2l6ZSgpLmhlaWdodCgpKTsKQEAg
LTM0NiwxMCArMzU4LDExIEBAIEludFJlY3QgU2Nyb2xsYmFyVGhlbWVHdGs6OmJhY2tCdXR0b25S
ZWN0KFNjcm9sbGJhciYgc2Nyb2xsYmFyLCBTY3JvbGxiYXJQYXJ0IHBhCiAgICAgICAgICAgICBy
ZWN0LmNvbnRyYWN0KGNvbnRlbnRzR2FkZ2V0LT5jaGlsZChzdGVwcGVyc1Bvc2l0aW9uWzNdKS0+
cHJlZmVycmVkU2l6ZSgpLndpZHRoKCksIDApOwogICAgIH0KIAorICAgIEludFNpemUgcHJlZmVy
cmVkU2l6ZSA9IGNvbnRlbnRzR2FkZ2V0LT5jaGlsZChzdGVwcGVyc1Bvc2l0aW9uWzJdKS0+cHJl
ZmVycmVkU2l6ZSgpOwogICAgIGlmIChzY3JvbGxiYXIub3JpZW50YXRpb24oKSA9PSBWZXJ0aWNh
bFNjcm9sbGJhcikKLSAgICAgICAgcmVjdC5tb3ZlKDAsIHJlY3QuaGVpZ2h0KCkpOworICAgICAg
ICByZWN0Lm1vdmUoMCwgcmVjdC5oZWlnaHQoKSAtIHByZWZlcnJlZFNpemUuaGVpZ2h0KCkpOwog
ICAgIGVsc2UKLSAgICAgICAgcmVjdC5tb3ZlKHJlY3Qud2lkdGgoKSwgMCk7CisgICAgICAgIHJl
Y3QubW92ZShyZWN0LndpZHRoKCkgLSBwcmVmZXJyZWRTaXplLndpZHRoKCksIDApOwogCiAgICAg
cmV0dXJuIEludFJlY3QocmVjdC5sb2NhdGlvbigpLCBwcmVmZXJyZWRTaXplKTsKIH0KQEAgLTM2
NiwxNCArMzc5LDI5IEBAIEludFJlY3QgU2Nyb2xsYmFyVGhlbWVHdGs6OmZvcndhcmRCdXR0b25S
ZWN0KFNjcm9sbGJhciYgc2Nyb2xsYmFyLCBTY3JvbGxiYXJQYXJ0CiAgICAgYXV0byBjb250ZW50
c0dhZGdldCA9IGNvbnRlbnRzR2FkZ2V0Rm9yTGF5b3V0KHNjcm9sbGJhciwgc2Nyb2xsYmFyR2Fk
Z2V0LmdldCgpLCByZWN0LCBzdGVwcGVyc1Bvc2l0aW9uKTsKIAogICAgIGlmIChzdGVwcGVyc1Bv
c2l0aW9uWzBdICE9IC0xKSB7Ci0gICAgICAgIGlmIChzY3JvbGxiYXIub3JpZW50YXRpb24oKSA9
PSBWZXJ0aWNhbFNjcm9sbGJhcikKLSAgICAgICAgICAgIHJlY3QubW92ZSgwLCBjb250ZW50c0dh
ZGdldC0+Y2hpbGQoc3RlcHBlcnNQb3NpdGlvblswXSktPnByZWZlcnJlZFNpemUoKS5oZWlnaHQo
KSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHJlY3QubW92ZShjb250ZW50c0dhZGdldC0+
Y2hpbGQoc3RlcHBlcnNQb3NpdGlvblswXSktPnByZWZlcnJlZFNpemUoKS53aWR0aCgpLCAwKTsK
KyAgICAgICAgSW50U2l6ZSBwcmVmZXJyZWRTaXplID0gY29udGVudHNHYWRnZXQtPmNoaWxkKHN0
ZXBwZXJzUG9zaXRpb25bMF0pLT5wcmVmZXJyZWRTaXplKCk7CisgICAgICAgIGlmIChzY3JvbGxi
YXIub3JpZW50YXRpb24oKSA9PSBWZXJ0aWNhbFNjcm9sbGJhcikgeworICAgICAgICAgICAgcmVj
dC5tb3ZlKDAsIHByZWZlcnJlZFNpemUuaGVpZ2h0KCkpOworICAgICAgICAgICAgcmVjdC5jb250
cmFjdCgwLCBwcmVmZXJyZWRTaXplLmhlaWdodCgpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgIHJlY3QubW92ZShwcmVmZXJyZWRTaXplLndpZHRoKCksIDApOworICAgICAgICAgICAg
cmVjdC5jb250cmFjdChwcmVmZXJyZWRTaXplLndpZHRoKCksIDApOworICAgICAgICB9CiAgICAg
fQogCi0gICAgaWYgKHBhcnQgPT0gRm9yd2FyZEJ1dHRvblN0YXJ0UGFydCkKLSAgICAgICAgcmV0
dXJuIEludFJlY3QocmVjdC5sb2NhdGlvbigpLCBjb250ZW50c0dhZGdldC0+Y2hpbGQoMSktPnBy
ZWZlcnJlZFNpemUoKSk7CisgICAgaWYgKHN0ZXBwZXJzUG9zaXRpb25bMV0gIT0gLTEpIHsKKyAg
ICAgICAgSW50U2l6ZSBwcmVmZXJyZWRTaXplID0gY29udGVudHNHYWRnZXQtPmNoaWxkKHN0ZXBw
ZXJzUG9zaXRpb25bMV0pLT5wcmVmZXJyZWRTaXplKCk7CisgICAgICAgIGlmIChwYXJ0ID09IEZv
cndhcmRCdXR0b25TdGFydFBhcnQpCisgICAgICAgICAgICByZXR1cm4gSW50UmVjdChyZWN0Lmxv
Y2F0aW9uKCksIHByZWZlcnJlZFNpemUpOworCisgICAgICAgIGlmIChzY3JvbGxiYXIub3JpZW50
YXRpb24oKSA9PSBWZXJ0aWNhbFNjcm9sbGJhcikgeworICAgICAgICAgICAgcmVjdC5tb3ZlKDAs
IHByZWZlcnJlZFNpemUuaGVpZ2h0KCkpOworICAgICAgICAgICAgcmVjdC5jb250cmFjdCgwLCBw
cmVmZXJyZWRTaXplLmhlaWdodCgpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJl
Y3QubW92ZShwcmVmZXJyZWRTaXplLndpZHRoKCksIDApOworICAgICAgICAgICAgcmVjdC5jb250
cmFjdChwcmVmZXJyZWRTaXplLndpZHRoKCksIDApOworICAgICAgICB9CisgICAgfQogCiAgICAg
Ly8gRm9yd2FyZCBidXR0b24uCiAgICAgSW50U2l6ZSBwcmVmZXJyZWRTaXplID0gY29udGVudHNH
YWRnZXQtPmNoaWxkKHN0ZXBwZXJzUG9zaXRpb25bM10pLT5wcmVmZXJyZWRTaXplKCk7CkBAIC00
NDIsNiArNDcwLDkgQEAgYm9vbCBTY3JvbGxiYXJUaGVtZUd0azo6cGFpbnQoU2Nyb2xsYmFyJiBz
Y3JvbGxiYXIsIEdyYXBoaWNzQ29udGV4dCYgZ3JhcGhpY3NDb24KICAgICBpZiAoZ3JhcGhpY3ND
b250ZXh0LnBhaW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAg
aWYgKCFzY3JvbGxiYXIuZW5hYmxlZCgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKwogICAgIGRv
dWJsZSBvcGFjaXR5ID0gc2Nyb2xsYmFyLmhvdmVyZWRQYXJ0KCkgPT0gTm9QYXJ0ID8gc2Nyb2xs
YmFyLm9wYWNpdHkoKSA6IDE7CiAgICAgaWYgKCFvcGFjaXR5KQogICAgICAgICByZXR1cm4gdHJ1
ZTsKQEAgLTQ5NSw3ICs1MjYsOCBAQCBib29sIFNjcm9sbGJhclRoZW1lR3RrOjpwYWludChTY3Jv
bGxiYXImIHNjcm9sbGJhciwgR3JhcGhpY3NDb250ZXh0JiBncmFwaGljc0NvbgogICAgICAgICBz
dGVwcGVyc1Bvc2l0aW9uWzNdID0gY2hpbGRyZW4uc2l6ZSgpOwogICAgICAgICBjaGlsZHJlbi5h
cHBlbmQoeyBSZW5kZXJUaGVtZUdhZGdldDo6VHlwZTo6R2VuZXJpYywgImJ1dHRvbiIsIHNjcm9s
bGJhclBhcnRTdGF0ZUZsYWdzKHNjcm9sbGJhciwgRm9yd2FyZEJ1dHRvbkVuZFBhcnQpLCB7ICJk
b3duIiB9IH0pOwogICAgIH0KLSAgICBhdXRvIGNvbnRlbnRzR2FkZ2V0ID0gc3RkOjptYWtlX3Vu
aXF1ZTxSZW5kZXJUaGVtZUJveEdhZGdldD4oaW5mbywgY2hpbGRyZW4sIHNjcm9sbGJhckdhZGdl
dC5nZXQoKSk7CisgICAgYXV0byBjb250ZW50c0dhZGdldCA9IHN0ZDo6bWFrZV91bmlxdWU8UmVu
ZGVyVGhlbWVCb3hHYWRnZXQ+KGluZm8sIHNjcm9sbGJhci5vcmllbnRhdGlvbigpID09IFZlcnRp
Y2FsU2Nyb2xsYmFyID8gR1RLX09SSUVOVEFUSU9OX1ZFUlRJQ0FMIDogR1RLX09SSUVOVEFUSU9O
X0hPUklaT05UQUwsCisgICAgICAgIGNoaWxkcmVuLCBzY3JvbGxiYXJHYWRnZXQuZ2V0KCkpOwog
ICAgIFJlbmRlclRoZW1lR2FkZ2V0KiB0cm91Z2hHYWRnZXQgPSBjb250ZW50c0dhZGdldC0+Y2hp
bGQodHJvdWdoUG9zaXRpb24pOwogCiAgICAgaWYgKG9wYWNpdHkgIT0gMSkgewpAQCAtNTA3LDUy
ICs1MzksNzkgQEAgYm9vbCBTY3JvbGxiYXJUaGVtZUd0azo6cGFpbnQoU2Nyb2xsYmFyJiBzY3Jv
bGxiYXIsIEdyYXBoaWNzQ29udGV4dCYgZ3JhcGhpY3NDb24KICAgICBGbG9hdFJlY3QgY29udGVu
dHNSZWN0OwogICAgIHNjcm9sbGJhckdhZGdldC0+cmVuZGVyKGdyYXBoaWNzQ29udGV4dC5wbGF0
Zm9ybUNvbnRleHQoKS0+Y3IoKSwgcmVjdCwgJmNvbnRlbnRzUmVjdCk7CiAgICAgY29udGVudHNH
YWRnZXQtPnJlbmRlcihncmFwaGljc0NvbnRleHQucGxhdGZvcm1Db250ZXh0KCktPmNyKCksIGNv
bnRlbnRzUmVjdCwgJmNvbnRlbnRzUmVjdCk7Ci0gICAgdHJvdWdoR2FkZ2V0LT5yZW5kZXIoZ3Jh
cGhpY3NDb250ZXh0LnBsYXRmb3JtQ29udGV4dCgpLT5jcigpLCBjb250ZW50c1JlY3QsICZjb250
ZW50c1JlY3QpOwotICAgIEZsb2F0UmVjdCBidXR0b25SZWN0ID0gY29udGVudHNSZWN0OworCiAg
ICAgaWYgKHN0ZXBwZXJzLmNvbnRhaW5zKFJlbmRlclRoZW1lU2Nyb2xsYmFyR2FkZ2V0OjpTdGVw
cGVyczo6QmFja3dhcmQpKSB7CiAgICAgICAgIFJlbmRlclRoZW1lR2FkZ2V0KiBidXR0b25HYWRn
ZXQgPSBjb250ZW50c0dhZGdldC0+Y2hpbGQoc3RlcHBlcnNQb3NpdGlvblswXSk7CisgICAgICAg
IEZsb2F0UmVjdCBidXR0b25SZWN0ID0gY29udGVudHNSZWN0OwogICAgICAgICBpZiAoc2Nyb2xs
YmFyLm9yaWVudGF0aW9uKCkgPT0gVmVydGljYWxTY3JvbGxiYXIpCiAgICAgICAgICAgICBidXR0
b25SZWN0LnNldEhlaWdodChidXR0b25HYWRnZXQtPnByZWZlcnJlZFNpemUoKS5oZWlnaHQoKSk7
CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGJ1dHRvblJlY3Quc2V0V2lkdGgoYnV0dG9uR2Fk
Z2V0LT5wcmVmZXJyZWRTaXplKCkud2lkdGgoKSk7Ci0gICAgICAgIGJ1dHRvbkdhZGdldC0+cmVu
ZGVyKGdyYXBoaWNzQ29udGV4dC5wbGF0Zm9ybUNvbnRleHQoKS0+Y3IoKSwgYnV0dG9uUmVjdCk7
Ci0gICAgICAgIGlmIChzY3JvbGxiYXIub3JpZW50YXRpb24oKSA9PSBWZXJ0aWNhbFNjcm9sbGJh
cikKLSAgICAgICAgICAgIGJ1dHRvblJlY3QubW92ZSgwLCBidXR0b25SZWN0LmhlaWdodCgpKTsK
LSAgICAgICAgZWxzZQotICAgICAgICAgICAgYnV0dG9uUmVjdC5tb3ZlKGJ1dHRvblJlY3Qud2lk
dGgoKSwgMCk7CisgICAgICAgIHN0YXRpY19jYXN0PFJlbmRlclRoZW1lU2Nyb2xsYmFyR2FkZ2V0
Kj4oc2Nyb2xsYmFyR2FkZ2V0LmdldCgpKS0+cmVuZGVyU3RlcHBlcihncmFwaGljc0NvbnRleHQu
cGxhdGZvcm1Db250ZXh0KCktPmNyKCksIGJ1dHRvblJlY3QsIGJ1dHRvbkdhZGdldCwKKyAgICAg
ICAgICAgIHNjcm9sbGJhci5vcmllbnRhdGlvbigpID09IFZlcnRpY2FsU2Nyb2xsYmFyID8gR1RL
X09SSUVOVEFUSU9OX1ZFUlRJQ0FMIDogR1RLX09SSUVOVEFUSU9OX0hPUklaT05UQUwsIFJlbmRl
clRoZW1lU2Nyb2xsYmFyR2FkZ2V0OjpTdGVwcGVyczo6QmFja3dhcmQpOworICAgICAgICBpZiAo
c2Nyb2xsYmFyLm9yaWVudGF0aW9uKCkgPT0gVmVydGljYWxTY3JvbGxiYXIpIHsKKyAgICAgICAg
ICAgIGNvbnRlbnRzUmVjdC5tb3ZlKDAsIGJ1dHRvblJlY3QuaGVpZ2h0KCkpOworICAgICAgICAg
ICAgY29udGVudHNSZWN0LmNvbnRyYWN0KDAsIGJ1dHRvblJlY3QuaGVpZ2h0KCkpOworICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgY29udGVudHNSZWN0Lm1vdmUoYnV0dG9uUmVjdC53aWR0
aCgpLCAwKTsKKyAgICAgICAgICAgIGNvbnRlbnRzUmVjdC5jb250cmFjdChidXR0b25SZWN0Lndp
ZHRoKCksIDApOworICAgICAgICB9CiAgICAgfQogICAgIGlmIChzdGVwcGVycy5jb250YWlucyhS
ZW5kZXJUaGVtZVNjcm9sbGJhckdhZGdldDo6U3RlcHBlcnM6OlNlY29uZGFyeUZvcndhcmQpKSB7
CiAgICAgICAgIFJlbmRlclRoZW1lR2FkZ2V0KiBidXR0b25HYWRnZXQgPSBjb250ZW50c0dhZGdl
dC0+Y2hpbGQoc3RlcHBlcnNQb3NpdGlvblsxXSk7CisgICAgICAgIEZsb2F0UmVjdCBidXR0b25S
ZWN0ID0gY29udGVudHNSZWN0OwogICAgICAgICBpZiAoc2Nyb2xsYmFyLm9yaWVudGF0aW9uKCkg
PT0gVmVydGljYWxTY3JvbGxiYXIpCiAgICAgICAgICAgICBidXR0b25SZWN0LnNldEhlaWdodChi
dXR0b25HYWRnZXQtPnByZWZlcnJlZFNpemUoKS5oZWlnaHQoKSk7CiAgICAgICAgIGVsc2UKICAg
ICAgICAgICAgIGJ1dHRvblJlY3Quc2V0V2lkdGgoYnV0dG9uR2FkZ2V0LT5wcmVmZXJyZWRTaXpl
KCkud2lkdGgoKSk7Ci0gICAgICAgIGJ1dHRvbkdhZGdldC0+cmVuZGVyKGdyYXBoaWNzQ29udGV4
dC5wbGF0Zm9ybUNvbnRleHQoKS0+Y3IoKSwgYnV0dG9uUmVjdCk7CisgICAgICAgIHN0YXRpY19j
YXN0PFJlbmRlclRoZW1lU2Nyb2xsYmFyR2FkZ2V0Kj4oc2Nyb2xsYmFyR2FkZ2V0LmdldCgpKS0+
cmVuZGVyU3RlcHBlcihncmFwaGljc0NvbnRleHQucGxhdGZvcm1Db250ZXh0KCktPmNyKCksIGJ1
dHRvblJlY3QsIGJ1dHRvbkdhZGdldCwKKyAgICAgICAgICAgIHNjcm9sbGJhci5vcmllbnRhdGlv
bigpID09IFZlcnRpY2FsU2Nyb2xsYmFyID8gR1RLX09SSUVOVEFUSU9OX1ZFUlRJQ0FMIDogR1RL
X09SSUVOVEFUSU9OX0hPUklaT05UQUwsIFJlbmRlclRoZW1lU2Nyb2xsYmFyR2FkZ2V0OjpTdGVw
cGVyczo6U2Vjb25kYXJ5Rm9yd2FyZCk7CisgICAgICAgIGlmIChzY3JvbGxiYXIub3JpZW50YXRp
b24oKSA9PSBWZXJ0aWNhbFNjcm9sbGJhcikgeworICAgICAgICAgICAgY29udGVudHNSZWN0Lm1v
dmUoMCwgYnV0dG9uUmVjdC5oZWlnaHQoKSk7CisgICAgICAgICAgICBjb250ZW50c1JlY3QuY29u
dHJhY3QoMCwgYnV0dG9uUmVjdC5oZWlnaHQoKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICBjb250ZW50c1JlY3QubW92ZShidXR0b25SZWN0LndpZHRoKCksIDApOworICAgICAgICAg
ICAgY29udGVudHNSZWN0LmNvbnRyYWN0KGJ1dHRvblJlY3Qud2lkdGgoKSwgMCk7CisgICAgICAg
IH0KKyAgICB9CisKKyAgICBpZiAoc3RlcHBlcnMuY29udGFpbnMoUmVuZGVyVGhlbWVTY3JvbGxi
YXJHYWRnZXQ6OlN0ZXBwZXJzOjpGb3J3YXJkKSkgeworICAgICAgICBSZW5kZXJUaGVtZUdhZGdl
dCogYnV0dG9uR2FkZ2V0ID0gY29udGVudHNHYWRnZXQtPmNoaWxkKHN0ZXBwZXJzUG9zaXRpb25b
M10pOworICAgICAgICBGbG9hdFJlY3QgYnV0dG9uUmVjdCA9IGNvbnRlbnRzUmVjdDsKKyAgICAg
ICAgaWYgKHNjcm9sbGJhci5vcmllbnRhdGlvbigpID09IFZlcnRpY2FsU2Nyb2xsYmFyKSB7Cisg
ICAgICAgICAgICBidXR0b25SZWN0LnNldEhlaWdodChidXR0b25HYWRnZXQtPnByZWZlcnJlZFNp
emUoKS5oZWlnaHQoKSk7CisgICAgICAgICAgICBidXR0b25SZWN0Lm1vdmUoMCwgY29udGVudHNS
ZWN0LmhlaWdodCgpIC0gYnV0dG9uUmVjdC5oZWlnaHQoKSk7CisgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICBidXR0b25SZWN0LnNldFdpZHRoKGJ1dHRvbkdhZGdldC0+cHJlZmVycmVkU2l6
ZSgpLndpZHRoKCkpOworICAgICAgICAgICAgYnV0dG9uUmVjdC5tb3ZlKGNvbnRlbnRzUmVjdC53
aWR0aCgpIC0gYnV0dG9uUmVjdC53aWR0aCgpLCAwKTsKKyAgICAgICAgfQorICAgICAgICBzdGF0
aWNfY2FzdDxSZW5kZXJUaGVtZVNjcm9sbGJhckdhZGdldCo+KHNjcm9sbGJhckdhZGdldC5nZXQo
KSktPnJlbmRlclN0ZXBwZXIoZ3JhcGhpY3NDb250ZXh0LnBsYXRmb3JtQ29udGV4dCgpLT5jcigp
LCBidXR0b25SZWN0LCBidXR0b25HYWRnZXQsCisgICAgICAgICAgICBzY3JvbGxiYXIub3JpZW50
YXRpb24oKSA9PSBWZXJ0aWNhbFNjcm9sbGJhciA/IEdUS19PUklFTlRBVElPTl9WRVJUSUNBTCA6
IEdUS19PUklFTlRBVElPTl9IT1JJWk9OVEFMLCBSZW5kZXJUaGVtZVNjcm9sbGJhckdhZGdldDo6
U3RlcHBlcnM6OkZvcndhcmQpOwogICAgICAgICBpZiAoc2Nyb2xsYmFyLm9yaWVudGF0aW9uKCkg
PT0gVmVydGljYWxTY3JvbGxiYXIpCi0gICAgICAgICAgICBidXR0b25SZWN0Lm1vdmUoMCwgY29u
dGVudHNSZWN0LmhlaWdodCgpKTsKKyAgICAgICAgICAgIGNvbnRlbnRzUmVjdC5jb250cmFjdCgw
LCBidXR0b25SZWN0LmhlaWdodCgpKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgYnV0dG9u
UmVjdC5tb3ZlKGNvbnRlbnRzUmVjdC53aWR0aCgpLCAwKTsKKyAgICAgICAgICAgIGNvbnRlbnRz
UmVjdC5jb250cmFjdChidXR0b25SZWN0LndpZHRoKCksIDApOwogICAgIH0KICAgICBpZiAoc3Rl
cHBlcnMuY29udGFpbnMoUmVuZGVyVGhlbWVTY3JvbGxiYXJHYWRnZXQ6OlN0ZXBwZXJzOjpTZWNv
bmRhcnlCYWNrd2FyZCkpIHsKICAgICAgICAgUmVuZGVyVGhlbWVHYWRnZXQqIGJ1dHRvbkdhZGdl
dCA9IGNvbnRlbnRzR2FkZ2V0LT5jaGlsZChzdGVwcGVyc1Bvc2l0aW9uWzJdKTsKLSAgICAgICAg
aWYgKHNjcm9sbGJhci5vcmllbnRhdGlvbigpID09IFZlcnRpY2FsU2Nyb2xsYmFyKQorICAgICAg
ICBGbG9hdFJlY3QgYnV0dG9uUmVjdCA9IGNvbnRlbnRzUmVjdDsKKyAgICAgICAgaWYgKHNjcm9s
bGJhci5vcmllbnRhdGlvbigpID09IFZlcnRpY2FsU2Nyb2xsYmFyKSB7CiAgICAgICAgICAgICBi
dXR0b25SZWN0LnNldEhlaWdodChidXR0b25HYWRnZXQtPnByZWZlcnJlZFNpemUoKS5oZWlnaHQo
KSk7Ci0gICAgICAgIGVsc2UKKyAgICAgICAgICAgIGJ1dHRvblJlY3QubW92ZSgwLCBjb250ZW50
c1JlY3QuaGVpZ2h0KCkgLSBidXR0b25SZWN0LmhlaWdodCgpKTsKKyAgICAgICAgfSBlbHNlIHsK
ICAgICAgICAgICAgIGJ1dHRvblJlY3Quc2V0V2lkdGgoYnV0dG9uR2FkZ2V0LT5wcmVmZXJyZWRT
aXplKCkud2lkdGgoKSk7Ci0gICAgICAgIGJ1dHRvbkdhZGdldC0+cmVuZGVyKGdyYXBoaWNzQ29u
dGV4dC5wbGF0Zm9ybUNvbnRleHQoKS0+Y3IoKSwgYnV0dG9uUmVjdCk7Ci0gICAgICAgIGlmIChz
Y3JvbGxiYXIub3JpZW50YXRpb24oKSA9PSBWZXJ0aWNhbFNjcm9sbGJhcikKLSAgICAgICAgICAg
IGJ1dHRvblJlY3QubW92ZSgwLCBidXR0b25SZWN0LmhlaWdodCgpKTsKLSAgICAgICAgZWxzZQot
ICAgICAgICAgICAgYnV0dG9uUmVjdC5tb3ZlKGJ1dHRvblJlY3Qud2lkdGgoKSwgMCk7Ci0gICAg
fQotICAgIGlmIChzdGVwcGVycy5jb250YWlucyhSZW5kZXJUaGVtZVNjcm9sbGJhckdhZGdldDo6
U3RlcHBlcnM6OkZvcndhcmQpKSB7Ci0gICAgICAgIFJlbmRlclRoZW1lR2FkZ2V0KiBidXR0b25H
YWRnZXQgPSBjb250ZW50c0dhZGdldC0+Y2hpbGQoc3RlcHBlcnNQb3NpdGlvblszXSk7CisgICAg
ICAgICAgICBidXR0b25SZWN0Lm1vdmUoY29udGVudHNSZWN0LndpZHRoKCkgLSBidXR0b25SZWN0
LndpZHRoKCksIDApOworICAgICAgICB9CisgICAgICAgIHN0YXRpY19jYXN0PFJlbmRlclRoZW1l
U2Nyb2xsYmFyR2FkZ2V0Kj4oc2Nyb2xsYmFyR2FkZ2V0LmdldCgpKS0+cmVuZGVyU3RlcHBlcihn
cmFwaGljc0NvbnRleHQucGxhdGZvcm1Db250ZXh0KCktPmNyKCksIGJ1dHRvblJlY3QsIGJ1dHRv
bkdhZGdldCwKKyAgICAgICAgICAgIHNjcm9sbGJhci5vcmllbnRhdGlvbigpID09IFZlcnRpY2Fs
U2Nyb2xsYmFyID8gR1RLX09SSUVOVEFUSU9OX1ZFUlRJQ0FMIDogR1RLX09SSUVOVEFUSU9OX0hP
UklaT05UQUwsIFJlbmRlclRoZW1lU2Nyb2xsYmFyR2FkZ2V0OjpTdGVwcGVyczo6U2Vjb25kYXJ5
QmFja3dhcmQpOwogICAgICAgICBpZiAoc2Nyb2xsYmFyLm9yaWVudGF0aW9uKCkgPT0gVmVydGlj
YWxTY3JvbGxiYXIpCi0gICAgICAgICAgICBidXR0b25SZWN0LnNldEhlaWdodChidXR0b25HYWRn
ZXQtPnByZWZlcnJlZFNpemUoKS5oZWlnaHQoKSk7CisgICAgICAgICAgICBjb250ZW50c1JlY3Qu
Y29udHJhY3QoMCwgYnV0dG9uUmVjdC5oZWlnaHQoKSk7CiAgICAgICAgIGVsc2UKLSAgICAgICAg
ICAgIGJ1dHRvblJlY3Quc2V0V2lkdGgoYnV0dG9uR2FkZ2V0LT5wcmVmZXJyZWRTaXplKCkud2lk
dGgoKSk7Ci0gICAgICAgIGJ1dHRvbkdhZGdldC0+cmVuZGVyKGdyYXBoaWNzQ29udGV4dC5wbGF0
Zm9ybUNvbnRleHQoKS0+Y3IoKSwgYnV0dG9uUmVjdCk7CisgICAgICAgICAgICBjb250ZW50c1Jl
Y3QuY29udHJhY3QoYnV0dG9uUmVjdC53aWR0aCgpLCAwKTsKICAgICB9CisKKyAgICB0cm91Z2hH
YWRnZXQtPnJlbmRlcihncmFwaGljc0NvbnRleHQucGxhdGZvcm1Db250ZXh0KCktPmNyKCksIGNv
bnRlbnRzUmVjdCwgJmNvbnRlbnRzUmVjdCk7CisKICAgICBpZiAoaW50IHRodW1iU2l6ZSA9IHRo
dW1iTGVuZ3RoKHNjcm9sbGJhcikpIHsKICAgICAgICAgaW5mby5uYW1lID0gInNsaWRlciI7CiAg
ICAgICAgIGluZm8uc3RhdGUgPSBzY3JvbGxiYXJQYXJ0U3RhdGVGbGFncyhzY3JvbGxiYXIsIFRo
dW1iUGFydCk7CkBAIC03NTgsNiArODE3LDExIEBAIFNjcm9sbGJhckJ1dHRvblByZXNzQWN0aW9u
IFNjcm9sbGJhclRoZW1lR3RrOjpoYW5kbGVNb3VzZVByZXNzRXZlbnQoU2Nyb2xsYmFyJiwKICAg
ICAgICAgaWYgKGV2ZW50LmJ1dHRvbigpICE9IFJpZ2h0QnV0dG9uKQogICAgICAgICAgICAgcmV0
dXJuIFNjcm9sbGJhckJ1dHRvblByZXNzQWN0aW9uOjpTdGFydERyYWc7CiAgICAgICAgIGJyZWFr
OworICAgIGNhc2UgQmFja0J1dHRvblN0YXJ0UGFydDoKKyAgICBjYXNlIEZvcndhcmRCdXR0b25T
dGFydFBhcnQ6CisgICAgY2FzZSBCYWNrQnV0dG9uRW5kUGFydDoKKyAgICBjYXNlIEZvcndhcmRC
dXR0b25FbmRQYXJ0OgorICAgICAgICByZXR1cm4gU2Nyb2xsYmFyQnV0dG9uUHJlc3NBY3Rpb246
OlNjcm9sbDsKICAgICBkZWZhdWx0OgogICAgICAgICBicmVhazsKICAgICB9CkBAIC03ODgsMTIg
Kzg1MiwxMyBAQCBpbnQgU2Nyb2xsYmFyVGhlbWVHdGs6OnNjcm9sbGJhclRoaWNrbmVzcyhTY3Jv
bGxiYXJDb250cm9sU2l6ZSkKICAgICAgICAgY2hpbGRyZW4uYXBwZW5kKHsgUmVuZGVyVGhlbWVH
YWRnZXQ6OlR5cGU6OkdlbmVyaWMsICJidXR0b24iLCBHVEtfU1RBVEVfRkxBR19OT1JNQUwsIHsg
InVwIiB9IH0pOwogICAgIGlmIChzdGVwcGVycy5jb250YWlucyhSZW5kZXJUaGVtZVNjcm9sbGJh
ckdhZGdldDo6U3RlcHBlcnM6OkZvcndhcmQpKQogICAgICAgICBjaGlsZHJlbi5hcHBlbmQoeyBS
ZW5kZXJUaGVtZUdhZGdldDo6VHlwZTo6R2VuZXJpYywgImJ1dHRvbiIsIEdUS19TVEFURV9GTEFH
X05PUk1BTCwgeyAiZG93biIgfSB9KTsKLSAgICBhdXRvIGNvbnRlbnRzR2FkZ2V0ID0gc3RkOjpt
YWtlX3VuaXF1ZTxSZW5kZXJUaGVtZUJveEdhZGdldD4oaW5mbywgY2hpbGRyZW4sIHNjcm9sbGJh
ckdhZGdldC5nZXQoKSk7CisgICAgYXV0byBjb250ZW50c0dhZGdldCA9IHN0ZDo6bWFrZV91bmlx
dWU8UmVuZGVyVGhlbWVCb3hHYWRnZXQ+KGluZm8sIEdUS19PUklFTlRBVElPTl9WRVJUSUNBTCwg
Y2hpbGRyZW4sIHNjcm9sbGJhckdhZGdldC5nZXQoKSk7CiAgICAgaW5mby5uYW1lID0gInNsaWRl
ciI7CiAgICAgYXV0byBzbGlkZXJHYWRnZXQgPSBSZW5kZXJUaGVtZUdhZGdldDo6Y3JlYXRlKGlu
Zm8sIGNvbnRlbnRzR2FkZ2V0LT5jaGlsZCh0cm91Z2hQb3NpdG9uKSk7CiAgICAgSW50U2l6ZSBw
cmVmZXJyZWRTaXplID0gc2Nyb2xsYmFyR2FkZ2V0LT5wcmVmZXJyZWRTaXplKCk7Ci0gICAgcHJl
ZmVycmVkU2l6ZSArPSBjb250ZW50c0dhZGdldC0+cHJlZmVycmVkU2l6ZSgpOwotICAgIHByZWZl
cnJlZFNpemUgKz0gc2xpZGVyR2FkZ2V0LT5wcmVmZXJyZWRTaXplKCk7CisgICAgSW50U2l6ZSBj
b250ZW50c1ByZWZlcnJlZFNpemUgPSBjb250ZW50c0dhZGdldC0+cHJlZmVycmVkU2l6ZSgpOwor
ICAgIGNvbnRlbnRzUHJlZmVycmVkU2l6ZSA9IGNvbnRlbnRzUHJlZmVycmVkU2l6ZS5leHBhbmRl
ZFRvKHNsaWRlckdhZGdldC0+cHJlZmVycmVkU2l6ZSgpKTsKKyAgICBwcmVmZXJyZWRTaXplICs9
IGNvbnRlbnRzUHJlZmVycmVkU2l6ZTsKIAogICAgIHJldHVybiBwcmVmZXJyZWRTaXplLndpZHRo
KCk7CiB9CkBAIC04MTgsNyArODgzLDcgQEAgaW50IFNjcm9sbGJhclRoZW1lR3RrOjptaW5pbXVt
VGh1bWJMZW5ndGgoU2Nyb2xsYmFyJiBzY3JvbGxiYXIpCiAgICAgaW5mby5zdGF0ZSA9IEdUS19T
VEFURV9GTEFHX05PUk1BTDsKICAgICBpbmZvLmNsYXNzTGlzdC5jbGVhcigpOwogICAgIFZlY3Rv
cjxSZW5kZXJUaGVtZUdhZGdldDo6SW5mbz4gY2hpbGRyZW4gPSB7eyBSZW5kZXJUaGVtZUdhZGdl
dDo6VHlwZTo6R2VuZXJpYywgInRyb3VnaCIsIEdUS19TVEFURV9GTEFHX1BSRUxJR0hULCB7IH0g
fSB9OwotICAgIGF1dG8gY29udGVudHNHYWRnZXQgPSBzdGQ6Om1ha2VfdW5pcXVlPFJlbmRlclRo
ZW1lQm94R2FkZ2V0PihpbmZvLCBjaGlsZHJlbiwgc2Nyb2xsYmFyR2FkZ2V0LmdldCgpKTsKKyAg
ICBhdXRvIGNvbnRlbnRzR2FkZ2V0ID0gc3RkOjptYWtlX3VuaXF1ZTxSZW5kZXJUaGVtZUJveEdh
ZGdldD4oaW5mbywgR1RLX09SSUVOVEFUSU9OX1ZFUlRJQ0FMLCBjaGlsZHJlbiwgc2Nyb2xsYmFy
R2FkZ2V0LmdldCgpKTsKICAgICBpbmZvLm5hbWUgPSAic2xpZGVyIjsKICAgICBJbnRTaXplIG1p
blNpemUgPSBSZW5kZXJUaGVtZUdhZGdldDo6Y3JlYXRlKGluZm8sIGNvbnRlbnRzR2FkZ2V0LT5j
aGlsZCgwKSktPm1pbmltdW1TaXplKCk7CiAgICAgcmV0dXJuIHNjcm9sbGJhci5vcmllbnRhdGlv
bigpID09IFZlcnRpY2FsU2Nyb2xsYmFyID8gbWluU2l6ZS5oZWlnaHQoKSA6IG1pblNpemUud2lk
dGgoKTsKQEAgLTg1Miw2ICs5MTcsMTEgQEAgSW50UmVjdCBTY3JvbGxiYXJUaGVtZUd0azo6dHJh
Y2tSZWN0KFNjcm9sbGJhciYsIGJvb2wpCiB7CiAgICAgcmV0dXJuIEludFJlY3QoKTsKIH0KKwor
Ym9vbCBTY3JvbGxiYXJUaGVtZUd0azo6aGFzQnV0dG9ucyhTY3JvbGxiYXImKQoreworICAgIHJl
dHVybiBmYWxzZTsKK30KICNlbmRpZiAvLyBHVEtfQVBJX1ZFUlNJT05fMgogCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsYmFyVGhlbWVHdGsuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxiYXJUaGVtZUd0ay5oCmluZGV4IDRjZGE1
NTQuLjUxYmRkMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3Jv
bGxiYXJUaGVtZUd0ay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxi
YXJUaGVtZUd0ay5oCkBAIC0zNyw3ICszNyw3IEBAIGNsYXNzIFNjcm9sbGJhclRoZW1lR3RrIGZp
bmFsIDogcHVibGljIFNjcm9sbGJhclRoZW1lQ29tcG9zaXRlIHsKIHB1YmxpYzoKICAgICB2aXJ0
dWFsIH5TY3JvbGxiYXJUaGVtZUd0aygpOwogCi0gICAgYm9vbCBoYXNCdXR0b25zKFNjcm9sbGJh
ciYpIG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICBib29sIGhhc0J1dHRvbnMoU2Nyb2xs
YmFyJikgb3ZlcnJpZGU7CiAgICAgYm9vbCBoYXNUaHVtYihTY3JvbGxiYXImKSBvdmVycmlkZTsK
ICAgICBJbnRSZWN0IGJhY2tCdXR0b25SZWN0KFNjcm9sbGJhciYsIFNjcm9sbGJhclBhcnQsIGJv
b2wpIG92ZXJyaWRlOwogICAgIEludFJlY3QgZm9yd2FyZEJ1dHRvblJlY3QoU2Nyb2xsYmFyJiwg
U2Nyb2xsYmFyUGFydCwgYm9vbCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lR3RrLmNwcAppbmRleCBmNDY5NGRhLi5kOGNlYzA0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVHdGsuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUd0ay5jcHAKQEAgLTc4Myw3ICs3ODMsNyBAQCBz
dGF0aWMgQ29sb3IgbWVudUxpc3RDb2xvcihjb25zdCBFbGVtZW50KiBlbGVtZW50KQogICAgIH07
CiAgICAgaW5mby5uYW1lID0gImJveCI7CiAgICAgaW5mby5jbGFzc0xpc3QgPSB7ICJob3Jpem9u
dGFsIiwgImxpbmtlZCIgfTsKLSAgICByZXR1cm4gUmVuZGVyVGhlbWVCb3hHYWRnZXQoaW5mbywg
Y2hpbGRyZW4sIGNvbWJvR2FkZ2V0LmdldCgpKS5jaGlsZCgwKS0+Y29sb3IoKTsKKyAgICByZXR1
cm4gUmVuZGVyVGhlbWVCb3hHYWRnZXQoaW5mbywgR1RLX09SSUVOVEFUSU9OX0hPUklaT05UQUws
IGNoaWxkcmVuLCBjb21ib0dhZGdldC5nZXQoKSkuY2hpbGQoMCktPmNvbG9yKCk7CiAjZWxzZQog
ICAgIEdSZWZQdHI8R3RrU3R5bGVDb250ZXh0PiBwYXJlbnRTdHlsZUNvbnRleHQgPSBjcmVhdGVT
dHlsZUNvbnRleHQoQ29tYm9Cb3gpOwogICAgIEdSZWZQdHI8R3RrU3R5bGVDb250ZXh0PiBidXR0
b25TdHlsZUNvbnRleHQgPSBjcmVhdGVTdHlsZUNvbnRleHQoQ29tYm9Cb3hCdXR0b24sIHBhcmVu
dFN0eWxlQ29udGV4dC5nZXQoKSk7CkBAIC04MzUsNyArODM1LDcgQEAgTGVuZ3RoQm94IFJlbmRl
clRoZW1lR3RrOjpwb3B1cEludGVybmFsUGFkZGluZ0JveChjb25zdCBSZW5kZXJTdHlsZSYgc3R5
bGUpIGNvbnMKICAgICB9OwogICAgIGluZm8ubmFtZSA9ICJib3giOwogICAgIGluZm8uY2xhc3NM
aXN0ID0geyAiaG9yaXpvbnRhbCIsICJsaW5rZWQiIH07Ci0gICAgYXV0byBib3hHYWRnZXQgPSBz
dGQ6Om1ha2VfdW5pcXVlPFJlbmRlclRoZW1lQm94R2FkZ2V0PihpbmZvLCBjaGlsZHJlbiwgY29t
Ym9HYWRnZXQuZ2V0KCkpOworICAgIGF1dG8gYm94R2FkZ2V0ID0gc3RkOjptYWtlX3VuaXF1ZTxS
ZW5kZXJUaGVtZUJveEdhZGdldD4oaW5mbywgR1RLX09SSUVOVEFUSU9OX0hPUklaT05UQUwsIGNo
aWxkcmVuLCBjb21ib0dhZGdldC5nZXQoKSk7CiAgICAgUmVuZGVyVGhlbWVHYWRnZXQqIGJ1dHRv
bkdhZGdldCA9IGJveEdhZGdldC0+Y2hpbGQoMCk7CiAgICAgaW5mby5jbGFzc0xpc3QucmVtb3Zl
TGFzdCgpOwogICAgIGF1dG8gYnV0dG9uQm94R2FkZ2V0ID0gUmVuZGVyVGhlbWVHYWRnZXQ6OmNy
ZWF0ZShpbmZvLCBidXR0b25HYWRnZXQpOwpAQCAtODY2LDcgKzg2Niw3IEBAIGJvb2wgUmVuZGVy
VGhlbWVHdGs6OnBhaW50TWVudUxpc3QoY29uc3QgUmVuZGVyT2JqZWN0JiByZW5kZXJPYmplY3Qs
IGNvbnN0IFBhaW50CiAgICAgfTsKICAgICBpbmZvLm5hbWUgPSAiYm94IjsKICAgICBpbmZvLmNs
YXNzTGlzdCA9IHsgImhvcml6b250YWwiLCAibGlua2VkIiB9OwotICAgIGF1dG8gYm94R2FkZ2V0
ID0gc3RkOjptYWtlX3VuaXF1ZTxSZW5kZXJUaGVtZUJveEdhZGdldD4oaW5mbywgY2hpbGRyZW4s
IGNvbWJvR2FkZ2V0LmdldCgpKTsKKyAgICBhdXRvIGJveEdhZGdldCA9IHN0ZDo6bWFrZV91bmlx
dWU8UmVuZGVyVGhlbWVCb3hHYWRnZXQ+KGluZm8sIEdUS19PUklFTlRBVElPTl9IT1JJWk9OVEFM
LCBjaGlsZHJlbiwgY29tYm9HYWRnZXQuZ2V0KCkpOwogICAgIFJlbmRlclRoZW1lR2FkZ2V0KiBi
dXR0b25HYWRnZXQgPSBib3hHYWRnZXQtPmNoaWxkKDApOwogICAgIGluZm8uY2xhc3NMaXN0LnJl
bW92ZUxhc3QoKTsKICAgICBhdXRvIGJ1dHRvbkJveEdhZGdldCA9IFJlbmRlclRoZW1lR2FkZ2V0
OjpjcmVhdGUoaW5mbywgYnV0dG9uR2FkZ2V0KTsK
</data>
<flag name="review"
          id="301578"
          type_id="1"
          status="+"
          setter="mcatanzaro"
    />
          </attachment>
      

    </bug>

</bugzilla>