<?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>78243</bug_id>
          
          <creation_ts>2012-02-09 08:29:31 -0800</creation_ts>
          <short_desc>[Qt] Be smarter with tile usages during tiling</short_desc>
          <delta_ts>2012-02-15 05:06:45 -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>WebKit Qt</component>
          <version>528+ (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="Kenneth Rohde Christiansen">kenneth</reporter>
          <assigned_to name="Kenneth Rohde Christiansen">kenneth</assigned_to>
          <cc>hausmann</cc>
    
    <cc>jturcotte</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>553187</commentid>
    <comment_count>0</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-02-09 08:29:31 -0800</bug_when>
    <thetext>SSIA</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553193</commentid>
    <comment_count>1</comment_count>
      <attachid>126310</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-02-09 08:36:51 -0800</bug_when>
    <thetext>Created attachment 126310
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553195</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-09 08:38:13 -0800</bug_when>
    <thetext>Attachment 126310 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebCore/platform/graphics/TiledBackingStore.h:97:  The parameter name &quot;rect&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 4 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>554028</commentid>
    <comment_count>3</comment_count>
      <attachid>126310</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-02-10 05:18:02 -0800</bug_when>
    <thetext>Comment on attachment 126310
Patch

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

&gt; Source/WebCore/ChangeLog:3
&gt; +        [Qt] Be smarted with tile usages during tiling

smarted -&gt; smarter

&gt; Source/WebCore/ChangeLog:13
&gt; +        simple intersecting our areas with the contentRect, but moving it

simple -&gt; simply</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554030</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-02-10 05:20:14 -0800</bug_when>
    <thetext>Apart from my nitpicks and the style issue this looks good to me. But it would be even better if Jocelyn could peek it it, too :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554044</commentid>
    <comment_count>5</comment_count>
      <attachid>126310</attachid>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2012-02-10 06:08:52 -0800</bug_when>
    <thetext>Comment on attachment 126310
Patch

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

The logic looks pretty good to me.

&gt; Source/WebCore/ChangeLog:8
&gt; +        The keep rect used for what existing tiles to keep around, is now a

Maybe add a verb instead of &quot;for&quot;, &quot;used to chose&quot; or &quot;used to know&quot;.

&gt; Source/WebCore/platform/graphics/TiledBackingStore.cpp:340
&gt; +            // A null trajectory vector (no motion) means that tiles for the keepArea will be created.
&gt; +            coverRect = keepRect;

The comment should say &quot;tiles for the *coverArea*&quot; I think.
It&apos;s also a bit confusing to use keepRect first and then assign coverRect to it while all comments refer to the cover area at this point.
I&apos;m not sure how to improve it, maybe by first inflating corevRect at line 334, then assign keepRect = coverRect, and then modify coverRect if necessary in the else at line 341.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554045</commentid>
    <comment_count>6</comment_count>
      <attachid>126310</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-02-10 06:13:50 -0800</bug_when>
    <thetext>Comment on attachment 126310
Patch

ok then, r=me modulo stylistic fixes suggested by jocelyn, me, and the style bot! :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557105</commentid>
    <comment_count>7</comment_count>
      <attachid>127150</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-02-15 03:20:36 -0800</bug_when>
    <thetext>Created attachment 127150
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557150</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-15 04:16:19 -0800</bug_when>
    <thetext>Attachment 127150 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/update-webkit&apos;]&quot; exit_code: 9

Updating OpenSource
Index mismatch: 0dfd183742a71cb5de5dadc3ae177fc72b63a194 != 9cdcda984def14b8bf8a32b6da6784c8a6ef7b3a
rereading 8567f8d3c2539a28a496edaf1048483e973975c2
	M	LayoutTests/fast/forms/radio-nested-labels.html
	M	LayoutTests/ChangeLog
107798 = 3671b2d23de7ade4cb1d1e78a3f6f7673db6a6c9 already exists! Why are we refetching it?
 at /usr/lib/git-core/git-svn line 5210

Died at Tools/Scripts/update-webkit line 164.


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557171</commentid>
    <comment_count>9</comment_count>
      <attachid>127150</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-15 05:01:22 -0800</bug_when>
    <thetext>Comment on attachment 127150
Patch

Rejecting attachment 127150 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 1

ERROR: /mnt/git/webkit-commit-queue/LayoutTests/ChangeLog neither lists a valid reviewer nor contains the string &quot;Unreviewed&quot; or &quot;Rubber stamp&quot; (case insensitive).

Full output: http://queues.webkit.org/results/11514778</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557174</commentid>
    <comment_count>10</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-02-15 05:06:45 -0800</bug_when>
    <thetext>Committed r107803: &lt;http://trac.webkit.org/changeset/107803&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126310</attachid>
            <date>2012-02-09 08:36:51 -0800</date>
            <delta_ts>2012-02-15 03:20:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Qt-Be-smarted-with-tile-usages-during-tiling.patch</filename>
            <type>text/plain</type>
            <size>18594</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">RnJvbSA1ZDZkYzAxYTQzMjg2NWRlZjE0MzUyMmFmM2RiYmQ0ZDJkNjEyYWY5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiA8a2VubmV0aEB3
ZWJraXQub3JnPgpEYXRlOiBUaHUsIDkgRmViIDIwMTIgMTc6MzE6MDcgKzAxMDAKU3ViamVjdDog
W1BBVENIXSBbUXRdIEJlIHNtYXJ0ZWQgd2l0aCB0aWxlIHVzYWdlcyBkdXJpbmcgdGlsaW5nCiBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgyNDMKClJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgoKU291cmNlL1dlYkNvcmU6CgpUaGUga2VlcCByZWN0IHVzZWQgZm9y
IHdoYXQgZXhpc3RpbmcgdGlsZXMgdG8ga2VlcCBhcm91bmQsIGlzIG5vdyBhCnBhZGRpbmcgKGlu
IHRpbGUgZGltZW5zaW9ucykgYXJvdW5kIHRoZSB1c3VhbCBjb3ZlciByZWN0LiBXaXRoIHVzdWFs
LApJIG1lYW4gdG8gcG9pbnQgb3V0IHRoYXQgd2UgdGFrZSBvdXIgcGFubmluZyBvcHRpbWl6YXRp
b24gaW50byBhY2NvdW50LgoKV2UgYWxzbyBkbyBhIGdvb2QgZWZmb3J0IGF0IGtlZXBpbmcgdGhl
IGFtb3VudCBvZiB0aWxlcyBzdGVhZHksIGJ5IG5vdApzaW1wbGUgaW50ZXJzZWN0aW5nIG91ciBh
cmVhcyB3aXRoIHRoZSBjb250ZW50UmVjdCwgYnV0IG1vdmluZyBpdApmaXJzdCBpbnRvIGxlZ2Fs
IGJvdW5kcyBhbmQgdGhlbiBleHBhbmRpbmcgaW4gb3Bwb3NpdGUgZGlyZWN0aW9uIHRvCmNvdmVy
IGEgc2ltaWxhciBhbW91bnQgb2YgcGl4ZWxzLgoKSW4gdGhlIGZ1dHVyZSB0aGUgY292ZXIgYXJl
YSBzaG91bGQgYmUgY2FsY3VsYXRlZCBnaXZlbiBhdmFpbGFibGUKc3lzdGVtIG1lbW9yeS4KCiog
cGxhdGZvcm0vZ3JhcGhpY3MvVGlsZWRCYWNraW5nU3RvcmUuY3BwOgooV2ViQ29yZSk6CihXZWJD
b3JlOjpUaWxlZEJhY2tpbmdTdG9yZTo6VGlsZWRCYWNraW5nU3RvcmUpOgooV2ViQ29yZTo6VGls
ZWRCYWNraW5nU3RvcmU6OmNyZWF0ZVRpbGVzKToKKFdlYkNvcmU6OlRpbGVkQmFja2luZ1N0b3Jl
OjphZGp1c3RGb3JDb250ZW50c1JlY3QpOgooV2ViQ29yZTo6VGlsZWRCYWNraW5nU3RvcmU6OmNv
bXB1dGVDb3ZlckFuZEtlZXBSZWN0KToKKFdlYkNvcmU6OlRpbGVkQmFja2luZ1N0b3JlOjp0aWxl
UmVjdEZvckNvb3JkaW5hdGUpOgoqIHBsYXRmb3JtL2dyYXBoaWNzL1RpbGVkQmFja2luZ1N0b3Jl
Lmg6CihUaWxlZEJhY2tpbmdTdG9yZSk6CgpTb3VyY2UvV2ViS2l0L3F0OgoKUmVtb3ZlIGludGVy
bmFsIEFQSSB1c2VkIGJ5IFN5bWJpYW4uCgoqIEFwaS9xd2VicGFnZS5jcHA6CihRV2ViUGFnZVBy
aXZhdGU6OmR5bmFtaWNQcm9wZXJ0eUNoYW5nZUV2ZW50KToKLS0tCiBTb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMjkgKysrKysKIC4uLi9wbGF0
Zm9ybS9ncmFwaGljcy9UaWxlZEJhY2tpbmdTdG9yZS5jcHAgICAgICAgIHwgIDEzMSArKysrKysr
KysrKystLS0tLS0tLQogLi4uL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGlsZWRCYWNraW5n
U3RvcmUuaCAgfCAgIDE0ICstLQogU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwICAg
ICAgICAgICAgICAgICAgfCAgIDM3IC0tLS0tLQogU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cg
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEyICsrCiA1IGZpbGVzIGNoYW5nZWQsIDEyMiBp
bnNlcnRpb25zKCspLCAxMDEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDBlNGE4MzcuLjk1
NGVmYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAxMi0wMi0wOSAgS2VubmV0aCBS
b2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1F0XSBC
ZSBzbWFydGVkIHdpdGggdGlsZSB1c2FnZXMgZHVyaW5nIHRpbGluZworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgyNDMKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUga2VlcCByZWN0IHVzZWQgZm9yIHdo
YXQgZXhpc3RpbmcgdGlsZXMgdG8ga2VlcCBhcm91bmQsIGlzIG5vdyBhCisgICAgICAgIHBhZGRp
bmcgKGluIHRpbGUgZGltZW5zaW9ucykgYXJvdW5kIHRoZSB1c3VhbCBjb3ZlciByZWN0LiBXaXRo
IHVzdWFsLAorICAgICAgICBJIG1lYW4gdG8gcG9pbnQgb3V0IHRoYXQgd2UgdGFrZSBvdXIgcGFu
bmluZyBvcHRpbWl6YXRpb24gaW50byBhY2NvdW50LgorCisgICAgICAgIFdlIGFsc28gZG8gYSBn
b29kIGVmZm9ydCBhdCBrZWVwaW5nIHRoZSBhbW91bnQgb2YgdGlsZXMgc3RlYWR5LCBieSBub3QK
KyAgICAgICAgc2ltcGxlIGludGVyc2VjdGluZyBvdXIgYXJlYXMgd2l0aCB0aGUgY29udGVudFJl
Y3QsIGJ1dCBtb3ZpbmcgaXQKKyAgICAgICAgZmlyc3QgaW50byBsZWdhbCBib3VuZHMgYW5kIHRo
ZW4gZXhwYW5kaW5nIGluIG9wcG9zaXRlIGRpcmVjdGlvbiB0bworICAgICAgICBjb3ZlciBhIHNp
bWlsYXIgYW1vdW50IG9mIHBpeGVscy4KKworICAgICAgICBJbiB0aGUgZnV0dXJlIHRoZSBjb3Zl
ciBhcmVhIHNob3VsZCBiZSBjYWxjdWxhdGVkIGdpdmVuIGF2YWlsYWJsZQorICAgICAgICBzeXN0
ZW0gbWVtb3J5LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvVGlsZWRCYWNraW5nU3Rv
cmUuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpUaWxlZEJhY2tp
bmdTdG9yZTo6VGlsZWRCYWNraW5nU3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6VGlsZWRCYWNr
aW5nU3RvcmU6OmNyZWF0ZVRpbGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbGVkQmFja2luZ1N0
b3JlOjphZGp1c3RGb3JDb250ZW50c1JlY3QpOgorICAgICAgICAoV2ViQ29yZTo6VGlsZWRCYWNr
aW5nU3RvcmU6OmNvbXB1dGVDb3ZlckFuZEtlZXBSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlRp
bGVkQmFja2luZ1N0b3JlOjp0aWxlUmVjdEZvckNvb3JkaW5hdGUpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL1RpbGVkQmFja2luZ1N0b3JlLmg6CisgICAgICAgIChUaWxlZEJhY2tpbmdT
dG9yZSk6CisKIDIwMTItMDItMDcgIEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8a2VubmV0
aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFtJbnNwZWN0b3JdIEFkZCB0aGUgTm9raWEgTjkgdXNl
ciBhZ2VudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGls
ZWRCYWNraW5nU3RvcmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGls
ZWRCYWNraW5nU3RvcmUuY3BwCmluZGV4IGNlYjQ4OWUuLjUxNTZkYzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RpbGVkQmFja2luZ1N0b3JlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UaWxlZEJhY2tpbmdTdG9yZS5jcHAK
QEAgLTI3LDggKzI3LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIAotc3RhdGljIGNv
bnN0IGludCBkZWZhdWx0VGlsZVdpZHRoID0gNTEyOwotc3RhdGljIGNvbnN0IGludCBkZWZhdWx0
VGlsZUhlaWdodCA9IDUxMjsKK3N0YXRpYyBjb25zdCBpbnQgZGVmYXVsdFRpbGVEaW1lbnNpb24g
PSA1MTI7CiAKIHN0YXRpYyBJbnRQb2ludCBpbm5lckJvdHRvbVJpZ2h0KGNvbnN0IEludFJlY3Qm
IHJlY3QpCiB7CkBAIC00MSwxNSArNDAsMTMgQEAgVGlsZWRCYWNraW5nU3RvcmU6OlRpbGVkQmFj
a2luZ1N0b3JlKFRpbGVkQmFja2luZ1N0b3JlQ2xpZW50KiBjbGllbnQsIFBhc3NPd25QdHIKICAg
ICAsIG1fYmFja2VuZChiYWNrZW5kKQogICAgICwgbV90aWxlQnVmZmVyVXBkYXRlVGltZXIobmV3
IFRpbGVUaW1lcih0aGlzLCAmVGlsZWRCYWNraW5nU3RvcmU6OnRpbGVCdWZmZXJVcGRhdGVUaW1l
ckZpcmVkKSkKICAgICAsIG1fdGlsZUNyZWF0aW9uVGltZXIobmV3IFRpbGVUaW1lcih0aGlzLCAm
VGlsZWRCYWNraW5nU3RvcmU6OnRpbGVDcmVhdGlvblRpbWVyRmlyZWQpKQotICAgICwgbV90aWxl
U2l6ZShkZWZhdWx0VGlsZVdpZHRoLCBkZWZhdWx0VGlsZUhlaWdodCkKKyAgICAsIG1fdGlsZVNp
emUoZGVmYXVsdFRpbGVEaW1lbnNpb24sIGRlZmF1bHRUaWxlRGltZW5zaW9uKQogICAgICwgbV90
aWxlQ3JlYXRpb25EZWxheSgwLjAxKQotICAgICwgbV9rZWVwQXJlYU11bHRpcGxpZXIoMy41ZikK
LSAgICAsIG1fY292ZXJBcmVhTXVsdGlwbGllcigyLjVmKQorICAgICwgbV9jb3ZlckFyZWFNdWx0
aXBsaWVyKDIuMGYpCiAgICAgLCBtX2NvbnRlbnRzU2NhbGUoMS5mKQogICAgICwgbV9wZW5kaW5n
U2NhbGUoMCkKICAgICAsIG1fY29udGVudHNGcm96ZW4oZmFsc2UpCiB7Ci0gICAgQVNTRVJUKG1f
Y292ZXJBcmVhTXVsdGlwbGllciA8PSBtX2tlZXBBcmVhTXVsdGlwbGllcik7CiB9CiAKIFRpbGVk
QmFja2luZ1N0b3JlOjp+VGlsZWRCYWNraW5nU3RvcmUoKQpAQCAtNTcsNyArNTQsNyBAQCBUaWxl
ZEJhY2tpbmdTdG9yZTo6flRpbGVkQmFja2luZ1N0b3JlKCkKICAgICBkZWxldGUgbV90aWxlQnVm
ZmVyVXBkYXRlVGltZXI7CiAgICAgZGVsZXRlIG1fdGlsZUNyZWF0aW9uVGltZXI7CiB9Ci0gICAg
CisKIHZvaWQgVGlsZWRCYWNraW5nU3RvcmU6OnNldFRpbGVTaXplKGNvbnN0IEludFNpemUmIHNp
emUpCiB7CiAgICAgbV90aWxlU2l6ZSA9IHNpemU7CkBAIC03MCwxNCArNjcsNiBAQCB2b2lkIFRp
bGVkQmFja2luZ1N0b3JlOjpzZXRUaWxlQ3JlYXRpb25EZWxheShkb3VibGUgZGVsYXkpCiAgICAg
bV90aWxlQ3JlYXRpb25EZWxheSA9IGRlbGF5OwogfQogCi12b2lkIFRpbGVkQmFja2luZ1N0b3Jl
OjpzZXRLZWVwQW5kQ292ZXJBcmVhTXVsdGlwbGllcnMoZmxvYXQga2VlcE11bHRpcGxpZXIsIGZs
b2F0IGNvdmVyTXVsdGlwbGllcikKLXsKLSAgICBBU1NFUlQoY292ZXJNdWx0aXBsaWVyIDw9IGtl
ZXBNdWx0aXBsaWVyKTsKLSAgICBtX2tlZXBBcmVhTXVsdGlwbGllciA9IGtlZXBNdWx0aXBsaWVy
OwotICAgIG1fY292ZXJBcmVhTXVsdGlwbGllciA9IGNvdmVyTXVsdGlwbGllcjsKLSAgICBzdGFy
dFRpbGVDcmVhdGlvblRpbWVyKCk7Ci19Ci0KIHZvaWQgVGlsZWRCYWNraW5nU3RvcmU6OnNldFZp
c2libGVSZWN0VHJhamVjdG9yeVZlY3Rvcihjb25zdCBGbG9hdFBvaW50JiB2ZWN0b3IpCiB7CiAg
ICAgaWYgKG1fdmlzaWJsZVJlY3RUcmFqZWN0b3J5VmVjdG9yID09IHZlY3RvcikKQEAgLTI1Niwx
OCArMjQ1LDE4IEBAIHZvaWQgVGlsZWRCYWNraW5nU3RvcmU6OmNyZWF0ZVRpbGVzKCkKICAgICAv
LyBSZXNpemUgdGlsZXMgb24gZWRnZXMgaW4gY2FzZSB0aGUgY29udGVudHMgc2l6ZSBoYXMgY2hh
bmdlZC4KICAgICBib29sIGRpZFJlc2l6ZVRpbGVzID0gcmVzaXplRWRnZVRpbGVzKCk7CiAKLSAg
ICBJbnRSZWN0IGtlZXBSZWN0ID0gY29tcHV0ZUtlZXBSZWN0KHZpc2libGVSZWN0KTsKLSAgICAK
KyAgICBJbnRSZWN0IGtlZXBSZWN0OworICAgIEludFJlY3QgY292ZXJSZWN0OworICAgIGNvbXB1
dGVDb3ZlckFuZEtlZXBSZWN0KHZpc2libGVSZWN0LCBjb3ZlclJlY3QsIGtlZXBSZWN0KTsKKwog
ICAgIGRyb3BUaWxlc091dHNpZGVSZWN0KGtlZXBSZWN0KTsKICAgICAKLSAgICBJbnRSZWN0IGNv
dmVyUmVjdCA9IGNvbXB1dGVDb3ZlclJlY3QodmlzaWJsZVJlY3QpOwotICAgIEFTU0VSVChrZWVw
UmVjdC5jb250YWlucyhjb3ZlclJlY3QpKTsKLSAgICAKICAgICAvLyBTZWFyY2ggZm9yIHRoZSB0
aWxlIHBvc2l0aW9uIGNsb3Nlc3QgdG8gdGhlIHZpZXdwb3J0IGNlbnRlciB0aGF0IGRvZXMgbm90
IHlldCBjb250YWluIGEgdGlsZS4gCiAgICAgLy8gV2hpY2ggcG9zaXRpb24gaXMgY29uc2lkZXJl
ZCB0aGUgY2xvc2VzdCBkZXBlbmRzIG9uIHRoZSB0aWxlRGlzdGFuY2UgZnVuY3Rpb24uCiAgICAg
ZG91YmxlIHNob3J0ZXN0RGlzdGFuY2UgPSBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46Omlu
ZmluaXR5KCk7CiAgICAgVmVjdG9yPFRpbGU6OkNvb3JkaW5hdGU+IHRpbGVzVG9DcmVhdGU7CiAg
ICAgdW5zaWduZWQgcmVxdWlyZWRUaWxlQ291bnQgPSAwOworCiAgICAgVGlsZTo6Q29vcmRpbmF0
ZSB0b3BMZWZ0ID0gdGlsZUNvb3JkaW5hdGVGb3JQb2ludChjb3ZlclJlY3QubG9jYXRpb24oKSk7
CiAgICAgVGlsZTo6Q29vcmRpbmF0ZSBib3R0b21SaWdodCA9IHRpbGVDb29yZGluYXRlRm9yUG9p
bnQoaW5uZXJCb3R0b21SaWdodChjb3ZlclJlY3QpKTsKICAgICBmb3IgKHVuc2lnbmVkIHlDb29y
ZGluYXRlID0gdG9wTGVmdC55KCk7IHlDb29yZGluYXRlIDw9IGJvdHRvbVJpZ2h0LnkoKTsgKyt5
Q29vcmRpbmF0ZSkgewpAQCAtMjg3LDcgKzI3Niw3IEBAIHZvaWQgVGlsZWRCYWNraW5nU3RvcmU6
OmNyZWF0ZVRpbGVzKCkKICAgICAgICAgICAgIHRpbGVzVG9DcmVhdGUuYXBwZW5kKGN1cnJlbnRD
b29yZGluYXRlKTsKICAgICAgICAgfQogICAgIH0KLSAgICAKKwogICAgIC8vIE5vdyBjb25zdHJ1
Y3QgdGhlIHRpbGUocykKICAgICB1bnNpZ25lZCB0aWxlc1RvQ3JlYXRlQ291bnQgPSB0aWxlc1Rv
Q3JlYXRlLnNpemUoKTsKICAgICBmb3IgKHVuc2lnbmVkIG4gPSAwOyBuIDwgdGlsZXNUb0NyZWF0
ZUNvdW50OyArK24pIHsKQEAgLTMwNSw0MiArMjk0LDc4IEBAIHZvaWQgVGlsZWRCYWNraW5nU3Rv
cmU6OmNyZWF0ZVRpbGVzKCkKICAgICAgICAgbV90aWxlQ3JlYXRpb25UaW1lci0+c3RhcnRPbmVT
aG90KG1fdGlsZUNyZWF0aW9uRGVsYXkpOwogfQogCi1JbnRSZWN0IFRpbGVkQmFja2luZ1N0b3Jl
Ojpjb21wdXRlS2VlcFJlY3QoY29uc3QgSW50UmVjdCYgdmlzaWJsZVJlY3QpIGNvbnN0Ci17Ci0g
ICAgSW50UmVjdCByZXN1bHQgPSB2aXNpYmxlUmVjdDsKLSAgICAvLyBJbmZsYXRlcyB0byBib3Ro
IHNpZGVzLCBzbyBkaXZpZGUgdGhlIGluZmxhdGUgZGVsdGEgYnkgMi4KLSAgICByZXN1bHQuaW5m
bGF0ZVgodmlzaWJsZVJlY3Qud2lkdGgoKSAqIChtX2tlZXBBcmVhTXVsdGlwbGllciAtIDEpIC8g
Mik7Ci0gICAgcmVzdWx0LmluZmxhdGVZKHZpc2libGVSZWN0LmhlaWdodCgpICogKG1fa2VlcEFy
ZWFNdWx0aXBsaWVyIC0gMSkgLyAyKTsKLSAgICByZXN1bHQuaW50ZXJzZWN0KGNvbnRlbnRzUmVj
dCgpKTsKLQotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLS8vIEEgbnVsbCB0cmFqZWN0b3J5IHZl
Y3RvciBtZWFucyB0aGF0IHRpbGVzIGludGVyc2VjdGluZyBhbGwgdGhlIGNvdmVyQXJlYSAoaS5l
LiB2aXNpYmxlUmVjdCAqIGNvdmVyTXVsdGlwbGllcikgd2lsbCBiZSBjcmVhdGVkLgotLy8gQSBu
b24tbnVsbCB0cmFqZWN0b3J5IHZlY3RvciB3aWxsIHNocmluayB0aGUgaW50ZXJzZWN0aW9uIHJl
Y3QgdG8gdmlzaWJsZVJlY3QgcGx1cyBpdHMgZXhwYW5zaW9uIGZyb20gaXRzCi0vLyBjZW50ZXIg
dG93YXJkIHRoZSBjb3ZlciBhcmVhIGVkZ2VzIGluIHRoZSBkaXJlY3Rpb24gb2YgdGhlIGdpdmVu
IHZlY3Rvci4KLS8vIEUuZy4gaWYgdmlzaWJsZVJlY3QgPT0gKDEwLDEwKTV4NSBhbmQgY292ZXJN
dWx0aXBsaWVyID09IDMuMDoKLS8vIGEgKDAsMCkgdHJhamVjdG9yeSB2ZWN0b3Igd2lsbCBjcmVh
dGUgdGlsZXMgaW50ZXJzZWN0aW5nICg1LDUpMTV4MTUsCi0vLyBhICgxLDApIHRyYWplY3Rvcnkg
dmVjdG9yIHdpbGwgY3JlYXRlIHRpbGVzIGludGVyc2VjdGluZyAoMTAsMTApMTB4NSwKLS8vIGFu
ZCBhICgxLDEpIHRyYWplY3RvcnkgdmVjdG9yIHdpbGwgY3JlYXRlIHRpbGVzIGludGVyc2VjdGlu
ZyAoMTAsMTApMTB4MTAuCi1JbnRSZWN0IFRpbGVkQmFja2luZ1N0b3JlOjpjb21wdXRlQ292ZXJS
ZWN0KGNvbnN0IEludFJlY3QmIHZpc2libGVSZWN0KSBjb25zdAotewotICAgIEludFJlY3QgcmVz
dWx0ID0gdmlzaWJsZVJlY3Q7Ci0gICAgZmxvYXQgdHJhamVjdG9yeVZlY3Rvck5vcm0gPSBzcXJ0
KHBvdyhtX3Zpc2libGVSZWN0VHJhamVjdG9yeVZlY3Rvci54KCksIDIpICsgcG93KG1fdmlzaWJs
ZVJlY3RUcmFqZWN0b3J5VmVjdG9yLnkoKSwgMikpOwotICAgIGlmICh0cmFqZWN0b3J5VmVjdG9y
Tm9ybSA+IDApIHsKLSAgICAgICAgLy8gTXVsdGlwbHkgdGhlIHZlY3RvciBieSB0aGUgZGlzdGFu
Y2UgdG8gdGhlIGVkZ2Ugb2YgdGhlIGNvdmVyIGFyZWEuCi0gICAgICAgIGZsb2F0IHRyYWplY3Rv
cnlWZWN0b3JNdWx0aXBsaWVyID0gKG1fY292ZXJBcmVhTXVsdGlwbGllciAtIDEpIC8gMjsKLSAg
ICAgICAgLy8gVW5pdGUgdGhlIHZpc2libGUgcmVjdCB3aXRoIGEgImdob3N0IiBvZiB0aGUgdmlz
aWJsZSByZWN0IG1vdmVkIGluIHRoZSBkaXJlY3Rpb24gb2YgdGhlIHRyYWplY3RvcnkgdmVjdG9y
LgotICAgICAgICByZXN1bHQubW92ZShyZXN1bHQud2lkdGgoKSAqIG1fdmlzaWJsZVJlY3RUcmFq
ZWN0b3J5VmVjdG9yLngoKSAvIHRyYWplY3RvcnlWZWN0b3JOb3JtICogdHJhamVjdG9yeVZlY3Rv
ck11bHRpcGxpZXIsCi0gICAgICAgICAgICAgICAgICAgIHJlc3VsdC5oZWlnaHQoKSAqIG1fdmlz
aWJsZVJlY3RUcmFqZWN0b3J5VmVjdG9yLnkoKSAvIHRyYWplY3RvcnlWZWN0b3JOb3JtICogdHJh
amVjdG9yeVZlY3Rvck11bHRpcGxpZXIpOwotICAgICAgICByZXN1bHQudW5pdGUodmlzaWJsZVJl
Y3QpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHJlc3VsdC5pbmZsYXRlWCh2aXNpYmxlUmVjdC53
aWR0aCgpICogKG1fY292ZXJBcmVhTXVsdGlwbGllciAtIDEpIC8gMik7Ci0gICAgICAgIHJlc3Vs
dC5pbmZsYXRlWSh2aXNpYmxlUmVjdC5oZWlnaHQoKSAqIChtX2NvdmVyQXJlYU11bHRpcGxpZXIg
LSAxKSAvIDIpOwordm9pZCBUaWxlZEJhY2tpbmdTdG9yZTo6YWRqdXN0Rm9yQ29udGVudHNSZWN0
KEludFJlY3QmIHJlY3QpIGNvbnN0Cit7CisgICAgSW50UmVjdCBib3VuZHMgPSBjb250ZW50c1Jl
Y3QoKTsKKyAgICBJbnRTaXplIGNhbmRpZGF0ZVNpemUgPSByZWN0LnNpemUoKTsKKworICAgIC8v
IFdlIHdpbGwgdHJ5IHRvIGtlZXAgdGhlIGNvdmVyIGFuZCBrZWVwIHJlY3QgdGhlIHNhbWUgc2l6
ZSBhdCBhbGwgdGltZSwgd2hpY2gKKyAgICAvLyBtaWdodCBub3QgYmUgdGhlIGNhc2Ugd2hlbiBh
dCB0aGUgY29udGVudCBlZGdlcy4KKworICAgIC8vIFdlIHN0YXJ0IGJ5IG1vdmluZyB3aGVuIGF0
IHRoZSBlZGdlcy4KKyAgICByZWN0Lm1vdmUoc3RkOjptYXgoMCwgYm91bmRzLngoKSAtIHJlY3Qu
eCgpKSwgc3RkOjptYXgoMCwgYm91bmRzLnkoKSAtIHJlY3QueSgpKSk7CisgICAgcmVjdC5tb3Zl
KHN0ZDo6bWluKDAsIGJvdW5kcy5tYXhYKCkgLSByZWN0Lm1heFgoKSksIHN0ZDo6bWluKDAsIGJv
dW5kcy5tYXhZKCkgLSByZWN0Lm1heFkoKSkpOworCisgICAgcmVjdC5pbnRlcnNlY3QoYm91bmRz
KTsKKworICAgIGlmIChyZWN0LnNpemUoKSA9PSBjYW5kaWRhdGVTaXplKQorICAgICAgICByZXR1
cm47CisKKyAgICAvLyBFdmVuIG5vdyB3ZSBtaWdodCBjb3ZlciBtb3JlIHRoYW4gdGhlIGNvbnRl
bnQgYXJlYSBzbyBsZXQncyBpbmZsYXRlIGluIHRoZQorICAgIC8vIG9wcG9zaXRlIGRpcmVjdGlv
bnMuCisgICAgaW50IHBpeGVsc0NvdmVyZWQgPSBjYW5kaWRhdGVTaXplLndpZHRoKCkgKiBjYW5k
aWRhdGVTaXplLmhlaWdodCgpOworCisgICAgaWYgKHJlY3Qud2lkdGgoKSAhPSBjYW5kaWRhdGVT
aXplLndpZHRoKCkpCisgICAgICAgIHJlY3QuaW5mbGF0ZVkoKChwaXhlbHNDb3ZlcmVkIC8gcmVj
dC53aWR0aCgpKSAtIHJlY3QuaGVpZ2h0KCkpIC8gMik7CisgICAgaWYgKHJlY3QuaGVpZ2h0KCkg
IT0gY2FuZGlkYXRlU2l6ZS5oZWlnaHQoKSkKKyAgICAgICAgcmVjdC5pbmZsYXRlWCgoKHBpeGVs
c0NvdmVyZWQgLyByZWN0LmhlaWdodCgpKSAtIHJlY3Qud2lkdGgoKSkgLyAyKTsKKworICAgIHJl
Y3QuaW50ZXJzZWN0KGJvdW5kcyk7Cit9CisKK3ZvaWQgVGlsZWRCYWNraW5nU3RvcmU6OmNvbXB1
dGVDb3ZlckFuZEtlZXBSZWN0KGNvbnN0IEludFJlY3QmIHZpc2libGVSZWN0LCBJbnRSZWN0JiBj
b3ZlclJlY3QsIEludFJlY3QmIGtlZXBSZWN0KSBjb25zdAoreworICAgIGNvdmVyUmVjdCA9IHZp
c2libGVSZWN0OworICAgIGtlZXBSZWN0ID0gdmlzaWJsZVJlY3Q7CisKKyAgICAvLyBJZiB3ZSBj
b3ZlciBtb3JlIHRoYXQgdGhlIGFjdHVhbCB2aWV3cG9ydCB3ZSBjYW4gYmUgc21hcnQgYWJvdXQg
d2hpY2ggdGlsZXMgd2UgY2hvb3NlIHRvIHJlbmRlci4KKyAgICBpZiAobV9jb3ZlckFyZWFNdWx0
aXBsaWVyID4gMSkgeworICAgICAgICAvLyBUaGUgaW5pdGlhbCBjb3ZlciBhcmVhIGNvdmVycyBl
cXVhbGx5IGluIGVhY2ggZGlyZWN0aW9uLCBhY2NvcmRpbmcgdG8gdGhlIGNvdmVyQXJlYU11bHRp
cGxpZXIuCisgICAgICAgIGtlZXBSZWN0LmluZmxhdGVYKHZpc2libGVSZWN0LndpZHRoKCkgKiAo
bV9jb3ZlckFyZWFNdWx0aXBsaWVyIC0gMSkgLyAyKTsKKyAgICAgICAga2VlcFJlY3QuaW5mbGF0
ZVkodmlzaWJsZVJlY3QuaGVpZ2h0KCkgKiAobV9jb3ZlckFyZWFNdWx0aXBsaWVyIC0gMSkgLyAy
KTsKKworICAgICAgICBmbG9hdCB0cmFqZWN0b3J5VmVjdG9yTm9ybSA9IHNxcnQocG93KG1fdmlz
aWJsZVJlY3RUcmFqZWN0b3J5VmVjdG9yLngoKSwgMikgKyBwb3cobV92aXNpYmxlUmVjdFRyYWpl
Y3RvcnlWZWN0b3IueSgpLCAyKSk7CisgICAgICAgIGlmICghdHJhamVjdG9yeVZlY3Rvck5vcm0p
IHsKKyAgICAgICAgICAgIC8vIEEgbnVsbCB0cmFqZWN0b3J5IHZlY3RvciAobm8gbW90aW9uKSBt
ZWFucyB0aGF0IHRpbGVzIGZvciB0aGUga2VlcEFyZWEgd2lsbCBiZSBjcmVhdGVkLgorICAgICAg
ICAgICAgY292ZXJSZWN0ID0ga2VlcFJlY3Q7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICAvLyBBIG5vbi1udWxsIHRyYWplY3RvcnkgdmVjdG9yIHdpbGwgc2hyaW5rIHRoZSBjb3ZlcmVk
IHJlY3QgdG8gdmlzaWJsZVJlY3QgcGx1cyBpdHMgZXhwYW5zaW9uIGZyb20gaXRzCisgICAgICAg
ICAgICAvLyBjZW50ZXIgdG93YXJkIHRoZSBjb3ZlciBhcmVhIGVkZ2VzIGluIHRoZSBkaXJlY3Rp
b24gb2YgdGhlIGdpdmVuIHZlY3Rvci4KKworICAgICAgICAgICAgLy8gRS5nLiBpZiB2aXNpYmxl
UmVjdCA9PSAoMTAsMTApNXg1IGFuZCBjb3ZlckFyZWFNdWx0aXBsaWVyID09IDMuMDoKKyAgICAg
ICAgICAgIC8vIGEgKDAsMCkgdHJhamVjdG9yeSB2ZWN0b3Igd2lsbCBjcmVhdGUgdGlsZXMgaW50
ZXJzZWN0aW5nICg1LDUpMTV4MTUsCisgICAgICAgICAgICAvLyBhICgxLDApIHRyYWplY3Rvcnkg
dmVjdG9yIHdpbGwgY3JlYXRlIHRpbGVzIGludGVyc2VjdGluZyAoMTAsMTApMTB4NSwKKyAgICAg
ICAgICAgIC8vIGFuZCBhICgxLDEpIHRyYWplY3RvcnkgdmVjdG9yIHdpbGwgY3JlYXRlIHRpbGVz
IGludGVyc2VjdGluZyAoMTAsMTApMTB4MTAuCisKKyAgICAgICAgICAgIC8vIE11bHRpcGx5IHRo
ZSB2ZWN0b3IgYnkgdGhlIGRpc3RhbmNlIHRvIHRoZSBlZGdlIG9mIHRoZSBjb3ZlciBhcmVhLgor
ICAgICAgICAgICAgZmxvYXQgdHJhamVjdG9yeVZlY3Rvck11bHRpcGxpZXIgPSAobV9jb3ZlckFy
ZWFNdWx0aXBsaWVyIC0gMSkgLyAyOworCisgICAgICAgICAgICAvLyBVbml0ZSB0aGUgdmlzaWJs
ZSByZWN0IHdpdGggYSAiZ2hvc3QiIG9mIHRoZSB2aXNpYmxlIHJlY3QgbW92ZWQgaW4gdGhlIGRp
cmVjdGlvbiBvZiB0aGUgdHJhamVjdG9yeSB2ZWN0b3IuCisgICAgICAgICAgICBjb3ZlclJlY3Qu
bW92ZShjb3ZlclJlY3Qud2lkdGgoKSAqIG1fdmlzaWJsZVJlY3RUcmFqZWN0b3J5VmVjdG9yLngo
KSAvIHRyYWplY3RvcnlWZWN0b3JOb3JtICogdHJhamVjdG9yeVZlY3Rvck11bHRpcGxpZXIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb3ZlclJlY3QuaGVpZ2h0KCkgKiBtX3Zpc2libGVS
ZWN0VHJhamVjdG9yeVZlY3Rvci55KCkgLyB0cmFqZWN0b3J5VmVjdG9yTm9ybSAqIHRyYWplY3Rv
cnlWZWN0b3JNdWx0aXBsaWVyKTsKKworICAgICAgICAgICAgY292ZXJSZWN0LnVuaXRlKHZpc2li
bGVSZWN0KTsKKyAgICAgICAgfQogICAgIH0KLSAgICByZXN1bHQuaW50ZXJzZWN0KGNvbnRlbnRz
UmVjdCgpKTsKIAotICAgIHJldHVybiByZXN1bHQ7CisgICAgQVNTRVJUKGtlZXBSZWN0LmNvbnRh
aW5zKGNvdmVyUmVjdCkpOworCisgICAgLy8gVGhlIGtlZXAgcmVjdCBpcyBhbiBpbmZsYXRlZCB2
ZXJzaW9uIG9mIHRoZSBjb3ZlciByZWN0LCBpbmZsYXRlZCBpbiB0aWxlIGRpbWVuc2lvbnMuCisg
ICAga2VlcFJlY3QuaW5mbGF0ZVgobV90aWxlU2l6ZS53aWR0aCgpIC8gMik7CisgICAga2VlcFJl
Y3QuaW5mbGF0ZVkobV90aWxlU2l6ZS5oZWlnaHQoKSAvIDIpOworCisgICAgYWRqdXN0Rm9yQ29u
dGVudHNSZWN0KGNvdmVyUmVjdCk7CisgICAgYWRqdXN0Rm9yQ29udGVudHNSZWN0KGtlZXBSZWN0
KTsKIH0KIAogYm9vbCBUaWxlZEJhY2tpbmdTdG9yZTo6cmVzaXplRWRnZVRpbGVzKCkKQEAgLTQy
Miw5ICs0NDcsOSBAQCBJbnRSZWN0IFRpbGVkQmFja2luZ1N0b3JlOjpjb250ZW50c1JlY3QoKSBj
b25zdAogSW50UmVjdCBUaWxlZEJhY2tpbmdTdG9yZTo6dGlsZVJlY3RGb3JDb29yZGluYXRlKGNv
bnN0IFRpbGU6OkNvb3JkaW5hdGUmIGNvb3JkaW5hdGUpIGNvbnN0CiB7CiAgICAgSW50UmVjdCBy
ZWN0KGNvb3JkaW5hdGUueCgpICogbV90aWxlU2l6ZS53aWR0aCgpLAotICAgICAgICBjb29yZGlu
YXRlLnkoKSAqIG1fdGlsZVNpemUuaGVpZ2h0KCksCi0gICAgICAgIG1fdGlsZVNpemUud2lkdGgo
KSwKLSAgICAgICAgbV90aWxlU2l6ZS5oZWlnaHQoKSk7CisgICAgICAgICAgICAgICAgIGNvb3Jk
aW5hdGUueSgpICogbV90aWxlU2l6ZS5oZWlnaHQoKSwKKyAgICAgICAgICAgICAgICAgbV90aWxl
U2l6ZS53aWR0aCgpLAorICAgICAgICAgICAgICAgICBtX3RpbGVTaXplLmhlaWdodCgpKTsKIAog
ICAgIHJlY3QuaW50ZXJzZWN0KGNvbnRlbnRzUmVjdCgpKTsKICAgICByZXR1cm4gcmVjdDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RpbGVkQmFja2luZ1N0
b3JlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UaWxlZEJhY2tpbmdTdG9y
ZS5oCmluZGV4IDBhMDJhYzUuLjEwMGUwZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL1RpbGVkQmFja2luZ1N0b3JlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvVGlsZWRCYWNraW5nU3RvcmUuaApAQCAtNTYsMjAgKzU2LDEzIEBA
IHB1YmxpYzoKIAogICAgIHZvaWQgaW52YWxpZGF0ZShjb25zdCBJbnRSZWN0JiBkaXJ0eVJlY3Qp
OwogICAgIHZvaWQgcGFpbnQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50UmVjdCYpOwotICAg
IAorCiAgICAgSW50U2l6ZSB0aWxlU2l6ZSgpIHsgcmV0dXJuIG1fdGlsZVNpemU7IH0KICAgICB2
b2lkIHNldFRpbGVTaXplKGNvbnN0IEludFNpemUmKTsKICAgICAKICAgICBkb3VibGUgdGlsZUNy
ZWF0aW9uRGVsYXkoKSBjb25zdCB7IHJldHVybiBtX3RpbGVDcmVhdGlvbkRlbGF5OyB9CiAgICAg
dm9pZCBzZXRUaWxlQ3JlYXRpb25EZWxheShkb3VibGUgZGVsYXkpOwogICAgIAotICAgIC8vIFRp
bGVkIGFyZSBkcm9wcGVkIG91dHNpZGUgdGhlIGtlZXAgYXJlYSwgYW5kIGNyZWF0ZWQgZm9yIGNv
dmVyIGFyZWEuIFRoZSB2YWx1ZXMgYSByZWxhdGl2ZSB0byB0aGUgdmlld3BvcnQgc2l6ZS4KLSAg
ICB2b2lkIGdldEtlZXBBbmRDb3ZlckFyZWFNdWx0aXBsaWVycyhmbG9hdCYga2VlcE11bHRpcGxp
ZXIsIGZsb2F0JiBjb3Zlck11bHRpcGxpZXIpCi0gICAgewotICAgICAgICBrZWVwTXVsdGlwbGll
ciA9IG1fa2VlcEFyZWFNdWx0aXBsaWVyOwotICAgICAgICBjb3Zlck11bHRpcGxpZXIgPSBtX2Nv
dmVyQXJlYU11bHRpcGxpZXI7Ci0gICAgfQotICAgIHZvaWQgc2V0S2VlcEFuZENvdmVyQXJlYU11
bHRpcGxpZXJzKGZsb2F0IGtlZXBNdWx0aXBsaWVyLCBmbG9hdCBjb3Zlck11bHRpcGxpZXIpOwog
ICAgIHZvaWQgc2V0VmlzaWJsZVJlY3RUcmFqZWN0b3J5VmVjdG9yKGNvbnN0IEZsb2F0UG9pbnQm
KTsKIAogICAgIEludFJlY3QgbWFwVG9Db250ZW50cyhjb25zdCBJbnRSZWN0JikgY29uc3Q7CkBA
IC05MCw4ICs4Myw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCB0aWxlQ3JlYXRpb25UaW1lckZpcmVk
KFRpbGVUaW1lciopOwogICAgIAogICAgIHZvaWQgY3JlYXRlVGlsZXMoKTsKLSAgICBJbnRSZWN0
IGNvbXB1dGVLZWVwUmVjdChjb25zdCBJbnRSZWN0JiB2aXNpYmxlUmVjdCkgY29uc3Q7Ci0gICAg
SW50UmVjdCBjb21wdXRlQ292ZXJSZWN0KGNvbnN0IEludFJlY3QmIHZpc2libGVSZWN0KSBjb25z
dDsKKyAgICB2b2lkIGNvbXB1dGVDb3ZlckFuZEtlZXBSZWN0KGNvbnN0IEludFJlY3QmIHZpc2li
bGVSZWN0LCBJbnRSZWN0JiBjb3ZlclJlY3QsIEludFJlY3QmIGtlZXBSZWN0KSBjb25zdDsKICAg
ICAKICAgICB2b2lkIGNvbW1pdFNjYWxlQ2hhbmdlKCk7CiAKQEAgLTEwMiw2ICs5NCw3IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBzZXRUaWxlKGNvbnN0IFRpbGU6OkNvb3JkaW5hdGUmIGNvb3JkaW5h
dGUsIFBhc3NSZWZQdHI8VGlsZT4gdGlsZSk7CiAgICAgdm9pZCByZW1vdmVUaWxlKGNvbnN0IFRp
bGU6OkNvb3JkaW5hdGUmIGNvb3JkaW5hdGUpOwogCisgICAgdm9pZCBhZGp1c3RGb3JDb250ZW50
c1JlY3QoSW50UmVjdCYgcmVjdCkgY29uc3Q7CiAgICAgSW50UmVjdCBjb250ZW50c1JlY3QoKSBj
b25zdDsKICAgICAKICAgICB2b2lkIHBhaW50Q2hlY2tlclBhdHRlcm4oR3JhcGhpY3NDb250ZXh0
KiwgY29uc3QgSW50UmVjdCYsIGNvbnN0IFRpbGU6OkNvb3JkaW5hdGUmKTsKQEAgLTExOSw3ICsx
MTIsNiBAQCBwcml2YXRlOgogCiAgICAgSW50U2l6ZSBtX3RpbGVTaXplOwogICAgIGRvdWJsZSBt
X3RpbGVDcmVhdGlvbkRlbGF5OwotICAgIGZsb2F0IG1fa2VlcEFyZWFNdWx0aXBsaWVyOwogICAg
IGZsb2F0IG1fY292ZXJBcmVhTXVsdGlwbGllcjsKICAgICBGbG9hdFBvaW50IG1fdmlzaWJsZVJl
Y3RUcmFqZWN0b3J5VmVjdG9yOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9B
cGkvcXdlYnBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwCmluZGV4
IGY5NGQ0NDUuLmRjYWMzYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJw
YWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAKQEAgLTExOTks
NDMgKzExOTksNiBAQCB2b2lkIFFXZWJQYWdlUHJpdmF0ZTo6ZHluYW1pY1Byb3BlcnR5Q2hhbmdl
RXZlbnQoUUR5bmFtaWNQcm9wZXJ0eUNoYW5nZUV2ZW50KiBldgogICAgICAgICAgICAgfQogICAg
ICAgICB9CiAgICAgfQotI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQotICAgIGVsc2UgaWYg
KGV2ZW50LT5wcm9wZXJ0eU5hbWUoKSA9PSAiX3FfVGlsZWRCYWNraW5nU3RvcmVUaWxlU2l6ZSIp
IHsKLSAgICAgICAgV2ViQ29yZTo6RnJhbWUqIGZyYW1lID0gUVdlYkZyYW1lUHJpdmF0ZTo6Y29y
ZShxLT5tYWluRnJhbWUoKSk7Ci0gICAgICAgIGlmICghZnJhbWUtPnRpbGVkQmFja2luZ1N0b3Jl
KCkpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIFFTaXplIHRpbGVTaXplID0gcS0+cHJv
cGVydHkoIl9xX1RpbGVkQmFja2luZ1N0b3JlVGlsZVNpemUiKS50b1NpemUoKTsKLSAgICAgICAg
ZnJhbWUtPnRpbGVkQmFja2luZ1N0b3JlKCktPnNldFRpbGVTaXplKHRpbGVTaXplKTsKLSAgICB9
IGVsc2UgaWYgKGV2ZW50LT5wcm9wZXJ0eU5hbWUoKSA9PSAiX3FfVGlsZWRCYWNraW5nU3RvcmVU
aWxlQ3JlYXRpb25EZWxheSIpIHsKLSAgICAgICAgV2ViQ29yZTo6RnJhbWUqIGZyYW1lID0gUVdl
YkZyYW1lUHJpdmF0ZTo6Y29yZShxLT5tYWluRnJhbWUoKSk7Ci0gICAgICAgIGlmICghZnJhbWUt
PnRpbGVkQmFja2luZ1N0b3JlKCkpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGludCB0
aWxlQ3JlYXRpb25EZWxheSA9IHEtPnByb3BlcnR5KCJfcV9UaWxlZEJhY2tpbmdTdG9yZVRpbGVD
cmVhdGlvbkRlbGF5IikudG9JbnQoKTsKLSAgICAgICAgZnJhbWUtPnRpbGVkQmFja2luZ1N0b3Jl
KCktPnNldFRpbGVDcmVhdGlvbkRlbGF5KHN0YXRpY19jYXN0PGRvdWJsZT4odGlsZUNyZWF0aW9u
RGVsYXkpIC8gMTAwMC4pOwotICAgIH0gZWxzZSBpZiAoZXZlbnQtPnByb3BlcnR5TmFtZSgpID09
ICJfcV9UaWxlZEJhY2tpbmdTdG9yZUtlZXBBcmVhTXVsdGlwbGllciIpIHsKLSAgICAgICAgV2Vi
Q29yZTo6RnJhbWUqIGZyYW1lID0gUVdlYkZyYW1lUHJpdmF0ZTo6Y29yZShxLT5tYWluRnJhbWUo
KSk7Ci0gICAgICAgIGlmICghZnJhbWUtPnRpbGVkQmFja2luZ1N0b3JlKCkpCi0gICAgICAgICAg
ICByZXR1cm47Ci0gICAgICAgIGZsb2F0IGtlZXBNdWx0aXBsaWVyOwotICAgICAgICBmbG9hdCBj
b3Zlck11bHRpcGxpZXI7Ci0gICAgICAgIGZyYW1lLT50aWxlZEJhY2tpbmdTdG9yZSgpLT5nZXRL
ZWVwQW5kQ292ZXJBcmVhTXVsdGlwbGllcnMoa2VlcE11bHRpcGxpZXIsIGNvdmVyTXVsdGlwbGll
cik7Ci0gICAgICAgIFFTaXplRiBxU2l6ZSA9IHEtPnByb3BlcnR5KCJfcV9UaWxlZEJhY2tpbmdT
dG9yZUtlZXBBcmVhTXVsdGlwbGllciIpLnRvU2l6ZUYoKTsKLSAgICAgICAgLy8gc2V0S2VlcEFu
ZENvdmVyQXJlYU11bHRpcGxpZXJzIGRvIG5vdCB1c2UgRmxvYXRTaXplIGFueW1vcmUsIGtlZXAg
b25seSB0aGUgaGVpZ2h0IHBhcnQuCi0gICAgICAgIGtlZXBNdWx0aXBsaWVyID0gcVNpemUuaGVp
Z2h0KCk7Ci0gICAgICAgIGZyYW1lLT50aWxlZEJhY2tpbmdTdG9yZSgpLT5zZXRLZWVwQW5kQ292
ZXJBcmVhTXVsdGlwbGllcnMoa2VlcE11bHRpcGxpZXIsIGNvdmVyTXVsdGlwbGllcik7Ci0gICAg
fSBlbHNlIGlmIChldmVudC0+cHJvcGVydHlOYW1lKCkgPT0gIl9xX1RpbGVkQmFja2luZ1N0b3Jl
Q292ZXJBcmVhTXVsdGlwbGllciIpIHsKLSAgICAgICAgV2ViQ29yZTo6RnJhbWUqIGZyYW1lID0g
UVdlYkZyYW1lUHJpdmF0ZTo6Y29yZShxLT5tYWluRnJhbWUoKSk7Ci0gICAgICAgIGlmICghZnJh
bWUtPnRpbGVkQmFja2luZ1N0b3JlKCkpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGZs
b2F0IGtlZXBNdWx0aXBsaWVyOwotICAgICAgICBmbG9hdCBjb3Zlck11bHRpcGxpZXI7Ci0gICAg
ICAgIGZyYW1lLT50aWxlZEJhY2tpbmdTdG9yZSgpLT5nZXRLZWVwQW5kQ292ZXJBcmVhTXVsdGlw
bGllcnMoa2VlcE11bHRpcGxpZXIsIGNvdmVyTXVsdGlwbGllcik7Ci0gICAgICAgIFFTaXplRiBx
U2l6ZSA9IHEtPnByb3BlcnR5KCJfcV9UaWxlZEJhY2tpbmdTdG9yZUNvdmVyQXJlYU11bHRpcGxp
ZXIiKS50b1NpemVGKCk7Ci0gICAgICAgIC8vIHNldEtlZXBBbmRDb3ZlckFyZWFNdWx0aXBsaWVy
cyBkbyBub3QgdXNlIEZsb2F0U2l6ZSBhbnltb3JlLCBrZWVwIG9ubHkgdGhlIGhlaWdodCBwYXJ0
LgotICAgICAgICBjb3Zlck11bHRpcGxpZXIgPSBxU2l6ZS5oZWlnaHQoKTsKLSAgICAgICAgZnJh
bWUtPnRpbGVkQmFja2luZ1N0b3JlKCktPnNldEtlZXBBbmRDb3ZlckFyZWFNdWx0aXBsaWVycyhr
ZWVwTXVsdGlwbGllciwgY292ZXJNdWx0aXBsaWVyKTsKLSAgICB9Ci0jZW5kaWYKICAgICBlbHNl
IGlmIChldmVudC0+cHJvcGVydHlOYW1lKCkgPT0gIl9xX3dlYkluc3BlY3RvclNlcnZlclBvcnQi
KSB7CiAgICAgICAgIEluc3BlY3RvclNlcnZlclF0KiBpbnNwZWN0b3JTZXJ2ZXIgPSBJbnNwZWN0
b3JTZXJ2ZXJRdDo6c2VydmVyKCk7CiAgICAgICAgIGluc3BlY3RvclNlcnZlci0+bGlzdGVuKGlu
c3BlY3RvclNlcnZlclBvcnQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IGNhYWI0ZTYuLmFjZTJmNzEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDItMDkgIEtlbm5ldGggUm9o
ZGUgQ2hyaXN0aWFuc2VuICA8a2VubmV0aEB3ZWJraXQub3JnPgorCisgICAgICAgIFtRdF0gQmUg
c21hcnRlZCB3aXRoIHRpbGUgdXNhZ2VzIGR1cmluZyB0aWxpbmcKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4MjQzCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIGludGVybmFsIEFQSSB1c2VkIGJ5
IFN5bWJpYW4uCisKKyAgICAgICAgKiBBcGkvcXdlYnBhZ2UuY3BwOgorICAgICAgICAoUVdlYlBh
Z2VQcml2YXRlOjpkeW5hbWljUHJvcGVydHlDaGFuZ2VFdmVudCk6CisKIDIwMTItMDItMDYgIENh
aW8gTWFyY2VsbyBkZSBPbGl2ZWlyYSBGaWxobyAgPGNhaW8ub2xpdmVpcmFAb3BlbmJvc3NhLm9y
Zz4KIAogICAgICAgICBQcm92aWRlIG1vcmUgYXR0cmlidXRlIG1ldGhvZHMgaW4gRWxlbWVudAot
LSAKMS43LjUuNAoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127150</attachid>
            <date>2012-02-15 03:20:36 -0800</date>
            <delta_ts>2012-02-15 05:01:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78243-20120215122034.patch</filename>
            <type>text/plain</type>
            <size>17230</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3NzA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjRlN2Q3YWFhYzdlMTk5
YmNhNGY2ZGE3NzNmMDZiNjg0Yzk4ZjVlMC4uMjNjMjgxMDFhNmVlY2EzYzE1M2E5ZTg1ODEwYzM4
NzA1ZjgyNjg4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTAyLTE0ICBLZW5u
ZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKworICAgICAgICBb
UXRdIEJlIHNtYXJ0ZXIgd2l0aCB0aWxlIHVzYWdlcyBkdXJpbmcgdGlsaW5nCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODI0MworCisgICAgICAgIFJl
dmlld2VkIGJ5IFNpbW9uIEhhdXNtYW5uLgorCisgICAgICAgIFRoZSBrZWVwIHJlY3QgdXNlZCB0
byBrbm93IHdoYXQgZXhpc3RpbmcgdGlsZXMgdG8ga2VlcCBhcm91bmQsIGlzIG5vdyBhCisgICAg
ICAgIHBhZGRpbmcgKGluIHRpbGUgZGltZW5zaW9ucykgYXJvdW5kIHRoZSB1c3VhbCBjb3ZlciBy
ZWN0LiBXaXRoIHVzdWFsLAorICAgICAgICBJIG1lYW4gdG8gcG9pbnQgb3V0IHRoYXQgd2UgdGFr
ZSBvdXIgcGFubmluZyBvcHRpbWl6YXRpb24gaW50byBhY2NvdW50LgorCisgICAgICAgIFdlIGFs
c28gZG8gYSBnb29kIGVmZm9ydCBhdCBrZWVwaW5nIHRoZSBhbW91bnQgb2YgdGlsZXMgc3RlYWR5
LCBieSBub3QKKyAgICAgICAgc2ltcGx5IGludGVyc2VjdGluZyBvdXIgYXJlYXMgd2l0aCB0aGUg
Y29udGVudFJlY3QsIGJ1dCBtb3ZpbmcgaXQKKyAgICAgICAgZmlyc3QgaW50byBsZWdhbCBib3Vu
ZHMgYW5kIHRoZW4gZXhwYW5kaW5nIGluIG9wcG9zaXRlIGRpcmVjdGlvbiB0bworICAgICAgICBj
b3ZlciBhIHNpbWlsYXIgYW1vdW50IG9mIHBpeGVscy4KKworICAgICAgICBJbiB0aGUgZnV0dXJl
IHRoZSBjb3ZlciBhcmVhIHNob3VsZCBiZSBjYWxjdWxhdGVkIGdpdmVuIGF2YWlsYWJsZQorICAg
ICAgICBzeXN0ZW0gbWVtb3J5LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvVGlsZWRC
YWNraW5nU3RvcmUuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpU
aWxlZEJhY2tpbmdTdG9yZTo6VGlsZWRCYWNraW5nU3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6
VGlsZWRCYWNraW5nU3RvcmU6OmNyZWF0ZVRpbGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbGVk
QmFja2luZ1N0b3JlOjphZGp1c3RGb3JDb250ZW50c1JlY3QpOgorICAgICAgICAoV2ViQ29yZTo6
VGlsZWRCYWNraW5nU3RvcmU6OmNvbXB1dGVDb3ZlckFuZEtlZXBSZWN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlRpbGVkQmFja2luZ1N0b3JlOjp0aWxlUmVjdEZvckNvb3JkaW5hdGUpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL1RpbGVkQmFja2luZ1N0b3JlLmg6CisgICAgICAgIChUaWxl
ZEJhY2tpbmdTdG9yZSk6CisKIDIwMTItMDItMTQgIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0Bj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogTWFrZSBTY3JpcHRzTmF2aWdh
dG9yIGRlZmF1bHQgZmlsZSBzZWxlY3Rvci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggMjNjNWU3NmMwZTQ2
NzljNGMzNmEwNDBlNmU5ZDg1Mzk1NWIxMzQxMS4uNTJhMTdhZTc5MzViNDNlZTkwZmI0NWVhMWMw
NGFkYTM3OWI2MWY5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wMi0x
NCAgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRoQHdlYmtpdC5vcmc+CisKKyAg
ICAgICAgW1F0XSBCZSBzbWFydGVkIHdpdGggdGlsZSB1c2FnZXMgZHVyaW5nIHRpbGluZworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgyNDMKKworICAg
ICAgICBSZXZpZXdlZCBieSBTaW1vbiBIYXVzbWFubi4KKworICAgICAgICBSZW1vdmUgaW50ZXJu
YWwgQVBJIHVzZWQgYnkgU3ltYmlhbi4KKworICAgICAgICAqIEFwaS9xd2VicGFnZS5jcHA6Cisg
ICAgICAgIChRV2ViUGFnZVByaXZhdGU6OmR5bmFtaWNQcm9wZXJ0eUNoYW5nZUV2ZW50KToKKwog
MjAxMi0wMi0xMSAgTmlrb2xhcyBaaW1tZXJtYW5uICA8bnppbW1lcm1hbm5AcmltLmNvbT4KIAog
ICAgICAgICBDb252ZXJ0IHN2Zy9hbmltYXRpb25zIHRvIHVzZSBTTUlMIG1ldGhvZHMgZm9yIGRy
aXZpbmcgdGhlIHRpbWVsaW5lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9UaWxlZEJhY2tpbmdTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9UaWxlZEJhY2tpbmdTdG9yZS5jcHAKaW5kZXggY2ViNDg5ZTYwNTgyZTgxZmYyZWM2
YThkODNjN2I5NDBkMGMyNTZjYy4uNzU1YTg2NTgyNTIzNTBmMDg0OTU0NzFmMTkzZjllNDgxODg5
OTA3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGlsZWRC
YWNraW5nU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1Rp
bGVkQmFja2luZ1N0b3JlLmNwcApAQCAtMjcsOCArMjcsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgCi1zdGF0aWMgY29uc3QgaW50IGRlZmF1bHRUaWxlV2lkdGggPSA1MTI7Ci1zdGF0
aWMgY29uc3QgaW50IGRlZmF1bHRUaWxlSGVpZ2h0ID0gNTEyOworc3RhdGljIGNvbnN0IGludCBk
ZWZhdWx0VGlsZURpbWVuc2lvbiA9IDUxMjsKIAogc3RhdGljIEludFBvaW50IGlubmVyQm90dG9t
UmlnaHQoY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKQEAgLTQxLDE1ICs0MCwxMyBAQCBUaWxlZEJh
Y2tpbmdTdG9yZTo6VGlsZWRCYWNraW5nU3RvcmUoVGlsZWRCYWNraW5nU3RvcmVDbGllbnQqIGNs
aWVudCwgUGFzc093blB0cgogICAgICwgbV9iYWNrZW5kKGJhY2tlbmQpCiAgICAgLCBtX3RpbGVC
dWZmZXJVcGRhdGVUaW1lcihuZXcgVGlsZVRpbWVyKHRoaXMsICZUaWxlZEJhY2tpbmdTdG9yZTo6
dGlsZUJ1ZmZlclVwZGF0ZVRpbWVyRmlyZWQpKQogICAgICwgbV90aWxlQ3JlYXRpb25UaW1lcihu
ZXcgVGlsZVRpbWVyKHRoaXMsICZUaWxlZEJhY2tpbmdTdG9yZTo6dGlsZUNyZWF0aW9uVGltZXJG
aXJlZCkpCi0gICAgLCBtX3RpbGVTaXplKGRlZmF1bHRUaWxlV2lkdGgsIGRlZmF1bHRUaWxlSGVp
Z2h0KQorICAgICwgbV90aWxlU2l6ZShkZWZhdWx0VGlsZURpbWVuc2lvbiwgZGVmYXVsdFRpbGVE
aW1lbnNpb24pCiAgICAgLCBtX3RpbGVDcmVhdGlvbkRlbGF5KDAuMDEpCi0gICAgLCBtX2tlZXBB
cmVhTXVsdGlwbGllcigzLjVmKQotICAgICwgbV9jb3ZlckFyZWFNdWx0aXBsaWVyKDIuNWYpCisg
ICAgLCBtX2NvdmVyQXJlYU11bHRpcGxpZXIoMi4wZikKICAgICAsIG1fY29udGVudHNTY2FsZSgx
LmYpCiAgICAgLCBtX3BlbmRpbmdTY2FsZSgwKQogICAgICwgbV9jb250ZW50c0Zyb3plbihmYWxz
ZSkKIHsKLSAgICBBU1NFUlQobV9jb3ZlckFyZWFNdWx0aXBsaWVyIDw9IG1fa2VlcEFyZWFNdWx0
aXBsaWVyKTsKIH0KIAogVGlsZWRCYWNraW5nU3RvcmU6On5UaWxlZEJhY2tpbmdTdG9yZSgpCkBA
IC01Nyw3ICs1NCw3IEBAIFRpbGVkQmFja2luZ1N0b3JlOjp+VGlsZWRCYWNraW5nU3RvcmUoKQog
ICAgIGRlbGV0ZSBtX3RpbGVCdWZmZXJVcGRhdGVUaW1lcjsKICAgICBkZWxldGUgbV90aWxlQ3Jl
YXRpb25UaW1lcjsKIH0KLSAgICAKKwogdm9pZCBUaWxlZEJhY2tpbmdTdG9yZTo6c2V0VGlsZVNp
emUoY29uc3QgSW50U2l6ZSYgc2l6ZSkKIHsKICAgICBtX3RpbGVTaXplID0gc2l6ZTsKQEAgLTcw
LDE0ICs2Nyw2IEBAIHZvaWQgVGlsZWRCYWNraW5nU3RvcmU6OnNldFRpbGVDcmVhdGlvbkRlbGF5
KGRvdWJsZSBkZWxheSkKICAgICBtX3RpbGVDcmVhdGlvbkRlbGF5ID0gZGVsYXk7CiB9CiAKLXZv
aWQgVGlsZWRCYWNraW5nU3RvcmU6OnNldEtlZXBBbmRDb3ZlckFyZWFNdWx0aXBsaWVycyhmbG9h
dCBrZWVwTXVsdGlwbGllciwgZmxvYXQgY292ZXJNdWx0aXBsaWVyKQotewotICAgIEFTU0VSVChj
b3Zlck11bHRpcGxpZXIgPD0ga2VlcE11bHRpcGxpZXIpOwotICAgIG1fa2VlcEFyZWFNdWx0aXBs
aWVyID0ga2VlcE11bHRpcGxpZXI7Ci0gICAgbV9jb3ZlckFyZWFNdWx0aXBsaWVyID0gY292ZXJN
dWx0aXBsaWVyOwotICAgIHN0YXJ0VGlsZUNyZWF0aW9uVGltZXIoKTsKLX0KLQogdm9pZCBUaWxl
ZEJhY2tpbmdTdG9yZTo6c2V0VmlzaWJsZVJlY3RUcmFqZWN0b3J5VmVjdG9yKGNvbnN0IEZsb2F0
UG9pbnQmIHZlY3RvcikKIHsKICAgICBpZiAobV92aXNpYmxlUmVjdFRyYWplY3RvcnlWZWN0b3Ig
PT0gdmVjdG9yKQpAQCAtMjU2LDE4ICsyNDUsMTggQEAgdm9pZCBUaWxlZEJhY2tpbmdTdG9yZTo6
Y3JlYXRlVGlsZXMoKQogICAgIC8vIFJlc2l6ZSB0aWxlcyBvbiBlZGdlcyBpbiBjYXNlIHRoZSBj
b250ZW50cyBzaXplIGhhcyBjaGFuZ2VkLgogICAgIGJvb2wgZGlkUmVzaXplVGlsZXMgPSByZXNp
emVFZGdlVGlsZXMoKTsKIAotICAgIEludFJlY3Qga2VlcFJlY3QgPSBjb21wdXRlS2VlcFJlY3Qo
dmlzaWJsZVJlY3QpOwotICAgIAorICAgIEludFJlY3Qga2VlcFJlY3Q7CisgICAgSW50UmVjdCBj
b3ZlclJlY3Q7CisgICAgY29tcHV0ZUNvdmVyQW5kS2VlcFJlY3QodmlzaWJsZVJlY3QsIGNvdmVy
UmVjdCwga2VlcFJlY3QpOworCiAgICAgZHJvcFRpbGVzT3V0c2lkZVJlY3Qoa2VlcFJlY3QpOwog
ICAgIAotICAgIEludFJlY3QgY292ZXJSZWN0ID0gY29tcHV0ZUNvdmVyUmVjdCh2aXNpYmxlUmVj
dCk7Ci0gICAgQVNTRVJUKGtlZXBSZWN0LmNvbnRhaW5zKGNvdmVyUmVjdCkpOwotICAgIAogICAg
IC8vIFNlYXJjaCBmb3IgdGhlIHRpbGUgcG9zaXRpb24gY2xvc2VzdCB0byB0aGUgdmlld3BvcnQg
Y2VudGVyIHRoYXQgZG9lcyBub3QgeWV0IGNvbnRhaW4gYSB0aWxlLiAKICAgICAvLyBXaGljaCBw
b3NpdGlvbiBpcyBjb25zaWRlcmVkIHRoZSBjbG9zZXN0IGRlcGVuZHMgb24gdGhlIHRpbGVEaXN0
YW5jZSBmdW5jdGlvbi4KICAgICBkb3VibGUgc2hvcnRlc3REaXN0YW5jZSA9IHN0ZDo6bnVtZXJp
Y19saW1pdHM8ZG91YmxlPjo6aW5maW5pdHkoKTsKICAgICBWZWN0b3I8VGlsZTo6Q29vcmRpbmF0
ZT4gdGlsZXNUb0NyZWF0ZTsKICAgICB1bnNpZ25lZCByZXF1aXJlZFRpbGVDb3VudCA9IDA7CisK
ICAgICBUaWxlOjpDb29yZGluYXRlIHRvcExlZnQgPSB0aWxlQ29vcmRpbmF0ZUZvclBvaW50KGNv
dmVyUmVjdC5sb2NhdGlvbigpKTsKICAgICBUaWxlOjpDb29yZGluYXRlIGJvdHRvbVJpZ2h0ID0g
dGlsZUNvb3JkaW5hdGVGb3JQb2ludChpbm5lckJvdHRvbVJpZ2h0KGNvdmVyUmVjdCkpOwogICAg
IGZvciAodW5zaWduZWQgeUNvb3JkaW5hdGUgPSB0b3BMZWZ0LnkoKTsgeUNvb3JkaW5hdGUgPD0g
Ym90dG9tUmlnaHQueSgpOyArK3lDb29yZGluYXRlKSB7CkBAIC0yODcsNyArMjc2LDcgQEAgdm9p
ZCBUaWxlZEJhY2tpbmdTdG9yZTo6Y3JlYXRlVGlsZXMoKQogICAgICAgICAgICAgdGlsZXNUb0Ny
ZWF0ZS5hcHBlbmQoY3VycmVudENvb3JkaW5hdGUpOwogICAgICAgICB9CiAgICAgfQotICAgIAor
CiAgICAgLy8gTm93IGNvbnN0cnVjdCB0aGUgdGlsZShzKQogICAgIHVuc2lnbmVkIHRpbGVzVG9D
cmVhdGVDb3VudCA9IHRpbGVzVG9DcmVhdGUuc2l6ZSgpOwogICAgIGZvciAodW5zaWduZWQgbiA9
IDA7IG4gPCB0aWxlc1RvQ3JlYXRlQ291bnQ7ICsrbikgewpAQCAtMzA1LDQyICsyOTQsNzggQEAg
dm9pZCBUaWxlZEJhY2tpbmdTdG9yZTo6Y3JlYXRlVGlsZXMoKQogICAgICAgICBtX3RpbGVDcmVh
dGlvblRpbWVyLT5zdGFydE9uZVNob3QobV90aWxlQ3JlYXRpb25EZWxheSk7CiB9CiAKLUludFJl
Y3QgVGlsZWRCYWNraW5nU3RvcmU6OmNvbXB1dGVLZWVwUmVjdChjb25zdCBJbnRSZWN0JiB2aXNp
YmxlUmVjdCkgY29uc3QKLXsKLSAgICBJbnRSZWN0IHJlc3VsdCA9IHZpc2libGVSZWN0OwotICAg
IC8vIEluZmxhdGVzIHRvIGJvdGggc2lkZXMsIHNvIGRpdmlkZSB0aGUgaW5mbGF0ZSBkZWx0YSBi
eSAyLgotICAgIHJlc3VsdC5pbmZsYXRlWCh2aXNpYmxlUmVjdC53aWR0aCgpICogKG1fa2VlcEFy
ZWFNdWx0aXBsaWVyIC0gMSkgLyAyKTsKLSAgICByZXN1bHQuaW5mbGF0ZVkodmlzaWJsZVJlY3Qu
aGVpZ2h0KCkgKiAobV9rZWVwQXJlYU11bHRpcGxpZXIgLSAxKSAvIDIpOwotICAgIHJlc3VsdC5p
bnRlcnNlY3QoY29udGVudHNSZWN0KCkpOwotCi0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotLy8g
QSBudWxsIHRyYWplY3RvcnkgdmVjdG9yIG1lYW5zIHRoYXQgdGlsZXMgaW50ZXJzZWN0aW5nIGFs
bCB0aGUgY292ZXJBcmVhIChpLmUuIHZpc2libGVSZWN0ICogY292ZXJNdWx0aXBsaWVyKSB3aWxs
IGJlIGNyZWF0ZWQuCi0vLyBBIG5vbi1udWxsIHRyYWplY3RvcnkgdmVjdG9yIHdpbGwgc2hyaW5r
IHRoZSBpbnRlcnNlY3Rpb24gcmVjdCB0byB2aXNpYmxlUmVjdCBwbHVzIGl0cyBleHBhbnNpb24g
ZnJvbSBpdHMKLS8vIGNlbnRlciB0b3dhcmQgdGhlIGNvdmVyIGFyZWEgZWRnZXMgaW4gdGhlIGRp
cmVjdGlvbiBvZiB0aGUgZ2l2ZW4gdmVjdG9yLgotLy8gRS5nLiBpZiB2aXNpYmxlUmVjdCA9PSAo
MTAsMTApNXg1IGFuZCBjb3Zlck11bHRpcGxpZXIgPT0gMy4wOgotLy8gYSAoMCwwKSB0cmFqZWN0
b3J5IHZlY3RvciB3aWxsIGNyZWF0ZSB0aWxlcyBpbnRlcnNlY3RpbmcgKDUsNSkxNXgxNSwKLS8v
IGEgKDEsMCkgdHJhamVjdG9yeSB2ZWN0b3Igd2lsbCBjcmVhdGUgdGlsZXMgaW50ZXJzZWN0aW5n
ICgxMCwxMCkxMHg1LAotLy8gYW5kIGEgKDEsMSkgdHJhamVjdG9yeSB2ZWN0b3Igd2lsbCBjcmVh
dGUgdGlsZXMgaW50ZXJzZWN0aW5nICgxMCwxMCkxMHgxMC4KLUludFJlY3QgVGlsZWRCYWNraW5n
U3RvcmU6OmNvbXB1dGVDb3ZlclJlY3QoY29uc3QgSW50UmVjdCYgdmlzaWJsZVJlY3QpIGNvbnN0
Ci17Ci0gICAgSW50UmVjdCByZXN1bHQgPSB2aXNpYmxlUmVjdDsKLSAgICBmbG9hdCB0cmFqZWN0
b3J5VmVjdG9yTm9ybSA9IHNxcnQocG93KG1fdmlzaWJsZVJlY3RUcmFqZWN0b3J5VmVjdG9yLngo
KSwgMikgKyBwb3cobV92aXNpYmxlUmVjdFRyYWplY3RvcnlWZWN0b3IueSgpLCAyKSk7Ci0gICAg
aWYgKHRyYWplY3RvcnlWZWN0b3JOb3JtID4gMCkgewotICAgICAgICAvLyBNdWx0aXBseSB0aGUg
dmVjdG9yIGJ5IHRoZSBkaXN0YW5jZSB0byB0aGUgZWRnZSBvZiB0aGUgY292ZXIgYXJlYS4KLSAg
ICAgICAgZmxvYXQgdHJhamVjdG9yeVZlY3Rvck11bHRpcGxpZXIgPSAobV9jb3ZlckFyZWFNdWx0
aXBsaWVyIC0gMSkgLyAyOwotICAgICAgICAvLyBVbml0ZSB0aGUgdmlzaWJsZSByZWN0IHdpdGgg
YSAiZ2hvc3QiIG9mIHRoZSB2aXNpYmxlIHJlY3QgbW92ZWQgaW4gdGhlIGRpcmVjdGlvbiBvZiB0
aGUgdHJhamVjdG9yeSB2ZWN0b3IuCi0gICAgICAgIHJlc3VsdC5tb3ZlKHJlc3VsdC53aWR0aCgp
ICogbV92aXNpYmxlUmVjdFRyYWplY3RvcnlWZWN0b3IueCgpIC8gdHJhamVjdG9yeVZlY3Rvck5v
cm0gKiB0cmFqZWN0b3J5VmVjdG9yTXVsdGlwbGllciwKLSAgICAgICAgICAgICAgICAgICAgcmVz
dWx0LmhlaWdodCgpICogbV92aXNpYmxlUmVjdFRyYWplY3RvcnlWZWN0b3IueSgpIC8gdHJhamVj
dG9yeVZlY3Rvck5vcm0gKiB0cmFqZWN0b3J5VmVjdG9yTXVsdGlwbGllcik7Ci0gICAgICAgIHJl
c3VsdC51bml0ZSh2aXNpYmxlUmVjdCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgcmVzdWx0Lmlu
ZmxhdGVYKHZpc2libGVSZWN0LndpZHRoKCkgKiAobV9jb3ZlckFyZWFNdWx0aXBsaWVyIC0gMSkg
LyAyKTsKLSAgICAgICAgcmVzdWx0LmluZmxhdGVZKHZpc2libGVSZWN0LmhlaWdodCgpICogKG1f
Y292ZXJBcmVhTXVsdGlwbGllciAtIDEpIC8gMik7Cit2b2lkIFRpbGVkQmFja2luZ1N0b3JlOjph
ZGp1c3RGb3JDb250ZW50c1JlY3QoSW50UmVjdCYgcmVjdCkgY29uc3QKK3sKKyAgICBJbnRSZWN0
IGJvdW5kcyA9IGNvbnRlbnRzUmVjdCgpOworICAgIEludFNpemUgY2FuZGlkYXRlU2l6ZSA9IHJl
Y3Quc2l6ZSgpOworCisgICAgLy8gV2Ugd2lsbCB0cnkgdG8ga2VlcCB0aGUgY292ZXIgYW5kIGtl
ZXAgcmVjdCB0aGUgc2FtZSBzaXplIGF0IGFsbCB0aW1lLCB3aGljaAorICAgIC8vIG1pZ2h0IG5v
dCBiZSB0aGUgY2FzZSB3aGVuIGF0IHRoZSBjb250ZW50IGVkZ2VzLgorCisgICAgLy8gV2Ugc3Rh
cnQgYnkgbW92aW5nIHdoZW4gYXQgdGhlIGVkZ2VzLgorICAgIHJlY3QubW92ZShzdGQ6Om1heCgw
LCBib3VuZHMueCgpIC0gcmVjdC54KCkpLCBzdGQ6Om1heCgwLCBib3VuZHMueSgpIC0gcmVjdC55
KCkpKTsKKyAgICByZWN0Lm1vdmUoc3RkOjptaW4oMCwgYm91bmRzLm1heFgoKSAtIHJlY3QubWF4
WCgpKSwgc3RkOjptaW4oMCwgYm91bmRzLm1heFkoKSAtIHJlY3QubWF4WSgpKSk7CisKKyAgICBy
ZWN0LmludGVyc2VjdChib3VuZHMpOworCisgICAgaWYgKHJlY3Quc2l6ZSgpID09IGNhbmRpZGF0
ZVNpemUpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIEV2ZW4gbm93IHdlIG1pZ2h0IGNvdmVy
IG1vcmUgdGhhbiB0aGUgY29udGVudCBhcmVhIHNvIGxldCdzIGluZmxhdGUgaW4gdGhlCisgICAg
Ly8gb3Bwb3NpdGUgZGlyZWN0aW9ucy4KKyAgICBpbnQgcGl4ZWxzQ292ZXJlZCA9IGNhbmRpZGF0
ZVNpemUud2lkdGgoKSAqIGNhbmRpZGF0ZVNpemUuaGVpZ2h0KCk7CisKKyAgICBpZiAocmVjdC53
aWR0aCgpICE9IGNhbmRpZGF0ZVNpemUud2lkdGgoKSkKKyAgICAgICAgcmVjdC5pbmZsYXRlWSgo
KHBpeGVsc0NvdmVyZWQgLyByZWN0LndpZHRoKCkpIC0gcmVjdC5oZWlnaHQoKSkgLyAyKTsKKyAg
ICBpZiAocmVjdC5oZWlnaHQoKSAhPSBjYW5kaWRhdGVTaXplLmhlaWdodCgpKQorICAgICAgICBy
ZWN0LmluZmxhdGVYKCgocGl4ZWxzQ292ZXJlZCAvIHJlY3QuaGVpZ2h0KCkpIC0gcmVjdC53aWR0
aCgpKSAvIDIpOworCisgICAgcmVjdC5pbnRlcnNlY3QoYm91bmRzKTsKK30KKwordm9pZCBUaWxl
ZEJhY2tpbmdTdG9yZTo6Y29tcHV0ZUNvdmVyQW5kS2VlcFJlY3QoY29uc3QgSW50UmVjdCYgdmlz
aWJsZVJlY3QsIEludFJlY3QmIGNvdmVyUmVjdCwgSW50UmVjdCYga2VlcFJlY3QpIGNvbnN0Cit7
CisgICAgY292ZXJSZWN0ID0gdmlzaWJsZVJlY3Q7CisgICAga2VlcFJlY3QgPSB2aXNpYmxlUmVj
dDsKKworICAgIC8vIElmIHdlIGNvdmVyIG1vcmUgdGhhdCB0aGUgYWN0dWFsIHZpZXdwb3J0IHdl
IGNhbiBiZSBzbWFydCBhYm91dCB3aGljaCB0aWxlcyB3ZSBjaG9vc2UgdG8gcmVuZGVyLgorICAg
IGlmIChtX2NvdmVyQXJlYU11bHRpcGxpZXIgPiAxKSB7CisgICAgICAgIC8vIFRoZSBpbml0aWFs
IGNvdmVyIGFyZWEgY292ZXJzIGVxdWFsbHkgaW4gZWFjaCBkaXJlY3Rpb24sIGFjY29yZGluZyB0
byB0aGUgY292ZXJBcmVhTXVsdGlwbGllci4KKyAgICAgICAgY292ZXJSZWN0LmluZmxhdGVYKHZp
c2libGVSZWN0LndpZHRoKCkgKiAobV9jb3ZlckFyZWFNdWx0aXBsaWVyIC0gMSkgLyAyKTsKKyAg
ICAgICAgY292ZXJSZWN0LmluZmxhdGVZKHZpc2libGVSZWN0LmhlaWdodCgpICogKG1fY292ZXJB
cmVhTXVsdGlwbGllciAtIDEpIC8gMik7CisgICAgICAgIGtlZXBSZWN0ID0gY292ZXJSZWN0Owor
CisgICAgICAgIGZsb2F0IHRyYWplY3RvcnlWZWN0b3JOb3JtID0gc3FydChwb3cobV92aXNpYmxl
UmVjdFRyYWplY3RvcnlWZWN0b3IueCgpLCAyKSArIHBvdyhtX3Zpc2libGVSZWN0VHJhamVjdG9y
eVZlY3Rvci55KCksIDIpKTsKKyAgICAgICAgaWYgKHRyYWplY3RvcnlWZWN0b3JOb3JtKSB7Cisg
ICAgICAgICAgICAvLyBBIG51bGwgdHJhamVjdG9yeSB2ZWN0b3IgKG5vIG1vdGlvbikgbWVhbnMg
dGhhdCB0aWxlcyBmb3IgdGhlIGNvdmVyQXJlYSB3aWxsIGJlIGNyZWF0ZWQuCisgICAgICAgICAg
ICAvLyBBIG5vbi1udWxsIHRyYWplY3RvcnkgdmVjdG9yIHdpbGwgc2hyaW5rIHRoZSBjb3ZlcmVk
IHJlY3QgdG8gdmlzaWJsZVJlY3QgcGx1cyBpdHMgZXhwYW5zaW9uIGZyb20gaXRzCisgICAgICAg
ICAgICAvLyBjZW50ZXIgdG93YXJkIHRoZSBjb3ZlciBhcmVhIGVkZ2VzIGluIHRoZSBkaXJlY3Rp
b24gb2YgdGhlIGdpdmVuIHZlY3Rvci4KKworICAgICAgICAgICAgLy8gRS5nLiBpZiB2aXNpYmxl
UmVjdCA9PSAoMTAsMTApNXg1IGFuZCBjb3ZlckFyZWFNdWx0aXBsaWVyID09IDMuMDoKKyAgICAg
ICAgICAgIC8vIGEgKDAsMCkgdHJhamVjdG9yeSB2ZWN0b3Igd2lsbCBjcmVhdGUgdGlsZXMgaW50
ZXJzZWN0aW5nICg1LDUpMTV4MTUsCisgICAgICAgICAgICAvLyBhICgxLDApIHRyYWplY3Rvcnkg
dmVjdG9yIHdpbGwgY3JlYXRlIHRpbGVzIGludGVyc2VjdGluZyAoMTAsMTApMTB4NSwKKyAgICAg
ICAgICAgIC8vIGFuZCBhICgxLDEpIHRyYWplY3RvcnkgdmVjdG9yIHdpbGwgY3JlYXRlIHRpbGVz
IGludGVyc2VjdGluZyAoMTAsMTApMTB4MTAuCisKKyAgICAgICAgICAgIC8vIE11bHRpcGx5IHRo
ZSB2ZWN0b3IgYnkgdGhlIGRpc3RhbmNlIHRvIHRoZSBlZGdlIG9mIHRoZSBjb3ZlciBhcmVhLgor
ICAgICAgICAgICAgZmxvYXQgdHJhamVjdG9yeVZlY3Rvck11bHRpcGxpZXIgPSAobV9jb3ZlckFy
ZWFNdWx0aXBsaWVyIC0gMSkgLyAyOworCisgICAgICAgICAgICAvLyBVbml0ZSB0aGUgdmlzaWJs
ZSByZWN0IHdpdGggYSAiZ2hvc3QiIG9mIHRoZSB2aXNpYmxlIHJlY3QgbW92ZWQgaW4gdGhlIGRp
cmVjdGlvbiBvZiB0aGUgdHJhamVjdG9yeSB2ZWN0b3IuCisgICAgICAgICAgICBjb3ZlclJlY3Qg
PSB2aXNpYmxlUmVjdDsKKyAgICAgICAgICAgIGNvdmVyUmVjdC5tb3ZlKGNvdmVyUmVjdC53aWR0
aCgpICogbV92aXNpYmxlUmVjdFRyYWplY3RvcnlWZWN0b3IueCgpIC8gdHJhamVjdG9yeVZlY3Rv
ck5vcm0gKiB0cmFqZWN0b3J5VmVjdG9yTXVsdGlwbGllciwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvdmVyUmVjdC5oZWlnaHQoKSAqIG1fdmlzaWJsZVJlY3RUcmFqZWN0b3J5VmVjdG9y
LnkoKSAvIHRyYWplY3RvcnlWZWN0b3JOb3JtICogdHJhamVjdG9yeVZlY3Rvck11bHRpcGxpZXIp
OworCisgICAgICAgICAgICBjb3ZlclJlY3QudW5pdGUodmlzaWJsZVJlY3QpOworICAgICAgICB9
CiAgICAgfQotICAgIHJlc3VsdC5pbnRlcnNlY3QoY29udGVudHNSZWN0KCkpOwogCi0gICAgcmV0
dXJuIHJlc3VsdDsKKyAgICBBU1NFUlQoa2VlcFJlY3QuY29udGFpbnMoY292ZXJSZWN0KSk7CisK
KyAgICAvLyBUaGUga2VlcCByZWN0IGlzIGFuIGluZmxhdGVkIHZlcnNpb24gb2YgdGhlIGNvdmVy
IHJlY3QsIGluZmxhdGVkIGluIHRpbGUgZGltZW5zaW9ucy4KKyAgICBrZWVwUmVjdC5pbmZsYXRl
WChtX3RpbGVTaXplLndpZHRoKCkgLyAyKTsKKyAgICBrZWVwUmVjdC5pbmZsYXRlWShtX3RpbGVT
aXplLmhlaWdodCgpIC8gMik7CisKKyAgICBhZGp1c3RGb3JDb250ZW50c1JlY3QoY292ZXJSZWN0
KTsKKyAgICBhZGp1c3RGb3JDb250ZW50c1JlY3Qoa2VlcFJlY3QpOwogfQogCiBib29sIFRpbGVk
QmFja2luZ1N0b3JlOjpyZXNpemVFZGdlVGlsZXMoKQpAQCAtNDIyLDkgKzQ0Nyw5IEBAIEludFJl
Y3QgVGlsZWRCYWNraW5nU3RvcmU6OmNvbnRlbnRzUmVjdCgpIGNvbnN0CiBJbnRSZWN0IFRpbGVk
QmFja2luZ1N0b3JlOjp0aWxlUmVjdEZvckNvb3JkaW5hdGUoY29uc3QgVGlsZTo6Q29vcmRpbmF0
ZSYgY29vcmRpbmF0ZSkgY29uc3QKIHsKICAgICBJbnRSZWN0IHJlY3QoY29vcmRpbmF0ZS54KCkg
KiBtX3RpbGVTaXplLndpZHRoKCksCi0gICAgICAgIGNvb3JkaW5hdGUueSgpICogbV90aWxlU2l6
ZS5oZWlnaHQoKSwKLSAgICAgICAgbV90aWxlU2l6ZS53aWR0aCgpLAotICAgICAgICBtX3RpbGVT
aXplLmhlaWdodCgpKTsKKyAgICAgICAgICAgICAgICAgY29vcmRpbmF0ZS55KCkgKiBtX3RpbGVT
aXplLmhlaWdodCgpLAorICAgICAgICAgICAgICAgICBtX3RpbGVTaXplLndpZHRoKCksCisgICAg
ICAgICAgICAgICAgIG1fdGlsZVNpemUuaGVpZ2h0KCkpOwogCiAgICAgcmVjdC5pbnRlcnNlY3Qo
Y29udGVudHNSZWN0KCkpOwogICAgIHJldHVybiByZWN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGlsZWRCYWNraW5nU3RvcmUuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RpbGVkQmFja2luZ1N0b3JlLmgKaW5kZXggMGEwMmFjNTYy
ZWUwMzE0OWMyYzQ3NTQxMTg0ODY4NWFiNjRiYmE1Mi4uZDU1YjRlYmY3MTBmNjAyZTZiYmZkYTRj
NDUzZDk4OWIwZjcwM2NjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvVGlsZWRCYWNraW5nU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9UaWxlZEJhY2tpbmdTdG9yZS5oCkBAIC01NiwyMCArNTYsMTMgQEAgcHVibGljOgog
CiAgICAgdm9pZCBpbnZhbGlkYXRlKGNvbnN0IEludFJlY3QmIGRpcnR5UmVjdCk7CiAgICAgdm9p
ZCBwYWludChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBJbnRSZWN0Jik7Ci0gICAgCisKICAgICBJ
bnRTaXplIHRpbGVTaXplKCkgeyByZXR1cm4gbV90aWxlU2l6ZTsgfQogICAgIHZvaWQgc2V0VGls
ZVNpemUoY29uc3QgSW50U2l6ZSYpOwogICAgIAogICAgIGRvdWJsZSB0aWxlQ3JlYXRpb25EZWxh
eSgpIGNvbnN0IHsgcmV0dXJuIG1fdGlsZUNyZWF0aW9uRGVsYXk7IH0KICAgICB2b2lkIHNldFRp
bGVDcmVhdGlvbkRlbGF5KGRvdWJsZSBkZWxheSk7CiAgICAgCi0gICAgLy8gVGlsZWQgYXJlIGRy
b3BwZWQgb3V0c2lkZSB0aGUga2VlcCBhcmVhLCBhbmQgY3JlYXRlZCBmb3IgY292ZXIgYXJlYS4g
VGhlIHZhbHVlcyBhIHJlbGF0aXZlIHRvIHRoZSB2aWV3cG9ydCBzaXplLgotICAgIHZvaWQgZ2V0
S2VlcEFuZENvdmVyQXJlYU11bHRpcGxpZXJzKGZsb2F0JiBrZWVwTXVsdGlwbGllciwgZmxvYXQm
IGNvdmVyTXVsdGlwbGllcikKLSAgICB7Ci0gICAgICAgIGtlZXBNdWx0aXBsaWVyID0gbV9rZWVw
QXJlYU11bHRpcGxpZXI7Ci0gICAgICAgIGNvdmVyTXVsdGlwbGllciA9IG1fY292ZXJBcmVhTXVs
dGlwbGllcjsKLSAgICB9Ci0gICAgdm9pZCBzZXRLZWVwQW5kQ292ZXJBcmVhTXVsdGlwbGllcnMo
ZmxvYXQga2VlcE11bHRpcGxpZXIsIGZsb2F0IGNvdmVyTXVsdGlwbGllcik7CiAgICAgdm9pZCBz
ZXRWaXNpYmxlUmVjdFRyYWplY3RvcnlWZWN0b3IoY29uc3QgRmxvYXRQb2ludCYpOwogCiAgICAg
SW50UmVjdCBtYXBUb0NvbnRlbnRzKGNvbnN0IEludFJlY3QmKSBjb25zdDsKQEAgLTkwLDggKzgz
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHRpbGVDcmVhdGlvblRpbWVyRmlyZWQoVGlsZVRpbWVy
Kik7CiAgICAgCiAgICAgdm9pZCBjcmVhdGVUaWxlcygpOwotICAgIEludFJlY3QgY29tcHV0ZUtl
ZXBSZWN0KGNvbnN0IEludFJlY3QmIHZpc2libGVSZWN0KSBjb25zdDsKLSAgICBJbnRSZWN0IGNv
bXB1dGVDb3ZlclJlY3QoY29uc3QgSW50UmVjdCYgdmlzaWJsZVJlY3QpIGNvbnN0OworICAgIHZv
aWQgY29tcHV0ZUNvdmVyQW5kS2VlcFJlY3QoY29uc3QgSW50UmVjdCYgdmlzaWJsZVJlY3QsIElu
dFJlY3QmIGNvdmVyUmVjdCwgSW50UmVjdCYga2VlcFJlY3QpIGNvbnN0OwogICAgIAogICAgIHZv
aWQgY29tbWl0U2NhbGVDaGFuZ2UoKTsKIApAQCAtMTAyLDYgKzk0LDcgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIHNldFRpbGUoY29uc3QgVGlsZTo6Q29vcmRpbmF0ZSYgY29vcmRpbmF0ZSwgUGFzc1Jl
ZlB0cjxUaWxlPiB0aWxlKTsKICAgICB2b2lkIHJlbW92ZVRpbGUoY29uc3QgVGlsZTo6Q29vcmRp
bmF0ZSYgY29vcmRpbmF0ZSk7CiAKKyAgICB2b2lkIGFkanVzdEZvckNvbnRlbnRzUmVjdChJbnRS
ZWN0JikgY29uc3Q7CiAgICAgSW50UmVjdCBjb250ZW50c1JlY3QoKSBjb25zdDsKICAgICAKICAg
ICB2b2lkIHBhaW50Q2hlY2tlclBhdHRlcm4oR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50UmVj
dCYsIGNvbnN0IFRpbGU6OkNvb3JkaW5hdGUmKTsKQEAgLTExOSw3ICsxMTIsNiBAQCBwcml2YXRl
OgogCiAgICAgSW50U2l6ZSBtX3RpbGVTaXplOwogICAgIGRvdWJsZSBtX3RpbGVDcmVhdGlvbkRl
bGF5OwotICAgIGZsb2F0IG1fa2VlcEFyZWFNdWx0aXBsaWVyOwogICAgIGZsb2F0IG1fY292ZXJB
cmVhTXVsdGlwbGllcjsKICAgICBGbG9hdFBvaW50IG1fdmlzaWJsZVJlY3RUcmFqZWN0b3J5VmVj
dG9yOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3Bw
IGIvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwCmluZGV4IDhlZDdjMWM5OWJiYmVi
MTE1YmMxNzczZGY4ZmNmNTg4NDA3YTFjMGEuLmEyZDMxYzkzNmMyOWZlODZlNjFlODEyY2M5NGI5
MjhkNzgxNjZmYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAKQEAgLTExOTgsNDMgKzEx
OTgsNiBAQCB2b2lkIFFXZWJQYWdlUHJpdmF0ZTo6ZHluYW1pY1Byb3BlcnR5Q2hhbmdlRXZlbnQo
UUR5bmFtaWNQcm9wZXJ0eUNoYW5nZUV2ZW50KiBldgogICAgICAgICAgICAgfQogICAgICAgICB9
CiAgICAgfQotI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQotICAgIGVsc2UgaWYgKGV2ZW50
LT5wcm9wZXJ0eU5hbWUoKSA9PSAiX3FfVGlsZWRCYWNraW5nU3RvcmVUaWxlU2l6ZSIpIHsKLSAg
ICAgICAgV2ViQ29yZTo6RnJhbWUqIGZyYW1lID0gUVdlYkZyYW1lUHJpdmF0ZTo6Y29yZShxLT5t
YWluRnJhbWUoKSk7Ci0gICAgICAgIGlmICghZnJhbWUtPnRpbGVkQmFja2luZ1N0b3JlKCkpCi0g
ICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIFFTaXplIHRpbGVTaXplID0gcS0+cHJvcGVydHko
Il9xX1RpbGVkQmFja2luZ1N0b3JlVGlsZVNpemUiKS50b1NpemUoKTsKLSAgICAgICAgZnJhbWUt
PnRpbGVkQmFja2luZ1N0b3JlKCktPnNldFRpbGVTaXplKHRpbGVTaXplKTsKLSAgICB9IGVsc2Ug
aWYgKGV2ZW50LT5wcm9wZXJ0eU5hbWUoKSA9PSAiX3FfVGlsZWRCYWNraW5nU3RvcmVUaWxlQ3Jl
YXRpb25EZWxheSIpIHsKLSAgICAgICAgV2ViQ29yZTo6RnJhbWUqIGZyYW1lID0gUVdlYkZyYW1l
UHJpdmF0ZTo6Y29yZShxLT5tYWluRnJhbWUoKSk7Ci0gICAgICAgIGlmICghZnJhbWUtPnRpbGVk
QmFja2luZ1N0b3JlKCkpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGludCB0aWxlQ3Jl
YXRpb25EZWxheSA9IHEtPnByb3BlcnR5KCJfcV9UaWxlZEJhY2tpbmdTdG9yZVRpbGVDcmVhdGlv
bkRlbGF5IikudG9JbnQoKTsKLSAgICAgICAgZnJhbWUtPnRpbGVkQmFja2luZ1N0b3JlKCktPnNl
dFRpbGVDcmVhdGlvbkRlbGF5KHN0YXRpY19jYXN0PGRvdWJsZT4odGlsZUNyZWF0aW9uRGVsYXkp
IC8gMTAwMC4pOwotICAgIH0gZWxzZSBpZiAoZXZlbnQtPnByb3BlcnR5TmFtZSgpID09ICJfcV9U
aWxlZEJhY2tpbmdTdG9yZUtlZXBBcmVhTXVsdGlwbGllciIpIHsKLSAgICAgICAgV2ViQ29yZTo6
RnJhbWUqIGZyYW1lID0gUVdlYkZyYW1lUHJpdmF0ZTo6Y29yZShxLT5tYWluRnJhbWUoKSk7Ci0g
ICAgICAgIGlmICghZnJhbWUtPnRpbGVkQmFja2luZ1N0b3JlKCkpCi0gICAgICAgICAgICByZXR1
cm47Ci0gICAgICAgIGZsb2F0IGtlZXBNdWx0aXBsaWVyOwotICAgICAgICBmbG9hdCBjb3Zlck11
bHRpcGxpZXI7Ci0gICAgICAgIGZyYW1lLT50aWxlZEJhY2tpbmdTdG9yZSgpLT5nZXRLZWVwQW5k
Q292ZXJBcmVhTXVsdGlwbGllcnMoa2VlcE11bHRpcGxpZXIsIGNvdmVyTXVsdGlwbGllcik7Ci0g
ICAgICAgIFFTaXplRiBxU2l6ZSA9IHEtPnByb3BlcnR5KCJfcV9UaWxlZEJhY2tpbmdTdG9yZUtl
ZXBBcmVhTXVsdGlwbGllciIpLnRvU2l6ZUYoKTsKLSAgICAgICAgLy8gc2V0S2VlcEFuZENvdmVy
QXJlYU11bHRpcGxpZXJzIGRvIG5vdCB1c2UgRmxvYXRTaXplIGFueW1vcmUsIGtlZXAgb25seSB0
aGUgaGVpZ2h0IHBhcnQuCi0gICAgICAgIGtlZXBNdWx0aXBsaWVyID0gcVNpemUuaGVpZ2h0KCk7
Ci0gICAgICAgIGZyYW1lLT50aWxlZEJhY2tpbmdTdG9yZSgpLT5zZXRLZWVwQW5kQ292ZXJBcmVh
TXVsdGlwbGllcnMoa2VlcE11bHRpcGxpZXIsIGNvdmVyTXVsdGlwbGllcik7Ci0gICAgfSBlbHNl
IGlmIChldmVudC0+cHJvcGVydHlOYW1lKCkgPT0gIl9xX1RpbGVkQmFja2luZ1N0b3JlQ292ZXJB
cmVhTXVsdGlwbGllciIpIHsKLSAgICAgICAgV2ViQ29yZTo6RnJhbWUqIGZyYW1lID0gUVdlYkZy
YW1lUHJpdmF0ZTo6Y29yZShxLT5tYWluRnJhbWUoKSk7Ci0gICAgICAgIGlmICghZnJhbWUtPnRp
bGVkQmFja2luZ1N0b3JlKCkpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGZsb2F0IGtl
ZXBNdWx0aXBsaWVyOwotICAgICAgICBmbG9hdCBjb3Zlck11bHRpcGxpZXI7Ci0gICAgICAgIGZy
YW1lLT50aWxlZEJhY2tpbmdTdG9yZSgpLT5nZXRLZWVwQW5kQ292ZXJBcmVhTXVsdGlwbGllcnMo
a2VlcE11bHRpcGxpZXIsIGNvdmVyTXVsdGlwbGllcik7Ci0gICAgICAgIFFTaXplRiBxU2l6ZSA9
IHEtPnByb3BlcnR5KCJfcV9UaWxlZEJhY2tpbmdTdG9yZUNvdmVyQXJlYU11bHRpcGxpZXIiKS50
b1NpemVGKCk7Ci0gICAgICAgIC8vIHNldEtlZXBBbmRDb3ZlckFyZWFNdWx0aXBsaWVycyBkbyBu
b3QgdXNlIEZsb2F0U2l6ZSBhbnltb3JlLCBrZWVwIG9ubHkgdGhlIGhlaWdodCBwYXJ0LgotICAg
ICAgICBjb3Zlck11bHRpcGxpZXIgPSBxU2l6ZS5oZWlnaHQoKTsKLSAgICAgICAgZnJhbWUtPnRp
bGVkQmFja2luZ1N0b3JlKCktPnNldEtlZXBBbmRDb3ZlckFyZWFNdWx0aXBsaWVycyhrZWVwTXVs
dGlwbGllciwgY292ZXJNdWx0aXBsaWVyKTsKLSAgICB9Ci0jZW5kaWYKICAgICBlbHNlIGlmIChl
dmVudC0+cHJvcGVydHlOYW1lKCkgPT0gIl9xX3dlYkluc3BlY3RvclNlcnZlclBvcnQiKSB7CiAg
ICAgICAgIEluc3BlY3RvclNlcnZlclF0KiBpbnNwZWN0b3JTZXJ2ZXIgPSBJbnNwZWN0b3JTZXJ2
ZXJRdDo6c2VydmVyKCk7CiAgICAgICAgIGluc3BlY3RvclNlcnZlci0+bGlzdGVuKGluc3BlY3Rv
clNlcnZlclBvcnQoKSk7Cg==
</data>
<flag name="commit-queue"
          id="129208"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>