<?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>82643</bug_id>
          
          <creation_ts>2012-03-29 12:44:20 -0700</creation_ts>
          <short_desc>[BlackBerry] Expose CaseSensitive, Wrap, and HighlightAllMatches in WebPage::findNextString()</short_desc>
          <delta_ts>2012-04-03 13:02:50 -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>Other</rep_platform>
          <op_sys>Other</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Mike Lattanzio">mlattanzio</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>591453</commentid>
    <comment_count>0</comment_count>
    <who name="Mike Lattanzio">mlattanzio</who>
    <bug_when>2012-03-29 12:44:20 -0700</bug_when>
    <thetext>Plumb through some additional parameters to improve find.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>594695</commentid>
    <comment_count>1</comment_count>
      <attachid>135380</attachid>
    <who name="Mike Lattanzio">mlattanzio</who>
    <bug_when>2012-04-03 11:51:07 -0700</bug_when>
    <thetext>Created attachment 135380
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>594719</commentid>
    <comment_count>2</comment_count>
      <attachid>135380</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-04-03 12:06:56 -0700</bug_when>
    <thetext>Comment on attachment 135380
Patch

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

Looks good, can be improved a bit still.

&gt; Source/WebKit/blackberry/WebKitSupport/InPageSearchManager.cpp:172
&gt; +    if (match) {

Can combine ttese two lines.

&gt; Tools/DumpRenderTree/blackberry/LayoutTestControllerBlackBerry.cpp:815
&gt;      WTF::String nameStr = jsStringRefToWebCoreString(target);

Probably no need for WTF::

&gt; Tools/DumpRenderTree/blackberry/LayoutTestControllerBlackBerry.cpp:838
&gt; +    return BlackBerry::WebKit::DumpRenderTree::currentInstance()-&gt;page()-&gt;findNextString(nameStr.utf8().data(), !(options &amp; WebCore::Backwards), !(options &amp; WebCore::CaseInsensitive), true, true);

You probably want to explain what true params do here (true /* wrap */ etc).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>594724</commentid>
    <comment_count>3</comment_count>
      <attachid>135380</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-04-03 12:10:15 -0700</bug_when>
    <thetext>Comment on attachment 135380
Patch

Lets avoid bools in APIs. See how QtWebKit1 did it: http://doc.qt.nokia.com/4.7-snapshot/qwebview.html#findText</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>594738</commentid>
    <comment_count>4</comment_count>
      <attachid>135392</attachid>
    <who name="Mike Lattanzio">mlattanzio</who>
    <bug_when>2012-04-03 12:23:21 -0700</bug_when>
    <thetext>Created attachment 135392
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>594741</commentid>
    <comment_count>5</comment_count>
      <attachid>135392</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-04-03 12:24:54 -0700</bug_when>
    <thetext>Comment on attachment 135392
Patch

Looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>594781</commentid>
    <comment_count>6</comment_count>
      <attachid>135392</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-03 13:02:45 -0700</bug_when>
    <thetext>Comment on attachment 135392
Patch

Clearing flags on attachment: 135392

Committed r113073: &lt;http://trac.webkit.org/changeset/113073&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>594782</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-03 13:02:50 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>135380</attachid>
            <date>2012-04-03 11:51:07 -0700</date>
            <delta_ts>2012-04-03 12:23:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-82643-20120403145116.patch</filename>
            <type>text/plain</type>
            <size>22461</size>
            <attacher name="Mike Lattanzio">mlattanzio</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEzMDYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwpp
bmRleCBlZjUxZjllYzk0NzlkYTA0YmU1OWVjODlmN2UxZTIyNWUwMTIzMTRkLi5jYTM0MWYwNDFl
M2M5YjhjYmQzYjY2ZDBkYzI2NWMyNjE2NzQxMzIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAxMi0wNC0wMyAgTWlrZSBMYXR0YW56aW8gIDxtbGF0
dGFuemlvQHJpbS5jb20+CisKKyAgICAgICAgW0JsYWNrQmVycnldIEV4cG9zZSBDYXNlU2Vuc2l0
aXZlLCBXcmFwLCBhbmQgSGlnaGxpZ2h0QWxsTWF0Y2hlcyBpbiBXZWJQYWdlOjpmaW5kTmV4dFN0
cmluZygpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04
MjY0MworCisgICAgICAgIEVuaGFuY2UgQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlOjpmaW5k
TmV4dFN0cmluZygpCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIHRvZ2ds
aW5nIGNhc2Ugc2Vuc2l0aXZpdHksCisgICAgICAgIHNlYXJjaCB3cmFwcGluZywgYW5kIHdoZXRo
ZXIgb3Igbm90IHRvIGhpZ2hsaWdodCBhbGwgbWF0Y2hlcworICAgICAgICBpbiBhZGRpdGlvbiB0
byB0aGUgbmV4dCBmb3VuZCBtYXRjaC4KKworICAgICAgICBJIHJlZmFjdG9yZWQgYW5kIHJlbmFt
ZWQgdGhlIG5ldyBzZXRBY3RpdmVNYXRjaEFuZE1hcmtlcigpIG1ldGhvZAorICAgICAgICB0byBt
b3ZlIHRoZSBhY3RpdmUgbWF0Y2ggZnJvbSBvbmUgcmFuZ2UgdG8gYW5vdGhlci4gVGhpcyB3YXMK
KyAgICAgICAgcmVxdWlyZWQgYmVjYXVzZSBpbiB0aGUgY2FzZSBvZiBhIG5vbiB3cmFwcGVkIHNl
YXJjaCB3ZSBkbyBub3QKKyAgICAgICAgd2FudCB0byBhZGp1c3QgdGhlIG1fYWN0aXZlTWF0Y2gg
aWYgYW5vdGhlciBtYXRjaCBpcyBub3QgZm91bmQuCisKKyAgICAgICAgSW50ZXJuYWwgUmV2aWV3
IGJ5IEFuZHkgQ2hlbi4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIEFwaS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6
V2ViUGFnZTo6ZmluZE5leHRTdHJpbmcpOgorICAgICAgICAqIEFwaS9XZWJQYWdlLmg6CisgICAg
ICAgICogV2ViS2l0U3VwcG9ydC9JblBhZ2VTZWFyY2hNYW5hZ2VyLmNwcDoKKyAgICAgICAgKEJs
YWNrQmVycnk6OldlYktpdDo6SW5QYWdlU2VhcmNoTWFuYWdlcjo6SW5QYWdlU2VhcmNoTWFuYWdl
cik6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OkluUGFnZVNlYXJjaE1hbmFnZXI6OmZp
bmROZXh0U3RyaW5nKToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6SW5QYWdlU2VhcmNo
TWFuYWdlcjo6ZmluZEFuZE1hcmtUZXh0KToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6
SW5QYWdlU2VhcmNoTWFuYWdlcjo6c2V0QWN0aXZlTWF0Y2hBbmRNYXJrZXIpOgorICAgICAgICAo
QmxhY2tCZXJyeTo6V2ViS2l0OjpJblBhZ2VTZWFyY2hNYW5hZ2VyOjpzY29wZVN0cmluZ01hdGNo
ZXMpOgorICAgICAgICAqIFdlYktpdFN1cHBvcnQvSW5QYWdlU2VhcmNoTWFuYWdlci5oOgorICAg
ICAgICAoSW5QYWdlU2VhcmNoTWFuYWdlcik6CisKIDIwMTItMDQtMDIgIEphY2t5IEppYW5nICA8
emhhamlhbmdAcmltLmNvbT4KIAogICAgICAgICBbQmxhY2tCZXJyeV0gQWRhcHQgV2ViUGFnZVBy
aXZhdGU6OndlYkNvbnRleHQgdG8gdGhlIEFQSSBjaGFuZ2Ugb2YgcjEwOTU3MApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKaW5kZXggNWNjNmQ2NzQ3N2IyODdjMjBkZTUw
ODQzNjAxZjUxMzJlMzVhNjEzNS4uYTdmNGM1ZDQyZjQ5OWE4MjE5NjcwM2NkMDk0MTdjZDEyNDRj
ODRmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCkBAIC00NjU1
LDkgKzQ2NTUsMTggQEAgdm9pZCBXZWJQYWdlOjpzZXRGb2N1c2VkKGJvb2wgZm9jdXNlZCkKICAg
ICBmb2N1c0NvbnRyb2xsZXItPnNldEZvY3VzZWQoZm9jdXNlZCk7CiB9CiAKLWJvb2wgV2ViUGFn
ZTo6ZmluZE5leHRTdHJpbmcoY29uc3QgY2hhciogdGV4dCwgYm9vbCBmb3J3YXJkKQotewotICAg
IHJldHVybiBkLT5tX2luUGFnZVNlYXJjaE1hbmFnZXItPmZpbmROZXh0U3RyaW5nKFN0cmluZzo6
ZnJvbVVURjgodGV4dCksIGZvcndhcmQpOworYm9vbCBXZWJQYWdlOjpmaW5kTmV4dFN0cmluZyhj
b25zdCBjaGFyKiB0ZXh0LCBib29sIGZvcndhcmQsIGJvb2wgY2FzZVNlbnNpdGl2ZSwgYm9vbCB3
cmFwLCBib29sIGhpZ2hsaWdodEFsbE1hdGNoZXMpCit7CisgICAgV2ViQ29yZTo6RmluZE9wdGlv
bnMgZmluZE9wdGlvbnMgPSBXZWJDb3JlOjpTdGFydEluU2VsZWN0aW9uOworICAgIGlmICghZm9y
d2FyZCkKKyAgICAgICAgZmluZE9wdGlvbnMgfD0gV2ViQ29yZTo6QmFja3dhcmRzOworICAgIGlm
ICghY2FzZVNlbnNpdGl2ZSkKKyAgICAgICAgZmluZE9wdGlvbnMgfD0gV2ViQ29yZTo6Q2FzZUlu
c2Vuc2l0aXZlOworCisgICAgLy8gVGhlIFdlYkNvcmU6OkZpbmRPcHRpb25zOjpXcmFwQXJvdW5k
IGJvb2xlYW4gYWN0dWFsbHkgd3JhcHMgdGhlIHNlYXJjaAorICAgIC8vIHdpdGhpbiB0aGUgY3Vy
cmVudCBmcmFtZSBhcyBvcHBvc2VkIHRvIHRoZSBlbnRpcmUgRG9jdW1lbnQsIHNvIHdlIGhhdmUg
dG8KKyAgICAvLyBwcm92aWRlIG91ciBvd24gd3JhcHBpbmcgY29kZSB0byB3cmFwIGF0IHRoZSB3
aG9sZSBEb2N1bWVudCBsZXZlbC4KKyAgICByZXR1cm4gZC0+bV9pblBhZ2VTZWFyY2hNYW5hZ2Vy
LT5maW5kTmV4dFN0cmluZyhTdHJpbmc6OmZyb21VVEY4KHRleHQpLCBmaW5kT3B0aW9ucywgd3Jh
cCwgaGlnaGxpZ2h0QWxsTWF0Y2hlcyk7CiB9CiAKIHZvaWQgV2ViUGFnZTo6cnVuTGF5b3V0VGVz
dHMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmgg
Yi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuaAppbmRleCAzY2Q3ZGFjYzdj
ZmJhZGIzOTQwODZiMzY1NTU1ZThlMTYxYTQ1ZmU2Li45MDQ0YWZhMTgzYzBkOTQyYjlmYWY1ZDVh
MmI3Y2Q4ZTRkZGU3NzY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBp
L1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuaApA
QCAtMTk3LDExICsxOTcsOSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHJ1bkxheW91dFRlc3RzKCk7
CiAKLSAgICAgLy8gRmluZHMgYW5kIHNlbGVjdHMgdGhlIG5leHQgdXRmOCBzdHJpbmcgdGhhdCBp
cyBhIGNhc2Ugc2Vuc2l0aXZlCi0gICAgIC8vIG1hdGNoIGluIHRoZSB3ZWIgcGFnZS4gSXQgd2ls
bCB3cmFwIHRoZSB3ZWIgcGFnZSBpZiBpdCByZWFjaGVzCi0gICAgIC8vIHRoZSBlbmQuIEFuIGVt
cHR5IHN0cmluZyB3aWxsIHJlc3VsdCBpbiBubyBtYXRjaCBhbmQgbm8gc2VsZWN0aW9uLgotICAg
ICAvLyBSZXR1cm5zIHRydWUgaWYgdGhlIHN0cmluZyBtYXRjaGVkIGFuZCBmYWxzZSBpZiBub3Qu
Ci0gICAgYm9vbCBmaW5kTmV4dFN0cmluZyhjb25zdCBjaGFyKiwgYm9vbCBmb3J3YXJkID0gdHJ1
ZSk7CisgICAgLy8gRmluZCB0aGUgbmV4dCB1dGY4IHN0cmluZyBpbiB0aGUgZ2l2ZW4gZGlyZWN0
aW9uLgorICAgIC8vIENhc2Ugc2Vuc2l0aXZpdHksIHdyYXBwaW5nLCBhbmQgaGlnaGxpZ2h0aW5n
IGFsbCBtYXRjaGVzIGFyZSBhbHNvIHRvZ2dsZWFibGUuCisgICAgYm9vbCBmaW5kTmV4dFN0cmlu
Zyhjb25zdCBjaGFyKiwgYm9vbCBmb3J3YXJkLCBib29sIGNhc2VTZW5zaXRpdmUsIGJvb2wgd3Jh
cCwgYm9vbCBoaWdobGlnaHRBbGxNYXRjaGVzKTsKIAogICAgIC8vIEphdmFTY3JpcHREZWJ1Z2dl
ciBpbnRlcmZhY2UuCiAgICAgYm9vbCBlbmFibGVTY3JpcHREZWJ1Z2dlcigpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvSW5QYWdlU2VhcmNoTWFu
YWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9JblBhZ2VT
ZWFyY2hNYW5hZ2VyLmNwcAppbmRleCBmNWMxMmE4N2I5YTYzNGIyZTE5YjI1NjZlZjNkZTA5MmRh
ZDFjM2E1Li42MWYzZDI1NWYyMTRmYWI2NmE3MzM2NTY5NzA3Y2UxMThkNWQyMDEyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9JblBhZ2VTZWFyY2hN
YW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9J
blBhZ2VTZWFyY2hNYW5hZ2VyLmNwcApAQCAtNjUsOCArNjUsMTIgQEAgSW5QYWdlU2VhcmNoTWFu
YWdlcjo6SW5QYWdlU2VhcmNoTWFuYWdlcihXZWJQYWdlUHJpdmF0ZSogcGFnZSkKICAgICA6IG1f
d2ViUGFnZShwYWdlKQogICAgICwgbV9hY3RpdmVNYXRjaCgwKQogICAgICwgbV9yZXN1bWVTY29w
aW5nRnJvbVJhbmdlKDApCisgICAgLCBtX2FjdGl2ZU1hdGNoQ291bnQoMCkKICAgICAsIG1fc2Nv
cGluZ0NvbXBsZXRlKGZhbHNlKQorICAgICwgbV9zY29waW5nQ2FzZUluc2Vuc2l0aXZlKGZhbHNl
KQogICAgICwgbV9sb2NhdGluZ0FjdGl2ZU1hdGNoKGZhbHNlKQorICAgICwgbV9oaWdobGlnaHRB
bGxNYXRjaGVzKGZhbHNlKQorICAgICwgbV9hY3RpdmVNYXRjaEluZGV4KDApCiB7CiB9CiAKQEAg
LTc1LDggKzc5LDEwIEBAIEluUGFnZVNlYXJjaE1hbmFnZXI6On5JblBhZ2VTZWFyY2hNYW5hZ2Vy
KCkKICAgICBjYW5jZWxQZW5kaW5nU2NvcGluZ0VmZm9ydCgpOwogfQogCi1ib29sIEluUGFnZVNl
YXJjaE1hbmFnZXI6OmZpbmROZXh0U3RyaW5nKGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBmb3J3
YXJkKQorYm9vbCBJblBhZ2VTZWFyY2hNYW5hZ2VyOjpmaW5kTmV4dFN0cmluZyhjb25zdCBTdHJp
bmcmIHRleHQsIEZpbmRPcHRpb25zIGZpbmRPcHRpb25zLCBib29sIHdyYXAsIGJvb2wgaGlnaGxp
Z2h0QWxsTWF0Y2hlcykKIHsKKyAgICBtX2hpZ2hsaWdodEFsbE1hdGNoZXMgPSBoaWdobGlnaHRB
bGxNYXRjaGVzOworCiAgICAgaWYgKCF0ZXh0Lmxlbmd0aCgpKSB7CiAgICAgICAgIGNsZWFyVGV4
dE1hdGNoZXMoKTsKICAgICAgICAgY2FuY2VsUGVuZGluZ1Njb3BpbmdFZmZvcnQoKTsKQEAgLTk1
LDEyICsxMDEsMTMgQEAgYm9vbCBJblBhZ2VTZWFyY2hNYW5hZ2VyOjpmaW5kTmV4dFN0cmluZyhj
b25zdCBTdHJpbmcmIHRleHQsIGJvb2wgZm9yd2FyZCkKIAogICAgIFJlZlB0cjxSYW5nZT4gc2Vh
cmNoU3RhcnRpbmdQb2ludChtX2FjdGl2ZU1hdGNoKTsKICAgICBib29sIG5ld1NlYXJjaCA9IG1f
YWN0aXZlU2VhcmNoU3RyaW5nICE9IHRleHQ7CisgICAgYm9vbCBmb3J3YXJkID0gIShmaW5kT3B0
aW9ucyAmIFdlYkNvcmU6OkJhY2t3YXJkcyk7CiAgICAgaWYgKG5ld1NlYXJjaCkgeyAvLyBTdGFy
dCBhIG5ldyBzZWFyY2guCiAgICAgICAgIG1fYWN0aXZlU2VhcmNoU3RyaW5nID0gdGV4dDsKICAg
ICAgICAgY2FuY2VsUGVuZGluZ1Njb3BpbmdFZmZvcnQoKTsKKyAgICAgICAgbV9zY29waW5nQ2Fz
ZUluc2Vuc2l0aXZlID0gZmluZE9wdGlvbnMgJiBDYXNlSW5zZW5zaXRpdmU7CiAgICAgICAgIG1f
d2ViUGFnZS0+bV9wYWdlLT51bm1hcmtBbGxUZXh0TWF0Y2hlcygpOwotICAgIH0gZWxzZSB7IC8v
IFNlYXJjaCBzYW1lIHN0cmluZyBmb3IgbmV4dCBvY2N1cnJlbmNlLgotICAgICAgICBzZXRNYXJr
ZXJBY3RpdmUobV9hY3RpdmVNYXRjaC5nZXQoKSwgZmFsc2UgLyogYWN0aXZlICovKTsKKyAgICB9
IGVsc2UgewogICAgICAgICAvLyBTZWFyY2hpbmcgZm9yIHNhbWUgc3RyaW5nIHNob3VsZCBzdGFy
dCBmcm9tIHRoZSBlbmQgb2YgbGFzdCBtYXRjaC4KICAgICAgICAgaWYgKG1fYWN0aXZlTWF0Y2gp
IHsKICAgICAgICAgICAgIGlmIChmb3J3YXJkKQpAQCAtMTE5LDE5ICsxMjYsMjMgQEAgYm9vbCBJ
blBhZ2VTZWFyY2hNYW5hZ2VyOjpmaW5kTmV4dFN0cmluZyhjb25zdCBTdHJpbmcmIHRleHQsIGJv
b2wgZm9yd2FyZCkKIAogICAgIEZyYW1lKiBjdXJyZW50QWN0aXZlTWF0Y2hGcmFtZSA9IHNlbGVj
dGlvbi5pc05vbmUoKSAmJiBtX2FjdGl2ZU1hdGNoID8gbV9hY3RpdmVNYXRjaC0+b3duZXJEb2N1
bWVudCgpLT5mcmFtZSgpIDogbV93ZWJQYWdlLT5mb2N1c2VkT3JNYWluRnJhbWUoKTsKIAotICAg
IGNvbnN0IEZpbmRPcHRpb25zIGZpbmRPcHRpb25zID0gKGZvcndhcmQgPyAwIDogQmFja3dhcmRz
KQotICAgICAgICB8IENhc2VJbnNlbnNpdGl2ZQotICAgICAgICB8IFN0YXJ0SW5TZWxlY3Rpb247
Ci0KICAgICBpZiAoZmluZEFuZE1hcmtUZXh0KHRleHQsIHNlYXJjaFN0YXJ0aW5nUG9pbnQuZ2V0
KCksIGN1cnJlbnRBY3RpdmVNYXRjaEZyYW1lLCBmaW5kT3B0aW9ucywgbmV3U2VhcmNoKSkKICAg
ICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBGcmFtZSogc3RhcnRGcmFtZSA9IGN1cnJlbnRBY3Rp
dmVNYXRjaEZyYW1lOwogICAgIGRvIHsKLSAgICAgICAgY3VycmVudEFjdGl2ZU1hdGNoRnJhbWUg
PSBET01TdXBwb3J0OjppbmNyZW1lbnRGcmFtZShjdXJyZW50QWN0aXZlTWF0Y2hGcmFtZSwgZm9y
d2FyZCwgdHJ1ZSAvKiB3cmFwRmxhZyAqLyk7CisgICAgICAgIGN1cnJlbnRBY3RpdmVNYXRjaEZy
YW1lID0gRE9NU3VwcG9ydDo6aW5jcmVtZW50RnJhbWUoY3VycmVudEFjdGl2ZU1hdGNoRnJhbWUs
IGZvcndhcmQsIHdyYXApOworCisgICAgICAgIGlmICghY3VycmVudEFjdGl2ZU1hdGNoRnJhbWUp
IHsKKyAgICAgICAgICAgIC8vIFdlIHNob3VsZCBvbmx5IGV2ZXIgaGF2ZSBhIG51bGwgZnJhbWUg
aWYgd2UgaGF2ZW4ndCBmb3VuZCBhbnkKKyAgICAgICAgICAgIC8vIG1hdGNoZXMgYW5kIHdlJ3Jl
IG5vdCB3cmFwcGluZy4gV2UgaGF2ZSBzZWFyY2hlZCBldmVyeSBmcmFtZS4KKyAgICAgICAgICAg
IEFTU0VSVCghd3JhcCk7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKwog
ICAgICAgICBpZiAoZmluZEFuZE1hcmtUZXh0KHRleHQsIDAsIGN1cnJlbnRBY3RpdmVNYXRjaEZy
YW1lLCBmaW5kT3B0aW9ucywgbmV3U2VhcmNoKSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwot
ICAgIH0gd2hpbGUgKGN1cnJlbnRBY3RpdmVNYXRjaEZyYW1lICYmIHN0YXJ0RnJhbWUgIT0gY3Vy
cmVudEFjdGl2ZU1hdGNoRnJhbWUpOworICAgIH0gd2hpbGUgKHN0YXJ0RnJhbWUgIT0gY3VycmVu
dEFjdGl2ZU1hdGNoRnJhbWUpOwogCiAgICAgY2xlYXJUZXh0TWF0Y2hlcygpOwogCkBAIC0xNTcs
MTMgKzE2OCwyNiBAQCBib29sIEluUGFnZVNlYXJjaE1hbmFnZXI6OnNob3VsZFNlYXJjaEZvclRl
eHQoY29uc3QgU3RyaW5nJiB0ZXh0KQogCiBib29sIEluUGFnZVNlYXJjaE1hbmFnZXI6OmZpbmRB
bmRNYXJrVGV4dChjb25zdCBTdHJpbmcmIHRleHQsIFJhbmdlKiByYW5nZSwgRnJhbWUqIGZyYW1l
LCBjb25zdCBGaW5kT3B0aW9ucyYgb3B0aW9ucywgYm9vbCBpc05ld1NlYXJjaCkKIHsKLSAgICBt
X2FjdGl2ZU1hdGNoID0gZnJhbWUtPmVkaXRvcigpLT5maW5kU3RyaW5nQW5kU2Nyb2xsVG9WaXNp
YmxlKHRleHQsIHJhbmdlLCBvcHRpb25zKTsKLSAgICBpZiAobV9hY3RpdmVNYXRjaCkgewotICAg
ICAgICBzZXRNYXJrZXJBY3RpdmUobV9hY3RpdmVNYXRjaC5nZXQoKSwgdHJ1ZSAvKiBhY3RpdmUg
Ki8pOwotICAgICAgICBpZiAoaXNOZXdTZWFyY2gpIHsKLSAgICAgICAgICAgIHNjb3BlU3RyaW5n
TWF0Y2hlcyh0ZXh0LCB0cnVlIC8qIHJlc2V0ICovKTsKKyAgICBSZWZQdHI8UmFuZ2U+IG1hdGNo
ID0gZnJhbWUtPmVkaXRvcigpLT5maW5kU3RyaW5nQW5kU2Nyb2xsVG9WaXNpYmxlKHRleHQsIHJh
bmdlLCBvcHRpb25zKTsKKyAgICBpZiAobWF0Y2gpIHsKKyAgICAgICAgLy8gTW92ZSB0aGUgaGln
aGxpZ2h0IHRvIHRoZSBuZXcgbWF0Y2guCisgICAgICAgIHNldEFjdGl2ZU1hdGNoQW5kTWFya2Vy
KG1hdGNoKTsKKworICAgICAgICBpZiAobV9oaWdobGlnaHRBbGxNYXRjaGVzKSB7CiAgICAgICAg
ICAgICAvLyBGSVhNRTogSWYgaXQgaXMgYSBub3QgbmV3IHNlYXJjaCwgd2UgbmVlZCB0byBjYWxj
dWxhdGUgYWN0aXZlTWF0Y2hJbmRleCBhbmQgbm90aWZ5IGNsaWVudC4KKyAgICAgICAgICAgIGlm
IChpc05ld1NlYXJjaCkKKyAgICAgICAgICAgICAgICBzY29wZVN0cmluZ01hdGNoZXModGV4dCwg
dHJ1ZSAvKiByZXNldCAqLyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBXaGVu
IG9ubHkgc2hvd2luZyBzaW5nbGUgbWF0Y2hlcywgY2FuY2VsIGFueSBzY29waW5nIGVmZm9ydCBh
bmQgZW5zdXJlCisgICAgICAgICAgICAvLyBvbmx5IHRoZSBzaW5nbGUgYWN0aXZlIG1hdGNoIGlz
IG1hcmtlZC4KKyAgICAgICAgICAgIGNhbmNlbFBlbmRpbmdTY29waW5nRWZmb3J0KCk7CisgICAg
ICAgICAgICBtX3dlYlBhZ2UtPm1fcGFnZS0+dW5tYXJrQWxsVGV4dE1hdGNoZXMoKTsKKyAgICAg
ICAgICAgIG1fYWN0aXZlTWF0Y2gtPm93bmVyRG9jdW1lbnQoKS0+bWFya2VycygpLT5hZGRUZXh0
TWF0Y2hNYXJrZXIobV9hY3RpdmVNYXRjaC5nZXQoKSwgdHJ1ZSk7CisgICAgICAgICAgICBmcmFt
ZS0+ZWRpdG9yKCktPnNldE1hcmtlZFRleHRNYXRjaGVzQXJlSGlnaGxpZ2h0ZWQodHJ1ZSAvKiBo
aWdobGlnaHQgKi8pOworICAgICAgICAgICAgbV9hY3RpdmVNYXRjaENvdW50ID0gMTsKKyAgICAg
ICAgICAgIG1fYWN0aXZlTWF0Y2hJbmRleCA9IDE7CiAgICAgICAgIH0KKwogICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTc3LDE0ICsyMDEsMTkgQEAg
dm9pZCBJblBhZ2VTZWFyY2hNYW5hZ2VyOjpjbGVhclRleHRNYXRjaGVzKCkKICAgICBtX2FjdGl2
ZU1hdGNoSW5kZXggPSAwOwogfQogCi12b2lkIEluUGFnZVNlYXJjaE1hbmFnZXI6OnNldE1hcmtl
ckFjdGl2ZShSYW5nZSogcmFuZ2UsIGJvb2wgYWN0aXZlKQordm9pZCBJblBhZ2VTZWFyY2hNYW5h
Z2VyOjpzZXRBY3RpdmVNYXRjaEFuZE1hcmtlcihQYXNzUmVmUHRyPFJhbmdlPiByYW5nZSkKIHsK
LSAgICBpZiAoIXJhbmdlKQotICAgICAgICByZXR1cm47Ci0gICAgRG9jdW1lbnQqIGRvYyA9IG1f
YWN0aXZlTWF0Y2gtPm93bmVyRG9jdW1lbnQoKTsKLSAgICBpZiAoIWRvYykKLSAgICAgICAgcmV0
dXJuOwotICAgIGRvYy0+bWFya2VycygpLT5zZXRNYXJrZXJzQWN0aXZlKHJhbmdlLCBhY3RpdmUp
OworICAgIC8vIENsZWFyIHRoZSBvbGQgbWFya2VyLCB1cGRhdGUgb3VyIHJhbmdlLCBhbmQgaGln
aGxpZ2h0IHRoZSBuZXcgcmFuZ2UuCisgICAgaWYgKG1fYWN0aXZlTWF0Y2guZ2V0KCkpIHsKKyAg
ICAgICAgaWYgKERvY3VtZW50KiBkb2MgPSBtX2FjdGl2ZU1hdGNoLT5vd25lckRvY3VtZW50KCkp
CisgICAgICAgICAgICBkb2MtPm1hcmtlcnMoKS0+c2V0TWFya2Vyc0FjdGl2ZShtX2FjdGl2ZU1h
dGNoLmdldCgpLCBmYWxzZSk7CisgICAgfQorCisgICAgbV9hY3RpdmVNYXRjaCA9IHJhbmdlOwor
ICAgIGlmIChtX2FjdGl2ZU1hdGNoLmdldCgpKSB7CisgICAgICAgIGlmIChEb2N1bWVudCogZG9j
ID0gbV9hY3RpdmVNYXRjaC0+b3duZXJEb2N1bWVudCgpKQorICAgICAgICAgICAgZG9jLT5tYXJr
ZXJzKCktPnNldE1hcmtlcnNBY3RpdmUobV9hY3RpdmVNYXRjaC5nZXQoKSwgdHJ1ZSk7CisgICAg
fQogfQogCiB2b2lkIEluUGFnZVNlYXJjaE1hbmFnZXI6OmZyYW1lVW5sb2FkZWQoY29uc3QgRnJh
bWUqIGZyYW1lKQpAQCAtMjQwLDcgKzI2OSw3IEBAIHZvaWQgSW5QYWdlU2VhcmNoTWFuYWdlcjo6
c2NvcGVTdHJpbmdNYXRjaGVzKGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCByZXNldCwgRnJhCiAg
ICAgYm9vbCB0aW1lb3V0ID0gZmFsc2U7CiAgICAgZG91YmxlIHN0YXJ0VGltZSA9IGN1cnJlbnRU
aW1lKCk7CiAgICAgZG8gewotICAgICAgICBSZWZQdHI8UmFuZ2U+IHJlc3VsdFJhbmdlKGZpbmRQ
bGFpblRleHQoc2VhcmNoUmFuZ2UuZ2V0KCksIHRleHQsIENhc2VJbnNlbnNpdGl2ZSkpOworICAg
ICAgICBSZWZQdHI8UmFuZ2U+IHJlc3VsdFJhbmdlKGZpbmRQbGFpblRleHQoc2VhcmNoUmFuZ2Uu
Z2V0KCksIHRleHQsIG1fc2NvcGluZ0Nhc2VJbnNlbnNpdGl2ZSA/IENhc2VJbnNlbnNpdGl2ZSA6
IDApKTsKICAgICAgICAgaWYgKHJlc3VsdFJhbmdlLT5jb2xsYXBzZWQoZWMpKSB7CiAgICAgICAg
ICAgICBpZiAoIXJlc3VsdFJhbmdlLT5zdGFydENvbnRhaW5lcigpLT5pc0luU2hhZG93VHJlZSgp
KQogICAgICAgICAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L1dlYktpdFN1cHBvcnQvSW5QYWdlU2VhcmNoTWFuYWdlci5oIGIvU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvSW5QYWdlU2VhcmNoTWFuYWdlci5oCmluZGV4IDAz
YWY4YTdjMWVjMzIzNzBjZGI3ZWJlOWYzNmJkOTQ3NTc5N2Q1MDkuLmY0OGJiOGUyOTA0ZDQ0NWYz
Njc1Zjg3ZDZhOTNmNjU1MWUxMWM0MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9XZWJLaXRTdXBwb3J0L0luUGFnZVNlYXJjaE1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9JblBhZ2VTZWFyY2hNYW5hZ2VyLmgKQEAgLTM5
LDcgKzM5LDcgQEAgcHVibGljOgogICAgIEluUGFnZVNlYXJjaE1hbmFnZXIoV2ViUGFnZVByaXZh
dGUqKTsKICAgICB+SW5QYWdlU2VhcmNoTWFuYWdlcigpOwogCi0gICAgYm9vbCBmaW5kTmV4dFN0
cmluZyhjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgZm9yd2FyZCk7CisgICAgYm9vbCBmaW5kTmV4
dFN0cmluZyhjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpGaW5kT3B0aW9ucywgYm9vbCB3cmFwLCBi
b29sIGhpZ2hsaWdodEFsbE1hdGNoZXMpOwogICAgIHZvaWQgZnJhbWVVbmxvYWRlZChjb25zdCBX
ZWJDb3JlOjpGcmFtZSopOwogCiBwcml2YXRlOgpAQCAtNDcsNyArNDcsNyBAQCBwcml2YXRlOgog
ICAgIGZyaWVuZCBjbGFzcyBEZWZlcnJlZFNjb3BlU3RyaW5nTWF0Y2hlczsKIAogICAgIHZvaWQg
Y2xlYXJUZXh0TWF0Y2hlcygpOwotICAgIHZvaWQgc2V0TWFya2VyQWN0aXZlKFdlYkNvcmU6OlJh
bmdlKiwgYm9vbCk7CisgICAgdm9pZCBzZXRBY3RpdmVNYXRjaEFuZE1hcmtlcihQYXNzUmVmUHRy
PFdlYkNvcmU6OlJhbmdlPik7CiAgICAgYm9vbCBmaW5kQW5kTWFya1RleHQoY29uc3QgU3RyaW5n
JiwgV2ViQ29yZTo6UmFuZ2UqLCBXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdlYkNvcmU6OkZpbmRP
cHRpb25zJiwgYm9vbCk7CiAgICAgYm9vbCBzaG91bGRTZWFyY2hGb3JUZXh0KGNvbnN0IFN0cmlu
ZyYpOwogICAgIHZvaWQgc2NvcGVTdHJpbmdNYXRjaGVzKGNvbnN0IFN0cmluZyYgdGV4dCwgYm9v
bCByZXNldCwgV2ViQ29yZTo6RnJhbWUqIHNjb3BpbmdGcmFtZSA9IDApOwpAQCAtNjIsNyArNjIs
OSBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX2FjdGl2ZVNlYXJjaFN0cmluZzsKICAgICBpbnQg
bV9hY3RpdmVNYXRjaENvdW50OwogICAgIGJvb2wgbV9zY29waW5nQ29tcGxldGU7CisgICAgYm9v
bCBtX3Njb3BpbmdDYXNlSW5zZW5zaXRpdmU7CiAgICAgYm9vbCBtX2xvY2F0aW5nQWN0aXZlTWF0
Y2g7CisgICAgYm9vbCBtX2hpZ2hsaWdodEFsbE1hdGNoZXM7CiAgICAgaW50IG1fYWN0aXZlTWF0
Y2hJbmRleDsKIH07CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5n
ZUxvZwppbmRleCA1ZDliNzViZTgzOTM3M2RjZTZlOWNhYjhhNGQxMDExOWRmYjQ4NmQyLi41MjE5
ODQxZjE3ZDFiN2FiYjY5MzlmYThkMWExYTFkZTUyNmI1ZTEzIDEwMDY0NAotLS0gYS9Ub29scy9D
aGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMDQt
MDMgIE1pa2UgTGF0dGFuemlvICA8bWxhdHRhbnppb0ByaW0uY29tPgorCisgICAgICAgIFtCbGFj
a0JlcnJ5XSBFeHBvc2UgQ2FzZVNlbnNpdGl2ZSwgV3JhcCwgYW5kIEhpZ2hsaWdodEFsbE1hdGNo
ZXMgaW4gV2ViUGFnZTo6ZmluZE5leHRTdHJpbmcoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODI2NDMKKworICAgICAgICBVcGRhdGUgTGF5b3V0VGVz
dENvbnRyb2xsZXIgdG8gYWNjb21vZGF0ZSB0aGUgbmV3IGZpbmQgQVBJLgorICAgICAgICBJdCBu
b3cgcHJvdmlkZXMgY2FzZVNlbnNpdGl2ZSBmdW5jdGlvbmFsaXR5IHRvIERSVC4KKworICAgICAg
ICBJbnRlcm5hbCBSZXZpZXcgYnkgQW5keSBDaGVuLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9MYXlv
dXRUZXN0Q29udHJvbGxlckJsYWNrQmVycnkuY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRy
b2xsZXI6OmZpbmRTdHJpbmcpOgorCiAyMDEyLTA0LTAzICBTdWRhcnNhbmEgTmFnaW5lbmkgIDxz
dWRhcnNhbmEubmFnaW5lbmlAbGludXguaW50ZWwuY29tPgogCiAgICAgICAgIFtFRkxdIERSVCBz
dXBwb3J0IGZvciBzZXRJbnRlcmFjdGl2ZUZvcm1WYWxpZGF0aW9uRW5hYmxlZApkaWZmIC0tZ2l0
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9MYXlvdXRUZXN0Q29udHJvbGxlckJs
YWNrQmVycnkuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9MYXlvdXRUZXN0
Q29udHJvbGxlckJsYWNrQmVycnkuY3BwCmluZGV4IGYxNzM1MDY0NWU0ZmQ5N2ZkN2VhMWRlMWI5
NDYyNzZkNDY2MTQ2M2UuLjZiMjYyM2JiYzY3ZWQzMDEyY2FkNjc2MTcwZDA2ZDRkNWIxMDgxYjQg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvTGF5b3V0VGVzdENv
bnRyb2xsZXJCbGFja0JlcnJ5LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2Jl
cnJ5L0xheW91dFRlc3RDb250cm9sbGVyQmxhY2tCZXJyeS5jcHAKQEAgLTgwNSwxMyArODA1LDE2
IEBAIGJvb2wgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmZpbmRTdHJpbmcoSlNDb250ZXh0UmVmIGNv
bnRleHQsIEpTU3RyaW5nUmVmIHRhcmdldCwKICAgICBXZWJDb3JlOjpGaW5kT3B0aW9ucyBvcHRp
b25zID0gMDsKIAogICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBsZW5ndGhQcm9wZXJ0eU5h
bWUoQWRvcHQsIEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJsZW5ndGgiKSk7Ci0gICAg
SlNWYWx1ZVJlZiBsZW5ndGhWYWx1ZSA9IEpTT2JqZWN0R2V0UHJvcGVydHkoY29udGV4dCwgb3B0
aW9uc0FycmF5LCBsZW5ndGhQcm9wZXJ0eU5hbWUuZ2V0KCksIDApOwotICAgIGlmICghSlNWYWx1
ZUlzTnVtYmVyKGNvbnRleHQsIGxlbmd0aFZhbHVlKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIEpTVmFsdWVSZWYgbGVuZ3RoVmFsdWU7CisgICAgaWYgKG9wdGlvbnNBcnJheSkgeworICAg
ICAgICBsZW5ndGhWYWx1ZSA9IEpTT2JqZWN0R2V0UHJvcGVydHkoY29udGV4dCwgb3B0aW9uc0Fy
cmF5LCBsZW5ndGhQcm9wZXJ0eU5hbWUuZ2V0KCksIDApOworICAgICAgICBpZiAoIUpTVmFsdWVJ
c051bWJlcihjb250ZXh0LCBsZW5ndGhWYWx1ZSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgfQogCiAgICAgV1RGOjpTdHJpbmcgbmFtZVN0ciA9IGpzU3RyaW5nUmVmVG9XZWJDb3Jl
U3RyaW5nKHRhcmdldCk7CiAKLSAgICBzaXplX3QgbGVuZ3RoID0gc3RhdGljX2Nhc3Q8c2l6ZV90
PihKU1ZhbHVlVG9OdW1iZXIoY29udGV4dCwgbGVuZ3RoVmFsdWUsIDApKTsKKyAgICBzaXplX3Qg
bGVuZ3RoID0gb3B0aW9uc0FycmF5ID8gc3RhdGljX2Nhc3Q8c2l6ZV90PihKU1ZhbHVlVG9OdW1i
ZXIoY29udGV4dCwgbGVuZ3RoVmFsdWUsIDApKSA6IDA7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCBsZW5ndGg7ICsraSkgewogICAgICAgICBKU1ZhbHVlUmVmIHZhbHVlID0gSlNPYmplY3RH
ZXRQcm9wZXJ0eUF0SW5kZXgoY29udGV4dCwgb3B0aW9uc0FycmF5LCBpLCAwKTsKICAgICAgICAg
aWYgKCFKU1ZhbHVlSXNTdHJpbmcoY29udGV4dCwgdmFsdWUpKQpAQCAtODMyLDcgKzgzNSw3IEBA
IGJvb2wgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmZpbmRTdHJpbmcoSlNDb250ZXh0UmVmIGNvbnRl
eHQsIEpTU3RyaW5nUmVmIHRhcmdldCwKICAgICAgICAgZWxzZSBpZiAoSlNTdHJpbmdJc0VxdWFs
VG9VVEY4Q1N0cmluZyhvcHRpb25OYW1lLmdldCgpLCAiU3RhcnRJblNlbGVjdGlvbiIpKQogICAg
ICAgICAgICAgb3B0aW9ucyB8PSBXZWJDb3JlOjpTdGFydEluU2VsZWN0aW9uOwogICAgIH0KLSAg
ICByZXR1cm4gQmxhY2tCZXJyeTo6V2ViS2l0OjpEdW1wUmVuZGVyVHJlZTo6Y3VycmVudEluc3Rh
bmNlKCktPnBhZ2UoKS0+ZmluZE5leHRTdHJpbmcobmFtZVN0ci51dGY4KCkuZGF0YSgpLCAhKG9w
dGlvbnMgfCBXZWJDb3JlOjpCYWNrd2FyZHMpKTsKKyAgICByZXR1cm4gQmxhY2tCZXJyeTo6V2Vi
S2l0OjpEdW1wUmVuZGVyVHJlZTo6Y3VycmVudEluc3RhbmNlKCktPnBhZ2UoKS0+ZmluZE5leHRT
dHJpbmcobmFtZVN0ci51dGY4KCkuZGF0YSgpLCAhKG9wdGlvbnMgJiBXZWJDb3JlOjpCYWNrd2Fy
ZHMpLCAhKG9wdGlvbnMgJiBXZWJDb3JlOjpDYXNlSW5zZW5zaXRpdmUpLCB0cnVlLCB0cnVlKTsK
IH0KIAogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZGVsZXRlTG9jYWxTdG9yYWdlRm9yT3Jp
Z2luKEpTU3RyaW5nUmVmIFVSTCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmMDRmOGI1ZDQ0MDcxMWQ1NDYzY2E1YWNkMWRk
YzI2MzY2YzJmNmY0Li4wODc0ODUzYjI4ZTJlMGYwYjk2MTMxZDQzNzY2ZGJhMTc2YzBlYjg5IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMDQtMDMgIE1pa2UgTGF0dGFuemlvICA8bWxhdHRh
bnppb0ByaW0uY29tPgorCisgICAgICAgIFtCbGFja0JlcnJ5XSBFeHBvc2UgQ2FzZVNlbnNpdGl2
ZSwgV3JhcCwgYW5kIEhpZ2hsaWdodEFsbE1hdGNoZXMgaW4gV2ViUGFnZTo6ZmluZE5leHRTdHJp
bmcoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODI2
NDMKKworICAgICAgICBVcGRhdGUgZmluZFN0cmluZy1tYXJrZXJzIHRvIGFsc28gdGVzdCBjYXNl
U2Vuc2l0aXZlLgorICAgICAgICBBbGwgZmluZFN0cmluZyB0ZXN0cyB1c2VkIHRvIGJlIGNhc2Ug
aW5zZW5zaXRpdmUgYmVmb3JlLgorCisgICAgICAgIEludGVybmFsIFJldmlldyBieSBBbmR5IENo
ZW4uCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9ibGFja2JlcnJ5L2VkaXRpbmcvdGV4dC1pdGVyYXRvci9maW5kU3RyaW5nLW1hcmtl
cnMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2JsYWNrYmVycnkvZWRpdGluZy90
ZXh0LWl0ZXJhdG9yL2ZpbmRTdHJpbmctbWFya2Vycy5odG1sOgorCiAyMDEyLTA0LTAzICBBbWkg
RmlzY2htYW4gIDxmaXNjaG1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgTGF5b3V0IFRlc3Qg
bWVkaWEvdmlkZW8tc3JjLXNvdXJjZS5odG1sIGlzIGZsYWt5CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9ibGFja2JlcnJ5L2VkaXRpbmcvdGV4dC1pdGVyYXRvci9maW5kU3RyaW5n
LW1hcmtlcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vYmxhY2tiZXJyeS9l
ZGl0aW5nL3RleHQtaXRlcmF0b3IvZmluZFN0cmluZy1tYXJrZXJzLWV4cGVjdGVkLnR4dAppbmRl
eCBlNTExZTc0YTM5MzdiODhjNmI5ZDczZjc4MjRkYjRjMDhjOWM0MzU1Li5hNjRhN2M4NWUxYjc2
YmU3Y2YzOWE5ZGMzNDE1M2M5ZDA3OGE4ZjVmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9ibGFja2JlcnJ5L2VkaXRpbmcvdGV4dC1pdGVyYXRvci9maW5kU3RyaW5nLW1hcmtlcnMt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2JsYWNrYmVycnkvZWRpdGlu
Zy90ZXh0LWl0ZXJhdG9yL2ZpbmRTdHJpbmctbWFya2Vycy1leHBlY3RlZC50eHQKQEAgLTEsMTIg
KzEsOSBAQAogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRF
Ci1QQVNTIGludGVybmFscy5tYXJrZXJDb3VudEZvck5vZGUoZS5maXJzdENoaWxkLCAidGV4dG1h
dGNoIikgaXMgMQotUEFTUyAiYSIgaXMgImEiCi1QQVNTIGludGVybmFscy5tYXJrZXJDb3VudEZv
ck5vZGUoZS5maXJzdENoaWxkLCAidGV4dG1hdGNoIikgaXMgMQotUEFTUyAiYiIgaXMgImIiCi1Q
QVNTIGludGVybmFscy5tYXJrZXJDb3VudEZvck5vZGUoZS5maXJzdENoaWxkLCAidGV4dG1hdGNo
IikgaXMgMQotUEFTUyAiYyIgaXMgImMiCitQQVNTIGludGVybmFscy5tYXJrZXJDb3VudEZvck5v
ZGUoZS5maXJzdENoaWxkLCAidGV4dG1hdGNoIikgaXMgMAorUEFTUyBpbnRlcm5hbHMubWFya2Vy
Q291bnRGb3JOb2RlKGUuZmlyc3RDaGlsZCwgInRleHRtYXRjaCIpIGlzIDAKK1BBU1MgaW50ZXJu
YWxzLm1hcmtlckNvdW50Rm9yTm9kZShlLmZpcnN0Q2hpbGQsICJ0ZXh0bWF0Y2giKSBpcyAwCiBQ
QVNTIGludGVybmFscy5tYXJrZXJDb3VudEZvck5vZGUoZS5maXJzdENoaWxkLCAidGV4dG1hdGNo
IikgaXMgMQogUEFTUyAiZCIgaXMgImQiCiBQQVNTIGludGVybmFscy5tYXJrZXJDb3VudEZvck5v
ZGUoZS5maXJzdENoaWxkLCAidGV4dG1hdGNoIikgaXMgMwpAQCAtMTYsMzYgKzEzLDMxIEBAIFBB
U1MgImUiIGlzICJlIgogUEFTUyBpbnRlcm5hbHMubWFya2VyQ291bnRGb3JOb2RlKGUuZmlyc3RD
aGlsZCwgInRleHRtYXRjaCIpIGlzIDEKIFBBU1MgImYiIGlzICJmIgogUEFTUyBpbnRlcm5hbHMu
bWFya2VyQ291bnRGb3JOb2RlKGUuZmlyc3RDaGlsZCwgInRleHRtYXRjaCIpIGlzIDEKLVBBU1Mg
ImciIGlzICJnIgotUEFTUyBpbnRlcm5hbHMubWFya2VyQ291bnRGb3JOb2RlKGUuZmlyc3RDaGls
ZCwgInRleHRtYXRjaCIpIGlzIDIKLVBBU1MgImgiIGlzICJoIgotUEFTUyAiaCIgaXMgImgiCitQ
QVNTICJUIiBpcyAiVCIKK1BBU1MgaW50ZXJuYWxzLm1hcmtlckNvdW50Rm9yTm9kZShlLmZpcnN0
Q2hpbGQsICJ0ZXh0bWF0Y2giKSBpcyAwCitQQVNTIGludGVybmFscy5tYXJrZXJDb3VudEZvck5v
ZGUoZS5maXJzdENoaWxkLCAidGV4dG1hdGNoIikgaXMgMAogUEFTUyBpbnRlcm5hbHMubWFya2Vy
Q291bnRGb3JOb2RlKGUuZmlyc3RDaGlsZCwgInRleHRtYXRjaCIpIGlzIDEKLVBBU1MgImkiIGlz
ICJpIgorUEFTUyAieCIgaXMgIngiCiBQQVNTIGludGVybmFscy5tYXJrZXJDb3VudEZvck5vZGUo
ZS5maXJzdENoaWxkLCAidGV4dG1hdGNoIikgaXMgMQotUEFTUyAiaiIgaXMgImoiCitQQVNTICJ5
IiBpcyAieSIKIFBBU1MgaW50ZXJuYWxzLm1hcmtlckNvdW50Rm9yTm9kZShlLmZpcnN0Q2hpbGQs
ICJ0ZXh0bWF0Y2giKSBpcyAxCi1QQVNTICJrIiBpcyAiayIKK1BBU1MgInoiIGlzICJ6IgogUEFT
UyBpbnRlcm5hbHMubWFya2VyQ291bnRGb3JOb2RlKGUuZmlyc3RDaGlsZCwgInRleHRtYXRjaCIp
IGlzIDEKLVBBU1MgImwiIGlzICJsIgorUEFTUyAiLiIgaXMgIi4iCiBQQVNTIGludGVybmFscy5t
YXJrZXJDb3VudEZvck5vZGUoZS5maXJzdENoaWxkLCAidGV4dG1hdGNoIikgaXMgMQotUEFTUyAi
bSIgaXMgIm0iCitQQVNTICJhIiBpcyAiYSIKIFBBU1MgaW50ZXJuYWxzLm1hcmtlckNvdW50Rm9y
Tm9kZShlLmZpcnN0Q2hpbGQsICJ0ZXh0bWF0Y2giKSBpcyAxCi1QQVNTICJuIiBpcyAibiIKLVBB
U1MgaW50ZXJuYWxzLm1hcmtlckNvdW50Rm9yTm9kZShlLmZpcnN0Q2hpbGQsICJ0ZXh0bWF0Y2gi
KSBpcyA0Ci1QQVNTICJvIiBpcyAibyIKLVBBU1MgIm8iIGlzICJvIgotUEFTUyAibyIgaXMgIm8i
Ci1QQVNTICJvIiBpcyAibyIKK1BBU1MgImIiIGlzICJiIgogUEFTUyBpbnRlcm5hbHMubWFya2Vy
Q291bnRGb3JOb2RlKGUuZmlyc3RDaGlsZCwgInRleHRtYXRjaCIpIGlzIDEKLVBBU1MgInAiIGlz
ICJwIgorUEFTUyAiYyIgaXMgImMiCiBQQVNTIGludGVybmFscy5tYXJrZXJDb3VudEZvck5vZGUo
ZS5maXJzdENoaWxkLCAidGV4dG1hdGNoIikgaXMgMQotUEFTUyAicSIgaXMgInEiCi1QQVNTIGlu
dGVybmFscy5tYXJrZXJDb3VudEZvck5vZGUoZS5maXJzdENoaWxkLCAidGV4dG1hdGNoIikgaXMg
MgotUEFTUyAiciIgaXMgInIiCi1QQVNTICJyIiBpcyAiciIKK1BBU1MgImQiIGlzICJkIgorUEFT
UyBpbnRlcm5hbHMubWFya2VyQ291bnRGb3JOb2RlKGUuZmlyc3RDaGlsZCwgInRleHRtYXRjaCIp
IGlzIDMKK1BBU1MgImUiIGlzICJlIgorUEFTUyAiZSIgaXMgImUiCitQQVNTICJlIiBpcyAiZSIK
IFBBU1MgaW50ZXJuYWxzLm1hcmtlckNvdW50Rm9yTm9kZShlLmZpcnN0Q2hpbGQsICJ0ZXh0bWF0
Y2giKSBpcyAxCi1QQVNTICJzIiBpcyAicyIKK1BBU1MgImYiIGlzICJmIgogUEFTUyBpbnRlcm5h
bHMubWFya2VyQ291bnRGb3JOb2RlKGUuZmlyc3RDaGlsZCwgInRleHRtYXRjaCIpIGlzIDIKIFBB
U1MgIlQiIGlzICJUIgogUEFTUyAidCIgaXMgInQiCkBAIC01NSw4ICs0Nyw2IEBAIFBBU1MgInUi
IGlzICJ1IgogUEFTUyBpbnRlcm5hbHMubWFya2VyQ291bnRGb3JOb2RlKGUuZmlyc3RDaGlsZCwg
InRleHRtYXRjaCIpIGlzIDEKIFBBU1MgInYiIGlzICJ2IgogUEFTUyBpbnRlcm5hbHMubWFya2Vy
Q291bnRGb3JOb2RlKGUuZmlyc3RDaGlsZCwgInRleHRtYXRjaCIpIGlzIDEKLVBBU1MgInciIGlz
ICJ3IgotUEFTUyBpbnRlcm5hbHMubWFya2VyQ291bnRGb3JOb2RlKGUuZmlyc3RDaGlsZCwgInRl
eHRtYXRjaCIpIGlzIDEKIFBBU1MgIngiIGlzICJ4IgogUEFTUyBpbnRlcm5hbHMubWFya2VyQ291
bnRGb3JOb2RlKGUuZmlyc3RDaGlsZCwgInRleHRtYXRjaCIpIGlzIDEKIFBBU1MgInkiIGlzICJ5
IgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vYmxhY2tiZXJyeS9lZGl0aW5nL3Rl
eHQtaXRlcmF0b3IvZmluZFN0cmluZy1tYXJrZXJzLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9ibGFja2JlcnJ5L2VkaXRpbmcvdGV4dC1pdGVyYXRvci9maW5kU3RyaW5nLW1hcmtlcnMuaHRt
bAppbmRleCA2MjQwMDg3ODE0ZWU1Yzk4YTI5MDQxY2YyOTUwNjI2Mzk3MzI5YzU4Li5jOWMyOWUw
MDZlNTcwNGMzYWNjYmQwNzJjMWY5ZTNkNjYzZWU5YzNkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9ibGFja2JlcnJ5L2VkaXRpbmcvdGV4dC1pdGVyYXRvci9maW5kU3RyaW5nLW1h
cmtlcnMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ibGFja2JlcnJ5L2VkaXRpbmcv
dGV4dC1pdGVyYXRvci9maW5kU3RyaW5nLW1hcmtlcnMuaHRtbApAQCAtMzMsNDQgKzMzLDU1IEBA
IGZ1bmN0aW9uIGNyZWF0ZVBsYWluVGV4dEVsZW1lbnQoaWQsIHRleHQsIHBhcmVudCkgewogICAg
IHJldHVybiBlOwogfQogCi1mdW5jdGlvbiBvY2N1cnJlbmNlcyhzdHJpbmcsIHN1YnN0cmluZykg
eworZnVuY3Rpb24gb2NjdXJyZW5jZXMoc3RyaW5nLCBzdWJzdHJpbmcsIGNhc2VTZW5zaXRpdmUp
IHsKICAgICB2YXIgbj0wOwogICAgIHZhciBwb3M9MDsKIAorICAgIHZhciBoYXlzdGFjayA9IGNh
c2VTZW5zaXRpdmUgPyBzdHJpbmcgOiBzdHJpbmcudG9Mb3dlckNhc2UoKTsKKyAgICB2YXIgbmVl
ZGxlID0gY2FzZVNlbnNpdGl2ZSA/IHN1YnN0cmluZyA6IHN1YnN0cmluZy50b0xvd2VyQ2FzZSgp
OworCiAgICAgd2hpbGUgKHRydWUpIHsKLSAgICAgICAgcG9zID0gc3RyaW5nLnRvTG93ZXJDYXNl
KCkuaW5kZXhPZihzdWJzdHJpbmcudG9Mb3dlckNhc2UoKSxwb3MpOworICAgICAgICBwb3MgPSBo
YXlzdGFjay5pbmRleE9mKG5lZWRsZSxwb3MpOwogICAgICAgICBpZiAocG9zIT0tMSkgewogICAg
ICAgICAgICAgKytuOwotICAgICAgICAgICAgcG9zKz1zdWJzdHJpbmcubGVuZ3RoOworICAgICAg
ICAgICAgcG9zKz1uZWVkbGUubGVuZ3RoOwogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIGJy
ZWFrOwogICAgIH0KICAgICByZXR1cm4gbjsKIH0KIAotZnVuY3Rpb24gY2hlY2tUZXh0TWF0Y2hN
YXJrZXIoaW5kZXgpIHsKLSAgICBpZiAoaW5kZXggPiAyNikgewotICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Ci0gICAgICAgIHJldHVybjsKK2Z1bmN0aW9uIGNoZWNr
VGV4dE1hdGNoTWFya2VyKGluZGV4LCBmaW5kT3B0aW9ucykgeworICAgIGlmIChpbmRleCA+IDEy
KSB7CisgICAgICAgIGlmIChmaW5kT3B0aW9ucy5sZW5ndGggPT0gMCkgeworICAgICAgICAgICAg
aW5kZXggPSAwOworICAgICAgICAgICAgZmluZE9wdGlvbnMucHVzaCgiQ2FzZUluc2Vuc2l0aXZl
Iik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5u
b3RpZnlEb25lKCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KICAgICB9Ci0gICAg
dmFyIHN0ciA9ICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ei4nOworICAgIHZhciBzdHIgPSAn
QUJDZGVmVFVWeHl6Lic7CiAgICAgdmFyIGNoYXIgPSBzdHIuY2hhckF0KGluZGV4KTsKLSAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5maW5kU3RyaW5nKHN0ci5jaGFyQXQoaW5kZXgpLCBbXSk7Cisg
ICAgdmFyIGNhc2VTZW5zaXRpdmUgPSBmaW5kT3B0aW9ucy5pbmRleE9mKCJDYXNlSW5zZW5zaXRp
dmUiKSA9PSAtMTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5maW5kU3RyaW5nKGNoYXIsIGZp
bmRPcHRpb25zKTsKICAgICAvLyBTdGFydCB0aGUgZnVuY3Rpb24gbGF0ZXIgdG8gYWxsb3cgbWFy
a2luZyBwcm9jZXNzIHRvIGZpbmlzaC4KICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewotICAg
ICAgICB2YXIgY291bnQgPSBvY2N1cnJlbmNlcyh0ZXh0LCBjaGFyKTsKKyAgICAgICAgdmFyIGNv
dW50ID0gb2NjdXJyZW5jZXModGV4dCwgY2hhciwgY2FzZVNlbnNpdGl2ZSk7CisKICAgICAgICAg
Ly8gVGhlIG51bWJlciBvZiBtYXJrZXJzIHNob3VsZCBtYXRjaCB0byB0aGUgb2NjdXJyZW5jZXMg
b2YgdGhlIGNoYXJhY3Rvci4KICAgICAgICAgc2hvdWxkQmUoJ2ludGVybmFscy5tYXJrZXJDb3Vu
dEZvck5vZGUoZS5maXJzdENoaWxkLCAidGV4dG1hdGNoIiknLCBjb3VudC50b1N0cmluZygpKTsK
ICAgICAgICAgdmFyIHNlYXJjaFN0YXJ0SW5kZXggPSAwOwogICAgICAgICAvLyBHZXQgdGhlIGNo
YXIgZnJvbSB0ZXh0IGFuZCBjb21wYXJlIHdpdGggdGhlIG1hcmtlciByYW5nZSBjb250ZW50Lgog
ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNvdW50IDsgKytpKSB7CiAgICAgICAgICAgICB2
YXIgcmFuZ2UgPSBpbnRlcm5hbHMubWFya2VyUmFuZ2VGb3JOb2RlKGUuZmlyc3RDaGlsZCwgInRl
eHRtYXRjaCIsIGkpOwotICAgICAgICAgICAgdmFyIHBvcyA9IHRleHQudG9Mb3dlckNhc2UoKS5p
bmRleE9mKGNoYXIudG9Mb3dlckNhc2UoKSwgc2VhcmNoU3RhcnRJbmRleCk7CisgICAgICAgICAg
ICB2YXIgcG9zID0gY2FzZVNlbnNpdGl2ZSA/IHRleHQuaW5kZXhPZihjaGFyLCBzZWFyY2hTdGFy
dEluZGV4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0ZXh0LnRvTG93
ZXJDYXNlKCkuaW5kZXhPZihjaGFyLnRvTG93ZXJDYXNlKCksIHNlYXJjaFN0YXJ0SW5kZXgpOwog
ICAgICAgICAgICAgc2VhcmNoU3RhcnRJbmRleCA9IHBvcyArIDE7CiAgICAgICAgICAgICB2YXIg
ZXhwZWN0U3RyID0gdGV4dC5jaGFyQXQocG9zKTsKICAgICAgICAgICAgIHNob3VsZEJlKCciJyAr
IHJhbmdlICsgJyInLCAnIicgKyBleHBlY3RTdHIgKyAnIicpOwogICAgICAgICB9Ci0gICAgICAg
IGNoZWNrVGV4dE1hdGNoTWFya2VyKCsraW5kZXgpOworICAgICAgICBjaGVja1RleHRNYXRjaE1h
cmtlcihpbmRleCArIDEsIGZpbmRPcHRpb25zKTsKICAgICB9LCA4NTApOwogfQogCkBAIC04MSw3
ICs5Miw3IEBAIHZhciB0ZXh0ID0gJ1RoZSBxdWljayBicm93biBmb3gganVtcHMgb3ZlciB0aGUg
bGF6eSBkb2cuJzsKIHZhciBlID0gY3JlYXRlUGxhaW5UZXh0RWxlbWVudChpZCwgdGV4dCwgY29u
dGFpbmVyKTsKIAogaWYgKHdpbmRvdy5pbnRlcm5hbHMgJiYgd2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQotICAgIGNoZWNrVGV4dE1hdGNoTWFya2VyKDApOworICAgIGNoZWNrVGV4dE1hdGNo
TWFya2VyKDAsIFtdKTsKIAogdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CiA8L3Njcmlw
dD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>135392</attachid>
            <date>2012-04-03 12:23:21 -0700</date>
            <delta_ts>2012-04-03 13:02:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-82643-20120403152331.patch</filename>
            <type>text/plain</type>
            <size>22572</size>
            <attacher name="Mike Lattanzio">mlattanzio</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEzMDYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwpp
bmRleCBlZjUxZjllYzk0NzlkYTA0YmU1OWVjODlmN2UxZTIyNWUwMTIzMTRkLi5jYTM0MWYwNDFl
M2M5YjhjYmQzYjY2ZDBkYzI2NWMyNjE2NzQxMzIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAxMi0wNC0wMyAgTWlrZSBMYXR0YW56aW8gIDxtbGF0
dGFuemlvQHJpbS5jb20+CisKKyAgICAgICAgW0JsYWNrQmVycnldIEV4cG9zZSBDYXNlU2Vuc2l0
aXZlLCBXcmFwLCBhbmQgSGlnaGxpZ2h0QWxsTWF0Y2hlcyBpbiBXZWJQYWdlOjpmaW5kTmV4dFN0
cmluZygpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04
MjY0MworCisgICAgICAgIEVuaGFuY2UgQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlOjpmaW5k
TmV4dFN0cmluZygpCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIHRvZ2ds
aW5nIGNhc2Ugc2Vuc2l0aXZpdHksCisgICAgICAgIHNlYXJjaCB3cmFwcGluZywgYW5kIHdoZXRo
ZXIgb3Igbm90IHRvIGhpZ2hsaWdodCBhbGwgbWF0Y2hlcworICAgICAgICBpbiBhZGRpdGlvbiB0
byB0aGUgbmV4dCBmb3VuZCBtYXRjaC4KKworICAgICAgICBJIHJlZmFjdG9yZWQgYW5kIHJlbmFt
ZWQgdGhlIG5ldyBzZXRBY3RpdmVNYXRjaEFuZE1hcmtlcigpIG1ldGhvZAorICAgICAgICB0byBt
b3ZlIHRoZSBhY3RpdmUgbWF0Y2ggZnJvbSBvbmUgcmFuZ2UgdG8gYW5vdGhlci4gVGhpcyB3YXMK
KyAgICAgICAgcmVxdWlyZWQgYmVjYXVzZSBpbiB0aGUgY2FzZSBvZiBhIG5vbiB3cmFwcGVkIHNl
YXJjaCB3ZSBkbyBub3QKKyAgICAgICAgd2FudCB0byBhZGp1c3QgdGhlIG1fYWN0aXZlTWF0Y2gg
aWYgYW5vdGhlciBtYXRjaCBpcyBub3QgZm91bmQuCisKKyAgICAgICAgSW50ZXJuYWwgUmV2aWV3
IGJ5IEFuZHkgQ2hlbi4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIEFwaS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6
V2ViUGFnZTo6ZmluZE5leHRTdHJpbmcpOgorICAgICAgICAqIEFwaS9XZWJQYWdlLmg6CisgICAg
ICAgICogV2ViS2l0U3VwcG9ydC9JblBhZ2VTZWFyY2hNYW5hZ2VyLmNwcDoKKyAgICAgICAgKEJs
YWNrQmVycnk6OldlYktpdDo6SW5QYWdlU2VhcmNoTWFuYWdlcjo6SW5QYWdlU2VhcmNoTWFuYWdl
cik6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OkluUGFnZVNlYXJjaE1hbmFnZXI6OmZp
bmROZXh0U3RyaW5nKToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6SW5QYWdlU2VhcmNo
TWFuYWdlcjo6ZmluZEFuZE1hcmtUZXh0KToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6
SW5QYWdlU2VhcmNoTWFuYWdlcjo6c2V0QWN0aXZlTWF0Y2hBbmRNYXJrZXIpOgorICAgICAgICAo
QmxhY2tCZXJyeTo6V2ViS2l0OjpJblBhZ2VTZWFyY2hNYW5hZ2VyOjpzY29wZVN0cmluZ01hdGNo
ZXMpOgorICAgICAgICAqIFdlYktpdFN1cHBvcnQvSW5QYWdlU2VhcmNoTWFuYWdlci5oOgorICAg
ICAgICAoSW5QYWdlU2VhcmNoTWFuYWdlcik6CisKIDIwMTItMDQtMDIgIEphY2t5IEppYW5nICA8
emhhamlhbmdAcmltLmNvbT4KIAogICAgICAgICBbQmxhY2tCZXJyeV0gQWRhcHQgV2ViUGFnZVBy
aXZhdGU6OndlYkNvbnRleHQgdG8gdGhlIEFQSSBjaGFuZ2Ugb2YgcjEwOTU3MApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKaW5kZXggNWNjNmQ2NzQ3N2IyODdjMjBkZTUw
ODQzNjAxZjUxMzJlMzVhNjEzNS4uYTdmNGM1ZDQyZjQ5OWE4MjE5NjcwM2NkMDk0MTdjZDEyNDRj
ODRmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCkBAIC00NjU1
LDkgKzQ2NTUsMTggQEAgdm9pZCBXZWJQYWdlOjpzZXRGb2N1c2VkKGJvb2wgZm9jdXNlZCkKICAg
ICBmb2N1c0NvbnRyb2xsZXItPnNldEZvY3VzZWQoZm9jdXNlZCk7CiB9CiAKLWJvb2wgV2ViUGFn
ZTo6ZmluZE5leHRTdHJpbmcoY29uc3QgY2hhciogdGV4dCwgYm9vbCBmb3J3YXJkKQotewotICAg
IHJldHVybiBkLT5tX2luUGFnZVNlYXJjaE1hbmFnZXItPmZpbmROZXh0U3RyaW5nKFN0cmluZzo6
ZnJvbVVURjgodGV4dCksIGZvcndhcmQpOworYm9vbCBXZWJQYWdlOjpmaW5kTmV4dFN0cmluZyhj
b25zdCBjaGFyKiB0ZXh0LCBib29sIGZvcndhcmQsIGJvb2wgY2FzZVNlbnNpdGl2ZSwgYm9vbCB3
cmFwLCBib29sIGhpZ2hsaWdodEFsbE1hdGNoZXMpCit7CisgICAgV2ViQ29yZTo6RmluZE9wdGlv
bnMgZmluZE9wdGlvbnMgPSBXZWJDb3JlOjpTdGFydEluU2VsZWN0aW9uOworICAgIGlmICghZm9y
d2FyZCkKKyAgICAgICAgZmluZE9wdGlvbnMgfD0gV2ViQ29yZTo6QmFja3dhcmRzOworICAgIGlm
ICghY2FzZVNlbnNpdGl2ZSkKKyAgICAgICAgZmluZE9wdGlvbnMgfD0gV2ViQ29yZTo6Q2FzZUlu
c2Vuc2l0aXZlOworCisgICAgLy8gVGhlIFdlYkNvcmU6OkZpbmRPcHRpb25zOjpXcmFwQXJvdW5k
IGJvb2xlYW4gYWN0dWFsbHkgd3JhcHMgdGhlIHNlYXJjaAorICAgIC8vIHdpdGhpbiB0aGUgY3Vy
cmVudCBmcmFtZSBhcyBvcHBvc2VkIHRvIHRoZSBlbnRpcmUgRG9jdW1lbnQsIHNvIHdlIGhhdmUg
dG8KKyAgICAvLyBwcm92aWRlIG91ciBvd24gd3JhcHBpbmcgY29kZSB0byB3cmFwIGF0IHRoZSB3
aG9sZSBEb2N1bWVudCBsZXZlbC4KKyAgICByZXR1cm4gZC0+bV9pblBhZ2VTZWFyY2hNYW5hZ2Vy
LT5maW5kTmV4dFN0cmluZyhTdHJpbmc6OmZyb21VVEY4KHRleHQpLCBmaW5kT3B0aW9ucywgd3Jh
cCwgaGlnaGxpZ2h0QWxsTWF0Y2hlcyk7CiB9CiAKIHZvaWQgV2ViUGFnZTo6cnVuTGF5b3V0VGVz
dHMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmgg
Yi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuaAppbmRleCAzY2Q3ZGFjYzdj
ZmJhZGIzOTQwODZiMzY1NTU1ZThlMTYxYTQ1ZmU2Li45MDQ0YWZhMTgzYzBkOTQyYjlmYWY1ZDVh
MmI3Y2Q4ZTRkZGU3NzY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBp
L1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuaApA
QCAtMTk3LDExICsxOTcsOSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHJ1bkxheW91dFRlc3RzKCk7
CiAKLSAgICAgLy8gRmluZHMgYW5kIHNlbGVjdHMgdGhlIG5leHQgdXRmOCBzdHJpbmcgdGhhdCBp
cyBhIGNhc2Ugc2Vuc2l0aXZlCi0gICAgIC8vIG1hdGNoIGluIHRoZSB3ZWIgcGFnZS4gSXQgd2ls
bCB3cmFwIHRoZSB3ZWIgcGFnZSBpZiBpdCByZWFjaGVzCi0gICAgIC8vIHRoZSBlbmQuIEFuIGVt
cHR5IHN0cmluZyB3aWxsIHJlc3VsdCBpbiBubyBtYXRjaCBhbmQgbm8gc2VsZWN0aW9uLgotICAg
ICAvLyBSZXR1cm5zIHRydWUgaWYgdGhlIHN0cmluZyBtYXRjaGVkIGFuZCBmYWxzZSBpZiBub3Qu
Ci0gICAgYm9vbCBmaW5kTmV4dFN0cmluZyhjb25zdCBjaGFyKiwgYm9vbCBmb3J3YXJkID0gdHJ1
ZSk7CisgICAgLy8gRmluZCB0aGUgbmV4dCB1dGY4IHN0cmluZyBpbiB0aGUgZ2l2ZW4gZGlyZWN0
aW9uLgorICAgIC8vIENhc2Ugc2Vuc2l0aXZpdHksIHdyYXBwaW5nLCBhbmQgaGlnaGxpZ2h0aW5n
IGFsbCBtYXRjaGVzIGFyZSBhbHNvIHRvZ2dsZWFibGUuCisgICAgYm9vbCBmaW5kTmV4dFN0cmlu
Zyhjb25zdCBjaGFyKiwgYm9vbCBmb3J3YXJkLCBib29sIGNhc2VTZW5zaXRpdmUsIGJvb2wgd3Jh
cCwgYm9vbCBoaWdobGlnaHRBbGxNYXRjaGVzKTsKIAogICAgIC8vIEphdmFTY3JpcHREZWJ1Z2dl
ciBpbnRlcmZhY2UuCiAgICAgYm9vbCBlbmFibGVTY3JpcHREZWJ1Z2dlcigpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvSW5QYWdlU2VhcmNoTWFu
YWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9JblBhZ2VT
ZWFyY2hNYW5hZ2VyLmNwcAppbmRleCBmNWMxMmE4N2I5YTYzNGIyZTE5YjI1NjZlZjNkZTA5MmRh
ZDFjM2E1Li5jYTRlYzJkOTNjZjIxN2Q0OGNmMmUzODg3ODJjOTAyZjVmNzk1ZDExIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9JblBhZ2VTZWFyY2hN
YW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9J
blBhZ2VTZWFyY2hNYW5hZ2VyLmNwcApAQCAtNjUsOCArNjUsMTIgQEAgSW5QYWdlU2VhcmNoTWFu
YWdlcjo6SW5QYWdlU2VhcmNoTWFuYWdlcihXZWJQYWdlUHJpdmF0ZSogcGFnZSkKICAgICA6IG1f
d2ViUGFnZShwYWdlKQogICAgICwgbV9hY3RpdmVNYXRjaCgwKQogICAgICwgbV9yZXN1bWVTY29w
aW5nRnJvbVJhbmdlKDApCisgICAgLCBtX2FjdGl2ZU1hdGNoQ291bnQoMCkKICAgICAsIG1fc2Nv
cGluZ0NvbXBsZXRlKGZhbHNlKQorICAgICwgbV9zY29waW5nQ2FzZUluc2Vuc2l0aXZlKGZhbHNl
KQogICAgICwgbV9sb2NhdGluZ0FjdGl2ZU1hdGNoKGZhbHNlKQorICAgICwgbV9oaWdobGlnaHRB
bGxNYXRjaGVzKGZhbHNlKQorICAgICwgbV9hY3RpdmVNYXRjaEluZGV4KDApCiB7CiB9CiAKQEAg
LTc1LDggKzc5LDEwIEBAIEluUGFnZVNlYXJjaE1hbmFnZXI6On5JblBhZ2VTZWFyY2hNYW5hZ2Vy
KCkKICAgICBjYW5jZWxQZW5kaW5nU2NvcGluZ0VmZm9ydCgpOwogfQogCi1ib29sIEluUGFnZVNl
YXJjaE1hbmFnZXI6OmZpbmROZXh0U3RyaW5nKGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBmb3J3
YXJkKQorYm9vbCBJblBhZ2VTZWFyY2hNYW5hZ2VyOjpmaW5kTmV4dFN0cmluZyhjb25zdCBTdHJp
bmcmIHRleHQsIEZpbmRPcHRpb25zIGZpbmRPcHRpb25zLCBib29sIHdyYXAsIGJvb2wgaGlnaGxp
Z2h0QWxsTWF0Y2hlcykKIHsKKyAgICBtX2hpZ2hsaWdodEFsbE1hdGNoZXMgPSBoaWdobGlnaHRB
bGxNYXRjaGVzOworCiAgICAgaWYgKCF0ZXh0Lmxlbmd0aCgpKSB7CiAgICAgICAgIGNsZWFyVGV4
dE1hdGNoZXMoKTsKICAgICAgICAgY2FuY2VsUGVuZGluZ1Njb3BpbmdFZmZvcnQoKTsKQEAgLTk1
LDEyICsxMDEsMTMgQEAgYm9vbCBJblBhZ2VTZWFyY2hNYW5hZ2VyOjpmaW5kTmV4dFN0cmluZyhj
b25zdCBTdHJpbmcmIHRleHQsIGJvb2wgZm9yd2FyZCkKIAogICAgIFJlZlB0cjxSYW5nZT4gc2Vh
cmNoU3RhcnRpbmdQb2ludChtX2FjdGl2ZU1hdGNoKTsKICAgICBib29sIG5ld1NlYXJjaCA9IG1f
YWN0aXZlU2VhcmNoU3RyaW5nICE9IHRleHQ7CisgICAgYm9vbCBmb3J3YXJkID0gIShmaW5kT3B0
aW9ucyAmIFdlYkNvcmU6OkJhY2t3YXJkcyk7CiAgICAgaWYgKG5ld1NlYXJjaCkgeyAvLyBTdGFy
dCBhIG5ldyBzZWFyY2guCiAgICAgICAgIG1fYWN0aXZlU2VhcmNoU3RyaW5nID0gdGV4dDsKICAg
ICAgICAgY2FuY2VsUGVuZGluZ1Njb3BpbmdFZmZvcnQoKTsKKyAgICAgICAgbV9zY29waW5nQ2Fz
ZUluc2Vuc2l0aXZlID0gZmluZE9wdGlvbnMgJiBDYXNlSW5zZW5zaXRpdmU7CiAgICAgICAgIG1f
d2ViUGFnZS0+bV9wYWdlLT51bm1hcmtBbGxUZXh0TWF0Y2hlcygpOwotICAgIH0gZWxzZSB7IC8v
IFNlYXJjaCBzYW1lIHN0cmluZyBmb3IgbmV4dCBvY2N1cnJlbmNlLgotICAgICAgICBzZXRNYXJr
ZXJBY3RpdmUobV9hY3RpdmVNYXRjaC5nZXQoKSwgZmFsc2UgLyogYWN0aXZlICovKTsKKyAgICB9
IGVsc2UgewogICAgICAgICAvLyBTZWFyY2hpbmcgZm9yIHNhbWUgc3RyaW5nIHNob3VsZCBzdGFy
dCBmcm9tIHRoZSBlbmQgb2YgbGFzdCBtYXRjaC4KICAgICAgICAgaWYgKG1fYWN0aXZlTWF0Y2gp
IHsKICAgICAgICAgICAgIGlmIChmb3J3YXJkKQpAQCAtMTE5LDE5ICsxMjYsMjMgQEAgYm9vbCBJ
blBhZ2VTZWFyY2hNYW5hZ2VyOjpmaW5kTmV4dFN0cmluZyhjb25zdCBTdHJpbmcmIHRleHQsIGJv
b2wgZm9yd2FyZCkKIAogICAgIEZyYW1lKiBjdXJyZW50QWN0aXZlTWF0Y2hGcmFtZSA9IHNlbGVj
dGlvbi5pc05vbmUoKSAmJiBtX2FjdGl2ZU1hdGNoID8gbV9hY3RpdmVNYXRjaC0+b3duZXJEb2N1
bWVudCgpLT5mcmFtZSgpIDogbV93ZWJQYWdlLT5mb2N1c2VkT3JNYWluRnJhbWUoKTsKIAotICAg
IGNvbnN0IEZpbmRPcHRpb25zIGZpbmRPcHRpb25zID0gKGZvcndhcmQgPyAwIDogQmFja3dhcmRz
KQotICAgICAgICB8IENhc2VJbnNlbnNpdGl2ZQotICAgICAgICB8IFN0YXJ0SW5TZWxlY3Rpb247
Ci0KICAgICBpZiAoZmluZEFuZE1hcmtUZXh0KHRleHQsIHNlYXJjaFN0YXJ0aW5nUG9pbnQuZ2V0
KCksIGN1cnJlbnRBY3RpdmVNYXRjaEZyYW1lLCBmaW5kT3B0aW9ucywgbmV3U2VhcmNoKSkKICAg
ICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBGcmFtZSogc3RhcnRGcmFtZSA9IGN1cnJlbnRBY3Rp
dmVNYXRjaEZyYW1lOwogICAgIGRvIHsKLSAgICAgICAgY3VycmVudEFjdGl2ZU1hdGNoRnJhbWUg
PSBET01TdXBwb3J0OjppbmNyZW1lbnRGcmFtZShjdXJyZW50QWN0aXZlTWF0Y2hGcmFtZSwgZm9y
d2FyZCwgdHJ1ZSAvKiB3cmFwRmxhZyAqLyk7CisgICAgICAgIGN1cnJlbnRBY3RpdmVNYXRjaEZy
YW1lID0gRE9NU3VwcG9ydDo6aW5jcmVtZW50RnJhbWUoY3VycmVudEFjdGl2ZU1hdGNoRnJhbWUs
IGZvcndhcmQsIHdyYXApOworCisgICAgICAgIGlmICghY3VycmVudEFjdGl2ZU1hdGNoRnJhbWUp
IHsKKyAgICAgICAgICAgIC8vIFdlIHNob3VsZCBvbmx5IGV2ZXIgaGF2ZSBhIG51bGwgZnJhbWUg
aWYgd2UgaGF2ZW4ndCBmb3VuZCBhbnkKKyAgICAgICAgICAgIC8vIG1hdGNoZXMgYW5kIHdlJ3Jl
IG5vdCB3cmFwcGluZy4gV2UgaGF2ZSBzZWFyY2hlZCBldmVyeSBmcmFtZS4KKyAgICAgICAgICAg
IEFTU0VSVCghd3JhcCk7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKwog
ICAgICAgICBpZiAoZmluZEFuZE1hcmtUZXh0KHRleHQsIDAsIGN1cnJlbnRBY3RpdmVNYXRjaEZy
YW1lLCBmaW5kT3B0aW9ucywgbmV3U2VhcmNoKSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwot
ICAgIH0gd2hpbGUgKGN1cnJlbnRBY3RpdmVNYXRjaEZyYW1lICYmIHN0YXJ0RnJhbWUgIT0gY3Vy
cmVudEFjdGl2ZU1hdGNoRnJhbWUpOworICAgIH0gd2hpbGUgKHN0YXJ0RnJhbWUgIT0gY3VycmVu
dEFjdGl2ZU1hdGNoRnJhbWUpOwogCiAgICAgY2xlYXJUZXh0TWF0Y2hlcygpOwogCkBAIC0xNTcs
MTMgKzE2OCwyNSBAQCBib29sIEluUGFnZVNlYXJjaE1hbmFnZXI6OnNob3VsZFNlYXJjaEZvclRl
eHQoY29uc3QgU3RyaW5nJiB0ZXh0KQogCiBib29sIEluUGFnZVNlYXJjaE1hbmFnZXI6OmZpbmRB
bmRNYXJrVGV4dChjb25zdCBTdHJpbmcmIHRleHQsIFJhbmdlKiByYW5nZSwgRnJhbWUqIGZyYW1l
LCBjb25zdCBGaW5kT3B0aW9ucyYgb3B0aW9ucywgYm9vbCBpc05ld1NlYXJjaCkKIHsKLSAgICBt
X2FjdGl2ZU1hdGNoID0gZnJhbWUtPmVkaXRvcigpLT5maW5kU3RyaW5nQW5kU2Nyb2xsVG9WaXNp
YmxlKHRleHQsIHJhbmdlLCBvcHRpb25zKTsKLSAgICBpZiAobV9hY3RpdmVNYXRjaCkgewotICAg
ICAgICBzZXRNYXJrZXJBY3RpdmUobV9hY3RpdmVNYXRjaC5nZXQoKSwgdHJ1ZSAvKiBhY3RpdmUg
Ki8pOwotICAgICAgICBpZiAoaXNOZXdTZWFyY2gpIHsKLSAgICAgICAgICAgIHNjb3BlU3RyaW5n
TWF0Y2hlcyh0ZXh0LCB0cnVlIC8qIHJlc2V0ICovKTsKKyAgICBpZiAoUmVmUHRyPFJhbmdlPiBt
YXRjaCA9IGZyYW1lLT5lZGl0b3IoKS0+ZmluZFN0cmluZ0FuZFNjcm9sbFRvVmlzaWJsZSh0ZXh0
LCByYW5nZSwgb3B0aW9ucykpIHsKKyAgICAgICAgLy8gTW92ZSB0aGUgaGlnaGxpZ2h0IHRvIHRo
ZSBuZXcgbWF0Y2guCisgICAgICAgIHNldEFjdGl2ZU1hdGNoQW5kTWFya2VyKG1hdGNoKTsKKwor
ICAgICAgICBpZiAobV9oaWdobGlnaHRBbGxNYXRjaGVzKSB7CiAgICAgICAgICAgICAvLyBGSVhN
RTogSWYgaXQgaXMgYSBub3QgbmV3IHNlYXJjaCwgd2UgbmVlZCB0byBjYWxjdWxhdGUgYWN0aXZl
TWF0Y2hJbmRleCBhbmQgbm90aWZ5IGNsaWVudC4KKyAgICAgICAgICAgIGlmIChpc05ld1NlYXJj
aCkKKyAgICAgICAgICAgICAgICBzY29wZVN0cmluZ01hdGNoZXModGV4dCwgdHJ1ZSAvKiByZXNl
dCAqLyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBXaGVuIG9ubHkgc2hvd2lu
ZyBzaW5nbGUgbWF0Y2hlcywgY2FuY2VsIGFueSBzY29waW5nIGVmZm9ydCBhbmQgZW5zdXJlCisg
ICAgICAgICAgICAvLyBvbmx5IHRoZSBzaW5nbGUgYWN0aXZlIG1hdGNoIGlzIG1hcmtlZC4KKyAg
ICAgICAgICAgIGNhbmNlbFBlbmRpbmdTY29waW5nRWZmb3J0KCk7CisgICAgICAgICAgICBtX3dl
YlBhZ2UtPm1fcGFnZS0+dW5tYXJrQWxsVGV4dE1hdGNoZXMoKTsKKyAgICAgICAgICAgIG1fYWN0
aXZlTWF0Y2gtPm93bmVyRG9jdW1lbnQoKS0+bWFya2VycygpLT5hZGRUZXh0TWF0Y2hNYXJrZXIo
bV9hY3RpdmVNYXRjaC5nZXQoKSwgdHJ1ZSk7CisgICAgICAgICAgICBmcmFtZS0+ZWRpdG9yKCkt
PnNldE1hcmtlZFRleHRNYXRjaGVzQXJlSGlnaGxpZ2h0ZWQodHJ1ZSAvKiBoaWdobGlnaHQgKi8p
OworICAgICAgICAgICAgbV9hY3RpdmVNYXRjaENvdW50ID0gMTsKKyAgICAgICAgICAgIG1fYWN0
aXZlTWF0Y2hJbmRleCA9IDE7CiAgICAgICAgIH0KKwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICB9CiAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTc3LDE0ICsyMDAsMTkgQEAgdm9pZCBJblBhZ2VT
ZWFyY2hNYW5hZ2VyOjpjbGVhclRleHRNYXRjaGVzKCkKICAgICBtX2FjdGl2ZU1hdGNoSW5kZXgg
PSAwOwogfQogCi12b2lkIEluUGFnZVNlYXJjaE1hbmFnZXI6OnNldE1hcmtlckFjdGl2ZShSYW5n
ZSogcmFuZ2UsIGJvb2wgYWN0aXZlKQordm9pZCBJblBhZ2VTZWFyY2hNYW5hZ2VyOjpzZXRBY3Rp
dmVNYXRjaEFuZE1hcmtlcihQYXNzUmVmUHRyPFJhbmdlPiByYW5nZSkKIHsKLSAgICBpZiAoIXJh
bmdlKQotICAgICAgICByZXR1cm47Ci0gICAgRG9jdW1lbnQqIGRvYyA9IG1fYWN0aXZlTWF0Y2gt
Pm93bmVyRG9jdW1lbnQoKTsKLSAgICBpZiAoIWRvYykKLSAgICAgICAgcmV0dXJuOwotICAgIGRv
Yy0+bWFya2VycygpLT5zZXRNYXJrZXJzQWN0aXZlKHJhbmdlLCBhY3RpdmUpOworICAgIC8vIENs
ZWFyIHRoZSBvbGQgbWFya2VyLCB1cGRhdGUgb3VyIHJhbmdlLCBhbmQgaGlnaGxpZ2h0IHRoZSBu
ZXcgcmFuZ2UuCisgICAgaWYgKG1fYWN0aXZlTWF0Y2guZ2V0KCkpIHsKKyAgICAgICAgaWYgKERv
Y3VtZW50KiBkb2MgPSBtX2FjdGl2ZU1hdGNoLT5vd25lckRvY3VtZW50KCkpCisgICAgICAgICAg
ICBkb2MtPm1hcmtlcnMoKS0+c2V0TWFya2Vyc0FjdGl2ZShtX2FjdGl2ZU1hdGNoLmdldCgpLCBm
YWxzZSk7CisgICAgfQorCisgICAgbV9hY3RpdmVNYXRjaCA9IHJhbmdlOworICAgIGlmIChtX2Fj
dGl2ZU1hdGNoLmdldCgpKSB7CisgICAgICAgIGlmIChEb2N1bWVudCogZG9jID0gbV9hY3RpdmVN
YXRjaC0+b3duZXJEb2N1bWVudCgpKQorICAgICAgICAgICAgZG9jLT5tYXJrZXJzKCktPnNldE1h
cmtlcnNBY3RpdmUobV9hY3RpdmVNYXRjaC5nZXQoKSwgdHJ1ZSk7CisgICAgfQogfQogCiB2b2lk
IEluUGFnZVNlYXJjaE1hbmFnZXI6OmZyYW1lVW5sb2FkZWQoY29uc3QgRnJhbWUqIGZyYW1lKQpA
QCAtMjQwLDcgKzI2OCw3IEBAIHZvaWQgSW5QYWdlU2VhcmNoTWFuYWdlcjo6c2NvcGVTdHJpbmdN
YXRjaGVzKGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCByZXNldCwgRnJhCiAgICAgYm9vbCB0aW1l
b3V0ID0gZmFsc2U7CiAgICAgZG91YmxlIHN0YXJ0VGltZSA9IGN1cnJlbnRUaW1lKCk7CiAgICAg
ZG8gewotICAgICAgICBSZWZQdHI8UmFuZ2U+IHJlc3VsdFJhbmdlKGZpbmRQbGFpblRleHQoc2Vh
cmNoUmFuZ2UuZ2V0KCksIHRleHQsIENhc2VJbnNlbnNpdGl2ZSkpOworICAgICAgICBSZWZQdHI8
UmFuZ2U+IHJlc3VsdFJhbmdlKGZpbmRQbGFpblRleHQoc2VhcmNoUmFuZ2UuZ2V0KCksIHRleHQs
IG1fc2NvcGluZ0Nhc2VJbnNlbnNpdGl2ZSA/IENhc2VJbnNlbnNpdGl2ZSA6IDApKTsKICAgICAg
ICAgaWYgKHJlc3VsdFJhbmdlLT5jb2xsYXBzZWQoZWMpKSB7CiAgICAgICAgICAgICBpZiAoIXJl
c3VsdFJhbmdlLT5zdGFydENvbnRhaW5lcigpLT5pc0luU2hhZG93VHJlZSgpKQogICAgICAgICAg
ICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktp
dFN1cHBvcnQvSW5QYWdlU2VhcmNoTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L1dlYktpdFN1cHBvcnQvSW5QYWdlU2VhcmNoTWFuYWdlci5oCmluZGV4IDAzYWY4YTdjMWVjMzIz
NzBjZGI3ZWJlOWYzNmJkOTQ3NTc5N2Q1MDkuLmY0OGJiOGUyOTA0ZDQ0NWYzNjc1Zjg3ZDZhOTNm
NjU1MWUxMWM0MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRT
dXBwb3J0L0luUGFnZVNlYXJjaE1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvV2ViS2l0U3VwcG9ydC9JblBhZ2VTZWFyY2hNYW5hZ2VyLmgKQEAgLTM5LDcgKzM5LDcgQEAg
cHVibGljOgogICAgIEluUGFnZVNlYXJjaE1hbmFnZXIoV2ViUGFnZVByaXZhdGUqKTsKICAgICB+
SW5QYWdlU2VhcmNoTWFuYWdlcigpOwogCi0gICAgYm9vbCBmaW5kTmV4dFN0cmluZyhjb25zdCBT
dHJpbmcmIHRleHQsIGJvb2wgZm9yd2FyZCk7CisgICAgYm9vbCBmaW5kTmV4dFN0cmluZyhjb25z
dCBTdHJpbmcmLCBXZWJDb3JlOjpGaW5kT3B0aW9ucywgYm9vbCB3cmFwLCBib29sIGhpZ2hsaWdo
dEFsbE1hdGNoZXMpOwogICAgIHZvaWQgZnJhbWVVbmxvYWRlZChjb25zdCBXZWJDb3JlOjpGcmFt
ZSopOwogCiBwcml2YXRlOgpAQCAtNDcsNyArNDcsNyBAQCBwcml2YXRlOgogICAgIGZyaWVuZCBj
bGFzcyBEZWZlcnJlZFNjb3BlU3RyaW5nTWF0Y2hlczsKIAogICAgIHZvaWQgY2xlYXJUZXh0TWF0
Y2hlcygpOwotICAgIHZvaWQgc2V0TWFya2VyQWN0aXZlKFdlYkNvcmU6OlJhbmdlKiwgYm9vbCk7
CisgICAgdm9pZCBzZXRBY3RpdmVNYXRjaEFuZE1hcmtlcihQYXNzUmVmUHRyPFdlYkNvcmU6OlJh
bmdlPik7CiAgICAgYm9vbCBmaW5kQW5kTWFya1RleHQoY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6
UmFuZ2UqLCBXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdlYkNvcmU6OkZpbmRPcHRpb25zJiwgYm9v
bCk7CiAgICAgYm9vbCBzaG91bGRTZWFyY2hGb3JUZXh0KGNvbnN0IFN0cmluZyYpOwogICAgIHZv
aWQgc2NvcGVTdHJpbmdNYXRjaGVzKGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCByZXNldCwgV2Vi
Q29yZTo6RnJhbWUqIHNjb3BpbmdGcmFtZSA9IDApOwpAQCAtNjIsNyArNjIsOSBAQCBwcml2YXRl
OgogICAgIFN0cmluZyBtX2FjdGl2ZVNlYXJjaFN0cmluZzsKICAgICBpbnQgbV9hY3RpdmVNYXRj
aENvdW50OwogICAgIGJvb2wgbV9zY29waW5nQ29tcGxldGU7CisgICAgYm9vbCBtX3Njb3BpbmdD
YXNlSW5zZW5zaXRpdmU7CiAgICAgYm9vbCBtX2xvY2F0aW5nQWN0aXZlTWF0Y2g7CisgICAgYm9v
bCBtX2hpZ2hsaWdodEFsbE1hdGNoZXM7CiAgICAgaW50IG1fYWN0aXZlTWF0Y2hJbmRleDsKIH07
CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA1
ZDliNzViZTgzOTM3M2RjZTZlOWNhYjhhNGQxMDExOWRmYjQ4NmQyLi41MjE5ODQxZjE3ZDFiN2Fi
YjY5MzlmYThkMWExYTFkZTUyNmI1ZTEzIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysr
IGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMDQtMDMgIE1pa2UgTGF0
dGFuemlvICA8bWxhdHRhbnppb0ByaW0uY29tPgorCisgICAgICAgIFtCbGFja0JlcnJ5XSBFeHBv
c2UgQ2FzZVNlbnNpdGl2ZSwgV3JhcCwgYW5kIEhpZ2hsaWdodEFsbE1hdGNoZXMgaW4gV2ViUGFn
ZTo6ZmluZE5leHRTdHJpbmcoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9ODI2NDMKKworICAgICAgICBVcGRhdGUgTGF5b3V0VGVzdENvbnRyb2xsZXIg
dG8gYWNjb21vZGF0ZSB0aGUgbmV3IGZpbmQgQVBJLgorICAgICAgICBJdCBub3cgcHJvdmlkZXMg
Y2FzZVNlbnNpdGl2ZSBmdW5jdGlvbmFsaXR5IHRvIERSVC4KKworICAgICAgICBJbnRlcm5hbCBS
ZXZpZXcgYnkgQW5keSBDaGVuLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9MYXlvdXRUZXN0Q29udHJv
bGxlckJsYWNrQmVycnkuY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OmZpbmRT
dHJpbmcpOgorCiAyMDEyLTA0LTAzICBTdWRhcnNhbmEgTmFnaW5lbmkgIDxzdWRhcnNhbmEubmFn
aW5lbmlAbGludXguaW50ZWwuY29tPgogCiAgICAgICAgIFtFRkxdIERSVCBzdXBwb3J0IGZvciBz
ZXRJbnRlcmFjdGl2ZUZvcm1WYWxpZGF0aW9uRW5hYmxlZApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvYmxhY2tiZXJyeS9MYXlvdXRUZXN0Q29udHJvbGxlckJsYWNrQmVycnkuY3Bw
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9MYXlvdXRUZXN0Q29udHJvbGxlckJs
YWNrQmVycnkuY3BwCmluZGV4IGYxNzM1MDY0NWU0ZmQ5N2ZkN2VhMWRlMWI5NDYyNzZkNDY2MTQ2
M2UuLmUwMjUwZWNiODNmMDVhYTIzZDdjNTJlZjUxMDFkNWJiODE4Njk1MGEgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvTGF5b3V0VGVzdENvbnRyb2xsZXJCbGFj
a0JlcnJ5LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0xheW91dFRl
c3RDb250cm9sbGVyQmxhY2tCZXJyeS5jcHAKQEAgLTgwNSwxMyArODA1LDE2IEBAIGJvb2wgTGF5
b3V0VGVzdENvbnRyb2xsZXI6OmZpbmRTdHJpbmcoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTU3Ry
aW5nUmVmIHRhcmdldCwKICAgICBXZWJDb3JlOjpGaW5kT3B0aW9ucyBvcHRpb25zID0gMDsKIAog
ICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBsZW5ndGhQcm9wZXJ0eU5hbWUoQWRvcHQsIEpT
U3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJsZW5ndGgiKSk7Ci0gICAgSlNWYWx1ZVJlZiBs
ZW5ndGhWYWx1ZSA9IEpTT2JqZWN0R2V0UHJvcGVydHkoY29udGV4dCwgb3B0aW9uc0FycmF5LCBs
ZW5ndGhQcm9wZXJ0eU5hbWUuZ2V0KCksIDApOwotICAgIGlmICghSlNWYWx1ZUlzTnVtYmVyKGNv
bnRleHQsIGxlbmd0aFZhbHVlKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIEpTVmFsdWVS
ZWYgbGVuZ3RoVmFsdWU7CisgICAgaWYgKG9wdGlvbnNBcnJheSkgeworICAgICAgICBsZW5ndGhW
YWx1ZSA9IEpTT2JqZWN0R2V0UHJvcGVydHkoY29udGV4dCwgb3B0aW9uc0FycmF5LCBsZW5ndGhQ
cm9wZXJ0eU5hbWUuZ2V0KCksIDApOworICAgICAgICBpZiAoIUpTVmFsdWVJc051bWJlcihjb250
ZXh0LCBsZW5ndGhWYWx1ZSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQogCiAg
ICAgV1RGOjpTdHJpbmcgbmFtZVN0ciA9IGpzU3RyaW5nUmVmVG9XZWJDb3JlU3RyaW5nKHRhcmdl
dCk7CiAKLSAgICBzaXplX3QgbGVuZ3RoID0gc3RhdGljX2Nhc3Q8c2l6ZV90PihKU1ZhbHVlVG9O
dW1iZXIoY29udGV4dCwgbGVuZ3RoVmFsdWUsIDApKTsKKyAgICBzaXplX3QgbGVuZ3RoID0gb3B0
aW9uc0FycmF5ID8gc3RhdGljX2Nhc3Q8c2l6ZV90PihKU1ZhbHVlVG9OdW1iZXIoY29udGV4dCwg
bGVuZ3RoVmFsdWUsIDApKSA6IDA7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsZW5ndGg7
ICsraSkgewogICAgICAgICBKU1ZhbHVlUmVmIHZhbHVlID0gSlNPYmplY3RHZXRQcm9wZXJ0eUF0
SW5kZXgoY29udGV4dCwgb3B0aW9uc0FycmF5LCBpLCAwKTsKICAgICAgICAgaWYgKCFKU1ZhbHVl
SXNTdHJpbmcoY29udGV4dCwgdmFsdWUpKQpAQCAtODMyLDcgKzgzNSwxMCBAQCBib29sIExheW91
dFRlc3RDb250cm9sbGVyOjpmaW5kU3RyaW5nKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU1N0cmlu
Z1JlZiB0YXJnZXQsCiAgICAgICAgIGVsc2UgaWYgKEpTU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJp
bmcob3B0aW9uTmFtZS5nZXQoKSwgIlN0YXJ0SW5TZWxlY3Rpb24iKSkKICAgICAgICAgICAgIG9w
dGlvbnMgfD0gV2ViQ29yZTo6U3RhcnRJblNlbGVjdGlvbjsKICAgICB9Ci0gICAgcmV0dXJuIEJs
YWNrQmVycnk6OldlYktpdDo6RHVtcFJlbmRlclRyZWU6OmN1cnJlbnRJbnN0YW5jZSgpLT5wYWdl
KCktPmZpbmROZXh0U3RyaW5nKG5hbWVTdHIudXRmOCgpLmRhdGEoKSwgIShvcHRpb25zIHwgV2Vi
Q29yZTo6QmFja3dhcmRzKSk7CisKKyAgICAvLyBPdXIgbGF5b3V0IHRlc3RzIGFzc3VtZSBmaW5k
IHdpbGwgd3JhcCBhbmQgaGlnaGxpZ2h0IGFsbCBtYXRjaGVzLgorICAgIHJldHVybiBCbGFja0Jl
cnJ5OjpXZWJLaXQ6OkR1bXBSZW5kZXJUcmVlOjpjdXJyZW50SW5zdGFuY2UoKS0+cGFnZSgpLT5m
aW5kTmV4dFN0cmluZyhuYW1lU3RyLnV0ZjgoKS5kYXRhKCksCisgICAgICAgICEob3B0aW9ucyAm
IFdlYkNvcmU6OkJhY2t3YXJkcyksICEob3B0aW9ucyAmIFdlYkNvcmU6OkNhc2VJbnNlbnNpdGl2
ZSksIHRydWUgLyogd3JhcCAqLywgdHJ1ZSAvKiBoaWdobGlnaHRBbGxNYXRjaGVzICovKTsKIH0K
IAogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZGVsZXRlTG9jYWxTdG9yYWdlRm9yT3JpZ2lu
KEpTU3RyaW5nUmVmIFVSTCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmMDRmOGI1ZDQ0MDcxMWQ1NDYzY2E1YWNkMWRkYzI2
MzY2YzJmNmY0Li4wODc0ODUzYjI4ZTJlMGYwYjk2MTMxZDQzNzY2ZGJhMTc2YzBlYjg5IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMDQtMDMgIE1pa2UgTGF0dGFuemlvICA8bWxhdHRhbnpp
b0ByaW0uY29tPgorCisgICAgICAgIFtCbGFja0JlcnJ5XSBFeHBvc2UgQ2FzZVNlbnNpdGl2ZSwg
V3JhcCwgYW5kIEhpZ2hsaWdodEFsbE1hdGNoZXMgaW4gV2ViUGFnZTo6ZmluZE5leHRTdHJpbmco
KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODI2NDMK
KworICAgICAgICBVcGRhdGUgZmluZFN0cmluZy1tYXJrZXJzIHRvIGFsc28gdGVzdCBjYXNlU2Vu
c2l0aXZlLgorICAgICAgICBBbGwgZmluZFN0cmluZyB0ZXN0cyB1c2VkIHRvIGJlIGNhc2UgaW5z
ZW5zaXRpdmUgYmVmb3JlLgorCisgICAgICAgIEludGVybmFsIFJldmlldyBieSBBbmR5IENoZW4u
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9ibGFja2JlcnJ5L2VkaXRpbmcvdGV4dC1pdGVyYXRvci9maW5kU3RyaW5nLW1hcmtlcnMt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2JsYWNrYmVycnkvZWRpdGluZy90ZXh0
LWl0ZXJhdG9yL2ZpbmRTdHJpbmctbWFya2Vycy5odG1sOgorCiAyMDEyLTA0LTAzICBBbWkgRmlz
Y2htYW4gIDxmaXNjaG1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgTGF5b3V0IFRlc3QgbWVk
aWEvdmlkZW8tc3JjLXNvdXJjZS5odG1sIGlzIGZsYWt5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9ibGFja2JlcnJ5L2VkaXRpbmcvdGV4dC1pdGVyYXRvci9maW5kU3RyaW5nLW1h
cmtlcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vYmxhY2tiZXJyeS9lZGl0
aW5nL3RleHQtaXRlcmF0b3IvZmluZFN0cmluZy1tYXJrZXJzLWV4cGVjdGVkLnR4dAppbmRleCBl
NTExZTc0YTM5MzdiODhjNmI5ZDczZjc4MjRkYjRjMDhjOWM0MzU1Li5hNjRhN2M4NWUxYjc2YmU3
Y2YzOWE5ZGMzNDE1M2M5ZDA3OGE4ZjVmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9ibGFja2JlcnJ5L2VkaXRpbmcvdGV4dC1pdGVyYXRvci9maW5kU3RyaW5nLW1hcmtlcnMtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2JsYWNrYmVycnkvZWRpdGluZy90
ZXh0LWl0ZXJhdG9yL2ZpbmRTdHJpbmctbWFya2Vycy1leHBlY3RlZC50eHQKQEAgLTEsMTIgKzEs
OSBAQAogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCi1Q
QVNTIGludGVybmFscy5tYXJrZXJDb3VudEZvck5vZGUoZS5maXJzdENoaWxkLCAidGV4dG1hdGNo
IikgaXMgMQotUEFTUyAiYSIgaXMgImEiCi1QQVNTIGludGVybmFscy5tYXJrZXJDb3VudEZvck5v
ZGUoZS5maXJzdENoaWxkLCAidGV4dG1hdGNoIikgaXMgMQotUEFTUyAiYiIgaXMgImIiCi1QQVNT
IGludGVybmFscy5tYXJrZXJDb3VudEZvck5vZGUoZS5maXJzdENoaWxkLCAidGV4dG1hdGNoIikg
aXMgMQotUEFTUyAiYyIgaXMgImMiCitQQVNTIGludGVybmFscy5tYXJrZXJDb3VudEZvck5vZGUo
ZS5maXJzdENoaWxkLCAidGV4dG1hdGNoIikgaXMgMAorUEFTUyBpbnRlcm5hbHMubWFya2VyQ291
bnRGb3JOb2RlKGUuZmlyc3RDaGlsZCwgInRleHRtYXRjaCIpIGlzIDAKK1BBU1MgaW50ZXJuYWxz
Lm1hcmtlckNvdW50Rm9yTm9kZShlLmZpcnN0Q2hpbGQsICJ0ZXh0bWF0Y2giKSBpcyAwCiBQQVNT
IGludGVybmFscy5tYXJrZXJDb3VudEZvck5vZGUoZS5maXJzdENoaWxkLCAidGV4dG1hdGNoIikg
aXMgMQogUEFTUyAiZCIgaXMgImQiCiBQQVNTIGludGVybmFscy5tYXJrZXJDb3VudEZvck5vZGUo
ZS5maXJzdENoaWxkLCAidGV4dG1hdGNoIikgaXMgMwpAQCAtMTYsMzYgKzEzLDMxIEBAIFBBU1Mg
ImUiIGlzICJlIgogUEFTUyBpbnRlcm5hbHMubWFya2VyQ291bnRGb3JOb2RlKGUuZmlyc3RDaGls
ZCwgInRleHRtYXRjaCIpIGlzIDEKIFBBU1MgImYiIGlzICJmIgogUEFTUyBpbnRlcm5hbHMubWFy
a2VyQ291bnRGb3JOb2RlKGUuZmlyc3RDaGlsZCwgInRleHRtYXRjaCIpIGlzIDEKLVBBU1MgImci
IGlzICJnIgotUEFTUyBpbnRlcm5hbHMubWFya2VyQ291bnRGb3JOb2RlKGUuZmlyc3RDaGlsZCwg
InRleHRtYXRjaCIpIGlzIDIKLVBBU1MgImgiIGlzICJoIgotUEFTUyAiaCIgaXMgImgiCitQQVNT
ICJUIiBpcyAiVCIKK1BBU1MgaW50ZXJuYWxzLm1hcmtlckNvdW50Rm9yTm9kZShlLmZpcnN0Q2hp
bGQsICJ0ZXh0bWF0Y2giKSBpcyAwCitQQVNTIGludGVybmFscy5tYXJrZXJDb3VudEZvck5vZGUo
ZS5maXJzdENoaWxkLCAidGV4dG1hdGNoIikgaXMgMAogUEFTUyBpbnRlcm5hbHMubWFya2VyQ291
bnRGb3JOb2RlKGUuZmlyc3RDaGlsZCwgInRleHRtYXRjaCIpIGlzIDEKLVBBU1MgImkiIGlzICJp
IgorUEFTUyAieCIgaXMgIngiCiBQQVNTIGludGVybmFscy5tYXJrZXJDb3VudEZvck5vZGUoZS5m
aXJzdENoaWxkLCAidGV4dG1hdGNoIikgaXMgMQotUEFTUyAiaiIgaXMgImoiCitQQVNTICJ5IiBp
cyAieSIKIFBBU1MgaW50ZXJuYWxzLm1hcmtlckNvdW50Rm9yTm9kZShlLmZpcnN0Q2hpbGQsICJ0
ZXh0bWF0Y2giKSBpcyAxCi1QQVNTICJrIiBpcyAiayIKK1BBU1MgInoiIGlzICJ6IgogUEFTUyBp
bnRlcm5hbHMubWFya2VyQ291bnRGb3JOb2RlKGUuZmlyc3RDaGlsZCwgInRleHRtYXRjaCIpIGlz
IDEKLVBBU1MgImwiIGlzICJsIgorUEFTUyAiLiIgaXMgIi4iCiBQQVNTIGludGVybmFscy5tYXJr
ZXJDb3VudEZvck5vZGUoZS5maXJzdENoaWxkLCAidGV4dG1hdGNoIikgaXMgMQotUEFTUyAibSIg
aXMgIm0iCitQQVNTICJhIiBpcyAiYSIKIFBBU1MgaW50ZXJuYWxzLm1hcmtlckNvdW50Rm9yTm9k
ZShlLmZpcnN0Q2hpbGQsICJ0ZXh0bWF0Y2giKSBpcyAxCi1QQVNTICJuIiBpcyAibiIKLVBBU1Mg
aW50ZXJuYWxzLm1hcmtlckNvdW50Rm9yTm9kZShlLmZpcnN0Q2hpbGQsICJ0ZXh0bWF0Y2giKSBp
cyA0Ci1QQVNTICJvIiBpcyAibyIKLVBBU1MgIm8iIGlzICJvIgotUEFTUyAibyIgaXMgIm8iCi1Q
QVNTICJvIiBpcyAibyIKK1BBU1MgImIiIGlzICJiIgogUEFTUyBpbnRlcm5hbHMubWFya2VyQ291
bnRGb3JOb2RlKGUuZmlyc3RDaGlsZCwgInRleHRtYXRjaCIpIGlzIDEKLVBBU1MgInAiIGlzICJw
IgorUEFTUyAiYyIgaXMgImMiCiBQQVNTIGludGVybmFscy5tYXJrZXJDb3VudEZvck5vZGUoZS5m
aXJzdENoaWxkLCAidGV4dG1hdGNoIikgaXMgMQotUEFTUyAicSIgaXMgInEiCi1QQVNTIGludGVy
bmFscy5tYXJrZXJDb3VudEZvck5vZGUoZS5maXJzdENoaWxkLCAidGV4dG1hdGNoIikgaXMgMgot
UEFTUyAiciIgaXMgInIiCi1QQVNTICJyIiBpcyAiciIKK1BBU1MgImQiIGlzICJkIgorUEFTUyBp
bnRlcm5hbHMubWFya2VyQ291bnRGb3JOb2RlKGUuZmlyc3RDaGlsZCwgInRleHRtYXRjaCIpIGlz
IDMKK1BBU1MgImUiIGlzICJlIgorUEFTUyAiZSIgaXMgImUiCitQQVNTICJlIiBpcyAiZSIKIFBB
U1MgaW50ZXJuYWxzLm1hcmtlckNvdW50Rm9yTm9kZShlLmZpcnN0Q2hpbGQsICJ0ZXh0bWF0Y2gi
KSBpcyAxCi1QQVNTICJzIiBpcyAicyIKK1BBU1MgImYiIGlzICJmIgogUEFTUyBpbnRlcm5hbHMu
bWFya2VyQ291bnRGb3JOb2RlKGUuZmlyc3RDaGlsZCwgInRleHRtYXRjaCIpIGlzIDIKIFBBU1Mg
IlQiIGlzICJUIgogUEFTUyAidCIgaXMgInQiCkBAIC01NSw4ICs0Nyw2IEBAIFBBU1MgInUiIGlz
ICJ1IgogUEFTUyBpbnRlcm5hbHMubWFya2VyQ291bnRGb3JOb2RlKGUuZmlyc3RDaGlsZCwgInRl
eHRtYXRjaCIpIGlzIDEKIFBBU1MgInYiIGlzICJ2IgogUEFTUyBpbnRlcm5hbHMubWFya2VyQ291
bnRGb3JOb2RlKGUuZmlyc3RDaGlsZCwgInRleHRtYXRjaCIpIGlzIDEKLVBBU1MgInciIGlzICJ3
IgotUEFTUyBpbnRlcm5hbHMubWFya2VyQ291bnRGb3JOb2RlKGUuZmlyc3RDaGlsZCwgInRleHRt
YXRjaCIpIGlzIDEKIFBBU1MgIngiIGlzICJ4IgogUEFTUyBpbnRlcm5hbHMubWFya2VyQ291bnRG
b3JOb2RlKGUuZmlyc3RDaGlsZCwgInRleHRtYXRjaCIpIGlzIDEKIFBBU1MgInkiIGlzICJ5Igpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vYmxhY2tiZXJyeS9lZGl0aW5nL3RleHQt
aXRlcmF0b3IvZmluZFN0cmluZy1tYXJrZXJzLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9i
bGFja2JlcnJ5L2VkaXRpbmcvdGV4dC1pdGVyYXRvci9maW5kU3RyaW5nLW1hcmtlcnMuaHRtbApp
bmRleCA2MjQwMDg3ODE0ZWU1Yzk4YTI5MDQxY2YyOTUwNjI2Mzk3MzI5YzU4Li5jOWMyOWUwMDZl
NTcwNGMzYWNjYmQwNzJjMWY5ZTNkNjYzZWU5YzNkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ibGFja2JlcnJ5L2VkaXRpbmcvdGV4dC1pdGVyYXRvci9maW5kU3RyaW5nLW1hcmtl
cnMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ibGFja2JlcnJ5L2VkaXRpbmcvdGV4
dC1pdGVyYXRvci9maW5kU3RyaW5nLW1hcmtlcnMuaHRtbApAQCAtMzMsNDQgKzMzLDU1IEBAIGZ1
bmN0aW9uIGNyZWF0ZVBsYWluVGV4dEVsZW1lbnQoaWQsIHRleHQsIHBhcmVudCkgewogICAgIHJl
dHVybiBlOwogfQogCi1mdW5jdGlvbiBvY2N1cnJlbmNlcyhzdHJpbmcsIHN1YnN0cmluZykgewor
ZnVuY3Rpb24gb2NjdXJyZW5jZXMoc3RyaW5nLCBzdWJzdHJpbmcsIGNhc2VTZW5zaXRpdmUpIHsK
ICAgICB2YXIgbj0wOwogICAgIHZhciBwb3M9MDsKIAorICAgIHZhciBoYXlzdGFjayA9IGNhc2VT
ZW5zaXRpdmUgPyBzdHJpbmcgOiBzdHJpbmcudG9Mb3dlckNhc2UoKTsKKyAgICB2YXIgbmVlZGxl
ID0gY2FzZVNlbnNpdGl2ZSA/IHN1YnN0cmluZyA6IHN1YnN0cmluZy50b0xvd2VyQ2FzZSgpOwor
CiAgICAgd2hpbGUgKHRydWUpIHsKLSAgICAgICAgcG9zID0gc3RyaW5nLnRvTG93ZXJDYXNlKCku
aW5kZXhPZihzdWJzdHJpbmcudG9Mb3dlckNhc2UoKSxwb3MpOworICAgICAgICBwb3MgPSBoYXlz
dGFjay5pbmRleE9mKG5lZWRsZSxwb3MpOwogICAgICAgICBpZiAocG9zIT0tMSkgewogICAgICAg
ICAgICAgKytuOwotICAgICAgICAgICAgcG9zKz1zdWJzdHJpbmcubGVuZ3RoOworICAgICAgICAg
ICAgcG9zKz1uZWVkbGUubGVuZ3RoOwogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIGJyZWFr
OwogICAgIH0KICAgICByZXR1cm4gbjsKIH0KIAotZnVuY3Rpb24gY2hlY2tUZXh0TWF0Y2hNYXJr
ZXIoaW5kZXgpIHsKLSAgICBpZiAoaW5kZXggPiAyNikgewotICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5ub3RpZnlEb25lKCk7Ci0gICAgICAgIHJldHVybjsKK2Z1bmN0aW9uIGNoZWNrVGV4
dE1hdGNoTWFya2VyKGluZGV4LCBmaW5kT3B0aW9ucykgeworICAgIGlmIChpbmRleCA+IDEyKSB7
CisgICAgICAgIGlmIChmaW5kT3B0aW9ucy5sZW5ndGggPT0gMCkgeworICAgICAgICAgICAgaW5k
ZXggPSAwOworICAgICAgICAgICAgZmluZE9wdGlvbnMucHVzaCgiQ2FzZUluc2Vuc2l0aXZlIik7
CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3Rp
ZnlEb25lKCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KICAgICB9Ci0gICAgdmFy
IHN0ciA9ICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ei4nOworICAgIHZhciBzdHIgPSAnQUJD
ZGVmVFVWeHl6Lic7CiAgICAgdmFyIGNoYXIgPSBzdHIuY2hhckF0KGluZGV4KTsKLSAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5maW5kU3RyaW5nKHN0ci5jaGFyQXQoaW5kZXgpLCBbXSk7CisgICAg
dmFyIGNhc2VTZW5zaXRpdmUgPSBmaW5kT3B0aW9ucy5pbmRleE9mKCJDYXNlSW5zZW5zaXRpdmUi
KSA9PSAtMTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5maW5kU3RyaW5nKGNoYXIsIGZpbmRP
cHRpb25zKTsKICAgICAvLyBTdGFydCB0aGUgZnVuY3Rpb24gbGF0ZXIgdG8gYWxsb3cgbWFya2lu
ZyBwcm9jZXNzIHRvIGZpbmlzaC4KICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewotICAgICAg
ICB2YXIgY291bnQgPSBvY2N1cnJlbmNlcyh0ZXh0LCBjaGFyKTsKKyAgICAgICAgdmFyIGNvdW50
ID0gb2NjdXJyZW5jZXModGV4dCwgY2hhciwgY2FzZVNlbnNpdGl2ZSk7CisKICAgICAgICAgLy8g
VGhlIG51bWJlciBvZiBtYXJrZXJzIHNob3VsZCBtYXRjaCB0byB0aGUgb2NjdXJyZW5jZXMgb2Yg
dGhlIGNoYXJhY3Rvci4KICAgICAgICAgc2hvdWxkQmUoJ2ludGVybmFscy5tYXJrZXJDb3VudEZv
ck5vZGUoZS5maXJzdENoaWxkLCAidGV4dG1hdGNoIiknLCBjb3VudC50b1N0cmluZygpKTsKICAg
ICAgICAgdmFyIHNlYXJjaFN0YXJ0SW5kZXggPSAwOwogICAgICAgICAvLyBHZXQgdGhlIGNoYXIg
ZnJvbSB0ZXh0IGFuZCBjb21wYXJlIHdpdGggdGhlIG1hcmtlciByYW5nZSBjb250ZW50LgogICAg
ICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNvdW50IDsgKytpKSB7CiAgICAgICAgICAgICB2YXIg
cmFuZ2UgPSBpbnRlcm5hbHMubWFya2VyUmFuZ2VGb3JOb2RlKGUuZmlyc3RDaGlsZCwgInRleHRt
YXRjaCIsIGkpOwotICAgICAgICAgICAgdmFyIHBvcyA9IHRleHQudG9Mb3dlckNhc2UoKS5pbmRl
eE9mKGNoYXIudG9Mb3dlckNhc2UoKSwgc2VhcmNoU3RhcnRJbmRleCk7CisgICAgICAgICAgICB2
YXIgcG9zID0gY2FzZVNlbnNpdGl2ZSA/IHRleHQuaW5kZXhPZihjaGFyLCBzZWFyY2hTdGFydElu
ZGV4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0ZXh0LnRvTG93ZXJD
YXNlKCkuaW5kZXhPZihjaGFyLnRvTG93ZXJDYXNlKCksIHNlYXJjaFN0YXJ0SW5kZXgpOwogICAg
ICAgICAgICAgc2VhcmNoU3RhcnRJbmRleCA9IHBvcyArIDE7CiAgICAgICAgICAgICB2YXIgZXhw
ZWN0U3RyID0gdGV4dC5jaGFyQXQocG9zKTsKICAgICAgICAgICAgIHNob3VsZEJlKCciJyArIHJh
bmdlICsgJyInLCAnIicgKyBleHBlY3RTdHIgKyAnIicpOwogICAgICAgICB9Ci0gICAgICAgIGNo
ZWNrVGV4dE1hdGNoTWFya2VyKCsraW5kZXgpOworICAgICAgICBjaGVja1RleHRNYXRjaE1hcmtl
cihpbmRleCArIDEsIGZpbmRPcHRpb25zKTsKICAgICB9LCA4NTApOwogfQogCkBAIC04MSw3ICs5
Miw3IEBAIHZhciB0ZXh0ID0gJ1RoZSBxdWljayBicm93biBmb3gganVtcHMgb3ZlciB0aGUgbGF6
eSBkb2cuJzsKIHZhciBlID0gY3JlYXRlUGxhaW5UZXh0RWxlbWVudChpZCwgdGV4dCwgY29udGFp
bmVyKTsKIAogaWYgKHdpbmRvdy5pbnRlcm5hbHMgJiYgd2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQotICAgIGNoZWNrVGV4dE1hdGNoTWFya2VyKDApOworICAgIGNoZWNrVGV4dE1hdGNoTWFy
a2VyKDAsIFtdKTsKIAogdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CiA8L3NjcmlwdD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>