<?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>155086</bug_id>
          
          <creation_ts>2016-03-06 01:03:31 -0800</creation_ts>
          <short_desc>RenderTextControlSingleLine shouldn&apos;t mutate placeholder element inline style</short_desc>
          <delta_ts>2016-03-06 02:20:55 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1171393</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2016-03-06 01:03:31 -0800</bug_when>
    <thetext>Mutating DOM from a renderer is bad.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1171394</commentid>
    <comment_count>1</comment_count>
      <attachid>273130</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2016-03-06 01:18:45 -0800</bug_when>
    <thetext>Created attachment 273130
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1171397</commentid>
    <comment_count>2</comment_count>
      <attachid>273132</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2016-03-06 01:29:45 -0800</bug_when>
    <thetext>Created attachment 273132
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1171398</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-06 01:32:15 -0800</bug_when>
    <thetext>Attachment 273132 did not pass style-queue:


ERROR: Source/WebCore/html/shadow/TextControlInnerElements.cpp:44:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/html/shadow/TextControlInnerElements.h:80:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
Total errors found: 2 in 9 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1171399</commentid>
    <comment_count>4</comment_count>
      <attachid>273133</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2016-03-06 01:35:09 -0800</bug_when>
    <thetext>Created attachment 273133
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1171400</commentid>
    <comment_count>5</comment_count>
      <attachid>273133</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2016-03-06 02:02:41 -0800</bug_when>
    <thetext>Comment on attachment 273133
patch

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

r=me

&gt; Source/WebCore/ChangeLog:10
&gt; +        Text field placeholder element is currently managed by changing its inline style
&gt; +        from the host renderer based on the host style and state. Rendering poking
&gt; +        into DOM is wrong.

This is so weird.

&gt; Source/WebCore/html/shadow/TextControlInnerElements.cpp:165
&gt; +// ----------------------------

----------------------------

&gt; Source/WebCore/html/shadow/TextControlInnerElements.h:78
&gt; +    TextControlPlaceholderElement(Document&amp;);

explicit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1171401</commentid>
    <comment_count>6</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2016-03-06 02:20:55 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/197637</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>273130</attachid>
            <date>2016-03-06 01:18:45 -0800</date>
            <delta_ts>2016-03-06 01:29:45 -0800</delta_ts>
            <desc>patch</desc>
            <filename>text-control-placeholder-style.patch</filename>
            <type>text/plain</type>
            <size>13448</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5NzYzNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDY0IEBACisyMDE2LTAzLTA2ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBSZW5kZXJUZXh0Q29udHJvbFNp
bmdsZUxpbmUgc2hvdWxkbid0IG11dGF0ZSBwbGFjZWhvbGRlciBlbGVtZW50IGlubGluZSBzdHls
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU1MDg2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGV4dCBm
aWVsZCBwbGFjZWhvbGRlciBlbGVtZW50IGlzIGN1cnJlbnRseSBtYW5hZ2VkIGJ5IGNoYW5naW5n
IGl0cyBpbmxpbmUgc3R5bGUKKyAgICAgICAgZnJvbSB0aGUgaG9zdCByZW5kZXJlciBiYXNlZCBv
biB0aGUgaG9zdCBzdHlsZSBhbmQgc3RhdGUuIFJlbmRlcmluZyBwb2tpbmcKKyAgICAgICAgaW50
byBET00gaXMgd3JvbmcuCisKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6c2V0UmFuZ2VUZXh0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnNob3VsZFRydW5jYXRlVGV4dCk6CisKKyAg
ICAgICAgICAgIEFkZCBhIGhlbHBlci4KKworICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxl
bWVudDo6Y3JlYXRlSW5uZXJUZXh0U3R5bGUpOgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxl
bWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MVGV4dEFyZWFFbGVtZW50OjpIVE1MVGV4dEFyZWFFbGVtZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0QXJlYUVsZW1lbnQ6OnBsYWNlaG9sZGVyRWxlbWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEFyZWFFbGVtZW50OjptYXRjaGVzUmVhZFdyaXRl
UHNldWRvQ2xhc3MpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRBcmVhRWxlbWVudDo6dXBk
YXRlUGxhY2Vob2xkZXJUZXh0KToKKworICAgICAgICAgICAgVXNlIHRoZSBuZXcgc2hhZG93IGVs
ZW1lbnQuCisKKyAgICAgICAgKiBodG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaDoKKyAgICAgICAg
KiBodG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojp1cGRhdGVQbGFjZWhvbGRlclZpc2liaWxpdHkp
OgorCisgICAgICAgICAgICBObyBtb3JlIHBva2luZyB0byBpbmxpbmUgc3R5bGUuCisKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZXRTZWxlY3Rpb25TdGFy
dCk6CisgICAgICAgICogaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6VGV4dEZpZWxkSW5wdXRUeXBlOjp1cGRhdGVQbGFjZWhvbGRlclRleHQpOgorCisgICAg
ICAgICAgICBVc2UgdGhlIG5ldyBzaGFkb3cgZWxlbWVudC4KKworICAgICAgICAqIGh0bWwvc2hh
ZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0
Q29udHJvbFBsYWNlaG9sZGVyRWxlbWVudDo6VGV4dENvbnRyb2xQbGFjZWhvbGRlckVsZW1lbnQp
OgorCisgICAgICAgICAgICBBZGQgYSBzdWJjbGFzcyBmb3IgdGhlIHBsYWNlaG9sZGVyIGVsZW1l
bnQgaW5zdGVhZCBvZiBqdXN0IHVzaW5nIGRpdi4KKworICAgICAgICAoV2ViQ29yZTo6VGV4dENv
bnRyb2xQbGFjZWhvbGRlckVsZW1lbnQ6OmN1c3RvbVN0eWxlRm9yUmVuZGVyZXIpOgorCisgICAg
ICAgICAgICBDb21wdXRlIHN0eWxlIGJhc2Ugb24gdGhlIGhvc3Qgc3RhdGUgYW5kIHN0eWxlLgor
CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25FbGVtZW50OjpTZWFy
Y2hGaWVsZFJlc3VsdHNCdXR0b25FbGVtZW50KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9UZXh0
Q29udHJvbElubmVyRWxlbWVudHMuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dENv
bnRyb2xTaW5nbGVMaW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9s
U2luZ2xlTGluZTo6c3R5bGVEaWRDaGFuZ2UpOgorCisgICAgICAgICAgICBObyBtb3JlIHNldElu
bGluZVN0eWxlUHJvcGVydHkuCisgICAgICAgICAgICBUaGlzIG5vdyBuZWVkcyB0byB0cmlnZ2Vy
IGxheW91dCBsaWtlIGl0IGRvZXMgd2l0aCBvdGhlciBpbm5lciBlbGVtZW50cy4KKworICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpjb21wdXRlQ29udHJvbExv
Z2ljYWxIZWlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVM
aW5lOjphdXRvc2Nyb2xsKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9sU2lu
Z2xlTGluZTo6dGV4dFNob3VsZEJlVHJ1bmNhdGVkKTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmg6CisKIDIwMTYtMDMtMDUgIFJ5b3N1
a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWRkIHRoZSBzdXBwb3J0IGZv
ciB1cGdyYWRpbmcgY3VzdG9tIGVsZW1lbnRzIGluIGNsb25lTm9kZQpJbmRleDogU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxOTc0NDYpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
ODY3LDYgKzE4NjcsMTMgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzZXRSYW5nZVRleHQoY29u
cwogICAgIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZXRSYW5nZVRleHQocmVwbGFjZW1l
bnQsIHN0YXJ0LCBlbmQsIHNlbGVjdGlvbk1vZGUsIGVjKTsKIH0KIAorYm9vbCBIVE1MSW5wdXRF
bGVtZW50OjpzaG91bGRUcnVuY2F0ZVRleHQoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKSBjb25z
dAoreworICAgIGlmICghaXNUZXh0RmllbGQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IHJldHVybiBkb2N1bWVudCgpLmZvY3VzZWRFbGVtZW50KCkgIT0gdGhpcyAmJiBzdHlsZS50ZXh0
T3ZlcmZsb3coKSA9PSBUZXh0T3ZlcmZsb3dFbGxpcHNpczsKK30KKwogUmVmPFJlbmRlclN0eWxl
PiBIVE1MSW5wdXRFbGVtZW50OjpjcmVhdGVJbm5lclRleHRTdHlsZShjb25zdCBSZW5kZXJTdHls
ZSYgc3R5bGUpIGNvbnN0CiB7CiAgICAgYXV0byB0ZXh0QmxvY2tTdHlsZSA9IFJlbmRlclN0eWxl
OjpjcmVhdGUoKTsKQEAgLTE4NzcsOSArMTg4NCw3IEBAIFJlZjxSZW5kZXJTdHlsZT4gSFRNTElu
cHV0RWxlbWVudDo6Y3JlYXQKICAgICB0ZXh0QmxvY2tTdHlsZS5nZXQoKS5zZXRPdmVyZmxvd1dy
YXAoTm9ybWFsT3ZlcmZsb3dXcmFwKTsKICAgICB0ZXh0QmxvY2tTdHlsZS5nZXQoKS5zZXRPdmVy
Zmxvd1goT0hJRERFTik7CiAgICAgdGV4dEJsb2NrU3R5bGUuZ2V0KCkuc2V0T3ZlcmZsb3dZKE9I
SURERU4pOwotCi0gICAgYm9vbCB0ZXh0U2hvdWxkQmVUcnVuY2F0ZWQgPSBkb2N1bWVudCgpLmZv
Y3VzZWRFbGVtZW50KCkgIT0gdGhpcyAmJiBzdHlsZS50ZXh0T3ZlcmZsb3coKSA9PSBUZXh0T3Zl
cmZsb3dFbGxpcHNpczsKLSAgICB0ZXh0QmxvY2tTdHlsZS5nZXQoKS5zZXRUZXh0T3ZlcmZsb3co
dGV4dFNob3VsZEJlVHJ1bmNhdGVkID8gVGV4dE92ZXJmbG93RWxsaXBzaXMgOiBUZXh0T3ZlcmZs
b3dDbGlwKTsKKyAgICB0ZXh0QmxvY2tTdHlsZS5nZXQoKS5zZXRUZXh0T3ZlcmZsb3coc2hvdWxk
VHJ1bmNhdGVUZXh0KHN0eWxlKSA/IFRleHRPdmVyZmxvd0VsbGlwc2lzIDogVGV4dE92ZXJmbG93
Q2xpcCk7CiAKICAgICAvLyBEbyBub3QgYWxsb3cgbGluZS1oZWlnaHQgdG8gYmUgc21hbGxlciB0
aGFuIG91ciBkZWZhdWx0LgogICAgIGlmICh0ZXh0QmxvY2tTdHlsZS5nZXQoKS5mb250TWV0cmlj
cygpLmxpbmVTcGFjaW5nKCkgPiBzdHlsZS5jb21wdXRlZExpbmVIZWlnaHQoKSkKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCShyZXZpc2lvbiAxOTc0NDYpCisrKyBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAt
MzIxLDYgKzMyMSw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgY2Fwc0xvY2tTdGF0ZU1heUhhdmVD
aGFuZ2VkKCk7CiAKKyAgICBib29sIHNob3VsZFRydW5jYXRlVGV4dChjb25zdCBSZW5kZXJTdHls
ZSYpIGNvbnN0OworCiBwcm90ZWN0ZWQ6CiAgICAgSFRNTElucHV0RWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQmLCBIVE1MRm9ybUVsZW1lbnQqLCBib29sIGNyZWF0ZWRCeVBh
cnNlcik7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50
LmNwcAkocmV2aXNpb24gMTk3NDQ2KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFy
ZWFFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTIsMTAgKzkyLDYgQEAgSFRNTFRleHRB
cmVhRWxlbWVudDo6SFRNTFRleHRBcmVhRWxlbWVudAogICAgIDogSFRNTFRleHRGb3JtQ29udHJv
bEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQsIGZvcm0pCiAgICAgLCBtX3Jvd3MoZGVmYXVsdFJv
d3MpCiAgICAgLCBtX2NvbHMoZGVmYXVsdENvbHMpCi0gICAgLCBtX3dyYXAoU29mdFdyYXApCi0g
ICAgLCBtX3BsYWNlaG9sZGVyKDApCi0gICAgLCBtX2lzRGlydHkoZmFsc2UpCi0gICAgLCBtX3dh
c01vZGlmaWVkQnlVc2VyKGZhbHNlKQogewogICAgIEFTU0VSVChoYXNUYWdOYW1lKHRleHRhcmVh
VGFnKSk7CiAgICAgc2V0Rm9ybUNvbnRyb2xWYWx1ZU1hdGNoZXNSZW5kZXJlcih0cnVlKTsKQEAg
LTUwNyw3ICs1MDMsNyBAQCBib29sIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OnNob3VsZFVzZUlucHV0
CiAKIEhUTUxFbGVtZW50KiBIVE1MVGV4dEFyZWFFbGVtZW50OjpwbGFjZWhvbGRlckVsZW1lbnQo
KSBjb25zdAogewotICAgIHJldHVybiBtX3BsYWNlaG9sZGVyOworICAgIHJldHVybiBtX3BsYWNl
aG9sZGVyLmdldCgpOwogfQogCiBib29sIEhUTUxUZXh0QXJlYUVsZW1lbnQ6Om1hdGNoZXNSZWFk
V3JpdGVQc2V1ZG9DbGFzcygpIGNvbnN0CkBAIC01MjYsMTAgKzUyMiw3IEBAIHZvaWQgSFRNTFRl
eHRBcmVhRWxlbWVudDo6dXBkYXRlUGxhY2Vob2wKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAg
ICBpZiAoIW1fcGxhY2Vob2xkZXIpIHsKLSAgICAgICAgUmVmUHRyPEhUTUxEaXZFbGVtZW50PiBw
bGFjZWhvbGRlciA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7Ci0gICAgICAg
IG1fcGxhY2Vob2xkZXIgPSBwbGFjZWhvbGRlci5nZXQoKTsKLSAgICAgICAgbV9wbGFjZWhvbGRl
ci0+c2V0UHNldWRvKEF0b21pY1N0cmluZygiLXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICAgICAgbV9wbGFjZWhvbGRl
ci0+c2V0SW5saW5lU3R5bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eURpc3BsYXksIGlzUGxhY2Vob2xk
ZXJWaXNpYmxlKCkgPyBDU1NWYWx1ZUJsb2NrIDogQ1NTVmFsdWVOb25lLCB0cnVlKTsKKyAgICAg
ICAgbV9wbGFjZWhvbGRlciA9IFRleHRDb250cm9sUGxhY2Vob2xkZXJFbGVtZW50OjpjcmVhdGUo
ZG9jdW1lbnQoKSk7CiAgICAgICAgIHVzZXJBZ2VudFNoYWRvd1Jvb3QoKS0+aW5zZXJ0QmVmb3Jl
KCptX3BsYWNlaG9sZGVyLCBpbm5lclRleHRFbGVtZW50KCktPm5leHRTaWJsaW5nKCkpOwogICAg
IH0KICAgICBtX3BsYWNlaG9sZGVyLT5zZXRJbm5lclRleHQocGxhY2Vob2xkZXJUZXh0LCBBU1NF
UlRfTk9fRVhDRVBUSU9OKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVh
RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVh
RWxlbWVudC5oCShyZXZpc2lvbiAxOTc0NDYpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
ZXh0QXJlYUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTIxLDExICsxMjEsMTEgQEAgcHJp
dmF0ZToKIAogICAgIHVuc2lnbmVkIG1fcm93czsKICAgICB1bnNpZ25lZCBtX2NvbHM7Ci0gICAg
V3JhcE1ldGhvZCBtX3dyYXA7Ci0gICAgSFRNTEVsZW1lbnQqIG1fcGxhY2Vob2xkZXI7CisgICAg
V3JhcE1ldGhvZCBtX3dyYXAgeyBTb2Z0V3JhcCB9OworICAgIFJlZlB0cjxIVE1MRWxlbWVudD4g
bV9wbGFjZWhvbGRlcjsKICAgICBtdXRhYmxlIFN0cmluZyBtX3ZhbHVlOwotICAgIG11dGFibGUg
Ym9vbCBtX2lzRGlydHk7Ci0gICAgbXV0YWJsZSBib29sIG1fd2FzTW9kaWZpZWRCeVVzZXI7Cisg
ICAgbXV0YWJsZSBib29sIG1faXNEaXJ0eSB7IGZhbHNlIH07CisgICAgbXV0YWJsZSBib29sIG1f
d2FzTW9kaWZpZWRCeVVzZXIgeyBmYWxzZSB9OwogfTsKIAogfSAvL25hbWVzcGFjZQpJbmRleDog
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5j
cHAJKHJldmlzaW9uIDE5NzQ0NikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3Jt
Q29udHJvbEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjMsOSArMTYzLDYgQEAgdm9p
ZCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6dXBkYXRlUAogICAgICAgICByZXR1cm47CiAK
ICAgICBzZXROZWVkc1N0eWxlUmVjYWxjKCk7Ci0KLSAgICBpZiAoSFRNTEVsZW1lbnQqIHBsYWNl
aG9sZGVyID0gcGxhY2Vob2xkZXJFbGVtZW50KCkpCi0gICAgICAgIHBsYWNlaG9sZGVyLT5zZXRJ
bmxpbmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5RGlzcGxheSwgbV9pc1BsYWNlaG9sZGVyVmlz
aWJsZSA/IENTU1ZhbHVlQmxvY2sgOiBDU1NWYWx1ZU5vbmUsIHRydWUpOwogfQogCiB2b2lkIEhU
TUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZXRTZWxlY3Rpb25TdGFydChpbnQgc3RhcnQpCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwCShyZXZpc2lv
biAxOTc0NDYpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTQ5NCwxMSArNDk0LDggQEAgdm9pZCBUZXh0RmllbGRJbnB1dFR5
cGU6OnVwZGF0ZVBsYWNlaG9sZAogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGlmICghbV9w
bGFjZWhvbGRlcikgewotICAgICAgICBtX3BsYWNlaG9sZGVyID0gSFRNTERpdkVsZW1lbnQ6OmNy
ZWF0ZShlbGVtZW50KCkuZG9jdW1lbnQoKSk7Ci0gICAgICAgIG1fcGxhY2Vob2xkZXItPnNldFBz
ZXVkbyhBdG9taWNTdHJpbmcoIi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIiLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgICAgIG1fcGxhY2Vob2xkZXItPnNldElu
bGluZVN0eWxlUHJvcGVydHkoQ1NTUHJvcGVydHlEaXNwbGF5LCBlbGVtZW50KCkuaXNQbGFjZWhv
bGRlclZpc2libGUoKSA/IENTU1ZhbHVlQmxvY2sgOiBDU1NWYWx1ZU5vbmUsIHRydWUpOwotICAg
ICAgICBlbGVtZW50KCkudXNlckFnZW50U2hhZG93Um9vdCgpLT5pbnNlcnRCZWZvcmUoKm1fcGxh
Y2Vob2xkZXIsIG1fY29udGFpbmVyID8gbV9jb250YWluZXIuZ2V0KCkgOiBpbm5lclRleHRFbGVt
ZW50KCksIEFTU0VSVF9OT19FWENFUFRJT04pOwotICAgICAgICAKKyAgICAgICAgbV9wbGFjZWhv
bGRlciA9IFRleHRDb250cm9sUGxhY2Vob2xkZXJFbGVtZW50OjpjcmVhdGUoZWxlbWVudCgpLmRv
Y3VtZW50KCkpOworICAgICAgICBlbGVtZW50KCkudXNlckFnZW50U2hhZG93Um9vdCgpLT5pbnNl
cnRCZWZvcmUoKm1fcGxhY2Vob2xkZXIsIG1fY29udGFpbmVyID8gbV9jb250YWluZXIuZ2V0KCkg
OiBpbm5lclRleHRFbGVtZW50KCksIEFTU0VSVF9OT19FWENFUFRJT04pOyAgICAgICAgCiAgICAg
fQogICAgIG1fcGxhY2Vob2xkZXItPnNldElubmVyVGV4dChwbGFjZWhvbGRlclRleHQsIEFTU0VS
VF9OT19FWENFUFRJT04pOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4
dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwCShyZXZpc2lvbiAxOTc0NDYp
CisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAiU2NyaXB0Q29u
dHJvbGxlci5oIgogI2luY2x1ZGUgIlRleHRFdmVudC5oIgogI2luY2x1ZGUgIlRleHRFdmVudElu
cHV0VHlwZS5oIgorI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKICNpbmNsdWRlIDx3dGYvUmVmLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTEzOSw2ICsxNDAsMzEgQEAgUmVmUHRyPFJlbmRl
clN0eWxlPiBUZXh0Q29udHJvbElubmVyVGV4dAogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCiAKK1RleHRDb250cm9sUGxhY2Vob2xkZXJFbGVtZW50OjpUZXh0Q29udHJvbFBsYWNl
aG9sZGVyRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgOiBIVE1MRGl2RWxlbWVudChk
aXZUYWcsIGRvY3VtZW50KQoreworICAgIHNldEhhc0N1c3RvbVN0eWxlUmVzb2x2ZUNhbGxiYWNr
cygpOworCisgICAgc2V0UHNldWRvKEF0b21pY1N0cmluZygiLXdlYmtpdC1pbnB1dC1wbGFjZWhv
bGRlciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKK30KKworUmVmUHRy
PFJlbmRlclN0eWxlPiBUZXh0Q29udHJvbFBsYWNlaG9sZGVyRWxlbWVudDo6Y3VzdG9tU3R5bGVG
b3JSZW5kZXJlcihSZW5kZXJTdHlsZSYgcGFyZW50U3R5bGUsIFJlbmRlclN0eWxlKiBzaGFkb3dI
b3N0U3R5bGUpCit7CisgICAgYXV0byBzdHlsZSA9IHJlc29sdmVTdHlsZSgmcGFyZW50U3R5bGUp
OworCisgICAgYXV0byYgY29udHJvbEVsZW1lbnQgPSBkb3duY2FzdDxIVE1MVGV4dEZvcm1Db250
cm9sRWxlbWVudD4oKmNvbnRhaW5pbmdTaGFkb3dSb290KCktPmhvc3QoKSk7CisgICAgc3R5bGUt
PnNldERpc3BsYXkoY29udHJvbEVsZW1lbnQuaXNQbGFjZWhvbGRlclZpc2libGUoKSA/IEJMT0NL
IDogTk9ORSk7CisKKyAgICBpZiAoaXM8SFRNTElucHV0RWxlbWVudD4oY29udHJvbEVsZW1lbnQp
KSB7CisgICAgICAgIGF1dG8mIGlucHV0RWxlbWVudCA9IGRvd25jYXN0PEhUTUxJbnB1dEVsZW1l
bnQ+KGNvbnRyb2xFbGVtZW50KTsKKyAgICAgICAgc3R5bGUtPnNldFRleHRPdmVyZmxvdyhpbnB1
dEVsZW1lbnQuc2hvdWxkVHJ1bmNhdGVUZXh0KCpzaGFkb3dIb3N0U3R5bGUpID8gVGV4dE92ZXJm
bG93RWxsaXBzaXMgOiBUZXh0T3ZlcmZsb3dDbGlwKTsKKyAgICB9CisKKyAgICByZXR1cm4gV1RG
TW92ZShzdHlsZSk7Cit9CisKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwogaW5s
aW5lIFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1lbnQ6OlNlYXJjaEZpZWxkUmVzdWx0c0J1
dHRvbkVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogSFRNTERpdkVsZW1lbnQoZGl2
VGFnLCBkb2N1bWVudCkKIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRD
b250cm9sSW5uZXJFbGVtZW50cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5oCShyZXZpc2lvbiAxOTc0NDYpCisrKyBT
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuaAkod29y
a2luZyBjb3B5KQpAQCAtNzAsNiArNzAsMTYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wg
aXNUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0
cnVlOyB9CiB9OwogCitjbGFzcyBUZXh0Q29udHJvbFBsYWNlaG9sZGVyRWxlbWVudCBmaW5hbCA6
IHB1YmxpYyBIVE1MRGl2RWxlbWVudCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxUZXh0Q29u
dHJvbFBsYWNlaG9sZGVyRWxlbWVudD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkgeyByZXR1
cm4gYWRvcHRSZWYoKm5ldyBUZXh0Q29udHJvbFBsYWNlaG9sZGVyRWxlbWVudChkb2N1bWVudCkp
OyB9CisKK3ByaXZhdGU6CisgICAgVGV4dENvbnRyb2xQbGFjZWhvbGRlckVsZW1lbnQoRG9jdW1l
bnQmKTsKKyAgICAKKyAgICB2aXJ0dWFsIFJlZlB0cjxSZW5kZXJTdHlsZT4gY3VzdG9tU3R5bGVG
b3JSZW5kZXJlcihSZW5kZXJTdHlsZSYgcGFyZW50U3R5bGUsIFJlbmRlclN0eWxlKiBzaGFkb3dI
b3N0U3R5bGUpIG92ZXJyaWRlOworfTsKKwogY2xhc3MgU2VhcmNoRmllbGRSZXN1bHRzQnV0dG9u
RWxlbWVudCBmaW5hbCA6IHB1YmxpYyBIVE1MRGl2RWxlbWVudCB7CiBwdWJsaWM6CiAgICAgc3Rh
dGljIFJlZjxTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25FbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQm
KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmds
ZUxpbmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
ZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwCShyZXZpc2lvbiAxOTc0NDYpCisrKyBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjQ4LDggKzI0OCwxMCBAQCB2b2lkIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGlu
ZTo6c3R5bGVECiAgICAgUmVuZGVyVGV4dENvbnRyb2xJbm5lckJsb2NrKiBpbm5lclRleHRSZW5k
ZXJlciA9IGlubmVyVGV4dEVsZW1lbnQoKS0+cmVuZGVyZXIoKTsKICAgICBpZiAoaW5uZXJUZXh0
UmVuZGVyZXIgJiYgZGlmZiA9PSBTdHlsZURpZmZlcmVuY2VMYXlvdXQpCiAgICAgICAgIGlubmVy
VGV4dFJlbmRlcmVyLT5zZXROZWVkc0xheW91dChNYXJrQ29udGFpbmluZ0Jsb2NrQ2hhaW4pOwot
ICAgIGlmIChIVE1MRWxlbWVudCogcGxhY2Vob2xkZXIgPSBpbnB1dEVsZW1lbnQoKS5wbGFjZWhv
bGRlckVsZW1lbnQoKSkKLSAgICAgICAgcGxhY2Vob2xkZXItPnNldElubGluZVN0eWxlUHJvcGVy
dHkoQ1NTUHJvcGVydHlUZXh0T3ZlcmZsb3csIHRleHRTaG91bGRCZVRydW5jYXRlZCgpID8gQ1NT
VmFsdWVFbGxpcHNpcyA6IENTU1ZhbHVlQ2xpcCk7CisgICAgaWYgKEhUTUxFbGVtZW50KiBwbGFj
ZWhvbGRlciA9IGlucHV0RWxlbWVudCgpLnBsYWNlaG9sZGVyRWxlbWVudCgpKSB7CisgICAgICAg
IGlmIChwbGFjZWhvbGRlci0+cmVuZGVyZXIoKSAmJiBkaWZmID09IFN0eWxlRGlmZmVyZW5jZUxh
eW91dCkKKyAgICAgICAgICAgIHBsYWNlaG9sZGVyLT5yZW5kZXJlcigpLT5zZXROZWVkc0xheW91
dChNYXJrQ29udGFpbmluZ0Jsb2NrQ2hhaW4pOworICAgIH0KICAgICBzZXRIYXNPdmVyZmxvd0Ns
aXAoZmFsc2UpOwogfQogCkBAIC0zMjEsMTEgKzMyMyw2IEBAIExheW91dFVuaXQgUmVuZGVyVGV4
dENvbnRyb2xTaW5nbGVMaW5lOjoKICAgICByZXR1cm4gbGluZUhlaWdodCArIG5vbkNvbnRlbnRI
ZWlnaHQ7CiB9CiAKLWJvb2wgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjp0ZXh0U2hvdWxk
QmVUcnVuY2F0ZWQoKSBjb25zdAotewotICAgIHJldHVybiBkb2N1bWVudCgpLmZvY3VzZWRFbGVt
ZW50KCkgIT0gJmlucHV0RWxlbWVudCgpICYmIHN0eWxlKCkudGV4dE92ZXJmbG93KCkgPT0gVGV4
dE92ZXJmbG93RWxsaXBzaXM7Ci19Ci0KIHZvaWQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5l
OjphdXRvc2Nyb2xsKGNvbnN0IEludFBvaW50JiBwb3NpdGlvbikKIHsKICAgICBSZW5kZXJUZXh0
Q29udHJvbElubmVyQmxvY2sqIHJlbmRlcmVyID0gaW5uZXJUZXh0RWxlbWVudCgpLT5yZW5kZXJl
cigpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2lu
Z2xlTGluZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
ZXh0Q29udHJvbFNpbmdsZUxpbmUuaAkocmV2aXNpb24gMTk3NDQ2KQorKysgU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oCSh3b3JraW5nIGNvcHkp
CkBAIC03Myw4ICs3Myw2IEBAIHByaXZhdGU6CiAgICAgCiAgICAgdmlydHVhbCB2b2lkIHN0eWxl
RGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKSBv
dmVycmlkZTsKIAotICAgIGJvb2wgdGV4dFNob3VsZEJlVHJ1bmNhdGVkKCkgY29uc3Q7Ci0KICAg
ICBIVE1MRWxlbWVudCogaW5uZXJTcGluQnV0dG9uRWxlbWVudCgpIGNvbnN0OwogfTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>273132</attachid>
            <date>2016-03-06 01:29:45 -0800</date>
            <delta_ts>2016-03-06 01:35:09 -0800</delta_ts>
            <desc>patch</desc>
            <filename>text-control-placeholder-style-2.patch</filename>
            <type>text/plain</type>
            <size>13459</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5NzYzNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDY0IEBACisyMDE2LTAzLTA2ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBSZW5kZXJUZXh0Q29udHJvbFNp
bmdsZUxpbmUgc2hvdWxkbid0IG11dGF0ZSBwbGFjZWhvbGRlciBlbGVtZW50IGlubGluZSBzdHls
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU1MDg2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGV4dCBm
aWVsZCBwbGFjZWhvbGRlciBlbGVtZW50IGlzIGN1cnJlbnRseSBtYW5hZ2VkIGJ5IGNoYW5naW5n
IGl0cyBpbmxpbmUgc3R5bGUKKyAgICAgICAgZnJvbSB0aGUgaG9zdCByZW5kZXJlciBiYXNlZCBv
biB0aGUgaG9zdCBzdHlsZSBhbmQgc3RhdGUuIFJlbmRlcmluZyBwb2tpbmcKKyAgICAgICAgaW50
byBET00gaXMgd3JvbmcuCisKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6c2V0UmFuZ2VUZXh0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnNob3VsZFRydW5jYXRlVGV4dCk6CisKKyAg
ICAgICAgICAgIEFkZCBhIGhlbHBlci4KKworICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxl
bWVudDo6Y3JlYXRlSW5uZXJUZXh0U3R5bGUpOgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxl
bWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MVGV4dEFyZWFFbGVtZW50OjpIVE1MVGV4dEFyZWFFbGVtZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0QXJlYUVsZW1lbnQ6OnBsYWNlaG9sZGVyRWxlbWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEFyZWFFbGVtZW50OjptYXRjaGVzUmVhZFdyaXRl
UHNldWRvQ2xhc3MpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRBcmVhRWxlbWVudDo6dXBk
YXRlUGxhY2Vob2xkZXJUZXh0KToKKworICAgICAgICAgICAgVXNlIHRoZSBuZXcgc2hhZG93IGVs
ZW1lbnQuCisKKyAgICAgICAgKiBodG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaDoKKyAgICAgICAg
KiBodG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojp1cGRhdGVQbGFjZWhvbGRlclZpc2liaWxpdHkp
OgorCisgICAgICAgICAgICBObyBtb3JlIHBva2luZyB0byBpbmxpbmUgc3R5bGUuCisKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZXRTZWxlY3Rpb25TdGFy
dCk6CisgICAgICAgICogaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6VGV4dEZpZWxkSW5wdXRUeXBlOjp1cGRhdGVQbGFjZWhvbGRlclRleHQpOgorCisgICAg
ICAgICAgICBVc2UgdGhlIG5ldyBzaGFkb3cgZWxlbWVudC4KKworICAgICAgICAqIGh0bWwvc2hh
ZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0
Q29udHJvbFBsYWNlaG9sZGVyRWxlbWVudDo6VGV4dENvbnRyb2xQbGFjZWhvbGRlckVsZW1lbnQp
OgorCisgICAgICAgICAgICBBZGQgYSBzdWJjbGFzcyBmb3IgdGhlIHBsYWNlaG9sZGVyIGVsZW1l
bnQgaW5zdGVhZCBvZiBqdXN0IHVzaW5nIGRpdi4KKworICAgICAgICAoV2ViQ29yZTo6VGV4dENv
bnRyb2xQbGFjZWhvbGRlckVsZW1lbnQ6OmN1c3RvbVN0eWxlRm9yUmVuZGVyZXIpOgorCisgICAg
ICAgICAgICBDb21wdXRlIHN0eWxlIGJhc2Ugb24gdGhlIGhvc3Qgc3RhdGUgYW5kIHN0eWxlLgor
CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25FbGVtZW50OjpTZWFy
Y2hGaWVsZFJlc3VsdHNCdXR0b25FbGVtZW50KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9UZXh0
Q29udHJvbElubmVyRWxlbWVudHMuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dENv
bnRyb2xTaW5nbGVMaW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9s
U2luZ2xlTGluZTo6c3R5bGVEaWRDaGFuZ2UpOgorCisgICAgICAgICAgICBObyBtb3JlIHNldElu
bGluZVN0eWxlUHJvcGVydHkuCisgICAgICAgICAgICBUaGlzIG5vdyBuZWVkcyB0byB0cmlnZ2Vy
IGxheW91dCBsaWtlIGl0IGRvZXMgd2l0aCBvdGhlciBpbm5lciBlbGVtZW50cy4KKworICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpjb21wdXRlQ29udHJvbExv
Z2ljYWxIZWlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVM
aW5lOjphdXRvc2Nyb2xsKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9sU2lu
Z2xlTGluZTo6dGV4dFNob3VsZEJlVHJ1bmNhdGVkKTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmg6CisKIDIwMTYtMDMtMDUgIFJ5b3N1
a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWRkIHRoZSBzdXBwb3J0IGZv
ciB1cGdyYWRpbmcgY3VzdG9tIGVsZW1lbnRzIGluIGNsb25lTm9kZQpJbmRleDogU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxOTc2MzYpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
ODU5LDYgKzE4NTksMTMgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzZXRSYW5nZVRleHQoY29u
cwogICAgIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZXRSYW5nZVRleHQocmVwbGFjZW1l
bnQsIHN0YXJ0LCBlbmQsIHNlbGVjdGlvbk1vZGUsIGVjKTsKIH0KIAorYm9vbCBIVE1MSW5wdXRF
bGVtZW50OjpzaG91bGRUcnVuY2F0ZVRleHQoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKSBjb25z
dAoreworICAgIGlmICghaXNUZXh0RmllbGQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IHJldHVybiBkb2N1bWVudCgpLmZvY3VzZWRFbGVtZW50KCkgIT0gdGhpcyAmJiBzdHlsZS50ZXh0
T3ZlcmZsb3coKSA9PSBUZXh0T3ZlcmZsb3dFbGxpcHNpczsKK30KKwogUmVmPFJlbmRlclN0eWxl
PiBIVE1MSW5wdXRFbGVtZW50OjpjcmVhdGVJbm5lclRleHRTdHlsZShjb25zdCBSZW5kZXJTdHls
ZSYgc3R5bGUpIGNvbnN0CiB7CiAgICAgYXV0byB0ZXh0QmxvY2tTdHlsZSA9IFJlbmRlclN0eWxl
OjpjcmVhdGUoKTsKQEAgLTE4NjksOSArMTg3Niw3IEBAIFJlZjxSZW5kZXJTdHlsZT4gSFRNTElu
cHV0RWxlbWVudDo6Y3JlYXQKICAgICB0ZXh0QmxvY2tTdHlsZS5nZXQoKS5zZXRPdmVyZmxvd1dy
YXAoTm9ybWFsT3ZlcmZsb3dXcmFwKTsKICAgICB0ZXh0QmxvY2tTdHlsZS5nZXQoKS5zZXRPdmVy
Zmxvd1goT0hJRERFTik7CiAgICAgdGV4dEJsb2NrU3R5bGUuZ2V0KCkuc2V0T3ZlcmZsb3dZKE9I
SURERU4pOwotCi0gICAgYm9vbCB0ZXh0U2hvdWxkQmVUcnVuY2F0ZWQgPSBkb2N1bWVudCgpLmZv
Y3VzZWRFbGVtZW50KCkgIT0gdGhpcyAmJiBzdHlsZS50ZXh0T3ZlcmZsb3coKSA9PSBUZXh0T3Zl
cmZsb3dFbGxpcHNpczsKLSAgICB0ZXh0QmxvY2tTdHlsZS5nZXQoKS5zZXRUZXh0T3ZlcmZsb3co
dGV4dFNob3VsZEJlVHJ1bmNhdGVkID8gVGV4dE92ZXJmbG93RWxsaXBzaXMgOiBUZXh0T3ZlcmZs
b3dDbGlwKTsKKyAgICB0ZXh0QmxvY2tTdHlsZS5nZXQoKS5zZXRUZXh0T3ZlcmZsb3coc2hvdWxk
VHJ1bmNhdGVUZXh0KHN0eWxlKSA/IFRleHRPdmVyZmxvd0VsbGlwc2lzIDogVGV4dE92ZXJmbG93
Q2xpcCk7CiAKICAgICAvLyBEbyBub3QgYWxsb3cgbGluZS1oZWlnaHQgdG8gYmUgc21hbGxlciB0
aGFuIG91ciBkZWZhdWx0LgogICAgIGlmICh0ZXh0QmxvY2tTdHlsZS5nZXQoKS5mb250TWV0cmlj
cygpLmxpbmVTcGFjaW5nKCkgPiBzdHlsZS5jb21wdXRlZExpbmVIZWlnaHQoKSkKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCShyZXZpc2lvbiAxOTc2MzYpCisrKyBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAt
MzIxLDYgKzMyMSw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgY2Fwc0xvY2tTdGF0ZU1heUhhdmVD
aGFuZ2VkKCk7CiAKKyAgICBib29sIHNob3VsZFRydW5jYXRlVGV4dChjb25zdCBSZW5kZXJTdHls
ZSYpIGNvbnN0OworCiBwcm90ZWN0ZWQ6CiAgICAgSFRNTElucHV0RWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQmLCBIVE1MRm9ybUVsZW1lbnQqLCBib29sIGNyZWF0ZWRCeVBh
cnNlcik7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50
LmNwcAkocmV2aXNpb24gMTk3NjM2KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFy
ZWFFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTIsMTAgKzkyLDYgQEAgSFRNTFRleHRB
cmVhRWxlbWVudDo6SFRNTFRleHRBcmVhRWxlbWVudAogICAgIDogSFRNTFRleHRGb3JtQ29udHJv
bEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQsIGZvcm0pCiAgICAgLCBtX3Jvd3MoZGVmYXVsdFJv
d3MpCiAgICAgLCBtX2NvbHMoZGVmYXVsdENvbHMpCi0gICAgLCBtX3dyYXAoU29mdFdyYXApCi0g
ICAgLCBtX3BsYWNlaG9sZGVyKDApCi0gICAgLCBtX2lzRGlydHkoZmFsc2UpCi0gICAgLCBtX3dh
c01vZGlmaWVkQnlVc2VyKGZhbHNlKQogewogICAgIEFTU0VSVChoYXNUYWdOYW1lKHRleHRhcmVh
VGFnKSk7CiAgICAgc2V0Rm9ybUNvbnRyb2xWYWx1ZU1hdGNoZXNSZW5kZXJlcih0cnVlKTsKQEAg
LTQ5Nyw3ICs0OTMsNyBAQCBib29sIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OnNob3VsZFVzZUlucHV0
CiAKIEhUTUxFbGVtZW50KiBIVE1MVGV4dEFyZWFFbGVtZW50OjpwbGFjZWhvbGRlckVsZW1lbnQo
KSBjb25zdAogewotICAgIHJldHVybiBtX3BsYWNlaG9sZGVyOworICAgIHJldHVybiBtX3BsYWNl
aG9sZGVyLmdldCgpOwogfQogCiBib29sIEhUTUxUZXh0QXJlYUVsZW1lbnQ6Om1hdGNoZXNSZWFk
V3JpdGVQc2V1ZG9DbGFzcygpIGNvbnN0CkBAIC01MTYsMTAgKzUxMiw3IEBAIHZvaWQgSFRNTFRl
eHRBcmVhRWxlbWVudDo6dXBkYXRlUGxhY2Vob2wKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAg
ICBpZiAoIW1fcGxhY2Vob2xkZXIpIHsKLSAgICAgICAgUmVmUHRyPEhUTUxEaXZFbGVtZW50PiBw
bGFjZWhvbGRlciA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7Ci0gICAgICAg
IG1fcGxhY2Vob2xkZXIgPSBwbGFjZWhvbGRlci5nZXQoKTsKLSAgICAgICAgbV9wbGFjZWhvbGRl
ci0+c2V0UHNldWRvKEF0b21pY1N0cmluZygiLXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICAgICAgbV9wbGFjZWhvbGRl
ci0+c2V0SW5saW5lU3R5bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eURpc3BsYXksIGlzUGxhY2Vob2xk
ZXJWaXNpYmxlKCkgPyBDU1NWYWx1ZUJsb2NrIDogQ1NTVmFsdWVOb25lLCB0cnVlKTsKKyAgICAg
ICAgbV9wbGFjZWhvbGRlciA9IFRleHRDb250cm9sUGxhY2Vob2xkZXJFbGVtZW50OjpjcmVhdGUo
ZG9jdW1lbnQoKSk7CiAgICAgICAgIHVzZXJBZ2VudFNoYWRvd1Jvb3QoKS0+aW5zZXJ0QmVmb3Jl
KCptX3BsYWNlaG9sZGVyLCBpbm5lclRleHRFbGVtZW50KCktPm5leHRTaWJsaW5nKCkpOwogICAg
IH0KICAgICBtX3BsYWNlaG9sZGVyLT5zZXRJbm5lclRleHQocGxhY2Vob2xkZXJUZXh0LCBBU1NF
UlRfTk9fRVhDRVBUSU9OKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVh
RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVh
RWxlbWVudC5oCShyZXZpc2lvbiAxOTc2MzYpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
ZXh0QXJlYUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTI0LDExICsxMjQsMTEgQEAgcHJp
dmF0ZToKICAgICB1bnNpZ25lZCBtX3Jvd3M7CiAgICAgdW5zaWduZWQgbV9jb2xzOwogICAgIGlu
dCBtX21heExlbmd0aCB7IC0xIH07Ci0gICAgV3JhcE1ldGhvZCBtX3dyYXA7Ci0gICAgSFRNTEVs
ZW1lbnQqIG1fcGxhY2Vob2xkZXI7CisgICAgV3JhcE1ldGhvZCBtX3dyYXAgeyBTb2Z0V3JhcCB9
OworICAgIFJlZlB0cjxIVE1MRWxlbWVudD4gbV9wbGFjZWhvbGRlcjsKICAgICBtdXRhYmxlIFN0
cmluZyBtX3ZhbHVlOwotICAgIG11dGFibGUgYm9vbCBtX2lzRGlydHk7Ci0gICAgbXV0YWJsZSBi
b29sIG1fd2FzTW9kaWZpZWRCeVVzZXI7CisgICAgbXV0YWJsZSBib29sIG1faXNEaXJ0eSB7IGZh
bHNlIH07CisgICAgbXV0YWJsZSBib29sIG1fd2FzTW9kaWZpZWRCeVVzZXIgeyBmYWxzZSB9Owog
fTsKIAogfSAvL25hbWVzcGFjZQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZv
cm1Db250cm9sRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAJKHJldmlzaW9uIDE5NzYzNikKKysrIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xNjQsOSArMTY0LDYgQEAgdm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6
dXBkYXRlUAogICAgICAgICByZXR1cm47CiAKICAgICBzZXROZWVkc1N0eWxlUmVjYWxjKCk7Ci0K
LSAgICBpZiAoSFRNTEVsZW1lbnQqIHBsYWNlaG9sZGVyID0gcGxhY2Vob2xkZXJFbGVtZW50KCkp
Ci0gICAgICAgIHBsYWNlaG9sZGVyLT5zZXRJbmxpbmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5
RGlzcGxheSwgbV9pc1BsYWNlaG9sZGVyVmlzaWJsZSA/IENTU1ZhbHVlQmxvY2sgOiBDU1NWYWx1
ZU5vbmUsIHRydWUpOwogfQogCiB2b2lkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZXRT
ZWxlY3Rpb25TdGFydChpbnQgc3RhcnQpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL1RleHRG
aWVsZElucHV0VHlwZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0
RmllbGRJbnB1dFR5cGUuY3BwCShyZXZpc2lvbiAxOTc2MzYpCisrKyBTb3VyY2UvV2ViQ29yZS9o
dG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ5NCwxMSArNDk0
LDggQEAgdm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OnVwZGF0ZVBsYWNlaG9sZAogICAgICAgICBy
ZXR1cm47CiAgICAgfQogICAgIGlmICghbV9wbGFjZWhvbGRlcikgewotICAgICAgICBtX3BsYWNl
aG9sZGVyID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShlbGVtZW50KCkuZG9jdW1lbnQoKSk7Ci0g
ICAgICAgIG1fcGxhY2Vob2xkZXItPnNldFBzZXVkbyhBdG9taWNTdHJpbmcoIi13ZWJraXQtaW5w
dXQtcGxhY2Vob2xkZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0g
ICAgICAgIG1fcGxhY2Vob2xkZXItPnNldElubGluZVN0eWxlUHJvcGVydHkoQ1NTUHJvcGVydHlE
aXNwbGF5LCBlbGVtZW50KCkuaXNQbGFjZWhvbGRlclZpc2libGUoKSA/IENTU1ZhbHVlQmxvY2sg
OiBDU1NWYWx1ZU5vbmUsIHRydWUpOwotICAgICAgICBlbGVtZW50KCkudXNlckFnZW50U2hhZG93
Um9vdCgpLT5pbnNlcnRCZWZvcmUoKm1fcGxhY2Vob2xkZXIsIG1fY29udGFpbmVyID8gbV9jb250
YWluZXIuZ2V0KCkgOiBpbm5lclRleHRFbGVtZW50KCksIEFTU0VSVF9OT19FWENFUFRJT04pOwot
ICAgICAgICAKKyAgICAgICAgbV9wbGFjZWhvbGRlciA9IFRleHRDb250cm9sUGxhY2Vob2xkZXJF
bGVtZW50OjpjcmVhdGUoZWxlbWVudCgpLmRvY3VtZW50KCkpOworICAgICAgICBlbGVtZW50KCku
dXNlckFnZW50U2hhZG93Um9vdCgpLT5pbnNlcnRCZWZvcmUoKm1fcGxhY2Vob2xkZXIsIG1fY29u
dGFpbmVyID8gbV9jb250YWluZXIuZ2V0KCkgOiBpbm5lclRleHRFbGVtZW50KCksIEFTU0VSVF9O
T19FWENFUFRJT04pOyAgICAgICAgCiAgICAgfQogICAgIG1fcGxhY2Vob2xkZXItPnNldElubmVy
VGV4dChwbGFjZWhvbGRlclRleHQsIEFTU0VSVF9OT19FWENFUFRJT04pOwogfQpJbmRleDogU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxl
bWVudHMuY3BwCShyZXZpc2lvbiAxOTc2MzYpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MSw2ICs0
MSw3IEBACiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIlRleHRFdmVu
dC5oIgogI2luY2x1ZGUgIlRleHRFdmVudElucHV0VHlwZS5oIgorI2luY2x1ZGUgIlNoYWRvd1Jv
b3QuaCIKICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTEz
OSw2ICsxNDAsMzEgQEAgUmVmUHRyPFJlbmRlclN0eWxlPiBUZXh0Q29udHJvbElubmVyVGV4dAog
CiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKK1RleHRDb250cm9sUGxhY2Vob2xk
ZXJFbGVtZW50OjpUZXh0Q29udHJvbFBsYWNlaG9sZGVyRWxlbWVudChEb2N1bWVudCYgZG9jdW1l
bnQpCisgICAgOiBIVE1MRGl2RWxlbWVudChkaXZUYWcsIGRvY3VtZW50KQoreworICAgIHNldEhh
c0N1c3RvbVN0eWxlUmVzb2x2ZUNhbGxiYWNrcygpOworCisgICAgc2V0UHNldWRvKEF0b21pY1N0
cmluZygiLXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpKTsKK30KKworUmVmUHRyPFJlbmRlclN0eWxlPiBUZXh0Q29udHJvbFBsYWNl
aG9sZGVyRWxlbWVudDo6Y3VzdG9tU3R5bGVGb3JSZW5kZXJlcihSZW5kZXJTdHlsZSYgcGFyZW50
U3R5bGUsIFJlbmRlclN0eWxlKiBzaGFkb3dIb3N0U3R5bGUpCit7CisgICAgYXV0byBzdHlsZSA9
IHJlc29sdmVTdHlsZSgmcGFyZW50U3R5bGUpOworCisgICAgYXV0byYgY29udHJvbEVsZW1lbnQg
PSBkb3duY2FzdDxIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudD4oKmNvbnRhaW5pbmdTaGFkb3dS
b290KCktPmhvc3QoKSk7CisgICAgc3R5bGUtPnNldERpc3BsYXkoY29udHJvbEVsZW1lbnQuaXNQ
bGFjZWhvbGRlclZpc2libGUoKSA/IEJMT0NLIDogTk9ORSk7CisKKyAgICBpZiAoaXM8SFRNTElu
cHV0RWxlbWVudD4oY29udHJvbEVsZW1lbnQpKSB7CisgICAgICAgIGF1dG8mIGlucHV0RWxlbWVu
dCA9IGRvd25jYXN0PEhUTUxJbnB1dEVsZW1lbnQ+KGNvbnRyb2xFbGVtZW50KTsKKyAgICAgICAg
c3R5bGUtPnNldFRleHRPdmVyZmxvdyhpbnB1dEVsZW1lbnQuc2hvdWxkVHJ1bmNhdGVUZXh0KCpz
aGFkb3dIb3N0U3R5bGUpID8gVGV4dE92ZXJmbG93RWxsaXBzaXMgOiBUZXh0T3ZlcmZsb3dDbGlw
KTsKKyAgICB9CisKKyAgICByZXR1cm4gV1RGTW92ZShzdHlsZSk7Cit9CisKKy8vIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KKwogaW5saW5lIFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVs
ZW1lbnQ6OlNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50
KQogICAgIDogSFRNTERpdkVsZW1lbnQoZGl2VGFnLCBkb2N1bWVudCkKIHsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50
cy5oCShyZXZpc2lvbiAxOTc2MzYpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0
Q29udHJvbElubmVyRWxlbWVudHMuaAkod29ya2luZyBjb3B5KQpAQCAtNzAsNiArNzAsMTYgQEAg
cHJpdmF0ZToKICAgICBib29sIGlzVGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50KCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogfTsKIAorY2xhc3MgVGV4dENvbnRyb2xQbGFjZWhv
bGRlckVsZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRNTERpdkVsZW1lbnQgeworcHVibGljOgorICAg
IHN0YXRpYyBSZWY8VGV4dENvbnRyb2xQbGFjZWhvbGRlckVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVu
dCYgZG9jdW1lbnQpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGV4dENvbnRyb2xQbGFjZWhvbGRl
ckVsZW1lbnQoZG9jdW1lbnQpKTsgfQorCitwcml2YXRlOgorICAgIFRleHRDb250cm9sUGxhY2Vo
b2xkZXJFbGVtZW50KERvY3VtZW50Jik7CisgICAgCisgICAgdmlydHVhbCBSZWZQdHI8UmVuZGVy
U3R5bGU+IGN1c3RvbVN0eWxlRm9yUmVuZGVyZXIoUmVuZGVyU3R5bGUmIHBhcmVudFN0eWxlLCBS
ZW5kZXJTdHlsZSogc2hhZG93SG9zdFN0eWxlKSBvdmVycmlkZTsKK307CisKIGNsYXNzIFNlYXJj
aEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRNTERpdkVsZW1lbnQg
ewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8U2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uRWxlbWVu
dD4gY3JlYXRlKERvY3VtZW50Jik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcAkocmV2aXNpb24gMTk3
NjM2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xl
TGluZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0OCw4ICsyNDgsMTAgQEAgdm9pZCBSZW5kZXJU
ZXh0Q29udHJvbFNpbmdsZUxpbmU6OnN0eWxlRAogICAgIFJlbmRlclRleHRDb250cm9sSW5uZXJC
bG9jayogaW5uZXJUZXh0UmVuZGVyZXIgPSBpbm5lclRleHRFbGVtZW50KCktPnJlbmRlcmVyKCk7
CiAgICAgaWYgKGlubmVyVGV4dFJlbmRlcmVyICYmIGRpZmYgPT0gU3R5bGVEaWZmZXJlbmNlTGF5
b3V0KQogICAgICAgICBpbm5lclRleHRSZW5kZXJlci0+c2V0TmVlZHNMYXlvdXQoTWFya0NvbnRh
aW5pbmdCbG9ja0NoYWluKTsKLSAgICBpZiAoSFRNTEVsZW1lbnQqIHBsYWNlaG9sZGVyID0gaW5w
dXRFbGVtZW50KCkucGxhY2Vob2xkZXJFbGVtZW50KCkpCi0gICAgICAgIHBsYWNlaG9sZGVyLT5z
ZXRJbmxpbmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5VGV4dE92ZXJmbG93LCB0ZXh0U2hvdWxk
QmVUcnVuY2F0ZWQoKSA/IENTU1ZhbHVlRWxsaXBzaXMgOiBDU1NWYWx1ZUNsaXApOworICAgIGlm
IChIVE1MRWxlbWVudCogcGxhY2Vob2xkZXIgPSBpbnB1dEVsZW1lbnQoKS5wbGFjZWhvbGRlckVs
ZW1lbnQoKSkgeworICAgICAgICBpZiAocGxhY2Vob2xkZXItPnJlbmRlcmVyKCkgJiYgZGlmZiA9
PSBTdHlsZURpZmZlcmVuY2VMYXlvdXQpCisgICAgICAgICAgICBwbGFjZWhvbGRlci0+cmVuZGVy
ZXIoKS0+c2V0TmVlZHNMYXlvdXQoTWFya0NvbnRhaW5pbmdCbG9ja0NoYWluKTsKKyAgICB9CiAg
ICAgc2V0SGFzT3ZlcmZsb3dDbGlwKGZhbHNlKTsKIH0KIApAQCAtMzIxLDExICszMjMsNiBAQCBM
YXlvdXRVbml0IFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6CiAgICAgcmV0dXJuIGxpbmVI
ZWlnaHQgKyBub25Db250ZW50SGVpZ2h0OwogfQogCi1ib29sIFJlbmRlclRleHRDb250cm9sU2lu
Z2xlTGluZTo6dGV4dFNob3VsZEJlVHJ1bmNhdGVkKCkgY29uc3QKLXsKLSAgICByZXR1cm4gZG9j
dW1lbnQoKS5mb2N1c2VkRWxlbWVudCgpICE9ICZpbnB1dEVsZW1lbnQoKSAmJiBzdHlsZSgpLnRl
eHRPdmVyZmxvdygpID09IFRleHRPdmVyZmxvd0VsbGlwc2lzOwotfQotCiB2b2lkIFJlbmRlclRl
eHRDb250cm9sU2luZ2xlTGluZTo6YXV0b3Njcm9sbChjb25zdCBJbnRQb2ludCYgcG9zaXRpb24p
CiB7CiAgICAgUmVuZGVyVGV4dENvbnRyb2xJbm5lckJsb2NrKiByZW5kZXJlciA9IGlubmVyVGV4
dEVsZW1lbnQoKS0+cmVuZGVyZXIoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmgJKHJldmlzaW9uIDE5NzYz
NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxp
bmUuaAkod29ya2luZyBjb3B5KQpAQCAtNzMsOCArNzMsNiBAQCBwcml2YXRlOgogICAgIAogICAg
IHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSog
b2xkU3R5bGUpIG92ZXJyaWRlOwogCi0gICAgYm9vbCB0ZXh0U2hvdWxkQmVUcnVuY2F0ZWQoKSBj
b25zdDsKLQogICAgIEhUTUxFbGVtZW50KiBpbm5lclNwaW5CdXR0b25FbGVtZW50KCkgY29uc3Q7
CiB9OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>273133</attachid>
            <date>2016-03-06 01:35:09 -0800</date>
            <delta_ts>2016-03-06 02:02:41 -0800</delta_ts>
            <desc>patch</desc>
            <filename>text-control-placeholder-style-3.patch</filename>
            <type>text/plain</type>
            <size>13483</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5NzYzNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDY0IEBACisyMDE2LTAzLTA2ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBSZW5kZXJUZXh0Q29udHJvbFNp
bmdsZUxpbmUgc2hvdWxkbid0IG11dGF0ZSBwbGFjZWhvbGRlciBlbGVtZW50IGlubGluZSBzdHls
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU1MDg2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGV4dCBm
aWVsZCBwbGFjZWhvbGRlciBlbGVtZW50IGlzIGN1cnJlbnRseSBtYW5hZ2VkIGJ5IGNoYW5naW5n
IGl0cyBpbmxpbmUgc3R5bGUKKyAgICAgICAgZnJvbSB0aGUgaG9zdCByZW5kZXJlciBiYXNlZCBv
biB0aGUgaG9zdCBzdHlsZSBhbmQgc3RhdGUuIFJlbmRlcmluZyBwb2tpbmcKKyAgICAgICAgaW50
byBET00gaXMgd3JvbmcuCisKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6c2V0UmFuZ2VUZXh0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnNob3VsZFRydW5jYXRlVGV4dCk6CisKKyAg
ICAgICAgICAgIEFkZCBhIGhlbHBlci4KKworICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxl
bWVudDo6Y3JlYXRlSW5uZXJUZXh0U3R5bGUpOgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxl
bWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MVGV4dEFyZWFFbGVtZW50OjpIVE1MVGV4dEFyZWFFbGVtZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0QXJlYUVsZW1lbnQ6OnBsYWNlaG9sZGVyRWxlbWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEFyZWFFbGVtZW50OjptYXRjaGVzUmVhZFdyaXRl
UHNldWRvQ2xhc3MpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRBcmVhRWxlbWVudDo6dXBk
YXRlUGxhY2Vob2xkZXJUZXh0KToKKworICAgICAgICAgICAgVXNlIHRoZSBuZXcgc2hhZG93IGVs
ZW1lbnQuCisKKyAgICAgICAgKiBodG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaDoKKyAgICAgICAg
KiBodG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojp1cGRhdGVQbGFjZWhvbGRlclZpc2liaWxpdHkp
OgorCisgICAgICAgICAgICBObyBtb3JlIHBva2luZyB0byBpbmxpbmUgc3R5bGUuCisKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZXRTZWxlY3Rpb25TdGFy
dCk6CisgICAgICAgICogaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6VGV4dEZpZWxkSW5wdXRUeXBlOjp1cGRhdGVQbGFjZWhvbGRlclRleHQpOgorCisgICAg
ICAgICAgICBVc2UgdGhlIG5ldyBzaGFkb3cgZWxlbWVudC4KKworICAgICAgICAqIGh0bWwvc2hh
ZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0
Q29udHJvbFBsYWNlaG9sZGVyRWxlbWVudDo6VGV4dENvbnRyb2xQbGFjZWhvbGRlckVsZW1lbnQp
OgorCisgICAgICAgICAgICBBZGQgYSBzdWJjbGFzcyBmb3IgdGhlIHBsYWNlaG9sZGVyIGVsZW1l
bnQgaW5zdGVhZCBvZiBqdXN0IHVzaW5nIGRpdi4KKworICAgICAgICAoV2ViQ29yZTo6VGV4dENv
bnRyb2xQbGFjZWhvbGRlckVsZW1lbnQ6OmN1c3RvbVN0eWxlRm9yUmVuZGVyZXIpOgorCisgICAg
ICAgICAgICBDb21wdXRlIHN0eWxlIGJhc2Ugb24gdGhlIGhvc3Qgc3RhdGUgYW5kIHN0eWxlLgor
CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25FbGVtZW50OjpTZWFy
Y2hGaWVsZFJlc3VsdHNCdXR0b25FbGVtZW50KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9UZXh0
Q29udHJvbElubmVyRWxlbWVudHMuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dENv
bnRyb2xTaW5nbGVMaW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9s
U2luZ2xlTGluZTo6c3R5bGVEaWRDaGFuZ2UpOgorCisgICAgICAgICAgICBObyBtb3JlIHNldElu
bGluZVN0eWxlUHJvcGVydHkuCisgICAgICAgICAgICBUaGlzIG5vdyBuZWVkcyB0byB0cmlnZ2Vy
IGxheW91dCBsaWtlIGl0IGRvZXMgd2l0aCBvdGhlciBpbm5lciBlbGVtZW50cy4KKworICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpjb21wdXRlQ29udHJvbExv
Z2ljYWxIZWlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVM
aW5lOjphdXRvc2Nyb2xsKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9sU2lu
Z2xlTGluZTo6dGV4dFNob3VsZEJlVHJ1bmNhdGVkKTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmg6CisKIDIwMTYtMDMtMDUgIFJ5b3N1
a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWRkIHRoZSBzdXBwb3J0IGZv
ciB1cGdyYWRpbmcgY3VzdG9tIGVsZW1lbnRzIGluIGNsb25lTm9kZQpJbmRleDogU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxOTc2MzYpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
ODU5LDYgKzE4NTksMTMgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzZXRSYW5nZVRleHQoY29u
cwogICAgIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZXRSYW5nZVRleHQocmVwbGFjZW1l
bnQsIHN0YXJ0LCBlbmQsIHNlbGVjdGlvbk1vZGUsIGVjKTsKIH0KIAorYm9vbCBIVE1MSW5wdXRF
bGVtZW50OjpzaG91bGRUcnVuY2F0ZVRleHQoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKSBjb25z
dAoreworICAgIGlmICghaXNUZXh0RmllbGQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IHJldHVybiBkb2N1bWVudCgpLmZvY3VzZWRFbGVtZW50KCkgIT0gdGhpcyAmJiBzdHlsZS50ZXh0
T3ZlcmZsb3coKSA9PSBUZXh0T3ZlcmZsb3dFbGxpcHNpczsKK30KKwogUmVmPFJlbmRlclN0eWxl
PiBIVE1MSW5wdXRFbGVtZW50OjpjcmVhdGVJbm5lclRleHRTdHlsZShjb25zdCBSZW5kZXJTdHls
ZSYgc3R5bGUpIGNvbnN0CiB7CiAgICAgYXV0byB0ZXh0QmxvY2tTdHlsZSA9IFJlbmRlclN0eWxl
OjpjcmVhdGUoKTsKQEAgLTE4NjksOSArMTg3Niw3IEBAIFJlZjxSZW5kZXJTdHlsZT4gSFRNTElu
cHV0RWxlbWVudDo6Y3JlYXQKICAgICB0ZXh0QmxvY2tTdHlsZS5nZXQoKS5zZXRPdmVyZmxvd1dy
YXAoTm9ybWFsT3ZlcmZsb3dXcmFwKTsKICAgICB0ZXh0QmxvY2tTdHlsZS5nZXQoKS5zZXRPdmVy
Zmxvd1goT0hJRERFTik7CiAgICAgdGV4dEJsb2NrU3R5bGUuZ2V0KCkuc2V0T3ZlcmZsb3dZKE9I
SURERU4pOwotCi0gICAgYm9vbCB0ZXh0U2hvdWxkQmVUcnVuY2F0ZWQgPSBkb2N1bWVudCgpLmZv
Y3VzZWRFbGVtZW50KCkgIT0gdGhpcyAmJiBzdHlsZS50ZXh0T3ZlcmZsb3coKSA9PSBUZXh0T3Zl
cmZsb3dFbGxpcHNpczsKLSAgICB0ZXh0QmxvY2tTdHlsZS5nZXQoKS5zZXRUZXh0T3ZlcmZsb3co
dGV4dFNob3VsZEJlVHJ1bmNhdGVkID8gVGV4dE92ZXJmbG93RWxsaXBzaXMgOiBUZXh0T3ZlcmZs
b3dDbGlwKTsKKyAgICB0ZXh0QmxvY2tTdHlsZS5nZXQoKS5zZXRUZXh0T3ZlcmZsb3coc2hvdWxk
VHJ1bmNhdGVUZXh0KHN0eWxlKSA/IFRleHRPdmVyZmxvd0VsbGlwc2lzIDogVGV4dE92ZXJmbG93
Q2xpcCk7CiAKICAgICAvLyBEbyBub3QgYWxsb3cgbGluZS1oZWlnaHQgdG8gYmUgc21hbGxlciB0
aGFuIG91ciBkZWZhdWx0LgogICAgIGlmICh0ZXh0QmxvY2tTdHlsZS5nZXQoKS5mb250TWV0cmlj
cygpLmxpbmVTcGFjaW5nKCkgPiBzdHlsZS5jb21wdXRlZExpbmVIZWlnaHQoKSkKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCShyZXZpc2lvbiAxOTc2MzYpCisrKyBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAt
MzIxLDYgKzMyMSw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgY2Fwc0xvY2tTdGF0ZU1heUhhdmVD
aGFuZ2VkKCk7CiAKKyAgICBib29sIHNob3VsZFRydW5jYXRlVGV4dChjb25zdCBSZW5kZXJTdHls
ZSYpIGNvbnN0OworCiBwcm90ZWN0ZWQ6CiAgICAgSFRNTElucHV0RWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQmLCBIVE1MRm9ybUVsZW1lbnQqLCBib29sIGNyZWF0ZWRCeVBh
cnNlcik7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50
LmNwcAkocmV2aXNpb24gMTk3NjM2KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFy
ZWFFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTIsMTAgKzkyLDYgQEAgSFRNTFRleHRB
cmVhRWxlbWVudDo6SFRNTFRleHRBcmVhRWxlbWVudAogICAgIDogSFRNTFRleHRGb3JtQ29udHJv
bEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQsIGZvcm0pCiAgICAgLCBtX3Jvd3MoZGVmYXVsdFJv
d3MpCiAgICAgLCBtX2NvbHMoZGVmYXVsdENvbHMpCi0gICAgLCBtX3dyYXAoU29mdFdyYXApCi0g
ICAgLCBtX3BsYWNlaG9sZGVyKDApCi0gICAgLCBtX2lzRGlydHkoZmFsc2UpCi0gICAgLCBtX3dh
c01vZGlmaWVkQnlVc2VyKGZhbHNlKQogewogICAgIEFTU0VSVChoYXNUYWdOYW1lKHRleHRhcmVh
VGFnKSk7CiAgICAgc2V0Rm9ybUNvbnRyb2xWYWx1ZU1hdGNoZXNSZW5kZXJlcih0cnVlKTsKQEAg
LTQ5Nyw3ICs0OTMsNyBAQCBib29sIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OnNob3VsZFVzZUlucHV0
CiAKIEhUTUxFbGVtZW50KiBIVE1MVGV4dEFyZWFFbGVtZW50OjpwbGFjZWhvbGRlckVsZW1lbnQo
KSBjb25zdAogewotICAgIHJldHVybiBtX3BsYWNlaG9sZGVyOworICAgIHJldHVybiBtX3BsYWNl
aG9sZGVyLmdldCgpOwogfQogCiBib29sIEhUTUxUZXh0QXJlYUVsZW1lbnQ6Om1hdGNoZXNSZWFk
V3JpdGVQc2V1ZG9DbGFzcygpIGNvbnN0CkBAIC01MTYsMTAgKzUxMiw3IEBAIHZvaWQgSFRNTFRl
eHRBcmVhRWxlbWVudDo6dXBkYXRlUGxhY2Vob2wKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAg
ICBpZiAoIW1fcGxhY2Vob2xkZXIpIHsKLSAgICAgICAgUmVmUHRyPEhUTUxEaXZFbGVtZW50PiBw
bGFjZWhvbGRlciA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7Ci0gICAgICAg
IG1fcGxhY2Vob2xkZXIgPSBwbGFjZWhvbGRlci5nZXQoKTsKLSAgICAgICAgbV9wbGFjZWhvbGRl
ci0+c2V0UHNldWRvKEF0b21pY1N0cmluZygiLXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICAgICAgbV9wbGFjZWhvbGRl
ci0+c2V0SW5saW5lU3R5bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eURpc3BsYXksIGlzUGxhY2Vob2xk
ZXJWaXNpYmxlKCkgPyBDU1NWYWx1ZUJsb2NrIDogQ1NTVmFsdWVOb25lLCB0cnVlKTsKKyAgICAg
ICAgbV9wbGFjZWhvbGRlciA9IFRleHRDb250cm9sUGxhY2Vob2xkZXJFbGVtZW50OjpjcmVhdGUo
ZG9jdW1lbnQoKSk7CiAgICAgICAgIHVzZXJBZ2VudFNoYWRvd1Jvb3QoKS0+aW5zZXJ0QmVmb3Jl
KCptX3BsYWNlaG9sZGVyLCBpbm5lclRleHRFbGVtZW50KCktPm5leHRTaWJsaW5nKCkpOwogICAg
IH0KICAgICBtX3BsYWNlaG9sZGVyLT5zZXRJbm5lclRleHQocGxhY2Vob2xkZXJUZXh0LCBBU1NF
UlRfTk9fRVhDRVBUSU9OKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVh
RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVh
RWxlbWVudC5oCShyZXZpc2lvbiAxOTc2MzYpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
ZXh0QXJlYUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTI0LDExICsxMjQsMTEgQEAgcHJp
dmF0ZToKICAgICB1bnNpZ25lZCBtX3Jvd3M7CiAgICAgdW5zaWduZWQgbV9jb2xzOwogICAgIGlu
dCBtX21heExlbmd0aCB7IC0xIH07Ci0gICAgV3JhcE1ldGhvZCBtX3dyYXA7Ci0gICAgSFRNTEVs
ZW1lbnQqIG1fcGxhY2Vob2xkZXI7CisgICAgV3JhcE1ldGhvZCBtX3dyYXAgeyBTb2Z0V3JhcCB9
OworICAgIFJlZlB0cjxIVE1MRWxlbWVudD4gbV9wbGFjZWhvbGRlcjsKICAgICBtdXRhYmxlIFN0
cmluZyBtX3ZhbHVlOwotICAgIG11dGFibGUgYm9vbCBtX2lzRGlydHk7Ci0gICAgbXV0YWJsZSBi
b29sIG1fd2FzTW9kaWZpZWRCeVVzZXI7CisgICAgbXV0YWJsZSBib29sIG1faXNEaXJ0eSB7IGZh
bHNlIH07CisgICAgbXV0YWJsZSBib29sIG1fd2FzTW9kaWZpZWRCeVVzZXIgeyBmYWxzZSB9Owog
fTsKIAogfSAvL25hbWVzcGFjZQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZv
cm1Db250cm9sRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAJKHJldmlzaW9uIDE5NzYzNikKKysrIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xNjQsOSArMTY0LDYgQEAgdm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6
dXBkYXRlUAogICAgICAgICByZXR1cm47CiAKICAgICBzZXROZWVkc1N0eWxlUmVjYWxjKCk7Ci0K
LSAgICBpZiAoSFRNTEVsZW1lbnQqIHBsYWNlaG9sZGVyID0gcGxhY2Vob2xkZXJFbGVtZW50KCkp
Ci0gICAgICAgIHBsYWNlaG9sZGVyLT5zZXRJbmxpbmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5
RGlzcGxheSwgbV9pc1BsYWNlaG9sZGVyVmlzaWJsZSA/IENTU1ZhbHVlQmxvY2sgOiBDU1NWYWx1
ZU5vbmUsIHRydWUpOwogfQogCiB2b2lkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZXRT
ZWxlY3Rpb25TdGFydChpbnQgc3RhcnQpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL1RleHRG
aWVsZElucHV0VHlwZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0
RmllbGRJbnB1dFR5cGUuY3BwCShyZXZpc2lvbiAxOTc2MzYpCisrKyBTb3VyY2UvV2ViQ29yZS9o
dG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ5NCwxMSArNDk0
LDggQEAgdm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OnVwZGF0ZVBsYWNlaG9sZAogICAgICAgICBy
ZXR1cm47CiAgICAgfQogICAgIGlmICghbV9wbGFjZWhvbGRlcikgewotICAgICAgICBtX3BsYWNl
aG9sZGVyID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShlbGVtZW50KCkuZG9jdW1lbnQoKSk7Ci0g
ICAgICAgIG1fcGxhY2Vob2xkZXItPnNldFBzZXVkbyhBdG9taWNTdHJpbmcoIi13ZWJraXQtaW5w
dXQtcGxhY2Vob2xkZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0g
ICAgICAgIG1fcGxhY2Vob2xkZXItPnNldElubGluZVN0eWxlUHJvcGVydHkoQ1NTUHJvcGVydHlE
aXNwbGF5LCBlbGVtZW50KCkuaXNQbGFjZWhvbGRlclZpc2libGUoKSA/IENTU1ZhbHVlQmxvY2sg
OiBDU1NWYWx1ZU5vbmUsIHRydWUpOwotICAgICAgICBlbGVtZW50KCkudXNlckFnZW50U2hhZG93
Um9vdCgpLT5pbnNlcnRCZWZvcmUoKm1fcGxhY2Vob2xkZXIsIG1fY29udGFpbmVyID8gbV9jb250
YWluZXIuZ2V0KCkgOiBpbm5lclRleHRFbGVtZW50KCksIEFTU0VSVF9OT19FWENFUFRJT04pOwot
ICAgICAgICAKKyAgICAgICAgbV9wbGFjZWhvbGRlciA9IFRleHRDb250cm9sUGxhY2Vob2xkZXJF
bGVtZW50OjpjcmVhdGUoZWxlbWVudCgpLmRvY3VtZW50KCkpOworICAgICAgICBlbGVtZW50KCku
dXNlckFnZW50U2hhZG93Um9vdCgpLT5pbnNlcnRCZWZvcmUoKm1fcGxhY2Vob2xkZXIsIG1fY29u
dGFpbmVyID8gbV9jb250YWluZXIuZ2V0KCkgOiBpbm5lclRleHRFbGVtZW50KCksIEFTU0VSVF9O
T19FWENFUFRJT04pOyAgICAgICAgCiAgICAgfQogICAgIG1fcGxhY2Vob2xkZXItPnNldElubmVy
VGV4dChwbGFjZWhvbGRlclRleHQsIEFTU0VSVF9OT19FWENFUFRJT04pOwogfQpJbmRleDogU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxl
bWVudHMuY3BwCShyZXZpc2lvbiAxOTc2MzYpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw2ICsz
OSw3IEBACiAjaW5jbHVkZSAiUmVuZGVyVGV4dENvbnRyb2wuaCIKICNpbmNsdWRlICJSZW5kZXJW
aWV3LmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgorI2luY2x1ZGUgIlNoYWRvd1Jv
b3QuaCIKICNpbmNsdWRlICJUZXh0RXZlbnQuaCIKICNpbmNsdWRlICJUZXh0RXZlbnRJbnB1dFR5
cGUuaCIKICNpbmNsdWRlIDx3dGYvUmVmLmg+CkBAIC0xMzksNiArMTQwLDMwIEBAIFJlZlB0cjxS
ZW5kZXJTdHlsZT4gVGV4dENvbnRyb2xJbm5lclRleHQKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQogCitUZXh0Q29udHJvbFBsYWNlaG9sZGVyRWxlbWVudDo6VGV4dENvbnRyb2xQ
bGFjZWhvbGRlckVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQorICAgIDogSFRNTERpdkVsZW1l
bnQoZGl2VGFnLCBkb2N1bWVudCkKK3sKKyAgICBzZXRQc2V1ZG8oQXRvbWljU3RyaW5nKCItd2Vi
a2l0LWlucHV0LXBsYWNlaG9sZGVyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCkpOworICAgIHNldEhhc0N1c3RvbVN0eWxlUmVzb2x2ZUNhbGxiYWNrcygpOworfQorCitSZWZQ
dHI8UmVuZGVyU3R5bGU+IFRleHRDb250cm9sUGxhY2Vob2xkZXJFbGVtZW50OjpjdXN0b21TdHls
ZUZvclJlbmRlcmVyKFJlbmRlclN0eWxlJiBwYXJlbnRTdHlsZSwgUmVuZGVyU3R5bGUqIHNoYWRv
d0hvc3RTdHlsZSkKK3sKKyAgICBhdXRvIHN0eWxlID0gcmVzb2x2ZVN0eWxlKCZwYXJlbnRTdHls
ZSk7CisKKyAgICBhdXRvJiBjb250cm9sRWxlbWVudCA9IGRvd25jYXN0PEhUTUxUZXh0Rm9ybUNv
bnRyb2xFbGVtZW50PigqY29udGFpbmluZ1NoYWRvd1Jvb3QoKS0+aG9zdCgpKTsKKyAgICBzdHls
ZS0+c2V0RGlzcGxheShjb250cm9sRWxlbWVudC5pc1BsYWNlaG9sZGVyVmlzaWJsZSgpID8gQkxP
Q0sgOiBOT05FKTsKKworICAgIGlmIChpczxIVE1MSW5wdXRFbGVtZW50Pihjb250cm9sRWxlbWVu
dCkpIHsKKyAgICAgICAgYXV0byYgaW5wdXRFbGVtZW50ID0gZG93bmNhc3Q8SFRNTElucHV0RWxl
bWVudD4oY29udHJvbEVsZW1lbnQpOworICAgICAgICBzdHlsZS0+c2V0VGV4dE92ZXJmbG93KGlu
cHV0RWxlbWVudC5zaG91bGRUcnVuY2F0ZVRleHQoKnNoYWRvd0hvc3RTdHlsZSkgPyBUZXh0T3Zl
cmZsb3dFbGxpcHNpcyA6IFRleHRPdmVyZmxvd0NsaXApOworICAgIH0KKworICAgIHJldHVybiBX
VEZNb3ZlKHN0eWxlKTsKK30KKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCiBp
bmxpbmUgU2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uRWxlbWVudDo6U2VhcmNoRmllbGRSZXN1bHRz
QnV0dG9uRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBIVE1MRGl2RWxlbWVudChk
aXZUYWcsIGRvY3VtZW50KQogewpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4
dENvbnRyb2xJbm5lckVsZW1lbnRzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmgJKHJldmlzaW9uIDE5NzYzNikKKysr
IFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5oCSh3
b3JraW5nIGNvcHkpCkBAIC03MCw2ICs3MCwxNiBAQCBwcml2YXRlOgogICAgIGJvb2wgaXNUZXh0
Q29udHJvbElubmVyVGV4dEVsZW1lbnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9
CiB9OwogCitjbGFzcyBUZXh0Q29udHJvbFBsYWNlaG9sZGVyRWxlbWVudCBmaW5hbCA6IHB1Ymxp
YyBIVE1MRGl2RWxlbWVudCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxUZXh0Q29udHJvbFBs
YWNlaG9sZGVyRWxlbWVudD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkgeyByZXR1cm4gYWRv
cHRSZWYoKm5ldyBUZXh0Q29udHJvbFBsYWNlaG9sZGVyRWxlbWVudChkb2N1bWVudCkpOyB9CisK
K3ByaXZhdGU6CisgICAgVGV4dENvbnRyb2xQbGFjZWhvbGRlckVsZW1lbnQoRG9jdW1lbnQmKTsK
KyAgICAKKyAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IGN1c3RvbVN0eWxlRm9yUmVuZGVyZXIoUmVu
ZGVyU3R5bGUmIHBhcmVudFN0eWxlLCBSZW5kZXJTdHlsZSogc2hhZG93SG9zdFN0eWxlKSBvdmVy
cmlkZTsKK307CisKIGNsYXNzIFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1lbnQgZmluYWwg
OiBwdWJsaWMgSFRNTERpdkVsZW1lbnQgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8U2VhcmNo
RmllbGRSZXN1bHRzQnV0dG9uRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5n
bGVMaW5lLmNwcAkocmV2aXNpb24gMTk3NjM2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0OCw4
ICsyNDgsMTAgQEAgdm9pZCBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnN0eWxlRAogICAg
IFJlbmRlclRleHRDb250cm9sSW5uZXJCbG9jayogaW5uZXJUZXh0UmVuZGVyZXIgPSBpbm5lclRl
eHRFbGVtZW50KCktPnJlbmRlcmVyKCk7CiAgICAgaWYgKGlubmVyVGV4dFJlbmRlcmVyICYmIGRp
ZmYgPT0gU3R5bGVEaWZmZXJlbmNlTGF5b3V0KQogICAgICAgICBpbm5lclRleHRSZW5kZXJlci0+
c2V0TmVlZHNMYXlvdXQoTWFya0NvbnRhaW5pbmdCbG9ja0NoYWluKTsKLSAgICBpZiAoSFRNTEVs
ZW1lbnQqIHBsYWNlaG9sZGVyID0gaW5wdXRFbGVtZW50KCkucGxhY2Vob2xkZXJFbGVtZW50KCkp
Ci0gICAgICAgIHBsYWNlaG9sZGVyLT5zZXRJbmxpbmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5
VGV4dE92ZXJmbG93LCB0ZXh0U2hvdWxkQmVUcnVuY2F0ZWQoKSA/IENTU1ZhbHVlRWxsaXBzaXMg
OiBDU1NWYWx1ZUNsaXApOworICAgIGlmIChIVE1MRWxlbWVudCogcGxhY2Vob2xkZXIgPSBpbnB1
dEVsZW1lbnQoKS5wbGFjZWhvbGRlckVsZW1lbnQoKSkgeworICAgICAgICBpZiAocGxhY2Vob2xk
ZXItPnJlbmRlcmVyKCkgJiYgZGlmZiA9PSBTdHlsZURpZmZlcmVuY2VMYXlvdXQpCisgICAgICAg
ICAgICBwbGFjZWhvbGRlci0+cmVuZGVyZXIoKS0+c2V0TmVlZHNMYXlvdXQoTWFya0NvbnRhaW5p
bmdCbG9ja0NoYWluKTsKKyAgICB9CiAgICAgc2V0SGFzT3ZlcmZsb3dDbGlwKGZhbHNlKTsKIH0K
IApAQCAtMzIxLDExICszMjMsNiBAQCBMYXlvdXRVbml0IFJlbmRlclRleHRDb250cm9sU2luZ2xl
TGluZTo6CiAgICAgcmV0dXJuIGxpbmVIZWlnaHQgKyBub25Db250ZW50SGVpZ2h0OwogfQogCi1i
b29sIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6dGV4dFNob3VsZEJlVHJ1bmNhdGVkKCkg
Y29uc3QKLXsKLSAgICByZXR1cm4gZG9jdW1lbnQoKS5mb2N1c2VkRWxlbWVudCgpICE9ICZpbnB1
dEVsZW1lbnQoKSAmJiBzdHlsZSgpLnRleHRPdmVyZmxvdygpID09IFRleHRPdmVyZmxvd0VsbGlw
c2lzOwotfQotCiB2b2lkIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6YXV0b3Njcm9sbChj
b25zdCBJbnRQb2ludCYgcG9zaXRpb24pCiB7CiAgICAgUmVuZGVyVGV4dENvbnRyb2xJbm5lckJs
b2NrKiByZW5kZXJlciA9IGlubmVyVGV4dEVsZW1lbnQoKS0+cmVuZGVyZXIoKTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5n
bGVMaW5lLmgJKHJldmlzaW9uIDE5NzYzNikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaAkod29ya2luZyBjb3B5KQpAQCAtNzMsOCArNzMs
NiBAQCBwcml2YXRlOgogICAgIAogICAgIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJl
bmNlLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpIG92ZXJyaWRlOwogCi0gICAgYm9vbCB0
ZXh0U2hvdWxkQmVUcnVuY2F0ZWQoKSBjb25zdDsKLQogICAgIEhUTUxFbGVtZW50KiBpbm5lclNw
aW5CdXR0b25FbGVtZW50KCkgY29uc3Q7CiB9OwogCg==
</data>
<flag name="review"
          id="297735"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>