<?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>111226</bug_id>
          
          <creation_ts>2013-03-01 14:59:58 -0800</creation_ts>
          <short_desc>[BlackBerry] Upstream smart selection</short_desc>
          <delta_ts>2013-05-01 18:08:29 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit BlackBerry</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Iris Wu">shuwu</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>mifenton</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>845538</commentid>
    <comment_count>0</comment_count>
    <who name="Iris Wu">shuwu</who>
    <bug_when>2013-03-01 14:59:58 -0800</bug_when>
    <thetext>Upstream selection expansion api and methods.
Selection expands from word, sentence, paragraph to next paragraph.
Scroll page if needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845553</commentid>
    <comment_count>1</comment_count>
      <attachid>191050</attachid>
    <who name="Iris Wu">shuwu</who>
    <bug_when>2013-03-01 15:15:46 -0800</bug_when>
    <thetext>Created attachment 191050
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845556</commentid>
    <comment_count>2</comment_count>
      <attachid>191050</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2013-03-01 15:17:31 -0800</bug_when>
    <thetext>Comment on attachment 191050
Patch

Need ChangeLog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845557</commentid>
    <comment_count>3</comment_count>
      <attachid>191051</attachid>
    <who name="Iris Wu">shuwu</who>
    <bug_when>2013-03-01 15:19:43 -0800</bug_when>
    <thetext>Created attachment 191051
Patch with Changelog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845566</commentid>
    <comment_count>4</comment_count>
      <attachid>191054</attachid>
    <who name="Iris Wu">shuwu</who>
    <bug_when>2013-03-01 15:43:30 -0800</bug_when>
    <thetext>Created attachment 191054
Patch with Changelog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845571</commentid>
    <comment_count>5</comment_count>
      <attachid>191054</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2013-03-01 15:51:12 -0800</bug_when>
    <thetext>Comment on attachment 191054
Patch with Changelog

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

Looks good.

&gt; Source/WebKit/blackberry/WebKitSupport/SelectionHandler.cpp:773
&gt; +        m_webPage-&gt;client()-&gt;animateBlockZoom(m_webPage-&gt;m_webPage-&gt;currentScale(), m_webPage-&gt;m_finalBlockPoint);

We need to fix this old code, see webkit/8b9c47ddd226bbbaea21cb14d7b3e0a8c8e56b20. We can do that in a later patch though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845640</commentid>
    <comment_count>6</comment_count>
      <attachid>191054</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-01 17:02:50 -0800</bug_when>
    <thetext>Comment on attachment 191054
Patch with Changelog

Rejecting attachment 191054 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-commit-queue.appspot.com&apos;, &apos;--bot-id=gce-cq-03&apos;, &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;, &apos;--parent-command=commit-queue&apos;, 191054, &apos;--port=chromium-xvfb&apos;]&quot; exit_code: 2 cwd: /mnt/git/webkit-commit-queue

Last 500 characters of output:
t/git/webkit-commit-queue/Source/WebKit/chromium/v8 --revision 13779 --non-interactive --force --accept theirs-conflict --ignore-externals&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
54&gt;At revision 13779.

________ running &apos;/usr/bin/python tools/clang/scripts/update.py --mac-only&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;

________ running &apos;/usr/bin/python gyp_webkit&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
Updating webkit projects from gyp files...

Full output: http://webkit-commit-queue.appspot.com/results/16687609</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845641</commentid>
    <comment_count>7</comment_count>
      <attachid>191054</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-01 17:02:59 -0800</bug_when>
    <thetext>Comment on attachment 191054
Patch with Changelog

Clearing flags on attachment: 191054

Committed r144515: &lt;http://trac.webkit.org/changeset/144515&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845642</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-01 17:03:03 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>883314</commentid>
    <comment_count>9</comment_count>
      <attachid>200186</attachid>
    <who name="Iris Wu">shuwu</who>
    <bug_when>2013-04-30 15:22:29 -0700</bug_when>
    <thetext>Created attachment 200186
Patch with ChangeLog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>883317</commentid>
    <comment_count>10</comment_count>
    <who name="Iris Wu">shuwu</who>
    <bug_when>2013-04-30 15:22:54 -0700</bug_when>
    <thetext>New patch added</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>883687</commentid>
    <comment_count>11</comment_count>
      <attachid>200186</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2013-05-01 17:41:01 -0700</bug_when>
    <thetext>Comment on attachment 200186
Patch with ChangeLog

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

LGTM.

&gt; Source/WebKit/blackberry/ChangeLog:4
&gt; +         https://bugs.webkit.org/show_bug.cgi?id=111226

Slight indentation fault.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>883693</commentid>
    <comment_count>12</comment_count>
      <attachid>200186</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-05-01 18:08:25 -0700</bug_when>
    <thetext>Comment on attachment 200186
Patch with ChangeLog

Clearing flags on attachment: 200186

Committed r149471: &lt;http://trac.webkit.org/changeset/149471&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>883694</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-05-01 18:08:29 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191050</attachid>
            <date>2013-03-01 15:15:46 -0800</date>
            <delta_ts>2013-03-01 15:19:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>0001-2013-02-27-Iris-Wu-shuwu-rim.com.patch</filename>
            <type>text/plain</type>
            <size>20149</size>
            <attacher name="Iris Wu">shuwu</attacher>
            
              <data encoding="base64">RnJvbSBhNmI1NjQyMjI5YWYyNDFhN2U0ZWEzYjM2NTMwMGIyMTk5N2E4ZDNmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBJcmlzIFd1IDxzaHV3dUByaW0uY29tPgpEYXRlOiBXZWQsIDI3
IEZlYiAyMDEzIDE2OjU3OjI1IC0wNTAwClN1YmplY3Q6IFtQQVRDSF0gMjAxMy0wMi0yNyAgSXJp
cyBXdSAgPHNodXd1QHJpbS5jb20+CgogICAgICAgIFtCbGFja0JlcnJ5XSBVcHN0cmVhbSBzbWFy
dCBzZWxlY3Rpb24KICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTExMjI2CgogICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKICAgICAgICAx
LiAgRXh0ZW5kIHRoZSB0b3VjaCBob2xkIHRleHQgc2VsZWN0aW9uIHRvIG5leHQgcGFyYWdyYXBo
LgogICAgICAgIDIuICBEcmF3IGFuZCBleHBhbmQgb3ZlcmxheSBvdmVyIHRleHQgYXMgdG91Y2gg
aG9sZCBzZWxlY3Rpb24gZXhwYW5kcy4KICAgICAgICAgICAgU2VsZWN0IHBhcmFncmFwaCB3aGVu
IGl0J3MgZW50aXJlbHkgY292ZXJlZCBieSBvdmVybGF5LgogICAgICAgIDMuICBTdGFydCBzY3Jv
bGxpbmcgYXQgYSBjb25zdGFudCByYXRlIHdoZW4gdGhlIGVuZCBvZgogICAgICAgICAgICBuZXh0
IHBhcmdyYXBoIGlzIG5vdCBpbiB0aGUgdmlld3BvcnQuCgogICAgICAgIFJldmlld2VkIEludGVy
bmFsbHkgQnkgR2VuZXZpZXZlIE1hayBhbmQgTWlrZSBGZW50b24uCiAgICAgICAgUFIgMjE3ODk3
IDIzODQ4NSAyNTgyNzkgMjc5MDQyIDI5OTc3OQoKICAgICAgICAqIEFwaS9XZWJQYWdlLmNwcDoK
ICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlOjpzZWxlY3RBdERvY3VtZW50UG9p
bnQpOgogICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2U6OmV4cGFuZFNlbGVjdGlv
bik6CiAgICAgICAgKFdlYktpdCk6CiAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFn
ZTo6c2V0T3ZlcmxheUV4cGFuc2lvblBpeGVsSGVpZ2h0KToKICAgICAgICAoQmxhY2tCZXJyeTo6
V2ViS2l0OjpXZWJQYWdlUHJpdmF0ZTo6c2V0T3ZlcmxheUV4cGFuc2lvblBpeGVsSGVpZ2h0KToK
ICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlOjpzZXRQYXJhZ3JhcGhFeHBhbnNp
b25QaXhlbFNjcm9sbE1hcmdpbik6CiAgICAgICAgKiBBcGkvV2ViUGFnZS5oOgogICAgICAgICog
QXBpL1dlYlBhZ2VDbGllbnQuaDoKICAgICAgICAqIEFwaS9XZWJQYWdlX3AuaDoKICAgICAgICAo
V2ViUGFnZVByaXZhdGUpOgogICAgICAgICogV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25IYW5kbGVy
LmNwcDoKICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpTZWxlY3Rpb25IYW5kbGVyOjpjYW5j
ZWxTZWxlY3Rpb24pOgogICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OlNlbGVjdGlvbkhhbmRs
ZXI6OnNlbGVjdEF0UG9pbnQpOgogICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OmlzSW52YWxp
ZExpbmUpOgogICAgICAgIChXZWJLaXQpOgogICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6Omlz
SW52YWxpZFBhcmFncmFwaCk6CiAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6U2VsZWN0aW9u
SGFuZGxlcjo6c2VsZWN0TmV4dFBhcmFncmFwaCk6CiAgICAgICAgKEJsYWNrQmVycnk6OldlYktp
dDo6U2VsZWN0aW9uSGFuZGxlcjo6ZHJhd092ZXJsYXkpOgogICAgICAgIChCbGFja0JlcnJ5OjpX
ZWJLaXQ6OlNlbGVjdGlvbkhhbmRsZXI6OmZpbmROZXh0T3ZlcmxheVJlZ2lvbik6CiAgICAgICAg
KEJsYWNrQmVycnk6OldlYktpdDo6U2VsZWN0aW9uSGFuZGxlcjo6ZXhwYW5kU2VsZWN0aW9uKToK
ICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpTZWxlY3Rpb25IYW5kbGVyOjplbnN1cmVTZWxl
Y3RlZFRleHRWaXNpYmxlKToKICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpTZWxlY3Rpb25I
YW5kbGVyOjpzZXRQYXJhZ3JhcGhFeHBhbnNpb25TY3JvbGxNYXJnaW4pOgogICAgICAgIChCbGFj
a0JlcnJ5OjpXZWJLaXQ6OlNlbGVjdGlvbkhhbmRsZXI6OmV4cGFuZFNlbGVjdGlvblRvR3JhbnVs
YXJpdHkpOgogICAgICAgICogV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25IYW5kbGVyLmg6CiAgICAg
ICAgKFNlbGVjdGlvbkhhbmRsZXIpOgogICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OlNlbGVj
dGlvbkhhbmRsZXI6OnNldE92ZXJsYXlFeHBhbnNpb25IZWlnaHQpOgotLS0KIFNvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAgICAgICAgICAgIHwgICAyOCArKystCiBTb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuaCAgICAgICAgICAgICB8ICAgIDcgKy0K
IFNvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZUNsaWVudC5oICAgICAgIHwgICAg
MiArCiBTb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2VfcC5oICAgICAgICAgICB8
ICAgIDEgKwogLi4uL2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25IYW5kbGVyLmNw
cCAgfCAgMTcwICsrKysrKysrKysrKysrKysrKystCiAuLi4vYmxhY2tiZXJyeS9XZWJLaXRTdXBw
b3J0L1NlbGVjdGlvbkhhbmRsZXIuaCAgICB8ICAgMjIgKystCiA2IGZpbGVzIGNoYW5nZWQsIDIx
OSBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L0FwaS9XZWJQYWdlLmNwcAppbmRleCA2ZTA5YmVhLi4yYzMzODJkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKQEAgLTQ1MjIsMTIgKzQ1MjIsMzYgQEAgdm9pZCBX
ZWJQYWdlOjpzZXREb2N1bWVudENhcmV0UG9zaXRpb24oY29uc3QgUGxhdGZvcm06OkludFBvaW50
JiBkb2N1bWVudENhcmV0UG8KICAgICBkLT5tX3NlbGVjdGlvbkhhbmRsZXItPnNldENhcmV0UG9z
aXRpb24oZG9jdW1lbnRDYXJldFBvc2l0aW9uKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpzZWxlY3RB
dERvY3VtZW50UG9pbnQoY29uc3QgUGxhdGZvcm06OkludFBvaW50JiBkb2N1bWVudFBvaW50KQor
dm9pZCBXZWJQYWdlOjpzZWxlY3RBdERvY3VtZW50UG9pbnQoY29uc3QgUGxhdGZvcm06OkludFBv
aW50JiBkb2N1bWVudFBvaW50LCBTZWxlY3Rpb25FeHBhbnNpb25UeXBlIHNlbGVjdGlvbkV4cGFu
c2lvblR5cGUpCiB7CiAgICAgaWYgKGQtPm1fcGFnZS0+ZGVmZXJzTG9hZGluZygpKQogICAgICAg
ICByZXR1cm47CisgICAgZC0+bV9zZWxlY3Rpb25IYW5kbGVyLT5zZWxlY3RBdFBvaW50KGRvY3Vt
ZW50UG9pbnQsIHNlbGVjdGlvbkV4cGFuc2lvblR5cGUpOworfQogCi0gICAgZC0+bV9zZWxlY3Rp
b25IYW5kbGVyLT5zZWxlY3RBdFBvaW50KGRvY3VtZW50UG9pbnQpOwordm9pZCBXZWJQYWdlOjpl
eHBhbmRTZWxlY3Rpb24oYm9vbCBpc1Njcm9sbFN0YXJ0ZWQpCit7CisgICAgaWYgKGQtPm1fcGFn
ZS0+ZGVmZXJzTG9hZGluZygpKQorICAgICAgICByZXR1cm47CisgICAgZC0+bV9zZWxlY3Rpb25I
YW5kbGVyLT5leHBhbmRTZWxlY3Rpb24oaXNTY3JvbGxTdGFydGVkKTsKK30KKwordm9pZCBXZWJQ
YWdlOjpzZXRPdmVybGF5RXhwYW5zaW9uUGl4ZWxIZWlnaHQoY29uc3QgaW50IGR5KQoreworICAg
IGQtPnNldE92ZXJsYXlFeHBhbnNpb25QaXhlbEhlaWdodChkeSk7Cit9CisKK3ZvaWQgV2ViUGFn
ZVByaXZhdGU6OnNldE92ZXJsYXlFeHBhbnNpb25QaXhlbEhlaWdodChjb25zdCBpbnQgZHkpCit7
CisgICAgLy8gVHJhbnNmb3JtIGZyb20gcGl4ZWwgdG8gZG9jdW1lbnQgY29vcmRpbmF0ZXMuCisg
ICAgbV9zZWxlY3Rpb25IYW5kbGVyLT5zZXRPdmVybGF5RXhwYW5zaW9uSGVpZ2h0KG1fd2Via2l0
VGhyZWFkVmlld3BvcnRBY2Nlc3Nvci0+cm91bmRUb0RvY3VtZW50RnJvbVBpeGVsQ29udGVudHMo
UGxhdGZvcm06OkludFBvaW50KDAsIGR5KSkueSgpKTsKK30KKwordm9pZCBXZWJQYWdlOjpzZXRQ
YXJhZ3JhcGhFeHBhbnNpb25QaXhlbFNjcm9sbE1hcmdpbihjb25zdCBQbGF0Zm9ybTo6SW50U2l6
ZSYgc2Nyb2xsTWFyZ2luKQoreworICAgIC8vIFRyYW5zZm9ybSBmcm9tIHBpeGVsIHRvIGRvY3Vt
ZW50IGNvb3JkaW5hdGVzLgorICAgIFBsYXRmb3JtOjpJbnRTaXplIGRvY3VtZW50U2Nyb2xsTWFy
Z2luID0gZC0+bV93ZWJraXRUaHJlYWRWaWV3cG9ydEFjY2Vzc29yLT5yb3VuZFRvRG9jdW1lbnRG
cm9tUGl4ZWxDb250ZW50cyhQbGF0Zm9ybTo6SW50UmVjdChQbGF0Zm9ybTo6SW50UG9pbnQoKSwg
c2Nyb2xsTWFyZ2luKSkuc2l6ZSgpOworICAgIGQtPm1fc2VsZWN0aW9uSGFuZGxlci0+c2V0UGFy
YWdyYXBoRXhwYW5zaW9uU2Nyb2xsTWFyZ2luKGRvY3VtZW50U2Nyb2xsTWFyZ2luKTsKIH0KIAog
QmFja2luZ1N0b3JlKiBXZWJQYWdlOjpiYWNraW5nU3RvcmUoKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvQXBpL1dlYlBhZ2UuaAppbmRleCAyOTA5NWNhLi4wYTk2OGE3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuaApAQCAtODAsNiArODAsOCBAQCBjbGFzcyBXZWJW
aWV3cG9ydEFyZ3VtZW50czsKIAogZW51bSBKYXZhU2NyaXB0RGF0YVR5cGUgeyBKU1VuZGVmaW5l
ZCA9IDAsIEpTTnVsbCwgSlNCb29sZWFuLCBKU051bWJlciwgSlNTdHJpbmcsIEpTT2JqZWN0LCBK
U0V4Y2VwdGlvbiwgSlNEYXRhVHlwZU1heCB9OwogCitlbnVtIFNlbGVjdGlvbkV4cGFuc2lvblR5
cGUgeyBXb3JkID0gMCwgU2VudGVuY2UsIFBhcmFncmFwaCwgTmV4dFBhcmFncmFwaCB9OworCiBl
bnVtIEFjdGl2YXRpb25TdGF0ZVR5cGUgeyBBY3RpdmF0aW9uQWN0aXZlLCBBY3RpdmF0aW9uSW5h
Y3RpdmUsIEFjdGl2YXRpb25TdGFuZGJ5IH07CiAKIGVudW0gVGFyZ2V0RGV0ZWN0aW9uU3RyYXRl
Z3kge1BvaW50QmFzZWQsIFJlY3RCYXNlZCwgRm9jdXNCYXNlZH07CkBAIC0yNjAsNyArMjYyLDEw
IEBAIHB1YmxpYzoKICAgICBib29sIGlzSW5wdXRNb2RlKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRE
b2N1bWVudFNlbGVjdGlvbihjb25zdCBQbGF0Zm9ybTo6SW50UG9pbnQmIGRvY3VtZW50U3RhcnRQ
b2ludCwgY29uc3QgUGxhdGZvcm06OkludFBvaW50JiBkb2N1bWVudEVuZFBvaW50KTsKICAgICB2
b2lkIHNldERvY3VtZW50Q2FyZXRQb3NpdGlvbihjb25zdCBQbGF0Zm9ybTo6SW50UG9pbnQmKTsK
LSAgICB2b2lkIHNlbGVjdEF0RG9jdW1lbnRQb2ludChjb25zdCBQbGF0Zm9ybTo6SW50UG9pbnQm
KTsKKyAgICB2b2lkIHNlbGVjdEF0RG9jdW1lbnRQb2ludChjb25zdCBQbGF0Zm9ybTo6SW50UG9p
bnQmLCBTZWxlY3Rpb25FeHBhbnNpb25UeXBlID0gV29yZCk7CisgICAgdm9pZCBleHBhbmRTZWxl
Y3Rpb24oYm9vbCBpc1Njcm9sbFN0YXJ0ZWQpOworICAgIHZvaWQgc2V0T3ZlcmxheUV4cGFuc2lv
blBpeGVsSGVpZ2h0KGNvbnN0IGludCk7CisgICAgdm9pZCBzZXRQYXJhZ3JhcGhFeHBhbnNpb25Q
aXhlbFNjcm9sbE1hcmdpbihjb25zdCBQbGF0Zm9ybTo6SW50U2l6ZSYpOwogICAgIHZvaWQgc2Vs
ZWN0aW9uQ2FuY2VsbGVkKCk7CiAgICAgYm9vbCBzZWxlY3Rpb25Db250YWluc0RvY3VtZW50UG9p
bnQoY29uc3QgUGxhdGZvcm06OkludFBvaW50Jik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L0FwaS9XZWJQYWdlQ2xpZW50LmgKaW5kZXggZDMwZDU3Yi4uMzdlNjgxZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlQ2xpZW50LmgKKysrIGIvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlQ2xpZW50LmgKQEAgLTI3OSw2ICsyNzks
OCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGNhbmNlbE5vdGlmaWNhdGlvbihjb25zdCBC
bGFja0JlcnJ5OjpQbGF0Zm9ybTo6U3RyaW5nJiAvKmlkKi8pID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgY2xlYXJOb3RpZmljYXRpb25zKGNvbnN0IHN0ZDo6dmVjdG9yPEJsYWNrQmVycnk6OlBsYXRm
b3JtOjpTdHJpbmc+JiAvKm5vdGlmaWNhdGlvbklkcyovKSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IG5vdGlmaWNhdGlvbkRlc3Ryb3llZChjb25zdCBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6U3RyaW5n
JiAvKm5vdGlmaWNhdGlvbklkKi8pID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnRTZWxlY3Rp
b25TY3JvbGwoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0b3BFeHBhbmRpbmdTZWxlY3Rpb24o
KSA9IDA7CiB9OwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiB9IC8vIG5hbWVzcGFjZSBCbGFja0Jl
cnJ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2VfcC5o
IGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlX3AuaAppbmRleCBkODBhMDVm
Li5iMWRlNGJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBh
Z2VfcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZV9wLmgKQEAg
LTMyMSw2ICszMjEsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIHZvaWQgc2VsZWN0aW9uQ2hh
bmdlZChXZWJDb3JlOjpGcmFtZSopOworICAgIHZvaWQgc2V0T3ZlcmxheUV4cGFuc2lvblBpeGVs
SGVpZ2h0KGNvbnN0IGludCk7CiAKICAgICB2b2lkIHVwZGF0ZURlbGVnYXRlZE92ZXJsYXlzKGJv
b2wgZGlzcGF0Y2hlZCA9IGZhbHNlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L1dlYktpdFN1cHBvcnQvU2VsZWN0aW9uSGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25IYW5kbGVyLmNwcAppbmRleCA2OTll
NzY0Li44MTU2ODRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0
U3VwcG9ydC9TZWxlY3Rpb25IYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25IYW5kbGVyLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTEsIDIwMTIgUmVzZWFyY2ggSW4gTW90aW9uIExp
bWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTEs
IDIwMTIsIDIwMTMgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExlc3NlciBHZW5lcmFsIFB1YmxpYwpAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkhpdFRl
c3RSZXN1bHQuaCIKICNpbmNsdWRlICJJbnB1dEhhbmRsZXIuaCIKICNpbmNsdWRlICJJbnRSZWN0
LmgiCisjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKICNpbmNsdWRlICJTZWxlY3Rpb25PdmVybGF5
LmgiCiAjaW5jbHVkZSAiVG91Y2hFdmVudEhhbmRsZXIuaCIKICNpbmNsdWRlICJXZWJQYWdlQ2xp
ZW50LmgiCkBAIC0zOSw2ICs0MCw3IEBACiAKICNpbmNsdWRlIDxCbGFja0JlcnJ5UGxhdGZvcm1L
ZXlib2FyZEV2ZW50Lmg+CiAjaW5jbHVkZSA8QmxhY2tCZXJyeVBsYXRmb3JtTG9nLmg+CisjaW5j
bHVkZSA8QmxhY2tCZXJyeVBsYXRmb3JtVmlld3BvcnRBY2Nlc3Nvci5oPgogCiAjaW5jbHVkZSA8
c3lzL2tleWNvZGVzLmg+CiAKQEAgLTgyLDYgKzg0LDggQEAgdm9pZCBTZWxlY3Rpb25IYW5kbGVy
OjpjYW5jZWxTZWxlY3Rpb24oKQogewogICAgIG1fc2VsZWN0aW9uQWN0aXZlID0gZmFsc2U7CiAg
ICAgbV9sYXN0U2VsZWN0aW9uUmVnaW9uID0gSW50UmVjdFJlZ2lvbigpOworICAgIG1fY3VycmVu
dE92ZXJsYXlSZWdpb24gPSBJbnRSZWN0UmVnaW9uKCk7CisgICAgbV9uZXh0T3ZlcmxheVJlZ2lv
biA9IEludFJlY3RSZWdpb24oKTsKIAogICAgIGlmIChtX3dlYlBhZ2UtPm1fc2VsZWN0aW9uT3Zl
cmxheSkKICAgICAgICAgbV93ZWJQYWdlLT5tX3NlbGVjdGlvbk92ZXJsYXktPmhpZGUoKTsKQEAg
LTYwMCw3ICs2MDQsNyBAQCBib29sIFNlbGVjdGlvbkhhbmRsZXI6OnNlbGVjdE5vZGVJZkZhdEZp
bmdlcnNSZXN1bHRJc0xpbmsoRmF0RmluZ2Vyc1Jlc3VsdCBmYXRGaQogICAgIHJldHVybiBmYWxz
ZTsKIH0KIAotdm9pZCBTZWxlY3Rpb25IYW5kbGVyOjpzZWxlY3RBdFBvaW50KGNvbnN0IFdlYkNv
cmU6OkludFBvaW50JiBsb2NhdGlvbikKK3ZvaWQgU2VsZWN0aW9uSGFuZGxlcjo6c2VsZWN0QXRQ
b2ludChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgbG9jYXRpb24sIFNlbGVjdGlvbkV4cGFuc2lv
blR5cGUgc2VsZWN0aW9uRXhwYW5zaW9uVHlwZSkKIHsKICAgICAvLyBJZiBwb2ludCBpcyBpbnZh
bGlkIHRyaWdnZXIgc2VsZWN0aW9uIGJhc2VkIGV4cGFuc2lvbi4KICAgICBpZiAobG9jYXRpb24g
PT0gRE9NU3VwcG9ydDo6SW52YWxpZFBvaW50KSB7CkBAIC02MjgsMTEgKzYzMiwxNTYgQEAgdm9p
ZCBTZWxlY3Rpb25IYW5kbGVyOjpzZWxlY3RBdFBvaW50KGNvbnN0IFdlYkNvcmU6OkludFBvaW50
JiBsb2NhdGlvbikKICAgICAgICAgdGFyZ2V0UG9zaXRpb24gPSBuZXdGYXRGaW5nZXJzUmVzdWx0
LmFkanVzdGVkUG9zaXRpb24oKTsKICAgICB9CiAKLSAgICAvLyBzZWxlY3RBdFBvaW50IEFQSSBj
dXJyZW50bHkgb25seSBzdXBwb3J0cyBXb3JkR3JhbnVsYXJpdHkgYnV0IG1heSBiZSBleHRlbmRl
ZCBpbiB0aGUgZnV0dXJlLgotICAgIHNlbGVjdE9iamVjdCh0YXJnZXRQb3NpdGlvbiwgV29yZEdy
YW51bGFyaXR5KTsKKyAgICBtX2N1cnJlbnRPdmVybGF5UmVnaW9uID0gSW50UmVjdFJlZ2lvbigp
OworICAgIG1fbmV4dE92ZXJsYXlSZWdpb24gPSBJbnRSZWN0UmVnaW9uKCk7CisgICAgc2VsZWN0
T2JqZWN0KHRhcmdldFBvc2l0aW9uLCB0ZXh0R3JhbnVsYXJpdHlGcm9tU2VsZWN0aW9uRXhwYW5z
aW9uVHlwZShzZWxlY3Rpb25FeHBhbnNpb25UeXBlKSk7CiB9CiAKLXN0YXRpYyBib29sIGV4cGFu
ZFNlbGVjdGlvblRvR3JhbnVsYXJpdHkoRnJhbWUqIGZyYW1lLCBWaXNpYmxlU2VsZWN0aW9uIHNl
bGVjdGlvbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBib29sIGlzSW5wdXRNb2RlKQor
c3RhdGljIGJvb2wgaXNJbnZhbGlkTGluZShjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvcykKK3sK
KyAgICByZXR1cm4gZW5kT2ZMaW5lKHBvcykuaXNOdWxsKCkgfHwgcG9zID09IGVuZE9mTGluZShw
b3MpIHx8ICFpblNhbWVMaW5lKHBvcywgZW5kT2ZMaW5lKHBvcykpOworfQorCitzdGF0aWMgYm9v
bCBpc0ludmFsaWRQYXJhZ3JhcGgoY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3MpCit7CisgICAg
cmV0dXJuIGVuZE9mUGFyYWdyYXBoKHBvcykuaXNOdWxsKCkgfHwgcG9zID09IGVuZE9mUGFyYWdy
YXBoKHBvcyk7Cit9CisKK3ZvaWQgU2VsZWN0aW9uSGFuZGxlcjo6c2VsZWN0TmV4dFBhcmFncmFw
aCgpCit7CisgICAgRnJhbWVTZWxlY3Rpb24qIGNvbnRyb2xsZXIgPSBtX3dlYlBhZ2UtPmZvY3Vz
ZWRPck1haW5GcmFtZSgpLT5zZWxlY3Rpb24oKTsKKworICAgIFZpc2libGVQb3NpdGlvbiBzdGFy
dFBvcyA9IFZpc2libGVQb3NpdGlvbihjb250cm9sbGVyLT5zdGFydCgpLCBjb250cm9sbGVyLT5h
ZmZpbml0eSgpKTsKKyAgICBpZiAoaXNTdGFydE9mTGluZShzdGFydFBvcykgJiYgaXNFbmRPZkVk
aXRhYmxlT3JOb25FZGl0YWJsZUNvbnRlbnQoc3RhcnRQb3MpKQorICAgICAgICBzdGFydFBvcyA9
IHN0YXJ0UG9zLnByZXZpb3VzKCk7CisKKyAgICAvLyBGaW5kIG5leHQgcGFyYWdyYXBoIGVuZCBw
b3NpdGlvbi4KKyAgICBWaXNpYmxlUG9zaXRpb24gZW5kUG9zKGNvbnRyb2xsZXItPmVuZCgpLCBj
b250cm9sbGVyLT5hZmZpbml0eSgpKTsgLy8gZW5kUG9zIGhlcmUgaW5kaWNhdGVzIHRoZSBlbmQg
b2YgY3VycmVudCBwYXJhZ3JhcGgKKyAgICBlbmRQb3MgPSBlbmRQb3MubmV4dCgpOyAvLyBmaW5k
IHRoZSBzdGFydCBvZiBuZXh0IHBhcmFncmFwaAorICAgIHdoaWxlICghaXNFbmRPZkRvY3VtZW50
KGVuZFBvcy5kZWVwRXF1aXZhbGVudCgpKSAmJiBlbmRQb3MuaXNOb3ROdWxsKCkgJiYgaXNJbnZh
bGlkUGFyYWdyYXBoKGVuZFBvcykpCisgICAgICAgIGVuZFBvcyA9IGVuZFBvcy5uZXh0KCk7IC8v
IGdvIHRvIG5leHQgcG9zaXRpb24KKyAgICBlbmRQb3MgPSBlbmRPZlBhcmFncmFwaChlbmRQb3Mp
OyAvLyBmaW5kIHRoZSBlbmQgb2YgcGFyYWdyYXBoCisKKyAgICAvLyBTZXQgc2VsZWN0aW9uIGlm
IHRoZSBwYXJhZ3JhcGggaXMgY292ZXJlZCBieSBvdmVybGF5IGFuZCBlbmRQb3MgaXMgbm90IG51
bGwuCisgICAgaWYgKG1fY3VycmVudE92ZXJsYXlSZWdpb24uZXh0ZW50cygpLmJvdHRvbSgpID49
IGVuZFBvcy5hYnNvbHV0ZUNhcmV0Qm91bmRzKCkubWF4WSgpICYmIGVuZFBvcy5pc05vdE51bGwo
KSkgeworICAgICAgICBWaXNpYmxlU2VsZWN0aW9uIHNlbGVjdGlvbiA9IFZpc2libGVTZWxlY3Rp
b24oc3RhcnRQb3MsIGVuZFBvcyk7CisgICAgICAgIHNlbGVjdGlvbi5zZXRBZmZpbml0eShjb250
cm9sbGVyLT5hZmZpbml0eSgpKTsKKyAgICAgICAgY29udHJvbGxlci0+c2V0U2VsZWN0aW9uKHNl
bGVjdGlvbik7CisKKyAgICAgICAgLy8gU3RvcCBleHBhbnNpb24gaWYgcmVhY2hpbmcgdGhlIGVu
ZCBvZiBwYWdlLgorICAgICAgICBpZiAoaXNFbmRPZkRvY3VtZW50KGVuZFBvcy5kZWVwRXF1aXZh
bGVudCgpKSkKKyAgICAgICAgICAgIG1fd2ViUGFnZS0+bV9jbGllbnQtPnN0b3BFeHBhbmRpbmdT
ZWxlY3Rpb24oKTsKKyAgICB9Cit9CisKK3ZvaWQgU2VsZWN0aW9uSGFuZGxlcjo6ZHJhd092ZXJs
YXkoSW50UmVjdFJlZ2lvbiBvdmVybGF5UmVnaW9uLCBib29sIGlzRXhwYW5kaW5nT3ZlcmxheUF0
Q29uc3RhbnRSYXRlKQoreworICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBtX292ZXJsYXlTdGFydFBv
cy5kZWVwRXF1aXZhbGVudCgpLmVsZW1lbnQoKTsKKyAgICBpZiAoIWVsZW1lbnQpCisgICAgICAg
IHJldHVybjsKKworICAgIGlmIChpc0V4cGFuZGluZ092ZXJsYXlBdENvbnN0YW50UmF0ZSkgewor
ICAgICAgICAvLyBXaGVuIG92ZXJsYXkgZXhwYW5kcyBhdCBhIGNvbnN0YW50IHJhdGUsIHRoZSBj
dXJyZW50IG92ZXJsYXkgaGVpZ2h0IGluY3JlYXNlcworICAgICAgICAvLyBtX292ZXJsYXlFeHBh
bnNpb25IZWlnaHQgZWFjaCB0aW1lIGFuZCB0aGUgd2lkdGggaXMgYWx3YXlzIHNhbWUgYXMgbmV4
dCBvdmVybGF5IHJlZ2lvbi4KKyAgICAgICAgV2ViQ29yZTo6SW50UmVjdCBjdXJyZW50T3Zlcmxh
eVJlY3QgPSBtX2N1cnJlbnRPdmVybGF5UmVnaW9uLmV4dGVudHMoKTsKKyAgICAgICAgV2ViQ29y
ZTo6SW50UmVjdCBuZXh0T3ZlcmxheVJlY3QgPSBtX25leHRPdmVybGF5UmVnaW9uLmV4dGVudHMo
KTsKKyAgICAgICAgV2ViQ29yZTo6SW50UmVjdCBvdmVybGF5UmVjdChXZWJDb3JlOjpJbnRSZWN0
KG5leHRPdmVybGF5UmVjdC5sb2NhdGlvbigpLCBXZWJDb3JlOjpJbnRTaXplKG5leHRPdmVybGF5
UmVjdC53aWR0aCgpLCBjdXJyZW50T3ZlcmxheVJlY3QuaGVpZ2h0KCkgKyBtX292ZXJsYXlFeHBh
bnNpb25IZWlnaHQpKSk7CisgICAgICAgIG92ZXJsYXlSZWdpb24gPSBJbnRSZWN0UmVnaW9uKG92
ZXJsYXlSZWN0KTsKKyAgICB9CisKKyAgICBDb2xvciBoaWdobGlnaHRDb2xvciA9IGVsZW1lbnQt
PnJlbmRlclN0eWxlKCktPmluaXRpYWxUYXBIaWdobGlnaHRDb2xvcigpOworICAgIG1fd2ViUGFn
ZS0+bV90YXBIaWdobGlnaHQtPmRyYXcob3ZlcmxheVJlZ2lvbiwKKyAgICAgICAgaGlnaGxpZ2h0
Q29sb3IucmVkKCksIGhpZ2hsaWdodENvbG9yLmdyZWVuKCksIGhpZ2hsaWdodENvbG9yLmJsdWUo
KSwgaGlnaGxpZ2h0Q29sb3IuYWxwaGEoKSwKKyAgICAgICAgZmFsc2UgLyogZG8gbm90IGhpZGUg
YWZ0ZXIgc2Nyb2xsICovKTsKKyAgICBtX2N1cnJlbnRPdmVybGF5UmVnaW9uID0gb3ZlcmxheVJl
Z2lvbjsKK30KKworYm9vbCBTZWxlY3Rpb25IYW5kbGVyOjpmaW5kTmV4dE92ZXJsYXlSZWdpb24o
KQoreworICAgIC8vIElmIG92ZXJsYXkgaXMgYXQgdGhlIGVuZCBvZiBkb2N1bWVudCwgc3RvcCBv
dmVybGF5IGV4cGFuc2lvbi4KKyAgICBpZiAoaXNFbmRPZkRvY3VtZW50KG1fb3ZlcmxheUVuZFBv
cy5kZWVwRXF1aXZhbGVudCgpKSB8fCBtX292ZXJsYXlFbmRQb3MuaXNOdWxsKCkpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgIG1fb3ZlcmxheUVuZFBvcyA9IG1fb3ZlcmxheUVuZFBvcy5u
ZXh0KCk7CisgICAgd2hpbGUgKCFpc0VuZE9mRG9jdW1lbnQobV9vdmVybGF5RW5kUG9zLmRlZXBF
cXVpdmFsZW50KCkpICYmIG1fb3ZlcmxheUVuZFBvcy5pc05vdE51bGwoKSAmJiBpc0ludmFsaWRM
aW5lKG1fb3ZlcmxheUVuZFBvcykpCisgICAgICAgIG1fb3ZlcmxheUVuZFBvcyA9IG1fb3Zlcmxh
eUVuZFBvcy5uZXh0KCk7IC8vIGdvIHRvIG5leHQgcG9zaXRpb24KKyAgICBtX292ZXJsYXlFbmRQ
b3MgPSBlbmRPZkxpbmUobV9vdmVybGF5RW5kUG9zKTsgLy8gZmluZCBlbmQgb2YgbGluZQorCisg
ICAgVmlzaWJsZVNlbGVjdGlvbiBzZWxlY3Rpb24obV9vdmVybGF5U3RhcnRQb3MsIG1fb3Zlcmxh
eUVuZFBvcyk7CisgICAgVmVjdG9yPEZsb2F0UXVhZD4gcXVhZHM7CisgICAgRE9NU3VwcG9ydDo6
dmlzaWJsZVRleHRRdWFkcyhzZWxlY3Rpb24sIHF1YWRzKTsKKyAgICByZWdpb25Gb3JUZXh0UXVh
ZHMocXVhZHMsIG1fbmV4dE92ZXJsYXlSZWdpb24pOworICAgIHJldHVybiB0cnVlOworfQorCit2
b2lkIFNlbGVjdGlvbkhhbmRsZXI6OmV4cGFuZFNlbGVjdGlvbihib29sIGlzU2Nyb2xsU3RhcnRl
ZCkKK3sKKyAgICBXZWJDb3JlOjpJbnRQb2ludCBuZXh0T3ZlcmxheUJvdHRvbVJpZ2h0UG9pbnQg
PSBXZWJDb3JlOjpJbnRQb2ludChtX2N1cnJlbnRPdmVybGF5UmVnaW9uLmV4dGVudHMoKS5ib3R0
b21SaWdodCgpKSArIFdlYkNvcmU6OkludFBvaW50KDAsIG1fb3ZlcmxheUV4cGFuc2lvbkhlaWdo
dCk7CisgICAgaWYgKG5leHRPdmVybGF5Qm90dG9tUmlnaHRQb2ludC55KCkgPiBtX25leHRPdmVy
bGF5UmVnaW9uLmV4dGVudHMoKS5ib3R0b20oKSkKKyAgICAgICAgLy8gRmluZCBuZXh0IG92ZXJs
YXkgcmVnaW9uIHNvIHRoYXQgd2UgY2FuIHVwZGF0ZSBvdmVybGF5IHJlZ2lvbidzIHdpZHRoIHdo
aWxlIGV4cGFuZGluZy4KKyAgICAgICAgaWYgKCFmaW5kTmV4dE92ZXJsYXlSZWdpb24oKSkgewor
ICAgICAgICAgICAgZHJhd092ZXJsYXkobV9uZXh0T3ZlcmxheVJlZ2lvbiwgZmFsc2UpOworICAg
ICAgICAgICAgc2VsZWN0TmV4dFBhcmFncmFwaCgpOworICAgICAgICAgICAgbV93ZWJQYWdlLT5t
X2NsaWVudC0+c3RvcEV4cGFuZGluZ1NlbGVjdGlvbigpOworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CisKKyAgICAvLyBEcmF3IG92ZXJsYXkgaWYgdGhlIHBvc2l0aW9uIGlzIGluIHRo
ZSB2aWV3cG9ydCBhbmQgaXMgbm90IG51bGwuCisgICAgLy8gT3RoZXJ3aXNlLCBzdGFydCBzY3Jv
bGxpbmcgaWYgaXQgaGFzbid0IHN0YXJ0ZWQuCisgICAgaWYgKGVuc3VyZVNlbGVjdGVkVGV4dFZp
c2libGUobmV4dE92ZXJsYXlCb3R0b21SaWdodFBvaW50LCBmYWxzZSAvKiBkbyBub3Qgc2Nyb2xs
ICovKSAmJiBtX292ZXJsYXlFbmRQb3MuaXNOb3ROdWxsKCkpCisgICAgICAgIGRyYXdPdmVybGF5
KEludFJlY3RSZWdpb24oKSwgdHJ1ZSAvKiBpc0V4cGFuZGluZ092ZXJsYXlBdENvbnN0YW50UmF0
ZSAqLyk7CisgICAgZWxzZSBpZiAoIWlzU2Nyb2xsU3RhcnRlZCkgeworICAgICAgICBtX3dlYlBh
Z2UtPm1fY2xpZW50LT5zdGFydFNlbGVjdGlvblNjcm9sbCgpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgc2VsZWN0TmV4dFBhcmFncmFwaCgpOworfQorCitib29sIFNlbGVjdGlvbkhh
bmRsZXI6OmVuc3VyZVNlbGVjdGVkVGV4dFZpc2libGUoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQm
IHBvaW50LCBib29sIHNjcm9sbElmTmVlZGVkKQoreworICAgIFdlYkNvcmU6OkludFBvaW50IHNj
cm9sbFBvc2l0aW9uID0gbV93ZWJQYWdlLT5zY3JvbGxQb3NpdGlvbigpOworICAgIFdlYkNvcmU6
OkludFNpemUgYWN0dWFsVmlzaWJsZVNpemUgPSBtX3dlYlBhZ2UtPmNsaWVudCgpLT51c2VySW50
ZXJmYWNlVmlld3BvcnRBY2Nlc3NvcigpLT5kb2N1bWVudFZpZXdwb3J0UmVjdCgpLnNpemUoKTsg
Ly8gdmlld3BvcnQgc2l6ZSBmb3IgYm90aCBDYXNjYWRlcyBhbmQgYnJvd3NlcgorICAgIFdlYkNv
cmU6OkludFJlY3QgYWN0dWFsU2NyZWVuUmVjdCA9IFdlYkNvcmU6OkludFJlY3Qoc2Nyb2xsUG9z
aXRpb24sIGFjdHVhbFZpc2libGVTaXplKTsKKworICAgIGlmICghc2Nyb2xsSWZOZWVkZWQpCisg
ICAgICAgIHJldHVybiBhY3R1YWxTY3JlZW5SZWN0Lm1heFkoKSA+PSBwb2ludC55KCkgKyBtX3Nj
cm9sbE1hcmdpbi5oZWlnaHQoKTsKKworICAgIFdlYkNvcmU6OkludFJlY3QgZW5kTG9jYXRpb24g
PSBtX292ZXJsYXlFbmRQb3MuYWJzb2x1dGVDYXJldEJvdW5kcygpOworICAgIE5vZGUqIGFuY2hv
ck5vZGUgPSBtX292ZXJsYXlFbmRQb3MuZGVlcEVxdWl2YWxlbnQoKS5hbmNob3JOb2RlKCk7Cisg
ICAgaWYgKCFhbmNob3JOb2RlIHx8ICFhbmNob3JOb2RlLT5yZW5kZXJlcigpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICBSZW5kZXJMYXllciogbGF5ZXIgPSBhbmNob3JOb2RlLT5yZW5k
ZXJlcigpLT5lbmNsb3NpbmdMYXllcigpOworICAgIGlmICghbGF5ZXIpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIGVuZExvY2F0aW9uLmluZmxhdGVYKG1fc2Nyb2xsTWFyZ2luLndpZHRo
KCkpOworICAgIGVuZExvY2F0aW9uLmluZmxhdGVZKG1fc2Nyb2xsTWFyZ2luLmhlaWdodCgpKTsK
KworICAgIFdlYkNvcmU6OkludFJlY3QgcmV2ZWFsUmVjdChsYXllci0+Z2V0UmVjdFRvRXhwb3Nl
KGFjdHVhbFNjcmVlblJlY3QsIGVuZExvY2F0aW9uLCBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduVG9F
ZGdlSWZOZWVkZWQsIFNjcm9sbEFsaWdubWVudDo6YWxpZ25Ub0VkZ2VJZk5lZWRlZCkpOworICAg
IHJldmVhbFJlY3Quc2V0WChzdGQ6Om1pbihzdGQ6Om1heChyZXZlYWxSZWN0LngoKSwgMCksIG1f
d2ViUGFnZS0+bWF4aW11bVNjcm9sbFBvc2l0aW9uKCkueCgpKSk7CisgICAgcmV2ZWFsUmVjdC5z
ZXRZKHN0ZDo6bWluKHN0ZDo6bWF4KHJldmVhbFJlY3QueSgpLCAwKSwgbV93ZWJQYWdlLT5tYXhp
bXVtU2Nyb2xsUG9zaXRpb24oKS55KCkpKTsKKworICAgIGlmIChyZXZlYWxSZWN0LmxvY2F0aW9u
KCkgIT0gc2Nyb2xsUG9zaXRpb24pIHsKKyAgICAgICAgLy8gQW5pbWF0ZSBzY3JvbGwgcG9zaXRp
b24gdG8gcmV2ZWFsUmVjdC4KKyAgICAgICAgbV93ZWJQYWdlLT5tX2ZpbmFsQmxvY2tQb2ludCA9
IFdlYkNvcmU6OkZsb2F0UG9pbnQocmV2ZWFsUmVjdC54KCksIHJldmVhbFJlY3QueSgpKTsKKyAg
ICAgICAgbV93ZWJQYWdlLT5tX2Jsb2NrWm9vbUZpbmFsU2NhbGUgPSBtX3dlYlBhZ2UtPm1fd2Vi
UGFnZS0+Y3VycmVudFNjYWxlKCk7IC8vIERvbid0IHpvb20uCisgICAgICAgIG1fd2ViUGFnZS0+
bV9zaG91bGRSZWZsb3dCbG9jayA9IGZhbHNlOworICAgICAgICBtX3dlYlBhZ2UtPm1fdXNlclBl
cmZvcm1lZE1hbnVhbFpvb20gPSB0cnVlOworICAgICAgICBtX3dlYlBhZ2UtPm1fdXNlclBlcmZv
cm1lZE1hbnVhbFNjcm9sbCA9IHRydWU7CisgICAgICAgIG1fd2ViUGFnZS0+Y2xpZW50KCktPmFu
aW1hdGVCbG9ja1pvb20obV93ZWJQYWdlLT5tX3dlYlBhZ2UtPmN1cnJlbnRTY2FsZSgpLCBtX3dl
YlBhZ2UtPm1fZmluYWxCbG9ja1BvaW50KTsKKyAgICB9CisgICAgcmV0dXJuIHRydWU7Cit9CisK
K3ZvaWQgU2VsZWN0aW9uSGFuZGxlcjo6c2V0UGFyYWdyYXBoRXhwYW5zaW9uU2Nyb2xsTWFyZ2lu
KGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNjcm9sbE1hcmdpbikKK3sKKyAgICBtX3Njcm9sbE1h
cmdpbi5zZXRXaWR0aChzY3JvbGxNYXJnaW4ud2lkdGgoKSk7CisgICAgbV9zY3JvbGxNYXJnaW4u
c2V0SGVpZ2h0KHNjcm9sbE1hcmdpbi5oZWlnaHQoKSk7Cit9CisKK2Jvb2wgU2VsZWN0aW9uSGFu
ZGxlcjo6ZXhwYW5kU2VsZWN0aW9uVG9HcmFudWxhcml0eShGcmFtZSogZnJhbWUsIFZpc2libGVT
ZWxlY3Rpb24gc2VsZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIGJvb2wgaXNJ
bnB1dE1vZGUpCiB7CiAgICAgQVNTRVJUKGZyYW1lKTsKICAgICBBU1NFUlQoZnJhbWUtPnNlbGVj
dGlvbigpKTsKQEAgLTY0OSw3ICs3OTgsMTggQEAgc3RhdGljIGJvb2wgZXhwYW5kU2VsZWN0aW9u
VG9HcmFudWxhcml0eShGcmFtZSogZnJhbWUsIFZpc2libGVTZWxlY3Rpb24gc2VsZWN0aW8KICAg
ICBpZiAoaXNJbnB1dE1vZGUgJiYgIWZyYW1lLT5zZWxlY3Rpb24oKS0+c2hvdWxkQ2hhbmdlU2Vs
ZWN0aW9uKHNlbGVjdGlvbikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIG1fb3Zlcmxh
eVN0YXJ0UG9zID0gc2VsZWN0aW9uLnZpc2libGVTdGFydCgpOworICAgIG1fb3ZlcmxheUVuZFBv
cyA9IHNlbGVjdGlvbi52aXNpYmxlRW5kKCk7CisgICAgVmVjdG9yPEZsb2F0UXVhZD4gcXVhZHM7
CisgICAgRE9NU3VwcG9ydDo6dmlzaWJsZVRleHRRdWFkcyhzZWxlY3Rpb24sIHF1YWRzKTsKKyAg
ICByZWdpb25Gb3JUZXh0UXVhZHMocXVhZHMsIG1fY3VycmVudE92ZXJsYXlSZWdpb24pOworCisg
ICAgZW5zdXJlU2VsZWN0ZWRUZXh0VmlzaWJsZShXZWJDb3JlOjpJbnRQb2ludCgpLCB0cnVlIC8q
IHNjcm9sbCBpZiBuZWVkZWQgKi8pOworICAgIGRyYXdPdmVybGF5KG1fY3VycmVudE92ZXJsYXlS
ZWdpb24sIGZhbHNlIC8qIGlzRXhwYW5kaW5nT3ZlcmxheUF0Q29uc3RhbnRSYXRlICovKTsKICAg
ICBmcmFtZS0+c2VsZWN0aW9uKCktPnNldFNlbGVjdGlvbihzZWxlY3Rpb24pOworICAgIGlmIChn
cmFudWxhcml0eSA9PSBQYXJhZ3JhcGhHcmFudWxhcml0eSkKKyAgICAgICAgZmluZE5leHRPdmVy
bGF5UmVnaW9uKCk7CisKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvU2VsZWN0aW9uSGFuZGxlci5oIGIvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvU2VsZWN0aW9uSGFuZGxlci5oCmlu
ZGV4IDg5NmRlMTQuLmRhMGVkYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9XZWJLaXRTdXBwb3J0L1NlbGVjdGlvbkhhbmRsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25IYW5kbGVyLmgKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDExLCAyMDEyIFJlc2VhcmNoIEluIE1vdGlv
biBMaW1pdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLCAy
MDExLCAyMDEyLCAyMDEzIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAgLTYzLDcgKzYzLDcgQEAgcHVibGljOgogICAg
IGJvb2wgc2VsZWN0aW9uQ29udGFpbnMoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKTsKIAogICAg
IHZvaWQgc2V0U2VsZWN0aW9uKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzdGFydCwgY29uc3Qg
V2ViQ29yZTo6SW50UG9pbnQmIGVuZCk7Ci0gICAgdm9pZCBzZWxlY3RBdFBvaW50KGNvbnN0IFdl
YkNvcmU6OkludFBvaW50Jik7CisgICAgdm9pZCBzZWxlY3RBdFBvaW50KGNvbnN0IFdlYkNvcmU6
OkludFBvaW50JiwgU2VsZWN0aW9uRXhwYW5zaW9uVHlwZSk7CiAgICAgdm9pZCBzZWxlY3RPYmpl
Y3QoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBXZWJDb3JlOjpUZXh0R3JhbnVsYXJpdHkpOwog
ICAgIHZvaWQgc2VsZWN0T2JqZWN0KFdlYkNvcmU6OlRleHRHcmFudWxhcml0eSk7CiAgICAgdm9p
ZCBzZWxlY3RPYmplY3QoV2ViQ29yZTo6Tm9kZSopOwpAQCAtNzYsNiArNzYsMTAgQEAgcHVibGlj
OgogCiAgICAgdm9pZCBpbnB1dEhhbmRsZXJEaWRGaW5pc2hQcm9jZXNzaW5nQ2hhbmdlKCk7CiAK
KyAgICB2b2lkIGV4cGFuZFNlbGVjdGlvbihib29sIGlzU2Nyb2xsU3RhcnRlZCk7CisgICAgdm9p
ZCBzZXRPdmVybGF5RXhwYW5zaW9uSGVpZ2h0KGNvbnN0IGludCBkeSkgeyBtX292ZXJsYXlFeHBh
bnNpb25IZWlnaHQgPSBkeTsgfQorICAgIHZvaWQgc2V0UGFyYWdyYXBoRXhwYW5zaW9uU2Nyb2xs
TWFyZ2luKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKTsKKwogcHJpdmF0ZToKICAgICB2b2lkIG5v
dGlmeUNhcmV0UG9zaXRpb25DaGFuZ2VkSWZOZWVkZWQoYm9vbCB1c2VyVG91Y2hUcmlnZ2VyZWQg
PSB0cnVlKTsKICAgICB2b2lkIGNhcmV0UG9zaXRpb25DaGFuZ2VkKGJvb2wgdXNlclRvdWNoVHJp
Z2dlcmVkKTsKQEAgLTg4LDYgKzkyLDEyIEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgZXh0ZW5k
U2VsZWN0aW9uVG9GaWVsZEJvdW5kYXJ5KGJvb2wgaXNTdGFydEhhbmRsZSwgY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQmIHNlbGVjdGlvblBvaW50LCBXZWJDb3JlOjpWaXNpYmxlU2VsZWN0aW9uJiBu
ZXdTZWxlY3Rpb24pOwogICAgIFdlYkNvcmU6OkludFBvaW50IGNsaXBQb2ludFRvVmlzaWJsZUNv
bnRhaW5lcihjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpIGNvbnN0OwogCisgICAgdm9pZCBzZWxl
Y3ROZXh0UGFyYWdyYXBoKCk7CisgICAgdm9pZCBkcmF3T3ZlcmxheShCbGFja0JlcnJ5OjpQbGF0
Zm9ybTo6SW50UmVjdFJlZ2lvbiwgYm9vbCk7CisgICAgYm9vbCBmaW5kTmV4dE92ZXJsYXlSZWdp
b24oKTsKKyAgICBib29sIGVuc3VyZVNlbGVjdGVkVGV4dFZpc2libGUoY29uc3QgV2ViQ29yZTo6
SW50UG9pbnQmLCBib29sIHNjcm9sbElmTmVlZGVkKTsKKyAgICBib29sIGV4cGFuZFNlbGVjdGlv
blRvR3JhbnVsYXJpdHkoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3JlOjpWaXNpYmxlU2VsZWN0aW9u
LCBXZWJDb3JlOjpUZXh0R3JhbnVsYXJpdHksIGJvb2wgaXNJbnB1dE1vZGUpOworCiAgICAgYm9v
bCBpbnB1dE5vZGVPdmVycmlkZXNUb3VjaCgpIGNvbnN0OwogICAgIEJsYWNrQmVycnk6OlBsYXRm
b3JtOjpSZXF1ZXN0ZWRIYW5kbGVQb3NpdGlvbiByZXF1ZXN0ZWRTZWxlY3Rpb25IYW5kbGVQb3Np
dGlvbihjb25zdCBXZWJDb3JlOjpWaXNpYmxlU2VsZWN0aW9uJikgY29uc3Q7CiAKQEAgLTEwMCw5
ICsxMTAsMTUgQEAgcHJpdmF0ZToKICAgICBib29sIG1fbGFzdFVwZGF0ZWRFbmRQb2ludElzVmFs
aWQ7CiAgICAgYm9vbCBtX2RpZFN1cHByZXNzQ2FyZXRQb3NpdGlvbkNoYW5nZWROb3RpZmljYXRp
b247CiAgICAgQmxhY2tCZXJyeTo6UGxhdGZvcm06OkludFJlY3RSZWdpb24gbV9sYXN0U2VsZWN0
aW9uUmVnaW9uOworICAgIFdlYkNvcmU6OlZpc2libGVQb3NpdGlvbiBtX292ZXJsYXlTdGFydFBv
czsKKyAgICBXZWJDb3JlOjpWaXNpYmxlUG9zaXRpb24gbV9vdmVybGF5RW5kUG9zOworICAgIEJs
YWNrQmVycnk6OlBsYXRmb3JtOjpJbnRSZWN0UmVnaW9uIG1fY3VycmVudE92ZXJsYXlSZWdpb247
CisgICAgQmxhY2tCZXJyeTo6UGxhdGZvcm06OkludFJlY3RSZWdpb24gbV9uZXh0T3ZlcmxheVJl
Z2lvbjsKKyAgICBpbnQgbV9vdmVybGF5RXhwYW5zaW9uSGVpZ2h0OwogCiAgICAgQmxhY2tCZXJy
eTo6UGxhdGZvcm06OlN0b3BXYXRjaCBtX3RpbWVyOwotICAgIFdlYkNvcmU6OlZpc2libGVTZWxl
Y3Rpb24gbV9sYXN0U2VsZWN0aW9uOworCisgICAgV2ViQ29yZTo6SW50U2l6ZSBtX3Njcm9sbE1h
cmdpbjsKIH07CiAKIH0KLS0gCjEuNy45LjUKCg==
</data>
<flag name="review"
          id="211904"
          type_id="1"
          status="-"
          setter="rwlbuis"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191051</attachid>
            <date>2013-03-01 15:19:43 -0800</date>
            <delta_ts>2013-03-01 15:43:30 -0800</delta_ts>
            <desc>Patch with Changelog</desc>
            <filename>0001-2013-02-27-Iris-Wu-shuwu-rim.com.patch</filename>
            <type>text/plain</type>
            <size>22664</size>
            <attacher name="Iris Wu">shuwu</attacher>
            
              <data encoding="base64">RnJvbSA3ZDY3M2I3Y2JiMDA0OTFiMjUwMGIwOWIzNzc1MGI5YTMxZWRlYTc4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBJcmlzIFd1IDxzaHV3dUByaW0uY29tPgpEYXRlOiBXZWQsIDI3
IEZlYiAyMDEzIDE2OjU3OjI1IC0wNTAwClN1YmplY3Q6IFtQQVRDSF0gMjAxMy0wMi0yNyAgSXJp
cyBXdSAgPHNodXd1QHJpbS5jb20+CgogICAgICAgIFtCbGFja0JlcnJ5XSBVcHN0cmVhbSBzbWFy
dCBzZWxlY3Rpb24KICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTExMjI2CgogICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKICAgICAgICAx
LiAgRXh0ZW5kIHRoZSB0b3VjaCBob2xkIHRleHQgc2VsZWN0aW9uIHRvIG5leHQgcGFyYWdyYXBo
LgogICAgICAgIDIuICBEcmF3IGFuZCBleHBhbmQgb3ZlcmxheSBvdmVyIHRleHQgYXMgdG91Y2gg
aG9sZCBzZWxlY3Rpb24gZXhwYW5kcy4KICAgICAgICAgICAgU2VsZWN0IHBhcmFncmFwaCB3aGVu
IGl0J3MgZW50aXJlbHkgY292ZXJlZCBieSBvdmVybGF5LgogICAgICAgIDMuICBTdGFydCBzY3Jv
bGxpbmcgYXQgYSBjb25zdGFudCByYXRlIHdoZW4gdGhlIGVuZCBvZgogICAgICAgICAgICBuZXh0
IHBhcmdyYXBoIGlzIG5vdCBpbiB0aGUgdmlld3BvcnQuCgogICAgICAgIFJldmlld2VkIEludGVy
bmFsbHkgQnkgR2VuZXZpZXZlIE1hayBhbmQgTWlrZSBGZW50b24uCiAgICAgICAgUFIgMjE3ODk3
IDIzODQ4NSAyNTgyNzkgMjc5MDQyIDI5OTc3OQoKICAgICAgICAqIEFwaS9XZWJQYWdlLmNwcDoK
ICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlOjpzZWxlY3RBdERvY3VtZW50UG9p
bnQpOgogICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2U6OmV4cGFuZFNlbGVjdGlv
bik6CiAgICAgICAgKFdlYktpdCk6CiAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFn
ZTo6c2V0T3ZlcmxheUV4cGFuc2lvblBpeGVsSGVpZ2h0KToKICAgICAgICAoQmxhY2tCZXJyeTo6
V2ViS2l0OjpXZWJQYWdlUHJpdmF0ZTo6c2V0T3ZlcmxheUV4cGFuc2lvblBpeGVsSGVpZ2h0KToK
ICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlOjpzZXRQYXJhZ3JhcGhFeHBhbnNp
b25QaXhlbFNjcm9sbE1hcmdpbik6CiAgICAgICAgKiBBcGkvV2ViUGFnZS5oOgogICAgICAgICog
QXBpL1dlYlBhZ2VDbGllbnQuaDoKICAgICAgICAqIEFwaS9XZWJQYWdlX3AuaDoKICAgICAgICAo
V2ViUGFnZVByaXZhdGUpOgogICAgICAgICogV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25IYW5kbGVy
LmNwcDoKICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpTZWxlY3Rpb25IYW5kbGVyOjpjYW5j
ZWxTZWxlY3Rpb24pOgogICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OlNlbGVjdGlvbkhhbmRs
ZXI6OnNlbGVjdEF0UG9pbnQpOgogICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OmlzSW52YWxp
ZExpbmUpOgogICAgICAgIChXZWJLaXQpOgogICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6Omlz
SW52YWxpZFBhcmFncmFwaCk6CiAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6U2VsZWN0aW9u
SGFuZGxlcjo6c2VsZWN0TmV4dFBhcmFncmFwaCk6CiAgICAgICAgKEJsYWNrQmVycnk6OldlYktp
dDo6U2VsZWN0aW9uSGFuZGxlcjo6ZHJhd092ZXJsYXkpOgogICAgICAgIChCbGFja0JlcnJ5OjpX
ZWJLaXQ6OlNlbGVjdGlvbkhhbmRsZXI6OmZpbmROZXh0T3ZlcmxheVJlZ2lvbik6CiAgICAgICAg
KEJsYWNrQmVycnk6OldlYktpdDo6U2VsZWN0aW9uSGFuZGxlcjo6ZXhwYW5kU2VsZWN0aW9uKToK
ICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpTZWxlY3Rpb25IYW5kbGVyOjplbnN1cmVTZWxl
Y3RlZFRleHRWaXNpYmxlKToKICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpTZWxlY3Rpb25I
YW5kbGVyOjpzZXRQYXJhZ3JhcGhFeHBhbnNpb25TY3JvbGxNYXJnaW4pOgogICAgICAgIChCbGFj
a0JlcnJ5OjpXZWJLaXQ6OlNlbGVjdGlvbkhhbmRsZXI6OmV4cGFuZFNlbGVjdGlvblRvR3JhbnVs
YXJpdHkpOgogICAgICAgICogV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25IYW5kbGVyLmg6CiAgICAg
ICAgKFNlbGVjdGlvbkhhbmRsZXIpOgogICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OlNlbGVj
dGlvbkhhbmRsZXI6OnNldE92ZXJsYXlFeHBhbnNpb25IZWlnaHQpOgotLS0KIFNvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAgICAgICAgICAgIHwgICAyOCArKystCiBTb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuaCAgICAgICAgICAgICB8ICAgIDcgKy0K
IFNvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZUNsaWVudC5oICAgICAgIHwgICAg
MiArCiBTb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2VfcC5oICAgICAgICAgICB8
ICAgIDEgKwogU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZyAgICAgICAgICAgICAg
ICAgfCAgIDQ0ICsrKysrCiAuLi4vYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L1NlbGVjdGlvbkhh
bmRsZXIuY3BwICB8ICAxNzAgKysrKysrKysrKysrKysrKysrKy0KIC4uLi9ibGFja2JlcnJ5L1dl
YktpdFN1cHBvcnQvU2VsZWN0aW9uSGFuZGxlci5oICAgIHwgICAyMiArKy0KIDcgZmlsZXMgY2hh
bmdlZCwgMjYzIGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCmluZGV4IDZlMDliZWEuLjJjMzM4MmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcApAQCAtNDUyMiwxMiArNDUyMiwzNiBA
QCB2b2lkIFdlYlBhZ2U6OnNldERvY3VtZW50Q2FyZXRQb3NpdGlvbihjb25zdCBQbGF0Zm9ybTo6
SW50UG9pbnQmIGRvY3VtZW50Q2FyZXRQbwogICAgIGQtPm1fc2VsZWN0aW9uSGFuZGxlci0+c2V0
Q2FyZXRQb3NpdGlvbihkb2N1bWVudENhcmV0UG9zaXRpb24pOwogfQogCi12b2lkIFdlYlBhZ2U6
OnNlbGVjdEF0RG9jdW1lbnRQb2ludChjb25zdCBQbGF0Zm9ybTo6SW50UG9pbnQmIGRvY3VtZW50
UG9pbnQpCit2b2lkIFdlYlBhZ2U6OnNlbGVjdEF0RG9jdW1lbnRQb2ludChjb25zdCBQbGF0Zm9y
bTo6SW50UG9pbnQmIGRvY3VtZW50UG9pbnQsIFNlbGVjdGlvbkV4cGFuc2lvblR5cGUgc2VsZWN0
aW9uRXhwYW5zaW9uVHlwZSkKIHsKICAgICBpZiAoZC0+bV9wYWdlLT5kZWZlcnNMb2FkaW5nKCkp
CiAgICAgICAgIHJldHVybjsKKyAgICBkLT5tX3NlbGVjdGlvbkhhbmRsZXItPnNlbGVjdEF0UG9p
bnQoZG9jdW1lbnRQb2ludCwgc2VsZWN0aW9uRXhwYW5zaW9uVHlwZSk7Cit9CiAKLSAgICBkLT5t
X3NlbGVjdGlvbkhhbmRsZXItPnNlbGVjdEF0UG9pbnQoZG9jdW1lbnRQb2ludCk7Cit2b2lkIFdl
YlBhZ2U6OmV4cGFuZFNlbGVjdGlvbihib29sIGlzU2Nyb2xsU3RhcnRlZCkKK3sKKyAgICBpZiAo
ZC0+bV9wYWdlLT5kZWZlcnNMb2FkaW5nKCkpCisgICAgICAgIHJldHVybjsKKyAgICBkLT5tX3Nl
bGVjdGlvbkhhbmRsZXItPmV4cGFuZFNlbGVjdGlvbihpc1Njcm9sbFN0YXJ0ZWQpOworfQorCit2
b2lkIFdlYlBhZ2U6OnNldE92ZXJsYXlFeHBhbnNpb25QaXhlbEhlaWdodChjb25zdCBpbnQgZHkp
Cit7CisgICAgZC0+c2V0T3ZlcmxheUV4cGFuc2lvblBpeGVsSGVpZ2h0KGR5KTsKK30KKwordm9p
ZCBXZWJQYWdlUHJpdmF0ZTo6c2V0T3ZlcmxheUV4cGFuc2lvblBpeGVsSGVpZ2h0KGNvbnN0IGlu
dCBkeSkKK3sKKyAgICAvLyBUcmFuc2Zvcm0gZnJvbSBwaXhlbCB0byBkb2N1bWVudCBjb29yZGlu
YXRlcy4KKyAgICBtX3NlbGVjdGlvbkhhbmRsZXItPnNldE92ZXJsYXlFeHBhbnNpb25IZWlnaHQo
bV93ZWJraXRUaHJlYWRWaWV3cG9ydEFjY2Vzc29yLT5yb3VuZFRvRG9jdW1lbnRGcm9tUGl4ZWxD
b250ZW50cyhQbGF0Zm9ybTo6SW50UG9pbnQoMCwgZHkpKS55KCkpOworfQorCit2b2lkIFdlYlBh
Z2U6OnNldFBhcmFncmFwaEV4cGFuc2lvblBpeGVsU2Nyb2xsTWFyZ2luKGNvbnN0IFBsYXRmb3Jt
OjpJbnRTaXplJiBzY3JvbGxNYXJnaW4pCit7CisgICAgLy8gVHJhbnNmb3JtIGZyb20gcGl4ZWwg
dG8gZG9jdW1lbnQgY29vcmRpbmF0ZXMuCisgICAgUGxhdGZvcm06OkludFNpemUgZG9jdW1lbnRT
Y3JvbGxNYXJnaW4gPSBkLT5tX3dlYmtpdFRocmVhZFZpZXdwb3J0QWNjZXNzb3ItPnJvdW5kVG9E
b2N1bWVudEZyb21QaXhlbENvbnRlbnRzKFBsYXRmb3JtOjpJbnRSZWN0KFBsYXRmb3JtOjpJbnRQ
b2ludCgpLCBzY3JvbGxNYXJnaW4pKS5zaXplKCk7CisgICAgZC0+bV9zZWxlY3Rpb25IYW5kbGVy
LT5zZXRQYXJhZ3JhcGhFeHBhbnNpb25TY3JvbGxNYXJnaW4oZG9jdW1lbnRTY3JvbGxNYXJnaW4p
OwogfQogCiBCYWNraW5nU3RvcmUqIFdlYlBhZ2U6OmJhY2tpbmdTdG9yZSgpIGNvbnN0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuaCBiL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5oCmluZGV4IDI5MDk1Y2EuLjBhOTY4YTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5oCkBAIC04MCw2ICs4MCw4IEBAIGNs
YXNzIFdlYlZpZXdwb3J0QXJndW1lbnRzOwogCiBlbnVtIEphdmFTY3JpcHREYXRhVHlwZSB7IEpT
VW5kZWZpbmVkID0gMCwgSlNOdWxsLCBKU0Jvb2xlYW4sIEpTTnVtYmVyLCBKU1N0cmluZywgSlNP
YmplY3QsIEpTRXhjZXB0aW9uLCBKU0RhdGFUeXBlTWF4IH07CiAKK2VudW0gU2VsZWN0aW9uRXhw
YW5zaW9uVHlwZSB7IFdvcmQgPSAwLCBTZW50ZW5jZSwgUGFyYWdyYXBoLCBOZXh0UGFyYWdyYXBo
IH07CisKIGVudW0gQWN0aXZhdGlvblN0YXRlVHlwZSB7IEFjdGl2YXRpb25BY3RpdmUsIEFjdGl2
YXRpb25JbmFjdGl2ZSwgQWN0aXZhdGlvblN0YW5kYnkgfTsKIAogZW51bSBUYXJnZXREZXRlY3Rp
b25TdHJhdGVneSB7UG9pbnRCYXNlZCwgUmVjdEJhc2VkLCBGb2N1c0Jhc2VkfTsKQEAgLTI2MCw3
ICsyNjIsMTAgQEAgcHVibGljOgogICAgIGJvb2wgaXNJbnB1dE1vZGUoKSBjb25zdDsKICAgICB2
b2lkIHNldERvY3VtZW50U2VsZWN0aW9uKGNvbnN0IFBsYXRmb3JtOjpJbnRQb2ludCYgZG9jdW1l
bnRTdGFydFBvaW50LCBjb25zdCBQbGF0Zm9ybTo6SW50UG9pbnQmIGRvY3VtZW50RW5kUG9pbnQp
OwogICAgIHZvaWQgc2V0RG9jdW1lbnRDYXJldFBvc2l0aW9uKGNvbnN0IFBsYXRmb3JtOjpJbnRQ
b2ludCYpOwotICAgIHZvaWQgc2VsZWN0QXREb2N1bWVudFBvaW50KGNvbnN0IFBsYXRmb3JtOjpJ
bnRQb2ludCYpOworICAgIHZvaWQgc2VsZWN0QXREb2N1bWVudFBvaW50KGNvbnN0IFBsYXRmb3Jt
OjpJbnRQb2ludCYsIFNlbGVjdGlvbkV4cGFuc2lvblR5cGUgPSBXb3JkKTsKKyAgICB2b2lkIGV4
cGFuZFNlbGVjdGlvbihib29sIGlzU2Nyb2xsU3RhcnRlZCk7CisgICAgdm9pZCBzZXRPdmVybGF5
RXhwYW5zaW9uUGl4ZWxIZWlnaHQoY29uc3QgaW50KTsKKyAgICB2b2lkIHNldFBhcmFncmFwaEV4
cGFuc2lvblBpeGVsU2Nyb2xsTWFyZ2luKGNvbnN0IFBsYXRmb3JtOjpJbnRTaXplJik7CiAgICAg
dm9pZCBzZWxlY3Rpb25DYW5jZWxsZWQoKTsKICAgICBib29sIHNlbGVjdGlvbkNvbnRhaW5zRG9j
dW1lbnRQb2ludChjb25zdCBQbGF0Zm9ybTo6SW50UG9pbnQmKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2VDbGllbnQuaAppbmRleCBkMzBkNTdiLi4zN2U2ODFkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2VDbGllbnQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2VDbGllbnQuaApAQCAtMjc5
LDYgKzI3OSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsTm90aWZpY2F0aW9u
KGNvbnN0IEJsYWNrQmVycnk6OlBsYXRmb3JtOjpTdHJpbmcmIC8qaWQqLykgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBjbGVhck5vdGlmaWNhdGlvbnMoY29uc3Qgc3RkOjp2ZWN0b3I8QmxhY2tCZXJy
eTo6UGxhdGZvcm06OlN0cmluZz4mIC8qbm90aWZpY2F0aW9uSWRzKi8pID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgbm90aWZpY2F0aW9uRGVzdHJveWVkKGNvbnN0IEJsYWNrQmVycnk6OlBsYXRmb3Jt
OjpTdHJpbmcmIC8qbm90aWZpY2F0aW9uSWQqLykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzdGFy
dFNlbGVjdGlvblNjcm9sbCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3RvcEV4cGFuZGluZ1Nl
bGVjdGlvbigpID0gMDsKIH07CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIH0gLy8gbmFtZXNwYWNl
IEJsYWNrQmVycnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2Vi
UGFnZV9wLmggYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2VfcC5oCmluZGV4
IGQ4MGEwNWYuLmIxZGU0YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9B
cGkvV2ViUGFnZV9wLmgKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdl
X3AuaApAQCAtMzIxLDYgKzMyMSw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgdm9pZCBzZWxl
Y3Rpb25DaGFuZ2VkKFdlYkNvcmU6OkZyYW1lKik7CisgICAgdm9pZCBzZXRPdmVybGF5RXhwYW5z
aW9uUGl4ZWxIZWlnaHQoY29uc3QgaW50KTsKIAogICAgIHZvaWQgdXBkYXRlRGVsZWdhdGVkT3Zl
cmxheXMoYm9vbCBkaXNwYXRjaGVkID0gZmFsc2UpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5n
ZUxvZwppbmRleCA3ZTlhOGM1Li45ZmQyZWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSw0NyBAQAorMjAxMy0wMy0wMSAgSXJpcyBXdSAgPHNodXd1QHJpbS5jb20+
CisKKyAgICAgICAgW0JsYWNrQmVycnldIFVwc3RyZWFtIHNtYXJ0IHNlbGVjdGlvbgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTExMjI2CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgMS4gIEV4dGVuZCB0aGUg
dG91Y2ggaG9sZCB0ZXh0IHNlbGVjdGlvbiB0byBuZXh0IHBhcmFncmFwaC4KKyAgICAgICAgMi4g
IERyYXcgYW5kIGV4cGFuZCBvdmVybGF5IG92ZXIgdGV4dCBhcyB0b3VjaCBob2xkIHNlbGVjdGlv
biBleHBhbmRzLgorICAgICAgICAgICAgU2VsZWN0IHBhcmFncmFwaCB3aGVuIGl0J3MgZW50aXJl
bHkgY292ZXJlZCBieSBvdmVybGF5LgorICAgICAgICAzLiAgU3RhcnQgc2Nyb2xsaW5nIGF0IGEg
Y29uc3RhbnQgcmF0ZSB3aGVuIHRoZSBlbmQgb2YKKyAgICAgICAgICAgIG5leHQgcGFyZ3JhcGgg
aXMgbm90IGluIHRoZSB2aWV3cG9ydC4KKworICAgICAgICBSZXZpZXdlZCBJbnRlcm5hbGx5IEJ5
IEdlbmV2aWV2ZSBNYWsgYW5kIE1pa2UgRmVudG9uLgorICAgICAgICBQUiAyMTc4OTcgMjM4NDg1
IDI1ODI3OSAyNzkwNDIgMjk5Nzc5CisKKyAgICAgICAgKiBBcGkvV2ViUGFnZS5jcHA6CisgICAg
ICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2U6OnNlbGVjdEF0RG9jdW1lbnRQb2ludCk6
CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2U6OmV4cGFuZFNlbGVjdGlvbik6
CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdl
OjpzZXRPdmVybGF5RXhwYW5zaW9uUGl4ZWxIZWlnaHQpOgorICAgICAgICAoQmxhY2tCZXJyeTo6
V2ViS2l0OjpXZWJQYWdlUHJpdmF0ZTo6c2V0T3ZlcmxheUV4cGFuc2lvblBpeGVsSGVpZ2h0KToK
KyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZTo6c2V0UGFyYWdyYXBoRXhwYW5z
aW9uUGl4ZWxTY3JvbGxNYXJnaW4pOgorICAgICAgICAqIEFwaS9XZWJQYWdlLmg6CisgICAgICAg
ICogQXBpL1dlYlBhZ2VDbGllbnQuaDoKKyAgICAgICAgKiBBcGkvV2ViUGFnZV9wLmg6CisgICAg
ICAgIChXZWJQYWdlUHJpdmF0ZSk6CisgICAgICAgICogV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25I
YW5kbGVyLmNwcDoKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6U2VsZWN0aW9uSGFuZGxl
cjo6Y2FuY2VsU2VsZWN0aW9uKToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6U2VsZWN0
aW9uSGFuZGxlcjo6c2VsZWN0QXRQb2ludCk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6
OmlzSW52YWxpZExpbmUpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKEJsYWNrQmVycnk6
OldlYktpdDo6aXNJbnZhbGlkUGFyYWdyYXBoKToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktp
dDo6U2VsZWN0aW9uSGFuZGxlcjo6c2VsZWN0TmV4dFBhcmFncmFwaCk6CisgICAgICAgIChCbGFj
a0JlcnJ5OjpXZWJLaXQ6OlNlbGVjdGlvbkhhbmRsZXI6OmRyYXdPdmVybGF5KToKKyAgICAgICAg
KEJsYWNrQmVycnk6OldlYktpdDo6U2VsZWN0aW9uSGFuZGxlcjo6ZmluZE5leHRPdmVybGF5UmVn
aW9uKToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6U2VsZWN0aW9uSGFuZGxlcjo6ZXhw
YW5kU2VsZWN0aW9uKToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6U2VsZWN0aW9uSGFu
ZGxlcjo6ZW5zdXJlU2VsZWN0ZWRUZXh0VmlzaWJsZSk6CisgICAgICAgIChCbGFja0JlcnJ5OjpX
ZWJLaXQ6OlNlbGVjdGlvbkhhbmRsZXI6OnNldFBhcmFncmFwaEV4cGFuc2lvblNjcm9sbE1hcmdp
bik6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OlNlbGVjdGlvbkhhbmRsZXI6OmV4cGFu
ZFNlbGVjdGlvblRvR3JhbnVsYXJpdHkpOgorICAgICAgICAqIFdlYktpdFN1cHBvcnQvU2VsZWN0
aW9uSGFuZGxlci5oOgorICAgICAgICAoU2VsZWN0aW9uSGFuZGxlcik6CisgICAgICAgIChCbGFj
a0JlcnJ5OjpXZWJLaXQ6OlNlbGVjdGlvbkhhbmRsZXI6OnNldE92ZXJsYXlFeHBhbnNpb25IZWln
aHQpOgorCiAyMDEzLTAzLTAxICBKYWNreSBKaWFuZyAgPHpoYWppYW5nQHJpbS5jb20+CiAKICAg
ICAgICAgW0JsYWNrQmVycnldIFNjcmVlbiB3ZW50IGJsYWNrIHdoaWxlIG5hdmlnYXRpbmcgYmFj
ay9mb3J3YXJkIG9uIHRoZSByZWRkaXQuY29tIHBhZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L1NlbGVjdGlvbkhhbmRsZXIuY3BwIGIvU291cmNl
L1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvU2VsZWN0aW9uSGFuZGxlci5jcHAKaW5k
ZXggNjk5ZTc2NC4uODE1Njg0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L1dlYktpdFN1cHBvcnQvU2VsZWN0aW9uSGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvU2VsZWN0aW9uSGFuZGxlci5jcHAKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDExLCAyMDEyIFJlc2VhcmNoIEluIE1v
dGlvbiBMaW1pdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEw
LCAyMDExLCAyMDEyLCAyMDEzIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRl
ICJIaXRUZXN0UmVzdWx0LmgiCiAjaW5jbHVkZSAiSW5wdXRIYW5kbGVyLmgiCiAjaW5jbHVkZSAi
SW50UmVjdC5oIgorI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCiAjaW5jbHVkZSAiU2VsZWN0aW9u
T3ZlcmxheS5oIgogI2luY2x1ZGUgIlRvdWNoRXZlbnRIYW5kbGVyLmgiCiAjaW5jbHVkZSAiV2Vi
UGFnZUNsaWVudC5oIgpAQCAtMzksNiArNDAsNyBAQAogCiAjaW5jbHVkZSA8QmxhY2tCZXJyeVBs
YXRmb3JtS2V5Ym9hcmRFdmVudC5oPgogI2luY2x1ZGUgPEJsYWNrQmVycnlQbGF0Zm9ybUxvZy5o
PgorI2luY2x1ZGUgPEJsYWNrQmVycnlQbGF0Zm9ybVZpZXdwb3J0QWNjZXNzb3IuaD4KIAogI2lu
Y2x1ZGUgPHN5cy9rZXljb2Rlcy5oPgogCkBAIC04Miw2ICs4NCw4IEBAIHZvaWQgU2VsZWN0aW9u
SGFuZGxlcjo6Y2FuY2VsU2VsZWN0aW9uKCkKIHsKICAgICBtX3NlbGVjdGlvbkFjdGl2ZSA9IGZh
bHNlOwogICAgIG1fbGFzdFNlbGVjdGlvblJlZ2lvbiA9IEludFJlY3RSZWdpb24oKTsKKyAgICBt
X2N1cnJlbnRPdmVybGF5UmVnaW9uID0gSW50UmVjdFJlZ2lvbigpOworICAgIG1fbmV4dE92ZXJs
YXlSZWdpb24gPSBJbnRSZWN0UmVnaW9uKCk7CiAKICAgICBpZiAobV93ZWJQYWdlLT5tX3NlbGVj
dGlvbk92ZXJsYXkpCiAgICAgICAgIG1fd2ViUGFnZS0+bV9zZWxlY3Rpb25PdmVybGF5LT5oaWRl
KCk7CkBAIC02MDAsNyArNjA0LDcgQEAgYm9vbCBTZWxlY3Rpb25IYW5kbGVyOjpzZWxlY3ROb2Rl
SWZGYXRGaW5nZXJzUmVzdWx0SXNMaW5rKEZhdEZpbmdlcnNSZXN1bHQgZmF0RmkKICAgICByZXR1
cm4gZmFsc2U7CiB9CiAKLXZvaWQgU2VsZWN0aW9uSGFuZGxlcjo6c2VsZWN0QXRQb2ludChjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCYgbG9jYXRpb24pCit2b2lkIFNlbGVjdGlvbkhhbmRsZXI6OnNl
bGVjdEF0UG9pbnQoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGxvY2F0aW9uLCBTZWxlY3Rpb25F
eHBhbnNpb25UeXBlIHNlbGVjdGlvbkV4cGFuc2lvblR5cGUpCiB7CiAgICAgLy8gSWYgcG9pbnQg
aXMgaW52YWxpZCB0cmlnZ2VyIHNlbGVjdGlvbiBiYXNlZCBleHBhbnNpb24uCiAgICAgaWYgKGxv
Y2F0aW9uID09IERPTVN1cHBvcnQ6OkludmFsaWRQb2ludCkgewpAQCAtNjI4LDExICs2MzIsMTU2
IEBAIHZvaWQgU2VsZWN0aW9uSGFuZGxlcjo6c2VsZWN0QXRQb2ludChjb25zdCBXZWJDb3JlOjpJ
bnRQb2ludCYgbG9jYXRpb24pCiAgICAgICAgIHRhcmdldFBvc2l0aW9uID0gbmV3RmF0RmluZ2Vy
c1Jlc3VsdC5hZGp1c3RlZFBvc2l0aW9uKCk7CiAgICAgfQogCi0gICAgLy8gc2VsZWN0QXRQb2lu
dCBBUEkgY3VycmVudGx5IG9ubHkgc3VwcG9ydHMgV29yZEdyYW51bGFyaXR5IGJ1dCBtYXkgYmUg
ZXh0ZW5kZWQgaW4gdGhlIGZ1dHVyZS4KLSAgICBzZWxlY3RPYmplY3QodGFyZ2V0UG9zaXRpb24s
IFdvcmRHcmFudWxhcml0eSk7CisgICAgbV9jdXJyZW50T3ZlcmxheVJlZ2lvbiA9IEludFJlY3RS
ZWdpb24oKTsKKyAgICBtX25leHRPdmVybGF5UmVnaW9uID0gSW50UmVjdFJlZ2lvbigpOworICAg
IHNlbGVjdE9iamVjdCh0YXJnZXRQb3NpdGlvbiwgdGV4dEdyYW51bGFyaXR5RnJvbVNlbGVjdGlv
bkV4cGFuc2lvblR5cGUoc2VsZWN0aW9uRXhwYW5zaW9uVHlwZSkpOwogfQogCi1zdGF0aWMgYm9v
bCBleHBhbmRTZWxlY3Rpb25Ub0dyYW51bGFyaXR5KEZyYW1lKiBmcmFtZSwgVmlzaWJsZVNlbGVj
dGlvbiBzZWxlY3Rpb24sIFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSwgYm9vbCBpc0lucHV0
TW9kZSkKK3N0YXRpYyBib29sIGlzSW52YWxpZExpbmUoY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBw
b3MpCit7CisgICAgcmV0dXJuIGVuZE9mTGluZShwb3MpLmlzTnVsbCgpIHx8IHBvcyA9PSBlbmRP
ZkxpbmUocG9zKSB8fCAhaW5TYW1lTGluZShwb3MsIGVuZE9mTGluZShwb3MpKTsKK30KKworc3Rh
dGljIGJvb2wgaXNJbnZhbGlkUGFyYWdyYXBoKGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zKQor
eworICAgIHJldHVybiBlbmRPZlBhcmFncmFwaChwb3MpLmlzTnVsbCgpIHx8IHBvcyA9PSBlbmRP
ZlBhcmFncmFwaChwb3MpOworfQorCit2b2lkIFNlbGVjdGlvbkhhbmRsZXI6OnNlbGVjdE5leHRQ
YXJhZ3JhcGgoKQoreworICAgIEZyYW1lU2VsZWN0aW9uKiBjb250cm9sbGVyID0gbV93ZWJQYWdl
LT5mb2N1c2VkT3JNYWluRnJhbWUoKS0+c2VsZWN0aW9uKCk7CisKKyAgICBWaXNpYmxlUG9zaXRp
b24gc3RhcnRQb3MgPSBWaXNpYmxlUG9zaXRpb24oY29udHJvbGxlci0+c3RhcnQoKSwgY29udHJv
bGxlci0+YWZmaW5pdHkoKSk7CisgICAgaWYgKGlzU3RhcnRPZkxpbmUoc3RhcnRQb3MpICYmIGlz
RW5kT2ZFZGl0YWJsZU9yTm9uRWRpdGFibGVDb250ZW50KHN0YXJ0UG9zKSkKKyAgICAgICAgc3Rh
cnRQb3MgPSBzdGFydFBvcy5wcmV2aW91cygpOworCisgICAgLy8gRmluZCBuZXh0IHBhcmFncmFw
aCBlbmQgcG9zaXRpb24uCisgICAgVmlzaWJsZVBvc2l0aW9uIGVuZFBvcyhjb250cm9sbGVyLT5l
bmQoKSwgY29udHJvbGxlci0+YWZmaW5pdHkoKSk7IC8vIGVuZFBvcyBoZXJlIGluZGljYXRlcyB0
aGUgZW5kIG9mIGN1cnJlbnQgcGFyYWdyYXBoCisgICAgZW5kUG9zID0gZW5kUG9zLm5leHQoKTsg
Ly8gZmluZCB0aGUgc3RhcnQgb2YgbmV4dCBwYXJhZ3JhcGgKKyAgICB3aGlsZSAoIWlzRW5kT2ZE
b2N1bWVudChlbmRQb3MuZGVlcEVxdWl2YWxlbnQoKSkgJiYgZW5kUG9zLmlzTm90TnVsbCgpICYm
IGlzSW52YWxpZFBhcmFncmFwaChlbmRQb3MpKQorICAgICAgICBlbmRQb3MgPSBlbmRQb3MubmV4
dCgpOyAvLyBnbyB0byBuZXh0IHBvc2l0aW9uCisgICAgZW5kUG9zID0gZW5kT2ZQYXJhZ3JhcGgo
ZW5kUG9zKTsgLy8gZmluZCB0aGUgZW5kIG9mIHBhcmFncmFwaAorCisgICAgLy8gU2V0IHNlbGVj
dGlvbiBpZiB0aGUgcGFyYWdyYXBoIGlzIGNvdmVyZWQgYnkgb3ZlcmxheSBhbmQgZW5kUG9zIGlz
IG5vdCBudWxsLgorICAgIGlmIChtX2N1cnJlbnRPdmVybGF5UmVnaW9uLmV4dGVudHMoKS5ib3R0
b20oKSA+PSBlbmRQb3MuYWJzb2x1dGVDYXJldEJvdW5kcygpLm1heFkoKSAmJiBlbmRQb3MuaXNO
b3ROdWxsKCkpIHsKKyAgICAgICAgVmlzaWJsZVNlbGVjdGlvbiBzZWxlY3Rpb24gPSBWaXNpYmxl
U2VsZWN0aW9uKHN0YXJ0UG9zLCBlbmRQb3MpOworICAgICAgICBzZWxlY3Rpb24uc2V0QWZmaW5p
dHkoY29udHJvbGxlci0+YWZmaW5pdHkoKSk7CisgICAgICAgIGNvbnRyb2xsZXItPnNldFNlbGVj
dGlvbihzZWxlY3Rpb24pOworCisgICAgICAgIC8vIFN0b3AgZXhwYW5zaW9uIGlmIHJlYWNoaW5n
IHRoZSBlbmQgb2YgcGFnZS4KKyAgICAgICAgaWYgKGlzRW5kT2ZEb2N1bWVudChlbmRQb3MuZGVl
cEVxdWl2YWxlbnQoKSkpCisgICAgICAgICAgICBtX3dlYlBhZ2UtPm1fY2xpZW50LT5zdG9wRXhw
YW5kaW5nU2VsZWN0aW9uKCk7CisgICAgfQorfQorCit2b2lkIFNlbGVjdGlvbkhhbmRsZXI6OmRy
YXdPdmVybGF5KEludFJlY3RSZWdpb24gb3ZlcmxheVJlZ2lvbiwgYm9vbCBpc0V4cGFuZGluZ092
ZXJsYXlBdENvbnN0YW50UmF0ZSkKK3sKKyAgICBFbGVtZW50KiBlbGVtZW50ID0gbV9vdmVybGF5
U3RhcnRQb3MuZGVlcEVxdWl2YWxlbnQoKS5lbGVtZW50KCk7CisgICAgaWYgKCFlbGVtZW50KQor
ICAgICAgICByZXR1cm47CisKKyAgICBpZiAoaXNFeHBhbmRpbmdPdmVybGF5QXRDb25zdGFudFJh
dGUpIHsKKyAgICAgICAgLy8gV2hlbiBvdmVybGF5IGV4cGFuZHMgYXQgYSBjb25zdGFudCByYXRl
LCB0aGUgY3VycmVudCBvdmVybGF5IGhlaWdodCBpbmNyZWFzZXMKKyAgICAgICAgLy8gbV9vdmVy
bGF5RXhwYW5zaW9uSGVpZ2h0IGVhY2ggdGltZSBhbmQgdGhlIHdpZHRoIGlzIGFsd2F5cyBzYW1l
IGFzIG5leHQgb3ZlcmxheSByZWdpb24uCisgICAgICAgIFdlYkNvcmU6OkludFJlY3QgY3VycmVu
dE92ZXJsYXlSZWN0ID0gbV9jdXJyZW50T3ZlcmxheVJlZ2lvbi5leHRlbnRzKCk7CisgICAgICAg
IFdlYkNvcmU6OkludFJlY3QgbmV4dE92ZXJsYXlSZWN0ID0gbV9uZXh0T3ZlcmxheVJlZ2lvbi5l
eHRlbnRzKCk7CisgICAgICAgIFdlYkNvcmU6OkludFJlY3Qgb3ZlcmxheVJlY3QoV2ViQ29yZTo6
SW50UmVjdChuZXh0T3ZlcmxheVJlY3QubG9jYXRpb24oKSwgV2ViQ29yZTo6SW50U2l6ZShuZXh0
T3ZlcmxheVJlY3Qud2lkdGgoKSwgY3VycmVudE92ZXJsYXlSZWN0LmhlaWdodCgpICsgbV9vdmVy
bGF5RXhwYW5zaW9uSGVpZ2h0KSkpOworICAgICAgICBvdmVybGF5UmVnaW9uID0gSW50UmVjdFJl
Z2lvbihvdmVybGF5UmVjdCk7CisgICAgfQorCisgICAgQ29sb3IgaGlnaGxpZ2h0Q29sb3IgPSBl
bGVtZW50LT5yZW5kZXJTdHlsZSgpLT5pbml0aWFsVGFwSGlnaGxpZ2h0Q29sb3IoKTsKKyAgICBt
X3dlYlBhZ2UtPm1fdGFwSGlnaGxpZ2h0LT5kcmF3KG92ZXJsYXlSZWdpb24sCisgICAgICAgIGhp
Z2hsaWdodENvbG9yLnJlZCgpLCBoaWdobGlnaHRDb2xvci5ncmVlbigpLCBoaWdobGlnaHRDb2xv
ci5ibHVlKCksIGhpZ2hsaWdodENvbG9yLmFscGhhKCksCisgICAgICAgIGZhbHNlIC8qIGRvIG5v
dCBoaWRlIGFmdGVyIHNjcm9sbCAqLyk7CisgICAgbV9jdXJyZW50T3ZlcmxheVJlZ2lvbiA9IG92
ZXJsYXlSZWdpb247Cit9CisKK2Jvb2wgU2VsZWN0aW9uSGFuZGxlcjo6ZmluZE5leHRPdmVybGF5
UmVnaW9uKCkKK3sKKyAgICAvLyBJZiBvdmVybGF5IGlzIGF0IHRoZSBlbmQgb2YgZG9jdW1lbnQs
IHN0b3Agb3ZlcmxheSBleHBhbnNpb24uCisgICAgaWYgKGlzRW5kT2ZEb2N1bWVudChtX292ZXJs
YXlFbmRQb3MuZGVlcEVxdWl2YWxlbnQoKSkgfHwgbV9vdmVybGF5RW5kUG9zLmlzTnVsbCgpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBtX292ZXJsYXlFbmRQb3MgPSBtX292ZXJsYXlF
bmRQb3MubmV4dCgpOworICAgIHdoaWxlICghaXNFbmRPZkRvY3VtZW50KG1fb3ZlcmxheUVuZFBv
cy5kZWVwRXF1aXZhbGVudCgpKSAmJiBtX292ZXJsYXlFbmRQb3MuaXNOb3ROdWxsKCkgJiYgaXNJ
bnZhbGlkTGluZShtX292ZXJsYXlFbmRQb3MpKQorICAgICAgICBtX292ZXJsYXlFbmRQb3MgPSBt
X292ZXJsYXlFbmRQb3MubmV4dCgpOyAvLyBnbyB0byBuZXh0IHBvc2l0aW9uCisgICAgbV9vdmVy
bGF5RW5kUG9zID0gZW5kT2ZMaW5lKG1fb3ZlcmxheUVuZFBvcyk7IC8vIGZpbmQgZW5kIG9mIGxp
bmUKKworICAgIFZpc2libGVTZWxlY3Rpb24gc2VsZWN0aW9uKG1fb3ZlcmxheVN0YXJ0UG9zLCBt
X292ZXJsYXlFbmRQb3MpOworICAgIFZlY3RvcjxGbG9hdFF1YWQ+IHF1YWRzOworICAgIERPTVN1
cHBvcnQ6OnZpc2libGVUZXh0UXVhZHMoc2VsZWN0aW9uLCBxdWFkcyk7CisgICAgcmVnaW9uRm9y
VGV4dFF1YWRzKHF1YWRzLCBtX25leHRPdmVybGF5UmVnaW9uKTsKKyAgICByZXR1cm4gdHJ1ZTsK
K30KKwordm9pZCBTZWxlY3Rpb25IYW5kbGVyOjpleHBhbmRTZWxlY3Rpb24oYm9vbCBpc1Njcm9s
bFN0YXJ0ZWQpCit7CisgICAgV2ViQ29yZTo6SW50UG9pbnQgbmV4dE92ZXJsYXlCb3R0b21SaWdo
dFBvaW50ID0gV2ViQ29yZTo6SW50UG9pbnQobV9jdXJyZW50T3ZlcmxheVJlZ2lvbi5leHRlbnRz
KCkuYm90dG9tUmlnaHQoKSkgKyBXZWJDb3JlOjpJbnRQb2ludCgwLCBtX292ZXJsYXlFeHBhbnNp
b25IZWlnaHQpOworICAgIGlmIChuZXh0T3ZlcmxheUJvdHRvbVJpZ2h0UG9pbnQueSgpID4gbV9u
ZXh0T3ZlcmxheVJlZ2lvbi5leHRlbnRzKCkuYm90dG9tKCkpCisgICAgICAgIC8vIEZpbmQgbmV4
dCBvdmVybGF5IHJlZ2lvbiBzbyB0aGF0IHdlIGNhbiB1cGRhdGUgb3ZlcmxheSByZWdpb24ncyB3
aWR0aCB3aGlsZSBleHBhbmRpbmcuCisgICAgICAgIGlmICghZmluZE5leHRPdmVybGF5UmVnaW9u
KCkpIHsKKyAgICAgICAgICAgIGRyYXdPdmVybGF5KG1fbmV4dE92ZXJsYXlSZWdpb24sIGZhbHNl
KTsKKyAgICAgICAgICAgIHNlbGVjdE5leHRQYXJhZ3JhcGgoKTsKKyAgICAgICAgICAgIG1fd2Vi
UGFnZS0+bV9jbGllbnQtPnN0b3BFeHBhbmRpbmdTZWxlY3Rpb24oKTsKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgfQorCisgICAgLy8gRHJhdyBvdmVybGF5IGlmIHRoZSBwb3NpdGlvbiBp
cyBpbiB0aGUgdmlld3BvcnQgYW5kIGlzIG5vdCBudWxsLgorICAgIC8vIE90aGVyd2lzZSwgc3Rh
cnQgc2Nyb2xsaW5nIGlmIGl0IGhhc24ndCBzdGFydGVkLgorICAgIGlmIChlbnN1cmVTZWxlY3Rl
ZFRleHRWaXNpYmxlKG5leHRPdmVybGF5Qm90dG9tUmlnaHRQb2ludCwgZmFsc2UgLyogZG8gbm90
IHNjcm9sbCAqLykgJiYgbV9vdmVybGF5RW5kUG9zLmlzTm90TnVsbCgpKQorICAgICAgICBkcmF3
T3ZlcmxheShJbnRSZWN0UmVnaW9uKCksIHRydWUgLyogaXNFeHBhbmRpbmdPdmVybGF5QXRDb25z
dGFudFJhdGUgKi8pOworICAgIGVsc2UgaWYgKCFpc1Njcm9sbFN0YXJ0ZWQpIHsKKyAgICAgICAg
bV93ZWJQYWdlLT5tX2NsaWVudC0+c3RhcnRTZWxlY3Rpb25TY3JvbGwoKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIHNlbGVjdE5leHRQYXJhZ3JhcGgoKTsKK30KKworYm9vbCBTZWxl
Y3Rpb25IYW5kbGVyOjplbnN1cmVTZWxlY3RlZFRleHRWaXNpYmxlKGNvbnN0IFdlYkNvcmU6Oklu
dFBvaW50JiBwb2ludCwgYm9vbCBzY3JvbGxJZk5lZWRlZCkKK3sKKyAgICBXZWJDb3JlOjpJbnRQ
b2ludCBzY3JvbGxQb3NpdGlvbiA9IG1fd2ViUGFnZS0+c2Nyb2xsUG9zaXRpb24oKTsKKyAgICBX
ZWJDb3JlOjpJbnRTaXplIGFjdHVhbFZpc2libGVTaXplID0gbV93ZWJQYWdlLT5jbGllbnQoKS0+
dXNlckludGVyZmFjZVZpZXdwb3J0QWNjZXNzb3IoKS0+ZG9jdW1lbnRWaWV3cG9ydFJlY3QoKS5z
aXplKCk7IC8vIHZpZXdwb3J0IHNpemUgZm9yIGJvdGggQ2FzY2FkZXMgYW5kIGJyb3dzZXIKKyAg
ICBXZWJDb3JlOjpJbnRSZWN0IGFjdHVhbFNjcmVlblJlY3QgPSBXZWJDb3JlOjpJbnRSZWN0KHNj
cm9sbFBvc2l0aW9uLCBhY3R1YWxWaXNpYmxlU2l6ZSk7CisKKyAgICBpZiAoIXNjcm9sbElmTmVl
ZGVkKQorICAgICAgICByZXR1cm4gYWN0dWFsU2NyZWVuUmVjdC5tYXhZKCkgPj0gcG9pbnQueSgp
ICsgbV9zY3JvbGxNYXJnaW4uaGVpZ2h0KCk7CisKKyAgICBXZWJDb3JlOjpJbnRSZWN0IGVuZExv
Y2F0aW9uID0gbV9vdmVybGF5RW5kUG9zLmFic29sdXRlQ2FyZXRCb3VuZHMoKTsKKyAgICBOb2Rl
KiBhbmNob3JOb2RlID0gbV9vdmVybGF5RW5kUG9zLmRlZXBFcXVpdmFsZW50KCkuYW5jaG9yTm9k
ZSgpOworICAgIGlmICghYW5jaG9yTm9kZSB8fCAhYW5jaG9yTm9kZS0+cmVuZGVyZXIoKSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgUmVuZGVyTGF5ZXIqIGxheWVyID0gYW5jaG9yTm9k
ZS0+cmVuZGVyZXIoKS0+ZW5jbG9zaW5nTGF5ZXIoKTsKKyAgICBpZiAoIWxheWVyKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICBlbmRMb2NhdGlvbi5pbmZsYXRlWChtX3Njcm9sbE1hcmdp
bi53aWR0aCgpKTsKKyAgICBlbmRMb2NhdGlvbi5pbmZsYXRlWShtX3Njcm9sbE1hcmdpbi5oZWln
aHQoKSk7CisKKyAgICBXZWJDb3JlOjpJbnRSZWN0IHJldmVhbFJlY3QobGF5ZXItPmdldFJlY3RU
b0V4cG9zZShhY3R1YWxTY3JlZW5SZWN0LCBlbmRMb2NhdGlvbiwgU2Nyb2xsQWxpZ25tZW50Ojph
bGlnblRvRWRnZUlmTmVlZGVkLCBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduVG9FZGdlSWZOZWVkZWQp
KTsKKyAgICByZXZlYWxSZWN0LnNldFgoc3RkOjptaW4oc3RkOjptYXgocmV2ZWFsUmVjdC54KCks
IDApLCBtX3dlYlBhZ2UtPm1heGltdW1TY3JvbGxQb3NpdGlvbigpLngoKSkpOworICAgIHJldmVh
bFJlY3Quc2V0WShzdGQ6Om1pbihzdGQ6Om1heChyZXZlYWxSZWN0LnkoKSwgMCksIG1fd2ViUGFn
ZS0+bWF4aW11bVNjcm9sbFBvc2l0aW9uKCkueSgpKSk7CisKKyAgICBpZiAocmV2ZWFsUmVjdC5s
b2NhdGlvbigpICE9IHNjcm9sbFBvc2l0aW9uKSB7CisgICAgICAgIC8vIEFuaW1hdGUgc2Nyb2xs
IHBvc2l0aW9uIHRvIHJldmVhbFJlY3QuCisgICAgICAgIG1fd2ViUGFnZS0+bV9maW5hbEJsb2Nr
UG9pbnQgPSBXZWJDb3JlOjpGbG9hdFBvaW50KHJldmVhbFJlY3QueCgpLCByZXZlYWxSZWN0Lnko
KSk7CisgICAgICAgIG1fd2ViUGFnZS0+bV9ibG9ja1pvb21GaW5hbFNjYWxlID0gbV93ZWJQYWdl
LT5tX3dlYlBhZ2UtPmN1cnJlbnRTY2FsZSgpOyAvLyBEb24ndCB6b29tLgorICAgICAgICBtX3dl
YlBhZ2UtPm1fc2hvdWxkUmVmbG93QmxvY2sgPSBmYWxzZTsKKyAgICAgICAgbV93ZWJQYWdlLT5t
X3VzZXJQZXJmb3JtZWRNYW51YWxab29tID0gdHJ1ZTsKKyAgICAgICAgbV93ZWJQYWdlLT5tX3Vz
ZXJQZXJmb3JtZWRNYW51YWxTY3JvbGwgPSB0cnVlOworICAgICAgICBtX3dlYlBhZ2UtPmNsaWVu
dCgpLT5hbmltYXRlQmxvY2tab29tKG1fd2ViUGFnZS0+bV93ZWJQYWdlLT5jdXJyZW50U2NhbGUo
KSwgbV93ZWJQYWdlLT5tX2ZpbmFsQmxvY2tQb2ludCk7CisgICAgfQorICAgIHJldHVybiB0cnVl
OworfQorCit2b2lkIFNlbGVjdGlvbkhhbmRsZXI6OnNldFBhcmFncmFwaEV4cGFuc2lvblNjcm9s
bE1hcmdpbihjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzY3JvbGxNYXJnaW4pCit7CisgICAgbV9z
Y3JvbGxNYXJnaW4uc2V0V2lkdGgoc2Nyb2xsTWFyZ2luLndpZHRoKCkpOworICAgIG1fc2Nyb2xs
TWFyZ2luLnNldEhlaWdodChzY3JvbGxNYXJnaW4uaGVpZ2h0KCkpOworfQorCitib29sIFNlbGVj
dGlvbkhhbmRsZXI6OmV4cGFuZFNlbGVjdGlvblRvR3JhbnVsYXJpdHkoRnJhbWUqIGZyYW1lLCBW
aXNpYmxlU2VsZWN0aW9uIHNlbGVjdGlvbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBi
b29sIGlzSW5wdXRNb2RlKQogewogICAgIEFTU0VSVChmcmFtZSk7CiAgICAgQVNTRVJUKGZyYW1l
LT5zZWxlY3Rpb24oKSk7CkBAIC02NDksNyArNzk4LDE4IEBAIHN0YXRpYyBib29sIGV4cGFuZFNl
bGVjdGlvblRvR3JhbnVsYXJpdHkoRnJhbWUqIGZyYW1lLCBWaXNpYmxlU2VsZWN0aW9uIHNlbGVj
dGlvCiAgICAgaWYgKGlzSW5wdXRNb2RlICYmICFmcmFtZS0+c2VsZWN0aW9uKCktPnNob3VsZENo
YW5nZVNlbGVjdGlvbihzZWxlY3Rpb24pKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBt
X292ZXJsYXlTdGFydFBvcyA9IHNlbGVjdGlvbi52aXNpYmxlU3RhcnQoKTsKKyAgICBtX292ZXJs
YXlFbmRQb3MgPSBzZWxlY3Rpb24udmlzaWJsZUVuZCgpOworICAgIFZlY3RvcjxGbG9hdFF1YWQ+
IHF1YWRzOworICAgIERPTVN1cHBvcnQ6OnZpc2libGVUZXh0UXVhZHMoc2VsZWN0aW9uLCBxdWFk
cyk7CisgICAgcmVnaW9uRm9yVGV4dFF1YWRzKHF1YWRzLCBtX2N1cnJlbnRPdmVybGF5UmVnaW9u
KTsKKworICAgIGVuc3VyZVNlbGVjdGVkVGV4dFZpc2libGUoV2ViQ29yZTo6SW50UG9pbnQoKSwg
dHJ1ZSAvKiBzY3JvbGwgaWYgbmVlZGVkICovKTsKKyAgICBkcmF3T3ZlcmxheShtX2N1cnJlbnRP
dmVybGF5UmVnaW9uLCBmYWxzZSAvKiBpc0V4cGFuZGluZ092ZXJsYXlBdENvbnN0YW50UmF0ZSAq
Lyk7CiAgICAgZnJhbWUtPnNlbGVjdGlvbigpLT5zZXRTZWxlY3Rpb24oc2VsZWN0aW9uKTsKKyAg
ICBpZiAoZ3JhbnVsYXJpdHkgPT0gUGFyYWdyYXBoR3JhbnVsYXJpdHkpCisgICAgICAgIGZpbmRO
ZXh0T3ZlcmxheVJlZ2lvbigpOworCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L1NlbGVjdGlvbkhhbmRsZXIu
aCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L1NlbGVjdGlvbkhhbmRs
ZXIuaAppbmRleCA4OTZkZTE0Li5kYTBlZGFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25IYW5kbGVyLmgKKysrIGIvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvU2VsZWN0aW9uSGFuZGxlci5oCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxMSwgMjAxMiBSZXNlYXJjaCBJ
biBNb3Rpb24gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMCwgMjAxMSwgMjAxMiwgMjAxMyBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZC4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCkBAIC02Myw3ICs2Myw3IEBAIHB1Ymxp
YzoKICAgICBib29sIHNlbGVjdGlvbkNvbnRhaW5zKGNvbnN0IFdlYkNvcmU6OkludFBvaW50Jik7
CiAKICAgICB2b2lkIHNldFNlbGVjdGlvbihjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc3RhcnQs
IGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBlbmQpOwotICAgIHZvaWQgc2VsZWN0QXRQb2ludChj
b25zdCBXZWJDb3JlOjpJbnRQb2ludCYpOworICAgIHZvaWQgc2VsZWN0QXRQb2ludChjb25zdCBX
ZWJDb3JlOjpJbnRQb2ludCYsIFNlbGVjdGlvbkV4cGFuc2lvblR5cGUpOwogICAgIHZvaWQgc2Vs
ZWN0T2JqZWN0KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgV2ViQ29yZTo6VGV4dEdyYW51bGFy
aXR5KTsKICAgICB2b2lkIHNlbGVjdE9iamVjdChXZWJDb3JlOjpUZXh0R3JhbnVsYXJpdHkpOwog
ICAgIHZvaWQgc2VsZWN0T2JqZWN0KFdlYkNvcmU6Ok5vZGUqKTsKQEAgLTc2LDYgKzc2LDEwIEBA
IHB1YmxpYzoKIAogICAgIHZvaWQgaW5wdXRIYW5kbGVyRGlkRmluaXNoUHJvY2Vzc2luZ0NoYW5n
ZSgpOwogCisgICAgdm9pZCBleHBhbmRTZWxlY3Rpb24oYm9vbCBpc1Njcm9sbFN0YXJ0ZWQpOwor
ICAgIHZvaWQgc2V0T3ZlcmxheUV4cGFuc2lvbkhlaWdodChjb25zdCBpbnQgZHkpIHsgbV9vdmVy
bGF5RXhwYW5zaW9uSGVpZ2h0ID0gZHk7IH0KKyAgICB2b2lkIHNldFBhcmFncmFwaEV4cGFuc2lv
blNjcm9sbE1hcmdpbihjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7CisKIHByaXZhdGU6CiAgICAg
dm9pZCBub3RpZnlDYXJldFBvc2l0aW9uQ2hhbmdlZElmTmVlZGVkKGJvb2wgdXNlclRvdWNoVHJp
Z2dlcmVkID0gdHJ1ZSk7CiAgICAgdm9pZCBjYXJldFBvc2l0aW9uQ2hhbmdlZChib29sIHVzZXJU
b3VjaFRyaWdnZXJlZCk7CkBAIC04OCw2ICs5MiwxMiBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVk
IGV4dGVuZFNlbGVjdGlvblRvRmllbGRCb3VuZGFyeShib29sIGlzU3RhcnRIYW5kbGUsIGNvbnN0
IFdlYkNvcmU6OkludFBvaW50JiBzZWxlY3Rpb25Qb2ludCwgV2ViQ29yZTo6VmlzaWJsZVNlbGVj
dGlvbiYgbmV3U2VsZWN0aW9uKTsKICAgICBXZWJDb3JlOjpJbnRQb2ludCBjbGlwUG9pbnRUb1Zp
c2libGVDb250YWluZXIoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKSBjb25zdDsKIAorICAgIHZv
aWQgc2VsZWN0TmV4dFBhcmFncmFwaCgpOworICAgIHZvaWQgZHJhd092ZXJsYXkoQmxhY2tCZXJy
eTo6UGxhdGZvcm06OkludFJlY3RSZWdpb24sIGJvb2wpOworICAgIGJvb2wgZmluZE5leHRPdmVy
bGF5UmVnaW9uKCk7CisgICAgYm9vbCBlbnN1cmVTZWxlY3RlZFRleHRWaXNpYmxlKGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiwgYm9vbCBzY3JvbGxJZk5lZWRlZCk7CisgICAgYm9vbCBleHBhbmRT
ZWxlY3Rpb25Ub0dyYW51bGFyaXR5KFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6VmlzaWJsZVNl
bGVjdGlvbiwgV2ViQ29yZTo6VGV4dEdyYW51bGFyaXR5LCBib29sIGlzSW5wdXRNb2RlKTsKKwog
ICAgIGJvb2wgaW5wdXROb2RlT3ZlcnJpZGVzVG91Y2goKSBjb25zdDsKICAgICBCbGFja0JlcnJ5
OjpQbGF0Zm9ybTo6UmVxdWVzdGVkSGFuZGxlUG9zaXRpb24gcmVxdWVzdGVkU2VsZWN0aW9uSGFu
ZGxlUG9zaXRpb24oY29uc3QgV2ViQ29yZTo6VmlzaWJsZVNlbGVjdGlvbiYpIGNvbnN0OwogCkBA
IC0xMDAsOSArMTEwLDE1IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2xhc3RVcGRhdGVkRW5kUG9p
bnRJc1ZhbGlkOwogICAgIGJvb2wgbV9kaWRTdXBwcmVzc0NhcmV0UG9zaXRpb25DaGFuZ2VkTm90
aWZpY2F0aW9uOwogICAgIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpJbnRSZWN0UmVnaW9uIG1fbGFz
dFNlbGVjdGlvblJlZ2lvbjsKKyAgICBXZWJDb3JlOjpWaXNpYmxlUG9zaXRpb24gbV9vdmVybGF5
U3RhcnRQb3M7CisgICAgV2ViQ29yZTo6VmlzaWJsZVBvc2l0aW9uIG1fb3ZlcmxheUVuZFBvczsK
KyAgICBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6SW50UmVjdFJlZ2lvbiBtX2N1cnJlbnRPdmVybGF5
UmVnaW9uOworICAgIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpJbnRSZWN0UmVnaW9uIG1fbmV4dE92
ZXJsYXlSZWdpb247CisgICAgaW50IG1fb3ZlcmxheUV4cGFuc2lvbkhlaWdodDsKIAogICAgIEJs
YWNrQmVycnk6OlBsYXRmb3JtOjpTdG9wV2F0Y2ggbV90aW1lcjsKLSAgICBXZWJDb3JlOjpWaXNp
YmxlU2VsZWN0aW9uIG1fbGFzdFNlbGVjdGlvbjsKKworICAgIFdlYkNvcmU6OkludFNpemUgbV9z
Y3JvbGxNYXJnaW47CiB9OwogCiB9Ci0tIAoxLjcuOS41Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191054</attachid>
            <date>2013-03-01 15:43:30 -0800</date>
            <delta_ts>2013-03-01 17:02:58 -0800</delta_ts>
            <desc>Patch with Changelog</desc>
            <filename>0001-2013-02-27-Iris-Wu-shuwu-rim.com.patch</filename>
            <type>text/plain</type>
            <size>22634</size>
            <attacher name="Iris Wu">shuwu</attacher>
            
              <data encoding="base64">RnJvbSA5YjgzMTZiYjY3MzUwNmVkN2I4ZTM4NDUxNDA4MzI1ZWY0ZDBlZDRiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBJcmlzIFd1IDxzaHV3dUByaW0uY29tPgpEYXRlOiBXZWQsIDI3
IEZlYiAyMDEzIDE2OjU3OjI1IC0wNTAwClN1YmplY3Q6IFtQQVRDSF0gMjAxMy0wMi0yNyAgSXJp
cyBXdSAgPHNodXd1QHJpbS5jb20+CgogICAgICAgIFtCbGFja0JlcnJ5XSBVcHN0cmVhbSBzbWFy
dCBzZWxlY3Rpb24KICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTExMjI2CgogICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKICAgICAgICAx
LiAgRXh0ZW5kIHRoZSB0b3VjaCBob2xkIHRleHQgc2VsZWN0aW9uIHRvIG5leHQgcGFyYWdyYXBo
LgogICAgICAgIDIuICBEcmF3IGFuZCBleHBhbmQgb3ZlcmxheSBvdmVyIHRleHQgYXMgdG91Y2gg
aG9sZCBzZWxlY3Rpb24gZXhwYW5kcy4KICAgICAgICAgICAgU2VsZWN0IHBhcmFncmFwaCB3aGVu
IGl0J3MgZW50aXJlbHkgY292ZXJlZCBieSBvdmVybGF5LgogICAgICAgIDMuICBTdGFydCBzY3Jv
bGxpbmcgYXQgYSBjb25zdGFudCByYXRlIHdoZW4gdGhlIGVuZCBvZgogICAgICAgICAgICBuZXh0
IHBhcmdyYXBoIGlzIG5vdCBpbiB0aGUgdmlld3BvcnQuCgogICAgICAgIFJldmlld2VkIEludGVy
bmFsbHkgQnkgR2VuZXZpZXZlIE1hayBhbmQgTWlrZSBGZW50b24uCiAgICAgICAgUFIgMjE3ODk3
IDIzODQ4NSAyNTgyNzkgMjc5MDQyIDI5OTc3OQoKICAgICAgICAqIEFwaS9XZWJQYWdlLmNwcDoK
ICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlOjpzZWxlY3RBdERvY3VtZW50UG9p
bnQpOgogICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2U6OmV4cGFuZFNlbGVjdGlv
bik6CiAgICAgICAgKFdlYktpdCk6CiAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFn
ZTo6c2V0T3ZlcmxheUV4cGFuc2lvblBpeGVsSGVpZ2h0KToKICAgICAgICAoQmxhY2tCZXJyeTo6
V2ViS2l0OjpXZWJQYWdlUHJpdmF0ZTo6c2V0T3ZlcmxheUV4cGFuc2lvblBpeGVsSGVpZ2h0KToK
ICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlOjpzZXRQYXJhZ3JhcGhFeHBhbnNp
b25QaXhlbFNjcm9sbE1hcmdpbik6CiAgICAgICAgKiBBcGkvV2ViUGFnZS5oOgogICAgICAgICog
QXBpL1dlYlBhZ2VDbGllbnQuaDoKICAgICAgICAqIEFwaS9XZWJQYWdlX3AuaDoKICAgICAgICAo
V2ViUGFnZVByaXZhdGUpOgogICAgICAgICogV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25IYW5kbGVy
LmNwcDoKICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpTZWxlY3Rpb25IYW5kbGVyOjpjYW5j
ZWxTZWxlY3Rpb24pOgogICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OlNlbGVjdGlvbkhhbmRs
ZXI6OnNlbGVjdEF0UG9pbnQpOgogICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OmlzSW52YWxp
ZExpbmUpOgogICAgICAgIChXZWJLaXQpOgogICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6Omlz
SW52YWxpZFBhcmFncmFwaCk6CiAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6U2VsZWN0aW9u
SGFuZGxlcjo6c2VsZWN0TmV4dFBhcmFncmFwaCk6CiAgICAgICAgKEJsYWNrQmVycnk6OldlYktp
dDo6U2VsZWN0aW9uSGFuZGxlcjo6ZHJhd092ZXJsYXkpOgogICAgICAgIChCbGFja0JlcnJ5OjpX
ZWJLaXQ6OlNlbGVjdGlvbkhhbmRsZXI6OmZpbmROZXh0T3ZlcmxheVJlZ2lvbik6CiAgICAgICAg
KEJsYWNrQmVycnk6OldlYktpdDo6U2VsZWN0aW9uSGFuZGxlcjo6ZXhwYW5kU2VsZWN0aW9uKToK
ICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpTZWxlY3Rpb25IYW5kbGVyOjplbnN1cmVTZWxl
Y3RlZFRleHRWaXNpYmxlKToKICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpTZWxlY3Rpb25I
YW5kbGVyOjpzZXRQYXJhZ3JhcGhFeHBhbnNpb25TY3JvbGxNYXJnaW4pOgogICAgICAgIChCbGFj
a0JlcnJ5OjpXZWJLaXQ6OlNlbGVjdGlvbkhhbmRsZXI6OmV4cGFuZFNlbGVjdGlvblRvR3JhbnVs
YXJpdHkpOgogICAgICAgICogV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25IYW5kbGVyLmg6CiAgICAg
ICAgKFNlbGVjdGlvbkhhbmRsZXIpOgogICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OlNlbGVj
dGlvbkhhbmRsZXI6OnNldE92ZXJsYXlFeHBhbnNpb25IZWlnaHQpOgotLS0KIFNvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAgICAgICAgICAgIHwgICAyOCArKystCiBTb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuaCAgICAgICAgICAgICB8ICAgIDcgKy0K
IFNvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZUNsaWVudC5oICAgICAgIHwgICAg
MiArCiBTb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2VfcC5oICAgICAgICAgICB8
ICAgIDEgKwogU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZyAgICAgICAgICAgICAg
ICAgfCAgIDQ0ICsrKysrCiAuLi4vYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L1NlbGVjdGlvbkhh
bmRsZXIuY3BwICB8ICAxNzAgKysrKysrKysrKysrKysrKysrKy0KIC4uLi9ibGFja2JlcnJ5L1dl
YktpdFN1cHBvcnQvU2VsZWN0aW9uSGFuZGxlci5oICAgIHwgICAyMiArKy0KIDcgZmlsZXMgY2hh
bmdlZCwgMjYzIGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCmluZGV4IDZlMDliZWEuLjQ4MTdiOGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcApAQCAtNDUyMiwxMiArNDUyMiwzNiBA
QCB2b2lkIFdlYlBhZ2U6OnNldERvY3VtZW50Q2FyZXRQb3NpdGlvbihjb25zdCBQbGF0Zm9ybTo6
SW50UG9pbnQmIGRvY3VtZW50Q2FyZXRQbwogICAgIGQtPm1fc2VsZWN0aW9uSGFuZGxlci0+c2V0
Q2FyZXRQb3NpdGlvbihkb2N1bWVudENhcmV0UG9zaXRpb24pOwogfQogCi12b2lkIFdlYlBhZ2U6
OnNlbGVjdEF0RG9jdW1lbnRQb2ludChjb25zdCBQbGF0Zm9ybTo6SW50UG9pbnQmIGRvY3VtZW50
UG9pbnQpCit2b2lkIFdlYlBhZ2U6OnNlbGVjdEF0RG9jdW1lbnRQb2ludChjb25zdCBQbGF0Zm9y
bTo6SW50UG9pbnQmIGRvY3VtZW50UG9pbnQsIFNlbGVjdGlvbkV4cGFuc2lvblR5cGUgc2VsZWN0
aW9uRXhwYW5zaW9uVHlwZSkKIHsKICAgICBpZiAoZC0+bV9wYWdlLT5kZWZlcnNMb2FkaW5nKCkp
CiAgICAgICAgIHJldHVybjsKKyAgICBkLT5tX3NlbGVjdGlvbkhhbmRsZXItPnNlbGVjdEF0UG9p
bnQoZG9jdW1lbnRQb2ludCwgc2VsZWN0aW9uRXhwYW5zaW9uVHlwZSk7Cit9CiAKLSAgICBkLT5t
X3NlbGVjdGlvbkhhbmRsZXItPnNlbGVjdEF0UG9pbnQoZG9jdW1lbnRQb2ludCk7Cit2b2lkIFdl
YlBhZ2U6OmV4cGFuZFNlbGVjdGlvbihib29sIGlzU2Nyb2xsU3RhcnRlZCkKK3sKKyAgICBpZiAo
ZC0+bV9wYWdlLT5kZWZlcnNMb2FkaW5nKCkpCisgICAgICAgIHJldHVybjsKKyAgICBkLT5tX3Nl
bGVjdGlvbkhhbmRsZXItPmV4cGFuZFNlbGVjdGlvbihpc1Njcm9sbFN0YXJ0ZWQpOworfQorCit2
b2lkIFdlYlBhZ2U6OnNldE92ZXJsYXlFeHBhbnNpb25QaXhlbEhlaWdodChpbnQgZHkpCit7Cisg
ICAgZC0+c2V0T3ZlcmxheUV4cGFuc2lvblBpeGVsSGVpZ2h0KGR5KTsKK30KKwordm9pZCBXZWJQ
YWdlUHJpdmF0ZTo6c2V0T3ZlcmxheUV4cGFuc2lvblBpeGVsSGVpZ2h0KGludCBkeSkKK3sKKyAg
ICAvLyBUcmFuc2Zvcm0gZnJvbSBwaXhlbCB0byBkb2N1bWVudCBjb29yZGluYXRlcy4KKyAgICBt
X3NlbGVjdGlvbkhhbmRsZXItPnNldE92ZXJsYXlFeHBhbnNpb25IZWlnaHQobV93ZWJraXRUaHJl
YWRWaWV3cG9ydEFjY2Vzc29yLT5yb3VuZFRvRG9jdW1lbnRGcm9tUGl4ZWxDb250ZW50cyhQbGF0
Zm9ybTo6SW50UG9pbnQoMCwgZHkpKS55KCkpOworfQorCit2b2lkIFdlYlBhZ2U6OnNldFBhcmFn
cmFwaEV4cGFuc2lvblBpeGVsU2Nyb2xsTWFyZ2luKGNvbnN0IFBsYXRmb3JtOjpJbnRTaXplJiBz
Y3JvbGxNYXJnaW4pCit7CisgICAgLy8gVHJhbnNmb3JtIGZyb20gcGl4ZWwgdG8gZG9jdW1lbnQg
Y29vcmRpbmF0ZXMuCisgICAgUGxhdGZvcm06OkludFNpemUgZG9jdW1lbnRTY3JvbGxNYXJnaW4g
PSBkLT5tX3dlYmtpdFRocmVhZFZpZXdwb3J0QWNjZXNzb3ItPnJvdW5kVG9Eb2N1bWVudEZyb21Q
aXhlbENvbnRlbnRzKFBsYXRmb3JtOjpJbnRSZWN0KFBsYXRmb3JtOjpJbnRQb2ludCgpLCBzY3Jv
bGxNYXJnaW4pKS5zaXplKCk7CisgICAgZC0+bV9zZWxlY3Rpb25IYW5kbGVyLT5zZXRQYXJhZ3Jh
cGhFeHBhbnNpb25TY3JvbGxNYXJnaW4oZG9jdW1lbnRTY3JvbGxNYXJnaW4pOwogfQogCiBCYWNr
aW5nU3RvcmUqIFdlYlBhZ2U6OmJhY2tpbmdTdG9yZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9BcGkvV2ViUGFnZS5oCmluZGV4IDI5MDk1Y2EuLjIwNDdiMzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5oCkBAIC04MCw2ICs4MCw4IEBAIGNsYXNzIFdlYlZpZXdw
b3J0QXJndW1lbnRzOwogCiBlbnVtIEphdmFTY3JpcHREYXRhVHlwZSB7IEpTVW5kZWZpbmVkID0g
MCwgSlNOdWxsLCBKU0Jvb2xlYW4sIEpTTnVtYmVyLCBKU1N0cmluZywgSlNPYmplY3QsIEpTRXhj
ZXB0aW9uLCBKU0RhdGFUeXBlTWF4IH07CiAKK2VudW0gU2VsZWN0aW9uRXhwYW5zaW9uVHlwZSB7
IFdvcmQgPSAwLCBTZW50ZW5jZSwgUGFyYWdyYXBoLCBOZXh0UGFyYWdyYXBoIH07CisKIGVudW0g
QWN0aXZhdGlvblN0YXRlVHlwZSB7IEFjdGl2YXRpb25BY3RpdmUsIEFjdGl2YXRpb25JbmFjdGl2
ZSwgQWN0aXZhdGlvblN0YW5kYnkgfTsKIAogZW51bSBUYXJnZXREZXRlY3Rpb25TdHJhdGVneSB7
UG9pbnRCYXNlZCwgUmVjdEJhc2VkLCBGb2N1c0Jhc2VkfTsKQEAgLTI2MCw3ICsyNjIsMTAgQEAg
cHVibGljOgogICAgIGJvb2wgaXNJbnB1dE1vZGUoKSBjb25zdDsKICAgICB2b2lkIHNldERvY3Vt
ZW50U2VsZWN0aW9uKGNvbnN0IFBsYXRmb3JtOjpJbnRQb2ludCYgZG9jdW1lbnRTdGFydFBvaW50
LCBjb25zdCBQbGF0Zm9ybTo6SW50UG9pbnQmIGRvY3VtZW50RW5kUG9pbnQpOwogICAgIHZvaWQg
c2V0RG9jdW1lbnRDYXJldFBvc2l0aW9uKGNvbnN0IFBsYXRmb3JtOjpJbnRQb2ludCYpOwotICAg
IHZvaWQgc2VsZWN0QXREb2N1bWVudFBvaW50KGNvbnN0IFBsYXRmb3JtOjpJbnRQb2ludCYpOwor
ICAgIHZvaWQgc2VsZWN0QXREb2N1bWVudFBvaW50KGNvbnN0IFBsYXRmb3JtOjpJbnRQb2ludCYs
IFNlbGVjdGlvbkV4cGFuc2lvblR5cGUgPSBXb3JkKTsKKyAgICB2b2lkIGV4cGFuZFNlbGVjdGlv
bihib29sIGlzU2Nyb2xsU3RhcnRlZCk7CisgICAgdm9pZCBzZXRPdmVybGF5RXhwYW5zaW9uUGl4
ZWxIZWlnaHQoaW50KTsKKyAgICB2b2lkIHNldFBhcmFncmFwaEV4cGFuc2lvblBpeGVsU2Nyb2xs
TWFyZ2luKGNvbnN0IFBsYXRmb3JtOjpJbnRTaXplJik7CiAgICAgdm9pZCBzZWxlY3Rpb25DYW5j
ZWxsZWQoKTsKICAgICBib29sIHNlbGVjdGlvbkNvbnRhaW5zRG9jdW1lbnRQb2ludChjb25zdCBQ
bGF0Zm9ybTo6SW50UG9pbnQmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L0FwaS9XZWJQYWdlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dl
YlBhZ2VDbGllbnQuaAppbmRleCBkMzBkNTdiLi4zN2U2ODFkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2VDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2VDbGllbnQuaApAQCAtMjc5LDYgKzI3OSw4IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsTm90aWZpY2F0aW9uKGNvbnN0IEJsYWNrQmVycnk6
OlBsYXRmb3JtOjpTdHJpbmcmIC8qaWQqLykgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjbGVhck5v
dGlmaWNhdGlvbnMoY29uc3Qgc3RkOjp2ZWN0b3I8QmxhY2tCZXJyeTo6UGxhdGZvcm06OlN0cmlu
Zz4mIC8qbm90aWZpY2F0aW9uSWRzKi8pID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZpY2F0
aW9uRGVzdHJveWVkKGNvbnN0IEJsYWNrQmVycnk6OlBsYXRmb3JtOjpTdHJpbmcmIC8qbm90aWZp
Y2F0aW9uSWQqLykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzdGFydFNlbGVjdGlvblNjcm9sbCgp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3RvcEV4cGFuZGluZ1NlbGVjdGlvbigpID0gMDsKIH07
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIH0gLy8gbmFtZXNwYWNlIEJsYWNrQmVycnkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZV9wLmggYi9Tb3VyY2Uv
V2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2VfcC5oCmluZGV4IGQ4MGEwNWYuLjdjNjdmNjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZV9wLmgKKysr
IGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlX3AuaApAQCAtMzIxLDYgKzMy
MSw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgdm9pZCBzZWxlY3Rpb25DaGFuZ2VkKFdlYkNv
cmU6OkZyYW1lKik7CisgICAgdm9pZCBzZXRPdmVybGF5RXhwYW5zaW9uUGl4ZWxIZWlnaHQoaW50
KTsKIAogICAgIHZvaWQgdXBkYXRlRGVsZWdhdGVkT3ZlcmxheXMoYm9vbCBkaXNwYXRjaGVkID0g
ZmFsc2UpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwppbmRleCA3ZTlhOGM1Li45ZmQy
ZWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NyBAQAorMjAx
My0wMy0wMSAgSXJpcyBXdSAgPHNodXd1QHJpbS5jb20+CisKKyAgICAgICAgW0JsYWNrQmVycnld
IFVwc3RyZWFtIHNtYXJ0IHNlbGVjdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTExMjI2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgMS4gIEV4dGVuZCB0aGUgdG91Y2ggaG9sZCB0ZXh0IHNlbGVjdGlv
biB0byBuZXh0IHBhcmFncmFwaC4KKyAgICAgICAgMi4gIERyYXcgYW5kIGV4cGFuZCBvdmVybGF5
IG92ZXIgdGV4dCBhcyB0b3VjaCBob2xkIHNlbGVjdGlvbiBleHBhbmRzLgorICAgICAgICAgICAg
U2VsZWN0IHBhcmFncmFwaCB3aGVuIGl0J3MgZW50aXJlbHkgY292ZXJlZCBieSBvdmVybGF5Lgor
ICAgICAgICAzLiAgU3RhcnQgc2Nyb2xsaW5nIGF0IGEgY29uc3RhbnQgcmF0ZSB3aGVuIHRoZSBl
bmQgb2YKKyAgICAgICAgICAgIG5leHQgcGFyZ3JhcGggaXMgbm90IGluIHRoZSB2aWV3cG9ydC4K
KworICAgICAgICBSZXZpZXdlZCBJbnRlcm5hbGx5IEJ5IEdlbmV2aWV2ZSBNYWsgYW5kIE1pa2Ug
RmVudG9uLgorICAgICAgICBQUiAyMTc4OTcgMjM4NDg1IDI1ODI3OSAyNzkwNDIgMjk5Nzc5CisK
KyAgICAgICAgKiBBcGkvV2ViUGFnZS5jcHA6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6
OldlYlBhZ2U6OnNlbGVjdEF0RG9jdW1lbnRQb2ludCk6CisgICAgICAgIChCbGFja0JlcnJ5OjpX
ZWJLaXQ6OldlYlBhZ2U6OmV4cGFuZFNlbGVjdGlvbik6CisgICAgICAgIChXZWJLaXQpOgorICAg
ICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlOjpzZXRPdmVybGF5RXhwYW5zaW9uUGl4
ZWxIZWlnaHQpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlUHJpdmF0ZTo6
c2V0T3ZlcmxheUV4cGFuc2lvblBpeGVsSGVpZ2h0KToKKyAgICAgICAgKEJsYWNrQmVycnk6Oldl
YktpdDo6V2ViUGFnZTo6c2V0UGFyYWdyYXBoRXhwYW5zaW9uUGl4ZWxTY3JvbGxNYXJnaW4pOgor
ICAgICAgICAqIEFwaS9XZWJQYWdlLmg6CisgICAgICAgICogQXBpL1dlYlBhZ2VDbGllbnQuaDoK
KyAgICAgICAgKiBBcGkvV2ViUGFnZV9wLmg6CisgICAgICAgIChXZWJQYWdlUHJpdmF0ZSk6Cisg
ICAgICAgICogV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25IYW5kbGVyLmNwcDoKKyAgICAgICAgKEJs
YWNrQmVycnk6OldlYktpdDo6U2VsZWN0aW9uSGFuZGxlcjo6Y2FuY2VsU2VsZWN0aW9uKToKKyAg
ICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6U2VsZWN0aW9uSGFuZGxlcjo6c2VsZWN0QXRQb2lu
dCk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OmlzSW52YWxpZExpbmUpOgorICAgICAg
ICAoV2ViS2l0KToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6aXNJbnZhbGlkUGFyYWdy
YXBoKToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6U2VsZWN0aW9uSGFuZGxlcjo6c2Vs
ZWN0TmV4dFBhcmFncmFwaCk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OlNlbGVjdGlv
bkhhbmRsZXI6OmRyYXdPdmVybGF5KToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6U2Vs
ZWN0aW9uSGFuZGxlcjo6ZmluZE5leHRPdmVybGF5UmVnaW9uKToKKyAgICAgICAgKEJsYWNrQmVy
cnk6OldlYktpdDo6U2VsZWN0aW9uSGFuZGxlcjo6ZXhwYW5kU2VsZWN0aW9uKToKKyAgICAgICAg
KEJsYWNrQmVycnk6OldlYktpdDo6U2VsZWN0aW9uSGFuZGxlcjo6ZW5zdXJlU2VsZWN0ZWRUZXh0
VmlzaWJsZSk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OlNlbGVjdGlvbkhhbmRsZXI6
OnNldFBhcmFncmFwaEV4cGFuc2lvblNjcm9sbE1hcmdpbik6CisgICAgICAgIChCbGFja0JlcnJ5
OjpXZWJLaXQ6OlNlbGVjdGlvbkhhbmRsZXI6OmV4cGFuZFNlbGVjdGlvblRvR3JhbnVsYXJpdHkp
OgorICAgICAgICAqIFdlYktpdFN1cHBvcnQvU2VsZWN0aW9uSGFuZGxlci5oOgorICAgICAgICAo
U2VsZWN0aW9uSGFuZGxlcik6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OlNlbGVjdGlv
bkhhbmRsZXI6OnNldE92ZXJsYXlFeHBhbnNpb25IZWlnaHQpOgorCiAyMDEzLTAzLTAxICBKYWNr
eSBKaWFuZyAgPHpoYWppYW5nQHJpbS5jb20+CiAKICAgICAgICAgW0JsYWNrQmVycnldIFNjcmVl
biB3ZW50IGJsYWNrIHdoaWxlIG5hdmlnYXRpbmcgYmFjay9mb3J3YXJkIG9uIHRoZSByZWRkaXQu
Y29tIHBhZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBw
b3J0L1NlbGVjdGlvbkhhbmRsZXIuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktp
dFN1cHBvcnQvU2VsZWN0aW9uSGFuZGxlci5jcHAKaW5kZXggNjk5ZTc2NC4uODE1Njg0YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvU2VsZWN0aW9u
SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQv
U2VsZWN0aW9uSGFuZGxlci5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDEwLCAyMDExLCAyMDEyIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDExLCAyMDEyLCAyMDEzIFJlc2Vh
cmNoIEluIE1vdGlvbiBMaW1pdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
ICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJIaXRUZXN0UmVzdWx0LmgiCiAjaW5j
bHVkZSAiSW5wdXRIYW5kbGVyLmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgorI2luY2x1ZGUgIlJl
bmRlckxheWVyLmgiCiAjaW5jbHVkZSAiU2VsZWN0aW9uT3ZlcmxheS5oIgogI2luY2x1ZGUgIlRv
dWNoRXZlbnRIYW5kbGVyLmgiCiAjaW5jbHVkZSAiV2ViUGFnZUNsaWVudC5oIgpAQCAtMzksNiAr
NDAsNyBAQAogCiAjaW5jbHVkZSA8QmxhY2tCZXJyeVBsYXRmb3JtS2V5Ym9hcmRFdmVudC5oPgog
I2luY2x1ZGUgPEJsYWNrQmVycnlQbGF0Zm9ybUxvZy5oPgorI2luY2x1ZGUgPEJsYWNrQmVycnlQ
bGF0Zm9ybVZpZXdwb3J0QWNjZXNzb3IuaD4KIAogI2luY2x1ZGUgPHN5cy9rZXljb2Rlcy5oPgog
CkBAIC04Miw2ICs4NCw4IEBAIHZvaWQgU2VsZWN0aW9uSGFuZGxlcjo6Y2FuY2VsU2VsZWN0aW9u
KCkKIHsKICAgICBtX3NlbGVjdGlvbkFjdGl2ZSA9IGZhbHNlOwogICAgIG1fbGFzdFNlbGVjdGlv
blJlZ2lvbiA9IEludFJlY3RSZWdpb24oKTsKKyAgICBtX2N1cnJlbnRPdmVybGF5UmVnaW9uID0g
SW50UmVjdFJlZ2lvbigpOworICAgIG1fbmV4dE92ZXJsYXlSZWdpb24gPSBJbnRSZWN0UmVnaW9u
KCk7CiAKICAgICBpZiAobV93ZWJQYWdlLT5tX3NlbGVjdGlvbk92ZXJsYXkpCiAgICAgICAgIG1f
d2ViUGFnZS0+bV9zZWxlY3Rpb25PdmVybGF5LT5oaWRlKCk7CkBAIC02MDAsNyArNjA0LDcgQEAg
Ym9vbCBTZWxlY3Rpb25IYW5kbGVyOjpzZWxlY3ROb2RlSWZGYXRGaW5nZXJzUmVzdWx0SXNMaW5r
KEZhdEZpbmdlcnNSZXN1bHQgZmF0RmkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgU2Vs
ZWN0aW9uSGFuZGxlcjo6c2VsZWN0QXRQb2ludChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgbG9j
YXRpb24pCit2b2lkIFNlbGVjdGlvbkhhbmRsZXI6OnNlbGVjdEF0UG9pbnQoY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQmIGxvY2F0aW9uLCBTZWxlY3Rpb25FeHBhbnNpb25UeXBlIHNlbGVjdGlvbkV4
cGFuc2lvblR5cGUpCiB7CiAgICAgLy8gSWYgcG9pbnQgaXMgaW52YWxpZCB0cmlnZ2VyIHNlbGVj
dGlvbiBiYXNlZCBleHBhbnNpb24uCiAgICAgaWYgKGxvY2F0aW9uID09IERPTVN1cHBvcnQ6Oklu
dmFsaWRQb2ludCkgewpAQCAtNjI4LDExICs2MzIsMTU2IEBAIHZvaWQgU2VsZWN0aW9uSGFuZGxl
cjo6c2VsZWN0QXRQb2ludChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgbG9jYXRpb24pCiAgICAg
ICAgIHRhcmdldFBvc2l0aW9uID0gbmV3RmF0RmluZ2Vyc1Jlc3VsdC5hZGp1c3RlZFBvc2l0aW9u
KCk7CiAgICAgfQogCi0gICAgLy8gc2VsZWN0QXRQb2ludCBBUEkgY3VycmVudGx5IG9ubHkgc3Vw
cG9ydHMgV29yZEdyYW51bGFyaXR5IGJ1dCBtYXkgYmUgZXh0ZW5kZWQgaW4gdGhlIGZ1dHVyZS4K
LSAgICBzZWxlY3RPYmplY3QodGFyZ2V0UG9zaXRpb24sIFdvcmRHcmFudWxhcml0eSk7CisgICAg
bV9jdXJyZW50T3ZlcmxheVJlZ2lvbiA9IEludFJlY3RSZWdpb24oKTsKKyAgICBtX25leHRPdmVy
bGF5UmVnaW9uID0gSW50UmVjdFJlZ2lvbigpOworICAgIHNlbGVjdE9iamVjdCh0YXJnZXRQb3Np
dGlvbiwgdGV4dEdyYW51bGFyaXR5RnJvbVNlbGVjdGlvbkV4cGFuc2lvblR5cGUoc2VsZWN0aW9u
RXhwYW5zaW9uVHlwZSkpOwogfQogCi1zdGF0aWMgYm9vbCBleHBhbmRTZWxlY3Rpb25Ub0dyYW51
bGFyaXR5KEZyYW1lKiBmcmFtZSwgVmlzaWJsZVNlbGVjdGlvbiBzZWxlY3Rpb24sIFRleHRHcmFu
dWxhcml0eSBncmFudWxhcml0eSwgYm9vbCBpc0lucHV0TW9kZSkKK3N0YXRpYyBib29sIGlzSW52
YWxpZExpbmUoY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3MpCit7CisgICAgcmV0dXJuIGVuZE9m
TGluZShwb3MpLmlzTnVsbCgpIHx8IHBvcyA9PSBlbmRPZkxpbmUocG9zKSB8fCAhaW5TYW1lTGlu
ZShwb3MsIGVuZE9mTGluZShwb3MpKTsKK30KKworc3RhdGljIGJvb2wgaXNJbnZhbGlkUGFyYWdy
YXBoKGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zKQoreworICAgIHJldHVybiBlbmRPZlBhcmFn
cmFwaChwb3MpLmlzTnVsbCgpIHx8IHBvcyA9PSBlbmRPZlBhcmFncmFwaChwb3MpOworfQorCit2
b2lkIFNlbGVjdGlvbkhhbmRsZXI6OnNlbGVjdE5leHRQYXJhZ3JhcGgoKQoreworICAgIEZyYW1l
U2VsZWN0aW9uKiBjb250cm9sbGVyID0gbV93ZWJQYWdlLT5mb2N1c2VkT3JNYWluRnJhbWUoKS0+
c2VsZWN0aW9uKCk7CisKKyAgICBWaXNpYmxlUG9zaXRpb24gc3RhcnRQb3MgPSBWaXNpYmxlUG9z
aXRpb24oY29udHJvbGxlci0+c3RhcnQoKSwgY29udHJvbGxlci0+YWZmaW5pdHkoKSk7CisgICAg
aWYgKGlzU3RhcnRPZkxpbmUoc3RhcnRQb3MpICYmIGlzRW5kT2ZFZGl0YWJsZU9yTm9uRWRpdGFi
bGVDb250ZW50KHN0YXJ0UG9zKSkKKyAgICAgICAgc3RhcnRQb3MgPSBzdGFydFBvcy5wcmV2aW91
cygpOworCisgICAgLy8gRmluZCBuZXh0IHBhcmFncmFwaCBlbmQgcG9zaXRpb24uCisgICAgVmlz
aWJsZVBvc2l0aW9uIGVuZFBvcyhjb250cm9sbGVyLT5lbmQoKSwgY29udHJvbGxlci0+YWZmaW5p
dHkoKSk7IC8vIGVuZFBvcyBoZXJlIGluZGljYXRlcyB0aGUgZW5kIG9mIGN1cnJlbnQgcGFyYWdy
YXBoCisgICAgZW5kUG9zID0gZW5kUG9zLm5leHQoKTsgLy8gZmluZCB0aGUgc3RhcnQgb2YgbmV4
dCBwYXJhZ3JhcGgKKyAgICB3aGlsZSAoIWlzRW5kT2ZEb2N1bWVudChlbmRQb3MuZGVlcEVxdWl2
YWxlbnQoKSkgJiYgZW5kUG9zLmlzTm90TnVsbCgpICYmIGlzSW52YWxpZFBhcmFncmFwaChlbmRQ
b3MpKQorICAgICAgICBlbmRQb3MgPSBlbmRQb3MubmV4dCgpOyAvLyBnbyB0byBuZXh0IHBvc2l0
aW9uCisgICAgZW5kUG9zID0gZW5kT2ZQYXJhZ3JhcGgoZW5kUG9zKTsgLy8gZmluZCB0aGUgZW5k
IG9mIHBhcmFncmFwaAorCisgICAgLy8gU2V0IHNlbGVjdGlvbiBpZiB0aGUgcGFyYWdyYXBoIGlz
IGNvdmVyZWQgYnkgb3ZlcmxheSBhbmQgZW5kUG9zIGlzIG5vdCBudWxsLgorICAgIGlmIChtX2N1
cnJlbnRPdmVybGF5UmVnaW9uLmV4dGVudHMoKS5ib3R0b20oKSA+PSBlbmRQb3MuYWJzb2x1dGVD
YXJldEJvdW5kcygpLm1heFkoKSAmJiBlbmRQb3MuaXNOb3ROdWxsKCkpIHsKKyAgICAgICAgVmlz
aWJsZVNlbGVjdGlvbiBzZWxlY3Rpb24gPSBWaXNpYmxlU2VsZWN0aW9uKHN0YXJ0UG9zLCBlbmRQ
b3MpOworICAgICAgICBzZWxlY3Rpb24uc2V0QWZmaW5pdHkoY29udHJvbGxlci0+YWZmaW5pdHko
KSk7CisgICAgICAgIGNvbnRyb2xsZXItPnNldFNlbGVjdGlvbihzZWxlY3Rpb24pOworCisgICAg
ICAgIC8vIFN0b3AgZXhwYW5zaW9uIGlmIHJlYWNoaW5nIHRoZSBlbmQgb2YgcGFnZS4KKyAgICAg
ICAgaWYgKGlzRW5kT2ZEb2N1bWVudChlbmRQb3MuZGVlcEVxdWl2YWxlbnQoKSkpCisgICAgICAg
ICAgICBtX3dlYlBhZ2UtPm1fY2xpZW50LT5zdG9wRXhwYW5kaW5nU2VsZWN0aW9uKCk7CisgICAg
fQorfQorCit2b2lkIFNlbGVjdGlvbkhhbmRsZXI6OmRyYXdPdmVybGF5KEludFJlY3RSZWdpb24g
b3ZlcmxheVJlZ2lvbiwgYm9vbCBpc0V4cGFuZGluZ092ZXJsYXlBdENvbnN0YW50UmF0ZSkKK3sK
KyAgICBFbGVtZW50KiBlbGVtZW50ID0gbV9vdmVybGF5U3RhcnRQb3MuZGVlcEVxdWl2YWxlbnQo
KS5lbGVtZW50KCk7CisgICAgaWYgKCFlbGVtZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBp
ZiAoaXNFeHBhbmRpbmdPdmVybGF5QXRDb25zdGFudFJhdGUpIHsKKyAgICAgICAgLy8gV2hlbiBv
dmVybGF5IGV4cGFuZHMgYXQgYSBjb25zdGFudCByYXRlLCB0aGUgY3VycmVudCBvdmVybGF5IGhl
aWdodCBpbmNyZWFzZXMKKyAgICAgICAgLy8gbV9vdmVybGF5RXhwYW5zaW9uSGVpZ2h0IGVhY2gg
dGltZSBhbmQgdGhlIHdpZHRoIGlzIGFsd2F5cyBzYW1lIGFzIG5leHQgb3ZlcmxheSByZWdpb24u
CisgICAgICAgIFdlYkNvcmU6OkludFJlY3QgY3VycmVudE92ZXJsYXlSZWN0ID0gbV9jdXJyZW50
T3ZlcmxheVJlZ2lvbi5leHRlbnRzKCk7CisgICAgICAgIFdlYkNvcmU6OkludFJlY3QgbmV4dE92
ZXJsYXlSZWN0ID0gbV9uZXh0T3ZlcmxheVJlZ2lvbi5leHRlbnRzKCk7CisgICAgICAgIFdlYkNv
cmU6OkludFJlY3Qgb3ZlcmxheVJlY3QoV2ViQ29yZTo6SW50UmVjdChuZXh0T3ZlcmxheVJlY3Qu
bG9jYXRpb24oKSwgV2ViQ29yZTo6SW50U2l6ZShuZXh0T3ZlcmxheVJlY3Qud2lkdGgoKSwgY3Vy
cmVudE92ZXJsYXlSZWN0LmhlaWdodCgpICsgbV9vdmVybGF5RXhwYW5zaW9uSGVpZ2h0KSkpOwor
ICAgICAgICBvdmVybGF5UmVnaW9uID0gSW50UmVjdFJlZ2lvbihvdmVybGF5UmVjdCk7CisgICAg
fQorCisgICAgQ29sb3IgaGlnaGxpZ2h0Q29sb3IgPSBlbGVtZW50LT5yZW5kZXJTdHlsZSgpLT5p
bml0aWFsVGFwSGlnaGxpZ2h0Q29sb3IoKTsKKyAgICBtX3dlYlBhZ2UtPm1fdGFwSGlnaGxpZ2h0
LT5kcmF3KG92ZXJsYXlSZWdpb24sCisgICAgICAgIGhpZ2hsaWdodENvbG9yLnJlZCgpLCBoaWdo
bGlnaHRDb2xvci5ncmVlbigpLCBoaWdobGlnaHRDb2xvci5ibHVlKCksIGhpZ2hsaWdodENvbG9y
LmFscGhhKCksCisgICAgICAgIGZhbHNlIC8qIGRvIG5vdCBoaWRlIGFmdGVyIHNjcm9sbCAqLyk7
CisgICAgbV9jdXJyZW50T3ZlcmxheVJlZ2lvbiA9IG92ZXJsYXlSZWdpb247Cit9CisKK2Jvb2wg
U2VsZWN0aW9uSGFuZGxlcjo6ZmluZE5leHRPdmVybGF5UmVnaW9uKCkKK3sKKyAgICAvLyBJZiBv
dmVybGF5IGlzIGF0IHRoZSBlbmQgb2YgZG9jdW1lbnQsIHN0b3Agb3ZlcmxheSBleHBhbnNpb24u
CisgICAgaWYgKGlzRW5kT2ZEb2N1bWVudChtX292ZXJsYXlFbmRQb3MuZGVlcEVxdWl2YWxlbnQo
KSkgfHwgbV9vdmVybGF5RW5kUG9zLmlzTnVsbCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICBtX292ZXJsYXlFbmRQb3MgPSBtX292ZXJsYXlFbmRQb3MubmV4dCgpOworICAgIHdoaWxl
ICghaXNFbmRPZkRvY3VtZW50KG1fb3ZlcmxheUVuZFBvcy5kZWVwRXF1aXZhbGVudCgpKSAmJiBt
X292ZXJsYXlFbmRQb3MuaXNOb3ROdWxsKCkgJiYgaXNJbnZhbGlkTGluZShtX292ZXJsYXlFbmRQ
b3MpKQorICAgICAgICBtX292ZXJsYXlFbmRQb3MgPSBtX292ZXJsYXlFbmRQb3MubmV4dCgpOyAv
LyBnbyB0byBuZXh0IHBvc2l0aW9uCisgICAgbV9vdmVybGF5RW5kUG9zID0gZW5kT2ZMaW5lKG1f
b3ZlcmxheUVuZFBvcyk7IC8vIGZpbmQgZW5kIG9mIGxpbmUKKworICAgIFZpc2libGVTZWxlY3Rp
b24gc2VsZWN0aW9uKG1fb3ZlcmxheVN0YXJ0UG9zLCBtX292ZXJsYXlFbmRQb3MpOworICAgIFZl
Y3RvcjxGbG9hdFF1YWQ+IHF1YWRzOworICAgIERPTVN1cHBvcnQ6OnZpc2libGVUZXh0UXVhZHMo
c2VsZWN0aW9uLCBxdWFkcyk7CisgICAgcmVnaW9uRm9yVGV4dFF1YWRzKHF1YWRzLCBtX25leHRP
dmVybGF5UmVnaW9uKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBTZWxlY3Rpb25IYW5k
bGVyOjpleHBhbmRTZWxlY3Rpb24oYm9vbCBpc1Njcm9sbFN0YXJ0ZWQpCit7CisgICAgV2ViQ29y
ZTo6SW50UG9pbnQgbmV4dE92ZXJsYXlCb3R0b21SaWdodFBvaW50ID0gV2ViQ29yZTo6SW50UG9p
bnQobV9jdXJyZW50T3ZlcmxheVJlZ2lvbi5leHRlbnRzKCkuYm90dG9tUmlnaHQoKSkgKyBXZWJD
b3JlOjpJbnRQb2ludCgwLCBtX292ZXJsYXlFeHBhbnNpb25IZWlnaHQpOworICAgIGlmIChuZXh0
T3ZlcmxheUJvdHRvbVJpZ2h0UG9pbnQueSgpID4gbV9uZXh0T3ZlcmxheVJlZ2lvbi5leHRlbnRz
KCkuYm90dG9tKCkpCisgICAgICAgIC8vIEZpbmQgbmV4dCBvdmVybGF5IHJlZ2lvbiBzbyB0aGF0
IHdlIGNhbiB1cGRhdGUgb3ZlcmxheSByZWdpb24ncyB3aWR0aCB3aGlsZSBleHBhbmRpbmcuCisg
ICAgICAgIGlmICghZmluZE5leHRPdmVybGF5UmVnaW9uKCkpIHsKKyAgICAgICAgICAgIGRyYXdP
dmVybGF5KG1fbmV4dE92ZXJsYXlSZWdpb24sIGZhbHNlKTsKKyAgICAgICAgICAgIHNlbGVjdE5l
eHRQYXJhZ3JhcGgoKTsKKyAgICAgICAgICAgIG1fd2ViUGFnZS0+bV9jbGllbnQtPnN0b3BFeHBh
bmRpbmdTZWxlY3Rpb24oKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAg
Ly8gRHJhdyBvdmVybGF5IGlmIHRoZSBwb3NpdGlvbiBpcyBpbiB0aGUgdmlld3BvcnQgYW5kIGlz
IG5vdCBudWxsLgorICAgIC8vIE90aGVyd2lzZSwgc3RhcnQgc2Nyb2xsaW5nIGlmIGl0IGhhc24n
dCBzdGFydGVkLgorICAgIGlmIChlbnN1cmVTZWxlY3RlZFRleHRWaXNpYmxlKG5leHRPdmVybGF5
Qm90dG9tUmlnaHRQb2ludCwgZmFsc2UgLyogZG8gbm90IHNjcm9sbCAqLykgJiYgbV9vdmVybGF5
RW5kUG9zLmlzTm90TnVsbCgpKQorICAgICAgICBkcmF3T3ZlcmxheShJbnRSZWN0UmVnaW9uKCks
IHRydWUgLyogaXNFeHBhbmRpbmdPdmVybGF5QXRDb25zdGFudFJhdGUgKi8pOworICAgIGVsc2Ug
aWYgKCFpc1Njcm9sbFN0YXJ0ZWQpIHsKKyAgICAgICAgbV93ZWJQYWdlLT5tX2NsaWVudC0+c3Rh
cnRTZWxlY3Rpb25TY3JvbGwoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHNlbGVj
dE5leHRQYXJhZ3JhcGgoKTsKK30KKworYm9vbCBTZWxlY3Rpb25IYW5kbGVyOjplbnN1cmVTZWxl
Y3RlZFRleHRWaXNpYmxlKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb2ludCwgYm9vbCBzY3Jv
bGxJZk5lZWRlZCkKK3sKKyAgICBXZWJDb3JlOjpJbnRQb2ludCBzY3JvbGxQb3NpdGlvbiA9IG1f
d2ViUGFnZS0+c2Nyb2xsUG9zaXRpb24oKTsKKyAgICBXZWJDb3JlOjpJbnRTaXplIGFjdHVhbFZp
c2libGVTaXplID0gbV93ZWJQYWdlLT5jbGllbnQoKS0+dXNlckludGVyZmFjZVZpZXdwb3J0QWNj
ZXNzb3IoKS0+ZG9jdW1lbnRWaWV3cG9ydFJlY3QoKS5zaXplKCk7IC8vIHZpZXdwb3J0IHNpemUg
Zm9yIGJvdGggQ2FzY2FkZXMgYW5kIGJyb3dzZXIKKyAgICBXZWJDb3JlOjpJbnRSZWN0IGFjdHVh
bFNjcmVlblJlY3QgPSBXZWJDb3JlOjpJbnRSZWN0KHNjcm9sbFBvc2l0aW9uLCBhY3R1YWxWaXNp
YmxlU2l6ZSk7CisKKyAgICBpZiAoIXNjcm9sbElmTmVlZGVkKQorICAgICAgICByZXR1cm4gYWN0
dWFsU2NyZWVuUmVjdC5tYXhZKCkgPj0gcG9pbnQueSgpICsgbV9zY3JvbGxNYXJnaW4uaGVpZ2h0
KCk7CisKKyAgICBXZWJDb3JlOjpJbnRSZWN0IGVuZExvY2F0aW9uID0gbV9vdmVybGF5RW5kUG9z
LmFic29sdXRlQ2FyZXRCb3VuZHMoKTsKKyAgICBOb2RlKiBhbmNob3JOb2RlID0gbV9vdmVybGF5
RW5kUG9zLmRlZXBFcXVpdmFsZW50KCkuYW5jaG9yTm9kZSgpOworICAgIGlmICghYW5jaG9yTm9k
ZSB8fCAhYW5jaG9yTm9kZS0+cmVuZGVyZXIoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgUmVuZGVyTGF5ZXIqIGxheWVyID0gYW5jaG9yTm9kZS0+cmVuZGVyZXIoKS0+ZW5jbG9zaW5n
TGF5ZXIoKTsKKyAgICBpZiAoIWxheWVyKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBl
bmRMb2NhdGlvbi5pbmZsYXRlWChtX3Njcm9sbE1hcmdpbi53aWR0aCgpKTsKKyAgICBlbmRMb2Nh
dGlvbi5pbmZsYXRlWShtX3Njcm9sbE1hcmdpbi5oZWlnaHQoKSk7CisKKyAgICBXZWJDb3JlOjpJ
bnRSZWN0IHJldmVhbFJlY3QobGF5ZXItPmdldFJlY3RUb0V4cG9zZShhY3R1YWxTY3JlZW5SZWN0
LCBlbmRMb2NhdGlvbiwgU2Nyb2xsQWxpZ25tZW50OjphbGlnblRvRWRnZUlmTmVlZGVkLCBTY3Jv
bGxBbGlnbm1lbnQ6OmFsaWduVG9FZGdlSWZOZWVkZWQpKTsKKyAgICByZXZlYWxSZWN0LnNldFgo
c3RkOjptaW4oc3RkOjptYXgocmV2ZWFsUmVjdC54KCksIDApLCBtX3dlYlBhZ2UtPm1heGltdW1T
Y3JvbGxQb3NpdGlvbigpLngoKSkpOworICAgIHJldmVhbFJlY3Quc2V0WShzdGQ6Om1pbihzdGQ6
Om1heChyZXZlYWxSZWN0LnkoKSwgMCksIG1fd2ViUGFnZS0+bWF4aW11bVNjcm9sbFBvc2l0aW9u
KCkueSgpKSk7CisKKyAgICBpZiAocmV2ZWFsUmVjdC5sb2NhdGlvbigpICE9IHNjcm9sbFBvc2l0
aW9uKSB7CisgICAgICAgIC8vIEFuaW1hdGUgc2Nyb2xsIHBvc2l0aW9uIHRvIHJldmVhbFJlY3Qu
CisgICAgICAgIG1fd2ViUGFnZS0+bV9maW5hbEJsb2NrUG9pbnQgPSBXZWJDb3JlOjpGbG9hdFBv
aW50KHJldmVhbFJlY3QueCgpLCByZXZlYWxSZWN0LnkoKSk7CisgICAgICAgIG1fd2ViUGFnZS0+
bV9ibG9ja1pvb21GaW5hbFNjYWxlID0gbV93ZWJQYWdlLT5tX3dlYlBhZ2UtPmN1cnJlbnRTY2Fs
ZSgpOyAvLyBEb24ndCB6b29tLgorICAgICAgICBtX3dlYlBhZ2UtPm1fc2hvdWxkUmVmbG93Qmxv
Y2sgPSBmYWxzZTsKKyAgICAgICAgbV93ZWJQYWdlLT5tX3VzZXJQZXJmb3JtZWRNYW51YWxab29t
ID0gdHJ1ZTsKKyAgICAgICAgbV93ZWJQYWdlLT5tX3VzZXJQZXJmb3JtZWRNYW51YWxTY3JvbGwg
PSB0cnVlOworICAgICAgICBtX3dlYlBhZ2UtPmNsaWVudCgpLT5hbmltYXRlQmxvY2tab29tKG1f
d2ViUGFnZS0+bV93ZWJQYWdlLT5jdXJyZW50U2NhbGUoKSwgbV93ZWJQYWdlLT5tX2ZpbmFsQmxv
Y2tQb2ludCk7CisgICAgfQorICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIFNlbGVjdGlvbkhh
bmRsZXI6OnNldFBhcmFncmFwaEV4cGFuc2lvblNjcm9sbE1hcmdpbihjb25zdCBXZWJDb3JlOjpJ
bnRTaXplJiBzY3JvbGxNYXJnaW4pCit7CisgICAgbV9zY3JvbGxNYXJnaW4uc2V0V2lkdGgoc2Ny
b2xsTWFyZ2luLndpZHRoKCkpOworICAgIG1fc2Nyb2xsTWFyZ2luLnNldEhlaWdodChzY3JvbGxN
YXJnaW4uaGVpZ2h0KCkpOworfQorCitib29sIFNlbGVjdGlvbkhhbmRsZXI6OmV4cGFuZFNlbGVj
dGlvblRvR3JhbnVsYXJpdHkoRnJhbWUqIGZyYW1lLCBWaXNpYmxlU2VsZWN0aW9uIHNlbGVjdGlv
biwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBib29sIGlzSW5wdXRNb2RlKQogewogICAg
IEFTU0VSVChmcmFtZSk7CiAgICAgQVNTRVJUKGZyYW1lLT5zZWxlY3Rpb24oKSk7CkBAIC02NDks
NyArNzk4LDE4IEBAIHN0YXRpYyBib29sIGV4cGFuZFNlbGVjdGlvblRvR3JhbnVsYXJpdHkoRnJh
bWUqIGZyYW1lLCBWaXNpYmxlU2VsZWN0aW9uIHNlbGVjdGlvCiAgICAgaWYgKGlzSW5wdXRNb2Rl
ICYmICFmcmFtZS0+c2VsZWN0aW9uKCktPnNob3VsZENoYW5nZVNlbGVjdGlvbihzZWxlY3Rpb24p
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBtX292ZXJsYXlTdGFydFBvcyA9IHNlbGVj
dGlvbi52aXNpYmxlU3RhcnQoKTsKKyAgICBtX292ZXJsYXlFbmRQb3MgPSBzZWxlY3Rpb24udmlz
aWJsZUVuZCgpOworICAgIFZlY3RvcjxGbG9hdFF1YWQ+IHF1YWRzOworICAgIERPTVN1cHBvcnQ6
OnZpc2libGVUZXh0UXVhZHMoc2VsZWN0aW9uLCBxdWFkcyk7CisgICAgcmVnaW9uRm9yVGV4dFF1
YWRzKHF1YWRzLCBtX2N1cnJlbnRPdmVybGF5UmVnaW9uKTsKKworICAgIGVuc3VyZVNlbGVjdGVk
VGV4dFZpc2libGUoV2ViQ29yZTo6SW50UG9pbnQoKSwgdHJ1ZSAvKiBzY3JvbGwgaWYgbmVlZGVk
ICovKTsKKyAgICBkcmF3T3ZlcmxheShtX2N1cnJlbnRPdmVybGF5UmVnaW9uLCBmYWxzZSAvKiBp
c0V4cGFuZGluZ092ZXJsYXlBdENvbnN0YW50UmF0ZSAqLyk7CiAgICAgZnJhbWUtPnNlbGVjdGlv
bigpLT5zZXRTZWxlY3Rpb24oc2VsZWN0aW9uKTsKKyAgICBpZiAoZ3JhbnVsYXJpdHkgPT0gUGFy
YWdyYXBoR3JhbnVsYXJpdHkpCisgICAgICAgIGZpbmROZXh0T3ZlcmxheVJlZ2lvbigpOworCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9XZWJLaXRTdXBwb3J0L1NlbGVjdGlvbkhhbmRsZXIuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9XZWJLaXRTdXBwb3J0L1NlbGVjdGlvbkhhbmRsZXIuaAppbmRleCA4OTZkZTE0Li44ZDBj
ZDJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9T
ZWxlY3Rpb25IYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1
cHBvcnQvU2VsZWN0aW9uSGFuZGxlci5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMCwgMjAxMSwgMjAxMiBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZC4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxMSwgMjAxMiwgMjAxMyBS
ZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVy
YWwgUHVibGljCkBAIC02Myw3ICs2Myw3IEBAIHB1YmxpYzoKICAgICBib29sIHNlbGVjdGlvbkNv
bnRhaW5zKGNvbnN0IFdlYkNvcmU6OkludFBvaW50Jik7CiAKICAgICB2b2lkIHNldFNlbGVjdGlv
bihjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc3RhcnQsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50
JiBlbmQpOwotICAgIHZvaWQgc2VsZWN0QXRQb2ludChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYp
OworICAgIHZvaWQgc2VsZWN0QXRQb2ludChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIFNlbGVj
dGlvbkV4cGFuc2lvblR5cGUpOwogICAgIHZvaWQgc2VsZWN0T2JqZWN0KGNvbnN0IFdlYkNvcmU6
OkludFBvaW50JiwgV2ViQ29yZTo6VGV4dEdyYW51bGFyaXR5KTsKICAgICB2b2lkIHNlbGVjdE9i
amVjdChXZWJDb3JlOjpUZXh0R3JhbnVsYXJpdHkpOwogICAgIHZvaWQgc2VsZWN0T2JqZWN0KFdl
YkNvcmU6Ok5vZGUqKTsKQEAgLTc2LDYgKzc2LDEwIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgaW5w
dXRIYW5kbGVyRGlkRmluaXNoUHJvY2Vzc2luZ0NoYW5nZSgpOwogCisgICAgdm9pZCBleHBhbmRT
ZWxlY3Rpb24oYm9vbCBpc1Njcm9sbFN0YXJ0ZWQpOworICAgIHZvaWQgc2V0T3ZlcmxheUV4cGFu
c2lvbkhlaWdodChpbnQgZHkpIHsgbV9vdmVybGF5RXhwYW5zaW9uSGVpZ2h0ID0gZHk7IH0KKyAg
ICB2b2lkIHNldFBhcmFncmFwaEV4cGFuc2lvblNjcm9sbE1hcmdpbihjb25zdCBXZWJDb3JlOjpJ
bnRTaXplJik7CisKIHByaXZhdGU6CiAgICAgdm9pZCBub3RpZnlDYXJldFBvc2l0aW9uQ2hhbmdl
ZElmTmVlZGVkKGJvb2wgdXNlclRvdWNoVHJpZ2dlcmVkID0gdHJ1ZSk7CiAgICAgdm9pZCBjYXJl
dFBvc2l0aW9uQ2hhbmdlZChib29sIHVzZXJUb3VjaFRyaWdnZXJlZCk7CkBAIC04OCw2ICs5Miwx
MiBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIGV4dGVuZFNlbGVjdGlvblRvRmllbGRCb3VuZGFy
eShib29sIGlzU3RhcnRIYW5kbGUsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzZWxlY3Rpb25Q
b2ludCwgV2ViQ29yZTo6VmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uKTsKICAgICBXZWJD
b3JlOjpJbnRQb2ludCBjbGlwUG9pbnRUb1Zpc2libGVDb250YWluZXIoY29uc3QgV2ViQ29yZTo6
SW50UG9pbnQmKSBjb25zdDsKIAorICAgIHZvaWQgc2VsZWN0TmV4dFBhcmFncmFwaCgpOworICAg
IHZvaWQgZHJhd092ZXJsYXkoQmxhY2tCZXJyeTo6UGxhdGZvcm06OkludFJlY3RSZWdpb24sIGJv
b2wpOworICAgIGJvb2wgZmluZE5leHRPdmVybGF5UmVnaW9uKCk7CisgICAgYm9vbCBlbnN1cmVT
ZWxlY3RlZFRleHRWaXNpYmxlKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgYm9vbCBzY3JvbGxJ
Zk5lZWRlZCk7CisgICAgYm9vbCBleHBhbmRTZWxlY3Rpb25Ub0dyYW51bGFyaXR5KFdlYkNvcmU6
OkZyYW1lKiwgV2ViQ29yZTo6VmlzaWJsZVNlbGVjdGlvbiwgV2ViQ29yZTo6VGV4dEdyYW51bGFy
aXR5LCBib29sIGlzSW5wdXRNb2RlKTsKKwogICAgIGJvb2wgaW5wdXROb2RlT3ZlcnJpZGVzVG91
Y2goKSBjb25zdDsKICAgICBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6UmVxdWVzdGVkSGFuZGxlUG9z
aXRpb24gcmVxdWVzdGVkU2VsZWN0aW9uSGFuZGxlUG9zaXRpb24oY29uc3QgV2ViQ29yZTo6Vmlz
aWJsZVNlbGVjdGlvbiYpIGNvbnN0OwogCkBAIC0xMDAsOSArMTEwLDE1IEBAIHByaXZhdGU6CiAg
ICAgYm9vbCBtX2xhc3RVcGRhdGVkRW5kUG9pbnRJc1ZhbGlkOwogICAgIGJvb2wgbV9kaWRTdXBw
cmVzc0NhcmV0UG9zaXRpb25DaGFuZ2VkTm90aWZpY2F0aW9uOwogICAgIEJsYWNrQmVycnk6OlBs
YXRmb3JtOjpJbnRSZWN0UmVnaW9uIG1fbGFzdFNlbGVjdGlvblJlZ2lvbjsKKyAgICBXZWJDb3Jl
OjpWaXNpYmxlUG9zaXRpb24gbV9vdmVybGF5U3RhcnRQb3M7CisgICAgV2ViQ29yZTo6VmlzaWJs
ZVBvc2l0aW9uIG1fb3ZlcmxheUVuZFBvczsKKyAgICBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6SW50
UmVjdFJlZ2lvbiBtX2N1cnJlbnRPdmVybGF5UmVnaW9uOworICAgIEJsYWNrQmVycnk6OlBsYXRm
b3JtOjpJbnRSZWN0UmVnaW9uIG1fbmV4dE92ZXJsYXlSZWdpb247CisgICAgaW50IG1fb3Zlcmxh
eUV4cGFuc2lvbkhlaWdodDsKIAogICAgIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpTdG9wV2F0Y2gg
bV90aW1lcjsKLSAgICBXZWJDb3JlOjpWaXNpYmxlU2VsZWN0aW9uIG1fbGFzdFNlbGVjdGlvbjsK
KworICAgIFdlYkNvcmU6OkludFNpemUgbV9zY3JvbGxNYXJnaW47CiB9OwogCiB9Ci0tIAoxLjcu
OS41Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>200186</attachid>
            <date>2013-04-30 15:22:29 -0700</date>
            <delta_ts>2013-05-01 18:08:25 -0700</delta_ts>
            <desc>Patch with ChangeLog</desc>
            <filename>0001-2013-04-30-Iris-Wu-shuwu-blackberry.com.patch</filename>
            <type>text/plain</type>
            <size>9585</size>
            <attacher name="Iris Wu">shuwu</attacher>
            
              <data encoding="base64">RnJvbSAyNGI4ZThiNTc2NDcwNTRmZjdmYjY1MjJhZWQ2NmZlMjAyMzI1YjRhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBJcmlzIFd1IDxzaHV3dUBibGFja2JlcnJ5LmNvbT4KRGF0ZTog
VHVlLCAzMCBBcHIgMjAxMyAxNzowMzoxOSAtMDQwMApTdWJqZWN0OiBbUEFUQ0hdIDIwMTMtMDQt
MzAgIElyaXMgV3UgIDxzaHV3dUBibGFja2JlcnJ5LmNvbT4KCiAgICAgICAgQ2FsbGluZyB1c2Vy
SW50ZXJmYWNlVmlld3BvcnRBY2Nlc3NvcigpLT5kb2N1bWVudFZpZXdwb3J0UmVjdCgpIG9uIFdL
IHRocmVhZAogICAgICAgIGNhdXNlZCBjcmFzaC4KICAgICAgICBCdXQgdmlld3BvcnQgZnJvbSB3
ZWJraXRUaHJlYWRWaWV3cG9ydEFjY2Vzc29yIHVzZXMgdW5hZGp1c3RlZCBzaXplIHdoaWNoIGlz
CiAgICAgICAgd3JvbmcgZm9yIGVtYWlsLgogICAgICAgIFRoZSBzb2x1dGlvbiBoZXJlIGlzIHRv
IGdldCBhY3R1YWwgdmlld3BvcnQgc2l6ZSBvbiBVSSB0aHJlYWQgYW5kIHRoZW4gcGFzcyBpdAog
ICAgICAgIHRvIFdlYktpdDo6U2VsZWN0aW9uSGFuZGxlci4KCiAgICAgICAgUFIgMzMzNzYzCgog
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKICAgICAgICAqIEFwaS9JblJlZ2lv
blNjcm9sbGVyLmNwcDoKICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpJblJlZ2lvblNjcm9s
bGVyUHJpdmF0ZTo6dXBkYXRlU2VsZWN0aW9uU2Nyb2xsVmlldyk6CiAgICAgICAgKiBBcGkvV2Vi
UGFnZS5jcHA6CiAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZTo6c2V0U2VsZWN0
aW9uRG9jdW1lbnRWaWV3cG9ydFNpemUpOgogICAgICAgIChXZWJLaXQpOgogICAgICAgICogQXBp
L1dlYlBhZ2UuaDoKICAgICAgICAqIFdlYktpdFN1cHBvcnQvU2VsZWN0aW9uSGFuZGxlci5jcHA6
CiAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6U2VsZWN0aW9uSGFuZGxlcjo6c2VsZWN0QXRQ
b2ludCk6CiAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6U2VsZWN0aW9uSGFuZGxlcjo6ZW5z
dXJlU2VsZWN0ZWRUZXh0VmlzaWJsZSk6CiAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6U2Vs
ZWN0aW9uSGFuZGxlcjo6c2VsZWN0aW9uVmlld3BvcnRSZWN0KToKICAgICAgICAqIFdlYktpdFN1
cHBvcnQvU2VsZWN0aW9uSGFuZGxlci5oOgogICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OlNl
bGVjdGlvbkhhbmRsZXI6OnNldFNlbGVjdGlvblZpZXdwb3J0U2l6ZSk6CiAgICAgICAgKEJsYWNr
QmVycnk6OldlYktpdDo6U2VsZWN0aW9uSGFuZGxlcjo6c2V0U2VsZWN0aW9uU3ViZnJhbWVWaWV3
cG9ydFJlY3QpOgogICAgICAgIChTZWxlY3Rpb25IYW5kbGVyKToKLS0tCiBTb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQXBpL0luUmVnaW9uU2Nyb2xsZXIuY3BwICB8ICAgIDQgKy0tCiBTb3VyY2Uv
V2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwICAgICAgICAgICB8ICAgIDUgKysrCiBT
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuaCAgICAgICAgICAgICB8ICAgIDEg
KwogU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgfCAg
IDMyICsrKysrKysrKysrKysrKysrKysrCiAuLi4vYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L1Nl
bGVjdGlvbkhhbmRsZXIuY3BwICB8ICAgMTMgKysrLS0tLS0KIC4uLi9ibGFja2JlcnJ5L1dlYktp
dFN1cHBvcnQvU2VsZWN0aW9uSGFuZGxlci5oICAgIHwgICAgNiArKy0tCiA2IGZpbGVzIGNoYW5n
ZWQsIDQ5IGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvSW5SZWdpb25TY3JvbGxlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvQXBpL0luUmVnaW9uU2Nyb2xsZXIuY3BwCmluZGV4IDAyMjYzZWYuLmM5
MmY0OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvSW5SZWdpb25T
Y3JvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9JblJlZ2lvblNj
cm9sbGVyLmNwcApAQCAtMzA2LDggKzMwNiw4IEBAIHZvaWQgSW5SZWdpb25TY3JvbGxlclByaXZh
dGU6OnVwZGF0ZVNlbGVjdGlvblNjcm9sbFZpZXcoY29uc3QgTm9kZSogbm9kZSkKICAgICAvLyBE
ZWxldGluZyB0aGUgc2Nyb2xsdmlldyBpcyBoYW5kbGVkIGJ5IHRoZSBjbGllbnQuCiAgICAgUGxh
dGZvcm06OlNjcm9sbFZpZXdCYXNlKiBzZWxlY3Rpb25TY3JvbGxWaWV3ID0gZmlyc3RTY3JvbGxh
YmxlSW5SZWdpb25Gb3JOb2RlKG5vZGUpOwogICAgIG1fd2ViUGFnZS0+bV9jbGllbnQtPm5vdGlm
eVNlbGVjdGlvblNjcm9sbFZpZXcoc2VsZWN0aW9uU2Nyb2xsVmlldyk7Ci0gICAgLy8gaWYgdGhl
cmUncyBubyBzdWJmcmFtZSBzZXQgYW4gZW1wdHkgcmVjdCBzbyB0aGF0IHdlIGRlZmF1bHQgdG8g
dGhlIG1haW4gZnJhbWUuCi0gICAgbV93ZWJQYWdlLT5tX3NlbGVjdGlvbkhhbmRsZXItPnNldFNl
bGVjdGlvblZpZXdwb3J0UmVjdChzZWxlY3Rpb25TY3JvbGxWaWV3ID8gV2ViQ29yZTo6SW50UmVj
dChzZWxlY3Rpb25TY3JvbGxWaWV3LT5kb2N1bWVudFZpZXdwb3J0UmVjdCgpKSA6IFdlYkNvcmU6
OkludFJlY3QoKSk7CisgICAgLy8gSWYgdGhlcmUncyBubyBzdWJmcmFtZSBzZXQgYW4gZW1wdHkg
cmVjdCBzbyB0aGF0IHdlIGRlZmF1bHQgdG8gdGhlIG1haW4gZnJhbWUuCisgICAgbV93ZWJQYWdl
LT5tX3NlbGVjdGlvbkhhbmRsZXItPnNldFNlbGVjdGlvblN1YmZyYW1lVmlld3BvcnRSZWN0KHNl
bGVjdGlvblNjcm9sbFZpZXcgPyBXZWJDb3JlOjpJbnRSZWN0KHNlbGVjdGlvblNjcm9sbFZpZXct
PmRvY3VtZW50Vmlld3BvcnRSZWN0KCkpIDogV2ViQ29yZTo6SW50UmVjdCgpKTsKIH0KIAogUGxh
dGZvcm06OlNjcm9sbFZpZXdCYXNlKiBJblJlZ2lvblNjcm9sbGVyUHJpdmF0ZTo6Zmlyc3RTY3Jv
bGxhYmxlSW5SZWdpb25Gb3JOb2RlKGNvbnN0IE5vZGUqIG5vZGUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L0FwaS9XZWJQYWdlLmNwcAppbmRleCBmNTkwYjFmLi5iYjZiMmUxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKQEAgLTQ0MzIsNiArNDQzMiwxMSBAQCB2
b2lkIFdlYlBhZ2U6OnNldFBhcmFncmFwaEV4cGFuc2lvblBpeGVsU2Nyb2xsTWFyZ2luKGNvbnN0
IFBsYXRmb3JtOjpJbnRTaXplJiBzYwogICAgIGQtPm1fc2VsZWN0aW9uSGFuZGxlci0+c2V0UGFy
YWdyYXBoRXhwYW5zaW9uU2Nyb2xsTWFyZ2luKGRvY3VtZW50U2Nyb2xsTWFyZ2luKTsKIH0KIAor
dm9pZCBXZWJQYWdlOjpzZXRTZWxlY3Rpb25Eb2N1bWVudFZpZXdwb3J0U2l6ZShjb25zdCBQbGF0
Zm9ybTo6SW50U2l6ZSYgc2VsZWN0aW9uRG9jdW1lbnRWaWV3cG9ydFNpemUpCit7CisgICAgZC0+
bV9zZWxlY3Rpb25IYW5kbGVyLT5zZXRTZWxlY3Rpb25WaWV3cG9ydFNpemUoc2VsZWN0aW9uRG9j
dW1lbnRWaWV3cG9ydFNpemUpOworfQorCiBCYWNraW5nU3RvcmUqIFdlYlBhZ2U6OmJhY2tpbmdT
dG9yZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGQtPm1fYmFja2luZ1N0b3JlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuaAppbmRleCA4NTE5NTg1Li41ZTAxN2I2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuaApAQCAtMjY0LDYgKzI2NCw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGV4cGFuZFNlbGVjdGlvbihib29sIGlzU2Nyb2xsU3RhcnRlZCk7CiAgICAg
dm9pZCBzZXRPdmVybGF5RXhwYW5zaW9uUGl4ZWxIZWlnaHQoaW50KTsKICAgICB2b2lkIHNldFBh
cmFncmFwaEV4cGFuc2lvblBpeGVsU2Nyb2xsTWFyZ2luKGNvbnN0IFBsYXRmb3JtOjpJbnRTaXpl
Jik7CisgICAgdm9pZCBzZXRTZWxlY3Rpb25Eb2N1bWVudFZpZXdwb3J0U2l6ZShjb25zdCBQbGF0
Zm9ybTo6SW50U2l6ZSYpOwogICAgIHZvaWQgc2VsZWN0aW9uQ2FuY2VsbGVkKCk7CiAgICAgYm9v
bCBzZWxlY3Rpb25Db250YWluc0RvY3VtZW50UG9pbnQoY29uc3QgUGxhdGZvcm06OkludFBvaW50
Jik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCmluZGV4IGM0M2IwN2YuLjAzMzU4MzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEzLTA0
LTMwICBJcmlzIFd1ICA8c2h1d3VAYmxhY2tiZXJyeS5jb20+CisKKyAgICAgICAgIFtCbGFja0Jl
cnJ5XSBVcHN0cmVhbSBzbWFydCBzZWxlY3Rpb24KKyAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTEyMjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBDYWxsaW5nIHVzZXJJbnRlcmZhY2VWaWV3cG9ydEFjY2Vz
c29yKCktPmRvY3VtZW50Vmlld3BvcnRSZWN0KCkgb24gV0sgdGhyZWFkCisgICAgICAgIGNhdXNl
ZCBjcmFzaC4KKyAgICAgICAgQnV0IHZpZXdwb3J0IGZyb20gd2Via2l0VGhyZWFkVmlld3BvcnRB
Y2Nlc3NvciB1c2VzIHVuYWRqdXN0ZWQgc2l6ZSB3aGljaCBpcworICAgICAgICB3cm9uZyBmb3Ig
ZW1haWwuCisgICAgICAgIFRoZSBzb2x1dGlvbiBoZXJlIGlzIHRvIGdldCBhY3R1YWwgdmlld3Bv
cnQgc2l6ZSBvbiBVSSB0aHJlYWQgYW5kIHRoZW4gcGFzcyBpdAorICAgICAgICB0byBXZWJLaXQ6
OlNlbGVjdGlvbkhhbmRsZXIuCisKKyAgICAgICAgUFIgMzMzNzYzCisgICAgICAgIFJldmlld2Vk
IEludGVybmFsbHkgQnkgSmFrb2IgUGV0c292aXRzLgorCisgICAgICAgICogQXBpL0luUmVnaW9u
U2Nyb2xsZXIuY3BwOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpJblJlZ2lvblNjcm9s
bGVyUHJpdmF0ZTo6dXBkYXRlU2VsZWN0aW9uU2Nyb2xsVmlldyk6CisgICAgICAgICogQXBpL1dl
YlBhZ2UuY3BwOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlOjpzZXRTZWxl
Y3Rpb25Eb2N1bWVudFZpZXdwb3J0U2l6ZSk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAq
IEFwaS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25IYW5kbGVy
LmNwcDoKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6U2VsZWN0aW9uSGFuZGxlcjo6c2Vs
ZWN0QXRQb2ludCk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OlNlbGVjdGlvbkhhbmRs
ZXI6OmVuc3VyZVNlbGVjdGVkVGV4dFZpc2libGUpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2Vi
S2l0OjpTZWxlY3Rpb25IYW5kbGVyOjpzZWxlY3Rpb25WaWV3cG9ydFJlY3QpOgorICAgICAgICAq
IFdlYktpdFN1cHBvcnQvU2VsZWN0aW9uSGFuZGxlci5oOgorICAgICAgICAoQmxhY2tCZXJyeTo6
V2ViS2l0OjpTZWxlY3Rpb25IYW5kbGVyOjpzZXRTZWxlY3Rpb25WaWV3cG9ydFNpemUpOgorICAg
ICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpTZWxlY3Rpb25IYW5kbGVyOjpzZXRTZWxlY3Rpb25T
dWJmcmFtZVZpZXdwb3J0UmVjdCk6CisgICAgICAgIChTZWxlY3Rpb25IYW5kbGVyKToKKwogMjAx
My0wNC0yOSAgSmFrb2IgUGV0c292aXRzICA8anBldHNvdml0c0BibGFja2JlcnJ5LmNvbT4KIAog
ICAgICAgICBbQmxhY2tCZXJyeV0gUmVwbGFjZSBkaXNhcHBlYXJpbmcgZmlsbEJ1ZmZlcigpIEFQ
SSB3aXRoIGdyYXBoaWNzIGNvbnRleHQgZHJhd2luZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvU2VsZWN0aW9uSGFuZGxlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25IYW5kbGVyLmNwcAppbmRl
eCA1MmYyYjAxLi43Y2UxMzY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
V2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25IYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25IYW5kbGVyLmNwcApAQCAtNjU2LDcgKzY1
Niw3IEBAIHZvaWQgU2VsZWN0aW9uSGFuZGxlcjo6c2VsZWN0QXRQb2ludChjb25zdCBXZWJDb3Jl
OjpJbnRQb2ludCYgbG9jYXRpb24sIFNlbGVjdGlvCiAgICAgICAgIG1fYW5pbWF0aW9uT3Zlcmxh
eUVuZFBvcyA9IFZpc2libGVQb3NpdGlvbigpOwogICAgICAgICBtX2N1cnJlbnRBbmltYXRpb25P
dmVybGF5UmVnaW9uID0gSW50UmVjdFJlZ2lvbigpOwogICAgICAgICBtX25leHRBbmltYXRpb25P
dmVybGF5UmVnaW9uID0gSW50UmVjdFJlZ2lvbigpOwotICAgICAgICBtX3NlbGVjdGlvblZpZXdw
b3J0UmVjdCA9IFdlYkNvcmU6OkludFJlY3QoKTsKKyAgICAgICAgbV9zZWxlY3Rpb25TdWJmcmFt
ZVZpZXdwb3J0UmVjdCA9IFdlYkNvcmU6OkludFJlY3QoKTsKICAgICB9CiAKICAgICAvLyBJZiBw
b2ludCBpcyBpbnZhbGlkIHRyaWdnZXIgc2VsZWN0aW9uIGJhc2VkIGV4cGFuc2lvbi4KQEAgLTc5
Niw3ICs3OTYsNyBAQCBib29sIFNlbGVjdGlvbkhhbmRsZXI6OmVuc3VyZVNlbGVjdGVkVGV4dFZp
c2libGUoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvaW50LAogICAgICAgICByZXR1cm4gdmll
d3BvcnRSZWN0Lm1heFkoKSA+PSBtX3dlYlBhZ2UtPmNvbnRlbnRzU2l6ZSgpLmhlaWdodCgpID8g
dmlld3BvcnRSZWN0Lm1heFkoKSA+PSBwb2ludC55KCkgOiB2aWV3cG9ydFJlY3QubWF4WSgpID49
IHBvaW50LnkoKSArIG1fc2Nyb2xsTWFyZ2luLmhlaWdodCgpOwogCiAgICAgLy8gU2Nyb2xsIHBv
c2l0aW9uIGFkanVzdG1lbnQgaGVyZSBpcyBiYXNlZCBvbiBtYWluIGZyYW1lLiBJZiBzZWxlY3Rp
bmcgaW4gYSBzdWJmcmFtZSwgZG9uJ3QgZG8gYW5pbWF0aW9uLgotICAgIGlmICghbV9zZWxlY3Rp
b25WaWV3cG9ydFJlY3QuaXNFbXB0eSgpKQorICAgIGlmICghbV9zZWxlY3Rpb25TdWJmcmFtZVZp
ZXdwb3J0UmVjdC5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIFdlYkNv
cmU6OkludFJlY3QgZW5kTG9jYXRpb24gPSBtX2FuaW1hdGlvbk92ZXJsYXlFbmRQb3MuYWJzb2x1
dGVDYXJldEJvdW5kcygpOwpAQCAtODI5LDEyICs4MjksOSBAQCBib29sIFNlbGVjdGlvbkhhbmRs
ZXI6OmVuc3VyZVNlbGVjdGVkVGV4dFZpc2libGUoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBv
aW50LAogCiBXZWJDb3JlOjpJbnRSZWN0IFNlbGVjdGlvbkhhbmRsZXI6OnNlbGVjdGlvblZpZXdw
b3J0UmVjdCgpIGNvbnN0CiB7Ci0gICAgaWYgKG1fc2VsZWN0aW9uVmlld3BvcnRSZWN0LmlzRW1w
dHkoKSkgewotICAgICAgICBXZWJDb3JlOjpJbnRQb2ludCBzY3JvbGxQb3NpdGlvbiA9IG1fd2Vi
UGFnZS0+c2Nyb2xsUG9zaXRpb24oKTsKLSAgICAgICAgV2ViQ29yZTo6SW50U2l6ZSBhY3R1YWxW
aXNpYmxlU2l6ZSA9IG1fd2ViUGFnZS0+Y2xpZW50KCktPnVzZXJJbnRlcmZhY2VWaWV3cG9ydEFj
Y2Vzc29yKCktPmRvY3VtZW50Vmlld3BvcnRSZWN0KCkuc2l6ZSgpOyAvLyB2aWV3cG9ydCBzaXpl
IGZvciBib3RoIENhc2NhZGVzIGFuZCBicm93c2VyCi0gICAgICAgIHJldHVybiBXZWJDb3JlOjpJ
bnRSZWN0KHNjcm9sbFBvc2l0aW9uLCBhY3R1YWxWaXNpYmxlU2l6ZSk7Ci0gICAgfQotICAgIHJl
dHVybiBtX3NlbGVjdGlvblZpZXdwb3J0UmVjdDsKKyAgICBpZiAobV9zZWxlY3Rpb25TdWJmcmFt
ZVZpZXdwb3J0UmVjdC5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBXZWJDb3JlOjpJbnRSZWN0
KG1fd2ViUGFnZS0+c2Nyb2xsUG9zaXRpb24oKSwgbV9zZWxlY3Rpb25WaWV3cG9ydFNpemUpOwor
ICAgIHJldHVybiBtX3NlbGVjdGlvblN1YmZyYW1lVmlld3BvcnRSZWN0OwogfQogCiB2b2lkIFNl
bGVjdGlvbkhhbmRsZXI6OnNldFBhcmFncmFwaEV4cGFuc2lvblNjcm9sbE1hcmdpbihjb25zdCBX
ZWJDb3JlOjpJbnRTaXplJiBzY3JvbGxNYXJnaW4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25IYW5kbGVyLmggYi9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25IYW5kbGVyLmgKaW5kZXggOTBj
OGNjZC4uYTYyZGM0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktp
dFN1cHBvcnQvU2VsZWN0aW9uSGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9XZWJLaXRTdXBwb3J0L1NlbGVjdGlvbkhhbmRsZXIuaApAQCAtODAsNyArODAsOCBAQCBwdWJs
aWM6CiAgICAgdm9pZCBleHBhbmRTZWxlY3Rpb24oYm9vbCBpc1Njcm9sbFN0YXJ0ZWQpOwogICAg
IHZvaWQgc2V0T3ZlcmxheUV4cGFuc2lvbkhlaWdodChpbnQgZHkpIHsgbV9vdmVybGF5RXhwYW5z
aW9uSGVpZ2h0ID0gZHk7IH0KICAgICB2b2lkIHNldFBhcmFncmFwaEV4cGFuc2lvblNjcm9sbE1h
cmdpbihjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7Ci0gICAgdm9pZCBzZXRTZWxlY3Rpb25WaWV3
cG9ydFJlY3QoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc2VsZWN0aW9uVmlld3BvcnRSZWN0KSB7
IG1fc2VsZWN0aW9uVmlld3BvcnRSZWN0ID0gc2VsZWN0aW9uVmlld3BvcnRSZWN0OyB9CisgICAg
dm9pZCBzZXRTZWxlY3Rpb25WaWV3cG9ydFNpemUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2Vs
ZWN0aW9uVmlld3BvcnRTaXplKSB7IG1fc2VsZWN0aW9uVmlld3BvcnRTaXplID0gc2VsZWN0aW9u
Vmlld3BvcnRTaXplOyB9CisgICAgdm9pZCBzZXRTZWxlY3Rpb25TdWJmcmFtZVZpZXdwb3J0UmVj
dChjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzZWxlY3Rpb25TdWJmcmFtZVZpZXdwb3J0UmVjdCkg
eyBtX3NlbGVjdGlvblN1YmZyYW1lVmlld3BvcnRSZWN0ID0gc2VsZWN0aW9uU3ViZnJhbWVWaWV3
cG9ydFJlY3Q7IH0KICAgICBXZWJDb3JlOjpJbnRSZWN0IHNlbGVjdGlvblZpZXdwb3J0UmVjdCgp
IGNvbnN0OwogCiBwcml2YXRlOgpAQCAtMTI2LDcgKzEyNyw4IEBAIHByaXZhdGU6CiAgICAgQmxh
Y2tCZXJyeTo6UGxhdGZvcm06OlN0b3BXYXRjaCBtX3RpbWVyOwogCiAgICAgV2ViQ29yZTo6SW50
U2l6ZSBtX3Njcm9sbE1hcmdpbjsKLSAgICBXZWJDb3JlOjpJbnRSZWN0IG1fc2VsZWN0aW9uVmll
d3BvcnRSZWN0OworICAgIFdlYkNvcmU6OkludFNpemUgbV9zZWxlY3Rpb25WaWV3cG9ydFNpemU7
CisgICAgV2ViQ29yZTo6SW50UmVjdCBtX3NlbGVjdGlvblN1YmZyYW1lVmlld3BvcnRSZWN0Owog
ICAgIFdlYkNvcmU6OlZpc2libGVTZWxlY3Rpb24gbV9sYXN0U2VsZWN0aW9uOwogfTsKIAotLSAK
MS43LjkuNQoK
</data>

          </attachment>
      

    </bug>

</bugzilla>