<?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>121312</bug_id>
          
          <creation_ts>2013-09-13 11:35:43 -0700</creation_ts>
          <short_desc>Remove layering-violating Pasteboard::plainText function (for all platforms now)</short_desc>
          <delta_ts>2013-09-13 12:08:16 -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>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>928933</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-09-13 11:35:43 -0700</bug_when>
    <thetext>Remove layering-violating Pasteboard::plainText function (for all platforms now)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>928936</commentid>
    <comment_count>1</comment_count>
      <attachid>211571</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-09-13 11:42:50 -0700</bug_when>
    <thetext>Created attachment 211571
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>928938</commentid>
    <comment_count>2</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-09-13 11:45:35 -0700</bug_when>
    <thetext>Oops, I bet this won&apos;t compile. Some typo somewhere.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>928939</commentid>
    <comment_count>3</comment_count>
      <attachid>211572</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-09-13 11:47:23 -0700</bug_when>
    <thetext>Created attachment 211572
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>928940</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-09-13 11:47:32 -0700</bug_when>
    <thetext>There we go.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>928951</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-09-13 12:08:16 -0700</bug_when>
    <thetext>Committed r155715: &lt;http://trac.webkit.org/changeset/155715&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>211571</attachid>
            <date>2013-09-13 11:42:50 -0700</date>
            <delta_ts>2013-09-13 11:47:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-121312-20130913114249.patch</filename>
            <type>text/plain</type>
            <size>16226</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU1NzEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODFlZTM1MDhlYmRlNWEy
ZDI4YjE5Y2RjOGM1MDA4MzRmZGI1NzZjMC4uNWQ0YTVhNjQ4ZDcwZDc1M2E5YjQ1OTczOTc3ZDQw
ZjQ5Nzk1MDUwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDUxIEBACiAyMDEzLTA5LTEzICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAorICAgICAgICBSZW1vdmUgbGF5ZXJpbmctdmlv
bGF0aW5nIFBhc3RlYm9hcmQ6OnBsYWluVGV4dCBmdW5jdGlvbiAoZm9yIGFsbCBwbGF0Zm9ybXMg
bm93KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIx
MzEyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBl
ZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnBhc3RlQXNQbGFp
blRleHRXaXRoUGFzdGVib2FyZCk6IENhbGwgcmVhZFBsYWluVGV4dEZyb21QYXN0ZWJvYXJkCisg
ICAgICAgIG9uIGFsbCBwbGF0Zm9ybXMsIG5vdCBqdXN0IE1hYyBhbmQgRUZMLiBBbHNvIGNhbGwg
Y2FuU21hcnRSZXBsYWNlV2l0aFBhc3RlYm9hcmQgd2l0aAorICAgICAgICBhIHJlZmVyZW5jZSBp
bnN0ZWFkIG9mIGEgcG9pbnRlci4KKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6cmVhZFBsYWlu
VGV4dEZyb21QYXN0ZWJvYXJkKTogQWRkZWQuIFRoaXMgaXMgYSBjcm9zcy1wbGF0Zm9ybQorICAg
ICAgICB2ZXJzaW9uIG9mIHdoYXQgd2FzIHByZXZpb3VzbHkgYSBNYWMtb25seSBmdW5jdGlvbi4K
KyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6cGxhaW5UZXh0RnJvbVBhc3RlYm9hcmQpOiBBZGRl
ZC4gVGhpcyBpcyB0aGUgc2ltcGxlIG5vbi1NYWMgdmVyc2lvbgorICAgICAgICBvZiB0aGlzIGZ1
bmN0aW9uLgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpwYXN0ZVdpdGhQYXN0ZWJvYXJkKTog
VXBkYXRlZCB0byBjYWxsIGNhblNtYXJ0UmVwbGFjZVdpdGhQYXN0ZWJvYXJkCisgICAgICAgIHdp
dGggYSByZWZlcmVuY2UuCisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmNhblNtYXJ0UmVwbGFj
ZVdpdGhQYXN0ZWJvYXJkKTogVXBkYXRlZCB0byB0YWtlIGEgcmVmZXJlbmNlLgorCisgICAgICAg
ICogZWRpdGluZy9FZGl0b3IuaDogTWFrZSByZWFkUGxhaW5UZXh0RnJvbVBhc3RlYm9hcmQgY3Jv
c3MtcGxhdGZvcm0gaW5zdGVhZCBvZgorICAgICAgICBNYWMtb25seS4gQWxzbyBjaGFuZ2VkIGFy
Z3VtZW50IHRvIGNhblNtYXJ0UmVwbGFjZVdpdGhQYXN0ZWJvYXJkIHRvIGJlIGEgcmVmZXJlbmNl
LgorICAgICAgICBBbHNvIGFkZGVkIHByaXZhdGUgcGxhaW5UZXh0RnJvbVBhc3RlYm9hcmQgZnVu
Y3Rpb24uCisKKyAgICAgICAgKiBlZGl0aW5nL21hYy9FZGl0b3JNYWMubW06CisgICAgICAgIChX
ZWJDb3JlOjpFZGl0b3I6OnBhc3RlV2l0aFBhc3RlYm9hcmQpOiBVcGRhdGVkIHRvIGNhbGwgY2Fu
U21hcnRSZXBsYWNlV2l0aFBhc3RlYm9hcmQKKyAgICAgICAgd2l0aCBhIHJlZmVyZW5jZS4KKyAg
ICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6cGxhaW5UZXh0RnJvbVBhc3RlYm9hcmQpOiBBZGRlZC4g
Q29udGFpbnMgdGhlIE1hYy1zcGVjaWZpYyBwYXJ0cworICAgICAgICBvZiB0aGUgcmVhZFBsYWlu
VGV4dEZyb21QYXN0ZWJvYXJkIGZ1bmN0aW9uLgorCisgICAgICAgICogcGxhdGZvcm0vUGFzdGVi
b2FyZC5oOiBGaXhlZCBhIGNvbmRpdGlvbmFsIGluIHRoZSBQYXN0ZWJvYXJkUGxhaW5UZXh0IHN0
cnVjdCB0bworICAgICAgICBvbWl0IGlPUy4gUmVtb3ZlZCB0aGUgbGF5ZXJpbmctdm9pb2xhdGlu
ZyBwbGFpblRleHQgZnVuY3Rpb24uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ibGFja2JlcnJ5L1Bh
c3RlYm9hcmRCbGFja0JlcnJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OnJl
YWQpOiBSZW5hbWVkIGZyb20gcGxhaW5UZXh0IGFuZCB1cGRhdGVkIHRvIG5ldyBjYWxsaW5nCisg
ICAgICAgIGNvbnZlbnRpb24uCisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRHdGsu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6cmVhZCk6IERpdHRvLgorICAgICAg
ICAqIHBsYXRmb3JtL2lvcy9QYXN0ZWJvYXJkSU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6UGFz
dGVib2FyZDo6cmVhZCk6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL25peC9QYXN0ZWJvYXJk
Tml4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OnJlYWQpOiBEaXR0by4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9xdC9QYXN0ZWJvYXJkUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UGFzdGVib2FyZDo6cmVhZCk6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9QYXN0ZWJv
YXJkV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OnJlYWQpOiBEaXR0by4K
KworMjAxMy0wOS0xMyAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisKICAgICAgICAg
VHJ5IHRvIGZpeCBRdCBidWlsZC4KIAogICAgICAgICAqIHBsYXRmb3JtL3F0L1Bhc3RlYm9hcmRR
dC5jcHA6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5kZXggMDRlNTkxZDFiMzViNjIyNmJj
ZmEwM2EyNTIwMzE1MjdiMGZjMDdhYi4uZjNlNWQ0Mjc3MjM3NzE3ODU1YjhiNzY2Nzc2MzJmNmRj
NDZjNzU0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcApAQCAtNDE3LDE1ICs0MTcsMjcg
QEAgdm9pZCBFZGl0b3I6OnBhc3RlQXNQbGFpblRleHRCeXBhc3NpbmdESFRNTCgpCiAKIHZvaWQg
RWRpdG9yOjpwYXN0ZUFzUGxhaW5UZXh0V2l0aFBhc3RlYm9hcmQoUGFzdGVib2FyZCYgcGFzdGVi
b2FyZCkKIHsKLSNpZiAoUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TKSkgfHwgUExBVEZP
Uk0oRUZMKQogICAgIFN0cmluZyB0ZXh0ID0gcmVhZFBsYWluVGV4dEZyb21QYXN0ZWJvYXJkKHBh
c3RlYm9hcmQpOwotI2Vsc2UKLSAgICBTdHJpbmcgdGV4dCA9IHBhc3RlYm9hcmQucGxhaW5UZXh0
KCZtX2ZyYW1lKTsKLSNlbmRpZgogICAgIGlmIChjbGllbnQoKSAmJiBjbGllbnQoKS0+c2hvdWxk
SW5zZXJ0VGV4dCh0ZXh0LCBzZWxlY3RlZFJhbmdlKCkuZ2V0KCksIEVkaXRvckluc2VydEFjdGlv
blBhc3RlZCkpCi0gICAgICAgIHBhc3RlQXNQbGFpblRleHQodGV4dCwgY2FuU21hcnRSZXBsYWNl
V2l0aFBhc3RlYm9hcmQoJnBhc3RlYm9hcmQpKTsKKyAgICAgICAgcGFzdGVBc1BsYWluVGV4dCh0
ZXh0LCBjYW5TbWFydFJlcGxhY2VXaXRoUGFzdGVib2FyZChwYXN0ZWJvYXJkKSk7Cit9CisKK1N0
cmluZyBFZGl0b3I6OnJlYWRQbGFpblRleHRGcm9tUGFzdGVib2FyZChQYXN0ZWJvYXJkJiBwYXN0
ZWJvYXJkKQoreworICAgIFBhc3RlYm9hcmRQbGFpblRleHQgdGV4dDsKKyAgICBwYXN0ZWJvYXJk
LnJlYWQodGV4dCk7CisgICAgcmV0dXJuIHBsYWluVGV4dEZyb21QYXN0ZWJvYXJkKHRleHQpOwog
fQogCisjaWYgIShQTEFURk9STShNQUMpICYmICFQTEFURk9STShJT1MpKQorCitTdHJpbmcgRWRp
dG9yOjpwbGFpblRleHRGcm9tUGFzdGVib2FyZChjb25zdCBQYXN0ZWJvYXJkUGxhaW5UZXh0JiB0
ZXh0KQoreworICAgIHJldHVybiB0ZXh0LnRleHQ7Cit9CisKKyNlbmRpZgorCiAjaWYgIVBMQVRG
T1JNKE1BQykgJiYgIVBMQVRGT1JNKEVGTCkKIHZvaWQgRWRpdG9yOjpwYXN0ZVdpdGhQYXN0ZWJv
YXJkKFBhc3RlYm9hcmQqIHBhc3RlYm9hcmQsIGJvb2wgYWxsb3dQbGFpblRleHQpCiB7CkBAIC00
MzMsMTMgKzQ0NSwxMyBAQCB2b2lkIEVkaXRvcjo6cGFzdGVXaXRoUGFzdGVib2FyZChQYXN0ZWJv
YXJkKiBwYXN0ZWJvYXJkLCBib29sIGFsbG93UGxhaW5UZXh0KQogICAgIGJvb2wgY2hvc2VQbGFp
blRleHQ7CiAgICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gcGFzdGVib2Fy
ZC0+ZG9jdW1lbnRGcmFnbWVudCgmbV9mcmFtZSwgcmFuZ2UsIGFsbG93UGxhaW5UZXh0LCBjaG9z
ZVBsYWluVGV4dCk7CiAgICAgaWYgKGZyYWdtZW50ICYmIHNob3VsZEluc2VydEZyYWdtZW50KGZy
YWdtZW50LCByYW5nZSwgRWRpdG9ySW5zZXJ0QWN0aW9uUGFzdGVkKSkKLSAgICAgICAgcGFzdGVB
c0ZyYWdtZW50KGZyYWdtZW50LCBjYW5TbWFydFJlcGxhY2VXaXRoUGFzdGVib2FyZChwYXN0ZWJv
YXJkKSwgY2hvc2VQbGFpblRleHQpOworICAgICAgICBwYXN0ZUFzRnJhZ21lbnQoZnJhZ21lbnQs
IGNhblNtYXJ0UmVwbGFjZVdpdGhQYXN0ZWJvYXJkKCpwYXN0ZWJvYXJkKSwgY2hvc2VQbGFpblRl
eHQpOwogfQogI2VuZGlmCiAKLWJvb2wgRWRpdG9yOjpjYW5TbWFydFJlcGxhY2VXaXRoUGFzdGVi
b2FyZChQYXN0ZWJvYXJkKiBwYXN0ZWJvYXJkKQorYm9vbCBFZGl0b3I6OmNhblNtYXJ0UmVwbGFj
ZVdpdGhQYXN0ZWJvYXJkKFBhc3RlYm9hcmQmIHBhc3RlYm9hcmQpCiB7Ci0gICAgcmV0dXJuIGNs
aWVudCgpICYmIGNsaWVudCgpLT5zbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKSAmJiBwYXN0ZWJv
YXJkLT5jYW5TbWFydFJlcGxhY2UoKTsKKyAgICByZXR1cm4gY2xpZW50KCkgJiYgY2xpZW50KCkt
PnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpICYmIHBhc3RlYm9hcmQuY2FuU21hcnRSZXBsYWNl
KCk7CiB9CiAKIGJvb2wgRWRpdG9yOjpzaG91bGRJbnNlcnRGcmFnbWVudChQYXNzUmVmUHRyPERv
Y3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50LCBQYXNzUmVmUHRyPFJhbmdlPiByZXBsYWNpbmdET01S
YW5nZSwgRWRpdG9ySW5zZXJ0QWN0aW9uIGdpdmVuQWN0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9y
LmgKaW5kZXggM2U0MjkxODM3NWM5ODIwZDZjZDk1ZGE2ZjhjNGU3ZmVlMTNmYzY1My4uOWIxOWNl
YmYxNjRmOGYxNGZkMmQ3OTc2MTlkZTA4OTM0ZmU0YWEwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRv
ci5oCkBAIC0xMjksNiArMTI5LDggQEAgcHVibGljOgogICAgIHZvaWQgY29weVVSTChjb25zdCBL
VVJMJiwgY29uc3QgU3RyaW5nJiB0aXRsZSwgUGFzdGVib2FyZCYpOwogICAgIHZvaWQgY29weUlt
YWdlKGNvbnN0IEhpdFRlc3RSZXN1bHQmKTsKIAorICAgIFN0cmluZyByZWFkUGxhaW5UZXh0RnJv
bVBhc3RlYm9hcmQoUGFzdGVib2FyZCYpOworCiAgICAgdm9pZCBpbmRlbnQoKTsKICAgICB2b2lk
IG91dGRlbnQoKTsKICAgICB2b2lkIHRyYW5zcG9zZSgpOwpAQCAtNDExLDcgKzQxMyw2IEBAIHB1
YmxpYzoKICNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKEVGTCkKICAgICB2b2lkIHdyaXRl
U2VsZWN0aW9uVG9QYXN0ZWJvYXJkKFBhc3RlYm9hcmQmKTsKICAgICB2b2lkIHdyaXRlSW1hZ2VU
b1Bhc3RlYm9hcmQoUGFzdGVib2FyZCYsIEVsZW1lbnQmIGltYWdlRWxlbWVudCwgY29uc3QgS1VS
TCYsIGNvbnN0IFN0cmluZyYgdGl0bGUpOwotICAgIFN0cmluZyByZWFkUGxhaW5UZXh0RnJvbVBh
c3RlYm9hcmQoUGFzdGVib2FyZCYpOwogI2VuZGlmCiAKIHByaXZhdGU6CkBAIC00MjIsOSArNDIz
LDEwIEBAIHByaXZhdGU6CiAgICAgRG9jdW1lbnQmIGRvY3VtZW50KCkgY29uc3Q7CiAKICAgICBi
b29sIGNhbkRlbGV0ZVJhbmdlKFJhbmdlKikgY29uc3Q7Ci0gICAgYm9vbCBjYW5TbWFydFJlcGxh
Y2VXaXRoUGFzdGVib2FyZChQYXN0ZWJvYXJkKik7CisgICAgYm9vbCBjYW5TbWFydFJlcGxhY2VX
aXRoUGFzdGVib2FyZChQYXN0ZWJvYXJkJik7CiAgICAgdm9pZCBwYXN0ZUFzUGxhaW5UZXh0V2l0
aFBhc3RlYm9hcmQoUGFzdGVib2FyZCYpOwogICAgIHZvaWQgcGFzdGVXaXRoUGFzdGVib2FyZChQ
YXN0ZWJvYXJkKiwgYm9vbCBhbGxvd1BsYWluVGV4dCk7CisgICAgU3RyaW5nIHBsYWluVGV4dEZy
b21QYXN0ZWJvYXJkKGNvbnN0IFBhc3RlYm9hcmRQbGFpblRleHQmKTsKIAogICAgIHZvaWQgcmV2
ZWFsU2VsZWN0aW9uQWZ0ZXJFZGl0aW5nT3BlcmF0aW9uKGNvbnN0IFNjcm9sbEFsaWdubWVudCYg
PSBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduQ2VudGVySWZOZWVkZWQsIFJldmVhbEV4dGVudE9wdGlv
biA9IERvTm90UmV2ZWFsRXh0ZW50KTsKICAgICB2b2lkIG1hcmtNaXNzcGVsbGluZ3NPckJhZEdy
YW1tYXIoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIGJvb2wgY2hlY2tTcGVsbGluZywgUmVmUHRy
PFJhbmdlPiYgZmlyc3RNaXNzcGVsbGluZ1JhbmdlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvbWFjL0VkaXRvck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFj
L0VkaXRvck1hYy5tbQppbmRleCBmODE1MTlkYmRmMGVjZmI4M2EyMjVkOWM5ZTlhYzMwODA0M2I0
NzQ0Li4wNjkzNDRhN2I5YjBlYTk2YThmNmQyNTkyNDIzNTNkMGJjYTRkOTNkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9FZGl0b3JNYWMubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1tCkBAIC05Miw3ICs5Miw3IEBAIHZvaWQgRWRp
dG9yOjpwYXN0ZVdpdGhQYXN0ZWJvYXJkKFBhc3RlYm9hcmQqIHBhc3RlYm9hcmQsIGJvb2wgYWxs
b3dQbGFpblRleHQpCiAgICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gd2Vi
Q29udGVudEZyb21QYXN0ZWJvYXJkKCpwYXN0ZWJvYXJkLCAqcmFuZ2UsIGFsbG93UGxhaW5UZXh0
LCBjaG9zZVBsYWluVGV4dCk7CiAKICAgICBpZiAoZnJhZ21lbnQgJiYgc2hvdWxkSW5zZXJ0RnJh
Z21lbnQoZnJhZ21lbnQsIHJhbmdlLCBFZGl0b3JJbnNlcnRBY3Rpb25QYXN0ZWQpKQotICAgICAg
ICBwYXN0ZUFzRnJhZ21lbnQoZnJhZ21lbnQsIGNhblNtYXJ0UmVwbGFjZVdpdGhQYXN0ZWJvYXJk
KHBhc3RlYm9hcmQpLCBmYWxzZSk7CisgICAgICAgIHBhc3RlQXNGcmFnbWVudChmcmFnbWVudCwg
Y2FuU21hcnRSZXBsYWNlV2l0aFBhc3RlYm9hcmQoKnBhc3RlYm9hcmQpLCBmYWxzZSk7CiAKICAg
ICBjbGllbnQoKS0+c2V0SW5zZXJ0aW9uUGFzdGVib2FyZChTdHJpbmcoKSk7CiB9CkBAIC0zODMs
NiArMzgzLDE5IEBAIHZvaWQgRWRpdG9yOjpmaWxsSW5Vc2VyVmlzaWJsZUZvcm0oUGFzdGVib2Fy
ZFVSTCYgcGFzdGVib2FyZFVSTCkKICAgICBwYXN0ZWJvYXJkVVJMLnVzZXJWaXNpYmxlRm9ybSA9
IGNsaWVudCgpLT51c2VyVmlzaWJsZVN0cmluZyhwYXN0ZWJvYXJkVVJMLnVybCk7CiB9CiAKK1N0
cmluZyBFZGl0b3I6OnBsYWluVGV4dEZyb21QYXN0ZWJvYXJkKGNvbnN0IFBhc3RlYm9hcmRQbGFp
blRleHQmIHRleHQpCit7CisgICAgU3RyaW5nIHN0cmluZyA9IHRleHQudGV4dDsKKworICAgIC8v
IEZJWE1FOiBJdCdzIG5vdCBjbGVhciB0aGlzIGlzIDEwMCUgY29ycmVjdCBzaW5jZSB3ZSBrbm93
IC1bTlNVUkwgVVJMV2l0aFN0cmluZzpdIGRvZXMgbm90IGhhbmRsZQorICAgIC8vIGFsbCB0aGUg
c2FtZSBjYXNlcyB3ZSBoYW5kbGUgd2VsbCBpbiB0aGUgS1VSTCBjb2RlIGZvciBjcmVhdGluZyBh
biBOU1VSTC4KKyAgICBpZiAodGV4dC5pc1VSTCkKKyAgICAgICAgc3RyaW5nID0gY2xpZW50KCkt
PnVzZXJWaXNpYmxlU3RyaW5nKFtOU1VSTCBVUkxXaXRoU3RyaW5nOnN0cmluZ10pOworCisgICAg
Ly8gRklYTUU6IFdURiBzaG91bGQgb2ZmZXIgYSBub24tTWFjLXNwZWNpZmljIHdheSB0byBjb252
ZXJ0IHN0cmluZyB0byBwcmVjb21wb3NlZCBmb3JtIHNvIHdlIGNhbiBkbyBpdCBmb3IgYWxsIHBs
YXRmb3Jtcy4KKyAgICByZXR1cm4gWyhOU1N0cmluZyAqKXN0cmluZyBwcmVjb21wb3NlZFN0cmlu
Z1dpdGhDYW5vbmljYWxNYXBwaW5nXTsKK30KKwogdm9pZCBFZGl0b3I6OndyaXRlSW1hZ2VUb1Bh
c3RlYm9hcmQoUGFzdGVib2FyZCYgcGFzdGVib2FyZCwgRWxlbWVudCYgaW1hZ2VFbGVtZW50LCBj
b25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdGl0bGUpCiB7CiAgICAgUGFzdGVib2FyZElt
YWdlIHBhc3RlYm9hcmRJbWFnZTsKQEAgLTQwMiwyMiArNDE1LDYgQEAgdm9pZCBFZGl0b3I6Ondy
aXRlSW1hZ2VUb1Bhc3RlYm9hcmQoUGFzdGVib2FyZCYgcGFzdGVib2FyZCwgRWxlbWVudCYgaW1h
Z2VFbGVtZW4KICAgICBwYXN0ZWJvYXJkLndyaXRlKHBhc3RlYm9hcmRJbWFnZSk7CiB9CiAKLVN0
cmluZyBFZGl0b3I6OnJlYWRQbGFpblRleHRGcm9tUGFzdGVib2FyZChQYXN0ZWJvYXJkJiBwYXN0
ZWJvYXJkKQotewotICAgIFBhc3RlYm9hcmRQbGFpblRleHQgdGV4dDsKLSAgICBwYXN0ZWJvYXJk
LnJlYWQodGV4dCk7Ci0KLSAgICBTdHJpbmcgc3RyaW5nID0gdGV4dC50ZXh0OwotCi0gICAgLy8g
RklYTUU6IEl0J3Mgbm90IGNsZWFyIHRoaXMgaXMgMTAwJSBjb3JyZWN0IHNpbmNlIHdlIGtub3cg
LVtOU1VSTCBVUkxXaXRoU3RyaW5nOl0gZG9lcyBub3QgaGFuZGxlCi0gICAgLy8gYWxsIHRoZSBz
YW1lIGNhc2VzIHdlIGhhbmRsZSB3ZWxsIGluIHRoZSBLVVJMIGNvZGUgZm9yIGNyZWF0aW5nIGFu
IE5TVVJMLgotICAgIGlmICh0ZXh0LmlzVVJMKQotICAgICAgICBzdHJpbmcgPSBjbGllbnQoKS0+
dXNlclZpc2libGVTdHJpbmcoW05TVVJMIFVSTFdpdGhTdHJpbmc6c3RyaW5nXSk7Ci0KLSAgICAv
LyBGSVhNRTogV1RGIHNob3VsZCBvZmZlciBhIG5vbi1NYWMtc3BlY2lmaWMgd2F5IHRvIGNvbnZl
cnQgc3RyaW5nIHRvIHByZWNvbXBvc2VkIGZvcm0gc28gd2UgY2FuIGRvIGl0IGZvciBhbGwgcGxh
dGZvcm1zLgotICAgIHJldHVybiBbKE5TU3RyaW5nICopc3RyaW5nIHByZWNvbXBvc2VkU3RyaW5n
V2l0aENhbm9uaWNhbE1hcHBpbmddOwotfQotCiBjbGFzcyBFZGl0b3I6OldlYkNvbnRlbnRSZWFk
ZXIgRklOQUwgOiBwdWJsaWMgUGFzdGVib2FyZFdlYkNvbnRlbnRSZWFkZXIgewogcHVibGljOgog
ICAgIEZyYW1lJiBmcmFtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bh
c3RlYm9hcmQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQuaAppbmRleCBl
YzMwY2NlMWEyODIxNGEzOGJhNzY3NWU2NmJiMDE5MTA5MjlkNTJiLi41ZDk4YTQ1ZmIxZjFmZTlh
YjZhYmIwOWRkZjQxZTRhYTY3MDUwNmY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9QYXN0ZWJvYXJkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2Fy
ZC5oCkBAIC0xMTcsNyArMTE3LDcgQEAgcHVibGljOgogCiBzdHJ1Y3QgUGFzdGVib2FyZFBsYWlu
VGV4dCB7CiAgICAgU3RyaW5nIHRleHQ7Ci0jaWYgUExBVEZPUk0oTUFDKQorI2lmIFBMQVRGT1JN
KE1BQykgJiYgIVBMQVRGT1JNKElPUykKICAgICBib29sIGlzVVJMOwogI2VuZGlmCiB9OwpAQCAt
MTY3LDcgKzE2Nyw2IEBAIHB1YmxpYzoKIAogI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0o
SU9TKSB8fCBQTEFURk9STShRVCkgfHwgUExBVEZPUk0oV0lOKQogICAgIFBhc3NSZWZQdHI8RG9j
dW1lbnRGcmFnbWVudD4gZG9jdW1lbnRGcmFnbWVudChGcmFtZSosIFBhc3NSZWZQdHI8UmFuZ2U+
LCBib29sIGFsbG93UGxhaW5UZXh0LCBib29sJiBjaG9zZVBsYWluVGV4dCk7IC8vIEZJWE1FOiBM
YXllcmluZyB2aW9sYXRpb24uCi0gICAgU3RyaW5nIHBsYWluVGV4dChGcmFtZSogPSAwKTsgLy8g
RklYTUU6IExheWVyaW5nIHZpb2xhdGlvbi4KICAgICB2b2lkIHdyaXRlU2VsZWN0aW9uKFJhbmdl
KiwgYm9vbCBjYW5TbWFydENvcHlPckRlbGV0ZSwgRnJhbWUqLCBTaG91bGRTZXJpYWxpemVTZWxl
Y3RlZFRleHRGb3JDbGlwYm9hcmQgPSBEZWZhdWx0U2VsZWN0ZWRUZXh0VHlwZSk7IC8vIEZJWE1F
OiBMYXllcmluZyB2aW9sYXRpb24uCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYmxhY2tiZXJyeS9QYXN0ZWJvYXJkQmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ibGFja2JlcnJ5L1Bhc3RlYm9hcmRCbGFja0JlcnJ5LmNwcAppbmRl
eCBmZWY5Yjg3YTMwZGQ1ZTc4NjdiY2ZmOTZkNzlkMDljZDY3MDc2YzllLi4wYjUzZTFlNWJlMWQz
NzAzMDgxODg2MjcwMTAxOTBjNzhjZjQxZjY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ibGFja2JlcnJ5L1Bhc3RlYm9hcmRCbGFja0JlcnJ5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ibGFja2JlcnJ5L1Bhc3RlYm9hcmRCbGFja0JlcnJ5LmNwcApAQCAt
NzYsOSArNzYsOSBAQCB2b2lkIFBhc3RlYm9hcmQ6OndyaXRlUGxhaW5UZXh0KGNvbnN0IFN0cmlu
ZyYgdGV4dCwgU21hcnRSZXBsYWNlT3B0aW9uKQogICAgIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpD
bGlwYm9hcmQ6OndyaXRlUGxhaW5UZXh0KHRleHQpOwogfQogCi1TdHJpbmcgUGFzdGVib2FyZDo6
cGxhaW5UZXh0KEZyYW1lKikKK3ZvaWQgUGFzdGVib2FyZDo6cmVhZChQYXN0ZWJvYXJkUGxhaW5U
ZXh0JiB0ZXh0KQogewotICAgIHJldHVybiBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6Q2xpcGJvYXJk
OjpyZWFkUGxhaW5UZXh0KCk7CisgICAgdGV4dC50ZXh0ID0gQmxhY2tCZXJyeTo6UGxhdGZvcm06
OkNsaXBib2FyZDo6cmVhZFBsYWluVGV4dCgpOwogfQogCiBQYXNzUmVmUHRyPERvY3VtZW50RnJh
Z21lbnQ+IFBhc3RlYm9hcmQ6OmRvY3VtZW50RnJhZ21lbnQoRnJhbWUqIGZyYW1lLCBQYXNzUmVm
UHRyPFJhbmdlPiBjb250ZXh0LCBib29sIGFsbG93UGxhaW5UZXh0LCBib29sJiBjaG9zZVBsYWlu
VGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJvYXJk
R3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkR3RrLmNwcApp
bmRleCBlZGRjYzJhMGYzNzVjMTRkOWIzOTZmYzBhZjA5MDcyODNkNDEyYTYyLi4xZmE2NTZiMjll
MGMwY2IwMzQ5ODljYjY4MWU3MTRlNzk3NmRmYTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3RrL1Bhc3RlYm9hcmRHdGsuY3BwCkBAIC0zMjUsMTEgKzMyNSwxMSBAQCBQYXNzUmVm
UHRyPERvY3VtZW50RnJhZ21lbnQ+IFBhc3RlYm9hcmQ6OmRvY3VtZW50RnJhZ21lbnQoRnJhbWUq
IGZyYW1lLCBQYXNzUmVmUAogICAgIHJldHVybiAwOwogfQogCi1TdHJpbmcgUGFzdGVib2FyZDo6
cGxhaW5UZXh0KEZyYW1lKiBmcmFtZSkKK3ZvaWQgUGFzdGVib2FyZDo6cmVhZChQYXN0ZWJvYXJk
UGxhaW5UZXh0JiB0ZXh0KQogewogICAgIGlmIChtX2d0a0NsaXBib2FyZCkKICAgICAgICAgUGFz
dGVib2FyZEhlbHBlcjo6ZGVmYXVsdFBhc3RlYm9hcmRIZWxwZXIoKS0+Z2V0Q2xpcGJvYXJkQ29u
dGVudHMobV9ndGtDbGlwYm9hcmQpOwotICAgIHJldHVybiBtX2RhdGFPYmplY3QtPnRleHQoKTsK
KyAgICB0ZXh0LnRleHQgPSBtX2RhdGFPYmplY3QtPnRleHQoKTsKIH0KIAogYm9vbCBQYXN0ZWJv
YXJkOjpoYXNEYXRhKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9Q
YXN0ZWJvYXJkSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1Bhc3RlYm9hcmRJ
T1MubW0KaW5kZXggYjA4ZDRhZDQ3ZDVkODIxZmE5Y2RjN2RkMjU1YTRhMzMwODQ3YTMzZS4uZjli
M2QyOWRmZWIyNzlhNWJkNTMyYTFjNTJmZmYzYjgyZGNhYzQwNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW9zL1Bhc3RlYm9hcmRJT1MubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1Bhc3RlYm9hcmRJT1MubW0KQEAgLTIyMCwxOSArMjIwLDE3IEBAIGJv
b2wgUGFzdGVib2FyZDo6Y2FuU21hcnRSZXBsYWNlKCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAK
LVN0cmluZyBQYXN0ZWJvYXJkOjpwbGFpblRleHQoRnJhbWUqIGZyYW1lKQordm9pZCBQYXN0ZWJv
YXJkOjpyZWFkKFBhc3RlYm9hcmRQbGFpblRleHQmIHRleHQpCiB7Ci0gICAgUmV0YWluUHRyPE5T
QXJyYXk+IHBhc3RlYm9hcmRJdGVtID0gZnJhbWUtPmVkaXRvcigpLmNsaWVudCgpLT5yZWFkRGF0
YUZyb21QYXN0ZWJvYXJkKChOU1N0cmluZyAqKWtVVFR5cGVUZXh0LCAwKTsKKyAgICBSZXRhaW5Q
dHI8TlNBcnJheT4gcGFzdGVib2FyZEl0ZW0gPSBtX2ZyYW1lLT5lZGl0b3IoKS5jbGllbnQoKS0+
cmVhZERhdGFGcm9tUGFzdGVib2FyZCgoTlNTdHJpbmcgKilrVVRUeXBlVGV4dCwgMCk7CiAKICAg
ICBpZiAoW3Bhc3RlYm9hcmRJdGVtLmdldCgpIGNvdW50XSA9PSAwKQotICAgICAgICByZXR1cm4g
U3RyaW5nKCk7CisgICAgICAgIHJldHVybjsKIAogICAgIGlkIHZhbHVlID0gW3Bhc3RlYm9hcmRJ
dGVtLmdldCgpIG9iamVjdEF0SW5kZXg6MF07Ci0gICAgaWYgKFt2YWx1ZSBpc0tpbmRPZkNsYXNz
OltOU1N0cmluZyBjbGFzc11dKQotICAgICAgICByZXR1cm4gU3RyaW5nKHZhbHVlKTsKLQogICAg
IEFTU0VSVChbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNTdHJpbmcgY2xhc3NdXSk7Ci0gICAgcmV0
dXJuIFN0cmluZygpOworICAgIGlmIChbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNTdHJpbmcgY2xh
c3NdXSkKKyAgICAgICAgdGV4dC50ZXh0ID0gKE5TU3RyaW5nICopdmFsdWU7CiB9CiAKIHN0YXRp
YyBOU0FycmF5KiBzdXBwb3J0ZWRJbWFnZVR5cGVzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25peC9QYXN0ZWJvYXJkTml4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25peC9QYXN0ZWJvYXJkTml4LmNwcAppbmRleCA1YTE1YjJhZGRlYzE1NDhmMmI2NDkyMzIz
MDdhODYxZjI5NTE1MWNjLi4zNGVjMWMwZTA1MmYzZDcyMzI2ZWI1Nzc4MzU0ZGFkYmQxOWU2MDcx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvUGFzdGVib2FyZE5peC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L1Bhc3RlYm9hcmROaXguY3BwCkBA
IC04MywxMCArODMsOSBAQCBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IFBhc3RlYm9hcmQ6
OmRvY3VtZW50RnJhZ21lbnQoRnJhbWUqLCBQYXNzUmVmUHRyPFJhbgogICAgIHJldHVybiAwOwog
fQogCi1TdHJpbmcgUGFzdGVib2FyZDo6cGxhaW5UZXh0KEZyYW1lKikKK3ZvaWQgUGFzdGVib2Fy
ZDo6cmVhZChQYXN0ZWJvYXJkUGxhaW5UZXh0JikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwot
ICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAogUGFzc093blB0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJv
YXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vcXQvUGFzdGVib2FyZFF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0
L1Bhc3RlYm9hcmRRdC5jcHAKaW5kZXggY2ZhN2Y0MDI1NjcwMDgxZTg2NTg0ZGRmYjgzNTg5NzU2
NzRjZWRhOS4uZWI4ZWRmZGIyYTRjMTVkYWMzNDQyMDU1ZjBmNjA2YjRjODUwMDkzNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUGFzdGVib2FyZFF0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9QYXN0ZWJvYXJkUXQuY3BwCkBAIC0xNDQsMTIgKzE0
NCwxMCBAQCBib29sIFBhc3RlYm9hcmQ6OmNhblNtYXJ0UmVwbGFjZSgpCiAgICAgcmV0dXJuIGZh
bHNlOwogfQogCi1TdHJpbmcgUGFzdGVib2FyZDo6cGxhaW5UZXh0KEZyYW1lKikKK3ZvaWQgUGFz
dGVib2FyZDo6cmVhZChQYXN0ZWJvYXJkUGxhaW5UZXh0JiB0ZXh0KQogewogI2lmbmRlZiBRVF9O
T19DTElQQk9BUkQKLSAgICByZXR1cm4gUUd1aUFwcGxpY2F0aW9uOjpjbGlwYm9hcmQoKS0+dGV4
dChtX3NlbGVjdGlvbk1vZGUgPyBRQ2xpcGJvYXJkOjpTZWxlY3Rpb24gOiBRQ2xpcGJvYXJkOjpD
bGlwYm9hcmQpOwotI2Vsc2UKLSAgICByZXR1cm4gU3RyaW5nKCk7CisgICAgdGV4dC50ZXh0ID0g
UUd1aUFwcGxpY2F0aW9uOjpjbGlwYm9hcmQoKS0+dGV4dChtX3NlbGVjdGlvbk1vZGUgPyBRQ2xp
cGJvYXJkOjpTZWxlY3Rpb24gOiBRQ2xpcGJvYXJkOjpDbGlwYm9hcmQpOwogI2VuZGlmCiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcAppbmRleCA4
ZGU3MmEyOWI5MWExOWJjMDkzYTdhNWMzYTY2ZmY4ZmQ4OTc0ODkzLi5lYWFjMTUwNjBmYWM1ZjU4
NTY3ODg5YWQyYjllZmU5ZTZiMjYyZDc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
d2luL1Bhc3RlYm9hcmRXaW4uY3BwCkBAIC03NzQsMzMgKzc3NCwyOCBAQCBib29sIFBhc3RlYm9h
cmQ6OmNhblNtYXJ0UmVwbGFjZSgpCiAgICAgcmV0dXJuIDo6SXNDbGlwYm9hcmRGb3JtYXRBdmFp
bGFibGUoV2ViU21hcnRQYXN0ZUZvcm1hdCk7CiB9CiAKLVN0cmluZyBQYXN0ZWJvYXJkOjpwbGFp
blRleHQoRnJhbWUqIGZyYW1lKQordm9pZCBQYXN0ZWJvYXJkOjpyZWFkKFBhc3RlYm9hcmRQbGFp
blRleHQmIHRleHQpCiB7CiAgICAgaWYgKDo6SXNDbGlwYm9hcmRGb3JtYXRBdmFpbGFibGUoQ0Zf
VU5JQ09ERVRFWFQpICYmIDo6T3BlbkNsaXBib2FyZChtX293bmVyKSkgewotICAgICAgICBIQU5E
TEUgY2JEYXRhID0gOjpHZXRDbGlwYm9hcmREYXRhKENGX1VOSUNPREVURVhUKTsKLSAgICAgICAg
aWYgKGNiRGF0YSkgewotICAgICAgICAgICAgVUNoYXIqIGJ1ZmZlciA9IHN0YXRpY19jYXN0PFVD
aGFyKj4oR2xvYmFsTG9jayhjYkRhdGEpKTsKLSAgICAgICAgICAgIFN0cmluZyBmcm9tQ2xpcGJv
YXJkKGJ1ZmZlcik7CisgICAgICAgIGlmIChIQU5ETEUgY2JEYXRhID0gOjpHZXRDbGlwYm9hcmRE
YXRhKENGX1VOSUNPREVURVhUKSkgeworICAgICAgICAgICAgdGV4dC50ZXh0ID0gc3RhdGljX2Nh
c3Q8VUNoYXIqPihHbG9iYWxMb2NrKGNiRGF0YSkpOwogICAgICAgICAgICAgR2xvYmFsVW5sb2Nr
KGNiRGF0YSk7CiAgICAgICAgICAgICA6OkNsb3NlQ2xpcGJvYXJkKCk7Ci0gICAgICAgICAgICBy
ZXR1cm4gZnJvbUNsaXBib2FyZDsKKyAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAg
ICAgICA6OkNsb3NlQ2xpcGJvYXJkKCk7CiAgICAgfQogCiAgICAgaWYgKDo6SXNDbGlwYm9hcmRG
b3JtYXRBdmFpbGFibGUoQ0ZfVEVYVCkgJiYgOjpPcGVuQ2xpcGJvYXJkKG1fb3duZXIpKSB7Ci0g
ICAgICAgIEhBTkRMRSBjYkRhdGEgPSA6OkdldENsaXBib2FyZERhdGEoQ0ZfVEVYVCk7Ci0gICAg
ICAgIGlmIChjYkRhdGEpIHsKLSAgICAgICAgICAgIGNoYXIqIGJ1ZmZlciA9IHN0YXRpY19jYXN0
PGNoYXIqPihHbG9iYWxMb2NrKGNiRGF0YSkpOwotICAgICAgICAgICAgU3RyaW5nIGZyb21DbGlw
Ym9hcmQoYnVmZmVyKTsKKyAgICAgICAgaWYgKEhBTkRMRSBjYkRhdGEgPSA6OkdldENsaXBib2Fy
ZERhdGEoQ0ZfVEVYVCkpIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIHRyZWF0cyB0aGUg
Y2hhcmFjdGVycyBhcyBMYXRpbi0xLCBub3QgVVRGLTggb3IgZXZlbiBXaW5kb3dzIExhdGluLTEu
IElzIHRoYXQgdGhlIHJpZ2h0IGVuY29kaW5nPworICAgICAgICAgICAgdGV4dC50ZXh0ID0gc3Rh
dGljX2Nhc3Q8Y2hhcio+KEdsb2JhbExvY2soY2JEYXRhKSk7CiAgICAgICAgICAgICBHbG9iYWxV
bmxvY2soY2JEYXRhKTsKICAgICAgICAgICAgIDo6Q2xvc2VDbGlwYm9hcmQoKTsKLSAgICAgICAg
ICAgIHJldHVybiBmcm9tQ2xpcGJvYXJkOworICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9
CiAgICAgICAgIDo6Q2xvc2VDbGlwYm9hcmQoKTsKICAgICB9Ci0KLSAgICByZXR1cm4gU3RyaW5n
KCk7CiB9CiAKIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gUGFzdGVib2FyZDo6ZG9jdW1l
bnRGcmFnbWVudChGcmFtZSogZnJhbWUsIFBhc3NSZWZQdHI8UmFuZ2U+IGNvbnRleHQsIGJvb2wg
YWxsb3dQbGFpblRleHQsIGJvb2wmIGNob3NlUGxhaW5UZXh0KQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>211572</attachid>
            <date>2013-09-13 11:47:23 -0700</date>
            <delta_ts>2013-09-13 12:01:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-121312-20130913114722.patch</filename>
            <type>text/plain</type>
            <size>16384</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU1NzEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODFlZTM1MDhlYmRlNWEy
ZDI4YjE5Y2RjOGM1MDA4MzRmZGI1NzZjMC4uNWQ0YTVhNjQ4ZDcwZDc1M2E5YjQ1OTczOTc3ZDQw
ZjQ5Nzk1MDUwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDUxIEBACiAyMDEzLTA5LTEzICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAorICAgICAgICBSZW1vdmUgbGF5ZXJpbmctdmlv
bGF0aW5nIFBhc3RlYm9hcmQ6OnBsYWluVGV4dCBmdW5jdGlvbiAoZm9yIGFsbCBwbGF0Zm9ybXMg
bm93KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIx
MzEyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBl
ZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnBhc3RlQXNQbGFp
blRleHRXaXRoUGFzdGVib2FyZCk6IENhbGwgcmVhZFBsYWluVGV4dEZyb21QYXN0ZWJvYXJkCisg
ICAgICAgIG9uIGFsbCBwbGF0Zm9ybXMsIG5vdCBqdXN0IE1hYyBhbmQgRUZMLiBBbHNvIGNhbGwg
Y2FuU21hcnRSZXBsYWNlV2l0aFBhc3RlYm9hcmQgd2l0aAorICAgICAgICBhIHJlZmVyZW5jZSBp
bnN0ZWFkIG9mIGEgcG9pbnRlci4KKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6cmVhZFBsYWlu
VGV4dEZyb21QYXN0ZWJvYXJkKTogQWRkZWQuIFRoaXMgaXMgYSBjcm9zcy1wbGF0Zm9ybQorICAg
ICAgICB2ZXJzaW9uIG9mIHdoYXQgd2FzIHByZXZpb3VzbHkgYSBNYWMtb25seSBmdW5jdGlvbi4K
KyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6cGxhaW5UZXh0RnJvbVBhc3RlYm9hcmQpOiBBZGRl
ZC4gVGhpcyBpcyB0aGUgc2ltcGxlIG5vbi1NYWMgdmVyc2lvbgorICAgICAgICBvZiB0aGlzIGZ1
bmN0aW9uLgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpwYXN0ZVdpdGhQYXN0ZWJvYXJkKTog
VXBkYXRlZCB0byBjYWxsIGNhblNtYXJ0UmVwbGFjZVdpdGhQYXN0ZWJvYXJkCisgICAgICAgIHdp
dGggYSByZWZlcmVuY2UuCisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmNhblNtYXJ0UmVwbGFj
ZVdpdGhQYXN0ZWJvYXJkKTogVXBkYXRlZCB0byB0YWtlIGEgcmVmZXJlbmNlLgorCisgICAgICAg
ICogZWRpdGluZy9FZGl0b3IuaDogTWFrZSByZWFkUGxhaW5UZXh0RnJvbVBhc3RlYm9hcmQgY3Jv
c3MtcGxhdGZvcm0gaW5zdGVhZCBvZgorICAgICAgICBNYWMtb25seS4gQWxzbyBjaGFuZ2VkIGFy
Z3VtZW50IHRvIGNhblNtYXJ0UmVwbGFjZVdpdGhQYXN0ZWJvYXJkIHRvIGJlIGEgcmVmZXJlbmNl
LgorICAgICAgICBBbHNvIGFkZGVkIHByaXZhdGUgcGxhaW5UZXh0RnJvbVBhc3RlYm9hcmQgZnVu
Y3Rpb24uCisKKyAgICAgICAgKiBlZGl0aW5nL21hYy9FZGl0b3JNYWMubW06CisgICAgICAgIChX
ZWJDb3JlOjpFZGl0b3I6OnBhc3RlV2l0aFBhc3RlYm9hcmQpOiBVcGRhdGVkIHRvIGNhbGwgY2Fu
U21hcnRSZXBsYWNlV2l0aFBhc3RlYm9hcmQKKyAgICAgICAgd2l0aCBhIHJlZmVyZW5jZS4KKyAg
ICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6cGxhaW5UZXh0RnJvbVBhc3RlYm9hcmQpOiBBZGRlZC4g
Q29udGFpbnMgdGhlIE1hYy1zcGVjaWZpYyBwYXJ0cworICAgICAgICBvZiB0aGUgcmVhZFBsYWlu
VGV4dEZyb21QYXN0ZWJvYXJkIGZ1bmN0aW9uLgorCisgICAgICAgICogcGxhdGZvcm0vUGFzdGVi
b2FyZC5oOiBGaXhlZCBhIGNvbmRpdGlvbmFsIGluIHRoZSBQYXN0ZWJvYXJkUGxhaW5UZXh0IHN0
cnVjdCB0bworICAgICAgICBvbWl0IGlPUy4gUmVtb3ZlZCB0aGUgbGF5ZXJpbmctdm9pb2xhdGlu
ZyBwbGFpblRleHQgZnVuY3Rpb24uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ibGFja2JlcnJ5L1Bh
c3RlYm9hcmRCbGFja0JlcnJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OnJl
YWQpOiBSZW5hbWVkIGZyb20gcGxhaW5UZXh0IGFuZCB1cGRhdGVkIHRvIG5ldyBjYWxsaW5nCisg
ICAgICAgIGNvbnZlbnRpb24uCisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRHdGsu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6cmVhZCk6IERpdHRvLgorICAgICAg
ICAqIHBsYXRmb3JtL2lvcy9QYXN0ZWJvYXJkSU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6UGFz
dGVib2FyZDo6cmVhZCk6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL25peC9QYXN0ZWJvYXJk
Tml4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OnJlYWQpOiBEaXR0by4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9xdC9QYXN0ZWJvYXJkUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UGFzdGVib2FyZDo6cmVhZCk6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9QYXN0ZWJv
YXJkV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OnJlYWQpOiBEaXR0by4K
KworMjAxMy0wOS0xMyAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisKICAgICAgICAg
VHJ5IHRvIGZpeCBRdCBidWlsZC4KIAogICAgICAgICAqIHBsYXRmb3JtL3F0L1Bhc3RlYm9hcmRR
dC5jcHA6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5kZXggMDRlNTkxZDFiMzViNjIyNmJj
ZmEwM2EyNTIwMzE1MjdiMGZjMDdhYi4uZjNlNWQ0Mjc3MjM3NzE3ODU1YjhiNzY2Nzc2MzJmNmRj
NDZjNzU0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcApAQCAtNDE3LDE1ICs0MTcsMjcg
QEAgdm9pZCBFZGl0b3I6OnBhc3RlQXNQbGFpblRleHRCeXBhc3NpbmdESFRNTCgpCiAKIHZvaWQg
RWRpdG9yOjpwYXN0ZUFzUGxhaW5UZXh0V2l0aFBhc3RlYm9hcmQoUGFzdGVib2FyZCYgcGFzdGVi
b2FyZCkKIHsKLSNpZiAoUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TKSkgfHwgUExBVEZP
Uk0oRUZMKQogICAgIFN0cmluZyB0ZXh0ID0gcmVhZFBsYWluVGV4dEZyb21QYXN0ZWJvYXJkKHBh
c3RlYm9hcmQpOwotI2Vsc2UKLSAgICBTdHJpbmcgdGV4dCA9IHBhc3RlYm9hcmQucGxhaW5UZXh0
KCZtX2ZyYW1lKTsKLSNlbmRpZgogICAgIGlmIChjbGllbnQoKSAmJiBjbGllbnQoKS0+c2hvdWxk
SW5zZXJ0VGV4dCh0ZXh0LCBzZWxlY3RlZFJhbmdlKCkuZ2V0KCksIEVkaXRvckluc2VydEFjdGlv
blBhc3RlZCkpCi0gICAgICAgIHBhc3RlQXNQbGFpblRleHQodGV4dCwgY2FuU21hcnRSZXBsYWNl
V2l0aFBhc3RlYm9hcmQoJnBhc3RlYm9hcmQpKTsKKyAgICAgICAgcGFzdGVBc1BsYWluVGV4dCh0
ZXh0LCBjYW5TbWFydFJlcGxhY2VXaXRoUGFzdGVib2FyZChwYXN0ZWJvYXJkKSk7Cit9CisKK1N0
cmluZyBFZGl0b3I6OnJlYWRQbGFpblRleHRGcm9tUGFzdGVib2FyZChQYXN0ZWJvYXJkJiBwYXN0
ZWJvYXJkKQoreworICAgIFBhc3RlYm9hcmRQbGFpblRleHQgdGV4dDsKKyAgICBwYXN0ZWJvYXJk
LnJlYWQodGV4dCk7CisgICAgcmV0dXJuIHBsYWluVGV4dEZyb21QYXN0ZWJvYXJkKHRleHQpOwog
fQogCisjaWYgIShQTEFURk9STShNQUMpICYmICFQTEFURk9STShJT1MpKQorCitTdHJpbmcgRWRp
dG9yOjpwbGFpblRleHRGcm9tUGFzdGVib2FyZChjb25zdCBQYXN0ZWJvYXJkUGxhaW5UZXh0JiB0
ZXh0KQoreworICAgIHJldHVybiB0ZXh0LnRleHQ7Cit9CisKKyNlbmRpZgorCiAjaWYgIVBMQVRG
T1JNKE1BQykgJiYgIVBMQVRGT1JNKEVGTCkKIHZvaWQgRWRpdG9yOjpwYXN0ZVdpdGhQYXN0ZWJv
YXJkKFBhc3RlYm9hcmQqIHBhc3RlYm9hcmQsIGJvb2wgYWxsb3dQbGFpblRleHQpCiB7CkBAIC00
MzMsMTMgKzQ0NSwxMyBAQCB2b2lkIEVkaXRvcjo6cGFzdGVXaXRoUGFzdGVib2FyZChQYXN0ZWJv
YXJkKiBwYXN0ZWJvYXJkLCBib29sIGFsbG93UGxhaW5UZXh0KQogICAgIGJvb2wgY2hvc2VQbGFp
blRleHQ7CiAgICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gcGFzdGVib2Fy
ZC0+ZG9jdW1lbnRGcmFnbWVudCgmbV9mcmFtZSwgcmFuZ2UsIGFsbG93UGxhaW5UZXh0LCBjaG9z
ZVBsYWluVGV4dCk7CiAgICAgaWYgKGZyYWdtZW50ICYmIHNob3VsZEluc2VydEZyYWdtZW50KGZy
YWdtZW50LCByYW5nZSwgRWRpdG9ySW5zZXJ0QWN0aW9uUGFzdGVkKSkKLSAgICAgICAgcGFzdGVB
c0ZyYWdtZW50KGZyYWdtZW50LCBjYW5TbWFydFJlcGxhY2VXaXRoUGFzdGVib2FyZChwYXN0ZWJv
YXJkKSwgY2hvc2VQbGFpblRleHQpOworICAgICAgICBwYXN0ZUFzRnJhZ21lbnQoZnJhZ21lbnQs
IGNhblNtYXJ0UmVwbGFjZVdpdGhQYXN0ZWJvYXJkKCpwYXN0ZWJvYXJkKSwgY2hvc2VQbGFpblRl
eHQpOwogfQogI2VuZGlmCiAKLWJvb2wgRWRpdG9yOjpjYW5TbWFydFJlcGxhY2VXaXRoUGFzdGVi
b2FyZChQYXN0ZWJvYXJkKiBwYXN0ZWJvYXJkKQorYm9vbCBFZGl0b3I6OmNhblNtYXJ0UmVwbGFj
ZVdpdGhQYXN0ZWJvYXJkKFBhc3RlYm9hcmQmIHBhc3RlYm9hcmQpCiB7Ci0gICAgcmV0dXJuIGNs
aWVudCgpICYmIGNsaWVudCgpLT5zbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKSAmJiBwYXN0ZWJv
YXJkLT5jYW5TbWFydFJlcGxhY2UoKTsKKyAgICByZXR1cm4gY2xpZW50KCkgJiYgY2xpZW50KCkt
PnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpICYmIHBhc3RlYm9hcmQuY2FuU21hcnRSZXBsYWNl
KCk7CiB9CiAKIGJvb2wgRWRpdG9yOjpzaG91bGRJbnNlcnRGcmFnbWVudChQYXNzUmVmUHRyPERv
Y3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50LCBQYXNzUmVmUHRyPFJhbmdlPiByZXBsYWNpbmdET01S
YW5nZSwgRWRpdG9ySW5zZXJ0QWN0aW9uIGdpdmVuQWN0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9y
LmgKaW5kZXggM2U0MjkxODM3NWM5ODIwZDZjZDk1ZGE2ZjhjNGU3ZmVlMTNmYzY1My4uYWIwOWVi
YmEwZjUwNjk1ZWUwOTMxMzU3Y2E4NjhiZjNhN2ViYTk2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRv
ci5oCkBAIC03MSw2ICs3MSw3IEBAIGNsYXNzIFRleHQ7CiBjbGFzcyBUZXh0Q2hlY2tlckNsaWVu
dDsKIGNsYXNzIFRleHRFdmVudDsKIAorc3RydWN0IFBhc3RlYm9hcmRQbGFpblRleHQ7CiBzdHJ1
Y3QgUGFzdGVib2FyZFVSTDsKIHN0cnVjdCBUZXh0Q2hlY2tpbmdSZXN1bHQ7CiAKQEAgLTEyOSw2
ICsxMzAsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb3B5VVJMKGNvbnN0IEtVUkwmLCBjb25zdCBT
dHJpbmcmIHRpdGxlLCBQYXN0ZWJvYXJkJik7CiAgICAgdm9pZCBjb3B5SW1hZ2UoY29uc3QgSGl0
VGVzdFJlc3VsdCYpOwogCisgICAgU3RyaW5nIHJlYWRQbGFpblRleHRGcm9tUGFzdGVib2FyZChQ
YXN0ZWJvYXJkJik7CisKICAgICB2b2lkIGluZGVudCgpOwogICAgIHZvaWQgb3V0ZGVudCgpOwog
ICAgIHZvaWQgdHJhbnNwb3NlKCk7CkBAIC00MTEsNyArNDE0LDYgQEAgcHVibGljOgogI2lmIFBM
QVRGT1JNKE1BQykgfHwgUExBVEZPUk0oRUZMKQogICAgIHZvaWQgd3JpdGVTZWxlY3Rpb25Ub1Bh
c3RlYm9hcmQoUGFzdGVib2FyZCYpOwogICAgIHZvaWQgd3JpdGVJbWFnZVRvUGFzdGVib2FyZChQ
YXN0ZWJvYXJkJiwgRWxlbWVudCYgaW1hZ2VFbGVtZW50LCBjb25zdCBLVVJMJiwgY29uc3QgU3Ry
aW5nJiB0aXRsZSk7Ci0gICAgU3RyaW5nIHJlYWRQbGFpblRleHRGcm9tUGFzdGVib2FyZChQYXN0
ZWJvYXJkJik7CiAjZW5kaWYKIAogcHJpdmF0ZToKQEAgLTQyMiw5ICs0MjQsMTAgQEAgcHJpdmF0
ZToKICAgICBEb2N1bWVudCYgZG9jdW1lbnQoKSBjb25zdDsKIAogICAgIGJvb2wgY2FuRGVsZXRl
UmFuZ2UoUmFuZ2UqKSBjb25zdDsKLSAgICBib29sIGNhblNtYXJ0UmVwbGFjZVdpdGhQYXN0ZWJv
YXJkKFBhc3RlYm9hcmQqKTsKKyAgICBib29sIGNhblNtYXJ0UmVwbGFjZVdpdGhQYXN0ZWJvYXJk
KFBhc3RlYm9hcmQmKTsKICAgICB2b2lkIHBhc3RlQXNQbGFpblRleHRXaXRoUGFzdGVib2FyZChQ
YXN0ZWJvYXJkJik7CiAgICAgdm9pZCBwYXN0ZVdpdGhQYXN0ZWJvYXJkKFBhc3RlYm9hcmQqLCBi
b29sIGFsbG93UGxhaW5UZXh0KTsKKyAgICBTdHJpbmcgcGxhaW5UZXh0RnJvbVBhc3RlYm9hcmQo
Y29uc3QgUGFzdGVib2FyZFBsYWluVGV4dCYpOwogCiAgICAgdm9pZCByZXZlYWxTZWxlY3Rpb25B
ZnRlckVkaXRpbmdPcGVyYXRpb24oY29uc3QgU2Nyb2xsQWxpZ25tZW50JiA9IFNjcm9sbEFsaWdu
bWVudDo6YWxpZ25DZW50ZXJJZk5lZWRlZCwgUmV2ZWFsRXh0ZW50T3B0aW9uID0gRG9Ob3RSZXZl
YWxFeHRlbnQpOwogICAgIHZvaWQgbWFya01pc3NwZWxsaW5nc09yQmFkR3JhbW1hcihjb25zdCBW
aXNpYmxlU2VsZWN0aW9uJiwgYm9vbCBjaGVja1NwZWxsaW5nLCBSZWZQdHI8UmFuZ2U+JiBmaXJz
dE1pc3NwZWxsaW5nUmFuZ2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9t
YWMvRWRpdG9yTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1t
CmluZGV4IGY4MTUxOWRiZGYwZWNmYjgzYTIyNWQ5YzllOWFjMzA4MDQzYjQ3NDQuLjA2OTM0NGE3
YjliMGVhOTZhOGY2ZDI1OTI0MjM1M2QwYmNhNGQ5M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvbWFjL0VkaXRvck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L21hYy9FZGl0b3JNYWMubW0KQEAgLTkyLDcgKzkyLDcgQEAgdm9pZCBFZGl0b3I6OnBhc3RlV2l0
aFBhc3RlYm9hcmQoUGFzdGVib2FyZCogcGFzdGVib2FyZCwgYm9vbCBhbGxvd1BsYWluVGV4dCkK
ICAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSB3ZWJDb250ZW50RnJvbVBh
c3RlYm9hcmQoKnBhc3RlYm9hcmQsICpyYW5nZSwgYWxsb3dQbGFpblRleHQsIGNob3NlUGxhaW5U
ZXh0KTsKIAogICAgIGlmIChmcmFnbWVudCAmJiBzaG91bGRJbnNlcnRGcmFnbWVudChmcmFnbWVu
dCwgcmFuZ2UsIEVkaXRvckluc2VydEFjdGlvblBhc3RlZCkpCi0gICAgICAgIHBhc3RlQXNGcmFn
bWVudChmcmFnbWVudCwgY2FuU21hcnRSZXBsYWNlV2l0aFBhc3RlYm9hcmQocGFzdGVib2FyZCks
IGZhbHNlKTsKKyAgICAgICAgcGFzdGVBc0ZyYWdtZW50KGZyYWdtZW50LCBjYW5TbWFydFJlcGxh
Y2VXaXRoUGFzdGVib2FyZCgqcGFzdGVib2FyZCksIGZhbHNlKTsKIAogICAgIGNsaWVudCgpLT5z
ZXRJbnNlcnRpb25QYXN0ZWJvYXJkKFN0cmluZygpKTsKIH0KQEAgLTM4Myw2ICszODMsMTkgQEAg
dm9pZCBFZGl0b3I6OmZpbGxJblVzZXJWaXNpYmxlRm9ybShQYXN0ZWJvYXJkVVJMJiBwYXN0ZWJv
YXJkVVJMKQogICAgIHBhc3RlYm9hcmRVUkwudXNlclZpc2libGVGb3JtID0gY2xpZW50KCktPnVz
ZXJWaXNpYmxlU3RyaW5nKHBhc3RlYm9hcmRVUkwudXJsKTsKIH0KIAorU3RyaW5nIEVkaXRvcjo6
cGxhaW5UZXh0RnJvbVBhc3RlYm9hcmQoY29uc3QgUGFzdGVib2FyZFBsYWluVGV4dCYgdGV4dCkK
K3sKKyAgICBTdHJpbmcgc3RyaW5nID0gdGV4dC50ZXh0OworCisgICAgLy8gRklYTUU6IEl0J3Mg
bm90IGNsZWFyIHRoaXMgaXMgMTAwJSBjb3JyZWN0IHNpbmNlIHdlIGtub3cgLVtOU1VSTCBVUkxX
aXRoU3RyaW5nOl0gZG9lcyBub3QgaGFuZGxlCisgICAgLy8gYWxsIHRoZSBzYW1lIGNhc2VzIHdl
IGhhbmRsZSB3ZWxsIGluIHRoZSBLVVJMIGNvZGUgZm9yIGNyZWF0aW5nIGFuIE5TVVJMLgorICAg
IGlmICh0ZXh0LmlzVVJMKQorICAgICAgICBzdHJpbmcgPSBjbGllbnQoKS0+dXNlclZpc2libGVT
dHJpbmcoW05TVVJMIFVSTFdpdGhTdHJpbmc6c3RyaW5nXSk7CisKKyAgICAvLyBGSVhNRTogV1RG
IHNob3VsZCBvZmZlciBhIG5vbi1NYWMtc3BlY2lmaWMgd2F5IHRvIGNvbnZlcnQgc3RyaW5nIHRv
IHByZWNvbXBvc2VkIGZvcm0gc28gd2UgY2FuIGRvIGl0IGZvciBhbGwgcGxhdGZvcm1zLgorICAg
IHJldHVybiBbKE5TU3RyaW5nICopc3RyaW5nIHByZWNvbXBvc2VkU3RyaW5nV2l0aENhbm9uaWNh
bE1hcHBpbmddOworfQorCiB2b2lkIEVkaXRvcjo6d3JpdGVJbWFnZVRvUGFzdGVib2FyZChQYXN0
ZWJvYXJkJiBwYXN0ZWJvYXJkLCBFbGVtZW50JiBpbWFnZUVsZW1lbnQsIGNvbnN0IEtVUkwmIHVy
bCwgY29uc3QgU3RyaW5nJiB0aXRsZSkKIHsKICAgICBQYXN0ZWJvYXJkSW1hZ2UgcGFzdGVib2Fy
ZEltYWdlOwpAQCAtNDAyLDIyICs0MTUsNiBAQCB2b2lkIEVkaXRvcjo6d3JpdGVJbWFnZVRvUGFz
dGVib2FyZChQYXN0ZWJvYXJkJiBwYXN0ZWJvYXJkLCBFbGVtZW50JiBpbWFnZUVsZW1lbgogICAg
IHBhc3RlYm9hcmQud3JpdGUocGFzdGVib2FyZEltYWdlKTsKIH0KIAotU3RyaW5nIEVkaXRvcjo6
cmVhZFBsYWluVGV4dEZyb21QYXN0ZWJvYXJkKFBhc3RlYm9hcmQmIHBhc3RlYm9hcmQpCi17Ci0g
ICAgUGFzdGVib2FyZFBsYWluVGV4dCB0ZXh0OwotICAgIHBhc3RlYm9hcmQucmVhZCh0ZXh0KTsK
LQotICAgIFN0cmluZyBzdHJpbmcgPSB0ZXh0LnRleHQ7Ci0KLSAgICAvLyBGSVhNRTogSXQncyBu
b3QgY2xlYXIgdGhpcyBpcyAxMDAlIGNvcnJlY3Qgc2luY2Ugd2Uga25vdyAtW05TVVJMIFVSTFdp
dGhTdHJpbmc6XSBkb2VzIG5vdCBoYW5kbGUKLSAgICAvLyBhbGwgdGhlIHNhbWUgY2FzZXMgd2Ug
aGFuZGxlIHdlbGwgaW4gdGhlIEtVUkwgY29kZSBmb3IgY3JlYXRpbmcgYW4gTlNVUkwuCi0gICAg
aWYgKHRleHQuaXNVUkwpCi0gICAgICAgIHN0cmluZyA9IGNsaWVudCgpLT51c2VyVmlzaWJsZVN0
cmluZyhbTlNVUkwgVVJMV2l0aFN0cmluZzpzdHJpbmddKTsKLQotICAgIC8vIEZJWE1FOiBXVEYg
c2hvdWxkIG9mZmVyIGEgbm9uLU1hYy1zcGVjaWZpYyB3YXkgdG8gY29udmVydCBzdHJpbmcgdG8g
cHJlY29tcG9zZWQgZm9ybSBzbyB3ZSBjYW4gZG8gaXQgZm9yIGFsbCBwbGF0Zm9ybXMuCi0gICAg
cmV0dXJuIFsoTlNTdHJpbmcgKilzdHJpbmcgcHJlY29tcG9zZWRTdHJpbmdXaXRoQ2Fub25pY2Fs
TWFwcGluZ107Ci19Ci0KIGNsYXNzIEVkaXRvcjo6V2ViQ29udGVudFJlYWRlciBGSU5BTCA6IHB1
YmxpYyBQYXN0ZWJvYXJkV2ViQ29udGVudFJlYWRlciB7CiBwdWJsaWM6CiAgICAgRnJhbWUmIGZy
YW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZC5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZC5oCmluZGV4IGVjMzBjY2UxYTI4MjE0
YTM4YmE3Njc1ZTY2YmIwMTkxMDkyOWQ1MmIuLjVkOThhNDVmYjFmMWZlOWFiNmFiYjA5ZGRmNDFl
NGFhNjcwNTA2ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9h
cmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmgKQEAgLTExNyw3
ICsxMTcsNyBAQCBwdWJsaWM6CiAKIHN0cnVjdCBQYXN0ZWJvYXJkUGxhaW5UZXh0IHsKICAgICBT
dHJpbmcgdGV4dDsKLSNpZiBQTEFURk9STShNQUMpCisjaWYgUExBVEZPUk0oTUFDKSAmJiAhUExB
VEZPUk0oSU9TKQogICAgIGJvb2wgaXNVUkw7CiAjZW5kaWYKIH07CkBAIC0xNjcsNyArMTY3LDYg
QEAgcHVibGljOgogCiAjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShJT1MpIHx8IFBMQVRG
T1JNKFFUKSB8fCBQTEFURk9STShXSU4pCiAgICAgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50
PiBkb2N1bWVudEZyYWdtZW50KEZyYW1lKiwgUGFzc1JlZlB0cjxSYW5nZT4sIGJvb2wgYWxsb3dQ
bGFpblRleHQsIGJvb2wmIGNob3NlUGxhaW5UZXh0KTsgLy8gRklYTUU6IExheWVyaW5nIHZpb2xh
dGlvbi4KLSAgICBTdHJpbmcgcGxhaW5UZXh0KEZyYW1lKiA9IDApOyAvLyBGSVhNRTogTGF5ZXJp
bmcgdmlvbGF0aW9uLgogICAgIHZvaWQgd3JpdGVTZWxlY3Rpb24oUmFuZ2UqLCBib29sIGNhblNt
YXJ0Q29weU9yRGVsZXRlLCBGcmFtZSosIFNob3VsZFNlcmlhbGl6ZVNlbGVjdGVkVGV4dEZvckNs
aXBib2FyZCA9IERlZmF1bHRTZWxlY3RlZFRleHRUeXBlKTsgLy8gRklYTUU6IExheWVyaW5nIHZp
b2xhdGlvbi4KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9i
bGFja2JlcnJ5L1Bhc3RlYm9hcmRCbGFja0JlcnJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2JsYWNrYmVycnkvUGFzdGVib2FyZEJsYWNrQmVycnkuY3BwCmluZGV4IGZlZjliODdhMzBk
ZDVlNzg2N2JjZmY5NmQ3OWQwOWNkNjcwNzZjOWUuLjBiNTNlMWU1YmUxZDM3MDMwODE4ODYyNzAx
MDE5MGM3OGNmNDFmNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2JsYWNr
YmVycnkvUGFzdGVib2FyZEJsYWNrQmVycnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2JsYWNrYmVycnkvUGFzdGVib2FyZEJsYWNrQmVycnkuY3BwCkBAIC03Niw5ICs3Niw5IEBA
IHZvaWQgUGFzdGVib2FyZDo6d3JpdGVQbGFpblRleHQoY29uc3QgU3RyaW5nJiB0ZXh0LCBTbWFy
dFJlcGxhY2VPcHRpb24pCiAgICAgQmxhY2tCZXJyeTo6UGxhdGZvcm06OkNsaXBib2FyZDo6d3Jp
dGVQbGFpblRleHQodGV4dCk7CiB9CiAKLVN0cmluZyBQYXN0ZWJvYXJkOjpwbGFpblRleHQoRnJh
bWUqKQordm9pZCBQYXN0ZWJvYXJkOjpyZWFkKFBhc3RlYm9hcmRQbGFpblRleHQmIHRleHQpCiB7
Ci0gICAgcmV0dXJuIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpDbGlwYm9hcmQ6OnJlYWRQbGFpblRl
eHQoKTsKKyAgICB0ZXh0LnRleHQgPSBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6Q2xpcGJvYXJkOjpy
ZWFkUGxhaW5UZXh0KCk7CiB9CiAKIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gUGFzdGVi
b2FyZDo6ZG9jdW1lbnRGcmFnbWVudChGcmFtZSogZnJhbWUsIFBhc3NSZWZQdHI8UmFuZ2U+IGNv
bnRleHQsIGJvb2wgYWxsb3dQbGFpblRleHQsIGJvb2wmIGNob3NlUGxhaW5UZXh0KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRHdGsuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRHdGsuY3BwCmluZGV4IGVkZGNjMmEw
ZjM3NWMxNGQ5YjM5NmZjMGFmMDkwNzI4M2Q0MTJhNjIuLjFmYTY1NmIyOWUwYzBjYjAzNDk4OWNi
NjgxZTcxNGU3OTc2ZGZhNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0
ay9QYXN0ZWJvYXJkR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFz
dGVib2FyZEd0ay5jcHAKQEAgLTMyNSwxMSArMzI1LDExIEBAIFBhc3NSZWZQdHI8RG9jdW1lbnRG
cmFnbWVudD4gUGFzdGVib2FyZDo6ZG9jdW1lbnRGcmFnbWVudChGcmFtZSogZnJhbWUsIFBhc3NS
ZWZQCiAgICAgcmV0dXJuIDA7CiB9CiAKLVN0cmluZyBQYXN0ZWJvYXJkOjpwbGFpblRleHQoRnJh
bWUqIGZyYW1lKQordm9pZCBQYXN0ZWJvYXJkOjpyZWFkKFBhc3RlYm9hcmRQbGFpblRleHQmIHRl
eHQpCiB7CiAgICAgaWYgKG1fZ3RrQ2xpcGJvYXJkKQogICAgICAgICBQYXN0ZWJvYXJkSGVscGVy
OjpkZWZhdWx0UGFzdGVib2FyZEhlbHBlcigpLT5nZXRDbGlwYm9hcmRDb250ZW50cyhtX2d0a0Ns
aXBib2FyZCk7Ci0gICAgcmV0dXJuIG1fZGF0YU9iamVjdC0+dGV4dCgpOworICAgIHRleHQudGV4
dCA9IG1fZGF0YU9iamVjdC0+dGV4dCgpOwogfQogCiBib29sIFBhc3RlYm9hcmQ6Omhhc0RhdGEo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1Bhc3RlYm9hcmRJT1Mu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGFzdGVib2FyZElPUy5tbQppbmRleCBi
MDhkNGFkNDdkNWQ4MjFmYTljZGM3ZGQyNTVhNGEzMzA4NDdhMzNlLi5mOWIzZDI5ZGZlYjI3OWE1
YmQ1MzJhMWM1MmZmZjNiODJkY2FjNDA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3MvUGFzdGVib2FyZElPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3MvUGFzdGVib2FyZElPUy5tbQpAQCAtMjIwLDE5ICsyMjAsMTcgQEAgYm9vbCBQYXN0ZWJvYXJk
OjpjYW5TbWFydFJlcGxhY2UoKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotU3RyaW5nIFBhc3Rl
Ym9hcmQ6OnBsYWluVGV4dChGcmFtZSogZnJhbWUpCit2b2lkIFBhc3RlYm9hcmQ6OnJlYWQoUGFz
dGVib2FyZFBsYWluVGV4dCYgdGV4dCkKIHsKLSAgICBSZXRhaW5QdHI8TlNBcnJheT4gcGFzdGVi
b2FyZEl0ZW0gPSBmcmFtZS0+ZWRpdG9yKCkuY2xpZW50KCktPnJlYWREYXRhRnJvbVBhc3RlYm9h
cmQoKE5TU3RyaW5nICopa1VUVHlwZVRleHQsIDApOworICAgIFJldGFpblB0cjxOU0FycmF5PiBw
YXN0ZWJvYXJkSXRlbSA9IG1fZnJhbWUtPmVkaXRvcigpLmNsaWVudCgpLT5yZWFkRGF0YUZyb21Q
YXN0ZWJvYXJkKChOU1N0cmluZyAqKWtVVFR5cGVUZXh0LCAwKTsKIAogICAgIGlmIChbcGFzdGVi
b2FyZEl0ZW0uZ2V0KCkgY291bnRdID09IDApCi0gICAgICAgIHJldHVybiBTdHJpbmcoKTsKKyAg
ICAgICAgcmV0dXJuOwogCiAgICAgaWQgdmFsdWUgPSBbcGFzdGVib2FyZEl0ZW0uZ2V0KCkgb2Jq
ZWN0QXRJbmRleDowXTsKLSAgICBpZiAoW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05TU3RyaW5nIGNs
YXNzXV0pCi0gICAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpOwotCiAgICAgQVNTRVJUKFt2YWx1
ZSBpc0tpbmRPZkNsYXNzOltOU1N0cmluZyBjbGFzc11dKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7
CisgICAgaWYgKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU1N0cmluZyBjbGFzc11dKQorICAgICAg
ICB0ZXh0LnRleHQgPSAoTlNTdHJpbmcgKil2YWx1ZTsKIH0KIAogc3RhdGljIE5TQXJyYXkqIHN1
cHBvcnRlZEltYWdlVHlwZXMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bml4L1Bhc3RlYm9hcmROaXguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L1Bhc3Rl
Ym9hcmROaXguY3BwCmluZGV4IDVhMTViMmFkZGVjMTU0OGYyYjY0OTIzMjMwN2E4NjFmMjk1MTUx
Y2MuLjM0ZWMxYzBlMDUyZjNkNzIzMjZlYjU3NzgzNTRkYWRiZDE5ZTYwNzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25peC9QYXN0ZWJvYXJkTml4LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvUGFzdGVib2FyZE5peC5jcHAKQEAgLTgzLDEwICs4Myw5
IEBAIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gUGFzdGVib2FyZDo6ZG9jdW1lbnRGcmFn
bWVudChGcmFtZSosIFBhc3NSZWZQdHI8UmFuCiAgICAgcmV0dXJuIDA7CiB9CiAKLVN0cmluZyBQ
YXN0ZWJvYXJkOjpwbGFpblRleHQoRnJhbWUqKQordm9pZCBQYXN0ZWJvYXJkOjpyZWFkKFBhc3Rl
Ym9hcmRQbGFpblRleHQmKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIFN0
cmluZygpOwogfQogCiBQYXNzT3duUHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZv
ckNvcHlBbmRQYXN0ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9Q
YXN0ZWJvYXJkUXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUGFzdGVib2FyZFF0
LmNwcAppbmRleCBjZmE3ZjQwMjU2NzAwODFlODY1ODRkZGZiODM1ODk3NTY3NGNlZGE5Li5lYjhl
ZGZkYjJhNGMxNWRhYzM0NDIwNTVmMGY2MDZiNGM4NTAwOTM2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9xdC9QYXN0ZWJvYXJkUXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3F0L1Bhc3RlYm9hcmRRdC5jcHAKQEAgLTE0NCwxMiArMTQ0LDEwIEBAIGJvb2wg
UGFzdGVib2FyZDo6Y2FuU21hcnRSZXBsYWNlKCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLVN0
cmluZyBQYXN0ZWJvYXJkOjpwbGFpblRleHQoRnJhbWUqKQordm9pZCBQYXN0ZWJvYXJkOjpyZWFk
KFBhc3RlYm9hcmRQbGFpblRleHQmIHRleHQpCiB7CiAjaWZuZGVmIFFUX05PX0NMSVBCT0FSRAot
ICAgIHJldHVybiBRR3VpQXBwbGljYXRpb246OmNsaXBib2FyZCgpLT50ZXh0KG1fc2VsZWN0aW9u
TW9kZSA/IFFDbGlwYm9hcmQ6OlNlbGVjdGlvbiA6IFFDbGlwYm9hcmQ6OkNsaXBib2FyZCk7Ci0j
ZWxzZQotICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICB0ZXh0LnRleHQgPSBRR3VpQXBwbGljYXRp
b246OmNsaXBib2FyZCgpLT50ZXh0KG1fc2VsZWN0aW9uTW9kZSA/IFFDbGlwYm9hcmQ6OlNlbGVj
dGlvbiA6IFFDbGlwYm9hcmQ6OkNsaXBib2FyZCk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Bhc3RlYm9hcmRXaW4uY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vd2luL1Bhc3RlYm9hcmRXaW4uY3BwCmluZGV4IDhkZTcyYTI5YjkxYTE5
YmMwOTNhN2E1YzNhNjZmZjhmZDg5NzQ4OTMuLmVhYWMxNTA2MGZhYzVmNTg1Njc4ODlhZDJiOWVm
ZTllNmIyNjJkNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QYXN0
ZWJvYXJkV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGFzdGVib2Fy
ZFdpbi5jcHAKQEAgLTc3NCwzMyArNzc0LDI4IEBAIGJvb2wgUGFzdGVib2FyZDo6Y2FuU21hcnRS
ZXBsYWNlKCkKICAgICByZXR1cm4gOjpJc0NsaXBib2FyZEZvcm1hdEF2YWlsYWJsZShXZWJTbWFy
dFBhc3RlRm9ybWF0KTsKIH0KIAotU3RyaW5nIFBhc3RlYm9hcmQ6OnBsYWluVGV4dChGcmFtZSog
ZnJhbWUpCit2b2lkIFBhc3RlYm9hcmQ6OnJlYWQoUGFzdGVib2FyZFBsYWluVGV4dCYgdGV4dCkK
IHsKICAgICBpZiAoOjpJc0NsaXBib2FyZEZvcm1hdEF2YWlsYWJsZShDRl9VTklDT0RFVEVYVCkg
JiYgOjpPcGVuQ2xpcGJvYXJkKG1fb3duZXIpKSB7Ci0gICAgICAgIEhBTkRMRSBjYkRhdGEgPSA6
OkdldENsaXBib2FyZERhdGEoQ0ZfVU5JQ09ERVRFWFQpOwotICAgICAgICBpZiAoY2JEYXRhKSB7
Ci0gICAgICAgICAgICBVQ2hhciogYnVmZmVyID0gc3RhdGljX2Nhc3Q8VUNoYXIqPihHbG9iYWxM
b2NrKGNiRGF0YSkpOwotICAgICAgICAgICAgU3RyaW5nIGZyb21DbGlwYm9hcmQoYnVmZmVyKTsK
KyAgICAgICAgaWYgKEhBTkRMRSBjYkRhdGEgPSA6OkdldENsaXBib2FyZERhdGEoQ0ZfVU5JQ09E
RVRFWFQpKSB7CisgICAgICAgICAgICB0ZXh0LnRleHQgPSBzdGF0aWNfY2FzdDxVQ2hhcio+KEds
b2JhbExvY2soY2JEYXRhKSk7CiAgICAgICAgICAgICBHbG9iYWxVbmxvY2soY2JEYXRhKTsKICAg
ICAgICAgICAgIDo6Q2xvc2VDbGlwYm9hcmQoKTsKLSAgICAgICAgICAgIHJldHVybiBmcm9tQ2xp
cGJvYXJkOworICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIDo6Q2xvc2VD
bGlwYm9hcmQoKTsKICAgICB9CiAKICAgICBpZiAoOjpJc0NsaXBib2FyZEZvcm1hdEF2YWlsYWJs
ZShDRl9URVhUKSAmJiA6Ok9wZW5DbGlwYm9hcmQobV9vd25lcikpIHsKLSAgICAgICAgSEFORExF
IGNiRGF0YSA9IDo6R2V0Q2xpcGJvYXJkRGF0YShDRl9URVhUKTsKLSAgICAgICAgaWYgKGNiRGF0
YSkgewotICAgICAgICAgICAgY2hhciogYnVmZmVyID0gc3RhdGljX2Nhc3Q8Y2hhcio+KEdsb2Jh
bExvY2soY2JEYXRhKSk7Ci0gICAgICAgICAgICBTdHJpbmcgZnJvbUNsaXBib2FyZChidWZmZXIp
OworICAgICAgICBpZiAoSEFORExFIGNiRGF0YSA9IDo6R2V0Q2xpcGJvYXJkRGF0YShDRl9URVhU
KSkgeworICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMgdHJlYXRzIHRoZSBjaGFyYWN0ZXJzIGFz
IExhdGluLTEsIG5vdCBVVEYtOCBvciBldmVuIFdpbmRvd3MgTGF0aW4tMS4gSXMgdGhhdCB0aGUg
cmlnaHQgZW5jb2Rpbmc/CisgICAgICAgICAgICB0ZXh0LnRleHQgPSBzdGF0aWNfY2FzdDxjaGFy
Kj4oR2xvYmFsTG9jayhjYkRhdGEpKTsKICAgICAgICAgICAgIEdsb2JhbFVubG9jayhjYkRhdGEp
OwogICAgICAgICAgICAgOjpDbG9zZUNsaXBib2FyZCgpOwotICAgICAgICAgICAgcmV0dXJuIGZy
b21DbGlwYm9hcmQ7CisgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgOjpD
bG9zZUNsaXBib2FyZCgpOwogICAgIH0KLQotICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAogUGFz
c1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBQYXN0ZWJvYXJkOjpkb2N1bWVudEZyYWdtZW50KEZy
YW1lKiBmcmFtZSwgUGFzc1JlZlB0cjxSYW5nZT4gY29udGV4dCwgYm9vbCBhbGxvd1BsYWluVGV4
dCwgYm9vbCYgY2hvc2VQbGFpblRleHQpCg==
</data>
<flag name="review"
          id="233699"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>