<?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>26687</bug_id>
          
          <creation_ts>2009-06-24 11:36:59 -0700</creation_ts>
          <short_desc>Add columns back-end support to datagrid</short_desc>
          <delta_ts>2009-06-24 12:22:34 -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>Forms</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</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>
          
          <blocked>26545</blocked>
          <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>127949</commentid>
    <comment_count>0</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2009-06-24 11:36:59 -0700</bug_when>
    <thetext>Adding columns support... just the back end though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>127950</commentid>
    <comment_count>1</comment_count>
      <attachid>31796</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2009-06-24 11:37:38 -0700</bug_when>
    <thetext>Created attachment 31796
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>127971</commentid>
    <comment_count>2</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2009-06-24 12:22:34 -0700</bug_when>
    <thetext>Landed in r45093.
</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>31796</attachid>
            <date>2009-06-24 11:37:38 -0700</date>
            <delta_ts>2009-06-24 11:55:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>48184</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NTA4NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNjkgQEAKKzIwMDktMDYtMjQgIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBi
YXNpYyBiYWNrLWVuZCBjb2x1bW4gc3VwcG9ydCB0byBkYXRhZ3JpZC4KKworICAgICAgICBBZGRl
ZCBmYXN0L2RvbS9IVE1MRGF0YUdyaWRFbGVtZW50LyBjb2x1bW4gdGVzdHMuCisKKyAgICAgICAg
KiBEZXJpdmVkU291cmNlcy5jcHA6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAg
ICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogV2ViQ29yZVNvdXJjZXMuYmtsOgorICAgICAgICAqIGh0bWwvRGF0YUdyaWRDb2x1bW4u
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGFHcmlkQ29sdW1uOjpzZXRQcmltYXJ5
KToKKyAgICAgICAgKiBodG1sL0RhdGFHcmlkQ29sdW1uLmg6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6RGF0YUdyaWRDb2x1bW46OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhR3Jp
ZENvbHVtbjo6aWQpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YUdyaWRDb2x1bW46OnNldElkKToK
KyAgICAgICAgKFdlYkNvcmU6OkRhdGFHcmlkQ29sdW1uOjpsYWJlbCk6CisgICAgICAgIChXZWJD
b3JlOjpEYXRhR3JpZENvbHVtbjo6c2V0TGFiZWwpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YUdy
aWRDb2x1bW46OnR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YUdyaWRDb2x1bW46OnNldFR5
cGUpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YUdyaWRDb2x1bW46OnNvcnRhYmxlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRhdGFHcmlkQ29sdW1uOjpzZXRTb3J0YWJsZSk6CisgICAgICAgIChXZWJD
b3JlOjpEYXRhR3JpZENvbHVtbjo6c29ydERpcmVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpE
YXRhR3JpZENvbHVtbjo6c2V0U29ydERpcmVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpEYXRh
R3JpZENvbHVtbjo6cHJpbWFyeSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhR3JpZENvbHVtbjo6
ZGV0YWNoRnJvbUNvbHVtbkxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YUdyaWRDb2x1bW46
OkRhdGFHcmlkQ29sdW1uKToKKyAgICAgICAgKiBodG1sL0RhdGFHcmlkQ29sdW1uLmlkbDogQWRk
ZWQuCisgICAgICAgICogaHRtbC9EYXRhR3JpZENvbHVtbkxpc3QuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkRhdGFHcmlkQ29sdW1uTGlzdDo6fkRhdGFHcmlkQ29sdW1uTGlzdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpEYXRhR3JpZENvbHVtbkxpc3Q6Oml0ZW1XaXRoTmFtZSk6CisgICAg
ICAgIChXZWJDb3JlOjpEYXRhR3JpZENvbHVtbkxpc3Q6OmFkZCk6CisgICAgICAgIChXZWJDb3Jl
OjpEYXRhR3JpZENvbHVtbkxpc3Q6OnJlbW92ZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhR3Jp
ZENvbHVtbkxpc3Q6Om1vdmUpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YUdyaWRDb2x1bW5MaXN0
OjpjbGVhcik6CisgICAgICAgIChXZWJDb3JlOjpEYXRhR3JpZENvbHVtbkxpc3Q6OnByaW1hcnlD
b2x1bW5DaGFuZ2VkKToKKyAgICAgICAgKiBodG1sL0RhdGFHcmlkQ29sdW1uTGlzdC5oOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGFHcmlkQ29sdW1uTGlzdDo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRhdGFHcmlkQ29sdW1uTGlzdDo6bGVuZ3RoKToKKyAgICAgICAgKFdlYkNv
cmU6OkRhdGFHcmlkQ29sdW1uTGlzdDo6aXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhR3Jp
ZENvbHVtbkxpc3Q6OnByaW1hcnlDb2x1bW4pOgorICAgICAgICAoV2ViQ29yZTo6RGF0YUdyaWRD
b2x1bW5MaXN0Ojpzb3J0Q29sdW1uKToKKyAgICAgICAgKiBodG1sL0RhdGFHcmlkQ29sdW1uTGlz
dC5pZGw6IEFkZGVkLgorICAgICAgICAqIGh0bWwvSFRNTERhdGFHcmlkQ29sRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MRGF0YUdyaWRDb2xFbGVtZW50Ojpzb3J0YWJsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MRGF0YUdyaWRDb2xFbGVtZW50OjpzZXRTb3J0YWJsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MRGF0YUdyaWRDb2xFbGVtZW50Ojpzb3J0RGlyZWN0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxEYXRhR3JpZENvbEVsZW1lbnQ6OnNldFNvcnREaXJlY3Rp
b24pOgorICAgICAgICAqIGh0bWwvSFRNTERhdGFHcmlkQ29sRWxlbWVudC5oOgorICAgICAgICAq
IGh0bWwvSFRNTERhdGFHcmlkQ29sRWxlbWVudC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MRGF0
YUdyaWRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEYXRhR3JpZEVsZW1lbnQ6
OkhUTUxEYXRhR3JpZEVsZW1lbnQpOgorICAgICAgICAqIGh0bWwvSFRNTERhdGFHcmlkRWxlbWVu
dC5oOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERhdGFHcmlkRWxlbWVudDo6Y29sdW1ucyk6Cisg
ICAgICAgICogaHRtbC9IVE1MRGF0YUdyaWRFbGVtZW50LmlkbDoKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyRGF0YUdyaWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRGF0YUdyaWQ6
OnBhaW50T2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckRhdGFHcmlkOjpwYWludENv
bHVtbkhlYWRlcnMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRGF0YUdyaWQ6OnJlYnVpbGRD
b2x1bW5zKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRGF0YUdyaWQuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckRhdGFHcmlkOjpncmlkRWxlbWVudCk6CisKIDIwMDktMDYtMjQgIEpl
c3NpZSBCZXJsaW4gIDxqYmVybGluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBB
ZGFtIFJvYmVuLgpJbmRleDogV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAJKHJldmlzaW9uIDQ1MDg1KQorKysgV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU0LDYgKzU0LDggQEAKICNp
bmNsdWRlICJKU0NTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uLmNwcCIKICNpbmNsdWRlICJKU0NTU1Zh
cmlhYmxlc1J1bGUuY3BwIgogI2luY2x1ZGUgIkpTRGF0YWJhc2UuY3BwIgorI2luY2x1ZGUgIkpT
RGF0YUdyaWRDb2x1bW4uY3BwIgorI2luY2x1ZGUgIkpTRGF0YUdyaWRDb2x1bW5MaXN0LmNwcCIK
ICNpbmNsdWRlICJKU0RvY3VtZW50LmNwcCIKICNpbmNsdWRlICJKU0RvY3VtZW50RnJhZ21lbnQu
Y3BwIgogI2luY2x1ZGUgIkpTRG9jdW1lbnRUeXBlLmNwcCIKSW5kZXg6IFdlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMubWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJ
KHJldmlzaW9uIDQ1MDg1KQorKysgV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCSh3b3JraW5n
IGNvcHkpCkBAIC03NSw2ICs3NSw4IEBAIERPTV9DTEFTU0VTID0gXAogICAgIENvbnNvbGUgXAog
ICAgIENvb3JkaW5hdGVzIFwKICAgICBDb3VudGVyIFwKKyAgICBEYXRhR3JpZENvbHVtbiBcCisg
ICAgRGF0YUdyaWRDb2x1bW5MaXN0IFwKICAgICBET01BcHBsaWNhdGlvbkNhY2hlIFwKICAgICBE
T01Db3JlRXhjZXB0aW9uIFwKICAgICBET01JbXBsZW1lbnRhdGlvbiBcCkluZGV4OiBXZWJDb3Jl
L1dlYkNvcmUucHJvCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5wcm8JKHJldmlzaW9u
IDQ1MDg1KQorKysgV2ViQ29yZS9XZWJDb3JlLnBybwkod29ya2luZyBjb3B5KQpAQCAtNDU5LDYg
KzQ1OSw5IEBAIFNPVVJDRVMgKz0gXAogICAgIGJpbmRpbmdzL2pzL0pTQ3VzdG9tUG9zaXRpb25F
cnJvckNhbGxiYWNrLmNwcCBcCiAgICAgYmluZGluZ3MvanMvSlNDdXN0b21Wb2lkQ2FsbGJhY2su
Y3BwIFwKICAgICBiaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAgXAorICAg
IGJpbmRpbmdzL2pzL0pTRGF0YUdyaWRDb2x1bW4uY3BwIFwKKyAgICBiaW5kaW5ncy9qcy9KU0Rh
dGFHcmlkQ29sdW1uTGlzdC5jcHAgXAorICAgIGJpbmRpbmdzL2pzL0pTRGF0YUdyaWRDb2x1bW5M
aXN0Q3VzdG9tLmNwcCBcCiAgICAgYmluZGluZ3MvanMvSlNEYXRhR3JpZERhdGFTb3VyY2UuY3Bw
IFwKICAgICBiaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9tLmNwcCBcCiAgICAgYmluZGluZ3Mv
anMvSlNEb2N1bWVudEZyYWdtZW50Q3VzdG9tLmNwcCBcCkBAIC03NDIsNiArNzQ1LDggQEAgU09V
UkNFUyArPSBcCiAgICAgaHRtbC9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwIFwKICAgICBo
dG1sL0NhbnZhc1N0eWxlLmNwcCBcCiAgICAgaHRtbC9Db2xsZWN0aW9uQ2FjaGUuY3BwIFwKKyAg
ICBodG1sL0RhdGFHcmlkQ29sdW1uLmNwcCBcCisgICAgaHRtbC9EYXRhR3JpZENvbHVtbkxpc3Qu
Y3BwIFwKICAgICBodG1sL0ZpbGUuY3BwIFwKICAgICBodG1sL0ZpbGVMaXN0LmNwcCBcCiAgICAg
aHRtbC9Gb3JtRGF0YUxpc3QuY3BwIFwKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZVNvdXJjZXMuYmts
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZVNvdXJjZXMuYmtsCShyZXZpc2lvbiA0NTA4
NSkKKysrIFdlYkNvcmUvV2ViQ29yZVNvdXJjZXMuYmtsCSh3b3JraW5nIGNvcHkpCkBAIC03MSw2
ICs3MSw5IEBAIFRoaXMgZmlsZSBjb250YWlucyB0aGUgbGlzdCBvZiBmaWxlcyBuZWUKICAgICAg
ICAgYmluZGluZ3MvanMvSlNDdXN0b21Wb2lkQ2FsbGJhY2suY3BwCiAgICAgICAgIGJpbmRpbmdz
L2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcAogICAgICAgICBiaW5kaW5ncy9qcy9KU0Rh
dGFiYXNlQ3VzdG9tLmNwcAorICAgICAgICBiaW5kaW5ncy9qcy9KU0RhdGFHcmlkQ29sdW1uLmNw
cAorICAgICAgICBiaW5kaW5ncy9qcy9KU0RhdGFHcmlkQ29sdW1uTGlzdC5jcHAKKyAgICAgICAg
YmluZGluZ3MvanMvSlNEYXRhR3JpZENvbHVtbkxpc3RDdXN0b20uY3BwCiAgICAgICAgIGJpbmRp
bmdzL2pzL0pTRGF0YUdyaWREYXRhU291cmNlLmNwcAogICAgICAgICBiaW5kaW5ncy9qcy9KU0RP
TUFwcGxpY2F0aW9uQ2FjaGVDdXN0b20uY3BwCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTRE9NR2xv
YmFsT2JqZWN0LmNwcApJbmRleDogV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
ago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCShy
ZXZpc2lvbiA0NTA4NSkKKysrIFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJ
KHdvcmtpbmcgY29weSkKQEAgLTE4NTcsNiArMTg1NywxMDIgQEAKIAkJCQlSZWxhdGl2ZVBhdGg9
IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNE
YXRhYmFzZS5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KKyAgICAgICAgICAgICAgICAgICAgICAg
IDxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2pl
Y3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0RhdGFHcmlkQ29sdW1uLmNwcCINCisJCQkJPg0KKwkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KKwkJCQkJRXhj
bHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0K
KwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiDQorCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWdfSW50ZXJuYWx8
V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxU
b29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVi
dWdfQ2Fpcm98V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4N
CisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQor
CQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJ
TmFtZT0iUmVsZWFzZV9DYWlyb3xXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVl
Ig0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0K
KwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQk8L0ZpbGU+DQorCQkJPEZp
bGUNCisJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5h
bWUpXERlcml2ZWRTb3VyY2VzXEpTRGF0YUdyaWRDb2x1bW4uaCINCisJCQkJPg0KKwkJCTwvRmls
ZT4NCisgICAgICAgICAgICAgICAgICAgICAgICA8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9IiQo
V2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNEYXRh
R3JpZENvbHVtbkxpc3QuY3BwIg0KKwkJCQk+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJ
CQkJTmFtZT0iRGVidWd8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJ
CQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJ
CS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0K
KwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVl
Ig0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0K
KwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0
aW9uDQorCQkJCQlOYW1lPSJEZWJ1Z19JbnRlcm5hbHxXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJv
bUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29t
cGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZp
bGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb3xXaW4zMiINCisJCQkJCUV4
Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1l
PSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4N
CisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvfFdpbjMy
Ig0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0K
KwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9IiQo
V2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNEYXRh
R3JpZENvbHVtbkxpc3QuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KIAkJCQlS
ZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZl
ZFNvdXJjZXNcSlNEb2N1bWVudC5jcHAiDQogCQkJCT4NCkBAIC0yNDE3OCw2ICsyNDI3NCwyMiBA
QAogCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxDYW52YXNTdHlsZS5oIg0KIAkJCQk+DQogCQkJ
PC9GaWxlPg0KKyAgICAgICAgICAgICAgICAgICAgICAgIDxGaWxlDQorCQkJCVJlbGF0aXZlUGF0
aD0iLi5caHRtbFxEYXRhR3JpZENvbHVtbi5jcHAiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorICAg
ICAgICAgICAgICAgICAgICAgICAgPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXERh
dGFHcmlkQ29sdW1uLmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorICAgICAgICAgICAgICAgICAg
ICAgICAgPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXERhdGFHcmlkQ29sdW1uTGlz
dC5jcHAiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorICAgICAgICAgICAgICAgICAgICAgICAgPEZp
bGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXERhdGFHcmlkQ29sdW1uTGlzdC5oIg0KKwkJ
CQk+DQorCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxE
YXRhR3JpZERhdGFTb3VyY2UuaCINCiAJCQkJPg0KQEAgLTI3OTQ5LDYgKzI4MDYxLDEwIEBACiAJ
CQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNEb2N1bWVudEN1c3RvbS5jcHAiDQog
CQkJCQk+DQogCQkJCTwvRmlsZT4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxG
aWxlDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTRGF0YUdyaWRDb2x1bW5M
aXN0Q3VzdG9tLmNwcCINCisJCQkJCT4NCisJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0KIAkJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU0RhdGFHcmlkRGF0YVNvdXJjZS5jcHAiDQog
CQkJCQk+DQpJbmRleDogV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJ
KHJldmlzaW9uIDQ1MDg1KQorKysgV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTQwNTMsNiArNDA1MywxNyBAQAogCQlCQzc3Q0RDRjBG
RUZGMzNCMDA3MDg4N0IgLyogSlNIVE1MRGF0YUdyaWRDZWxsRWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM3N0NEQ0QwRkVGRjMzQjAwNzA4
ODdCIC8qIEpTSFRNTERhdGFHcmlkQ2VsbEVsZW1lbnQuaCAqLzsgfTsKIAkJQkM3N0NFQjMwRkYw
MTdGMjAwNzA4ODdCIC8qIFJlbmRlckRhdGFHcmlkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzc3Q0VCMjBGRjAxN0YyMDA3MDg4N0IgLyogUmVuZGVy
RGF0YUdyaWQuaCAqLzsgfTsKIAkJQkM3N0NFQzgwRkYwMUNCRTAwNzA4ODdCIC8qIFJlbmRlckRh
dGFHcmlkLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEJDNzdDRUM3MEZGMDFDQkUwMDcwODg3QiAvKiBSZW5kZXJEYXRhR3JpZC5jcHAgKi87IH07CisJ
CUJDNzdDRjk5MEZGMTcyNDIwMDcwODg3QiAvKiBEYXRhR3JpZENvbHVtbkxpc3QuaWRsIGluIFJl
c291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzc3Q0Y5ODBGRjE3
MjQyMDA3MDg4N0IgLyogRGF0YUdyaWRDb2x1bW5MaXN0LmlkbCAqLzsgfTsKKwkJQkM3N0NGOUYw
RkYxNzJCMzAwNzA4ODdCIC8qIERhdGFHcmlkQ29sdW1uLmlkbCBpbiBSZXNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM3N0NGOUUwRkYxNzJCMzAwNzA4ODdCIC8q
IERhdGFHcmlkQ29sdW1uLmlkbCAqLzsgfTsKKwkJQkM3N0NGQUMwRkYxNzNEMzAwNzA4ODdCIC8q
IERhdGFHcmlkQ29sdW1uTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkM3N0NGQUIwRkYxNzNEMzAwNzA4ODdCIC8qIERhdGFHcmlkQ29sdW1uTGlz
dC5oICovOyB9OworCQlCQzc3Q0ZDMjBGRjE3NTU1MDA3MDg4N0IgLyogRGF0YUdyaWRDb2x1bW4u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNzdDRkMx
MEZGMTc1NTUwMDcwODg3QiAvKiBEYXRhR3JpZENvbHVtbi5oICovOyB9OworCQlCQzc3RDE1MjBG
RjE5QzczMDA3MDg4N0IgLyogSlNEYXRhR3JpZENvbHVtbkxpc3RDdXN0b20uY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM3N0QxNTEwRkYxOUM3MzAw
NzA4ODdCIC8qIEpTRGF0YUdyaWRDb2x1bW5MaXN0Q3VzdG9tLmNwcCAqLzsgfTsKKwkJQkM3N0Qx
NjkwRkYxOUY1NjAwNzA4ODdCIC8qIEpTRGF0YUdyaWRDb2x1bW4uY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM3N0QxNjUwRkYxOUY1NTAwNzA4ODdC
IC8qIEpTRGF0YUdyaWRDb2x1bW4uY3BwICovOyB9OworCQlCQzc3RDE2QTBGRjE5RjU2MDA3MDg4
N0IgLyogSlNEYXRhR3JpZENvbHVtbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkM3N0QxNjYwRkYxOUY1NTAwNzA4ODdCIC8qIEpTRGF0YUdyaWRDb2x1
bW4uaCAqLzsgfTsKKwkJQkM3N0QxNkIwRkYxOUY1NjAwNzA4ODdCIC8qIEpTRGF0YUdyaWRDb2x1
bW5MaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEJDNzdEMTY3MEZGMTlGNTUwMDcwODg3QiAvKiBKU0RhdGFHcmlkQ29sdW1uTGlzdC5jcHAgKi87
IH07CisJCUJDNzdEMTZDMEZGMTlGNTYwMDcwODg3QiAvKiBKU0RhdGFHcmlkQ29sdW1uTGlzdC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM3N0QxNjgw
RkYxOUY1NTAwNzA4ODdCIC8qIEpTRGF0YUdyaWRDb2x1bW5MaXN0LmggKi87IH07CisJCUJDNzdE
MUZEMEZGMjhEOUIwMDcwODg3QiAvKiBEYXRhR3JpZENvbHVtbkxpc3QuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM3N0QxRkMwRkYyOEQ5QjAwNzA4
ODdCIC8qIERhdGFHcmlkQ29sdW1uTGlzdC5jcHAgKi87IH07CisJCUJDNzdEMjM5MEZGMjk4MDgw
MDcwODg3QiAvKiBEYXRhR3JpZENvbHVtbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCQzc3RDIzODBGRjI5ODA4MDA3MDg4N0IgLyogRGF0YUdyaWRD
b2x1bW4uY3BwICovOyB9OwogCQlCQzdGNDRBODBCOUUzMjRFMDBBOUQwODEgLyogSW1hZ2VPYnNl
cnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM3
RjQ0QTcwQjlFMzI0RTAwQTlEMDgxIC8qIEltYWdlT2JzZXJ2ZXIuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzdGQTYyMDBEMUYwQ0JEMDBEQjIy
QTkgLyogRHluYW1pY05vZGVMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEJDN0ZBNjFFMEQxRjBDQkQwMERCMjJBOSAvKiBEeW5hbWljTm9kZUxp
c3QuY3BwICovOyB9OwogCQlCQzdGQTYyMTBEMUYwQ0JEMDBEQjIyQTkgLyogRHluYW1pY05vZGVM
aXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzdG
QTYxRjBEMUYwQ0JEMDBEQjIyQTkgLyogRHluYW1pY05vZGVMaXN0LmggKi87IH07CkBAIC04ODU4
LDYgKzg4NjksMTcgQEAKIAkJQkM3N0NEQ0QwRkVGRjMzQjAwNzA4ODdCIC8qIEpTSFRNTERhdGFH
cmlkQ2VsbEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNIVE1M
RGF0YUdyaWRDZWxsRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzc3
Q0VCMjBGRjAxN0YyMDA3MDg4N0IgLyogUmVuZGVyRGF0YUdyaWQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyRGF0YUdyaWQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQkM3N0NFQzcwRkYwMUNCRTAwNzA4ODdCIC8qIFJlbmRlckRhdGFHcmlkLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlckRhdGFHcmlkLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM3N0NGOTgwRkYxNzI0MjAwNzA4ODdCIC8q
IERhdGFHcmlkQ29sdW1uTGlzdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRGF0YUdyaWRD
b2x1bW5MaXN0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM3N0NGOUUwRkYx
NzJCMzAwNzA4ODdCIC8qIERhdGFHcmlkQ29sdW1uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBEYXRhR3JpZENvbHVtbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDNzdD
RkFCMEZGMTczRDMwMDcwODg3QiAvKiBEYXRhR3JpZENvbHVtbkxpc3QuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRGF0YUdyaWRDb2x1bW5MaXN0Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUJDNzdDRkMxMEZGMTc1NTUwMDcwODg3QiAvKiBEYXRhR3JpZENvbHVt
bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEYXRhR3JpZENvbHVtbi5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzc3RDE1MTBGRjE5QzczMDA3MDg4N0IgLyog
SlNEYXRhR3JpZENvbHVtbkxpc3RDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNEYXRhR3JpZENvbHVtbkxpc3RDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlCQzc3RDE2NTBGRjE5RjU1MDA3MDg4N0IgLyogSlNEYXRhR3JpZENv
bHVtbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RhdGFHcmlk
Q29sdW1uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM3N0QxNjYwRkYxOUY1
NTAwNzA4ODdCIC8qIEpTRGF0YUdyaWRDb2x1bW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSlNEYXRhR3JpZENvbHVtbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlCQzc3RDE2NzBGRjE5RjU1MDA3MDg4N0IgLyogSlNEYXRhR3JpZENvbHVtbkxpc3QuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNEYXRhR3JpZENvbHVtbkxpc3Qu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzc3RDE2ODBGRjE5RjU1MDA3MDg4
N0IgLyogSlNEYXRhR3JpZENvbHVtbkxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSlNEYXRhR3JpZENvbHVtbkxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQkM3N0QxRkMwRkYyOEQ5QjAwNzA4ODdCIC8qIERhdGFHcmlkQ29sdW1uTGlzdC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEYXRhR3JpZENvbHVtbkxpc3QuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzc3RDIzODBGRjI5ODA4MDA3MDg4N0Ig
LyogRGF0YUdyaWRDb2x1bW4uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gRGF0YUdyaWRDb2x1bW4uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzdC
MkFGODA0NTA4MjQxMDBBODAwMEYgLyogU2Nyb2xsYmFyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9sbGJhci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJQkM3RjQ0QTcwQjlF
MzI0RTAwQTlEMDgxIC8qIEltYWdlT2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEltYWdlT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QkM3RkE2MUUwRDFGMENCRDAwREIyMkE5IC8qIER5bmFtaWNOb2RlTGlzdC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEeW5hbWljTm9kZUxpc3QuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTE2MjEsNiArMTE2NDMsMTIgQEAKIAkJCQk5M0M0NDFF
RDBGODEzQTFBMDBDMUE2MzQgLyogQ29sbGVjdGlvbkNhY2hlLmNwcCAqLywKIAkJCQk5M0M0NDFF
RTBGODEzQTFBMDBDMUE2MzQgLyogQ29sbGVjdGlvbkNhY2hlLmggKi8sCiAJCQkJOTNDNDQxRkYw
RjgxM0FFMTAwQzFBNjM0IC8qIENvbGxlY3Rpb25UeXBlLmggKi8sCisJCQkJQkM3N0NGQzEwRkYx
NzU1NTAwNzA4ODdCIC8qIERhdGFHcmlkQ29sdW1uLmggKi8sCisJCQkJQkM3N0NGOUUwRkYxNzJC
MzAwNzA4ODdCIC8qIERhdGFHcmlkQ29sdW1uLmlkbCAqLywKKwkJCQlCQzc3RDFGQzBGRjI4RDlC
MDA3MDg4N0IgLyogRGF0YUdyaWRDb2x1bW5MaXN0LmNwcCAqLywKKwkJCQlCQzc3RDIzODBGRjI5
ODA4MDA3MDg4N0IgLyogRGF0YUdyaWRDb2x1bW4uY3BwICovLAorCQkJCUJDNzdDRkFCMEZGMTcz
RDMwMDcwODg3QiAvKiBEYXRhR3JpZENvbHVtbkxpc3QuaCAqLywKKwkJCQlCQzc3Q0Y5ODBGRjE3
MjQyMDA3MDg4N0IgLyogRGF0YUdyaWRDb2x1bW5MaXN0LmlkbCAqLywKIAkJCQlCQ0JDQUUzNjBG
RjE5Mzg1MDAwNzYyQUUgLyogRGF0YUdyaWREYXRhU291cmNlLmggKi8sCiAJCQkJQkNEQkI4Q0Mw
RTA4OTU4NDAwQzYwRkY2IC8qIEZpbGUuY3BwICovLAogCQkJCUJDREJCOENCMEUwODk1ODQwMEM2
MEZGNiAvKiBGaWxlLmggKi8sCkBAIC0xMTkxOCw2ICsxMTk0NiwxMCBAQAogCQkJCTY1REYzMjM2
MDlEMURFNjUwMDBCRTMyNSAvKiBKU0NhbnZhc1BhdHRlcm4uaCAqLywKIAkJCQk2NURGMzIzNzA5
RDFERTY1MDAwQkUzMjUgLyogSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwICovLAogCQkJ
CTY1REYzMjM4MDlEMURFNjUwMDBCRTMyNSAvKiBKU0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5o
ICovLAorCQkJCUJDNzdEMTY1MEZGMTlGNTUwMDcwODg3QiAvKiBKU0RhdGFHcmlkQ29sdW1uLmNw
cCAqLywKKwkJCQlCQzc3RDE2NjBGRjE5RjU1MDA3MDg4N0IgLyogSlNEYXRhR3JpZENvbHVtbi5o
ICovLAorCQkJCUJDNzdEMTY3MEZGMTlGNTUwMDcwODg3QiAvKiBKU0RhdGFHcmlkQ29sdW1uTGlz
dC5jcHAgKi8sCisJCQkJQkM3N0QxNjgwRkYxOUY1NTAwNzA4ODdCIC8qIEpTRGF0YUdyaWRDb2x1
bW5MaXN0LmggKi8sCiAJCQkJQkMwMEYwMTAwRTBBMTg5NTAwRkQwNEUzIC8qIEpTRmlsZS5jcHAg
Ki8sCiAJCQkJQkMwMEYwMTEwRTBBMTg5NTAwRkQwNEUzIC8qIEpTRmlsZS5oICovLAogCQkJCUJD
MDBGMDEyMEUwQTE4OTUwMEZEMDRFMyAvKiBKU0ZpbGVMaXN0LmNwcCAqLywKQEAgLTEzNTExLDYg
KzEzNTQzLDEwIEBACiAJCQkJNTFFQzkyNjIwQ0U5MERENDAwRjkwMzA4IC8qIEpTQ3VzdG9tU1FM
VHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrLmggKi8sCiAJCQkJMUEzNDE3QzgwQ0VDRkYyNTAwNDlD
QkRFIC8qIEpTQ3VzdG9tVm9pZENhbGxiYWNrLmNwcCAqLywKIAkJCQkxQTM0MTdDNzBDRUNGRjI1
MDA0OUNCREUgLyogSlNDdXN0b21Wb2lkQ2FsbGJhY2suaCAqLywKKwkJCQlCQzc3RDE1MTBGRjE5
QzczMDA3MDg4N0IgLyogSlNEYXRhR3JpZENvbHVtbkxpc3RDdXN0b20uY3BwICovLAorCQkJCTFB
RTgzMDQyMENBQjBFRDEwMDIyMzdBRSAvKiBKU0RhdGFiYXNlQ3VzdG9tLmNwcCAqLywKKwkJCQk5
MjkyNjQ3NjBCNjFGQzcyMDBCNDFEMzQgLyogSlNEb2N1bWVudEN1c3RvbS5jcHAgKi8sCisJCQkJ
QkMxREVBNEUwRTI2OEVCNjAwODNBNzNGIC8qIEpTRG9jdW1lbnRGcmFnbWVudEN1c3RvbS5jcHAg
Ki8sCiAJCQkJMUFFODMwNDIwQ0FCMEVEMTAwMjIzN0FFIC8qIEpTRGF0YWJhc2VDdXN0b20uY3Bw
ICovLAogCQkJCTkyOTI2NDc2MEI2MUZDNzIwMEI0MUQzNCAvKiBKU0RvY3VtZW50Q3VzdG9tLmNw
cCAqLywKIAkJCQlCQzFERUE0RTBFMjY4RUI2MDA4M0E3M0YgLyogSlNEb2N1bWVudEZyYWdtZW50
Q3VzdG9tLmNwcCAqLywKQEAgLTE2ODc4LDYgKzE2OTE0LDEwIEBACiAJCQkJQkM3N0NEQkMwRkVG
RjE0MjAwNzA4ODdCIC8qIEhUTUxEYXRhR3JpZENlbGxFbGVtZW50LmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQzc3Q0RDRjBGRUZGMzNCMDA3MDg4N0IgLyogSlNIVE1MRGF0YUdyaWRDZWxsRWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM3N0NFQjMwRkYwMTdGMjAwNzA4ODdCIC8qIFJlbmRl
ckRhdGFHcmlkLmggaW4gSGVhZGVycyAqLywKKwkJCQlCQzc3Q0ZBQzBGRjE3M0QzMDA3MDg4N0Ig
LyogRGF0YUdyaWRDb2x1bW5MaXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQlCQzc3Q0ZDMjBGRjE3
NTU1MDA3MDg4N0IgLyogRGF0YUdyaWRDb2x1bW4uaCBpbiBIZWFkZXJzICovLAorCQkJCUJDNzdE
MTZBMEZGMTlGNTYwMDcwODg3QiAvKiBKU0RhdGFHcmlkQ29sdW1uLmggaW4gSGVhZGVycyAqLywK
KwkJCQlCQzc3RDE2QzBGRjE5RjU2MDA3MDg4N0IgLyogSlNEYXRhR3JpZENvbHVtbkxpc3QuaCBp
biBIZWFkZXJzICovLAogCQkJCUJDQkNBRTM3MEZGMTkzODUwMDA3NjJBRSAvKiBEYXRhR3JpZERh
dGFTb3VyY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQkNBRTNEMEZGMTkzOTkwMDA3NjJBRSAv
KiBKU0RhdGFHcmlkRGF0YVNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwpAQCAtMTY5ODYs
NiArMTcwMjYsOCBAQAogCQkJCUJDNzdDQjg5MEZFQkY1QkEwMDcwODg3QiAvKiBIVE1MRGF0YUdy
aWRDb2xFbGVtZW50LmlkbCBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJQkM3N0NDNkMwRkVDM0Q1RjAw
NzA4ODdCIC8qIEhUTUxEYXRhR3JpZFJvd0VsZW1lbnQuaWRsIGluIFJlc291cmNlcyAqLywKIAkJ
CQlCQzc3Q0RBMzBGRUZFQjUzMDA3MDg4N0IgLyogSFRNTERhdGFHcmlkQ2VsbEVsZW1lbnQuaWRs
IGluIFJlc291cmNlcyAqLywKKwkJCQlCQzc3Q0Y5OTBGRjE3MjQyMDA3MDg4N0IgLyogRGF0YUdy
aWRDb2x1bW5MaXN0LmlkbCBpbiBSZXNvdXJjZXMgKi8sCisJCQkJQkM3N0NGOUYwRkYxNzJCMzAw
NzA4ODdCIC8qIERhdGFHcmlkQ29sdW1uLmlkbCBpbiBSZXNvdXJjZXMgKi8sCiAJCQkpOwogCQkJ
cnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0xODg4Niw4
ICsxODkyOCwxMyBAQAogCQkJCUJDNzdDREI4MEZFRkYxMjEwMDcwODg3QiAvKiBIVE1MRGF0YUdy
aWRDZWxsRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzc3Q0RDRTBGRUZGMzNCMDA3
MDg4N0IgLyogSlNIVE1MRGF0YUdyaWRDZWxsRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlCQzc3Q0VDODBGRjAxQ0JFMDA3MDg4N0IgLyogUmVuZGVyRGF0YUdyaWQuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJQkM3N0QxNTIwRkYxOUM3MzAwNzA4ODdCIC8qIEpTRGF0YUdyaWRDb2x1bW5M
aXN0Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUJDNzdEMTY5MEZGMTlGNTYwMDcwODg3
QiAvKiBKU0RhdGFHcmlkQ29sdW1uLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUJDNzdEMTZCMEZG
MTlGNTYwMDcwODg3QiAvKiBKU0RhdGFHcmlkQ29sdW1uTGlzdC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlCQ0JDQUUzQzBGRjE5Mzk5MDAwNzYyQUUgLyogSlNEYXRhR3JpZERhdGFTb3VyY2UuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQkNCQ0FFNTQwRkYxQTI5RTAwMDc2MkFFIC8qIEpTSFRNTERh
dGFHcmlkRWxlbWVudEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlCQzc3RDFGRDBGRjI4
RDlCMDA3MDg4N0IgLyogRGF0YUdyaWRDb2x1bW5MaXN0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CUJDNzdEMjM5MEZGMjk4MDgwMDcwODg3QiAvKiBEYXRhR3JpZENvbHVtbi5jcHAgaW4gU291cmNl
cyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsK
IAkJfTsKSW5kZXg6IFdlYkNvcmUvaHRtbC9EYXRhR3JpZENvbHVtbi5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9odG1sL0RhdGFHcmlkQ29sdW1uLmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNv
cmUvaHRtbC9EYXRhR3JpZENvbHVtbi5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDEgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGF0YUdyaWRDb2x1bW4uaCIKKyNpbmNs
dWRlICJEYXRhR3JpZENvbHVtbkxpc3QuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lk
IERhdGFHcmlkQ29sdW1uOjpzZXRQcmltYXJ5KGJvb2wgcHJpbWFyeSkKK3sKKyAgICBpZiAobV9w
cmltYXJ5ICE9IHByaW1hcnkpIHsKKyAgICAgICAgbV9wcmltYXJ5ID0gcHJpbWFyeTsKKyAgICAg
ICAgaWYgKG1fY29sdW1ucykKKyAgICAgICAgICAgIG1fY29sdW1ucy0+cHJpbWFyeUNvbHVtbkNo
YW5nZWQodGhpcyk7CisgICAgfQorfQorCit9CkluZGV4OiBXZWJDb3JlL2h0bWwvRGF0YUdyaWRD
b2x1bW4uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvRGF0YUdyaWRDb2x1bW4uaAkocmV2
aXNpb24gMCkKKysrIFdlYkNvcmUvaHRtbC9EYXRhR3JpZENvbHVtbi5oCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDkyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKKyAqLworCisjaWZuZGVmIERhdGFHcmlkQ29sdW1uX2gKKyNkZWZpbmUgRGF0YUdy
aWRDb2x1bW5faAorCisjaW5jbHVkZSAiQXRvbWljU3RyaW5nLmgiCisjaW5jbHVkZSA8d3RmL1Bh
c3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIERhdGFHcmlkQ29sdW1uTGlzdDsKKworY2xhc3MgRGF0YUdyaWRDb2x1
bW4gOiBwdWJsaWMgUmVmQ291bnRlZDxEYXRhR3JpZENvbHVtbj4KK3sKK3B1YmxpYzoKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxEYXRhR3JpZENvbHVtbj4gY3JlYXRlKERhdGFHcmlkQ29sdW1uTGlz
dCogY29sdW1ucywgY29uc3QgU3RyaW5nJiBjb2x1bW5JRCwgY29uc3QgU3RyaW5nJiBsYWJlbCwg
Y29uc3QgU3RyaW5nJiB0eXBlLCBib29sIHByaW1hcnksIHVuc2lnbmVkIHNob3J0IHNvcnRhYmxl
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBEYXRhR3JpZENvbHVtbihjb2x1bW5zLCBjb2x1
bW5JRCwgbGFiZWwsIHR5cGUsIHByaW1hcnksIHNvcnRhYmxlKTsKKyAgICB9CisKKyAgICBjb25z
dCBBdG9taWNTdHJpbmcmIGlkKCkgY29uc3QgeyByZXR1cm4gbV9pZDsgfQorICAgIHZvaWQgc2V0
SWQoY29uc3QgQXRvbWljU3RyaW5nJiBpZCkgeyBtX2lkID0gaWQ7IH0KKworICAgIGNvbnN0IEF0
b21pY1N0cmluZyYgbGFiZWwoKSBjb25zdCB7IHJldHVybiBtX2xhYmVsOyB9CisgICAgdm9pZCBz
ZXRMYWJlbChjb25zdCBBdG9taWNTdHJpbmcmIGxhYmVsKSB7IG1fbGFiZWwgPSBsYWJlbDsgfQor
ICAgIAorICAgIGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlw
ZTsgfQorICAgIHZvaWQgc2V0VHlwZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUpIHsgbV90eXBl
ID0gdHlwZTsgfQorICAgIAorICAgIHVuc2lnbmVkIHNob3J0IHNvcnRhYmxlKCkgY29uc3QgeyBy
ZXR1cm4gbV9zb3J0YWJsZTsgfQorICAgIHZvaWQgc2V0U29ydGFibGUodW5zaWduZWQgc2hvcnQg
c29ydGFibGUpIHsgbV9zb3J0YWJsZSA9IHNvcnRhYmxlOyB9CisgICAgCisgICAgdW5zaWduZWQg
c2hvcnQgc29ydERpcmVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fc29ydERpcmVjdGlvbjsgfQor
ICAgIHZvaWQgc2V0U29ydERpcmVjdGlvbih1bnNpZ25lZCBzaG9ydCBzb3J0RGlyZWN0aW9uKSB7
IG1fc29ydERpcmVjdGlvbiA9IHNvcnREaXJlY3Rpb247IH0KKyAgICAKKyAgICBib29sIHByaW1h
cnkoKSBjb25zdCB7IHJldHVybiBtX3ByaW1hcnk7IH0KKyAgICB2b2lkIHNldFByaW1hcnkoYm9v
bCk7CisKKyAgICB2b2lkIGRldGFjaEZyb21Db2x1bW5MaXN0KCkgeyBtX2NvbHVtbnMgPSAwOyB9
CisKK3ByaXZhdGU6CisgICAgRGF0YUdyaWRDb2x1bW4oRGF0YUdyaWRDb2x1bW5MaXN0KiBjb2x1
bW5zLCBjb25zdCBTdHJpbmcmIGNvbHVtbklELCBjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCBT
dHJpbmcmIHR5cGUsIGJvb2wgcHJpbWFyeSwgdW5zaWduZWQgc2hvcnQgc29ydGFibGUpCisgICAg
ICAgIDogbV9jb2x1bW5zKGNvbHVtbnMpCisgICAgICAgICwgbV9pZChjb2x1bW5JRCkKKyAgICAg
ICAgLCBtX2xhYmVsKGxhYmVsKQorICAgICAgICAsIG1fdHlwZSh0eXBlKQorICAgICAgICAsIG1f
cHJpbWFyeShwcmltYXJ5KQorICAgICAgICAsIG1fc29ydGFibGUoc29ydGFibGUpCisgICAgICAg
ICwgbV9zb3J0RGlyZWN0aW9uKDApCisgICAgeworICAgIH0KKworcHJpdmF0ZToKKyAgICBEYXRh
R3JpZENvbHVtbkxpc3QqIG1fY29sdW1uczsgLy8gTm90IHJlZmNvdW50ZWQuICBUaGUgY29sdW1u
cyBsaXN0IHdpbGwgbnVsbCBvdXQgb3VyIHJlZmVyZW5jZSB3aGVuIGl0IGdvZXMgYXdheS4KKwor
ICAgIEF0b21pY1N0cmluZyBtX2lkOworICAgIEF0b21pY1N0cmluZyBtX2xhYmVsOworICAgIEF0
b21pY1N0cmluZyBtX3R5cGU7CisgICAgCisgICAgYm9vbCBtX3ByaW1hcnk7CisKKyAgICB1bnNp
Z25lZCBzaG9ydCBtX3NvcnRhYmxlOworICAgIHVuc2lnbmVkIHNob3J0IG1fc29ydERpcmVjdGlv
bjsKK307CisKK30gLy9uYW1lc3BhY2UKKworI2VuZGlmCkluZGV4OiBXZWJDb3JlL2h0bWwvRGF0
YUdyaWRDb2x1bW4uaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9EYXRhR3JpZENvbHVt
bi5pZGwJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2h0bWwvRGF0YUdyaWRDb2x1bW4uaWRsCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5IEFw
cGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworbW9kdWxlIGh0bWwgeworCitpbnRlcmZhY2Ug
WyBHZW5lcmF0ZUNvbnN0cnVjdG9yIF0gRGF0YUdyaWRDb2x1bW4geworICAgIGF0dHJpYnV0ZSBE
T01TdHJpbmcgaWQ7IC8vIFRoZSBpZGVudGlmaWVyIGZvciB0aGUgY29sdW1uLgorICAgIGF0dHJp
YnV0ZSBET01TdHJpbmcgbGFiZWw7IC8vIFRoZSB0ZXh0IHRvIGRpc3BsYXkgaW4gdGhlIGNvbHVt
bi4KKyAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIHR5cGU7IC8vIFRoZSB0eXBlIG9mIGRhdGEgZGlz
cGxheWVkIGluIHRoaXMgY29sdW1uLgorCisgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgTkVWRVJf
U09SVEVEID0gMDsKKyAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBBTFdBWVNfU09SVEVEID0gMTsK
KyAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTT01FVElNRVNfU09SVEVEID0gMjsKKyAgICBhdHRy
aWJ1dGUgdW5zaWduZWQgc2hvcnQgc29ydGFibGU7IC8vIFdoZXRoZXIgb3Igbm90IHRoZSBjb2x1
bW4gY2FuIGJlIHNvcnRlZC4KKworICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IE5BVFVSQUxfU09S
VCA9IDA7CisgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU09SVF9BU0NFTkRJTkcgPSAxOworICAg
IGNvbnN0IHVuc2lnbmVkIHNob3J0IFNPUkNfREVTQ0VORElORyA9IDI7CisgICAgYXR0cmlidXRl
IHVuc2lnbmVkIHNob3J0IHNvcnREaXJlY3Rpb247IC8vIFRoZSBzb3J0IGRpcmVjdGlvbiBmb3Ig
dGhlIGNvbHVtbi4gIFZhbGlkIHZhbHVlcyBhcmUgYXNjZW5kaW5nLCBkZXNjZW5kaW5nIGFuZCBu
YXR1cmFsIChubyBzb3J0IGFwcGxpZWQpLgorICAgIAorICAgIGF0dHJpYnV0ZSBib29sZWFuIHBy
aW1hcnk7IC8vIFdoZXRoZXIgb3Igbm90IHRoaXMgaXMgdGhlIHByaW1hcnkgY29sdW1uIG9mIHRo
ZSB0cmVlICh0aGlzIHdpbGwgYmUgd2hlcmUgdGhlIGRpc2Nsb3N1cmUgdHJpYW5nbGUgYW5kIGNv
bm5lY3RpbmcgdHJlZSBsaW5lcyB3aWxsIGRpc3BsYXkpCit9OworCit9CkluZGV4OiBXZWJDb3Jl
L2h0bWwvRGF0YUdyaWRDb2x1bW5MaXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwv
RGF0YUdyaWRDb2x1bW5MaXN0LmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvaHRtbC9EYXRh
R3JpZENvbHVtbkxpc3QuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDk5IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGF0YUdyaWRDb2x1bW5MaXN0LmgiCisKKyNpbmNsdWRl
ICJBdG9taWNTdHJpbmcuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK0RhdGFHcmlkQ29sdW1uTGlzdDo6fkRhdGFHcmlkQ29sdW1uTGlzdCgp
Cit7CisgICAgY2xlYXIoKTsKK30KKworUGFzc1JlZlB0cjxEYXRhR3JpZENvbHVtbj4gRGF0YUdy
aWRDb2x1bW5MaXN0OjppdGVtV2l0aE5hbWUoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKSBjb25z
dAoreworICAgIHVuc2lnbmVkIGxlbmd0aCA9IG1fY29sdW1ucy5zaXplKCk7CisgICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7CisgICAgICAgIGlmIChtX2NvbHVtbnNb
aV0tPmlkKCkgPT0gbmFtZSkKKyAgICAgICAgICAgIHJldHVybiBtX2NvbHVtbnNbaV07CisgICAg
fQorICAgIHJldHVybiAwOworfQorCitQYXNzUmVmUHRyPERhdGFHcmlkQ29sdW1uPiBEYXRhR3Jp
ZENvbHVtbkxpc3Q6OmFkZChjb25zdCBTdHJpbmcmIGlkLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBj
b25zdCBTdHJpbmcmIHR5cGUsIGJvb2wgcHJpbWFyeSwgdW5zaWduZWQgc2hvcnQgc29ydGFibGUp
Cit7CisgICAgUmVmUHRyPERhdGFHcmlkQ29sdW1uPiBjb2x1bW4gPSBEYXRhR3JpZENvbHVtbjo6
Y3JlYXRlKHRoaXMsIGlkLCBsYWJlbCwgdHlwZSwgcHJpbWFyeSwgc29ydGFibGUpOworICAgIGlm
IChwcmltYXJ5KQorICAgICAgICBtX3ByaW1hcnlDb2x1bW4gPSBjb2x1bW47CisgICAgbV9jb2x1
bW5zLmFwcGVuZChjb2x1bW4pOworICAgIHJldHVybiBjb2x1bW47Cit9CisKK3ZvaWQgRGF0YUdy
aWRDb2x1bW5MaXN0OjpyZW1vdmUoRGF0YUdyaWRDb2x1bW4qIGNvbCkKK3sKKyAgICB1bnNpZ25l
ZCBpbmRleCA9IG1fY29sdW1ucy5maW5kKGNvbCk7CisgICAgaWYgKGluZGV4ID09IG5vdEZvdW5k
KQorICAgICAgICByZXR1cm47CisgICAgbV9jb2x1bW5zLnJlbW92ZShpbmRleCk7CisgICAgaWYg
KGNvbCA9PSBtX3ByaW1hcnlDb2x1bW4pCisgICAgICAgIG1fcHJpbWFyeUNvbHVtbiA9IDA7Cisg
ICAgaWYgKGNvbCA9PSBtX3NvcnRDb2x1bW4pCisgICAgICAgIG1fc29ydENvbHVtbiA9IDA7Cit9
CisKK3ZvaWQgRGF0YUdyaWRDb2x1bW5MaXN0Ojptb3ZlKERhdGFHcmlkQ29sdW1uKiBjb2wsIHVu
c2lnbmVkIGxvbmcgaW5kZXgpCit7CisgICAgdW5zaWduZWQgY29sSW5kZXggPSBtX2NvbHVtbnMu
ZmluZChjb2wpOworICAgIGlmIChjb2xJbmRleCA9PSBub3RGb3VuZCkKKyAgICAgICAgcmV0dXJu
OworICAgIG1fY29sdW1ucy5pbnNlcnQoaW5kZXgsIGNvbCk7Cit9CisKK3ZvaWQgRGF0YUdyaWRD
b2x1bW5MaXN0OjpjbGVhcigpCit7CisgICAgdW5zaWduZWQgbGVuZ3RoID0gbV9jb2x1bW5zLnNp
emUoKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpCisgICAgICAg
IG1fY29sdW1uc1tpXS0+ZGV0YWNoRnJvbUNvbHVtbkxpc3QoKTsKKyAgICBtX2NvbHVtbnMuY2xl
YXIoKTsKKyAgICBtX3ByaW1hcnlDb2x1bW4gPSAwOworICAgIG1fc29ydENvbHVtbiA9IDA7Cit9
CisKK3ZvaWQgRGF0YUdyaWRDb2x1bW5MaXN0OjpwcmltYXJ5Q29sdW1uQ2hhbmdlZChEYXRhR3Jp
ZENvbHVtbiogY29sKQoreworICAgIGlmIChjb2wtPnByaW1hcnkoKSkKKyAgICAgICAgbV9wcmlt
YXJ5Q29sdW1uID0gY29sOworICAgIGVsc2UgaWYgKG1fcHJpbWFyeUNvbHVtbiA9IGNvbCkKKyAg
ICAgICAgbV9wcmltYXJ5Q29sdW1uID0gMDsKKyAgICAKKyAgICAvLyBGSVhNRTogSW52YWxpZGF0
ZSB0aGUgdHJlZS4KK30KKworfQorCkluZGV4OiBXZWJDb3JlL2h0bWwvRGF0YUdyaWRDb2x1bW5M
aXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0RhdGFHcmlkQ29sdW1uTGlzdC5oCShy
ZXZpc2lvbiAwKQorKysgV2ViQ29yZS9odG1sL0RhdGFHcmlkQ29sdW1uTGlzdC5oCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDUwIEBACisjaWZuZGVmIERhdGFHcmlkQ29sdW1uTGlzdF9oCisjZGVm
aW5lIERhdGFHcmlkQ29sdW1uTGlzdF9oCisKKyNpbmNsdWRlICJEYXRhR3JpZENvbHVtbi5oIgor
CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBBdG9taWNTdHJpbmc7CisKK2NsYXNzIERhdGFHcmlkQ29sdW1uTGlzdCA6IHB1YmxpYyBSZWZD
b3VudGVkPERhdGFHcmlkQ29sdW1uTGlzdD4geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVm
UHRyPERhdGFHcmlkQ29sdW1uTGlzdD4gY3JlYXRlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBu
ZXcgRGF0YUdyaWRDb2x1bW5MaXN0KCk7CisgICAgfQorICAgIAorICAgIH5EYXRhR3JpZENvbHVt
bkxpc3QoKTsKKworICAgIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fY29sdW1u
cy5zaXplKCk7IH0KKyAgICAKKyAgICBQYXNzUmVmUHRyPERhdGFHcmlkQ29sdW1uPiBpdGVtKHVu
c2lnbmVkIGluZGV4KSBjb25zdCB7IHJldHVybiBtX2NvbHVtbnNbaW5kZXhdOyB9CisgICAgUGFz
c1JlZlB0cjxEYXRhR3JpZENvbHVtbj4gaXRlbVdpdGhOYW1lKGNvbnN0IEF0b21pY1N0cmluZyYp
IGNvbnN0OworICAgIAorICAgIFBhc3NSZWZQdHI8RGF0YUdyaWRDb2x1bW4+IHByaW1hcnlDb2x1
bW4oKSBjb25zdCB7IHJldHVybiBtX3ByaW1hcnlDb2x1bW47IH0KKyAgICAKKyAgICBQYXNzUmVm
UHRyPERhdGFHcmlkQ29sdW1uPiBzb3J0Q29sdW1uKCkgY29uc3QgeyByZXR1cm4gbV9zb3J0Q29s
dW1uOyB9CisKKyAgICBQYXNzUmVmUHRyPERhdGFHcmlkQ29sdW1uPiBhZGQoY29uc3QgU3RyaW5n
JiBpZCwgY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3QgU3RyaW5nJiB0eXBlLCBib29sIHByaW1h
cnksIHVuc2lnbmVkIHNob3J0IHNvcnRhYmxlKTsKKyAgICB2b2lkIHJlbW92ZShEYXRhR3JpZENv
bHVtbiopOworICAgIHZvaWQgbW92ZShEYXRhR3JpZENvbHVtbiosIHVuc2lnbmVkIGxvbmcgaW5k
ZXgpOworICAgIHZvaWQgY2xlYXIoKTsKKyAgICAKK3ByaXZhdGU6CisgICAgdm9pZCBwcmltYXJ5
Q29sdW1uQ2hhbmdlZChEYXRhR3JpZENvbHVtbiogY29sKTsKKworcHJpdmF0ZToKKyAgICBWZWN0
b3I8UmVmUHRyPERhdGFHcmlkQ29sdW1uPiA+IG1fY29sdW1uczsKKyAgICBSZWZQdHI8RGF0YUdy
aWRDb2x1bW4+IG1fcHJpbWFyeUNvbHVtbjsKKyAgICBSZWZQdHI8RGF0YUdyaWRDb2x1bW4+IG1f
c29ydENvbHVtbjsKKyAgICAKK2ZyaWVuZCBjbGFzcyBEYXRhR3JpZENvbHVtbjsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIERhdGFHcmlkQ29sdW1uTGlzdF9oCklu
ZGV4OiBXZWJDb3JlL2h0bWwvRGF0YUdyaWRDb2x1bW5MaXN0LmlkbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2h0bWwvRGF0YUdyaWRDb2x1bW5MaXN0LmlkbAkocmV2aXNpb24gMCkKKysrIFdlYkNv
cmUvaHRtbC9EYXRhR3JpZENvbHVtbkxpc3QuaWRsCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ2
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIs
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisg
Ki8KKworbW9kdWxlIGh0bWwgeworCitpbnRlcmZhY2UgWworICAgICAgICBHZW5lcmF0ZUNvbnN0
cnVjdG9yLAorICAgICAgICBIYXNJbmRleEdldHRlciwKKyAgICAgICAgSGFzTmFtZUdldHRlcgor
XSBEYXRhR3JpZENvbHVtbkxpc3QgeworCisgICAgRGF0YUdyaWRDb2x1bW4gaXRlbShpbiBbSXNJ
bmRleF0gdW5zaWduZWQgbG9uZyBpbmRleCk7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2ln
bmVkIGxvbmcgbGVuZ3RoOworICAgIAorICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBEYXRhR3JpZENv
bHVtbiBzb3J0Q29sdW1uOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBEYXRhR3JpZENvbHVtbiBw
cmltYXJ5Q29sdW1uOworCisgICAgRGF0YUdyaWRDb2x1bW4gYWRkKGluIERPTVN0cmluZyBpZCwg
aW4gRE9NU3RyaW5nIGxhYmVsLCBpbiBET01TdHJpbmcgdHlwZSwgaW4gYm9vbGVhbiBwcmltYXJ5
LCBpbiB1bnNpZ25lZCBzaG9ydCBzb3J0YWJsZSk7CisgICAgdm9pZCByZW1vdmUoaW4gRGF0YUdy
aWRDb2x1bW4gY29sdW1uKTsKKyAgICB2b2lkIG1vdmUoaW4gRGF0YUdyaWRDb2x1bW4gY29sdW1u
LCBpbiB1bnNpZ25lZCBsb25nIGluZGV4KTsKKyAgICB2b2lkIGNsZWFyKCk7Cit9OworCit9Cklu
ZGV4OiBXZWJDb3JlL2h0bWwvSFRNTERhdGFHcmlkQ29sRWxlbWVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9odG1sL0hUTUxEYXRhR3JpZENvbEVsZW1lbnQuY3BwCShyZXZpc2lvbiA0NTA4
NSkKKysrIFdlYkNvcmUvaHRtbC9IVE1MRGF0YUdyaWRDb2xFbGVtZW50LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNTgsMjQgKzU4LDM1IEBAIHZvaWQgSFRNTERhdGFHcmlkQ29sRWxlbWVudDo6c2V0
VHlwZShjb24KICAgICBzZXRBdHRyaWJ1dGUodHlwZUF0dHIsIHR5cGUpOwogfQogCi1ib29sIEhU
TUxEYXRhR3JpZENvbEVsZW1lbnQ6OnNvcnRhYmxlKCkgY29uc3QKK3Vuc2lnbmVkIHNob3J0IEhU
TUxEYXRhR3JpZENvbEVsZW1lbnQ6OnNvcnRhYmxlKCkgY29uc3QKIHsKICAgICByZXR1cm4gaGFz
QXR0cmlidXRlKHNvcnRhYmxlQXR0cik7CiB9CiAKLXZvaWQgSFRNTERhdGFHcmlkQ29sRWxlbWVu
dDo6c2V0U29ydGFibGUoYm9vbCBzb3J0YWJsZSkKK3ZvaWQgSFRNTERhdGFHcmlkQ29sRWxlbWVu
dDo6c2V0U29ydGFibGUodW5zaWduZWQgc2hvcnQgc29ydGFibGUpCiB7CiAgICAgc2V0QXR0cmli
dXRlKHNvcnRhYmxlQXR0ciwgc29ydGFibGUgPyAiIiA6IDApOwogfQogCi1TdHJpbmcgSFRNTERh
dGFHcmlkQ29sRWxlbWVudDo6c29ydERpcmVjdGlvbigpIGNvbnN0Cit1bnNpZ25lZCBzaG9ydCBI
VE1MRGF0YUdyaWRDb2xFbGVtZW50Ojpzb3J0RGlyZWN0aW9uKCkgY29uc3QKIHsKLSAgICByZXR1
cm4gZ2V0QXR0cmlidXRlKHNvcnRkaXJlY3Rpb25BdHRyKTsKLX0KLQotdm9pZCBIVE1MRGF0YUdy
aWRDb2xFbGVtZW50OjpzZXRTb3J0RGlyZWN0aW9uKGNvbnN0IFN0cmluZyYgc29ydERpcmVjdGlv
bikKLXsKLSAgICBzZXRBdHRyaWJ1dGUoc29ydGRpcmVjdGlvbkF0dHIsIHNvcnREaXJlY3Rpb24p
OworICAgIFN0cmluZyBzb3J0RGlyZWN0aW9uID0gZ2V0QXR0cmlidXRlKHNvcnRkaXJlY3Rpb25B
dHRyKTsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2Uoc29ydERpcmVjdGlvbiwgImFzY2VuZGlu
ZyIpKQorICAgICAgICByZXR1cm4gMTsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2Uoc29ydERp
cmVjdGlvbiwgImRlc2NlbmRpbmciKSkKKyAgICAgICAgcmV0dXJuIDI7CisgICAgcmV0dXJuIDA7
Cit9CisKK3ZvaWQgSFRNTERhdGFHcmlkQ29sRWxlbWVudDo6c2V0U29ydERpcmVjdGlvbih1bnNp
Z25lZCBzaG9ydCBzb3J0RGlyZWN0aW9uKQoreworICAgIC8vIEZJWE1FOiBDaGVjayBzb3J0YWJs
ZSBydWxlcy4KKyAgICBpZiAoc29ydERpcmVjdGlvbiA9PSAwKQorICAgICAgICBzZXRBdHRyaWJ1
dGUoc29ydGRpcmVjdGlvbkF0dHIsICJuYXR1cmFsIik7CisgICAgZWxzZSBpZiAoc29ydERpcmVj
dGlvbiA9PSAxKQorICAgICAgICBzZXRBdHRyaWJ1dGUoc29ydGRpcmVjdGlvbkF0dHIsICJhc2Nl
bmRpbmciKTsKKyAgICBlbHNlIGlmIChzb3J0RGlyZWN0aW9uID09IDIpCisgICAgICAgIHNldEF0
dHJpYnV0ZShzb3J0ZGlyZWN0aW9uQXR0ciwgImRlc2NlbmRpbmciKTsKIH0KIAogYm9vbCBIVE1M
RGF0YUdyaWRDb2xFbGVtZW50OjpwcmltYXJ5KCkgY29uc3QKSW5kZXg6IFdlYkNvcmUvaHRtbC9I
VE1MRGF0YUdyaWRDb2xFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxE
YXRhR3JpZENvbEVsZW1lbnQuaAkocmV2aXNpb24gNDUwODUpCisrKyBXZWJDb3JlL2h0bWwvSFRN
TERhdGFHcmlkQ29sRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00NCwxMSArNDQsMTEgQEAg
cHVibGljOgogICAgIFN0cmluZyB0eXBlKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRUeXBlKGNvbnN0
IFN0cmluZyYpOwogICAgIAotICAgIGJvb2wgc29ydGFibGUoKSBjb25zdDsKLSAgICB2b2lkIHNl
dFNvcnRhYmxlKGJvb2wpOworICAgIHVuc2lnbmVkIHNob3J0IHNvcnRhYmxlKCkgY29uc3Q7Cisg
ICAgdm9pZCBzZXRTb3J0YWJsZSh1bnNpZ25lZCBzaG9ydCk7CiAgICAgCi0gICAgU3RyaW5nIHNv
cnREaXJlY3Rpb24oKSBjb25zdDsKLSAgICB2b2lkIHNldFNvcnREaXJlY3Rpb24oY29uc3QgU3Ry
aW5nJik7CisgICAgdW5zaWduZWQgc2hvcnQgc29ydERpcmVjdGlvbigpIGNvbnN0OworICAgIHZv
aWQgc2V0U29ydERpcmVjdGlvbih1bnNpZ25lZCBzaG9ydCk7CiAgICAgCiAgICAgYm9vbCBwcmlt
YXJ5KCkgY29uc3Q7CiAgICAgdm9pZCBzZXRQcmltYXJ5KGJvb2wpOwpJbmRleDogV2ViQ29yZS9o
dG1sL0hUTUxEYXRhR3JpZENvbEVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRt
bC9IVE1MRGF0YUdyaWRDb2xFbGVtZW50LmlkbAkocmV2aXNpb24gNDUwODUpCisrKyBXZWJDb3Jl
L2h0bWwvSFRNTERhdGFHcmlkQ29sRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI5LDgg
KzI5LDggQEAgaW50ZXJmYWNlIFtHZW5lcmF0ZUNvbnN0cnVjdG9yXSBIVE1MRGF0YQogICAgIGF0
dHJpYnV0ZSBET01TdHJpbmcgbGFiZWw7IC8vIFRoZSB0ZXh0IHRvIGRpc3BsYXkgaW4gdGhlIGNv
bHVtbi4KICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIHR5cGU7IC8vIFRoZSB0eXBlIG9mIGRhdGEg
ZGlzcGxheWVkIGluIHRoaXMgY29sdW1uLgogCi0gICAgYXR0cmlidXRlIGJvb2xlYW4gc29ydGFi
bGU7IC8vIFdoZXRoZXIgb3Igbm90IHRoZSBjb2x1bW4gY2FuIGJlIHNvcnRlZC4KLSAgICBhdHRy
aWJ1dGUgRE9NU3RyaW5nIHNvcnREaXJlY3Rpb247IC8vIFRoZSBzb3J0IGRpcmVjdGlvbiBmb3Ig
dGhlIGNvbHVtbi4gIFZhbGlkIHZhbHVlcyBhcmUgYXNjZW5kaW5nLCBkZXNjZW5kaW5nIGFuZCBu
YXR1cmFsIChubyBzb3J0IGFwcGxpZWQpLgorICAgIGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydCBz
b3J0YWJsZTsgLy8gV2hldGhlciBvciBub3QgdGhlIGNvbHVtbiBjYW4gYmUgc29ydGVkLiAgVmFs
dWVzIGFyZSBub25lLCBhc2NlbmRpbmcvZGVzY2VuZGluZywgYW5kIGFzY2VuZGluZy9kZXNjZW5k
aW5nL25hCisgICAgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IHNvcnREaXJlY3Rpb247IC8vIFRo
ZSBzb3J0IGRpcmVjdGlvbiBmb3IgdGhlIGNvbHVtbi4gIFZhbGlkIHZhbHVlcyBhcmUgYXNjZW5k
aW5nLCBkZXNjZW5kaW5nIGFuZCBuYXR1cmFsIChubyBzb3J0IGFwcGxpZWQpLgogICAgIAogICAg
IGF0dHJpYnV0ZSBib29sZWFuIHByaW1hcnk7IC8vIFdoZXRoZXIgb3Igbm90IHRoaXMgaXMgdGhl
IHByaW1hcnkgY29sdW1uIG9mIHRoZSB0cmVlICh0aGlzIHdpbGwgYmUgd2hlcmUgdGhlIGRpc2Ns
b3N1cmUgdHJpYW5nbGUgYW5kIGNvbm5lY3RpbmcgdHJlZSBsaW5lcyB3aWxsIGRpc3BsYXkpCiB9
OwpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxEYXRhR3JpZEVsZW1lbnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvaHRtbC9IVE1MRGF0YUdyaWRFbGVtZW50LmNwcAkocmV2aXNpb24gNDUwODUp
CisrKyBXZWJDb3JlL2h0bWwvSFRNTERhdGFHcmlkRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTM4LDYgKzM4LDcgQEAgSFRNTERhdGFHcmlkRWxlbWVudDo6SFRNTERhdGFHcmlkRWxlbWVu
dAogICAgIDogSFRNTEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCiAgICAgLCBtX2luaXRpYWxp
emF0aW9uVGltZXIodGhpcywgJkhUTUxEYXRhR3JpZEVsZW1lbnQ6OmluaXRpYWxpemF0aW9uVGlt
ZXJGaXJlZCkKIHsKKyAgICBtX2NvbHVtbnMgPSBEYXRhR3JpZENvbHVtbkxpc3Q6OmNyZWF0ZSgp
OwogfQogCiBIVE1MRGF0YUdyaWRFbGVtZW50Ojp+SFRNTERhdGFHcmlkRWxlbWVudCgpCkluZGV4
OiBXZWJDb3JlL2h0bWwvSFRNTERhdGFHcmlkRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvaHRtbC9IVE1MRGF0YUdyaWRFbGVtZW50LmgJKHJldmlzaW9uIDQ1MDg1KQorKysgV2ViQ29y
ZS9odG1sL0hUTUxEYXRhR3JpZEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYs
NyBAQAogI2lmbmRlZiBIVE1MRGF0YUdyaWRFbGVtZW50X2gKICNkZWZpbmUgSFRNTERhdGFHcmlk
RWxlbWVudF9oCiAKKyNpbmNsdWRlICJEYXRhR3JpZENvbHVtbkxpc3QuaCIKICNpbmNsdWRlICJE
YXRhR3JpZERhdGFTb3VyY2UuaCIKICNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgogI2luY2x1ZGUg
IlRpbWVyLmgiCkBAIC01MCwxNSArNTEsMTkgQEAgcHVibGljOgogICAgIAogICAgIGJvb2wgbXVs
dGlwbGUoKSBjb25zdDsKICAgICB2b2lkIHNldE11bHRpcGxlKGJvb2wpOwotCisgICAgICAgIAog
ICAgIHZvaWQgc2V0RGF0YVNvdXJjZShQYXNzUmVmUHRyPERhdGFHcmlkRGF0YVNvdXJjZT4pOwog
ICAgIERhdGFHcmlkRGF0YVNvdXJjZSogZGF0YVNvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0
YVNvdXJjZS5nZXQoKTsgfQogCisgICAgRGF0YUdyaWRDb2x1bW5MaXN0KiBjb2x1bW5zKCkgY29u
c3QgeyByZXR1cm4gbV9jb2x1bW5zLmdldCgpOyB9CisKIHByaXZhdGU6CiAgICAgdm9pZCBpbml0
aWFsaXphdGlvblRpbWVyRmlyZWQoVGltZXI8SFRNTERhdGFHcmlkRWxlbWVudD4qKTsKIAogICAg
IFRpbWVyPEhUTUxEYXRhR3JpZEVsZW1lbnQ+IG1faW5pdGlhbGl6YXRpb25UaW1lcjsKICAgICBS
ZWZQdHI8RGF0YUdyaWREYXRhU291cmNlPiBtX2RhdGFTb3VyY2U7CisgICAgCisgICAgUmVmUHRy
PERhdGFHcmlkQ29sdW1uTGlzdD4gbV9jb2x1bW5zOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxEYXRhR3JpZEVsZW1lbnQuaWRsCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MRGF0YUdyaWRFbGVtZW50LmlkbAkocmV2aXNpb24gNDUw
ODUpCisrKyBXZWJDb3JlL2h0bWwvSFRNTERhdGFHcmlkRWxlbWVudC5pZGwJKHdvcmtpbmcgY29w
eSkKQEAgLTI5LDYgKzI5LDggQEAgbW9kdWxlIGh0bWwgewogICAgICAgICBHZW5lcmF0ZUNvbnN0
cnVjdG9yCiAgICAgXSBIVE1MRGF0YUdyaWRFbGVtZW50IDogSFRNTEVsZW1lbnQgewogICAgICAg
ICBhdHRyaWJ1dGUgW0N1c3RvbV0gRGF0YUdyaWREYXRhU291cmNlIGRhdGFTb3VyY2U7CisgICAg
ICAgIAorICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRGF0YUdyaWRDb2x1bW5MaXN0IGNvbHVt
bnM7CiAKICAgICAgICAgYXR0cmlidXRlIGJvb2xlYW4gYXV0b2ZvY3VzOyAvLyBXaGV0aGVyIG9y
IG5vdCB0aGUgZGF0YWdyaWQgc2hvdWxkIGF1dG9mb2N1cy4KICAgICAgICAgYXR0cmlidXRlIGJv
b2xlYW4gZGlzYWJsZWQ7IC8vIFdoZXRoZXIgb3Igbm90IHRoZSBkYXRhZ3JpZCBjYW4gYmUgaW50
ZXJhY3RlZCB3aXRoLgpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGF0YUdyaWQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRhdGFHcmlkLmNwcAkocmV2
aXNpb24gNDUwODUpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEYXRhR3JpZC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTgyLDEyICs4MiwyNCBAQCB2b2lkIFJlbmRlckRhdGFHcmlkOjpwYWlu
dE9iamVjdChQYWludEluCiAgICAgaWYgKHN0eWxlKCktPnZpc2liaWxpdHkoKSAhPSBWSVNJQkxF
KQogICAgICAgICByZXR1cm47CiAKLSAgICAvLyBGSVhNRTogQ29sdW1uIGFuZCBjZWxsIGZvcmVn
cm91bmRzIHdpbGwgcGFpbnQgaGVyZS4KLSAgICAKICAgICAvLyBQYWludCBvdXIgYmFja2dyb3Vu
ZCBhbmQgYm9yZGVyLgogICAgIFJlbmRlckJsb2NrOjpwYWludE9iamVjdChwYWludEluZm8sIHR4
LCB0eSk7CiAgICAgCi0gICAgLy8gRklYTUU6IFJvdywgY2VsbCBhbmQgY29sdW1uIGJhY2tncm91
bmRzIHdpbGwgcGFpbnQgaGVyZS4KKyAgICBpZiAocGFpbnRJbmZvLnBoYXNlICE9IFBhaW50UGhh
c2VGb3JlZ3JvdW5kKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBQYWludCBvdXIgY29sdW1u
IGhlYWRlcnMgZmlyc3QuCisgICAgcGFpbnRDb2x1bW5IZWFkZXJzKHBhaW50SW5mbywgdHgsIHR5
KTsKK30KKwordm9pZCBSZW5kZXJEYXRhR3JpZDo6cGFpbnRDb2x1bW5IZWFkZXJzKFBhaW50SW5m
byYsIGludCwgaW50KQoreworICAgIGdyaWRFbGVtZW50KCktPmNvbHVtbnMoKTsKKyAgICAKK30K
Kwordm9pZCBSZW5kZXJEYXRhR3JpZDo6cmVidWlsZENvbHVtbnMoKQorewogfQogCiAvLyBTY3Jv
bGxpbmcgaW1wbGVtZW50YXRpb24gZnVuY3Rpb25zCkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJEYXRhR3JpZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRh
dGFHcmlkLmgJKHJldmlzaW9uIDQ1MDg1KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGF0
YUdyaWQuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsOCArMjYsMTIgQEAKICNpZm5kZWYgUmVuZGVy
RGF0YUdyaWRfaAogI2RlZmluZSBSZW5kZXJEYXRhR3JpZF9oCiAKKyNpbmNsdWRlICJIVE1MRGF0
YUdyaWRFbGVtZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyQmxvY2suaCIKICNpbmNsdWRlICJTY3Jv
bGxiYXJDbGllbnQuaCIKKyNpbmNsdWRlICJTdHlsZUltYWdlLmgiCisjaW5jbHVkZSA8d3RmL1Jl
ZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CkBAIC00NCw3ICs0OCwxNCBAQCBwdWJsaWM6CiAgICAgCiAgICAgdmlydHVhbCB2b2lkIHBhaW50
T2JqZWN0KFBhaW50SW5mbyYsIGludCB0eCwgaW50IHR5KTsKIAorICAgIHZvaWQgY29sdW1uc0No
YW5nZWQoKTsKKwogcHJpdmF0ZToKKyAgICB2b2lkIHBhaW50Q29sdW1uSGVhZGVycyhQYWludElu
Zm8mLCBpbnQgdHgsIGludCB0eSk7CisgICAgdm9pZCByZWJ1aWxkQ29sdW1ucygpOworCisgICAg
SFRNTERhdGFHcmlkRWxlbWVudCogZ3JpZEVsZW1lbnQoKSBjb25zdCB7IHJldHVybiBzdGF0aWNf
Y2FzdDxIVE1MRGF0YUdyaWRFbGVtZW50Kj4obm9kZSgpKTsgfQorCiAgICAgLy8gU2Nyb2xsYmFy
Q2xpZW50IGludGVyZmFjZS4KICAgICB2aXJ0dWFsIHZvaWQgdmFsdWVDaGFuZ2VkKFNjcm9sbGJh
ciopOwogICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlU2Nyb2xsYmFyUmVjdChTY3JvbGxiYXIq
LCBjb25zdCBJbnRSZWN0Jik7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA0NTA4NykKKysrIExheW91dFRl
c3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEwIEBACisyMDA5LTA2LTI0
ICBEYXZpZCBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZG9tL0hUTUxEYXRhR3JpZEVsZW1lbnQv
RGF0YUdyaWRDb2x1bW5zLWJhc2ljLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFz
dC9kb20vSFRNTERhdGFHcmlkRWxlbWVudC9EYXRhR3JpZENvbHVtbnMtYmFzaWMuaHRtbDogQWRk
ZWQuCisKIDIwMDktMDYtMjQgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKERpc2FibGluZyBmYWlsaW5nIHRlc3QhKS4KSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxEYXRhR3JpZEVsZW1lbnQvRGF0YUdyaWRDb2x1bW5z
LWJhc2ljLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9I
VE1MRGF0YUdyaWRFbGVtZW50L0RhdGFHcmlkQ29sdW1ucy1iYXNpYy1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MRGF0YUdyaWRFbGVtZW50L0Rh
dGFHcmlkQ29sdW1ucy1iYXNpYy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
MTMgQEAKK1BBU1M6IEluaXRpYWwgdmFsdWUgb2YgZGF0YWdyaWQuY29sdW1ucyBpcyBkZWZpbmVk
LgorUEFTUzogSW5pdGlhbCBsZW5ndGggb2YgZGF0YWdyaWQuY29sdW1ucyBpcyAwLgorUEFTUzog
Q29sdW1uIHJldHVybmVkIGZyb20gYWRkLgorUEFTUzogV2UgaGF2ZSBvbmUgY29sdW1uIGluIHRo
ZSBsaXN0LgorUEFTUzogVGhlIGNvbHVtbiBhdCBpbmRleCAwIGlzIHRoZSBjb2x1bW4gd2UgZ290
IGJhY2sgZnJvbSBhZGQuCitQQVNTOiBUaGUgY29sdW1uIHdoZW4gcmVmZXJlbmNlZCBieSBuYW1l
IGlzIHRoZSBvbmUgd2UgZ290IGJhY2sgZnJvbSBhZGQuCitQQVNTOiBUaGUgY29sdW1uJ3MgSUQg
aXMgZnJvbWNvbCBhcyBleHBlY3RlZC4KK1BBU1M6IFRoZSBjb2x1bW4ncyBsYWJlbCBpcyBGcm9t
IGFzIGV4cGVjdGVkLgorUEFTUzogVGhlIGNvbHVtbidzIHR5cGUgaXMgdGV4dCBhcyBleHBlY3Rl
ZC4KK1BBU1M6IFRoZSBjb2x1bW4ncyBwcmltYXJ5IHByb3BlcnR5IGlzIHRydWUgYXMgZXhwZWN0
ZWQuCitQQVNTOiBUaGUgY29sdW1uJ3Mgc29ydGFibGUgcHJvcGVydHkgaXMgMiBhcyBleHBlY3Rl
ZC4KK1BBU1M6IFRoZSBjb2x1bW4gcmV0dXJuZWQgZnJvbSBhZGQgaXMgbm93IHRoZSBwcmltYXJ5
IGNvbHVtbi4KKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTERhdGFHcmlkRWxlbWVu
dC9EYXRhR3JpZENvbHVtbnMtYmFzaWMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9IVE1MRGF0YUdyaWRFbGVtZW50L0RhdGFHcmlkQ29sdW1ucy1iYXNpYy5odG1sCShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTERhdGFHcmlkRWxlbWVudC9E
YXRhR3JpZENvbHVtbnMtYmFzaWMuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMDQgQEAK
KzxodG1sPgorPGJvZHk+CisgICAgPHByZSBpZD0iY29uc29sZSI+PC9wcmU+CisgICAgPGRhdGFn
cmlkIGlkPSJ0ZXN0Ij48L2RhdGFncmlkPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRV
bnRpbERvbmUoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGxvZyhtc2cpCisgICAg
ICAgIHsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuYXBw
ZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobXNnICsgIlxuIikpOworICAgICAgICB9
CisKKyAgICAgICAgdmFyIGRhdGFncmlkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Qn
KTsKKworICAgICAgICAvLyBUZXN0IGluaXRpYWwgdmFsdWUuCisgICAgICAgIGlmIChkYXRhZ3Jp
ZC5jb2x1bW5zICE9IG51bGwpIHsKKyAgICAgICAgICAgIGxvZygiUEFTUzogSW5pdGlhbCB2YWx1
ZSBvZiBkYXRhZ3JpZC5jb2x1bW5zIGlzIGRlZmluZWQuIik7CisgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICBsb2coIkZBSUw6IEluaXRpYWwgdmFsdWUgb2YgZGF0YWdyaWQuY29sdW1ucyB3
YXMgbnVsbC4iKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFRlc3QgaW5pdGlhbCBsZW5ndGgu
CisgICAgICAgIGlmIChkYXRhZ3JpZC5jb2x1bW5zLmxlbmd0aCA9PSAwKSB7CisgICAgICAgICAg
ICBsb2coIlBBU1M6IEluaXRpYWwgbGVuZ3RoIG9mIGRhdGFncmlkLmNvbHVtbnMgaXMgMC4iKTsK
KyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxvZygiRkFJTDogSW5pdGlhbCBsZW5ndGgg
b2YgZGF0YWdyaWQuY29sdW1ucyB3YXMgIiArIGRhdGFncmlkLmNvbHVtbnMubGVuZ3RoICsgIi4i
KTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gVGVzdCBhZGRpbmcgYSBjb2x1bW4u
CisgICAgICAgIHZhciBjb2x1bW4gPSBkYXRhZ3JpZC5jb2x1bW5zLmFkZCgiZnJvbWNvbCIsICJG
cm9tIiwgInRleHQiLCB0cnVlLCAyKTsKKyAgICAgICAgCisgICAgICAgIC8vIFRlc3QgcmV0dXJu
IHZhbHVlIGZyb20gYWRkaW5nIHRoZSBjb2x1bW4uCisgICAgICAgIGlmIChjb2x1bW4gIT0gbnVs
bCkgeworICAgICAgICAgICAgbG9nKCJQQVNTOiBDb2x1bW4gcmV0dXJuZWQgZnJvbSBhZGQuIik7
CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsb2coIkZBSUw6IE5vIGNvbHVtbiByZXR1
cm5lZC4iKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gTWFrZSBzdXJlIHRoZSBj
b2x1bW4gbGlzdCBub3cgaGFzIG9uZSBjb2x1bW4uCisgICAgICAgIGlmIChkYXRhZ3JpZC5jb2x1
bW5zLmxlbmd0aCA9PSAxKSB7CisgICAgICAgICAgICBsb2coIlBBU1M6IFdlIGhhdmUgb25lIGNv
bHVtbiBpbiB0aGUgbGlzdC4iKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxvZygi
RkFJTDogRXhwZWN0ZWQgb25lIGNvbHVtbiBpbiB0aGUgbGlzdCBidXQgaGF2ZSAiICsgZGF0YWdy
aWQuY29sdW1ucy5sZW5ndGggKyAiIGNvbHVtbnMgaW5zdGVhZC4iKTsKKyAgICAgICAgfQorICAg
ICAgICAKKyAgICAgICAgLy8gTWFrZSBzdXJlIHRoZSBjb2x1bW4gd2UgZ290IGJhY2sgZnJvbSBh
ZGQgaXMgdGhlIG9uZSBpbiB0aGUgbGlzdC4KKyAgICAgICAgaWYgKGRhdGFncmlkLmNvbHVtbnNb
MF0gPT0gY29sdW1uKSB7CisgICAgICAgICAgICBsb2coIlBBU1M6IFRoZSBjb2x1bW4gYXQgaW5k
ZXggMCBpcyB0aGUgY29sdW1uIHdlIGdvdCBiYWNrIGZyb20gYWRkLiIpOworICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgbG9nKCJGQUlMOiBUaGUgY29sdW1uIGF0IGluZGV4IDAgaXMgbm90
IHRoZSBvbmUgd2UgZXhwZWN0ZWQuIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlm
IChkYXRhZ3JpZC5jb2x1bW5zWyJmcm9tY29sIl0gPT0gY29sdW1uKSB7CisgICAgICAgICAgICBs
b2coIlBBU1M6IFRoZSBjb2x1bW4gd2hlbiByZWZlcmVuY2VkIGJ5IG5hbWUgaXMgdGhlIG9uZSB3
ZSBnb3QgYmFjayBmcm9tIGFkZC4iKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxv
ZygiRkFJTDogVGhlIGNvbHVtbiB3aGVuIHJlZmVyZW5jZWQgYnkgbmFtZSBpcyBub3QgdGhlIG9u
ZSB3ZSBleHBlY3RlZC4iKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEV4YW1pbmUgdGhlIGNv
bHVtbidzIHByb3BlcnRpZXMgdG8gbWFrZSBzdXJlIHRoZXkgYXJlIHdoYXQgd2UgZXhwZWN0ZWQu
CisgICAgICAgIGlmIChjb2x1bW4uaWQgPT0gImZyb21jb2wiKSB7CisgICAgICAgICAgICBsb2co
IlBBU1M6IFRoZSBjb2x1bW4ncyBJRCBpcyBmcm9tY29sIGFzIGV4cGVjdGVkLiIpOworICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgbG9nKCJGQUlMOiBUaGUgY29sdW1uJ3MgSUQgc2hvdWxk
IGJlIGZyb21jb2wgYnV0IGlzICIgKyBjb2x1bW4uaWQgKyAiIGluc3RlYWQuIik7CisgICAgICAg
IH0KKyAgICAgICAgCisgICAgICAgIGlmIChjb2x1bW4ubGFiZWwgPT0gIkZyb20iKSB7CisgICAg
ICAgICAgICBsb2coIlBBU1M6IFRoZSBjb2x1bW4ncyBsYWJlbCBpcyBGcm9tIGFzIGV4cGVjdGVk
LiIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbG9nKCJGQUlMOiBUaGUgY29sdW1u
J3MgbGFiZWwgc2hvdWxkIGJlIEZyb20gYnV0IGlzICIgKyBjb2x1bW4ubGFiZWwgKyAiIGluc3Rl
YWQuIik7CisgICAgICAgIH0KKworICAgICAgICBpZiAoY29sdW1uLnR5cGUgPT0gInRleHQiKSB7
CisgICAgICAgICAgICBsb2coIlBBU1M6IFRoZSBjb2x1bW4ncyB0eXBlIGlzIHRleHQgYXMgZXhw
ZWN0ZWQuIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsb2coIkZBSUw6IFRoZSBj
b2x1bW4ncyB0eXBlIHNob3VsZCBiZSB0ZXh0IGJ1dCBpcyAiICsgY29sdW1uLnR5cGUgKyAiIGlu
c3RlYWQuIik7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgaWYgKGNvbHVtbi5wcmltYXJ5KSB7
CisgICAgICAgICAgICBsb2coIlBBU1M6IFRoZSBjb2x1bW4ncyBwcmltYXJ5IHByb3BlcnR5IGlz
IHRydWUgYXMgZXhwZWN0ZWQuIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsb2co
IkZBSUw6IFRoZSBjb2x1bW4ncyBwcmltYXJ5IHByb3BlcnR5IHNob3VsZCBiZSB0cnVlIGJ1dCBp
c24ndC4iKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChjb2x1bW4uc29ydGFibGUgPT0gMikg
eworICAgICAgICAgICAgbG9nKCJQQVNTOiBUaGUgY29sdW1uJ3Mgc29ydGFibGUgcHJvcGVydHkg
aXMgMiBhcyBleHBlY3RlZC4iKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxvZygi
RkFJTDogVGhlIGNvbHVtbidzIHNvcnRhYmxlIHByb3BlcnR5IHNob3VsZCBiZSAyIGJ1dCBpcyAi
ICsgY29sdW1uLnNvcnRhYmxlICsgIiBpbnN0ZWFkLiIpOworICAgICAgICB9CisKKyAgICAgICAg
Ly8gTWFrZSBzdXJlIHdlIGdvdCBzZXQgYXMgdGhlIHByaW1hcnkgY29sdW1uLgorICAgICAgICBp
ZiAoZGF0YWdyaWQuY29sdW1ucy5wcmltYXJ5Q29sdW1uID09IGNvbHVtbikgeworICAgICAgICAg
ICAgbG9nKCJQQVNTOiBUaGUgY29sdW1uIHJldHVybmVkIGZyb20gYWRkIGlzIG5vdyB0aGUgcHJp
bWFyeSBjb2x1bW4uIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsb2coIkZBSUw6
IFRoZSBjb2x1bW4gaXMgbm90IHRoZSBwcmltYXJ5IGNvbHVtbiBhcyBleHBlY3RlZC4iKTsKKyAg
ICAgICAgfQorCisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAg
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>
<flag name="review"
          id="16381"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>