<?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>140461</bug_id>
          
          <creation_ts>2015-01-14 13:16:37 -0800</creation_ts>
          <short_desc>Move ClipRects and ClipRectsCache to RenderLayer.cpp.</short_desc>
          <delta_ts>2015-01-15 15:13:44 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1061282</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2015-01-14 13:16:37 -0800</bug_when>
    <thetext>where they belong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1061284</commentid>
    <comment_count>1</comment_count>
      <attachid>244632</attachid>
    <who name="alan">zalan</who>
    <bug_when>2015-01-14 13:20:46 -0800</bug_when>
    <thetext>Created attachment 244632
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1061295</commentid>
    <comment_count>2</comment_count>
      <attachid>244635</attachid>
    <who name="alan">zalan</who>
    <bug_when>2015-01-14 13:51:47 -0800</bug_when>
    <thetext>Created attachment 244635
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1061374</commentid>
    <comment_count>3</comment_count>
      <attachid>244635</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-01-14 15:53:32 -0800</bug_when>
    <thetext>Comment on attachment 244635
Patch

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

Patch does not apply.

Besides making these private, could you also move the inlines into RenderLayer.cpp file and consider moving as much of the class definitions as possible into RenderLayer.cpp too? Things only need to be in the header if something in the header uses them.

&gt; Source/WebCore/rendering/RenderLayer.h:685
&gt; +        void reset(const LayoutRect&amp; r);

I suggest omitting the argument name &quot;r&quot;.

&gt; Source/WebCore/rendering/RenderLayer.h:1001
&gt; +    ClipRect backgroundClipRectForPosition(const ClipRects&amp; parentRects, EPosition position) const;

I sugget omitting the argument name “position”.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1061480</commentid>
    <comment_count>4</comment_count>
      <attachid>244679</attachid>
    <who name="alan">zalan</who>
    <bug_when>2015-01-14 21:20:44 -0800</bug_when>
    <thetext>Created attachment 244679
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1061481</commentid>
    <comment_count>5</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2015-01-14 21:25:52 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 244635 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=244635&amp;action=review
&gt; 
&gt; Patch does not apply.
The patch has dependency on bug 140457. (it&apos;s landed by now)

&gt; 
&gt; Besides making these private, could you also move the inlines into
&gt; RenderLayer.cpp file and consider moving as much of the class definitions as
&gt; possible into RenderLayer.cpp too? Things only need to be in the header if
&gt; something in the header uses them.
Done.

&gt; 
&gt; &gt; Source/WebCore/rendering/RenderLayer.h:685
&gt; &gt; +        void reset(const LayoutRect&amp; r);
&gt; 
&gt; I suggest omitting the argument name &quot;r&quot;.
Moved to .cpp

&gt; 
&gt; &gt; Source/WebCore/rendering/RenderLayer.h:1001
&gt; &gt; +    ClipRect backgroundClipRectForPosition(const ClipRects&amp; parentRects, EPosition position) const;
&gt; 
&gt; I sugget omitting the argument name “position”.
Not applicable anymore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1061653</commentid>
    <comment_count>6</comment_count>
      <attachid>244679</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-01-15 15:13:37 -0800</bug_when>
    <thetext>Comment on attachment 244679
Patch

Clearing flags on attachment: 244679

Committed r178533: &lt;http://trac.webkit.org/changeset/178533&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1061654</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-01-15 15:13:44 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>244632</attachid>
            <date>2015-01-14 13:20:46 -0800</date>
            <delta_ts>2015-01-14 13:51:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>Patch.txt</filename>
            <type>text/plain</type>
            <size>12905</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjODc4YTYzLi44NzNjOTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjUg
QEAKIDIwMTUtMDEtMTQgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAorICAgICAg
ICBNb3ZlIENsaXBSZWN0cyBhbmQgQ2xpcFJlY3RzQ2FjaGUgdG8gUmVuZGVyTGF5ZXIgY2xhc3Mu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDA0NjEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBh
dGNoIGltcHJvdmVzIFJlbmRlckxheWVyIGNsYXNzJ3MgZW5jYXBzdWxhdGlvbiBieSBtb3Zpbmcg
dGhvc2UgY2xhc3NlcworICAgICAgICBpbnNpZGUgUmVuZGVyTGF5ZXIgYW5kIG1ha2luZyB0aGVt
IHByaXZhdGUuCisKKyAgICAgICAgTm8gY2hhbmdlIGluIGZ1bmN0aW9uYWxpdHkuCisKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXI6OmNhbGN1bGF0ZUNsaXBSZWN0cyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6Q2xpcFJlY3RzOjpyZXNldCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6Q2xpcFJlY3RzOjpvcGVyYXRvcj09KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpDbGlwUmVjdHM6Om9wZXJhdG9yPSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6Q2xpcFJlY3RzQ2FjaGU6OmdldEluZGV4KToK
KworMjAxNS0wMS0xNCAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgorCiAgICAgICAg
IE1vdmUgTGF5b3V0RnJhZ21lbnQgYW5kIENsaXBSZWN0IHRvIHRoZWlyIG93biBmaWxlcy4KICAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MDQ1NwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAppbmRleCBjYzRhZDJkLi5kNmE3
NDZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTUzNzUs
NyArNTM3NSw3IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnBhcmVudENsaXBSZWN0cyhjb25zdCBDbGlw
UmVjdHNDb250ZXh0JiBjbGlwUmVjdHNDb250ZXh0LCBDbGlwCiAgICAgY2xpcFJlY3RzID0gKnBh
cmVudCgpLT5jbGlwUmVjdHMoY2xpcFJlY3RzQ29udGV4dCk7CiB9CiAKLXN0YXRpYyBpbmxpbmUg
Q2xpcFJlY3QgYmFja2dyb3VuZENsaXBSZWN0Rm9yUG9zaXRpb24oY29uc3QgQ2xpcFJlY3RzJiBw
YXJlbnRSZWN0cywgRVBvc2l0aW9uIHBvc2l0aW9uKQorQ2xpcFJlY3QgUmVuZGVyTGF5ZXI6OmJh
Y2tncm91bmRDbGlwUmVjdEZvclBvc2l0aW9uKGNvbnN0IENsaXBSZWN0cyYgcGFyZW50UmVjdHMs
IEVQb3NpdGlvbiBwb3NpdGlvbikgY29uc3QKIHsKICAgICBpZiAocG9zaXRpb24gPT0gRml4ZWRQ
b3NpdGlvbikKICAgICAgICAgcmV0dXJuIHBhcmVudFJlY3RzLmZpeGVkQ2xpcFJlY3QoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKaW5kZXggNDA1YzBlZS4uNTllMjM2ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKQEAgLTgzLDk1ICs4Myw2IEBA
IGVudW0gUmVwYWludFN0YXR1cyB7CiAgICAgTmVlZHNGdWxsUmVwYWludEZvclBvc2l0aW9uZWRN
b3ZlbWVudExheW91dAogfTsKIAotY2xhc3MgQ2xpcFJlY3RzIHsKLSAgICBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxDbGlwUmVjdHM+IGNy
ZWF0ZSgpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IENsaXBSZWN0cyk7Ci0g
ICAgfQotCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8Q2xpcFJlY3RzPiBjcmVhdGUoY29uc3QgQ2xp
cFJlY3RzJiBvdGhlcikKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ2xpcFJl
Y3RzKG90aGVyKSk7Ci0gICAgfQotCi0gICAgQ2xpcFJlY3RzKCkKLSAgICAgICAgOiBtX3JlZkNu
dCgxKQotICAgICAgICAsIG1fZml4ZWQoZmFsc2UpCi0gICAgewotICAgIH0KLQotICAgIHZvaWQg
cmVzZXQoY29uc3QgTGF5b3V0UmVjdCYgcikKLSAgICB7Ci0gICAgICAgIG1fb3ZlcmZsb3dDbGlw
UmVjdCA9IHI7Ci0gICAgICAgIG1fZml4ZWRDbGlwUmVjdCA9IHI7Ci0gICAgICAgIG1fcG9zQ2xp
cFJlY3QgPSByOwotICAgICAgICBtX2ZpeGVkID0gZmFsc2U7Ci0gICAgfQotICAgIAotICAgIGNv
bnN0IENsaXBSZWN0JiBvdmVyZmxvd0NsaXBSZWN0KCkgY29uc3QgeyByZXR1cm4gbV9vdmVyZmxv
d0NsaXBSZWN0OyB9Ci0gICAgdm9pZCBzZXRPdmVyZmxvd0NsaXBSZWN0KGNvbnN0IENsaXBSZWN0
JiByKSB7IG1fb3ZlcmZsb3dDbGlwUmVjdCA9IHI7IH0KLQotICAgIGNvbnN0IENsaXBSZWN0JiBm
aXhlZENsaXBSZWN0KCkgY29uc3QgeyByZXR1cm4gbV9maXhlZENsaXBSZWN0OyB9Ci0gICAgdm9p
ZCBzZXRGaXhlZENsaXBSZWN0KGNvbnN0IENsaXBSZWN0JnIpIHsgbV9maXhlZENsaXBSZWN0ID0g
cjsgfQotCi0gICAgY29uc3QgQ2xpcFJlY3QmIHBvc0NsaXBSZWN0KCkgY29uc3QgeyByZXR1cm4g
bV9wb3NDbGlwUmVjdDsgfQotICAgIHZvaWQgc2V0UG9zQ2xpcFJlY3QoY29uc3QgQ2xpcFJlY3Qm
IHIpIHsgbV9wb3NDbGlwUmVjdCA9IHI7IH0KLQotICAgIGJvb2wgZml4ZWQoKSBjb25zdCB7IHJl
dHVybiBtX2ZpeGVkOyB9Ci0gICAgdm9pZCBzZXRGaXhlZChib29sIGZpeGVkKSB7IG1fZml4ZWQg
PSBmaXhlZDsgfQotCi0gICAgdm9pZCByZWYoKSB7IG1fcmVmQ250Kys7IH0KLSAgICB2b2lkIGRl
cmVmKCkKLSAgICB7Ci0gICAgICAgIGlmICghLS1tX3JlZkNudCkKLSAgICAgICAgICAgIGRlbGV0
ZSB0aGlzOwotICAgIH0KLQotICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBDbGlwUmVjdHMmIG90
aGVyKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIG1fb3ZlcmZsb3dDbGlwUmVjdCA9PSBv
dGhlci5vdmVyZmxvd0NsaXBSZWN0KCkgJiYKLSAgICAgICAgICAgICAgIG1fZml4ZWRDbGlwUmVj
dCA9PSBvdGhlci5maXhlZENsaXBSZWN0KCkgJiYKLSAgICAgICAgICAgICAgIG1fcG9zQ2xpcFJl
Y3QgPT0gb3RoZXIucG9zQ2xpcFJlY3QoKSAmJgotICAgICAgICAgICAgICAgbV9maXhlZCA9PSBv
dGhlci5maXhlZCgpOwotICAgIH0KLQotICAgIENsaXBSZWN0cyYgb3BlcmF0b3I9KGNvbnN0IENs
aXBSZWN0cyYgb3RoZXIpCi0gICAgewotICAgICAgICBtX292ZXJmbG93Q2xpcFJlY3QgPSBvdGhl
ci5vdmVyZmxvd0NsaXBSZWN0KCk7Ci0gICAgICAgIG1fZml4ZWRDbGlwUmVjdCA9IG90aGVyLmZp
eGVkQ2xpcFJlY3QoKTsKLSAgICAgICAgbV9wb3NDbGlwUmVjdCA9IG90aGVyLnBvc0NsaXBSZWN0
KCk7Ci0gICAgICAgIG1fZml4ZWQgPSBvdGhlci5maXhlZCgpOwotICAgICAgICByZXR1cm4gKnRo
aXM7Ci0gICAgfQotCi1wcml2YXRlOgotICAgIENsaXBSZWN0cyhjb25zdCBMYXlvdXRSZWN0JiBy
KQotICAgICAgICA6IG1fb3ZlcmZsb3dDbGlwUmVjdChyKQotICAgICAgICAsIG1fZml4ZWRDbGlw
UmVjdChyKQotICAgICAgICAsIG1fcG9zQ2xpcFJlY3QocikKLSAgICAgICAgLCBtX3JlZkNudCgx
KQotICAgICAgICAsIG1fZml4ZWQoZmFsc2UpCi0gICAgewotICAgIH0KLQotICAgIENsaXBSZWN0
cyhjb25zdCBDbGlwUmVjdHMmIG90aGVyKQotICAgICAgICA6IG1fb3ZlcmZsb3dDbGlwUmVjdChv
dGhlci5vdmVyZmxvd0NsaXBSZWN0KCkpCi0gICAgICAgICwgbV9maXhlZENsaXBSZWN0KG90aGVy
LmZpeGVkQ2xpcFJlY3QoKSkKLSAgICAgICAgLCBtX3Bvc0NsaXBSZWN0KG90aGVyLnBvc0NsaXBS
ZWN0KCkpCi0gICAgICAgICwgbV9yZWZDbnQoMSkKLSAgICAgICAgLCBtX2ZpeGVkKG90aGVyLmZp
eGVkKCkpCi0gICAgewotICAgIH0KLQotICAgIENsaXBSZWN0IG1fb3ZlcmZsb3dDbGlwUmVjdDsK
LSAgICBDbGlwUmVjdCBtX2ZpeGVkQ2xpcFJlY3Q7Ci0gICAgQ2xpcFJlY3QgbV9wb3NDbGlwUmVj
dDsKLSAgICB1bnNpZ25lZCBtX3JlZkNudCA6IDMxOwotICAgIGJvb2wgbV9maXhlZCA6IDE7Ci19
OwotCiBlbnVtIENsaXBSZWN0c1R5cGUgewogICAgIFBhaW50aW5nQ2xpcFJlY3RzLCAvLyBSZWxh
dGl2ZSB0byBwYWludGluZyBhbmNlc3Rvci4gVXNlZCBmb3IgcGFpbnRpbmcuCiAgICAgUm9vdFJl
bGF0aXZlQ2xpcFJlY3RzLCAvLyBSZWxhdGl2ZSB0byB0aGUgYW5jZXN0b3IgdHJlYXRlZCBhcyB0
aGUgcm9vdCAoZS5nLiB0cmFuc2Zvcm1lZCBsYXllcikuIFVzZWQgZm9yIGhpdCB0ZXN0aW5nLgpA
QCAtMTkxLDM5ICsxMDIsNiBAQCBlbnVtIFNob3VsZEFwcGx5Um9vdE9mZnNldFRvRnJhZ21lbnRz
IHsKICAgICBJZ25vcmVSb290T2Zmc2V0Rm9yRnJhZ21lbnRzCiB9OwogCi1zdHJ1Y3QgQ2xpcFJl
Y3RzQ2FjaGUgewotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotcHVibGljOgotICAgIENs
aXBSZWN0c0NhY2hlKCkKLSAgICB7Ci0jaWZuZGVmIE5ERUJVRwotICAgICAgICBmb3IgKGludCBp
ID0gMDsgaSA8IE51bUNhY2hlZENsaXBSZWN0c1R5cGVzOyArK2kpIHsKLSAgICAgICAgICAgIG1f
Y2xpcFJlY3RzUm9vdFtpXSA9IDA7Ci0gICAgICAgICAgICBtX3Njcm9sbGJhclJlbGV2YW5jeVtp
XSA9IElnbm9yZU92ZXJsYXlTY3JvbGxiYXJTaXplOwotICAgICAgICB9Ci0jZW5kaWYKLSAgICB9
Ci0KLSAgICBQYXNzUmVmUHRyPENsaXBSZWN0cz4gZ2V0Q2xpcFJlY3RzKENsaXBSZWN0c1R5cGUg
Y2xpcFJlY3RzVHlwZSwgU2hvdWxkUmVzcGVjdE92ZXJmbG93Q2xpcCByZXNwZWN0T3ZlcmZsb3cp
IHsgcmV0dXJuIG1fY2xpcFJlY3RzW2dldEluZGV4KGNsaXBSZWN0c1R5cGUsIHJlc3BlY3RPdmVy
ZmxvdyldOyB9Ci0gICAgdm9pZCBzZXRDbGlwUmVjdHMoQ2xpcFJlY3RzVHlwZSBjbGlwUmVjdHNU
eXBlLCBTaG91bGRSZXNwZWN0T3ZlcmZsb3dDbGlwIHJlc3BlY3RPdmVyZmxvdywgUGFzc1JlZlB0
cjxDbGlwUmVjdHM+IGNsaXBSZWN0cykgeyBtX2NsaXBSZWN0c1tnZXRJbmRleChjbGlwUmVjdHNU
eXBlLCByZXNwZWN0T3ZlcmZsb3cpXSA9IGNsaXBSZWN0czsgfQotCi0jaWZuZGVmIE5ERUJVRwot
ICAgIGNvbnN0IFJlbmRlckxheWVyKiBtX2NsaXBSZWN0c1Jvb3RbTnVtQ2FjaGVkQ2xpcFJlY3Rz
VHlwZXNdOwotICAgIE92ZXJsYXlTY3JvbGxiYXJTaXplUmVsZXZhbmN5IG1fc2Nyb2xsYmFyUmVs
ZXZhbmN5W051bUNhY2hlZENsaXBSZWN0c1R5cGVzXTsKLSNlbmRpZgotCi1wcml2YXRlOgotICAg
IGludCBnZXRJbmRleChDbGlwUmVjdHNUeXBlIGNsaXBSZWN0c1R5cGUsIFNob3VsZFJlc3BlY3RP
dmVyZmxvd0NsaXAgcmVzcGVjdE92ZXJmbG93KQotICAgIHsKLSAgICAgICAgaW50IGluZGV4ID0g
c3RhdGljX2Nhc3Q8aW50PihjbGlwUmVjdHNUeXBlKTsKLSAgICAgICAgaWYgKHJlc3BlY3RPdmVy
ZmxvdyA9PSBSZXNwZWN0T3ZlcmZsb3dDbGlwKQotICAgICAgICAgICAgaW5kZXggKz0gc3RhdGlj
X2Nhc3Q8aW50PihOdW1DYWNoZWRDbGlwUmVjdHNUeXBlcyk7Ci0gICAgICAgIHJldHVybiBpbmRl
eDsKLSAgICB9Ci0KLSAgICBSZWZQdHI8Q2xpcFJlY3RzPiBtX2NsaXBSZWN0c1tOdW1DYWNoZWRD
bGlwUmVjdHNUeXBlcyAqIDJdOwotfTsKLQogY2xhc3MgUmVuZGVyTGF5ZXIgZmluYWwgOiBwdWJs
aWMgU2Nyb2xsYWJsZUFyZWEgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGlj
OgpAQCAtNTk4LDE4ICs0NzYsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBjYWxjdWxhdGVSZWN0cyhj
b25zdCBDbGlwUmVjdHNDb250ZXh0JiwgY29uc3QgTGF5b3V0UmVjdCYgcGFpbnREaXJ0eVJlY3Qs
IExheW91dFJlY3QmIGxheWVyQm91bmRzLAogICAgICAgICBDbGlwUmVjdCYgYmFja2dyb3VuZFJl
Y3QsIENsaXBSZWN0JiBmb3JlZ3JvdW5kUmVjdCwgQ2xpcFJlY3QmIG91dGxpbmVSZWN0LCBjb25z
dCBMYXlvdXRTaXplJiBvZmZzZXRGcm9tUm9vdCkgY29uc3Q7CiAKLSAgICAvLyBDb21wdXRlIGFu
ZCBjYWNoZSBjbGlwIHJlY3RzIGNvbXB1dGVkIHdpdGggdGhlIGdpdmVuIGxheWVyIGFzIHRoZSBy
b290Ci0gICAgdm9pZCB1cGRhdGVDbGlwUmVjdHMoY29uc3QgQ2xpcFJlY3RzQ29udGV4dCYpOwot
ICAgIC8vIENvbXB1dGUgYW5kIHJldHVybiB0aGUgY2xpcCByZWN0cy4gSWYgdXNlQ2FjaGVkIGlz
IHRydWUsIHdpbGwgdXNlZCBwcmV2aW91c2x5IGNvbXB1dGVkIGNsaXAgcmVjdHMgb24gYW5jZXN0
b3JzCi0gICAgLy8gKHJhdGhlciB0aGFuIGNvbXB1dGluZyB0aGVtIGFsbCBmcm9tIHNjcmF0Y2gg
dXAgdGhlIHBhcmVudCBjaGFpbikuCi0gICAgdm9pZCBjYWxjdWxhdGVDbGlwUmVjdHMoY29uc3Qg
Q2xpcFJlY3RzQ29udGV4dCYsIENsaXBSZWN0cyYpIGNvbnN0OwotCi0gICAgQ2xpcFJlY3RzKiBj
bGlwUmVjdHMoY29uc3QgQ2xpcFJlY3RzQ29udGV4dCYgY29udGV4dCkgY29uc3QKLSAgICB7Ci0g
ICAgICAgIEFTU0VSVChjb250ZXh0LmNsaXBSZWN0c1R5cGUgPCBOdW1DYWNoZWRDbGlwUmVjdHNU
eXBlcyk7Ci0gICAgICAgIHJldHVybiBtX2NsaXBSZWN0c0NhY2hlID8gbV9jbGlwUmVjdHNDYWNo
ZS0+Z2V0Q2xpcFJlY3RzKGNvbnRleHQuY2xpcFJlY3RzVHlwZSwgY29udGV4dC5yZXNwZWN0T3Zl
cmZsb3dDbGlwKS5nZXQoKSA6IDA7Ci0gICAgfQotCiAgICAgTGF5b3V0UmVjdCBjaGlsZHJlbkNs
aXBSZWN0KCkgY29uc3Q7IC8vIFJldHVybnMgdGhlIGZvcmVncm91bmQgY2xpcCByZWN0IG9mIHRo
ZSBsYXllciBpbiB0aGUgZG9jdW1lbnQncyBjb29yZGluYXRlIHNwYWNlLgogICAgIExheW91dFJl
Y3Qgc2VsZkNsaXBSZWN0KCkgY29uc3Q7IC8vIFJldHVybnMgdGhlIGJhY2tncm91bmQgY2xpcCBy
ZWN0IG9mIHRoZSBsYXllciBpbiB0aGUgZG9jdW1lbnQncyBjb29yZGluYXRlIHNwYWNlLgogICAg
IExheW91dFJlY3QgbG9jYWxDbGlwUmVjdChib29sJiBjbGlwRXhjZWVkc0JvdW5kcykgY29uc3Q7
IC8vIFJldHVybnMgdGhlIGJhY2tncm91bmQgY2xpcCByZWN0IG9mIHRoZSBsYXllciBpbiB0aGUg
bG9jYWwgY29vcmRpbmF0ZSBzcGFjZS4KQEAgLTgwMSw2ICs2NjcsMTA3IEBAIHByaXZhdGU6CiAg
ICAgICAgIGJvb2wgY2xpcFRvRGlydHlSZWN0OwogICAgIH07CiAKKyAgICBjbGFzcyBDbGlwUmVj
dHMgeworICAgICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKKyAgICBwdWJsaWM6CisgICAg
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPENsaXBSZWN0cz4gY3JlYXRlKCkKKyAgICAgICAgeworICAg
ICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBDbGlwUmVjdHMpOworICAgICAgICB9CisKKyAg
ICAgICAgc3RhdGljIFBhc3NSZWZQdHI8Q2xpcFJlY3RzPiBjcmVhdGUoY29uc3QgQ2xpcFJlY3Rz
JiBvdGhlcikKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBDbGlw
UmVjdHMob3RoZXIpKTsKKyAgICAgICAgfQorCisgICAgICAgIENsaXBSZWN0cygpID0gZGVmYXVs
dDsKKworICAgICAgICB2b2lkIHJlc2V0KGNvbnN0IExheW91dFJlY3QmIHIpOworCisgICAgICAg
IGNvbnN0IENsaXBSZWN0JiBvdmVyZmxvd0NsaXBSZWN0KCkgY29uc3QgeyByZXR1cm4gbV9vdmVy
Zmxvd0NsaXBSZWN0OyB9CisgICAgICAgIHZvaWQgc2V0T3ZlcmZsb3dDbGlwUmVjdChjb25zdCBD
bGlwUmVjdCYgcikgeyBtX292ZXJmbG93Q2xpcFJlY3QgPSByOyB9CisKKyAgICAgICAgY29uc3Qg
Q2xpcFJlY3QmIGZpeGVkQ2xpcFJlY3QoKSBjb25zdCB7IHJldHVybiBtX2ZpeGVkQ2xpcFJlY3Q7
IH0KKyAgICAgICAgdm9pZCBzZXRGaXhlZENsaXBSZWN0KGNvbnN0IENsaXBSZWN0JnIpIHsgbV9m
aXhlZENsaXBSZWN0ID0gcjsgfQorCisgICAgICAgIGNvbnN0IENsaXBSZWN0JiBwb3NDbGlwUmVj
dCgpIGNvbnN0IHsgcmV0dXJuIG1fcG9zQ2xpcFJlY3Q7IH0KKyAgICAgICAgdm9pZCBzZXRQb3ND
bGlwUmVjdChjb25zdCBDbGlwUmVjdCYgcikgeyBtX3Bvc0NsaXBSZWN0ID0gcjsgfQorCisgICAg
ICAgIGJvb2wgZml4ZWQoKSBjb25zdCB7IHJldHVybiBtX2ZpeGVkOyB9CisgICAgICAgIHZvaWQg
c2V0Rml4ZWQoYm9vbCBmaXhlZCkgeyBtX2ZpeGVkID0gZml4ZWQ7IH0KKworICAgICAgICB2b2lk
IHJlZigpIHsgbV9yZWZDbnQrKzsgfQorICAgICAgICB2b2lkIGRlcmVmKCkKKyAgICAgICAgewor
ICAgICAgICAgICAgaWYgKCEtLW1fcmVmQ250KQorICAgICAgICAgICAgICAgIGRlbGV0ZSB0aGlz
OworICAgICAgICB9CisKKyAgICAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IENsaXBSZWN0cyYg
b3RoZXIpIGNvbnN0OworICAgICAgICBDbGlwUmVjdHMmIG9wZXJhdG9yPShjb25zdCBDbGlwUmVj
dHMmIG90aGVyKTsKKworICAgIHByaXZhdGU6CisgICAgICAgIENsaXBSZWN0cyhjb25zdCBMYXlv
dXRSZWN0JiByKQorICAgICAgICAgICAgOiBtX292ZXJmbG93Q2xpcFJlY3QocikKKyAgICAgICAg
ICAgICwgbV9maXhlZENsaXBSZWN0KHIpCisgICAgICAgICAgICAsIG1fcG9zQ2xpcFJlY3QocikK
KyAgICAgICAgeworICAgICAgICB9CisKKyAgICAgICAgQ2xpcFJlY3RzKGNvbnN0IENsaXBSZWN0
cyYgb3RoZXIpCisgICAgICAgICAgICA6IG1fb3ZlcmZsb3dDbGlwUmVjdChvdGhlci5vdmVyZmxv
d0NsaXBSZWN0KCkpCisgICAgICAgICAgICAsIG1fZml4ZWRDbGlwUmVjdChvdGhlci5maXhlZENs
aXBSZWN0KCkpCisgICAgICAgICAgICAsIG1fcG9zQ2xpcFJlY3Qob3RoZXIucG9zQ2xpcFJlY3Qo
KSkKKyAgICAgICAgICAgICwgbV9maXhlZChvdGhlci5maXhlZCgpKQorICAgICAgICB7CisgICAg
ICAgIH0KKworICAgICAgICBDbGlwUmVjdCBtX292ZXJmbG93Q2xpcFJlY3Q7CisgICAgICAgIENs
aXBSZWN0IG1fZml4ZWRDbGlwUmVjdDsKKyAgICAgICAgQ2xpcFJlY3QgbV9wb3NDbGlwUmVjdDsK
KyAgICAgICAgdW5zaWduZWQgbV9yZWZDbnQgPSAxOworICAgICAgICBib29sIG1fZml4ZWQgPSBm
YWxzZTsKKyAgICB9OworCisgICAgc3RydWN0IENsaXBSZWN0c0NhY2hlIHsKKyAgICAgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CisgICAgcHVibGljOgorICAgICAgICBDbGlwUmVjdHNDYWNo
ZSgpCisgICAgICAgIHsKKyNpZm5kZWYgTkRFQlVHCisgICAgICAgICAgICBmb3IgKGludCBpID0g
MDsgaSA8IE51bUNhY2hlZENsaXBSZWN0c1R5cGVzOyArK2kpIHsKKyAgICAgICAgICAgICAgICBt
X2NsaXBSZWN0c1Jvb3RbaV0gPSAwOworICAgICAgICAgICAgICAgIG1fc2Nyb2xsYmFyUmVsZXZh
bmN5W2ldID0gSWdub3JlT3ZlcmxheVNjcm9sbGJhclNpemU7CisgICAgICAgICAgICB9CisjZW5k
aWYKKyAgICAgICAgfQorCisgICAgICAgIFBhc3NSZWZQdHI8Q2xpcFJlY3RzPiBnZXRDbGlwUmVj
dHMoQ2xpcFJlY3RzVHlwZSBjbGlwUmVjdHNUeXBlLCBTaG91bGRSZXNwZWN0T3ZlcmZsb3dDbGlw
IHJlc3BlY3RPdmVyZmxvdykgeyByZXR1cm4gbV9jbGlwUmVjdHNbZ2V0SW5kZXgoY2xpcFJlY3Rz
VHlwZSwgcmVzcGVjdE92ZXJmbG93KV07IH0KKyAgICAgICAgdm9pZCBzZXRDbGlwUmVjdHMoQ2xp
cFJlY3RzVHlwZSBjbGlwUmVjdHNUeXBlLCBTaG91bGRSZXNwZWN0T3ZlcmZsb3dDbGlwIHJlc3Bl
Y3RPdmVyZmxvdywgUGFzc1JlZlB0cjxDbGlwUmVjdHM+IGNsaXBSZWN0cykgeyBtX2NsaXBSZWN0
c1tnZXRJbmRleChjbGlwUmVjdHNUeXBlLCByZXNwZWN0T3ZlcmZsb3cpXSA9IGNsaXBSZWN0czsg
fQorCisjaWZuZGVmIE5ERUJVRworICAgICAgICBjb25zdCBSZW5kZXJMYXllciogbV9jbGlwUmVj
dHNSb290W051bUNhY2hlZENsaXBSZWN0c1R5cGVzXTsKKyAgICAgICAgT3ZlcmxheVNjcm9sbGJh
clNpemVSZWxldmFuY3kgbV9zY3JvbGxiYXJSZWxldmFuY3lbTnVtQ2FjaGVkQ2xpcFJlY3RzVHlw
ZXNdOworI2VuZGlmCisKKyAgICBwcml2YXRlOgorICAgICAgICBpbnQgZ2V0SW5kZXgoQ2xpcFJl
Y3RzVHlwZSBjbGlwUmVjdHNUeXBlLCBTaG91bGRSZXNwZWN0T3ZlcmZsb3dDbGlwIHJlc3BlY3RP
dmVyZmxvdyk7CisKKyAgICAgICAgUmVmUHRyPENsaXBSZWN0cz4gbV9jbGlwUmVjdHNbTnVtQ2Fj
aGVkQ2xpcFJlY3RzVHlwZXMgKiAyXTsKKyAgICB9OworCisgICAgLy8gQ29tcHV0ZSBhbmQgY2Fj
aGUgY2xpcCByZWN0cyBjb21wdXRlZCB3aXRoIHRoZSBnaXZlbiBsYXllciBhcyB0aGUgcm9vdAor
ICAgIHZvaWQgdXBkYXRlQ2xpcFJlY3RzKGNvbnN0IENsaXBSZWN0c0NvbnRleHQmKTsKKyAgICAv
LyBDb21wdXRlIGFuZCByZXR1cm4gdGhlIGNsaXAgcmVjdHMuIElmIHVzZUNhY2hlZCBpcyB0cnVl
LCB3aWxsIHVzZWQgcHJldmlvdXNseSBjb21wdXRlZCBjbGlwIHJlY3RzIG9uIGFuY2VzdG9ycwor
ICAgIC8vIChyYXRoZXIgdGhhbiBjb21wdXRpbmcgdGhlbSBhbGwgZnJvbSBzY3JhdGNoIHVwIHRo
ZSBwYXJlbnQgY2hhaW4pLgorICAgIHZvaWQgY2FsY3VsYXRlQ2xpcFJlY3RzKGNvbnN0IENsaXBS
ZWN0c0NvbnRleHQmLCBDbGlwUmVjdHMmKSBjb25zdDsKKworICAgIENsaXBSZWN0cyogY2xpcFJl
Y3RzKGNvbnN0IENsaXBSZWN0c0NvbnRleHQmIGNvbnRleHQpIGNvbnN0CisgICAgeworICAgICAg
ICBBU1NFUlQoY29udGV4dC5jbGlwUmVjdHNUeXBlIDwgTnVtQ2FjaGVkQ2xpcFJlY3RzVHlwZXMp
OworICAgICAgICByZXR1cm4gbV9jbGlwUmVjdHNDYWNoZSA/IG1fY2xpcFJlY3RzQ2FjaGUtPmdl
dENsaXBSZWN0cyhjb250ZXh0LmNsaXBSZWN0c1R5cGUsIGNvbnRleHQucmVzcGVjdE92ZXJmbG93
Q2xpcCkuZ2V0KCkgOiAwOworICAgIH0KKwogICAgIHZvaWQgdXBkYXRlWk9yZGVyTGlzdHMoKTsK
ICAgICB2b2lkIHJlYnVpbGRaT3JkZXJMaXN0cygpOwogICAgIHZvaWQgcmVidWlsZFpPcmRlckxp
c3RzKENvbGxlY3RMYXllcnNCZWhhdmlvciwgc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxSZW5kZXJM
YXllcio+PiYsIHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8UmVuZGVyTGF5ZXIqPj4mKTsKQEAgLTEw
MzEsNiArOTk4LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAgICAgdm9pZCBwYXJlbnRDbGlwUmVj
dHMoY29uc3QgQ2xpcFJlY3RzQ29udGV4dCYsIENsaXBSZWN0cyYpIGNvbnN0OworICAgIENsaXBS
ZWN0IGJhY2tncm91bmRDbGlwUmVjdEZvclBvc2l0aW9uKGNvbnN0IENsaXBSZWN0cyYgcGFyZW50
UmVjdHMsIEVQb3NpdGlvbiBwb3NpdGlvbikgY29uc3Q7CiAgICAgQ2xpcFJlY3QgYmFja2dyb3Vu
ZENsaXBSZWN0KGNvbnN0IENsaXBSZWN0c0NvbnRleHQmKSBjb25zdDsKIAogICAgIFJlbmRlckxh
eWVyKiBlbmNsb3NpbmdUcmFuc2Zvcm1lZEFuY2VzdG9yKCkgY29uc3Q7CkBAIC0xMjY2LDYgKzEy
MzQsMzkgQEAgaW5saW5lIHZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZVpPcmRlckxpc3RzKCkKICAg
ICByZWJ1aWxkWk9yZGVyTGlzdHMoKTsKIH0KIAoraW5saW5lIHZvaWQgUmVuZGVyTGF5ZXI6OkNs
aXBSZWN0czo6cmVzZXQoY29uc3QgTGF5b3V0UmVjdCYgcikKK3sKKyAgICBtX292ZXJmbG93Q2xp
cFJlY3QgPSByOworICAgIG1fZml4ZWRDbGlwUmVjdCA9IHI7CisgICAgbV9wb3NDbGlwUmVjdCA9
IHI7CisgICAgbV9maXhlZCA9IGZhbHNlOworfQorCitpbmxpbmUgYm9vbCBSZW5kZXJMYXllcjo6
Q2xpcFJlY3RzOjpvcGVyYXRvcj09KGNvbnN0IFJlbmRlckxheWVyOjpDbGlwUmVjdHMmIG90aGVy
KSBjb25zdAoreworICAgIHJldHVybiBtX292ZXJmbG93Q2xpcFJlY3QgPT0gb3RoZXIub3ZlcmZs
b3dDbGlwUmVjdCgpICYmCisgICAgbV9maXhlZENsaXBSZWN0ID09IG90aGVyLmZpeGVkQ2xpcFJl
Y3QoKSAmJgorICAgIG1fcG9zQ2xpcFJlY3QgPT0gb3RoZXIucG9zQ2xpcFJlY3QoKSAmJgorICAg
IG1fZml4ZWQgPT0gb3RoZXIuZml4ZWQoKTsKK30KKworaW5saW5lIFJlbmRlckxheWVyOjpDbGlw
UmVjdHMmIFJlbmRlckxheWVyOjpDbGlwUmVjdHM6Om9wZXJhdG9yPShjb25zdCBSZW5kZXJMYXll
cjo6Q2xpcFJlY3RzJiBvdGhlcikKK3sKKyAgICBtX292ZXJmbG93Q2xpcFJlY3QgPSBvdGhlci5v
dmVyZmxvd0NsaXBSZWN0KCk7CisgICAgbV9maXhlZENsaXBSZWN0ID0gb3RoZXIuZml4ZWRDbGlw
UmVjdCgpOworICAgIG1fcG9zQ2xpcFJlY3QgPSBvdGhlci5wb3NDbGlwUmVjdCgpOworICAgIG1f
Zml4ZWQgPSBvdGhlci5maXhlZCgpOworICAgIHJldHVybiAqdGhpczsKK30KKworaW5saW5lIGlu
dCBSZW5kZXJMYXllcjo6Q2xpcFJlY3RzQ2FjaGU6OmdldEluZGV4KENsaXBSZWN0c1R5cGUgY2xp
cFJlY3RzVHlwZSwgU2hvdWxkUmVzcGVjdE92ZXJmbG93Q2xpcCByZXNwZWN0T3ZlcmZsb3cpCit7
CisgICAgaW50IGluZGV4ID0gc3RhdGljX2Nhc3Q8aW50PihjbGlwUmVjdHNUeXBlKTsKKyAgICBp
ZiAocmVzcGVjdE92ZXJmbG93ID09IFJlc3BlY3RPdmVyZmxvd0NsaXApCisgICAgICAgIGluZGV4
ICs9IHN0YXRpY19jYXN0PGludD4oTnVtQ2FjaGVkQ2xpcFJlY3RzVHlwZXMpOworICAgIHJldHVy
biBpbmRleDsKK30KKwogI2lmICFBU1NFUlRfRElTQUJMRUQKIGNsYXNzIExheWVyTGlzdE11dGF0
aW9uRGV0ZWN0b3IgewogcHVibGljOgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>244635</attachid>
            <date>2015-01-14 13:51:47 -0800</date>
            <delta_ts>2015-01-14 21:20:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>Patch.txt</filename>
            <type>text/plain</type>
            <size>12921</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjODc4YTYzLi41MmQzY2QzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjUg
QEAKIDIwMTUtMDEtMTQgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAorICAgICAg
ICBNb3ZlIENsaXBSZWN0cyBhbmQgQ2xpcFJlY3RzQ2FjaGUgdG8gUmVuZGVyTGF5ZXIgY2xhc3Mu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDA0NjEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBh
dGNoIGltcHJvdmVzIFJlbmRlckxheWVyIGNsYXNzJ3MgZW5jYXBzdWxhdGlvbiBieSBtb3ZpbmcK
KyAgICAgICAgQ2xpcFJlY3RzIGFuZCBDbGlwUmVjdHNDYWNoZSBpbnNpZGUgUmVuZGVyTGF5ZXIg
YW5kIG1hcmtpbmcgdGhlbSBwcml2YXRlLgorCisgICAgICAgIE5vIGNoYW5nZSBpbiBmdW5jdGlv
bmFsaXR5LgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxheWVyOjpjYWxjdWxhdGVDbGlwUmVjdHMpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJMYXllci5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OkNs
aXBSZWN0czo6cmVzZXQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OkNsaXBSZWN0
czo6b3BlcmF0b3I9PSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6Q2xpcFJlY3Rz
OjpvcGVyYXRvcj0pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OkNsaXBSZWN0c0Nh
Y2hlOjpnZXRJbmRleCk6CisKKzIwMTUtMDEtMTQgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxl
LmNvbT4KKwogICAgICAgICBNb3ZlIExheW91dEZyYWdtZW50IGFuZCBDbGlwUmVjdCB0byB0aGVp
ciBvd24gZmlsZXMuCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNDA0NTcKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5k
ZXggY2M0YWQyZC4uZDZhNzQ2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXIuY3BwCkBAIC01Mzc1LDcgKzUzNzUsNyBAQCB2b2lkIFJlbmRlckxheWVyOjpwYXJlbnRDbGlw
UmVjdHMoY29uc3QgQ2xpcFJlY3RzQ29udGV4dCYgY2xpcFJlY3RzQ29udGV4dCwgQ2xpcAogICAg
IGNsaXBSZWN0cyA9ICpwYXJlbnQoKS0+Y2xpcFJlY3RzKGNsaXBSZWN0c0NvbnRleHQpOwogfQog
Ci1zdGF0aWMgaW5saW5lIENsaXBSZWN0IGJhY2tncm91bmRDbGlwUmVjdEZvclBvc2l0aW9uKGNv
bnN0IENsaXBSZWN0cyYgcGFyZW50UmVjdHMsIEVQb3NpdGlvbiBwb3NpdGlvbikKK0NsaXBSZWN0
IFJlbmRlckxheWVyOjpiYWNrZ3JvdW5kQ2xpcFJlY3RGb3JQb3NpdGlvbihjb25zdCBDbGlwUmVj
dHMmIHBhcmVudFJlY3RzLCBFUG9zaXRpb24gcG9zaXRpb24pIGNvbnN0CiB7CiAgICAgaWYgKHBv
c2l0aW9uID09IEZpeGVkUG9zaXRpb24pCiAgICAgICAgIHJldHVybiBwYXJlbnRSZWN0cy5maXhl
ZENsaXBSZWN0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCmluZGV4IDQw
NWMwZWUuLjU5ZTIzNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCkBA
IC04Myw5NSArODMsNiBAQCBlbnVtIFJlcGFpbnRTdGF0dXMgewogICAgIE5lZWRzRnVsbFJlcGFp
bnRGb3JQb3NpdGlvbmVkTW92ZW1lbnRMYXlvdXQKIH07CiAKLWNsYXNzIENsaXBSZWN0cyB7Ci0g
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8Q2xpcFJlY3RzPiBjcmVhdGUoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBDbGlwUmVjdHMpOwotICAgIH0KLQotICAgIHN0YXRpYyBQYXNzUmVmUHRyPENsaXBSZWN0cz4g
Y3JlYXRlKGNvbnN0IENsaXBSZWN0cyYgb3RoZXIpCi0gICAgewotICAgICAgICByZXR1cm4gYWRv
cHRSZWYobmV3IENsaXBSZWN0cyhvdGhlcikpOwotICAgIH0KLQotICAgIENsaXBSZWN0cygpCi0g
ICAgICAgIDogbV9yZWZDbnQoMSkKLSAgICAgICAgLCBtX2ZpeGVkKGZhbHNlKQotICAgIHsKLSAg
ICB9Ci0KLSAgICB2b2lkIHJlc2V0KGNvbnN0IExheW91dFJlY3QmIHIpCi0gICAgewotICAgICAg
ICBtX292ZXJmbG93Q2xpcFJlY3QgPSByOwotICAgICAgICBtX2ZpeGVkQ2xpcFJlY3QgPSByOwot
ICAgICAgICBtX3Bvc0NsaXBSZWN0ID0gcjsKLSAgICAgICAgbV9maXhlZCA9IGZhbHNlOwotICAg
IH0KLSAgICAKLSAgICBjb25zdCBDbGlwUmVjdCYgb3ZlcmZsb3dDbGlwUmVjdCgpIGNvbnN0IHsg
cmV0dXJuIG1fb3ZlcmZsb3dDbGlwUmVjdDsgfQotICAgIHZvaWQgc2V0T3ZlcmZsb3dDbGlwUmVj
dChjb25zdCBDbGlwUmVjdCYgcikgeyBtX292ZXJmbG93Q2xpcFJlY3QgPSByOyB9Ci0KLSAgICBj
b25zdCBDbGlwUmVjdCYgZml4ZWRDbGlwUmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fZml4ZWRDbGlw
UmVjdDsgfQotICAgIHZvaWQgc2V0Rml4ZWRDbGlwUmVjdChjb25zdCBDbGlwUmVjdCZyKSB7IG1f
Zml4ZWRDbGlwUmVjdCA9IHI7IH0KLQotICAgIGNvbnN0IENsaXBSZWN0JiBwb3NDbGlwUmVjdCgp
IGNvbnN0IHsgcmV0dXJuIG1fcG9zQ2xpcFJlY3Q7IH0KLSAgICB2b2lkIHNldFBvc0NsaXBSZWN0
KGNvbnN0IENsaXBSZWN0JiByKSB7IG1fcG9zQ2xpcFJlY3QgPSByOyB9Ci0KLSAgICBib29sIGZp
eGVkKCkgY29uc3QgeyByZXR1cm4gbV9maXhlZDsgfQotICAgIHZvaWQgc2V0Rml4ZWQoYm9vbCBm
aXhlZCkgeyBtX2ZpeGVkID0gZml4ZWQ7IH0KLQotICAgIHZvaWQgcmVmKCkgeyBtX3JlZkNudCsr
OyB9Ci0gICAgdm9pZCBkZXJlZigpCi0gICAgewotICAgICAgICBpZiAoIS0tbV9yZWZDbnQpCi0g
ICAgICAgICAgICBkZWxldGUgdGhpczsKLSAgICB9Ci0KLSAgICBib29sIG9wZXJhdG9yPT0oY29u
c3QgQ2xpcFJlY3RzJiBvdGhlcikgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBtX292ZXJm
bG93Q2xpcFJlY3QgPT0gb3RoZXIub3ZlcmZsb3dDbGlwUmVjdCgpICYmCi0gICAgICAgICAgICAg
ICBtX2ZpeGVkQ2xpcFJlY3QgPT0gb3RoZXIuZml4ZWRDbGlwUmVjdCgpICYmCi0gICAgICAgICAg
ICAgICBtX3Bvc0NsaXBSZWN0ID09IG90aGVyLnBvc0NsaXBSZWN0KCkgJiYKLSAgICAgICAgICAg
ICAgIG1fZml4ZWQgPT0gb3RoZXIuZml4ZWQoKTsKLSAgICB9Ci0KLSAgICBDbGlwUmVjdHMmIG9w
ZXJhdG9yPShjb25zdCBDbGlwUmVjdHMmIG90aGVyKQotICAgIHsKLSAgICAgICAgbV9vdmVyZmxv
d0NsaXBSZWN0ID0gb3RoZXIub3ZlcmZsb3dDbGlwUmVjdCgpOwotICAgICAgICBtX2ZpeGVkQ2xp
cFJlY3QgPSBvdGhlci5maXhlZENsaXBSZWN0KCk7Ci0gICAgICAgIG1fcG9zQ2xpcFJlY3QgPSBv
dGhlci5wb3NDbGlwUmVjdCgpOwotICAgICAgICBtX2ZpeGVkID0gb3RoZXIuZml4ZWQoKTsKLSAg
ICAgICAgcmV0dXJuICp0aGlzOwotICAgIH0KLQotcHJpdmF0ZToKLSAgICBDbGlwUmVjdHMoY29u
c3QgTGF5b3V0UmVjdCYgcikKLSAgICAgICAgOiBtX292ZXJmbG93Q2xpcFJlY3QocikKLSAgICAg
ICAgLCBtX2ZpeGVkQ2xpcFJlY3QocikKLSAgICAgICAgLCBtX3Bvc0NsaXBSZWN0KHIpCi0gICAg
ICAgICwgbV9yZWZDbnQoMSkKLSAgICAgICAgLCBtX2ZpeGVkKGZhbHNlKQotICAgIHsKLSAgICB9
Ci0KLSAgICBDbGlwUmVjdHMoY29uc3QgQ2xpcFJlY3RzJiBvdGhlcikKLSAgICAgICAgOiBtX292
ZXJmbG93Q2xpcFJlY3Qob3RoZXIub3ZlcmZsb3dDbGlwUmVjdCgpKQotICAgICAgICAsIG1fZml4
ZWRDbGlwUmVjdChvdGhlci5maXhlZENsaXBSZWN0KCkpCi0gICAgICAgICwgbV9wb3NDbGlwUmVj
dChvdGhlci5wb3NDbGlwUmVjdCgpKQotICAgICAgICAsIG1fcmVmQ250KDEpCi0gICAgICAgICwg
bV9maXhlZChvdGhlci5maXhlZCgpKQotICAgIHsKLSAgICB9Ci0KLSAgICBDbGlwUmVjdCBtX292
ZXJmbG93Q2xpcFJlY3Q7Ci0gICAgQ2xpcFJlY3QgbV9maXhlZENsaXBSZWN0OwotICAgIENsaXBS
ZWN0IG1fcG9zQ2xpcFJlY3Q7Ci0gICAgdW5zaWduZWQgbV9yZWZDbnQgOiAzMTsKLSAgICBib29s
IG1fZml4ZWQgOiAxOwotfTsKLQogZW51bSBDbGlwUmVjdHNUeXBlIHsKICAgICBQYWludGluZ0Ns
aXBSZWN0cywgLy8gUmVsYXRpdmUgdG8gcGFpbnRpbmcgYW5jZXN0b3IuIFVzZWQgZm9yIHBhaW50
aW5nLgogICAgIFJvb3RSZWxhdGl2ZUNsaXBSZWN0cywgLy8gUmVsYXRpdmUgdG8gdGhlIGFuY2Vz
dG9yIHRyZWF0ZWQgYXMgdGhlIHJvb3QgKGUuZy4gdHJhbnNmb3JtZWQgbGF5ZXIpLiBVc2VkIGZv
ciBoaXQgdGVzdGluZy4KQEAgLTE5MSwzOSArMTAyLDYgQEAgZW51bSBTaG91bGRBcHBseVJvb3RP
ZmZzZXRUb0ZyYWdtZW50cyB7CiAgICAgSWdub3JlUm9vdE9mZnNldEZvckZyYWdtZW50cwogfTsK
IAotc3RydWN0IENsaXBSZWN0c0NhY2hlIHsKLSAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
LXB1YmxpYzoKLSAgICBDbGlwUmVjdHNDYWNoZSgpCi0gICAgewotI2lmbmRlZiBOREVCVUcKLSAg
ICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBOdW1DYWNoZWRDbGlwUmVjdHNUeXBlczsgKytpKSB7
Ci0gICAgICAgICAgICBtX2NsaXBSZWN0c1Jvb3RbaV0gPSAwOwotICAgICAgICAgICAgbV9zY3Jv
bGxiYXJSZWxldmFuY3lbaV0gPSBJZ25vcmVPdmVybGF5U2Nyb2xsYmFyU2l6ZTsKLSAgICAgICAg
fQotI2VuZGlmCi0gICAgfQotCi0gICAgUGFzc1JlZlB0cjxDbGlwUmVjdHM+IGdldENsaXBSZWN0
cyhDbGlwUmVjdHNUeXBlIGNsaXBSZWN0c1R5cGUsIFNob3VsZFJlc3BlY3RPdmVyZmxvd0NsaXAg
cmVzcGVjdE92ZXJmbG93KSB7IHJldHVybiBtX2NsaXBSZWN0c1tnZXRJbmRleChjbGlwUmVjdHNU
eXBlLCByZXNwZWN0T3ZlcmZsb3cpXTsgfQotICAgIHZvaWQgc2V0Q2xpcFJlY3RzKENsaXBSZWN0
c1R5cGUgY2xpcFJlY3RzVHlwZSwgU2hvdWxkUmVzcGVjdE92ZXJmbG93Q2xpcCByZXNwZWN0T3Zl
cmZsb3csIFBhc3NSZWZQdHI8Q2xpcFJlY3RzPiBjbGlwUmVjdHMpIHsgbV9jbGlwUmVjdHNbZ2V0
SW5kZXgoY2xpcFJlY3RzVHlwZSwgcmVzcGVjdE92ZXJmbG93KV0gPSBjbGlwUmVjdHM7IH0KLQot
I2lmbmRlZiBOREVCVUcKLSAgICBjb25zdCBSZW5kZXJMYXllciogbV9jbGlwUmVjdHNSb290W051
bUNhY2hlZENsaXBSZWN0c1R5cGVzXTsKLSAgICBPdmVybGF5U2Nyb2xsYmFyU2l6ZVJlbGV2YW5j
eSBtX3Njcm9sbGJhclJlbGV2YW5jeVtOdW1DYWNoZWRDbGlwUmVjdHNUeXBlc107Ci0jZW5kaWYK
LQotcHJpdmF0ZToKLSAgICBpbnQgZ2V0SW5kZXgoQ2xpcFJlY3RzVHlwZSBjbGlwUmVjdHNUeXBl
LCBTaG91bGRSZXNwZWN0T3ZlcmZsb3dDbGlwIHJlc3BlY3RPdmVyZmxvdykKLSAgICB7Ci0gICAg
ICAgIGludCBpbmRleCA9IHN0YXRpY19jYXN0PGludD4oY2xpcFJlY3RzVHlwZSk7Ci0gICAgICAg
IGlmIChyZXNwZWN0T3ZlcmZsb3cgPT0gUmVzcGVjdE92ZXJmbG93Q2xpcCkKLSAgICAgICAgICAg
IGluZGV4ICs9IHN0YXRpY19jYXN0PGludD4oTnVtQ2FjaGVkQ2xpcFJlY3RzVHlwZXMpOwotICAg
ICAgICByZXR1cm4gaW5kZXg7Ci0gICAgfQotCi0gICAgUmVmUHRyPENsaXBSZWN0cz4gbV9jbGlw
UmVjdHNbTnVtQ2FjaGVkQ2xpcFJlY3RzVHlwZXMgKiAyXTsKLX07Ci0KIGNsYXNzIFJlbmRlckxh
eWVyIGZpbmFsIDogcHVibGljIFNjcm9sbGFibGVBcmVhIHsKICAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKIHB1YmxpYzoKQEAgLTU5OCwxOCArNDc2LDYgQEAgcHVibGljOgogICAgIHZvaWQg
Y2FsY3VsYXRlUmVjdHMoY29uc3QgQ2xpcFJlY3RzQ29udGV4dCYsIGNvbnN0IExheW91dFJlY3Qm
IHBhaW50RGlydHlSZWN0LCBMYXlvdXRSZWN0JiBsYXllckJvdW5kcywKICAgICAgICAgQ2xpcFJl
Y3QmIGJhY2tncm91bmRSZWN0LCBDbGlwUmVjdCYgZm9yZWdyb3VuZFJlY3QsIENsaXBSZWN0JiBv
dXRsaW5lUmVjdCwgY29uc3QgTGF5b3V0U2l6ZSYgb2Zmc2V0RnJvbVJvb3QpIGNvbnN0OwogCi0g
ICAgLy8gQ29tcHV0ZSBhbmQgY2FjaGUgY2xpcCByZWN0cyBjb21wdXRlZCB3aXRoIHRoZSBnaXZl
biBsYXllciBhcyB0aGUgcm9vdAotICAgIHZvaWQgdXBkYXRlQ2xpcFJlY3RzKGNvbnN0IENsaXBS
ZWN0c0NvbnRleHQmKTsKLSAgICAvLyBDb21wdXRlIGFuZCByZXR1cm4gdGhlIGNsaXAgcmVjdHMu
IElmIHVzZUNhY2hlZCBpcyB0cnVlLCB3aWxsIHVzZWQgcHJldmlvdXNseSBjb21wdXRlZCBjbGlw
IHJlY3RzIG9uIGFuY2VzdG9ycwotICAgIC8vIChyYXRoZXIgdGhhbiBjb21wdXRpbmcgdGhlbSBh
bGwgZnJvbSBzY3JhdGNoIHVwIHRoZSBwYXJlbnQgY2hhaW4pLgotICAgIHZvaWQgY2FsY3VsYXRl
Q2xpcFJlY3RzKGNvbnN0IENsaXBSZWN0c0NvbnRleHQmLCBDbGlwUmVjdHMmKSBjb25zdDsKLQot
ICAgIENsaXBSZWN0cyogY2xpcFJlY3RzKGNvbnN0IENsaXBSZWN0c0NvbnRleHQmIGNvbnRleHQp
IGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQoY29udGV4dC5jbGlwUmVjdHNUeXBlIDwgTnVt
Q2FjaGVkQ2xpcFJlY3RzVHlwZXMpOwotICAgICAgICByZXR1cm4gbV9jbGlwUmVjdHNDYWNoZSA/
IG1fY2xpcFJlY3RzQ2FjaGUtPmdldENsaXBSZWN0cyhjb250ZXh0LmNsaXBSZWN0c1R5cGUsIGNv
bnRleHQucmVzcGVjdE92ZXJmbG93Q2xpcCkuZ2V0KCkgOiAwOwotICAgIH0KLQogICAgIExheW91
dFJlY3QgY2hpbGRyZW5DbGlwUmVjdCgpIGNvbnN0OyAvLyBSZXR1cm5zIHRoZSBmb3JlZ3JvdW5k
IGNsaXAgcmVjdCBvZiB0aGUgbGF5ZXIgaW4gdGhlIGRvY3VtZW50J3MgY29vcmRpbmF0ZSBzcGFj
ZS4KICAgICBMYXlvdXRSZWN0IHNlbGZDbGlwUmVjdCgpIGNvbnN0OyAvLyBSZXR1cm5zIHRoZSBi
YWNrZ3JvdW5kIGNsaXAgcmVjdCBvZiB0aGUgbGF5ZXIgaW4gdGhlIGRvY3VtZW50J3MgY29vcmRp
bmF0ZSBzcGFjZS4KICAgICBMYXlvdXRSZWN0IGxvY2FsQ2xpcFJlY3QoYm9vbCYgY2xpcEV4Y2Vl
ZHNCb3VuZHMpIGNvbnN0OyAvLyBSZXR1cm5zIHRoZSBiYWNrZ3JvdW5kIGNsaXAgcmVjdCBvZiB0
aGUgbGF5ZXIgaW4gdGhlIGxvY2FsIGNvb3JkaW5hdGUgc3BhY2UuCkBAIC04MDEsNiArNjY3LDEw
NyBAQCBwcml2YXRlOgogICAgICAgICBib29sIGNsaXBUb0RpcnR5UmVjdDsKICAgICB9OwogCisg
ICAgY2xhc3MgQ2xpcFJlY3RzIHsKKyAgICAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Cisg
ICAgcHVibGljOgorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxDbGlwUmVjdHM+IGNyZWF0ZSgp
CisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ2xpcFJlY3RzKTsK
KyAgICAgICAgfQorCisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPENsaXBSZWN0cz4gY3JlYXRl
KGNvbnN0IENsaXBSZWN0cyYgb3RoZXIpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgQ2xpcFJlY3RzKG90aGVyKSk7CisgICAgICAgIH0KKworICAgICAgICBDbGlw
UmVjdHMoKSA9IGRlZmF1bHQ7CisKKyAgICAgICAgdm9pZCByZXNldChjb25zdCBMYXlvdXRSZWN0
JiByKTsKKworICAgICAgICBjb25zdCBDbGlwUmVjdCYgb3ZlcmZsb3dDbGlwUmVjdCgpIGNvbnN0
IHsgcmV0dXJuIG1fb3ZlcmZsb3dDbGlwUmVjdDsgfQorICAgICAgICB2b2lkIHNldE92ZXJmbG93
Q2xpcFJlY3QoY29uc3QgQ2xpcFJlY3QmIHIpIHsgbV9vdmVyZmxvd0NsaXBSZWN0ID0gcjsgfQor
CisgICAgICAgIGNvbnN0IENsaXBSZWN0JiBmaXhlZENsaXBSZWN0KCkgY29uc3QgeyByZXR1cm4g
bV9maXhlZENsaXBSZWN0OyB9CisgICAgICAgIHZvaWQgc2V0Rml4ZWRDbGlwUmVjdChjb25zdCBD
bGlwUmVjdCZyKSB7IG1fZml4ZWRDbGlwUmVjdCA9IHI7IH0KKworICAgICAgICBjb25zdCBDbGlw
UmVjdCYgcG9zQ2xpcFJlY3QoKSBjb25zdCB7IHJldHVybiBtX3Bvc0NsaXBSZWN0OyB9CisgICAg
ICAgIHZvaWQgc2V0UG9zQ2xpcFJlY3QoY29uc3QgQ2xpcFJlY3QmIHIpIHsgbV9wb3NDbGlwUmVj
dCA9IHI7IH0KKworICAgICAgICBib29sIGZpeGVkKCkgY29uc3QgeyByZXR1cm4gbV9maXhlZDsg
fQorICAgICAgICB2b2lkIHNldEZpeGVkKGJvb2wgZml4ZWQpIHsgbV9maXhlZCA9IGZpeGVkOyB9
CisKKyAgICAgICAgdm9pZCByZWYoKSB7IG1fcmVmQ250Kys7IH0KKyAgICAgICAgdm9pZCBkZXJl
ZigpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghLS1tX3JlZkNudCkKKyAgICAgICAgICAg
ICAgICBkZWxldGUgdGhpczsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2wgb3BlcmF0b3I9PShj
b25zdCBDbGlwUmVjdHMmIG90aGVyKSBjb25zdDsKKyAgICAgICAgQ2xpcFJlY3RzJiBvcGVyYXRv
cj0oY29uc3QgQ2xpcFJlY3RzJiBvdGhlcik7CisKKyAgICBwcml2YXRlOgorICAgICAgICBDbGlw
UmVjdHMoY29uc3QgTGF5b3V0UmVjdCYgcikKKyAgICAgICAgICAgIDogbV9vdmVyZmxvd0NsaXBS
ZWN0KHIpCisgICAgICAgICAgICAsIG1fZml4ZWRDbGlwUmVjdChyKQorICAgICAgICAgICAgLCBt
X3Bvc0NsaXBSZWN0KHIpCisgICAgICAgIHsKKyAgICAgICAgfQorCisgICAgICAgIENsaXBSZWN0
cyhjb25zdCBDbGlwUmVjdHMmIG90aGVyKQorICAgICAgICAgICAgOiBtX292ZXJmbG93Q2xpcFJl
Y3Qob3RoZXIub3ZlcmZsb3dDbGlwUmVjdCgpKQorICAgICAgICAgICAgLCBtX2ZpeGVkQ2xpcFJl
Y3Qob3RoZXIuZml4ZWRDbGlwUmVjdCgpKQorICAgICAgICAgICAgLCBtX3Bvc0NsaXBSZWN0KG90
aGVyLnBvc0NsaXBSZWN0KCkpCisgICAgICAgICAgICAsIG1fZml4ZWQob3RoZXIuZml4ZWQoKSkK
KyAgICAgICAgeworICAgICAgICB9CisKKyAgICAgICAgQ2xpcFJlY3QgbV9vdmVyZmxvd0NsaXBS
ZWN0OworICAgICAgICBDbGlwUmVjdCBtX2ZpeGVkQ2xpcFJlY3Q7CisgICAgICAgIENsaXBSZWN0
IG1fcG9zQ2xpcFJlY3Q7CisgICAgICAgIHVuc2lnbmVkIG1fcmVmQ250ID0gMTsKKyAgICAgICAg
Ym9vbCBtX2ZpeGVkID0gZmFsc2U7CisgICAgfTsKKworICAgIHN0cnVjdCBDbGlwUmVjdHNDYWNo
ZSB7CisgICAgICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworICAgIHB1YmxpYzoKKyAgICAg
ICAgQ2xpcFJlY3RzQ2FjaGUoKQorICAgICAgICB7CisjaWZuZGVmIE5ERUJVRworICAgICAgICAg
ICAgZm9yIChpbnQgaSA9IDA7IGkgPCBOdW1DYWNoZWRDbGlwUmVjdHNUeXBlczsgKytpKSB7Cisg
ICAgICAgICAgICAgICAgbV9jbGlwUmVjdHNSb290W2ldID0gMDsKKyAgICAgICAgICAgICAgICBt
X3Njcm9sbGJhclJlbGV2YW5jeVtpXSA9IElnbm9yZU92ZXJsYXlTY3JvbGxiYXJTaXplOworICAg
ICAgICAgICAgfQorI2VuZGlmCisgICAgICAgIH0KKworICAgICAgICBQYXNzUmVmUHRyPENsaXBS
ZWN0cz4gZ2V0Q2xpcFJlY3RzKENsaXBSZWN0c1R5cGUgY2xpcFJlY3RzVHlwZSwgU2hvdWxkUmVz
cGVjdE92ZXJmbG93Q2xpcCByZXNwZWN0T3ZlcmZsb3cpIHsgcmV0dXJuIG1fY2xpcFJlY3RzW2dl
dEluZGV4KGNsaXBSZWN0c1R5cGUsIHJlc3BlY3RPdmVyZmxvdyldOyB9CisgICAgICAgIHZvaWQg
c2V0Q2xpcFJlY3RzKENsaXBSZWN0c1R5cGUgY2xpcFJlY3RzVHlwZSwgU2hvdWxkUmVzcGVjdE92
ZXJmbG93Q2xpcCByZXNwZWN0T3ZlcmZsb3csIFBhc3NSZWZQdHI8Q2xpcFJlY3RzPiBjbGlwUmVj
dHMpIHsgbV9jbGlwUmVjdHNbZ2V0SW5kZXgoY2xpcFJlY3RzVHlwZSwgcmVzcGVjdE92ZXJmbG93
KV0gPSBjbGlwUmVjdHM7IH0KKworI2lmbmRlZiBOREVCVUcKKyAgICAgICAgY29uc3QgUmVuZGVy
TGF5ZXIqIG1fY2xpcFJlY3RzUm9vdFtOdW1DYWNoZWRDbGlwUmVjdHNUeXBlc107CisgICAgICAg
IE92ZXJsYXlTY3JvbGxiYXJTaXplUmVsZXZhbmN5IG1fc2Nyb2xsYmFyUmVsZXZhbmN5W051bUNh
Y2hlZENsaXBSZWN0c1R5cGVzXTsKKyNlbmRpZgorCisgICAgcHJpdmF0ZToKKyAgICAgICAgaW50
IGdldEluZGV4KENsaXBSZWN0c1R5cGUgY2xpcFJlY3RzVHlwZSwgU2hvdWxkUmVzcGVjdE92ZXJm
bG93Q2xpcCByZXNwZWN0T3ZlcmZsb3cpOworCisgICAgICAgIFJlZlB0cjxDbGlwUmVjdHM+IG1f
Y2xpcFJlY3RzW051bUNhY2hlZENsaXBSZWN0c1R5cGVzICogMl07CisgICAgfTsKKworICAgIC8v
IENvbXB1dGUgYW5kIGNhY2hlIGNsaXAgcmVjdHMgY29tcHV0ZWQgd2l0aCB0aGUgZ2l2ZW4gbGF5
ZXIgYXMgdGhlIHJvb3QKKyAgICB2b2lkIHVwZGF0ZUNsaXBSZWN0cyhjb25zdCBDbGlwUmVjdHND
b250ZXh0Jik7CisgICAgLy8gQ29tcHV0ZSBhbmQgcmV0dXJuIHRoZSBjbGlwIHJlY3RzLiBJZiB1
c2VDYWNoZWQgaXMgdHJ1ZSwgd2lsbCB1c2VkIHByZXZpb3VzbHkgY29tcHV0ZWQgY2xpcCByZWN0
cyBvbiBhbmNlc3RvcnMKKyAgICAvLyAocmF0aGVyIHRoYW4gY29tcHV0aW5nIHRoZW0gYWxsIGZy
b20gc2NyYXRjaCB1cCB0aGUgcGFyZW50IGNoYWluKS4KKyAgICB2b2lkIGNhbGN1bGF0ZUNsaXBS
ZWN0cyhjb25zdCBDbGlwUmVjdHNDb250ZXh0JiwgQ2xpcFJlY3RzJikgY29uc3Q7CisKKyAgICBD
bGlwUmVjdHMqIGNsaXBSZWN0cyhjb25zdCBDbGlwUmVjdHNDb250ZXh0JiBjb250ZXh0KSBjb25z
dAorICAgIHsKKyAgICAgICAgQVNTRVJUKGNvbnRleHQuY2xpcFJlY3RzVHlwZSA8IE51bUNhY2hl
ZENsaXBSZWN0c1R5cGVzKTsKKyAgICAgICAgcmV0dXJuIG1fY2xpcFJlY3RzQ2FjaGUgPyBtX2Ns
aXBSZWN0c0NhY2hlLT5nZXRDbGlwUmVjdHMoY29udGV4dC5jbGlwUmVjdHNUeXBlLCBjb250ZXh0
LnJlc3BlY3RPdmVyZmxvd0NsaXApLmdldCgpIDogMDsKKyAgICB9CisKICAgICB2b2lkIHVwZGF0
ZVpPcmRlckxpc3RzKCk7CiAgICAgdm9pZCByZWJ1aWxkWk9yZGVyTGlzdHMoKTsKICAgICB2b2lk
IHJlYnVpbGRaT3JkZXJMaXN0cyhDb2xsZWN0TGF5ZXJzQmVoYXZpb3IsIHN0ZDo6dW5pcXVlX3B0
cjxWZWN0b3I8UmVuZGVyTGF5ZXIqPj4mLCBzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPFJlbmRlckxh
eWVyKj4+Jik7CkBAIC0xMDMxLDYgKzk5OCw3IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAgIHZv
aWQgcGFyZW50Q2xpcFJlY3RzKGNvbnN0IENsaXBSZWN0c0NvbnRleHQmLCBDbGlwUmVjdHMmKSBj
b25zdDsKKyAgICBDbGlwUmVjdCBiYWNrZ3JvdW5kQ2xpcFJlY3RGb3JQb3NpdGlvbihjb25zdCBD
bGlwUmVjdHMmIHBhcmVudFJlY3RzLCBFUG9zaXRpb24gcG9zaXRpb24pIGNvbnN0OwogICAgIENs
aXBSZWN0IGJhY2tncm91bmRDbGlwUmVjdChjb25zdCBDbGlwUmVjdHNDb250ZXh0JikgY29uc3Q7
CiAKICAgICBSZW5kZXJMYXllciogZW5jbG9zaW5nVHJhbnNmb3JtZWRBbmNlc3RvcigpIGNvbnN0
OwpAQCAtMTI2Niw2ICsxMjM0LDM5IEBAIGlubGluZSB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVa
T3JkZXJMaXN0cygpCiAgICAgcmVidWlsZFpPcmRlckxpc3RzKCk7CiB9CiAKK2lubGluZSB2b2lk
IFJlbmRlckxheWVyOjpDbGlwUmVjdHM6OnJlc2V0KGNvbnN0IExheW91dFJlY3QmIHIpCit7Cisg
ICAgbV9vdmVyZmxvd0NsaXBSZWN0ID0gcjsKKyAgICBtX2ZpeGVkQ2xpcFJlY3QgPSByOworICAg
IG1fcG9zQ2xpcFJlY3QgPSByOworICAgIG1fZml4ZWQgPSBmYWxzZTsKK30KKworaW5saW5lIGJv
b2wgUmVuZGVyTGF5ZXI6OkNsaXBSZWN0czo6b3BlcmF0b3I9PShjb25zdCBSZW5kZXJMYXllcjo6
Q2xpcFJlY3RzJiBvdGhlcikgY29uc3QKK3sKKyAgICByZXR1cm4gbV9vdmVyZmxvd0NsaXBSZWN0
ID09IG90aGVyLm92ZXJmbG93Q2xpcFJlY3QoKSAmJgorICAgIG1fZml4ZWRDbGlwUmVjdCA9PSBv
dGhlci5maXhlZENsaXBSZWN0KCkgJiYKKyAgICBtX3Bvc0NsaXBSZWN0ID09IG90aGVyLnBvc0Ns
aXBSZWN0KCkgJiYKKyAgICBtX2ZpeGVkID09IG90aGVyLmZpeGVkKCk7Cit9CisKK2lubGluZSBS
ZW5kZXJMYXllcjo6Q2xpcFJlY3RzJiBSZW5kZXJMYXllcjo6Q2xpcFJlY3RzOjpvcGVyYXRvcj0o
Y29uc3QgUmVuZGVyTGF5ZXI6OkNsaXBSZWN0cyYgb3RoZXIpCit7CisgICAgbV9vdmVyZmxvd0Ns
aXBSZWN0ID0gb3RoZXIub3ZlcmZsb3dDbGlwUmVjdCgpOworICAgIG1fZml4ZWRDbGlwUmVjdCA9
IG90aGVyLmZpeGVkQ2xpcFJlY3QoKTsKKyAgICBtX3Bvc0NsaXBSZWN0ID0gb3RoZXIucG9zQ2xp
cFJlY3QoKTsKKyAgICBtX2ZpeGVkID0gb3RoZXIuZml4ZWQoKTsKKyAgICByZXR1cm4gKnRoaXM7
Cit9CisKK2lubGluZSBpbnQgUmVuZGVyTGF5ZXI6OkNsaXBSZWN0c0NhY2hlOjpnZXRJbmRleChD
bGlwUmVjdHNUeXBlIGNsaXBSZWN0c1R5cGUsIFNob3VsZFJlc3BlY3RPdmVyZmxvd0NsaXAgcmVz
cGVjdE92ZXJmbG93KQoreworICAgIGludCBpbmRleCA9IHN0YXRpY19jYXN0PGludD4oY2xpcFJl
Y3RzVHlwZSk7CisgICAgaWYgKHJlc3BlY3RPdmVyZmxvdyA9PSBSZXNwZWN0T3ZlcmZsb3dDbGlw
KQorICAgICAgICBpbmRleCArPSBzdGF0aWNfY2FzdDxpbnQ+KE51bUNhY2hlZENsaXBSZWN0c1R5
cGVzKTsKKyAgICByZXR1cm4gaW5kZXg7Cit9CisKICNpZiAhQVNTRVJUX0RJU0FCTEVECiBjbGFz
cyBMYXllckxpc3RNdXRhdGlvbkRldGVjdG9yIHsKIHB1YmxpYzoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>244679</attachid>
            <date>2015-01-14 21:20:44 -0800</date>
            <delta_ts>2015-01-15 15:13:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-140461-20150114212050.patch</filename>
            <type>text/plain</type>
            <size>14003</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc4NDgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmFjYjY1Mzk1NmMxMGI2
ZjFmYThjOWJjNjU1NTNhMTI5ZTdjOWU1Ny4uODdlNmIxNDVlNDBmNzI4NWMxMGM2MTJkMTNkZjk4
ZWU5ZjJiNmQ3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDU5IEBACiAyMDE1LTAxLTE0ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKKyAgICAgICAgTW92ZSBDbGlwUmVjdHMgYW5k
IENsaXBSZWN0c0NhY2hlIGNsYXNzZXMgdG8gUmVuZGVyTGF5ZXIuY3BwLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQwNDYxCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZSBjbGFzc2VzIG9ubHkgdXNl
ZCBieSBSZW5kZXJMYXllciB0byBSZW5kZXJMYXllci5jcHAuCisKKyAgICAgICAgTm8gY2hhbmdl
IGluIGZ1bmN0aW9uYWxpdHkuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q2xpcFJlY3RzOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6Q2xpcFJlY3RzOjpyZXNldCk6CisgICAgICAgIChXZWJDb3JlOjpDbGlwUmVjdHM6Om92ZXJm
bG93Q2xpcFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6Q2xpcFJlY3RzOjpzZXRPdmVyZmxvd0Ns
aXBSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNsaXBSZWN0czo6Zml4ZWRDbGlwUmVjdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDbGlwUmVjdHM6OnNldEZpeGVkQ2xpcFJlY3QpOgorICAgICAgICAo
V2ViQ29yZTo6Q2xpcFJlY3RzOjpwb3NDbGlwUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpDbGlw
UmVjdHM6OnNldFBvc0NsaXBSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNsaXBSZWN0czo6Zml4
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6Q2xpcFJlY3RzOjpzZXRGaXhlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpDbGlwUmVjdHM6OnJlZik6CisgICAgICAgIChXZWJDb3JlOjpDbGlwUmVjdHM6OmRl
cmVmKToKKyAgICAgICAgKFdlYkNvcmU6OkNsaXBSZWN0czo6b3BlcmF0b3I9PSk6CisgICAgICAg
IChXZWJDb3JlOjpDbGlwUmVjdHM6Om9wZXJhdG9yPSk6CisgICAgICAgIChXZWJDb3JlOjpDbGlw
UmVjdHM6OkNsaXBSZWN0cyk6CisgICAgICAgIChXZWJDb3JlOjpDbGlwUmVjdHNDYWNoZTo6Q2xp
cFJlY3RzQ2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6Q2xpcFJlY3RzQ2FjaGU6OmdldENsaXBS
ZWN0cyk6CisgICAgICAgIChXZWJDb3JlOjpDbGlwUmVjdHNDYWNoZTo6c2V0Q2xpcFJlY3RzKToK
KyAgICAgICAgKFdlYkNvcmU6OkNsaXBSZWN0c0NhY2hlOjpnZXRJbmRleCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllcjo6Y2xpcFJlY3RzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyOjpjYWxjdWxhdGVDbGlwUmVjdHMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJM
YXllci5oOgorICAgICAgICAoV2ViQ29yZTo6Q2xpcFJlY3RzOjpjcmVhdGUpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6Q2xpcFJlY3RzOjpDbGlwUmVjdHMpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6Q2xpcFJlY3RzOjpyZXNldCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpDbGlwUmVjdHM6Om92ZXJmbG93Q2xpcFJlY3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6Q2xpcFJlY3RzOjpzZXRPdmVyZmxvd0NsaXBSZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkNsaXBSZWN0czo6Zml4ZWRDbGlwUmVjdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpDbGlwUmVjdHM6OnNldEZpeGVkQ2xpcFJlY3QpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6Q2xpcFJlY3RzOjpwb3NDbGlwUmVjdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpDbGlwUmVjdHM6OnNldFBvc0NsaXBSZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkNsaXBSZWN0czo6Zml4ZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q2xpcFJlY3Rz
OjpzZXRGaXhlZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDbGlwUmVjdHM6OnJlZik6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDbGlwUmVjdHM6OmRlcmVmKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkNsaXBSZWN0czo6b3BlcmF0b3I9PSk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpDbGlwUmVjdHM6Om9wZXJhdG9yPSk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpDbGlwUmVjdHNDYWNoZTo6Q2xpcFJlY3RzQ2FjaGUpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6Q2xpcFJlY3RzQ2FjaGU6OmdldENsaXBSZWN0cyk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpDbGlwUmVjdHNDYWNoZTo6c2V0Q2xpcFJlY3RzKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkNsaXBSZWN0c0NhY2hlOjpnZXRJbmRleCk6IERlbGV0ZWQuCisKKzIw
MTUtMDEtMTQgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKwogICAgICAgICBNb3Zl
IExheW91dEZyYWdtZW50IGFuZCBDbGlwUmVjdCB0byB0aGVpciBvd24gZmlsZXMuCiAgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDA0NTcKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXggY2M0YWQyZDAzN2U3ZTU1MTA0
OGFkYTBiNTllM2M0MDkyM2YzMzkzMy4uYzVlYmUyMTU5ZDIwMDcxOTY4NjQxN2NjYzMyY2M3OWMw
YmM2MzUyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC0x
MzMsNiArMTMzLDEyMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBI
VE1MTmFtZXM7CiAKK2NsYXNzIENsaXBSZWN0cyB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8Q2xpcFJlY3RzPiBjcmVhdGUoKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBDbGlwUmVjdHMpOworICAgIH0KKwor
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPENsaXBSZWN0cz4gY3JlYXRlKGNvbnN0IENsaXBSZWN0cyYg
b3RoZXIpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IENsaXBSZWN0cyhvdGhl
cikpOworICAgIH0KKworICAgIENsaXBSZWN0cygpID0gZGVmYXVsdDsKKworICAgIHZvaWQgcmVz
ZXQoY29uc3QgTGF5b3V0UmVjdCYgY2xpcFJlY3QpCisgICAgeworICAgICAgICBtX292ZXJmbG93
Q2xpcFJlY3QgPSBjbGlwUmVjdDsKKyAgICAgICAgbV9maXhlZENsaXBSZWN0ID0gY2xpcFJlY3Q7
CisgICAgICAgIG1fcG9zQ2xpcFJlY3QgPSBjbGlwUmVjdDsKKyAgICAgICAgbV9maXhlZCA9IGZh
bHNlOworICAgIH0KKworICAgIGNvbnN0IENsaXBSZWN0JiBvdmVyZmxvd0NsaXBSZWN0KCkgY29u
c3QgeyByZXR1cm4gbV9vdmVyZmxvd0NsaXBSZWN0OyB9CisgICAgdm9pZCBzZXRPdmVyZmxvd0Ns
aXBSZWN0KGNvbnN0IENsaXBSZWN0JiBjbGlwUmVjdCkgeyBtX292ZXJmbG93Q2xpcFJlY3QgPSBj
bGlwUmVjdDsgfQorCisgICAgY29uc3QgQ2xpcFJlY3QmIGZpeGVkQ2xpcFJlY3QoKSBjb25zdCB7
IHJldHVybiBtX2ZpeGVkQ2xpcFJlY3Q7IH0KKyAgICB2b2lkIHNldEZpeGVkQ2xpcFJlY3QoY29u
c3QgQ2xpcFJlY3QmIGNsaXBSZWN0KSB7IG1fZml4ZWRDbGlwUmVjdCA9IGNsaXBSZWN0OyB9CisK
KyAgICBjb25zdCBDbGlwUmVjdCYgcG9zQ2xpcFJlY3QoKSBjb25zdCB7IHJldHVybiBtX3Bvc0Ns
aXBSZWN0OyB9CisgICAgdm9pZCBzZXRQb3NDbGlwUmVjdChjb25zdCBDbGlwUmVjdCYgY2xpcFJl
Y3QpIHsgbV9wb3NDbGlwUmVjdCA9IGNsaXBSZWN0OyB9CisKKyAgICBib29sIGZpeGVkKCkgY29u
c3QgeyByZXR1cm4gbV9maXhlZDsgfQorICAgIHZvaWQgc2V0Rml4ZWQoYm9vbCBmaXhlZCkgeyBt
X2ZpeGVkID0gZml4ZWQ7IH0KKworICAgIHZvaWQgcmVmKCkgeyBtX3JlZkNvdW50Kys7IH0KKyAg
ICB2b2lkIGRlcmVmKCkKKyAgICB7CisgICAgICAgIGlmICghLS1tX3JlZkNvdW50KQorICAgICAg
ICAgICAgZGVsZXRlIHRoaXM7CisgICAgfQorCisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IENs
aXBSZWN0cyYgb3RoZXIpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9vdmVyZmxvd0Ns
aXBSZWN0ID09IG90aGVyLm92ZXJmbG93Q2xpcFJlY3QoKQorICAgICAgICAgICAgJiYgbV9maXhl
ZENsaXBSZWN0ID09IG90aGVyLmZpeGVkQ2xpcFJlY3QoKQorICAgICAgICAgICAgJiYgbV9wb3ND
bGlwUmVjdCA9PSBvdGhlci5wb3NDbGlwUmVjdCgpCisgICAgICAgICAgICAmJiBtX2ZpeGVkID09
IG90aGVyLmZpeGVkKCk7CisgICAgfQorCisgICAgQ2xpcFJlY3RzJiBvcGVyYXRvcj0oY29uc3Qg
Q2xpcFJlY3RzJiBvdGhlcikKKyAgICB7CisgICAgICAgIG1fb3ZlcmZsb3dDbGlwUmVjdCA9IG90
aGVyLm92ZXJmbG93Q2xpcFJlY3QoKTsKKyAgICAgICAgbV9maXhlZENsaXBSZWN0ID0gb3RoZXIu
Zml4ZWRDbGlwUmVjdCgpOworICAgICAgICBtX3Bvc0NsaXBSZWN0ID0gb3RoZXIucG9zQ2xpcFJl
Y3QoKTsKKyAgICAgICAgbV9maXhlZCA9IG90aGVyLmZpeGVkKCk7CisgICAgICAgIHJldHVybiAq
dGhpczsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgQ2xpcFJlY3RzKGNvbnN0IExheW91dFJlY3Qm
IGNsaXBSZWN0KQorICAgICAgICA6IG1fb3ZlcmZsb3dDbGlwUmVjdChjbGlwUmVjdCkKKyAgICAg
ICAgLCBtX2ZpeGVkQ2xpcFJlY3QoY2xpcFJlY3QpCisgICAgICAgICwgbV9wb3NDbGlwUmVjdChj
bGlwUmVjdCkKKyAgICB7CisgICAgfQorCisgICAgQ2xpcFJlY3RzKGNvbnN0IENsaXBSZWN0cyYg
b3RoZXIpCisgICAgICAgIDogbV9vdmVyZmxvd0NsaXBSZWN0KG90aGVyLm92ZXJmbG93Q2xpcFJl
Y3QoKSkKKyAgICAgICAgLCBtX2ZpeGVkQ2xpcFJlY3Qob3RoZXIuZml4ZWRDbGlwUmVjdCgpKQor
ICAgICAgICAsIG1fcG9zQ2xpcFJlY3Qob3RoZXIucG9zQ2xpcFJlY3QoKSkKKyAgICAgICAgLCBt
X2ZpeGVkKG90aGVyLmZpeGVkKCkpCisgICAgeworICAgIH0KKworICAgIENsaXBSZWN0IG1fb3Zl
cmZsb3dDbGlwUmVjdDsKKyAgICBDbGlwUmVjdCBtX2ZpeGVkQ2xpcFJlY3Q7CisgICAgQ2xpcFJl
Y3QgbV9wb3NDbGlwUmVjdDsKKyAgICB1bnNpZ25lZCBtX3JlZkNvdW50ID0gMTsKKyAgICBib29s
IG1fZml4ZWQgPSBmYWxzZTsKK307CisKK2NsYXNzIENsaXBSZWN0c0NhY2hlIHsKKyAgICBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBDbGlwUmVjdHNDYWNoZSgpCisgICAg
eworI2lmbmRlZiBOREVCVUcKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBOdW1DYWNoZWRD
bGlwUmVjdHNUeXBlczsgKytpKSB7CisgICAgICAgICAgICBtX2NsaXBSZWN0c1Jvb3RbaV0gPSAw
OworICAgICAgICAgICAgbV9zY3JvbGxiYXJSZWxldmFuY3lbaV0gPSBJZ25vcmVPdmVybGF5U2Ny
b2xsYmFyU2l6ZTsKKyAgICAgICAgfQorI2VuZGlmCisgICAgfQorCisgICAgUGFzc1JlZlB0cjxD
bGlwUmVjdHM+IGdldENsaXBSZWN0cyhDbGlwUmVjdHNUeXBlIGNsaXBSZWN0c1R5cGUsIFNob3Vs
ZFJlc3BlY3RPdmVyZmxvd0NsaXAgcmVzcGVjdE92ZXJmbG93KSB7IHJldHVybiBtX2NsaXBSZWN0
c1tnZXRJbmRleChjbGlwUmVjdHNUeXBlLCByZXNwZWN0T3ZlcmZsb3cpXTsgfQorICAgIHZvaWQg
c2V0Q2xpcFJlY3RzKENsaXBSZWN0c1R5cGUgY2xpcFJlY3RzVHlwZSwgU2hvdWxkUmVzcGVjdE92
ZXJmbG93Q2xpcCByZXNwZWN0T3ZlcmZsb3csIFBhc3NSZWZQdHI8Q2xpcFJlY3RzPiBjbGlwUmVj
dHMpIHsgbV9jbGlwUmVjdHNbZ2V0SW5kZXgoY2xpcFJlY3RzVHlwZSwgcmVzcGVjdE92ZXJmbG93
KV0gPSBjbGlwUmVjdHM7IH0KKworI2lmbmRlZiBOREVCVUcKKyAgICBjb25zdCBSZW5kZXJMYXll
ciogbV9jbGlwUmVjdHNSb290W051bUNhY2hlZENsaXBSZWN0c1R5cGVzXTsKKyAgICBPdmVybGF5
U2Nyb2xsYmFyU2l6ZVJlbGV2YW5jeSBtX3Njcm9sbGJhclJlbGV2YW5jeVtOdW1DYWNoZWRDbGlw
UmVjdHNUeXBlc107CisjZW5kaWYKKworcHJpdmF0ZToKKyAgICBpbnQgZ2V0SW5kZXgoQ2xpcFJl
Y3RzVHlwZSBjbGlwUmVjdHNUeXBlLCBTaG91bGRSZXNwZWN0T3ZlcmZsb3dDbGlwIHJlc3BlY3RP
dmVyZmxvdykKKyAgICB7CisgICAgICAgIGludCBpbmRleCA9IHN0YXRpY19jYXN0PGludD4oY2xp
cFJlY3RzVHlwZSk7CisgICAgICAgIGlmIChyZXNwZWN0T3ZlcmZsb3cgPT0gUmVzcGVjdE92ZXJm
bG93Q2xpcCkKKyAgICAgICAgICAgIGluZGV4ICs9IHN0YXRpY19jYXN0PGludD4oTnVtQ2FjaGVk
Q2xpcFJlY3RzVHlwZXMpOworICAgICAgICByZXR1cm4gaW5kZXg7CisgICAgfQorCisgICAgUmVm
UHRyPENsaXBSZWN0cz4gbV9jbGlwUmVjdHNbTnVtQ2FjaGVkQ2xpcFJlY3RzVHlwZXMgKiAyXTsK
K307CisKIHZvaWQgbWFrZU1hdHJpeFJlbmRlcmFibGUoVHJhbnNmb3JtYXRpb25NYXRyaXgmIG1h
dHJpeCwgYm9vbCBoYXMzRFJlbmRlcmluZykKIHsKICNpZiAhRU5BQkxFKDNEX1JFTkRFUklORykK
QEAgLTUyODgsNiArNTQwMywxMiBAQCBib29sIFJlbmRlckxheWVyOjptYXBMYXllckNsaXBSZWN0
c1RvRnJhZ21lbnRhdGlvbkxheWVyKENsaXBSZWN0cyYgY2xpcFJlY3RzKSBjbwogICAgIHJldHVy
biB0cnVlOwogfQogCitDbGlwUmVjdHMqIFJlbmRlckxheWVyOjpjbGlwUmVjdHMoY29uc3QgQ2xp
cFJlY3RzQ29udGV4dCYgY29udGV4dCkgY29uc3QKK3sKKyAgICBBU1NFUlQoY29udGV4dC5jbGlw
UmVjdHNUeXBlIDwgTnVtQ2FjaGVkQ2xpcFJlY3RzVHlwZXMpOworICAgIHJldHVybiBtX2NsaXBS
ZWN0c0NhY2hlID8gbV9jbGlwUmVjdHNDYWNoZS0+Z2V0Q2xpcFJlY3RzKGNvbnRleHQuY2xpcFJl
Y3RzVHlwZSwgY29udGV4dC5yZXNwZWN0T3ZlcmZsb3dDbGlwKS5nZXQoKSA6IDA7Cit9CisKIHZv
aWQgUmVuZGVyTGF5ZXI6OmNhbGN1bGF0ZUNsaXBSZWN0cyhjb25zdCBDbGlwUmVjdHNDb250ZXh0
JiBjbGlwUmVjdHNDb250ZXh0LCBDbGlwUmVjdHMmIGNsaXBSZWN0cykgY29uc3QKIHsKICAgICBp
ZiAoIXBhcmVudCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCmluZGV4
IDQwNWMwZWU0ZDM5ODE0OGQyNjYyYjQxZDhmOTBmZjk1OTg4ODg5YjguLjI0ZTEwNWQ2NzE0Yzdl
YzAzNzczODc1Yzk1ZGQyZTU3MjZkN2FiN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllci5oCkBAIC01NSw2ICs1NSw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xh
c3MgQ2xpcFJlY3RzOworY2xhc3MgQ2xpcFJlY3RzQ2FjaGU7CiBjbGFzcyBGaWx0ZXJFZmZlY3RS
ZW5kZXJlcjsKIGNsYXNzIEZpbHRlckVmZmVjdFJlbmRlcmVySGVscGVyOwogY2xhc3MgRmlsdGVy
T3BlcmF0aW9uczsKQEAgLTgzLDk1ICs4NSw2IEBAIGVudW0gUmVwYWludFN0YXR1cyB7CiAgICAg
TmVlZHNGdWxsUmVwYWludEZvclBvc2l0aW9uZWRNb3ZlbWVudExheW91dAogfTsKIAotY2xhc3Mg
Q2xpcFJlY3RzIHsKLSAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKLXB1YmxpYzoKLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxDbGlwUmVjdHM+IGNyZWF0ZSgpCi0gICAgewotICAgICAgICByZXR1
cm4gYWRvcHRSZWYobmV3IENsaXBSZWN0cyk7Ci0gICAgfQotCi0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8Q2xpcFJlY3RzPiBjcmVhdGUoY29uc3QgQ2xpcFJlY3RzJiBvdGhlcikKLSAgICB7Ci0gICAg
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ2xpcFJlY3RzKG90aGVyKSk7Ci0gICAgfQotCi0gICAg
Q2xpcFJlY3RzKCkKLSAgICAgICAgOiBtX3JlZkNudCgxKQotICAgICAgICAsIG1fZml4ZWQoZmFs
c2UpCi0gICAgewotICAgIH0KLQotICAgIHZvaWQgcmVzZXQoY29uc3QgTGF5b3V0UmVjdCYgcikK
LSAgICB7Ci0gICAgICAgIG1fb3ZlcmZsb3dDbGlwUmVjdCA9IHI7Ci0gICAgICAgIG1fZml4ZWRD
bGlwUmVjdCA9IHI7Ci0gICAgICAgIG1fcG9zQ2xpcFJlY3QgPSByOwotICAgICAgICBtX2ZpeGVk
ID0gZmFsc2U7Ci0gICAgfQotICAgIAotICAgIGNvbnN0IENsaXBSZWN0JiBvdmVyZmxvd0NsaXBS
ZWN0KCkgY29uc3QgeyByZXR1cm4gbV9vdmVyZmxvd0NsaXBSZWN0OyB9Ci0gICAgdm9pZCBzZXRP
dmVyZmxvd0NsaXBSZWN0KGNvbnN0IENsaXBSZWN0JiByKSB7IG1fb3ZlcmZsb3dDbGlwUmVjdCA9
IHI7IH0KLQotICAgIGNvbnN0IENsaXBSZWN0JiBmaXhlZENsaXBSZWN0KCkgY29uc3QgeyByZXR1
cm4gbV9maXhlZENsaXBSZWN0OyB9Ci0gICAgdm9pZCBzZXRGaXhlZENsaXBSZWN0KGNvbnN0IENs
aXBSZWN0JnIpIHsgbV9maXhlZENsaXBSZWN0ID0gcjsgfQotCi0gICAgY29uc3QgQ2xpcFJlY3Qm
IHBvc0NsaXBSZWN0KCkgY29uc3QgeyByZXR1cm4gbV9wb3NDbGlwUmVjdDsgfQotICAgIHZvaWQg
c2V0UG9zQ2xpcFJlY3QoY29uc3QgQ2xpcFJlY3QmIHIpIHsgbV9wb3NDbGlwUmVjdCA9IHI7IH0K
LQotICAgIGJvb2wgZml4ZWQoKSBjb25zdCB7IHJldHVybiBtX2ZpeGVkOyB9Ci0gICAgdm9pZCBz
ZXRGaXhlZChib29sIGZpeGVkKSB7IG1fZml4ZWQgPSBmaXhlZDsgfQotCi0gICAgdm9pZCByZWYo
KSB7IG1fcmVmQ250Kys7IH0KLSAgICB2b2lkIGRlcmVmKCkKLSAgICB7Ci0gICAgICAgIGlmICgh
LS1tX3JlZkNudCkKLSAgICAgICAgICAgIGRlbGV0ZSB0aGlzOwotICAgIH0KLQotICAgIGJvb2wg
b3BlcmF0b3I9PShjb25zdCBDbGlwUmVjdHMmIG90aGVyKSBjb25zdAotICAgIHsKLSAgICAgICAg
cmV0dXJuIG1fb3ZlcmZsb3dDbGlwUmVjdCA9PSBvdGhlci5vdmVyZmxvd0NsaXBSZWN0KCkgJiYK
LSAgICAgICAgICAgICAgIG1fZml4ZWRDbGlwUmVjdCA9PSBvdGhlci5maXhlZENsaXBSZWN0KCkg
JiYKLSAgICAgICAgICAgICAgIG1fcG9zQ2xpcFJlY3QgPT0gb3RoZXIucG9zQ2xpcFJlY3QoKSAm
JgotICAgICAgICAgICAgICAgbV9maXhlZCA9PSBvdGhlci5maXhlZCgpOwotICAgIH0KLQotICAg
IENsaXBSZWN0cyYgb3BlcmF0b3I9KGNvbnN0IENsaXBSZWN0cyYgb3RoZXIpCi0gICAgewotICAg
ICAgICBtX292ZXJmbG93Q2xpcFJlY3QgPSBvdGhlci5vdmVyZmxvd0NsaXBSZWN0KCk7Ci0gICAg
ICAgIG1fZml4ZWRDbGlwUmVjdCA9IG90aGVyLmZpeGVkQ2xpcFJlY3QoKTsKLSAgICAgICAgbV9w
b3NDbGlwUmVjdCA9IG90aGVyLnBvc0NsaXBSZWN0KCk7Ci0gICAgICAgIG1fZml4ZWQgPSBvdGhl
ci5maXhlZCgpOwotICAgICAgICByZXR1cm4gKnRoaXM7Ci0gICAgfQotCi1wcml2YXRlOgotICAg
IENsaXBSZWN0cyhjb25zdCBMYXlvdXRSZWN0JiByKQotICAgICAgICA6IG1fb3ZlcmZsb3dDbGlw
UmVjdChyKQotICAgICAgICAsIG1fZml4ZWRDbGlwUmVjdChyKQotICAgICAgICAsIG1fcG9zQ2xp
cFJlY3QocikKLSAgICAgICAgLCBtX3JlZkNudCgxKQotICAgICAgICAsIG1fZml4ZWQoZmFsc2Up
Ci0gICAgewotICAgIH0KLQotICAgIENsaXBSZWN0cyhjb25zdCBDbGlwUmVjdHMmIG90aGVyKQot
ICAgICAgICA6IG1fb3ZlcmZsb3dDbGlwUmVjdChvdGhlci5vdmVyZmxvd0NsaXBSZWN0KCkpCi0g
ICAgICAgICwgbV9maXhlZENsaXBSZWN0KG90aGVyLmZpeGVkQ2xpcFJlY3QoKSkKLSAgICAgICAg
LCBtX3Bvc0NsaXBSZWN0KG90aGVyLnBvc0NsaXBSZWN0KCkpCi0gICAgICAgICwgbV9yZWZDbnQo
MSkKLSAgICAgICAgLCBtX2ZpeGVkKG90aGVyLmZpeGVkKCkpCi0gICAgewotICAgIH0KLQotICAg
IENsaXBSZWN0IG1fb3ZlcmZsb3dDbGlwUmVjdDsKLSAgICBDbGlwUmVjdCBtX2ZpeGVkQ2xpcFJl
Y3Q7Ci0gICAgQ2xpcFJlY3QgbV9wb3NDbGlwUmVjdDsKLSAgICB1bnNpZ25lZCBtX3JlZkNudCA6
IDMxOwotICAgIGJvb2wgbV9maXhlZCA6IDE7Ci19OwotCiBlbnVtIENsaXBSZWN0c1R5cGUgewog
ICAgIFBhaW50aW5nQ2xpcFJlY3RzLCAvLyBSZWxhdGl2ZSB0byBwYWludGluZyBhbmNlc3Rvci4g
VXNlZCBmb3IgcGFpbnRpbmcuCiAgICAgUm9vdFJlbGF0aXZlQ2xpcFJlY3RzLCAvLyBSZWxhdGl2
ZSB0byB0aGUgYW5jZXN0b3IgdHJlYXRlZCBhcyB0aGUgcm9vdCAoZS5nLiB0cmFuc2Zvcm1lZCBs
YXllcikuIFVzZWQgZm9yIGhpdCB0ZXN0aW5nLgpAQCAtMTkxLDM5ICsxMDQsNiBAQCBlbnVtIFNo
b3VsZEFwcGx5Um9vdE9mZnNldFRvRnJhZ21lbnRzIHsKICAgICBJZ25vcmVSb290T2Zmc2V0Rm9y
RnJhZ21lbnRzCiB9OwogCi1zdHJ1Y3QgQ2xpcFJlY3RzQ2FjaGUgewotICAgIFdURl9NQUtFX0ZB
U1RfQUxMT0NBVEVEOwotcHVibGljOgotICAgIENsaXBSZWN0c0NhY2hlKCkKLSAgICB7Ci0jaWZu
ZGVmIE5ERUJVRwotICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE51bUNhY2hlZENsaXBSZWN0
c1R5cGVzOyArK2kpIHsKLSAgICAgICAgICAgIG1fY2xpcFJlY3RzUm9vdFtpXSA9IDA7Ci0gICAg
ICAgICAgICBtX3Njcm9sbGJhclJlbGV2YW5jeVtpXSA9IElnbm9yZU92ZXJsYXlTY3JvbGxiYXJT
aXplOwotICAgICAgICB9Ci0jZW5kaWYKLSAgICB9Ci0KLSAgICBQYXNzUmVmUHRyPENsaXBSZWN0
cz4gZ2V0Q2xpcFJlY3RzKENsaXBSZWN0c1R5cGUgY2xpcFJlY3RzVHlwZSwgU2hvdWxkUmVzcGVj
dE92ZXJmbG93Q2xpcCByZXNwZWN0T3ZlcmZsb3cpIHsgcmV0dXJuIG1fY2xpcFJlY3RzW2dldElu
ZGV4KGNsaXBSZWN0c1R5cGUsIHJlc3BlY3RPdmVyZmxvdyldOyB9Ci0gICAgdm9pZCBzZXRDbGlw
UmVjdHMoQ2xpcFJlY3RzVHlwZSBjbGlwUmVjdHNUeXBlLCBTaG91bGRSZXNwZWN0T3ZlcmZsb3dD
bGlwIHJlc3BlY3RPdmVyZmxvdywgUGFzc1JlZlB0cjxDbGlwUmVjdHM+IGNsaXBSZWN0cykgeyBt
X2NsaXBSZWN0c1tnZXRJbmRleChjbGlwUmVjdHNUeXBlLCByZXNwZWN0T3ZlcmZsb3cpXSA9IGNs
aXBSZWN0czsgfQotCi0jaWZuZGVmIE5ERUJVRwotICAgIGNvbnN0IFJlbmRlckxheWVyKiBtX2Ns
aXBSZWN0c1Jvb3RbTnVtQ2FjaGVkQ2xpcFJlY3RzVHlwZXNdOwotICAgIE92ZXJsYXlTY3JvbGxi
YXJTaXplUmVsZXZhbmN5IG1fc2Nyb2xsYmFyUmVsZXZhbmN5W051bUNhY2hlZENsaXBSZWN0c1R5
cGVzXTsKLSNlbmRpZgotCi1wcml2YXRlOgotICAgIGludCBnZXRJbmRleChDbGlwUmVjdHNUeXBl
IGNsaXBSZWN0c1R5cGUsIFNob3VsZFJlc3BlY3RPdmVyZmxvd0NsaXAgcmVzcGVjdE92ZXJmbG93
KQotICAgIHsKLSAgICAgICAgaW50IGluZGV4ID0gc3RhdGljX2Nhc3Q8aW50PihjbGlwUmVjdHNU
eXBlKTsKLSAgICAgICAgaWYgKHJlc3BlY3RPdmVyZmxvdyA9PSBSZXNwZWN0T3ZlcmZsb3dDbGlw
KQotICAgICAgICAgICAgaW5kZXggKz0gc3RhdGljX2Nhc3Q8aW50PihOdW1DYWNoZWRDbGlwUmVj
dHNUeXBlcyk7Ci0gICAgICAgIHJldHVybiBpbmRleDsKLSAgICB9Ci0KLSAgICBSZWZQdHI8Q2xp
cFJlY3RzPiBtX2NsaXBSZWN0c1tOdW1DYWNoZWRDbGlwUmVjdHNUeXBlcyAqIDJdOwotfTsKLQog
Y2xhc3MgUmVuZGVyTGF5ZXIgZmluYWwgOiBwdWJsaWMgU2Nyb2xsYWJsZUFyZWEgewogICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgpAQCAtNTk4LDE4ICs0NzgsNiBAQCBwdWJs
aWM6CiAgICAgdm9pZCBjYWxjdWxhdGVSZWN0cyhjb25zdCBDbGlwUmVjdHNDb250ZXh0JiwgY29u
c3QgTGF5b3V0UmVjdCYgcGFpbnREaXJ0eVJlY3QsIExheW91dFJlY3QmIGxheWVyQm91bmRzLAog
ICAgICAgICBDbGlwUmVjdCYgYmFja2dyb3VuZFJlY3QsIENsaXBSZWN0JiBmb3JlZ3JvdW5kUmVj
dCwgQ2xpcFJlY3QmIG91dGxpbmVSZWN0LCBjb25zdCBMYXlvdXRTaXplJiBvZmZzZXRGcm9tUm9v
dCkgY29uc3Q7CiAKLSAgICAvLyBDb21wdXRlIGFuZCBjYWNoZSBjbGlwIHJlY3RzIGNvbXB1dGVk
IHdpdGggdGhlIGdpdmVuIGxheWVyIGFzIHRoZSByb290Ci0gICAgdm9pZCB1cGRhdGVDbGlwUmVj
dHMoY29uc3QgQ2xpcFJlY3RzQ29udGV4dCYpOwotICAgIC8vIENvbXB1dGUgYW5kIHJldHVybiB0
aGUgY2xpcCByZWN0cy4gSWYgdXNlQ2FjaGVkIGlzIHRydWUsIHdpbGwgdXNlZCBwcmV2aW91c2x5
IGNvbXB1dGVkIGNsaXAgcmVjdHMgb24gYW5jZXN0b3JzCi0gICAgLy8gKHJhdGhlciB0aGFuIGNv
bXB1dGluZyB0aGVtIGFsbCBmcm9tIHNjcmF0Y2ggdXAgdGhlIHBhcmVudCBjaGFpbikuCi0gICAg
dm9pZCBjYWxjdWxhdGVDbGlwUmVjdHMoY29uc3QgQ2xpcFJlY3RzQ29udGV4dCYsIENsaXBSZWN0
cyYpIGNvbnN0OwotCi0gICAgQ2xpcFJlY3RzKiBjbGlwUmVjdHMoY29uc3QgQ2xpcFJlY3RzQ29u
dGV4dCYgY29udGV4dCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChjb250ZXh0LmNsaXBS
ZWN0c1R5cGUgPCBOdW1DYWNoZWRDbGlwUmVjdHNUeXBlcyk7Ci0gICAgICAgIHJldHVybiBtX2Ns
aXBSZWN0c0NhY2hlID8gbV9jbGlwUmVjdHNDYWNoZS0+Z2V0Q2xpcFJlY3RzKGNvbnRleHQuY2xp
cFJlY3RzVHlwZSwgY29udGV4dC5yZXNwZWN0T3ZlcmZsb3dDbGlwKS5nZXQoKSA6IDA7Ci0gICAg
fQotCiAgICAgTGF5b3V0UmVjdCBjaGlsZHJlbkNsaXBSZWN0KCkgY29uc3Q7IC8vIFJldHVybnMg
dGhlIGZvcmVncm91bmQgY2xpcCByZWN0IG9mIHRoZSBsYXllciBpbiB0aGUgZG9jdW1lbnQncyBj
b29yZGluYXRlIHNwYWNlLgogICAgIExheW91dFJlY3Qgc2VsZkNsaXBSZWN0KCkgY29uc3Q7IC8v
IFJldHVybnMgdGhlIGJhY2tncm91bmQgY2xpcCByZWN0IG9mIHRoZSBsYXllciBpbiB0aGUgZG9j
dW1lbnQncyBjb29yZGluYXRlIHNwYWNlLgogICAgIExheW91dFJlY3QgbG9jYWxDbGlwUmVjdChi
b29sJiBjbGlwRXhjZWVkc0JvdW5kcykgY29uc3Q7IC8vIFJldHVybnMgdGhlIGJhY2tncm91bmQg
Y2xpcCByZWN0IG9mIHRoZSBsYXllciBpbiB0aGUgbG9jYWwgY29vcmRpbmF0ZSBzcGFjZS4KQEAg
LTgwMSw2ICs2NjksMTMgQEAgcHJpdmF0ZToKICAgICAgICAgYm9vbCBjbGlwVG9EaXJ0eVJlY3Q7
CiAgICAgfTsKIAorICAgIC8vIENvbXB1dGUgYW5kIGNhY2hlIGNsaXAgcmVjdHMgY29tcHV0ZWQg
d2l0aCB0aGUgZ2l2ZW4gbGF5ZXIgYXMgdGhlIHJvb3QKKyAgICB2b2lkIHVwZGF0ZUNsaXBSZWN0
cyhjb25zdCBDbGlwUmVjdHNDb250ZXh0Jik7CisgICAgLy8gQ29tcHV0ZSBhbmQgcmV0dXJuIHRo
ZSBjbGlwIHJlY3RzLiBJZiB1c2VDYWNoZWQgaXMgdHJ1ZSwgd2lsbCB1c2VkIHByZXZpb3VzbHkg
Y29tcHV0ZWQgY2xpcCByZWN0cyBvbiBhbmNlc3RvcnMKKyAgICAvLyAocmF0aGVyIHRoYW4gY29t
cHV0aW5nIHRoZW0gYWxsIGZyb20gc2NyYXRjaCB1cCB0aGUgcGFyZW50IGNoYWluKS4KKyAgICB2
b2lkIGNhbGN1bGF0ZUNsaXBSZWN0cyhjb25zdCBDbGlwUmVjdHNDb250ZXh0JiwgQ2xpcFJlY3Rz
JikgY29uc3Q7CisgICAgQ2xpcFJlY3RzKiBjbGlwUmVjdHMoY29uc3QgQ2xpcFJlY3RzQ29udGV4
dCYpIGNvbnN0OworCiAgICAgdm9pZCB1cGRhdGVaT3JkZXJMaXN0cygpOwogICAgIHZvaWQgcmVi
dWlsZFpPcmRlckxpc3RzKCk7CiAgICAgdm9pZCByZWJ1aWxkWk9yZGVyTGlzdHMoQ29sbGVjdExh
eWVyc0JlaGF2aW9yLCBzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPFJlbmRlckxheWVyKj4+Jiwgc3Rk
Ojp1bmlxdWVfcHRyPFZlY3RvcjxSZW5kZXJMYXllcio+PiYpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>