<?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>81001</bug_id>
          
          <creation_ts>2012-03-13 09:07:19 -0700</creation_ts>
          <short_desc>[BlackBerry] Add an Accelerated Compositing layer for Web Inspector DOM highlight.</short_desc>
          <delta_ts>2012-05-30 21:00:01 -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>
          
          <blocked>79100</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Konrad Piascik">kpiascik</reporter>
          <assigned_to name="Konrad Piascik">kpiascik</assigned_to>
          <cc>anilsson</cc>
    
    <cc>rakuco</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>577403</commentid>
    <comment_count>0</comment_count>
    <who name="Konrad Piascik">kpiascik</who>
    <bug_when>2012-03-13 09:07:19 -0700</bug_when>
    <thetext>Chromium does this in bug 62149.  BlackBerry will add its own implementation in the hopes that once the 2 ports have visibility into each other&apos;s code that bug 79100 will be easier to address.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637489</commentid>
    <comment_count>1</comment_count>
      <attachid>144882</attachid>
    <who name="Konrad Piascik">kpiascik</who>
    <bug_when>2012-05-30 11:38:00 -0700</bug_when>
    <thetext>Created attachment 144882
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637524</commentid>
    <comment_count>2</comment_count>
      <attachid>144882</attachid>
    <who name="Arvid Nilsson">anilsson</who>
    <bug_when>2012-05-30 12:20:05 -0700</bug_when>
    <thetext>Comment on attachment 144882
Patch

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

&gt; Source/WebKit/ChangeLog:3
&gt; +        [BlackBerry] Add and Accelerated Compositing layer for Web Inspector DOM highlight.

I think it should be &quot;an accelerated...&quot;

&gt; Source/WebKit/blackberry/ChangeLog:3
&gt; +        [BlackBerry] Add and Accelerated Compositing layer for Web Inspector DOM highlight.

Same here

&gt; Source/WebKit/blackberry/Api/WebPage_p.h:431
&gt; +#endif

I think this is a remnant from an earlier version of the patch, that you should remove.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637528</commentid>
    <comment_count>3</comment_count>
    <who name="Arvid Nilsson">anilsson</who>
    <bug_when>2012-05-30 12:21:44 -0700</bug_when>
    <thetext>Otherwise looks good, I see you added a line to updateDelegatedOverlays, I hope it follows along with accelerated animations now...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637541</commentid>
    <comment_count>4</comment_count>
    <who name="Konrad Piascik">kpiascik</who>
    <bug_when>2012-05-30 12:30:26 -0700</bug_when>
    <thetext>update summary</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637551</commentid>
    <comment_count>5</comment_count>
      <attachid>144897</attachid>
    <who name="Konrad Piascik">kpiascik</who>
    <bug_when>2012-05-30 12:36:30 -0700</bug_when>
    <thetext>Created attachment 144897
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637615</commentid>
    <comment_count>6</comment_count>
      <attachid>144897</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-05-30 13:27:53 -0700</bug_when>
    <thetext>Comment on attachment 144897
Patch

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

&gt; Source/WebKit/blackberry/Api/WebPage.cpp:6348
&gt; +    }
&gt; +
&gt; +}

r- extra line :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637636</commentid>
    <comment_count>7</comment_count>
      <attachid>144911</attachid>
    <who name="Konrad Piascik">kpiascik</who>
    <bug_when>2012-05-30 13:35:32 -0700</bug_when>
    <thetext>Created attachment 144911
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637978</commentid>
    <comment_count>8</comment_count>
      <attachid>144911</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-30 20:59:55 -0700</bug_when>
    <thetext>Comment on attachment 144911
Patch

Clearing flags on attachment: 144911

Committed r119046: &lt;http://trac.webkit.org/changeset/119046&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637979</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-30 21:00:01 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>144882</attachid>
            <date>2012-05-30 11:38:00 -0700</date>
            <delta_ts>2012-05-30 12:36:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81001-20120530143835.patch</filename>
            <type>text/plain</type>
            <size>19309</size>
            <attacher name="Konrad Piascik">kpiascik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE4ODg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDZjM2IzMWZlNmRiZGFhODQx
NTk2ODNmNTYzM2ZjMTQ0YTcxZTFkYzYuLmRjNGNjNDY3MjU4NDllMzI0MDg5OTU0NDI3NDBmOGFm
ZWM0YzNhYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMDUtMzAgIEtvbnJhZCBQ
aWFzY2lrICA8a3BpYXNjaWtAcmltLmNvbT4KKworICAgICAgICBbQmxhY2tCZXJyeV0gQWRkIGFu
ZCBBY2NlbGVyYXRlZCBDb21wb3NpdGluZyBsYXllciBmb3IgV2ViIEluc3BlY3RvciBET00gaGln
aGxpZ2h0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
ODEwMDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisg
ICAgICAgIEFkZGVkIG5ldyBJbnNwZWN0b3JPdmVybGF5IGNsYXNzCisKKyAgICAgICAgKiBQbGF0
Zm9ybUJsYWNrQmVycnkuY21ha2U6CisKIDIwMTItMDUtMjkgIEFydmlkIE5pbHNzb24gIDxhbmls
c3NvbkByaW0uY29tPgogCiAgICAgICAgIFtCbGFja0JlcnJ5XSBXZWJLaXQtc2lkZSBpbXBsZW1l
bnRhdGlvbiBvZiBTZWxlY3Rpb25PdmVybGF5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwpp
bmRleCAyNjNmMGY1NGNjODk5ZGJiMjQ3MmU5YzRjZTZjYzY3ZGU0NzRiYTk3Li5iZjZiYzJlMWMz
ZTJlZTViMGViMDA3NmZlNmM2MTBkZTk2ZDllYWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw1MSBAQAorMjAxMi0wNS0zMCAgS29ucmFkIFBpYXNjaWsgIDxrcGlh
c2Npa0ByaW0uY29tPgorCisgICAgICAgIFtCbGFja0JlcnJ5XSBBZGQgYW5kIEFjY2VsZXJhdGVk
IENvbXBvc2l0aW5nIGxheWVyIGZvciBXZWIgSW5zcGVjdG9yIERPTSBoaWdobGlnaHQuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MTAwMQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgSW1wbGVt
ZW50ZWQgSW5zcGVjdG9yT3ZlcmxheSB1c2luZyBXZWJPdmVybGF5QVBJLgorCisgICAgICAgICog
QXBpL0JhY2tpbmdTdG9yZS5jcHA6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OkJhY2tp
bmdTdG9yZVByaXZhdGU6OnJlbmRlckNvbnRlbnRzKToKKyAgICAgICAgKiBBcGkvV2ViUGFnZS5j
cHA6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQcml2YXRlOjp1cGRhdGVE
ZWxlZ2F0ZWRPdmVybGF5cyk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQ
cml2YXRlOjpjb21taXRSb290TGF5ZXJJZk5lZWRlZCk6CisgICAgICAgIChCbGFja0JlcnJ5OjpX
ZWJLaXQ6OldlYlBhZ2VQcml2YXRlOjpzZXRJbnNwZWN0b3JPdmVybGF5Q2xpZW50KToKKyAgICAg
ICAgKFdlYktpdCk6CisgICAgICAgICogQXBpL1dlYlBhZ2VfcC5oOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJQYWdlUHJpdmF0ZSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
SW5zcGVjdG9yQ2xpZW50QmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JDbGllbnRCbGFja0JlcnJ5OjpoaWdobGlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yQ2xpZW50QmxhY2tCZXJyeTo6aGlkZUhpZ2hsaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JDbGllbnRCbGFja0JlcnJ5OjpwYWludEluc3BlY3Rvck92ZXJsYXkpOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50Qmxh
Y2tCZXJyeS5oOgorICAgICAgICAoSW5zcGVjdG9yQ2xpZW50QmxhY2tCZXJyeSk6CisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yT3ZlcmxheS5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JPdmVybGF5OjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yT3ZlcmxheTo6SW5zcGVjdG9yT3ZlcmxheSk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JPdmVybGF5Ojpub3RpZnlTeW5jUmVxdWlyZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yT3ZlcmxheTo6cGFpbnRDb250ZW50cyk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JPdmVybGF5OjpzaG93RGVidWdCb3JkZXJzKToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3Rvck92ZXJsYXk6OnNob3dSZXBhaW50Q291bnRlcik6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JPdmVybGF5Ojpjb250ZW50c1Zpc2libGUpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yT3ZlcmxheTo6fkluc3BlY3Rvck92ZXJsYXkpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yT3ZlcmxheTo6Y2xlYXIpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yT3ZlcmxheTo6dXBkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvck92
ZXJsYXk6OnBhaW50V2ViRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yT3Zlcmxh
eTo6aW52YWxpZGF0ZVdlYkZyYW1lKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9JbnNwZWN0
b3JPdmVybGF5Lmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoSW5zcGVjdG9yT3ZlcmxheSk6CisgICAgICAgIChJbnNwZWN0b3JPdmVybGF5
Q2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvck92ZXJsYXk6OnNldENsaWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JPdmVybGF5Ojpub3RpZnlBbmltYXRpb25TdGFy
dGVkKToKKwogMjAxMi0wNS0yOSAgQXJ2aWQgTmlsc3NvbiAgPGFuaWxzc29uQHJpbS5jb20+CiAK
ICAgICAgICAgW0JsYWNrQmVycnldIE1ha2UgRGVmYXVsdFRhcEhpZ2hsaWdodCB1c2UgdGhlIG5l
dyBXZWJPdmVybGF5IEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybUJsYWNr
QmVycnkuY21ha2UgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtQmxhY2tCZXJyeS5jbWFrZQppbmRl
eCBhNWJhNGM0ZWVhNjQyZmRmMzVhZmZjMDYwZTMzNzRhMmZjOTgzNDRhLi5iYzYxOWYyOWEwYTMw
MjAxMDQ2ODMxYTk4Yzk4ZGIwNTg5NDRhMjIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtQmxhY2tCZXJyeS5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtQmxhY2tC
ZXJyeS5jbWFrZQpAQCAtNzgsNiArNzgsNyBAQCBMSVNUKEFQUEVORCBXZWJLaXRfU09VUkNFUwog
ICAgIGJsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50
QmxhY2tCZXJyeS5jcHAKICAgICBibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0ljb25EYXRhYmFz
ZUNsaWVudEJsYWNrQmVycnkuY3BwCiAgICAgYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9JbnNw
ZWN0b3JDbGllbnRCbGFja0JlcnJ5LmNwcAorICAgIGJsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQv
SW5zcGVjdG9yT3ZlcmxheS5jcHAKICAgICBibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0phdmFT
Y3JpcHREZWJ1Z2dlckJsYWNrQmVycnkuY3BwCiAgICAgYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9y
dC9Ob3RpZmljYXRpb25QcmVzZW50ZXJJbXBsLmNwcAogICAgIGJsYWNrYmVycnkvV2ViQ29yZVN1
cHBvcnQvVmlicmF0aW9uQ2xpZW50QmxhY2tCZXJyeS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9BcGkvQmFja2luZ1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9BcGkvQmFja2luZ1N0b3JlLmNwcAppbmRleCA0NmYyYzExM2Q1Y2I5YjEwN2EwMmYz
YmQzNzk2ZWRjZGI3MDBkODE4Li42MTljNDM5NjgxM2UxNmFiNmFiYWFhYTYzNWUwOWFiMjkzMDhl
MjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL0JhY2tpbmdTdG9y
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9CYWNraW5nU3RvcmUuY3Bw
CkBAIC0yNDQzLDcgKzI0NDMsOCBAQCB2b2lkIEJhY2tpbmdTdG9yZVByaXZhdGU6OnJlbmRlckNv
bnRlbnRzKEJsYWNrQmVycnk6OlBsYXRmb3JtOjpHcmFwaGljczo6QnVmZmVyKgogICAgICAgICBp
ZiAobV93ZWJQYWdlLT5kLT5tX3BhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKS0+ZW5hYmxlZCgp
KSB7CiAgICAgICAgICAgICBXZWJDb3JlOjpJbnRQb2ludCBzY3JvbGxQb3NpdGlvbiA9IG1fY2xp
ZW50LT5mcmFtZSgpLT52aWV3KCktPnNjcm9sbFBvc2l0aW9uKCk7CiAgICAgICAgICAgICBncmFw
aGljc0NvbnRleHQudHJhbnNsYXRlKHNjcm9sbFBvc2l0aW9uLngoKSwgc2Nyb2xsUG9zaXRpb24u
eSgpKTsKLSAgICAgICAgICAgIG1fd2ViUGFnZS0+ZC0+bV9wYWdlLT5pbnNwZWN0b3JDb250cm9s
bGVyKCktPmRyYXdIaWdobGlnaHQoZ3JhcGhpY3NDb250ZXh0KTsKKyAgICAgICAgICAgIGlmICht
X3dlYlBhZ2UtPmQtPm1faW5zcGVjdG9yT3ZlcmxheSkKKyAgICAgICAgICAgICAgICBtX3dlYlBh
Z2UtPmQtPm1faW5zcGVjdG9yT3ZlcmxheS0+cGFpbnRXZWJGcmFtZShncmFwaGljc0NvbnRleHQp
OwogICAgICAgICB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L0FwaS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFn
ZS5jcHAKaW5kZXggOTcyYjM1ODQ4MzQ4MDkxZDEwYmUwNWVkNTc4ZDNiOGI2NjA4NDMwOC4uNWRl
MmU1NzYyYTg5NGIyYjhmMDlkMTY0YTczMWQ0ZGJjZjlhZjQxMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCkBAIC03NCw2ICs3NCw3IEBACiAjaW5jbHVkZSAiSW5z
cGVjdG9yQmFja2VuZERpc3BhdGNoZXIuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JDbGllbnRCbGFj
a0JlcnJ5LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIklu
c3BlY3Rvck92ZXJsYXkuaCIKICNpbmNsdWRlICJKYXZhU2NyaXB0RGVidWdnZXJCbGFja0JlcnJ5
LmgiCiAjaW5jbHVkZSAiTGF5ZXJXZWJLaXRUaHJlYWQuaCIKICNpbmNsdWRlICJMb2NhbEZpbGVT
eXN0ZW0uaCIKQEAgLTMyNDEsNiArMzI0Miw4IEBAIHZvaWQgV2ViUGFnZVByaXZhdGU6OnVwZGF0
ZURlbGVnYXRlZE92ZXJsYXlzKGJvb2wgZGlzcGF0Y2hlZCkKICAgICAgICAgLy8gTXVzdCBiZSBj
YWxsZWQgb24gdGhlIFdlYktpdCB0aHJlYWQuCiAgICAgICAgIGlmIChtX3NlbGVjdGlvbkhhbmRs
ZXItPmlzU2VsZWN0aW9uQWN0aXZlKCkpCiAgICAgICAgICAgICBtX3NlbGVjdGlvbkhhbmRsZXIt
PnNlbGVjdGlvblBvc2l0aW9uQ2hhbmdlZCh0cnVlIC8qIHZpc3VhbENoYW5nZU9ubHkgKi8pOwor
ICAgICAgICBpZiAobV9pbnNwZWN0b3JPdmVybGF5KQorICAgICAgICAgICAgbV9pbnNwZWN0b3JP
dmVybGF5LT51cGRhdGUoKTsKIAogICAgIH0gZWxzZSBpZiAobV9zZWxlY3Rpb25IYW5kbGVyLT5p
c1NlbGVjdGlvbkFjdGl2ZSgpKSB7CiAgICAgICAgIC8vIERvbid0IGJvdGhlciBkaXNwYXRjaGlu
ZyB0byB3ZWJraXQgdGhyZWFkIGlmIHNlbGVjdGlvbiBhbmQgdGFwIGhpZ2hsaWdodCBhcmUgbm90
IGFjdGl2ZS4KQEAgLTU3OTksNiArNTgwMiw3IEBAIGJvb2wgV2ViUGFnZVByaXZhdGU6OmNvbW1p
dFJvb3RMYXllcklmTmVlZGVkKCkKICAgICBkb3VibGUgc2NhbGUgPSBjdXJyZW50U2NhbGUoKTsK
ICAgICBpZiAobV9mcmFtZUxheWVycyAmJiBtX2ZyYW1lTGF5ZXJzLT5oYXNMYXllcigpKQogICAg
ICAgICBtX2ZyYW1lTGF5ZXJzLT5jb21taXRPbldlYktpdFRocmVhZChzY2FsZSk7CisKICAgICB1
cGRhdGVEZWxlZ2F0ZWRPdmVybGF5cygpOwogICAgIGlmIChtX292ZXJsYXlMYXllcikKICAgICAg
ICAgbV9vdmVybGF5TGF5ZXItPnBsYXRmb3JtTGF5ZXIoKS0+Y29tbWl0T25XZWJLaXRUaHJlYWQo
c2NhbGUpOwpAQCAtNjMyNCw1ICs2MzI4LDI0IEBAIHZvaWQgV2ViUGFnZVByaXZhdGU6OnNldFBh
cmVudFBvcHVwKFBhZ2VQb3B1cEJsYWNrQmVycnkqIHdlYlBvcHVwKQogICAgIG1fcGFyZW50UG9w
dXAgPSB3ZWJQb3B1cDsKIH0KIAordm9pZCBXZWJQYWdlUHJpdmF0ZTo6c2V0SW5zcGVjdG9yT3Zl
cmxheUNsaWVudChXZWJDb3JlOjpJbnNwZWN0b3JPdmVybGF5OjpJbnNwZWN0b3JPdmVybGF5Q2xp
ZW50KiBpbnNwZWN0b3JPdmVybGF5Q2xpZW50KQoreworICAgIGlmIChpbnNwZWN0b3JPdmVybGF5
Q2xpZW50KSB7CisgICAgICAgIGlmICghbV9pbnNwZWN0b3JPdmVybGF5KQorICAgICAgICAgICAg
bV9pbnNwZWN0b3JPdmVybGF5ID0gV2ViQ29yZTo6SW5zcGVjdG9yT3ZlcmxheTo6Y3JlYXRlKHRo
aXMsIGluc3BlY3Rvck92ZXJsYXlDbGllbnQpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBt
X2luc3BlY3Rvck92ZXJsYXktPnNldENsaWVudChpbnNwZWN0b3JPdmVybGF5Q2xpZW50KTsKKyAg
ICAgICAgbV9pbnNwZWN0b3JPdmVybGF5LT51cGRhdGUoKTsKKyAgICAgICAgc2NoZWR1bGVSb290
TGF5ZXJDb21taXQoKTsKKyAgICB9IGVsc2UgeworICAgICAgICBpZiAobV9pbnNwZWN0b3JPdmVy
bGF5KSB7CisgICAgICAgICAgICBtX2luc3BlY3Rvck92ZXJsYXktPmNsZWFyKCk7CisgICAgICAg
ICAgICBtX2luc3BlY3Rvck92ZXJsYXkgPSBudWxscHRyOworICAgICAgICAgICAgc2NoZWR1bGVS
b290TGF5ZXJDb21taXQoKTsKKyAgICAgICAgfQorICAgIH0KKworfQorCiB9CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2VfcC5oIGIvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlX3AuaAppbmRleCBhOGIxYTFhMDUyMGU2N2NiZDlk
NTBhMTVlNjI2MjZlNjEyMGNkNDcwLi40ZTVmOTczMzJkODFjMmNmZGVmMGMwY2UwMDNhNDQ4NWZi
YjdjY2VjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2Vf
cC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZV9wLmgKQEAgLTIw
LDYgKzIwLDcgQEAKICNkZWZpbmUgV2ViUGFnZV9wX2gKIAogI2luY2x1ZGUgIkNocm9tZUNsaWVu
dC5oIgorI2luY2x1ZGUgIkluc3BlY3Rvck92ZXJsYXkuaCIKICNpZiBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpCiAjaW5jbHVkZSAiR0xFUzJDb250ZXh0LmgiCiAjaW5jbHVkZSAiTGF5ZXJS
ZW5kZXJlci5oIgpAQCAtNDIsNiArNDMsNyBAQCBjbGFzcyBET01XcmFwcGVyV29ybGQ7CiBjbGFz
cyBEb2N1bWVudDsKIGNsYXNzIEZyYW1lOwogY2xhc3MgR2VvbG9jYXRpb25Db250cm9sbGVyQ2xp
ZW50QmxhY2tCZXJyeTsKK2NsYXNzIEdyYXBoaWNzTGF5ZXJCbGFja0JlcnJ5OwogY2xhc3MgSmF2
YVNjcmlwdERlYnVnZ2VyQmxhY2tCZXJyeTsKIGNsYXNzIExheWVyV2ViS2l0VGhyZWFkOwogY2xh
c3MgTm9kZTsKQEAgLTQyNCw2ICs0MjYsMTEgQEAgcHVibGljOgogICAgIHZvaWQgbm90aWZ5QXBw
QWN0aXZhdGlvblN0YXRlQ2hhbmdlKEFjdGl2YXRpb25TdGF0ZVR5cGUpOwogCiAgICAgdm9pZCBk
ZWZlcnJlZFRhc2tzVGltZXJGaXJlZChXZWJDb3JlOjpUaW1lcjxXZWJQYWdlUHJpdmF0ZT4qKTsK
KyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisgICAgdm9pZCBzZXRPdmVybGF5TGF5
ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllckJsYWNrQmVycnkqKTsKKyNlbmRpZgorCisgICAgdm9p
ZCBzZXRJbnNwZWN0b3JPdmVybGF5Q2xpZW50KFdlYkNvcmU6Okluc3BlY3Rvck92ZXJsYXk6Oklu
c3BlY3Rvck92ZXJsYXlDbGllbnQqKTsKIAogICAgIFdlYlBhZ2UqIG1fd2ViUGFnZTsKICAgICBX
ZWJQYWdlQ2xpZW50KiBtX2NsaWVudDsKQEAgLTU0OCw2ICs1NTUsNyBAQCBwdWJsaWM6CiAgICAg
UmVmUHRyPFdlYkNvcmU6OkRPTVdyYXBwZXJXb3JsZD4gbV9pc29sYXRlZFdvcmxkOwogICAgIGJv
b2wgbV9oYXNJblJlZ2lvblNjcm9sbGFibGVBcmVhczsKICAgICBib29sIG1fdXBkYXRlRGVsZWdh
dGVkT3ZlcmxheXNEaXNwYXRjaGVkOworICAgIE93blB0cjxXZWJDb3JlOjpJbnNwZWN0b3JPdmVy
bGF5PiBtX2luc3BlY3Rvck92ZXJsYXk7CiAKICAgICAvLyBUaGVyZSBpcyBubyBuZWVkIHRvIGlu
aXRpYWxpemUgdGhlIGZvbGxvd2luZyBtZW1iZXJzIGluIFdlYlBhZ2VQcml2YXRlJ3MgY29uc3Ry
dWN0b3IsCiAgICAgLy8gYmVjYXVzZSB0aGV5IGFyZSBvbmx5IHVzZWQgYnkgV2ViUGFnZVRhc2tz
IGFuZCB0aGUgdGFza3Mgd2lsbCBpbml0aWFsaXplIHRoZW0gd2hlbgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEJsYWNr
QmVycnkuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0luc3Bl
Y3RvckNsaWVudEJsYWNrQmVycnkuY3BwCmluZGV4IGQ5Njg4ZmY2YTA5YjlkNjVhZGFiYTg4MDFl
YTZlZDZjYjc5Yjg1MjkuLjFkZjc3NjQ2MjM0NmM2M2M4ZWM5ZTdlNDljOTIwYzVkYWI3ZTIxZjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9JbnNw
ZWN0b3JDbGllbnRCbGFja0JlcnJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
V2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50QmxhY2tCZXJyeS5jcHAKQEAgLTIyLDcgKzIy
LDEwIEBACiAKICNpbmNsdWRlICJCYWNraW5nU3RvcmUuaCIKICNpbmNsdWRlICJGcmFtZS5oIgor
I2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgorI2luY2x1ZGUgIkluc3BlY3RvckNvbnRyb2xs
ZXIuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKICNp
bmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJXZWJQYWdlQ2xpZW50LmgiCiAjaW5j
bHVkZSAiV2ViUGFnZV9wLmgiCkBAIC00MiwxNyArNDUsMTYgQEAgdm9pZCBJbnNwZWN0b3JDbGll
bnRCbGFja0JlcnJ5OjppbnNwZWN0b3JEZXN0cm95ZWQoKQogCiB2b2lkIEluc3BlY3RvckNsaWVu
dEJsYWNrQmVycnk6OmhpZ2hsaWdodCgpCiB7Ci0gICAgaGlkZUhpZ2hsaWdodCgpOworICAgIG1f
d2ViUGFnZVByaXZhdGUtPnNldEluc3BlY3Rvck92ZXJsYXlDbGllbnQodGhpcyk7CisgICAgaWYg
KCFtX3dlYlBhZ2VQcml2YXRlLT5pc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdBY3RpdmUoKSkKKyAg
ICAgICAgbV93ZWJQYWdlUHJpdmF0ZS0+bWFpbkZyYW1lKCktPmRvY3VtZW50KCktPmRvY3VtZW50
RWxlbWVudCgpLT5yZW5kZXJlcigpLT5yZXBhaW50KHRydWUpOwogfQogCiB2b2lkIEluc3BlY3Rv
ckNsaWVudEJsYWNrQmVycnk6OmhpZGVIaWdobGlnaHQoKQogewotICAgIGlmICghbV93ZWJQYWdl
UHJpdmF0ZS0+bWFpbkZyYW1lKCkgfHwgIW1fd2ViUGFnZVByaXZhdGUtPm1haW5GcmFtZSgpLT5k
b2N1bWVudCgpIHx8ICFtX3dlYlBhZ2VQcml2YXRlLT5tYWluRnJhbWUoKS0+ZG9jdW1lbnQoKS0+
ZG9jdW1lbnRFbGVtZW50KCkKLSAgICAgICAgfHwgIW1fd2ViUGFnZVByaXZhdGUtPm1haW5GcmFt
ZSgpLT5kb2N1bWVudCgpLT5kb2N1bWVudEVsZW1lbnQoKS0+cmVuZGVyZXIoKSkKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgLy8gRklYTUU6IFBvdGVudGlhbGx5IHNsb3cgaGFjaywgYnV0IGludmFs
aWRhdGluZyBldmVyeXRoaW5nIHNob3VsZCB3b3JrIHNpbmNlIHRoZSBhY3R1YWwgaGlnaGxpZ2h0
IGlzIGRyYXduIGJ5IEJhY2tpbmdTdG9yZVByaXZhdGU6OnJlbmRlckNvbnRlbnRzKCkuCi0gICAg
bV93ZWJQYWdlUHJpdmF0ZS0+bWFpbkZyYW1lKCktPmRvY3VtZW50KCktPmRvY3VtZW50RWxlbWVu
dCgpLT5yZW5kZXJlcigpLT5yZXBhaW50KHRydWUpOworICAgIG1fd2ViUGFnZVByaXZhdGUtPnNl
dEluc3BlY3Rvck92ZXJsYXlDbGllbnQoMCk7CisgICAgaWYgKCFtX3dlYlBhZ2VQcml2YXRlLT5p
c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdBY3RpdmUoKSkKKyAgICAgICAgbV93ZWJQYWdlUHJpdmF0
ZS0+bWFpbkZyYW1lKCktPmRvY3VtZW50KCktPmRvY3VtZW50RWxlbWVudCgpLT5yZW5kZXJlcigp
LT5yZXBhaW50KHRydWUpOwogfQogCiB2b2lkIEluc3BlY3RvckNsaWVudEJsYWNrQmVycnk6Om9w
ZW5JbnNwZWN0b3JGcm9udGVuZChJbnNwZWN0b3JDb250cm9sbGVyKikKQEAgLTkyLDQgKzk0LDEx
IEBAIHZvaWQgSW5zcGVjdG9yQ2xpZW50QmxhY2tCZXJyeTo6dXBkYXRlSW5zcGVjdG9yU3RhdGVD
b29raWUoY29uc3QgU3RyaW5nJiBjb29raWUpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH07CiAK
K3ZvaWQgSW5zcGVjdG9yQ2xpZW50QmxhY2tCZXJyeTo6cGFpbnRJbnNwZWN0b3JPdmVybGF5KEdy
YXBoaWNzQ29udGV4dCYgZ2MpCit7CisgICAgSW5zcGVjdG9yQ29udHJvbGxlciogaW5zcGVjdG9y
Q29udHJvbGxlciA9IG1fd2ViUGFnZVByaXZhdGUtPm1fcGFnZS0+aW5zcGVjdG9yQ29udHJvbGxl
cigpOworICAgIGlmIChpbnNwZWN0b3JDb250cm9sbGVyKQorICAgICAgICBpbnNwZWN0b3JDb250
cm9sbGVyLT5kcmF3SGlnaGxpZ2h0KGdjKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0luc3Bl
Y3RvckNsaWVudEJsYWNrQmVycnkuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3Jl
U3VwcG9ydC9JbnNwZWN0b3JDbGllbnRCbGFja0JlcnJ5LmgKaW5kZXggYTZhNDA0YTdhNzEzOWFi
MTgzNWE1ZmM4NzZiNWQ4ZmI4YjY2MTQyNy4uM2Y2ZjIwN2RkNDFjODE1YjJkM2ExYTZiYThlY2E4
ZGVlOWRjZTlmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVT
dXBwb3J0L0luc3BlY3RvckNsaWVudEJsYWNrQmVycnkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50QmxhY2tCZXJyeS5oCkBAIC0y
MSw2ICsyMSw3IEBACiAjZGVmaW5lIEluc3BlY3RvckNsaWVudEJsYWNrQmVycnlfaAogCiAjaW5j
bHVkZSAiSW5zcGVjdG9yQ2xpZW50LmgiCisjaW5jbHVkZSAiSW5zcGVjdG9yT3ZlcmxheS5oIgog
I2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KIApA
QCAtMzIsNyArMzMsNyBAQCBjbGFzcyBXZWJQYWdlUHJpdmF0ZTsKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1jbGFzcyBJbnNwZWN0b3JDbGllbnRCbGFja0JlcnJ5IDogcHVibGljIEluc3BlY3Rv
ckNsaWVudCB7CitjbGFzcyBJbnNwZWN0b3JDbGllbnRCbGFja0JlcnJ5IDogcHVibGljIEluc3Bl
Y3RvckNsaWVudCwgcHVibGljIEluc3BlY3Rvck92ZXJsYXk6Okluc3BlY3Rvck92ZXJsYXlDbGll
bnQgewogcHVibGljOgogICAgIEluc3BlY3RvckNsaWVudEJsYWNrQmVycnkoQmxhY2tCZXJyeTo6
V2ViS2l0OjpXZWJQYWdlUHJpdmF0ZSopOwogICAgIHZpcnR1YWwgdm9pZCBpbnNwZWN0b3JEZXN0
cm95ZWQoKTsKQEAgLTUwLDYgKzUxLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBjYW5D
bGVhckJyb3dzZXJDYWNoZSgpIHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIHZvaWQgY2xl
YXJCcm93c2VyQ29va2llcygpOwogICAgIHZpcnR1YWwgYm9vbCBjYW5DbGVhckJyb3dzZXJDb29r
aWVzKCkgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgdm9pZCBwYWludEluc3BlY3Rvck92
ZXJsYXkoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0Jik7CiAKICAgICB2aXJ0dWFsIHZvaWQgdXBk
YXRlSW5zcGVjdG9yU3RhdGVDb29raWUoY29uc3QgU3RyaW5nJik7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JPdmVybGF5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JPdmVy
bGF5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5jNTY4ZjEzNDE5YWUxNDU0ZmEyOWYxZDg5N2ZkNzI3ZmU1NWQy
NTBjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVT
dXBwb3J0L0luc3BlY3Rvck92ZXJsYXkuY3BwCkBAIC0wLDAgKzEsMTI4IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEyIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh
IGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAq
IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3Rv
biwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lu
Y2x1ZGUgIkluc3BlY3Rvck92ZXJsYXkuaCIKKworI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVk
ZSAiRnJhbWVWaWV3LmgiCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCisjaW5jbHVkZSAi
R3JhcGhpY3NMYXllci5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5o
IgorI2luY2x1ZGUgIldlYlBhZ2VfcC5oIgorCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGFz
c093blB0cjxJbnNwZWN0b3JPdmVybGF5PiBJbnNwZWN0b3JPdmVybGF5OjpjcmVhdGUoQmxhY2tC
ZXJyeTo6V2ViS2l0OjpXZWJQYWdlUHJpdmF0ZSogcGFnZSwgSW5zcGVjdG9yT3ZlcmxheUNsaWVu
dCogY2xpZW50KQoreworICAgIHJldHVybiBhZG9wdFB0cihuZXcgSW5zcGVjdG9yT3ZlcmxheShw
YWdlLCBjbGllbnQpKTsKK30KKworSW5zcGVjdG9yT3ZlcmxheTo6SW5zcGVjdG9yT3ZlcmxheShC
bGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQcml2YXRlKiBwYWdlLCBJbnNwZWN0b3JPdmVybGF5
Q2xpZW50KiBjbGllbnQpCisgICAgOiBtX3dlYlBhZ2UocGFnZSkKKyAgICAsIG1fY2xpZW50KGNs
aWVudCkKK3sKK30KKworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKK3ZvaWQgSW5z
cGVjdG9yT3ZlcmxheTo6bm90aWZ5U3luY1JlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKQor
eworICAgIG1fd2ViUGFnZS0+c2NoZWR1bGVSb290TGF5ZXJDb21taXQoKTsKK30KKwordm9pZCBJ
bnNwZWN0b3JPdmVybGF5OjpwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBHcmFw
aGljc0NvbnRleHQmIGNvbnRleHQsIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBJ
bnRSZWN0JiBpbkNsaXApCit7CisgICAgY29udGV4dC5zYXZlKCk7CisgICAgSW50UG9pbnQgc2Ny
b2xsUG9zaXRpb24gPSBtX3dlYlBhZ2UtPmZvY3VzZWRPck1haW5GcmFtZSgpLT52aWV3KCktPnNj
cm9sbFBvc2l0aW9uKCk7CisgICAgY29udGV4dC50cmFuc2xhdGUoc2Nyb2xsUG9zaXRpb24ueCgp
LCBzY3JvbGxQb3NpdGlvbi55KCkpOworICAgIG1fY2xpZW50LT5wYWludEluc3BlY3Rvck92ZXJs
YXkoY29udGV4dCk7CisgICAgY29udGV4dC5yZXN0b3JlKCk7Cit9CisKK2Jvb2wgSW5zcGVjdG9y
T3ZlcmxheTo6c2hvd0RlYnVnQm9yZGVycyhjb25zdCBHcmFwaGljc0xheWVyKikgY29uc3QKK3sK
KyAgICByZXR1cm4gbV93ZWJQYWdlLT5tX3BhZ2UtPnNldHRpbmdzKCktPnNob3dEZWJ1Z0JvcmRl
cnMoKTsKK30KKworYm9vbCBJbnNwZWN0b3JPdmVybGF5OjpzaG93UmVwYWludENvdW50ZXIoY29u
c3QgR3JhcGhpY3NMYXllciopIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fd2ViUGFnZS0+bV9wYWdl
LT5zZXR0aW5ncygpLT5zaG93UmVwYWludENvdW50ZXIoKTsKK30KKworYm9vbCBJbnNwZWN0b3JP
dmVybGF5Ojpjb250ZW50c1Zpc2libGUoY29uc3QgR3JhcGhpY3NMYXllciosIGNvbnN0IEludFJl
Y3QmIGNvbnRlbnRSZWN0KSBjb25zdAoreworICAgIHJldHVybiB0cnVlOworfQorI2VuZGlmCisK
K0luc3BlY3Rvck92ZXJsYXk6On5JbnNwZWN0b3JPdmVybGF5KCkgeyB9CisKK3ZvaWQgSW5zcGVj
dG9yT3ZlcmxheTo6Y2xlYXIoKQoreworICAgIGludmFsaWRhdGVXZWJGcmFtZSgpOworCisjaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgIGlmIChtX292ZXJsYXkpIHsKKyAgICAg
ICAgbV9vdmVybGF5LT5yZW1vdmVGcm9tUGFyZW50KCk7CisgICAgICAgIG1fb3ZlcmxheSA9IG51
bGxwdHI7CisgICAgfQorI2VuZGlmCit9CisKK3ZvaWQgSW5zcGVjdG9yT3ZlcmxheTo6dXBkYXRl
KCkKK3sKKyAgICBpbnZhbGlkYXRlV2ViRnJhbWUoKTsKKworI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKKyAgICBpZiAoIW1fb3ZlcmxheSkgeworICAgICAgICBtX292ZXJsYXkgPSBh
ZG9wdFB0cihuZXcgQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJPdmVybGF5KHRoaXMpKTsKKyAgICAg
ICAgY29uc3QgSW50U2l6ZSBzaXplID0gbV93ZWJQYWdlLT52aWV3cG9ydFNpemUoKTsKKyAgICAg
ICAgbV9vdmVybGF5LT5zZXRTaXplKEZsb2F0U2l6ZShzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0
KCkpKTsKKyAgICAgICAgbV93ZWJQYWdlLT5tX3dlYlBhZ2UtPmFkZE92ZXJsYXkobV9vdmVybGF5
LmdldCgpKTsKKyAgICB9CisKKyAgICBtX292ZXJsYXktPnNldERyYXdzQ29udGVudCh0cnVlKTsK
KyAgICBtX292ZXJsYXktPnNldE9wYWNpdHkoMS4wKTsKKyAgICBtX292ZXJsYXktPmludmFsaWRh
dGUoKTsKKyNlbmRpZgorfQorCit2b2lkIEluc3BlY3Rvck92ZXJsYXk6OnBhaW50V2ViRnJhbWUo
R3JhcGhpY3NDb250ZXh0JiBnYykKK3sKKyAgICBpZiAoIW1fd2ViUGFnZS0+aXNBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nQWN0aXZlKCkpCisgICAgICAgIG1fY2xpZW50LT5wYWludEluc3BlY3Rvck92
ZXJsYXkoZ2MpOworfQorCit2b2lkIEluc3BlY3Rvck92ZXJsYXk6OmludmFsaWRhdGVXZWJGcmFt
ZSgpCit7CisgICAgLy8gSW5zcGVjdG9yT3ZlcmxheUNsaWVudCBkb2VzIHRoZSBhY3R1YWwgcGFp
bnRpbmcgb2YgdGhlIG92ZXJsYXkuCisgICAgLy8gSGVyZSB3ZSBqdXN0IG1ha2Ugc3VyZSB0byBp
bnZhbGlkYXRlLgorICAgIGlmICghbV93ZWJQYWdlLT5pc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdB
Y3RpdmUoKSkgeworICAgICAgICAvLyBGSVhNRTogYWJsZSB0byBpbnZhbGlkYXRlIGEgc21hbGxl
ciByZWN0LgorICAgICAgICAvLyBGSVhNRTogSXMgaXQgaW1wb3J0YW50IHRvIGp1c3QgaW52YWxp
ZGF0ZSBhIHNtYWxsZXIgcmVjdCBnaXZlbiB0aGF0CisgICAgICAgIC8vIHRoaXMgaXMgbm90IG9u
IGEgY3JpdGljYWwgY29kZXBhdGg/IEluIG9yZGVyIHRvIGRvIHNvLCB3ZSdkCisgICAgICAgIC8v
IGhhdmUgdG8gdGFrZSBzY3JvbGxpbmcgaW50byBhY2NvdW50LgorICAgICAgICBjb25zdCBJbnRT
aXplIHNpemUgPSBtX3dlYlBhZ2UtPnZpZXdwb3J0U2l6ZSgpOworICAgICAgICBJbnRSZWN0IGRh
bWFnZWRSZWN0KDAsIDAsIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSk7CisgICAgfQorfQor
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQv
SW5zcGVjdG9yT3ZlcmxheS5oIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBw
b3J0L0luc3BlY3Rvck92ZXJsYXkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZjkxZTM1NDEyYTNkMjYwZWY2MTI3
MTBlM2QxMmVmYmJmNmU2ZDk4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0luc3BlY3Rvck92ZXJsYXkuaApAQCAtMCwwICsxLDc3IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMZXNzZXIgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2
ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExp
Y2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUg
U29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpZm5kZWYgSW5zcGVj
dG9yT3ZlcmxheV9oCisjZGVmaW5lIEluc3BlY3Rvck92ZXJsYXlfaAorCisjaW5jbHVkZSAiV2Vi
T3ZlcmxheS5oIgorI2luY2x1ZGUgPEdyYXBoaWNzTGF5ZXJDbGllbnQuaD4KKyNpbmNsdWRlIDx3
dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKworbmFtZXNwYWNlIEJs
YWNrQmVycnkgeworbmFtZXNwYWNlIFdlYktpdCB7CitjbGFzcyBXZWJQYWdlUHJpdmF0ZTsKK30K
K30KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgR3JhcGhpY3NDb250ZXh0OworY2xhc3Mg
R3JhcGhpY3NMYXllcjsKKworCitjbGFzcyBJbnNwZWN0b3JPdmVybGF5IDogcHVibGljIFdlYkNv
cmU6OkdyYXBoaWNzTGF5ZXJDbGllbnQgeworcHVibGljOgorICAgIGNsYXNzIEluc3BlY3Rvck92
ZXJsYXlDbGllbnQgeworICAgIHB1YmxpYzoKKyAgICAgICAgdmlydHVhbCB2b2lkIHBhaW50SW5z
cGVjdG9yT3ZlcmxheShHcmFwaGljc0NvbnRleHQmKSA9IDA7CisgICAgfTsKKworICAgIHN0YXRp
YyBQYXNzT3duUHRyPEluc3BlY3Rvck92ZXJsYXk+IGNyZWF0ZShCbGFja0JlcnJ5OjpXZWJLaXQ6
OldlYlBhZ2VQcml2YXRlKiwgSW5zcGVjdG9yT3ZlcmxheUNsaWVudCopOworCisgICAgfkluc3Bl
Y3Rvck92ZXJsYXkoKTsKKworICAgIHZvaWQgc2V0Q2xpZW50KEluc3BlY3Rvck92ZXJsYXlDbGll
bnQqIGNsaWVudCkgeyBtX2NsaWVudCA9IGNsaWVudDsgfQorCisgICAgdm9pZCBjbGVhcigpOwor
ICAgIHZvaWQgdXBkYXRlKCk7CisgICAgdm9pZCBwYWludFdlYkZyYW1lKEdyYXBoaWNzQ29udGV4
dCYpOworCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgIHZpcnR1YWwgdm9p
ZCBub3RpZnlBbmltYXRpb25TdGFydGVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBkb3VibGUgdGlt
ZSkgeyB9CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeVN5bmNSZXF1aXJlZChjb25zdCBHcmFwaGlj
c0xheWVyKik7CisgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NM
YXllciosIEdyYXBoaWNzQ29udGV4dCYsIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25z
dCBJbnRSZWN0JiBpbkNsaXApOworICAgIHZpcnR1YWwgYm9vbCBzaG93RGVidWdCb3JkZXJzKGNv
bnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvd1JlcGFpbnRD
b3VudGVyKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdDsKKworICAgIHZpcnR1YWwgYm9vbCBj
b250ZW50c1Zpc2libGUoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIGNvbnN0IFdlYkNv
cmU6OkludFJlY3QmIGNvbnRlbnRSZWN0KSBjb25zdDsKKyNlbmRpZgorCitwcml2YXRlOgorICAg
IEluc3BlY3Rvck92ZXJsYXkoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlUHJpdmF0ZSosIElu
c3BlY3Rvck92ZXJsYXlDbGllbnQqKTsKKyAgICB2b2lkIGludmFsaWRhdGVXZWJGcmFtZSgpOwor
CisgICAgQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlUHJpdmF0ZSogbV93ZWJQYWdlOworICAg
IEluc3BlY3Rvck92ZXJsYXlDbGllbnQqIG1fY2xpZW50OworICAgIE93blB0cjxCbGFja0JlcnJ5
OjpXZWJLaXQ6OldlYk92ZXJsYXk+IG1fb3ZlcmxheTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworCisjZW5kaWYgLyogSW5zcGVjdG9yT3ZlcmxheV9oICovCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>144897</attachid>
            <date>2012-05-30 12:36:30 -0700</date>
            <delta_ts>2012-05-30 13:35:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81001-20120530153705.patch</filename>
            <type>text/plain</type>
            <size>19167</size>
            <attacher name="Konrad Piascik">kpiascik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE4ODg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDZjM2IzMWZlNmRiZGFhODQx
NTk2ODNmNTYzM2ZjMTQ0YTcxZTFkYzYuLjFlZGU4OWQyNDgzMWVmNDNkYWJjMDlkZmI1ZTljYzI2
MDMwMTFmNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMDUtMzAgIEtvbnJhZCBQ
aWFzY2lrICA8a3BpYXNjaWtAcmltLmNvbT4KKworICAgICAgICBbQmxhY2tCZXJyeV0gQWRkIGFu
IEFjY2VsZXJhdGVkIENvbXBvc2l0aW5nIGxheWVyIGZvciBXZWIgSW5zcGVjdG9yIERPTSBoaWdo
bGlnaHQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04
MTAwMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAg
ICAgICAgQWRkZWQgbmV3IEluc3BlY3Rvck92ZXJsYXkgY2xhc3MKKworICAgICAgICAqIFBsYXRm
b3JtQmxhY2tCZXJyeS5jbWFrZToKKwogMjAxMi0wNS0yOSAgQXJ2aWQgTmlsc3NvbiAgPGFuaWxz
c29uQHJpbS5jb20+CiAKICAgICAgICAgW0JsYWNrQmVycnldIFdlYktpdC1zaWRlIGltcGxlbWVu
dGF0aW9uIG9mIFNlbGVjdGlvbk92ZXJsYXkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCmlu
ZGV4IDI2M2YwZjU0Y2M4OTlkYmIyNDcyZTljNGNlNmNjNjdkZTQ3NGJhOTcuLjRjM2NlMjVhZTE2
MTAyN2VlNzFjYzIzNGI3ZjljYWFlNWM5YjYxNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDEyLTA1LTMwICBLb25yYWQgUGlhc2NpayAgPGtwaWFz
Y2lrQHJpbS5jb20+CisKKyAgICAgICAgW0JsYWNrQmVycnldIEFkZCBhbiBBY2NlbGVyYXRlZCBD
b21wb3NpdGluZyBsYXllciBmb3IgV2ViIEluc3BlY3RvciBET00gaGlnaGxpZ2h0LgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODEwMDEKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIEltcGxlbWVu
dGVkIEluc3BlY3Rvck92ZXJsYXkgdXNpbmcgV2ViT3ZlcmxheUFQSS4KKworICAgICAgICAqIEFw
aS9CYWNraW5nU3RvcmUuY3BwOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpCYWNraW5n
U3RvcmVQcml2YXRlOjpyZW5kZXJDb250ZW50cyk6CisgICAgICAgICogQXBpL1dlYlBhZ2UuY3Bw
OgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlUHJpdmF0ZTo6dXBkYXRlRGVs
ZWdhdGVkT3ZlcmxheXMpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlUHJp
dmF0ZTo6Y29tbWl0Um9vdExheWVySWZOZWVkZWQpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2Vi
S2l0OjpXZWJQYWdlUHJpdmF0ZTo6c2V0SW5zcGVjdG9yT3ZlcmxheUNsaWVudCk6CisgICAgICAg
IChXZWJLaXQpOgorICAgICAgICAqIEFwaS9XZWJQYWdlX3AuaDoKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoV2ViUGFnZVByaXZhdGUpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0lu
c3BlY3RvckNsaWVudEJsYWNrQmVycnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
Q2xpZW50QmxhY2tCZXJyeTo6aGlnaGxpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckNsaWVudEJsYWNrQmVycnk6OmhpZGVIaWdobGlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yQ2xpZW50QmxhY2tCZXJyeTo6cGFpbnRJbnNwZWN0b3JPdmVybGF5KToKKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEJsYWNr
QmVycnkuaDoKKyAgICAgICAgKEluc3BlY3RvckNsaWVudEJsYWNrQmVycnkpOgorICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0luc3BlY3Rvck92ZXJsYXkuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yT3ZlcmxheTo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvck92ZXJsYXk6Okluc3BlY3Rvck92ZXJsYXkpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yT3ZlcmxheTo6bm90aWZ5U3luY1JlcXVpcmVkKToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvck92ZXJsYXk6OnBhaW50Q29udGVudHMpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yT3ZlcmxheTo6c2hvd0RlYnVnQm9yZGVycyk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JPdmVybGF5OjpzaG93UmVwYWludENvdW50ZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yT3ZlcmxheTo6Y29udGVudHNWaXNpYmxlKToKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3Rvck92ZXJsYXk6On5JbnNwZWN0b3JPdmVybGF5KToKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3Rvck92ZXJsYXk6OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3Rvck92ZXJsYXk6OnVwZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JPdmVy
bGF5OjpwYWludFdlYkZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvck92ZXJsYXk6
OmludmFsaWRhdGVXZWJGcmFtZSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9y
T3ZlcmxheS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKEluc3BlY3Rvck92ZXJsYXkpOgorICAgICAgICAoSW5zcGVjdG9yT3ZlcmxheUNs
aWVudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JPdmVybGF5OjpzZXRDbGllbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yT3ZlcmxheTo6bm90aWZ5QW5pbWF0aW9uU3RhcnRl
ZCk6CisKIDIwMTItMDUtMjkgIEFydmlkIE5pbHNzb24gIDxhbmlsc3NvbkByaW0uY29tPgogCiAg
ICAgICAgIFtCbGFja0JlcnJ5XSBNYWtlIERlZmF1bHRUYXBIaWdobGlnaHQgdXNlIHRoZSBuZXcg
V2ViT3ZlcmxheSBBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1CbGFja0Jl
cnJ5LmNtYWtlIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2UKaW5kZXgg
YTViYTRjNGVlYTY0MmZkZjM1YWZmYzA2MGUzMzc0YTJmYzk4MzQ0YS4uYmM2MTlmMjlhMGEzMDIw
MTA0NjgzMWE5OGM5OGRiMDU4OTQ0YTIyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0
Zm9ybUJsYWNrQmVycnkuY21ha2UKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUJsYWNrQmVy
cnkuY21ha2UKQEAgLTc4LDYgKzc4LDcgQEAgTElTVChBUFBFTkQgV2ViS2l0X1NPVVJDRVMKICAg
ICBibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0dlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudEJs
YWNrQmVycnkuY3BwCiAgICAgYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9JY29uRGF0YWJhc2VD
bGllbnRCbGFja0JlcnJ5LmNwcAogICAgIGJsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvSW5zcGVj
dG9yQ2xpZW50QmxhY2tCZXJyeS5jcHAKKyAgICBibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0lu
c3BlY3Rvck92ZXJsYXkuY3BwCiAgICAgYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9KYXZhU2Ny
aXB0RGVidWdnZXJCbGFja0JlcnJ5LmNwcAogICAgIGJsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQv
Tm90aWZpY2F0aW9uUHJlc2VudGVySW1wbC5jcHAKICAgICBibGFja2JlcnJ5L1dlYkNvcmVTdXBw
b3J0L1ZpYnJhdGlvbkNsaWVudEJsYWNrQmVycnkuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvQXBpL0JhY2tpbmdTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvQXBpL0JhY2tpbmdTdG9yZS5jcHAKaW5kZXggNDZmMmMxMTNkNWNiOWIxMDdhMDJmM2Jk
Mzc5NmVkY2RiNzAwZDgxOC4uNjE5YzQzOTY4MTNlMTZhYjZhYmFhYWE2MzVlMDlhYjI5MzA4ZTI1
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9CYWNraW5nU3RvcmUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvQmFja2luZ1N0b3JlLmNwcApA
QCAtMjQ0Myw3ICsyNDQzLDggQEAgdm9pZCBCYWNraW5nU3RvcmVQcml2YXRlOjpyZW5kZXJDb250
ZW50cyhCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6R3JhcGhpY3M6OkJ1ZmZlcioKICAgICAgICAgaWYg
KG1fd2ViUGFnZS0+ZC0+bV9wYWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCktPmVuYWJsZWQoKSkg
ewogICAgICAgICAgICAgV2ViQ29yZTo6SW50UG9pbnQgc2Nyb2xsUG9zaXRpb24gPSBtX2NsaWVu
dC0+ZnJhbWUoKS0+dmlldygpLT5zY3JvbGxQb3NpdGlvbigpOwogICAgICAgICAgICAgZ3JhcGhp
Y3NDb250ZXh0LnRyYW5zbGF0ZShzY3JvbGxQb3NpdGlvbi54KCksIHNjcm9sbFBvc2l0aW9uLnko
KSk7Ci0gICAgICAgICAgICBtX3dlYlBhZ2UtPmQtPm1fcGFnZS0+aW5zcGVjdG9yQ29udHJvbGxl
cigpLT5kcmF3SGlnaGxpZ2h0KGdyYXBoaWNzQ29udGV4dCk7CisgICAgICAgICAgICBpZiAobV93
ZWJQYWdlLT5kLT5tX2luc3BlY3Rvck92ZXJsYXkpCisgICAgICAgICAgICAgICAgbV93ZWJQYWdl
LT5kLT5tX2luc3BlY3Rvck92ZXJsYXktPnBhaW50V2ViRnJhbWUoZ3JhcGhpY3NDb250ZXh0KTsK
ICAgICAgICAgfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9BcGkvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2Uu
Y3BwCmluZGV4IDk3MmIzNTg0ODM0ODA5MWQxMGJlMDVlZDU3OGQzYjhiNjYwODQzMDguLjVkZTJl
NTc2MmE4OTRiMmI4ZjA5ZDE2NGE3MzFkNGRiY2Y5YWY0MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L0FwaS9XZWJQYWdlLmNwcApAQCAtNzQsNiArNzQsNyBAQAogI2luY2x1ZGUgIkluc3Bl
Y3RvckJhY2tlbmREaXNwYXRjaGVyLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yQ2xpZW50QmxhY2tC
ZXJyeS5oIgogI2luY2x1ZGUgIkluc3BlY3RvckNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJJbnNw
ZWN0b3JPdmVybGF5LmgiCiAjaW5jbHVkZSAiSmF2YVNjcmlwdERlYnVnZ2VyQmxhY2tCZXJyeS5o
IgogI2luY2x1ZGUgIkxheWVyV2ViS2l0VGhyZWFkLmgiCiAjaW5jbHVkZSAiTG9jYWxGaWxlU3lz
dGVtLmgiCkBAIC0zMjQxLDYgKzMyNDIsOCBAQCB2b2lkIFdlYlBhZ2VQcml2YXRlOjp1cGRhdGVE
ZWxlZ2F0ZWRPdmVybGF5cyhib29sIGRpc3BhdGNoZWQpCiAgICAgICAgIC8vIE11c3QgYmUgY2Fs
bGVkIG9uIHRoZSBXZWJLaXQgdGhyZWFkLgogICAgICAgICBpZiAobV9zZWxlY3Rpb25IYW5kbGVy
LT5pc1NlbGVjdGlvbkFjdGl2ZSgpKQogICAgICAgICAgICAgbV9zZWxlY3Rpb25IYW5kbGVyLT5z
ZWxlY3Rpb25Qb3NpdGlvbkNoYW5nZWQodHJ1ZSAvKiB2aXN1YWxDaGFuZ2VPbmx5ICovKTsKKyAg
ICAgICAgaWYgKG1faW5zcGVjdG9yT3ZlcmxheSkKKyAgICAgICAgICAgIG1faW5zcGVjdG9yT3Zl
cmxheS0+dXBkYXRlKCk7CiAKICAgICB9IGVsc2UgaWYgKG1fc2VsZWN0aW9uSGFuZGxlci0+aXNT
ZWxlY3Rpb25BY3RpdmUoKSkgewogICAgICAgICAvLyBEb24ndCBib3RoZXIgZGlzcGF0Y2hpbmcg
dG8gd2Via2l0IHRocmVhZCBpZiBzZWxlY3Rpb24gYW5kIHRhcCBoaWdobGlnaHQgYXJlIG5vdCBh
Y3RpdmUuCkBAIC01Nzk5LDYgKzU4MDIsNyBAQCBib29sIFdlYlBhZ2VQcml2YXRlOjpjb21taXRS
b290TGF5ZXJJZk5lZWRlZCgpCiAgICAgZG91YmxlIHNjYWxlID0gY3VycmVudFNjYWxlKCk7CiAg
ICAgaWYgKG1fZnJhbWVMYXllcnMgJiYgbV9mcmFtZUxheWVycy0+aGFzTGF5ZXIoKSkKICAgICAg
ICAgbV9mcmFtZUxheWVycy0+Y29tbWl0T25XZWJLaXRUaHJlYWQoc2NhbGUpOworCiAgICAgdXBk
YXRlRGVsZWdhdGVkT3ZlcmxheXMoKTsKICAgICBpZiAobV9vdmVybGF5TGF5ZXIpCiAgICAgICAg
IG1fb3ZlcmxheUxheWVyLT5wbGF0Zm9ybUxheWVyKCktPmNvbW1pdE9uV2ViS2l0VGhyZWFkKHNj
YWxlKTsKQEAgLTYzMjQsNSArNjMyOCwyNCBAQCB2b2lkIFdlYlBhZ2VQcml2YXRlOjpzZXRQYXJl
bnRQb3B1cChQYWdlUG9wdXBCbGFja0JlcnJ5KiB3ZWJQb3B1cCkKICAgICBtX3BhcmVudFBvcHVw
ID0gd2ViUG9wdXA7CiB9CiAKK3ZvaWQgV2ViUGFnZVByaXZhdGU6OnNldEluc3BlY3Rvck92ZXJs
YXlDbGllbnQoV2ViQ29yZTo6SW5zcGVjdG9yT3ZlcmxheTo6SW5zcGVjdG9yT3ZlcmxheUNsaWVu
dCogaW5zcGVjdG9yT3ZlcmxheUNsaWVudCkKK3sKKyAgICBpZiAoaW5zcGVjdG9yT3ZlcmxheUNs
aWVudCkgeworICAgICAgICBpZiAoIW1faW5zcGVjdG9yT3ZlcmxheSkKKyAgICAgICAgICAgIG1f
aW5zcGVjdG9yT3ZlcmxheSA9IFdlYkNvcmU6Okluc3BlY3Rvck92ZXJsYXk6OmNyZWF0ZSh0aGlz
LCBpbnNwZWN0b3JPdmVybGF5Q2xpZW50KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbV9p
bnNwZWN0b3JPdmVybGF5LT5zZXRDbGllbnQoaW5zcGVjdG9yT3ZlcmxheUNsaWVudCk7CisgICAg
ICAgIG1faW5zcGVjdG9yT3ZlcmxheS0+dXBkYXRlKCk7CisgICAgICAgIHNjaGVkdWxlUm9vdExh
eWVyQ29tbWl0KCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKG1faW5zcGVjdG9yT3Zlcmxh
eSkgeworICAgICAgICAgICAgbV9pbnNwZWN0b3JPdmVybGF5LT5jbGVhcigpOworICAgICAgICAg
ICAgbV9pbnNwZWN0b3JPdmVybGF5ID0gbnVsbHB0cjsKKyAgICAgICAgICAgIHNjaGVkdWxlUm9v
dExheWVyQ29tbWl0KCk7CisgICAgICAgIH0KKyAgICB9CisKK30KKwogfQogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlX3AuaCBiL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZV9wLmgKaW5kZXggYThiMWExYTA1MjBlNjdjYmQ5ZDUw
YTE1ZTYyNjI2ZTYxMjBjZDQ3MC4uMGIyYjE4NGVjMmFkODU3OWUxNmE5ZDZkNTAyNTM1NWI3MmY3
OWVhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlX3Au
aAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2VfcC5oCkBAIC0yMCw2
ICsyMCw3IEBACiAjZGVmaW5lIFdlYlBhZ2VfcF9oCiAKICNpbmNsdWRlICJDaHJvbWVDbGllbnQu
aCIKKyNpbmNsdWRlICJJbnNwZWN0b3JPdmVybGF5LmgiCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQogI2luY2x1ZGUgIkdMRVMyQ29udGV4dC5oIgogI2luY2x1ZGUgIkxheWVyUmVu
ZGVyZXIuaCIKQEAgLTQyLDYgKzQzLDcgQEAgY2xhc3MgRE9NV3JhcHBlcldvcmxkOwogY2xhc3Mg
RG9jdW1lbnQ7CiBjbGFzcyBGcmFtZTsKIGNsYXNzIEdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVu
dEJsYWNrQmVycnk7CitjbGFzcyBHcmFwaGljc0xheWVyQmxhY2tCZXJyeTsKIGNsYXNzIEphdmFT
Y3JpcHREZWJ1Z2dlckJsYWNrQmVycnk7CiBjbGFzcyBMYXllcldlYktpdFRocmVhZDsKIGNsYXNz
IE5vZGU7CkBAIC00MjUsNiArNDI3LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBkZWZlcnJlZFRh
c2tzVGltZXJGaXJlZChXZWJDb3JlOjpUaW1lcjxXZWJQYWdlUHJpdmF0ZT4qKTsKIAorICAgIHZv
aWQgc2V0SW5zcGVjdG9yT3ZlcmxheUNsaWVudChXZWJDb3JlOjpJbnNwZWN0b3JPdmVybGF5OjpJ
bnNwZWN0b3JPdmVybGF5Q2xpZW50Kik7CisKICAgICBXZWJQYWdlKiBtX3dlYlBhZ2U7CiAgICAg
V2ViUGFnZUNsaWVudCogbV9jbGllbnQ7CiAgICAgV2ViQ29yZTo6UGFnZSogbV9wYWdlOwpAQCAt
NTQ4LDYgKzU1Miw3IEBAIHB1YmxpYzoKICAgICBSZWZQdHI8V2ViQ29yZTo6RE9NV3JhcHBlcldv
cmxkPiBtX2lzb2xhdGVkV29ybGQ7CiAgICAgYm9vbCBtX2hhc0luUmVnaW9uU2Nyb2xsYWJsZUFy
ZWFzOwogICAgIGJvb2wgbV91cGRhdGVEZWxlZ2F0ZWRPdmVybGF5c0Rpc3BhdGNoZWQ7CisgICAg
T3duUHRyPFdlYkNvcmU6Okluc3BlY3Rvck92ZXJsYXk+IG1faW5zcGVjdG9yT3ZlcmxheTsKIAog
ICAgIC8vIFRoZXJlIGlzIG5vIG5lZWQgdG8gaW5pdGlhbGl6ZSB0aGUgZm9sbG93aW5nIG1lbWJl
cnMgaW4gV2ViUGFnZVByaXZhdGUncyBjb25zdHJ1Y3RvciwKICAgICAvLyBiZWNhdXNlIHRoZXkg
YXJlIG9ubHkgdXNlZCBieSBXZWJQYWdlVGFza3MgYW5kIHRoZSB0YXNrcyB3aWxsIGluaXRpYWxp
emUgdGhlbSB3aGVuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29y
ZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50QmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50QmxhY2tCZXJyeS5jcHAKaW5k
ZXggZDk2ODhmZjZhMDliOWQ2NWFkYWJhODgwMWVhNmVkNmNiNzliODUyOS4uMWRmNzc2NDYyMzQ2
YzYzYzhlYzllN2U0OWM5MjBjNWRhYjdlMjFmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEJsYWNrQmVycnkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGll
bnRCbGFja0JlcnJ5LmNwcApAQCAtMjIsNyArMjIsMTAgQEAKIAogI2luY2x1ZGUgIkJhY2tpbmdT
dG9yZS5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0Lmgi
CisjaW5jbHVkZSAiSW5zcGVjdG9yQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVu
dGVkLmgiCisjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgogI2lu
Y2x1ZGUgIldlYlBhZ2VDbGllbnQuaCIKICNpbmNsdWRlICJXZWJQYWdlX3AuaCIKQEAgLTQyLDE3
ICs0NSwxNiBAQCB2b2lkIEluc3BlY3RvckNsaWVudEJsYWNrQmVycnk6Omluc3BlY3RvckRlc3Ry
b3llZCgpCiAKIHZvaWQgSW5zcGVjdG9yQ2xpZW50QmxhY2tCZXJyeTo6aGlnaGxpZ2h0KCkKIHsK
LSAgICBoaWRlSGlnaGxpZ2h0KCk7CisgICAgbV93ZWJQYWdlUHJpdmF0ZS0+c2V0SW5zcGVjdG9y
T3ZlcmxheUNsaWVudCh0aGlzKTsKKyAgICBpZiAoIW1fd2ViUGFnZVByaXZhdGUtPmlzQWNjZWxl
cmF0ZWRDb21wb3NpdGluZ0FjdGl2ZSgpKQorICAgICAgICBtX3dlYlBhZ2VQcml2YXRlLT5tYWlu
RnJhbWUoKS0+ZG9jdW1lbnQoKS0+ZG9jdW1lbnRFbGVtZW50KCktPnJlbmRlcmVyKCktPnJlcGFp
bnQodHJ1ZSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yQ2xpZW50QmxhY2tCZXJyeTo6aGlkZUhpZ2hs
aWdodCgpCiB7Ci0gICAgaWYgKCFtX3dlYlBhZ2VQcml2YXRlLT5tYWluRnJhbWUoKSB8fCAhbV93
ZWJQYWdlUHJpdmF0ZS0+bWFpbkZyYW1lKCktPmRvY3VtZW50KCkgfHwgIW1fd2ViUGFnZVByaXZh
dGUtPm1haW5GcmFtZSgpLT5kb2N1bWVudCgpLT5kb2N1bWVudEVsZW1lbnQoKQotICAgICAgICB8
fCAhbV93ZWJQYWdlUHJpdmF0ZS0+bWFpbkZyYW1lKCktPmRvY3VtZW50KCktPmRvY3VtZW50RWxl
bWVudCgpLT5yZW5kZXJlcigpKQotICAgICAgICByZXR1cm47Ci0KLSAgICAvLyBGSVhNRTogUG90
ZW50aWFsbHkgc2xvdyBoYWNrLCBidXQgaW52YWxpZGF0aW5nIGV2ZXJ5dGhpbmcgc2hvdWxkIHdv
cmsgc2luY2UgdGhlIGFjdHVhbCBoaWdobGlnaHQgaXMgZHJhd24gYnkgQmFja2luZ1N0b3JlUHJp
dmF0ZTo6cmVuZGVyQ29udGVudHMoKS4KLSAgICBtX3dlYlBhZ2VQcml2YXRlLT5tYWluRnJhbWUo
KS0+ZG9jdW1lbnQoKS0+ZG9jdW1lbnRFbGVtZW50KCktPnJlbmRlcmVyKCktPnJlcGFpbnQodHJ1
ZSk7CisgICAgbV93ZWJQYWdlUHJpdmF0ZS0+c2V0SW5zcGVjdG9yT3ZlcmxheUNsaWVudCgwKTsK
KyAgICBpZiAoIW1fd2ViUGFnZVByaXZhdGUtPmlzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2
ZSgpKQorICAgICAgICBtX3dlYlBhZ2VQcml2YXRlLT5tYWluRnJhbWUoKS0+ZG9jdW1lbnQoKS0+
ZG9jdW1lbnRFbGVtZW50KCktPnJlbmRlcmVyKCktPnJlcGFpbnQodHJ1ZSk7CiB9CiAKIHZvaWQg
SW5zcGVjdG9yQ2xpZW50QmxhY2tCZXJyeTo6b3Blbkluc3BlY3RvckZyb250ZW5kKEluc3BlY3Rv
ckNvbnRyb2xsZXIqKQpAQCAtOTIsNCArOTQsMTEgQEAgdm9pZCBJbnNwZWN0b3JDbGllbnRCbGFj
a0JlcnJ5Ojp1cGRhdGVJbnNwZWN0b3JTdGF0ZUNvb2tpZShjb25zdCBTdHJpbmcmIGNvb2tpZSkK
ICAgICBub3RJbXBsZW1lbnRlZCgpOwogfTsKIAordm9pZCBJbnNwZWN0b3JDbGllbnRCbGFja0Jl
cnJ5OjpwYWludEluc3BlY3Rvck92ZXJsYXkoR3JhcGhpY3NDb250ZXh0JiBnYykKK3sKKyAgICBJ
bnNwZWN0b3JDb250cm9sbGVyKiBpbnNwZWN0b3JDb250cm9sbGVyID0gbV93ZWJQYWdlUHJpdmF0
ZS0+bV9wYWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCk7CisgICAgaWYgKGluc3BlY3RvckNvbnRy
b2xsZXIpCisgICAgICAgIGluc3BlY3RvckNvbnRyb2xsZXItPmRyYXdIaWdobGlnaHQoZ2MpOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50QmxhY2tCZXJyeS5oIGIvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEJsYWNr
QmVycnkuaAppbmRleCBhNmE0MDRhN2E3MTM5YWIxODM1YTVmYzg3NmI1ZDhmYjhiNjYxNDI3Li4z
ZjZmMjA3ZGQ0MWM4MTViMmQzYTFhNmJhOGVjYThkZWU5ZGNlOWYwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50QmxhY2tC
ZXJyeS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9JbnNw
ZWN0b3JDbGllbnRCbGFja0JlcnJ5LmgKQEAgLTIxLDYgKzIxLDcgQEAKICNkZWZpbmUgSW5zcGVj
dG9yQ2xpZW50QmxhY2tCZXJyeV9oCiAKICNpbmNsdWRlICJJbnNwZWN0b3JDbGllbnQuaCIKKyNp
bmNsdWRlICJJbnNwZWN0b3JPdmVybGF5LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIK
ICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogCkBAIC0zMiw3ICszMyw3IEBAIGNsYXNzIFdlYlBh
Z2VQcml2YXRlOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEluc3BlY3RvckNsaWVu
dEJsYWNrQmVycnkgOiBwdWJsaWMgSW5zcGVjdG9yQ2xpZW50IHsKK2NsYXNzIEluc3BlY3RvckNs
aWVudEJsYWNrQmVycnkgOiBwdWJsaWMgSW5zcGVjdG9yQ2xpZW50LCBwdWJsaWMgSW5zcGVjdG9y
T3ZlcmxheTo6SW5zcGVjdG9yT3ZlcmxheUNsaWVudCB7CiBwdWJsaWM6CiAgICAgSW5zcGVjdG9y
Q2xpZW50QmxhY2tCZXJyeShCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQcml2YXRlKik7CiAg
ICAgdmlydHVhbCB2b2lkIGluc3BlY3RvckRlc3Ryb3llZCgpOwpAQCAtNTAsNiArNTEsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCBib29sIGNhbkNsZWFyQnJvd3NlckNhY2hlKCkgeyByZXR1cm4g
dHJ1ZTsgfQogICAgIHZpcnR1YWwgdm9pZCBjbGVhckJyb3dzZXJDb29raWVzKCk7CiAgICAgdmly
dHVhbCBib29sIGNhbkNsZWFyQnJvd3NlckNvb2tpZXMoKSB7IHJldHVybiB0cnVlOyB9CisgICAg
dmlydHVhbCB2b2lkIHBhaW50SW5zcGVjdG9yT3ZlcmxheShXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQmKTsKIAogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVJbnNwZWN0b3JTdGF0ZUNvb2tpZShjb25z
dCBTdHJpbmcmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNv
cmVTdXBwb3J0L0luc3BlY3Rvck92ZXJsYXkuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L1dlYkNvcmVTdXBwb3J0L0luc3BlY3Rvck92ZXJsYXkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM1NjhmMTM0
MTlhZTE0NTRmYTI5ZjFkODk3ZmQ3MjdmZTU1ZDI1MGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yT3ZlcmxheS5jcHAK
QEAgLTAsMCArMSwxMjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgUmVzZWFyY2ggSW4g
TW90aW9uIExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwor
ICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
KyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgor
ICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5l
cmFsIFB1YmxpYworICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3
cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAiSW5zcGVjdG9yT3ZlcmxheS5oIgor
CisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVZpZXcuaCIKKyNpbmNsdWRlICJH
cmFwaGljc0NvbnRleHQuaCIKKyNpbmNsdWRlICJHcmFwaGljc0xheWVyLmgiCisjaW5jbHVkZSAi
UGFnZS5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSAiV2ViUGFnZV9wLmgiCisK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXNzT3duUHRyPEluc3BlY3Rvck92ZXJsYXk+IElu
c3BlY3Rvck92ZXJsYXk6OmNyZWF0ZShCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQcml2YXRl
KiBwYWdlLCBJbnNwZWN0b3JPdmVybGF5Q2xpZW50KiBjbGllbnQpCit7CisgICAgcmV0dXJuIGFk
b3B0UHRyKG5ldyBJbnNwZWN0b3JPdmVybGF5KHBhZ2UsIGNsaWVudCkpOworfQorCitJbnNwZWN0
b3JPdmVybGF5OjpJbnNwZWN0b3JPdmVybGF5KEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZVBy
aXZhdGUqIHBhZ2UsIEluc3BlY3Rvck92ZXJsYXlDbGllbnQqIGNsaWVudCkKKyAgICA6IG1fd2Vi
UGFnZShwYWdlKQorICAgICwgbV9jbGllbnQoY2xpZW50KQoreworfQorCisjaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQordm9pZCBJbnNwZWN0b3JPdmVybGF5Ojpub3RpZnlTeW5jUmVx
dWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopCit7CisgICAgbV93ZWJQYWdlLT5zY2hlZHVsZVJv
b3RMYXllckNvbW1pdCgpOworfQorCit2b2lkIEluc3BlY3Rvck92ZXJsYXk6OnBhaW50Q29udGVu
dHMoY29uc3QgR3JhcGhpY3NMYXllciosIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgR3JhcGhp
Y3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IEludFJlY3QmIGluQ2xpcCkKK3sKKyAgICBjb250
ZXh0LnNhdmUoKTsKKyAgICBJbnRQb2ludCBzY3JvbGxQb3NpdGlvbiA9IG1fd2ViUGFnZS0+Zm9j
dXNlZE9yTWFpbkZyYW1lKCktPnZpZXcoKS0+c2Nyb2xsUG9zaXRpb24oKTsKKyAgICBjb250ZXh0
LnRyYW5zbGF0ZShzY3JvbGxQb3NpdGlvbi54KCksIHNjcm9sbFBvc2l0aW9uLnkoKSk7CisgICAg
bV9jbGllbnQtPnBhaW50SW5zcGVjdG9yT3ZlcmxheShjb250ZXh0KTsKKyAgICBjb250ZXh0LnJl
c3RvcmUoKTsKK30KKworYm9vbCBJbnNwZWN0b3JPdmVybGF5OjpzaG93RGVidWdCb3JkZXJzKGNv
bnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdAoreworICAgIHJldHVybiBtX3dlYlBhZ2UtPm1fcGFn
ZS0+c2V0dGluZ3MoKS0+c2hvd0RlYnVnQm9yZGVycygpOworfQorCitib29sIEluc3BlY3Rvck92
ZXJsYXk6OnNob3dSZXBhaW50Q291bnRlcihjb25zdCBHcmFwaGljc0xheWVyKikgY29uc3QKK3sK
KyAgICByZXR1cm4gbV93ZWJQYWdlLT5tX3BhZ2UtPnNldHRpbmdzKCktPnNob3dSZXBhaW50Q291
bnRlcigpOworfQorCitib29sIEluc3BlY3Rvck92ZXJsYXk6OmNvbnRlbnRzVmlzaWJsZShjb25z
dCBHcmFwaGljc0xheWVyKiwgY29uc3QgSW50UmVjdCYgY29udGVudFJlY3QpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIHRydWU7Cit9CisjZW5kaWYKKworSW5zcGVjdG9yT3ZlcmxheTo6fkluc3BlY3Rv
ck92ZXJsYXkoKSB7IH0KKwordm9pZCBJbnNwZWN0b3JPdmVybGF5OjpjbGVhcigpCit7CisgICAg
aW52YWxpZGF0ZVdlYkZyYW1lKCk7CisKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
CisgICAgaWYgKG1fb3ZlcmxheSkgeworICAgICAgICBtX292ZXJsYXktPnJlbW92ZUZyb21QYXJl
bnQoKTsKKyAgICAgICAgbV9vdmVybGF5ID0gbnVsbHB0cjsKKyAgICB9CisjZW5kaWYKK30KKwor
dm9pZCBJbnNwZWN0b3JPdmVybGF5Ojp1cGRhdGUoKQoreworICAgIGludmFsaWRhdGVXZWJGcmFt
ZSgpOworCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgIGlmICghbV9vdmVy
bGF5KSB7CisgICAgICAgIG1fb3ZlcmxheSA9IGFkb3B0UHRyKG5ldyBCbGFja0JlcnJ5OjpXZWJL
aXQ6OldlYk92ZXJsYXkodGhpcykpOworICAgICAgICBjb25zdCBJbnRTaXplIHNpemUgPSBtX3dl
YlBhZ2UtPnZpZXdwb3J0U2l6ZSgpOworICAgICAgICBtX292ZXJsYXktPnNldFNpemUoRmxvYXRT
aXplKHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSkpOworICAgICAgICBtX3dlYlBhZ2UtPm1f
d2ViUGFnZS0+YWRkT3ZlcmxheShtX292ZXJsYXkuZ2V0KCkpOworICAgIH0KKworICAgIG1fb3Zl
cmxheS0+c2V0RHJhd3NDb250ZW50KHRydWUpOworICAgIG1fb3ZlcmxheS0+c2V0T3BhY2l0eSgx
LjApOworICAgIG1fb3ZlcmxheS0+aW52YWxpZGF0ZSgpOworI2VuZGlmCit9CisKK3ZvaWQgSW5z
cGVjdG9yT3ZlcmxheTo6cGFpbnRXZWJGcmFtZShHcmFwaGljc0NvbnRleHQmIGdjKQoreworICAg
IGlmICghbV93ZWJQYWdlLT5pc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdBY3RpdmUoKSkKKyAgICAg
ICAgbV9jbGllbnQtPnBhaW50SW5zcGVjdG9yT3ZlcmxheShnYyk7Cit9CisKK3ZvaWQgSW5zcGVj
dG9yT3ZlcmxheTo6aW52YWxpZGF0ZVdlYkZyYW1lKCkKK3sKKyAgICAvLyBJbnNwZWN0b3JPdmVy
bGF5Q2xpZW50IGRvZXMgdGhlIGFjdHVhbCBwYWludGluZyBvZiB0aGUgb3ZlcmxheS4KKyAgICAv
LyBIZXJlIHdlIGp1c3QgbWFrZSBzdXJlIHRvIGludmFsaWRhdGUuCisgICAgaWYgKCFtX3dlYlBh
Z2UtPmlzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2ZSgpKSB7CisgICAgICAgIC8vIEZJWE1F
OiBhYmxlIHRvIGludmFsaWRhdGUgYSBzbWFsbGVyIHJlY3QuCisgICAgICAgIC8vIEZJWE1FOiBJ
cyBpdCBpbXBvcnRhbnQgdG8ganVzdCBpbnZhbGlkYXRlIGEgc21hbGxlciByZWN0IGdpdmVuIHRo
YXQKKyAgICAgICAgLy8gdGhpcyBpcyBub3Qgb24gYSBjcml0aWNhbCBjb2RlcGF0aD8gSW4gb3Jk
ZXIgdG8gZG8gc28sIHdlJ2QKKyAgICAgICAgLy8gaGF2ZSB0byB0YWtlIHNjcm9sbGluZyBpbnRv
IGFjY291bnQuCisgICAgICAgIGNvbnN0IEludFNpemUgc2l6ZSA9IG1fd2ViUGFnZS0+dmlld3Bv
cnRTaXplKCk7CisgICAgICAgIEludFJlY3QgZGFtYWdlZFJlY3QoMCwgMCwgc2l6ZS53aWR0aCgp
LCBzaXplLmhlaWdodCgpKTsKKyAgICB9Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JPdmVybGF5LmggYi9Tb3VyY2Uv
V2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yT3ZlcmxheS5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjdmOTFlMzU0MTJhM2QyNjBlZjYxMjcxMGUzZDEyZWZiYmY2ZTZkOTgKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvSW5zcGVj
dG9yT3ZlcmxheS5oCkBAIC0wLDAgKzEsNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIg
UmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5l
cmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor
ICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKKyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5j
LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMw
MSAgVVNBCisgKi8KKworI2lmbmRlZiBJbnNwZWN0b3JPdmVybGF5X2gKKyNkZWZpbmUgSW5zcGVj
dG9yT3ZlcmxheV9oCisKKyNpbmNsdWRlICJXZWJPdmVybGF5LmgiCisjaW5jbHVkZSA8R3JhcGhp
Y3NMYXllckNsaWVudC5oPgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYv
UGFzc093blB0ci5oPgorCituYW1lc3BhY2UgQmxhY2tCZXJyeSB7CituYW1lc3BhY2UgV2ViS2l0
IHsKK2NsYXNzIFdlYlBhZ2VQcml2YXRlOworfQorfQorCituYW1lc3BhY2UgV2ViQ29yZSB7Citj
bGFzcyBHcmFwaGljc0NvbnRleHQ7CitjbGFzcyBHcmFwaGljc0xheWVyOworCisKK2NsYXNzIElu
c3BlY3Rvck92ZXJsYXkgOiBwdWJsaWMgV2ViQ29yZTo6R3JhcGhpY3NMYXllckNsaWVudCB7Citw
dWJsaWM6CisgICAgY2xhc3MgSW5zcGVjdG9yT3ZlcmxheUNsaWVudCB7CisgICAgcHVibGljOgor
ICAgICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRJbnNwZWN0b3JPdmVybGF5KEdyYXBoaWNzQ29udGV4
dCYpID0gMDsKKyAgICB9OworCisgICAgc3RhdGljIFBhc3NPd25QdHI8SW5zcGVjdG9yT3Zlcmxh
eT4gY3JlYXRlKEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZVByaXZhdGUqLCBJbnNwZWN0b3JP
dmVybGF5Q2xpZW50Kik7CisKKyAgICB+SW5zcGVjdG9yT3ZlcmxheSgpOworCisgICAgdm9pZCBz
ZXRDbGllbnQoSW5zcGVjdG9yT3ZlcmxheUNsaWVudCogY2xpZW50KSB7IG1fY2xpZW50ID0gY2xp
ZW50OyB9CisKKyAgICB2b2lkIGNsZWFyKCk7CisgICAgdm9pZCB1cGRhdGUoKTsKKyAgICB2b2lk
IHBhaW50V2ViRnJhbWUoR3JhcGhpY3NDb250ZXh0Jik7CisKKyNpZiBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpCisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29u
c3QgR3JhcGhpY3NMYXllciosIGRvdWJsZSB0aW1lKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgbm90
aWZ5U3luY1JlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKTsKKyAgICB2aXJ0dWFsIHZvaWQg
cGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiwgR3JhcGhpY3NDb250ZXh0JiwgR3Jh
cGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IEludFJlY3QmIGluQ2xpcCk7CisgICAgdmly
dHVhbCBib29sIHNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgR3JhcGhpY3NMYXllciopIGNvbnN0Owor
ICAgIHZpcnR1YWwgYm9vbCBzaG93UmVwYWludENvdW50ZXIoY29uc3QgR3JhcGhpY3NMYXllciop
IGNvbnN0OworCisgICAgdmlydHVhbCBib29sIGNvbnRlbnRzVmlzaWJsZShjb25zdCBXZWJDb3Jl
OjpHcmFwaGljc0xheWVyKiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgY29udGVudFJlY3QpIGNv
bnN0OworI2VuZGlmCisKK3ByaXZhdGU6CisgICAgSW5zcGVjdG9yT3ZlcmxheShCbGFja0JlcnJ5
OjpXZWJLaXQ6OldlYlBhZ2VQcml2YXRlKiwgSW5zcGVjdG9yT3ZlcmxheUNsaWVudCopOworICAg
IHZvaWQgaW52YWxpZGF0ZVdlYkZyYW1lKCk7CisKKyAgICBCbGFja0JlcnJ5OjpXZWJLaXQ6Oldl
YlBhZ2VQcml2YXRlKiBtX3dlYlBhZ2U7CisgICAgSW5zcGVjdG9yT3ZlcmxheUNsaWVudCogbV9j
bGllbnQ7CisgICAgT3duUHRyPEJsYWNrQmVycnk6OldlYktpdDo6V2ViT3ZlcmxheT4gbV9vdmVy
bGF5OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisKKyNlbmRpZiAvKiBJbnNwZWN0
b3JPdmVybGF5X2ggKi8K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>144911</attachid>
            <date>2012-05-30 13:35:32 -0700</date>
            <delta_ts>2012-05-30 20:59:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81001-20120530163607.patch</filename>
            <type>text/plain</type>
            <size>19162</size>
            <attacher name="Konrad Piascik">kpiascik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE4ODg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDZjM2IzMWZlNmRiZGFhODQx
NTk2ODNmNTYzM2ZjMTQ0YTcxZTFkYzYuLmQ4MzNjM2M4OTlkODEyOGI4ZTZkZGI2NDljMWQxNjYy
ZWFmNzViODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMDUtMzAgIEtvbnJhZCBQ
aWFzY2lrICA8a3BpYXNjaWtAcmltLmNvbT4KKworICAgICAgICBbQmxhY2tCZXJyeV0gQWRkIGFu
IEFjY2VsZXJhdGVkIENvbXBvc2l0aW5nIGxheWVyIGZvciBXZWIgSW5zcGVjdG9yIERPTSBoaWdo
bGlnaHQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04
MTAwMQorCisgICAgICAgIFJldmlld2VkIGJ5IEFudG9uaW8gR29tZXMKKyAgICAgICAgCisgICAg
ICAgIEFkZGVkIG5ldyBJbnNwZWN0b3JPdmVybGF5IGNsYXNzCisKKyAgICAgICAgKiBQbGF0Zm9y
bUJsYWNrQmVycnkuY21ha2U6CisKIDIwMTItMDUtMjkgIEFydmlkIE5pbHNzb24gIDxhbmlsc3Nv
bkByaW0uY29tPgogCiAgICAgICAgIFtCbGFja0JlcnJ5XSBXZWJLaXQtc2lkZSBpbXBsZW1lbnRh
dGlvbiBvZiBTZWxlY3Rpb25PdmVybGF5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwppbmRl
eCAyNjNmMGY1NGNjODk5ZGJiMjQ3MmU5YzRjZTZjYzY3ZGU0NzRiYTk3Li5mZWNhMmZjMzkxMTk5
N2RhYWU0NTg3ZGU2OWY3ZGYzZDFiZWQ5YWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSw1MSBAQAorMjAxMi0wNS0zMCAgS29ucmFkIFBpYXNjaWsgIDxrcGlhc2Np
a0ByaW0uY29tPgorCisgICAgICAgIFtCbGFja0JlcnJ5XSBBZGQgYW4gQWNjZWxlcmF0ZWQgQ29t
cG9zaXRpbmcgbGF5ZXIgZm9yIFdlYiBJbnNwZWN0b3IgRE9NIGhpZ2hsaWdodC4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgxMDAxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgQW50b25pbyBHb21lcy4KKyAgICAgICAgCisgICAgICAgIEltcGxlbWVudGVk
IEluc3BlY3Rvck92ZXJsYXkgdXNpbmcgV2ViT3ZlcmxheUFQSS4KKworICAgICAgICAqIEFwaS9C
YWNraW5nU3RvcmUuY3BwOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpCYWNraW5nU3Rv
cmVQcml2YXRlOjpyZW5kZXJDb250ZW50cyk6CisgICAgICAgICogQXBpL1dlYlBhZ2UuY3BwOgor
ICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlUHJpdmF0ZTo6dXBkYXRlRGVsZWdh
dGVkT3ZlcmxheXMpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlUHJpdmF0
ZTo6Y29tbWl0Um9vdExheWVySWZOZWVkZWQpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0
OjpXZWJQYWdlUHJpdmF0ZTo6c2V0SW5zcGVjdG9yT3ZlcmxheUNsaWVudCk6CisgICAgICAgIChX
ZWJLaXQpOgorICAgICAgICAqIEFwaS9XZWJQYWdlX3AuaDoKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoV2ViUGFnZVByaXZhdGUpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0luc3Bl
Y3RvckNsaWVudEJsYWNrQmVycnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2xp
ZW50QmxhY2tCZXJyeTo6aGlnaGxpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNs
aWVudEJsYWNrQmVycnk6OmhpZGVIaWdobGlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yQ2xpZW50QmxhY2tCZXJyeTo6cGFpbnRJbnNwZWN0b3JPdmVybGF5KToKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEJsYWNrQmVy
cnkuaDoKKyAgICAgICAgKEluc3BlY3RvckNsaWVudEJsYWNrQmVycnkpOgorICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0luc3BlY3Rvck92ZXJsYXkuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yT3ZlcmxheTo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3Rvck92ZXJsYXk6Okluc3BlY3Rvck92ZXJsYXkpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yT3ZlcmxheTo6bm90aWZ5U3luY1JlcXVpcmVkKToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3Rvck92ZXJsYXk6OnBhaW50Q29udGVudHMpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yT3ZlcmxheTo6c2hvd0RlYnVnQm9yZGVycyk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JPdmVybGF5OjpzaG93UmVwYWludENvdW50ZXIpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yT3ZlcmxheTo6Y29udGVudHNWaXNpYmxlKToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3Rvck92ZXJsYXk6On5JbnNwZWN0b3JPdmVybGF5KToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3Rvck92ZXJsYXk6OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3Rvck92ZXJsYXk6OnVwZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JPdmVybGF5
OjpwYWludFdlYkZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvck92ZXJsYXk6Omlu
dmFsaWRhdGVXZWJGcmFtZSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yT3Zl
cmxheS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKEluc3BlY3Rvck92ZXJsYXkpOgorICAgICAgICAoSW5zcGVjdG9yT3ZlcmxheUNsaWVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JPdmVybGF5OjpzZXRDbGllbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yT3ZlcmxheTo6bm90aWZ5QW5pbWF0aW9uU3RhcnRlZCk6
CisKIDIwMTItMDUtMjkgIEFydmlkIE5pbHNzb24gIDxhbmlsc3NvbkByaW0uY29tPgogCiAgICAg
ICAgIFtCbGFja0JlcnJ5XSBNYWtlIERlZmF1bHRUYXBIaWdobGlnaHQgdXNlIHRoZSBuZXcgV2Vi
T3ZlcmxheSBBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1CbGFja0JlcnJ5
LmNtYWtlIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2UKaW5kZXggYTVi
YTRjNGVlYTY0MmZkZjM1YWZmYzA2MGUzMzc0YTJmYzk4MzQ0YS4uYmM2MTlmMjlhMGEzMDIwMTA0
NjgzMWE5OGM5OGRiMDU4OTQ0YTIyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9y
bUJsYWNrQmVycnkuY21ha2UKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUJsYWNrQmVycnku
Y21ha2UKQEAgLTc4LDYgKzc4LDcgQEAgTElTVChBUFBFTkQgV2ViS2l0X1NPVVJDRVMKICAgICBi
bGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0dlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudEJsYWNr
QmVycnkuY3BwCiAgICAgYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9JY29uRGF0YWJhc2VDbGll
bnRCbGFja0JlcnJ5LmNwcAogICAgIGJsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9y
Q2xpZW50QmxhY2tCZXJyeS5jcHAKKyAgICBibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0luc3Bl
Y3Rvck92ZXJsYXkuY3BwCiAgICAgYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9KYXZhU2NyaXB0
RGVidWdnZXJCbGFja0JlcnJ5LmNwcAogICAgIGJsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvTm90
aWZpY2F0aW9uUHJlc2VudGVySW1wbC5jcHAKICAgICBibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0
L1ZpYnJhdGlvbkNsaWVudEJsYWNrQmVycnkuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQXBpL0JhY2tpbmdTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvQXBpL0JhY2tpbmdTdG9yZS5jcHAKaW5kZXggNDZmMmMxMTNkNWNiOWIxMDdhMDJmM2JkMzc5
NmVkY2RiNzAwZDgxOC4uNjE5YzQzOTY4MTNlMTZhYjZhYmFhYWE2MzVlMDlhYjI5MzA4ZTI1MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9CYWNraW5nU3RvcmUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvQmFja2luZ1N0b3JlLmNwcApAQCAt
MjQ0Myw3ICsyNDQzLDggQEAgdm9pZCBCYWNraW5nU3RvcmVQcml2YXRlOjpyZW5kZXJDb250ZW50
cyhCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6R3JhcGhpY3M6OkJ1ZmZlcioKICAgICAgICAgaWYgKG1f
d2ViUGFnZS0+ZC0+bV9wYWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCktPmVuYWJsZWQoKSkgewog
ICAgICAgICAgICAgV2ViQ29yZTo6SW50UG9pbnQgc2Nyb2xsUG9zaXRpb24gPSBtX2NsaWVudC0+
ZnJhbWUoKS0+dmlldygpLT5zY3JvbGxQb3NpdGlvbigpOwogICAgICAgICAgICAgZ3JhcGhpY3ND
b250ZXh0LnRyYW5zbGF0ZShzY3JvbGxQb3NpdGlvbi54KCksIHNjcm9sbFBvc2l0aW9uLnkoKSk7
Ci0gICAgICAgICAgICBtX3dlYlBhZ2UtPmQtPm1fcGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigp
LT5kcmF3SGlnaGxpZ2h0KGdyYXBoaWNzQ29udGV4dCk7CisgICAgICAgICAgICBpZiAobV93ZWJQ
YWdlLT5kLT5tX2luc3BlY3Rvck92ZXJsYXkpCisgICAgICAgICAgICAgICAgbV93ZWJQYWdlLT5k
LT5tX2luc3BlY3Rvck92ZXJsYXktPnBhaW50V2ViRnJhbWUoZ3JhcGhpY3NDb250ZXh0KTsKICAg
ICAgICAgfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9B
cGkvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3Bw
CmluZGV4IDk3MmIzNTg0ODM0ODA5MWQxMGJlMDVlZDU3OGQzYjhiNjYwODQzMDguLjMwNzkxYjAy
MDZkNGRmOWY5MDhjYzlkZTQxNzkyMWMyOGVjYzU2NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L0FwaS9XZWJQYWdlLmNwcApAQCAtNzQsNiArNzQsNyBAQAogI2luY2x1ZGUgIkluc3BlY3Rv
ckJhY2tlbmREaXNwYXRjaGVyLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yQ2xpZW50QmxhY2tCZXJy
eS5oIgogI2luY2x1ZGUgIkluc3BlY3RvckNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJJbnNwZWN0
b3JPdmVybGF5LmgiCiAjaW5jbHVkZSAiSmF2YVNjcmlwdERlYnVnZ2VyQmxhY2tCZXJyeS5oIgog
I2luY2x1ZGUgIkxheWVyV2ViS2l0VGhyZWFkLmgiCiAjaW5jbHVkZSAiTG9jYWxGaWxlU3lzdGVt
LmgiCkBAIC0zMjQxLDYgKzMyNDIsOCBAQCB2b2lkIFdlYlBhZ2VQcml2YXRlOjp1cGRhdGVEZWxl
Z2F0ZWRPdmVybGF5cyhib29sIGRpc3BhdGNoZWQpCiAgICAgICAgIC8vIE11c3QgYmUgY2FsbGVk
IG9uIHRoZSBXZWJLaXQgdGhyZWFkLgogICAgICAgICBpZiAobV9zZWxlY3Rpb25IYW5kbGVyLT5p
c1NlbGVjdGlvbkFjdGl2ZSgpKQogICAgICAgICAgICAgbV9zZWxlY3Rpb25IYW5kbGVyLT5zZWxl
Y3Rpb25Qb3NpdGlvbkNoYW5nZWQodHJ1ZSAvKiB2aXN1YWxDaGFuZ2VPbmx5ICovKTsKKyAgICAg
ICAgaWYgKG1faW5zcGVjdG9yT3ZlcmxheSkKKyAgICAgICAgICAgIG1faW5zcGVjdG9yT3Zlcmxh
eS0+dXBkYXRlKCk7CiAKICAgICB9IGVsc2UgaWYgKG1fc2VsZWN0aW9uSGFuZGxlci0+aXNTZWxl
Y3Rpb25BY3RpdmUoKSkgewogICAgICAgICAvLyBEb24ndCBib3RoZXIgZGlzcGF0Y2hpbmcgdG8g
d2Via2l0IHRocmVhZCBpZiBzZWxlY3Rpb24gYW5kIHRhcCBoaWdobGlnaHQgYXJlIG5vdCBhY3Rp
dmUuCkBAIC01Nzk5LDYgKzU4MDIsNyBAQCBib29sIFdlYlBhZ2VQcml2YXRlOjpjb21taXRSb290
TGF5ZXJJZk5lZWRlZCgpCiAgICAgZG91YmxlIHNjYWxlID0gY3VycmVudFNjYWxlKCk7CiAgICAg
aWYgKG1fZnJhbWVMYXllcnMgJiYgbV9mcmFtZUxheWVycy0+aGFzTGF5ZXIoKSkKICAgICAgICAg
bV9mcmFtZUxheWVycy0+Y29tbWl0T25XZWJLaXRUaHJlYWQoc2NhbGUpOworCiAgICAgdXBkYXRl
RGVsZWdhdGVkT3ZlcmxheXMoKTsKICAgICBpZiAobV9vdmVybGF5TGF5ZXIpCiAgICAgICAgIG1f
b3ZlcmxheUxheWVyLT5wbGF0Zm9ybUxheWVyKCktPmNvbW1pdE9uV2ViS2l0VGhyZWFkKHNjYWxl
KTsKQEAgLTYzMjQsNSArNjMyOCwyMyBAQCB2b2lkIFdlYlBhZ2VQcml2YXRlOjpzZXRQYXJlbnRQ
b3B1cChQYWdlUG9wdXBCbGFja0JlcnJ5KiB3ZWJQb3B1cCkKICAgICBtX3BhcmVudFBvcHVwID0g
d2ViUG9wdXA7CiB9CiAKK3ZvaWQgV2ViUGFnZVByaXZhdGU6OnNldEluc3BlY3Rvck92ZXJsYXlD
bGllbnQoV2ViQ29yZTo6SW5zcGVjdG9yT3ZlcmxheTo6SW5zcGVjdG9yT3ZlcmxheUNsaWVudCog
aW5zcGVjdG9yT3ZlcmxheUNsaWVudCkKK3sKKyAgICBpZiAoaW5zcGVjdG9yT3ZlcmxheUNsaWVu
dCkgeworICAgICAgICBpZiAoIW1faW5zcGVjdG9yT3ZlcmxheSkKKyAgICAgICAgICAgIG1faW5z
cGVjdG9yT3ZlcmxheSA9IFdlYkNvcmU6Okluc3BlY3Rvck92ZXJsYXk6OmNyZWF0ZSh0aGlzLCBp
bnNwZWN0b3JPdmVybGF5Q2xpZW50KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbV9pbnNw
ZWN0b3JPdmVybGF5LT5zZXRDbGllbnQoaW5zcGVjdG9yT3ZlcmxheUNsaWVudCk7CisgICAgICAg
IG1faW5zcGVjdG9yT3ZlcmxheS0+dXBkYXRlKCk7CisgICAgICAgIHNjaGVkdWxlUm9vdExheWVy
Q29tbWl0KCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKG1faW5zcGVjdG9yT3ZlcmxheSkg
eworICAgICAgICAgICAgbV9pbnNwZWN0b3JPdmVybGF5LT5jbGVhcigpOworICAgICAgICAgICAg
bV9pbnNwZWN0b3JPdmVybGF5ID0gbnVsbHB0cjsKKyAgICAgICAgICAgIHNjaGVkdWxlUm9vdExh
eWVyQ29tbWl0KCk7CisgICAgICAgIH0KKyAgICB9Cit9CisKIH0KIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZV9wLmggYi9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvQXBpL1dlYlBhZ2VfcC5oCmluZGV4IGE4YjFhMWEwNTIwZTY3Y2JkOWQ1MGExNWU2
MjYyNmU2MTIwY2Q0NzAuLjBiMmIxODRlYzJhZDg1NzllMTZhOWQ2ZDUwMjUzNTViNzJmNzllYWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZV9wLmgKKysr
IGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlX3AuaApAQCAtMjAsNiArMjAs
NyBAQAogI2RlZmluZSBXZWJQYWdlX3BfaAogCiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCisj
aW5jbHVkZSAiSW5zcGVjdG9yT3ZlcmxheS5oIgogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKICNpbmNsdWRlICJHTEVTMkNvbnRleHQuaCIKICNpbmNsdWRlICJMYXllclJlbmRlcmVy
LmgiCkBAIC00Miw2ICs0Myw3IEBAIGNsYXNzIERPTVdyYXBwZXJXb3JsZDsKIGNsYXNzIERvY3Vt
ZW50OwogY2xhc3MgRnJhbWU7CiBjbGFzcyBHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnRCbGFj
a0JlcnJ5OworY2xhc3MgR3JhcGhpY3NMYXllckJsYWNrQmVycnk7CiBjbGFzcyBKYXZhU2NyaXB0
RGVidWdnZXJCbGFja0JlcnJ5OwogY2xhc3MgTGF5ZXJXZWJLaXRUaHJlYWQ7CiBjbGFzcyBOb2Rl
OwpAQCAtNDI1LDYgKzQyNyw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZGVmZXJyZWRUYXNrc1Rp
bWVyRmlyZWQoV2ViQ29yZTo6VGltZXI8V2ViUGFnZVByaXZhdGU+Kik7CiAKKyAgICB2b2lkIHNl
dEluc3BlY3Rvck92ZXJsYXlDbGllbnQoV2ViQ29yZTo6SW5zcGVjdG9yT3ZlcmxheTo6SW5zcGVj
dG9yT3ZlcmxheUNsaWVudCopOworCiAgICAgV2ViUGFnZSogbV93ZWJQYWdlOwogICAgIFdlYlBh
Z2VDbGllbnQqIG1fY2xpZW50OwogICAgIFdlYkNvcmU6OlBhZ2UqIG1fcGFnZTsKQEAgLTU0OCw2
ICs1NTIsNyBAQCBwdWJsaWM6CiAgICAgUmVmUHRyPFdlYkNvcmU6OkRPTVdyYXBwZXJXb3JsZD4g
bV9pc29sYXRlZFdvcmxkOwogICAgIGJvb2wgbV9oYXNJblJlZ2lvblNjcm9sbGFibGVBcmVhczsK
ICAgICBib29sIG1fdXBkYXRlRGVsZWdhdGVkT3ZlcmxheXNEaXNwYXRjaGVkOworICAgIE93blB0
cjxXZWJDb3JlOjpJbnNwZWN0b3JPdmVybGF5PiBtX2luc3BlY3Rvck92ZXJsYXk7CiAKICAgICAv
LyBUaGVyZSBpcyBubyBuZWVkIHRvIGluaXRpYWxpemUgdGhlIGZvbGxvd2luZyBtZW1iZXJzIGlu
IFdlYlBhZ2VQcml2YXRlJ3MgY29uc3RydWN0b3IsCiAgICAgLy8gYmVjYXVzZSB0aGV5IGFyZSBv
bmx5IHVzZWQgYnkgV2ViUGFnZVRhc2tzIGFuZCB0aGUgdGFza3Mgd2lsbCBpbml0aWFsaXplIHRo
ZW0gd2hlbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBw
b3J0L0luc3BlY3RvckNsaWVudEJsYWNrQmVycnkuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEJsYWNrQmVycnkuY3BwCmluZGV4IGQ5
Njg4ZmY2YTA5YjlkNjVhZGFiYTg4MDFlYTZlZDZjYjc5Yjg1MjkuLjFkZjc3NjQ2MjM0NmM2M2M4
ZWM5ZTdlNDljOTIwYzVkYWI3ZTIxZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRCbGFja0JlcnJ5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50Qmxh
Y2tCZXJyeS5jcHAKQEAgLTIyLDcgKzIyLDEwIEBACiAKICNpbmNsdWRlICJCYWNraW5nU3RvcmUu
aCIKICNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgorI2lu
Y2x1ZGUgIkluc3BlY3RvckNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5o
IgorI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRl
ICJXZWJQYWdlQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViUGFnZV9wLmgiCkBAIC00MiwxNyArNDUs
MTYgQEAgdm9pZCBJbnNwZWN0b3JDbGllbnRCbGFja0JlcnJ5OjppbnNwZWN0b3JEZXN0cm95ZWQo
KQogCiB2b2lkIEluc3BlY3RvckNsaWVudEJsYWNrQmVycnk6OmhpZ2hsaWdodCgpCiB7Ci0gICAg
aGlkZUhpZ2hsaWdodCgpOworICAgIG1fd2ViUGFnZVByaXZhdGUtPnNldEluc3BlY3Rvck92ZXJs
YXlDbGllbnQodGhpcyk7CisgICAgaWYgKCFtX3dlYlBhZ2VQcml2YXRlLT5pc0FjY2VsZXJhdGVk
Q29tcG9zaXRpbmdBY3RpdmUoKSkKKyAgICAgICAgbV93ZWJQYWdlUHJpdmF0ZS0+bWFpbkZyYW1l
KCktPmRvY3VtZW50KCktPmRvY3VtZW50RWxlbWVudCgpLT5yZW5kZXJlcigpLT5yZXBhaW50KHRy
dWUpOwogfQogCiB2b2lkIEluc3BlY3RvckNsaWVudEJsYWNrQmVycnk6OmhpZGVIaWdobGlnaHQo
KQogewotICAgIGlmICghbV93ZWJQYWdlUHJpdmF0ZS0+bWFpbkZyYW1lKCkgfHwgIW1fd2ViUGFn
ZVByaXZhdGUtPm1haW5GcmFtZSgpLT5kb2N1bWVudCgpIHx8ICFtX3dlYlBhZ2VQcml2YXRlLT5t
YWluRnJhbWUoKS0+ZG9jdW1lbnQoKS0+ZG9jdW1lbnRFbGVtZW50KCkKLSAgICAgICAgfHwgIW1f
d2ViUGFnZVByaXZhdGUtPm1haW5GcmFtZSgpLT5kb2N1bWVudCgpLT5kb2N1bWVudEVsZW1lbnQo
KS0+cmVuZGVyZXIoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgLy8gRklYTUU6IFBvdGVudGlh
bGx5IHNsb3cgaGFjaywgYnV0IGludmFsaWRhdGluZyBldmVyeXRoaW5nIHNob3VsZCB3b3JrIHNp
bmNlIHRoZSBhY3R1YWwgaGlnaGxpZ2h0IGlzIGRyYXduIGJ5IEJhY2tpbmdTdG9yZVByaXZhdGU6
OnJlbmRlckNvbnRlbnRzKCkuCi0gICAgbV93ZWJQYWdlUHJpdmF0ZS0+bWFpbkZyYW1lKCktPmRv
Y3VtZW50KCktPmRvY3VtZW50RWxlbWVudCgpLT5yZW5kZXJlcigpLT5yZXBhaW50KHRydWUpOwor
ICAgIG1fd2ViUGFnZVByaXZhdGUtPnNldEluc3BlY3Rvck92ZXJsYXlDbGllbnQoMCk7CisgICAg
aWYgKCFtX3dlYlBhZ2VQcml2YXRlLT5pc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdBY3RpdmUoKSkK
KyAgICAgICAgbV93ZWJQYWdlUHJpdmF0ZS0+bWFpbkZyYW1lKCktPmRvY3VtZW50KCktPmRvY3Vt
ZW50RWxlbWVudCgpLT5yZW5kZXJlcigpLT5yZXBhaW50KHRydWUpOwogfQogCiB2b2lkIEluc3Bl
Y3RvckNsaWVudEJsYWNrQmVycnk6Om9wZW5JbnNwZWN0b3JGcm9udGVuZChJbnNwZWN0b3JDb250
cm9sbGVyKikKQEAgLTkyLDQgKzk0LDExIEBAIHZvaWQgSW5zcGVjdG9yQ2xpZW50QmxhY2tCZXJy
eTo6dXBkYXRlSW5zcGVjdG9yU3RhdGVDb29raWUoY29uc3QgU3RyaW5nJiBjb29raWUpCiAgICAg
bm90SW1wbGVtZW50ZWQoKTsKIH07CiAKK3ZvaWQgSW5zcGVjdG9yQ2xpZW50QmxhY2tCZXJyeTo6
cGFpbnRJbnNwZWN0b3JPdmVybGF5KEdyYXBoaWNzQ29udGV4dCYgZ2MpCit7CisgICAgSW5zcGVj
dG9yQ29udHJvbGxlciogaW5zcGVjdG9yQ29udHJvbGxlciA9IG1fd2ViUGFnZVByaXZhdGUtPm1f
cGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpOworICAgIGlmIChpbnNwZWN0b3JDb250cm9sbGVy
KQorICAgICAgICBpbnNwZWN0b3JDb250cm9sbGVyLT5kcmF3SGlnaGxpZ2h0KGdjKTsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEJsYWNrQmVycnkuaCBiL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRCbGFja0JlcnJ5
LmgKaW5kZXggYTZhNDA0YTdhNzEzOWFiMTgzNWE1ZmM4NzZiNWQ4ZmI4YjY2MTQyNy4uM2Y2ZjIw
N2RkNDFjODE1YjJkM2ExYTZiYThlY2E4ZGVlOWRjZTlmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEJsYWNrQmVycnku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9y
Q2xpZW50QmxhY2tCZXJyeS5oCkBAIC0yMSw2ICsyMSw3IEBACiAjZGVmaW5lIEluc3BlY3RvckNs
aWVudEJsYWNrQmVycnlfaAogCiAjaW5jbHVkZSAiSW5zcGVjdG9yQ2xpZW50LmgiCisjaW5jbHVk
ZSAiSW5zcGVjdG9yT3ZlcmxheS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAjaW5j
bHVkZSA8d3RmL0hhc2hNYXAuaD4KIApAQCAtMzIsNyArMzMsNyBAQCBjbGFzcyBXZWJQYWdlUHJp
dmF0ZTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBJbnNwZWN0b3JDbGllbnRCbGFj
a0JlcnJ5IDogcHVibGljIEluc3BlY3RvckNsaWVudCB7CitjbGFzcyBJbnNwZWN0b3JDbGllbnRC
bGFja0JlcnJ5IDogcHVibGljIEluc3BlY3RvckNsaWVudCwgcHVibGljIEluc3BlY3Rvck92ZXJs
YXk6Okluc3BlY3Rvck92ZXJsYXlDbGllbnQgewogcHVibGljOgogICAgIEluc3BlY3RvckNsaWVu
dEJsYWNrQmVycnkoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlUHJpdmF0ZSopOwogICAgIHZp
cnR1YWwgdm9pZCBpbnNwZWN0b3JEZXN0cm95ZWQoKTsKQEAgLTUwLDYgKzUxLDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgYm9vbCBjYW5DbGVhckJyb3dzZXJDYWNoZSgpIHsgcmV0dXJuIHRydWU7
IH0KICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJCcm93c2VyQ29va2llcygpOwogICAgIHZpcnR1YWwg
Ym9vbCBjYW5DbGVhckJyb3dzZXJDb29raWVzKCkgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1
YWwgdm9pZCBwYWludEluc3BlY3Rvck92ZXJsYXkoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0Jik7
CiAKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlSW5zcGVjdG9yU3RhdGVDb29raWUoY29uc3QgU3Ry
aW5nJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3Vw
cG9ydC9JbnNwZWN0b3JPdmVybGF5LmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJD
b3JlU3VwcG9ydC9JbnNwZWN0b3JPdmVybGF5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNTY4ZjEzNDE5YWUx
NDU0ZmEyOWYxZDg5N2ZkNzI3ZmU1NWQyNTBjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0luc3BlY3Rvck92ZXJsYXkuY3BwCkBAIC0w
LDAgKzEsMTI4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIFJlc2VhcmNoIEluIE1vdGlv
biBMaW1pdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExp
Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl
cgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs
YXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBM
ZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMKKyAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUg
dG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIkluc3BlY3Rvck92ZXJsYXkuaCIKKworI2lu
Y2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCisjaW5jbHVkZSAiR3JhcGhp
Y3NDb250ZXh0LmgiCisjaW5jbHVkZSAiR3JhcGhpY3NMYXllci5oIgorI2luY2x1ZGUgIlBhZ2Uu
aCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgorI2luY2x1ZGUgIldlYlBhZ2VfcC5oIgorCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworUGFzc093blB0cjxJbnNwZWN0b3JPdmVybGF5PiBJbnNwZWN0
b3JPdmVybGF5OjpjcmVhdGUoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlUHJpdmF0ZSogcGFn
ZSwgSW5zcGVjdG9yT3ZlcmxheUNsaWVudCogY2xpZW50KQoreworICAgIHJldHVybiBhZG9wdFB0
cihuZXcgSW5zcGVjdG9yT3ZlcmxheShwYWdlLCBjbGllbnQpKTsKK30KKworSW5zcGVjdG9yT3Zl
cmxheTo6SW5zcGVjdG9yT3ZlcmxheShCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQcml2YXRl
KiBwYWdlLCBJbnNwZWN0b3JPdmVybGF5Q2xpZW50KiBjbGllbnQpCisgICAgOiBtX3dlYlBhZ2Uo
cGFnZSkKKyAgICAsIG1fY2xpZW50KGNsaWVudCkKK3sKK30KKworI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKK3ZvaWQgSW5zcGVjdG9yT3ZlcmxheTo6bm90aWZ5U3luY1JlcXVpcmVk
KGNvbnN0IEdyYXBoaWNzTGF5ZXIqKQoreworICAgIG1fd2ViUGFnZS0+c2NoZWR1bGVSb290TGF5
ZXJDb21taXQoKTsKK30KKwordm9pZCBJbnNwZWN0b3JPdmVybGF5OjpwYWludENvbnRlbnRzKGNv
bnN0IEdyYXBoaWNzTGF5ZXIqLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIEdyYXBoaWNzTGF5
ZXJQYWludGluZ1BoYXNlLCBjb25zdCBJbnRSZWN0JiBpbkNsaXApCit7CisgICAgY29udGV4dC5z
YXZlKCk7CisgICAgSW50UG9pbnQgc2Nyb2xsUG9zaXRpb24gPSBtX3dlYlBhZ2UtPmZvY3VzZWRP
ck1haW5GcmFtZSgpLT52aWV3KCktPnNjcm9sbFBvc2l0aW9uKCk7CisgICAgY29udGV4dC50cmFu
c2xhdGUoc2Nyb2xsUG9zaXRpb24ueCgpLCBzY3JvbGxQb3NpdGlvbi55KCkpOworICAgIG1fY2xp
ZW50LT5wYWludEluc3BlY3Rvck92ZXJsYXkoY29udGV4dCk7CisgICAgY29udGV4dC5yZXN0b3Jl
KCk7Cit9CisKK2Jvb2wgSW5zcGVjdG9yT3ZlcmxheTo6c2hvd0RlYnVnQm9yZGVycyhjb25zdCBH
cmFwaGljc0xheWVyKikgY29uc3QKK3sKKyAgICByZXR1cm4gbV93ZWJQYWdlLT5tX3BhZ2UtPnNl
dHRpbmdzKCktPnNob3dEZWJ1Z0JvcmRlcnMoKTsKK30KKworYm9vbCBJbnNwZWN0b3JPdmVybGF5
OjpzaG93UmVwYWludENvdW50ZXIoY29uc3QgR3JhcGhpY3NMYXllciopIGNvbnN0Cit7CisgICAg
cmV0dXJuIG1fd2ViUGFnZS0+bV9wYWdlLT5zZXR0aW5ncygpLT5zaG93UmVwYWludENvdW50ZXIo
KTsKK30KKworYm9vbCBJbnNwZWN0b3JPdmVybGF5Ojpjb250ZW50c1Zpc2libGUoY29uc3QgR3Jh
cGhpY3NMYXllciosIGNvbnN0IEludFJlY3QmIGNvbnRlbnRSZWN0KSBjb25zdAoreworICAgIHJl
dHVybiB0cnVlOworfQorI2VuZGlmCisKK0luc3BlY3Rvck92ZXJsYXk6On5JbnNwZWN0b3JPdmVy
bGF5KCkgeyB9CisKK3ZvaWQgSW5zcGVjdG9yT3ZlcmxheTo6Y2xlYXIoKQoreworICAgIGludmFs
aWRhdGVXZWJGcmFtZSgpOworCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAg
IGlmIChtX292ZXJsYXkpIHsKKyAgICAgICAgbV9vdmVybGF5LT5yZW1vdmVGcm9tUGFyZW50KCk7
CisgICAgICAgIG1fb3ZlcmxheSA9IG51bGxwdHI7CisgICAgfQorI2VuZGlmCit9CisKK3ZvaWQg
SW5zcGVjdG9yT3ZlcmxheTo6dXBkYXRlKCkKK3sKKyAgICBpbnZhbGlkYXRlV2ViRnJhbWUoKTsK
KworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyAgICBpZiAoIW1fb3ZlcmxheSkg
eworICAgICAgICBtX292ZXJsYXkgPSBhZG9wdFB0cihuZXcgQmxhY2tCZXJyeTo6V2ViS2l0OjpX
ZWJPdmVybGF5KHRoaXMpKTsKKyAgICAgICAgY29uc3QgSW50U2l6ZSBzaXplID0gbV93ZWJQYWdl
LT52aWV3cG9ydFNpemUoKTsKKyAgICAgICAgbV9vdmVybGF5LT5zZXRTaXplKEZsb2F0U2l6ZShz
aXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCkpKTsKKyAgICAgICAgbV93ZWJQYWdlLT5tX3dlYlBh
Z2UtPmFkZE92ZXJsYXkobV9vdmVybGF5LmdldCgpKTsKKyAgICB9CisKKyAgICBtX292ZXJsYXkt
PnNldERyYXdzQ29udGVudCh0cnVlKTsKKyAgICBtX292ZXJsYXktPnNldE9wYWNpdHkoMS4wKTsK
KyAgICBtX292ZXJsYXktPmludmFsaWRhdGUoKTsKKyNlbmRpZgorfQorCit2b2lkIEluc3BlY3Rv
ck92ZXJsYXk6OnBhaW50V2ViRnJhbWUoR3JhcGhpY3NDb250ZXh0JiBnYykKK3sKKyAgICBpZiAo
IW1fd2ViUGFnZS0+aXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nQWN0aXZlKCkpCisgICAgICAgIG1f
Y2xpZW50LT5wYWludEluc3BlY3Rvck92ZXJsYXkoZ2MpOworfQorCit2b2lkIEluc3BlY3Rvck92
ZXJsYXk6OmludmFsaWRhdGVXZWJGcmFtZSgpCit7CisgICAgLy8gSW5zcGVjdG9yT3ZlcmxheUNs
aWVudCBkb2VzIHRoZSBhY3R1YWwgcGFpbnRpbmcgb2YgdGhlIG92ZXJsYXkuCisgICAgLy8gSGVy
ZSB3ZSBqdXN0IG1ha2Ugc3VyZSB0byBpbnZhbGlkYXRlLgorICAgIGlmICghbV93ZWJQYWdlLT5p
c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdBY3RpdmUoKSkgeworICAgICAgICAvLyBGSVhNRTogYWJs
ZSB0byBpbnZhbGlkYXRlIGEgc21hbGxlciByZWN0LgorICAgICAgICAvLyBGSVhNRTogSXMgaXQg
aW1wb3J0YW50IHRvIGp1c3QgaW52YWxpZGF0ZSBhIHNtYWxsZXIgcmVjdCBnaXZlbiB0aGF0Cisg
ICAgICAgIC8vIHRoaXMgaXMgbm90IG9uIGEgY3JpdGljYWwgY29kZXBhdGg/IEluIG9yZGVyIHRv
IGRvIHNvLCB3ZSdkCisgICAgICAgIC8vIGhhdmUgdG8gdGFrZSBzY3JvbGxpbmcgaW50byBhY2Nv
dW50LgorICAgICAgICBjb25zdCBJbnRTaXplIHNpemUgPSBtX3dlYlBhZ2UtPnZpZXdwb3J0U2l6
ZSgpOworICAgICAgICBJbnRSZWN0IGRhbWFnZWRSZWN0KDAsIDAsIHNpemUud2lkdGgoKSwgc2l6
ZS5oZWlnaHQoKSk7CisgICAgfQorfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yT3ZlcmxheS5oIGIvU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0luc3BlY3Rvck92ZXJsYXkuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li43ZjkxZTM1NDEyYTNkMjYwZWY2MTI3MTBlM2QxMmVmYmJmNmU2ZDk4Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0luc3BlY3Rvck92
ZXJsYXkuaApAQCAtMCwwICsxLDc3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIFJlc2Vh
cmNoIEluIE1vdGlvbiBMaW1pdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
KyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv
cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0
aGUgR05VCisgKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNz
ZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlm
IG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUx
IEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVT
QQorICovCisKKyNpZm5kZWYgSW5zcGVjdG9yT3ZlcmxheV9oCisjZGVmaW5lIEluc3BlY3Rvck92
ZXJsYXlfaAorCisjaW5jbHVkZSAiV2ViT3ZlcmxheS5oIgorI2luY2x1ZGUgPEdyYXBoaWNzTGF5
ZXJDbGllbnQuaD4KKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NP
d25QdHIuaD4KKworbmFtZXNwYWNlIEJsYWNrQmVycnkgeworbmFtZXNwYWNlIFdlYktpdCB7Citj
bGFzcyBXZWJQYWdlUHJpdmF0ZTsKK30KK30KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3Mg
R3JhcGhpY3NDb250ZXh0OworY2xhc3MgR3JhcGhpY3NMYXllcjsKKworCitjbGFzcyBJbnNwZWN0
b3JPdmVybGF5IDogcHVibGljIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDbGllbnQgeworcHVibGlj
OgorICAgIGNsYXNzIEluc3BlY3Rvck92ZXJsYXlDbGllbnQgeworICAgIHB1YmxpYzoKKyAgICAg
ICAgdmlydHVhbCB2b2lkIHBhaW50SW5zcGVjdG9yT3ZlcmxheShHcmFwaGljc0NvbnRleHQmKSA9
IDA7CisgICAgfTsKKworICAgIHN0YXRpYyBQYXNzT3duUHRyPEluc3BlY3Rvck92ZXJsYXk+IGNy
ZWF0ZShCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQcml2YXRlKiwgSW5zcGVjdG9yT3Zlcmxh
eUNsaWVudCopOworCisgICAgfkluc3BlY3Rvck92ZXJsYXkoKTsKKworICAgIHZvaWQgc2V0Q2xp
ZW50KEluc3BlY3Rvck92ZXJsYXlDbGllbnQqIGNsaWVudCkgeyBtX2NsaWVudCA9IGNsaWVudDsg
fQorCisgICAgdm9pZCBjbGVhcigpOworICAgIHZvaWQgdXBkYXRlKCk7CisgICAgdm9pZCBwYWlu
dFdlYkZyYW1lKEdyYXBoaWNzQ29udGV4dCYpOworCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQorICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBbmltYXRpb25TdGFydGVkKGNvbnN0IEdy
YXBoaWNzTGF5ZXIqLCBkb3VibGUgdGltZSkgeyB9CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeVN5
bmNSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKik7CisgICAgdmlydHVhbCB2b2lkIHBhaW50
Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciosIEdyYXBoaWNzQ29udGV4dCYsIEdyYXBoaWNz
TGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBJbnRSZWN0JiBpbkNsaXApOworICAgIHZpcnR1YWwg
Ym9vbCBzaG93RGVidWdCb3JkZXJzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdDsKKyAgICB2
aXJ0dWFsIGJvb2wgc2hvd1JlcGFpbnRDb3VudGVyKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25z
dDsKKworICAgIHZpcnR1YWwgYm9vbCBjb250ZW50c1Zpc2libGUoY29uc3QgV2ViQ29yZTo6R3Jh
cGhpY3NMYXllciosIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGNvbnRlbnRSZWN0KSBjb25zdDsK
KyNlbmRpZgorCitwcml2YXRlOgorICAgIEluc3BlY3Rvck92ZXJsYXkoQmxhY2tCZXJyeTo6V2Vi
S2l0OjpXZWJQYWdlUHJpdmF0ZSosIEluc3BlY3Rvck92ZXJsYXlDbGllbnQqKTsKKyAgICB2b2lk
IGludmFsaWRhdGVXZWJGcmFtZSgpOworCisgICAgQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdl
UHJpdmF0ZSogbV93ZWJQYWdlOworICAgIEluc3BlY3Rvck92ZXJsYXlDbGllbnQqIG1fY2xpZW50
OworICAgIE93blB0cjxCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYk92ZXJsYXk+IG1fb3ZlcmxheTsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworCisjZW5kaWYgLyogSW5zcGVjdG9yT3Zl
cmxheV9oICovCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>