<?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>46116</bug_id>
          
          <creation_ts>2010-09-20 13:01:49 -0700</creation_ts>
          <short_desc>Implement block-flow-aware logical properties</short_desc>
          <delta_ts>2010-09-20 14:03:27 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dave Hyatt">hyatt</reporter>
          <assigned_to name="Dave Hyatt">hyatt</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>281765</commentid>
    <comment_count>0</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2010-09-20 13:01:49 -0700</bug_when>
    <thetext>We already have direction-aware properties like margin-start and margin-end.  This patch adds the -before/-after equivalents and updates everything to work with block-flow correctly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281782</commentid>
    <comment_count>1</comment_count>
      <attachid>68130</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2010-09-20 13:25:41 -0700</bug_when>
    <thetext>Created attachment 68130
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281797</commentid>
    <comment_count>2</comment_count>
      <attachid>68130</attachid>
    <who name="">mitz</who>
    <bug_when>2010-09-20 14:00:16 -0700</bug_when>
    <thetext>Comment on attachment 68130
Patch

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

&gt; WebCore/css/CSSProperty.cpp:67
&gt; +            }
&gt; +
&gt; +        }

Extra newline</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281800</commentid>
    <comment_count>3</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2010-09-20 14:03:27 -0700</bug_when>
    <thetext>Fixed in r67882.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68130</attachid>
            <date>2010-09-20 13:25:41 -0700</date>
            <delta_ts>2010-09-20 14:00:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>34502</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2Nzg3OSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjcgQEAKKzIwMTAtMDktMjAgIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NjExNiwgaW1wbGVtZW50IGJsb2Nr
LWZsb3ctYXdhcmUgbG9naWNhbCBwcm9wZXJ0aWVzLgorICAgICAgICAKKyAgICAgICAgVGhpcyBw
YXRjaCBhZGRzIGFsbCB0aGUgbG9naWNhbCBwcm9wZXJ0aWVzIGZyb20gdGhlIENTUzMgV3JpdGlu
ZyBNb2RlIGRyYWZ0IGZvciBtYXJnaW5zLCBwYWRkaW5nLCBib3JkZXIsCisgICAgICAgIHdpZHRo
IGFuZCBoZWlnaHQuCisKKyAgICAgICAgQWRkZWQgZmFzdC9jc3MvbG9naWNhbC1wcm9wZXJ0eS1y
ZXNvbHV0aW9uLmh0bWwKKworICAgICAgICAqIGNzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRp
b24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpn
ZXRQcm9wZXJ0eUNTU1ZhbHVlKToKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VWYWx1ZSk6CisgICAgICAgICogY3NzL0NTU1By
b3BlcnR5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnJlc29sdmVUb1BoeXNpY2FsUHJvcGVydHkp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHk6OnJlc29sdmVEaXJlY3Rpb25Bd2FyZVBy
b3BlcnR5KToKKyAgICAgICAgKiBjc3MvQ1NTUHJvcGVydHkuaDoKKyAgICAgICAgKiBjc3MvQ1NT
UHJvcGVydHlOYW1lcy5pbjoKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjphcHBseURlY2xhcmF0aW9ucyk6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KToKKwogMjAx
MC0wOS0yMCAgRGF2aWQgSHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgQmV0aCBEYWtpbi4KSW5kZXg6IFdlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNs
YXJhdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURl
Y2xhcmF0aW9uLmNwcAkocmV2aXNpb24gNjc4NjApCisrKyBXZWJDb3JlL2Nzcy9DU1NDb21wdXRl
ZFN0eWxlRGVjbGFyYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MzMsNyArNzMzLDcgQEAg
UGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NTQ29tcHV0ZWRTdHlsZURlYwogICAgIGlmICghc3R5bGUp
CiAgICAgICAgIHJldHVybiAwOwogCi0gICAgcHJvcGVydHlJRCA9IENTU1Byb3BlcnR5OjpyZXNv
bHZlRGlyZWN0aW9uQXdhcmVQcm9wZXJ0eShwcm9wZXJ0eUlELCBzdHlsZS0+ZGlyZWN0aW9uKCkp
OworICAgIHByb3BlcnR5SUQgPSBDU1NQcm9wZXJ0eTo6cmVzb2x2ZURpcmVjdGlvbkF3YXJlUHJv
cGVydHkocHJvcGVydHlJRCwgc3R5bGUtPmRpcmVjdGlvbigpLCBzdHlsZS0+YmxvY2tGbG93KCkp
OwogCiAgICAgc3dpdGNoIChzdGF0aWNfY2FzdDxDU1NQcm9wZXJ0eUlEPihwcm9wZXJ0eUlEKSkg
ewogICAgICAgICBjYXNlIENTU1Byb3BlcnR5SW52YWxpZDoKQEAgLTE1MDQsMTAgKzE1MDQsMjgg
QEAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NTQ29tcHV0ZWRTdHlsZURlYwogICAgICAgICBjYXNl
IENTU1Byb3BlcnR5V2Via2l0Qm9yZGVyU3RhcnRDb2xvcjoKICAgICAgICAgY2FzZSBDU1NQcm9w
ZXJ0eVdlYmtpdEJvcmRlclN0YXJ0U3R5bGU6CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJr
aXRCb3JkZXJTdGFydFdpZHRoOgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Qm9yZGVy
QWZ0ZXI6CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRCb3JkZXJBZnRlckNvbG9yOgor
ICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Qm9yZGVyQWZ0ZXJTdHlsZToKKyAgICAgICAg
Y2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEJvcmRlckFmdGVyV2lkdGg6CisgICAgICAgIGNhc2UgQ1NT
UHJvcGVydHlXZWJraXRCb3JkZXJCZWZvcmU6CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJr
aXRCb3JkZXJCZWZvcmVDb2xvcjoKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEJvcmRl
ckJlZm9yZVN0eWxlOgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Qm9yZGVyQmVmb3Jl
V2lkdGg6CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXJnaW5FbmQ6CiAgICAgICAg
IGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXJnaW5TdGFydDoKKyAgICAgICAgY2FzZSBDU1NQcm9w
ZXJ0eVdlYmtpdE1hcmdpbkFmdGVyOgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFy
Z2luQmVmb3JlOgogICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0UGFkZGluZ0VuZDoKICAg
ICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFBhZGRpbmdTdGFydDoKKyAgICAgICAgY2FzZSBD
U1NQcm9wZXJ0eVdlYmtpdFBhZGRpbmdBZnRlcjoKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdl
YmtpdFBhZGRpbmdCZWZvcmU6CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRMb2dpY2Fs
V2lkdGg6CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRMb2dpY2FsSGVpZ2h0OgorICAg
ICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWluTG9naWNhbFdpZHRoOgorICAgICAgICBjYXNl
IENTU1Byb3BlcnR5V2Via2l0TWluTG9naWNhbEhlaWdodDoKKyAgICAgICAgY2FzZSBDU1NQcm9w
ZXJ0eVdlYmtpdE1heExvZ2ljYWxXaWR0aDoKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtp
dE1heExvZ2ljYWxIZWlnaHQ6CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAg
ICAgICAgICAgIGJyZWFrOwogCkluZGV4OiBXZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAJKHJldmlzaW9uIDY3ODYwKQorKysg
V2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzc2LDYgKzc3Niw4
IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGIKICAgICBjYXNlIENT
U1Byb3BlcnR5Qm9yZGVyTGVmdFN0eWxlOgogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRCb3Jk
ZXJTdGFydFN0eWxlOgogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRCb3JkZXJFbmRTdHlsZToK
KyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Qm9yZGVyQmVmb3JlU3R5bGU6CisgICAgY2FzZSBD
U1NQcm9wZXJ0eVdlYmtpdEJvcmRlckFmdGVyU3R5bGU6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdl
YmtpdENvbHVtblJ1bGVTdHlsZToKICAgICAgICAgaWYgKGlkID49IENTU1ZhbHVlTm9uZSAmJiBp
ZCA8PSBDU1NWYWx1ZURvdWJsZSkKICAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsK
QEAgLTgyMiw2ICs4MjQsOCBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShpbnQgcHJvcElk
LCBiCiAgICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlckxlZnRDb2xvcjoKICAgICBjYXNlIENTU1By
b3BlcnR5V2Via2l0Qm9yZGVyU3RhcnRDb2xvcjoKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0
Qm9yZGVyRW5kQ29sb3I6CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEJvcmRlckJlZm9yZUNv
bG9yOgorICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRCb3JkZXJBZnRlckNvbG9yOgogICAgIGNh
c2UgQ1NTUHJvcGVydHlDb2xvcjogLy8gPGNvbG9yPiB8IGluaGVyaXQKICAgICBjYXNlIENTU1By
b3BlcnR5VGV4dExpbmVUaHJvdWdoQ29sb3I6IC8vIENTUzMgdGV4dCBkZWNvcmF0aW9uIGNvbG9y
cwogICAgIGNhc2UgQ1NTUHJvcGVydHlUZXh0VW5kZXJsaW5lQ29sb3I6CkBAIC05NzMsNiArOTc3
LDggQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoaW50IHByb3BJZCwgYgogICAgIGNhc2Ug
Q1NTUHJvcGVydHlCb3JkZXJMZWZ0V2lkdGg6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEJv
cmRlclN0YXJ0V2lkdGg6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEJvcmRlckVuZFdpZHRo
OgorICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRCb3JkZXJCZWZvcmVXaWR0aDoKKyAgICBjYXNl
IENTU1Byb3BlcnR5V2Via2l0Qm9yZGVyQWZ0ZXJXaWR0aDoKICAgICBjYXNlIENTU1Byb3BlcnR5
V2Via2l0Q29sdW1uUnVsZVdpZHRoOgogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVUaGluIHx8
IGlkID09IENTU1ZhbHVlTWVkaXVtIHx8IGlkID09IENTU1ZhbHVlVGhpY2spCiAgICAgICAgICAg
ICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CkBAIC0xMDA4LDExICsxMDE0LDE1IEBAIGJvb2wgQ1NT
UGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGIKICAgICBjYXNlIENTU1Byb3BlcnR5UGFk
ZGluZ0xlZnQ6ICAgICAgICAgLy8vLwogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRQYWRkaW5n
U3RhcnQ6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFBhZGRpbmdFbmQ6CisgICAgY2FzZSBD
U1NQcm9wZXJ0eVdlYmtpdFBhZGRpbmdCZWZvcmU6CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtp
dFBhZGRpbmdBZnRlcjoKICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSAoIWlkICYmIHZhbGlkVW5p
dCh2YWx1ZSwgRkxlbmd0aCB8IEZQZXJjZW50IHwgRk5vbk5lZywgbV9zdHJpY3QpKTsKICAgICAg
ICAgYnJlYWs7CiAKICAgICBjYXNlIENTU1Byb3BlcnR5TWF4SGVpZ2h0OiAgICAgICAgICAgLy8g
PGxlbmd0aD4gfCA8cGVyY2VudGFnZT4gfCBub25lIHwgaW5oZXJpdAogICAgIGNhc2UgQ1NTUHJv
cGVydHlNYXhXaWR0aDogICAgICAgICAgICAvLyA8bGVuZ3RoPiB8IDxwZXJjZW50YWdlPiB8IG5v
bmUgfCBpbmhlcml0CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1heExvZ2ljYWxXaWR0aDoK
KyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWF4TG9naWNhbEhlaWdodDoKICAgICAgICAgaWYg
KGlkID09IENTU1ZhbHVlTm9uZSB8fCBpZCA9PSBDU1NWYWx1ZUludHJpbnNpYyB8fCBpZCA9PSBD
U1NWYWx1ZU1pbkludHJpbnNpYykgewogICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVl
OwogICAgICAgICAgICAgYnJlYWs7CkBAIC0xMDIwLDYgKzEwMzAsOCBAQCBib29sIENTU1BhcnNl
cjo6cGFyc2VWYWx1ZShpbnQgcHJvcElkLCBiCiAgICAgICAgIC8qIG5vYnJlYWsgKi8KICAgICBj
YXNlIENTU1Byb3BlcnR5TWluSGVpZ2h0OiAgICAgICAgICAgLy8gPGxlbmd0aD4gfCA8cGVyY2Vu
dGFnZT4gfCBpbmhlcml0CiAgICAgY2FzZSBDU1NQcm9wZXJ0eU1pbldpZHRoOiAgICAgICAgICAg
IC8vIDxsZW5ndGg+IHwgPHBlcmNlbnRhZ2U+IHwgaW5oZXJpdAorICAgIGNhc2UgQ1NTUHJvcGVy
dHlXZWJraXRNaW5Mb2dpY2FsV2lkdGg6CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1pbkxv
Z2ljYWxIZWlnaHQ6CiAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZUludHJpbnNpYyB8fCBpZCA9
PSBDU1NWYWx1ZU1pbkludHJpbnNpYykKICAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1
ZTsKICAgICAgICAgZWxzZQpAQCAtMTA1Miw2ICsxMDY0LDggQEAgYm9vbCBDU1NQYXJzZXI6OnBh
cnNlVmFsdWUoaW50IHByb3BJZCwgYgogCiAgICAgY2FzZSBDU1NQcm9wZXJ0eUhlaWdodDogICAg
ICAgICAgICAgICAvLyA8bGVuZ3RoPiB8IDxwZXJjZW50YWdlPiB8IGF1dG8gfCBpbmhlcml0CiAg
ICAgY2FzZSBDU1NQcm9wZXJ0eVdpZHRoOiAgICAgICAgICAgICAgICAvLyA8bGVuZ3RoPiB8IDxw
ZXJjZW50YWdlPiB8IGF1dG8gfCBpbmhlcml0CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdExv
Z2ljYWxXaWR0aDogIAorICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRMb2dpY2FsSGVpZ2h0Ogog
ICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVBdXRvIHx8IGlkID09IENTU1ZhbHVlSW50cmluc2lj
IHx8IGlkID09IENTU1ZhbHVlTWluSW50cmluc2ljKQogICAgICAgICAgICAgdmFsaWRQcmltaXRp
dmUgPSB0cnVlOwogICAgICAgICBlbHNlCkBAIC0xMDY5LDYgKzEwODMsOCBAQCBib29sIENTU1Bh
cnNlcjo6cGFyc2VWYWx1ZShpbnQgcHJvcElkLCBiCiAgICAgY2FzZSBDU1NQcm9wZXJ0eU1hcmdp
bkxlZnQ6ICAgICAgICAgIC8vLy8KICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFyZ2luU3Rh
cnQ6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hcmdpbkVuZDoKKyAgICBjYXNlIENTU1By
b3BlcnR5V2Via2l0TWFyZ2luQmVmb3JlOgorICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXJn
aW5BZnRlcjoKICAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlQXV0bykKICAgICAgICAgICAgIHZh
bGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgZWxzZQpAQCAtMTYzOCwxOSArMTY1NCwyOSBA
QCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShpbnQgcHJvcElkLCBiCiAgICAgICAgIHJldHVy
biBwYXJzZVNob3J0aGFuZChwcm9wSWQsIHByb3BlcnRpZXMsIDMsIGltcG9ydGFudCk7CiAgICAg
fQogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRCb3JkZXJTdGFydDoKLSAgICAgICAgLy8gWyAn
LXdlYmtpdC1ib3JkZXItc3RhcnQtd2lkdGgnIHx8ICdib3JkZXItc3R5bGUnIHx8IDxjb2xvcj4g
XSB8IGluaGVyaXQKICAgICB7CiAgICAgICAgIGNvbnN0IGludCBwcm9wZXJ0aWVzWzNdID0geyBD
U1NQcm9wZXJ0eVdlYmtpdEJvcmRlclN0YXJ0V2lkdGgsIENTU1Byb3BlcnR5V2Via2l0Qm9yZGVy
U3RhcnRTdHlsZSwKICAgICAgICAgICAgIENTU1Byb3BlcnR5V2Via2l0Qm9yZGVyU3RhcnRDb2xv
ciB9OwogICAgICAgICByZXR1cm4gcGFyc2VTaG9ydGhhbmQocHJvcElkLCBwcm9wZXJ0aWVzLCAz
LCBpbXBvcnRhbnQpOwogICAgIH0KICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Qm9yZGVyRW5k
OgotICAgICAgICAvLyBbICctd2Via2l0LWJvcmRlci1lbmQtd2lkdGgnIHx8ICdib3JkZXItc3R5
bGUnIHx8IDxjb2xvcj4gXSB8IGluaGVyaXQKICAgICB7CiAgICAgICAgIGNvbnN0IGludCBwcm9w
ZXJ0aWVzWzNdID0geyBDU1NQcm9wZXJ0eVdlYmtpdEJvcmRlckVuZFdpZHRoLCBDU1NQcm9wZXJ0
eVdlYmtpdEJvcmRlckVuZFN0eWxlLAogICAgICAgICAgICAgQ1NTUHJvcGVydHlXZWJraXRCb3Jk
ZXJFbmRDb2xvciB9OwogICAgICAgICByZXR1cm4gcGFyc2VTaG9ydGhhbmQocHJvcElkLCBwcm9w
ZXJ0aWVzLCAzLCBpbXBvcnRhbnQpOwogICAgIH0KKyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0
Qm9yZGVyQmVmb3JlOgorICAgIHsKKyAgICAgICAgY29uc3QgaW50IHByb3BlcnRpZXNbM10gPSB7
IENTU1Byb3BlcnR5V2Via2l0Qm9yZGVyQmVmb3JlV2lkdGgsIENTU1Byb3BlcnR5V2Via2l0Qm9y
ZGVyQmVmb3JlU3R5bGUsCisgICAgICAgICAgICBDU1NQcm9wZXJ0eVdlYmtpdEJvcmRlckJlZm9y
ZUNvbG9yIH07CisgICAgICAgIHJldHVybiBwYXJzZVNob3J0aGFuZChwcm9wSWQsIHByb3BlcnRp
ZXMsIDMsIGltcG9ydGFudCk7CisgICAgfQorICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRCb3Jk
ZXJBZnRlcjoKKyAgICB7CisgICAgICAgIGNvbnN0IGludCBwcm9wZXJ0aWVzWzNdID0geyBDU1NQ
cm9wZXJ0eVdlYmtpdEJvcmRlckFmdGVyV2lkdGgsIENTU1Byb3BlcnR5V2Via2l0Qm9yZGVyQWZ0
ZXJTdHlsZSwKKyAgICAgICAgICAgIENTU1Byb3BlcnR5V2Via2l0Qm9yZGVyQWZ0ZXJDb2xvciB9
OworICAgICAgICByZXR1cm4gcGFyc2VTaG9ydGhhbmQocHJvcElkLCBwcm9wZXJ0aWVzLCAzLCBp
bXBvcnRhbnQpOworICAgIH0KICAgICBjYXNlIENTU1Byb3BlcnR5T3V0bGluZToKICAgICAgICAg
Ly8gWyAnb3V0bGluZS1jb2xvcicgfHwgJ291dGxpbmUtc3R5bGUnIHx8ICdvdXRsaW5lLXdpZHRo
JyBdIHwgaW5oZXJpdAogICAgIHsKSW5kZXg6IFdlYkNvcmUvY3NzL0NTU1Byb3BlcnR5LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eS5jcHAJKHJldmlzaW9uIDY3ODYw
KQorKysgV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw2
ICsyMyw3IEBACiAKICNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzLmgiCiAjaW5jbHVkZSAiUGxh
dGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlICJSZW5kZXJTdHlsZUNvbnN0YW50cy5oIgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKQEAgLTM4LDM3ICszOSwyNDcgQEAgYm9vbCBvcGVyYXRvcj09KGNv
bnN0IENTU1Byb3BlcnR5JiBhLCBjbwogICAgIHJldHVybiBhLm1faWQgPT0gYi5tX2lkICYmIGEu
bV9pbXBvcnRhbnQgPT0gYi5tX2ltcG9ydGFudCAmJiBhLm1fdmFsdWUgPT0gYi5tX3ZhbHVlOwog
fQogCi1pbnQgQ1NTUHJvcGVydHk6OnJlc29sdmVEaXJlY3Rpb25Bd2FyZVByb3BlcnR5KGludCBw
cm9wZXJ0eUlELCBUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbikKK2VudW0gTG9naWNhbEJveFNpZGUg
eyBCZWZvcmVTaWRlLCBFbmRTaWRlLCBBZnRlclNpZGUsIFN0YXJ0U2lkZSB9OworZW51bSBQaHlz
aWNhbEJveFNpZGUgeyBUb3BTaWRlLCBSaWdodFNpZGUsIEJvdHRvbVNpZGUsIExlZnRTaWRlIH07
CisKK3N0YXRpYyBpbnQgcmVzb2x2ZVRvUGh5c2ljYWxQcm9wZXJ0eShUZXh0RGlyZWN0aW9uIGRp
cmVjdGlvbiwgRUJsb2NrRmxvd0RpcmVjdGlvbiBibG9ja0RpcmVjdGlvbiwgTG9naWNhbEJveFNp
ZGUgbG9naWNhbFNpZGUsIGNvbnN0IGludCogcHJvcGVydGllcykKIHsKLSAgICBzd2l0Y2ggKHN0
YXRpY19jYXN0PENTU1Byb3BlcnR5SUQ+KHByb3BlcnR5SUQpKSB7Ci0gICAgY2FzZSBDU1NQcm9w
ZXJ0eVdlYmtpdE1hcmdpbkVuZDoKLSAgICAgICAgcmV0dXJuIGRpcmVjdGlvbiA9PSBMVFIgPyBD
U1NQcm9wZXJ0eU1hcmdpblJpZ2h0IDogQ1NTUHJvcGVydHlNYXJnaW5MZWZ0OwotICAgIGNhc2Ug
Q1NTUHJvcGVydHlXZWJraXRNYXJnaW5TdGFydDoKLSAgICAgICAgcmV0dXJuIGRpcmVjdGlvbiA9
PSBMVFIgPyBDU1NQcm9wZXJ0eU1hcmdpbkxlZnQgOiBDU1NQcm9wZXJ0eU1hcmdpblJpZ2h0Owot
Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFBhZGRpbmdFbmQ6Ci0gICAgICAgIHJldHVybiBk
aXJlY3Rpb24gPT0gTFRSID8gQ1NTUHJvcGVydHlQYWRkaW5nUmlnaHQgOiBDU1NQcm9wZXJ0eVBh
ZGRpbmdMZWZ0OwotICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRQYWRkaW5nU3RhcnQ6Ci0gICAg
ICAgIHJldHVybiBkaXJlY3Rpb24gPT0gTFRSID8gQ1NTUHJvcGVydHlQYWRkaW5nTGVmdCA6IENT
U1Byb3BlcnR5UGFkZGluZ1JpZ2h0OwotCi0gICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEJvcmRl
ckVuZDoKLSAgICAgICAgcmV0dXJuIGRpcmVjdGlvbiA9PSBMVFIgPyBDU1NQcm9wZXJ0eUJvcmRl
clJpZ2h0IDogQ1NTUHJvcGVydHlCb3JkZXJMZWZ0OwotICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJr
aXRCb3JkZXJFbmRDb2xvcjoKLSAgICAgICAgcmV0dXJuIGRpcmVjdGlvbiA9PSBMVFIgPyBDU1NQ
cm9wZXJ0eUJvcmRlclJpZ2h0Q29sb3IgOiBDU1NQcm9wZXJ0eUJvcmRlckxlZnRDb2xvcjsKLSAg
ICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Qm9yZGVyRW5kU3R5bGU6Ci0gICAgICAgIHJldHVybiBk
aXJlY3Rpb24gPT0gTFRSID8gQ1NTUHJvcGVydHlCb3JkZXJSaWdodFN0eWxlIDogQ1NTUHJvcGVy
dHlCb3JkZXJMZWZ0U3R5bGU7Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEJvcmRlckVuZFdp
ZHRoOgotICAgICAgICByZXR1cm4gZGlyZWN0aW9uID09IExUUiA/IENTU1Byb3BlcnR5Qm9yZGVy
UmlnaHRXaWR0aCA6IENTU1Byb3BlcnR5Qm9yZGVyTGVmdFdpZHRoOwotCi0gICAgY2FzZSBDU1NQ
cm9wZXJ0eVdlYmtpdEJvcmRlclN0YXJ0OgotICAgICAgICByZXR1cm4gZGlyZWN0aW9uID09IExU
UiA/IENTU1Byb3BlcnR5Qm9yZGVyTGVmdCA6IENTU1Byb3BlcnR5Qm9yZGVyUmlnaHQ7Ci0gICAg
Y2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEJvcmRlclN0YXJ0Q29sb3I6Ci0gICAgICAgIHJldHVybiBk
aXJlY3Rpb24gPT0gTFRSID8gQ1NTUHJvcGVydHlCb3JkZXJMZWZ0Q29sb3IgOiBDU1NQcm9wZXJ0
eUJvcmRlclJpZ2h0Q29sb3I7Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEJvcmRlclN0YXJ0
U3R5bGU6Ci0gICAgICAgIHJldHVybiBkaXJlY3Rpb24gPT0gTFRSID8gQ1NTUHJvcGVydHlCb3Jk
ZXJMZWZ0U3R5bGUgOiBDU1NQcm9wZXJ0eUJvcmRlclJpZ2h0U3R5bGU7Ci0gICAgY2FzZSBDU1NQ
cm9wZXJ0eVdlYmtpdEJvcmRlclN0YXJ0V2lkdGg6Ci0gICAgICAgIHJldHVybiBkaXJlY3Rpb24g
PT0gTFRSID8gQ1NTUHJvcGVydHlCb3JkZXJMZWZ0V2lkdGggOiBDU1NQcm9wZXJ0eUJvcmRlclJp
Z2h0V2lkdGg7CisgICAgaWYgKGRpcmVjdGlvbiA9PSBMVFIpIHsKKyAgICAgICAgaWYgKGJsb2Nr
RGlyZWN0aW9uID09IFRvcFRvQm90dG9tQmxvY2tGbG93KSB7CisgICAgICAgICAgICAvLyBUaGUg
Y29tbW9uIGNhc2UuIFRoZSBsb2dpY2FsIGFuZCBwaHlzaWNhbCBib3ggc2lkZXMgbWF0Y2guCisg
ICAgICAgICAgICAvLyBMZWZ0ID0gU3RhcnQsIFJpZ2h0ID0gRW5kLCBCZWZvcmUgPSBUb3AsIEFm
dGVyID0gQm90dG9tCisgICAgICAgICAgICByZXR1cm4gcHJvcGVydGllc1tsb2dpY2FsU2lkZV07
CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChibG9ja0RpcmVjdGlvbiA9PSBCb3R0
b21Ub1RvcEJsb2NrRmxvdykgeworICAgICAgICAgICAgLy8gU3RhcnQgPSBMZWZ0LCBFbmQgPSBS
aWdodCwgQmVmb3JlID0gQm90dG9tLCBBZnRlciA9IFRvcC4KKyAgICAgICAgICAgIHN3aXRjaCAo
bG9naWNhbFNpZGUpIHsKKyAgICAgICAgICAgIGNhc2UgU3RhcnRTaWRlOgorICAgICAgICAgICAg
ICAgIHJldHVybiBwcm9wZXJ0aWVzW0xlZnRTaWRlXTsKKyAgICAgICAgICAgIGNhc2UgRW5kU2lk
ZToKKyAgICAgICAgICAgICAgICByZXR1cm4gcHJvcGVydGllc1tSaWdodFNpZGVdOworICAgICAg
ICAgICAgY2FzZSBCZWZvcmVTaWRlOgorICAgICAgICAgICAgICAgIHJldHVybiBwcm9wZXJ0aWVz
W0JvdHRvbVNpZGVdOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICByZXR1
cm4gcHJvcGVydGllc1tUb3BTaWRlXTsKKyAgICAgICAgICAgIH0KKworICAgICAgICB9CisgICAg
ICAgIAorICAgICAgICBpZiAoYmxvY2tEaXJlY3Rpb24gPT0gTGVmdFRvUmlnaHRCbG9ja0Zsb3cp
IHsKKyAgICAgICAgICAgIC8vIFN0YXJ0ID0gVG9wLCBFbmQgPSBCb3R0b20sIEJlZm9yZSA9IExl
ZnQsIEFmdGVyID0gUmlnaHQuCisgICAgICAgICAgICBzd2l0Y2ggKGxvZ2ljYWxTaWRlKSB7Cisg
ICAgICAgICAgICBjYXNlIFN0YXJ0U2lkZToKKyAgICAgICAgICAgICAgICByZXR1cm4gcHJvcGVy
dGllc1tUb3BTaWRlXTsKKyAgICAgICAgICAgIGNhc2UgRW5kU2lkZToKKyAgICAgICAgICAgICAg
ICByZXR1cm4gcHJvcGVydGllc1tCb3R0b21TaWRlXTsKKyAgICAgICAgICAgIGNhc2UgQmVmb3Jl
U2lkZToKKyAgICAgICAgICAgICAgICByZXR1cm4gcHJvcGVydGllc1tMZWZ0U2lkZV07CisgICAg
ICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHJldHVybiBwcm9wZXJ0aWVzW1JpZ2h0
U2lkZV07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIFN0
YXJ0ID0gVG9wLCBFbmQgPSBCb3R0b20sIEJlZm9yZSA9IFJpZ2h0LCBBZnRlciA9IExlZnQKKyAg
ICAgICAgc3dpdGNoIChsb2dpY2FsU2lkZSkgeworICAgICAgICBjYXNlIFN0YXJ0U2lkZToKKyAg
ICAgICAgICAgIHJldHVybiBwcm9wZXJ0aWVzW1RvcFNpZGVdOworICAgICAgICBjYXNlIEVuZFNp
ZGU6CisgICAgICAgICAgICByZXR1cm4gcHJvcGVydGllc1tCb3R0b21TaWRlXTsKKyAgICAgICAg
Y2FzZSBCZWZvcmVTaWRlOgorICAgICAgICAgICAgcmV0dXJuIHByb3BlcnRpZXNbUmlnaHRTaWRl
XTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiBwcm9wZXJ0aWVzW0xlZnRT
aWRlXTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChibG9ja0RpcmVjdGlvbiA9PSBUb3BU
b0JvdHRvbUJsb2NrRmxvdykgeworICAgICAgICAvLyBTdGFydCA9IFJpZ2h0LCBFbmQgPSBMZWZ0
LCBCZWZvcmUgPSBUb3AsIEFmdGVyID0gQm90dG9tCisgICAgICAgIHN3aXRjaCAobG9naWNhbFNp
ZGUpIHsKKyAgICAgICAgY2FzZSBTdGFydFNpZGU6CisgICAgICAgICAgICByZXR1cm4gcHJvcGVy
dGllc1tSaWdodFNpZGVdOworICAgICAgICBjYXNlIEVuZFNpZGU6CisgICAgICAgICAgICByZXR1
cm4gcHJvcGVydGllc1tMZWZ0U2lkZV07CisgICAgICAgIGNhc2UgQmVmb3JlU2lkZToKKyAgICAg
ICAgICAgIHJldHVybiBwcm9wZXJ0aWVzW1RvcFNpZGVdOworICAgICAgICBkZWZhdWx0OgorICAg
ICAgICAgICAgcmV0dXJuIHByb3BlcnRpZXNbQm90dG9tU2lkZV07CisgICAgICAgIH0KKyAgICB9
CisgICAgCisgICAgaWYgKGJsb2NrRGlyZWN0aW9uID09IEJvdHRvbVRvVG9wQmxvY2tGbG93KSB7
CisgICAgICAgIC8vIFN0YXJ0ID0gUmlnaHQsIEVuZCA9IExlZnQsIEJlZm9yZSA9IEJvdHRvbSwg
QWZ0ZXIgPSBUb3AKKyAgICAgICAgc3dpdGNoIChsb2dpY2FsU2lkZSkgeworICAgICAgICBjYXNl
IFN0YXJ0U2lkZToKKyAgICAgICAgICAgIHJldHVybiBwcm9wZXJ0aWVzW1JpZ2h0U2lkZV07Cisg
ICAgICAgIGNhc2UgRW5kU2lkZToKKyAgICAgICAgICAgIHJldHVybiBwcm9wZXJ0aWVzW0xlZnRT
aWRlXTsKKyAgICAgICAgY2FzZSBCZWZvcmVTaWRlOgorICAgICAgICAgICAgcmV0dXJuIHByb3Bl
cnRpZXNbQm90dG9tU2lkZV07CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4g
cHJvcGVydGllc1tUb3BTaWRlXTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBpZiAoYmxv
Y2tEaXJlY3Rpb24gPT0gTGVmdFRvUmlnaHRCbG9ja0Zsb3cpIHsKKyAgICAgICAgLy8gU3RhcnQg
PSBCb3R0b20sIEVuZCA9IFRvcCwgQmVmb3JlID0gTGVmdCwgQWZ0ZXIgPSBSaWdodAorICAgICAg
ICBzd2l0Y2ggKGxvZ2ljYWxTaWRlKSB7CisgICAgICAgIGNhc2UgU3RhcnRTaWRlOgorICAgICAg
ICAgICAgcmV0dXJuIHByb3BlcnRpZXNbQm90dG9tU2lkZV07CisgICAgICAgIGNhc2UgRW5kU2lk
ZToKKyAgICAgICAgICAgIHJldHVybiBwcm9wZXJ0aWVzW1RvcFNpZGVdOworICAgICAgICBjYXNl
IEJlZm9yZVNpZGU6CisgICAgICAgICAgICByZXR1cm4gcHJvcGVydGllc1tMZWZ0U2lkZV07Cisg
ICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gcHJvcGVydGllc1tSaWdodFNpZGVd
OworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vIFN0YXJ0ID0gQm90dG9tLCBFbmQgPSBU
b3AsIEJlZm9yZSA9IFJpZ2h0LCBBZnRlciA9IExlZnQKKyAgICBzd2l0Y2ggKGxvZ2ljYWxTaWRl
KSB7CisgICAgY2FzZSBTdGFydFNpZGU6CisgICAgICAgIHJldHVybiBwcm9wZXJ0aWVzW0JvdHRv
bVNpZGVdOworICAgIGNhc2UgRW5kU2lkZToKKyAgICAgICAgcmV0dXJuIHByb3BlcnRpZXNbVG9w
U2lkZV07CisgICAgY2FzZSBCZWZvcmVTaWRlOgorICAgICAgICByZXR1cm4gcHJvcGVydGllc1tS
aWdodFNpZGVdOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBwcm9wZXJ0aWVzW0xlZnRT
aWRlXTsKKyAgICB9Cit9CisKK2VudW0gTG9naWNhbEV4dGVudCB7IExvZ2ljYWxXaWR0aCwgTG9n
aWNhbEhlaWdodCB9OwogCitzdGF0aWMgaW50IHJlc29sdmVUb1BoeXNpY2FsUHJvcGVydHkoRUJs
b2NrRmxvd0RpcmVjdGlvbiBibG9ja0RpcmVjdGlvbiwgTG9naWNhbEV4dGVudCBsb2dpY2FsU2lk
ZSwgY29uc3QgaW50KiBwcm9wZXJ0aWVzKQoreworICAgIGlmIChibG9ja0RpcmVjdGlvbiA9PSBU
b3BUb0JvdHRvbUJsb2NrRmxvdyB8fCBibG9ja0RpcmVjdGlvbiA9PSBCb3R0b21Ub1RvcEJsb2Nr
RmxvdykKKyAgICAgICAgcmV0dXJuIHByb3BlcnRpZXNbbG9naWNhbFNpZGVdOworICAgIHJldHVy
biBsb2dpY2FsU2lkZSA9PSBMb2dpY2FsV2lkdGggPyBwcm9wZXJ0aWVzWzFdIDogcHJvcGVydGll
c1swXTsKK30KKyAgICAgICAgCitpbnQgQ1NTUHJvcGVydHk6OnJlc29sdmVEaXJlY3Rpb25Bd2Fy
ZVByb3BlcnR5KGludCBwcm9wZXJ0eUlELCBUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbiwgRUJsb2Nr
Rmxvd0RpcmVjdGlvbiBibG9ja0RpcmVjdGlvbikKK3sKKyAgICBzd2l0Y2ggKHN0YXRpY19jYXN0
PENTU1Byb3BlcnR5SUQ+KHByb3BlcnR5SUQpKSB7CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtp
dE1hcmdpbkVuZDogeworICAgICAgICBjb25zdCBpbnQgcHJvcGVydGllc1s0XSA9IHsgQ1NTUHJv
cGVydHlNYXJnaW5Ub3AsIENTU1Byb3BlcnR5TWFyZ2luUmlnaHQsIENTU1Byb3BlcnR5TWFyZ2lu
Qm90dG9tLCBDU1NQcm9wZXJ0eU1hcmdpbkxlZnQgfTsKKyAgICAgICAgcmV0dXJuIHJlc29sdmVU
b1BoeXNpY2FsUHJvcGVydHkoZGlyZWN0aW9uLCBibG9ja0RpcmVjdGlvbiwgRW5kU2lkZSwgcHJv
cGVydGllcyk7CisgICAgfQorICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXJnaW5TdGFydDog
eworICAgICAgICBjb25zdCBpbnQgcHJvcGVydGllc1s0XSA9IHsgQ1NTUHJvcGVydHlNYXJnaW5U
b3AsIENTU1Byb3BlcnR5TWFyZ2luUmlnaHQsIENTU1Byb3BlcnR5TWFyZ2luQm90dG9tLCBDU1NQ
cm9wZXJ0eU1hcmdpbkxlZnQgfTsKKyAgICAgICAgcmV0dXJuIHJlc29sdmVUb1BoeXNpY2FsUHJv
cGVydHkoZGlyZWN0aW9uLCBibG9ja0RpcmVjdGlvbiwgU3RhcnRTaWRlLCBwcm9wZXJ0aWVzKTsK
KyAgICB9CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hcmdpbkJlZm9yZTogeworICAgICAg
ICBjb25zdCBpbnQgcHJvcGVydGllc1s0XSA9IHsgQ1NTUHJvcGVydHlNYXJnaW5Ub3AsIENTU1By
b3BlcnR5TWFyZ2luUmlnaHQsIENTU1Byb3BlcnR5TWFyZ2luQm90dG9tLCBDU1NQcm9wZXJ0eU1h
cmdpbkxlZnQgfTsKKyAgICAgICAgcmV0dXJuIHJlc29sdmVUb1BoeXNpY2FsUHJvcGVydHkoZGly
ZWN0aW9uLCBibG9ja0RpcmVjdGlvbiwgQmVmb3JlU2lkZSwgcHJvcGVydGllcyk7CisgICAgfQor
ICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXJnaW5BZnRlcjogeworICAgICAgICBjb25zdCBp
bnQgcHJvcGVydGllc1s0XSA9IHsgQ1NTUHJvcGVydHlNYXJnaW5Ub3AsIENTU1Byb3BlcnR5TWFy
Z2luUmlnaHQsIENTU1Byb3BlcnR5TWFyZ2luQm90dG9tLCBDU1NQcm9wZXJ0eU1hcmdpbkxlZnQg
fTsKKyAgICAgICAgcmV0dXJuIHJlc29sdmVUb1BoeXNpY2FsUHJvcGVydHkoZGlyZWN0aW9uLCBi
bG9ja0RpcmVjdGlvbiwgQWZ0ZXJTaWRlLCBwcm9wZXJ0aWVzKTsKKyAgICB9CisgICAgY2FzZSBD
U1NQcm9wZXJ0eVdlYmtpdFBhZGRpbmdFbmQ6IHsKKyAgICAgICAgY29uc3QgaW50IHByb3BlcnRp
ZXNbNF0gPSB7IENTU1Byb3BlcnR5UGFkZGluZ1RvcCwgQ1NTUHJvcGVydHlQYWRkaW5nUmlnaHQs
IENTU1Byb3BlcnR5UGFkZGluZ0JvdHRvbSwgQ1NTUHJvcGVydHlQYWRkaW5nTGVmdCB9OworICAg
ICAgICByZXR1cm4gcmVzb2x2ZVRvUGh5c2ljYWxQcm9wZXJ0eShkaXJlY3Rpb24sIGJsb2NrRGly
ZWN0aW9uLCBFbmRTaWRlLCBwcm9wZXJ0aWVzKTsKKyAgICB9CisgICAgY2FzZSBDU1NQcm9wZXJ0
eVdlYmtpdFBhZGRpbmdTdGFydDogeworICAgICAgICBjb25zdCBpbnQgcHJvcGVydGllc1s0XSA9
IHsgQ1NTUHJvcGVydHlQYWRkaW5nVG9wLCBDU1NQcm9wZXJ0eVBhZGRpbmdSaWdodCwgQ1NTUHJv
cGVydHlQYWRkaW5nQm90dG9tLCBDU1NQcm9wZXJ0eVBhZGRpbmdMZWZ0IH07CisgICAgICAgIHJl
dHVybiByZXNvbHZlVG9QaHlzaWNhbFByb3BlcnR5KGRpcmVjdGlvbiwgYmxvY2tEaXJlY3Rpb24s
IFN0YXJ0U2lkZSwgcHJvcGVydGllcyk7CisgICAgfQorICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJr
aXRQYWRkaW5nQmVmb3JlOiB7CisgICAgICAgIGNvbnN0IGludCBwcm9wZXJ0aWVzWzRdID0geyBD
U1NQcm9wZXJ0eVBhZGRpbmdUb3AsIENTU1Byb3BlcnR5UGFkZGluZ1JpZ2h0LCBDU1NQcm9wZXJ0
eVBhZGRpbmdCb3R0b20sIENTU1Byb3BlcnR5UGFkZGluZ0xlZnQgfTsKKyAgICAgICAgcmV0dXJu
IHJlc29sdmVUb1BoeXNpY2FsUHJvcGVydHkoZGlyZWN0aW9uLCBibG9ja0RpcmVjdGlvbiwgQmVm
b3JlU2lkZSwgcHJvcGVydGllcyk7CisgICAgfQorICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRQ
YWRkaW5nQWZ0ZXI6IHsKKyAgICAgICAgY29uc3QgaW50IHByb3BlcnRpZXNbNF0gPSB7IENTU1By
b3BlcnR5UGFkZGluZ1RvcCwgQ1NTUHJvcGVydHlQYWRkaW5nUmlnaHQsIENTU1Byb3BlcnR5UGFk
ZGluZ0JvdHRvbSwgQ1NTUHJvcGVydHlQYWRkaW5nTGVmdCB9OworICAgICAgICByZXR1cm4gcmVz
b2x2ZVRvUGh5c2ljYWxQcm9wZXJ0eShkaXJlY3Rpb24sIGJsb2NrRGlyZWN0aW9uLCBBZnRlclNp
ZGUsIHByb3BlcnRpZXMpOworICAgIH0KKyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Qm9yZGVy
RW5kOiB7CisgICAgICAgIGNvbnN0IGludCBwcm9wZXJ0aWVzWzRdID0geyBDU1NQcm9wZXJ0eUJv
cmRlclRvcCwgQ1NTUHJvcGVydHlCb3JkZXJSaWdodCwgQ1NTUHJvcGVydHlCb3JkZXJCb3R0b20s
IENTU1Byb3BlcnR5Qm9yZGVyTGVmdCB9OworICAgICAgICByZXR1cm4gcmVzb2x2ZVRvUGh5c2lj
YWxQcm9wZXJ0eShkaXJlY3Rpb24sIGJsb2NrRGlyZWN0aW9uLCBFbmRTaWRlLCBwcm9wZXJ0aWVz
KTsKKyAgICB9CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEJvcmRlclN0YXJ0OiB7CisgICAg
ICAgIGNvbnN0IGludCBwcm9wZXJ0aWVzWzRdID0geyBDU1NQcm9wZXJ0eUJvcmRlclRvcCwgQ1NT
UHJvcGVydHlCb3JkZXJSaWdodCwgQ1NTUHJvcGVydHlCb3JkZXJCb3R0b20sIENTU1Byb3BlcnR5
Qm9yZGVyTGVmdCB9OworICAgICAgICByZXR1cm4gcmVzb2x2ZVRvUGh5c2ljYWxQcm9wZXJ0eShk
aXJlY3Rpb24sIGJsb2NrRGlyZWN0aW9uLCBTdGFydFNpZGUsIHByb3BlcnRpZXMpOworICAgIH0K
KyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Qm9yZGVyQmVmb3JlOiB7CisgICAgICAgIGNvbnN0
IGludCBwcm9wZXJ0aWVzWzRdID0geyBDU1NQcm9wZXJ0eUJvcmRlclRvcCwgQ1NTUHJvcGVydHlC
b3JkZXJSaWdodCwgQ1NTUHJvcGVydHlCb3JkZXJCb3R0b20sIENTU1Byb3BlcnR5Qm9yZGVyTGVm
dCB9OworICAgICAgICByZXR1cm4gcmVzb2x2ZVRvUGh5c2ljYWxQcm9wZXJ0eShkaXJlY3Rpb24s
IGJsb2NrRGlyZWN0aW9uLCBCZWZvcmVTaWRlLCBwcm9wZXJ0aWVzKTsKKyAgICB9CisgICAgY2Fz
ZSBDU1NQcm9wZXJ0eVdlYmtpdEJvcmRlckFmdGVyOiB7CisgICAgICAgIGNvbnN0IGludCBwcm9w
ZXJ0aWVzWzRdID0geyBDU1NQcm9wZXJ0eUJvcmRlclRvcCwgQ1NTUHJvcGVydHlCb3JkZXJSaWdo
dCwgQ1NTUHJvcGVydHlCb3JkZXJCb3R0b20sIENTU1Byb3BlcnR5Qm9yZGVyTGVmdCB9OworICAg
ICAgICByZXR1cm4gcmVzb2x2ZVRvUGh5c2ljYWxQcm9wZXJ0eShkaXJlY3Rpb24sIGJsb2NrRGly
ZWN0aW9uLCBBZnRlclNpZGUsIHByb3BlcnRpZXMpOworICAgIH0KKyAgICBjYXNlIENTU1Byb3Bl
cnR5V2Via2l0Qm9yZGVyRW5kQ29sb3I6IHsKKyAgICAgICAgY29uc3QgaW50IHByb3BlcnRpZXNb
NF0gPSB7IENTU1Byb3BlcnR5Qm9yZGVyVG9wQ29sb3IsIENTU1Byb3BlcnR5Qm9yZGVyUmlnaHRD
b2xvciwgQ1NTUHJvcGVydHlCb3JkZXJCb3R0b21Db2xvciwgQ1NTUHJvcGVydHlCb3JkZXJMZWZ0
Q29sb3IgfTsKKyAgICAgICAgcmV0dXJuIHJlc29sdmVUb1BoeXNpY2FsUHJvcGVydHkoZGlyZWN0
aW9uLCBibG9ja0RpcmVjdGlvbiwgRW5kU2lkZSwgcHJvcGVydGllcyk7CisgICAgfQorICAgIGNh
c2UgQ1NTUHJvcGVydHlXZWJraXRCb3JkZXJTdGFydENvbG9yOiB7CisgICAgICAgIGNvbnN0IGlu
dCBwcm9wZXJ0aWVzWzRdID0geyBDU1NQcm9wZXJ0eUJvcmRlclRvcENvbG9yLCBDU1NQcm9wZXJ0
eUJvcmRlclJpZ2h0Q29sb3IsIENTU1Byb3BlcnR5Qm9yZGVyQm90dG9tQ29sb3IsIENTU1Byb3Bl
cnR5Qm9yZGVyTGVmdENvbG9yIH07CisgICAgICAgIHJldHVybiByZXNvbHZlVG9QaHlzaWNhbFBy
b3BlcnR5KGRpcmVjdGlvbiwgYmxvY2tEaXJlY3Rpb24sIFN0YXJ0U2lkZSwgcHJvcGVydGllcyk7
CisgICAgfQorICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRCb3JkZXJCZWZvcmVDb2xvcjogewor
ICAgICAgICBjb25zdCBpbnQgcHJvcGVydGllc1s0XSA9IHsgQ1NTUHJvcGVydHlCb3JkZXJUb3BD
b2xvciwgQ1NTUHJvcGVydHlCb3JkZXJSaWdodENvbG9yLCBDU1NQcm9wZXJ0eUJvcmRlckJvdHRv
bUNvbG9yLCBDU1NQcm9wZXJ0eUJvcmRlckxlZnRDb2xvciB9OworICAgICAgICByZXR1cm4gcmVz
b2x2ZVRvUGh5c2ljYWxQcm9wZXJ0eShkaXJlY3Rpb24sIGJsb2NrRGlyZWN0aW9uLCBCZWZvcmVT
aWRlLCBwcm9wZXJ0aWVzKTsKKyAgICB9CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEJvcmRl
ckFmdGVyQ29sb3I6IHsKKyAgICAgICAgY29uc3QgaW50IHByb3BlcnRpZXNbNF0gPSB7IENTU1By
b3BlcnR5Qm9yZGVyVG9wQ29sb3IsIENTU1Byb3BlcnR5Qm9yZGVyUmlnaHRDb2xvciwgQ1NTUHJv
cGVydHlCb3JkZXJCb3R0b21Db2xvciwgQ1NTUHJvcGVydHlCb3JkZXJMZWZ0Q29sb3IgfTsKKyAg
ICAgICAgcmV0dXJuIHJlc29sdmVUb1BoeXNpY2FsUHJvcGVydHkoZGlyZWN0aW9uLCBibG9ja0Rp
cmVjdGlvbiwgQWZ0ZXJTaWRlLCBwcm9wZXJ0aWVzKTsKKyAgICB9CisgICAgY2FzZSBDU1NQcm9w
ZXJ0eVdlYmtpdEJvcmRlckVuZFN0eWxlOiB7CisgICAgICAgIGNvbnN0IGludCBwcm9wZXJ0aWVz
WzRdID0geyBDU1NQcm9wZXJ0eUJvcmRlclRvcFN0eWxlLCBDU1NQcm9wZXJ0eUJvcmRlclJpZ2h0
U3R5bGUsIENTU1Byb3BlcnR5Qm9yZGVyQm90dG9tU3R5bGUsIENTU1Byb3BlcnR5Qm9yZGVyTGVm
dFN0eWxlIH07CisgICAgICAgIHJldHVybiByZXNvbHZlVG9QaHlzaWNhbFByb3BlcnR5KGRpcmVj
dGlvbiwgYmxvY2tEaXJlY3Rpb24sIEVuZFNpZGUsIHByb3BlcnRpZXMpOworICAgIH0KKyAgICBj
YXNlIENTU1Byb3BlcnR5V2Via2l0Qm9yZGVyU3RhcnRTdHlsZTogeworICAgICAgICBjb25zdCBp
bnQgcHJvcGVydGllc1s0XSA9IHsgQ1NTUHJvcGVydHlCb3JkZXJUb3BTdHlsZSwgQ1NTUHJvcGVy
dHlCb3JkZXJSaWdodFN0eWxlLCBDU1NQcm9wZXJ0eUJvcmRlckJvdHRvbVN0eWxlLCBDU1NQcm9w
ZXJ0eUJvcmRlckxlZnRTdHlsZSB9OworICAgICAgICByZXR1cm4gcmVzb2x2ZVRvUGh5c2ljYWxQ
cm9wZXJ0eShkaXJlY3Rpb24sIGJsb2NrRGlyZWN0aW9uLCBTdGFydFNpZGUsIHByb3BlcnRpZXMp
OworICAgIH0KKyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Qm9yZGVyQmVmb3JlU3R5bGU6IHsK
KyAgICAgICAgY29uc3QgaW50IHByb3BlcnRpZXNbNF0gPSB7IENTU1Byb3BlcnR5Qm9yZGVyVG9w
U3R5bGUsIENTU1Byb3BlcnR5Qm9yZGVyUmlnaHRTdHlsZSwgQ1NTUHJvcGVydHlCb3JkZXJCb3R0
b21TdHlsZSwgQ1NTUHJvcGVydHlCb3JkZXJMZWZ0U3R5bGUgfTsKKyAgICAgICAgcmV0dXJuIHJl
c29sdmVUb1BoeXNpY2FsUHJvcGVydHkoZGlyZWN0aW9uLCBibG9ja0RpcmVjdGlvbiwgQmVmb3Jl
U2lkZSwgcHJvcGVydGllcyk7CisgICAgfQorICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRCb3Jk
ZXJBZnRlclN0eWxlOiB7CisgICAgICAgIGNvbnN0IGludCBwcm9wZXJ0aWVzWzRdID0geyBDU1NQ
cm9wZXJ0eUJvcmRlclRvcFN0eWxlLCBDU1NQcm9wZXJ0eUJvcmRlclJpZ2h0U3R5bGUsIENTU1By
b3BlcnR5Qm9yZGVyQm90dG9tU3R5bGUsIENTU1Byb3BlcnR5Qm9yZGVyTGVmdFN0eWxlIH07Cisg
ICAgICAgIHJldHVybiByZXNvbHZlVG9QaHlzaWNhbFByb3BlcnR5KGRpcmVjdGlvbiwgYmxvY2tE
aXJlY3Rpb24sIEFmdGVyU2lkZSwgcHJvcGVydGllcyk7CisgICAgfQorICAgIGNhc2UgQ1NTUHJv
cGVydHlXZWJraXRCb3JkZXJFbmRXaWR0aDogeworICAgICAgICBjb25zdCBpbnQgcHJvcGVydGll
c1s0XSA9IHsgQ1NTUHJvcGVydHlCb3JkZXJUb3BXaWR0aCwgQ1NTUHJvcGVydHlCb3JkZXJSaWdo
dFdpZHRoLCBDU1NQcm9wZXJ0eUJvcmRlckJvdHRvbVdpZHRoLCBDU1NQcm9wZXJ0eUJvcmRlckxl
ZnRXaWR0aCB9OworICAgICAgICByZXR1cm4gcmVzb2x2ZVRvUGh5c2ljYWxQcm9wZXJ0eShkaXJl
Y3Rpb24sIGJsb2NrRGlyZWN0aW9uLCBFbmRTaWRlLCBwcm9wZXJ0aWVzKTsKKyAgICB9CisgICAg
Y2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEJvcmRlclN0YXJ0V2lkdGg6IHsKKyAgICAgICAgY29uc3Qg
aW50IHByb3BlcnRpZXNbNF0gPSB7IENTU1Byb3BlcnR5Qm9yZGVyVG9wV2lkdGgsIENTU1Byb3Bl
cnR5Qm9yZGVyUmlnaHRXaWR0aCwgQ1NTUHJvcGVydHlCb3JkZXJCb3R0b21XaWR0aCwgQ1NTUHJv
cGVydHlCb3JkZXJMZWZ0V2lkdGggfTsKKyAgICAgICAgcmV0dXJuIHJlc29sdmVUb1BoeXNpY2Fs
UHJvcGVydHkoZGlyZWN0aW9uLCBibG9ja0RpcmVjdGlvbiwgU3RhcnRTaWRlLCBwcm9wZXJ0aWVz
KTsKKyAgICB9CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEJvcmRlckJlZm9yZVdpZHRoOiB7
CisgICAgICAgIGNvbnN0IGludCBwcm9wZXJ0aWVzWzRdID0geyBDU1NQcm9wZXJ0eUJvcmRlclRv
cFdpZHRoLCBDU1NQcm9wZXJ0eUJvcmRlclJpZ2h0V2lkdGgsIENTU1Byb3BlcnR5Qm9yZGVyQm90
dG9tV2lkdGgsIENTU1Byb3BlcnR5Qm9yZGVyTGVmdFdpZHRoIH07CisgICAgICAgIHJldHVybiBy
ZXNvbHZlVG9QaHlzaWNhbFByb3BlcnR5KGRpcmVjdGlvbiwgYmxvY2tEaXJlY3Rpb24sIEJlZm9y
ZVNpZGUsIHByb3BlcnRpZXMpOworICAgIH0KKyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Qm9y
ZGVyQWZ0ZXJXaWR0aDogeworICAgICAgICBjb25zdCBpbnQgcHJvcGVydGllc1s0XSA9IHsgQ1NT
UHJvcGVydHlCb3JkZXJUb3BXaWR0aCwgQ1NTUHJvcGVydHlCb3JkZXJSaWdodFdpZHRoLCBDU1NQ
cm9wZXJ0eUJvcmRlckJvdHRvbVdpZHRoLCBDU1NQcm9wZXJ0eUJvcmRlckxlZnRXaWR0aCB9Owor
ICAgICAgICByZXR1cm4gcmVzb2x2ZVRvUGh5c2ljYWxQcm9wZXJ0eShkaXJlY3Rpb24sIGJsb2Nr
RGlyZWN0aW9uLCBBZnRlclNpZGUsIHByb3BlcnRpZXMpOworICAgIH0KKyAgICBjYXNlIENTU1By
b3BlcnR5V2Via2l0TG9naWNhbFdpZHRoOiB7CisgICAgICAgIGNvbnN0IGludCBwcm9wZXJ0aWVz
WzJdID0geyBDU1NQcm9wZXJ0eVdpZHRoLCBDU1NQcm9wZXJ0eUhlaWdodCB9OworICAgICAgICBy
ZXR1cm4gcmVzb2x2ZVRvUGh5c2ljYWxQcm9wZXJ0eShibG9ja0RpcmVjdGlvbiwgTG9naWNhbFdp
ZHRoLCBwcm9wZXJ0aWVzKTsKKyAgICB9CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdExvZ2lj
YWxIZWlnaHQ6IHsKKyAgICAgICAgY29uc3QgaW50IHByb3BlcnRpZXNbMl0gPSB7IENTU1Byb3Bl
cnR5V2lkdGgsIENTU1Byb3BlcnR5SGVpZ2h0IH07CisgICAgICAgIHJldHVybiByZXNvbHZlVG9Q
aHlzaWNhbFByb3BlcnR5KGJsb2NrRGlyZWN0aW9uLCBMb2dpY2FsSGVpZ2h0LCBwcm9wZXJ0aWVz
KTsKKyAgICB9CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1pbkxvZ2ljYWxXaWR0aDogewor
ICAgICAgICBjb25zdCBpbnQgcHJvcGVydGllc1syXSA9IHsgQ1NTUHJvcGVydHlNaW5XaWR0aCwg
Q1NTUHJvcGVydHlNaW5IZWlnaHQgfTsKKyAgICAgICAgcmV0dXJuIHJlc29sdmVUb1BoeXNpY2Fs
UHJvcGVydHkoYmxvY2tEaXJlY3Rpb24sIExvZ2ljYWxXaWR0aCwgcHJvcGVydGllcyk7CisgICAg
fQorICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNaW5Mb2dpY2FsSGVpZ2h0OiB7CisgICAgICAg
IGNvbnN0IGludCBwcm9wZXJ0aWVzWzJdID0geyBDU1NQcm9wZXJ0eU1pbldpZHRoLCBDU1NQcm9w
ZXJ0eU1pbkhlaWdodCB9OworICAgICAgICByZXR1cm4gcmVzb2x2ZVRvUGh5c2ljYWxQcm9wZXJ0
eShibG9ja0RpcmVjdGlvbiwgTG9naWNhbEhlaWdodCwgcHJvcGVydGllcyk7CisgICAgfQorICAg
IGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXhMb2dpY2FsV2lkdGg6IHsKKyAgICAgICAgY29uc3Qg
aW50IHByb3BlcnRpZXNbMl0gPSB7IENTU1Byb3BlcnR5TWF4V2lkdGgsIENTU1Byb3BlcnR5TWF4
SGVpZ2h0IH07CisgICAgICAgIHJldHVybiByZXNvbHZlVG9QaHlzaWNhbFByb3BlcnR5KGJsb2Nr
RGlyZWN0aW9uLCBMb2dpY2FsV2lkdGgsIHByb3BlcnRpZXMpOworICAgIH0KKyAgICBjYXNlIENT
U1Byb3BlcnR5V2Via2l0TWF4TG9naWNhbEhlaWdodDogeworICAgICAgICBjb25zdCBpbnQgcHJv
cGVydGllc1syXSA9IHsgQ1NTUHJvcGVydHlNYXhXaWR0aCwgQ1NTUHJvcGVydHlNYXhIZWlnaHQg
fTsKKyAgICAgICAgcmV0dXJuIHJlc29sdmVUb1BoeXNpY2FsUHJvcGVydHkoYmxvY2tEaXJlY3Rp
b24sIExvZ2ljYWxIZWlnaHQsIHByb3BlcnRpZXMpOworICAgIH0KICAgICBkZWZhdWx0OgogICAg
ICAgICByZXR1cm4gcHJvcGVydHlJRDsKICAgICB9CkluZGV4OiBXZWJDb3JlL2Nzcy9DU1NQcm9w
ZXJ0eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3NzL0NTU1Byb3BlcnR5LmgJKHJldmlzaW9u
IDY3ODYwKQorKysgV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHkuaAkod29ya2luZyBjb3B5KQpAQCAt
MjIsNiArMjIsNyBAQAogI2RlZmluZSBDU1NQcm9wZXJ0eV9oCiAKICNpbmNsdWRlICJDU1NWYWx1
ZS5oIgorI2luY2x1ZGUgIlJlbmRlclN0eWxlQ29uc3RhbnRzLmgiCiAjaW5jbHVkZSAiVGV4dERp
cmVjdGlvbi5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Jl
ZlB0ci5oPgpAQCAtNTksNyArNjAsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgU3RyaW5nIGNzc1Rl
eHQoKSBjb25zdDsKIAotICAgIHN0YXRpYyBpbnQgcmVzb2x2ZURpcmVjdGlvbkF3YXJlUHJvcGVy
dHkoaW50IHByb3BlcnR5SUQsIFRleHREaXJlY3Rpb24pOworICAgIHN0YXRpYyBpbnQgcmVzb2x2
ZURpcmVjdGlvbkF3YXJlUHJvcGVydHkoaW50IHByb3BlcnR5SUQsIFRleHREaXJlY3Rpb24sIEVC
bG9ja0Zsb3dEaXJlY3Rpb24pOwogCiAgICAgZnJpZW5kIGJvb2wgb3BlcmF0b3I9PShjb25zdCBD
U1NQcm9wZXJ0eSYsIGNvbnN0IENTU1Byb3BlcnR5Jik7CiAKSW5kZXg6IFdlYkNvcmUvY3NzL0NT
U1Byb3BlcnR5TmFtZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlO
YW1lcy5pbgkocmV2aXNpb24gNjc4NjApCisrKyBXZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVz
LmluCSh3b3JraW5nIGNvcHkpCkBAIC0yMCw4ICsyMCwxMCBAQCBmb250LXN0eWxlCiBmb250LXZh
cmlhbnQKIGZvbnQtd2VpZ2h0CiB0ZXh0LXJlbmRlcmluZworLXdlYmtpdC1ibG9jay1mbG93CiAt
d2Via2l0LWZvbnQtc21vb3RoaW5nCiAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3QKKy13ZWJraXQt
d3JpdGluZy1tb2RlCiB6b29tCiAKICMgbGluZSBoZWlnaHQgbmVlZHMgdG8gYmUgcmlnaHQgYWZ0
ZXIgdGhlIGFib3ZlIGhpZ2gtcHJpb3JpdHkgcHJvcGVydGllcwpAQCAtMTczLDggKzE3NSwxNCBA
QCB6LWluZGV4CiAjIGEgc2luZ2xlIHZhbHVlOiAtd2Via2l0LWJhY2tncm91bmQtc2l6ZTogbDsg
aXMgZXF1aXZhbGVudCB0byBiYWNrZ3JvdW5kLXNpemU6IGwgbDsKICMgd2hlcmVhcyBiYWNrZ3Jv
dW5kLXNpemU6IGw7IGlzIGVxdWl2YWxlbnQgdG8gYmFja2dyb3VuZC1zaXplOiBsIGF1dG87CiAt
d2Via2l0LWJhY2tncm91bmQtc2l6ZQotIyBDU1MgVGV4dCBMYXlvdXQgTW9kdWxlIExldmVsIDM6
IFZlcnRpY2FsIHdyaXRpbmcgc3VwcG9ydAotLXdlYmtpdC1ibG9jay1mbG93Cistd2Via2l0LWJv
cmRlci1hZnRlcgorLXdlYmtpdC1ib3JkZXItYWZ0ZXItY29sb3IKKy13ZWJraXQtYm9yZGVyLWFm
dGVyLXN0eWxlCistd2Via2l0LWJvcmRlci1hZnRlci13aWR0aAorLXdlYmtpdC1ib3JkZXItYmVm
b3JlCistd2Via2l0LWJvcmRlci1iZWZvcmUtY29sb3IKKy13ZWJraXQtYm9yZGVyLWJlZm9yZS1z
dHlsZQorLXdlYmtpdC1ib3JkZXItYmVmb3JlLXdpZHRoCiAtd2Via2l0LWJvcmRlci1lbmQKIC13
ZWJraXQtYm9yZGVyLWVuZC1jb2xvcgogLXdlYmtpdC1ib3JkZXItZW5kLXN0eWxlCkBAIC0yMjIs
OCArMjMwLDEyIEBAIHotaW5kZXgKIC13ZWJraXQtaHlwaGVucwogLXdlYmtpdC1saW5lLWJyZWFr
CiAtd2Via2l0LWxpbmUtY2xhbXAKKy13ZWJraXQtbG9naWNhbC13aWR0aAorLXdlYmtpdC1sb2dp
Y2FsLWhlaWdodAogLXdlYmtpdC1tYXJnaW4tYm90dG9tLWNvbGxhcHNlCiAtd2Via2l0LW1hcmdp
bi1jb2xsYXBzZQorLXdlYmtpdC1tYXJnaW4tYWZ0ZXIKKy13ZWJraXQtbWFyZ2luLWJlZm9yZQog
LXdlYmtpdC1tYXJnaW4tZW5kCiAtd2Via2l0LW1hcmdpbi1zdGFydAogLXdlYmtpdC1tYXJnaW4t
dG9wLWNvbGxhcHNlCkBAIC0yNDgsNyArMjYwLDEzIEBAIHotaW5kZXgKIC13ZWJraXQtbWFzay1y
ZXBlYXQteQogLXdlYmtpdC1tYXNrLXNpemUKIC13ZWJraXQtbWF0Y2gtbmVhcmVzdC1tYWlsLWJs
b2NrcXVvdGUtY29sb3IKKy13ZWJraXQtbWF4LWxvZ2ljYWwtd2lkdGgKKy13ZWJraXQtbWF4LWxv
Z2ljYWwtaGVpZ2h0Cistd2Via2l0LW1pbi1sb2dpY2FsLXdpZHRoCistd2Via2l0LW1pbi1sb2dp
Y2FsLWhlaWdodAogLXdlYmtpdC1uYnNwLW1vZGUKKy13ZWJraXQtcGFkZGluZy1hZnRlcgorLXdl
YmtpdC1wYWRkaW5nLWJlZm9yZQogLXdlYmtpdC1wYWRkaW5nLWVuZAogLXdlYmtpdC1wYWRkaW5n
LXN0YXJ0CiAtd2Via2l0LXBlcnNwZWN0aXZlCkBAIC0yNzcsNSArMjk1LDMgQEAgei1pbmRleAog
LXdlYmtpdC11c2VyLW1vZGlmeQogLXdlYmtpdC11c2VyLXNlbGVjdAogLXdlYmtpdC12YXJpYWJs
ZS1kZWNsYXJhdGlvbi1ibG9jawotIyBDU1MgVGV4dCBMYXlvdXQgTW9kdWxlIExldmVsIDM6IFZl
cnRpY2FsIHdyaXRpbmcgc3VwcG9ydAotLXdlYmtpdC13cml0aW5nLW1vZGUKSW5kZXg6IFdlYkNv
cmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3NzL0NT
U1N0eWxlU2VsZWN0b3IuY3BwCShyZXZpc2lvbiA2Nzg2MCkKKysrIFdlYkNvcmUvY3NzL0NTU1N0
eWxlU2VsZWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOTIzLDcgKzI5MjMsNyBAQCB2b2lk
IENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5RGVjbGFyYXRpb25zCiAKICAgICAgICAgICAgICAgICBp
ZiAoYXBwbHlGaXJzdCkgewogICAgICAgICAgICAgICAgICAgICBDT01QSUxFX0FTU0VSVChmaXJz
dENTU1Byb3BlcnR5ID09IENTU1Byb3BlcnR5Q29sb3IsIENTU19jb2xvcl9pc19maXJzdF9wcm9w
ZXJ0eSk7Ci0gICAgICAgICAgICAgICAgICAgIENPTVBJTEVfQVNTRVJUKENTU1Byb3BlcnR5Wm9v
bSA9PSBDU1NQcm9wZXJ0eUNvbG9yICsgMTIsIENTU196b29tX2lzX2VuZF9vZl9maXJzdF9wcm9w
X3JhbmdlKTsKKyAgICAgICAgICAgICAgICAgICAgQ09NUElMRV9BU1NFUlQoQ1NTUHJvcGVydHla
b29tID09IENTU1Byb3BlcnR5Q29sb3IgKyAxNCwgQ1NTX3pvb21faXNfZW5kX29mX2ZpcnN0X3By
b3BfcmFuZ2UpOwogICAgICAgICAgICAgICAgICAgICBDT01QSUxFX0FTU0VSVChDU1NQcm9wZXJ0
eUxpbmVIZWlnaHQgPT0gQ1NTUHJvcGVydHlab29tICsgMSwgQ1NTX2xpbmVfaGVpZ2h0X2lzX2Fm
dGVyX3pvb20pOwogCiAgICAgICAgICAgICAgICAgICAgIC8vIGdpdmUgc3BlY2lhbCBwcmlvcml0
eSB0byBmb250LXh4eCwgY29sb3IgcHJvcGVydGllcywgZXRjCkBAIC0zMTExLDcgKzMxMTEsNyBA
QCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkoaW50CiAgICAgYm9vbCBpc0lu
aGVyaXQgPSBtX3BhcmVudE5vZGUgJiYgdmFsdWVUeXBlID09IENTU1ZhbHVlOjpDU1NfSU5IRVJJ
VDsKICAgICBib29sIGlzSW5pdGlhbCA9IHZhbHVlVHlwZSA9PSBDU1NWYWx1ZTo6Q1NTX0lOSVRJ
QUwgfHwgKCFtX3BhcmVudE5vZGUgJiYgdmFsdWVUeXBlID09IENTU1ZhbHVlOjpDU1NfSU5IRVJJ
VCk7CiAgICAgCi0gICAgaWQgPSBDU1NQcm9wZXJ0eTo6cmVzb2x2ZURpcmVjdGlvbkF3YXJlUHJv
cGVydHkoaWQsIG1fc3R5bGUtPmRpcmVjdGlvbigpKTsKKyAgICBpZCA9IENTU1Byb3BlcnR5Ojpy
ZXNvbHZlRGlyZWN0aW9uQXdhcmVQcm9wZXJ0eShpZCwgbV9zdHlsZS0+ZGlyZWN0aW9uKCksIG1f
c3R5bGUtPmJsb2NrRmxvdygpKTsKIAogICAgIGlmIChtX2NoZWNrZXIubV9tYXRjaFZpc2l0ZWRQ
c2V1ZG9DbGFzcyAmJiAhaXNWYWxpZFZpc2l0ZWRMaW5rUHJvcGVydHkoaWQpKSB7CiAgICAgICAg
IC8vIExpbWl0IHRoZSBwcm9wZXJ0aWVzIHRoYXQgY2FuIGJlIGFwcGxpZWQgdG8gb25seSB0aGUg
b25lcyBob25vcmVkIGJ5IDp2aXNpdGVkLgpAQCAtNTQ3NCwxMCArNTQ3NCwyOCBAQCB2b2lkIENT
U1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkoaW50CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdl
YmtpdEJvcmRlclN0YXJ0Q29sb3I6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEJvcmRlclN0
YXJ0U3R5bGU6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEJvcmRlclN0YXJ0V2lkdGg6Cisg
ICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEJvcmRlckJlZm9yZToKKyAgICBjYXNlIENTU1Byb3Bl
cnR5V2Via2l0Qm9yZGVyQmVmb3JlQ29sb3I6CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEJv
cmRlckJlZm9yZVN0eWxlOgorICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRCb3JkZXJCZWZvcmVX
aWR0aDoKKyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Qm9yZGVyQWZ0ZXI6CisgICAgY2FzZSBD
U1NQcm9wZXJ0eVdlYmtpdEJvcmRlckFmdGVyQ29sb3I6CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdl
YmtpdEJvcmRlckFmdGVyU3R5bGU6CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEJvcmRlckFm
dGVyV2lkdGg6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hcmdpbkVuZDoKICAgICBjYXNl
IENTU1Byb3BlcnR5V2Via2l0TWFyZ2luU3RhcnQ6CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtp
dE1hcmdpbkJlZm9yZToKKyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFyZ2luQWZ0ZXI6CiAg
ICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFBhZGRpbmdFbmQ6CiAgICAgY2FzZSBDU1NQcm9wZXJ0
eVdlYmtpdFBhZGRpbmdTdGFydDoKKyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0UGFkZGluZ0Jl
Zm9yZToKKyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0UGFkZGluZ0FmdGVyOgorICAgIGNhc2Ug
Q1NTUHJvcGVydHlXZWJraXRMb2dpY2FsV2lkdGg6CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtp
dExvZ2ljYWxIZWlnaHQ6CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1pbkxvZ2ljYWxXaWR0
aDoKKyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWluTG9naWNhbEhlaWdodDoKKyAgICBjYXNl
IENTU1Byb3BlcnR5V2Via2l0TWF4TG9naWNhbFdpZHRoOgorICAgIGNhc2UgQ1NTUHJvcGVydHlX
ZWJraXRNYXhMb2dpY2FsSGVpZ2h0OgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAg
ICAgICAgYnJlYWs7CiAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDY3ODc5KQorKysgTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDktMjAgIERh
dmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00NjExNiwgaW1wbGVtZW50IGJsb2NrLWZsb3ctYXdhcmUgbG9naWNhbCBwcm9wZXJ0aWVz
LgorICAgICAgICAKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIGFsbCB0aGUgbG9naWNhbCBwcm9w
ZXJ0aWVzIGZyb20gdGhlIENTUzMgV3JpdGluZyBNb2RlIGRyYWZ0IGZvciBtYXJnaW5zLCBwYWRk
aW5nLCBib3JkZXIsCisgICAgICAgIHdpZHRoIGFuZCBoZWlnaHQuCisKKyAgICAgICAgQWRkZWQg
ZmFzdC9jc3MvbG9naWNhbC1wcm9wZXJ0eS1yZXNvbHV0aW9uLmh0bWwKKworICAgICAgICAqIGZh
c3QvY3NzL2xvZ2ljYWwtcHJvcGVydHktcmVzb2x1dGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvY3NzL2xvZ2ljYWwtcHJvcGVydHktcmVzb2x1dGlvbi5odG1sOiBBZGRl
ZC4KKwogMjAxMC0wOS0yMCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4K
IAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIFJvYmVuLgpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9jc3MvbG9naWNhbC1wcm9wZXJ0eS1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9sb2dpY2FsLXByb3BlcnR5LXJlc29sdXRpb24tZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MvbG9naWNhbC1w
cm9wZXJ0eS1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0
OSBAQAorQmxvY2sgIzE6CitNYXJnaW5zOiAxcHggMnB4IDNweCA0cHgKK1BhZGRpbmc6IDRweCAz
cHggMnB4IDFweAorQm9yZGVyczogMXB4IHNvbGlkIHJnYigwLCAwLCAwKSwgMnB4IGRvdHRlZCBy
Z2IoMCwgMTI4LCAwKSwgM3B4IGRhc2hlZCByZ2IoMjU1LCAyNTUsIDApLCA0cHggZG91YmxlIHJn
YigxMjgsIDAsIDEyOCkKK1dpZHRoOiAxMDBweAorSGVpZ2h0OiA1MHB4CitCbG9jayAjMjoKK01h
cmdpbnM6IDNweCAycHggMXB4IDRweAorUGFkZGluZzogMnB4IDNweCA0cHggMXB4CitCb3JkZXJz
OiAzcHggZGFzaGVkIHJnYigyNTUsIDI1NSwgMCksIDJweCBkb3R0ZWQgcmdiKDAsIDEyOCwgMCks
IDFweCBzb2xpZCByZ2IoMCwgMCwgMCksIDRweCBkb3VibGUgcmdiKDEyOCwgMCwgMTI4KQorV2lk
dGg6IDEwMHB4CitIZWlnaHQ6IDUwcHgKK0Jsb2NrICMzOgorTWFyZ2luczogNHB4IDNweCAycHgg
MXB4CitQYWRkaW5nOiAxcHggMnB4IDNweCA0cHgKK0JvcmRlcnM6IDRweCBkb3VibGUgcmdiKDEy
OCwgMCwgMTI4KSwgM3B4IGRhc2hlZCByZ2IoMjU1LCAyNTUsIDApLCAycHggZG90dGVkIHJnYigw
LCAxMjgsIDApLCAxcHggc29saWQgcmdiKDAsIDAsIDApCitXaWR0aDogNTBweAorSGVpZ2h0OiAx
MDBweAorQmxvY2sgIzQ6CitNYXJnaW5zOiA0cHggMXB4IDJweCAzcHgKK1BhZGRpbmc6IDFweCA0
cHggM3B4IDJweAorQm9yZGVyczogNHB4IGRvdWJsZSByZ2IoMTI4LCAwLCAxMjgpLCAxcHggc29s
aWQgcmdiKDAsIDAsIDApLCAycHggZG90dGVkIHJnYigwLCAxMjgsIDApLCAzcHggZGFzaGVkIHJn
YigyNTUsIDI1NSwgMCkKK1dpZHRoOiA1MHB4CitIZWlnaHQ6IDEwMHB4CitCbG9jayAjNToKK01h
cmdpbnM6IDFweCA0cHggM3B4IDJweAorUGFkZGluZzogNHB4IDFweCAycHggM3B4CitCb3JkZXJz
OiAxcHggc29saWQgcmdiKDAsIDAsIDApLCA0cHggZG91YmxlIHJnYigxMjgsIDAsIDEyOCksIDNw
eCBkYXNoZWQgcmdiKDI1NSwgMjU1LCAwKSwgMnB4IGRvdHRlZCByZ2IoMCwgMTI4LCAwKQorV2lk
dGg6IDEwMHB4CitIZWlnaHQ6IDUwcHgKK0Jsb2NrICM2OgorTWFyZ2luczogM3B4IDRweCAxcHgg
MnB4CitQYWRkaW5nOiAycHggMXB4IDRweCAzcHgKK0JvcmRlcnM6IDNweCBkYXNoZWQgcmdiKDI1
NSwgMjU1LCAwKSwgNHB4IGRvdWJsZSByZ2IoMTI4LCAwLCAxMjgpLCAxcHggc29saWQgcmdiKDAs
IDAsIDApLCAycHggZG90dGVkIHJnYigwLCAxMjgsIDApCitXaWR0aDogMTAwcHgKK0hlaWdodDog
NTBweAorQmxvY2sgIzc6CitNYXJnaW5zOiAycHggM3B4IDRweCAxcHgKK1BhZGRpbmc6IDNweCAy
cHggMXB4IDRweAorQm9yZGVyczogMnB4IGRvdHRlZCByZ2IoMCwgMTI4LCAwKSwgM3B4IGRhc2hl
ZCByZ2IoMjU1LCAyNTUsIDApLCA0cHggZG91YmxlIHJnYigxMjgsIDAsIDEyOCksIDFweCBzb2xp
ZCByZ2IoMCwgMCwgMCkKK1dpZHRoOiA1MHB4CitIZWlnaHQ6IDEwMHB4CitCbG9jayAjODoKK01h
cmdpbnM6IDJweCAxcHggNHB4IDNweAorUGFkZGluZzogM3B4IDRweCAxcHggMnB4CitCb3JkZXJz
OiAycHggZG90dGVkIHJnYigwLCAxMjgsIDApLCAxcHggc29saWQgcmdiKDAsIDAsIDApLCA0cHgg
ZG91YmxlIHJnYigxMjgsIDAsIDEyOCksIDNweCBkYXNoZWQgcmdiKDI1NSwgMjU1LCAwKQorV2lk
dGg6IDUwcHgKK0hlaWdodDogMTAwcHgKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3MvbG9n
aWNhbC1wcm9wZXJ0eS1yZXNvbHV0aW9uLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9jc3MvbG9naWNhbC1wcm9wZXJ0eS1yZXNvbHV0aW9uLmh0bWwJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9sb2dpY2FsLXByb3BlcnR5LXJlc29sdXRpb24uaHRtbAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSw5OSBAQAorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKy5s
dHItdGV4dCB7CisgIGRpcmVjdGlvbjogbHRyCit9CisKKy5ydGwtdGV4dCB7CisgIGRpcmVjdGlv
bjogcnRsCit9CisKKy50Yi1ibG9jayB7CisgIC13ZWJraXQtYmxvY2stZmxvdzogdGIKK30KKwor
LmJ0LWJsb2NrIHsKKyAgLXdlYmtpdC1ibG9jay1mbG93OiBidAorfQorCisubHItYmxvY2sgewor
ICAtd2Via2l0LWJsb2NrLWZsb3c6IGxyCit9CisKKy5ybC1ibG9jayB7CisgIC13ZWJraXQtYmxv
Y2stZmxvdzogcmwKK30KKworLnRlc3QgeworICAtd2Via2l0LW1hcmdpbi1iZWZvcmU6IDFweDsK
KyAgLXdlYmtpdC1tYXJnaW4tZW5kOiAycHg7CisgIC13ZWJraXQtbWFyZ2luLWFmdGVyOiAzcHg7
CisgIC13ZWJraXQtbWFyZ2luLXN0YXJ0OiA0cHg7CisgIC13ZWJraXQtcGFkZGluZy1iZWZvcmU6
NHB4OworICAtd2Via2l0LXBhZGRpbmctZW5kOjNweDsKKyAgLXdlYmtpdC1wYWRkaW5nLWFmdGVy
OjJweDsKKyAgLXdlYmtpdC1wYWRkaW5nLXN0YXJ0OjFweDsKKyAgLXdlYmtpdC1sb2dpY2FsLXdp
ZHRoOjEwMHB4OworICAtd2Via2l0LWxvZ2ljYWwtaGVpZ2h0OjUwcHg7CisgIC13ZWJraXQtYm9y
ZGVyLWJlZm9yZTogMXB4IHNvbGlkIGJsYWNrOworICAtd2Via2l0LWJvcmRlci1lbmQ6IDJweCBk
b3R0ZWQgZ3JlZW47CisgIC13ZWJraXQtYm9yZGVyLWFmdGVyOiAzcHggZGFzaGVkIHllbGxvdzsK
KyAgLXdlYmtpdC1ib3JkZXItc3RhcnQ6IDRweCBkb3VibGUgcHVycGxlOworICBmbG9hdDpsZWZ0
OworfQorPC9zdHlsZT4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQorICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpCisgIAorZnVuY3Rp
b24gZHVtcEJsb2NrUHJvcGVydGllcygpCit7CisgICByZXN1bHQgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgncmVzdWx0Jyk7CisgICBibG9ja3MgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFn
TmFtZSgnZGl2Jyk7CisgICByZXN1bHRTdHIgPSAiIjsKKyAgIGZvciAoaSA9IDA7IGkgPCBibG9j
a3MubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgcmVzdWx0U3RyICs9ICI8Yj5CbG9jayAjIiArIChp
KzEpICsgIjo8L2I+PGJyPiI7CisgICAgICAgIHJlc3VsdFN0ciArPSAiTWFyZ2luczogIjsKKyAg
ICAgICAgYyA9IGdldENvbXB1dGVkU3R5bGUoYmxvY2tzW2ldLCBudWxsKTsKKyAgICAgICAgcmVz
dWx0U3RyICs9IGMuZ2V0UHJvcGVydHlWYWx1ZSgibWFyZ2luLXRvcCIpICsgIiAiCisgICAgICAg
ICAgICAgICAgICAgICArIGMuZ2V0UHJvcGVydHlWYWx1ZSgibWFyZ2luLXJpZ2h0IikgKyAiICIK
KyAgICAgICAgICAgICAgICAgICAgICsgYy5nZXRQcm9wZXJ0eVZhbHVlKCJtYXJnaW4tYm90dG9t
IikgKyAiICIKKyAgICAgICAgICAgICAgICAgICAgICsgYy5nZXRQcm9wZXJ0eVZhbHVlKCJtYXJn
aW4tbGVmdCIpICsgIjxicj4iOworICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIHJlc3Vs
dFN0ciArPSAiUGFkZGluZzogIjsKKyAgICAgICAgYyA9IGdldENvbXB1dGVkU3R5bGUoYmxvY2tz
W2ldLCBudWxsKTsKKyAgICAgICAgcmVzdWx0U3RyICs9IGMuZ2V0UHJvcGVydHlWYWx1ZSgicGFk
ZGluZy10b3AiKSArICIgIgorICAgICAgICAgICAgICAgICAgICAgKyBjLmdldFByb3BlcnR5VmFs
dWUoInBhZGRpbmctcmlnaHQiKSArICIgIgorICAgICAgICAgICAgICAgICAgICAgKyBjLmdldFBy
b3BlcnR5VmFsdWUoInBhZGRpbmctYm90dG9tIikgKyAiICIKKyAgICAgICAgICAgICAgICAgICAg
ICsgYy5nZXRQcm9wZXJ0eVZhbHVlKCJwYWRkaW5nLWxlZnQiKSArICI8YnI+IjsKKyAgICAgICAg
CisgICAgICAgIHJlc3VsdFN0ciArPSAiQm9yZGVyczogIgorICAgICAgICByZXN1bHRTdHIgKz0g
Yy5nZXRQcm9wZXJ0eVZhbHVlKCJib3JkZXItdG9wLXdpZHRoIikgKyAiICIgKyBjLmdldFByb3Bl
cnR5VmFsdWUoImJvcmRlci10b3Atc3R5bGUiKSArICIgIiArIGMuZ2V0UHJvcGVydHlWYWx1ZSgi
Ym9yZGVyLXRvcC1jb2xvciIpICsgIiwgIgorICAgICAgICAgICAgICAgICAgICAgKyBjLmdldFBy
b3BlcnR5VmFsdWUoImJvcmRlci1yaWdodC13aWR0aCIpICsgIiAiICsgYy5nZXRQcm9wZXJ0eVZh
bHVlKCJib3JkZXItcmlnaHQtc3R5bGUiKSArICIgIiArIGMuZ2V0UHJvcGVydHlWYWx1ZSgiYm9y
ZGVyLXJpZ2h0LWNvbG9yIikgKyAiLCAiCisgICAgICAgICAgICAgICAgICAgICArIGMuZ2V0UHJv
cGVydHlWYWx1ZSgiYm9yZGVyLWJvdHRvbS13aWR0aCIpICsgIiAiICsgYy5nZXRQcm9wZXJ0eVZh
bHVlKCJib3JkZXItYm90dG9tLXN0eWxlIikgKyAiICIgKyBjLmdldFByb3BlcnR5VmFsdWUoImJv
cmRlci1ib3R0b20tY29sb3IiKSArICIsICIKKyAgICAgICAgICAgICAgICAgICAgICsgYy5nZXRQ
cm9wZXJ0eVZhbHVlKCJib3JkZXItbGVmdC13aWR0aCIpICsgIiAiICsgYy5nZXRQcm9wZXJ0eVZh
bHVlKCJib3JkZXItbGVmdC1zdHlsZSIpICsgIiAiICsgYy5nZXRQcm9wZXJ0eVZhbHVlKCJib3Jk
ZXItbGVmdC1jb2xvciIpICsgIjxicj4iCisgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAg
cmVzdWx0U3RyICs9ICJXaWR0aDogIgorICAgICAgICByZXN1bHRTdHIgKz0gYy5nZXRQcm9wZXJ0
eVZhbHVlKCJ3aWR0aCIpICsgIjxicj4iOworICAgICAgICAKKyAgICAgICAgcmVzdWx0U3RyICs9
ICJIZWlnaHQ6ICIKKyAgICAgICAgcmVzdWx0U3RyICs9IGMuZ2V0UHJvcGVydHlWYWx1ZSgiaGVp
Z2h0IikgKyAiPGJyPiI7CisgICB9CisgICByZXN1bHQuaW5uZXJIVE1MID0gcmVzdWx0U3RyOwor
fQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9ImR1bXBCbG9ja1Byb3BlcnRpZXMo
KSI+Cis8ZGl2IGNsYXNzPSJsdHItdGV4dCB0Yi1ibG9jayB0ZXN0Ij48L2Rpdj4KKzxkaXYgY2xh
c3M9Imx0ci10ZXh0IGJ0LWJsb2NrIHRlc3QiPjwvZGl2PgorPGRpdiBjbGFzcz0ibHRyLXRleHQg
bHItYmxvY2sgdGVzdCI+PC9kaXY+Cis8ZGl2IGNsYXNzPSJsdHItdGV4dCBybC1ibG9jayB0ZXN0
Ij48L2Rpdj4KKzxkaXYgY2xhc3M9InJ0bC10ZXh0IHRiLWJsb2NrIHRlc3QiPjwvZGl2PgorPGRp
diBjbGFzcz0icnRsLXRleHQgYnQtYmxvY2sgdGVzdCI+PC9kaXY+Cis8ZGl2IGNsYXNzPSJydGwt
dGV4dCBsci1ibG9jayB0ZXN0Ij48L2Rpdj4KKzxkaXYgY2xhc3M9InJ0bC10ZXh0IHJsLWJsb2Nr
IHRlc3QiPjwvZGl2PgorPHAgc3R5bGU9ImNsZWFyOmJvdGgiIGlkPSJyZXN1bHQiPjwvcD4KKzwv
Ym9keT4KKzwvaHRtbD4KKwo=
</data>
<flag name="review"
          id="57592"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
      

    </bug>

</bugzilla>