<?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>83116</bug_id>
          
          <creation_ts>2012-04-03 21:35:15 -0700</creation_ts>
          <short_desc>Add helpers to create anonymous table parts.</short_desc>
          <delta_ts>2012-04-04 16:04:25 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>82630</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Abhishek Arya">inferno</reporter>
          <assigned_to name="Abhishek Arya">inferno</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>jchaffraix</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>595238</commentid>
    <comment_count>0</comment_count>
    <who name="Abhishek Arya">inferno</who>
    <bug_when>2012-04-03 21:35:15 -0700</bug_when>
    <thetext>Part 1 of fixing https://bugs.webkit.org/show_bug.cgi?id=82630</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>595244</commentid>
    <comment_count>1</comment_count>
      <attachid>135511</attachid>
    <who name="Abhishek Arya">inferno</who>
    <bug_when>2012-04-03 21:59:33 -0700</bug_when>
    <thetext>Created attachment 135511
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>595473</commentid>
    <comment_count>2</comment_count>
    <who name="Abhishek Arya">inferno</who>
    <bug_when>2012-04-04 06:14:19 -0700</bug_when>
    <thetext>ah! forgot to remove createAnonymousTable from RenderBlock, in a function which will be eventually removed, but good as a cleanup in this patch itself. Also, just a fyi, that bidi-override-in-anonymous-block test is disabled on other platforms, so i didnt know the right rebaseline to do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>595478</commentid>
    <comment_count>3</comment_count>
      <attachid>135574</attachid>
    <who name="Abhishek Arya">inferno</who>
    <bug_when>2012-04-04 06:16:54 -0700</bug_when>
    <thetext>Created attachment 135574
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>595583</commentid>
    <comment_count>4</comment_count>
      <attachid>135574</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-04-04 09:01:29 -0700</bug_when>
    <thetext>Comment on attachment 135574
Patch

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

&gt; Source/WebCore/rendering/RenderBlock.cpp:7425
&gt; +    if (display == BOX) {
&gt; +        newStyle-&gt;setDisplay(BOX);
&gt; +        newBox = new (parent-&gt;renderArena()) RenderDeprecatedFlexibleBox(parent-&gt;document() /* anonymous box */);

It&apos;s too bad the rest of the code relies on that. This looks like another static function that could be split...

&gt; Source/WebCore/rendering/RenderBlock.h:238
&gt; +    static RenderBlock* createAnonymousColumnsWithParentRendererAndDisplay(const RenderObject*);
&gt; +    static RenderBlock* createAnonymousColumnSpanWithParentRendererAndDisplay(const RenderObject*);

Those 2 don&apos;t take a display so the name is wrong. This is not repeated but this is a wrong pattern in your naming.

&gt; Source/WebCore/rendering/RenderButton.cpp:53
&gt; +        bool isDeprecatedFlexibleBox = style()-&gt;display() == BOX || style()-&gt;display() == INLINE_BOX;
&gt; +        m_inner = createAnonymousBlock(isDeprecatedFlexibleBox ? BOX : BLOCK);

Isn&apos;t that a big FIXME that we actually don&apos;t honor our current display?

I would actually pass the display as-is and push the INLINE_BOX display check into createAnonymousBlock along with the FIXME.

&gt; Source/WebCore/rendering/RenderTable.cpp:1280
&gt; +RenderTable* RenderTable::createAnonymousWithParentRendererAndDisplay(const RenderObject* parent, EDisplay display)

The only call site using that doesn&apos;t care about EDisplay. I think for now we should just drop the EDisplay argument unless needed (like for replacing the isFlexibleBox boolean).

&gt; Source/WebCore/rendering/RenderTableSection.cpp:1416
&gt; +RenderTableSection* RenderTableSection::createAnonymousWithParentRendererAndDisplay(const RenderObject* parent, EDisplay display)

I don&apos;t think you need to pass EDisplay here. Whenever you need to create an anonymous table section, it should use TABLE_ROW_GROUP as its display value.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>595619</commentid>
    <comment_count>5</comment_count>
      <attachid>135611</attachid>
    <who name="Abhishek Arya">inferno</who>
    <bug_when>2012-04-04 09:35:25 -0700</bug_when>
    <thetext>Created attachment 135611
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>595995</commentid>
    <comment_count>6</comment_count>
      <attachid>135611</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-04-04 15:07:05 -0700</bug_when>
    <thetext>Comment on attachment 135611
Patch

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

&gt; Source/WebCore/ChangeLog:9
&gt; +        introducing a new static function createAnonymousWithParentRendererAndDisplay.

s/createAnonymousWithParentRendererAndDisplay/createAnonymousWithParentRenderer/

&gt; Source/WebCore/ChangeLog:10
&gt; +        The function builds a new anonymous wrapper inheriting style properties from

a new anonymous wrapper of the same type as the class, inheriting style properties...

&gt; Source/WebCore/rendering/RenderBlock.cpp:7422
&gt; +    // FIXME: Why are we forcing a BOX display for old flex box here ? Is this a hack for RenderButton ?

I think it should be stated more as:

// FIXME: Do we need to convert all our inline displays to block-type in the anonymous logic?

There is a function already doing that on CSSStyleSelector that we could reuse if that was going to happen (equivalentBlockDisplay).

&gt; LayoutTests/ChangeLog:11
&gt; +        * platform/chromium-mac/fast/css/bidi-override-in-anonymous-block-expected.txt:
&gt; +        * platform/chromium-win/fast/css/bidi-override-in-anonymous-block-expected.txt:

This needs to be skipped on all other platforms as you will be breaking them if not. For Chromium something like (to be double checked against our baselines):

WK83116 LINUX WIN : fast/css/bidi-override-in-anonymous-block.html = TEXT

For other platforms, it should just be added to the Skipped file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>596032</commentid>
    <comment_count>7</comment_count>
      <attachid>135701</attachid>
    <who name="Abhishek Arya">inferno</who>
    <bug_when>2012-04-04 15:34:09 -0700</bug_when>
    <thetext>Created attachment 135701
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>596035</commentid>
    <comment_count>8</comment_count>
      <attachid>135701</attachid>
    <who name="Abhishek Arya">inferno</who>
    <bug_when>2012-04-04 15:42:04 -0700</bug_when>
    <thetext>Comment on attachment 135701
Patch

Clearing flags on attachment: 135701

Committed r113252: &lt;http://trac.webkit.org/changeset/113252&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>596036</commentid>
    <comment_count>9</comment_count>
    <who name="Abhishek Arya">inferno</who>
    <bug_when>2012-04-04 15:42:17 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>135511</attachid>
            <date>2012-04-03 21:59:33 -0700</date>
            <delta_ts>2012-04-04 06:16:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-83116-20120403215932.patch</filename>
            <type>text/plain</type>
            <size>22615</size>
            <attacher name="Abhishek Arya">inferno</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEzMDk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDVjYmI4ZGZmOTc4MDA3
MWY1NTYwMjRlZDQzY2NiNWI3YWVjMWMzNS4uOTIyNDg2ZGYzZjE0NGU5YzkxMjc1YTNlYjUxZDkz
OTM2YmFkNDM4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDEyLTA0LTAzICBBYmhp
c2hlayBBcnlhICA8aW5mZXJub0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQWRkIGhlbHBlcnMg
dG8gY3JlYXRlIGFub255bW91cyB0YWJsZSBwYXJ0cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgzMTE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIHBhdGNoIGludHJvZHVjZXMgaGVscGVycyB0byBj
cmVhdGUgYW5vbnltb3VzIHRhYmxlIHBhcnRzIGJ5CisgICAgICAgIGludHJvZHVjaW5nIGEgbmV3
IHN0YXRpYyBmdW5jdGlvbiBjcmVhdGVBbm9ueW1vdXNXaXRoUGFyZW50UmVuZGVyZXJBbmREaXNw
bGF5LgorICAgICAgICBUaGUgZnVuY3Rpb24gYnVpbGRzIGEgbmV3IGFub255bW91cyB3cmFwcGVy
IGluaGVyaXRpbmcgc3R5bGUgcHJvcGVydGllcyBmcm9tCisgICAgICAgIHBhcmVudCBhbmQgc2V0
cyBhIGRpc3BsYXkgYmFzZWQgb24gYXJndW1lbnQvZGVmYXVsdCB2YWx1ZXMuIEFsc28gd2Ugc3Ry
ZWFtbGluZQorICAgICAgICB0aGUgUmVuZGVyQmxvY2sgZnVuY3Rpb25zIHRvIG1hdGNoIHRoaXMg
bmFtaW5nIGNvbnZlbnRpb24uCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmNyZWF0ZUFub255bW91c0Jsb2NrV2l0
aFNhbWVUeXBlQXMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmNyZWF0ZUFub255
bW91c1dpdGhQYXJlbnRSZW5kZXJlckFuZERpc3BsYXkpOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6Y3JlYXRlQW5vbnltb3VzQ29sdW1uc1dpdGhQ
YXJlbnRSZW5kZXJlckFuZERpc3BsYXkpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6
OmNyZWF0ZUFub255bW91c0NvbHVtblNwYW5XaXRoUGFyZW50UmVuZGVyZXJBbmREaXNwbGF5KToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suaDoKKyAgICAgICAgKFJlbmRlckJsb2Nr
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpjcmVhdGVBbm9ueW1vdXNCbG9jayk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6Y3JlYXRlQW5vbnltb3VzQ29sdW1uc0Js
b2NrKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpjcmVhdGVBbm9ueW1vdXNDb2x1
bW5TcGFuQmxvY2spOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCdXR0b24uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyQnV0dG9uOjphZGRDaGlsZCk6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OmFk
ZENoaWxkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGFibGU6OmFkZENoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clRhYmxlOjpjcmVhdGVBbm9ueW1vdXNXaXRoUGFyZW50UmVuZGVyZXJBbmREaXNwbGF5KToKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUYWJsZS5oOgorICAg
ICAgICAoUmVuZGVyVGFibGUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGVDZWxsOjpjcmVhdGVBbm9ueW1vdXNX
aXRoUGFyZW50UmVuZGVyZXJBbmREaXNwbGF5KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuaDoKKyAgICAgICAgKFJlbmRlclRhYmxlQ2Vs
bCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxlUm93LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRhYmxlUm93OjphZGRDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUYWJsZVJvdzo6Y3JlYXRlQW5vbnltb3VzV2l0aFBhcmVudFJlbmRlcmVyQW5kRGlzcGxheSk6
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGVSb3cu
aDoKKyAgICAgICAgKFJlbmRlclRhYmxlUm93KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
VGFibGVTZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlU2VjdGlvbjo6
YWRkQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGVTZWN0aW9uOjpjcmVhdGVB
bm9ueW1vdXNXaXRoUGFyZW50UmVuZGVyZXJBbmREaXNwbGF5KToKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uaDoKKyAgICAgICAgKFJl
bmRlclRhYmxlU2VjdGlvbik6CisKIDIwMTItMDQtMDMgIEp1bGllbiBDaGFmZnJhaXggIDxqY2hh
ZmZyYWl4QHdlYmtpdC5vcmc+CiAKICAgICAgICAgcHJlc2VudGF0aW9uQXR0cmlidXRlQ2FjaGVN
YXhpbXVtU2l6ZSBpcyBzZXQgdG9vIGxvdwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
bG9jay5jcHAKaW5kZXggODAzMTkwZGYxYWJlYWM3ZmM0MTE3NGUwMGYzZmM0ODY2N2NmNjQ3Mi4u
NDU0ZTM1NzVkMjk2MWFmZDExN2U0MjIxOTdhMmE1NDY1Mzk4MTRhMiAxMDA3NTUKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCkBAIC02Njc1LDUyICs2Njc1LDEzIEBAIHZvaWQg
UmVuZGVyQmxvY2s6OmFkZEZvY3VzUmluZ1JlY3RzKFZlY3RvcjxJbnRSZWN0PiYgcmVjdHMsIGNv
bnN0IExheW91dFBvaW50JiBhCiAgICAgICAgIGlubGluZUVsZW1lbnRDb250aW51YXRpb24oKS0+
YWRkRm9jdXNSaW5nUmVjdHMocmVjdHMsIGZsb29yZWRMYXlvdXRQb2ludChhZGRpdGlvbmFsT2Zm
c2V0ICsgaW5saW5lRWxlbWVudENvbnRpbnVhdGlvbigpLT5jb250YWluaW5nQmxvY2soKS0+bG9j
YXRpb24oKSAtIGxvY2F0aW9uKCkpKTsKIH0KIAotUmVuZGVyQmxvY2sqIFJlbmRlckJsb2NrOjpj
cmVhdGVBbm9ueW1vdXNCbG9jayhib29sIGlzRmxleGlibGVCb3gpIGNvbnN0Ci17Ci0gICAgUmVm
UHRyPFJlbmRlclN0eWxlPiBuZXdTdHlsZSA9IFJlbmRlclN0eWxlOjpjcmVhdGVBbm9ueW1vdXNT
dHlsZShzdHlsZSgpKTsKLQotICAgIFJlbmRlckJsb2NrKiBuZXdCb3ggPSAwOwotICAgIGlmIChp
c0ZsZXhpYmxlQm94KSB7Ci0gICAgICAgIG5ld1N0eWxlLT5zZXREaXNwbGF5KEJPWCk7Ci0gICAg
ICAgIG5ld0JveCA9IG5ldyAocmVuZGVyQXJlbmEoKSkgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxl
Qm94KGRvY3VtZW50KCkgLyogYW5vbnltb3VzIGJveCAqLyk7Ci0gICAgfSBlbHNlIHsKLSAgICAg
ICAgbmV3U3R5bGUtPnNldERpc3BsYXkoQkxPQ0spOwotICAgICAgICBuZXdCb3ggPSBuZXcgKHJl
bmRlckFyZW5hKCkpIFJlbmRlckJsb2NrKGRvY3VtZW50KCkgLyogYW5vbnltb3VzIGJveCAqLyk7
Ci0gICAgfQotCi0gICAgbmV3Qm94LT5zZXRTdHlsZShuZXdTdHlsZS5yZWxlYXNlKCkpOwotICAg
IHJldHVybiBuZXdCb3g7Ci19Ci0KIFJlbmRlckJsb2NrKiBSZW5kZXJCbG9jazo6Y3JlYXRlQW5v
bnltb3VzQmxvY2tXaXRoU2FtZVR5cGVBcyhSZW5kZXJCbG9jayogb3RoZXJBbm9ueW1vdXNCbG9j
aykgY29uc3QKIHsKICAgICBpZiAob3RoZXJBbm9ueW1vdXNCbG9jay0+aXNBbm9ueW1vdXNDb2x1
bW5zQmxvY2soKSkKICAgICAgICAgcmV0dXJuIGNyZWF0ZUFub255bW91c0NvbHVtbnNCbG9jaygp
OwogICAgIGlmIChvdGhlckFub255bW91c0Jsb2NrLT5pc0Fub255bW91c0NvbHVtblNwYW5CbG9j
aygpKQogICAgICAgICByZXR1cm4gY3JlYXRlQW5vbnltb3VzQ29sdW1uU3BhbkJsb2NrKCk7Ci0g
ICAgcmV0dXJuIGNyZWF0ZUFub255bW91c0Jsb2NrKG90aGVyQW5vbnltb3VzQmxvY2stPnN0eWxl
KCktPmRpc3BsYXkoKSA9PSBCT1gpOwotfQotCi1SZW5kZXJCbG9jayogUmVuZGVyQmxvY2s6OmNy
ZWF0ZUFub255bW91c0NvbHVtbnNCbG9jaygpIGNvbnN0Ci17Ci0gICAgUmVmUHRyPFJlbmRlclN0
eWxlPiBuZXdTdHlsZSA9IFJlbmRlclN0eWxlOjpjcmVhdGVBbm9ueW1vdXNTdHlsZShzdHlsZSgp
KTsKLSAgICBuZXdTdHlsZS0+aW5oZXJpdENvbHVtblByb3BlcnRpZXNGcm9tKHN0eWxlKCkpOwot
ICAgIG5ld1N0eWxlLT5zZXREaXNwbGF5KEJMT0NLKTsKLQotICAgIFJlbmRlckJsb2NrKiBuZXdC
b3ggPSBuZXcgKHJlbmRlckFyZW5hKCkpIFJlbmRlckJsb2NrKGRvY3VtZW50KCkgLyogYW5vbnlt
b3VzIGJveCAqLyk7Ci0gICAgbmV3Qm94LT5zZXRTdHlsZShuZXdTdHlsZS5yZWxlYXNlKCkpOwot
ICAgIHJldHVybiBuZXdCb3g7Ci19Ci0KLVJlbmRlckJsb2NrKiBSZW5kZXJCbG9jazo6Y3JlYXRl
QW5vbnltb3VzQ29sdW1uU3BhbkJsb2NrKCkgY29uc3QKLXsKLSAgICBSZWZQdHI8UmVuZGVyU3R5
bGU+IG5ld1N0eWxlID0gUmVuZGVyU3R5bGU6OmNyZWF0ZUFub255bW91c1N0eWxlKHN0eWxlKCkp
OwotICAgIG5ld1N0eWxlLT5zZXRDb2x1bW5TcGFuKENvbHVtblNwYW5BbGwpOwotICAgIG5ld1N0
eWxlLT5zZXREaXNwbGF5KEJMT0NLKTsKLQotICAgIFJlbmRlckJsb2NrKiBuZXdCb3ggPSBuZXcg
KHJlbmRlckFyZW5hKCkpIFJlbmRlckJsb2NrKGRvY3VtZW50KCkgLyogYW5vbnltb3VzIGJveCAq
Lyk7Ci0gICAgbmV3Qm94LT5zZXRTdHlsZShuZXdTdHlsZS5yZWxlYXNlKCkpOwotICAgIHJldHVy
biBuZXdCb3g7CisgICAgcmV0dXJuIGNyZWF0ZUFub255bW91c0Jsb2NrKG90aGVyQW5vbnltb3Vz
QmxvY2stPnN0eWxlKCktPmRpc3BsYXkoKSk7CiB9CiAKIGJvb2wgUmVuZGVyQmxvY2s6Omhhc05l
eHRQYWdlKExheW91dFVuaXQgbG9naWNhbE9mZnNldCwgUGFnZUJvdW5kYXJ5UnVsZSBwYWdlQm91
bmRhcnlSdWxlKSBjb25zdApAQCAtNzQ1Myw2ICs3NDE0LDQ2IEBAIFRleHRSdW4gUmVuZGVyQmxv
Y2s6OmNvbnN0cnVjdFRleHRSdW4oUmVuZGVyT2JqZWN0KiBjb250ZXh0LCBjb25zdCBGb250JiBm
b250LCBjCiAgICAgcmV0dXJuIGNvbnN0cnVjdFRleHRSdW4oY29udGV4dCwgZm9udCwgc3RyaW5n
LmNoYXJhY3RlcnMoKSwgc3RyaW5nLmxlbmd0aCgpLCBzdHlsZSwgZXhwYW5zaW9uLCBmbGFncyk7
CiB9CiAKK1JlbmRlckJsb2NrKiBSZW5kZXJCbG9jazo6Y3JlYXRlQW5vbnltb3VzV2l0aFBhcmVu
dFJlbmRlcmVyQW5kRGlzcGxheShjb25zdCBSZW5kZXJPYmplY3QqIHBhcmVudCwgRURpc3BsYXkg
ZGlzcGxheSkKK3sKKyAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IG5ld1N0eWxlID0gUmVuZGVyU3R5
bGU6OmNyZWF0ZUFub255bW91c1N0eWxlKHBhcmVudC0+c3R5bGUoKSk7CisKKyAgICAvLyBGSVhN
RTogRG8gd2UgbmVlZCB0byBjb3ZlciB0aGUgbmV3IGZsZXggYm94IGhlcmUgPworICAgIFJlbmRl
ckJsb2NrKiBuZXdCb3ggPSAwOworICAgIGlmIChkaXNwbGF5ID09IEJPWCkgeworICAgICAgICBu
ZXdTdHlsZS0+c2V0RGlzcGxheShCT1gpOworICAgICAgICBuZXdCb3ggPSBuZXcgKHBhcmVudC0+
cmVuZGVyQXJlbmEoKSkgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94KHBhcmVudC0+ZG9jdW1l
bnQoKSAvKiBhbm9ueW1vdXMgYm94ICovKTsKKyAgICB9IGVsc2UgeworICAgICAgICBuZXdTdHls
ZS0+c2V0RGlzcGxheShCTE9DSyk7CisgICAgICAgIG5ld0JveCA9IG5ldyAocGFyZW50LT5yZW5k
ZXJBcmVuYSgpKSBSZW5kZXJCbG9jayhwYXJlbnQtPmRvY3VtZW50KCkgLyogYW5vbnltb3VzIGJv
eCAqLyk7CisgICAgfQorCisgICAgbmV3Qm94LT5zZXRTdHlsZShuZXdTdHlsZS5yZWxlYXNlKCkp
OworICAgIHJldHVybiBuZXdCb3g7Cit9CisKK1JlbmRlckJsb2NrKiBSZW5kZXJCbG9jazo6Y3Jl
YXRlQW5vbnltb3VzQ29sdW1uc1dpdGhQYXJlbnRSZW5kZXJlckFuZERpc3BsYXkoY29uc3QgUmVu
ZGVyT2JqZWN0KiBwYXJlbnQpCit7CisgICAgUmVmUHRyPFJlbmRlclN0eWxlPiBuZXdTdHlsZSA9
IFJlbmRlclN0eWxlOjpjcmVhdGVBbm9ueW1vdXNTdHlsZShwYXJlbnQtPnN0eWxlKCkpOworICAg
IG5ld1N0eWxlLT5pbmhlcml0Q29sdW1uUHJvcGVydGllc0Zyb20ocGFyZW50LT5zdHlsZSgpKTsK
KyAgICBuZXdTdHlsZS0+c2V0RGlzcGxheShCTE9DSyk7CisKKyAgICBSZW5kZXJCbG9jayogbmV3
Qm94ID0gbmV3IChwYXJlbnQtPnJlbmRlckFyZW5hKCkpIFJlbmRlckJsb2NrKHBhcmVudC0+ZG9j
dW1lbnQoKSAvKiBhbm9ueW1vdXMgYm94ICovKTsKKyAgICBuZXdCb3gtPnNldFN0eWxlKG5ld1N0
eWxlLnJlbGVhc2UoKSk7CisgICAgcmV0dXJuIG5ld0JveDsKK30KKworUmVuZGVyQmxvY2sqIFJl
bmRlckJsb2NrOjpjcmVhdGVBbm9ueW1vdXNDb2x1bW5TcGFuV2l0aFBhcmVudFJlbmRlcmVyQW5k
RGlzcGxheShjb25zdCBSZW5kZXJPYmplY3QqIHBhcmVudCkKK3sKKyAgICBSZWZQdHI8UmVuZGVy
U3R5bGU+IG5ld1N0eWxlID0gUmVuZGVyU3R5bGU6OmNyZWF0ZUFub255bW91c1N0eWxlKHBhcmVu
dC0+c3R5bGUoKSk7CisgICAgbmV3U3R5bGUtPnNldENvbHVtblNwYW4oQ29sdW1uU3BhbkFsbCk7
CisgICAgbmV3U3R5bGUtPnNldERpc3BsYXkoQkxPQ0spOworCisgICAgUmVuZGVyQmxvY2sqIG5l
d0JveCA9IG5ldyAocGFyZW50LT5yZW5kZXJBcmVuYSgpKSBSZW5kZXJCbG9jayhwYXJlbnQtPmRv
Y3VtZW50KCkgLyogYW5vbnltb3VzIGJveCAqLyk7CisgICAgbmV3Qm94LT5zZXRTdHlsZShuZXdT
dHlsZS5yZWxlYXNlKCkpOworICAgIHJldHVybiBuZXdCb3g7Cit9CisKICNpZm5kZWYgTkRFQlVH
CiAKIHZvaWQgUmVuZGVyQmxvY2s6OnNob3dMaW5lVHJlZUFuZE1hcmsoY29uc3QgSW5saW5lQm94
KiBtYXJrZWRCb3gxLCBjb25zdCBjaGFyKiBtYXJrZWRMYWJlbDEsIGNvbnN0IElubGluZUJveCog
bWFya2VkQm94MiwgY29uc3QgY2hhciogbWFya2VkTGFiZWwyLCBjb25zdCBSZW5kZXJPYmplY3Qq
IG9iaikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
bG9jay5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgKaW5kZXggOTc3
YTk5YjQwYWM5NWNjZmJjNjYzMGNiNGI0ZjhlZDFiYjFkNTYxZC4uOWE0ODZkMmYxZmNlOTQ0Mjkz
YmFlYzYzNWI1MDljMGY4ODg5ZTFjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJsb2NrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJs
b2NrLmgKQEAgLTIzMywxMSArMjMzLDEzIEBAIHB1YmxpYzoKICAgICB1c2luZyBSZW5kZXJCb3hN
b2RlbE9iamVjdDo6Y29udGludWF0aW9uOwogICAgIHVzaW5nIFJlbmRlckJveE1vZGVsT2JqZWN0
OjpzZXRDb250aW51YXRpb247CiAKLSAgICAvLyBUaGlzIGZ1bmN0aW9uIGlzIGEgY29udmVuaWVu
Y2UgaGVscGVyIGZvciBjcmVhdGluZyBhbiBhbm9ueW1vdXMgYmxvY2sgdGhhdCBpbmhlcml0cyBp
dHMKLSAgICAvLyBzdHlsZSBmcm9tIHRoaXMgUmVuZGVyQmxvY2suCi0gICAgUmVuZGVyQmxvY2sq
IGNyZWF0ZUFub255bW91c0Jsb2NrKGJvb2wgaXNGbGV4aWJsZUJveCA9IGZhbHNlKSBjb25zdDsK
LSAgICBSZW5kZXJCbG9jayogY3JlYXRlQW5vbnltb3VzQ29sdW1uc0Jsb2NrKCkgY29uc3Q7Ci0g
ICAgUmVuZGVyQmxvY2sqIGNyZWF0ZUFub255bW91c0NvbHVtblNwYW5CbG9jaygpIGNvbnN0Owor
ICAgIHN0YXRpYyBSZW5kZXJCbG9jayogY3JlYXRlQW5vbnltb3VzV2l0aFBhcmVudFJlbmRlcmVy
QW5kRGlzcGxheShjb25zdCBSZW5kZXJPYmplY3QqLCBFRGlzcGxheSA9IEJMT0NLKTsKKyAgICBz
dGF0aWMgUmVuZGVyQmxvY2sqIGNyZWF0ZUFub255bW91c0NvbHVtbnNXaXRoUGFyZW50UmVuZGVy
ZXJBbmREaXNwbGF5KGNvbnN0IFJlbmRlck9iamVjdCopOworICAgIHN0YXRpYyBSZW5kZXJCbG9j
ayogY3JlYXRlQW5vbnltb3VzQ29sdW1uU3BhbldpdGhQYXJlbnRSZW5kZXJlckFuZERpc3BsYXko
Y29uc3QgUmVuZGVyT2JqZWN0Kik7CisgICAgUmVuZGVyQmxvY2sqIGNyZWF0ZUFub255bW91c0Js
b2NrKEVEaXNwbGF5IGRpc3BsYXkgPSBCTE9DSykgY29uc3QgeyByZXR1cm4gY3JlYXRlQW5vbnlt
b3VzV2l0aFBhcmVudFJlbmRlcmVyQW5kRGlzcGxheSh0aGlzLCBkaXNwbGF5KTsgfQorICAgIFJl
bmRlckJsb2NrKiBjcmVhdGVBbm9ueW1vdXNDb2x1bW5zQmxvY2soKSBjb25zdCB7IHJldHVybiBj
cmVhdGVBbm9ueW1vdXNDb2x1bW5zV2l0aFBhcmVudFJlbmRlcmVyQW5kRGlzcGxheSh0aGlzKTsg
fQorICAgIFJlbmRlckJsb2NrKiBjcmVhdGVBbm9ueW1vdXNDb2x1bW5TcGFuQmxvY2soKSBjb25z
dCB7IHJldHVybiBjcmVhdGVBbm9ueW1vdXNDb2x1bW5TcGFuV2l0aFBhcmVudFJlbmRlcmVyQW5k
RGlzcGxheSh0aGlzKTsgfQorCiAgICAgUmVuZGVyQmxvY2sqIGNyZWF0ZUFub255bW91c0Jsb2Nr
V2l0aFNhbWVUeXBlQXMoUmVuZGVyQmxvY2sqIG90aGVyQW5vbnltb3VzQmxvY2spIGNvbnN0Owog
ICAgIAogICAgIHN0YXRpYyB2b2lkIGFwcGVuZFJ1bnNGb3JPYmplY3QoQmlkaVJ1bkxpc3Q8Qmlk
aVJ1bj4mLCBpbnQgc3RhcnQsIGludCBlbmQsIFJlbmRlck9iamVjdCosIElubGluZUJpZGlSZXNv
bHZlciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJ1dHRv
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQnV0dG9uLmNwcAppbmRleCAz
ODBjNWRhMzVjNmU3ZTZlYzEwYTE0NDg4OTJjMDY4NDY3YjUyNjlhLi42MTcyNjFkZWFjOGIxYTM4
OWQwZWZjYTE5OGIxMmY3MmUwNWE5Y2UyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQnV0dG9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQnV0dG9uLmNwcApAQCAtNDksOCArNDksOCBAQCB2b2lkIFJlbmRlckJ1dHRvbjo6YWRkQ2hp
bGQoUmVuZGVyT2JqZWN0KiBuZXdDaGlsZCwgUmVuZGVyT2JqZWN0KiBiZWZvcmVDaGlsZCkKICAg
ICBpZiAoIW1faW5uZXIpIHsKICAgICAgICAgLy8gQ3JlYXRlIGFuIGFub255bW91cyBibG9jay4K
ICAgICAgICAgQVNTRVJUKCFmaXJzdENoaWxkKCkpOwotICAgICAgICBib29sIGlzRmxleGlibGVC
b3ggPSBzdHlsZSgpLT5kaXNwbGF5KCkgPT0gQk9YIHx8IHN0eWxlKCktPmRpc3BsYXkoKSA9PSBJ
TkxJTkVfQk9YOwotICAgICAgICBtX2lubmVyID0gY3JlYXRlQW5vbnltb3VzQmxvY2soaXNGbGV4
aWJsZUJveCk7CisgICAgICAgIGJvb2wgaXNEZXByZWNhdGVkRmxleGlibGVCb3ggPSBzdHlsZSgp
LT5kaXNwbGF5KCkgPT0gQk9YIHx8IHN0eWxlKCktPmRpc3BsYXkoKSA9PSBJTkxJTkVfQk9YOwor
ICAgICAgICBtX2lubmVyID0gY3JlYXRlQW5vbnltb3VzQmxvY2soaXNEZXByZWNhdGVkRmxleGli
bGVCb3ggPyBCT1ggOiBCTE9DSyk7CiAgICAgICAgIHNldHVwSW5uZXJTdHlsZShtX2lubmVyLT5z
dHlsZSgpKTsKICAgICAgICAgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjphZGRDaGlsZCht
X2lubmVyKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3Bw
CmluZGV4IGQ2NDg0YzhkY2JmY2QzZTU4OGU3Nzc4MDBlYjUxNTE4Y2IwNzUwNTMuLjQ4N2VjNGE1
NmY4M2ZiYzRmMmIyZWU4ZGYxZTFlOTg3YzU5MmI1NGUgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJPYmplY3QuY3BwCkBAIC0zMjMsNyArMzIzLDcgQEAgdm9pZCBSZW5kZXJPYmpl
Y3Q6OmFkZENoaWxkKFJlbmRlck9iamVjdCogbmV3Q2hpbGQsIFJlbmRlck9iamVjdCogYmVmb3Jl
Q2hpbGQpCiAgICAgICAgIGlmIChhZnRlckNoaWxkICYmIGFmdGVyQ2hpbGQtPmlzQW5vbnltb3Vz
KCkgJiYgYWZ0ZXJDaGlsZC0+aXNUYWJsZSgpICYmICFhZnRlckNoaWxkLT5pc0JlZm9yZUNvbnRl
bnQoKSkKICAgICAgICAgICAgIHRhYmxlID0gdG9SZW5kZXJUYWJsZShhZnRlckNoaWxkKTsKICAg
ICAgICAgZWxzZSB7Ci0gICAgICAgICAgICB0YWJsZSA9IGNyZWF0ZUFub255bW91c1RhYmxlKCk7
CisgICAgICAgICAgICB0YWJsZSA9IFJlbmRlclRhYmxlOjpjcmVhdGVBbm9ueW1vdXNXaXRoUGFy
ZW50UmVuZGVyZXJBbmREaXNwbGF5KHRoaXMpOwogICAgICAgICAgICAgYWRkQ2hpbGQodGFibGUs
IGJlZm9yZUNoaWxkKTsKICAgICAgICAgfQogICAgICAgICB0YWJsZS0+YWRkQ2hpbGQobmV3Q2hp
bGQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAKaW5kZXggYWJmN2Vj
Mzk3ZmU4MjFlN2JiNTAwZWQ1ZTMzNjJkYzRmNTUzZDU5MC4uY2ZlOTAwYzdiMTgyZmIzNWY1MjQ2
NWQyNGMwY2Y1NjU3MDVmM2U3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRhYmxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFi
bGUuY3BwCkBAIC0xOTIsMTEgKzE5Miw4IEBAIHZvaWQgUmVuZGVyVGFibGU6OmFkZENoaWxkKFJl
bmRlck9iamVjdCogY2hpbGQsIFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQpCiAKICAgICBpZiAo
YmVmb3JlQ2hpbGQgJiYgIWJlZm9yZUNoaWxkLT5pc1RhYmxlU2VjdGlvbigpICYmIGJlZm9yZUNo
aWxkLT5zdHlsZSgpLT5kaXNwbGF5KCkgIT0gVEFCTEVfQ0FQVElPTiAmJiBiZWZvcmVDaGlsZC0+
c3R5bGUoKS0+ZGlzcGxheSgpICE9IFRBQkxFX0NPTFVNTl9HUk9VUCkKICAgICAgICAgYmVmb3Jl
Q2hpbGQgPSAwOwotICAgIFJlbmRlclRhYmxlU2VjdGlvbiogc2VjdGlvbiA9IG5ldyAocmVuZGVy
QXJlbmEoKSkgUmVuZGVyVGFibGVTZWN0aW9uKGRvY3VtZW50KCkgLyogYW5vbnltb3VzICovKTsK
LSAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IG5ld1N0eWxlID0gUmVuZGVyU3R5bGU6OmNyZWF0ZSgp
OwotICAgIG5ld1N0eWxlLT5pbmhlcml0RnJvbShzdHlsZSgpKTsKLSAgICBuZXdTdHlsZS0+c2V0
RGlzcGxheShUQUJMRV9ST1dfR1JPVVApOwotICAgIHNlY3Rpb24tPnNldFN0eWxlKG5ld1N0eWxl
LnJlbGVhc2UoKSk7CisKKyAgICBSZW5kZXJUYWJsZVNlY3Rpb24qIHNlY3Rpb24gPSBSZW5kZXJU
YWJsZVNlY3Rpb246OmNyZWF0ZUFub255bW91c1dpdGhQYXJlbnRSZW5kZXJlckFuZERpc3BsYXko
dGhpcywgVEFCTEVfUk9XX0dST1VQKTsKICAgICBhZGRDaGlsZChzZWN0aW9uLCBiZWZvcmVDaGls
ZCk7CiAgICAgc2VjdGlvbi0+YWRkQ2hpbGQoY2hpbGQpOwogfQpAQCAtMTI4MCw0ICsxMjc3LDE1
IEBAIGJvb2wgUmVuZGVyVGFibGU6Om5vZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiBy
ZXF1ZXN0LCBIaXRUZXN0UmVzdWx0JiByZXN1CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitSZW5k
ZXJUYWJsZSogUmVuZGVyVGFibGU6OmNyZWF0ZUFub255bW91c1dpdGhQYXJlbnRSZW5kZXJlckFu
ZERpc3BsYXkoY29uc3QgUmVuZGVyT2JqZWN0KiBwYXJlbnQsIEVEaXNwbGF5IGRpc3BsYXkpCit7
CisgICAgQVNTRVJUKGRpc3BsYXkgPT0gVEFCTEUgfHwgZGlzcGxheSA9PSBJTkxJTkVfVEFCTEUp
OworICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gbmV3U3R5bGUgPSBSZW5kZXJTdHlsZTo6Y3JlYXRl
QW5vbnltb3VzU3R5bGUocGFyZW50LT5zdHlsZSgpKTsKKyAgICBuZXdTdHlsZS0+c2V0RGlzcGxh
eShkaXNwbGF5KTsKKworICAgIFJlbmRlclRhYmxlKiBuZXdUYWJsZSA9IG5ldyAocGFyZW50LT5y
ZW5kZXJBcmVuYSgpKSBSZW5kZXJUYWJsZShwYXJlbnQtPmRvY3VtZW50KCkgLyogaXMgYW5vbnlt
b3VzICovKTsKKyAgICBuZXdUYWJsZS0+c2V0U3R5bGUobmV3U3R5bGUucmVsZWFzZSgpKTsKKyAg
ICByZXR1cm4gbmV3VGFibGU7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUYWJsZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRh
YmxlLmgKaW5kZXggYmMzMDlmNmI4NDY5NzU4N2JlYmUyZWM1YzE5NTZlOGU2NGZlZTkyYi4uYWMw
NmJhNjYyNWE5NGU3OWIwYzhiNTJlMTYwZTUwNGYzNGE1YzY4NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRhYmxlLmgKQEAgLTIxMSw2ICsyMTEsOCBAQCBwdWJsaWM6CiAgICAgICAg
ICAgICByZWNhbGNTZWN0aW9ucygpOwogICAgIH0KIAorICAgIHN0YXRpYyBSZW5kZXJUYWJsZSog
Y3JlYXRlQW5vbnltb3VzV2l0aFBhcmVudFJlbmRlcmVyQW5kRGlzcGxheShjb25zdCBSZW5kZXJP
YmplY3QqLCBFRGlzcGxheSA9IFRBQkxFKTsKKwogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9p
ZCBzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRT
dHlsZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJs
ZUNlbGwuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5jcHAK
aW5kZXggMTM5NjE1YTg4YTdkNzY3NmVjMDRmYWIxNTRmYjI3YzM2YjMxMzgyOC4uMjI0MDMzMWJj
N2NjODRjZDRlNGMzOTczMmVjMWU2MmNhYTljZjM1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5jcHAKQEAgLTExMTcsNCArMTExNywxNCBAQCB2b2lkIFJl
bmRlclRhYmxlQ2VsbDo6c2Nyb2xsYmFyc0NoYW5nZWQoYm9vbCBob3Jpem9udGFsU2Nyb2xsYmFy
Q2hhbmdlZCwgYm9vbCB2ZQogICAgICAgICBzZXRJbnRyaW5zaWNQYWRkaW5nQWZ0ZXIoaW50cmlu
c2ljUGFkZGluZ0FmdGVyKCkgLSBzY3JvbGxiYXJIZWlnaHQpOwogfQogCitSZW5kZXJUYWJsZUNl
bGwqIFJlbmRlclRhYmxlQ2VsbDo6Y3JlYXRlQW5vbnltb3VzV2l0aFBhcmVudFJlbmRlcmVyQW5k
RGlzcGxheShjb25zdCBSZW5kZXJPYmplY3QqIHBhcmVudCkKK3sKKyAgICBSZWZQdHI8UmVuZGVy
U3R5bGU+IG5ld1N0eWxlID0gUmVuZGVyU3R5bGU6OmNyZWF0ZUFub255bW91c1N0eWxlKHBhcmVu
dC0+c3R5bGUoKSk7CisgICAgbmV3U3R5bGUtPnNldERpc3BsYXkoVEFCTEVfQ0VMTCk7CisKKyAg
ICBSZW5kZXJUYWJsZUNlbGwqIG5ld0NlbGwgPSBuZXcgKHBhcmVudC0+cmVuZGVyQXJlbmEoKSkg
UmVuZGVyVGFibGVDZWxsKHBhcmVudC0+ZG9jdW1lbnQoKSAvKiBpcyBhbm9ueW1vdXMgKi8pOwor
ICAgIG5ld0NlbGwtPnNldFN0eWxlKG5ld1N0eWxlLnJlbGVhc2UoKSk7CisgICAgcmV0dXJuIG5l
d0NlbGw7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUYWJsZUNlbGwuaAppbmRleCBlMTgzNzJhYzUyZWJhMDE4NDRiMzYwMDIyNmM5
MGJiNDEyZjgwMmQwLi40ZjI5MDhiNjJmN2NlNjU0OTg1NzdlNmMxZDIyMWU4ZWJmZTVjOWY3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5oCkBAIC0xMzgsNiAr
MTM4LDggQEAgcHVibGljOgogICAgIGJvb2wgY2VsbFdpZHRoQ2hhbmdlZCgpIGNvbnN0IHsgcmV0
dXJuIG1fY2VsbFdpZHRoQ2hhbmdlZDsgfQogICAgIHZvaWQgc2V0Q2VsbFdpZHRoQ2hhbmdlZChi
b29sIGIgPSB0cnVlKSB7IG1fY2VsbFdpZHRoQ2hhbmdlZCA9IGI7IH0KIAorICAgIHN0YXRpYyBS
ZW5kZXJUYWJsZUNlbGwqIGNyZWF0ZUFub255bW91c1dpdGhQYXJlbnRSZW5kZXJlckFuZERpc3Bs
YXkoY29uc3QgUmVuZGVyT2JqZWN0Kik7CisKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQg
c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5
bGUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVS
b3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlUm93LmNwcAppbmRl
eCAxYWQ4Mzc4ZDFlNzZkYjU1NWNiMmIzNTA2Mzg4YTQzZjAzZDJiOTc0Li5hNjcyMmUzMWQyM2Vm
OGFhY2IzMWRiZTY2NWUzMTNiNmY0YzA0YTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGFibGVSb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUYWJsZVJvdy5jcHAKQEAgLTExMywxMSArMTEzLDcgQEAgdm9pZCBSZW5kZXJUYWJs
ZVJvdzo6YWRkQ2hpbGQoUmVuZGVyT2JqZWN0KiBjaGlsZCwgUmVuZGVyT2JqZWN0KiBiZWZvcmVD
aGlsZCkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIFJlbmRlclRh
YmxlQ2VsbCogY2VsbCA9IG5ldyAocmVuZGVyQXJlbmEoKSkgUmVuZGVyVGFibGVDZWxsKGRvY3Vt
ZW50KCkgLyogYW5vbnltb3VzIG9iamVjdCAqLyk7Ci0gICAgICAgIFJlZlB0cjxSZW5kZXJTdHls
ZT4gbmV3U3R5bGUgPSBSZW5kZXJTdHlsZTo6Y3JlYXRlKCk7Ci0gICAgICAgIG5ld1N0eWxlLT5p
bmhlcml0RnJvbShzdHlsZSgpKTsKLSAgICAgICAgbmV3U3R5bGUtPnNldERpc3BsYXkoVEFCTEVf
Q0VMTCk7Ci0gICAgICAgIGNlbGwtPnNldFN0eWxlKG5ld1N0eWxlLnJlbGVhc2UoKSk7CisgICAg
ICAgIFJlbmRlclRhYmxlQ2VsbCogY2VsbCA9IFJlbmRlclRhYmxlQ2VsbDo6Y3JlYXRlQW5vbnlt
b3VzV2l0aFBhcmVudFJlbmRlcmVyQW5kRGlzcGxheSh0aGlzKTsKICAgICAgICAgYWRkQ2hpbGQo
Y2VsbCwgYmVmb3JlQ2hpbGQpOwogICAgICAgICBjZWxsLT5hZGRDaGlsZChjaGlsZCk7CiAgICAg
ICAgIHJldHVybjsKQEAgLTI0OSw0ICsyNDUsMTQgQEAgdm9pZCBSZW5kZXJUYWJsZVJvdzo6aW1h
Z2VDaGFuZ2VkKFdyYXBwZWRJbWFnZVB0ciwgY29uc3QgSW50UmVjdCopCiAgICAgcmVwYWludCgp
OwogfQogCitSZW5kZXJUYWJsZVJvdyogUmVuZGVyVGFibGVSb3c6OmNyZWF0ZUFub255bW91c1dp
dGhQYXJlbnRSZW5kZXJlckFuZERpc3BsYXkoY29uc3QgUmVuZGVyT2JqZWN0KiBwYXJlbnQpCit7
CisgICAgUmVmUHRyPFJlbmRlclN0eWxlPiBuZXdTdHlsZSA9IFJlbmRlclN0eWxlOjpjcmVhdGVB
bm9ueW1vdXNTdHlsZShwYXJlbnQtPnN0eWxlKCkpOworICAgIG5ld1N0eWxlLT5zZXREaXNwbGF5
KFRBQkxFX1JPVyk7CisKKyAgICBSZW5kZXJUYWJsZVJvdyogbmV3Um93ID0gbmV3IChwYXJlbnQt
PnJlbmRlckFyZW5hKCkpIFJlbmRlclRhYmxlUm93KHBhcmVudC0+ZG9jdW1lbnQoKSAvKiBpcyBh
bm9ueW1vdXMgKi8pOworICAgIG5ld1Jvdy0+c2V0U3R5bGUobmV3U3R5bGUucmVsZWFzZSgpKTsK
KyAgICByZXR1cm4gbmV3Um93OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVSb3cuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVJvdy5oCmluZGV4IGY2NjBlOWQzMWQzYTUyZTkw
NDllZWIzNDg2NjQ1Yjk1N2ZlOTZhNWQuLmIzODdhZmMxMTVjYWUyMDI0MjllZWM1OWMyZDBmYzE4
MjU2ZjJiYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJs
ZVJvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVJvdy5oCkBA
IC00Miw2ICs0Miw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHVwZGF0ZUJlZm9yZUFuZEFmdGVyQ29u
dGVudCgpOwogICAgIHZvaWQgcGFpbnRPdXRsaW5lRm9yUm93SWZOZWVkZWQoUGFpbnRJbmZvJiwg
Y29uc3QgTGF5b3V0UG9pbnQmKTsKIAorICAgIHN0YXRpYyBSZW5kZXJUYWJsZVJvdyogY3JlYXRl
QW5vbnltb3VzV2l0aFBhcmVudFJlbmRlcmVyQW5kRGlzcGxheShjb25zdCBSZW5kZXJPYmplY3Qq
KTsKKwogcHJpdmF0ZToKICAgICB2aXJ0dWFsIFJlbmRlck9iamVjdENoaWxkTGlzdCogdmlydHVh
bENoaWxkcmVuKCkgeyByZXR1cm4gY2hpbGRyZW4oKTsgfQogICAgIHZpcnR1YWwgY29uc3QgUmVu
ZGVyT2JqZWN0Q2hpbGRMaXN0KiB2aXJ0dWFsQ2hpbGRyZW4oKSBjb25zdCB7IHJldHVybiBjaGls
ZHJlbigpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFi
bGVTZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rp
b24uY3BwCmluZGV4IDMwNmRkYTQxZjMxOGVkYTI3MDQ0ZGY0MTQ5OTkxZTBhMzY4MmFhZjMuLjc5
OTA0NGMyZDY3ZjBmYzcwMmQ1ZmIyOWM1M2Y0MDI1ZDNjNWVkMDUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uY3BwCkBAIC0xNjEsMTEgKzE2MSw3
IEBAIHZvaWQgUmVuZGVyVGFibGVTZWN0aW9uOjphZGRDaGlsZChSZW5kZXJPYmplY3QqIGNoaWxk
LCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IH0KIAotICAgICAgICBSZW5kZXJPYmplY3QqIHJvdyA9IG5ldyAocmVuZGVyQXJlbmEoKSkgUmVu
ZGVyVGFibGVSb3coZG9jdW1lbnQoKSAvKiBhbm9ueW1vdXMgdGFibGUgcm93ICovKTsKLSAgICAg
ICAgUmVmUHRyPFJlbmRlclN0eWxlPiBuZXdTdHlsZSA9IFJlbmRlclN0eWxlOjpjcmVhdGUoKTsK
LSAgICAgICAgbmV3U3R5bGUtPmluaGVyaXRGcm9tKHN0eWxlKCkpOwotICAgICAgICBuZXdTdHls
ZS0+c2V0RGlzcGxheShUQUJMRV9ST1cpOwotICAgICAgICByb3ctPnNldFN0eWxlKG5ld1N0eWxl
LnJlbGVhc2UoKSk7CisgICAgICAgIFJlbmRlck9iamVjdCogcm93ID0gUmVuZGVyVGFibGVSb3c6
OmNyZWF0ZUFub255bW91c1dpdGhQYXJlbnRSZW5kZXJlckFuZERpc3BsYXkodGhpcyk7CiAgICAg
ICAgIGFkZENoaWxkKHJvdywgYmVmb3JlQ2hpbGQpOwogICAgICAgICByb3ctPmFkZENoaWxkKGNo
aWxkKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMTQxNyw0ICsxNDEzLDE1IEBAIENvbGxhcHNlZEJv
cmRlclZhbHVlJiBSZW5kZXJUYWJsZVNlY3Rpb246OmNhY2hlZENvbGxhcHNlZEJvcmRlcihjb25z
dCBSZW5kZXJUYWJsCiAgICAgcmV0dXJuIGl0LT5zZWNvbmQ7CiB9CiAKK1JlbmRlclRhYmxlU2Vj
dGlvbiogUmVuZGVyVGFibGVTZWN0aW9uOjpjcmVhdGVBbm9ueW1vdXNXaXRoUGFyZW50UmVuZGVy
ZXJBbmREaXNwbGF5KGNvbnN0IFJlbmRlck9iamVjdCogcGFyZW50LCBFRGlzcGxheSBkaXNwbGF5
KQoreworICAgIEFTU0VSVChkaXNwbGF5ID09IFRBQkxFX1JPV19HUk9VUCB8fCBkaXNwbGF5ID09
IFRBQkxFX0hFQURFUl9HUk9VUCB8fCBkaXNwbGF5ID09IFRBQkxFX0ZPT1RFUl9HUk9VUCk7Cisg
ICAgUmVmUHRyPFJlbmRlclN0eWxlPiBuZXdTdHlsZSA9IFJlbmRlclN0eWxlOjpjcmVhdGVBbm9u
eW1vdXNTdHlsZShwYXJlbnQtPnN0eWxlKCkpOworICAgIG5ld1N0eWxlLT5zZXREaXNwbGF5KGRp
c3BsYXkpOworCisgICAgUmVuZGVyVGFibGVTZWN0aW9uKiBuZXdTZWN0aW9uID0gbmV3IChwYXJl
bnQtPnJlbmRlckFyZW5hKCkpIFJlbmRlclRhYmxlU2VjdGlvbihwYXJlbnQtPmRvY3VtZW50KCkg
LyogaXMgYW5vbnltb3VzICovKTsKKyAgICBuZXdTZWN0aW9uLT5zZXRTdHlsZShuZXdTdHlsZS5y
ZWxlYXNlKCkpOworICAgIHJldHVybiBuZXdTZWN0aW9uOworfQorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVT
ZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmgK
aW5kZXggY2ViMTg3YmJkMWFhMjJkMzBlODI1NDJlZTU3NGNhY2JkYzVhYWY1OC4uM2M2MDVjOTY5
NjIzZmZiOTZhZmU4NDU2ZmIwYzBkOGZmODQ1ZWI5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uaApAQCAtMTYyLDYgKzE2Miw4IEBAIHB1YmxpYzoK
ICAgICAvLyBGSVhNRTogV2UgbWF5IHdhbnQgdG8gaW50cm9kdWNlIGEgc3RydWN0dXJlIGhvbGRp
bmcgdGhlIGluLWZsdXggbGF5b3V0IGluZm9ybWF0aW9uLgogICAgIGludCBkaXN0cmlidXRlRXh0
cmFMb2dpY2FsSGVpZ2h0VG9Sb3dzKGludCBleHRyYUxvZ2ljYWxIZWlnaHQpOwogCisgICAgc3Rh
dGljIFJlbmRlclRhYmxlU2VjdGlvbiogY3JlYXRlQW5vbnltb3VzV2l0aFBhcmVudFJlbmRlcmVy
QW5kRGlzcGxheShjb25zdCBSZW5kZXJPYmplY3QqLCBFRGlzcGxheSk7CisKIHByb3RlY3RlZDoK
ICAgICB2aXJ0dWFsIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBS
ZW5kZXJTdHlsZSogb2xkU3R5bGUpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZDVjZmZhZTYyMGI3NjhlZjk3ZTMzODU3
ZGE2ZmJiMzZjYzUwNWQ2Mi4uMzdlYTEyNzgzODA0ZDJkYzQwMzU2YWI5NjQ0YWJiNWVmMjFiNTdj
OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTA0LTAzICBBYmhpc2hlayBBcnlhICA8aW5m
ZXJub0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQWRkIGhlbHBlcnMgdG8gY3JlYXRlIGFub255
bW91cyB0YWJsZSBwYXJ0cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTgzMTE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgUmViYXNlbGluaW5nIHRlc3RzIGJlY2F1c2Ugd2Ugbm93IGNvcnJlY3RseSBpbmhl
cml0IHRoZSBiaWRpIG92ZXJyaWRlLgorCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbWFj
L2Zhc3QvY3NzL2JpZGktb3ZlcnJpZGUtaW4tYW5vbnltb3VzLWJsb2NrLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vZmFzdC9jc3MvYmlkaS1vdmVycmlkZS1p
bi1hbm9ueW1vdXMtYmxvY2stZXhwZWN0ZWQudHh0OgorCiAyMDEyLTA0LTAzICBUb255IENoYW5n
ICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgSW1wbGVtZW50IG5ldyBmbGV4IHByb3Bl
cnR5IGFuZCBkZXByZWNhdGUgZmxleCBmdW5jdGlvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0tbWFjL2Zhc3QvY3NzL2JpZGktb3ZlcnJpZGUtaW4tYW5vbnltb3Vz
LWJsb2NrLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLW1hYy9m
YXN0L2Nzcy9iaWRpLW92ZXJyaWRlLWluLWFub255bW91cy1ibG9jay1leHBlY3RlZC50eHQKaW5k
ZXggYjFmMTc3MTVlN2M5M2YxNmE2NWFhNWRkOWI1NjY3MDM1MTkyYzY1Mi4uZmI0ZGY1NGY2MDRl
MzI3MGIyZjY4YzRiMjY2ODczZDRkOTEwZDNhMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0tbWFjL2Zhc3QvY3NzL2JpZGktb3ZlcnJpZGUtaW4tYW5vbnltb3VzLWJs
b2NrLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1tYWMv
ZmFzdC9jc3MvYmlkaS1vdmVycmlkZS1pbi1hbm9ueW1vdXMtYmxvY2stZXhwZWN0ZWQudHh0CkBA
IC0yMjUsNyArMjI1LDcgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA3ODV4MTIxNwogICAgICAgICAg
ICAgUmVuZGVyVGFibGVSb3cge0RJVn0gYXQgKDAsMCkgc2l6ZSAyNHgxOAogICAgICAgICAgICAg
ICBSZW5kZXJUYWJsZUNlbGwgKGFub255bW91cykgYXQgKDAsMCkgc2l6ZSAyNHgxOCBbcj0wIGM9
MCBycz0xIGNzPTFdCiAgICAgICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgyLDAp
IHNpemUgMjJ4MTgKLSAgICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgyLDApIHdpZHRoIDIy
OiAiYWJjIgorICAgICAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDIsMCkgd2lkdGggMjIgUlRM
IG92ZXJyaWRlOiAiYWJjIgogICAgICAgICAgICAgUmVuZGVyVGFibGVSb3cgKGFub255bW91cykg
YXQgKDAsMTgpIHNpemUgMjR4MTgKICAgICAgICAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtESVZ9
IGF0ICgwLDE4KSBzaXplIDI0eDE4IFtyPTEgYz0wIHJzPTEgY3M9MV0KICAgICAgICAgICAgICAg
ICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDQsMCkgc2l6ZSAyMHgxOApAQCAtMjM3LDQgKzIzNyw0
IEBAIGxheWVyIGF0ICgwLDApIHNpemUgNzg1eDEyMTcKICAgICAgICAgICAgIFJlbmRlclRhYmxl
Um93IChhbm9ueW1vdXMpIGF0ICgwLDApIHNpemUgMjR4MTgKICAgICAgICAgICAgICAgUmVuZGVy
VGFibGVDZWxsIChhbm9ueW1vdXMpIGF0ICgwLDApIHNpemUgMjR4MTggW3I9MCBjPTAgcnM9MSBj
cz0xXQogICAgICAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDI0
eDE4Ci0gICAgICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAyNDogIm9wcSIK
KyAgICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDI0IFJUTCBvdmVycmlk
ZTogIm9wcSIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9m
YXN0L2Nzcy9iaWRpLW92ZXJyaWRlLWluLWFub255bW91cy1ibG9jay1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vZmFzdC9jc3MvYmlkaS1vdmVycmlkZS1p
bi1hbm9ueW1vdXMtYmxvY2stZXhwZWN0ZWQudHh0CmluZGV4IDlhODJlNGNjNGQ3NzhmOWQ1NDBl
OWExNWM4ZjBkZTE5ZWY2MWEwNTMuLjRhOWVmMDA4YTExNWIxOGQzZDFiY2RmNWJhYmZlMDgwZTBi
MWJlZTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9mYXN0
L2Nzcy9iaWRpLW92ZXJyaWRlLWluLWFub255bW91cy1ibG9jay1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2Zhc3QvY3NzL2JpZGktb3ZlcnJpZGUt
aW4tYW5vbnltb3VzLWJsb2NrLWV4cGVjdGVkLnR4dApAQCAtMjI1LDcgKzIyNSw3IEBAIGxheWVy
IGF0ICgwLDApIHNpemUgNzg1eDEzMDEKICAgICAgICAgICAgIFJlbmRlclRhYmxlUm93IHtESVZ9
IGF0ICgwLDApIHNpemUgMjR4MjAKICAgICAgICAgICAgICAgUmVuZGVyVGFibGVDZWxsIChhbm9u
eW1vdXMpIGF0ICgwLDApIHNpemUgMjR4MjAgW3I9MCBjPTAgcnM9MSBjcz0xXQogICAgICAgICAg
ICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMiwwKSBzaXplIDIyeDE5Ci0gICAgICAgICAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoMiwwKSB3aWR0aCAyMjogImFiYyIKKyAgICAgICAgICAgICAg
ICAgIHRleHQgcnVuIGF0ICgyLDApIHdpZHRoIDIyIFJUTCBvdmVycmlkZTogImFiYyIKICAgICAg
ICAgICAgIFJlbmRlclRhYmxlUm93IChhbm9ueW1vdXMpIGF0ICgwLDIwKSBzaXplIDI0eDIwCiAg
ICAgICAgICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7RElWfSBhdCAoMCwyMCkgc2l6ZSAyNHgyMCBb
cj0xIGM9MCBycz0xIGNzPTFdCiAgICAgICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0
ICg1LDApIHNpemUgMTl4MTkKQEAgLTIzNyw0ICsyMzcsNCBAQCBsYXllciBhdCAoMCwwKSBzaXpl
IDc4NXgxMzAxCiAgICAgICAgICAgICBSZW5kZXJUYWJsZVJvdyAoYW5vbnltb3VzKSBhdCAoMCww
KSBzaXplIDI0eDIwCiAgICAgICAgICAgICAgIFJlbmRlclRhYmxlQ2VsbCAoYW5vbnltb3VzKSBh
dCAoMCwwKSBzaXplIDI0eDIwIFtyPTAgYz0wIHJzPTEgY3M9MV0KICAgICAgICAgICAgICAgICBS
ZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAyNHgxOQotICAgICAgICAgICAgICAgICAg
dGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMjQ6ICJvcHEiCisgICAgICAgICAgICAgICAgICB0ZXh0
IHJ1biBhdCAoMCwwKSB3aWR0aCAyNCBSVEwgb3ZlcnJpZGU6ICJvcHEiCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>135574</attachid>
            <date>2012-04-04 06:16:54 -0700</date>
            <delta_ts>2012-04-04 09:35:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-83116-20120404061652.patch</filename>
            <type>text/plain</type>
            <size>24476</size>
            <attacher name="Abhishek Arya">inferno</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEzMDk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDVjYmI4ZGZmOTc4MDA3
MWY1NTYwMjRlZDQzY2NiNWI3YWVjMWMzNS4uOTIyNDg2ZGYzZjE0NGU5YzkxMjc1YTNlYjUxZDkz
OTM2YmFkNDM4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDEyLTA0LTAzICBBYmhp
c2hlayBBcnlhICA8aW5mZXJub0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQWRkIGhlbHBlcnMg
dG8gY3JlYXRlIGFub255bW91cyB0YWJsZSBwYXJ0cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgzMTE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIHBhdGNoIGludHJvZHVjZXMgaGVscGVycyB0byBj
cmVhdGUgYW5vbnltb3VzIHRhYmxlIHBhcnRzIGJ5CisgICAgICAgIGludHJvZHVjaW5nIGEgbmV3
IHN0YXRpYyBmdW5jdGlvbiBjcmVhdGVBbm9ueW1vdXNXaXRoUGFyZW50UmVuZGVyZXJBbmREaXNw
bGF5LgorICAgICAgICBUaGUgZnVuY3Rpb24gYnVpbGRzIGEgbmV3IGFub255bW91cyB3cmFwcGVy
IGluaGVyaXRpbmcgc3R5bGUgcHJvcGVydGllcyBmcm9tCisgICAgICAgIHBhcmVudCBhbmQgc2V0
cyBhIGRpc3BsYXkgYmFzZWQgb24gYXJndW1lbnQvZGVmYXVsdCB2YWx1ZXMuIEFsc28gd2Ugc3Ry
ZWFtbGluZQorICAgICAgICB0aGUgUmVuZGVyQmxvY2sgZnVuY3Rpb25zIHRvIG1hdGNoIHRoaXMg
bmFtaW5nIGNvbnZlbnRpb24uCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmNyZWF0ZUFub255bW91c0Jsb2NrV2l0
aFNhbWVUeXBlQXMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmNyZWF0ZUFub255
bW91c1dpdGhQYXJlbnRSZW5kZXJlckFuZERpc3BsYXkpOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6Y3JlYXRlQW5vbnltb3VzQ29sdW1uc1dpdGhQ
YXJlbnRSZW5kZXJlckFuZERpc3BsYXkpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6
OmNyZWF0ZUFub255bW91c0NvbHVtblNwYW5XaXRoUGFyZW50UmVuZGVyZXJBbmREaXNwbGF5KToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suaDoKKyAgICAgICAgKFJlbmRlckJsb2Nr
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpjcmVhdGVBbm9ueW1vdXNCbG9jayk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6Y3JlYXRlQW5vbnltb3VzQ29sdW1uc0Js
b2NrKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpjcmVhdGVBbm9ueW1vdXNDb2x1
bW5TcGFuQmxvY2spOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCdXR0b24uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyQnV0dG9uOjphZGRDaGlsZCk6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OmFk
ZENoaWxkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGFibGU6OmFkZENoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clRhYmxlOjpjcmVhdGVBbm9ueW1vdXNXaXRoUGFyZW50UmVuZGVyZXJBbmREaXNwbGF5KToKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUYWJsZS5oOgorICAg
ICAgICAoUmVuZGVyVGFibGUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGVDZWxsOjpjcmVhdGVBbm9ueW1vdXNX
aXRoUGFyZW50UmVuZGVyZXJBbmREaXNwbGF5KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuaDoKKyAgICAgICAgKFJlbmRlclRhYmxlQ2Vs
bCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxlUm93LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRhYmxlUm93OjphZGRDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUYWJsZVJvdzo6Y3JlYXRlQW5vbnltb3VzV2l0aFBhcmVudFJlbmRlcmVyQW5kRGlzcGxheSk6
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGVSb3cu
aDoKKyAgICAgICAgKFJlbmRlclRhYmxlUm93KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
VGFibGVTZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlU2VjdGlvbjo6
YWRkQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGVTZWN0aW9uOjpjcmVhdGVB
bm9ueW1vdXNXaXRoUGFyZW50UmVuZGVyZXJBbmREaXNwbGF5KToKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uaDoKKyAgICAgICAgKFJl
bmRlclRhYmxlU2VjdGlvbik6CisKIDIwMTItMDQtMDMgIEp1bGllbiBDaGFmZnJhaXggIDxqY2hh
ZmZyYWl4QHdlYmtpdC5vcmc+CiAKICAgICAgICAgcHJlc2VudGF0aW9uQXR0cmlidXRlQ2FjaGVN
YXhpbXVtU2l6ZSBpcyBzZXQgdG9vIGxvdwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
bG9jay5jcHAKaW5kZXggODAzMTkwZGYxYWJlYWM3ZmM0MTE3NGUwMGYzZmM0ODY2N2NmNjQ3Mi4u
NmNkZGQ2OGUwYWRlNGIwZmY5OThlZjVlOWM5NDc1ZWJmY2YyNDY3ZCAxMDA3NTUKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCkBAIC03ODEsNyArNzgxLDcgQEAgUmVuZGVyT2Jq
ZWN0KiBSZW5kZXJCbG9jazo6c3BsaXRUYWJsZVBhcnRzQXJvdW5kQ2hpbGQoUmVuZGVyT2JqZWN0
KiBiZWZvcmVDaGlsZCkKIAogICAgICAgICAgICAgLy8gQ3JlYXRlIGFuIGFub255bW91cyB0YWJs
ZSBjb250YWluZXIgbmV4dCB0byBvdXIgdGFibGUgY29udGFpbmVyLgogICAgICAgICAgICAgUmVu
ZGVyQmxvY2sqIHBhcmVudEJsb2NrID0gdG9SZW5kZXJCbG9jayh0YWJsZS0+cGFyZW50KCkpOwot
ICAgICAgICAgICAgUmVuZGVyVGFibGUqIHBvc3RUYWJsZSA9IHBhcmVudEJsb2NrLT5jcmVhdGVB
bm9ueW1vdXNUYWJsZSgpOworICAgICAgICAgICAgUmVuZGVyVGFibGUqIHBvc3RUYWJsZSA9IFJl
bmRlclRhYmxlOjpjcmVhdGVBbm9ueW1vdXNXaXRoUGFyZW50UmVuZGVyZXJBbmREaXNwbGF5KHBh
cmVudEJsb2NrKTsKICAgICAgICAgICAgIHBhcmVudEJsb2NrLT5jaGlsZHJlbigpLT5pbnNlcnRD
aGlsZE5vZGUocGFyZW50QmxvY2ssIHBvc3RUYWJsZSwgdGFibGUtPm5leHRTaWJsaW5nKCkpOwog
ICAgICAgICAgICAgCiAgICAgICAgICAgICAvLyBNb3ZlIGFsbCB0aGUgY2hpbGRyZW4gZnJvbSBi
ZWZvcmVDaGlsZCB0byB0aGUgbmV3bHkgY3JlYXRlZCBhbm9ueW1vdXMgdGFibGUgY29udGFpbmVy
LgpAQCAtNjY3NSw1MiArNjY3NSwxMyBAQCB2b2lkIFJlbmRlckJsb2NrOjphZGRGb2N1c1JpbmdS
ZWN0cyhWZWN0b3I8SW50UmVjdD4mIHJlY3RzLCBjb25zdCBMYXlvdXRQb2ludCYgYQogICAgICAg
ICBpbmxpbmVFbGVtZW50Q29udGludWF0aW9uKCktPmFkZEZvY3VzUmluZ1JlY3RzKHJlY3RzLCBm
bG9vcmVkTGF5b3V0UG9pbnQoYWRkaXRpb25hbE9mZnNldCArIGlubGluZUVsZW1lbnRDb250aW51
YXRpb24oKS0+Y29udGFpbmluZ0Jsb2NrKCktPmxvY2F0aW9uKCkgLSBsb2NhdGlvbigpKSk7CiB9
CiAKLVJlbmRlckJsb2NrKiBSZW5kZXJCbG9jazo6Y3JlYXRlQW5vbnltb3VzQmxvY2soYm9vbCBp
c0ZsZXhpYmxlQm94KSBjb25zdAotewotICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gbmV3U3R5bGUg
PSBSZW5kZXJTdHlsZTo6Y3JlYXRlQW5vbnltb3VzU3R5bGUoc3R5bGUoKSk7Ci0KLSAgICBSZW5k
ZXJCbG9jayogbmV3Qm94ID0gMDsKLSAgICBpZiAoaXNGbGV4aWJsZUJveCkgewotICAgICAgICBu
ZXdTdHlsZS0+c2V0RGlzcGxheShCT1gpOwotICAgICAgICBuZXdCb3ggPSBuZXcgKHJlbmRlckFy
ZW5hKCkpIFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveChkb2N1bWVudCgpIC8qIGFub255bW91
cyBib3ggKi8pOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIG5ld1N0eWxlLT5zZXREaXNwbGF5KEJM
T0NLKTsKLSAgICAgICAgbmV3Qm94ID0gbmV3IChyZW5kZXJBcmVuYSgpKSBSZW5kZXJCbG9jayhk
b2N1bWVudCgpIC8qIGFub255bW91cyBib3ggKi8pOwotICAgIH0KLQotICAgIG5ld0JveC0+c2V0
U3R5bGUobmV3U3R5bGUucmVsZWFzZSgpKTsKLSAgICByZXR1cm4gbmV3Qm94OwotfQotCiBSZW5k
ZXJCbG9jayogUmVuZGVyQmxvY2s6OmNyZWF0ZUFub255bW91c0Jsb2NrV2l0aFNhbWVUeXBlQXMo
UmVuZGVyQmxvY2sqIG90aGVyQW5vbnltb3VzQmxvY2spIGNvbnN0CiB7CiAgICAgaWYgKG90aGVy
QW5vbnltb3VzQmxvY2stPmlzQW5vbnltb3VzQ29sdW1uc0Jsb2NrKCkpCiAgICAgICAgIHJldHVy
biBjcmVhdGVBbm9ueW1vdXNDb2x1bW5zQmxvY2soKTsKICAgICBpZiAob3RoZXJBbm9ueW1vdXNC
bG9jay0+aXNBbm9ueW1vdXNDb2x1bW5TcGFuQmxvY2soKSkKICAgICAgICAgcmV0dXJuIGNyZWF0
ZUFub255bW91c0NvbHVtblNwYW5CbG9jaygpOwotICAgIHJldHVybiBjcmVhdGVBbm9ueW1vdXNC
bG9jayhvdGhlckFub255bW91c0Jsb2NrLT5zdHlsZSgpLT5kaXNwbGF5KCkgPT0gQk9YKTsKLX0K
LQotUmVuZGVyQmxvY2sqIFJlbmRlckJsb2NrOjpjcmVhdGVBbm9ueW1vdXNDb2x1bW5zQmxvY2so
KSBjb25zdAotewotICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gbmV3U3R5bGUgPSBSZW5kZXJTdHls
ZTo6Y3JlYXRlQW5vbnltb3VzU3R5bGUoc3R5bGUoKSk7Ci0gICAgbmV3U3R5bGUtPmluaGVyaXRD
b2x1bW5Qcm9wZXJ0aWVzRnJvbShzdHlsZSgpKTsKLSAgICBuZXdTdHlsZS0+c2V0RGlzcGxheShC
TE9DSyk7Ci0KLSAgICBSZW5kZXJCbG9jayogbmV3Qm94ID0gbmV3IChyZW5kZXJBcmVuYSgpKSBS
ZW5kZXJCbG9jayhkb2N1bWVudCgpIC8qIGFub255bW91cyBib3ggKi8pOwotICAgIG5ld0JveC0+
c2V0U3R5bGUobmV3U3R5bGUucmVsZWFzZSgpKTsKLSAgICByZXR1cm4gbmV3Qm94OwotfQotCi1S
ZW5kZXJCbG9jayogUmVuZGVyQmxvY2s6OmNyZWF0ZUFub255bW91c0NvbHVtblNwYW5CbG9jaygp
IGNvbnN0Ci17Ci0gICAgUmVmUHRyPFJlbmRlclN0eWxlPiBuZXdTdHlsZSA9IFJlbmRlclN0eWxl
OjpjcmVhdGVBbm9ueW1vdXNTdHlsZShzdHlsZSgpKTsKLSAgICBuZXdTdHlsZS0+c2V0Q29sdW1u
U3BhbihDb2x1bW5TcGFuQWxsKTsKLSAgICBuZXdTdHlsZS0+c2V0RGlzcGxheShCTE9DSyk7Ci0K
LSAgICBSZW5kZXJCbG9jayogbmV3Qm94ID0gbmV3IChyZW5kZXJBcmVuYSgpKSBSZW5kZXJCbG9j
ayhkb2N1bWVudCgpIC8qIGFub255bW91cyBib3ggKi8pOwotICAgIG5ld0JveC0+c2V0U3R5bGUo
bmV3U3R5bGUucmVsZWFzZSgpKTsKLSAgICByZXR1cm4gbmV3Qm94OworICAgIHJldHVybiBjcmVh
dGVBbm9ueW1vdXNCbG9jayhvdGhlckFub255bW91c0Jsb2NrLT5zdHlsZSgpLT5kaXNwbGF5KCkp
OwogfQogCiBib29sIFJlbmRlckJsb2NrOjpoYXNOZXh0UGFnZShMYXlvdXRVbml0IGxvZ2ljYWxP
ZmZzZXQsIFBhZ2VCb3VuZGFyeVJ1bGUgcGFnZUJvdW5kYXJ5UnVsZSkgY29uc3QKQEAgLTc0NTMs
NiArNzQxNCw0NiBAQCBUZXh0UnVuIFJlbmRlckJsb2NrOjpjb25zdHJ1Y3RUZXh0UnVuKFJlbmRl
ck9iamVjdCogY29udGV4dCwgY29uc3QgRm9udCYgZm9udCwgYwogICAgIHJldHVybiBjb25zdHJ1
Y3RUZXh0UnVuKGNvbnRleHQsIGZvbnQsIHN0cmluZy5jaGFyYWN0ZXJzKCksIHN0cmluZy5sZW5n
dGgoKSwgc3R5bGUsIGV4cGFuc2lvbiwgZmxhZ3MpOwogfQogCitSZW5kZXJCbG9jayogUmVuZGVy
QmxvY2s6OmNyZWF0ZUFub255bW91c1dpdGhQYXJlbnRSZW5kZXJlckFuZERpc3BsYXkoY29uc3Qg
UmVuZGVyT2JqZWN0KiBwYXJlbnQsIEVEaXNwbGF5IGRpc3BsYXkpCit7CisgICAgUmVmUHRyPFJl
bmRlclN0eWxlPiBuZXdTdHlsZSA9IFJlbmRlclN0eWxlOjpjcmVhdGVBbm9ueW1vdXNTdHlsZShw
YXJlbnQtPnN0eWxlKCkpOworCisgICAgLy8gRklYTUU6IERvIHdlIG5lZWQgdG8gY292ZXIgdGhl
IG5ldyBmbGV4IGJveCBoZXJlID8KKyAgICBSZW5kZXJCbG9jayogbmV3Qm94ID0gMDsKKyAgICBp
ZiAoZGlzcGxheSA9PSBCT1gpIHsKKyAgICAgICAgbmV3U3R5bGUtPnNldERpc3BsYXkoQk9YKTsK
KyAgICAgICAgbmV3Qm94ID0gbmV3IChwYXJlbnQtPnJlbmRlckFyZW5hKCkpIFJlbmRlckRlcHJl
Y2F0ZWRGbGV4aWJsZUJveChwYXJlbnQtPmRvY3VtZW50KCkgLyogYW5vbnltb3VzIGJveCAqLyk7
CisgICAgfSBlbHNlIHsKKyAgICAgICAgbmV3U3R5bGUtPnNldERpc3BsYXkoQkxPQ0spOworICAg
ICAgICBuZXdCb3ggPSBuZXcgKHBhcmVudC0+cmVuZGVyQXJlbmEoKSkgUmVuZGVyQmxvY2socGFy
ZW50LT5kb2N1bWVudCgpIC8qIGFub255bW91cyBib3ggKi8pOworICAgIH0KKworICAgIG5ld0Jv
eC0+c2V0U3R5bGUobmV3U3R5bGUucmVsZWFzZSgpKTsKKyAgICByZXR1cm4gbmV3Qm94OworfQor
CitSZW5kZXJCbG9jayogUmVuZGVyQmxvY2s6OmNyZWF0ZUFub255bW91c0NvbHVtbnNXaXRoUGFy
ZW50UmVuZGVyZXJBbmREaXNwbGF5KGNvbnN0IFJlbmRlck9iamVjdCogcGFyZW50KQoreworICAg
IFJlZlB0cjxSZW5kZXJTdHlsZT4gbmV3U3R5bGUgPSBSZW5kZXJTdHlsZTo6Y3JlYXRlQW5vbnlt
b3VzU3R5bGUocGFyZW50LT5zdHlsZSgpKTsKKyAgICBuZXdTdHlsZS0+aW5oZXJpdENvbHVtblBy
b3BlcnRpZXNGcm9tKHBhcmVudC0+c3R5bGUoKSk7CisgICAgbmV3U3R5bGUtPnNldERpc3BsYXko
QkxPQ0spOworCisgICAgUmVuZGVyQmxvY2sqIG5ld0JveCA9IG5ldyAocGFyZW50LT5yZW5kZXJB
cmVuYSgpKSBSZW5kZXJCbG9jayhwYXJlbnQtPmRvY3VtZW50KCkgLyogYW5vbnltb3VzIGJveCAq
Lyk7CisgICAgbmV3Qm94LT5zZXRTdHlsZShuZXdTdHlsZS5yZWxlYXNlKCkpOworICAgIHJldHVy
biBuZXdCb3g7Cit9CisKK1JlbmRlckJsb2NrKiBSZW5kZXJCbG9jazo6Y3JlYXRlQW5vbnltb3Vz
Q29sdW1uU3BhbldpdGhQYXJlbnRSZW5kZXJlckFuZERpc3BsYXkoY29uc3QgUmVuZGVyT2JqZWN0
KiBwYXJlbnQpCit7CisgICAgUmVmUHRyPFJlbmRlclN0eWxlPiBuZXdTdHlsZSA9IFJlbmRlclN0
eWxlOjpjcmVhdGVBbm9ueW1vdXNTdHlsZShwYXJlbnQtPnN0eWxlKCkpOworICAgIG5ld1N0eWxl
LT5zZXRDb2x1bW5TcGFuKENvbHVtblNwYW5BbGwpOworICAgIG5ld1N0eWxlLT5zZXREaXNwbGF5
KEJMT0NLKTsKKworICAgIFJlbmRlckJsb2NrKiBuZXdCb3ggPSBuZXcgKHBhcmVudC0+cmVuZGVy
QXJlbmEoKSkgUmVuZGVyQmxvY2socGFyZW50LT5kb2N1bWVudCgpIC8qIGFub255bW91cyBib3gg
Ki8pOworICAgIG5ld0JveC0+c2V0U3R5bGUobmV3U3R5bGUucmVsZWFzZSgpKTsKKyAgICByZXR1
cm4gbmV3Qm94OworfQorCiAjaWZuZGVmIE5ERUJVRwogCiB2b2lkIFJlbmRlckJsb2NrOjpzaG93
TGluZVRyZWVBbmRNYXJrKGNvbnN0IElubGluZUJveCogbWFya2VkQm94MSwgY29uc3QgY2hhciog
bWFya2VkTGFiZWwxLCBjb25zdCBJbmxpbmVCb3gqIG1hcmtlZEJveDIsIGNvbnN0IGNoYXIqIG1h
cmtlZExhYmVsMiwgY29uc3QgUmVuZGVyT2JqZWN0KiBvYmopIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9jay5oCmluZGV4IDk3N2E5OWI0MGFjOTVjY2ZiYzY2MzBjYjRiNGY4
ZWQxYmIxZDU2MWQuLjlhNDg2ZDJmMWZjZTk0NDI5M2JhZWM2MzViNTA5YzBmODg4OWUxYzYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCkBAIC0yMzMsMTEgKzIzMywxMyBA
QCBwdWJsaWM6CiAgICAgdXNpbmcgUmVuZGVyQm94TW9kZWxPYmplY3Q6OmNvbnRpbnVhdGlvbjsK
ICAgICB1c2luZyBSZW5kZXJCb3hNb2RlbE9iamVjdDo6c2V0Q29udGludWF0aW9uOwogCi0gICAg
Ly8gVGhpcyBmdW5jdGlvbiBpcyBhIGNvbnZlbmllbmNlIGhlbHBlciBmb3IgY3JlYXRpbmcgYW4g
YW5vbnltb3VzIGJsb2NrIHRoYXQgaW5oZXJpdHMgaXRzCi0gICAgLy8gc3R5bGUgZnJvbSB0aGlz
IFJlbmRlckJsb2NrLgotICAgIFJlbmRlckJsb2NrKiBjcmVhdGVBbm9ueW1vdXNCbG9jayhib29s
IGlzRmxleGlibGVCb3ggPSBmYWxzZSkgY29uc3Q7Ci0gICAgUmVuZGVyQmxvY2sqIGNyZWF0ZUFu
b255bW91c0NvbHVtbnNCbG9jaygpIGNvbnN0OwotICAgIFJlbmRlckJsb2NrKiBjcmVhdGVBbm9u
eW1vdXNDb2x1bW5TcGFuQmxvY2soKSBjb25zdDsKKyAgICBzdGF0aWMgUmVuZGVyQmxvY2sqIGNy
ZWF0ZUFub255bW91c1dpdGhQYXJlbnRSZW5kZXJlckFuZERpc3BsYXkoY29uc3QgUmVuZGVyT2Jq
ZWN0KiwgRURpc3BsYXkgPSBCTE9DSyk7CisgICAgc3RhdGljIFJlbmRlckJsb2NrKiBjcmVhdGVB
bm9ueW1vdXNDb2x1bW5zV2l0aFBhcmVudFJlbmRlcmVyQW5kRGlzcGxheShjb25zdCBSZW5kZXJP
YmplY3QqKTsKKyAgICBzdGF0aWMgUmVuZGVyQmxvY2sqIGNyZWF0ZUFub255bW91c0NvbHVtblNw
YW5XaXRoUGFyZW50UmVuZGVyZXJBbmREaXNwbGF5KGNvbnN0IFJlbmRlck9iamVjdCopOworICAg
IFJlbmRlckJsb2NrKiBjcmVhdGVBbm9ueW1vdXNCbG9jayhFRGlzcGxheSBkaXNwbGF5ID0gQkxP
Q0spIGNvbnN0IHsgcmV0dXJuIGNyZWF0ZUFub255bW91c1dpdGhQYXJlbnRSZW5kZXJlckFuZERp
c3BsYXkodGhpcywgZGlzcGxheSk7IH0KKyAgICBSZW5kZXJCbG9jayogY3JlYXRlQW5vbnltb3Vz
Q29sdW1uc0Jsb2NrKCkgY29uc3QgeyByZXR1cm4gY3JlYXRlQW5vbnltb3VzQ29sdW1uc1dpdGhQ
YXJlbnRSZW5kZXJlckFuZERpc3BsYXkodGhpcyk7IH0KKyAgICBSZW5kZXJCbG9jayogY3JlYXRl
QW5vbnltb3VzQ29sdW1uU3BhbkJsb2NrKCkgY29uc3QgeyByZXR1cm4gY3JlYXRlQW5vbnltb3Vz
Q29sdW1uU3BhbldpdGhQYXJlbnRSZW5kZXJlckFuZERpc3BsYXkodGhpcyk7IH0KKwogICAgIFJl
bmRlckJsb2NrKiBjcmVhdGVBbm9ueW1vdXNCbG9ja1dpdGhTYW1lVHlwZUFzKFJlbmRlckJsb2Nr
KiBvdGhlckFub255bW91c0Jsb2NrKSBjb25zdDsKICAgICAKICAgICBzdGF0aWMgdm9pZCBhcHBl
bmRSdW5zRm9yT2JqZWN0KEJpZGlSdW5MaXN0PEJpZGlSdW4+JiwgaW50IHN0YXJ0LCBpbnQgZW5k
LCBSZW5kZXJPYmplY3QqLCBJbmxpbmVCaWRpUmVzb2x2ZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCdXR0b24uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJ1dHRvbi5jcHAKaW5kZXggMzgwYzVkYTM1YzZlN2U2ZWMxMGExNDQ4ODky
YzA2ODQ2N2I1MjY5YS4uNjE3MjYxZGVhYzhiMWEzODlkMGVmY2ExOThiMTJmNzJlMDVhOWNlMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJ1dHRvbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJ1dHRvbi5jcHAKQEAgLTQ5LDggKzQ5
LDggQEAgdm9pZCBSZW5kZXJCdXR0b246OmFkZENoaWxkKFJlbmRlck9iamVjdCogbmV3Q2hpbGQs
IFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQpCiAgICAgaWYgKCFtX2lubmVyKSB7CiAgICAgICAg
IC8vIENyZWF0ZSBhbiBhbm9ueW1vdXMgYmxvY2suCiAgICAgICAgIEFTU0VSVCghZmlyc3RDaGls
ZCgpKTsKLSAgICAgICAgYm9vbCBpc0ZsZXhpYmxlQm94ID0gc3R5bGUoKS0+ZGlzcGxheSgpID09
IEJPWCB8fCBzdHlsZSgpLT5kaXNwbGF5KCkgPT0gSU5MSU5FX0JPWDsKLSAgICAgICAgbV9pbm5l
ciA9IGNyZWF0ZUFub255bW91c0Jsb2NrKGlzRmxleGlibGVCb3gpOworICAgICAgICBib29sIGlz
RGVwcmVjYXRlZEZsZXhpYmxlQm94ID0gc3R5bGUoKS0+ZGlzcGxheSgpID09IEJPWCB8fCBzdHls
ZSgpLT5kaXNwbGF5KCkgPT0gSU5MSU5FX0JPWDsKKyAgICAgICAgbV9pbm5lciA9IGNyZWF0ZUFu
b255bW91c0Jsb2NrKGlzRGVwcmVjYXRlZEZsZXhpYmxlQm94ID8gQk9YIDogQkxPQ0spOwogICAg
ICAgICBzZXR1cElubmVyU3R5bGUobV9pbm5lci0+c3R5bGUoKSk7CiAgICAgICAgIFJlbmRlckRl
cHJlY2F0ZWRGbGV4aWJsZUJveDo6YWRkQ2hpbGQobV9pbm5lcik7CiAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAppbmRleCBkNjQ4NGM4ZGNiZmNkM2U1ODhl
Nzc3ODAwZWI1MTUxOGNiMDc1MDUzLi5kNjQ0YmNhYzhmNGQzYmU4NjBjYTU2MzI0OGI5NmM5YzZi
ZDNjMGI3IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcApAQCAt
MjY5LDE2ICsyNjksNiBAQCBzdGF0aWMgYm9vbCBpc0JlZm9yZUFmdGVyQ29udGVudEdlbmVyYXRl
ZEJ5QW5jZXN0b3IoUmVuZGVyT2JqZWN0KiByZW5kZXJlciwgUmVuZAogICAgIHJldHVybiBmYWxz
ZTsKIH0KIAotUmVuZGVyVGFibGUqIFJlbmRlck9iamVjdDo6Y3JlYXRlQW5vbnltb3VzVGFibGUo
KSBjb25zdAotewotICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gbmV3U3R5bGUgPSBSZW5kZXJTdHls
ZTo6Y3JlYXRlQW5vbnltb3VzU3R5bGUoc3R5bGUoKSk7Ci0gICAgbmV3U3R5bGUtPnNldERpc3Bs
YXkoVEFCTEUpOwotCi0gICAgUmVuZGVyVGFibGUqIHRhYmxlID0gbmV3IChyZW5kZXJBcmVuYSgp
KSBSZW5kZXJUYWJsZShkb2N1bWVudCgpIC8qIGlzIGFub255bW91cyAqLyk7Ci0gICAgdGFibGUt
PnNldFN0eWxlKG5ld1N0eWxlLnJlbGVhc2UoKSk7Ci0gICAgcmV0dXJuIHRhYmxlOwotfQotCiB2
b2lkIFJlbmRlck9iamVjdDo6YWRkQ2hpbGQoUmVuZGVyT2JqZWN0KiBuZXdDaGlsZCwgUmVuZGVy
T2JqZWN0KiBiZWZvcmVDaGlsZCkKIHsKICAgICBSZW5kZXJPYmplY3RDaGlsZExpc3QqIGNoaWxk
cmVuID0gdmlydHVhbENoaWxkcmVuKCk7CkBAIC0zMjMsNyArMzEzLDcgQEAgdm9pZCBSZW5kZXJP
YmplY3Q6OmFkZENoaWxkKFJlbmRlck9iamVjdCogbmV3Q2hpbGQsIFJlbmRlck9iamVjdCogYmVm
b3JlQ2hpbGQpCiAgICAgICAgIGlmIChhZnRlckNoaWxkICYmIGFmdGVyQ2hpbGQtPmlzQW5vbnlt
b3VzKCkgJiYgYWZ0ZXJDaGlsZC0+aXNUYWJsZSgpICYmICFhZnRlckNoaWxkLT5pc0JlZm9yZUNv
bnRlbnQoKSkKICAgICAgICAgICAgIHRhYmxlID0gdG9SZW5kZXJUYWJsZShhZnRlckNoaWxkKTsK
ICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICB0YWJsZSA9IGNyZWF0ZUFub255bW91c1RhYmxl
KCk7CisgICAgICAgICAgICB0YWJsZSA9IFJlbmRlclRhYmxlOjpjcmVhdGVBbm9ueW1vdXNXaXRo
UGFyZW50UmVuZGVyZXJBbmREaXNwbGF5KHRoaXMpOwogICAgICAgICAgICAgYWRkQ2hpbGQodGFi
bGUsIGJlZm9yZUNoaWxkKTsKICAgICAgICAgfQogICAgICAgICB0YWJsZS0+YWRkQ2hpbGQobmV3
Q2hpbGQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVj
dC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCmluZGV4IDU2YjZk
MWMwNWU3NTY5NDY0NDU1MDA0ZWU2MjU1YjNkZWU1NmMyMWUuLmFjNzBkMTNhZDliNDIyMjliMTRl
YWUwMGRkNjIxZGNmZDQ3MGEwZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2Jq
ZWN0LmgKQEAgLTIyNiw4ICsyMjYsNiBAQCBwdWJsaWM6CiAgICAgLy8gbm9ybWFsIGZsb3cgb2Jq
ZWN0LgogICAgIHZvaWQgaGFuZGxlRHluYW1pY0Zsb2F0UG9zaXRpb25DaGFuZ2UoKTsKICAgICAK
LSAgICBSZW5kZXJUYWJsZSogY3JlYXRlQW5vbnltb3VzVGFibGUoKSBjb25zdDsKLSAgICAKICAg
ICAvLyBSZW5kZXJPYmplY3QgdHJlZSBtYW5pcHVsYXRpb24KICAgICAvLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KICAgICB2aXJ0dWFsIGJvb2wgY2FuSGF2ZUNoaWxk
cmVuKCkgY29uc3QgeyByZXR1cm4gdmlydHVhbENoaWxkcmVuKCk7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwCmluZGV4IGFiZjdlYzM5N2ZlODIxZTdiYjUwMGVkNWUz
MzYyZGM0ZjU1M2Q1OTAuLmNmZTkwMGM3YjE4MmZiMzVmNTI0NjVkMjRjMGNmNTY1NzA1ZjNlNzUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcApAQCAtMTkyLDExICsx
OTIsOCBAQCB2b2lkIFJlbmRlclRhYmxlOjphZGRDaGlsZChSZW5kZXJPYmplY3QqIGNoaWxkLCBS
ZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkKQogCiAgICAgaWYgKGJlZm9yZUNoaWxkICYmICFiZWZv
cmVDaGlsZC0+aXNUYWJsZVNlY3Rpb24oKSAmJiBiZWZvcmVDaGlsZC0+c3R5bGUoKS0+ZGlzcGxh
eSgpICE9IFRBQkxFX0NBUFRJT04gJiYgYmVmb3JlQ2hpbGQtPnN0eWxlKCktPmRpc3BsYXkoKSAh
PSBUQUJMRV9DT0xVTU5fR1JPVVApCiAgICAgICAgIGJlZm9yZUNoaWxkID0gMDsKLSAgICBSZW5k
ZXJUYWJsZVNlY3Rpb24qIHNlY3Rpb24gPSBuZXcgKHJlbmRlckFyZW5hKCkpIFJlbmRlclRhYmxl
U2VjdGlvbihkb2N1bWVudCgpIC8qIGFub255bW91cyAqLyk7Ci0gICAgUmVmUHRyPFJlbmRlclN0
eWxlPiBuZXdTdHlsZSA9IFJlbmRlclN0eWxlOjpjcmVhdGUoKTsKLSAgICBuZXdTdHlsZS0+aW5o
ZXJpdEZyb20oc3R5bGUoKSk7Ci0gICAgbmV3U3R5bGUtPnNldERpc3BsYXkoVEFCTEVfUk9XX0dS
T1VQKTsKLSAgICBzZWN0aW9uLT5zZXRTdHlsZShuZXdTdHlsZS5yZWxlYXNlKCkpOworCisgICAg
UmVuZGVyVGFibGVTZWN0aW9uKiBzZWN0aW9uID0gUmVuZGVyVGFibGVTZWN0aW9uOjpjcmVhdGVB
bm9ueW1vdXNXaXRoUGFyZW50UmVuZGVyZXJBbmREaXNwbGF5KHRoaXMsIFRBQkxFX1JPV19HUk9V
UCk7CiAgICAgYWRkQ2hpbGQoc2VjdGlvbiwgYmVmb3JlQ2hpbGQpOwogICAgIHNlY3Rpb24tPmFk
ZENoaWxkKGNoaWxkKTsKIH0KQEAgLTEyODAsNCArMTI3NywxNSBAQCBib29sIFJlbmRlclRhYmxl
Ojpub2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYgcmVxdWVzdCwgSGl0VGVzdFJlc3Vs
dCYgcmVzdQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorUmVuZGVyVGFibGUqIFJlbmRlclRhYmxl
OjpjcmVhdGVBbm9ueW1vdXNXaXRoUGFyZW50UmVuZGVyZXJBbmREaXNwbGF5KGNvbnN0IFJlbmRl
ck9iamVjdCogcGFyZW50LCBFRGlzcGxheSBkaXNwbGF5KQoreworICAgIEFTU0VSVChkaXNwbGF5
ID09IFRBQkxFIHx8IGRpc3BsYXkgPT0gSU5MSU5FX1RBQkxFKTsKKyAgICBSZWZQdHI8UmVuZGVy
U3R5bGU+IG5ld1N0eWxlID0gUmVuZGVyU3R5bGU6OmNyZWF0ZUFub255bW91c1N0eWxlKHBhcmVu
dC0+c3R5bGUoKSk7CisgICAgbmV3U3R5bGUtPnNldERpc3BsYXkoZGlzcGxheSk7CisKKyAgICBS
ZW5kZXJUYWJsZSogbmV3VGFibGUgPSBuZXcgKHBhcmVudC0+cmVuZGVyQXJlbmEoKSkgUmVuZGVy
VGFibGUocGFyZW50LT5kb2N1bWVudCgpIC8qIGlzIGFub255bW91cyAqLyk7CisgICAgbmV3VGFi
bGUtPnNldFN0eWxlKG5ld1N0eWxlLnJlbGVhc2UoKSk7CisgICAgcmV0dXJuIG5ld1RhYmxlOwor
fQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5oCmluZGV4IGJjMzA5ZjZi
ODQ2OTc1ODdiZWJlMmVjNWMxOTU2ZThlNjRmZWU5MmIuLmFjMDZiYTY2MjVhOTRlNzliMGM4YjUy
ZTE2MGU1MDRmMzRhNWM2ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUYWJsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5o
CkBAIC0yMTEsNiArMjExLDggQEAgcHVibGljOgogICAgICAgICAgICAgcmVjYWxjU2VjdGlvbnMo
KTsKICAgICB9CiAKKyAgICBzdGF0aWMgUmVuZGVyVGFibGUqIGNyZWF0ZUFub255bW91c1dpdGhQ
YXJlbnRSZW5kZXJlckFuZERpc3BsYXkoY29uc3QgUmVuZGVyT2JqZWN0KiwgRURpc3BsYXkgPSBU
QUJMRSk7CisKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5
bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwCmluZGV4IDEzOTYxNWE4OGE3ZDc2
NzZlYzA0ZmFiMTU0ZmIyN2MzNmIzMTM4MjguLjIyNDAzMzFiYzdjYzg0Y2Q0ZTRjMzk3MzJlYzFl
NjJjYWE5Y2YzNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
YWJsZUNlbGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNl
bGwuY3BwCkBAIC0xMTE3LDQgKzExMTcsMTQgQEAgdm9pZCBSZW5kZXJUYWJsZUNlbGw6OnNjcm9s
bGJhcnNDaGFuZ2VkKGJvb2wgaG9yaXpvbnRhbFNjcm9sbGJhckNoYW5nZWQsIGJvb2wgdmUKICAg
ICAgICAgc2V0SW50cmluc2ljUGFkZGluZ0FmdGVyKGludHJpbnNpY1BhZGRpbmdBZnRlcigpIC0g
c2Nyb2xsYmFySGVpZ2h0KTsKIH0KIAorUmVuZGVyVGFibGVDZWxsKiBSZW5kZXJUYWJsZUNlbGw6
OmNyZWF0ZUFub255bW91c1dpdGhQYXJlbnRSZW5kZXJlckFuZERpc3BsYXkoY29uc3QgUmVuZGVy
T2JqZWN0KiBwYXJlbnQpCit7CisgICAgUmVmUHRyPFJlbmRlclN0eWxlPiBuZXdTdHlsZSA9IFJl
bmRlclN0eWxlOjpjcmVhdGVBbm9ueW1vdXNTdHlsZShwYXJlbnQtPnN0eWxlKCkpOworICAgIG5l
d1N0eWxlLT5zZXREaXNwbGF5KFRBQkxFX0NFTEwpOworCisgICAgUmVuZGVyVGFibGVDZWxsKiBu
ZXdDZWxsID0gbmV3IChwYXJlbnQtPnJlbmRlckFyZW5hKCkpIFJlbmRlclRhYmxlQ2VsbChwYXJl
bnQtPmRvY3VtZW50KCkgLyogaXMgYW5vbnltb3VzICovKTsKKyAgICBuZXdDZWxsLT5zZXRTdHls
ZShuZXdTdHlsZS5yZWxlYXNlKCkpOworICAgIHJldHVybiBuZXdDZWxsOworfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGFibGVDZWxsLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxs
LmgKaW5kZXggZTE4MzcyYWM1MmViYTAxODQ0YjM2MDAyMjZjOTBiYjQxMmY4MDJkMC4uNGYyOTA4
YjYyZjdjZTY1NDk4NTc3ZTZjMWQyMjFlOGViZmU1YzlmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuaApAQCAtMTM4LDYgKzEzOCw4IEBAIHB1YmxpYzoKICAg
ICBib29sIGNlbGxXaWR0aENoYW5nZWQoKSBjb25zdCB7IHJldHVybiBtX2NlbGxXaWR0aENoYW5n
ZWQ7IH0KICAgICB2b2lkIHNldENlbGxXaWR0aENoYW5nZWQoYm9vbCBiID0gdHJ1ZSkgeyBtX2Nl
bGxXaWR0aENoYW5nZWQgPSBiOyB9CiAKKyAgICBzdGF0aWMgUmVuZGVyVGFibGVDZWxsKiBjcmVh
dGVBbm9ueW1vdXNXaXRoUGFyZW50UmVuZGVyZXJBbmREaXNwbGF5KGNvbnN0IFJlbmRlck9iamVj
dCopOworCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIHN0eWxlRGlkQ2hhbmdlKFN0eWxl
RGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlUm93LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVJvdy5jcHAKaW5kZXggMWFkODM3OGQxZTc2ZGI1NTVj
YjJiMzUwNjM4OGE0M2YwM2QyYjk3NC4uYTY3MjJlMzFkMjNlZjhhYWNiMzFkYmU2NjVlMzEzYjZm
NGMwNGE2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxl
Um93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVSb3cuY3Bw
CkBAIC0xMTMsMTEgKzExMyw3IEBAIHZvaWQgUmVuZGVyVGFibGVSb3c6OmFkZENoaWxkKFJlbmRl
ck9iamVjdCogY2hpbGQsIFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQpCiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBSZW5kZXJUYWJsZUNlbGwqIGNlbGwgPSBuZXcg
KHJlbmRlckFyZW5hKCkpIFJlbmRlclRhYmxlQ2VsbChkb2N1bWVudCgpIC8qIGFub255bW91cyBv
YmplY3QgKi8pOwotICAgICAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IG5ld1N0eWxlID0gUmVuZGVy
U3R5bGU6OmNyZWF0ZSgpOwotICAgICAgICBuZXdTdHlsZS0+aW5oZXJpdEZyb20oc3R5bGUoKSk7
Ci0gICAgICAgIG5ld1N0eWxlLT5zZXREaXNwbGF5KFRBQkxFX0NFTEwpOwotICAgICAgICBjZWxs
LT5zZXRTdHlsZShuZXdTdHlsZS5yZWxlYXNlKCkpOworICAgICAgICBSZW5kZXJUYWJsZUNlbGwq
IGNlbGwgPSBSZW5kZXJUYWJsZUNlbGw6OmNyZWF0ZUFub255bW91c1dpdGhQYXJlbnRSZW5kZXJl
ckFuZERpc3BsYXkodGhpcyk7CiAgICAgICAgIGFkZENoaWxkKGNlbGwsIGJlZm9yZUNoaWxkKTsK
ICAgICAgICAgY2VsbC0+YWRkQ2hpbGQoY2hpbGQpOwogICAgICAgICByZXR1cm47CkBAIC0yNDks
NCArMjQ1LDE0IEBAIHZvaWQgUmVuZGVyVGFibGVSb3c6OmltYWdlQ2hhbmdlZChXcmFwcGVkSW1h
Z2VQdHIsIGNvbnN0IEludFJlY3QqKQogICAgIHJlcGFpbnQoKTsKIH0KIAorUmVuZGVyVGFibGVS
b3cqIFJlbmRlclRhYmxlUm93OjpjcmVhdGVBbm9ueW1vdXNXaXRoUGFyZW50UmVuZGVyZXJBbmRE
aXNwbGF5KGNvbnN0IFJlbmRlck9iamVjdCogcGFyZW50KQoreworICAgIFJlZlB0cjxSZW5kZXJT
dHlsZT4gbmV3U3R5bGUgPSBSZW5kZXJTdHlsZTo6Y3JlYXRlQW5vbnltb3VzU3R5bGUocGFyZW50
LT5zdHlsZSgpKTsKKyAgICBuZXdTdHlsZS0+c2V0RGlzcGxheShUQUJMRV9ST1cpOworCisgICAg
UmVuZGVyVGFibGVSb3cqIG5ld1JvdyA9IG5ldyAocGFyZW50LT5yZW5kZXJBcmVuYSgpKSBSZW5k
ZXJUYWJsZVJvdyhwYXJlbnQtPmRvY3VtZW50KCkgLyogaXMgYW5vbnltb3VzICovKTsKKyAgICBu
ZXdSb3ctPnNldFN0eWxlKG5ld1N0eWxlLnJlbGVhc2UoKSk7CisgICAgcmV0dXJuIG5ld1JvdzsK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRhYmxlUm93LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGFibGVSb3cuaAppbmRleCBmNjYwZTlkMzFkM2E1MmU5MDQ5ZWViMzQ4NjY0NWI5NTdmZTk2
YTVkLi5iMzg3YWZjMTE1Y2FlMjAyNDI5ZWVjNTljMmQwZmMxODI1NmYyYmMwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVSb3cuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVSb3cuaApAQCAtNDIsNiArNDIsOCBAQCBwdWJs
aWM6CiAgICAgdm9pZCB1cGRhdGVCZWZvcmVBbmRBZnRlckNvbnRlbnQoKTsKICAgICB2b2lkIHBh
aW50T3V0bGluZUZvclJvd0lmTmVlZGVkKFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50Jik7
CiAKKyAgICBzdGF0aWMgUmVuZGVyVGFibGVSb3cqIGNyZWF0ZUFub255bW91c1dpdGhQYXJlbnRS
ZW5kZXJlckFuZERpc3BsYXkoY29uc3QgUmVuZGVyT2JqZWN0Kik7CisKIHByaXZhdGU6CiAgICAg
dmlydHVhbCBSZW5kZXJPYmplY3RDaGlsZExpc3QqIHZpcnR1YWxDaGlsZHJlbigpIHsgcmV0dXJu
IGNoaWxkcmVuKCk7IH0KICAgICB2aXJ0dWFsIGNvbnN0IFJlbmRlck9iamVjdENoaWxkTGlzdCog
dmlydHVhbENoaWxkcmVuKCkgY29uc3QgeyByZXR1cm4gY2hpbGRyZW4oKTsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNwcAppbmRleCAzMDZkZGE0
MWYzMThlZGEyNzA0NGRmNDE0OTk5MWUwYTM2ODJhYWYzLi43OTkwNDRjMmQ2N2YwZmM3MDJkNWZi
MjljNTNmNDAyNWQzYzVlZDA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGFibGVTZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGFibGVTZWN0aW9uLmNwcApAQCAtMTYxLDExICsxNjEsNyBAQCB2b2lkIFJlbmRlclRhYmxl
U2VjdGlvbjo6YWRkQ2hpbGQoUmVuZGVyT2JqZWN0KiBjaGlsZCwgUmVuZGVyT2JqZWN0KiBiZWZv
cmVDaGlsZAogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgUmVuZGVy
T2JqZWN0KiByb3cgPSBuZXcgKHJlbmRlckFyZW5hKCkpIFJlbmRlclRhYmxlUm93KGRvY3VtZW50
KCkgLyogYW5vbnltb3VzIHRhYmxlIHJvdyAqLyk7Ci0gICAgICAgIFJlZlB0cjxSZW5kZXJTdHls
ZT4gbmV3U3R5bGUgPSBSZW5kZXJTdHlsZTo6Y3JlYXRlKCk7Ci0gICAgICAgIG5ld1N0eWxlLT5p
bmhlcml0RnJvbShzdHlsZSgpKTsKLSAgICAgICAgbmV3U3R5bGUtPnNldERpc3BsYXkoVEFCTEVf
Uk9XKTsKLSAgICAgICAgcm93LT5zZXRTdHlsZShuZXdTdHlsZS5yZWxlYXNlKCkpOworICAgICAg
ICBSZW5kZXJPYmplY3QqIHJvdyA9IFJlbmRlclRhYmxlUm93OjpjcmVhdGVBbm9ueW1vdXNXaXRo
UGFyZW50UmVuZGVyZXJBbmREaXNwbGF5KHRoaXMpOwogICAgICAgICBhZGRDaGlsZChyb3csIGJl
Zm9yZUNoaWxkKTsKICAgICAgICAgcm93LT5hZGRDaGlsZChjaGlsZCk7CiAgICAgICAgIHJldHVy
bjsKQEAgLTE0MTcsNCArMTQxMywxNSBAQCBDb2xsYXBzZWRCb3JkZXJWYWx1ZSYgUmVuZGVyVGFi
bGVTZWN0aW9uOjpjYWNoZWRDb2xsYXBzZWRCb3JkZXIoY29uc3QgUmVuZGVyVGFibAogICAgIHJl
dHVybiBpdC0+c2Vjb25kOwogfQogCitSZW5kZXJUYWJsZVNlY3Rpb24qIFJlbmRlclRhYmxlU2Vj
dGlvbjo6Y3JlYXRlQW5vbnltb3VzV2l0aFBhcmVudFJlbmRlcmVyQW5kRGlzcGxheShjb25zdCBS
ZW5kZXJPYmplY3QqIHBhcmVudCwgRURpc3BsYXkgZGlzcGxheSkKK3sKKyAgICBBU1NFUlQoZGlz
cGxheSA9PSBUQUJMRV9ST1dfR1JPVVAgfHwgZGlzcGxheSA9PSBUQUJMRV9IRUFERVJfR1JPVVAg
fHwgZGlzcGxheSA9PSBUQUJMRV9GT09URVJfR1JPVVApOworICAgIFJlZlB0cjxSZW5kZXJTdHls
ZT4gbmV3U3R5bGUgPSBSZW5kZXJTdHlsZTo6Y3JlYXRlQW5vbnltb3VzU3R5bGUocGFyZW50LT5z
dHlsZSgpKTsKKyAgICBuZXdTdHlsZS0+c2V0RGlzcGxheShkaXNwbGF5KTsKKworICAgIFJlbmRl
clRhYmxlU2VjdGlvbiogbmV3U2VjdGlvbiA9IG5ldyAocGFyZW50LT5yZW5kZXJBcmVuYSgpKSBS
ZW5kZXJUYWJsZVNlY3Rpb24ocGFyZW50LT5kb2N1bWVudCgpIC8qIGlzIGFub255bW91cyAqLyk7
CisgICAgbmV3U2VjdGlvbi0+c2V0U3R5bGUobmV3U3R5bGUucmVsZWFzZSgpKTsKKyAgICByZXR1
cm4gbmV3U2VjdGlvbjsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5oCmluZGV4IGNlYjE4N2JiZDFhYTIy
ZDMwZTgyNTQyZWU1NzRjYWNiZGM1YWFmNTguLjNjNjA1Yzk2OTYyM2ZmYjk2YWZlODQ1NmZiMGMw
ZDhmZjg0NWViOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
YWJsZVNlY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVT
ZWN0aW9uLmgKQEAgLTE2Miw2ICsxNjIsOCBAQCBwdWJsaWM6CiAgICAgLy8gRklYTUU6IFdlIG1h
eSB3YW50IHRvIGludHJvZHVjZSBhIHN0cnVjdHVyZSBob2xkaW5nIHRoZSBpbi1mbHV4IGxheW91
dCBpbmZvcm1hdGlvbi4KICAgICBpbnQgZGlzdHJpYnV0ZUV4dHJhTG9naWNhbEhlaWdodFRvUm93
cyhpbnQgZXh0cmFMb2dpY2FsSGVpZ2h0KTsKIAorICAgIHN0YXRpYyBSZW5kZXJUYWJsZVNlY3Rp
b24qIGNyZWF0ZUFub255bW91c1dpdGhQYXJlbnRSZW5kZXJlckFuZERpc3BsYXkoY29uc3QgUmVu
ZGVyT2JqZWN0KiwgRURpc3BsYXkpOworCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIHN0
eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxl
KTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IGQ1Y2ZmYWU2MjBiNzY4ZWY5N2UzMzg1N2RhNmZiYjM2Y2M1MDVkNjIuLjM3
ZWExMjc4MzgwNGQyZGM0MDM1NmFiOTY0NGFiYjVlZjIxYjU3YzggMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NSBAQAorMjAxMi0wNC0wMyAgQWJoaXNoZWsgQXJ5YSAgPGluZmVybm9AY2hyb21pdW0ub3JnPgor
CisgICAgICAgIEFkZCBoZWxwZXJzIHRvIGNyZWF0ZSBhbm9ueW1vdXMgdGFibGUgcGFydHMuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MzExNgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlYmFzZWxpbmlu
ZyB0ZXN0cyBiZWNhdXNlIHdlIG5vdyBjb3JyZWN0bHkgaW5oZXJpdCB0aGUgYmlkaSBvdmVycmlk
ZS4KKworICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLW1hYy9mYXN0L2Nzcy9iaWRpLW92ZXJy
aWRlLWluLWFub255bW91cy1ibG9jay1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0v
Y2hyb21pdW0td2luL2Zhc3QvY3NzL2JpZGktb3ZlcnJpZGUtaW4tYW5vbnltb3VzLWJsb2NrLWV4
cGVjdGVkLnR4dDoKKwogMjAxMi0wNC0wMyAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIEltcGxlbWVudCBuZXcgZmxleCBwcm9wZXJ0eSBhbmQgZGVwcmVjYXRlIGZs
ZXggZnVuY3Rpb24KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLW1h
Yy9mYXN0L2Nzcy9iaWRpLW92ZXJyaWRlLWluLWFub255bW91cy1ibG9jay1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1tYWMvZmFzdC9jc3MvYmlkaS1vdmVycmlk
ZS1pbi1hbm9ueW1vdXMtYmxvY2stZXhwZWN0ZWQudHh0CmluZGV4IGIxZjE3NzE1ZTdjOTNmMTZh
NjVhYTVkZDliNTY2NzAzNTE5MmM2NTIuLmZiNGRmNTRmNjA0ZTMyNzBiMmY2OGM0YjI2Njg3M2Q0
ZDkxMGQzYTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLW1hYy9m
YXN0L2Nzcy9iaWRpLW92ZXJyaWRlLWluLWFub255bW91cy1ibG9jay1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbWFjL2Zhc3QvY3NzL2JpZGktb3ZlcnJp
ZGUtaW4tYW5vbnltb3VzLWJsb2NrLWV4cGVjdGVkLnR4dApAQCAtMjI1LDcgKzIyNSw3IEBAIGxh
eWVyIGF0ICgwLDApIHNpemUgNzg1eDEyMTcKICAgICAgICAgICAgIFJlbmRlclRhYmxlUm93IHtE
SVZ9IGF0ICgwLDApIHNpemUgMjR4MTgKICAgICAgICAgICAgICAgUmVuZGVyVGFibGVDZWxsIChh
bm9ueW1vdXMpIGF0ICgwLDApIHNpemUgMjR4MTggW3I9MCBjPTAgcnM9MSBjcz0xXQogICAgICAg
ICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMiwwKSBzaXplIDIyeDE4Ci0gICAgICAg
ICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMiwwKSB3aWR0aCAyMjogImFiYyIKKyAgICAgICAgICAg
ICAgICAgIHRleHQgcnVuIGF0ICgyLDApIHdpZHRoIDIyIFJUTCBvdmVycmlkZTogImFiYyIKICAg
ICAgICAgICAgIFJlbmRlclRhYmxlUm93IChhbm9ueW1vdXMpIGF0ICgwLDE4KSBzaXplIDI0eDE4
CiAgICAgICAgICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7RElWfSBhdCAoMCwxOCkgc2l6ZSAyNHgx
OCBbcj0xIGM9MCBycz0xIGNzPTFdCiAgICAgICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9
IGF0ICg0LDApIHNpemUgMjB4MTgKQEAgLTIzNyw0ICsyMzcsNCBAQCBsYXllciBhdCAoMCwwKSBz
aXplIDc4NXgxMjE3CiAgICAgICAgICAgICBSZW5kZXJUYWJsZVJvdyAoYW5vbnltb3VzKSBhdCAo
MCwwKSBzaXplIDI0eDE4CiAgICAgICAgICAgICAgIFJlbmRlclRhYmxlQ2VsbCAoYW5vbnltb3Vz
KSBhdCAoMCwwKSBzaXplIDI0eDE4IFtyPTAgYz0wIHJzPTEgY3M9MV0KICAgICAgICAgICAgICAg
ICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAyNHgxOAotICAgICAgICAgICAgICAg
ICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMjQ6ICJvcHEiCisgICAgICAgICAgICAgICAgICB0
ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAyNCBSVEwgb3ZlcnJpZGU6ICJvcHEiCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vZmFzdC9jc3MvYmlkaS1vdmVycmlk
ZS1pbi1hbm9ueW1vdXMtYmxvY2stZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0td2luL2Zhc3QvY3NzL2JpZGktb3ZlcnJpZGUtaW4tYW5vbnltb3VzLWJsb2NrLWV4
cGVjdGVkLnR4dAppbmRleCA5YTgyZTRjYzRkNzc4ZjlkNTQwZTlhMTVjOGYwZGUxOWVmNjFhMDUz
Li40YTllZjAwOGExMTViMThkM2QxYmNkZjViYWJmZTA4MGUwYjFiZWU1IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vZmFzdC9jc3MvYmlkaS1vdmVycmlkZS1p
bi1hbm9ueW1vdXMtYmxvY2stZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtLXdpbi9mYXN0L2Nzcy9iaWRpLW92ZXJyaWRlLWluLWFub255bW91cy1ibG9jay1l
eHBlY3RlZC50eHQKQEAgLTIyNSw3ICsyMjUsNyBAQCBsYXllciBhdCAoMCwwKSBzaXplIDc4NXgx
MzAxCiAgICAgICAgICAgICBSZW5kZXJUYWJsZVJvdyB7RElWfSBhdCAoMCwwKSBzaXplIDI0eDIw
CiAgICAgICAgICAgICAgIFJlbmRlclRhYmxlQ2VsbCAoYW5vbnltb3VzKSBhdCAoMCwwKSBzaXpl
IDI0eDIwIFtyPTAgYz0wIHJzPTEgY3M9MV0KICAgICAgICAgICAgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDIsMCkgc2l6ZSAyMngxOQotICAgICAgICAgICAgICAgICAgdGV4dCBydW4gYXQg
KDIsMCkgd2lkdGggMjI6ICJhYmMiCisgICAgICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMiww
KSB3aWR0aCAyMiBSVEwgb3ZlcnJpZGU6ICJhYmMiCiAgICAgICAgICAgICBSZW5kZXJUYWJsZVJv
dyAoYW5vbnltb3VzKSBhdCAoMCwyMCkgc2l6ZSAyNHgyMAogICAgICAgICAgICAgICBSZW5kZXJU
YWJsZUNlbGwge0RJVn0gYXQgKDAsMjApIHNpemUgMjR4MjAgW3I9MSBjPTAgcnM9MSBjcz0xXQog
ICAgICAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNSwwKSBzaXplIDE5eDE5CkBA
IC0yMzcsNCArMjM3LDQgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA3ODV4MTMwMQogICAgICAgICAg
ICAgUmVuZGVyVGFibGVSb3cgKGFub255bW91cykgYXQgKDAsMCkgc2l6ZSAyNHgyMAogICAgICAg
ICAgICAgICBSZW5kZXJUYWJsZUNlbGwgKGFub255bW91cykgYXQgKDAsMCkgc2l6ZSAyNHgyMCBb
cj0wIGM9MCBycz0xIGNzPTFdCiAgICAgICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0
ICgwLDApIHNpemUgMjR4MTkKLSAgICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdp
ZHRoIDI0OiAib3BxIgorICAgICAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGgg
MjQgUlRMIG92ZXJyaWRlOiAib3BxIgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>135611</attachid>
            <date>2012-04-04 09:35:25 -0700</date>
            <delta_ts>2012-04-04 15:34:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-83116-20120404093524.patch</filename>
            <type>text/plain</type>
            <size>24055</size>
            <attacher name="Abhishek Arya">inferno</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEzMDk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDVjYmI4ZGZmOTc4MDA3
MWY1NTYwMjRlZDQzY2NiNWI3YWVjMWMzNS4uOTIyNDg2ZGYzZjE0NGU5YzkxMjc1YTNlYjUxZDkz
OTM2YmFkNDM4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDEyLTA0LTAzICBBYmhp
c2hlayBBcnlhICA8aW5mZXJub0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQWRkIGhlbHBlcnMg
dG8gY3JlYXRlIGFub255bW91cyB0YWJsZSBwYXJ0cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgzMTE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIHBhdGNoIGludHJvZHVjZXMgaGVscGVycyB0byBj
cmVhdGUgYW5vbnltb3VzIHRhYmxlIHBhcnRzIGJ5CisgICAgICAgIGludHJvZHVjaW5nIGEgbmV3
IHN0YXRpYyBmdW5jdGlvbiBjcmVhdGVBbm9ueW1vdXNXaXRoUGFyZW50UmVuZGVyZXJBbmREaXNw
bGF5LgorICAgICAgICBUaGUgZnVuY3Rpb24gYnVpbGRzIGEgbmV3IGFub255bW91cyB3cmFwcGVy
IGluaGVyaXRpbmcgc3R5bGUgcHJvcGVydGllcyBmcm9tCisgICAgICAgIHBhcmVudCBhbmQgc2V0
cyBhIGRpc3BsYXkgYmFzZWQgb24gYXJndW1lbnQvZGVmYXVsdCB2YWx1ZXMuIEFsc28gd2Ugc3Ry
ZWFtbGluZQorICAgICAgICB0aGUgUmVuZGVyQmxvY2sgZnVuY3Rpb25zIHRvIG1hdGNoIHRoaXMg
bmFtaW5nIGNvbnZlbnRpb24uCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmNyZWF0ZUFub255bW91c0Jsb2NrV2l0
aFNhbWVUeXBlQXMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmNyZWF0ZUFub255
bW91c1dpdGhQYXJlbnRSZW5kZXJlckFuZERpc3BsYXkpOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6Y3JlYXRlQW5vbnltb3VzQ29sdW1uc1dpdGhQ
YXJlbnRSZW5kZXJlckFuZERpc3BsYXkpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6
OmNyZWF0ZUFub255bW91c0NvbHVtblNwYW5XaXRoUGFyZW50UmVuZGVyZXJBbmREaXNwbGF5KToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suaDoKKyAgICAgICAgKFJlbmRlckJsb2Nr
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpjcmVhdGVBbm9ueW1vdXNCbG9jayk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6Y3JlYXRlQW5vbnltb3VzQ29sdW1uc0Js
b2NrKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpjcmVhdGVBbm9ueW1vdXNDb2x1
bW5TcGFuQmxvY2spOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCdXR0b24uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyQnV0dG9uOjphZGRDaGlsZCk6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OmFk
ZENoaWxkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGFibGU6OmFkZENoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clRhYmxlOjpjcmVhdGVBbm9ueW1vdXNXaXRoUGFyZW50UmVuZGVyZXJBbmREaXNwbGF5KToKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUYWJsZS5oOgorICAg
ICAgICAoUmVuZGVyVGFibGUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGVDZWxsOjpjcmVhdGVBbm9ueW1vdXNX
aXRoUGFyZW50UmVuZGVyZXJBbmREaXNwbGF5KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuaDoKKyAgICAgICAgKFJlbmRlclRhYmxlQ2Vs
bCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxlUm93LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRhYmxlUm93OjphZGRDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUYWJsZVJvdzo6Y3JlYXRlQW5vbnltb3VzV2l0aFBhcmVudFJlbmRlcmVyQW5kRGlzcGxheSk6
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGVSb3cu
aDoKKyAgICAgICAgKFJlbmRlclRhYmxlUm93KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
VGFibGVTZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlU2VjdGlvbjo6
YWRkQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGVTZWN0aW9uOjpjcmVhdGVB
bm9ueW1vdXNXaXRoUGFyZW50UmVuZGVyZXJBbmREaXNwbGF5KToKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uaDoKKyAgICAgICAgKFJl
bmRlclRhYmxlU2VjdGlvbik6CisKIDIwMTItMDQtMDMgIEp1bGllbiBDaGFmZnJhaXggIDxqY2hh
ZmZyYWl4QHdlYmtpdC5vcmc+CiAKICAgICAgICAgcHJlc2VudGF0aW9uQXR0cmlidXRlQ2FjaGVN
YXhpbXVtU2l6ZSBpcyBzZXQgdG9vIGxvdwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
bG9jay5jcHAKaW5kZXggODAzMTkwZGYxYWJlYWM3ZmM0MTE3NGUwMGYzZmM0ODY2N2NmNjQ3Mi4u
NzA2MDlhNDg3ODY3OWIwZTY4ZmYzNzU2OTU3OGI3OGNhNWM0YjBmZiAxMDA3NTUKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCkBAIC03ODEsNyArNzgxLDcgQEAgUmVuZGVyT2Jq
ZWN0KiBSZW5kZXJCbG9jazo6c3BsaXRUYWJsZVBhcnRzQXJvdW5kQ2hpbGQoUmVuZGVyT2JqZWN0
KiBiZWZvcmVDaGlsZCkKIAogICAgICAgICAgICAgLy8gQ3JlYXRlIGFuIGFub255bW91cyB0YWJs
ZSBjb250YWluZXIgbmV4dCB0byBvdXIgdGFibGUgY29udGFpbmVyLgogICAgICAgICAgICAgUmVu
ZGVyQmxvY2sqIHBhcmVudEJsb2NrID0gdG9SZW5kZXJCbG9jayh0YWJsZS0+cGFyZW50KCkpOwot
ICAgICAgICAgICAgUmVuZGVyVGFibGUqIHBvc3RUYWJsZSA9IHBhcmVudEJsb2NrLT5jcmVhdGVB
bm9ueW1vdXNUYWJsZSgpOworICAgICAgICAgICAgUmVuZGVyVGFibGUqIHBvc3RUYWJsZSA9IFJl
bmRlclRhYmxlOjpjcmVhdGVBbm9ueW1vdXNXaXRoUGFyZW50UmVuZGVyZXIocGFyZW50QmxvY2sp
OwogICAgICAgICAgICAgcGFyZW50QmxvY2stPmNoaWxkcmVuKCktPmluc2VydENoaWxkTm9kZShw
YXJlbnRCbG9jaywgcG9zdFRhYmxlLCB0YWJsZS0+bmV4dFNpYmxpbmcoKSk7CiAgICAgICAgICAg
ICAKICAgICAgICAgICAgIC8vIE1vdmUgYWxsIHRoZSBjaGlsZHJlbiBmcm9tIGJlZm9yZUNoaWxk
IHRvIHRoZSBuZXdseSBjcmVhdGVkIGFub255bW91cyB0YWJsZSBjb250YWluZXIuCkBAIC02Njc1
LDUyICs2Njc1LDEzIEBAIHZvaWQgUmVuZGVyQmxvY2s6OmFkZEZvY3VzUmluZ1JlY3RzKFZlY3Rv
cjxJbnRSZWN0PiYgcmVjdHMsIGNvbnN0IExheW91dFBvaW50JiBhCiAgICAgICAgIGlubGluZUVs
ZW1lbnRDb250aW51YXRpb24oKS0+YWRkRm9jdXNSaW5nUmVjdHMocmVjdHMsIGZsb29yZWRMYXlv
dXRQb2ludChhZGRpdGlvbmFsT2Zmc2V0ICsgaW5saW5lRWxlbWVudENvbnRpbnVhdGlvbigpLT5j
b250YWluaW5nQmxvY2soKS0+bG9jYXRpb24oKSAtIGxvY2F0aW9uKCkpKTsKIH0KIAotUmVuZGVy
QmxvY2sqIFJlbmRlckJsb2NrOjpjcmVhdGVBbm9ueW1vdXNCbG9jayhib29sIGlzRmxleGlibGVC
b3gpIGNvbnN0Ci17Ci0gICAgUmVmUHRyPFJlbmRlclN0eWxlPiBuZXdTdHlsZSA9IFJlbmRlclN0
eWxlOjpjcmVhdGVBbm9ueW1vdXNTdHlsZShzdHlsZSgpKTsKLQotICAgIFJlbmRlckJsb2NrKiBu
ZXdCb3ggPSAwOwotICAgIGlmIChpc0ZsZXhpYmxlQm94KSB7Ci0gICAgICAgIG5ld1N0eWxlLT5z
ZXREaXNwbGF5KEJPWCk7Ci0gICAgICAgIG5ld0JveCA9IG5ldyAocmVuZGVyQXJlbmEoKSkgUmVu
ZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94KGRvY3VtZW50KCkgLyogYW5vbnltb3VzIGJveCAqLyk7
Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgbmV3U3R5bGUtPnNldERpc3BsYXkoQkxPQ0spOwotICAg
ICAgICBuZXdCb3ggPSBuZXcgKHJlbmRlckFyZW5hKCkpIFJlbmRlckJsb2NrKGRvY3VtZW50KCkg
LyogYW5vbnltb3VzIGJveCAqLyk7Ci0gICAgfQotCi0gICAgbmV3Qm94LT5zZXRTdHlsZShuZXdT
dHlsZS5yZWxlYXNlKCkpOwotICAgIHJldHVybiBuZXdCb3g7Ci19Ci0KIFJlbmRlckJsb2NrKiBS
ZW5kZXJCbG9jazo6Y3JlYXRlQW5vbnltb3VzQmxvY2tXaXRoU2FtZVR5cGVBcyhSZW5kZXJCbG9j
ayogb3RoZXJBbm9ueW1vdXNCbG9jaykgY29uc3QKIHsKICAgICBpZiAob3RoZXJBbm9ueW1vdXNC
bG9jay0+aXNBbm9ueW1vdXNDb2x1bW5zQmxvY2soKSkKICAgICAgICAgcmV0dXJuIGNyZWF0ZUFu
b255bW91c0NvbHVtbnNCbG9jaygpOwogICAgIGlmIChvdGhlckFub255bW91c0Jsb2NrLT5pc0Fu
b255bW91c0NvbHVtblNwYW5CbG9jaygpKQogICAgICAgICByZXR1cm4gY3JlYXRlQW5vbnltb3Vz
Q29sdW1uU3BhbkJsb2NrKCk7Ci0gICAgcmV0dXJuIGNyZWF0ZUFub255bW91c0Jsb2NrKG90aGVy
QW5vbnltb3VzQmxvY2stPnN0eWxlKCktPmRpc3BsYXkoKSA9PSBCT1gpOwotfQotCi1SZW5kZXJC
bG9jayogUmVuZGVyQmxvY2s6OmNyZWF0ZUFub255bW91c0NvbHVtbnNCbG9jaygpIGNvbnN0Ci17
Ci0gICAgUmVmUHRyPFJlbmRlclN0eWxlPiBuZXdTdHlsZSA9IFJlbmRlclN0eWxlOjpjcmVhdGVB
bm9ueW1vdXNTdHlsZShzdHlsZSgpKTsKLSAgICBuZXdTdHlsZS0+aW5oZXJpdENvbHVtblByb3Bl
cnRpZXNGcm9tKHN0eWxlKCkpOwotICAgIG5ld1N0eWxlLT5zZXREaXNwbGF5KEJMT0NLKTsKLQot
ICAgIFJlbmRlckJsb2NrKiBuZXdCb3ggPSBuZXcgKHJlbmRlckFyZW5hKCkpIFJlbmRlckJsb2Nr
KGRvY3VtZW50KCkgLyogYW5vbnltb3VzIGJveCAqLyk7Ci0gICAgbmV3Qm94LT5zZXRTdHlsZShu
ZXdTdHlsZS5yZWxlYXNlKCkpOwotICAgIHJldHVybiBuZXdCb3g7Ci19Ci0KLVJlbmRlckJsb2Nr
KiBSZW5kZXJCbG9jazo6Y3JlYXRlQW5vbnltb3VzQ29sdW1uU3BhbkJsb2NrKCkgY29uc3QKLXsK
LSAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IG5ld1N0eWxlID0gUmVuZGVyU3R5bGU6OmNyZWF0ZUFu
b255bW91c1N0eWxlKHN0eWxlKCkpOwotICAgIG5ld1N0eWxlLT5zZXRDb2x1bW5TcGFuKENvbHVt
blNwYW5BbGwpOwotICAgIG5ld1N0eWxlLT5zZXREaXNwbGF5KEJMT0NLKTsKLQotICAgIFJlbmRl
ckJsb2NrKiBuZXdCb3ggPSBuZXcgKHJlbmRlckFyZW5hKCkpIFJlbmRlckJsb2NrKGRvY3VtZW50
KCkgLyogYW5vbnltb3VzIGJveCAqLyk7Ci0gICAgbmV3Qm94LT5zZXRTdHlsZShuZXdTdHlsZS5y
ZWxlYXNlKCkpOwotICAgIHJldHVybiBuZXdCb3g7CisgICAgcmV0dXJuIGNyZWF0ZUFub255bW91
c0Jsb2NrKG90aGVyQW5vbnltb3VzQmxvY2stPnN0eWxlKCktPmRpc3BsYXkoKSk7CiB9CiAKIGJv
b2wgUmVuZGVyQmxvY2s6Omhhc05leHRQYWdlKExheW91dFVuaXQgbG9naWNhbE9mZnNldCwgUGFn
ZUJvdW5kYXJ5UnVsZSBwYWdlQm91bmRhcnlSdWxlKSBjb25zdApAQCAtNzQ1Myw2ICs3NDE0LDQ3
IEBAIFRleHRSdW4gUmVuZGVyQmxvY2s6OmNvbnN0cnVjdFRleHRSdW4oUmVuZGVyT2JqZWN0KiBj
b250ZXh0LCBjb25zdCBGb250JiBmb250LCBjCiAgICAgcmV0dXJuIGNvbnN0cnVjdFRleHRSdW4o
Y29udGV4dCwgZm9udCwgc3RyaW5nLmNoYXJhY3RlcnMoKSwgc3RyaW5nLmxlbmd0aCgpLCBzdHls
ZSwgZXhwYW5zaW9uLCBmbGFncyk7CiB9CiAKK1JlbmRlckJsb2NrKiBSZW5kZXJCbG9jazo6Y3Jl
YXRlQW5vbnltb3VzV2l0aFBhcmVudFJlbmRlcmVyQW5kRGlzcGxheShjb25zdCBSZW5kZXJPYmpl
Y3QqIHBhcmVudCwgRURpc3BsYXkgZGlzcGxheSkKK3sKKyAgICBSZWZQdHI8UmVuZGVyU3R5bGU+
IG5ld1N0eWxlID0gUmVuZGVyU3R5bGU6OmNyZWF0ZUFub255bW91c1N0eWxlKHBhcmVudC0+c3R5
bGUoKSk7CisKKyAgICAvLyBGSVhNRTogRG8gd2UgbmVlZCB0byBjb3ZlciB0aGUgbmV3IGZsZXgg
Ym94IGhlcmUgPworICAgIC8vIEZJWE1FOiBXaHkgYXJlIHdlIGZvcmNpbmcgYSBCT1ggZGlzcGxh
eSBmb3Igb2xkIGZsZXggYm94IGhlcmUgPyBJcyB0aGlzIGEgaGFjayBmb3IgUmVuZGVyQnV0dG9u
ID8KKyAgICBSZW5kZXJCbG9jayogbmV3Qm94ID0gMDsKKyAgICBpZiAoZGlzcGxheSA9PSBCT1gg
fHwgZGlzcGxheSA9PSBJTkxJTkVfQk9YKSB7CisgICAgICAgIG5ld1N0eWxlLT5zZXREaXNwbGF5
KEJPWCk7CisgICAgICAgIG5ld0JveCA9IG5ldyAocGFyZW50LT5yZW5kZXJBcmVuYSgpKSBSZW5k
ZXJEZXByZWNhdGVkRmxleGlibGVCb3gocGFyZW50LT5kb2N1bWVudCgpIC8qIGFub255bW91cyBi
b3ggKi8pOworICAgIH0gZWxzZSB7CisgICAgICAgIG5ld1N0eWxlLT5zZXREaXNwbGF5KEJMT0NL
KTsKKyAgICAgICAgbmV3Qm94ID0gbmV3IChwYXJlbnQtPnJlbmRlckFyZW5hKCkpIFJlbmRlckJs
b2NrKHBhcmVudC0+ZG9jdW1lbnQoKSAvKiBhbm9ueW1vdXMgYm94ICovKTsKKyAgICB9CisKKyAg
ICBuZXdCb3gtPnNldFN0eWxlKG5ld1N0eWxlLnJlbGVhc2UoKSk7CisgICAgcmV0dXJuIG5ld0Jv
eDsKK30KKworUmVuZGVyQmxvY2sqIFJlbmRlckJsb2NrOjpjcmVhdGVBbm9ueW1vdXNDb2x1bW5z
V2l0aFBhcmVudFJlbmRlcmVyKGNvbnN0IFJlbmRlck9iamVjdCogcGFyZW50KQoreworICAgIFJl
ZlB0cjxSZW5kZXJTdHlsZT4gbmV3U3R5bGUgPSBSZW5kZXJTdHlsZTo6Y3JlYXRlQW5vbnltb3Vz
U3R5bGUocGFyZW50LT5zdHlsZSgpKTsKKyAgICBuZXdTdHlsZS0+aW5oZXJpdENvbHVtblByb3Bl
cnRpZXNGcm9tKHBhcmVudC0+c3R5bGUoKSk7CisgICAgbmV3U3R5bGUtPnNldERpc3BsYXkoQkxP
Q0spOworCisgICAgUmVuZGVyQmxvY2sqIG5ld0JveCA9IG5ldyAocGFyZW50LT5yZW5kZXJBcmVu
YSgpKSBSZW5kZXJCbG9jayhwYXJlbnQtPmRvY3VtZW50KCkgLyogYW5vbnltb3VzIGJveCAqLyk7
CisgICAgbmV3Qm94LT5zZXRTdHlsZShuZXdTdHlsZS5yZWxlYXNlKCkpOworICAgIHJldHVybiBu
ZXdCb3g7Cit9CisKK1JlbmRlckJsb2NrKiBSZW5kZXJCbG9jazo6Y3JlYXRlQW5vbnltb3VzQ29s
dW1uU3BhbldpdGhQYXJlbnRSZW5kZXJlcihjb25zdCBSZW5kZXJPYmplY3QqIHBhcmVudCkKK3sK
KyAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IG5ld1N0eWxlID0gUmVuZGVyU3R5bGU6OmNyZWF0ZUFu
b255bW91c1N0eWxlKHBhcmVudC0+c3R5bGUoKSk7CisgICAgbmV3U3R5bGUtPnNldENvbHVtblNw
YW4oQ29sdW1uU3BhbkFsbCk7CisgICAgbmV3U3R5bGUtPnNldERpc3BsYXkoQkxPQ0spOworCisg
ICAgUmVuZGVyQmxvY2sqIG5ld0JveCA9IG5ldyAocGFyZW50LT5yZW5kZXJBcmVuYSgpKSBSZW5k
ZXJCbG9jayhwYXJlbnQtPmRvY3VtZW50KCkgLyogYW5vbnltb3VzIGJveCAqLyk7CisgICAgbmV3
Qm94LT5zZXRTdHlsZShuZXdTdHlsZS5yZWxlYXNlKCkpOworICAgIHJldHVybiBuZXdCb3g7Cit9
CisKICNpZm5kZWYgTkRFQlVHCiAKIHZvaWQgUmVuZGVyQmxvY2s6OnNob3dMaW5lVHJlZUFuZE1h
cmsoY29uc3QgSW5saW5lQm94KiBtYXJrZWRCb3gxLCBjb25zdCBjaGFyKiBtYXJrZWRMYWJlbDEs
IGNvbnN0IElubGluZUJveCogbWFya2VkQm94MiwgY29uc3QgY2hhciogbWFya2VkTGFiZWwyLCBj
b25zdCBSZW5kZXJPYmplY3QqIG9iaikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCbG9jay5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJsb2NrLmgKaW5kZXggOTc3YTk5YjQwYWM5NWNjZmJjNjYzMGNiNGI0ZjhlZDFiYjFkNTYxZC4u
OGZjMzUxMTRjMTM1MDUzYmFkM2FkMjE2ZjM4NTMzODEyOTBiNTFkYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrLmgKQEAgLTIzMywxMSArMjMzLDEzIEBAIHB1YmxpYzoKICAg
ICB1c2luZyBSZW5kZXJCb3hNb2RlbE9iamVjdDo6Y29udGludWF0aW9uOwogICAgIHVzaW5nIFJl
bmRlckJveE1vZGVsT2JqZWN0OjpzZXRDb250aW51YXRpb247CiAKLSAgICAvLyBUaGlzIGZ1bmN0
aW9uIGlzIGEgY29udmVuaWVuY2UgaGVscGVyIGZvciBjcmVhdGluZyBhbiBhbm9ueW1vdXMgYmxv
Y2sgdGhhdCBpbmhlcml0cyBpdHMKLSAgICAvLyBzdHlsZSBmcm9tIHRoaXMgUmVuZGVyQmxvY2su
Ci0gICAgUmVuZGVyQmxvY2sqIGNyZWF0ZUFub255bW91c0Jsb2NrKGJvb2wgaXNGbGV4aWJsZUJv
eCA9IGZhbHNlKSBjb25zdDsKLSAgICBSZW5kZXJCbG9jayogY3JlYXRlQW5vbnltb3VzQ29sdW1u
c0Jsb2NrKCkgY29uc3Q7Ci0gICAgUmVuZGVyQmxvY2sqIGNyZWF0ZUFub255bW91c0NvbHVtblNw
YW5CbG9jaygpIGNvbnN0OworICAgIHN0YXRpYyBSZW5kZXJCbG9jayogY3JlYXRlQW5vbnltb3Vz
V2l0aFBhcmVudFJlbmRlcmVyQW5kRGlzcGxheShjb25zdCBSZW5kZXJPYmplY3QqLCBFRGlzcGxh
eSA9IEJMT0NLKTsKKyAgICBzdGF0aWMgUmVuZGVyQmxvY2sqIGNyZWF0ZUFub255bW91c0NvbHVt
bnNXaXRoUGFyZW50UmVuZGVyZXIoY29uc3QgUmVuZGVyT2JqZWN0Kik7CisgICAgc3RhdGljIFJl
bmRlckJsb2NrKiBjcmVhdGVBbm9ueW1vdXNDb2x1bW5TcGFuV2l0aFBhcmVudFJlbmRlcmVyKGNv
bnN0IFJlbmRlck9iamVjdCopOworICAgIFJlbmRlckJsb2NrKiBjcmVhdGVBbm9ueW1vdXNCbG9j
ayhFRGlzcGxheSBkaXNwbGF5ID0gQkxPQ0spIGNvbnN0IHsgcmV0dXJuIGNyZWF0ZUFub255bW91
c1dpdGhQYXJlbnRSZW5kZXJlckFuZERpc3BsYXkodGhpcywgZGlzcGxheSk7IH0KKyAgICBSZW5k
ZXJCbG9jayogY3JlYXRlQW5vbnltb3VzQ29sdW1uc0Jsb2NrKCkgY29uc3QgeyByZXR1cm4gY3Jl
YXRlQW5vbnltb3VzQ29sdW1uc1dpdGhQYXJlbnRSZW5kZXJlcih0aGlzKTsgfQorICAgIFJlbmRl
ckJsb2NrKiBjcmVhdGVBbm9ueW1vdXNDb2x1bW5TcGFuQmxvY2soKSBjb25zdCB7IHJldHVybiBj
cmVhdGVBbm9ueW1vdXNDb2x1bW5TcGFuV2l0aFBhcmVudFJlbmRlcmVyKHRoaXMpOyB9CisKICAg
ICBSZW5kZXJCbG9jayogY3JlYXRlQW5vbnltb3VzQmxvY2tXaXRoU2FtZVR5cGVBcyhSZW5kZXJC
bG9jayogb3RoZXJBbm9ueW1vdXNCbG9jaykgY29uc3Q7CiAgICAgCiAgICAgc3RhdGljIHZvaWQg
YXBwZW5kUnVuc0Zvck9iamVjdChCaWRpUnVuTGlzdDxCaWRpUnVuPiYsIGludCBzdGFydCwgaW50
IGVuZCwgUmVuZGVyT2JqZWN0KiwgSW5saW5lQmlkaVJlc29sdmVyJik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQnV0dG9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCdXR0b24uY3BwCmluZGV4IDM4MGM1ZGEzNWM2ZTdlNmVjMTBhMTQ0
ODg5MmMwNjg0NjdiNTI2OWEuLjU0NzdmOWU1MDgwNTk1NjkyN2RmOTNlNjE2ZGNlMDRiZmNjMjk0
ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCdXR0b24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCdXR0b24uY3BwCkBAIC00OSw4
ICs0OSw3IEBAIHZvaWQgUmVuZGVyQnV0dG9uOjphZGRDaGlsZChSZW5kZXJPYmplY3QqIG5ld0No
aWxkLCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkKQogICAgIGlmICghbV9pbm5lcikgewogICAg
ICAgICAvLyBDcmVhdGUgYW4gYW5vbnltb3VzIGJsb2NrLgogICAgICAgICBBU1NFUlQoIWZpcnN0
Q2hpbGQoKSk7Ci0gICAgICAgIGJvb2wgaXNGbGV4aWJsZUJveCA9IHN0eWxlKCktPmRpc3BsYXko
KSA9PSBCT1ggfHwgc3R5bGUoKS0+ZGlzcGxheSgpID09IElOTElORV9CT1g7Ci0gICAgICAgIG1f
aW5uZXIgPSBjcmVhdGVBbm9ueW1vdXNCbG9jayhpc0ZsZXhpYmxlQm94KTsKKyAgICAgICAgbV9p
bm5lciA9IGNyZWF0ZUFub255bW91c0Jsb2NrKHN0eWxlKCktPmRpc3BsYXkoKSk7CiAgICAgICAg
IHNldHVwSW5uZXJTdHlsZShtX2lubmVyLT5zdHlsZSgpKTsKICAgICAgICAgUmVuZGVyRGVwcmVj
YXRlZEZsZXhpYmxlQm94OjphZGRDaGlsZChtX2lubmVyKTsKICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCmluZGV4IGQ2NDg0YzhkY2JmY2QzZTU4OGU3Nzc4
MDBlYjUxNTE4Y2IwNzUwNTMuLjRiNDk2MjViZTA5MWQyZGExMTZmOTk0MDA4ZWNiY2I4OGQ4YmRl
YzEgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCkBAIC0yNjks
MTYgKzI2OSw2IEBAIHN0YXRpYyBib29sIGlzQmVmb3JlQWZ0ZXJDb250ZW50R2VuZXJhdGVkQnlB
bmNlc3RvcihSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBSZW5kCiAgICAgcmV0dXJuIGZhbHNlOwog
fQogCi1SZW5kZXJUYWJsZSogUmVuZGVyT2JqZWN0OjpjcmVhdGVBbm9ueW1vdXNUYWJsZSgpIGNv
bnN0Ci17Ci0gICAgUmVmUHRyPFJlbmRlclN0eWxlPiBuZXdTdHlsZSA9IFJlbmRlclN0eWxlOjpj
cmVhdGVBbm9ueW1vdXNTdHlsZShzdHlsZSgpKTsKLSAgICBuZXdTdHlsZS0+c2V0RGlzcGxheShU
QUJMRSk7Ci0KLSAgICBSZW5kZXJUYWJsZSogdGFibGUgPSBuZXcgKHJlbmRlckFyZW5hKCkpIFJl
bmRlclRhYmxlKGRvY3VtZW50KCkgLyogaXMgYW5vbnltb3VzICovKTsKLSAgICB0YWJsZS0+c2V0
U3R5bGUobmV3U3R5bGUucmVsZWFzZSgpKTsKLSAgICByZXR1cm4gdGFibGU7Ci19Ci0KIHZvaWQg
UmVuZGVyT2JqZWN0OjphZGRDaGlsZChSZW5kZXJPYmplY3QqIG5ld0NoaWxkLCBSZW5kZXJPYmpl
Y3QqIGJlZm9yZUNoaWxkKQogewogICAgIFJlbmRlck9iamVjdENoaWxkTGlzdCogY2hpbGRyZW4g
PSB2aXJ0dWFsQ2hpbGRyZW4oKTsKQEAgLTMyMyw3ICszMTMsNyBAQCB2b2lkIFJlbmRlck9iamVj
dDo6YWRkQ2hpbGQoUmVuZGVyT2JqZWN0KiBuZXdDaGlsZCwgUmVuZGVyT2JqZWN0KiBiZWZvcmVD
aGlsZCkKICAgICAgICAgaWYgKGFmdGVyQ2hpbGQgJiYgYWZ0ZXJDaGlsZC0+aXNBbm9ueW1vdXMo
KSAmJiBhZnRlckNoaWxkLT5pc1RhYmxlKCkgJiYgIWFmdGVyQ2hpbGQtPmlzQmVmb3JlQ29udGVu
dCgpKQogICAgICAgICAgICAgdGFibGUgPSB0b1JlbmRlclRhYmxlKGFmdGVyQ2hpbGQpOwogICAg
ICAgICBlbHNlIHsKLSAgICAgICAgICAgIHRhYmxlID0gY3JlYXRlQW5vbnltb3VzVGFibGUoKTsK
KyAgICAgICAgICAgIHRhYmxlID0gUmVuZGVyVGFibGU6OmNyZWF0ZUFub255bW91c1dpdGhQYXJl
bnRSZW5kZXJlcih0aGlzKTsKICAgICAgICAgICAgIGFkZENoaWxkKHRhYmxlLCBiZWZvcmVDaGls
ZCk7CiAgICAgICAgIH0KICAgICAgICAgdGFibGUtPmFkZENoaWxkKG5ld0NoaWxkKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAppbmRleCA1NmI2ZDFjMDVlNzU2OTQ2NDQ1
NTAwNGVlNjI1NWIzZGVlNTZjMjFlLi5hYzcwZDEzYWQ5YjQyMjI5YjE0ZWFlMDBkZDYyMWRjZmQ0
NzBhMGVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCkBAIC0yMjYs
OCArMjI2LDYgQEAgcHVibGljOgogICAgIC8vIG5vcm1hbCBmbG93IG9iamVjdC4KICAgICB2b2lk
IGhhbmRsZUR5bmFtaWNGbG9hdFBvc2l0aW9uQ2hhbmdlKCk7CiAgICAgCi0gICAgUmVuZGVyVGFi
bGUqIGNyZWF0ZUFub255bW91c1RhYmxlKCkgY29uc3Q7Ci0gICAgCiAgICAgLy8gUmVuZGVyT2Jq
ZWN0IHRyZWUgbWFuaXB1bGF0aW9uCiAgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vCiAgICAgdmlydHVhbCBib29sIGNhbkhhdmVDaGlsZHJlbigpIGNvbnN0IHsg
cmV0dXJuIHZpcnR1YWxDaGlsZHJlbigpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRhYmxlLmNwcAppbmRleCBhYmY3ZWMzOTdmZTgyMWU3YmI1MDBlZDVlMzM2MmRjNGY1NTNkNTkw
Li5iZDU2MDdmZjRiM2ZmMWM3ODA5ZmY4MDFlMjEzZGQxYTdhZGY3Y2I1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAKQEAgLTE5MiwxMSArMTkyLDggQEAgdm9pZCBS
ZW5kZXJUYWJsZTo6YWRkQ2hpbGQoUmVuZGVyT2JqZWN0KiBjaGlsZCwgUmVuZGVyT2JqZWN0KiBi
ZWZvcmVDaGlsZCkKIAogICAgIGlmIChiZWZvcmVDaGlsZCAmJiAhYmVmb3JlQ2hpbGQtPmlzVGFi
bGVTZWN0aW9uKCkgJiYgYmVmb3JlQ2hpbGQtPnN0eWxlKCktPmRpc3BsYXkoKSAhPSBUQUJMRV9D
QVBUSU9OICYmIGJlZm9yZUNoaWxkLT5zdHlsZSgpLT5kaXNwbGF5KCkgIT0gVEFCTEVfQ09MVU1O
X0dST1VQKQogICAgICAgICBiZWZvcmVDaGlsZCA9IDA7Ci0gICAgUmVuZGVyVGFibGVTZWN0aW9u
KiBzZWN0aW9uID0gbmV3IChyZW5kZXJBcmVuYSgpKSBSZW5kZXJUYWJsZVNlY3Rpb24oZG9jdW1l
bnQoKSAvKiBhbm9ueW1vdXMgKi8pOwotICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gbmV3U3R5bGUg
PSBSZW5kZXJTdHlsZTo6Y3JlYXRlKCk7Ci0gICAgbmV3U3R5bGUtPmluaGVyaXRGcm9tKHN0eWxl
KCkpOwotICAgIG5ld1N0eWxlLT5zZXREaXNwbGF5KFRBQkxFX1JPV19HUk9VUCk7Ci0gICAgc2Vj
dGlvbi0+c2V0U3R5bGUobmV3U3R5bGUucmVsZWFzZSgpKTsKKworICAgIFJlbmRlclRhYmxlU2Vj
dGlvbiogc2VjdGlvbiA9IFJlbmRlclRhYmxlU2VjdGlvbjo6Y3JlYXRlQW5vbnltb3VzV2l0aFBh
cmVudFJlbmRlcmVyKHRoaXMpOwogICAgIGFkZENoaWxkKHNlY3Rpb24sIGJlZm9yZUNoaWxkKTsK
ICAgICBzZWN0aW9uLT5hZGRDaGlsZChjaGlsZCk7CiB9CkBAIC0xMjgwLDQgKzEyNzcsMTQgQEAg
Ym9vbCBSZW5kZXJUYWJsZTo6bm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmIHJlcXVl
c3QsIEhpdFRlc3RSZXN1bHQmIHJlc3UKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK1JlbmRlclRh
YmxlKiBSZW5kZXJUYWJsZTo6Y3JlYXRlQW5vbnltb3VzV2l0aFBhcmVudFJlbmRlcmVyKGNvbnN0
IFJlbmRlck9iamVjdCogcGFyZW50KQoreworICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gbmV3U3R5
bGUgPSBSZW5kZXJTdHlsZTo6Y3JlYXRlQW5vbnltb3VzU3R5bGUocGFyZW50LT5zdHlsZSgpKTsK
KyAgICBuZXdTdHlsZS0+c2V0RGlzcGxheShUQUJMRSk7CisKKyAgICBSZW5kZXJUYWJsZSogbmV3
VGFibGUgPSBuZXcgKHBhcmVudC0+cmVuZGVyQXJlbmEoKSkgUmVuZGVyVGFibGUocGFyZW50LT5k
b2N1bWVudCgpIC8qIGlzIGFub255bW91cyAqLyk7CisgICAgbmV3VGFibGUtPnNldFN0eWxlKG5l
d1N0eWxlLnJlbGVhc2UoKSk7CisgICAgcmV0dXJuIG5ld1RhYmxlOworfQorCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5oCmluZGV4IGJjMzA5ZjZiODQ2OTc1ODdiZWJlMmVj
NWMxOTU2ZThlNjRmZWU5MmIuLjYzOTQ1OWNmYzY2MWJjNmQ0YzA5NmI3M2NjMjQ1YTc3MWY2ZDg2
MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5oCkBAIC0yMTEsNiArMjEx
LDggQEAgcHVibGljOgogICAgICAgICAgICAgcmVjYWxjU2VjdGlvbnMoKTsKICAgICB9CiAKKyAg
ICBzdGF0aWMgUmVuZGVyVGFibGUqIGNyZWF0ZUFub255bW91c1dpdGhQYXJlbnRSZW5kZXJlcihj
b25zdCBSZW5kZXJPYmplY3QqKTsKKwogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBzdHls
ZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5jcHAKaW5kZXgg
MTM5NjE1YTg4YTdkNzY3NmVjMDRmYWIxNTRmYjI3YzM2YjMxMzgyOC4uOTEyMzI1NTVjMjNiMjg0
NzQwMWZhZGMyZTEwMDk5MzY0ZGZmZTA5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRhYmxlQ2VsbC5jcHAKQEAgLTExMTcsNCArMTExNywxNCBAQCB2b2lkIFJlbmRlclRh
YmxlQ2VsbDo6c2Nyb2xsYmFyc0NoYW5nZWQoYm9vbCBob3Jpem9udGFsU2Nyb2xsYmFyQ2hhbmdl
ZCwgYm9vbCB2ZQogICAgICAgICBzZXRJbnRyaW5zaWNQYWRkaW5nQWZ0ZXIoaW50cmluc2ljUGFk
ZGluZ0FmdGVyKCkgLSBzY3JvbGxiYXJIZWlnaHQpOwogfQogCitSZW5kZXJUYWJsZUNlbGwqIFJl
bmRlclRhYmxlQ2VsbDo6Y3JlYXRlQW5vbnltb3VzV2l0aFBhcmVudFJlbmRlcmVyKGNvbnN0IFJl
bmRlck9iamVjdCogcGFyZW50KQoreworICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gbmV3U3R5bGUg
PSBSZW5kZXJTdHlsZTo6Y3JlYXRlQW5vbnltb3VzU3R5bGUocGFyZW50LT5zdHlsZSgpKTsKKyAg
ICBuZXdTdHlsZS0+c2V0RGlzcGxheShUQUJMRV9DRUxMKTsKKworICAgIFJlbmRlclRhYmxlQ2Vs
bCogbmV3Q2VsbCA9IG5ldyAocGFyZW50LT5yZW5kZXJBcmVuYSgpKSBSZW5kZXJUYWJsZUNlbGwo
cGFyZW50LT5kb2N1bWVudCgpIC8qIGlzIGFub255bW91cyAqLyk7CisgICAgbmV3Q2VsbC0+c2V0
U3R5bGUobmV3U3R5bGUucmVsZWFzZSgpKTsKKyAgICByZXR1cm4gbmV3Q2VsbDsKK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRhYmxlQ2VsbC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxl
Q2VsbC5oCmluZGV4IGUxODM3MmFjNTJlYmEwMTg0NGIzNjAwMjI2YzkwYmI0MTJmODAyZDAuLmQz
YTllZTljYTM1YTVlYjBkZTU1ZWNlYzQ5NzQ0ODE3NDhmM2Y3NTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmgKQEAgLTEzOCw2ICsxMzgsOCBAQCBwdWJsaWM6
CiAgICAgYm9vbCBjZWxsV2lkdGhDaGFuZ2VkKCkgY29uc3QgeyByZXR1cm4gbV9jZWxsV2lkdGhD
aGFuZ2VkOyB9CiAgICAgdm9pZCBzZXRDZWxsV2lkdGhDaGFuZ2VkKGJvb2wgYiA9IHRydWUpIHsg
bV9jZWxsV2lkdGhDaGFuZ2VkID0gYjsgfQogCisgICAgc3RhdGljIFJlbmRlclRhYmxlQ2VsbCog
Y3JlYXRlQW5vbnltb3VzV2l0aFBhcmVudFJlbmRlcmVyKGNvbnN0IFJlbmRlck9iamVjdCopOwor
CiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIHN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVy
ZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlUm93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUYWJsZVJvdy5jcHAKaW5kZXggMWFkODM3OGQxZTc2ZGI1NTVjYjJiMzUw
NjM4OGE0M2YwM2QyYjk3NC4uMDkzMWMwYmQ1YTExMzYzOGQ0MWIwNGVhYTA1ZDBlODg4YzRiMmQy
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlUm93LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVSb3cuY3BwCkBAIC0x
MTMsMTEgKzExMyw3IEBAIHZvaWQgUmVuZGVyVGFibGVSb3c6OmFkZENoaWxkKFJlbmRlck9iamVj
dCogY2hpbGQsIFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQpCiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KIAotICAgICAgICBSZW5kZXJUYWJsZUNlbGwqIGNlbGwgPSBuZXcgKHJlbmRl
ckFyZW5hKCkpIFJlbmRlclRhYmxlQ2VsbChkb2N1bWVudCgpIC8qIGFub255bW91cyBvYmplY3Qg
Ki8pOwotICAgICAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IG5ld1N0eWxlID0gUmVuZGVyU3R5bGU6
OmNyZWF0ZSgpOwotICAgICAgICBuZXdTdHlsZS0+aW5oZXJpdEZyb20oc3R5bGUoKSk7Ci0gICAg
ICAgIG5ld1N0eWxlLT5zZXREaXNwbGF5KFRBQkxFX0NFTEwpOwotICAgICAgICBjZWxsLT5zZXRT
dHlsZShuZXdTdHlsZS5yZWxlYXNlKCkpOworICAgICAgICBSZW5kZXJUYWJsZUNlbGwqIGNlbGwg
PSBSZW5kZXJUYWJsZUNlbGw6OmNyZWF0ZUFub255bW91c1dpdGhQYXJlbnRSZW5kZXJlcih0aGlz
KTsKICAgICAgICAgYWRkQ2hpbGQoY2VsbCwgYmVmb3JlQ2hpbGQpOwogICAgICAgICBjZWxsLT5h
ZGRDaGlsZChjaGlsZCk7CiAgICAgICAgIHJldHVybjsKQEAgLTI0OSw0ICsyNDUsMTQgQEAgdm9p
ZCBSZW5kZXJUYWJsZVJvdzo6aW1hZ2VDaGFuZ2VkKFdyYXBwZWRJbWFnZVB0ciwgY29uc3QgSW50
UmVjdCopCiAgICAgcmVwYWludCgpOwogfQogCitSZW5kZXJUYWJsZVJvdyogUmVuZGVyVGFibGVS
b3c6OmNyZWF0ZUFub255bW91c1dpdGhQYXJlbnRSZW5kZXJlcihjb25zdCBSZW5kZXJPYmplY3Qq
IHBhcmVudCkKK3sKKyAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IG5ld1N0eWxlID0gUmVuZGVyU3R5
bGU6OmNyZWF0ZUFub255bW91c1N0eWxlKHBhcmVudC0+c3R5bGUoKSk7CisgICAgbmV3U3R5bGUt
PnNldERpc3BsYXkoVEFCTEVfUk9XKTsKKworICAgIFJlbmRlclRhYmxlUm93KiBuZXdSb3cgPSBu
ZXcgKHBhcmVudC0+cmVuZGVyQXJlbmEoKSkgUmVuZGVyVGFibGVSb3cocGFyZW50LT5kb2N1bWVu
dCgpIC8qIGlzIGFub255bW91cyAqLyk7CisgICAgbmV3Um93LT5zZXRTdHlsZShuZXdTdHlsZS5y
ZWxlYXNlKCkpOworICAgIHJldHVybiBuZXdSb3c7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVJvdy5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlUm93LmgKaW5kZXggZjY2MGU5
ZDMxZDNhNTJlOTA0OWVlYjM0ODY2NDViOTU3ZmU5NmE1ZC4uOWI5MWUxYjgyY2I0YjlkNjcyYTg0
ZWJiOGY0ZmU1NTgyMDVhODFjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRhYmxlUm93LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRh
YmxlUm93LmgKQEAgLTQyLDYgKzQyLDggQEAgcHVibGljOgogICAgIHZvaWQgdXBkYXRlQmVmb3Jl
QW5kQWZ0ZXJDb250ZW50KCk7CiAgICAgdm9pZCBwYWludE91dGxpbmVGb3JSb3dJZk5lZWRlZChQ
YWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpOwogCisgICAgc3RhdGljIFJlbmRlclRhYmxl
Um93KiBjcmVhdGVBbm9ueW1vdXNXaXRoUGFyZW50UmVuZGVyZXIoY29uc3QgUmVuZGVyT2JqZWN0
Kik7CisKIHByaXZhdGU6CiAgICAgdmlydHVhbCBSZW5kZXJPYmplY3RDaGlsZExpc3QqIHZpcnR1
YWxDaGlsZHJlbigpIHsgcmV0dXJuIGNoaWxkcmVuKCk7IH0KICAgICB2aXJ0dWFsIGNvbnN0IFJl
bmRlck9iamVjdENoaWxkTGlzdCogdmlydHVhbENoaWxkcmVuKCkgY29uc3QgeyByZXR1cm4gY2hp
bGRyZW4oKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRh
YmxlU2VjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0
aW9uLmNwcAppbmRleCAzMDZkZGE0MWYzMThlZGEyNzA0NGRmNDE0OTk5MWUwYTM2ODJhYWYzLi5h
MzdmNTVlOGQwMDQyMzJlNmUwNzE1MTNlYmZmNGE0MGZmMjc4MWVhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNwcApAQCAtMTYxLDExICsxNjEs
NyBAQCB2b2lkIFJlbmRlclRhYmxlU2VjdGlvbjo6YWRkQ2hpbGQoUmVuZGVyT2JqZWN0KiBjaGls
ZCwgUmVuZGVyT2JqZWN0KiBiZWZvcmVDaGlsZAogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICB9CiAKLSAgICAgICAgUmVuZGVyT2JqZWN0KiByb3cgPSBuZXcgKHJlbmRlckFyZW5hKCkpIFJl
bmRlclRhYmxlUm93KGRvY3VtZW50KCkgLyogYW5vbnltb3VzIHRhYmxlIHJvdyAqLyk7Ci0gICAg
ICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gbmV3U3R5bGUgPSBSZW5kZXJTdHlsZTo6Y3JlYXRlKCk7
Ci0gICAgICAgIG5ld1N0eWxlLT5pbmhlcml0RnJvbShzdHlsZSgpKTsKLSAgICAgICAgbmV3U3R5
bGUtPnNldERpc3BsYXkoVEFCTEVfUk9XKTsKLSAgICAgICAgcm93LT5zZXRTdHlsZShuZXdTdHls
ZS5yZWxlYXNlKCkpOworICAgICAgICBSZW5kZXJPYmplY3QqIHJvdyA9IFJlbmRlclRhYmxlUm93
OjpjcmVhdGVBbm9ueW1vdXNXaXRoUGFyZW50UmVuZGVyZXIodGhpcyk7CiAgICAgICAgIGFkZENo
aWxkKHJvdywgYmVmb3JlQ2hpbGQpOwogICAgICAgICByb3ctPmFkZENoaWxkKGNoaWxkKTsKICAg
ICAgICAgcmV0dXJuOwpAQCAtMTQxNyw0ICsxNDEzLDE0IEBAIENvbGxhcHNlZEJvcmRlclZhbHVl
JiBSZW5kZXJUYWJsZVNlY3Rpb246OmNhY2hlZENvbGxhcHNlZEJvcmRlcihjb25zdCBSZW5kZXJU
YWJsCiAgICAgcmV0dXJuIGl0LT5zZWNvbmQ7CiB9CiAKK1JlbmRlclRhYmxlU2VjdGlvbiogUmVu
ZGVyVGFibGVTZWN0aW9uOjpjcmVhdGVBbm9ueW1vdXNXaXRoUGFyZW50UmVuZGVyZXIoY29uc3Qg
UmVuZGVyT2JqZWN0KiBwYXJlbnQpCit7CisgICAgUmVmUHRyPFJlbmRlclN0eWxlPiBuZXdTdHls
ZSA9IFJlbmRlclN0eWxlOjpjcmVhdGVBbm9ueW1vdXNTdHlsZShwYXJlbnQtPnN0eWxlKCkpOwor
ICAgIG5ld1N0eWxlLT5zZXREaXNwbGF5KFRBQkxFX1JPV19HUk9VUCk7CisKKyAgICBSZW5kZXJU
YWJsZVNlY3Rpb24qIG5ld1NlY3Rpb24gPSBuZXcgKHBhcmVudC0+cmVuZGVyQXJlbmEoKSkgUmVu
ZGVyVGFibGVTZWN0aW9uKHBhcmVudC0+ZG9jdW1lbnQoKSAvKiBpcyBhbm9ueW1vdXMgKi8pOwor
ICAgIG5ld1NlY3Rpb24tPnNldFN0eWxlKG5ld1N0eWxlLnJlbGVhc2UoKSk7CisgICAgcmV0dXJu
IG5ld1NlY3Rpb247Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uaAppbmRleCBjZWIxODdiYmQxYWEyMmQz
MGU4MjU0MmVlNTc0Y2FjYmRjNWFhZjU4Li4xMTNmYjRlNWRiMDFlMmY5OTBiMmYzMTk3ZmQ3MTZl
NDUwYTExOGYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFi
bGVTZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2Vj
dGlvbi5oCkBAIC0xNjIsNiArMTYyLDggQEAgcHVibGljOgogICAgIC8vIEZJWE1FOiBXZSBtYXkg
d2FudCB0byBpbnRyb2R1Y2UgYSBzdHJ1Y3R1cmUgaG9sZGluZyB0aGUgaW4tZmx1eCBsYXlvdXQg
aW5mb3JtYXRpb24uCiAgICAgaW50IGRpc3RyaWJ1dGVFeHRyYUxvZ2ljYWxIZWlnaHRUb1Jvd3Mo
aW50IGV4dHJhTG9naWNhbEhlaWdodCk7CiAKKyAgICBzdGF0aWMgUmVuZGVyVGFibGVTZWN0aW9u
KiBjcmVhdGVBbm9ueW1vdXNXaXRoUGFyZW50UmVuZGVyZXIoY29uc3QgUmVuZGVyT2JqZWN0Kik7
CisKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZm
ZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpOwogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZDVjZmZhZTYy
MGI3NjhlZjk3ZTMzODU3ZGE2ZmJiMzZjYzUwNWQ2Mi4uMzdlYTEyNzgzODA0ZDJkYzQwMzU2YWI5
NjQ0YWJiNWVmMjFiNTdjOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTA0LTAzICBBYmhp
c2hlayBBcnlhICA8aW5mZXJub0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQWRkIGhlbHBlcnMg
dG8gY3JlYXRlIGFub255bW91cyB0YWJsZSBwYXJ0cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgzMTE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUmViYXNlbGluaW5nIHRlc3RzIGJlY2F1c2Ugd2Ugbm93
IGNvcnJlY3RseSBpbmhlcml0IHRoZSBiaWRpIG92ZXJyaWRlLgorCisgICAgICAgICogcGxhdGZv
cm0vY2hyb21pdW0tbWFjL2Zhc3QvY3NzL2JpZGktb3ZlcnJpZGUtaW4tYW5vbnltb3VzLWJsb2Nr
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vZmFzdC9jc3Mv
YmlkaS1vdmVycmlkZS1pbi1hbm9ueW1vdXMtYmxvY2stZXhwZWN0ZWQudHh0OgorCiAyMDEyLTA0
LTAzICBUb255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgSW1wbGVtZW50
IG5ldyBmbGV4IHByb3BlcnR5IGFuZCBkZXByZWNhdGUgZmxleCBmdW5jdGlvbgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbWFjL2Zhc3QvY3NzL2JpZGktb3ZlcnJp
ZGUtaW4tYW5vbnltb3VzLWJsb2NrLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtLW1hYy9mYXN0L2Nzcy9iaWRpLW92ZXJyaWRlLWluLWFub255bW91cy1ibG9jay1l
eHBlY3RlZC50eHQKaW5kZXggYjFmMTc3MTVlN2M5M2YxNmE2NWFhNWRkOWI1NjY3MDM1MTkyYzY1
Mi4uZmI0ZGY1NGY2MDRlMzI3MGIyZjY4YzRiMjY2ODczZDRkOTEwZDNhMCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbWFjL2Zhc3QvY3NzL2JpZGktb3ZlcnJpZGUt
aW4tYW5vbnltb3VzLWJsb2NrLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS1tYWMvZmFzdC9jc3MvYmlkaS1vdmVycmlkZS1pbi1hbm9ueW1vdXMtYmxvY2st
ZXhwZWN0ZWQudHh0CkBAIC0yMjUsNyArMjI1LDcgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA3ODV4
MTIxNwogICAgICAgICAgICAgUmVuZGVyVGFibGVSb3cge0RJVn0gYXQgKDAsMCkgc2l6ZSAyNHgx
OAogICAgICAgICAgICAgICBSZW5kZXJUYWJsZUNlbGwgKGFub255bW91cykgYXQgKDAsMCkgc2l6
ZSAyNHgxOCBbcj0wIGM9MCBycz0xIGNzPTFdCiAgICAgICAgICAgICAgICAgUmVuZGVyVGV4dCB7
I3RleHR9IGF0ICgyLDApIHNpemUgMjJ4MTgKLSAgICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0
ICgyLDApIHdpZHRoIDIyOiAiYWJjIgorICAgICAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDIs
MCkgd2lkdGggMjIgUlRMIG92ZXJyaWRlOiAiYWJjIgogICAgICAgICAgICAgUmVuZGVyVGFibGVS
b3cgKGFub255bW91cykgYXQgKDAsMTgpIHNpemUgMjR4MTgKICAgICAgICAgICAgICAgUmVuZGVy
VGFibGVDZWxsIHtESVZ9IGF0ICgwLDE4KSBzaXplIDI0eDE4IFtyPTEgYz0wIHJzPTEgY3M9MV0K
ICAgICAgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDQsMCkgc2l6ZSAyMHgxOApA
QCAtMjM3LDQgKzIzNyw0IEBAIGxheWVyIGF0ICgwLDApIHNpemUgNzg1eDEyMTcKICAgICAgICAg
ICAgIFJlbmRlclRhYmxlUm93IChhbm9ueW1vdXMpIGF0ICgwLDApIHNpemUgMjR4MTgKICAgICAg
ICAgICAgICAgUmVuZGVyVGFibGVDZWxsIChhbm9ueW1vdXMpIGF0ICgwLDApIHNpemUgMjR4MTgg
W3I9MCBjPTAgcnM9MSBjcz0xXQogICAgICAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMCwwKSBzaXplIDI0eDE4Ci0gICAgICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3
aWR0aCAyNDogIm9wcSIKKyAgICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRo
IDI0IFJUTCBvdmVycmlkZTogIm9wcSIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtLXdpbi9mYXN0L2Nzcy9iaWRpLW92ZXJyaWRlLWluLWFub255bW91cy1ibG9jay1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vZmFzdC9jc3Mv
YmlkaS1vdmVycmlkZS1pbi1hbm9ueW1vdXMtYmxvY2stZXhwZWN0ZWQudHh0CmluZGV4IDlhODJl
NGNjNGQ3NzhmOWQ1NDBlOWExNWM4ZjBkZTE5ZWY2MWEwNTMuLjRhOWVmMDA4YTExNWIxOGQzZDFi
Y2RmNWJhYmZlMDgwZTBiMWJlZTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtLXdpbi9mYXN0L2Nzcy9iaWRpLW92ZXJyaWRlLWluLWFub255bW91cy1ibG9jay1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2Zhc3QvY3Nz
L2JpZGktb3ZlcnJpZGUtaW4tYW5vbnltb3VzLWJsb2NrLWV4cGVjdGVkLnR4dApAQCAtMjI1LDcg
KzIyNSw3IEBAIGxheWVyIGF0ICgwLDApIHNpemUgNzg1eDEzMDEKICAgICAgICAgICAgIFJlbmRl
clRhYmxlUm93IHtESVZ9IGF0ICgwLDApIHNpemUgMjR4MjAKICAgICAgICAgICAgICAgUmVuZGVy
VGFibGVDZWxsIChhbm9ueW1vdXMpIGF0ICgwLDApIHNpemUgMjR4MjAgW3I9MCBjPTAgcnM9MSBj
cz0xXQogICAgICAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMiwwKSBzaXplIDIy
eDE5Ci0gICAgICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMiwwKSB3aWR0aCAyMjogImFiYyIK
KyAgICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgyLDApIHdpZHRoIDIyIFJUTCBvdmVycmlk
ZTogImFiYyIKICAgICAgICAgICAgIFJlbmRlclRhYmxlUm93IChhbm9ueW1vdXMpIGF0ICgwLDIw
KSBzaXplIDI0eDIwCiAgICAgICAgICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7RElWfSBhdCAoMCwy
MCkgc2l6ZSAyNHgyMCBbcj0xIGM9MCBycz0xIGNzPTFdCiAgICAgICAgICAgICAgICAgUmVuZGVy
VGV4dCB7I3RleHR9IGF0ICg1LDApIHNpemUgMTl4MTkKQEAgLTIzNyw0ICsyMzcsNCBAQCBsYXll
ciBhdCAoMCwwKSBzaXplIDc4NXgxMzAxCiAgICAgICAgICAgICBSZW5kZXJUYWJsZVJvdyAoYW5v
bnltb3VzKSBhdCAoMCwwKSBzaXplIDI0eDIwCiAgICAgICAgICAgICAgIFJlbmRlclRhYmxlQ2Vs
bCAoYW5vbnltb3VzKSBhdCAoMCwwKSBzaXplIDI0eDIwIFtyPTAgYz0wIHJzPTEgY3M9MV0KICAg
ICAgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAyNHgxOQotICAg
ICAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMjQ6ICJvcHEiCisgICAgICAg
ICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAyNCBSVEwgb3ZlcnJpZGU6ICJvcHEi
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>135701</attachid>
            <date>2012-04-04 15:34:09 -0700</date>
            <delta_ts>2012-04-04 15:42:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-83116-20120404153408.patch</filename>
            <type>text/plain</type>
            <size>24083</size>
            <attacher name="Abhishek Arya">inferno</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEzMDk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDVjYmI4ZGZmOTc4MDA3
MWY1NTYwMjRlZDQzY2NiNWI3YWVjMWMzNS4uMDVmMjhjZjgzMGFlMjI0OTAzZjBiOTVhMzc3OTIz
NjU5ZjUyMzNmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDEyLTA0LTAzICBBYmhp
c2hlayBBcnlhICA8aW5mZXJub0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQWRkIGhlbHBlcnMg
dG8gY3JlYXRlIGFub255bW91cyB0YWJsZSBwYXJ0cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgzMTE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSnVs
aWVuIENoYWZmcmFpeC4KKworICAgICAgICBUaGUgcGF0Y2ggaW50cm9kdWNlcyBoZWxwZXJzIHRv
IGNyZWF0ZSBhbm9ueW1vdXMgdGFibGUgcGFydHMgYnkKKyAgICAgICAgaW50cm9kdWNpbmcgYSBu
ZXcgc3RhdGljIGZ1bmN0aW9uIGNyZWF0ZUFub255bW91c1dpdGhQYXJlbnRSZW5kZXJlci4KKyAg
ICAgICAgVGhlIGZ1bmN0aW9uIGJ1aWxkcyBhIG5ldyBhbm9ueW1vdXMgd3JhcHBlciBvZiB0aGUg
c2FtZSB0eXBlIGFzIHRoZSBjbGFzcywKKyAgICAgICAgaW5oZXJpdGluZyBzdHlsZSBwcm9wZXJ0
aWVzIGZyb20gcGFyZW50IGFuZCBzZXRzIGEgZGlzcGxheSBiYXNlZCBvbgorICAgICAgICBhcmd1
bWVudC9kZWZhdWx0IHZhbHVlcy4gQWxzbyB3ZSBzdHJlYW1saW5lIHRoZSBSZW5kZXJCbG9jayBm
dW5jdGlvbnMKKyAgICAgICAgdG8gbWF0Y2ggdGhpcyBuYW1pbmcgY29udmVudGlvbi4KKworICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJCbG9jazo6Y3JlYXRlQW5vbnltb3VzQmxvY2tXaXRoU2FtZVR5cGVBcyk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJCbG9jazo6Y3JlYXRlQW5vbnltb3VzV2l0aFBhcmVudFJlbmRlcmVyQW5k
RGlzcGxheSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJs
b2NrOjpjcmVhdGVBbm9ueW1vdXNDb2x1bW5zV2l0aFBhcmVudFJlbmRlcmVyQW5kRGlzcGxheSk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6Y3JlYXRlQW5vbnltb3VzQ29sdW1uU3Bh
bldpdGhQYXJlbnRSZW5kZXJlckFuZERpc3BsYXkpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJCbG9jay5oOgorICAgICAgICAoUmVuZGVyQmxvY2spOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyQmxvY2s6OmNyZWF0ZUFub255bW91c0Jsb2NrKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckJsb2NrOjpjcmVhdGVBbm9ueW1vdXNDb2x1bW5zQmxvY2spOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyQmxvY2s6OmNyZWF0ZUFub255bW91c0NvbHVtblNwYW5CbG9jayk6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckJ1dHRvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCdXR0
b246OmFkZENoaWxkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6YWRkQ2hpbGQpOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJUYWJsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZTo6YWRk
Q2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGU6OmNyZWF0ZUFub255bW91c1dp
dGhQYXJlbnRSZW5kZXJlckFuZERpc3BsYXkpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlclRhYmxlLmg6CisgICAgICAgIChSZW5kZXJUYWJsZSk6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJUYWJsZUNlbGw6OmNyZWF0ZUFub255bW91c1dpdGhQYXJlbnRSZW5kZXJlckFuZERpc3Bs
YXkpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxl
Q2VsbC5oOgorICAgICAgICAoUmVuZGVyVGFibGVDZWxsKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyVGFibGVSb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGVSb3c6OmFk
ZENoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlUm93OjpjcmVhdGVBbm9ueW1v
dXNXaXRoUGFyZW50UmVuZGVyZXJBbmREaXNwbGF5KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJUYWJsZVJvdy5oOgorICAgICAgICAoUmVuZGVyVGFibGVS
b3cpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyVGFibGVTZWN0aW9uOjphZGRDaGlsZCk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJUYWJsZVNlY3Rpb246OmNyZWF0ZUFub255bW91c1dpdGhQYXJlbnRSZW5kZXJl
ckFuZERpc3BsYXkpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlclRhYmxlU2VjdGlvbi5oOgorICAgICAgICAoUmVuZGVyVGFibGVTZWN0aW9uKToKKwogMjAx
Mi0wNC0wMyAgSnVsaWVuIENoYWZmcmFpeCAgPGpjaGFmZnJhaXhAd2Via2l0Lm9yZz4KIAogICAg
ICAgICBwcmVzZW50YXRpb25BdHRyaWJ1dGVDYWNoZU1heGltdW1TaXplIGlzIHNldCB0b28gbG93
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAppbmRleCA4MDMxOTBkZjFh
YmVhYzdmYzQxMTc0ZTAwZjNmYzQ4NjY3Y2Y2NDcyLi5hMWVhYTk1MTI2OGI2NDc1N2JiZDc4ZTFh
NzBlMDQ1MDdhNmNmY2E5IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5j
cHAKQEAgLTc4MSw3ICs3ODEsNyBAQCBSZW5kZXJPYmplY3QqIFJlbmRlckJsb2NrOjpzcGxpdFRh
YmxlUGFydHNBcm91bmRDaGlsZChSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkKQogCiAgICAgICAg
ICAgICAvLyBDcmVhdGUgYW4gYW5vbnltb3VzIHRhYmxlIGNvbnRhaW5lciBuZXh0IHRvIG91ciB0
YWJsZSBjb250YWluZXIuCiAgICAgICAgICAgICBSZW5kZXJCbG9jayogcGFyZW50QmxvY2sgPSB0
b1JlbmRlckJsb2NrKHRhYmxlLT5wYXJlbnQoKSk7Ci0gICAgICAgICAgICBSZW5kZXJUYWJsZSog
cG9zdFRhYmxlID0gcGFyZW50QmxvY2stPmNyZWF0ZUFub255bW91c1RhYmxlKCk7CisgICAgICAg
ICAgICBSZW5kZXJUYWJsZSogcG9zdFRhYmxlID0gUmVuZGVyVGFibGU6OmNyZWF0ZUFub255bW91
c1dpdGhQYXJlbnRSZW5kZXJlcihwYXJlbnRCbG9jayk7CiAgICAgICAgICAgICBwYXJlbnRCbG9j
ay0+Y2hpbGRyZW4oKS0+aW5zZXJ0Q2hpbGROb2RlKHBhcmVudEJsb2NrLCBwb3N0VGFibGUsIHRh
YmxlLT5uZXh0U2libGluZygpKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgLy8gTW92ZSBh
bGwgdGhlIGNoaWxkcmVuIGZyb20gYmVmb3JlQ2hpbGQgdG8gdGhlIG5ld2x5IGNyZWF0ZWQgYW5v
bnltb3VzIHRhYmxlIGNvbnRhaW5lci4KQEAgLTY2NzUsNTIgKzY2NzUsMTMgQEAgdm9pZCBSZW5k
ZXJCbG9jazo6YWRkRm9jdXNSaW5nUmVjdHMoVmVjdG9yPEludFJlY3Q+JiByZWN0cywgY29uc3Qg
TGF5b3V0UG9pbnQmIGEKICAgICAgICAgaW5saW5lRWxlbWVudENvbnRpbnVhdGlvbigpLT5hZGRG
b2N1c1JpbmdSZWN0cyhyZWN0cywgZmxvb3JlZExheW91dFBvaW50KGFkZGl0aW9uYWxPZmZzZXQg
KyBpbmxpbmVFbGVtZW50Q29udGludWF0aW9uKCktPmNvbnRhaW5pbmdCbG9jaygpLT5sb2NhdGlv
bigpIC0gbG9jYXRpb24oKSkpOwogfQogCi1SZW5kZXJCbG9jayogUmVuZGVyQmxvY2s6OmNyZWF0
ZUFub255bW91c0Jsb2NrKGJvb2wgaXNGbGV4aWJsZUJveCkgY29uc3QKLXsKLSAgICBSZWZQdHI8
UmVuZGVyU3R5bGU+IG5ld1N0eWxlID0gUmVuZGVyU3R5bGU6OmNyZWF0ZUFub255bW91c1N0eWxl
KHN0eWxlKCkpOwotCi0gICAgUmVuZGVyQmxvY2sqIG5ld0JveCA9IDA7Ci0gICAgaWYgKGlzRmxl
eGlibGVCb3gpIHsKLSAgICAgICAgbmV3U3R5bGUtPnNldERpc3BsYXkoQk9YKTsKLSAgICAgICAg
bmV3Qm94ID0gbmV3IChyZW5kZXJBcmVuYSgpKSBSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3go
ZG9jdW1lbnQoKSAvKiBhbm9ueW1vdXMgYm94ICovKTsKLSAgICB9IGVsc2UgewotICAgICAgICBu
ZXdTdHlsZS0+c2V0RGlzcGxheShCTE9DSyk7Ci0gICAgICAgIG5ld0JveCA9IG5ldyAocmVuZGVy
QXJlbmEoKSkgUmVuZGVyQmxvY2soZG9jdW1lbnQoKSAvKiBhbm9ueW1vdXMgYm94ICovKTsKLSAg
ICB9Ci0KLSAgICBuZXdCb3gtPnNldFN0eWxlKG5ld1N0eWxlLnJlbGVhc2UoKSk7Ci0gICAgcmV0
dXJuIG5ld0JveDsKLX0KLQogUmVuZGVyQmxvY2sqIFJlbmRlckJsb2NrOjpjcmVhdGVBbm9ueW1v
dXNCbG9ja1dpdGhTYW1lVHlwZUFzKFJlbmRlckJsb2NrKiBvdGhlckFub255bW91c0Jsb2NrKSBj
b25zdAogewogICAgIGlmIChvdGhlckFub255bW91c0Jsb2NrLT5pc0Fub255bW91c0NvbHVtbnNC
bG9jaygpKQogICAgICAgICByZXR1cm4gY3JlYXRlQW5vbnltb3VzQ29sdW1uc0Jsb2NrKCk7CiAg
ICAgaWYgKG90aGVyQW5vbnltb3VzQmxvY2stPmlzQW5vbnltb3VzQ29sdW1uU3BhbkJsb2NrKCkp
CiAgICAgICAgIHJldHVybiBjcmVhdGVBbm9ueW1vdXNDb2x1bW5TcGFuQmxvY2soKTsKLSAgICBy
ZXR1cm4gY3JlYXRlQW5vbnltb3VzQmxvY2sob3RoZXJBbm9ueW1vdXNCbG9jay0+c3R5bGUoKS0+
ZGlzcGxheSgpID09IEJPWCk7Ci19Ci0KLVJlbmRlckJsb2NrKiBSZW5kZXJCbG9jazo6Y3JlYXRl
QW5vbnltb3VzQ29sdW1uc0Jsb2NrKCkgY29uc3QKLXsKLSAgICBSZWZQdHI8UmVuZGVyU3R5bGU+
IG5ld1N0eWxlID0gUmVuZGVyU3R5bGU6OmNyZWF0ZUFub255bW91c1N0eWxlKHN0eWxlKCkpOwot
ICAgIG5ld1N0eWxlLT5pbmhlcml0Q29sdW1uUHJvcGVydGllc0Zyb20oc3R5bGUoKSk7Ci0gICAg
bmV3U3R5bGUtPnNldERpc3BsYXkoQkxPQ0spOwotCi0gICAgUmVuZGVyQmxvY2sqIG5ld0JveCA9
IG5ldyAocmVuZGVyQXJlbmEoKSkgUmVuZGVyQmxvY2soZG9jdW1lbnQoKSAvKiBhbm9ueW1vdXMg
Ym94ICovKTsKLSAgICBuZXdCb3gtPnNldFN0eWxlKG5ld1N0eWxlLnJlbGVhc2UoKSk7Ci0gICAg
cmV0dXJuIG5ld0JveDsKLX0KLQotUmVuZGVyQmxvY2sqIFJlbmRlckJsb2NrOjpjcmVhdGVBbm9u
eW1vdXNDb2x1bW5TcGFuQmxvY2soKSBjb25zdAotewotICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4g
bmV3U3R5bGUgPSBSZW5kZXJTdHlsZTo6Y3JlYXRlQW5vbnltb3VzU3R5bGUoc3R5bGUoKSk7Ci0g
ICAgbmV3U3R5bGUtPnNldENvbHVtblNwYW4oQ29sdW1uU3BhbkFsbCk7Ci0gICAgbmV3U3R5bGUt
PnNldERpc3BsYXkoQkxPQ0spOwotCi0gICAgUmVuZGVyQmxvY2sqIG5ld0JveCA9IG5ldyAocmVu
ZGVyQXJlbmEoKSkgUmVuZGVyQmxvY2soZG9jdW1lbnQoKSAvKiBhbm9ueW1vdXMgYm94ICovKTsK
LSAgICBuZXdCb3gtPnNldFN0eWxlKG5ld1N0eWxlLnJlbGVhc2UoKSk7Ci0gICAgcmV0dXJuIG5l
d0JveDsKKyAgICByZXR1cm4gY3JlYXRlQW5vbnltb3VzQmxvY2sob3RoZXJBbm9ueW1vdXNCbG9j
ay0+c3R5bGUoKS0+ZGlzcGxheSgpKTsKIH0KIAogYm9vbCBSZW5kZXJCbG9jazo6aGFzTmV4dFBh
Z2UoTGF5b3V0VW5pdCBsb2dpY2FsT2Zmc2V0LCBQYWdlQm91bmRhcnlSdWxlIHBhZ2VCb3VuZGFy
eVJ1bGUpIGNvbnN0CkBAIC03NDUzLDYgKzc0MTQsNDcgQEAgVGV4dFJ1biBSZW5kZXJCbG9jazo6
Y29uc3RydWN0VGV4dFJ1bihSZW5kZXJPYmplY3QqIGNvbnRleHQsIGNvbnN0IEZvbnQmIGZvbnQs
IGMKICAgICByZXR1cm4gY29uc3RydWN0VGV4dFJ1bihjb250ZXh0LCBmb250LCBzdHJpbmcuY2hh
cmFjdGVycygpLCBzdHJpbmcubGVuZ3RoKCksIHN0eWxlLCBleHBhbnNpb24sIGZsYWdzKTsKIH0K
IAorUmVuZGVyQmxvY2sqIFJlbmRlckJsb2NrOjpjcmVhdGVBbm9ueW1vdXNXaXRoUGFyZW50UmVu
ZGVyZXJBbmREaXNwbGF5KGNvbnN0IFJlbmRlck9iamVjdCogcGFyZW50LCBFRGlzcGxheSBkaXNw
bGF5KQoreworICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gbmV3U3R5bGUgPSBSZW5kZXJTdHlsZTo6
Y3JlYXRlQW5vbnltb3VzU3R5bGUocGFyZW50LT5zdHlsZSgpKTsKKworICAgIC8vIEZJWE1FOiBE
byB3ZSBuZWVkIHRvIGNvdmVyIHRoZSBuZXcgZmxleCBib3ggaGVyZSA/CisgICAgLy8gRklYTUU6
IERvIHdlIG5lZWQgdG8gY29udmVydCBhbGwgb3VyIGlubGluZSBkaXNwbGF5cyB0byBibG9jay10
eXBlIGluIHRoZSBhbm9ueW1vdXMgbG9naWMgPworICAgIFJlbmRlckJsb2NrKiBuZXdCb3ggPSAw
OworICAgIGlmIChkaXNwbGF5ID09IEJPWCB8fCBkaXNwbGF5ID09IElOTElORV9CT1gpIHsKKyAg
ICAgICAgbmV3U3R5bGUtPnNldERpc3BsYXkoQk9YKTsKKyAgICAgICAgbmV3Qm94ID0gbmV3IChw
YXJlbnQtPnJlbmRlckFyZW5hKCkpIFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveChwYXJlbnQt
PmRvY3VtZW50KCkgLyogYW5vbnltb3VzIGJveCAqLyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAg
bmV3U3R5bGUtPnNldERpc3BsYXkoQkxPQ0spOworICAgICAgICBuZXdCb3ggPSBuZXcgKHBhcmVu
dC0+cmVuZGVyQXJlbmEoKSkgUmVuZGVyQmxvY2socGFyZW50LT5kb2N1bWVudCgpIC8qIGFub255
bW91cyBib3ggKi8pOworICAgIH0KKworICAgIG5ld0JveC0+c2V0U3R5bGUobmV3U3R5bGUucmVs
ZWFzZSgpKTsKKyAgICByZXR1cm4gbmV3Qm94OworfQorCitSZW5kZXJCbG9jayogUmVuZGVyQmxv
Y2s6OmNyZWF0ZUFub255bW91c0NvbHVtbnNXaXRoUGFyZW50UmVuZGVyZXIoY29uc3QgUmVuZGVy
T2JqZWN0KiBwYXJlbnQpCit7CisgICAgUmVmUHRyPFJlbmRlclN0eWxlPiBuZXdTdHlsZSA9IFJl
bmRlclN0eWxlOjpjcmVhdGVBbm9ueW1vdXNTdHlsZShwYXJlbnQtPnN0eWxlKCkpOworICAgIG5l
d1N0eWxlLT5pbmhlcml0Q29sdW1uUHJvcGVydGllc0Zyb20ocGFyZW50LT5zdHlsZSgpKTsKKyAg
ICBuZXdTdHlsZS0+c2V0RGlzcGxheShCTE9DSyk7CisKKyAgICBSZW5kZXJCbG9jayogbmV3Qm94
ID0gbmV3IChwYXJlbnQtPnJlbmRlckFyZW5hKCkpIFJlbmRlckJsb2NrKHBhcmVudC0+ZG9jdW1l
bnQoKSAvKiBhbm9ueW1vdXMgYm94ICovKTsKKyAgICBuZXdCb3gtPnNldFN0eWxlKG5ld1N0eWxl
LnJlbGVhc2UoKSk7CisgICAgcmV0dXJuIG5ld0JveDsKK30KKworUmVuZGVyQmxvY2sqIFJlbmRl
ckJsb2NrOjpjcmVhdGVBbm9ueW1vdXNDb2x1bW5TcGFuV2l0aFBhcmVudFJlbmRlcmVyKGNvbnN0
IFJlbmRlck9iamVjdCogcGFyZW50KQoreworICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gbmV3U3R5
bGUgPSBSZW5kZXJTdHlsZTo6Y3JlYXRlQW5vbnltb3VzU3R5bGUocGFyZW50LT5zdHlsZSgpKTsK
KyAgICBuZXdTdHlsZS0+c2V0Q29sdW1uU3BhbihDb2x1bW5TcGFuQWxsKTsKKyAgICBuZXdTdHls
ZS0+c2V0RGlzcGxheShCTE9DSyk7CisKKyAgICBSZW5kZXJCbG9jayogbmV3Qm94ID0gbmV3IChw
YXJlbnQtPnJlbmRlckFyZW5hKCkpIFJlbmRlckJsb2NrKHBhcmVudC0+ZG9jdW1lbnQoKSAvKiBh
bm9ueW1vdXMgYm94ICovKTsKKyAgICBuZXdCb3gtPnNldFN0eWxlKG5ld1N0eWxlLnJlbGVhc2Uo
KSk7CisgICAgcmV0dXJuIG5ld0JveDsKK30KKwogI2lmbmRlZiBOREVCVUcKIAogdm9pZCBSZW5k
ZXJCbG9jazo6c2hvd0xpbmVUcmVlQW5kTWFyayhjb25zdCBJbmxpbmVCb3gqIG1hcmtlZEJveDEs
IGNvbnN0IGNoYXIqIG1hcmtlZExhYmVsMSwgY29uc3QgSW5saW5lQm94KiBtYXJrZWRCb3gyLCBj
b25zdCBjaGFyKiBtYXJrZWRMYWJlbDIsIGNvbnN0IFJlbmRlck9iamVjdCogb2JqKSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaAppbmRleCA5NzdhOTliNDBhYzk1Y2Nm
YmM2NjMwY2I0YjRmOGVkMWJiMWQ1NjFkLi44ZmMzNTExNGMxMzUwNTNiYWQzYWQyMTZmMzg1MzM4
MTI5MGI1MWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxv
Y2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaApAQCAtMjMz
LDExICsyMzMsMTMgQEAgcHVibGljOgogICAgIHVzaW5nIFJlbmRlckJveE1vZGVsT2JqZWN0Ojpj
b250aW51YXRpb247CiAgICAgdXNpbmcgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnNldENvbnRpbnVh
dGlvbjsKIAotICAgIC8vIFRoaXMgZnVuY3Rpb24gaXMgYSBjb252ZW5pZW5jZSBoZWxwZXIgZm9y
IGNyZWF0aW5nIGFuIGFub255bW91cyBibG9jayB0aGF0IGluaGVyaXRzIGl0cwotICAgIC8vIHN0
eWxlIGZyb20gdGhpcyBSZW5kZXJCbG9jay4KLSAgICBSZW5kZXJCbG9jayogY3JlYXRlQW5vbnlt
b3VzQmxvY2soYm9vbCBpc0ZsZXhpYmxlQm94ID0gZmFsc2UpIGNvbnN0OwotICAgIFJlbmRlckJs
b2NrKiBjcmVhdGVBbm9ueW1vdXNDb2x1bW5zQmxvY2soKSBjb25zdDsKLSAgICBSZW5kZXJCbG9j
ayogY3JlYXRlQW5vbnltb3VzQ29sdW1uU3BhbkJsb2NrKCkgY29uc3Q7CisgICAgc3RhdGljIFJl
bmRlckJsb2NrKiBjcmVhdGVBbm9ueW1vdXNXaXRoUGFyZW50UmVuZGVyZXJBbmREaXNwbGF5KGNv
bnN0IFJlbmRlck9iamVjdCosIEVEaXNwbGF5ID0gQkxPQ0spOworICAgIHN0YXRpYyBSZW5kZXJC
bG9jayogY3JlYXRlQW5vbnltb3VzQ29sdW1uc1dpdGhQYXJlbnRSZW5kZXJlcihjb25zdCBSZW5k
ZXJPYmplY3QqKTsKKyAgICBzdGF0aWMgUmVuZGVyQmxvY2sqIGNyZWF0ZUFub255bW91c0NvbHVt
blNwYW5XaXRoUGFyZW50UmVuZGVyZXIoY29uc3QgUmVuZGVyT2JqZWN0Kik7CisgICAgUmVuZGVy
QmxvY2sqIGNyZWF0ZUFub255bW91c0Jsb2NrKEVEaXNwbGF5IGRpc3BsYXkgPSBCTE9DSykgY29u
c3QgeyByZXR1cm4gY3JlYXRlQW5vbnltb3VzV2l0aFBhcmVudFJlbmRlcmVyQW5kRGlzcGxheSh0
aGlzLCBkaXNwbGF5KTsgfQorICAgIFJlbmRlckJsb2NrKiBjcmVhdGVBbm9ueW1vdXNDb2x1bW5z
QmxvY2soKSBjb25zdCB7IHJldHVybiBjcmVhdGVBbm9ueW1vdXNDb2x1bW5zV2l0aFBhcmVudFJl
bmRlcmVyKHRoaXMpOyB9CisgICAgUmVuZGVyQmxvY2sqIGNyZWF0ZUFub255bW91c0NvbHVtblNw
YW5CbG9jaygpIGNvbnN0IHsgcmV0dXJuIGNyZWF0ZUFub255bW91c0NvbHVtblNwYW5XaXRoUGFy
ZW50UmVuZGVyZXIodGhpcyk7IH0KKwogICAgIFJlbmRlckJsb2NrKiBjcmVhdGVBbm9ueW1vdXNC
bG9ja1dpdGhTYW1lVHlwZUFzKFJlbmRlckJsb2NrKiBvdGhlckFub255bW91c0Jsb2NrKSBjb25z
dDsKICAgICAKICAgICBzdGF0aWMgdm9pZCBhcHBlbmRSdW5zRm9yT2JqZWN0KEJpZGlSdW5MaXN0
PEJpZGlSdW4+JiwgaW50IHN0YXJ0LCBpbnQgZW5kLCBSZW5kZXJPYmplY3QqLCBJbmxpbmVCaWRp
UmVzb2x2ZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
dXR0b24uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJ1dHRvbi5jcHAKaW5k
ZXggMzgwYzVkYTM1YzZlN2U2ZWMxMGExNDQ4ODkyYzA2ODQ2N2I1MjY5YS4uNTQ3N2Y5ZTUwODA1
OTU2OTI3ZGY5M2U2MTZkY2UwNGJmY2MyOTRmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJ1dHRvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJ1dHRvbi5jcHAKQEAgLTQ5LDggKzQ5LDcgQEAgdm9pZCBSZW5kZXJCdXR0b246OmFk
ZENoaWxkKFJlbmRlck9iamVjdCogbmV3Q2hpbGQsIFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQp
CiAgICAgaWYgKCFtX2lubmVyKSB7CiAgICAgICAgIC8vIENyZWF0ZSBhbiBhbm9ueW1vdXMgYmxv
Y2suCiAgICAgICAgIEFTU0VSVCghZmlyc3RDaGlsZCgpKTsKLSAgICAgICAgYm9vbCBpc0ZsZXhp
YmxlQm94ID0gc3R5bGUoKS0+ZGlzcGxheSgpID09IEJPWCB8fCBzdHlsZSgpLT5kaXNwbGF5KCkg
PT0gSU5MSU5FX0JPWDsKLSAgICAgICAgbV9pbm5lciA9IGNyZWF0ZUFub255bW91c0Jsb2NrKGlz
RmxleGlibGVCb3gpOworICAgICAgICBtX2lubmVyID0gY3JlYXRlQW5vbnltb3VzQmxvY2soc3R5
bGUoKS0+ZGlzcGxheSgpKTsKICAgICAgICAgc2V0dXBJbm5lclN0eWxlKG1faW5uZXItPnN0eWxl
KCkpOwogICAgICAgICBSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3g6OmFkZENoaWxkKG1faW5u
ZXIpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJP
YmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKaW5k
ZXggZDY0ODRjOGRjYmZjZDNlNTg4ZTc3NzgwMGViNTE1MThjYjA3NTA1My4uNGI0OTYyNWJlMDkx
ZDJkYTExNmY5OTQwMDhlY2JjYjg4ZDhiZGVjMSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck9iamVjdC5jcHAKQEAgLTI2OSwxNiArMjY5LDYgQEAgc3RhdGljIGJvb2wgaXNCZWZv
cmVBZnRlckNvbnRlbnRHZW5lcmF0ZWRCeUFuY2VzdG9yKFJlbmRlck9iamVjdCogcmVuZGVyZXIs
IFJlbmQKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLVJlbmRlclRhYmxlKiBSZW5kZXJPYmplY3Q6
OmNyZWF0ZUFub255bW91c1RhYmxlKCkgY29uc3QKLXsKLSAgICBSZWZQdHI8UmVuZGVyU3R5bGU+
IG5ld1N0eWxlID0gUmVuZGVyU3R5bGU6OmNyZWF0ZUFub255bW91c1N0eWxlKHN0eWxlKCkpOwot
ICAgIG5ld1N0eWxlLT5zZXREaXNwbGF5KFRBQkxFKTsKLQotICAgIFJlbmRlclRhYmxlKiB0YWJs
ZSA9IG5ldyAocmVuZGVyQXJlbmEoKSkgUmVuZGVyVGFibGUoZG9jdW1lbnQoKSAvKiBpcyBhbm9u
eW1vdXMgKi8pOwotICAgIHRhYmxlLT5zZXRTdHlsZShuZXdTdHlsZS5yZWxlYXNlKCkpOwotICAg
IHJldHVybiB0YWJsZTsKLX0KLQogdm9pZCBSZW5kZXJPYmplY3Q6OmFkZENoaWxkKFJlbmRlck9i
amVjdCogbmV3Q2hpbGQsIFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQpCiB7CiAgICAgUmVuZGVy
T2JqZWN0Q2hpbGRMaXN0KiBjaGlsZHJlbiA9IHZpcnR1YWxDaGlsZHJlbigpOwpAQCAtMzIzLDcg
KzMxMyw3IEBAIHZvaWQgUmVuZGVyT2JqZWN0OjphZGRDaGlsZChSZW5kZXJPYmplY3QqIG5ld0No
aWxkLCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkKQogICAgICAgICBpZiAoYWZ0ZXJDaGlsZCAm
JiBhZnRlckNoaWxkLT5pc0Fub255bW91cygpICYmIGFmdGVyQ2hpbGQtPmlzVGFibGUoKSAmJiAh
YWZ0ZXJDaGlsZC0+aXNCZWZvcmVDb250ZW50KCkpCiAgICAgICAgICAgICB0YWJsZSA9IHRvUmVu
ZGVyVGFibGUoYWZ0ZXJDaGlsZCk7CiAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgdGFibGUg
PSBjcmVhdGVBbm9ueW1vdXNUYWJsZSgpOworICAgICAgICAgICAgdGFibGUgPSBSZW5kZXJUYWJs
ZTo6Y3JlYXRlQW5vbnltb3VzV2l0aFBhcmVudFJlbmRlcmVyKHRoaXMpOwogICAgICAgICAgICAg
YWRkQ2hpbGQodGFibGUsIGJlZm9yZUNoaWxkKTsKICAgICAgICAgfQogICAgICAgICB0YWJsZS0+
YWRkQ2hpbGQobmV3Q2hpbGQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5o
CmluZGV4IDU2YjZkMWMwNWU3NTY5NDY0NDU1MDA0ZWU2MjU1YjNkZWU1NmMyMWUuLmFjNzBkMTNh
ZDliNDIyMjliMTRlYWUwMGRkNjIxZGNmZDQ3MGEwZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyT2JqZWN0LmgKQEAgLTIyNiw4ICsyMjYsNiBAQCBwdWJsaWM6CiAgICAgLy8gbm9y
bWFsIGZsb3cgb2JqZWN0LgogICAgIHZvaWQgaGFuZGxlRHluYW1pY0Zsb2F0UG9zaXRpb25DaGFu
Z2UoKTsKICAgICAKLSAgICBSZW5kZXJUYWJsZSogY3JlYXRlQW5vbnltb3VzVGFibGUoKSBjb25z
dDsKLSAgICAKICAgICAvLyBSZW5kZXJPYmplY3QgdHJlZSBtYW5pcHVsYXRpb24KICAgICAvLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KICAgICB2aXJ0dWFsIGJvb2wg
Y2FuSGF2ZUNoaWxkcmVuKCkgY29uc3QgeyByZXR1cm4gdmlydHVhbENoaWxkcmVuKCk7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwCmluZGV4IGFiZjdlYzM5N2ZlODIx
ZTdiYjUwMGVkNWUzMzYyZGM0ZjU1M2Q1OTAuLmJkNTYwN2ZmNGIzZmYxYzc4MDlmZjgwMWUyMTNk
ZDFhN2FkZjdjYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
YWJsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcApA
QCAtMTkyLDExICsxOTIsOCBAQCB2b2lkIFJlbmRlclRhYmxlOjphZGRDaGlsZChSZW5kZXJPYmpl
Y3QqIGNoaWxkLCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkKQogCiAgICAgaWYgKGJlZm9yZUNo
aWxkICYmICFiZWZvcmVDaGlsZC0+aXNUYWJsZVNlY3Rpb24oKSAmJiBiZWZvcmVDaGlsZC0+c3R5
bGUoKS0+ZGlzcGxheSgpICE9IFRBQkxFX0NBUFRJT04gJiYgYmVmb3JlQ2hpbGQtPnN0eWxlKCkt
PmRpc3BsYXkoKSAhPSBUQUJMRV9DT0xVTU5fR1JPVVApCiAgICAgICAgIGJlZm9yZUNoaWxkID0g
MDsKLSAgICBSZW5kZXJUYWJsZVNlY3Rpb24qIHNlY3Rpb24gPSBuZXcgKHJlbmRlckFyZW5hKCkp
IFJlbmRlclRhYmxlU2VjdGlvbihkb2N1bWVudCgpIC8qIGFub255bW91cyAqLyk7Ci0gICAgUmVm
UHRyPFJlbmRlclN0eWxlPiBuZXdTdHlsZSA9IFJlbmRlclN0eWxlOjpjcmVhdGUoKTsKLSAgICBu
ZXdTdHlsZS0+aW5oZXJpdEZyb20oc3R5bGUoKSk7Ci0gICAgbmV3U3R5bGUtPnNldERpc3BsYXko
VEFCTEVfUk9XX0dST1VQKTsKLSAgICBzZWN0aW9uLT5zZXRTdHlsZShuZXdTdHlsZS5yZWxlYXNl
KCkpOworCisgICAgUmVuZGVyVGFibGVTZWN0aW9uKiBzZWN0aW9uID0gUmVuZGVyVGFibGVTZWN0
aW9uOjpjcmVhdGVBbm9ueW1vdXNXaXRoUGFyZW50UmVuZGVyZXIodGhpcyk7CiAgICAgYWRkQ2hp
bGQoc2VjdGlvbiwgYmVmb3JlQ2hpbGQpOwogICAgIHNlY3Rpb24tPmFkZENoaWxkKGNoaWxkKTsK
IH0KQEAgLTEyODAsNCArMTI3NywxNCBAQCBib29sIFJlbmRlclRhYmxlOjpub2RlQXRQb2ludChj
b25zdCBIaXRUZXN0UmVxdWVzdCYgcmVxdWVzdCwgSGl0VGVzdFJlc3VsdCYgcmVzdQogICAgIHJl
dHVybiBmYWxzZTsKIH0KIAorUmVuZGVyVGFibGUqIFJlbmRlclRhYmxlOjpjcmVhdGVBbm9ueW1v
dXNXaXRoUGFyZW50UmVuZGVyZXIoY29uc3QgUmVuZGVyT2JqZWN0KiBwYXJlbnQpCit7CisgICAg
UmVmUHRyPFJlbmRlclN0eWxlPiBuZXdTdHlsZSA9IFJlbmRlclN0eWxlOjpjcmVhdGVBbm9ueW1v
dXNTdHlsZShwYXJlbnQtPnN0eWxlKCkpOworICAgIG5ld1N0eWxlLT5zZXREaXNwbGF5KFRBQkxF
KTsKKworICAgIFJlbmRlclRhYmxlKiBuZXdUYWJsZSA9IG5ldyAocGFyZW50LT5yZW5kZXJBcmVu
YSgpKSBSZW5kZXJUYWJsZShwYXJlbnQtPmRvY3VtZW50KCkgLyogaXMgYW5vbnltb3VzICovKTsK
KyAgICBuZXdUYWJsZS0+c2V0U3R5bGUobmV3U3R5bGUucmVsZWFzZSgpKTsKKyAgICByZXR1cm4g
bmV3VGFibGU7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUYWJsZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmgKaW5k
ZXggYmMzMDlmNmI4NDY5NzU4N2JlYmUyZWM1YzE5NTZlOGU2NGZlZTkyYi4uNjM5NDU5Y2ZjNjYx
YmM2ZDRjMDk2YjczY2MyNDVhNzcxZjZkODYyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRhYmxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRhYmxlLmgKQEAgLTIxMSw2ICsyMTEsOCBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZWNh
bGNTZWN0aW9ucygpOwogICAgIH0KIAorICAgIHN0YXRpYyBSZW5kZXJUYWJsZSogY3JlYXRlQW5v
bnltb3VzV2l0aFBhcmVudFJlbmRlcmVyKGNvbnN0IFJlbmRlck9iamVjdCopOworCiBwcm90ZWN0
ZWQ6CiAgICAgdmlydHVhbCB2b2lkIHN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29u
c3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGFibGVDZWxsLmNwcAppbmRleCAxMzk2MTVhODhhN2Q3Njc2ZWMwNGZhYjE1NGZiMjdj
MzZiMzEzODI4Li45MTIzMjU1NWMyM2IyODQ3NDAxZmFkYzJlMTAwOTkzNjRkZmZlMDliIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNwcApAQCAtMTExNyw0
ICsxMTE3LDE0IEBAIHZvaWQgUmVuZGVyVGFibGVDZWxsOjpzY3JvbGxiYXJzQ2hhbmdlZChib29s
IGhvcml6b250YWxTY3JvbGxiYXJDaGFuZ2VkLCBib29sIHZlCiAgICAgICAgIHNldEludHJpbnNp
Y1BhZGRpbmdBZnRlcihpbnRyaW5zaWNQYWRkaW5nQWZ0ZXIoKSAtIHNjcm9sbGJhckhlaWdodCk7
CiB9CiAKK1JlbmRlclRhYmxlQ2VsbCogUmVuZGVyVGFibGVDZWxsOjpjcmVhdGVBbm9ueW1vdXNX
aXRoUGFyZW50UmVuZGVyZXIoY29uc3QgUmVuZGVyT2JqZWN0KiBwYXJlbnQpCit7CisgICAgUmVm
UHRyPFJlbmRlclN0eWxlPiBuZXdTdHlsZSA9IFJlbmRlclN0eWxlOjpjcmVhdGVBbm9ueW1vdXNT
dHlsZShwYXJlbnQtPnN0eWxlKCkpOworICAgIG5ld1N0eWxlLT5zZXREaXNwbGF5KFRBQkxFX0NF
TEwpOworCisgICAgUmVuZGVyVGFibGVDZWxsKiBuZXdDZWxsID0gbmV3IChwYXJlbnQtPnJlbmRl
ckFyZW5hKCkpIFJlbmRlclRhYmxlQ2VsbChwYXJlbnQtPmRvY3VtZW50KCkgLyogaXMgYW5vbnlt
b3VzICovKTsKKyAgICBuZXdDZWxsLT5zZXRTdHlsZShuZXdTdHlsZS5yZWxlYXNlKCkpOworICAg
IHJldHVybiBuZXdDZWxsOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmgKaW5kZXggZTE4MzcyYWM1MmViYTAxODQ0
YjM2MDAyMjZjOTBiYjQxMmY4MDJkMC4uZDNhOWVlOWNhMzVhNWViMGRlNTVlY2VjNDk3NDQ4MTc0
OGYzZjc1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxl
Q2VsbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuaApA
QCAtMTM4LDYgKzEzOCw4IEBAIHB1YmxpYzoKICAgICBib29sIGNlbGxXaWR0aENoYW5nZWQoKSBj
b25zdCB7IHJldHVybiBtX2NlbGxXaWR0aENoYW5nZWQ7IH0KICAgICB2b2lkIHNldENlbGxXaWR0
aENoYW5nZWQoYm9vbCBiID0gdHJ1ZSkgeyBtX2NlbGxXaWR0aENoYW5nZWQgPSBiOyB9CiAKKyAg
ICBzdGF0aWMgUmVuZGVyVGFibGVDZWxsKiBjcmVhdGVBbm9ueW1vdXNXaXRoUGFyZW50UmVuZGVy
ZXIoY29uc3QgUmVuZGVyT2JqZWN0Kik7CisKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQg
c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5
bGUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVS
b3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlUm93LmNwcAppbmRl
eCAxYWQ4Mzc4ZDFlNzZkYjU1NWNiMmIzNTA2Mzg4YTQzZjAzZDJiOTc0Li4wOTMxYzBiZDVhMTEz
NjM4ZDQxYjA0ZWFhMDVkMGU4ODhjNGIyZDJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGFibGVSb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUYWJsZVJvdy5jcHAKQEAgLTExMywxMSArMTEzLDcgQEAgdm9pZCBSZW5kZXJUYWJs
ZVJvdzo6YWRkQ2hpbGQoUmVuZGVyT2JqZWN0KiBjaGlsZCwgUmVuZGVyT2JqZWN0KiBiZWZvcmVD
aGlsZCkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIFJlbmRlclRh
YmxlQ2VsbCogY2VsbCA9IG5ldyAocmVuZGVyQXJlbmEoKSkgUmVuZGVyVGFibGVDZWxsKGRvY3Vt
ZW50KCkgLyogYW5vbnltb3VzIG9iamVjdCAqLyk7Ci0gICAgICAgIFJlZlB0cjxSZW5kZXJTdHls
ZT4gbmV3U3R5bGUgPSBSZW5kZXJTdHlsZTo6Y3JlYXRlKCk7Ci0gICAgICAgIG5ld1N0eWxlLT5p
bmhlcml0RnJvbShzdHlsZSgpKTsKLSAgICAgICAgbmV3U3R5bGUtPnNldERpc3BsYXkoVEFCTEVf
Q0VMTCk7Ci0gICAgICAgIGNlbGwtPnNldFN0eWxlKG5ld1N0eWxlLnJlbGVhc2UoKSk7CisgICAg
ICAgIFJlbmRlclRhYmxlQ2VsbCogY2VsbCA9IFJlbmRlclRhYmxlQ2VsbDo6Y3JlYXRlQW5vbnlt
b3VzV2l0aFBhcmVudFJlbmRlcmVyKHRoaXMpOwogICAgICAgICBhZGRDaGlsZChjZWxsLCBiZWZv
cmVDaGlsZCk7CiAgICAgICAgIGNlbGwtPmFkZENoaWxkKGNoaWxkKTsKICAgICAgICAgcmV0dXJu
OwpAQCAtMjQ5LDQgKzI0NSwxNCBAQCB2b2lkIFJlbmRlclRhYmxlUm93OjppbWFnZUNoYW5nZWQo
V3JhcHBlZEltYWdlUHRyLCBjb25zdCBJbnRSZWN0KikKICAgICByZXBhaW50KCk7CiB9CiAKK1Jl
bmRlclRhYmxlUm93KiBSZW5kZXJUYWJsZVJvdzo6Y3JlYXRlQW5vbnltb3VzV2l0aFBhcmVudFJl
bmRlcmVyKGNvbnN0IFJlbmRlck9iamVjdCogcGFyZW50KQoreworICAgIFJlZlB0cjxSZW5kZXJT
dHlsZT4gbmV3U3R5bGUgPSBSZW5kZXJTdHlsZTo6Y3JlYXRlQW5vbnltb3VzU3R5bGUocGFyZW50
LT5zdHlsZSgpKTsKKyAgICBuZXdTdHlsZS0+c2V0RGlzcGxheShUQUJMRV9ST1cpOworCisgICAg
UmVuZGVyVGFibGVSb3cqIG5ld1JvdyA9IG5ldyAocGFyZW50LT5yZW5kZXJBcmVuYSgpKSBSZW5k
ZXJUYWJsZVJvdyhwYXJlbnQtPmRvY3VtZW50KCkgLyogaXMgYW5vbnltb3VzICovKTsKKyAgICBu
ZXdSb3ctPnNldFN0eWxlKG5ld1N0eWxlLnJlbGVhc2UoKSk7CisgICAgcmV0dXJuIG5ld1JvdzsK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRhYmxlUm93LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGFibGVSb3cuaAppbmRleCBmNjYwZTlkMzFkM2E1MmU5MDQ5ZWViMzQ4NjY0NWI5NTdmZTk2
YTVkLi45YjkxZTFiODJjYjRiOWQ2NzJhODRlYmI4ZjRmZTU1ODIwNWE4MWMxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVSb3cuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVSb3cuaApAQCAtNDIsNiArNDIsOCBAQCBwdWJs
aWM6CiAgICAgdm9pZCB1cGRhdGVCZWZvcmVBbmRBZnRlckNvbnRlbnQoKTsKICAgICB2b2lkIHBh
aW50T3V0bGluZUZvclJvd0lmTmVlZGVkKFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50Jik7
CiAKKyAgICBzdGF0aWMgUmVuZGVyVGFibGVSb3cqIGNyZWF0ZUFub255bW91c1dpdGhQYXJlbnRS
ZW5kZXJlcihjb25zdCBSZW5kZXJPYmplY3QqKTsKKwogcHJpdmF0ZToKICAgICB2aXJ0dWFsIFJl
bmRlck9iamVjdENoaWxkTGlzdCogdmlydHVhbENoaWxkcmVuKCkgeyByZXR1cm4gY2hpbGRyZW4o
KTsgfQogICAgIHZpcnR1YWwgY29uc3QgUmVuZGVyT2JqZWN0Q2hpbGRMaXN0KiB2aXJ0dWFsQ2hp
bGRyZW4oKSBjb25zdCB7IHJldHVybiBjaGlsZHJlbigpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uY3BwCmluZGV4IDMwNmRkYTQxZjMxOGVkYTI3
MDQ0ZGY0MTQ5OTkxZTBhMzY4MmFhZjMuLmEzN2Y1NWU4ZDAwNDIzMmU2ZTA3MTUxM2ViZmY0YTQw
ZmYyNzgxZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJs
ZVNlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVNl
Y3Rpb24uY3BwCkBAIC0xNjEsMTEgKzE2MSw3IEBAIHZvaWQgUmVuZGVyVGFibGVTZWN0aW9uOjph
ZGRDaGlsZChSZW5kZXJPYmplY3QqIGNoaWxkLCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkCiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBSZW5kZXJPYmplY3QqIHJv
dyA9IG5ldyAocmVuZGVyQXJlbmEoKSkgUmVuZGVyVGFibGVSb3coZG9jdW1lbnQoKSAvKiBhbm9u
eW1vdXMgdGFibGUgcm93ICovKTsKLSAgICAgICAgUmVmUHRyPFJlbmRlclN0eWxlPiBuZXdTdHls
ZSA9IFJlbmRlclN0eWxlOjpjcmVhdGUoKTsKLSAgICAgICAgbmV3U3R5bGUtPmluaGVyaXRGcm9t
KHN0eWxlKCkpOwotICAgICAgICBuZXdTdHlsZS0+c2V0RGlzcGxheShUQUJMRV9ST1cpOwotICAg
ICAgICByb3ctPnNldFN0eWxlKG5ld1N0eWxlLnJlbGVhc2UoKSk7CisgICAgICAgIFJlbmRlck9i
amVjdCogcm93ID0gUmVuZGVyVGFibGVSb3c6OmNyZWF0ZUFub255bW91c1dpdGhQYXJlbnRSZW5k
ZXJlcih0aGlzKTsKICAgICAgICAgYWRkQ2hpbGQocm93LCBiZWZvcmVDaGlsZCk7CiAgICAgICAg
IHJvdy0+YWRkQ2hpbGQoY2hpbGQpOwogICAgICAgICByZXR1cm47CkBAIC0xNDE3LDQgKzE0MTMs
MTQgQEAgQ29sbGFwc2VkQm9yZGVyVmFsdWUmIFJlbmRlclRhYmxlU2VjdGlvbjo6Y2FjaGVkQ29s
bGFwc2VkQm9yZGVyKGNvbnN0IFJlbmRlclRhYmwKICAgICByZXR1cm4gaXQtPnNlY29uZDsKIH0K
IAorUmVuZGVyVGFibGVTZWN0aW9uKiBSZW5kZXJUYWJsZVNlY3Rpb246OmNyZWF0ZUFub255bW91
c1dpdGhQYXJlbnRSZW5kZXJlcihjb25zdCBSZW5kZXJPYmplY3QqIHBhcmVudCkKK3sKKyAgICBS
ZWZQdHI8UmVuZGVyU3R5bGU+IG5ld1N0eWxlID0gUmVuZGVyU3R5bGU6OmNyZWF0ZUFub255bW91
c1N0eWxlKHBhcmVudC0+c3R5bGUoKSk7CisgICAgbmV3U3R5bGUtPnNldERpc3BsYXkoVEFCTEVf
Uk9XX0dST1VQKTsKKworICAgIFJlbmRlclRhYmxlU2VjdGlvbiogbmV3U2VjdGlvbiA9IG5ldyAo
cGFyZW50LT5yZW5kZXJBcmVuYSgpKSBSZW5kZXJUYWJsZVNlY3Rpb24ocGFyZW50LT5kb2N1bWVu
dCgpIC8qIGlzIGFub255bW91cyAqLyk7CisgICAgbmV3U2VjdGlvbi0+c2V0U3R5bGUobmV3U3R5
bGUucmVsZWFzZSgpKTsKKyAgICByZXR1cm4gbmV3U2VjdGlvbjsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRh
YmxlU2VjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlv
bi5oCmluZGV4IGNlYjE4N2JiZDFhYTIyZDMwZTgyNTQyZWU1NzRjYWNiZGM1YWFmNTguLjExM2Zi
NGU1ZGIwMWUyZjk5MGIyZjMxOTdmZDcxNmU0NTBhMTE4ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmgKQEAgLTE2Miw2ICsxNjIsOCBAQCBwdWJs
aWM6CiAgICAgLy8gRklYTUU6IFdlIG1heSB3YW50IHRvIGludHJvZHVjZSBhIHN0cnVjdHVyZSBo
b2xkaW5nIHRoZSBpbi1mbHV4IGxheW91dCBpbmZvcm1hdGlvbi4KICAgICBpbnQgZGlzdHJpYnV0
ZUV4dHJhTG9naWNhbEhlaWdodFRvUm93cyhpbnQgZXh0cmFMb2dpY2FsSGVpZ2h0KTsKIAorICAg
IHN0YXRpYyBSZW5kZXJUYWJsZVNlY3Rpb24qIGNyZWF0ZUFub255bW91c1dpdGhQYXJlbnRSZW5k
ZXJlcihjb25zdCBSZW5kZXJPYmplY3QqKTsKKwogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9p
ZCBzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRT
dHlsZSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCBkNWNmZmFlNjIwYjc2OGVmOTdlMzM4NTdkYTZmYmIzNmNjNTA1ZDYy
Li5iNjRmNGFmOWQ3NzMzNTNhNDFkNTEyOTJjZWM0MjhlYWE4MDEwMjA5IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTUgQEAKKzIwMTItMDQtMDMgIEFiaGlzaGVrIEFyeWEgIDxpbmZlcm5vQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBBZGQgaGVscGVycyB0byBjcmVhdGUgYW5vbnltb3VzIHRhYmxlIHBhcnRz
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODMxMTYK
KworICAgICAgICBSZXZpZXdlZCBieSBKdWxpZW4gQ2hhZmZyYWl4LgorCisgICAgICAgIFJlYmFz
ZWxpbmluZyB0ZXN0cyBiZWNhdXNlIHdlIG5vdyBjb3JyZWN0bHkgaW5oZXJpdCB0aGUgYmlkaSBv
dmVycmlkZS4KKworICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLW1hYy9mYXN0L2Nzcy9iaWRp
LW92ZXJyaWRlLWluLWFub255bW91cy1ibG9jay1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxh
dGZvcm0vY2hyb21pdW0td2luL2Zhc3QvY3NzL2JpZGktb3ZlcnJpZGUtaW4tYW5vbnltb3VzLWJs
b2NrLWV4cGVjdGVkLnR4dDoKKwogMjAxMi0wNC0wMyAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIEltcGxlbWVudCBuZXcgZmxleCBwcm9wZXJ0eSBhbmQgZGVwcmVj
YXRlIGZsZXggZnVuY3Rpb24KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtLW1hYy9mYXN0L2Nzcy9iaWRpLW92ZXJyaWRlLWluLWFub255bW91cy1ibG9jay1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1tYWMvZmFzdC9jc3MvYmlkaS1v
dmVycmlkZS1pbi1hbm9ueW1vdXMtYmxvY2stZXhwZWN0ZWQudHh0CmluZGV4IGIxZjE3NzE1ZTdj
OTNmMTZhNjVhYTVkZDliNTY2NzAzNTE5MmM2NTIuLmZiNGRmNTRmNjA0ZTMyNzBiMmY2OGM0YjI2
Njg3M2Q0ZDkxMGQzYTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
LW1hYy9mYXN0L2Nzcy9iaWRpLW92ZXJyaWRlLWluLWFub255bW91cy1ibG9jay1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbWFjL2Zhc3QvY3NzL2JpZGkt
b3ZlcnJpZGUtaW4tYW5vbnltb3VzLWJsb2NrLWV4cGVjdGVkLnR4dApAQCAtMjI1LDcgKzIyNSw3
IEBAIGxheWVyIGF0ICgwLDApIHNpemUgNzg1eDEyMTcKICAgICAgICAgICAgIFJlbmRlclRhYmxl
Um93IHtESVZ9IGF0ICgwLDApIHNpemUgMjR4MTgKICAgICAgICAgICAgICAgUmVuZGVyVGFibGVD
ZWxsIChhbm9ueW1vdXMpIGF0ICgwLDApIHNpemUgMjR4MTggW3I9MCBjPTAgcnM9MSBjcz0xXQog
ICAgICAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMiwwKSBzaXplIDIyeDE4Ci0g
ICAgICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMiwwKSB3aWR0aCAyMjogImFiYyIKKyAgICAg
ICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgyLDApIHdpZHRoIDIyIFJUTCBvdmVycmlkZTogImFi
YyIKICAgICAgICAgICAgIFJlbmRlclRhYmxlUm93IChhbm9ueW1vdXMpIGF0ICgwLDE4KSBzaXpl
IDI0eDE4CiAgICAgICAgICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7RElWfSBhdCAoMCwxOCkgc2l6
ZSAyNHgxOCBbcj0xIGM9MCBycz0xIGNzPTFdCiAgICAgICAgICAgICAgICAgUmVuZGVyVGV4dCB7
I3RleHR9IGF0ICg0LDApIHNpemUgMjB4MTgKQEAgLTIzNyw0ICsyMzcsNCBAQCBsYXllciBhdCAo
MCwwKSBzaXplIDc4NXgxMjE3CiAgICAgICAgICAgICBSZW5kZXJUYWJsZVJvdyAoYW5vbnltb3Vz
KSBhdCAoMCwwKSBzaXplIDI0eDE4CiAgICAgICAgICAgICAgIFJlbmRlclRhYmxlQ2VsbCAoYW5v
bnltb3VzKSBhdCAoMCwwKSBzaXplIDI0eDE4IFtyPTAgYz0wIHJzPTEgY3M9MV0KICAgICAgICAg
ICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAyNHgxOAotICAgICAgICAg
ICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMjQ6ICJvcHEiCisgICAgICAgICAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAyNCBSVEwgb3ZlcnJpZGU6ICJvcHEiCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vZmFzdC9jc3MvYmlkaS1v
dmVycmlkZS1pbi1hbm9ueW1vdXMtYmxvY2stZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0td2luL2Zhc3QvY3NzL2JpZGktb3ZlcnJpZGUtaW4tYW5vbnltb3VzLWJs
b2NrLWV4cGVjdGVkLnR4dAppbmRleCA5YTgyZTRjYzRkNzc4ZjlkNTQwZTlhMTVjOGYwZGUxOWVm
NjFhMDUzLi40YTllZjAwOGExMTViMThkM2QxYmNkZjViYWJmZTA4MGUwYjFiZWU1IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vZmFzdC9jc3MvYmlkaS1vdmVy
cmlkZS1pbi1hbm9ueW1vdXMtYmxvY2stZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtLXdpbi9mYXN0L2Nzcy9iaWRpLW92ZXJyaWRlLWluLWFub255bW91cy1i
bG9jay1leHBlY3RlZC50eHQKQEAgLTIyNSw3ICsyMjUsNyBAQCBsYXllciBhdCAoMCwwKSBzaXpl
IDc4NXgxMzAxCiAgICAgICAgICAgICBSZW5kZXJUYWJsZVJvdyB7RElWfSBhdCAoMCwwKSBzaXpl
IDI0eDIwCiAgICAgICAgICAgICAgIFJlbmRlclRhYmxlQ2VsbCAoYW5vbnltb3VzKSBhdCAoMCww
KSBzaXplIDI0eDIwIFtyPTAgYz0wIHJzPTEgY3M9MV0KICAgICAgICAgICAgICAgICBSZW5kZXJU
ZXh0IHsjdGV4dH0gYXQgKDIsMCkgc2l6ZSAyMngxOQotICAgICAgICAgICAgICAgICAgdGV4dCBy
dW4gYXQgKDIsMCkgd2lkdGggMjI6ICJhYmMiCisgICAgICAgICAgICAgICAgICB0ZXh0IHJ1biBh
dCAoMiwwKSB3aWR0aCAyMiBSVEwgb3ZlcnJpZGU6ICJhYmMiCiAgICAgICAgICAgICBSZW5kZXJU
YWJsZVJvdyAoYW5vbnltb3VzKSBhdCAoMCwyMCkgc2l6ZSAyNHgyMAogICAgICAgICAgICAgICBS
ZW5kZXJUYWJsZUNlbGwge0RJVn0gYXQgKDAsMjApIHNpemUgMjR4MjAgW3I9MSBjPTAgcnM9MSBj
cz0xXQogICAgICAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNSwwKSBzaXplIDE5
eDE5CkBAIC0yMzcsNCArMjM3LDQgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA3ODV4MTMwMQogICAg
ICAgICAgICAgUmVuZGVyVGFibGVSb3cgKGFub255bW91cykgYXQgKDAsMCkgc2l6ZSAyNHgyMAog
ICAgICAgICAgICAgICBSZW5kZXJUYWJsZUNlbGwgKGFub255bW91cykgYXQgKDAsMCkgc2l6ZSAy
NHgyMCBbcj0wIGM9MCBycz0xIGNzPTFdCiAgICAgICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3Rl
eHR9IGF0ICgwLDApIHNpemUgMjR4MTkKLSAgICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgw
LDApIHdpZHRoIDI0OiAib3BxIgorICAgICAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkg
d2lkdGggMjQgUlRMIG92ZXJyaWRlOiAib3BxIgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>