<?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>110500</bug_id>
          
          <creation_ts>2013-02-21 12:20:54 -0800</creation_ts>
          <short_desc>[CSS Exclusions] Enable shape-inside rectangle support for shape-padding</short_desc>
          <delta_ts>2013-03-07 12:44:43 -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>CSS</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>110499</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Hans Muller">giles_joplin</reporter>
          <assigned_to name="Hans Muller">giles_joplin</assigned_to>
          <cc>eric</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>838689</commentid>
    <comment_count>0</comment_count>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2013-02-21 12:20:54 -0800</bug_when>
    <thetext>Enable support for the CSS shape-padding property for rectangle shapes specified with shape-inside.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841428</commentid>
    <comment_count>1</comment_count>
      <attachid>190157</attachid>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2013-02-25 16:56:16 -0800</bug_when>
    <thetext>Created attachment 190157
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842546</commentid>
    <comment_count>2</comment_count>
      <attachid>190399</attachid>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2013-02-26 17:13:15 -0800</bug_when>
    <thetext>Created attachment 190399
Patch

Included ChangeLog entries.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843610</commentid>
    <comment_count>3</comment_count>
      <attachid>190399</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2013-02-27 16:29:45 -0800</bug_when>
    <thetext>Comment on attachment 190399
Patch

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

The comment did not went through :( r=me

&gt; LayoutTests/ChangeLog:9
&gt; +

Missing space s/e,s/e, s/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843630</commentid>
    <comment_count>4</comment_count>
      <attachid>190629</attachid>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2013-02-27 17:51:36 -0800</bug_when>
    <thetext>Created attachment 190629
Patch

Fixed the tiny ChangeLog typo.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843647</commentid>
    <comment_count>5</comment_count>
      <attachid>190629</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-27 19:33:53 -0800</bug_when>
    <thetext>Comment on attachment 190629
Patch

Clearing flags on attachment: 190629

Committed r144258: &lt;http://trac.webkit.org/changeset/144258&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843648</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-27 19:33:56 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190157</attachid>
            <date>2013-02-25 16:56:16 -0800</date>
            <delta_ts>2013-02-26 17:13:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>tmp.patch</filename>
            <type>text/plain</type>
            <size>25216</size>
            <attacher name="Hans Muller">giles_joplin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hh
cGUtaW5zaWRlLWNpcmNsZS1wYWRkaW5nLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1jaXJjbGUtcGFkZGluZy1leHBl
Y3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVlMGVhZDQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRl
L3NoYXBlLWluc2lkZS1jaXJjbGUtcGFkZGluZy1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMzQg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKyAgICAjc2hhcGUt
aW5zaWRlIHsKKyAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgIH0KKworICAgICNzaGFw
ZS1vdXRsaW5lIHsKKyAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICB0b3A6IDBw
eDsKKyAgICAgICAgbGVmdDogMHB4OworICAgICAgICB3aWR0aDogNDAwcHg7CisgICAgICAgIGhl
aWdodDogNDAwcHg7CisgICAgfQorCisgICAgI3NoYXBlLWNvbnRlbnQgeworICAgICAgICBwb3Np
dGlvbjogYWJzb2x1dGU7CisgICAgICAgIHRvcDogMTI5LjI4OXB4OworICAgICAgICBsZWZ0OiAx
MjkuMjg5cHg7CisgICAgICAgIGZvbnQ6IDE0MS40MnB4LzEgQWhlbSwgc2Fucy1zZXJpZjsKKyAg
ICAgICAgY29sb3I6IGdyZWVuOworICAgIH0KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAg
ICA8ZGl2IGlkPSJzaGFwZS1pbnNpZGUiPgorICAgICAgICA8ZGl2IGlkPSJzaGFwZS1jb250ZW50
Ij5YPC9kaXY+CisgICAgICAgIDxzdmcgaWQ9InNoYXBlLW91dGxpbmUiIHhtbG5zPSJodHRwOi8v
d3d3LnczLm9yZy8yMDAwL3N2ZyI+CisgICAgICAgICAgICA8Y2lyY2xlIGN4PSIyMDAiIGN5PSIy
MDAiIHI9IjEwMCIgc3Ryb2tlPSJibHVlIiBmaWxsPSJub25lIi8+CisgICAgICAgIDwvc3ZnPgor
ICAgIDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtY2lyY2xlLXBhZGRpbmcuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRl
LWNpcmNsZS1wYWRkaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
NGE3YzM3NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9z
aGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLWNpcmNsZS1wYWRkaW5nLmh0bWwKQEAgLTAsMCArMSw0
MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KKyAgICBpZiAo
d2luZG93LmludGVybmFscykKKyAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRD
U1NFeGNsdXNpb25zRW5hYmxlZCh0cnVlKTsKKzwvc2NyaXB0PgorPHN0eWxlPgorICAgIC8qIFRo
aXMgdGVzdCBpcyB0aGUgc2FtZSBhcyBjaXJjbGUtc2hhcGUtaW5zaWRlIGV4Y2VwdCB0aGF0IHRo
ZSBjaXJjbGUncyByYWRpdXMgaXMgMTUwcHggaW5zdGVhZCAKKyAgICAgICBvZiAxMDBweCBhbmQg
c2hhcGUtcGFkZGluZyA1MHB4IGhhcyBiZWVuIHNwZWNpZmllZC4gVGhlIGV4cGVjdGVkIHJlc3Vs
dCBpcyB0aGUgc2FtZSBhcyB0aGUgb3JpZ2luYWwgdGVzdC4KKyAgICAqLworICAgICNzaGFwZS1p
bnNpZGUgeworICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgICAgIHdpZHRoOiA0MDBw
eDsKKyAgICAgICAgaGVpZ2h0OiA0MDBweDsKKyAgICAgICAgLXdlYmtpdC1zaGFwZS1pbnNpZGU6
IGNpcmNsZSgyMDBweCwgMjAwcHgsIDE1MHB4KTsKKyAgICAgICAgLXdlYmtpdC1zaGFwZS1wYWRk
aW5nOiA1MHB4OworICAgICAgICBmb250OiAxNDEuNDJweC8xIEFoZW0sIHNhbnMtc2VyaWY7CisK
KyAgICAgICAgY29sb3I6IGdyZWVuOworICAgIH0KKworICAgICNzaGFwZS1vdXRsaW5lIHsKKyAg
ICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICB0b3A6IDBweDsKKyAgICAgICAgbGVm
dDogMHB4OworICAgICAgICB3aWR0aDogNDAwcHg7CisgICAgICAgIGhlaWdodDogNDAwcHg7Cisg
ICAgfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgaWQ9InNoYXBlLWluc2lk
ZSI+CisgICAgICAgIDxzdmcgaWQ9InNoYXBlLW91dGxpbmUiIHhtbG5zPSJodHRwOi8vd3d3Lncz
Lm9yZy8yMDAwL3N2ZyI+CisgICAgICAgICAgICA8Y2lyY2xlIGN4PSIyMDAiIGN5PSIyMDAiIHI9
IjEwMCIgc3Ryb2tlPSJibHVlIiBmaWxsPSJub25lIi8+CisgICAgICAgIDwvc3ZnPgorICAgICAg
ICBYCisgICAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1lbGxpcHNlLXBhZGRp
bmctZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNp
ZGUvc2hhcGUtaW5zaWRlLWVsbGlwc2UtcGFkZGluZy1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdmMGViNjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1lbGxpcHNl
LXBhZGRpbmctZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDM0IEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CisgICAgI3NoYXBlLWluc2lkZSB7CisgICAgICAgIHBv
c2l0aW9uOiByZWxhdGl2ZTsKKyAgICB9CisKKyAgICAjc2hhcGUtb3V0bGluZSB7CisgICAgICAg
IHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgdG9wOiAwcHg7CisgICAgICAgIGxlZnQ6IDBw
eDsKKyAgICAgICAgd2lkdGg6IDUwMHB4OworICAgICAgICBoZWlnaHQ6IDUwMHB4OworICAgIH0K
KworICAgICNzaGFwZS1jb250ZW50IHsKKyAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAg
ICAgICB0b3A6IDEzMHB4OworICAgICAgICBsZWZ0OiAxMzFweDsKKyAgICAgICAgZm9udDogMTc4
cHgvMSBBaGVtLCBzYW5zLXNlcmlmOworICAgICAgICBjb2xvcjogZ3JlZW47CisgICAgfQorPC9z
dHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgaWQ9InNoYXBlLWluc2lkZSI+CisgICAg
ICAgIDxkaXYgaWQ9InNoYXBlLWNvbnRlbnQiPlg8L2Rpdj4KKyAgICAgICAgPHN2ZyBpZD0ic2hh
cGUtb3V0bGluZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KKyAgICAgICAg
ICAgIDxlbGxpcHNlIGN4PSIyMjAiIGN5PSIyMjAiIHJ4PSIyMDAiIHJ5PSIxMDAiICBzdHJva2U9
ImJsdWUiIGZpbGw9Im5vbmUiLz4KKyAgICAgICAgPC9zdmc+CisgICAgPC9kaXY+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUt
aW5zaWRlL3NoYXBlLWluc2lkZS1lbGxpcHNlLXBhZGRpbmcuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLWVsbGlwc2UtcGFkZGluZy5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJjNTE1NWYKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBl
LWluc2lkZS1lbGxpcHNlLXBhZGRpbmcuaHRtbApAQCAtMCwwICsxLDM5IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgorICAgIGlmICh3aW5kb3cuaW50ZXJuYWxz
KQorICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldENTU0V4Y2x1c2lvbnNFbmFi
bGVkKHRydWUpOworPC9zY3JpcHQ+Cis8c3R5bGU+CisgICAgLyogVGhpcyB0ZXN0IGlzIHRoZSBz
YW1lIGFzIGVsbGlwc2Utc2hhcGUtaW5zaWRlIGV4Y2VwdCB0aGF0IHRoZSBlbGxpcHNlIHJhZGlp
IGFyZSAyNTBweCwxNTBweCBpbnN0ZWFkIAorICAgICAgIG9mIDIwMHB4LDEwMHB4IGFuZCBzaGFw
ZS1wYWRkaW5nIDUwcHggaGFzIGJlZW4gc3BlY2lmaWVkLiBUaGUgZXhwZWN0ZWQgcmVzdWx0IGlz
IHRoZSBzYW1lIGFzIHRoZSBvcmlnaW5hbCB0ZXN0LgorICAgICovCisgICAgI3NoYXBlLWluc2lk
ZSB7CisgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICAgICAgd2lkdGg6IDUwMHB4Owor
ICAgICAgICBoZWlnaHQ6IDUwMHB4OworICAgICAgICAtd2Via2l0LXNoYXBlLWluc2lkZTogZWxs
aXBzZSgyMjBweCwgMjIwcHgsIDI1MHB4LCAxNTBweCk7CisgICAgICAgIC13ZWJraXQtc2hhcGUt
cGFkZGluZzogNTBweDsKKyAgICAgICAgZm9udDogMTc4cHgvMSBBaGVtLCBzYW5zLXNlcmlmOwor
ICAgICAgICBjb2xvcjogZ3JlZW47CisgICAgfQorCisgICAgI3NoYXBlLW91dGxpbmUgeworICAg
ICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgIHRvcDogMHB4OworICAgICAgICBsZWZ0
OiAwcHg7CisgICAgICAgIHdpZHRoOiA1MDBweDsKKyAgICAgICAgaGVpZ2h0OiA1MDBweDsKKyAg
ICB9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRpdiBpZD0ic2hhcGUtaW5zaWRl
Ij4KKyAgICAgICAgPHN2ZyBpZD0ic2hhcGUtb3V0bGluZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMu
b3JnLzIwMDAvc3ZnIj4KKyAgICAgICAgICAgIDxlbGxpcHNlIGN4PSIyMjAiIGN5PSIyMjAiIHJ4
PSIyMDAiIHJ5PSIxMDAiICBzdHJva2U9ImJsdWUiIGZpbGw9Im5vbmUiLz4KKyAgICAgICAgPC9z
dmc+CisgICAgICAgIFgKKyAgICA8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJl
Y3RhbmdsZS1wYWRkaW5nLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lv
bnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1yZWN0YW5nbGUtcGFkZGluZy1leHBlY3RlZC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIxNWJiZjMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBl
LWluc2lkZS1yZWN0YW5nbGUtcGFkZGluZy1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMzcgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKyAgICAjc2hhcGUtaW5z
aWRlIHsKKyAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgIH0KKworICAgICNzaGFwZS1v
dXRsaW5lIHsKKyAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICB0b3A6IDBweDsK
KyAgICAgICAgbGVmdDogMHB4OworICAgICAgICB3aWR0aDogNDAwcHg7CisgICAgICAgIGhlaWdo
dDogNDAwcHg7CisgICAgfQorCisgICAgI3NoYXBlLWNvbnRlbnQgeworICAgICAgICBwb3NpdGlv
bjogYWJzb2x1dGU7CisgICAgICAgIHRvcDogNjBweDsKKyAgICAgICAgbGVmdDogNjBweDsKKyAg
ICAgICAgd2lkdGg6IDE1MHB4OworICAgICAgICBoZWlnaHQ6IDE1MHB4OworICAgICAgICBmb250
OiA1MHB4LzEgQWhlbSwgc2Fucy1zZXJpZjsKKyAgICAgICAgY29sb3I6IGdyZWVuOworICAgIH0K
Kzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8cD5Zb3Ugc2hvdWxkIHNlZSBhIGZpbGxl
ZCBncmVlbiBzcXVhcmUgd2l0aGluIGEgYmxhY2sgb3V0bGluZS48L3A+CisgICAgPGRpdiBpZD0i
c2hhcGUtaW5zaWRlIj4KKyAgICAgICAgPHN2ZyBpZD0ic2hhcGUtb3V0bGluZSIgeG1sbnM9Imh0
dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KKyAgICAgICAgICAgIDxyZWN0IHg9IjU4IiB5PSI1
OCIgd2lkdGg9IjE1NCIgaGVpZ2h0PSIxNTQiIHN0cm9rZT0iYmxhY2siIGZpbGw9Im5vbmUiLz4K
KyAgICAgICAgPC9zdmc+CisgICAgICAgIDxkaXYgaWQ9InNoYXBlLWNvbnRlbnQiPlhYWDxici8+
WFhYPGJyLz5YWFg8L2Rpdj4KKyAgICA8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRl
LXJlY3RhbmdsZS1wYWRkaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hh
cGUtaW5zaWRlL3NoYXBlLWluc2lkZS1yZWN0YW5nbGUtcGFkZGluZy5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg0ZmFhNTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1yZWN0YW5n
bGUtcGFkZGluZy5odG1sCkBAIC0wLDAgKzEsMzcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKzxzY3JpcHQ+CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIHdp
bmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0Q1NTRXhjbHVzaW9uc0VuYWJsZWQodHJ1ZSk7Cis8
L3NjcmlwdD4KKzxzdHlsZT4KKyAgICAjc2hhcGUtaW5zaWRlIHsKKyAgICAgICAgcG9zaXRpb246
IHJlbGF0aXZlOworICAgICAgICB3aWR0aDogNDAwcHg7CisgICAgICAgIGhlaWdodDogNDAwcHg7
CisgICAgICAgIC13ZWJraXQtc2hhcGUtaW5zaWRlOiByZWN0YW5nbGUoMTBweCwgMTBweCwgMjUw
cHgsIDI1MHB4KTsKKyAgICAgICAgLXdlYmtpdC1zaGFwZS1wYWRkaW5nOiA1MHB4OworICAgICAg
ICBmb250OiA1MHB4LzEgQWhlbSwgc2Fucy1zZXJpZjsKKyAgICAgICAgY29sb3I6IGdyZWVuOwor
ICAgIH0KKworICAgICNzaGFwZS1vdXRsaW5lIHsKKyAgICAgICAgcG9zaXRpb246IGFic29sdXRl
OworICAgICAgICB0b3A6IDBweDsKKyAgICAgICAgbGVmdDogMHB4OworICAgICAgICB3aWR0aDog
NDAwcHg7CisgICAgICAgIGhlaWdodDogNDAwcHg7CisgICAgfQorPC9zdHlsZT4KKzwvaGVhZD4K
Kzxib2R5PgorICAgIDxwPllvdSBzaG91bGQgc2VlIGEgZmlsbGVkIGdyZWVuIHNxdWFyZSB3aXRo
aW4gYSBibGFjayBvdXRsaW5lLjwvcD4KKyAgICA8ZGl2IGlkPSJzaGFwZS1pbnNpZGUiPgorICAg
ICAgICA8c3ZnIGlkPSJzaGFwZS1vdXRsaW5lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAw
MC9zdmciPgorICAgICAgICAgICAgPHJlY3QgeD0iNTgiIHk9IjU4IiB3aWR0aD0iMTU0IiBoZWln
aHQ9IjE1NCIgc3Ryb2tlPSJibGFjayIgZmlsbD0ibm9uZSIvPgorICAgICAgICA8L3N2Zz4KKyAg
ICBYWFggWFhYIFhYWAorICAgIDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcm91
bmRlZC1yZWN0YW5nbGUtcGFkZGluZy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9l
eGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcm91bmRlZC1yZWN0YW5nbGUtcGFk
ZGluZy1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIy
NWExYmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hh
cGUtaW5zaWRlL3NoYXBlLWluc2lkZS1yb3VuZGVkLXJlY3RhbmdsZS1wYWRkaW5nLWV4cGVjdGVk
Lmh0bWwKQEAgLTAsMCArMSwzNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
PHN0eWxlPgorICAgICNzaGFwZS1pbnNpZGUgeworICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7
CisgICAgfQorCisgICAgI3NoYXBlLW91dGxpbmUgeworICAgICAgICBwb3NpdGlvbjogYWJzb2x1
dGU7CisgICAgICAgIHRvcDogMHB4OworICAgICAgICBsZWZ0OiAwcHg7CisgICAgICAgIHdpZHRo
OiA1MDBweDsKKyAgICAgICAgaGVpZ2h0OiA1MDBweDsKKyAgICB9CisKKyAgICAjc2hhcGUtY29u
dGVudCB7CisgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgdG9wOiA1MHB4Owor
ICAgICAgICBsZWZ0OiA1MHB4OworICAgICAgICB3aWR0aDogMzAwcHg7CisgICAgICAgIGhlaWdo
dDogMzAwcHg7CisgICAgICAgIGZvbnQ6IDEwMHB4LzEgQWhlbSwgc2Fucy1zZXJpZjsKKyAgICAg
ICAgY29sb3I6IGdyZWVuOworICAgIH0KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8
cD5UaGUgYmx1ZSByb3VuZGVkIHJlY3RhbmdsZSBzaG91bGQganVzdCBjb250YWluIGEgY3Jvc3Mg
b2YgZml2ZSBncmVlbiBzcXVhcmVzLjwvcD4KKyAgICA8ZGl2IGlkPSJzaGFwZS1pbnNpZGUiPgor
ICAgICAgICA8ZGl2IGlkPSJzaGFwZS1jb250ZW50Ij4mbmJzcDtYPGJyLz5YWFg8YnIvPiZuYnNw
O1g8L2Rpdj4KKyAgICAgICAgPHN2ZyBpZD0ic2hhcGUtb3V0bGluZSIgeG1sbnM9Imh0dHA6Ly93
d3cudzMub3JnLzIwMDAvc3ZnIj4KKyAgICAgICAgICAgIDxyZWN0IHg9IjUwIiB5PSI1MCIgd2lk
dGg9IjMwMCIgaGVpZ2h0PSIzMDAiIHJ4PSIxMDAiIHJ5PSIxMDAiIHN0cm9rZT0iYmx1ZSIgZmls
bD0ibm9uZSIvPgorICAgICAgICA8L3N2Zz4KKyAgICA8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hh
cGUtaW5zaWRlLXJvdW5kZWQtcmVjdGFuZ2xlLXBhZGRpbmcuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJvdW5kZWQtcmVjdGFuZ2xl
LXBhZGRpbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNzRkZTVh
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWlu
c2lkZS9zaGFwZS1pbnNpZGUtcm91bmRlZC1yZWN0YW5nbGUtcGFkZGluZy5odG1sCkBAIC0wLDAg
KzEsMzcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CisgICAg
aWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0Q1NTRXhjbHVzaW9uc0VuYWJsZWQodHJ1ZSk7Cis8L3NjcmlwdD4KKzxzdHlsZT4KKyAgICAj
c2hhcGUtaW5zaWRlIHsKKyAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgICAgICB3aWR0
aDogNTAwcHg7CisgICAgICAgIGhlaWdodDogNTAwcHg7CisgICAgICAgIC13ZWJraXQtc2hhcGUt
aW5zaWRlOiByZWN0YW5nbGUoMHB4LCAwcHgsIDQwMHB4LCA0MDBweCwgMTUwcHgsIDE1MHB4KTsK
KyAgICAgICAgLXdlYmtpdC1zaGFwZS1wYWRkaW5nOiA1MHB4OworICAgICAgICBmb250OiAxMDBw
eC8xIEFoZW0sIHNhbnMtc2VyaWY7CisgICAgICAgIGNvbG9yOiBncmVlbjsKKyAgICB9CisKKyAg
ICAjc2hhcGUtb3V0bGluZSB7CisgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAg
dG9wOiAwcHg7CisgICAgICAgIGxlZnQ6IDBweDsKKyAgICAgICAgd2lkdGg6IDUwMHB4OworICAg
ICAgICBoZWlnaHQ6IDUwMHB4OworICAgIH0KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAg
ICA8cD5UaGUgYmx1ZSByb3VuZGVkIHJlY3RhbmdsZSBzaG91bGQganVzdCBjb250YWluIGEgY3Jv
c3Mgb2YgZml2ZSBncmVlbiBzcXVhcmVzLjwvcD4KKyAgICA8ZGl2IGlkPSJzaGFwZS1pbnNpZGUi
PgorICAgICAgICA8c3ZnIGlkPSJzaGFwZS1vdXRsaW5lIiB4bWxucz0iaHR0cDovL3d3dy53My5v
cmcvMjAwMC9zdmciPgorICAgICAgICAgICAgPHJlY3QgeD0iNTAiIHk9IjUwIiB3aWR0aD0iMzAw
IiBoZWlnaHQ9IjMwMCIgcng9IjEwMCIgcnk9IjEwMCIgc3Ryb2tlPSJibHVlIiBmaWxsPSJub25l
Ii8+CisgICAgICAgIDwvc3ZnPgorICAgIFggWFhYIFgKKyAgICA8L2Rpdj4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25SZWN0
YW5nbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblJlY3RhbmdsZS5j
cHAKaW5kZXggZWJlNmE4NC4uNmZkOGFkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0V4Y2x1c2lvblJlY3RhbmdsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL0V4Y2x1c2lvblJlY3RhbmdsZS5jcHAKQEAgLTQ2LDMxICs0Niw4NyBAQCBzdGF0aWMgaW5s
aW5lIGZsb2F0IGVsbGlwc2VZSW50ZXJjZXB0KGZsb2F0IHgsIGZsb2F0IHJ4LCBmbG9hdCByeSkK
ICAgICByZXR1cm4gcnkgKiBzcXJ0KDEgLSAoeCAqIHgpIC8gKHJ4ICogcngpKTsKIH0KIAorRmxv
YXRSb3VuZGVkUmVjdCBGbG9hdFJvdW5kZWRSZWN0OjpwYWRkaW5nQm91bmRzKGZsb2F0IHBhZGRp
bmcpIGNvbnN0Cit7CisgICAgQVNTRVJUKHBhZGRpbmcgPj0gMCk7CisgICAgaWYgKCFwYWRkaW5n
IHx8IGlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuICp0aGlzOworCisgICAgZmxvYXQgYm91bmRz
WCA9IHgoKSArIHN0ZDo6bWluKHdpZHRoKCkgLyAyLCBwYWRkaW5nKTsKKyAgICBmbG9hdCBib3Vu
ZHNZID0geSgpICsgc3RkOjptaW4oaGVpZ2h0KCkgLyAyLCBwYWRkaW5nKTsKKyAgICBmbG9hdCBi
b3VuZHNXaWR0aCA9IHN0ZDo6bWF4KDAuMGYsIHdpZHRoKCkgLSBwYWRkaW5nICogMik7CisgICAg
ZmxvYXQgYm91bmRzSGVpZ2h0ID0gc3RkOjptYXgoMC4wZiwgaGVpZ2h0KCkgLSBwYWRkaW5nICog
Mik7CisgICAgZmxvYXQgYm91bmRzUmFkaXVzWCA9IHN0ZDo6bWF4KDAuMGYsIHJ4KCkgLSBwYWRk
aW5nKTsKKyAgICBmbG9hdCBib3VuZHNSYWRpdXNZID0gc3RkOjptYXgoMC4wZiwgcnkoKSAtIHBh
ZGRpbmcpOworICAgIHJldHVybiBGbG9hdFJvdW5kZWRSZWN0KEZsb2F0UmVjdChib3VuZHNYLCBi
b3VuZHNZLCBib3VuZHNXaWR0aCwgYm91bmRzSGVpZ2h0KSwgRmxvYXRTaXplKGJvdW5kc1JhZGl1
c1gsIGJvdW5kc1JhZGl1c1kpKTsKK30KKworRmxvYXRSb3VuZGVkUmVjdCBGbG9hdFJvdW5kZWRS
ZWN0OjptYXJnaW5Cb3VuZHMoZmxvYXQgbWFyZ2luKSBjb25zdAoreworICAgIEFTU0VSVChtYXJn
aW4gPj0gMCk7CisgICAgaWYgKCFtYXJnaW4pCisgICAgICAgIHJldHVybiAqdGhpczsKKworICAg
IGZsb2F0IGJvdW5kc1ggPSB4KCkgLSBtYXJnaW47CisgICAgZmxvYXQgYm91bmRzWSA9IHkoKSAt
IG1hcmdpbjsKKyAgICBmbG9hdCBib3VuZHNXaWR0aCA9IHdpZHRoKCkgKyBtYXJnaW4gKiAyOwor
ICAgIGZsb2F0IGJvdW5kc0hlaWdodCA9IGhlaWdodCgpICsgbWFyZ2luICogMjsKKyAgICBmbG9h
dCBib3VuZHNSYWRpdXNYID0gc3RkOjptYXgocngoKSwgbWFyZ2luKTsKKyAgICBmbG9hdCBib3Vu
ZHNSYWRpdXNZID0gc3RkOjptYXgocnkoKSwgbWFyZ2luKTsKKyAgICByZXR1cm4gRmxvYXRSb3Vu
ZGVkUmVjdChGbG9hdFJlY3QoYm91bmRzWCwgYm91bmRzWSwgYm91bmRzV2lkdGgsIGJvdW5kc0hl
aWdodCksIEZsb2F0U2l6ZShib3VuZHNSYWRpdXNYLCBib3VuZHNSYWRpdXNZKSk7Cit9CisKK0Zs
b2F0UG9pbnQgRmxvYXRSb3VuZGVkUmVjdDo6Y29ybmVySW50ZXJjZXB0Rm9yV2lkdGgoZmxvYXQg
d2lkdGhBdEludGVyY2VwdCkgY29uc3QKK3sKKyAgICBmbG9hdCB4aSA9ICh3aWR0aCgpIC0gd2lk
dGhBdEludGVyY2VwdCkgLyAyOworICAgIGZsb2F0IHlpID0gcnkoKSAtIGVsbGlwc2VZSW50ZXJj
ZXB0KHJ4KCkgLSB4aSwgcngoKSwgcnkoKSk7CisgICAgcmV0dXJuIEZsb2F0UG9pbnQoeGksIHlp
KTsKK30KKworRmxvYXRSb3VuZGVkUmVjdCBFeGNsdXNpb25SZWN0YW5nbGU6OnNoYXBlUGFkZGlu
Z0JvdW5kcygpIGNvbnN0Cit7CisgICAgaWYgKCFtX2hhdmVJbml0aWFsaXplZFBhZGRpbmdCb3Vu
ZHMpIHsKKyAgICAgICAgbV9oYXZlSW5pdGlhbGl6ZWRQYWRkaW5nQm91bmRzID0gdHJ1ZTsKKyAg
ICAgICAgbV9wYWRkaW5nQm91bmRzID0gbV9ib3VuZHMucGFkZGluZ0JvdW5kcyhzaGFwZVBhZGRp
bmcoKSk7CisgICAgfQorICAgIHJldHVybiBtX3BhZGRpbmdCb3VuZHM7Cit9CisKK0Zsb2F0Um91
bmRlZFJlY3QgRXhjbHVzaW9uUmVjdGFuZ2xlOjpzaGFwZU1hcmdpbkJvdW5kcygpIGNvbnN0Cit7
CisgICAgaWYgKCFtX2hhdmVJbml0aWFsaXplZE1hcmdpbkJvdW5kcykgeworICAgICAgICBtX2hh
dmVJbml0aWFsaXplZE1hcmdpbkJvdW5kcyA9IHRydWU7CisgICAgICAgIG1fbWFyZ2luQm91bmRz
ID0gbV9ib3VuZHMubWFyZ2luQm91bmRzKHNoYXBlTWFyZ2luKCkpOworICAgIH0KKyAgICByZXR1
cm4gbV9tYXJnaW5Cb3VuZHM7Cit9CisKIHZvaWQgRXhjbHVzaW9uUmVjdGFuZ2xlOjpnZXRFeGNs
dWRlZEludGVydmFscyhmbG9hdCBsb2dpY2FsVG9wLCBmbG9hdCBsb2dpY2FsSGVpZ2h0LCBTZWdt
ZW50TGlzdCYgcmVzdWx0KSBjb25zdAogewotICAgIGlmIChpc0VtcHR5KCkpCisgICAgY29uc3Qg
RmxvYXRSb3VuZGVkUmVjdCYgYm91bmRzID0gc2hhcGVNYXJnaW5Cb3VuZHMoKTsKKyAgICBpZiAo
Ym91bmRzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgZmxvYXQgeTEgPSBsb2dp
Y2FsVG9wOwogICAgIGZsb2F0IHkyID0geTEgKyBsb2dpY2FsSGVpZ2h0OwogCi0gICAgaWYgKHky
IDwgbV95IHx8IHkxID49IG1feSArIG1faGVpZ2h0KQorICAgIGlmICh5MiA8IGJvdW5kcy55KCkg
fHwgeTEgPj0gYm91bmRzLm1heFkoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgZmxvYXQgeDEg
PSBtX3g7Ci0gICAgZmxvYXQgeDIgPSBtX3ggKyBtX3dpZHRoOwotCi0gICAgaWYgKG1fcnkgPiAw
KSB7Ci0gICAgICAgIGlmICh5MiA8IG1feSArIG1fcnkpIHsKLSAgICAgICAgICAgIGZsb2F0IHlp
ID0geTIgLSBtX3kgLSBtX3J5OwotICAgICAgICAgICAgZmxvYXQgeGkgPSBlbGxpcHNlWEludGVy
Y2VwdCh5aSwgbV9yeCwgbV9yeSk7Ci0gICAgICAgICAgICB4MSA9IG1feCArIG1fcnggLSB4aTsK
LSAgICAgICAgICAgIHgyID0gbV94ICsgbV93aWR0aCAtIG1fcnggKyB4aTsKLSAgICAgICAgfSBl
bHNlIGlmICh5MSA+IG1feSArIG1faGVpZ2h0IC0gbV9yeSkgewotICAgICAgICAgICAgZmxvYXQg
eWkgPSAgeTEgLSAobV95ICsgbV9oZWlnaHQgLSBtX3J5KTsKLSAgICAgICAgICAgIGZsb2F0IHhp
ID0gZWxsaXBzZVhJbnRlcmNlcHQoeWksIG1fcngsIG1fcnkpOwotICAgICAgICAgICAgeDEgPSBt
X3ggKyBtX3J4IC0geGk7Ci0gICAgICAgICAgICB4MiA9IG1feCArIG1fd2lkdGggLSBtX3J4ICsg
eGk7CisgICAgZmxvYXQgeDEgPSBib3VuZHMueCgpOworICAgIGZsb2F0IHgyID0gYm91bmRzLm1h
eFgoKTsKKworICAgIGlmIChib3VuZHMucnkoKSA+IDApIHsKKyAgICAgICAgaWYgKHkyIDwgYm91
bmRzLnkoKSArIGJvdW5kcy5yeSgpKSB7CisgICAgICAgICAgICBmbG9hdCB5aSA9IHkyIC0gYm91
bmRzLnkoKSAtIGJvdW5kcy5yeSgpOworICAgICAgICAgICAgZmxvYXQgeGkgPSBlbGxpcHNlWElu
dGVyY2VwdCh5aSwgYm91bmRzLnJ4KCksIGJvdW5kcy5yeSgpKTsKKyAgICAgICAgICAgIHgxID0g
Ym91bmRzLngoKSArIGJvdW5kcy5yeCgpIC0geGk7CisgICAgICAgICAgICB4MiA9IGJvdW5kcy5t
YXhYKCkgLSBib3VuZHMucngoKSArIHhpOworICAgICAgICB9IGVsc2UgaWYgKHkxID4gYm91bmRz
Lm1heFkoKSAtIGJvdW5kcy5yeSgpKSB7CisgICAgICAgICAgICBmbG9hdCB5aSA9ICB5MSAtIChi
b3VuZHMubWF4WSgpIC0gYm91bmRzLnJ5KCkpOworICAgICAgICAgICAgZmxvYXQgeGkgPSBlbGxp
cHNlWEludGVyY2VwdCh5aSwgYm91bmRzLnJ4KCksIGJvdW5kcy5yeSgpKTsKKyAgICAgICAgICAg
IHgxID0gYm91bmRzLngoKSArIGJvdW5kcy5yeCgpIC0geGk7CisgICAgICAgICAgICB4MiA9IGJv
dW5kcy5tYXhYKCkgLSBib3VuZHMucngoKSArIHhpOwogICAgICAgICB9CiAgICAgfQogCkBAIC03
OSw5MiArMTM1LDg3IEBAIHZvaWQgRXhjbHVzaW9uUmVjdGFuZ2xlOjpnZXRFeGNsdWRlZEludGVy
dmFscyhmbG9hdCBsb2dpY2FsVG9wLCBmbG9hdCBsb2dpY2FsSGVpCiAKIHZvaWQgRXhjbHVzaW9u
UmVjdGFuZ2xlOjpnZXRJbmNsdWRlZEludGVydmFscyhmbG9hdCBsb2dpY2FsVG9wLCBmbG9hdCBs
b2dpY2FsSGVpZ2h0LCBTZWdtZW50TGlzdCYgcmVzdWx0KSBjb25zdAogewotICAgIGlmIChpc0Vt
cHR5KCkpCisgICAgY29uc3QgRmxvYXRSb3VuZGVkUmVjdCYgYm91bmRzID0gc2hhcGVQYWRkaW5n
Qm91bmRzKCk7CisgICAgaWYgKGJvdW5kcy5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKIAog
ICAgIGZsb2F0IHkxID0gbG9naWNhbFRvcDsKICAgICBmbG9hdCB5MiA9IHkxICsgbG9naWNhbEhl
aWdodDsKIAotICAgIGlmICh5MSA8IG1feSB8fCB5MiA+IG1feSArIG1faGVpZ2h0KQorICAgIGlm
ICh5MSA8IGJvdW5kcy55KCkgfHwgeTIgPiBib3VuZHMubWF4WSgpKQogICAgICAgICByZXR1cm47
CiAKLSAgICBmbG9hdCB4MSA9IG1feDsKLSAgICBmbG9hdCB4MiA9IG1feCArIG1fd2lkdGg7Cisg
ICAgZmxvYXQgeDEgPSBib3VuZHMueCgpOworICAgIGZsb2F0IHgyID0gYm91bmRzLm1heFgoKTsK
IAotICAgIGlmIChtX3J5ID4gMCkgewotICAgICAgICBib29sIHkxSW50ZXJjZXB0c0Nvcm5lciA9
IHkxIDwgbV95ICsgbV9yeTsKLSAgICAgICAgYm9vbCB5MkludGVyY2VwdHNDb3JuZXIgPSB5MiA+
IG1feSArIG1faGVpZ2h0IC0gbV9yeTsKKyAgICBpZiAoYm91bmRzLnJ5KCkgPiAwKSB7CisgICAg
ICAgIGJvb2wgeTFJbnRlcmNlcHRzQ29ybmVyID0geTEgPCBib3VuZHMueSgpICsgYm91bmRzLnJ5
KCk7CisgICAgICAgIGJvb2wgeTJJbnRlcmNlcHRzQ29ybmVyID0geTIgPiBib3VuZHMubWF4WSgp
IC0gYm91bmRzLnJ5KCk7CiAgICAgICAgIGZsb2F0IHhpID0gMDsKIAogICAgICAgICBpZiAoeTFJ
bnRlcmNlcHRzQ29ybmVyICYmIHkySW50ZXJjZXB0c0Nvcm5lcikgewotICAgICAgICAgICAgaWYg
ICh5MSA8IG1faGVpZ2h0ICsgMiptX3kgLSB5MikgewotICAgICAgICAgICAgICAgIGZsb2F0IHlp
ID0geTEgLSBtX3kgLSBtX3J5OwotICAgICAgICAgICAgICAgIHhpID0gZWxsaXBzZVhJbnRlcmNl
cHQoeWksIG1fcngsIG1fcnkpOworICAgICAgICAgICAgaWYgICh5MSA8IGJvdW5kcy5oZWlnaHQo
KSArIDIgKiBib3VuZHMueSgpIC0geTIpIHsKKyAgICAgICAgICAgICAgICBmbG9hdCB5aSA9IHkx
IC0gYm91bmRzLnkoKSAtIGJvdW5kcy5yeSgpOworICAgICAgICAgICAgICAgIHhpID0gZWxsaXBz
ZVhJbnRlcmNlcHQoeWksIGJvdW5kcy5yeCgpLCBib3VuZHMucnkoKSk7CiAgICAgICAgICAgICB9
IGVsc2UgewotICAgICAgICAgICAgICAgIGZsb2F0IHlpID0gIHkyIC0gKG1feSArIG1faGVpZ2h0
IC0gbV9yeSk7Ci0gICAgICAgICAgICAgICAgeGkgPSBlbGxpcHNlWEludGVyY2VwdCh5aSwgbV9y
eCwgbV9yeSk7CisgICAgICAgICAgICAgICAgZmxvYXQgeWkgPSAgeTIgLSAoYm91bmRzLm1heFko
KSAtIGJvdW5kcy5yeSgpKTsKKyAgICAgICAgICAgICAgICB4aSA9IGVsbGlwc2VYSW50ZXJjZXB0
KHlpLCBib3VuZHMucngoKSwgYm91bmRzLnJ5KCkpOwogICAgICAgICAgICAgfQogICAgICAgICB9
IGVsc2UgaWYgKHkxSW50ZXJjZXB0c0Nvcm5lcikgewotICAgICAgICAgICAgZmxvYXQgeWkgPSB5
MSAtIG1feSAtIG1fcnk7Ci0gICAgICAgICAgICB4aSA9IGVsbGlwc2VYSW50ZXJjZXB0KHlpLCBt
X3J4LCBtX3J5KTsKKyAgICAgICAgICAgIGZsb2F0IHlpID0geTEgLSBib3VuZHMueSgpIC0gYm91
bmRzLnJ5KCk7CisgICAgICAgICAgICB4aSA9IGVsbGlwc2VYSW50ZXJjZXB0KHlpLCBib3VuZHMu
cngoKSwgYm91bmRzLnJ5KCkpOwogICAgICAgICB9IGVsc2UgaWYgKHkySW50ZXJjZXB0c0Nvcm5l
cikgewotICAgICAgICAgICAgZmxvYXQgeWkgPSAgeTIgLSAobV95ICsgbV9oZWlnaHQgLSBtX3J5
KTsKLSAgICAgICAgICAgIHhpID0gZWxsaXBzZVhJbnRlcmNlcHQoeWksIG1fcngsIG1fcnkpOwor
ICAgICAgICAgICAgZmxvYXQgeWkgPSAgeTIgLSAoYm91bmRzLm1heFkoKSAtIGJvdW5kcy5yeSgp
KTsKKyAgICAgICAgICAgIHhpID0gZWxsaXBzZVhJbnRlcmNlcHQoeWksIGJvdW5kcy5yeCgpLCBi
b3VuZHMucnkoKSk7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAoeTFJbnRlcmNlcHRzQ29ybmVy
IHx8IHkySW50ZXJjZXB0c0Nvcm5lcikgewotICAgICAgICAgICAgeDEgPSBtX3ggKyBtX3J4IC0g
eGk7Ci0gICAgICAgICAgICB4MiA9IG1feCArIG1fd2lkdGggLSBtX3J4ICsgeGk7CisgICAgICAg
ICAgICB4MSA9IGJvdW5kcy54KCkgKyBib3VuZHMucngoKSAtIHhpOworICAgICAgICAgICAgeDIg
PSBib3VuZHMubWF4WCgpIC0gYm91bmRzLnJ4KCkgKyB4aTsKICAgICAgICAgfQogICAgIH0KIAog
ICAgIHJlc3VsdC5hcHBlbmQoTGluZVNlZ21lbnQoeDEsIHgyKSk7CiB9CiAKLUZsb2F0UG9pbnQg
RXhjbHVzaW9uUmVjdGFuZ2xlOjpjb3JuZXJJbnRlcmNlcHRGb3JXaWR0aChmbG9hdCB3aWR0aCkg
Y29uc3QKLXsKLSAgICBmbG9hdCB4aSA9IChtX3dpZHRoIC0gd2lkdGgpIC8gMjsKLSAgICBmbG9h
dCB5aSA9IG1fcnkgLSBlbGxpcHNlWUludGVyY2VwdChtX3J4IC0geGksIG1fcngsIG1fcnkpOwot
ICAgIHJldHVybiBGbG9hdFBvaW50KHhpLCB5aSk7Ci19Ci0KIGJvb2wgRXhjbHVzaW9uUmVjdGFu
Z2xlOjpmaXJzdEluY2x1ZGVkSW50ZXJ2YWxMb2dpY2FsVG9wKGZsb2F0IG1pbkxvZ2ljYWxJbnRl
cnZhbFRvcCwgY29uc3QgRmxvYXRTaXplJiBtaW5Mb2dpY2FsSW50ZXJ2YWxTaXplLCBmbG9hdCYg
cmVzdWx0KSBjb25zdAogewotICAgIGlmIChtaW5Mb2dpY2FsSW50ZXJ2YWxTaXplLndpZHRoKCkg
PiBtX3dpZHRoKQorICAgIGNvbnN0IEZsb2F0Um91bmRlZFJlY3QmIGJvdW5kcyA9IHNoYXBlUGFk
ZGluZ0JvdW5kcygpOworICAgIGlmIChib3VuZHMuaXNFbXB0eSgpIHx8IG1pbkxvZ2ljYWxJbnRl
cnZhbFNpemUud2lkdGgoKSA+IGJvdW5kcy53aWR0aCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKLSAgICBmbG9hdCBtaW5ZID0gc3RkOjptYXgobV95LCBtaW5Mb2dpY2FsSW50ZXJ2YWxUb3Ap
OworICAgIGZsb2F0IG1pblkgPSBzdGQ6Om1heChib3VuZHMueSgpLCBtaW5Mb2dpY2FsSW50ZXJ2
YWxUb3ApOwogICAgIGZsb2F0IG1heFkgPSBtaW5ZICsgbWluTG9naWNhbEludGVydmFsU2l6ZS5o
ZWlnaHQoKTsKIAotICAgIGlmIChtYXhZID4gbV95ICsgbV9oZWlnaHQpCisgICAgaWYgKG1heFkg
PiBib3VuZHMubWF4WSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBib29sIGludGVy
dmFsT3ZlcmxhcHNNaW5Db3JuZXIgPSBtaW5ZIDwgbV95ICsgbV9yeTsKLSAgICBib29sIGludGVy
dmFsT3ZlcmxhcHNNYXhDb3JuZXIgPSBtYXhZID4gbV95ICsgbV9oZWlnaHQgLSBtX3J5OworICAg
IGJvb2wgaW50ZXJ2YWxPdmVybGFwc01pbkNvcm5lciA9IG1pblkgPCBib3VuZHMueSgpICsgYm91
bmRzLnJ5KCk7CisgICAgYm9vbCBpbnRlcnZhbE92ZXJsYXBzTWF4Q29ybmVyID0gbWF4WSA+IGJv
dW5kcy5tYXhZKCkgLSBib3VuZHMucnkoKTsKIAogICAgIGlmICghaW50ZXJ2YWxPdmVybGFwc01p
bkNvcm5lciAmJiAhaW50ZXJ2YWxPdmVybGFwc01heENvcm5lcikgewogICAgICAgICByZXN1bHQg
PSBtaW5ZOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICBmbG9hdCBjZW50ZXJZ
ID0gbV95ICsgbV9oZWlnaHQgLyAyOworICAgIGZsb2F0IGNlbnRlclkgPSBib3VuZHMueSgpICsg
Ym91bmRzLmhlaWdodCgpIC8gMjsKICAgICBib29sIG1pbkNvcm5lckRlZmluZXNYID0gZmFicyhj
ZW50ZXJZIC0gbWluWSkgPiBmYWJzKGNlbnRlclkgLSBtYXhZKTsKLSAgICBib29sIGludGVydmFs
Rml0c1dpdGhpbkNvcm5lcnMgPSBtaW5Mb2dpY2FsSW50ZXJ2YWxTaXplLndpZHRoKCkgKyAyICog
bV9yeCA8PSBtX3dpZHRoOwotICAgIEZsb2F0UG9pbnQgY29ybmVySW50ZXJjZXB0ID0gY29ybmVy
SW50ZXJjZXB0Rm9yV2lkdGgobWluTG9naWNhbEludGVydmFsU2l6ZS53aWR0aCgpKTsKKyAgICBi
b29sIGludGVydmFsRml0c1dpdGhpbkNvcm5lcnMgPSBtaW5Mb2dpY2FsSW50ZXJ2YWxTaXplLndp
ZHRoKCkgKyAyICogYm91bmRzLnJ4KCkgPD0gYm91bmRzLndpZHRoKCk7CisgICAgRmxvYXRQb2lu
dCBjb3JuZXJJbnRlcmNlcHQgPSBib3VuZHMuY29ybmVySW50ZXJjZXB0Rm9yV2lkdGgobWluTG9n
aWNhbEludGVydmFsU2l6ZS53aWR0aCgpKTsKIAogICAgIGlmIChpbnRlcnZhbE92ZXJsYXBzTWlu
Q29ybmVyICYmICghaW50ZXJ2YWxPdmVybGFwc01heENvcm5lciB8fCBtaW5Db3JuZXJEZWZpbmVz
WCkpIHsKLSAgICAgICAgaWYgKGludGVydmFsRml0c1dpdGhpbkNvcm5lcnMgfHwgbV95ICsgY29y
bmVySW50ZXJjZXB0LnkoKSA8IG1pblkpIHsKKyAgICAgICAgaWYgKGludGVydmFsRml0c1dpdGhp
bkNvcm5lcnMgfHwgYm91bmRzLnkoKSArIGNvcm5lckludGVyY2VwdC55KCkgPCBtaW5ZKSB7CiAg
ICAgICAgICAgICByZXN1bHQgPSBtaW5ZOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
ICAgIH0KLSAgICAgICAgaWYgKG1pbkxvZ2ljYWxJbnRlcnZhbFNpemUuaGVpZ2h0KCkgPCBtX2hl
aWdodCAtICgyICogY29ybmVySW50ZXJjZXB0LnkoKSkpIHsKLSAgICAgICAgICAgIHJlc3VsdCA9
IG1feSArIGNvcm5lckludGVyY2VwdC55KCk7CisgICAgICAgIGlmIChtaW5Mb2dpY2FsSW50ZXJ2
YWxTaXplLmhlaWdodCgpIDwgYm91bmRzLmhlaWdodCgpIC0gKDIgKiBjb3JuZXJJbnRlcmNlcHQu
eSgpKSkgeworICAgICAgICAgICAgcmVzdWx0ID0gYm91bmRzLnkoKSArIGNvcm5lckludGVyY2Vw
dC55KCk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgIH0KIAogICAg
IGlmIChpbnRlcnZhbE92ZXJsYXBzTWF4Q29ybmVyICYmICghaW50ZXJ2YWxPdmVybGFwc01pbkNv
cm5lciB8fCAhbWluQ29ybmVyRGVmaW5lc1gpKSB7Ci0gICAgICAgIGlmIChpbnRlcnZhbEZpdHNX
aXRoaW5Db3JuZXJzIHx8IG1pblkgPD0gIG1feSArIG1faGVpZ2h0IC0gY29ybmVySW50ZXJjZXB0
LnkoKSAtIG1pbkxvZ2ljYWxJbnRlcnZhbFNpemUuaGVpZ2h0KCkpIHsKKyAgICAgICAgaWYgKGlu
dGVydmFsRml0c1dpdGhpbkNvcm5lcnMgfHwgbWluWSA8PSAgYm91bmRzLm1heFkoKSAtIGNvcm5l
ckludGVyY2VwdC55KCkgLSBtaW5Mb2dpY2FsSW50ZXJ2YWxTaXplLmhlaWdodCgpKSB7CiAgICAg
ICAgICAgICByZXN1bHQgPSBtaW5ZOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25SZWN0YW5n
bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25SZWN0YW5nbGUuaAppbmRl
eCBjOGE2NTM4Li45MzAzZDBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
RXhjbHVzaW9uUmVjdGFuZ2xlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1
c2lvblJlY3RhbmdsZS5oCkBAIC0zMiw0MCArMzIsNTcgQEAKIAogI2luY2x1ZGUgIkV4Y2x1c2lv
blNoYXBlLmgiCiAjaW5jbHVkZSAiRmxvYXRQb2ludC5oIgorI2luY2x1ZGUgIkZsb2F0UmVjdC5o
IgogI2luY2x1ZGUgIkZsb2F0U2l6ZS5oIgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAj
aW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEZs
b2F0Um91bmRlZFJlY3QgOiBwdWJsaWMgRmxvYXRSZWN0IHsKK3B1YmxpYzoKKyAgICBGbG9hdFJv
dW5kZWRSZWN0KCkgeyB9CisgICAgRmxvYXRSb3VuZGVkUmVjdChjb25zdCBGbG9hdFJlY3QmIGJv
dW5kcywgY29uc3QgRmxvYXRTaXplJiByYWRpaSkKKyAgICAgICAgOiBGbG9hdFJlY3QoYm91bmRz
KQorICAgICAgICAsIG1fcmFkaWkocmFkaWkpCisgICAgeworICAgIH0KKworICAgIGZsb2F0IHJ4
KCkgY29uc3QgeyByZXR1cm4gbV9yYWRpaS53aWR0aCgpOyB9CisgICAgZmxvYXQgcnkoKSBjb25z
dCB7IHJldHVybiBtX3JhZGlpLmhlaWdodCgpOyB9CisgICAgRmxvYXRSb3VuZGVkUmVjdCBtYXJn
aW5Cb3VuZHMoZmxvYXQgbWFyZ2luKSBjb25zdDsKKyAgICBGbG9hdFJvdW5kZWRSZWN0IHBhZGRp
bmdCb3VuZHMoZmxvYXQgcGFkZGluZykgY29uc3Q7CisgICAgRmxvYXRQb2ludCBjb3JuZXJJbnRl
cmNlcHRGb3JXaWR0aChmbG9hdCB3aWR0aCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgRmxvYXRT
aXplIG1fcmFkaWk7Cit9OworCiBjbGFzcyBFeGNsdXNpb25SZWN0YW5nbGUgOiBwdWJsaWMgRXhj
bHVzaW9uU2hhcGUgewogcHVibGljOgogICAgIEV4Y2x1c2lvblJlY3RhbmdsZShjb25zdCBGbG9h
dFJlY3QmIGJvdW5kcywgY29uc3QgRmxvYXRTaXplJiByYWRpaSkKICAgICAgICAgOiBFeGNsdXNp
b25TaGFwZSgpCi0gICAgICAgICwgbV94KGJvdW5kcy54KCkpCi0gICAgICAgICwgbV95KGJvdW5k
cy55KCkpCi0gICAgICAgICwgbV93aWR0aChib3VuZHMud2lkdGgoKSkKLSAgICAgICAgLCBtX2hl
aWdodChib3VuZHMuaGVpZ2h0KCkpCi0gICAgICAgICwgbV9yeChyYWRpaS53aWR0aCgpKQotICAg
ICAgICAsIG1fcnkocmFkaWkuaGVpZ2h0KCkpCisgICAgICAgICwgbV9ib3VuZHMoYm91bmRzLCBy
YWRpaSkKKyAgICAgICAgLCBtX2hhdmVJbml0aWFsaXplZE1hcmdpbkJvdW5kcyhmYWxzZSkKKyAg
ICAgICAgLCBtX2hhdmVJbml0aWFsaXplZFBhZGRpbmdCb3VuZHMoZmFsc2UpCiAgICAgewogICAg
IH0KIAotICAgIHZpcnR1YWwgRmxvYXRSZWN0IHNoYXBlTG9naWNhbEJvdW5kaW5nQm94KCkgY29u
c3QgT1ZFUlJJREUgeyByZXR1cm4gRmxvYXRSZWN0KG1feCwgbV95LCBtX3dpZHRoLCBtX2hlaWdo
dCk7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNFbXB0eSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJu
IG1fd2lkdGggPD0gMCB8fCBtX2hlaWdodCA8PSAwOyB9CisgICAgdmlydHVhbCBGbG9hdFJlY3Qg
c2hhcGVMb2dpY2FsQm91bmRpbmdCb3goKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX2JvdW5k
czsgfQorICAgIHZpcnR1YWwgYm9vbCBpc0VtcHR5KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4g
bV9ib3VuZHMuaXNFbXB0eSgpOyB9CiAgICAgdmlydHVhbCB2b2lkIGdldEV4Y2x1ZGVkSW50ZXJ2
YWxzKGZsb2F0IGxvZ2ljYWxUb3AsIGZsb2F0IGxvZ2ljYWxIZWlnaHQsIFNlZ21lbnRMaXN0Jikg
Y29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGdldEluY2x1ZGVkSW50ZXJ2YWxzKGZs
b2F0IGxvZ2ljYWxUb3AsIGZsb2F0IGxvZ2ljYWxIZWlnaHQsIFNlZ21lbnRMaXN0JikgY29uc3Qg
T1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGZpcnN0SW5jbHVkZWRJbnRlcnZhbExvZ2ljYWxU
b3AoZmxvYXQgbWluTG9naWNhbEludGVydmFsVG9wLCBjb25zdCBGbG9hdFNpemUmIG1pbkxvZ2lj
YWxJbnRlcnZhbFNpemUsIGZsb2F0JikgY29uc3QgT1ZFUlJJREU7CiAKLXByaXZhdGU6Ci0gICAg
RmxvYXRQb2ludCBjb3JuZXJJbnRlcmNlcHRGb3JXaWR0aChmbG9hdCB3aWR0aCkgY29uc3Q7Cisg
ICAgRmxvYXRSb3VuZGVkUmVjdCBzaGFwZU1hcmdpbkJvdW5kcygpIGNvbnN0OworICAgIEZsb2F0
Um91bmRlZFJlY3Qgc2hhcGVQYWRkaW5nQm91bmRzKCkgY29uc3Q7CiAKLSAgICBmbG9hdCBtX3g7
Ci0gICAgZmxvYXQgbV95OwotICAgIGZsb2F0IG1fd2lkdGg7Ci0gICAgZmxvYXQgbV9oZWlnaHQ7
Ci0gICAgZmxvYXQgbV9yeDsgLy8gY29ybmVyIFggcmFkaXVzCi0gICAgZmxvYXQgbV9yeTsgLy8g
Y29ybmVyIFkgcmFkaXVzCitwcml2YXRlOgorICAgIEZsb2F0Um91bmRlZFJlY3QgbV9ib3VuZHM7
CisgICAgbXV0YWJsZSBGbG9hdFJvdW5kZWRSZWN0IG1fbWFyZ2luQm91bmRzOworICAgIG11dGFi
bGUgRmxvYXRSb3VuZGVkUmVjdCBtX3BhZGRpbmdCb3VuZHM7CisgICAgbXV0YWJsZSBib29sIG1f
aGF2ZUluaXRpYWxpemVkTWFyZ2luQm91bmRzIDogMTsKKyAgICBtdXRhYmxlIGJvb2wgbV9oYXZl
SW5pdGlhbGl6ZWRQYWRkaW5nQm91bmRzIDogMTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGUuY3BwCmluZGV4IDJi
MzE1ODEuLjI3MjM1YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNs
dXNpb25TaGFwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNo
YXBlLmNwcApAQCAtOTAsNyArOTAsNyBAQCBzdGF0aWMgaW5saW5lIEZsb2F0U2l6ZSBwaHlzaWNh
bFNpemVUb0xvZ2ljYWwoY29uc3QgRmxvYXRTaXplJiBzaXplLCBXcml0aW5nTW9kZQogICAgIHJl
dHVybiBzaXplLnRyYW5zcG9zZWRTaXplKCk7CiB9CiAKLVBhc3NPd25QdHI8RXhjbHVzaW9uU2hh
cGU+IEV4Y2x1c2lvblNoYXBlOjpjcmVhdGVFeGNsdXNpb25TaGFwZShjb25zdCBCYXNpY1NoYXBl
KiBiYXNpY1NoYXBlLCBmbG9hdCBsb2dpY2FsQm94V2lkdGgsIGZsb2F0IGxvZ2ljYWxCb3hIZWln
aHQsIFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlKQorUGFzc093blB0cjxFeGNsdXNpb25TaGFwZT4g
RXhjbHVzaW9uU2hhcGU6OmNyZWF0ZUV4Y2x1c2lvblNoYXBlKGNvbnN0IEJhc2ljU2hhcGUqIGJh
c2ljU2hhcGUsIGZsb2F0IGxvZ2ljYWxCb3hXaWR0aCwgZmxvYXQgbG9naWNhbEJveEhlaWdodCwg
V3JpdGluZ01vZGUgd3JpdGluZ01vZGUsIExlbmd0aCBtYXJnaW4sIExlbmd0aCBwYWRkaW5nKQog
ewogICAgIEFTU0VSVChiYXNpY1NoYXBlKTsKIApAQCAtMTc1LDYgKzE3NSw4IEBAIFBhc3NPd25Q
dHI8RXhjbHVzaW9uU2hhcGU+IEV4Y2x1c2lvblNoYXBlOjpjcmVhdGVFeGNsdXNpb25TaGFwZShj
b25zdCBCYXNpY1NoYXBlCiAgICAgZXhjbHVzaW9uU2hhcGUtPm1fbG9naWNhbEJveFdpZHRoID0g
bG9naWNhbEJveFdpZHRoOwogICAgIGV4Y2x1c2lvblNoYXBlLT5tX2xvZ2ljYWxCb3hIZWlnaHQg
PSBsb2dpY2FsQm94SGVpZ2h0OwogICAgIGV4Y2x1c2lvblNoYXBlLT5tX3dyaXRpbmdNb2RlID0g
d3JpdGluZ01vZGU7CisgICAgZXhjbHVzaW9uU2hhcGUtPm1fbWFyZ2luID0gZmxvYXRWYWx1ZUZv
ckxlbmd0aChtYXJnaW4sIDApOworICAgIGV4Y2x1c2lvblNoYXBlLT5tX3BhZGRpbmcgPSBmbG9h
dFZhbHVlRm9yTGVuZ3RoKHBhZGRpbmcsIDApOwogCiAgICAgcmV0dXJuIGV4Y2x1c2lvblNoYXBl
LnJlbGVhc2UoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNs
dXNpb25TaGFwZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlLmgK
aW5kZXggYjJkYTNjNi4uYzYxODE4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL0V4Y2x1c2lvblNoYXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1
c2lvblNoYXBlLmgKQEAgLTU5LDEwICs1OSwxMiBAQCB0eXBlZGVmIFZlY3RvcjxMaW5lU2VnbWVu
dD4gU2VnbWVudExpc3Q7CiAKIGNsYXNzIEV4Y2x1c2lvblNoYXBlIHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUGFzc093blB0cjxFeGNsdXNpb25TaGFwZT4gY3JlYXRlRXhjbHVzaW9uU2hhcGUoY29u
c3QgQmFzaWNTaGFwZSosIGZsb2F0IGxvZ2ljYWxCb3hXaWR0aCwgZmxvYXQgbG9naWNhbEJveEhl
aWdodCwgV3JpdGluZ01vZGUpOworICAgIHN0YXRpYyBQYXNzT3duUHRyPEV4Y2x1c2lvblNoYXBl
PiBjcmVhdGVFeGNsdXNpb25TaGFwZShjb25zdCBCYXNpY1NoYXBlKiwgZmxvYXQgbG9naWNhbEJv
eFdpZHRoLCBmbG9hdCBsb2dpY2FsQm94SGVpZ2h0LCBXcml0aW5nTW9kZSwgTGVuZ3RoIG1hcmdp
biwgTGVuZ3RoIHBhZGRpbmcpOwogCiAgICAgdmlydHVhbCB+RXhjbHVzaW9uU2hhcGUoKSB7IH0K
IAorICAgIGZsb2F0IHNoYXBlTWFyZ2luKCkgY29uc3QgeyByZXR1cm4gbV9tYXJnaW47IH0KKyAg
ICBmbG9hdCBzaGFwZVBhZGRpbmcoKSBjb25zdCB7IHJldHVybiBtX3BhZGRpbmc7IH0KICAgICB2
aXJ0dWFsIEZsb2F0UmVjdCBzaGFwZUxvZ2ljYWxCb3VuZGluZ0JveCgpIGNvbnN0ID0gMDsKICAg
ICB2aXJ0dWFsIGJvb2wgaXNFbXB0eSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0
SW5jbHVkZWRJbnRlcnZhbHMoZmxvYXQgbG9naWNhbFRvcCwgZmxvYXQgbG9naWNhbEhlaWdodCwg
U2VnbWVudExpc3QmKSBjb25zdCA9IDA7CkBAIC03NCw2ICs3Niw4IEBAIHByaXZhdGU6CiAgICAg
ZmxvYXQgbV9sb2dpY2FsQm94V2lkdGg7CiAgICAgZmxvYXQgbV9sb2dpY2FsQm94SGVpZ2h0Owog
ICAgIEZsb2F0UmVjdCBtX2JvdW5kaW5nQm94OworICAgIGZsb2F0IG1fbWFyZ2luOworICAgIGZs
b2F0IG1fcGFkZGluZzsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZUluZm8uY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5mby5jcHAKaW5kZXggZGI5MTQyMy4u
ZjZjYjA5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNo
YXBlSW5mby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBl
SW5mby5jcHAKQEAgLTUwLDcgKzUwLDcgQEAgY29uc3QgRXhjbHVzaW9uU2hhcGUqIEV4Y2x1c2lv
blNoYXBlSW5mbzxSZW5kZXJUeXBlLCBzaGFwZUdldHRlcj46OmNvbXB1dGVkU2hhcGUKIAogICAg
IEFTU0VSVChzaGFwZSk7CiAKLSAgICBtX3NoYXBlID0gRXhjbHVzaW9uU2hhcGU6OmNyZWF0ZUV4
Y2x1c2lvblNoYXBlKHNoYXBlLCBtX3NoYXBlTG9naWNhbFdpZHRoLCBtX3NoYXBlTG9naWNhbEhl
aWdodCwgbV9yZW5kZXJlci0+c3R5bGUoKS0+d3JpdGluZ01vZGUoKSk7CisgICAgbV9zaGFwZSA9
IEV4Y2x1c2lvblNoYXBlOjpjcmVhdGVFeGNsdXNpb25TaGFwZShzaGFwZSwgbV9zaGFwZUxvZ2lj
YWxXaWR0aCwgbV9zaGFwZUxvZ2ljYWxIZWlnaHQsIG1fcmVuZGVyZXItPnN0eWxlKCktPndyaXRp
bmdNb2RlKCksIG1fcmVuZGVyZXItPnN0eWxlKCktPnNoYXBlTWFyZ2luKCksIG1fcmVuZGVyZXIt
PnN0eWxlKCktPnNoYXBlUGFkZGluZygpKTsKICAgICBBU1NFUlQobV9zaGFwZSk7CiAgICAgcmV0
dXJuIG1fc2hhcGUuZ2V0KCk7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190399</attachid>
            <date>2013-02-26 17:13:15 -0800</date>
            <delta_ts>2013-02-27 17:51:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>tmp.patch</filename>
            <type>text/plain</type>
            <size>29403</size>
            <attacher name="Hans Muller">giles_joplin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2YTMxODA3Li4xMmE2OGMyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTMtMDIt
MjYgIEhhbnMgTXVsbGVyICA8aG11bGxlckBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTUyBFeGNs
dXNpb25zXSBFbmFibGUgc2hhcGUtaW5zaWRlIHJlY3RhbmdsZSBzdXBwb3J0IGZvciBzaGFwZS1w
YWRkaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MTA1MDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGRlZCBvbmUgc2hhcGUtaW5zaWRlLHNoYXBlLXBhZGRpbmcgdGVzdCBmb3IgZWFjaCBDU1Mgc2hh
cGUgdHlwZS4KKworICAgICAgICAqIGZhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUt
aW5zaWRlLWNpcmNsZS1wYWRkaW5nLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLWNpcmNsZS1wYWRkaW5nLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUt
aW5zaWRlLWVsbGlwc2UtcGFkZGluZy1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1lbGxpcHNlLXBhZGRpbmcu
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFw
ZS1pbnNpZGUtcmVjdGFuZ2xlLXBhZGRpbmctZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcmVjdGFuZ2xlLXBh
ZGRpbmcuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lk
ZS9zaGFwZS1pbnNpZGUtcm91bmRlZC1yZWN0YW5nbGUtcGFkZGluZy1leHBlY3RlZC5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lk
ZS1yb3VuZGVkLXJlY3RhbmdsZS1wYWRkaW5nLmh0bWw6IEFkZGVkLgorCiAyMDEzLTAyLTI2ICBL
YXVzdHViaCBBdHJhd2Fsa2FyICA8a2F1c3R1YmhAbW90b3JvbGEuY29tPgogCiAgICAgICAgIE5v
dGlmaWNhdGlvbi5yZXF1ZXN0UGVybWlzc2lvbiBjYWxsYmFjayBzaG91bGQgYmUgb3B0aW9uYWwK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hh
cGUtaW5zaWRlLWNpcmNsZS1wYWRkaW5nLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1jaXJjbGUtcGFkZGluZy1leHBl
Y3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVlMGVhZDQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRl
L3NoYXBlLWluc2lkZS1jaXJjbGUtcGFkZGluZy1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMzQg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKyAgICAjc2hhcGUt
aW5zaWRlIHsKKyAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgIH0KKworICAgICNzaGFw
ZS1vdXRsaW5lIHsKKyAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICB0b3A6IDBw
eDsKKyAgICAgICAgbGVmdDogMHB4OworICAgICAgICB3aWR0aDogNDAwcHg7CisgICAgICAgIGhl
aWdodDogNDAwcHg7CisgICAgfQorCisgICAgI3NoYXBlLWNvbnRlbnQgeworICAgICAgICBwb3Np
dGlvbjogYWJzb2x1dGU7CisgICAgICAgIHRvcDogMTI5LjI4OXB4OworICAgICAgICBsZWZ0OiAx
MjkuMjg5cHg7CisgICAgICAgIGZvbnQ6IDE0MS40MnB4LzEgQWhlbSwgc2Fucy1zZXJpZjsKKyAg
ICAgICAgY29sb3I6IGdyZWVuOworICAgIH0KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAg
ICA8ZGl2IGlkPSJzaGFwZS1pbnNpZGUiPgorICAgICAgICA8ZGl2IGlkPSJzaGFwZS1jb250ZW50
Ij5YPC9kaXY+CisgICAgICAgIDxzdmcgaWQ9InNoYXBlLW91dGxpbmUiIHhtbG5zPSJodHRwOi8v
d3d3LnczLm9yZy8yMDAwL3N2ZyI+CisgICAgICAgICAgICA8Y2lyY2xlIGN4PSIyMDAiIGN5PSIy
MDAiIHI9IjEwMCIgc3Ryb2tlPSJibHVlIiBmaWxsPSJub25lIi8+CisgICAgICAgIDwvc3ZnPgor
ICAgIDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtY2lyY2xlLXBhZGRpbmcuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRl
LWNpcmNsZS1wYWRkaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
NGE3YzM3NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9z
aGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLWNpcmNsZS1wYWRkaW5nLmh0bWwKQEAgLTAsMCArMSw0
MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KKyAgICBpZiAo
d2luZG93LmludGVybmFscykKKyAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRD
U1NFeGNsdXNpb25zRW5hYmxlZCh0cnVlKTsKKzwvc2NyaXB0PgorPHN0eWxlPgorICAgIC8qIFRo
aXMgdGVzdCBpcyB0aGUgc2FtZSBhcyBjaXJjbGUtc2hhcGUtaW5zaWRlIGV4Y2VwdCB0aGF0IHRo
ZSBjaXJjbGUncyByYWRpdXMgaXMgMTUwcHggaW5zdGVhZCAKKyAgICAgICBvZiAxMDBweCBhbmQg
c2hhcGUtcGFkZGluZyA1MHB4IGhhcyBiZWVuIHNwZWNpZmllZC4gVGhlIGV4cGVjdGVkIHJlc3Vs
dCBpcyB0aGUgc2FtZSBhcyB0aGUgb3JpZ2luYWwgdGVzdC4KKyAgICAqLworICAgICNzaGFwZS1p
bnNpZGUgeworICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgICAgIHdpZHRoOiA0MDBw
eDsKKyAgICAgICAgaGVpZ2h0OiA0MDBweDsKKyAgICAgICAgLXdlYmtpdC1zaGFwZS1pbnNpZGU6
IGNpcmNsZSgyMDBweCwgMjAwcHgsIDE1MHB4KTsKKyAgICAgICAgLXdlYmtpdC1zaGFwZS1wYWRk
aW5nOiA1MHB4OworICAgICAgICBmb250OiAxNDEuNDJweC8xIEFoZW0sIHNhbnMtc2VyaWY7CisK
KyAgICAgICAgY29sb3I6IGdyZWVuOworICAgIH0KKworICAgICNzaGFwZS1vdXRsaW5lIHsKKyAg
ICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICB0b3A6IDBweDsKKyAgICAgICAgbGVm
dDogMHB4OworICAgICAgICB3aWR0aDogNDAwcHg7CisgICAgICAgIGhlaWdodDogNDAwcHg7Cisg
ICAgfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgaWQ9InNoYXBlLWluc2lk
ZSI+CisgICAgICAgIDxzdmcgaWQ9InNoYXBlLW91dGxpbmUiIHhtbG5zPSJodHRwOi8vd3d3Lncz
Lm9yZy8yMDAwL3N2ZyI+CisgICAgICAgICAgICA8Y2lyY2xlIGN4PSIyMDAiIGN5PSIyMDAiIHI9
IjEwMCIgc3Ryb2tlPSJibHVlIiBmaWxsPSJub25lIi8+CisgICAgICAgIDwvc3ZnPgorICAgICAg
ICBYCisgICAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1lbGxpcHNlLXBhZGRp
bmctZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNp
ZGUvc2hhcGUtaW5zaWRlLWVsbGlwc2UtcGFkZGluZy1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdmMGViNjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1lbGxpcHNl
LXBhZGRpbmctZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDM0IEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CisgICAgI3NoYXBlLWluc2lkZSB7CisgICAgICAgIHBv
c2l0aW9uOiByZWxhdGl2ZTsKKyAgICB9CisKKyAgICAjc2hhcGUtb3V0bGluZSB7CisgICAgICAg
IHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgdG9wOiAwcHg7CisgICAgICAgIGxlZnQ6IDBw
eDsKKyAgICAgICAgd2lkdGg6IDUwMHB4OworICAgICAgICBoZWlnaHQ6IDUwMHB4OworICAgIH0K
KworICAgICNzaGFwZS1jb250ZW50IHsKKyAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAg
ICAgICB0b3A6IDEzMHB4OworICAgICAgICBsZWZ0OiAxMzFweDsKKyAgICAgICAgZm9udDogMTc4
cHgvMSBBaGVtLCBzYW5zLXNlcmlmOworICAgICAgICBjb2xvcjogZ3JlZW47CisgICAgfQorPC9z
dHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgaWQ9InNoYXBlLWluc2lkZSI+CisgICAg
ICAgIDxkaXYgaWQ9InNoYXBlLWNvbnRlbnQiPlg8L2Rpdj4KKyAgICAgICAgPHN2ZyBpZD0ic2hh
cGUtb3V0bGluZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KKyAgICAgICAg
ICAgIDxlbGxpcHNlIGN4PSIyMjAiIGN5PSIyMjAiIHJ4PSIyMDAiIHJ5PSIxMDAiICBzdHJva2U9
ImJsdWUiIGZpbGw9Im5vbmUiLz4KKyAgICAgICAgPC9zdmc+CisgICAgPC9kaXY+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUt
aW5zaWRlL3NoYXBlLWluc2lkZS1lbGxpcHNlLXBhZGRpbmcuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLWVsbGlwc2UtcGFkZGluZy5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJjNTE1NWYKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBl
LWluc2lkZS1lbGxpcHNlLXBhZGRpbmcuaHRtbApAQCAtMCwwICsxLDM5IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgorICAgIGlmICh3aW5kb3cuaW50ZXJuYWxz
KQorICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldENTU0V4Y2x1c2lvbnNFbmFi
bGVkKHRydWUpOworPC9zY3JpcHQ+Cis8c3R5bGU+CisgICAgLyogVGhpcyB0ZXN0IGlzIHRoZSBz
YW1lIGFzIGVsbGlwc2Utc2hhcGUtaW5zaWRlIGV4Y2VwdCB0aGF0IHRoZSBlbGxpcHNlIHJhZGlp
IGFyZSAyNTBweCwxNTBweCBpbnN0ZWFkIAorICAgICAgIG9mIDIwMHB4LDEwMHB4IGFuZCBzaGFw
ZS1wYWRkaW5nIDUwcHggaGFzIGJlZW4gc3BlY2lmaWVkLiBUaGUgZXhwZWN0ZWQgcmVzdWx0IGlz
IHRoZSBzYW1lIGFzIHRoZSBvcmlnaW5hbCB0ZXN0LgorICAgICovCisgICAgI3NoYXBlLWluc2lk
ZSB7CisgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICAgICAgd2lkdGg6IDUwMHB4Owor
ICAgICAgICBoZWlnaHQ6IDUwMHB4OworICAgICAgICAtd2Via2l0LXNoYXBlLWluc2lkZTogZWxs
aXBzZSgyMjBweCwgMjIwcHgsIDI1MHB4LCAxNTBweCk7CisgICAgICAgIC13ZWJraXQtc2hhcGUt
cGFkZGluZzogNTBweDsKKyAgICAgICAgZm9udDogMTc4cHgvMSBBaGVtLCBzYW5zLXNlcmlmOwor
ICAgICAgICBjb2xvcjogZ3JlZW47CisgICAgfQorCisgICAgI3NoYXBlLW91dGxpbmUgeworICAg
ICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgIHRvcDogMHB4OworICAgICAgICBsZWZ0
OiAwcHg7CisgICAgICAgIHdpZHRoOiA1MDBweDsKKyAgICAgICAgaGVpZ2h0OiA1MDBweDsKKyAg
ICB9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRpdiBpZD0ic2hhcGUtaW5zaWRl
Ij4KKyAgICAgICAgPHN2ZyBpZD0ic2hhcGUtb3V0bGluZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMu
b3JnLzIwMDAvc3ZnIj4KKyAgICAgICAgICAgIDxlbGxpcHNlIGN4PSIyMjAiIGN5PSIyMjAiIHJ4
PSIyMDAiIHJ5PSIxMDAiICBzdHJva2U9ImJsdWUiIGZpbGw9Im5vbmUiLz4KKyAgICAgICAgPC9z
dmc+CisgICAgICAgIFgKKyAgICA8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJl
Y3RhbmdsZS1wYWRkaW5nLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lv
bnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1yZWN0YW5nbGUtcGFkZGluZy1leHBlY3RlZC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIxNWJiZjMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBl
LWluc2lkZS1yZWN0YW5nbGUtcGFkZGluZy1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMzcgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKyAgICAjc2hhcGUtaW5z
aWRlIHsKKyAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgIH0KKworICAgICNzaGFwZS1v
dXRsaW5lIHsKKyAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICB0b3A6IDBweDsK
KyAgICAgICAgbGVmdDogMHB4OworICAgICAgICB3aWR0aDogNDAwcHg7CisgICAgICAgIGhlaWdo
dDogNDAwcHg7CisgICAgfQorCisgICAgI3NoYXBlLWNvbnRlbnQgeworICAgICAgICBwb3NpdGlv
bjogYWJzb2x1dGU7CisgICAgICAgIHRvcDogNjBweDsKKyAgICAgICAgbGVmdDogNjBweDsKKyAg
ICAgICAgd2lkdGg6IDE1MHB4OworICAgICAgICBoZWlnaHQ6IDE1MHB4OworICAgICAgICBmb250
OiA1MHB4LzEgQWhlbSwgc2Fucy1zZXJpZjsKKyAgICAgICAgY29sb3I6IGdyZWVuOworICAgIH0K
Kzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8cD5Zb3Ugc2hvdWxkIHNlZSBhIGZpbGxl
ZCBncmVlbiBzcXVhcmUgd2l0aGluIGEgYmxhY2sgb3V0bGluZS48L3A+CisgICAgPGRpdiBpZD0i
c2hhcGUtaW5zaWRlIj4KKyAgICAgICAgPHN2ZyBpZD0ic2hhcGUtb3V0bGluZSIgeG1sbnM9Imh0
dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KKyAgICAgICAgICAgIDxyZWN0IHg9IjU4IiB5PSI1
OCIgd2lkdGg9IjE1NCIgaGVpZ2h0PSIxNTQiIHN0cm9rZT0iYmxhY2siIGZpbGw9Im5vbmUiLz4K
KyAgICAgICAgPC9zdmc+CisgICAgICAgIDxkaXYgaWQ9InNoYXBlLWNvbnRlbnQiPlhYWDxici8+
WFhYPGJyLz5YWFg8L2Rpdj4KKyAgICA8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRl
LXJlY3RhbmdsZS1wYWRkaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hh
cGUtaW5zaWRlL3NoYXBlLWluc2lkZS1yZWN0YW5nbGUtcGFkZGluZy5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg0ZmFhNTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1yZWN0YW5n
bGUtcGFkZGluZy5odG1sCkBAIC0wLDAgKzEsMzcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKzxzY3JpcHQ+CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIHdp
bmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0Q1NTRXhjbHVzaW9uc0VuYWJsZWQodHJ1ZSk7Cis8
L3NjcmlwdD4KKzxzdHlsZT4KKyAgICAjc2hhcGUtaW5zaWRlIHsKKyAgICAgICAgcG9zaXRpb246
IHJlbGF0aXZlOworICAgICAgICB3aWR0aDogNDAwcHg7CisgICAgICAgIGhlaWdodDogNDAwcHg7
CisgICAgICAgIC13ZWJraXQtc2hhcGUtaW5zaWRlOiByZWN0YW5nbGUoMTBweCwgMTBweCwgMjUw
cHgsIDI1MHB4KTsKKyAgICAgICAgLXdlYmtpdC1zaGFwZS1wYWRkaW5nOiA1MHB4OworICAgICAg
ICBmb250OiA1MHB4LzEgQWhlbSwgc2Fucy1zZXJpZjsKKyAgICAgICAgY29sb3I6IGdyZWVuOwor
ICAgIH0KKworICAgICNzaGFwZS1vdXRsaW5lIHsKKyAgICAgICAgcG9zaXRpb246IGFic29sdXRl
OworICAgICAgICB0b3A6IDBweDsKKyAgICAgICAgbGVmdDogMHB4OworICAgICAgICB3aWR0aDog
NDAwcHg7CisgICAgICAgIGhlaWdodDogNDAwcHg7CisgICAgfQorPC9zdHlsZT4KKzwvaGVhZD4K
Kzxib2R5PgorICAgIDxwPllvdSBzaG91bGQgc2VlIGEgZmlsbGVkIGdyZWVuIHNxdWFyZSB3aXRo
aW4gYSBibGFjayBvdXRsaW5lLjwvcD4KKyAgICA8ZGl2IGlkPSJzaGFwZS1pbnNpZGUiPgorICAg
ICAgICA8c3ZnIGlkPSJzaGFwZS1vdXRsaW5lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAw
MC9zdmciPgorICAgICAgICAgICAgPHJlY3QgeD0iNTgiIHk9IjU4IiB3aWR0aD0iMTU0IiBoZWln
aHQ9IjE1NCIgc3Ryb2tlPSJibGFjayIgZmlsbD0ibm9uZSIvPgorICAgICAgICA8L3N2Zz4KKyAg
ICBYWFggWFhYIFhYWAorICAgIDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcm91
bmRlZC1yZWN0YW5nbGUtcGFkZGluZy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9l
eGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcm91bmRlZC1yZWN0YW5nbGUtcGFk
ZGluZy1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIy
NWExYmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hh
cGUtaW5zaWRlL3NoYXBlLWluc2lkZS1yb3VuZGVkLXJlY3RhbmdsZS1wYWRkaW5nLWV4cGVjdGVk
Lmh0bWwKQEAgLTAsMCArMSwzNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
PHN0eWxlPgorICAgICNzaGFwZS1pbnNpZGUgeworICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7
CisgICAgfQorCisgICAgI3NoYXBlLW91dGxpbmUgeworICAgICAgICBwb3NpdGlvbjogYWJzb2x1
dGU7CisgICAgICAgIHRvcDogMHB4OworICAgICAgICBsZWZ0OiAwcHg7CisgICAgICAgIHdpZHRo
OiA1MDBweDsKKyAgICAgICAgaGVpZ2h0OiA1MDBweDsKKyAgICB9CisKKyAgICAjc2hhcGUtY29u
dGVudCB7CisgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgdG9wOiA1MHB4Owor
ICAgICAgICBsZWZ0OiA1MHB4OworICAgICAgICB3aWR0aDogMzAwcHg7CisgICAgICAgIGhlaWdo
dDogMzAwcHg7CisgICAgICAgIGZvbnQ6IDEwMHB4LzEgQWhlbSwgc2Fucy1zZXJpZjsKKyAgICAg
ICAgY29sb3I6IGdyZWVuOworICAgIH0KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8
cD5UaGUgYmx1ZSByb3VuZGVkIHJlY3RhbmdsZSBzaG91bGQganVzdCBjb250YWluIGEgY3Jvc3Mg
b2YgZml2ZSBncmVlbiBzcXVhcmVzLjwvcD4KKyAgICA8ZGl2IGlkPSJzaGFwZS1pbnNpZGUiPgor
ICAgICAgICA8ZGl2IGlkPSJzaGFwZS1jb250ZW50Ij4mbmJzcDtYPGJyLz5YWFg8YnIvPiZuYnNw
O1g8L2Rpdj4KKyAgICAgICAgPHN2ZyBpZD0ic2hhcGUtb3V0bGluZSIgeG1sbnM9Imh0dHA6Ly93
d3cudzMub3JnLzIwMDAvc3ZnIj4KKyAgICAgICAgICAgIDxyZWN0IHg9IjUwIiB5PSI1MCIgd2lk
dGg9IjMwMCIgaGVpZ2h0PSIzMDAiIHJ4PSIxMDAiIHJ5PSIxMDAiIHN0cm9rZT0iYmx1ZSIgZmls
bD0ibm9uZSIvPgorICAgICAgICA8L3N2Zz4KKyAgICA8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hh
cGUtaW5zaWRlLXJvdW5kZWQtcmVjdGFuZ2xlLXBhZGRpbmcuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJvdW5kZWQtcmVjdGFuZ2xl
LXBhZGRpbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNzRkZTVh
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWlu
c2lkZS9zaGFwZS1pbnNpZGUtcm91bmRlZC1yZWN0YW5nbGUtcGFkZGluZy5odG1sCkBAIC0wLDAg
KzEsMzcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CisgICAg
aWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0Q1NTRXhjbHVzaW9uc0VuYWJsZWQodHJ1ZSk7Cis8L3NjcmlwdD4KKzxzdHlsZT4KKyAgICAj
c2hhcGUtaW5zaWRlIHsKKyAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgICAgICB3aWR0
aDogNTAwcHg7CisgICAgICAgIGhlaWdodDogNTAwcHg7CisgICAgICAgIC13ZWJraXQtc2hhcGUt
aW5zaWRlOiByZWN0YW5nbGUoMHB4LCAwcHgsIDQwMHB4LCA0MDBweCwgMTUwcHgsIDE1MHB4KTsK
KyAgICAgICAgLXdlYmtpdC1zaGFwZS1wYWRkaW5nOiA1MHB4OworICAgICAgICBmb250OiAxMDBw
eC8xIEFoZW0sIHNhbnMtc2VyaWY7CisgICAgICAgIGNvbG9yOiBncmVlbjsKKyAgICB9CisKKyAg
ICAjc2hhcGUtb3V0bGluZSB7CisgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAg
dG9wOiAwcHg7CisgICAgICAgIGxlZnQ6IDBweDsKKyAgICAgICAgd2lkdGg6IDUwMHB4OworICAg
ICAgICBoZWlnaHQ6IDUwMHB4OworICAgIH0KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAg
ICA8cD5UaGUgYmx1ZSByb3VuZGVkIHJlY3RhbmdsZSBzaG91bGQganVzdCBjb250YWluIGEgY3Jv
c3Mgb2YgZml2ZSBncmVlbiBzcXVhcmVzLjwvcD4KKyAgICA8ZGl2IGlkPSJzaGFwZS1pbnNpZGUi
PgorICAgICAgICA8c3ZnIGlkPSJzaGFwZS1vdXRsaW5lIiB4bWxucz0iaHR0cDovL3d3dy53My5v
cmcvMjAwMC9zdmciPgorICAgICAgICAgICAgPHJlY3QgeD0iNTAiIHk9IjUwIiB3aWR0aD0iMzAw
IiBoZWlnaHQ9IjMwMCIgcng9IjEwMCIgcnk9IjEwMCIgc3Ryb2tlPSJibHVlIiBmaWxsPSJub25l
Ii8+CisgICAgICAgIDwvc3ZnPgorICAgIFggWFhYIFgKKyAgICA8L2Rpdj4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCBkZjQ0Y2JkLi4yMjc3ZDNiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNDEgQEAKKzIwMTMtMDItMjYgIEhhbnMgTXVsbGVyICA8aG11bGxlckBhZG9iZS5jb20+CisK
KyAgICAgICAgW0NTUyBFeGNsdXNpb25zXSBFbmFibGUgc2hhcGUtaW5zaWRlIHJlY3RhbmdsZSBz
dXBwb3J0IGZvciBzaGFwZS1wYWRkaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMTA1MDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGRlZCBzdXBwb3J0IGZvciBDU1Mgc2hhcGUtcGFkZGluZyBmb3Ig
c2hhcGVzIGRlZmluZWQgd2l0aCBzaGFwZS1pbnNpZGUuCisKKyAgICAgICAgVGVzdHM6IGZhc3Qv
ZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLWNpcmNsZS1wYWRkaW5nLmh0bWwK
KyAgICAgICAgICAgICAgIGZhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRl
LWVsbGlwc2UtcGFkZGluZy5odG1sCisgICAgICAgICAgICAgICBmYXN0L2V4Y2x1c2lvbnMvc2hh
cGUtaW5zaWRlL3NoYXBlLWluc2lkZS1yZWN0YW5nbGUtcGFkZGluZy5odG1sCisgICAgICAgICAg
ICAgICBmYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1yb3VuZGVkLXJl
Y3RhbmdsZS1wYWRkaW5nLmh0bWwKKworICAgICAgICAqIHJlbmRlcmluZy9FeGNsdXNpb25SZWN0
YW5nbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmxvYXRSb3VuZGVkUmVjdDo6cGFkZGluZ0Jv
dW5kcyk6IEluc2V0IHRoZSByb3VuZGVkIHJlY3RhbmdsZSB0byByZWZsZWN0IHRoZSBwYWRkaW5n
IHBhcmFtZXRlci4KKyAgICAgICAgKFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q6Om1hcmdpbkJv
dW5kcyk6IEV4cGFuZCB0aGUgcm91bmRlZCByZWN0YW5nbGUgdG8gcmVmbGVjdCB0aGUgbWFyZ2lu
IHBhcmFtZXRlci4KKyAgICAgICAgKFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q6OmNvcm5lcklu
dGVyY2VwdEZvcldpZHRoKTogTW92ZWQgdGhpcyBtZXRob2QgZnJvbSBFeGNsdXNpb25SZWN0YW5n
bGUgdG8gRmxvYXRSb3VuZGVkUmVjdC4KKyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1c2lvblJlY3Rh
bmdsZTo6c2hhcGVQYWRkaW5nQm91bmRzKTogTGF6aWx5IGNvbXB1dGUgdGhlIGJvdW5kcyBvZiB0
aGUgcGFkZGluZyBib3guCisgICAgICAgIChXZWJDb3JlOjpFeGNsdXNpb25SZWN0YW5nbGU6OnNo
YXBlTWFyZ2luQm91bmRzKTogTGF6aWx5IGNvbXB1dGUgdGhlIGJvdW5kcyBvZiB0aGUgbWFyZ2lu
IGJveC4KKyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1c2lvblJlY3RhbmdsZTo6Z2V0RXhjbHVkZWRJ
bnRlcnZhbHMpOiBUaGlzIGNvbXB1dHVhdGlvbiBpcyBub3cgYmFzZWQgb24gdGhlIChuZXcpIG1h
cmdpbiBib3guCisgICAgICAgIChXZWJDb3JlOjpFeGNsdXNpb25SZWN0YW5nbGU6OmdldEluY2x1
ZGVkSW50ZXJ2YWxzKTogVGhpcyBjb21wdXRhdGlvbiBpcyBub3cgYmFzZSBkb24gdGhlIChuZXcp
IHBhZGRpbmcgYm94LgorICAgICAgICAoV2ViQ29yZTo6RXhjbHVzaW9uUmVjdGFuZ2xlOjpmaXJz
dEluY2x1ZGVkSW50ZXJ2YWxMb2dpY2FsVG9wKTogVGhpcyBjb21wdXRhdGlvbiBpcyBub3cgYmFz
ZSBkb24gdGhlIChuZXcpIHBhZGRpbmcgYm94LgorICAgICAgICAqIHJlbmRlcmluZy9FeGNsdXNp
b25SZWN0YW5nbGUuaDoKKyAgICAgICAgKEZsb2F0Um91bmRlZFJlY3QpOiBBIHN1YmNsYXNzIG9m
IEZsb2F0UmVjdCB0aGF0IGluY2x1ZGVzIGNvcm5lciByYWRpaSBzcGVjaWZpZWQgYXMgQ1NTIHNo
YXBlcyBkby4KKyAgICAgICAgKFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q6OkZsb2F0Um91bmRl
ZFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6RmxvYXRSb3VuZGVkUmVjdDo6cngpOgorICAgICAg
ICAoV2ViQ29yZTo6RmxvYXRSb3VuZGVkUmVjdDo6cnkpOgorICAgICAgICAoV2ViQ29yZTo6RXhj
bHVzaW9uUmVjdGFuZ2xlOjpFeGNsdXNpb25SZWN0YW5nbGUpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9FeGNsdXNpb25TaGFwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFeGNsdXNpb25TaGFwZTo6
Y3JlYXRlRXhjbHVzaW9uU2hhcGUpOiBJbml0aWFsaXplIHRoZSBuZXcgc2hhcGVNYXJnaW4gYW5k
IHNoYXBlUGFkZGluZyBwcm9wZXJ0aWVzLgorICAgICAgICAqIHJlbmRlcmluZy9FeGNsdXNpb25T
aGFwZS5oOgorICAgICAgICAoRXhjbHVzaW9uU2hhcGUpOgorICAgICAgICAoV2ViQ29yZTo6RXhj
bHVzaW9uU2hhcGU6OnNoYXBlTWFyZ2luKTogQWRkZWQgYSBwdWJsaWMgcmVhZC1vbmx5IHByb3Bl
cnR5IGZvciBzaGFwZU1hcmdpbi4KKyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1c2lvblNoYXBlOjpz
aGFwZVBhZGRpbmcpOiBBZGRlZCBhIHB1YmxpYyByZWFkLW9ubHkgcHJvcGVydHkgZm9yIHNoYXBl
UGFkZGluZy4KKyAgICAgICAgKiByZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbmZvLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ojo6Y29tcHV0ZWRTaGFwZSk6IFBhc3MgdGhlIHZhbHVlcyBvZiB0aGUg
Q1NTIHNoYXBlLW1hcmdpbiBhbmQgc2hhcHAtcGFkZGluZyBwcm9wZXJ0aWVzIHRvIGNyZWF0ZUV4
Y2x1c2lvblNoYXBlKCkuCisKIDIwMTMtMDItMjYgIEthdXN0dWJoIEF0cmF3YWxrYXIgIDxrYXVz
dHViaEBtb3Rvcm9sYS5jb20+CiAKICAgICAgICAgTm90aWZpY2F0aW9uLnJlcXVlc3RQZXJtaXNz
aW9uIGNhbGxiYWNrIHNob3VsZCBiZSBvcHRpb25hbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0V4Y2x1c2lvblJlY3RhbmdsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvRXhjbHVzaW9uUmVjdGFuZ2xlLmNwcAppbmRleCBlYmU2YTg0Li42ZmQ4YWRmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uUmVjdGFuZ2xlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uUmVjdGFuZ2xlLmNwcApAQCAt
NDYsMzEgKzQ2LDg3IEBAIHN0YXRpYyBpbmxpbmUgZmxvYXQgZWxsaXBzZVlJbnRlcmNlcHQoZmxv
YXQgeCwgZmxvYXQgcngsIGZsb2F0IHJ5KQogICAgIHJldHVybiByeSAqIHNxcnQoMSAtICh4ICog
eCkgLyAocnggKiByeCkpOwogfQogCitGbG9hdFJvdW5kZWRSZWN0IEZsb2F0Um91bmRlZFJlY3Q6
OnBhZGRpbmdCb3VuZHMoZmxvYXQgcGFkZGluZykgY29uc3QKK3sKKyAgICBBU1NFUlQocGFkZGlu
ZyA+PSAwKTsKKyAgICBpZiAoIXBhZGRpbmcgfHwgaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4g
KnRoaXM7CisKKyAgICBmbG9hdCBib3VuZHNYID0geCgpICsgc3RkOjptaW4od2lkdGgoKSAvIDIs
IHBhZGRpbmcpOworICAgIGZsb2F0IGJvdW5kc1kgPSB5KCkgKyBzdGQ6Om1pbihoZWlnaHQoKSAv
IDIsIHBhZGRpbmcpOworICAgIGZsb2F0IGJvdW5kc1dpZHRoID0gc3RkOjptYXgoMC4wZiwgd2lk
dGgoKSAtIHBhZGRpbmcgKiAyKTsKKyAgICBmbG9hdCBib3VuZHNIZWlnaHQgPSBzdGQ6Om1heCgw
LjBmLCBoZWlnaHQoKSAtIHBhZGRpbmcgKiAyKTsKKyAgICBmbG9hdCBib3VuZHNSYWRpdXNYID0g
c3RkOjptYXgoMC4wZiwgcngoKSAtIHBhZGRpbmcpOworICAgIGZsb2F0IGJvdW5kc1JhZGl1c1kg
PSBzdGQ6Om1heCgwLjBmLCByeSgpIC0gcGFkZGluZyk7CisgICAgcmV0dXJuIEZsb2F0Um91bmRl
ZFJlY3QoRmxvYXRSZWN0KGJvdW5kc1gsIGJvdW5kc1ksIGJvdW5kc1dpZHRoLCBib3VuZHNIZWln
aHQpLCBGbG9hdFNpemUoYm91bmRzUmFkaXVzWCwgYm91bmRzUmFkaXVzWSkpOworfQorCitGbG9h
dFJvdW5kZWRSZWN0IEZsb2F0Um91bmRlZFJlY3Q6Om1hcmdpbkJvdW5kcyhmbG9hdCBtYXJnaW4p
IGNvbnN0Cit7CisgICAgQVNTRVJUKG1hcmdpbiA+PSAwKTsKKyAgICBpZiAoIW1hcmdpbikKKyAg
ICAgICAgcmV0dXJuICp0aGlzOworCisgICAgZmxvYXQgYm91bmRzWCA9IHgoKSAtIG1hcmdpbjsK
KyAgICBmbG9hdCBib3VuZHNZID0geSgpIC0gbWFyZ2luOworICAgIGZsb2F0IGJvdW5kc1dpZHRo
ID0gd2lkdGgoKSArIG1hcmdpbiAqIDI7CisgICAgZmxvYXQgYm91bmRzSGVpZ2h0ID0gaGVpZ2h0
KCkgKyBtYXJnaW4gKiAyOworICAgIGZsb2F0IGJvdW5kc1JhZGl1c1ggPSBzdGQ6Om1heChyeCgp
LCBtYXJnaW4pOworICAgIGZsb2F0IGJvdW5kc1JhZGl1c1kgPSBzdGQ6Om1heChyeSgpLCBtYXJn
aW4pOworICAgIHJldHVybiBGbG9hdFJvdW5kZWRSZWN0KEZsb2F0UmVjdChib3VuZHNYLCBib3Vu
ZHNZLCBib3VuZHNXaWR0aCwgYm91bmRzSGVpZ2h0KSwgRmxvYXRTaXplKGJvdW5kc1JhZGl1c1gs
IGJvdW5kc1JhZGl1c1kpKTsKK30KKworRmxvYXRQb2ludCBGbG9hdFJvdW5kZWRSZWN0Ojpjb3Ju
ZXJJbnRlcmNlcHRGb3JXaWR0aChmbG9hdCB3aWR0aEF0SW50ZXJjZXB0KSBjb25zdAoreworICAg
IGZsb2F0IHhpID0gKHdpZHRoKCkgLSB3aWR0aEF0SW50ZXJjZXB0KSAvIDI7CisgICAgZmxvYXQg
eWkgPSByeSgpIC0gZWxsaXBzZVlJbnRlcmNlcHQocngoKSAtIHhpLCByeCgpLCByeSgpKTsKKyAg
ICByZXR1cm4gRmxvYXRQb2ludCh4aSwgeWkpOworfQorCitGbG9hdFJvdW5kZWRSZWN0IEV4Y2x1
c2lvblJlY3RhbmdsZTo6c2hhcGVQYWRkaW5nQm91bmRzKCkgY29uc3QKK3sKKyAgICBpZiAoIW1f
aGF2ZUluaXRpYWxpemVkUGFkZGluZ0JvdW5kcykgeworICAgICAgICBtX2hhdmVJbml0aWFsaXpl
ZFBhZGRpbmdCb3VuZHMgPSB0cnVlOworICAgICAgICBtX3BhZGRpbmdCb3VuZHMgPSBtX2JvdW5k
cy5wYWRkaW5nQm91bmRzKHNoYXBlUGFkZGluZygpKTsKKyAgICB9CisgICAgcmV0dXJuIG1fcGFk
ZGluZ0JvdW5kczsKK30KKworRmxvYXRSb3VuZGVkUmVjdCBFeGNsdXNpb25SZWN0YW5nbGU6OnNo
YXBlTWFyZ2luQm91bmRzKCkgY29uc3QKK3sKKyAgICBpZiAoIW1faGF2ZUluaXRpYWxpemVkTWFy
Z2luQm91bmRzKSB7CisgICAgICAgIG1faGF2ZUluaXRpYWxpemVkTWFyZ2luQm91bmRzID0gdHJ1
ZTsKKyAgICAgICAgbV9tYXJnaW5Cb3VuZHMgPSBtX2JvdW5kcy5tYXJnaW5Cb3VuZHMoc2hhcGVN
YXJnaW4oKSk7CisgICAgfQorICAgIHJldHVybiBtX21hcmdpbkJvdW5kczsKK30KKwogdm9pZCBF
eGNsdXNpb25SZWN0YW5nbGU6OmdldEV4Y2x1ZGVkSW50ZXJ2YWxzKGZsb2F0IGxvZ2ljYWxUb3As
IGZsb2F0IGxvZ2ljYWxIZWlnaHQsIFNlZ21lbnRMaXN0JiByZXN1bHQpIGNvbnN0CiB7Ci0gICAg
aWYgKGlzRW1wdHkoKSkKKyAgICBjb25zdCBGbG9hdFJvdW5kZWRSZWN0JiBib3VuZHMgPSBzaGFw
ZU1hcmdpbkJvdW5kcygpOworICAgIGlmIChib3VuZHMuaXNFbXB0eSgpKQogICAgICAgICByZXR1
cm47CiAKICAgICBmbG9hdCB5MSA9IGxvZ2ljYWxUb3A7CiAgICAgZmxvYXQgeTIgPSB5MSArIGxv
Z2ljYWxIZWlnaHQ7CiAKLSAgICBpZiAoeTIgPCBtX3kgfHwgeTEgPj0gbV95ICsgbV9oZWlnaHQp
CisgICAgaWYgKHkyIDwgYm91bmRzLnkoKSB8fCB5MSA+PSBib3VuZHMubWF4WSgpKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBmbG9hdCB4MSA9IG1feDsKLSAgICBmbG9hdCB4MiA9IG1feCArIG1f
d2lkdGg7Ci0KLSAgICBpZiAobV9yeSA+IDApIHsKLSAgICAgICAgaWYgKHkyIDwgbV95ICsgbV9y
eSkgewotICAgICAgICAgICAgZmxvYXQgeWkgPSB5MiAtIG1feSAtIG1fcnk7Ci0gICAgICAgICAg
ICBmbG9hdCB4aSA9IGVsbGlwc2VYSW50ZXJjZXB0KHlpLCBtX3J4LCBtX3J5KTsKLSAgICAgICAg
ICAgIHgxID0gbV94ICsgbV9yeCAtIHhpOwotICAgICAgICAgICAgeDIgPSBtX3ggKyBtX3dpZHRo
IC0gbV9yeCArIHhpOwotICAgICAgICB9IGVsc2UgaWYgKHkxID4gbV95ICsgbV9oZWlnaHQgLSBt
X3J5KSB7Ci0gICAgICAgICAgICBmbG9hdCB5aSA9ICB5MSAtIChtX3kgKyBtX2hlaWdodCAtIG1f
cnkpOwotICAgICAgICAgICAgZmxvYXQgeGkgPSBlbGxpcHNlWEludGVyY2VwdCh5aSwgbV9yeCwg
bV9yeSk7Ci0gICAgICAgICAgICB4MSA9IG1feCArIG1fcnggLSB4aTsKLSAgICAgICAgICAgIHgy
ID0gbV94ICsgbV93aWR0aCAtIG1fcnggKyB4aTsKKyAgICBmbG9hdCB4MSA9IGJvdW5kcy54KCk7
CisgICAgZmxvYXQgeDIgPSBib3VuZHMubWF4WCgpOworCisgICAgaWYgKGJvdW5kcy5yeSgpID4g
MCkgeworICAgICAgICBpZiAoeTIgPCBib3VuZHMueSgpICsgYm91bmRzLnJ5KCkpIHsKKyAgICAg
ICAgICAgIGZsb2F0IHlpID0geTIgLSBib3VuZHMueSgpIC0gYm91bmRzLnJ5KCk7CisgICAgICAg
ICAgICBmbG9hdCB4aSA9IGVsbGlwc2VYSW50ZXJjZXB0KHlpLCBib3VuZHMucngoKSwgYm91bmRz
LnJ5KCkpOworICAgICAgICAgICAgeDEgPSBib3VuZHMueCgpICsgYm91bmRzLnJ4KCkgLSB4aTsK
KyAgICAgICAgICAgIHgyID0gYm91bmRzLm1heFgoKSAtIGJvdW5kcy5yeCgpICsgeGk7CisgICAg
ICAgIH0gZWxzZSBpZiAoeTEgPiBib3VuZHMubWF4WSgpIC0gYm91bmRzLnJ5KCkpIHsKKyAgICAg
ICAgICAgIGZsb2F0IHlpID0gIHkxIC0gKGJvdW5kcy5tYXhZKCkgLSBib3VuZHMucnkoKSk7Cisg
ICAgICAgICAgICBmbG9hdCB4aSA9IGVsbGlwc2VYSW50ZXJjZXB0KHlpLCBib3VuZHMucngoKSwg
Ym91bmRzLnJ5KCkpOworICAgICAgICAgICAgeDEgPSBib3VuZHMueCgpICsgYm91bmRzLnJ4KCkg
LSB4aTsKKyAgICAgICAgICAgIHgyID0gYm91bmRzLm1heFgoKSAtIGJvdW5kcy5yeCgpICsgeGk7
CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTc5LDkyICsxMzUsODcgQEAgdm9pZCBFeGNsdXNpb25S
ZWN0YW5nbGU6OmdldEV4Y2x1ZGVkSW50ZXJ2YWxzKGZsb2F0IGxvZ2ljYWxUb3AsIGZsb2F0IGxv
Z2ljYWxIZWkKIAogdm9pZCBFeGNsdXNpb25SZWN0YW5nbGU6OmdldEluY2x1ZGVkSW50ZXJ2YWxz
KGZsb2F0IGxvZ2ljYWxUb3AsIGZsb2F0IGxvZ2ljYWxIZWlnaHQsIFNlZ21lbnRMaXN0JiByZXN1
bHQpIGNvbnN0CiB7Ci0gICAgaWYgKGlzRW1wdHkoKSkKKyAgICBjb25zdCBGbG9hdFJvdW5kZWRS
ZWN0JiBib3VuZHMgPSBzaGFwZVBhZGRpbmdCb3VuZHMoKTsKKyAgICBpZiAoYm91bmRzLmlzRW1w
dHkoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgZmxvYXQgeTEgPSBsb2dpY2FsVG9wOwogICAg
IGZsb2F0IHkyID0geTEgKyBsb2dpY2FsSGVpZ2h0OwogCi0gICAgaWYgKHkxIDwgbV95IHx8IHky
ID4gbV95ICsgbV9oZWlnaHQpCisgICAgaWYgKHkxIDwgYm91bmRzLnkoKSB8fCB5MiA+IGJvdW5k
cy5tYXhZKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGZsb2F0IHgxID0gbV94OwotICAgIGZs
b2F0IHgyID0gbV94ICsgbV93aWR0aDsKKyAgICBmbG9hdCB4MSA9IGJvdW5kcy54KCk7CisgICAg
ZmxvYXQgeDIgPSBib3VuZHMubWF4WCgpOwogCi0gICAgaWYgKG1fcnkgPiAwKSB7Ci0gICAgICAg
IGJvb2wgeTFJbnRlcmNlcHRzQ29ybmVyID0geTEgPCBtX3kgKyBtX3J5OwotICAgICAgICBib29s
IHkySW50ZXJjZXB0c0Nvcm5lciA9IHkyID4gbV95ICsgbV9oZWlnaHQgLSBtX3J5OworICAgIGlm
IChib3VuZHMucnkoKSA+IDApIHsKKyAgICAgICAgYm9vbCB5MUludGVyY2VwdHNDb3JuZXIgPSB5
MSA8IGJvdW5kcy55KCkgKyBib3VuZHMucnkoKTsKKyAgICAgICAgYm9vbCB5MkludGVyY2VwdHND
b3JuZXIgPSB5MiA+IGJvdW5kcy5tYXhZKCkgLSBib3VuZHMucnkoKTsKICAgICAgICAgZmxvYXQg
eGkgPSAwOwogCiAgICAgICAgIGlmICh5MUludGVyY2VwdHNDb3JuZXIgJiYgeTJJbnRlcmNlcHRz
Q29ybmVyKSB7Ci0gICAgICAgICAgICBpZiAgKHkxIDwgbV9oZWlnaHQgKyAyKm1feSAtIHkyKSB7
Ci0gICAgICAgICAgICAgICAgZmxvYXQgeWkgPSB5MSAtIG1feSAtIG1fcnk7Ci0gICAgICAgICAg
ICAgICAgeGkgPSBlbGxpcHNlWEludGVyY2VwdCh5aSwgbV9yeCwgbV9yeSk7CisgICAgICAgICAg
ICBpZiAgKHkxIDwgYm91bmRzLmhlaWdodCgpICsgMiAqIGJvdW5kcy55KCkgLSB5MikgeworICAg
ICAgICAgICAgICAgIGZsb2F0IHlpID0geTEgLSBib3VuZHMueSgpIC0gYm91bmRzLnJ5KCk7Cisg
ICAgICAgICAgICAgICAgeGkgPSBlbGxpcHNlWEludGVyY2VwdCh5aSwgYm91bmRzLnJ4KCksIGJv
dW5kcy5yeSgpKTsKICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgZmxvYXQg
eWkgPSAgeTIgLSAobV95ICsgbV9oZWlnaHQgLSBtX3J5KTsKLSAgICAgICAgICAgICAgICB4aSA9
IGVsbGlwc2VYSW50ZXJjZXB0KHlpLCBtX3J4LCBtX3J5KTsKKyAgICAgICAgICAgICAgICBmbG9h
dCB5aSA9ICB5MiAtIChib3VuZHMubWF4WSgpIC0gYm91bmRzLnJ5KCkpOworICAgICAgICAgICAg
ICAgIHhpID0gZWxsaXBzZVhJbnRlcmNlcHQoeWksIGJvdW5kcy5yeCgpLCBib3VuZHMucnkoKSk7
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSBpZiAoeTFJbnRlcmNlcHRzQ29ybmVyKSB7
Ci0gICAgICAgICAgICBmbG9hdCB5aSA9IHkxIC0gbV95IC0gbV9yeTsKLSAgICAgICAgICAgIHhp
ID0gZWxsaXBzZVhJbnRlcmNlcHQoeWksIG1fcngsIG1fcnkpOworICAgICAgICAgICAgZmxvYXQg
eWkgPSB5MSAtIGJvdW5kcy55KCkgLSBib3VuZHMucnkoKTsKKyAgICAgICAgICAgIHhpID0gZWxs
aXBzZVhJbnRlcmNlcHQoeWksIGJvdW5kcy5yeCgpLCBib3VuZHMucnkoKSk7CiAgICAgICAgIH0g
ZWxzZSBpZiAoeTJJbnRlcmNlcHRzQ29ybmVyKSB7Ci0gICAgICAgICAgICBmbG9hdCB5aSA9ICB5
MiAtIChtX3kgKyBtX2hlaWdodCAtIG1fcnkpOwotICAgICAgICAgICAgeGkgPSBlbGxpcHNlWElu
dGVyY2VwdCh5aSwgbV9yeCwgbV9yeSk7CisgICAgICAgICAgICBmbG9hdCB5aSA9ICB5MiAtIChi
b3VuZHMubWF4WSgpIC0gYm91bmRzLnJ5KCkpOworICAgICAgICAgICAgeGkgPSBlbGxpcHNlWElu
dGVyY2VwdCh5aSwgYm91bmRzLnJ4KCksIGJvdW5kcy5yeSgpKTsKICAgICAgICAgfQogCiAgICAg
ICAgIGlmICh5MUludGVyY2VwdHNDb3JuZXIgfHwgeTJJbnRlcmNlcHRzQ29ybmVyKSB7Ci0gICAg
ICAgICAgICB4MSA9IG1feCArIG1fcnggLSB4aTsKLSAgICAgICAgICAgIHgyID0gbV94ICsgbV93
aWR0aCAtIG1fcnggKyB4aTsKKyAgICAgICAgICAgIHgxID0gYm91bmRzLngoKSArIGJvdW5kcy5y
eCgpIC0geGk7CisgICAgICAgICAgICB4MiA9IGJvdW5kcy5tYXhYKCkgLSBib3VuZHMucngoKSAr
IHhpOwogICAgICAgICB9CiAgICAgfQogCiAgICAgcmVzdWx0LmFwcGVuZChMaW5lU2VnbWVudCh4
MSwgeDIpKTsKIH0KIAotRmxvYXRQb2ludCBFeGNsdXNpb25SZWN0YW5nbGU6OmNvcm5lckludGVy
Y2VwdEZvcldpZHRoKGZsb2F0IHdpZHRoKSBjb25zdAotewotICAgIGZsb2F0IHhpID0gKG1fd2lk
dGggLSB3aWR0aCkgLyAyOwotICAgIGZsb2F0IHlpID0gbV9yeSAtIGVsbGlwc2VZSW50ZXJjZXB0
KG1fcnggLSB4aSwgbV9yeCwgbV9yeSk7Ci0gICAgcmV0dXJuIEZsb2F0UG9pbnQoeGksIHlpKTsK
LX0KLQogYm9vbCBFeGNsdXNpb25SZWN0YW5nbGU6OmZpcnN0SW5jbHVkZWRJbnRlcnZhbExvZ2lj
YWxUb3AoZmxvYXQgbWluTG9naWNhbEludGVydmFsVG9wLCBjb25zdCBGbG9hdFNpemUmIG1pbkxv
Z2ljYWxJbnRlcnZhbFNpemUsIGZsb2F0JiByZXN1bHQpIGNvbnN0CiB7Ci0gICAgaWYgKG1pbkxv
Z2ljYWxJbnRlcnZhbFNpemUud2lkdGgoKSA+IG1fd2lkdGgpCisgICAgY29uc3QgRmxvYXRSb3Vu
ZGVkUmVjdCYgYm91bmRzID0gc2hhcGVQYWRkaW5nQm91bmRzKCk7CisgICAgaWYgKGJvdW5kcy5p
c0VtcHR5KCkgfHwgbWluTG9naWNhbEludGVydmFsU2l6ZS53aWR0aCgpID4gYm91bmRzLndpZHRo
KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGZsb2F0IG1pblkgPSBzdGQ6Om1heCht
X3ksIG1pbkxvZ2ljYWxJbnRlcnZhbFRvcCk7CisgICAgZmxvYXQgbWluWSA9IHN0ZDo6bWF4KGJv
dW5kcy55KCksIG1pbkxvZ2ljYWxJbnRlcnZhbFRvcCk7CiAgICAgZmxvYXQgbWF4WSA9IG1pblkg
KyBtaW5Mb2dpY2FsSW50ZXJ2YWxTaXplLmhlaWdodCgpOwogCi0gICAgaWYgKG1heFkgPiBtX3kg
KyBtX2hlaWdodCkKKyAgICBpZiAobWF4WSA+IGJvdW5kcy5tYXhZKCkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAotICAgIGJvb2wgaW50ZXJ2YWxPdmVybGFwc01pbkNvcm5lciA9IG1pblkgPCBt
X3kgKyBtX3J5OwotICAgIGJvb2wgaW50ZXJ2YWxPdmVybGFwc01heENvcm5lciA9IG1heFkgPiBt
X3kgKyBtX2hlaWdodCAtIG1fcnk7CisgICAgYm9vbCBpbnRlcnZhbE92ZXJsYXBzTWluQ29ybmVy
ID0gbWluWSA8IGJvdW5kcy55KCkgKyBib3VuZHMucnkoKTsKKyAgICBib29sIGludGVydmFsT3Zl
cmxhcHNNYXhDb3JuZXIgPSBtYXhZID4gYm91bmRzLm1heFkoKSAtIGJvdW5kcy5yeSgpOwogCiAg
ICAgaWYgKCFpbnRlcnZhbE92ZXJsYXBzTWluQ29ybmVyICYmICFpbnRlcnZhbE92ZXJsYXBzTWF4
Q29ybmVyKSB7CiAgICAgICAgIHJlc3VsdCA9IG1pblk7CiAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgIH0KIAotICAgIGZsb2F0IGNlbnRlclkgPSBtX3kgKyBtX2hlaWdodCAvIDI7CisgICAgZmxv
YXQgY2VudGVyWSA9IGJvdW5kcy55KCkgKyBib3VuZHMuaGVpZ2h0KCkgLyAyOwogICAgIGJvb2wg
bWluQ29ybmVyRGVmaW5lc1ggPSBmYWJzKGNlbnRlclkgLSBtaW5ZKSA+IGZhYnMoY2VudGVyWSAt
IG1heFkpOwotICAgIGJvb2wgaW50ZXJ2YWxGaXRzV2l0aGluQ29ybmVycyA9IG1pbkxvZ2ljYWxJ
bnRlcnZhbFNpemUud2lkdGgoKSArIDIgKiBtX3J4IDw9IG1fd2lkdGg7Ci0gICAgRmxvYXRQb2lu
dCBjb3JuZXJJbnRlcmNlcHQgPSBjb3JuZXJJbnRlcmNlcHRGb3JXaWR0aChtaW5Mb2dpY2FsSW50
ZXJ2YWxTaXplLndpZHRoKCkpOworICAgIGJvb2wgaW50ZXJ2YWxGaXRzV2l0aGluQ29ybmVycyA9
IG1pbkxvZ2ljYWxJbnRlcnZhbFNpemUud2lkdGgoKSArIDIgKiBib3VuZHMucngoKSA8PSBib3Vu
ZHMud2lkdGgoKTsKKyAgICBGbG9hdFBvaW50IGNvcm5lckludGVyY2VwdCA9IGJvdW5kcy5jb3Ju
ZXJJbnRlcmNlcHRGb3JXaWR0aChtaW5Mb2dpY2FsSW50ZXJ2YWxTaXplLndpZHRoKCkpOwogCiAg
ICAgaWYgKGludGVydmFsT3ZlcmxhcHNNaW5Db3JuZXIgJiYgKCFpbnRlcnZhbE92ZXJsYXBzTWF4
Q29ybmVyIHx8IG1pbkNvcm5lckRlZmluZXNYKSkgewotICAgICAgICBpZiAoaW50ZXJ2YWxGaXRz
V2l0aGluQ29ybmVycyB8fCBtX3kgKyBjb3JuZXJJbnRlcmNlcHQueSgpIDwgbWluWSkgeworICAg
ICAgICBpZiAoaW50ZXJ2YWxGaXRzV2l0aGluQ29ybmVycyB8fCBib3VuZHMueSgpICsgY29ybmVy
SW50ZXJjZXB0LnkoKSA8IG1pblkpIHsKICAgICAgICAgICAgIHJlc3VsdCA9IG1pblk7CiAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQotICAgICAgICBpZiAobWluTG9naWNhbElu
dGVydmFsU2l6ZS5oZWlnaHQoKSA8IG1faGVpZ2h0IC0gKDIgKiBjb3JuZXJJbnRlcmNlcHQueSgp
KSkgewotICAgICAgICAgICAgcmVzdWx0ID0gbV95ICsgY29ybmVySW50ZXJjZXB0LnkoKTsKKyAg
ICAgICAgaWYgKG1pbkxvZ2ljYWxJbnRlcnZhbFNpemUuaGVpZ2h0KCkgPCBib3VuZHMuaGVpZ2h0
KCkgLSAoMiAqIGNvcm5lckludGVyY2VwdC55KCkpKSB7CisgICAgICAgICAgICByZXN1bHQgPSBi
b3VuZHMueSgpICsgY29ybmVySW50ZXJjZXB0LnkoKTsKICAgICAgICAgICAgIHJldHVybiB0cnVl
OwogICAgICAgICB9CiAgICAgfQogCiAgICAgaWYgKGludGVydmFsT3ZlcmxhcHNNYXhDb3JuZXIg
JiYgKCFpbnRlcnZhbE92ZXJsYXBzTWluQ29ybmVyIHx8ICFtaW5Db3JuZXJEZWZpbmVzWCkpIHsK
LSAgICAgICAgaWYgKGludGVydmFsRml0c1dpdGhpbkNvcm5lcnMgfHwgbWluWSA8PSAgbV95ICsg
bV9oZWlnaHQgLSBjb3JuZXJJbnRlcmNlcHQueSgpIC0gbWluTG9naWNhbEludGVydmFsU2l6ZS5o
ZWlnaHQoKSkgeworICAgICAgICBpZiAoaW50ZXJ2YWxGaXRzV2l0aGluQ29ybmVycyB8fCBtaW5Z
IDw9ICBib3VuZHMubWF4WSgpIC0gY29ybmVySW50ZXJjZXB0LnkoKSAtIG1pbkxvZ2ljYWxJbnRl
cnZhbFNpemUuaGVpZ2h0KCkpIHsKICAgICAgICAgICAgIHJlc3VsdCA9IG1pblk7CiAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0V4Y2x1c2lvblJlY3RhbmdsZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0V4Y2x1c2lvblJlY3RhbmdsZS5oCmluZGV4IGM4YTY1MzguLjkzMDNkMGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25SZWN0YW5nbGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uUmVjdGFuZ2xlLmgKQEAgLTMyLDQwICszMiw1
NyBAQAogCiAjaW5jbHVkZSAiRXhjbHVzaW9uU2hhcGUuaCIKICNpbmNsdWRlICJGbG9hdFBvaW50
LmgiCisjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiRmxvYXRTaXplLmgiCiAjaW5j
bHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgRmxvYXRSb3VuZGVkUmVjdCA6IHB1YmxpYyBGbG9hdFJl
Y3QgeworcHVibGljOgorICAgIEZsb2F0Um91bmRlZFJlY3QoKSB7IH0KKyAgICBGbG9hdFJvdW5k
ZWRSZWN0KGNvbnN0IEZsb2F0UmVjdCYgYm91bmRzLCBjb25zdCBGbG9hdFNpemUmIHJhZGlpKQor
ICAgICAgICA6IEZsb2F0UmVjdChib3VuZHMpCisgICAgICAgICwgbV9yYWRpaShyYWRpaSkKKyAg
ICB7CisgICAgfQorCisgICAgZmxvYXQgcngoKSBjb25zdCB7IHJldHVybiBtX3JhZGlpLndpZHRo
KCk7IH0KKyAgICBmbG9hdCByeSgpIGNvbnN0IHsgcmV0dXJuIG1fcmFkaWkuaGVpZ2h0KCk7IH0K
KyAgICBGbG9hdFJvdW5kZWRSZWN0IG1hcmdpbkJvdW5kcyhmbG9hdCBtYXJnaW4pIGNvbnN0Owor
ICAgIEZsb2F0Um91bmRlZFJlY3QgcGFkZGluZ0JvdW5kcyhmbG9hdCBwYWRkaW5nKSBjb25zdDsK
KyAgICBGbG9hdFBvaW50IGNvcm5lckludGVyY2VwdEZvcldpZHRoKGZsb2F0IHdpZHRoKSBjb25z
dDsKKworcHJpdmF0ZToKKyAgICBGbG9hdFNpemUgbV9yYWRpaTsKK307CisKIGNsYXNzIEV4Y2x1
c2lvblJlY3RhbmdsZSA6IHB1YmxpYyBFeGNsdXNpb25TaGFwZSB7CiBwdWJsaWM6CiAgICAgRXhj
bHVzaW9uUmVjdGFuZ2xlKGNvbnN0IEZsb2F0UmVjdCYgYm91bmRzLCBjb25zdCBGbG9hdFNpemUm
IHJhZGlpKQogICAgICAgICA6IEV4Y2x1c2lvblNoYXBlKCkKLSAgICAgICAgLCBtX3goYm91bmRz
LngoKSkKLSAgICAgICAgLCBtX3koYm91bmRzLnkoKSkKLSAgICAgICAgLCBtX3dpZHRoKGJvdW5k
cy53aWR0aCgpKQotICAgICAgICAsIG1faGVpZ2h0KGJvdW5kcy5oZWlnaHQoKSkKLSAgICAgICAg
LCBtX3J4KHJhZGlpLndpZHRoKCkpCi0gICAgICAgICwgbV9yeShyYWRpaS5oZWlnaHQoKSkKKyAg
ICAgICAgLCBtX2JvdW5kcyhib3VuZHMsIHJhZGlpKQorICAgICAgICAsIG1faGF2ZUluaXRpYWxp
emVkTWFyZ2luQm91bmRzKGZhbHNlKQorICAgICAgICAsIG1faGF2ZUluaXRpYWxpemVkUGFkZGlu
Z0JvdW5kcyhmYWxzZSkKICAgICB7CiAgICAgfQogCi0gICAgdmlydHVhbCBGbG9hdFJlY3Qgc2hh
cGVMb2dpY2FsQm91bmRpbmdCb3goKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBGbG9hdFJlY3Qo
bV94LCBtX3ksIG1fd2lkdGgsIG1faGVpZ2h0KTsgfQotICAgIHZpcnR1YWwgYm9vbCBpc0VtcHR5
KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV93aWR0aCA8PSAwIHx8IG1faGVpZ2h0IDw9IDA7
IH0KKyAgICB2aXJ0dWFsIEZsb2F0UmVjdCBzaGFwZUxvZ2ljYWxCb3VuZGluZ0JveCgpIGNvbnN0
IE9WRVJSSURFIHsgcmV0dXJuIG1fYm91bmRzOyB9CisgICAgdmlydHVhbCBib29sIGlzRW1wdHko
KSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX2JvdW5kcy5pc0VtcHR5KCk7IH0KICAgICB2aXJ0
dWFsIHZvaWQgZ2V0RXhjbHVkZWRJbnRlcnZhbHMoZmxvYXQgbG9naWNhbFRvcCwgZmxvYXQgbG9n
aWNhbEhlaWdodCwgU2VnbWVudExpc3QmKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZv
aWQgZ2V0SW5jbHVkZWRJbnRlcnZhbHMoZmxvYXQgbG9naWNhbFRvcCwgZmxvYXQgbG9naWNhbEhl
aWdodCwgU2VnbWVudExpc3QmKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgZmly
c3RJbmNsdWRlZEludGVydmFsTG9naWNhbFRvcChmbG9hdCBtaW5Mb2dpY2FsSW50ZXJ2YWxUb3As
IGNvbnN0IEZsb2F0U2l6ZSYgbWluTG9naWNhbEludGVydmFsU2l6ZSwgZmxvYXQmKSBjb25zdCBP
VkVSUklERTsKIAotcHJpdmF0ZToKLSAgICBGbG9hdFBvaW50IGNvcm5lckludGVyY2VwdEZvcldp
ZHRoKGZsb2F0IHdpZHRoKSBjb25zdDsKKyAgICBGbG9hdFJvdW5kZWRSZWN0IHNoYXBlTWFyZ2lu
Qm91bmRzKCkgY29uc3Q7CisgICAgRmxvYXRSb3VuZGVkUmVjdCBzaGFwZVBhZGRpbmdCb3VuZHMo
KSBjb25zdDsKIAotICAgIGZsb2F0IG1feDsKLSAgICBmbG9hdCBtX3k7Ci0gICAgZmxvYXQgbV93
aWR0aDsKLSAgICBmbG9hdCBtX2hlaWdodDsKLSAgICBmbG9hdCBtX3J4OyAvLyBjb3JuZXIgWCBy
YWRpdXMKLSAgICBmbG9hdCBtX3J5OyAvLyBjb3JuZXIgWSByYWRpdXMKK3ByaXZhdGU6CisgICAg
RmxvYXRSb3VuZGVkUmVjdCBtX2JvdW5kczsKKyAgICBtdXRhYmxlIEZsb2F0Um91bmRlZFJlY3Qg
bV9tYXJnaW5Cb3VuZHM7CisgICAgbXV0YWJsZSBGbG9hdFJvdW5kZWRSZWN0IG1fcGFkZGluZ0Jv
dW5kczsKKyAgICBtdXRhYmxlIGJvb2wgbV9oYXZlSW5pdGlhbGl6ZWRNYXJnaW5Cb3VuZHMgOiAx
OworICAgIG11dGFibGUgYm9vbCBtX2hhdmVJbml0aWFsaXplZFBhZGRpbmdCb3VuZHMgOiAxOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9F
eGNsdXNpb25TaGFwZS5jcHAKaW5kZXggMmIzMTU4MS4uMjcyMzVjNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGUuY3BwCkBAIC05MCw3ICs5MCw3IEBAIHN0YXRp
YyBpbmxpbmUgRmxvYXRTaXplIHBoeXNpY2FsU2l6ZVRvTG9naWNhbChjb25zdCBGbG9hdFNpemUm
IHNpemUsIFdyaXRpbmdNb2RlCiAgICAgcmV0dXJuIHNpemUudHJhbnNwb3NlZFNpemUoKTsKIH0K
IAotUGFzc093blB0cjxFeGNsdXNpb25TaGFwZT4gRXhjbHVzaW9uU2hhcGU6OmNyZWF0ZUV4Y2x1
c2lvblNoYXBlKGNvbnN0IEJhc2ljU2hhcGUqIGJhc2ljU2hhcGUsIGZsb2F0IGxvZ2ljYWxCb3hX
aWR0aCwgZmxvYXQgbG9naWNhbEJveEhlaWdodCwgV3JpdGluZ01vZGUgd3JpdGluZ01vZGUpCitQ
YXNzT3duUHRyPEV4Y2x1c2lvblNoYXBlPiBFeGNsdXNpb25TaGFwZTo6Y3JlYXRlRXhjbHVzaW9u
U2hhcGUoY29uc3QgQmFzaWNTaGFwZSogYmFzaWNTaGFwZSwgZmxvYXQgbG9naWNhbEJveFdpZHRo
LCBmbG9hdCBsb2dpY2FsQm94SGVpZ2h0LCBXcml0aW5nTW9kZSB3cml0aW5nTW9kZSwgTGVuZ3Ro
IG1hcmdpbiwgTGVuZ3RoIHBhZGRpbmcpCiB7CiAgICAgQVNTRVJUKGJhc2ljU2hhcGUpOwogCkBA
IC0xNzUsNiArMTc1LDggQEAgUGFzc093blB0cjxFeGNsdXNpb25TaGFwZT4gRXhjbHVzaW9uU2hh
cGU6OmNyZWF0ZUV4Y2x1c2lvblNoYXBlKGNvbnN0IEJhc2ljU2hhcGUKICAgICBleGNsdXNpb25T
aGFwZS0+bV9sb2dpY2FsQm94V2lkdGggPSBsb2dpY2FsQm94V2lkdGg7CiAgICAgZXhjbHVzaW9u
U2hhcGUtPm1fbG9naWNhbEJveEhlaWdodCA9IGxvZ2ljYWxCb3hIZWlnaHQ7CiAgICAgZXhjbHVz
aW9uU2hhcGUtPm1fd3JpdGluZ01vZGUgPSB3cml0aW5nTW9kZTsKKyAgICBleGNsdXNpb25TaGFw
ZS0+bV9tYXJnaW4gPSBmbG9hdFZhbHVlRm9yTGVuZ3RoKG1hcmdpbiwgMCk7CisgICAgZXhjbHVz
aW9uU2hhcGUtPm1fcGFkZGluZyA9IGZsb2F0VmFsdWVGb3JMZW5ndGgocGFkZGluZywgMCk7CiAK
ICAgICByZXR1cm4gZXhjbHVzaW9uU2hhcGUucmVsZWFzZSgpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGUuaAppbmRleCBiMmRhM2M2Li5jNjE4MTgwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGUuaApAQCAtNTksMTAgKzU5LDEyIEBA
IHR5cGVkZWYgVmVjdG9yPExpbmVTZWdtZW50PiBTZWdtZW50TGlzdDsKIAogY2xhc3MgRXhjbHVz
aW9uU2hhcGUgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPEV4Y2x1c2lvblNoYXBl
PiBjcmVhdGVFeGNsdXNpb25TaGFwZShjb25zdCBCYXNpY1NoYXBlKiwgZmxvYXQgbG9naWNhbEJv
eFdpZHRoLCBmbG9hdCBsb2dpY2FsQm94SGVpZ2h0LCBXcml0aW5nTW9kZSk7CisgICAgc3RhdGlj
IFBhc3NPd25QdHI8RXhjbHVzaW9uU2hhcGU+IGNyZWF0ZUV4Y2x1c2lvblNoYXBlKGNvbnN0IEJh
c2ljU2hhcGUqLCBmbG9hdCBsb2dpY2FsQm94V2lkdGgsIGZsb2F0IGxvZ2ljYWxCb3hIZWlnaHQs
IFdyaXRpbmdNb2RlLCBMZW5ndGggbWFyZ2luLCBMZW5ndGggcGFkZGluZyk7CiAKICAgICB2aXJ0
dWFsIH5FeGNsdXNpb25TaGFwZSgpIHsgfQogCisgICAgZmxvYXQgc2hhcGVNYXJnaW4oKSBjb25z
dCB7IHJldHVybiBtX21hcmdpbjsgfQorICAgIGZsb2F0IHNoYXBlUGFkZGluZygpIGNvbnN0IHsg
cmV0dXJuIG1fcGFkZGluZzsgfQogICAgIHZpcnR1YWwgRmxvYXRSZWN0IHNoYXBlTG9naWNhbEJv
dW5kaW5nQm94KCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBpc0VtcHR5KCkgY29uc3Qg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBnZXRJbmNsdWRlZEludGVydmFscyhmbG9hdCBsb2dpY2Fs
VG9wLCBmbG9hdCBsb2dpY2FsSGVpZ2h0LCBTZWdtZW50TGlzdCYpIGNvbnN0ID0gMDsKQEAgLTc0
LDYgKzc2LDggQEAgcHJpdmF0ZToKICAgICBmbG9hdCBtX2xvZ2ljYWxCb3hXaWR0aDsKICAgICBm
bG9hdCBtX2xvZ2ljYWxCb3hIZWlnaHQ7CiAgICAgRmxvYXRSZWN0IG1fYm91bmRpbmdCb3g7Cisg
ICAgZmxvYXQgbV9tYXJnaW47CisgICAgZmxvYXQgbV9wYWRkaW5nOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1
c2lvblNoYXBlSW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hh
cGVJbmZvLmNwcAppbmRleCBkYjkxNDIzLi5mNmNiMDk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbmZvLmNwcApAQCAtNTAsNyArNTAsNyBAQCBjb25z
dCBFeGNsdXNpb25TaGFwZSogRXhjbHVzaW9uU2hhcGVJbmZvPFJlbmRlclR5cGUsIHNoYXBlR2V0
dGVyPjo6Y29tcHV0ZWRTaGFwZQogCiAgICAgQVNTRVJUKHNoYXBlKTsKIAotICAgIG1fc2hhcGUg
PSBFeGNsdXNpb25TaGFwZTo6Y3JlYXRlRXhjbHVzaW9uU2hhcGUoc2hhcGUsIG1fc2hhcGVMb2dp
Y2FsV2lkdGgsIG1fc2hhcGVMb2dpY2FsSGVpZ2h0LCBtX3JlbmRlcmVyLT5zdHlsZSgpLT53cml0
aW5nTW9kZSgpKTsKKyAgICBtX3NoYXBlID0gRXhjbHVzaW9uU2hhcGU6OmNyZWF0ZUV4Y2x1c2lv
blNoYXBlKHNoYXBlLCBtX3NoYXBlTG9naWNhbFdpZHRoLCBtX3NoYXBlTG9naWNhbEhlaWdodCwg
bV9yZW5kZXJlci0+c3R5bGUoKS0+d3JpdGluZ01vZGUoKSwgbV9yZW5kZXJlci0+c3R5bGUoKS0+
c2hhcGVNYXJnaW4oKSwgbV9yZW5kZXJlci0+c3R5bGUoKS0+c2hhcGVQYWRkaW5nKCkpOwogICAg
IEFTU0VSVChtX3NoYXBlKTsKICAgICByZXR1cm4gbV9zaGFwZS5nZXQoKTsKIH0K
</data>
<flag name="review"
          id="211053"
          type_id="1"
          status="+"
          setter="krit"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190629</attachid>
            <date>2013-02-27 17:51:36 -0800</date>
            <delta_ts>2013-02-27 19:33:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>tmp.patch</filename>
            <type>text/plain</type>
            <size>29377</size>
            <attacher name="Hans Muller">giles_joplin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmMjVhMjYwLi4yMDE1MjdmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTMtMDIt
MjcgIEhhbnMgTXVsbGVyICA8aG11bGxlckBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTUyBFeGNs
dXNpb25zXSBFbmFibGUgc2hhcGUtaW5zaWRlIHJlY3RhbmdsZSBzdXBwb3J0IGZvciBzaGFwZS1w
YWRkaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MTA1MDAKKworICAgICAgICBSZXZpZXdlZCBieSBEaXJrIFNjaHVsemUuCisKKyAgICAgICAgQWRk
ZWQgb25lIHNoYXBlLWluc2lkZSwgc2hhcGUtcGFkZGluZyB0ZXN0IGZvciBlYWNoIENTUyBzaGFw
ZSB0eXBlLgorCisgICAgICAgICogZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1p
bnNpZGUtY2lyY2xlLXBhZGRpbmctZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtY2lyY2xlLXBhZGRpbmcuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1p
bnNpZGUtZWxsaXBzZS1wYWRkaW5nLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLWVsbGlwc2UtcGFkZGluZy5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBl
LWluc2lkZS1yZWN0YW5nbGUtcGFkZGluZy1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1yZWN0YW5nbGUtcGFk
ZGluZy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRl
L3NoYXBlLWluc2lkZS1yb3VuZGVkLXJlY3RhbmdsZS1wYWRkaW5nLWV4cGVjdGVkLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRl
LXJvdW5kZWQtcmVjdGFuZ2xlLXBhZGRpbmcuaHRtbDogQWRkZWQuCisKIDIwMTMtMDItMjcgIFN0
ZXBoZW4gQ2hlbm5leSAgPHNjaGVubmV5QGNocm9taXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21p
dW1dIFJlYmFzZWxpbmUgYWZ0ZXIgcjE0NDIzNgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtY2lyY2xlLXBhZGRpbmctZXhw
ZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hh
cGUtaW5zaWRlLWNpcmNsZS1wYWRkaW5nLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uZWUwZWFkNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLWNpcmNsZS1wYWRkaW5n
LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwzNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPHN0eWxlPgorICAgICNzaGFwZS1pbnNpZGUgeworICAgICAgICBwb3NpdGlvbjog
cmVsYXRpdmU7CisgICAgfQorCisgICAgI3NoYXBlLW91dGxpbmUgeworICAgICAgICBwb3NpdGlv
bjogYWJzb2x1dGU7CisgICAgICAgIHRvcDogMHB4OworICAgICAgICBsZWZ0OiAwcHg7CisgICAg
ICAgIHdpZHRoOiA0MDBweDsKKyAgICAgICAgaGVpZ2h0OiA0MDBweDsKKyAgICB9CisKKyAgICAj
c2hhcGUtY29udGVudCB7CisgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgdG9w
OiAxMjkuMjg5cHg7CisgICAgICAgIGxlZnQ6IDEyOS4yODlweDsKKyAgICAgICAgZm9udDogMTQx
LjQycHgvMSBBaGVtLCBzYW5zLXNlcmlmOworICAgICAgICBjb2xvcjogZ3JlZW47CisgICAgfQor
PC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgaWQ9InNoYXBlLWluc2lkZSI+Cisg
ICAgICAgIDxkaXYgaWQ9InNoYXBlLWNvbnRlbnQiPlg8L2Rpdj4KKyAgICAgICAgPHN2ZyBpZD0i
c2hhcGUtb3V0bGluZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KKyAgICAg
ICAgICAgIDxjaXJjbGUgY3g9IjIwMCIgY3k9IjIwMCIgcj0iMTAwIiBzdHJva2U9ImJsdWUiIGZp
bGw9Im5vbmUiLz4KKyAgICAgICAgPC9zdmc+CisgICAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3No
YXBlLWluc2lkZS1jaXJjbGUtcGFkZGluZy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNp
b25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtY2lyY2xlLXBhZGRpbmcuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YTdjMzc1Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtY2ly
Y2xlLXBhZGRpbmcuaHRtbApAQCAtMCwwICsxLDQwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8c2NyaXB0PgorICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICB3
aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldENTU0V4Y2x1c2lvbnNFbmFibGVkKHRydWUpOwor
PC9zY3JpcHQ+Cis8c3R5bGU+CisgICAgLyogVGhpcyB0ZXN0IGlzIHRoZSBzYW1lIGFzIGNpcmNs
ZS1zaGFwZS1pbnNpZGUgZXhjZXB0IHRoYXQgdGhlIGNpcmNsZSdzIHJhZGl1cyBpcyAxNTBweCBp
bnN0ZWFkIAorICAgICAgIG9mIDEwMHB4IGFuZCBzaGFwZS1wYWRkaW5nIDUwcHggaGFzIGJlZW4g
c3BlY2lmaWVkLiBUaGUgZXhwZWN0ZWQgcmVzdWx0IGlzIHRoZSBzYW1lIGFzIHRoZSBvcmlnaW5h
bCB0ZXN0LgorICAgICovCisgICAgI3NoYXBlLWluc2lkZSB7CisgICAgICAgIHBvc2l0aW9uOiBy
ZWxhdGl2ZTsKKyAgICAgICAgd2lkdGg6IDQwMHB4OworICAgICAgICBoZWlnaHQ6IDQwMHB4Owor
ICAgICAgICAtd2Via2l0LXNoYXBlLWluc2lkZTogY2lyY2xlKDIwMHB4LCAyMDBweCwgMTUwcHgp
OworICAgICAgICAtd2Via2l0LXNoYXBlLXBhZGRpbmc6IDUwcHg7CisgICAgICAgIGZvbnQ6IDE0
MS40MnB4LzEgQWhlbSwgc2Fucy1zZXJpZjsKKworICAgICAgICBjb2xvcjogZ3JlZW47CisgICAg
fQorCisgICAgI3NoYXBlLW91dGxpbmUgeworICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7Cisg
ICAgICAgIHRvcDogMHB4OworICAgICAgICBsZWZ0OiAwcHg7CisgICAgICAgIHdpZHRoOiA0MDBw
eDsKKyAgICAgICAgaGVpZ2h0OiA0MDBweDsKKyAgICB9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJv
ZHk+CisgICAgPGRpdiBpZD0ic2hhcGUtaW5zaWRlIj4KKyAgICAgICAgPHN2ZyBpZD0ic2hhcGUt
b3V0bGluZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KKyAgICAgICAgICAg
IDxjaXJjbGUgY3g9IjIwMCIgY3k9IjIwMCIgcj0iMTAwIiBzdHJva2U9ImJsdWUiIGZpbGw9Im5v
bmUiLz4KKyAgICAgICAgPC9zdmc+CisgICAgICAgIFgKKyAgICA8L2Rpdj4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNp
ZGUvc2hhcGUtaW5zaWRlLWVsbGlwc2UtcGFkZGluZy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtZWxsaXBzZS1wYWRk
aW5nLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2Yw
ZWI2NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFw
ZS1pbnNpZGUvc2hhcGUtaW5zaWRlLWVsbGlwc2UtcGFkZGluZy1leHBlY3RlZC5odG1sCkBAIC0w
LDAgKzEsMzQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKyAg
ICAjc2hhcGUtaW5zaWRlIHsKKyAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgIH0KKwor
ICAgICNzaGFwZS1vdXRsaW5lIHsKKyAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAg
ICB0b3A6IDBweDsKKyAgICAgICAgbGVmdDogMHB4OworICAgICAgICB3aWR0aDogNTAwcHg7Cisg
ICAgICAgIGhlaWdodDogNTAwcHg7CisgICAgfQorCisgICAgI3NoYXBlLWNvbnRlbnQgeworICAg
ICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgIHRvcDogMTMwcHg7CisgICAgICAgIGxl
ZnQ6IDEzMXB4OworICAgICAgICBmb250OiAxNzhweC8xIEFoZW0sIHNhbnMtc2VyaWY7CisgICAg
ICAgIGNvbG9yOiBncmVlbjsKKyAgICB9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisgICAg
PGRpdiBpZD0ic2hhcGUtaW5zaWRlIj4KKyAgICAgICAgPGRpdiBpZD0ic2hhcGUtY29udGVudCI+
WDwvZGl2PgorICAgICAgICA8c3ZnIGlkPSJzaGFwZS1vdXRsaW5lIiB4bWxucz0iaHR0cDovL3d3
dy53My5vcmcvMjAwMC9zdmciPgorICAgICAgICAgICAgPGVsbGlwc2UgY3g9IjIyMCIgY3k9IjIy
MCIgcng9IjIwMCIgcnk9IjEwMCIgIHN0cm9rZT0iYmx1ZSIgZmlsbD0ibm9uZSIvPgorICAgICAg
ICA8L3N2Zz4KKyAgICA8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLWVsbGlwc2Ut
cGFkZGluZy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9z
aGFwZS1pbnNpZGUtZWxsaXBzZS1wYWRkaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uYmM1MTU1ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLWVsbGlwc2UtcGFkZGluZy5odG1s
CkBAIC0wLDAgKzEsMzkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3Jp
cHQ+CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMu
c2V0dGluZ3Muc2V0Q1NTRXhjbHVzaW9uc0VuYWJsZWQodHJ1ZSk7Cis8L3NjcmlwdD4KKzxzdHls
ZT4KKyAgICAvKiBUaGlzIHRlc3QgaXMgdGhlIHNhbWUgYXMgZWxsaXBzZS1zaGFwZS1pbnNpZGUg
ZXhjZXB0IHRoYXQgdGhlIGVsbGlwc2UgcmFkaWkgYXJlIDI1MHB4LDE1MHB4IGluc3RlYWQgCisg
ICAgICAgb2YgMjAwcHgsMTAwcHggYW5kIHNoYXBlLXBhZGRpbmcgNTBweCBoYXMgYmVlbiBzcGVj
aWZpZWQuIFRoZSBleHBlY3RlZCByZXN1bHQgaXMgdGhlIHNhbWUgYXMgdGhlIG9yaWdpbmFsIHRl
c3QuCisgICAgKi8KKyAgICAjc2hhcGUtaW5zaWRlIHsKKyAgICAgICAgcG9zaXRpb246IHJlbGF0
aXZlOworICAgICAgICB3aWR0aDogNTAwcHg7CisgICAgICAgIGhlaWdodDogNTAwcHg7CisgICAg
ICAgIC13ZWJraXQtc2hhcGUtaW5zaWRlOiBlbGxpcHNlKDIyMHB4LCAyMjBweCwgMjUwcHgsIDE1
MHB4KTsKKyAgICAgICAgLXdlYmtpdC1zaGFwZS1wYWRkaW5nOiA1MHB4OworICAgICAgICBmb250
OiAxNzhweC8xIEFoZW0sIHNhbnMtc2VyaWY7CisgICAgICAgIGNvbG9yOiBncmVlbjsKKyAgICB9
CisKKyAgICAjc2hhcGUtb3V0bGluZSB7CisgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAg
ICAgICAgdG9wOiAwcHg7CisgICAgICAgIGxlZnQ6IDBweDsKKyAgICAgICAgd2lkdGg6IDUwMHB4
OworICAgICAgICBoZWlnaHQ6IDUwMHB4OworICAgIH0KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9k
eT4KKyAgICA8ZGl2IGlkPSJzaGFwZS1pbnNpZGUiPgorICAgICAgICA8c3ZnIGlkPSJzaGFwZS1v
dXRsaW5lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgorICAgICAgICAgICAg
PGVsbGlwc2UgY3g9IjIyMCIgY3k9IjIyMCIgcng9IjIwMCIgcnk9IjEwMCIgIHN0cm9rZT0iYmx1
ZSIgZmlsbD0ibm9uZSIvPgorICAgICAgICA8L3N2Zz4KKyAgICAgICAgWAorICAgIDwvZGl2Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25z
L3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcmVjdGFuZ2xlLXBhZGRpbmctZXhwZWN0ZWQuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRl
LXJlY3RhbmdsZS1wYWRkaW5nLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uMjE1YmJmMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJlY3RhbmdsZS1wYWRkaW5nLWV4
cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwzNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPHN0eWxlPgorICAgICNzaGFwZS1pbnNpZGUgeworICAgICAgICBwb3NpdGlvbjogcmVs
YXRpdmU7CisgICAgfQorCisgICAgI3NoYXBlLW91dGxpbmUgeworICAgICAgICBwb3NpdGlvbjog
YWJzb2x1dGU7CisgICAgICAgIHRvcDogMHB4OworICAgICAgICBsZWZ0OiAwcHg7CisgICAgICAg
IHdpZHRoOiA0MDBweDsKKyAgICAgICAgaGVpZ2h0OiA0MDBweDsKKyAgICB9CisKKyAgICAjc2hh
cGUtY29udGVudCB7CisgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgdG9wOiA2
MHB4OworICAgICAgICBsZWZ0OiA2MHB4OworICAgICAgICB3aWR0aDogMTUwcHg7CisgICAgICAg
IGhlaWdodDogMTUwcHg7CisgICAgICAgIGZvbnQ6IDUwcHgvMSBBaGVtLCBzYW5zLXNlcmlmOwor
ICAgICAgICBjb2xvcjogZ3JlZW47CisgICAgfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5Pgor
ICAgIDxwPllvdSBzaG91bGQgc2VlIGEgZmlsbGVkIGdyZWVuIHNxdWFyZSB3aXRoaW4gYSBibGFj
ayBvdXRsaW5lLjwvcD4KKyAgICA8ZGl2IGlkPSJzaGFwZS1pbnNpZGUiPgorICAgICAgICA8c3Zn
IGlkPSJzaGFwZS1vdXRsaW5lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgor
ICAgICAgICAgICAgPHJlY3QgeD0iNTgiIHk9IjU4IiB3aWR0aD0iMTU0IiBoZWlnaHQ9IjE1NCIg
c3Ryb2tlPSJibGFjayIgZmlsbD0ibm9uZSIvPgorICAgICAgICA8L3N2Zz4KKyAgICAgICAgPGRp
diBpZD0ic2hhcGUtY29udGVudCI+WFhYPGJyLz5YWFg8YnIvPlhYWDwvZGl2PgorICAgIDwvZGl2
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNp
b25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcmVjdGFuZ2xlLXBhZGRpbmcuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJlY3Rh
bmdsZS1wYWRkaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODRm
YWE1MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFw
ZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJlY3RhbmdsZS1wYWRkaW5nLmh0bWwKQEAgLTAsMCArMSwz
NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KKyAgICBpZiAo
d2luZG93LmludGVybmFscykKKyAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRD
U1NFeGNsdXNpb25zRW5hYmxlZCh0cnVlKTsKKzwvc2NyaXB0PgorPHN0eWxlPgorICAgICNzaGFw
ZS1pbnNpZGUgeworICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgICAgIHdpZHRoOiA0
MDBweDsKKyAgICAgICAgaGVpZ2h0OiA0MDBweDsKKyAgICAgICAgLXdlYmtpdC1zaGFwZS1pbnNp
ZGU6IHJlY3RhbmdsZSgxMHB4LCAxMHB4LCAyNTBweCwgMjUwcHgpOworICAgICAgICAtd2Via2l0
LXNoYXBlLXBhZGRpbmc6IDUwcHg7CisgICAgICAgIGZvbnQ6IDUwcHgvMSBBaGVtLCBzYW5zLXNl
cmlmOworICAgICAgICBjb2xvcjogZ3JlZW47CisgICAgfQorCisgICAgI3NoYXBlLW91dGxpbmUg
eworICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgIHRvcDogMHB4OworICAgICAg
ICBsZWZ0OiAwcHg7CisgICAgICAgIHdpZHRoOiA0MDBweDsKKyAgICAgICAgaGVpZ2h0OiA0MDBw
eDsKKyAgICB9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisgICAgPHA+WW91IHNob3VsZCBz
ZWUgYSBmaWxsZWQgZ3JlZW4gc3F1YXJlIHdpdGhpbiBhIGJsYWNrIG91dGxpbmUuPC9wPgorICAg
IDxkaXYgaWQ9InNoYXBlLWluc2lkZSI+CisgICAgICAgIDxzdmcgaWQ9InNoYXBlLW91dGxpbmUi
IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CisgICAgICAgICAgICA8cmVjdCB4
PSI1OCIgeT0iNTgiIHdpZHRoPSIxNTQiIGhlaWdodD0iMTU0IiBzdHJva2U9ImJsYWNrIiBmaWxs
PSJub25lIi8+CisgICAgICAgIDwvc3ZnPgorICAgIFhYWCBYWFggWFhYCisgICAgPC9kaXY+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMv
c2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1yb3VuZGVkLXJlY3RhbmdsZS1wYWRkaW5nLWV4cGVj
dGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBl
LWluc2lkZS1yb3VuZGVkLXJlY3RhbmdsZS1wYWRkaW5nLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjI1YTFiYwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJvdW5k
ZWQtcmVjdGFuZ2xlLXBhZGRpbmctZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDM3IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CisgICAgI3NoYXBlLWluc2lkZSB7
CisgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICB9CisKKyAgICAjc2hhcGUtb3V0bGlu
ZSB7CisgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgdG9wOiAwcHg7CisgICAg
ICAgIGxlZnQ6IDBweDsKKyAgICAgICAgd2lkdGg6IDUwMHB4OworICAgICAgICBoZWlnaHQ6IDUw
MHB4OworICAgIH0KKworICAgICNzaGFwZS1jb250ZW50IHsKKyAgICAgICAgcG9zaXRpb246IGFi
c29sdXRlOworICAgICAgICB0b3A6IDUwcHg7CisgICAgICAgIGxlZnQ6IDUwcHg7CisgICAgICAg
IHdpZHRoOiAzMDBweDsKKyAgICAgICAgaGVpZ2h0OiAzMDBweDsKKyAgICAgICAgZm9udDogMTAw
cHgvMSBBaGVtLCBzYW5zLXNlcmlmOworICAgICAgICBjb2xvcjogZ3JlZW47CisgICAgfQorPC9z
dHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxwPlRoZSBibHVlIHJvdW5kZWQgcmVjdGFuZ2xl
IHNob3VsZCBqdXN0IGNvbnRhaW4gYSBjcm9zcyBvZiBmaXZlIGdyZWVuIHNxdWFyZXMuPC9wPgor
ICAgIDxkaXYgaWQ9InNoYXBlLWluc2lkZSI+CisgICAgICAgIDxkaXYgaWQ9InNoYXBlLWNvbnRl
bnQiPiZuYnNwO1g8YnIvPlhYWDxici8+Jm5ic3A7WDwvZGl2PgorICAgICAgICA8c3ZnIGlkPSJz
aGFwZS1vdXRsaW5lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgorICAgICAg
ICAgICAgPHJlY3QgeD0iNTAiIHk9IjUwIiB3aWR0aD0iMzAwIiBoZWlnaHQ9IjMwMCIgcng9IjEw
MCIgcnk9IjEwMCIgc3Ryb2tlPSJibHVlIiBmaWxsPSJub25lIi8+CisgICAgICAgIDwvc3ZnPgor
ICAgIDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcm91bmRlZC1yZWN0YW5nbGUt
cGFkZGluZy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9z
aGFwZS1pbnNpZGUtcm91bmRlZC1yZWN0YW5nbGUtcGFkZGluZy5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY3NGRlNWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1yb3VuZGVkLXJl
Y3RhbmdsZS1wYWRkaW5nLmh0bWwKQEAgLTAsMCArMSwzNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAg
ICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRDU1NFeGNsdXNpb25zRW5hYmxlZCh0cnVl
KTsKKzwvc2NyaXB0PgorPHN0eWxlPgorICAgICNzaGFwZS1pbnNpZGUgeworICAgICAgICBwb3Np
dGlvbjogcmVsYXRpdmU7CisgICAgICAgIHdpZHRoOiA1MDBweDsKKyAgICAgICAgaGVpZ2h0OiA1
MDBweDsKKyAgICAgICAgLXdlYmtpdC1zaGFwZS1pbnNpZGU6IHJlY3RhbmdsZSgwcHgsIDBweCwg
NDAwcHgsIDQwMHB4LCAxNTBweCwgMTUwcHgpOworICAgICAgICAtd2Via2l0LXNoYXBlLXBhZGRp
bmc6IDUwcHg7CisgICAgICAgIGZvbnQ6IDEwMHB4LzEgQWhlbSwgc2Fucy1zZXJpZjsKKyAgICAg
ICAgY29sb3I6IGdyZWVuOworICAgIH0KKworICAgICNzaGFwZS1vdXRsaW5lIHsKKyAgICAgICAg
cG9zaXRpb246IGFic29sdXRlOworICAgICAgICB0b3A6IDBweDsKKyAgICAgICAgbGVmdDogMHB4
OworICAgICAgICB3aWR0aDogNTAwcHg7CisgICAgICAgIGhlaWdodDogNTAwcHg7CisgICAgfQor
PC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxwPlRoZSBibHVlIHJvdW5kZWQgcmVjdGFu
Z2xlIHNob3VsZCBqdXN0IGNvbnRhaW4gYSBjcm9zcyBvZiBmaXZlIGdyZWVuIHNxdWFyZXMuPC9w
PgorICAgIDxkaXYgaWQ9InNoYXBlLWluc2lkZSI+CisgICAgICAgIDxzdmcgaWQ9InNoYXBlLW91
dGxpbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CisgICAgICAgICAgICA8
cmVjdCB4PSI1MCIgeT0iNTAiIHdpZHRoPSIzMDAiIGhlaWdodD0iMzAwIiByeD0iMTAwIiByeT0i
MTAwIiBzdHJva2U9ImJsdWUiIGZpbGw9Im5vbmUiLz4KKyAgICAgICAgPC9zdmc+CisgICAgWCBY
WFggWAorICAgIDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDhiOWI4OTYu
LmM0ZTRjMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MSBAQAorMjAxMy0wMi0yNyAgSGFucyBN
dWxsZXIgIDxobXVsbGVyQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTIEV4Y2x1c2lvbnNdIEVu
YWJsZSBzaGFwZS1pbnNpZGUgcmVjdGFuZ2xlIHN1cHBvcnQgZm9yIHNoYXBlLXBhZGRpbmcKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDUwMAorCisg
ICAgICAgIFJldmlld2VkIGJ5IERpcmsgU2NodWx6ZS4KKworICAgICAgICBBZGRlZCBzdXBwb3J0
IGZvciBDU1Mgc2hhcGUtcGFkZGluZyBmb3Igc2hhcGVzIGRlZmluZWQgd2l0aCBzaGFwZS1pbnNp
ZGUuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUt
aW5zaWRlLWNpcmNsZS1wYWRkaW5nLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXhjbHVzaW9u
cy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLWVsbGlwc2UtcGFkZGluZy5odG1sCisgICAgICAg
ICAgICAgICBmYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1yZWN0YW5n
bGUtcGFkZGluZy5odG1sCisgICAgICAgICAgICAgICBmYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5z
aWRlL3NoYXBlLWluc2lkZS1yb3VuZGVkLXJlY3RhbmdsZS1wYWRkaW5nLmh0bWwKKworICAgICAg
ICAqIHJlbmRlcmluZy9FeGNsdXNpb25SZWN0YW5nbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RmxvYXRSb3VuZGVkUmVjdDo6cGFkZGluZ0JvdW5kcyk6IEluc2V0IHRoZSByb3VuZGVkIHJlY3Rh
bmdsZSB0byByZWZsZWN0IHRoZSBwYWRkaW5nIHBhcmFtZXRlci4KKyAgICAgICAgKFdlYkNvcmU6
OkZsb2F0Um91bmRlZFJlY3Q6Om1hcmdpbkJvdW5kcyk6IEV4cGFuZCB0aGUgcm91bmRlZCByZWN0
YW5nbGUgdG8gcmVmbGVjdCB0aGUgbWFyZ2luIHBhcmFtZXRlci4KKyAgICAgICAgKFdlYkNvcmU6
OkZsb2F0Um91bmRlZFJlY3Q6OmNvcm5lckludGVyY2VwdEZvcldpZHRoKTogTW92ZWQgdGhpcyBt
ZXRob2QgZnJvbSBFeGNsdXNpb25SZWN0YW5nbGUgdG8gRmxvYXRSb3VuZGVkUmVjdC4KKyAgICAg
ICAgKFdlYkNvcmU6OkV4Y2x1c2lvblJlY3RhbmdsZTo6c2hhcGVQYWRkaW5nQm91bmRzKTogTGF6
aWx5IGNvbXB1dGUgdGhlIGJvdW5kcyBvZiB0aGUgcGFkZGluZyBib3guCisgICAgICAgIChXZWJD
b3JlOjpFeGNsdXNpb25SZWN0YW5nbGU6OnNoYXBlTWFyZ2luQm91bmRzKTogTGF6aWx5IGNvbXB1
dGUgdGhlIGJvdW5kcyBvZiB0aGUgbWFyZ2luIGJveC4KKyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1
c2lvblJlY3RhbmdsZTo6Z2V0RXhjbHVkZWRJbnRlcnZhbHMpOiBUaGlzIGNvbXB1dHVhdGlvbiBp
cyBub3cgYmFzZWQgb24gdGhlIChuZXcpIG1hcmdpbiBib3guCisgICAgICAgIChXZWJDb3JlOjpF
eGNsdXNpb25SZWN0YW5nbGU6OmdldEluY2x1ZGVkSW50ZXJ2YWxzKTogVGhpcyBjb21wdXRhdGlv
biBpcyBub3cgYmFzZSBkb24gdGhlIChuZXcpIHBhZGRpbmcgYm94LgorICAgICAgICAoV2ViQ29y
ZTo6RXhjbHVzaW9uUmVjdGFuZ2xlOjpmaXJzdEluY2x1ZGVkSW50ZXJ2YWxMb2dpY2FsVG9wKTog
VGhpcyBjb21wdXRhdGlvbiBpcyBub3cgYmFzZSBkb24gdGhlIChuZXcpIHBhZGRpbmcgYm94Lgor
ICAgICAgICAqIHJlbmRlcmluZy9FeGNsdXNpb25SZWN0YW5nbGUuaDoKKyAgICAgICAgKEZsb2F0
Um91bmRlZFJlY3QpOiBBIHN1YmNsYXNzIG9mIEZsb2F0UmVjdCB0aGF0IGluY2x1ZGVzIGNvcm5l
ciByYWRpaSBzcGVjaWZpZWQgYXMgQ1NTIHNoYXBlcyBkby4KKyAgICAgICAgKFdlYkNvcmU6OkZs
b2F0Um91bmRlZFJlY3Q6OkZsb2F0Um91bmRlZFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6Rmxv
YXRSb3VuZGVkUmVjdDo6cngpOgorICAgICAgICAoV2ViQ29yZTo6RmxvYXRSb3VuZGVkUmVjdDo6
cnkpOgorICAgICAgICAoV2ViQ29yZTo6RXhjbHVzaW9uUmVjdGFuZ2xlOjpFeGNsdXNpb25SZWN0
YW5nbGUpOgorICAgICAgICAqIHJlbmRlcmluZy9FeGNsdXNpb25TaGFwZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpFeGNsdXNpb25TaGFwZTo6Y3JlYXRlRXhjbHVzaW9uU2hhcGUpOiBJbml0aWFs
aXplIHRoZSBuZXcgc2hhcGVNYXJnaW4gYW5kIHNoYXBlUGFkZGluZyBwcm9wZXJ0aWVzLgorICAg
ICAgICAqIHJlbmRlcmluZy9FeGNsdXNpb25TaGFwZS5oOgorICAgICAgICAoRXhjbHVzaW9uU2hh
cGUpOgorICAgICAgICAoV2ViQ29yZTo6RXhjbHVzaW9uU2hhcGU6OnNoYXBlTWFyZ2luKTogQWRk
ZWQgYSBwdWJsaWMgcmVhZC1vbmx5IHByb3BlcnR5IGZvciBzaGFwZU1hcmdpbi4KKyAgICAgICAg
KFdlYkNvcmU6OkV4Y2x1c2lvblNoYXBlOjpzaGFwZVBhZGRpbmcpOiBBZGRlZCBhIHB1YmxpYyBy
ZWFkLW9ubHkgcHJvcGVydHkgZm9yIHNoYXBlUGFkZGluZy4KKyAgICAgICAgKiByZW5kZXJpbmcv
RXhjbHVzaW9uU2hhcGVJbmZvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ojo6Y29tcHV0ZWRTaGFw
ZSk6IFBhc3MgdGhlIHZhbHVlcyBvZiB0aGUgQ1NTIHNoYXBlLW1hcmdpbiBhbmQgc2hhcHAtcGFk
ZGluZyBwcm9wZXJ0aWVzIHRvIGNyZWF0ZUV4Y2x1c2lvblNoYXBlKCkuCisKIDIwMTMtMDItMjcg
IEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBVc2UgRmVhdHVyZU9i
c2VydmVyIHRvIHNlZSBob3cgb2Z0ZW4gd2ViIHNpdGVzIHVzZSBtdWx0aXBhcnQgbWFpbiBkb2N1
bWVudHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25SZWN0
YW5nbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblJlY3RhbmdsZS5j
cHAKaW5kZXggZWJlNmE4NC4uNmZkOGFkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0V4Y2x1c2lvblJlY3RhbmdsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL0V4Y2x1c2lvblJlY3RhbmdsZS5jcHAKQEAgLTQ2LDMxICs0Niw4NyBAQCBzdGF0aWMgaW5s
aW5lIGZsb2F0IGVsbGlwc2VZSW50ZXJjZXB0KGZsb2F0IHgsIGZsb2F0IHJ4LCBmbG9hdCByeSkK
ICAgICByZXR1cm4gcnkgKiBzcXJ0KDEgLSAoeCAqIHgpIC8gKHJ4ICogcngpKTsKIH0KIAorRmxv
YXRSb3VuZGVkUmVjdCBGbG9hdFJvdW5kZWRSZWN0OjpwYWRkaW5nQm91bmRzKGZsb2F0IHBhZGRp
bmcpIGNvbnN0Cit7CisgICAgQVNTRVJUKHBhZGRpbmcgPj0gMCk7CisgICAgaWYgKCFwYWRkaW5n
IHx8IGlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuICp0aGlzOworCisgICAgZmxvYXQgYm91bmRz
WCA9IHgoKSArIHN0ZDo6bWluKHdpZHRoKCkgLyAyLCBwYWRkaW5nKTsKKyAgICBmbG9hdCBib3Vu
ZHNZID0geSgpICsgc3RkOjptaW4oaGVpZ2h0KCkgLyAyLCBwYWRkaW5nKTsKKyAgICBmbG9hdCBi
b3VuZHNXaWR0aCA9IHN0ZDo6bWF4KDAuMGYsIHdpZHRoKCkgLSBwYWRkaW5nICogMik7CisgICAg
ZmxvYXQgYm91bmRzSGVpZ2h0ID0gc3RkOjptYXgoMC4wZiwgaGVpZ2h0KCkgLSBwYWRkaW5nICog
Mik7CisgICAgZmxvYXQgYm91bmRzUmFkaXVzWCA9IHN0ZDo6bWF4KDAuMGYsIHJ4KCkgLSBwYWRk
aW5nKTsKKyAgICBmbG9hdCBib3VuZHNSYWRpdXNZID0gc3RkOjptYXgoMC4wZiwgcnkoKSAtIHBh
ZGRpbmcpOworICAgIHJldHVybiBGbG9hdFJvdW5kZWRSZWN0KEZsb2F0UmVjdChib3VuZHNYLCBi
b3VuZHNZLCBib3VuZHNXaWR0aCwgYm91bmRzSGVpZ2h0KSwgRmxvYXRTaXplKGJvdW5kc1JhZGl1
c1gsIGJvdW5kc1JhZGl1c1kpKTsKK30KKworRmxvYXRSb3VuZGVkUmVjdCBGbG9hdFJvdW5kZWRS
ZWN0OjptYXJnaW5Cb3VuZHMoZmxvYXQgbWFyZ2luKSBjb25zdAoreworICAgIEFTU0VSVChtYXJn
aW4gPj0gMCk7CisgICAgaWYgKCFtYXJnaW4pCisgICAgICAgIHJldHVybiAqdGhpczsKKworICAg
IGZsb2F0IGJvdW5kc1ggPSB4KCkgLSBtYXJnaW47CisgICAgZmxvYXQgYm91bmRzWSA9IHkoKSAt
IG1hcmdpbjsKKyAgICBmbG9hdCBib3VuZHNXaWR0aCA9IHdpZHRoKCkgKyBtYXJnaW4gKiAyOwor
ICAgIGZsb2F0IGJvdW5kc0hlaWdodCA9IGhlaWdodCgpICsgbWFyZ2luICogMjsKKyAgICBmbG9h
dCBib3VuZHNSYWRpdXNYID0gc3RkOjptYXgocngoKSwgbWFyZ2luKTsKKyAgICBmbG9hdCBib3Vu
ZHNSYWRpdXNZID0gc3RkOjptYXgocnkoKSwgbWFyZ2luKTsKKyAgICByZXR1cm4gRmxvYXRSb3Vu
ZGVkUmVjdChGbG9hdFJlY3QoYm91bmRzWCwgYm91bmRzWSwgYm91bmRzV2lkdGgsIGJvdW5kc0hl
aWdodCksIEZsb2F0U2l6ZShib3VuZHNSYWRpdXNYLCBib3VuZHNSYWRpdXNZKSk7Cit9CisKK0Zs
b2F0UG9pbnQgRmxvYXRSb3VuZGVkUmVjdDo6Y29ybmVySW50ZXJjZXB0Rm9yV2lkdGgoZmxvYXQg
d2lkdGhBdEludGVyY2VwdCkgY29uc3QKK3sKKyAgICBmbG9hdCB4aSA9ICh3aWR0aCgpIC0gd2lk
dGhBdEludGVyY2VwdCkgLyAyOworICAgIGZsb2F0IHlpID0gcnkoKSAtIGVsbGlwc2VZSW50ZXJj
ZXB0KHJ4KCkgLSB4aSwgcngoKSwgcnkoKSk7CisgICAgcmV0dXJuIEZsb2F0UG9pbnQoeGksIHlp
KTsKK30KKworRmxvYXRSb3VuZGVkUmVjdCBFeGNsdXNpb25SZWN0YW5nbGU6OnNoYXBlUGFkZGlu
Z0JvdW5kcygpIGNvbnN0Cit7CisgICAgaWYgKCFtX2hhdmVJbml0aWFsaXplZFBhZGRpbmdCb3Vu
ZHMpIHsKKyAgICAgICAgbV9oYXZlSW5pdGlhbGl6ZWRQYWRkaW5nQm91bmRzID0gdHJ1ZTsKKyAg
ICAgICAgbV9wYWRkaW5nQm91bmRzID0gbV9ib3VuZHMucGFkZGluZ0JvdW5kcyhzaGFwZVBhZGRp
bmcoKSk7CisgICAgfQorICAgIHJldHVybiBtX3BhZGRpbmdCb3VuZHM7Cit9CisKK0Zsb2F0Um91
bmRlZFJlY3QgRXhjbHVzaW9uUmVjdGFuZ2xlOjpzaGFwZU1hcmdpbkJvdW5kcygpIGNvbnN0Cit7
CisgICAgaWYgKCFtX2hhdmVJbml0aWFsaXplZE1hcmdpbkJvdW5kcykgeworICAgICAgICBtX2hh
dmVJbml0aWFsaXplZE1hcmdpbkJvdW5kcyA9IHRydWU7CisgICAgICAgIG1fbWFyZ2luQm91bmRz
ID0gbV9ib3VuZHMubWFyZ2luQm91bmRzKHNoYXBlTWFyZ2luKCkpOworICAgIH0KKyAgICByZXR1
cm4gbV9tYXJnaW5Cb3VuZHM7Cit9CisKIHZvaWQgRXhjbHVzaW9uUmVjdGFuZ2xlOjpnZXRFeGNs
dWRlZEludGVydmFscyhmbG9hdCBsb2dpY2FsVG9wLCBmbG9hdCBsb2dpY2FsSGVpZ2h0LCBTZWdt
ZW50TGlzdCYgcmVzdWx0KSBjb25zdAogewotICAgIGlmIChpc0VtcHR5KCkpCisgICAgY29uc3Qg
RmxvYXRSb3VuZGVkUmVjdCYgYm91bmRzID0gc2hhcGVNYXJnaW5Cb3VuZHMoKTsKKyAgICBpZiAo
Ym91bmRzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgZmxvYXQgeTEgPSBsb2dp
Y2FsVG9wOwogICAgIGZsb2F0IHkyID0geTEgKyBsb2dpY2FsSGVpZ2h0OwogCi0gICAgaWYgKHky
IDwgbV95IHx8IHkxID49IG1feSArIG1faGVpZ2h0KQorICAgIGlmICh5MiA8IGJvdW5kcy55KCkg
fHwgeTEgPj0gYm91bmRzLm1heFkoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgZmxvYXQgeDEg
PSBtX3g7Ci0gICAgZmxvYXQgeDIgPSBtX3ggKyBtX3dpZHRoOwotCi0gICAgaWYgKG1fcnkgPiAw
KSB7Ci0gICAgICAgIGlmICh5MiA8IG1feSArIG1fcnkpIHsKLSAgICAgICAgICAgIGZsb2F0IHlp
ID0geTIgLSBtX3kgLSBtX3J5OwotICAgICAgICAgICAgZmxvYXQgeGkgPSBlbGxpcHNlWEludGVy
Y2VwdCh5aSwgbV9yeCwgbV9yeSk7Ci0gICAgICAgICAgICB4MSA9IG1feCArIG1fcnggLSB4aTsK
LSAgICAgICAgICAgIHgyID0gbV94ICsgbV93aWR0aCAtIG1fcnggKyB4aTsKLSAgICAgICAgfSBl
bHNlIGlmICh5MSA+IG1feSArIG1faGVpZ2h0IC0gbV9yeSkgewotICAgICAgICAgICAgZmxvYXQg
eWkgPSAgeTEgLSAobV95ICsgbV9oZWlnaHQgLSBtX3J5KTsKLSAgICAgICAgICAgIGZsb2F0IHhp
ID0gZWxsaXBzZVhJbnRlcmNlcHQoeWksIG1fcngsIG1fcnkpOwotICAgICAgICAgICAgeDEgPSBt
X3ggKyBtX3J4IC0geGk7Ci0gICAgICAgICAgICB4MiA9IG1feCArIG1fd2lkdGggLSBtX3J4ICsg
eGk7CisgICAgZmxvYXQgeDEgPSBib3VuZHMueCgpOworICAgIGZsb2F0IHgyID0gYm91bmRzLm1h
eFgoKTsKKworICAgIGlmIChib3VuZHMucnkoKSA+IDApIHsKKyAgICAgICAgaWYgKHkyIDwgYm91
bmRzLnkoKSArIGJvdW5kcy5yeSgpKSB7CisgICAgICAgICAgICBmbG9hdCB5aSA9IHkyIC0gYm91
bmRzLnkoKSAtIGJvdW5kcy5yeSgpOworICAgICAgICAgICAgZmxvYXQgeGkgPSBlbGxpcHNlWElu
dGVyY2VwdCh5aSwgYm91bmRzLnJ4KCksIGJvdW5kcy5yeSgpKTsKKyAgICAgICAgICAgIHgxID0g
Ym91bmRzLngoKSArIGJvdW5kcy5yeCgpIC0geGk7CisgICAgICAgICAgICB4MiA9IGJvdW5kcy5t
YXhYKCkgLSBib3VuZHMucngoKSArIHhpOworICAgICAgICB9IGVsc2UgaWYgKHkxID4gYm91bmRz
Lm1heFkoKSAtIGJvdW5kcy5yeSgpKSB7CisgICAgICAgICAgICBmbG9hdCB5aSA9ICB5MSAtIChi
b3VuZHMubWF4WSgpIC0gYm91bmRzLnJ5KCkpOworICAgICAgICAgICAgZmxvYXQgeGkgPSBlbGxp
cHNlWEludGVyY2VwdCh5aSwgYm91bmRzLnJ4KCksIGJvdW5kcy5yeSgpKTsKKyAgICAgICAgICAg
IHgxID0gYm91bmRzLngoKSArIGJvdW5kcy5yeCgpIC0geGk7CisgICAgICAgICAgICB4MiA9IGJv
dW5kcy5tYXhYKCkgLSBib3VuZHMucngoKSArIHhpOwogICAgICAgICB9CiAgICAgfQogCkBAIC03
OSw5MiArMTM1LDg3IEBAIHZvaWQgRXhjbHVzaW9uUmVjdGFuZ2xlOjpnZXRFeGNsdWRlZEludGVy
dmFscyhmbG9hdCBsb2dpY2FsVG9wLCBmbG9hdCBsb2dpY2FsSGVpCiAKIHZvaWQgRXhjbHVzaW9u
UmVjdGFuZ2xlOjpnZXRJbmNsdWRlZEludGVydmFscyhmbG9hdCBsb2dpY2FsVG9wLCBmbG9hdCBs
b2dpY2FsSGVpZ2h0LCBTZWdtZW50TGlzdCYgcmVzdWx0KSBjb25zdAogewotICAgIGlmIChpc0Vt
cHR5KCkpCisgICAgY29uc3QgRmxvYXRSb3VuZGVkUmVjdCYgYm91bmRzID0gc2hhcGVQYWRkaW5n
Qm91bmRzKCk7CisgICAgaWYgKGJvdW5kcy5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKIAog
ICAgIGZsb2F0IHkxID0gbG9naWNhbFRvcDsKICAgICBmbG9hdCB5MiA9IHkxICsgbG9naWNhbEhl
aWdodDsKIAotICAgIGlmICh5MSA8IG1feSB8fCB5MiA+IG1feSArIG1faGVpZ2h0KQorICAgIGlm
ICh5MSA8IGJvdW5kcy55KCkgfHwgeTIgPiBib3VuZHMubWF4WSgpKQogICAgICAgICByZXR1cm47
CiAKLSAgICBmbG9hdCB4MSA9IG1feDsKLSAgICBmbG9hdCB4MiA9IG1feCArIG1fd2lkdGg7Cisg
ICAgZmxvYXQgeDEgPSBib3VuZHMueCgpOworICAgIGZsb2F0IHgyID0gYm91bmRzLm1heFgoKTsK
IAotICAgIGlmIChtX3J5ID4gMCkgewotICAgICAgICBib29sIHkxSW50ZXJjZXB0c0Nvcm5lciA9
IHkxIDwgbV95ICsgbV9yeTsKLSAgICAgICAgYm9vbCB5MkludGVyY2VwdHNDb3JuZXIgPSB5MiA+
IG1feSArIG1faGVpZ2h0IC0gbV9yeTsKKyAgICBpZiAoYm91bmRzLnJ5KCkgPiAwKSB7CisgICAg
ICAgIGJvb2wgeTFJbnRlcmNlcHRzQ29ybmVyID0geTEgPCBib3VuZHMueSgpICsgYm91bmRzLnJ5
KCk7CisgICAgICAgIGJvb2wgeTJJbnRlcmNlcHRzQ29ybmVyID0geTIgPiBib3VuZHMubWF4WSgp
IC0gYm91bmRzLnJ5KCk7CiAgICAgICAgIGZsb2F0IHhpID0gMDsKIAogICAgICAgICBpZiAoeTFJ
bnRlcmNlcHRzQ29ybmVyICYmIHkySW50ZXJjZXB0c0Nvcm5lcikgewotICAgICAgICAgICAgaWYg
ICh5MSA8IG1faGVpZ2h0ICsgMiptX3kgLSB5MikgewotICAgICAgICAgICAgICAgIGZsb2F0IHlp
ID0geTEgLSBtX3kgLSBtX3J5OwotICAgICAgICAgICAgICAgIHhpID0gZWxsaXBzZVhJbnRlcmNl
cHQoeWksIG1fcngsIG1fcnkpOworICAgICAgICAgICAgaWYgICh5MSA8IGJvdW5kcy5oZWlnaHQo
KSArIDIgKiBib3VuZHMueSgpIC0geTIpIHsKKyAgICAgICAgICAgICAgICBmbG9hdCB5aSA9IHkx
IC0gYm91bmRzLnkoKSAtIGJvdW5kcy5yeSgpOworICAgICAgICAgICAgICAgIHhpID0gZWxsaXBz
ZVhJbnRlcmNlcHQoeWksIGJvdW5kcy5yeCgpLCBib3VuZHMucnkoKSk7CiAgICAgICAgICAgICB9
IGVsc2UgewotICAgICAgICAgICAgICAgIGZsb2F0IHlpID0gIHkyIC0gKG1feSArIG1faGVpZ2h0
IC0gbV9yeSk7Ci0gICAgICAgICAgICAgICAgeGkgPSBlbGxpcHNlWEludGVyY2VwdCh5aSwgbV9y
eCwgbV9yeSk7CisgICAgICAgICAgICAgICAgZmxvYXQgeWkgPSAgeTIgLSAoYm91bmRzLm1heFko
KSAtIGJvdW5kcy5yeSgpKTsKKyAgICAgICAgICAgICAgICB4aSA9IGVsbGlwc2VYSW50ZXJjZXB0
KHlpLCBib3VuZHMucngoKSwgYm91bmRzLnJ5KCkpOwogICAgICAgICAgICAgfQogICAgICAgICB9
IGVsc2UgaWYgKHkxSW50ZXJjZXB0c0Nvcm5lcikgewotICAgICAgICAgICAgZmxvYXQgeWkgPSB5
MSAtIG1feSAtIG1fcnk7Ci0gICAgICAgICAgICB4aSA9IGVsbGlwc2VYSW50ZXJjZXB0KHlpLCBt
X3J4LCBtX3J5KTsKKyAgICAgICAgICAgIGZsb2F0IHlpID0geTEgLSBib3VuZHMueSgpIC0gYm91
bmRzLnJ5KCk7CisgICAgICAgICAgICB4aSA9IGVsbGlwc2VYSW50ZXJjZXB0KHlpLCBib3VuZHMu
cngoKSwgYm91bmRzLnJ5KCkpOwogICAgICAgICB9IGVsc2UgaWYgKHkySW50ZXJjZXB0c0Nvcm5l
cikgewotICAgICAgICAgICAgZmxvYXQgeWkgPSAgeTIgLSAobV95ICsgbV9oZWlnaHQgLSBtX3J5
KTsKLSAgICAgICAgICAgIHhpID0gZWxsaXBzZVhJbnRlcmNlcHQoeWksIG1fcngsIG1fcnkpOwor
ICAgICAgICAgICAgZmxvYXQgeWkgPSAgeTIgLSAoYm91bmRzLm1heFkoKSAtIGJvdW5kcy5yeSgp
KTsKKyAgICAgICAgICAgIHhpID0gZWxsaXBzZVhJbnRlcmNlcHQoeWksIGJvdW5kcy5yeCgpLCBi
b3VuZHMucnkoKSk7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAoeTFJbnRlcmNlcHRzQ29ybmVy
IHx8IHkySW50ZXJjZXB0c0Nvcm5lcikgewotICAgICAgICAgICAgeDEgPSBtX3ggKyBtX3J4IC0g
eGk7Ci0gICAgICAgICAgICB4MiA9IG1feCArIG1fd2lkdGggLSBtX3J4ICsgeGk7CisgICAgICAg
ICAgICB4MSA9IGJvdW5kcy54KCkgKyBib3VuZHMucngoKSAtIHhpOworICAgICAgICAgICAgeDIg
PSBib3VuZHMubWF4WCgpIC0gYm91bmRzLnJ4KCkgKyB4aTsKICAgICAgICAgfQogICAgIH0KIAog
ICAgIHJlc3VsdC5hcHBlbmQoTGluZVNlZ21lbnQoeDEsIHgyKSk7CiB9CiAKLUZsb2F0UG9pbnQg
RXhjbHVzaW9uUmVjdGFuZ2xlOjpjb3JuZXJJbnRlcmNlcHRGb3JXaWR0aChmbG9hdCB3aWR0aCkg
Y29uc3QKLXsKLSAgICBmbG9hdCB4aSA9IChtX3dpZHRoIC0gd2lkdGgpIC8gMjsKLSAgICBmbG9h
dCB5aSA9IG1fcnkgLSBlbGxpcHNlWUludGVyY2VwdChtX3J4IC0geGksIG1fcngsIG1fcnkpOwot
ICAgIHJldHVybiBGbG9hdFBvaW50KHhpLCB5aSk7Ci19Ci0KIGJvb2wgRXhjbHVzaW9uUmVjdGFu
Z2xlOjpmaXJzdEluY2x1ZGVkSW50ZXJ2YWxMb2dpY2FsVG9wKGZsb2F0IG1pbkxvZ2ljYWxJbnRl
cnZhbFRvcCwgY29uc3QgRmxvYXRTaXplJiBtaW5Mb2dpY2FsSW50ZXJ2YWxTaXplLCBmbG9hdCYg
cmVzdWx0KSBjb25zdAogewotICAgIGlmIChtaW5Mb2dpY2FsSW50ZXJ2YWxTaXplLndpZHRoKCkg
PiBtX3dpZHRoKQorICAgIGNvbnN0IEZsb2F0Um91bmRlZFJlY3QmIGJvdW5kcyA9IHNoYXBlUGFk
ZGluZ0JvdW5kcygpOworICAgIGlmIChib3VuZHMuaXNFbXB0eSgpIHx8IG1pbkxvZ2ljYWxJbnRl
cnZhbFNpemUud2lkdGgoKSA+IGJvdW5kcy53aWR0aCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKLSAgICBmbG9hdCBtaW5ZID0gc3RkOjptYXgobV95LCBtaW5Mb2dpY2FsSW50ZXJ2YWxUb3Ap
OworICAgIGZsb2F0IG1pblkgPSBzdGQ6Om1heChib3VuZHMueSgpLCBtaW5Mb2dpY2FsSW50ZXJ2
YWxUb3ApOwogICAgIGZsb2F0IG1heFkgPSBtaW5ZICsgbWluTG9naWNhbEludGVydmFsU2l6ZS5o
ZWlnaHQoKTsKIAotICAgIGlmIChtYXhZID4gbV95ICsgbV9oZWlnaHQpCisgICAgaWYgKG1heFkg
PiBib3VuZHMubWF4WSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBib29sIGludGVy
dmFsT3ZlcmxhcHNNaW5Db3JuZXIgPSBtaW5ZIDwgbV95ICsgbV9yeTsKLSAgICBib29sIGludGVy
dmFsT3ZlcmxhcHNNYXhDb3JuZXIgPSBtYXhZID4gbV95ICsgbV9oZWlnaHQgLSBtX3J5OworICAg
IGJvb2wgaW50ZXJ2YWxPdmVybGFwc01pbkNvcm5lciA9IG1pblkgPCBib3VuZHMueSgpICsgYm91
bmRzLnJ5KCk7CisgICAgYm9vbCBpbnRlcnZhbE92ZXJsYXBzTWF4Q29ybmVyID0gbWF4WSA+IGJv
dW5kcy5tYXhZKCkgLSBib3VuZHMucnkoKTsKIAogICAgIGlmICghaW50ZXJ2YWxPdmVybGFwc01p
bkNvcm5lciAmJiAhaW50ZXJ2YWxPdmVybGFwc01heENvcm5lcikgewogICAgICAgICByZXN1bHQg
PSBtaW5ZOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICBmbG9hdCBjZW50ZXJZ
ID0gbV95ICsgbV9oZWlnaHQgLyAyOworICAgIGZsb2F0IGNlbnRlclkgPSBib3VuZHMueSgpICsg
Ym91bmRzLmhlaWdodCgpIC8gMjsKICAgICBib29sIG1pbkNvcm5lckRlZmluZXNYID0gZmFicyhj
ZW50ZXJZIC0gbWluWSkgPiBmYWJzKGNlbnRlclkgLSBtYXhZKTsKLSAgICBib29sIGludGVydmFs
Rml0c1dpdGhpbkNvcm5lcnMgPSBtaW5Mb2dpY2FsSW50ZXJ2YWxTaXplLndpZHRoKCkgKyAyICog
bV9yeCA8PSBtX3dpZHRoOwotICAgIEZsb2F0UG9pbnQgY29ybmVySW50ZXJjZXB0ID0gY29ybmVy
SW50ZXJjZXB0Rm9yV2lkdGgobWluTG9naWNhbEludGVydmFsU2l6ZS53aWR0aCgpKTsKKyAgICBi
b29sIGludGVydmFsRml0c1dpdGhpbkNvcm5lcnMgPSBtaW5Mb2dpY2FsSW50ZXJ2YWxTaXplLndp
ZHRoKCkgKyAyICogYm91bmRzLnJ4KCkgPD0gYm91bmRzLndpZHRoKCk7CisgICAgRmxvYXRQb2lu
dCBjb3JuZXJJbnRlcmNlcHQgPSBib3VuZHMuY29ybmVySW50ZXJjZXB0Rm9yV2lkdGgobWluTG9n
aWNhbEludGVydmFsU2l6ZS53aWR0aCgpKTsKIAogICAgIGlmIChpbnRlcnZhbE92ZXJsYXBzTWlu
Q29ybmVyICYmICghaW50ZXJ2YWxPdmVybGFwc01heENvcm5lciB8fCBtaW5Db3JuZXJEZWZpbmVz
WCkpIHsKLSAgICAgICAgaWYgKGludGVydmFsRml0c1dpdGhpbkNvcm5lcnMgfHwgbV95ICsgY29y
bmVySW50ZXJjZXB0LnkoKSA8IG1pblkpIHsKKyAgICAgICAgaWYgKGludGVydmFsRml0c1dpdGhp
bkNvcm5lcnMgfHwgYm91bmRzLnkoKSArIGNvcm5lckludGVyY2VwdC55KCkgPCBtaW5ZKSB7CiAg
ICAgICAgICAgICByZXN1bHQgPSBtaW5ZOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
ICAgIH0KLSAgICAgICAgaWYgKG1pbkxvZ2ljYWxJbnRlcnZhbFNpemUuaGVpZ2h0KCkgPCBtX2hl
aWdodCAtICgyICogY29ybmVySW50ZXJjZXB0LnkoKSkpIHsKLSAgICAgICAgICAgIHJlc3VsdCA9
IG1feSArIGNvcm5lckludGVyY2VwdC55KCk7CisgICAgICAgIGlmIChtaW5Mb2dpY2FsSW50ZXJ2
YWxTaXplLmhlaWdodCgpIDwgYm91bmRzLmhlaWdodCgpIC0gKDIgKiBjb3JuZXJJbnRlcmNlcHQu
eSgpKSkgeworICAgICAgICAgICAgcmVzdWx0ID0gYm91bmRzLnkoKSArIGNvcm5lckludGVyY2Vw
dC55KCk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgIH0KIAogICAg
IGlmIChpbnRlcnZhbE92ZXJsYXBzTWF4Q29ybmVyICYmICghaW50ZXJ2YWxPdmVybGFwc01pbkNv
cm5lciB8fCAhbWluQ29ybmVyRGVmaW5lc1gpKSB7Ci0gICAgICAgIGlmIChpbnRlcnZhbEZpdHNX
aXRoaW5Db3JuZXJzIHx8IG1pblkgPD0gIG1feSArIG1faGVpZ2h0IC0gY29ybmVySW50ZXJjZXB0
LnkoKSAtIG1pbkxvZ2ljYWxJbnRlcnZhbFNpemUuaGVpZ2h0KCkpIHsKKyAgICAgICAgaWYgKGlu
dGVydmFsRml0c1dpdGhpbkNvcm5lcnMgfHwgbWluWSA8PSAgYm91bmRzLm1heFkoKSAtIGNvcm5l
ckludGVyY2VwdC55KCkgLSBtaW5Mb2dpY2FsSW50ZXJ2YWxTaXplLmhlaWdodCgpKSB7CiAgICAg
ICAgICAgICByZXN1bHQgPSBtaW5ZOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25SZWN0YW5n
bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25SZWN0YW5nbGUuaAppbmRl
eCBjOGE2NTM4Li45MzAzZDBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
RXhjbHVzaW9uUmVjdGFuZ2xlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1
c2lvblJlY3RhbmdsZS5oCkBAIC0zMiw0MCArMzIsNTcgQEAKIAogI2luY2x1ZGUgIkV4Y2x1c2lv
blNoYXBlLmgiCiAjaW5jbHVkZSAiRmxvYXRQb2ludC5oIgorI2luY2x1ZGUgIkZsb2F0UmVjdC5o
IgogI2luY2x1ZGUgIkZsb2F0U2l6ZS5oIgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAj
aW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEZs
b2F0Um91bmRlZFJlY3QgOiBwdWJsaWMgRmxvYXRSZWN0IHsKK3B1YmxpYzoKKyAgICBGbG9hdFJv
dW5kZWRSZWN0KCkgeyB9CisgICAgRmxvYXRSb3VuZGVkUmVjdChjb25zdCBGbG9hdFJlY3QmIGJv
dW5kcywgY29uc3QgRmxvYXRTaXplJiByYWRpaSkKKyAgICAgICAgOiBGbG9hdFJlY3QoYm91bmRz
KQorICAgICAgICAsIG1fcmFkaWkocmFkaWkpCisgICAgeworICAgIH0KKworICAgIGZsb2F0IHJ4
KCkgY29uc3QgeyByZXR1cm4gbV9yYWRpaS53aWR0aCgpOyB9CisgICAgZmxvYXQgcnkoKSBjb25z
dCB7IHJldHVybiBtX3JhZGlpLmhlaWdodCgpOyB9CisgICAgRmxvYXRSb3VuZGVkUmVjdCBtYXJn
aW5Cb3VuZHMoZmxvYXQgbWFyZ2luKSBjb25zdDsKKyAgICBGbG9hdFJvdW5kZWRSZWN0IHBhZGRp
bmdCb3VuZHMoZmxvYXQgcGFkZGluZykgY29uc3Q7CisgICAgRmxvYXRQb2ludCBjb3JuZXJJbnRl
cmNlcHRGb3JXaWR0aChmbG9hdCB3aWR0aCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgRmxvYXRT
aXplIG1fcmFkaWk7Cit9OworCiBjbGFzcyBFeGNsdXNpb25SZWN0YW5nbGUgOiBwdWJsaWMgRXhj
bHVzaW9uU2hhcGUgewogcHVibGljOgogICAgIEV4Y2x1c2lvblJlY3RhbmdsZShjb25zdCBGbG9h
dFJlY3QmIGJvdW5kcywgY29uc3QgRmxvYXRTaXplJiByYWRpaSkKICAgICAgICAgOiBFeGNsdXNp
b25TaGFwZSgpCi0gICAgICAgICwgbV94KGJvdW5kcy54KCkpCi0gICAgICAgICwgbV95KGJvdW5k
cy55KCkpCi0gICAgICAgICwgbV93aWR0aChib3VuZHMud2lkdGgoKSkKLSAgICAgICAgLCBtX2hl
aWdodChib3VuZHMuaGVpZ2h0KCkpCi0gICAgICAgICwgbV9yeChyYWRpaS53aWR0aCgpKQotICAg
ICAgICAsIG1fcnkocmFkaWkuaGVpZ2h0KCkpCisgICAgICAgICwgbV9ib3VuZHMoYm91bmRzLCBy
YWRpaSkKKyAgICAgICAgLCBtX2hhdmVJbml0aWFsaXplZE1hcmdpbkJvdW5kcyhmYWxzZSkKKyAg
ICAgICAgLCBtX2hhdmVJbml0aWFsaXplZFBhZGRpbmdCb3VuZHMoZmFsc2UpCiAgICAgewogICAg
IH0KIAotICAgIHZpcnR1YWwgRmxvYXRSZWN0IHNoYXBlTG9naWNhbEJvdW5kaW5nQm94KCkgY29u
c3QgT1ZFUlJJREUgeyByZXR1cm4gRmxvYXRSZWN0KG1feCwgbV95LCBtX3dpZHRoLCBtX2hlaWdo
dCk7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNFbXB0eSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJu
IG1fd2lkdGggPD0gMCB8fCBtX2hlaWdodCA8PSAwOyB9CisgICAgdmlydHVhbCBGbG9hdFJlY3Qg
c2hhcGVMb2dpY2FsQm91bmRpbmdCb3goKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX2JvdW5k
czsgfQorICAgIHZpcnR1YWwgYm9vbCBpc0VtcHR5KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4g
bV9ib3VuZHMuaXNFbXB0eSgpOyB9CiAgICAgdmlydHVhbCB2b2lkIGdldEV4Y2x1ZGVkSW50ZXJ2
YWxzKGZsb2F0IGxvZ2ljYWxUb3AsIGZsb2F0IGxvZ2ljYWxIZWlnaHQsIFNlZ21lbnRMaXN0Jikg
Y29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGdldEluY2x1ZGVkSW50ZXJ2YWxzKGZs
b2F0IGxvZ2ljYWxUb3AsIGZsb2F0IGxvZ2ljYWxIZWlnaHQsIFNlZ21lbnRMaXN0JikgY29uc3Qg
T1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGZpcnN0SW5jbHVkZWRJbnRlcnZhbExvZ2ljYWxU
b3AoZmxvYXQgbWluTG9naWNhbEludGVydmFsVG9wLCBjb25zdCBGbG9hdFNpemUmIG1pbkxvZ2lj
YWxJbnRlcnZhbFNpemUsIGZsb2F0JikgY29uc3QgT1ZFUlJJREU7CiAKLXByaXZhdGU6Ci0gICAg
RmxvYXRQb2ludCBjb3JuZXJJbnRlcmNlcHRGb3JXaWR0aChmbG9hdCB3aWR0aCkgY29uc3Q7Cisg
ICAgRmxvYXRSb3VuZGVkUmVjdCBzaGFwZU1hcmdpbkJvdW5kcygpIGNvbnN0OworICAgIEZsb2F0
Um91bmRlZFJlY3Qgc2hhcGVQYWRkaW5nQm91bmRzKCkgY29uc3Q7CiAKLSAgICBmbG9hdCBtX3g7
Ci0gICAgZmxvYXQgbV95OwotICAgIGZsb2F0IG1fd2lkdGg7Ci0gICAgZmxvYXQgbV9oZWlnaHQ7
Ci0gICAgZmxvYXQgbV9yeDsgLy8gY29ybmVyIFggcmFkaXVzCi0gICAgZmxvYXQgbV9yeTsgLy8g
Y29ybmVyIFkgcmFkaXVzCitwcml2YXRlOgorICAgIEZsb2F0Um91bmRlZFJlY3QgbV9ib3VuZHM7
CisgICAgbXV0YWJsZSBGbG9hdFJvdW5kZWRSZWN0IG1fbWFyZ2luQm91bmRzOworICAgIG11dGFi
bGUgRmxvYXRSb3VuZGVkUmVjdCBtX3BhZGRpbmdCb3VuZHM7CisgICAgbXV0YWJsZSBib29sIG1f
aGF2ZUluaXRpYWxpemVkTWFyZ2luQm91bmRzIDogMTsKKyAgICBtdXRhYmxlIGJvb2wgbV9oYXZl
SW5pdGlhbGl6ZWRQYWRkaW5nQm91bmRzIDogMTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGUuY3BwCmluZGV4IDJi
MzE1ODEuLjI3MjM1YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNs
dXNpb25TaGFwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNo
YXBlLmNwcApAQCAtOTAsNyArOTAsNyBAQCBzdGF0aWMgaW5saW5lIEZsb2F0U2l6ZSBwaHlzaWNh
bFNpemVUb0xvZ2ljYWwoY29uc3QgRmxvYXRTaXplJiBzaXplLCBXcml0aW5nTW9kZQogICAgIHJl
dHVybiBzaXplLnRyYW5zcG9zZWRTaXplKCk7CiB9CiAKLVBhc3NPd25QdHI8RXhjbHVzaW9uU2hh
cGU+IEV4Y2x1c2lvblNoYXBlOjpjcmVhdGVFeGNsdXNpb25TaGFwZShjb25zdCBCYXNpY1NoYXBl
KiBiYXNpY1NoYXBlLCBmbG9hdCBsb2dpY2FsQm94V2lkdGgsIGZsb2F0IGxvZ2ljYWxCb3hIZWln
aHQsIFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlKQorUGFzc093blB0cjxFeGNsdXNpb25TaGFwZT4g
RXhjbHVzaW9uU2hhcGU6OmNyZWF0ZUV4Y2x1c2lvblNoYXBlKGNvbnN0IEJhc2ljU2hhcGUqIGJh
c2ljU2hhcGUsIGZsb2F0IGxvZ2ljYWxCb3hXaWR0aCwgZmxvYXQgbG9naWNhbEJveEhlaWdodCwg
V3JpdGluZ01vZGUgd3JpdGluZ01vZGUsIExlbmd0aCBtYXJnaW4sIExlbmd0aCBwYWRkaW5nKQog
ewogICAgIEFTU0VSVChiYXNpY1NoYXBlKTsKIApAQCAtMTc1LDYgKzE3NSw4IEBAIFBhc3NPd25Q
dHI8RXhjbHVzaW9uU2hhcGU+IEV4Y2x1c2lvblNoYXBlOjpjcmVhdGVFeGNsdXNpb25TaGFwZShj
b25zdCBCYXNpY1NoYXBlCiAgICAgZXhjbHVzaW9uU2hhcGUtPm1fbG9naWNhbEJveFdpZHRoID0g
bG9naWNhbEJveFdpZHRoOwogICAgIGV4Y2x1c2lvblNoYXBlLT5tX2xvZ2ljYWxCb3hIZWlnaHQg
PSBsb2dpY2FsQm94SGVpZ2h0OwogICAgIGV4Y2x1c2lvblNoYXBlLT5tX3dyaXRpbmdNb2RlID0g
d3JpdGluZ01vZGU7CisgICAgZXhjbHVzaW9uU2hhcGUtPm1fbWFyZ2luID0gZmxvYXRWYWx1ZUZv
ckxlbmd0aChtYXJnaW4sIDApOworICAgIGV4Y2x1c2lvblNoYXBlLT5tX3BhZGRpbmcgPSBmbG9h
dFZhbHVlRm9yTGVuZ3RoKHBhZGRpbmcsIDApOwogCiAgICAgcmV0dXJuIGV4Y2x1c2lvblNoYXBl
LnJlbGVhc2UoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNs
dXNpb25TaGFwZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlLmgK
aW5kZXggYjJkYTNjNi4uYzYxODE4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL0V4Y2x1c2lvblNoYXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1
c2lvblNoYXBlLmgKQEAgLTU5LDEwICs1OSwxMiBAQCB0eXBlZGVmIFZlY3RvcjxMaW5lU2VnbWVu
dD4gU2VnbWVudExpc3Q7CiAKIGNsYXNzIEV4Y2x1c2lvblNoYXBlIHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUGFzc093blB0cjxFeGNsdXNpb25TaGFwZT4gY3JlYXRlRXhjbHVzaW9uU2hhcGUoY29u
c3QgQmFzaWNTaGFwZSosIGZsb2F0IGxvZ2ljYWxCb3hXaWR0aCwgZmxvYXQgbG9naWNhbEJveEhl
aWdodCwgV3JpdGluZ01vZGUpOworICAgIHN0YXRpYyBQYXNzT3duUHRyPEV4Y2x1c2lvblNoYXBl
PiBjcmVhdGVFeGNsdXNpb25TaGFwZShjb25zdCBCYXNpY1NoYXBlKiwgZmxvYXQgbG9naWNhbEJv
eFdpZHRoLCBmbG9hdCBsb2dpY2FsQm94SGVpZ2h0LCBXcml0aW5nTW9kZSwgTGVuZ3RoIG1hcmdp
biwgTGVuZ3RoIHBhZGRpbmcpOwogCiAgICAgdmlydHVhbCB+RXhjbHVzaW9uU2hhcGUoKSB7IH0K
IAorICAgIGZsb2F0IHNoYXBlTWFyZ2luKCkgY29uc3QgeyByZXR1cm4gbV9tYXJnaW47IH0KKyAg
ICBmbG9hdCBzaGFwZVBhZGRpbmcoKSBjb25zdCB7IHJldHVybiBtX3BhZGRpbmc7IH0KICAgICB2
aXJ0dWFsIEZsb2F0UmVjdCBzaGFwZUxvZ2ljYWxCb3VuZGluZ0JveCgpIGNvbnN0ID0gMDsKICAg
ICB2aXJ0dWFsIGJvb2wgaXNFbXB0eSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0
SW5jbHVkZWRJbnRlcnZhbHMoZmxvYXQgbG9naWNhbFRvcCwgZmxvYXQgbG9naWNhbEhlaWdodCwg
U2VnbWVudExpc3QmKSBjb25zdCA9IDA7CkBAIC03NCw2ICs3Niw4IEBAIHByaXZhdGU6CiAgICAg
ZmxvYXQgbV9sb2dpY2FsQm94V2lkdGg7CiAgICAgZmxvYXQgbV9sb2dpY2FsQm94SGVpZ2h0Owog
ICAgIEZsb2F0UmVjdCBtX2JvdW5kaW5nQm94OworICAgIGZsb2F0IG1fbWFyZ2luOworICAgIGZs
b2F0IG1fcGFkZGluZzsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZUluZm8uY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5mby5jcHAKaW5kZXggZGI5MTQyMy4u
ZjZjYjA5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNo
YXBlSW5mby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBl
SW5mby5jcHAKQEAgLTUwLDcgKzUwLDcgQEAgY29uc3QgRXhjbHVzaW9uU2hhcGUqIEV4Y2x1c2lv
blNoYXBlSW5mbzxSZW5kZXJUeXBlLCBzaGFwZUdldHRlcj46OmNvbXB1dGVkU2hhcGUKIAogICAg
IEFTU0VSVChzaGFwZSk7CiAKLSAgICBtX3NoYXBlID0gRXhjbHVzaW9uU2hhcGU6OmNyZWF0ZUV4
Y2x1c2lvblNoYXBlKHNoYXBlLCBtX3NoYXBlTG9naWNhbFdpZHRoLCBtX3NoYXBlTG9naWNhbEhl
aWdodCwgbV9yZW5kZXJlci0+c3R5bGUoKS0+d3JpdGluZ01vZGUoKSk7CisgICAgbV9zaGFwZSA9
IEV4Y2x1c2lvblNoYXBlOjpjcmVhdGVFeGNsdXNpb25TaGFwZShzaGFwZSwgbV9zaGFwZUxvZ2lj
YWxXaWR0aCwgbV9zaGFwZUxvZ2ljYWxIZWlnaHQsIG1fcmVuZGVyZXItPnN0eWxlKCktPndyaXRp
bmdNb2RlKCksIG1fcmVuZGVyZXItPnN0eWxlKCktPnNoYXBlTWFyZ2luKCksIG1fcmVuZGVyZXIt
PnN0eWxlKCktPnNoYXBlUGFkZGluZygpKTsKICAgICBBU1NFUlQobV9zaGFwZSk7CiAgICAgcmV0
dXJuIG1fc2hhcGUuZ2V0KCk7CiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>