<?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>76877</bug_id>
          
          <creation_ts>2012-01-23 16:33:27 -0800</creation_ts>
          <short_desc>[Qt][WK2] Qt&apos;s cross-process AC copies images excessively when updating tiles.</short_desc>
          <delta_ts>2012-01-24 07:17:32 -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>Layout and Rendering</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>Performance, Qt</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Noam Rosenthal">noam</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>hausmann</cc>
    
    <cc>jturcotte</cc>
    
    <cc>kenneth</cc>
    
    <cc>ostap73</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>540956</commentid>
    <comment_count>0</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-01-23 16:33:27 -0800</bug_when>
    <thetext>Apart from double buffering, update buffers go through several message queues, and get copied in between. This is unnecessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540975</commentid>
    <comment_count>1</comment_count>
      <attachid>123658</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-01-23 16:47:39 -0800</bug_when>
    <thetext>Created attachment 123658
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540979</commentid>
    <comment_count>2</comment_count>
      <attachid>123660</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-01-23 16:51:08 -0800</bug_when>
    <thetext>Created attachment 123660
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>541187</commentid>
    <comment_count>3</comment_count>
      <attachid>123660</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-01-24 02:01:27 -0800</bug_when>
    <thetext>Comment on attachment 123660
Patch

Nice!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>541216</commentid>
    <comment_count>4</comment_count>
      <attachid>123660</attachid>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2012-01-24 03:21:36 -0800</bug_when>
    <thetext>Comment on attachment 123660
Patch

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

&gt; Source/WebKit2/WebProcess/WebPage/TiledBackingStoreRemoteTile.cpp:92
&gt; +    bitmap-&gt;swizzleRGB();

It&apos;s difficult to follow which format is used where, could you add a comment here saying from which to which you are converting?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>541284</commentid>
    <comment_count>5</comment_count>
      <attachid>123723</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-01-24 06:21:31 -0800</bug_when>
    <thetext>Created attachment 123723
Patch

Added comments as per Jocelyn&apos;s request.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>541287</commentid>
    <comment_count>6</comment_count>
      <attachid>123723</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-24 06:24:44 -0800</bug_when>
    <thetext>Comment on attachment 123723
Patch

Rejecting attachment 123723 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

NOBODY Kenneth Rohde Christiansen found in /mnt/git/webkit-commit-queue/Source/WebKit2/ChangeLog does not appear to be a valid reviewer according to committers.py.
ERROR: /mnt/git/webkit-commit-queue/Source/WebKit2/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/11335374</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>541294</commentid>
    <comment_count>7</comment_count>
      <attachid>123725</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-01-24 06:45:56 -0800</bug_when>
    <thetext>Created attachment 123725
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>541310</commentid>
    <comment_count>8</comment_count>
      <attachid>123725</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-24 07:17:26 -0800</bug_when>
    <thetext>Comment on attachment 123725
Patch

Clearing flags on attachment: 123725

Committed r105737: &lt;http://trac.webkit.org/changeset/105737&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>541311</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-24 07:17:32 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123658</attachid>
            <date>2012-01-23 16:47:39 -0800</date>
            <delta_ts>2012-01-23 16:51:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>17591</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA3NTM0OWQyLi5hN2Y1N2QzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUg
QEAKKzIwMTItMDEtMjMgIE5vJ2FtIFJvc2VudGhhbCAgPG5vYW0ucm9zZW50aGFsQG5va2lhLmNv
bT4KKworICAgICAgICBbUXRdW1dLMl0gUXQncyBjcm9zcy1wcm9jZXNzIEFDIGNvcGllcyBpbWFn
ZXMgZXhjZXNzaXZlbHkgd2hlbiB1cGRhdGluZyB0aWxlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2ODc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEJpdG1hcFRleHR1cmU6OnVwZGF0ZVJhd0Nv
bnRlbnRzKCksIHdoaWNoIGFsbG93cyB1cGxvYWRpbmcgaW1hZ2UgZGF0YSB0byBhIHRleHR1cmUK
KyAgICAgICAgd2l0aG91dCBjaGFuZ2luZyBpdHMgZm9ybWF0IG9yIHN3aXp6bGluZyBSR0IuIFRo
ZSBkYXRhIGhhcyB0byBiZSBpbiB0aGUgdGV4dHVyZSdzIG5hdGl2ZQorICAgICAgICBmb3JtYXQu
CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCB0aGlzIGFmZmVjdHMgcGVyZm9ybWFuY2Ugb24gYWxs
IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL1Rl
eHR1cmVNYXBwZXJHTC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBUZXh0dXJlR0w6OnVw
ZGF0ZVJhd0NvbnRlbnRzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9xdC9UZXh0dXJl
TWFwcGVyUXQuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJl
TWFwcGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBUZXh0dXJlOjp1cGRhdGVSYXdDb250
ZW50cyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJO
b2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJOb2RlOjpzZXRDb250ZW50
c1RpbGVCYWNrQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4
dHVyZU1hcHBlck5vZGUuaDoKKwogMjAxMi0wMS0yMyAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBh
cHBsZS5jb20+CiAKICAgICAgICAgQXR0ZW1wdCB0byBmaXggUXQgYnVpbGQuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvVGV4dHVyZU1hcHBlckdM
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9UZXh0dXJlTWFw
cGVyR0wuY3BwCmluZGV4IDBmZjcwMjIuLjUwYmZhOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9UZXh0dXJlTWFwcGVyR0wuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9UZXh0dXJlTWFwcGVyR0wuY3Bw
CkBAIC0zNDcsNiArMzQ3LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0VGV4dHVyZU1hcHBlcihU
ZXh0dXJlTWFwcGVyR0wqIHRleG1hcCkgeyBtX3RleHR1cmVNYXBwZXIgPSB0ZXhtYXA7IH0KIAog
ICAgIHZvaWQgdXBkYXRlQ29udGVudHMoUGl4ZWxGb3JtYXQsIGNvbnN0IEludFJlY3QmLCB2b2lk
Kik7CisgICAgdm9pZCB1cGRhdGVSYXdDb250ZW50cyhjb25zdCBJbnRSZWN0JiwgY29uc3Qgdm9p
ZCopOwogICAgIHZvaWQgcGFjaygpCiAgICAgewogICAgICAgICAvLyBUaGlzIGlzIGN1cnJlbnRs
eSBhIHN0dWIuCkBAIC02ODQsMTkgKzY4NSw2IEBAIHZvaWQgQml0bWFwVGV4dHVyZUdMOjplbmRQ
YWludCgpCiAgICAgbV9idWZmZXIuY2xlYXIoKTsKIH0KIAotI2lmZGVmIFRFWE1BUF9PUEVOR0xf
RVNfMgotc3RhdGljIHZvaWQgc3dpenpsZUJHUkFUb1JHQkEodWludDMyX3QqIGRhdGEsIGNvbnN0
IEludFNpemUmIHNpemUpCi17Ci0gICAgaW50IHdpZHRoID0gc2l6ZS53aWR0aCgpOwotICAgIGlu
dCBoZWlnaHQgPSBzaXplLmhlaWdodCgpOwotICAgIGZvciAoaW50IHkgPSAwOyB5IDwgaGVpZ2h0
OyArK3kpIHsKLSAgICAgICAgdWludDMyX3QqIHAgPSBkYXRhICsgeSAqIHdpZHRoOwotICAgICAg
ICBmb3IgKGludCB4ID0gMDsgeCA8IHdpZHRoOyArK3gpCi0gICAgICAgICAgICBwW3hdID0gKChw
W3hdIDw8IDE2KSAmIDB4ZmYwMDAwKSB8ICgocFt4XSA+PiAxNikgJiAweGZmKSB8IChwW3hdICYg
MHhmZjAwZmYwMCk7Ci0gICAgfQotfQotI2VuZGlmCi0KIHZvaWQgQml0bWFwVGV4dHVyZUdMOjp1
cGRhdGVDb250ZW50cyhQaXhlbEZvcm1hdCBwaXhlbEZvcm1hdCwgY29uc3QgSW50UmVjdCYgcmVj
dCwgdm9pZCogYml0cykKIHsKICAgICBHTF9DTUQoZ2xCaW5kVGV4dHVyZShHTF9URVhUVVJFXzJE
LCBtX2lkKSkKQEAgLTczNyw2ICs3MjUsMTMgQEAgdm9pZCBCaXRtYXBUZXh0dXJlR0w6OnVwZGF0
ZUNvbnRlbnRzKFBpeGVsRm9ybWF0IHBpeGVsRm9ybWF0LCBjb25zdCBJbnRSZWN0JiByZWMKICAg
ICBHTF9DTUQoZ2xUZXhTdWJJbWFnZTJEKEdMX1RFWFRVUkVfMkQsIDAsIHJlY3QueCgpLCByZWN0
LnkoKSwgcmVjdC53aWR0aCgpLCByZWN0LmhlaWdodCgpLCBnbEZvcm1hdCwgR0xfVU5TSUdORURf
QllURSwgYml0cykpCiB9CiAKK3ZvaWQgQml0bWFwVGV4dHVyZUdMOjp1cGRhdGVSYXdDb250ZW50
cyhjb25zdCBJbnRSZWN0JiByZWN0LCBjb25zdCB2b2lkKiBiaXRzKQoreworICAgIEdMX0NNRChn
bEJpbmRUZXh0dXJlKEdMX1RFWFRVUkVfMkQsIG1faWQpKQorICAgIEdMdWludCBnbEZvcm1hdCA9
IGlzT3BhcXVlKCkgPyBHTF9SR0IgOiBHTF9SR0JBOworICAgIEdMX0NNRChnbFRleFN1YkltYWdl
MkQoR0xfVEVYVFVSRV8yRCwgMCwgcmVjdC54KCksIHJlY3QueSgpLCByZWN0LndpZHRoKCksIHJl
Y3QuaGVpZ2h0KCksIGdsRm9ybWF0LCBHTF9VTlNJR05FRF9CWVRFLCBiaXRzKSkKK30KKwogdm9p
ZCBCaXRtYXBUZXh0dXJlR0w6OnNldENvbnRlbnRzVG9JbWFnZShJbWFnZSogaW1hZ2UpCiB7CiAg
ICAgSW1hZ2VVSUQgdWlkID0gaW1hZ2UgPyB1aWRGb3JJbWFnZShpbWFnZSkgOiAwOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvVGV4dHVyZU1hcHBlclF0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L1RleHR1cmVNYXBwZXJR
dC5jcHAKaW5kZXggZjQxYTQyMS4uOThjYzgyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvcXQvVGV4dHVyZU1hcHBlclF0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9UZXh0dXJlTWFwcGVyUXQuY3BwCkBAIC03Niw3ICs3
Niw2IEBAIHZvaWQgQml0bWFwVGV4dHVyZVF0Ojp1cGRhdGVDb250ZW50cyhQaXhlbEZvcm1hdCBw
aXhlbEZvcm1hdCwgY29uc3QgSW50UmVjdCYgcmVjCiAgICAgbV9wYWludGVyLmVuZCgpOwogfQog
Ci0KIGJvb2wgQml0bWFwVGV4dHVyZVF0OjpzYXZlKGNvbnN0IFN0cmluZyYgcGF0aCkKIHsKICAg
ICByZXR1cm4gbV9waXhtYXAuc2F2ZShwYXRoLCAiUE5HIik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuaAppbmRleCBj
MWRjYmJkLi5kNjZmZTJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyLmgKQEAgLTcxLDYgKzcxLDcgQEAgcHVibGlj
OgogICAgIC8vIEZvciBwZXJmb3JtYW5jZSByZWFzb25zLCBCaXRtYXBUZXh0dXJlIG1pZ2h0IG1v
ZGlmeSB0aGUgYml0cyBkaXJlY3RseSAoc3dpenpsZSkuCiAgICAgLy8gVGh1cywgdGhpcyBtZXRo
b2QgaXMgb25seSByZWNvbW1lbmRlZCBmb3IgYnVmZmVyIHVwZGF0ZSwgc3VjaCBhcyB1c2VkIGJ5
IFdlYktpdDIuCiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUNvbnRlbnRzKFBpeGVsRm9ybWF0LCBj
b25zdCBJbnRSZWN0Jiwgdm9pZCogYml0cykgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVS
YXdDb250ZW50cyhjb25zdCBJbnRSZWN0JiwgY29uc3Qgdm9pZCogYml0cykgeyB9CiAgICAgdmly
dHVhbCBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dCogYmVnaW5QYWludE1lZGlhKCkKICAgICB7CiAg
ICAgICAgIHJldHVybiBiZWdpblBhaW50KEludFJlY3QoMCwgMCwgc2l6ZSgpLndpZHRoKCksIHNp
emUoKS5oZWlnaHQoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTm9kZS5jcHAKaW5kZXggMjE3YTk1NS4u
Y2NmNDliYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUuY3BwCkBAIC00ODEsNyArNDgxLDcgQEAg
dm9pZCBUZXh0dXJlTWFwcGVyTm9kZTo6Y2xlYXJBbGxEaXJlY3RseUNvbXBvc2l0ZWRJbWFnZVRp
bGVzKCkKICAgICB9CiB9CiAKLXZvaWQgVGV4dHVyZU1hcHBlck5vZGU6OnNldENvbnRlbnRzVGls
ZUJhY2tCdWZmZXIoaW50IGlkLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRS
ZWN0JiB0YXJnZXRSZWN0LCB2b2lkKiBiaXRzLCBCaXRtYXBUZXh0dXJlOjpQaXhlbEZvcm1hdCBm
b3JtYXQpCit2b2lkIFRleHR1cmVNYXBwZXJOb2RlOjpzZXRDb250ZW50c1RpbGVCYWNrQnVmZmVy
KGludCBpZCwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50UmVjdCYgdGFyZ2V0
UmVjdCwgY29uc3Qgdm9pZCogYml0cykKIHsKICAgICBBU1NFUlQobV90ZXh0dXJlTWFwcGVyKTsK
IApAQCAtNDk4LDcgKzQ5OCw3IEBAIHZvaWQgVGV4dHVyZU1hcHBlck5vZGU6OnNldENvbnRlbnRz
VGlsZUJhY2tCdWZmZXIoaW50IGlkLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSCiAgICAgaWYgKCF0
aWxlLmJhY2tCdWZmZXIudGV4dHVyZSkKICAgICAgICAgdGlsZS5iYWNrQnVmZmVyLnRleHR1cmUg
PSBtX3RleHR1cmVNYXBwZXItPmNyZWF0ZVRleHR1cmUoKTsKICAgICB0aWxlLmJhY2tCdWZmZXIu
dGV4dHVyZS0+cmVzZXQoc291cmNlUmVjdC5zaXplKCksIGZhbHNlKTsKLSAgICB0aWxlLmJhY2tC
dWZmZXIudGV4dHVyZS0+dXBkYXRlQ29udGVudHMoZm9ybWF0LCBzb3VyY2VSZWN0LCBiaXRzKTsK
KyAgICB0aWxlLmJhY2tCdWZmZXIudGV4dHVyZS0+dXBkYXRlUmF3Q29udGVudHMoc291cmNlUmVj
dCwgYml0cyk7CiAgICAgdGlsZS5pc0JhY2tCdWZmZXJVcGRhdGVkID0gdHJ1ZTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVN
YXBwZXJOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4
dHVyZU1hcHBlck5vZGUuaAppbmRleCAyN2JmZjFkLi5mZTRiMTRjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBl
ck5vZGUuaApAQCAtMTQ4LDcgKzE0OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFRpbGVPd25l
cnNoaXAoVGlsZU93bmVyc2hpcCBvd25lcnNoaXApIHsgbV9zdGF0ZS50aWxlT3duZXJzaGlwID0g
b3duZXJzaGlwOyB9CiAgICAgaW50IGNyZWF0ZUNvbnRlbnRzVGlsZShmbG9hdCBzY2FsZSk7CiAg
ICAgdm9pZCByZW1vdmVDb250ZW50c1RpbGUoaW50IGlkKTsKLSAgICB2b2lkIHNldENvbnRlbnRz
VGlsZUJhY2tCdWZmZXIoaW50IGlkLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJ
bnRSZWN0JiB0YXJnZXRSZWN0LCB2b2lkKiBiaXRzLCBCaXRtYXBUZXh0dXJlOjpQaXhlbEZvcm1h
dCk7CisgICAgdm9pZCBzZXRDb250ZW50c1RpbGVCYWNrQnVmZmVyKGludCBpZCwgY29uc3QgSW50
UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50UmVjdCYgdGFyZ2V0UmVjdCwgY29uc3Qgdm9pZCog
Yml0cyk7CiAgICAgdm9pZCBzZXRUaWxlQmFja0J1ZmZlclRleHR1cmVGb3JEaXJlY3RseUNvbXBv
c2l0ZWRJbWFnZShpbnQgaWQsIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IEZsb2F0
UmVjdCYgdGFyZ2V0UmVjdCwgQml0bWFwVGV4dHVyZSopOwogICAgIHZvaWQgY2xlYXJBbGxEaXJl
Y3RseUNvbXBvc2l0ZWRJbWFnZVRpbGVzKCk7CiAgICAgdm9pZCBwdXJnZU5vZGVUZXh0dXJlc1Jl
Y3Vyc2l2ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGIxMWNmZmMuLjk1ZjU0NzMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzNiBAQAorMjAxMi0wMS0yMyAgTm8nYW0gUm9zZW50aGFsICA8bm9hbS5yb3NlbnRo
YWxAbm9raWEuY29tPgorCisgICAgICAgIFtRdF1bV0syXSBRdCdzIGNyb3NzLXByb2Nlc3MgQUMg
Y29waWVzIGltYWdlcyBleGNlc3NpdmVseSB3aGVuIHVwZGF0aW5nIHRpbGVzLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY4NzcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnN0ZWFkIG9mIGNvcHlpbmcg
UUltYWdlcywgcGFzcyBhIHJlZmVyZW5jZSB0byB0aGUgU2hhcmVhYmxlQml0bWFwIHRoYXQgd2Fz
IG9yaWdpbmFsbHkKKyAgICAgICAgY3JlYXRlZCBieSB0aGUgd2ViIHByb2Nlc3MuIEFsc28sIHN3
aXp6bGUgdGhlIGltYWdlJ3MgUkdCIGluIHRoZSB3ZWIgcHJvY2VzcywgYmVmb3JlIGl0J3MKKyAg
ICAgICAgdHJhbnNmZXJyZWQgdG8gdGhlIFVJIHByb2Nlc3MuCisKKyAgICAgICAgRGF0YSBmbG93
IGJlZm9yZSBjaGFuZ2U6CisgICAgICAgIChXZWIgUHJvY2VzcykgUmVuZGVyIHRvIGltYWdlIC0+
IElQQyAtPiAoVUkgUHJvY2VzcykgQ29weSAocmVuZGVyIHF1ZXVlKSAtPiBDb3B5IFN3aXp6bGVk
IFJHQiAtPiBVcGxvYWQKKworICAgICAgICBEYXRhIGZsb3cgYWZ0ZXIgY2hhbmdlOgorICAgICAg
ICAoV2ViIFByb2Nlc3MpIFJlbmRlciB0byBpbWFnZSAtPiBzd2l6emxlIFJHQiAtPiBJUEMgLT4g
KFVJIFByb2Nlc3MpIC0+IFVwbG9hZAorCisgICAgICAgICogU2hhcmVkL1NoYXJlYWJsZUJpdG1h
cC5oOgorICAgICAgICAqIFNoYXJlZC9xdC9TaGFyZWFibGVCaXRtYXBRdC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlNoYXJlYWJsZUJpdG1hcDo6c3dpenpsZVJHQik6CisgICAgICAgICogVUlQcm9j
ZXNzL0xheWVyVHJlZUhvc3RQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9MYXllclRy
ZWVIb3N0UHJveHlRdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUhvc3RQcm94eTo6
dXBkYXRlVGlsZSk6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUhvc3RQcm94eTo6Y3JlYXRl
SW1hZ2UpOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVIb3N0UHJveHk6OnN5bmNSZW1vdGVD
b250ZW50KToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlSG9zdFByb3h5Ojp1cGRhdGVUaWxl
Rm9yTGF5ZXIpOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVIb3N0UHJveHk6OmNyZWF0ZURp
cmVjdGx5Q29tcG9zaXRlZEltYWdlKToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlSG9zdFBy
b3h5OjpwdXJnZUdMUmVzb3VyY2VzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvVGls
ZWRCYWNraW5nU3RvcmVSZW1vdGVUaWxlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VGlsZWRCYWNr
aW5nU3RvcmVSZW1vdGVUaWxlOjp1cGRhdGVCYWNrQnVmZmVyKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvcXQvTGF5ZXJUcmVlSG9zdFF0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGF5
ZXJUcmVlSG9zdFF0OjphZG9wdEltYWdlQmFja2luZ1N0b3JlKToKKwogMjAxMi0wMS0yMSAgVGlt
b3RoeSBIYXRjaGVyICA8dGltb3RoeUBhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSBXZWJLaXQy
IHJlbWVtYmVyIHRoZSBoZWlnaHQgb2YgdGhlIFdlYiBJbnNwZWN0b3Igd2hlbiBpdCBpcyBkb2Nr
ZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVhYmxlQml0bWFwLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVhYmxlQml0bWFwLmgKaW5kZXggMTJjZDdhYi4u
Yzc4YTE0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1NoYXJlYWJsZUJpdG1h
cC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TaGFyZWFibGVCaXRtYXAuaApAQCAtMTM1
LDYgKzEzNSw3IEBAIHB1YmxpYzoKICAgICAvLyBUaGlzIGNyZWF0ZXMgYSBRSW1hZ2UgdGhhdCBk
aXJlY3RseSByZWZlcmVuY2VzIHRoZSBzaGFyZWQgYml0bWFwIGRhdGEuCiAgICAgLy8gVGhpcyBp
cyBvbmx5IHNhZmUgdG8gdXNlIHdoZW4gd2Uga25vdyB0aGF0IHRoZSBjb250ZW50cyBvZiB0aGUg
c2hhcmVhYmxlIGJpdG1hcCB3b24ndCBjaGFuZ2UuCiAgICAgUUltYWdlIGNyZWF0ZVFJbWFnZSgp
OworICAgIHZvaWQgc3dpenpsZVJHQigpOwogI2VuZGlmCiAKIHByaXZhdGU6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvcXQvU2hhcmVhYmxlQml0bWFwUXQuY3BwIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL3F0L1NoYXJlYWJsZUJpdG1hcFF0LmNwcAppbmRleCBiMGFiMmVjLi5k
NWUzNzFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvcXQvU2hhcmVhYmxlQml0
bWFwUXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9xdC9TaGFyZWFibGVCaXRtYXBR
dC5jcHAKQEAgLTcwLDQgKzcwLDE3IEBAIHZvaWQgU2hhcmVhYmxlQml0bWFwOjpwYWludChHcmFw
aGljc0NvbnRleHQmIC8qY29udGV4dCovLCBmbG9hdCAvKnNjYWxlRmFjdG9yKi8sCiAgICAgbm90
SW1wbGVtZW50ZWQoKTsKIH0KIAotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cit2b2lkIFNoYXJlYWJs
ZUJpdG1hcDo6c3dpenpsZVJHQigpCit7CisgICAgdWludDMyX3QqIGRhdGEgPSByZWludGVycHJl
dF9jYXN0PHVpbnQzMl90Kj4odGhpcy0+ZGF0YSgpKTsKKyAgICBpbnQgd2lkdGggPSBzaXplKCku
d2lkdGgoKTsKKyAgICBpbnQgaGVpZ2h0ID0gc2l6ZSgpLmhlaWdodCgpOworICAgIGZvciAoaW50
IHkgPSAwOyB5IDwgaGVpZ2h0OyArK3kpIHsKKyAgICAgICAgdWludDMyX3QqIHAgPSBkYXRhICsg
eSAqIHdpZHRoOworICAgICAgICBmb3IgKGludCB4ID0gMDsgeCA8IHdpZHRoOyArK3gpCisgICAg
ICAgICAgICBwW3hdID0gKChwW3hdIDw8IDE2KSAmIDB4ZmYwMDAwKSB8ICgocFt4XSA+PiAxNikg
JiAweGZmKSB8IChwW3hdICYgMHhmZjAwZmYwMCk7CisgICAgfQorfQorCit9CisvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF5ZXJUcmVl
SG9zdFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF5ZXJUcmVlSG9zdFByb3h5
LmgKaW5kZXggNDZjNGQxNC4uMDA0YzI4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0xheWVyVHJlZUhvc3RQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9MYXllclRyZWVIb3N0UHJveHkuaApAQCAtMTEwLDggKzExMCw4IEBAIHByb3RlY3RlZDoKICAg
ICB2b2lkIHN5bmNMYXllclBhcmFtZXRlcnMoY29uc3QgV2ViTGF5ZXJJbmZvJik7CiAgICAgdm9p
ZCBjcmVhdGVUaWxlKFdlYkxheWVySUQsIGludCwgZmxvYXQgc2NhbGUpOwogICAgIHZvaWQgcmVt
b3ZlVGlsZShXZWJMYXllcklELCBpbnQpOwotICAgIHZvaWQgdXBkYXRlVGlsZShXZWJMYXllcklE
LCBpbnQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jiwg
Y29uc3QgUUltYWdlJik7Ci0gICAgdm9pZCBjcmVhdGVJbWFnZShpbnQ2NF90LCBjb25zdCBRSW1h
Z2UmKTsKKyAgICB2b2lkIHVwZGF0ZVRpbGUoV2ViTGF5ZXJJRCwgaW50LCBjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIFNoYXJlYWJsZUJpdG1hcCopOwor
ICAgIHZvaWQgY3JlYXRlSW1hZ2UoaW50NjRfdCwgU2hhcmVhYmxlQml0bWFwKik7CiAgICAgdm9p
ZCBkZXN0cm95SW1hZ2UoaW50NjRfdCk7CiAgICAgdm9pZCBhc3NpZ25JbWFnZVRvTGF5ZXIoV2Vi
Q29yZTo6R3JhcGhpY3NMYXllciosIGludDY0X3QgaW1hZ2VJRCk7CiAgICAgdm9pZCBmbHVzaExh
eWVyQ2hhbmdlcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L0xh
eWVyVHJlZUhvc3RQcm94eVF0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9MYXll
clRyZWVIb3N0UHJveHlRdC5jcHAKaW5kZXggOGM0MjhkNy4uOTQwNWFiNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L0xheWVyVHJlZUhvc3RQcm94eVF0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvTGF5ZXJUcmVlSG9zdFByb3h5UXQuY3BwCkBA
IC05Niw3ICs5Niw3IEBAIHN0cnVjdCBVcGRhdGVUaWxlTWVzc2FnZURhdGEgewogICAgIGludCBy
ZW1vdGVUaWxlSUQ7CiAgICAgSW50UmVjdCBzb3VyY2VSZWN0OwogICAgIEludFJlY3QgdGFyZ2V0
UmVjdDsKLSAgICBRSW1hZ2UgaW1hZ2U7CisgICAgUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4gYml0
bWFwOwogfTsKIAogc3RydWN0IFJlbW92ZVRpbGVNZXNzYWdlRGF0YSB7CkBAIC0xMDYsNyArMTA2
LDcgQEAgc3RydWN0IFJlbW92ZVRpbGVNZXNzYWdlRGF0YSB7CiAKIHN0cnVjdCBDcmVhdGVJbWFn
ZU1lc3NhZ2VEYXRhIHsKICAgICBpbnQ2NF90IGltYWdlSUQ7Ci0gICAgUUltYWdlIGltYWdlOwor
ICAgIFJlZlB0cjxTaGFyZWFibGVCaXRtYXA+IGJpdG1hcDsKIH07CiAKIHN0cnVjdCBEZXN0cm95
SW1hZ2VNZXNzYWdlRGF0YSB7CkBAIC0zNTAsNyArMzUwLDcgQEAgdm9pZCBMYXllclRyZWVIb3N0
UHJveHk6OnJlbW92ZVRpbGUoV2ViTGF5ZXJJRCBsYXllcklELCBpbnQgdGlsZUlEKQogICAgIG1f
dGlsZVRvTm9kZVRpbGUucmVtb3ZlKHRpbGVJRCk7CiB9CiAKLXZvaWQgTGF5ZXJUcmVlSG9zdFBy
b3h5Ojp1cGRhdGVUaWxlKFdlYkxheWVySUQgbGF5ZXJJRCwgaW50IHRpbGVJRCwgY29uc3QgSW50
UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50UmVjdCYgdGFyZ2V0UmVjdCwgY29uc3QgUUltYWdl
JiBpbWFnZSkKK3ZvaWQgTGF5ZXJUcmVlSG9zdFByb3h5Ojp1cGRhdGVUaWxlKFdlYkxheWVySUQg
bGF5ZXJJRCwgaW50IHRpbGVJRCwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50
UmVjdCYgdGFyZ2V0UmVjdCwgU2hhcmVhYmxlQml0bWFwKiBiaXRtYXApCiB7CiAgICAgZW5zdXJl
TGF5ZXIobGF5ZXJJRCk7CiAgICAgVGV4dHVyZU1hcHBlck5vZGUqIG5vZGUgPSB0b1RleHR1cmVN
YXBwZXJOb2RlKGxheWVyQnlJRChsYXllcklEKSk7CkBAIC0zNjEsMTUgKzM2MSwxNiBAQCB2b2lk
IExheWVyVHJlZUhvc3RQcm94eTo6dXBkYXRlVGlsZShXZWJMYXllcklEIGxheWVySUQsIGludCB0
aWxlSUQsIGNvbnN0IEludFJlYwogICAgIGlmICghbm9kZVRpbGVJRCkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgUUltYWdlIGltYWdlUmVmKGltYWdlKTsKICAgICBub2RlLT5zZXRUZXh0dXJlTWFw
cGVyKG1fdGV4dHVyZU1hcHBlci5nZXQoKSk7Ci0gICAgbm9kZS0+c2V0Q29udGVudHNUaWxlQmFj
a0J1ZmZlcihub2RlVGlsZUlELCBzb3VyY2VSZWN0LCB0YXJnZXRSZWN0LCBpbWFnZVJlZi5iaXRz
KCksIEJpdG1hcFRleHR1cmU6OkJHUkFGb3JtYXQpOworICAgIFFJbWFnZSBpbWFnZSA9IGJpdG1h
cC0+Y3JlYXRlUUltYWdlKCk7CisgICAgbm9kZS0+c2V0Q29udGVudHNUaWxlQmFja0J1ZmZlcihu
b2RlVGlsZUlELCBzb3VyY2VSZWN0LCB0YXJnZXRSZWN0LCBpbWFnZS5jb25zdEJpdHMoKSk7CiB9
CiAKLXZvaWQgTGF5ZXJUcmVlSG9zdFByb3h5OjpjcmVhdGVJbWFnZShpbnQ2NF90IGltYWdlSUQs
IGNvbnN0IFFJbWFnZSYgaW1hZ2UpCit2b2lkIExheWVyVHJlZUhvc3RQcm94eTo6Y3JlYXRlSW1h
Z2UoaW50NjRfdCBpbWFnZUlELCBTaGFyZWFibGVCaXRtYXAqIGJpdG1hcCkKIHsKICAgICBUaWxl
ZEltYWdlIHRpbGVkSW1hZ2U7CiAgICAgc3RhdGljIGNvbnN0IGludCBUaWxlRGltZW5zaW9uID0g
MTAyNDsKKyAgICBRSW1hZ2UgaW1hZ2UgPSBiaXRtYXAtPmNyZWF0ZVFJbWFnZSgpOwogICAgIGJv
b2wgaW1hZ2VIYXNBbHBoYSA9IGltYWdlLmhhc0FscGhhQ2hhbm5lbCgpOwogICAgIEludFJlY3Qg
aW1hZ2VSZWN0KDAsIDAsIGltYWdlLndpZHRoKCksIGltYWdlLmhlaWdodCgpKTsKICAgICBmb3Ig
KGludCB5ID0gMDsgeSA8IGltYWdlLmhlaWdodCgpOyB5ICs9IFRpbGVEaW1lbnNpb24pIHsKQEAg
LTM4MywxMyArMzg0LDEyIEBAIHZvaWQgTGF5ZXJUcmVlSG9zdFByb3h5OjpjcmVhdGVJbWFnZShp
bnQ2NF90IGltYWdlSUQsIGNvbnN0IFFJbWFnZSYgaW1hZ2UpCiAgICAgICAgICAgICAgICAgc3Vi
SW1hZ2UgPSBpbWFnZS5jb3B5KHJlY3QpOwogICAgICAgICAgICAgUmVmUHRyPEJpdG1hcFRleHR1
cmU+IHRleHR1cmUgPSBtX3RleHR1cmVNYXBwZXItPmNyZWF0ZVRleHR1cmUoKTsKICAgICAgICAg
ICAgIHRleHR1cmUtPnJlc2V0KHJlY3Quc2l6ZSgpLCAhaW1hZ2VIYXNBbHBoYSk7Ci0gICAgICAg
ICAgICB0ZXh0dXJlLT51cGRhdGVDb250ZW50cyhpbWFnZUhhc0FscGhhID8gQml0bWFwVGV4dHVy
ZTo6QkdSQUZvcm1hdCA6IEJpdG1hcFRleHR1cmU6OkJHUkZvcm1hdCwgSW50UmVjdChJbnRQb2lu
dDo6emVybygpLCByZWN0LnNpemUoKSksIHN1YkltYWdlLmJpdHMoKSk7CisgICAgICAgICAgICB0
ZXh0dXJlLT51cGRhdGVSYXdDb250ZW50cyhJbnRSZWN0KEludFBvaW50Ojp6ZXJvKCksIHJlY3Qu
c2l6ZSgpKSwgc3ViSW1hZ2UuY29uc3RCaXRzKCkpOwogICAgICAgICAgICAgdGlsZWRJbWFnZS5h
ZGQocmVjdC5sb2NhdGlvbigpLCB0ZXh0dXJlKTsKICAgICAgICAgfQogICAgIH0KIAotICAgIG1f
ZGlyZWN0bHlDb21wb3NpdGVkSW1hZ2VzLnJlbW92ZShpbWFnZUlEKTsKLSAgICBtX2RpcmVjdGx5
Q29tcG9zaXRlZEltYWdlcy5hZGQoaW1hZ2VJRCwgdGlsZWRJbWFnZSk7CisgICAgbV9kaXJlY3Rs
eUNvbXBvc2l0ZWRJbWFnZXMuc2V0KGltYWdlSUQsIHRpbGVkSW1hZ2UpOwogfQogCiB2b2lkIExh
eWVyVHJlZUhvc3RQcm94eTo6ZGVzdHJveUltYWdlKGludDY0X3QgaW1hZ2VJRCkKQEAgLTQ5MCwx
OCArNDkwLDE4IEBAIHZvaWQgTGF5ZXJUcmVlSG9zdFByb3h5OjpzeW5jUmVtb3RlQ29udGVudCgp
CiAKICAgICAgICAgY2FzZSBMYXllclRyZWVNZXNzYWdlVG9SZW5kZXJlcjo6VXBkYXRlVGlsZTog
ewogICAgICAgICAgICAgY29uc3QgVXBkYXRlVGlsZU1lc3NhZ2VEYXRhJiBkYXRhID0gc3RhdGlj
X2Nhc3Q8VXBkYXRlVGlsZU1lc3NhZ2UqPihuZXh0TWVzc2FnZS5nZXQoKSktPmRhdGEoKTsKLSAg
ICAgICAgICAgIHVwZGF0ZVRpbGUoZGF0YS5sYXllcklELCBkYXRhLnJlbW90ZVRpbGVJRCwgZGF0
YS5zb3VyY2VSZWN0LCBkYXRhLnRhcmdldFJlY3QsIGRhdGEuaW1hZ2UpOworICAgICAgICAgICAg
dXBkYXRlVGlsZShkYXRhLmxheWVySUQsIGRhdGEucmVtb3RlVGlsZUlELCBkYXRhLnNvdXJjZVJl
Y3QsIGRhdGEudGFyZ2V0UmVjdCwgZGF0YS5iaXRtYXAuZ2V0KCkpOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIH0KIAogICAgICAgICBjYXNlIExheWVyVHJlZU1lc3NhZ2VUb1JlbmRlcmVy
OjpDcmVhdGVJbWFnZTogewogICAgICAgICAgICAgY29uc3QgQ3JlYXRlSW1hZ2VNZXNzYWdlRGF0
YSYgZGF0YSA9IHN0YXRpY19jYXN0PENyZWF0ZUltYWdlTWVzc2FnZSo+KG5leHRNZXNzYWdlLmdl
dCgpKS0+ZGF0YSgpOwotICAgICAgICAgICAgY3JlYXRlSW1hZ2UoZGF0YS5pbWFnZUlELCBkYXRh
LmltYWdlKTsKKyAgICAgICAgICAgIGNyZWF0ZUltYWdlKGRhdGEuaW1hZ2VJRCwgZGF0YS5iaXRt
YXAuZ2V0KCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIAogICAgICAgICBjYXNl
IExheWVyVHJlZU1lc3NhZ2VUb1JlbmRlcmVyOjpEZXN0cm95SW1hZ2U6IHsKLSAgICAgICAgICAg
IGNvbnN0IENyZWF0ZUltYWdlTWVzc2FnZURhdGEmIGRhdGEgPSBzdGF0aWNfY2FzdDxDcmVhdGVJ
bWFnZU1lc3NhZ2UqPihuZXh0TWVzc2FnZS5nZXQoKSktPmRhdGEoKTsKKyAgICAgICAgICAgIGNv
bnN0IERlc3Ryb3lJbWFnZU1lc3NhZ2VEYXRhJiBkYXRhID0gc3RhdGljX2Nhc3Q8RGVzdHJveUlt
YWdlTWVzc2FnZSo+KG5leHRNZXNzYWdlLmdldCgpKS0+ZGF0YSgpOwogICAgICAgICAgICAgZGVz
dHJveUltYWdlKGRhdGEuaW1hZ2VJRCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpA
QCAtNTM0LDggKzUzNCw3IEBAIHZvaWQgTGF5ZXJUcmVlSG9zdFByb3h5Ojp1cGRhdGVUaWxlRm9y
TGF5ZXIoaW50IGxheWVySUQsIGludCB0aWxlSUQsIGNvbnN0IFdlYktpCiAgICAgVXBkYXRlVGls
ZU1lc3NhZ2VEYXRhIGRhdGE7CiAgICAgZGF0YS5sYXllcklEID0gbGF5ZXJJRDsKICAgICBkYXRh
LnJlbW90ZVRpbGVJRCA9IHRpbGVJRDsKLSAgICBSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiBiaXRt
YXAgPSBTaGFyZWFibGVCaXRtYXA6OmNyZWF0ZSh1cGRhdGVJbmZvLmJpdG1hcEhhbmRsZSk7Ci0g
ICAgZGF0YS5pbWFnZSA9IGJpdG1hcC0+Y3JlYXRlUUltYWdlKCkuY29weSgpOworICAgIGRhdGEu
Yml0bWFwID0gU2hhcmVhYmxlQml0bWFwOjpjcmVhdGUodXBkYXRlSW5mby5iaXRtYXBIYW5kbGUp
OwogICAgIGRhdGEuc291cmNlUmVjdCA9IEludFJlY3QoSW50UG9pbnQ6Onplcm8oKSwgdXBkYXRl
SW5mby51cGRhdGVSZWN0Qm91bmRzLnNpemUoKSk7CiAgICAgZGF0YS50YXJnZXRSZWN0ID0gdXBk
YXRlSW5mby51cGRhdGVSZWN0Qm91bmRzOwogICAgIHB1c2hVcGRhdGVUb1F1ZXVlKFVwZGF0ZVRp
bGVNZXNzYWdlOjpjcmVhdGUoZGF0YSkpOwpAQCAtNTgwLDkgKzU3OSw4IEBAIHZvaWQgTGF5ZXJU
cmVlSG9zdFByb3h5OjpkaWRSZW5kZXJGcmFtZSgpCiB2b2lkIExheWVyVHJlZUhvc3RQcm94eTo6
Y3JlYXRlRGlyZWN0bHlDb21wb3NpdGVkSW1hZ2UoaW50NjRfdCBrZXksIGNvbnN0IFdlYktpdDo6
U2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmIGhhbmRsZSkKIHsKICAgICBDcmVhdGVJbWFnZU1lc3Nh
Z2VEYXRhIGRhdGE7Ci0gICAgUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4gYml0bWFwID0gU2hhcmVh
YmxlQml0bWFwOjpjcmVhdGUoaGFuZGxlKTsKICAgICBkYXRhLmltYWdlSUQgPSBrZXk7Ci0gICAg
ZGF0YS5pbWFnZSA9IGJpdG1hcC0+Y3JlYXRlUUltYWdlKCkuY29weSgpOworICAgIGRhdGEuYml0
bWFwID0gU2hhcmVhYmxlQml0bWFwOjpjcmVhdGUoaGFuZGxlKTsKICAgICBwdXNoVXBkYXRlVG9R
dWV1ZShDcmVhdGVJbWFnZU1lc3NhZ2U6OmNyZWF0ZShkYXRhKSk7CiB9CiAKQEAgLTYxMyw3ICs2
MTEsNiBAQCB2b2lkIExheWVyVHJlZUhvc3RQcm94eTo6cHVyZ2VHTFJlc291cmNlcygpCiAgICAg
ICAgIG5vZGUtPnB1cmdlTm9kZVRleHR1cmVzUmVjdXJzaXZlKCk7CiAKICAgICBtX2RpcmVjdGx5
Q29tcG9zaXRlZEltYWdlcy5jbGVhcigpOwotCiAgICAgbV90ZXh0dXJlTWFwcGVyLmNsZWFyKCk7
CiAKICAgICBtX2RyYXdpbmdBcmVhUHJveHktPnBhZ2UoKS0+cHJvY2VzcygpLT5zZW5kKE1lc3Nh
Z2VzOjpMYXllclRyZWVIb3N0OjpQdXJnZUJhY2tpbmdTdG9yZXMoKSwgbV9kcmF3aW5nQXJlYVBy
b3h5LT5wYWdlKCktPnBhZ2VJRCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9UaWxlZEJhY2tpbmdTdG9yZVJlbW90ZVRpbGUuY3BwIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1RpbGVkQmFja2luZ1N0b3JlUmVtb3RlVGlsZS5jcHAK
aW5kZXggNDE0MGU3Mi4uMzQwMDNhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1RpbGVkQmFja2luZ1N0b3JlUmVtb3RlVGlsZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1RpbGVkQmFja2luZ1N0b3JlUmVtb3RlVGlsZS5j
cHAKQEAgLTg4LDYgKzg4LDEwIEBAIFZlY3RvcjxJbnRSZWN0PiBUaWxlZEJhY2tpbmdTdG9yZVJl
bW90ZVRpbGU6OnVwZGF0ZUJhY2tCdWZmZXIoKQogICAgIE93blB0cjxHcmFwaGljc0NvbnRleHQ+
IGdyYXBoaWNzQ29udGV4dChiaXRtYXAtPmNyZWF0ZUdyYXBoaWNzQ29udGV4dCgpKTsKICAgICBn
cmFwaGljc0NvbnRleHQtPmRyYXdJbWFnZUJ1ZmZlcihtX2xvY2FsQnVmZmVyLmdldCgpLCBDb2xv
clNwYWNlRGV2aWNlUkdCLCBJbnRQb2ludCgwLCAwKSk7CiAKKyNpZiBQTEFURk9STShRVCkKKyAg
ICBiaXRtYXAtPnN3aXp6bGVSR0IoKTsKKyNlbmRpZgorCiAgICAgVXBkYXRlSW5mbyB1cGRhdGVJ
bmZvOwogICAgIHVwZGF0ZUluZm8udXBkYXRlUmVjdEJvdW5kcyA9IG1fcmVjdDsKICAgICB1cGRh
dGVJbmZvLnVwZGF0ZVNjYWxlRmFjdG9yID0gbV90aWxlZEJhY2tpbmdTdG9yZS0+Y29udGVudHNT
Y2FsZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3F0
L0xheWVyVHJlZUhvc3RRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
cXQvTGF5ZXJUcmVlSG9zdFF0LmNwcAppbmRleCAxYzc0ZmM4Li41ZGUyMGMyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvcXQvTGF5ZXJUcmVlSG9zdFF0LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvcXQvTGF5ZXJUcmVlSG9z
dFF0LmNwcApAQCAtMzIxLDYgKzMyMSw3IEBAIGludDY0X3QgTGF5ZXJUcmVlSG9zdFF0OjphZG9w
dEltYWdlQmFja2luZ1N0b3JlKEltYWdlKiBpbWFnZSkKICAgICAgICAgZ3JhcGhpY3NDb250ZXh0
LT5kcmF3SW1hZ2UoaW1hZ2UsIENvbG9yU3BhY2VEZXZpY2VSR0IsIEludFBvaW50Ojp6ZXJvKCkp
OwogICAgIH0KIAorICAgIGJpdG1hcC0+c3dpenpsZVJHQigpOwogICAgIFNoYXJlYWJsZUJpdG1h
cDo6SGFuZGxlIGhhbmRsZTsKICAgICBiaXRtYXAtPmNyZWF0ZUhhbmRsZShoYW5kbGUpOwogICAg
IG1fd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6TGF5ZXJUcmVlSG9zdFByb3h5OjpDcmVhdGVEaXJl
Y3RseUNvbXBvc2l0ZWRJbWFnZShrZXksIGhhbmRsZSkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123660</attachid>
            <date>2012-01-23 16:51:08 -0800</date>
            <delta_ts>2012-01-24 06:21:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>16644</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA3NTM0OWQyLi5hN2Y1N2QzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUg
QEAKKzIwMTItMDEtMjMgIE5vJ2FtIFJvc2VudGhhbCAgPG5vYW0ucm9zZW50aGFsQG5va2lhLmNv
bT4KKworICAgICAgICBbUXRdW1dLMl0gUXQncyBjcm9zcy1wcm9jZXNzIEFDIGNvcGllcyBpbWFn
ZXMgZXhjZXNzaXZlbHkgd2hlbiB1cGRhdGluZyB0aWxlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2ODc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEJpdG1hcFRleHR1cmU6OnVwZGF0ZVJhd0Nv
bnRlbnRzKCksIHdoaWNoIGFsbG93cyB1cGxvYWRpbmcgaW1hZ2UgZGF0YSB0byBhIHRleHR1cmUK
KyAgICAgICAgd2l0aG91dCBjaGFuZ2luZyBpdHMgZm9ybWF0IG9yIHN3aXp6bGluZyBSR0IuIFRo
ZSBkYXRhIGhhcyB0byBiZSBpbiB0aGUgdGV4dHVyZSdzIG5hdGl2ZQorICAgICAgICBmb3JtYXQu
CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCB0aGlzIGFmZmVjdHMgcGVyZm9ybWFuY2Ugb24gYWxs
IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL1Rl
eHR1cmVNYXBwZXJHTC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBUZXh0dXJlR0w6OnVw
ZGF0ZVJhd0NvbnRlbnRzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9xdC9UZXh0dXJl
TWFwcGVyUXQuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJl
TWFwcGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBUZXh0dXJlOjp1cGRhdGVSYXdDb250
ZW50cyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJO
b2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJOb2RlOjpzZXRDb250ZW50
c1RpbGVCYWNrQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4
dHVyZU1hcHBlck5vZGUuaDoKKwogMjAxMi0wMS0yMyAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBh
cHBsZS5jb20+CiAKICAgICAgICAgQXR0ZW1wdCB0byBmaXggUXQgYnVpbGQuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvVGV4dHVyZU1hcHBlckdM
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9UZXh0dXJlTWFw
cGVyR0wuY3BwCmluZGV4IDBmZjcwMjIuLmRlMDQxYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9UZXh0dXJlTWFwcGVyR0wuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9UZXh0dXJlTWFwcGVyR0wuY3Bw
CkBAIC0zNDcsNiArMzQ3LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0VGV4dHVyZU1hcHBlcihU
ZXh0dXJlTWFwcGVyR0wqIHRleG1hcCkgeyBtX3RleHR1cmVNYXBwZXIgPSB0ZXhtYXA7IH0KIAog
ICAgIHZvaWQgdXBkYXRlQ29udGVudHMoUGl4ZWxGb3JtYXQsIGNvbnN0IEludFJlY3QmLCB2b2lk
Kik7CisgICAgdm9pZCB1cGRhdGVSYXdDb250ZW50cyhjb25zdCBJbnRSZWN0JiwgY29uc3Qgdm9p
ZCopOwogICAgIHZvaWQgcGFjaygpCiAgICAgewogICAgICAgICAvLyBUaGlzIGlzIGN1cnJlbnRs
eSBhIHN0dWIuCkBAIC03MzcsNiArNzM4LDEzIEBAIHZvaWQgQml0bWFwVGV4dHVyZUdMOjp1cGRh
dGVDb250ZW50cyhQaXhlbEZvcm1hdCBwaXhlbEZvcm1hdCwgY29uc3QgSW50UmVjdCYgcmVjCiAg
ICAgR0xfQ01EKGdsVGV4U3ViSW1hZ2UyRChHTF9URVhUVVJFXzJELCAwLCByZWN0LngoKSwgcmVj
dC55KCksIHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSwgZ2xGb3JtYXQsIEdMX1VOU0lHTkVE
X0JZVEUsIGJpdHMpKQogfQogCit2b2lkIEJpdG1hcFRleHR1cmVHTDo6dXBkYXRlUmF3Q29udGVu
dHMoY29uc3QgSW50UmVjdCYgcmVjdCwgY29uc3Qgdm9pZCogYml0cykKK3sKKyAgICBHTF9DTUQo
Z2xCaW5kVGV4dHVyZShHTF9URVhUVVJFXzJELCBtX2lkKSkKKyAgICBHTHVpbnQgZ2xGb3JtYXQg
PSBpc09wYXF1ZSgpID8gR0xfUkdCIDogR0xfUkdCQTsKKyAgICBHTF9DTUQoZ2xUZXhTdWJJbWFn
ZTJEKEdMX1RFWFRVUkVfMkQsIDAsIHJlY3QueCgpLCByZWN0LnkoKSwgcmVjdC53aWR0aCgpLCBy
ZWN0LmhlaWdodCgpLCBnbEZvcm1hdCwgR0xfVU5TSUdORURfQllURSwgYml0cykpCit9CisKIHZv
aWQgQml0bWFwVGV4dHVyZUdMOjpzZXRDb250ZW50c1RvSW1hZ2UoSW1hZ2UqIGltYWdlKQogewog
ICAgIEltYWdlVUlEIHVpZCA9IGltYWdlID8gdWlkRm9ySW1hZ2UoaW1hZ2UpIDogMDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L1RleHR1cmVNYXBwZXJR
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9UZXh0dXJlTWFwcGVy
UXQuY3BwCmluZGV4IGY0MWE0MjEuLjk4Y2M4MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3F0L1RleHR1cmVNYXBwZXJRdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvVGV4dHVyZU1hcHBlclF0LmNwcApAQCAtNzYsNyAr
NzYsNiBAQCB2b2lkIEJpdG1hcFRleHR1cmVRdDo6dXBkYXRlQ29udGVudHMoUGl4ZWxGb3JtYXQg
cGl4ZWxGb3JtYXQsIGNvbnN0IEludFJlY3QmIHJlYwogICAgIG1fcGFpbnRlci5lbmQoKTsKIH0K
IAotCiBib29sIEJpdG1hcFRleHR1cmVRdDo6c2F2ZShjb25zdCBTdHJpbmcmIHBhdGgpCiB7CiAg
ICAgcmV0dXJuIG1fcGl4bWFwLnNhdmUocGF0aCwgIlBORyIpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyLmgKaW5kZXgg
YzFkY2JiZC4uZDY2ZmUyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlci5oCkBAIC03MSw2ICs3MSw3IEBAIHB1Ymxp
YzoKICAgICAvLyBGb3IgcGVyZm9ybWFuY2UgcmVhc29ucywgQml0bWFwVGV4dHVyZSBtaWdodCBt
b2RpZnkgdGhlIGJpdHMgZGlyZWN0bHkgKHN3aXp6bGUpLgogICAgIC8vIFRodXMsIHRoaXMgbWV0
aG9kIGlzIG9ubHkgcmVjb21tZW5kZWQgZm9yIGJ1ZmZlciB1cGRhdGUsIHN1Y2ggYXMgdXNlZCBi
eSBXZWJLaXQyLgogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVDb250ZW50cyhQaXhlbEZvcm1hdCwg
Y29uc3QgSW50UmVjdCYsIHZvaWQqIGJpdHMpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRl
UmF3Q29udGVudHMoY29uc3QgSW50UmVjdCYsIGNvbnN0IHZvaWQqIGJpdHMpIHsgfQogICAgIHZp
cnR1YWwgUGxhdGZvcm1HcmFwaGljc0NvbnRleHQqIGJlZ2luUGFpbnRNZWRpYSgpCiAgICAgewog
ICAgICAgICByZXR1cm4gYmVnaW5QYWludChJbnRSZWN0KDAsIDAsIHNpemUoKS53aWR0aCgpLCBz
aXplKCkuaGVpZ2h0KCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUuY3BwCmluZGV4IDIxN2E5NTUu
LmNjZjQ5YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9UZXh0dXJlTWFwcGVyTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmNwcApAQCAtNDgxLDcgKzQ4MSw3IEBA
IHZvaWQgVGV4dHVyZU1hcHBlck5vZGU6OmNsZWFyQWxsRGlyZWN0bHlDb21wb3NpdGVkSW1hZ2VU
aWxlcygpCiAgICAgfQogfQogCi12b2lkIFRleHR1cmVNYXBwZXJOb2RlOjpzZXRDb250ZW50c1Rp
bGVCYWNrQnVmZmVyKGludCBpZCwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50
UmVjdCYgdGFyZ2V0UmVjdCwgdm9pZCogYml0cywgQml0bWFwVGV4dHVyZTo6UGl4ZWxGb3JtYXQg
Zm9ybWF0KQordm9pZCBUZXh0dXJlTWFwcGVyTm9kZTo6c2V0Q29udGVudHNUaWxlQmFja0J1ZmZl
cihpbnQgaWQsIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IEludFJlY3QmIHRhcmdl
dFJlY3QsIGNvbnN0IHZvaWQqIGJpdHMpCiB7CiAgICAgQVNTRVJUKG1fdGV4dHVyZU1hcHBlcik7
CiAKQEAgLTQ5OCw3ICs0OTgsNyBAQCB2b2lkIFRleHR1cmVNYXBwZXJOb2RlOjpzZXRDb250ZW50
c1RpbGVCYWNrQnVmZmVyKGludCBpZCwgY29uc3QgSW50UmVjdCYgc291cmNlUgogICAgIGlmICgh
dGlsZS5iYWNrQnVmZmVyLnRleHR1cmUpCiAgICAgICAgIHRpbGUuYmFja0J1ZmZlci50ZXh0dXJl
ID0gbV90ZXh0dXJlTWFwcGVyLT5jcmVhdGVUZXh0dXJlKCk7CiAgICAgdGlsZS5iYWNrQnVmZmVy
LnRleHR1cmUtPnJlc2V0KHNvdXJjZVJlY3Quc2l6ZSgpLCBmYWxzZSk7Ci0gICAgdGlsZS5iYWNr
QnVmZmVyLnRleHR1cmUtPnVwZGF0ZUNvbnRlbnRzKGZvcm1hdCwgc291cmNlUmVjdCwgYml0cyk7
CisgICAgdGlsZS5iYWNrQnVmZmVyLnRleHR1cmUtPnVwZGF0ZVJhd0NvbnRlbnRzKHNvdXJjZVJl
Y3QsIGJpdHMpOwogICAgIHRpbGUuaXNCYWNrQnVmZmVyVXBkYXRlZCA9IHRydWU7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJl
TWFwcGVyTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJOb2RlLmgKaW5kZXggMjdiZmYxZC4uZmU0YjE0YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJOb2RlLmgKQEAgLTE0OCw3ICsxNDgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRUaWxlT3du
ZXJzaGlwKFRpbGVPd25lcnNoaXAgb3duZXJzaGlwKSB7IG1fc3RhdGUudGlsZU93bmVyc2hpcCA9
IG93bmVyc2hpcDsgfQogICAgIGludCBjcmVhdGVDb250ZW50c1RpbGUoZmxvYXQgc2NhbGUpOwog
ICAgIHZvaWQgcmVtb3ZlQ29udGVudHNUaWxlKGludCBpZCk7Ci0gICAgdm9pZCBzZXRDb250ZW50
c1RpbGVCYWNrQnVmZmVyKGludCBpZCwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3Qg
SW50UmVjdCYgdGFyZ2V0UmVjdCwgdm9pZCogYml0cywgQml0bWFwVGV4dHVyZTo6UGl4ZWxGb3Jt
YXQpOworICAgIHZvaWQgc2V0Q29udGVudHNUaWxlQmFja0J1ZmZlcihpbnQgaWQsIGNvbnN0IElu
dFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IEludFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IHZvaWQq
IGJpdHMpOwogICAgIHZvaWQgc2V0VGlsZUJhY2tCdWZmZXJUZXh0dXJlRm9yRGlyZWN0bHlDb21w
b3NpdGVkSW1hZ2UoaW50IGlkLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBGbG9h
dFJlY3QmIHRhcmdldFJlY3QsIEJpdG1hcFRleHR1cmUqKTsKICAgICB2b2lkIGNsZWFyQWxsRGly
ZWN0bHlDb21wb3NpdGVkSW1hZ2VUaWxlcygpOwogICAgIHZvaWQgcHVyZ2VOb2RlVGV4dHVyZXNS
ZWN1cnNpdmUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBiMTFjZmZjLi45NWY1NDczIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzYgQEAKKzIwMTItMDEtMjMgIE5vJ2FtIFJvc2VudGhhbCAgPG5vYW0ucm9zZW50
aGFsQG5va2lhLmNvbT4KKworICAgICAgICBbUXRdW1dLMl0gUXQncyBjcm9zcy1wcm9jZXNzIEFD
IGNvcGllcyBpbWFnZXMgZXhjZXNzaXZlbHkgd2hlbiB1cGRhdGluZyB0aWxlcy4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2ODc3CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW5zdGVhZCBvZiBjb3B5aW5n
IFFJbWFnZXMsIHBhc3MgYSByZWZlcmVuY2UgdG8gdGhlIFNoYXJlYWJsZUJpdG1hcCB0aGF0IHdh
cyBvcmlnaW5hbGx5CisgICAgICAgIGNyZWF0ZWQgYnkgdGhlIHdlYiBwcm9jZXNzLiBBbHNvLCBz
d2l6emxlIHRoZSBpbWFnZSdzIFJHQiBpbiB0aGUgd2ViIHByb2Nlc3MsIGJlZm9yZSBpdCdzCisg
ICAgICAgIHRyYW5zZmVycmVkIHRvIHRoZSBVSSBwcm9jZXNzLgorCisgICAgICAgIERhdGEgZmxv
dyBiZWZvcmUgY2hhbmdlOgorICAgICAgICAoV2ViIFByb2Nlc3MpIFJlbmRlciB0byBpbWFnZSAt
PiBJUEMgLT4gKFVJIFByb2Nlc3MpIENvcHkgKHJlbmRlciBxdWV1ZSkgLT4gQ29weSBTd2l6emxl
ZCBSR0IgLT4gVXBsb2FkCisKKyAgICAgICAgRGF0YSBmbG93IGFmdGVyIGNoYW5nZToKKyAgICAg
ICAgKFdlYiBQcm9jZXNzKSBSZW5kZXIgdG8gaW1hZ2UgLT4gc3dpenpsZSBSR0IgLT4gSVBDIC0+
IChVSSBQcm9jZXNzKSAtPiBVcGxvYWQKKworICAgICAgICAqIFNoYXJlZC9TaGFyZWFibGVCaXRt
YXAuaDoKKyAgICAgICAgKiBTaGFyZWQvcXQvU2hhcmVhYmxlQml0bWFwUXQuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpTaGFyZWFibGVCaXRtYXA6OnN3aXp6bGVSR0IpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9MYXllclRyZWVIb3N0UHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvcXQvTGF5ZXJU
cmVlSG9zdFByb3h5UXQuY3BwOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVIb3N0UHJveHk6
OnVwZGF0ZVRpbGUpOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVIb3N0UHJveHk6OmNyZWF0
ZUltYWdlKToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlSG9zdFByb3h5OjpzeW5jUmVtb3Rl
Q29udGVudCk6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUhvc3RQcm94eTo6dXBkYXRlVGls
ZUZvckxheWVyKToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlSG9zdFByb3h5OjpjcmVhdGVE
aXJlY3RseUNvbXBvc2l0ZWRJbWFnZSk6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUhvc3RQ
cm94eTo6cHVyZ2VHTFJlc291cmNlcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1Rp
bGVkQmFja2luZ1N0b3JlUmVtb3RlVGlsZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlRpbGVkQmFj
a2luZ1N0b3JlUmVtb3RlVGlsZTo6dXBkYXRlQmFja0J1ZmZlcik6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL3F0L0xheWVyVHJlZUhvc3RRdC5jcHA6CisgICAgICAgIChXZWJLaXQ6Okxh
eWVyVHJlZUhvc3RRdDo6YWRvcHRJbWFnZUJhY2tpbmdTdG9yZSk6CisKIDIwMTItMDEtMjEgIFRp
bW90aHkgSGF0Y2hlciAgPHRpbW90aHlAYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgV2ViS2l0
MiByZW1lbWJlciB0aGUgaGVpZ2h0IG9mIHRoZSBXZWIgSW5zcGVjdG9yIHdoZW4gaXQgaXMgZG9j
a2VkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1NoYXJlYWJsZUJpdG1hcC5o
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1NoYXJlYWJsZUJpdG1hcC5oCmluZGV4IDEyY2Q3YWIu
LmM3OGExNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TaGFyZWFibGVCaXRt
YXAuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVhYmxlQml0bWFwLmgKQEAgLTEz
NSw2ICsxMzUsNyBAQCBwdWJsaWM6CiAgICAgLy8gVGhpcyBjcmVhdGVzIGEgUUltYWdlIHRoYXQg
ZGlyZWN0bHkgcmVmZXJlbmNlcyB0aGUgc2hhcmVkIGJpdG1hcCBkYXRhLgogICAgIC8vIFRoaXMg
aXMgb25seSBzYWZlIHRvIHVzZSB3aGVuIHdlIGtub3cgdGhhdCB0aGUgY29udGVudHMgb2YgdGhl
IHNoYXJlYWJsZSBiaXRtYXAgd29uJ3QgY2hhbmdlLgogICAgIFFJbWFnZSBjcmVhdGVRSW1hZ2Uo
KTsKKyAgICB2b2lkIHN3aXp6bGVSR0IoKTsKICNlbmRpZgogCiBwcml2YXRlOgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL3F0L1NoYXJlYWJsZUJpdG1hcFF0LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9xdC9TaGFyZWFibGVCaXRtYXBRdC5jcHAKaW5kZXggYjBhYjJlYy4u
ZDVlMzcxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL3F0L1NoYXJlYWJsZUJp
dG1hcFF0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvcXQvU2hhcmVhYmxlQml0bWFw
UXQuY3BwCkBAIC03MCw0ICs3MCwxNyBAQCB2b2lkIFNoYXJlYWJsZUJpdG1hcDo6cGFpbnQoR3Jh
cGhpY3NDb250ZXh0JiAvKmNvbnRleHQqLywgZmxvYXQgLypzY2FsZUZhY3RvciovLAogICAgIG5v
dEltcGxlbWVudGVkKCk7CiB9CiAKLX0gLy8gbmFtZXNwYWNlIFdlYktpdAordm9pZCBTaGFyZWFi
bGVCaXRtYXA6OnN3aXp6bGVSR0IoKQoreworICAgIHVpbnQzMl90KiBkYXRhID0gcmVpbnRlcnBy
ZXRfY2FzdDx1aW50MzJfdCo+KHRoaXMtPmRhdGEoKSk7CisgICAgaW50IHdpZHRoID0gc2l6ZSgp
LndpZHRoKCk7CisgICAgaW50IGhlaWdodCA9IHNpemUoKS5oZWlnaHQoKTsKKyAgICBmb3IgKGlu
dCB5ID0gMDsgeSA8IGhlaWdodDsgKyt5KSB7CisgICAgICAgIHVpbnQzMl90KiBwID0gZGF0YSAr
IHkgKiB3aWR0aDsKKyAgICAgICAgZm9yIChpbnQgeCA9IDA7IHggPCB3aWR0aDsgKyt4KQorICAg
ICAgICAgICAgcFt4XSA9ICgocFt4XSA8PCAxNikgJiAweGZmMDAwMCkgfCAoKHBbeF0gPj4gMTYp
ICYgMHhmZikgfCAocFt4XSAmIDB4ZmYwMGZmMDApOworICAgIH0KK30KKworfQorLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xheWVyVHJl
ZUhvc3RQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xheWVyVHJlZUhvc3RQcm94
eS5oCmluZGV4IDQ2YzRkMTQuLjAwNGMyODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9MYXllclRyZWVIb3N0UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvTGF5ZXJUcmVlSG9zdFByb3h5LmgKQEAgLTExMCw4ICsxMTAsOCBAQCBwcm90ZWN0ZWQ6CiAg
ICAgdm9pZCBzeW5jTGF5ZXJQYXJhbWV0ZXJzKGNvbnN0IFdlYkxheWVySW5mbyYpOwogICAgIHZv
aWQgY3JlYXRlVGlsZShXZWJMYXllcklELCBpbnQsIGZsb2F0IHNjYWxlKTsKICAgICB2b2lkIHJl
bW92ZVRpbGUoV2ViTGF5ZXJJRCwgaW50KTsKLSAgICB2b2lkIHVwZGF0ZVRpbGUoV2ViTGF5ZXJJ
RCwgaW50LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYs
IGNvbnN0IFFJbWFnZSYpOwotICAgIHZvaWQgY3JlYXRlSW1hZ2UoaW50NjRfdCwgY29uc3QgUUlt
YWdlJik7CisgICAgdm9pZCB1cGRhdGVUaWxlKFdlYkxheWVySUQsIGludCwgY29uc3QgV2ViQ29y
ZTo6SW50UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBTaGFyZWFibGVCaXRtYXAqKTsK
KyAgICB2b2lkIGNyZWF0ZUltYWdlKGludDY0X3QsIFNoYXJlYWJsZUJpdG1hcCopOwogICAgIHZv
aWQgZGVzdHJveUltYWdlKGludDY0X3QpOwogICAgIHZvaWQgYXNzaWduSW1hZ2VUb0xheWVyKFdl
YkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBpbnQ2NF90IGltYWdlSUQpOwogICAgIHZvaWQgZmx1c2hM
YXllckNoYW5nZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9M
YXllclRyZWVIb3N0UHJveHlRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvTGF5
ZXJUcmVlSG9zdFByb3h5UXQuY3BwCmluZGV4IDhjNDI4ZDcuLjQ1ZGM4Y2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9MYXllclRyZWVIb3N0UHJveHlRdC5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L0xheWVyVHJlZUhvc3RQcm94eVF0LmNwcApA
QCAtOTYsNyArOTYsNyBAQCBzdHJ1Y3QgVXBkYXRlVGlsZU1lc3NhZ2VEYXRhIHsKICAgICBpbnQg
cmVtb3RlVGlsZUlEOwogICAgIEludFJlY3Qgc291cmNlUmVjdDsKICAgICBJbnRSZWN0IHRhcmdl
dFJlY3Q7Ci0gICAgUUltYWdlIGltYWdlOworICAgIFJlZlB0cjxTaGFyZWFibGVCaXRtYXA+IGJp
dG1hcDsKIH07CiAKIHN0cnVjdCBSZW1vdmVUaWxlTWVzc2FnZURhdGEgewpAQCAtMTA2LDcgKzEw
Niw3IEBAIHN0cnVjdCBSZW1vdmVUaWxlTWVzc2FnZURhdGEgewogCiBzdHJ1Y3QgQ3JlYXRlSW1h
Z2VNZXNzYWdlRGF0YSB7CiAgICAgaW50NjRfdCBpbWFnZUlEOwotICAgIFFJbWFnZSBpbWFnZTsK
KyAgICBSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiBiaXRtYXA7CiB9OwogCiBzdHJ1Y3QgRGVzdHJv
eUltYWdlTWVzc2FnZURhdGEgewpAQCAtMzUwLDcgKzM1MCw3IEBAIHZvaWQgTGF5ZXJUcmVlSG9z
dFByb3h5OjpyZW1vdmVUaWxlKFdlYkxheWVySUQgbGF5ZXJJRCwgaW50IHRpbGVJRCkKICAgICBt
X3RpbGVUb05vZGVUaWxlLnJlbW92ZSh0aWxlSUQpOwogfQogCi12b2lkIExheWVyVHJlZUhvc3RQ
cm94eTo6dXBkYXRlVGlsZShXZWJMYXllcklEIGxheWVySUQsIGludCB0aWxlSUQsIGNvbnN0IElu
dFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IEludFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IFFJbWFn
ZSYgaW1hZ2UpCit2b2lkIExheWVyVHJlZUhvc3RQcm94eTo6dXBkYXRlVGlsZShXZWJMYXllcklE
IGxheWVySUQsIGludCB0aWxlSUQsIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IElu
dFJlY3QmIHRhcmdldFJlY3QsIFNoYXJlYWJsZUJpdG1hcCogYml0bWFwKQogewogICAgIGVuc3Vy
ZUxheWVyKGxheWVySUQpOwogICAgIFRleHR1cmVNYXBwZXJOb2RlKiBub2RlID0gdG9UZXh0dXJl
TWFwcGVyTm9kZShsYXllckJ5SUQobGF5ZXJJRCkpOwpAQCAtMzYxLDE1ICszNjEsMTYgQEAgdm9p
ZCBMYXllclRyZWVIb3N0UHJveHk6OnVwZGF0ZVRpbGUoV2ViTGF5ZXJJRCBsYXllcklELCBpbnQg
dGlsZUlELCBjb25zdCBJbnRSZWMKICAgICBpZiAoIW5vZGVUaWxlSUQpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIFFJbWFnZSBpbWFnZVJlZihpbWFnZSk7CiAgICAgbm9kZS0+c2V0VGV4dHVyZU1h
cHBlcihtX3RleHR1cmVNYXBwZXIuZ2V0KCkpOwotICAgIG5vZGUtPnNldENvbnRlbnRzVGlsZUJh
Y2tCdWZmZXIobm9kZVRpbGVJRCwgc291cmNlUmVjdCwgdGFyZ2V0UmVjdCwgaW1hZ2VSZWYuYml0
cygpLCBCaXRtYXBUZXh0dXJlOjpCR1JBRm9ybWF0KTsKKyAgICBRSW1hZ2UgaW1hZ2UgPSBiaXRt
YXAtPmNyZWF0ZVFJbWFnZSgpOworICAgIG5vZGUtPnNldENvbnRlbnRzVGlsZUJhY2tCdWZmZXIo
bm9kZVRpbGVJRCwgc291cmNlUmVjdCwgdGFyZ2V0UmVjdCwgaW1hZ2UuY29uc3RCaXRzKCkpOwog
fQogCi12b2lkIExheWVyVHJlZUhvc3RQcm94eTo6Y3JlYXRlSW1hZ2UoaW50NjRfdCBpbWFnZUlE
LCBjb25zdCBRSW1hZ2UmIGltYWdlKQordm9pZCBMYXllclRyZWVIb3N0UHJveHk6OmNyZWF0ZUlt
YWdlKGludDY0X3QgaW1hZ2VJRCwgU2hhcmVhYmxlQml0bWFwKiBiaXRtYXApCiB7CiAgICAgVGls
ZWRJbWFnZSB0aWxlZEltYWdlOwogICAgIHN0YXRpYyBjb25zdCBpbnQgVGlsZURpbWVuc2lvbiA9
IDEwMjQ7CisgICAgUUltYWdlIGltYWdlID0gYml0bWFwLT5jcmVhdGVRSW1hZ2UoKTsKICAgICBi
b29sIGltYWdlSGFzQWxwaGEgPSBpbWFnZS5oYXNBbHBoYUNoYW5uZWwoKTsKICAgICBJbnRSZWN0
IGltYWdlUmVjdCgwLCAwLCBpbWFnZS53aWR0aCgpLCBpbWFnZS5oZWlnaHQoKSk7CiAgICAgZm9y
IChpbnQgeSA9IDA7IHkgPCBpbWFnZS5oZWlnaHQoKTsgeSArPSBUaWxlRGltZW5zaW9uKSB7CkBA
IC0zODMsMTMgKzM4NCwxMiBAQCB2b2lkIExheWVyVHJlZUhvc3RQcm94eTo6Y3JlYXRlSW1hZ2Uo
aW50NjRfdCBpbWFnZUlELCBjb25zdCBRSW1hZ2UmIGltYWdlKQogICAgICAgICAgICAgICAgIHN1
YkltYWdlID0gaW1hZ2UuY29weShyZWN0KTsKICAgICAgICAgICAgIFJlZlB0cjxCaXRtYXBUZXh0
dXJlPiB0ZXh0dXJlID0gbV90ZXh0dXJlTWFwcGVyLT5jcmVhdGVUZXh0dXJlKCk7CiAgICAgICAg
ICAgICB0ZXh0dXJlLT5yZXNldChyZWN0LnNpemUoKSwgIWltYWdlSGFzQWxwaGEpOwotICAgICAg
ICAgICAgdGV4dHVyZS0+dXBkYXRlQ29udGVudHMoaW1hZ2VIYXNBbHBoYSA/IEJpdG1hcFRleHR1
cmU6OkJHUkFGb3JtYXQgOiBCaXRtYXBUZXh0dXJlOjpCR1JGb3JtYXQsIEludFJlY3QoSW50UG9p
bnQ6Onplcm8oKSwgcmVjdC5zaXplKCkpLCBzdWJJbWFnZS5iaXRzKCkpOworICAgICAgICAgICAg
dGV4dHVyZS0+dXBkYXRlUmF3Q29udGVudHMoSW50UmVjdChJbnRQb2ludDo6emVybygpLCByZWN0
LnNpemUoKSksIHN1YkltYWdlLmNvbnN0Qml0cygpKTsKICAgICAgICAgICAgIHRpbGVkSW1hZ2Uu
YWRkKHJlY3QubG9jYXRpb24oKSwgdGV4dHVyZSk7CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBt
X2RpcmVjdGx5Q29tcG9zaXRlZEltYWdlcy5yZW1vdmUoaW1hZ2VJRCk7Ci0gICAgbV9kaXJlY3Rs
eUNvbXBvc2l0ZWRJbWFnZXMuYWRkKGltYWdlSUQsIHRpbGVkSW1hZ2UpOworICAgIG1fZGlyZWN0
bHlDb21wb3NpdGVkSW1hZ2VzLnNldChpbWFnZUlELCB0aWxlZEltYWdlKTsKIH0KIAogdm9pZCBM
YXllclRyZWVIb3N0UHJveHk6OmRlc3Ryb3lJbWFnZShpbnQ2NF90IGltYWdlSUQpCkBAIC00OTAs
MTggKzQ5MCwxOCBAQCB2b2lkIExheWVyVHJlZUhvc3RQcm94eTo6c3luY1JlbW90ZUNvbnRlbnQo
KQogCiAgICAgICAgIGNhc2UgTGF5ZXJUcmVlTWVzc2FnZVRvUmVuZGVyZXI6OlVwZGF0ZVRpbGU6
IHsKICAgICAgICAgICAgIGNvbnN0IFVwZGF0ZVRpbGVNZXNzYWdlRGF0YSYgZGF0YSA9IHN0YXRp
Y19jYXN0PFVwZGF0ZVRpbGVNZXNzYWdlKj4obmV4dE1lc3NhZ2UuZ2V0KCkpLT5kYXRhKCk7Ci0g
ICAgICAgICAgICB1cGRhdGVUaWxlKGRhdGEubGF5ZXJJRCwgZGF0YS5yZW1vdGVUaWxlSUQsIGRh
dGEuc291cmNlUmVjdCwgZGF0YS50YXJnZXRSZWN0LCBkYXRhLmltYWdlKTsKKyAgICAgICAgICAg
IHVwZGF0ZVRpbGUoZGF0YS5sYXllcklELCBkYXRhLnJlbW90ZVRpbGVJRCwgZGF0YS5zb3VyY2VS
ZWN0LCBkYXRhLnRhcmdldFJlY3QsIGRhdGEuYml0bWFwLmdldCgpKTsKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICB9CiAKICAgICAgICAgY2FzZSBMYXllclRyZWVNZXNzYWdlVG9SZW5kZXJl
cjo6Q3JlYXRlSW1hZ2U6IHsKICAgICAgICAgICAgIGNvbnN0IENyZWF0ZUltYWdlTWVzc2FnZURh
dGEmIGRhdGEgPSBzdGF0aWNfY2FzdDxDcmVhdGVJbWFnZU1lc3NhZ2UqPihuZXh0TWVzc2FnZS5n
ZXQoKSktPmRhdGEoKTsKLSAgICAgICAgICAgIGNyZWF0ZUltYWdlKGRhdGEuaW1hZ2VJRCwgZGF0
YS5pbWFnZSk7CisgICAgICAgICAgICBjcmVhdGVJbWFnZShkYXRhLmltYWdlSUQsIGRhdGEuYml0
bWFwLmdldCgpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKICAgICAgICAgY2Fz
ZSBMYXllclRyZWVNZXNzYWdlVG9SZW5kZXJlcjo6RGVzdHJveUltYWdlOiB7Ci0gICAgICAgICAg
ICBjb25zdCBDcmVhdGVJbWFnZU1lc3NhZ2VEYXRhJiBkYXRhID0gc3RhdGljX2Nhc3Q8Q3JlYXRl
SW1hZ2VNZXNzYWdlKj4obmV4dE1lc3NhZ2UuZ2V0KCkpLT5kYXRhKCk7CisgICAgICAgICAgICBj
b25zdCBEZXN0cm95SW1hZ2VNZXNzYWdlRGF0YSYgZGF0YSA9IHN0YXRpY19jYXN0PERlc3Ryb3lJ
bWFnZU1lc3NhZ2UqPihuZXh0TWVzc2FnZS5nZXQoKSktPmRhdGEoKTsKICAgICAgICAgICAgIGRl
c3Ryb3lJbWFnZShkYXRhLmltYWdlSUQpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
QEAgLTUzNCw4ICs1MzQsNyBAQCB2b2lkIExheWVyVHJlZUhvc3RQcm94eTo6dXBkYXRlVGlsZUZv
ckxheWVyKGludCBsYXllcklELCBpbnQgdGlsZUlELCBjb25zdCBXZWJLaQogICAgIFVwZGF0ZVRp
bGVNZXNzYWdlRGF0YSBkYXRhOwogICAgIGRhdGEubGF5ZXJJRCA9IGxheWVySUQ7CiAgICAgZGF0
YS5yZW1vdGVUaWxlSUQgPSB0aWxlSUQ7Ci0gICAgUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4gYml0
bWFwID0gU2hhcmVhYmxlQml0bWFwOjpjcmVhdGUodXBkYXRlSW5mby5iaXRtYXBIYW5kbGUpOwot
ICAgIGRhdGEuaW1hZ2UgPSBiaXRtYXAtPmNyZWF0ZVFJbWFnZSgpLmNvcHkoKTsKKyAgICBkYXRh
LmJpdG1hcCA9IFNoYXJlYWJsZUJpdG1hcDo6Y3JlYXRlKHVwZGF0ZUluZm8uYml0bWFwSGFuZGxl
KTsKICAgICBkYXRhLnNvdXJjZVJlY3QgPSBJbnRSZWN0KEludFBvaW50Ojp6ZXJvKCksIHVwZGF0
ZUluZm8udXBkYXRlUmVjdEJvdW5kcy5zaXplKCkpOwogICAgIGRhdGEudGFyZ2V0UmVjdCA9IHVw
ZGF0ZUluZm8udXBkYXRlUmVjdEJvdW5kczsKICAgICBwdXNoVXBkYXRlVG9RdWV1ZShVcGRhdGVU
aWxlTWVzc2FnZTo6Y3JlYXRlKGRhdGEpKTsKQEAgLTU4MCw5ICs1NzksOCBAQCB2b2lkIExheWVy
VHJlZUhvc3RQcm94eTo6ZGlkUmVuZGVyRnJhbWUoKQogdm9pZCBMYXllclRyZWVIb3N0UHJveHk6
OmNyZWF0ZURpcmVjdGx5Q29tcG9zaXRlZEltYWdlKGludDY0X3Qga2V5LCBjb25zdCBXZWJLaXQ6
OlNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiBoYW5kbGUpCiB7CiAgICAgQ3JlYXRlSW1hZ2VNZXNz
YWdlRGF0YSBkYXRhOwotICAgIFJlZlB0cjxTaGFyZWFibGVCaXRtYXA+IGJpdG1hcCA9IFNoYXJl
YWJsZUJpdG1hcDo6Y3JlYXRlKGhhbmRsZSk7CiAgICAgZGF0YS5pbWFnZUlEID0ga2V5OwotICAg
IGRhdGEuaW1hZ2UgPSBiaXRtYXAtPmNyZWF0ZVFJbWFnZSgpLmNvcHkoKTsKKyAgICBkYXRhLmJp
dG1hcCA9IFNoYXJlYWJsZUJpdG1hcDo6Y3JlYXRlKGhhbmRsZSk7CiAgICAgcHVzaFVwZGF0ZVRv
UXVldWUoQ3JlYXRlSW1hZ2VNZXNzYWdlOjpjcmVhdGUoZGF0YSkpOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVGlsZWRCYWNraW5nU3RvcmVSZW1v
dGVUaWxlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9UaWxlZEJhY2tp
bmdTdG9yZVJlbW90ZVRpbGUuY3BwCmluZGV4IDQxNDBlNzIuLjM0MDAzYWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9UaWxlZEJhY2tpbmdTdG9yZVJlbW90
ZVRpbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9UaWxlZEJh
Y2tpbmdTdG9yZVJlbW90ZVRpbGUuY3BwCkBAIC04OCw2ICs4OCwxMCBAQCBWZWN0b3I8SW50UmVj
dD4gVGlsZWRCYWNraW5nU3RvcmVSZW1vdGVUaWxlOjp1cGRhdGVCYWNrQnVmZmVyKCkKICAgICBP
d25QdHI8R3JhcGhpY3NDb250ZXh0PiBncmFwaGljc0NvbnRleHQoYml0bWFwLT5jcmVhdGVHcmFw
aGljc0NvbnRleHQoKSk7CiAgICAgZ3JhcGhpY3NDb250ZXh0LT5kcmF3SW1hZ2VCdWZmZXIobV9s
b2NhbEJ1ZmZlci5nZXQoKSwgQ29sb3JTcGFjZURldmljZVJHQiwgSW50UG9pbnQoMCwgMCkpOwog
CisjaWYgUExBVEZPUk0oUVQpCisgICAgYml0bWFwLT5zd2l6emxlUkdCKCk7CisjZW5kaWYKKwog
ICAgIFVwZGF0ZUluZm8gdXBkYXRlSW5mbzsKICAgICB1cGRhdGVJbmZvLnVwZGF0ZVJlY3RCb3Vu
ZHMgPSBtX3JlY3Q7CiAgICAgdXBkYXRlSW5mby51cGRhdGVTY2FsZUZhY3RvciA9IG1fdGlsZWRC
YWNraW5nU3RvcmUtPmNvbnRlbnRzU2NhbGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9xdC9MYXllclRyZWVIb3N0UXQuY3BwIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3F0L0xheWVyVHJlZUhvc3RRdC5jcHAKaW5kZXggMWM3NGZj
OC4uNWRlMjBjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L3F0L0xheWVyVHJlZUhvc3RRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL3F0L0xheWVyVHJlZUhvc3RRdC5jcHAKQEAgLTMyMSw2ICszMjEsNyBAQCBpbnQ2NF90
IExheWVyVHJlZUhvc3RRdDo6YWRvcHRJbWFnZUJhY2tpbmdTdG9yZShJbWFnZSogaW1hZ2UpCiAg
ICAgICAgIGdyYXBoaWNzQ29udGV4dC0+ZHJhd0ltYWdlKGltYWdlLCBDb2xvclNwYWNlRGV2aWNl
UkdCLCBJbnRQb2ludDo6emVybygpKTsKICAgICB9CiAKKyAgICBiaXRtYXAtPnN3aXp6bGVSR0Io
KTsKICAgICBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSBoYW5kbGU7CiAgICAgYml0bWFwLT5jcmVh
dGVIYW5kbGUoaGFuZGxlKTsKICAgICBtX3dlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OkxheWVyVHJl
ZUhvc3RQcm94eTo6Q3JlYXRlRGlyZWN0bHlDb21wb3NpdGVkSW1hZ2Uoa2V5LCBoYW5kbGUpKTsK
</data>
<flag name="review"
          id="124743"
          type_id="1"
          status="+"
          setter="kenneth"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123723</attachid>
            <date>2012-01-24 06:21:31 -0800</date>
            <delta_ts>2012-01-24 06:45:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch-76877.diff</filename>
            <type>text/plain</type>
            <size>16802</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA3NTM0OWQyLi5hN2Y1N2QzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUg
QEAKKzIwMTItMDEtMjMgIE5vJ2FtIFJvc2VudGhhbCAgPG5vYW0ucm9zZW50aGFsQG5va2lhLmNv
bT4KKworICAgICAgICBbUXRdW1dLMl0gUXQncyBjcm9zcy1wcm9jZXNzIEFDIGNvcGllcyBpbWFn
ZXMgZXhjZXNzaXZlbHkgd2hlbiB1cGRhdGluZyB0aWxlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2ODc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
S2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4uCisKKyAgICAgICAgQWRkIEJpdG1hcFRleHR1cmU6
OnVwZGF0ZVJhd0NvbnRlbnRzKCksIHdoaWNoIGFsbG93cyB1cGxvYWRpbmcgaW1hZ2UgZGF0YSB0
byBhIHRleHR1cmUKKyAgICAgICAgd2l0aG91dCBjaGFuZ2luZyBpdHMgZm9ybWF0IG9yIHN3aXp6
bGluZyBSR0IuIFRoZSBkYXRhIGhhcyB0byBiZSBpbiB0aGUgdGV4dHVyZSdzIG5hdGl2ZQorICAg
ICAgICBmb3JtYXQuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCB0aGlzIGFmZmVjdHMgcGVyZm9y
bWFuY2Ugb24gYWxsIGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3Mvb3BlbmdsL1RleHR1cmVNYXBwZXJHTC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBU
ZXh0dXJlR0w6OnVwZGF0ZVJhd0NvbnRlbnRzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9xdC9UZXh0dXJlTWFwcGVyUXQuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9UZXh0dXJlTWFwcGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBUZXh0dXJlOjp1
cGRhdGVSYXdDb250ZW50cyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJOb2Rl
OjpzZXRDb250ZW50c1RpbGVCYWNrQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUuaDoKKwogMjAxMi0wMS0yMyAgQW50dGkgS29pdmlz
dG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgQXR0ZW1wdCB0byBmaXggUXQgYnVpbGQu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvVGV4
dHVyZU1hcHBlckdMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5n
bC9UZXh0dXJlTWFwcGVyR0wuY3BwCmluZGV4IDBmZjcwMjIuLmRlMDQxYmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9UZXh0dXJlTWFwcGVyR0wu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9UZXh0dXJl
TWFwcGVyR0wuY3BwCkBAIC0zNDcsNiArMzQ3LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0VGV4
dHVyZU1hcHBlcihUZXh0dXJlTWFwcGVyR0wqIHRleG1hcCkgeyBtX3RleHR1cmVNYXBwZXIgPSB0
ZXhtYXA7IH0KIAogICAgIHZvaWQgdXBkYXRlQ29udGVudHMoUGl4ZWxGb3JtYXQsIGNvbnN0IElu
dFJlY3QmLCB2b2lkKik7CisgICAgdm9pZCB1cGRhdGVSYXdDb250ZW50cyhjb25zdCBJbnRSZWN0
JiwgY29uc3Qgdm9pZCopOwogICAgIHZvaWQgcGFjaygpCiAgICAgewogICAgICAgICAvLyBUaGlz
IGlzIGN1cnJlbnRseSBhIHN0dWIuCkBAIC03MzcsNiArNzM4LDEzIEBAIHZvaWQgQml0bWFwVGV4
dHVyZUdMOjp1cGRhdGVDb250ZW50cyhQaXhlbEZvcm1hdCBwaXhlbEZvcm1hdCwgY29uc3QgSW50
UmVjdCYgcmVjCiAgICAgR0xfQ01EKGdsVGV4U3ViSW1hZ2UyRChHTF9URVhUVVJFXzJELCAwLCBy
ZWN0LngoKSwgcmVjdC55KCksIHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSwgZ2xGb3JtYXQs
IEdMX1VOU0lHTkVEX0JZVEUsIGJpdHMpKQogfQogCit2b2lkIEJpdG1hcFRleHR1cmVHTDo6dXBk
YXRlUmF3Q29udGVudHMoY29uc3QgSW50UmVjdCYgcmVjdCwgY29uc3Qgdm9pZCogYml0cykKK3sK
KyAgICBHTF9DTUQoZ2xCaW5kVGV4dHVyZShHTF9URVhUVVJFXzJELCBtX2lkKSkKKyAgICBHTHVp
bnQgZ2xGb3JtYXQgPSBpc09wYXF1ZSgpID8gR0xfUkdCIDogR0xfUkdCQTsKKyAgICBHTF9DTUQo
Z2xUZXhTdWJJbWFnZTJEKEdMX1RFWFRVUkVfMkQsIDAsIHJlY3QueCgpLCByZWN0LnkoKSwgcmVj
dC53aWR0aCgpLCByZWN0LmhlaWdodCgpLCBnbEZvcm1hdCwgR0xfVU5TSUdORURfQllURSwgYml0
cykpCit9CisKIHZvaWQgQml0bWFwVGV4dHVyZUdMOjpzZXRDb250ZW50c1RvSW1hZ2UoSW1hZ2Uq
IGltYWdlKQogewogICAgIEltYWdlVUlEIHVpZCA9IGltYWdlID8gdWlkRm9ySW1hZ2UoaW1hZ2Up
IDogMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L1Rl
eHR1cmVNYXBwZXJRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9U
ZXh0dXJlTWFwcGVyUXQuY3BwCmluZGV4IGY0MWE0MjEuLjk4Y2M4MjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L1RleHR1cmVNYXBwZXJRdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvVGV4dHVyZU1hcHBlclF0LmNw
cApAQCAtNzYsNyArNzYsNiBAQCB2b2lkIEJpdG1hcFRleHR1cmVRdDo6dXBkYXRlQ29udGVudHMo
UGl4ZWxGb3JtYXQgcGl4ZWxGb3JtYXQsIGNvbnN0IEludFJlY3QmIHJlYwogICAgIG1fcGFpbnRl
ci5lbmQoKTsKIH0KIAotCiBib29sIEJpdG1hcFRleHR1cmVRdDo6c2F2ZShjb25zdCBTdHJpbmcm
IHBhdGgpCiB7CiAgICAgcmV0dXJuIG1fcGl4bWFwLnNhdmUocGF0aCwgIlBORyIpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFw
cGVyLmgKaW5kZXggYzFkY2JiZC4uZDY2ZmUyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlci5oCkBAIC03MSw2ICs3
MSw3IEBAIHB1YmxpYzoKICAgICAvLyBGb3IgcGVyZm9ybWFuY2UgcmVhc29ucywgQml0bWFwVGV4
dHVyZSBtaWdodCBtb2RpZnkgdGhlIGJpdHMgZGlyZWN0bHkgKHN3aXp6bGUpLgogICAgIC8vIFRo
dXMsIHRoaXMgbWV0aG9kIGlzIG9ubHkgcmVjb21tZW5kZWQgZm9yIGJ1ZmZlciB1cGRhdGUsIHN1
Y2ggYXMgdXNlZCBieSBXZWJLaXQyLgogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVDb250ZW50cyhQ
aXhlbEZvcm1hdCwgY29uc3QgSW50UmVjdCYsIHZvaWQqIGJpdHMpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgdXBkYXRlUmF3Q29udGVudHMoY29uc3QgSW50UmVjdCYsIGNvbnN0IHZvaWQqIGJpdHMp
IHsgfQogICAgIHZpcnR1YWwgUGxhdGZvcm1HcmFwaGljc0NvbnRleHQqIGJlZ2luUGFpbnRNZWRp
YSgpCiAgICAgewogICAgICAgICByZXR1cm4gYmVnaW5QYWludChJbnRSZWN0KDAsIDAsIHNpemUo
KS53aWR0aCgpLCBzaXplKCkuaGVpZ2h0KCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTm9kZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUuY3BwCmlu
ZGV4IDIxN2E5NTUuLmNjZjQ5YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmNwcApAQCAtNDgx
LDcgKzQ4MSw3IEBAIHZvaWQgVGV4dHVyZU1hcHBlck5vZGU6OmNsZWFyQWxsRGlyZWN0bHlDb21w
b3NpdGVkSW1hZ2VUaWxlcygpCiAgICAgfQogfQogCi12b2lkIFRleHR1cmVNYXBwZXJOb2RlOjpz
ZXRDb250ZW50c1RpbGVCYWNrQnVmZmVyKGludCBpZCwgY29uc3QgSW50UmVjdCYgc291cmNlUmVj
dCwgY29uc3QgSW50UmVjdCYgdGFyZ2V0UmVjdCwgdm9pZCogYml0cywgQml0bWFwVGV4dHVyZTo6
UGl4ZWxGb3JtYXQgZm9ybWF0KQordm9pZCBUZXh0dXJlTWFwcGVyTm9kZTo6c2V0Q29udGVudHNU
aWxlQmFja0J1ZmZlcihpbnQgaWQsIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IElu
dFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IHZvaWQqIGJpdHMpCiB7CiAgICAgQVNTRVJUKG1fdGV4
dHVyZU1hcHBlcik7CiAKQEAgLTQ5OCw3ICs0OTgsNyBAQCB2b2lkIFRleHR1cmVNYXBwZXJOb2Rl
OjpzZXRDb250ZW50c1RpbGVCYWNrQnVmZmVyKGludCBpZCwgY29uc3QgSW50UmVjdCYgc291cmNl
UgogICAgIGlmICghdGlsZS5iYWNrQnVmZmVyLnRleHR1cmUpCiAgICAgICAgIHRpbGUuYmFja0J1
ZmZlci50ZXh0dXJlID0gbV90ZXh0dXJlTWFwcGVyLT5jcmVhdGVUZXh0dXJlKCk7CiAgICAgdGls
ZS5iYWNrQnVmZmVyLnRleHR1cmUtPnJlc2V0KHNvdXJjZVJlY3Quc2l6ZSgpLCBmYWxzZSk7Ci0g
ICAgdGlsZS5iYWNrQnVmZmVyLnRleHR1cmUtPnVwZGF0ZUNvbnRlbnRzKGZvcm1hdCwgc291cmNl
UmVjdCwgYml0cyk7CisgICAgdGlsZS5iYWNrQnVmZmVyLnRleHR1cmUtPnVwZGF0ZVJhd0NvbnRl
bnRzKHNvdXJjZVJlY3QsIGJpdHMpOwogICAgIHRpbGUuaXNCYWNrQnVmZmVyVXBkYXRlZCA9IHRy
dWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9UZXh0dXJlTWFwcGVyTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmgKaW5kZXggMjdiZmYxZC4uZmU0YjE0YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVN
YXBwZXJOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJOb2RlLmgKQEAgLTE0OCw3ICsxNDgsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzZXRUaWxlT3duZXJzaGlwKFRpbGVPd25lcnNoaXAgb3duZXJzaGlwKSB7IG1fc3RhdGUudGls
ZU93bmVyc2hpcCA9IG93bmVyc2hpcDsgfQogICAgIGludCBjcmVhdGVDb250ZW50c1RpbGUoZmxv
YXQgc2NhbGUpOwogICAgIHZvaWQgcmVtb3ZlQ29udGVudHNUaWxlKGludCBpZCk7Ci0gICAgdm9p
ZCBzZXRDb250ZW50c1RpbGVCYWNrQnVmZmVyKGludCBpZCwgY29uc3QgSW50UmVjdCYgc291cmNl
UmVjdCwgY29uc3QgSW50UmVjdCYgdGFyZ2V0UmVjdCwgdm9pZCogYml0cywgQml0bWFwVGV4dHVy
ZTo6UGl4ZWxGb3JtYXQpOworICAgIHZvaWQgc2V0Q29udGVudHNUaWxlQmFja0J1ZmZlcihpbnQg
aWQsIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IEludFJlY3QmIHRhcmdldFJlY3Qs
IGNvbnN0IHZvaWQqIGJpdHMpOwogICAgIHZvaWQgc2V0VGlsZUJhY2tCdWZmZXJUZXh0dXJlRm9y
RGlyZWN0bHlDb21wb3NpdGVkSW1hZ2UoaW50IGlkLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0
LCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldFJlY3QsIEJpdG1hcFRleHR1cmUqKTsKICAgICB2b2lk
IGNsZWFyQWxsRGlyZWN0bHlDb21wb3NpdGVkSW1hZ2VUaWxlcygpOwogICAgIHZvaWQgcHVyZ2VO
b2RlVGV4dHVyZXNSZWN1cnNpdmUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBiMTFjZmZjLi45NWY1NDczIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTItMDEtMjMgIE5vJ2FtIFJvc2VudGhhbCAg
PG5vYW0ucm9zZW50aGFsQG5va2lhLmNvbT4KKworICAgICAgICBbUXRdW1dLMl0gUXQncyBjcm9z
cy1wcm9jZXNzIEFDIGNvcGllcyBpbWFnZXMgZXhjZXNzaXZlbHkgd2hlbiB1cGRhdGluZyB0aWxl
cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2ODc3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2Vu
LgorCisgICAgICAgIEluc3RlYWQgb2YgY29weWluZyBRSW1hZ2VzLCBwYXNzIGEgcmVmZXJlbmNl
IHRvIHRoZSBTaGFyZWFibGVCaXRtYXAgdGhhdCB3YXMgb3JpZ2luYWxseQorICAgICAgICBjcmVh
dGVkIGJ5IHRoZSB3ZWIgcHJvY2Vzcy4gQWxzbywgc3dpenpsZSB0aGUgaW1hZ2UncyBSR0IgaW4g
dGhlIHdlYiBwcm9jZXNzLCBiZWZvcmUgaXQncworICAgICAgICB0cmFuc2ZlcnJlZCB0byB0aGUg
VUkgcHJvY2Vzcy4KKworICAgICAgICBEYXRhIGZsb3cgYmVmb3JlIGNoYW5nZToKKyAgICAgICAg
KFdlYiBQcm9jZXNzKSBSZW5kZXIgdG8gaW1hZ2UgLT4gSVBDIC0+IChVSSBQcm9jZXNzKSBDb3B5
IChyZW5kZXIgcXVldWUpIC0+IENvcHkgU3dpenpsZWQgUkdCIC0+IFVwbG9hZAorCisgICAgICAg
IERhdGEgZmxvdyBhZnRlciBjaGFuZ2U6CisgICAgICAgIChXZWIgUHJvY2VzcykgUmVuZGVyIHRv
IGltYWdlIC0+IHN3aXp6bGUgUkdCIC0+IElQQyAtPiAoVUkgUHJvY2VzcykgLT4gVXBsb2FkCisK
KyAgICAgICAgKiBTaGFyZWQvU2hhcmVhYmxlQml0bWFwLmg6CisgICAgICAgICogU2hhcmVkL3F0
L1NoYXJlYWJsZUJpdG1hcFF0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6U2hhcmVhYmxlQml0bWFw
Ojpzd2l6emxlUkdCKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF5ZXJUcmVlSG9zdFByb3h5Lmg6
CisgICAgICAgICogVUlQcm9jZXNzL3F0L0xheWVyVHJlZUhvc3RQcm94eVF0LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6TGF5ZXJUcmVlSG9zdFByb3h5Ojp1cGRhdGVUaWxlKToKKyAgICAgICAgKFdl
YktpdDo6TGF5ZXJUcmVlSG9zdFByb3h5OjpjcmVhdGVJbWFnZSk6CisgICAgICAgIChXZWJLaXQ6
OkxheWVyVHJlZUhvc3RQcm94eTo6c3luY1JlbW90ZUNvbnRlbnQpOgorICAgICAgICAoV2ViS2l0
OjpMYXllclRyZWVIb3N0UHJveHk6OnVwZGF0ZVRpbGVGb3JMYXllcik6CisgICAgICAgIChXZWJL
aXQ6OkxheWVyVHJlZUhvc3RQcm94eTo6Y3JlYXRlRGlyZWN0bHlDb21wb3NpdGVkSW1hZ2UpOgor
ICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVIb3N0UHJveHk6OnB1cmdlR0xSZXNvdXJjZXMpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9UaWxlZEJhY2tpbmdTdG9yZVJlbW90ZVRpbGUu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpUaWxlZEJhY2tpbmdTdG9yZVJlbW90ZVRpbGU6OnVwZGF0
ZUJhY2tCdWZmZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9xdC9MYXllclRyZWVI
b3N0UXQuY3BwOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVIb3N0UXQ6OmFkb3B0SW1hZ2VC
YWNraW5nU3RvcmUpOgorCiAyMDEyLTAxLTIxICBUaW1vdGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFw
cGxlLmNvbT4KIAogICAgICAgICBNYWtlIFdlYktpdDIgcmVtZW1iZXIgdGhlIGhlaWdodCBvZiB0
aGUgV2ViIEluc3BlY3RvciB3aGVuIGl0IGlzIGRvY2tlZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9TaGFyZWFibGVCaXRtYXAuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9T
aGFyZWFibGVCaXRtYXAuaAppbmRleCAxMmNkN2FiLi5jNzhhMTRlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVhYmxlQml0bWFwLmgKKysrIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL1NoYXJlYWJsZUJpdG1hcC5oCkBAIC0xMzUsNiArMTM1LDcgQEAgcHVibGljOgogICAg
IC8vIFRoaXMgY3JlYXRlcyBhIFFJbWFnZSB0aGF0IGRpcmVjdGx5IHJlZmVyZW5jZXMgdGhlIHNo
YXJlZCBiaXRtYXAgZGF0YS4KICAgICAvLyBUaGlzIGlzIG9ubHkgc2FmZSB0byB1c2Ugd2hlbiB3
ZSBrbm93IHRoYXQgdGhlIGNvbnRlbnRzIG9mIHRoZSBzaGFyZWFibGUgYml0bWFwIHdvbid0IGNo
YW5nZS4KICAgICBRSW1hZ2UgY3JlYXRlUUltYWdlKCk7CisgICAgdm9pZCBzd2l6emxlUkdCKCk7
CiAjZW5kaWYKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9x
dC9TaGFyZWFibGVCaXRtYXBRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvcXQvU2hhcmVh
YmxlQml0bWFwUXQuY3BwCmluZGV4IGIwYWIyZWMuLmQ1ZTM3MWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9xdC9TaGFyZWFibGVCaXRtYXBRdC5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL3F0L1NoYXJlYWJsZUJpdG1hcFF0LmNwcApAQCAtNzAsNCArNzAsMTcgQEAg
dm9pZCBTaGFyZWFibGVCaXRtYXA6OnBhaW50KEdyYXBoaWNzQ29udGV4dCYgLypjb250ZXh0Ki8s
IGZsb2F0IC8qc2NhbGVGYWN0b3IqLywKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi19IC8v
IG5hbWVzcGFjZSBXZWJLaXQKK3ZvaWQgU2hhcmVhYmxlQml0bWFwOjpzd2l6emxlUkdCKCkKK3sK
KyAgICB1aW50MzJfdCogZGF0YSA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludDMyX3QqPih0aGlzLT5k
YXRhKCkpOworICAgIGludCB3aWR0aCA9IHNpemUoKS53aWR0aCgpOworICAgIGludCBoZWlnaHQg
PSBzaXplKCkuaGVpZ2h0KCk7CisgICAgZm9yIChpbnQgeSA9IDA7IHkgPCBoZWlnaHQ7ICsreSkg
eworICAgICAgICB1aW50MzJfdCogcCA9IGRhdGEgKyB5ICogd2lkdGg7CisgICAgICAgIGZvciAo
aW50IHggPSAwOyB4IDwgd2lkdGg7ICsreCkKKyAgICAgICAgICAgIHBbeF0gPSAoKHBbeF0gPDwg
MTYpICYgMHhmZjAwMDApIHwgKChwW3hdID4+IDE2KSAmIDB4ZmYpIHwgKHBbeF0gJiAweGZmMDBm
ZjAwKTsKKyAgICB9Cit9CisKK30KKy8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXllclRyZWVIb3N0UHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9MYXllclRyZWVIb3N0UHJveHkuaAppbmRleCA0NmM0ZDE0Li4wMDRjMjgw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF5ZXJUcmVlSG9zdFByb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xheWVyVHJlZUhvc3RQcm94eS5oCkBA
IC0xMTAsOCArMTEwLDggQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgc3luY0xheWVyUGFyYW1ldGVy
cyhjb25zdCBXZWJMYXllckluZm8mKTsKICAgICB2b2lkIGNyZWF0ZVRpbGUoV2ViTGF5ZXJJRCwg
aW50LCBmbG9hdCBzY2FsZSk7CiAgICAgdm9pZCByZW1vdmVUaWxlKFdlYkxheWVySUQsIGludCk7
Ci0gICAgdm9pZCB1cGRhdGVUaWxlKFdlYkxheWVySUQsIGludCwgY29uc3QgV2ViQ29yZTo6SW50
UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBRSW1hZ2UmKTsKLSAgICB2b2lk
IGNyZWF0ZUltYWdlKGludDY0X3QsIGNvbnN0IFFJbWFnZSYpOworICAgIHZvaWQgdXBkYXRlVGls
ZShXZWJMYXllcklELCBpbnQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JiwgU2hhcmVhYmxlQml0bWFwKik7CisgICAgdm9pZCBjcmVhdGVJbWFnZShpbnQ2
NF90LCBTaGFyZWFibGVCaXRtYXAqKTsKICAgICB2b2lkIGRlc3Ryb3lJbWFnZShpbnQ2NF90KTsK
ICAgICB2b2lkIGFzc2lnbkltYWdlVG9MYXllcihXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgaW50
NjRfdCBpbWFnZUlEKTsKICAgICB2b2lkIGZsdXNoTGF5ZXJDaGFuZ2VzKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvTGF5ZXJUcmVlSG9zdFByb3h5UXQuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L0xheWVyVHJlZUhvc3RQcm94eVF0LmNwcAppbmRl
eCA4YzQyOGQ3Li40NWRjOGNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
cXQvTGF5ZXJUcmVlSG9zdFByb3h5UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9xdC9MYXllclRyZWVIb3N0UHJveHlRdC5jcHAKQEAgLTk2LDcgKzk2LDcgQEAgc3RydWN0IFVw
ZGF0ZVRpbGVNZXNzYWdlRGF0YSB7CiAgICAgaW50IHJlbW90ZVRpbGVJRDsKICAgICBJbnRSZWN0
IHNvdXJjZVJlY3Q7CiAgICAgSW50UmVjdCB0YXJnZXRSZWN0OwotICAgIFFJbWFnZSBpbWFnZTsK
KyAgICBSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiBiaXRtYXA7CiB9OwogCiBzdHJ1Y3QgUmVtb3Zl
VGlsZU1lc3NhZ2VEYXRhIHsKQEAgLTEwNiw3ICsxMDYsNyBAQCBzdHJ1Y3QgUmVtb3ZlVGlsZU1l
c3NhZ2VEYXRhIHsKIAogc3RydWN0IENyZWF0ZUltYWdlTWVzc2FnZURhdGEgewogICAgIGludDY0
X3QgaW1hZ2VJRDsKLSAgICBRSW1hZ2UgaW1hZ2U7CisgICAgUmVmUHRyPFNoYXJlYWJsZUJpdG1h
cD4gYml0bWFwOwogfTsKIAogc3RydWN0IERlc3Ryb3lJbWFnZU1lc3NhZ2VEYXRhIHsKQEAgLTM1
MCw3ICszNTAsNyBAQCB2b2lkIExheWVyVHJlZUhvc3RQcm94eTo6cmVtb3ZlVGlsZShXZWJMYXll
cklEIGxheWVySUQsIGludCB0aWxlSUQpCiAgICAgbV90aWxlVG9Ob2RlVGlsZS5yZW1vdmUodGls
ZUlEKTsKIH0KIAotdm9pZCBMYXllclRyZWVIb3N0UHJveHk6OnVwZGF0ZVRpbGUoV2ViTGF5ZXJJ
RCBsYXllcklELCBpbnQgdGlsZUlELCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJ
bnRSZWN0JiB0YXJnZXRSZWN0LCBjb25zdCBRSW1hZ2UmIGltYWdlKQordm9pZCBMYXllclRyZWVI
b3N0UHJveHk6OnVwZGF0ZVRpbGUoV2ViTGF5ZXJJRCBsYXllcklELCBpbnQgdGlsZUlELCBjb25z
dCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRSZWN0JiB0YXJnZXRSZWN0LCBTaGFyZWFi
bGVCaXRtYXAqIGJpdG1hcCkKIHsKICAgICBlbnN1cmVMYXllcihsYXllcklEKTsKICAgICBUZXh0
dXJlTWFwcGVyTm9kZSogbm9kZSA9IHRvVGV4dHVyZU1hcHBlck5vZGUobGF5ZXJCeUlEKGxheWVy
SUQpKTsKQEAgLTM2MSwxNSArMzYxLDE2IEBAIHZvaWQgTGF5ZXJUcmVlSG9zdFByb3h5Ojp1cGRh
dGVUaWxlKFdlYkxheWVySUQgbGF5ZXJJRCwgaW50IHRpbGVJRCwgY29uc3QgSW50UmVjCiAgICAg
aWYgKCFub2RlVGlsZUlEKQogICAgICAgICByZXR1cm47CiAKLSAgICBRSW1hZ2UgaW1hZ2VSZWYo
aW1hZ2UpOwogICAgIG5vZGUtPnNldFRleHR1cmVNYXBwZXIobV90ZXh0dXJlTWFwcGVyLmdldCgp
KTsKLSAgICBub2RlLT5zZXRDb250ZW50c1RpbGVCYWNrQnVmZmVyKG5vZGVUaWxlSUQsIHNvdXJj
ZVJlY3QsIHRhcmdldFJlY3QsIGltYWdlUmVmLmJpdHMoKSwgQml0bWFwVGV4dHVyZTo6QkdSQUZv
cm1hdCk7CisgICAgUUltYWdlIGltYWdlID0gYml0bWFwLT5jcmVhdGVRSW1hZ2UoKTsKKyAgICBu
b2RlLT5zZXRDb250ZW50c1RpbGVCYWNrQnVmZmVyKG5vZGVUaWxlSUQsIHNvdXJjZVJlY3QsIHRh
cmdldFJlY3QsIGltYWdlLmNvbnN0Qml0cygpKTsKIH0KIAotdm9pZCBMYXllclRyZWVIb3N0UHJv
eHk6OmNyZWF0ZUltYWdlKGludDY0X3QgaW1hZ2VJRCwgY29uc3QgUUltYWdlJiBpbWFnZSkKK3Zv
aWQgTGF5ZXJUcmVlSG9zdFByb3h5OjpjcmVhdGVJbWFnZShpbnQ2NF90IGltYWdlSUQsIFNoYXJl
YWJsZUJpdG1hcCogYml0bWFwKQogewogICAgIFRpbGVkSW1hZ2UgdGlsZWRJbWFnZTsKICAgICBz
dGF0aWMgY29uc3QgaW50IFRpbGVEaW1lbnNpb24gPSAxMDI0OworICAgIFFJbWFnZSBpbWFnZSA9
IGJpdG1hcC0+Y3JlYXRlUUltYWdlKCk7CiAgICAgYm9vbCBpbWFnZUhhc0FscGhhID0gaW1hZ2Uu
aGFzQWxwaGFDaGFubmVsKCk7CiAgICAgSW50UmVjdCBpbWFnZVJlY3QoMCwgMCwgaW1hZ2Uud2lk
dGgoKSwgaW1hZ2UuaGVpZ2h0KCkpOwogICAgIGZvciAoaW50IHkgPSAwOyB5IDwgaW1hZ2UuaGVp
Z2h0KCk7IHkgKz0gVGlsZURpbWVuc2lvbikgewpAQCAtMzgzLDEzICszODQsMTIgQEAgdm9pZCBM
YXllclRyZWVIb3N0UHJveHk6OmNyZWF0ZUltYWdlKGludDY0X3QgaW1hZ2VJRCwgY29uc3QgUUlt
YWdlJiBpbWFnZSkKICAgICAgICAgICAgICAgICBzdWJJbWFnZSA9IGltYWdlLmNvcHkocmVjdCk7
CiAgICAgICAgICAgICBSZWZQdHI8Qml0bWFwVGV4dHVyZT4gdGV4dHVyZSA9IG1fdGV4dHVyZU1h
cHBlci0+Y3JlYXRlVGV4dHVyZSgpOwogICAgICAgICAgICAgdGV4dHVyZS0+cmVzZXQocmVjdC5z
aXplKCksICFpbWFnZUhhc0FscGhhKTsKLSAgICAgICAgICAgIHRleHR1cmUtPnVwZGF0ZUNvbnRl
bnRzKGltYWdlSGFzQWxwaGEgPyBCaXRtYXBUZXh0dXJlOjpCR1JBRm9ybWF0IDogQml0bWFwVGV4
dHVyZTo6QkdSRm9ybWF0LCBJbnRSZWN0KEludFBvaW50Ojp6ZXJvKCksIHJlY3Quc2l6ZSgpKSwg
c3ViSW1hZ2UuYml0cygpKTsKKyAgICAgICAgICAgIHRleHR1cmUtPnVwZGF0ZVJhd0NvbnRlbnRz
KEludFJlY3QoSW50UG9pbnQ6Onplcm8oKSwgcmVjdC5zaXplKCkpLCBzdWJJbWFnZS5jb25zdEJp
dHMoKSk7CiAgICAgICAgICAgICB0aWxlZEltYWdlLmFkZChyZWN0LmxvY2F0aW9uKCksIHRleHR1
cmUpOwogICAgICAgICB9CiAgICAgfQogCi0gICAgbV9kaXJlY3RseUNvbXBvc2l0ZWRJbWFnZXMu
cmVtb3ZlKGltYWdlSUQpOwotICAgIG1fZGlyZWN0bHlDb21wb3NpdGVkSW1hZ2VzLmFkZChpbWFn
ZUlELCB0aWxlZEltYWdlKTsKKyAgICBtX2RpcmVjdGx5Q29tcG9zaXRlZEltYWdlcy5zZXQoaW1h
Z2VJRCwgdGlsZWRJbWFnZSk7CiB9CiAKIHZvaWQgTGF5ZXJUcmVlSG9zdFByb3h5OjpkZXN0cm95
SW1hZ2UoaW50NjRfdCBpbWFnZUlEKQpAQCAtNDkwLDE4ICs0OTAsMTggQEAgdm9pZCBMYXllclRy
ZWVIb3N0UHJveHk6OnN5bmNSZW1vdGVDb250ZW50KCkKIAogICAgICAgICBjYXNlIExheWVyVHJl
ZU1lc3NhZ2VUb1JlbmRlcmVyOjpVcGRhdGVUaWxlOiB7CiAgICAgICAgICAgICBjb25zdCBVcGRh
dGVUaWxlTWVzc2FnZURhdGEmIGRhdGEgPSBzdGF0aWNfY2FzdDxVcGRhdGVUaWxlTWVzc2FnZSo+
KG5leHRNZXNzYWdlLmdldCgpKS0+ZGF0YSgpOwotICAgICAgICAgICAgdXBkYXRlVGlsZShkYXRh
LmxheWVySUQsIGRhdGEucmVtb3RlVGlsZUlELCBkYXRhLnNvdXJjZVJlY3QsIGRhdGEudGFyZ2V0
UmVjdCwgZGF0YS5pbWFnZSk7CisgICAgICAgICAgICB1cGRhdGVUaWxlKGRhdGEubGF5ZXJJRCwg
ZGF0YS5yZW1vdGVUaWxlSUQsIGRhdGEuc291cmNlUmVjdCwgZGF0YS50YXJnZXRSZWN0LCBkYXRh
LmJpdG1hcC5nZXQoKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCiAgICAgICAg
IGNhc2UgTGF5ZXJUcmVlTWVzc2FnZVRvUmVuZGVyZXI6OkNyZWF0ZUltYWdlOiB7CiAgICAgICAg
ICAgICBjb25zdCBDcmVhdGVJbWFnZU1lc3NhZ2VEYXRhJiBkYXRhID0gc3RhdGljX2Nhc3Q8Q3Jl
YXRlSW1hZ2VNZXNzYWdlKj4obmV4dE1lc3NhZ2UuZ2V0KCkpLT5kYXRhKCk7Ci0gICAgICAgICAg
ICBjcmVhdGVJbWFnZShkYXRhLmltYWdlSUQsIGRhdGEuaW1hZ2UpOworICAgICAgICAgICAgY3Jl
YXRlSW1hZ2UoZGF0YS5pbWFnZUlELCBkYXRhLmJpdG1hcC5nZXQoKSk7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgfQogCiAgICAgICAgIGNhc2UgTGF5ZXJUcmVlTWVzc2FnZVRvUmVuZGVy
ZXI6OkRlc3Ryb3lJbWFnZTogewotICAgICAgICAgICAgY29uc3QgQ3JlYXRlSW1hZ2VNZXNzYWdl
RGF0YSYgZGF0YSA9IHN0YXRpY19jYXN0PENyZWF0ZUltYWdlTWVzc2FnZSo+KG5leHRNZXNzYWdl
LmdldCgpKS0+ZGF0YSgpOworICAgICAgICAgICAgY29uc3QgRGVzdHJveUltYWdlTWVzc2FnZURh
dGEmIGRhdGEgPSBzdGF0aWNfY2FzdDxEZXN0cm95SW1hZ2VNZXNzYWdlKj4obmV4dE1lc3NhZ2Uu
Z2V0KCkpLT5kYXRhKCk7CiAgICAgICAgICAgICBkZXN0cm95SW1hZ2UoZGF0YS5pbWFnZUlEKTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC01MzQsOCArNTM0LDcgQEAgdm9pZCBM
YXllclRyZWVIb3N0UHJveHk6OnVwZGF0ZVRpbGVGb3JMYXllcihpbnQgbGF5ZXJJRCwgaW50IHRp
bGVJRCwgY29uc3QgV2ViS2kKICAgICBVcGRhdGVUaWxlTWVzc2FnZURhdGEgZGF0YTsKICAgICBk
YXRhLmxheWVySUQgPSBsYXllcklEOwogICAgIGRhdGEucmVtb3RlVGlsZUlEID0gdGlsZUlEOwot
ICAgIFJlZlB0cjxTaGFyZWFibGVCaXRtYXA+IGJpdG1hcCA9IFNoYXJlYWJsZUJpdG1hcDo6Y3Jl
YXRlKHVwZGF0ZUluZm8uYml0bWFwSGFuZGxlKTsKLSAgICBkYXRhLmltYWdlID0gYml0bWFwLT5j
cmVhdGVRSW1hZ2UoKS5jb3B5KCk7CisgICAgZGF0YS5iaXRtYXAgPSBTaGFyZWFibGVCaXRtYXA6
OmNyZWF0ZSh1cGRhdGVJbmZvLmJpdG1hcEhhbmRsZSk7CiAgICAgZGF0YS5zb3VyY2VSZWN0ID0g
SW50UmVjdChJbnRQb2ludDo6emVybygpLCB1cGRhdGVJbmZvLnVwZGF0ZVJlY3RCb3VuZHMuc2l6
ZSgpKTsKICAgICBkYXRhLnRhcmdldFJlY3QgPSB1cGRhdGVJbmZvLnVwZGF0ZVJlY3RCb3VuZHM7
CiAgICAgcHVzaFVwZGF0ZVRvUXVldWUoVXBkYXRlVGlsZU1lc3NhZ2U6OmNyZWF0ZShkYXRhKSk7
CkBAIC01ODAsOSArNTc5LDggQEAgdm9pZCBMYXllclRyZWVIb3N0UHJveHk6OmRpZFJlbmRlckZy
YW1lKCkKIHZvaWQgTGF5ZXJUcmVlSG9zdFByb3h5OjpjcmVhdGVEaXJlY3RseUNvbXBvc2l0ZWRJ
bWFnZShpbnQ2NF90IGtleSwgY29uc3QgV2ViS2l0OjpTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYg
aGFuZGxlKQogewogICAgIENyZWF0ZUltYWdlTWVzc2FnZURhdGEgZGF0YTsKLSAgICBSZWZQdHI8
U2hhcmVhYmxlQml0bWFwPiBiaXRtYXAgPSBTaGFyZWFibGVCaXRtYXA6OmNyZWF0ZShoYW5kbGUp
OwogICAgIGRhdGEuaW1hZ2VJRCA9IGtleTsKLSAgICBkYXRhLmltYWdlID0gYml0bWFwLT5jcmVh
dGVRSW1hZ2UoKS5jb3B5KCk7CisgICAgZGF0YS5iaXRtYXAgPSBTaGFyZWFibGVCaXRtYXA6OmNy
ZWF0ZShoYW5kbGUpOwogICAgIHB1c2hVcGRhdGVUb1F1ZXVlKENyZWF0ZUltYWdlTWVzc2FnZTo6
Y3JlYXRlKGRhdGEpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1RpbGVkQmFja2luZ1N0b3JlUmVtb3RlVGlsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVGlsZWRCYWNraW5nU3RvcmVSZW1vdGVUaWxlLmNwcAppbmRl
eCA0MTQwZTcyLi4zNDAwM2FmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvVGlsZWRCYWNraW5nU3RvcmVSZW1vdGVUaWxlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVGlsZWRCYWNraW5nU3RvcmVSZW1vdGVUaWxlLmNwcApA
QCAtODgsNiArODgsMTEgQEAgVmVjdG9yPEludFJlY3Q+IFRpbGVkQmFja2luZ1N0b3JlUmVtb3Rl
VGlsZTo6dXBkYXRlQmFja0J1ZmZlcigpCiAgICAgT3duUHRyPEdyYXBoaWNzQ29udGV4dD4gZ3Jh
cGhpY3NDb250ZXh0KGJpdG1hcC0+Y3JlYXRlR3JhcGhpY3NDb250ZXh0KCkpOwogICAgIGdyYXBo
aWNzQ29udGV4dC0+ZHJhd0ltYWdlQnVmZmVyKG1fbG9jYWxCdWZmZXIuZ2V0KCksIENvbG9yU3Bh
Y2VEZXZpY2VSR0IsIEludFBvaW50KDAsIDApKTsKIAorI2lmIFBMQVRGT1JNKFFUKQorICAgIC8v
IFF0IHVzZXMgQkdSQSBpbnRlcmFsbHksIHdlIHN3aXp6bGUgdG8gUkdCQSBmb3IgT3BlbkdMLgor
ICAgIGJpdG1hcC0+c3dpenpsZVJHQigpOworI2VuZGlmCisKICAgICBVcGRhdGVJbmZvIHVwZGF0
ZUluZm87CiAgICAgdXBkYXRlSW5mby51cGRhdGVSZWN0Qm91bmRzID0gbV9yZWN0OwogICAgIHVw
ZGF0ZUluZm8udXBkYXRlU2NhbGVGYWN0b3IgPSBtX3RpbGVkQmFja2luZ1N0b3JlLT5jb250ZW50
c1NjYWxlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
cXQvTGF5ZXJUcmVlSG9zdFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9xdC9MYXllclRyZWVIb3N0UXQuY3BwCmluZGV4IDFjNzRmYzguLjVkZTIwYzIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9xdC9MYXllclRyZWVIb3N0UXQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9xdC9MYXllclRyZWVI
b3N0UXQuY3BwCkBAIC0zMjEsNiArMzIxLDggQEAgaW50NjRfdCBMYXllclRyZWVIb3N0UXQ6OmFk
b3B0SW1hZ2VCYWNraW5nU3RvcmUoSW1hZ2UqIGltYWdlKQogICAgICAgICBncmFwaGljc0NvbnRl
eHQtPmRyYXdJbWFnZShpbWFnZSwgQ29sb3JTcGFjZURldmljZVJHQiwgSW50UG9pbnQ6Onplcm8o
KSk7CiAgICAgfQogCisgICAgLy8gUXQgdXNlcyBCR1JBIGludGVybmFsbHksIHdlIHN3aXp6bGUg
dG8gUkdCQSBmb3IgT3BlbkdMLgorICAgIGJpdG1hcC0+c3dpenpsZVJHQigpOwogICAgIFNoYXJl
YWJsZUJpdG1hcDo6SGFuZGxlIGhhbmRsZTsKICAgICBiaXRtYXAtPmNyZWF0ZUhhbmRsZShoYW5k
bGUpOwogICAgIG1fd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6TGF5ZXJUcmVlSG9zdFByb3h5OjpD
cmVhdGVEaXJlY3RseUNvbXBvc2l0ZWRJbWFnZShrZXksIGhhbmRsZSkpOwo=
</data>
<flag name="commit-queue"
          id="124823"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123725</attachid>
            <date>2012-01-24 06:45:56 -0800</date>
            <delta_ts>2012-01-24 07:17:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch-76877.diff</filename>
            <type>text/plain</type>
            <size>16795</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA3NTM0OWQyLi5hN2Y1N2QzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUg
QEAKKzIwMTItMDEtMjMgIE5vJ2FtIFJvc2VudGhhbCAgPG5vYW0ucm9zZW50aGFsQG5va2lhLmNv
bT4KKworICAgICAgICBbUXRdW1dLMl0gUXQncyBjcm9zcy1wcm9jZXNzIEFDIGNvcGllcyBpbWFn
ZXMgZXhjZXNzaXZlbHkgd2hlbiB1cGRhdGluZyB0aWxlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2ODc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
S2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4uCisKKyAgICAgICAgQWRkIEJpdG1hcFRleHR1cmU6
OnVwZGF0ZVJhd0NvbnRlbnRzKCksIHdoaWNoIGFsbG93cyB1cGxvYWRpbmcgaW1hZ2UgZGF0YSB0
byBhIHRleHR1cmUKKyAgICAgICAgd2l0aG91dCBjaGFuZ2luZyBpdHMgZm9ybWF0IG9yIHN3aXp6
bGluZyBSR0IuIFRoZSBkYXRhIGhhcyB0byBiZSBpbiB0aGUgdGV4dHVyZSdzIG5hdGl2ZQorICAg
ICAgICBmb3JtYXQuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCB0aGlzIGFmZmVjdHMgcGVyZm9y
bWFuY2Ugb24gYWxsIGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3Mvb3BlbmdsL1RleHR1cmVNYXBwZXJHTC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBU
ZXh0dXJlR0w6OnVwZGF0ZVJhd0NvbnRlbnRzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9xdC9UZXh0dXJlTWFwcGVyUXQuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9UZXh0dXJlTWFwcGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBUZXh0dXJlOjp1
cGRhdGVSYXdDb250ZW50cyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJOb2Rl
OjpzZXRDb250ZW50c1RpbGVCYWNrQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUuaDoKKwogMjAxMi0wMS0yMyAgQW50dGkgS29pdmlz
dG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgQXR0ZW1wdCB0byBmaXggUXQgYnVpbGQu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvVGV4
dHVyZU1hcHBlckdMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5n
bC9UZXh0dXJlTWFwcGVyR0wuY3BwCmluZGV4IDBmZjcwMjIuLmRlMDQxYmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9UZXh0dXJlTWFwcGVyR0wu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9UZXh0dXJl
TWFwcGVyR0wuY3BwCkBAIC0zNDcsNiArMzQ3LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0VGV4
dHVyZU1hcHBlcihUZXh0dXJlTWFwcGVyR0wqIHRleG1hcCkgeyBtX3RleHR1cmVNYXBwZXIgPSB0
ZXhtYXA7IH0KIAogICAgIHZvaWQgdXBkYXRlQ29udGVudHMoUGl4ZWxGb3JtYXQsIGNvbnN0IElu
dFJlY3QmLCB2b2lkKik7CisgICAgdm9pZCB1cGRhdGVSYXdDb250ZW50cyhjb25zdCBJbnRSZWN0
JiwgY29uc3Qgdm9pZCopOwogICAgIHZvaWQgcGFjaygpCiAgICAgewogICAgICAgICAvLyBUaGlz
IGlzIGN1cnJlbnRseSBhIHN0dWIuCkBAIC03MzcsNiArNzM4LDEzIEBAIHZvaWQgQml0bWFwVGV4
dHVyZUdMOjp1cGRhdGVDb250ZW50cyhQaXhlbEZvcm1hdCBwaXhlbEZvcm1hdCwgY29uc3QgSW50
UmVjdCYgcmVjCiAgICAgR0xfQ01EKGdsVGV4U3ViSW1hZ2UyRChHTF9URVhUVVJFXzJELCAwLCBy
ZWN0LngoKSwgcmVjdC55KCksIHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSwgZ2xGb3JtYXQs
IEdMX1VOU0lHTkVEX0JZVEUsIGJpdHMpKQogfQogCit2b2lkIEJpdG1hcFRleHR1cmVHTDo6dXBk
YXRlUmF3Q29udGVudHMoY29uc3QgSW50UmVjdCYgcmVjdCwgY29uc3Qgdm9pZCogYml0cykKK3sK
KyAgICBHTF9DTUQoZ2xCaW5kVGV4dHVyZShHTF9URVhUVVJFXzJELCBtX2lkKSkKKyAgICBHTHVp
bnQgZ2xGb3JtYXQgPSBpc09wYXF1ZSgpID8gR0xfUkdCIDogR0xfUkdCQTsKKyAgICBHTF9DTUQo
Z2xUZXhTdWJJbWFnZTJEKEdMX1RFWFRVUkVfMkQsIDAsIHJlY3QueCgpLCByZWN0LnkoKSwgcmVj
dC53aWR0aCgpLCByZWN0LmhlaWdodCgpLCBnbEZvcm1hdCwgR0xfVU5TSUdORURfQllURSwgYml0
cykpCit9CisKIHZvaWQgQml0bWFwVGV4dHVyZUdMOjpzZXRDb250ZW50c1RvSW1hZ2UoSW1hZ2Uq
IGltYWdlKQogewogICAgIEltYWdlVUlEIHVpZCA9IGltYWdlID8gdWlkRm9ySW1hZ2UoaW1hZ2Up
IDogMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L1Rl
eHR1cmVNYXBwZXJRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9U
ZXh0dXJlTWFwcGVyUXQuY3BwCmluZGV4IGY0MWE0MjEuLjk4Y2M4MjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L1RleHR1cmVNYXBwZXJRdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvVGV4dHVyZU1hcHBlclF0LmNw
cApAQCAtNzYsNyArNzYsNiBAQCB2b2lkIEJpdG1hcFRleHR1cmVRdDo6dXBkYXRlQ29udGVudHMo
UGl4ZWxGb3JtYXQgcGl4ZWxGb3JtYXQsIGNvbnN0IEludFJlY3QmIHJlYwogICAgIG1fcGFpbnRl
ci5lbmQoKTsKIH0KIAotCiBib29sIEJpdG1hcFRleHR1cmVRdDo6c2F2ZShjb25zdCBTdHJpbmcm
IHBhdGgpCiB7CiAgICAgcmV0dXJuIG1fcGl4bWFwLnNhdmUocGF0aCwgIlBORyIpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFw
cGVyLmgKaW5kZXggYzFkY2JiZC4uZDY2ZmUyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlci5oCkBAIC03MSw2ICs3
MSw3IEBAIHB1YmxpYzoKICAgICAvLyBGb3IgcGVyZm9ybWFuY2UgcmVhc29ucywgQml0bWFwVGV4
dHVyZSBtaWdodCBtb2RpZnkgdGhlIGJpdHMgZGlyZWN0bHkgKHN3aXp6bGUpLgogICAgIC8vIFRo
dXMsIHRoaXMgbWV0aG9kIGlzIG9ubHkgcmVjb21tZW5kZWQgZm9yIGJ1ZmZlciB1cGRhdGUsIHN1
Y2ggYXMgdXNlZCBieSBXZWJLaXQyLgogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVDb250ZW50cyhQ
aXhlbEZvcm1hdCwgY29uc3QgSW50UmVjdCYsIHZvaWQqIGJpdHMpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgdXBkYXRlUmF3Q29udGVudHMoY29uc3QgSW50UmVjdCYsIGNvbnN0IHZvaWQqIGJpdHMp
IHsgfQogICAgIHZpcnR1YWwgUGxhdGZvcm1HcmFwaGljc0NvbnRleHQqIGJlZ2luUGFpbnRNZWRp
YSgpCiAgICAgewogICAgICAgICByZXR1cm4gYmVnaW5QYWludChJbnRSZWN0KDAsIDAsIHNpemUo
KS53aWR0aCgpLCBzaXplKCkuaGVpZ2h0KCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTm9kZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUuY3BwCmlu
ZGV4IDIxN2E5NTUuLmNjZjQ5YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmNwcApAQCAtNDgx
LDcgKzQ4MSw3IEBAIHZvaWQgVGV4dHVyZU1hcHBlck5vZGU6OmNsZWFyQWxsRGlyZWN0bHlDb21w
b3NpdGVkSW1hZ2VUaWxlcygpCiAgICAgfQogfQogCi12b2lkIFRleHR1cmVNYXBwZXJOb2RlOjpz
ZXRDb250ZW50c1RpbGVCYWNrQnVmZmVyKGludCBpZCwgY29uc3QgSW50UmVjdCYgc291cmNlUmVj
dCwgY29uc3QgSW50UmVjdCYgdGFyZ2V0UmVjdCwgdm9pZCogYml0cywgQml0bWFwVGV4dHVyZTo6
UGl4ZWxGb3JtYXQgZm9ybWF0KQordm9pZCBUZXh0dXJlTWFwcGVyTm9kZTo6c2V0Q29udGVudHNU
aWxlQmFja0J1ZmZlcihpbnQgaWQsIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IElu
dFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IHZvaWQqIGJpdHMpCiB7CiAgICAgQVNTRVJUKG1fdGV4
dHVyZU1hcHBlcik7CiAKQEAgLTQ5OCw3ICs0OTgsNyBAQCB2b2lkIFRleHR1cmVNYXBwZXJOb2Rl
OjpzZXRDb250ZW50c1RpbGVCYWNrQnVmZmVyKGludCBpZCwgY29uc3QgSW50UmVjdCYgc291cmNl
UgogICAgIGlmICghdGlsZS5iYWNrQnVmZmVyLnRleHR1cmUpCiAgICAgICAgIHRpbGUuYmFja0J1
ZmZlci50ZXh0dXJlID0gbV90ZXh0dXJlTWFwcGVyLT5jcmVhdGVUZXh0dXJlKCk7CiAgICAgdGls
ZS5iYWNrQnVmZmVyLnRleHR1cmUtPnJlc2V0KHNvdXJjZVJlY3Quc2l6ZSgpLCBmYWxzZSk7Ci0g
ICAgdGlsZS5iYWNrQnVmZmVyLnRleHR1cmUtPnVwZGF0ZUNvbnRlbnRzKGZvcm1hdCwgc291cmNl
UmVjdCwgYml0cyk7CisgICAgdGlsZS5iYWNrQnVmZmVyLnRleHR1cmUtPnVwZGF0ZVJhd0NvbnRl
bnRzKHNvdXJjZVJlY3QsIGJpdHMpOwogICAgIHRpbGUuaXNCYWNrQnVmZmVyVXBkYXRlZCA9IHRy
dWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9UZXh0dXJlTWFwcGVyTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmgKaW5kZXggMjdiZmYxZC4uZmU0YjE0YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVN
YXBwZXJOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJOb2RlLmgKQEAgLTE0OCw3ICsxNDgsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzZXRUaWxlT3duZXJzaGlwKFRpbGVPd25lcnNoaXAgb3duZXJzaGlwKSB7IG1fc3RhdGUudGls
ZU93bmVyc2hpcCA9IG93bmVyc2hpcDsgfQogICAgIGludCBjcmVhdGVDb250ZW50c1RpbGUoZmxv
YXQgc2NhbGUpOwogICAgIHZvaWQgcmVtb3ZlQ29udGVudHNUaWxlKGludCBpZCk7Ci0gICAgdm9p
ZCBzZXRDb250ZW50c1RpbGVCYWNrQnVmZmVyKGludCBpZCwgY29uc3QgSW50UmVjdCYgc291cmNl
UmVjdCwgY29uc3QgSW50UmVjdCYgdGFyZ2V0UmVjdCwgdm9pZCogYml0cywgQml0bWFwVGV4dHVy
ZTo6UGl4ZWxGb3JtYXQpOworICAgIHZvaWQgc2V0Q29udGVudHNUaWxlQmFja0J1ZmZlcihpbnQg
aWQsIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IEludFJlY3QmIHRhcmdldFJlY3Qs
IGNvbnN0IHZvaWQqIGJpdHMpOwogICAgIHZvaWQgc2V0VGlsZUJhY2tCdWZmZXJUZXh0dXJlRm9y
RGlyZWN0bHlDb21wb3NpdGVkSW1hZ2UoaW50IGlkLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0
LCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldFJlY3QsIEJpdG1hcFRleHR1cmUqKTsKICAgICB2b2lk
IGNsZWFyQWxsRGlyZWN0bHlDb21wb3NpdGVkSW1hZ2VUaWxlcygpOwogICAgIHZvaWQgcHVyZ2VO
b2RlVGV4dHVyZXNSZWN1cnNpdmUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBiMTFjZmZjLi45NWY1NDczIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTItMDEtMjMgIE5vJ2FtIFJvc2VudGhhbCAg
PG5vYW0ucm9zZW50aGFsQG5va2lhLmNvbT4KKworICAgICAgICBbUXRdW1dLMl0gUXQncyBjcm9z
cy1wcm9jZXNzIEFDIGNvcGllcyBpbWFnZXMgZXhjZXNzaXZlbHkgd2hlbiB1cGRhdGluZyB0aWxl
cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2ODc3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4uCisKKyAg
ICAgICAgSW5zdGVhZCBvZiBjb3B5aW5nIFFJbWFnZXMsIHBhc3MgYSByZWZlcmVuY2UgdG8gdGhl
IFNoYXJlYWJsZUJpdG1hcCB0aGF0IHdhcyBvcmlnaW5hbGx5CisgICAgICAgIGNyZWF0ZWQgYnkg
dGhlIHdlYiBwcm9jZXNzLiBBbHNvLCBzd2l6emxlIHRoZSBpbWFnZSdzIFJHQiBpbiB0aGUgd2Vi
IHByb2Nlc3MsIGJlZm9yZSBpdCdzCisgICAgICAgIHRyYW5zZmVycmVkIHRvIHRoZSBVSSBwcm9j
ZXNzLgorCisgICAgICAgIERhdGEgZmxvdyBiZWZvcmUgY2hhbmdlOgorICAgICAgICAoV2ViIFBy
b2Nlc3MpIFJlbmRlciB0byBpbWFnZSAtPiBJUEMgLT4gKFVJIFByb2Nlc3MpIENvcHkgKHJlbmRl
ciBxdWV1ZSkgLT4gQ29weSBTd2l6emxlZCBSR0IgLT4gVXBsb2FkCisKKyAgICAgICAgRGF0YSBm
bG93IGFmdGVyIGNoYW5nZToKKyAgICAgICAgKFdlYiBQcm9jZXNzKSBSZW5kZXIgdG8gaW1hZ2Ug
LT4gc3dpenpsZSBSR0IgLT4gSVBDIC0+IChVSSBQcm9jZXNzKSAtPiBVcGxvYWQKKworICAgICAg
ICAqIFNoYXJlZC9TaGFyZWFibGVCaXRtYXAuaDoKKyAgICAgICAgKiBTaGFyZWQvcXQvU2hhcmVh
YmxlQml0bWFwUXQuY3BwOgorICAgICAgICAoV2ViS2l0OjpTaGFyZWFibGVCaXRtYXA6OnN3aXp6
bGVSR0IpOgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXllclRyZWVIb3N0UHJveHkuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvcXQvTGF5ZXJUcmVlSG9zdFByb3h5UXQuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpMYXllclRyZWVIb3N0UHJveHk6OnVwZGF0ZVRpbGUpOgorICAgICAgICAoV2ViS2l0OjpM
YXllclRyZWVIb3N0UHJveHk6OmNyZWF0ZUltYWdlKToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJU
cmVlSG9zdFByb3h5OjpzeW5jUmVtb3RlQ29udGVudCk6CisgICAgICAgIChXZWJLaXQ6OkxheWVy
VHJlZUhvc3RQcm94eTo6dXBkYXRlVGlsZUZvckxheWVyKToKKyAgICAgICAgKFdlYktpdDo6TGF5
ZXJUcmVlSG9zdFByb3h5OjpjcmVhdGVEaXJlY3RseUNvbXBvc2l0ZWRJbWFnZSk6CisgICAgICAg
IChXZWJLaXQ6OkxheWVyVHJlZUhvc3RQcm94eTo6cHVyZ2VHTFJlc291cmNlcyk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL1RpbGVkQmFja2luZ1N0b3JlUmVtb3RlVGlsZS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlRpbGVkQmFja2luZ1N0b3JlUmVtb3RlVGlsZTo6dXBkYXRlQmFja0J1
ZmZlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL3F0L0xheWVyVHJlZUhvc3RRdC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUhvc3RRdDo6YWRvcHRJbWFnZUJhY2tpbmdT
dG9yZSk6CisKIDIwMTItMDEtMjEgIFRpbW90aHkgSGF0Y2hlciAgPHRpbW90aHlAYXBwbGUuY29t
PgogCiAgICAgICAgIE1ha2UgV2ViS2l0MiByZW1lbWJlciB0aGUgaGVpZ2h0IG9mIHRoZSBXZWIg
SW5zcGVjdG9yIHdoZW4gaXQgaXMgZG9ja2VkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL1NoYXJlYWJsZUJpdG1hcC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1NoYXJlYWJs
ZUJpdG1hcC5oCmluZGV4IDEyY2Q3YWIuLmM3OGExNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9TaGFyZWFibGVCaXRtYXAuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
U2hhcmVhYmxlQml0bWFwLmgKQEAgLTEzNSw2ICsxMzUsNyBAQCBwdWJsaWM6CiAgICAgLy8gVGhp
cyBjcmVhdGVzIGEgUUltYWdlIHRoYXQgZGlyZWN0bHkgcmVmZXJlbmNlcyB0aGUgc2hhcmVkIGJp
dG1hcCBkYXRhLgogICAgIC8vIFRoaXMgaXMgb25seSBzYWZlIHRvIHVzZSB3aGVuIHdlIGtub3cg
dGhhdCB0aGUgY29udGVudHMgb2YgdGhlIHNoYXJlYWJsZSBiaXRtYXAgd29uJ3QgY2hhbmdlLgog
ICAgIFFJbWFnZSBjcmVhdGVRSW1hZ2UoKTsKKyAgICB2b2lkIHN3aXp6bGVSR0IoKTsKICNlbmRp
ZgogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL3F0L1NoYXJl
YWJsZUJpdG1hcFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9xdC9TaGFyZWFibGVCaXRt
YXBRdC5jcHAKaW5kZXggYjBhYjJlYy4uZDVlMzcxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL3F0L1NoYXJlYWJsZUJpdG1hcFF0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvcXQvU2hhcmVhYmxlQml0bWFwUXQuY3BwCkBAIC03MCw0ICs3MCwxNyBAQCB2b2lkIFNo
YXJlYWJsZUJpdG1hcDo6cGFpbnQoR3JhcGhpY3NDb250ZXh0JiAvKmNvbnRleHQqLywgZmxvYXQg
LypzY2FsZUZhY3RvciovLAogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLX0gLy8gbmFtZXNw
YWNlIFdlYktpdAordm9pZCBTaGFyZWFibGVCaXRtYXA6OnN3aXp6bGVSR0IoKQoreworICAgIHVp
bnQzMl90KiBkYXRhID0gcmVpbnRlcnByZXRfY2FzdDx1aW50MzJfdCo+KHRoaXMtPmRhdGEoKSk7
CisgICAgaW50IHdpZHRoID0gc2l6ZSgpLndpZHRoKCk7CisgICAgaW50IGhlaWdodCA9IHNpemUo
KS5oZWlnaHQoKTsKKyAgICBmb3IgKGludCB5ID0gMDsgeSA8IGhlaWdodDsgKyt5KSB7CisgICAg
ICAgIHVpbnQzMl90KiBwID0gZGF0YSArIHkgKiB3aWR0aDsKKyAgICAgICAgZm9yIChpbnQgeCA9
IDA7IHggPCB3aWR0aDsgKyt4KQorICAgICAgICAgICAgcFt4XSA9ICgocFt4XSA8PCAxNikgJiAw
eGZmMDAwMCkgfCAoKHBbeF0gPj4gMTYpICYgMHhmZikgfCAocFt4XSAmIDB4ZmYwMGZmMDApOwor
ICAgIH0KK30KKworfQorLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0xheWVyVHJlZUhvc3RQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0xheWVyVHJlZUhvc3RQcm94eS5oCmluZGV4IDQ2YzRkMTQuLjAwNGMyODAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXllclRyZWVIb3N0UHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF5ZXJUcmVlSG9zdFByb3h5LmgKQEAgLTExMCw4
ICsxMTAsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBzeW5jTGF5ZXJQYXJhbWV0ZXJzKGNvbnN0
IFdlYkxheWVySW5mbyYpOwogICAgIHZvaWQgY3JlYXRlVGlsZShXZWJMYXllcklELCBpbnQsIGZs
b2F0IHNjYWxlKTsKICAgICB2b2lkIHJlbW92ZVRpbGUoV2ViTGF5ZXJJRCwgaW50KTsKLSAgICB2
b2lkIHVwZGF0ZVRpbGUoV2ViTGF5ZXJJRCwgaW50LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jiwg
Y29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFFJbWFnZSYpOwotICAgIHZvaWQgY3JlYXRl
SW1hZ2UoaW50NjRfdCwgY29uc3QgUUltYWdlJik7CisgICAgdm9pZCB1cGRhdGVUaWxlKFdlYkxh
eWVySUQsIGludCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmLCBTaGFyZWFibGVCaXRtYXAqKTsKKyAgICB2b2lkIGNyZWF0ZUltYWdlKGludDY0X3QsIFNo
YXJlYWJsZUJpdG1hcCopOwogICAgIHZvaWQgZGVzdHJveUltYWdlKGludDY0X3QpOwogICAgIHZv
aWQgYXNzaWduSW1hZ2VUb0xheWVyKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBpbnQ2NF90IGlt
YWdlSUQpOwogICAgIHZvaWQgZmx1c2hMYXllckNoYW5nZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9MYXllclRyZWVIb3N0UHJveHlRdC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvcXQvTGF5ZXJUcmVlSG9zdFByb3h5UXQuY3BwCmluZGV4IDhjNDI4
ZDcuLjQ1ZGM4Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9MYXll
clRyZWVIb3N0UHJveHlRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L0xh
eWVyVHJlZUhvc3RQcm94eVF0LmNwcApAQCAtOTYsNyArOTYsNyBAQCBzdHJ1Y3QgVXBkYXRlVGls
ZU1lc3NhZ2VEYXRhIHsKICAgICBpbnQgcmVtb3RlVGlsZUlEOwogICAgIEludFJlY3Qgc291cmNl
UmVjdDsKICAgICBJbnRSZWN0IHRhcmdldFJlY3Q7Ci0gICAgUUltYWdlIGltYWdlOworICAgIFJl
ZlB0cjxTaGFyZWFibGVCaXRtYXA+IGJpdG1hcDsKIH07CiAKIHN0cnVjdCBSZW1vdmVUaWxlTWVz
c2FnZURhdGEgewpAQCAtMTA2LDcgKzEwNiw3IEBAIHN0cnVjdCBSZW1vdmVUaWxlTWVzc2FnZURh
dGEgewogCiBzdHJ1Y3QgQ3JlYXRlSW1hZ2VNZXNzYWdlRGF0YSB7CiAgICAgaW50NjRfdCBpbWFn
ZUlEOwotICAgIFFJbWFnZSBpbWFnZTsKKyAgICBSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiBiaXRt
YXA7CiB9OwogCiBzdHJ1Y3QgRGVzdHJveUltYWdlTWVzc2FnZURhdGEgewpAQCAtMzUwLDcgKzM1
MCw3IEBAIHZvaWQgTGF5ZXJUcmVlSG9zdFByb3h5OjpyZW1vdmVUaWxlKFdlYkxheWVySUQgbGF5
ZXJJRCwgaW50IHRpbGVJRCkKICAgICBtX3RpbGVUb05vZGVUaWxlLnJlbW92ZSh0aWxlSUQpOwog
fQogCi12b2lkIExheWVyVHJlZUhvc3RQcm94eTo6dXBkYXRlVGlsZShXZWJMYXllcklEIGxheWVy
SUQsIGludCB0aWxlSUQsIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IEludFJlY3Qm
IHRhcmdldFJlY3QsIGNvbnN0IFFJbWFnZSYgaW1hZ2UpCit2b2lkIExheWVyVHJlZUhvc3RQcm94
eTo6dXBkYXRlVGlsZShXZWJMYXllcklEIGxheWVySUQsIGludCB0aWxlSUQsIGNvbnN0IEludFJl
Y3QmIHNvdXJjZVJlY3QsIGNvbnN0IEludFJlY3QmIHRhcmdldFJlY3QsIFNoYXJlYWJsZUJpdG1h
cCogYml0bWFwKQogewogICAgIGVuc3VyZUxheWVyKGxheWVySUQpOwogICAgIFRleHR1cmVNYXBw
ZXJOb2RlKiBub2RlID0gdG9UZXh0dXJlTWFwcGVyTm9kZShsYXllckJ5SUQobGF5ZXJJRCkpOwpA
QCAtMzYxLDE1ICszNjEsMTYgQEAgdm9pZCBMYXllclRyZWVIb3N0UHJveHk6OnVwZGF0ZVRpbGUo
V2ViTGF5ZXJJRCBsYXllcklELCBpbnQgdGlsZUlELCBjb25zdCBJbnRSZWMKICAgICBpZiAoIW5v
ZGVUaWxlSUQpCiAgICAgICAgIHJldHVybjsKIAotICAgIFFJbWFnZSBpbWFnZVJlZihpbWFnZSk7
CiAgICAgbm9kZS0+c2V0VGV4dHVyZU1hcHBlcihtX3RleHR1cmVNYXBwZXIuZ2V0KCkpOwotICAg
IG5vZGUtPnNldENvbnRlbnRzVGlsZUJhY2tCdWZmZXIobm9kZVRpbGVJRCwgc291cmNlUmVjdCwg
dGFyZ2V0UmVjdCwgaW1hZ2VSZWYuYml0cygpLCBCaXRtYXBUZXh0dXJlOjpCR1JBRm9ybWF0KTsK
KyAgICBRSW1hZ2UgaW1hZ2UgPSBiaXRtYXAtPmNyZWF0ZVFJbWFnZSgpOworICAgIG5vZGUtPnNl
dENvbnRlbnRzVGlsZUJhY2tCdWZmZXIobm9kZVRpbGVJRCwgc291cmNlUmVjdCwgdGFyZ2V0UmVj
dCwgaW1hZ2UuY29uc3RCaXRzKCkpOwogfQogCi12b2lkIExheWVyVHJlZUhvc3RQcm94eTo6Y3Jl
YXRlSW1hZ2UoaW50NjRfdCBpbWFnZUlELCBjb25zdCBRSW1hZ2UmIGltYWdlKQordm9pZCBMYXll
clRyZWVIb3N0UHJveHk6OmNyZWF0ZUltYWdlKGludDY0X3QgaW1hZ2VJRCwgU2hhcmVhYmxlQml0
bWFwKiBiaXRtYXApCiB7CiAgICAgVGlsZWRJbWFnZSB0aWxlZEltYWdlOwogICAgIHN0YXRpYyBj
b25zdCBpbnQgVGlsZURpbWVuc2lvbiA9IDEwMjQ7CisgICAgUUltYWdlIGltYWdlID0gYml0bWFw
LT5jcmVhdGVRSW1hZ2UoKTsKICAgICBib29sIGltYWdlSGFzQWxwaGEgPSBpbWFnZS5oYXNBbHBo
YUNoYW5uZWwoKTsKICAgICBJbnRSZWN0IGltYWdlUmVjdCgwLCAwLCBpbWFnZS53aWR0aCgpLCBp
bWFnZS5oZWlnaHQoKSk7CiAgICAgZm9yIChpbnQgeSA9IDA7IHkgPCBpbWFnZS5oZWlnaHQoKTsg
eSArPSBUaWxlRGltZW5zaW9uKSB7CkBAIC0zODMsMTMgKzM4NCwxMiBAQCB2b2lkIExheWVyVHJl
ZUhvc3RQcm94eTo6Y3JlYXRlSW1hZ2UoaW50NjRfdCBpbWFnZUlELCBjb25zdCBRSW1hZ2UmIGlt
YWdlKQogICAgICAgICAgICAgICAgIHN1YkltYWdlID0gaW1hZ2UuY29weShyZWN0KTsKICAgICAg
ICAgICAgIFJlZlB0cjxCaXRtYXBUZXh0dXJlPiB0ZXh0dXJlID0gbV90ZXh0dXJlTWFwcGVyLT5j
cmVhdGVUZXh0dXJlKCk7CiAgICAgICAgICAgICB0ZXh0dXJlLT5yZXNldChyZWN0LnNpemUoKSwg
IWltYWdlSGFzQWxwaGEpOwotICAgICAgICAgICAgdGV4dHVyZS0+dXBkYXRlQ29udGVudHMoaW1h
Z2VIYXNBbHBoYSA/IEJpdG1hcFRleHR1cmU6OkJHUkFGb3JtYXQgOiBCaXRtYXBUZXh0dXJlOjpC
R1JGb3JtYXQsIEludFJlY3QoSW50UG9pbnQ6Onplcm8oKSwgcmVjdC5zaXplKCkpLCBzdWJJbWFn
ZS5iaXRzKCkpOworICAgICAgICAgICAgdGV4dHVyZS0+dXBkYXRlUmF3Q29udGVudHMoSW50UmVj
dChJbnRQb2ludDo6emVybygpLCByZWN0LnNpemUoKSksIHN1YkltYWdlLmNvbnN0Qml0cygpKTsK
ICAgICAgICAgICAgIHRpbGVkSW1hZ2UuYWRkKHJlY3QubG9jYXRpb24oKSwgdGV4dHVyZSk7CiAg
ICAgICAgIH0KICAgICB9CiAKLSAgICBtX2RpcmVjdGx5Q29tcG9zaXRlZEltYWdlcy5yZW1vdmUo
aW1hZ2VJRCk7Ci0gICAgbV9kaXJlY3RseUNvbXBvc2l0ZWRJbWFnZXMuYWRkKGltYWdlSUQsIHRp
bGVkSW1hZ2UpOworICAgIG1fZGlyZWN0bHlDb21wb3NpdGVkSW1hZ2VzLnNldChpbWFnZUlELCB0
aWxlZEltYWdlKTsKIH0KIAogdm9pZCBMYXllclRyZWVIb3N0UHJveHk6OmRlc3Ryb3lJbWFnZShp
bnQ2NF90IGltYWdlSUQpCkBAIC00OTAsMTggKzQ5MCwxOCBAQCB2b2lkIExheWVyVHJlZUhvc3RQ
cm94eTo6c3luY1JlbW90ZUNvbnRlbnQoKQogCiAgICAgICAgIGNhc2UgTGF5ZXJUcmVlTWVzc2Fn
ZVRvUmVuZGVyZXI6OlVwZGF0ZVRpbGU6IHsKICAgICAgICAgICAgIGNvbnN0IFVwZGF0ZVRpbGVN
ZXNzYWdlRGF0YSYgZGF0YSA9IHN0YXRpY19jYXN0PFVwZGF0ZVRpbGVNZXNzYWdlKj4obmV4dE1l
c3NhZ2UuZ2V0KCkpLT5kYXRhKCk7Ci0gICAgICAgICAgICB1cGRhdGVUaWxlKGRhdGEubGF5ZXJJ
RCwgZGF0YS5yZW1vdGVUaWxlSUQsIGRhdGEuc291cmNlUmVjdCwgZGF0YS50YXJnZXRSZWN0LCBk
YXRhLmltYWdlKTsKKyAgICAgICAgICAgIHVwZGF0ZVRpbGUoZGF0YS5sYXllcklELCBkYXRhLnJl
bW90ZVRpbGVJRCwgZGF0YS5zb3VyY2VSZWN0LCBkYXRhLnRhcmdldFJlY3QsIGRhdGEuYml0bWFw
LmdldCgpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKICAgICAgICAgY2FzZSBM
YXllclRyZWVNZXNzYWdlVG9SZW5kZXJlcjo6Q3JlYXRlSW1hZ2U6IHsKICAgICAgICAgICAgIGNv
bnN0IENyZWF0ZUltYWdlTWVzc2FnZURhdGEmIGRhdGEgPSBzdGF0aWNfY2FzdDxDcmVhdGVJbWFn
ZU1lc3NhZ2UqPihuZXh0TWVzc2FnZS5nZXQoKSktPmRhdGEoKTsKLSAgICAgICAgICAgIGNyZWF0
ZUltYWdlKGRhdGEuaW1hZ2VJRCwgZGF0YS5pbWFnZSk7CisgICAgICAgICAgICBjcmVhdGVJbWFn
ZShkYXRhLmltYWdlSUQsIGRhdGEuYml0bWFwLmdldCgpKTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9CiAKICAgICAgICAgY2FzZSBMYXllclRyZWVNZXNzYWdlVG9SZW5kZXJlcjo6RGVz
dHJveUltYWdlOiB7Ci0gICAgICAgICAgICBjb25zdCBDcmVhdGVJbWFnZU1lc3NhZ2VEYXRhJiBk
YXRhID0gc3RhdGljX2Nhc3Q8Q3JlYXRlSW1hZ2VNZXNzYWdlKj4obmV4dE1lc3NhZ2UuZ2V0KCkp
LT5kYXRhKCk7CisgICAgICAgICAgICBjb25zdCBEZXN0cm95SW1hZ2VNZXNzYWdlRGF0YSYgZGF0
YSA9IHN0YXRpY19jYXN0PERlc3Ryb3lJbWFnZU1lc3NhZ2UqPihuZXh0TWVzc2FnZS5nZXQoKSkt
PmRhdGEoKTsKICAgICAgICAgICAgIGRlc3Ryb3lJbWFnZShkYXRhLmltYWdlSUQpOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTUzNCw4ICs1MzQsNyBAQCB2b2lkIExheWVyVHJl
ZUhvc3RQcm94eTo6dXBkYXRlVGlsZUZvckxheWVyKGludCBsYXllcklELCBpbnQgdGlsZUlELCBj
b25zdCBXZWJLaQogICAgIFVwZGF0ZVRpbGVNZXNzYWdlRGF0YSBkYXRhOwogICAgIGRhdGEubGF5
ZXJJRCA9IGxheWVySUQ7CiAgICAgZGF0YS5yZW1vdGVUaWxlSUQgPSB0aWxlSUQ7Ci0gICAgUmVm
UHRyPFNoYXJlYWJsZUJpdG1hcD4gYml0bWFwID0gU2hhcmVhYmxlQml0bWFwOjpjcmVhdGUodXBk
YXRlSW5mby5iaXRtYXBIYW5kbGUpOwotICAgIGRhdGEuaW1hZ2UgPSBiaXRtYXAtPmNyZWF0ZVFJ
bWFnZSgpLmNvcHkoKTsKKyAgICBkYXRhLmJpdG1hcCA9IFNoYXJlYWJsZUJpdG1hcDo6Y3JlYXRl
KHVwZGF0ZUluZm8uYml0bWFwSGFuZGxlKTsKICAgICBkYXRhLnNvdXJjZVJlY3QgPSBJbnRSZWN0
KEludFBvaW50Ojp6ZXJvKCksIHVwZGF0ZUluZm8udXBkYXRlUmVjdEJvdW5kcy5zaXplKCkpOwog
ICAgIGRhdGEudGFyZ2V0UmVjdCA9IHVwZGF0ZUluZm8udXBkYXRlUmVjdEJvdW5kczsKICAgICBw
dXNoVXBkYXRlVG9RdWV1ZShVcGRhdGVUaWxlTWVzc2FnZTo6Y3JlYXRlKGRhdGEpKTsKQEAgLTU4
MCw5ICs1NzksOCBAQCB2b2lkIExheWVyVHJlZUhvc3RQcm94eTo6ZGlkUmVuZGVyRnJhbWUoKQog
dm9pZCBMYXllclRyZWVIb3N0UHJveHk6OmNyZWF0ZURpcmVjdGx5Q29tcG9zaXRlZEltYWdlKGlu
dDY0X3Qga2V5LCBjb25zdCBXZWJLaXQ6OlNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiBoYW5kbGUp
CiB7CiAgICAgQ3JlYXRlSW1hZ2VNZXNzYWdlRGF0YSBkYXRhOwotICAgIFJlZlB0cjxTaGFyZWFi
bGVCaXRtYXA+IGJpdG1hcCA9IFNoYXJlYWJsZUJpdG1hcDo6Y3JlYXRlKGhhbmRsZSk7CiAgICAg
ZGF0YS5pbWFnZUlEID0ga2V5OwotICAgIGRhdGEuaW1hZ2UgPSBiaXRtYXAtPmNyZWF0ZVFJbWFn
ZSgpLmNvcHkoKTsKKyAgICBkYXRhLmJpdG1hcCA9IFNoYXJlYWJsZUJpdG1hcDo6Y3JlYXRlKGhh
bmRsZSk7CiAgICAgcHVzaFVwZGF0ZVRvUXVldWUoQ3JlYXRlSW1hZ2VNZXNzYWdlOjpjcmVhdGUo
ZGF0YSkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvVGlsZWRCYWNraW5nU3RvcmVSZW1vdGVUaWxlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9UaWxlZEJhY2tpbmdTdG9yZVJlbW90ZVRpbGUuY3BwCmluZGV4IDQxNDBl
NzIuLjM0MDAzYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9UaWxlZEJhY2tpbmdTdG9yZVJlbW90ZVRpbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9UaWxlZEJhY2tpbmdTdG9yZVJlbW90ZVRpbGUuY3BwCkBAIC04OCw2
ICs4OCwxMSBAQCBWZWN0b3I8SW50UmVjdD4gVGlsZWRCYWNraW5nU3RvcmVSZW1vdGVUaWxlOjp1
cGRhdGVCYWNrQnVmZmVyKCkKICAgICBPd25QdHI8R3JhcGhpY3NDb250ZXh0PiBncmFwaGljc0Nv
bnRleHQoYml0bWFwLT5jcmVhdGVHcmFwaGljc0NvbnRleHQoKSk7CiAgICAgZ3JhcGhpY3NDb250
ZXh0LT5kcmF3SW1hZ2VCdWZmZXIobV9sb2NhbEJ1ZmZlci5nZXQoKSwgQ29sb3JTcGFjZURldmlj
ZVJHQiwgSW50UG9pbnQoMCwgMCkpOwogCisjaWYgUExBVEZPUk0oUVQpCisgICAgLy8gUXQgdXNl
cyBCR1JBIGludGVyYWxseSwgd2Ugc3dpenpsZSB0byBSR0JBIGZvciBPcGVuR0wuCisgICAgYml0
bWFwLT5zd2l6emxlUkdCKCk7CisjZW5kaWYKKwogICAgIFVwZGF0ZUluZm8gdXBkYXRlSW5mbzsK
ICAgICB1cGRhdGVJbmZvLnVwZGF0ZVJlY3RCb3VuZHMgPSBtX3JlY3Q7CiAgICAgdXBkYXRlSW5m
by51cGRhdGVTY2FsZUZhY3RvciA9IG1fdGlsZWRCYWNraW5nU3RvcmUtPmNvbnRlbnRzU2NhbGUo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9xdC9MYXll
clRyZWVIb3N0UXQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3F0L0xh
eWVyVHJlZUhvc3RRdC5jcHAKaW5kZXggMWM3NGZjOC4uNWRlMjBjMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3F0L0xheWVyVHJlZUhvc3RRdC5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3F0L0xheWVyVHJlZUhvc3RRdC5j
cHAKQEAgLTMyMSw2ICszMjEsOCBAQCBpbnQ2NF90IExheWVyVHJlZUhvc3RRdDo6YWRvcHRJbWFn
ZUJhY2tpbmdTdG9yZShJbWFnZSogaW1hZ2UpCiAgICAgICAgIGdyYXBoaWNzQ29udGV4dC0+ZHJh
d0ltYWdlKGltYWdlLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBJbnRQb2ludDo6emVybygpKTsKICAg
ICB9CiAKKyAgICAvLyBRdCB1c2VzIEJHUkEgaW50ZXJuYWxseSwgd2Ugc3dpenpsZSB0byBSR0JB
IGZvciBPcGVuR0wuCisgICAgYml0bWFwLT5zd2l6emxlUkdCKCk7CiAgICAgU2hhcmVhYmxlQml0
bWFwOjpIYW5kbGUgaGFuZGxlOwogICAgIGJpdG1hcC0+Y3JlYXRlSGFuZGxlKGhhbmRsZSk7CiAg
ICAgbV93ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpMYXllclRyZWVIb3N0UHJveHk6OkNyZWF0ZURp
cmVjdGx5Q29tcG9zaXRlZEltYWdlKGtleSwgaGFuZGxlKSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>